ods-component-lib 1.18.242 → 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;
@@ -12,4 +12,6 @@ export declare const useStyles: (props?: {
12
12
  columnChooserHeader: import("antd-style").SerializedStyles;
13
13
  columnChooserCloseButton: import("antd-style").SerializedStyles;
14
14
  columnChooserDivider: import("antd-style").SerializedStyles;
15
+ columnChooserCheckbox: import("antd-style").SerializedStyles;
16
+ columnChooserSearchbox: import("antd-style").SerializedStyles;
15
17
  }>;
@@ -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";
@@ -98,6 +98,7 @@ export interface IButtonGroup extends Omit<IButtonProps, "icon"> {
98
98
  onclick?: React.MouseEventHandler<HTMLElement>;
99
99
  }
100
100
  export interface IOdsTimelineTableColumnProps extends IColumnProps {
101
+ name: string;
101
102
  isMinimized?: boolean;
102
103
  isStatusColumn?: boolean;
103
104
  isCheckboxColumn?: boolean;
@@ -110,12 +111,6 @@ export interface IOdsTimelineTableStatusColumnProps extends IOdsTimelineTableCol
110
111
  export interface IOdsTimelineCheckboxColumnProps extends IOdsTimelineTableColumnProps {
111
112
  onCheckboxColumnChange(e: ICheckboxColumnChange): void;
112
113
  }
113
- export interface ISortedColumn {
114
- sortingFieldName: string;
115
- sortType: SortingType;
116
- sortIndex: number;
117
- sortingText: string;
118
- }
119
114
  export interface IOdsTimelineTableToolbarSettings {
120
115
  visible?: boolean;
121
116
  location?: "before" | "after";
@@ -134,6 +129,8 @@ export interface IOdsTimelineTableToolbarSettings {
134
129
  columnChooser?: {
135
130
  visible?: boolean;
136
131
  title?: string;
132
+ selectAllText: string;
133
+ onSelection?(items: string[], isSelected: boolean): void;
137
134
  };
138
135
  dateFilterVisible?: boolean;
139
136
  zoomVisible?: boolean;
@@ -157,6 +154,12 @@ export interface ITranslationValue {
157
154
  }
158
155
  export interface IOdsTimelineTableColumnChooserProps {
159
156
  title: string;
160
- items: string[];
161
- onSelection?(selectedItems: string[], selectedItem?: string, deselectedItem?: string): void;
157
+ selectAllText: string;
158
+ items: IOdsTimelineTableColumnChooserItemProps[];
159
+ onSelection?(items: string[], isSelected: boolean): void;
160
+ }
161
+ export interface IOdsTimelineTableColumnChooserItemProps {
162
+ columnName: string;
163
+ columnCaption: string;
164
+ visible: boolean;
162
165
  }
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,20 +38628,7 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38513
38628
  customLoad: customLoad,
38514
38629
  customSave: customSave
38515
38630
  })));
38516
- };
38517
-
38518
- var currentYear = new Date().getFullYear();
38519
- var Constants = {
38520
- timelineDefaultStartDate: new Date(currentYear, 0, 1),
38521
- timelineDefaultEndDate: new Date(currentYear + 1, 0, 1)
38522
- };
38523
- var actionColumnProps = {
38524
- dataField: "Actions",
38525
- allowExporting: false,
38526
- allowFiltering: false,
38527
- allowSorting: false,
38528
- dataType: "object"
38529
- };
38631
+ });
38530
38632
 
38531
38633
  var lodash = createCommonjsModule(function (module, exports) {
38532
38634
  (function() {
@@ -55718,6 +55820,23 @@ var lodash = createCommonjsModule(function (module, exports) {
55718
55820
  }.call(commonjsGlobal));
55719
55821
  });
55720
55822
 
55823
+ var uniqueRecords = function uniqueRecords(value, index, array) {
55824
+ return array.indexOf(value) === index;
55825
+ };
55826
+
55827
+ var currentYear = new Date().getFullYear();
55828
+ var Constants = {
55829
+ timelineDefaultStartDate: new Date(currentYear, 0, 1),
55830
+ timelineDefaultEndDate: new Date(currentYear + 1, 0, 1)
55831
+ };
55832
+ var actionColumnProps = {
55833
+ dataField: "Actions",
55834
+ allowExporting: false,
55835
+ allowFiltering: false,
55836
+ allowSorting: false,
55837
+ dataType: "object"
55838
+ };
55839
+
55721
55840
  var checkboxCellComponent = function checkboxCellComponent(props) {
55722
55841
  var isChecked = props.data.value;
55723
55842
  var onChange = function onChange(e) {
@@ -55950,6 +56069,7 @@ var OdsTimelineSelectionColumn = function OdsTimelineSelectionColumn(selectionEv
55950
56069
  minWidth: 50,
55951
56070
  width: 50,
55952
56071
  dataField: "isSelected",
56072
+ name: "selection",
55953
56073
  allowExporting: false,
55954
56074
  cellComponent: function cellComponent(props) {
55955
56075
  var onChange = function onChange(e) {
@@ -55971,23 +56091,26 @@ var OdsTimelineSelectionColumn = function OdsTimelineSelectionColumn(selectionEv
55971
56091
  return selectionColumn;
55972
56092
  };
55973
56093
 
55974
- var _templateObject$B, _templateObject2$9, _templateObject3$6, _templateObject4$5, _templateObject5$4, _templateObject6$3, _templateObject7$3, _templateObject8$3, _templateObject9$3;
56094
+ var _templateObject$B, _templateObject2$9, _templateObject3$6, _templateObject4$5, _templateObject5$4, _templateObject6$3, _templateObject7$3, _templateObject8$3, _templateObject9$3, _templateObject10$3, _templateObject11$3;
55975
56095
  var useStyles$b = antdStyle.createStyles(function (_ref, props) {
55976
56096
  var _props$taskWidth, _props$progressPerc, _props$progressColor;
55977
56097
  var css = _ref.css;
55978
56098
  var _taskWidth = (_props$taskWidth = props === null || props === void 0 ? void 0 : props.taskWidth) != null ? _props$taskWidth : 0;
55979
56099
  var _progressPerc = (_props$progressPerc = props === null || props === void 0 ? void 0 : props.progressPerc) != null ? _props$progressPerc : 100;
55980
56100
  var _progressColor = (_props$progressColor = props === null || props === void 0 ? void 0 : props.progressColor) != null ? _props$progressColor : "unset";
56101
+ var searchBox = "\n padding-left: 5px;\n ";
55981
56102
  return {
55982
56103
  taskBar: css(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n min-height: 22px;\n display: block;\n overflow: hidden;\n width: ", "px;\n border: 1px solid #f0f0f0;\n border-radius: 5px;\n background-color: #f0f0f0;\n "])), _taskWidth != null ? _taskWidth : 0),
55983
56104
  taskProgress: css(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteralLoose(["\n height: 100%;\n position: absolute;\n left: 0;\n bottom: 0;\n width: ", "%;\n border: 1px solid ", ";\n border-radius: 5px;\n background-color: ", ";\n "])), _progressPerc, _progressColor, _progressColor),
55984
56105
  taskBarTitle: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteralLoose(["\n z-index: 1;\n padding-left: 4px;\n position: absolute;\n "]))),
55985
56106
  searchBoxIcon: css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteralLoose(["\n color: #999;\n font-size: 17px;\n line-height: 18px;\n "]))),
55986
- searchBox: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteralLoose(["\n padding-left: 5px;\n "]))),
56107
+ searchBox: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteralLoose(["\n ", "\n "])), searchBox),
55987
56108
  columnChooserPopup: css(_templateObject6$3 || (_templateObject6$3 = _taggedTemplateLiteralLoose(["\n min-width: 250px;\n "]))),
55988
56109
  columnChooserHeader: css(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n "]))),
55989
- columnChooserCloseButton: css(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteralLoose(["\n flex: 1;\n text-align: end;\n cursor: pointer;\n "]))),
55990
- columnChooserDivider: css(_templateObject9$3 || (_templateObject9$3 = _taggedTemplateLiteralLoose(["\n margin-top: 10px;\n margin-bottom: 10px;\n "])))
56110
+ columnChooserCloseButton: css(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteralLoose(["\n flex: 1;\n text-align: end;\n "]))),
56111
+ columnChooserDivider: css(_templateObject9$3 || (_templateObject9$3 = _taggedTemplateLiteralLoose(["\n margin-top: 10px;\n margin-bottom: 10px;\n "]))),
56112
+ columnChooserCheckbox: css(_templateObject10$3 || (_templateObject10$3 = _taggedTemplateLiteralLoose(["\n margin-top: 4px;\n margin-bottom: 4px;\n "]))),
56113
+ columnChooserSearchbox: css(_templateObject11$3 || (_templateObject11$3 = _taggedTemplateLiteralLoose(["\n ", "\n margin-top: 4px;\n margin-bottom: 4px;\n "])), searchBox)
55991
56114
  };
55992
56115
  });
55993
56116
 
@@ -56046,85 +56169,140 @@ var OdsTimelineTableSearchBox = function OdsTimelineTableSearchBox(props) {
56046
56169
  }));
56047
56170
  };
56048
56171
 
56049
- var uniqueRecords = function uniqueRecords(value, index, array) {
56050
- return array.indexOf(value) === index;
56051
- };
56052
-
56053
56172
  var OdsTimelineTableColumnChooser = function OdsTimelineTableColumnChooser(props) {
56054
56173
  var _useStyles = useStyles$b(),
56055
56174
  timelineTableStyles = _useStyles.styles;
56175
+ var initialSelectedColumns = props.items.filter(function (item) {
56176
+ return item.visible !== false;
56177
+ });
56056
56178
  var _useState = React.useState(false),
56057
56179
  open = _useState[0],
56058
56180
  setOpen = _useState[1];
56059
56181
  var _useState2 = React.useState(props.items),
56060
56182
  columns = _useState2[0],
56061
56183
  setColumns = _useState2[1];
56062
- var _useState3 = React.useState(props.items),
56184
+ var _useState3 = React.useState(initialSelectedColumns),
56063
56185
  selectedColumns = _useState3[0],
56064
56186
  setSelectedColumns = _useState3[1];
56065
56187
  var filterColumns = function filterColumns(searchValue) {
56188
+ var _columns = [];
56066
56189
  if (searchValue !== undefined && searchValue !== null && searchValue !== "") {
56067
- setColumns(function (prev) {
56068
- return prev.filter(function (item) {
56069
- return item.toLocaleLowerCase().includes(searchValue.toLocaleLowerCase());
56070
- });
56190
+ _columns = columns.filter(function (item) {
56191
+ return item.columnCaption.toLocaleLowerCase().includes(searchValue.toLocaleLowerCase());
56071
56192
  });
56072
56193
  } else {
56073
- setColumns(props.items);
56194
+ _columns = props.items;
56074
56195
  }
56196
+ setColumns(_columns);
56197
+ updateSelectAll({
56198
+ columnList: _columns
56199
+ });
56075
56200
  };
56076
56201
  var selectAllChanged = function selectAllChanged(isSelected) {
56202
+ setSelectAll(isSelected);
56203
+ var newSelectedColumns = [];
56077
56204
  if (isSelected) {
56078
- setSelectedColumns(function (prev) {
56079
- return [].concat(prev, columns).filter(uniqueRecords);
56080
- });
56205
+ newSelectedColumns = [].concat(selectedColumns, columns).filter(uniqueRecords);
56081
56206
  } else {
56082
- setSelectedColumns(function (prev) {
56083
- return prev.filter(function (item) {
56084
- return !columns.some(function (x) {
56085
- return x === item;
56086
- });
56207
+ newSelectedColumns = selectedColumns.filter(function (item) {
56208
+ return !columns.some(function (x) {
56209
+ return x.columnName === item.columnName;
56087
56210
  });
56088
56211
  });
56089
56212
  }
56213
+ setSelectedColumns(newSelectedColumns);
56214
+ props.onSelection && props.onSelection(columns.map(function (item) {
56215
+ return item.columnName;
56216
+ }), isSelected);
56217
+ };
56218
+ var selectChanged = function selectChanged(isSelected, column) {
56219
+ var newSelectedColumns = [];
56220
+ if (isSelected) {
56221
+ newSelectedColumns = [].concat(selectedColumns, [column]).filter(uniqueRecords);
56222
+ } else {
56223
+ newSelectedColumns = selectedColumns.filter(function (item) {
56224
+ return item.columnName !== column.columnName;
56225
+ });
56226
+ }
56227
+ setSelectedColumns(newSelectedColumns);
56228
+ updateSelectAll({
56229
+ selectedColumnList: newSelectedColumns
56230
+ });
56231
+ props.onSelection && props.onSelection([column.columnName], isSelected);
56232
+ };
56233
+ var updateSelectAll = function updateSelectAll(params) {
56234
+ var columnList = params.columnList,
56235
+ selectedColumnList = params.selectedColumnList;
56236
+ setSelectAll(isAllSelected({
56237
+ columnList: columnList,
56238
+ selectedColumnList: selectedColumnList
56239
+ }));
56090
56240
  };
56091
- var selectChanged = function selectChanged(_isSelected, _columnName) {};
56092
56241
  var isSelected = function isSelected(columnName) {
56093
- return selectedColumns.some(columnName);
56242
+ return selectedColumns.some(function (item) {
56243
+ return item.columnName === columnName;
56244
+ });
56094
56245
  };
56246
+ var isAllSelected = function isAllSelected(params) {
56247
+ var _params$columnList, _params$selectedColum;
56248
+ var _columns = (_params$columnList = params === null || params === void 0 ? void 0 : params.columnList) != null ? _params$columnList : columns;
56249
+ var _selectedColumns = (_params$selectedColum = params === null || params === void 0 ? void 0 : params.selectedColumnList) != null ? _params$selectedColum : selectedColumns;
56250
+ var _result = true;
56251
+ lodash.forEach(_columns, function (_column) {
56252
+ if (!_selectedColumns.some(function (_selectedColumn) {
56253
+ return _selectedColumn.columnName === _column.columnName;
56254
+ })) {
56255
+ _result = false;
56256
+ return;
56257
+ }
56258
+ });
56259
+ return _result;
56260
+ };
56261
+ var _useState4 = React.useState(isAllSelected({
56262
+ columnList: props.items,
56263
+ selectedColumnList: initialSelectedColumns
56264
+ })),
56265
+ selectAll = _useState4[0],
56266
+ setSelectAll = _useState4[1];
56095
56267
  var content = React__default.createElement("div", {
56096
56268
  className: timelineTableStyles.columnChooserPopup
56097
56269
  }, React__default.createElement("div", {
56098
56270
  className: timelineTableStyles.columnChooserHeader
56099
56271
  }, React__default.createElement("span", null, props.title), React__default.createElement("span", {
56100
- className: timelineTableStyles.columnChooserCloseButton,
56272
+ className: timelineTableStyles.columnChooserCloseButton
56273
+ }, React__default.createElement(outline.CrossIcon, {
56274
+ style: {
56275
+ cursor: "pointer"
56276
+ },
56101
56277
  onClick: function onClick() {
56102
56278
  return setOpen(false);
56103
56279
  }
56104
- }, React__default.createElement(outline.CrossIcon, null))), React__default.createElement(OdsInput, {
56280
+ }))), React__default.createElement(OdsInput, {
56105
56281
  key: "OdsTimelineTableColumnChooser_OdsSearch",
56106
56282
  prefix: React__default.createElement("span", {
56107
56283
  className: "dx-icon-search " + timelineTableStyles.searchBoxIcon
56108
56284
  }),
56109
- className: timelineTableStyles.searchBox,
56285
+ className: timelineTableStyles.columnChooserSearchbox,
56110
56286
  onChange: function onChange(e) {
56111
56287
  return filterColumns(e.target.value);
56112
56288
  }
56113
56289
  }), React__default.createElement(OdsCheckbox, {
56114
- defaultChecked: true,
56290
+ className: timelineTableStyles.columnChooserCheckbox,
56291
+ checked: selectAll,
56115
56292
  onChange: function onChange(e) {
56116
- return selectAllChanged(e.target.value);
56293
+ return selectAllChanged(e.target.checked);
56117
56294
  }
56118
- }), React__default.createElement(antd.Divider, {
56295
+ }, props.selectAllText), React__default.createElement(antd.Divider, {
56119
56296
  className: timelineTableStyles.columnChooserDivider
56120
- }), columns.map(function (columnName, index) {
56121
- return React__default.createElement(OdsCheckbox, {
56297
+ }), columns.map(function (_column, index) {
56298
+ return React__default.createElement("div", null, React__default.createElement(OdsCheckbox, {
56122
56299
  key: "OdsTimelineTableColumnChooser_OdsCheckbox_" + index,
56123
- value: isSelected(columnName),
56300
+ className: timelineTableStyles.columnChooserCheckbox,
56301
+ checked: isSelected(_column.columnName),
56124
56302
  onChange: function onChange(e) {
56125
- return selectChanged();
56303
+ return selectChanged(e.target.checked, _column);
56126
56304
  }
56127
- });
56305
+ }, _column.columnCaption));
56128
56306
  }));
56129
56307
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(antd.Popover, {
56130
56308
  open: open,
@@ -56180,6 +56358,15 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
56180
56358
  }),
56181
56359
  sortingChangeEventProps = _useState7[0],
56182
56360
  setSortingChangeEventProps = _useState7[1];
56361
+ var _useState8 = React.useState(customColumns),
56362
+ columnList = _useState8[0],
56363
+ setColumnList = _useState8[1];
56364
+ var _useState9 = React.useState(customColumns.filter(function (item) {
56365
+ return item.visible === false;
56366
+ }).map(function (item) {
56367
+ return item.name;
56368
+ })),
56369
+ unvisibleColumnNames = _useState9[0];
56183
56370
  var originalSortingMode = sorting.mode === undefined || sorting.mode === "" ? "none" : sorting.mode;
56184
56371
  var sortingMode = sortingProcess == "ServerSideSorting" ? "none" : originalSortingMode;
56185
56372
  var showSortIndexes = sortingProcess == "ServerSideSorting" ? false : sorting.showSortIndexes;
@@ -56260,7 +56447,7 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
56260
56447
  updateSelectionData(e.data[props.customTaskKey].toString(), e.isSelected);
56261
56448
  onCustomSelectionChanged && onCustomSelectionChanged(e);
56262
56449
  };
56263
- var timelineColumns = multiSelectionEnabled ? [OdsTimelineSelectionColumn(onTimelineCheckboxSelectionChange)].concat(customColumns) : customColumns;
56450
+ var timelineColumns = multiSelectionEnabled ? [OdsTimelineSelectionColumn(onTimelineCheckboxSelectionChange)].concat(columnList) : columnList;
56264
56451
  var minimalHeaderCellComponent = function minimalHeaderCellComponent(data) {
56265
56452
  return customHeaderCellComponent(data, true);
56266
56453
  };
@@ -56365,6 +56552,33 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
56365
56552
  endDate: e.endDate
56366
56553
  });
56367
56554
  };
56555
+ var onColumnChooserSelection = function onColumnChooserSelection(items, isSelected) {
56556
+ var _props$toolbarSetting, _props$toolbarSetting2, _props$toolbarSetting3, _props$toolbarSetting4;
56557
+ var _visibleColumns = columnList.filter(function (item) {
56558
+ return item.visible !== false;
56559
+ });
56560
+ if (isSelected) {
56561
+ _visibleColumns = [].concat(_visibleColumns, customColumns.filter(function (item) {
56562
+ return items.includes(item.name);
56563
+ })).filter(uniqueRecords);
56564
+ } else {
56565
+ _visibleColumns = _visibleColumns.filter(function (item) {
56566
+ return !items.includes(item.name);
56567
+ });
56568
+ }
56569
+ _visibleColumns = _visibleColumns.filter(function (x) {
56570
+ return !unvisibleColumnNames.includes(x.name);
56571
+ });
56572
+ setColumnList(function (prev) {
56573
+ return prev.map(function (item) {
56574
+ item.visible = _visibleColumns.some(function (x) {
56575
+ return x.name === item.name;
56576
+ });
56577
+ return item;
56578
+ });
56579
+ });
56580
+ ((_props$toolbarSetting = props.toolbarSettings) === null || _props$toolbarSetting === void 0 ? void 0 : (_props$toolbarSetting2 = _props$toolbarSetting.columnChooser) === null || _props$toolbarSetting2 === void 0 ? void 0 : _props$toolbarSetting2.onSelection) && ((_props$toolbarSetting3 = props.toolbarSettings) === null || _props$toolbarSetting3 === void 0 ? void 0 : (_props$toolbarSetting4 = _props$toolbarSetting3.columnChooser) === null || _props$toolbarSetting4 === void 0 ? void 0 : _props$toolbarSetting4.onSelection(items, isSelected));
56581
+ };
56368
56582
  var searchBoxComponent = function searchBoxComponent(props) {
56369
56583
  var _toolbarSettings$sear4;
56370
56584
  var filterInAllFields = function filterInAllFields(item, searchValue) {
@@ -56419,13 +56633,13 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
56419
56633
  var getExportFileName = function getExportFileName() {
56420
56634
  var _toolbarSettings$expo4, _toolbarSettings$expo5;
56421
56635
  var now = new Date();
56422
- var datePart = ('0' + now.getDate()).slice(-2) + "-" + ('0' + (now.getMonth() + 1)).slice(-2) + "-" + now.getFullYear();
56423
- var timePart = ('0' + now.getHours()).slice(-2) + ":" + ('0' + now.getMinutes()).slice(-2);
56636
+ var datePart = ("0" + now.getDate()).slice(-2) + "-" + ("0" + (now.getMonth() + 1)).slice(-2) + "-" + now.getFullYear();
56637
+ var timePart = ("0" + now.getHours()).slice(-2) + ":" + ("0" + now.getMinutes()).slice(-2);
56424
56638
  return ((_toolbarSettings$expo4 = toolbarSettings === null || toolbarSettings === void 0 ? void 0 : (_toolbarSettings$expo5 = toolbarSettings["export"]) === null || _toolbarSettings$expo5 === void 0 ? void 0 : _toolbarSettings$expo5.fileName) != null ? _toolbarSettings$expo4 : "Timeline") + "-" + datePart + "-" + timePart + ".pdf";
56425
56639
  };
56426
56640
  var exportedColumns = React.useMemo(function () {
56427
56641
  var newExportedColumns = [];
56428
- var exportableColumns = customColumns.filter(function (item) {
56642
+ var exportableColumns = columnList.filter(function (item) {
56429
56643
  return item.visible != false && item.allowExporting != false;
56430
56644
  });
56431
56645
  var isResizableColumn = function isResizableColumn(item) {
@@ -56446,7 +56660,7 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
56446
56660
  newExportedColumns.push(col);
56447
56661
  });
56448
56662
  return newExportedColumns;
56449
- }, [exportableTasks]);
56663
+ }, [exportableTasks, columnList]);
56450
56664
  React.useImperativeHandle(ref, function () {
56451
56665
  return {
56452
56666
  getSelectedRowsData: getSelectedRowsData,
@@ -56510,12 +56724,20 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
56510
56724
  visible: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : (_toolbarSettings$colu = toolbarSettings.columnChooser) === null || _toolbarSettings$colu === void 0 ? void 0 : _toolbarSettings$colu.visible,
56511
56725
  location: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.location,
56512
56726
  component: function component(props) {
56513
- var _toolbarSettings$colu2, _toolbarSettings$colu3;
56727
+ var _toolbarSettings$colu2, _toolbarSettings$colu3, _toolbarSettings$colu4, _toolbarSettings$colu5;
56514
56728
  return OdsTimelineTableColumnChooser(_extends({}, props, {
56515
56729
  title: (_toolbarSettings$colu2 = toolbarSettings === null || toolbarSettings === void 0 ? void 0 : (_toolbarSettings$colu3 = toolbarSettings.columnChooser) === null || _toolbarSettings$colu3 === void 0 ? void 0 : _toolbarSettings$colu3.title) != null ? _toolbarSettings$colu2 : "Column Chooser",
56516
- items: customColumns.map(function (item) {
56517
- return item.caption;
56518
- })
56730
+ selectAllText: (_toolbarSettings$colu4 = toolbarSettings === null || toolbarSettings === void 0 ? void 0 : (_toolbarSettings$colu5 = toolbarSettings.columnChooser) === null || _toolbarSettings$colu5 === void 0 ? void 0 : _toolbarSettings$colu5.selectAllText) != null ? _toolbarSettings$colu4 : "Select All",
56731
+ items: columnList.filter(function (item) {
56732
+ return item.caption !== undefined && item.caption !== "";
56733
+ }).map(function (item) {
56734
+ return {
56735
+ columnCaption: item.caption,
56736
+ columnName: item.name,
56737
+ visible: item.visible
56738
+ };
56739
+ }),
56740
+ onSelection: onColumnChooserSelection
56519
56741
  }));
56520
56742
  }
56521
56743
  })) : "", React__default.createElement(gantt.ContextMenu, {