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,9 +1,9 @@
1
1
  import { Alert, AutoComplete, Button, Dropdown, Calendar, Card as Card$1, Checkbox, DatePicker, Divider, Collapse, Image, Input, InputNumber, List, Modal, notification, Radio, Rate, Select, Space, Spin, Switch, Tabs, Table, Tag, Timeline, TimePicker, Typography, theme, Badge, ConfigProvider, Menu, Form as Form$1, Row, Col, Upload, Tooltip as Tooltip$1, Transfer, Progress, Tree, TreeSelect } from 'antd';
2
2
  import styled, { ThemeProvider } from 'styled-components';
3
- import React, { useState, useRef, useEffect, useCallback, Suspense, useMemo } from 'react';
3
+ import React, { useState, useRef, useEffect, useCallback, Suspense, useMemo, forwardRef, useImperativeHandle } from 'react';
4
4
  import Marquee from 'react-fast-marquee';
5
5
  import Card from 'antd/es/card/Card';
6
- import { EyeTwoTone, EyeInvisibleOutlined, FrownOutlined, MehOutlined, SmileOutlined, HeartOutlined, PlusOutlined, InfoCircleOutlined, CheckOutlined, CloseOutlined } from '@ant-design/icons';
6
+ import { EyeTwoTone, EyeInvisibleOutlined, FrownOutlined, MehOutlined, SmileOutlined, HeartOutlined, PlusOutlined, InfoCircleOutlined, CheckOutlined, CloseOutlined, CheckCircleFilled, LeftCircleFilled, RightCircleFilled } from '@ant-design/icons';
7
7
  import 'react-phone-input-2/lib/style.css';
8
8
  import PhoneInput from 'react-phone-input-2';
9
9
  import Parser from 'html-react-parser';
@@ -21,6 +21,7 @@ import { TreeList, Lookup, DataGrid as DataGrid$2, Toolbar as Toolbar$1 } from '
21
21
  import { createStyles } from 'antd-style';
22
22
  import { saveAs as saveAs$1 } from 'file-saver';
23
23
  import 'devextreme/dist/css/dx.light.css';
24
+ import { Gantt, Toolbar as Toolbar$2, Item as Item$2, ContextMenu, Column as Column$1, Tasks } from 'devextreme-react/gantt';
24
25
 
25
26
  function _toPrimitive(t, r) {
26
27
  if ("object" != typeof t || !t) return t;
@@ -37736,12 +37737,12 @@ var CurrencySelect = function CurrencySelect(_ref) {
37736
37737
  }));
37737
37738
  };
37738
37739
 
37739
- var _excluded$7 = ["currencySelectProps", "defaultValue", "locale", "dontFormatValue", "min"];
37740
+ var _excluded$7 = ["currencySelectProps", "defaultValue", "locale", "dontFormatValue", "min", "asPercentage", "isOnRight"];
37740
37741
  var _templateObject$z;
37741
37742
  var useStyles$9 = createStyles(function (_ref) {
37742
37743
  var css = _ref.css;
37743
37744
  return {
37744
- Wrapper: css(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n width: 100%;\n "])))
37745
+ Wrapper: css(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n width: 100%;\n "])))
37745
37746
  };
37746
37747
  });
37747
37748
  var OdsCurrencyInput = function OdsCurrencyInput(_ref2) {
@@ -37749,10 +37750,12 @@ var OdsCurrencyInput = function OdsCurrencyInput(_ref2) {
37749
37750
  _ref2$defaultValue = _ref2.defaultValue,
37750
37751
  defaultValue = _ref2$defaultValue === void 0 ? "" : _ref2$defaultValue,
37751
37752
  _ref2$locale = _ref2.locale,
37752
- locale = _ref2$locale === void 0 ? 'tr-TR' : _ref2$locale,
37753
+ locale = _ref2$locale === void 0 ? "tr-TR" : _ref2$locale,
37753
37754
  dontFormatValue = _ref2.dontFormatValue,
37754
37755
  _ref2$min = _ref2.min,
37755
37756
  min = _ref2$min === void 0 ? 0 : _ref2$min,
37757
+ asPercentage = _ref2.asPercentage,
37758
+ isOnRight = _ref2.isOnRight,
37756
37759
  props = _objectWithoutPropertiesLoose(_ref2, _excluded$7);
37757
37760
  var _useStyles = useStyles$9(),
37758
37761
  styles = _useStyles.styles;
@@ -37763,6 +37766,9 @@ var OdsCurrencyInput = function OdsCurrencyInput(_ref2) {
37763
37766
  });
37764
37767
  }, [currencySelectProps]);
37765
37768
  var currencySelector = useMemo(function () {
37769
+ if (asPercentage) {
37770
+ return "%";
37771
+ }
37766
37772
  if (!currencySelectProps || !currencySelectProps.currencyOptions || currencySelectProps.currencyOptions.length === 0) {
37767
37773
  return undefined;
37768
37774
  } else if (currencySelectProps.fixedCurrency) {
@@ -37782,7 +37788,8 @@ var OdsCurrencyInput = function OdsCurrencyInput(_ref2) {
37782
37788
  }, React.createElement(InputNumber, Object.assign({
37783
37789
  defaultValue: defaultValue,
37784
37790
  min: min,
37785
- addonBefore: currencySelector,
37791
+ addonBefore: !isOnRight && currencySelector,
37792
+ addonAfter: isOnRight && currencySelector,
37786
37793
  value: props.value,
37787
37794
  className: styles.Wrapper,
37788
37795
  onChange: function onChange(value) {
@@ -37802,9 +37809,9 @@ var formatValue = function formatValue(value, locale) {
37802
37809
  };
37803
37810
  var parseValue = function parseValue(stringNumber, locale) {
37804
37811
  if (!stringNumber) return stringNumber;
37805
- 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, '');
37806
- 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, '');
37807
- return parseFloat(stringNumber.replace(new RegExp('\\' + thousandSeparator, 'g'), '').replace(new RegExp('\\' + decimalSeparator), '.'));
37812
+ 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, "");
37813
+ 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, "");
37814
+ return parseFloat(stringNumber.replace(new RegExp("\\" + thousandSeparator, "g"), "").replace(new RegExp("\\" + decimalSeparator), "."));
37808
37815
  };
37809
37816
 
37810
37817
  var _templateObject$A, _templateObject2$8, _templateObject3$5, _templateObject4$4;
@@ -38024,7 +38031,7 @@ OdsMergeCellDataGridHelper.getInstance = function () {
38024
38031
  var useToken$2 = theme.useToken;
38025
38032
  var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38026
38033
  var _props$columnResizing, _props$className, _props$selection, _props$selectOptions, _props$selectOptions$, _props$selectOptions2, _props$selectOptions$2, _props$selectOptions3;
38027
- var ref = props.ref,
38034
+ var refGrid = props.refGrid,
38028
38035
  keyExpr = props.keyExpr,
38029
38036
  hasFastUpdate = props.hasFastUpdate,
38030
38037
  fastUpdateButtonText = props.fastUpdateButtonText,
@@ -38046,7 +38053,6 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38046
38053
  token = _useToken.token;
38047
38054
  var _AntForm$useForm = Form$1.useForm(),
38048
38055
  fastUpdateForm = _AntForm$useForm[0];
38049
- var gridRef = ref != null ? ref : useRef(null);
38050
38056
  var helper = OdsMergeCellDataGridHelper.getInstance();
38051
38057
  var pkName = keyExpr && keyExpr.toString();
38052
38058
  var _useState = useState(false),
@@ -38118,8 +38124,8 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38118
38124
  useEffect(function () {
38119
38125
  locale(localStorage.getItem("locale"));
38120
38126
  loadMessages(JSON.parse(localStorage.getItem("localTranslation")));
38121
- if (gridRef.current) {
38122
- gridRef.current.instance.updateDimensions();
38127
+ if (refGrid.current) {
38128
+ refGrid.current.instance.updateDimensions();
38123
38129
  }
38124
38130
  hasFastUpdate && document.addEventListener("keydown", keydownEvent);
38125
38131
  return function () {
@@ -38178,13 +38184,13 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38178
38184
  }));
38179
38185
  for (var rowIndex = minRowIndex; rowIndex <= maxRowIndex; rowIndex++) {
38180
38186
  var _loop2 = function _loop2() {
38181
- var _column = gridRef.current.instance.columnOption(colIndex);
38187
+ var _column = refGrid.current.instance.columnOption(colIndex);
38182
38188
  if (constants$2.allowedDataTypesForMultiCellEditing.some(function (item) {
38183
38189
  return item.toLocaleLowerCase() == _column.dataType.toLocaleLowerCase();
38184
38190
  })) {
38185
38191
  result.push({
38186
38192
  dataField: _column.dataField,
38187
- pkValue: gridRef.current.instance.cellValue(rowIndex, pkName)
38193
+ pkValue: refGrid.current.instance.cellValue(rowIndex, pkName)
38188
38194
  });
38189
38195
  }
38190
38196
  };
@@ -38220,8 +38226,8 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38220
38226
  });
38221
38227
  };
38222
38228
  var removeSelectedCell = function removeSelectedCell(rowIndex, colIndex) {
38223
- var dataField = gridRef.current.instance.columnOption(colIndex).dataField;
38224
- var pkValue = gridRef.current.instance.cellValue(rowIndex, pkName);
38229
+ var dataField = refGrid.current.instance.columnOption(colIndex).dataField;
38230
+ var pkValue = refGrid.current.instance.cellValue(rowIndex, pkName);
38225
38231
  setSelectedCells(function (prev) {
38226
38232
  return prev.filter(function (cell) {
38227
38233
  return !(cell.dataField == dataField && cell.pkValue == pkValue);
@@ -38674,7 +38680,7 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38674
38680
  dataSource: data,
38675
38681
  showBorders: true,
38676
38682
  columnAutoWidth: false,
38677
- ref: gridRef,
38683
+ ref: refGrid,
38678
38684
  height: props.height == undefined ? window.innerHeight - 164 : props.height,
38679
38685
  allowColumnResizing: true,
38680
38686
  columnResizingMode: (_props$columnResizing = props.columnResizingMode) != null ? _props$columnResizing : "widget",
@@ -38839,6 +38845,316 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38839
38845
  })));
38840
38846
  };
38841
38847
 
38848
+ var currentYear = new Date().getFullYear();
38849
+ var Constants = {
38850
+ timelineDefaultStartDate: new Date(currentYear, 0, 1),
38851
+ timelineDefaultEndDate: new Date(currentYear + 1, 0, 1)
38852
+ };
38853
+
38854
+ var checkboxCellComponent = function checkboxCellComponent(props) {
38855
+ var isChecked = props.data.value;
38856
+ var onChange = function onChange(e) {
38857
+ props.data.column.onCheckboxColumnChange({
38858
+ data: props.data.data,
38859
+ dataField: props.data.column.dataField,
38860
+ isChecked: e.target.checked
38861
+ });
38862
+ };
38863
+ return React.createElement(OdsCheckbox, {
38864
+ key: "odstimeline-checkboxcolumn-" + props.data.name,
38865
+ style: {
38866
+ height: "32px"
38867
+ },
38868
+ defaultChecked: isChecked,
38869
+ onChange: onChange
38870
+ });
38871
+ };
38872
+ var statusCellComponent = function statusCellComponent(props) {
38873
+ var isActive = props.data.value;
38874
+ var _onClick = function onClick(value) {
38875
+ props.data.column.onStatusColumnChange({
38876
+ data: props.data.data,
38877
+ dataField: props.data.column.dataField,
38878
+ status: value
38879
+ });
38880
+ };
38881
+ return isActive ? React.createElement(CheckCircleFilled, {
38882
+ style: {
38883
+ fontSize: 20,
38884
+ color: "#568B6B"
38885
+ },
38886
+ onClick: function onClick() {
38887
+ return _onClick(false);
38888
+ }
38889
+ }) : React.createElement(CheckCircleFilled, {
38890
+ style: {
38891
+ fontSize: 20,
38892
+ color: "#EDEDED"
38893
+ },
38894
+ onClick: function onClick() {
38895
+ return _onClick(true);
38896
+ }
38897
+ });
38898
+ };
38899
+ var minimalHeaderCellComponent = function minimalHeaderCellComponent(data, __el) {
38900
+ return React.createElement("div", {
38901
+ className: "minimalHeaderCell"
38902
+ }, data.data.column.caption);
38903
+ };
38904
+ var mapCustomTask = function mapCustomTask(item) {
38905
+ return _extends({
38906
+ isSelected: false
38907
+ }, item);
38908
+ };
38909
+ var setSelectedKeys = function setSelectedKeys(datasource, key, selectedKeys) {
38910
+ if (key && key != "" && selectedKeys && selectedKeys.length > 0) {
38911
+ return datasource.map(function (x) {
38912
+ if (selectedKeys.some(function (y) {
38913
+ return y == x[key];
38914
+ })) {
38915
+ x.isSelected = true;
38916
+ }
38917
+ return x;
38918
+ });
38919
+ } else {
38920
+ return datasource;
38921
+ }
38922
+ };
38923
+
38924
+ var OdsTimelineDateFilter = function OdsTimelineDateFilter(props) {
38925
+ var defaultStartDate = props.defaultStartDate,
38926
+ defaultEndDate = props.defaultEndDate,
38927
+ backText = props.backText,
38928
+ nextText = props.nextText,
38929
+ onFilterRangeChange = props.onFilterRangeChange;
38930
+ var _useState = useState([dayjs_min(defaultStartDate), dayjs_min(defaultEndDate)]),
38931
+ dateRange = _useState[0],
38932
+ setDateRange = _useState[1];
38933
+ var startDate = dateRange[0].toDate();
38934
+ var endDate = dateRange[1].toDate();
38935
+ var onPickerValueChange = function onPickerValueChange(date) {
38936
+ var newStartDate = date[0].toDate(),
38937
+ newEndDate = date[1].toDate();
38938
+ (newStartDate != startDate || newEndDate != endDate) && onFilterRangeChange({
38939
+ startDate: newStartDate,
38940
+ endDate: newEndDate
38941
+ });
38942
+ setDateRange(date);
38943
+ };
38944
+ var buttonClick = function buttonClick(monthDirection) {
38945
+ var newStartDate = startDate,
38946
+ newEndDate = endDate,
38947
+ currentStartYear = startDate.getFullYear(),
38948
+ currentStartMonth = startDate.getMonth(),
38949
+ currentEndYear = endDate.getFullYear(),
38950
+ currentEndMonth = endDate.getMonth();
38951
+ switch (monthDirection) {
38952
+ case "previousMonth":
38953
+ newStartDate.setMonth(currentStartMonth == 0 ? 11 : currentStartMonth - 1);
38954
+ newStartDate.setFullYear(currentStartMonth == 0 ? currentStartYear - 1 : currentStartYear);
38955
+ break;
38956
+ case "nextMonth":
38957
+ newEndDate.setMonth(currentEndMonth == 11 ? 0 : currentEndMonth + 1);
38958
+ newEndDate.setFullYear(currentEndMonth == 11 ? currentEndYear + 1 : currentEndYear);
38959
+ break;
38960
+ }
38961
+ setDateRange([dayjs_min(newStartDate), dayjs_min(newEndDate)]);
38962
+ onFilterRangeChange({
38963
+ startDate: newStartDate,
38964
+ endDate: newEndDate
38965
+ });
38966
+ };
38967
+ return React.createElement(React.Fragment, null, React.createElement(Space, null, React.createElement(OdsButton, {
38968
+ key: "odsbutton-back",
38969
+ onClick: function onClick(_e) {
38970
+ buttonClick("previousMonth");
38971
+ },
38972
+ style: {
38973
+ backgroundColor: "#A19FA0",
38974
+ color: "white",
38975
+ borderColor: "white"
38976
+ }
38977
+ }, React.createElement(LeftCircleFilled, null), backText != null ? backText : "Back"), React.createElement(OdsDateRangePicker, {
38978
+ defaultValue: [dayjs_min(defaultStartDate), dayjs_min(defaultEndDate)],
38979
+ value: dateRange,
38980
+ onPickerValueChange: onPickerValueChange
38981
+ }), React.createElement(OdsButton, {
38982
+ key: "odsbutton-next",
38983
+ onClick: function onClick(_e) {
38984
+ buttonClick("nextMonth");
38985
+ },
38986
+ style: {
38987
+ backgroundColor: "#A19FA0",
38988
+ color: "white",
38989
+ borderColor: "white"
38990
+ }
38991
+ }, nextText != null ? nextText : "Next", React.createElement(RightCircleFilled, null))));
38992
+ };
38993
+
38994
+ var OdsTimelineSelectionColumn = function OdsTimelineSelectionColumn(selectionEvent) {
38995
+ var selectionColumn = {
38996
+ caption: "",
38997
+ minWidth: 50,
38998
+ width: 50,
38999
+ dataField: "isSelected",
39000
+ cellComponent: function cellComponent(props) {
39001
+ var onChange = function onChange(e) {
39002
+ selectionEvent && selectionEvent({
39003
+ data: props.data.data,
39004
+ isSelected: e.target.checked
39005
+ });
39006
+ };
39007
+ return React.createElement(OdsCheckbox, {
39008
+ key: "odstimeline-selection-" + props.data.name,
39009
+ style: {
39010
+ height: "32px"
39011
+ },
39012
+ defaultChecked: props.data.value,
39013
+ onChange: onChange
39014
+ });
39015
+ }
39016
+ };
39017
+ return selectionColumn;
39018
+ };
39019
+
39020
+ var _templateObject$B, _templateObject2$9, _templateObject3$6;
39021
+ var useStyles$b = createStyles(function (_ref, props) {
39022
+ var css = _ref.css;
39023
+ return {
39024
+ 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),
39025
+ 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),
39026
+ taskBarTitle: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteralLoose(["\n z-index: 1;\n padding-left: 4px;\n position: absolute;\n "])))
39027
+ };
39028
+ });
39029
+
39030
+ var OdsTimelineTableTaskTemplate = function OdsTimelineTableTaskTemplate(_ref) {
39031
+ var taskData = _ref.taskData,
39032
+ taskSize = _ref.taskSize;
39033
+ var _useStyles = useStyles$b({
39034
+ progressColor: taskData.color,
39035
+ progressPerc: taskData.progress,
39036
+ taskWidth: taskSize.width
39037
+ }),
39038
+ timelineTableStyles = _useStyles.styles;
39039
+ return React.createElement("div", {
39040
+ className: timelineTableStyles.taskBar
39041
+ }, React.createElement("span", {
39042
+ className: timelineTableStyles.taskBarTitle
39043
+ }, taskData.title), React.createElement("div", {
39044
+ className: timelineTableStyles.taskProgress
39045
+ }));
39046
+ };
39047
+
39048
+ var OdsTimelineTable = forwardRef(function (props, ref) {
39049
+ var customColumns = props.customColumns,
39050
+ customTasks = props.customTasks,
39051
+ customTaskKey = props.customTaskKey,
39052
+ customSelectedKeys = props.customSelectedKeys,
39053
+ children = props.children,
39054
+ startDateRange = props.startDateRange,
39055
+ endDateRange = props.endDateRange,
39056
+ multiSelectionEnabled = props.multiSelectionEnabled,
39057
+ toolbarVisible = props.toolbarVisible,
39058
+ showDateFilter = props.showDateFilter,
39059
+ onCustomSelectionChanged = props.onCustomSelectionChanged,
39060
+ onDateRangeChange = props.onDateRangeChange;
39061
+ var _useState = useState(startDateRange != null ? startDateRange : Constants.timelineDefaultStartDate),
39062
+ startDate = _useState[0],
39063
+ setStartDate = _useState[1];
39064
+ var _useState2 = useState(endDateRange != null ? endDateRange : Constants.timelineDefaultEndDate),
39065
+ endDate = _useState2[0],
39066
+ setEndDate = _useState2[1];
39067
+ var _useState3 = useState([]),
39068
+ timelineTasks = _useState3[0],
39069
+ setTimelineTasks = _useState3[1];
39070
+ useEffect(function () {
39071
+ setTimelineTasks(multiSelectionEnabled ? setSelectedKeys(customTasks.map(mapCustomTask), customTaskKey, customSelectedKeys) : customTasks);
39072
+ }, [customTasks]);
39073
+ var getSelectedRowsData = function getSelectedRowsData() {
39074
+ return timelineTasks.filter(function (item) {
39075
+ return item.isSelected == true;
39076
+ });
39077
+ };
39078
+ var updateSelectionData = function updateSelectionData(keyValue, isSelected) {
39079
+ setTimelineTasks(function (prev) {
39080
+ return prev.map(function (item) {
39081
+ if (item[props.customTaskKey] == keyValue) {
39082
+ item.isSelected = isSelected;
39083
+ }
39084
+ return item;
39085
+ });
39086
+ });
39087
+ };
39088
+ var onTimelineDateRangeChange = function onTimelineDateRangeChange(e) {
39089
+ setStartDate(e.startDate);
39090
+ setEndDate(e.endDate);
39091
+ onDateRangeChange && onDateRangeChange({
39092
+ startDate: e.startDate,
39093
+ endDate: e.endDate
39094
+ });
39095
+ };
39096
+ var onTimelineCheckboxSelectionChange = function onTimelineCheckboxSelectionChange(e) {
39097
+ updateSelectionData(e.data[props.customTaskKey], e.isSelected);
39098
+ onCustomSelectionChanged && onCustomSelectionChanged(e);
39099
+ };
39100
+ var timelineColumns = multiSelectionEnabled ? [OdsTimelineSelectionColumn(onTimelineCheckboxSelectionChange)].concat(customColumns) : customColumns;
39101
+ useImperativeHandle(ref, function () {
39102
+ return {
39103
+ getSelectedRowsData: getSelectedRowsData
39104
+ };
39105
+ });
39106
+ return React.createElement(React.Fragment, null, React.createElement(Gantt, Object.assign({
39107
+ width: "100%",
39108
+ height: 500,
39109
+ startDateRange: startDate,
39110
+ endDateRange: endDate,
39111
+ taskContentRender: function taskContentRender(params) {
39112
+ return React.createElement(OdsTimelineTableTaskTemplate, Object.assign({}, params));
39113
+ }
39114
+ }, props), toolbarVisible ? React.createElement(Toolbar$2, null, showDateFilter ? React.createElement(Item$2, {
39115
+ key: "OdsTimelineTable_ToolbarItem_DateFilter",
39116
+ component: function component(props) {
39117
+ return OdsTimelineDateFilter(_extends({}, props, {
39118
+ defaultStartDate: startDate,
39119
+ defaultEndDate: endDate,
39120
+ onFilterRangeChange: onTimelineDateRangeChange
39121
+ }));
39122
+ }
39123
+ }) : "", React.createElement(Item$2, {
39124
+ key: "OdsTimelineTable_ToolbarItem_ZoomIn",
39125
+ name: "zoomIn"
39126
+ }), React.createElement(Item$2, {
39127
+ key: "OdsTimelineTable_ToolbarItem_ZoomOut",
39128
+ name: "zoomOut"
39129
+ })) : "", React.createElement(ContextMenu, {
39130
+ enabled: false
39131
+ }), timelineColumns === null || timelineColumns === void 0 ? void 0 : timelineColumns.map(function (columnProps) {
39132
+ if (columnProps.isStatusColumn) {
39133
+ return React.createElement(Column$1, Object.assign({
39134
+ width: 50,
39135
+ minWidth: 50,
39136
+ cssClass: "cellCenteredVertically",
39137
+ cellComponent: statusCellComponent,
39138
+ headerCellComponent: minimalHeaderCellComponent
39139
+ }, columnProps));
39140
+ } else if (columnProps.isCheckboxColumn) {
39141
+ return React.createElement(Column$1, Object.assign({
39142
+ width: 50,
39143
+ minWidth: 50,
39144
+ cssClass: "cellCenteredVertically",
39145
+ cellComponent: checkboxCellComponent,
39146
+ headerCellComponent: minimalHeaderCellComponent
39147
+ }, columnProps));
39148
+ } else {
39149
+ return React.createElement(Column$1, Object.assign({
39150
+ headerCellComponent: columnProps.isMinimized && minimalHeaderCellComponent
39151
+ }, columnProps));
39152
+ }
39153
+ }), React.createElement(Tasks, {
39154
+ dataSource: timelineTasks
39155
+ }), children));
39156
+ });
39157
+
38842
39158
  /**
38843
39159
  * Checks if `value` is the
38844
39160
  * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
@@ -40495,5 +40811,5 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
40495
40811
  })));
40496
40812
  };
40497
40813
 
40498
- export { DxTreeList, OdsAlert, OdsAutoComplete, OdsBadge, OdsBadgeRibbon, OdsBannerAlert, OdsBasicDataGrid, OdsBasicTable, OdsButton, CabinGrid as OdsCabinGrid, OdsCalendar, OdsCard, OdsChange$1 as OdsChange, OdsCheckbox, OdsCheckboxGroup, OdsCollapse, OdsCurrencyInput, OdsDataGrid, OdsDateRangePicker, OdsDatepicker, OdsDisplayGrid, OdsDivider, OdsDropdown, OdsDropdownButton, OdsFileUpload, OdsFileUploadv2, OdsFilter, OdsFilterPlus, OdsFilterTagView, OdsImage, OdsInlineEditDataGrid, OdsInput, OdsInputNumber, OdsLink, OdsList, MasterDetailDataGrid as OdsMasterDetailDataGrid, OdsMergeCellDataGrid, OdsModal, OdsModalOld, OdsMultiSelect, OdsNotification, OdsParagraph, OdsPassword, OdsPhoneInput, OdsProgress, OdsRadio, OdsRadioGroup, OdsRangeTimepicker, OdsRate, OdsRemoteDataGrid, OdsSearch, OdsSelect, OdsSelectableTable, OdsServerSideDatagrid, OdsSpin, OdsSwitch, OdsTab, OdsBasicTable as OdsTable, OdsTag, OdsText, OdsTextArea, OdsTimeline, OdsTimepicker, OdsTitle, OdsTransfer, OdsTreeListMenu, OdsTreeSelect };
40814
+ export { DxTreeList, OdsAlert, OdsAutoComplete, OdsBadge, OdsBadgeRibbon, OdsBannerAlert, OdsBasicDataGrid, OdsBasicTable, OdsButton, CabinGrid as OdsCabinGrid, OdsCalendar, OdsCard, OdsChange$1 as OdsChange, OdsCheckbox, OdsCheckboxGroup, OdsCollapse, OdsCurrencyInput, OdsDataGrid, OdsDateRangePicker, OdsDatepicker, OdsDisplayGrid, OdsDivider, OdsDropdown, OdsDropdownButton, OdsFileUpload, OdsFileUploadv2, OdsFilter, OdsFilterPlus, OdsFilterTagView, OdsImage, OdsInlineEditDataGrid, OdsInput, OdsInputNumber, OdsLink, OdsList, MasterDetailDataGrid as OdsMasterDetailDataGrid, OdsMergeCellDataGrid, OdsModal, OdsModalOld, OdsMultiSelect, OdsNotification, OdsParagraph, OdsPassword, OdsPhoneInput, OdsProgress, OdsRadio, OdsRadioGroup, OdsRangeTimepicker, OdsRate, OdsRemoteDataGrid, OdsSearch, OdsSelect, OdsSelectableTable, OdsServerSideDatagrid, OdsSpin, OdsSwitch, OdsTab, OdsBasicTable as OdsTable, OdsTag, OdsText, OdsTextArea, OdsTimeline, OdsTimelineTable, OdsTimepicker, OdsTitle, OdsTransfer, OdsTreeListMenu, OdsTreeSelect };
40499
40815
  //# sourceMappingURL=index.modern.js.map