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.
Files changed (71) hide show
  1. package/dist/_virtual/index15.js +2 -2
  2. package/dist/_virtual/index16.js +2 -2
  3. package/dist/components/Table/index.js +1 -1
  4. package/dist/components/TableChat/components/TableChatRightSection/ChatEditedMessageType/ChatEditedMessageType.d.ts.map +1 -0
  5. package/dist/components/TableChat/components/TableChatRightSection/ChatMessages/ChatMessage.js +1 -1
  6. package/dist/components/TableOld/index.js +1 -1
  7. package/dist/components/TableV36/AdvanceSearchModalItem.d.ts +27 -0
  8. package/dist/components/TableV36/AdvanceSearchModalItem.d.ts.map +1 -0
  9. package/dist/components/TableV36/AdvanceSortModal.d.ts +8 -0
  10. package/dist/components/TableV36/AdvanceSortModal.d.ts.map +1 -0
  11. package/dist/components/TableV36/AdvanceSortModal.js +297 -0
  12. package/dist/components/TableV36/AgGridHeader.d.ts +16 -0
  13. package/dist/components/TableV36/AgGridHeader.d.ts.map +1 -0
  14. package/dist/components/TableV36/AgGridHeader.js +799 -0
  15. package/dist/components/TableV36/CommentsPortal.d.ts +31 -0
  16. package/dist/components/TableV36/CommentsPortal.d.ts.map +1 -0
  17. package/dist/components/TableV36/CommentsPortal.js +362 -0
  18. package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModal.d.ts +13 -0
  19. package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModal.d.ts.map +1 -0
  20. package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModal.js +282 -0
  21. package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModalItem.d.ts +16 -0
  22. package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModalItem.d.ts.map +1 -0
  23. package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModalItem.js +302 -0
  24. package/dist/components/TableV36/NoComments.d.ts +16 -0
  25. package/dist/components/TableV36/NoComments.d.ts.map +1 -0
  26. package/dist/components/TableV36/NoComments.js +237 -0
  27. package/dist/components/TableV36/Table.types.d.ts +89 -0
  28. package/dist/components/TableV36/Table.types.d.ts.map +1 -0
  29. package/dist/components/TableV36/actionBar.d.ts +7 -0
  30. package/dist/components/TableV36/actionBar.d.ts.map +1 -0
  31. package/dist/components/TableV36/actionBar.js +31 -0
  32. package/dist/components/TableV36/advanceSearchModal.d.ts +20 -0
  33. package/dist/components/TableV36/advanceSearchModal.d.ts.map +1 -0
  34. package/dist/components/TableV36/filterUtils.d.ts +133 -0
  35. package/dist/components/TableV36/filterUtils.d.ts.map +1 -0
  36. package/dist/components/TableV36/filterUtils.js +478 -0
  37. package/dist/components/TableV36/index.d.ts +3 -0
  38. package/dist/components/TableV36/index.d.ts.map +1 -0
  39. package/dist/components/TableV36/index.js +1603 -0
  40. package/dist/components/TableV36/mockData.d.ts +39 -0
  41. package/dist/components/TableV36/mockData.d.ts.map +1 -0
  42. package/dist/components/TableV36/tableFunctions.d.ts +63 -0
  43. package/dist/components/TableV36/tableFunctions.d.ts.map +1 -0
  44. package/dist/components/TableV36/tableFunctions.js +1796 -0
  45. package/dist/components/TableV36/tableHeader.d.ts +80 -0
  46. package/dist/components/TableV36/tableHeader.d.ts.map +1 -0
  47. package/dist/components/TableV36/tableHeader.js +396 -0
  48. package/dist/components/TableV36/tableIcons.d.ts +3 -0
  49. package/dist/components/TableV36/tableIcons.d.ts.map +1 -0
  50. package/dist/components/TableV36/tableMoreOptions.d.ts +52 -0
  51. package/dist/components/TableV36/tableMoreOptions.d.ts.map +1 -0
  52. package/dist/components/TableV36/tableMoreOptions.js +324 -0
  53. package/dist/components/TableV36/tablePagination.d.ts +7 -0
  54. package/dist/components/TableV36/tablePagination.d.ts.map +1 -0
  55. package/dist/components/TableV36/tablePagination.js +67 -0
  56. package/dist/components/TableV36/tableSettings.d.ts +41 -0
  57. package/dist/components/TableV36/tableSettings.d.ts.map +1 -0
  58. package/dist/components/TableV36/tableSettings.js +317 -0
  59. package/dist/components/TableV36/withCommentIcon.d.ts +7 -0
  60. package/dist/components/TableV36/withCommentIcon.d.ts.map +1 -0
  61. package/dist/components/TableV36/withCommentIcon.js +108 -0
  62. package/dist/components/index.d.ts +1 -0
  63. package/dist/components/index.d.ts.map +1 -1
  64. package/dist/components/index.js +2 -0
  65. package/dist/mcp-component-registry.json +1 -1
  66. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
  67. package/dist/node_modules/is-symbol/index.js +1 -1
  68. package/package.json +5 -5
  69. package/dist/components/TableChat/components/TableChatRightSection/ChatEditedMessageType /ChatEditedMessageType.d.ts.map +0 -1
  70. /package/dist/components/TableChat/components/TableChatRightSection/{ChatEditedMessageType → ChatEditedMessageType}/ChatEditedMessageType.d.ts +0 -0
  71. /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(/&nbsp;/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"}