@ram_28/kf-ai-sdk 1.0.0
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/LICENSE +21 -0
- package/README.md +840 -0
- package/dist/api/client.d.ts +78 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/datetime.d.ts +21 -0
- package/dist/api/datetime.d.ts.map +1 -0
- package/dist/api/index.d.ts +7 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/metadata.d.ts +75 -0
- package/dist/api/metadata.d.ts.map +1 -0
- package/dist/components/hooks/index.d.ts +8 -0
- package/dist/components/hooks/index.d.ts.map +1 -0
- package/dist/components/hooks/useFilter/index.d.ts +5 -0
- package/dist/components/hooks/useFilter/index.d.ts.map +1 -0
- package/dist/components/hooks/useFilter/payloadBuilder.utils.d.ts +33 -0
- package/dist/components/hooks/useFilter/payloadBuilder.utils.d.ts.map +1 -0
- package/dist/components/hooks/useFilter/types.d.ts +137 -0
- package/dist/components/hooks/useFilter/types.d.ts.map +1 -0
- package/dist/components/hooks/useFilter/useFilter.d.ts +3 -0
- package/dist/components/hooks/useFilter/useFilter.d.ts.map +1 -0
- package/dist/components/hooks/useFilter/validation.utils.d.ts +38 -0
- package/dist/components/hooks/useFilter/validation.utils.d.ts.map +1 -0
- package/dist/components/hooks/useForm/apiClient.d.ts +71 -0
- package/dist/components/hooks/useForm/apiClient.d.ts.map +1 -0
- package/dist/components/hooks/useForm/expressionValidator.utils.d.ts +28 -0
- package/dist/components/hooks/useForm/expressionValidator.utils.d.ts.map +1 -0
- package/dist/components/hooks/useForm/index.d.ts +6 -0
- package/dist/components/hooks/useForm/index.d.ts.map +1 -0
- package/dist/components/hooks/useForm/optimizedExpressionValidator.utils.d.ts +88 -0
- package/dist/components/hooks/useForm/optimizedExpressionValidator.utils.d.ts.map +1 -0
- package/dist/components/hooks/useForm/ruleClassifier.utils.d.ts +28 -0
- package/dist/components/hooks/useForm/ruleClassifier.utils.d.ts.map +1 -0
- package/dist/components/hooks/useForm/schemaParser.utils.d.ts +29 -0
- package/dist/components/hooks/useForm/schemaParser.utils.d.ts.map +1 -0
- package/dist/components/hooks/useForm/types.d.ts +412 -0
- package/dist/components/hooks/useForm/types.d.ts.map +1 -0
- package/dist/components/hooks/useForm/useForm.d.ts +3 -0
- package/dist/components/hooks/useForm/useForm.d.ts.map +1 -0
- package/dist/components/hooks/useKanban/apiClient.d.ts +99 -0
- package/dist/components/hooks/useKanban/apiClient.d.ts.map +1 -0
- package/dist/components/hooks/useKanban/context.d.ts +4 -0
- package/dist/components/hooks/useKanban/context.d.ts.map +1 -0
- package/dist/components/hooks/useKanban/dragDropManager.d.ts +27 -0
- package/dist/components/hooks/useKanban/dragDropManager.d.ts.map +1 -0
- package/dist/components/hooks/useKanban/index.d.ts +6 -0
- package/dist/components/hooks/useKanban/index.d.ts.map +1 -0
- package/dist/components/hooks/useKanban/types.d.ts +438 -0
- package/dist/components/hooks/useKanban/types.d.ts.map +1 -0
- package/dist/components/hooks/useKanban/useKanban.d.ts +3 -0
- package/dist/components/hooks/useKanban/useKanban.d.ts.map +1 -0
- package/dist/components/hooks/useKanban/useKanbanSimple.d.ts +62 -0
- package/dist/components/hooks/useKanban/useKanbanSimple.d.ts.map +1 -0
- package/dist/components/hooks/useTable/index.d.ts +3 -0
- package/dist/components/hooks/useTable/index.d.ts.map +1 -0
- package/dist/components/hooks/useTable/types.d.ts +107 -0
- package/dist/components/hooks/useTable/types.d.ts.map +1 -0
- package/dist/components/hooks/useTable/useTable.d.ts +8 -0
- package/dist/components/hooks/useTable/useTable.d.ts.map +1 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts.map +1 -0
- package/dist/components/ui/kanban/Kanban.d.ts +12 -0
- package/dist/components/ui/kanban/Kanban.d.ts.map +1 -0
- package/dist/components/ui/kanban/index.d.ts +2 -0
- package/dist/components/ui/kanban/index.d.ts.map +1 -0
- package/dist/index.cjs +45 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +6522 -0
- package/dist/types/base-fields.d.ts +182 -0
- package/dist/types/base-fields.d.ts.map +1 -0
- package/dist/types/common.d.ts +238 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/cn.d.ts +7 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/formatting.d.ts +52 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/package.json +98 -0
- package/sdk/api/client.ts +447 -0
- package/sdk/api/datetime.ts +33 -0
- package/sdk/api/index.ts +61 -0
- package/sdk/api/metadata.ts +148 -0
- package/sdk/components/hooks/index.ts +34 -0
- package/sdk/components/hooks/useFilter/index.ts +37 -0
- package/sdk/components/hooks/useFilter/payloadBuilder.utils.ts +298 -0
- package/sdk/components/hooks/useFilter/types.ts +158 -0
- package/sdk/components/hooks/useFilter/useFilter.llm.txt +497 -0
- package/sdk/components/hooks/useFilter/useFilter.ts +494 -0
- package/sdk/components/hooks/useFilter/validation.utils.ts +401 -0
- package/sdk/components/hooks/useForm/apiClient.ts +441 -0
- package/sdk/components/hooks/useForm/expressionValidator.utils.ts +444 -0
- package/sdk/components/hooks/useForm/index.ts +64 -0
- package/sdk/components/hooks/useForm/optimizedExpressionValidator.utils.ts +482 -0
- package/sdk/components/hooks/useForm/ruleClassifier.utils.ts +424 -0
- package/sdk/components/hooks/useForm/schemaParser.utils.ts +519 -0
- package/sdk/components/hooks/useForm/types.ts +630 -0
- package/sdk/components/hooks/useForm/useForm.llm.txt +340 -0
- package/sdk/components/hooks/useForm/useForm.ts +821 -0
- package/sdk/components/hooks/useKanban/apiClient.ts +494 -0
- package/sdk/components/hooks/useKanban/context.ts +14 -0
- package/sdk/components/hooks/useKanban/dragDropManager.ts +529 -0
- package/sdk/components/hooks/useKanban/index.ts +63 -0
- package/sdk/components/hooks/useKanban/types.ts +606 -0
- package/sdk/components/hooks/useKanban/useKanban.llm.txt +482 -0
- package/sdk/components/hooks/useKanban/useKanban.ts +725 -0
- package/sdk/components/hooks/useKanban/useKanbanSimple.ts +389 -0
- package/sdk/components/hooks/useTable/index.ts +5 -0
- package/sdk/components/hooks/useTable/types.ts +154 -0
- package/sdk/components/hooks/useTable/useTable.llm.txt +344 -0
- package/sdk/components/hooks/useTable/useTable.ts +413 -0
- package/sdk/components/index.ts +15 -0
- package/sdk/components/ui/index.ts +2 -0
- package/sdk/components/ui/kanban/Kanban.tsx +134 -0
- package/sdk/components/ui/kanban/index.ts +11 -0
- package/sdk/index.ts +13 -0
- package/sdk/types/base-fields.ts +221 -0
- package/sdk/types/common.ts +306 -0
- package/sdk/types/index.ts +5 -0
- package/sdk/utils/cn.ts +10 -0
- package/sdk/utils/formatting.ts +212 -0
- package/sdk/utils/index.ts +5 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export interface KanbanCard<T = Record<string, any>> {
|
|
2
|
+
_id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
columnId: string;
|
|
6
|
+
position: number;
|
|
7
|
+
data?: T;
|
|
8
|
+
_created_at?: Date;
|
|
9
|
+
_modified_at?: Date;
|
|
10
|
+
}
|
|
11
|
+
export interface KanbanColumn<T = Record<string, any>> {
|
|
12
|
+
_id: string;
|
|
13
|
+
title: string;
|
|
14
|
+
position: number;
|
|
15
|
+
color?: string;
|
|
16
|
+
cards: KanbanCard<T>[];
|
|
17
|
+
}
|
|
18
|
+
export interface ColumnDefinition {
|
|
19
|
+
id: string;
|
|
20
|
+
title: string;
|
|
21
|
+
position: number;
|
|
22
|
+
color?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface UseKanbanOptions<T = Record<string, any>> {
|
|
25
|
+
/** Data source identifier for API calls */
|
|
26
|
+
source: string;
|
|
27
|
+
/** Column configurations */
|
|
28
|
+
columns: ColumnDefinition[];
|
|
29
|
+
/** Enable drag and drop functionality */
|
|
30
|
+
enableDragDrop?: boolean;
|
|
31
|
+
/** Initial search query */
|
|
32
|
+
initialSearch?: string;
|
|
33
|
+
/** Error callback */
|
|
34
|
+
onError?: (error: Error) => void;
|
|
35
|
+
/** Custom card data type validator (optional) */
|
|
36
|
+
validateCardData?: (data: T) => boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface UseKanbanReturn<T> {
|
|
39
|
+
columns: KanbanColumn<T>[];
|
|
40
|
+
totalCards: number;
|
|
41
|
+
isLoading: boolean;
|
|
42
|
+
isFetching: boolean;
|
|
43
|
+
isUpdating: boolean;
|
|
44
|
+
error: Error | null;
|
|
45
|
+
searchQuery: string;
|
|
46
|
+
setSearchQuery: (query: string) => void;
|
|
47
|
+
clearSearch: () => void;
|
|
48
|
+
createCard: (card: Partial<KanbanCard<T>> & {
|
|
49
|
+
columnId: string;
|
|
50
|
+
}) => Promise<void>;
|
|
51
|
+
updateCard: (id: string, updates: Partial<KanbanCard<T>>) => Promise<void>;
|
|
52
|
+
deleteCard: (id: string) => Promise<void>;
|
|
53
|
+
moveCard: (cardId: string, toColumnId: string, position?: number) => Promise<void>;
|
|
54
|
+
isDragging: boolean;
|
|
55
|
+
draggedCard: KanbanCard<T> | null;
|
|
56
|
+
handleDragStart: (card: KanbanCard<T>) => void;
|
|
57
|
+
handleDragEnd: () => void;
|
|
58
|
+
handleKeyboardMove: (cardId: string, direction: "left" | "right") => Promise<void>;
|
|
59
|
+
refresh: () => Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
export declare function useKanban<T extends Record<string, any> = Record<string, any>>(options: UseKanbanOptions<T>): UseKanbanReturn<T>;
|
|
62
|
+
//# sourceMappingURL=useKanbanSimple.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKanbanSimple.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useKanban/useKanbanSimple.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useTable/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { ListResponse, LogicalOperator } from "../../../types/common";
|
|
2
|
+
import type { FilterConditionWithId, TypedFilterConditionInput, ValidationError, FieldDefinition } from "../useFilter";
|
|
3
|
+
export interface ColumnDefinition<T> {
|
|
4
|
+
/** Field name from the data type */
|
|
5
|
+
fieldId: keyof T;
|
|
6
|
+
/** Display label (optional, defaults to fieldId) */
|
|
7
|
+
label?: string;
|
|
8
|
+
/** Enable sorting for this column */
|
|
9
|
+
enableSorting?: boolean;
|
|
10
|
+
/** Enable filtering for this column */
|
|
11
|
+
enableFiltering?: boolean;
|
|
12
|
+
/** Custom transform function (overrides auto-formatting) */
|
|
13
|
+
transform?: (value: any, row: T) => React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export interface UseTableOptions<T> {
|
|
16
|
+
/** Data source identifier */
|
|
17
|
+
source: string;
|
|
18
|
+
/** Column configurations */
|
|
19
|
+
columns: ColumnDefinition<T>[];
|
|
20
|
+
/** Enable sorting functionality */
|
|
21
|
+
enableSorting?: boolean;
|
|
22
|
+
/** Enable filtering functionality */
|
|
23
|
+
enableFiltering?: boolean;
|
|
24
|
+
/** Enable pagination */
|
|
25
|
+
enablePagination?: boolean;
|
|
26
|
+
/** Field definitions for filter validation */
|
|
27
|
+
fieldDefinitions?: Record<keyof T, FieldDefinition>;
|
|
28
|
+
/** Initial state */
|
|
29
|
+
initialState?: {
|
|
30
|
+
pagination?: {
|
|
31
|
+
pageNo: number;
|
|
32
|
+
pageSize: number;
|
|
33
|
+
};
|
|
34
|
+
sorting?: {
|
|
35
|
+
field: keyof T;
|
|
36
|
+
direction: "asc" | "desc";
|
|
37
|
+
};
|
|
38
|
+
globalFilter?: string;
|
|
39
|
+
filters?: FilterConditionWithId[];
|
|
40
|
+
filterOperator?: LogicalOperator;
|
|
41
|
+
};
|
|
42
|
+
/** Error callback */
|
|
43
|
+
onError?: (error: Error) => void;
|
|
44
|
+
/** Success callback */
|
|
45
|
+
onSuccess?: (data: T[]) => void;
|
|
46
|
+
/** Filter error callback */
|
|
47
|
+
onFilterError?: (errors: ValidationError[]) => void;
|
|
48
|
+
}
|
|
49
|
+
export interface UseTableReturn<T> {
|
|
50
|
+
rows: T[];
|
|
51
|
+
totalItems: number;
|
|
52
|
+
isLoading: boolean;
|
|
53
|
+
isFetching: boolean;
|
|
54
|
+
error: Error | null;
|
|
55
|
+
search: {
|
|
56
|
+
query: string;
|
|
57
|
+
setQuery: (value: string) => void;
|
|
58
|
+
clear: () => void;
|
|
59
|
+
};
|
|
60
|
+
sort: {
|
|
61
|
+
field: keyof T | null;
|
|
62
|
+
direction: "asc" | "desc" | null;
|
|
63
|
+
toggle: (field: keyof T) => void;
|
|
64
|
+
clear: () => void;
|
|
65
|
+
set: (field: keyof T, direction: "asc" | "desc") => void;
|
|
66
|
+
};
|
|
67
|
+
globalFilter: {
|
|
68
|
+
value: string;
|
|
69
|
+
setValue: (value: string) => void;
|
|
70
|
+
clear: () => void;
|
|
71
|
+
};
|
|
72
|
+
filter: {
|
|
73
|
+
conditions: FilterConditionWithId[];
|
|
74
|
+
logicalOperator: LogicalOperator;
|
|
75
|
+
isValid: boolean;
|
|
76
|
+
validationErrors: ValidationError[];
|
|
77
|
+
hasConditions: boolean;
|
|
78
|
+
addCondition: (condition: TypedFilterConditionInput<T>) => string;
|
|
79
|
+
updateCondition: (id: string, updates: Partial<TypedFilterConditionInput<T>>) => boolean;
|
|
80
|
+
removeCondition: (id: string) => boolean;
|
|
81
|
+
clearConditions: () => void;
|
|
82
|
+
getCondition: (id: string) => FilterConditionWithId | undefined;
|
|
83
|
+
setLogicalOperator: (operator: LogicalOperator) => void;
|
|
84
|
+
setConditions: (conditions: FilterConditionWithId[]) => void;
|
|
85
|
+
replaceCondition: (id: string, newCondition: TypedFilterConditionInput<T>) => boolean;
|
|
86
|
+
validateCondition: (condition: Partial<FilterConditionWithId>) => any;
|
|
87
|
+
validateAllConditions: () => any;
|
|
88
|
+
exportState: () => any;
|
|
89
|
+
importState: (state: any) => void;
|
|
90
|
+
resetToInitial: () => void;
|
|
91
|
+
getConditionCount: () => number;
|
|
92
|
+
};
|
|
93
|
+
pagination: {
|
|
94
|
+
currentPage: number;
|
|
95
|
+
pageSize: number;
|
|
96
|
+
totalPages: number;
|
|
97
|
+
totalItems: number;
|
|
98
|
+
canGoNext: boolean;
|
|
99
|
+
canGoPrevious: boolean;
|
|
100
|
+
goToNext: () => void;
|
|
101
|
+
goToPrevious: () => void;
|
|
102
|
+
goToPage: (page: number) => void;
|
|
103
|
+
setPageSize: (size: number) => void;
|
|
104
|
+
};
|
|
105
|
+
refetch: () => Promise<ListResponse<T>>;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useTable/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { UseTableOptions, UseTableReturn } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Detect field type for auto-formatting
|
|
4
|
+
* This will be enhanced with actual type introspection in the future
|
|
5
|
+
* Currently unused but kept for future auto-formatting implementation
|
|
6
|
+
*/
|
|
7
|
+
export declare function useTable<T = any>(options: UseTableOptions<T>): UseTableReturn<T>;
|
|
8
|
+
//# sourceMappingURL=useTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTable.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useTable/useTable.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA4B/D;;;;GAIG;AAyBH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAC9B,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,cAAc,CAAC,CAAC,CAAC,CA4VnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sdk/components/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,OAAO,EACL,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../sdk/components/ui/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
declare const Kanban: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
3
|
+
declare const KanbanColumn: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
declare const KanbanColumnHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
declare const KanbanColumnTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
|
|
6
|
+
declare const KanbanColumnContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
declare const KanbanCard: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
declare const KanbanCardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
declare const KanbanCardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
declare const KanbanColumnFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export { Kanban, KanbanColumn, KanbanColumnHeader, KanbanColumnTitle, KanbanColumnContent, KanbanCard, KanbanCardTitle, KanbanCardDescription, KanbanColumnFooter, };
|
|
12
|
+
//# sourceMappingURL=Kanban.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Kanban.d.ts","sourceRoot":"","sources":["../../../../sdk/components/ui/kanban/Kanban.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,QAAA,MAAM,MAAM,6GAYV,CAAC;AAGH,QAAA,MAAM,YAAY,6GAYhB,CAAC;AAGH,QAAA,MAAM,kBAAkB,6GAStB,CAAC;AAGH,QAAA,MAAM,iBAAiB,qHASrB,CAAC;AAGH,QAAA,MAAM,mBAAmB,6GASvB,CAAC;AAGH,QAAA,MAAM,UAAU,6GAYd,CAAC;AAGH,QAAA,MAAM,eAAe,6GASnB,CAAC;AAGH,QAAA,MAAM,qBAAqB,6GASzB,CAAC;AAGH,QAAA,MAAM,kBAAkB,6GAStB,CAAC;AAGH,OAAO,EACL,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,kBAAkB,GACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/components/ui/kanban/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,UAAU,CAAC"}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";var Jt=Object.defineProperty;var Xt=(e,r,t)=>r in e?Jt(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var Xe=(e,r,t)=>Xt(e,typeof r!="symbol"?r+"":r,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),Ne=require("@tanstack/react-query"),Zt=require("react-hook-form");function ea(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const Pe=ea(u);let Ke={baseUrl:"",headers:{"Content-Type":"application/json"}};function ra(e){Ke.baseUrl=e}function ta(e){Ke.headers={...Ke.headers,...e}}function vr(){return{...Ke.headers}}function Er(){return Ke.baseUrl||""}function cr(e){if(e==null)return e;if(Array.isArray(e))return e.map(r=>cr(r));if(typeof e=="object"){if("$__dt__"in e)return new Date(e.$__dt__*1e3);if("$__d__"in e)return new Date(e.$__d__);const r={};for(const[t,a]of Object.entries(e))r[t]=cr(a);return r}return e}function Ce(e){const r=Ke.baseUrl,t=Ke.headers;return{async get(a){const n=await fetch(`${r}/api/app/${e}/${a}/read`,{method:"GET",headers:t});if(!n.ok)throw new Error(`Failed to get ${e} ${a}: ${n.statusText}`);const s=await n.json();return cr(s.Data)},async create(a){const n=await fetch(`${r}/api/app/${e}/create`,{method:"POST",headers:t,body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to create ${e}: ${n.statusText}`);return n.json()},async update(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/update`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to update ${e} ${a}: ${s.statusText}`);return s.json()},async delete(a){const n=await fetch(`${r}/api/app/${e}/${a}/delete`,{method:"DELETE",headers:t});if(!n.ok)throw new Error(`Failed to delete ${e} ${a}: ${n.statusText}`);return n.json()},async list(a){const n={Type:"List",...a},s=await fetch(`${r}/api/app/${e}/list`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to list ${e}: ${s.statusText}`);return{Data:(await s.json()).Data.map(m=>cr(m))}},async count(a){var d,p;const n={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(a==null?void 0:a.Filter)&&{Filter:a.Filter}},s=await fetch(`${r}/api/app/${e}/metric`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to count ${e}: ${s.statusText}`);return{Count:((p=(d=(await s.json()).Data)==null?void 0:d[0])==null?void 0:p.count__id)??0}},async draft(a){const n=await fetch(`${r}/api/app/${e}/draft`,{method:"POST",headers:t,body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to create draft for ${e}: ${n.statusText}`);return n.json()},async draftUpdate(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/draft`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to update draft for ${e} ${a}: ${s.statusText}`);return s.json()},async draftPatch(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/draft`,{method:"PATCH",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to patch draft for ${e} ${a}: ${s.statusText}`);return s.json()},async metric(a){const n={Type:"Metric",...a},s=await fetch(`${r}/api/app/${e}/metric`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to get metrics for ${e}: ${s.statusText}`);return s.json()},async pivot(a){const n={Type:"Pivot",...a},s=await fetch(`${r}/api/app/${e}/pivot`,{method:"POST",headers:t,body:JSON.stringify(n)});if(!s.ok)throw new Error(`Failed to get pivot data for ${e}: ${s.statusText}`);return s.json()},async fields(){const a=await fetch(`${r}/api/app/${e}/fields`,{method:"GET",headers:t});if(!a.ok)throw new Error(`Failed to get fields for ${e}: ${a.statusText}`);return a.json()},async fetchField(a,n){const s=await fetch(`${r}/api/app/${e}/${a}/field/${n}/fetch`,{method:"GET",headers:t});if(!s.ok)throw new Error(`Failed to fetch field ${n} for ${e}: ${s.statusText}`);return(await s.json()).Data}}}function aa(e){return{$__dt__:e.getTime()/1e3}}function na(e){return new Date(e.$__dt__*1e3)}function oa(e){return{$__d__:e.toISOString().split("T")[0]}}function sa(e){return new Date(e.$__d__)}async function Gr(e){try{const r=Er(),t=vr(),a=await fetch(`${r}/api/app/meta/bdo/${e}`,{method:"GET",headers:t});if(!a.ok)throw new Error(`Failed to fetch schema for ${e}: ${a.statusText}`);const n=await a.json();if(!n||typeof n!="object")throw new Error(`Invalid BDO schema response for ${e}`);return n}catch(r){throw console.error(`Schema fetch error for ${e}:`,r),new Error(`Failed to load BDO schema: ${r instanceof Error?r.message:"Unknown error"}`)}}async function ia(e){try{const r=Er(),t=vr(),a=e!=null&&e.Filter||e!=null&&e.Sort?"POST":"GET",n=await fetch(`${r}/api/app/metadata/list`,{method:a,headers:t,...a==="POST"&&e&&{body:JSON.stringify(e)}});if(!n.ok)throw new Error(`Failed to list metadata: ${n.statusText}`);return await n.json()}catch(r){throw console.error("Metadata list error:",r),new Error(`Failed to list metadata: ${r instanceof Error?r.message:"Unknown error"}`)}}function Hr(e){return typeof e=="string"?e:typeof e=="object"&&e!==null?new Intl.NumberFormat("en-US",{style:"currency",currency:e.currency}).format(e.value):"Invalid Currency"}function la(e){const r=e.match(/^(?:([A-Z]{3})\s+(\d+\.?\d*))|(?:(\d+\.?\d*)\s+([A-Z]{3}))$/);if(r){const t=r[1]||r[4],a=parseFloat(r[2]||r[3]);if(!isNaN(a))return{value:a,currency:t}}return null}function Qr(e,r="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const t={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"}}[r];return new Intl.DateTimeFormat("en-US",t).format(e)}function Yr(e,r="medium"){if(!(e instanceof Date)||isNaN(e.getTime()))return"Invalid Date";const t={short:{dateStyle:"short",timeStyle:"short"},medium:{dateStyle:"medium",timeStyle:"medium"},long:{dateStyle:"long",timeStyle:"long"}}[r];return new Intl.DateTimeFormat("en-US",t).format(e)}function Wr(e,r=2){return typeof e!="number"||isNaN(e)?"Invalid Number":e.toFixed(r)}function Jr(e,r=2){try{return JSON.stringify(e,null,r)}catch{return"Invalid JSON"}}function Xr(e,r,t=", "){return Array.isArray(e)?r?e.map(r).join(t):e.map(a=>String(a)).join(t):"Invalid Array"}function Zr(e,r){return typeof e!="boolean"?"Invalid Boolean":e?(r==null?void 0:r.trueLabel)||"Yes":(r==null?void 0:r.falseLabel)||"No"}function ca(e,r=50){return typeof e!="string"?"Invalid String":e.length<=r?e:e.slice(0,r-3)+"..."}function et(e,r){if(typeof e!="string")return"Invalid Text";const t=e.split(`
|
|
2
|
+
`);return r&&t.length>r?t.slice(0,r).join(`
|
|
3
|
+
`)+`
|
|
4
|
+
...`:e}function ua(e,r){if(e==null)return"";switch(r||(typeof e=="boolean"?r="boolean":typeof e=="number"?r="number":e instanceof Date?r="datetime":Array.isArray(e)?r="array":typeof e=="object"?r="json":r="string"),r){case"id":case"string":return String(e);case"textarea":return et(String(e));case"number":return Wr(e);case"boolean":return Zr(e);case"date":return Qr(e);case"datetime":return Yr(e);case"currency":return Hr(e);case"json":return Jr(e);case"array":return Xr(e);default:return String(e)}}function rt(e){var r,t,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(r=0;r<n;r++)e[r]&&(t=rt(e[r]))&&(a&&(a+=" "),a+=t)}else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}function da(){for(var e,r,t=0,a="",n=arguments.length;t<n;t++)(e=arguments[t])&&(r=rt(e))&&(a&&(a+=" "),a+=r);return a}const fa=(e,r)=>{const t=new Array(e.length+r.length);for(let a=0;a<e.length;a++)t[a]=e[a];for(let a=0;a<r.length;a++)t[e.length+a]=r[a];return t},ma=(e,r)=>({classGroupId:e,validator:r}),tt=(e=new Map,r=null,t)=>({nextPart:e,validators:r,classGroupId:t}),ur="-",Ar=[],pa="arbitrary..",ga=e=>{const r=ba(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return ha(i);const m=i.split(ur),d=m[0]===""&&m.length>1?1:0;return at(m,d,r)},getConflictingClassGroupIds:(i,m)=>{if(m){const d=a[i],p=t[i];return d?p?fa(p,d):d:p||Ar}return t[i]||Ar}}},at=(e,r,t)=>{if(e.length-r===0)return t.classGroupId;const n=e[r],s=t.nextPart.get(n);if(s){const p=at(e,r+1,s);if(p)return p}const i=t.validators;if(i===null)return;const m=r===0?e.join(ur):e.slice(r).join(ur),d=i.length;for(let p=0;p<d;p++){const C=i[p];if(C.validator(m))return C.classGroupId}},ha=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=e.slice(1,-1),t=r.indexOf(":"),a=r.slice(0,t);return a?pa+a:void 0})(),ba=e=>{const{theme:r,classGroups:t}=e;return ya(t,r)},ya=(e,r)=>{const t=tt();for(const a in e){const n=e[a];Sr(n,t,a,r)}return t},Sr=(e,r,t,a)=>{const n=e.length;for(let s=0;s<n;s++){const i=e[s];wa(i,r,t,a)}},wa=(e,r,t,a)=>{if(typeof e=="string"){Ca(e,r,t);return}if(typeof e=="function"){va(e,r,t,a);return}Ea(e,r,t,a)},Ca=(e,r,t)=>{const a=e===""?r:nt(r,e);a.classGroupId=t},va=(e,r,t,a)=>{if(Sa(e)){Sr(e(a),r,t,a);return}r.validators===null&&(r.validators=[]),r.validators.push(ma(t,e))},Ea=(e,r,t,a)=>{const n=Object.entries(e),s=n.length;for(let i=0;i<s;i++){const[m,d]=n[i];Sr(d,nt(r,m),t,a)}},nt=(e,r)=>{let t=e;const a=r.split(ur),n=a.length;for(let s=0;s<n;s++){const i=a[s];let m=t.nextPart.get(i);m||(m=tt(),t.nextPart.set(i,m)),t=m}return t},Sa=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,ka=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=Object.create(null),a=Object.create(null);const n=(s,i)=>{t[s]=i,r++,r>e&&(r=0,a=t,t=Object.create(null))};return{get(s){let i=t[s];if(i!==void 0)return i;if((i=a[s])!==void 0)return n(s,i),i},set(s,i){s in t?t[s]=i:n(s,i)}}},yr="!",Vr=":",xa=[],_r=(e,r,t,a,n)=>({modifiers:e,hasImportantModifier:r,baseClassName:t,maybePostfixModifierPosition:a,isExternal:n}),Oa=e=>{const{prefix:r,experimentalParseClassName:t}=e;let a=n=>{const s=[];let i=0,m=0,d=0,p;const C=n.length;for(let y=0;y<C;y++){const Q=n[y];if(i===0&&m===0){if(Q===Vr){s.push(n.slice(d,y)),d=y+1;continue}if(Q==="/"){p=y;continue}}Q==="["?i++:Q==="]"?i--:Q==="("?m++:Q===")"&&m--}const I=s.length===0?n:n.slice(d);let P=I,A=!1;I.endsWith(yr)?(P=I.slice(0,-1),A=!0):I.startsWith(yr)&&(P=I.slice(1),A=!0);const H=p&&p>d?p-d:void 0;return _r(s,A,P,H)};if(r){const n=r+Vr,s=a;a=i=>i.startsWith(n)?s(i.slice(n.length)):_r(xa,!1,i,void 0,!0)}if(t){const n=a;a=s=>t({className:s,parseClassName:n})}return a},Na=e=>{const r=new Map;return e.orderSensitiveModifiers.forEach((t,a)=>{r.set(t,1e6+a)}),t=>{const a=[];let n=[];for(let s=0;s<t.length;s++){const i=t[s],m=i[0]==="[",d=r.has(i);m||d?(n.length>0&&(n.sort(),a.push(...n),n=[]),a.push(i)):n.push(i)}return n.length>0&&(n.sort(),a.push(...n)),a}},Ta=e=>({cache:ka(e.cacheSize),parseClassName:Oa(e),sortModifiers:Na(e),...ga(e)}),Ra=/\s+/,Da=(e,r)=>{const{parseClassName:t,getClassGroupId:a,getConflictingClassGroupIds:n,sortModifiers:s}=r,i=[],m=e.trim().split(Ra);let d="";for(let p=m.length-1;p>=0;p-=1){const C=m[p],{isExternal:I,modifiers:P,hasImportantModifier:A,baseClassName:H,maybePostfixModifierPosition:y}=t(C);if(I){d=C+(d.length>0?" "+d:d);continue}let Q=!!y,Y=a(Q?H.substring(0,y):H);if(!Y){if(!Q){d=C+(d.length>0?" "+d:d);continue}if(Y=a(H),!Y){d=C+(d.length>0?" "+d:d);continue}Q=!1}const z=P.length===0?"":P.length===1?P[0]:s(P).join(":"),q=A?z+yr:z,te=q+Y;if(i.indexOf(te)>-1)continue;i.push(te);const ae=n(Y,Q);for(let D=0;D<ae.length;++D){const g=ae[D];i.push(q+g)}d=C+(d.length>0?" "+d:d)}return d},Fa=(...e)=>{let r=0,t,a,n="";for(;r<e.length;)(t=e[r++])&&(a=ot(t))&&(n&&(n+=" "),n+=a);return n},ot=e=>{if(typeof e=="string")return e;let r,t="";for(let a=0;a<e.length;a++)e[a]&&(r=ot(e[a]))&&(t&&(t+=" "),t+=r);return t},Aa=(e,...r)=>{let t,a,n,s;const i=d=>{const p=r.reduce((C,I)=>I(C),e());return t=Ta(p),a=t.cache.get,n=t.cache.set,s=m,m(d)},m=d=>{const p=a(d);if(p)return p;const C=Da(d,t);return n(d,C),C};return s=i,(...d)=>s(Fa(...d))},Va=[],de=e=>{const r=t=>t[e]||Va;return r.isThemeGetter=!0,r},st=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,it=/^\((?:(\w[\w-]*):)?(.+)\)$/i,_a=/^\d+\/\d+$/,Pa=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ia=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,$a=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,ja=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,La=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ze=e=>_a.test(e),L=e=>!!e&&!Number.isNaN(Number(e)),Le=e=>!!e&&Number.isInteger(Number(e)),gr=e=>e.endsWith("%")&&L(e.slice(0,-1)),_e=e=>Pa.test(e),qa=()=>!0,Ba=e=>Ia.test(e)&&!$a.test(e),lt=()=>!1,Ma=e=>ja.test(e),Ua=e=>La.test(e),za=e=>!x(e)&&!O(e),Ka=e=>er(e,dt,lt),x=e=>st.test(e),ze=e=>er(e,ft,Ba),hr=e=>er(e,Wa,L),Pr=e=>er(e,ct,lt),Ga=e=>er(e,ut,Ua),ir=e=>er(e,mt,Ma),O=e=>it.test(e),tr=e=>rr(e,ft),Ha=e=>rr(e,Ja),Ir=e=>rr(e,ct),Qa=e=>rr(e,dt),Ya=e=>rr(e,ut),lr=e=>rr(e,mt,!0),er=(e,r,t)=>{const a=st.exec(e);return a?a[1]?r(a[1]):t(a[2]):!1},rr=(e,r,t=!1)=>{const a=it.exec(e);return a?a[1]?r(a[1]):t:!1},ct=e=>e==="position"||e==="percentage",ut=e=>e==="image"||e==="url",dt=e=>e==="length"||e==="size"||e==="bg-size",ft=e=>e==="length",Wa=e=>e==="number",Ja=e=>e==="family-name",mt=e=>e==="shadow",Xa=()=>{const e=de("color"),r=de("font"),t=de("text"),a=de("font-weight"),n=de("tracking"),s=de("leading"),i=de("breakpoint"),m=de("container"),d=de("spacing"),p=de("radius"),C=de("shadow"),I=de("inset-shadow"),P=de("text-shadow"),A=de("drop-shadow"),H=de("blur"),y=de("perspective"),Q=de("aspect"),Y=de("ease"),z=de("animate"),q=()=>["auto","avoid","all","avoid-page","page","left","right","column"],te=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],ae=()=>[...te(),O,x],D=()=>["auto","hidden","clip","visible","scroll"],g=()=>["auto","contain","none"],l=()=>[O,x,d],w=()=>[Ze,"full","auto",...l()],v=()=>[Le,"none","subgrid",O,x],T=()=>["auto",{span:["full",Le,O,x]},Le,O,x],$=()=>[Le,"auto",O,x],M=()=>["auto","min","max","fr",O,x],J=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ee=()=>["start","end","center","stretch","center-safe","end-safe"],se=()=>["auto",...l()],ne=()=>[Ze,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...l()],R=()=>[e,O,x],fe=()=>[...te(),Ir,Pr,{position:[O,x]}],Oe=()=>["no-repeat",{repeat:["","x","y","space","round"]}],pe=()=>["auto","cover","contain",Qa,Ka,{size:[O,x]}],ve=()=>[gr,tr,ze],N=()=>["","none","full",p,O,x],Z=()=>["",L,tr,ze],Ee=()=>["solid","dashed","dotted","double"],me=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],V=()=>[L,gr,Ir,Pr],Se=()=>["","none",H,O,x],be=()=>["none",L,O,x],ge=()=>["none",L,O,x],Te=()=>[L,O,x],ke=()=>[Ze,"full",...l()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[_e],breakpoint:[_e],color:[qa],container:[_e],"drop-shadow":[_e],ease:["in","out","in-out"],font:[za],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[_e],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[_e],shadow:[_e],spacing:["px",L],text:[_e],"text-shadow":[_e],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ze,x,O,Q]}],container:["container"],columns:[{columns:[L,x,O,m]}],"break-after":[{"break-after":q()}],"break-before":[{"break-before":q()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:ae()}],overflow:[{overflow:D()}],"overflow-x":[{"overflow-x":D()}],"overflow-y":[{"overflow-y":D()}],overscroll:[{overscroll:g()}],"overscroll-x":[{"overscroll-x":g()}],"overscroll-y":[{"overscroll-y":g()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:w()}],"inset-x":[{"inset-x":w()}],"inset-y":[{"inset-y":w()}],start:[{start:w()}],end:[{end:w()}],top:[{top:w()}],right:[{right:w()}],bottom:[{bottom:w()}],left:[{left:w()}],visibility:["visible","invisible","collapse"],z:[{z:[Le,"auto",O,x]}],basis:[{basis:[Ze,"full","auto",m,...l()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[L,Ze,"auto","initial","none",x]}],grow:[{grow:["",L,O,x]}],shrink:[{shrink:["",L,O,x]}],order:[{order:[Le,"first","last","none",O,x]}],"grid-cols":[{"grid-cols":v()}],"col-start-end":[{col:T()}],"col-start":[{"col-start":$()}],"col-end":[{"col-end":$()}],"grid-rows":[{"grid-rows":v()}],"row-start-end":[{row:T()}],"row-start":[{"row-start":$()}],"row-end":[{"row-end":$()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":M()}],"auto-rows":[{"auto-rows":M()}],gap:[{gap:l()}],"gap-x":[{"gap-x":l()}],"gap-y":[{"gap-y":l()}],"justify-content":[{justify:[...J(),"normal"]}],"justify-items":[{"justify-items":[...ee(),"normal"]}],"justify-self":[{"justify-self":["auto",...ee()]}],"align-content":[{content:["normal",...J()]}],"align-items":[{items:[...ee(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ee(),{baseline:["","last"]}]}],"place-content":[{"place-content":J()}],"place-items":[{"place-items":[...ee(),"baseline"]}],"place-self":[{"place-self":["auto",...ee()]}],p:[{p:l()}],px:[{px:l()}],py:[{py:l()}],ps:[{ps:l()}],pe:[{pe:l()}],pt:[{pt:l()}],pr:[{pr:l()}],pb:[{pb:l()}],pl:[{pl:l()}],m:[{m:se()}],mx:[{mx:se()}],my:[{my:se()}],ms:[{ms:se()}],me:[{me:se()}],mt:[{mt:se()}],mr:[{mr:se()}],mb:[{mb:se()}],ml:[{ml:se()}],"space-x":[{"space-x":l()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":l()}],"space-y-reverse":["space-y-reverse"],size:[{size:ne()}],w:[{w:[m,"screen",...ne()]}],"min-w":[{"min-w":[m,"screen","none",...ne()]}],"max-w":[{"max-w":[m,"screen","none","prose",{screen:[i]},...ne()]}],h:[{h:["screen","lh",...ne()]}],"min-h":[{"min-h":["screen","lh","none",...ne()]}],"max-h":[{"max-h":["screen","lh",...ne()]}],"font-size":[{text:["base",t,tr,ze]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,O,hr]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",gr,x]}],"font-family":[{font:[Ha,x,r]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,O,x]}],"line-clamp":[{"line-clamp":[L,"none",O,hr]}],leading:[{leading:[s,...l()]}],"list-image":[{"list-image":["none",O,x]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",O,x]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:R()}],"text-color":[{text:R()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[L,"from-font","auto",O,ze]}],"text-decoration-color":[{decoration:R()}],"underline-offset":[{"underline-offset":[L,"auto",O,x]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:l()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",O,x]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",O,x]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:fe()}],"bg-repeat":[{bg:Oe()}],"bg-size":[{bg:pe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Le,O,x],radial:["",O,x],conic:[Le,O,x]},Ya,Ga]}],"bg-color":[{bg:R()}],"gradient-from-pos":[{from:ve()}],"gradient-via-pos":[{via:ve()}],"gradient-to-pos":[{to:ve()}],"gradient-from":[{from:R()}],"gradient-via":[{via:R()}],"gradient-to":[{to:R()}],rounded:[{rounded:N()}],"rounded-s":[{"rounded-s":N()}],"rounded-e":[{"rounded-e":N()}],"rounded-t":[{"rounded-t":N()}],"rounded-r":[{"rounded-r":N()}],"rounded-b":[{"rounded-b":N()}],"rounded-l":[{"rounded-l":N()}],"rounded-ss":[{"rounded-ss":N()}],"rounded-se":[{"rounded-se":N()}],"rounded-ee":[{"rounded-ee":N()}],"rounded-es":[{"rounded-es":N()}],"rounded-tl":[{"rounded-tl":N()}],"rounded-tr":[{"rounded-tr":N()}],"rounded-br":[{"rounded-br":N()}],"rounded-bl":[{"rounded-bl":N()}],"border-w":[{border:Z()}],"border-w-x":[{"border-x":Z()}],"border-w-y":[{"border-y":Z()}],"border-w-s":[{"border-s":Z()}],"border-w-e":[{"border-e":Z()}],"border-w-t":[{"border-t":Z()}],"border-w-r":[{"border-r":Z()}],"border-w-b":[{"border-b":Z()}],"border-w-l":[{"border-l":Z()}],"divide-x":[{"divide-x":Z()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Z()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ee(),"hidden","none"]}],"divide-style":[{divide:[...Ee(),"hidden","none"]}],"border-color":[{border:R()}],"border-color-x":[{"border-x":R()}],"border-color-y":[{"border-y":R()}],"border-color-s":[{"border-s":R()}],"border-color-e":[{"border-e":R()}],"border-color-t":[{"border-t":R()}],"border-color-r":[{"border-r":R()}],"border-color-b":[{"border-b":R()}],"border-color-l":[{"border-l":R()}],"divide-color":[{divide:R()}],"outline-style":[{outline:[...Ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[L,O,x]}],"outline-w":[{outline:["",L,tr,ze]}],"outline-color":[{outline:R()}],shadow:[{shadow:["","none",C,lr,ir]}],"shadow-color":[{shadow:R()}],"inset-shadow":[{"inset-shadow":["none",I,lr,ir]}],"inset-shadow-color":[{"inset-shadow":R()}],"ring-w":[{ring:Z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:R()}],"ring-offset-w":[{"ring-offset":[L,ze]}],"ring-offset-color":[{"ring-offset":R()}],"inset-ring-w":[{"inset-ring":Z()}],"inset-ring-color":[{"inset-ring":R()}],"text-shadow":[{"text-shadow":["none",P,lr,ir]}],"text-shadow-color":[{"text-shadow":R()}],opacity:[{opacity:[L,O,x]}],"mix-blend":[{"mix-blend":[...me(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":me()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[L]}],"mask-image-linear-from-pos":[{"mask-linear-from":V()}],"mask-image-linear-to-pos":[{"mask-linear-to":V()}],"mask-image-linear-from-color":[{"mask-linear-from":R()}],"mask-image-linear-to-color":[{"mask-linear-to":R()}],"mask-image-t-from-pos":[{"mask-t-from":V()}],"mask-image-t-to-pos":[{"mask-t-to":V()}],"mask-image-t-from-color":[{"mask-t-from":R()}],"mask-image-t-to-color":[{"mask-t-to":R()}],"mask-image-r-from-pos":[{"mask-r-from":V()}],"mask-image-r-to-pos":[{"mask-r-to":V()}],"mask-image-r-from-color":[{"mask-r-from":R()}],"mask-image-r-to-color":[{"mask-r-to":R()}],"mask-image-b-from-pos":[{"mask-b-from":V()}],"mask-image-b-to-pos":[{"mask-b-to":V()}],"mask-image-b-from-color":[{"mask-b-from":R()}],"mask-image-b-to-color":[{"mask-b-to":R()}],"mask-image-l-from-pos":[{"mask-l-from":V()}],"mask-image-l-to-pos":[{"mask-l-to":V()}],"mask-image-l-from-color":[{"mask-l-from":R()}],"mask-image-l-to-color":[{"mask-l-to":R()}],"mask-image-x-from-pos":[{"mask-x-from":V()}],"mask-image-x-to-pos":[{"mask-x-to":V()}],"mask-image-x-from-color":[{"mask-x-from":R()}],"mask-image-x-to-color":[{"mask-x-to":R()}],"mask-image-y-from-pos":[{"mask-y-from":V()}],"mask-image-y-to-pos":[{"mask-y-to":V()}],"mask-image-y-from-color":[{"mask-y-from":R()}],"mask-image-y-to-color":[{"mask-y-to":R()}],"mask-image-radial":[{"mask-radial":[O,x]}],"mask-image-radial-from-pos":[{"mask-radial-from":V()}],"mask-image-radial-to-pos":[{"mask-radial-to":V()}],"mask-image-radial-from-color":[{"mask-radial-from":R()}],"mask-image-radial-to-color":[{"mask-radial-to":R()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":te()}],"mask-image-conic-pos":[{"mask-conic":[L]}],"mask-image-conic-from-pos":[{"mask-conic-from":V()}],"mask-image-conic-to-pos":[{"mask-conic-to":V()}],"mask-image-conic-from-color":[{"mask-conic-from":R()}],"mask-image-conic-to-color":[{"mask-conic-to":R()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:fe()}],"mask-repeat":[{mask:Oe()}],"mask-size":[{mask:pe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",O,x]}],filter:[{filter:["","none",O,x]}],blur:[{blur:Se()}],brightness:[{brightness:[L,O,x]}],contrast:[{contrast:[L,O,x]}],"drop-shadow":[{"drop-shadow":["","none",A,lr,ir]}],"drop-shadow-color":[{"drop-shadow":R()}],grayscale:[{grayscale:["",L,O,x]}],"hue-rotate":[{"hue-rotate":[L,O,x]}],invert:[{invert:["",L,O,x]}],saturate:[{saturate:[L,O,x]}],sepia:[{sepia:["",L,O,x]}],"backdrop-filter":[{"backdrop-filter":["","none",O,x]}],"backdrop-blur":[{"backdrop-blur":Se()}],"backdrop-brightness":[{"backdrop-brightness":[L,O,x]}],"backdrop-contrast":[{"backdrop-contrast":[L,O,x]}],"backdrop-grayscale":[{"backdrop-grayscale":["",L,O,x]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[L,O,x]}],"backdrop-invert":[{"backdrop-invert":["",L,O,x]}],"backdrop-opacity":[{"backdrop-opacity":[L,O,x]}],"backdrop-saturate":[{"backdrop-saturate":[L,O,x]}],"backdrop-sepia":[{"backdrop-sepia":["",L,O,x]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":l()}],"border-spacing-x":[{"border-spacing-x":l()}],"border-spacing-y":[{"border-spacing-y":l()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",O,x]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[L,"initial",O,x]}],ease:[{ease:["linear","initial",Y,O,x]}],delay:[{delay:[L,O,x]}],animate:[{animate:["none",z,O,x]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[y,O,x]}],"perspective-origin":[{"perspective-origin":ae()}],rotate:[{rotate:be()}],"rotate-x":[{"rotate-x":be()}],"rotate-y":[{"rotate-y":be()}],"rotate-z":[{"rotate-z":be()}],scale:[{scale:ge()}],"scale-x":[{"scale-x":ge()}],"scale-y":[{"scale-y":ge()}],"scale-z":[{"scale-z":ge()}],"scale-3d":["scale-3d"],skew:[{skew:Te()}],"skew-x":[{"skew-x":Te()}],"skew-y":[{"skew-y":Te()}],transform:[{transform:[O,x,"","none","gpu","cpu"]}],"transform-origin":[{origin:ae()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ke()}],"translate-x":[{"translate-x":ke()}],"translate-y":[{"translate-y":ke()}],"translate-z":[{"translate-z":ke()}],"translate-none":["translate-none"],accent:[{accent:R()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:R()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",O,x]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":l()}],"scroll-mx":[{"scroll-mx":l()}],"scroll-my":[{"scroll-my":l()}],"scroll-ms":[{"scroll-ms":l()}],"scroll-me":[{"scroll-me":l()}],"scroll-mt":[{"scroll-mt":l()}],"scroll-mr":[{"scroll-mr":l()}],"scroll-mb":[{"scroll-mb":l()}],"scroll-ml":[{"scroll-ml":l()}],"scroll-p":[{"scroll-p":l()}],"scroll-px":[{"scroll-px":l()}],"scroll-py":[{"scroll-py":l()}],"scroll-ps":[{"scroll-ps":l()}],"scroll-pe":[{"scroll-pe":l()}],"scroll-pt":[{"scroll-pt":l()}],"scroll-pr":[{"scroll-pr":l()}],"scroll-pb":[{"scroll-pb":l()}],"scroll-pl":[{"scroll-pl":l()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",O,x]}],fill:[{fill:["none",...R()]}],"stroke-w":[{stroke:[L,tr,ze,hr]}],stroke:[{stroke:["none",...R()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Za=Aa(Xa);function Ae(...e){return Za(da(e))}const en=()=>crypto.randomUUID(),pt=e=>e==="And"||e==="Or"||e==="Not",gt=(e,r)=>{const t=[];if(e.operator||t.push("Operator is required"),e.operator&&pt(e.operator))!e.children||!Array.isArray(e.children)?t.push("Logical operators require a children array"):e.children.length===0?t.push("Logical operators require at least one child condition"):e.operator==="Not"&&e.children.length>1&&t.push("Not operator can only have one child condition"),e.children&&Array.isArray(e.children)&&e.children.forEach((a,n)=>{const s=gt(a,r);s.isValid||t.push(...s.errors.map(i=>`Child ${n+1}: ${i}`))}),e.lhsField&&t.push("Logical operators should not have lhsField"),e.rhsValue!==void 0&&t.push("Logical operators should not have rhsValue");else{if(e.lhsField||t.push("Field is required for condition operators"),e.operator&&e.rhsValue!==void 0)switch(e.operator){case"Between":case"NotBetween":(!Array.isArray(e.rhsValue)||e.rhsValue.length!==2)&&t.push("Between operators require an array of two values");break;case"IN":case"NIN":(!Array.isArray(e.rhsValue)||e.rhsValue.length===0)&&t.push("IN/NIN operators require a non-empty array");break;case"Empty":case"NotEmpty":break;default:(e.rhsValue===null||e.rhsValue===void 0||e.rhsValue==="")&&t.push("Value is required for this operator");break}if(r&&e.lhsField&&e.operator){const a=r[e.lhsField];if(a&&(a.allowedOperators.includes(e.operator)||t.push(`Operator ${e.operator} is not allowed for field ${e.lhsField}`),a.validateValue&&e.rhsValue!==void 0)){const n=a.validateValue(e.rhsValue,e.operator);n.isValid||t.push(...n.errors)}}e.children&&e.children.length>0&&t.push("Condition operators should not have children")}return{isValid:t.length===0,errors:t}},ht=e=>pt(e.operator)?{Operator:e.operator,Condition:(e.children||[]).filter(r=>r.isValid).map(r=>ht(r))}:{Operator:e.operator,LHSField:e.lhsField,RHSValue:e.rhsValue,RHSType:e.rhsType||"Constant"},rn=(e,r)=>{if(e.length===0)return;const t=e.filter(a=>a.isValid);if(t.length!==0)return{Operator:r,Condition:t.map(a=>ht(a))}};function kr(e={}){const[r,t]=u.useState({logicalOperator:e.initialLogicalOperator||"And",conditions:e.initialConditions||[]}),[a]=u.useState({logicalOperator:e.initialLogicalOperator||"And",conditions:e.initialConditions||[]}),n=u.useCallback(g=>gt(g,e.fieldDefinitions),[e.fieldDefinitions]),s=u.useCallback(()=>{const g=[];return r.conditions.forEach(l=>{const w=n(l);w.isValid||g.push(...w.errors.map(v=>`Condition ${l.id}: ${v}`))}),{isValid:g.length===0,errors:g}},[r.conditions,n]),i=u.useCallback(g=>{const l=en(),w=g,v=n(w),T={...w,id:l,isValid:v.isValid,validationErrors:v.errors};return t($=>({...$,conditions:[...$.conditions,T]})),e.onConditionAdd&&e.onConditionAdd(T),l},[n,e]),m=u.useCallback((g,l)=>{let w=!1;const v=l;return t(T=>({...T,conditions:T.conditions.map($=>{if($.id===g){w=!0;const M={...$,...v},J=n(M),ee={...M,isValid:J.isValid,validationErrors:J.errors};return e.onConditionUpdate&&e.onConditionUpdate(ee),ee}return $})})),w},[n,e]),d=u.useCallback(g=>{let l=!1;return t(w=>({...w,conditions:w.conditions.filter(v=>v.id===g?(l=!0,e.onConditionRemove&&e.onConditionRemove(g),!1):!0)})),l},[e]),p=u.useCallback(()=>{t(g=>({...g,conditions:[]}))},[]),C=u.useCallback(g=>r.conditions.find(l=>l.id===g),[r.conditions]),I=u.useCallback(g=>{t(l=>({...l,logicalOperator:g}))},[]),P=u.useCallback(g=>{const l=g.map(w=>{const v=n(w);return{...w,isValid:v.isValid,validationErrors:v.errors}});t(w=>({...w,conditions:l}))},[n]),A=u.useCallback((g,l)=>{let w=!1;const v=l;return t(T=>({...T,conditions:T.conditions.map($=>{if($.id===g){w=!0;const M=n(v);return{...v,id:g,isValid:M.isValid,validationErrors:M.errors}}return $})})),w},[n]),H=u.useCallback(()=>({logicalOperator:r.logicalOperator,conditions:r.conditions.map(g=>({...g}))}),[r]),y=u.useCallback(g=>{const l=g.conditions.map(w=>{const v=n(w);return{...w,isValid:v.isValid,validationErrors:v.errors}});t({logicalOperator:g.logicalOperator,conditions:l})},[n]),Q=u.useCallback(()=>{t({...a})},[a]),Y=u.useMemo(()=>rn(r.conditions,r.logicalOperator),[r.conditions,r.logicalOperator]),z=u.useMemo(()=>{const g=[];return r.conditions.forEach(l=>{!l.isValid&&l.validationErrors&&l.validationErrors.forEach(w=>{g.push({conditionId:l.id,field:l.lhsField||"",message:w})})}),g},[r.conditions]),q=u.useMemo(()=>r.conditions.every(g=>g.isValid),[r.conditions]),te=u.useCallback(()=>r.conditions.length,[r.conditions]),ae=u.useMemo(()=>r.conditions.length>0,[r.conditions]),D=u.useMemo(()=>!0,[]);return u.useEffect(()=>{e.onValidationError&&z.length>0&&e.onValidationError(z)},[z,e]),{conditions:r.conditions,logicalOperator:r.logicalOperator,filterPayload:Y,isValid:q,validationErrors:z,addCondition:i,updateCondition:m,removeCondition:d,clearConditions:p,getCondition:C,setLogicalOperator:I,setConditions:P,replaceCondition:A,validateCondition:n,validateAllConditions:s,exportState:H,importState:y,resetToInitial:Q,getConditionCount:te,hasConditions:ae,canAddCondition:D}}const bt=(e,r)=>{const t=[];switch(r){case"Between":case"NotBetween":if(!Array.isArray(e)||e.length!==2)t.push("Between operators require exactly two numeric values");else{const[a,n]=e;typeof a!="number"||typeof n!="number"?t.push("Between values must be numbers"):a>=n&&t.push("First value must be less than second value")}break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of numbers"):e.every(a=>typeof a=="number")||t.push("All values in array must be numbers");break;case"Empty":case"NotEmpty":break;default:(typeof e!="number"||isNaN(e))&&t.push("Value must be a valid number");break}return{isValid:t.length===0,errors:t}},yt=(e,r)=>{const t=[],a=s=>s instanceof Date&&!isNaN(s.getTime()),n=s=>{if(s instanceof Date)return s;if(typeof s=="string"||typeof s=="number"){const i=new Date(s);return a(i)?i:null}return null};switch(r){case"Between":case"NotBetween":if(!Array.isArray(e)||e.length!==2)t.push("Between operators require exactly two date values");else{const[s,i]=e.map(n);!s||!i?t.push("Between values must be valid dates"):s>=i&&t.push("Start date must be before end date")}break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of dates"):e.every(s=>n(s))||t.push("All values in array must be valid dates");break;case"Empty":case"NotEmpty":break;default:n(e)||t.push("Value must be a valid date");break}return{isValid:t.length===0,errors:t}},wt=(e,r)=>{const t=[],a=i=>i&&typeof i=="object"&&typeof i.value=="number"&&typeof i.currency=="string"&&i.currency.length===3,n=i=>typeof i=="string"&&/^\d+(\.\d{2})?\s[A-Z]{3}$/.test(i),s=i=>a(i)||n(i)||typeof i=="number";switch(r){case"Between":case"NotBetween":!Array.isArray(e)||e.length!==2?t.push("Between operators require exactly two currency values"):e.every(s)||t.push("Between values must be valid currency amounts");break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of currency values"):e.every(s)||t.push("All values in array must be valid currency amounts");break;case"Empty":case"NotEmpty":break;default:s(e)||t.push("Value must be a valid currency amount");break}return{isValid:t.length===0,errors:t}},Ct=(e,r)=>{const t=[];switch(r){case"Between":case"NotBetween":t.push("Between operators are not supported for string fields");break;case"GT":case"GTE":case"LT":case"LTE":t.push("Comparison operators are not supported for string fields");break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of strings"):e.every(a=>typeof a=="string")||t.push("All values in array must be strings");break;case"MinLength":(typeof e!="number"||e<0)&&t.push("MinLength value must be a non-negative number");break;case"MaxLength":(typeof e!="number"||e<0)&&t.push("MaxLength value must be a non-negative number");break;case"Empty":case"NotEmpty":break;default:typeof e!="string"&&t.push("Value must be a string");break}return{isValid:t.length===0,errors:t}},vt=(e,r)=>{const t=[];if(!["EQ","NE","IN","NIN","Empty","NotEmpty"].includes(r))return t.push(`Operator ${r} is not supported for boolean fields`),{isValid:!1,errors:t};switch(r){case"IN":case"NIN":!Array.isArray(e)||e.length===0?t.push("IN/NIN operators require a non-empty array of boolean values"):e.every(n=>typeof n=="boolean")||t.push("All values in array must be boolean");break;case"Empty":case"NotEmpty":break;default:typeof e!="boolean"&&t.push("Value must be a boolean (true or false)");break}return{isValid:t.length===0,errors:t}},Et=(e,r,t)=>{const a=[];if(!t||t.length===0)return a.push("No select options defined for this field"),{isValid:!1,errors:a};const n=t.map(i=>i.value),s=i=>n.includes(i);switch(r){case"Between":case"NotBetween":case"GT":case"GTE":case"LT":case"LTE":a.push(`Operator ${r} is not supported for select fields`);break;case"IN":case"NIN":!Array.isArray(e)||e.length===0?a.push("IN/NIN operators require a non-empty array of values"):e.every(s)||a.push("All values must be from the available options");break;case"Empty":case"NotEmpty":break;default:s(e)||a.push("Value must be one of the available options");break}return{isValid:a.length===0,errors:a}},qe=e=>{switch(e){case"string":return{type:"string",allowedOperators:["EQ","NE","Contains","NotContains","IN","NIN","Empty","NotEmpty","MinLength","MaxLength"],validateValue:Ct};case"number":return{type:"number",allowedOperators:["EQ","NE","GT","GTE","LT","LTE","Between","NotBetween","IN","NIN","Empty","NotEmpty"],validateValue:bt};case"date":return{type:"date",allowedOperators:["EQ","NE","GT","GTE","LT","LTE","Between","NotBetween","IN","NIN","Empty","NotEmpty"],validateValue:yt};case"boolean":return{type:"boolean",allowedOperators:["EQ","NE","IN","NIN","Empty","NotEmpty"],validateValue:vt};case"currency":return{type:"currency",allowedOperators:["EQ","NE","GT","GTE","LT","LTE","Between","NotBetween","IN","NIN","Empty","NotEmpty"],validateValue:wt};case"select":const r={type:"select",allowedOperators:["EQ","NE","IN","NIN","Empty","NotEmpty"],selectOptions:[]};return r.validateValue=(t,a)=>Et(t,a,r.selectOptions),r;default:return qe("string")}},tn=e=>{const r={};return!e||typeof e!="object"||Object.keys(e).forEach(t=>{const a=e[t],n=t;typeof a=="string"?r[n]=qe("string"):typeof a=="number"?r[n]=qe("number"):typeof a=="boolean"?r[n]=qe("boolean"):a instanceof Date?r[n]=qe("date"):a&&typeof a=="object"&&"value"in a&&"currency"in a?r[n]=qe("currency"):r[n]=qe("string")}),r},or=e=>e==="And"||e==="Or"||e==="Not",St=e=>or(e.operator)?{Operator:e.operator,Condition:(e.children||[]).filter(r=>r.isValid).map(r=>St(r))}:{Operator:e.operator,LHSField:e.lhsField,RHSValue:e.rhsValue,RHSType:e.rhsType||"Constant"},kt=(e,r)=>{if(e.length===0)return;const t=e.filter(a=>a.isValid);if(t.length!==0)return{Operator:r,Condition:t.map(St)}},an=e=>kt(e.conditions,e.logicalOperator),xr=e=>e?!e.Operator||!["And","Or","Not"].includes(e.Operator)||!Array.isArray(e.Condition)||e.Condition.length===0||e.Operator==="Not"&&e.Condition.length!==1?!1:e.Condition.every(r=>{if(!r.Operator)return!1;if(or(r.Operator))return xr(r);{const t=r;return t.LHSField!==void 0&&t.RHSValue!==void 0&&(t.RHSType===void 0||["Constant","BOField","AppVariable"].includes(t.RHSType))}}):!0,xt=e=>{if(or(e.Operator))return{Operator:e.Operator,Condition:e.Condition.map(xt)};{const r=e;return{Operator:r.Operator,LHSField:r.LHSField,RHSValue:r.RHSValue,RHSType:r.RHSType}}},Ot=e=>{if(e)return{Operator:e.Operator,Condition:e.Condition.map(xt)}},nn=(e,r)=>{const t=e.filter(n=>n!==void 0&&xr(n));if(t.length===0)return;if(t.length===1)return Ot(t[0]);const a=t.flatMap(n=>n.Condition);return{Operator:r,Condition:a}},Nt=e=>{if(or(e.Operator)){const t=e.Condition.map(Nt);return t.length===1?e.Operator==="Not"?`NOT (${t[0]})`:t[0]:`(${t.join(` ${e.Operator} `)})`}else{const r=e,t=Array.isArray(r.RHSValue)?`[${r.RHSValue.join(", ")}]`:String(r.RHSValue);return`${r.LHSField} ${r.Operator} ${t}`}},on=e=>{if(!e)return"No filters";const r=e.Condition.map(Nt);return r.length===1?r[0]:`(${r.join(` ${e.Operator} `)})`},Tt=(e,r)=>{if(e.Operator!==r.Operator)return!1;if(or(e.Operator)){const t=e,a=r;return t.Condition.length!==a.Condition.length?!1:t.Condition.every((n,s)=>Tt(n,a.Condition[s]))}else{const t=e,a=r;return t.LHSField===a.LHSField&&JSON.stringify(t.RHSValue)===JSON.stringify(a.RHSValue)&&t.RHSType===a.RHSType}},sn=(e,r)=>!e&&!r?!0:!e||!r||e.Operator!==r.Operator||e.Condition.length!==r.Condition.length?!1:e.Condition.every((t,a)=>Tt(t,r.Condition[a]));function ln(e){var N,Z,Ee,me,V,Se,be,ge,Te,ke,$e;const[r,t]=u.useState({query:""}),[a,n]=u.useState({field:((Z=(N=e.initialState)==null?void 0:N.sorting)==null?void 0:Z.field)||null,direction:((me=(Ee=e.initialState)==null?void 0:Ee.sorting)==null?void 0:me.direction)||null}),[s,i]=u.useState({global:((V=e.initialState)==null?void 0:V.globalFilter)||""}),[m,d]=u.useState({pageNo:((be=(Se=e.initialState)==null?void 0:Se.pagination)==null?void 0:be.pageNo)||1,pageSize:((Te=(ge=e.initialState)==null?void 0:ge.pagination)==null?void 0:Te.pageSize)||10}),p=kr({initialConditions:(ke=e.initialState)==null?void 0:ke.filters,initialLogicalOperator:(($e=e.initialState)==null?void 0:$e.filterOperator)||"And",fieldDefinitions:e.fieldDefinitions,validateOnChange:!0,onValidationError:e.onFilterError,onConditionAdd:()=>{d(F=>({...F,pageNo:1}))},onConditionUpdate:()=>{d(F=>({...F,pageNo:1}))},onConditionRemove:()=>{d(F=>({...F,pageNo:1}))}}),C=u.useMemo(()=>{const F={};return r.query&&(F.Search=r.query),p.filterPayload&&(F.Filter=p.filterPayload),F},[r.query,p.filterPayload]),I=u.useMemo(()=>{const F={...C};return a.field&&a.direction&&(F.Sort=[{[String(a.field)]:a.direction==="asc"?"ASC":"DESC"}]),e.enablePagination&&(F.Page=m.pageNo,F.PageSize=m.pageSize),F},[C,a,m,e.enablePagination]),{data:P,isLoading:A,isFetching:H,error:y,refetch:Q}=Ne.useQuery({queryKey:["table",e.source,I],queryFn:async()=>{try{const F=await Ce(e.source).list(I);return e.onSuccess&&e.onSuccess(F.Data),F}catch(F){throw e.onError&&e.onError(F),F}},staleTime:0,gcTime:0}),{data:Y,isLoading:z,isFetching:q,error:te,refetch:ae}=Ne.useQuery({queryKey:["table-count",e.source,C],queryFn:async()=>{try{return await Ce(e.source).count(C)}catch(F){throw e.onError&&e.onError(F),F}},staleTime:0,gcTime:0}),D=u.useMemo(()=>(P==null?void 0:P.Data)||[],[P]),g=u.useMemo(()=>(Y==null?void 0:Y.Count)||0,[Y]),l=u.useMemo(()=>Math.ceil(g/m.pageSize),[g,m.pageSize]),w=u.useCallback(F=>{n(re=>{if(re.field===F){if(re.direction==="asc")return{field:F,direction:"desc"};if(re.direction==="desc")return{field:null,direction:null}}return{field:F,direction:"asc"}})},[]),v=u.useCallback(()=>{n({field:null,direction:null})},[]),T=u.useCallback((F,re)=>{n({field:F,direction:re})},[]),$=u.useCallback(F=>{t({query:F}),d(re=>({...re,pageNo:1}))},[]),M=u.useCallback(()=>{t({query:""})},[]),J=u.useCallback(F=>{i(re=>({...re,global:F})),d(re=>({...re,pageNo:1}))},[]),ee=u.useCallback(()=>{i({global:""})},[]),se=m.pageNo<l,ne=m.pageNo>1,R=u.useCallback(()=>{se&&d(F=>({...F,pageNo:F.pageNo+1}))},[se]),fe=u.useCallback(()=>{ne&&d(F=>({...F,pageNo:F.pageNo-1}))},[ne]),Oe=u.useCallback(F=>{const re=Math.max(1,Math.min(F,l));d(ye=>({...ye,pageNo:re}))},[l]),pe=u.useCallback(F=>{d(re=>({...re,pageSize:F,pageNo:1}))},[]),ve=u.useCallback(async()=>{const[F]=await Promise.all([Q(),ae()]);return F.data||{Data:[]}},[Q,ae]);return{rows:D,totalItems:g,isLoading:A||z,isFetching:H||q,error:y||te,search:{query:r.query,setQuery:$,clear:M},sort:{field:a.field,direction:a.direction,toggle:w,clear:v,set:T},globalFilter:{value:s.global,setValue:J,clear:ee},filter:{conditions:p.conditions,logicalOperator:p.logicalOperator,isValid:p.isValid,validationErrors:p.validationErrors,hasConditions:p.hasConditions,addCondition:p.addCondition,updateCondition:p.updateCondition,removeCondition:p.removeCondition,clearConditions:p.clearConditions,getCondition:p.getCondition,setLogicalOperator:p.setLogicalOperator,setConditions:p.setConditions,replaceCondition:p.replaceCondition,validateCondition:p.validateCondition,validateAllConditions:p.validateAllConditions,exportState:p.exportState,importState:p.importState,resetToInitial:p.resetToInitial,getConditionCount:p.getConditionCount},pagination:{currentPage:m.pageNo,pageSize:m.pageSize,totalPages:l,totalItems:g,canGoNext:se,canGoPrevious:ne,goToNext:R,goToPrevious:fe,goToPage:Oe,setPageSize:pe},refetch:ve}}function cn(){const e=new Date;return{NOW:e,TODAY:new Date(e.getFullYear(),e.getMonth(),e.getDate()),CURRENT_USER:{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"},CURRENT_USER_ID:1}}const un={CONCAT:(...e)=>e.map(r=>String(r||"")).join(""),TRIM:e=>String(e||"").trim(),LENGTH:e=>String(e||"").length,UPPER:e=>String(e||"").toUpperCase(),LOWER:e=>String(e||"").toLowerCase(),SUBSTRING:(e,r,t)=>{const a=String(e||"");return t!==void 0?a.substring(r,r+t):a.substring(r)},CONTAINS:(e,r)=>String(e||"").includes(String(r||"")),YEAR:e=>new Date(e).getFullYear(),MONTH:e=>new Date(e).getMonth()+1,DAY:e=>new Date(e).getDate(),DATE_DIFF:(e,r)=>{const t=new Date(e),a=new Date(r),n=Math.abs(t.getTime()-a.getTime());return Math.ceil(n/(1e3*60*60*24))},ADD_DAYS:(e,r)=>{const t=new Date(e);return t.setDate(t.getDate()+r),t},ADD_MONTHS:(e,r)=>{const t=new Date(e);return t.setMonth(t.getMonth()+r),t},SUM:(...e)=>e.reduce((r,t)=>r+(Number(t)||0),0),AVG:(...e)=>{const r=e.filter(t=>!isNaN(Number(t)));return r.length>0?r.reduce((t,a)=>t+Number(a),0)/r.length:0},MIN:(...e)=>Math.min(...e.map(r=>Number(r)||0)),MAX:(...e)=>Math.max(...e.map(r=>Number(r)||0)),ROUND:e=>Math.round(Number(e)||0),FLOOR:e=>Math.floor(Number(e)||0),CEIL:e=>Math.ceil(Number(e)||0),ABS:e=>Math.abs(Number(e)||0),IF:(e,r,t)=>e?r:t,IS_NULL:e=>e==null,IS_EMPTY:e=>!e||String(e).trim()==="",IS_NUMBER:e=>!isNaN(Number(e))&&e!==""&&e!==null&&e!==void 0,IS_DATE:e=>{const r=new Date(e);return!isNaN(r.getTime())},AUTO_NUMBER:()=>Math.floor(Math.random()*1e4)+1e3,UUID:()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const r=Math.random()*16|0;return(e=="x"?r:r&3|8).toString(16)}),ARRAY_LENGTH:e=>Array.isArray(e)?e.length:0,ARRAY_CONTAINS:(e,r)=>Array.isArray(e)?e.includes(r):!1,ARRAY_JOIN:(e,r=",")=>Array.isArray(e)?e.join(r):""};function Be(e,r){var t;switch(e.Type){case"Literal":return e.Value;case"SystemIdentifier":if(e.Property){const p=r.systemValues[e.Name];return br(p,e.Property.Name)}return r.systemValues[e.Name];case"Identifier":if(e.Property){const p=$r(e,r);return br(p,e.Property.Name)}return $r(e,r);case"MemberExpression":if(!e.Arguments||e.Arguments.length===0)throw new Error("MemberExpression requires Arguments array");const a=Be(e.Arguments[0],r),n=(t=e.Arguments[0].Property)==null?void 0:t.Name;return n?br(a,n):a;case"BinaryExpression":if(!e.Arguments||e.Arguments.length!==2)throw new Error("BinaryExpression requires exactly 2 arguments");const s=Be(e.Arguments[0],r),i=Be(e.Arguments[1],r);return dn(e.Operator,s,i);case"LogicalExpression":if(!e.Arguments||e.Arguments.length<2)throw new Error("LogicalExpression requires at least 2 arguments");return fn(e.Operator,e.Arguments,r);case"CallExpression":if(!e.Callee)throw new Error("CallExpression requires Callee");const m=un[e.Callee];if(!m)throw new Error(`Unknown function: ${e.Callee}`);const d=(e.Arguments||[]).map(p=>Be(p,r));return m(...d);case"AssignmentExpression":if(!e.Arguments||e.Arguments.length!==1)throw new Error("AssignmentExpression requires exactly 1 argument");return Be(e.Arguments[0],r);default:throw new Error(`Unknown expression type: ${e.Type}`)}}function $r(e,r){const{Name:t,Source:a}=e;if(!t)throw new Error("Identifier requires Name");switch(a){case"Input":default:return r.formValues[t]}}function br(e,r){if(!(!e||typeof e!="object"))return e[r]}function dn(e,r,t){const a=n=>n==null?0:typeof n=="number"?n:typeof n=="object"&&n!==null&&"value"in n?Number(n.value)||0:Number(n)||0;switch(e){case"==":return r==t;case"!=":return r!=t;case">":return a(r)>a(t);case"<":return a(r)<a(t);case">=":return a(r)>=a(t);case"<=":return a(r)<=a(t);case"+":return a(r)+a(t);case"-":return a(r)-a(t);case"*":return a(r)*a(t);case"/":const n=a(t);return n!==0?a(r)/n:0;default:throw new Error(`Unknown binary operator: ${e}`)}}function fn(e,r,t){switch(e){case"AND":return r.every(a=>!!Be(a,t));case"OR":return r.some(a=>!!Be(a,t));default:throw new Error(`Unknown logical operator: ${e}`)}}function Rt(e,r,t={}){const a={formValues:r,systemValues:cn(),referenceData:t};try{return Be(e,a)}catch(n){return console.warn("Expression evaluation failed:",n),!1}}function mn(e,r,t={}){const a=[];for(const n of e)try{Rt(n.Condition.ExpressionTree,r,t)||a.push({isValid:!1,message:n.Message,fieldName:n.Id})}catch(s){console.warn(`Cross-field validation rule ${n.Id} failed:`,s)}return a}function pn(e,r={},t={}){try{return Rt(e,r,t)}catch(a){return console.warn("Default value calculation failed:",a),null}}function jr(e,r){var m,d,p;const t=((m=e.Expression)==null?void 0:m.toLowerCase())||"",a=((d=e.Name)==null?void 0:d.toLowerCase())||"",n=((p=e.Id)==null?void 0:p.toLowerCase())||"",s=r.toLowerCase();return a.includes("required")||n.includes("required")?!0:[`${s} != null`,`${s} != ''`,`trim(${s}) != ''`,`${s}!=null`,`${s}!=''`].some(C=>t.includes(C))}function gn(e){const r={...e};r.Rules||(r.Rules={Validation:{},Computation:{},BusinessLogic:{}}),r.Rules.Validation||(r.Rules.Validation={}),r.Rules.Computation||(r.Rules.Computation={}),r.Rules.BusinessLogic||(r.Rules.BusinessLogic={});const t={...r.Fields};return Object.entries(t).forEach(([a,n])=>{let s=n.Required||!1;if(n.Validation&&Array.isArray(n.Validation))if(n.Validation.length>0&&typeof n.Validation[0]=="object"){const i=[];n.Validation.forEach(m=>{r.Rules.Validation[m.Id]=m,i.push(m.Id),jr(m,a)&&(s=!0)}),t[a]={...n,Validation:i,Required:s}}else n.Validation.forEach(m=>{var p;const d=(p=r.Rules.Validation)==null?void 0:p[m];d&&jr(d,a)&&(s=!0)}),s&&!n.Required&&(t[a]={...n,Required:!0});if(n.Formula){const i=`RULE_COMPUTE_${a.toUpperCase()}`;r.Rules.Computation[i]={Id:i,Name:n.Formula.Id||`Compute ${a}`,Description:n.Formula.Description||`Computes value for ${a}`,Expression:n.Formula.Expression,ExpressionTree:n.Formula.ExpressionTree,ResultType:n.Type}}}),r.Fields=t,r}function hn(e){var t,a,n;const r={validation:{},computation:{},businessLogic:{}};return(t=e.Rules)!=null&&t.Validation&&(r.validation={...e.Rules.Validation}),(a=e.Rules)!=null&&a.Computation&&(r.computation={...e.Rules.Computation}),(n=e.Rules)!=null&&n.BusinessLogic&&(r.businessLogic={...e.Rules.BusinessLogic}),r}function bn(e){var a;const r={};if(!((a=e.Rules)!=null&&a.Computation))return r;const t=Object.entries(e.Fields).filter(([n,s])=>s.Computed).map(([n])=>n);return t.sort((n,s)=>s.length-n.length),Object.entries(e.Rules.Computation).forEach(([n,s])=>{const i=n.toUpperCase().replace(/[_-]/g,"");for(const d of t){const p=d.toUpperCase().replace(/[_-]/g,"");if(i.includes(p)){r[n]=d;return}}const m=`${s.Name||""} ${s.Description||""}`.toLowerCase();for(const d of t)if(m.includes(d.toLowerCase())){r[n]=d;return}}),r}function yn(e,r){const t={};Object.keys(e.Fields).forEach(n=>{t[n]={validation:[],computation:[],businessLogic:[]}}),Object.entries(e.Fields).forEach(([n,s])=>{s.Validation&&Array.isArray(s.Validation)&&s.Validation.forEach(m=>{r.validation[m]?t[n].validation.push(m):r.computation[m]?t[n].computation.push(m):r.businessLogic[m]&&t[n].businessLogic.push(m)}),s.Formula&&Object.entries(r.computation).forEach(([i,m])=>{var d;m.Expression===((d=s.Formula)==null?void 0:d.Expression)&&(t[n].computation.includes(i)||t[n].computation.push(i))})});const a=bn(e);return Object.entries(a).forEach(([n,s])=>{t[s]&&!t[s].computation.includes(n)&&t[s].computation.push(n)}),t}function wn(e,r){const t={},a={editable:!0,readable:!0,hidden:!1};return Object.keys(e.Fields).forEach(n=>{var d,p,C,I,P,A;if(!r||!((d=e.RolePermission)!=null&&d[r])){t[n]=a;return}const s=e.RolePermission[r],i=((p=s.Editable)==null?void 0:p.includes(n))||((C=s.Editable)==null?void 0:C.includes("*"))||!1,m=((I=s.ReadOnly)==null?void 0:I.includes(n))||((P=s.ReadOnly)==null?void 0:P.includes("*"))||i;t[n]={editable:i&&!((A=s.ReadOnly)!=null&&A.includes(n)),readable:m,hidden:!m}}),t}function Cn(e){return{Id:"legacy_schema",Name:"Legacy Schema",Kind:"BusinessObject",Description:"Converted from legacy schema format",Rules:{Validation:{},Computation:{},BusinessLogic:{}},Fields:Object.fromEntries(Object.entries(e).map(([r,t])=>[r,{...t,Id:r,Name:t.Description||r,Validation:[]}])),RolePermission:{},Roles:{}}}function vn(e,r){switch(e){case"String":return r.toLowerCase().includes("email")?"email":r.toLowerCase().includes("password")?"password":"text";case"Number":return"number";case"Boolean":return"checkbox";case"Date":return"date";case"DateTime":return"datetime-local";case"Reference":return"reference";case"Array":case"Object":return"textarea";default:return"text"}}function Dt(e){return e.replace(/([A-Z])/g," $1").replace(/^./,r=>r.toUpperCase()).replace(/_/g," ").trim()}function En(e,r,t){const a={};switch(r.Required&&(a.required={value:!0,message:`${Dt(e)} is required`}),r.Type){case"Number":a.valueAsNumber=!0;break;case"Date":case"DateTime":a.valueAsDate=!0;break}return r.Validation&&r.Validation.length>0&&(a.validate=()=>!0),a}function Sn(e){return e.Values?e.Values.Mode==="Static"&&e.Values.Items?e.Values.Items.map(r=>({value:r.Value,label:r.Label})):e.Values.Mode==="Dynamic"&&e.Values.Reference?[]:[]:[]}function kn(e,r={}){if(!e.DefaultValue)switch(e.Type){case"Boolean":return!1;case"Number":return 0;case"String":return"";case"Array":return[];case"Object":return{};default:return}return pn(e.DefaultValue.ExpressionTree,r)}function xn(e,r,t,a={},n,s){const i={editable:!0,readable:!0,hidden:!1},d=s||{validation:[],computation:[],businessLogic:[]},p=r.Computed||!!r.Formula||d.computation.length>0,C=En(e,r);return p&&(C.disabled=!0),{name:e,type:vn(r.Type,e),label:r.Name||Dt(e),required:r.Required||!1,computed:p,defaultValue:kn(r,a),options:Sn(r),validation:C,description:r.Description,backendField:r,permission:n||i,rules:d}}function On(e,r={},t){let a="Kind"in e&&e.Kind==="BusinessObject"?e:Cn(e);a=gn(a);const n={},s=[],i=[],m=[],d=[],p=hn(a),C=yn(a,p),I=wn(a,t);for(const[P,A]of Object.entries(a.Fields)){if(P.startsWith("_")&&!["_id"].includes(P))continue;const H=I[P];if(H.hidden)continue;const y=xn(P,A,a.Fields,r,H,C[P]||{validation:[],computation:[],businessLogic:[]});n[P]=y,s.push(P),y.computed&&i.push(P),y.required&&m.push(P)}return{fields:n,fieldOrder:s,computedFields:i,requiredFields:m,crossFieldValidation:d,rules:p,fieldRules:C,rolePermissions:a.RolePermission}}function Nn(e){var t;if(e.type!=="reference"||!((t=e.backendField.Values)!=null&&t.Reference))return null;const r=e.backendField.Values.Reference;return{businessObject:r.BusinessObject,fields:r.Fields||["_id"],filters:r.Filters,sort:r.Sort}}function Tn(e){const r={};for(const[t,a]of Object.entries(e.fields))if(a.type==="reference"){const n=Nn(a);n&&(r[t]=n)}return r}async function Rn(e){try{const t=(await Gr(e)).BOBlob;if(!t||typeof t!="object"||!t.Fields)throw new Error(`Invalid BDO schema response for ${e}`);return t}catch(r){throw console.error(`Schema fetch error for ${e}:`,r),new Error(`Failed to load form schema: ${r instanceof Error?r.message:"Unknown error"}`)}}async function Dn(e,r=3){let t;for(let a=1;a<=r;a++)try{return await Rn(e)}catch(n){if(t=n,a<r){const s=Math.min(1e3*Math.pow(2,a-1),5e3);await new Promise(i=>setTimeout(i,s));continue}}throw t}async function Fn(e,r){try{return await Ce(e).get(r)}catch(t){throw console.error(`Record fetch error for ${e}/${r}:`,t),new Error(`Failed to load record: ${t instanceof Error?t.message:"Unknown error"}`)}}async function An(e,r,t,a){try{let n;if(r==="create")return n=await Ce(e).create(t),{success:!0,data:n,recordId:n._id||a};if(r==="update"){if(!a)throw new Error("Record ID is required for update operations");return n=await Ce(e).update(a,t),{success:!0,data:n,recordId:n._id||a}}else throw new Error(`Unsupported operation: ${r}`)}catch(n){return console.error("Form submission error:",n),{success:!1,error:new Error(`Failed to ${r} record: ${n instanceof Error?n.message:"Unknown error"}`)}}}async function Vn(e,r=["_id"],t,a){try{const n={};return t&&(n.Filter=t),a&&(n.Sort=a),r.length>0&&(n.Field=r),(await Ce(e).list(n)).Data||[]}catch(n){return console.error(`Reference data fetch error for ${e}:`,n),[]}}async function _n(e){const r={},t=Object.entries(e).map(async([n,s])=>{try{const i=await Vn(s.businessObject,s.fields,s.filters,s.sort);return[n,i]}catch(i){return console.warn(`Failed to fetch reference data for ${n}:`,i),[n,[]]}});return(await Promise.allSettled(t)).forEach(n=>{if(n.status==="fulfilled"){const[s,i]=n.value;r[s]=Array.isArray(i)?i:[]}}),r}function Pn(e,r,t="create",a){const n={};return Object.keys(e).forEach(s=>{const i=s,m=e[i];if(!r.includes(s)&&m!==void 0){if(t==="create"){n[i]=m;return}if(t==="update"){if(!a){n[i]=m;return}const d=a[i];JSON.stringify(m)!==JSON.stringify(d)&&(n[i]=m)}}}),n}const wr=new Map;function In(e,r,t=10){wr.set(e,{data:r,timestamp:Date.now(),ttl:t*60*1e3})}function $n(e){const r=wr.get(e);return r?Date.now()-r.timestamp>r.ttl?(wr.delete(e),null):r.data:null}async function jn(e){const r=`schema:${e}`,t=$n(r);if(t)return t;const a=await Dn(e);return In(r,a,30),a}class Lr{constructor(r=1e3){Xe(this,"cache",new Map);Xe(this,"maxSize");this.maxSize=r}get(r){const t=this.cache.get(r);return t!==void 0&&(this.cache.delete(r),this.cache.set(r,t)),t}set(r,t){if(this.cache.has(r))this.cache.delete(r);else if(this.cache.size>=this.maxSize){const a=this.cache.keys().next().value;this.cache.delete(a)}this.cache.set(r,t)}clear(){this.cache.clear()}}function Ln(e){const r=new Set;function t(a){switch(a.Type){case"Identifier":a.Name&&!a.Name.startsWith("$")&&r.add(a.Name);break;case"MemberExpression":a.Arguments&&a.Arguments.forEach(t);break;case"CallExpression":case"BinaryExpression":case"LogicalExpression":a.Arguments&&a.Arguments.forEach(t);break}}return t(e),r}class qn{constructor(){Xe(this,"resultCache",new Lr(500));Xe(this,"dependencyCache",new Lr(200));Xe(this,"compiledExpressions",new Map)}createCacheKey(r,t){const a=JSON.stringify(r),n=JSON.stringify(t);return`${a}:${n}`}getDependencies(r){const t=JSON.stringify(r);let a=this.dependencyCache.get(t);return a||(a=Ln(r),this.dependencyCache.set(t,a)),a}getCachedResult(r,t,a){if(!a)return;const n=this.getDependencies(r);for(const i of n)if(t[i]!==a[i])return;const s=this.createCacheKey(r,t);return this.resultCache.get(s)}evaluate(r,t,a){const n=this.getCachedResult(r,t,a);if(n!==void 0)return n;const s=this.evaluateNode(r,t),i=this.createCacheKey(r,t);return this.resultCache.set(i,s),s}evaluateNode(r,t){switch(r.Type){case"Literal":return r.Value;case"Identifier":return this.getIdentifierValue(r,t);case"BinaryExpression":return this.evaluateBinaryExpression(r,t);case"LogicalExpression":return this.evaluateLogicalExpression(r,t);case"CallExpression":return this.evaluateCallExpression(r,t);case"MemberExpression":return this.evaluateMemberExpression(r,t);default:throw new Error(`Unsupported expression type: ${r.Type}`)}}getIdentifierValue(r,t){if(r.Name){if(r.Name==="NOW")return new Date;if(r.Name==="TODAY"){const a=new Date;return new Date(a.getFullYear(),a.getMonth(),a.getDate())}return r.Name==="CURRENT_USER_ID"?1:r.Name==="CURRENT_USER"?{EmpId:1,Email:"user@example.com",FirstName:"John",LastName:"Doe",Role:"User"}:t[r.Name]}}evaluateBinaryExpression(r,t){if(!r.Arguments||r.Arguments.length!==2)throw new Error("Binary expression requires exactly 2 arguments");const a=this.evaluateNode(r.Arguments[0],t),n=this.evaluateNode(r.Arguments[1],t);switch(r.Operator){case"==":return a==n;case"!=":return a!=n;case"===":return a===n;case"!==":return a!==n;case"<":return Number(a)<Number(n);case"<=":return Number(a)<=Number(n);case">":return Number(a)>Number(n);case">=":return Number(a)>=Number(n);case"+":return Number(a)+Number(n);case"-":return Number(a)-Number(n);case"*":return Number(a)*Number(n);case"/":return Number(a)/Number(n);case"%":return Number(a)%Number(n);default:throw new Error(`Unsupported binary operator: ${r.Operator}`)}}evaluateLogicalExpression(r,t){if(!r.Arguments||r.Arguments.length<2)throw new Error("Logical expression requires at least 2 arguments");switch(r.Operator){case"AND":for(const a of r.Arguments)if(!this.evaluateNode(a,t))return!1;return!0;case"OR":for(const a of r.Arguments)if(this.evaluateNode(a,t))return!0;return!1;default:throw new Error(`Unsupported logical operator: ${r.Operator}`)}}evaluateCallExpression(r,t){var n;if(!r.Callee)throw new Error("Call expression requires a function name");const a=((n=r.Arguments)==null?void 0:n.map(s=>this.evaluateNode(s,t)))||[];switch(r.Callee){case"CONCAT":return a.map(p=>String(p||"")).join("");case"TRIM":return String(a[0]||"").trim();case"LENGTH":return String(a[0]||"").length;case"UPPER":return String(a[0]||"").toUpperCase();case"LOWER":return String(a[0]||"").toLowerCase();case"CONTAINS":return String(a[0]||"").includes(String(a[1]||""));case"MATCHES":return new RegExp(String(a[1])).test(String(a[0]||""));case"SUM":return a.reduce((p,C)=>p+(Number(C)||0),0);case"AVG":const s=a.filter(p=>!isNaN(Number(p)));return s.length>0?s.reduce((p,C)=>p+Number(C),0)/s.length:0;case"MIN":return Math.min(...a.map(p=>Number(p)||0));case"MAX":return Math.max(...a.map(p=>Number(p)||0));case"ROUND":return Math.round(Number(a[0])||0);case"FLOOR":return Math.floor(Number(a[0])||0);case"CEIL":return Math.ceil(Number(a[0])||0);case"ABS":return Math.abs(Number(a[0])||0);case"YEAR":return new Date(a[0]).getFullYear();case"MONTH":return new Date(a[0]).getMonth()+1;case"DAY":return new Date(a[0]).getDate();case"DATE_DIFF":const i=new Date(a[0]),m=new Date(a[1]),d=Math.abs(i.getTime()-m.getTime());return Math.ceil(d/(1e3*60*60*24));case"IF":return a[0]?a[1]:a[2];case"AUTO_NUMBER":return Math.floor(Math.random()*1e4);default:throw new Error(`Unknown function: ${r.Callee}`)}}evaluateMemberExpression(r,t){var s;if(!r.Arguments||r.Arguments.length===0)throw new Error("Member expression requires arguments");const a=this.evaluateNode(r.Arguments[0],t),n=(s=r.Arguments[0].Property)==null?void 0:s.Name;return n&&a&&typeof a=="object"?a[n]:a}clearCache(){this.resultCache.clear(),this.dependencyCache.clear(),this.compiledExpressions.clear()}}const Ft=new qn;function Bn(e,r,t,a,n){if(!t||t.length===0)return{isValid:!0};const s={...a,[e]:r};for(const i of t)try{if(!Ft.evaluate(i.ExpressionTree,s,n))return{isValid:!1,message:i.Message||`Validation failed for ${i.Name}`,fieldName:e}}catch(m){console.warn(`Validation rule ${i.Id} failed to evaluate:`,m)}return{isValid:!0}}function qr(e){return Array.from(Ft.getDependencies(e))}function Mn(e){const{source:r,operation:t,recordId:a,defaultValues:n={},mode:s="onBlur",enabled:i=!0,userRole:m,onSuccess:d,onError:p,onSchemaError:C,onSubmitError:I,skipSchemaFetch:P=!1,schema:A,draftOnEveryChange:H=!1}=e,[y,Q]=u.useState(null),[Y,z]=u.useState({}),[q,te]=u.useState(null),[ae,D]=u.useState(!1),[g]=u.useState({}),l=u.useRef(!1),w=u.useRef(null),v=u.useRef(null),T=u.useRef(d),$=u.useRef(p),M=u.useRef(I),J=u.useRef(C);u.useEffect(()=>{T.current=d},[d]),u.useEffect(()=>{$.current=p},[p]),u.useEffect(()=>{M.current=I},[I]),u.useEffect(()=>{J.current=C},[C]);const{data:ee,isLoading:se,error:ne,refetch:R}=Ne.useQuery({queryKey:["form-schema",r],queryFn:()=>P?Promise.resolve(A||{}):jn(r),enabled:i&&(!P||!!A),retry:3,staleTime:30*60*1e3,gcTime:60*60*1e3,throwOnError:!1}),{data:fe,isLoading:Oe,error:pe}=Ne.useQuery({queryKey:["form-record",r,a],queryFn:()=>Fn(r,a),enabled:i&&t==="update"&&!!a,retry:3,staleTime:5*60*1e3,gcTime:15*60*1e3,throwOnError:!1}),ve=u.useMemo(()=>{const c={...n};if(t==="update"&&fe&&Object.assign(c,fe),y)for(const[b,k]of Object.entries(y.fields))k.defaultValue!==void 0&&!(b in c)&&(c[b]=k.defaultValue);return c},[n,fe,t,y]),N=Zt.useForm({mode:s,defaultValues:n,values:t==="update"&&fe?ve:void 0});u.useEffect(()=>{var c;if(ee)try{const b=On(ee,{},m);Q(b);const k=Tn(b);Object.keys(k).length>0&&_n(k).then(z).catch(console.warn)}catch(b){console.error("Schema processing failed:",b),(c=J.current)==null||c.call(J,b)}},[ee,m]),u.useEffect(()=>{var c;ne&&((c=J.current)==null||c.call(J,ne))},[ne]),u.useEffect(()=>{var c;pe&&((c=$.current)==null||c.call($,pe))},[pe]);const Z=u.useMemo(()=>{if(!y)return[];const c=new Set,b=new Set(y.computedFields);return Object.entries(y.fieldRules).forEach(([k,K])=>{K.computation.forEach(j=>{const G=y.rules.computation[j];G!=null&&G.ExpressionTree&&qr(G.ExpressionTree).forEach(ce=>{y.fields[ce]&&ce!==k&&!b.has(ce)&&c.add(ce)})})}),y.computedFields.forEach(k=>{const K=y.fields[k];K.backendField.Formula&&qr(K.backendField.Formula.ExpressionTree).forEach(G=>{y.fields[G]&&G!==k&&!b.has(G)&&c.add(G)})}),Array.from(c)},[y]),Ee=u.useCallback(async c=>{!y||Z.length===0||!(H||Z.includes(c))||l.current||(w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{if(!y||l.current)return;const k=N.getValues();(async()=>{l.current=!0;try{const j=Ce(r),G={};t==="update"&&a&&"_id"in k&&(G._id=k._id);const oe=v.current??(t==="update"?fe:null)??{},ce=new Set(y.computedFields||[]);Object.keys(k).forEach(ue=>{if(ue==="_id"||ce.has(ue))return;const he=k[ue],Ye=oe[ue];JSON.stringify(he)!==JSON.stringify(Ye)&&(he!==""&&he!==null&&he!==void 0)&&(G[ue]=he)});const Re=G,Fe={...v.current};Object.keys(k).forEach(ue=>{ce.has(ue)||(Fe[ue]=k[ue])}),v.current=Fe;const je=t==="update"&&a?await j.draftPatch(a,Re):await j.draft(Re);je&&typeof je=="object"&&(Object.entries(je).forEach(([ue,he])=>{k[ue]!==he&&N.setValue(ue,he,{shouldDirty:!1,shouldValidate:!1})}),Object.entries(je).forEach(([ue,he])=>{ce.has(ue)&&(v.current[ue]=he)}))}catch(j){console.warn("Failed to compute fields via API:",j)}finally{l.current=!1}})()},300))},[y,t,a,fe,r,N,Z,H]),me=u.useCallback(async()=>{if(!y)return!1;const c=N.getValues();if(!await N.trigger())return!1;const k=y.crossFieldValidation.map(j=>({Id:j.Id,Condition:{ExpressionTree:j.ExpressionTree},Message:j.Message||`Validation failed for ${j.Name}`})),K=mn(k,c,Y);return K.length>0?(K.forEach((j,G)=>{N.setError(`root.crossField${G}`,{type:"validate",message:j.message})}),!1):!0},[y,N.getValues,N.trigger,N.setError,Y]),V=u.useCallback(async()=>{var c,b,k;if(!y)throw new Error("Schema not loaded");D(!0),te(null);try{if(!await me())throw new Error("Form validation failed");const j=N.getValues(),G=Pn(j,y.computedFields,t,fe),oe=await An(r,t,G,a);if(!oe.success)throw oe.error||new Error("Submission failed");(c=T.current)==null||c.call(T,oe.data||j),t==="create"&&N.reset()}catch(K){const j=K;throw te(j),(b=M.current)==null||b.call(M,j),(k=$.current)==null||k.call($,j),K}finally{D(!1)}},[y,me,N,r,t,a,fe]),Se=u.useCallback(()=>N.handleSubmit(async()=>{await V()}),[N,V]),be=u.useCallback(c=>(y==null?void 0:y.fields[c])||null,[y]),ge=u.useCallback(()=>{if(!y)return{};const c={};return Object.entries(y.fields).forEach(([b,k])=>{c[b]=k}),c},[y]),Te=u.useCallback(c=>!!(y!=null&&y.fields[c]),[y]),ke=u.useCallback(c=>(y==null?void 0:y.requiredFields.includes(c))||!1,[y]),$e=u.useCallback(c=>(y==null?void 0:y.computedFields.includes(c))||!1,[y]),F=u.useCallback(async()=>{await R()},[R]),re=u.useCallback(()=>{N.clearErrors(),te(null)},[N]),ye=se||t==="update"&&Oe,Ge=ye||ae,Me=ne||pe,Ve=!!(Me||q),He=u.useMemo(()=>(y==null?void 0:y.computedFields)||[],[y]),Qe=u.useMemo(()=>(y==null?void 0:y.requiredFields)||[],[y]),f=u.useMemo(()=>{if(!y)return{};const c={};return Object.entries(y.fields).forEach(([b,k])=>{const K={};switch(k.required&&(K.required=`${k.label} is required`),k.permission.editable||(K.disabled=!0),k.type){case"number":K.valueAsNumber=!0;break;case"date":case"datetime-local":K.valueAsDate=!0;break}const j=k.rules.validation;j.length>0&&(K.validate={expressionValidation:G=>{const oe=N.getValues();for(const ce of j){const Re=y.rules.validation[ce];if(Re){const Fe=Bn(b,G,[Re],oe,g);if(!Fe.isValid)return Fe.message||Re.Message||"Invalid value"}}return!0}}),c[b]=K}),c},[y,N,Y]);return{register:u.useCallback((c,b)=>{const k=f[c],K=b==null?void 0:b.onBlur,j=async G=>{K&&await K(G);let oe=!0;s==="onBlur"||s==="onTouched"||s==="all"?oe=await N.trigger(c):oe=!N.getFieldState(c,N.formState).error,oe&&await Ee(c)};return N.register(c,{...k,...b,onBlur:j})},[N,f,Ee,s]),handleSubmit:Se,watch:N.watch,setValue:N.setValue,reset:N.reset,errors:N.formState.errors,isValid:N.formState.isValid,isDirty:N.formState.isDirty,isSubmitting:N.formState.isSubmitting||ae,isSubmitSuccessful:N.formState.isSubmitSuccessful,formState:N.formState,isLoadingInitialData:ye,isLoadingRecord:Oe,isLoading:Ge,loadError:Me,submitError:q,hasError:Ve,schema:ee,processedSchema:y,computedFields:He,requiredFields:Qe,getField:be,getFields:ge,hasField:Te,isFieldRequired:ke,isFieldComputed:$e,submit:V,refreshSchema:F,validateForm:me,clearErrors:re}}const Br=50,Mr=5,Ur=5;function Un({onCardMove:e,onError:r,columns:t,announceMove:a}){const[n,s]=u.useState({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),i=u.useRef(null),m=u.useRef(null),d=u.useRef(null),p=u.useCallback(()=>{s({isDragging:!1,draggedCard:null,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:null}),m.current&&(clearTimeout(m.current),m.current=null)},[]),C=u.useCallback(D=>t.find(g=>g._id===D)||null,[t]),I=u.useCallback(D=>{for(const g of t){const l=g.cards.find(w=>w._id===D);if(l)return{card:l,column:g}}return null},[t]),P=u.useCallback((D,g)=>{var l,w;try{const v=D.target,T=C(g.columnId);if(!T)throw new Error("Source column not found");(l=D.dataTransfer)==null||l.setData("text/plain",g._id),(w=D.dataTransfer)==null||w.setData("application/json",JSON.stringify(g));const $=v.cloneNode(!0);$.style.cssText=`
|
|
5
|
+
position: fixed;
|
|
6
|
+
top: -1000px;
|
|
7
|
+
left: -1000px;
|
|
8
|
+
opacity: 0.9;
|
|
9
|
+
transform: rotate(-2deg) scale(0.95);
|
|
10
|
+
box-shadow: 0 10px 25px rgba(0,0,0,0.2);
|
|
11
|
+
pointer-events: none;
|
|
12
|
+
z-index: 9999;
|
|
13
|
+
max-width: 300px;
|
|
14
|
+
background: white;
|
|
15
|
+
border-radius: 8px;
|
|
16
|
+
`,document.body.appendChild($),i.current=$,D.dataTransfer&&D.dataTransfer.setDragImage($,D.offsetX||50,D.offsetY||20),s({isDragging:!0,draggedCard:g,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:T._id}),a==null||a(g,T.title,"being moved")}catch(v){r==null||r(v instanceof Error?v:new Error("Drag start failed")),p()}},[C,r,p,a]),A=u.useCallback((D,g)=>{if(D.preventDefault(),!n.isDragging||!n.draggedCard)return;const l=g?C(g):null;s(w=>({...w,dragOverColumn:(l==null?void 0:l._id)||null,dragOverPosition:null})),Q(D)},[n.isDragging,n.draggedCard,C]),H=u.useCallback((D,g)=>{if(D.preventDefault(),!(!n.isDragging||!n.draggedCard))try{const l=n.draggedCard,w=n.dragSourceColumn,v=C(g),T=C(w);if(!v||!T)throw new Error("Target or source column not found");if(w===g){p();return}if(v.limit&&v.cards.length>=v.limit)throw new Error(`Column "${v.title}" has reached its limit of ${v.limit} cards`);e==null||e(l,w,g),a==null||a(l,T.title,v.title)}catch(l){r==null||r(l instanceof Error?l:new Error("Drop failed"))}finally{p()}},[n,C,e,r,p,a]),y=u.useCallback(()=>{i.current&&(document.body.removeChild(i.current),i.current=null),p()},[p]),Q=u.useCallback(D=>{const g=D.target.closest(".kanban-container");if(!g)return;const l=g.getBoundingClientRect(),w=D.clientX-l.left,v=l.width;let T=0;if(w<Br?T=-Mr:w>v-Br&&(T=Mr),T!==0){m.current&&clearTimeout(m.current);const $=()=>{g.scrollLeft+=T,m.current=setTimeout($,16)};m.current=setTimeout($,100)}else m.current&&(clearTimeout(m.current),m.current=null)},[]),Y=u.useCallback((D,g)=>{if(!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter","Space","Escape"].includes(D.key))return;D.preventDefault();const l=I(g._id);if(!l)return;const{column:w}=l,v=t.findIndex(T=>T._id===w._id);try{switch(D.key){case"ArrowLeft":if(v>0){const T=t[v-1];e==null||e(g,w._id,T._id),a==null||a(g,w.title,T.title)}break;case"ArrowRight":if(v<t.length-1){const T=t[v+1];e==null||e(g,w._id,T._id),a==null||a(g,w.title,T.title)}break;case"ArrowUp":a==null||a(g,"current position","position above");break;case"ArrowDown":a==null||a(g,"current position","position below");break;case"Enter":case"Space":a==null||a(g,w.title,"drag mode");break;case"Escape":a==null||a(g,"drag mode","cancelled");break}}catch(T){r==null||r(T instanceof Error?T:new Error("Keyboard navigation failed"))}},[I,t,e,r,a]),z=u.useCallback((D,g)=>{const l=D.touches[0];d.current={x:l.clientX,y:l.clientY,card:g}},[]),q=u.useCallback(D=>{if(!d.current)return;const g=D.touches[0],l=Math.abs(g.clientX-d.current.x),w=Math.abs(g.clientY-d.current.y);if(l>Ur||w>Ur){const v=d.current.card,T=C(v.columnId);if(!T)return;s({isDragging:!0,draggedCard:v,dragOverColumn:null,dragOverPosition:null,dragSourceColumn:T._id}),a==null||a(v,T.title,"being moved")}},[C,a]),te=u.useCallback(D=>{if(!n.isDragging||!n.draggedCard||!d.current){d.current=null;return}try{const g=D.changedTouches[0],l=document.elementFromPoint(g.clientX,g.clientY),w=l==null?void 0:l.closest("[data-column-id]");if(w){const v=w.dataset.columnId,T=n.draggedCard,$=n.dragSourceColumn,M=C(v),J=C($);if(M&&J&&$!==v){if(M.limit&&M.cards.length>=M.limit)throw new Error(`Column "${M.title}" has reached its limit of ${M.limit} cards`);e==null||e(T,$,v),a==null||a(T,J.title,M.title)}}}catch(g){r==null||r(g instanceof Error?g:new Error("Touch drop failed"))}finally{d.current=null,p()}},[n,C,e,r,p,a]),ae=u.useCallback((D,g,l)=>{const w=`Moved "${D.title}" from ${g} to ${l}`,v=document.createElement("div");v.setAttribute("aria-live","polite"),v.setAttribute("aria-atomic","true"),v.className="sr-only",v.textContent=w,document.body.appendChild(v),setTimeout(()=>{document.body.removeChild(v)},1e3),console.log(`Kanban: ${w}`)},[]);return u.useEffect(()=>()=>{m.current&&clearTimeout(m.current),i.current&&document.body.contains(i.current)&&document.body.removeChild(i.current)},[]),{isDragging:n.isDragging,draggedCard:n.draggedCard,dragOverColumn:n.dragOverColumn,dragOverPosition:n.dragOverPosition,dragSourceColumn:n.dragSourceColumn,handleDragStart:P,handleDragOver:A,handleDrop:H,handleDragEnd:y,handleKeyDown:Y,handleTouchStart:z,handleTouchMove:q,handleTouchEnd:te,announceMove:a||ae,reset:p}}function zn(e){var Ve,He,Qe;const{columns:r,cardSource:t,source:a,enableDragDrop:n=!0,cardFieldDefinitions:s,initialState:i,onCardMove:m,onCardCreate:d,onCardUpdate:p,onCardDelete:C,onError:I,onFilterError:P}=e,A=a||t;if(!A)throw new Error('useKanban requires either "source" or "cardSource" parameter');const[H,y]=u.useState({query:(i==null?void 0:i.search)||""}),[Q]=u.useState({field:((Ve=i==null?void 0:i.sorting)==null?void 0:Ve.field)||null,direction:((He=i==null?void 0:i.sorting)==null?void 0:He.direction)||null}),[Y,z]=u.useState(()=>{const f={};return r.forEach(E=>{f[E.id]=10}),f}),q=u.useRef(I),te=u.useRef(m),ae=u.useRef(d),D=u.useRef(p),g=u.useRef(C);u.useEffect(()=>{q.current=I,te.current=m,ae.current=d,D.current=p,g.current=C},[I,m,d,p,C]);const l=Ne.useQueryClient(),w=kr({initialConditions:i==null?void 0:i.filters,initialLogicalOperator:(i==null?void 0:i.filterOperator)||"And",fieldDefinitions:s,validateOnChange:!0,onValidationError:P}),v=u.useCallback(f=>{const E={LHSField:"columnId",Operator:"EQ",RHSValue:f,RHSType:"Constant"},c=w.filterPayload;let b;c?c.Operator==="And"?b={...c,Condition:[...c.Condition||[],E]}:b={Operator:"And",Condition:[c,E]}:b={Operator:"And",Condition:[E]};const k={Page:1,PageSize:Y[f]||10,Filter:b};return Q.field&&Q.direction?k.Sort=[{[String(Q.field)]:Q.direction==="asc"?"ASC":"DESC"},{position:"ASC"}]:k.Sort=[{columnId:"ASC"},{position:"ASC"}],H.query&&(k.Search=H.query),k},[w.filterPayload,Y,Q,H.query]),T=Ne.useQueries({queries:r.map(f=>{const E=v(f.id);return{queryKey:["kanban-cards",A,f.id,E],queryFn:async()=>{try{return await Ce(A).list(E)}catch(c){throw c}},placeholderData:Ne.keepPreviousData,staleTime:30*1e3}})}),$=T.some(f=>f.isLoading),M=T.some(f=>f.isFetching),J=((Qe=T.find(f=>f.error))==null?void 0:Qe.error)||null,ee=async()=>{await Promise.all(T.map(f=>f.refetch()))},se=u.useMemo(()=>{const f={};return H.query&&(f.Search=H.query),w.filterPayload&&(f.Filter=w.filterPayload),f},[H.query,w.filterPayload]),{data:ne,isLoading:R,error:fe}=Ne.useQuery({queryKey:["kanban-count",A,se],queryFn:async()=>{try{return await Ce(A).count(se)}catch(f){throw q.current&&q.current(f),f}},staleTime:30*1e3,gcTime:60*1e3}),Oe=Ne.useMutation({mutationFn:async f=>{const E=f.position??999999;return(await Ce(A).create({...f,position:E}))._id},onMutate:async f=>{const E=f.columnId,c=v(E),b=["kanban-cards",A,E,c];await l.cancelQueries({queryKey:b});const k=l.getQueryData(b);if(k){const K=k.Data,j=f.position??K.length,G=`temp-${Date.now()}`,oe={...f,_id:G,position:j,_created_at:new Date,_modified_at:new Date};l.setQueryData(b,{...k,Data:[...k.Data,oe]})}return{previousCards:k,queryKey:b}},onSuccess:async(f,E,c)=>{var b;c!=null&&c.queryKey&&await l.invalidateQueries({queryKey:c.queryKey}),(b=ae.current)==null||b.call(ae,{_id:f,...E})},onError:(f,E,c)=>{var b;c!=null&&c.previousCards&&(c!=null&&c.queryKey)&&l.setQueryData(c.queryKey,c.previousCards),(b=q.current)==null||b.call(q,f)},onSettled:(f,E,c)=>{const b=c.columnId,k=v(b);l.invalidateQueries({queryKey:["kanban-cards",A,b,k]})}}),pe=Ne.useMutation({mutationFn:async({id:f,updates:E})=>(await Ce(A).update(f,E),{id:f,updates:E}),onMutate:async()=>(await l.cancelQueries({queryKey:["kanban-cards",A]}),{}),onSuccess:async f=>{var E;(E=D.current)==null||E.call(D,{_id:f.id,...f.updates})},onError:(f,E,c)=>{var b;(b=q.current)==null||b.call(q,f)},onSettled:()=>{l.invalidateQueries({queryKey:["kanban-cards",A]})}}),ve=Ne.useMutation({mutationFn:async f=>(await Ce(A).delete(f),f),onMutate:async()=>(await l.cancelQueries({queryKey:["kanban-cards",A]}),{}),onSuccess:async f=>{var E;(E=g.current)==null||E.call(g,f)},onError:(f,E,c)=>{var b;(b=q.current)==null||b.call(q,f)},onSettled:()=>{l.invalidateQueries({queryKey:["kanban-cards",A]})}}),N=Ne.useMutation({mutationFn:async({cardId:f,fromColumnId:E,toColumnId:c,position:b})=>{const k={columnId:c,...b!==void 0&&{position:b}};return await Ce(A).update(f,k),{cardId:f,fromColumnId:E,toColumnId:c,position:b}},onMutate:async({cardId:f,fromColumnId:E,toColumnId:c,position:b})=>{const k=v(E),K=v(c),j=["kanban-cards",A,E,k],G=["kanban-cards",A,c,K];await l.cancelQueries({queryKey:j}),await l.cancelQueries({queryKey:G});const oe=l.getQueryData(j),ce=l.getQueryData(G);if(oe&&ce){const Re=oe.Data.find(Fe=>Fe._id===f);if(Re){const Fe={...oe,Data:oe.Data.filter(he=>he._id!==f)},je={...Re,columnId:c,position:b??ce.Data.length,_modified_at:new Date},ue={...ce,Data:[...ce.Data,je].sort((he,Ye)=>he.position-Ye.position)};l.setQueryData(j,Fe),l.setQueryData(G,ue)}}return{previousFromData:oe,previousToData:ce,fromQueryKey:j,toQueryKey:G,fromColumnId:E,toColumnId:c}},onSuccess:async f=>{var E;(E=te.current)==null||E.call(te,{_id:f.cardId},f.fromColumnId,f.toColumnId)},onError:(f,E,c)=>{var b;c!=null&&c.previousFromData&&(c!=null&&c.fromQueryKey)&&l.setQueryData(c.fromQueryKey,c.previousFromData),c!=null&&c.previousToData&&(c!=null&&c.toQueryKey)&&l.setQueryData(c.toQueryKey,c.previousToData),(b=q.current)==null||b.call(q,f)},onSettled:(f,E,c)=>{const b=v(c.fromColumnId),k=v(c.toColumnId);l.invalidateQueries({queryKey:["kanban-cards",A,c.fromColumnId,b]}),l.invalidateQueries({queryKey:["kanban-cards",A,c.toColumnId,k]})}}),Z=Ne.useMutation({mutationFn:async({cardIds:f,columnId:E})=>{const c=f.map((b,k)=>({id:b,position:k,columnId:E}));await Promise.all(c.map(b=>Ce(A).update(b.id,{position:b.position,columnId:b.columnId})))},onMutate:async({columnId:f})=>{const E=v(f),c=["kanban-cards",A,f,E];return await l.cancelQueries({queryKey:c}),{}},onSuccess:()=>{},onError:(f,E,c)=>{var b;(b=q.current)==null||b.call(q,f)},onSettled:(f,E,c)=>{const b=v(c.columnId);l.invalidateQueries({queryKey:["kanban-cards",A,c.columnId,b]})}}),Ee=u.useCallback(async(f,E,c)=>{try{await N.mutateAsync({cardId:f._id,fromColumnId:E,toColumnId:c,position:void 0})}catch{}},[N]),me=u.useMemo(()=>r.sort((f,E)=>f.position-E.position).map((f,E)=>{var k;const b=((k=T[E].data)==null?void 0:k.Data)||[];return{_id:f.id,title:f.title,position:f.position,color:f.color,limit:f.limit,cards:b.sort((K,j)=>K.position-j.position),_created_at:new Date,_modified_at:new Date}}),[r,T]),V=Un({onCardMove:Ee,onError:q.current,columns:me,announceMove:(f,E,c)=>{console.log(`Kanban: Moved "${f.title}" from ${E} to ${c}`)}}),Se=u.useCallback(f=>{var E,c;return{draggable:!0,role:"option","aria-selected":n&&((E=V.draggedCard)==null?void 0:E._id)===f._id,"aria-grabbed":n&&((c=V.draggedCard)==null?void 0:c._id)===f._id,onDragStart:b=>{if(!n)return;b.dataTransfer.setData("text/plain",JSON.stringify(f));const k=b.nativeEvent||b;V.handleDragStart(k,f)},onDragEnd:V.handleDragEnd,onKeyDown:b=>{if(!n)return;const k=b.nativeEvent||b;V.handleKeyDown(k,f)}}},[n,V]),be=u.useCallback(f=>({"data-column-id":f,role:"listbox",onDragOver:E=>{if(!n)return;const c=E.nativeEvent||E;V.handleDragOver(c,f)},onDrop:E=>{if(!n)return;const c=E.nativeEvent||E;V.handleDrop(c,f)}}),[n,V]),ge=u.useCallback(f=>{y({query:f})},[]),Te=u.useCallback(()=>{y({query:""})},[]),ke=(ne==null?void 0:ne.Count)||0,$e=$||R,F=M,re=Oe.isPending||pe.isPending||ve.isPending||N.isPending||Z.isPending,ye=J||fe,Ge=u.useCallback(async()=>{await ee()},[ee]),Me=u.useCallback(async()=>{await l.invalidateQueries({predicate:f=>f.queryKey[0]==="kanban-cards"||f.queryKey[0]==="kanban-count"})},[l]);return u.useEffect(()=>{ye&&q.current&&q.current(ye)},[ye]),{columns:me,totalCards:ke,isLoading:$e,isFetching:F,isUpdating:re,error:ye,createCard:Oe.mutateAsync,updateCard:u.useCallback(async(f,E)=>{await pe.mutateAsync({id:f,updates:E})},[pe]),deleteCard:u.useCallback(async f=>{await ve.mutateAsync(f)},[ve]),moveCard:u.useCallback(async(f,E,c,b)=>{if(!b){for(const k of me)if(k.cards.find(j=>j._id===f)){b=k._id;break}if(!b)throw new Error(`Card ${f} not found in any column`)}await N.mutateAsync({cardId:f,fromColumnId:b,toColumnId:E,position:c})},[N,me]),reorderCards:u.useCallback(async(f,E)=>{await Z.mutateAsync({cardIds:f,columnId:E})},[Z]),searchQuery:H.query,setSearchQuery:ge,clearSearch:Te,filter:w,isDragging:n?V.isDragging:!1,draggedCard:n?V.draggedCard:null,dragOverColumn:n?V.dragOverColumn:null,handleDragStart:n?V.handleDragStart:()=>{},handleDragOver:n?V.handleDragOver:()=>{},handleDrop:n?V.handleDrop:()=>{},handleDragEnd:n?V.handleDragEnd:()=>{},handleKeyDown:n?V.handleKeyDown:()=>{},getCardProps:n?Se:f=>({}),getColumnProps:n?be:f=>({}),loadMore:u.useCallback(f=>{z(E=>({...E,[f]:(E[f]||10)+10}))},[]),refetch:Ge,refresh:Me}}u.createContext(null);var Cr={exports:{}},ar={};/**
|
|
17
|
+
* @license React
|
|
18
|
+
* react-jsx-runtime.production.min.js
|
|
19
|
+
*
|
|
20
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
21
|
+
*
|
|
22
|
+
* This source code is licensed under the MIT license found in the
|
|
23
|
+
* LICENSE file in the root directory of this source tree.
|
|
24
|
+
*/var zr;function Kn(){if(zr)return ar;zr=1;var e=u,r=Symbol.for("react.element"),t=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,n=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function i(m,d,p){var C,I={},P=null,A=null;p!==void 0&&(P=""+p),d.key!==void 0&&(P=""+d.key),d.ref!==void 0&&(A=d.ref);for(C in d)a.call(d,C)&&!s.hasOwnProperty(C)&&(I[C]=d[C]);if(m&&m.defaultProps)for(C in d=m.defaultProps,d)I[C]===void 0&&(I[C]=d[C]);return{$$typeof:r,type:m,key:P,ref:A,props:I,_owner:n.current}}return ar.Fragment=t,ar.jsx=i,ar.jsxs=i,ar}var nr={};/**
|
|
25
|
+
* @license React
|
|
26
|
+
* react-jsx-runtime.development.js
|
|
27
|
+
*
|
|
28
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
29
|
+
*
|
|
30
|
+
* This source code is licensed under the MIT license found in the
|
|
31
|
+
* LICENSE file in the root directory of this source tree.
|
|
32
|
+
*/var Kr;function Gn(){return Kr||(Kr=1,process.env.NODE_ENV!=="production"&&function(){var e=u,r=Symbol.for("react.element"),t=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),m=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),C=Symbol.for("react.suspense_list"),I=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),A=Symbol.for("react.offscreen"),H=Symbol.iterator,y="@@iterator";function Q(o){if(o===null||typeof o!="object")return null;var h=H&&o[H]||o[y];return typeof h=="function"?h:null}var Y=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function z(o){{for(var h=arguments.length,S=new Array(h>1?h-1:0),_=1;_<h;_++)S[_-1]=arguments[_];q("error",o,S)}}function q(o,h,S){{var _=Y.ReactDebugCurrentFrame,W=_.getStackAddendum();W!==""&&(h+="%s",S=S.concat([W]));var X=S.map(function(U){return String(U)});X.unshift("Warning: "+h),Function.prototype.apply.call(console[o],console,X)}}var te=!1,ae=!1,D=!1,g=!1,l=!1,w;w=Symbol.for("react.module.reference");function v(o){return!!(typeof o=="string"||typeof o=="function"||o===a||o===s||l||o===n||o===p||o===C||g||o===A||te||ae||D||typeof o=="object"&&o!==null&&(o.$$typeof===P||o.$$typeof===I||o.$$typeof===i||o.$$typeof===m||o.$$typeof===d||o.$$typeof===w||o.getModuleId!==void 0))}function T(o,h,S){var _=o.displayName;if(_)return _;var W=h.displayName||h.name||"";return W!==""?S+"("+W+")":S}function $(o){return o.displayName||"Context"}function M(o){if(o==null)return null;if(typeof o.tag=="number"&&z("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case a:return"Fragment";case t:return"Portal";case s:return"Profiler";case n:return"StrictMode";case p:return"Suspense";case C:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case m:var h=o;return $(h)+".Consumer";case i:var S=o;return $(S._context)+".Provider";case d:return T(o,o.render,"ForwardRef");case I:var _=o.displayName||null;return _!==null?_:M(o.type)||"Memo";case P:{var W=o,X=W._payload,U=W._init;try{return M(U(X))}catch{return null}}}return null}var J=Object.assign,ee=0,se,ne,R,fe,Oe,pe,ve;function N(){}N.__reactDisabledLog=!0;function Z(){{if(ee===0){se=console.log,ne=console.info,R=console.warn,fe=console.error,Oe=console.group,pe=console.groupCollapsed,ve=console.groupEnd;var o={configurable:!0,enumerable:!0,value:N,writable:!0};Object.defineProperties(console,{info:o,log:o,warn:o,error:o,group:o,groupCollapsed:o,groupEnd:o})}ee++}}function Ee(){{if(ee--,ee===0){var o={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:J({},o,{value:se}),info:J({},o,{value:ne}),warn:J({},o,{value:R}),error:J({},o,{value:fe}),group:J({},o,{value:Oe}),groupCollapsed:J({},o,{value:pe}),groupEnd:J({},o,{value:ve})})}ee<0&&z("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var me=Y.ReactCurrentDispatcher,V;function Se(o,h,S){{if(V===void 0)try{throw Error()}catch(W){var _=W.stack.trim().match(/\n( *(at )?)/);V=_&&_[1]||""}return`
|
|
33
|
+
`+V+o}}var be=!1,ge;{var Te=typeof WeakMap=="function"?WeakMap:Map;ge=new Te}function ke(o,h){if(!o||be)return"";{var S=ge.get(o);if(S!==void 0)return S}var _;be=!0;var W=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var X;X=me.current,me.current=null,Z();try{if(h){var U=function(){throw Error()};if(Object.defineProperty(U.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(U,[])}catch(xe){_=xe}Reflect.construct(o,[],U)}else{try{U.call()}catch(xe){_=xe}o.call(U.prototype)}}else{try{throw Error()}catch(xe){_=xe}o()}}catch(xe){if(xe&&_&&typeof xe.stack=="string"){for(var B=xe.stack.split(`
|
|
34
|
+
`),we=_.stack.split(`
|
|
35
|
+
`),ie=B.length-1,le=we.length-1;ie>=1&&le>=0&&B[ie]!==we[le];)le--;for(;ie>=1&&le>=0;ie--,le--)if(B[ie]!==we[le]){if(ie!==1||le!==1)do if(ie--,le--,le<0||B[ie]!==we[le]){var De=`
|
|
36
|
+
`+B[ie].replace(" at new "," at ");return o.displayName&&De.includes("<anonymous>")&&(De=De.replace("<anonymous>",o.displayName)),typeof o=="function"&&ge.set(o,De),De}while(ie>=1&&le>=0);break}}}finally{be=!1,me.current=X,Ee(),Error.prepareStackTrace=W}var Je=o?o.displayName||o.name:"",Ue=Je?Se(Je):"";return typeof o=="function"&&ge.set(o,Ue),Ue}function $e(o,h,S){return ke(o,!1)}function F(o){var h=o.prototype;return!!(h&&h.isReactComponent)}function re(o,h,S){if(o==null)return"";if(typeof o=="function")return ke(o,F(o));if(typeof o=="string")return Se(o);switch(o){case p:return Se("Suspense");case C:return Se("SuspenseList")}if(typeof o=="object")switch(o.$$typeof){case d:return $e(o.render);case I:return re(o.type,h,S);case P:{var _=o,W=_._payload,X=_._init;try{return re(X(W),h,S)}catch{}}}return""}var ye=Object.prototype.hasOwnProperty,Ge={},Me=Y.ReactDebugCurrentFrame;function Ve(o){if(o){var h=o._owner,S=re(o.type,o._source,h?h.type:null);Me.setExtraStackFrame(S)}else Me.setExtraStackFrame(null)}function He(o,h,S,_,W){{var X=Function.call.bind(ye);for(var U in o)if(X(o,U)){var B=void 0;try{if(typeof o[U]!="function"){var we=Error((_||"React class")+": "+S+" type `"+U+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof o[U]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw we.name="Invariant Violation",we}B=o[U](h,U,_,S,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(ie){B=ie}B&&!(B instanceof Error)&&(Ve(W),z("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",_||"React class",S,U,typeof B),Ve(null)),B instanceof Error&&!(B.message in Ge)&&(Ge[B.message]=!0,Ve(W),z("Failed %s type: %s",S,B.message),Ve(null))}}}var Qe=Array.isArray;function f(o){return Qe(o)}function E(o){{var h=typeof Symbol=="function"&&Symbol.toStringTag,S=h&&o[Symbol.toStringTag]||o.constructor.name||"Object";return S}}function c(o){try{return b(o),!1}catch{return!0}}function b(o){return""+o}function k(o){if(c(o))return z("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",E(o)),b(o)}var K=Y.ReactCurrentOwner,j={key:!0,ref:!0,__self:!0,__source:!0},G,oe;function ce(o){if(ye.call(o,"ref")){var h=Object.getOwnPropertyDescriptor(o,"ref").get;if(h&&h.isReactWarning)return!1}return o.ref!==void 0}function Re(o){if(ye.call(o,"key")){var h=Object.getOwnPropertyDescriptor(o,"key").get;if(h&&h.isReactWarning)return!1}return o.key!==void 0}function Fe(o,h){typeof o.ref=="string"&&K.current}function je(o,h){{var S=function(){G||(G=!0,z("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",h))};S.isReactWarning=!0,Object.defineProperty(o,"key",{get:S,configurable:!0})}}function ue(o,h){{var S=function(){oe||(oe=!0,z("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",h))};S.isReactWarning=!0,Object.defineProperty(o,"ref",{get:S,configurable:!0})}}var he=function(o,h,S,_,W,X,U){var B={$$typeof:r,type:o,key:h,ref:S,props:U,_owner:X};return B._store={},Object.defineProperty(B._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(B,"_self",{configurable:!1,enumerable:!1,writable:!1,value:_}),Object.defineProperty(B,"_source",{configurable:!1,enumerable:!1,writable:!1,value:W}),Object.freeze&&(Object.freeze(B.props),Object.freeze(B)),B};function Ye(o,h,S,_,W){{var X,U={},B=null,we=null;S!==void 0&&(k(S),B=""+S),Re(h)&&(k(h.key),B=""+h.key),ce(h)&&(we=h.ref,Fe(h,W));for(X in h)ye.call(h,X)&&!j.hasOwnProperty(X)&&(U[X]=h[X]);if(o&&o.defaultProps){var ie=o.defaultProps;for(X in ie)U[X]===void 0&&(U[X]=ie[X])}if(B||we){var le=typeof o=="function"?o.displayName||o.name||"Unknown":o;B&&je(U,le),we&&ue(U,le)}return he(o,B,we,W,_,K.current,U)}}var sr=Y.ReactCurrentOwner,dr=Y.ReactDebugCurrentFrame;function We(o){if(o){var h=o._owner,S=re(o.type,o._source,h?h.type:null);dr.setExtraStackFrame(S)}else dr.setExtraStackFrame(null)}var fr;fr=!1;function mr(o){return typeof o=="object"&&o!==null&&o.$$typeof===r}function Or(){{if(sr.current){var o=M(sr.current.type);if(o)return`
|
|
37
|
+
|
|
38
|
+
Check the render method of \``+o+"`."}return""}}function Bt(o){return""}var Nr={};function Mt(o){{var h=Or();if(!h){var S=typeof o=="string"?o:o.displayName||o.name;S&&(h=`
|
|
39
|
+
|
|
40
|
+
Check the top-level render call using <`+S+">.")}return h}}function Tr(o,h){{if(!o._store||o._store.validated||o.key!=null)return;o._store.validated=!0;var S=Mt(h);if(Nr[S])return;Nr[S]=!0;var _="";o&&o._owner&&o._owner!==sr.current&&(_=" It was passed a child from "+M(o._owner.type)+"."),We(o),z('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',S,_),We(null)}}function Rr(o,h){{if(typeof o!="object")return;if(f(o))for(var S=0;S<o.length;S++){var _=o[S];mr(_)&&Tr(_,h)}else if(mr(o))o._store&&(o._store.validated=!0);else if(o){var W=Q(o);if(typeof W=="function"&&W!==o.entries)for(var X=W.call(o),U;!(U=X.next()).done;)mr(U.value)&&Tr(U.value,h)}}}function Ut(o){{var h=o.type;if(h==null||typeof h=="string")return;var S;if(typeof h=="function")S=h.propTypes;else if(typeof h=="object"&&(h.$$typeof===d||h.$$typeof===I))S=h.propTypes;else return;if(S){var _=M(h);He(S,o.props,"prop",_,o)}else if(h.PropTypes!==void 0&&!fr){fr=!0;var W=M(h);z("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",W||"Unknown")}typeof h.getDefaultProps=="function"&&!h.getDefaultProps.isReactClassApproved&&z("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function zt(o){{for(var h=Object.keys(o.props),S=0;S<h.length;S++){var _=h[S];if(_!=="children"&&_!=="key"){We(o),z("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",_),We(null);break}}o.ref!==null&&(We(o),z("Invalid attribute `ref` supplied to `React.Fragment`."),We(null))}}var Dr={};function Fr(o,h,S,_,W,X){{var U=v(o);if(!U){var B="";(o===void 0||typeof o=="object"&&o!==null&&Object.keys(o).length===0)&&(B+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var we=Bt();we?B+=we:B+=Or();var ie;o===null?ie="null":f(o)?ie="array":o!==void 0&&o.$$typeof===r?(ie="<"+(M(o.type)||"Unknown")+" />",B=" Did you accidentally export a JSX literal instead of a component?"):ie=typeof o,z("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",ie,B)}var le=Ye(o,h,S,W,X);if(le==null)return le;if(U){var De=h.children;if(De!==void 0)if(_)if(f(De)){for(var Je=0;Je<De.length;Je++)Rr(De[Je],o);Object.freeze&&Object.freeze(De)}else z("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Rr(De,o)}if(ye.call(h,"key")){var Ue=M(o),xe=Object.keys(h).filter(function(Wt){return Wt!=="key"}),pr=xe.length>0?"{key: someKey, "+xe.join(": ..., ")+": ...}":"{key: someKey}";if(!Dr[Ue+pr]){var Yt=xe.length>0?"{"+xe.join(": ..., ")+": ...}":"{}";z(`A props object containing a "key" prop is being spread into JSX:
|
|
41
|
+
let props = %s;
|
|
42
|
+
<%s {...props} />
|
|
43
|
+
React keys must be passed directly to JSX without using spread:
|
|
44
|
+
let props = %s;
|
|
45
|
+
<%s key={someKey} {...props} />`,pr,Ue,Yt,Ue),Dr[Ue+pr]=!0}}return o===a?zt(le):Ut(le),le}}function Kt(o,h,S){return Fr(o,h,S,!0)}function Gt(o,h,S){return Fr(o,h,S,!1)}var Ht=Gt,Qt=Kt;nr.Fragment=a,nr.jsx=Ht,nr.jsxs=Qt}()),nr}process.env.NODE_ENV==="production"?Cr.exports=Kn():Cr.exports=Gn();var Ie=Cr.exports;const At=Pe.forwardRef(({className:e,...r},t)=>Ie.jsx("div",{ref:t,className:Ae("flex h-full flex-grow items-start gap-x-4 overflow-x-auto py-2",e),...r}));At.displayName="Kanban";const Vt=Pe.forwardRef(({className:e,...r},t)=>Ie.jsx("div",{ref:t,className:Ae("flex h-full min-w-[300px] flex-col rounded-lg border bg-gray-50 p-3",e),...r}));Vt.displayName="KanbanColumn";const _t=Pe.forwardRef(({className:e,...r},t)=>Ie.jsx("div",{ref:t,className:Ae("mb-3 flex items-center justify-between",e),...r}));_t.displayName="KanbanColumnHeader";const Pt=Pe.forwardRef(({className:e,...r},t)=>Ie.jsx("h3",{ref:t,className:Ae("text-sm font-semibold text-gray-700",e),...r}));Pt.displayName="KanbanColumnTitle";const It=Pe.forwardRef(({className:e,...r},t)=>Ie.jsx("div",{ref:t,className:Ae("flex-1 space-y-2 overflow-y-auto",e),...r}));It.displayName="KanbanColumnContent";const $t=Pe.forwardRef(({className:e,...r},t)=>Ie.jsx("div",{ref:t,className:Ae("rounded-lg border border-gray-200 bg-white p-3 shadow-sm hover:shadow-md transition-shadow cursor-move",e),...r}));$t.displayName="KanbanCard";const jt=Pe.forwardRef(({className:e,...r},t)=>Ie.jsx("div",{ref:t,className:Ae("font-medium text-gray-900 mb-1",e),...r}));jt.displayName="KanbanCardTitle";const Lt=Pe.forwardRef(({className:e,...r},t)=>Ie.jsx("div",{ref:t,className:Ae("text-sm text-gray-600",e),...r}));Lt.displayName="KanbanCardDescription";const qt=Pe.forwardRef(({className:e,...r},t)=>Ie.jsx("div",{ref:t,className:Ae("mt-3 pt-3 border-t border-gray-200",e),...r}));qt.displayName="KanbanColumnFooter";exports.Kanban=At;exports.KanbanCard=$t;exports.KanbanCardDescription=Lt;exports.KanbanCardTitle=jt;exports.KanbanColumn=Vt;exports.KanbanColumnContent=It;exports.KanbanColumnFooter=qt;exports.KanbanColumnHeader=_t;exports.KanbanColumnTitle=Pt;exports.api=Ce;exports.areFilterPayloadsEqual=sn;exports.buildFilterPayload=kt;exports.buildFilterPayloadFromState=an;exports.cloneFilterPayload=Ot;exports.cn=Ae;exports.createFieldDefinitionsFromSample=tn;exports.decodeDate=sa;exports.decodeDatetime=na;exports.encodeDate=oa;exports.encodeDatetime=aa;exports.filterPayloadToString=on;exports.formatArray=Xr;exports.formatBoolean=Zr;exports.formatCurrency=Hr;exports.formatDate=Qr;exports.formatDateTime=Yr;exports.formatFieldValue=ua;exports.formatJSON=Jr;exports.formatNumber=Wr;exports.formatTextArea=et;exports.getApiBaseUrl=Er;exports.getBdoSchema=Gr;exports.getDefaultFieldDefinition=qe;exports.getDefaultHeaders=vr;exports.listMetadata=ia;exports.mergeFilterPayloads=nn;exports.parseCurrency=la;exports.setApiBaseUrl=ra;exports.setDefaultHeaders=ta;exports.truncateString=ca;exports.useFilter=kr;exports.useForm=Mn;exports.useKanban=zn;exports.useTable=ln;exports.validateBooleanValue=vt;exports.validateCurrencyValue=wt;exports.validateDateValue=yt;exports.validateFilterPayload=xr;exports.validateNumberValue=bt;exports.validateSelectValue=Et;exports.validateStringValue=Ct;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../sdk/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AAGxB,cAAc,OAAO,CAAC;AAGtB,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC"}
|