@useblu/ocean-react 1.130.0 → 1.132.0

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/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.132.0](https://github.com/ocean-ds/ocean-web/compare/v1.131.0...v1.132.0) (2026-03-03)
7
+
8
+ ### Features
9
+
10
+ - update data picker adding tooltip list ([#1230](https://github.com/ocean-ds/ocean-web/issues/1230)) ([e0d2fc6](https://github.com/ocean-ds/ocean-web/commit/e0d2fc63ad1a3f592db66155276a147a77bca3b1))
11
+
12
+ # [1.131.0](https://github.com/ocean-ds/ocean-web/compare/v1.130.0...v1.131.0) (2026-03-03)
13
+
14
+ ### Features
15
+
16
+ - update data picker ([#1229](https://github.com/ocean-ds/ocean-web/issues/1229)) ([ac6c26c](https://github.com/ocean-ds/ocean-web/commit/ac6c26cd1199f556c0bc3d48f94408b8916c09cd))
17
+
6
18
  # [1.130.0](https://github.com/ocean-ds/ocean-web/compare/v1.129.0...v1.130.0) (2026-02-12)
7
19
 
8
20
  ### Features
@@ -3,6 +3,9 @@ declare const DatePickerSingle: React.ForwardRefExoticComponent<{
3
3
  label: string | undefined;
4
4
  value: string | undefined;
5
5
  onSelect: (date: string) => void;
6
+ disabledDays?: import("react-day-picker").Matcher | import("react-day-picker").Matcher[];
7
+ disabledDaysMessage?: import("./hooks/useDisabledDaysTooltip").DisabledDaysMessageProp;
8
+ inline?: boolean;
6
9
  } & Omit<import("./types/DateRange.types").DatePickerProps, "onSelect" | "labels" | "values"> & React.RefAttributes<HTMLDivElement>>;
7
10
  export default DatePickerSingle;
8
11
  //# sourceMappingURL=DatePicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/Date/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,QAAA,MAAM,gBAAgB;;;;oIA4GrB,CAAC;AAIF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/Date/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,QAAA,MAAM,gBAAgB;;;;;;;oIA0IrB,CAAC;AAIF,eAAe,gBAAgB,CAAC"}
@@ -5,6 +5,8 @@ declare const DatePickerRange: React.ForwardRefExoticComponent<{
5
5
  onSelect: (dates: import("./types/DateRange.types").DatePickerFields) => void;
6
6
  editable?: boolean;
7
7
  disabled?: boolean;
8
+ disabledDays?: import("react-day-picker").Matcher | import("react-day-picker").Matcher[];
9
+ disabledDaysMessage?: import("./hooks/useDisabledDaysTooltip").DisabledDaysMessageProp;
8
10
  error?: boolean;
9
11
  helperText?: string;
10
12
  startsToday?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"DateRange.d.ts","sourceRoot":"","sources":["../../src/Date/DateRange.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,QAAA,MAAM,eAAe;;;;;;;;;;;kLAgJpB,CAAC;AAIF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"DateRange.d.ts","sourceRoot":"","sources":["../../src/Date/DateRange.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,QAAA,MAAM,eAAe;;;;;;;;;;;;;kLAuKpB,CAAC;AAIF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { TooltipPosition } from '../hooks/useDisabledDaysTooltip';
3
+ export type DisabledDaysTooltipProps = {
4
+ message: string;
5
+ show: boolean;
6
+ position: TooltipPosition;
7
+ testId?: string;
8
+ };
9
+ declare const DisabledDaysTooltip: React.FC<DisabledDaysTooltipProps>;
10
+ export default DisabledDaysTooltip;
11
+ //# sourceMappingURL=DisabledDaysTooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisabledDaysTooltip.d.ts","sourceRoot":"","sources":["../../../src/Date/components/DisabledDaysTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,MAAM,MAAM,wBAAwB,GAAG;IAErC,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,EAAE,OAAO,CAAC;IAEd,QAAQ,EAAE,eAAe,CAAC;IAE1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAsB3D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { IDatePickerProps, IDatePickerReturn } from '../types/DatePicker.types';
2
- export default function useDatePickerSingle({ value, onSelect, startsToday, locale, }: IDatePickerProps): IDatePickerReturn;
2
+ export default function useDatePickerSingle({ value, onSelect, startsToday, locale, disabledDaysMessage, }: IDatePickerProps): IDatePickerReturn;
3
3
  //# sourceMappingURL=useDatePicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDatePicker.d.ts","sourceRoot":"","sources":["../../../src/Date/hooks/useDatePicker.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAShF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,GACP,EAAE,gBAAgB,GAAG,iBAAiB,CAyHtC"}
1
+ {"version":3,"file":"useDatePicker.d.ts","sourceRoot":"","sources":["../../../src/Date/hooks/useDatePicker.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAWhF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,mBAAmB,GACpB,EAAE,gBAAgB,GAAG,iBAAiB,CAgItC"}
@@ -1,3 +1,3 @@
1
1
  import { IDatePickerReturn, IDatePickerProps } from '../types/DateRange.types';
2
- export default function useDatePicker({ values, onSelect, startsToday, locale, }: IDatePickerProps): IDatePickerReturn;
2
+ export default function useDatePicker({ values, onSelect, startsToday, locale, disabledDaysMessage, }: IDatePickerProps): IDatePickerReturn;
3
3
  //# sourceMappingURL=useDateRange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDateRange.d.ts","sourceRoot":"","sources":["../../../src/Date/hooks/useDateRange.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AASlC,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,MAAM,EACN,QAAQ,EACR,WAAW,EACX,MAAM,GACP,EAAE,gBAAgB,GAAG,iBAAiB,CAiNtC"}
1
+ {"version":3,"file":"useDateRange.d.ts","sourceRoot":"","sources":["../../../src/Date/hooks/useDateRange.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAWlC,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,MAAM,EACN,QAAQ,EACR,WAAW,EACX,MAAM,EACN,mBAAmB,GACpB,EAAE,gBAAgB,GAAG,iBAAiB,CAwNtC"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { ActiveModifiers } from 'react-day-picker';
3
+ export type DisabledDayMessageEntry = {
4
+ date: Date;
5
+ message: string;
6
+ };
7
+ export type DisabledDaysMessageProp = string | DisabledDayMessageEntry[];
8
+ export type TooltipPosition = {
9
+ top: number;
10
+ arrowLeft: number;
11
+ } | null;
12
+ interface IUseDisabledDaysTooltipReturn {
13
+ showDisabledTooltip: boolean;
14
+ tooltipMessage: string;
15
+ tooltipPosition: TooltipPosition;
16
+ createDayClickHandler: (originalHandler: (day: Date) => void) => (day: Date, modifiers: ActiveModifiers) => void;
17
+ handleCalendarClick: (event: React.MouseEvent<HTMLDivElement>) => void;
18
+ }
19
+ export declare function useDisabledDaysTooltip(disabledDaysMessage?: DisabledDaysMessageProp): IUseDisabledDaysTooltipReturn;
20
+ export default useDisabledDaysTooltip;
21
+ //# sourceMappingURL=useDisabledDaysTooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDisabledDaysTooltip.d.ts","sourceRoot":"","sources":["../../../src/Date/hooks/useDisabledDaysTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,MAAM,uBAAuB,GAAG;IAEpC,IAAI,EAAE,IAAI,CAAC;IAEX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAOF,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,uBAAuB,EAAE,CAAC;AAEzE,MAAM,MAAM,eAAe,GAAG;IAE5B,GAAG,EAAE,MAAM,CAAC;IAEZ,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAAC;AAET,UAAU,6BAA6B;IACrC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,qBAAqB,EAAE,CACrB,eAAe,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,KACjC,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;IACrD,mBAAmB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CACxE;AAED,wBAAgB,sBAAsB,CACpC,mBAAmB,CAAC,EAAE,uBAAuB,GAC5C,6BAA6B,CA6F/B;AAED,eAAe,sBAAsB,CAAC"}
@@ -1,27 +1,34 @@
1
1
  import * as DateFns from 'date-fns';
2
- import { ClassNames, DateFormatter } from 'react-day-picker';
2
+ import { ClassNames, DateFormatter, Matcher } from 'react-day-picker';
3
3
  import { DatePickerProps } from './DateRange.types';
4
+ import { DisabledDaysMessageProp, TooltipPosition } from '../hooks/useDisabledDaysTooltip';
4
5
  export type DatePickerSingleProps = {
5
6
  label: string | undefined;
6
7
  value: string | undefined;
7
8
  onSelect: (date: string) => void;
9
+ disabledDays?: Matcher | Matcher[];
10
+ disabledDaysMessage?: DisabledDaysMessageProp;
11
+ inline?: boolean;
8
12
  } & Omit<DatePickerProps, 'labels' | 'values' | 'onSelect'>;
9
- export type IDatePickerProps = Pick<DatePickerSingleProps, 'value' | 'onSelect' | 'startsToday' | 'locale'>;
13
+ export type IDatePickerProps = Pick<DatePickerSingleProps, 'value' | 'onSelect' | 'startsToday' | 'locale' | 'disabledDays' | 'disabledDaysMessage'>;
10
14
  export type IDatePickerReturn = {
11
15
  input1Ref: React.Ref<HTMLInputElement>;
12
16
  input2Ref: React.Ref<HTMLInputElement>;
13
17
  showDayPicker: boolean;
14
18
  selectedDay: Date;
15
- CustomStyles: ClassNames;
19
+ CustomStyles: (inline: boolean) => ClassNames;
16
20
  localeOption: DateFns.Locale;
17
21
  currentField: string;
18
22
  inputPlaceholder: string;
19
- handleDayClick: (day: Date) => void;
20
23
  inputChange: ({ target }: React.ChangeEvent<HTMLInputElement>) => void;
21
24
  createHandleToggleClick: (fieldId: string) => void;
22
- disabledDays: (day: Date) => boolean;
23
25
  formatDay: DateFormatter;
24
26
  handleCloseByOutside: () => void;
25
27
  currentMonthToDisplay: Date | undefined;
28
+ showDisabledTooltip: boolean;
29
+ tooltipMessage: string;
30
+ tooltipPosition: TooltipPosition;
31
+ handleCalendarClick: (event: React.MouseEvent<HTMLDivElement>) => void;
32
+ handleDayClickWithModifiers: (day: Date, modifiers: import('react-day-picker').ActiveModifiers) => void;
26
33
  };
27
34
  //# sourceMappingURL=DatePicker.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.types.d.ts","sourceRoot":"","sources":["../../../src/Date/types/DatePicker.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,qBAAqB,EACrB,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAChD,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,UAAU,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACvE,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC;IACrC,SAAS,EAAE,aAAa,CAAC;IACzB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,qBAAqB,EAAE,IAAI,GAAG,SAAS,CAAC;CACzC,CAAC"}
1
+ {"version":3,"file":"DatePicker.types.d.ts","sourceRoot":"","sources":["../../../src/Date/types/DatePicker.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAKnC,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,qBAAqB,EACnB,OAAO,GACP,UAAU,GACV,aAAa,GACb,QAAQ,GACR,cAAc,GACd,qBAAqB,CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,UAAU,CAAC;IAC9C,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACvE,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,aAAa,CAAC;IACzB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,qBAAqB,EAAE,IAAI,GAAG,SAAS,CAAC;IACxC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACvE,2BAA2B,EAAE,CAC3B,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,OAAO,kBAAkB,EAAE,eAAe,KAClD,IAAI,CAAC;CACX,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import * as DateFns from 'date-fns';
3
3
  import { Locale } from 'date-fns';
4
- import { DateRange, ClassNames, DateFormatter } from 'react-day-picker';
4
+ import { DateRange, ClassNames, DateFormatter, Matcher } from 'react-day-picker';
5
+ import { DisabledDaysMessageProp, TooltipPosition } from '../hooks/useDisabledDaysTooltip';
5
6
  export type DatePickerFields = {
6
7
  from: string;
7
8
  to: string;
@@ -12,13 +13,15 @@ export type DatePickerProps = {
12
13
  onSelect: (dates: DatePickerFields) => void;
13
14
  editable?: boolean;
14
15
  disabled?: boolean;
16
+ disabledDays?: Matcher | Matcher[];
17
+ disabledDaysMessage?: DisabledDaysMessageProp;
15
18
  error?: boolean;
16
19
  helperText?: string;
17
20
  startsToday?: boolean;
18
21
  locale?: Locale;
19
22
  className?: string;
20
23
  } & React.ComponentPropsWithoutRef<'div'>;
21
- export type IDatePickerProps = Pick<DatePickerProps, 'values' | 'onSelect' | 'startsToday' | 'locale'>;
24
+ export type IDatePickerProps = Pick<DatePickerProps, 'values' | 'onSelect' | 'startsToday' | 'locale' | 'disabledDaysMessage'>;
22
25
  export type IDatePickerReturn = {
23
26
  input1Ref: React.Ref<HTMLInputElement>;
24
27
  input2Ref: React.Ref<HTMLInputElement>;
@@ -32,9 +35,13 @@ export type IDatePickerReturn = {
32
35
  inputPlaceholder: string;
33
36
  handleDayMouseEnter: (day: Date) => void;
34
37
  handleDayClick: (day: Date) => void;
38
+ handleDayClickWithModifiers: (day: Date, modifiers: import('react-day-picker').ActiveModifiers) => void;
39
+ showDisabledTooltip: boolean;
40
+ tooltipMessage: string;
41
+ tooltipPosition: TooltipPosition;
42
+ handleCalendarClick: (event: React.MouseEvent<HTMLDivElement>) => void;
35
43
  inputChange: ({ target }: React.ChangeEvent<HTMLInputElement>) => void;
36
44
  createHandleToggleClick: (fieldId: string) => void;
37
- disabledDays: (day: Date) => boolean;
38
45
  formatDay: DateFormatter;
39
46
  handleCloseByOutside: () => void;
40
47
  handleDisplayMonth: (displayMonth: Date) => Date;
@@ -1 +1 @@
1
- {"version":3,"file":"DateRange.types.d.ts","sourceRoot":"","sources":["../../../src/Date/types/DateRange.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAI5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAM1B,MAAM,EAAE,gBAAgB,CAAC;IAMzB,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAM5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAMnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAMnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAMhB,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAMtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAE1C,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,eAAe,EACf,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CACjD,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,YAAY,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,UAAU,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACvE,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC;IACrC,SAAS,EAAE,aAAa,CAAC;IACzB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,kBAAkB,EAAE,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC;IACjD,qBAAqB,EAAE,IAAI,GAAG,SAAS,CAAC;CACzC,CAAC"}
1
+ {"version":3,"file":"DateRange.types.d.ts","sourceRoot":"","sources":["../../../src/Date/types/DateRange.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,OAAO,EACR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAI5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAM1B,MAAM,EAAE,gBAAgB,CAAC;IAMzB,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAM5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAMnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAMnB,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAOnC,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAM9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAMhB,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAMtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAE1C,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,eAAe,EACf,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,qBAAqB,CACzE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,YAAY,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,UAAU,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,2BAA2B,EAAE,CAC3B,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,OAAO,kBAAkB,EAAE,eAAe,KAClD,IAAI,CAAC;IACV,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACvE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACvE,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,aAAa,CAAC;IACzB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,kBAAkB,EAAE,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,CAAC;IACjD,qBAAqB,EAAE,IAAI,GAAG,SAAS,CAAC;CACzC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Matcher } from 'react-day-picker';
2
+ export declare function clickDisabledDay(): void;
3
+ export declare function openCalendar(inputTestId?: string): void;
4
+ export declare function expectTooltipToAppear(message: string, timeout?: number): Promise<void>;
5
+ export declare function expectTooltipNotToAppear(): void;
6
+ export declare function expectTooltipNotToAppearAsync(): Promise<void>;
7
+ export declare const commonDisabledDaysProps: {
8
+ disabledDays: Matcher[];
9
+ disabledDaysMessage: string;
10
+ };
11
+ export declare function getFirstDisabledDate(): Date;
12
+ export declare const LIST_DISABLED_MESSAGE = "Feriado municipal";
13
+ export declare function makeDisabledDaysListProps(): {
14
+ disabledDays: Matcher[];
15
+ disabledDaysMessage: {
16
+ date: Date;
17
+ message: string;
18
+ }[];
19
+ };
20
+ //# sourceMappingURL=testHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testHelpers.d.ts","sourceRoot":"","sources":["../../../src/Date/utils/testHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAK3C,wBAAgB,gBAAgB,IAAI,IAAI,CAavC;AAKD,wBAAgB,YAAY,CAAC,WAAW,SAAuB,GAAG,IAAI,CAIrE;AAKD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,OAAO,SAAO,GACb,OAAO,CAAC,IAAI,CAAC,CASf;AAKD,wBAAgB,wBAAwB,IAAI,IAAI,CAI/C;AAKD,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAMnE;AAED,eAAO,MAAM,uBAAuB;kBACQ,OAAO,EAAE;;CAEpD,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AAGD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD,wBAAgB,yBAAyB,IAAI;IAC3C,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,mBAAmB,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxD,CAOA"}
package/index.es.js CHANGED
@@ -34590,8 +34590,72 @@ var getInputPlaceholder = function (localeOption) {
34590
34590
  return localeOption.code === 'pt-BR' ? 'dd/mm/aaaa' : 'mm/dd/yyyy';
34591
34591
  };
34592
34592
 
34593
+ function useDisabledDaysTooltip(disabledDaysMessage) {
34594
+ var _a = e.useState(false), showDisabledTooltip = _a[0], setShowDisabledTooltip = _a[1];
34595
+ var _b = e.useState(''), tooltipMessage = _b[0], setTooltipMessage = _b[1];
34596
+ var _c = e.useState(null), tooltipPosition = _c[0], setTooltipPosition = _c[1];
34597
+ var tooltipTimerRef = e.useRef(null);
34598
+ var lastDisabledClickRef = e.useRef(null);
34599
+ var resolveMessage = e.useCallback(function (day) {
34600
+ var _a;
34601
+ if (!disabledDaysMessage)
34602
+ return '';
34603
+ if (typeof disabledDaysMessage === 'string')
34604
+ return disabledDaysMessage;
34605
+ if (!day)
34606
+ return '';
34607
+ var entry = disabledDaysMessage.find(function (e) { return isSameDay(e.date, day); });
34608
+ return (_a = entry === null || entry === void 0 ? void 0 : entry.message) !== null && _a !== void 0 ? _a : '';
34609
+ }, [disabledDaysMessage]);
34610
+ var handleCalendarClick = e.useCallback(function (event) {
34611
+ if (!disabledDaysMessage)
34612
+ return;
34613
+ var target = event.target;
34614
+ var disabledDay = target.closest('button.ods-date__disabled');
34615
+ if (!disabledDay)
34616
+ return;
34617
+ var message = resolveMessage(lastDisabledClickRef.current);
34618
+ if (!message)
34619
+ return;
34620
+ var container = event.currentTarget;
34621
+ var containerRect = container.getBoundingClientRect();
34622
+ var dayRect = disabledDay.getBoundingClientRect();
34623
+ var arrowLeft = dayRect.left - containerRect.left + dayRect.width / 2;
34624
+ var top = dayRect.top - containerRect.top - 12;
34625
+ if (tooltipTimerRef.current)
34626
+ clearTimeout(tooltipTimerRef.current);
34627
+ setTooltipMessage(message);
34628
+ setTooltipPosition({ top: top, arrowLeft: arrowLeft });
34629
+ setShowDisabledTooltip(true);
34630
+ tooltipTimerRef.current = setTimeout(function () { return setShowDisabledTooltip(false); }, 5000);
34631
+ }, [disabledDaysMessage, resolveMessage]);
34632
+ var createDayClickHandler = e.useCallback(function (originalHandler) {
34633
+ return function (day, modifiers) {
34634
+ if (modifiers.disabled) {
34635
+ lastDisabledClickRef.current = day;
34636
+ return;
34637
+ }
34638
+ lastDisabledClickRef.current = null;
34639
+ setShowDisabledTooltip(false);
34640
+ setTooltipPosition(null);
34641
+ originalHandler(day);
34642
+ };
34643
+ }, []);
34644
+ e.useEffect(function () { return function () {
34645
+ if (tooltipTimerRef.current)
34646
+ clearTimeout(tooltipTimerRef.current);
34647
+ }; }, []);
34648
+ return {
34649
+ showDisabledTooltip: showDisabledTooltip,
34650
+ tooltipMessage: tooltipMessage,
34651
+ tooltipPosition: tooltipPosition,
34652
+ createDayClickHandler: createDayClickHandler,
34653
+ handleCalendarClick: handleCalendarClick,
34654
+ };
34655
+ }
34656
+
34593
34657
  function useDatePickerSingle(_a) {
34594
- var value = _a.value, onSelect = _a.onSelect, startsToday = _a.startsToday, locale = _a.locale;
34658
+ var value = _a.value, onSelect = _a.onSelect, startsToday = _a.startsToday, locale = _a.locale, disabledDaysMessage = _a.disabledDaysMessage;
34595
34659
  var localeOption = locale || ptBr;
34596
34660
  var localeDateFormat = localeOption &&
34597
34661
  localeOption.formatLong &&
@@ -34602,11 +34666,8 @@ function useDatePickerSingle(_a) {
34602
34666
  var _c = e.useState(''), currentField = _c[0], setCurrentField = _c[1];
34603
34667
  var _d = e.useState(), currentMonthToDisplay = _d[0], setCurrentMonthToDisplay = _d[1];
34604
34668
  var _e = e.useState(''), datePickerCache = _e[0], setDatePickerCache = _e[1];
34669
+ var _f = useDisabledDaysTooltip(disabledDaysMessage), showDisabledTooltip = _f.showDisabledTooltip, tooltipMessage = _f.tooltipMessage, tooltipPosition = _f.tooltipPosition, createDayClickHandler = _f.createDayClickHandler, handleCalendarClick = _f.handleCalendarClick;
34605
34670
  var fromDate = parse$1(value || '', localeDateFormat, new Date());
34606
- e.useEffect(function () {
34607
- if (value === '')
34608
- setCurrentField('');
34609
- }, [value]);
34610
34671
  var updateState = function (updateData, updateCache) {
34611
34672
  onSelect(updateData);
34612
34673
  return updateCache && setDatePickerCache(updateData);
@@ -34620,14 +34681,11 @@ function useDatePickerSingle(_a) {
34620
34681
  setShowDayPicker(false);
34621
34682
  }
34622
34683
  };
34684
+ var handleDayClickWithModifiers = createDayClickHandler(handleDayClick);
34623
34685
  var createHandleToggleClick = function (fieldId) {
34624
34686
  setShowDayPicker(!showDayPicker);
34625
34687
  setCurrentField(fieldId);
34626
34688
  };
34627
- var disabledDays = function (day) {
34628
- var startToday = handleValidateStartsToday(startsToday, day);
34629
- return startToday;
34630
- };
34631
34689
  var closeCalendarDelay = function () {
34632
34690
  setTimeout(function () { return setShowDayPicker(false); }, 500);
34633
34691
  };
@@ -34652,8 +34710,10 @@ function useDatePickerSingle(_a) {
34652
34710
  var parsedDate = parse$1(date, 'dd/MM/yyyy', new Date());
34653
34711
  setCurrentMonthToDisplay(parsedDate);
34654
34712
  };
34655
- var CustomStyles = {
34656
- root: 'ods-date__calendar ods-date_calendar_m1',
34713
+ var CustomStyles = function (inline) { return ({
34714
+ root: inline
34715
+ ? 'ods-date__inline-calendar'
34716
+ : 'ods-date__calendar ods-date_calendar_m1',
34657
34717
  caption: 'ods-date__caption',
34658
34718
  nav_button: 'ods-date__navButtons',
34659
34719
  nav_button_previous: 'ods-date__navButtonPrev-datepicker',
@@ -34669,9 +34729,13 @@ function useDatePickerSingle(_a) {
34669
34729
  day_today: 'ods-date__today',
34670
34730
  day_selected: 'ods-date__selected-datepicker',
34671
34731
  day_disabled: 'ods-date__disabled',
34672
- };
34732
+ }); };
34673
34733
  var selectedDay = fromDate;
34674
34734
  var inputPlaceholder = getInputPlaceholder(localeOption);
34735
+ e.useEffect(function () {
34736
+ if (value === '')
34737
+ setCurrentField('');
34738
+ }, [value]);
34675
34739
  return {
34676
34740
  input1Ref: input1Ref,
34677
34741
  input2Ref: input2Ref,
@@ -34681,13 +34745,16 @@ function useDatePickerSingle(_a) {
34681
34745
  localeOption: localeOption,
34682
34746
  currentField: currentField,
34683
34747
  inputPlaceholder: inputPlaceholder,
34684
- handleDayClick: handleDayClick,
34685
34748
  inputChange: inputChange,
34686
34749
  createHandleToggleClick: createHandleToggleClick,
34687
- disabledDays: disabledDays,
34688
34750
  formatDay: formatDay,
34689
34751
  handleCloseByOutside: handleCloseByOutside,
34690
34752
  currentMonthToDisplay: currentMonthToDisplay,
34753
+ showDisabledTooltip: showDisabledTooltip,
34754
+ tooltipMessage: tooltipMessage,
34755
+ tooltipPosition: tooltipPosition,
34756
+ handleCalendarClick: handleCalendarClick,
34757
+ handleDayClickWithModifiers: handleDayClickWithModifiers,
34691
34758
  };
34692
34759
  }
34693
34760
 
@@ -34721,34 +34788,49 @@ var DatePickerHeader = function (_a) {
34721
34788
  e.createElement(re, { size: 20 }))));
34722
34789
  };
34723
34790
 
34791
+ var DisabledDaysTooltip = function (_a) {
34792
+ var message = _a.message, show = _a.show, position = _a.position, _b = _a.testId, testId = _b === void 0 ? 'datepicker-disabled-tooltip' : _b;
34793
+ if (!show || !position)
34794
+ return null;
34795
+ return (e.createElement("div", { className: "ods-date__disabled-tooltip", role: "tooltip", "data-testid": testId, style: { top: "".concat(position.top, "px") } },
34796
+ message,
34797
+ e.createElement("div", { className: "ods-date__disabled-tooltip__arrow", style: { left: "".concat(position.arrowLeft, "px") } })));
34798
+ };
34799
+
34724
34800
  var DatePickerSingle = e.forwardRef(function (_a, ref) {
34725
- 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"]);
34726
- 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;
34801
+ var label = _a.label, value = _a.value, onSelect = _a.onSelect, editable = _a.editable, disabled = _a.disabled, _b = _a.inline, inline = _b === void 0 ? false : _b, error = _a.error, helperText = _a.helperText, startsToday = _a.startsToday, disabledDays = _a.disabledDays, disabledDaysMessage = _a.disabledDaysMessage, className = _a.className, locale = _a.locale, rest = __rest$1(_a, ["label", "value", "onSelect", "editable", "disabled", "inline", "error", "helperText", "startsToday", "disabledDays", "disabledDaysMessage", "className", "locale"]);
34802
+ var _c = useDatePickerSingle({
34803
+ value: value,
34804
+ onSelect: onSelect,
34805
+ startsToday: startsToday,
34806
+ locale: locale,
34807
+ disabledDaysMessage: disabledDaysMessage,
34808
+ }), input1Ref = _c.input1Ref, showDayPicker = _c.showDayPicker, selectedDay = _c.selectedDay, CustomStyles = _c.CustomStyles, localeOption = _c.localeOption, currentField = _c.currentField, inputPlaceholder = _c.inputPlaceholder, inputChange = _c.inputChange, createHandleToggleClick = _c.createHandleToggleClick, formatDay = _c.formatDay, handleCloseByOutside = _c.handleCloseByOutside, currentMonthToDisplay = _c.currentMonthToDisplay, showDisabledTooltip = _c.showDisabledTooltip, tooltipMessage = _c.tooltipMessage, tooltipPosition = _c.tooltipPosition, handleCalendarClick = _c.handleCalendarClick, handleDayClickWithModifiers = _c.handleDayClickWithModifiers;
34809
+ var calendarOpen = inline || showDayPicker;
34810
+ var CaptionWithTooltip = function (_a) {
34811
+ var displayMonth = _a.displayMonth;
34812
+ return (e.createElement(e.Fragment, null, DatePickerHeader({ displayMonth: displayMonth, locale: localeOption, mode: 'single' })));
34813
+ };
34727
34814
  return (e.createElement("div", null,
34728
- showDayPicker && (e.createElement("div", { className: "ods-date-background", "data-testid": "date-picker-outside", onClick: handleCloseByOutside })),
34815
+ calendarOpen && !inline && (e.createElement("div", { className: "ods-date-background", "data-testid": "date-picker-outside", onClick: handleCloseByOutside })),
34729
34816
  e.createElement("div", __assign$1({ className: classNames('ods-date', className), ref: ref }, rest),
34730
34817
  e.createElement("div", { className: "ods-date__form-row-datepicker" },
34731
- e.createElement("div", { className: "ods-date__form-controls", "data-testid": "date-picker-first-field-wrapper", onClick: function () { return createHandleToggleClick('start-date'); } },
34818
+ !inline && (e.createElement("div", { className: "ods-date__form-controls", "data-testid": "date-picker-first-field-wrapper", onClick: function () { return createHandleToggleClick('start-date'); } },
34732
34819
  label && e.createElement("label", { htmlFor: "start-date" }, label),
34733
34820
  e.createElement(Input, { ref: input1Ref, "data-testid": "datepicker-input-1", id: "start-date", type: "text", className: classNames({
34734
34821
  'date-field-focussed': currentField === 'start-date',
34735
- }), name: "start-date", value: value, onChange: (editable && inputChange) || undefined, placeholder: inputPlaceholder, adornment: e.createElement(On, { size: 20, stroke: "#B6B9CC" }), autoComplete: "off", readOnly: !editable, disabled: disabled, error: !disabled && error, inputMode: "numeric", helperText: (!disabled && !showDayPicker && helperText) || undefined, maxLength: 10 })),
34736
- !disabled && showDayPicker && (e.createElement("div", { "data-testid": "datepicker-calendar" },
34737
- e.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: {
34738
- Caption: function (_a) {
34739
- var displayMonth = _a.displayMonth;
34740
- return DatePickerHeader({
34741
- displayMonth: displayMonth,
34742
- locale: localeOption,
34743
- mode: 'single',
34744
- });
34745
- },
34746
- } })))))));
34822
+ }), name: "start-date", value: value, onChange: (editable && inputChange) || undefined, placeholder: inputPlaceholder, adornment: e.createElement(On, { size: 20, stroke: "#B6B9CC" }), autoComplete: "off", readOnly: !editable, disabled: disabled, error: !disabled && error, inputMode: "numeric", helperText: (!disabled && !showDayPicker && helperText) || undefined, maxLength: 10 }))),
34823
+ inline && label && (e.createElement("div", { className: "ods-date__inline-label" }, label)),
34824
+ !disabled && calendarOpen && (e.createElement("div", { "data-testid": "datepicker-calendar", className: "ods-date__calendar-container", role: "presentation", onClick: handleCalendarClick },
34825
+ e.createElement(DayPicker, { mode: "single", locale: localeOption, weekStartsOn: 0, classNames: CustomStyles(inline), className: className, onDayClick: handleDayClickWithModifiers, formatters: { formatDay: formatDay }, selected: selectedDay, disabled: startsToday ? { before: new Date() } : disabledDays, defaultMonth: currentMonthToDisplay, components: {
34826
+ Caption: CaptionWithTooltip,
34827
+ } }),
34828
+ disabledDaysMessage && (e.createElement(DisabledDaysTooltip, { message: tooltipMessage, show: showDisabledTooltip, position: tooltipPosition }))))))));
34747
34829
  });
34748
34830
  DatePickerSingle.displayName = 'DatePickerSingle';
34749
34831
 
34750
34832
  function useDatePicker(_a) {
34751
- var values = _a.values, onSelect = _a.onSelect, startsToday = _a.startsToday, locale = _a.locale;
34833
+ var values = _a.values, onSelect = _a.onSelect, startsToday = _a.startsToday, locale = _a.locale, disabledDaysMessage = _a.disabledDaysMessage;
34752
34834
  var localeOption = locale || ptBr;
34753
34835
  var localeDateFormat = localeOption &&
34754
34836
  localeOption.formatLong &&
@@ -34760,12 +34842,9 @@ function useDatePicker(_a) {
34760
34842
  var _d = e.useState(), currentMonthToDisplay = _d[0], setCurrentMonthToDisplay = _d[1];
34761
34843
  var _e = e.useState({ from: '', to: '' }), datePickerCache = _e[0], setDatePickerCache = _e[1];
34762
34844
  var _f = e.useState(false), firstInputClicked = _f[0], setFirstInputClicked = _f[1];
34845
+ var _g = useDisabledDaysTooltip(disabledDaysMessage), showDisabledTooltip = _g.showDisabledTooltip, tooltipMessage = _g.tooltipMessage, tooltipPosition = _g.tooltipPosition, createDayClickHandler = _g.createDayClickHandler, handleCalendarClick = _g.handleCalendarClick;
34763
34846
  var fromDate = parse$1(values.from, localeDateFormat, new Date());
34764
34847
  var toDate = parse$1(values.to, localeDateFormat, new Date());
34765
- e.useEffect(function () {
34766
- if (values.from === '')
34767
- setCurrentField('');
34768
- }, [values.from]);
34769
34848
  var updateState = function (updateData, updateCache) {
34770
34849
  onSelect(updateData);
34771
34850
  return updateCache && setDatePickerCache(updateData);
@@ -34803,6 +34882,7 @@ function useDatePicker(_a) {
34803
34882
  }
34804
34883
  }
34805
34884
  };
34885
+ var handleDayClickWithModifiers = createDayClickHandler(handleDayClick);
34806
34886
  var updateCurrentMonth = function (date) {
34807
34887
  var parsedDate = parse$1(date, 'dd/MM/yyyy', new Date());
34808
34888
  setCurrentMonthToDisplay(parsedDate);
@@ -34836,10 +34916,6 @@ function useDatePicker(_a) {
34836
34916
  setShowDayPicker(!showDayPicker);
34837
34917
  setCurrentField(fieldId);
34838
34918
  };
34839
- var disabledDays = function (day) {
34840
- var startToday = handleValidateStartsToday(startsToday, day);
34841
- return startToday || (currentField === 'end-date' && day < fromDate);
34842
- };
34843
34919
  var closeCalendarDelay = function () {
34844
34920
  setTimeout(function () { return setShowDayPicker(false); }, 500);
34845
34921
  };
@@ -34900,6 +34976,10 @@ function useDatePicker(_a) {
34900
34976
  to: toDate,
34901
34977
  };
34902
34978
  var inputPlaceholder = getInputPlaceholder(localeOption);
34979
+ e.useEffect(function () {
34980
+ if (values.from === '')
34981
+ setCurrentField('');
34982
+ }, [values.from]);
34903
34983
  return {
34904
34984
  input1Ref: input1Ref,
34905
34985
  input2Ref: input2Ref,
@@ -34913,9 +34993,13 @@ function useDatePicker(_a) {
34913
34993
  inputPlaceholder: inputPlaceholder,
34914
34994
  handleDayMouseEnter: handleDayMouseEnter,
34915
34995
  handleDayClick: handleDayClick,
34996
+ handleDayClickWithModifiers: handleDayClickWithModifiers,
34997
+ showDisabledTooltip: showDisabledTooltip,
34998
+ tooltipMessage: tooltipMessage,
34999
+ tooltipPosition: tooltipPosition,
35000
+ handleCalendarClick: handleCalendarClick,
34916
35001
  inputChange: inputChange,
34917
35002
  createHandleToggleClick: createHandleToggleClick,
34918
- disabledDays: disabledDays,
34919
35003
  formatDay: formatDay,
34920
35004
  handleCloseByOutside: handleCloseByOutside,
34921
35005
  handleDisplayMonth: handleDisplayMonth,
@@ -34924,8 +35008,14 @@ function useDatePicker(_a) {
34924
35008
  }
34925
35009
 
34926
35010
  var DatePickerRange = e.forwardRef(function (_a, ref) {
34927
- 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"]);
34928
- 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;
35011
+ 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, disabledDays = _a.disabledDays, disabledDaysMessage = _a.disabledDaysMessage, className = _a.className, locale = _a.locale, rest = __rest$1(_a, ["labels", "values", "onSelect", "editable", "disabled", "error", "helperText", "startsToday", "disabledDays", "disabledDaysMessage", "className", "locale"]);
35012
+ var _b = useDatePicker({
35013
+ values: values,
35014
+ onSelect: onSelect,
35015
+ startsToday: startsToday,
35016
+ locale: locale,
35017
+ disabledDaysMessage: disabledDaysMessage,
35018
+ }), 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, handleDayClickWithModifiers = _b.handleDayClickWithModifiers, showDisabledTooltip = _b.showDisabledTooltip, tooltipMessage = _b.tooltipMessage, tooltipPosition = _b.tooltipPosition, handleCalendarClick = _b.handleCalendarClick, handleDisplayMonth = _b.handleDisplayMonth, inputChange = _b.inputChange, createHandleToggleClick = _b.createHandleToggleClick, formatDay = _b.formatDay, handleCloseByOutside = _b.handleCloseByOutside, currentMonthToDisplay = _b.currentMonthToDisplay;
34929
35019
  return (e.createElement("div", null,
34930
35020
  showDayPicker && (e.createElement("div", { className: "ods-date-background", "data-testid": "date-picker-outside", onClick: handleCloseByOutside })),
34931
35021
  e.createElement("div", __assign$1({ className: classNames('ods-date', className), ref: ref }, rest),
@@ -34940,13 +35030,14 @@ var DatePickerRange = e.forwardRef(function (_a, ref) {
34940
35030
  e.createElement(Input, { ref: input2Ref, "data-testid": "datepicker-input-2", id: "end-date", type: "text", className: classNames({
34941
35031
  'date-field-focussed': currentField === 'end-date',
34942
35032
  }), name: "end-date", value: values.to, onChange: (editable && inputChange) || undefined, placeholder: inputPlaceholder, adornment: e.createElement(On, { size: 20, stroke: "#B6B9CC" }), autoComplete: "off", readOnly: !editable, disabled: disabled, error: !disabled && error, inputMode: "numeric", helperText: (!disabled && !showDayPicker && helperText) || undefined, maxLength: 10 })),
34943
- !disabled && showDayPicker && (e.createElement("div", { "data-testid": "datepicker-calendar" },
34944
- e.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: {
35033
+ !disabled && showDayPicker && (e.createElement("div", { "data-testid": "datepicker-calendar", className: "ods-date__calendar-container", role: "presentation", onClick: handleCalendarClick },
35034
+ e.createElement(DayPicker, { mode: "range", locale: localeOption, weekStartsOn: 0, classNames: CustomStyles, className: className, onDayClick: handleDayClickWithModifiers, onDayMouseEnter: function (day) { return handleDayMouseEnter(day); }, formatters: { formatDay: formatDay }, selected: selectedDays, disabled: startsToday ? { before: new Date() } : disabledDays, defaultMonth: currentMonthToDisplay, components: {
34945
35035
  Caption: function (_a) {
34946
35036
  var displayMonth = _a.displayMonth;
34947
35037
  return (e.createElement(DatePickerHeader, { locale: localeOption, displayMonth: handleDisplayMonth(displayMonth) }));
34948
35038
  },
34949
- } })))))));
35039
+ } }),
35040
+ disabledDaysMessage && (e.createElement(DisabledDaysTooltip, { message: tooltipMessage, show: showDisabledTooltip, position: tooltipPosition }))))))));
34950
35041
  });
34951
35042
  DatePickerRange.displayName = 'DatePickerRange';
34952
35043