@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,31 @@
|
|
|
1
|
+
import { HookBase } from './hookBase';
|
|
2
|
+
import { FieldValueParamsT, FormattingOptionsT, ParsingOptionsT } from '../../types';
|
|
3
|
+
export declare class FieldValue extends HookBase {
|
|
4
|
+
getFieldValue(fieldId: string): Promise<unknown>;
|
|
5
|
+
formatValue(params: {
|
|
6
|
+
fieldValue: unknown;
|
|
7
|
+
fieldFormat: string;
|
|
8
|
+
options: FormattingOptionsT;
|
|
9
|
+
}): unknown;
|
|
10
|
+
private formatByRendererType;
|
|
11
|
+
private formatTextValue;
|
|
12
|
+
private formatNumberValue;
|
|
13
|
+
private formatBooleanValue;
|
|
14
|
+
private formatDateValue;
|
|
15
|
+
private formatDropdownValue;
|
|
16
|
+
private formatZipValue;
|
|
17
|
+
useFieldValue(params: FieldValueParamsT): {
|
|
18
|
+
fieldValue: unknown;
|
|
19
|
+
setFieldValue: React.Dispatch<React.SetStateAction<unknown>>;
|
|
20
|
+
};
|
|
21
|
+
parseValue(params: {
|
|
22
|
+
fieldValue: unknown;
|
|
23
|
+
fieldFormat: string;
|
|
24
|
+
options: ParsingOptionsT;
|
|
25
|
+
}): unknown;
|
|
26
|
+
private parseTextValue;
|
|
27
|
+
private parseNumberValue;
|
|
28
|
+
private parseBooleanValue;
|
|
29
|
+
private parseDateValue;
|
|
30
|
+
private parseZipValue;
|
|
31
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { FieldMeta } from './fieldMeta';
|
|
2
|
+
import { FieldValue } from './fieldValue';
|
|
3
|
+
import { FieldDisabled } from './fieldDisabled';
|
|
4
|
+
import { FieldLocked } from './fieldLocked';
|
|
5
|
+
import { FieldValidation } from './fieldValidation';
|
|
6
|
+
import { FieldSubscribers } from './fieldSubscribers';
|
|
7
|
+
import { FieldGoTo } from './fieldGoTo';
|
|
8
|
+
import { HookBase } from './hookBase';
|
|
9
|
+
import { FieldDescription } from './fieldDescription';
|
|
10
|
+
import { ViewModelT, VMConfigT } from '../../types';
|
|
11
|
+
export interface Hooks extends FieldMeta, FieldValue, FieldDisabled, FieldLocked, FieldValidation, FieldSubscribers, FieldGoTo, FieldDescription {
|
|
12
|
+
}
|
|
13
|
+
export declare class Hooks extends HookBase {
|
|
14
|
+
useFieldInit(params: VMConfigT): ViewModelT;
|
|
15
|
+
useFieldGoTo(fieldId: string): {
|
|
16
|
+
isGoToField: boolean;
|
|
17
|
+
setIsGoToField: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IBrComponentProps } from '@elliemae/business-rules';
|
|
3
|
+
import { RendererPropsT, ViewModelT } from '../types';
|
|
4
|
+
import { IBLL } from '../../bll';
|
|
5
|
+
import { Hooks } from './hooks';
|
|
6
|
+
export declare abstract class Renderer<T extends RendererPropsT = RendererPropsT> {
|
|
7
|
+
private BrComponent;
|
|
8
|
+
protected fieldFormat: string;
|
|
9
|
+
protected BLL: IBLL;
|
|
10
|
+
protected Hooks: Hooks;
|
|
11
|
+
protected BRWrapper: React.FC<IBrComponentProps>;
|
|
12
|
+
protected VM: ViewModelT;
|
|
13
|
+
protected Props: T;
|
|
14
|
+
constructor();
|
|
15
|
+
abstract render(): React.FC<T>;
|
|
16
|
+
private refreshFieldFromLoan;
|
|
17
|
+
private initCallbacks;
|
|
18
|
+
protected renderBR(): React.FC<IBrComponentProps>;
|
|
19
|
+
private syncVM;
|
|
20
|
+
private buildFormatOptions;
|
|
21
|
+
protected initVM(props: T): ViewModelT;
|
|
22
|
+
protected toggleLockStatus(fieldId: string, isLockedState: boolean): void;
|
|
23
|
+
protected buildValidationProps(validationResult: {
|
|
24
|
+
isValid: boolean;
|
|
25
|
+
message?: string;
|
|
26
|
+
} | null): {
|
|
27
|
+
validationMessage: string;
|
|
28
|
+
hasError: boolean;
|
|
29
|
+
};
|
|
30
|
+
protected getFormattedValue(fieldValue: unknown): unknown;
|
|
31
|
+
protected getParsedValue(fieldValue: unknown): unknown;
|
|
32
|
+
/**
|
|
33
|
+
* Sanitizes extra props by filtering out renderer-controlled properties.
|
|
34
|
+
* Prevents consumers from accidentally overriding internal state management.
|
|
35
|
+
* @template TExtra - Type of the extra props object
|
|
36
|
+
* @param {TExtra | undefined} extra - Additional props passed by the consumer
|
|
37
|
+
* @returns {Omit<TExtra, string>} Sanitized props object with controlled keys removed
|
|
38
|
+
* @example
|
|
39
|
+
* const sanitized = this.sanitize({ className: 'custom', onChange: () => {} });
|
|
40
|
+
* // Returns: { className: 'custom' } (onChange is filtered out)
|
|
41
|
+
*/
|
|
42
|
+
protected sanitize<TExtra extends Record<string, unknown>>(extra: TExtra | undefined): Omit<TExtra, string>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IRendererValidateParams } from '../types';
|
|
2
|
+
export declare class RendererValidator {
|
|
3
|
+
private static readonly NUMERIC_FORMATS;
|
|
4
|
+
private static readonly BOOLEAN_FORMATS;
|
|
5
|
+
private static readonly DATE_FORMATS;
|
|
6
|
+
static validateRendererType({ rendererType, fieldFormat, }: Pick<IRendererValidateParams, 'rendererType' | 'fieldFormat'>): {
|
|
7
|
+
isValid: boolean;
|
|
8
|
+
expectedType: string;
|
|
9
|
+
};
|
|
10
|
+
static isNumericFormat(format?: string): boolean;
|
|
11
|
+
static isBooleanFormat(format?: string): boolean;
|
|
12
|
+
static isDateFormat(format?: string): boolean;
|
|
13
|
+
static isTextCompatibleFormat(format?: string): boolean;
|
|
14
|
+
static logMismatch({ fieldId, rendererType, fieldFormat, metadata, }: IRendererValidateParams): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Renderer } from '../base/renderer';
|
|
3
|
+
import { AddonRendererPropsT } from '../types';
|
|
4
|
+
export declare class AddonRenderer extends Renderer<AddonRendererPropsT> {
|
|
5
|
+
protected renderPadLock({ fieldId, isLocked, isDisabled, onToggle, }: {
|
|
6
|
+
fieldId: string;
|
|
7
|
+
isLocked: boolean;
|
|
8
|
+
isDisabled?: boolean;
|
|
9
|
+
onToggle?: () => void;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
render(): React.FC<AddonRendererPropsT>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Renderer } from '../base/renderer';
|
|
3
|
+
import { CheckboxRendererPropsT } from '../types';
|
|
4
|
+
export declare class CheckboxRenderer extends Renderer<CheckboxRendererPropsT> {
|
|
5
|
+
constructor();
|
|
6
|
+
render(): React.FC<CheckboxRendererPropsT>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Renderer } from '../base/renderer';
|
|
3
|
+
import { DateRendererPropsT, AddonRendererPropsT } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* DateRenderer follows the same architecture pattern as TextRenderer.
|
|
6
|
+
* Leverages the base Renderer class for formatting/parsing via centralized BLL.
|
|
7
|
+
* Loan value stored as YYYY-MM-DD, UI displays as MM/DD/YYYY (configurable).
|
|
8
|
+
*/
|
|
9
|
+
export declare class DateRenderer extends Renderer<DateRendererPropsT> {
|
|
10
|
+
AddOnRenderer: React.FC<AddonRendererPropsT>;
|
|
11
|
+
constructor();
|
|
12
|
+
render(): React.FC<DateRendererPropsT>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DSComboboxT } from '@elliemae/ds-controlled-form';
|
|
2
|
+
import { FieldOptionsT } from '../../types';
|
|
3
|
+
interface Params {
|
|
4
|
+
isEditable?: boolean;
|
|
5
|
+
fieldValue: unknown;
|
|
6
|
+
baseOptions: FieldOptionsT[];
|
|
7
|
+
isLockField: boolean;
|
|
8
|
+
handlePersist: (rawValue: string | null) => void;
|
|
9
|
+
isLocked: boolean;
|
|
10
|
+
setIsSearchedField: React.Dispatch<React.SetStateAction<boolean>>;
|
|
11
|
+
fieldId: string;
|
|
12
|
+
onCreateCB?: (fieldId: string, value: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function useDropdownCreateSupport({ isEditable, fieldValue, baseOptions, isLockField, handlePersist, isLocked, setIsSearchedField, fieldId, onCreateCB, }: Params): {
|
|
15
|
+
effectiveOptions: FieldOptionsT[];
|
|
16
|
+
selectedOption: DSComboboxT.ItemOption | null;
|
|
17
|
+
createProps: {
|
|
18
|
+
onCreate: (createdLabel: string) => void;
|
|
19
|
+
} | {
|
|
20
|
+
onCreate?: undefined;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Renderer } from '../../base/renderer';
|
|
3
|
+
import { DropdownRendererPropsT, AddonRendererPropsT } from '../../types';
|
|
4
|
+
/**
|
|
5
|
+
* DropdownRenderer with controlled value sanitization, geo state data and editable support.
|
|
6
|
+
*/
|
|
7
|
+
export declare class DropdownRenderer extends Renderer<DropdownRendererPropsT> {
|
|
8
|
+
AddOnRenderer: React.FC<AddonRendererPropsT>;
|
|
9
|
+
constructor();
|
|
10
|
+
render(): React.FC<DropdownRendererPropsT>;
|
|
11
|
+
}
|
|
12
|
+
export default DropdownRenderer;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Renderer } from '../base/renderer';
|
|
3
|
+
import { LargeTextRendererPropsT, AddonRendererPropsT } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* LargeTextRenderer - A multi-line textarea renderer following the Renderer design pattern.
|
|
6
|
+
* Migrated from CommentComponent.jsx with full feature parity:
|
|
7
|
+
* - Multi-line text input with configurable rows
|
|
8
|
+
* - SSF integration for field value persistence
|
|
9
|
+
* - GTF highlighter support via BRWrapper
|
|
10
|
+
* - Validation support
|
|
11
|
+
* - Padlock/lock field support via AddonRenderer
|
|
12
|
+
*/
|
|
13
|
+
export declare class LargeTextRenderer extends Renderer<LargeTextRendererPropsT> {
|
|
14
|
+
AddOnRenderer: React.FC<AddonRendererPropsT>;
|
|
15
|
+
constructor();
|
|
16
|
+
render(): React.FC<LargeTextRendererPropsT>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Renderer } from '../base/renderer';
|
|
3
|
+
import { NumberRendererPropsT } from '../types';
|
|
4
|
+
export declare class NumberRenderer extends Renderer<NumberRendererPropsT> {
|
|
5
|
+
private AddOnRenderer;
|
|
6
|
+
constructor();
|
|
7
|
+
private useNumberMaskResult;
|
|
8
|
+
private isEmptyInput;
|
|
9
|
+
private handleOnBlur;
|
|
10
|
+
private getMaxLengthProp;
|
|
11
|
+
render(): React.FC<NumberRendererPropsT>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Renderer } from '../base/renderer';
|
|
3
|
+
import { RadioGroupRendererPropsT } from '../types';
|
|
4
|
+
export declare class RadioGroupRenderer extends Renderer<RadioGroupRendererPropsT> {
|
|
5
|
+
constructor();
|
|
6
|
+
private onSelect;
|
|
7
|
+
render(): React.FC<RadioGroupRendererPropsT>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Renderer } from '../base/renderer';
|
|
3
|
+
import { RadioRendererPropsT } from '../types';
|
|
4
|
+
export declare class RadioRenderer extends Renderer<RadioRendererPropsT> {
|
|
5
|
+
constructor();
|
|
6
|
+
private onSelect;
|
|
7
|
+
render(): React.FC<RadioRendererPropsT>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Renderer } from '../base/renderer';
|
|
3
|
+
import { TextRendererPropsT, EmailRendererPropsT, AddonRendererPropsT } from '../types';
|
|
4
|
+
export declare class TextRenderer extends Renderer<TextRendererPropsT | EmailRendererPropsT> {
|
|
5
|
+
AddOnRenderer: React.FC<AddonRendererPropsT>;
|
|
6
|
+
constructor();
|
|
7
|
+
render(): React.FC<TextRendererPropsT | EmailRendererPropsT>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Renderer } from '../base/renderer';
|
|
3
|
+
import { ToggleRendererPropsT } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* ToggleRenderer - A boolean toggle field renderer following the field-renderers architecture.
|
|
6
|
+
*
|
|
7
|
+
* Architecture Notes:
|
|
8
|
+
* - Extends base Renderer<ToggleRendererPropsT> for shared infrastructure (BLL, Hooks, BRWrapper, VM)
|
|
9
|
+
* - Uses initVM() for centralized state management (value, metadata, validation, disabled state)
|
|
10
|
+
* - Leverages BRWrapper for business rules integration and loan change subscriptions
|
|
11
|
+
* - Implements the render() template method returning a memoized functional component
|
|
12
|
+
* - Follows the same patterns as CheckboxRenderer for boolean field handling
|
|
13
|
+
*
|
|
14
|
+
* Migration Notes from toggle-button.tsx:
|
|
15
|
+
* - Replaced SSFWrapper.getFieldValue with BLL.SSF (via initVM hook)
|
|
16
|
+
* - Replaced useSearchedField custom hook with Hooks.useFieldInit integration
|
|
17
|
+
* - Replaced forceUpdate prop with BRWrapper's automatic loan change subscription
|
|
18
|
+
* - Replaced BRWrapper component import with renderBR() template method
|
|
19
|
+
* - Moved label handling to BRWrapper label prop for consistency
|
|
20
|
+
*/
|
|
21
|
+
export declare class ToggleRenderer extends Renderer<ToggleRendererPropsT> {
|
|
22
|
+
constructor();
|
|
23
|
+
render(): React.FC<ToggleRendererPropsT>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { GeoFields, ZipCodeCityDataT, ZipCodeAutocompleteOptionT, DebounceOptionsT } from '../../types';
|
|
2
|
+
export declare const useDebouncedCallback: <T extends unknown[]>(callback: (...args: T) => void | Promise<void>, waitTimeout?: number, options?: DebounceOptionsT) => (...args: T) => void;
|
|
3
|
+
/**
|
|
4
|
+
* ZipCodeHelper - Utility class for zip code data formatting and validation
|
|
5
|
+
*
|
|
6
|
+
* Provides centralized methods for:
|
|
7
|
+
* - City data normalization
|
|
8
|
+
* - Option label formatting
|
|
9
|
+
* - Autocomplete option building
|
|
10
|
+
* - Address field validation
|
|
11
|
+
*/
|
|
12
|
+
export declare class ZipCodeHelper {
|
|
13
|
+
private constructor();
|
|
14
|
+
private static readonly SECTION_OPTION;
|
|
15
|
+
static readonly DEFAULT_COUNTRY_CODE = "US";
|
|
16
|
+
/**
|
|
17
|
+
* Normalizes city data from various API response formats
|
|
18
|
+
* Handles both uppercase and lowercase property names
|
|
19
|
+
* @param cityData - The city data object to normalize
|
|
20
|
+
* @returns Normalized object with lowercase property names
|
|
21
|
+
*/
|
|
22
|
+
static normalizeCityData(cityData: ZipCodeCityDataT | null): {
|
|
23
|
+
city: string;
|
|
24
|
+
state: string;
|
|
25
|
+
county: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Formats a city data option into a readable label
|
|
29
|
+
* Format: "City - County - State"
|
|
30
|
+
* @param option - The city data to format
|
|
31
|
+
* @returns Formatted string label
|
|
32
|
+
*/
|
|
33
|
+
static formatOptionLabel(option: ZipCodeCityDataT): string;
|
|
34
|
+
/**
|
|
35
|
+
* Builds autocomplete options from zip code lookup data
|
|
36
|
+
* When multiple cities exist for a zip code, adds a section header
|
|
37
|
+
* @param zip - The zip code string
|
|
38
|
+
* @param data - Array of city data for the zip code
|
|
39
|
+
* @returns Array of autocomplete options
|
|
40
|
+
*/
|
|
41
|
+
static buildOptions(zip: string, data: ZipCodeCityDataT[]): ZipCodeAutocompleteOptionT[];
|
|
42
|
+
/**
|
|
43
|
+
* Validates whether any geo fields contain non-empty address data
|
|
44
|
+
* @param geoFields - Optional geo fields object to validate
|
|
45
|
+
* @returns True if any geo field has non-empty string value
|
|
46
|
+
*/
|
|
47
|
+
static hasAddressTargets(geoFields?: GeoFields): boolean;
|
|
48
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { GeoFields, ZipCodeCityDataT, ZipCodeOptionT, ZipCodeAutocompleteOptionT } from '../../types';
|
|
2
|
+
import { SSF } from '../../../bll/ssf';
|
|
3
|
+
type ZipCodeApi = Pick<SSF, 'getZipCodeOptions' | 'getZipCodeOptionsWithLatLong' | 'setFieldsValues'>;
|
|
4
|
+
type UseZipCodeLookupParams = {
|
|
5
|
+
ssf: ZipCodeApi;
|
|
6
|
+
onGeoLookupComplete?: (zipCode: string, cityData: ZipCodeCityDataT) => void;
|
|
7
|
+
useLatLong?: boolean;
|
|
8
|
+
isForeignAddress?: boolean;
|
|
9
|
+
geoFields?: GeoFields;
|
|
10
|
+
};
|
|
11
|
+
export declare const useZipCodeLookup: ({ ssf, onGeoLookupComplete, useLatLong, isForeignAddress, geoFields, }: UseZipCodeLookupParams) => {
|
|
12
|
+
readonly options: ZipCodeAutocompleteOptionT[];
|
|
13
|
+
readonly searchZipCode: (zip: string) => void;
|
|
14
|
+
readonly handleOptionSelect: (label?: string | null) => ZipCodeOptionT | null;
|
|
15
|
+
readonly clearOptions: () => void;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Renderer } from '../../base/renderer';
|
|
3
|
+
import { ZipCodeRendererPropsT, AddonRendererPropsT } from '../../types';
|
|
4
|
+
export declare class ZipCodeRenderer extends Renderer<ZipCodeRendererPropsT> {
|
|
5
|
+
AddOnRenderer: React.FC<AddonRendererPropsT>;
|
|
6
|
+
constructor();
|
|
7
|
+
render(): React.FC<ZipCodeRendererPropsT>;
|
|
8
|
+
}
|
|
9
|
+
export default ZipCodeRenderer;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Theme } from '@elliemae/pui-theme';
|
|
2
|
+
export declare const EmptyLabel: import("styled-components").StyledComponent<"label", any, {}, never>;
|
|
3
|
+
export declare const StyledDateTimePicker: import("styled-components").StyledComponent<{
|
|
4
|
+
(props: import("@elliemae/ds-form-date-time-picker").DSControlledDateTimePickerT.Props): JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
}, any, {}, never>;
|
|
7
|
+
export declare const theme: Theme;
|