beca-ui 2.1.5 → 2.1.7

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 (29) hide show
  1. package/dist/DynamicWorkflowScript.js +1968 -363
  2. package/dist/beca-ui.js +54858 -48958
  3. package/dist/components/Alert/Alert.d.ts +6 -1
  4. package/dist/components/DebounceSelect/DebounceSelect.d.ts +9 -0
  5. package/dist/components/DebounceSelect/index.d.ts +1 -0
  6. package/dist/components/DynamicForm/AttachIcon.d.ts +6 -0
  7. package/dist/components/DynamicForm/AvatarItem.d.ts +6 -0
  8. package/dist/components/DynamicForm/DynamicForm.d.ts +4 -0
  9. package/dist/components/DynamicForm/DynamicFormInfo.d.ts +13 -0
  10. package/dist/components/DynamicForm/DynamicFormSidebar.d.ts +21 -0
  11. package/dist/components/DynamicForm/DynamicWorkflowForm.d.ts +19 -0
  12. package/dist/components/DynamicForm/PropertyFileUpload.d.ts +27 -0
  13. package/dist/components/DynamicForm/PropertyImageList.d.ts +8 -0
  14. package/dist/components/DynamicForm/WorkflowForm.d.ts +30 -0
  15. package/dist/components/DynamicForm/context.d.ts +30 -0
  16. package/dist/components/DynamicForm/index.d.ts +13 -0
  17. package/dist/components/DynamicForm/layout.d.ts +9 -0
  18. package/dist/components/DynamicForm/types.d.ts +241 -0
  19. package/dist/components/DynamicForm/utils.d.ts +59 -0
  20. package/dist/components/FormEditor/FormEditor.d.ts +25 -0
  21. package/dist/components/FormEditor/index.d.ts +2 -0
  22. package/dist/components/QrBarCodeScanField/QrBarCodeScanField.d.ts +24 -0
  23. package/dist/components/QrBarCodeScanField/index.d.ts +1 -0
  24. package/dist/components/index.d.ts +4 -0
  25. package/dist/index.d.ts +1 -0
  26. package/dist/main.css +1 -1
  27. package/package.json +13 -30
  28. package/README.md +0 -115
  29. package/dist/styles/components/layout/test.d.ts +0 -0
@@ -1,2 +1,7 @@
1
- import { Alert } from "antd";
1
+ import React from "react";
2
+ import { Alert as AntAlert } from "antd";
3
+ import type { AlertProps } from "./Alert.types";
4
+ declare const Alert: React.FC<AlertProps> & {
5
+ ErrorBoundary: typeof AntAlert.ErrorBoundary;
6
+ };
2
7
  export default Alert;
@@ -0,0 +1,9 @@
1
+ import { SelectProps, FormItemProps } from "..";
2
+ export interface DebounceSelectProps<ValueType = any> extends Omit<SelectProps<ValueType>, "children"> {
3
+ fetchOptions: (search: string) => Promise<ValueType[]>;
4
+ debounceTimeout?: number;
5
+ showSearch?: boolean;
6
+ isMobile?: boolean;
7
+ formItemProps?: FormItemProps;
8
+ }
9
+ export declare function DebounceSelect({ fetchOptions, debounceTimeout, isMobile, formItemProps, ...props }: DebounceSelectProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./DebounceSelect";
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export interface AttachIconProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
3
+ type?: string;
4
+ extension?: string;
5
+ }
6
+ export declare function AttachIcon(props: AttachIconProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { ColType } from "./types";
2
+ interface AvatarGroupProps {
3
+ item?: ColType;
4
+ }
5
+ export declare const AvatarItem: ({ item: avatarItem }: AvatarGroupProps) => import("react/jsx-runtime").JSX.Element | null;
6
+ export {};
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type { DynamicFormProps } from "./types";
3
+ export declare const GENERAL_GROUP_KEY = "general";
4
+ export declare const DynamicForm: React.FC<DynamicFormProps>;
@@ -0,0 +1,13 @@
1
+ import type { ColType } from "./types";
2
+ import { ColProps, FormInstance } from "..";
3
+ export interface DynamicFormInfoProps {
4
+ rowLength: number;
5
+ item: ColType;
6
+ form?: FormInstance<any>;
7
+ isPrint?: boolean;
8
+ labelCol?: ColProps;
9
+ wrapperCol?: ColProps;
10
+ isMobileApp?: boolean;
11
+ formVertical?: boolean;
12
+ }
13
+ export declare const DynamicFormInfo: (props: DynamicFormInfoProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import type { DataNode } from "..";
3
+ export interface DynamicFormSidebarProps {
4
+ treeData: DataNode[];
5
+ selectedTreeKey: string;
6
+ onSelectGroup: (key: string) => void;
7
+ expandedKeys: string[];
8
+ onExpand: (keys: string[]) => void;
9
+ isAllExpanded: boolean;
10
+ onToggleExpandAll?: () => void;
11
+ onExpandAll?: () => void;
12
+ onCollapseAll?: () => void;
13
+ searchValue: string;
14
+ onSearchChange: (value: string) => void;
15
+ totalLeafCount: number;
16
+ totalErrorCount?: number;
17
+ hasParentKeys: boolean;
18
+ isCollapsed: boolean;
19
+ onToggleCollapse: (collapsed: boolean) => void;
20
+ }
21
+ export declare const DynamicFormSidebar: React.FC<DynamicFormSidebarProps>;
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import type { ColType } from "./types";
3
+ import { ColProps, FormInstance } from "..";
4
+ export interface DynamicWorkflowFormProps {
5
+ key?: React.Key;
6
+ form?: FormInstance<any>;
7
+ rowLength: number;
8
+ col: ColType;
9
+ labelVisible?: boolean;
10
+ value?: any;
11
+ onChange?: (value: any) => void;
12
+ changeOptionOfCol?: (id?: number, options?: any) => void;
13
+ isMobileApp?: boolean;
14
+ labelCol?: ColProps;
15
+ wrapperCol?: ColProps;
16
+ hiddenColumns?: string[];
17
+ hasSidebar?: boolean;
18
+ }
19
+ export declare const DynamicWorkflowForm: (props: DynamicWorkflowFormProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { FormInstance } from "..";
2
+ import type { ColType, MasterDetailType, PropertyFileItem, PropertyFileUploadValue, PropertyUploadFile, RowsType } from "./types";
3
+ export declare const parsePropertyFiles: (value: unknown) => PropertyFileItem[];
4
+ export declare const normalizePropertyFileValue: (value: unknown) => PropertyFileUploadValue;
5
+ export type UploadFileHandler = (colId: number, userWorkflowId: number, file: any) => Promise<{
6
+ success: boolean;
7
+ value: string | number;
8
+ message?: string;
9
+ }>;
10
+ export declare const uploadFilesForColumns: (values: any, columns: ColType[], userWorkflowId: number, form?: FormInstance<any>, uploadHandler?: UploadFileHandler) => Promise<any>;
11
+ export declare const uploadFilesInMasterDetails: (masterDetailValues: Record<string, any[]>, masterDetailFormats: MasterDetailType[], userWorkflowId: number, uploadHandler?: UploadFileHandler) => Promise<{
12
+ [x: string]: any[];
13
+ }>;
14
+ export declare const uploadFilesInProperties: (values: any, rows: RowsType[], userWorkflowId: number, form: FormInstance<any>, uploadHandler?: UploadFileHandler) => Promise<any>;
15
+ export interface PropertyFileUploadProps {
16
+ value?: unknown;
17
+ onChange?: (value?: PropertyFileUploadValue) => void;
18
+ accept?: string;
19
+ disabled?: boolean;
20
+ }
21
+ export interface PropertyFileListProps {
22
+ value?: unknown;
23
+ files?: PropertyUploadFile[];
24
+ onRemove?: (file: PropertyUploadFile) => void;
25
+ }
26
+ export declare const PropertyFileList: ({ value, files, onRemove, }: PropertyFileListProps) => import("react/jsx-runtime").JSX.Element | null;
27
+ export declare const PropertyFileUpload: ({ value, onChange, accept, disabled, }: PropertyFileUploadProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { PropertyUploadFile } from "./types";
2
+ export declare const isPropertyImage: (file: PropertyUploadFile) => boolean;
3
+ export declare const canPreviewPropertyImage: (file: PropertyUploadFile) => boolean;
4
+ export interface PropertyImageListProps {
5
+ files: PropertyUploadFile[];
6
+ onRemove?: (file: PropertyUploadFile) => void;
7
+ }
8
+ export declare const PropertyImageList: ({ files, onRemove, }: PropertyImageListProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ import type { ColType, DynamicFormRequiredCondition, RowsType, UserWorkflowActionsModel } from "./types";
3
+ import { FormInstance } from "..";
4
+ export interface WorkflowRowsProps {
5
+ rows: RowsType[];
6
+ hiddenNames?: string[];
7
+ actions?: UserWorkflowActionsModel;
8
+ isMobileApp?: boolean;
9
+ hasSidebar?: boolean;
10
+ changeOptionOfCol?: (id: number, options: any) => void;
11
+ checkFilterFromLookupItems?: (col: ColType, value: any) => void;
12
+ form: FormInstance<any>;
13
+ }
14
+ export declare const WorkflowRows: React.FC<WorkflowRowsProps>;
15
+ export interface WorkflowFormProps {
16
+ form: FormInstance<any>;
17
+ rows?: RowsType[];
18
+ children?: React.ReactNode;
19
+ onFinish?: (values: any) => void;
20
+ onFinishFailed?: (errorFields: any) => void;
21
+ onChangeFields?: (changedFields: any) => void;
22
+ actions?: UserWorkflowActionsModel;
23
+ isMobileApp?: boolean;
24
+ changeOptionOfCol?: (id: number, options: any) => void;
25
+ checkFilterFromLookupItems?: (col: ColType, value: any) => void;
26
+ onRequiredConditionsChange?: (conditions: DynamicFormRequiredCondition[]) => void;
27
+ hiddenNames?: string[];
28
+ hasSidebar?: boolean;
29
+ }
30
+ export declare const WorkflowForm: ({ form, rows, children, onChangeFields, onFinish, onFinishFailed, actions, isMobileApp, changeOptionOfCol, checkFilterFromLookupItems, onRequiredConditionsChange, hiddenNames, hasSidebar, }: WorkflowFormProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ import type { DynamicFormLocale, DynamicFormTranslations } from "./types";
3
+ export declare const defaultTranslations: Record<DynamicFormLocale, Record<string, string>>;
4
+ export interface DynamicFormContextType {
5
+ locale: DynamicFormLocale;
6
+ t: (key: string, params?: Record<string, any>) => string;
7
+ getLocalText: (viText?: string, enText?: string) => string;
8
+ userType?: string;
9
+ onSearchLookupDebounce?: (id?: number, searchTerm?: string) => Promise<any[]>;
10
+ onUploadPropertyFile?: (colId: number, file: any) => Promise<{
11
+ success: boolean;
12
+ value: string | number;
13
+ message?: string;
14
+ }>;
15
+ }
16
+ export declare const DynamicFormContext: React.Context<DynamicFormContextType>;
17
+ export declare const useDynamicForm: () => DynamicFormContextType;
18
+ export interface DynamicFormProviderProps {
19
+ children: React.ReactNode;
20
+ locale?: DynamicFormLocale;
21
+ translations?: DynamicFormTranslations;
22
+ userType?: string;
23
+ onSearchLookupDebounce?: (id?: number, searchTerm?: string) => Promise<any[]>;
24
+ onUploadPropertyFile?: (colId: number, file: any) => Promise<{
25
+ success: boolean;
26
+ value: string | number;
27
+ message?: string;
28
+ }>;
29
+ }
30
+ export declare const DynamicFormProvider: React.FC<DynamicFormProviderProps>;
@@ -0,0 +1,13 @@
1
+ export * from "./DynamicForm";
2
+ export * from "./DynamicFormSidebar";
3
+ export * from "./WorkflowForm";
4
+ export * from "./DynamicWorkflowForm";
5
+ export * from "./DynamicFormInfo";
6
+ export * from "./PropertyFileUpload";
7
+ export * from "./PropertyImageList";
8
+ export * from "./AvatarItem";
9
+ export * from "./AttachIcon";
10
+ export * from "./types";
11
+ export * from "./utils";
12
+ export * from "./layout";
13
+ export * from "./context";
@@ -0,0 +1,9 @@
1
+ import type { ColProps } from "..";
2
+ export declare class DynamicFormLayout {
3
+ static getLabelCol(length: number, isMobileApp?: boolean): ColProps;
4
+ static getWrapperCol(length: number, isMobileApp?: boolean): ColProps;
5
+ static getPrintLabelCol(length: number): ColProps;
6
+ static getPrintWrapperCol(length: number): ColProps;
7
+ static getGutter(_length?: number): number;
8
+ }
9
+ export declare const DynamicFormColumn: (rowLength: number) => ColProps;
@@ -0,0 +1,241 @@
1
+ import type { FormInstance, UploadFile } from "..";
2
+ export type FieldType = "text" | "input" | "textarea" | "editor" | "checkbox" | "radio" | "select" | "lookup" | "dateTime" | "number" | "yesno" | "currency" | "choice" | "file";
3
+ export interface RadioType {
4
+ label: string | number;
5
+ value: string | number;
6
+ }
7
+ export interface CheckboxType {
8
+ label: string | number;
9
+ value: string | number;
10
+ }
11
+ export interface SelectItemType {
12
+ label: string | number;
13
+ value: string | number;
14
+ userStatus?: number;
15
+ fullName?: string;
16
+ linkAvatar?: string;
17
+ [key: string]: any;
18
+ }
19
+ export interface ColType {
20
+ allowExtensions?: string;
21
+ allowInput?: boolean;
22
+ allowMulitpleSelections?: boolean;
23
+ apiLabelColumn?: string;
24
+ apiValueColumn?: string;
25
+ avatarName?: string;
26
+ avatarGroupSize?: number;
27
+ avatarGroupMax?: number;
28
+ checkboxItems?: CheckboxType[];
29
+ debounce?: boolean;
30
+ defaultValue?: any;
31
+ defaultValue2?: any;
32
+ displayType?: string;
33
+ description?: string;
34
+ editable?: boolean;
35
+ executeJs?: string;
36
+ extra?: string;
37
+ filterByColumn?: string;
38
+ filterByProperty?: string;
39
+ hidden?: boolean;
40
+ id?: number;
41
+ isAverageGrid?: boolean;
42
+ isDateOnly?: boolean;
43
+ isEdit?: boolean;
44
+ isHide?: boolean;
45
+ isNotAllowSelectToday?: boolean;
46
+ isPercentages?: boolean;
47
+ isPlainText?: boolean;
48
+ isMultiLine?: boolean;
49
+ setting?: any;
50
+ isQrBarCodeScan?: boolean;
51
+ isSumGrid?: boolean;
52
+ key?: string;
53
+ label?: string;
54
+ labelEN?: string;
55
+ lookupItems?: SelectItemType[];
56
+ lookupItemsAfterFilter?: SelectItemType[];
57
+ maxLength?: number;
58
+ maximum?: number;
59
+ minLength?: number;
60
+ minimum?: number;
61
+ name: string;
62
+ numberOfDecimalPlaces?: number;
63
+ placeholder?: string;
64
+ radioItems?: RadioType[];
65
+ realType?: FieldType;
66
+ required?: boolean;
67
+ selectedCheckbox?: any[];
68
+ selectItems?: SelectItemType[];
69
+ styleClass?: string;
70
+ type: FieldType;
71
+ viewOnly?: boolean;
72
+ width?: number;
73
+ widthInReport?: number;
74
+ visibleCondition?: string;
75
+ selectDisplayType?: "Tree" | "Select";
76
+ choiceDescription?: string;
77
+ masterDetailFormats?: ColType[];
78
+ groupTitle?: boolean;
79
+ groupNumber?: string | number;
80
+ [key: string]: any;
81
+ }
82
+ export interface RowsType {
83
+ row: ColType[];
84
+ }
85
+ export interface FieldData {
86
+ name: string | number | (string | number)[];
87
+ value?: any;
88
+ touched?: boolean;
89
+ validating?: boolean;
90
+ validated?: boolean;
91
+ errors?: string[];
92
+ }
93
+ export interface FormEditorType {
94
+ item: ColType;
95
+ isNew?: boolean;
96
+ rowLength?: number;
97
+ formVertical?: boolean;
98
+ }
99
+ export interface MasterDetailType {
100
+ id: number;
101
+ name: string;
102
+ title: string;
103
+ visibleCondition?: string;
104
+ colTypes: ColType[];
105
+ rows: ColType[][];
106
+ dataSource: any[];
107
+ isRequired?: boolean;
108
+ defaultValue?: string;
109
+ defaultValueEN?: string;
110
+ isAutoGenerateNewRow?: boolean;
111
+ groupNumber?: string | number;
112
+ groupTitle?: boolean;
113
+ originalIndex?: number;
114
+ [key: string]: any;
115
+ }
116
+ export interface DynamicFormVisibleCondition {
117
+ name: string;
118
+ visibleCondition: string;
119
+ }
120
+ export interface DynamicFormVisibleGroupCondition {
121
+ groupNumber: string;
122
+ visibleCondition: string;
123
+ }
124
+ export type DynamicFormRequiredType = "checklist" | "outdated" | "link";
125
+ export interface DynamicFormRequiredCondition {
126
+ name: string;
127
+ typeRequired: DynamicFormRequiredType;
128
+ target?: string;
129
+ requiredCondition: string;
130
+ }
131
+ export interface UserWorkflowActionsModel {
132
+ allowShare?: boolean;
133
+ allowPrint?: boolean;
134
+ allowExit?: boolean;
135
+ allowSave?: boolean;
136
+ allowProcessConfiguration?: boolean;
137
+ allowSend?: boolean;
138
+ allowRecall?: boolean;
139
+ allowAccept?: boolean;
140
+ allowApprove?: boolean;
141
+ allowReturn?: boolean;
142
+ allowReject?: boolean;
143
+ allowReplace?: boolean;
144
+ allowAddInfo?: boolean;
145
+ allowAddLinking?: boolean;
146
+ allowAttachment?: boolean;
147
+ allowIdea?: boolean;
148
+ allowAddIdea?: boolean;
149
+ allowEdit?: boolean;
150
+ allowEditResource?: boolean;
151
+ allowReFileApproved?: boolean;
152
+ allowReInsertTemplateFile?: boolean;
153
+ allowReAllFileApproved?: boolean;
154
+ allowEditUserWorkflow?: boolean;
155
+ allowDeleteByAdmin?: boolean;
156
+ allowDeleteFileByAdmin?: boolean;
157
+ allowEditMasterDetail?: boolean[];
158
+ allowAddMasterDetail?: boolean[];
159
+ allowEditApplication?: boolean;
160
+ defaultAllowEditMasterDetail?: boolean[];
161
+ allowAddNote?: boolean;
162
+ allowShowIssuedDocumentLabel?: boolean;
163
+ isHavingIdeaStep?: boolean;
164
+ labelAddInfo?: string;
165
+ labelSave?: string;
166
+ labelNext?: string;
167
+ labelReturn?: string;
168
+ labelApprove?: string;
169
+ labelReject?: string;
170
+ labelRecall?: string;
171
+ labelReplace?: string;
172
+ labelIdea?: string;
173
+ labelShare?: string;
174
+ labelExit?: string;
175
+ labelPrint?: string;
176
+ labelSend?: string;
177
+ labelAddInfoEN?: string;
178
+ [key: string]: any;
179
+ }
180
+ export interface PropertyFileItem {
181
+ Id: number;
182
+ Name: string;
183
+ Path: string;
184
+ ViewUrl?: string;
185
+ DownloadUrl?: string;
186
+ [key: string]: any;
187
+ }
188
+ export interface PropertyFileUploadValue {
189
+ fileList: PropertyUploadFile[];
190
+ nextId: number;
191
+ }
192
+ export type PropertyUploadFile = UploadFile<any> & {
193
+ propertyFile?: PropertyFileItem;
194
+ };
195
+ export interface DynamicFormGroup {
196
+ groupNumber: string;
197
+ level: number;
198
+ groupTitle?: string;
199
+ rows: RowsType[];
200
+ masterDetailFormats: MasterDetailType[];
201
+ children: DynamicFormGroup[];
202
+ }
203
+ export interface MasterDetailsRenderProps {
204
+ [key: string]: any;
205
+ masterDetailFormats: MasterDetailType[];
206
+ form: FormInstance<any>;
207
+ rows: RowsType[];
208
+ actions: UserWorkflowActionsModel;
209
+ hiddenMasterDetailNames: string[];
210
+ }
211
+ export type DynamicFormLocale = "vi" | "en";
212
+ export interface DynamicFormTranslations {
213
+ [key: string]: string;
214
+ }
215
+ export interface DynamicFormProps {
216
+ form: FormInstance<any>;
217
+ rows: RowsType[];
218
+ onFinish?: (values: any) => void;
219
+ onFinishFailed?: (errorFields: any) => void;
220
+ onChangeFields?: (changedFields: any) => void;
221
+ actions?: UserWorkflowActionsModel;
222
+ isMobileApp?: boolean;
223
+ changeOptionOfCol?: (id: number, options: any) => void;
224
+ checkFilterFromLookupItems?: (col: ColType, value: any) => void;
225
+ masterDetails?: any;
226
+ renderMasterDetails?: (props: MasterDetailsRenderProps) => React.ReactNode;
227
+ onRequiredConditionsChange?: (conditions: DynamicFormRequiredCondition[]) => void;
228
+ selectedGroup?: string;
229
+ onSelectedGroupChange?: (groupNumber: string) => void;
230
+ locale?: DynamicFormLocale;
231
+ translations?: DynamicFormTranslations;
232
+ userType?: string;
233
+ onSearchLookupDebounce?: (id?: number, searchTerm?: string) => Promise<any[]>;
234
+ onUploadPropertyFile?: (colId: number, file: any) => Promise<{
235
+ success: boolean;
236
+ value: string | number;
237
+ message?: string;
238
+ }>;
239
+ className?: string;
240
+ style?: React.CSSProperties;
241
+ }
@@ -0,0 +1,59 @@
1
+ import type { FormInstance } from "..";
2
+ import type { ColType, DynamicFormRequiredCondition, DynamicFormVisibleCondition, DynamicFormVisibleGroupCondition, SelectItemType } from "./types";
3
+ export declare const imageExtensions: string[];
4
+ export declare const videoExtensions: string[];
5
+ export declare const msWordExtensions: string[];
6
+ export declare const msExcelExtensions: string[];
7
+ export declare const msPowerPointExtensions: string[];
8
+ export declare const msPdfExtensions: string[];
9
+ export declare const FileUtils: {
10
+ getFileExtension(fileName?: string): string;
11
+ isImage(extension?: string | false): boolean;
12
+ isVideo(extension?: string | false): boolean;
13
+ isMSWord(extension?: string): boolean;
14
+ isMSExcel(extension?: string): boolean;
15
+ isMSPowerPoint(extension?: string): boolean;
16
+ isMSPdf(extension?: string): boolean;
17
+ };
18
+ export declare function displayDate(val?: any): string;
19
+ export declare function displayDateTime(val?: any): string;
20
+ export declare function thousandsSeparator(val?: string | number): string;
21
+ export declare function formatVietnameseNumberInput(val: any, isPercentages?: boolean): string;
22
+ export declare function parseVietnameseNumberInput(val?: string): string;
23
+ export declare function displayNumber(val: any, options?: {
24
+ isPercentages?: boolean;
25
+ numberOfDecimalPlaces?: number;
26
+ }): string;
27
+ export declare function formatCurrency(val: any, numberOfDecimalPlaces?: number): string;
28
+ export declare function htmlToText(html?: string): string;
29
+ export declare function isEmptyEditorValue(value: unknown): boolean;
30
+ export declare function createEditorRequiredRule(message: string): {
31
+ required: boolean;
32
+ validator: (_: unknown, value: unknown) => Promise<void>;
33
+ };
34
+ export declare function checkUserItems(items?: SelectItemType[]): boolean;
35
+ export declare function getLocalText(viText?: string, enText?: string, locale?: string): string;
36
+ export declare const WorkflowUtils: {
37
+ getProperiesFromStyleClass(col: ColType): {
38
+ isHidden: boolean;
39
+ isFormVertical: boolean;
40
+ };
41
+ };
42
+ export declare const DynamicWorkflowUtils: {
43
+ isHideColumn(col: ColType, hiddenNames?: string[]): boolean;
44
+ evaluateCondition(condition: string, columns: ColType[] | undefined, form: FormInstance): boolean;
45
+ handleVisibleFields(columns: ColType[] | undefined, visibleConditionColumns: DynamicFormVisibleCondition[] | undefined, _hiddenNames: string[] | undefined, form: FormInstance): string[];
46
+ handleVisibleGroups(columns: ColType[] | undefined, groupVisibleConditions: DynamicFormVisibleGroupCondition[] | undefined, form: FormInstance): string[];
47
+ handleRequiredFields(columns: ColType[] | undefined, requiredConditionColumns: DynamicFormRequiredCondition[] | undefined, form: FormInstance): DynamicFormRequiredCondition[];
48
+ parseRequiredConditions(fieldName: string, description: string): DynamicFormRequiredCondition[];
49
+ getValue(col: ColType, data?: any, isMasterDetail?: boolean): any;
50
+ scrollAndHighlightRequired(target: string | HTMLElement | null | undefined, options?: {
51
+ durationMs?: number;
52
+ scrollContainer?: string | HTMLElement | null;
53
+ }): void;
54
+ getRequiredFlags(conditions?: DynamicFormRequiredCondition[]): {
55
+ checklistIds: number[];
56
+ requireOutdated: boolean;
57
+ requireLink: boolean;
58
+ };
59
+ };
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+ import { ColProps } from "..";
3
+ export interface FormEditorItem {
4
+ name: string;
5
+ label?: string;
6
+ labelEN?: string;
7
+ extra?: string;
8
+ hidden?: boolean;
9
+ required?: boolean;
10
+ defaultValue?: any;
11
+ }
12
+ export interface FormEditorProps {
13
+ item: FormEditorItem;
14
+ rowLength?: number;
15
+ formVertical?: boolean;
16
+ label?: React.ReactNode;
17
+ labelCol?: ColProps;
18
+ wrapperCol?: ColProps;
19
+ isMobile?: boolean;
20
+ isMobileApp?: boolean;
21
+ requiredRule?: any;
22
+ className?: string;
23
+ }
24
+ export declare function FormEditor({ item, formVertical, label, labelCol, wrapperCol, isMobile, requiredRule, className, }: FormEditorProps): import("react/jsx-runtime").JSX.Element;
25
+ export default FormEditor;
@@ -0,0 +1,2 @@
1
+ export * from "./FormEditor";
2
+ export { default } from "./FormEditor";
@@ -0,0 +1,24 @@
1
+ import React from "react";
2
+ interface BarcodeDetectorConstructor {
3
+ new (options?: {
4
+ formats?: string[];
5
+ }): {
6
+ detect: (image: HTMLVideoElement) => Promise<Array<{
7
+ rawValue?: string;
8
+ }>>;
9
+ };
10
+ }
11
+ export interface QrBarCodeScanFieldProps {
12
+ children: React.ReactNode;
13
+ disabled?: boolean;
14
+ onScan: (value: string) => void;
15
+ value?: any;
16
+ onChange?: (value: any) => void;
17
+ title?: string;
18
+ notSupportedText?: string;
19
+ permissionDeniedText?: string;
20
+ scanSuccessText?: string;
21
+ customBarcodeDetector?: BarcodeDetectorConstructor;
22
+ }
23
+ export declare const QrBarCodeScanField: ({ children, disabled, onScan, value, onChange, title, notSupportedText, permissionDeniedText, scanSuccessText, customBarcodeDetector, }: QrBarCodeScanFieldProps) => import("react/jsx-runtime").JSX.Element;
24
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./QrBarCodeScanField";
@@ -80,3 +80,7 @@ export * from "./TreeSelect";
80
80
  export * from "./TreeSelectField";
81
81
  export * from "./BecaChatBox";
82
82
  export * from "./AIChat";
83
+ export * from "./DebounceSelect";
84
+ export * from "./QrBarCodeScanField";
85
+ export * from "./FormEditor";
86
+ export * from "./DynamicForm";
@@ -0,0 +1 @@
1
+ export * from "./main";