ods-component-lib 1.18.230 → 1.18.232

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,5 +1,5 @@
1
- import React from 'react';
2
- import { OdsCurrencyInputProps } from './types';
1
+ import React from "react";
2
+ import { OdsCurrencyInputProps } from "./types";
3
3
  declare const _default: {
4
4
  title: string;
5
5
  component: React.FC<OdsCurrencyInputProps>;
@@ -22,3 +22,6 @@ export declare const DisableNegative: any;
22
22
  export declare const DisableZero: any;
23
23
  export declare const StyleCurrencySelect: any;
24
24
  export declare const NullCurrencies: any;
25
+ export declare const AsPercentage: any;
26
+ export declare const PercentageOnRight: any;
27
+ export declare const CurrencyOnRight: any;
@@ -5,6 +5,8 @@ export declare type OdsCurrencyInputProps = InputNumberProps & {
5
5
  dontFormatValue?: boolean;
6
6
  disableNegative?: boolean;
7
7
  defaultValue?: number;
8
+ asPercentage?: boolean;
9
+ isOnRight?: boolean;
8
10
  currencySelectProps: CurrencySelectProps;
9
11
  };
10
12
  export declare type CurrencyOptionType = {
@@ -25,7 +25,7 @@ interface IExportProps {
25
25
  }
26
26
  export declare type ITooltipType = "raw" | "styled";
27
27
  export interface IOdsDataGridProps extends IDataGridOptions, IMultiCellEditableDataGridProps {
28
- ref?: React.MutableRefObject<any> | undefined;
28
+ refGrid: React.MutableRefObject<any>;
29
29
  dataGridPageName?: string;
30
30
  language: string;
31
31
  exportFileName: string;
@@ -0,0 +1,9 @@
1
+ export declare const useStyles: (props?: {
2
+ taskWidth: any;
3
+ progressPerc: any;
4
+ progressColor: any;
5
+ }) => import("antd-style").ReturnStyles<{
6
+ taskBar: import("antd-style").SerializedStyles;
7
+ taskProgress: import("antd-style").SerializedStyles;
8
+ taskBarTitle: import("antd-style").SerializedStyles;
9
+ }>;
@@ -44,14 +44,22 @@ export interface IOdsTimelineTableProps extends React.PropsWithChildren<IGanttOp
44
44
  * Set true if you want multi selection in list view.
45
45
  */
46
46
  multiSelectionEnabled?: boolean;
47
+ /**
48
+ * Set true if it' s visible.
49
+ */
50
+ toolbarVisible?: boolean;
51
+ /**
52
+ * Set true if it' s visible.
53
+ */
54
+ showDateFilter?: boolean;
47
55
  /**
48
56
  * This is a selection event that fired when selection is changed.
49
57
  */
50
- onCustomSelectionChanged(e: ICustomSelectionChange): void;
58
+ onCustomSelectionChanged?(e: ICustomSelectionChange): void;
51
59
  /**
52
60
  * This is a date range event that fired when date range is changed.
53
61
  */
54
- onDateRangeChange(e: IDateRangeChange): void;
62
+ onDateRangeChange?(e: IDateRangeChange): void;
55
63
  }
56
64
  export interface IOdsTimelineColumnProps extends IColumnProps {
57
65
  isMinimized?: boolean;
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
2
  import "./OdsTimelineTable.css";
3
3
  import { IOdsTimelineTableProps } from "./OdsTimelineTable.Types";
4
- declare const OdsTimeline: (props: IOdsTimelineTableProps) => React.JSX.Element;
5
- export default OdsTimeline;
4
+ declare const OdsTimelineTable: React.ForwardRefExoticComponent<IOdsTimelineTableProps & React.RefAttributes<unknown>>;
5
+ export default OdsTimelineTable;
@@ -1,2 +1,2 @@
1
1
  import { ICustomSelectionChange, IOdsTimelineColumnProps } from "./OdsTimelineTable.Types";
2
- export declare const OdsTimelineSelectionColumn: (selectionEvent: (e: ICustomSelectionChange) => void) => IOdsTimelineColumnProps;
2
+ export declare const OdsTimelineSelectionColumn: (selectionEvent?: (e: ICustomSelectionChange) => void) => IOdsTimelineColumnProps;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ declare const OdsTimelineTableTaskTemplate: ({ taskData, taskSize }: {
3
+ taskData: any;
4
+ taskSize: any;
5
+ }) => React.JSX.Element;
6
+ export default OdsTimelineTableTaskTemplate;
package/dist/index.css CHANGED
@@ -223,6 +223,14 @@ tr._2CvVM._3Xrp3._19iuB._3udtX {
223
223
  pointer-events: none;
224
224
  background-color: #f0f0f0;
225
225
  }
226
+ ._3lbve {
227
+ writing-mode: vertical-lr;
228
+ }
229
+
230
+ ._3sOBn {
231
+ vertical-align: middle !important;
232
+ }
233
+
226
234
  ._3n8UJ {
227
235
  background-color: lightgreen;
228
236
  }
package/dist/index.d.ts CHANGED
@@ -64,6 +64,7 @@ import OdsTreeListMenu from "./components/antd/treeListMenu/OdsTreeListMenu";
64
64
  export { default as OdsTreeSelect } from "./components/antd/treeSelect/OdsTreeSelect";
65
65
  export { default as OdsCurrencyInput } from "./components/antd/currencyInput/OdsCurrencyInput";
66
66
  export { default as OdsMergeCellDataGrid } from "./components/devextreme/OdsMergeCellDataGrid/OdsMergeCellDataGrid";
67
+ export { default as OdsTimelineTable } from "./components/devextreme/OdsTimelineTable/OdsTimelineTable";
67
68
  export { OdsButton };
68
69
  export { OdsInput };
69
70
  export { OdsDropdownButton };
package/dist/index.js CHANGED
@@ -45,6 +45,7 @@ var devextremeReact = require('devextreme-react');
45
45
  var antdStyle = require('antd-style');
46
46
  var FileSaver = require('file-saver');
47
47
  require('devextreme/dist/css/dx.light.css');
48
+ var gantt = require('devextreme-react/gantt');
48
49
 
49
50
  function _toPrimitive(t, r) {
50
51
  if ("object" != typeof t || !t) return t;
@@ -37760,12 +37761,12 @@ var CurrencySelect = function CurrencySelect(_ref) {
37760
37761
  }));
37761
37762
  };
37762
37763
 
37763
- var _excluded$7 = ["currencySelectProps", "defaultValue", "locale", "dontFormatValue", "min"];
37764
+ var _excluded$7 = ["currencySelectProps", "defaultValue", "locale", "dontFormatValue", "min", "asPercentage", "isOnRight"];
37764
37765
  var _templateObject$z;
37765
37766
  var useStyles$9 = antdStyle.createStyles(function (_ref) {
37766
37767
  var css = _ref.css;
37767
37768
  return {
37768
- Wrapper: css(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n width: 100%;\n "])))
37769
+ Wrapper: css(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n width: 100%;\n "])))
37769
37770
  };
37770
37771
  });
37771
37772
  var OdsCurrencyInput = function OdsCurrencyInput(_ref2) {
@@ -37773,10 +37774,12 @@ var OdsCurrencyInput = function OdsCurrencyInput(_ref2) {
37773
37774
  _ref2$defaultValue = _ref2.defaultValue,
37774
37775
  defaultValue = _ref2$defaultValue === void 0 ? "" : _ref2$defaultValue,
37775
37776
  _ref2$locale = _ref2.locale,
37776
- locale = _ref2$locale === void 0 ? 'tr-TR' : _ref2$locale,
37777
+ locale = _ref2$locale === void 0 ? "tr-TR" : _ref2$locale,
37777
37778
  dontFormatValue = _ref2.dontFormatValue,
37778
37779
  _ref2$min = _ref2.min,
37779
37780
  min = _ref2$min === void 0 ? 0 : _ref2$min,
37781
+ asPercentage = _ref2.asPercentage,
37782
+ isOnRight = _ref2.isOnRight,
37780
37783
  props = _objectWithoutPropertiesLoose(_ref2, _excluded$7);
37781
37784
  var _useStyles = useStyles$9(),
37782
37785
  styles = _useStyles.styles;
@@ -37787,6 +37790,9 @@ var OdsCurrencyInput = function OdsCurrencyInput(_ref2) {
37787
37790
  });
37788
37791
  }, [currencySelectProps]);
37789
37792
  var currencySelector = React.useMemo(function () {
37793
+ if (asPercentage) {
37794
+ return "%";
37795
+ }
37790
37796
  if (!currencySelectProps || !currencySelectProps.currencyOptions || currencySelectProps.currencyOptions.length === 0) {
37791
37797
  return undefined;
37792
37798
  } else if (currencySelectProps.fixedCurrency) {
@@ -37806,7 +37812,8 @@ var OdsCurrencyInput = function OdsCurrencyInput(_ref2) {
37806
37812
  }, React__default.createElement(antd.InputNumber, Object.assign({
37807
37813
  defaultValue: defaultValue,
37808
37814
  min: min,
37809
- addonBefore: currencySelector,
37815
+ addonBefore: !isOnRight && currencySelector,
37816
+ addonAfter: isOnRight && currencySelector,
37810
37817
  value: props.value,
37811
37818
  className: styles.Wrapper,
37812
37819
  onChange: function onChange(value) {
@@ -37826,9 +37833,9 @@ var formatValue = function formatValue(value, locale) {
37826
37833
  };
37827
37834
  var parseValue = function parseValue(stringNumber, locale) {
37828
37835
  if (!stringNumber) return stringNumber;
37829
- var thousandSeparator = Intl.NumberFormat(locale).format(11111).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
37830
- var decimalSeparator = Intl.NumberFormat(locale).format(1.1).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
37831
- return parseFloat(stringNumber.replace(new RegExp('\\' + thousandSeparator, 'g'), '').replace(new RegExp('\\' + decimalSeparator), '.'));
37836
+ var thousandSeparator = Intl.NumberFormat(locale).format(11111).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, "");
37837
+ var decimalSeparator = Intl.NumberFormat(locale).format(1.1).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, "");
37838
+ return parseFloat(stringNumber.replace(new RegExp("\\" + thousandSeparator, "g"), "").replace(new RegExp("\\" + decimalSeparator), "."));
37832
37839
  };
37833
37840
 
37834
37841
  var _templateObject$A, _templateObject2$8, _templateObject3$5, _templateObject4$4;
@@ -38048,7 +38055,7 @@ OdsMergeCellDataGridHelper.getInstance = function () {
38048
38055
  var useToken$2 = antd.theme.useToken;
38049
38056
  var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38050
38057
  var _props$columnResizing, _props$className, _props$selection, _props$selectOptions, _props$selectOptions$, _props$selectOptions2, _props$selectOptions$2, _props$selectOptions3;
38051
- var ref = props.ref,
38058
+ var refGrid = props.refGrid,
38052
38059
  keyExpr = props.keyExpr,
38053
38060
  hasFastUpdate = props.hasFastUpdate,
38054
38061
  fastUpdateButtonText = props.fastUpdateButtonText,
@@ -38070,7 +38077,6 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38070
38077
  token = _useToken.token;
38071
38078
  var _AntForm$useForm = antd.Form.useForm(),
38072
38079
  fastUpdateForm = _AntForm$useForm[0];
38073
- var gridRef = ref != null ? ref : React.useRef(null);
38074
38080
  var helper = OdsMergeCellDataGridHelper.getInstance();
38075
38081
  var pkName = keyExpr && keyExpr.toString();
38076
38082
  var _useState = React.useState(false),
@@ -38142,8 +38148,8 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38142
38148
  React.useEffect(function () {
38143
38149
  localization.locale(localStorage.getItem("locale"));
38144
38150
  localization.loadMessages(JSON.parse(localStorage.getItem("localTranslation")));
38145
- if (gridRef.current) {
38146
- gridRef.current.instance.updateDimensions();
38151
+ if (refGrid.current) {
38152
+ refGrid.current.instance.updateDimensions();
38147
38153
  }
38148
38154
  hasFastUpdate && document.addEventListener("keydown", keydownEvent);
38149
38155
  return function () {
@@ -38202,13 +38208,13 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38202
38208
  }));
38203
38209
  for (var rowIndex = minRowIndex; rowIndex <= maxRowIndex; rowIndex++) {
38204
38210
  var _loop2 = function _loop2() {
38205
- var _column = gridRef.current.instance.columnOption(colIndex);
38211
+ var _column = refGrid.current.instance.columnOption(colIndex);
38206
38212
  if (constants$2.allowedDataTypesForMultiCellEditing.some(function (item) {
38207
38213
  return item.toLocaleLowerCase() == _column.dataType.toLocaleLowerCase();
38208
38214
  })) {
38209
38215
  result.push({
38210
38216
  dataField: _column.dataField,
38211
- pkValue: gridRef.current.instance.cellValue(rowIndex, pkName)
38217
+ pkValue: refGrid.current.instance.cellValue(rowIndex, pkName)
38212
38218
  });
38213
38219
  }
38214
38220
  };
@@ -38244,8 +38250,8 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38244
38250
  });
38245
38251
  };
38246
38252
  var removeSelectedCell = function removeSelectedCell(rowIndex, colIndex) {
38247
- var dataField = gridRef.current.instance.columnOption(colIndex).dataField;
38248
- var pkValue = gridRef.current.instance.cellValue(rowIndex, pkName);
38253
+ var dataField = refGrid.current.instance.columnOption(colIndex).dataField;
38254
+ var pkValue = refGrid.current.instance.cellValue(rowIndex, pkName);
38249
38255
  setSelectedCells(function (prev) {
38250
38256
  return prev.filter(function (cell) {
38251
38257
  return !(cell.dataField == dataField && cell.pkValue == pkValue);
@@ -38698,7 +38704,7 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38698
38704
  dataSource: data,
38699
38705
  showBorders: true,
38700
38706
  columnAutoWidth: false,
38701
- ref: gridRef,
38707
+ ref: refGrid,
38702
38708
  height: props.height == undefined ? window.innerHeight - 164 : props.height,
38703
38709
  allowColumnResizing: true,
38704
38710
  columnResizingMode: (_props$columnResizing = props.columnResizingMode) != null ? _props$columnResizing : "widget",
@@ -38863,6 +38869,316 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38863
38869
  })));
38864
38870
  };
38865
38871
 
38872
+ var currentYear = new Date().getFullYear();
38873
+ var Constants = {
38874
+ timelineDefaultStartDate: new Date(currentYear, 0, 1),
38875
+ timelineDefaultEndDate: new Date(currentYear + 1, 0, 1)
38876
+ };
38877
+
38878
+ var checkboxCellComponent = function checkboxCellComponent(props) {
38879
+ var isChecked = props.data.value;
38880
+ var onChange = function onChange(e) {
38881
+ props.data.column.onCheckboxColumnChange({
38882
+ data: props.data.data,
38883
+ dataField: props.data.column.dataField,
38884
+ isChecked: e.target.checked
38885
+ });
38886
+ };
38887
+ return React__default.createElement(OdsCheckbox, {
38888
+ key: "odstimeline-checkboxcolumn-" + props.data.name,
38889
+ style: {
38890
+ height: "32px"
38891
+ },
38892
+ defaultChecked: isChecked,
38893
+ onChange: onChange
38894
+ });
38895
+ };
38896
+ var statusCellComponent = function statusCellComponent(props) {
38897
+ var isActive = props.data.value;
38898
+ var _onClick = function onClick(value) {
38899
+ props.data.column.onStatusColumnChange({
38900
+ data: props.data.data,
38901
+ dataField: props.data.column.dataField,
38902
+ status: value
38903
+ });
38904
+ };
38905
+ return isActive ? React__default.createElement(icons.CheckCircleFilled, {
38906
+ style: {
38907
+ fontSize: 20,
38908
+ color: "#568B6B"
38909
+ },
38910
+ onClick: function onClick() {
38911
+ return _onClick(false);
38912
+ }
38913
+ }) : React__default.createElement(icons.CheckCircleFilled, {
38914
+ style: {
38915
+ fontSize: 20,
38916
+ color: "#EDEDED"
38917
+ },
38918
+ onClick: function onClick() {
38919
+ return _onClick(true);
38920
+ }
38921
+ });
38922
+ };
38923
+ var minimalHeaderCellComponent = function minimalHeaderCellComponent(data, __el) {
38924
+ return React__default.createElement("div", {
38925
+ className: "minimalHeaderCell"
38926
+ }, data.data.column.caption);
38927
+ };
38928
+ var mapCustomTask = function mapCustomTask(item) {
38929
+ return _extends({
38930
+ isSelected: false
38931
+ }, item);
38932
+ };
38933
+ var setSelectedKeys = function setSelectedKeys(datasource, key, selectedKeys) {
38934
+ if (key && key != "" && selectedKeys && selectedKeys.length > 0) {
38935
+ return datasource.map(function (x) {
38936
+ if (selectedKeys.some(function (y) {
38937
+ return y == x[key];
38938
+ })) {
38939
+ x.isSelected = true;
38940
+ }
38941
+ return x;
38942
+ });
38943
+ } else {
38944
+ return datasource;
38945
+ }
38946
+ };
38947
+
38948
+ var OdsTimelineDateFilter = function OdsTimelineDateFilter(props) {
38949
+ var defaultStartDate = props.defaultStartDate,
38950
+ defaultEndDate = props.defaultEndDate,
38951
+ backText = props.backText,
38952
+ nextText = props.nextText,
38953
+ onFilterRangeChange = props.onFilterRangeChange;
38954
+ var _useState = React.useState([dayjs_min(defaultStartDate), dayjs_min(defaultEndDate)]),
38955
+ dateRange = _useState[0],
38956
+ setDateRange = _useState[1];
38957
+ var startDate = dateRange[0].toDate();
38958
+ var endDate = dateRange[1].toDate();
38959
+ var onPickerValueChange = function onPickerValueChange(date) {
38960
+ var newStartDate = date[0].toDate(),
38961
+ newEndDate = date[1].toDate();
38962
+ (newStartDate != startDate || newEndDate != endDate) && onFilterRangeChange({
38963
+ startDate: newStartDate,
38964
+ endDate: newEndDate
38965
+ });
38966
+ setDateRange(date);
38967
+ };
38968
+ var buttonClick = function buttonClick(monthDirection) {
38969
+ var newStartDate = startDate,
38970
+ newEndDate = endDate,
38971
+ currentStartYear = startDate.getFullYear(),
38972
+ currentStartMonth = startDate.getMonth(),
38973
+ currentEndYear = endDate.getFullYear(),
38974
+ currentEndMonth = endDate.getMonth();
38975
+ switch (monthDirection) {
38976
+ case "previousMonth":
38977
+ newStartDate.setMonth(currentStartMonth == 0 ? 11 : currentStartMonth - 1);
38978
+ newStartDate.setFullYear(currentStartMonth == 0 ? currentStartYear - 1 : currentStartYear);
38979
+ break;
38980
+ case "nextMonth":
38981
+ newEndDate.setMonth(currentEndMonth == 11 ? 0 : currentEndMonth + 1);
38982
+ newEndDate.setFullYear(currentEndMonth == 11 ? currentEndYear + 1 : currentEndYear);
38983
+ break;
38984
+ }
38985
+ setDateRange([dayjs_min(newStartDate), dayjs_min(newEndDate)]);
38986
+ onFilterRangeChange({
38987
+ startDate: newStartDate,
38988
+ endDate: newEndDate
38989
+ });
38990
+ };
38991
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(antd.Space, null, React__default.createElement(OdsButton, {
38992
+ key: "odsbutton-back",
38993
+ onClick: function onClick(_e) {
38994
+ buttonClick("previousMonth");
38995
+ },
38996
+ style: {
38997
+ backgroundColor: "#A19FA0",
38998
+ color: "white",
38999
+ borderColor: "white"
39000
+ }
39001
+ }, React__default.createElement(icons.LeftCircleFilled, null), backText != null ? backText : "Back"), React__default.createElement(OdsDateRangePicker, {
39002
+ defaultValue: [dayjs_min(defaultStartDate), dayjs_min(defaultEndDate)],
39003
+ value: dateRange,
39004
+ onPickerValueChange: onPickerValueChange
39005
+ }), React__default.createElement(OdsButton, {
39006
+ key: "odsbutton-next",
39007
+ onClick: function onClick(_e) {
39008
+ buttonClick("nextMonth");
39009
+ },
39010
+ style: {
39011
+ backgroundColor: "#A19FA0",
39012
+ color: "white",
39013
+ borderColor: "white"
39014
+ }
39015
+ }, nextText != null ? nextText : "Next", React__default.createElement(icons.RightCircleFilled, null))));
39016
+ };
39017
+
39018
+ var OdsTimelineSelectionColumn = function OdsTimelineSelectionColumn(selectionEvent) {
39019
+ var selectionColumn = {
39020
+ caption: "",
39021
+ minWidth: 50,
39022
+ width: 50,
39023
+ dataField: "isSelected",
39024
+ cellComponent: function cellComponent(props) {
39025
+ var onChange = function onChange(e) {
39026
+ selectionEvent && selectionEvent({
39027
+ data: props.data.data,
39028
+ isSelected: e.target.checked
39029
+ });
39030
+ };
39031
+ return React__default.createElement(OdsCheckbox, {
39032
+ key: "odstimeline-selection-" + props.data.name,
39033
+ style: {
39034
+ height: "32px"
39035
+ },
39036
+ defaultChecked: props.data.value,
39037
+ onChange: onChange
39038
+ });
39039
+ }
39040
+ };
39041
+ return selectionColumn;
39042
+ };
39043
+
39044
+ var _templateObject$B, _templateObject2$9, _templateObject3$6;
39045
+ var useStyles$b = antdStyle.createStyles(function (_ref, props) {
39046
+ var css = _ref.css;
39047
+ return {
39048
+ 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 "])), props.taskWidth),
39049
+ 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 "])), props.progressPerc, props.progressColor, props.progressColor),
39050
+ taskBarTitle: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteralLoose(["\n z-index: 1;\n padding-left: 4px;\n position: absolute;\n "])))
39051
+ };
39052
+ });
39053
+
39054
+ var OdsTimelineTableTaskTemplate = function OdsTimelineTableTaskTemplate(_ref) {
39055
+ var taskData = _ref.taskData,
39056
+ taskSize = _ref.taskSize;
39057
+ var _useStyles = useStyles$b({
39058
+ progressColor: taskData.color,
39059
+ progressPerc: taskData.progress,
39060
+ taskWidth: taskSize.width
39061
+ }),
39062
+ timelineTableStyles = _useStyles.styles;
39063
+ return React__default.createElement("div", {
39064
+ className: timelineTableStyles.taskBar
39065
+ }, React__default.createElement("span", {
39066
+ className: timelineTableStyles.taskBarTitle
39067
+ }, taskData.title), React__default.createElement("div", {
39068
+ className: timelineTableStyles.taskProgress
39069
+ }));
39070
+ };
39071
+
39072
+ var OdsTimelineTable = React.forwardRef(function (props, ref) {
39073
+ var customColumns = props.customColumns,
39074
+ customTasks = props.customTasks,
39075
+ customTaskKey = props.customTaskKey,
39076
+ customSelectedKeys = props.customSelectedKeys,
39077
+ children = props.children,
39078
+ startDateRange = props.startDateRange,
39079
+ endDateRange = props.endDateRange,
39080
+ multiSelectionEnabled = props.multiSelectionEnabled,
39081
+ toolbarVisible = props.toolbarVisible,
39082
+ showDateFilter = props.showDateFilter,
39083
+ onCustomSelectionChanged = props.onCustomSelectionChanged,
39084
+ onDateRangeChange = props.onDateRangeChange;
39085
+ var _useState = React.useState(startDateRange != null ? startDateRange : Constants.timelineDefaultStartDate),
39086
+ startDate = _useState[0],
39087
+ setStartDate = _useState[1];
39088
+ var _useState2 = React.useState(endDateRange != null ? endDateRange : Constants.timelineDefaultEndDate),
39089
+ endDate = _useState2[0],
39090
+ setEndDate = _useState2[1];
39091
+ var _useState3 = React.useState([]),
39092
+ timelineTasks = _useState3[0],
39093
+ setTimelineTasks = _useState3[1];
39094
+ React.useEffect(function () {
39095
+ setTimelineTasks(multiSelectionEnabled ? setSelectedKeys(customTasks.map(mapCustomTask), customTaskKey, customSelectedKeys) : customTasks);
39096
+ }, [customTasks]);
39097
+ var getSelectedRowsData = function getSelectedRowsData() {
39098
+ return timelineTasks.filter(function (item) {
39099
+ return item.isSelected == true;
39100
+ });
39101
+ };
39102
+ var updateSelectionData = function updateSelectionData(keyValue, isSelected) {
39103
+ setTimelineTasks(function (prev) {
39104
+ return prev.map(function (item) {
39105
+ if (item[props.customTaskKey] == keyValue) {
39106
+ item.isSelected = isSelected;
39107
+ }
39108
+ return item;
39109
+ });
39110
+ });
39111
+ };
39112
+ var onTimelineDateRangeChange = function onTimelineDateRangeChange(e) {
39113
+ setStartDate(e.startDate);
39114
+ setEndDate(e.endDate);
39115
+ onDateRangeChange && onDateRangeChange({
39116
+ startDate: e.startDate,
39117
+ endDate: e.endDate
39118
+ });
39119
+ };
39120
+ var onTimelineCheckboxSelectionChange = function onTimelineCheckboxSelectionChange(e) {
39121
+ updateSelectionData(e.data[props.customTaskKey], e.isSelected);
39122
+ onCustomSelectionChanged && onCustomSelectionChanged(e);
39123
+ };
39124
+ var timelineColumns = multiSelectionEnabled ? [OdsTimelineSelectionColumn(onTimelineCheckboxSelectionChange)].concat(customColumns) : customColumns;
39125
+ React.useImperativeHandle(ref, function () {
39126
+ return {
39127
+ getSelectedRowsData: getSelectedRowsData
39128
+ };
39129
+ });
39130
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(gantt.Gantt, Object.assign({
39131
+ width: "100%",
39132
+ height: 500,
39133
+ startDateRange: startDate,
39134
+ endDateRange: endDate,
39135
+ taskContentRender: function taskContentRender(params) {
39136
+ return React__default.createElement(OdsTimelineTableTaskTemplate, Object.assign({}, params));
39137
+ }
39138
+ }, props), toolbarVisible ? React__default.createElement(gantt.Toolbar, null, showDateFilter ? React__default.createElement(gantt.Item, {
39139
+ key: "OdsTimelineTable_ToolbarItem_DateFilter",
39140
+ component: function component(props) {
39141
+ return OdsTimelineDateFilter(_extends({}, props, {
39142
+ defaultStartDate: startDate,
39143
+ defaultEndDate: endDate,
39144
+ onFilterRangeChange: onTimelineDateRangeChange
39145
+ }));
39146
+ }
39147
+ }) : "", React__default.createElement(gantt.Item, {
39148
+ key: "OdsTimelineTable_ToolbarItem_ZoomIn",
39149
+ name: "zoomIn"
39150
+ }), React__default.createElement(gantt.Item, {
39151
+ key: "OdsTimelineTable_ToolbarItem_ZoomOut",
39152
+ name: "zoomOut"
39153
+ })) : "", React__default.createElement(gantt.ContextMenu, {
39154
+ enabled: false
39155
+ }), timelineColumns === null || timelineColumns === void 0 ? void 0 : timelineColumns.map(function (columnProps) {
39156
+ if (columnProps.isStatusColumn) {
39157
+ return React__default.createElement(gantt.Column, Object.assign({
39158
+ width: 50,
39159
+ minWidth: 50,
39160
+ cssClass: "cellCenteredVertically",
39161
+ cellComponent: statusCellComponent,
39162
+ headerCellComponent: minimalHeaderCellComponent
39163
+ }, columnProps));
39164
+ } else if (columnProps.isCheckboxColumn) {
39165
+ return React__default.createElement(gantt.Column, Object.assign({
39166
+ width: 50,
39167
+ minWidth: 50,
39168
+ cssClass: "cellCenteredVertically",
39169
+ cellComponent: checkboxCellComponent,
39170
+ headerCellComponent: minimalHeaderCellComponent
39171
+ }, columnProps));
39172
+ } else {
39173
+ return React__default.createElement(gantt.Column, Object.assign({
39174
+ headerCellComponent: columnProps.isMinimized && minimalHeaderCellComponent
39175
+ }, columnProps));
39176
+ }
39177
+ }), React__default.createElement(gantt.Tasks, {
39178
+ dataSource: timelineTasks
39179
+ }), children));
39180
+ });
39181
+
38866
39182
  /**
38867
39183
  * Checks if `value` is the
38868
39184
  * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
@@ -40581,6 +40897,7 @@ exports.OdsTag = OdsTag;
40581
40897
  exports.OdsText = OdsText;
40582
40898
  exports.OdsTextArea = OdsTextArea;
40583
40899
  exports.OdsTimeline = OdsTimeline;
40900
+ exports.OdsTimelineTable = OdsTimelineTable;
40584
40901
  exports.OdsTimepicker = OdsTimepicker;
40585
40902
  exports.OdsTitle = OdsTitle;
40586
40903
  exports.OdsTransfer = OdsTransfer;