@elliemae/loan-field-renderers 26.2.2

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 (225) hide show
  1. package/dist/cjs/ARCHITECTURE.md +434 -0
  2. package/dist/cjs/OVERVIEW.md +229 -0
  3. package/dist/cjs/bll/constants.js +86 -0
  4. package/dist/cjs/bll/formatters/booleanFormatter.js +51 -0
  5. package/dist/cjs/bll/formatters/dateFormatter.js +78 -0
  6. package/dist/cjs/bll/formatters/dropdownFormatter.js +34 -0
  7. package/dist/cjs/bll/formatters/factory/index.js +115 -0
  8. package/dist/cjs/bll/formatters/index.js +24 -0
  9. package/dist/cjs/bll/formatters/numberFormatter.js +70 -0
  10. package/dist/cjs/bll/formatters/phoneFormatter.js +57 -0
  11. package/dist/cjs/bll/formatters/regexFormatter.js +52 -0
  12. package/dist/cjs/bll/formatters/ssnFormatter.js +50 -0
  13. package/dist/cjs/bll/formatters/textFormatter.js +43 -0
  14. package/dist/cjs/bll/formatters/zipFormatter.js +48 -0
  15. package/dist/cjs/bll/index.js +62 -0
  16. package/dist/cjs/bll/ssf/index.js +48 -0
  17. package/dist/cjs/bll/ssf/loan.js +81 -0
  18. package/dist/cjs/bll/ssf/loconnect.js +70 -0
  19. package/dist/cjs/bll/ssf/ssfBase.js +97 -0
  20. package/dist/cjs/bll/ssf/types.js +16 -0
  21. package/dist/cjs/bll/types.js +16 -0
  22. package/dist/cjs/bll/validators/dateValidator.js +60 -0
  23. package/dist/cjs/bll/validators/emailValidator.js +47 -0
  24. package/dist/cjs/bll/validators/factory/index.js +81 -0
  25. package/dist/cjs/bll/validators/index.js +24 -0
  26. package/dist/cjs/bll/validators/maxCharValidator.js +49 -0
  27. package/dist/cjs/bll/validators/requiredValidator.js +44 -0
  28. package/dist/cjs/bll/validators/zipValidator.js +53 -0
  29. package/dist/cjs/core/index.js +52 -0
  30. package/dist/cjs/demo/config.js +391 -0
  31. package/dist/cjs/demo/index.js +31 -0
  32. package/dist/cjs/package.json +7 -0
  33. package/dist/cjs/renderer/FieldRenderer.js +45 -0
  34. package/dist/cjs/renderer/base/hooks/fieldDescription.js +39 -0
  35. package/dist/cjs/renderer/base/hooks/fieldDisabled.js +53 -0
  36. package/dist/cjs/renderer/base/hooks/fieldGoTo.js +50 -0
  37. package/dist/cjs/renderer/base/hooks/fieldLocked.js +42 -0
  38. package/dist/cjs/renderer/base/hooks/fieldMeta.js +150 -0
  39. package/dist/cjs/renderer/base/hooks/fieldSubscribers.js +66 -0
  40. package/dist/cjs/renderer/base/hooks/fieldValidation.js +45 -0
  41. package/dist/cjs/renderer/base/hooks/fieldValue.js +215 -0
  42. package/dist/cjs/renderer/base/hooks/hookBase.js +29 -0
  43. package/dist/cjs/renderer/base/hooks/index.js +139 -0
  44. package/dist/cjs/renderer/base/renderer.js +198 -0
  45. package/dist/cjs/renderer/base/rendererValidator.js +97 -0
  46. package/dist/cjs/renderer/factory/index.js +58 -0
  47. package/dist/cjs/renderer/field-renderers/AddonRenderer.js +75 -0
  48. package/dist/cjs/renderer/field-renderers/CheckboxRenderer.js +123 -0
  49. package/dist/cjs/renderer/field-renderers/DateRenderer.js +206 -0
  50. package/dist/cjs/renderer/field-renderers/DropdownRenderer/hook.js +99 -0
  51. package/dist/cjs/renderer/field-renderers/DropdownRenderer/index.js +216 -0
  52. package/dist/cjs/renderer/field-renderers/LargeTextRenderer.js +209 -0
  53. package/dist/cjs/renderer/field-renderers/NumberRenderer.js +216 -0
  54. package/dist/cjs/renderer/field-renderers/RadioGroupRenderer.js +128 -0
  55. package/dist/cjs/renderer/field-renderers/RadioRenderer.js +121 -0
  56. package/dist/cjs/renderer/field-renderers/TextRenderer.js +223 -0
  57. package/dist/cjs/renderer/field-renderers/ToggleRenderer.js +121 -0
  58. package/dist/cjs/renderer/field-renderers/ZipCodeRenderer/helper.js +132 -0
  59. package/dist/cjs/renderer/field-renderers/ZipCodeRenderer/hook.js +128 -0
  60. package/dist/cjs/renderer/field-renderers/ZipCodeRenderer/index.js +273 -0
  61. package/dist/cjs/renderer/index.js +24 -0
  62. package/dist/cjs/renderer/styles.js +51 -0
  63. package/dist/cjs/renderer/types.js +16 -0
  64. package/dist/cjs/tests/base/flowBase.js +125 -0
  65. package/dist/cjs/tests/base/index.js +52 -0
  66. package/dist/cjs/tests/flows/checkboxRendererFlows.js +85 -0
  67. package/dist/cjs/tests/flows/dateRendererFlows.js +870 -0
  68. package/dist/cjs/tests/flows/dropdownRendererFlows.js +591 -0
  69. package/dist/cjs/tests/flows/largeTextRendererFlows.js +99 -0
  70. package/dist/cjs/tests/flows/numberRendererFlows.js +175 -0
  71. package/dist/cjs/tests/flows/radioRendererFlows.js +115 -0
  72. package/dist/cjs/tests/flows/textRendererFlows.js +349 -0
  73. package/dist/cjs/tests/flows/toggleRendererFlows.js +106 -0
  74. package/dist/cjs/tests/flows/zipCodeRendererFlows.js +1163 -0
  75. package/dist/cjs/utils/dateHelper.js +65 -0
  76. package/dist/esm/ARCHITECTURE.md +434 -0
  77. package/dist/esm/OVERVIEW.md +229 -0
  78. package/dist/esm/bll/constants.js +66 -0
  79. package/dist/esm/bll/formatters/booleanFormatter.js +33 -0
  80. package/dist/esm/bll/formatters/dateFormatter.js +48 -0
  81. package/dist/esm/bll/formatters/dropdownFormatter.js +14 -0
  82. package/dist/esm/bll/formatters/factory/index.js +97 -0
  83. package/dist/esm/bll/formatters/index.js +4 -0
  84. package/dist/esm/bll/formatters/numberFormatter.js +54 -0
  85. package/dist/esm/bll/formatters/phoneFormatter.js +41 -0
  86. package/dist/esm/bll/formatters/regexFormatter.js +34 -0
  87. package/dist/esm/bll/formatters/ssnFormatter.js +32 -0
  88. package/dist/esm/bll/formatters/textFormatter.js +25 -0
  89. package/dist/esm/bll/formatters/zipFormatter.js +30 -0
  90. package/dist/esm/bll/index.js +44 -0
  91. package/dist/esm/bll/ssf/index.js +30 -0
  92. package/dist/esm/bll/ssf/loan.js +63 -0
  93. package/dist/esm/bll/ssf/loconnect.js +52 -0
  94. package/dist/esm/bll/ssf/ssfBase.js +67 -0
  95. package/dist/esm/bll/ssf/types.js +0 -0
  96. package/dist/esm/bll/types.js +0 -0
  97. package/dist/esm/bll/validators/dateValidator.js +30 -0
  98. package/dist/esm/bll/validators/emailValidator.js +29 -0
  99. package/dist/esm/bll/validators/factory/index.js +63 -0
  100. package/dist/esm/bll/validators/index.js +4 -0
  101. package/dist/esm/bll/validators/maxCharValidator.js +31 -0
  102. package/dist/esm/bll/validators/requiredValidator.js +26 -0
  103. package/dist/esm/bll/validators/zipValidator.js +35 -0
  104. package/dist/esm/core/index.js +34 -0
  105. package/dist/esm/demo/config.js +371 -0
  106. package/dist/esm/demo/index.js +11 -0
  107. package/dist/esm/package.json +7 -0
  108. package/dist/esm/renderer/FieldRenderer.js +15 -0
  109. package/dist/esm/renderer/base/hooks/fieldDescription.js +19 -0
  110. package/dist/esm/renderer/base/hooks/fieldDisabled.js +33 -0
  111. package/dist/esm/renderer/base/hooks/fieldGoTo.js +30 -0
  112. package/dist/esm/renderer/base/hooks/fieldLocked.js +22 -0
  113. package/dist/esm/renderer/base/hooks/fieldMeta.js +132 -0
  114. package/dist/esm/renderer/base/hooks/fieldSubscribers.js +36 -0
  115. package/dist/esm/renderer/base/hooks/fieldValidation.js +25 -0
  116. package/dist/esm/renderer/base/hooks/fieldValue.js +195 -0
  117. package/dist/esm/renderer/base/hooks/hookBase.js +9 -0
  118. package/dist/esm/renderer/base/hooks/index.js +121 -0
  119. package/dist/esm/renderer/base/renderer.js +178 -0
  120. package/dist/esm/renderer/base/rendererValidator.js +77 -0
  121. package/dist/esm/renderer/factory/index.js +38 -0
  122. package/dist/esm/renderer/field-renderers/AddonRenderer.js +55 -0
  123. package/dist/esm/renderer/field-renderers/CheckboxRenderer.js +93 -0
  124. package/dist/esm/renderer/field-renderers/DateRenderer.js +176 -0
  125. package/dist/esm/renderer/field-renderers/DropdownRenderer/hook.js +79 -0
  126. package/dist/esm/renderer/field-renderers/DropdownRenderer/index.js +186 -0
  127. package/dist/esm/renderer/field-renderers/LargeTextRenderer.js +179 -0
  128. package/dist/esm/renderer/field-renderers/NumberRenderer.js +188 -0
  129. package/dist/esm/renderer/field-renderers/RadioGroupRenderer.js +108 -0
  130. package/dist/esm/renderer/field-renderers/RadioRenderer.js +91 -0
  131. package/dist/esm/renderer/field-renderers/TextRenderer.js +197 -0
  132. package/dist/esm/renderer/field-renderers/ToggleRenderer.js +91 -0
  133. package/dist/esm/renderer/field-renderers/ZipCodeRenderer/helper.js +112 -0
  134. package/dist/esm/renderer/field-renderers/ZipCodeRenderer/hook.js +108 -0
  135. package/dist/esm/renderer/field-renderers/ZipCodeRenderer/index.js +247 -0
  136. package/dist/esm/renderer/index.js +4 -0
  137. package/dist/esm/renderer/styles.js +21 -0
  138. package/dist/esm/renderer/types.js +0 -0
  139. package/dist/esm/tests/base/flowBase.js +105 -0
  140. package/dist/esm/tests/base/index.js +22 -0
  141. package/dist/esm/tests/flows/checkboxRendererFlows.js +65 -0
  142. package/dist/esm/tests/flows/dateRendererFlows.js +850 -0
  143. package/dist/esm/tests/flows/dropdownRendererFlows.js +571 -0
  144. package/dist/esm/tests/flows/largeTextRendererFlows.js +79 -0
  145. package/dist/esm/tests/flows/numberRendererFlows.js +155 -0
  146. package/dist/esm/tests/flows/radioRendererFlows.js +95 -0
  147. package/dist/esm/tests/flows/textRendererFlows.js +329 -0
  148. package/dist/esm/tests/flows/toggleRendererFlows.js +86 -0
  149. package/dist/esm/tests/flows/zipCodeRendererFlows.js +1143 -0
  150. package/dist/esm/utils/dateHelper.js +35 -0
  151. package/dist/types/lib/bll/constants.d.ts +9 -0
  152. package/dist/types/lib/bll/formatters/booleanFormatter.d.ts +5 -0
  153. package/dist/types/lib/bll/formatters/dateFormatter.d.ts +28 -0
  154. package/dist/types/lib/bll/formatters/dropdownFormatter.d.ts +6 -0
  155. package/dist/types/lib/bll/formatters/factory/index.d.ts +71 -0
  156. package/dist/types/lib/bll/formatters/index.d.ts +2 -0
  157. package/dist/types/lib/bll/formatters/numberFormatter.d.ts +6 -0
  158. package/dist/types/lib/bll/formatters/phoneFormatter.d.ts +7 -0
  159. package/dist/types/lib/bll/formatters/regexFormatter.d.ts +5 -0
  160. package/dist/types/lib/bll/formatters/ssnFormatter.d.ts +5 -0
  161. package/dist/types/lib/bll/formatters/textFormatter.d.ts +6 -0
  162. package/dist/types/lib/bll/formatters/zipFormatter.d.ts +5 -0
  163. package/dist/types/lib/bll/index.d.ts +20 -0
  164. package/dist/types/lib/bll/ssf/index.d.ts +25 -0
  165. package/dist/types/lib/bll/ssf/loan.d.ts +16 -0
  166. package/dist/types/lib/bll/ssf/loconnect.d.ts +15 -0
  167. package/dist/types/lib/bll/ssf/ssfBase.d.ts +23 -0
  168. package/dist/types/lib/bll/ssf/types.d.ts +99 -0
  169. package/dist/types/lib/bll/types.d.ts +47 -0
  170. package/dist/types/lib/bll/validators/dateValidator.d.ts +16 -0
  171. package/dist/types/lib/bll/validators/emailValidator.d.ts +4 -0
  172. package/dist/types/lib/bll/validators/factory/index.d.ts +15 -0
  173. package/dist/types/lib/bll/validators/index.d.ts +2 -0
  174. package/dist/types/lib/bll/validators/maxCharValidator.d.ts +4 -0
  175. package/dist/types/lib/bll/validators/requiredValidator.d.ts +4 -0
  176. package/dist/types/lib/bll/validators/zipValidator.d.ts +5 -0
  177. package/dist/types/lib/core/index.d.ts +29 -0
  178. package/dist/types/lib/demo/config.d.ts +11 -0
  179. package/dist/types/lib/demo/index.d.ts +1 -0
  180. package/dist/types/lib/renderer/FieldRenderer.d.ts +5 -0
  181. package/dist/types/lib/renderer/base/hooks/fieldDescription.d.ts +5 -0
  182. package/dist/types/lib/renderer/base/hooks/fieldDisabled.d.ts +10 -0
  183. package/dist/types/lib/renderer/base/hooks/fieldGoTo.d.ts +4 -0
  184. package/dist/types/lib/renderer/base/hooks/fieldLocked.d.ts +4 -0
  185. package/dist/types/lib/renderer/base/hooks/fieldMeta.d.ts +10 -0
  186. package/dist/types/lib/renderer/base/hooks/fieldSubscribers.d.ts +6 -0
  187. package/dist/types/lib/renderer/base/hooks/fieldValidation.d.ts +9 -0
  188. package/dist/types/lib/renderer/base/hooks/fieldValue.d.ts +31 -0
  189. package/dist/types/lib/renderer/base/hooks/hookBase.d.ts +9 -0
  190. package/dist/types/lib/renderer/base/hooks/index.d.ts +19 -0
  191. package/dist/types/lib/renderer/base/renderer.d.ts +43 -0
  192. package/dist/types/lib/renderer/base/rendererValidator.d.ts +15 -0
  193. package/dist/types/lib/renderer/factory/index.d.ts +5 -0
  194. package/dist/types/lib/renderer/field-renderers/AddonRenderer.d.ts +12 -0
  195. package/dist/types/lib/renderer/field-renderers/CheckboxRenderer.d.ts +7 -0
  196. package/dist/types/lib/renderer/field-renderers/DateRenderer.d.ts +13 -0
  197. package/dist/types/lib/renderer/field-renderers/DropdownRenderer/hook.d.ts +23 -0
  198. package/dist/types/lib/renderer/field-renderers/DropdownRenderer/index.d.ts +12 -0
  199. package/dist/types/lib/renderer/field-renderers/LargeTextRenderer.d.ts +17 -0
  200. package/dist/types/lib/renderer/field-renderers/NumberRenderer.d.ts +12 -0
  201. package/dist/types/lib/renderer/field-renderers/RadioGroupRenderer.d.ts +8 -0
  202. package/dist/types/lib/renderer/field-renderers/RadioRenderer.d.ts +8 -0
  203. package/dist/types/lib/renderer/field-renderers/TextRenderer.d.ts +8 -0
  204. package/dist/types/lib/renderer/field-renderers/ToggleRenderer.d.ts +24 -0
  205. package/dist/types/lib/renderer/field-renderers/ZipCodeRenderer/helper.d.ts +48 -0
  206. package/dist/types/lib/renderer/field-renderers/ZipCodeRenderer/hook.d.ts +17 -0
  207. package/dist/types/lib/renderer/field-renderers/ZipCodeRenderer/index.d.ts +9 -0
  208. package/dist/types/lib/renderer/index.d.ts +2 -0
  209. package/dist/types/lib/renderer/styles.d.ts +7 -0
  210. package/dist/types/lib/renderer/types.d.ts +325 -0
  211. package/dist/types/lib/tests/base/flowBase.d.ts +13 -0
  212. package/dist/types/lib/tests/base/index.d.ts +6 -0
  213. package/dist/types/lib/tests/flows/checkboxRendererFlows.d.ts +9 -0
  214. package/dist/types/lib/tests/flows/dateRendererFlows.d.ts +120 -0
  215. package/dist/types/lib/tests/flows/dropdownRendererFlows.d.ts +92 -0
  216. package/dist/types/lib/tests/flows/largeTextRendererFlows.d.ts +9 -0
  217. package/dist/types/lib/tests/flows/numberRendererFlows.d.ts +11 -0
  218. package/dist/types/lib/tests/flows/radioRendererFlows.d.ts +10 -0
  219. package/dist/types/lib/tests/flows/textRendererFlows.d.ts +16 -0
  220. package/dist/types/lib/tests/flows/toggleRendererFlows.d.ts +10 -0
  221. package/dist/types/lib/tests/flows/zipCodeRendererFlows.d.ts +169 -0
  222. package/dist/types/lib/tests/loan-field-renderer-flows.test.d.ts +1 -0
  223. package/dist/types/lib/utils/dateHelper.d.ts +8 -0
  224. package/dist/types/tsconfig.tsbuildinfo +1 -0
  225. package/package.json +103 -0
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var LargeTextRenderer_exports = {};
30
+ __export(LargeTextRenderer_exports, {
31
+ LargeTextRenderer: () => LargeTextRenderer
32
+ });
33
+ module.exports = __toCommonJS(LargeTextRenderer_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var import_react = __toESM(require("react"));
36
+ var import_ds_controlled_form = require("@elliemae/ds-controlled-form");
37
+ var import_renderer = require("../base/renderer");
38
+ var import_AddonRenderer = require("./AddonRenderer");
39
+ var import_styles = require("../styles");
40
+ class LargeTextRenderer extends import_renderer.Renderer {
41
+ AddOnRenderer;
42
+ constructor() {
43
+ super();
44
+ this.AddOnRenderer = new import_AddonRenderer.AddonRenderer().render();
45
+ this.BRWrapper = this.renderBR();
46
+ }
47
+ render() {
48
+ const getMaxCharProps = (maxCharactersDisplay, maxCharCounter, fieldValue) => {
49
+ if (!maxCharactersDisplay || maxCharCounter <= 0) {
50
+ return {};
51
+ }
52
+ return {
53
+ maxCharCounter,
54
+ currentChar: fieldValue ? fieldValue.length : 0
55
+ };
56
+ };
57
+ const LargeTextComponent = (props) => {
58
+ const {
59
+ id,
60
+ fieldId,
61
+ isDisable,
62
+ validationRules = [],
63
+ onChange,
64
+ onBlur,
65
+ autoFieldSet = true,
66
+ label,
67
+ rightAddon,
68
+ rows = "3",
69
+ maxCharactersDisplay = false,
70
+ maxCharCounter = 0,
71
+ maxCharExceededMessage = "Max characters reached.",
72
+ extra
73
+ } = props;
74
+ const { BRWrapper, AddOnRenderer } = this;
75
+ const {
76
+ fieldMetadata: {
77
+ isLockField = false,
78
+ maxLength = 0,
79
+ fieldFormat = ""
80
+ } = {},
81
+ fieldValue,
82
+ setFieldValue,
83
+ isLockedState,
84
+ isSearchedField,
85
+ isFieldDisabled,
86
+ validationResult,
87
+ setIsSearchedField,
88
+ ariaDescProps
89
+ } = this.initVM(props);
90
+ this.fieldFormat = fieldFormat;
91
+ const getValidationRules = (0, import_react.useCallback)(() => {
92
+ const rulesToCheck = [...validationRules];
93
+ if (maxCharactersDisplay && maxCharCounter > 0) {
94
+ rulesToCheck.push({
95
+ type: "maxchar",
96
+ message: maxCharExceededMessage,
97
+ options: { charsLimit: maxCharCounter }
98
+ });
99
+ }
100
+ return rulesToCheck;
101
+ }, [
102
+ validationRules,
103
+ maxCharactersDisplay,
104
+ maxCharCounter,
105
+ maxCharExceededMessage
106
+ ]);
107
+ const onBlurEvent = (0, import_react.useCallback)(
108
+ () => {
109
+ if (!isDisable && !isFieldDisabled) {
110
+ const formattedValue = this.getFormattedValue(fieldValue);
111
+ setFieldValue(formattedValue);
112
+ const rulesToCheck = getValidationRules();
113
+ const tempValResult = this.Hooks.runValidationsOnValue(
114
+ formattedValue,
115
+ rulesToCheck
116
+ );
117
+ this.VM.setValidationResult(tempValResult);
118
+ if (!tempValResult.isValid && tempValResult.message !== maxCharExceededMessage) {
119
+ return;
120
+ }
121
+ const parsedValue = this.getParsedValue(formattedValue);
122
+ if (autoFieldSet) {
123
+ (async () => {
124
+ await this.BLL.SSF.setFieldValue(fieldId, parsedValue);
125
+ })();
126
+ }
127
+ if (onBlur) {
128
+ onBlur(fieldId, parsedValue);
129
+ }
130
+ }
131
+ },
132
+ // eslint-disable-next-line react-hooks/exhaustive-deps
133
+ [
134
+ autoFieldSet,
135
+ fieldId,
136
+ fieldValue,
137
+ isDisable,
138
+ isFieldDisabled,
139
+ onBlur,
140
+ getValidationRules
141
+ ]
142
+ );
143
+ const onChangeEvent = (0, import_react.useCallback)(
144
+ (value) => {
145
+ setIsSearchedField(false);
146
+ if (!isDisable && !isFieldDisabled) {
147
+ setFieldValue(value);
148
+ if (onChange) {
149
+ onChange(fieldId, value);
150
+ }
151
+ }
152
+ },
153
+ [
154
+ fieldId,
155
+ isDisable,
156
+ isFieldDisabled,
157
+ onChange,
158
+ setFieldValue,
159
+ setIsSearchedField
160
+ ]
161
+ );
162
+ const validationProps = this.buildValidationProps(validationResult);
163
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
164
+ BRWrapper,
165
+ {
166
+ fieldId,
167
+ inputID: id || fieldId,
168
+ label,
169
+ value: fieldValue,
170
+ onBlur: onBlurEvent,
171
+ ...getMaxCharProps(maxCharactersDisplay, maxCharCounter, fieldValue),
172
+ ...props.brCompProps || {},
173
+ ...validationProps,
174
+ withHighlight: isSearchedField,
175
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
176
+ AddOnRenderer,
177
+ {
178
+ rendererType: "addon",
179
+ fieldId,
180
+ isLocked: isLockedState,
181
+ isPadLock: isLockField,
182
+ isDisable: props.isDisable,
183
+ onPadLockToggle: () => this.toggleLockStatus(fieldId, isLockedState || false),
184
+ rightAddon,
185
+ children: [
186
+ !label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.EmptyLabel, { htmlFor: id || fieldId }),
187
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
188
+ import_ds_controlled_form.DSControlledLargeTextInput,
189
+ {
190
+ id: id || fieldId,
191
+ "data-testid": fieldId,
192
+ value: fieldValue || "",
193
+ applyAriaDisabled: isFieldDisabled || isDisable,
194
+ onChange: onChangeEvent,
195
+ rows,
196
+ ...maxLength && maxLength > 0 && { maxLength },
197
+ ...ariaDescProps,
198
+ ...extra
199
+ }
200
+ )
201
+ ]
202
+ }
203
+ )
204
+ }
205
+ );
206
+ };
207
+ return import_react.default.memo(LargeTextComponent);
208
+ }
209
+ }
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var NumberRenderer_exports = {};
30
+ __export(NumberRenderer_exports, {
31
+ NumberRenderer: () => NumberRenderer
32
+ });
33
+ module.exports = __toCommonJS(NumberRenderer_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var import_react = __toESM(require("react"));
36
+ var import_ds_form_helpers_mask_hooks = require("@elliemae/ds-form-helpers-mask-hooks");
37
+ var import_ds_controlled_form = require("@elliemae/ds-controlled-form");
38
+ var import_renderer = require("../base/renderer");
39
+ var import_AddonRenderer = require("./AddonRenderer");
40
+ var import_styles = require("../styles");
41
+ class NumberRenderer extends import_renderer.Renderer {
42
+ AddOnRenderer;
43
+ constructor() {
44
+ super();
45
+ this.AddOnRenderer = new import_AddonRenderer.AddonRenderer().render();
46
+ }
47
+ useNumberMaskResult = (numberProps, fieldFormat) => {
48
+ const decimalPlaces = parseInt(fieldFormat.match(/\d+$/)?.[0] || "0", 10) || 0;
49
+ const defaultNumberOptions = {
50
+ decimalPlaces,
51
+ allowNegative: true,
52
+ includeThousandsSeparator: true
53
+ };
54
+ let numberMaskOptions;
55
+ if (numberProps.rendererType === "number") {
56
+ if (numberProps.numberMaskOptions) {
57
+ numberMaskOptions = {
58
+ ...defaultNumberOptions,
59
+ ...numberProps.numberMaskOptions
60
+ };
61
+ } else {
62
+ numberMaskOptions = defaultNumberOptions;
63
+ }
64
+ } else {
65
+ numberMaskOptions = defaultNumberOptions;
66
+ }
67
+ return (0, import_ds_form_helpers_mask_hooks.useNumberMask)({
68
+ valueSetter: (value) => {
69
+ this.VM.setFieldValue?.(value);
70
+ },
71
+ onChange: (e) => {
72
+ this.VM.setIsSearchedField(false);
73
+ if (numberProps.onChange) {
74
+ const { fieldId } = numberProps;
75
+ numberProps.onChange(fieldId, e.target.value);
76
+ }
77
+ },
78
+ onBlur: (e) => {
79
+ this.handleOnBlur({
80
+ e,
81
+ numberProps
82
+ });
83
+ },
84
+ ...numberMaskOptions
85
+ });
86
+ };
87
+ isEmptyInput(value) {
88
+ return value === "" || value === void 0 || value === null;
89
+ }
90
+ handleOnBlur({
91
+ e,
92
+ numberProps
93
+ }) {
94
+ const { isDisable, autoFieldSet = true } = numberProps;
95
+ const { value } = e.target;
96
+ if (!isDisable && !this.VM.isFieldDisabled) {
97
+ const empty = this.isEmptyInput(value);
98
+ const formattedValue = empty ? "" : this.getFormattedValue(value);
99
+ this.VM.setFieldValue?.(formattedValue);
100
+ const validateResult = this.Hooks.runValidationsOnValue(
101
+ formattedValue,
102
+ numberProps.validationRules || []
103
+ );
104
+ this.VM.setValidationResult(validateResult);
105
+ if (!validateResult.isValid) {
106
+ return;
107
+ }
108
+ const parsedValue = empty ? "" : this.getParsedValue(formattedValue);
109
+ if (autoFieldSet && !empty) {
110
+ (async () => {
111
+ await this.BLL.SSF.setFieldValue(numberProps.fieldId, parsedValue);
112
+ })();
113
+ }
114
+ if (numberProps.onBlur) {
115
+ numberProps.onBlur(numberProps.fieldId, parsedValue);
116
+ }
117
+ }
118
+ }
119
+ // Helper to get maxLength prop
120
+ getMaxLengthProp({
121
+ maxLength,
122
+ fieldFormat,
123
+ numberOptions
124
+ }) {
125
+ if (maxLength === 0) {
126
+ return {};
127
+ }
128
+ const { prefix = "", suffix = "" } = numberOptions || {};
129
+ const decimalPlaces = parseInt(fieldFormat.match(/\d+$/)?.[0] || "0", 10) || 0;
130
+ const decimalSeparator = decimalPlaces > 0 ? 1 : 0;
131
+ const prefixLength = prefix?.length || 0;
132
+ const suffixLength = suffix?.length || 0;
133
+ const integerPartLength = maxLength - (decimalPlaces > 0 ? decimalPlaces + 1 : 0);
134
+ const positionsBeforeDecimal = integerPartLength + prefixLength;
135
+ const totalMaxLength = positionsBeforeDecimal + decimalSeparator + decimalPlaces + suffixLength;
136
+ return { maxLength: totalMaxLength };
137
+ }
138
+ render() {
139
+ const { BRWrapper, AddOnRenderer } = this;
140
+ const NumberComponent = (props) => {
141
+ const {
142
+ fieldId,
143
+ onBlur,
144
+ onChange,
145
+ validationRules,
146
+ numberMaskOptions,
147
+ label,
148
+ isDisable,
149
+ extra,
150
+ ...rest
151
+ } = props;
152
+ const {
153
+ fieldMetadata: {
154
+ isLockField = false,
155
+ maxLength = 0,
156
+ fieldFormat = ""
157
+ } = {},
158
+ fieldValue,
159
+ isLockedState,
160
+ isSearchedField,
161
+ isFieldDisabled,
162
+ validationResult,
163
+ ariaDescProps
164
+ } = this.initVM(props);
165
+ const maxLengthProps = this.getMaxLengthProp({
166
+ maxLength,
167
+ fieldFormat,
168
+ numberOptions: props.numberMaskOptions
169
+ });
170
+ const amountInputProps = this.useNumberMaskResult(props, fieldFormat);
171
+ const validationProps = this.buildValidationProps(validationResult);
172
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
173
+ BRWrapper,
174
+ {
175
+ fieldId,
176
+ inputID: fieldId,
177
+ label: props.label,
178
+ value: this.getParsedValue(fieldValue) ?? "",
179
+ ...validationProps,
180
+ ...props.brCompProps || {},
181
+ withHighlight: isSearchedField,
182
+ children: [
183
+ !label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.EmptyLabel, { htmlFor: fieldId }),
184
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
185
+ AddOnRenderer,
186
+ {
187
+ rendererType: "addon",
188
+ fieldId,
189
+ isLocked: isLockedState,
190
+ isPadLock: isLockField,
191
+ isDisable: props.isDisable,
192
+ rightAddon: props.rightAddon,
193
+ onPadLockToggle: () => this.toggleLockStatus(fieldId, isLockedState || false),
194
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
195
+ import_ds_controlled_form.DSInputText,
196
+ {
197
+ id: fieldId,
198
+ "data-testid": fieldId,
199
+ ...maxLengthProps,
200
+ value: fieldValue ?? "",
201
+ applyAriaDisabled: isFieldDisabled || isDisable,
202
+ ...amountInputProps,
203
+ ...ariaDescProps,
204
+ ...extra,
205
+ ...this.sanitize(rest)
206
+ }
207
+ )
208
+ }
209
+ )
210
+ ]
211
+ }
212
+ );
213
+ };
214
+ return import_react.default.memo(NumberComponent);
215
+ }
216
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var RadioGroupRenderer_exports = {};
20
+ __export(RadioGroupRenderer_exports, {
21
+ RadioGroupRenderer: () => RadioGroupRenderer
22
+ });
23
+ module.exports = __toCommonJS(RadioGroupRenderer_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_react = require("react");
26
+ var import_ds_controlled_form = require("@elliemae/ds-controlled-form");
27
+ var import_ds_form_layout_blocks = require("@elliemae/ds-form-layout-blocks");
28
+ var import_renderer = require("../base/renderer");
29
+ class RadioGroupRenderer extends import_renderer.Renderer {
30
+ constructor() {
31
+ super();
32
+ this.BRWrapper = this.renderBR();
33
+ }
34
+ onSelect = ({
35
+ fieldId,
36
+ value,
37
+ selectCB,
38
+ autoFieldSet = true
39
+ }) => {
40
+ const formattedValue = this.getFormattedValue(value);
41
+ this.VM.setFieldValue(formattedValue);
42
+ this.VM.setValidationResult(
43
+ this.Hooks.runValidationsOnValue(formattedValue, [])
44
+ );
45
+ const parsedValue = this.getParsedValue(formattedValue);
46
+ if (autoFieldSet) {
47
+ (async () => {
48
+ await this.BLL.SSF.setFieldValue(fieldId, parsedValue);
49
+ })();
50
+ }
51
+ if (selectCB) {
52
+ selectCB(fieldId, formattedValue);
53
+ }
54
+ };
55
+ render() {
56
+ const { BRWrapper } = this;
57
+ const RadioGroupComponent = (props) => {
58
+ const {
59
+ fieldId,
60
+ groupName = `group-${fieldId}`,
61
+ options = [],
62
+ direction = "vertical",
63
+ ariaGroupLabel = "",
64
+ wrapLabel = true,
65
+ isDisable,
66
+ autoFieldSet = true
67
+ } = props;
68
+ const { fieldValue, isFieldDisabled, fieldMetadata } = this.initVM(props);
69
+ const metaOptions = (0, import_react.useMemo)(() => {
70
+ if (fieldMetadata && fieldMetadata.fieldOptions) {
71
+ const { fieldOptions = [] } = fieldMetadata;
72
+ return fieldOptions.map((opt, index) => ({
73
+ id: `opt-${fieldId}-${index}`,
74
+ label: opt.label,
75
+ value: opt.value
76
+ }));
77
+ }
78
+ return [];
79
+ }, [fieldMetadata?.fieldOptions]);
80
+ const onSelectEventHandler = (0, import_react.useCallback)(
81
+ (val) => {
82
+ this.onSelect({
83
+ fieldId,
84
+ value: val,
85
+ selectCB: props.onSelect,
86
+ autoFieldSet
87
+ });
88
+ },
89
+ [fieldId, props.onSelect, autoFieldSet]
90
+ );
91
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
+ BRWrapper,
93
+ {
94
+ fieldId,
95
+ inputID: fieldId,
96
+ value: fieldValue || "",
97
+ ...props.brCompProps || {},
98
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
99
+ import_ds_form_layout_blocks.DSFormLayoutRadioGroup,
100
+ {
101
+ direction,
102
+ label: ariaGroupLabel,
103
+ ml: "0",
104
+ children: (metaOptions.length > 0 ? metaOptions : options).map(
105
+ (option) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
106
+ import_ds_controlled_form.DSControlledRadio,
107
+ {
108
+ name: groupName,
109
+ label: option.label,
110
+ id: option.id,
111
+ "data-testid": fieldId,
112
+ wrapLabel,
113
+ applyAriaDisabled: isFieldDisabled || isDisable,
114
+ value: option.value,
115
+ checked: fieldValue === option.value,
116
+ onChange: onSelectEventHandler
117
+ },
118
+ option.id
119
+ )
120
+ )
121
+ }
122
+ )
123
+ }
124
+ );
125
+ };
126
+ return RadioGroupComponent;
127
+ }
128
+ }
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var RadioRenderer_exports = {};
30
+ __export(RadioRenderer_exports, {
31
+ RadioRenderer: () => RadioRenderer
32
+ });
33
+ module.exports = __toCommonJS(RadioRenderer_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var import_react = __toESM(require("react"));
36
+ var import_ds_controlled_form = require("@elliemae/ds-controlled-form");
37
+ var import_renderer = require("../base/renderer");
38
+ class RadioRenderer extends import_renderer.Renderer {
39
+ constructor() {
40
+ super();
41
+ this.BRWrapper = this.renderBR();
42
+ }
43
+ onSelect = ({
44
+ fieldId,
45
+ value,
46
+ selectCB,
47
+ autoFieldSet = true
48
+ }) => {
49
+ const formattedValue = this.getFormattedValue(value);
50
+ this.VM.setFieldValue(formattedValue);
51
+ this.VM.setValidationResult(
52
+ this.Hooks.runValidationsOnValue(formattedValue, [])
53
+ );
54
+ const parsedValue = this.getParsedValue(formattedValue);
55
+ if (autoFieldSet) {
56
+ (async () => {
57
+ await this.BLL.SSF.setFieldValue(fieldId, parsedValue);
58
+ })();
59
+ }
60
+ if (selectCB) {
61
+ selectCB(fieldId, formattedValue);
62
+ }
63
+ };
64
+ render() {
65
+ const { BRWrapper } = this;
66
+ const RadioComponent = (props) => {
67
+ const {
68
+ fieldId,
69
+ id,
70
+ label,
71
+ name,
72
+ value,
73
+ isDisable,
74
+ validationRules,
75
+ onSelect,
76
+ autoFieldSet,
77
+ extra,
78
+ ...rest
79
+ } = props;
80
+ const { fieldValue, isFieldDisabled, isSearchedField, ariaDescProps } = this.initVM(props);
81
+ const onSelectEventHandler = (0, import_react.useCallback)(
82
+ (val) => {
83
+ this.onSelect({
84
+ fieldId,
85
+ value: val,
86
+ selectCB: props.onSelect,
87
+ autoFieldSet
88
+ });
89
+ },
90
+ [fieldId, props.onSelect, autoFieldSet]
91
+ );
92
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
93
+ BRWrapper,
94
+ {
95
+ fieldId,
96
+ inputID: fieldId,
97
+ value: fieldValue || "",
98
+ ...props.brCompProps || {},
99
+ withHighlight: isSearchedField,
100
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
101
+ import_ds_controlled_form.DSControlledRadio,
102
+ {
103
+ ...name && { name },
104
+ label,
105
+ id,
106
+ "data-testid": fieldId,
107
+ applyAriaDisabled: isFieldDisabled || isDisable,
108
+ checked: fieldValue === value,
109
+ value: String(value),
110
+ onChange: onSelectEventHandler,
111
+ ...ariaDescProps,
112
+ ...extra,
113
+ ...this.sanitize(rest)
114
+ }
115
+ )
116
+ }
117
+ );
118
+ };
119
+ return import_react.default.memo(RadioComponent);
120
+ }
121
+ }