ods-component-lib 1.18.209 → 1.18.210

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 (35) hide show
  1. package/dist/components/devextreme/OdsBasicDataGrid/OdsBasicDataGrid.Types.d.ts +6 -1
  2. package/dist/index.js +230 -222
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.modern.js +231 -223
  5. package/dist/index.modern.js.map +1 -1
  6. package/dist/stories/OdsMasterDetailDataGrid/OdsMasterDetailDataGrid.stories.d.ts +3 -0
  7. package/dist/stories/OdsMasterDetailDataGrid/Samples/OdsMasterDetailDataGrid/OdsMasterDetailDataGrid.Constants.d.ts +22 -0
  8. package/dist/stories/OdsMasterDetailDataGrid/Samples/OdsMasterDetailDataGrid/OdsMasterDetailDataGrid.MockData.d.ts +44 -0
  9. package/package.json +1 -1
  10. package/dist/App.d.ts +0 -3
  11. package/dist/components/antd/modal/OdsAdvanceModal.d.ts +0 -7
  12. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/ContentHandlers.d.ts +0 -14
  13. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/EditorPreparedHandlers.d.ts +0 -7
  14. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/OnExportingHandlers.d.ts +0 -19
  15. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/OptionHandlers.d.ts +0 -7
  16. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/SummaryHandlers.d.ts +0 -21
  17. package/dist/components/devextreme/OdsInlineEditDataGrid/partials/ActionCellRender.d.ts +0 -15
  18. package/dist/components/devextreme/OdsInlineEditDataGrid/partials/EditingPartial.d.ts +0 -9
  19. package/dist/components/devextreme/OdsInlineEditDataGrid/partials/PageTitle.d.ts +0 -8
  20. package/dist/components/devextreme/OdsInlineEditDataGrid/utils.d.ts +0 -19
  21. package/dist/components/devextreme/OdsTimeline/OdsTimeline.Constants.d.ts +0 -4
  22. package/dist/components/devextreme/OdsTimeline/OdsTimeline.Functions.d.ts +0 -6
  23. package/dist/components/devextreme/OdsTimeline/OdsTimeline.Types.d.ts +0 -77
  24. package/dist/components/devextreme/OdsTimeline/OdsTimeline.d.ts +0 -5
  25. package/dist/components/devextreme/OdsTimeline/OdsTimelineDateFilter.d.ts +0 -3
  26. package/dist/components/devextreme/OdsTimeline/OdsTimelineSelectionColumn.d.ts +0 -2
  27. package/dist/index.umd.js +0 -2
  28. package/dist/index.umd.js.map +0 -1
  29. package/dist/stories/OdsAdvanceModal/OdsAdvanceModal.stories.d.ts +0 -42
  30. package/dist/stories/OdsAdvanceModal/Samples/BasicOdsAdvanceModal.sample.d.ts +0 -8
  31. package/dist/stories/OdsModal/Samples/OdsModal.Sample.d.ts +0 -1
  32. package/dist/stories/OdsTimePicker/Samples/TimeRangePicker.d.ts +0 -2
  33. package/dist/stories/OdsTimeline/OdsTimeline.Constants.d.ts +0 -3
  34. package/dist/stories/OdsTimeline/OdsTimeline.Functions.d.ts +0 -6
  35. package/dist/stories/OdsTimeline/OdsTimeline.MockData.d.ts +0 -39
@@ -1,6 +1,7 @@
1
1
  import React, { MouseEventHandler } from "react";
2
2
  import { ButtonType } from "antd/es/button/buttonHelpers";
3
3
  import { IButtonProps, IDataGridOptions, IEditingProps, ISelectionProps, ISummaryProps } from "devextreme-react/data-grid";
4
+ import { IColumnOptions, IMasterDetailDatas, IMasterDetailFeatures } from "../OdsMasterDetailDataGrid/types";
4
5
  export declare type SummaryTypes = "avg" | "count" | "custom" | "max" | "min" | "sum";
5
6
  export interface IMultiCellEditableDataGridProps {
6
7
  hasFastUpdate?: boolean;
@@ -48,10 +49,14 @@ export interface IOdsDataGridProps extends IDataGridOptions, IMultiCellEditableD
48
49
  isFilterRow?: boolean;
49
50
  filterData?: any[];
50
51
  detailGridColums?: any[];
51
- showMasterDetail?: boolean;
52
52
  detailData?: any;
53
53
  actionButtonsTooltipType?: ITooltipType;
54
54
  isColumnWidthFixed?: boolean;
55
+ showMasterDetail?: boolean;
56
+ detailGridColumns?: IColumnOptions[];
57
+ masterDetailDatas?: IMasterDetailDatas;
58
+ masterDetailFeatures?: IMasterDetailFeatures;
59
+ DetailGridComponent?: React.FC<any>;
55
60
  }
56
61
  export interface ISummaryRowOptions {
57
62
  summaryLoadedDataLabel?: string;
package/dist/index.js CHANGED
@@ -33206,6 +33206,214 @@ var ExportDataGridToExcel = function ExportDataGridToExcel(_ref) {
33206
33206
  });
33207
33207
  };
33208
33208
 
33209
+ var iconComponents = {
33210
+ edit: outline.EditIcon,
33211
+ "delete": outline.Trash1Icon,
33212
+ copy: outline.CopyIcon,
33213
+ discount: outline.DiscountIcon,
33214
+ kebabMenu: outline.KebabMenuIcon,
33215
+ refresh: outline.RefreshIcon,
33216
+ unmap: outline.LinkBreakIcon,
33217
+ save: outline.FloppyDiskIcon,
33218
+ cancel: outline.Loop1Icon,
33219
+ discount2Icon: outline.Discount2Icon
33220
+ };
33221
+ var DynamicIcon = function DynamicIcon(_ref) {
33222
+ var iconName = _ref.iconName;
33223
+ var IconComponent = iconComponents[iconName];
33224
+ if (!IconComponent) {
33225
+ return null;
33226
+ }
33227
+ return React__default.createElement(IconComponent, null);
33228
+ };
33229
+
33230
+ var useOnActionCellRenderHandler = function useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroup, edit, actionButtonsTooltipType) {
33231
+ var onActionCellRender = React.useCallback(function (cellData) {
33232
+ if (!cellData || !visibleActionButtons) return null;
33233
+ var kebabMenuButtons = actionButtonGroup && actionButtonGroup.length >= 2 && !edit ? actionButtonGroup.slice(2).map(function (button) {
33234
+ return {
33235
+ icon: button.icon,
33236
+ onClick: function onClick(event) {
33237
+ var customEvent = {
33238
+ column: cellData.column,
33239
+ component: cellData.component,
33240
+ element: cellData.element,
33241
+ event: event,
33242
+ model: cellData.data,
33243
+ row: cellData.row
33244
+ };
33245
+ button.onClick(customEvent);
33246
+ }
33247
+ };
33248
+ }) : [];
33249
+ var buttonElements = visibleActionButtons.map(function (buttonItem) {
33250
+ var isVisible = typeof buttonItem.visible === "function" ? buttonItem.visible({
33251
+ column: cellData.column,
33252
+ component: cellData.component,
33253
+ row: cellData.row
33254
+ }) : buttonItem.visible;
33255
+ return React__default.createElement(OdsDataGrdiRowButton, Object.assign({
33256
+ key: "action-button-" + buttonItem.name,
33257
+ name: buttonItem.name,
33258
+ hint: buttonItem.hint,
33259
+ visible: isVisible,
33260
+ size: "small",
33261
+ type: "text",
33262
+ disabled: buttonItem.actionPermission === undefined ? false : !buttonItem.actionPermission,
33263
+ icon: buttonItem.icon
33264
+ }, actionButtonsTooltipType === "styled" && {
33265
+ tooltip: buttonItem.hint
33266
+ }, {
33267
+ onClick: function onClick(event) {
33268
+ if (buttonItem.onClick) {
33269
+ var customEvent = {
33270
+ column: cellData.column,
33271
+ component: cellData.component,
33272
+ element: cellData.element,
33273
+ event: event,
33274
+ model: cellData.data,
33275
+ row: cellData.row
33276
+ };
33277
+ buttonItem.onClick(customEvent);
33278
+ }
33279
+ }
33280
+ }));
33281
+ });
33282
+ if (kebabMenuButtons.length > 0) {
33283
+ buttonElements.push(React__default.createElement(OdsDropdown, {
33284
+ key: "dropdown-" + (cellData.rowIndex || cellData.data.ID),
33285
+ menuItems: kebabMenuButtons
33286
+ }, React__default.createElement(OdsDataGrdiRowButton, {
33287
+ type: "text",
33288
+ icon: React__default.createElement(DynamicIcon, {
33289
+ iconName: "kebabMenu"
33290
+ })
33291
+ })));
33292
+ }
33293
+ return React__default.createElement(React__default.Fragment, null, buttonElements);
33294
+ }, [visibleActionButtons]);
33295
+ return onActionCellRender;
33296
+ };
33297
+
33298
+ var useOnExportingHandler = function useOnExportingHandler(exportProps, getSummary, callback) {
33299
+ var onExporting = React.useCallback(function (e) {
33300
+ if (exportProps) {
33301
+ var _exportProps$fileName, _exportProps$activeTe, _exportProps$passiveT;
33302
+ ExportDataGridToExcel({
33303
+ gridComponent: e.component,
33304
+ baseFileName: (_exportProps$fileName = exportProps.fileName) != null ? _exportProps$fileName : "DataGrid",
33305
+ selectedText: exportProps.selectedText,
33306
+ getSummary: getSummary,
33307
+ selectedRowsOnly: e.selectedRowsOnly,
33308
+ activeText: (_exportProps$activeTe = exportProps.activeText) != null ? _exportProps$activeTe : "Active",
33309
+ passiveText: (_exportProps$passiveT = exportProps.passiveText) != null ? _exportProps$passiveT : "Passive"
33310
+ });
33311
+ }
33312
+ if (callback) {
33313
+ callback(e);
33314
+ }
33315
+ }, [getSummary]);
33316
+ return onExporting;
33317
+ };
33318
+
33319
+ var MasterDetailDataGrid = function MasterDetailDataGrid(_ref) {
33320
+ var columns = _ref.columns,
33321
+ dataSource = _ref.dataSource,
33322
+ _ref$masterDetailFeat = _ref.masterDetailFeatures,
33323
+ masterDetailFeatures = _ref$masterDetailFeat === void 0 ? {} : _ref$masterDetailFeat,
33324
+ masterDetailData = _ref.masterDetailData;
33325
+ var visibleActionButtons = React.useMemo(function () {
33326
+ if (masterDetailFeatures.masterActionButtonGroup && masterDetailFeatures.masterActionButtonGroup.length >= 2) {
33327
+ return masterDetailFeatures.masterActionButtonGroup.slice(0, 2);
33328
+ }
33329
+ return masterDetailFeatures.masterActionButtonGroup || [];
33330
+ }, [masterDetailFeatures.masterActionButtonGroup]);
33331
+ var onActionCellRender = useOnActionCellRenderHandler(visibleActionButtons, masterDetailFeatures.masterActionButtonGroup);
33332
+ var getTotalDataCount = function getTotalDataCount() {
33333
+ return "" + dataSource.length;
33334
+ };
33335
+ var handleExporting = useOnExportingHandler(masterDetailFeatures.exportProps, getTotalDataCount);
33336
+ var effectiveColumns = (masterDetailData === null || masterDetailData === void 0 ? void 0 : masterDetailData.detailGridColumns) || columns || (dataSource[0] ? Object.keys(dataSource[0]).map(function (key) {
33337
+ return {
33338
+ dataField: key,
33339
+ caption: key.charAt(0).toUpperCase() + key.slice(1),
33340
+ allowFiltering: true
33341
+ };
33342
+ }) : []);
33343
+ return React__default.createElement(DataGrid__default, {
33344
+ style: {
33345
+ maxHeight: masterDetailFeatures.maxHeight ? masterDetailFeatures.maxHeight + "px" : "400px",
33346
+ overflow: "auto"
33347
+ },
33348
+ dataSource: dataSource,
33349
+ showBorders: true,
33350
+ columnAutoWidth: true,
33351
+ allowColumnReordering: true,
33352
+ selection: {
33353
+ mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
33354
+ },
33355
+ paging: {
33356
+ enabled: true,
33357
+ pageSize: masterDetailFeatures.pageSize || 20
33358
+ },
33359
+ filterRow: {
33360
+ visible: masterDetailFeatures.createFilter
33361
+ },
33362
+ onExporting: handleExporting,
33363
+ onToolbarPreparing: masterDetailFeatures.detailToolbar
33364
+ }, effectiveColumns.map(function (col) {
33365
+ return React__default.createElement(DataGrid.Column, Object.assign({
33366
+ key: col.dataField
33367
+ }, col, {
33368
+ headerFilter: {
33369
+ visible: col.allowFiltering
33370
+ }
33371
+ }));
33372
+ }), React__default.createElement(DataGrid.ColumnChooser, {
33373
+ enabled: masterDetailFeatures.columnChooser,
33374
+ mode: "select"
33375
+ }, React__default.createElement(DataGrid.Position, {
33376
+ my: "right top",
33377
+ at: "right bottom",
33378
+ of: document.querySelector("." + "props.dataGridPageName") ? "." + "props.dataGridPageName" + " .dx-datagrid-column-chooser-button" : ".dx-datagrid-column-chooser-button"
33379
+ }), React__default.createElement(DataGrid.ColumnChooserSearch, {
33380
+ enabled: true,
33381
+ editorOptions: {
33382
+ placeholder: ""
33383
+ }
33384
+ }), React__default.createElement(DataGrid.HeaderFilter, {
33385
+ visible: true
33386
+ }), React__default.createElement(DataGrid.ColumnChooserSelection, {
33387
+ allowSelectAll: true,
33388
+ selectByClick: true,
33389
+ recursive: true
33390
+ })), (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, {
33391
+ dataField: "Actions",
33392
+ caption: "",
33393
+ minWidth: 10,
33394
+ width: 160,
33395
+ fixed: true,
33396
+ allowSorting: false,
33397
+ type: "buttons",
33398
+ showInColumnChooser: false,
33399
+ cellRender: onActionCellRender
33400
+ }), React__default.createElement(DataGrid.FilterRow, {
33401
+ visible: masterDetailFeatures.createFilter
33402
+ }), React__default.createElement(DataGrid.Selection, {
33403
+ mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
33404
+ }), React__default.createElement(DataGrid.SearchPanel, {
33405
+ visible: masterDetailFeatures.showSearchPanel
33406
+ }), React__default.createElement(DataGrid.Toolbar, null, React__default.createElement(DataGrid.Item, {
33407
+ name: "searchPanel"
33408
+ }), React__default.createElement(DataGrid.Item, {
33409
+ name: "columnChooserButton",
33410
+ cssClass: "toolbarPanelItems"
33411
+ }), React__default.createElement(DataGrid.Item, {
33412
+ name: "exportButton",
33413
+ cssClass: "toolbarPanelItems"
33414
+ })));
33415
+ };
33416
+
33209
33417
  var useToken$1 = antd.theme.useToken;
33210
33418
  var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33211
33419
  var _props$columnResizing, _props$className, _props$selection, _props$selectOptions, _props$selectOptions$, _props$selectOptions2, _props$selectOptions$2, _props$selectOptions3;
@@ -33221,7 +33429,10 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33221
33429
  onFastUpdateButtonClick = props.onFastUpdateButtonClick,
33222
33430
  onFastUpdateFinish = props.onFastUpdateFinish,
33223
33431
  onFastUpdateCancel = props.onFastUpdateCancel,
33224
- onFastUpdateFailed = props.onFastUpdateFailed;
33432
+ onFastUpdateFailed = props.onFastUpdateFailed,
33433
+ detailGridColumns = props.detailGridColumns,
33434
+ detailData = props.detailData,
33435
+ masterDetailFeatures = props.masterDetailFeatures;
33225
33436
  var _useToken = useToken$1(),
33226
33437
  token = _useToken.token;
33227
33438
  var _AntForm$useForm = antd.Form.useForm(),
@@ -33793,14 +34004,19 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33793
34004
  }
33794
34005
  });
33795
34006
  };
33796
- var detailGrid = function detailGrid(_ref) {
33797
- var data = _ref.data;
33798
- return React__default.createElement(OdsBasicDataGrid, Object.assign({}, props, {
33799
- showMasterDetail: false,
33800
- columns: props.detailGridColums,
33801
- dataSource: props.detailData[data.key.ID]
33802
- }));
33803
- };
34007
+ var renderMasterDetailGrid = React.useCallback(function (_ref) {
34008
+ var _dataSource$data;
34009
+ var dataSource = _ref.data;
34010
+ var detailID = dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$data = dataSource.data) === null || _dataSource$data === void 0 ? void 0 : _dataSource$data.ID;
34011
+ if (!detailID || !(detailData !== null && detailData !== void 0 && detailData[detailID])) {
34012
+ return null;
34013
+ }
34014
+ return React__default.createElement(MasterDetailDataGrid, {
34015
+ columns: detailGridColumns,
34016
+ dataSource: detailData[detailID],
34017
+ masterDetailFeatures: masterDetailFeatures
34018
+ });
34019
+ }, [detailGridColumns, detailData, masterDetailFeatures]);
33804
34020
  var checkIsPropArray = function checkIsPropArray(prop) {
33805
34021
  return prop && Array.isArray(prop);
33806
34022
  };
@@ -33950,7 +34166,7 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33950
34166
  }
33951
34167
  }), props.showMasterDetail && React__default.createElement(DataGrid.MasterDetail, {
33952
34168
  enabled: true,
33953
- component: detailGrid
34169
+ component: renderMasterDetailGrid
33954
34170
  }), props.edit && React__default.createElement(DataGrid.Editing, {
33955
34171
  mode: props.edit.mode,
33956
34172
  allowUpdating: props.edit.allowUpdating,
@@ -34641,27 +34857,6 @@ var useStyles$2 = antdStyle.createStyles(function (_ref) {
34641
34857
  };
34642
34858
  });
34643
34859
 
34644
- var iconComponents = {
34645
- edit: outline.EditIcon,
34646
- "delete": outline.Trash1Icon,
34647
- copy: outline.CopyIcon,
34648
- discount: outline.DiscountIcon,
34649
- kebabMenu: outline.KebabMenuIcon,
34650
- refresh: outline.RefreshIcon,
34651
- unmap: outline.LinkBreakIcon,
34652
- save: outline.FloppyDiskIcon,
34653
- cancel: outline.Loop1Icon,
34654
- discount2Icon: outline.Discount2Icon
34655
- };
34656
- var DynamicIcon = function DynamicIcon(_ref) {
34657
- var iconName = _ref.iconName;
34658
- var IconComponent = iconComponents[iconName];
34659
- if (!IconComponent) {
34660
- return null;
34661
- }
34662
- return React__default.createElement(IconComponent, null);
34663
- };
34664
-
34665
34860
  var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
34666
34861
  var _props$dataGridRef, _props$dataGridRef$da, _props$dataGridRef$da2, _props$dataGridRef$da3, _props$columnResizing, _props$selection, _props$pagerProps$vis, _props$pagerProps, _props$pagerProps$sho, _props$pagerProps2, _props$pagerProps$sho2, _props$pagerProps3, _props$pagerProps$dis, _props$pagerProps4, _props$pagerProps$inf, _props$pagerProps5, _props$exportProps;
34667
34862
  var rowCount = React.useRef(0);
@@ -35052,7 +35247,7 @@ var usePageTitleAndToolbarStyles = antdStyle.createStyles(function (_ref2) {
35052
35247
  };
35053
35248
  });
35054
35249
 
35055
- var useOnActionCellRenderHandler = function useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroup, edit, actionButtonsTooltipType) {
35250
+ var useOnActionCellRenderHandler$1 = function useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroup, edit, actionButtonsTooltipType) {
35056
35251
  var onActionCellRender = React.useCallback(function (cellData) {
35057
35252
  if (!cellData || !visibleActionButtons) return null;
35058
35253
  var kebabMenuButtons = actionButtonGroup && actionButtonGroup.length >= 2 && !edit ? actionButtonGroup.slice(2).map(function (button) {
@@ -35172,7 +35367,7 @@ var useOnEditorPreparedHandler = function useOnEditorPreparedHandler(callback) {
35172
35367
  return onEditorPrepared;
35173
35368
  };
35174
35369
 
35175
- var useOnExportingHandler = function useOnExportingHandler(exportProps, getSummary, callback) {
35370
+ var useOnExportingHandler$1 = function useOnExportingHandler(exportProps, getSummary, callback) {
35176
35371
  var onExporting = React.useCallback(function (e) {
35177
35372
  if (exportProps) {
35178
35373
  var _exportProps$fileName, _exportProps$activeTe, _exportProps$passiveT;
@@ -35352,7 +35547,7 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35352
35547
  var handleOptionChanged = useOnOptionChangedHandler(dataGridRefFromProps, totalFilteredCount, sortingPropsFromProps, setFilterApplied, setUpdateTrigger, onOptionChangedFromProps);
35353
35548
  React.useEffect(function () {}, [updateTrigger]);
35354
35549
  var handleEditorPrepared = useOnEditorPreparedHandler(onEditorPreparedFromProps);
35355
- var handleExporting = useOnExportingHandler(exportPropsFromProps, renderTotal, onExportingFromProps);
35550
+ var handleExporting = useOnExportingHandler$1(exportPropsFromProps, renderTotal, onExportingFromProps);
35356
35551
  var handleCellClick = React.useCallback(function (e) {
35357
35552
  if (e.rowType != "header") {
35358
35553
  e.cellElement.style.backgroundColor = "transparent";
@@ -35370,7 +35565,7 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35370
35565
  }
35371
35566
  return [];
35372
35567
  }, []);
35373
- var ActionCellRenderPartial = useOnActionCellRenderHandler(VisibleActionButtons, actionButtonGroupFromProps, editPropsFromProps, actionButtonsTooltipTypeFromProps);
35568
+ var ActionCellRenderPartial = useOnActionCellRenderHandler$1(VisibleActionButtons, actionButtonGroupFromProps, editPropsFromProps, actionButtonsTooltipTypeFromProps);
35374
35569
  var DataGridOptionsFromProps = React.useMemo(function () {
35375
35570
  return _extends({}, AllGridOptions, DefaultDataGridOptions, {
35376
35571
  columnResizingMode: columnResizingModeFromProps != null ? columnResizingModeFromProps : "nextColumn"
@@ -35478,193 +35673,6 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35478
35673
  }, React__default.createElement("p", null, renderTotal())));
35479
35674
  };
35480
35675
 
35481
- var useOnActionCellRenderHandler$1 = function useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroup, edit, actionButtonsTooltipType) {
35482
- var onActionCellRender = React.useCallback(function (cellData) {
35483
- if (!cellData || !visibleActionButtons) return null;
35484
- var kebabMenuButtons = actionButtonGroup && actionButtonGroup.length >= 2 && !edit ? actionButtonGroup.slice(2).map(function (button) {
35485
- return {
35486
- icon: button.icon,
35487
- onClick: function onClick(event) {
35488
- var customEvent = {
35489
- column: cellData.column,
35490
- component: cellData.component,
35491
- element: cellData.element,
35492
- event: event,
35493
- model: cellData.data,
35494
- row: cellData.row
35495
- };
35496
- button.onClick(customEvent);
35497
- }
35498
- };
35499
- }) : [];
35500
- var buttonElements = visibleActionButtons.map(function (buttonItem) {
35501
- var isVisible = typeof buttonItem.visible === "function" ? buttonItem.visible({
35502
- column: cellData.column,
35503
- component: cellData.component,
35504
- row: cellData.row
35505
- }) : buttonItem.visible;
35506
- return React__default.createElement(OdsDataGrdiRowButton, Object.assign({
35507
- key: "action-button-" + buttonItem.name,
35508
- name: buttonItem.name,
35509
- hint: buttonItem.hint,
35510
- visible: isVisible,
35511
- size: "small",
35512
- type: "text",
35513
- disabled: buttonItem.actionPermission === undefined ? false : !buttonItem.actionPermission,
35514
- icon: buttonItem.icon
35515
- }, actionButtonsTooltipType === "styled" && {
35516
- tooltip: buttonItem.hint
35517
- }, {
35518
- onClick: function onClick(event) {
35519
- if (buttonItem.onClick) {
35520
- var customEvent = {
35521
- column: cellData.column,
35522
- component: cellData.component,
35523
- element: cellData.element,
35524
- event: event,
35525
- model: cellData.data,
35526
- row: cellData.row
35527
- };
35528
- buttonItem.onClick(customEvent);
35529
- }
35530
- }
35531
- }));
35532
- });
35533
- if (kebabMenuButtons.length > 0) {
35534
- buttonElements.push(React__default.createElement(OdsDropdown, {
35535
- key: "dropdown-" + (cellData.rowIndex || cellData.data.ID),
35536
- menuItems: kebabMenuButtons
35537
- }, React__default.createElement(OdsDataGrdiRowButton, {
35538
- type: "text",
35539
- icon: React__default.createElement(DynamicIcon, {
35540
- iconName: "kebabMenu"
35541
- })
35542
- })));
35543
- }
35544
- return React__default.createElement(React__default.Fragment, null, buttonElements);
35545
- }, [visibleActionButtons]);
35546
- return onActionCellRender;
35547
- };
35548
-
35549
- var useOnExportingHandler$1 = function useOnExportingHandler(exportProps, getSummary, callback) {
35550
- var onExporting = React.useCallback(function (e) {
35551
- if (exportProps) {
35552
- var _exportProps$fileName, _exportProps$activeTe, _exportProps$passiveT;
35553
- ExportDataGridToExcel({
35554
- gridComponent: e.component,
35555
- baseFileName: (_exportProps$fileName = exportProps.fileName) != null ? _exportProps$fileName : "DataGrid",
35556
- selectedText: exportProps.selectedText,
35557
- getSummary: getSummary,
35558
- selectedRowsOnly: e.selectedRowsOnly,
35559
- activeText: (_exportProps$activeTe = exportProps.activeText) != null ? _exportProps$activeTe : "Active",
35560
- passiveText: (_exportProps$passiveT = exportProps.passiveText) != null ? _exportProps$passiveT : "Passive"
35561
- });
35562
- }
35563
- if (callback) {
35564
- callback(e);
35565
- }
35566
- }, [getSummary]);
35567
- return onExporting;
35568
- };
35569
-
35570
- var MasterDetailDataGrid = function MasterDetailDataGrid(_ref) {
35571
- var columns = _ref.columns,
35572
- dataSource = _ref.dataSource,
35573
- _ref$masterDetailFeat = _ref.masterDetailFeatures,
35574
- masterDetailFeatures = _ref$masterDetailFeat === void 0 ? {} : _ref$masterDetailFeat,
35575
- masterDetailData = _ref.masterDetailData;
35576
- var visibleActionButtons = React.useMemo(function () {
35577
- if (masterDetailFeatures.masterActionButtonGroup && masterDetailFeatures.masterActionButtonGroup.length >= 2) {
35578
- return masterDetailFeatures.masterActionButtonGroup.slice(0, 2);
35579
- }
35580
- return masterDetailFeatures.masterActionButtonGroup || [];
35581
- }, [masterDetailFeatures.masterActionButtonGroup]);
35582
- var onActionCellRender = useOnActionCellRenderHandler$1(visibleActionButtons, masterDetailFeatures.masterActionButtonGroup);
35583
- var getTotalDataCount = function getTotalDataCount() {
35584
- return "" + dataSource.length;
35585
- };
35586
- var handleExporting = useOnExportingHandler$1(masterDetailFeatures.exportProps, getTotalDataCount);
35587
- var effectiveColumns = (masterDetailData === null || masterDetailData === void 0 ? void 0 : masterDetailData.detailGridColumns) || columns || (dataSource[0] ? Object.keys(dataSource[0]).map(function (key) {
35588
- return {
35589
- dataField: key,
35590
- caption: key.charAt(0).toUpperCase() + key.slice(1),
35591
- allowFiltering: true
35592
- };
35593
- }) : []);
35594
- return React__default.createElement(DataGrid__default, {
35595
- style: {
35596
- maxHeight: masterDetailFeatures.maxHeight ? masterDetailFeatures.maxHeight + "px" : "400px",
35597
- overflow: "auto"
35598
- },
35599
- dataSource: dataSource,
35600
- showBorders: true,
35601
- columnAutoWidth: true,
35602
- allowColumnReordering: true,
35603
- selection: {
35604
- mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
35605
- },
35606
- paging: {
35607
- enabled: true,
35608
- pageSize: masterDetailFeatures.pageSize || 20
35609
- },
35610
- filterRow: {
35611
- visible: masterDetailFeatures.createFilter
35612
- },
35613
- onExporting: handleExporting,
35614
- onToolbarPreparing: masterDetailFeatures.detailToolbar
35615
- }, effectiveColumns.map(function (col) {
35616
- return React__default.createElement(DataGrid.Column, Object.assign({
35617
- key: col.dataField
35618
- }, col, {
35619
- headerFilter: {
35620
- visible: col.allowFiltering
35621
- }
35622
- }));
35623
- }), React__default.createElement(DataGrid.ColumnChooser, {
35624
- enabled: masterDetailFeatures.columnChooser,
35625
- mode: "select"
35626
- }, React__default.createElement(DataGrid.Position, {
35627
- my: "right top",
35628
- at: "right bottom",
35629
- of: document.querySelector("." + "props.dataGridPageName") ? "." + "props.dataGridPageName" + " .dx-datagrid-column-chooser-button" : ".dx-datagrid-column-chooser-button"
35630
- }), React__default.createElement(DataGrid.ColumnChooserSearch, {
35631
- enabled: true,
35632
- editorOptions: {
35633
- placeholder: ""
35634
- }
35635
- }), React__default.createElement(DataGrid.HeaderFilter, {
35636
- visible: true
35637
- }), React__default.createElement(DataGrid.ColumnChooserSelection, {
35638
- allowSelectAll: true,
35639
- selectByClick: true,
35640
- recursive: true
35641
- })), (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, {
35642
- dataField: "Actions",
35643
- caption: "",
35644
- minWidth: 10,
35645
- width: 160,
35646
- fixed: true,
35647
- allowSorting: false,
35648
- type: "buttons",
35649
- showInColumnChooser: false,
35650
- cellRender: onActionCellRender
35651
- }), React__default.createElement(DataGrid.FilterRow, {
35652
- visible: masterDetailFeatures.createFilter
35653
- }), React__default.createElement(DataGrid.Selection, {
35654
- mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
35655
- }), React__default.createElement(DataGrid.SearchPanel, {
35656
- visible: masterDetailFeatures.showSearchPanel
35657
- }), React__default.createElement(DataGrid.Toolbar, null, React__default.createElement(DataGrid.Item, {
35658
- name: "searchPanel"
35659
- }), React__default.createElement(DataGrid.Item, {
35660
- name: "columnChooserButton",
35661
- cssClass: "toolbarPanelItems"
35662
- }), React__default.createElement(DataGrid.Item, {
35663
- name: "exportButton",
35664
- cssClass: "toolbarPanelItems"
35665
- })));
35666
- };
35667
-
35668
35676
  var _templateObject$t, _templateObject2$5;
35669
35677
  var useStyles$4 = antdStyle.createStyles(function (_ref) {
35670
35678
  var token = _ref.token,