+
+ Min
+
+ ${((props as { Min?: number }).Min ?? 0).toFixed(2)}
+
+ Max
+
+ ${((props as { Max?: number }).Max ?? 0).toFixed(2)}
+
);
+ }
+
+ };
+
+ const menuItemMethods = {
+ gridLineValueChange: (args: ChangeEventArgs, data?: any) => {
+ if (gridInstance) {
+ gridInstance.gridLines = data.properties.text;
+ }
+ },
+
+ htmlEncodeChange: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.headerText === 'Order ID') {
+ if (args.checked) {
+ col.disableHtmlEncode = false;
+ } else {
+ col.disableHtmlEncode = true;
+ }
+ }
+ });
+ gridInstance.refreshColumns();
+ }
+
+ }),
+
+ enableCheckBoxChange: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.field === 'Verified') {
+ col.displayAsCheckBox = args.checked;
+ }
+ });
+ gridInstance.refreshColumns();
+ }
+ }),
+
+ hideSpecifiedColumn: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.headerText === 'Verified') {
+ col.visible = args.checked;
+ gridInstance.refreshColumns();
+ }
+ });
+ }
+
+ }),
+
+ singleColumnSettingsTextWrap: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ gridInstance.allowTextWrap = args.checked;
+ }
+ }),
+
+ singleColumnSettingsClipMode: ((args: ChangeEventArgs, data?: any) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.field === "ShipAddress") {
+ col.clipMode = data.properties.text;
+ gridInstance.refreshColumns();
+ }
+ });
+ }
+ }),
+
+ frozenChange: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.headerText === 'Order ID') {
+ if (args.checked) {
+ col.isFrozen = true;
+ } else {
+ col.isFrozen = false;
+ }
+ }
+ });
+ }
+ }),
+
+ singleColumnSettingsFreeze: ((args: ChangeEventArgs, data?: any) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.headerText === "Commands" && data.properties.text === 'Right') {
+ col.freeze = data.properties.text;
+ gridInstance.refreshColumns();
+ }
+ });
+ }
+ }),
+
+ singleColumnSettingsDateFormat: ((args: ChangeEventArgs, data: any) => {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.field === 'OrderDate') {
+ col.format = data.properties.text;
+ gridInstance.refreshColumns();
+ }
+ });
+ }),
+
+ singleColumnSettingsHeaderTextAlign: ((args: ChangeEventArgs, data?: any) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.field === "Freight") {
+ col.headerTextAlign = data.properties.text;
+ }
+ });
+ gridInstance.refreshColumns();
+ }
+ }),
+
+ singleColumnSettingsCellTextAlign: ((args: ChangeEventArgs, data?: any) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.field === "Freight") {
+ col.textAlign = data.properties.text;
+ }
+ });
+ gridInstance.refreshColumns();
+ }
+ }),
+
+ enableColumnEditing: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.index === 12) {
+ col.allowEditing = args.checked;
+ }
+ });
+ }
+ }),
+
+ enableColumnFiltering: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.index === 12) {
+ col.allowFiltering = args.checked;
+ }
+ });
+ }
+ }),
+
+ enableColumnGrouping: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.index === 12 || col.index === 15) {
+ col.allowGrouping = args.checked;
+ }
+ });
+ }
+ }),
+
+ enableColumnReordering: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.index === 12) {
+ col.allowReordering = args.checked;
+ }
+ });
+ }
+ }),
+
+ enableColumnResize: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.index === 12 || col.index === 15) {
+ col.allowResizing = args.checked;
+ }
+ });
+ }
+ }),
+
+ enableColumnSearching: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.index === 12) {
+ col.allowSearching = args.checked;
+ }
+ });
+ }
+ }),
+
+ enableColumnSorting: ((args: ChangeEventArgs) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.index === 12 || col.index === 15) {
+ col.allowSorting = args.checked;
+ }
+ });
+ }
+ }),
+
+
+ singleColumnSettingsFormat: ((args: ChangeEventArgs, data: any) => {
+ if (gridInstance) {
+ let columns = gridInstance.getColumns();
+ columns.forEach((col) => {
+ if (col.field === 'Freight') {
+ col.format = data.properties.text;
+ gridInstance.refreshColumns();
+ }
+ });
+
+ const aggregateColumns = gridInstance.aggregates[0].columns;
+ aggregateColumns?.forEach((col) => {
+ if (col.field === "Freight") {
+ col.format = data.properties.text;
+ }
+ });
+ }
+ }),
+
+
+ handleFilterTypeChange: (value: any, dropRef: any) => {
+ const filterbarElement = document.getElementById("filterbar");
+ const barstatusElement = document.getElementById("barstatus");
+ const filterbarmodeElement = document.getElementById("filterbarmode");
+ const indicatorElement = document.getElementById("loadingindicator");
+ const infinitescrollingElement = document.getElementById("enableinfinitescrolling");
+ let filterbarCheckElement = filterbarElement?.querySelector('.e-checkbox-wrapper');
+ let barStatusCheckElement = barstatusElement?.querySelector('.e-checkbox-wrapper');
+ let infinitescrollingCheckElement = infinitescrollingElement?.querySelector('.e-checkbox-wrapper');
+
+ if (value === "Menu" || value === "Excel" || value === "CheckBox") {
+ filterbarCheckElement!.classList.add("e-checkbox-disabled");
+ filterbarCheckElement!.setAttribute("disabled", "true");
+ barStatusCheckElement!.classList.add("e-checkbox-disabled");
+ barStatusCheckElement!.setAttribute("disabled", "true");
+ dropRef['filterbarmode'].enabled = false;
+ filterbarmodeElement!.classList.add("e-disabled");
+ filterbarmodeElement!.setAttribute("disabled", "true");
+ if (value === "Excel" || value === "CheckBox") {
+ dropRef['loadingindicator'].enabled = true;
+ indicatorElement!.classList.remove("e-disabled");
+ indicatorElement!.removeAttribute("disabled");
+ infinitescrollingCheckElement!.classList.remove("e-checkbox-disabled");
+ infinitescrollingCheckElement!.removeAttribute("disabled");
+ } else {
+ if (value === "Menu") {
+ dropRef['loadingindicator'].enabled = false;
+ indicatorElement!.classList.add("e-disabled");
+ indicatorElement!.setAttribute("disabled", "true");
+ infinitescrollingCheckElement!.classList.add("e-checkbox-disabled");
+ infinitescrollingCheckElement!.setAttribute("disabled", "true");
+ }
+ }
+ } else {
+ filterbarCheckElement!.classList.remove("e-checkbox-disabled");
+ filterbarCheckElement!.removeAttribute("disabled");
+ barStatusCheckElement!.classList.remove("e-checkbox-disabled");
+ barStatusCheckElement!.removeAttribute("disabled");
+ dropRef['filterbarmode'].enabled = true;
+ filterbarmodeElement!.classList.remove("e-disabled");
+ filterbarmodeElement!.removeAttribute("disabled");
+ if (value === "FilterBar") {
+ dropRef['loadingindicator'].enabled = false;
+ indicatorElement!.classList.add("e-disabled");
+ indicatorElement!.setAttribute("disabled", "true");
+ infinitescrollingCheckElement!.classList.add("e-checkbox-disabled");
+ infinitescrollingCheckElement!.setAttribute("disabled", "true");
+ }
+
+ }
+ },
+
+
+ disableDropdownItem: (data: any, dropRef: any, id: string) => {
+ if (gridInstance.enableVirtualization || gridInstance.enableInfiniteScrolling) {
+ dropRef["editmode"].dataSource = dropdownDataSource.editModeModified;
+ dropRef["newrowposition"].enabled = false;
+ } else {
+ dropRef["editmode"].dataSource = dropdownDataSource.editMode;
+ dropRef["newrowposition"].enabled = true;
+ }
+ },
+
+ selectionTypeChange: (value: any, dropRef: any) => {
+ const selectionTypeItems = document.getElementById("simplemultirow");
+ const checkboxSelection = document.getElementById("checkboxonly");
+
+ const simpleMultiRowCheckbox = selectionTypeItems?.querySelector('.e-checkbox-wrapper') as HTMLElement;
+ const simpleMultiRowInput = selectionTypeItems?.querySelector('input[type="checkbox"]') as any;
+
+ const checkboxOnlyCheckbox = checkboxSelection?.querySelector('.e-checkbox-wrapper') as HTMLElement;
+ const checkboxOnlyInput = checkboxSelection?.querySelector('input[type="checkbox"]') as HTMLInputElement;
+
+ const disableCheckbox = (checkbox: HTMLElement | null, input: HTMLInputElement | null) => {
+ checkbox?.classList.add("e-checkbox-disabled");
+ checkbox?.setAttribute("disabled", "true");
+ if (input) input.checked = false; // uncheck if disabled
+ };
+
+ const enableCheckbox = (checkbox: HTMLElement | null) => {
+ checkbox?.classList.remove("e-checkbox-disabled");
+ checkbox?.removeAttribute("disabled");
+ };
+
+ switch (value) {
+ case 'Single':
+ disableCheckbox(simpleMultiRowCheckbox, simpleMultiRowInput);
+ enableCheckbox(checkboxOnlyCheckbox);
+ if (!isNullOrUndefined(simpleMultiRowInput.ej2_instances)) {
+ simpleMultiRowInput.ej2_instances[0].checked = false;
+ gridInstance.selectionSettings.enableSimpleMultiRowSelection = false;
+ }
+ setCheckboxValues((prev) => {
+ prev.simplemultirow = false;
+ Object.keys(checkboxValues).forEach((prop) => {
+ checkboxValues[prop] = prev[prop];
+ });
+ return prev;
+ });
+ break;
+
+ case 'Multiple':
+ enableCheckbox(simpleMultiRowCheckbox);
+ if (dropRef['checkboxmodedefault'].value !== 'ResetOnRowClick') {
+ enableCheckbox(checkboxOnlyCheckbox);
+ }
+ break;
+
+ case 'Default':
+ enableCheckbox(checkboxOnlyCheckbox);
+ if (dropRef['selectiontype'].value === 'Single') {
+ disableCheckbox(simpleMultiRowCheckbox, simpleMultiRowInput);
+ } else {
+ enableCheckbox(simpleMultiRowCheckbox);
+ }
+ break;
+
+ case 'ResetOnRowClick':
+ disableCheckbox(simpleMultiRowCheckbox, simpleMultiRowInput);
+ disableCheckbox(checkboxOnlyCheckbox, checkboxOnlyInput);
+ gridInstance.selectionSettings.enableSimpleMultiRowSelection = false;
+ break;
+
+ default:
+ break;
+ }
+ },
+
+ handlePagingChange: (value: any, id: string, checkRef: any, eventName: string) => {
+ const setState = (keys: string[], prop: keyof HTMLInputElement, val: boolean) => {
+ keys.forEach(k => checkRef[k][prop] = val);
+ };
+
+ const disableAllEnableVirtual = () => {
+ setState(['autofill', 'paging', 'infinitescroll'], 'disabled', true);
+ checkRef['virtualization'].disabled = false;
+ checkRef['virtualization'].checked = true;
+ };
+
+ const enableAllAndCheckPaging = () => {
+ setState(['infinitescroll', 'paging', 'autofill'], 'disabled', false);
+ checkRef['paging'].checked = true;
+ };
+
+ if (eventName === 'Created') {
+ if (checkRef['paging'].checked) {
+ setState(['infinitescroll', 'virtualization'], 'disabled', true);
+ } else if (checkRef['virtualization'].checked) {
+ setState(['infinitescroll', 'autofill', 'paging'], 'disabled', true);
+ checkRef['paging'].checked = false;
+ } else if (checkRef['infinitescroll'].checked) {
+ setState(['virtualization', 'autofill', 'paging'], 'disabled', true);
+ checkRef['paging'].checked = false;
+ } else {
+ enableAllAndCheckPaging();
+ }
+ } else {
+ if (id === 'paging') {
+ if (!checkRef['paging'].checked) {
+ disableAllEnableVirtual();
+ } else {
+ setState(['infinitescroll', 'virtualization'], 'disabled', true);
+ }
+ }
+
+ if (id === 'virtualization') {
+ if (value) {
+ setState(['infinitescroll', 'autofill', 'paging'], 'disabled', true);
+ checkRef['paging'].checked = false;
+ } else {
+ enableAllAndCheckPaging();
+ }
+ }
+
+ if (id === 'infinitescroll') {
+ if (value) {
+ setState(['virtualization', 'autofill', 'paging'], 'disabled', true);
+ checkRef['paging'].checked = false;
+ } else {
+ enableAllAndCheckPaging();
+ }
+ }
+ }
+
+ setCheckboxValues((prev) => {
+ prev.paging = checkRef['paging'].checked;
+ prev.enableinfinitescrolling = checkRef['infinitescroll'].checked;
+ prev.virtualization = checkRef['virtualization'].checked;
+ Object.keys(checkboxValues).forEach((prop) => {
+ checkboxValues[prop] = prev[prop];
+ });
+ return prev;
+ });
+ }
+ };
+
+ const menuItemProperties = {
+ gridLineProperties: [
+ {
+ iconCss: 'e-icons e-border-all',
+ items: [
+ { text: 'Both', id: 'GridLine Both', method: menuItemMethods.gridLineValueChange, checkbox: true },
+ { text: 'Default', id: 'GridLine Default', method: menuItemMethods.gridLineValueChange, checkbox: false },
+ { text: 'Horizontal', id: 'GridLine Horizontal', method: menuItemMethods.gridLineValueChange, checkbox: false },
+ { text: 'Vertical', id: 'GridLine Vertical', method: menuItemMethods.gridLineValueChange, checkbox: false },
+ { text: 'None', id: 'GridLine None', method: menuItemMethods.gridLineValueChange, checkbox: false }
+ ],
+ },
+ ],
+ aggregateValues: [
+ {
+ text: 'Sum',
+ items: [
+ { text: 'Sum', id: 'Aggregate Sum', checkbox: true, method: gridAggregateTemplates.SummaryCalculation },
+ { text: 'Average', id: 'Aggregate Average', checkbox: false, method: gridAggregateTemplates.SummaryCalculation },
+ { text: 'Min', id: 'Aggregate Min', checkbox: false, method: gridAggregateTemplates.SummaryCalculation },
+ { text: 'Max', id: 'Aggregate Max', checkbox: false, method: gridAggregateTemplates.SummaryCalculation },
+ { text: 'Count', id: 'Aggregate Count', checkbox: false, method: gridAggregateTemplates.SummaryCalculation }
+ ],
+ },
+ ],
+ aggregateGroupValues: [
+ {
+ text: 'Sum',
+ items: [
+ { text: 'Sum', id: 'Group Aggregate Sum', checkbox: true, method: gridAggregateTemplates.GroupSummaryCalculation },
+ { text: 'Average', id: 'Group Aggregate Average', checkbox: false, method: gridAggregateTemplates.GroupSummaryCalculation },
+ { text: 'Min', id: 'Group Aggregate Min', checkbox: false, method: gridAggregateTemplates.GroupSummaryCalculation },
+ { text: 'Max', id: 'Group Aggregate Max', checkbox: false, method: gridAggregateTemplates.GroupSummaryCalculation },
+ { text: 'Count', id: 'Group Aggregate Count', checkbox: false, method: gridAggregateTemplates.GroupSummaryCalculation }
+ ],
+ },
+ ],
+ columnMenuDateFormatProperties: [
+ {
+ text: 'Column Date',
+ iconCss: 'e-icons e-settings icon',
+ items: [
+ { text: 'yMMM', id: 'Date Format yMMM', method: menuItemMethods.singleColumnSettingsDateFormat, checkbox: false },
+ { text: 'dd/MM/yyyy', id: 'Date Format dd/MM/yyyy', method: menuItemMethods.singleColumnSettingsDateFormat, checkbox: true },
+ { text: 'dd.MM.yyyy', id: 'Date Format dd.MM.yyyy', method: menuItemMethods.singleColumnSettingsDateFormat, checkbox: false },
+ { text: 'dd/MM/yyyy hh:mm a', id: 'Date Format dd/MM/yyyy hh:mm a', method: menuItemMethods.singleColumnSettingsDateFormat, checkbox: false },
+ { text: 'MM/dd/yyyy hh:mm:ss a', id: 'Date Format MM/dd/yyyy hh:mm:ss a', method: menuItemMethods.singleColumnSettingsDateFormat, checkbox: false }
+ ],
+ },
+ ],
+ columnMenuFormatProperties: [
+ {
+ text: 'Column Number',
+ iconCss: 'e-icons e-settings icon',
+ items: [
+ {
+ text: 'Header Text Alignment',
+ items: [
+ { text: 'Left', id: 'Header Left', method: menuItemMethods.singleColumnSettingsHeaderTextAlign, checkbox: false },
+ { text: 'Right', id: 'Header Right', method: menuItemMethods.singleColumnSettingsHeaderTextAlign, checkbox: true },
+ { text: 'Center', id: 'Header Center', method: menuItemMethods.singleColumnSettingsHeaderTextAlign, checkbox: false },
+ { text: 'Justify', id: 'Header Justify', method: menuItemMethods.singleColumnSettingsHeaderTextAlign, checkbox: false },
+ ]
+ },
+ {
+ text: 'Cell Text Alignment',
+ items: [
+ { text: 'Left', id: 'Cell Left', method: menuItemMethods.singleColumnSettingsCellTextAlign, checkbox: false },
+ { text: 'Right', id: 'Cell Right', method: menuItemMethods.singleColumnSettingsCellTextAlign, checkbox: true },
+ { text: 'Center', id: 'Cell Center', method: menuItemMethods.singleColumnSettingsCellTextAlign, checkbox: false },
+ { text: 'Justify', id: 'Cell Justify', method: menuItemMethods.singleColumnSettingsCellTextAlign, checkbox: false },
+ ]
+ },
+ {
+ text: 'Data Operations',
+ items: [
+ { text: 'Enable Editing', method: menuItemMethods.enableColumnEditing, singlecheckbox: true },
+ { text: 'Enable Filtering', method: menuItemMethods.enableColumnFiltering, singlecheckbox: true },
+ { text: 'Enable Grouping', method: menuItemMethods.enableColumnGrouping, singlecheckbox: true },
+ { text: 'Enable Reordering', method: menuItemMethods.enableColumnReordering, singlecheckbox: true },
+ { text: 'Enable Resizing', method: menuItemMethods.enableColumnResize, singlecheckbox: true },
+ { text: 'Enable Searching', method: menuItemMethods.enableColumnSearching, singlecheckbox: true },
+ { text: 'Enable Sorting', method: menuItemMethods.enableColumnSorting, singlecheckbox: false }
+ ]
+ },
+ {
+ text: 'Format',
+ items: [
+ { text: 'p0', id: 'Number Format p0', method: menuItemMethods.singleColumnSettingsFormat, checkbox: false },
+ { text: 'p1', id: 'Number Format p1', method: menuItemMethods.singleColumnSettingsFormat, checkbox: false },
+ { text: 'n0', id: 'Number Format n0', method: menuItemMethods.singleColumnSettingsFormat, checkbox: false },
+ { text: 'n1', id: 'Number Format n1', method: menuItemMethods.singleColumnSettingsFormat, checkbox: false },
+ { text: 'n2', id: 'Number Format n2', method: menuItemMethods.singleColumnSettingsFormat, checkbox: false },
+ { text: 'C2', id: 'Number Format C2', method: menuItemMethods.singleColumnSettingsFormat, checkbox: true }
+ ]
+ }
+ ],
+ },
+ ],
+ columnMenuCheckboxProperties: [
+ {
+ text: 'Column Verified',
+ iconCss: 'e-icons e-settings icon',
+ items: [
+ { text: 'Display as checkbox', method: menuItemMethods.enableCheckBoxChange, singlecheckbox: true },
+ { text: 'Visible', method: menuItemMethods.hideSpecifiedColumn, singlecheckbox: true }
+ ],
+ },
+ ],
+ columnMenuProperties: [
+ {
+ text: 'Column Name',
+ iconCss: 'e-icons e-settings icon',
+ items: [
+ {
+ text: 'Clip Mode',
+ items: [
+ { text: 'Clip', id: 'ClipMode_Clip', method: menuItemMethods.singleColumnSettingsClipMode, checkbox: false },
+ { text: 'Ellipsis', id: 'ClipMode_Ellipsis', method: menuItemMethods.singleColumnSettingsClipMode, checkbox: false },
+ { text: 'EllipsisWithTooltip', id: 'ClipMode_EllipsisWithTooltip', method: menuItemMethods.singleColumnSettingsClipMode, checkbox: true },
+ ]
+ },
+ { text: 'Enable Resizing', method: menuItemMethods.enableColumnResize, singlecheckbox: true },
+ { text: 'Enable Grouping', method: menuItemMethods.enableColumnGrouping, singlecheckbox: true },
+ { text: 'Enable Text Wrap', method: menuItemMethods.singleColumnSettingsTextWrap, singlecheckbox: false },
+ { text: 'Enable Sorting', method: menuItemMethods.enableColumnSorting, singlecheckbox: false }
+ ],
+ },
+ ],
+
+ columnMenuFreezeProperties: [
+ {
+ text: 'Column Name',
+ iconCss: 'e-icons e-settings icon',
+ items: [
+ { text: 'Display as HTML encode', method: menuItemMethods.htmlEncodeChange, singlecheckbox: true },
+ { text: 'Enable Frozen', method: menuItemMethods.frozenChange, singlecheckbox: true },
+ { separator: true },
+ {
+ text: 'Freeze',
+ items: [
+ { text: 'Left', id: 'Freeze Left', method: menuItemMethods.singleColumnSettingsFreeze, checkbox: true },
+ { text: 'Right', id: 'Freeze Right', method: menuItemMethods.singleColumnSettingsFreeze, checkbox: false },
+ { text: 'Fixed', id: 'Freeze Fixed', method: menuItemMethods.singleColumnSettingsFreeze, checkbox: false },
+ { text: 'None', id: 'Freeze None', method: menuItemMethods.singleColumnSettingsFreeze, checkbox: false },
+ ]
+ }
+ ],
+ },
+ ],
+
+ };
+
+ const propertyDescription: { [key: string]: string } = {
+ "Enable Editing": "Allows editing the cell content in this specific column. If true, the user can modify the cell value in-place.",
+ "Enable Reordering": "Allows the user to drag and reorder this column among others in the grid.",
+ "Enable Searching": "If enabled, this column's values will be included in global search operations (like search textbox above the grid).",
+ "Enable Resizing": "Enables users to adjust the width of the column by dragging its header edge.",
+ "Enable Sorting": "The allowSorting property enables the sorting of grid records when clicking on the column header.",
+ "Enable Multi-Column Sorting": "The allowMultiSorting property enables the user to sort multiple column in the grid.",
+ "Enable Filtering": "The allowFiltering property enables the filter bar to be displayed.",
+ "Enable Grouping": "The allowGrouping property allows dynamically grouping or ungrouping columns. Grouping can be done by dragging and dropping columns from the column header to the group drop area",
+ "Enable Column Reordering": "The allowReordering property enables the reordering of grid columns by dragging and dropping columns from one index to another",
+ "Enable Column Resizing": "The allowResizing property enables the resizing of grid columns.",
+ "Enable Paging": "The allowPaging property enables a pager control to be rendered at the bottom of the grid, allowing you to navigate through different pages of data.",
+ "Enable Immutable Mode": "The enableImmutableMode property is set to true, the grid will reuse old rows if it exists in the new result instead of full refresh while performing the grid actions.",
+ "Allow Selection": "Various features enable selection processing in the Grid, including drag, hover, and focus interactions.",
+ "Enable Row Drag and Drop": "The allowRowDragAndDrop property is set to true, you can drag and drop grid rows at another grid",
+ "Enable Autofill": "When the enableAutoFill property is enabled, an auto-fill icon will be displayed when cells are selected for copying.",
+ "Show Column Menu": "The showColumnMenu property is set to true, it will enable the column menu options in each columns.",
+ "Allow Text Wrap": "The allowTextWrap property is set to true, then text content will wrap to the next line when its text content exceeds the width of the Column Cells.",
+ "Auto-Fit Column Content": "The autoFit property, when enabled, automatically adjusts the width of columns based on the given width.",
+ "Enable Alternate Row Styling": "The enableAltRow property is set to true, the grid will render with e-altrow CSS class to the alternative tr elements.",
+ "Enable Row Hover Effect": "The enableHover property is set to true, the row hover is enabled in the Grid.",
+ "Enable Header Focus": "The enableHeaderFocus is set to true, then header element will be focused when focus moves to grid.",
+ "Enable Excel Export": "Export the Grid to Excel.",
+ "Enable PDF Export": "Export the Grid to PDF",
+ "Enable Virtual Scrolling": "The enableVirtualization property allows the Grid to render only the rows visible within the viewport and load subsequent rows on vertical scrolling. This helps in efficiently handling large datasets in the Grid.",
+ "Enable Infinite Scrolling": "The enableInfiniteScrolling property is set to true, then the data will be loaded in Checkbox filter Popup content, when the scrollbar reaches the end. This helps to load large dataset in Checkbox filter Popup content.",
+ "Show Group Drop Area": "The showDropArea property makes the group drop area element visible at the top of the Grid.",
+ "Show Grouped Columns": "The showGroupedColumn property is set to false, it hides the grouped column after grouping.",
+ "Show Toggle Button": "The showToggleButton property is set to true, then the toggle button will be showed in the column headers which can be used to group or ungroup columns by clicking them.",
+ "Show Ungroup Icon in Header": "The showUngroupButton property is set to false, then ungroup button is hidden in dropped element. It can be used to ungroup the grouped column when click on ungroup button.",
+ "Enable Case Sensitivity": "The enableCaseSensitivity property is set to true then searches grid records with exact match based on the filter operator. It will have no effect on number, boolean and Date fields.",
+ "Ignore accent": "The ignoreAccent property is set to true, then filter ignores the diacritic characters or accents while filtering or searching.",
+ "Filter Type": "It provides various filter options such as menu, Excel-like filtering, filter bar, and checkboxes to refine and search data efficiently.",
+ "Show Filter Bar Operator": "The showFilterBarOperator property is set to true, then it renders the dropdownlist component to select the operator in filterbar input.",
+ "Show Filter Bar Status": "The filterBarStatus propperty is set to true, shows or hides the filtered status message on the pager.",
+ "Filter Bar Mode": "Filter bar modes define how filtering is triggered in the grid, either manually on Enter key press (OnEnter) or automatically after a delay (Immediate).",
+ "Loading Indicator Type": "Display a loading indicator while the data is being loaded.",
+ "Enable Toggle Selection": "The enableToggle property is set to true, then the user can able to perform toggle for the selected row.",
+ "Enable Column Selection": "The allowColumnSelection is set to true, then the user can able to select the columns.",
+ "Selection Type": "Specifies the selection types: Single (selects one row or cell) and Multiple (selects multiple rows or cells).",
+ "Enable Simple Multi Row Selection": "The enableSimpleMultiRowSelection property is set to true, then the user can able to perform multiple row selection with single clicks.",
+ "Allow Checkbox Selection Only": "The checkboxOnly property is set to true, then the Grid selection is allowed only through checkbox.",
+ "Checkbox Selection Mode": "The Checkbox selection mode controls how rows are selected: 'Default' allows selecting multiple rows one by one, while 'ResetOnRowClick' clears previous selections and selects only the current row.",
+ "Edit Mode": "Specifies the editing mode for the grid.",
+ "Allow Adding Row": "The allowAdding property is set to true, new records can be added to the Grid.",
+ "Allow Next Row Edit": "The allowNextRowEdit is set to true, editing is done to next row. By default allowNextRowEdit is set to false.",
+ "New Row Position": "Specifies where a new row is added in the grid.",
+ "Allow Editing Row": "The allowEditing is set to true, values can be updated in the existing record.",
+ "Edit on Double Click": "The allowEditOnDblClick is set to false, Grid will not allow editing of a record on double click.",
+ "Allow Delete Row": "The allowDeleting property is set to true, existing record can be deleted from the Grid.",
+ "Show Confirmation Dialog": "The showConfirmDialog is set to false, confirm dialog does not show when batch changes are saved or discarded.",
+ "Show Delete Confirmation Dialog": "The showDeleteConfirmDialog is set to true, confirm dialog will show delete action. You can also cancel delete command.",
+ "Localization": "Localization is the process of adapting software, content, or applications to a specific region, language, or culture by translating text, formatting data, and modifying UI elements to align with local preferences.",
+ "Theme": "A theme is a predefined set of visual styles, including colors, fonts, and layout, that determines the look and feel of an application or website. It helps create a consistent design across the entire interface.",
+ "Interaction Type": "Interaction types are the various ways users engage with a system, such as clicking, typing, or touching.",
+ "Enable RTL": "RTL (Right-to-Left) refers to the text direction used in languages like Arabic and Hebrew, where text is read and written starting from the right side of the page.",
+ "Aggregate_Sum": "Calculates the total of all values in the column.",
+ "Export": "Export the data as a PDF or Excel file using the available export properties",
+ "Scrolling": "To enhance data loading and navigation in the Grid.",
+ "Alignment": "Alignment of the columns header and cell contents.",
+ "Data Operations": "Data operations in the Grid help manage and organize data through sorting, filtering, grouping, and paging.",
+ "Aggregate_Average": "Computes the mean of all numeric values in the column.",
+ "Aggregate_Min": "Displays the smallest value in the column.",
+ "Aggregate_Max": "Displays the largest value in the column.",
+ "Aggregate_Count": "Shows the number of records in the column.",
+ "Group_Aggregate_Sum": "Calculates the total of all values in the column.",
+ "Group_Aggregate_Average": "Computes the mean of all numeric values in the column.",
+ "Group_Aggregate_Min": "Displays the smallest value in the column.",
+ "Group_Aggregate_Max": "Displays the largest value in the column.",
+ "Group_Aggregate_Count": "Shows the number of records in the column.",
+ "Allow selection": "The allowSelection property is set to true, it allows selection of (highlight row) Grid records by clicking it",
+ "Type": "Specifies the available filtering types, determining how data is filtered in the grid.",
+ "Clip Mode": "Specifies how overflowed cell content is displayed in the grid.",
+ "Freeze": "Specifies the column freeze direction in the grid.",
+ "Header text alignment": "Define the alignment of column header which is used to align the text of column header.",
+ "Cell text alignment": "Defines the alignment of the column in both header and content cells.",
+ "Searching": "The allowSearching property is set to false, then it disables Searching of a particular column. By default all columns allow Searching.",
+ "Display as HTML encode": "The disableHtmlEncode property is set to true, it encodes the HTML of the header and content cells.",
+ "Format": "Formats the displayed value without altering the original data. Supports standard and custom number or date formats.",
+ "Group by format": "The enableGroupByFormat property is set to true, then it groups the particular column by formatted values. By default no columns are group by format.",
+ "Display as checkbox": "The displayAsCheckBox property is set to true, it displays the column value as a check box instead of Boolean value.",
+ "Visible": "Controls column visibility in the grid. When visible is set to false, the column is hidden. By default, all columns are shown.",
+ "Operator": "Defines the search operator for Column Chooser.",
+ "Default": "This is the default checkboxMode, allowing users to select multiple rows by clicking them individually.",
+ "ResetOnRowClick": "In ResetOnRowClick mode, clicking a row resets the previously selected row. Multiple rows can be selected using the CTRL or SHIFT key.",
+ "Single": "Allows selection of only a row or a cell.",
+ "Multiple": "Allows selection of multiple rows or cells.",
+ "Normal": "Normal mode allows inline editing of a single row at a time.",
+ "Dialog": "Dialog opens a pop-up dialog for editing the selected row",
+ "Batch": "Batch enables multiple row edits before saving changes in bulk.",
+ "Top": "Inserts the new row at the beginning of the grid.",
+ "Bottom": "Adds the new row at the end of the grid.",
+ "ClipMode_Clip": "Truncates the cell content when it overflows its area.",
+ "ClipMode_Ellipsis": "Displays ellipsis when the cell content overflows its area.",
+ "ClipMode_EllipsisWithTooltip": "Displays ellipsis when the cell content overflows its area also it will display tooltip while hover on ellipsis applied cell.",
+ "ClipMode": "Defines the cell content’s overflow mode",
+ "Enable Frozen": "To freeze a specific column in the Grid, set the isFrozen property of that column to true.",
+ "Freeze_Left": "Freeze the column at left side.",
+ "Freeze_Right": "Freeze the column at right side.",
+ "Freeze_Fixed": "Freeze the column at center.",
+ "Freeze_None": "Does not freeze the column.",
+ "Header_Center": "Defines center alignment of the header text within the column.",
+ "Header_Left": "Defines justify alignment of the header text within the column.",
+ "Header_Right": "Defines center alignment of the header text within the column.",
+ "Header_Justify": "Defines justify alignment of the header text within the column.",
+ "Cell_Center": "Defines center alignment of the content text within the cell.",
+ "Cell_Justify": "Defines justify alignment of the content text within the cell.",
+ "Cell_Left": "Defines left alignment of the content text within the cell.",
+ "Cell_Right": "Defines right alignment of the content text within the cell.",
+ "Number_Format_p0": "The number is converted to percentage with 0 decimal place",
+ "Number_Format_p1": "The number is converted to percentage with 1 decimal place",
+ "Number_Format_n0": "The number is rounded to 0 decimal place",
+ "Number_Format_n1": "The number is rounded to 1 decimal place",
+ "Number_Format_n2": "The number is rounded to 2 decimal place",
+ "Number_Format_C2": "The currency symbol is appended to number and number is rounded to 2 decimal place",
+ "Date_Format_yMMM": "Displays year and abbreviated month name",
+ "Date_Format_dd/MM/yyyy": "Common date format (day-first) used in the UK, India, etc.",
+ "Date_Format_dd.MM.yyyy": "European format using dots as separators",
+ "Date_Format_dd/MM/yyyy_hh:mm_a": "Displays date with time in 12-hour format",
+ "Date_Format_MM/dd/yyyy_hh:mm:ss_a": "US format with full timestamp and AM/PM",
+ "Spinner": "Shows a rotating loader to indicate processing",
+ "Shimmer": "Displays a shimmering effect as a placeholder until data loads.",
+ "OnEnter": "Initiates filter operation after Enter key is pressed.",
+ "Immediate": "Initiates filter operation after a certain time interval. By default, time interval is 1500 ms.",
+ "Menu": "Specifies the filter type as menu.",
+ "Checkbox": "Specifies the filter type as checkbox.",
+ "FilterBar": "Specifies the filter type as filterbar.",
+ "Excel": "Specifies the filter type as checkbox.",
+ "Selection type": "Selection types include Single (selects one row or cell) and Multiple (selects multiple rows or cells).",
+ "Small": " Compact rows with minimal spacing (25px) for a tighter layout.",
+ "Medium": "Balanced spacing (36px) for better readability and a comfortable view.",
+ "Large": "Wide spacing (60px) for a clear and spacious data display.",
+ "GridLine_Default": "Displays grid lines based on the theme.",
+ "GridLine_Both": "Displays both the horizontal and vertical grid lines.",
+ "GridLine_Vertical": "Displays the vertical grid lines only.",
+ "GridLine_Horizontal": "Displays the horizontal grid lines only.",
+ "GridLine_None": "No grid lines are displayed.",
+ "Persist Selection": "The persistSelection is set to true, the Grid selection is maintained across all operations, and at least one column must be enabled as the primary key to persist the selection.",
+ "Enable Text Wrap": "When the cell/header content exceeds the column width, it wraps onto multiple lines to ensure the entire text is visible."
+ };
+
+ const menuItemTemplates = {
+
+ gridLineCustomization: () => {
+ return (
+