intelicoreact 0.0.31 → 0.0.41
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.
- package/dist/Atomic/FormElements/Calendar/Calendar.js +134 -0
- package/dist/Atomic/FormElements/Calendar/Calendar.scss +543 -0
- package/dist/Atomic/FormElements/Calendar/Calendar.stories.js +75 -0
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +1 -1
- package/dist/Atomic/FormElements/Input/Input.js +91 -99
- package/dist/Atomic/FormElements/Input/Input.scss +16 -5
- package/dist/Atomic/FormElements/Input/Input.stories.js +32 -25
- package/dist/Atomic/UI/Accordion/Accordion.stories.js +1 -1
- package/dist/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +1 -1
- package/dist/Atomic/UI/Alert/Alert.stories.js +1 -1
- package/dist/Atomic/UI/Button/Button.js +1 -12
- package/dist/Atomic/UI/Button/Button.stories.js +5 -19
- package/dist/Atomic/UI/Hint/Hint.stories.js +1 -1
- package/dist/Atomic/UI/Price/Price.js +32 -0
- package/dist/Atomic/UI/Price/Price.stories.js +42 -0
- package/dist/Atomic/UI/Status/Status.stories.js +1 -1
- package/dist/Functions/useClickOutside.js +25 -0
- package/dist/scss/main.scss +2 -2
- package/package.json +7 -5
- package/src/Atomic/FormElements/Calendar/Calendar.js +106 -0
- package/src/Atomic/FormElements/Calendar/Calendar.scss +543 -0
- package/src/Atomic/FormElements/Calendar/Calendar.stories.js +38 -0
- package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +1 -1
- package/src/Atomic/FormElements/Input/Input.js +73 -72
- package/src/Atomic/FormElements/Input/Input.scss +16 -5
- package/src/Atomic/FormElements/Input/Input.stories.js +23 -27
- package/src/Atomic/UI/Accordion/Accordion.stories.js +1 -1
- package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +1 -1
- package/src/Atomic/UI/Alert/Alert.stories.js +1 -1
- package/src/Atomic/UI/Button/Button.js +1 -3
- package/src/Atomic/UI/Button/Button.stories.js +4 -19
- package/src/Atomic/UI/Hint/Hint.stories.js +1 -1
- package/src/Atomic/UI/Price/Price.js +19 -0
- package/src/Atomic/UI/Price/Price.stories.js +30 -0
- package/src/Atomic/UI/Status/Status.stories.js +1 -1
- package/src/Functions/useClickOutside.js +15 -0
- package/src/scss/main.scss +2 -2
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.PriceTemplate = exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _Price = _interopRequireDefault(require("./Price"));
|
|
13
|
+
|
|
14
|
+
global.lng = 'en';
|
|
15
|
+
var _default = {
|
|
16
|
+
title: 'UI/Price',
|
|
17
|
+
component: _Price.default,
|
|
18
|
+
argTypes: {
|
|
19
|
+
value: {
|
|
20
|
+
description: 'string'
|
|
21
|
+
},
|
|
22
|
+
unit: {
|
|
23
|
+
description: 'string'
|
|
24
|
+
},
|
|
25
|
+
unitAfter: {
|
|
26
|
+
description: 'boolean'
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
exports.default = _default;
|
|
31
|
+
|
|
32
|
+
var Template = function Template(args) {
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement(_Price.default, args);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var PriceTemplate = Template.bind({});
|
|
37
|
+
exports.PriceTemplate = PriceTemplate;
|
|
38
|
+
PriceTemplate.args = {
|
|
39
|
+
value: '15000',
|
|
40
|
+
unit: '$',
|
|
41
|
+
unitAfter: false
|
|
42
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useClickOutside = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var useClickOutside = function useClickOutside(ref, setOut, open) {
|
|
11
|
+
function handleClickOutside(event) {
|
|
12
|
+
if (ref.current && !ref.current.contains(event.target)) {
|
|
13
|
+
setOut(open);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
(0, _react.useEffect)(function () {
|
|
18
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
19
|
+
return function () {
|
|
20
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
21
|
+
};
|
|
22
|
+
}, [ref]);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.useClickOutside = useClickOutside;
|
package/dist/scss/main.scss
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "intelicoreact",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.41",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -10,13 +10,15 @@
|
|
|
10
10
|
"author": "Andrey Isakov",
|
|
11
11
|
"license": "ISC",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
13
|
+
"react-feather": "^2.0.9",
|
|
14
|
+
"react-input-mask": "^2.0.4",
|
|
15
|
+
"moment": "^2.29.1"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@babel/cli": "^7.15.7",
|
|
19
19
|
"@babel/core": "^7.15.5",
|
|
20
|
-
"@babel/preset-env": "^7.15.6"
|
|
20
|
+
"@babel/preset-env": "^7.15.6",
|
|
21
|
+
"@babel/polyfill": "^7.12.1",
|
|
22
|
+
"classnames": "^2.3.1"
|
|
21
23
|
}
|
|
22
24
|
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import cn from 'classnames';
|
|
2
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import moment from 'moment';
|
|
4
|
+
import { ChevronLeft, ChevronRight } from 'react-feather';
|
|
5
|
+
import './Calendar.scss';
|
|
6
|
+
|
|
7
|
+
export default function (props) {
|
|
8
|
+
const { date, setDate, allowPrev = true, allowNext = true } = props;
|
|
9
|
+
|
|
10
|
+
const [days, setDays] = useState({});
|
|
11
|
+
|
|
12
|
+
const selectedDay = moment(date);
|
|
13
|
+
const isError = 'Invalid date';
|
|
14
|
+
|
|
15
|
+
const title = useMemo(
|
|
16
|
+
() => (selectedDay.format('MMM') === isError ? isError : `${selectedDay.format('MMM')} ${moment(date).format('YYYY')}`),
|
|
17
|
+
[date]
|
|
18
|
+
);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const result = {};
|
|
21
|
+
const day = selectedDay.startOf('month');
|
|
22
|
+
const daysInMonth = day.daysInMonth();
|
|
23
|
+
for (let d = 0; d < daysInMonth; d += 1) {
|
|
24
|
+
let week = day.week();
|
|
25
|
+
if (day.month() === 11 && week === 1) week = 53;
|
|
26
|
+
if (day.month() === 0 && week === 53) week = 0;
|
|
27
|
+
if (!Object.prototype.hasOwnProperty.call(result, week)) {
|
|
28
|
+
result[week] = {};
|
|
29
|
+
}
|
|
30
|
+
result[week][day.weekday()] = { date: day.toDate() };
|
|
31
|
+
day.add(1, 'd');
|
|
32
|
+
}
|
|
33
|
+
setDays(result);
|
|
34
|
+
}, [date]);
|
|
35
|
+
|
|
36
|
+
const renderDay = (week, dayOfWeek) => {
|
|
37
|
+
const day = days[week][dayOfWeek];
|
|
38
|
+
if (!day) return <div className="calendar__day" />;
|
|
39
|
+
const isFutureDay = day && moment(day.date).isAfter(moment(), 'day');
|
|
40
|
+
|
|
41
|
+
const classNames = cn(
|
|
42
|
+
'calendar__day',
|
|
43
|
+
{ 'calendar__day--clickable': day },
|
|
44
|
+
{ 'calendar__day--disabled': isFutureDay },
|
|
45
|
+
{ 'calendar__day--selected': selectedDay.format() === moment(day.date).format() }
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<div
|
|
50
|
+
key={`${week}_${dayOfWeek}`}
|
|
51
|
+
className={classNames}
|
|
52
|
+
onClick={day && !isFutureDay ? () => setDate(moment(day.date).format('L')) : null}
|
|
53
|
+
// onMouseOver={day && !isFutureDay ? () => onHover(day.date) : null}
|
|
54
|
+
// onMouseLeave={() => onHover(null)}
|
|
55
|
+
>
|
|
56
|
+
{day && day.date.getDate()}
|
|
57
|
+
</div>
|
|
58
|
+
);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const handlePrev = () => {
|
|
62
|
+
setDate(moment(date).subtract(1, 'month').format('L'));
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const handleNext = () => {
|
|
66
|
+
setDate(moment(date).add(1, 'month').format('L'));
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
return (
|
|
70
|
+
<div className="calendar">
|
|
71
|
+
<div className="calendar-header">
|
|
72
|
+
<div className="calendar-header__prev">
|
|
73
|
+
{allowPrev && (
|
|
74
|
+
<div onClick={handlePrev}>
|
|
75
|
+
<ChevronLeft />
|
|
76
|
+
</div>
|
|
77
|
+
)}
|
|
78
|
+
</div>
|
|
79
|
+
<div className="calendar-header__title">{title}</div>
|
|
80
|
+
<div className="calendar-header__next">
|
|
81
|
+
{allowNext && (
|
|
82
|
+
<div onClick={handleNext}>
|
|
83
|
+
<ChevronRight />
|
|
84
|
+
</div>
|
|
85
|
+
)}
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
<div className="calendar__week">
|
|
89
|
+
{[...Array(7).keys()].map((dayOfWeek) => {
|
|
90
|
+
return (
|
|
91
|
+
<div key={`day-of-week_${dayOfWeek}`} className="calendar__day calendar__day--title">
|
|
92
|
+
{moment().weekday(dayOfWeek).format('dd').charAt(0)}
|
|
93
|
+
</div>
|
|
94
|
+
);
|
|
95
|
+
})}
|
|
96
|
+
</div>
|
|
97
|
+
{Object.keys(days).map((week, index) => (
|
|
98
|
+
<div key={`week_${index}`} className="calendar__week">
|
|
99
|
+
{[...Array(7).keys()].map((dayOfWeek) => (
|
|
100
|
+
<React.Fragment key={`calendar-day--${dayOfWeek}`}>{renderDay(week, dayOfWeek)}</React.Fragment>
|
|
101
|
+
))}
|
|
102
|
+
</div>
|
|
103
|
+
))}
|
|
104
|
+
</div>
|
|
105
|
+
);
|
|
106
|
+
}
|