ods-component-lib 1.18.243 → 1.18.244

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.
@@ -1,7 +1,7 @@
1
1
  import React 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 { ITooltipType } from "../../../utils/customTypes";
4
+ import { ISortedColumn, ITooltipType } from "../../../utils/customTypes";
5
5
  import { IColumnOptions, IMasterDetailDatas, IMasterDetailFeatures } from "../OdsMasterDetailDataGrid/types";
6
6
  export declare type SummaryTypes = "avg" | "count" | "custom" | "max" | "min" | "sum";
7
7
  interface IExportProps {
@@ -47,6 +47,7 @@ export interface IOdsDataGridProps extends IDataGridOptions {
47
47
  masterDetailFeatures?: IMasterDetailFeatures;
48
48
  DetailGridComponent?: React.FC<any>;
49
49
  mergeDataFields: string[];
50
+ onSortingChanged?(sortedColumns: ISortedColumn[], headerCellProps?: any): void;
50
51
  }
51
52
  export interface ISummaryRowOptions {
52
53
  summaryLoadedDataLabel?: string;
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import "./OdsMergeCellDataGrid.css";
2
3
  import { IOdsDataGridProps } from "./OdsMergeCellDataGrid.Types";
3
- declare const OdsMergeCellDataGrid: (props: IOdsDataGridProps) => React.JSX.Element;
4
+ declare const OdsMergeCellDataGrid: React.ForwardRefExoticComponent<IOdsDataGridProps & React.RefAttributes<unknown>>;
4
5
  export default OdsMergeCellDataGrid;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { IColumnProps, IGanttOptions, IItemProps } from "devextreme-react/gantt";
3
- import { ExportDocumentType, ITooltipType, SortingProcessType, SortingType } from "../../../utils/customTypes";
3
+ import { ExportDocumentType, ISortedColumn, ITooltipType, SortingProcessType } from "../../../utils/customTypes";
4
4
  import { IButtonProps } from "devextreme-react/data-grid";
5
5
  import { ButtonType } from "antd/es/button/buttonHelpers";
6
6
  export declare type SortingMode = "single" | "multiple" | "none";
@@ -111,12 +111,6 @@ export interface IOdsTimelineTableStatusColumnProps extends IOdsTimelineTableCol
111
111
  export interface IOdsTimelineCheckboxColumnProps extends IOdsTimelineTableColumnProps {
112
112
  onCheckboxColumnChange(e: ICheckboxColumnChange): void;
113
113
  }
114
- export interface ISortedColumn {
115
- sortingFieldName: string;
116
- sortType: SortingType;
117
- sortIndex: number;
118
- sortingText: string;
119
- }
120
114
  export interface IOdsTimelineTableToolbarSettings {
121
115
  visible?: boolean;
122
116
  location?: "before" | "after";
package/dist/index.css CHANGED
@@ -223,6 +223,22 @@ tr._2CvVM._3Xrp3._19iuB._3udtX {
223
223
  pointer-events: none;
224
224
  background-color: #f0f0f0;
225
225
  }
226
+ ._1Y6Xh:has(._1XPxo) {
227
+ width: 100%;
228
+ }
229
+
230
+ ._1XPxo {
231
+ cursor: pointer;
232
+ width: 100%;
233
+ display: flex;
234
+ align-items: center;
235
+ }
236
+
237
+ ._17w-X {
238
+ flex: 1;
239
+ align-content: center;
240
+ }
241
+
226
242
  ._3lbve {
227
243
  writing-mode: vertical-lr;
228
244
  }
package/dist/index.js CHANGED
@@ -38049,7 +38049,7 @@ OdsMergeCellDataGridHelper.getInstance = function () {
38049
38049
  };
38050
38050
 
38051
38051
  var useToken$2 = antd.theme.useToken;
38052
- var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38052
+ var OdsMergeCellDataGrid = React.forwardRef(function (props, ref) {
38053
38053
  var _props$columnResizing, _props$className, _props$selection, _props$selectOptions, _props$selectOptions$, _props$selectOptions2, _props$selectOptions$2, _props$selectOptions3;
38054
38054
  var refGrid = props.refGrid,
38055
38055
  keyExpr = props.keyExpr,
@@ -38069,6 +38069,12 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38069
38069
  var _useState4 = React.useState([]),
38070
38070
  mergedCellInfo = _useState4[0],
38071
38071
  setMergedCellInfo = _useState4[1];
38072
+ var _useState5 = React.useState({
38073
+ sortedColumns: [],
38074
+ columnHeaderProps: null
38075
+ }),
38076
+ sortingChangeEventProps = _useState5[0],
38077
+ setSortingChangeEventProps = _useState5[1];
38072
38078
  var _useStyles = useStyles$a(),
38073
38079
  gridStyle = _useStyles.styles;
38074
38080
  React.useEffect(function () {
@@ -38114,6 +38120,11 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38114
38120
  refGrid.current.instance.updateDimensions();
38115
38121
  }
38116
38122
  }, []);
38123
+ React.useEffect(function () {
38124
+ if (sortingChangeEventProps.columnHeaderProps !== null) {
38125
+ props.onSortingChanged && props.onSortingChanged(sortingChangeEventProps.sortedColumns, sortingChangeEventProps.columnHeaderProps);
38126
+ }
38127
+ }, [sortingChangeEventProps]);
38117
38128
  var actionButtons = React.useMemo(function () {
38118
38129
  if (props.actionButtonGroup) {
38119
38130
  if (props.actionButtonGroup.length > 3 && !props.edit) {
@@ -38375,6 +38386,112 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38375
38386
  var checkIsPropArray = function checkIsPropArray(prop) {
38376
38387
  return prop && Array.isArray(prop);
38377
38388
  };
38389
+ var customClearSorting = function customClearSorting() {
38390
+ setSortingChangeEventProps(function (prev) {
38391
+ return _extends({}, prev, {
38392
+ sortedColumns: []
38393
+ });
38394
+ });
38395
+ props.onSortingChanged && props.onSortingChanged([], undefined);
38396
+ };
38397
+ var getSortedColumns = function getSortedColumns() {
38398
+ return sortingChangeEventProps.sortedColumns;
38399
+ };
38400
+ var customHeaderCellComponent = function customHeaderCellComponent(props) {
38401
+ if (props.data.column.allowSorting) {
38402
+ return React__default.createElement("div", {
38403
+ className: "sortingHeaderCell",
38404
+ onClick: function onClick(e) {
38405
+ if (Boolean(props.data.column.allowSorting)) {
38406
+ if (e.shiftKey === true && e.ctrlKey === false) {
38407
+ onSorting(props.data, 2);
38408
+ } else if (e.shiftKey === false && e.ctrlKey === false) {
38409
+ onSorting(props.data, 1);
38410
+ } else if (e.shiftKey === false && e.ctrlKey === true) {
38411
+ onRemoveSorting(props.data);
38412
+ }
38413
+ }
38414
+ }
38415
+ }, React__default.createElement("span", {
38416
+ className: "headerCaption"
38417
+ }, props.data.column.caption), getSortIcon(props.data.column));
38418
+ }
38419
+ return React__default.createElement("div", null, props.data.column.caption);
38420
+ };
38421
+ var getSortIcon = function getSortIcon(column) {
38422
+ var sortingFieldName = getSortingFieldName(column);
38423
+ var sortedColumn = sortingChangeEventProps.sortedColumns.find(function (item) {
38424
+ return item.sortingFieldName == sortingFieldName;
38425
+ });
38426
+ if (sortedColumn) {
38427
+ return sortedColumn.sortType === "ASC" ? React__default.createElement(outline.UpArrow2Icon, null) : React__default.createElement(outline.DownArrow2Icon, null);
38428
+ }
38429
+ return undefined;
38430
+ };
38431
+ var getSortingFieldName = function getSortingFieldName(column) {
38432
+ var _column$sortingFieldN;
38433
+ return (_column$sortingFieldN = column.sortingFieldName) != null ? _column$sortingFieldN : column.dataField;
38434
+ };
38435
+ var onSorting = function onSorting(headerCellProps, sortingMode) {
38436
+ var sortingFieldName = getSortingFieldName(headerCellProps.column);
38437
+ var sortedColumn = sortingChangeEventProps.sortedColumns.find(function (item) {
38438
+ return item.sortingFieldName == sortingFieldName;
38439
+ });
38440
+ var prevSortIndex = sortedColumn === null || sortedColumn === void 0 ? void 0 : sortedColumn.sortIndex;
38441
+ var newSortedColumn = {
38442
+ sortingFieldName: sortingFieldName,
38443
+ sortType: "ASC",
38444
+ sortIndex: sortingMode == 2 ? sortedColumn === undefined ? sortingChangeEventProps.sortedColumns.length : sortingChangeEventProps.sortedColumns.length - 1 : 0,
38445
+ sortingText: sortingFieldName + " ASC"
38446
+ };
38447
+ if (sortedColumn) {
38448
+ newSortedColumn.sortType = sortedColumn.sortType == "ASC" ? "DESC" : "ASC";
38449
+ newSortedColumn.sortingText = sortingFieldName + " " + newSortedColumn.sortType;
38450
+ }
38451
+ var newSortedColumns = sortingMode == 2 ? [].concat(sortingChangeEventProps.sortedColumns.filter(function (item) {
38452
+ return item.sortingFieldName != sortingFieldName;
38453
+ }), [newSortedColumn]) : [newSortedColumn];
38454
+ if (sortingMode == 2 && sortedColumn !== undefined) {
38455
+ newSortedColumns = newSortedColumns.map(function (item) {
38456
+ if (item.sortingFieldName != sortingFieldName && item.sortIndex > prevSortIndex) {
38457
+ item.sortIndex = item.sortIndex - 1;
38458
+ }
38459
+ return item;
38460
+ });
38461
+ }
38462
+ setSortingChangeEventProps({
38463
+ sortedColumns: newSortedColumns,
38464
+ columnHeaderProps: headerCellProps
38465
+ });
38466
+ };
38467
+ var onRemoveSorting = function onRemoveSorting(headerCellProps) {
38468
+ var sortingFieldName = getSortingFieldName(headerCellProps.column);
38469
+ var sortedColumn = sortingChangeEventProps.sortedColumns.find(function (item) {
38470
+ return item.sortingFieldName == sortingFieldName;
38471
+ });
38472
+ if (sortedColumn === undefined) {
38473
+ return;
38474
+ }
38475
+ var prevSortIndex = sortedColumn.sortIndex;
38476
+ var newSortedColumns = sortingChangeEventProps.sortedColumns.filter(function (item) {
38477
+ return item.sortingFieldName != sortingFieldName;
38478
+ }).map(function (item) {
38479
+ if (item.sortIndex > prevSortIndex) {
38480
+ item.sortIndex = item.sortIndex - 1;
38481
+ }
38482
+ return item;
38483
+ });
38484
+ setSortingChangeEventProps({
38485
+ sortedColumns: newSortedColumns,
38486
+ columnHeaderProps: headerCellProps
38487
+ });
38488
+ };
38489
+ React.useImperativeHandle(ref, function () {
38490
+ return {
38491
+ getSortedColumns: getSortedColumns,
38492
+ customClearSorting: customClearSorting
38493
+ };
38494
+ });
38378
38495
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(DataGrid__default, Object.assign({
38379
38496
  keyExpr: keyExpr,
38380
38497
  dataSource: data,
@@ -38386,9 +38503,6 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38386
38503
  columnResizingMode: (_props$columnResizing = props.columnResizingMode) != null ? _props$columnResizing : "widget",
38387
38504
  showRowLines: true,
38388
38505
  allowColumnReordering: true,
38389
- remoteOperations: {
38390
- sorting: true
38391
- },
38392
38506
  paging: {
38393
38507
  enabled: false
38394
38508
  },
@@ -38427,7 +38541,8 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38427
38541
  }, col, {
38428
38542
  minWidth: 50,
38429
38543
  width: props.isColumnWidthFixed === true ? 160 : undefined,
38430
- cssClass: col.cssClass
38544
+ cssClass: col.cssClass,
38545
+ headerCellComponent: customHeaderCellComponent
38431
38546
  }), col.lookUp && React__default.createElement(devextremeReact.Lookup, Object.assign({}, col.lookUp)), (col.dataField === "IsActive" || col.dataField === "isActive") && React__default.createElement(DataGrid.HeaderFilter, {
38432
38547
  dataSource: [{
38433
38548
  text: "Active",
@@ -38475,7 +38590,7 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38475
38590
  }), React__default.createElement(DataGrid.HeaderFilter, {
38476
38591
  visible: true
38477
38592
  }), React__default.createElement(DataGrid.Sorting, {
38478
- mode: "multiple"
38593
+ mode: "none"
38479
38594
  }), !props.closeGridHeader && React__default.createElement(DataGrid.Export, {
38480
38595
  enabled: true,
38481
38596
  allowExportSelectedData: true,
@@ -38513,7 +38628,7 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38513
38628
  customLoad: customLoad,
38514
38629
  customSave: customSave
38515
38630
  })));
38516
- };
38631
+ });
38517
38632
 
38518
38633
  var lodash = createCommonjsModule(function (module, exports) {
38519
38634
  (function() {