@laerdal/life-react-components 1.7.0-dev.23.full → 1.7.0-dev.25
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.
|
@@ -49,7 +49,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
49
49
|
onInputChange = _ref.onInputChange,
|
|
50
50
|
initalValue = _ref.initalValue,
|
|
51
51
|
required = _ref.required,
|
|
52
|
-
disableSorting = _ref.disableSorting,
|
|
53
52
|
messageOnNoResults = _ref.messageOnNoResults,
|
|
54
53
|
disabled = _ref.disabled,
|
|
55
54
|
locked = _ref.locked,
|
|
@@ -62,47 +61,43 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
62
61
|
keepInitialValue = _ref.keepInitialValue,
|
|
63
62
|
icon = _ref.icon,
|
|
64
63
|
_ref$margin = _ref.margin,
|
|
65
|
-
margin = _ref$margin === void 0 ? '4px 0' : _ref$margin
|
|
64
|
+
margin = _ref$margin === void 0 ? '4px 0' : _ref$margin,
|
|
65
|
+
loading = _ref.loading;
|
|
66
66
|
|
|
67
67
|
var _React$useState = React.useState(false),
|
|
68
68
|
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
69
69
|
isOpen = _React$useState2[0],
|
|
70
70
|
setIsOpen = _React$useState2[1];
|
|
71
71
|
|
|
72
|
-
var _React$useState3 = React.useState(
|
|
72
|
+
var _React$useState3 = React.useState(initalValue !== null && initalValue !== void 0 ? initalValue : ''),
|
|
73
73
|
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
input = _React$useState4[0],
|
|
75
|
+
setInput = _React$useState4[1];
|
|
76
76
|
|
|
77
|
-
var _React$useState5 = React.useState(
|
|
77
|
+
var _React$useState5 = React.useState(placeholder || ''),
|
|
78
78
|
_React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
placeholderSearch = _React$useState6[0],
|
|
80
|
+
setPlaceholderSearch = _React$useState6[1];
|
|
81
81
|
|
|
82
|
-
var _React$useState7 = React.useState(
|
|
82
|
+
var _React$useState7 = React.useState(false),
|
|
83
83
|
_React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
restartFilter = _React$useState8[0],
|
|
85
|
+
setRestartFilter = _React$useState8[1];
|
|
86
86
|
|
|
87
|
-
var _React$useState9 = React.useState(
|
|
87
|
+
var _React$useState9 = React.useState([]),
|
|
88
88
|
_React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
selectedValues = _React$useState10[0],
|
|
90
|
+
setSelectedValues = _React$useState10[1];
|
|
91
91
|
|
|
92
|
-
var _React$useState11 = React.useState(
|
|
92
|
+
var _React$useState11 = React.useState(null),
|
|
93
93
|
_React$useState12 = (0, _slicedToArray2.default)(_React$useState11, 2),
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
focused = _React$useState12[0],
|
|
95
|
+
setFocused = _React$useState12[1];
|
|
96
96
|
|
|
97
|
-
var _React$useState13 = React.useState(
|
|
97
|
+
var _React$useState13 = React.useState(false),
|
|
98
98
|
_React$useState14 = (0, _slicedToArray2.default)(_React$useState13, 2),
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
var _React$useState15 = React.useState(false),
|
|
103
|
-
_React$useState16 = (0, _slicedToArray2.default)(_React$useState15, 2),
|
|
104
|
-
keyboardNavigate = _React$useState16[0],
|
|
105
|
-
setKeyboardNavigate = _React$useState16[1];
|
|
99
|
+
keyboardNavigate = _React$useState14[0],
|
|
100
|
+
setKeyboardNavigate = _React$useState14[1];
|
|
106
101
|
|
|
107
102
|
var styledFieldRef = (0, _common.useFocusVisibleRef)();
|
|
108
103
|
var inputRef = (0, _common.useFocusVisibleRef)([styledFieldRef]);
|
|
@@ -159,7 +154,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
159
154
|
}
|
|
160
155
|
}, [isOpen]);
|
|
161
156
|
React.useEffect(function () {
|
|
162
|
-
setIsLoading(false);
|
|
163
157
|
if (selectedValues.length > 0 && !list.some(function (x) {
|
|
164
158
|
return x.label == input;
|
|
165
159
|
})) setSelectedValues([]);
|
|
@@ -223,7 +217,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
223
217
|
onChange: function onChange(e) {
|
|
224
218
|
if (!locked && !disabled) {
|
|
225
219
|
setRestartFilter(false);
|
|
226
|
-
setIsLoading(true);
|
|
227
220
|
setIsOpen(true);
|
|
228
221
|
setInput(e.target.value);
|
|
229
222
|
|
|
@@ -241,7 +234,7 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
241
234
|
required: required,
|
|
242
235
|
tabIndex: disabled || locked ? -1 : 0,
|
|
243
236
|
disabled: disabled || false
|
|
244
|
-
}), input && !locked && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
|
|
237
|
+
}), input && !locked && !disabled && !loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
|
|
245
238
|
action: handleInputClear,
|
|
246
239
|
ref: clearButtonRef,
|
|
247
240
|
useTransparentBackground: true,
|
|
@@ -251,10 +244,15 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
251
244
|
},
|
|
252
245
|
variant: 'secondary',
|
|
253
246
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.Clear, {})
|
|
254
|
-
}),
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
247
|
+
}), loading && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
248
|
+
style: {
|
|
249
|
+
marginLeft: '-4xp'
|
|
250
|
+
},
|
|
251
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {
|
|
252
|
+
size: _types.Size.Small,
|
|
253
|
+
color: _styles.COLORS.neutral_600
|
|
254
|
+
})
|
|
255
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
258
256
|
className: 'dropdown-arrow',
|
|
259
257
|
children: isOpen && !locked && !disabled ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowDropUp, {
|
|
260
258
|
size: "24px",
|
|
@@ -288,7 +286,7 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
288
286
|
children: [icon, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
289
287
|
className: 'value',
|
|
290
288
|
children: initalValue && keepInitialValue ? initalValue : input || placeholderSearch
|
|
291
|
-
}),
|
|
289
|
+
}), loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {
|
|
292
290
|
size: _types.Size.Small,
|
|
293
291
|
color: _styles.COLORS.neutral_600
|
|
294
292
|
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
@@ -314,7 +312,7 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
314
312
|
className: size ? size : '',
|
|
315
313
|
margin: margin,
|
|
316
314
|
children: [!isButton && renderStandardDropdown(), !!isButton && renderButtonDropdown(), !locked && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsx)(_DropdownContent.default, {
|
|
317
|
-
isOpen: isOpen,
|
|
315
|
+
isOpen: isOpen && !loading,
|
|
318
316
|
messageOnNoResults: messageOnNoResults !== null && messageOnNoResults !== void 0 ? messageOnNoResults : '',
|
|
319
317
|
selectedValues: selectedValues,
|
|
320
318
|
setSelectedValues: setSelectedValues,
|
|
@@ -389,7 +387,8 @@ DropdownFilter.propTypes = {
|
|
|
389
387
|
buttonFontSize: _propTypes.default.string,
|
|
390
388
|
keepInitialValue: _propTypes.default.bool,
|
|
391
389
|
icon: _propTypes.default.node,
|
|
392
|
-
margin: _propTypes.default.string
|
|
390
|
+
margin: _propTypes.default.string,
|
|
391
|
+
loading: _propTypes.default.bool
|
|
393
392
|
};
|
|
394
393
|
var _default = DropdownFilter;
|
|
395
394
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Dropdown/DropdownFilter.tsx"],"names":["DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","scrollable","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","React","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","focused","setFocused","keyboardNavigate","setKeyboardNavigate","styledFieldRef","inputRef","clearButtonRef","useRef","containerRef","handleInputKeyDown","e","key","preventDefault","handleButtonKeyPress","matches","filter","c","label","toLowerCase","length","useEffect","some","x","handleInputClear","current","focus","focusVisible","detail","renderStandardDropdown","stopPropagation","blur","defaultOnMouseDownHandler","Math","floor","random","target","value","marginLeft","Size","Small","COLORS","neutral_600","renderButtonDropdown","concat","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 {\n defaultOnMouseDownHandler,\n useActionWithin,\n useClickOutsideRef,\n useFocusOutsideRef,\n useFocusVisibleRef\n} from '../common';\nimport {IconButton} from '../Button';\nimport {SystemIcons} from '../icons';\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 const [keyboardNavigate, setKeyboardNavigate] = React.useState<boolean>(false);\n\n const styledFieldRef = useFocusVisibleRef();\n const inputRef = useFocusVisibleRef([styledFieldRef]);\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\n\n useActionWithin(styledFieldRef, input && !locked && !disabled ? [clearButtonRef] : []);\n\n const containerRef = useClickOutsideRef(() => setIsOpen(false), [], useFocusOutsideRef(() => setIsOpen(false)));\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n }\n }\n };\n\n const handleButtonKeyPress = (e: React.KeyboardEvent<any>) => {\n if (e.key === 'Enter' || e.key === ' ') {\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 setIsOpen(!isOpen);\n setKeyboardNavigate(true);\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 React.useEffect(() => {\n !isOpen && setKeyboardNavigate(false)\n }, [isOpen]);\n\n const handleInputClear = (e: any) => {\n setInput('');\n setSelectedValues([]);\n onSelect && onSelect('');\n inputRef.current?.focus({focusVisible: e?.detail !== 1} as any)\n };\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={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 disabled={disabled || false}\n locked={locked || false}\n isPlaceholder={!input}\n fontSize={buttonFontSize}\n showValidationMessage={!!activeValidationMessage}\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 onKeyDown={handleInputKeyDown}\n value={input}\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={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n />\n {\n input && !locked && !disabled &&\n <IconButton action={handleInputClear}\n ref={clearButtonRef}\n useTransparentBackground={true}\n shape={'circular'}\n style={{marginLeft: '-4px'}}\n variant={'secondary'}>\n <SystemIcons.Clear/>\n </IconButton>\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 !locked && !disabled && 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={handleButtonKeyPress}\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 ref={containerRef}\n isButton={isButton || false}\n disabled={disabled}\n locked={locked}\n 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 size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n outline={keyboardNavigate && isButton}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {\n },\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.cjs"}
|
|
1
|
+
{"version":3,"sources":["../../src/Dropdown/DropdownFilter.tsx"],"names":["DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","messageOnNoResults","disabled","locked","scrollable","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","loading","React","useState","isOpen","setIsOpen","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","focused","setFocused","keyboardNavigate","setKeyboardNavigate","styledFieldRef","inputRef","clearButtonRef","useRef","containerRef","handleInputKeyDown","e","key","preventDefault","handleButtonKeyPress","matches","filter","c","label","toLowerCase","length","useEffect","some","x","handleInputClear","current","focus","focusVisible","detail","renderStandardDropdown","stopPropagation","blur","defaultOnMouseDownHandler","Math","floor","random","target","value","marginLeft","Size","Small","COLORS","neutral_600","renderButtonDropdown","concat","itemsType","multiSelect","action","onValueUpdate","values","val","items","map","customContent","warning_400","disableSorting"],"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 {\n defaultOnMouseDownHandler,\n useActionWithin,\n useClickOutsideRef,\n useFocusOutsideRef,\n useFocusVisibleRef\n} from '../common';\nimport {IconButton} from '../Button';\nimport {SystemIcons} from '../icons';\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 loading?: boolean;\n}\n\nconst DropdownFilter = ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n initalValue,\n required,\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 loading\n }: DropdownFilterProps) => {\n const [isOpen, setIsOpen] = 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 const [keyboardNavigate, setKeyboardNavigate] = React.useState<boolean>(false);\n\n const styledFieldRef = useFocusVisibleRef();\n const inputRef = useFocusVisibleRef([styledFieldRef]);\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\n\n useActionWithin(styledFieldRef, input && !locked && !disabled ? [clearButtonRef] : []);\n\n const containerRef = useClickOutsideRef(() => setIsOpen(false), [], useFocusOutsideRef(() => setIsOpen(false)));\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n }\n }\n };\n\n const handleButtonKeyPress = (e: React.KeyboardEvent<any>) => {\n if (e.key === 'Enter' || e.key === ' ') {\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 setIsOpen(!isOpen);\n setKeyboardNavigate(true);\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 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 React.useEffect(() => {\n !isOpen && setKeyboardNavigate(false)\n }, [isOpen]);\n\n const handleInputClear = (e: any) => {\n setInput('');\n setSelectedValues([]);\n onSelect && onSelect('');\n inputRef.current?.focus({focusVisible: e?.detail !== 1} as any)\n };\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={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 disabled={disabled || false}\n locked={locked || false}\n isPlaceholder={!input}\n fontSize={buttonFontSize}\n showValidationMessage={!!activeValidationMessage}\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 onKeyDown={handleInputKeyDown}\n value={input}\n onChange={(e: any) => {\n if (!locked && !disabled) {\n setRestartFilter(false);\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={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n />\n {\n input && !locked && !disabled && !loading &&\n <IconButton action={handleInputClear}\n ref={clearButtonRef}\n useTransparentBackground={true}\n shape={'circular'}\n style={{marginLeft: '-4px'}}\n variant={'secondary'}>\n <SystemIcons.Clear/>\n </IconButton>\n }\n\n {\n loading &&\n <div style={{marginLeft: '-4xp'}}>\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/>\n </div>\n }\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 !locked && !disabled && 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={handleButtonKeyPress}\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 {loading ? <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 ref={containerRef}\n isButton={isButton || false}\n disabled={disabled}\n locked={locked}\n className={size ? size : ''}\n margin={margin}>\n {!isButton && renderStandardDropdown()}\n {!!isButton && renderButtonDropdown()}\n {!locked && !disabled && (\n <DropdownContent\n isOpen={isOpen && !loading}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n outline={keyboardNavigate && isButton}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {\n },\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.cjs"}
|
|
@@ -25,6 +25,7 @@ interface DropdownFilterProps {
|
|
|
25
25
|
keepInitialValue?: boolean;
|
|
26
26
|
icon?: React.ReactNode;
|
|
27
27
|
margin?: string;
|
|
28
|
+
loading?: boolean;
|
|
28
29
|
}
|
|
29
|
-
declare const DropdownFilter: ({ id, list, placeholder, onSelect, onInputChange, initalValue, required,
|
|
30
|
+
declare const DropdownFilter: ({ id, list, placeholder, onSelect, onInputChange, initalValue, required, messageOnNoResults, disabled, locked, scrollable, isButton, activeValidationMessage, autofilledMessage, size, buttonFontSize, keepInitialValue, icon, margin, loading }: DropdownFilterProps) => JSX.Element;
|
|
30
31
|
export default DropdownFilter;
|
|
@@ -23,7 +23,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
23
23
|
onInputChange = _ref.onInputChange,
|
|
24
24
|
initalValue = _ref.initalValue,
|
|
25
25
|
required = _ref.required,
|
|
26
|
-
disableSorting = _ref.disableSorting,
|
|
27
26
|
messageOnNoResults = _ref.messageOnNoResults,
|
|
28
27
|
disabled = _ref.disabled,
|
|
29
28
|
locked = _ref.locked,
|
|
@@ -36,47 +35,43 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
36
35
|
keepInitialValue = _ref.keepInitialValue,
|
|
37
36
|
icon = _ref.icon,
|
|
38
37
|
_ref$margin = _ref.margin,
|
|
39
|
-
margin = _ref$margin === void 0 ? '4px 0' : _ref$margin
|
|
38
|
+
margin = _ref$margin === void 0 ? '4px 0' : _ref$margin,
|
|
39
|
+
loading = _ref.loading;
|
|
40
40
|
|
|
41
41
|
var _React$useState = React.useState(false),
|
|
42
42
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
43
43
|
isOpen = _React$useState2[0],
|
|
44
44
|
setIsOpen = _React$useState2[1];
|
|
45
45
|
|
|
46
|
-
var _React$useState3 = React.useState(
|
|
46
|
+
var _React$useState3 = React.useState(initalValue !== null && initalValue !== void 0 ? initalValue : ''),
|
|
47
47
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
input = _React$useState4[0],
|
|
49
|
+
setInput = _React$useState4[1];
|
|
50
50
|
|
|
51
|
-
var _React$useState5 = React.useState(
|
|
51
|
+
var _React$useState5 = React.useState(placeholder || ''),
|
|
52
52
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
placeholderSearch = _React$useState6[0],
|
|
54
|
+
setPlaceholderSearch = _React$useState6[1];
|
|
55
55
|
|
|
56
|
-
var _React$useState7 = React.useState(
|
|
56
|
+
var _React$useState7 = React.useState(false),
|
|
57
57
|
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
restartFilter = _React$useState8[0],
|
|
59
|
+
setRestartFilter = _React$useState8[1];
|
|
60
60
|
|
|
61
|
-
var _React$useState9 = React.useState(
|
|
61
|
+
var _React$useState9 = React.useState([]),
|
|
62
62
|
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
selectedValues = _React$useState10[0],
|
|
64
|
+
setSelectedValues = _React$useState10[1];
|
|
65
65
|
|
|
66
|
-
var _React$useState11 = React.useState(
|
|
66
|
+
var _React$useState11 = React.useState(null),
|
|
67
67
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
focused = _React$useState12[0],
|
|
69
|
+
setFocused = _React$useState12[1];
|
|
70
70
|
|
|
71
|
-
var _React$useState13 = React.useState(
|
|
71
|
+
var _React$useState13 = React.useState(false),
|
|
72
72
|
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var _React$useState15 = React.useState(false),
|
|
77
|
-
_React$useState16 = _slicedToArray(_React$useState15, 2),
|
|
78
|
-
keyboardNavigate = _React$useState16[0],
|
|
79
|
-
setKeyboardNavigate = _React$useState16[1];
|
|
73
|
+
keyboardNavigate = _React$useState14[0],
|
|
74
|
+
setKeyboardNavigate = _React$useState14[1];
|
|
80
75
|
|
|
81
76
|
var styledFieldRef = useFocusVisibleRef();
|
|
82
77
|
var inputRef = useFocusVisibleRef([styledFieldRef]);
|
|
@@ -133,7 +128,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
133
128
|
}
|
|
134
129
|
}, [isOpen]);
|
|
135
130
|
React.useEffect(function () {
|
|
136
|
-
setIsLoading(false);
|
|
137
131
|
if (selectedValues.length > 0 && !list.some(function (x) {
|
|
138
132
|
return x.label == input;
|
|
139
133
|
})) setSelectedValues([]);
|
|
@@ -197,7 +191,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
197
191
|
onChange: function onChange(e) {
|
|
198
192
|
if (!locked && !disabled) {
|
|
199
193
|
setRestartFilter(false);
|
|
200
|
-
setIsLoading(true);
|
|
201
194
|
setIsOpen(true);
|
|
202
195
|
setInput(e.target.value);
|
|
203
196
|
|
|
@@ -215,7 +208,7 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
215
208
|
required: required,
|
|
216
209
|
tabIndex: disabled || locked ? -1 : 0,
|
|
217
210
|
disabled: disabled || false
|
|
218
|
-
}), input && !locked && !disabled && /*#__PURE__*/_jsx(IconButton, {
|
|
211
|
+
}), input && !locked && !disabled && !loading && /*#__PURE__*/_jsx(IconButton, {
|
|
219
212
|
action: handleInputClear,
|
|
220
213
|
ref: clearButtonRef,
|
|
221
214
|
useTransparentBackground: true,
|
|
@@ -225,10 +218,15 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
225
218
|
},
|
|
226
219
|
variant: 'secondary',
|
|
227
220
|
children: /*#__PURE__*/_jsx(SystemIcons.Clear, {})
|
|
228
|
-
}),
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
221
|
+
}), loading && /*#__PURE__*/_jsx("div", {
|
|
222
|
+
style: {
|
|
223
|
+
marginLeft: '-4xp'
|
|
224
|
+
},
|
|
225
|
+
children: /*#__PURE__*/_jsx(LoadingIndicator, {
|
|
226
|
+
size: Size.Small,
|
|
227
|
+
color: COLORS.neutral_600
|
|
228
|
+
})
|
|
229
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
232
230
|
className: 'dropdown-arrow',
|
|
233
231
|
children: isOpen && !locked && !disabled ? /*#__PURE__*/_jsx(ArrowDropUp, {
|
|
234
232
|
size: "24px",
|
|
@@ -262,7 +260,7 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
262
260
|
children: [icon, /*#__PURE__*/_jsx("div", {
|
|
263
261
|
className: 'value',
|
|
264
262
|
children: initalValue && keepInitialValue ? initalValue : input || placeholderSearch
|
|
265
|
-
}),
|
|
263
|
+
}), loading ? /*#__PURE__*/_jsx(LoadingIndicator, {
|
|
266
264
|
size: Size.Small,
|
|
267
265
|
color: COLORS.neutral_600
|
|
268
266
|
}) : null, /*#__PURE__*/_jsx("div", {
|
|
@@ -288,7 +286,7 @@ var DropdownFilter = function DropdownFilter(_ref) {
|
|
|
288
286
|
className: size ? size : '',
|
|
289
287
|
margin: margin,
|
|
290
288
|
children: [!isButton && renderStandardDropdown(), !!isButton && renderButtonDropdown(), !locked && !disabled && /*#__PURE__*/_jsx(DropdownContent, {
|
|
291
|
-
isOpen: isOpen,
|
|
289
|
+
isOpen: isOpen && !loading,
|
|
292
290
|
messageOnNoResults: messageOnNoResults !== null && messageOnNoResults !== void 0 ? messageOnNoResults : '',
|
|
293
291
|
selectedValues: selectedValues,
|
|
294
292
|
setSelectedValues: setSelectedValues,
|
|
@@ -363,7 +361,8 @@ DropdownFilter.propTypes = {
|
|
|
363
361
|
buttonFontSize: _pt.string,
|
|
364
362
|
keepInitialValue: _pt.bool,
|
|
365
363
|
icon: _pt.node,
|
|
366
|
-
margin: _pt.string
|
|
364
|
+
margin: _pt.string,
|
|
365
|
+
loading: _pt.bool
|
|
367
366
|
};
|
|
368
367
|
export default DropdownFilter;
|
|
369
368
|
//# sourceMappingURL=DropdownFilter.js.map
|
|
@@ -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","defaultOnMouseDownHandler","useActionWithin","useClickOutsideRef","useFocusOutsideRef","useFocusVisibleRef","IconButton","SystemIcons","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","keyboardNavigate","setKeyboardNavigate","styledFieldRef","inputRef","clearButtonRef","useRef","containerRef","handleInputKeyDown","e","key","preventDefault","handleButtonKeyPress","matches","filter","c","label","toLowerCase","length","useEffect","some","x","handleInputClear","current","focus","focusVisible","detail","renderStandardDropdown","stopPropagation","blur","Math","floor","random","target","value","marginLeft","Small","neutral_600","renderButtonDropdown","concat","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 {\n defaultOnMouseDownHandler,\n useActionWithin,\n useClickOutsideRef,\n useFocusOutsideRef,\n useFocusVisibleRef\n} from '../common';\nimport {IconButton} from '../Button';\nimport {SystemIcons} from '../icons';\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 const [keyboardNavigate, setKeyboardNavigate] = React.useState<boolean>(false);\n\n const styledFieldRef = useFocusVisibleRef();\n const inputRef = useFocusVisibleRef([styledFieldRef]);\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\n\n useActionWithin(styledFieldRef, input && !locked && !disabled ? [clearButtonRef] : []);\n\n const containerRef = useClickOutsideRef(() => setIsOpen(false), [], useFocusOutsideRef(() => setIsOpen(false)));\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n }\n }\n };\n\n const handleButtonKeyPress = (e: React.KeyboardEvent<any>) => {\n if (e.key === 'Enter' || e.key === ' ') {\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 setIsOpen(!isOpen);\n setKeyboardNavigate(true);\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 React.useEffect(() => {\n !isOpen && setKeyboardNavigate(false)\n }, [isOpen]);\n\n const handleInputClear = (e: any) => {\n setInput('');\n setSelectedValues([]);\n onSelect && onSelect('');\n inputRef.current?.focus({focusVisible: e?.detail !== 1} as any)\n };\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={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 disabled={disabled || false}\n locked={locked || false}\n isPlaceholder={!input}\n fontSize={buttonFontSize}\n showValidationMessage={!!activeValidationMessage}\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 onKeyDown={handleInputKeyDown}\n value={input}\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={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n />\n {\n input && !locked && !disabled &&\n <IconButton action={handleInputClear}\n ref={clearButtonRef}\n useTransparentBackground={true}\n shape={'circular'}\n style={{marginLeft: '-4px'}}\n variant={'secondary'}>\n <SystemIcons.Clear/>\n </IconButton>\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 !locked && !disabled && 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={handleButtonKeyPress}\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 ref={containerRef}\n isButton={isButton || false}\n disabled={disabled}\n locked={locked}\n 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 size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n outline={keyboardNavigate && isButton}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {\n },\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","useActionWithin","useClickOutsideRef","useFocusOutsideRef","useFocusVisibleRef","IconButton","SystemIcons","DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","messageOnNoResults","disabled","locked","scrollable","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","loading","useState","isOpen","setIsOpen","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","focused","setFocused","keyboardNavigate","setKeyboardNavigate","styledFieldRef","inputRef","clearButtonRef","useRef","containerRef","handleInputKeyDown","e","key","preventDefault","handleButtonKeyPress","matches","filter","c","label","toLowerCase","length","useEffect","some","x","handleInputClear","current","focus","focusVisible","detail","renderStandardDropdown","stopPropagation","blur","Math","floor","random","target","value","marginLeft","Small","neutral_600","renderButtonDropdown","concat","itemsType","multiSelect","action","onValueUpdate","values","val","items","map","customContent","warning_400","disableSorting"],"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 {\n defaultOnMouseDownHandler,\n useActionWithin,\n useClickOutsideRef,\n useFocusOutsideRef,\n useFocusVisibleRef\n} from '../common';\nimport {IconButton} from '../Button';\nimport {SystemIcons} from '../icons';\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 loading?: boolean;\n}\n\nconst DropdownFilter = ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n initalValue,\n required,\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 loading\n }: DropdownFilterProps) => {\n const [isOpen, setIsOpen] = 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 const [keyboardNavigate, setKeyboardNavigate] = React.useState<boolean>(false);\n\n const styledFieldRef = useFocusVisibleRef();\n const inputRef = useFocusVisibleRef([styledFieldRef]);\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\n\n useActionWithin(styledFieldRef, input && !locked && !disabled ? [clearButtonRef] : []);\n\n const containerRef = useClickOutsideRef(() => setIsOpen(false), [], useFocusOutsideRef(() => setIsOpen(false)));\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n }\n }\n };\n\n const handleButtonKeyPress = (e: React.KeyboardEvent<any>) => {\n if (e.key === 'Enter' || e.key === ' ') {\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 setIsOpen(!isOpen);\n setKeyboardNavigate(true);\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 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 React.useEffect(() => {\n !isOpen && setKeyboardNavigate(false)\n }, [isOpen]);\n\n const handleInputClear = (e: any) => {\n setInput('');\n setSelectedValues([]);\n onSelect && onSelect('');\n inputRef.current?.focus({focusVisible: e?.detail !== 1} as any)\n };\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={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 disabled={disabled || false}\n locked={locked || false}\n isPlaceholder={!input}\n fontSize={buttonFontSize}\n showValidationMessage={!!activeValidationMessage}\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 onKeyDown={handleInputKeyDown}\n value={input}\n onChange={(e: any) => {\n if (!locked && !disabled) {\n setRestartFilter(false);\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={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n />\n {\n input && !locked && !disabled && !loading &&\n <IconButton action={handleInputClear}\n ref={clearButtonRef}\n useTransparentBackground={true}\n shape={'circular'}\n style={{marginLeft: '-4px'}}\n variant={'secondary'}>\n <SystemIcons.Clear/>\n </IconButton>\n }\n\n {\n loading &&\n <div style={{marginLeft: '-4xp'}}>\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/>\n </div>\n }\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 !locked && !disabled && 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={handleButtonKeyPress}\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 {loading ? <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 ref={containerRef}\n isButton={isButton || false}\n disabled={disabled}\n locked={locked}\n className={size ? size : ''}\n margin={margin}>\n {!isButton && renderStandardDropdown()}\n {!!isButton && renderButtonDropdown()}\n {!locked && !disabled && (\n <DropdownContent\n isOpen={isOpen && !loading}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n outline={keyboardNavigate && isButton}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {\n },\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"}
|