@tap-payments/os-micro-frontend-shared 0.1.218-test.5 → 0.1.218-test.8
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/build/components/RangeCalender/RangeCalender.d.ts +2 -26
- package/build/components/RangeCalender/RangeCalender.js +3 -3
- package/build/components/RangeCalender/components/CustomTimepicker/CustomTimepicker.js +3 -2
- package/build/components/RangeCalender/components/Timezone/Timezone.d.ts +2 -2
- package/build/components/RangeCalender/components/Timezone/Timezone.js +4 -4
- package/build/components/RangeCalender/components/Timezone/components/EntitiesTimezone.d.ts +2 -2
- package/build/components/RangeCalender/components/Timezone/components/EntitiesTimezone.js +5 -5
- package/build/components/RangeCalender/type.d.ts +25 -0
- package/package.json +2 -2
|
@@ -1,27 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { SxProps } from '@mui/system';
|
|
4
|
-
import type { CalenderMode, Timezone } from '../../types/index.js';
|
|
5
|
-
import { RangeDatepickerProps } from './components/RangeDatepicker';
|
|
6
|
-
interface RangeCalendarProps {
|
|
7
|
-
defaultDate: [Date, Date];
|
|
8
|
-
onDateChange: (date: [Date, Date]) => void;
|
|
9
|
-
mode?: CalenderMode;
|
|
10
|
-
onCalendarModeSwitch?: (mode: CalenderMode) => void;
|
|
11
|
-
numberOfMonths?: number;
|
|
12
|
-
noTimezone?: boolean;
|
|
13
|
-
noQuickFilter?: boolean;
|
|
14
|
-
maxDateRange?: number;
|
|
15
|
-
onCalendarGroupChange?: (value: string) => void;
|
|
16
|
-
groupBy?: string;
|
|
17
|
-
timezone: Timezone | null;
|
|
18
|
-
onChangeTimezone?: (timezone: Timezone) => void;
|
|
19
|
-
defaultTimezone: Timezone;
|
|
20
|
-
browserTimezone: string;
|
|
21
|
-
renderCalendarButton?: (open: boolean, onOpenCalender: (event: MouseEvent<HTMLElement>) => void) => React.ReactNode;
|
|
22
|
-
mainSx?: SxProps;
|
|
23
|
-
popperProps?: Partial<PopperProps>;
|
|
24
|
-
rangeDatePickerProps?: Partial<RangeDatepickerProps>;
|
|
25
|
-
}
|
|
26
|
-
declare function RangeCalender({ defaultDate, onDateChange, mode, onCalendarModeSwitch, numberOfMonths, noTimezone, noQuickFilter, maxDateRange, onCalendarGroupChange, groupBy, timezone, onChangeTimezone, defaultTimezone, browserTimezone, renderCalendarButton, mainSx, popperProps, rangeDatePickerProps, }: RangeCalendarProps): import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
import { RangeCalendarProps } from './type';
|
|
2
|
+
declare function RangeCalender({ defaultDate, onDateChange, mode, onCalendarModeSwitch, numberOfMonths, noTimezone, noQuickFilter, maxDateRange, onCalendarGroupChange, groupBy, timezone, onChangeTimezone, browserTimezone, renderCalendarButton, mainSx, popperProps, rangeDatePickerProps, defaultCountryTimezone, }: RangeCalendarProps): import("react/jsx-runtime").JSX.Element;
|
|
27
3
|
export default RangeCalender;
|
|
@@ -15,7 +15,7 @@ import CustomTimezone from './components/Timezone';
|
|
|
15
15
|
import { ButtonsWrapper, CalenderWrapper, CancelButton, FiltersArea, Footer, Main, OkayButton, SelectedDate, TimeZone, Settings } from './style';
|
|
16
16
|
import CustomTimePicker from './components/CustomTimepicker';
|
|
17
17
|
import { getDateRange, getEndOfDate, getStartOfDate } from './utils';
|
|
18
|
-
function RangeCalender({ defaultDate, onDateChange, mode = 'gregorian', onCalendarModeSwitch, numberOfMonths, noTimezone, noQuickFilter, maxDateRange, onCalendarGroupChange, groupBy, timezone, onChangeTimezone,
|
|
18
|
+
function RangeCalender({ defaultDate, onDateChange, mode = 'gregorian', onCalendarModeSwitch, numberOfMonths, noTimezone, noQuickFilter, maxDateRange, onCalendarGroupChange, groupBy, timezone, onChangeTimezone, browserTimezone, renderCalendarButton, mainSx, popperProps, rangeDatePickerProps, defaultCountryTimezone, }) {
|
|
19
19
|
const [dates, setDates] = useState(getDateRange(defaultDate));
|
|
20
20
|
const [values, setValues] = useState(dates);
|
|
21
21
|
const [selectedTimezone, setSelectedTimezone] = useState(timezone);
|
|
@@ -64,7 +64,7 @@ function RangeCalender({ defaultDate, onDateChange, mode = 'gregorian', onCalend
|
|
|
64
64
|
};
|
|
65
65
|
const onChange = (newDate) => {
|
|
66
66
|
if (newDate.length < 2 || !maxDateRange) {
|
|
67
|
-
setValues(
|
|
67
|
+
setValues(newDate);
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
70
|
const startDate = getStartOfDate(newDate[0]).toDate();
|
|
@@ -90,6 +90,6 @@ function RangeCalender({ defaultDate, onDateChange, mode = 'gregorian', onCalend
|
|
|
90
90
|
onCloseCalender();
|
|
91
91
|
} })), _jsx(Popper, Object.assign({ open: open, anchorEl: anchorEl, placement: "bottom-end" }, popperProps, { children: _jsxs(CalenderWrapper, { children: [!noQuickFilter && (_jsxs(FiltersArea, { children: [_jsx(QuickFilters, { onChange: onChangeQuickFilter, isHijri: isHijri }), _jsxs(Settings, { children: [groupBy && (_jsx(GroupBy, { groupBy: selectedGroupBy, isCalenderOpen: open, onUpdate: (group) => {
|
|
92
92
|
setSelectedGroupBy(group);
|
|
93
|
-
} })), _jsx(Hijri, { isHijri: isHijri, onCalendarModeSwitch: onCalendarModeSwitch })] })] })), _jsxs(Box, Object.assign({ sx: { display: 'flex', flexDirection: 'column', justifyContent: 'space-between' } }, { children: [_jsx(RangeDatePicker, Object.assign({ values: values, onChange: onChange, isHijri: isHijri, ref: calendarRef, numberOfMonths: numberOfMonths }, rangeDatePickerProps)), _jsx(Collapse, Object.assign({ in: isError && Boolean(maxDateRange) }, { children: _jsx(Error, { error: t('dateRangeError', { number: maxDateRange }), sx: { marginInline: '16px', marginBottom: '16px' } }) })), _jsxs(Footer, Object.assign({ sx: { borderBottomLeftRadius: '8px' } }, { children: [!noTimezone ? (_jsx(TimeZone, { children: _jsx(CustomTimezone, { onChange: setSelectedTimezone, selectedTimezone: selectedTimezone,
|
|
93
|
+
} })), _jsx(Hijri, { isHijri: isHijri, onCalendarModeSwitch: onCalendarModeSwitch })] })] })), _jsxs(Box, Object.assign({ sx: { display: 'flex', flexDirection: 'column', justifyContent: 'space-between' } }, { children: [_jsx(RangeDatePicker, Object.assign({ values: values, onChange: onChange, isHijri: isHijri, ref: calendarRef, numberOfMonths: numberOfMonths }, rangeDatePickerProps)), _jsx(Collapse, Object.assign({ in: isError && Boolean(maxDateRange) }, { children: _jsx(Error, { error: t('dateRangeError', { number: maxDateRange }), sx: { marginInline: '16px', marginBottom: '16px' } }) })), _jsxs(Footer, Object.assign({ sx: { borderBottomLeftRadius: '8px' } }, { children: [!noTimezone ? (_jsx(TimeZone, { children: _jsx(CustomTimezone, { onChange: setSelectedTimezone, selectedTimezone: selectedTimezone, browserTimezone: browserTimezone, defaultCountryTimezone: defaultCountryTimezone }, String(open)) })) : (_jsx("div", {})), new DateObject(values[0]).dayOfYear === new DateObject(values[1]).dayOfYear && (_jsx(CustomTimePicker, { values: values, setValues: setValues })), _jsxs(ButtonsWrapper, { children: [_jsx(CancelButton, Object.assign({ variant: "contained", onClick: onCloseCalender }, { children: t('cancel') })), _jsx(OkayButton, Object.assign({ variant: "contained", onClick: submitDate }, { children: t('okay') }))] })] }))] }))] }) }))] })));
|
|
94
94
|
}
|
|
95
95
|
export default RangeCalender;
|
|
@@ -7,6 +7,7 @@ import TimePicker, { convertTo12Hour, maxHour } from '../../../Timepicker';
|
|
|
7
7
|
import { AllDayStyled, TimeArea, TimePickerWrapper, TimeAreaInner } from './style';
|
|
8
8
|
import { getEndOfDate, getStartOfDate } from '../../utils';
|
|
9
9
|
function CustomTimePicker({ values, setValues }) {
|
|
10
|
+
var _a, _b;
|
|
10
11
|
const { t } = useTranslation();
|
|
11
12
|
const startDate = new DateObject(values[0]);
|
|
12
13
|
const endDate = new DateObject(values[1]);
|
|
@@ -30,10 +31,10 @@ function CustomTimePicker({ values, setValues }) {
|
|
|
30
31
|
hour: convertTo12Hour(startDate.hour),
|
|
31
32
|
minute: startDate.minute,
|
|
32
33
|
period: startDate.hour >= maxHour ? 'PM' : 'AM',
|
|
33
|
-
}, size: "small", onChange: onChangeStartTime, enableRealTimeChange: true }, `${values[0].toString()}-start`), _jsx(TimePicker, { defaultTime: {
|
|
34
|
+
}, size: "small", onChange: onChangeStartTime, enableRealTimeChange: true }, `${(_a = values[0]) === null || _a === void 0 ? void 0 : _a.toString()}-start`), _jsx(TimePicker, { defaultTime: {
|
|
34
35
|
hour: convertTo12Hour(endDate.hour),
|
|
35
36
|
minute: endDate.minute,
|
|
36
37
|
period: endDate.hour >= maxHour ? 'PM' : 'AM',
|
|
37
|
-
}, size: "small", onChange: onChangeEndTime, enableRealTimeChange: true }, `${values[1].toString()}-end`)] }))] }) }));
|
|
38
|
+
}, size: "small", onChange: onChangeEndTime, enableRealTimeChange: true }, `${(_b = values[1]) === null || _b === void 0 ? void 0 : _b.toString()}-end`)] }))] }) }));
|
|
38
39
|
}
|
|
39
40
|
export default CustomTimePicker;
|
|
@@ -3,9 +3,9 @@ import type { Timezone } from '../../../../types/index.js';
|
|
|
3
3
|
interface CustomTimezoneProps {
|
|
4
4
|
onChange: (timezone: Timezone) => void;
|
|
5
5
|
selectedTimezone: Timezone | null;
|
|
6
|
-
defaultTimezone: Timezone;
|
|
7
6
|
browserTimezone: string;
|
|
7
|
+
defaultCountryTimezone: Timezone;
|
|
8
8
|
}
|
|
9
|
-
declare function CustomTimezone({ onChange, selectedTimezone,
|
|
9
|
+
declare function CustomTimezone({ onChange, selectedTimezone, browserTimezone, defaultCountryTimezone }: CustomTimezoneProps): import("react/jsx-runtime").JSX.Element;
|
|
10
10
|
declare const _default: import("react").MemoExoticComponent<typeof CustomTimezone>;
|
|
11
11
|
export default _default;
|
|
@@ -7,7 +7,7 @@ import { CountryFlag } from '../../../index.js';
|
|
|
7
7
|
import { TimezoneWrapper, TimezoneDropdown, SelectedTimezone } from './style';
|
|
8
8
|
import EntitiesTimezone from './components/EntitiesTimezone';
|
|
9
9
|
import UserTimezone from './components/UserTimezone';
|
|
10
|
-
function CustomTimezone({ onChange, selectedTimezone,
|
|
10
|
+
function CustomTimezone({ onChange, selectedTimezone, browserTimezone, defaultCountryTimezone }) {
|
|
11
11
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
12
12
|
const open = Boolean(anchorEl);
|
|
13
13
|
const onClose = () => {
|
|
@@ -23,10 +23,10 @@ function CustomTimezone({ onChange, selectedTimezone, defaultTimezone, browserTi
|
|
|
23
23
|
const selectedTimezoneIcon = useMemo(() => {
|
|
24
24
|
if (browserTimezone === (selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.timezone))
|
|
25
25
|
return userTimezoneIcon;
|
|
26
|
-
if ((selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.timezone) ===
|
|
26
|
+
if ((selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.timezone) === defaultCountryTimezone.timezone)
|
|
27
27
|
return entityTimezoneIcon;
|
|
28
28
|
return savedTimezoneIcon;
|
|
29
|
-
}, [browserTimezone,
|
|
30
|
-
return (_jsx(ClickAwayListener, Object.assign({ onClickAway: onClose }, { children: _jsxs(TimezoneWrapper, Object.assign({ "data-testid": "CustomTimezone" }, { children: [_jsxs(SelectedTimezone, Object.assign({ open: open, onClick: onOpen }, { children: [_jsx("img", { src: selectedTimezoneIcon, alt: "timezone-icon" }), _jsx(CountryFlag, { code: selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.countryCode }), _jsx("span", { children: selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.label })] })), _jsx(Popper, Object.assign({ open: open, anchorEl: anchorEl, placement: "top-start", sx: { zIndex: 1400 } }, { children: _jsxs(TimezoneDropdown, Object.assign({ "data-testid": "CustomTimezone_dropdown" }, { children: [_jsx(EntitiesTimezone, { onChange: updateTimezone, selectedTimezone: selectedTimezone,
|
|
29
|
+
}, [browserTimezone, defaultCountryTimezone.timezone, selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.timezone]);
|
|
30
|
+
return (_jsx(ClickAwayListener, Object.assign({ onClickAway: onClose }, { children: _jsxs(TimezoneWrapper, Object.assign({ "data-testid": "CustomTimezone" }, { children: [_jsxs(SelectedTimezone, Object.assign({ open: open, onClick: onOpen }, { children: [_jsx("img", { src: selectedTimezoneIcon, alt: "timezone-icon" }), _jsx(CountryFlag, { code: selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.countryCode }), _jsx("span", { children: selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.label })] })), _jsx(Popper, Object.assign({ open: open, anchorEl: anchorEl, placement: "top-start", sx: { zIndex: 1400 } }, { children: _jsxs(TimezoneDropdown, Object.assign({ "data-testid": "CustomTimezone_dropdown" }, { children: [_jsx(EntitiesTimezone, { onChange: updateTimezone, selectedTimezone: selectedTimezone, defaultCountryTimezone: defaultCountryTimezone }), _jsx(UserTimezone, { onChange: updateTimezone, selectedTimezone: selectedTimezone, browserTimezone: browserTimezone })] })) }))] })) })));
|
|
31
31
|
}
|
|
32
32
|
export default memo(CustomTimezone);
|
|
@@ -2,11 +2,11 @@ import type { Timezone } from '../../../../../types/index.js';
|
|
|
2
2
|
interface EntitiesTimezoneProps {
|
|
3
3
|
selectedTimezone: Timezone | null;
|
|
4
4
|
onChange: (selected: Timezone) => void;
|
|
5
|
-
defaultTimezone: Timezone;
|
|
6
5
|
getTimezoneByCountryCode?: (countryCode: string) => Timezone;
|
|
7
6
|
segmentCountries?: {
|
|
8
7
|
code: string;
|
|
9
8
|
}[];
|
|
9
|
+
defaultCountryTimezone: Timezone;
|
|
10
10
|
}
|
|
11
|
-
export default function EntitiesTimezone({ selectedTimezone, onChange,
|
|
11
|
+
export default function EntitiesTimezone({ selectedTimezone, onChange, getTimezoneByCountryCode, segmentCountries, defaultCountryTimezone, }: EntitiesTimezoneProps): import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
export {};
|
|
@@ -4,7 +4,7 @@ import Popper from '@mui/material/Popper';
|
|
|
4
4
|
import { entityTimezoneIcon, smallBlueCheckIcon } from '../../../../../constants/index.js';
|
|
5
5
|
import { CountryFlag } from '../../../../index.js';
|
|
6
6
|
import { Label, Space, TimezoneDropdown, TimezoneElement } from '../style';
|
|
7
|
-
export default function EntitiesTimezone({ selectedTimezone, onChange,
|
|
7
|
+
export default function EntitiesTimezone({ selectedTimezone, onChange, getTimezoneByCountryCode, segmentCountries, defaultCountryTimezone, }) {
|
|
8
8
|
const [entitiesEl, setEntitiesEl] = useState(null);
|
|
9
9
|
const onMouseEnter = (e) => {
|
|
10
10
|
if (!entitiesEl)
|
|
@@ -22,13 +22,13 @@ export default function EntitiesTimezone({ selectedTimezone, onChange, defaultTi
|
|
|
22
22
|
const isSelectedTimezoneOneOFTheAvailable = useMemo(() => availableTimezones === null || availableTimezones === void 0 ? void 0 : availableTimezones.some((item) => (selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.timezone) === (item === null || item === void 0 ? void 0 : item.timezone)), [availableTimezones, selectedTimezone]);
|
|
23
23
|
const entityTimezone = useMemo(() => {
|
|
24
24
|
if (!selectedTimezone)
|
|
25
|
-
return
|
|
26
|
-
return isSelectedTimezoneOneOFTheAvailable ? selectedTimezone :
|
|
27
|
-
}, [selectedTimezone,
|
|
25
|
+
return defaultCountryTimezone;
|
|
26
|
+
return isSelectedTimezoneOneOFTheAvailable ? selectedTimezone : defaultCountryTimezone;
|
|
27
|
+
}, [selectedTimezone, defaultCountryTimezone, isSelectedTimezoneOneOFTheAvailable]);
|
|
28
28
|
return (_jsxs(TimezoneElement, Object.assign({ onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onClick: () => {
|
|
29
29
|
if (selectedTimezone)
|
|
30
30
|
onChange(entityTimezone);
|
|
31
|
-
} }, { children: [isSelectedTimezoneOneOFTheAvailable ? _jsx("img", { src: smallBlueCheckIcon, alt: "icon" }) : _jsx(Space, {}), _jsx("img", { src: entityTimezoneIcon, alt: "entity-timezone" }), _jsx(CountryFlag, { code: entityTimezone === null || entityTimezone === void 0 ? void 0 : entityTimezone.countryCode }), _jsx(Label, Object.assign({ className: isSelectedTimezoneOneOFTheAvailable ? 'selected' : '' }, { children: isSelectedTimezoneOneOFTheAvailable ? selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.label :
|
|
31
|
+
} }, { children: [isSelectedTimezoneOneOFTheAvailable ? _jsx("img", { src: smallBlueCheckIcon, alt: "icon" }) : _jsx(Space, {}), _jsx("img", { src: entityTimezoneIcon, alt: "entity-timezone" }), _jsx(CountryFlag, { code: entityTimezone === null || entityTimezone === void 0 ? void 0 : entityTimezone.countryCode }), _jsx(Label, Object.assign({ className: isSelectedTimezoneOneOFTheAvailable ? 'selected' : '' }, { children: isSelectedTimezoneOneOFTheAvailable ? selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.label : defaultCountryTimezone === null || defaultCountryTimezone === void 0 ? void 0 : defaultCountryTimezone.label })), _jsx(Popper, Object.assign({ open: Boolean(entitiesEl), anchorEl: entitiesEl, placement: "right-start", sx: { zIndex: 3 }, disablePortal: true }, { children: _jsx(TimezoneDropdown, Object.assign({ sx: { maxHeight: 300 } }, { children: availableTimezones === null || availableTimezones === void 0 ? void 0 : availableTimezones.map((timeZone, idx) => {
|
|
32
32
|
const isActive = (timeZone === null || timeZone === void 0 ? void 0 : timeZone.timezone) === (selectedTimezone === null || selectedTimezone === void 0 ? void 0 : selectedTimezone.timezone);
|
|
33
33
|
return (_jsxs(TimezoneElement, Object.assign({ onClick: (e) => {
|
|
34
34
|
onSelectTimezone(e, timeZone);
|
|
@@ -1,2 +1,27 @@
|
|
|
1
|
+
import { MouseEvent } from 'react';
|
|
2
|
+
import { PopperProps } from '@mui/material/Popper';
|
|
3
|
+
import { SxProps } from '@mui/system';
|
|
1
4
|
import type { DateObject } from 'react-multi-date-picker';
|
|
5
|
+
import type { CalenderMode, Timezone } from '../../types/index.js';
|
|
6
|
+
import { RangeDatepickerProps } from './components/RangeDatepicker';
|
|
2
7
|
export type Dates = [DateObject, DateObject];
|
|
8
|
+
export interface RangeCalendarProps {
|
|
9
|
+
defaultDate: [Date, Date];
|
|
10
|
+
onDateChange: (date: [Date, Date]) => void;
|
|
11
|
+
mode?: CalenderMode;
|
|
12
|
+
onCalendarModeSwitch?: (mode: CalenderMode) => void;
|
|
13
|
+
numberOfMonths?: number;
|
|
14
|
+
noTimezone?: boolean;
|
|
15
|
+
noQuickFilter?: boolean;
|
|
16
|
+
maxDateRange?: number;
|
|
17
|
+
onCalendarGroupChange?: (value: string) => void;
|
|
18
|
+
groupBy?: string;
|
|
19
|
+
timezone: Timezone | null;
|
|
20
|
+
onChangeTimezone?: (timezone: Timezone) => void;
|
|
21
|
+
defaultCountryTimezone: Timezone;
|
|
22
|
+
browserTimezone: string;
|
|
23
|
+
renderCalendarButton?: (open: boolean, onOpenCalender: (event: MouseEvent<HTMLElement>) => void) => React.ReactNode;
|
|
24
|
+
mainSx?: SxProps;
|
|
25
|
+
popperProps?: Partial<PopperProps>;
|
|
26
|
+
rangeDatePickerProps?: Partial<RangeDatepickerProps>;
|
|
27
|
+
}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tap-payments/os-micro-frontend-shared",
|
|
3
3
|
"description": "Shared components and utilities for Tap Payments micro frontends",
|
|
4
|
-
"version": "0.1.218-test.
|
|
5
|
-
"testVersion":
|
|
4
|
+
"version": "0.1.218-test.8",
|
|
5
|
+
"testVersion": 8,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "build/index.js",
|
|
8
8
|
"module": "build/index.js",
|