@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.
- package/dist/cjs/ARCHITECTURE.md +434 -0
- package/dist/cjs/OVERVIEW.md +229 -0
- package/dist/cjs/bll/constants.js +86 -0
- package/dist/cjs/bll/formatters/booleanFormatter.js +51 -0
- package/dist/cjs/bll/formatters/dateFormatter.js +78 -0
- package/dist/cjs/bll/formatters/dropdownFormatter.js +34 -0
- package/dist/cjs/bll/formatters/factory/index.js +115 -0
- package/dist/cjs/bll/formatters/index.js +24 -0
- package/dist/cjs/bll/formatters/numberFormatter.js +70 -0
- package/dist/cjs/bll/formatters/phoneFormatter.js +57 -0
- package/dist/cjs/bll/formatters/regexFormatter.js +52 -0
- package/dist/cjs/bll/formatters/ssnFormatter.js +50 -0
- package/dist/cjs/bll/formatters/textFormatter.js +43 -0
- package/dist/cjs/bll/formatters/zipFormatter.js +48 -0
- package/dist/cjs/bll/index.js +62 -0
- package/dist/cjs/bll/ssf/index.js +48 -0
- package/dist/cjs/bll/ssf/loan.js +81 -0
- package/dist/cjs/bll/ssf/loconnect.js +70 -0
- package/dist/cjs/bll/ssf/ssfBase.js +97 -0
- package/dist/cjs/bll/ssf/types.js +16 -0
- package/dist/cjs/bll/types.js +16 -0
- package/dist/cjs/bll/validators/dateValidator.js +60 -0
- package/dist/cjs/bll/validators/emailValidator.js +47 -0
- package/dist/cjs/bll/validators/factory/index.js +81 -0
- package/dist/cjs/bll/validators/index.js +24 -0
- package/dist/cjs/bll/validators/maxCharValidator.js +49 -0
- package/dist/cjs/bll/validators/requiredValidator.js +44 -0
- package/dist/cjs/bll/validators/zipValidator.js +53 -0
- package/dist/cjs/core/index.js +52 -0
- package/dist/cjs/demo/config.js +391 -0
- package/dist/cjs/demo/index.js +31 -0
- package/dist/cjs/package.json +7 -0
- package/dist/cjs/renderer/FieldRenderer.js +45 -0
- package/dist/cjs/renderer/base/hooks/fieldDescription.js +39 -0
- package/dist/cjs/renderer/base/hooks/fieldDisabled.js +53 -0
- package/dist/cjs/renderer/base/hooks/fieldGoTo.js +50 -0
- package/dist/cjs/renderer/base/hooks/fieldLocked.js +42 -0
- package/dist/cjs/renderer/base/hooks/fieldMeta.js +150 -0
- package/dist/cjs/renderer/base/hooks/fieldSubscribers.js +66 -0
- package/dist/cjs/renderer/base/hooks/fieldValidation.js +45 -0
- package/dist/cjs/renderer/base/hooks/fieldValue.js +215 -0
- package/dist/cjs/renderer/base/hooks/hookBase.js +29 -0
- package/dist/cjs/renderer/base/hooks/index.js +139 -0
- package/dist/cjs/renderer/base/renderer.js +198 -0
- package/dist/cjs/renderer/base/rendererValidator.js +97 -0
- package/dist/cjs/renderer/factory/index.js +58 -0
- package/dist/cjs/renderer/field-renderers/AddonRenderer.js +75 -0
- package/dist/cjs/renderer/field-renderers/CheckboxRenderer.js +123 -0
- package/dist/cjs/renderer/field-renderers/DateRenderer.js +206 -0
- package/dist/cjs/renderer/field-renderers/DropdownRenderer/hook.js +99 -0
- package/dist/cjs/renderer/field-renderers/DropdownRenderer/index.js +216 -0
- package/dist/cjs/renderer/field-renderers/LargeTextRenderer.js +209 -0
- package/dist/cjs/renderer/field-renderers/NumberRenderer.js +216 -0
- package/dist/cjs/renderer/field-renderers/RadioGroupRenderer.js +128 -0
- package/dist/cjs/renderer/field-renderers/RadioRenderer.js +121 -0
- package/dist/cjs/renderer/field-renderers/TextRenderer.js +223 -0
- package/dist/cjs/renderer/field-renderers/ToggleRenderer.js +121 -0
- package/dist/cjs/renderer/field-renderers/ZipCodeRenderer/helper.js +132 -0
- package/dist/cjs/renderer/field-renderers/ZipCodeRenderer/hook.js +128 -0
- package/dist/cjs/renderer/field-renderers/ZipCodeRenderer/index.js +273 -0
- package/dist/cjs/renderer/index.js +24 -0
- package/dist/cjs/renderer/styles.js +51 -0
- package/dist/cjs/renderer/types.js +16 -0
- package/dist/cjs/tests/base/flowBase.js +125 -0
- package/dist/cjs/tests/base/index.js +52 -0
- package/dist/cjs/tests/flows/checkboxRendererFlows.js +85 -0
- package/dist/cjs/tests/flows/dateRendererFlows.js +870 -0
- package/dist/cjs/tests/flows/dropdownRendererFlows.js +591 -0
- package/dist/cjs/tests/flows/largeTextRendererFlows.js +99 -0
- package/dist/cjs/tests/flows/numberRendererFlows.js +175 -0
- package/dist/cjs/tests/flows/radioRendererFlows.js +115 -0
- package/dist/cjs/tests/flows/textRendererFlows.js +349 -0
- package/dist/cjs/tests/flows/toggleRendererFlows.js +106 -0
- package/dist/cjs/tests/flows/zipCodeRendererFlows.js +1163 -0
- package/dist/cjs/utils/dateHelper.js +65 -0
- package/dist/esm/ARCHITECTURE.md +434 -0
- package/dist/esm/OVERVIEW.md +229 -0
- package/dist/esm/bll/constants.js +66 -0
- package/dist/esm/bll/formatters/booleanFormatter.js +33 -0
- package/dist/esm/bll/formatters/dateFormatter.js +48 -0
- package/dist/esm/bll/formatters/dropdownFormatter.js +14 -0
- package/dist/esm/bll/formatters/factory/index.js +97 -0
- package/dist/esm/bll/formatters/index.js +4 -0
- package/dist/esm/bll/formatters/numberFormatter.js +54 -0
- package/dist/esm/bll/formatters/phoneFormatter.js +41 -0
- package/dist/esm/bll/formatters/regexFormatter.js +34 -0
- package/dist/esm/bll/formatters/ssnFormatter.js +32 -0
- package/dist/esm/bll/formatters/textFormatter.js +25 -0
- package/dist/esm/bll/formatters/zipFormatter.js +30 -0
- package/dist/esm/bll/index.js +44 -0
- package/dist/esm/bll/ssf/index.js +30 -0
- package/dist/esm/bll/ssf/loan.js +63 -0
- package/dist/esm/bll/ssf/loconnect.js +52 -0
- package/dist/esm/bll/ssf/ssfBase.js +67 -0
- package/dist/esm/bll/ssf/types.js +0 -0
- package/dist/esm/bll/types.js +0 -0
- package/dist/esm/bll/validators/dateValidator.js +30 -0
- package/dist/esm/bll/validators/emailValidator.js +29 -0
- package/dist/esm/bll/validators/factory/index.js +63 -0
- package/dist/esm/bll/validators/index.js +4 -0
- package/dist/esm/bll/validators/maxCharValidator.js +31 -0
- package/dist/esm/bll/validators/requiredValidator.js +26 -0
- package/dist/esm/bll/validators/zipValidator.js +35 -0
- package/dist/esm/core/index.js +34 -0
- package/dist/esm/demo/config.js +371 -0
- package/dist/esm/demo/index.js +11 -0
- package/dist/esm/package.json +7 -0
- package/dist/esm/renderer/FieldRenderer.js +15 -0
- package/dist/esm/renderer/base/hooks/fieldDescription.js +19 -0
- package/dist/esm/renderer/base/hooks/fieldDisabled.js +33 -0
- package/dist/esm/renderer/base/hooks/fieldGoTo.js +30 -0
- package/dist/esm/renderer/base/hooks/fieldLocked.js +22 -0
- package/dist/esm/renderer/base/hooks/fieldMeta.js +132 -0
- package/dist/esm/renderer/base/hooks/fieldSubscribers.js +36 -0
- package/dist/esm/renderer/base/hooks/fieldValidation.js +25 -0
- package/dist/esm/renderer/base/hooks/fieldValue.js +195 -0
- package/dist/esm/renderer/base/hooks/hookBase.js +9 -0
- package/dist/esm/renderer/base/hooks/index.js +121 -0
- package/dist/esm/renderer/base/renderer.js +178 -0
- package/dist/esm/renderer/base/rendererValidator.js +77 -0
- package/dist/esm/renderer/factory/index.js +38 -0
- package/dist/esm/renderer/field-renderers/AddonRenderer.js +55 -0
- package/dist/esm/renderer/field-renderers/CheckboxRenderer.js +93 -0
- package/dist/esm/renderer/field-renderers/DateRenderer.js +176 -0
- package/dist/esm/renderer/field-renderers/DropdownRenderer/hook.js +79 -0
- package/dist/esm/renderer/field-renderers/DropdownRenderer/index.js +186 -0
- package/dist/esm/renderer/field-renderers/LargeTextRenderer.js +179 -0
- package/dist/esm/renderer/field-renderers/NumberRenderer.js +188 -0
- package/dist/esm/renderer/field-renderers/RadioGroupRenderer.js +108 -0
- package/dist/esm/renderer/field-renderers/RadioRenderer.js +91 -0
- package/dist/esm/renderer/field-renderers/TextRenderer.js +197 -0
- package/dist/esm/renderer/field-renderers/ToggleRenderer.js +91 -0
- package/dist/esm/renderer/field-renderers/ZipCodeRenderer/helper.js +112 -0
- package/dist/esm/renderer/field-renderers/ZipCodeRenderer/hook.js +108 -0
- package/dist/esm/renderer/field-renderers/ZipCodeRenderer/index.js +247 -0
- package/dist/esm/renderer/index.js +4 -0
- package/dist/esm/renderer/styles.js +21 -0
- package/dist/esm/renderer/types.js +0 -0
- package/dist/esm/tests/base/flowBase.js +105 -0
- package/dist/esm/tests/base/index.js +22 -0
- package/dist/esm/tests/flows/checkboxRendererFlows.js +65 -0
- package/dist/esm/tests/flows/dateRendererFlows.js +850 -0
- package/dist/esm/tests/flows/dropdownRendererFlows.js +571 -0
- package/dist/esm/tests/flows/largeTextRendererFlows.js +79 -0
- package/dist/esm/tests/flows/numberRendererFlows.js +155 -0
- package/dist/esm/tests/flows/radioRendererFlows.js +95 -0
- package/dist/esm/tests/flows/textRendererFlows.js +329 -0
- package/dist/esm/tests/flows/toggleRendererFlows.js +86 -0
- package/dist/esm/tests/flows/zipCodeRendererFlows.js +1143 -0
- package/dist/esm/utils/dateHelper.js +35 -0
- package/dist/types/lib/bll/constants.d.ts +9 -0
- package/dist/types/lib/bll/formatters/booleanFormatter.d.ts +5 -0
- package/dist/types/lib/bll/formatters/dateFormatter.d.ts +28 -0
- package/dist/types/lib/bll/formatters/dropdownFormatter.d.ts +6 -0
- package/dist/types/lib/bll/formatters/factory/index.d.ts +71 -0
- package/dist/types/lib/bll/formatters/index.d.ts +2 -0
- package/dist/types/lib/bll/formatters/numberFormatter.d.ts +6 -0
- package/dist/types/lib/bll/formatters/phoneFormatter.d.ts +7 -0
- package/dist/types/lib/bll/formatters/regexFormatter.d.ts +5 -0
- package/dist/types/lib/bll/formatters/ssnFormatter.d.ts +5 -0
- package/dist/types/lib/bll/formatters/textFormatter.d.ts +6 -0
- package/dist/types/lib/bll/formatters/zipFormatter.d.ts +5 -0
- package/dist/types/lib/bll/index.d.ts +20 -0
- package/dist/types/lib/bll/ssf/index.d.ts +25 -0
- package/dist/types/lib/bll/ssf/loan.d.ts +16 -0
- package/dist/types/lib/bll/ssf/loconnect.d.ts +15 -0
- package/dist/types/lib/bll/ssf/ssfBase.d.ts +23 -0
- package/dist/types/lib/bll/ssf/types.d.ts +99 -0
- package/dist/types/lib/bll/types.d.ts +47 -0
- package/dist/types/lib/bll/validators/dateValidator.d.ts +16 -0
- package/dist/types/lib/bll/validators/emailValidator.d.ts +4 -0
- package/dist/types/lib/bll/validators/factory/index.d.ts +15 -0
- package/dist/types/lib/bll/validators/index.d.ts +2 -0
- package/dist/types/lib/bll/validators/maxCharValidator.d.ts +4 -0
- package/dist/types/lib/bll/validators/requiredValidator.d.ts +4 -0
- package/dist/types/lib/bll/validators/zipValidator.d.ts +5 -0
- package/dist/types/lib/core/index.d.ts +29 -0
- package/dist/types/lib/demo/config.d.ts +11 -0
- package/dist/types/lib/demo/index.d.ts +1 -0
- package/dist/types/lib/renderer/FieldRenderer.d.ts +5 -0
- package/dist/types/lib/renderer/base/hooks/fieldDescription.d.ts +5 -0
- package/dist/types/lib/renderer/base/hooks/fieldDisabled.d.ts +10 -0
- package/dist/types/lib/renderer/base/hooks/fieldGoTo.d.ts +4 -0
- package/dist/types/lib/renderer/base/hooks/fieldLocked.d.ts +4 -0
- package/dist/types/lib/renderer/base/hooks/fieldMeta.d.ts +10 -0
- package/dist/types/lib/renderer/base/hooks/fieldSubscribers.d.ts +6 -0
- package/dist/types/lib/renderer/base/hooks/fieldValidation.d.ts +9 -0
- package/dist/types/lib/renderer/base/hooks/fieldValue.d.ts +31 -0
- package/dist/types/lib/renderer/base/hooks/hookBase.d.ts +9 -0
- package/dist/types/lib/renderer/base/hooks/index.d.ts +19 -0
- package/dist/types/lib/renderer/base/renderer.d.ts +43 -0
- package/dist/types/lib/renderer/base/rendererValidator.d.ts +15 -0
- package/dist/types/lib/renderer/factory/index.d.ts +5 -0
- package/dist/types/lib/renderer/field-renderers/AddonRenderer.d.ts +12 -0
- package/dist/types/lib/renderer/field-renderers/CheckboxRenderer.d.ts +7 -0
- package/dist/types/lib/renderer/field-renderers/DateRenderer.d.ts +13 -0
- package/dist/types/lib/renderer/field-renderers/DropdownRenderer/hook.d.ts +23 -0
- package/dist/types/lib/renderer/field-renderers/DropdownRenderer/index.d.ts +12 -0
- package/dist/types/lib/renderer/field-renderers/LargeTextRenderer.d.ts +17 -0
- package/dist/types/lib/renderer/field-renderers/NumberRenderer.d.ts +12 -0
- package/dist/types/lib/renderer/field-renderers/RadioGroupRenderer.d.ts +8 -0
- package/dist/types/lib/renderer/field-renderers/RadioRenderer.d.ts +8 -0
- package/dist/types/lib/renderer/field-renderers/TextRenderer.d.ts +8 -0
- package/dist/types/lib/renderer/field-renderers/ToggleRenderer.d.ts +24 -0
- package/dist/types/lib/renderer/field-renderers/ZipCodeRenderer/helper.d.ts +48 -0
- package/dist/types/lib/renderer/field-renderers/ZipCodeRenderer/hook.d.ts +17 -0
- package/dist/types/lib/renderer/field-renderers/ZipCodeRenderer/index.d.ts +9 -0
- package/dist/types/lib/renderer/index.d.ts +2 -0
- package/dist/types/lib/renderer/styles.d.ts +7 -0
- package/dist/types/lib/renderer/types.d.ts +325 -0
- package/dist/types/lib/tests/base/flowBase.d.ts +13 -0
- package/dist/types/lib/tests/base/index.d.ts +6 -0
- package/dist/types/lib/tests/flows/checkboxRendererFlows.d.ts +9 -0
- package/dist/types/lib/tests/flows/dateRendererFlows.d.ts +120 -0
- package/dist/types/lib/tests/flows/dropdownRendererFlows.d.ts +92 -0
- package/dist/types/lib/tests/flows/largeTextRendererFlows.d.ts +9 -0
- package/dist/types/lib/tests/flows/numberRendererFlows.d.ts +11 -0
- package/dist/types/lib/tests/flows/radioRendererFlows.d.ts +10 -0
- package/dist/types/lib/tests/flows/textRendererFlows.d.ts +16 -0
- package/dist/types/lib/tests/flows/toggleRendererFlows.d.ts +10 -0
- package/dist/types/lib/tests/flows/zipCodeRendererFlows.d.ts +169 -0
- package/dist/types/lib/tests/loan-field-renderer-flows.test.d.ts +1 -0
- package/dist/types/lib/utils/dateHelper.d.ts +8 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +103 -0
|
@@ -0,0 +1,139 @@
|
|
|
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 __decorateClass = (decorators2, target, key, kind) => {
|
|
20
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
21
|
+
for (var i = decorators2.length - 1, decorator; i >= 0; i--)
|
|
22
|
+
if (decorator = decorators2[i])
|
|
23
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
24
|
+
if (kind && result) __defProp(target, key, result);
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
var hooks_exports = {};
|
|
28
|
+
__export(hooks_exports, {
|
|
29
|
+
Hooks: () => Hooks
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(hooks_exports);
|
|
32
|
+
var import_pui_app_sdk = require("@elliemae/pui-app-sdk");
|
|
33
|
+
var import_react = require("react");
|
|
34
|
+
var import_fieldMeta = require("./fieldMeta");
|
|
35
|
+
var import_fieldValue = require("./fieldValue");
|
|
36
|
+
var import_fieldDisabled = require("./fieldDisabled");
|
|
37
|
+
var import_fieldLocked = require("./fieldLocked");
|
|
38
|
+
var import_fieldValidation = require("./fieldValidation");
|
|
39
|
+
var import_fieldSubscribers = require("./fieldSubscribers");
|
|
40
|
+
var import_fieldGoTo = require("./fieldGoTo");
|
|
41
|
+
var import_hookBase = require("./hookBase");
|
|
42
|
+
var import_fieldDescription = require("./fieldDescription");
|
|
43
|
+
let Hooks = class extends import_hookBase.HookBase {
|
|
44
|
+
useFieldInit(params) {
|
|
45
|
+
const {
|
|
46
|
+
fieldId,
|
|
47
|
+
label = "",
|
|
48
|
+
rendererType,
|
|
49
|
+
maskType,
|
|
50
|
+
numberMaskOptions,
|
|
51
|
+
dateFormat,
|
|
52
|
+
forceRefresh
|
|
53
|
+
} = params;
|
|
54
|
+
const [fieldMetadata, setFieldMetadata] = (0, import_react.useState)(
|
|
55
|
+
{}
|
|
56
|
+
);
|
|
57
|
+
const [fieldValue, setFieldValue] = (0, import_react.useState)(void 0);
|
|
58
|
+
const [isLockedState, setIsLockedState] = (0, import_react.useState)(false);
|
|
59
|
+
const [isSearchedField, setIsSearchedField] = (0, import_react.useState)(false);
|
|
60
|
+
const [isReadonlyLoan, setIsReadonlyLoan] = (0, import_react.useState)(false);
|
|
61
|
+
const [validationResult, setValidationResult] = (0, import_react.useState)(null);
|
|
62
|
+
const [ariaDescProps, setAriaDescProps] = (0, import_react.useState)({ "aria-label": label || "" });
|
|
63
|
+
(0, import_react.useEffect)(() => {
|
|
64
|
+
if (!fieldId) return;
|
|
65
|
+
(async () => {
|
|
66
|
+
const [metadata, isLoanReadonly, lockStatus, fldValue, isGoToField] = await Promise.all([
|
|
67
|
+
this.getMetadata(fieldId),
|
|
68
|
+
this.isLoanReadonly(),
|
|
69
|
+
this.getFieldLockStatus(fieldId),
|
|
70
|
+
this.getFieldValue(fieldId),
|
|
71
|
+
this.isGoToField(fieldId)
|
|
72
|
+
]);
|
|
73
|
+
setFieldMetadata(metadata);
|
|
74
|
+
setFieldValue(
|
|
75
|
+
this.formatValue({
|
|
76
|
+
fieldValue: fldValue,
|
|
77
|
+
fieldFormat: metadata.fieldFormat,
|
|
78
|
+
options: {
|
|
79
|
+
rendererType,
|
|
80
|
+
maskType,
|
|
81
|
+
numberMaskOptions,
|
|
82
|
+
dateFormat
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
);
|
|
86
|
+
if (metadata.isLockField) {
|
|
87
|
+
setIsLockedState(lockStatus);
|
|
88
|
+
} else {
|
|
89
|
+
setIsLockedState(false);
|
|
90
|
+
}
|
|
91
|
+
setIsReadonlyLoan(isLoanReadonly);
|
|
92
|
+
setIsSearchedField(isGoToField);
|
|
93
|
+
setAriaDescProps(
|
|
94
|
+
this.getFieldAriaDescProps(label || "", metadata.description || "")
|
|
95
|
+
);
|
|
96
|
+
})();
|
|
97
|
+
}, [fieldId, forceRefresh]);
|
|
98
|
+
const isFieldDisabled = isReadonlyLoan || fieldMetadata.isLockField && !isLockedState || fieldMetadata.isReadOnly;
|
|
99
|
+
return {
|
|
100
|
+
fieldMetadata,
|
|
101
|
+
fieldValue,
|
|
102
|
+
setFieldValue,
|
|
103
|
+
isLockedState,
|
|
104
|
+
setIsLockedState,
|
|
105
|
+
isSearchedField,
|
|
106
|
+
setIsSearchedField,
|
|
107
|
+
isFieldDisabled,
|
|
108
|
+
validationResult,
|
|
109
|
+
setValidationResult,
|
|
110
|
+
ariaDescProps
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
useFieldGoTo(fieldId) {
|
|
114
|
+
const [isGoToField, setIsGoToField] = (0, import_react.useState)(false);
|
|
115
|
+
(0, import_react.useEffect)(() => {
|
|
116
|
+
if (!fieldId) return;
|
|
117
|
+
(async () => {
|
|
118
|
+
const goToStatus = await this.isGoToField(fieldId);
|
|
119
|
+
setIsGoToField(goToStatus);
|
|
120
|
+
})();
|
|
121
|
+
}, [fieldId]);
|
|
122
|
+
return {
|
|
123
|
+
isGoToField,
|
|
124
|
+
setIsGoToField
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
Hooks = __decorateClass([
|
|
129
|
+
import_pui_app_sdk.decorators.class.Mixins(
|
|
130
|
+
import_fieldMeta.FieldMeta,
|
|
131
|
+
import_fieldValue.FieldValue,
|
|
132
|
+
import_fieldDisabled.FieldDisabled,
|
|
133
|
+
import_fieldLocked.FieldLocked,
|
|
134
|
+
import_fieldValidation.FieldValidation,
|
|
135
|
+
import_fieldSubscribers.FieldSubscribers,
|
|
136
|
+
import_fieldGoTo.FieldGoTo,
|
|
137
|
+
import_fieldDescription.FieldDescription
|
|
138
|
+
)
|
|
139
|
+
], Hooks);
|
|
@@ -0,0 +1,198 @@
|
|
|
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 renderer_exports = {};
|
|
20
|
+
__export(renderer_exports, {
|
|
21
|
+
Renderer: () => Renderer
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(renderer_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_business_rules = require("@elliemae/business-rules");
|
|
26
|
+
var import_bll = require("../../bll");
|
|
27
|
+
var import_constants = require("../../bll/constants");
|
|
28
|
+
var import_hooks = require("./hooks");
|
|
29
|
+
class Renderer {
|
|
30
|
+
BrComponent = import_business_rules.BrComponent;
|
|
31
|
+
fieldFormat = "";
|
|
32
|
+
BLL;
|
|
33
|
+
Hooks;
|
|
34
|
+
BRWrapper;
|
|
35
|
+
VM;
|
|
36
|
+
Props;
|
|
37
|
+
constructor() {
|
|
38
|
+
this.VM = {};
|
|
39
|
+
this.BLL = new import_bll.BLL();
|
|
40
|
+
this.Hooks = new import_hooks.Hooks(this.BLL);
|
|
41
|
+
this.BRWrapper = this.renderBR();
|
|
42
|
+
this.Props = {};
|
|
43
|
+
}
|
|
44
|
+
async refreshFieldFromLoan() {
|
|
45
|
+
if (this.BLL.SSF.fieldValueResolver) return;
|
|
46
|
+
const { fieldId } = this.Props;
|
|
47
|
+
const fieldVal = await this.BLL.SSF.getFieldValue(fieldId);
|
|
48
|
+
const formattedValue = this.getFormattedValue(fieldVal);
|
|
49
|
+
this.VM.setFieldValue(formattedValue);
|
|
50
|
+
const valResult = this.Hooks.runValidationsOnValue(formattedValue, []);
|
|
51
|
+
if (!valResult.isValid) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.VM.setValidationResult(valResult);
|
|
55
|
+
}
|
|
56
|
+
initCallbacks = () => {
|
|
57
|
+
(async () => {
|
|
58
|
+
await this.refreshFieldFromLoan();
|
|
59
|
+
})();
|
|
60
|
+
};
|
|
61
|
+
renderBR() {
|
|
62
|
+
const { BrComponent: BRWrapper } = this;
|
|
63
|
+
const BrComponentWrapper = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BRWrapper, { ...props, init: this.initCallbacks });
|
|
64
|
+
return BrComponentWrapper;
|
|
65
|
+
}
|
|
66
|
+
syncVM(vm) {
|
|
67
|
+
Object.keys(vm).forEach(
|
|
68
|
+
(key) => {
|
|
69
|
+
this.VM[key] = vm[key];
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
return this.VM;
|
|
73
|
+
}
|
|
74
|
+
buildFormatOptions(props) {
|
|
75
|
+
const { rendererType } = props;
|
|
76
|
+
const rendererOptionMap = {
|
|
77
|
+
text: "maskType",
|
|
78
|
+
number: "numberMaskOptions",
|
|
79
|
+
date: "dateFormat"
|
|
80
|
+
};
|
|
81
|
+
const formatOptions = {};
|
|
82
|
+
const optionKey = rendererOptionMap[rendererType];
|
|
83
|
+
if (optionKey && optionKey in props && props[optionKey]) {
|
|
84
|
+
formatOptions[optionKey] = props[optionKey];
|
|
85
|
+
}
|
|
86
|
+
return formatOptions;
|
|
87
|
+
}
|
|
88
|
+
initVM(props) {
|
|
89
|
+
const { fieldId, label = "", forceRefresh } = props;
|
|
90
|
+
Object.assign(this.Props, props);
|
|
91
|
+
const formatOptions = this.buildFormatOptions(props);
|
|
92
|
+
const {
|
|
93
|
+
fieldMetadata,
|
|
94
|
+
fieldValue,
|
|
95
|
+
setFieldValue,
|
|
96
|
+
isLockedState,
|
|
97
|
+
setIsLockedState,
|
|
98
|
+
isSearchedField,
|
|
99
|
+
setIsSearchedField,
|
|
100
|
+
isFieldDisabled,
|
|
101
|
+
validationResult,
|
|
102
|
+
setValidationResult,
|
|
103
|
+
ariaDescProps
|
|
104
|
+
} = this.Hooks.useFieldInit({
|
|
105
|
+
fieldId,
|
|
106
|
+
label,
|
|
107
|
+
rendererType: props.rendererType,
|
|
108
|
+
maskType: formatOptions.maskType,
|
|
109
|
+
numberMaskOptions: formatOptions.numberMaskOptions,
|
|
110
|
+
dateFormat: formatOptions.dateFormat,
|
|
111
|
+
forceRefresh
|
|
112
|
+
});
|
|
113
|
+
return this.syncVM({
|
|
114
|
+
fieldMetadata,
|
|
115
|
+
fieldValue,
|
|
116
|
+
setFieldValue,
|
|
117
|
+
isLockedState,
|
|
118
|
+
setIsLockedState,
|
|
119
|
+
isSearchedField,
|
|
120
|
+
setIsSearchedField,
|
|
121
|
+
isFieldDisabled,
|
|
122
|
+
validationResult,
|
|
123
|
+
setValidationResult,
|
|
124
|
+
ariaDescProps
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
toggleLockStatus(fieldId, isLockedState) {
|
|
128
|
+
(async () => {
|
|
129
|
+
await this.BLL.SSF.callCalcForLock(fieldId, isLockedState);
|
|
130
|
+
})();
|
|
131
|
+
this.VM.setIsLockedState(!isLockedState);
|
|
132
|
+
}
|
|
133
|
+
buildValidationProps(validationResult) {
|
|
134
|
+
return {
|
|
135
|
+
validationMessage: validationResult && !validationResult.isValid ? validationResult.message || "" : "",
|
|
136
|
+
hasError: validationResult ? !validationResult.isValid : false
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
getFormattedValue(fieldValue) {
|
|
140
|
+
const props = this.Props;
|
|
141
|
+
const { rendererType, maskType, numberMaskOptions, dateFormat } = props;
|
|
142
|
+
const fieldFormat = this.VM.fieldMetadata?.fieldFormat || "";
|
|
143
|
+
return this.Hooks.formatValue({
|
|
144
|
+
fieldValue,
|
|
145
|
+
fieldFormat,
|
|
146
|
+
options: {
|
|
147
|
+
rendererType,
|
|
148
|
+
maskType: rendererType === "text" ? maskType : void 0,
|
|
149
|
+
numberMaskOptions: rendererType === "number" ? numberMaskOptions : void 0,
|
|
150
|
+
dateFormat: rendererType === "date" ? dateFormat : void 0
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
getParsedValue(fieldValue) {
|
|
155
|
+
const props = this.Props;
|
|
156
|
+
const { rendererType, maskType, dateFormat } = props;
|
|
157
|
+
const fieldFormat = this.VM.fieldMetadata?.fieldFormat || "";
|
|
158
|
+
return this.Hooks.parseValue({
|
|
159
|
+
fieldValue,
|
|
160
|
+
fieldFormat,
|
|
161
|
+
options: {
|
|
162
|
+
rendererType,
|
|
163
|
+
maskType: rendererType === "text" ? maskType : void 0,
|
|
164
|
+
dateFormat: rendererType === "date" ? dateFormat : void 0
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Sanitizes extra props by filtering out renderer-controlled properties.
|
|
170
|
+
* Prevents consumers from accidentally overriding internal state management.
|
|
171
|
+
* @template TExtra - Type of the extra props object
|
|
172
|
+
* @param {TExtra | undefined} extra - Additional props passed by the consumer
|
|
173
|
+
* @returns {Omit<TExtra, string>} Sanitized props object with controlled keys removed
|
|
174
|
+
* @example
|
|
175
|
+
* const sanitized = this.sanitize({ className: 'custom', onChange: () => {} });
|
|
176
|
+
* // Returns: { className: 'custom' } (onChange is filtered out)
|
|
177
|
+
*/
|
|
178
|
+
sanitize(extra) {
|
|
179
|
+
if (!extra) return {};
|
|
180
|
+
const controlledKeys = import_constants.RENDERER_CONTROLLED_PROPS[this.Props.rendererType];
|
|
181
|
+
if (!controlledKeys || controlledKeys.length === 0) {
|
|
182
|
+
return extra;
|
|
183
|
+
}
|
|
184
|
+
const controlledSet = new Set(controlledKeys);
|
|
185
|
+
const sanitized = Object.keys(extra).reduce((acc, key) => {
|
|
186
|
+
if (controlledSet.has(key)) {
|
|
187
|
+
this.BLL.Core.Log(
|
|
188
|
+
"warn",
|
|
189
|
+
`[${this.Props.rendererType}Renderer] Filtered controlled prop '${key}' from extra props. This prop is managed internally.`
|
|
190
|
+
);
|
|
191
|
+
} else {
|
|
192
|
+
acc[key] = extra[key];
|
|
193
|
+
}
|
|
194
|
+
return acc;
|
|
195
|
+
}, {});
|
|
196
|
+
return sanitized;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
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 rendererValidator_exports = {};
|
|
20
|
+
__export(rendererValidator_exports, {
|
|
21
|
+
RendererValidator: () => RendererValidator
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(rendererValidator_exports);
|
|
24
|
+
var import_bll = require("../../bll");
|
|
25
|
+
class RendererValidator {
|
|
26
|
+
static NUMERIC_FORMATS = ["DECIMAL", "INTEGER"];
|
|
27
|
+
static BOOLEAN_FORMATS = ["YN", "BOOLEAN"];
|
|
28
|
+
static DATE_FORMATS = ["DATE", "DATETIME"];
|
|
29
|
+
static validateRendererType({
|
|
30
|
+
rendererType,
|
|
31
|
+
fieldFormat
|
|
32
|
+
}) {
|
|
33
|
+
const format = fieldFormat?.toUpperCase();
|
|
34
|
+
if (rendererType === "number") {
|
|
35
|
+
return {
|
|
36
|
+
isValid: this.isNumericFormat(format),
|
|
37
|
+
expectedType: "number"
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (rendererType === "checkbox") {
|
|
41
|
+
return {
|
|
42
|
+
isValid: this.isBooleanFormat(format),
|
|
43
|
+
expectedType: "checkbox"
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
if (rendererType === "text" || rendererType === "email") {
|
|
47
|
+
return {
|
|
48
|
+
isValid: this.isTextCompatibleFormat(format),
|
|
49
|
+
expectedType: "text/email"
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (rendererType === "date" || rendererType === "datetime") {
|
|
53
|
+
return {
|
|
54
|
+
isValid: this.isDateFormat(format),
|
|
55
|
+
expectedType: "date/datetime"
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return { isValid: true, expectedType: "unknown" };
|
|
59
|
+
}
|
|
60
|
+
static isNumericFormat(format) {
|
|
61
|
+
return this.NUMERIC_FORMATS.some((f) => format?.includes(f)) || false;
|
|
62
|
+
}
|
|
63
|
+
static isBooleanFormat(format) {
|
|
64
|
+
return this.BOOLEAN_FORMATS.includes(format || "");
|
|
65
|
+
}
|
|
66
|
+
static isDateFormat(format) {
|
|
67
|
+
return this.DATE_FORMATS.includes(format || "");
|
|
68
|
+
}
|
|
69
|
+
static isTextCompatibleFormat(format) {
|
|
70
|
+
return !(this.isNumericFormat(format) || this.isBooleanFormat(format) || this.isDateFormat(format));
|
|
71
|
+
}
|
|
72
|
+
static logMismatch({
|
|
73
|
+
fieldId,
|
|
74
|
+
rendererType,
|
|
75
|
+
fieldFormat,
|
|
76
|
+
metadata
|
|
77
|
+
}) {
|
|
78
|
+
const { isValid, expectedType } = this.validateRendererType({
|
|
79
|
+
rendererType,
|
|
80
|
+
fieldFormat
|
|
81
|
+
});
|
|
82
|
+
if (isValid) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
import_bll.bllInstance.Core.Log(
|
|
86
|
+
"error",
|
|
87
|
+
`[RendererValidator] Mismatch for field ${fieldId}: using rendererType="${rendererType}" but fieldFormat="${fieldFormat}" suggests "${expectedType}"`,
|
|
88
|
+
{
|
|
89
|
+
rendererType,
|
|
90
|
+
fieldFormat,
|
|
91
|
+
expectedType,
|
|
92
|
+
metadata
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
throw new Error("Renderer type mismatch");
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
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 factory_exports = {};
|
|
20
|
+
__export(factory_exports, {
|
|
21
|
+
RendererFactory: () => RendererFactory
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(factory_exports);
|
|
24
|
+
var import_TextRenderer = require("../field-renderers/TextRenderer");
|
|
25
|
+
var import_NumberRenderer = require("../field-renderers/NumberRenderer");
|
|
26
|
+
var import_CheckboxRenderer = require("../field-renderers/CheckboxRenderer");
|
|
27
|
+
var import_RadioRenderer = require("../field-renderers/RadioRenderer");
|
|
28
|
+
var import_RadioGroupRenderer = require("../field-renderers/RadioGroupRenderer");
|
|
29
|
+
var import_DropdownRenderer = require("../field-renderers/DropdownRenderer");
|
|
30
|
+
var import_DateRenderer = require("../field-renderers/DateRenderer");
|
|
31
|
+
var import_LargeTextRenderer = require("../field-renderers/LargeTextRenderer");
|
|
32
|
+
var import_ZipCodeRenderer = require("../field-renderers/ZipCodeRenderer/index");
|
|
33
|
+
var import_ToggleRenderer = require("../field-renderers/ToggleRenderer");
|
|
34
|
+
const rendererMap = {
|
|
35
|
+
text: () => new import_TextRenderer.TextRenderer().render(),
|
|
36
|
+
email: () => new import_TextRenderer.TextRenderer().render(),
|
|
37
|
+
number: () => new import_NumberRenderer.NumberRenderer().render(),
|
|
38
|
+
checkbox: () => new import_CheckboxRenderer.CheckboxRenderer().render(),
|
|
39
|
+
radio: () => new import_RadioRenderer.RadioRenderer().render(),
|
|
40
|
+
radiogroup: () => new import_RadioGroupRenderer.RadioGroupRenderer().render(),
|
|
41
|
+
dropdown: () => new import_DropdownRenderer.DropdownRenderer().render(),
|
|
42
|
+
date: () => new import_DateRenderer.DateRenderer().render(),
|
|
43
|
+
zipcode: () => new import_ZipCodeRenderer.ZipCodeRenderer().render(),
|
|
44
|
+
largetext: () => new import_LargeTextRenderer.LargeTextRenderer().render(),
|
|
45
|
+
toggle: () => new import_ToggleRenderer.ToggleRenderer().render()
|
|
46
|
+
};
|
|
47
|
+
class RendererFactory {
|
|
48
|
+
static create(type) {
|
|
49
|
+
const factory = rendererMap[type];
|
|
50
|
+
if (!factory) {
|
|
51
|
+
throw new Error(`Renderer type ${type} is not supported.`);
|
|
52
|
+
}
|
|
53
|
+
return factory();
|
|
54
|
+
}
|
|
55
|
+
render() {
|
|
56
|
+
return (props) => RendererFactory.create(props.rendererType)(props);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
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 AddonRenderer_exports = {};
|
|
20
|
+
__export(AddonRenderer_exports, {
|
|
21
|
+
AddonRenderer: () => AddonRenderer
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(AddonRenderer_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_ds_form_layout_input_group = require("@elliemae/ds-form-layout-input-group");
|
|
26
|
+
var import_ds_icons = require("@elliemae/ds-icons");
|
|
27
|
+
var import_ds_button_v2 = require("@elliemae/ds-button-v2");
|
|
28
|
+
var import_renderer = require("../base/renderer");
|
|
29
|
+
class AddonRenderer extends import_renderer.Renderer {
|
|
30
|
+
renderPadLock({
|
|
31
|
+
fieldId,
|
|
32
|
+
isLocked,
|
|
33
|
+
isDisabled = false,
|
|
34
|
+
onToggle
|
|
35
|
+
}) {
|
|
36
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
37
|
+
import_ds_button_v2.DSButtonV3,
|
|
38
|
+
{
|
|
39
|
+
buttonType: import_ds_button_v2.BUTTON_TYPES.ICON,
|
|
40
|
+
"aria-label": isLocked ? "Lock" : "UnLock",
|
|
41
|
+
"data-testid": isLocked ? `lock-${fieldId}` : `unlock-${fieldId}`,
|
|
42
|
+
disabled: isDisabled,
|
|
43
|
+
size: import_ds_button_v2.BUTTON_SIZES.M,
|
|
44
|
+
onClick: onToggle,
|
|
45
|
+
children: isLocked ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.LockLocked, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.LockUnlocked, {})
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
render() {
|
|
50
|
+
const Addon = (props) => {
|
|
51
|
+
const {
|
|
52
|
+
fieldId,
|
|
53
|
+
isPadLock,
|
|
54
|
+
isLocked,
|
|
55
|
+
isDisable,
|
|
56
|
+
rightAddon,
|
|
57
|
+
onPadLockToggle
|
|
58
|
+
} = props;
|
|
59
|
+
return isPadLock || rightAddon ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
60
|
+
import_ds_form_layout_input_group.DSInputGroup,
|
|
61
|
+
{
|
|
62
|
+
leftAddon: isPadLock ? this.renderPadLock({
|
|
63
|
+
fieldId,
|
|
64
|
+
isLocked: isLocked || false,
|
|
65
|
+
isDisabled: isDisable,
|
|
66
|
+
onToggle: onPadLockToggle
|
|
67
|
+
}) : void 0,
|
|
68
|
+
rightAddon,
|
|
69
|
+
children: props.children
|
|
70
|
+
}
|
|
71
|
+
) : props.children;
|
|
72
|
+
};
|
|
73
|
+
return Addon;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
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 CheckboxRenderer_exports = {};
|
|
30
|
+
__export(CheckboxRenderer_exports, {
|
|
31
|
+
CheckboxRenderer: () => CheckboxRenderer
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(CheckboxRenderer_exports);
|
|
34
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
+
var import_react = __toESM(require("react"));
|
|
36
|
+
var import_ds_form_checkbox = require("@elliemae/ds-form-checkbox");
|
|
37
|
+
var import_renderer = require("../base/renderer");
|
|
38
|
+
var import_styles = require("../styles");
|
|
39
|
+
class CheckboxRenderer extends import_renderer.Renderer {
|
|
40
|
+
constructor() {
|
|
41
|
+
super();
|
|
42
|
+
this.BRWrapper = this.renderBR();
|
|
43
|
+
}
|
|
44
|
+
render() {
|
|
45
|
+
const { BRWrapper } = this;
|
|
46
|
+
const CheckboxComponent = (props) => {
|
|
47
|
+
const {
|
|
48
|
+
fieldId,
|
|
49
|
+
onBlur,
|
|
50
|
+
autoFieldSet = true,
|
|
51
|
+
validationRules,
|
|
52
|
+
isDisable,
|
|
53
|
+
label,
|
|
54
|
+
extra,
|
|
55
|
+
...rest
|
|
56
|
+
} = props;
|
|
57
|
+
const {
|
|
58
|
+
fieldValue,
|
|
59
|
+
isFieldDisabled,
|
|
60
|
+
setFieldValue,
|
|
61
|
+
validationResult,
|
|
62
|
+
isSearchedField,
|
|
63
|
+
setIsSearchedField
|
|
64
|
+
} = this.initVM(props);
|
|
65
|
+
const validationProps = this.buildValidationProps(validationResult);
|
|
66
|
+
const onChangeEvent = (0, import_react.useCallback)(
|
|
67
|
+
(newVal) => {
|
|
68
|
+
setIsSearchedField(false);
|
|
69
|
+
if (!isDisable && !isFieldDisabled) {
|
|
70
|
+
const formattedValue = this.getFormattedValue(newVal);
|
|
71
|
+
setFieldValue(formattedValue);
|
|
72
|
+
const parsedValue = this.getParsedValue(formattedValue);
|
|
73
|
+
if (autoFieldSet) {
|
|
74
|
+
(async () => {
|
|
75
|
+
await this.BLL.SSF.setFieldValue(fieldId, parsedValue);
|
|
76
|
+
})();
|
|
77
|
+
}
|
|
78
|
+
if (onBlur) {
|
|
79
|
+
onBlur(fieldId, parsedValue);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
[
|
|
84
|
+
isDisable,
|
|
85
|
+
isFieldDisabled,
|
|
86
|
+
setFieldValue,
|
|
87
|
+
setIsSearchedField,
|
|
88
|
+
onBlur,
|
|
89
|
+
autoFieldSet,
|
|
90
|
+
fieldId
|
|
91
|
+
]
|
|
92
|
+
);
|
|
93
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
94
|
+
BRWrapper,
|
|
95
|
+
{
|
|
96
|
+
fieldId,
|
|
97
|
+
inputID: fieldId,
|
|
98
|
+
value: !!fieldValue,
|
|
99
|
+
...props.brCompProps || {},
|
|
100
|
+
withHighlight: isSearchedField,
|
|
101
|
+
...validationProps,
|
|
102
|
+
children: [
|
|
103
|
+
!label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.EmptyLabel, { htmlFor: fieldId }),
|
|
104
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
105
|
+
import_ds_form_checkbox.DSControlledCheckbox,
|
|
106
|
+
{
|
|
107
|
+
id: fieldId,
|
|
108
|
+
label,
|
|
109
|
+
"data-testid": fieldId,
|
|
110
|
+
checked: !!fieldValue,
|
|
111
|
+
applyAriaDisabled: isFieldDisabled || isDisable,
|
|
112
|
+
onChange: onChangeEvent,
|
|
113
|
+
...extra,
|
|
114
|
+
...this.sanitize(rest)
|
|
115
|
+
}
|
|
116
|
+
)
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
};
|
|
121
|
+
return import_react.default.memo(CheckboxComponent);
|
|
122
|
+
}
|
|
123
|
+
}
|