@laerdal/life-react-components 1.5.1-dev.9 → 1.6.0-dev.1.full

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 (120) hide show
  1. package/dist/Button/Iconbutton.cjs +12 -13
  2. package/dist/Button/Iconbutton.cjs.map +1 -1
  3. package/dist/Button/Iconbutton.js +12 -13
  4. package/dist/Button/Iconbutton.js.map +1 -1
  5. package/dist/Card/Card.cjs +101 -0
  6. package/dist/Card/Card.cjs.map +1 -0
  7. package/dist/Card/Card.d.ts +23 -0
  8. package/dist/Card/Card.js +74 -0
  9. package/dist/Card/Card.js.map +1 -0
  10. package/dist/Card/CardBottomSection.cjs +133 -0
  11. package/dist/Card/CardBottomSection.cjs.map +1 -0
  12. package/dist/Card/CardBottomSection.d.ts +22 -0
  13. package/dist/Card/CardBottomSection.js +105 -0
  14. package/dist/Card/CardBottomSection.js.map +1 -0
  15. package/dist/Card/CardMiddleSection.cjs +100 -0
  16. package/dist/Card/CardMiddleSection.cjs.map +1 -0
  17. package/dist/Card/CardMiddleSection.d.ts +14 -0
  18. package/dist/Card/CardMiddleSection.js +76 -0
  19. package/dist/Card/CardMiddleSection.js.map +1 -0
  20. package/dist/Card/CardTopSection.cjs +112 -0
  21. package/dist/Card/CardTopSection.cjs.map +1 -0
  22. package/dist/Card/CardTopSection.d.ts +19 -0
  23. package/dist/Card/CardTopSection.js +85 -0
  24. package/dist/Card/CardTopSection.js.map +1 -0
  25. package/dist/Card/index.cjs +52 -0
  26. package/dist/Card/index.cjs.map +1 -0
  27. package/dist/Card/index.d.ts +5 -0
  28. package/dist/Card/index.js +6 -0
  29. package/dist/Card/index.js.map +1 -0
  30. package/dist/Dropdown/BasicDropdown.cjs +38 -55
  31. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  32. package/dist/Dropdown/BasicDropdown.js +36 -53
  33. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  34. package/dist/Dropdown/CommonStyling.cjs +9 -17
  35. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  36. package/dist/Dropdown/CommonStyling.d.ts +0 -3
  37. package/dist/Dropdown/CommonStyling.js +8 -12
  38. package/dist/Dropdown/CommonStyling.js.map +1 -1
  39. package/dist/Dropdown/DropdownButton.cjs +11 -24
  40. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  41. package/dist/Dropdown/DropdownButton.js +11 -24
  42. package/dist/Dropdown/DropdownButton.js.map +1 -1
  43. package/dist/Dropdown/DropdownContent.cjs +21 -12
  44. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  45. package/dist/Dropdown/DropdownContent.js +21 -12
  46. package/dist/Dropdown/DropdownContent.js.map +1 -1
  47. package/dist/Dropdown/DropdownFilter.cjs +43 -46
  48. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  49. package/dist/Dropdown/DropdownFilter.js +41 -45
  50. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  51. package/dist/InputFields/DatepickerField.cjs +48 -17
  52. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  53. package/dist/InputFields/DatepickerField.js +47 -16
  54. package/dist/InputFields/DatepickerField.js.map +1 -1
  55. package/dist/InputFields/styling.cjs +2 -2
  56. package/dist/InputFields/styling.cjs.map +1 -1
  57. package/dist/InputFields/styling.js +2 -2
  58. package/dist/InputFields/styling.js.map +1 -1
  59. package/dist/LinearProgress/LinearProgress.cjs +142 -0
  60. package/dist/LinearProgress/LinearProgress.cjs.map +1 -0
  61. package/dist/LinearProgress/LinearProgress.d.ts +25 -0
  62. package/dist/LinearProgress/LinearProgress.js +111 -0
  63. package/dist/LinearProgress/LinearProgress.js.map +1 -0
  64. package/dist/LinearProgress/index.cjs +32 -0
  65. package/dist/LinearProgress/index.cjs.map +1 -0
  66. package/dist/LinearProgress/index.d.ts +3 -0
  67. package/dist/LinearProgress/index.js +4 -0
  68. package/dist/LinearProgress/index.js.map +1 -0
  69. package/dist/Modals/ModalContainer.cjs +8 -3
  70. package/dist/Modals/ModalContainer.cjs.map +1 -1
  71. package/dist/Modals/ModalContainer.d.ts +1 -0
  72. package/dist/Modals/ModalContainer.js +8 -3
  73. package/dist/Modals/ModalContainer.js.map +1 -1
  74. package/dist/Modals/ModalDialog.cjs +26 -2
  75. package/dist/Modals/ModalDialog.cjs.map +1 -1
  76. package/dist/Modals/ModalDialog.d.ts +1 -0
  77. package/dist/Modals/ModalDialog.js +26 -2
  78. package/dist/Modals/ModalDialog.js.map +1 -1
  79. package/dist/Modals/ModalStyles.cjs +2 -2
  80. package/dist/Modals/ModalStyles.cjs.map +1 -1
  81. package/dist/Modals/ModalStyles.js +2 -2
  82. package/dist/Modals/ModalStyles.js.map +1 -1
  83. package/dist/SegmentControl/SegmentControl.cjs +99 -0
  84. package/dist/SegmentControl/SegmentControl.cjs.map +1 -0
  85. package/dist/SegmentControl/SegmentControl.d.ts +19 -0
  86. package/dist/SegmentControl/SegmentControl.js +71 -0
  87. package/dist/SegmentControl/SegmentControl.js.map +1 -0
  88. package/dist/SegmentControl/index.cjs +16 -0
  89. package/dist/SegmentControl/index.cjs.map +1 -0
  90. package/dist/SegmentControl/index.d.ts +3 -0
  91. package/dist/SegmentControl/index.js +3 -0
  92. package/dist/SegmentControl/index.js.map +1 -0
  93. package/dist/Table/TableFooter.cjs +1 -1
  94. package/dist/Table/TableFooter.cjs.map +1 -1
  95. package/dist/Table/TableFooter.js +1 -1
  96. package/dist/Table/TableFooter.js.map +1 -1
  97. package/dist/Table/TableStyles.cjs +1 -1
  98. package/dist/Table/TableStyles.cjs.map +1 -1
  99. package/dist/Table/TableStyles.js +1 -1
  100. package/dist/Table/TableStyles.js.map +1 -1
  101. package/dist/Tag/Tag.cjs +92 -0
  102. package/dist/Tag/Tag.cjs.map +1 -0
  103. package/dist/Tag/Tag.d.ts +9 -0
  104. package/dist/Tag/Tag.js +70 -0
  105. package/dist/Tag/Tag.js.map +1 -0
  106. package/dist/Tag/index.cjs +16 -0
  107. package/dist/Tag/index.cjs.map +1 -0
  108. package/dist/Tag/index.d.ts +2 -0
  109. package/dist/Tag/index.js +2 -0
  110. package/dist/Tag/index.js.map +1 -0
  111. package/dist/common/InputStyling.cjs +1 -1
  112. package/dist/common/InputStyling.cjs.map +1 -1
  113. package/dist/common/InputStyling.js +1 -1
  114. package/dist/common/InputStyling.js.map +1 -1
  115. package/dist/index.cjs +99 -0
  116. package/dist/index.cjs.map +1 -1
  117. package/dist/index.d.ts +5 -0
  118. package/dist/index.js +5 -0
  119. package/dist/index.js.map +1 -1
  120. package/package.json +4 -3
@@ -8,6 +8,7 @@ import { StyledField, Dropdown, ButtonDropdownWrapper, InputField } from './Comm
8
8
  import DropdownContent from './DropdownContent';
9
9
  import { Size } from '../types';
10
10
  import { AutofilledMessage, WarningMessage } from '../InputFields/styling';
11
+ import { defaultOnMouseDownHandler, useFocusVisibleRef } from '../common';
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
12
13
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
14
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -70,30 +71,25 @@ var DropdownFilter = function DropdownFilter(_ref) {
70
71
  focused = _React$useState14[0],
71
72
  setFocused = _React$useState14[1];
72
73
 
73
- var styledFieldRef = React.useRef(null);
74
74
  var inputRef = React.useRef(null);
75
+ var styledFieldRef = useFocusVisibleRef([inputRef]);
75
76
 
76
77
  var handleKeyPress = function handleKeyPress(e) {
77
- if (styledFieldRef !== null && styledFieldRef !== void 0 && styledFieldRef.current && styledFieldRef.current.contains(e.target)) {
78
- if (e.keyCode === 13 && !locked) {
79
- var matches = list === null || list === void 0 ? void 0 : list.filter(function (c) {
80
- return c.label.toLowerCase() === input.toLowerCase();
81
- });
78
+ if (e.key === 'Enter' && !locked) {
79
+ var matches = list === null || list === void 0 ? void 0 : list.filter(function (c) {
80
+ return c.label.toLowerCase() === input.toLowerCase();
81
+ });
82
82
 
83
- if (matches.length === 1 && onSelect) {
84
- onSelect(matches[0].label);
85
- setInput(matches[0].label);
86
- }
83
+ if (matches.length === 1 && onSelect) {
84
+ onSelect(matches[0].label);
85
+ setInput(matches[0].label);
86
+ }
87
87
 
88
- if (!isOpen) setFocused(0);
89
- setIsOpen(!isOpen);
88
+ if (!isOpen) setFocused(0);
89
+ setIsOpen(!isOpen);
90
90
 
91
- if (matches.length === 0) {
92
- setInput('');
93
- }
94
- } else if (e.keyCode === 40) {
95
- if (!isOpen) setFocused(0);
96
- setIsOpen(!isOpen);
91
+ if (matches.length === 0) {
92
+ setInput('');
97
93
  }
98
94
  }
99
95
  };
@@ -112,12 +108,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
112
108
  setPlaceholderSearch(placeholder || '');
113
109
  }
114
110
  }, [isOpen]);
115
- React.useEffect(function () {
116
- document.addEventListener('keypress', handleKeyPress);
117
- return function () {
118
- document.removeEventListener('keypress', handleKeyPress);
119
- };
120
- });
121
111
  React.useEffect(function () {
122
112
  setIsLoading(false);
123
113
  if (selectedValues.length > 0 && !list.some(function (x) {
@@ -137,17 +127,36 @@ var DropdownFilter = function DropdownFilter(_ref) {
137
127
  ref: styledFieldRef,
138
128
  className: (isOpen ? 'expanded ' : '').concat(size ? size : ''),
139
129
  onClick: function onClick(e) {
140
- var _inputRef$current;
130
+ if (!locked && !disabled) {
131
+ e.stopPropagation();
132
+ setIsOpen(!isOpen);
141
133
 
142
- e.stopPropagation();
143
- setIsOpen(!isOpen);
144
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
134
+ if (isOpen) {
135
+ var _inputRef$current;
136
+
137
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();
138
+ } else {
139
+ var _inputRef$current2;
140
+
141
+ (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
142
+ }
143
+ }
145
144
  },
146
145
  tabIndex: disabled || locked ? -1 : 0,
147
146
  disabled: disabled || false,
148
147
  locked: locked || false,
149
- showValidationMessage: !!activeValidationMessage,
148
+ isPlaceholder: !input,
150
149
  fontSize: buttonFontSize,
150
+ showValidationMessage: !!activeValidationMessage,
151
+ onKeyPress: function onKeyPress(e) {
152
+ if (e.key === 'Enter') {
153
+ var _inputRef$current3;
154
+
155
+ setIsOpen(true);
156
+ (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.focus();
157
+ }
158
+ },
159
+ onMouseDown: defaultOnMouseDownHandler,
151
160
  "data-testid": "otherdiv_".concat(id),
152
161
  children: [/*#__PURE__*/_jsx(InputField, {
153
162
  ref: inputRef,
@@ -168,12 +177,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
168
177
  }
169
178
  }
170
179
  },
171
- onClick: function onClick(e) {
172
- if (!locked && !disabled) {
173
- e.stopPropagation();
174
- setIsOpen(!isOpen);
175
- }
176
- },
177
180
  onFocus: function onFocus() {
178
181
  return setPlaceholderSearch('');
179
182
  },
@@ -181,15 +184,12 @@ var DropdownFilter = function DropdownFilter(_ref) {
181
184
  return setPlaceholderSearch(placeholder || '');
182
185
  },
183
186
  required: required,
184
- tabIndex: disabled || locked ? -1 : 0,
187
+ tabIndex: -1,
185
188
  disabled: disabled || false
186
189
  }), isLoading ? /*#__PURE__*/_jsx(LoadingIndicator, {
187
190
  size: Size.Small,
188
191
  color: COLORS.neutral_600
189
192
  }) : null, /*#__PURE__*/_jsx("div", {
190
- onClick: function onClick() {
191
- return setIsOpen(!isOpen);
192
- },
193
193
  className: 'dropdown-arrow',
194
194
  children: isOpen && !locked && !disabled ? /*#__PURE__*/_jsx(ArrowDropUp, {
195
195
  size: "24px",
@@ -205,11 +205,8 @@ var DropdownFilter = function DropdownFilter(_ref) {
205
205
  var renderButtonDropdown = function renderButtonDropdown() {
206
206
  return /*#__PURE__*/_jsx(ButtonDropdownWrapper, {
207
207
  onClick: function onClick(e) {
208
- var _inputRef$current2;
209
-
210
208
  e.stopPropagation();
211
209
  setIsOpen(!isOpen);
212
- (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
213
210
  },
214
211
  disabled: disabled,
215
212
  locked: locked,
@@ -217,6 +214,8 @@ var DropdownFilter = function DropdownFilter(_ref) {
217
214
  ref: styledFieldRef,
218
215
  className: (isOpen ? 'expanded ' : '').concat(size ? size + ' ' : '').concat(isButton ? 'button' : ''),
219
216
  tabIndex: disabled || locked ? -1 : 0,
217
+ onKeyPress: handleKeyPress,
218
+ onMouseDown: defaultOnMouseDownHandler,
220
219
  disabled: disabled || false,
221
220
  locked: locked || false,
222
221
  showValidationMessage: !!activeValidationMessage,
@@ -228,9 +227,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
228
227
  size: Size.Small,
229
228
  color: COLORS.neutral_600
230
229
  }) : null, /*#__PURE__*/_jsx("div", {
231
- onClick: function onClick() {
232
- return setIsOpen(!isOpen);
233
- },
234
230
  className: 'dropdown-arrow',
235
231
  children: isOpen && !locked && !disabled ? /*#__PURE__*/_jsx(ArrowDropUp, {
236
232
  size: "24px",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/DropdownFilter.tsx"],"names":["React","COLORS","ArrowDropDown","ArrowDropUp","Information","TechnicalWarning","LoadingIndicator","StyledField","Dropdown","ButtonDropdownWrapper","InputField","DropdownContent","Size","AutofilledMessage","WarningMessage","DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","scrollable","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","focused","setFocused","styledFieldRef","useRef","inputRef","handleKeyPress","e","current","contains","target","keyCode","matches","filter","c","label","toLowerCase","length","useEffect","some","x","document","addEventListener","removeEventListener","renderStandardDropdown","concat","stopPropagation","focus","Math","floor","random","value","Small","neutral_600","renderButtonDropdown","itemsType","multiSelect","action","onValueUpdate","values","val","items","map","customContent","warning_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { COLORS } from '../styles';\nimport { ArrowDropDown, ArrowDropUp, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { StyledField, Dropdown, ButtonDropdownWrapper, InputField } from './CommonStyling';\nimport DropdownContent from './DropdownContent';\nimport { Size } from '../types'\nimport { AutofilledMessage, WarningMessage } from '../InputFields/styling';\n\nexport interface DropdownFilterItem {\n label: string;\n customContent?: React.ReactNode;\n}\n\ninterface DropdownFilterProps {\n id: string;\n list: DropdownFilterItem[];\n placeholder?: string;\n onSelect?: (value: string) => void;\n onInputChange?: (input: string) => void;\n initalValue?: string;\n required?: boolean;\n disableSorting?: boolean;\n messageOnNoResults?: string;\n disabled?: boolean;\n locked?: boolean;\n isButton?: boolean;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: Size.Small | Size.Medium;\n scrollable?: boolean;\n buttonFontSize?: string;\n keepInitialValue?: boolean;\n icon?: React.ReactNode;\n margin?: string;\n}\n\nconst DropdownFilter = ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n initalValue,\n required,\n disableSorting,\n messageOnNoResults,\n disabled,\n locked,\n scrollable,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\n buttonFontSize,\n keepInitialValue,\n icon,\n margin = '4px 0',\n}: DropdownFilterProps) => {\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [isLoading, setIsLoading] = React.useState<Boolean>(false);\n const [input, setInput] = React.useState<string>(initalValue ?? '');\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const styledFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleKeyPress = (e: any) => {\n if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {\n if (e.keyCode === 13 && !locked) {\n const matches = list?.filter((c) => c.label.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0].label);\n setInput(matches[0].label);\n }\n if(!isOpen)\n setFocused(0);\n setIsOpen(!isOpen);\n if (matches.length === 0) {\n setInput('');\n }\n } else if (e.keyCode === 40) {\n if(!isOpen)\n setFocused(0);\n setIsOpen(!isOpen);\n }\n }\n };\n\n React.useEffect(() => {\n if (initalValue || initalValue === '') {\n setInput(initalValue);\n setRestartFilter(true);\n }\n }, [initalValue]);\n\n React.useEffect(() => {\n if (!isOpen && !list.some(x => x.label == input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n document.addEventListener('keypress', handleKeyPress);\n return () => {\n document.removeEventListener('keypress', handleKeyPress);\n };\n });\n\n React.useEffect(() => {\n setIsLoading(false);\n if (selectedValues.length > 0 && !list.some(x => x.label == input))\n setSelectedValues([]);\n\n if(list.some(x => x.label == input))\n {\n setSelectedValues([input]);\n onSelect && onSelect(input);\n }\n }, [input]);\n\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '')}\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n inputRef.current?.focus();\n }}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}\n data-testid={`otherdiv_${id}`}>\n <InputField\n ref={inputRef}\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\n type=\"search\"\n placeholder={placeholderSearch}\n value={input}\n className={size ? `${size} value` : 'value'}\n onChange={(e: any) => {\n if (!locked && !disabled) {\n setRestartFilter(false);\n setIsLoading(true);\n setIsOpen(true);\n setInput(e.target.value);\n if (onInputChange) {\n onInputChange(e.target.value || '');\n }\n }\n }}\n onClick={(e: any) => {\n if (!locked && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }\n }}\n onFocus={() => setPlaceholderSearch('')}\n onBlur={() => setPlaceholderSearch(placeholder || '')}\n required={required}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n />\n\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} /> : null}\n\n <div onClick={() => setIsOpen(!isOpen)} className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n );\n };\n\n const renderButtonDropdown = () => (\n <ButtonDropdownWrapper\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n inputRef.current?.focus();\n }}\n disabled={disabled}\n locked={locked}>\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size + ' ' : '').concat(isButton ? 'button' : '')}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}>\n {icon}\n <div className={'value'}>{initalValue && keepInitialValue ? initalValue : input || placeholderSearch}</div>\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} /> : null}\n <div onClick={() => setIsOpen(!isOpen)} className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n </ButtonDropdownWrapper>\n );\n\n return (\n <>\n <Dropdown isButton={isButton || false} disabled={disabled} locked={locked} className={size ? size : ''} margin={margin}>\n {!isButton && renderStandardDropdown()}\n {!!isButton && renderButtonDropdown()}\n {!locked && !disabled && (\n <DropdownContent\n isOpen={isOpen}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n hideOnClickOutside={true}\n size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {},\n onValueUpdate: (values: string[]) => {\n const val = values[0] ?? '';\n setRestartFilter(true);\n setInput(val);\n },\n items: list.map(x => ({ value: x.label, customContent: x.customContent }))\n }}\n filter={!restartFilter ? input : ''}\n setIsOpen={setIsOpen}\n alignLeft={false}\n isButton={isButton || false}\n id={`${id}_dropdowncontent`} />\n )}\n </Dropdown>\n {activeValidationMessage && (\n <WarningMessage className={size || ''}>\n <TechnicalWarning size=\"20px\" color={COLORS.warning_400} />\n <span>{activeValidationMessage}</span>\n </WarningMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage className={size || ''}>\n <Information size=\"20px\" color={COLORS.neutral_600} />\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n};\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.js"}
1
+ {"version":3,"sources":["../../src/Dropdown/DropdownFilter.tsx"],"names":["React","COLORS","ArrowDropDown","ArrowDropUp","Information","TechnicalWarning","LoadingIndicator","StyledField","Dropdown","ButtonDropdownWrapper","InputField","DropdownContent","Size","AutofilledMessage","WarningMessage","defaultOnMouseDownHandler","useFocusVisibleRef","DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","scrollable","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","focused","setFocused","inputRef","useRef","styledFieldRef","handleKeyPress","e","key","matches","filter","c","label","toLowerCase","length","useEffect","some","x","renderStandardDropdown","concat","stopPropagation","current","blur","focus","Math","floor","random","target","value","Small","neutral_600","renderButtonDropdown","itemsType","multiSelect","action","onValueUpdate","values","val","items","map","customContent","warning_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {COLORS} from '../styles';\nimport {ArrowDropDown, ArrowDropUp, Information, TechnicalWarning} from '../icons/systemicons/SystemIcons';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport {StyledField, Dropdown, ButtonDropdownWrapper, InputField} from './CommonStyling';\nimport DropdownContent from './DropdownContent';\nimport {Size} from '../types'\nimport {AutofilledMessage, WarningMessage} from '../InputFields/styling';\nimport {defaultOnMouseDownHandler, useFocusVisibleRef} from '../common';\n\nexport interface DropdownFilterItem {\n label: string;\n customContent?: React.ReactNode;\n}\n\ninterface DropdownFilterProps {\n id: string;\n list: DropdownFilterItem[];\n placeholder?: string;\n onSelect?: (value: string) => void;\n onInputChange?: (input: string) => void;\n initalValue?: string;\n required?: boolean;\n disableSorting?: boolean;\n messageOnNoResults?: string;\n disabled?: boolean;\n locked?: boolean;\n isButton?: boolean;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: Size.Small | Size.Medium;\n scrollable?: boolean;\n buttonFontSize?: string;\n keepInitialValue?: boolean;\n icon?: React.ReactNode;\n margin?: string;\n}\n\nconst DropdownFilter = ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n initalValue,\n required,\n disableSorting,\n messageOnNoResults,\n disabled,\n locked,\n scrollable,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\n buttonFontSize,\n keepInitialValue,\n icon,\n margin = '4px 0',\n }: DropdownFilterProps) => {\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [isLoading, setIsLoading] = React.useState<Boolean>(false);\n const [input, setInput] = React.useState<string>(initalValue ?? '');\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const inputRef = React.useRef<HTMLInputElement>(null);\n const styledFieldRef = useFocusVisibleRef([inputRef]);\n\n const handleKeyPress = (e: React.KeyboardEvent<any>) => {\n if (e.key === 'Enter' && !locked) {\n const matches = list?.filter((c) => c.label.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0].label);\n setInput(matches[0].label);\n }\n if (!isOpen)\n setFocused(0);\n setIsOpen(!isOpen);\n if (matches.length === 0) {\n setInput('');\n }\n }\n };\n\n React.useEffect(() => {\n if (initalValue || initalValue === '') {\n setInput(initalValue);\n setRestartFilter(true);\n }\n }, [initalValue]);\n\n React.useEffect(() => {\n if (!isOpen && !list.some(x => x.label == input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n setIsLoading(false);\n if (selectedValues.length > 0 && !list.some(x => x.label == input))\n setSelectedValues([]);\n\n if (list.some(x => x.label == input)) {\n setSelectedValues([input]);\n onSelect && onSelect(input);\n }\n }, [input]);\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '')}\n onClick={(e: any) => {\n if (!locked && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\n if (isOpen) {\n inputRef.current?.blur();\n } else {\n inputRef.current?.focus();\n }\n }\n }}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n isPlaceholder={!input}\n fontSize={buttonFontSize}\n showValidationMessage={!!activeValidationMessage}\n onKeyPress={e => {\n if (e.key === 'Enter') {\n setIsOpen(true);\n inputRef.current?.focus();\n }\n }}\n onMouseDown={defaultOnMouseDownHandler}\n data-testid={`otherdiv_${id}`}>\n <InputField\n ref={inputRef}\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\n type=\"search\"\n placeholder={placeholderSearch}\n value={input}\n className={size ? `${size} value` : 'value'}\n onChange={(e: any) => {\n if (!locked && !disabled) {\n setRestartFilter(false);\n setIsLoading(true);\n setIsOpen(true);\n setInput(e.target.value);\n if (onInputChange) {\n onInputChange(e.target.value || '');\n }\n }\n }}\n onFocus={() => setPlaceholderSearch('')}\n onBlur={() => setPlaceholderSearch(placeholder || '')}\n required={required}\n tabIndex={-1}\n disabled={disabled || false}\n />\n\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\n\n <div className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\n </div>\n </StyledField>\n );\n };\n\n const renderButtonDropdown = () => (\n <ButtonDropdownWrapper\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n }}\n disabled={disabled}\n locked={locked}>\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size + ' ' : '').concat(isButton ? 'button' : '')}\n tabIndex={disabled || locked ? -1 : 0}\n onKeyPress={handleKeyPress}\n onMouseDown={defaultOnMouseDownHandler}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}>\n {icon}\n <div className={'value'}>{initalValue && keepInitialValue ? initalValue : input || placeholderSearch}</div>\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\n <div className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\n </div>\n </StyledField>\n </ButtonDropdownWrapper>\n );\n\n return (\n <>\n <Dropdown isButton={isButton || false} disabled={disabled} locked={locked} className={size ? size : ''}\n margin={margin}>\n {!isButton && renderStandardDropdown()}\n {!!isButton && renderButtonDropdown()}\n {!locked && !disabled && (\n <DropdownContent\n isOpen={isOpen}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n hideOnClickOutside={true}\n size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {},\n onValueUpdate: (values: string[]) => {\n const val = values[0] ?? '';\n setRestartFilter(true);\n setInput(val);\n },\n items: list.map(x => ({value: x.label, customContent: x.customContent}))\n }}\n filter={!restartFilter ? input : ''}\n setIsOpen={setIsOpen}\n alignLeft={false}\n isButton={isButton || false}\n id={`${id}_dropdowncontent`}/>\n )}\n </Dropdown>\n {activeValidationMessage && (\n <WarningMessage className={size || ''}>\n <TechnicalWarning size=\"20px\" color={COLORS.warning_400}/>\n <span>{activeValidationMessage}</span>\n </WarningMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage className={size || ''}>\n <Information size=\"20px\" color={COLORS.neutral_600}/>\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n};\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.js"}
@@ -19,7 +19,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var React = _interopRequireWildcard(require("react"));
21
21
 
22
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
22
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
23
23
 
24
24
  var _reactDatepicker = _interopRequireDefault(require("react-datepicker"));
25
25
 
@@ -31,8 +31,6 @@ var _colors = _interopRequireDefault(require("../styles/colors"));
31
31
 
32
32
  var _SystemIcons = require("../icons/systemicons/SystemIcons");
33
33
 
34
- var _index = require("../Button/index");
35
-
36
34
  var _DatepickerFieldHeader = require("./DatepickerFieldHeader");
37
35
 
38
36
  var _styles = require("../styles");
@@ -62,17 +60,17 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
62
60
  /**
63
61
  * Add custom styles.
64
62
  */
65
- var DatePickerContainer = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n \n .react-datepicker-popper{\n z-index: ", "; \n }\n\n > div {\n display: block;\n ", "\n\n .react-datepicker {\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgb(0 0 0 / 15%);\n border: 1px solid #e5e5e5;\n }\n\n .react-datepicker__navigation {\n line-height: normal;\n text-indent: inherit;\n border: none;\n border-radius: 4px;\n height: 32px;\n width: 32px;\n outline: none;\n margin: 0px;\n color: transparent;\n\n &:hover {\n background: ", ";\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n }\n\n &:focus {\n background: ", ";\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n }\n\n &::before {\n text-align: center;\n display: inline-block;\n content: '';\n height: 32px;\n width: 32px;\n vertical-align: middle;\n }\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n }\n\n .react-datepicker__month-container,\n .react-datepicker__year--container {\n width: 336px;\n }\n\n .react-datepicker__month {\n margin: 0px;\n }\n\n .react-datepicker__triangle {\n left: 50% !important;\n display: none;\n }\n .react-datepicker-popper[data-placement^='bottom'] {\n margin-top: 0;\n }\n\n .react-datepicker-popper[data-placement^='bottom'] .react-datepicker__triangle {\n border-bottom-color: ", ";\n }\n\n .react-datepicker__header {\n border-bottom: 1px solid ", ";\n background: ", ";\n height: ", ";\n padding-top: 0px;\n }\n\n .react-datepicker__current-month {\n height: 48px;\n display: inline-flex;\n align-items: center;\n margin-right: 5px;\n\n ", "\n }\n\n .react-datepicker__year {\n max-height: 300px;\n overflow-y: scroll;\n\n ", "\n }\n\n .react-datepicker__year-wrapper {\n max-width: 100%;\n justify-content: space-around;\n }\n\n .react-datepicker__day-name {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n margin: 0px;\n width: 48px;\n\n ", "\n }\n\n .react-datepicker__year-text {\n background: ", ";\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin-top: 20px;\n padding-top: 10px;\n padding-bottom: 10px;\n\n ", "\n\n &.react-datepicker__year-text--disabled {\n display: none;\n }\n\n &.react-datepicker__day--keyboard-selected {\n color: ", ";\n background: ", ";\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ", ";\n background: ", ";\n }\n\n &:focus {\n color: ", ";\n background: ", ";\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n outline: none;\n }\n\n &.react-datepicker__year-text--selected {\n color: ", " !important;\n background: ", " !important;\n }\n }\n\n .react-datepicker__day {\n background: ", ";\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n width: 40px;\n margin: 4px;\n\n ", "\n &.react-datepicker__day--keyboard-selected {\n color: ", ";\n background: ", ";\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ", ";\n background: ", ";\n }\n\n &:focus {\n color: ", ";\n background: ", ";\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n outline: none;\n }\n\n &.react-datepicker__day--selected {\n color: ", " !important;\n background: ", " !important;\n }\n\n &.react-datepicker__day--today {\n border-radius: 0.3rem;\n color: ", ";\n background: ", ";\n\n &:hover {\n color: ", ";\n background: ", ";\n }\n\n &:focus {\n color: ", ";\n background: ", ";\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n outline: none;\n }\n }\n }\n }\n"])), _zIndexes.Z_INDEXES.dropdown, function (props) {
63
+ var DatePickerContainer = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\n .react-datepicker-popper {\n z-index: ", ";\n }\n\n > div {\n display: block;\n\n ", "\n .react-datepicker {\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgb(0 0 0 / 15%);\n border: 1px solid #e5e5e5;\n }\n\n .react-datepicker__navigation {\n line-height: normal;\n text-indent: inherit;\n border: none;\n border-radius: 4px;\n height: 32px;\n width: 32px;\n outline: none;\n margin: 0px;\n color: transparent;\n\n &:hover {\n background: ", ";\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n }\n\n &:focus {\n background: ", ";\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n }\n\n &::before {\n text-align: center;\n display: inline-block;\n content: '';\n height: 32px;\n width: 32px;\n vertical-align: middle;\n }\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n }\n\n .react-datepicker__month-container,\n .react-datepicker__year--container {\n width: 336px;\n }\n\n .react-datepicker__month {\n margin: 0px;\n }\n\n .react-datepicker__triangle {\n left: 50% !important;\n display: none;\n }\n\n .react-datepicker-popper[data-placement^='bottom'] {\n margin-top: 0;\n }\n\n .react-datepicker-popper[data-placement^='bottom'] .react-datepicker__triangle {\n border-bottom-color: ", ";\n }\n\n .react-datepicker__header {\n border-bottom: 1px solid ", ";\n background: ", ";\n height: ", ";\n padding-top: 0px;\n }\n\n .react-datepicker__current-month {\n height: 48px;\n display: inline-flex;\n align-items: center;\n margin-right: 5px;\n\n ", "\n }\n\n .react-datepicker__year {\n max-height: 300px;\n overflow-y: scroll;\n\n ", "\n }\n\n .react-datepicker__year-wrapper {\n max-width: 100%;\n justify-content: space-around;\n }\n\n .react-datepicker__day-name {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n margin: 0px;\n width: 48px;\n\n ", "\n }\n\n .react-datepicker__year-text {\n background: ", ";\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin-top: 20px;\n padding-top: 10px;\n padding-bottom: 10px;\n\n ", "\n &.react-datepicker__year-text--disabled {\n display: none;\n }\n\n &.react-datepicker__day--keyboard-selected {\n color: ", ";\n background: ", ";\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ", ";\n background: ", ";\n }\n\n &:focus {\n color: ", ";\n background: ", ";\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n outline: none;\n }\n\n &.react-datepicker__year-text--selected {\n color: ", " !important;\n background: ", " !important;\n }\n }\n\n .react-datepicker__day {\n background: ", ";\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n width: 40px;\n margin: 4px;\n\n ", "\n &.react-datepicker__day--keyboard-selected {\n color: ", ";\n background: ", ";\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ", ";\n background: ", ";\n }\n\n &:focus {\n color: ", ";\n background: ", ";\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n outline: none;\n }\n\n &.react-datepicker__day--selected {\n color: ", " !important;\n background: ", " !important;\n }\n\n &.react-datepicker__day--today {\n border-radius: 0.3rem;\n color: ", ";\n background: ", ";\n\n &:hover {\n color: ", ";\n background: ", ";\n }\n\n &:focus {\n color: ", ";\n background: ", ";\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n outline: none;\n }\n }\n }\n }\n"])), _zIndexes.Z_INDEXES.dropdown, function (props) {
66
64
  return props.margin ? "margin: ".concat(props.margin, ";") : '';
67
65
  }, _colors.default.primary_20, _colors.default.primary_100, _colors.default.focus_25, _colors.default.focus, _colors.default.neutral_20, _colors.default.neutral_200, _colors.default.neutral_20, function (props) {
68
66
  return !props.yearPicker ? '96px' : '54px';
69
67
  }, (0, _typography.ComponentSStyling)(_styles.ComponentTextStyle.Bold, _colors.default.neutral_600), _styles.scrollBarStyling, (0, _typography.ComponentMStyling)(_styles.ComponentTextStyle.Regular, _colors.default.neutral_600), _colors.default.white, (0, _typography.ComponentMStyling)(_styles.ComponentTextStyle.Regular, _colors.default.neutral_600), _colors.default.neutral_600, _colors.default.white, _colors.default.primary_700, _colors.default.primary_20, _colors.default.primary_800, _colors.default.primary_100, _colors.default.focus_25, _colors.default.focus, _colors.default.white, _colors.default.primary_500, _colors.default.white, (0, _typography.ComponentMStyling)(_styles.ComponentTextStyle.Regular, _colors.default.neutral_600), _colors.default.neutral_600, _colors.default.white, _colors.default.primary_700, _colors.default.primary_20, _colors.default.primary_800, _colors.default.primary_100, _colors.default.focus_25, _colors.default.focus, _colors.default.white, _colors.default.primary_500, _colors.default.neutral_700, _colors.default.neutral_100, _colors.default.primary_700, _colors.default.primary_20, _colors.default.primary_800, _colors.default.primary_100, _colors.default.focus_25, _colors.default.focus);
70
68
 
71
- var DatepickerRow = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n position: relative;\n\n > button {\n position: absolute;\n right: 4px;\n top: 4px;\n\n svg {\n }\n }\n\n ", "\n &:focus-within {\n -webkit-box-shadow: inset 0px 0px 0px 2px ", ";\n -moz-box-shadow: inset 0px 0px 0px 2px ", ";\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n"])), function (props) {
72
- return props !== null && props !== void 0 && props.disabled || props !== null && props !== void 0 && props.locked ? '' : (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n &:hover {\n svg,\n svg path {\n fill: ", " !important;\n }\n }\n "])), _colors.default.primary_600);
73
- }, _colors.default.primary_800, _colors.default.primary_800, _colors.default.primary_800);
69
+ var IconWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n pointer-events: none;\n position: absolute;\n right: 16px;\n width: 24px;\n height: 24px;\n z-index: ", ";\n color: ", ";\n"])), _zIndexes.Z_INDEXES.focus + 1, _colors.default.neutral_600);
70
+
71
+ var DatepickerRow = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n align-items: center;\n"])));
74
72
 
75
- var StyledInputFieldStyling = (0, _styledComponents.default)(_styling.InputFieldStyling)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n &:hover {\n box-shadow: inset 0px 0px 0px 2px ", ";\n ::placeholder {\n color: ", ";\n }\n cursor: pointer;\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n box-shadow: inset 0px 0px 0px 2px ", ";\n ::placeholder {\n color: ", ";\n }\n }\n &:disabled {\n box-shadow: none;\n background-color: ", ";\n span {\n color: ", ";\n }\n &::after {\n background-color: ", ";\n }\n }\n"])), _colors.default.primary_200, _colors.default.primary_600, _colors.default.primary_20, _colors.default.primary_600, _colors.default.primary_100, _colors.default.primary_800, _colors.default.primary_300, _colors.default.primary_800, _colors.default.white, _colors.default.neutral_300, _colors.default.white);
73
+ var StyledInputFieldStyling = (0, _styledComponents.default)(_styling.InputFieldStyling)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n &::placeholder {\n color: ", ";\n }\n \n &:focus:not(.focus-visible) {\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &:hover {\n box-shadow: inset 0px 0px 0px 2px ", ";\n\n ::placeholder {\n color: ", ";\n }\n\n cursor: pointer;\n background-color: ", ";\n color: ", ";\n }\n\n &:active,\n &.open {\n box-shadow: inset 0px 0px 0px 2px ", ";\n background-color: ", ";\n color: ", ";\n\n ::placeholder {\n color: ", ";\n }\n }\n\n &:disabled {\n box-shadow: none;\n background-color: ", ";\n }\n\n &:hover ~ ", " {\n color: ", ";\n }\n\n &:active ~ ", ",\n &.open ~ ", " {\n color: ", ";\n }\n\n &:disabled ~ ", ",\n &.locked ~ ", " {\n color: ", ";\n }\n"])), _colors.default.neutral_500, _colors.default.primary_300, _colors.default.primary_200, _colors.default.primary_700, _colors.default.primary_20, _colors.default.primary_700, _colors.default.primary_300, _colors.default.primary_100, _colors.default.primary_800, _colors.default.primary_800, _colors.default.white, IconWrapper, _colors.default.primary_700, IconWrapper, IconWrapper, _colors.default.primary_800, IconWrapper, IconWrapper, _colors.default.neutral_300);
76
74
 
77
75
  var DatepickerField = function DatepickerField(_ref) {
78
76
  var id = _ref.id,
@@ -108,6 +106,11 @@ var DatepickerField = function DatepickerField(_ref) {
108
106
  _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
109
107
  openAt = _React$useState6[0],
110
108
  setOpenAt = _React$useState6[1];
109
+
110
+ var _React$useState7 = React.useState(false),
111
+ _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
112
+ open = _React$useState8[0],
113
+ setOpen = _React$useState8[1];
111
114
  /**
112
115
  * Format the date in a specific way.
113
116
  */
@@ -134,9 +137,21 @@ var DatepickerField = function DatepickerField(_ref) {
134
137
  datepickerRef.current.setOpen(true); //setOpenAt(null);
135
138
  }
136
139
  }, [openAt]);
140
+ React.useEffect(function () {
141
+ if (!open) {
142
+ var _inputRef$current;
143
+
144
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();
145
+ }
146
+ }, [open]);
137
147
 
138
148
  var handleCalendarOpen = function handleCalendarOpen() {
139
149
  if (openAt) setOpenAt(null);
150
+ setOpen(true);
151
+ };
152
+
153
+ var handleCalendarClose = function handleCalendarClose() {
154
+ setOpen(false);
140
155
  };
141
156
 
142
157
  var maxDate = new Date(value && new Date(value) > new Date() ? new Date(value) : new Date());
@@ -145,6 +160,13 @@ var DatepickerField = function DatepickerField(_ref) {
145
160
 
146
161
  var minDate = new Date(value && new Date(value) < new Date() ? new Date(value) : new Date());
147
162
  var itemsNumber = Math.round((minDate.getFullYear() - (yearsBeforeCurrentDate !== null && yearsBeforeCurrentDate !== void 0 ? yearsBeforeCurrentDate : 15)) / 5);
163
+
164
+ var handleKeyDown = function handleKeyDown(e) {
165
+ if (e.key === 'Escape' || e.key === 'Esc') {
166
+ setOpen(false);
167
+ }
168
+ };
169
+
148
170
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
149
171
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DatePickerContainer, {
150
172
  yearPicker: yearPickerMode,
@@ -152,7 +174,18 @@ var DatepickerField = function DatepickerField(_ref) {
152
174
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactDatepicker.default, {
153
175
  ref: datepickerRef,
154
176
  onCalendarOpen: handleCalendarOpen,
177
+ onCalendarClose: handleCalendarClose,
178
+ open: open,
179
+ onKeyDown: handleKeyDown,
180
+ onClickOutside: function onClickOutside() {
181
+ return setOpen(false);
182
+ },
183
+ onInputClick: function onInputClick() {
184
+ return setOpen(!open);
185
+ },
155
186
  onChange: function onChange(e) {
187
+ setOpen(false);
188
+
156
189
  if (_onChange) {
157
190
  if (yearPickerMode) {
158
191
  var newDate = new Date();
@@ -172,6 +205,7 @@ var DatepickerField = function DatepickerField(_ref) {
172
205
  maxDate: yearPickerMode ? maxDate : undefined,
173
206
  selected: value,
174
207
  openToDate: openAt !== null && openAt !== void 0 ? openAt : undefined,
208
+ preventOpenOnFocus: true,
175
209
  shouldCloseOnSelect: true,
176
210
  renderCustomHeader: yearPicker ? function (params) {
177
211
  return /*#__PURE__*/React.createElement(_DatepickerFieldHeader.DatepickerFieldHeader, _objectSpread(_objectSpread({}, params), {}, {
@@ -184,7 +218,6 @@ var DatepickerField = function DatepickerField(_ref) {
184
218
  customInput: /*#__PURE__*/(0, _jsxRuntime.jsx)(_styling.InputWrapper, {
185
219
  disabled: disabled,
186
220
  locked: locked,
187
- tabIndex: disabled ? -1 : 0,
188
221
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
189
222
  style: {
190
223
  display: 'block'
@@ -197,20 +230,18 @@ var DatepickerField = function DatepickerField(_ref) {
197
230
  ref: inputRef,
198
231
  type: "text",
199
232
  name: "datepicker",
233
+ onKeyDown: function onKeyDown(e) {
234
+ return e.key === 'Enter' && setOpen(true);
235
+ },
200
236
  readOnly: true,
201
- className: hasError ? 'error' : '',
202
- tabIndex: 0,
237
+ className: (hasError ? 'error' : '') + (locked ? ' locked' : '') + (open ? ' open' : ''),
238
+ tabIndex: disabled || locked ? -1 : 0,
203
239
  autoComplete: autoComplete,
204
240
  placeholder: placeholder,
205
241
  disabled: disabled,
206
242
  locked: locked,
207
243
  required: required
208
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.IconButton, {
209
- variant: "secondary",
210
- shape: "square",
211
- tabIndex: -1,
212
- action: function action() {},
213
- disabled: disabled || locked,
244
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(IconWrapper, {
214
245
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.Calendar, {
215
246
  size: "24"
216
247
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/InputFields/DatepickerField.tsx"],"names":["DatePickerContainer","styled","div","Z_INDEXES","dropdown","props","margin","COLORS","primary_20","primary_100","focus_25","focus","neutral_20","neutral_200","yearPicker","ComponentTextStyle","Bold","neutral_600","scrollBarStyling","Regular","white","primary_700","primary_800","primary_500","neutral_700","neutral_100","DatepickerRow","disabled","locked","css","primary_600","StyledInputFieldStyling","InputFieldStyling","primary_200","primary_300","neutral_300","DatepickerField","id","onChange","hasError","value","validationMessage","dateFormat","autoComplete","placeholder","required","yearsBeforeCurrentDate","yearsAfterCurrentDate","inputRef","datepickerRef","React","useRef","useState","activeMonthPage","setActiveMonthPage","yearPickerMode","setYearPickerMode","openAt","setOpenAt","useEffect","current","format","selectedDate","document","getElementsByClassName","dropdownParent","parentElement","scrollTop","offsetTop","offsetHeight","setOpen","handleCalendarOpen","maxDate","Date","setFullYear","getFullYear","minDate","itemsNumber","Math","round","e","newDate","setMonth","en","undefined","params","createElement","DatepickerFieldHeader","customHeaderCount","display","critical_400"],"mappings":"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","sourcesContent":["/**\n * Import react libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled, {css} from 'styled-components';\nimport DatePicker from 'react-datepicker';\nimport en from 'date-fns/locale/en-GB';\nimport moment from 'moment';\n\n/**\n * Import custom components.\n */\nimport COLORS from '../styles/colors';\nimport {Calendar, TechnicalWarning} from '../icons/systemicons/SystemIcons';\nimport {IconButton} from '../Button/index';\nimport {DatepickerFieldHeader, DatepickerFieldHeaderParams} from './DatepickerFieldHeader';\nimport {ComponentTextStyle, scrollBarStyling} from '../styles';\n\n/**\n * Import custom styles.\n */\nimport {ErrorMessage, InputFieldStyling, InputWrapper} from './styling';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport {ComponentMStyling, ComponentSStyling} from '../styles/typography';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport {useFocusVisibleRef} from '../common/FocusVisible';\n\n/**\n * Add custom types.\n */\ntype DatepickerFieldProps = {\n id: string;\n disabled?: boolean;\n locked?: boolean;\n onChange?: (date: Date) => void;\n hasError?: boolean;\n value?: Date;\n dateFormat?: string;\n validationMessage?: string;\n autoComplete?: string;\n placeholder?: string;\n required?: boolean;\n yearPicker?: boolean;\n yearsBeforeCurrentDate?: number;\n yearsAfterCurrentDate?: number;\n margin?: string;\n};\n\n/**\n * Add custom styles.\n */\nconst DatePickerContainer = styled.div<{ yearPicker: boolean; margin: string }>`\n \n .react-datepicker-popper{\n z-index: ${Z_INDEXES.dropdown}; \n }\n\n > div {\n display: block;\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n\n .react-datepicker {\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgb(0 0 0 / 15%);\n border: 1px solid #e5e5e5;\n }\n\n .react-datepicker__navigation {\n line-height: normal;\n text-indent: inherit;\n border: none;\n border-radius: 4px;\n height: 32px;\n width: 32px;\n outline: none;\n margin: 0px;\n color: transparent;\n\n &:hover {\n background: ${COLORS.primary_20};\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n }\n\n &:focus {\n background: ${COLORS.primary_100};\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n }\n\n &::before {\n text-align: center;\n display: inline-block;\n content: '';\n height: 32px;\n width: 32px;\n vertical-align: middle;\n }\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n }\n\n .react-datepicker__month-container,\n .react-datepicker__year--container {\n width: 336px;\n }\n\n .react-datepicker__month {\n margin: 0px;\n }\n\n .react-datepicker__triangle {\n left: 50% !important;\n display: none;\n }\n .react-datepicker-popper[data-placement^='bottom'] {\n margin-top: 0;\n }\n\n .react-datepicker-popper[data-placement^='bottom'] .react-datepicker__triangle {\n border-bottom-color: ${COLORS.neutral_20};\n }\n\n .react-datepicker__header {\n border-bottom: 1px solid ${COLORS.neutral_200};\n background: ${COLORS.neutral_20};\n height: ${(props) => (!props.yearPicker ? '96px' : '54px')};\n padding-top: 0px;\n }\n\n .react-datepicker__current-month {\n height: 48px;\n display: inline-flex;\n align-items: center;\n margin-right: 5px;\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n\n .react-datepicker__year {\n max-height: 300px;\n overflow-y: scroll;\n\n ${scrollBarStyling}\n }\n\n .react-datepicker__year-wrapper {\n max-width: 100%;\n justify-content: space-around;\n }\n\n .react-datepicker__day-name {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n margin: 0px;\n width: 48px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n }\n\n .react-datepicker__year-text {\n background: ${COLORS.white};\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin-top: 20px;\n padding-top: 10px;\n padding-bottom: 10px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n\n &.react-datepicker__year-text--disabled {\n display: none;\n }\n\n &.react-datepicker__day--keyboard-selected {\n color: ${COLORS.neutral_600};\n background: ${COLORS.white};\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n color: ${COLORS.primary_800};\n background: ${COLORS.primary_100};\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n outline: none;\n }\n\n &.react-datepicker__year-text--selected {\n color: ${COLORS.white} !important;\n background: ${COLORS.primary_500} !important;\n }\n }\n\n .react-datepicker__day {\n background: ${COLORS.white};\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n width: 40px;\n margin: 4px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n &.react-datepicker__day--keyboard-selected {\n color: ${COLORS.neutral_600};\n background: ${COLORS.white};\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n color: ${COLORS.primary_800};\n background: ${COLORS.primary_100};\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n outline: none;\n }\n\n &.react-datepicker__day--selected {\n color: ${COLORS.white} !important;\n background: ${COLORS.primary_500} !important;\n }\n\n &.react-datepicker__day--today {\n border-radius: 0.3rem;\n color: ${COLORS.neutral_700};\n background: ${COLORS.neutral_100};\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n color: ${COLORS.primary_800};\n background: ${COLORS.primary_100};\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n outline: none;\n }\n }\n }\n }\n`;\n\nconst DatepickerRow = styled.div<{ disabled?: boolean; locked?: boolean }>`\n display: flex;\n flex-direction: row;\n position: relative;\n\n > button {\n position: absolute;\n right: 4px;\n top: 4px;\n\n svg {\n }\n }\n\n ${(props) =>\n props?.disabled || props?.locked\n ? ''\n : css`\n &:hover {\n svg,\n svg path {\n fill: ${COLORS.primary_600} !important;\n }\n }\n `}\n &:focus-within {\n -webkit-box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n -moz-box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n }\n`;\n\nconst StyledInputFieldStyling = styled(InputFieldStyling)`\n &:hover {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_200};\n ::placeholder {\n color: ${COLORS.primary_600};\n }\n cursor: pointer;\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_600};\n }\n &:active {\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_300};\n ::placeholder {\n color: ${COLORS.primary_800};\n }\n }\n &:disabled {\n box-shadow: none;\n background-color: ${COLORS.white};\n span {\n color: ${COLORS.neutral_300};\n }\n &::after {\n background-color: ${COLORS.white};\n }\n }\n`;\n\nconst DatepickerField = ({\n id,\n disabled,\n locked,\n onChange,\n hasError,\n value,\n validationMessage,\n dateFormat,\n autoComplete,\n placeholder,\n required,\n yearPicker,\n yearsBeforeCurrentDate,\n yearsAfterCurrentDate,\n margin,\n}: DatepickerFieldProps) => {\n // Globally used variables within the component\n const inputRef = useFocusVisibleRef();\n const datepickerRef = React.useRef<any>(null);\n const [activeMonthPage, setActiveMonthPage] = React.useState<number>(-1);\n const [yearPickerMode, setYearPickerMode] = React.useState<boolean>(false);\n const [openAt, setOpenAt] = React.useState<Date | null>(null);\n\n /**\n * Format the date in a specific way.\n */\n React.useEffect(() => {\n if (value) inputRef.current.value = moment(value).format(dateFormat ? dateFormat : 'MMMM Do, YYYY');\n }, [value]);\n\n React.useEffect(() => {\n if (yearPickerMode) {\n //unfortunately, since there are no refs, and year pickers is rendered not by our code, but by 'react-datepicker'\n //we have to touch DOM directly\n const selectedDate = document.getElementsByClassName('react-datepicker__year-text--selected')[0] as HTMLElement;\n const dropdownParent = selectedDate?.parentElement?.parentElement;\n if (selectedDate && dropdownParent) dropdownParent.scrollTop = selectedDate.offsetTop - 2 * selectedDate.offsetHeight;\n }\n }, [yearPickerMode]);\n\n //we have to manually reopen the calendar when needed, to guarantee that datepicker will show selected date after year selection\n //otherwise after year selection datepicker will show January month of the selected year\n React.useEffect(() => {\n if (openAt) {\n datepickerRef.current.setOpen(true);\n //setOpenAt(null);\n }\n }, [openAt]);\n\n const handleCalendarOpen = () => {\n if (openAt) setOpenAt(null);\n };\n\n let maxDate = new Date(value && new Date(value) > new Date() ? new Date(value) : new Date());\n maxDate.setFullYear(maxDate.getFullYear() + (yearsAfterCurrentDate ?? 50));\n\n //itemsNumber - controls number of year select options generated in the dropdown\n //items related to dates higher than 'maxDate' will be hidden, thus to avoid creating hundreds of invisible divs, we divide by 5\n let minDate = new Date(value && new Date(value) < new Date() ? new Date(value) : new Date());\n const itemsNumber = Math.round((minDate.getFullYear() - (yearsBeforeCurrentDate ?? 15)) / 5);\n\n return (\n <>\n {/* Let's render the input itself */}\n <DatePickerContainer yearPicker={yearPickerMode} margin={margin || ''}>\n <DatePicker\n ref={datepickerRef}\n onCalendarOpen={handleCalendarOpen}\n onChange={(e: any) => {\n if (onChange) {\n if (yearPickerMode) {\n const newDate = new Date();\n newDate.setFullYear(e.getFullYear());\n newDate.setMonth(activeMonthPage);\n setOpenAt(newDate);\n } else onChange(e);\n }\n if (yearPickerMode) setYearPickerMode(false);\n }}\n disabled={disabled || locked}\n locale={en}\n showYearPicker={yearPickerMode}\n //we manipulate 'yearItemNumber' and 'maxDate' to guarantee number of year select options shown before and after selected year\n yearItemNumber={yearPickerMode ? itemsNumber : undefined}\n maxDate={yearPickerMode ? maxDate : undefined}\n selected={value}\n openToDate={openAt ?? undefined}\n shouldCloseOnSelect={true}\n renderCustomHeader={\n yearPicker\n ? (params: DatepickerFieldHeaderParams) =>\n React.createElement(\n DatepickerFieldHeader,\n { ...params, setActiveMonthPage, customHeaderCount: 0, yearPickerMode: yearPickerMode, setYearPickerMode: setYearPickerMode },\n null,\n )\n : undefined\n }\n customInput={\n <InputWrapper disabled={disabled} locked={locked} tabIndex={disabled ? -1 : 0}>\n <div style={{ display: 'block' }}>\n <DatepickerRow locked={locked} disabled={disabled}>\n <StyledInputFieldStyling\n id={id}\n ref={inputRef}\n type=\"text\"\n name=\"datepicker\"\n readOnly={true}\n className={hasError ? 'error' : ''}\n tabIndex={0}\n autoComplete={autoComplete}\n placeholder={placeholder}\n disabled={disabled}\n locked={locked}\n required={required}/>\n <IconButton variant=\"secondary\" shape=\"square\" tabIndex={-1} action={() => {}} disabled={disabled || locked}>\n <Calendar size=\"24\" />\n </IconButton>\n </DatepickerRow>\n </div>\n </InputWrapper>\n }\n />\n </DatePickerContainer>\n\n {/* If there is an error, let's render the error */}\n {validationMessage && (\n <ErrorMessage>\n <TechnicalWarning size=\"20px\" color={COLORS.critical_400} />\n <span>{validationMessage}</span>\n </ErrorMessage>\n )}\n </>\n );\n};\n\nexport default DatepickerField;\n"],"file":"DatepickerField.cjs"}
1
+ {"version":3,"sources":["../../src/InputFields/DatepickerField.tsx"],"names":["DatePickerContainer","styled","div","Z_INDEXES","dropdown","props","margin","COLORS","primary_20","primary_100","focus_25","focus","neutral_20","neutral_200","yearPicker","ComponentTextStyle","Bold","neutral_600","scrollBarStyling","Regular","white","primary_700","primary_800","primary_500","neutral_700","neutral_100","IconWrapper","DatepickerRow","StyledInputFieldStyling","InputFieldStyling","neutral_500","primary_300","primary_200","neutral_300","DatepickerField","id","disabled","locked","onChange","hasError","value","validationMessage","dateFormat","autoComplete","placeholder","required","yearsBeforeCurrentDate","yearsAfterCurrentDate","inputRef","datepickerRef","React","useRef","useState","activeMonthPage","setActiveMonthPage","yearPickerMode","setYearPickerMode","openAt","setOpenAt","open","setOpen","useEffect","current","format","selectedDate","document","getElementsByClassName","dropdownParent","parentElement","scrollTop","offsetTop","offsetHeight","blur","handleCalendarOpen","handleCalendarClose","maxDate","Date","setFullYear","getFullYear","minDate","itemsNumber","Math","round","handleKeyDown","e","key","newDate","setMonth","en","undefined","params","createElement","DatepickerFieldHeader","customHeaderCount","display","critical_400"],"mappings":"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","sourcesContent":["/**\n * Import react libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled, {css} from 'styled-components';\nimport DatePicker from 'react-datepicker';\nimport en from 'date-fns/locale/en-GB';\nimport moment from 'moment';\n\n/**\n * Import custom components.\n */\nimport COLORS from '../styles/colors';\nimport {Calendar, TechnicalWarning} from '../icons/systemicons/SystemIcons';\nimport {IconButton} from '../Button/index';\nimport {DatepickerFieldHeader, DatepickerFieldHeaderParams} from './DatepickerFieldHeader';\nimport {ComponentTextStyle, scrollBarStyling} from '../styles';\n\n/**\n * Import custom styles.\n */\nimport {ErrorMessage, InputFieldStyling, InputWrapper} from './styling';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport {ComponentMStyling, ComponentSStyling} from '../styles/typography';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport {useFocusVisibleRef} from '../common/FocusVisible';\n\n/**\n * Add custom types.\n */\ntype DatepickerFieldProps = {\n id: string;\n disabled?: boolean;\n locked?: boolean;\n onChange?: (date: Date) => void;\n hasError?: boolean;\n value?: Date;\n dateFormat?: string;\n validationMessage?: string;\n autoComplete?: string;\n placeholder?: string;\n required?: boolean;\n yearPicker?: boolean;\n yearsBeforeCurrentDate?: number;\n yearsAfterCurrentDate?: number;\n margin?: string;\n};\n\n/**\n * Add custom styles.\n */\nconst DatePickerContainer = styled.div<{ yearPicker: boolean; margin: string }>`\n\n .react-datepicker-popper {\n z-index: ${Z_INDEXES.dropdown};\n }\n\n > div {\n display: block;\n\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n .react-datepicker {\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgb(0 0 0 / 15%);\n border: 1px solid #e5e5e5;\n }\n\n .react-datepicker__navigation {\n line-height: normal;\n text-indent: inherit;\n border: none;\n border-radius: 4px;\n height: 32px;\n width: 32px;\n outline: none;\n margin: 0px;\n color: transparent;\n\n &:hover {\n background: ${COLORS.primary_20};\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n }\n\n &:focus {\n background: ${COLORS.primary_100};\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n }\n\n &::before {\n text-align: center;\n display: inline-block;\n content: '';\n height: 32px;\n width: 32px;\n vertical-align: middle;\n }\n\n &.react-datepicker__navigation--next::before {\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\");\n }\n\n &.react-datepicker__navigation--previous::before {\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\");\n }\n }\n\n .react-datepicker__month-container,\n .react-datepicker__year--container {\n width: 336px;\n }\n\n .react-datepicker__month {\n margin: 0px;\n }\n\n .react-datepicker__triangle {\n left: 50% !important;\n display: none;\n }\n\n .react-datepicker-popper[data-placement^='bottom'] {\n margin-top: 0;\n }\n\n .react-datepicker-popper[data-placement^='bottom'] .react-datepicker__triangle {\n border-bottom-color: ${COLORS.neutral_20};\n }\n\n .react-datepicker__header {\n border-bottom: 1px solid ${COLORS.neutral_200};\n background: ${COLORS.neutral_20};\n height: ${(props) => (!props.yearPicker ? '96px' : '54px')};\n padding-top: 0px;\n }\n\n .react-datepicker__current-month {\n height: 48px;\n display: inline-flex;\n align-items: center;\n margin-right: 5px;\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n\n .react-datepicker__year {\n max-height: 300px;\n overflow-y: scroll;\n\n ${scrollBarStyling}\n }\n\n .react-datepicker__year-wrapper {\n max-width: 100%;\n justify-content: space-around;\n }\n\n .react-datepicker__day-name {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n margin: 0px;\n width: 48px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n }\n\n .react-datepicker__year-text {\n background: ${COLORS.white};\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin-top: 20px;\n padding-top: 10px;\n padding-bottom: 10px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n &.react-datepicker__year-text--disabled {\n display: none;\n }\n\n &.react-datepicker__day--keyboard-selected {\n color: ${COLORS.neutral_600};\n background: ${COLORS.white};\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n color: ${COLORS.primary_800};\n background: ${COLORS.primary_100};\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n outline: none;\n }\n\n &.react-datepicker__year-text--selected {\n color: ${COLORS.white} !important;\n background: ${COLORS.primary_500} !important;\n }\n }\n\n .react-datepicker__day {\n background: ${COLORS.white};\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n width: 40px;\n margin: 4px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n &.react-datepicker__day--keyboard-selected {\n color: ${COLORS.neutral_600};\n background: ${COLORS.white};\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n color: ${COLORS.primary_800};\n background: ${COLORS.primary_100};\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n outline: none;\n }\n\n &.react-datepicker__day--selected {\n color: ${COLORS.white} !important;\n background: ${COLORS.primary_500} !important;\n }\n\n &.react-datepicker__day--today {\n border-radius: 0.3rem;\n color: ${COLORS.neutral_700};\n background: ${COLORS.neutral_100};\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n color: ${COLORS.primary_800};\n background: ${COLORS.primary_100};\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n outline: none;\n }\n }\n }\n }\n`;\n\nconst IconWrapper = styled.div`\n pointer-events: none;\n position: absolute;\n right: 16px;\n width: 24px;\n height: 24px;\n z-index: ${Z_INDEXES.focus + 1};\n color: ${COLORS.neutral_600};\n`;\n\nconst DatepickerRow = styled.div<{ disabled?: boolean; locked?: boolean }>`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst StyledInputFieldStyling = styled(InputFieldStyling)`\n &::placeholder {\n color: ${COLORS.neutral_500};\n }\n \n &:focus:not(.focus-visible) {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_300};\n }\n\n &:hover {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_200};\n\n ::placeholder {\n color: ${COLORS.primary_700};\n }\n\n cursor: pointer;\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_700};\n }\n\n &:active,\n &.open {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_300};\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n\n ::placeholder {\n color: ${COLORS.primary_800};\n }\n }\n\n &:disabled {\n box-shadow: none;\n background-color: ${COLORS.white};\n }\n\n &:hover ~ ${IconWrapper} {\n color: ${COLORS.primary_700};\n }\n\n &:active ~ ${IconWrapper},\n &.open ~ ${IconWrapper} {\n color: ${COLORS.primary_800};\n }\n\n &:disabled ~ ${IconWrapper},\n &.locked ~ ${IconWrapper} {\n color: ${COLORS.neutral_300};\n }\n`;\n\nconst DatepickerField = ({\n id,\n disabled,\n locked,\n onChange,\n hasError,\n value,\n validationMessage,\n dateFormat,\n autoComplete,\n placeholder,\n required,\n yearPicker,\n yearsBeforeCurrentDate,\n yearsAfterCurrentDate,\n margin,\n }: DatepickerFieldProps) => {\n // Globally used variables within the component\n const inputRef = useFocusVisibleRef();\n const datepickerRef = React.useRef<any>(null);\n const [activeMonthPage, setActiveMonthPage] = React.useState<number>(-1);\n const [yearPickerMode, setYearPickerMode] = React.useState<boolean>(false);\n const [openAt, setOpenAt] = React.useState<Date | null>(null);\n const [open, setOpen] = React.useState<boolean>(false);\n\n /**\n * Format the date in a specific way.\n */\n React.useEffect(() => {\n if (value) inputRef.current.value = moment(value).format(dateFormat ? dateFormat : 'MMMM Do, YYYY');\n }, [value]);\n\n React.useEffect(() => {\n if (yearPickerMode) {\n //unfortunately, since there are no refs, and year pickers is rendered not by our code, but by 'react-datepicker'\n //we have to touch DOM directly\n const selectedDate = document.getElementsByClassName('react-datepicker__year-text--selected')[0] as HTMLElement;\n const dropdownParent = selectedDate?.parentElement?.parentElement;\n if (selectedDate && dropdownParent) dropdownParent.scrollTop = selectedDate.offsetTop - 2 * selectedDate.offsetHeight;\n }\n }, [yearPickerMode]);\n\n //we have to manually reopen the calendar when needed, to guarantee that datepicker will show selected date after year selection\n //otherwise after year selection datepicker will show January month of the selected year\n React.useEffect(() => {\n if (openAt) {\n datepickerRef.current.setOpen(true);\n //setOpenAt(null);\n }\n }, [openAt]);\n\n React.useEffect(() => {\n if (!open) {\n inputRef.current?.blur();\n }\n }, [open]);\n\n const handleCalendarOpen = () => {\n if (openAt) setOpenAt(null);\n setOpen(true);\n };\n\n const handleCalendarClose = () => {\n setOpen(false);\n };\n\n let maxDate = new Date(value && new Date(value) > new Date() ? new Date(value) : new Date());\n maxDate.setFullYear(maxDate.getFullYear() + (yearsAfterCurrentDate ?? 50));\n\n //itemsNumber - controls number of year select options generated in the dropdown\n //items related to dates higher than 'maxDate' will be hidden, thus to avoid creating hundreds of invisible divs, we divide by 5\n let minDate = new Date(value && new Date(value) < new Date() ? new Date(value) : new Date());\n const itemsNumber = Math.round((minDate.getFullYear() - (yearsBeforeCurrentDate ?? 15)) / 5);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape' || e.key === 'Esc') {\n setOpen(false);\n }\n };\n\n return (\n <>\n {/* Let's render the input itself */}\n <DatePickerContainer yearPicker={yearPickerMode} margin={margin || ''}>\n <DatePicker\n ref={datepickerRef}\n onCalendarOpen={handleCalendarOpen}\n onCalendarClose={handleCalendarClose}\n open={open}\n onKeyDown={handleKeyDown}\n onClickOutside={() => setOpen(false)}\n onInputClick={() => setOpen(!open)}\n onChange={(e: any) => {\n setOpen(false);\n if (onChange) {\n if (yearPickerMode) {\n const newDate = new Date();\n newDate.setFullYear(e.getFullYear());\n newDate.setMonth(activeMonthPage);\n setOpenAt(newDate);\n } else onChange(e);\n }\n if (yearPickerMode) setYearPickerMode(false);\n }}\n disabled={disabled || locked}\n locale={en}\n showYearPicker={yearPickerMode}\n //we manipulate 'yearItemNumber' and 'maxDate' to guarantee number of year select options shown before and after selected year\n yearItemNumber={yearPickerMode ? itemsNumber : undefined}\n maxDate={yearPickerMode ? maxDate : undefined}\n selected={value}\n openToDate={openAt ?? undefined}\n preventOpenOnFocus={true}\n shouldCloseOnSelect={true}\n renderCustomHeader={\n yearPicker\n ? (params: DatepickerFieldHeaderParams) =>\n React.createElement(\n DatepickerFieldHeader,\n {\n ...params,\n setActiveMonthPage,\n customHeaderCount: 0,\n yearPickerMode: yearPickerMode,\n setYearPickerMode: setYearPickerMode\n },\n null,\n )\n : undefined\n }\n customInput={\n <InputWrapper disabled={disabled} locked={locked}>\n <div style={{display: 'block'}}>\n <DatepickerRow locked={locked} disabled={disabled}>\n <StyledInputFieldStyling\n id={id}\n ref={inputRef}\n type=\"text\"\n name=\"datepicker\"\n onKeyDown={(e) => e.key === 'Enter' && setOpen(true)}\n readOnly={true}\n className={(hasError ? 'error' : '') + (locked ? ' locked' : '') + (open ? ' open' : '')}\n tabIndex={disabled || locked ? -1 : 0}\n autoComplete={autoComplete}\n placeholder={placeholder}\n disabled={disabled}\n locked={locked}\n required={required}/>\n <IconWrapper>\n <Calendar size=\"24\"/>\n </IconWrapper>\n </DatepickerRow>\n </div>\n </InputWrapper>\n }\n />\n </DatePickerContainer>\n\n {/* If there is an error, let's render the error */}\n {validationMessage && (\n <ErrorMessage>\n <TechnicalWarning size=\"20px\" color={COLORS.critical_400}/>\n <span>{validationMessage}</span>\n </ErrorMessage>\n )}\n </>\n );\n};\n\nexport default DatepickerField;\n"],"file":"DatepickerField.cjs"}