@servicetitan/dte-pdf-editor 1.86.0 → 1.88.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -30
- package/dist/components/display-conditions/condition-row.d.ts.map +1 -1
- package/dist/components/display-conditions/condition-row.js +51 -22
- package/dist/components/display-conditions/condition-row.js.map +1 -1
- package/dist/components/display-conditions/condition-value-control.d.ts.map +1 -1
- package/dist/components/display-conditions/condition-value-control.js +1 -2
- package/dist/components/display-conditions/condition-value-control.js.map +1 -1
- package/dist/components/display-conditions/display-condition-modal.d.ts.map +1 -1
- package/dist/components/display-conditions/display-condition-modal.js +6 -49
- package/dist/components/display-conditions/display-condition-modal.js.map +1 -1
- package/dist/components/field-config-panel/e-sign-date-rules-summary.d.ts +11 -0
- package/dist/components/field-config-panel/e-sign-date-rules-summary.d.ts.map +1 -0
- package/dist/components/field-config-panel/e-sign-date-rules-summary.js +36 -0
- package/dist/components/field-config-panel/e-sign-date-rules-summary.js.map +1 -0
- package/dist/components/field-config-panel/e-sign-date-signed-offset-modal.d.ts +16 -0
- package/dist/components/field-config-panel/e-sign-date-signed-offset-modal.d.ts.map +1 -0
- package/dist/components/field-config-panel/e-sign-date-signed-offset-modal.js +62 -0
- package/dist/components/field-config-panel/e-sign-date-signed-offset-modal.js.map +1 -0
- package/dist/components/field-config-panel/e-sign-offset-rule-row.d.ts +16 -0
- package/dist/components/field-config-panel/e-sign-offset-rule-row.d.ts.map +1 -0
- package/dist/components/field-config-panel/e-sign-offset-rule-row.js +25 -0
- package/dist/components/field-config-panel/e-sign-offset-rule-row.js.map +1 -0
- package/dist/components/field-config-panel/e-sign-options-modal.d.ts +15 -0
- package/dist/components/field-config-panel/e-sign-options-modal.d.ts.map +1 -0
- package/dist/components/field-config-panel/e-sign-options-modal.js +26 -0
- package/dist/components/field-config-panel/e-sign-options-modal.js.map +1 -0
- package/dist/components/field-config-panel/field-config-panel.d.ts.map +1 -1
- package/dist/components/field-config-panel/field-config-panel.js +30 -28
- package/dist/components/field-config-panel/field-config-panel.js.map +1 -1
- package/dist/components/field-sidebar/e-sign-field-type-list.d.ts.map +1 -1
- package/dist/components/field-sidebar/e-sign-field-type-list.js +1 -6
- package/dist/components/field-sidebar/e-sign-field-type-list.js.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field-fillable.d.ts.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field-fillable.js +22 -8
- package/dist/components/pdf-fields-overlay/pdf-overlay-field-fillable.js.map +1 -1
- package/dist/components/pdf-view/pdf-view-fillable.d.ts.map +1 -1
- package/dist/components/pdf-view/pdf-view-fillable.js +3 -3
- package/dist/components/pdf-view/pdf-view-fillable.js.map +1 -1
- package/dist/constants/field.constants.d.ts +1 -5
- package/dist/constants/field.constants.d.ts.map +1 -1
- package/dist/constants/field.constants.js +21 -7
- package/dist/constants/field.constants.js.map +1 -1
- package/dist/hooks/usePdfFieldDnD.d.ts.map +1 -1
- package/dist/hooks/usePdfFieldDnD.js +13 -5
- package/dist/hooks/usePdfFieldDnD.js.map +1 -1
- package/dist/interface/types.d.ts +26 -1
- package/dist/interface/types.d.ts.map +1 -1
- package/dist/interface/types.js +1 -0
- package/dist/interface/types.js.map +1 -1
- package/dist/styles/field-config-panel.css +11 -0
- package/dist/styles/field-type.css +12 -0
- package/dist/styles/index.css +1 -0
- package/dist/styles/variables.css +2 -0
- package/dist/utils/conditions/condition-match-type.utils.d.ts +14 -0
- package/dist/utils/conditions/condition-match-type.utils.d.ts.map +1 -0
- package/dist/utils/conditions/condition-match-type.utils.js +50 -0
- package/dist/utils/conditions/condition-match-type.utils.js.map +1 -0
- package/dist/utils/conditions/e-sign-offset-rules.utils.d.ts +12 -0
- package/dist/utils/conditions/e-sign-offset-rules.utils.d.ts.map +1 -0
- package/dist/utils/conditions/e-sign-offset-rules.utils.js +19 -0
- package/dist/utils/conditions/e-sign-offset-rules.utils.js.map +1 -0
- package/dist/utils/conditions/index.d.ts +2 -0
- package/dist/utils/conditions/index.d.ts.map +1 -1
- package/dist/utils/conditions/index.js +2 -0
- package/dist/utils/conditions/index.js.map +1 -1
- package/dist/utils/field/field-placeholder-text.utils.d.ts +1 -0
- package/dist/utils/field/field-placeholder-text.utils.d.ts.map +1 -1
- package/dist/utils/field/field-placeholder-text.utils.js +9 -4
- package/dist/utils/field/field-placeholder-text.utils.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/field-types/custom-fields.test.ts +187 -0
- package/src/components/display-conditions/condition-row.tsx +114 -131
- package/src/components/display-conditions/condition-value-control.tsx +1 -2
- package/src/components/display-conditions/display-condition-modal.tsx +13 -63
- package/src/components/field-config-panel/e-sign-date-rules-summary.tsx +114 -0
- package/src/components/field-config-panel/e-sign-date-signed-offset-modal.tsx +197 -0
- package/src/components/field-config-panel/e-sign-offset-rule-row.tsx +91 -0
- package/src/components/field-config-panel/e-sign-options-modal.tsx +112 -0
- package/src/components/field-config-panel/field-config-panel.tsx +70 -91
- package/src/components/field-sidebar/e-sign-field-type-list.tsx +11 -14
- package/src/components/pdf-fields-overlay/pdf-overlay-field-fillable.tsx +46 -14
- package/src/components/pdf-view/pdf-view-fillable.tsx +3 -2
- package/src/constants/field.constants.ts +21 -8
- package/src/hooks/usePdfFieldDnD.ts +17 -2
- package/src/interface/types.ts +34 -1
- package/src/styles/field-config-panel.css +11 -0
- package/src/styles/field-type.css +12 -0
- package/src/styles/index.css +1 -0
- package/src/styles/variables.css +2 -0
- package/src/utils/conditions/__tests__/condition-match-type.utils.test.ts +104 -0
- package/src/utils/conditions/__tests__/e-sign-offset-rules.utils.test.ts +51 -0
- package/src/utils/conditions/condition-match-type.utils.ts +80 -0
- package/src/utils/conditions/e-sign-offset-rules.utils.ts +32 -0
- package/src/utils/conditions/index.ts +2 -0
- package/src/utils/field/__tests__/field-placeholder-text.utils.test.ts +17 -1
- package/src/utils/field/field-placeholder-text.utils.ts +10 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.constants.js","sourceRoot":"","sources":["../../src/constants/field.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,cAAc,EACd,aAAa,GAGhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AAExE,MAAM,CAAC,MAAM,yBAAyB,GAAG,QAAiB,CAAC;AAE3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IAC3E,OAAO,CAAC,GAAG,KAAK,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IACxC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAChC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAChC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAChC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;CACwB,CAAC;AAEhE,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAEjD,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACvC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAChC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,8BAA8B,EAAE;CACvB,CAAC;AAEhE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"field.constants.js","sourceRoot":"","sources":["../../src/constants/field.constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePdfFieldDnD.d.ts","sourceRoot":"","sources":["../../src/hooks/usePdfFieldDnD.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAiC,MAAM,OAAO,CAAC;AAS5E,OAAO,EAGH,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,aAAa,EACrB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"usePdfFieldDnD.d.ts","sourceRoot":"","sources":["../../src/hooks/usePdfFieldDnD.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAiC,MAAM,OAAO,CAAC;AAS5E,OAAO,EAGH,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,aAAa,EACrB,MAAM,oBAAoB,CAAC;AA2H5B,UAAU,mBAAmB;IACzB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC7C,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,eAAO,MAAM,cAAc,GAAI,uEAM5B,mBAAmB;mCAKoB,eAAe;;wBAU7C,SAAS,CAAC,cAAc,CAAC;oBA2BV,SAAS,CAAC,cAAc,CAAC,cAAc,MAAM;CAoDvE,CAAC"}
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
import { useCallback, useRef, useState } from 'react';
|
|
2
2
|
import { v4 as uuidv4 } from 'uuid';
|
|
3
3
|
import { DEFAULT_FIELD_FONT_SIZE, FIELD_CONSTANTS, FILLABLE_FIELD_DEFAULT_SIZES, GENERIC_FIELD_DEFAULT_SIZES, GENERIC_FIELD_TABLE_ROW_HEIGHT, } from '../constants';
|
|
4
|
-
import { FieldTypeEnum, } from '../interface/types';
|
|
4
|
+
import { ESignFieldType, FieldTypeEnum, } from '../interface/types';
|
|
5
5
|
import { calculateDropCoordinates, generateESignPath, generateFillablePath, getFillableFieldsRecipients, isDragOverCanvas, supportsFieldFontSize, } from '../utils';
|
|
6
6
|
const DRAG_OVER_THROTTLE_MS = 32; // ~30fps for drop effect updates
|
|
7
7
|
const initializeDroppedFieldByType = {
|
|
8
|
-
[FieldTypeEnum.eSign]: (base, option, recipients) => {
|
|
9
|
-
var _a, _b;
|
|
8
|
+
[FieldTypeEnum.eSign]: (base, option, recipients, fields) => {
|
|
9
|
+
var _a, _b, _c;
|
|
10
10
|
const recipientName = (_b = (_a = recipients[0]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';
|
|
11
|
-
|
|
11
|
+
const field = {
|
|
12
12
|
...base,
|
|
13
13
|
recipient: recipientName,
|
|
14
14
|
path: generateESignPath(recipientName, option.subType),
|
|
15
15
|
};
|
|
16
|
+
if (field.subType === ESignFieldType.dateSignedOffset) {
|
|
17
|
+
const existingDateSignedOffsetField = fields.find(existingField => existingField.type === FieldTypeEnum.eSign &&
|
|
18
|
+
existingField.subType === ESignFieldType.dateSignedOffset);
|
|
19
|
+
field.data = (_c = existingDateSignedOffsetField === null || existingDateSignedOffsetField === void 0 ? void 0 : existingDateSignedOffsetField.data) !== null && _c !== void 0 ? _c : {
|
|
20
|
+
rules: [{ days: 0 }],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return field;
|
|
16
24
|
},
|
|
17
25
|
[FieldTypeEnum.fillable]: (base, option, recipients) => {
|
|
18
26
|
var _a, _b;
|
|
@@ -159,7 +167,7 @@ export const usePdfFieldDnD = ({ fields, onFieldsChange, onSelectField, pdfWrapp
|
|
|
159
167
|
}
|
|
160
168
|
: {}),
|
|
161
169
|
};
|
|
162
|
-
const newField = initializeDroppedFieldByType[baseField.type](baseField, draggedFieldOption, recipients);
|
|
170
|
+
const newField = initializeDroppedFieldByType[baseField.type](baseField, draggedFieldOption, recipients, fields);
|
|
163
171
|
onFieldsChange([...fields, newField]);
|
|
164
172
|
onSelectField(newField.id);
|
|
165
173
|
setDraggedFieldOption(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePdfFieldDnD.js","sourceRoot":"","sources":["../../src/hooks/usePdfFieldDnD.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,GACjC,MAAM,cAAc,CAAC;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"usePdfFieldDnD.js","sourceRoot":"","sources":["../../src/hooks/usePdfFieldDnD.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare enum ESignFieldType {
|
|
|
10
10
|
signature = "signature",
|
|
11
11
|
initials = "initials",
|
|
12
12
|
dateSigned = "dateSigned",
|
|
13
|
+
dateSignedOffset = "dateSignedOffset",
|
|
13
14
|
fullName = "fullName"
|
|
14
15
|
}
|
|
15
16
|
export type FillableFieldType = 'text' | 'date' | 'checkbox' | 'radio' | 'number';
|
|
@@ -47,7 +48,31 @@ export interface GenericFieldTableDataType {
|
|
|
47
48
|
export interface GenericFieldTextDataType {
|
|
48
49
|
value: string;
|
|
49
50
|
}
|
|
50
|
-
export
|
|
51
|
+
export interface ESignDateSignedOffsetSettingsRule {
|
|
52
|
+
days: number;
|
|
53
|
+
condition: DisplayConditionState;
|
|
54
|
+
}
|
|
55
|
+
export interface ESignDateSignedOffsetSettingsFinalRule {
|
|
56
|
+
days: number;
|
|
57
|
+
condition?: never;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Ordered "if/else if/.../else" chain of day-offset rules for an e-sign `dateSignedOffset` field.
|
|
61
|
+
* Rules are evaluated in array order; the first rule whose `condition` matches applies its `days`.
|
|
62
|
+
*
|
|
63
|
+
* The tuple shape encodes two invariants the UI and evaluator both rely on:
|
|
64
|
+
* - The last element is always the trailing else case: no `condition`, so it always matches.
|
|
65
|
+
* - Every element before it is a normal, conditioned rule (`ESignDateSignedOffsetSettingsRule`).
|
|
66
|
+
*
|
|
67
|
+
* `rules` therefore always has at least one entry (just the else rule) and never has a
|
|
68
|
+
* condition-less rule anywhere but last. `ESignOptionsModal` is the only place that splits this
|
|
69
|
+
* tuple apart (the else row is edited inline; the conditioned rules are edited in
|
|
70
|
+
* `ESignDateSignedOffsetModal`) and reassembles it before saving.
|
|
71
|
+
*/
|
|
72
|
+
export interface ESignDateSignedOffsetSettings {
|
|
73
|
+
rules: [ESignDateSignedOffsetSettingsFinalRule] | [...ESignDateSignedOffsetSettingsRule[], ESignDateSignedOffsetSettingsFinalRule];
|
|
74
|
+
}
|
|
75
|
+
export type FieldDataType = GenericFieldTableDataType | GenericFieldTextDataType | ESignDateSignedOffsetSettings;
|
|
51
76
|
export interface DisplayConditionState {
|
|
52
77
|
behavior: 'show' | 'hide';
|
|
53
78
|
groups: DisplayConditionGroup[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACrB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,OAAO,YAAY;CACtB;AAED,oBAAY,cAAc;IACtB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,QAAQ,aAAa;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAElF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAChC,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEpG,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE;YACH,KAAK,EAAE,MAAM,CAAC;SACjB,EAAE,CAAC;KACP,CAAC;IACF,IAAI,EAAE;QACF,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE;YACH,KAAK,EAAE,MAAM,CAAC;SACjB,EAAE,CAAC;KACP,EAAE,CAAC;CACP;AAED,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"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"}
|
package/dist/interface/types.js
CHANGED
|
@@ -12,6 +12,7 @@ export var ESignFieldType;
|
|
|
12
12
|
ESignFieldType["signature"] = "signature";
|
|
13
13
|
ESignFieldType["initials"] = "initials";
|
|
14
14
|
ESignFieldType["dateSigned"] = "dateSigned";
|
|
15
|
+
ESignFieldType["dateSignedOffset"] = "dateSignedOffset";
|
|
15
16
|
ESignFieldType["fullName"] = "fullName";
|
|
16
17
|
})(ESignFieldType || (ESignFieldType = {}));
|
|
17
18
|
/** Supported formula operators */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,oCAAmB,CAAA;AACvB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAED,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,oCAAmB,CAAA;AACvB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAED,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,uDAAqC,CAAA;IACrC,uCAAqB,CAAA;AACzB,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AA8JD,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAmItD;;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,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;CAChD,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;IAC1C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE;CAC1C,CAAC;AAEX,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
.dte-rule-card {
|
|
2
|
+
padding: 12px;
|
|
3
|
+
background: var(--color-neutral-30, #f7f7f7);
|
|
4
|
+
border: 1px solid var(--border-color);
|
|
5
|
+
border-radius: var(--radius-2);
|
|
6
|
+
|
|
7
|
+
&.--active {
|
|
8
|
+
border-color: var(--border-color-active, #2270ee);
|
|
9
|
+
background: var(--bg-color-secondary-active, #fafcff);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -15,3 +15,15 @@
|
|
|
15
15
|
.dte-field-type-item:hover {
|
|
16
16
|
box-shadow: 0 0 2px 0 var(--border-color-active);
|
|
17
17
|
}
|
|
18
|
+
|
|
19
|
+
.dte-field-type-items-wrapper {
|
|
20
|
+
&.--grid-2 {
|
|
21
|
+
display: grid;
|
|
22
|
+
grid-template-columns: 1fr 1fr;
|
|
23
|
+
gap: var(--spacing-1, 8px);
|
|
24
|
+
|
|
25
|
+
.dte-field-type-item {
|
|
26
|
+
margin-top: var(--spacing-0, 0);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
package/dist/styles/index.css
CHANGED
|
@@ -28,11 +28,13 @@
|
|
|
28
28
|
--color-neutral-70: var(--color-neutral-70, #737475);
|
|
29
29
|
--color-neutral-200: var(--color-neutral-200, #6c6d70);
|
|
30
30
|
--color-neutral-300: var(--color-neutral-300, #2d2e31);
|
|
31
|
+
--color-blue-100: var(--color-blue-100, #fafcff);
|
|
31
32
|
|
|
32
33
|
/* Background colors */
|
|
33
34
|
--bg-color-light: var(--color-neutral-0, #ffffff);
|
|
34
35
|
--bg-color-main: var(--color-neutral-20, #fafafa);
|
|
35
36
|
--bg-color-secondary: var(--color-neutral-50, #eeeeee);
|
|
37
|
+
--bg-color-secondary-active: var(--color-blue-100, #fafcff);
|
|
36
38
|
--bg-color: var(--color-neutral-200, #f5f5f5);
|
|
37
39
|
--bg-color-hover: #eaeaea;
|
|
38
40
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DataPointOption, DisplayConditionGroup, DisplayConditionState, FormFieldsByFormIdI } from '../../interface/types';
|
|
2
|
+
export type ConditionMatchType = 'and' | 'or';
|
|
3
|
+
/** Derives All/Any (and/or) toggle value from the operators already stored on a condition state. */
|
|
4
|
+
export declare const deriveConditionMatchType: (conditionState: DisplayConditionState) => ConditionMatchType;
|
|
5
|
+
/** Stamps the given All/Any (and/or) value onto every group/condition after the first in each. */
|
|
6
|
+
export declare const applyConditionMatchType: (conditionState: DisplayConditionState, matchType: ConditionMatchType) => DisplayConditionState;
|
|
7
|
+
export interface ConditionValidationDeps {
|
|
8
|
+
mergeTagOptions: DataPointOption[];
|
|
9
|
+
fillableOptions: DataPointOption[];
|
|
10
|
+
formFieldsByFormId?: FormFieldsByFormIdI;
|
|
11
|
+
}
|
|
12
|
+
/** True when every condition in every group has a data point and a usable value for its type. */
|
|
13
|
+
export declare const isValidConditionGroups: (groups: DisplayConditionGroup[], { fillableOptions, formFieldsByFormId, mergeTagOptions }: ConditionValidationDeps) => boolean;
|
|
14
|
+
//# sourceMappingURL=condition-match-type.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-match-type.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/conditions/condition-match-type.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACtB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,IAAI,CAAC;AAE9C,oGAAoG;AACpG,eAAO,MAAM,wBAAwB,GACjC,gBAAgB,qBAAqB,KACtC,kBAaF,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,uBAAuB,GAChC,gBAAgB,qBAAqB,EACrC,WAAW,kBAAkB,KAC9B,qBASD,CAAC;AAEH,MAAM,WAAW,uBAAuB;IACpC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;CAC5C;AAED,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,GAC/B,QAAQ,qBAAqB,EAAE,EAC/B,0DAA0D,uBAAuB,KAClF,OAyBF,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { getDisplayConditionFieldTypeForKey } from '../formula';
|
|
2
|
+
import { isValidNumber } from '../shared';
|
|
3
|
+
/** Derives All/Any (and/or) toggle value from the operators already stored on a condition state. */
|
|
4
|
+
export const deriveConditionMatchType = (conditionState) => {
|
|
5
|
+
var _a;
|
|
6
|
+
for (let g = 0; g < conditionState.groups.length; g++) {
|
|
7
|
+
const group = conditionState.groups[g];
|
|
8
|
+
if (g > 0 && group.logicalOperator === 'or') {
|
|
9
|
+
return 'or';
|
|
10
|
+
}
|
|
11
|
+
for (let i = 1; i < group.conditions.length; i++) {
|
|
12
|
+
if (((_a = group.conditions[i]) === null || _a === void 0 ? void 0 : _a.logicalOperator) === 'or') {
|
|
13
|
+
return 'or';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return 'and';
|
|
18
|
+
};
|
|
19
|
+
/** Stamps the given All/Any (and/or) value onto every group/condition after the first in each. */
|
|
20
|
+
export const applyConditionMatchType = (conditionState, matchType) => ({
|
|
21
|
+
...conditionState,
|
|
22
|
+
groups: conditionState.groups.map((group, groupIndex) => ({
|
|
23
|
+
...group,
|
|
24
|
+
...(groupIndex > 0 ? { logicalOperator: matchType } : {}),
|
|
25
|
+
conditions: group.conditions.map((c, i) => i === 0 ? { ...c, logicalOperator: undefined } : { ...c, logicalOperator: matchType }),
|
|
26
|
+
})),
|
|
27
|
+
});
|
|
28
|
+
/** True when every condition in every group has a data point and a usable value for its type. */
|
|
29
|
+
export const isValidConditionGroups = (groups, { fillableOptions, formFieldsByFormId, mergeTagOptions }) => {
|
|
30
|
+
for (const group of groups) {
|
|
31
|
+
for (const condition of group.conditions) {
|
|
32
|
+
if (!condition.dataPointKey) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
if (condition.operator === 'is_empty' || condition.operator === 'is_not_empty') {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const trimmedValue = condition.value.trim();
|
|
39
|
+
if (!trimmedValue) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const fieldType = getDisplayConditionFieldTypeForKey(condition.dataPointKey, mergeTagOptions, fillableOptions, formFieldsByFormId !== null && formFieldsByFormId !== void 0 ? formFieldsByFormId : {});
|
|
43
|
+
if (fieldType === 'number' && !isValidNumber(trimmedValue)) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return groups.length > 0;
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=condition-match-type.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition-match-type.utils.js","sourceRoot":"","sources":["../../../src/utils/conditions/condition-match-type.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ESignDateSignedOffsetSettingsRule } from '../../interface/types';
|
|
2
|
+
/**
|
|
3
|
+
* Product limit: rules (the conditioned rules managed here, plus the trailing else row that
|
|
4
|
+
* lives outside this array) may not exceed this total.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MAX_ESIGN_OFFSET_RULES = 5;
|
|
7
|
+
export declare const createESignOffsetRule: () => ESignDateSignedOffsetSettingsRule;
|
|
8
|
+
export declare const canAddESignOffsetRule: (rules: ESignDateSignedOffsetSettingsRule[]) => boolean;
|
|
9
|
+
/** Appends a new rule. No-op past the max. */
|
|
10
|
+
export declare const addESignOffsetRule: (rules: ESignDateSignedOffsetSettingsRule[]) => ESignDateSignedOffsetSettingsRule[];
|
|
11
|
+
export declare const updateESignOffsetRule: (rules: ESignDateSignedOffsetSettingsRule[], index: number, rule: ESignDateSignedOffsetSettingsRule) => ESignDateSignedOffsetSettingsRule[];
|
|
12
|
+
//# sourceMappingURL=e-sign-offset-rules.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e-sign-offset-rules.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/conditions/e-sign-offset-rules.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,qBAAqB,QAAO,iCAGvC,CAAC;AAEH,eAAO,MAAM,qBAAqB,GAAI,OAAO,iCAAiC,EAAE,KAAG,OACtC,CAAC;AAE9C,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,GAC3B,OAAO,iCAAiC,EAAE,KAC3C,iCAAiC,EAC0C,CAAC;AAE/E,eAAO,MAAM,qBAAqB,GAC9B,OAAO,iCAAiC,EAAE,EAC1C,OAAO,MAAM,EACb,MAAM,iCAAiC,KACxC,iCAAiC,EAInC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defaultGroup } from '../../constants';
|
|
2
|
+
/**
|
|
3
|
+
* Product limit: rules (the conditioned rules managed here, plus the trailing else row that
|
|
4
|
+
* lives outside this array) may not exceed this total.
|
|
5
|
+
*/
|
|
6
|
+
export const MAX_ESIGN_OFFSET_RULES = 5;
|
|
7
|
+
export const createESignOffsetRule = () => ({
|
|
8
|
+
days: 0,
|
|
9
|
+
condition: { behavior: 'show', groups: [defaultGroup()] },
|
|
10
|
+
});
|
|
11
|
+
export const canAddESignOffsetRule = (rules) => rules.length < MAX_ESIGN_OFFSET_RULES - 1;
|
|
12
|
+
/** Appends a new rule. No-op past the max. */
|
|
13
|
+
export const addESignOffsetRule = (rules) => canAddESignOffsetRule(rules) ? [...rules, createESignOffsetRule()] : rules;
|
|
14
|
+
export const updateESignOffsetRule = (rules, index, rule) => {
|
|
15
|
+
const next = [...rules];
|
|
16
|
+
next[index] = rule;
|
|
17
|
+
return next;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=e-sign-offset-rules.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e-sign-offset-rules.utils.js","sourceRoot":"","sources":["../../../src/utils/conditions/e-sign-offset-rules.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAsC,EAAE,CAAC,CAAC;IAC3E,IAAI,EAAE,CAAC;IACP,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE;CAC5D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAA0C,EAAW,EAAE,CACzF,KAAK,CAAC,MAAM,GAAG,sBAAsB,GAAG,CAAC,CAAC;AAE9C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,KAA0C,EACP,EAAE,CACrC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,KAA0C,EAC1C,KAAa,EACb,IAAuC,EACJ,EAAE;IACrC,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACnB,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/conditions/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/conditions/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/conditions/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/conditions/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { type PdfField } from '../../interface/types';
|
|
2
|
+
export declare const getFillablePaintedLabel: (field: PdfField) => string;
|
|
2
3
|
export declare const getFieldPlaceholderText: (field: PdfField, prefix?: string) => string;
|
|
3
4
|
//# sourceMappingURL=field-placeholder-text.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-placeholder-text.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/field/field-placeholder-text.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,eAAO,MAAM,uBAAuB,GAAI,OAAO,QAAQ,EAAE,SAAS,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"field-placeholder-text.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/field/field-placeholder-text.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,eAAO,MAAM,uBAAuB,GAAI,OAAO,QAAQ,WAEtD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,QAAQ,EAAE,SAAS,MAAM,KAAG,MAU1E,CAAC"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
export const getFillablePaintedLabel = (field) => {
|
|
2
|
+
return field.hideLabel ? '' : field.label || '';
|
|
3
|
+
};
|
|
1
4
|
export const getFieldPlaceholderText = (field, prefix) => {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
+
/*
|
|
6
|
+
* A hidden label takes its required marker with it - a lone '*' floating in an otherwise empty box
|
|
7
|
+
* reads as stray ink on the document, not as a hint. Any prefix stays: it is a format hint supplied
|
|
8
|
+
* by the caller (e.g. 'mm/dd/yyyy'), not part of the label.
|
|
9
|
+
*/
|
|
5
10
|
const requiredIndicator = field.required && !field.hideLabel ? '*' : '';
|
|
6
|
-
const label = field
|
|
11
|
+
const label = getFillablePaintedLabel(field);
|
|
7
12
|
const parts = [prefix, label, requiredIndicator].filter(Boolean);
|
|
8
13
|
return parts.join(' ');
|
|
9
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-placeholder-text.utils.js","sourceRoot":"","sources":["../../../src/utils/field/field-placeholder-text.utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"field-placeholder-text.utils.js","sourceRoot":"","sources":["../../../src/utils/field/field-placeholder-text.utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAe,EAAE,EAAE;IACvD,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAe,EAAE,MAAe,EAAU,EAAE;IAChF;;;;OAIG;IACH,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { FieldTypeEnum, type SchemaObject } from '../../interface/types';
|
|
2
|
+
import {
|
|
3
|
+
extractGroupedFieldsFromDataModel,
|
|
4
|
+
getSchemaDataPointOptions,
|
|
5
|
+
resolvePdfDataValues,
|
|
6
|
+
} from '../../utils';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Scenario tests for tenant Custom Fields (DTE-4560).
|
|
10
|
+
*
|
|
11
|
+
* This editor has no notion of custom fields — it renders whatever the data model describes. The
|
|
12
|
+
* consumer (`clients/web`) builds a `__custom_fields` object node from the tenant's catalog and
|
|
13
|
+
* merges it into the template type's data model, then hands the matching values in as data.
|
|
14
|
+
*
|
|
15
|
+
* These tests pin the contract that arrangement depends on, so a change here surfaces as a failure
|
|
16
|
+
* rather than as blank fields in a signed contract:
|
|
17
|
+
* • the group is offered in the sidebar under its own name;
|
|
18
|
+
* • each option's path is `__custom_fields.<key>`, which is what a dropped field persists;
|
|
19
|
+
* • the same path resolves against the values the consumer supplies;
|
|
20
|
+
* • custom fields reach the display-condition picker but not the formula picker.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/** Shaped exactly as `buildCustomFieldsSchemaNode` in clients/web produces it. */
|
|
24
|
+
const customFieldsNode: SchemaObject = {
|
|
25
|
+
type: 'object',
|
|
26
|
+
title: 'Custom Fields',
|
|
27
|
+
properties: {
|
|
28
|
+
Contract_Term: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
title: 'Contract Term',
|
|
31
|
+
options: { sampleData: 'Contract Term', useInConditionals: true },
|
|
32
|
+
},
|
|
33
|
+
Rev_2: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
title: 'Rev. 2',
|
|
36
|
+
options: { sampleData: 'Rev. 2', useInConditionals: true },
|
|
37
|
+
},
|
|
38
|
+
Срок_договора: {
|
|
39
|
+
type: 'string',
|
|
40
|
+
title: 'Срок договора',
|
|
41
|
+
options: { sampleData: 'Срок договора', useInConditionals: true },
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const schemaWithCustomFields: SchemaObject = {
|
|
47
|
+
type: 'object',
|
|
48
|
+
properties: {
|
|
49
|
+
Job: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
title: 'Job',
|
|
52
|
+
properties: {
|
|
53
|
+
Total: {
|
|
54
|
+
type: 'number',
|
|
55
|
+
title: 'Total',
|
|
56
|
+
options: { useInCalculatedFields: true, useInConditionals: true },
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
61
|
+
__custom_fields: customFieldsNode,
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/** What the consumer supplies as data — a dictionary, never the domain's `CustomFields` array. */
|
|
66
|
+
const customFieldValues = {
|
|
67
|
+
Job: { Total: 150 },
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
69
|
+
__custom_fields: {
|
|
70
|
+
Contract_Term: '36 months',
|
|
71
|
+
Rev_2: 'approved',
|
|
72
|
+
Срок_договора: '36 месяцев',
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const customFieldsGroup = () =>
|
|
77
|
+
extractGroupedFieldsFromDataModel(schemaWithCustomFields).find(
|
|
78
|
+
group => group.groupName === 'Custom Fields',
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
describe('custom fields — sidebar', () => {
|
|
82
|
+
it('offers a Custom Fields group alongside the data model groups', () => {
|
|
83
|
+
const groupNames = extractGroupedFieldsFromDataModel(schemaWithCustomFields).map(
|
|
84
|
+
group => group.groupName,
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
expect(groupNames).toContain('Custom Fields');
|
|
88
|
+
expect(groupNames).toContain('Job');
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it('labels each entry with the display name, not the key', () => {
|
|
92
|
+
expect(customFieldsGroup()!.fields.map(field => field.label)).toEqual([
|
|
93
|
+
'Contract Term',
|
|
94
|
+
'Rev. 2',
|
|
95
|
+
'Срок договора',
|
|
96
|
+
]);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it('gives every entry a __custom_fields path, which is what a dropped field persists', () => {
|
|
100
|
+
// usePdfFieldDnD copies option.path onto the new field and, for dataModel, its initializer
|
|
101
|
+
// is `base => base` — so the path below is verbatim what ends up in the saved template.
|
|
102
|
+
expect(customFieldsGroup()!.fields.map(field => field.path)).toEqual([
|
|
103
|
+
'__custom_fields.Contract_Term',
|
|
104
|
+
'__custom_fields.Rev_2',
|
|
105
|
+
'__custom_fields.Срок_договора',
|
|
106
|
+
]);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
it('types the entries as data model fields so they drop like any other merge tag', () => {
|
|
110
|
+
expect(customFieldsGroup()!.fields.every(f => f.type === FieldTypeEnum.dataModel)).toBe(
|
|
111
|
+
true,
|
|
112
|
+
);
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
it('carries sample data so the sidebar and the preview have something to show', () => {
|
|
116
|
+
expect(customFieldsGroup()!.fields.map(field => field.sampleData)).toEqual([
|
|
117
|
+
'Contract Term',
|
|
118
|
+
'Rev. 2',
|
|
119
|
+
'Срок договора',
|
|
120
|
+
]);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it('offers no group at all when the tenant has no custom fields', () => {
|
|
124
|
+
// The consumer omits the node entirely rather than sending an empty one, so an empty
|
|
125
|
+
// "Custom Fields" heading never appears.
|
|
126
|
+
const groups = extractGroupedFieldsFromDataModel({
|
|
127
|
+
type: 'object',
|
|
128
|
+
properties: { Job: schemaWithCustomFields.properties.Job },
|
|
129
|
+
} as SchemaObject);
|
|
130
|
+
|
|
131
|
+
expect(groups.map(group => group.groupName)).not.toContain('Custom Fields');
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
describe('custom fields — rendering values', () => {
|
|
136
|
+
it.each([
|
|
137
|
+
['__custom_fields.Contract_Term', '36 months'],
|
|
138
|
+
['__custom_fields.Rev_2', 'approved'],
|
|
139
|
+
['__custom_fields.Срок_договора', '36 месяцев'],
|
|
140
|
+
])('resolves %s to %s', (path, expected) => {
|
|
141
|
+
expect(resolvePdfDataValues(customFieldValues, path)).toBe(expected);
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
it('draws every placed custom field from the values the consumer supplies', () => {
|
|
145
|
+
const drawn = customFieldsGroup()!.fields.map(field =>
|
|
146
|
+
resolvePdfDataValues(customFieldValues, field.path),
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
expect(drawn).toEqual(['36 months', 'approved', '36 месяцев']);
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
it('draws nothing, rather than throwing, when a field has no answer', () => {
|
|
153
|
+
expect(resolvePdfDataValues({ __custom_fields: {} }, '__custom_fields.Contract_Term')).toBe(
|
|
154
|
+
'',
|
|
155
|
+
);
|
|
156
|
+
expect(resolvePdfDataValues({}, '__custom_fields.Contract_Term')).toBe('');
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
it('cannot resolve the domain array shape, which is why the consumer reshapes it first', () => {
|
|
160
|
+
// The Contracts payload sends CustomFields: [{ Name, Value }]. No dot path reaches into it —
|
|
161
|
+
// this is the reason __custom_fields exists at all.
|
|
162
|
+
const domainShape = {
|
|
163
|
+
CustomFields: [{ Name: 'Contract Term', Value: '36 months' }],
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
expect(resolvePdfDataValues(domainShape, '__custom_fields.Contract_Term')).toBe('');
|
|
167
|
+
expect(resolvePdfDataValues(domainShape, 'CustomFields.Contract_Term')).toBe('');
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
describe('custom fields — pickers', () => {
|
|
172
|
+
it('appears in the display-condition picker', () => {
|
|
173
|
+
const keys = getSchemaDataPointOptions(schemaWithCustomFields).map(o => o.fullKey);
|
|
174
|
+
|
|
175
|
+
expect(keys).toContain('__custom_fields.Contract_Term');
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
it('stays out of the formula picker', () => {
|
|
179
|
+
// Every custom-field answer arrives as a string, which the formula evaluator resolves to no
|
|
180
|
+
// value, so the consumer deliberately omits useInCalculatedFields.
|
|
181
|
+
const calculated = extractGroupedFieldsFromDataModel(schemaWithCustomFields, {
|
|
182
|
+
onlyUseInCalculatedFields: true,
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
expect(calculated.map(group => group.groupName)).not.toContain('Custom Fields');
|
|
186
|
+
});
|
|
187
|
+
});
|