ods-component-lib 1.18.165 → 1.18.167

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/components/devextreme/OdsMasterDetailDataGrid/OdsMasterDetailDataGrid.d.ts +4 -0
  2. package/dist/components/devextreme/OdsMasterDetailDataGrid/handlers/OnActionButtons.d.ts +9 -0
  3. package/dist/components/devextreme/OdsMasterDetailDataGrid/handlers/OnActionCellRenderHandler.d.ts +11 -0
  4. package/dist/components/devextreme/OdsMasterDetailDataGrid/handlers/OnExportingHandler.d.ts +10 -0
  5. package/dist/components/devextreme/OdsMasterDetailDataGrid/types.d.ts +91 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +207 -21
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.modern.js +207 -22
  10. package/dist/index.modern.js.map +1 -1
  11. package/package.json +1 -1
  12. package/dist/components/antd/form/OdsBasicForm.d.ts +0 -18
  13. package/dist/components/antd/icon/OdsIcon.d.ts +0 -10
  14. package/dist/components/antd/modal/OdsAdvanceModal.d.ts +0 -7
  15. package/dist/components/antd/select/OdsCustomMultiSelect.d.ts +0 -7
  16. package/dist/components/antd/select/OdsMultiSelect.d.ts +0 -9
  17. package/dist/components/custom/OdsLogin.d.ts +0 -8
  18. package/dist/components/devextreme/DxDataPopupForm.d.ts +0 -3
  19. package/dist/components/devextreme/DynamicIcon.d.ts +0 -5
  20. package/dist/components/devextreme/OdsDataGridNew.d.ts +0 -56
  21. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/ContentHandlers.d.ts +0 -14
  22. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/EditorPreparedHandlers.d.ts +0 -7
  23. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/OnExportingHandlers.d.ts +0 -19
  24. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/OptionHandlers.d.ts +0 -7
  25. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/SummaryHandlers.d.ts +0 -21
  26. package/dist/components/devextreme/OdsInlineEditDataGrid/partials/ActionCellRender.d.ts +0 -15
  27. package/dist/components/devextreme/OdsInlineEditDataGrid/partials/EditingPartial.d.ts +0 -9
  28. package/dist/components/devextreme/OdsInlineEditDataGrid/partials/PageTitle.d.ts +0 -8
  29. package/dist/components/devextreme/OdsInlineEditDataGrid/utils.d.ts +0 -19
  30. package/dist/components/devextreme/OdsProfDataGrid.d.ts +0 -3
  31. package/dist/components/devextreme/treeview/DxTreeView.d.ts +0 -3
  32. package/dist/stories/OdsAdvanceModal/OdsAdvanceModal.stories.d.ts +0 -42
  33. package/dist/stories/OdsAdvanceModal/Samples/BasicOdsAdvanceModal.sample.d.ts +0 -8
  34. package/dist/stories/OdsCustomMultiSelect/OdsCustomMultiSelect.stories.d.ts +0 -9
  35. package/dist/stories/OdsCustomMultiSelect/Samples/Basic.Sample.d.ts +0 -1
  36. package/dist/stories/OdsCustomMultiSelect/Samples/ModeMultiple.Sample.d.ts +0 -1
  37. package/dist/stories/OdsLink/OdsLink.stories.d.ts +0 -59
  38. package/dist/stories/OdsTimePicker/Samples/TimeRangePicker.d.ts +0 -2
  39. /package/dist/components/antd/datepicker/{OdsDateRangePicker.d.ts → OdsDateRangepicker.d.ts} +0 -0
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { IMasterDetailGridProps } from "./types";
3
+ declare const MasterDetailDataGrid: React.FC<IMasterDetailGridProps>;
4
+ export default MasterDetailDataGrid;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Custom React hook that determines which action buttons to display based on the edit state and the number of buttons.
3
+ * It limits the number of visible action buttons to the first two if there are more than three and editing is not active.
4
+ *
5
+ * @param {Array} actionButtonGroup - Array of all action button configurations.
6
+ * @param {boolean|Object} edit - Indicates if the edit mode is active, which may affect the visibility of action buttons.
7
+ * @returns {Array} A subset of action buttons based on the provided conditions.
8
+ */
9
+ export declare function useActionButtons(actionButtonGroup: any, edit: any): any;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { IActionButtonsTooltipType, IButtonGrouOptions, IEditingOptions } from "../types";
3
+ /**
4
+ * Custom hook that returns a callback function for rendering action buttons in a cell.
5
+ * @param visibleActionButtons - An array of options for visible action buttons.
6
+ * @param actionButtonGroup - An array of options for action buttons.
7
+ * @param edit - An object containing editing options.
8
+ * @param tooltipType - The type of tooltip to display.
9
+ * @returns The onActionCellRender callback function.
10
+ */
11
+ export declare const useOnActionCellRenderHandler: (visibleActionButtons: IButtonGrouOptions[] | undefined, actionButtonGroup: IButtonGrouOptions[] | undefined, edit?: IEditingOptions | undefined, actionButtonsTooltipType?: IActionButtonsTooltipType | undefined) => (cellData: any | undefined) => React.JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { IExportOptions } from "../types";
2
+ /**
3
+ * Handles the exporting of data from the grid component.
4
+ *
5
+ * @param {IExportOptions} exportProps - The export options for the data grid.
6
+ * @param {Function} callback - The callback function to be executed after exporting.
7
+ * @param {() => string} getSummary - The callback function to get the summary info.
8
+ * @returns {Function} - The onExporting event handler function.
9
+ */
10
+ export declare const useOnExportingHandler: (exportProps: IExportOptions, getSummary: () => string, callback?: Function) => (e: any) => void;
@@ -0,0 +1,91 @@
1
+ /// <reference types="react" />
2
+ import { IButtonProps, IColumnProps, IEditingProps, IExportProps, IScrollingProps, ISummaryProps } from "devextreme-react/data-grid";
3
+ import { ButtonType } from "devextreme/common";
4
+ export interface IColumnOptions extends Omit<IColumnProps, "cellRender" | "calculateFilterExpression" | "format"> {
5
+ cellRender?: (data: any) => JSX.Element | string;
6
+ calculateFilterExpression?: (value: any, operation: string, target: string) => any;
7
+ format?: string | object;
8
+ allowFiltering?: boolean;
9
+ }
10
+ export interface IActionButton {
11
+ icon: JSX.Element;
12
+ visible: boolean;
13
+ disabled: boolean;
14
+ hint: string;
15
+ onClick?: () => void;
16
+ }
17
+ export interface IMasterDetailOptions {
18
+ enabled?: boolean;
19
+ component?: (row: any) => JSX.Element;
20
+ autoExpandAll?: boolean;
21
+ }
22
+ export interface IMasterDetailFeatures {
23
+ allowActions?: boolean;
24
+ createFilter?: boolean;
25
+ showCheckbox?: boolean;
26
+ exportEnabled?: boolean;
27
+ toolbarItems?: React.ReactNode[];
28
+ dynamicHeight?: boolean;
29
+ columnChooser?: boolean;
30
+ maxHeight?: number;
31
+ detailData?: any[];
32
+ exportProps?: IExportOptions;
33
+ actionColumnEnable?: boolean;
34
+ detailGridColumns?: IColumnOptions[];
35
+ pageSize?: number;
36
+ showSearchPanel?: boolean;
37
+ masterActionButtonGroup?: IActionButton[];
38
+ detailToolbar?: (e: any) => void;
39
+ }
40
+ export interface IMasterDetailDatas {
41
+ detailData?: any;
42
+ detailGridColumns?: IColumnOptions[];
43
+ }
44
+ export interface IMasterDetailGridProps {
45
+ columns?: IColumnOptions[];
46
+ dataSource: any[];
47
+ masterDetailFeatures?: IMasterDetailFeatures;
48
+ masterDetailData?: IMasterDetailDatas;
49
+ }
50
+ export interface IButtonGrouOptions extends Omit<IButtonProps, "name"> {
51
+ name?: "cancel" | "delete" | "edit" | "save" | "undelete" | "unmap";
52
+ type?: ButtonType;
53
+ label?: string;
54
+ onclick?: React.MouseEventHandler<HTMLElement>;
55
+ actionPermission?: boolean;
56
+ icon: any;
57
+ }
58
+ export interface IScrollingOptions extends Partial<IScrollingProps> {
59
+ }
60
+ export declare type IActionButtonsTooltipType = "raw" | "styled";
61
+ export interface ISummaryRowOptions {
62
+ summaryLoadedDataLabel?: string;
63
+ summaryTotalDataLabel?: string;
64
+ summaryFilteredDataLabel?: string;
65
+ summaryItems?: ISummaryProps[];
66
+ summaryTotalCount?: number;
67
+ summaryTotalPageCountLabel?: string;
68
+ showSumInSummary?: boolean;
69
+ showAvgInSummary?: boolean;
70
+ showCountInSummary?: boolean;
71
+ showMaxInSummary?: boolean;
72
+ showMinInSummary?: boolean;
73
+ summarySumLabel?: string;
74
+ summaryAvgLabel?: string;
75
+ summaryMinLabel?: string;
76
+ summaryMaxLabel?: string;
77
+ summaryCountLabel?: string;
78
+ }
79
+ export interface IEditingOptions extends Omit<IEditingProps, "mode"> {
80
+ mode?: "row" | "cell" | "batch";
81
+ formItems?: any[];
82
+ title?: string;
83
+ }
84
+ export interface IExportOptions extends Partial<IExportProps> {
85
+ enabled: boolean;
86
+ allowExportSelectedData?: boolean;
87
+ fileName?: string;
88
+ selectedText?: string;
89
+ activeText?: string;
90
+ passiveText?: string;
91
+ }
package/dist/index.d.ts CHANGED
@@ -54,6 +54,7 @@ import OdsBasicDataGrid from "./components/devextreme/OdsBasicDataGrid/OdsBasicD
54
54
  import OdsTransfer from "./components/devextreme/OdsTransfer";
55
55
  import OdsServerSideDatagrid from "./components/devextreme/OdsServerSideDatagrid/OdsServerSideDatagrid";
56
56
  import OdsInlineEditDataGrid from "./components/devextreme/OdsInlineEditDataGrid/OdsInlineEditDataGrid";
57
+ import OdsMasterDetailDataGrid from "./components/devextreme/OdsMasterDetailDataGrid/OdsMasterDetailDataGrid";
57
58
  export { OdsButton };
58
59
  export { OdsInput };
59
60
  export { OdsDropdownButton };
@@ -89,6 +90,7 @@ export { OdsTimeline };
89
90
  export { OdsRangeTimepicker };
90
91
  export { OdsInputNumber };
91
92
  export { OdsPhoneInput };
93
+ export { OdsMasterDetailDataGrid };
92
94
  export { OdsText };
93
95
  export { OdsTitle };
94
96
  export { OdsParagraph };
package/dist/index.js CHANGED
@@ -32975,7 +32975,7 @@ var ExportDataGridToExcel = function ExportDataGridToExcel(_ref) {
32975
32975
  horizontal: 'left'
32976
32976
  };
32977
32977
  }
32978
- if (gridCell.rowType === "data" && gridCell.column.dataType === "boolean" && gridCell.column.dataField.toLowerCase() === "isactive") {
32978
+ if (gridCell.column.dataField.toLowerCase() === "isactive") {
32979
32979
  excelCell.value = gridCell.value === true ? "" + activeText : "" + passiveText;
32980
32980
  }
32981
32981
  }
@@ -33707,6 +33707,7 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33707
33707
  key: col.dataField
33708
33708
  }, col, {
33709
33709
  minWidth: 50,
33710
+ width: 160,
33710
33711
  cssClass: col.cssClass + " " + (hasFastUpdate ? "grid-cell-disable-text-selection" : "")
33711
33712
  }), col.lookUp && React__default.createElement(devextremeReact.Lookup, Object.assign({}, col.lookUp)), (col.dataField === "IsActive" || col.dataField === "isActive") && React__default.createElement(DataGrid.HeaderFilter, {
33712
33713
  dataSource: [{
@@ -34527,6 +34528,11 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
34527
34528
  var currentPageIndex = dataGridInstance.pageCount();
34528
34529
  var currentTotalCount = currentPageIndex == 0 ? 50 : dataGridInstance.totalCount();
34529
34530
  var newData = dataGridInstance === null || dataGridInstance === void 0 ? void 0 : (_dataGridInstance$get = dataGridInstance.getDataSource()) === null || _dataGridInstance$get === void 0 ? void 0 : _dataGridInstance$get.items();
34531
+ if (filterApplied) {
34532
+ totalFilteredCount.current = currentTotalCount;
34533
+ } else {
34534
+ totalUnfilteredCount.current = currentTotalCount;
34535
+ }
34530
34536
  if ((!filterApplied && currentPageIndex == 1 && currentTotalCount != totalUnfilteredCount.current || lastPageIndexRef.current !== currentPageIndex) && newData && newData.length > 0) {
34531
34537
  setCurrentPage(currentPageIndex);
34532
34538
  setCurrentPageSize(dataGridInstance.pageSize());
@@ -34536,16 +34542,6 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
34536
34542
  });
34537
34543
  lastPageIndexRef.current = currentPageIndex;
34538
34544
  }
34539
- if (currentTotalCount > 0) {
34540
- if (filterApplied) {
34541
- totalFilteredCount.current = currentTotalCount;
34542
- } else {
34543
- totalUnfilteredCount.current = currentTotalCount;
34544
- }
34545
- if (!filterApplied && totalFilteredCount.current === 0) {
34546
- totalFilteredCount.current = totalUnfilteredCount.current;
34547
- }
34548
- }
34549
34545
  }, [props.columns, filterApplied]);
34550
34546
  var handleOptionChanged = React.useCallback(function (e) {
34551
34547
  var dataGrid = props.dataGridRef.current.instance;
@@ -34766,7 +34762,8 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
34766
34762
  return React__default.createElement(DataGrid.Column, Object.assign({
34767
34763
  key: col.dataField
34768
34764
  }, col, {
34769
- minWidth: 10
34765
+ minWidth: 10,
34766
+ width: 160
34770
34767
  }), col.lookUp && React__default.createElement(devextremeReact.Lookup, Object.assign({}, col.lookUp)), col.dataField === "IsActive" && React__default.createElement(DataGrid.HeaderFilter, {
34771
34768
  dataSource: [{
34772
34769
  text: "Active",
@@ -34929,17 +34926,17 @@ var useOnContentReadyHandler = function useOnContentReadyHandler(columns, lastPa
34929
34926
  var currentPageIndex = dataGridInstance.pageIndex();
34930
34927
  var currentTotalCount = dataGridInstance.totalCount();
34931
34928
  var newData = dataGridInstance === null || dataGridInstance === void 0 ? void 0 : (_dataGridInstance$get = dataGridInstance.getDataSource()) === null || _dataGridInstance$get === void 0 ? void 0 : _dataGridInstance$get.items();
34929
+ if (filterApplied) {
34930
+ totalFilteredCount.current = currentTotalCount;
34931
+ } else {
34932
+ totalUnfilteredCount.current = currentTotalCount;
34933
+ }
34934
+ if (!filterApplied && totalFilteredCount.current === 0) {
34935
+ totalFilteredCount.current = totalUnfilteredCount.current;
34936
+ }
34932
34937
  if (lastPageIndexRef.current !== currentPageIndex && newData && newData.length > 0) {
34933
34938
  setCurrentPage(currentPageIndex);
34934
34939
  setCurrentPageSize(dataGridInstance.pageSize());
34935
- if (filterApplied) {
34936
- totalFilteredCount.current = currentTotalCount;
34937
- } else {
34938
- totalUnfilteredCount.current = currentTotalCount;
34939
- }
34940
- if (!filterApplied && totalFilteredCount.current === 0) {
34941
- totalFilteredCount.current = totalUnfilteredCount.current;
34942
- }
34943
34940
  setUpdateTrigger(function (prev) {
34944
34941
  return !prev;
34945
34942
  });
@@ -35187,7 +35184,8 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35187
35184
  return React__default.createElement(DataGrid.Column, Object.assign({
35188
35185
  key: col.dataField
35189
35186
  }, col, {
35190
- minWidth: 10
35187
+ minWidth: 10,
35188
+ width: 160
35191
35189
  }), col.lookup && React__default.createElement(DataGrid.Lookup, Object.assign({}, col.lookup)), col.headerFilter && React__default.createElement(DataGrid.HeaderFilter, Object.assign({}, col.headerFilter, {
35192
35190
  visible: true,
35193
35191
  allowSearch: true
@@ -35279,6 +35277,193 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35279
35277
  }, React__default.createElement("p", null, renderTotal())));
35280
35278
  };
35281
35279
 
35280
+ var useOnActionCellRenderHandler$1 = function useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroup, edit, actionButtonsTooltipType) {
35281
+ var onActionCellRender = React.useCallback(function (cellData) {
35282
+ if (!cellData || !visibleActionButtons) return null;
35283
+ var kebabMenuButtons = actionButtonGroup && actionButtonGroup.length >= 2 && !edit ? actionButtonGroup.slice(2).map(function (button) {
35284
+ return {
35285
+ icon: button.icon,
35286
+ onClick: function onClick(event) {
35287
+ var customEvent = {
35288
+ column: cellData.column,
35289
+ component: cellData.component,
35290
+ element: cellData.element,
35291
+ event: event,
35292
+ model: cellData.data,
35293
+ row: cellData.row
35294
+ };
35295
+ button.onClick(customEvent);
35296
+ }
35297
+ };
35298
+ }) : [];
35299
+ var buttonElements = visibleActionButtons.map(function (buttonItem) {
35300
+ var isVisible = typeof buttonItem.visible === "function" ? buttonItem.visible({
35301
+ column: cellData.column,
35302
+ component: cellData.component,
35303
+ row: cellData.row
35304
+ }) : buttonItem.visible;
35305
+ return React__default.createElement(OdsDataGrdiRowButton, Object.assign({
35306
+ key: "action-button-" + buttonItem.name,
35307
+ name: buttonItem.name,
35308
+ hint: buttonItem.hint,
35309
+ visible: isVisible,
35310
+ size: "small",
35311
+ type: "text",
35312
+ disabled: buttonItem.actionPermission === undefined ? false : !buttonItem.actionPermission,
35313
+ icon: buttonItem.icon
35314
+ }, actionButtonsTooltipType === "styled" && {
35315
+ tooltip: buttonItem.hint
35316
+ }, {
35317
+ onClick: function onClick(event) {
35318
+ if (buttonItem.onClick) {
35319
+ var customEvent = {
35320
+ column: cellData.column,
35321
+ component: cellData.component,
35322
+ element: cellData.element,
35323
+ event: event,
35324
+ model: cellData.data,
35325
+ row: cellData.row
35326
+ };
35327
+ buttonItem.onClick(customEvent);
35328
+ }
35329
+ }
35330
+ }));
35331
+ });
35332
+ if (kebabMenuButtons.length > 0) {
35333
+ buttonElements.push(React__default.createElement(OdsDropdown, {
35334
+ key: "dropdown-" + (cellData.rowIndex || cellData.data.ID),
35335
+ menuItems: kebabMenuButtons
35336
+ }, React__default.createElement(OdsDataGrdiRowButton, {
35337
+ type: "text",
35338
+ icon: React__default.createElement(DynamicIcon, {
35339
+ iconName: "kebabMenu"
35340
+ })
35341
+ })));
35342
+ }
35343
+ return React__default.createElement(React__default.Fragment, null, buttonElements);
35344
+ }, [visibleActionButtons]);
35345
+ return onActionCellRender;
35346
+ };
35347
+
35348
+ var useOnExportingHandler$1 = function useOnExportingHandler(exportProps, getSummary, callback) {
35349
+ var onExporting = React.useCallback(function (e) {
35350
+ if (exportProps) {
35351
+ var _exportProps$fileName, _exportProps$activeTe, _exportProps$passiveT;
35352
+ ExportDataGridToExcel({
35353
+ gridComponent: e.component,
35354
+ baseFileName: (_exportProps$fileName = exportProps.fileName) != null ? _exportProps$fileName : "DataGrid",
35355
+ selectedText: exportProps.selectedText,
35356
+ getSummary: getSummary,
35357
+ selectedRowsOnly: e.selectedRowsOnly,
35358
+ activeText: (_exportProps$activeTe = exportProps.activeText) != null ? _exportProps$activeTe : "Active",
35359
+ passiveText: (_exportProps$passiveT = exportProps.passiveText) != null ? _exportProps$passiveT : "Passive"
35360
+ });
35361
+ }
35362
+ if (callback) {
35363
+ callback(e);
35364
+ }
35365
+ }, [getSummary]);
35366
+ return onExporting;
35367
+ };
35368
+
35369
+ var MasterDetailDataGrid = function MasterDetailDataGrid(_ref) {
35370
+ var columns = _ref.columns,
35371
+ dataSource = _ref.dataSource,
35372
+ _ref$masterDetailFeat = _ref.masterDetailFeatures,
35373
+ masterDetailFeatures = _ref$masterDetailFeat === void 0 ? {} : _ref$masterDetailFeat,
35374
+ masterDetailData = _ref.masterDetailData;
35375
+ var visibleActionButtons = React.useMemo(function () {
35376
+ if (masterDetailFeatures.masterActionButtonGroup && masterDetailFeatures.masterActionButtonGroup.length >= 2) {
35377
+ return masterDetailFeatures.masterActionButtonGroup.slice(0, 2);
35378
+ }
35379
+ return masterDetailFeatures.masterActionButtonGroup || [];
35380
+ }, [masterDetailFeatures.masterActionButtonGroup]);
35381
+ var onActionCellRender = useOnActionCellRenderHandler$1(visibleActionButtons, masterDetailFeatures.masterActionButtonGroup);
35382
+ var getTotalDataCount = function getTotalDataCount() {
35383
+ return "" + dataSource.length;
35384
+ };
35385
+ var handleExporting = useOnExportingHandler$1(masterDetailFeatures.exportProps, getTotalDataCount);
35386
+ var effectiveColumns = (masterDetailData === null || masterDetailData === void 0 ? void 0 : masterDetailData.detailGridColumns) || columns || (dataSource[0] ? Object.keys(dataSource[0]).map(function (key) {
35387
+ return {
35388
+ dataField: key,
35389
+ caption: key.charAt(0).toUpperCase() + key.slice(1),
35390
+ allowFiltering: true
35391
+ };
35392
+ }) : []);
35393
+ return React__default.createElement(DataGrid__default, {
35394
+ style: {
35395
+ maxHeight: masterDetailFeatures.maxHeight ? masterDetailFeatures.maxHeight + "px" : "400px",
35396
+ overflow: "auto"
35397
+ },
35398
+ dataSource: dataSource,
35399
+ showBorders: true,
35400
+ columnAutoWidth: true,
35401
+ allowColumnReordering: true,
35402
+ selection: {
35403
+ mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
35404
+ },
35405
+ paging: {
35406
+ enabled: true,
35407
+ pageSize: masterDetailFeatures.pageSize || 20
35408
+ },
35409
+ filterRow: {
35410
+ visible: masterDetailFeatures.createFilter
35411
+ },
35412
+ onExporting: handleExporting,
35413
+ onToolbarPreparing: masterDetailFeatures.detailToolbar
35414
+ }, effectiveColumns.map(function (col) {
35415
+ return React__default.createElement(DataGrid.Column, Object.assign({
35416
+ key: col.dataField
35417
+ }, col, {
35418
+ headerFilter: {
35419
+ visible: col.allowFiltering
35420
+ }
35421
+ }));
35422
+ }), React__default.createElement(DataGrid.ColumnChooser, {
35423
+ enabled: masterDetailFeatures.columnChooser,
35424
+ mode: "select"
35425
+ }, React__default.createElement(DataGrid.Position, {
35426
+ my: "right top",
35427
+ at: "right bottom",
35428
+ of: document.querySelector("." + "props.dataGridPageName") ? "." + "props.dataGridPageName" + " .dx-datagrid-column-chooser-button" : ".dx-datagrid-column-chooser-button"
35429
+ }), React__default.createElement(DataGrid.ColumnChooserSearch, {
35430
+ enabled: true,
35431
+ editorOptions: {
35432
+ placeholder: ""
35433
+ }
35434
+ }), React__default.createElement(DataGrid.HeaderFilter, {
35435
+ visible: true
35436
+ }), React__default.createElement(DataGrid.ColumnChooserSelection, {
35437
+ allowSelectAll: true,
35438
+ selectByClick: true,
35439
+ recursive: true
35440
+ })), (masterDetailFeatures === null || masterDetailFeatures === void 0 ? void 0 : masterDetailFeatures.exportEnabled) && React__default.createElement(DataGrid.Export, Object.assign({}, masterDetailFeatures.exportProps)), masterDetailFeatures.actionColumnEnable && React__default.createElement(DataGrid.Column, {
35441
+ dataField: "Actions",
35442
+ caption: "",
35443
+ minWidth: 10,
35444
+ width: 160,
35445
+ fixed: true,
35446
+ allowSorting: false,
35447
+ type: "buttons",
35448
+ showInColumnChooser: false,
35449
+ cellRender: onActionCellRender
35450
+ }), React__default.createElement(DataGrid.FilterRow, {
35451
+ visible: masterDetailFeatures.createFilter
35452
+ }), React__default.createElement(DataGrid.Selection, {
35453
+ mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
35454
+ }), React__default.createElement(DataGrid.SearchPanel, {
35455
+ visible: masterDetailFeatures.showSearchPanel
35456
+ }), React__default.createElement(DataGrid.Toolbar, null, React__default.createElement(DataGrid.Item, {
35457
+ name: "searchPanel"
35458
+ }), React__default.createElement(DataGrid.Item, {
35459
+ name: "columnChooserButton",
35460
+ cssClass: "toolbarPanelItems"
35461
+ }), React__default.createElement(DataGrid.Item, {
35462
+ name: "exportButton",
35463
+ cssClass: "toolbarPanelItems"
35464
+ })));
35465
+ };
35466
+
35282
35467
  /**
35283
35468
  * Checks if `value` is the
35284
35469
  * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
@@ -36957,6 +37142,7 @@ exports.OdsInput = OdsInput;
36957
37142
  exports.OdsInputNumber = OdsInputNumber;
36958
37143
  exports.OdsLink = OdsLink;
36959
37144
  exports.OdsList = OdsList;
37145
+ exports.OdsMasterDetailDataGrid = MasterDetailDataGrid;
36960
37146
  exports.OdsModal = OdsModal;
36961
37147
  exports.OdsModalOld = OdsModalOld;
36962
37148
  exports.OdsMultiSelect = OdsMultiSelect;