@useblu/ocean-react 1.50.0 → 1.52.1

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/index.js CHANGED
@@ -33982,7 +33982,8 @@ function useDatePickerSingle(_a) {
33982
33982
  var input2Ref = e__default["default"].useRef(null);
33983
33983
  var _b = e__default["default"].useState(false), showDayPicker = _b[0], setShowDayPicker = _b[1];
33984
33984
  var _c = e__default["default"].useState(''), currentField = _c[0], setCurrentField = _c[1];
33985
- var _d = e__default["default"].useState(''), datePickerCache = _d[0], setDatePickerCache = _d[1];
33985
+ var _d = e__default["default"].useState(), currentMonthToDisplay = _d[0], setCurrentMonthToDisplay = _d[1];
33986
+ var _e = e__default["default"].useState(''), datePickerCache = _e[0], setDatePickerCache = _e[1];
33986
33987
  var fromDate = parse$1(value || '', localeDateFormat, new Date());
33987
33988
  e__default["default"].useEffect(function () {
33988
33989
  if (value === '')
@@ -33995,6 +33996,7 @@ function useDatePickerSingle(_a) {
33995
33996
  var handleDayClick = function (day) {
33996
33997
  if (!(startsToday && handleValidateStartsToday(startsToday, day))) {
33997
33998
  var formattedDay = format(day, localeDateFormat);
33999
+ updateCurrentMonth(formattedDay);
33998
34000
  updateState(formattedDay, true);
33999
34001
  setCurrentField('');
34000
34002
  setShowDayPicker(false);
@@ -34028,6 +34030,10 @@ function useDatePickerSingle(_a) {
34028
34030
  updateState(datePickerCache);
34029
34031
  }
34030
34032
  };
34033
+ var updateCurrentMonth = function (date) {
34034
+ var parsedDate = parse$1(date, 'dd/MM/yyyy', new Date());
34035
+ setCurrentMonthToDisplay(parsedDate);
34036
+ };
34031
34037
  var CustomStyles = {
34032
34038
  root: 'ods-date__calendar ods-date_calendar_m1',
34033
34039
  caption: 'ods-date__caption',
@@ -34062,30 +34068,44 @@ function useDatePickerSingle(_a) {
34062
34068
  createHandleToggleClick: createHandleToggleClick,
34063
34069
  disabledDays: disabledDays,
34064
34070
  formatDay: formatDay,
34065
- handleCloseByOutside: handleCloseByOutside
34071
+ handleCloseByOutside: handleCloseByOutside,
34072
+ currentMonthToDisplay: currentMonthToDisplay
34066
34073
  };
34067
34074
  }
34068
34075
 
34069
34076
  var DatePickerHeader = function (_a) {
34070
34077
  var displayMonth = _a.displayMonth, locale = _a.locale, _b = _a.mode, mode = _b === void 0 ? 'range' : _b;
34071
34078
  var _c = useNavigation(), goToMonth = _c.goToMonth, nextMonth = _c.nextMonth, previousMonth = _c.previousMonth;
34079
+ var _d = e.useState(displayMonth), selectedMonth = _d[0], setSelectedMonth = _d[1];
34080
+ var handlePreviousMonthClick = function () {
34081
+ if (previousMonth) {
34082
+ goToMonth(previousMonth);
34083
+ setSelectedMonth(previousMonth);
34084
+ }
34085
+ };
34086
+ var handleNextMonthClick = function () {
34087
+ if (nextMonth) {
34088
+ goToMonth(nextMonth);
34089
+ setSelectedMonth(nextMonth);
34090
+ }
34091
+ };
34072
34092
  return (e__default["default"].createElement("div", { className: "ods-date__caption" },
34073
34093
  e__default["default"].createElement(IconButton, { type: "button", "data-testid": "calendar-left-arrow", size: "sm", className: classNames('ods-date__navButtons', {
34074
34094
  'ods-date__navButtonPrev': mode === 'range',
34075
34095
  'ods-date__navButtonPrev-datepicker': mode === 'single'
34076
- }), disabled: !previousMonth, onClick: function () { return previousMonth && goToMonth(previousMonth); } },
34096
+ }), disabled: !previousMonth, onClick: handlePreviousMonthClick },
34077
34097
  e__default["default"].createElement($, { size: 20 })),
34078
- e__default["default"].createElement("h2", { "data-testid": "calendar-caption-month" }, format(displayMonth, 'MMMM yyyy', { locale: locale })),
34098
+ e__default["default"].createElement("h2", { "data-testid": "calendar-caption-month" }, format(selectedMonth, 'MMMM yyyy', { locale: locale })),
34079
34099
  e__default["default"].createElement(IconButton, { type: "button", "data-testid": "calendar-right-arrow", size: "sm", className: classNames('ods-date__navButtons', {
34080
34100
  'ods-date__navButtonNext': mode === 'range',
34081
34101
  'ods-date__navButtonNext-datepicker': mode === 'single'
34082
- }), disabled: !nextMonth, onClick: function () { return nextMonth && goToMonth(nextMonth); } },
34102
+ }), disabled: !nextMonth, onClick: handleNextMonthClick },
34083
34103
  e__default["default"].createElement(ee, { size: 20 }))));
34084
34104
  };
34085
34105
 
34086
34106
  var DatePickerSingle = e__default["default"].forwardRef(function (_a, ref) {
34087
34107
  var label = _a.label, value = _a.value, onSelect = _a.onSelect, editable = _a.editable, disabled = _a.disabled, error = _a.error, helperText = _a.helperText, startsToday = _a.startsToday, className = _a.className, locale = _a.locale, rest = __rest$1(_a, ["label", "value", "onSelect", "editable", "disabled", "error", "helperText", "startsToday", "className", "locale"]);
34088
- var _b = useDatePickerSingle({ value: value, onSelect: onSelect, startsToday: startsToday, locale: locale }), input1Ref = _b.input1Ref, showDayPicker = _b.showDayPicker, selectedDay = _b.selectedDay, CustomStyles = _b.CustomStyles, localeOption = _b.localeOption, currentField = _b.currentField, inputPlaceholder = _b.inputPlaceholder, handleDayClick = _b.handleDayClick, inputChange = _b.inputChange, createHandleToggleClick = _b.createHandleToggleClick, disabledDays = _b.disabledDays, formatDay = _b.formatDay, handleCloseByOutside = _b.handleCloseByOutside;
34108
+ var _b = useDatePickerSingle({ value: value, onSelect: onSelect, startsToday: startsToday, locale: locale }), input1Ref = _b.input1Ref, showDayPicker = _b.showDayPicker, selectedDay = _b.selectedDay, CustomStyles = _b.CustomStyles, localeOption = _b.localeOption, currentField = _b.currentField, inputPlaceholder = _b.inputPlaceholder, handleDayClick = _b.handleDayClick, inputChange = _b.inputChange, createHandleToggleClick = _b.createHandleToggleClick, disabledDays = _b.disabledDays, formatDay = _b.formatDay, handleCloseByOutside = _b.handleCloseByOutside, currentMonthToDisplay = _b.currentMonthToDisplay;
34089
34109
  return (e__default["default"].createElement("div", null,
34090
34110
  showDayPicker && (e__default["default"].createElement("div", { className: "ods-date-background", "data-testid": "date-picker-outside", onClick: handleCloseByOutside })),
34091
34111
  e__default["default"].createElement("div", __assign$1({ className: classNames('ods-date', className), ref: ref }, rest),
@@ -34097,7 +34117,7 @@ var DatePickerSingle = e__default["default"].forwardRef(function (_a, ref) {
34097
34117
  }), name: "start-date", value: value, onChange: (editable && inputChange) || undefined, placeholder: inputPlaceholder, adornment: e__default["default"].createElement(wn, { size: 20, stroke: "#B6B9CC" }), autoComplete: "off", readOnly: !editable, disabled: disabled, error: !disabled && error, inputMode: "numeric", helperText: (!disabled && !showDayPicker && error && helperText) ||
34098
34118
  undefined, maxLength: 10 })),
34099
34119
  !disabled && showDayPicker && (e__default["default"].createElement("div", { "data-testid": "datepicker-calendar" },
34100
- e__default["default"].createElement(DayPicker, { mode: "single", locale: localeOption, weekStartsOn: 0, classNames: CustomStyles, className: className, onDayClick: function (day) { return handleDayClick(day); }, formatters: { formatDay: formatDay }, selected: selectedDay, disabled: disabledDays, components: {
34120
+ e__default["default"].createElement(DayPicker, { mode: "single", locale: localeOption, weekStartsOn: 0, classNames: CustomStyles, className: className, onDayClick: function (day) { return handleDayClick(day); }, formatters: { formatDay: formatDay }, selected: selectedDay, disabled: disabledDays, defaultMonth: currentMonthToDisplay, components: {
34101
34121
  Caption: function (_a) {
34102
34122
  var displayMonth = _a.displayMonth;
34103
34123
  return DatePickerHeader({
@@ -34120,7 +34140,9 @@ function useDatePicker(_a) {
34120
34140
  var input2Ref = e__default["default"].useRef(null);
34121
34141
  var _b = e__default["default"].useState(false), showDayPicker = _b[0], setShowDayPicker = _b[1];
34122
34142
  var _c = e__default["default"].useState(''), currentField = _c[0], setCurrentField = _c[1];
34123
- var _d = e__default["default"].useState({ from: '', to: '' }), datePickerCache = _d[0], setDatePickerCache = _d[1];
34143
+ var _d = e__default["default"].useState(), currentMonthToDisplay = _d[0], setCurrentMonthToDisplay = _d[1];
34144
+ var _e = e__default["default"].useState({ from: '', to: '' }), datePickerCache = _e[0], setDatePickerCache = _e[1];
34145
+ var _f = e__default["default"].useState(false), firstInputClicked = _f[0], setFirstInputClicked = _f[1];
34124
34146
  var fromDate = parse$1(values.from, localeDateFormat, new Date());
34125
34147
  var toDate = parse$1(values.to, localeDateFormat, new Date());
34126
34148
  e__default["default"].useEffect(function () {
@@ -34142,6 +34164,7 @@ function useDatePicker(_a) {
34142
34164
  if (!(startsToday && handleValidateStartsToday(startsToday, day))) {
34143
34165
  var formattedDay = format(day, localeDateFormat);
34144
34166
  if (currentField === 'start-date') {
34167
+ updateCurrentMonth(formattedDay);
34145
34168
  if (day > toDate) {
34146
34169
  updateState({ from: formattedDay, to: '' }, true);
34147
34170
  }
@@ -34163,7 +34186,36 @@ function useDatePicker(_a) {
34163
34186
  }
34164
34187
  }
34165
34188
  };
34189
+ var updateCurrentMonth = function (date) {
34190
+ var parsedDate = parse$1(date, 'dd/MM/yyyy', new Date());
34191
+ setCurrentMonthToDisplay(parsedDate);
34192
+ };
34193
+ var isValidDate = function (date) {
34194
+ return date instanceof Date && !Number.isNaN(date.getTime());
34195
+ };
34196
+ var getSelectedDate = function () {
34197
+ return firstInputClicked ? selectedDays.from : selectedDays.to;
34198
+ };
34199
+ var handleDisplayMonth = function (displayMonth) {
34200
+ var selectedDate = getSelectedDate();
34201
+ var monthToShowOnHeader = isValidDate(selectedDate)
34202
+ ? selectedDate
34203
+ : undefined;
34204
+ return monthToShowOnHeader || displayMonth;
34205
+ };
34166
34206
  var createHandleToggleClick = function (fieldId) {
34207
+ var isValidStartDate = fieldId === 'start-date' && isValidDate(selectedDays.from);
34208
+ var isValidEndDate = fieldId === 'end-date' && isValidDate(selectedDays.to);
34209
+ var updateValuesAndInputClicked = function (date, isFirstInputClicked) {
34210
+ updateCurrentMonth(date);
34211
+ setFirstInputClicked(isFirstInputClicked);
34212
+ };
34213
+ if (isValidStartDate) {
34214
+ updateValuesAndInputClicked(values.from, true);
34215
+ }
34216
+ else if (isValidEndDate) {
34217
+ updateValuesAndInputClicked(values.to, false);
34218
+ }
34167
34219
  setShowDayPicker(!showDayPicker);
34168
34220
  setCurrentField(fieldId);
34169
34221
  };
@@ -34248,13 +34300,15 @@ function useDatePicker(_a) {
34248
34300
  createHandleToggleClick: createHandleToggleClick,
34249
34301
  disabledDays: disabledDays,
34250
34302
  formatDay: formatDay,
34251
- handleCloseByOutside: handleCloseByOutside
34303
+ handleCloseByOutside: handleCloseByOutside,
34304
+ handleDisplayMonth: handleDisplayMonth,
34305
+ currentMonthToDisplay: currentMonthToDisplay
34252
34306
  };
34253
34307
  }
34254
34308
 
34255
34309
  var DatePickerRange = e__default["default"].forwardRef(function (_a, ref) {
34256
34310
  var labels = _a.labels, values = _a.values, onSelect = _a.onSelect, editable = _a.editable, disabled = _a.disabled, error = _a.error, helperText = _a.helperText, startsToday = _a.startsToday, className = _a.className, locale = _a.locale, rest = __rest$1(_a, ["labels", "values", "onSelect", "editable", "disabled", "error", "helperText", "startsToday", "className", "locale"]);
34257
- var _b = useDatePicker({ values: values, onSelect: onSelect, startsToday: startsToday, locale: locale }), input1Ref = _b.input1Ref, input2Ref = _b.input2Ref, showDayPicker = _b.showDayPicker, selectedDays = _b.selectedDays, CustomStyles = _b.CustomStyles, localeOption = _b.localeOption, currentField = _b.currentField, inputPlaceholder = _b.inputPlaceholder, handleDayMouseEnter = _b.handleDayMouseEnter, handleDayClick = _b.handleDayClick, inputChange = _b.inputChange, createHandleToggleClick = _b.createHandleToggleClick, disabledDays = _b.disabledDays, formatDay = _b.formatDay, handleCloseByOutside = _b.handleCloseByOutside;
34311
+ var _b = useDatePicker({ values: values, onSelect: onSelect, startsToday: startsToday, locale: locale }), input1Ref = _b.input1Ref, input2Ref = _b.input2Ref, showDayPicker = _b.showDayPicker, selectedDays = _b.selectedDays, CustomStyles = _b.CustomStyles, localeOption = _b.localeOption, currentField = _b.currentField, inputPlaceholder = _b.inputPlaceholder, handleDayMouseEnter = _b.handleDayMouseEnter, handleDayClick = _b.handleDayClick, handleDisplayMonth = _b.handleDisplayMonth, inputChange = _b.inputChange, createHandleToggleClick = _b.createHandleToggleClick, disabledDays = _b.disabledDays, formatDay = _b.formatDay, handleCloseByOutside = _b.handleCloseByOutside, currentMonthToDisplay = _b.currentMonthToDisplay;
34258
34312
  return (e__default["default"].createElement("div", null,
34259
34313
  showDayPicker && (e__default["default"].createElement("div", { className: "ods-date-background", "data-testid": "date-picker-outside", onClick: handleCloseByOutside })),
34260
34314
  e__default["default"].createElement("div", __assign$1({ className: classNames('ods-date', className), ref: ref }, rest),
@@ -34272,10 +34326,10 @@ var DatePickerRange = e__default["default"].forwardRef(function (_a, ref) {
34272
34326
  }), name: "end-date", value: values.to, onChange: (editable && inputChange) || undefined, placeholder: inputPlaceholder, adornment: e__default["default"].createElement(wn, { size: 20, stroke: "#B6B9CC" }), autoComplete: "off", readOnly: !editable, disabled: disabled, error: !disabled && error, inputMode: "numeric", helperText: (!disabled && !showDayPicker && error && helperText) ||
34273
34327
  undefined, maxLength: 10 })),
34274
34328
  !disabled && showDayPicker && (e__default["default"].createElement("div", { "data-testid": "datepicker-calendar" },
34275
- e__default["default"].createElement(DayPicker, { mode: "range", locale: localeOption, weekStartsOn: 0, classNames: CustomStyles, className: className, onDayClick: function (day) { return handleDayClick(day); }, onDayMouseEnter: function (day) { return handleDayMouseEnter(day); }, formatters: { formatDay: formatDay }, selected: selectedDays, disabled: disabledDays, components: {
34329
+ e__default["default"].createElement(DayPicker, { mode: "range", locale: localeOption, weekStartsOn: 0, classNames: CustomStyles, className: className, onDayClick: function (day) { return handleDayClick(day); }, onDayMouseEnter: function (day) { return handleDayMouseEnter(day); }, formatters: { formatDay: formatDay }, selected: selectedDays, disabled: disabledDays, defaultMonth: currentMonthToDisplay, components: {
34276
34330
  Caption: function (_a) {
34277
34331
  var displayMonth = _a.displayMonth;
34278
- return DatePickerHeader({ displayMonth: displayMonth, locale: localeOption });
34332
+ return (e__default["default"].createElement(DatePickerHeader, { locale: localeOption, displayMonth: handleDisplayMonth(displayMonth) }));
34279
34333
  }
34280
34334
  } })))))));
34281
34335
  });