From 4fb813fa53915191ef4a7a56511e09d19822766d Mon Sep 17 00:00:00 2001 From: Vigneshwaran-SF4319 <149996230+Vigneshwaran-SF4319@users.noreply.github.com> Date: Thu, 25 Sep 2025 17:54:35 +0530 Subject: [PATCH 1/8] 981174: Add Grid with AI Assist view sample. --- .../grid/assistive-grid/AIModel.tsx | 58 + .../grid/assistive-grid/GridAction.tsx | 67 + .../grid/assistive-grid/assistive-grid.css | 131 ++ .../grid/assistive-grid/assistive-grid.tsx | 172 ++ .../grid/assistive-grid/datasource.tsx | 1902 +++++++++++++++++ .../sales-transactions-table/airpods-pro.png | Bin 0 -> 6524 bytes .../apple-i-watch.png | Bin 0 -> 3766 bytes .../sales-transactions-table/apple-tv-4k.png | Bin 0 -> 4084 bytes .../apple-watch-series-7.png | Bin 0 -> 6646 bytes .../apple-watch-series-8.png | Bin 0 -> 8985 bytes .../sales-transactions-table/homepod-mini.png | Bin 0 -> 4697 bytes .../sales-transactions-table/imac-24.png | Bin 0 -> 6649 bytes .../sales-transactions-table/ipad-air.png | Bin 0 -> 9275 bytes .../sales-transactions-table/iphone-13.png | Bin 0 -> 4871 bytes .../iphone-14-pro-max.png | Bin 0 -> 8777 bytes .../sales-transactions-table/iphone-14.jpg | Bin 0 -> 2819 bytes .../iphone-15-plus.png | Bin 0 -> 7286 bytes .../iphone-15-pro.png | Bin 0 -> 8740 bytes .../iphone-16-promax.png | Bin 0 -> 2751 bytes .../sales-transactions-table/mac-mini.png | Bin 0 -> 1733 bytes .../macbook-air-m2.png | Bin 0 -> 10334 bytes 21 files changed, 2330 insertions(+) create mode 100644 react/src/ai-components/grid/assistive-grid/AIModel.tsx create mode 100644 react/src/ai-components/grid/assistive-grid/GridAction.tsx create mode 100644 react/src/ai-components/grid/assistive-grid/assistive-grid.css create mode 100644 react/src/ai-components/grid/assistive-grid/assistive-grid.tsx create mode 100644 react/src/ai-components/grid/assistive-grid/datasource.tsx create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/airpods-pro.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/apple-i-watch.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/apple-tv-4k.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/apple-watch-series-7.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/apple-watch-series-8.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/homepod-mini.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/imac-24.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/ipad-air.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/iphone-13.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/iphone-14-pro-max.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/iphone-14.jpg create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/iphone-15-plus.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/iphone-15-pro.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/iphone-16-promax.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/mac-mini.png create mode 100644 react/src/ai-components/grid/assistive-grid/sales-transactions-table/macbook-air-m2.png diff --git a/react/src/ai-components/grid/assistive-grid/AIModel.tsx b/react/src/ai-components/grid/assistive-grid/AIModel.tsx new file mode 100644 index 0000000..42d3f7d --- /dev/null +++ b/react/src/ai-components/grid/assistive-grid/AIModel.tsx @@ -0,0 +1,58 @@ +import { getAzureChatAIRequest } from '../../../ai-models'; +import {executeGridAction} from './GridAction'; +// import { serverAIRequest } from '../../../ai-service'; + + +function onPromptExecute(text: string | undefined, gridInstance: any, dialogInstance: any, assistInstance: any, columns: any) { + let textArea = `Convert the following natural language query into a JSON object representing Syncfusion Query operations. + + Rules: + - Output only the JSON object, no extra text. + - Field names must be from: ${JSON.stringify(columns)}. + - Sort direction must be either "Ascending" or "Descending". + + Action Handling: + - Include only the actions explicitly mentioned in the query: filter, sort, page, group, clearFilter, clearSort, clearGroup. + - Operator shold be (startswith, endswith, contains, doesnotstartwith, doesnotendwith, doesnotcontain, equal, notequal, greaterthan, greaterthanorequal, lessthan, lessthanorequal, isnull, isnotnull, isempty, isnotempty, between, in, notin) + - If the query only involves filtering, include only the "filter" key. + - If the query only involves sorting, include only the "sort" key. + - If the query includes a clear action: + - Use 'clearFilter: []' to clear **all filters**. + - Use 'clearSort: []' to clear **all sorting**. + - Use 'clearGroup: []' to clear **all grouping**. + - If the query specifies clearing filters/sorting/grouping for specific fields, include those field names as string arrays: clearFilter: ["field1"], clearSort: ["field2"], clearGroup: ["field3"]. + + Supported Operations: + - filter: array of objects with { field, operator, value (array for "in"/"notin", otherwise single value), ignoreCase } + - sort: array of { field, direction } + - page: object with { pageNumber, pageSize } + - group: array of field names + + Additional Requirement: + - Include a "message" field in the JSON object that explains the query action, referencing the original query text. + + Query: ${text}`; + + let aiOutput = getAzureChatAIRequest({ messages: [{ role: 'user', content: textArea }] }); + aiOutput.then((result: any) => { + if (!result) { + return; + } + let jsonResult = result; + if (result.indexOf("```json") !== -1) { + jsonResult = result.split("```json")[1].split("```")[0].trim(); + } + let data; + try { + data = JSON.parse(jsonResult); + executeGridAction(data, gridInstance); + } catch (error) { + assistInstance.addPromptResponse({ prompt: error, response: error }); + return; + } + assistInstance.addPromptResponse({ prompt: data.message, response: data }); + dialogInstance.hide(); + }); +} + +export {onPromptExecute}; \ No newline at end of file diff --git a/react/src/ai-components/grid/assistive-grid/GridAction.tsx b/react/src/ai-components/grid/assistive-grid/GridAction.tsx new file mode 100644 index 0000000..80f2933 --- /dev/null +++ b/react/src/ai-components/grid/assistive-grid/GridAction.tsx @@ -0,0 +1,67 @@ +import { GridComponent } from '@syncfusion/ej2-react-grids'; +interface Filter { + field: string; + operator: string; + value: any; +} + +interface Sort { + field: string; + direction: 'Ascending' | 'Descending'; +} + +interface Page { + pageNumber: number; + pageSize: number; +} + +interface GridActionData { + filter?: Filter[]; + clearFilter?: string[]; + sort?: Sort[]; + clearSort?: string[]; + page?: Page; + group?: string[]; + clearGroup?: string[]; +} +export const executeGridAction = (data: GridActionData, gridInstance: GridComponent) => { + if (data.filter && data.filter.length) { + data.filter.forEach((filter: Filter) => { + gridInstance.filterByColumn(filter.field, filter.operator, filter.value); + }) + } + if (data.clearFilter) { + if (data.clearFilter.length === 0) { + gridInstance.clearFiltering(); + } else { + gridInstance.clearFiltering(data.clearFilter); + } + } + if (data.sort && data.sort.length) { + data.sort.forEach((sort: Sort) => { + gridInstance.sortColumn(sort.field, sort.direction, true); + }) + } + else if (data.clearSort) { + gridInstance.clearSorting(); + } + if (data.page && data.page.pageNumber && data.page.pageSize) { + gridInstance.goToPage(data.page.pageNumber); + } + if (data.group && data.group.length) { + var groupColumns = [...gridInstance.groupSettings.columns]; + if (groupColumns.indexOf(data.group[0]) === -1) { + gridInstance.groupColumn(data.group[0]); + } + } + if (data.clearGroup) { + if (data.clearGroup.length === 0) { + gridInstance.clearGrouping(); + } else { + var groupColumns = [...gridInstance.groupSettings.columns]; + if (groupColumns.indexOf(data.clearGroup[0]) !== -1) { + gridInstance.ungroupColumn(data.clearGroup[0]); + } + } + } +} \ No newline at end of file diff --git a/react/src/ai-components/grid/assistive-grid/assistive-grid.css b/react/src/ai-components/grid/assistive-grid/assistive-grid.css new file mode 100644 index 0000000..0b6279c --- /dev/null +++ b/react/src/ai-components/grid/assistive-grid/assistive-grid.css @@ -0,0 +1,131 @@ +#ai-grid-aiassistview .response-header .e-assistview-icon:before { + margin-right: 10px; +} + +#ai-grid-aiassistview .responseItemContent { + display: flex; + flex-direction: column; + gap: 10px; + margin-left: 20px +} + +#ai-grid-aiassistview .responseItemContent .response-header { + display: flex; + align-items: center; +} + +#ai-grid-aiassistview .responseItemContent .assist-response-content { + margin-left: 35px; +} + +#ai-grid-aiassistview .responseItemContent .response-header .e-assistview-icon:before { + margin-right: 10px; +} + +#ai-grid-aiassistview .e-response-item-template .e-toolbar-items { + margin-left: 35px; +} + +#ai-grid-aiassistview.e-aiassistview .e-footer { + width: 90%; +} + +#ai-grid-aiassistview.e-aiassistview .e-output-container { + width: 100%; +} +#ai-grid-aiassistview.e-aiassistview .e-content-container .e-content { + overflow-y: auto; +} +#ai-grid-aiassistview .e-response-item-template .e-content-footer, +.e-aiassistview .e-prompt-container { + display: none; +} + +#ai-grid-aiassistview.e-aiassistview .e-view-container { + margin: 0; +} + +#ai-grid .e-badge { + padding: 6px; + width: 70px; +} + +#ai-grid .email { + color: gray; +} + +#ai-grid .product-items { + display: flex; + gap: 0.75rem; + align-items: center; +} +#ai-grid .product-items p { + margin: 0px; +} + + +#ai-assist-dialog .e-suggestions { + max-width: 100%; + padding: 0 0 10px 0; +} + +#ai-assist-dialog .e-suggestion-header { + font-weight: bold; + margin-bottom: 8px; + font-size: 14px; + text-align: left; +} + +#ai-assist-dialog .e-suggestion-list { + display: flex; + flex-wrap: wrap; + gap: 4px; +} + +#ai-assist-dialog .e-suggestion-list ul { + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-wrap: wrap; + gap: 4px; + width: 100%; +} + +#ai-assist-dialog .e-suggestion-list li { + display: inline-block; + padding: 6px 10px; + border-radius: 16px; + font-size: 13px; + cursor: pointer; + white-space: normal; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + margin: 5px 2px; +} + +#ai-assist-dialog .e-suggestion-list li:hover { + background: rgba(28, 27, 31, 0.05); +} + +#dialog-target .e-dialog .e-footer-content { + border-top: 1px solid rgb(209, 213, 219); +} + +.fluent-dark #ai-assist-dialog .e-suggestion-list li, +.fluent2-dark #ai-assist-dialog .e-suggestion-list li, +.tailwind-dark #ai-assist-dialog .e-suggestion-list li, +.material-dark #ai-assist-dialog .e-suggestion-list li, +.bootstrap5\.3-dark #ai-assist-dialog .e-suggestion-list li, +.tailwind3-dark #ai-assist-dialog .e-suggestion-list li, +.tailwind33-dark #ai-assist-dialog .e-suggestion-list li, +.fabric-dark #ai-assist-dialog .e-suggestion-list li, +.bootstrap-dark #ai-assist-dialog .e-suggestion-list li, +.bootstrap4-dark #ai-assist-dialog .e-suggestion-list li, +.bootstrap5-dark #ai-assist-dialog .e-suggestion-list li, +.highcontrast #ai-assist-dialog .e-suggestion-list li { + box-shadow: 0 2px 4px rgb(228 228 228 / 15%); +} + +#ai-grid.e-grid { + margin: 20px; +} \ No newline at end of file diff --git a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx new file mode 100644 index 0000000..3ee0cde --- /dev/null +++ b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx @@ -0,0 +1,172 @@ +import { GridComponent, ColumnsDirective, ColumnDirective, Inject, Toolbar, Sort, Filter, Group, Page, Search, ToolbarItems, FilterSettingsModel } from '@syncfusion/ej2-react-grids'; +import { DialogComponent } from '@syncfusion/ej2-react-popups'; +import { AIAssistViewComponent, ToolbarSettingsModel, PromptRequestEventArgs } from '@syncfusion/ej2-react-interactive-chat'; +import { gadgetsPurchaseData } from './datasource'; +import { createRef } from "react"; +import { onPromptExecute } from './AIModel'; +import './assistive-grid.css'; + +let assistInstance!: AIAssistViewComponent; +let dialogInstance!: DialogComponent; +let gridInstance!:GridComponent; +let suggestionListRef = createRef(); +function AssistiveGrid() { + + /// Toolbar options for Grid with AI Assist button + const toolbarOptions: object[] = [{ tooltipText: 'AI Assist', prefixIcon: 'e-assistview-icon', id: 'ai-assist-btn', align: 'Left' }]; + + /// Handles the Grid toolbar button click action. If the AI Assist button clicked shows the AI Assist dialog. + const toolbarClick = (args: any) => { + if (args.item.id === 'ai-assist-btn') { + const gridRect = gridInstance.element.getBoundingClientRect(); + const toolbarEleRect = document.getElementById('ai-grid_toolbarItems').getBoundingClientRect(); + const targetRect = args.originalEvent.target.closest('.e-toolbar-item').getBoundingClientRect(); + const x = (targetRect.left + targetRect.width) - gridRect.left; + const y = (toolbarEleRect.top + toolbarEleRect.height) - gridRect.top; + dialogInstance.position = { X: x, Y: y }; + dialogInstance.show(); + } + } + + /// Configures toolbar settings for AI assist dialog + const toolbarSettings: ToolbarSettingsModel = { + items: [ + { tooltip: 'Start New Chat', iconCss: 'e-icons e-rename', align: 'Right' }, + { tooltip: 'Clear', iconCss: 'e-icons e-refresh', align: 'Right' }, + { tooltip: 'Close', iconCss: 'e-icons e-icon-dlg-close', align: 'Right' }, + ], + itemClicked: (args) => { + if (args.item.iconCss === 'e-icons e-icon-dlg-close') { + dialogInstance.hide() + } + if (args.item.iconCss === 'e-icons e-rename') { + assistInstance.prompts = []; + } + if (args.item.iconCss === 'e-icons e-refresh') { + assistInstance.prompts = []; + gridInstance.setProperties({ + sortSettings: { columns: [] }, + filterSettings: { columns: [] }, + groupSettings: { columns: [] }, + }); + gridInstance.refresh(); + } + } + }; + + /// Renders response template for AI prompts + const responseTemplate = (props: any) => { + return ( +
+
+ + {props.prompt} +
+
+ ); + }; + + /// Handles prompt request execution + const onPromptRequest = (args: PromptRequestEventArgs) => { + (assistInstance as any).stopResponding.classList.remove('e-btn-active'); + assistInstance.scrollToBottom(); + var columns = gridInstance.columns.map((col: any) => {return {field: col.field}}); + columns.forEach((col: any) => { + if (col.field === 'status') { + col.values = ['Completed', 'Pending', 'Failed', 'Processing']; + } + else if (col.field === 'paymentMethod') { + col.values = ['Cheque', 'Credit Card', 'Paypal', 'Online Transfer']; + } + }) + onPromptExecute(args.prompt, gridInstance, dialogInstance, assistInstance, columns); + }; + + /// Sets up suggestion list click handler + const created = (): void => { + suggestionListRef.current.addEventListener('click', (event: any) => { + if (event.target.tagName === 'LI') { + const clickedPill = event.target; + const pillText = clickedPill.textContent; + assistInstance.executePrompt(pillText); + } + }); + } + + /// Renders footer template with suggestion list + const dialogFooterTemplate = () => { + return ( +
+
Suggestions
+
+
    +
  • Find iPhone 15 Pro
  • +
  • Sort Amount from lowest to highest
  • +
  • Payment status not completed
  • +
  • Sold quantity below 2
  • +
  • Clear Filtering
  • +
  • Clear Sorting
  • +
  • Remove Grouping
  • +
  • Group amount and status columns
  • +
  • Group status column
  • +
+
+
+ ); + } + + const filterSettings: FilterSettingsModel = {type: 'Excel'}; + + return ( +
+
+
+
+

Smart Grid

+
+
+
+ dialogInstance = dialog as DialogComponent} target='#ai-grid' id='ai-assist-dialog' width='500px' visible={false} height='500px' footerTemplate={dialogFooterTemplate} created={created}> + assistInstance = assist as AIAssistViewComponent} toolbarSettings={toolbarSettings} promptRequest={onPromptRequest} promptSuggestionsHeader='Suggestions' responseItemTemplate={responseTemplate} > + + gridInstance = grid as GridComponent} id="ai-grid" height={650} dataSource={gadgetsPurchaseData} allowFiltering={true} allowSorting={true} allowGrouping={true} filterSettings={filterSettings} allowPaging={true} toolbar={toolbarOptions} toolbarClick={toolbarClick} > + + + ( +
+

{data.customerDetails.name}

+

{data.customerDetails.email}

+
+ )} /> + ( +
+ product image + {/* src={data.product.image ? `/sales-transactions-table/${data.product.image}` : '/sales-transactions-table/fallback-image.jpg'} */} +

{data.product.name}

+
+ )} + /> + + + + + ( +
+ {data.status} +
+ )} + /> +
+ +
+
+
+
+ ) +} + +export default AssistiveGrid; diff --git a/react/src/ai-components/grid/assistive-grid/datasource.tsx b/react/src/ai-components/grid/assistive-grid/datasource.tsx new file mode 100644 index 0000000..f742928 --- /dev/null +++ b/react/src/ai-components/grid/assistive-grid/datasource.tsx @@ -0,0 +1,1902 @@ +export let gadgetsPurchaseData: Object[] = [ + { + id: 1, + transactionId: "TRX202501", + customerDetails: { + name: "Jane Smith", + initial: "JS", + email: "jane.smith@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-06-20"), + product: { + name: "iMac 24", + image: "imac-24.png" + }, + quantity: 1, + amount: 1199.99, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 2, + transactionId: "TRX202502", + customerDetails: { + name: "Mark Johnson", + initial: "MJ", + email: "mark.johnson@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-06-20"), + product: { + name: "Mac Mini", + image: "mac-mini.png" + }, + quantity: 3, + amount: 1797.00, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 3, + transactionId: "TRX202503", + customerDetails: { + name: "Emily White", + initial: "EW", + email: "emily.white@example.com", + colorTheme: "Red" + }, + date: new Date("2025-06-20"), + product: { + name: "HomePod Mini", + image: "homepod-mini.png" + }, + quantity: 6, + amount: 594.00, + paymentMethod: "Online Transfer", + status: "Failed" + }, + { + id: 4, + transactionId: "TRX202504", + customerDetails: { + name: "Tom Harris", + initial: "TH", + email: "tom.harris@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-06-21"), + product: { + name: "iPhone 13", + image: "iphone-13.png" + }, + quantity: 2, + amount: 1399.98, + paymentMethod: "Credit Card", + status: "Processing" + }, + { + id: 5, + transactionId: "TRX202505", + customerDetails: { + name: "Lisa Green", + initial: "LG", + email: "lisa.green@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-06-21"), + product: { + name: "Apple Watch Series 7", + image: "apple-watch-series-7.png" + }, + quantity: 4, + amount: 1596.00, + paymentMethod: "PayPal", + status: "Completed" + }, + { + id: 6, + transactionId: "TRX202506", + customerDetails: { + name: "Olivia Adams", + initial: "OA", + email: "olivia.adams@example.com", + colorTheme: "Green" + }, + date: new Date("2025-06-21"), + product: { + name: "Apple TV 4K", + image: "apple-tv-4k.png" + }, + quantity: 3, + amount: 537.00, + paymentMethod: "Cheque", + status: "Pending" + }, + { + id: 7, + transactionId: "TRX202507", + customerDetails: { + name: "David Clark", + initial: "DC", + email: "david.clark@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-06-22"), + product: { + name: "iPhone 15 Pro", + image: "iphone-15-pro.png" + }, + quantity: 1, + amount: 999.99, + paymentMethod: "Online Transfer", + status: "Failed" + }, + { + id: 8, + transactionId: "TRX202508", + customerDetails: { + name: "Rachel Lee", + initial: "RL", + email: "rachel.lee@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-06-22"), + product: { + name: "MacBook Air M2", + image: "macbook-air-m2.png" + }, + quantity: 2, + amount: 2598.00, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 9, + transactionId: "TRX202509", + customerDetails: { + name: "Lucas Robinson", + initial: "LR", + email: "lucas.robinson@example.com", + colorTheme: "Green" + }, + date: new Date("2025-06-22"), + product: { + name: "AirPods Pro", + image: "airpods-pro.png" + }, + quantity: 6, + amount: 1494.00, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 10, + transactionId: "TRX202510", + customerDetails: { + name: "Sophia Martinez", + initial: "SM", + email: "sophia.martinez@example.com", + colorTheme: "Red" + }, + date: new Date("2025-06-23"), + product: { + name: "iPad Air", + image: "ipad-air.png" + }, + quantity: 3, + amount: 1797.00, + paymentMethod: "Online Transfer", + status: "Pending" + }, + { + id: 11, + transactionId: "TRX202511", + customerDetails: { + name: "Michael Brown", + initial: "MB", + email: "michael.brown@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-06-23"), + product: { + name: "Apple Watch Series 8", + image: "apple-watch-series-8.png" + }, + quantity: 4, + amount: 1596.00, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 12, + transactionId: "TRX202512", + customerDetails: { + name: "Sarah Davis", + initial: "SD", + email: "sarah.davis@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-06-23"), + product: { + name: "iPhone 14 Pro Max", + image: "iphone-14-pro-max.png" + }, + quantity: 1, + amount: 1099.99, + paymentMethod: "PayPal", + status: "Failed" + }, + { + id: 13, + transactionId: "TRX202513", + customerDetails: { + name: "James Wilson", + initial: "JW", + email: "james.wilson@example.com", + colorTheme: "Green" + }, + date: new Date("2025-06-24"), + product: { + name: "iPhone 15 Plus", + image: "iphone-15-plus.png" + }, + quantity: 2, + amount: 1599.98, + paymentMethod: "Online Transfer", + status: "Processing" + }, + { + id: 14, + transactionId: "TRX202514", + customerDetails: { + name: "Laura Taylor", + initial: "LT", + email: "laura.taylor@example.com", + colorTheme: "Red" + }, + date: new Date("2025-06-24"), + product: { + name: "iMac 24", + image: "imac-24.png" + }, + quantity: 3, + amount: 3599.97, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 15, + transactionId: "TRX202515", + customerDetails: { + name: "Chris Evans", + initial: "CE", + email: "chris.evans@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-06-24"), + product: { + name: "Mac Mini", + image: "mac-mini.png" + }, + quantity: 4, + amount: 2396.00, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 16, + transactionId: "TRX202516", + customerDetails: { + name: "Anna Moore", + initial: "AM", + email: "anna.moore@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-06-25"), + product: { + name: "HomePod Mini", + image: "homepod-mini.png" + }, + quantity: 7, + amount: 693.00, + paymentMethod: "Online Transfer", + status: "Failed" + }, + { + id: 17, + transactionId: "TRX202517", + customerDetails: { + name: "Robert King", + initial: "RK", + email: "robert.king@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-06-25"), + product: { + name: "iPhone 13", + image: "iphone-13.png" + }, + quantity: 3, + amount: 2099.97, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 18, + transactionId: "TRX202518", + customerDetails: { + name: "Megan Scott", + initial: "MS", + email: "megan.scott@example.com", + colorTheme: "Green" + }, + date: new Date("2025-06-25"), + product: { + name: "Apple Watch Series 7", + image: "apple-watch-series-7.png" + }, + quantity: 2, + amount: 798.00, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 19, + transactionId: "TRX202519", + customerDetails: { + name: "Daniel Young", + initial: "DY", + email: "daniel.young@example.com", + colorTheme: "Red" + }, + date: new Date("2025-06-26"), + product: { + name: "Apple TV 4K", + image: "apple-tv-4k.png" + }, + quantity: 4, + amount: 716.00, + paymentMethod: "Online Transfer", + status: "Pending" + }, + { + id: 20, + transactionId: "TRX202520", + customerDetails: { + name: "Emma Walker", + initial: "EW", + email: "emma.walker@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-06-26"), + product: { + name: "iPhone 15 Pro", + image: "iphone-15-pro.png" + }, + quantity: 2, + amount: 1999.98, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 21, + transactionId: "TRX202521", + customerDetails: { + name: "Liam Hall", + initial: "LH", + email: "liam.hall@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-06-26"), + product: { + name: "MacBook Air M2", + image: "macbook-air-m2.png" + }, + quantity: 1, + amount: 1299.00, + paymentMethod: "PayPal", + status: "Failed" + }, + { + id: 22, + transactionId: "TRX202522", + customerDetails: { + name: "Ava Lewis", + initial: "AL", + email: "ava.lewis@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-06-27"), + product: { + name: "AirPods Pro", + image: "airpods-pro.png" + }, + quantity: 5, + amount: 1245.00, + paymentMethod: "Online Transfer", + status: "Processing" + }, + { + id: 23, + transactionId: "TRX202523", + customerDetails: { + name: "Noah Clark", + initial: "NC", + email: "noah.clark@example.com", + colorTheme: "Green" + }, + date: new Date("2025-06-27"), + product: { + name: "iPad Air", + image: "ipad-air.png" + }, + quantity: 3, + amount: 1797.00, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 24, + transactionId: "TRX202524", + customerDetails: { + name: "Mia Turner", + initial: "MT", + email: "mia.turner@example.com", + colorTheme: "Red" + }, + date: new Date("2025-06-27"), + product: { + name: "Apple Watch Series 8", + image: "apple-watch-series-8.png" + }, + quantity: 4, + amount: 1596.00, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 25, + transactionId: "TRX202525", + customerDetails: { + name: "Ethan Allen", + initial: "EA", + email: "ethan.allen@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-06-28"), + product: { + name: "iPhone 14 Pro Max", + image: "iphone-14-pro-max.png" + }, + quantity: 2, + amount: 2199.98, + paymentMethod: "Online Transfer", + status: "Failed" + }, + { + id: 26, + transactionId: "TRX202526", + customerDetails: { + name: "Isabella King", + initial: "IK", + email: "isabella.king@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-06-28"), + product: { + name: "iPhone 15 Plus", + image: "iphone-15-plus.png" + }, + quantity: 3, + amount: 2399.97, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 27, + transactionId: "TRX202527", + customerDetails: { + name: "Jacob Wright", + initial: "JW", + email: "jacob.wright@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-06-28"), + product: { + name: "iMac 24", + image: "imac-24.png" + }, + quantity: 1, + amount: 1199.99, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 28, + transactionId: "TRX202528", + customerDetails: { + name: "Charlotte Lee", + initial: "CL", + email: "charlotte.lee@example.com", + colorTheme: "Green" + }, + date: new Date("2025-06-29"), + product: { + name: "Mac Mini", + image: "mac-mini.png" + }, + quantity: 2, + amount: 1198.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 29, + transactionId: "TRX202529", + customerDetails: { + name: "William Young", + initial: "WY", + email: "william.young@example.com", + colorTheme: "Red" + }, + date: new Date("2025-06-29"), + product: { + name: "HomePod Mini", + image: "homepod-mini.png" + }, + quantity: 5, + amount: 495.00, + paymentMethod: "Credit Card", + status: "Pending" + }, + { + id: 30, + transactionId: "TRX202530", + customerDetails: { + name: "Amelia Harris", + initial: "AH", + email: "amelia.harris@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-06-29"), + product: { + name: "iPhone 13", + image: "iphone-13.png" + }, + quantity: 4, + amount: 2799.96, + paymentMethod: "PayPal", + status: "Failed" + }, + { + id: 31, + transactionId: "TRX202531", + customerDetails: { + name: "Alexander Scott", + initial: "AS", + email: "alexander.scott@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-06-30"), + product: { + name: "Apple Watch Series 7", + image: "apple-watch-series-7.png" + }, + quantity: 3, + amount: 1197.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 32, + transactionId: "TRX202532", + customerDetails: { + name: "Harper Walker", + initial: "HW", + email: "harper.walker@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-06-30"), + product: { + name: "Apple TV 4K", + image: "apple-tv-4k.png" + }, + quantity: 2, + amount: 358.00, + paymentMethod: "Credit Card", + status: "Processing" + }, + { + id: 33, + transactionId: "TRX202533", + customerDetails: { + name: "Evelyn Adams", + initial: "EA", + email: "evelyn.adams@example.com", + colorTheme: "Green" + }, + date: new Date("2025-06-30"), + product: { + name: "iPhone 15 Pro", + image: "iphone-15-pro.png" + }, + quantity: 3, + amount: 2999.97, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 34, + transactionId: "TRX202534", + customerDetails: { + name: "Mason Brown", + initial: "MB", + email: "mason.brown@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-01"), + product: { + name: "MacBook Air M2", + image: "macbook-air-m2.png" + }, + quantity: 1, + amount: 1299.00, + paymentMethod: "Online Transfer", + status: "Failed" + }, + { + id: 35, + transactionId: "TRX202535", + customerDetails: { + name: "Sofia Davis", + initial: "SD", + email: "sofia.davis@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-01"), + product: { + name: "AirPods Pro", + image: "airpods-pro.png" + }, + quantity: 4, + amount: 996.00, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 36, + transactionId: "TRX202536", + customerDetails: { + name: "James Wilson", + initial: "JW", + email: "james.wilson@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-01"), + product: { + name: "iPad Air", + image: "ipad-air.png" + }, + quantity: 2, + amount: 1198.00, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 37, + transactionId: "TRX202537", + customerDetails: { + name: "Chloe Taylor", + initial: "CT", + email: "chloe.taylor@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-02"), + product: { + name: "Apple Watch Series 8", + image: "apple-watch-series-8.png" + }, + quantity: 3, + amount: 1197.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 38, + transactionId: "TRX202538", + customerDetails: { + name: "Benjamin Lee", + initial: "BL", + email: "benjamin.lee@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-02"), + product: { + name: "iPhone 14 Pro Max", + image: "iphone-14-pro-max.png" + }, + quantity: 1, + amount: 1099.99, + paymentMethod: "Credit Card", + status: "Pending" + }, + { + id: 39, + transactionId: "TRX202539", + customerDetails: { + name: "Zoe Clark", + initial: "ZC", + email: "zoe.clark@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-02"), + product: { + name: "iPhone 15 Plus", + image: "iphone-15-plus.png" + }, + quantity: 4, + amount: 3199.96, + paymentMethod: "PayPal", + status: "Failed" + }, + { + id: 40, + transactionId: "TRX202540", + customerDetails: { + name: "Logan Harris", + initial: "LH", + email: "logan.harris@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-03"), + product: { + name: "iMac 24", + image: "imac-24.png" + }, + quantity: 2, + amount: 2399.98, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 41, + transactionId: "TRX202541", + customerDetails: { + name: "Ella Young", + initial: "EY", + email: "ella.young@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-03"), + product: { + name: "Mac Mini", + image: "mac-mini.png" + }, + quantity: 3, + amount: 1797.00, + paymentMethod: "Credit Card", + status: "Processing" + }, + { + id: 42, + transactionId: "TRX202542", + customerDetails: { + name: "Lucas Martinez", + initial: "LM", + email: "lucas.martinez@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-03"), + product: { + name: "HomePod Mini", + image: "homepod-mini.png" + }, + quantity: 6, + amount: 594.00, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 43, + transactionId: "TRX202543", + customerDetails: { + name: "Aria Walker", + initial: "AW", + email: "aria.walker@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-04"), + product: { + name: "iPhone 13", + image: "iphone-13.png" + }, + quantity: 1, + amount: 699.99, + paymentMethod: "Online Transfer", + status: "Failed" + }, + { + id: 44, + transactionId: "TRX202544", + customerDetails: { + name: "Henry Scott", + initial: "HS", + email: "henry.scott@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-04"), + product: { + name: "Apple Watch Series 7", + image: "apple-watch-series-7.png" + }, + quantity: 4, + amount: 1596.00, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 45, + transactionId: "TRX202545", + customerDetails: { + name: "Lily Adams", + initial: "LA", + email: "lily.adams@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-04"), + product: { + name: "Apple TV 4K", + image: "apple-tv-4k.png" + }, + quantity: 3, + amount: 537.00, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 46, + transactionId: "TRX202546", + customerDetails: { + name: "Jack Wilson", + initial: "JW", + email: "jack.wilson@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-05"), + product: { + name: "iPhone 15 Pro", + image: "iphone-15-pro.png" + }, + quantity: 2, + amount: 1999.98, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 47, + transactionId: "TRX202547", + customerDetails: { + name: "Grace Brown", + initial: "GB", + email: "grace.brown@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-05"), + product: { + name: "MacBook Air M2", + image: "macbook-air-m2.png" + }, + quantity: 1, + amount: 1299.00, + paymentMethod: "Credit Card", + status: "Pending" + }, + { + id: 48, + transactionId: "TRX202548", + customerDetails: { + name: "Owen Davis", + initial: "OD", + email: "owen.davis@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-05"), + product: { + name: "AirPods Pro", + image: "airpods-pro.png" + }, + quantity: 10, + amount: 1743.00, + paymentMethod: "PayPal", + status: "Failed" + }, + { + id: 49, + transactionId: "TRX202549", + customerDetails: { + name: "Hannah Lee", + initial: "HL", + email: "hannah.lee@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-06"), + product: { + name: "iPad Air", + image: "ipad-air.png" + }, + quantity: 4, + amount: 2396.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 50, + transactionId: "TRX202550", + customerDetails: { + name: "Elijah Clark", + initial: "EC", + email: "elijah.clark@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-06"), + product: { + name: "Apple Watch Series 8", + image: "apple-watch-series-8.png" + }, + quantity: 2, + amount: 798.00, + paymentMethod: "Credit Card", + status: "Processing" + }, + { + id: 51, + transactionId: "TRX202551", + customerDetails: { + name: "Sophie Turner", + initial: "ST", + email: "sophie.turner@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-06"), + product: { + name: "iPhone 14 Pro Max", + image: "iphone-14-pro-max.png" + }, + quantity: 3, + amount: 3299.97, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 52, + transactionId: "TRX202552", + customerDetails: { + name: "Daniel Harris", + initial: "DH", + email: "daniel.harris@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-07"), + product: { + name: "iPhone 15 Plus", + image: "iphone-15-plus.png" + }, + quantity: 1, + amount: 799.99, + paymentMethod: "Online Transfer", + status: "Failed" + }, + { + id: 53, + transactionId: "TRX202553", + customerDetails: { + name: "Avery Wright", + initial: "AW", + email: "avery.wright@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-07"), + product: { + name: "iMac 24", + image: "imac-24.png" + }, + quantity: 4, + amount: 4799.96, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 54, + transactionId: "TRX202554", + customerDetails: { + name: "Scarlett Young", + initial: "SY", + email: "scarlett.young@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-07"), + product: { + name: "Mac Mini", + image: "mac-mini.png" + }, + quantity: 3, + amount: 1797.00, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 55, + transactionId: "TRX202555", + customerDetails: { + name: "Mason Adams", + initial: "MA", + email: "mason.adams@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-08"), + product: { + name: "HomePod Mini", + image: "homepod-mini.png" + }, + quantity: 6, + amount: 594.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 56, + transactionId: "TRX202556", + customerDetails: { + name: "Luna Scott", + initial: "LS", + email: "luna.scott@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-08"), + product: { + name: "iPhone 13", + image: "iphone-13.png" + }, + quantity: 2, + amount: 1399.98, + paymentMethod: "Credit Card", + status: "Pending" + }, + { + id: 57, + transactionId: "TRX202557", + customerDetails: { + name: "Ethan Brown", + initial: "EB", + email: "ethan.brown@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-08"), + product: { + name: "Apple Watch Series 7", + image: "apple-watch-series-7.png" + }, + quantity: 4, + amount: 1596.00, + paymentMethod: "PayPal", + status: "Failed" + }, + { + id: 58, + transactionId: "TRX202558", + customerDetails: { + name: "Zoe Davis", + initial: "ZD", + email: "zoe.davis@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-09"), + product: { + name: "Apple TV 4K", + image: "apple-tv-4k.png" + }, + quantity: 3, + amount: 537.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 59, + transactionId: "TRX202559", + customerDetails: { + name: "Logan Wilson", + initial: "LW", + email: "logan.wilson@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-09"), + product: { + name: "iPhone 15 Pro", + image: "iphone-15-pro.png" + }, + quantity: 1, + amount: 999.99, + paymentMethod: "Credit Card", + status: "Processing" + }, + { + id: 60, + transactionId: "TRX202560", + customerDetails: { + name: "Aria Lee", + initial: "AL", + email: "aria.lee@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-09"), + product: { + name: "MacBook Air M2", + image: "macbook-air-m2.png" + }, + quantity: 2, + amount: 2598.00, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 61, + transactionId: "TRX202561", + customerDetails: { + name: "Lucas Clark", + initial: "LC", + email: "lucas.clark@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-10"), + product: { + name: "AirPods Pro", + image: "airpods-pro.png" + }, + quantity: 5, + amount: 1245.00, + paymentMethod: "Online Transfer", + status: "Failed" + }, + { + id: 62, + transactionId: "TRX202562", + customerDetails: { + name: "Ella Harris", + initial: "EH", + email: "ella.harris@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-10"), + product: { + name: "iPad Air", + image: "ipad-air.png" + }, + quantity: 3, + amount: 1797.00, + paymentMethod: "Credit Card", + status: "Completed" + }, + { + id: 63, + transactionId: "TRX202563", + customerDetails: { + name: "Noah Young", + initial: "NY", + email: "noah.young@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-10"), + product: { + name: "Apple Watch Series 8", + image: "apple-watch-series-8.png" + }, + quantity: 4, + amount: 1596.00, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 64, + transactionId: "TRX202564", + customerDetails: { + name: "Mia Scott", + initial: "MS", + email: "mia.scott@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-11"), + product: { + name: "iPhone 14 Pro Max", + image: "iphone-14-pro-max.png" + }, + quantity: 2, + amount: 2199.98, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 65, + transactionId: "TRX202565", + customerDetails: { + name: "Liam Turner", + initial: "LT", + email: "liam.turner@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-11"), + product: { + name: "iPhone 15 Plus", + image: "iphone-15-plus.png" + }, + quantity: 3, + amount: 2399.97, + paymentMethod: "Credit Card", + status: "Pending" + }, + { + id: 66, + transactionId: "TRX202566", + customerDetails: { + name: "Ava Brown", + initial: "AB", + email: "ava.brown@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-11"), + product: { + name: "iMac 24", + image: "imac-24.png" + }, + quantity: 1, + amount: 1199.99, + paymentMethod: "PayPal", + status: "Failed" + }, + { + id: 67, + transactionId: "TRX202567", + customerDetails: { + name: "Elijah Davis", + initial: "ED", + email: "elijah.davis@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-12"), + product: { + name: "Mac Mini", + image: "mac-mini.png" + }, + quantity: 4, + amount: 2396.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 68, + transactionId: "TRX202568", + customerDetails: { + name: "Sophie Wilson", + initial: "SW", + email: "sophie.wilson@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-12"), + product: { + name: "HomePod Mini", + image: "homepod-mini.png" + }, + quantity: 7, + amount: 693.00, + paymentMethod: "Credit Card", + status: "Processing" + }, + { + id: 69, + transactionId: "TRX202569", + customerDetails: { + name: "Daniel Lee", + initial: "DL", + email: "daniel.lee@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-12"), + product: { + name: "iPhone 13", + image: "iphone-13.png" + }, + quantity: 3, + amount: 2099.97, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 70, + transactionId: "TRX202570", + customerDetails: { + name: "Avery Clark", + initial: "AC", + email: "avery.clark@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-13"), + product: { + name: "Apple Watch Series 7", + image: "apple-watch-series-7.png" + }, + quantity: 2, + amount: 798.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 71, + transactionId: "TRX202571", + customerDetails: { + name: "Scarlett Harris", + initial: "SH", + email: "scarlett.harris@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-13"), + product: { + name: "Apple TV 4K", + image: "apple-tv-4k.png" + }, + quantity: 4, + amount: 716.00, + paymentMethod: "Credit Card", + status: "Failed" + }, + { + id: 72, + transactionId: "TRX202572", + customerDetails: { + name: "Mason Young", + initial: "MY", + email: "mason.young@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-13"), + product: { + name: "iPhone 15 Pro", + image: "iphone-15-pro.png" + }, + quantity: 3, + amount: 2999.97, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 73, + transactionId: "TRX202573", + customerDetails: { + name: "Luna Scott", + initial: "LS", + email: "luna.scott@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-14"), + product: { + name: "MacBook Air M2", + image: "macbook-air-m2.png" + }, + quantity: 1, + amount: 1299.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 74, + transactionId: "TRX202574", + customerDetails: { + name: "Ethan Turner", + initial: "ET", + email: "ethan.turner@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-14"), + product: { + name: "AirPods Pro", + image: "airpods-pro.png" + }, + quantity: 6, + amount: 1494.00, + paymentMethod: "Credit Card", + status: "Pending" + }, + { + id: 75, + transactionId: "TRX202575", + customerDetails: { + name: "Zoe Brown", + initial: "ZB", + email: "zoe.brown@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-14"), + product: { + name: "iPad Air", + image: "ipad-air.png" + }, + quantity: 2, + amount: 1198.00, + paymentMethod: "PayPal", + status: "Failed" + }, + { + id: 76, + transactionId: "TRX202576", + customerDetails: { + name: "Logan Davis", + initial: "LD", + email: "logan.davis@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-15"), + product: { + name: "Apple Watch Series 8", + image: "apple-watch-series-8.png" + }, + quantity: 3, + amount: 1197.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 77, + transactionId: "TRX202577", + customerDetails: { + name: "Ella Wilson", + initial: "EW", + email: "ella.wilson@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-15"), + product: { + name: "iPhone 14 Pro Max", + image: "iphone-14-pro-max.png" + }, + quantity: 1, + amount: 1099.99, + paymentMethod: "Credit Card", + status: "Processing" + }, + { + id: 78, + transactionId: "TRX202578", + customerDetails: { + name: "Noah Lee", + initial: "NL", + email: "noah.lee@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-15"), + product: { + name: "iPhone 15 Plus", + image: "iphone-15-plus.png" + }, + quantity: 4, + amount: 3199.96, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 79, + transactionId: "TRX202579", + customerDetails: { + name: "Mia Clark", + initial: "MC", + email: "mia.clark@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-16"), + product: { + name: "iMac 24", + image: "imac-24.png" + }, + quantity: 2, + amount: 2399.98, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 80, + transactionId: "TRX202580", + customerDetails: { + name: "Liam Harris", + initial: "LH", + email: "liam.harris@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-16"), + product: { + name: "Mac Mini", + image: "mac-mini.png" + }, + quantity: 3, + amount: 1797.00, + paymentMethod: "Credit Card", + status: "Failed" + }, + { + id: 81, + transactionId: "TRX202581", + customerDetails: { + name: "Ava Scott", + initial: "AS", + email: "ava.scott@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-16"), + product: { + name: "HomePod Mini", + image: "homepod-mini.png" + }, + quantity: 5, + amount: 495.00, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 82, + transactionId: "TRX202582", + customerDetails: { + name: "Elijah Young", + initial: "EY", + email: "elijah.young@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-17"), + product: { + name: "iPhone 13", + image: "iphone-13.png" + }, + quantity: 4, + amount: 2799.96, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 83, + transactionId: "TRX202583", + customerDetails: { + name: "Sophie Brown", + initial: "SB", + email: "sophie.brown@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-17"), + product: { + name: "Apple Watch Series 7", + image: "apple-watch-series-7.png" + }, + quantity: 3, + amount: 1197.00, + paymentMethod: "Credit Card", + status: "Pending" + }, + { + id: 84, + transactionId: "TRX202584", + customerDetails: { + name: "Daniel Turner", + initial: "DT", + email: "daniel.turner@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-17"), + product: { + name: "Apple TV 4K", + image: "apple-tv-4k.png" + }, + quantity: 2, + amount: 358.00, + paymentMethod: "PayPal", + status: "Failed" + }, + { + id: 85, + transactionId: "TRX202585", + customerDetails: { + name: "Avery Wilson", + initial: "AW", + email: "avery.wilson@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-18"), + product: { + name: "iPhone 15 Pro", + image: "iphone-15-pro.png" + }, + quantity: 4, + amount: 3999.96, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 86, + transactionId: "TRX202586", + customerDetails: { + name: "Scarlett Clark", + initial: "SC", + email: "scarlett.clark@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-18"), + product: { + name: "MacBook Air M2", + image: "macbook-air-m2.png" + }, + quantity: 2, + amount: 2598.00, + paymentMethod: "Credit Card", + status: "Processing" + }, + { + id: 87, + transactionId: "TRX202587", + customerDetails: { + name: "Mason Lee", + initial: "ML", + email: "mason.lee@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-18"), + product: { + name: "AirPods Pro", + image: "airpods-pro.png" + }, + quantity: 6, + amount: 1494.00, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 88, + transactionId: "TRX202588", + customerDetails: { + name: "Luna Harris", + initial: "LH", + email: "luna.harris@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-19"), + product: { + name: "iPad Air", + image: "ipad-air.png" + }, + quantity: 3, + amount: 1797.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 89, + transactionId: "TRX202589", + customerDetails: { + name: "Ethan Scott", + initial: "ES", + email: "ethan.scott@example.com", + colorTheme: "Red" + }, + date: new Date("2025-07-19"), + product: { + name: "Apple Watch Series 8", + image: "apple-watch-series-8.png" + }, + quantity: 4, + amount: 1596.00, + paymentMethod: "Credit Card", + status: "Failed" + }, + { + id: 90, + transactionId: "TRX202590", + customerDetails: { + name: "Zoe Young", + initial: "ZY", + email: "zoe.young@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-07-19"), + product: { + name: "iPhone 14 Pro Max", + image: "iphone-14-pro-max.png" + }, + quantity: 2, + amount: 2199.98, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 91, + transactionId: "TRX202591", + customerDetails: { + name: "Logan Brown", + initial: "LB", + email: "logan.brown@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-07-20"), + product: { + name: "iPhone 15 Plus", + image: "iphone-15-plus.png" + }, + quantity: 3, + amount: 2399.97, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 92, + transactionId: "TRX202592", + customerDetails: { + name: "Ella Davis", + initial: "ED", + email: "ella.davis@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-07-20"), + product: { + name: "iMac 24", + image: "imac-24.png" + }, + quantity: 1, + amount: 1199.99, + paymentMethod: "Credit Card", + status: "Pending" + }, + { + id: 93, + transactionId: "TRX202593", + customerDetails: { + name: "Noah Wilson", + initial: "NW", + email: "noah.wilson@example.com", + colorTheme: "Green" + }, + date: new Date("2025-07-20"), + product: { + name: "Mac Mini", + image: "mac-mini.png" + }, + quantity: 2, + amount: 1198.00, + paymentMethod: "PayPal", + status: "Failed" + }, + { + id: 94, + transactionId: "TRX202594", + customerDetails: { + name: "Mia Lee", + initial: "ML", + email: "mia.lee@example.com", + colorTheme: "Red" + }, + date: new Date("2025-08-01"), + product: { + name: "HomePod Mini", + image: "homepod-mini.png" + }, + quantity: 6, + amount: 594.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 95, + transactionId: "TRX202595", + customerDetails: { + name: "Liam Clark", + initial: "LC", + email: "liam.clark@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-08-01"), + product: { + name: "iPhone 13", + image: "iphone-13.png" + }, + quantity: 3, + amount: 2099.97, + paymentMethod: "Credit Card", + status: "Processing" + }, + { + id: 96, + transactionId: "TRX202596", + customerDetails: { + name: "Ava Harris", + initial: "AH", + email: "ava.harris@example.com", + colorTheme: "Blue" + }, + date: new Date("2025-08-01"), + product: { + name: "Apple Watch Series 7", + image: "apple-watch-series-7.png" + }, + quantity: 4, + amount: 1596.00, + paymentMethod: "PayPal", + status: "Pending" + }, + { + id: 97, + transactionId: "TRX202597", + customerDetails: { + name: "Elijah Scott", + initial: "ES", + email: "elijah.scott@example.com", + colorTheme: "Orange" + }, + date: new Date("2025-08-02"), + product: { + name: "Apple TV 4K", + image: "apple-tv-4k.png" + }, + quantity: 3, + amount: 537.00, + paymentMethod: "Online Transfer", + status: "Completed" + }, + { + id: 98, + transactionId: "TRX202598", + customerDetails: { + name: "Sophie Young", + initial: "SY", + email: "sophie.young@example.com", + colorTheme: "Green" + }, + date: new Date("2025-08-02"), + product: { + name: "iPhone 15 Pro", + image: "iphone-15-pro.png" + }, + quantity: 2, + amount: 1999.98, + paymentMethod: "Credit Card", + status: "Failed" + }, + { + id: 99, + transactionId: "TRX202599", + customerDetails: { + name: "Daniel Brown", + initial: "DB", + email: "daniel.brown@example.com", + colorTheme: "Red" + }, + date: new Date("2025-08-02"), + product: { + name: "MacBook Air M2", + image: "macbook-air-m2.png" + }, + quantity: 1, + amount: 1299.00, + paymentMethod: "PayPal", + status: "Processing" + }, + { + id: 100, + transactionId: "TRX2025100", + customerDetails: { + name: "Avery Turner", + initial: "AT", + email: "avery.turner@example.com", + colorTheme: "Purple" + }, + date: new Date("2025-08-03"), + product: { + name: "AirPods Pro", + image: "airpods-pro.png" + }, + quantity: 7, + amount: 1743.00, + paymentMethod: "Online Transfer", + status: "Completed" + } +]; \ No newline at end of file diff --git a/react/src/ai-components/grid/assistive-grid/sales-transactions-table/airpods-pro.png b/react/src/ai-components/grid/assistive-grid/sales-transactions-table/airpods-pro.png new file mode 100644 index 0000000000000000000000000000000000000000..a603d294da706bada254d861639df7221af2685d GIT binary patch literal 6524 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 O$hC|R!gPWWeeNIME=YL* literal 0 HcmV?d00001 diff --git a/react/src/ai-components/grid/assistive-grid/sales-transactions-table/apple-tv-4k.png b/react/src/ai-components/grid/assistive-grid/sales-transactions-table/apple-tv-4k.png new file mode 100644 index 0000000000000000000000000000000000000000..6fca1a9dbfe1193e7dcc5295dec791e2ec35bd85 GIT binary patch literal 4084 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 A?EnA( literal 0 HcmV?d00001 diff --git a/react/src/ai-components/grid/assistive-grid/sales-transactions-table/apple-watch-series-8.png b/react/src/ai-components/grid/assistive-grid/sales-transactions-table/apple-watch-series-8.png new file mode 100644 index 0000000000000000000000000000000000000000..27eb5119eb426e00363f1e26fc20cb75a9911637 GIT binary patch literal 8985 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 literal 0 HcmV?d00001 diff --git a/react/src/ai-components/grid/assistive-grid/sales-transactions-table/homepod-mini.png b/react/src/ai-components/grid/assistive-grid/sales-transactions-table/homepod-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..a976f00ded4f43941f52a605d53d2d8b1d86ee67 GIT binary patch literal 4697 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ʪdqHq+KycS6J$-{djW(&8v81? zJC2iUen0@El-AhTi%;&{xnnJbVkW4PpfFS^EHzi;1%;U~51;@XL!n4{f<{y67eggA zhu0!m;(cb5wOUQBNuX@2Uk-B~8KW8~w#|7DuUxtEyu}E$n6bZ74mTRj%b$7XnSZ9H zN&mtjCNY~8nF56e{ zRa(oWM$`6(MXtxWyszp9T}M!6rDiGsRnfvw>hz;WwN~4>a^uMeaEu3X#AW$H% z9xx0eTD5AGvsi%^JN}?u;Z2)1KQ%u7!l_06&uWi=6p2h>8ky|dyDEOzxs78b1f3zj zQ(!v5BEcy#K(a)2nJo4SSTtD(Jhu;wXJepTxp;VZ_`byowAk?n1z`8?-QL*P_{{Y5 zw5u8*xuyhCb-KomPd`tv9CLqYr0tR|wCTbb79AuyIO_oF5t* z+8^?YqKFJAJbS?w^}$N*}?6{3Sfaz_~A?`O$`m`;QrlLqHY+V&L3t_EDerWSW&yd+4KS2;Y zzi!>ScO9-Ehdb|(0N~=|MGyqZ;9&K4M@B||c(@vTz4I0YK(X1>)YMs{qoe=+|8I|$cf0+> zh{BT*MUq2+7!8W%N5PDuVysqc|G9SUi64Hw0=(Y&hXp{f>Ez_(hbAT_|Dx0Bd{DhX zUTBw7So(>V_62DMK@jwYhK4q-UcKs;*L(0cYX0j2;FX7vQkL57w#O2!+vPiYna6P{ ztS#cdw%#bg4t1S36o5nB^sO{*34phfHr|Z0EHU8CK>e+>=Mn?nO4@ic&a%XSHv{#z b(w_eZW-Z*va3jHd00000NkvXXu0mjf%75L5 literal 0 HcmV?d00001 diff --git a/react/src/ai-components/grid/assistive-grid/sales-transactions-table/imac-24.png b/react/src/ai-components/grid/assistive-grid/sales-transactions-table/imac-24.png new file mode 100644 index 0000000000000000000000000000000000000000..62aa34f97a6ba0f1539768f75c35552fed0d2ef2 GIT binary patch literal 6649 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 DLTc-h literal 0 HcmV?d00001 diff --git a/react/src/ai-components/grid/assistive-grid/sales-transactions-table/ipad-air.png b/react/src/ai-components/grid/assistive-grid/sales-transactions-table/ipad-air.png new file mode 100644 index 0000000000000000000000000000000000000000..eb3f78a3290286c49524a4b7f6cc13d73e1b63df GIT binary patch literal 9275 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 literal 0 HcmV?d00001 diff --git a/react/src/ai-components/grid/assistive-grid/sales-transactions-table/iphone-13.png b/react/src/ai-components/grid/assistive-grid/sales-transactions-table/iphone-13.png new file mode 100644 index 0000000000000000000000000000000000000000..16a649fdf1d8b7e68202e322e306205011d42045 GIT binary patch literal 4871 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 literal 0 HcmV?d00001 diff --git a/react/src/ai-components/grid/assistive-grid/sales-transactions-table/iphone-14.jpg b/react/src/ai-components/grid/assistive-grid/sales-transactions-table/iphone-14.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4510508670a2e1c209d379c301b389be510b89be GIT binary patch literal 2819 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 blWhJ6Q7T7$ozfx?wPr- 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 bzR&}l*pq4E`qlpv3_{3AD2msL8VCI!ZCEXM literal 0 HcmV?d00001 From 47cab8479b3544eec2d1f737ed37f3de142d272d Mon Sep 17 00:00:00 2001 From: Vigneshwaran-SF4319 <149996230+Vigneshwaran-SF4319@users.noreply.github.com> Date: Thu, 25 Sep 2025 18:14:41 +0530 Subject: [PATCH 2/8] 891174: Add Grid with AI Assist view sample --- react/src/ai-components/grid/assistive-grid/AIModel.tsx | 1 - react/src/left-pane.tsx | 3 ++- react/src/main.tsx | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/react/src/ai-components/grid/assistive-grid/AIModel.tsx b/react/src/ai-components/grid/assistive-grid/AIModel.tsx index 42d3f7d..849aefe 100644 --- a/react/src/ai-components/grid/assistive-grid/AIModel.tsx +++ b/react/src/ai-components/grid/assistive-grid/AIModel.tsx @@ -1,6 +1,5 @@ import { getAzureChatAIRequest } from '../../../ai-models'; import {executeGridAction} from './GridAction'; -// import { serverAIRequest } from '../../../ai-service'; function onPromptExecute(text: string | undefined, gridInstance: any, dialogInstance: any, assistInstance: any, columns: any) { diff --git a/react/src/left-pane.tsx b/react/src/left-pane.tsx index a9df5e6..a3c6569 100644 --- a/react/src/left-pane.tsx +++ b/react/src/left-pane.tsx @@ -88,7 +88,8 @@ function LeftPane() { { "id": 4, "name": "Semantic search", 'navigateUrl': '#/semantic-search' }, { "id": 5, "name": "Predictive Data Entry", 'navigateUrl': '#/predictive-data' }, { "id": 6, "name": "Anamoly Detection", 'navigateUrl': '#/anamoly-detection' }, - { "id": 7, "name": "Data Trend Analysis", 'navigateUrl': '#/data-trend' } + { "id": 7, "name": "Data Trend Analysis", 'navigateUrl': '#/data-trend' }, + { "id": 8, "name": "Assistive Grid", 'navigateUrl': '#/assistive-grid' } ] }, { diff --git a/react/src/main.tsx b/react/src/main.tsx index cb2dd69..69e1903 100644 --- a/react/src/main.tsx +++ b/react/src/main.tsx @@ -9,6 +9,7 @@ import SmartTextArea from './ai-components/smarttextarea/smart-textarea.tsx' import SemanticSearch from './ai-components/grid/semantic-search/semantic-search.tsx' import PredictiveDataEntry from './ai-components/grid/predictive-data/predictive-data.tsx' import AnamolyDetection from './ai-components/grid/anomaly-detection/anomaly-detection.tsx' +import AssistiveGrid from './ai-components/grid/assistive-grid/assistive-grid.tsx' import DataTrendAnalysis from './ai-components/grid/data-trend-analysis/data-trend-analysis.tsx' // ComboBox import ComboBoxSemanticSearch from './ai-components/combobox/semantic-search.tsx' @@ -63,6 +64,7 @@ const routerEle = createHashRouter( } /> } /> } /> + } /> } /> {/* ComboBox */} } /> From 516b39887b2426bfb286a3a552736233ca256527 Mon Sep 17 00:00:00 2001 From: Vigneshwaran-SF4319 <149996230+Vigneshwaran-SF4319@users.noreply.github.com> Date: Mon, 6 Oct 2025 10:29:54 +0530 Subject: [PATCH 3/8] 981174: Add Grid with AI Assist view sample. --- .../ai-components/grid/assistive-grid/GridAction.tsx | 4 ++-- .../grid/assistive-grid/assistive-grid.tsx | 12 +++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/react/src/ai-components/grid/assistive-grid/GridAction.tsx b/react/src/ai-components/grid/assistive-grid/GridAction.tsx index 80f2933..fb24fa3 100644 --- a/react/src/ai-components/grid/assistive-grid/GridAction.tsx +++ b/react/src/ai-components/grid/assistive-grid/GridAction.tsx @@ -49,7 +49,7 @@ export const executeGridAction = (data: GridActionData, gridInstance: GridCompon gridInstance.goToPage(data.page.pageNumber); } if (data.group && data.group.length) { - var groupColumns = [...gridInstance.groupSettings.columns]; + const groupColumns: string[] = [...(gridInstance.groupSettings.columns ?? [])]; if (groupColumns.indexOf(data.group[0]) === -1) { gridInstance.groupColumn(data.group[0]); } @@ -58,7 +58,7 @@ export const executeGridAction = (data: GridActionData, gridInstance: GridCompon if (data.clearGroup.length === 0) { gridInstance.clearGrouping(); } else { - var groupColumns = [...gridInstance.groupSettings.columns]; + const groupColumns: string[] = [...(gridInstance.groupSettings.columns ?? [])]; if (groupColumns.indexOf(data.clearGroup[0]) !== -1) { gridInstance.ungroupColumn(data.clearGroup[0]); } diff --git a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx index 3ee0cde..5573d49 100644 --- a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx +++ b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx @@ -19,7 +19,7 @@ function AssistiveGrid() { const toolbarClick = (args: any) => { if (args.item.id === 'ai-assist-btn') { const gridRect = gridInstance.element.getBoundingClientRect(); - const toolbarEleRect = document.getElementById('ai-grid_toolbarItems').getBoundingClientRect(); + const toolbarEleRect = document.getElementById('ai-grid_toolbarItems')!.getBoundingClientRect(); const targetRect = args.originalEvent.target.closest('.e-toolbar-item').getBoundingClientRect(); const x = (targetRect.left + targetRect.width) - gridRect.left; const y = (toolbarEleRect.top + toolbarEleRect.height) - gridRect.top; @@ -103,12 +103,10 @@ function AssistiveGrid() {

  • Find iPhone 15 Pro
  • Sort Amount from lowest to highest
  • Payment status not completed
  • -
  • Sold quantity below 2
  • +
  • Group status column
  • Clear Filtering
  • Clear Sorting
  • Remove Grouping
  • -
  • Group amount and status columns
  • -
  • Group status column
  • @@ -134,14 +132,14 @@ function AssistiveGrid() { ( + template={(data: any) => (

    {data.customerDetails.name}

    {data.customerDetails.email}

    )} /> ( + template={(data: any) => (
    product image {/* src={data.product.image ? `/sales-transactions-table/${data.product.image}` : '/sales-transactions-table/fallback-image.jpg'} */} @@ -154,7 +152,7 @@ function AssistiveGrid() { ( + template={(data: any) => (
    {data.status}
    From 462a2ccc03bec4d547712a05ba0f4e601736357a Mon Sep 17 00:00:00 2001 From: Vigneshwaran-SF4319 <149996230+Vigneshwaran-SF4319@users.noreply.github.com> Date: Mon, 6 Oct 2025 11:09:44 +0530 Subject: [PATCH 4/8] 981174: Add Grid with AI Assist view sample --- .../ai-components/grid/assistive-grid/assistive-grid.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx index 5573d49..e846ad1 100644 --- a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx +++ b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx @@ -120,8 +120,12 @@ function AssistiveGrid() {
    -

    Smart Grid

    -
    +

    This demo highlights the Syncfusion React DataGrid component, enhanced with conversational capabilities through the integrated Syncfusion React AI Assist View component. + The grid data operations such as sorting, filtering, and grouping can be performed using natural language input, offering a streamlined alternative to traditional UI interactions.

    +

    The Syncufusion React AI Assist View component is embedded directly within the grid interface, enabling intelligent prompt processing, contextual suggestions, and adaptive responses. + This integration makes working with data in the grid easier, faster, and more natural, especially for handling complex datasets and enabling adaptable processes. +

    +
    dialogInstance = dialog as DialogComponent} target='#ai-grid' id='ai-assist-dialog' width='500px' visible={false} height='500px' footerTemplate={dialogFooterTemplate} created={created}> From 3815098030af18e37dec5ac727f89759c2aa6853 Mon Sep 17 00:00:00 2001 From: Vigneshwaran-SF4319 <149996230+Vigneshwaran-SF4319@users.noreply.github.com> Date: Mon, 6 Oct 2025 15:43:42 +0530 Subject: [PATCH 5/8] 981174: Add Grid with AI Assist view sample --- .../grid/assistive-grid/assistive-grid.tsx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx index e846ad1..4945097 100644 --- a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx +++ b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx @@ -12,10 +12,10 @@ let gridInstance!:GridComponent; let suggestionListRef = createRef(); function AssistiveGrid() { - /// Toolbar options for Grid with AI Assist button + // Toolbar options for Grid with AI Assist button. const toolbarOptions: object[] = [{ tooltipText: 'AI Assist', prefixIcon: 'e-assistview-icon', id: 'ai-assist-btn', align: 'Left' }]; - /// Handles the Grid toolbar button click action. If the AI Assist button clicked shows the AI Assist dialog. + // Handles the Grid toolbar button click action. If the AI Assist button clicked shows the AI Assist dialog. const toolbarClick = (args: any) => { if (args.item.id === 'ai-assist-btn') { const gridRect = gridInstance.element.getBoundingClientRect(); @@ -28,7 +28,7 @@ function AssistiveGrid() { } } - /// Configures toolbar settings for AI assist dialog + // Configures toolbar settings for AI assist dialog. const toolbarSettings: ToolbarSettingsModel = { items: [ { tooltip: 'Start New Chat', iconCss: 'e-icons e-rename', align: 'Right' }, @@ -54,7 +54,7 @@ function AssistiveGrid() { } }; - /// Renders response template for AI prompts + // Renders response template for AI prompts. const responseTemplate = (props: any) => { return (
    @@ -66,7 +66,7 @@ function AssistiveGrid() { ); }; - /// Handles prompt request execution + // Handles prompt request execution. const onPromptRequest = (args: PromptRequestEventArgs) => { (assistInstance as any).stopResponding.classList.remove('e-btn-active'); assistInstance.scrollToBottom(); @@ -82,7 +82,7 @@ function AssistiveGrid() { onPromptExecute(args.prompt, gridInstance, dialogInstance, assistInstance, columns); }; - /// Sets up suggestion list click handler + // Sets up suggestion list click handler. const created = (): void => { suggestionListRef.current.addEventListener('click', (event: any) => { if (event.target.tagName === 'LI') { @@ -93,7 +93,7 @@ function AssistiveGrid() { }); } - /// Renders footer template with suggestion list + // Renders footer template with suggestion list. const dialogFooterTemplate = () => { return (
    @@ -146,7 +146,6 @@ function AssistiveGrid() { template={(data: any) => (
    product image - {/* src={data.product.image ? `/sales-transactions-table/${data.product.image}` : '/sales-transactions-table/fallback-image.jpg'} */}

    {data.product.name}

    )} From e17b5e5b88fc2075b69ea146283cab24b35665d5 Mon Sep 17 00:00:00 2001 From: Vigneshwaran-SF4319 <149996230+Vigneshwaran-SF4319@users.noreply.github.com> Date: Mon, 6 Oct 2025 18:58:58 +0530 Subject: [PATCH 6/8] 981174: Add Grid with AI Assist view sample --- .../grid/assistive-grid/AIModel.tsx | 12 ++--- .../grid/assistive-grid/GridAction.tsx | 24 +++++----- .../grid/assistive-grid/assistive-grid.tsx | 48 +++++++++---------- .../grid/assistive-grid/datasource.tsx | 2 +- 4 files changed, 43 insertions(+), 43 deletions(-) diff --git a/react/src/ai-components/grid/assistive-grid/AIModel.tsx b/react/src/ai-components/grid/assistive-grid/AIModel.tsx index 849aefe..314a344 100644 --- a/react/src/ai-components/grid/assistive-grid/AIModel.tsx +++ b/react/src/ai-components/grid/assistive-grid/AIModel.tsx @@ -2,7 +2,7 @@ import { getAzureChatAIRequest } from '../../../ai-models'; import {executeGridAction} from './GridAction'; -function onPromptExecute(text: string | undefined, gridInstance: any, dialogInstance: any, assistInstance: any, columns: any) { +function fetchAI(text: string | undefined, grid: any, dialog: any, assistView: any, columns: any) { let textArea = `Convert the following natural language query into a JSON object representing Syncfusion Query operations. Rules: @@ -44,14 +44,14 @@ function onPromptExecute(text: string | undefined, gridInstance: any, dialogInst let data; try { data = JSON.parse(jsonResult); - executeGridAction(data, gridInstance); + executeGridAction(data, grid); } catch (error) { - assistInstance.addPromptResponse({ prompt: error, response: error }); + assistView.addPromptResponse({ prompt: error, response: error }); return; } - assistInstance.addPromptResponse({ prompt: data.message, response: data }); - dialogInstance.hide(); + assistView.addPromptResponse({ prompt: data.message, response: data }); + dialog.hide(); }); } -export {onPromptExecute}; \ No newline at end of file +export { onPromptExecute, fetchAI }; \ No newline at end of file diff --git a/react/src/ai-components/grid/assistive-grid/GridAction.tsx b/react/src/ai-components/grid/assistive-grid/GridAction.tsx index fb24fa3..13541df 100644 --- a/react/src/ai-components/grid/assistive-grid/GridAction.tsx +++ b/react/src/ai-components/grid/assistive-grid/GridAction.tsx @@ -24,43 +24,43 @@ interface GridActionData { group?: string[]; clearGroup?: string[]; } -export const executeGridAction = (data: GridActionData, gridInstance: GridComponent) => { +export const executeGridAction = (data: GridActionData, grid: GridComponent) => { if (data.filter && data.filter.length) { data.filter.forEach((filter: Filter) => { - gridInstance.filterByColumn(filter.field, filter.operator, filter.value); + grid.filterByColumn(filter.field, filter.operator, filter.value); }) } if (data.clearFilter) { if (data.clearFilter.length === 0) { - gridInstance.clearFiltering(); + grid.clearFiltering(); } else { - gridInstance.clearFiltering(data.clearFilter); + grid.clearFiltering(data.clearFilter); } } if (data.sort && data.sort.length) { data.sort.forEach((sort: Sort) => { - gridInstance.sortColumn(sort.field, sort.direction, true); + grid.sortColumn(sort.field, sort.direction, true); }) } else if (data.clearSort) { - gridInstance.clearSorting(); + grid.clearSorting(); } if (data.page && data.page.pageNumber && data.page.pageSize) { - gridInstance.goToPage(data.page.pageNumber); + grid.goToPage(data.page.pageNumber); } if (data.group && data.group.length) { - const groupColumns: string[] = [...(gridInstance.groupSettings.columns ?? [])]; + const groupColumns: string[] = [...(grid.groupSettings.columns ?? [])]; if (groupColumns.indexOf(data.group[0]) === -1) { - gridInstance.groupColumn(data.group[0]); + grid.groupColumn(data.group[0]); } } if (data.clearGroup) { if (data.clearGroup.length === 0) { - gridInstance.clearGrouping(); + grid.clearGrouping(); } else { - const groupColumns: string[] = [...(gridInstance.groupSettings.columns ?? [])]; + const groupColumns: string[] = [...(grid.groupSettings.columns ?? [])]; if (groupColumns.indexOf(data.clearGroup[0]) !== -1) { - gridInstance.ungroupColumn(data.clearGroup[0]); + grid.ungroupColumn(data.clearGroup[0]); } } } diff --git a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx index 4945097..76cc320 100644 --- a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx +++ b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx @@ -1,14 +1,14 @@ import { GridComponent, ColumnsDirective, ColumnDirective, Inject, Toolbar, Sort, Filter, Group, Page, Search, ToolbarItems, FilterSettingsModel } from '@syncfusion/ej2-react-grids'; import { DialogComponent } from '@syncfusion/ej2-react-popups'; import { AIAssistViewComponent, ToolbarSettingsModel, PromptRequestEventArgs } from '@syncfusion/ej2-react-interactive-chat'; -import { gadgetsPurchaseData } from './datasource'; +import { purchaseDetails } from './datasource'; import { createRef } from "react"; -import { onPromptExecute } from './AIModel'; +import { fetchAI } from './AIModel'; import './assistive-grid.css'; -let assistInstance!: AIAssistViewComponent; -let dialogInstance!: DialogComponent; -let gridInstance!:GridComponent; +let assistView!: AIAssistViewComponent; +let dialog!: DialogComponent; +let grid!:GridComponent; let suggestionListRef = createRef(); function AssistiveGrid() { @@ -18,13 +18,13 @@ function AssistiveGrid() { // Handles the Grid toolbar button click action. If the AI Assist button clicked shows the AI Assist dialog. const toolbarClick = (args: any) => { if (args.item.id === 'ai-assist-btn') { - const gridRect = gridInstance.element.getBoundingClientRect(); - const toolbarEleRect = document.getElementById('ai-grid_toolbarItems')!.getBoundingClientRect(); + const gridRect = grid.element.getBoundingClientRect(); + const toolbarRect = document.getElementById('ai-grid_toolbarItems')!.getBoundingClientRect(); const targetRect = args.originalEvent.target.closest('.e-toolbar-item').getBoundingClientRect(); const x = (targetRect.left + targetRect.width) - gridRect.left; - const y = (toolbarEleRect.top + toolbarEleRect.height) - gridRect.top; - dialogInstance.position = { X: x, Y: y }; - dialogInstance.show(); + const y = (toolbarRect.top + toolbarRect.height) - gridRect.top; + dialog.position = { X: x, Y: y }; + dialog.show(); } } @@ -37,25 +37,25 @@ function AssistiveGrid() { ], itemClicked: (args) => { if (args.item.iconCss === 'e-icons e-icon-dlg-close') { - dialogInstance.hide() + dialog.hide() } if (args.item.iconCss === 'e-icons e-rename') { - assistInstance.prompts = []; + assistView.prompts = []; } if (args.item.iconCss === 'e-icons e-refresh') { - assistInstance.prompts = []; - gridInstance.setProperties({ + assistView.prompts = []; + grid.setProperties({ sortSettings: { columns: [] }, filterSettings: { columns: [] }, groupSettings: { columns: [] }, }); - gridInstance.refresh(); + grid.refresh(); } } }; // Renders response template for AI prompts. - const responseTemplate = (props: any) => { + const responseTemplate = (props: {propmt: string}) => { return (
    @@ -68,9 +68,9 @@ function AssistiveGrid() { // Handles prompt request execution. const onPromptRequest = (args: PromptRequestEventArgs) => { - (assistInstance as any).stopResponding.classList.remove('e-btn-active'); - assistInstance.scrollToBottom(); - var columns = gridInstance.columns.map((col: any) => {return {field: col.field}}); + (assistView as any).stopResponding.classList.remove('e-btn-active'); + assistView.scrollToBottom(); + var columns = grid.columns.map((col: any) => {return {field: col.field}}); columns.forEach((col: any) => { if (col.field === 'status') { col.values = ['Completed', 'Pending', 'Failed', 'Processing']; @@ -79,7 +79,7 @@ function AssistiveGrid() { col.values = ['Cheque', 'Credit Card', 'Paypal', 'Online Transfer']; } }) - onPromptExecute(args.prompt, gridInstance, dialogInstance, assistInstance, columns); + fetchAI(args.prompt, grid, dialog, assistView, columns); }; // Sets up suggestion list click handler. @@ -88,7 +88,7 @@ function AssistiveGrid() { if (event.target.tagName === 'LI') { const clickedPill = event.target; const pillText = clickedPill.textContent; - assistInstance.executePrompt(pillText); + assistView.executePrompt(pillText); } }); } @@ -128,10 +128,10 @@ function AssistiveGrid() {
    - dialogInstance = dialog as DialogComponent} target='#ai-grid' id='ai-assist-dialog' width='500px' visible={false} height='500px' footerTemplate={dialogFooterTemplate} created={created}> - assistInstance = assist as AIAssistViewComponent} toolbarSettings={toolbarSettings} promptRequest={onPromptRequest} promptSuggestionsHeader='Suggestions' responseItemTemplate={responseTemplate} > + dialog = dialog as DialogComponent} target='#ai-grid' id='ai-assist-dialog' width='500px' visible={false} height='500px' footerTemplate={dialogFooterTemplate} created={created}> + assistView = assist as AIAssistViewComponent} toolbarSettings={toolbarSettings} promptRequest={onPromptRequest} promptSuggestionsHeader='Suggestions' responseItemTemplate={responseTemplate} > - gridInstance = grid as GridComponent} id="ai-grid" height={650} dataSource={gadgetsPurchaseData} allowFiltering={true} allowSorting={true} allowGrouping={true} filterSettings={filterSettings} allowPaging={true} toolbar={toolbarOptions} toolbarClick={toolbarClick} > + grid = grid as GridComponent} id="ai-grid" height={650} dataSource={purchaseDetails} allowFiltering={true} allowSorting={true} allowGrouping={true} filterSettings={filterSettings} allowPaging={true} toolbar={toolbarOptions} toolbarClick={toolbarClick} > diff --git a/react/src/ai-components/grid/assistive-grid/datasource.tsx b/react/src/ai-components/grid/assistive-grid/datasource.tsx index f742928..4df8b34 100644 --- a/react/src/ai-components/grid/assistive-grid/datasource.tsx +++ b/react/src/ai-components/grid/assistive-grid/datasource.tsx @@ -1,4 +1,4 @@ -export let gadgetsPurchaseData: Object[] = [ +export let purchaseDetails: Object[] = [ { id: 1, transactionId: "TRX202501", From ff6c49bd12a316bb88aadd0ed0a8be414bc2e436 Mon Sep 17 00:00:00 2001 From: Vigneshwaran-SF4319 <149996230+Vigneshwaran-SF4319@users.noreply.github.com> Date: Mon, 6 Oct 2025 19:06:23 +0530 Subject: [PATCH 7/8] 981174: Add Grid with AI Assist view sample --- react/src/ai-components/grid/assistive-grid/AIModel.tsx | 2 +- .../src/ai-components/grid/assistive-grid/assistive-grid.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/react/src/ai-components/grid/assistive-grid/AIModel.tsx b/react/src/ai-components/grid/assistive-grid/AIModel.tsx index 314a344..167296b 100644 --- a/react/src/ai-components/grid/assistive-grid/AIModel.tsx +++ b/react/src/ai-components/grid/assistive-grid/AIModel.tsx @@ -54,4 +54,4 @@ function fetchAI(text: string | undefined, grid: any, dialog: any, assistView: a }); } -export { onPromptExecute, fetchAI }; \ No newline at end of file +export {fetchAI}; \ No newline at end of file diff --git a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx index 76cc320..b265e04 100644 --- a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx +++ b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx @@ -128,10 +128,10 @@ function AssistiveGrid() {
    - dialog = dialog as DialogComponent} target='#ai-grid' id='ai-assist-dialog' width='500px' visible={false} height='500px' footerTemplate={dialogFooterTemplate} created={created}> + dialog = dialogIns as DialogComponent} target='#ai-grid' id='ai-assist-dialog' width='500px' visible={false} height='500px' footerTemplate={dialogFooterTemplate} created={created}> assistView = assist as AIAssistViewComponent} toolbarSettings={toolbarSettings} promptRequest={onPromptRequest} promptSuggestionsHeader='Suggestions' responseItemTemplate={responseTemplate} > - grid = grid as GridComponent} id="ai-grid" height={650} dataSource={purchaseDetails} allowFiltering={true} allowSorting={true} allowGrouping={true} filterSettings={filterSettings} allowPaging={true} toolbar={toolbarOptions} toolbarClick={toolbarClick} > + grid = gridIns as GridComponent} id="ai-grid" height={650} dataSource={purchaseDetails} allowFiltering={true} allowSorting={true} allowGrouping={true} filterSettings={filterSettings} allowPaging={true} toolbar={toolbarOptions} toolbarClick={toolbarClick} > From 87ea2fda576a84c2a5a4a927de6514e3b3fa55b6 Mon Sep 17 00:00:00 2001 From: Vigneshwaran-SF4319 <149996230+Vigneshwaran-SF4319@users.noreply.github.com> Date: Mon, 6 Oct 2025 19:37:32 +0530 Subject: [PATCH 8/8] 981174: Add Grid with AI Assist view sample --- react/src/ai-components/grid/assistive-grid/assistive-grid.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx index b265e04..7a19aea 100644 --- a/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx +++ b/react/src/ai-components/grid/assistive-grid/assistive-grid.tsx @@ -55,7 +55,7 @@ function AssistiveGrid() { }; // Renders response template for AI prompts. - const responseTemplate = (props: {propmt: string}) => { + const responseTemplate = (props: {prompt: string}) => { return (