@servicetitan/dte-unlayer 0.157.0 → 0.159.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 (166) hide show
  1. package/dist/api-core.js +22 -29
  2. package/dist/api-core.js.map +1 -1
  3. package/dist/api-custom-tools.js +23 -29
  4. package/dist/api-custom-tools.js.map +1 -1
  5. package/dist/business-calendar/BusinessCalendarDrawer.d.ts +19 -0
  6. package/dist/business-calendar/BusinessCalendarDrawer.d.ts.map +1 -0
  7. package/dist/business-calendar/BusinessCalendarDrawer.js +41 -0
  8. package/dist/business-calendar/BusinessCalendarDrawer.js.map +1 -0
  9. package/dist/business-calendar/business-calendar-requests.d.ts +25 -0
  10. package/dist/business-calendar/business-calendar-requests.d.ts.map +1 -0
  11. package/dist/business-calendar/business-calendar-requests.js +46 -0
  12. package/dist/business-calendar/business-calendar-requests.js.map +1 -0
  13. package/dist/business-calendar/business-calendar-state.d.ts +22 -0
  14. package/dist/business-calendar/business-calendar-state.d.ts.map +1 -0
  15. package/dist/business-calendar/business-calendar-state.js +74 -0
  16. package/dist/business-calendar/business-calendar-state.js.map +1 -0
  17. package/dist/business-calendar/useBusinessCalendarRequests.d.ts +15 -0
  18. package/dist/business-calendar/useBusinessCalendarRequests.d.ts.map +1 -0
  19. package/dist/business-calendar/useBusinessCalendarRequests.js +30 -0
  20. package/dist/business-calendar/useBusinessCalendarRequests.js.map +1 -0
  21. package/dist/display-conditions/ConditionGroup.js +15 -89
  22. package/dist/display-conditions/ConditionGroup.js.map +1 -1
  23. package/dist/display-conditions/ConditionGroupsSection.js +2 -70
  24. package/dist/display-conditions/ConditionGroupsSection.js.map +1 -1
  25. package/dist/display-conditions/ConditionRow.d.ts.map +1 -1
  26. package/dist/display-conditions/ConditionRow.js +71 -296
  27. package/dist/display-conditions/ConditionRow.js.map +1 -1
  28. package/dist/display-conditions/DisplayConditionModal.js +40 -190
  29. package/dist/display-conditions/DisplayConditionModal.js.map +1 -1
  30. package/dist/display-conditions/LookupValueControl.d.ts.map +1 -1
  31. package/dist/display-conditions/LookupValueControl.js +42 -109
  32. package/dist/display-conditions/LookupValueControl.js.map +1 -1
  33. package/dist/display-conditions/SeparatorWithChip.js +1 -10
  34. package/dist/display-conditions/SeparatorWithChip.js.map +1 -1
  35. package/dist/display-conditions/constants.js +15 -20
  36. package/dist/display-conditions/constants.js.map +1 -1
  37. package/dist/display-conditions/displayConditionController.js +5 -8
  38. package/dist/display-conditions/displayConditionController.js.map +1 -1
  39. package/dist/display-conditions/lookupOptionsController.js +16 -16
  40. package/dist/display-conditions/lookupOptionsController.js.map +1 -1
  41. package/dist/display-conditions/nunjucks.js +98 -116
  42. package/dist/display-conditions/nunjucks.js.map +1 -1
  43. package/dist/display-conditions/schemaDataPoints.js +13 -11
  44. package/dist/display-conditions/schemaDataPoints.js.map +1 -1
  45. package/dist/display-conditions/types.js +23 -67
  46. package/dist/display-conditions/types.js.map +1 -1
  47. package/dist/display-conditions/useConditionForms.js +38 -56
  48. package/dist/display-conditions/useConditionForms.js.map +1 -1
  49. package/dist/display-conditions/useLookupOptions.js +24 -44
  50. package/dist/display-conditions/useLookupOptions.js.map +1 -1
  51. package/dist/e-sign-offset/ESignDateSignedOffsetModal.d.ts.map +1 -1
  52. package/dist/e-sign-offset/ESignDateSignedOffsetModal.js +48 -156
  53. package/dist/e-sign-offset/ESignDateSignedOffsetModal.js.map +1 -1
  54. package/dist/e-sign-offset/ESignOffsetRuleRow.d.ts +3 -1
  55. package/dist/e-sign-offset/ESignOffsetRuleRow.d.ts.map +1 -1
  56. package/dist/e-sign-offset/ESignOffsetRuleRow.js +12 -71
  57. package/dist/e-sign-offset/ESignOffsetRuleRow.js.map +1 -1
  58. package/dist/e-sign-offset/eSignOffsetController.js +5 -8
  59. package/dist/e-sign-offset/eSignOffsetController.js.map +1 -1
  60. package/dist/editor-core-source.d.ts +2 -2
  61. package/dist/editor-core-source.d.ts.map +1 -1
  62. package/dist/editor-core-source.js +3 -3
  63. package/dist/editor-core-source.js.map +1 -1
  64. package/dist/editor-core.js +2 -2
  65. package/dist/editor-core.js.map +1 -1
  66. package/dist/editor.d.ts.map +1 -1
  67. package/dist/editor.js +56 -118
  68. package/dist/editor.js.map +1 -1
  69. package/dist/image-upload-error.js +3 -3
  70. package/dist/image-upload-error.js.map +1 -1
  71. package/dist/index.d.ts +1 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +0 -1
  74. package/dist/index.js.map +1 -1
  75. package/dist/loadScript.js +7 -8
  76. package/dist/loadScript.js.map +1 -1
  77. package/dist/log.js +2 -3
  78. package/dist/log.js.map +1 -1
  79. package/dist/merge-tags.js +18 -17
  80. package/dist/merge-tags.js.map +1 -1
  81. package/dist/shared/configs.js +1 -2
  82. package/dist/shared/configs.js.map +1 -1
  83. package/dist/shared/const.d.ts +72 -0
  84. package/dist/shared/const.d.ts.map +1 -1
  85. package/dist/shared/const.js +13 -4
  86. package/dist/shared/const.js.map +1 -1
  87. package/dist/shared/date-calc.d.ts +32 -13
  88. package/dist/shared/date-calc.d.ts.map +1 -1
  89. package/dist/shared/date-calc.js +130 -76
  90. package/dist/shared/date-calc.js.map +1 -1
  91. package/dist/shared/e-sign-offset.js +46 -63
  92. package/dist/shared/e-sign-offset.js.map +1 -1
  93. package/dist/shared/edit-icon.js +0 -1
  94. package/dist/shared/edit-icon.js.map +1 -1
  95. package/dist/shared/fonts.js +16 -17
  96. package/dist/shared/fonts.js.map +1 -1
  97. package/dist/shared/forms.js +16 -38
  98. package/dist/shared/forms.js.map +1 -1
  99. package/dist/shared/instance-id.d.ts +3 -0
  100. package/dist/shared/instance-id.d.ts.map +1 -1
  101. package/dist/shared/instance-id.js +10 -7
  102. package/dist/shared/instance-id.js.map +1 -1
  103. package/dist/shared/nunjucks-helpers.js +2 -5
  104. package/dist/shared/nunjucks-helpers.js.map +1 -1
  105. package/dist/shared/schema.js +52 -96
  106. package/dist/shared/schema.js.map +1 -1
  107. package/dist/shared/tools.js +6 -13
  108. package/dist/shared/tools.js.map +1 -1
  109. package/dist/store.d.ts +15 -1
  110. package/dist/store.d.ts.map +1 -1
  111. package/dist/store.js +851 -547
  112. package/dist/store.js.map +1 -1
  113. package/dist/tools.js +133 -143
  114. package/dist/tools.js.map +1 -1
  115. package/dist/unlayer-interface.d.ts +25 -1
  116. package/dist/unlayer-interface.d.ts.map +1 -1
  117. package/dist/unlayer-interface.js +1 -2
  118. package/dist/unlayer-interface.js.map +1 -1
  119. package/dist/unlayer.js +86 -113
  120. package/dist/unlayer.js.map +1 -1
  121. package/dist/vendor/dte-shared/business-calendar-validation.utils.d.ts +25 -0
  122. package/dist/vendor/dte-shared/business-calendar-validation.utils.js +80 -0
  123. package/dist/vendor/dte-shared/components/business-calendar-section.d.ts +15 -0
  124. package/dist/vendor/dte-shared/components/business-calendar-section.js +14 -0
  125. package/dist/vendor/dte-shared/components/schedule-drawer.d.ts +18 -0
  126. package/dist/vendor/dte-shared/components/schedule-drawer.js +119 -0
  127. package/dist/vendor/dte-shared/components/schedule-picker.d.ts +8 -0
  128. package/dist/vendor/dte-shared/components/schedule-picker.js +88 -0
  129. package/dist/vendor/dte-shared/constants.d.ts +31 -0
  130. package/dist/vendor/dte-shared/constants.js +34 -0
  131. package/dist/vendor/dte-shared/field-schedule-editor-context.d.ts +31 -0
  132. package/dist/vendor/dte-shared/field-schedule-editor-context.js +110 -0
  133. package/dist/vendor/dte-shared/index.d.ts +8 -0
  134. package/dist/vendor/dte-shared/index.js +7 -0
  135. package/dist/vendor/dte-shared/schedule-bindings.utils.d.ts +22 -0
  136. package/dist/vendor/dte-shared/schedule-bindings.utils.js +31 -0
  137. package/dist/vendor/dte-shared/styles/schedule.css +19 -0
  138. package/dist/vendor/dte-shared/types.d.ts +129 -0
  139. package/dist/vendor/dte-shared/types.js +1 -0
  140. package/package.json +7 -1
  141. package/src/__tests__/business-calendar-drawer.test.tsx +183 -0
  142. package/src/__tests__/business-calendar-requests.test.ts +166 -0
  143. package/src/__tests__/business-calendar-state.test.tsx +142 -0
  144. package/src/__tests__/condition-row.test.tsx +131 -0
  145. package/src/__tests__/date-calc.test.ts +145 -0
  146. package/src/__tests__/e-sign-offset-modal.test.tsx +124 -0
  147. package/src/__tests__/instance-id.test.ts +49 -0
  148. package/src/__tests__/store.business-calendar.test.ts +185 -0
  149. package/src/__tests__/unlayer.e-sign-types.test.ts +30 -0
  150. package/src/business-calendar/BusinessCalendarDrawer.tsx +76 -0
  151. package/src/business-calendar/business-calendar-requests.ts +80 -0
  152. package/src/business-calendar/business-calendar-state.ts +113 -0
  153. package/src/business-calendar/useBusinessCalendarRequests.ts +49 -0
  154. package/src/display-conditions/ConditionRow.tsx +102 -175
  155. package/src/display-conditions/LookupValueControl.tsx +1 -12
  156. package/src/e-sign-offset/ESignDateSignedOffsetModal.tsx +20 -12
  157. package/src/e-sign-offset/ESignOffsetRuleRow.tsx +7 -2
  158. package/src/editor-core-source.ts +2 -2
  159. package/src/editor.tsx +15 -0
  160. package/src/index.ts +10 -0
  161. package/src/shared/const.ts +61 -0
  162. package/src/shared/date-calc.ts +155 -78
  163. package/src/shared/instance-id.ts +6 -1
  164. package/src/store.ts +68 -5
  165. package/src/unlayer-interface.tsx +25 -1
  166. package/src/unlayer.tsx +5 -5
@@ -5,188 +5,80 @@ import { useCallback, useEffect, useMemo, useState } from 'react';
5
5
  import { createPortal } from 'react-dom';
6
6
  import { MODAL_CONTENT_MAX_HEIGHT } from '../display-conditions/constants';
7
7
  import { getSchemaDataPointOptions } from '../display-conditions/schemaDataPoints';
8
- import { useConditionForms } from '../display-conditions/useConditionForms';
9
- import { addESignOffsetRule, buildESignOffsetSettings, canAddESignOffsetRule, createESignOffsetRule, getESignOffsetRuleCondition, isCompleteESignOffsetCondition, normalizeESignOffsetSettings, removeESignOffsetRule, splitESignOffsetSettings, updateESignOffsetRule } from '../shared/e-sign-offset';
8
+ import { useConditionForms, } from '../display-conditions/useConditionForms';
9
+ import { addESignOffsetRule, buildESignOffsetSettings, canAddESignOffsetRule, createESignOffsetRule, getESignOffsetRuleCondition, isCompleteESignOffsetCondition, normalizeESignOffsetSettings, removeESignOffsetRule, splitESignOffsetSettings, updateESignOffsetRule, } from '../shared/e-sign-offset';
10
10
  import { onESignOffsetRequest } from './eSignOffsetController';
11
11
  import { ESignOffsetDaysField, ESignOffsetRuleRow } from './ESignOffsetRuleRow';
12
- export function ESignDateSignedOffsetModal({ onConditionFormSelect, onConditionalsOpen, portalContainer, schema }) {
12
+ export function ESignDateSignedOffsetModal({ onConditionFormSelect, onConditionalsOpen, portalContainer, schema, }) {
13
13
  const [request, setRequest] = useState(null);
14
14
  const [rules, setRules] = useState([]);
15
15
  const [finalDays, setFinalDays] = useState(0);
16
- const { formFieldOptions, forms, isFieldDataLoading, loadForms, requestFormFields } = useConditionForms({
17
- onConditionFormSelect,
18
- onConditionalsOpen
19
- });
20
- const dataPointOptions = useMemo(()=>getSchemaDataPointOptions(schema), [
21
- schema
22
- ]);
23
- const allFieldOptions = useMemo(()=>[
24
- ...dataPointOptions,
25
- ...formFieldOptions
26
- ], [
27
- dataPointOptions,
28
- formFieldOptions
29
- ]);
30
- useEffect(()=>{
31
- return onESignOffsetRequest((nextRequest)=>{
16
+ const [hasClearedRules, setHasClearedRules] = useState(false);
17
+ const { formFieldOptions, forms, isFieldDataLoading, loadForms, requestFormFields } = useConditionForms({ onConditionFormSelect, onConditionalsOpen });
18
+ const dataPointOptions = useMemo(() => getSchemaDataPointOptions(schema), [schema]);
19
+ const allFieldOptions = useMemo(() => [...dataPointOptions, ...formFieldOptions], [dataPointOptions, formFieldOptions]);
20
+ useEffect(() => {
21
+ return onESignOffsetRequest(nextRequest => {
32
22
  const { conditionedRules, finalDays: nextFinalDays } = splitESignOffsetSettings(normalizeESignOffsetSettings(nextRequest.value));
33
- const initialRules = conditionedRules.length ? conditionedRules : [
34
- createESignOffsetRule()
35
- ];
36
- loadForms(initialRules.flatMap((rule)=>rule.condition.groups));
23
+ const initialRules = conditionedRules.length
24
+ ? conditionedRules
25
+ : [createESignOffsetRule()];
26
+ loadForms(initialRules.flatMap(rule => rule.condition.groups));
37
27
  setRules(initialRules);
38
28
  setFinalDays(nextFinalDays);
29
+ setHasClearedRules(false);
39
30
  setRequest(nextRequest);
40
31
  });
41
- }, [
42
- loadForms
43
- ]);
44
- const canSave = useMemo(()=>{
45
- if (isFieldDataLoading) {
46
- return false;
47
- }
48
- return rules.every((rule)=>{
49
- var _ref;
50
- var _allFieldOptions_find;
51
- const condition = getESignOffsetRuleCondition(rule);
52
- const fieldType = (_ref = (_allFieldOptions_find = allFieldOptions.find((option)=>option.fullKey === (condition === null || condition === void 0 ? void 0 : condition.dataPointKey))) === null || _allFieldOptions_find === void 0 ? void 0 : _allFieldOptions_find.fieldType) !== null && _ref !== void 0 ? _ref : 'string';
53
- return isCompleteESignOffsetCondition(condition, fieldType);
54
- });
55
- }, [
56
- allFieldOptions,
57
- isFieldDataLoading,
58
- rules
59
- ]);
60
- const handleClose = useCallback(()=>{
32
+ }, [loadForms]);
33
+ const isCompleteRule = useCallback((rule) => {
34
+ var _a, _b;
35
+ const condition = getESignOffsetRuleCondition(rule);
36
+ const fieldType = (_b = (_a = allFieldOptions.find(option => option.fullKey === (condition === null || condition === void 0 ? void 0 : condition.dataPointKey))) === null || _a === void 0 ? void 0 : _a.fieldType) !== null && _b !== void 0 ? _b : 'string';
37
+ return isCompleteESignOffsetCondition(condition, fieldType);
38
+ }, [allFieldOptions]);
39
+ /*
40
+ * As in BYOD: "Clear Rules" shows once there is something to clear, and leaves one empty rule
41
+ * that is saved as no rules until it is filled in.
42
+ */
43
+ const hasConfiguredRules = rules.some(isCompleteRule);
44
+ const shouldSaveNoRules = hasClearedRules && !hasConfiguredRules;
45
+ const canSave = !isFieldDataLoading && (shouldSaveNoRules || rules.every(isCompleteRule));
46
+ const handleClose = useCallback(() => {
61
47
  setRequest(null);
62
48
  }, []);
63
- const handleSave = useCallback(()=>{
64
- request === null || request === void 0 ? void 0 : request.done(buildESignOffsetSettings(rules, finalDays));
49
+ const handleSave = useCallback(() => {
50
+ request === null || request === void 0 ? void 0 : request.done(buildESignOffsetSettings(shouldSaveNoRules ? [] : rules, finalDays));
65
51
  setRequest(null);
66
- }, [
67
- finalDays,
68
- request,
69
- rules
70
- ]);
71
- const handleClearRules = useCallback(()=>{
72
- setRules([]);
52
+ }, [finalDays, request, rules, shouldSaveNoRules]);
53
+ const handleClearRules = useCallback(() => {
54
+ setRules([createESignOffsetRule()]);
73
55
  setFinalDays(0);
56
+ setHasClearedRules(true);
74
57
  }, []);
75
- const handleAddRule = useCallback(()=>{
76
- setRules((prev)=>addESignOffsetRule(prev));
58
+ const handleAddRule = useCallback(() => {
59
+ setRules(prev => addESignOffsetRule(prev));
77
60
  }, []);
78
- const handleUpdateRule = useCallback((index, rule)=>{
79
- setRules((prev)=>updateESignOffsetRule(prev, index, rule));
61
+ const handleUpdateRule = useCallback((index, rule) => {
62
+ setRules(prev => updateESignOffsetRule(prev, index, rule));
80
63
  }, []);
81
- const handleRemoveRule = useCallback((index)=>{
82
- setRules((prev)=>removeESignOffsetRule(prev, index));
64
+ const handleRemoveRule = useCallback((index) => {
65
+ setRules(prev => removeESignOffsetRule(prev, index));
83
66
  }, []);
84
67
  if (!request) {
85
68
  return null;
86
69
  }
87
- const dialog = /*#__PURE__*/ _jsxs(Dialog, {
88
- open: true,
89
- onClose: handleClose,
90
- size: "xlarge",
91
- children: [
92
- /*#__PURE__*/ _jsx(Dialog.Header, {
93
- children: "Date Signed Offset Rules"
94
- }),
95
- /*#__PURE__*/ _jsx(Dialog.Content, {
96
- children: /*#__PURE__*/ _jsxs(Flex, {
97
- direction: "column",
98
- gap: "4",
99
- style: {
70
+ const dialog = (_jsxs(Dialog, { open: true, onClose: handleClose, size: "xlarge", children: [_jsx(Dialog.Header, { children: "Date Signed Offset Rules" }), _jsx(Dialog.Content, { children: _jsxs(Flex, { direction: "column", gap: "4", style: {
100
71
  maxHeight: MODAL_CONTENT_MAX_HEIGHT,
101
72
  overflowY: 'auto',
102
73
  paddingRight: 8,
103
- width: '100%'
104
- },
105
- children: [
106
- rules.length === 0 && /*#__PURE__*/ _jsx(Flex, {
107
- justifyContent: "center",
108
- alignItems: "center",
109
- children: /*#__PURE__*/ _jsx(Text, {
110
- variant: "body",
111
- size: "xlarge",
112
- subdued: true,
113
- children: "Rule not configured yet."
114
- })
115
- }),
116
- rules.map((rule, index)=>{
117
- var _ref;
118
- var _rule_condition_groups_;
119
- return /*#__PURE__*/ _jsx(ESignOffsetRuleRow, {
120
- dataPointOptions: dataPointOptions,
121
- formFieldOptions: formFieldOptions,
122
- forms: forms,
123
- onChange: (nextRule)=>handleUpdateRule(index, nextRule),
124
- onFormSelect: requestFormFields,
125
- onRemove: ()=>handleRemoveRule(index),
126
- rule: rule
127
- }, (_ref = (_rule_condition_groups_ = rule.condition.groups[0]) === null || _rule_condition_groups_ === void 0 ? void 0 : _rule_condition_groups_.id) !== null && _ref !== void 0 ? _ref : index);
128
- }),
129
- /*#__PURE__*/ _jsx(Flex, {
130
- children: /*#__PURE__*/ _jsx(Button, {
131
- size: "small",
132
- appearance: "ghost",
133
- icon: {
134
- before: PlusCircleIcon
135
- },
136
- onClick: handleAddRule,
137
- disabled: !canAddESignOffsetRule(rules),
138
- children: rules.length === 0 ? 'Add Condition' : 'Add Else Condition'
139
- })
140
- }),
141
- /*#__PURE__*/ _jsx(Card, {
142
- background: "strong",
143
- padding: "small",
144
- children: /*#__PURE__*/ _jsx(ESignOffsetDaysField, {
145
- chipLabel: rules.length === 0 ? 'THEN' : 'ELSE',
146
- days: finalDays,
147
- onChange: setFinalDays
148
- })
149
- })
150
- ]
151
- })
152
- }),
153
- /*#__PURE__*/ _jsx(Dialog.Footer, {
154
- sticky: true,
155
- children: /*#__PURE__*/ _jsxs(Flex, {
156
- justifyContent: "flex-end",
157
- alignItems: "center",
158
- gap: "3",
159
- style: {
160
- width: '100%'
161
- },
162
- children: [
163
- rules.length > 0 && /*#__PURE__*/ _jsx(Button, {
164
- appearance: "ghost",
165
- onClick: handleClearRules,
166
- children: "Clear Rules"
167
- }),
168
- /*#__PURE__*/ _jsx(Button, {
169
- appearance: "secondary",
170
- onClick: handleClose,
171
- children: "Cancel"
172
- }),
173
- /*#__PURE__*/ _jsx(Button, {
174
- appearance: "primary",
175
- disabled: !canSave,
176
- onClick: handleSave,
177
- children: "Save Changes"
178
- })
179
- ]
180
- })
181
- })
182
- ]
183
- });
74
+ width: '100%',
75
+ }, children: [rules.length === 0 && (_jsx(Flex, { justifyContent: "center", alignItems: "center", children: _jsx(Text, { variant: "body", size: "xlarge", subdued: true, children: "Rule not configured yet." }) })), rules.map((rule, index) => {
76
+ var _a, _b;
77
+ return (_jsx(ESignOffsetRuleRow, { dataPointOptions: dataPointOptions, formFieldOptions: formFieldOptions, forms: forms, onChange: nextRule => handleUpdateRule(index, nextRule), onFormSelect: requestFormFields, onRemove: () => handleRemoveRule(index), rule: rule }, (_b = (_a = rule.condition.groups[0]) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : index));
78
+ }), _jsx(Flex, { children: _jsx(Button, { size: "small", appearance: "ghost", icon: { before: PlusCircleIcon }, onClick: handleAddRule, disabled: !canAddESignOffsetRule(rules), children: rules.length === 0 ? 'Add Condition' : 'Add Else Condition' }) }), _jsx(Card, { background: "strong", padding: "small", children: _jsx(ESignOffsetDaysField, { chipLabel: rules.length === 0 ? 'THEN' : 'ELSE', days: finalDays, onChange: setFinalDays }) })] }) }), _jsx(Dialog.Footer, { sticky: true, children: _jsxs(Flex, { justifyContent: "flex-end", alignItems: "center", gap: "3", style: { width: '100%' }, children: [(hasConfiguredRules || rules.length > 1) && (_jsx(Button, { appearance: "ghost", onClick: handleClearRules, children: "Clear Rules" })), _jsx(Button, { appearance: "secondary", onClick: handleClose, children: "Cancel" }), _jsx(Button, { appearance: "primary", disabled: !canSave, onClick: handleSave, children: "Save Changes" })] }) })] }));
184
79
  if (portalContainer) {
185
- return /*#__PURE__*/ createPortal(/*#__PURE__*/ _jsx(ThemeProvider, {
186
- children: dialog
187
- }), portalContainer);
80
+ return createPortal(_jsx(ThemeProvider, { children: dialog }), portalContainer);
188
81
  }
189
82
  return dialog;
190
83
  }
191
-
192
84
  //# sourceMappingURL=ESignDateSignedOffsetModal.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/e-sign-offset/ESignDateSignedOffsetModal.tsx"],"sourcesContent":["import { Button, Card, Dialog, Flex, Text, ThemeProvider } from '@servicetitan/anvil2';\nimport PlusCircleIcon from '@servicetitan/anvil2/assets/icons/material/round/add_circle.svg';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { MODAL_CONTENT_MAX_HEIGHT } from '../display-conditions/constants';\nimport { getSchemaDataPointOptions } from '../display-conditions/schemaDataPoints';\nimport {\n ConditionalsOpenHandler,\n ConditionFormSelectHandler,\n useConditionForms,\n} from '../display-conditions/useConditionForms';\nimport type { ESignDateSignedOffsetRule } from '../shared/const';\nimport {\n addESignOffsetRule,\n buildESignOffsetSettings,\n canAddESignOffsetRule,\n createESignOffsetRule,\n getESignOffsetRuleCondition,\n isCompleteESignOffsetCondition,\n normalizeESignOffsetSettings,\n removeESignOffsetRule,\n splitESignOffsetSettings,\n updateESignOffsetRule,\n} from '../shared/e-sign-offset';\nimport type { SchemaObject } from '../shared/schema';\nimport { ESignOffsetRequest, onESignOffsetRequest } from './eSignOffsetController';\nimport { ESignOffsetDaysField, ESignOffsetRuleRow } from './ESignOffsetRuleRow';\n\nexport interface ESignDateSignedOffsetModalProps {\n /** Same contract as `DisplayConditionModalProps.portalContainer`. */\n portalContainer?: Element | DocumentFragment | null;\n onConditionFormSelect?: ConditionFormSelectHandler;\n onConditionalsOpen?: ConditionalsOpenHandler;\n schema?: SchemaObject;\n}\n\nexport function ESignDateSignedOffsetModal({\n onConditionFormSelect,\n onConditionalsOpen,\n portalContainer,\n schema,\n}: Readonly<ESignDateSignedOffsetModalProps>) {\n const [request, setRequest] = useState<ESignOffsetRequest | null>(null);\n const [rules, setRules] = useState<ESignDateSignedOffsetRule[]>([]);\n const [finalDays, setFinalDays] = useState(0);\n const { formFieldOptions, forms, isFieldDataLoading, loadForms, requestFormFields } =\n useConditionForms({ onConditionFormSelect, onConditionalsOpen });\n\n const dataPointOptions = useMemo(() => getSchemaDataPointOptions(schema), [schema]);\n const allFieldOptions = useMemo(\n () => [...dataPointOptions, ...formFieldOptions],\n [dataPointOptions, formFieldOptions],\n );\n\n useEffect(() => {\n return onESignOffsetRequest(nextRequest => {\n const { conditionedRules, finalDays: nextFinalDays } = splitESignOffsetSettings(\n normalizeESignOffsetSettings(nextRequest.value),\n );\n const initialRules = conditionedRules.length\n ? conditionedRules\n : [createESignOffsetRule()];\n\n loadForms(initialRules.flatMap(rule => rule.condition.groups));\n setRules(initialRules);\n setFinalDays(nextFinalDays);\n setRequest(nextRequest);\n });\n }, [loadForms]);\n\n const canSave = useMemo(() => {\n if (isFieldDataLoading) {\n return false;\n }\n\n return rules.every(rule => {\n const condition = getESignOffsetRuleCondition(rule);\n const fieldType =\n allFieldOptions.find(option => option.fullKey === condition?.dataPointKey)\n ?.fieldType ?? 'string';\n\n return isCompleteESignOffsetCondition(condition, fieldType);\n });\n }, [allFieldOptions, isFieldDataLoading, rules]);\n\n const handleClose = useCallback(() => {\n setRequest(null);\n }, []);\n\n const handleSave = useCallback(() => {\n request?.done(buildESignOffsetSettings(rules, finalDays));\n setRequest(null);\n }, [finalDays, request, rules]);\n\n const handleClearRules = useCallback(() => {\n setRules([]);\n setFinalDays(0);\n }, []);\n\n const handleAddRule = useCallback(() => {\n setRules(prev => addESignOffsetRule(prev));\n }, []);\n\n const handleUpdateRule = useCallback((index: number, rule: ESignDateSignedOffsetRule) => {\n setRules(prev => updateESignOffsetRule(prev, index, rule));\n }, []);\n\n const handleRemoveRule = useCallback((index: number) => {\n setRules(prev => removeESignOffsetRule(prev, index));\n }, []);\n\n if (!request) {\n return null;\n }\n\n const dialog = (\n <Dialog open onClose={handleClose} size=\"xlarge\">\n <Dialog.Header>Date Signed Offset Rules</Dialog.Header>\n <Dialog.Content>\n <Flex\n direction=\"column\"\n gap=\"4\"\n style={{\n maxHeight: MODAL_CONTENT_MAX_HEIGHT,\n overflowY: 'auto',\n paddingRight: 8,\n width: '100%',\n }}\n >\n {rules.length === 0 && (\n <Flex justifyContent=\"center\" alignItems=\"center\">\n <Text variant=\"body\" size=\"xlarge\" subdued>\n Rule not configured yet.\n </Text>\n </Flex>\n )}\n {rules.map((rule, index) => (\n <ESignOffsetRuleRow\n key={rule.condition.groups[0]?.id ?? index}\n dataPointOptions={dataPointOptions}\n formFieldOptions={formFieldOptions}\n forms={forms}\n onChange={nextRule => handleUpdateRule(index, nextRule)}\n onFormSelect={requestFormFields}\n onRemove={() => handleRemoveRule(index)}\n rule={rule}\n />\n ))}\n <Flex>\n <Button\n size=\"small\"\n appearance=\"ghost\"\n icon={{ before: PlusCircleIcon }}\n onClick={handleAddRule}\n disabled={!canAddESignOffsetRule(rules)}\n >\n {rules.length === 0 ? 'Add Condition' : 'Add Else Condition'}\n </Button>\n </Flex>\n <Card background=\"strong\" padding=\"small\">\n <ESignOffsetDaysField\n chipLabel={rules.length === 0 ? 'THEN' : 'ELSE'}\n days={finalDays}\n onChange={setFinalDays}\n />\n </Card>\n </Flex>\n </Dialog.Content>\n <Dialog.Footer sticky>\n <Flex\n justifyContent=\"flex-end\"\n alignItems=\"center\"\n gap=\"3\"\n style={{ width: '100%' }}\n >\n {rules.length > 0 && (\n <Button appearance=\"ghost\" onClick={handleClearRules}>\n Clear Rules\n </Button>\n )}\n <Button appearance=\"secondary\" onClick={handleClose}>\n Cancel\n </Button>\n <Button appearance=\"primary\" disabled={!canSave} onClick={handleSave}>\n Save Changes\n </Button>\n </Flex>\n </Dialog.Footer>\n </Dialog>\n );\n\n if (portalContainer) {\n return createPortal(<ThemeProvider>{dialog}</ThemeProvider>, portalContainer);\n }\n\n return dialog;\n}\n"],"names":["Button","Card","Dialog","Flex","Text","ThemeProvider","PlusCircleIcon","useCallback","useEffect","useMemo","useState","createPortal","MODAL_CONTENT_MAX_HEIGHT","getSchemaDataPointOptions","useConditionForms","addESignOffsetRule","buildESignOffsetSettings","canAddESignOffsetRule","createESignOffsetRule","getESignOffsetRuleCondition","isCompleteESignOffsetCondition","normalizeESignOffsetSettings","removeESignOffsetRule","splitESignOffsetSettings","updateESignOffsetRule","onESignOffsetRequest","ESignOffsetDaysField","ESignOffsetRuleRow","ESignDateSignedOffsetModal","onConditionFormSelect","onConditionalsOpen","portalContainer","schema","request","setRequest","rules","setRules","finalDays","setFinalDays","formFieldOptions","forms","isFieldDataLoading","loadForms","requestFormFields","dataPointOptions","allFieldOptions","nextRequest","conditionedRules","nextFinalDays","value","initialRules","length","flatMap","rule","condition","groups","canSave","every","fieldType","find","option","fullKey","dataPointKey","handleClose","handleSave","done","handleClearRules","handleAddRule","prev","handleUpdateRule","index","handleRemoveRule","dialog","open","onClose","size","Header","Content","direction","gap","style","maxHeight","overflowY","paddingRight","width","justifyContent","alignItems","variant","subdued","map","onChange","nextRule","onFormSelect","onRemove","id","appearance","icon","before","onClick","disabled","background","padding","chipLabel","days","Footer","sticky"],"mappings":"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"}
1
+ {"version":3,"file":"ESignDateSignedOffsetModal.js","sourceRoot":"","sources":["../../src/e-sign-offset/ESignDateSignedOffsetModal.tsx"],"names":[],"mappings":"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"}
@@ -5,8 +5,10 @@ export interface ESignOffsetDaysFieldProps {
5
5
  chipLabel: string;
6
6
  days: number;
7
7
  onChange: (days: number) => void;
8
+ /** As in BYOD: small in the final card, the condition row's size inside a rule card. */
9
+ size?: 'small' | 'medium';
8
10
  }
9
- export declare function ESignOffsetDaysField({ chipLabel, days, onChange, }: Readonly<ESignOffsetDaysFieldProps>): import("react").JSX.Element;
11
+ export declare function ESignOffsetDaysField({ chipLabel, days, onChange, size, }: Readonly<ESignOffsetDaysFieldProps>): import("react").JSX.Element;
10
12
  export interface ESignOffsetRuleRowProps {
11
13
  dataPointOptions: DataPointOption[];
12
14
  formFieldOptions: FormFieldOption[];
@@ -1 +1 @@
1
- {"version":3,"file":"ESignOffsetRuleRow.d.ts","sourceRoot":"","sources":["../../src/e-sign-offset/ESignOffsetRuleRow.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EAElB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,yBAAyB,EAA0B,MAAM,iBAAiB,CAAC;AAEzF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,WAAW,yBAAyB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,wBAAgB,oBAAoB,CAAC,EACjC,SAAS,EACT,IAAI,EACJ,QAAQ,GACX,EAAE,QAAQ,CAAC,yBAAyB,CAAC,+BAmBrC;AAED,MAAM,WAAW,uBAAuB;IACpC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,EAAE,yBAAyB,CAAC;CACnC;AAED,wBAAgB,kBAAkB,CAAC,EAC/B,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,IAAI,GACP,EAAE,QAAQ,CAAC,uBAAuB,CAAC,+BAuCnC"}
1
+ {"version":3,"file":"ESignOffsetRuleRow.d.ts","sourceRoot":"","sources":["../../src/e-sign-offset/ESignOffsetRuleRow.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EAElB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,yBAAyB,EAA0B,MAAM,iBAAiB,CAAC;AAEzF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,WAAW,yBAAyB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,wFAAwF;IACxF,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,EACjC,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,IAAc,GACjB,EAAE,QAAQ,CAAC,yBAAyB,CAAC,+BAmBrC;AAED,MAAM,WAAW,uBAAuB;IACpC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,EAAE,yBAAyB,CAAC;CACnC;AAED,wBAAgB,kBAAkB,CAAC,EAC/B,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,IAAI,GACP,EAAE,QAAQ,CAAC,uBAAuB,CAAC,+BAyCnC"}
@@ -4,84 +4,25 @@ import { ConditionRow } from '../display-conditions/ConditionRow';
4
4
  import { defaultCondition, defaultGroup } from '../display-conditions/constants';
5
5
  import { MAX_E_SIGN_OFFSET_DAYS } from '../shared/const';
6
6
  import { clampESignOffsetDays } from '../shared/e-sign-offset';
7
- export function ESignOffsetDaysField({ chipLabel, days, onChange }) {
8
- return /*#__PURE__*/ _jsxs(Flex, {
9
- children: [
10
- /*#__PURE__*/ _jsx(Flex, {
11
- alignItems: "center",
12
- style: {
13
- padding: '8px 12px'
14
- },
15
- children: /*#__PURE__*/ _jsx(Chip, {
16
- label: chipLabel,
17
- size: "medium"
18
- })
19
- }),
20
- /*#__PURE__*/ _jsx(NumberField, {
21
- label: "Number of days",
22
- size: "small",
23
- value: days,
24
- minValue: 0,
25
- maxValue: MAX_E_SIGN_OFFSET_DAYS,
26
- maximumFractionDigits: 0,
27
- suffix: "days",
28
- hint: `days range up to ${MAX_E_SIGN_OFFSET_DAYS}`,
29
- onChange: (value)=>onChange(clampESignOffsetDays(value))
30
- })
31
- ]
32
- });
7
+ export function ESignOffsetDaysField({ chipLabel, days, onChange, size = 'small', }) {
8
+ return (_jsxs(Flex, { children: [_jsx(Flex, { alignItems: "center", style: { padding: '8px 12px' }, children: _jsx(Chip, { label: chipLabel, size: "medium" }) }), _jsx(NumberField, { label: "Number of days", size: size, value: days, minValue: 0, maxValue: MAX_E_SIGN_OFFSET_DAYS, maximumFractionDigits: 0, suffix: "days", hint: `days range up to ${MAX_E_SIGN_OFFSET_DAYS}`, onChange: value => onChange(clampESignOffsetDays(value)) })] }));
33
9
  }
34
- export function ESignOffsetRuleRow({ dataPointOptions, formFieldOptions, forms, onChange, onFormSelect, onRemove, rule }) {
35
- var _rule_condition_groups_, _group_conditions_;
36
- const group = (_rule_condition_groups_ = rule.condition.groups[0]) !== null && _rule_condition_groups_ !== void 0 ? _rule_condition_groups_ : defaultGroup();
37
- const condition = (_group_conditions_ = group.conditions[0]) !== null && _group_conditions_ !== void 0 ? _group_conditions_ : defaultCondition();
38
- const handleConditionChange = (nextCondition)=>{
10
+ export function ESignOffsetRuleRow({ dataPointOptions, formFieldOptions, forms, onChange, onFormSelect, onRemove, rule, }) {
11
+ var _a, _b;
12
+ const group = (_a = rule.condition.groups[0]) !== null && _a !== void 0 ? _a : defaultGroup();
13
+ const condition = (_b = group.conditions[0]) !== null && _b !== void 0 ? _b : defaultCondition();
14
+ const handleConditionChange = (nextCondition) => {
39
15
  onChange({
40
16
  ...rule,
41
17
  condition: {
42
18
  behavior: 'show',
43
- groups: [
44
- {
45
- conditions: [
46
- nextCondition
47
- ],
48
- id: group.id
49
- }
50
- ]
51
- }
19
+ groups: [{ conditions: [nextCondition], id: group.id }],
20
+ },
52
21
  });
53
22
  };
54
- const handleDaysChange = (days)=>{
55
- onChange({
56
- ...rule,
57
- days
58
- });
23
+ const handleDaysChange = (days) => {
24
+ onChange({ ...rule, days });
59
25
  };
60
- return /*#__PURE__*/ _jsx(Card, {
61
- background: "strong",
62
- padding: "small",
63
- children: /*#__PURE__*/ _jsxs(Flex, {
64
- direction: "column",
65
- gap: "3",
66
- children: [
67
- /*#__PURE__*/ _jsx(ConditionRow, {
68
- canRemove: true,
69
- condition: condition,
70
- dataPointOptions: dataPointOptions,
71
- formFieldOptions: formFieldOptions,
72
- forms: forms,
73
- onChange: handleConditionChange,
74
- onFormSelect: onFormSelect,
75
- onRemove: onRemove
76
- }),
77
- /*#__PURE__*/ _jsx(ESignOffsetDaysField, {
78
- chipLabel: "THEN",
79
- days: rule.days,
80
- onChange: handleDaysChange
81
- })
82
- ]
83
- })
84
- });
26
+ return (_jsx(Card, { background: "strong", padding: "small", children: _jsxs(Flex, { direction: "column", gap: "3", flex: 1, children: [_jsx(ConditionRow, { canRemove: true, condition: condition, dataPointOptions: dataPointOptions, formFieldOptions: formFieldOptions, forms: forms, onChange: handleConditionChange, onFormSelect: onFormSelect, onRemove: onRemove }), _jsx(ESignOffsetDaysField, { chipLabel: "THEN", days: rule.days, onChange: handleDaysChange, size: "medium" })] }) }));
85
27
  }
86
-
87
28
  //# sourceMappingURL=ESignOffsetRuleRow.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/e-sign-offset/ESignOffsetRuleRow.tsx"],"sourcesContent":["import { Card, Chip, Flex, NumberField } from '@servicetitan/anvil2';\nimport { ConditionRow } from '../display-conditions/ConditionRow';\nimport { defaultCondition, defaultGroup } from '../display-conditions/constants';\nimport type {\n DataPointOption,\n FormFieldOption,\n SingleCondition,\n} from '../display-conditions/types';\nimport { type ESignDateSignedOffsetRule, MAX_E_SIGN_OFFSET_DAYS } from '../shared/const';\nimport { clampESignOffsetDays } from '../shared/e-sign-offset';\nimport { FormInfo } from '../shared/forms';\n\nexport interface ESignOffsetDaysFieldProps {\n chipLabel: string;\n days: number;\n onChange: (days: number) => void;\n}\n\nexport function ESignOffsetDaysField({\n chipLabel,\n days,\n onChange,\n}: Readonly<ESignOffsetDaysFieldProps>) {\n return (\n <Flex>\n <Flex alignItems=\"center\" style={{ padding: '8px 12px' }}>\n <Chip label={chipLabel} size=\"medium\" />\n </Flex>\n <NumberField\n label=\"Number of days\"\n size=\"small\"\n value={days}\n minValue={0}\n maxValue={MAX_E_SIGN_OFFSET_DAYS}\n maximumFractionDigits={0}\n suffix=\"days\"\n hint={`days range up to ${MAX_E_SIGN_OFFSET_DAYS}`}\n onChange={value => onChange(clampESignOffsetDays(value))}\n />\n </Flex>\n );\n}\n\nexport interface ESignOffsetRuleRowProps {\n dataPointOptions: DataPointOption[];\n formFieldOptions: FormFieldOption[];\n forms: FormInfo[];\n onChange: (rule: ESignDateSignedOffsetRule) => void;\n onFormSelect: (formId: number) => void;\n onRemove: () => void;\n rule: ESignDateSignedOffsetRule;\n}\n\nexport function ESignOffsetRuleRow({\n dataPointOptions,\n formFieldOptions,\n forms,\n onChange,\n onFormSelect,\n onRemove,\n rule,\n}: Readonly<ESignOffsetRuleRowProps>) {\n const group = rule.condition.groups[0] ?? defaultGroup();\n const condition = group.conditions[0] ?? defaultCondition();\n\n const handleConditionChange = (nextCondition: SingleCondition) => {\n onChange({\n ...rule,\n condition: {\n behavior: 'show',\n groups: [{ conditions: [nextCondition], id: group.id }],\n },\n });\n };\n\n const handleDaysChange = (days: number) => {\n onChange({ ...rule, days });\n };\n\n return (\n <Card background=\"strong\" padding=\"small\">\n <Flex direction=\"column\" gap=\"3\">\n <ConditionRow\n canRemove\n condition={condition}\n dataPointOptions={dataPointOptions}\n formFieldOptions={formFieldOptions}\n forms={forms}\n onChange={handleConditionChange}\n onFormSelect={onFormSelect}\n onRemove={onRemove}\n />\n <ESignOffsetDaysField\n chipLabel=\"THEN\"\n days={rule.days}\n onChange={handleDaysChange}\n />\n </Flex>\n </Card>\n );\n}\n"],"names":["Card","Chip","Flex","NumberField","ConditionRow","defaultCondition","defaultGroup","MAX_E_SIGN_OFFSET_DAYS","clampESignOffsetDays","ESignOffsetDaysField","chipLabel","days","onChange","alignItems","style","padding","label","size","value","minValue","maxValue","maximumFractionDigits","suffix","hint","ESignOffsetRuleRow","dataPointOptions","formFieldOptions","forms","onFormSelect","onRemove","rule","group","condition","groups","conditions","handleConditionChange","nextCondition","behavior","id","handleDaysChange","background","direction","gap","canRemove"],"mappings":";AAAA,SAASA,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,WAAW,QAAQ,uBAAuB;AACrE,SAASC,YAAY,QAAQ,qCAAqC;AAClE,SAASC,gBAAgB,EAAEC,YAAY,QAAQ,kCAAkC;AAMjF,SAAyCC,sBAAsB,QAAQ,kBAAkB;AACzF,SAASC,oBAAoB,QAAQ,0BAA0B;AAS/D,OAAO,SAASC,qBAAqB,EACjCC,SAAS,EACTC,IAAI,EACJC,QAAQ,EAC0B;IAClC,qBACI,MAACV;;0BACG,KAACA;gBAAKW,YAAW;gBAASC,OAAO;oBAAEC,SAAS;gBAAW;0BACnD,cAAA,KAACd;oBAAKe,OAAON;oBAAWO,MAAK;;;0BAEjC,KAACd;gBACGa,OAAM;gBACNC,MAAK;gBACLC,OAAOP;gBACPQ,UAAU;gBACVC,UAAUb;gBACVc,uBAAuB;gBACvBC,QAAO;gBACPC,MAAM,CAAC,iBAAiB,EAAEhB,wBAAwB;gBAClDK,UAAUM,CAAAA,QAASN,SAASJ,qBAAqBU;;;;AAIjE;AAYA,OAAO,SAASM,mBAAmB,EAC/BC,gBAAgB,EAChBC,gBAAgB,EAChBC,KAAK,EACLf,QAAQ,EACRgB,YAAY,EACZC,QAAQ,EACRC,IAAI,EAC4B;QAClBA,yBACIC;IADlB,MAAMA,SAAQD,0BAAAA,KAAKE,SAAS,CAACC,MAAM,CAAC,EAAE,cAAxBH,qCAAAA,0BAA4BxB;IAC1C,MAAM0B,aAAYD,qBAAAA,MAAMG,UAAU,CAAC,EAAE,cAAnBH,gCAAAA,qBAAuB1B;IAEzC,MAAM8B,wBAAwB,CAACC;QAC3BxB,SAAS;YACL,GAAGkB,IAAI;YACPE,WAAW;gBACPK,UAAU;gBACVJ,QAAQ;oBAAC;wBAAEC,YAAY;4BAACE;yBAAc;wBAAEE,IAAIP,MAAMO,EAAE;oBAAC;iBAAE;YAC3D;QACJ;IACJ;IAEA,MAAMC,mBAAmB,CAAC5B;QACtBC,SAAS;YAAE,GAAGkB,IAAI;YAAEnB;QAAK;IAC7B;IAEA,qBACI,KAACX;QAAKwC,YAAW;QAASzB,SAAQ;kBAC9B,cAAA,MAACb;YAAKuC,WAAU;YAASC,KAAI;;8BACzB,KAACtC;oBACGuC,SAAS;oBACTX,WAAWA;oBACXP,kBAAkBA;oBAClBC,kBAAkBA;oBAClBC,OAAOA;oBACPf,UAAUuB;oBACVP,cAAcA;oBACdC,UAAUA;;8BAEd,KAACpB;oBACGC,WAAU;oBACVC,MAAMmB,KAAKnB,IAAI;oBACfC,UAAU2B;;;;;AAK9B"}
1
+ {"version":3,"file":"ESignOffsetRuleRow.js","sourceRoot":"","sources":["../../src/e-sign-offset/ESignOffsetRuleRow.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAMjF,OAAO,EAAkC,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAW/D,MAAM,UAAU,oBAAoB,CAAC,EACjC,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,IAAI,GAAG,OAAO,GACoB;IAClC,OAAO,CACH,MAAC,IAAI,eACD,KAAC,IAAI,IAAC,UAAU,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,YACpD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAC,QAAQ,GAAG,GACrC,EACP,KAAC,WAAW,IACR,KAAK,EAAC,gBAAgB,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,sBAAsB,EAChC,qBAAqB,EAAE,CAAC,EACxB,MAAM,EAAC,MAAM,EACb,IAAI,EAAE,oBAAoB,sBAAsB,EAAE,EAClD,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,GAC1D,IACC,CACV,CAAC;AACN,CAAC;AAYD,MAAM,UAAU,kBAAkB,CAAC,EAC/B,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,IAAI,GAC4B;;IAChC,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAI,YAAY,EAAE,CAAC;IACzD,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,mCAAI,gBAAgB,EAAE,CAAC;IAE5D,MAAM,qBAAqB,GAAG,CAAC,aAA8B,EAAE,EAAE;QAC7D,QAAQ,CAAC;YACL,GAAG,IAAI;YACP,SAAS,EAAE;gBACP,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;aAC1D;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;QACtC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,IAAI,IAAC,UAAU,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,YAErC,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAE,CAAC,aACpC,KAAC,YAAY,IACT,SAAS,QACT,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,qBAAqB,EAC/B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,GACpB,EACF,KAAC,oBAAoB,IACjB,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAC,QAAQ,GACf,IACC,GACJ,CACV,CAAC;AACN,CAAC"}
@@ -1,27 +1,24 @@
1
1
  const E_SIGN_OFFSET_EVENT = 'dte:e-sign-offset';
2
2
  const eSignOffsetEvents = new EventTarget();
3
3
  let activeListeners = 0;
4
- export const onESignOffsetRequest = (listener)=>{
5
- const handler = (event)=>{
4
+ export const onESignOffsetRequest = (listener) => {
5
+ const handler = (event) => {
6
6
  if (event instanceof CustomEvent && event.detail) {
7
7
  listener(event.detail);
8
8
  }
9
9
  };
10
10
  activeListeners += 1;
11
11
  eSignOffsetEvents.addEventListener(E_SIGN_OFFSET_EVENT, handler);
12
- return ()=>{
12
+ return () => {
13
13
  activeListeners = Math.max(0, activeListeners - 1);
14
14
  eSignOffsetEvents.removeEventListener(E_SIGN_OFFSET_EVENT, handler);
15
15
  };
16
16
  };
17
- export const emitESignOffsetRequest = (request)=>{
17
+ export const emitESignOffsetRequest = (request) => {
18
18
  if (activeListeners === 0) {
19
19
  request.done(request.value);
20
20
  return;
21
21
  }
22
- eSignOffsetEvents.dispatchEvent(new CustomEvent(E_SIGN_OFFSET_EVENT, {
23
- detail: request
24
- }));
22
+ eSignOffsetEvents.dispatchEvent(new CustomEvent(E_SIGN_OFFSET_EVENT, { detail: request }));
25
23
  };
26
-
27
24
  //# sourceMappingURL=eSignOffsetController.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/e-sign-offset/eSignOffsetController.ts"],"sourcesContent":["import type { ESignDateSignedOffsetSettings } from '../shared/const';\n\nexport interface ESignOffsetRequest {\n value: ESignDateSignedOffsetSettings;\n done: (value: ESignDateSignedOffsetSettings) => void;\n}\n\ntype Listener = (request: ESignOffsetRequest) => void;\n\nconst E_SIGN_OFFSET_EVENT = 'dte:e-sign-offset';\nconst eSignOffsetEvents = new EventTarget();\nlet activeListeners = 0;\n\nexport const onESignOffsetRequest = (listener: Listener) => {\n const handler = (event: Event) => {\n if (event instanceof CustomEvent && event.detail) {\n listener(event.detail);\n }\n };\n\n activeListeners += 1;\n eSignOffsetEvents.addEventListener(E_SIGN_OFFSET_EVENT, handler);\n\n return () => {\n activeListeners = Math.max(0, activeListeners - 1);\n eSignOffsetEvents.removeEventListener(E_SIGN_OFFSET_EVENT, handler);\n };\n};\n\nexport const emitESignOffsetRequest = (request: ESignOffsetRequest) => {\n if (activeListeners === 0) {\n request.done(request.value);\n return;\n }\n\n eSignOffsetEvents.dispatchEvent(\n new CustomEvent<ESignOffsetRequest>(E_SIGN_OFFSET_EVENT, { detail: request }),\n );\n};\n"],"names":["E_SIGN_OFFSET_EVENT","eSignOffsetEvents","EventTarget","activeListeners","onESignOffsetRequest","listener","handler","event","CustomEvent","detail","addEventListener","Math","max","removeEventListener","emitESignOffsetRequest","request","done","value","dispatchEvent"],"mappings":"AASA,MAAMA,sBAAsB;AAC5B,MAAMC,oBAAoB,IAAIC;AAC9B,IAAIC,kBAAkB;AAEtB,OAAO,MAAMC,uBAAuB,CAACC;IACjC,MAAMC,UAAU,CAACC;QACb,IAAIA,iBAAiBC,eAAeD,MAAME,MAAM,EAAE;YAC9CJ,SAASE,MAAME,MAAM;QACzB;IACJ;IAEAN,mBAAmB;IACnBF,kBAAkBS,gBAAgB,CAACV,qBAAqBM;IAExD,OAAO;QACHH,kBAAkBQ,KAAKC,GAAG,CAAC,GAAGT,kBAAkB;QAChDF,kBAAkBY,mBAAmB,CAACb,qBAAqBM;IAC/D;AACJ,EAAE;AAEF,OAAO,MAAMQ,yBAAyB,CAACC;IACnC,IAAIZ,oBAAoB,GAAG;QACvBY,QAAQC,IAAI,CAACD,QAAQE,KAAK;QAC1B;IACJ;IAEAhB,kBAAkBiB,aAAa,CAC3B,IAAIV,YAAgCR,qBAAqB;QAAES,QAAQM;IAAQ;AAEnF,EAAE"}
1
+ {"version":3,"file":"eSignOffsetController.js","sourceRoot":"","sources":["../../src/e-sign-offset/eSignOffsetController.ts"],"names":[],"mappings":"AASA,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAChD,MAAM,iBAAiB,GAAG,IAAI,WAAW,EAAE,CAAC;AAC5C,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAE,EAAE;IACvD,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;QAC7B,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/C,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC,CAAC;IAEF,eAAe,IAAI,CAAC,CAAC;IACrB,iBAAiB,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAEjE,OAAO,GAAG,EAAE;QACR,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;QACnD,iBAAiB,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAA2B,EAAE,EAAE;IAClE,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO;IACX,CAAC;IAED,iBAAiB,CAAC,aAAa,CAC3B,IAAI,WAAW,CAAqB,mBAAmB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAChF,CAAC;AACN,CAAC,CAAC"}