@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,30 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ import { getZipCodeMaskedValue } from "@elliemae/ds-form-helpers-mask-hooks";
13
+ let ZipFormatter = class {
14
+ format(input) {
15
+ if (!input || input === "") return "";
16
+ const maskedValue = getZipCodeMaskedValue(input);
17
+ return maskedValue;
18
+ }
19
+ parse(input) {
20
+ if (!input || input === "") return "";
21
+ const unmaskedValue = getZipCodeMaskedValue(input);
22
+ return unmaskedValue;
23
+ }
24
+ };
25
+ ZipFormatter = __decorateClass([
26
+ decorators.class.Singleton
27
+ ], ZipFormatter);
28
+ export {
29
+ ZipFormatter
30
+ };
@@ -0,0 +1,44 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ import { coreInstance } from "../core";
13
+ import { factoryInstance } from "./formatters/factory";
14
+ import { ValidatorFactory } from "./validators/factory";
15
+ import { ssfInstance } from "./ssf";
16
+ let BLL = class {
17
+ get Core() {
18
+ return coreInstance;
19
+ }
20
+ ssf = null;
21
+ get Formatter() {
22
+ return factoryInstance;
23
+ }
24
+ get Validator() {
25
+ return new ValidatorFactory();
26
+ }
27
+ get SSF() {
28
+ if (this.ssf === null) {
29
+ this.ssf = ssfInstance;
30
+ }
31
+ return this.ssf;
32
+ }
33
+ set SSF(service) {
34
+ this.ssf = service;
35
+ }
36
+ };
37
+ BLL = __decorateClass([
38
+ decorators.class.Singleton
39
+ ], BLL);
40
+ const bllInstance = new BLL();
41
+ export {
42
+ BLL,
43
+ bllInstance
44
+ };
@@ -0,0 +1,30 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ import { SSFBase } from "./ssfBase";
13
+ import { Loan } from "./loan";
14
+ import { LoConnect } from "./loconnect";
15
+ import { SSFBase as SSFBase2 } from "./ssfBase";
16
+ import { Loan as Loan2 } from "./loan";
17
+ import { LoConnect as LoConnect2 } from "./loconnect";
18
+ let SSF = class extends SSFBase {
19
+ };
20
+ SSF = __decorateClass([
21
+ decorators.class.Mixins(Loan, LoConnect)
22
+ ], SSF);
23
+ const ssfInstance = new SSF();
24
+ export {
25
+ LoConnect2 as LoConnect,
26
+ Loan2 as Loan,
27
+ SSF,
28
+ SSFBase2 as SSFBase,
29
+ ssfInstance
30
+ };
@@ -0,0 +1,63 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ import { SSFBase } from "./ssfBase";
13
+ class Loan extends SSFBase {
14
+ async getFieldValue(fieldId) {
15
+ if (this.fieldValueResolver) {
16
+ return Promise.resolve(this.fieldValueResolver(fieldId));
17
+ }
18
+ const loanObject = await this.SSFLoanObject;
19
+ return loanObject.getField(fieldId);
20
+ }
21
+ async setFieldValue(fieldId, value) {
22
+ const loanObject = await this.SSFLoanObject;
23
+ await loanObject.setFields({
24
+ [fieldId]: value
25
+ });
26
+ }
27
+ async setFieldsValues(setFieldsValuesObject, doCalc = false) {
28
+ const loanObject = await this.SSFLoanObject;
29
+ await loanObject.setFields(setFieldsValuesObject);
30
+ if (doCalc) {
31
+ await loanObject.calculate();
32
+ }
33
+ }
34
+ async getFieldContractPaths() {
35
+ const loanObject = await this.SSFLoanObject;
36
+ const schema = loanObject.fieldDefinitions();
37
+ return schema;
38
+ }
39
+ async isReadOnlyLoan() {
40
+ const loanObject = await this.SSFLoanObject;
41
+ return loanObject.isReadOnly();
42
+ }
43
+ async resolveBaseCollectionId(fieldId) {
44
+ const loanObject = await this.SSFLoanObject;
45
+ return loanObject.resolveBaseCollectionId(fieldId);
46
+ }
47
+ async getCollectionRowIndex(fieldId) {
48
+ const loanObject = await this.SSFLoanObject;
49
+ return loanObject.getCollectionRowIndex(fieldId);
50
+ }
51
+ }
52
+ __decorateClass([
53
+ decorators.function.CacheUntilResolved
54
+ ], Loan.prototype, "getFieldValue", 1);
55
+ __decorateClass([
56
+ decorators.function.MemoizeAsync
57
+ ], Loan.prototype, "getFieldContractPaths", 1);
58
+ __decorateClass([
59
+ decorators.function.MemoizeAsync
60
+ ], Loan.prototype, "isReadOnlyLoan", 1);
61
+ export {
62
+ Loan
63
+ };
@@ -0,0 +1,52 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ import { SSFBase } from "./ssfBase";
13
+ class LoConnect extends SSFBase {
14
+ async getStateDropDownList() {
15
+ const result = await this.genericCall("getStateDropDownList");
16
+ return result;
17
+ }
18
+ async getLockStatus(fieldId) {
19
+ const status = await this.genericCall("getLockStatus", fieldId);
20
+ return status;
21
+ }
22
+ async callCalcForLock(fieldId, isLocked) {
23
+ await this.genericCall("callCalcForLock", fieldId, isLocked);
24
+ }
25
+ async getZipCodeOptions(zip) {
26
+ const result = await this.genericCall("getZipCodeData", zip);
27
+ return Array.isArray(result) ? result : void 0;
28
+ }
29
+ async getZipCodeOptionsWithLatLong(zip) {
30
+ const result = await this.genericCall("getZipCodeLatLong", zip);
31
+ return Array.isArray(result) ? result : void 0;
32
+ }
33
+ async getGTFSelectedFormDetails() {
34
+ const result = await this.genericCall("getGTFSelectedFormDetails");
35
+ return result;
36
+ }
37
+ }
38
+ __decorateClass([
39
+ decorators.function.MemoizeAsync
40
+ ], LoConnect.prototype, "getStateDropDownList", 1);
41
+ __decorateClass([
42
+ decorators.function.CacheUntilResolved
43
+ ], LoConnect.prototype, "getLockStatus", 1);
44
+ __decorateClass([
45
+ decorators.function.MemoizeAsync
46
+ ], LoConnect.prototype, "getZipCodeOptions", 1);
47
+ __decorateClass([
48
+ decorators.function.MemoizeAsync
49
+ ], LoConnect.prototype, "getZipCodeOptionsWithLatLong", 1);
50
+ export {
51
+ LoConnect
52
+ };
@@ -0,0 +1,67 @@
1
+ import * as elli from "@elliemae/em-ssf-guest";
2
+ class SSFBase {
3
+ ssfEnabled = false;
4
+ initDone = false;
5
+ hostInstance = null;
6
+ gtfFormDetailsCache = null;
7
+ fieldValueResolverFn = null;
8
+ setFieldValueResolver(resolver) {
9
+ this.fieldValueResolverFn = resolver;
10
+ }
11
+ get fieldValueResolver() {
12
+ return this.fieldValueResolverFn;
13
+ }
14
+ constructor() {
15
+ this.initSSF().catch((err) => {
16
+ console.error("SSF initialization failed:", err);
17
+ });
18
+ }
19
+ get IsLocalhost() {
20
+ return typeof window !== "undefined" && window.location.hostname === "localhost";
21
+ }
22
+ get SSFLoanObject() {
23
+ return elli.getObject("loan");
24
+ }
25
+ async initSSF() {
26
+ if (!this.initDone) {
27
+ try {
28
+ this.hostInstance = await new Promise((resolve, reject) => {
29
+ elli.getObject("loconnect").then(resolve).catch(reject);
30
+ setTimeout(reject, 1e3);
31
+ });
32
+ this.ssfEnabled = true;
33
+ this.initDone = true;
34
+ } catch (e) {
35
+ this.ssfEnabled = false;
36
+ console.error("SSF Init Error:", e);
37
+ }
38
+ }
39
+ }
40
+ async genericCall(funcName, ...rest) {
41
+ const noHostFound = () => {
42
+ if (this.IsLocalhost) {
43
+ return Promise.resolve();
44
+ }
45
+ return Promise.reject(new Error("Missing Host Application"));
46
+ };
47
+ await this.initSSF();
48
+ if (this.ssfEnabled && this.hostInstance) {
49
+ const host = this.hostInstance;
50
+ if (typeof host[funcName] === "function") {
51
+ const func = host[funcName];
52
+ const data = await func(...rest);
53
+ return data;
54
+ }
55
+ }
56
+ return noHostFound();
57
+ }
58
+ getCachedGTFFormDetails() {
59
+ return this.gtfFormDetailsCache;
60
+ }
61
+ setCachedGTFFormDetails(formDetails) {
62
+ this.gtfFormDetailsCache = formDetails;
63
+ }
64
+ }
65
+ export {
66
+ SSFBase
67
+ };
File without changes
File without changes
@@ -0,0 +1,30 @@
1
+ import moment from "moment";
2
+ class DateValidator {
3
+ /**
4
+ * Validate if the given value is a valid date
5
+ * @param {unknown} value - The date value to validate
6
+ * @param {string} [message] - Custom error message
7
+ * @param {ValidationOptionsT<'date'>} [options] - Validation options including dateFormat for strict checking
8
+ * @returns {IValidationResult} Validation result with isValid flag and optional message
9
+ */
10
+ validate(value, message, options) {
11
+ if (value === null || value === void 0 || value === "") {
12
+ return { isValid: true, message: "" };
13
+ }
14
+ const dateStr = String(value);
15
+ const dateFormat = options?.dateFormat;
16
+ let isValid = false;
17
+ if (dateFormat) {
18
+ isValid = moment(dateStr, dateFormat, true).isValid();
19
+ } else {
20
+ isValid = moment(dateStr).isValid();
21
+ }
22
+ return {
23
+ isValid,
24
+ message: isValid ? "" : message || `Invalid date format${dateFormat ? `. Expected: ${dateFormat}` : ""}`
25
+ };
26
+ }
27
+ }
28
+ export {
29
+ DateValidator
30
+ };
@@ -0,0 +1,29 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ let EmailValidator = class {
13
+ validate(value = "", message) {
14
+ if (!value) {
15
+ return { isValid: true };
16
+ }
17
+ const isValid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
18
+ return {
19
+ isValid,
20
+ message: isValid ? void 0 : message || "This value is not a valid email format."
21
+ };
22
+ }
23
+ };
24
+ EmailValidator = __decorateClass([
25
+ decorators.class.Singleton
26
+ ], EmailValidator);
27
+ export {
28
+ EmailValidator
29
+ };
@@ -0,0 +1,63 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ import { EmailValidator } from "../emailValidator";
13
+ import { RequiredValidator } from "../requiredValidator";
14
+ import { DateValidator } from "../dateValidator";
15
+ import { ZipValidator } from "../zipValidator";
16
+ import { MaxCharValidator } from "../maxCharValidator";
17
+ let ValidatorFactory = class {
18
+ registry = {};
19
+ /**
20
+ * Cache for validator instances by type
21
+ * Since validators are stateless, we can safely reuse instances
22
+ */
23
+ validatorCache = /* @__PURE__ */ new Map();
24
+ constructor() {
25
+ this.initBuiltInValidators();
26
+ }
27
+ initBuiltInValidators() {
28
+ this.registerValidator("required", RequiredValidator);
29
+ this.registerValidator("email", EmailValidator);
30
+ this.registerValidator("date", DateValidator);
31
+ this.registerValidator("zip", ZipValidator);
32
+ this.registerValidator("maxchar", MaxCharValidator);
33
+ }
34
+ createValidator(type) {
35
+ const cached = this.validatorCache.get(type);
36
+ if (cached) {
37
+ return cached;
38
+ }
39
+ const ValidatorClass = this.registry[type];
40
+ if (!ValidatorClass) {
41
+ throw new Error(`Validator type "${type}" is not supported.`);
42
+ }
43
+ const validator = new ValidatorClass();
44
+ this.validatorCache.set(type, validator);
45
+ return validator;
46
+ }
47
+ registerValidator(type, validatorClass) {
48
+ this.registry[type] = validatorClass;
49
+ }
50
+ runValidators(rules, value) {
51
+ const failedResult = rules.map((rule) => {
52
+ const validator = this.createValidator(rule.type);
53
+ return validator.validate(value, rule.message, rule.options);
54
+ }).find((result) => !result.isValid);
55
+ return failedResult || { isValid: true };
56
+ }
57
+ };
58
+ ValidatorFactory = __decorateClass([
59
+ decorators.class.Singleton
60
+ ], ValidatorFactory);
61
+ export {
62
+ ValidatorFactory
63
+ };
@@ -0,0 +1,4 @@
1
+ import { ValidatorFactory } from "./factory";
2
+ export {
3
+ ValidatorFactory
4
+ };
@@ -0,0 +1,31 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ let MaxCharValidator = class {
13
+ validate(value, message, options) {
14
+ if (!value) {
15
+ return { isValid: true };
16
+ }
17
+ const strValue = String(value);
18
+ const charsLimit = options?.charsLimit ?? 0;
19
+ const isValid = strValue.length <= charsLimit;
20
+ return {
21
+ isValid,
22
+ message: isValid ? "" : message || `This field exceeds the maximum character limit of ${charsLimit}.`
23
+ };
24
+ }
25
+ };
26
+ MaxCharValidator = __decorateClass([
27
+ decorators.class.Singleton
28
+ ], MaxCharValidator);
29
+ export {
30
+ MaxCharValidator
31
+ };
@@ -0,0 +1,26 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ let RequiredValidator = class {
13
+ validate(value, message) {
14
+ const isValid = value !== null && value !== void 0 && value !== "";
15
+ return {
16
+ isValid,
17
+ message: isValid ? void 0 : message || "This field is required."
18
+ };
19
+ }
20
+ };
21
+ RequiredValidator = __decorateClass([
22
+ decorators.class.Singleton
23
+ ], RequiredValidator);
24
+ export {
25
+ RequiredValidator
26
+ };
@@ -0,0 +1,35 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ const validZipCode = (zip) => {
13
+ if (!zip) return false;
14
+ const digitsOnly = zip.replace(/[^\d]/g, "");
15
+ return digitsOnly.length === 5 || digitsOnly.length === 9;
16
+ };
17
+ let ZipValidator = class {
18
+ validate(zip = "", message) {
19
+ if (!zip) {
20
+ return { isValid: true };
21
+ }
22
+ const isValid = validZipCode(zip);
23
+ return {
24
+ isValid,
25
+ message: isValid ? void 0 : message || "This value is not a valid zip code format."
26
+ };
27
+ }
28
+ };
29
+ ZipValidator = __decorateClass([
30
+ decorators.class.Singleton
31
+ ], ZipValidator);
32
+ export {
33
+ ZipValidator,
34
+ validZipCode
35
+ };
@@ -0,0 +1,34 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators2, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators2.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators2[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ import { decorators } from "@elliemae/pui-app-sdk";
12
+ import { Base } from "@elliemae/encw-core";
13
+ let Core = class extends Base {
14
+ get CoreUtils() {
15
+ return this.Utils;
16
+ }
17
+ get ExceptionUtils() {
18
+ return {
19
+ businessException: this.businessException.bind(this),
20
+ runtimeException: this.runtimeException.bind(this)
21
+ };
22
+ }
23
+ Log(type, message, additionalData) {
24
+ return super.Log(type, message, additionalData);
25
+ }
26
+ };
27
+ Core = __decorateClass([
28
+ decorators.class.Singleton
29
+ ], Core);
30
+ const coreInstance = new Core();
31
+ export {
32
+ Core,
33
+ coreInstance
34
+ };