@digital-ai/dot-components 2.7.2 → 2.7.4

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.umd.js CHANGED
@@ -4723,6 +4723,9 @@
4723
4723
  });
4724
4724
  };
4725
4725
 
4726
+ function ariaLabelOrAlternates(ariaLabel, label, placeholder) {
4727
+ return ariaLabel || label || placeholder;
4728
+ }
4726
4729
  var DEFAULT_ACTION_ITEM_TEXT = 'Add new item';
4727
4730
  var DotAutoComplete = function DotAutoComplete(_a) {
4728
4731
  var ListboxComponent = _a.ListboxComponent,
@@ -4745,6 +4748,7 @@
4745
4748
  filterSelectedOptions = _f === void 0 ? true : _f,
4746
4749
  _g = _a.freesolo,
4747
4750
  freesolo = _g === void 0 ? true : _g,
4751
+ checkIfOptionDisabled = _a.checkIfOptionDisabled,
4748
4752
  _h = _a.group,
4749
4753
  group = _h === void 0 ? false : _h,
4750
4754
  helperText = _a.helperText,
@@ -4982,6 +4986,7 @@
4982
4986
  getOptionLabel: function (option) {
4983
4987
  return parseAutoCompleteValue(option);
4984
4988
  },
4989
+ getOptionDisabled: checkIfOptionDisabled,
4985
4990
  groupBy: group ? function (option) {
4986
4991
  return option.group;
4987
4992
  } : undefined,
@@ -5041,11 +5046,17 @@
5041
5046
  error: error,
5042
5047
  focused: readOnly ? false : undefined,
5043
5048
  helperText: helperText,
5049
+ id: inputId,
5044
5050
  inputProps: __assign(__assign({}, inputProps), {
5051
+ 'aria-label': ariaLabelOrAlternates(ariaLabel, label, placeholder),
5052
+ 'data-testid': dataTestId && dataTestId + "-input",
5045
5053
  id: inputId,
5046
5054
  className: useStylesWithRootClass(inputProps.className, 'dot-input'),
5047
5055
  readOnly: readOnly
5048
5056
  }),
5057
+ InputLabelProps: {
5058
+ htmlFor: inputId
5059
+ },
5049
5060
  InputProps: __assign(__assign({}, params.InputProps), {
5050
5061
  endAdornment: !readOnly ? renderEndAdornment(params.InputProps.endAdornment) : undefined
5051
5062
  }),
@@ -7601,27 +7612,34 @@
7601
7612
  onEditStateChange = _a.onEditStateChange,
7602
7613
  readOnly = _a.readOnly,
7603
7614
  selectTextOnEdit = _a.selectTextOnEdit,
7604
- _c = _a.tabIndex,
7605
- tabIndex = _c === void 0 ? 0 : _c,
7615
+ _c = _a.startEditable,
7616
+ startEditable = _c === void 0 ? false : _c,
7617
+ _d = _a.tabIndex,
7618
+ tabIndex = _d === void 0 ? 0 : _d,
7606
7619
  tooltip = _a.tooltip,
7607
- _d = _a.typography,
7608
- typography = _d === void 0 ? 'body1' : _d,
7609
- _e = _a.value,
7610
- value = _e === void 0 ? '' : _e;
7611
- var _f = React.useState(false),
7612
- editing = _f[0],
7613
- setEditing = _f[1];
7620
+ _e = _a.typography,
7621
+ typography = _e === void 0 ? 'body1' : _e,
7622
+ _f = _a.value,
7623
+ value = _f === void 0 ? '' : _f;
7614
7624
  var _g = React.useState(false),
7615
- showTooltip = _g[0],
7616
- setShowTooltip = _g[1];
7617
- var _h = React.useState(''),
7618
- originalValue = _h[0],
7619
- setOriginalValue = _h[1];
7620
- var _j = React.useState(value),
7621
- inputValue = _j[0],
7622
- setInputValue = _j[1];
7625
+ editing = _g[0],
7626
+ setEditing = _g[1];
7627
+ var _h = React.useState(false),
7628
+ showTooltip = _h[0],
7629
+ setShowTooltip = _h[1];
7630
+ var _j = React.useState(''),
7631
+ originalValue = _j[0],
7632
+ setOriginalValue = _j[1];
7633
+ var _k = React.useState(value),
7634
+ inputValue = _k[0],
7635
+ setInputValue = _k[1];
7623
7636
  var inputRef = React.useRef();
7624
7637
  var inlineEditRef = React.useRef();
7638
+ React.useEffect(function () {
7639
+ if (startEditable && !readOnly) {
7640
+ enterEditMode();
7641
+ }
7642
+ }, []);
7625
7643
  React.useEffect(function () {
7626
7644
  if (value !== inputValue) {
7627
7645
  setInputValue(value);
@@ -7634,10 +7652,13 @@
7634
7652
  setShowTooltip(visible);
7635
7653
  }
7636
7654
  };
7637
- var handleInlineEditClick = function handleInlineEditClick() {
7638
- if (editing) return;
7655
+ var enterEditMode = function enterEditMode() {
7639
7656
  setOriginalValue(inputValue);
7640
7657
  setEditing(true);
7658
+ };
7659
+ var handleInlineEditClick = function handleInlineEditClick() {
7660
+ if (editing) return;
7661
+ enterEditMode();
7641
7662
  if (onEditStateChange) {
7642
7663
  onEditStateChange(true);
7643
7664
  }
@@ -7787,7 +7808,7 @@
7787
7808
  error: false,
7788
7809
  fullWidth: fullWidth,
7789
7810
  inputProps: {
7790
- 'data-testid': dataTestId,
7811
+ 'data-testid': dataTestId + "-input",
7791
7812
  className: 'dot-input',
7792
7813
  maxLength: charactersLimit === null || charactersLimit === void 0 ? void 0 : charactersLimit.maxLength
7793
7814
  },
@@ -10279,6 +10300,28 @@
10279
10300
  }, void 0);
10280
10301
  };
10281
10302
 
10303
+ exports.DatePickerKeydownContext = void 0;
10304
+ (function (DatePickerKeydownContext) {
10305
+ DatePickerKeydownContext[DatePickerKeydownContext["Input"] = 0] = "Input";
10306
+ DatePickerKeydownContext[DatePickerKeydownContext["PickerButton"] = 1] = "PickerButton";
10307
+ DatePickerKeydownContext[DatePickerKeydownContext["Popper"] = 2] = "Popper";
10308
+ })(exports.DatePickerKeydownContext || (exports.DatePickerKeydownContext = {}));
10309
+
10310
+ /** This returns a `boolean` indicating whether the Day.js object contains a valid date or not. */
10311
+ var checkIfValidDate = function checkIfValidDate(date, format) {
10312
+ return dayjs__default["default"](date, format, true).isValid();
10313
+ };
10314
+ var getContextEnumBasedOnTarget = function getContextEnumBasedOnTarget(event, inputElement, contextEnum) {
10315
+ var targetElement = event.target;
10316
+ var isWithinInput = inputElement === null || inputElement === void 0 ? void 0 : inputElement.contains(targetElement);
10317
+ var currentContextEnum = contextEnum;
10318
+ // Key was captured within text field but not on the input itself
10319
+ if (contextEnum === exports.DatePickerKeydownContext.Input && !isWithinInput) {
10320
+ currentContextEnum = exports.DatePickerKeydownContext.PickerButton;
10321
+ }
10322
+ return currentContextEnum;
10323
+ };
10324
+
10282
10325
  var rootClassName$1 = 'dot-date-picker';
10283
10326
  var containerClassName$1 = 'dot-date-picker-container';
10284
10327
  var rectanglePickersDayClassName = 'dot-rectangle-pickers-day';
@@ -10308,6 +10351,7 @@
10308
10351
  disableRipple: true
10309
10352
  }), void 0);
10310
10353
  };
10354
+ var DEFAULT_DATE_FORMAT = 'YYYY-MM-DD';
10311
10355
  var DotDatePicker = function DotDatePicker(_a) {
10312
10356
  var ariaLabel = _a.ariaLabel,
10313
10357
  _b = _a.autoFocus,
@@ -10343,6 +10387,7 @@
10343
10387
  onChange = _a.onChange,
10344
10388
  onClose = _a.onClose,
10345
10389
  onError = _a.onError,
10390
+ onKeyDown = _a.onKeyDown,
10346
10391
  onOpen = _a.onOpen,
10347
10392
  open = _a.open,
10348
10393
  persistentLabel = _a.persistentLabel,
@@ -10352,7 +10397,7 @@
10352
10397
  required = _h === void 0 ? false : _h,
10353
10398
  showDaysOutsideCurrentMonth = _a.showDaysOutsideCurrentMonth,
10354
10399
  value = _a.value;
10355
- var dateFormat = format || 'YYYY-MM-DD';
10400
+ var displayFormat = format || DEFAULT_DATE_FORMAT;
10356
10401
  var hasValueWithoutChangeHandler = value !== undefined && onChange === undefined;
10357
10402
  var hasBothValueAndDefaultValue = value !== undefined && defaultValue !== undefined;
10358
10403
  var isInputReadOnly = readOnly || hasValueWithoutChangeHandler || hasBothValueAndDefaultValue;
@@ -10386,14 +10431,14 @@
10386
10431
  }, [locale]);
10387
10432
  var handleChange = function handleChange(changedValue, context) {
10388
10433
  if (!onChange || changedValue && !changedValue.isValid()) return;
10389
- onChange(changedValue ? changedValue.format(dateFormat) : null, context);
10434
+ onChange(changedValue ? changedValue.format(DEFAULT_DATE_FORMAT) : null, context);
10390
10435
  };
10391
10436
  var handleAccept = function handleAccept(changedValue) {
10392
10437
  if (!onAccept) return;
10393
- onAccept(changedValue ? changedValue.format(dateFormat) : null);
10438
+ onAccept(changedValue ? changedValue.format(DEFAULT_DATE_FORMAT) : null);
10394
10439
  };
10395
10440
  var handleError = function handleError(validationError, currentValue) {
10396
- return onError === null || onError === void 0 ? void 0 : onError(validationError, dayjs__default["default"](currentValue).format(dateFormat));
10441
+ return onError === null || onError === void 0 ? void 0 : onError(validationError, dayjs__default["default"](currentValue).format(DEFAULT_DATE_FORMAT));
10397
10442
  };
10398
10443
  var handleOpen = function handleOpen() {
10399
10444
  if (focusInputOnPopperOpened && inputRef.current) {
@@ -10410,6 +10455,12 @@
10410
10455
  }
10411
10456
  return actionBar;
10412
10457
  };
10458
+ var handleKeyDown = function handleKeyDown(contextEnum) {
10459
+ return function (event) {
10460
+ var currentContextEnum = getContextEnumBasedOnTarget(event, inputRef === null || inputRef === void 0 ? void 0 : inputRef.current, contextEnum);
10461
+ onKeyDown(event, currentContextEnum);
10462
+ };
10463
+ };
10413
10464
  return jsxRuntime.jsx(StyledDatePickerContainer, __assign({
10414
10465
  className: containerClasses,
10415
10466
  "data-testid": dataTestId
@@ -10429,16 +10480,16 @@
10429
10480
  autoFocus: autoFocus,
10430
10481
  closeOnSelect: closeOnSelect,
10431
10482
  className: rootClasses,
10432
- defaultValue: defaultValue && dayjs__default["default"](defaultValue, dateFormat),
10483
+ defaultValue: defaultValue && dayjs__default["default"](defaultValue, DEFAULT_DATE_FORMAT),
10433
10484
  disableOpenPicker: disableOpenPicker || isInputReadOnly || disabled,
10434
10485
  disablePast: disablePast,
10435
10486
  disabled: disabled,
10436
10487
  displayWeekNumber: displayWeekNumber,
10437
10488
  fixedWeekNumber: fixedWeekNumber,
10438
- format: dateFormat,
10489
+ format: displayFormat,
10439
10490
  label: persistentLabel ? null : label,
10440
- maxDate: maxDate && dayjs__default["default"](maxDate, dateFormat),
10441
- minDate: minDate && dayjs__default["default"](minDate, dateFormat),
10491
+ maxDate: maxDate && dayjs__default["default"](maxDate, DEFAULT_DATE_FORMAT),
10492
+ minDate: minDate && dayjs__default["default"](minDate, DEFAULT_DATE_FORMAT),
10442
10493
  onAccept: handleAccept,
10443
10494
  onChange: handleChange,
10444
10495
  onClose: onClose,
@@ -10477,6 +10528,7 @@
10477
10528
  'data-testid': 'dot-date-picker-input',
10478
10529
  onBlur: onBlur
10479
10530
  },
10531
+ onKeyDown: onKeyDown && handleKeyDown(exports.DatePickerKeydownContext.Input),
10480
10532
  inputRef: inputRef,
10481
10533
  fullWidth: fullWidth,
10482
10534
  name: inputName
@@ -10488,10 +10540,11 @@
10488
10540
  disableEnforceFocus: true
10489
10541
  },
10490
10542
  popper: {
10491
- disablePortal: disablePortal
10543
+ disablePortal: disablePortal,
10544
+ onKeyDown: onKeyDown && handleKeyDown(exports.DatePickerKeydownContext.Popper)
10492
10545
  }
10493
10546
  },
10494
- value: value && dayjs__default["default"](value, dateFormat)
10547
+ value: value && dayjs__default["default"](value, DEFAULT_DATE_FORMAT)
10495
10548
  }, void 0)]
10496
10549
  }), void 0)
10497
10550
  }), void 0);
@@ -10578,6 +10631,12 @@
10578
10631
  var getTimePickerButtonType = function getTimePickerButtonType(selectedDaytime) {
10579
10632
  return selectedDaytime && selectedDaytime === exports.Daytime.PM ? 'primary' : 'text';
10580
10633
  };
10634
+ var checkIfOpenPropDefined = function checkIfOpenPropDefined(open) {
10635
+ return open !== null && open !== undefined;
10636
+ };
10637
+ var getDaytimeButtonType = function getDaytimeButtonType(daytimeSelected) {
10638
+ return daytimeSelected && daytimeSelected === exports.Daytime.AM ? 'primary' : 'text';
10639
+ };
10581
10640
 
10582
10641
  var rootClassName = 'dot-time-picker';
10583
10642
  var containerClassName = 'dot-time-picker-container';
@@ -10602,12 +10661,12 @@
10602
10661
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
10603
10662
 
10604
10663
  dayjs__default["default"].extend(utc__default["default"]);
10605
- var DEFAULT_PICKER_TIME_FORMAT = 'hh:mm';
10606
- var DEFAULT_TIME_FORMAT = 'hh:mm A';
10664
+ var DEFAULT_PICKER_TIME_FORMAT = 'HH:mm';
10665
+ var DEFAULT_TIME_FORMAT = 'HH:mm';
10607
10666
  var DEFAULT_TIME = '01:00';
10608
10667
  var DotTimePicker = function DotTimePicker(_a) {
10609
10668
  var _b = _a.ampm,
10610
- ampm = _b === void 0 ? true : _b,
10669
+ ampm = _b === void 0 ? false : _b,
10611
10670
  ariaLabel = _a.ariaLabel,
10612
10671
  _c = _a.autoFocus,
10613
10672
  autoFocus = _c === void 0 ? false : _c,
@@ -10616,11 +10675,13 @@
10616
10675
  defaultValue = _a.defaultValue,
10617
10676
  _d = _a.disableOpenPicker,
10618
10677
  disableOpenPicker = _d === void 0 ? false : _d,
10678
+ _e = _a.disableClickAwayListener,
10679
+ disableClickAwayListener = _e === void 0 ? false : _e,
10619
10680
  disabled = _a.disabled,
10620
10681
  error = _a.error,
10621
10682
  format = _a.format,
10622
- _e = _a.fullWidth,
10623
- fullWidth = _e === void 0 ? false : _e,
10683
+ _f = _a.fullWidth,
10684
+ fullWidth = _f === void 0 ? false : _f,
10624
10685
  helperText = _a.helperText,
10625
10686
  hideActionButtons = _a.hideActionButtons,
10626
10687
  inputId = _a.inputId,
@@ -10628,32 +10689,34 @@
10628
10689
  label = _a.label,
10629
10690
  onAccept = _a.onAccept,
10630
10691
  onBlur = _a.onBlur,
10692
+ onCancel = _a.onCancel,
10631
10693
  onChange = _a.onChange,
10632
10694
  onClose = _a.onClose,
10695
+ onKeyDown = _a.onKeyDown,
10633
10696
  onOpen = _a.onOpen,
10634
10697
  open = _a.open,
10635
10698
  persistentLabel = _a.persistentLabel,
10636
- _f = _a.readOnly,
10637
- readOnly = _f === void 0 ? false : _f,
10638
- _g = _a.required,
10639
- required = _g === void 0 ? false : _g,
10699
+ _g = _a.readOnly,
10700
+ readOnly = _g === void 0 ? false : _g,
10701
+ _h = _a.required,
10702
+ required = _h === void 0 ? false : _h,
10640
10703
  value = _a.value;
10641
- var timeFormat = format || DEFAULT_TIME_FORMAT;
10704
+ var displayFormat = format || DEFAULT_TIME_FORMAT;
10642
10705
  var hasValueWithoutChangeHandler = value !== undefined && onChange === undefined;
10643
10706
  var hasBothValueAndDefaultValue = value !== undefined && defaultValue !== undefined;
10644
10707
  var isComponentReadOnly = readOnly || hasValueWithoutChangeHandler || hasBothValueAndDefaultValue;
10645
10708
  var rootClasses = useStylesWithRootClass(rootClassName, className, isComponentReadOnly ? 'read-only' : '');
10646
10709
  var containerClasses = useStylesWithRootClass(containerClassName, fullWidth ? 'full-width' : '', className);
10647
10710
  var inputRef = React.useRef(null);
10648
- var _h = React.useState(false),
10649
- isPickerOpened = _h[0],
10650
- setIsPickerOpened = _h[1];
10651
- var _j = React.useState(null),
10652
- time = _j[0],
10653
- setTime = _j[1];
10654
- var _k = React.useState(),
10655
- pickerTime = _k[0],
10656
- setPickerTime = _k[1];
10711
+ var _j = React.useState(false),
10712
+ isPickerOpened = _j[0],
10713
+ setIsPickerOpened = _j[1];
10714
+ var _k = React.useState(null),
10715
+ time = _k[0],
10716
+ setTime = _k[1];
10717
+ var _l = React.useState(),
10718
+ pickerTime = _l[0],
10719
+ setPickerTime = _l[1];
10657
10720
  var hoursRef = React.useRef(null);
10658
10721
  var minutesRef = React.useRef(null);
10659
10722
  var daytimeRef = React.useRef(null);
@@ -10661,7 +10724,7 @@
10661
10724
  var minutes = getMinutesForTimePicker();
10662
10725
  var daytimeSelected = getSelectedDaytime(pickerTime);
10663
10726
  var selectedPickerHour = pickerTime && calculateHourBasedOnTimeFormat(pickerTime, ampm);
10664
- var isOpenPropDefined = open !== null && open !== undefined;
10727
+ var isOpenPropDefined = checkIfOpenPropDefined(open);
10665
10728
  var isControlledComponent = onChange && value !== undefined;
10666
10729
  React.useEffect(function () {
10667
10730
  if (hasValueWithoutChangeHandler) {
@@ -10674,9 +10737,9 @@
10674
10737
  React.useEffect(function () {
10675
10738
  var timeValue = null;
10676
10739
  if (defaultValue) {
10677
- timeValue = getDayjsUtcDate(defaultValue, timeFormat);
10740
+ timeValue = getDayjsUtcDate(defaultValue, DEFAULT_TIME_FORMAT);
10678
10741
  } else if (value) {
10679
- timeValue = getDayjsUtcDate(value, timeFormat);
10742
+ timeValue = getDayjsUtcDate(value, DEFAULT_TIME_FORMAT);
10680
10743
  }
10681
10744
  setTime(timeValue);
10682
10745
  setPickerTime(timeValue);
@@ -10702,7 +10765,7 @@
10702
10765
  var currentTimeValue = currentValue ? currentValue : null;
10703
10766
  setPickerTime(currentValue ? currentValue : null);
10704
10767
  !isControlledComponent && setTime(currentTimeValue);
10705
- onChange === null || onChange === void 0 ? void 0 : onChange(currentValue ? currentValue.format(timeFormat) : null, context);
10768
+ onChange === null || onChange === void 0 ? void 0 : onChange(currentValue ? currentValue.format(DEFAULT_TIME_FORMAT) : null, context);
10706
10769
  };
10707
10770
  var handleClose = function handleClose() {
10708
10771
  !isOpenPropDefined && setIsPickerOpened(false);
@@ -10727,6 +10790,7 @@
10727
10790
  };
10728
10791
  var handleCancel = function handleCancel() {
10729
10792
  setPickerTime(time);
10793
+ onCancel === null || onCancel === void 0 ? void 0 : onCancel();
10730
10794
  handleClose();
10731
10795
  };
10732
10796
  var handleSet = function handleSet() {
@@ -10735,12 +10799,18 @@
10735
10799
  return;
10736
10800
  }
10737
10801
  setTime(pickerTime);
10738
- onChange === null || onChange === void 0 ? void 0 : onChange(pickerTime.format(timeFormat), {
10802
+ onChange === null || onChange === void 0 ? void 0 : onChange(pickerTime.format(DEFAULT_TIME_FORMAT), {
10739
10803
  validationError: null
10740
10804
  });
10741
- onAccept === null || onAccept === void 0 ? void 0 : onAccept(pickerTime.format(timeFormat));
10805
+ onAccept === null || onAccept === void 0 ? void 0 : onAccept(pickerTime.format(DEFAULT_TIME_FORMAT));
10742
10806
  handleClose();
10743
10807
  };
10808
+ var handleKeyDown = function handleKeyDown(contextEnum) {
10809
+ return function (event) {
10810
+ var currentContextEnum = getContextEnumBasedOnTarget(event, inputRef === null || inputRef === void 0 ? void 0 : inputRef.current, contextEnum);
10811
+ onKeyDown(event, currentContextEnum);
10812
+ };
10813
+ };
10744
10814
  var scrollToSelectedTime = function scrollToSelectedTime() {
10745
10815
  if (!(hoursRef === null || hoursRef === void 0 ? void 0 : hoursRef.current) || !(minutesRef === null || minutesRef === void 0 ? void 0 : minutesRef.current)) return;
10746
10816
  var selectedHour = calculateHourBasedOnTimeFormat(time, ampm);
@@ -10775,6 +10845,118 @@
10775
10845
  if (event.key !== 'Escape' || !isPickerOpened) return;
10776
10846
  handleCancel();
10777
10847
  };
10848
+ var wrapWithClickAwayListener = function wrapWithClickAwayListener(children) {
10849
+ return jsxRuntime.jsx(material.ClickAwayListener, __assign({
10850
+ onClickAway: handleSet
10851
+ }, {
10852
+ children: children
10853
+ }), void 0);
10854
+ };
10855
+ var renderTimePickerHours = function renderTimePickerHours() {
10856
+ return hours.map(function (hour, index) {
10857
+ var isSelected = pickerTime ? selectedPickerHour === hour : false;
10858
+ return jsxRuntime.jsx(DotButton, __assign({
10859
+ className: "dot-picker-button",
10860
+ "data-testid": dataTestId && dataTestId + "-hour-button-" + hour,
10861
+ onClick: function () {
10862
+ return handleHourClick(hour);
10863
+ },
10864
+ onKeyDown: handleTimeKeydown(hoursRef, index),
10865
+ tabIndex: getPopperButtonTabIndex(index, isSelected, selectedPickerHour),
10866
+ type: isSelected ? 'primary' : 'text'
10867
+ }, {
10868
+ children: hour.toString().padStart(2, '0')
10869
+ }), hour);
10870
+ });
10871
+ };
10872
+ var renderTimePickerMinutes = function renderTimePickerMinutes() {
10873
+ return minutes.map(function (minute, index) {
10874
+ var isSelected = pickerTime ? pickerTime.minute() === minute : false;
10875
+ return jsxRuntime.jsx(DotButton, __assign({
10876
+ className: "dot-picker-button",
10877
+ "data-testid": dataTestId && dataTestId + "-minute-button-" + minute,
10878
+ type: isSelected ? 'primary' : 'text',
10879
+ onClick: function () {
10880
+ return handleMinuteClick(minute);
10881
+ },
10882
+ onKeyDown: handleTimeKeydown(minutesRef, index),
10883
+ tabIndex: getPopperButtonTabIndex(index, isSelected, pickerTime === null || pickerTime === void 0 ? void 0 : pickerTime.minute())
10884
+ }, {
10885
+ children: minute.toString().padStart(2, '0')
10886
+ }), minute);
10887
+ });
10888
+ };
10889
+ var renderTimePickerActionButtons = function renderTimePickerActionButtons() {
10890
+ return jsxRuntime.jsxs("div", __assign({
10891
+ className: "dot-time-picker-action-buttons"
10892
+ }, {
10893
+ children: [jsxRuntime.jsx(DotButton, __assign({
10894
+ "data-testid": dataTestId && dataTestId + "-cancel",
10895
+ onClick: handleCancel,
10896
+ size: "small",
10897
+ type: "text"
10898
+ }, {
10899
+ children: "Cancel"
10900
+ }), void 0), jsxRuntime.jsx(DotButton, __assign({
10901
+ "data-testid": dataTestId && dataTestId + "-set",
10902
+ onClick: handleSet,
10903
+ size: "small",
10904
+ type: "text"
10905
+ }, {
10906
+ children: "Set"
10907
+ }), void 0)]
10908
+ }), void 0);
10909
+ };
10910
+ var renderDaytime = function renderDaytime() {
10911
+ return jsxRuntime.jsxs("div", __assign({
10912
+ className: "dot-time-picker-daytime",
10913
+ ref: daytimeRef
10914
+ }, {
10915
+ children: [jsxRuntime.jsx(DotButton, __assign({
10916
+ className: "dot-picker-button",
10917
+ "data-testid": dataTestId && dataTestId + "-am-button",
10918
+ onClick: function () {
10919
+ return handleDaytimeSelection(exports.Daytime.AM);
10920
+ },
10921
+ onKeyDown: handleTimeKeydown(daytimeRef, 0),
10922
+ tabIndex: getDaytimeButtonTabIndex(exports.Daytime.AM, daytimeSelected),
10923
+ type: getDaytimeButtonType(daytimeSelected)
10924
+ }, {
10925
+ children: exports.Daytime.AM
10926
+ }), exports.Daytime.AM), jsxRuntime.jsx(DotButton, __assign({
10927
+ className: "dot-picker-button",
10928
+ "data-testid": dataTestId && dataTestId + "-pm-button",
10929
+ onClick: function () {
10930
+ return handleDaytimeSelection(exports.Daytime.PM);
10931
+ },
10932
+ onKeyDown: handleTimeKeydown(daytimeRef, 1),
10933
+ tabIndex: getDaytimeButtonTabIndex(exports.Daytime.PM, daytimeSelected),
10934
+ type: getTimePickerButtonType(daytimeSelected)
10935
+ }, {
10936
+ children: exports.Daytime.PM
10937
+ }), exports.Daytime.PM)]
10938
+ }), void 0);
10939
+ };
10940
+ var paperComponent = jsxRuntime.jsxs(material.Paper, __assign({
10941
+ className: "dot-time-picker-paper",
10942
+ elevation: 8
10943
+ }, {
10944
+ children: [jsxRuntime.jsxs("div", __assign({
10945
+ className: "dot-time-picker-selection"
10946
+ }, {
10947
+ children: [jsxRuntime.jsx("div", __assign({
10948
+ className: "dot-time-picker-hours",
10949
+ ref: hoursRef
10950
+ }, {
10951
+ children: renderTimePickerHours()
10952
+ }), void 0), jsxRuntime.jsx("div", __assign({
10953
+ className: "dot-time-picker-minutes",
10954
+ ref: minutesRef
10955
+ }, {
10956
+ children: renderTimePickerMinutes()
10957
+ }), void 0), ampm && renderDaytime()]
10958
+ }), void 0), !hideActionButtons && renderTimePickerActionButtons()]
10959
+ }), void 0);
10778
10960
  return jsxRuntime.jsxs(StyledTimePickerContainer, __assign({
10779
10961
  className: containerClasses,
10780
10962
  "data-testid": dataTestId,
@@ -10796,7 +10978,7 @@
10796
10978
  autoFocus: autoFocus,
10797
10979
  className: rootClasses,
10798
10980
  disabled: disabled,
10799
- format: format,
10981
+ format: displayFormat,
10800
10982
  inputRef: inputRef,
10801
10983
  label: persistentLabel ? null : label,
10802
10984
  onChange: handleInputChange,
@@ -10828,7 +11010,8 @@
10828
11010
  onBlur: onBlur
10829
11011
  },
10830
11012
  fullWidth: fullWidth,
10831
- name: inputName
11013
+ name: inputName,
11014
+ onKeyDown: onKeyDown && handleKeyDown(exports.DatePickerKeydownContext.Input)
10832
11015
  },
10833
11016
  field: {
10834
11017
  readOnly: isComponentReadOnly
@@ -10842,105 +11025,10 @@
10842
11025
  "data-testid": dataTestId && dataTestId + "-popper",
10843
11026
  disablePortal: true,
10844
11027
  open: isPickerOpened,
11028
+ onKeyDown: onKeyDown && handleKeyDown(exports.DatePickerKeydownContext.Popper),
10845
11029
  placement: "bottom-start"
10846
11030
  }, {
10847
- children: jsxRuntime.jsx(material.ClickAwayListener, __assign({
10848
- onClickAway: handleSet
10849
- }, {
10850
- children: jsxRuntime.jsxs(material.Paper, __assign({
10851
- className: "dot-time-picker-paper",
10852
- elevation: 8
10853
- }, {
10854
- children: [jsxRuntime.jsxs("div", __assign({
10855
- className: "dot-time-picker-selection"
10856
- }, {
10857
- children: [jsxRuntime.jsx("div", __assign({
10858
- className: "dot-time-picker-hours",
10859
- ref: hoursRef
10860
- }, {
10861
- children: hours.map(function (hour, index) {
10862
- var isSelected = pickerTime ? selectedPickerHour === hour : false;
10863
- return jsxRuntime.jsx(DotButton, __assign({
10864
- className: "dot-picker-button",
10865
- "data-testid": dataTestId && dataTestId + "-hour-button-" + hour,
10866
- onClick: function () {
10867
- return handleHourClick(hour);
10868
- },
10869
- onKeyDown: handleTimeKeydown(hoursRef, index),
10870
- tabIndex: getPopperButtonTabIndex(index, isSelected, selectedPickerHour),
10871
- type: isSelected ? 'primary' : 'text'
10872
- }, {
10873
- children: hour.toString().padStart(2, '0')
10874
- }), hour);
10875
- })
10876
- }), void 0), jsxRuntime.jsx("div", __assign({
10877
- className: "dot-time-picker-minutes",
10878
- ref: minutesRef
10879
- }, {
10880
- children: minutes.map(function (minute, index) {
10881
- var isSelected = pickerTime ? pickerTime.minute() === minute : false;
10882
- return jsxRuntime.jsx(DotButton, __assign({
10883
- className: "dot-picker-button",
10884
- "data-testid": dataTestId && dataTestId + "-minute-button-" + minute,
10885
- type: isSelected ? 'primary' : 'text',
10886
- onClick: function () {
10887
- return handleMinuteClick(minute);
10888
- },
10889
- onKeyDown: handleTimeKeydown(minutesRef, index),
10890
- tabIndex: getPopperButtonTabIndex(index, isSelected, pickerTime === null || pickerTime === void 0 ? void 0 : pickerTime.minute())
10891
- }, {
10892
- children: minute.toString().padStart(2, '0')
10893
- }), minute);
10894
- })
10895
- }), void 0), ampm && jsxRuntime.jsxs("div", __assign({
10896
- className: "dot-time-picker-daytime",
10897
- ref: daytimeRef
10898
- }, {
10899
- children: [jsxRuntime.jsx(DotButton, __assign({
10900
- className: "dot-picker-button",
10901
- "data-testid": dataTestId && dataTestId + "-am-button",
10902
- onClick: function () {
10903
- return handleDaytimeSelection(exports.Daytime.AM);
10904
- },
10905
- onKeyDown: handleTimeKeydown(daytimeRef, 0),
10906
- tabIndex: getDaytimeButtonTabIndex(exports.Daytime.AM, daytimeSelected),
10907
- type: daytimeSelected && daytimeSelected === exports.Daytime.AM ? 'primary' : 'text'
10908
- }, {
10909
- children: exports.Daytime.AM
10910
- }), exports.Daytime.AM), jsxRuntime.jsx(DotButton, __assign({
10911
- className: "dot-picker-button",
10912
- "data-testid": dataTestId && dataTestId + "-pm-button",
10913
- onClick: function () {
10914
- return handleDaytimeSelection(exports.Daytime.PM);
10915
- },
10916
- onKeyDown: handleTimeKeydown(daytimeRef, 1),
10917
- tabIndex: getDaytimeButtonTabIndex(exports.Daytime.PM, daytimeSelected),
10918
- type: getTimePickerButtonType(daytimeSelected)
10919
- }, {
10920
- children: exports.Daytime.PM
10921
- }), exports.Daytime.PM)]
10922
- }), void 0)]
10923
- }), void 0), !hideActionButtons && jsxRuntime.jsxs("div", __assign({
10924
- className: "dot-time-picker-action-buttons"
10925
- }, {
10926
- children: [jsxRuntime.jsx(DotButton, __assign({
10927
- "data-testid": dataTestId && dataTestId + "-cancel",
10928
- onClick: handleCancel,
10929
- size: "small",
10930
- type: "text"
10931
- }, {
10932
- children: "Cancel"
10933
- }), void 0), jsxRuntime.jsx(DotButton, __assign({
10934
- "data-testid": dataTestId && dataTestId + "-set",
10935
- onClick: handleSet,
10936
- size: "small",
10937
- type: "text"
10938
- }, {
10939
- children: "Set"
10940
- }), void 0)]
10941
- }), void 0)]
10942
- }), void 0)
10943
- }), void 0)
11031
+ children: disableClickAwayListener ? paperComponent : wrapWithClickAwayListener(paperComponent)
10944
11032
  }), void 0)]
10945
11033
  }), void 0);
10946
11034
  };
@@ -11033,6 +11121,7 @@
11033
11121
  exports.DotTruncateWithTooltip = DotTruncateWithTooltip;
11034
11122
  exports.DotTypography = DotTypography;
11035
11123
  exports.avatarColors = avatarColors;
11124
+ exports.checkIfValidDate = checkIfValidDate;
11036
11125
  exports.lightColors = lightThemeColors;
11037
11126
  exports.mockScrollIntoView = mockScrollIntoView;
11038
11127
  exports.parseAutoCompleteValue = parseAutoCompleteValue;
@@ -30,6 +30,8 @@ export interface AutoCompleteProps<T extends AutoCompleteOption = AutoCompleteOp
30
30
  actionItem?: ActionItem;
31
31
  /** This prop helps users to fill forms faster */
32
32
  autoFocus?: boolean;
33
+ /** Used to determine the disabled state for a given option. */
34
+ checkIfOptionDisabled?: (option: T) => boolean;
33
35
  /** default option that is selected */
34
36
  defaultValue?: AutoCompleteValue;
35
37
  /** Controls size of chip spacing within the autocomplete **/
@@ -94,4 +96,4 @@ export interface AutoCompleteProps<T extends AutoCompleteOption = AutoCompleteOp
94
96
  /** If true, the label will be displayed in a warning state. */
95
97
  warning?: boolean;
96
98
  }
97
- export declare const DotAutoComplete: <T extends AutoCompleteOption>({ ListboxComponent, actionItem, ariaLabel, autoFocus, className, "data-testid": dataTestId, defaultValue, dense, disabled, disablePortal, endAdornmentTooltip, error, filterSelectedOptions, freesolo, group, helperText, inputId, inputRef, label, loading, maxHeight, multiple, onBlur, onChange, onClose, onInputChange, onOpen, open, options, persistentLabel, placeholder, readOnly, renderOption, renderTags, required, size, value, warning, }: AutoCompleteProps<T>) => JSX.Element;
99
+ export declare const DotAutoComplete: <T extends AutoCompleteOption>({ ListboxComponent, actionItem, ariaLabel, autoFocus, className, "data-testid": dataTestId, defaultValue, dense, disabled, disablePortal, endAdornmentTooltip, error, filterSelectedOptions, freesolo, checkIfOptionDisabled, group, helperText, inputId, inputRef, label, loading, maxHeight, multiple, onBlur, onChange, onClose, onInputChange, onOpen, open, options, persistentLabel, placeholder, readOnly, renderOption, renderTags, required, size, value, warning, }: AutoCompleteProps<T>) => JSX.Element;