@laerdal/life-react-components 6.0.0-dev.24.full → 6.0.0-dev.26

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.
Files changed (105) hide show
  1. package/dist/Card/VerticalCard/CardBottomSection.cjs +18 -6
  2. package/dist/Card/VerticalCard/CardBottomSection.cjs.map +1 -1
  3. package/dist/Card/VerticalCard/CardBottomSection.d.ts +4 -0
  4. package/dist/Card/VerticalCard/CardBottomSection.js +18 -6
  5. package/dist/Card/VerticalCard/CardBottomSection.js.map +1 -1
  6. package/dist/Card/VerticalCard/CardMiddleSection.cjs +19 -0
  7. package/dist/Card/VerticalCard/CardMiddleSection.cjs.map +1 -1
  8. package/dist/Card/VerticalCard/CardMiddleSection.js +18 -0
  9. package/dist/Card/VerticalCard/CardMiddleSection.js.map +1 -1
  10. package/dist/Chips/ActionChip.cjs +6 -0
  11. package/dist/Chips/ActionChip.cjs.map +1 -1
  12. package/dist/Chips/ActionChip.js +6 -0
  13. package/dist/Chips/ActionChip.js.map +1 -1
  14. package/dist/Chips/ChipStyles.cjs +210 -31
  15. package/dist/Chips/ChipStyles.cjs.map +1 -1
  16. package/dist/Chips/ChipStyles.js +210 -31
  17. package/dist/Chips/ChipStyles.js.map +1 -1
  18. package/dist/Chips/ChoiceChips.cjs +1 -1
  19. package/dist/Chips/ChoiceChips.cjs.map +1 -1
  20. package/dist/Chips/ChoiceChips.js +1 -1
  21. package/dist/Chips/ChoiceChips.js.map +1 -1
  22. package/dist/Chips/FilterChip.cjs +7 -1
  23. package/dist/Chips/FilterChip.cjs.map +1 -1
  24. package/dist/Chips/FilterChip.js +7 -1
  25. package/dist/Chips/FilterChip.js.map +1 -1
  26. package/dist/Chips/InputChip.cjs +14 -0
  27. package/dist/Chips/InputChip.cjs.map +1 -1
  28. package/dist/Chips/InputChip.js +14 -0
  29. package/dist/Chips/InputChip.js.map +1 -1
  30. package/dist/ChipsInput/ChipInputField.cjs +8 -2
  31. package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
  32. package/dist/ChipsInput/ChipInputField.js +8 -2
  33. package/dist/ChipsInput/ChipInputField.js.map +1 -1
  34. package/dist/Footer/Components/FooterTop.cjs +3 -0
  35. package/dist/Footer/Components/FooterTop.cjs.map +1 -1
  36. package/dist/Footer/Components/FooterTop.js +3 -0
  37. package/dist/Footer/Components/FooterTop.js.map +1 -1
  38. package/dist/InputFields/DatepickerField.cjs +20 -4
  39. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  40. package/dist/InputFields/DatepickerField.js +20 -4
  41. package/dist/InputFields/DatepickerField.js.map +1 -1
  42. package/dist/InputFields/NumberField.cjs +4 -0
  43. package/dist/InputFields/NumberField.cjs.map +1 -1
  44. package/dist/InputFields/NumberField.js +4 -0
  45. package/dist/InputFields/NumberField.js.map +1 -1
  46. package/dist/InputFields/RadioButton.cjs +2 -2
  47. package/dist/InputFields/RadioButton.cjs.map +1 -1
  48. package/dist/InputFields/RadioButton.d.ts +4 -4
  49. package/dist/InputFields/RadioButton.js +2 -2
  50. package/dist/InputFields/RadioButton.js.map +1 -1
  51. package/dist/InputFields/components/SearchBarInput.cjs +5 -0
  52. package/dist/InputFields/components/SearchBarInput.cjs.map +1 -1
  53. package/dist/InputFields/components/SearchBarInput.js +5 -0
  54. package/dist/InputFields/components/SearchBarInput.js.map +1 -1
  55. package/dist/Modals/ModalContainer.cjs +7 -1
  56. package/dist/Modals/ModalContainer.cjs.map +1 -1
  57. package/dist/Modals/ModalContainer.d.ts +3 -0
  58. package/dist/Modals/ModalContainer.js +8 -2
  59. package/dist/Modals/ModalContainer.js.map +1 -1
  60. package/dist/Modals/ModalContent.cjs +5 -1
  61. package/dist/Modals/ModalContent.cjs.map +1 -1
  62. package/dist/Modals/ModalContent.js +5 -1
  63. package/dist/Modals/ModalContent.js.map +1 -1
  64. package/dist/Modals/ModalStyles.cjs +12 -0
  65. package/dist/Modals/ModalStyles.cjs.map +1 -1
  66. package/dist/Modals/ModalStyles.js +12 -0
  67. package/dist/Modals/ModalStyles.js.map +1 -1
  68. package/dist/Navigation/NavigationProvider.cjs.map +1 -1
  69. package/dist/Navigation/NavigationProvider.d.ts +3 -0
  70. package/dist/Navigation/NavigationProvider.js.map +1 -1
  71. package/dist/Paginator/Paginator.cjs +1 -1
  72. package/dist/Paginator/Paginator.cjs.map +1 -1
  73. package/dist/Paginator/Paginator.js +1 -1
  74. package/dist/Paginator/Paginator.js.map +1 -1
  75. package/dist/Table/TableStyles.cjs +4 -1
  76. package/dist/Table/TableStyles.cjs.map +1 -1
  77. package/dist/Table/TableStyles.js +4 -1
  78. package/dist/Table/TableStyles.js.map +1 -1
  79. package/dist/Tag/Tag.cjs +48 -12
  80. package/dist/Tag/Tag.cjs.map +1 -1
  81. package/dist/Tag/Tag.js +48 -12
  82. package/dist/Tag/Tag.js.map +1 -1
  83. package/dist/common/NavigationHelper.cjs +2 -0
  84. package/dist/common/NavigationHelper.cjs.map +1 -0
  85. package/dist/common/NavigationHelper.d.ts +0 -0
  86. package/dist/common/NavigationHelper.js +2 -0
  87. package/dist/common/NavigationHelper.js.map +1 -0
  88. package/dist/styles/colors.cjs +6 -0
  89. package/dist/styles/colors.cjs.map +1 -1
  90. package/dist/styles/colors.d.ts +6 -0
  91. package/dist/styles/colors.js +6 -0
  92. package/dist/styles/colors.js.map +1 -1
  93. package/dist/styles/design-tokens/dark/tokens.css +481 -0
  94. package/dist/styles/design-tokens/light/tokens.css +481 -0
  95. package/dist/styles/design-tokens/rqi_dark/tokens.css +481 -0
  96. package/dist/styles/design-tokens/rqi_light/tokens.css +481 -0
  97. package/dist/styles/global.cjs +4 -4
  98. package/dist/styles/global.cjs.map +1 -1
  99. package/dist/styles/global.js +4 -4
  100. package/dist/styles/global.js.map +1 -1
  101. package/dist/styles/typography.cjs +4 -1
  102. package/dist/styles/typography.cjs.map +1 -1
  103. package/dist/styles/typography.js +4 -1
  104. package/dist/styles/typography.js.map +1 -1
  105. package/package.json +148 -148
@@ -1 +1 @@
1
- {"version":3,"file":"DatepickerField.js","names":["React","styled","css","useTheme","DatePicker","en","dayjs","advancedFormat","quarterOfYear","extend","COLORS","SystemIcons","DatepickerFieldHeader","ComponentTextStyle","focusStyles","scrollBarStyling","TooltipOverflow","ErrorMessage","InputFieldStyling","InputWrapper","ComponentMStyling","ComponentSStyling","Z_INDEXES","useFocusVisibleRef","Size","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","unselectedHoverColoringText","props","generateToken","componentType","state","theme","selectedDefaultColoringText","isOnFill","defaultVariant","todayDefaultColoringText","DatePickerContainer","div","dropdown","$margin","$yearPicker","Bold","Small","Regular","getColor","IconWrapper","focus","DatepickerRow","StyledInputFieldStyling","$suppressReadOnlyStyles","quarterComponentsClassPrefix","DatepickerField","forwardRef","_ref","ref","disabled","readOnly","onChange","invalid","value","validationMessage","dateFormat","autoComplete","placeholder","required","yearPicker","yearsBeforeCurrentDate","yearsAfterCurrentDate","margin","overflowTooltipPosition","onBlur","showQuarterYearPicker","id","dataTestId","rest","_objectWithoutProperties","_excluded","inputRef","datepickerRef","useRef","focusedQuarterRef","activeMonthPage","setActiveMonthPage","useState","yearPickerMode","setYearPickerMode","openAt","setOpenAt","open","setOpen","getFormattedValue","val","year","quarter","format","useEffect","current","getQuarterItem","classname","document","getElementsByClassName","selectedDate","dropdownParent","parentElement","scrollTop","offsetTop","offsetHeight","wrapper","handler","event","key","currentQ","click","previousQ","tabIndex","nextQ","addEventListener","selectedQuarter","i","innerText","includes","setAttribute","firstQuarter","removeEventListener","useImperativeHandle","handleCalendarClose","blur","handleCalendarOpen","maxDate","Date","setFullYear","getFullYear","minDate","itemsNumber","Math","round","handleKeyDown","e","handleBlur","currentTarget","contains","relatedTarget","iconSize","children","$quarterPicker","onCalendarOpen","onCalendarClose","onKeyDown","onClickOutside","newDate","setMonth","locale","undefined","showYearPicker","yearItemNumber","selected","openToDate","preventOpenOnFocus","shouldCloseOnSelect","renderCustomHeader","params","createElement","_objectSpread","customHeaderCount","customInput","$disabled","$readOnly","type","name","className","onFocus","setSelectionRange","$extraRightPadding","Calendar","size","position","input","withArrow","maxWidth","align","TechnicalWarning","color","propTypes","_pt","instanceOf","func","bool","string","number","oneOf"],"sources":["../../src/InputFields/DatepickerField.tsx"],"sourcesContent":["/**\r\n * Import react libraries.\r\n */\r\nimport React from 'react';\r\n\r\n/**\r\n * Import third-party libraries.\r\n */\r\nimport styled, { css, useTheme } from 'styled-components';\r\nimport DatePicker, { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\r\nimport en from 'date-fns/locale/en-GB';\r\nimport dayjs from 'dayjs';\r\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\r\nimport quarterOfYear from \"dayjs/plugin/quarterOfYear\";\r\n\r\ndayjs.extend(advancedFormat);\r\ndayjs.extend(quarterOfYear);\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport COLORS from '../styles/colors';\r\nimport {SystemIcons} from '../icons';\r\nimport {DatepickerFieldHeader} from './DatepickerFieldHeader';\r\nimport {ComponentTextStyle, focusStyles, scrollBarStyling} from '../styles';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {ErrorMessage, InputFieldStyling, InputWrapper} from './styling';\r\nimport '../styles/react-datepicker.css';\r\nimport {ComponentMStyling, ComponentSStyling} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {Size, Testable} from '../types';\r\n\r\n/**\r\n * Add custom types.\r\n */\r\nexport type DatepickerFieldProps = Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'size' | 'onBlur'> & {\r\n /** Optional. Selected date. Defaults to current date */\r\n value?: Date;\r\n /** Optional. Handler to be called when selected date was changed. */\r\n onChange?: (date: Date) => void;\r\n /** Optional. Handler to be called when control is losing focus. */\r\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;\r\n /** Optional. Quarter picker mode. If set, then user can not select a particular date, but quarter of the year.\r\n * 1st day of the quarter will be set as value.\r\n */\r\n showQuarterYearPicker?: boolean;\r\n /** Optional. If set, then input field will be shown in 'invalid' state */\r\n invalid?: boolean;\r\n /** Optional. Format in which date will be shown in the input field. Defaults to 'MMMM Do, yyyy'. \r\n * For quarter picker will be shown in 'YYYY, qqq' format.\r\n */\r\n dateFormat?: string;\r\n /** Optional. Validation message to be shown under the input field */\r\n validationMessage?: string;\r\n /** Optional. Value for 'autocomplete' attribute of input field tag. */\r\n autoComplete?: string;\r\n /** Optional. Placeholder text to be shown when no value is selected. */\r\n placeholder?: string;\r\n /** Optional. If set, then user will be able to open year selector by clicking on the month in the dropdown. */\r\n yearPicker?: boolean;\r\n /** Optional. How many years before current year will be available in the year selector mode. */\r\n yearsBeforeCurrentDate?: number;\r\n /** Optional. How many years after current year will be available in the year selector mode. */\r\n yearsAfterCurrentDate?: number;\r\n /** Optional. Margin value to be set to the dropdown container. */\r\n margin?: string;\r\n /** Optional. Position where to show tooltip in case of closed datepicker and value overflowing the input field. */\r\n overflowTooltipPosition?: 'top' | 'bottom';\r\n};\r\n\r\n\r\nconst unselectedHoverColoringText = css`\r\n color: ${props => COLORS.generateToken({componentType: 'text', state: 'hover'}, props.theme)} !important;\r\n background: ${props => COLORS.generateToken({componentType: 'bg-surface', state: 'hover'}, props.theme)} !important; \r\n`;\r\n\r\nconst selectedDefaultColoringText = css`\r\n color: ${props => COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme)} !important;\r\n background: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant: 'primary' }, props.theme)} !important;\r\n`;\r\n\r\nconst todayDefaultColoringText = css`\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'default' }, props.theme)};\r\n background: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'selected' }, props.theme)};\r\n`;\r\n\r\n/**\r\n * Add custom styles.\r\n */\r\nconst DatePickerContainer = styled.div<{ $yearPicker: boolean; $margin: string; $quarterPicker?: boolean }>`\r\n .react-datepicker-popper {\r\n z-index: ${Z_INDEXES.dropdown};\r\n }\r\n\r\n .react-datepicker-popper[data-placement^=bottom] {\r\n padding-top: 0px;\r\n }\r\n\r\n \r\n .react-datepicker-popper[data-placement^=top] {\r\n padding-bottom: 0px;\r\n }\r\n\r\n > div {\r\n display: block;\r\n\r\n ${(props) => (props.$margin ? `margin: ${props.$margin};` : '')}\r\n .react-datepicker {\r\n box-sizing: border-box;\r\n box-shadow: 0px 2px 4px rgb(0 0 0 / 15%);\r\n border: 1px solid #e5e5e5;\r\n }\r\n .react-datepicker__input-container{\r\n z-index: 0;\r\n }\r\n\r\n .react-datepicker__navigation {\r\n line-height: normal;\r\n text-indent: inherit;\r\n border: none;\r\n border-radius: 4px;\r\n height: 48px;\r\n width: 48px;\r\n outline: none;\r\n margin: 0px;\r\n color: transparent;\r\n\r\n &:hover {\r\n background: ${props => COLORS.generateToken({componentType:'bg-surface', state:'hover'}, props.theme)};\r\n\r\n &.react-datepicker__navigation--previous::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23215369' /%3E%3C/svg%3E\");\r\n }\r\n\r\n &.react-datepicker__navigation--next::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23215369' /%3E%3C/svg%3E\");\r\n }\r\n }\r\n\r\n &:focus {\r\n ${focusStyles}\r\n &.react-datepicker__navigation--next::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23163746' /%3E%3C/svg%3E\");\r\n }\r\n\r\n &.react-datepicker__navigation--previous::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23163746' /%3E%3C/svg%3E\");\r\n }\r\n }\r\n\r\n &::before {\r\n text-align: center;\r\n display: inline-block;\r\n content: '';\r\n height: 32px;\r\n width: 32px;\r\n vertical-align: middle;\r\n }\r\n\r\n &.react-datepicker__navigation--next::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23666666' /%3E%3C/svg%3E\");\r\n }\r\n\r\n &.react-datepicker__navigation--previous::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23666666' /%3E%3C/svg%3E\");\r\n }\r\n }\r\n\r\n .react-datepicker__month-container,\r\n .react-datepicker__year--container {\r\n width: 336px;\r\n }\r\n\r\n .react-datepicker__month {\r\n margin: 0px;\r\n }\r\n\r\n .react-datepicker__triangle {\r\n left: 50% !important;\r\n display: none;\r\n }\r\n\r\n .react-datepicker-popper[data-placement^='bottom'] {\r\n margin-top: 0;\r\n }\r\n\r\n .react-datepicker-popper[data-placement^='bottom'] .react-datepicker__triangle {\r\n border-bottom-color: ${props => COLORS.generateToken({componentType:'bg-surface', state:'hover'}, props.theme)};\r\n }\r\n\r\n .react-datepicker__header {\r\n border-bottom: 1px solid ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'subtle'}, props.theme)};\r\n background: ${props => COLORS.generateToken({componentType: 'bg-surface', defaultVariant: 'subtle'}, props.theme)};\r\n height: ${(props) => (!props.$yearPicker ? '96px' : '54px')};\r\n padding-top: 0px;\r\n }\r\n\r\n .react-datepicker-year-header {\r\n height: 48px;\r\n line-height: 48px !important;\r\n align-items: center;\r\n\r\n ${props => ComponentSStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n }\r\n\r\n .react-datepicker__current-month {\r\n height: 48px;\r\n display: inline-flex;\r\n align-items: center;\r\n margin-right: 5px;\r\n\r\n ${props => ComponentSStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n }\r\n\r\n .react-datepicker__year {\r\n max-height: 300px;\r\n overflow-y: scroll;\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n }\r\n\r\n .react-datepicker__quarter-wrapper{\r\n width: 100%;\r\n display: flex;\r\n align-content: space-evenly;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n gap: 20px;\r\n }\r\n\r\n .react-datepicker__year-wrapper {\r\n max-width: 100%;\r\n justify-content: space-around;\r\n }\r\n\r\n .react-datepicker__navigation-icon {\r\n display: none;\r\n }\r\n\r\n .react-datepicker__day-name {\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 48px;\r\n margin: 0px;\r\n width: 48px;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n }\r\n\r\n \r\n\r\n .react-datepicker__year-text {\r\n background: ${props => COLORS.getColor('white', props.theme)};\r\n border: none;\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n margin-top: 20px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n &.react-datepicker__year-text--disabled {\r\n display: none;\r\n }\r\n\r\n &.react-datepicker__day--keyboard-selected {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme)};\r\n background: ${props => COLORS.getColor('white', props.theme)};\r\n font-weight: 400;\r\n border: none;\r\n }\r\n\r\n &:hover {\r\n ${unselectedHoverColoringText}\r\n }\r\n\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n\r\n &.react-datepicker__year-text--selected {\r\n ${selectedDefaultColoringText}\r\n }\r\n }\r\n\r\n .react-datepicker__day, .react-datepicker__quarter-text {\r\n background: ${props => COLORS.getColor('white', props.theme)};\r\n border: none;\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-grow: 1;\r\n height: 40px;\r\n width: 40px;\r\n margin: 4px;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n &.react-datepicker__day--keyboard-selected, .react-datepicker__quarter-text--keyboard-selected {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme)};\r\n background: ${props => COLORS.getColor('white', props.theme)};\r\n flex-grow: 1;\r\n font-weight: 400;\r\n border: none;\r\n }\r\n\r\n &.react-datepicker__quarter-text--selected {\r\n ${selectedDefaultColoringText}\r\n flex-grow: 1;\r\n }\r\n\r\n &:hover {\r\n ${unselectedHoverColoringText}\r\n }\r\n\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n\r\n &.react-datepicker__day--selected {\r\n ${selectedDefaultColoringText}\r\n }\r\n\r\n &.react-datepicker__day--today {\r\n border-radius: 0.3rem;\r\n ${todayDefaultColoringText}\r\n \r\n &:hover {\r\n ${unselectedHoverColoringText}\r\n }\r\n\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst IconWrapper = styled.div`\r\n pointer-events: none;\r\n position: absolute;\r\n left: 16px;\r\n width: 24px;\r\n height: 24px;\r\n z-index: ${+Z_INDEXES.focus + 1};\r\n`;\r\n\r\nconst DatepickerRow = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n`;\r\n\r\nconst StyledInputFieldStyling = styled(InputFieldStyling)<{disabled?: boolean, readOnly?: boolean}>`\r\n padding-left: 48px !important;\r\n \r\n &::placeholder {\r\n color: ${props => COLORS.generateToken({componentType: 'text', defaultVariant: 'subtle'}, props.theme)};\r\n }\r\n\r\n &:focus:not(.focus-visible) {\r\n box-shadow: inset 0px 0px 0px 2px ${props => COLORS.getColor('primary_300', props.theme)};\r\n }\r\n\r\n &:hover {\r\n box-shadow: inset 0px 0px 0px 2px ${props => COLORS.generateToken({componentType: 'border', state: 'hover'}, props.theme)};\r\n\r\n ::placeholder {\r\n color: ${props => COLORS.generateToken({componentType: 'text', state: 'hover'}, props.theme)};\r\n }\r\n\r\n cursor: pointer;\r\n background-color: ${props => COLORS.generateToken({componentType: 'bg-surface', state: 'hover'}, props.theme)};\r\n color: ${props => COLORS.generateToken({componentType: 'text', state: 'hover'}, props.theme)};\r\n }\r\n\r\n &:active,\r\n &.open {\r\n box-shadow: inset 0px 0px 0px 2px ${props => COLORS.generateToken({componentType: 'border', state: 'active'}, props.theme)};\r\n background-color: ${props => COLORS.generateToken({componentType: 'bg-surface', state: 'active'}, props.theme)};\r\n color: ${props => COLORS.generateToken({componentType: 'text', state: 'active'}, props.theme)};\r\n\r\n ::placeholder {\r\n color: ${props => COLORS.generateToken({componentType: 'text', state: 'active'}, props.theme)};\r\n }\r\n }\r\n \r\n &:disabled {\r\n background-color: ${props => COLORS.generateToken({componentType: 'bg-surface', state: 'disabled'}, props.theme)};\r\n }\r\n\r\n & ~ ${IconWrapper}{\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme)};\r\n }\r\n\r\n &:hover ~ ${IconWrapper} {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'hover' }, props.theme)};\r\n }\r\n\r\n &:active ~ ${IconWrapper}, &.open ~ ${IconWrapper} {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'active' }, props.theme)};\r\n }\r\n\r\n &[tabindex='-1'] ~ ${IconWrapper} {\r\n color: ${props => !props.$suppressReadOnlyStyles ? COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme) :\r\n COLORS.generateToken({ componentType: 'text', state: 'disabled' }, props.theme)};\r\n }\r\n`;\r\n\r\nconst quarterComponentsClassPrefix = 'react-datepicker__quarter-';\r\n\r\nconst DatepickerField = React.forwardRef<HTMLInputElement, DatepickerFieldProps>(({\r\n disabled,\r\n readOnly,\r\n onChange,\r\n invalid,\r\n value,\r\n validationMessage,\r\n dateFormat,\r\n autoComplete,\r\n placeholder,\r\n required,\r\n yearPicker,\r\n yearsBeforeCurrentDate,\r\n yearsAfterCurrentDate,\r\n margin,\r\n overflowTooltipPosition,\r\n onBlur,\r\n showQuarterYearPicker,\r\n id,\r\n dataTestId,\r\n ...rest\r\n }: DatepickerFieldProps, ref) => {\r\n // Globally used variables within the component\r\n const theme = useTheme();\r\n const inputRef = useFocusVisibleRef();\r\n const datepickerRef = React.useRef<any>(null);\r\n const focusedQuarterRef = React.useRef<number>(1);\r\n const [activeMonthPage, setActiveMonthPage] = React.useState<number>(-1);\r\n const [yearPickerMode, setYearPickerMode] = React.useState<boolean>(false);\r\n const [openAt, setOpenAt] = React.useState<Date | null>(null);\r\n // 'open' flag is used only for tracking current state of the dropdown,\r\n // for explicitly opening/closing the picker we are using 'datepickerRef.current.setOpen'\r\n const [open, setOpen] = React.useState<boolean>(false);\r\n\r\n const getFormattedValue = () => {\r\n if(showQuarterYearPicker)\r\n {\r\n const val = dayjs(value);\r\n return val.year() + ', Q' + val.quarter();\r\n }\r\n else \r\n return dayjs(value).format(dateFormat ? dateFormat : 'MMMM Do, YYYY');\r\n }\r\n /**\r\n * Format the date in a specific way.\r\n */\r\n React.useEffect(() => {\r\n if (value) inputRef.current.value = getFormattedValue();\r\n }, [value]);\r\n\r\n function getQuarterItem(classname: string) : HTMLElement {\r\n return document.getElementsByClassName(quarterComponentsClassPrefix + classname)[0] as HTMLElement;\r\n }\r\n\r\n React.useEffect(() => {\r\n if (yearPickerMode) {\r\n //unfortunately, since there are no refs, and year pickers is rendered not by our code, but by 'react-datepicker'\r\n //we have to touch DOM directly\r\n const selectedDate = document.getElementsByClassName('react-datepicker__year-text--selected')[0] as HTMLElement;\r\n const dropdownParent = selectedDate?.parentElement?.parentElement;\r\n if (selectedDate && dropdownParent) dropdownParent.scrollTop = selectedDate.offsetTop - 2 * selectedDate.offsetHeight;\r\n }\r\n }, [yearPickerMode]);\r\n\r\n React.useEffect(() => {\r\n if(showQuarterYearPicker && open)\r\n {\r\n const wrapper = getQuarterItem('wrapper');\r\n const handler = (event: KeyboardEvent) => {\r\n switch(event.key)\r\n {\r\n case ' ':\r\n case 'Enter':\r\n const currentQ = getQuarterItem(focusedQuarterRef.current + '');\r\n currentQ.click();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n if(focusedQuarterRef.current > 1)\r\n {\r\n const currentQ = getQuarterItem(focusedQuarterRef.current + '');\r\n const previousQ = getQuarterItem((focusedQuarterRef.current - 1) + '');\r\n if(previousQ)\r\n {\r\n currentQ.tabIndex = -1;\r\n previousQ.tabIndex = 0;\r\n previousQ.focus();\r\n focusedQuarterRef.current = focusedQuarterRef.current - 1;\r\n }\r\n }\r\n break;\r\n\r\n case 'ArrowRight':\r\n if(focusedQuarterRef.current < 4)\r\n {\r\n const currentQ = getQuarterItem(focusedQuarterRef.current + '');\r\n const nextQ = getQuarterItem((focusedQuarterRef.current + 1) + '');\r\n if(nextQ)\r\n {\r\n currentQ.tabIndex = -1;\r\n nextQ.tabIndex = 0;\r\n nextQ.focus();\r\n focusedQuarterRef.current = focusedQuarterRef.current + 1;\r\n }\r\n }\r\n break;\r\n }\r\n };\r\n\r\n wrapper.addEventListener('keydown', handler);\r\n //unfortunately since there are no efs, and quarter picker is rendered not by our code, but by 'react-datepicker'\r\n //we have to touch DOM directly\r\n \r\n const selectedQuarter = getQuarterItem('-selected');\r\n if(selectedQuarter) {\r\n for (let i = 1; i < 5; i++) {\r\n if(selectedQuarter.innerText.includes('Q' + i)) {\r\n focusedQuarterRef.current = i;\r\n break;\r\n }\r\n }\r\n selectedQuarter.setAttribute(\"tabIndex\", \"0\");\r\n }\r\n else\r\n {\r\n const firstQuarter = getQuarterItem('1');\r\n if(firstQuarter) {\r\n focusedQuarterRef.current = 1;\r\n firstQuarter.setAttribute(\"tabIndex\", \"0\");\r\n }\r\n }\r\n\r\n return () => {\r\n wrapper.removeEventListener('keydown', handler);\r\n };\r\n }\r\n }, [showQuarterYearPicker, open]);\r\n\r\n //we have to manually reopen the calendar when needed, to guarantee that datepicker will show selected date after year selection\r\n //otherwise after year selection datepicker will show January month of the selected year\r\n React.useEffect(() => {\r\n if (openAt) {\r\n datepickerRef.current.setOpen(true);\r\n //setOpenAt(null);\r\n }\r\n }, [openAt]);\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const handleCalendarClose = () => {\r\n inputRef.current?.blur();\r\n setOpen(false);\r\n };\r\n\r\n const handleCalendarOpen = () => {\r\n if (openAt) setOpenAt(null);\r\n setOpen(true);\r\n };\r\n\r\n let maxDate = new Date(value && new Date(value) > new Date() ? new Date(value) : new Date());\r\n maxDate.setFullYear(maxDate.getFullYear() + (yearsAfterCurrentDate ?? 50));\r\n\r\n //itemsNumber - controls number of year select options generated in the dropdown\r\n //items related to dates higher than 'maxDate' will be hidden, thus to avoid creating hundreds of invisible divs, we divide by 5\r\n let minDate = new Date(value && new Date(value) < new Date() ? new Date(value) : new Date());\r\n const itemsNumber = Math.round((minDate.getFullYear() - (yearsBeforeCurrentDate ?? 15)) / 5);\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\r\n if (e.key === 'Escape' || e.key === 'Esc')\r\n datepickerRef.current.setOpen(false);\r\n };\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\r\n // @ts-ignore\r\n if (!e.currentTarget.contains(e.relatedTarget)) {\r\n onBlur && onBlur(e);\r\n }\r\n };\r\n const iconSize = 24;\r\n\r\n return (\r\n <>\r\n {/* Let's render the input itself */}\r\n <DatePickerContainer $quarterPicker={showQuarterYearPicker} data-testid={dataTestId} $yearPicker={yearPickerMode} $margin={margin || ''} onBlur={handleBlur}>\r\n <DatePicker\r\n ref={datepickerRef}\r\n onCalendarOpen={handleCalendarOpen}\r\n onCalendarClose={handleCalendarClose}\r\n onKeyDown={handleKeyDown}\r\n id={id}\r\n onClickOutside={() => datepickerRef.current.setOpen(false)}\r\n\r\n onChange={(e: any) => {\r\n if (onChange) {\r\n if (yearPickerMode) {\r\n const newDate = new Date();\r\n newDate.setFullYear(e.getFullYear());\r\n newDate.setMonth(activeMonthPage);\r\n setOpenAt(newDate);\r\n } else onChange(e);\r\n }\r\n if (yearPickerMode) setYearPickerMode(false);\r\n }}\r\n disabled={disabled || readOnly}\r\n locale={en}\r\n showQuarterYearPicker={showQuarterYearPicker}\r\n dateFormat={showQuarterYearPicker ? \"yyyy, QQQ\" : undefined}\r\n showYearPicker={yearPickerMode}\r\n //we manipulate 'yearItemNumber' and 'maxDate' to guarantee number of year select options shown before and after selected year\r\n yearItemNumber={yearPickerMode ? itemsNumber : undefined}\r\n maxDate={yearPickerMode ? maxDate : undefined}\r\n selected={value}\r\n openToDate={openAt ?? undefined}\r\n preventOpenOnFocus={true}\r\n shouldCloseOnSelect={true}\r\n renderCustomHeader={\r\n yearPicker\r\n ? (params: ReactDatePickerCustomHeaderProps) =>\r\n React.createElement(\r\n DatepickerFieldHeader,\r\n {\r\n ...params,\r\n setActiveMonthPage,\r\n customHeaderCount: 0,\r\n yearPickerMode: yearPickerMode,\r\n setYearPickerMode: setYearPickerMode,\r\n },\r\n null,\r\n )\r\n : undefined\r\n }\r\n customInput={\r\n <InputWrapper $disabled={disabled} $readOnly={readOnly}>\r\n <DatepickerRow>\r\n <StyledInputFieldStyling\r\n ref={inputRef}\r\n type=\"text\"\r\n name=\"datepicker\"\r\n onKeyDown={(e) => e.key === 'Enter' && datepickerRef.current.setOpen(true)}\r\n className={(invalid ? 'invalid' : '' + (open ? ' open' : ''))}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n onFocus={(e) => inputRef.current?.setSelectionRange(0, 0)}\r\n autoComplete={autoComplete}\r\n placeholder={placeholder}\r\n $extraRightPadding={iconSize}\r\n disabled={disabled}\r\n readOnly={true}\r\n $suppressReadOnlyStyles={!readOnly}\r\n required={required}\r\n {...rest}\r\n />\r\n <IconWrapper>\r\n <SystemIcons.Calendar size=\"24\"/>\r\n </IconWrapper>\r\n </DatepickerRow>\r\n {!open && <TooltipOverflow position={overflowTooltipPosition} input={inputRef} withArrow={true} maxWidth=\"100%\" size={Size.Small} align='end'>\r\n {getFormattedValue()}\r\n </TooltipOverflow>}\r\n </InputWrapper>\r\n }\r\n />\r\n </DatePickerContainer>\r\n\r\n {/* If there is an error, let's render the error */}\r\n {validationMessage && (\r\n <ErrorMessage>\r\n <SystemIcons.TechnicalWarning color={COLORS.generateToken({ componentType: 'icon', defaultVariant: 'warning' }, theme)}/>\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default DatepickerField;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DatepickerField.js","names":["React","styled","css","useTheme","DatePicker","en","dayjs","advancedFormat","quarterOfYear","extend","COLORS","SystemIcons","DatepickerFieldHeader","ComponentTextStyle","focusStyles","scrollBarStyling","TooltipOverflow","ErrorMessage","InputFieldStyling","InputWrapper","ComponentMStyling","ComponentSStyling","Z_INDEXES","useFocusVisibleRef","Size","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","unselectedHoverColoringText","props","generateToken","componentType","state","theme","selectedDefaultColoringText","isOnFill","defaultVariant","todayDefaultColoringText","DatePickerContainer","div","dropdown","$margin","$yearPicker","Bold","Small","Regular","IconWrapper","focus","DatepickerRow","StyledInputFieldStyling","getColor","$suppressReadOnlyStyles","quarterComponentsClassPrefix","DatepickerField","forwardRef","_ref","ref","disabled","readOnly","onChange","invalid","value","validationMessage","dateFormat","autoComplete","placeholder","required","yearPicker","yearsBeforeCurrentDate","yearsAfterCurrentDate","margin","overflowTooltipPosition","onBlur","showQuarterYearPicker","id","dataTestId","rest","_objectWithoutProperties","_excluded","inputRef","datepickerRef","useRef","focusedQuarterRef","activeMonthPage","setActiveMonthPage","useState","yearPickerMode","setYearPickerMode","openAt","setOpenAt","open","setOpen","getFormattedValue","val","year","quarter","format","useEffect","current","getQuarterItem","classname","document","getElementsByClassName","selectedDate","dropdownParent","parentElement","scrollTop","offsetTop","offsetHeight","wrapper","handler","event","key","currentQ","click","previousQ","tabIndex","nextQ","addEventListener","selectedQuarter","i","innerText","includes","setAttribute","firstQuarter","removeEventListener","useImperativeHandle","handleCalendarClose","blur","handleCalendarOpen","maxDate","Date","setFullYear","getFullYear","minDate","itemsNumber","Math","round","handleKeyDown","e","handleBlur","currentTarget","contains","relatedTarget","iconSize","children","$quarterPicker","onCalendarOpen","onCalendarClose","onKeyDown","onClickOutside","newDate","setMonth","locale","undefined","showYearPicker","yearItemNumber","selected","openToDate","preventOpenOnFocus","shouldCloseOnSelect","renderCustomHeader","params","createElement","_objectSpread","customHeaderCount","customInput","$disabled","$readOnly","type","name","className","onFocus","setSelectionRange","$extraRightPadding","Calendar","size","position","input","withArrow","maxWidth","align","TechnicalWarning","color","propTypes","_pt","instanceOf","func","bool","string","number","oneOf"],"sources":["../../src/InputFields/DatepickerField.tsx"],"sourcesContent":["/**\r\n * Import react libraries.\r\n */\r\nimport React from 'react';\r\n\r\n/**\r\n * Import third-party libraries.\r\n */\r\nimport styled, { css, useTheme } from 'styled-components';\r\nimport DatePicker, { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\r\nimport en from 'date-fns/locale/en-GB';\r\nimport dayjs from 'dayjs';\r\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\r\nimport quarterOfYear from \"dayjs/plugin/quarterOfYear\";\r\n\r\ndayjs.extend(advancedFormat);\r\ndayjs.extend(quarterOfYear);\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport COLORS from '../styles/colors';\r\nimport {SystemIcons} from '../icons';\r\nimport {DatepickerFieldHeader} from './DatepickerFieldHeader';\r\nimport {ComponentTextStyle, focusStyles, scrollBarStyling} from '../styles';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {ErrorMessage, InputFieldStyling, InputWrapper} from './styling';\r\nimport '../styles/react-datepicker.css';\r\nimport {ComponentMStyling, ComponentSStyling} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {Size, Testable} from '../types';\r\n\r\n/**\r\n * Add custom types.\r\n */\r\nexport type DatepickerFieldProps = Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'size' | 'onBlur'> & {\r\n /** Optional. Selected date. Defaults to current date */\r\n value?: Date;\r\n /** Optional. Handler to be called when selected date was changed. */\r\n onChange?: (date: Date) => void;\r\n /** Optional. Handler to be called when control is losing focus. */\r\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;\r\n /** Optional. Quarter picker mode. If set, then user can not select a particular date, but quarter of the year.\r\n * 1st day of the quarter will be set as value.\r\n */\r\n showQuarterYearPicker?: boolean;\r\n /** Optional. If set, then input field will be shown in 'invalid' state */\r\n invalid?: boolean;\r\n /** Optional. Format in which date will be shown in the input field. Defaults to 'MMMM Do, yyyy'. \r\n * For quarter picker will be shown in 'YYYY, qqq' format.\r\n */\r\n dateFormat?: string;\r\n /** Optional. Validation message to be shown under the input field */\r\n validationMessage?: string;\r\n /** Optional. Value for 'autocomplete' attribute of input field tag. */\r\n autoComplete?: string;\r\n /** Optional. Placeholder text to be shown when no value is selected. */\r\n placeholder?: string;\r\n /** Optional. If set, then user will be able to open year selector by clicking on the month in the dropdown. */\r\n yearPicker?: boolean;\r\n /** Optional. How many years before current year will be available in the year selector mode. */\r\n yearsBeforeCurrentDate?: number;\r\n /** Optional. How many years after current year will be available in the year selector mode. */\r\n yearsAfterCurrentDate?: number;\r\n /** Optional. Margin value to be set to the dropdown container. */\r\n margin?: string;\r\n /** Optional. Position where to show tooltip in case of closed datepicker and value overflowing the input field. */\r\n overflowTooltipPosition?: 'top' | 'bottom';\r\n};\r\n\r\n\r\nconst unselectedHoverColoringText = css`\r\n color: ${props => COLORS.generateToken({componentType: 'text', state: 'hover'}, props.theme)} !important;\r\n background: ${props => COLORS.generateToken({componentType: 'bg-surface', state: 'hover'}, props.theme)} !important; \r\n`;\r\n\r\nconst selectedDefaultColoringText = css`\r\n color: ${props => COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme)} !important;\r\n background: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant: 'primary' }, props.theme)} !important;\r\n`;\r\n\r\nconst todayDefaultColoringText = css`\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'default' }, props.theme)};\r\n background: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'selected' }, props.theme)};\r\n`;\r\n\r\n/**\r\n * Add custom styles.\r\n */\r\nconst DatePickerContainer = styled.div<{ $yearPicker: boolean; $margin: string; $quarterPicker?: boolean }>`\r\n .react-datepicker-popper {\r\n z-index: ${Z_INDEXES.dropdown};\r\n }\r\n\r\n .react-datepicker-popper[data-placement^=bottom] {\r\n padding-top: 0px;\r\n }\r\n\r\n \r\n .react-datepicker-popper[data-placement^=top] {\r\n padding-bottom: 0px;\r\n }\r\n\r\n > div {\r\n display: block;\r\n\r\n ${(props) => (props.$margin ? `margin: ${props.$margin};` : '')}\r\n .react-datepicker {\r\n box-sizing: border-box;\r\n box-shadow: 0px 2px 4px rgb(0 0 0 / 15%);\r\n border: 1px solid #e5e5e5;\r\n }\r\n .react-datepicker__input-container{\r\n z-index: 0;\r\n }\r\n\r\n .react-datepicker__navigation {\r\n line-height: normal;\r\n text-indent: inherit;\r\n border: none;\r\n border-radius: 4px;\r\n height: 48px;\r\n width: 48px;\r\n outline: none;\r\n margin: 0px;\r\n color: transparent;\r\n\r\n &:hover {\r\n background: ${props => COLORS.generateToken({componentType:'bg-surface', state:'hover'}, props.theme)};\r\n\r\n &.react-datepicker__navigation--previous::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23215369' /%3E%3C/svg%3E\");\r\n }\r\n\r\n &.react-datepicker__navigation--next::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23215369' /%3E%3C/svg%3E\");\r\n }\r\n }\r\n\r\n &:focus {\r\n ${focusStyles}\r\n &.react-datepicker__navigation--next::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23163746' /%3E%3C/svg%3E\");\r\n }\r\n\r\n &.react-datepicker__navigation--previous::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23163746' /%3E%3C/svg%3E\");\r\n }\r\n }\r\n\r\n &::before {\r\n text-align: center;\r\n display: inline-block;\r\n content: '';\r\n height: 32px;\r\n width: 32px;\r\n vertical-align: middle;\r\n }\r\n\r\n &.react-datepicker__navigation--next::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23666666' /%3E%3C/svg%3E\");\r\n }\r\n\r\n &.react-datepicker__navigation--previous::before {\r\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23666666' /%3E%3C/svg%3E\");\r\n }\r\n }\r\n\r\n .react-datepicker__month-container,\r\n .react-datepicker__year--container {\r\n width: 336px;\r\n }\r\n\r\n .react-datepicker__month {\r\n margin: 0px;\r\n background: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'high'}, props.theme)};\r\n }\r\n\r\n .react-datepicker__triangle {\r\n left: 50% !important;\r\n display: none;\r\n }\r\n\r\n .react-datepicker-popper[data-placement^='bottom'] {\r\n margin-top: 0;\r\n }\r\n\r\n .react-datepicker-popper[data-placement^='bottom'] .react-datepicker__triangle {\r\n border-bottom-color: ${props => COLORS.generateToken({componentType:'bg-surface', state:'hover'}, props.theme)};\r\n }\r\n\r\n .react-datepicker__header {\r\n border-bottom: 1px solid ${props => COLORS.generateToken({componentType: 'border', defaultVariant: 'subtle'}, props.theme)};\r\n background: ${props => COLORS.generateToken({componentType: 'bg-surface', defaultVariant: 'subtle'}, props.theme)};\r\n height: ${(props) => (!props.$yearPicker ? '96px' : '54px')};\r\n padding-top: 0px;\r\n }\r\n\r\n .react-datepicker-year-header {\r\n height: 48px;\r\n line-height: 48px !important;\r\n align-items: center;\r\n\r\n ${props => ComponentSStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n }\r\n\r\n .react-datepicker__current-month {\r\n height: 48px;\r\n display: inline-flex;\r\n align-items: center;\r\n margin-right: 5px;\r\n\r\n ${props => ComponentSStyling(ComponentTextStyle.Bold, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n }\r\n\r\n .react-datepicker__year {\r\n max-height: 300px;\r\n overflow-y: scroll;\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n }\r\n\r\n .react-datepicker__quarter-wrapper{\r\n width: 100%;\r\n display: flex;\r\n align-content: space-evenly;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n gap: 20px;\r\n }\r\n\r\n .react-datepicker__year-wrapper {\r\n max-width: 100%;\r\n justify-content: space-around;\r\n }\r\n\r\n .react-datepicker__navigation-icon {\r\n display: none;\r\n }\r\n\r\n .react-datepicker__day-name {\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 48px;\r\n margin: 0px;\r\n width: 48px;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n }\r\n\r\n \r\n\r\n .react-datepicker__year-text {\r\n background: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'high'}, props.theme)};\r\n border: none;\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n margin-top: 20px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n &.react-datepicker__year-text--disabled {\r\n display: none;\r\n }\r\n\r\n &.react-datepicker__day--keyboard-selected {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme)};\r\n background: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'high'}, props.theme)};\r\n font-weight: 400;\r\n border: none;\r\n }\r\n\r\n &:hover {\r\n ${unselectedHoverColoringText}\r\n }\r\n\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n\r\n &.react-datepicker__year-text--selected {\r\n ${selectedDefaultColoringText}\r\n }\r\n }\r\n\r\n .react-datepicker__day, .react-datepicker__quarter-text {\r\n background: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'high'}, props.theme)};\r\n border: none;\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-grow: 1;\r\n height: 40px;\r\n width: 40px;\r\n margin: 4px;\r\n\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme))}\r\n &.react-datepicker__day--keyboard-selected, .react-datepicker__quarter-text--keyboard-selected {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme)};\r\n background: ${props => COLORS.generateToken({componentType:'bg-surface', defaultVariant:'high'}, props.theme)};\r\n flex-grow: 1;\r\n font-weight: 400;\r\n border: none;\r\n }\r\n\r\n &.react-datepicker__quarter-text--selected {\r\n ${selectedDefaultColoringText}\r\n flex-grow: 1;\r\n }\r\n\r\n &:hover {\r\n ${unselectedHoverColoringText}\r\n }\r\n\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n\r\n &.react-datepicker__day--selected {\r\n ${selectedDefaultColoringText}\r\n }\r\n\r\n &.react-datepicker__day--today {\r\n border-radius: 0.3rem;\r\n ${todayDefaultColoringText}\r\n \r\n &:hover {\r\n ${unselectedHoverColoringText}\r\n }\r\n\r\n &:focus {\r\n ${focusStyles}\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst IconWrapper = styled.div`\r\n pointer-events: none;\r\n position: absolute;\r\n left: 16px;\r\n width: 24px;\r\n height: 24px;\r\n z-index: ${+Z_INDEXES.focus + 1};\r\n`;\r\n\r\nconst DatepickerRow = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n`;\r\n\r\nconst StyledInputFieldStyling = styled(InputFieldStyling)<{disabled?: boolean, readOnly?: boolean}>`\r\n padding-left: 48px !important;\r\n \r\n &::placeholder {\r\n color: ${props => COLORS.generateToken({componentType: 'text', defaultVariant: 'subtle'}, props.theme)};\r\n }\r\n\r\n &:focus:not(.focus-visible) {\r\n box-shadow: inset 0px 0px 0px 2px ${props => COLORS.getColor('primary_300', props.theme)};\r\n }\r\n\r\n &:hover {\r\n box-shadow: inset 0px 0px 0px 2px ${props => COLORS.generateToken({componentType: 'border', state: 'hover'}, props.theme)};\r\n\r\n ::placeholder {\r\n color: ${props => COLORS.generateToken({componentType: 'text', state: 'hover'}, props.theme)};\r\n }\r\n\r\n cursor: pointer;\r\n background-color: ${props => COLORS.generateToken({componentType: 'bg-surface', state: 'hover'}, props.theme)};\r\n color: ${props => COLORS.generateToken({componentType: 'text', state: 'hover'}, props.theme)};\r\n }\r\n\r\n &:active,\r\n &.open {\r\n box-shadow: inset 0px 0px 0px 2px ${props => COLORS.generateToken({componentType: 'border', state: 'active'}, props.theme)};\r\n background-color: ${props => COLORS.generateToken({componentType: 'bg-surface', state: 'active'}, props.theme)};\r\n color: ${props => COLORS.generateToken({componentType: 'text', state: 'active'}, props.theme)};\r\n\r\n ::placeholder {\r\n color: ${props => COLORS.generateToken({componentType: 'text', state: 'active'}, props.theme)};\r\n }\r\n }\r\n \r\n &:disabled {\r\n background-color: ${props => COLORS.generateToken({componentType: 'bg-surface', state: 'disabled'}, props.theme)};\r\n }\r\n\r\n & ~ ${IconWrapper}{\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme)};\r\n }\r\n\r\n &:hover ~ ${IconWrapper} {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'hover' }, props.theme)};\r\n }\r\n\r\n &:active ~ ${IconWrapper}, &.open ~ ${IconWrapper} {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'active' }, props.theme)};\r\n }\r\n\r\n &[tabindex='-1'] ~ ${IconWrapper} {\r\n color: ${props => !props.$suppressReadOnlyStyles ? COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme) :\r\n COLORS.generateToken({ componentType: 'text', state: 'disabled' }, props.theme)};\r\n }\r\n`;\r\n\r\nconst quarterComponentsClassPrefix = 'react-datepicker__quarter-';\r\n\r\nconst DatepickerField = React.forwardRef<HTMLInputElement, DatepickerFieldProps>(({\r\n disabled,\r\n readOnly,\r\n onChange,\r\n invalid,\r\n value,\r\n validationMessage,\r\n dateFormat,\r\n autoComplete,\r\n placeholder,\r\n required,\r\n yearPicker,\r\n yearsBeforeCurrentDate,\r\n yearsAfterCurrentDate,\r\n margin,\r\n overflowTooltipPosition,\r\n onBlur,\r\n showQuarterYearPicker,\r\n id,\r\n dataTestId,\r\n ...rest\r\n }: DatepickerFieldProps, ref) => {\r\n // Globally used variables within the component\r\n const theme = useTheme();\r\n const inputRef = useFocusVisibleRef();\r\n const datepickerRef = React.useRef<any>(null);\r\n const focusedQuarterRef = React.useRef<number>(1);\r\n const [activeMonthPage, setActiveMonthPage] = React.useState<number>(-1);\r\n const [yearPickerMode, setYearPickerMode] = React.useState<boolean>(false);\r\n const [openAt, setOpenAt] = React.useState<Date | null>(null);\r\n // 'open' flag is used only for tracking current state of the dropdown,\r\n // for explicitly opening/closing the picker we are using 'datepickerRef.current.setOpen'\r\n const [open, setOpen] = React.useState<boolean>(false);\r\n\r\n const getFormattedValue = () => {\r\n if(showQuarterYearPicker)\r\n {\r\n const val = dayjs(value);\r\n return val.year() + ', Q' + val.quarter();\r\n }\r\n else \r\n return dayjs(value).format(dateFormat ? dateFormat : 'MMMM Do, YYYY');\r\n }\r\n /**\r\n * Format the date in a specific way.\r\n */\r\n React.useEffect(() => {\r\n if (value) inputRef.current.value = getFormattedValue();\r\n }, [value]);\r\n\r\n function getQuarterItem(classname: string) : HTMLElement {\r\n return document.getElementsByClassName(quarterComponentsClassPrefix + classname)[0] as HTMLElement;\r\n }\r\n\r\n React.useEffect(() => {\r\n if (yearPickerMode) {\r\n //unfortunately, since there are no refs, and year pickers is rendered not by our code, but by 'react-datepicker'\r\n //we have to touch DOM directly\r\n const selectedDate = document.getElementsByClassName('react-datepicker__year-text--selected')[0] as HTMLElement;\r\n const dropdownParent = selectedDate?.parentElement?.parentElement;\r\n if (selectedDate && dropdownParent) dropdownParent.scrollTop = selectedDate.offsetTop - 2 * selectedDate.offsetHeight;\r\n }\r\n }, [yearPickerMode]);\r\n\r\n React.useEffect(() => {\r\n if(showQuarterYearPicker && open)\r\n {\r\n const wrapper = getQuarterItem('wrapper');\r\n const handler = (event: KeyboardEvent) => {\r\n switch(event.key)\r\n {\r\n case ' ':\r\n case 'Enter':\r\n const currentQ = getQuarterItem(focusedQuarterRef.current + '');\r\n currentQ.click();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n if(focusedQuarterRef.current > 1)\r\n {\r\n const currentQ = getQuarterItem(focusedQuarterRef.current + '');\r\n const previousQ = getQuarterItem((focusedQuarterRef.current - 1) + '');\r\n if(previousQ)\r\n {\r\n currentQ.tabIndex = -1;\r\n previousQ.tabIndex = 0;\r\n previousQ.focus();\r\n focusedQuarterRef.current = focusedQuarterRef.current - 1;\r\n }\r\n }\r\n break;\r\n\r\n case 'ArrowRight':\r\n if(focusedQuarterRef.current < 4)\r\n {\r\n const currentQ = getQuarterItem(focusedQuarterRef.current + '');\r\n const nextQ = getQuarterItem((focusedQuarterRef.current + 1) + '');\r\n if(nextQ)\r\n {\r\n currentQ.tabIndex = -1;\r\n nextQ.tabIndex = 0;\r\n nextQ.focus();\r\n focusedQuarterRef.current = focusedQuarterRef.current + 1;\r\n }\r\n }\r\n break;\r\n }\r\n };\r\n\r\n wrapper.addEventListener('keydown', handler);\r\n //unfortunately since there are no efs, and quarter picker is rendered not by our code, but by 'react-datepicker'\r\n //we have to touch DOM directly\r\n \r\n const selectedQuarter = getQuarterItem('-selected');\r\n if(selectedQuarter) {\r\n for (let i = 1; i < 5; i++) {\r\n if(selectedQuarter.innerText.includes('Q' + i)) {\r\n focusedQuarterRef.current = i;\r\n break;\r\n }\r\n }\r\n selectedQuarter.setAttribute(\"tabIndex\", \"0\");\r\n }\r\n else\r\n {\r\n const firstQuarter = getQuarterItem('1');\r\n if(firstQuarter) {\r\n focusedQuarterRef.current = 1;\r\n firstQuarter.setAttribute(\"tabIndex\", \"0\");\r\n }\r\n }\r\n\r\n return () => {\r\n wrapper.removeEventListener('keydown', handler);\r\n };\r\n }\r\n }, [showQuarterYearPicker, open]);\r\n\r\n //we have to manually reopen the calendar when needed, to guarantee that datepicker will show selected date after year selection\r\n //otherwise after year selection datepicker will show January month of the selected year\r\n React.useEffect(() => {\r\n if (openAt) {\r\n datepickerRef.current.setOpen(true);\r\n //setOpenAt(null);\r\n }\r\n }, [openAt]);\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const handleCalendarClose = () => {\r\n inputRef.current?.blur();\r\n setOpen(false);\r\n };\r\n\r\n const handleCalendarOpen = () => {\r\n if (openAt) setOpenAt(null);\r\n setOpen(true);\r\n };\r\n\r\n let maxDate = new Date(value && new Date(value) > new Date() ? new Date(value) : new Date());\r\n maxDate.setFullYear(maxDate.getFullYear() + (yearsAfterCurrentDate ?? 50));\r\n\r\n //itemsNumber - controls number of year select options generated in the dropdown\r\n //items related to dates higher than 'maxDate' will be hidden, thus to avoid creating hundreds of invisible divs, we divide by 5\r\n let minDate = new Date(value && new Date(value) < new Date() ? new Date(value) : new Date());\r\n const itemsNumber = Math.round((minDate.getFullYear() - (yearsBeforeCurrentDate ?? 15)) / 5);\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\r\n if (e.key === 'Escape' || e.key === 'Esc')\r\n datepickerRef.current.setOpen(false);\r\n };\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\r\n // @ts-ignore\r\n if (!e.currentTarget.contains(e.relatedTarget)) {\r\n onBlur && onBlur(e);\r\n }\r\n };\r\n const iconSize = 24;\r\n\r\n return (\r\n <>\r\n {/* Let's render the input itself */}\r\n <DatePickerContainer $quarterPicker={showQuarterYearPicker} data-testid={dataTestId} $yearPicker={yearPickerMode} $margin={margin || ''} onBlur={handleBlur}>\r\n <DatePicker\r\n ref={datepickerRef}\r\n onCalendarOpen={handleCalendarOpen}\r\n onCalendarClose={handleCalendarClose}\r\n onKeyDown={handleKeyDown}\r\n id={id}\r\n onClickOutside={() => datepickerRef.current.setOpen(false)}\r\n\r\n onChange={(e: any) => {\r\n if (onChange) {\r\n if (yearPickerMode) {\r\n const newDate = new Date();\r\n newDate.setFullYear(e.getFullYear());\r\n newDate.setMonth(activeMonthPage);\r\n setOpenAt(newDate);\r\n } else onChange(e);\r\n }\r\n if (yearPickerMode) setYearPickerMode(false);\r\n }}\r\n disabled={disabled || readOnly}\r\n locale={en}\r\n showQuarterYearPicker={showQuarterYearPicker}\r\n dateFormat={showQuarterYearPicker ? \"yyyy, QQQ\" : undefined}\r\n showYearPicker={yearPickerMode}\r\n //we manipulate 'yearItemNumber' and 'maxDate' to guarantee number of year select options shown before and after selected year\r\n yearItemNumber={yearPickerMode ? itemsNumber : undefined}\r\n maxDate={yearPickerMode ? maxDate : undefined}\r\n selected={value}\r\n openToDate={openAt ?? undefined}\r\n preventOpenOnFocus={true}\r\n shouldCloseOnSelect={true}\r\n renderCustomHeader={\r\n yearPicker\r\n ? (params: ReactDatePickerCustomHeaderProps) =>\r\n React.createElement(\r\n DatepickerFieldHeader,\r\n {\r\n ...params,\r\n setActiveMonthPage,\r\n customHeaderCount: 0,\r\n yearPickerMode: yearPickerMode,\r\n setYearPickerMode: setYearPickerMode,\r\n },\r\n null,\r\n )\r\n : undefined\r\n }\r\n customInput={\r\n <InputWrapper $disabled={disabled} $readOnly={readOnly}>\r\n <DatepickerRow>\r\n <StyledInputFieldStyling\r\n ref={inputRef}\r\n type=\"text\"\r\n name=\"datepicker\"\r\n onKeyDown={(e) => e.key === 'Enter' && datepickerRef.current.setOpen(true)}\r\n className={(invalid ? 'invalid' : '' + (open ? ' open' : ''))}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n onFocus={(e) => inputRef.current?.setSelectionRange(0, 0)}\r\n autoComplete={autoComplete}\r\n placeholder={placeholder}\r\n $extraRightPadding={iconSize}\r\n disabled={disabled}\r\n readOnly={true}\r\n $suppressReadOnlyStyles={!readOnly}\r\n required={required}\r\n {...rest}\r\n />\r\n <IconWrapper>\r\n <SystemIcons.Calendar size=\"24\"/>\r\n </IconWrapper>\r\n </DatepickerRow>\r\n {!open && <TooltipOverflow position={overflowTooltipPosition} input={inputRef} withArrow={true} maxWidth=\"100%\" size={Size.Small} align='end'>\r\n {getFormattedValue()}\r\n </TooltipOverflow>}\r\n </InputWrapper>\r\n }\r\n />\r\n </DatePickerContainer>\r\n\r\n {/* If there is an error, let's render the error */}\r\n {validationMessage && (\r\n <ErrorMessage>\r\n <SystemIcons.TechnicalWarning color={COLORS.generateToken({ componentType: 'icon', defaultVariant: 'warning' }, theme)}/>\r\n <span>{validationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default DatepickerField;\r\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA,OAAOA,KAAK,MAAM,OAAO;;AAEzB;AACA;AACA;AACA,OAAOC,MAAM,IAAIC,GAAG,EAAEC,QAAQ,QAAQ,mBAAmB;AACzD,OAAOC,UAAU,MAA4C,kBAAkB;AAC/E,OAAOC,EAAE,MAAM,uBAAuB;AACtC,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,cAAc,MAAO,6BAA6B;AACzD,OAAOC,aAAa,MAAM,4BAA4B;AAEtDF,KAAK,CAACG,MAAM,CAACF,cAAc,CAAC;AAC5BD,KAAK,CAACG,MAAM,CAACD,aAAa,CAAC;;AAE3B;AACA;AACA;AACA,OAAOE,MAAM,MAAM,kBAAkB;AACrC,SAAQC,WAAW,QAAO,UAAU;AACpC,SAAQC,qBAAqB,QAAO,yBAAyB;AAC7D,SAAQC,kBAAkB,EAAEC,WAAW,EAAEC,gBAAgB,QAAO,WAAW;AAC3E,OAAOC,eAAe,MAAM,6BAA6B;;AAEzD;AACA;AACA;AACA,SAAQC,YAAY,EAAEC,iBAAiB,EAAEC,YAAY,QAAO,WAAW;AACvE,OAAO,gCAAgC;AACvC,SAAQC,iBAAiB,EAAEC,iBAAiB,QAAO,WAAW;AAC9D,SAAQC,SAAS,QAAO,WAAW;AACnC,SAAQC,kBAAkB,QAAO,WAAW;AAC5C,SAAQC,IAAI,QAAiB,UAAU;;AAEvC;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAuCA,MAAMC,2BAA2B,GAAG7B,GAAG;AACvC,aAAa8B,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,MAAM;EAAEC,KAAK,EAAE;AAAO,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AAChG,kBAAkBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,YAAY;EAAEC,KAAK,EAAE;AAAO,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AAC3G,CAAC;AAED,MAAMC,2BAA2B,GAAGnC,GAAG;AACvC,aAAa8B,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEI,QAAQ,EAAE,IAAI;EAAEC,cAAc,EAAE;AAAU,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AAC7H,kBAAkBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,SAAS;EAAEK,cAAc,EAAE;AAAU,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AACrH,CAAC;AAED,MAAMI,wBAAwB,GAAGtC,GAAG;AACpC,aAAa8B,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAU,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AAC7G,kBAAkBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,YAAY;EAAEK,cAAc,EAAE;AAAW,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AACzH,CAAC;;AAED;AACA;AACA;AACA,MAAMK,mBAAmB,GAAGxC,MAAM,CAACyC,GAAwE;AAC3G;AACA,eAAepB,SAAS,CAACqB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAOX,KAAK,IAAMA,KAAK,CAACY,OAAO,GAAG,WAAWZ,KAAK,CAACY,OAAO,GAAG,GAAG,EAAG;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsBZ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAC,YAAY;EAAEC,KAAK,EAAC;AAAO,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAUtB,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoBkB,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAC,YAAY;EAAEK,cAAc,EAAC;AAAM,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6BJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAC,YAAY;EAAEC,KAAK,EAAC;AAAO,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AACpH;AACA;AACA;AACA,iCAAiCJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,QAAQ;EAAEK,cAAc,EAAE;AAAQ,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AAChI,oBAAoBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,YAAY;EAAEK,cAAc,EAAE;AAAQ,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AACvH,gBAAiBJ,KAAK,IAAM,CAACA,KAAK,CAACa,WAAW,GAAG,MAAM,GAAG,MAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQb,KAAK,IAAIX,iBAAiB,CAACR,kBAAkB,CAACiC,IAAI,EAAEpC,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAS,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC,CAAC;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQJ,KAAK,IAAIX,iBAAiB,CAACR,kBAAkB,CAACiC,IAAI,EAAEpC,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAS,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC,CAAC;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQrB,gBAAgB,CAACS,IAAI,CAACuB,KAAK,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQf,KAAK,IAAIZ,iBAAiB,CAACP,kBAAkB,CAACmC,OAAO,EAAEtC,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAS,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC,CAAC;AACtJ;AACA;AACA;AACA;AACA;AACA,oBAAoBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAC,YAAY;EAAEK,cAAc,EAAC;AAAM,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQJ,KAAK,IAAIZ,iBAAiB,CAACP,kBAAkB,CAACmC,OAAO,EAAEtC,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAS,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC,CAAC;AACtJ;AACA;AACA;AACA;AACA;AACA,iBAAiBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAS,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AAChH,sBAAsBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAC,YAAY;EAAEK,cAAc,EAAC;AAAM,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AACrH;AACA;AACA;AACA;AACA;AACA,UAAUL,2BAA2B;AACrC;AACA;AACA;AACA,UAAUjB,WAAW;AACrB;AACA;AACA;AACA,UAAUuB,2BAA2B;AACrC;AACA;AACA;AACA;AACA,oBAAoBL,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAC,YAAY;EAAEK,cAAc,EAAC;AAAM,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQJ,KAAK,IAAIZ,iBAAiB,CAACP,kBAAkB,CAACmC,OAAO,EAAEtC,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAS,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC,CAAC;AACtJ;AACA,iBAAiBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAS,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AAChH,sBAAsBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAC,YAAY;EAAEK,cAAc,EAAC;AAAM,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA,UAAUC,2BAA2B;AACrC;AACA;AACA;AACA;AACA,UAAUN,2BAA2B;AACrC;AACA;AACA;AACA,UAAUjB,WAAW;AACrB;AACA;AACA;AACA,UAAUuB,2BAA2B;AACrC;AACA;AACA;AACA;AACA,UAAUG,wBAAwB;AAClC;AACA;AACA,YAAYT,2BAA2B;AACvC;AACA;AACA;AACA,YAAYjB,WAAW;AACvB;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMmC,WAAW,GAAGhD,MAAM,CAACyC,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa,CAACpB,SAAS,CAAC4B,KAAK,GAAG,CAAC;AACjC,CAAC;AAED,MAAMC,aAAa,GAAGlD,MAAM,CAACyC,GAAG;AAChC;AACA;AACA;AACA,CAAC;AAED,MAAMU,uBAAuB,GAAGnD,MAAM,CAACiB,iBAAiB,CAA2C;AACnG;AACA;AACA;AACA,aAAac,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAQ,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AAC1G;AACA;AACA;AACA,wCAAwCJ,KAAK,IAAItB,MAAM,CAAC2C,QAAQ,CAAC,aAAa,EAAErB,KAAK,CAACI,KAAK,CAAC;AAC5F;AACA;AACA;AACA,wCAAwCJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,QAAQ;EAAEC,KAAK,EAAE;AAAO,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AAC7H;AACA;AACA,eAAeJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,MAAM;EAAEC,KAAK,EAAE;AAAO,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AAClG;AACA;AACA;AACA,wBAAwBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,YAAY;EAAEC,KAAK,EAAE;AAAO,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AACjH,aAAaJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,MAAM;EAAEC,KAAK,EAAE;AAAO,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AAChG;AACA;AACA;AACA;AACA,wCAAwCJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,QAAQ;EAAEC,KAAK,EAAE;AAAQ,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AAC9H,wBAAwBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,YAAY;EAAEC,KAAK,EAAE;AAAQ,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AAClH,aAAaJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,MAAM;EAAEC,KAAK,EAAE;AAAQ,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AACjG;AACA;AACA,eAAeJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,MAAM;EAAEC,KAAK,EAAE;AAAQ,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AACnG;AACA;AACA;AACA;AACA,wBAAwBJ,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAACC,aAAa,EAAE,YAAY;EAAEC,KAAK,EAAE;AAAU,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AACpH;AACA;AACA,QAAQa,WAAW;AACnB,aAAajB,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAS,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC;AAC5G;AACA;AACA,cAAca,WAAW;AACzB,aAAajB,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEC,KAAK,EAAE;AAAQ,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AAClG;AACA;AACA,eAAea,WAAW,cAAcA,WAAW;AACnD,aAAajB,KAAK,IAAItB,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEC,KAAK,EAAE;AAAS,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AACnG;AACA;AACA,uBAAuBa,WAAW;AAClC,aAAajB,KAAK,IAAI,CAACA,KAAK,CAACsB,uBAAuB,GAAG5C,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEK,cAAc,EAAE;AAAS,CAAC,EAAEP,KAAK,CAACI,KAAK,CAAC,GACvI1B,MAAM,CAACuB,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEC,KAAK,EAAE;AAAW,CAAC,EAAEH,KAAK,CAACI,KAAK,CAAC;AACrF;AACA,CAAC;AAED,MAAMmB,4BAA4B,GAAG,4BAA4B;AAEjE,MAAMC,eAAe,gBAAGxD,KAAK,CAACyD,UAAU,CAAyC,CAAAC,IAAA,EAqBdC,GAAG,KAAK;EAAA,IArBO;MACtCC,QAAQ;MACRC,QAAQ;MACRC,QAAQ;MACRC,OAAO;MACPC,KAAK;MACLC,iBAAiB;MACjBC,UAAU;MACVC,YAAY;MACZC,WAAW;MACXC,QAAQ;MACRC,UAAU;MACVC,sBAAsB;MACtBC,qBAAqB;MACrBC,MAAM;MACNC,uBAAuB;MACvBC,MAAM;MACNC,qBAAqB;MACrBC,EAAE;MACFC;IAEoB,CAAC,GAAApB,IAAA;IADlBqB,IAAI,GAAAC,wBAAA,CAAAtB,IAAA,EAAAuB,SAAA;EAEjD;EACA,MAAM7C,KAAK,GAAGjC,QAAQ,CAAC,CAAC;EACxB,MAAM+E,QAAQ,GAAG3D,kBAAkB,CAAC,CAAC;EACrC,MAAM4D,aAAa,GAAGnF,KAAK,CAACoF,MAAM,CAAM,IAAI,CAAC;EAC7C,MAAMC,iBAAiB,GAAGrF,KAAK,CAACoF,MAAM,CAAS,CAAC,CAAC;EACjD,MAAM,CAACE,eAAe,EAAEC,kBAAkB,CAAC,GAAGvF,KAAK,CAACwF,QAAQ,CAAS,CAAC,CAAC,CAAC;EACxE,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAG1F,KAAK,CAACwF,QAAQ,CAAU,KAAK,CAAC;EAC1E,MAAM,CAACG,MAAM,EAAEC,SAAS,CAAC,GAAG5F,KAAK,CAACwF,QAAQ,CAAc,IAAI,CAAC;EAC7D;EACA;EACA,MAAM,CAACK,IAAI,EAAEC,OAAO,CAAC,GAAG9F,KAAK,CAACwF,QAAQ,CAAU,KAAK,CAAC;EAEtD,MAAMO,iBAAiB,GAAGA,CAAA,KAAM;IAC9B,IAAGnB,qBAAqB,EACxB;MACE,MAAMoB,GAAG,GAAG1F,KAAK,CAAC0D,KAAK,CAAC;MACxB,OAAOgC,GAAG,CAACC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAGD,GAAG,CAACE,OAAO,CAAC,CAAC;IAC3C,CAAC,MAEC,OAAO5F,KAAK,CAAC0D,KAAK,CAAC,CAACmC,MAAM,CAACjC,UAAU,GAAGA,UAAU,GAAG,eAAe,CAAC;EACzE,CAAC;EACD;AACF;AACA;EACElE,KAAK,CAACoG,SAAS,CAAC,MAAM;IACpB,IAAIpC,KAAK,EAAEkB,QAAQ,CAACmB,OAAO,CAACrC,KAAK,GAAG+B,iBAAiB,CAAC,CAAC;EACzD,CAAC,EAAE,CAAC/B,KAAK,CAAC,CAAC;EAEX,SAASsC,cAAcA,CAACC,SAAiB,EAAgB;IACvD,OAAOC,QAAQ,CAACC,sBAAsB,CAAClD,4BAA4B,GAAGgD,SAAS,CAAC,CAAC,CAAC,CAAC;EACrF;EAEAvG,KAAK,CAACoG,SAAS,CAAC,MAAM;IACpB,IAAIX,cAAc,EAAE;MAClB;MACA;MACA,MAAMiB,YAAY,GAAGF,QAAQ,CAACC,sBAAsB,CAAC,uCAAuC,CAAC,CAAC,CAAC,CAAgB;MAC/G,MAAME,cAAc,GAAGD,YAAY,EAAEE,aAAa,EAAEA,aAAa;MACjE,IAAIF,YAAY,IAAIC,cAAc,EAAEA,cAAc,CAACE,SAAS,GAAGH,YAAY,CAACI,SAAS,GAAG,CAAC,GAAGJ,YAAY,CAACK,YAAY;IACvH;EACF,CAAC,EAAE,CAACtB,cAAc,CAAC,CAAC;EAEpBzF,KAAK,CAACoG,SAAS,CAAC,MAAM;IACpB,IAAGxB,qBAAqB,IAAIiB,IAAI,EAChC;MACE,MAAMmB,OAAO,GAAGV,cAAc,CAAC,SAAS,CAAC;MACzC,MAAMW,OAAO,GAAIC,KAAoB,IAAK;QACxC,QAAOA,KAAK,CAACC,GAAG;UAEd,KAAK,GAAG;UACR,KAAK,OAAO;YACV,MAAMC,QAAQ,GAAGd,cAAc,CAACjB,iBAAiB,CAACgB,OAAO,GAAG,EAAE,CAAC;YAC/De,QAAQ,CAACC,KAAK,CAAC,CAAC;YAChB;UAEF,KAAK,WAAW;YACd,IAAGhC,iBAAiB,CAACgB,OAAO,GAAG,CAAC,EAChC;cACE,MAAMe,QAAQ,GAAGd,cAAc,CAACjB,iBAAiB,CAACgB,OAAO,GAAG,EAAE,CAAC;cAC/D,MAAMiB,SAAS,GAAGhB,cAAc,CAAEjB,iBAAiB,CAACgB,OAAO,GAAG,CAAC,GAAI,EAAE,CAAC;cACtE,IAAGiB,SAAS,EACZ;gBACEF,QAAQ,CAACG,QAAQ,GAAG,CAAC,CAAC;gBACtBD,SAAS,CAACC,QAAQ,GAAG,CAAC;gBACtBD,SAAS,CAACpE,KAAK,CAAC,CAAC;gBACjBmC,iBAAiB,CAACgB,OAAO,GAAGhB,iBAAiB,CAACgB,OAAO,GAAG,CAAC;cAC3D;YACF;YACA;UAEF,KAAK,YAAY;YACf,IAAGhB,iBAAiB,CAACgB,OAAO,GAAG,CAAC,EAChC;cACE,MAAMe,QAAQ,GAAGd,cAAc,CAACjB,iBAAiB,CAACgB,OAAO,GAAG,EAAE,CAAC;cAC/D,MAAMmB,KAAK,GAAGlB,cAAc,CAAEjB,iBAAiB,CAACgB,OAAO,GAAG,CAAC,GAAI,EAAE,CAAC;cAClE,IAAGmB,KAAK,EACR;gBACEJ,QAAQ,CAACG,QAAQ,GAAG,CAAC,CAAC;gBACtBC,KAAK,CAACD,QAAQ,GAAG,CAAC;gBAClBC,KAAK,CAACtE,KAAK,CAAC,CAAC;gBACbmC,iBAAiB,CAACgB,OAAO,GAAGhB,iBAAiB,CAACgB,OAAO,GAAG,CAAC;cAC3D;YACF;YACA;QACJ;MACF,CAAC;MAEDW,OAAO,CAACS,gBAAgB,CAAC,SAAS,EAAER,OAAO,CAAC;MAC5C;MACA;;MAEA,MAAMS,eAAe,GAAGpB,cAAc,CAAC,WAAW,CAAC;MACnD,IAAGoB,eAAe,EAAE;QAClB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;UAC1B,IAAGD,eAAe,CAACE,SAAS,CAACC,QAAQ,CAAC,GAAG,GAAGF,CAAC,CAAC,EAAE;YAC9CtC,iBAAiB,CAACgB,OAAO,GAAGsB,CAAC;YAC7B;UACF;QACF;QACAD,eAAe,CAACI,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;MAC/C,CAAC,MAED;QACE,MAAMC,YAAY,GAAGzB,cAAc,CAAC,GAAG,CAAC;QACxC,IAAGyB,YAAY,EAAE;UACf1C,iBAAiB,CAACgB,OAAO,GAAG,CAAC;UAC7B0B,YAAY,CAACD,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;QAC5C;MACF;MAEA,OAAO,MAAM;QACXd,OAAO,CAACgB,mBAAmB,CAAC,SAAS,EAAEf,OAAO,CAAC;MACjD,CAAC;IACH;EACF,CAAC,EAAE,CAACrC,qBAAqB,EAAEiB,IAAI,CAAC,CAAC;;EAEjC;EACA;EACA7F,KAAK,CAACoG,SAAS,CAAC,MAAM;IACpB,IAAIT,MAAM,EAAE;MACVR,aAAa,CAACkB,OAAO,CAACP,OAAO,CAAC,IAAI,CAAC;MACnC;IACF;EACF,CAAC,EAAE,CAACH,MAAM,CAAC,CAAC;EAEZ3F,KAAK,CAACiI,mBAAmB,CAACtE,GAAG,EAAE,MAAMuB,QAAQ,CAACmB,OAAO,EAAE,CAACnB,QAAQ,CAAC,CAAC;EAElE,MAAMgD,mBAAmB,GAAGA,CAAA,KAAM;IAChChD,QAAQ,CAACmB,OAAO,EAAE8B,IAAI,CAAC,CAAC;IACxBrC,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC;EAED,MAAMsC,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,IAAIzC,MAAM,EAAEC,SAAS,CAAC,IAAI,CAAC;IAC3BE,OAAO,CAAC,IAAI,CAAC;EACf,CAAC;EAED,IAAIuC,OAAO,GAAG,IAAIC,IAAI,CAACtE,KAAK,IAAI,IAAIsE,IAAI,CAACtE,KAAK,CAAC,GAAG,IAAIsE,IAAI,CAAC,CAAC,GAAG,IAAIA,IAAI,CAACtE,KAAK,CAAC,GAAG,IAAIsE,IAAI,CAAC,CAAC,CAAC;EAC5FD,OAAO,CAACE,WAAW,CAACF,OAAO,CAACG,WAAW,CAAC,CAAC,IAAIhE,qBAAqB,IAAI,EAAE,CAAC,CAAC;;EAE1E;EACA;EACA,IAAIiE,OAAO,GAAG,IAAIH,IAAI,CAACtE,KAAK,IAAI,IAAIsE,IAAI,CAACtE,KAAK,CAAC,GAAG,IAAIsE,IAAI,CAAC,CAAC,GAAG,IAAIA,IAAI,CAACtE,KAAK,CAAC,GAAG,IAAIsE,IAAI,CAAC,CAAC,CAAC;EAC5F,MAAMI,WAAW,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACH,OAAO,CAACD,WAAW,CAAC,CAAC,IAAIjE,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;EAE5F,MAAMsE,aAAa,GAAIC,CAAmC,IAAK;IAC7D,IAAIA,CAAC,CAAC3B,GAAG,KAAK,QAAQ,IAAI2B,CAAC,CAAC3B,GAAG,KAAK,KAAK,EACvChC,aAAa,CAACkB,OAAO,CAACP,OAAO,CAAC,KAAK,CAAC;EACxC,CAAC;EAED,MAAMiD,UAAU,GAAID,CAAmC,IAAK;IAC1D;IACA,IAAI,CAACA,CAAC,CAACE,aAAa,CAACC,QAAQ,CAACH,CAAC,CAACI,aAAa,CAAC,EAAE;MAC9CvE,MAAM,IAAIA,MAAM,CAACmE,CAAC,CAAC;IACrB;EACF,CAAC;EACD,MAAMK,QAAQ,GAAG,EAAE;EAEnB,oBACEvH,KAAA,CAAAE,SAAA;IAAAsH,QAAA,gBAEE1H,IAAA,CAACe,mBAAmB;MAAC4G,cAAc,EAAEzE,qBAAsB;MAAC,eAAaE,UAAW;MAACjC,WAAW,EAAE4C,cAAe;MAAC7C,OAAO,EAAE6B,MAAM,IAAI,EAAG;MAACE,MAAM,EAAEoE,UAAW;MAAAK,QAAA,eAC1J1H,IAAA,CAACtB,UAAU;QACTuD,GAAG,EAAEwB,aAAc;QACnBmE,cAAc,EAAElB,kBAAmB;QACnCmB,eAAe,EAAErB,mBAAoB;QACrCsB,SAAS,EAAEX,aAAc;QACzBhE,EAAE,EAAEA,EAAG;QACP4E,cAAc,EAAEA,CAAA,KAAMtE,aAAa,CAACkB,OAAO,CAACP,OAAO,CAAC,KAAK,CAAE;QAE3DhC,QAAQ,EAAGgF,CAAM,IAAK;UACpB,IAAIhF,QAAQ,EAAE;YACZ,IAAI2B,cAAc,EAAE;cAClB,MAAMiE,OAAO,GAAG,IAAIpB,IAAI,CAAC,CAAC;cAC1BoB,OAAO,CAACnB,WAAW,CAACO,CAAC,CAACN,WAAW,CAAC,CAAC,CAAC;cACpCkB,OAAO,CAACC,QAAQ,CAACrE,eAAe,CAAC;cACjCM,SAAS,CAAC8D,OAAO,CAAC;YACpB,CAAC,MAAM5F,QAAQ,CAACgF,CAAC,CAAC;UACpB;UACA,IAAIrD,cAAc,EAAEC,iBAAiB,CAAC,KAAK,CAAC;QAC9C,CAAE;QACF9B,QAAQ,EAAEA,QAAQ,IAAIC,QAAS;QAC/B+F,MAAM,EAAEvJ,EAAG;QACXuE,qBAAqB,EAAEA,qBAAsB;QAC7CV,UAAU,EAAEU,qBAAqB,GAAG,WAAW,GAAGiF,SAAU;QAC5DC,cAAc,EAAErE;QAChB;QAAA;QACAsE,cAAc,EAAEtE,cAAc,GAAGiD,WAAW,GAAGmB,SAAU;QACzDxB,OAAO,EAAE5C,cAAc,GAAG4C,OAAO,GAAGwB,SAAU;QAC9CG,QAAQ,EAAEhG,KAAM;QAChBiG,UAAU,EAAEtE,MAAM,IAAIkE,SAAU;QAChCK,kBAAkB,EAAE,IAAK;QACzBC,mBAAmB,EAAE,IAAK;QAC1BC,kBAAkB,EAChB9F,UAAU,GACL+F,MAAwC,iBACzCrK,KAAK,CAACsK,aAAa,CACjB1J,qBAAqB,EAAA2J,aAAA,CAAAA,aAAA,KAEhBF,MAAM;UACT9E,kBAAkB;UAClBiF,iBAAiB,EAAE,CAAC;UACpB/E,cAAc,EAAEA,cAAc;UAC9BC,iBAAiB,EAAEA;QAAiB,IAEtC,IACF,CAAC,GACDmE,SACL;QACDY,WAAW,eACT7I,KAAA,CAACT,YAAY;UAACuJ,SAAS,EAAE9G,QAAS;UAAC+G,SAAS,EAAE9G,QAAS;UAAAuF,QAAA,gBACrDxH,KAAA,CAACuB,aAAa;YAAAiG,QAAA,gBACV1H,IAAA,CAAC0B,uBAAuB,EAAAmH,aAAA;cACtB5G,GAAG,EAAEuB,QAAS;cACd0F,IAAI,EAAC,MAAM;cACXC,IAAI,EAAC,YAAY;cACjBrB,SAAS,EAAGV,CAAC,IAAKA,CAAC,CAAC3B,GAAG,KAAK,OAAO,IAAIhC,aAAa,CAACkB,OAAO,CAACP,OAAO,CAAC,IAAI,CAAE;cAC3EgF,SAAS,EAAG/G,OAAO,GAAG,SAAS,GAAG,EAAE,IAAI8B,IAAI,GAAG,OAAO,GAAG,EAAE,CAAG;cAC9D0B,QAAQ,EAAE3D,QAAQ,IAAIC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE;cACxCkH,OAAO,EAAGjC,CAAC,IAAK5D,QAAQ,CAACmB,OAAO,EAAE2E,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAE;cAC1D7G,YAAY,EAAEA,YAAa;cAC3BC,WAAW,EAAEA,WAAY;cACzB6G,kBAAkB,EAAE9B,QAAS;cAC7BvF,QAAQ,EAAEA,QAAS;cACnBC,QAAQ,EAAE,IAAK;cACfP,uBAAuB,EAAE,CAACO,QAAS;cACnCQ,QAAQ,EAAEA;YAAS,GACfU,IAAI,CACT,CAAC,eACFrD,IAAA,CAACuB,WAAW;cAAAmG,QAAA,eACV1H,IAAA,CAACf,WAAW,CAACuK,QAAQ;gBAACC,IAAI,EAAC;cAAI,CAAC;YAAC,CACtB,CAAC;UAAA,CACD,CAAC,EACjB,CAACtF,IAAI,iBAAInE,IAAA,CAACV,eAAe;YAACoK,QAAQ,EAAE1G,uBAAwB;YAAC2G,KAAK,EAAEnG,QAAS;YAACoG,SAAS,EAAE,IAAK;YAACC,QAAQ,EAAC,MAAM;YAACJ,IAAI,EAAE3J,IAAI,CAACuB,KAAM;YAACyI,KAAK,EAAC,KAAK;YAAApC,QAAA,EAC1IrD,iBAAiB,CAAC;UAAC,CACL,CAAC;QAAA,CACN;MACf,CACF;IAAC,CACiB,CAAC,EAGrB9B,iBAAiB,iBAChBrC,KAAA,CAACX,YAAY;MAAAmI,QAAA,gBACX1H,IAAA,CAACf,WAAW,CAAC8K,gBAAgB;QAACC,KAAK,EAAEhL,MAAM,CAACuB,aAAa,CAAC;UAAEC,aAAa,EAAE,MAAM;UAAEK,cAAc,EAAE;QAAU,CAAC,EAAEH,KAAK;MAAE,CAAC,CAAC,eACzHV,IAAA;QAAA0H,QAAA,EAAOnF;MAAiB,CAAO,CAAC;IAAA,CACpB,CACf;EAAA,CACD,CAAC;AAEP,CAAC,CAAC;AAACT,eAAA,CAAAmI,SAAA;EAzoBD3H,KAAK,EAAA4H,GAAA,CAAAC,UAAA,CAAAvD,IAAA;EAELxE,QAAQ,EAAA8H,GAAA,CAAAE,IAAA;EAERnH,MAAM,EAAAiH,GAAA,CAAAE,IAAA;EAINlH,qBAAqB,EAAAgH,GAAA,CAAAG,IAAA;EAErBhI,OAAO,EAAA6H,GAAA,CAAAG,IAAA;EAIP7H,UAAU,EAAA0H,GAAA,CAAAI,MAAA;EAEV/H,iBAAiB,EAAA2H,GAAA,CAAAI,MAAA;EAEjB7H,YAAY,EAAAyH,GAAA,CAAAI,MAAA;EAEZ5H,WAAW,EAAAwH,GAAA,CAAAI,MAAA;EAEX1H,UAAU,EAAAsH,GAAA,CAAAG,IAAA;EAEVxH,sBAAsB,EAAAqH,GAAA,CAAAK,MAAA;EAEtBzH,qBAAqB,EAAAoH,GAAA,CAAAK,MAAA;EAErBxH,MAAM,EAAAmH,GAAA,CAAAI,MAAA;EAENtH,uBAAuB,EAAAkH,GAAA,CAAAM,KAAA,EAAG,KAAK,EAAG,QAAQ;AAAA;AA6mB5C,eAAe1I,eAAe","ignoreList":[]}
@@ -66,6 +66,10 @@ const NumberInput = _styledComponents.default.input`
66
66
  border: none;
67
67
  border-radius: 4px;
68
68
  text-overflow: ellipsis;
69
+ background: ${props => _styles.COLORS.generateToken({
70
+ componentType: 'bg-surface',
71
+ defaultVariant: 'default'
72
+ }, props.theme)};
69
73
  box-shadow: inset 0 0 0 1px ${props => _styles.COLORS.generateToken({
70
74
  componentType: 'border',
71
75
  defaultVariant: 'default'
@@ -1 +1 @@
1
- {"version":3,"file":"NumberField.cjs","names":["React","_interopRequireWildcard","require","_TooltipStyles","_TooltipOverflow","_interopRequireDefault","_styledComponents","_Button","_common","_icons","_styles","_typography","_types","_styling","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Container","styled","div","PrefixContainer","props","$size","Size","Small","$disabled","COLORS","generateToken","componentType","state","theme","defaultVariant","ComponentSStyling","ComponentTextStyle","Regular","ComponentMStyling","OperatorWrapper","Medium","NumberInput","input","$fieldSize","$type","$hasPrefix","Italic","focusStyles","InputContainer","Z_INDEXES","focus","TooltipTrigger","LeftOperator","RightOperator","NumberField","forwardRef","ref","type","size","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","disabled","readOnly","value","placeholder","onChange","className","id","overflowTooltipPosition","dataTestId","rest","_objectWithoutProperties2","userInput","setUserInput","useState","toString","elementRef","useFocusVisibleRef","useEffect","useImperativeHandle","current","setVal","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","jsxs","Fragment","children","jsx","IconButton","tabIndex","variant","shape","action","useTransparentBackground","SystemIcons","Minus","Plus","renderNumberInputElements","onKeyDown","concat","position","withArrow","maxWidth","align","ValidationMessage","States","Default","propTypes","_propTypes","string","number","bool","node","oneOf","func","_default","exports"],"sources":["../../src/InputFields/NumberField.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { TooltipTrigger } from '../Tooltips/TooltipStyles';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport styled from 'styled-components';\r\nimport {IconButton} from '../Button';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {SystemIcons} from '../icons';\r\nimport {COLORS, focusStyles, Z_INDEXES} from '../styles';\r\nimport {\r\n ComponentMStyling,\r\n ComponentSStyling,\r\n ComponentTextStyle,\r\n ComponentXSStyling,\r\n ComponentXXSStyling\r\n} from '../styles/typography';\r\nimport {Size, States, Testable} from '../types';\r\nimport {ValidationMessage} from \"./styling\";\r\n\r\nconst Container = styled.div``;\r\n\r\nconst PrefixContainer = styled.div<{ $size: Size, $disabled: boolean }>`\r\n width: ${props => props.$size === Size.Small ? '10px' : '11px'};\r\n height: ${props => props.$size === Size.Small ? '20px' : '24px'};\r\n color: ${props => props.$disabled ? COLORS.generateToken({componentType:'text', state:'disabled'}, props.theme) : \r\n COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme)};\r\n ${props => props.$size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n position: absolute;\r\n padding: ${props => props.$size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px'};\r\n`;\r\n\r\nconst OperatorWrapper = styled.div<{ $size: Size }>`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n display: flex;\r\n margin: ${props => props.$size === Size.Medium ? '4px 0' : ''};\r\n\r\n svg {\r\n height: 14px;\r\n width: 14px;\r\n }\r\n\r\n .divider {\r\n margin: 16px 0;\r\n background: ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'subtle' }, props.theme)};\r\n width: 1px;\r\n }\r\n`;\r\n\r\nconst NumberInput = styled.input<{ $fieldSize: Size, $hasPrefix: boolean, $type: string }>`\r\n width: 100%;\r\n border: none;\r\n border-radius: 4px;\r\n text-overflow: ellipsis;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'default' }, props.theme)};\r\n outline: none;\r\n color: ${props => COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme)};\r\n\r\n ${props => props.$fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme)) :\r\n ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n ${props => props.$type === 'NumberField' ? `\r\n padding: ${props.$fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px'};\r\n padding-left: ${props.$hasPrefix ? '30px' : ''};\r\n ` : ''}\r\n ${props => props.$type === 'NumberInput' ? `\r\n padding: ${props.$fieldSize === Size.Small ? '14px 48px' : '16px 48px'};\r\n ` : ''}\r\n &::placeholder {\r\n ${props => props.$fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null)}\r\n }\r\n\r\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({ componentType:'border', state:'hover' }, props.theme)};\r\n }\r\n\r\n &.focus-visible {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({ componentType:'border', state:'hover' }, props.theme)};\r\n }\r\n\r\n &.disabled {\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({ componentType:'border', state:'disabled' }, props.theme)};\r\n cursor: not-allowed;\r\n color: ${props => COLORS.generateToken({ componentType:'text', state:'disabled' }, props.theme)};\r\n pointer-events: none;\r\n\r\n &::placeholder {\r\n color: ${props => COLORS.generateToken({ componentType:'text', state:'disabled' }, props.theme)};\r\n }\r\n }\r\n\r\n &.readOnly {\r\n background: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'disabled' }, props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'default' }, props.theme)};\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme)};\r\n }\r\n\r\n &.valid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({ componentType:'border', defaultVariant:'positive' }, props.theme)};\r\n }\r\n\r\n &.invalid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({ componentType:'border', defaultVariant:'critical' }, props.theme)};\r\n }\r\n`;\r\n\r\nconst InputContainer = styled.div<{ $size: Size, $type: string }>`\r\n min-width: ${props => props.$type === 'NumberField' ? '160px' : '144px'};\r\n height: ${props => props.$size === Size.Small ? '48px' : '56px'};\r\n display: flex;\r\n position: relative;\r\n margin-bottom: 4px;\r\n\r\n input.focus-visible ~ div.operator {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n\r\n ${TooltipTrigger('hover')}\r\n`;\r\n\r\nconst LeftOperator = styled.div<{ $size: Size }>`\r\n position: absolute;\r\n top: ${props => props.$size === Size.Small ? '0' : '4px'};\r\n left: 0;\r\n`;\r\n\r\nconst RightOperator = styled.div<{ $size: Size }>`\r\n position: absolute;\r\n top: ${props => props.$size === Size.Small ? '0' : '4px'};\r\n right: 0;\r\n`;\r\n\r\nexport interface NumberFieldProps extends Testable, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\r\n{\r\n /**\r\n * Optional. The size of the number field. Can be 'Small' or 'Medium'.\r\n */\r\n size?: Size.Small | Size.Medium;\r\n\r\n /**\r\n * Optional. The prefix to be displayed before the number in the field.\r\n */\r\n prefix?: string;\r\n\r\n /**\r\n * Optional. The interval for incrementing and decrementing the number in the field.\r\n */\r\n interval?: number;\r\n\r\n /**\r\n * Optional. The minimum value that can be entered in the field.\r\n */\r\n minValue?: number;\r\n\r\n /**\r\n * Optional. The maximum value that can be entered in the field.\r\n */\r\n maxValue?: number;\r\n\r\n /**\r\n * Optional. A boolean indicating whether negative numbers are allowed.\r\n */\r\n allowNegative?: boolean;\r\n\r\n /**\r\n * Optional. The number of decimal places allowed in the number.\r\n */\r\n decimalPrecision?: number;\r\n\r\n /**\r\n * Optional. The state of the number field. Can be 'Valid' or 'Invalid'.\r\n */\r\n state?: States.Valid | States.Invalid;\r\n\r\n /**\r\n * Optional. A note to be displayed below the number field.\r\n */\r\n note?: string;\r\n\r\n /**\r\n * Optional. An icon to be displayed next to the note.\r\n */\r\n noteIcon?: React.ReactNode;\r\n\r\n /**\r\n * Optional. The type of the number field. Can be 'NumberField' or 'NumberInput'.\r\n */\r\n type?: 'NumberField' | 'NumberInput';\r\n\r\n /**\r\n * Optional. The current value of the number field.\r\n */\r\n value?: number;\r\n\r\n /**\r\n * Optional. A function to be called when the value of the number field changes.\r\n */\r\n onChange?: (e: number) => void;\r\n\r\n /**\r\n * Optional. The position of the tooltip when the number overflows. Can be 'top' or 'bottom'.\r\n */\r\n overflowTooltipPosition?: 'top' | 'bottom';\r\n}\r\n\r\nconst NumberField = React.forwardRef<HTMLInputElement, NumberFieldProps>((props, ref) => {\r\n const {\r\n type = 'NumberField',\r\n size = Size.Medium,\r\n note,\r\n noteIcon,\r\n required,\r\n prefix,\r\n interval = 1,\r\n minValue,\r\n maxValue,\r\n allowNegative,\r\n decimalPrecision,\r\n disabled,\r\n readOnly,\r\n state,\r\n value,\r\n placeholder,\r\n onChange,\r\n className,\r\n id,\r\n overflowTooltipPosition,\r\n dataTestId,\r\n ...rest\r\n } = props;\r\n\r\n const [userInput, setUserInput] = React.useState(value ? value.toString() : '');\r\n\r\n const elementRef = useFocusVisibleRef();\r\n\r\n React.useEffect(() => setUserInput(`${value ?? ''}`), [value]);\r\n\r\n React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\r\n\r\n const setVal = (e: string) => {\r\n setUserInput(e);\r\n onChange && onChange(+e);\r\n }\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n addInterval();\r\n break;\r\n case 'ArrowDown':\r\n subtractInterval();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n e.preventDefault();\r\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\r\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/);\r\n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\r\n\r\n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/);\r\n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n\r\n let val = e.target.value;\r\n if (val !== '') {\r\n if (allowNegative && decimalPrecision) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else {\r\n if ((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n\r\n else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true))\r\n setVal(val);\r\n\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n }\r\n } else if (allowNegative) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false))\r\n setVal(val);\r\n } else if (decimalPrecision && (val.indexOf('.') === val.lastIndexOf('.')) && isInRange(val, true)) {\r\n if (decimalPrecisionRegex!.test(val))\r\n setVal(val);\r\n else if (decimalFormationRegEx.test(val))\r\n setVal(val);\r\n else if (!val.includes('.') && simpleRegex.test(val))\r\n setVal(val);\r\n } else if (simpleRegex.test(val) && isInRange(val, false)) {\r\n setVal(val);\r\n }\r\n }\r\n\r\n if (val === '')\r\n setVal('');\r\n }\r\n\r\n const isInRange = (value: string, isDecimal: boolean): boolean => {\r\n let x = isDecimal ? parseFloat(parseFloat(value).toFixed(decimalPrecision)) : parseInt(value);\r\n if (minValue && minValue > x)\r\n return false;\r\n else if (maxValue && maxValue < x)\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n const addInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (minValue ? minValue - 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val + interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val += 1;\r\n\r\n if (maxValue && maxValue >= val)\r\n setVal(val.toString());\r\n else if (!maxValue)\r\n setVal(val.toString());\r\n }\r\n }\r\n\r\n const subtractInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (maxValue ? maxValue + 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val - interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val -= 1;\r\n\r\n if ((minValue && minValue <= val) || !minValue) {\r\n if (allowNegative || val >= 0) {\r\n setVal(val.toString());\r\n }\r\n }\r\n }\r\n }\r\n\r\n const isLocked = (input: string, operator: string): boolean => {\r\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\r\n val = isNaN(val) && userInput === '' ? 0 : val;\r\n let operatorState = false;\r\n if (operator === 'add' && maxValue)\r\n operatorState = val >= maxValue;\r\n\r\n if (operator === 'subtract' && minValue)\r\n operatorState = val <= minValue;\r\n\r\n if (operator === 'subtract' && !minValue && !allowNegative)\r\n operatorState = val <= 0;\r\n\r\n return operatorState;\r\n }\r\n\r\n const renderNumberFieldElements = () => {\r\n return (\r\n <>\r\n {prefix && <PrefixContainer $size={size} $disabled={!!disabled} className=\"operator\">\r\n {prefix}\r\n </PrefixContainer>}\r\n\r\n <OperatorWrapper data-testid={'operators'} $size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n <div className=\"divider\"></div>\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </OperatorWrapper>\r\n </>)\r\n }\r\n\r\n const renderNumberInputElements = () => {\r\n return (\r\n <>\r\n <LeftOperator data-testid={'leftOperator'} $size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n </LeftOperator>\r\n <RightOperator data-testid={'rightOperator'} $size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </RightOperator>\r\n </>)\r\n }\r\n\r\n return (\r\n <Container>\r\n <InputContainer $type={type} $size={size} tabIndex={-1}>\r\n <NumberInput $type={type}\r\n id={id}\r\n data-testid={dataTestId}\r\n $fieldSize={size}\r\n $hasPrefix={!!prefix}\r\n placeholder={placeholder ? placeholder : 'Enter number'}\r\n value={userInput}\r\n ref={elementRef}\r\n tabIndex={(disabled || readOnly) ? -1 : 0}\r\n onChange={e => handleInput(e)}\r\n onKeyDown={e => handleKeyPress(e)}\r\n required={required}\r\n className={disabled ? ' disabled' : ''\r\n .concat(readOnly ? ' readOnly' : '')\r\n .concat(state ? ` ${state}` : '')\r\n .concat(className ? ` ${className}` : '')}\r\n {...rest}/>\r\n\r\n {type === 'NumberField' && renderNumberFieldElements()}\r\n {type === 'NumberInput' && renderNumberInputElements()}\r\n {value && <TooltipOverflow position={overflowTooltipPosition} input={elementRef} withArrow={true} maxWidth=\"100%\" size={size} align='end'>\r\n {value?.toString()}\r\n </TooltipOverflow>}\r\n </InputContainer>\r\n\r\n {\r\n note &&\r\n <ValidationMessage type={state || States.Default}>\r\n {noteIcon}\r\n <span>{note}</span>\r\n </ValidationMessage>\r\n }\r\n\r\n </Container>\r\n );\r\n }\r\n )\r\n;\r\n\r\nexport default NumberField;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NumberField.cjs","names":["React","_interopRequireWildcard","require","_TooltipStyles","_TooltipOverflow","_interopRequireDefault","_styledComponents","_Button","_common","_icons","_styles","_typography","_types","_styling","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Container","styled","div","PrefixContainer","props","$size","Size","Small","$disabled","COLORS","generateToken","componentType","state","theme","defaultVariant","ComponentSStyling","ComponentTextStyle","Regular","ComponentMStyling","OperatorWrapper","Medium","NumberInput","input","$fieldSize","$type","$hasPrefix","Italic","focusStyles","InputContainer","Z_INDEXES","focus","TooltipTrigger","LeftOperator","RightOperator","NumberField","forwardRef","ref","type","size","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","disabled","readOnly","value","placeholder","onChange","className","id","overflowTooltipPosition","dataTestId","rest","_objectWithoutProperties2","userInput","setUserInput","useState","toString","elementRef","useFocusVisibleRef","useEffect","useImperativeHandle","current","setVal","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","jsxs","Fragment","children","jsx","IconButton","tabIndex","variant","shape","action","useTransparentBackground","SystemIcons","Minus","Plus","renderNumberInputElements","onKeyDown","concat","position","withArrow","maxWidth","align","ValidationMessage","States","Default","propTypes","_propTypes","string","number","bool","node","oneOf","func","_default","exports"],"sources":["../../src/InputFields/NumberField.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { TooltipTrigger } from '../Tooltips/TooltipStyles';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport styled from 'styled-components';\r\nimport {IconButton} from '../Button';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {SystemIcons} from '../icons';\r\nimport {COLORS, focusStyles, Z_INDEXES} from '../styles';\r\nimport {\r\n ComponentMStyling,\r\n ComponentSStyling,\r\n ComponentTextStyle,\r\n ComponentXSStyling,\r\n ComponentXXSStyling\r\n} from '../styles/typography';\r\nimport {Size, States, Testable} from '../types';\r\nimport {ValidationMessage} from \"./styling\";\r\n\r\nconst Container = styled.div``;\r\n\r\nconst PrefixContainer = styled.div<{ $size: Size, $disabled: boolean }>`\r\n width: ${props => props.$size === Size.Small ? '10px' : '11px'};\r\n height: ${props => props.$size === Size.Small ? '20px' : '24px'};\r\n color: ${props => props.$disabled ? COLORS.generateToken({componentType:'text', state:'disabled'}, props.theme) : \r\n COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme)};\r\n ${props => props.$size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n position: absolute;\r\n padding: ${props => props.$size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px'};\r\n`;\r\n\r\nconst OperatorWrapper = styled.div<{ $size: Size }>`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n display: flex;\r\n margin: ${props => props.$size === Size.Medium ? '4px 0' : ''};\r\n\r\n svg {\r\n height: 14px;\r\n width: 14px;\r\n }\r\n\r\n .divider {\r\n margin: 16px 0;\r\n background: ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'subtle' }, props.theme)};\r\n width: 1px;\r\n }\r\n`;\r\n\r\nconst NumberInput = styled.input<{ $fieldSize: Size, $hasPrefix: boolean, $type: string }>`\r\n width: 100%;\r\n border: none;\r\n border-radius: 4px;\r\n text-overflow: ellipsis;\r\n background: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'default' }, props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'default' }, props.theme)};\r\n outline: none;\r\n color: ${props => COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme)};\r\n\r\n ${props => props.$fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme)) :\r\n ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n ${props => props.$type === 'NumberField' ? `\r\n padding: ${props.$fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px'};\r\n padding-left: ${props.$hasPrefix ? '30px' : ''};\r\n ` : ''}\r\n ${props => props.$type === 'NumberInput' ? `\r\n padding: ${props.$fieldSize === Size.Small ? '14px 48px' : '16px 48px'};\r\n ` : ''}\r\n &::placeholder {\r\n ${props => props.$fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null)}\r\n }\r\n\r\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({ componentType:'border', state:'hover' }, props.theme)};\r\n }\r\n\r\n &.focus-visible {\r\n ${focusStyles}\r\n }\r\n\r\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({ componentType:'border', state:'hover' }, props.theme)};\r\n }\r\n\r\n &.disabled {\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({ componentType:'border', state:'disabled' }, props.theme)};\r\n cursor: not-allowed;\r\n color: ${props => COLORS.generateToken({ componentType:'text', state:'disabled' }, props.theme)};\r\n pointer-events: none;\r\n\r\n &::placeholder {\r\n color: ${props => COLORS.generateToken({ componentType:'text', state:'disabled' }, props.theme)};\r\n }\r\n }\r\n\r\n &.readOnly {\r\n background: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'disabled' }, props.theme)};\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'default' }, props.theme)};\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'subtle' }, props.theme)};\r\n }\r\n\r\n &.valid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({ componentType:'border', defaultVariant:'positive' }, props.theme)};\r\n }\r\n\r\n &.invalid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({ componentType:'border', defaultVariant:'critical' }, props.theme)};\r\n }\r\n`;\r\n\r\nconst InputContainer = styled.div<{ $size: Size, $type: string }>`\r\n min-width: ${props => props.$type === 'NumberField' ? '160px' : '144px'};\r\n height: ${props => props.$size === Size.Small ? '48px' : '56px'};\r\n display: flex;\r\n position: relative;\r\n margin-bottom: 4px;\r\n\r\n input.focus-visible ~ div.operator {\r\n z-index: ${Z_INDEXES.focus};\r\n }\r\n\r\n ${TooltipTrigger('hover')}\r\n`;\r\n\r\nconst LeftOperator = styled.div<{ $size: Size }>`\r\n position: absolute;\r\n top: ${props => props.$size === Size.Small ? '0' : '4px'};\r\n left: 0;\r\n`;\r\n\r\nconst RightOperator = styled.div<{ $size: Size }>`\r\n position: absolute;\r\n top: ${props => props.$size === Size.Small ? '0' : '4px'};\r\n right: 0;\r\n`;\r\n\r\nexport interface NumberFieldProps extends Testable, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\r\n{\r\n /**\r\n * Optional. The size of the number field. Can be 'Small' or 'Medium'.\r\n */\r\n size?: Size.Small | Size.Medium;\r\n\r\n /**\r\n * Optional. The prefix to be displayed before the number in the field.\r\n */\r\n prefix?: string;\r\n\r\n /**\r\n * Optional. The interval for incrementing and decrementing the number in the field.\r\n */\r\n interval?: number;\r\n\r\n /**\r\n * Optional. The minimum value that can be entered in the field.\r\n */\r\n minValue?: number;\r\n\r\n /**\r\n * Optional. The maximum value that can be entered in the field.\r\n */\r\n maxValue?: number;\r\n\r\n /**\r\n * Optional. A boolean indicating whether negative numbers are allowed.\r\n */\r\n allowNegative?: boolean;\r\n\r\n /**\r\n * Optional. The number of decimal places allowed in the number.\r\n */\r\n decimalPrecision?: number;\r\n\r\n /**\r\n * Optional. The state of the number field. Can be 'Valid' or 'Invalid'.\r\n */\r\n state?: States.Valid | States.Invalid;\r\n\r\n /**\r\n * Optional. A note to be displayed below the number field.\r\n */\r\n note?: string;\r\n\r\n /**\r\n * Optional. An icon to be displayed next to the note.\r\n */\r\n noteIcon?: React.ReactNode;\r\n\r\n /**\r\n * Optional. The type of the number field. Can be 'NumberField' or 'NumberInput'.\r\n */\r\n type?: 'NumberField' | 'NumberInput';\r\n\r\n /**\r\n * Optional. The current value of the number field.\r\n */\r\n value?: number;\r\n\r\n /**\r\n * Optional. A function to be called when the value of the number field changes.\r\n */\r\n onChange?: (e: number) => void;\r\n\r\n /**\r\n * Optional. The position of the tooltip when the number overflows. Can be 'top' or 'bottom'.\r\n */\r\n overflowTooltipPosition?: 'top' | 'bottom';\r\n}\r\n\r\nconst NumberField = React.forwardRef<HTMLInputElement, NumberFieldProps>((props, ref) => {\r\n const {\r\n type = 'NumberField',\r\n size = Size.Medium,\r\n note,\r\n noteIcon,\r\n required,\r\n prefix,\r\n interval = 1,\r\n minValue,\r\n maxValue,\r\n allowNegative,\r\n decimalPrecision,\r\n disabled,\r\n readOnly,\r\n state,\r\n value,\r\n placeholder,\r\n onChange,\r\n className,\r\n id,\r\n overflowTooltipPosition,\r\n dataTestId,\r\n ...rest\r\n } = props;\r\n\r\n const [userInput, setUserInput] = React.useState(value ? value.toString() : '');\r\n\r\n const elementRef = useFocusVisibleRef();\r\n\r\n React.useEffect(() => setUserInput(`${value ?? ''}`), [value]);\r\n\r\n React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\r\n\r\n const setVal = (e: string) => {\r\n setUserInput(e);\r\n onChange && onChange(+e);\r\n }\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n addInterval();\r\n break;\r\n case 'ArrowDown':\r\n subtractInterval();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n e.preventDefault();\r\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\r\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/);\r\n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\r\n\r\n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/);\r\n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\r\n\r\n let val = e.target.value;\r\n if (val !== '') {\r\n if (allowNegative && decimalPrecision) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else {\r\n if ((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n\r\n else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true))\r\n setVal(val);\r\n\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true))\r\n setVal(val);\r\n }\r\n } else if (allowNegative) {\r\n if (val.length === 1 && val.charAt(0) === '-')\r\n setVal(val);\r\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false))\r\n setVal(val);\r\n } else if (decimalPrecision && (val.indexOf('.') === val.lastIndexOf('.')) && isInRange(val, true)) {\r\n if (decimalPrecisionRegex!.test(val))\r\n setVal(val);\r\n else if (decimalFormationRegEx.test(val))\r\n setVal(val);\r\n else if (!val.includes('.') && simpleRegex.test(val))\r\n setVal(val);\r\n } else if (simpleRegex.test(val) && isInRange(val, false)) {\r\n setVal(val);\r\n }\r\n }\r\n\r\n if (val === '')\r\n setVal('');\r\n }\r\n\r\n const isInRange = (value: string, isDecimal: boolean): boolean => {\r\n let x = isDecimal ? parseFloat(parseFloat(value).toFixed(decimalPrecision)) : parseInt(value);\r\n if (minValue && minValue > x)\r\n return false;\r\n else if (maxValue && maxValue < x)\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n const addInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (minValue ? minValue - 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val + interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val += 1;\r\n\r\n if (maxValue && maxValue >= val)\r\n setVal(val.toString());\r\n else if (!maxValue)\r\n setVal(val.toString());\r\n }\r\n }\r\n\r\n const subtractInterval = () => {\r\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\r\n val = isNaN(val) && userInput === '' ? (maxValue ? maxValue + 1 : 0) : val;\r\n if (!isNaN(val)) {\r\n if (decimalPrecision)\r\n val = Math.round((val - interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\r\n else\r\n val -= 1;\r\n\r\n if ((minValue && minValue <= val) || !minValue) {\r\n if (allowNegative || val >= 0) {\r\n setVal(val.toString());\r\n }\r\n }\r\n }\r\n }\r\n\r\n const isLocked = (input: string, operator: string): boolean => {\r\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\r\n val = isNaN(val) && userInput === '' ? 0 : val;\r\n let operatorState = false;\r\n if (operator === 'add' && maxValue)\r\n operatorState = val >= maxValue;\r\n\r\n if (operator === 'subtract' && minValue)\r\n operatorState = val <= minValue;\r\n\r\n if (operator === 'subtract' && !minValue && !allowNegative)\r\n operatorState = val <= 0;\r\n\r\n return operatorState;\r\n }\r\n\r\n const renderNumberFieldElements = () => {\r\n return (\r\n <>\r\n {prefix && <PrefixContainer $size={size} $disabled={!!disabled} className=\"operator\">\r\n {prefix}\r\n </PrefixContainer>}\r\n\r\n <OperatorWrapper data-testid={'operators'} $size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n <div className=\"divider\"></div>\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </OperatorWrapper>\r\n </>)\r\n }\r\n\r\n const renderNumberInputElements = () => {\r\n return (\r\n <>\r\n <LeftOperator data-testid={'leftOperator'} $size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\r\n <SystemIcons.Minus size=\"14px\"/>\r\n </IconButton>\r\n </LeftOperator>\r\n <RightOperator data-testid={'rightOperator'} $size={size} className=\"operator\">\r\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\r\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\r\n <SystemIcons.Plus size=\"14px\"/>\r\n </IconButton>\r\n </RightOperator>\r\n </>)\r\n }\r\n\r\n return (\r\n <Container>\r\n <InputContainer $type={type} $size={size} tabIndex={-1}>\r\n <NumberInput $type={type}\r\n id={id}\r\n data-testid={dataTestId}\r\n $fieldSize={size}\r\n $hasPrefix={!!prefix}\r\n placeholder={placeholder ? placeholder : 'Enter number'}\r\n value={userInput}\r\n ref={elementRef}\r\n tabIndex={(disabled || readOnly) ? -1 : 0}\r\n onChange={e => handleInput(e)}\r\n onKeyDown={e => handleKeyPress(e)}\r\n required={required}\r\n className={disabled ? ' disabled' : ''\r\n .concat(readOnly ? ' readOnly' : '')\r\n .concat(state ? ` ${state}` : '')\r\n .concat(className ? ` ${className}` : '')}\r\n {...rest}/>\r\n\r\n {type === 'NumberField' && renderNumberFieldElements()}\r\n {type === 'NumberInput' && renderNumberInputElements()}\r\n {value && <TooltipOverflow position={overflowTooltipPosition} input={elementRef} withArrow={true} maxWidth=\"100%\" size={size} align='end'>\r\n {value?.toString()}\r\n </TooltipOverflow>}\r\n </InputContainer>\r\n\r\n {\r\n note &&\r\n <ValidationMessage type={state || States.Default}>\r\n {noteIcon}\r\n <span>{note}</span>\r\n </ValidationMessage>\r\n }\r\n\r\n </Container>\r\n );\r\n }\r\n )\r\n;\r\n\r\nexport default NumberField;\r\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AAOA,IAAAU,MAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AAA4C,IAAAY,WAAA,GAAAZ,OAAA;AAAA,MAAAa,SAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAhB,wBAAAgB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAW,QAAAnB,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAAQ,MAAA,CAAAS,IAAA,CAAApB,CAAA,OAAAW,MAAA,CAAAU,qBAAA,QAAAC,CAAA,GAAAX,MAAA,CAAAU,qBAAA,CAAArB,CAAA,GAAAE,CAAA,KAAAoB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAArB,CAAA,WAAAS,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAE,CAAA,EAAAsB,UAAA,OAAArB,CAAA,CAAAsB,IAAA,CAAAC,KAAA,CAAAvB,CAAA,EAAAmB,CAAA,YAAAnB,CAAA;AAAA,SAAAwB,cAAA3B,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAA0B,SAAA,CAAAC,MAAA,EAAA3B,CAAA,UAAAC,CAAA,WAAAyB,SAAA,CAAA1B,CAAA,IAAA0B,SAAA,CAAA1B,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAR,MAAA,CAAAR,CAAA,OAAA2B,OAAA,WAAA5B,CAAA,QAAA6B,gBAAA,CAAA1B,OAAA,EAAAL,CAAA,EAAAE,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAS,MAAA,CAAAqB,yBAAA,GAAArB,MAAA,CAAAsB,gBAAA,CAAAjC,CAAA,EAAAW,MAAA,CAAAqB,yBAAA,CAAA7B,CAAA,KAAAgB,OAAA,CAAAR,MAAA,CAAAR,CAAA,GAAA2B,OAAA,WAAA5B,CAAA,IAAAS,MAAA,CAAAC,cAAA,CAAAZ,CAAA,EAAAE,CAAA,EAAAS,MAAA,CAAAE,wBAAA,CAAAV,CAAA,EAAAD,CAAA,iBAAAF,CAAA;AAE5C,MAAMkC,SAAS,GAAGC,yBAAM,CAACC,GAAG,EAAE;AAE9B,MAAMC,eAAe,GAAGF,yBAAM,CAACC,GAAwC;AACvE,WAAWE,KAAK,IAAIA,KAAK,CAACC,KAAK,KAAKC,WAAI,CAACC,KAAK,GAAG,MAAM,GAAG,MAAM;AAChE,YAAYH,KAAK,IAAIA,KAAK,CAACC,KAAK,KAAKC,WAAI,CAACC,KAAK,GAAG,MAAM,GAAG,MAAM;AACjE,WAAWH,KAAK,IAAIA,KAAK,CAACI,SAAS,GAAGC,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAC,MAAM;EAAEC,KAAK,EAAC;AAAU,CAAC,EAAER,KAAK,CAACS,KAAK,CAAC,GAC7GJ,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAC,MAAM;EAAEG,cAAc,EAAC;AAAQ,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC;AACtF,IAAIT,KAAK,IAAIA,KAAK,CAACC,KAAK,KAAKC,WAAI,CAACC,KAAK,GAAG,IAAAQ,6BAAiB,EAACC,8BAAkB,CAACC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAAC,6BAAiB,EAACF,8BAAkB,CAACC,OAAO,EAAE,IAAI,CAAC;AACnJ;AACA,aAAab,KAAK,IAAIA,KAAK,CAACC,KAAK,KAAKC,WAAI,CAACC,KAAK,GAAG,kBAAkB,GAAG,kBAAkB;AAC1F,CAAC;AAED,MAAMY,eAAe,GAAGlB,yBAAM,CAACC,GAAoB;AACnD;AACA;AACA;AACA;AACA,YAAYE,KAAK,IAAIA,KAAK,CAACC,KAAK,KAAKC,WAAI,CAACc,MAAM,GAAG,OAAO,GAAG,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkBhB,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,QAAQ;EAAEG,cAAc,EAAE;AAAS,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC;AACnH;AACA;AACA,CAAC;AAED,MAAMQ,WAAW,GAAGpB,yBAAM,CAACqB,KAA+D;AAC1F;AACA;AACA;AACA;AACA,gBAAgBlB,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,YAAY;EAAEG,cAAc,EAAE;AAAW,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC;AACvH,gCAAgCT,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAC,QAAQ;EAAEG,cAAc,EAAC;AAAU,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC;AAC/H;AACA,WAAWT,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAC,MAAM;EAAEG,cAAc,EAAC;AAAQ,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC;AACtG;AACA,IAAIT,KAAK,IAAIA,KAAK,CAACmB,UAAU,KAAKjB,WAAI,CAACC,KAAK,GAAG,IAAAQ,6BAAiB,EAACC,8BAAkB,CAACC,OAAO,EAAER,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAC,MAAM;EAAEG,cAAc,EAAC;AAAS,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC,CAAC,GAC5K,IAAAK,6BAAiB,EAACF,8BAAkB,CAACC,OAAO,EAAER,cAAM,CAACC,aAAa,CAAC;EAACC,aAAa,EAAC,MAAM;EAAEG,cAAc,EAAC;AAAS,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC,CAAC;AACvI,IAAIT,KAAK,IAAIA,KAAK,CAACoB,KAAK,KAAK,aAAa,GAAG;AAC7C,mBAAmBpB,KAAK,CAACmB,UAAU,KAAKjB,WAAI,CAACC,KAAK,GAAG,qBAAqB,GAAG,qBAAqB;AAClG,wBAAwBH,KAAK,CAACqB,UAAU,GAAG,MAAM,GAAG,EAAE;AACtD,KAAK,GAAG,EAAE;AACV,IAAIrB,KAAK,IAAIA,KAAK,CAACoB,KAAK,KAAK,aAAa,GAAG;AAC7C,mBAAmBpB,KAAK,CAACmB,UAAU,KAAKjB,WAAI,CAACC,KAAK,GAAG,WAAW,GAAG,WAAW;AAC9E,KAAK,GAAG,EAAE;AACV;AACA,MAAMH,KAAK,IAAIA,KAAK,CAACmB,UAAU,KAAKjB,WAAI,CAACC,KAAK,GAAG,IAAAQ,6BAAiB,EAACC,8BAAkB,CAACU,MAAM,EAAE,IAAI,CAAC,GAAG,IAAAR,6BAAiB,EAACF,8BAAkB,CAACU,MAAM,EAAE,IAAI,CAAC;AACxJ;AACA;AACA;AACA,kCAAkCtB,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,QAAQ;EAAEC,KAAK,EAAC;AAAQ,CAAC,EAAER,KAAK,CAACS,KAAK,CAAC;AACvH;AACA;AACA;AACA,MAAMc,mBAAW;AACjB;AACA;AACA;AACA,kCAAkCvB,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,QAAQ;EAAEC,KAAK,EAAC;AAAQ,CAAC,EAAER,KAAK,CAACS,KAAK,CAAC;AACvH;AACA;AACA;AACA,kCAAkCT,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,QAAQ;EAAEC,KAAK,EAAC;AAAW,CAAC,EAAER,KAAK,CAACS,KAAK,CAAC;AAC1H;AACA,aAAaT,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,MAAM;EAAEC,KAAK,EAAC;AAAW,CAAC,EAAER,KAAK,CAACS,KAAK,CAAC;AACnG;AACA;AACA;AACA,eAAeT,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,MAAM;EAAEC,KAAK,EAAC;AAAW,CAAC,EAAER,KAAK,CAACS,KAAK,CAAC;AACrG;AACA;AACA;AACA;AACA,kBAAkBT,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,YAAY;EAAEC,KAAK,EAAE;AAAY,CAAC,EAAER,KAAK,CAACS,KAAK,CAAC;AACjH,kCAAkCT,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,QAAQ;EAAEG,cAAc,EAAE;AAAW,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC;AACrI;AACA;AACA,aAAaT,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAE,MAAM;EAAEG,cAAc,EAAE;AAAU,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC;AAC7G;AACA;AACA;AACA,kCAAkCT,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,QAAQ;EAAEG,cAAc,EAAC;AAAW,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC;AACnI;AACA;AACA;AACA,kCAAkCT,KAAK,IAAIK,cAAM,CAACC,aAAa,CAAC;EAAEC,aAAa,EAAC,QAAQ;EAAEG,cAAc,EAAC;AAAW,CAAC,EAAEV,KAAK,CAACS,KAAK,CAAC;AACnI;AACA,CAAC;AAED,MAAMe,cAAc,GAAG3B,yBAAM,CAACC,GAAmC;AACjE,eAAeE,KAAK,IAAIA,KAAK,CAACoB,KAAK,KAAK,aAAa,GAAG,OAAO,GAAG,OAAO;AACzE,YAAYpB,KAAK,IAAIA,KAAK,CAACC,KAAK,KAAKC,WAAI,CAACC,KAAK,GAAG,MAAM,GAAG,MAAM;AACjE;AACA;AACA;AACA;AACA;AACA,eAAesB,iBAAS,CAACC,KAAK;AAC9B;AACA;AACA,IAAI,IAAAC,6BAAc,EAAC,OAAO,CAAC;AAC3B,CAAC;AAED,MAAMC,YAAY,GAAG/B,yBAAM,CAACC,GAAoB;AAChD;AACA,SAASE,KAAK,IAAIA,KAAK,CAACC,KAAK,KAAKC,WAAI,CAACC,KAAK,GAAG,GAAG,GAAG,KAAK;AAC1D;AACA,CAAC;AAED,MAAM0B,aAAa,GAAGhC,yBAAM,CAACC,GAAoB;AACjD;AACA,SAASE,KAAK,IAAIA,KAAK,CAACC,KAAK,KAAKC,WAAI,CAACC,KAAK,GAAG,GAAG,GAAG,KAAK;AAC1D;AACA,CAAC;AA2ED,MAAM2B,WAAW,gBAAGrF,KAAK,CAACsF,UAAU,CAAqC,CAAC/B,KAAK,EAAEgC,GAAG,KAAK;EACnF,MAAM;MACJC,IAAI,GAAG,aAAa;MACpBC,IAAI,GAAGhC,WAAI,CAACc,MAAM;MAClBmB,IAAI;MACJC,QAAQ;MACRC,QAAQ;MACRC,MAAM;MACNC,QAAQ,GAAG,CAAC;MACZC,QAAQ;MACRC,QAAQ;MACRC,aAAa;MACbC,gBAAgB;MAChBC,QAAQ;MACRC,QAAQ;MACRrC,KAAK;MACLsC,KAAK;MACLC,WAAW;MACXC,QAAQ;MACRC,SAAS;MACTC,EAAE;MACFC,uBAAuB;MACvBC;IAEF,CAAC,GAAGpD,KAAK;IADJqD,IAAI,OAAAC,yBAAA,CAAAvF,OAAA,EACLiC,KAAK,EAAAxC,SAAA;EAET,MAAM,CAAC+F,SAAS,EAAEC,YAAY,CAAC,GAAG/G,KAAK,CAACgH,QAAQ,CAACX,KAAK,GAAGA,KAAK,CAACY,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;EAE/E,MAAMC,UAAU,GAAG,IAAAC,0BAAkB,EAAC,CAAC;EAEvCnH,KAAK,CAACoH,SAAS,CAAC,MAAML,YAAY,CAAC,GAAGV,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAE9DrG,KAAK,CAACqH,mBAAmB,CAAC9B,GAAG,EAAE,MAAM2B,UAAU,CAACI,OAAO,EAAE,CAACJ,UAAU,CAAC,CAAC;EAEtE,MAAMK,MAAM,GAAItG,CAAS,IAAK;IAC5B8F,YAAY,CAAC9F,CAAC,CAAC;IACfsF,QAAQ,IAAIA,QAAQ,CAAC,CAACtF,CAAC,CAAC;EAC1B,CAAC;EAED,MAAMuG,cAAc,GAAIvG,CAAwC,IAAK;IACnE,QAAQA,CAAC,CAACwG,GAAG;MACX,KAAK,SAAS;QACZC,WAAW,CAAC,CAAC;QACb;MACF,KAAK,WAAW;QACdC,gBAAgB,CAAC,CAAC;QAClB;MACF;QACE;IACJ;EACF,CAAC;EAED,MAAMC,WAAW,GAAI3G,CAAsC,IAAK;IAC9DA,CAAC,CAAC4G,cAAc,CAAC,CAAC;IAClB,IAAIC,WAAW,GAAG,IAAIC,MAAM,CAAC,YAAY,CAAC;IAC1C,IAAIC,qBAAqB,GAAG,IAAID,MAAM,CAAC,cAAc,CAAC;IACtD,IAAIE,6BAA6B,GAAG,IAAIF,MAAM,CAAC,iBAAiB,CAAC;IAEjE,IAAIG,kBAAkB,GAAG,IAAIH,MAAM,CAAC,eAAe,CAAC;IACpD,IAAII,qBAAqB,GAAGjC,gBAAgB,GAAG,IAAI6B,MAAM,CAAC,2BAA2B7B,gBAAgB,GAAC,CAAC,IAAI,CAAC,GAAGkC,SAAS;IACxH,IAAIC,uBAAuB,GAAInC,gBAAgB,IAAID,aAAa,GAAI,IAAI8B,MAAM,CAAC,8BAA8B7B,gBAAgB,GAAC,CAAC,IAAI,CAAC,GAAGkC,SAAS;IAEhJ,IAAIE,GAAG,GAAGrH,CAAC,CAACsH,MAAM,CAAClC,KAAK;IACxB,IAAIiC,GAAG,KAAK,EAAE,EAAE;MACd,IAAIrC,aAAa,IAAIC,gBAAgB,EAAE;QACrC,IAAIoC,GAAG,CAACxF,MAAM,KAAK,CAAC,IAAIwF,GAAG,CAACE,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAC3CjB,MAAM,CAACe,GAAG,CAAC,CAAC,KACT;UACH,IAAI,CAACD,uBAAuB,CAAEI,IAAI,CAACH,GAAG,CAAC,IAAIH,qBAAqB,CAAEM,IAAI,CAACH,GAAG,CAAC,KAAKI,SAAS,CAACJ,GAAG,EAAE,IAAI,CAAC,EAClGf,MAAM,CAACe,GAAG,CAAC,CAAC,KAET,IAAI,CAACL,6BAA6B,CAACQ,IAAI,CAACH,GAAG,CAAC,IAAIN,qBAAqB,CAACS,IAAI,CAACH,GAAG,CAAC,KAAKI,SAAS,CAACJ,GAAG,CAACK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAC5HpB,MAAM,CAACe,GAAG,CAAC,CAAC,KAET,IAAI,CAACJ,kBAAkB,CAACO,IAAI,CAACH,GAAG,CAAC,IAAIR,WAAW,CAACW,IAAI,CAACH,GAAG,CAAC,KAAKI,SAAS,CAACJ,GAAG,EAAE,IAAI,CAAC,EACtFf,MAAM,CAACe,GAAG,CAAC;QACf;MACF,CAAC,MAAM,IAAIrC,aAAa,EAAE;QACxB,IAAIqC,GAAG,CAACxF,MAAM,KAAK,CAAC,IAAIwF,GAAG,CAACE,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAC3CjB,MAAM,CAACe,GAAG,CAAC,CAAC,KACT,IAAI,CAACJ,kBAAkB,CAACO,IAAI,CAACH,GAAG,CAAC,IAAIR,WAAW,CAACW,IAAI,CAACH,GAAG,CAAC,KAAKI,SAAS,CAACJ,GAAG,EAAE,KAAK,CAAC,EACvFf,MAAM,CAACe,GAAG,CAAC;MACf,CAAC,MAAM,IAAIpC,gBAAgB,IAAKoC,GAAG,CAACM,OAAO,CAAC,GAAG,CAAC,KAAKN,GAAG,CAACO,WAAW,CAAC,GAAG,CAAE,IAAIH,SAAS,CAACJ,GAAG,EAAE,IAAI,CAAC,EAAE;QAClG,IAAIH,qBAAqB,CAAEM,IAAI,CAACH,GAAG,CAAC,EAClCf,MAAM,CAACe,GAAG,CAAC,CAAC,KACT,IAAIN,qBAAqB,CAACS,IAAI,CAACH,GAAG,CAAC,EACtCf,MAAM,CAACe,GAAG,CAAC,CAAC,KACT,IAAI,CAACA,GAAG,CAACQ,QAAQ,CAAC,GAAG,CAAC,IAAIhB,WAAW,CAACW,IAAI,CAACH,GAAG,CAAC,EAClDf,MAAM,CAACe,GAAG,CAAC;MACf,CAAC,MAAM,IAAIR,WAAW,CAACW,IAAI,CAACH,GAAG,CAAC,IAAII,SAAS,CAACJ,GAAG,EAAE,KAAK,CAAC,EAAE;QACzDf,MAAM,CAACe,GAAG,CAAC;MACb;IACF;IAEA,IAAIA,GAAG,KAAK,EAAE,EACZf,MAAM,CAAC,EAAE,CAAC;EACd,CAAC;EAED,MAAMmB,SAAS,GAAGA,CAACrC,KAAa,EAAE0C,SAAkB,KAAc;IAChE,IAAIC,CAAC,GAAGD,SAAS,GAAGE,UAAU,CAACA,UAAU,CAAC5C,KAAK,CAAC,CAAC6C,OAAO,CAAChD,gBAAgB,CAAC,CAAC,GAAGiD,QAAQ,CAAC9C,KAAK,CAAC;IAC7F,IAAIN,QAAQ,IAAIA,QAAQ,GAAGiD,CAAC,EAC1B,OAAO,KAAK,CAAC,KACV,IAAIhD,QAAQ,IAAIA,QAAQ,GAAGgD,CAAC,EAC/B,OAAO,KAAK,CAAC,KAEb,OAAO,IAAI;EACf,CAAC;EAED,MAAMtB,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIY,GAAG,GAAGpC,gBAAgB,GAAG+C,UAAU,CAACnC,SAAS,CAAC,GAAGqC,QAAQ,CAACrC,SAAS,CAAC;IACxEwB,GAAG,GAAGc,KAAK,CAACd,GAAG,CAAC,IAAIxB,SAAS,KAAK,EAAE,GAAIf,QAAQ,GAAGA,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAIuC,GAAG;IAC1E,IAAI,CAACc,KAAK,CAACd,GAAG,CAAC,EAAE;MACf,IAAIpC,gBAAgB,EAClBoC,GAAG,GAAGe,IAAI,CAACC,KAAK,CAAC,CAAChB,GAAG,GAAGxC,QAAQ,IAAIuD,IAAI,CAACE,GAAG,CAAC,EAAE,EAAErD,gBAAiB,CAAC,CAAC,GAAGmD,IAAI,CAACE,GAAG,CAAC,EAAE,EAAErD,gBAAiB,CAAC,CAAC,KAEvGoC,GAAG,IAAI,CAAC;MAEV,IAAItC,QAAQ,IAAIA,QAAQ,IAAIsC,GAAG,EAC7Bf,MAAM,CAACe,GAAG,CAACrB,QAAQ,CAAC,CAAC,CAAC,CAAC,KACpB,IAAI,CAACjB,QAAQ,EAChBuB,MAAM,CAACe,GAAG,CAACrB,QAAQ,CAAC,CAAC,CAAC;IAC1B;EACF,CAAC;EAED,MAAMU,gBAAgB,GAAGA,CAAA,KAAM;IAC7B,IAAIW,GAAG,GAAGpC,gBAAgB,GAAG+C,UAAU,CAACnC,SAAS,CAAC,GAAGqC,QAAQ,CAACrC,SAAS,CAAC;IACxEwB,GAAG,GAAGc,KAAK,CAACd,GAAG,CAAC,IAAIxB,SAAS,KAAK,EAAE,GAAId,QAAQ,GAAGA,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAIsC,GAAG;IAC1E,IAAI,CAACc,KAAK,CAACd,GAAG,CAAC,EAAE;MACf,IAAIpC,gBAAgB,EAClBoC,GAAG,GAAGe,IAAI,CAACC,KAAK,CAAC,CAAChB,GAAG,GAAGxC,QAAQ,IAAIuD,IAAI,CAACE,GAAG,CAAC,EAAE,EAAErD,gBAAiB,CAAC,CAAC,GAAGmD,IAAI,CAACE,GAAG,CAAC,EAAE,EAAErD,gBAAiB,CAAC,CAAC,KAEvGoC,GAAG,IAAI,CAAC;MAEV,IAAKvC,QAAQ,IAAIA,QAAQ,IAAIuC,GAAG,IAAK,CAACvC,QAAQ,EAAE;QAC9C,IAAIE,aAAa,IAAIqC,GAAG,IAAI,CAAC,EAAE;UAC7Bf,MAAM,CAACe,GAAG,CAACrB,QAAQ,CAAC,CAAC,CAAC;QACxB;MACF;IACF;EACF,CAAC;EAED,MAAMuC,QAAQ,GAAGA,CAAC/E,KAAa,EAAEgF,QAAgB,KAAc;IAC7D,IAAInB,GAAG,GAAGpC,gBAAgB,GAAG+C,UAAU,CAACxE,KAAK,CAAC,GAAG0E,QAAQ,CAAC1E,KAAK,CAAC;IAChE6D,GAAG,GAAGc,KAAK,CAACd,GAAG,CAAC,IAAIxB,SAAS,KAAK,EAAE,GAAG,CAAC,GAAGwB,GAAG;IAC9C,IAAIoB,aAAa,GAAG,KAAK;IACzB,IAAID,QAAQ,KAAK,KAAK,IAAIzD,QAAQ,EAChC0D,aAAa,GAAGpB,GAAG,IAAItC,QAAQ;IAEjC,IAAIyD,QAAQ,KAAK,UAAU,IAAI1D,QAAQ,EACrC2D,aAAa,GAAGpB,GAAG,IAAIvC,QAAQ;IAEjC,IAAI0D,QAAQ,KAAK,UAAU,IAAI,CAAC1D,QAAQ,IAAI,CAACE,aAAa,EACxDyD,aAAa,GAAGpB,GAAG,IAAI,CAAC;IAE1B,OAAOoB,aAAa;EACtB,CAAC;EAED,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;IACtC,oBACE,IAAA7I,WAAA,CAAA8I,IAAA,EAAA9I,WAAA,CAAA+I,QAAA;MAAAC,QAAA,GACGjE,MAAM,iBAAI,IAAA/E,WAAA,CAAAiJ,GAAA,EAACzG,eAAe;QAACE,KAAK,EAAEiC,IAAK;QAAC9B,SAAS,EAAE,CAAC,CAACwC,QAAS;QAACK,SAAS,EAAC,UAAU;QAAAsD,QAAA,EACjFjE;MAAM,CACQ,CAAC,eAElB,IAAA/E,WAAA,CAAA8I,IAAA,EAACtF,eAAe;QAAC,eAAa,WAAY;QAACd,KAAK,EAAEiC,IAAK;QAACe,SAAS,EAAC,UAAU;QAAAsD,QAAA,gBAC1E,IAAAhJ,WAAA,CAAAiJ,GAAA,EAACxJ,OAAA,CAAAyJ,UAAU;UAACC,QAAQ,EAAE,CAAE;UAACC,OAAO,EAAC,WAAW;UAACC,KAAK,EAAC,QAAQ;UAACC,MAAM,EAAEA,CAAA,KAAMzC,gBAAgB,CAAC,CAAE;UACjF0C,wBAAwB;UAAClE,QAAQ,EAAEA,QAAQ,IAAIC,QAAQ,IAAIoD,QAAQ,CAAC1C,SAAS,EAAE,UAAU,CAAE;UAAAgD,QAAA,eACrG,IAAAhJ,WAAA,CAAAiJ,GAAA,EAACtJ,MAAA,CAAA6J,WAAW,CAACC,KAAK;YAAC9E,IAAI,EAAC;UAAM,CAAC;QAAC,CACtB,CAAC,eACb,IAAA3E,WAAA,CAAAiJ,GAAA;UAAKvD,SAAS,EAAC;QAAS,CAAM,CAAC,eAC/B,IAAA1F,WAAA,CAAAiJ,GAAA,EAACxJ,OAAA,CAAAyJ,UAAU;UAACC,QAAQ,EAAE,CAAE;UAACC,OAAO,EAAC,WAAW;UAACC,KAAK,EAAC,QAAQ;UAACC,MAAM,EAAEA,CAAA,KAAM1C,WAAW,CAAC,CAAE;UAC5E2C,wBAAwB;UAAClE,QAAQ,EAAEA,QAAQ,IAAIC,QAAQ,IAAIoD,QAAQ,CAAC1C,SAAS,EAAE,KAAK,CAAE;UAAAgD,QAAA,eAChG,IAAAhJ,WAAA,CAAAiJ,GAAA,EAACtJ,MAAA,CAAA6J,WAAW,CAACE,IAAI;YAAC/E,IAAI,EAAC;UAAM,CAAC;QAAC,CACrB,CAAC;MAAA,CACE,CAAC;IAAA,CAClB,CAAC;EACP,CAAC;EAED,MAAMgF,yBAAyB,GAAGA,CAAA,KAAM;IACtC,oBACE,IAAA3J,WAAA,CAAA8I,IAAA,EAAA9I,WAAA,CAAA+I,QAAA;MAAAC,QAAA,gBACE,IAAAhJ,WAAA,CAAAiJ,GAAA,EAAC5E,YAAY;QAAC,eAAa,cAAe;QAAC3B,KAAK,EAAEiC,IAAK;QAACe,SAAS,EAAC,UAAU;QAAAsD,QAAA,eAC1E,IAAAhJ,WAAA,CAAAiJ,GAAA,EAACxJ,OAAA,CAAAyJ,UAAU;UAACC,QAAQ,EAAE,CAAE;UAACC,OAAO,EAAC,WAAW;UAACC,KAAK,EAAC,QAAQ;UAACC,MAAM,EAAEA,CAAA,KAAMzC,gBAAgB,CAAC,CAAE;UACjF0C,wBAAwB;UAAClE,QAAQ,EAAEA,QAAQ,IAAIC,QAAQ,IAAIoD,QAAQ,CAAC1C,SAAS,EAAE,UAAU,CAAE;UAAAgD,QAAA,eACrG,IAAAhJ,WAAA,CAAAiJ,GAAA,EAACtJ,MAAA,CAAA6J,WAAW,CAACC,KAAK;YAAC9E,IAAI,EAAC;UAAM,CAAC;QAAC,CACtB;MAAC,CACD,CAAC,eACf,IAAA3E,WAAA,CAAAiJ,GAAA,EAAC3E,aAAa;QAAC,eAAa,eAAgB;QAAC5B,KAAK,EAAEiC,IAAK;QAACe,SAAS,EAAC,UAAU;QAAAsD,QAAA,eAC5E,IAAAhJ,WAAA,CAAAiJ,GAAA,EAACxJ,OAAA,CAAAyJ,UAAU;UAACC,QAAQ,EAAE,CAAE;UAACC,OAAO,EAAC,WAAW;UAACC,KAAK,EAAC,QAAQ;UAACC,MAAM,EAAEA,CAAA,KAAM1C,WAAW,CAAC,CAAE;UAC5E2C,wBAAwB;UAAClE,QAAQ,EAAEA,QAAQ,IAAIC,QAAQ,IAAIoD,QAAQ,CAAC1C,SAAS,EAAE,KAAK,CAAE;UAAAgD,QAAA,eAChG,IAAAhJ,WAAA,CAAAiJ,GAAA,EAACtJ,MAAA,CAAA6J,WAAW,CAACE,IAAI;YAAC/E,IAAI,EAAC;UAAM,CAAC;QAAC,CACrB;MAAC,CACA,CAAC;IAAA,CAChB,CAAC;EACP,CAAC;EAED,oBACE,IAAA3E,WAAA,CAAA8I,IAAA,EAACzG,SAAS;IAAA2G,QAAA,gBACR,IAAAhJ,WAAA,CAAA8I,IAAA,EAAC7E,cAAc;MAACJ,KAAK,EAAEa,IAAK;MAAChC,KAAK,EAAEiC,IAAK;MAACwE,QAAQ,EAAE,CAAC,CAAE;MAAAH,QAAA,gBACrD,IAAAhJ,WAAA,CAAAiJ,GAAA,EAACvF,WAAW,EAAA5B,aAAA;QAAC+B,KAAK,EAAEa,IAAK;QACXiB,EAAE,EAAEA,EAAG;QACR,eAAaE,UAAW;QACxBjC,UAAU,EAAEe,IAAK;QACjBb,UAAU,EAAE,CAAC,CAACiB,MAAO;QACrBS,WAAW,EAAEA,WAAW,GAAGA,WAAW,GAAG,cAAe;QACxDD,KAAK,EAAES,SAAU;QACjBvB,GAAG,EAAE2B,UAAW;QAChB+C,QAAQ,EAAG9D,QAAQ,IAAIC,QAAQ,GAAI,CAAC,CAAC,GAAG,CAAE;QAC1CG,QAAQ,EAAEtF,CAAC,IAAI2G,WAAW,CAAC3G,CAAC,CAAE;QAC9ByJ,SAAS,EAAEzJ,CAAC,IAAIuG,cAAc,CAACvG,CAAC,CAAE;QAClC2E,QAAQ,EAAEA,QAAS;QACnBY,SAAS,EAAEL,QAAQ,GAAG,WAAW,GAAG,EAAE,CACnCwE,MAAM,CAACvE,QAAQ,GAAG,WAAW,GAAG,EAAE,CAAC,CACnCuE,MAAM,CAAC5G,KAAK,GAAG,IAAIA,KAAK,EAAE,GAAG,EAAE,CAAC,CAChC4G,MAAM,CAACnE,SAAS,GAAG,IAAIA,SAAS,EAAE,GAAG,EAAE;MAAE,GACxCI,IAAI,CAAE,CAAC,EAEvBpB,IAAI,KAAK,aAAa,IAAImE,yBAAyB,CAAC,CAAC,EACrDnE,IAAI,KAAK,aAAa,IAAIiF,yBAAyB,CAAC,CAAC,EACrDpE,KAAK,iBAAI,IAAAvF,WAAA,CAAAiJ,GAAA,EAAC3J,gBAAA,CAAAkB,OAAe;QAACsJ,QAAQ,EAAElE,uBAAwB;QAACjC,KAAK,EAAEyC,UAAW;QAAC2D,SAAS,EAAE,IAAK;QAACC,QAAQ,EAAC,MAAM;QAACrF,IAAI,EAAEA,IAAK;QAACsF,KAAK,EAAC,KAAK;QAAAjB,QAAA,EACtIzD,KAAK,EAAEY,QAAQ,CAAC;MAAC,CACH,CAAC;IAAA,CACJ,CAAC,EAGfvB,IAAI,iBACJ,IAAA5E,WAAA,CAAA8I,IAAA,EAAC/I,QAAA,CAAAmK,iBAAiB;MAACxF,IAAI,EAAEzB,KAAK,IAAIkH,aAAM,CAACC,OAAQ;MAAApB,QAAA,GAC9CnE,QAAQ,eACT,IAAA7E,WAAA,CAAAiJ,GAAA;QAAAD,QAAA,EAAOpE;MAAI,CAAO,CAAC;IAAA,CACF,CAAC;EAAA,CAGb,CAAC;AAEhB,CACF,CAAC;AACFL,WAAA,CAAA8F,SAAA;EA3SCtF,MAAM,EAAAuF,UAAA,CAAA9J,OAAA,CAAA+J,MAAA;EAKNvF,QAAQ,EAAAsF,UAAA,CAAA9J,OAAA,CAAAgK,MAAA;EAKRvF,QAAQ,EAAAqF,UAAA,CAAA9J,OAAA,CAAAgK,MAAA;EAKRtF,QAAQ,EAAAoF,UAAA,CAAA9J,OAAA,CAAAgK,MAAA;EAKRrF,aAAa,EAAAmF,UAAA,CAAA9J,OAAA,CAAAiK,IAAA;EAKbrF,gBAAgB,EAAAkF,UAAA,CAAA9J,OAAA,CAAAgK,MAAA;EAUhB5F,IAAI,EAAA0F,UAAA,CAAA9J,OAAA,CAAA+J,MAAA;EAKJ1F,QAAQ,EAAAyF,UAAA,CAAA9J,OAAA,CAAAkK,IAAA;EAKRhG,IAAI,EAAA4F,UAAA,CAAA9J,OAAA,CAAAmK,KAAA,EAAG,aAAa,EAAG,aAAa;EAKpCpF,KAAK,EAAA+E,UAAA,CAAA9J,OAAA,CAAAgK,MAAA;EAKL/E,QAAQ,EAAA6E,UAAA,CAAA9J,OAAA,CAAAoK,IAAA;EAKRhF,uBAAuB,EAAA0E,UAAA,CAAA9J,OAAA,CAAAmK,KAAA,EAAG,KAAK,EAAG,QAAQ;AAAA;AAAA,IAAAE,QAAA,GAAAC,OAAA,CAAAtK,OAAA,GAiP7B+D,WAAW","ignoreList":[]}
@@ -57,6 +57,10 @@ const NumberInput = styled.input`
57
57
  border: none;
58
58
  border-radius: 4px;
59
59
  text-overflow: ellipsis;
60
+ background: ${props => COLORS.generateToken({
61
+ componentType: 'bg-surface',
62
+ defaultVariant: 'default'
63
+ }, props.theme)};
60
64
  box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({
61
65
  componentType: 'border',
62
66
  defaultVariant: 'default'