@mtes-mct/monitor-ui 24.1.1 → 24.2.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/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ## [24.2.0](https://github.com/MTES-MCT/monitor-ui/compare/v24.1.1...v24.2.0) (2024-10-18)
2
+
3
+
4
+ ### Features
5
+
6
+ * **fields:** add hasFullDayDefaultValue to date range picker ([5adc234](https://github.com/MTES-MCT/monitor-ui/commit/5adc2340b42aabe02b496ee2044957d47b4027c3))
7
+
8
+
9
+ ### Code Refactoring
10
+
11
+ * **fields:** add early return ([af9360b](https://github.com/MTES-MCT/monitor-ui/commit/af9360b4bb35584f2705524f2d425b5bcb4fd4e8))
12
+
13
+ ## [24.1.1](https://github.com/MTES-MCT/monitor-ui/compare/v24.1.0...v24.1.1) (2024-10-16)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * **utils:** add missing customDayjs typings for relativeTime extension ([c8b3e89](https://github.com/MTES-MCT/monitor-ui/commit/c8b3e89da12879f42c4f1c63fa09fc3b72a3db60))
19
+
1
20
  ## [24.1.0](https://github.com/MTES-MCT/monitor-ui/compare/v24.0.0...v24.1.0) (2024-10-16)
2
21
 
3
22
 
@@ -60,6 +60,7 @@ export interface DateRangePickerProps extends Omit<HTMLAttributes<HTMLFieldSetEl
60
60
  */
61
61
  onChange?: ((nextValue: DateRange | undefined) => Promisable<void>) | ((nextValue: DateAsStringRange | undefined) => Promisable<void>);
62
62
  readOnly?: boolean;
63
+ withFullDayDefaults?: boolean;
63
64
  withTime?: boolean;
64
65
  }
65
66
  export interface DateRangePickerWithDateDateProps extends DateRangePickerProps {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/DateRangePicker/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAkCH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,cAAc,GAAG,UAAU,GAAG,aAAa,CAAC;IAC9F,gHAAgH;IAChH,aAAa,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,IAAI,GAAG,SAAS,CAAA;IAC5D,YAAY,CAAC,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAA;IACxD,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1C,yCAAyC;IACzC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAChC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,QAAQ,CAAC,EACL,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,GACxD,CAAC,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AACD,MAAM,WAAW,gCAAiC,SAAQ,oBAAoB;IAC5E,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,CAAA;CAClE;AACD,MAAM,WAAW,kCAAmC,SAAQ,oBAAoB;IAC9E,YAAY,EAAE,IAAI,CAAA;IAClB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,CAAA;CAC1E;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,gCAAgC,GAAG,GAAG,CAAC,OAAO,CAAA;AACrF,wBAAgB,eAAe,CAAC,KAAK,EAAE,kCAAkC,GAAG,GAAG,CAAC,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/DateRangePicker/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAkCH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,cAAc,GAAG,UAAU,GAAG,aAAa,CAAC;IAC9F,gHAAgH;IAChH,aAAa,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,IAAI,GAAG,SAAS,CAAA;IAC5D,YAAY,CAAC,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAA;IACxD,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1C,yCAAyC;IACzC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAChC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,QAAQ,CAAC,EACL,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,GACxD,CAAC,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AACD,MAAM,WAAW,gCAAiC,SAAQ,oBAAoB;IAC5E,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,CAAA;CAClE;AACD,MAAM,WAAW,kCAAmC,SAAQ,oBAAoB;IAC9E,YAAY,EAAE,IAAI,CAAA;IAClB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,CAAA;CAC1E;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,gCAAgC,GAAG,GAAG,CAAC,OAAO,CAAA;AACrF,wBAAgB,eAAe,CAAC,KAAK,EAAE,kCAAkC,GAAG,GAAG,CAAC,OAAO,CAAA"}
package/index.js CHANGED
@@ -67324,7 +67324,7 @@ var DateRangePosition = /*#__PURE__*/ function(DateRangePosition) {
67324
67324
  }({});
67325
67325
 
67326
67326
  function DateRangePicker({ baseContainer, className, defaultValue, disabled = false, error, hasSingleCalendar = false, isCompact = false, isErrorMessageHidden = false, isHistorical = false, isLabelHidden = false, isLight = false, isRequired = false, isStringDate = false, isTransparent = false, isUndefinedWhenDisabled = false, label, minutesRange = 15, name, onChange, // eslint-disable-next-line @typescript-eslint/naming-convention
67327
- readOnly = false, style, withTime = false, ...nativeProps }) {
67327
+ readOnly = false, style, withFullDayDefaults = false, withTime = false, ...nativeProps }) {
67328
67328
  /* eslint-disable no-null/no-null */ const startDateInputRef = useRef(null);
67329
67329
  const startTimeInputRef = useRef(null);
67330
67330
  const endDateInputRef = useRef(null);
@@ -67422,12 +67422,13 @@ readOnly = false, style, withTime = false, ...nativeProps }) {
67422
67422
  forceUpdate
67423
67423
  ]);
67424
67424
  const handleEndDateInputNext = useCallback(()=>{
67425
- if (!withTime || !endTimeInputRef.current) {
67425
+ if (!withTime || !endTimeInputRef.current || withFullDayDefaults) {
67426
67426
  return;
67427
67427
  }
67428
67428
  endTimeInputRef.current.focus();
67429
67429
  }, [
67430
- withTime
67430
+ withTime,
67431
+ withFullDayDefaults
67431
67432
  ]);
67432
67433
  const handleEndDateInputPrevious = useCallback(()=>{
67433
67434
  if (!startDateInputRef.current) {
@@ -67445,58 +67446,68 @@ readOnly = false, style, withTime = false, ...nativeProps }) {
67445
67446
  if (!endDateInputRef.current) {
67446
67447
  return;
67447
67448
  }
67448
- if (withTime && startTimeInputRef.current) {
67449
+ if (withTime && !withFullDayDefaults && startTimeInputRef.current) {
67449
67450
  startTimeInputRef.current.focus();
67450
67451
  return;
67451
67452
  }
67452
67453
  endDateInputRef.current.focus();
67453
67454
  }, [
67454
- withTime
67455
+ withTime,
67456
+ withFullDayDefaults
67455
67457
  ]);
67456
67458
  const handleDateInputChange = useCallback((position, nextDateTuple, isFilled)=>{
67457
67459
  if (position === DateRangePosition.START) {
67458
67460
  selectedStartDateTupleRef.current = nextDateTuple;
67459
- // If there is NO time input OR there is a time input WHILE a start time is selected,
67460
- if (!withTime || withTime && selectedStartTimeTupleRef.current) {
67461
+ if (!withTime || withTime && withFullDayDefaults || withTime && selectedStartTimeTupleRef.current) {
67461
67462
  // we update the selected start datetime
67462
- const startUtcTimeTuple = withTime && selectedStartTimeTupleRef.current ? selectedStartTimeTupleRef.current : [
67463
+ const startUtcTimeTuple = selectedStartTimeTupleRef.current ? selectedStartTimeTupleRef.current : [
67463
67464
  '00',
67464
67465
  '00'
67465
67466
  ];
67466
67467
  const nextStartDateAsDayjs = getDayjsFromUtcDateAndTimeTuple(nextDateTuple, startUtcTimeTuple);
67468
+ selectedStartTimeTupleRef.current = startUtcTimeTuple;
67467
67469
  selectedStartDateTimeAsDayjsRef.current = nextStartDateAsDayjs;
67468
67470
  callOnChange();
67469
67471
  }
67470
67472
  if (isFilled) {
67471
67473
  handleStartDateInputNext();
67474
+ forceUpdate();
67472
67475
  }
67473
67476
  } else {
67474
67477
  selectedEndDateTupleRef.current = nextDateTuple;
67475
- // If there is NO time input OR there is a time input WHILE a start time is selected,
67476
- if (!withTime || withTime && selectedEndTimeTupleRef.current) {
67478
+ if (!withTime || withTime && withFullDayDefaults || withTime && selectedEndTimeTupleRef.current) {
67477
67479
  // we update the selected end datetime
67478
- const endTimeTuple = withTime ? selectedEndTimeTupleRef.current : [
67480
+ const endTimeTuple = selectedEndTimeTupleRef.current ? selectedEndTimeTupleRef.current : [
67479
67481
  '23',
67480
67482
  '59'
67481
67483
  ];
67482
67484
  const nextEndDateAsDayjs = getDayjsFromUtcDateAndTimeTuple(nextDateTuple, endTimeTuple, true);
67485
+ selectedEndTimeTupleRef.current = endTimeTuple;
67483
67486
  selectedEndDateTimeAsDayjsRef.current = nextEndDateAsDayjs;
67484
67487
  callOnChange();
67485
67488
  }
67486
67489
  if (isFilled) {
67490
+ if (withTime && withFullDayDefaults) {
67491
+ closeRangeCalendarPicker();
67492
+ forceUpdate();
67493
+ return;
67494
+ }
67487
67495
  handleEndDateInputNext();
67488
67496
  }
67489
67497
  }
67490
67498
  }, [
67499
+ closeRangeCalendarPicker,
67500
+ forceUpdate,
67501
+ withFullDayDefaults,
67502
+ withTime,
67491
67503
  callOnChange,
67492
67504
  handleEndDateInputNext,
67493
- handleStartDateInputNext,
67494
- withTime
67505
+ handleStartDateInputNext
67495
67506
  ]);
67496
67507
  const handleRangeCalendarPickerChange = useCallback((nextUtcDateTupleRange)=>{
67497
67508
  const [nextStartUtcDateTuple, nextEndUtcDateTuple] = nextUtcDateTupleRange;
67498
67509
  // If there is NO time input,
67499
- if (!withTime) {
67510
+ if (!withTime || withTime && withFullDayDefaults && !selectedStartTimeTupleRef.current && !selectedEndTimeTupleRef.current) {
67500
67511
  // we have to fix the start datetime at the beginning of the day
67501
67512
  selectedStartDateTimeAsDayjsRef.current = getDayjsFromUtcDateAndTimeTuple(nextStartUtcDateTuple, [
67502
67513
  '00',
@@ -67526,6 +67537,7 @@ readOnly = false, style, withTime = false, ...nativeProps }) {
67526
67537
  }, [
67527
67538
  callOnChange,
67528
67539
  closeRangeCalendarPicker,
67540
+ withFullDayDefaults,
67529
67541
  withTime
67530
67542
  ]);
67531
67543
  const handleTimeInputChange = useCallback((position, nextTimeTuple)=>{
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mtes-mct/monitor-ui",
3
3
  "description": "Common React components, hooks, utilities and CSS stylesheets for MonitorFish, MonitorEnv and RapportNav.",
4
- "version": "24.1.1",
4
+ "version": "24.2.1",
5
5
  "license": "AGPL-3.0",
6
6
  "type": "module",
7
7
  "engines": {