intelicoreact 0.0.95 → 0.0.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/Atomic/FormElements/Input/Input.js +3 -1
  2. package/dist/Atomic/FormElements/Input/Input.stories.js +5 -1
  3. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +4 -4
  4. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +179 -70
  5. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +23 -23
  6. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +87 -12
  7. package/dist/Atomic/FormElements/Spinner/Spinner.js +21 -0
  8. package/{src/Atomic/FormElements/Dropdown/components/DropdownLoader.scss → dist/Atomic/FormElements/Spinner/Spinner.scss} +8 -5
  9. package/dist/Atomic/FormElements/Spinner/Spinner.stories.js +34 -0
  10. package/dist/Functions/inputExecutor.js +7 -1
  11. package/{src → dist}/Functions/useMouseUpOutside.js +13 -4
  12. package/dist/Functions/useToggle.js +40 -0
  13. package/dist/Functions/utils.js +66 -0
  14. package/dist/Molecular/Datepicker/Datepicker.js +451 -0
  15. package/{src → dist}/Molecular/Datepicker/Datepicker.scss +0 -0
  16. package/dist/Molecular/Datepicker/Datepicker.stories.js +44 -0
  17. package/dist/Molecular/Datepicker/components/Calendar.js +156 -0
  18. package/dist/Molecular/FormElements/FormElement.js +40 -0
  19. package/{src → dist}/Molecular/FormElements/FormElement.scss +0 -0
  20. package/dist/Molecular/FormElements/FormElement.stories.js +73 -0
  21. package/dist/index.js +15 -0
  22. package/{src → dist}/scss/_fonts.scss +0 -0
  23. package/{src → dist}/scss/_vars.scss +0 -0
  24. package/{src → dist}/scss/main.scss +0 -0
  25. package/package.json +3 -2
  26. package/.babelrc +0 -12
  27. package/.eslintignore +0 -10
  28. package/.eslintrc.json +0 -93
  29. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.js +0 -28
  30. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +0 -107
  31. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +0 -26
  32. package/src/Atomic/FormElements/DateTime/DateTime.js +0 -18
  33. package/src/Atomic/FormElements/DateTime/DateTime.scss +0 -12
  34. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +0 -17
  35. package/src/Atomic/FormElements/DoubleString/DoubleString.js +0 -13
  36. package/src/Atomic/FormElements/DoubleString/DoubleString.scss +0 -20
  37. package/src/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -18
  38. package/src/Atomic/FormElements/Dropdown/Dropdown.js +0 -178
  39. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +0 -192
  40. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +0 -87
  41. package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +0 -17
  42. package/src/Atomic/FormElements/Header/Header.js +0 -67
  43. package/src/Atomic/FormElements/Header/Header.scss +0 -93
  44. package/src/Atomic/FormElements/Header/Header.stories.js +0 -30
  45. package/src/Atomic/FormElements/Input/Input.js +0 -186
  46. package/src/Atomic/FormElements/Input/Input.scss +0 -136
  47. package/src/Atomic/FormElements/Input/Input.stories.js +0 -94
  48. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +0 -104
  49. package/src/Atomic/FormElements/InputCalendar/InputCalendar.scss +0 -23
  50. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +0 -39
  51. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +0 -254
  52. package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +0 -624
  53. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +0 -65
  54. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +0 -432
  55. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +0 -126
  56. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +0 -24
  57. package/src/Atomic/FormElements/InputDateRange/dependencies.js +0 -161
  58. package/src/Atomic/FormElements/InputsRow/InputsRow.js +0 -112
  59. package/src/Atomic/FormElements/InputsRow/InputsRow.scss +0 -45
  60. package/src/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -34
  61. package/src/Atomic/FormElements/Label/Label.js +0 -13
  62. package/src/Atomic/FormElements/Label/Label.scss +0 -20
  63. package/src/Atomic/FormElements/Label/Label.stories.js +0 -23
  64. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.js +0 -315
  65. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +0 -120
  66. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +0 -30
  67. package/src/Atomic/FormElements/Modal/Modal.js +0 -69
  68. package/src/Atomic/FormElements/Modal/Modal.scss +0 -230
  69. package/src/Atomic/FormElements/Modal/Modal.stories.js +0 -116
  70. package/src/Atomic/FormElements/MultiSelect/MultiSelect.js +0 -39
  71. package/src/Atomic/FormElements/MultiSelect/MultiSelect.scss +0 -16
  72. package/src/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -28
  73. package/src/Atomic/FormElements/NavLine/NavLine.js +0 -67
  74. package/src/Atomic/FormElements/NavLine/NavLine.scss +0 -108
  75. package/src/Atomic/FormElements/NavLine/NavLine.stories.js +0 -108
  76. package/src/Atomic/FormElements/NumericInput/NumericInput.js +0 -263
  77. package/src/Atomic/FormElements/NumericInput/NumericInput.scss +0 -135
  78. package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +0 -78
  79. package/src/Atomic/FormElements/RadioInput/RadioInput.js +0 -28
  80. package/src/Atomic/FormElements/RadioInput/RadioInput.scss +0 -63
  81. package/src/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -23
  82. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +0 -152
  83. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +0 -101
  84. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +0 -54
  85. package/src/Atomic/FormElements/RangeInputs/RangeInputs.js +0 -41
  86. package/src/Atomic/FormElements/RangeInputs/RangeInputs.scss +0 -20
  87. package/src/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -23
  88. package/src/Atomic/FormElements/Switcher/Switcher.js +0 -24
  89. package/src/Atomic/FormElements/Switcher/Switcher.scss +0 -56
  90. package/src/Atomic/FormElements/Switcher/Switcher.stories.js +0 -22
  91. package/src/Atomic/FormElements/Table/Partials/TdCell.js +0 -47
  92. package/src/Atomic/FormElements/Table/Partials/TdHeader.js +0 -33
  93. package/src/Atomic/FormElements/Table/Partials/TdRow.js +0 -84
  94. package/src/Atomic/FormElements/Table/Partials/TdTitle.js +0 -38
  95. package/src/Atomic/FormElements/Table/Table.js +0 -50
  96. package/src/Atomic/FormElements/Table/Table.scss +0 -78
  97. package/src/Atomic/FormElements/Table/Table.stories.js +0 -102
  98. package/src/Atomic/FormElements/Table/TdTypes/TdActions.js +0 -59
  99. package/src/Atomic/FormElements/Table/TdTypes/TdPriority.js +0 -20
  100. package/src/Atomic/FormElements/Table/TdTypes/TdRange.js +0 -15
  101. package/src/Atomic/FormElements/Table/TdTypes/TdTypes.scss +0 -35
  102. package/src/Atomic/FormElements/Table/TdTypes/TdWeight.js +0 -43
  103. package/src/Atomic/FormElements/Tag/Tag.js +0 -24
  104. package/src/Atomic/FormElements/Tag/Tag.scss +0 -38
  105. package/src/Atomic/FormElements/Tag/Tag.stories.js +0 -30
  106. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.js +0 -108
  107. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +0 -131
  108. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -44
  109. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.js +0 -18
  110. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +0 -50
  111. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -21
  112. package/src/Atomic/FormElements/Textarea/Textarea.js +0 -19
  113. package/src/Atomic/FormElements/Textarea/Textarea.scss +0 -35
  114. package/src/Atomic/FormElements/Textarea/Textarea.stories.js +0 -24
  115. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +0 -66
  116. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.scss +0 -10
  117. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +0 -57
  118. package/src/Atomic/FormElements/TimeRange/TimeRange.js +0 -55
  119. package/src/Atomic/FormElements/TimeRange/TimeRange.scss +0 -17
  120. package/src/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -21
  121. package/src/Atomic/MainMenu/MainMenu.js +0 -112
  122. package/src/Atomic/MainMenu/MainMenu.scss +0 -176
  123. package/src/Atomic/MainMenu/MainMenu.stories.js +0 -91
  124. package/src/Atomic/UI/Accordion/Accordion.js +0 -45
  125. package/src/Atomic/UI/Accordion/Accordion.scss +0 -73
  126. package/src/Atomic/UI/Accordion/Accordion.stories.js +0 -78
  127. package/src/Atomic/UI/Accordion/AccordionItem.js +0 -92
  128. package/src/Atomic/UI/AdvancedTag/AdvTag.js +0 -81
  129. package/src/Atomic/UI/AdvancedTag/AdvancedTags.js +0 -32
  130. package/src/Atomic/UI/AdvancedTag/AdvancedTags.scss +0 -72
  131. package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +0 -49
  132. package/src/Atomic/UI/Alert/Alert.js +0 -23
  133. package/src/Atomic/UI/Alert/Alert.scss +0 -65
  134. package/src/Atomic/UI/Alert/Alert.stories.js +0 -34
  135. package/src/Atomic/UI/Arrow/Arrow.js +0 -41
  136. package/src/Atomic/UI/Arrow/Arrow.scss +0 -19
  137. package/src/Atomic/UI/Arrow/Arrow.stories.js +0 -32
  138. package/src/Atomic/UI/Button/Button.js +0 -17
  139. package/src/Atomic/UI/Button/Button.scss +0 -108
  140. package/src/Atomic/UI/Button/Button.stories.js +0 -49
  141. package/src/Atomic/UI/Calendar/Calendar.js +0 -190
  142. package/src/Atomic/UI/Calendar/Calendar.scss +0 -607
  143. package/src/Atomic/UI/Calendar/Calendar.stories.js +0 -26
  144. package/src/Atomic/UI/Header/partials/default_ava.png +0 -0
  145. package/src/Atomic/UI/Hint/Hint.js +0 -34
  146. package/src/Atomic/UI/Hint/Hint.scss +0 -92
  147. package/src/Atomic/UI/Hint/Hint.stories.js +0 -34
  148. package/src/Atomic/UI/Price/Price.js +0 -20
  149. package/src/Atomic/UI/Price/Price.stories.js +0 -30
  150. package/src/Atomic/UI/Status/Status.js +0 -38
  151. package/src/Atomic/UI/Status/Status.scss +0 -69
  152. package/src/Atomic/UI/Status/Status.stories.js +0 -47
  153. package/src/Constants/index.constants.js +0 -41
  154. package/src/Functions/customEventListener.js +0 -58
  155. package/src/Functions/inputExecutor.js +0 -53
  156. package/src/Functions/schemas.js +0 -31
  157. package/src/Functions/useClickOutside.js +0 -15
  158. package/src/Functions/useToggle.js +0 -17
  159. package/src/Functions/utils.js +0 -51
  160. package/src/Molecular/Datepicker/Datepicker.js +0 -346
  161. package/src/Molecular/Datepicker/Datepicker.stories.js +0 -27
  162. package/src/Molecular/Datepicker/components/Calendar.js +0 -118
  163. package/src/Molecular/FormElements/FormElement.js +0 -18
  164. package/src/Molecular/FormElements/FormElement.stories.js +0 -59
  165. package/src/index.js +0 -3
  166. package/webpack.config.js +0 -61
@@ -5,7 +5,7 @@
5
5
  height: 100%;
6
6
  }
7
7
 
8
- .dropdown-loader-box {
8
+ .loader-box {
9
9
  position: absolute;
10
10
  @include fill-parent;
11
11
  background: #fff;
@@ -19,8 +19,8 @@
19
19
  height: 100px;
20
20
  }
21
21
  .lds-ring.lds-ring_little {
22
- width: 20px;
23
- height: 20px;
22
+ width: 30px;
23
+ height: 30px;
24
24
  }
25
25
  .lds-ring div {
26
26
  box-sizing: border-box;
@@ -35,8 +35,11 @@
35
35
  border-color: #000 transparent transparent transparent;
36
36
  }
37
37
  .lds-ring_little div {
38
- width: 20px;
39
- height: 20px;
38
+ top: -10px;
39
+ width: 30px !important;
40
+ height: 30px !important;
41
+ border: 4px solid #000 !important;
42
+ border-color: #000 transparent transparent transparent !important;
40
43
  }
41
44
  .lds-ring div:nth-child(1) {
42
45
  animation-delay: -0.45s;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SpinnerTemplate = exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _Spinner = _interopRequireDefault(require("./Spinner.js"));
13
+
14
+ global.lng = 'en';
15
+ var _default = {
16
+ title: 'Form Elements/Spinner',
17
+ component: _Spinner.default,
18
+ argTypes: {
19
+ little: {
20
+ description: 'boolean - size of spinner'
21
+ }
22
+ }
23
+ };
24
+ exports.default = _default;
25
+
26
+ var Template = function Template(args) {
27
+ return /*#__PURE__*/_react.default.createElement(_Spinner.default, args);
28
+ };
29
+
30
+ var SpinnerTemplate = Template.bind({});
31
+ exports.SpinnerTemplate = SpinnerTemplate;
32
+ SpinnerTemplate.args = {
33
+ little: false
34
+ };
@@ -30,7 +30,13 @@ var formatInput = {
30
30
  if (isDot) return twoDigitAfterDot(val.replace(/[^0-9.]/g, ''));else return +val.toString().replace(/\D/g, '');
31
31
  },
32
32
  onlyString: function onlyString(value) {
33
- return value.toString().replace(/[^a-z]/gi, '');
33
+ var soft = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
34
+
35
+ if (soft) {
36
+ return value.toString().replace(/[^a-z.]/gi, '');
37
+ } else {
38
+ return value.toString().replace(/[^a-z]/gi, '');
39
+ }
34
40
  }
35
41
  }; //обрезает числа после точки до 2х
36
42
  // 342.23423432 -> 342.23
@@ -1,14 +1,23 @@
1
- import React, { useEffect } from 'react'
1
+ "use strict";
2
2
 
3
- export default function useMouseUpOutside(ref, setOut, open) {
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useMouseUpOutside;
7
+
8
+ var _react = require("react");
9
+
10
+ function useMouseUpOutside(ref, setOut, open) {
4
11
  function handleMouseUpOutside(event) {
5
12
  if (ref.current && !ref.current.contains(event.target)) {
6
13
  setOut(open);
7
14
  }
8
15
  }
9
- useEffect(() => {
16
+
17
+ (0, _react.useEffect)(function () {
10
18
  document.addEventListener('mouseup', handleMouseUpOutside);
11
- return () => {
19
+ return function () {
12
20
  document.removeEventListener('mouseup', handleMouseUpOutside);
13
21
  };
14
22
  }, [ref]);
23
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _react = require("react");
13
+
14
+ var useToggle = function useToggle(initialState) {
15
+ var _useState = (0, _react.useState)(!!initialState),
16
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
17
+ isToggled = _useState2[0],
18
+ setToggle = _useState2[1];
19
+
20
+ var toggle = (0, _react.useCallback)(function () {
21
+ return setToggle(function (isOn) {
22
+ return !isOn;
23
+ });
24
+ }, []);
25
+ var toggleOn = (0, _react.useCallback)(function () {
26
+ return setToggle(true);
27
+ }, []);
28
+ var toggleOff = (0, _react.useCallback)(function () {
29
+ return setToggle(false);
30
+ }, []);
31
+ return {
32
+ isToggled: isToggled,
33
+ toggle: toggle,
34
+ toggleOn: toggleOn,
35
+ toggleOff: toggleOff
36
+ };
37
+ };
38
+
39
+ var _default = useToggle;
40
+ exports.default = _default;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getStyles = exports.logout = exports.useOutsideToggle = exports.handleObjectChange = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ /* eslint-disable guard-for-in, no-unused-vars */
11
+ var handleObjectChange = function handleObjectChange(updateObject, updateFunction) {
12
+ return function (data) {
13
+ var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
14
+ var isNumber = arguments.length > 2 ? arguments[2] : undefined;
15
+ var value;
16
+
17
+ if (data !== null && data !== void 0 && data.target) {
18
+ value = data.target.type === 'checkbox' ? data.target.checked : data.target.value;
19
+ } else value = data;
20
+
21
+ value = isNumber ? +value : value;
22
+ var props = prop.split('.');
23
+ var currentObject = props.reduce(function (res, chapter, index) {
24
+ if (props.length !== index + 1) res = res[chapter];
25
+ return res;
26
+ }, updateObject);
27
+ currentObject[props.pop()] = value;
28
+ updateFunction();
29
+ };
30
+ };
31
+
32
+ exports.handleObjectChange = handleObjectChange;
33
+
34
+ var useOutsideToggle = function useOutsideToggle(ref, setOut, open) {
35
+ function handleClickOutside(event) {
36
+ if (ref.current && !ref.current.contains(event.target)) {
37
+ setOut(open);
38
+ }
39
+ }
40
+
41
+ (0, _react.useEffect)(function () {
42
+ document.addEventListener('mouseup', handleClickOutside);
43
+ return function () {
44
+ // Unbind the event listener on clean up
45
+ document.removeEventListener('mouseup', handleClickOutside);
46
+ };
47
+ }, [ref]);
48
+ };
49
+
50
+ exports.useOutsideToggle = useOutsideToggle;
51
+
52
+ var logout = function logout() {
53
+ window.localStorage.removeItem('accessToken');
54
+ window.localStorage.removeItem('tokenExpires');
55
+ window.location.reload();
56
+ };
57
+
58
+ exports.logout = logout;
59
+
60
+ var getStyles = function getStyles(el, prop) {
61
+ if (!el) return null;
62
+ if (!prop) return window.getComputedStyle(el);
63
+ return window.getComputedStyle(el).getPropertyValue(prop);
64
+ };
65
+
66
+ exports.getStyles = getStyles;
@@ -0,0 +1,451 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _useClickOutside = require("../../Functions/useClickOutside");
19
+
20
+ var _reactInputMask = _interopRequireDefault(require("react-input-mask"));
21
+
22
+ var _moment = _interopRequireDefault(require("moment"));
23
+
24
+ var _classnames = _interopRequireDefault(require("classnames"));
25
+
26
+ var _Langs = _interopRequireDefault(require("../../../../Langs"));
27
+
28
+ var _Button = _interopRequireDefault(require("../../Atomic/UI/Button/Button"));
29
+
30
+ var _Calendar = _interopRequireDefault(require("./components/Calendar"));
31
+
32
+ require("./Datepicker.scss");
33
+
34
+ var _Switcher = _interopRequireDefault(require("../../Atomic/FormElements/Switcher/Switcher"));
35
+
36
+ var _Dropdown = _interopRequireDefault(require("../../Atomic/FormElements/Dropdown/Dropdown"));
37
+
38
+ var _Input = _interopRequireDefault(require("../../Atomic/FormElements/Input/Input"));
39
+
40
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
+
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
+
44
+ var padTime = function padTime(time) {
45
+ return "".concat(time.toString().padStart(2, '0'), ":00");
46
+ };
47
+
48
+ var Datepicker = function Datepicker(props) {
49
+ var _props$values = props.values,
50
+ values = _props$values === void 0 ? {} : _props$values,
51
+ onChange = props.onChange,
52
+ onChangeCompare = props.onChangeCompare,
53
+ onCancel = props.onCancel,
54
+ _props$getSelectedMod = props.getSelectedMode,
55
+ getSelectedMode = _props$getSelectedMod === void 0 ? function () {} : _props$getSelectedMod,
56
+ onChangeInterval = props.onChangeInterval,
57
+ isCompareHidden = props.isCompareHidden,
58
+ limitRange = props.limitRange;
59
+ var _values$start = values.start,
60
+ start = _values$start === void 0 ? null : _values$start,
61
+ _values$end = values.end,
62
+ end = _values$end === void 0 ? null : _values$end,
63
+ _values$compare = values.compare,
64
+ compare = _values$compare === void 0 ? false : _values$compare;
65
+ var txt = _Langs.default[global.lng];
66
+ var startDateInputRef = (0, _react.useRef)(null);
67
+ var endDateInputRef = (0, _react.useRef)(null);
68
+
69
+ var _useState = (0, _react.useState)(start),
70
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
71
+ startDate = _useState2[0],
72
+ setStartDate = _useState2[1];
73
+
74
+ var _useState3 = (0, _react.useState)(end),
75
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
76
+ endDate = _useState4[0],
77
+ setEndDate = _useState4[1];
78
+
79
+ var dateInterval = getSelectedMode({
80
+ start: startDate,
81
+ end: endDate
82
+ });
83
+
84
+ var _useState5 = (0, _react.useState)(start),
85
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
86
+ startDateInput = _useState6[0],
87
+ setStartDateInput = _useState6[1];
88
+
89
+ var _useState7 = (0, _react.useState)(end),
90
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
91
+ endDateInput = _useState8[0],
92
+ setEndDateInput = _useState8[1];
93
+
94
+ var _useState9 = (0, _react.useState)(start ? (0, _moment.default)(start).hour() : 0),
95
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
96
+ startHour = _useState10[0],
97
+ setStartHour = _useState10[1];
98
+
99
+ var _useState11 = (0, _react.useState)(end ? (0, _moment.default)(end).hour() : 0),
100
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
101
+ endHour = _useState12[0],
102
+ setEndHour = _useState12[1]; // eslint-disable-next-line no-unused-vars
103
+
104
+
105
+ var _useState13 = (0, _react.useState)(compare),
106
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
107
+ isCompare = _useState14[0],
108
+ setIsCompare = _useState14[1];
109
+
110
+ var _useState15 = (0, _react.useState)(start ? (0, _moment.default)(start).toDate() : (0, _moment.default)().subtract(1, 'month').toDate()),
111
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
112
+ date1 = _useState16[0],
113
+ setDate1 = _useState16[1];
114
+
115
+ var _useState17 = (0, _react.useState)(end ? (0, _moment.default)(end).toDate() : (0, _moment.default)().toDate()),
116
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
117
+ date2 = _useState18[0],
118
+ setDate2 = _useState18[1];
119
+
120
+ var _useState19 = (0, _react.useState)(false),
121
+ _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
122
+ isStartFocused = _useState20[0],
123
+ setIsStartFocused = _useState20[1];
124
+
125
+ var _useState21 = (0, _react.useState)(false),
126
+ _useState22 = (0, _slicedToArray2.default)(_useState21, 2),
127
+ isEndFocused = _useState22[0],
128
+ setIsEndFocused = _useState22[1];
129
+
130
+ var _useState23 = (0, _react.useState)(null),
131
+ _useState24 = (0, _slicedToArray2.default)(_useState23, 2),
132
+ hoverStatus = _useState24[0],
133
+ setHoverStatus = _useState24[1];
134
+
135
+ var isNearby = (0, _react.useMemo)(function () {
136
+ return (0, _moment.default)(date2).subtract(1, 'month').isSame((0, _moment.default)(date1), 'month');
137
+ }, [date1, date2]);
138
+ var isPreviousPeriodShowed = (0, _react.useMemo)(function () {
139
+ return isCompare && !isCompareHidden && startDate && endDate;
140
+ }, [startDate, endDate, isCompare]);
141
+ var prevEndHour = (0, _react.useRef)(endHour);
142
+
143
+ var getStartHourItems = function getStartHourItems() {
144
+ return (0, _toConsumableArray2.default)(Array(24).keys()).map(function (hour) {
145
+ return {
146
+ label: padTime(hour),
147
+ value: hour,
148
+ disabled: (0, _moment.default)(startDate).isSame(endDate, 'day') && endHour <= hour
149
+ };
150
+ });
151
+ };
152
+
153
+ var getEndHourItems = function getEndHourItems() {
154
+ return (0, _toConsumableArray2.default)(Array(24).keys()).map(function (hour) {
155
+ return {
156
+ label: padTime(hour + 1),
157
+ value: hour === 23 ? 0 : hour + 1,
158
+ disabled: ((0, _moment.default)(startDate).isSame(endDate, 'day') || (0, _moment.default)(startDate).isSame((0, _moment.default)(endDate).subtract(1, 'days'), 'day') && endHour === 0) && hour < startHour
159
+ };
160
+ });
161
+ };
162
+
163
+ var startPrevDate = (0, _react.useMemo)(function () {
164
+ if (isPreviousPeriodShowed) {
165
+ var intervalHoursCount = (0, _moment.default)(endDate).diff(startDate, 'hours');
166
+ return (0, _moment.default)(startDate).subtract(intervalHoursCount, 'hours').toDate();
167
+ } else return null;
168
+ }, [startDate, endDate, isCompare]);
169
+ var endPrevDate = (0, _react.useMemo)(function () {
170
+ if (isPreviousPeriodShowed) {
171
+ return startDate;
172
+ } else return null;
173
+ }, [startDate, endDate, isCompare]);
174
+ var title = (0, _react.useMemo)(function () {
175
+ if (isCompare && !isCompareHidden && startDate && endDate) {
176
+ return "".concat((0, _moment.default)(startPrevDate).format('ll'), " (").concat((0, _moment.default)(startPrevDate).format('HH:mm'), ") - ").concat((0, _moment.default)(endPrevDate).format('ll'), " (").concat((0, _moment.default)(endPrevDate).format('HH:mm'), ")");
177
+ } else return '';
178
+ }, [startDate, endDate, isCompare]);
179
+
180
+ var subtractDay = function subtractDay(date) {
181
+ return endHour === 0 ? (0, _moment.default)(date).subtract(1, 'days') : date;
182
+ };
183
+
184
+ var addDay = function addDay(date) {
185
+ return endHour === 0 ? (0, _moment.default)(date).add(1, 'days') : date;
186
+ };
187
+
188
+ (0, _react.useEffect)(function () {
189
+ if ((0, _moment.default)(startDate).isSameOrAfter(endDate)) {
190
+ setStartDate((0, _moment.default)(endDate).subtract(1, 'd').toDate());
191
+ setDate1((0, _moment.default)(endDate).subtract(1, 'd'));
192
+ }
193
+ }, [startDate]);
194
+ (0, _react.useEffect)(function () {
195
+ if ((0, _moment.default)(endDate).isSameOrBefore(startDate)) {
196
+ setEndDate((0, _moment.default)(startDate).add(1, 'd').toDate());
197
+ setDate2((0, _moment.default)(startDate).add(1, 'd'));
198
+ }
199
+ }, [endDate]);
200
+ (0, _react.useEffect)(function () {
201
+ setStartDateInput(startDate);
202
+ setEndDateInput(endDate);
203
+
204
+ if ((0, _moment.default)(startDate).isBefore((0, _moment.default)(endDate), 'month')) {
205
+ setDate1((0, _moment.default)(startDate));
206
+ setDate2((0, _moment.default)(endDate));
207
+ }
208
+ }, [startDate, endDate]);
209
+ (0, _react.useEffect)(function () {
210
+ if ((0, _moment.default)(date1).isSameOrAfter((0, _moment.default)(date2), 'month')) {
211
+ setDate1((0, _moment.default)(date2).subtract(1, 'month'));
212
+ }
213
+ }, [date1, date2]);
214
+ (0, _react.useEffect)(function () {
215
+ onChangeInterval(dateInterval);
216
+ }, [dateInterval]);
217
+
218
+ var handleClick = function handleClick(date) {
219
+ prevEndHour.current = 0;
220
+
221
+ if (!startDate || startDate && endDate && !((0, _moment.default)(startDate).add(1, 'd').isSame(endDate, 'day') && endHour === 0)) {
222
+ setStartDate((0, _moment.default)(date).startOf('day').toDate());
223
+ setEndDate((0, _moment.default)(date).add(1, 'd').startOf('day').toDate());
224
+ setStartHour(0);
225
+ setEndHour(0);
226
+ } else if ((0, _moment.default)(date).isBefore((0, _moment.default)(startDate), 'day')) {
227
+ setEndDate((0, _moment.default)(startDate).add(1, 'd').startOf('day').toDate());
228
+ setStartDate((0, _moment.default)(date).set('hour', parseInt(startHour, 10)).toDate());
229
+ } else if ((0, _moment.default)(date).isAfter((0, _moment.default)(startDate), 'day')) {
230
+ setEndDate((0, _moment.default)(date).add(1, 'd').startOf('day').toDate());
231
+ }
232
+
233
+ setHoverStatus(null);
234
+ };
235
+
236
+ var timerId;
237
+
238
+ var handleHover = function handleHover(date) {
239
+ if (!date) {
240
+ timerId = setTimeout(function () {
241
+ setHoverStatus(null);
242
+ }, 400);
243
+ return;
244
+ }
245
+
246
+ if (timerId) clearTimeout(timerId);
247
+
248
+ if ((0, _moment.default)(startDate).add(1, 'd').isSame(endDate, 'day') && endHour === 0) {
249
+ if ((0, _moment.default)(date).isAfter((0, _moment.default)(startDate), 'day')) setHoverStatus('end');else if ((0, _moment.default)(date).isBefore((0, _moment.default)(startDate), 'day')) setHoverStatus('start');else setHoverStatus(null);
250
+ } else {
251
+ setHoverStatus('start');
252
+ }
253
+ };
254
+
255
+ var handleChangeStartHour = function handleChangeStartHour(_ref) {
256
+ var val = _ref.target.value;
257
+ setStartHour(+val);
258
+ setStartDate((0, _moment.default)(startDate).set('hour', +val).toDate());
259
+ };
260
+
261
+ var handleChangeEndHour = function handleChangeEndHour(_ref2) {
262
+ var val = _ref2.target.value;
263
+ var newHour = +val;
264
+ setEndHour(newHour);
265
+ var newEndDate;
266
+
267
+ if (prevEndHour.current === 0 && newHour !== 0) {
268
+ newEndDate = (0, _moment.default)(endDate).subtract(1, 'days');
269
+ } else if (prevEndHour.current !== 0 && newHour === 0) {
270
+ newEndDate = (0, _moment.default)(endDate).add(1, 'days');
271
+ } else {
272
+ newEndDate = endDate;
273
+ }
274
+
275
+ prevEndHour.current = newHour;
276
+ setEndDate((0, _moment.default)(newEndDate).set('hour', newHour).toDate());
277
+ };
278
+
279
+ var renderButtons = function renderButtons() {
280
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
281
+ className: "plr15 mr5",
282
+ onClick: function onClick() {
283
+ return onCancel();
284
+ }
285
+ }, txt.buttons.cancel), /*#__PURE__*/_react.default.createElement(_Button.default, {
286
+ className: "plr20",
287
+ type: "filled",
288
+ disabled: !startDate || !endDate,
289
+ onClick: function onClick() {
290
+ return onChange({
291
+ start: startDate,
292
+ end: endDate,
293
+ startPrevDate: startPrevDate,
294
+ endPrevDate: endPrevDate,
295
+ compare: isCompare
296
+ });
297
+ }
298
+ }, txt.buttons.apply));
299
+ };
300
+
301
+ var renderPreviousPeriod = function renderPreviousPeriod() {
302
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, txt.labels.previousPeriod, ": ", /*#__PURE__*/_react.default.createElement("span", {
303
+ className: "date-picker__previous-period-interval"
304
+ }, title));
305
+ };
306
+
307
+ var handleStartDateFocus = function handleStartDateFocus() {
308
+ setIsStartFocused(true);
309
+ setStartDateInput((0, _moment.default)(startDate).format('L'));
310
+ };
311
+
312
+ var handleStartDateBlur = function handleStartDateBlur() {
313
+ var newDate;
314
+
315
+ if ((0, _moment.default)(startDateInput).isValid()) {
316
+ newDate = (0, _moment.default)(startDateInput).set('hour', parseInt(startHour, 10)).toDate();
317
+ setStartDate(newDate);
318
+ } else {
319
+ newDate = startDate;
320
+ setStartDateInput(newDate);
321
+ }
322
+
323
+ setIsStartFocused(false);
324
+ startDateInputRef.current.blur();
325
+ setDate1((0, _moment.default)(newDate).isSameOrAfter((0, _moment.default)(date2), 'month') ? (0, _moment.default)(date2).subtract(1, 'month') : (0, _moment.default)(newDate));
326
+ };
327
+
328
+ var handleEndDateFocus = function handleEndDateFocus() {
329
+ setIsEndFocused(true);
330
+ setEndDateInput((0, _moment.default)(subtractDay(endDateInput)).format('L'));
331
+ };
332
+
333
+ var handleEndDateBlur = function handleEndDateBlur() {
334
+ var newDate;
335
+
336
+ if ((0, _moment.default)(endDateInput).isValid()) {
337
+ newDate = (0, _moment.default)(endDateInput).set('hour', parseInt(endHour, 10)).toDate();
338
+ setEndDate(addDay(newDate));
339
+ } else {
340
+ newDate = endDate;
341
+ setEndDateInput(newDate);
342
+ }
343
+
344
+ setIsEndFocused(false);
345
+ endDateInputRef.current.blur();
346
+ setDate2(newDate);
347
+ setEndDateInput();
348
+ };
349
+
350
+ var handleKeyPressed = function handleKeyPressed(e, handleDateBlur) {
351
+ if (e.key === 'Enter') handleDateBlur();
352
+ };
353
+
354
+ return /*#__PURE__*/_react.default.createElement("div", {
355
+ className: "date-picker"
356
+ }, /*#__PURE__*/_react.default.createElement("div", {
357
+ className: "date-picker__header"
358
+ }, /*#__PURE__*/_react.default.createElement(_Input.default, {
359
+ dataTest: "datepicker_start-date-input",
360
+ className: (0, _classnames.default)('mr5', {
361
+ 'date-picker-text-input--active': hoverStatus === 'start'
362
+ }),
363
+ value: isStartFocused ? startDateInput : (0, _moment.default)(startDate).format('ll'),
364
+ disabled: !startDate,
365
+ onChange: function onChange(e) {
366
+ return setStartDateInput(e.target.value);
367
+ },
368
+ onFocus: handleStartDateFocus,
369
+ onBlur: handleStartDateBlur,
370
+ onKeyPress: function onKeyPress(e) {
371
+ return handleKeyPressed(e, handleStartDateBlur);
372
+ },
373
+ ref: startDateInputRef
374
+ }), /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
375
+ dataTest: "datepicker_start-hour-select-input",
376
+ onChange: handleChangeStartHour,
377
+ value: startHour,
378
+ items: getStartHourItems(),
379
+ disabled: !startDate,
380
+ short: true
381
+ }), /*#__PURE__*/_react.default.createElement("div", {
382
+ className: "pl5 pr5 date-picker__header--gray"
383
+ }, "\u2014"), /*#__PURE__*/_react.default.createElement(_Input.default, {
384
+ dataTest: "datepicker_end-date-input",
385
+ className: (0, _classnames.default)('mr5', {
386
+ 'date-picker-text-input--active': hoverStatus === 'end'
387
+ }),
388
+ value: isEndFocused ? endDateInput : (0, _moment.default)(subtractDay(endDate)).format('ll'),
389
+ disabled: !endDate,
390
+ onChange: function onChange(e) {
391
+ return setEndDateInput(e.target.value);
392
+ },
393
+ onFocus: handleEndDateFocus,
394
+ onBlur: handleEndDateBlur,
395
+ onKeyPress: function onKeyPress(e) {
396
+ return handleKeyPressed(e, handleEndDateBlur);
397
+ },
398
+ ref: endDateInputRef
399
+ }), /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
400
+ dataTest: "datepicker_end-hour-select-input",
401
+ onChange: handleChangeEndHour,
402
+ value: endHour,
403
+ items: getEndHourItems(),
404
+ disabled: !endDate,
405
+ short: true
406
+ })), /*#__PURE__*/_react.default.createElement("div", {
407
+ className: "date-picker__previous-period"
408
+ }, isCompare && !isCompareHidden && startDate && endDate && renderPreviousPeriod()), /*#__PURE__*/_react.default.createElement("div", {
409
+ className: "date-picker__calendars"
410
+ }, /*#__PURE__*/_react.default.createElement(_Calendar.default, {
411
+ date: date1,
412
+ setDate: setDate1,
413
+ allowNext: !isNearby,
414
+ startDate: startDate,
415
+ endDate: endDate,
416
+ startPrevDate: startPrevDate,
417
+ endPrevDate: endPrevDate,
418
+ onClick: handleClick,
419
+ onHover: handleHover,
420
+ limitRange: limitRange
421
+ }), /*#__PURE__*/_react.default.createElement(_Calendar.default, {
422
+ date: date2,
423
+ setDate: setDate2,
424
+ allowPrev: !isNearby,
425
+ startDate: startDate,
426
+ endDate: endDate,
427
+ startPrevDate: startPrevDate,
428
+ endPrevDate: endPrevDate,
429
+ onClick: handleClick,
430
+ onHover: handleHover
431
+ })), /*#__PURE__*/_react.default.createElement("div", {
432
+ className: "date-picker__footer j46"
433
+ }, !isCompareHidden ? /*#__PURE__*/_react.default.createElement("div", {
434
+ className: "j4"
435
+ }, /*#__PURE__*/_react.default.createElement("div", {
436
+ className: "mr5"
437
+ }, /*#__PURE__*/_react.default.createElement(_Switcher.default, {
438
+ dataTest: "datepicker_compare",
439
+ label: txt.labels.compare,
440
+ isSwitchOn: isCompare,
441
+ onChange: function onChange() {
442
+ onChangeCompare(!isCompare);
443
+ setIsCompare(function (state) {
444
+ return !state;
445
+ });
446
+ }
447
+ }))) : /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null, renderButtons())));
448
+ };
449
+
450
+ var _default = Datepicker;
451
+ exports.default = _default;