intelicoreact 0.0.62 → 0.0.66

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.
@@ -9,10 +9,10 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
17
 
18
18
  var _react = _interopRequireWildcard(require("react"));
@@ -29,6 +29,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
29
29
 
30
30
  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; }
31
31
 
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
+
32
36
  var Input = function Input(_ref) {
33
37
  var onChange = _ref.onChange,
34
38
  disabled = _ref.disabled,
@@ -48,6 +52,8 @@ var Input = function Input(_ref) {
48
52
  onFocus = _ref.onFocus,
49
53
  onKeyUp = _ref.onKeyUp,
50
54
  mask = _ref.mask,
55
+ maskChar = _ref.maskChar,
56
+ formatChars = _ref.formatChars,
51
57
  error = _ref.error,
52
58
  icon = _ref.icon,
53
59
  symbolsLimit = _ref.symbolsLimit;
@@ -99,7 +105,8 @@ var Input = function Input(_ref) {
99
105
  (0, _react.useEffect)(function () {
100
106
  if (isEditing) inputRef.current.focus();
101
107
  }, [isEditing, isFocused]);
102
- var uniProps = {
108
+
109
+ var uniProps = _objectSpread(_objectSpread({
103
110
  className: "input ".concat(className),
104
111
  placeholder: placeholder,
105
112
  value: value || '',
@@ -110,7 +117,11 @@ var Input = function Input(_ref) {
110
117
  onKeyUp: handle.keyUp,
111
118
  min: min,
112
119
  max: max
113
- };
120
+ }, maskChar ? {
121
+ maskChar: maskChar
122
+ } : {}), formatChars ? {
123
+ formatChars: formatChars
124
+ } : {});
114
125
 
115
126
  function renderInput() {
116
127
  if (mask) {
@@ -111,7 +111,13 @@ InputTemplate.args = {
111
111
  min: '0',
112
112
  max: '5',
113
113
  placeholder: 'Placeholder',
114
- mask: '',
114
+ // mask: 'nnnnn0129',
115
+ // maskChar: '_',
116
+ // formatChars: {
117
+ // 'n': '[0-9]',
118
+ // 's': '[A-Za-z]',
119
+ // '*': '[A-Za-z0-9]'
120
+ // },
115
121
  icon: /*#__PURE__*/_react.default.createElement(_reactFeather.User, null),
116
122
  symbolsLimit: 225
117
123
  };
@@ -62,6 +62,7 @@ var InputDateRange = function InputDateRange(props) {
62
62
  hideArrows = _props$hideArrows === void 0 ? false : _props$hideArrows,
63
63
  isOptionsRight = props.isOptionsRight,
64
64
  limitRange = props.limitRange,
65
+ isShortWeekNames = props.isShortWeekNames,
65
66
  isUseAbs = props.isUseAbs,
66
67
  absTooltip = props.absTooltip;
67
68
  var actualValues = (0, _dependencies.getActualDateRange)(value);
@@ -86,6 +87,25 @@ var InputDateRange = function InputDateRange(props) {
86
87
  var internalContainerRef = (0, _react.useRef)(null);
87
88
  var isEndDateNearFuture = (0, _momentTimezone.default)(actualValues === null || actualValues === void 0 ? void 0 : actualValues.end).isSameOrAfter((0, _momentTimezone.default)());
88
89
 
90
+ var handleChange = function handleChange(input) {
91
+ var newValue = (0, _dependencies.getActualDateRange)(input);
92
+
93
+ var formatedValue = _objectSpread(_objectSpread(_objectSpread({
94
+ intervalKey: newValue.intervalKey,
95
+ start: newValue.start ? (0, _momentTimezone.default)(newValue.start).format('YYYY-MM-DDTHH:mm') : newValue.start,
96
+ end: newValue.end ? (0, _momentTimezone.default)(newValue.end).format('YYYY-MM-DDTHH:mm') : newValue.end
97
+ }, newValue.compare ? {
98
+ compare: newValue.compare
99
+ } : {}), newValue.startPrevDate ? {
100
+ startPrevDate: (0, _momentTimezone.default)(newValue.startPrevDate).format('YYYY-MM-DDTHH:mm')
101
+ } : {}), newValue.endPrevDate ? {
102
+ endPrevDate: (0, _momentTimezone.default)(newValue.endPrevDate).format('YYYY-MM-DDTHH:mm')
103
+ } : {});
104
+
105
+ onChange(formatedValue);
106
+ return formatedValue;
107
+ };
108
+
89
109
  var Range = function Range() {
90
110
  var SYMBOLS_QUANTITY_IF_TIME_ADDED = 13;
91
111
  var start = actualValues.start,
@@ -116,8 +136,7 @@ var InputDateRange = function InputDateRange(props) {
116
136
  var start = actualValues.start,
117
137
  end = actualValues.end;
118
138
  var intervalHoursCount = (0, _momentTimezone.default)(end).diff(start, 'hours');
119
- var newEnd;
120
- var newStart;
139
+ var newEnd, newStart;
121
140
  var endHours = (0, _momentTimezone.default)(end).hours();
122
141
  var startHours = (0, _momentTimezone.default)(start).hours();
123
142
 
@@ -131,7 +150,7 @@ var InputDateRange = function InputDateRange(props) {
131
150
 
132
151
  var startPrevDate = (0, _momentTimezone.default)(newStart).subtract(intervalHoursCount, 'hours').subtract(1, 'seconds');
133
152
  var endPrevDate = (0, _momentTimezone.default)(newEnd).subtract(1, 'seconds');
134
- onChange(_objectSpread(_objectSpread({}, value), {}, {
153
+ handleChange(_objectSpread(_objectSpread({}, value), {}, {
135
154
  intervalKey: (_getActualDateRange = (0, _dependencies.getActualDateRange)({
136
155
  start: newStart,
137
156
  end: newEnd
@@ -146,36 +165,34 @@ var InputDateRange = function InputDateRange(props) {
146
165
  var handleArrowClick = function handleArrowClick(type) {
147
166
  slideInterval(type === 'right' ? 'forward' : 'back');
148
167
  toggleOff();
149
- };
168
+ }; // const absData = useMemo(
169
+ // () => ({
170
+ // body: OpenedPart,
171
+ // props: {
172
+ // ...props,
173
+ // key: `${actualValues.start}-${actualValues.end}-${actualValues.intervalKey}-${current}-${isCompare}`,
174
+ // actualValues,
175
+ // current,
176
+ // setCurrent,
177
+ // isCompare,
178
+ // setIsCompare,
179
+ // toggleOff,
180
+ // onChange,
181
+ // },
182
+ // clickOutsideCallback: () => toggleOff(),
183
+ // top: internalContainerRef.current?.getBoundingClientRect()?.bottom || 0,
184
+ // left: internalContainerRef.current?.getBoundingClientRect()?.left || 0,
185
+ // }),
186
+ // [isToggled, value, actualValues, current, isCompare],
187
+ // );
188
+ // useEffect(() => {
189
+ // if (current && isUseAbs && absTooltip) onChange(current, 'absTooltip/props/current');
190
+ // }, [current]);
191
+ // useEffect(() => {
192
+ // if (isUseAbs) onChange(isToggled ? absData : null, 'absTooltip');
193
+ // }, [isToggled]);
194
+
150
195
 
151
- var absData = (0, _react.useMemo)(function () {
152
- var _internalContainerRef, _internalContainerRef2, _internalContainerRef3, _internalContainerRef4;
153
-
154
- return {
155
- body: _OpenedPart.default,
156
- props: _objectSpread(_objectSpread({}, props), {}, {
157
- key: "".concat(actualValues.start, "-").concat(actualValues.end, "-").concat(actualValues.intervalKey, "-").concat(current, "-").concat(isCompare),
158
- actualValues: actualValues,
159
- current: current,
160
- setCurrent: setCurrent,
161
- isCompare: isCompare,
162
- setIsCompare: setIsCompare,
163
- toggleOff: toggleOff,
164
- onChange: onChange
165
- }),
166
- clickOutsideCallback: function clickOutsideCallback() {
167
- return toggleOff();
168
- },
169
- top: ((_internalContainerRef = internalContainerRef.current) === null || _internalContainerRef === void 0 ? void 0 : (_internalContainerRef2 = _internalContainerRef.getBoundingClientRect()) === null || _internalContainerRef2 === void 0 ? void 0 : _internalContainerRef2.bottom) || 0,
170
- left: ((_internalContainerRef3 = internalContainerRef.current) === null || _internalContainerRef3 === void 0 ? void 0 : (_internalContainerRef4 = _internalContainerRef3.getBoundingClientRect()) === null || _internalContainerRef4 === void 0 ? void 0 : _internalContainerRef4.left) || 0
171
- };
172
- }, [isToggled, value, actualValues, current, isCompare]);
173
- (0, _react.useEffect)(function () {
174
- if (current && isUseAbs && absTooltip) onChange(current, 'absTooltip/props/current');
175
- }, [current]);
176
- (0, _react.useEffect)(function () {
177
- if (isUseAbs) onChange(isToggled ? absData : null, 'absTooltip');
178
- }, [isToggled]);
179
196
  return /*#__PURE__*/_react.default.createElement("div", {
180
197
  ref: internalContainerRef,
181
198
  className: (0, _classnames.default)('date-range-input', className, {
@@ -200,14 +217,7 @@ var InputDateRange = function InputDateRange(props) {
200
217
  className: (0, _classnames.default)('date-range-input__static-part')
201
218
  }, /*#__PURE__*/_react.default.createElement("button", {
202
219
  id: id,
203
- className: (0, _classnames.default)('date-range-input__toggle-button') // className={cn(
204
- // 'date-range-input__toggle-button',
205
- // { 'form-select__input--disabled': disabled },
206
- // { 'form-select__input--opened': isToggled },
207
- // { 'form-select__input--focused': isToggled },
208
- // className,
209
- // )}
210
- ,
220
+ className: (0, _classnames.default)('date-range-input__toggle-button'),
211
221
  disabled: disabled,
212
222
  onClick: !disabled && !isHoverable ? toggle : undefined
213
223
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -220,14 +230,14 @@ var InputDateRange = function InputDateRange(props) {
220
230
  type: "left",
221
231
  className: "date-range-input__arrow",
222
232
  onClick: function onClick() {
223
- return handleArrowClick('left');
233
+ return handleArrowClick("left");
224
234
  },
225
235
  disabled: disabled || (actualValues === null || actualValues === void 0 ? void 0 : actualValues.intervalKey) === _dependencies.ALL_TIME_KEY
226
236
  }), /*#__PURE__*/_react.default.createElement(_Arrow.default, {
227
237
  type: "right",
228
238
  className: "date-range-input__arrow",
229
239
  onClick: function onClick() {
230
- return handleArrowClick('right');
240
+ return handleArrowClick("right");
231
241
  },
232
242
  disabled: disabled || (actualValues === null || actualValues === void 0 ? void 0 : actualValues.intervalKey) === _dependencies.ALL_TIME_KEY || (actualValues === null || actualValues === void 0 ? void 0 : actualValues.intervalKey) === 'today' || (0, _momentTimezone.default)(actualValues === null || actualValues === void 0 ? void 0 : actualValues.end).add((0, _momentTimezone.default)(actualValues === null || actualValues === void 0 ? void 0 : actualValues.end).diff(actualValues === null || actualValues === void 0 ? void 0 : actualValues.start, 'hours'), 'hours').isAfter((0, _momentTimezone.default)().add(1, 'day').startOf('day'))
233
243
  }))), isToggled && !isUseAbs && /*#__PURE__*/_react.default.createElement(_OpenedPart.default, (0, _extends2.default)({}, props, {
@@ -238,7 +248,7 @@ var InputDateRange = function InputDateRange(props) {
238
248
  isCompare: isCompare,
239
249
  setIsCompare: setIsCompare,
240
250
  toggleOff: toggleOff,
241
- onChange: onChange
251
+ onChange: handleChange
242
252
  })))), error && /*#__PURE__*/_react.default.createElement("span", {
243
253
  className: "date-range-input__error-block"
244
254
  }, error));
@@ -11,6 +11,8 @@ exports.InputDateRangeTemplate = exports.default = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
14
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
17
 
16
18
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -19,12 +21,18 @@ var _react = _interopRequireWildcard(require("react"));
19
21
 
20
22
  var _InputDateRange = _interopRequireDefault(require("./InputDateRange"));
21
23
 
24
+ var _Table = _interopRequireDefault(require("../Table/Table"));
25
+
22
26
  var _excluded = ["dateRange"];
23
27
 
24
28
  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); }
25
29
 
26
30
  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; }
27
31
 
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
+
28
36
  global.lng = 'en';
29
37
  var _default = {
30
38
  title: 'Form Elements/InputDateRange',
@@ -38,23 +46,171 @@ var _default = {
38
46
  }
39
47
  };
40
48
  exports.default = _default;
49
+ var tableData = {
50
+ header: [{
51
+ id: 1,
52
+ label: 'state'
53
+ }, {
54
+ id: 2,
55
+ label: 'Tags'
56
+ }, {
57
+ id: 3,
58
+ label: 'status'
59
+ }, {
60
+ id: 4,
61
+ label: 'loanAmountApproved'
62
+ }, {
63
+ id: 5,
64
+ label: 'loanAmountRejected'
65
+ }, {
66
+ id: 6,
67
+ label: 'approveRate'
68
+ }, {
69
+ id: 7,
70
+ label: 'actions',
71
+ type: 'actions'
72
+ }],
73
+ rows: [{
74
+ id: 1,
75
+ link: {
76
+ label: 'CA',
77
+ link: '#s'
78
+ },
79
+ tags: [{
80
+ label: 'Label 1'
81
+ }],
82
+ status: {
83
+ value: '90',
84
+ status: 'active'
85
+ },
86
+ loanAmountApproved: {
87
+ value: '$70,000'
88
+ },
89
+ loanAmountRejected: {
90
+ value: '$30,000'
91
+ },
92
+ approveRate: {
93
+ value: '70%'
94
+ }
95
+ }, {
96
+ id: 2,
97
+ link: {
98
+ label: 'NY',
99
+ link: '#s'
100
+ },
101
+ advancedTags: [{
102
+ labelLeft: 'home',
103
+ labelRight: 'hoods',
104
+ active: 3,
105
+ pause: 1,
106
+ merchants: 5
107
+ }, {
108
+ labelRight: 'jewelry',
109
+ active: 3,
110
+ pause: 1,
111
+ merchants: 5
112
+ }, {
113
+ labelLeft: 'home',
114
+ labelRight: 'improvement',
115
+ active: 0,
116
+ pause: 0,
117
+ warnLeft: true,
118
+ warnLeftMsg: 'landerNotIncluded',
119
+ warnRightMsg: 'noMerchants'
120
+ }, {
121
+ labelLeft: 'home',
122
+ labelRight: 'hoods',
123
+ active: 3,
124
+ pause: 1,
125
+ merchants: 5
126
+ }, {
127
+ labelRight: 'jewelry',
128
+ active: 3,
129
+ pause: 1,
130
+ merchants: 5
131
+ }],
132
+ status: {
133
+ label: 'Active',
134
+ className: 'color--green-haze'
135
+ },
136
+ loanAmountApproved: {
137
+ value: '$3,000'
138
+ },
139
+ loanAmountRejected: {
140
+ value: '$7,000'
141
+ },
142
+ approveRate: {
143
+ value: '30%'
144
+ }
145
+ }, {
146
+ id: 3,
147
+ link: {
148
+ label: 'NH',
149
+ link: '#s'
150
+ },
151
+ tags: [{
152
+ label: 'Label 1'
153
+ }, {
154
+ label: 'Label 2'
155
+ }, {
156
+ label: 'Label 3'
157
+ }],
158
+ status: {
159
+ status: 'error'
160
+ },
161
+ loanAmountApproved: {
162
+ value: '$70,000'
163
+ },
164
+ loanAmountRejected: {
165
+ value: '$30,000'
166
+ },
167
+ approveRate: {
168
+ value: '70%'
169
+ }
170
+ }]
171
+ };
41
172
 
42
173
  var Template = function Template(args) {
174
+ var _state$rows;
175
+
43
176
  var dateRange = args.dateRange,
44
177
  restOfProps = (0, _objectWithoutProperties2.default)(args, _excluded);
45
178
 
46
179
  var _useState = (0, _react.useState)(dateRange),
47
180
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
48
181
  value = _useState2[0],
49
- setValue = _useState2[1]; // return <InputDateRange {...restOfProps} value={value} onChange={setValue} />;
50
-
182
+ setValue = _useState2[1];
183
+
184
+ var _useState3 = (0, _react.useState)(tableData),
185
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
186
+ state = _useState4[0],
187
+ setState = _useState4[1];
188
+
189
+ var rowsWithActions = state === null || state === void 0 ? void 0 : (_state$rows = state.rows) === null || _state$rows === void 0 ? void 0 : _state$rows.map(function (row) {
190
+ return _objectSpread(_objectSpread({}, row), {}, {
191
+ actions: row.isDeleted ? [{
192
+ type: 'undo'
193
+ }] : [{
194
+ type: 'download'
195
+ }, {
196
+ type: 'edit'
197
+ }, {
198
+ type: 'delete'
199
+ }]
200
+ });
201
+ }); // useEffect(() => console.log(value), [value]);
202
+ // return <InputDateRange {...restOfProps} value={value} onChange={setValue} />;
51
203
 
52
204
  return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
53
205
  className: "mb20"
54
206
  }, /*#__PURE__*/_react.default.createElement(_InputDateRange.default, (0, _extends2.default)({}, restOfProps, {
55
207
  value: value,
56
208
  onChange: setValue
57
- }))));
209
+ }))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Table.default, {
210
+ header: state.header,
211
+ rows: rowsWithActions,
212
+ onChange: setState
213
+ })));
58
214
  };
59
215
 
60
216
  var InputDateRangeTemplate = Template.bind({});
@@ -80,7 +236,8 @@ InputDateRangeTemplate.args = {
80
236
  isIntervalsHidden: false,
81
237
  isCompareHidden: true,
82
238
  hideArrows: false,
83
- isOptionsRight: false // limitRange,
239
+ isOptionsRight: false,
240
+ isShortWeekNames: false // limitRange,
84
241
  // isUseAbs,
85
242
  // absTooltip
86
243
 
@@ -66,7 +66,8 @@ var Datepicker = function Datepicker(props) {
66
66
  isCompareHidden = props.isCompareHidden,
67
67
  limitRange = props.limitRange,
68
68
  handleItemClick = props.handleItemClick,
69
- setActiveInterval = props.setActiveInterval;
69
+ setActiveInterval = props.setActiveInterval,
70
+ isShortWeekNames = props.isShortWeekNames;
70
71
  var _values$start = values.start,
71
72
  start = _values$start === void 0 ? null : _values$start,
72
73
  _values$end = values.end,
@@ -461,7 +462,8 @@ var Datepicker = function Datepicker(props) {
461
462
  endPrevDate: endPrevDate,
462
463
  onClick: handleClick,
463
464
  onHover: handleHover,
464
- limitRange: limitRange
465
+ limitRange: limitRange,
466
+ isShortWeekNames: isShortWeekNames
465
467
  }), /*#__PURE__*/_react.default.createElement(_RangeCalendar.default, {
466
468
  className: "date-picker__calendar",
467
469
  date: date2,
@@ -472,7 +474,8 @@ var Datepicker = function Datepicker(props) {
472
474
  startPrevDate: startPrevDate,
473
475
  endPrevDate: endPrevDate,
474
476
  onClick: handleClick,
475
- onHover: handleHover
477
+ onHover: handleHover,
478
+ isShortWeekNames: isShortWeekNames
476
479
  }))), /*#__PURE__*/_react.default.createElement("div", {
477
480
  className: (0, _classnames.default)('date-picker__footer', {
478
481
  'date-picker__footer_once-element': isCompareHidden
@@ -55,7 +55,8 @@ var OpenedPart = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
55
55
  setCurrent = props.setCurrent,
56
56
  isCompare = props.isCompare,
57
57
  setIsCompare = props.setIsCompare,
58
- toggleOff = props.toggleOff;
58
+ toggleOff = props.toggleOff,
59
+ isShortWeekNames = props.isShortWeekNames;
59
60
 
60
61
  var items = isCompact ? (0, _toConsumableArray2.default)(Object.keys(_dependencies.INTERVALS)) : [].concat((0, _toConsumableArray2.default)(Object.keys(_dependencies.INTERVALS)), [_dependencies.CUSTOM_INTERVAL_KEY]);
61
62
 
@@ -118,7 +119,7 @@ var OpenedPart = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
118
119
  return /*#__PURE__*/_react.default.createElement(_SelectItem.default, {
119
120
  key: index,
120
121
  item: item,
121
- label: (txt === null || txt === void 0 ? void 0 : txt.labels) && (txt === null || txt === void 0 ? void 0 : txt.labels[item]) || ((_intervals$item = _dependencies.INTERVALS[item]) === null || _intervals$item === void 0 ? void 0 : _intervals$item.label) || item,
122
+ label: (txt === null || txt === void 0 ? void 0 : txt.labels) && (txt === null || txt === void 0 ? void 0 : txt.labels[item]) || ((_intervals$item = _dependencies.INTERVALS[item]) === null || _intervals$item === void 0 ? void 0 : _intervals$item.label) || (item === _dependencies.CUSTOM_INTERVAL_KEY ? _dependencies.CUSTOM_INTERVAL_KEY_TEXT : item),
122
123
  isActive: activeInterval === item,
123
124
  onItemClick: function onItemClick() {
124
125
  return handleItemClick(item.value || item);
@@ -146,7 +147,8 @@ var OpenedPart = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
146
147
  onCancel: toggleOff,
147
148
  isCompareHidden: isCompareHidden,
148
149
  limitRange: limitRange,
149
- setActiveInterval: setActiveInterval
150
+ setActiveInterval: setActiveInterval,
151
+ isShortWeekNames: isShortWeekNames
150
152
  })));
151
153
  });
152
154
 
@@ -11,8 +11,6 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
- var _check = _interopRequireDefault(require("../../../../../../assets/icons/check.svg"));
15
-
16
14
  var SelectItem = function SelectItem(_ref) {
17
15
  var item = _ref.item,
18
16
  label = _ref.label,
@@ -221,6 +221,14 @@ var getActualDateRange = function getActualDateRange(inputDateRange) {
221
221
  return null;
222
222
  }();
223
223
 
224
+ if (actualIntervalKey === ALL_TIME_KEY) return {
225
+ intervalKey: ALL_TIME_KEY,
226
+ start: null,
227
+ end: null,
228
+ compare: inputDateRange.compare,
229
+ startPrevDate: null,
230
+ endPrevDate: null
231
+ };
224
232
  var actualValues = {
225
233
  // intervalKey: inputDateRange.intervalKey || customIntervalKey,
226
234
  intervalKey: actualIntervalKey || CUSTOM_INTERVAL_KEY,
@@ -43,7 +43,8 @@ var RangeCalendar = function RangeCalendar(props) {
43
43
  onHover = _props$onHover === void 0 ? function () {} : _props$onHover,
44
44
  startPrevDate = props.startPrevDate,
45
45
  endPrevDate = props.endPrevDate,
46
- limitRange = props.limitRange;
46
+ limitRange = props.limitRange,
47
+ isShortWeekNames = props.isShortWeekNames;
47
48
 
48
49
  var _useState = (0, _react.useState)({}),
49
50
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -125,6 +126,10 @@ var RangeCalendar = function RangeCalendar(props) {
125
126
  setDate((0, _momentTimezone.default)(date).add(1, 'month').toDate());
126
127
  };
127
128
 
129
+ var getFormatedWeekName = function getFormatedWeekName(input) {
130
+ return isShortWeekNames ? input.charAt(0) : input;
131
+ };
132
+
128
133
  return /*#__PURE__*/_react.default.createElement("div", {
129
134
  className: (0, _classnames.default)('range-calendar', className)
130
135
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -147,7 +152,7 @@ var RangeCalendar = function RangeCalendar(props) {
147
152
  return /*#__PURE__*/_react.default.createElement("div", {
148
153
  key: "day-of-week_".concat(dayOfWeek),
149
154
  className: "range-calendar__day range-calendar__day--title"
150
- }, (0, _momentTimezone.default)().weekday(dayOfWeek).format('dd').charAt(0));
155
+ }, getFormatedWeekName((0, _momentTimezone.default)().weekday(dayOfWeek).format('dd')));
151
156
  })), Object.keys(days).map(function (week, index) {
152
157
  return /*#__PURE__*/_react.default.createElement("div", {
153
158
  key: "week_".concat(index),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "0.0.62",
4
- "description": "Range selector fixes",
3
+ "version": "0.0.66",
4
+ "description": "Inputmask fixes",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
7
7
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -21,6 +21,8 @@ const Input = ({
21
21
  onFocus,
22
22
  onKeyUp,
23
23
  mask,
24
+ maskChar,
25
+ formatChars,
24
26
  error,
25
27
  icon,
26
28
  symbolsLimit,
@@ -72,6 +74,8 @@ const Input = ({
72
74
  onKeyUp: handle.keyUp,
73
75
  min,
74
76
  max,
77
+ ...(maskChar ? { maskChar } : {}),
78
+ ...(formatChars ? { formatChars } : {}),
75
79
  };
76
80
 
77
81
  function renderInput() {
@@ -67,7 +67,13 @@ InputTemplate.args = {
67
67
  min: '0',
68
68
  max: '5',
69
69
  placeholder: 'Placeholder',
70
- mask: '',
70
+ // mask: 'nnnnn0129',
71
+ // maskChar: '_',
72
+ // formatChars: {
73
+ // 'n': '[0-9]',
74
+ // 's': '[A-Za-z]',
75
+ // '*': '[A-Za-z0-9]'
76
+ // },
71
77
  icon: <User />,
72
78
  symbolsLimit: 225
73
79
  };
@@ -7,228 +7,235 @@ import { useClickOutside, useToggle, getActualDateRange, INTERVALS, ALL_TIME_KEY
7
7
  import OpenedPart from './components/OpenedPart';
8
8
  import Arrow from '../../UI/Arrow/Arrow';
9
9
 
10
- import './InputDateRange.scss';
10
+ import './InputDateRange.scss'
11
11
 
12
12
  const InputDateRange = props => {
13
- const {
14
- txt,
15
- id,
16
- label,
17
- className,
18
- buttonsTypes,
19
- value,
20
- onChange = () => {},
21
- error,
22
- disabled,
23
- isHoverable,
24
- short,
25
- isCompact = false,
26
- // isFocused = false,
27
- isIntervalsHidden = false,
28
- isCompareHidden = false,
29
- hideArrows = false,
30
- isOptionsRight,
31
- limitRange,
32
- isUseAbs,
33
- absTooltip
34
- } = props;
35
-
36
- const actualValues = getActualDateRange(value);
37
- const { isToggled, toggle, toggleOn, toggleOff } = useToggle(false);
38
- const [current, setCurrent] = useState(actualValues?.intervalKey);
39
- const [isCompare, setIsCompare] = useState(actualValues?.compare);
40
-
41
- const ref = !isUseAbs ? useClickOutside(toggleOff) : useRef(null);
42
- const internalContainerRef = useRef(null);
43
- const isEndDateNearFuture = moment(actualValues?.end).isSameOrAfter(moment());
44
-
45
- const Range = () => {
46
- const SYMBOLS_QUANTITY_IF_TIME_ADDED = 13;
47
- const { start, end } = actualValues;
48
- if (!start || !end) return null;
49
-
50
- const startTime = moment(start).format('HH:mm');
51
- const endTime = moment(end).format('HH:mm');
52
-
53
- const firstPart = `${moment(start).format('ll')} ${startTime !== '00:00' ? `(${startTime})` : ''}`;
54
- const secondPart = `${(endTime !== '00:00' ? moment(end) : moment(end).subtract(1, 'days')).format('ll')} ${
55
- endTime !== '00:00' ? `(${endTime})` : ''
56
- }`;
57
-
58
- const getClasses = base =>
59
- cn('date-range-input__range-text', {
60
- 'date-range-input__range-text_little': base.length > SYMBOLS_QUANTITY_IF_TIME_ADDED
61
- });
13
+ const {
14
+ txt,
15
+ id,
16
+ label,
17
+ className,
18
+ buttonsTypes,
19
+ value,
20
+ onChange = () => {},
21
+ error,
22
+ disabled,
23
+ isHoverable,
24
+ short,
25
+ isCompact = false,
26
+ // isFocused = false,
27
+ isIntervalsHidden = false,
28
+ isCompareHidden = false,
29
+ hideArrows = false,
30
+ isOptionsRight,
31
+ limitRange,
32
+ isShortWeekNames,
33
+ isUseAbs,
34
+ absTooltip,
35
+ } = props;
36
+
37
+ const actualValues = getActualDateRange(value);
38
+ const { isToggled, toggle, toggleOn, toggleOff } = useToggle(false);
39
+ const [current, setCurrent] = useState(actualValues?.intervalKey);
40
+ const [isCompare, setIsCompare] = useState(actualValues?.compare);
41
+
42
+ const ref = !isUseAbs ? useClickOutside(toggleOff) : useRef(null);
43
+ const internalContainerRef = useRef(null);
44
+ const isEndDateNearFuture = moment(actualValues?.end).isSameOrAfter(moment());
45
+
46
+ const handleChange = input => {
47
+ const newValue = getActualDateRange(input);
48
+ const formatedValue = {
49
+ intervalKey: newValue.intervalKey,
50
+ start: newValue.start ? moment(newValue.start).format('YYYY-MM-DDTHH:mm') : newValue.start,
51
+ end: newValue.end ? moment(newValue.end).format('YYYY-MM-DDTHH:mm') : newValue.end,
52
+ ...(newValue.compare ? {compare: newValue.compare} : {}),
53
+ ...(newValue.startPrevDate ? {startPrevDate: moment(newValue.startPrevDate).format('YYYY-MM-DDTHH:mm')} : {}),
54
+ ...(newValue.endPrevDate ? {endPrevDate: moment(newValue.endPrevDate).format('YYYY-MM-DDTHH:mm')} : {}),
55
+ };
56
+
57
+ onChange(formatedValue);
58
+ return formatedValue;
59
+ };
60
+
61
+ const Range = () => {
62
+ const SYMBOLS_QUANTITY_IF_TIME_ADDED = 13;
63
+ const { start, end } = actualValues;
64
+ if (!start || !end) return null;
65
+
66
+ const startTime = moment(start).format('HH:mm');
67
+ const endTime = moment(end).format('HH:mm');
68
+
69
+ const firstPart = `${moment(start).format('ll')} ${startTime !== '00:00' ? `(${startTime})` : ''}`;
70
+ const secondPart = `${(endTime !== '00:00' ? moment(end) : moment(end).subtract(1, 'days')).format('ll')} ${
71
+ endTime !== '00:00' ? `(${endTime})` : ''
72
+ }`;
73
+
74
+ const getClasses = base => cn('date-range-input__range-text', {
75
+ 'date-range-input__range-text_little': base.length > SYMBOLS_QUANTITY_IF_TIME_ADDED
76
+ });
77
+
78
+ return (
79
+ <>
80
+ <span className={getClasses(firstPart)}>
81
+ {firstPart}
82
+ {endTime === '00:00' && moment(end).isSame(moment(start).add(1, 'days'), 'day') ? '' : ` - `}
83
+ </span>
84
+ {endTime === '00:00' && moment(end).isSame(moment(start).add(1, 'days'), 'day')
85
+ ? null
86
+ :<span className={getClasses(secondPart)}>{secondPart}</span>
62
87
 
63
- return (
64
- <>
65
- <span className={getClasses(firstPart)}>
66
- {firstPart}
67
- {endTime === '00:00' && moment(end).isSame(moment(start).add(1, 'days'), 'day') ? '' : ` - `}
68
- </span>
69
- {endTime === '00:00' && moment(end).isSame(moment(start).add(1, 'days'), 'day') ? null : (
70
- <span className={getClasses(secondPart)}>{secondPart}</span>
71
- )}
72
- </>
73
- );
74
- };
75
-
76
- const slideInterval = (direction = 'forward') => {
77
- const { start, end } = actualValues;
78
- const intervalHoursCount = moment(end).diff(start, 'hours');
79
- let newEnd;
80
- let newStart;
81
- const endHours = moment(end).hours();
82
- const startHours = moment(start).hours();
83
- if (direction === 'forward') {
84
- newStart = moment(end)
85
- .add(endHours === 0 ? 0 : 1, 'day')
86
- .hours(startHours)
87
- .toDate();
88
- newEnd = moment(newStart).add(intervalHoursCount, 'hours');
89
- } else {
90
- newEnd = moment(start)
91
- .subtract(endHours === 0 ? 0 : 1, 'day')
92
- .hours(endHours)
93
- .toDate();
94
- newStart = moment(newEnd).subtract(intervalHoursCount, 'hours');
88
+ }
89
+ </>
90
+ )
95
91
  }
96
- const startPrevDate = moment(newStart).subtract(intervalHoursCount, 'hours').subtract(1, 'seconds');
97
- const endPrevDate = moment(newEnd).subtract(1, 'seconds');
98
- onChange({
99
- ...value,
100
- intervalKey: getActualDateRange({
101
- start: newStart,
102
- end: newEnd
103
- })?.intervalKey,
104
- start: newStart,
105
- end: newEnd,
106
- startPrevDate,
107
- endPrevDate
108
- });
109
- };
110
-
111
- const handleArrowClick = type => {
112
- slideInterval(type === 'right' ? 'forward' : 'back');
113
- toggleOff();
114
- };
115
-
116
- const absData = useMemo(
117
- () => ({
118
- body: OpenedPart,
119
- props: {
120
- ...props,
121
- key: `${actualValues.start}-${actualValues.end}-${actualValues.intervalKey}-${current}-${isCompare}`,
122
- actualValues,
123
- current,
124
- setCurrent,
125
- isCompare,
126
- setIsCompare,
127
- toggleOff,
128
- onChange
129
- },
130
- clickOutsideCallback: () => toggleOff(),
131
- top: internalContainerRef.current?.getBoundingClientRect()?.bottom || 0,
132
- left: internalContainerRef.current?.getBoundingClientRect()?.left || 0
133
- }),
134
- [isToggled, value, actualValues, current, isCompare]
135
- );
136
-
137
- useEffect(() => {
138
- if (current && isUseAbs && absTooltip) onChange(current, 'absTooltip/props/current');
139
- }, [current]);
140
-
141
- useEffect(() => {
142
- if (isUseAbs) onChange(isToggled ? absData : null, 'absTooltip');
143
- }, [isToggled]);
144
-
145
- return (
146
- <div
147
- ref={internalContainerRef}
148
- className={cn('date-range-input', className, {
149
- 'date-range-input_compact': isCompact,
150
- 'date-range-input_hide-arrows': hideArrows,
151
- 'date-range-input_focused': isToggled,
152
- 'date-range-input_error': error,
153
- 'date-range-input_disabled': disabled
154
- })}
155
- >
156
- <span className="date-range-input__label">{label}</span>
157
- <div className="date-range-input__wraper" ref={ref} onMouseEnter={isHoverable && toggleOn} onMouseLeave={isHoverable && toggleOff}>
92
+
93
+ const slideInterval = (direction = 'forward') => {
94
+ const { start, end } = actualValues;
95
+ const intervalHoursCount = moment(end).diff(start, 'hours');
96
+ let newEnd, newStart;
97
+ const endHours = moment(end).hours();
98
+ const startHours = moment(start).hours();
99
+ if (direction === 'forward') {
100
+ newStart = moment(end)
101
+ .add(endHours === 0 ? 0 : 1, 'day')
102
+ .hours(startHours)
103
+ .toDate();
104
+ newEnd = moment(newStart).add(intervalHoursCount, 'hours');
105
+ } else {
106
+ newEnd = moment(start)
107
+ .subtract(endHours === 0 ? 0 : 1, 'day')
108
+ .hours(endHours)
109
+ .toDate();
110
+ newStart = moment(newEnd).subtract(intervalHoursCount, 'hours');
111
+ }
112
+ const startPrevDate = moment(newStart).subtract(intervalHoursCount, 'hours').subtract(1, 'seconds');
113
+ const endPrevDate = moment(newEnd).subtract(1, 'seconds');
114
+ handleChange({
115
+ ...value,
116
+ intervalKey: getActualDateRange({
117
+ start: newStart,
118
+ end: newEnd,
119
+ })?.intervalKey,
120
+ start: newStart,
121
+ end: newEnd,
122
+ startPrevDate,
123
+ endPrevDate,
124
+ });
125
+ };
126
+
127
+ const handleArrowClick = type => {
128
+ slideInterval(type === 'right' ? 'forward' : 'back');
129
+ toggleOff();
130
+ };
131
+
132
+ // const absData = useMemo(
133
+ // () => ({
134
+ // body: OpenedPart,
135
+ // props: {
136
+ // ...props,
137
+ // key: `${actualValues.start}-${actualValues.end}-${actualValues.intervalKey}-${current}-${isCompare}`,
138
+ // actualValues,
139
+ // current,
140
+ // setCurrent,
141
+ // isCompare,
142
+ // setIsCompare,
143
+ // toggleOff,
144
+ // onChange,
145
+ // },
146
+ // clickOutsideCallback: () => toggleOff(),
147
+ // top: internalContainerRef.current?.getBoundingClientRect()?.bottom || 0,
148
+ // left: internalContainerRef.current?.getBoundingClientRect()?.left || 0,
149
+ // }),
150
+ // [isToggled, value, actualValues, current, isCompare],
151
+ // );
152
+
153
+ // useEffect(() => {
154
+ // if (current && isUseAbs && absTooltip) onChange(current, 'absTooltip/props/current');
155
+ // }, [current]);
156
+
157
+ // useEffect(() => {
158
+ // if (isUseAbs) onChange(isToggled ? absData : null, 'absTooltip');
159
+ // }, [isToggled]);
160
+
161
+ return (
158
162
  <div
159
- className={cn('date-range-input__absolut-wraper', {
160
- 'date-range-input__absolut-wraper_right-position': isOptionsRight
161
- })}
163
+ ref={internalContainerRef}
164
+ className={cn('date-range-input', className, {
165
+ 'date-range-input_compact': isCompact,
166
+ 'date-range-input_hide-arrows': hideArrows,
167
+ 'date-range-input_focused': isToggled,
168
+ 'date-range-input_error': error,
169
+ 'date-range-input_disabled': disabled,
170
+ })}
162
171
  >
163
- <div className={cn('date-range-input__static-part')}>
164
- <button
165
- id={id}
166
- className={cn('date-range-input__toggle-button')}
167
- // className={cn(
168
- // 'date-range-input__toggle-button',
169
- // { 'form-select__input--disabled': disabled },
170
- // { 'form-select__input--opened': isToggled },
171
- // { 'form-select__input--focused': isToggled },
172
- // className,
173
- // )}
174
- disabled={disabled}
175
- onClick={!disabled && !isHoverable ? toggle : undefined}
172
+ <span className="date-range-input__label" >{label}</span>
173
+ <div
174
+ className="date-range-input__wraper"
175
+ ref={ref}
176
+ onMouseEnter={isHoverable && toggleOn}
177
+ onMouseLeave={isHoverable && toggleOff}
176
178
  >
177
- <div className="date-range-input__interval-key">
178
- <span>
179
- {(txt?.labels && txt.labels[actualValues?.intervalKey]) ??
180
- (INTERVALS[actualValues?.intervalKey]?.label || CUSTOM_INTERVAL_KEY_TEXT)}
181
- </span>
182
- {current !== ALL_TIME_KEY && <span>:</span>}
183
- </div>
184
- {!isCompact && (
185
- <div className={cn('date-range-input__range', {})}>
186
- <Range />
179
+ <div className={cn('date-range-input__absolut-wraper', {
180
+ 'date-range-input__absolut-wraper_right-position': isOptionsRight,
181
+ })}>
182
+ <div className={cn('date-range-input__static-part')}>
183
+ <button
184
+ id={id}
185
+ className={cn('date-range-input__toggle-button')}
186
+ disabled={disabled}
187
+ onClick={!disabled && !isHoverable ? toggle : undefined}
188
+ >
189
+ <div className="date-range-input__interval-key">
190
+ <span>
191
+ {(txt?.labels && txt.labels[actualValues?.intervalKey]) ?? (INTERVALS[actualValues?.intervalKey]?.label || CUSTOM_INTERVAL_KEY_TEXT)}
192
+ </span>
193
+ {current !== ALL_TIME_KEY && <span>:</span>}
194
+ </div>
195
+ {!isCompact && <div className={cn('date-range-input__range', {})}><Range /></div>}
196
+ </button>
197
+ {!isCompact && !hideArrows && (
198
+ <div className={cn('date-range-input__arrows-block')}>
199
+ <Arrow
200
+ type="left"
201
+ className="date-range-input__arrow"
202
+ onClick={() => handleArrowClick("left")}
203
+ disabled={disabled || actualValues?.intervalKey === ALL_TIME_KEY}
204
+ />
205
+ <Arrow
206
+ type="right"
207
+ className="date-range-input__arrow"
208
+ onClick={() => handleArrowClick("right")}
209
+ disabled={
210
+ disabled ||
211
+ actualValues?.intervalKey === ALL_TIME_KEY ||
212
+ actualValues?.intervalKey === 'today' ||
213
+ moment(actualValues?.end)
214
+ .add(moment(actualValues?.end).diff(actualValues?.start, 'hours'), 'hours')
215
+ .isAfter(moment().add(1, 'day').startOf('day'))
216
+ }
217
+ />
218
+ </div>
219
+ )}
220
+ </div>
221
+ {isToggled && !isUseAbs && (
222
+ <OpenedPart
223
+ {...props}
224
+ ref={internalContainerRef}
225
+ actualValues={actualValues}
226
+ current={current}
227
+ setCurrent={setCurrent}
228
+ isCompare={isCompare}
229
+ setIsCompare={setIsCompare}
230
+ toggleOff={toggleOff}
231
+ onChange={handleChange}
232
+ />
233
+ )}
187
234
  </div>
188
- )}
189
- </button>
190
- {!isCompact && !hideArrows && (
191
- <div className={cn('date-range-input__arrows-block')}>
192
- <Arrow
193
- type="left"
194
- className="date-range-input__arrow"
195
- onClick={() => handleArrowClick('left')}
196
- disabled={disabled || actualValues?.intervalKey === ALL_TIME_KEY}
197
- />
198
- <Arrow
199
- type="right"
200
- className="date-range-input__arrow"
201
- onClick={() => handleArrowClick('right')}
202
- disabled={
203
- disabled ||
204
- actualValues?.intervalKey === ALL_TIME_KEY ||
205
- actualValues?.intervalKey === 'today' ||
206
- moment(actualValues?.end)
207
- .add(moment(actualValues?.end).diff(actualValues?.start, 'hours'), 'hours')
208
- .isAfter(moment().add(1, 'day').startOf('day'))
209
- }
210
- />
211
- </div>
212
- )}
213
- </div>
214
- {isToggled && !isUseAbs && (
215
- <OpenedPart
216
- {...props}
217
- ref={internalContainerRef}
218
- actualValues={actualValues}
219
- current={current}
220
- setCurrent={setCurrent}
221
- isCompare={isCompare}
222
- setIsCompare={setIsCompare}
223
- toggleOff={toggleOff}
224
- onChange={onChange}
225
- />
226
- )}
235
+ </div>
236
+ {error && <span className="date-range-input__error-block">{error}</span>}
227
237
  </div>
228
- </div>
229
- {error && <span className="date-range-input__error-block">{error}</span>}
230
- </div>
231
- );
238
+ );
232
239
  };
233
240
 
234
241
  export default React.memo(InputDateRange);
@@ -1,5 +1,6 @@
1
- import React, { useState } from 'react';
1
+ import React, { /*useEffect,*/ useState } from 'react';
2
2
  import InputDateRange from './InputDateRange';
3
+ import Table from '../Table/Table';
3
4
 
4
5
  global.lng = 'en';
5
6
 
@@ -16,18 +17,107 @@ export default {
16
17
  }
17
18
  };
18
19
 
20
+ const tableData = {
21
+ header: [
22
+ { id: 1, label: 'state' },
23
+ { id: 2, label: 'Tags' },
24
+ { id: 3, label: 'status' },
25
+ { id: 4, label: 'loanAmountApproved' },
26
+ { id: 5, label: 'loanAmountRejected' },
27
+ { id: 6, label: 'approveRate' },
28
+ { id: 7, label: 'actions', type: 'actions' }
29
+ ],
30
+ rows: [
31
+ {
32
+ id: 1,
33
+ link: { label: 'CA', link: '#s' },
34
+ tags: [{ label: 'Label 1' }],
35
+ status: { value: '90', status: 'active' },
36
+ loanAmountApproved: { value: '$70,000' },
37
+ loanAmountRejected: { value: '$30,000' },
38
+ approveRate: { value: '70%' }
39
+ },
40
+ {
41
+ id: 2,
42
+ link: { label: 'NY', link: '#s' },
43
+ advancedTags: [
44
+ {
45
+ labelLeft: 'home',
46
+ labelRight: 'hoods',
47
+ active: 3,
48
+ pause: 1,
49
+ merchants: 5
50
+ },
51
+ {
52
+ labelRight: 'jewelry',
53
+ active: 3,
54
+ pause: 1,
55
+ merchants: 5
56
+ },
57
+ {
58
+ labelLeft: 'home',
59
+ labelRight: 'improvement',
60
+ active: 0,
61
+ pause: 0,
62
+ warnLeft: true,
63
+ warnLeftMsg: 'landerNotIncluded',
64
+ warnRightMsg: 'noMerchants'
65
+ },
66
+ {
67
+ labelLeft: 'home',
68
+ labelRight: 'hoods',
69
+ active: 3,
70
+ pause: 1,
71
+ merchants: 5
72
+ },
73
+ {
74
+ labelRight: 'jewelry',
75
+ active: 3,
76
+ pause: 1,
77
+ merchants: 5
78
+ }
79
+ ],
80
+ status: { label: 'Active', className: 'color--green-haze' },
81
+ loanAmountApproved: { value: '$3,000' },
82
+ loanAmountRejected: { value: '$7,000' },
83
+ approveRate: { value: '30%' }
84
+ },
85
+ {
86
+ id: 3,
87
+ link: { label: 'NH', link: '#s' },
88
+ tags: [{ label: 'Label 1' }, { label: 'Label 2' }, { label: 'Label 3' }],
89
+ status: { status: 'error' },
90
+ loanAmountApproved: { value: '$70,000' },
91
+ loanAmountRejected: { value: '$30,000' },
92
+ approveRate: { value: '70%' }
93
+ }
94
+ ]
95
+ };
96
+
19
97
  const Template = args => {
20
- const { dateRange, ...restOfProps } = args;
21
- const [value, setValue] = useState(dateRange);
22
-
23
- // return <InputDateRange {...restOfProps} value={value} onChange={setValue} />;
24
- return (
25
- <div>
26
- <div className="mb20">
27
- <InputDateRange {...restOfProps} value={value} onChange={setValue} />
98
+ const { dateRange, ...restOfProps } = args;
99
+ const [value, setValue] = useState(dateRange);
100
+
101
+ const [state, setState] = useState(tableData);
102
+
103
+ const rowsWithActions = state?.rows?.map(row => ({
104
+ ...row,
105
+ actions: row.isDeleted ? [{ type: 'undo' }] : [{ type: 'download' }, { type: 'edit' }, { type: 'delete' }]
106
+ }));
107
+
108
+ // useEffect(() => console.log(value), [value]);
109
+
110
+ // return <InputDateRange {...restOfProps} value={value} onChange={setValue} />;
111
+ return (
112
+ <div>
113
+ <div className="mb20">
114
+ <InputDateRange {...restOfProps} value={value} onChange={setValue} />
115
+ </div>
116
+ <div>
117
+ <Table header={state.header} rows={rowsWithActions} onChange={setState} />
118
+ </div>
28
119
  </div>
29
- </div>
30
- );
120
+ );
31
121
  };
32
122
 
33
123
  export const InputDateRangeTemplate = Template.bind({});
@@ -52,6 +142,7 @@ InputDateRangeTemplate.args = {
52
142
  isCompareHidden: true,
53
143
  hideArrows: false,
54
144
  isOptionsRight: false,
145
+ isShortWeekNames: false
55
146
  // limitRange,
56
147
  // isUseAbs,
57
148
  // absTooltip
@@ -40,7 +40,8 @@ const Datepicker = props => {
40
40
  isCompareHidden,
41
41
  limitRange,
42
42
  handleItemClick,
43
- setActiveInterval
43
+ setActiveInterval,
44
+ isShortWeekNames
44
45
  } = props;
45
46
  const { start = null, end = null, compare = false } = values;
46
47
  const startDateInputRef = useRef(null);
@@ -362,6 +363,7 @@ const Datepicker = props => {
362
363
  onClick={handleClick}
363
364
  onHover={handleHover}
364
365
  limitRange={limitRange}
366
+ isShortWeekNames={isShortWeekNames}
365
367
  />
366
368
  <Calendar
367
369
  className="date-picker__calendar"
@@ -374,6 +376,7 @@ const Datepicker = props => {
374
376
  endPrevDate={endPrevDate}
375
377
  onClick={handleClick}
376
378
  onHover={handleHover}
379
+ isShortWeekNames={isShortWeekNames}
377
380
  />
378
381
  </div>
379
382
  </div>
@@ -2,7 +2,7 @@ import React, {useEffect, useState} from 'react';
2
2
  import moment from 'moment-timezone';
3
3
  import cn from 'classnames';
4
4
 
5
- import {INTERVALS as intervals, CUSTOM_INTERVAL_KEY as customKey } from '../dependencies';
5
+ import {INTERVALS as intervals, CUSTOM_INTERVAL_KEY as customKey, CUSTOM_INTERVAL_KEY_TEXT } from '../dependencies';
6
6
 
7
7
  import SelectItem from './SelectItem';
8
8
  import Datepicker from './Datepicker';
@@ -25,6 +25,7 @@ const OpenedPart = React.forwardRef((props, ref) => {
25
25
  isCompare,
26
26
  setIsCompare,
27
27
  toggleOff,
28
+ isShortWeekNames
28
29
  } = props;
29
30
 
30
31
  const items = isCompact ? [...Object.keys(intervals)] : [...Object.keys(intervals), customKey];
@@ -76,7 +77,7 @@ const OpenedPart = React.forwardRef((props, ref) => {
76
77
  <SelectItem
77
78
  key={index}
78
79
  item={item}
79
- label={(txt?.labels && txt?.labels[item]) || intervals[item]?.label || item}
80
+ label={(txt?.labels && txt?.labels[item]) || intervals[item]?.label || (item === customKey ? CUSTOM_INTERVAL_KEY_TEXT : item )}
80
81
  isActive={activeInterval === item}
81
82
  onItemClick={() => handleItemClick(item.value || item)}
82
83
  disabled={item === customKey}
@@ -103,6 +104,7 @@ const OpenedPart = React.forwardRef((props, ref) => {
103
104
  isCompareHidden={isCompareHidden}
104
105
  limitRange={limitRange}
105
106
  setActiveInterval={setActiveInterval}
107
+ isShortWeekNames={isShortWeekNames}
106
108
  />
107
109
  )}
108
110
  </div>
@@ -1,8 +1,6 @@
1
1
  import React from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
- import icon from '../../../../../../assets/icons/check.svg'
5
-
6
4
  const SelectItem = ({ item, label, isActive, onItemClick, onMouseEnter, disabled }) => (
7
5
  <div
8
6
  className={cn(
@@ -130,6 +130,14 @@ export const getActualDateRange = inputDateRange => {
130
130
  }
131
131
  return null;
132
132
  })();
133
+ if (actualIntervalKey === ALL_TIME_KEY) return {
134
+ intervalKey: ALL_TIME_KEY,
135
+ start: null,
136
+ end: null,
137
+ compare: inputDateRange.compare,
138
+ startPrevDate: null,
139
+ endPrevDate:null
140
+ };
133
141
  const actualValues = {
134
142
  // intervalKey: inputDateRange.intervalKey || customIntervalKey,
135
143
  intervalKey: actualIntervalKey || CUSTOM_INTERVAL_KEY,
@@ -19,7 +19,8 @@ const RangeCalendar = props => {
19
19
  onHover = () => {},
20
20
  startPrevDate,
21
21
  endPrevDate,
22
- limitRange
22
+ limitRange,
23
+ isShortWeekNames
23
24
  } = props;
24
25
 
25
26
  const [days, setDays] = useState({});
@@ -100,6 +101,8 @@ const RangeCalendar = props => {
100
101
  setDate(moment(date).add(1, 'month').toDate());
101
102
  };
102
103
 
104
+ const getFormatedWeekName = input => isShortWeekNames ? input.charAt(0) : input;
105
+
103
106
  return (
104
107
  <div className={cn('range-calendar', className)}>
105
108
  <div className="range-calendar-header">
@@ -126,7 +129,7 @@ const RangeCalendar = props => {
126
129
  {[...Array(7).keys()].map(dayOfWeek => {
127
130
  return (
128
131
  <div key={`day-of-week_${dayOfWeek}`} className="range-calendar__day range-calendar__day--title">
129
- {moment().weekday(dayOfWeek).format('dd').charAt(0)}
132
+ {getFormatedWeekName(moment().weekday(dayOfWeek).format('dd'))}
130
133
  </div>
131
134
  );
132
135
  })}