@tap-payments/os-micro-frontend-shared 0.1.218-test.10 → 0.1.218-test.12

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.
@@ -1,3 +1,3 @@
1
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;
2
+ declare function RangeCalender({ defaultDate, onDateChange, mode, onCalendarModeSwitch, numberOfMonths, noTimezone, noQuickFilter, maxDateRange, onCalendarGroupChange, groupBy, timezone, onChangeTimezone, browserTimezone, renderCalendarButton, mainSx, popperProps, rangeDatePickerProps, defaultCountryTimezone, segmentCountries, }: RangeCalendarProps): import("react/jsx-runtime").JSX.Element;
3
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, browserTimezone, renderCalendarButton, mainSx, popperProps, rangeDatePickerProps, defaultCountryTimezone, }) {
18
+ function RangeCalender({ defaultDate, onDateChange, mode = 'gregorian', onCalendarModeSwitch, numberOfMonths, noTimezone, noQuickFilter, maxDateRange, onCalendarGroupChange, groupBy, timezone, onChangeTimezone, browserTimezone, renderCalendarButton, mainSx, popperProps, rangeDatePickerProps, defaultCountryTimezone, segmentCountries, }) {
19
19
  const [dates, setDates] = useState(getDateRange(defaultDate));
20
20
  const [values, setValues] = useState(dates);
21
21
  const [selectedTimezone, setSelectedTimezone] = useState(timezone);
@@ -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, 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') }))] })] }))] }))] }) }))] })));
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, segmentCountries: segmentCountries }, 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;
@@ -1,11 +1,12 @@
1
1
  /// <reference types="react" />
2
- import type { Timezone } from '../../../../types/index.js';
2
+ import type { SegmentCountry, Timezone } from '../../../../types/index.js';
3
3
  interface CustomTimezoneProps {
4
4
  onChange: (timezone: Timezone) => void;
5
5
  selectedTimezone: Timezone | null;
6
6
  defaultCountryTimezone: Timezone;
7
7
  browserTimezone: string;
8
+ segmentCountries: SegmentCountry[];
8
9
  }
9
- declare function CustomTimezone({ onChange, selectedTimezone, browserTimezone, defaultCountryTimezone }: CustomTimezoneProps): import("react/jsx-runtime").JSX.Element;
10
+ declare function CustomTimezone({ onChange, selectedTimezone, browserTimezone, defaultCountryTimezone, segmentCountries }: CustomTimezoneProps): import("react/jsx-runtime").JSX.Element;
10
11
  declare const _default: import("react").MemoExoticComponent<typeof CustomTimezone>;
11
12
  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, browserTimezone, defaultCountryTimezone }) {
10
+ function CustomTimezone({ onChange, selectedTimezone, browserTimezone, defaultCountryTimezone, segmentCountries }) {
11
11
  const [anchorEl, setAnchorEl] = useState(null);
12
12
  const open = Boolean(anchorEl);
13
13
  const onClose = () => {
@@ -27,6 +27,6 @@ function CustomTimezone({ onChange, selectedTimezone, browserTimezone, defaultCo
27
27
  return entityTimezoneIcon;
28
28
  return savedTimezoneIcon;
29
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 })] })) }))] })) })));
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, segmentCountries: segmentCountries }), _jsx(UserTimezone, { onChange: updateTimezone, selectedTimezone: selectedTimezone, browserTimezone: browserTimezone })] })) }))] })) })));
31
31
  }
32
32
  export default memo(CustomTimezone);
@@ -1,12 +1,9 @@
1
- import type { Timezone } from '../../../../../types/index.js';
1
+ import type { SegmentCountry, Timezone } from '../../../../../types/index.js';
2
2
  interface EntitiesTimezoneProps {
3
3
  selectedTimezone: Timezone | null;
4
4
  onChange: (selected: Timezone) => void;
5
- getTimezoneByCountryCode?: (countryCode: string) => Timezone;
6
- segmentCountries?: {
7
- code: string;
8
- }[];
5
+ segmentCountries?: SegmentCountry[];
9
6
  defaultCountryTimezone: Timezone;
10
7
  }
11
- export default function EntitiesTimezone({ selectedTimezone, onChange, getTimezoneByCountryCode, segmentCountries, defaultCountryTimezone, }: EntitiesTimezoneProps): import("react/jsx-runtime").JSX.Element;
8
+ export default function EntitiesTimezone({ selectedTimezone, onChange, segmentCountries, defaultCountryTimezone }: EntitiesTimezoneProps): import("react/jsx-runtime").JSX.Element;
12
9
  export {};
@@ -4,7 +4,8 @@ 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, getTimezoneByCountryCode, segmentCountries, defaultCountryTimezone, }) {
7
+ import { getTimezoneByCountryCode } from '../../../../../utils/index.js';
8
+ export default function EntitiesTimezone({ selectedTimezone, onChange, segmentCountries, defaultCountryTimezone }) {
8
9
  const [entitiesEl, setEntitiesEl] = useState(null);
9
10
  const onMouseEnter = (e) => {
10
11
  if (!entitiesEl)
@@ -18,7 +19,7 @@ export default function EntitiesTimezone({ selectedTimezone, onChange, getTimezo
18
19
  e.stopPropagation();
19
20
  onChange(tz);
20
21
  };
21
- const availableTimezones = useMemo(() => segmentCountries === null || segmentCountries === void 0 ? void 0 : segmentCountries.map(({ code }) => getTimezoneByCountryCode === null || getTimezoneByCountryCode === void 0 ? void 0 : getTimezoneByCountryCode(code)), [segmentCountries]);
22
+ const availableTimezones = useMemo(() => segmentCountries === null || segmentCountries === void 0 ? void 0 : segmentCountries.map(({ code }) => getTimezoneByCountryCode(code)), [segmentCountries]);
22
23
  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) || defaultCountryTimezone.timezone === (item === null || item === void 0 ? void 0 : item.timezone)), [availableTimezones, selectedTimezone, defaultCountryTimezone]);
23
24
  const entityTimezone = useMemo(() => {
24
25
  if (!selectedTimezone)
@@ -43,3 +43,4 @@ export * from './day';
43
43
  export * from './style';
44
44
  export * from './boolean';
45
45
  export * from './columnResizeStorage';
46
+ export * from './timezone';
@@ -43,3 +43,4 @@ export * from './day';
43
43
  export * from './style';
44
44
  export * from './boolean';
45
45
  export * from './columnResizeStorage';
46
+ export * from './timezone';
@@ -0,0 +1 @@
1
+ export declare const getTimezoneByCountryCode: (code: string) => import("..").Timezone | undefined;
@@ -0,0 +1,2 @@
1
+ import { COUNTRIES_TIMEZONES } from '../constants/index.js';
2
+ export const getTimezoneByCountryCode = (code) => COUNTRIES_TIMEZONES.find((country) => country.countryCode === code);
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.10",
5
- "testVersion": 10,
4
+ "version": "0.1.218-test.12",
5
+ "testVersion": 12,
6
6
  "type": "module",
7
7
  "main": "build/index.js",
8
8
  "module": "build/index.js",