@chayns-components/date 5.0.0-beta.433
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/LICENSE +21 -0
- package/README.md +34 -0
- package/lib/components/calendar/Calendar.d.ts +36 -0
- package/lib/components/calendar/Calendar.js +141 -0
- package/lib/components/calendar/Calendar.js.map +1 -0
- package/lib/components/calendar/Calendar.styles.d.ts +4 -0
- package/lib/components/calendar/Calendar.styles.js +20 -0
- package/lib/components/calendar/Calendar.styles.js.map +1 -0
- package/lib/components/calendar/month-wrapper/MonthWrapper.d.ts +17 -0
- package/lib/components/calendar/month-wrapper/MonthWrapper.js +137 -0
- package/lib/components/calendar/month-wrapper/MonthWrapper.js.map +1 -0
- package/lib/components/calendar/month-wrapper/MonthWrapper.styles.d.ts +271 -0
- package/lib/components/calendar/month-wrapper/MonthWrapper.styles.js +24 -0
- package/lib/components/calendar/month-wrapper/MonthWrapper.styles.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/Month.d.ts +14 -0
- package/lib/components/calendar/month-wrapper/month/Month.js +43 -0
- package/lib/components/calendar/month-wrapper/month/Month.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/Month.styles.d.ts +4 -0
- package/lib/components/calendar/month-wrapper/month/Month.styles.js +23 -0
- package/lib/components/calendar/month-wrapper/month/Month.styles.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.d.ts +12 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +60 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.styles.d.ts +2 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.styles.js +17 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.styles.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/Day.d.ts +12 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +66 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/Day.styles.d.ts +15 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/Day.styles.js +75 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/Day.styles.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/category/Category.d.ts +6 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/category/Category.js +20 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/category/Category.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/category/Category.styles.d.ts +7 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/category/Category.styles.js +21 -0
- package/lib/components/calendar/month-wrapper/month/day-wrapper/day/category/Category.styles.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.d.ts +7 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +45 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.styles.d.ts +2 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.styles.js +16 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.styles.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.d.ts +6 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.js +18 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.js.map +1 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.styles.d.ts +4 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.styles.js +19 -0
- package/lib/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.styles.js.map +1 -0
- package/lib/components/date-info/DateInfo.d.ts +37 -0
- package/lib/components/date-info/DateInfo.js +110 -0
- package/lib/components/date-info/DateInfo.js.map +1 -0
- package/lib/components/opening-times/OpeningTimes.d.ts +27 -0
- package/lib/components/opening-times/OpeningTimes.js +135 -0
- package/lib/components/opening-times/OpeningTimes.js.map +1 -0
- package/lib/components/opening-times/OpeningTimes.styles.d.ts +8 -0
- package/lib/components/opening-times/OpeningTimes.styles.js +19 -0
- package/lib/components/opening-times/OpeningTimes.styles.js.map +1 -0
- package/lib/components/opening-times/opening-inputs/OpeningInputs.d.ts +12 -0
- package/lib/components/opening-times/opening-inputs/OpeningInputs.js +94 -0
- package/lib/components/opening-times/opening-inputs/OpeningInputs.js.map +1 -0
- package/lib/components/opening-times/opening-inputs/OpeningInputs.styles.d.ts +2 -0
- package/lib/components/opening-times/opening-inputs/OpeningInputs.styles.js +13 -0
- package/lib/components/opening-times/opening-inputs/OpeningInputs.styles.js.map +1 -0
- package/lib/components/opening-times/opening-inputs/opening-input/OpeningInput.d.ts +14 -0
- package/lib/components/opening-times/opening-inputs/opening-input/OpeningInput.js +100 -0
- package/lib/components/opening-times/opening-inputs/opening-input/OpeningInput.js.map +1 -0
- package/lib/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.d.ts +274 -0
- package/lib/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.js +46 -0
- package/lib/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.js.map +1 -0
- package/lib/constants/dateInfo.d.ts +22 -0
- package/lib/constants/dateInfo.js +629 -0
- package/lib/constants/dateInfo.js.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +28 -0
- package/lib/index.js.map +1 -0
- package/lib/types/calendar.d.ts +32 -0
- package/lib/types/calendar.js +22 -0
- package/lib/types/calendar.js.map +1 -0
- package/lib/types/openingTimes.d.ts +28 -0
- package/lib/types/openingTimes.js +13 -0
- package/lib/types/openingTimes.js.map +1 -0
- package/lib/utils/calendar.d.ts +15 -0
- package/lib/utils/calendar.js +58 -0
- package/lib/utils/calendar.js.map +1 -0
- package/lib/utils/dateInfo.d.ts +55 -0
- package/lib/utils/dateInfo.js +364 -0
- package/lib/utils/dateInfo.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _core = require("@chayns-components/core");
|
|
9
|
+
var _OpeningInputs = _interopRequireDefault(require("./opening-inputs/OpeningInputs"));
|
|
10
|
+
var _OpeningTimes = require("./OpeningTimes.styles");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
+
const OpeningTimes = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
openingTimes,
|
|
17
|
+
weekdays,
|
|
18
|
+
onChange,
|
|
19
|
+
onTimeAdd,
|
|
20
|
+
onTimeRemove
|
|
21
|
+
} = _ref;
|
|
22
|
+
const [newOpeningTimes, setNewOpeningTimes] = (0, _react.useState)();
|
|
23
|
+
(0, _react.useEffect)(() => {
|
|
24
|
+
setNewOpeningTimes(openingTimes);
|
|
25
|
+
}, [openingTimes]);
|
|
26
|
+
const handleCheckBoxChange = (0, _react.useCallback)(id => {
|
|
27
|
+
setNewOpeningTimes(prevOpeningTimes => {
|
|
28
|
+
const updatedOpeningTimes = (prevOpeningTimes ?? []).map(openingTime => {
|
|
29
|
+
if (openingTime.id === id) {
|
|
30
|
+
return {
|
|
31
|
+
...openingTime,
|
|
32
|
+
isDisabled: !openingTime.isDisabled
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return openingTime;
|
|
36
|
+
});
|
|
37
|
+
if (typeof onChange === 'function') {
|
|
38
|
+
onChange({
|
|
39
|
+
enabledDays: updatedOpeningTimes.filter(item => !item.isDisabled).map(item => item.id)
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return updatedOpeningTimes;
|
|
43
|
+
});
|
|
44
|
+
}, [onChange]);
|
|
45
|
+
const handleChange = (0, _react.useCallback)((newTime, id) => {
|
|
46
|
+
setNewOpeningTimes(prevOpeningTimes => {
|
|
47
|
+
const updatedOpeningTimes = (prevOpeningTimes ?? []).map(openingTime => {
|
|
48
|
+
if (openingTime.id === id) {
|
|
49
|
+
const newTimes = openingTime.times.map(time => {
|
|
50
|
+
if (time.id === newTime.id) {
|
|
51
|
+
return newTime;
|
|
52
|
+
}
|
|
53
|
+
return time;
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
...openingTime,
|
|
57
|
+
times: newTimes
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return openingTime;
|
|
61
|
+
});
|
|
62
|
+
if (typeof onChange === 'function') {
|
|
63
|
+
onChange({
|
|
64
|
+
time: newTime
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return updatedOpeningTimes;
|
|
68
|
+
});
|
|
69
|
+
}, [onChange]);
|
|
70
|
+
const handleAdd = (0, _react.useCallback)((time, id) => {
|
|
71
|
+
setNewOpeningTimes(prevOpeningTimes => (prevOpeningTimes ?? []).map(openingTime => {
|
|
72
|
+
if (openingTime.id === id) {
|
|
73
|
+
return {
|
|
74
|
+
...openingTime,
|
|
75
|
+
times: [...openingTime.times, time]
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return openingTime;
|
|
79
|
+
}));
|
|
80
|
+
if (typeof onTimeAdd === 'function') {
|
|
81
|
+
onTimeAdd({
|
|
82
|
+
dayId: id,
|
|
83
|
+
time
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}, [onTimeAdd]);
|
|
87
|
+
const handleRemove = (0, _react.useCallback)(id => {
|
|
88
|
+
setNewOpeningTimes(prevOpeningTimes => (prevOpeningTimes ?? []).map(openingTime => {
|
|
89
|
+
const newTimes = openingTime.times.filter(time => time.id !== id);
|
|
90
|
+
return {
|
|
91
|
+
...openingTime,
|
|
92
|
+
times: newTimes
|
|
93
|
+
};
|
|
94
|
+
}));
|
|
95
|
+
if (typeof onTimeRemove === 'function') {
|
|
96
|
+
onTimeRemove(id);
|
|
97
|
+
}
|
|
98
|
+
}, [onTimeRemove]);
|
|
99
|
+
const content = (0, _react.useMemo)(() => {
|
|
100
|
+
const items = [];
|
|
101
|
+
if (!newOpeningTimes) {
|
|
102
|
+
return items;
|
|
103
|
+
}
|
|
104
|
+
newOpeningTimes.forEach(_ref2 => {
|
|
105
|
+
let {
|
|
106
|
+
times,
|
|
107
|
+
id,
|
|
108
|
+
weekdayId,
|
|
109
|
+
isDisabled
|
|
110
|
+
} = _ref2;
|
|
111
|
+
const weekday = weekdays.find(weekDay => weekDay.id === weekdayId)?.name;
|
|
112
|
+
if (!weekday) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
items.push( /*#__PURE__*/_react.default.createElement(_OpeningTimes.StyledOpeningTimesWrapper, {
|
|
116
|
+
key: `openingTimes__${id}`
|
|
117
|
+
}, /*#__PURE__*/_react.default.createElement(_core.Checkbox, {
|
|
118
|
+
isChecked: !isDisabled,
|
|
119
|
+
onChange: () => handleCheckBoxChange(id)
|
|
120
|
+
}, weekday), /*#__PURE__*/_react.default.createElement(_OpeningInputs.default, {
|
|
121
|
+
id: id,
|
|
122
|
+
times: times,
|
|
123
|
+
isDisabled: isDisabled,
|
|
124
|
+
onChange: newTime => handleChange(newTime, id),
|
|
125
|
+
onRemove: handleRemove,
|
|
126
|
+
onAdd: handleAdd
|
|
127
|
+
})));
|
|
128
|
+
});
|
|
129
|
+
return items;
|
|
130
|
+
}, [handleAdd, handleChange, handleCheckBoxChange, handleRemove, newOpeningTimes, weekdays]);
|
|
131
|
+
return (0, _react.useMemo)(() => /*#__PURE__*/_react.default.createElement(_OpeningTimes.StyledOpeningTimes, null, content), [content]);
|
|
132
|
+
};
|
|
133
|
+
OpeningTimes.displayName = 'OpeningTimes';
|
|
134
|
+
var _default = exports.default = OpeningTimes;
|
|
135
|
+
//# sourceMappingURL=OpeningTimes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpeningTimes.js","names":["_react","_interopRequireWildcard","require","_core","_OpeningInputs","_interopRequireDefault","_OpeningTimes","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","OpeningTimes","_ref","openingTimes","weekdays","onChange","onTimeAdd","onTimeRemove","newOpeningTimes","setNewOpeningTimes","useState","useEffect","handleCheckBoxChange","useCallback","id","prevOpeningTimes","updatedOpeningTimes","map","openingTime","isDisabled","enabledDays","filter","item","handleChange","newTime","newTimes","times","time","handleAdd","dayId","handleRemove","content","useMemo","items","forEach","_ref2","weekdayId","weekday","find","weekDay","name","push","createElement","StyledOpeningTimesWrapper","key","Checkbox","isChecked","onRemove","onAdd","StyledOpeningTimes","displayName","_default","exports"],"sources":["../../../src/components/opening-times/OpeningTimes.tsx"],"sourcesContent":["import React, { FC, useCallback, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport type { OnChange, OnTimeAdd, OpeningTime, Time, Weekday } from '../../types/openingTimes';\nimport { Checkbox } from '@chayns-components/core';\nimport OpeningInputs from './opening-inputs/OpeningInputs';\nimport { StyledOpeningTimes, StyledOpeningTimesWrapper } from './OpeningTimes.styles';\n\nexport type OpeningTimesProps = {\n /**\n * Function to be executed when a time is changed or a day is enabled/disabled.\n * @param openingTimes\n */\n onChange?: ({ time, enabledDays }: OnChange) => void;\n /**\n * Function to be executed when a time is added.\n */\n onTimeAdd?: ({ time, dayId }: OnTimeAdd) => void;\n /**\n * Function to be executed when a time is removed.\n */\n onTimeRemove?: (id: string) => void;\n /**\n * The opening times corresponding to its weekday.\n */\n openingTimes: OpeningTime[];\n /**\n * The weekdays that should be displayed.\n */\n weekdays: Weekday[];\n};\n\nconst OpeningTimes: FC<OpeningTimesProps> = ({\n openingTimes,\n weekdays,\n onChange,\n onTimeAdd,\n onTimeRemove,\n}) => {\n const [newOpeningTimes, setNewOpeningTimes] = useState<OpeningTime[]>();\n\n useEffect(() => {\n setNewOpeningTimes(openingTimes);\n }, [openingTimes]);\n\n const handleCheckBoxChange = useCallback(\n (id: string) => {\n setNewOpeningTimes((prevOpeningTimes) => {\n const updatedOpeningTimes = (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n return { ...openingTime, isDisabled: !openingTime.isDisabled };\n }\n return openingTime;\n });\n\n if (typeof onChange === 'function') {\n onChange({\n enabledDays: updatedOpeningTimes\n .filter((item) => !item.isDisabled)\n .map((item) => item.id),\n });\n }\n\n return updatedOpeningTimes;\n });\n },\n [onChange],\n );\n\n const handleChange = useCallback(\n (newTime: Time, id: string) => {\n setNewOpeningTimes((prevOpeningTimes) => {\n const updatedOpeningTimes = (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n const newTimes = openingTime.times.map((time) => {\n if (time.id === newTime.id) {\n return newTime;\n }\n\n return time;\n });\n\n return { ...openingTime, times: newTimes };\n }\n return openingTime;\n });\n\n if (typeof onChange === 'function') {\n onChange({ time: newTime });\n }\n\n return updatedOpeningTimes;\n });\n },\n [onChange],\n );\n\n const handleAdd = useCallback(\n (time: Time, id: string) => {\n setNewOpeningTimes((prevOpeningTimes) =>\n (prevOpeningTimes ?? []).map((openingTime) => {\n if (openingTime.id === id) {\n return { ...openingTime, times: [...openingTime.times, time] };\n }\n return openingTime;\n }),\n );\n\n if (typeof onTimeAdd === 'function') {\n onTimeAdd({ dayId: id, time });\n }\n },\n [onTimeAdd],\n );\n\n const handleRemove = useCallback(\n (id: string) => {\n setNewOpeningTimes((prevOpeningTimes) =>\n (prevOpeningTimes ?? []).map((openingTime) => {\n const newTimes = openingTime.times.filter((time) => time.id !== id);\n\n return { ...openingTime, times: newTimes };\n }),\n );\n\n if (typeof onTimeRemove === 'function') {\n onTimeRemove(id);\n }\n },\n [onTimeRemove],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!newOpeningTimes) {\n return items;\n }\n\n newOpeningTimes.forEach(({ times, id, weekdayId, isDisabled }) => {\n const weekday = weekdays.find((weekDay) => weekDay.id === weekdayId)?.name;\n\n if (!weekday) {\n return;\n }\n\n items.push(\n <StyledOpeningTimesWrapper key={`openingTimes__${id}`}>\n <Checkbox isChecked={!isDisabled} onChange={() => handleCheckBoxChange(id)}>\n {weekday}\n </Checkbox>\n <OpeningInputs\n id={id}\n times={times}\n isDisabled={isDisabled}\n onChange={(newTime) => handleChange(newTime, id)}\n onRemove={handleRemove}\n onAdd={handleAdd}\n />\n </StyledOpeningTimesWrapper>,\n );\n });\n\n return items;\n }, [handleAdd, handleChange, handleCheckBoxChange, handleRemove, newOpeningTimes, weekdays]);\n\n return useMemo(() => <StyledOpeningTimes>{content}</StyledOpeningTimes>, [content]);\n};\n\nOpeningTimes.displayName = 'OpeningTimes';\n\nexport default OpeningTimes;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { WithTheme } from '@chayns-components/core';
|
|
3
|
+
type StyledSliderButtonProps = WithTheme<{
|
|
4
|
+
isDisabled?: boolean;
|
|
5
|
+
}>;
|
|
6
|
+
export declare const StyledOpeningTimes: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, StyledSliderButtonProps>>;
|
|
7
|
+
export declare const StyledOpeningTimesWrapper: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StyledOpeningTimesWrapper = exports.StyledOpeningTimes = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
const StyledOpeningTimes = exports.StyledOpeningTimes = _styledComponents.default.div`
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
gap: 8px;
|
|
13
|
+
`;
|
|
14
|
+
const StyledOpeningTimesWrapper = exports.StyledOpeningTimesWrapper = _styledComponents.default.div`
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: baseline;
|
|
17
|
+
justify-content: space-between;
|
|
18
|
+
`;
|
|
19
|
+
//# sourceMappingURL=OpeningTimes.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpeningTimes.styles.js","names":["_styledComponents","_interopRequireDefault","require","obj","__esModule","default","StyledOpeningTimes","exports","styled","div","StyledOpeningTimesWrapper"],"sources":["../../../src/components/opening-times/OpeningTimes.styles.ts"],"sourcesContent":["import styled from 'styled-components';\nimport type { WithTheme } from '@chayns-components/core';\n\ntype StyledSliderButtonProps = WithTheme<{ isDisabled?: boolean }>;\n\nexport const StyledOpeningTimes = styled.div<StyledSliderButtonProps>`\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\n\nexport const StyledOpeningTimesWrapper = styled.div`\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAKhC,MAAMG,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGE,yBAAM,CAACC,GAA6B;AACtE;AACA;AACA;AACA,CAAC;AAEM,MAAMC,yBAAyB,GAAAH,OAAA,CAAAG,yBAAA,GAAGF,yBAAM,CAACC,GAAI;AACpD;AACA;AACA;AACA,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { type Time } from '../../../types/openingTimes';
|
|
3
|
+
export type OpeningInputsProps = {
|
|
4
|
+
times: Time[];
|
|
5
|
+
isDisabled?: boolean;
|
|
6
|
+
onChange: (time: Time) => void;
|
|
7
|
+
onAdd: (time: Time, id: string) => void;
|
|
8
|
+
onRemove: (id: Time['id']) => void;
|
|
9
|
+
id: string;
|
|
10
|
+
};
|
|
11
|
+
declare const OpeningInputs: FC<OpeningInputsProps>;
|
|
12
|
+
export default OpeningInputs;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _framerMotion = require("framer-motion");
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _uuid = require("uuid");
|
|
10
|
+
var _openingTimes = require("../../../types/openingTimes");
|
|
11
|
+
var _OpeningInput = _interopRequireDefault(require("./opening-input/OpeningInput"));
|
|
12
|
+
var _OpeningInputs = require("./OpeningInputs.styles");
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
const OpeningInputs = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
times,
|
|
19
|
+
isDisabled,
|
|
20
|
+
onRemove,
|
|
21
|
+
onAdd,
|
|
22
|
+
id,
|
|
23
|
+
onChange
|
|
24
|
+
} = _ref;
|
|
25
|
+
const [newTimes, setNewTimes] = (0, _react.useState)();
|
|
26
|
+
(0, _react.useEffect)(() => {
|
|
27
|
+
setNewTimes(times);
|
|
28
|
+
}, [times]);
|
|
29
|
+
const handleAdd = (0, _react.useCallback)(() => {
|
|
30
|
+
const defaultTime = {
|
|
31
|
+
start: '08:00',
|
|
32
|
+
end: '18:00',
|
|
33
|
+
id: (0, _uuid.v4)()
|
|
34
|
+
};
|
|
35
|
+
setNewTimes(prevState => prevState ? [...prevState, defaultTime] : [defaultTime]);
|
|
36
|
+
onAdd(defaultTime, id);
|
|
37
|
+
}, [id, onAdd]);
|
|
38
|
+
const handleRemove = (0, _react.useCallback)(timeId => {
|
|
39
|
+
setNewTimes(prevState => (prevState ?? []).filter(time => time.id !== timeId));
|
|
40
|
+
onRemove(timeId);
|
|
41
|
+
}, [onRemove]);
|
|
42
|
+
const handleChange = (0, _react.useCallback)(newTime => {
|
|
43
|
+
setNewTimes(prevState => {
|
|
44
|
+
const updatedTimes = (prevState ?? []).map(time => {
|
|
45
|
+
if (time.id === newTime.id) {
|
|
46
|
+
return newTime;
|
|
47
|
+
}
|
|
48
|
+
return time;
|
|
49
|
+
});
|
|
50
|
+
onChange(newTime);
|
|
51
|
+
return updatedTimes;
|
|
52
|
+
});
|
|
53
|
+
}, [onChange]);
|
|
54
|
+
const content = (0, _react.useMemo)(() => {
|
|
55
|
+
const items = [];
|
|
56
|
+
if (!newTimes) {
|
|
57
|
+
return items;
|
|
58
|
+
}
|
|
59
|
+
newTimes.forEach((_ref2, index) => {
|
|
60
|
+
let {
|
|
61
|
+
end,
|
|
62
|
+
start,
|
|
63
|
+
id: timeId
|
|
64
|
+
} = _ref2;
|
|
65
|
+
if (index > 1) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
let buttonType = _openingTimes.OpeningTimesButtonType.NONE;
|
|
69
|
+
if (index === 0 && times.length === 1 && !isDisabled) {
|
|
70
|
+
buttonType = _openingTimes.OpeningTimesButtonType.ADD;
|
|
71
|
+
} else if (index === 1 && !isDisabled) {
|
|
72
|
+
buttonType = _openingTimes.OpeningTimesButtonType.REMOVE;
|
|
73
|
+
}
|
|
74
|
+
items.push( /*#__PURE__*/_react.default.createElement(_OpeningInput.default, {
|
|
75
|
+
key: `opening-times-input__${id}.${timeId}`,
|
|
76
|
+
start: start,
|
|
77
|
+
id: timeId,
|
|
78
|
+
end: end,
|
|
79
|
+
isDisabled: isDisabled,
|
|
80
|
+
buttonType: buttonType,
|
|
81
|
+
onAdd: handleAdd,
|
|
82
|
+
onChange: time => handleChange(time),
|
|
83
|
+
onRemove: () => handleRemove(timeId)
|
|
84
|
+
}));
|
|
85
|
+
});
|
|
86
|
+
return items;
|
|
87
|
+
}, [handleAdd, handleChange, handleRemove, id, isDisabled, newTimes, times.length]);
|
|
88
|
+
return (0, _react.useMemo)(() => /*#__PURE__*/_react.default.createElement(_OpeningInputs.StyledOpeningInputs, null, /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, {
|
|
89
|
+
initial: false
|
|
90
|
+
}, content)), [content]);
|
|
91
|
+
};
|
|
92
|
+
OpeningInputs.displayName = 'OpeningInputs';
|
|
93
|
+
var _default = exports.default = OpeningInputs;
|
|
94
|
+
//# sourceMappingURL=OpeningInputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpeningInputs.js","names":["_framerMotion","require","_react","_interopRequireWildcard","_uuid","_openingTimes","_OpeningInput","_interopRequireDefault","_OpeningInputs","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","OpeningInputs","_ref","times","isDisabled","onRemove","onAdd","id","onChange","newTimes","setNewTimes","useState","useEffect","handleAdd","useCallback","defaultTime","start","end","uuidV4","prevState","handleRemove","timeId","filter","time","handleChange","newTime","updatedTimes","map","content","useMemo","items","forEach","_ref2","index","buttonType","OpeningTimesButtonType","NONE","length","ADD","REMOVE","push","createElement","key","StyledOpeningInputs","AnimatePresence","initial","displayName","_default","exports"],"sources":["../../../../src/components/opening-times/opening-inputs/OpeningInputs.tsx"],"sourcesContent":["import { AnimatePresence } from 'framer-motion';\nimport React, { FC, useCallback, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { OpeningTimesButtonType, type Time } from '../../../types/openingTimes';\nimport OpeningInput from './opening-input/OpeningInput';\nimport { StyledOpeningInputs } from './OpeningInputs.styles';\n\nexport type OpeningInputsProps = {\n times: Time[];\n isDisabled?: boolean;\n onChange: (time: Time) => void;\n onAdd: (time: Time, id: string) => void;\n onRemove: (id: Time['id']) => void;\n id: string;\n};\n\nconst OpeningInputs: FC<OpeningInputsProps> = ({\n times,\n isDisabled,\n onRemove,\n onAdd,\n id,\n onChange,\n}) => {\n const [newTimes, setNewTimes] = useState<Time[]>();\n\n useEffect(() => {\n setNewTimes(times);\n }, [times]);\n\n const handleAdd = useCallback(() => {\n const defaultTime: Time = { start: '08:00', end: '18:00', id: uuidV4() };\n\n setNewTimes((prevState) => (prevState ? [...prevState, defaultTime] : [defaultTime]));\n\n onAdd(defaultTime, id);\n }, [id, onAdd]);\n\n const handleRemove = useCallback(\n (timeId: string) => {\n setNewTimes((prevState) => (prevState ?? []).filter((time) => time.id !== timeId));\n\n onRemove(timeId);\n },\n [onRemove],\n );\n\n const handleChange = useCallback(\n (newTime: Time) => {\n setNewTimes((prevState) => {\n const updatedTimes = (prevState ?? []).map((time) => {\n if (time.id === newTime.id) {\n return newTime;\n }\n return time;\n });\n\n onChange(newTime);\n\n return updatedTimes;\n });\n },\n [onChange],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!newTimes) {\n return items;\n }\n\n newTimes.forEach(({ end, start, id: timeId }, index) => {\n if (index > 1) {\n return;\n }\n\n let buttonType = OpeningTimesButtonType.NONE;\n\n if (index === 0 && times.length === 1 && !isDisabled) {\n buttonType = OpeningTimesButtonType.ADD;\n } else if (index === 1 && !isDisabled) {\n buttonType = OpeningTimesButtonType.REMOVE;\n }\n\n items.push(\n <OpeningInput\n key={`opening-times-input__${id}.${timeId}`}\n start={start}\n id={timeId}\n end={end}\n isDisabled={isDisabled}\n buttonType={buttonType}\n onAdd={handleAdd}\n onChange={(time) => handleChange(time)}\n onRemove={() => handleRemove(timeId)}\n />,\n );\n });\n\n return items;\n }, [handleAdd, handleChange, handleRemove, id, isDisabled, newTimes, times.length]);\n\n return useMemo(\n () => (\n <StyledOpeningInputs>\n <AnimatePresence initial={false}>{content}</AnimatePresence>\n </StyledOpeningInputs>\n ),\n [content],\n );\n};\n\nOpeningInputs.displayName = 'OpeningInputs';\n\nexport default OpeningInputs;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const StyledOpeningInputs: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StyledOpeningInputs = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
const StyledOpeningInputs = exports.StyledOpeningInputs = _styledComponents.default.div`
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
`;
|
|
13
|
+
//# sourceMappingURL=OpeningInputs.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpeningInputs.styles.js","names":["_styledComponents","_interopRequireDefault","require","obj","__esModule","default","StyledOpeningInputs","exports","styled","div"],"sources":["../../../../src/components/opening-times/opening-inputs/OpeningInputs.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledOpeningInputs = styled.div`\n display: flex;\n flex-direction: column;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhC,MAAMG,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAGE,yBAAM,CAACC,GAAI;AAC9C;AACA;AACA,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { OpeningTimesButtonType, type Time } from '../../../../types/openingTimes';
|
|
3
|
+
export type OpeningInputProps = {
|
|
4
|
+
start: Time['start'];
|
|
5
|
+
end: Time['end'];
|
|
6
|
+
isDisabled?: boolean;
|
|
7
|
+
id: string;
|
|
8
|
+
buttonType: OpeningTimesButtonType;
|
|
9
|
+
onAdd: () => void;
|
|
10
|
+
onRemove: () => void;
|
|
11
|
+
onChange: (time: Time) => void;
|
|
12
|
+
};
|
|
13
|
+
declare const OpeningInput: FC<OpeningInputProps>;
|
|
14
|
+
export default OpeningInput;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _openingTimes = require("../../../../types/openingTimes");
|
|
9
|
+
var _core = require("@chayns-components/core");
|
|
10
|
+
var _OpeningInput = require("./OpeningInput.styles");
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
const OpeningInput = _ref => {
|
|
14
|
+
let {
|
|
15
|
+
end,
|
|
16
|
+
start,
|
|
17
|
+
isDisabled,
|
|
18
|
+
buttonType,
|
|
19
|
+
onRemove,
|
|
20
|
+
onAdd,
|
|
21
|
+
onChange,
|
|
22
|
+
id
|
|
23
|
+
} = _ref;
|
|
24
|
+
const [startTime, setStartTime] = (0, _react.useState)(start);
|
|
25
|
+
const [endTime, setEndTime] = (0, _react.useState)(end);
|
|
26
|
+
const button = (0, _react.useMemo)(() => {
|
|
27
|
+
switch (buttonType) {
|
|
28
|
+
case _openingTimes.OpeningTimesButtonType.ADD:
|
|
29
|
+
return /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputButtonWrapper, {
|
|
30
|
+
onClick: onAdd
|
|
31
|
+
}, /*#__PURE__*/_react.default.createElement(_core.Icon, {
|
|
32
|
+
icons: ['ts-plus'],
|
|
33
|
+
size: 15
|
|
34
|
+
}));
|
|
35
|
+
case _openingTimes.OpeningTimesButtonType.REMOVE:
|
|
36
|
+
return /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputButtonWrapper, {
|
|
37
|
+
onClick: onRemove
|
|
38
|
+
}, /*#__PURE__*/_react.default.createElement(_core.Icon, {
|
|
39
|
+
icons: ['ts-wrong'],
|
|
40
|
+
size: 15
|
|
41
|
+
}));
|
|
42
|
+
default:
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputPseudoButton, null);
|
|
44
|
+
}
|
|
45
|
+
}, [buttonType, onAdd, onRemove]);
|
|
46
|
+
const handleStartTimeBlur = (0, _react.useCallback)((value, isInvalid) => {
|
|
47
|
+
if (isInvalid || typeof value === 'number' || !value) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
setStartTime(value);
|
|
51
|
+
onChange({
|
|
52
|
+
end: endTime,
|
|
53
|
+
start: value,
|
|
54
|
+
id
|
|
55
|
+
});
|
|
56
|
+
}, [endTime, id, onChange]);
|
|
57
|
+
const handleEndTimeBlur = (0, _react.useCallback)((value, isInvalid) => {
|
|
58
|
+
if (isInvalid || typeof value === 'number' || !value) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
setEndTime(value);
|
|
62
|
+
onChange({
|
|
63
|
+
end: value,
|
|
64
|
+
start: startTime,
|
|
65
|
+
id
|
|
66
|
+
});
|
|
67
|
+
}, [id, onChange, startTime]);
|
|
68
|
+
return (0, _react.useMemo)(() => /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInput, {
|
|
69
|
+
key: id,
|
|
70
|
+
animate: {
|
|
71
|
+
opacity: 1,
|
|
72
|
+
height: 'auto'
|
|
73
|
+
},
|
|
74
|
+
initial: {
|
|
75
|
+
opacity: 0,
|
|
76
|
+
height: 0
|
|
77
|
+
},
|
|
78
|
+
exit: {
|
|
79
|
+
opacity: 0,
|
|
80
|
+
height: 0
|
|
81
|
+
}
|
|
82
|
+
}, /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputWrapper, null, /*#__PURE__*/_react.default.createElement(_core.NumberInput, {
|
|
83
|
+
shouldShowOnlyBottomBorder: true,
|
|
84
|
+
isTimeInput: true,
|
|
85
|
+
value: startTime,
|
|
86
|
+
onBlur: handleStartTimeBlur,
|
|
87
|
+
isDisabled: isDisabled
|
|
88
|
+
})), /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputText, {
|
|
89
|
+
isDisabled: isDisabled
|
|
90
|
+
}, "-"), /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputWrapper, null, /*#__PURE__*/_react.default.createElement(_core.NumberInput, {
|
|
91
|
+
shouldShowOnlyBottomBorder: true,
|
|
92
|
+
isTimeInput: true,
|
|
93
|
+
value: endTime,
|
|
94
|
+
onBlur: handleEndTimeBlur,
|
|
95
|
+
isDisabled: isDisabled
|
|
96
|
+
})), button), [button, endTime, handleEndTimeBlur, handleStartTimeBlur, id, isDisabled, startTime]);
|
|
97
|
+
};
|
|
98
|
+
OpeningInput.displayName = 'OpeningInput';
|
|
99
|
+
var _default = exports.default = OpeningInput;
|
|
100
|
+
//# sourceMappingURL=OpeningInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpeningInput.js","names":["_react","_interopRequireWildcard","require","_openingTimes","_core","_OpeningInput","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","OpeningInput","_ref","end","start","isDisabled","buttonType","onRemove","onAdd","onChange","id","startTime","setStartTime","useState","endTime","setEndTime","button","useMemo","OpeningTimesButtonType","ADD","createElement","StyledOpeningInputButtonWrapper","onClick","Icon","icons","size","REMOVE","StyledOpeningInputPseudoButton","handleStartTimeBlur","useCallback","value","isInvalid","handleEndTimeBlur","StyledOpeningInput","key","animate","opacity","height","initial","exit","StyledOpeningInputWrapper","NumberInput","shouldShowOnlyBottomBorder","isTimeInput","onBlur","StyledOpeningInputText","displayName","_default","exports"],"sources":["../../../../../src/components/opening-times/opening-inputs/opening-input/OpeningInput.tsx"],"sourcesContent":["import React, { FC, useCallback, useMemo, useState } from 'react';\nimport { OpeningTimesButtonType, type Time } from '../../../../types/openingTimes';\nimport { Icon, NumberInput } from '@chayns-components/core';\nimport {\n StyledOpeningInput,\n StyledOpeningInputButtonWrapper,\n StyledOpeningInputPseudoButton,\n StyledOpeningInputText,\n StyledOpeningInputWrapper,\n} from './OpeningInput.styles';\n\nexport type OpeningInputProps = {\n start: Time['start'];\n end: Time['end'];\n isDisabled?: boolean;\n id: string;\n buttonType: OpeningTimesButtonType;\n onAdd: () => void;\n onRemove: () => void;\n onChange: (time: Time) => void;\n};\n\nconst OpeningInput: FC<OpeningInputProps> = ({\n end,\n start,\n isDisabled,\n buttonType,\n onRemove,\n onAdd,\n onChange,\n id,\n}) => {\n const [startTime, setStartTime] = useState(start);\n const [endTime, setEndTime] = useState(end);\n\n const button = useMemo(() => {\n switch (buttonType) {\n case OpeningTimesButtonType.ADD:\n return (\n <StyledOpeningInputButtonWrapper onClick={onAdd}>\n <Icon icons={['ts-plus']} size={15} />\n </StyledOpeningInputButtonWrapper>\n );\n case OpeningTimesButtonType.REMOVE:\n return (\n <StyledOpeningInputButtonWrapper onClick={onRemove}>\n <Icon icons={['ts-wrong']} size={15} />\n </StyledOpeningInputButtonWrapper>\n );\n default:\n return <StyledOpeningInputPseudoButton />;\n }\n }, [buttonType, onAdd, onRemove]);\n\n const handleStartTimeBlur = useCallback(\n (value: string | number | null, isInvalid: boolean) => {\n if (isInvalid || typeof value === 'number' || !value) {\n return;\n }\n\n setStartTime(value);\n\n onChange({ end: endTime, start: value, id });\n },\n [endTime, id, onChange],\n );\n\n const handleEndTimeBlur = useCallback(\n (value: string | number | null, isInvalid: boolean) => {\n if (isInvalid || typeof value === 'number' || !value) {\n return;\n }\n\n setEndTime(value);\n\n onChange({ end: value, start: startTime, id });\n },\n [id, onChange, startTime],\n );\n\n return useMemo(\n () => (\n <StyledOpeningInput\n key={id}\n animate={{ opacity: 1, height: 'auto' }}\n initial={{ opacity: 0, height: 0 }}\n exit={{ opacity: 0, height: 0 }}\n >\n <StyledOpeningInputWrapper>\n <NumberInput\n shouldShowOnlyBottomBorder\n isTimeInput\n value={startTime}\n onBlur={handleStartTimeBlur}\n isDisabled={isDisabled}\n />\n </StyledOpeningInputWrapper>\n <StyledOpeningInputText isDisabled={isDisabled}>-</StyledOpeningInputText>\n <StyledOpeningInputWrapper>\n <NumberInput\n shouldShowOnlyBottomBorder\n isTimeInput\n value={endTime}\n onBlur={handleEndTimeBlur}\n isDisabled={isDisabled}\n />\n </StyledOpeningInputWrapper>\n {button}\n </StyledOpeningInput>\n ),\n [button, endTime, handleEndTimeBlur, handleStartTimeBlur, id, isDisabled, startTime],\n );\n};\n\nOpeningInput.displayName = 'OpeningInput';\n\nexport default OpeningInput;\n"],"mappings":"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"}
|