impact-ui 4.0.1-alpha.21 → 4.0.1-alpha.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index15.js +2 -2
- package/dist/_virtual/index16.js +2 -2
- package/dist/components/Table/index.js +1 -1
- package/dist/components/TableChat/components/TableChatRightSection/ChatEditedMessageType/ChatEditedMessageType.d.ts.map +1 -0
- package/dist/components/TableChat/components/TableChatRightSection/ChatMessages/ChatMessage.js +1 -1
- package/dist/components/TableOld/index.js +1 -1
- package/dist/components/TableV36/AdvanceSearchModalItem.d.ts +27 -0
- package/dist/components/TableV36/AdvanceSearchModalItem.d.ts.map +1 -0
- package/dist/components/TableV36/AdvanceSortModal.d.ts +8 -0
- package/dist/components/TableV36/AdvanceSortModal.d.ts.map +1 -0
- package/dist/components/TableV36/AdvanceSortModal.js +297 -0
- package/dist/components/TableV36/AgGridHeader.d.ts +16 -0
- package/dist/components/TableV36/AgGridHeader.d.ts.map +1 -0
- package/dist/components/TableV36/AgGridHeader.js +799 -0
- package/dist/components/TableV36/CommentsPortal.d.ts +31 -0
- package/dist/components/TableV36/CommentsPortal.d.ts.map +1 -0
- package/dist/components/TableV36/CommentsPortal.js +362 -0
- package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModal.d.ts +13 -0
- package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModal.d.ts.map +1 -0
- package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModal.js +282 -0
- package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModalItem.d.ts +16 -0
- package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModalItem.d.ts.map +1 -0
- package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModalItem.js +302 -0
- package/dist/components/TableV36/NoComments.d.ts +16 -0
- package/dist/components/TableV36/NoComments.d.ts.map +1 -0
- package/dist/components/TableV36/NoComments.js +237 -0
- package/dist/components/TableV36/Table.types.d.ts +89 -0
- package/dist/components/TableV36/Table.types.d.ts.map +1 -0
- package/dist/components/TableV36/actionBar.d.ts +7 -0
- package/dist/components/TableV36/actionBar.d.ts.map +1 -0
- package/dist/components/TableV36/actionBar.js +31 -0
- package/dist/components/TableV36/advanceSearchModal.d.ts +20 -0
- package/dist/components/TableV36/advanceSearchModal.d.ts.map +1 -0
- package/dist/components/TableV36/filterUtils.d.ts +133 -0
- package/dist/components/TableV36/filterUtils.d.ts.map +1 -0
- package/dist/components/TableV36/filterUtils.js +478 -0
- package/dist/components/TableV36/index.d.ts +3 -0
- package/dist/components/TableV36/index.d.ts.map +1 -0
- package/dist/components/TableV36/index.js +1603 -0
- package/dist/components/TableV36/mockData.d.ts +39 -0
- package/dist/components/TableV36/mockData.d.ts.map +1 -0
- package/dist/components/TableV36/tableFunctions.d.ts +63 -0
- package/dist/components/TableV36/tableFunctions.d.ts.map +1 -0
- package/dist/components/TableV36/tableFunctions.js +1796 -0
- package/dist/components/TableV36/tableHeader.d.ts +80 -0
- package/dist/components/TableV36/tableHeader.d.ts.map +1 -0
- package/dist/components/TableV36/tableHeader.js +396 -0
- package/dist/components/TableV36/tableIcons.d.ts +3 -0
- package/dist/components/TableV36/tableIcons.d.ts.map +1 -0
- package/dist/components/TableV36/tableMoreOptions.d.ts +52 -0
- package/dist/components/TableV36/tableMoreOptions.d.ts.map +1 -0
- package/dist/components/TableV36/tableMoreOptions.js +324 -0
- package/dist/components/TableV36/tablePagination.d.ts +7 -0
- package/dist/components/TableV36/tablePagination.d.ts.map +1 -0
- package/dist/components/TableV36/tablePagination.js +67 -0
- package/dist/components/TableV36/tableSettings.d.ts +41 -0
- package/dist/components/TableV36/tableSettings.d.ts.map +1 -0
- package/dist/components/TableV36/tableSettings.js +317 -0
- package/dist/components/TableV36/withCommentIcon.d.ts +7 -0
- package/dist/components/TableV36/withCommentIcon.d.ts.map +1 -0
- package/dist/components/TableV36/withCommentIcon.js +108 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/mcp-component-registry.json +1 -1
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/is-symbol/index.js +1 -1
- package/package.json +5 -5
- package/dist/components/TableChat/components/TableChatRightSection/ChatEditedMessageType /ChatEditedMessageType.d.ts.map +0 -1
- /package/dist/components/TableChat/components/TableChatRightSection/{ChatEditedMessageType → ChatEditedMessageType}/ChatEditedMessageType.d.ts +0 -0
- /package/dist/components/TableChat/components/TableChatRightSection/{ChatEditedMessageType → ChatEditedMessageType}/ChatEditedMessageType.js +0 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useRef, useCallback, useEffect } from "react";
|
|
3
|
+
import { getAssetUrl } from "../../utils/assetBase.js";
|
|
4
|
+
import { Button } from "../Button/index.js";
|
|
5
|
+
import { MentionEditor } from "../common/MentionEditor/index.js";
|
|
6
|
+
const ChatBotSendIcon = (props) => /* @__PURE__ */ jsx("img", { alt: "", src: getAssetUrl("icons/comment-send.svg"), ...props });
|
|
7
|
+
const extractMentionedUsers = (editorJSON) => {
|
|
8
|
+
const mentionedUsers = [];
|
|
9
|
+
const traverseNodes = (node) => {
|
|
10
|
+
if (node.type === "mention" && node.attrs) {
|
|
11
|
+
const user = {
|
|
12
|
+
id: node.attrs.id,
|
|
13
|
+
name: node.attrs.label || node.attrs.name,
|
|
14
|
+
...node.attrs.avatar && { avatar: node.attrs.avatar },
|
|
15
|
+
...node.attrs.status && { status: node.attrs.status }
|
|
16
|
+
};
|
|
17
|
+
if (!mentionedUsers.find((u) => u.id === user.id)) {
|
|
18
|
+
mentionedUsers.push(user);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (node.content && Array.isArray(node.content)) {
|
|
22
|
+
node.content.forEach(traverseNodes);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
if (editorJSON == null ? void 0 : editorJSON.content) {
|
|
26
|
+
editorJSON.content.forEach(traverseNodes);
|
|
27
|
+
}
|
|
28
|
+
return mentionedUsers;
|
|
29
|
+
};
|
|
30
|
+
const NoComments = ({
|
|
31
|
+
onAddComment,
|
|
32
|
+
cellId,
|
|
33
|
+
position,
|
|
34
|
+
isInsidePortal = false,
|
|
35
|
+
editCommentText = "",
|
|
36
|
+
isLoading = false,
|
|
37
|
+
error = null,
|
|
38
|
+
onClearError,
|
|
39
|
+
isEditFlow,
|
|
40
|
+
onUpdateComment,
|
|
41
|
+
setEditingComment,
|
|
42
|
+
loadParticipantsAvatar
|
|
43
|
+
}) => {
|
|
44
|
+
const [inputValue, setInputValue] = useState(editCommentText);
|
|
45
|
+
useRef(null);
|
|
46
|
+
const [isFixed, setIsFixed] = useState(false);
|
|
47
|
+
const [isScrollable, setIsScrollable] = useState(false);
|
|
48
|
+
const [height, setHeight] = useState("auto");
|
|
49
|
+
const [isMultiLine, setIsMultiLine] = useState(false);
|
|
50
|
+
const editorRef = useRef(null);
|
|
51
|
+
const prevHeightRef = useRef(null);
|
|
52
|
+
useRef(false);
|
|
53
|
+
const checkMultiLineContent = useCallback(() => {
|
|
54
|
+
var _a;
|
|
55
|
+
if (!((_a = editorRef.current) == null ? void 0 : _a.editor)) return;
|
|
56
|
+
try {
|
|
57
|
+
const editorElement = editorRef.current.editor.view.dom;
|
|
58
|
+
if (!editorElement) return;
|
|
59
|
+
const computedStyle = window.getComputedStyle(editorElement);
|
|
60
|
+
const lineHeight = parseFloat(computedStyle.lineHeight) || 20;
|
|
61
|
+
const actualHeight = editorElement.scrollHeight;
|
|
62
|
+
const isContentMultiLine = actualHeight > lineHeight * 1.5;
|
|
63
|
+
setIsMultiLine(isContentMultiLine);
|
|
64
|
+
} catch (error2) {
|
|
65
|
+
console.warn("Error checking multi-line content:", error2);
|
|
66
|
+
}
|
|
67
|
+
}, []);
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
if (inputValue === "") {
|
|
70
|
+
setIsFixed(false);
|
|
71
|
+
setIsScrollable(false);
|
|
72
|
+
prevHeightRef.current = null;
|
|
73
|
+
}
|
|
74
|
+
}, [inputValue]);
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
if (editCommentText === null) {
|
|
77
|
+
setInputValue("");
|
|
78
|
+
} else {
|
|
79
|
+
setInputValue(editCommentText);
|
|
80
|
+
}
|
|
81
|
+
}, [editCommentText]);
|
|
82
|
+
useEffect(() => {
|
|
83
|
+
let cellElement = null;
|
|
84
|
+
let styleElement = null;
|
|
85
|
+
const timer = setTimeout(() => {
|
|
86
|
+
var _a, _b;
|
|
87
|
+
if ((_a = editorRef.current) == null ? void 0 : _a.focus) {
|
|
88
|
+
cellElement = document.querySelector(".ag-cell-focus");
|
|
89
|
+
if (cellElement) {
|
|
90
|
+
const rowIndex = (_b = cellElement.closest(".ag-row")) == null ? void 0 : _b.getAttribute("row-index");
|
|
91
|
+
const colId = cellElement.getAttribute("col-id");
|
|
92
|
+
if (rowIndex && colId) {
|
|
93
|
+
const customCSS = `
|
|
94
|
+
.ag-row[row-index="${rowIndex}"] .ag-cell[col-id="${colId}"]:after {
|
|
95
|
+
content: " ";
|
|
96
|
+
position: absolute;
|
|
97
|
+
top: 0;
|
|
98
|
+
bottom: 0;
|
|
99
|
+
width: 3px;
|
|
100
|
+
background: #4259ee;
|
|
101
|
+
left: 0;
|
|
102
|
+
}
|
|
103
|
+
`;
|
|
104
|
+
styleElement = document.createElement("style");
|
|
105
|
+
styleElement.textContent = customCSS;
|
|
106
|
+
styleElement.setAttribute("data-comment-focus", "true");
|
|
107
|
+
document.head.appendChild(styleElement);
|
|
108
|
+
cellElement.setAttribute("data-comment-focused", "true");
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
editorRef.current.focus({ preventScroll: true });
|
|
112
|
+
}
|
|
113
|
+
}, 50);
|
|
114
|
+
return () => {
|
|
115
|
+
clearTimeout(timer);
|
|
116
|
+
if (styleElement) {
|
|
117
|
+
document.head.removeChild(styleElement);
|
|
118
|
+
}
|
|
119
|
+
if (cellElement) {
|
|
120
|
+
cellElement.removeAttribute("data-comment-focused");
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
}, []);
|
|
124
|
+
const handleAddComment = (e) => {
|
|
125
|
+
var _a;
|
|
126
|
+
e.stopPropagation();
|
|
127
|
+
if (inputValue.trim() && !isLoading) {
|
|
128
|
+
let taggedUsers = [];
|
|
129
|
+
try {
|
|
130
|
+
if ((_a = editorRef.current) == null ? void 0 : _a.editor) {
|
|
131
|
+
const editorJSON = editorRef.current.editor.getJSON();
|
|
132
|
+
taggedUsers = extractMentionedUsers(editorJSON);
|
|
133
|
+
}
|
|
134
|
+
} catch (error2) {
|
|
135
|
+
console.warn("Error extracting mentioned users:", error2);
|
|
136
|
+
}
|
|
137
|
+
onAddComment(cellId, inputValue, taggedUsers);
|
|
138
|
+
setInputValue("");
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
const handleInputChange = (e) => {
|
|
142
|
+
setInputValue(e);
|
|
143
|
+
if (error && onClearError) {
|
|
144
|
+
onClearError();
|
|
145
|
+
}
|
|
146
|
+
setTimeout(() => {
|
|
147
|
+
checkMultiLineContent();
|
|
148
|
+
}, 0);
|
|
149
|
+
};
|
|
150
|
+
return /* @__PURE__ */ jsxs(
|
|
151
|
+
"div",
|
|
152
|
+
{
|
|
153
|
+
className: `no-comments-container ${isInsidePortal ? "in-portal" : "as-banner"} ${isFixed ? "stacked" : ""} ${!isFixed || inputValue === "" ? "empty" : ""} ${!isFixed ? "single-line-textarea" : ""}`,
|
|
154
|
+
style: !isInsidePortal ? {
|
|
155
|
+
top: position == null ? void 0 : position.top,
|
|
156
|
+
left: position == null ? void 0 : position.left,
|
|
157
|
+
maxHeight: "182px"
|
|
158
|
+
// Match chat-input-wrapper max-height
|
|
159
|
+
} : {
|
|
160
|
+
gap: "10px",
|
|
161
|
+
maxHeight: "182px"
|
|
162
|
+
},
|
|
163
|
+
onClick: (e) => {
|
|
164
|
+
e.stopPropagation();
|
|
165
|
+
},
|
|
166
|
+
children: [
|
|
167
|
+
/* @__PURE__ */ jsxs(
|
|
168
|
+
"div",
|
|
169
|
+
{
|
|
170
|
+
className: "comment-input-wrapper",
|
|
171
|
+
style: {
|
|
172
|
+
flexDirection: isMultiLine ? "column" : "row",
|
|
173
|
+
gap: isMultiLine ? "8px" : "0"
|
|
174
|
+
},
|
|
175
|
+
children: [
|
|
176
|
+
/* @__PURE__ */ jsx(
|
|
177
|
+
MentionEditor,
|
|
178
|
+
{
|
|
179
|
+
ref: editorRef,
|
|
180
|
+
chatId: cellId,
|
|
181
|
+
disabled: isLoading,
|
|
182
|
+
isMultiLine,
|
|
183
|
+
loadParticipantsAvatar,
|
|
184
|
+
maxLength: 1e3,
|
|
185
|
+
placeholder: "Type message...",
|
|
186
|
+
value: inputValue,
|
|
187
|
+
onChange: handleInputChange,
|
|
188
|
+
onSend: handleAddComment
|
|
189
|
+
}
|
|
190
|
+
),
|
|
191
|
+
!isEditFlow && /* @__PURE__ */ jsx(
|
|
192
|
+
Button,
|
|
193
|
+
{
|
|
194
|
+
disabled: isLoading || !inputValue.replace(/<[^>]*>/g, "").replace(/ /g, " ").trim(),
|
|
195
|
+
icon: /* @__PURE__ */ jsx(ChatBotSendIcon, {}),
|
|
196
|
+
size: "small",
|
|
197
|
+
style: { display: "flex" },
|
|
198
|
+
variant: "primary",
|
|
199
|
+
onClick: handleAddComment
|
|
200
|
+
}
|
|
201
|
+
)
|
|
202
|
+
]
|
|
203
|
+
}
|
|
204
|
+
),
|
|
205
|
+
isEditFlow && /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: "10px" }, children: [
|
|
206
|
+
/* @__PURE__ */ jsx(
|
|
207
|
+
Button,
|
|
208
|
+
{
|
|
209
|
+
disabled: isLoading,
|
|
210
|
+
size: "small",
|
|
211
|
+
variant: "tertiary",
|
|
212
|
+
onClick: () => {
|
|
213
|
+
setInputValue("");
|
|
214
|
+
setEditingComment(null);
|
|
215
|
+
},
|
|
216
|
+
children: "Cancel"
|
|
217
|
+
}
|
|
218
|
+
),
|
|
219
|
+
/* @__PURE__ */ jsx(
|
|
220
|
+
Button,
|
|
221
|
+
{
|
|
222
|
+
disabled: isLoading,
|
|
223
|
+
loading: isLoading,
|
|
224
|
+
size: "small",
|
|
225
|
+
variant: "primary",
|
|
226
|
+
onClick: () => onUpdateComment(inputValue),
|
|
227
|
+
children: "Save"
|
|
228
|
+
}
|
|
229
|
+
)
|
|
230
|
+
] })
|
|
231
|
+
]
|
|
232
|
+
}
|
|
233
|
+
);
|
|
234
|
+
};
|
|
235
|
+
export {
|
|
236
|
+
NoComments as default
|
|
237
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { GetRowIdFunc } from 'ag-grid-community';
|
|
3
|
+
import { AgGridReactProps } from 'ag-grid-react';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* AG Grid v36 Table props.
|
|
7
|
+
*
|
|
8
|
+
* Extends AgGridReactProps from ag-grid-react v36. Consumers migrating from Table (v32)
|
|
9
|
+
* should note:
|
|
10
|
+
* - `enableRangeSelection` → use `cellSelection` (set by TableV36 by default)
|
|
11
|
+
* - ColDef `suppressMenu` → `suppressHeaderMenuButton` (TableV36 still accepts both)
|
|
12
|
+
* - `domLayout` defaults to `"normal"` (enables row virtualization). Consumers who previously
|
|
13
|
+
* relied on the implicit `"autoHeight"` behavior must explicitly pass `domLayout="autoHeight"`.
|
|
14
|
+
* Note: `"autoHeight"` disables row virtualization.
|
|
15
|
+
* - `animateRows` defaults to `false` for performance (sorting/grouping row animations off).
|
|
16
|
+
* Pass `animateRows={true}` to restore animations.
|
|
17
|
+
* - Provide `getRowId` for immutable updates, transactions, selection persistence, and
|
|
18
|
+
* optimal row refresh. TableV36 does not invent a default (no row-index fallback).
|
|
19
|
+
* - Set `enableValueCache` only when you have expensive `valueGetter`s / immutable updates.
|
|
20
|
+
* - Minimum TypeScript for AG Grid v36 packages is 5.8.3
|
|
21
|
+
*/
|
|
22
|
+
export interface TableProps extends Omit<AgGridReactProps, 'rowHeight'> {
|
|
23
|
+
tableHeader?: string;
|
|
24
|
+
rowHeight?: 'comfort' | 'compact' | number;
|
|
25
|
+
height?: string | number;
|
|
26
|
+
topRightOptions?: ReactNode;
|
|
27
|
+
topLeftOptions?: ReactNode;
|
|
28
|
+
bottomLeftOptions?: ReactNode;
|
|
29
|
+
bottomCenterOptions?: ReactNode;
|
|
30
|
+
cardContainer?: boolean;
|
|
31
|
+
gridId?: string;
|
|
32
|
+
hideTableBody?: boolean;
|
|
33
|
+
onSearchApplyClick?: (filters: unknown[]) => void;
|
|
34
|
+
onPaginationChanged?: (params: unknown) => void;
|
|
35
|
+
viewPoint?: string;
|
|
36
|
+
disableContextualFilter?: boolean;
|
|
37
|
+
disableTableSettings?: boolean;
|
|
38
|
+
showBulkActionBar?: boolean;
|
|
39
|
+
bulkActionBarProps?: {
|
|
40
|
+
actionBarLabel?: string;
|
|
41
|
+
enableSelectAll?: boolean;
|
|
42
|
+
totalRowCount?: number;
|
|
43
|
+
};
|
|
44
|
+
onSelectAllRows?: () => void;
|
|
45
|
+
onClearSelection?: () => void;
|
|
46
|
+
onSortChanged?: (params: unknown) => void;
|
|
47
|
+
advanceSortEnabled?: boolean;
|
|
48
|
+
enableCommentPanel?: boolean;
|
|
49
|
+
isCommentFeatureEnabled?: boolean;
|
|
50
|
+
commentProps?: Record<string, unknown>;
|
|
51
|
+
/**
|
|
52
|
+
* Opt-in AG Grid value cache. Useful with expensive valueGetters and immutable row updates.
|
|
53
|
+
* Default: false (avoids stale cache surprises for unaware consumers).
|
|
54
|
+
*/
|
|
55
|
+
enableValueCache?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Extra rows rendered outside the viewport (AG Grid rowBuffer). Default: 8.
|
|
58
|
+
* Lower values speed initial draw; higher values smooth fast scrolling. Benchmark 5 / 8 / 12.
|
|
59
|
+
*/
|
|
60
|
+
rowBuffer?: number;
|
|
61
|
+
/**
|
|
62
|
+
* When false (default), disables row insert/remove/sort animations for better scroll performance.
|
|
63
|
+
* Set true if you prefer animated sorting/grouping and accept the CPU cost.
|
|
64
|
+
*/
|
|
65
|
+
animateRows?: boolean;
|
|
66
|
+
/** Disable column move animation during drag (smoother with many columns). Default: false. */
|
|
67
|
+
suppressColumnMoveAnimation?: boolean;
|
|
68
|
+
/** Disable row hover highlight (can improve scroll FPS). Default: false. */
|
|
69
|
+
suppressRowHoverHighlight?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Pass-through only — TableV36 does not default to row index.
|
|
72
|
+
* Required for immutable updates, transactions, and selection persistence.
|
|
73
|
+
*/
|
|
74
|
+
getRowId?: GetRowIdFunc;
|
|
75
|
+
/**
|
|
76
|
+
* Debounced callback (200ms) invoked after column move/resize finishes with column state.
|
|
77
|
+
* Prefer this over listening to every `columnMoved` pixel for persistence.
|
|
78
|
+
*/
|
|
79
|
+
onColumnStateChange?: (columnState: unknown[]) => void;
|
|
80
|
+
/**
|
|
81
|
+
* AG Grid `context` — merged with TableV36's internal comment helpers.
|
|
82
|
+
* Your keys are available in cell renderers / value getters via `params.context`.
|
|
83
|
+
* Reserved keys (comments, popup, comment handlers, configuration, colIdentifierKey)
|
|
84
|
+
* are owned by TableV36 when comments are enabled.
|
|
85
|
+
*/
|
|
86
|
+
context?: AgGridReactProps['context'];
|
|
87
|
+
[key: string]: unknown;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=Table.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../src/components/TableV36/Table.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,8FAA8F;IAC9F,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,4EAA4E;IAC5E,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAEvD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAEtC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export default function BulkActionBar({ showBulkActionBar, bulkActionBarProps, onSelectAllRows, onClearSelection, }: {
|
|
2
|
+
showBulkActionBar: any;
|
|
3
|
+
bulkActionBarProps: any;
|
|
4
|
+
onSelectAllRows: any;
|
|
5
|
+
onClearSelection: any;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=actionBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionBar.d.ts","sourceRoot":"","sources":["../../../src/components/TableV36/actionBar.tsx"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB;;;;;CAAA,2CA2BA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import default_1$1 from "../../node_modules/@mui/icons-material/CheckCircle.js";
|
|
3
|
+
import default_1 from "../../node_modules/@mui/icons-material/Info.js";
|
|
4
|
+
function BulkActionBar({
|
|
5
|
+
showBulkActionBar,
|
|
6
|
+
bulkActionBarProps,
|
|
7
|
+
onSelectAllRows,
|
|
8
|
+
onClearSelection
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ jsx(Fragment, { children: showBulkActionBar && /* @__PURE__ */ jsxs("div", { className: "ia-bulk-action-bar", children: [
|
|
11
|
+
/* @__PURE__ */ jsx("span", { className: "icon", children: (bulkActionBarProps == null ? void 0 : bulkActionBarProps.enableSelectAll) ? /* @__PURE__ */ jsx(default_1, {}) : /* @__PURE__ */ jsx(default_1$1, {}) }),
|
|
12
|
+
/* @__PURE__ */ jsx("span", { className: "ia-bulk-action-bar-text", children: bulkActionBarProps == null ? void 0 : bulkActionBarProps.actionBarLabel }),
|
|
13
|
+
/* @__PURE__ */ jsx(
|
|
14
|
+
"span",
|
|
15
|
+
{
|
|
16
|
+
className: "ia-bulk-action-bar-select-text",
|
|
17
|
+
onClick: () => {
|
|
18
|
+
if (bulkActionBarProps == null ? void 0 : bulkActionBarProps.enableSelectAll) {
|
|
19
|
+
onSelectAllRows == null ? void 0 : onSelectAllRows();
|
|
20
|
+
} else {
|
|
21
|
+
onClearSelection == null ? void 0 : onClearSelection();
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
children: (bulkActionBarProps == null ? void 0 : bulkActionBarProps.enableSelectAll) ? `Select all ${bulkActionBarProps.totalRowCount} rows across all pages` : "Clear selection"
|
|
25
|
+
}
|
|
26
|
+
)
|
|
27
|
+
] }) });
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
BulkActionBar as default
|
|
31
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export default function AdvanceSearchModal({ isAdvanceSearch, toggleAdvanceSearch, colDefs, actualRef, currentColumnId, savedAdvanceSearchConfig, setInitialFilters, initialFilters, selectedThirdOptionDropdownValue, setSelectedThirdOptionDropdownValue, draftFilter, setDraftFilter, ...args }: {
|
|
2
|
+
[x: string]: any;
|
|
3
|
+
isAdvanceSearch: any;
|
|
4
|
+
toggleAdvanceSearch: any;
|
|
5
|
+
colDefs: any;
|
|
6
|
+
actualRef: any;
|
|
7
|
+
currentColumnId: any;
|
|
8
|
+
savedAdvanceSearchConfig: any;
|
|
9
|
+
setInitialFilters: any;
|
|
10
|
+
initialFilters?: {
|
|
11
|
+
column: null;
|
|
12
|
+
operation: null;
|
|
13
|
+
value: string;
|
|
14
|
+
}[] | undefined;
|
|
15
|
+
selectedThirdOptionDropdownValue: any;
|
|
16
|
+
setSelectedThirdOptionDropdownValue: any;
|
|
17
|
+
draftFilter: any;
|
|
18
|
+
setDraftFilter: any;
|
|
19
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=advanceSearchModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanceSearchModal.d.ts","sourceRoot":"","sources":["../../../src/components/TableV36/advanceSearchModal.tsx"],"names":[],"mappings":"AAqBA,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,eAAe,EACf,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,cAA+D,EAC/D,gCAAgC,EAChC,mCAAmC,EACnC,WAAW,EACX,cAAc,EACd,GAAG,IAAI,EACR;;;;;;;;;;;;;;;;;;CAAA,2CAorBA"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
export declare const getOperatorListForColumn: (columnDef: any) => any;
|
|
2
|
+
export declare const getDefaultOperationForColumn: (columnDef: any, filter?: null) => any;
|
|
3
|
+
/**
|
|
4
|
+
* Removes special characters from numeric strings
|
|
5
|
+
* Supports: currency symbols ($, €, £, ¥, ₹), commas, spaces, percentages
|
|
6
|
+
* @param {string} value - The value to clean
|
|
7
|
+
* @returns {string} - Cleaned value
|
|
8
|
+
*/
|
|
9
|
+
export declare const cleanNumericValue: (value: any) => any;
|
|
10
|
+
/**
|
|
11
|
+
* Parses a filter value based on the column type and definition
|
|
12
|
+
* @param {*} value - The raw filter value
|
|
13
|
+
* @param {object} columnDef - The column definition from AG Grid
|
|
14
|
+
* @returns {object} - { parsedValue, filterType }
|
|
15
|
+
*/
|
|
16
|
+
export declare const parseFilterValue: (value: any, columnDef: any) => {
|
|
17
|
+
parsedValue: any;
|
|
18
|
+
filterType: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Determines if a column value is a string or number by checking first row data
|
|
22
|
+
* Used to decide between "equals" (numbers) vs "contains" (strings) filter type
|
|
23
|
+
* @param {object} api - AG Grid API
|
|
24
|
+
* @param {string} columnId - Column ID to check
|
|
25
|
+
* @returns {boolean} - true if column contains string values
|
|
26
|
+
*/
|
|
27
|
+
export declare const isColumnDataString: (api: any, columnId: any) => boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Builds a filter model entry for AG Grid
|
|
30
|
+
* Supports all AG Grid filter operators including:
|
|
31
|
+
* - Text: contains, notContains, equals, notEqual, startsWith, endsWith, blank, notBlank
|
|
32
|
+
* - Number: equals, notEqual, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual, blank, notBlank
|
|
33
|
+
* - Date: equals, notEqual, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual, inRange, blank, notBlank
|
|
34
|
+
*
|
|
35
|
+
* @param {*} parsedValue - The parsed filter value
|
|
36
|
+
* @param {string} filterType - The filter type (equals, contains, etc.)
|
|
37
|
+
* @param {object} columnDef - The column definition
|
|
38
|
+
* @param {string} operationType - Optional operation type from advance search
|
|
39
|
+
* @returns {object|undefined} - Filter model entry or undefined if invalid
|
|
40
|
+
*/
|
|
41
|
+
export declare const buildFilterModelEntry: (parsedValue: any, filterType: any, columnDef: any, operationType?: null) => any;
|
|
42
|
+
/**
|
|
43
|
+
* Recursively finds a column definition by field or colId
|
|
44
|
+
* @param {array} colDefs - Array of column definitions
|
|
45
|
+
* @param {string} field - Field or colId to find
|
|
46
|
+
* @returns {object|null} - Column definition or null
|
|
47
|
+
*/
|
|
48
|
+
export declare const findColumnDef: (colDefs: any, field: any) => any;
|
|
49
|
+
/**
|
|
50
|
+
* Applies inline search filter for a single column
|
|
51
|
+
* Handles special logic for number columns with formatted vs raw data
|
|
52
|
+
* @param {*} value - Search value
|
|
53
|
+
* @param {object} columnDef - Column definition
|
|
54
|
+
* @param {object} api - AG Grid API
|
|
55
|
+
* @param {string} columnId - Column ID
|
|
56
|
+
* @returns {object} - { parsedValue, filterType }
|
|
57
|
+
*/
|
|
58
|
+
export declare const parseInlineSearchValue: (value: any, columnDef: any, api: any, columnId: any) => {
|
|
59
|
+
parsedValue: any;
|
|
60
|
+
filterType: string;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Validates if a parsed value is valid for filtering
|
|
64
|
+
* @param {*} parsedValue - The parsed value to validate
|
|
65
|
+
* @returns {boolean} - true if valid
|
|
66
|
+
*/
|
|
67
|
+
export declare const isValidFilterValue: (parsedValue: any) => boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Gets the display label for a column (handles nested/hierarchical columns)
|
|
70
|
+
* @param {string} columnId - The column ID
|
|
71
|
+
* @param {object} columnDef - The column definition
|
|
72
|
+
* @param {array} colDefs - All column definitions
|
|
73
|
+
* @returns {string} - Display label for the column
|
|
74
|
+
*/
|
|
75
|
+
export declare const getColumnLabel: (columnId: any, columnDef: any, colDefs: any) => any;
|
|
76
|
+
/**
|
|
77
|
+
* Validates if a filter in the filter model has a valid value
|
|
78
|
+
* @param {object} filter - Filter object from filter model
|
|
79
|
+
* @returns {boolean} - true if filter has valid value
|
|
80
|
+
*/
|
|
81
|
+
export declare const hasValidFilterValue: (filter: any) => boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Converts AG Grid filter model entry to advance search modal format
|
|
84
|
+
* @param {string} columnId - Column ID
|
|
85
|
+
* @param {object} filter - Filter from filter model
|
|
86
|
+
* @param {object} columnDef - Column definition
|
|
87
|
+
* @param {array} colDefs - All column definitions
|
|
88
|
+
* @returns {object} - Filter in modal format
|
|
89
|
+
*/
|
|
90
|
+
export declare const convertFilterToModalFormat: (columnId: any, filter: any, columnDef: any, colDefs: any) => {
|
|
91
|
+
column: {
|
|
92
|
+
label: any;
|
|
93
|
+
value: any;
|
|
94
|
+
type: any;
|
|
95
|
+
};
|
|
96
|
+
operation: {
|
|
97
|
+
label: any;
|
|
98
|
+
value: any;
|
|
99
|
+
};
|
|
100
|
+
value: any;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Updates existing filters or adds new filter
|
|
104
|
+
* @param {array} existingFilters - Current filters in modal format
|
|
105
|
+
* @param {string} columnId - Column ID being updated
|
|
106
|
+
* @param {*} value - New filter value
|
|
107
|
+
* @param {object} columnDef - Column definition
|
|
108
|
+
* @param {array} colDefs - All column definitions
|
|
109
|
+
* @returns {array} - Updated filters array
|
|
110
|
+
*/
|
|
111
|
+
export declare const updateOrAddFilter: (existingFilters: any, columnId: any, value: any, columnDef: any, colDefs: any) => any;
|
|
112
|
+
/**
|
|
113
|
+
* Syncs AG Grid filter model with advance search modal state
|
|
114
|
+
* Clean, step-by-step approach for better maintainability
|
|
115
|
+
*
|
|
116
|
+
* @param {object} api - AG Grid API
|
|
117
|
+
* @param {string} currentColumnId - Current column being filtered
|
|
118
|
+
* @param {*} inputValue - The filter value
|
|
119
|
+
* @param {object} columnDef - Column definition
|
|
120
|
+
* @param {array} colDefs - All column definitions
|
|
121
|
+
* @param {function} setValue - Form setValue function
|
|
122
|
+
* @param {function} setInitialFilters - Set initial filters function
|
|
123
|
+
* @param {function} getOptionFromDropdownValue - Function to convert dropdown values
|
|
124
|
+
*/
|
|
125
|
+
export declare const syncFiltersWithModal: (api: any, currentColumnId: any, inputValue: any, columnDef: any, colDefs: any, setValue: any, setInitialFilters: any, getOptionFromDropdownValue: any) => void;
|
|
126
|
+
/**
|
|
127
|
+
* Processes advance search filters and builds AG Grid filter model
|
|
128
|
+
* @param {array} formValues - Array of filter objects from form
|
|
129
|
+
* @param {array} colDefs - Column definitions
|
|
130
|
+
* @returns {object} - AG Grid filter model
|
|
131
|
+
*/
|
|
132
|
+
export declare const buildAdvanceSearchFilterModel: (formValues: any, colDefs: any) => {};
|
|
133
|
+
//# sourceMappingURL=filterUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterUtils.d.ts","sourceRoot":"","sources":["../../../src/components/TableV36/filterUtils.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,wBAAwB,GAAI,cAAS,QAoDjD,CAAC;AAGF,eAAO,MAAM,4BAA4B,GAAI,cAAS,EAAE,aAAa,QAyBpE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAK,QAMtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAK,EAAE,cAAS;;;CA4EhD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAG,EAAE,aAAQ,YAQ/C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,GAAI,gBAAW,EAAE,eAAU,EAAE,cAAS,EAAE,oBAAoB,QAsI7F,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,YAAO,EAAE,UAAK,QAoB3C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GAAI,UAAK,EAAE,cAAS,EAAE,QAAG,EAAE,aAAQ;;;CA0ErE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,gBAAW,YAwB7C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,aAAQ,EAAE,cAAS,EAAE,YAAO,QAc1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAM,YAUzC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,GAAI,aAAQ,EAAE,WAAM,EAAE,cAAS,EAAE,YAAO;;;;;;;;;;;CA4C9E,CAAC;AAqGF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,oBAAe,EAAE,aAAQ,EAAE,UAAK,EAAE,cAAS,EAAE,YAAO,QAUrF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAG,EACH,oBAAe,EACf,eAAU,EACV,cAAS,EACT,YAAO,EACP,aAAQ,EACR,sBAAiB,EACjB,+BAA0B,SA2B3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GAAI,eAAU,EAAE,YAAO,OAqChE,CAAC"}
|