finform-react-builder 1.8.33 → 1.8.35

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.
@@ -21,5 +21,9 @@ export interface FinDragDropListProps<T> {
21
21
  showIndex?: boolean;
22
22
  showLeftIcon?: boolean;
23
23
  renderItem?: (item: T, isDragging: boolean) => React.ReactNode;
24
+ emptyStateText?: string;
25
+ emptyStateButtonText?: string;
26
+ onEmptyStateButtonClick?: () => void;
27
+ emptyStateSx?: any;
24
28
  }
25
- export declare function FinDragDropList<T>({ items, getId, onReorder, header, disabled, sx, getText, /* getChip */ showIndex, showLeftIcon, renderItem, chipText, helperText }: FinDragDropListProps<T>): import("react/jsx-runtime").JSX.Element;
29
+ export declare function FinDragDropList<T>({ items, getId, onReorder, header, disabled, sx, getText, showIndex, showLeftIcon, renderItem, chipText, helperText, emptyStateText, emptyStateButtonText, onEmptyStateButtonClick, emptyStateSx, }: FinDragDropListProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,32 @@
1
+ import { default as React } from 'react';
2
+ export type PhaseType = "interest-only" | "principal-moratorium" | "emi" | "equal-principal" | "balloon" | "bullet" | "step-up-down" | "seasonal-skips" | "custom-fixed" | "payment-holiday";
3
+ export type InterestPolicy = "accrue-capitalize" | "accrue-bill-next" | "accrue-forgive";
4
+ export type HolidayInterestTreatment = "accrue-capitalize" | "accrue-bill-next" | "accrue-forgive";
5
+ export interface Phase {
6
+ id: string | number;
7
+ type: PhaseType;
8
+ priority?: number;
9
+ min?: number;
10
+ max?: number;
11
+ lockLength?: boolean;
12
+ residualFill?: boolean;
13
+ interestPolicy?: InterestPolicy;
14
+ holidayInterestTreatment?: HolidayInterestTreatment;
15
+ balloonType?: "amount" | "percent";
16
+ balloonAmount?: number;
17
+ balloonPercent?: number;
18
+ stepPercent?: number;
19
+ stepEveryN?: number;
20
+ seasonalMonths?: string[];
21
+ customAmount?: number;
22
+ }
23
+ export interface FinPhaseCardProps {
24
+ phase: Phase;
25
+ index: number;
26
+ onUpdate: (id: string | number, updates: Partial<Phase>) => void;
27
+ onDelete: (id: string | number) => void;
28
+ months?: string[];
29
+ disabled?: boolean;
30
+ sx?: any;
31
+ }
32
+ export declare const FinPhaseCard: React.FC<FinPhaseCardProps>;
@@ -17,3 +17,4 @@ export * from './FinInfoCard';
17
17
  export * from './FinTabs';
18
18
  export * from './FinEditableGrid';
19
19
  export * from './FinListCards';
20
+ export * from './FinPhaseCard';
@@ -4,9 +4,15 @@ export interface ValidationRule {
4
4
  required?: boolean;
5
5
  minLength?: number;
6
6
  maxLength?: number;
7
- min?: number | string;
8
- max?: number | string;
9
- custom?: (value: any) => boolean | string;
7
+ min?: number | string | {
8
+ field: string;
9
+ message?: string;
10
+ };
11
+ max?: number | string | {
12
+ field: string;
13
+ message?: string;
14
+ };
15
+ custom?: (value: any, formValues?: any) => boolean | string;
10
16
  }
11
17
  export interface ApiConfig {
12
18
  endpoint: string;
@@ -29,7 +35,7 @@ export interface BaseField {
29
35
  title?: string;
30
36
  name: string;
31
37
  label: string;
32
- type: 'text' | 'email' | 'password' | 'number' | 'tel' | 'select' | 'checkbox' | 'checkboxGroup' | 'toggle' | 'radio' | 'switch' | 'autocomplete' | 'date' | 'textarea' | 'image' | 'title' | 'section' | 'component' | 'finuiHeader' | 'tabs' | 'grid' | 'listcards';
38
+ type: 'text' | 'email' | 'password' | 'number' | 'tel' | 'select' | 'checkbox' | 'checkboxGroup' | 'toggle' | 'radio' | 'switch' | 'autocomplete' | 'date' | 'textarea' | 'image' | 'title' | 'section' | 'component' | 'finuiHeader' | 'tabs' | 'grid' | 'listcards' | 'dragdroplist';
33
39
  placeholder?: string;
34
40
  labelPosition?: 'inner' | 'top' | 'none';
35
41
  labelVariant?: 'caption' | 'body2' | 'subtitle2' | 'h6';
@@ -321,7 +327,20 @@ export interface ListCardsField extends BaseField {
321
327
  sx?: any;
322
328
  cardSx?: any;
323
329
  }
324
- export type FieldConfig = TextField | NumberField | SelectField | CheckboxField | CheckboxGroupField | ToggleField | RadioField | SwitchField | AutocompleteField | DateField | ImageField | TitleField | SectionField | ComponentField | FinUiHeaderField | TabsField | GridField | ListCardsField;
330
+ export interface DragDropListField extends Omit<BaseField, 'helperText'> {
331
+ type: 'dragdroplist';
332
+ items: any[];
333
+ getId?: string | ((item: any) => string | number);
334
+ getText?: string | ((item: any) => string);
335
+ header?: React.ReactNode;
336
+ chipText?: string | ((item: any, index: number) => string | undefined);
337
+ showIndex?: boolean;
338
+ showLeftIcon?: boolean;
339
+ renderItem?: (item: any, isDragging: boolean) => React.ReactNode;
340
+ helperText?: React.ReactNode | string;
341
+ sx?: any;
342
+ }
343
+ export type FieldConfig = TextField | NumberField | SelectField | CheckboxField | CheckboxGroupField | ToggleField | RadioField | SwitchField | AutocompleteField | DateField | ImageField | TitleField | SectionField | ComponentField | FinUiHeaderField | TabsField | GridField | ListCardsField | DragDropListField;
325
344
  export interface FormButton {
326
345
  text: string;
327
346
  color?: string;