@laerdal/life-react-components 1.9.8-dev.20 → 1.9.8-dev.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Dropdown/BasicDropdown.cjs +3 -4
- package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
- package/dist/Dropdown/BasicDropdown.d.ts +1 -1
- package/dist/Dropdown/BasicDropdown.js +3 -4
- package/dist/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/InputFields/TextField.cjs +5 -3
- package/dist/InputFields/TextField.cjs.map +1 -1
- package/dist/InputFields/TextField.d.ts +2 -1
- package/dist/InputFields/TextField.js +6 -4
- package/dist/InputFields/TextField.js.map +1 -1
- package/package.json +1 -1
|
@@ -63,7 +63,6 @@ var BasicDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
63
63
|
_props$margin = props.margin,
|
|
64
64
|
margin = _props$margin === void 0 ? '4px 0' : _props$margin,
|
|
65
65
|
minWidth = props.minWidth,
|
|
66
|
-
multiSelect = props.multiSelect,
|
|
67
66
|
onBlur = props.onBlur;
|
|
68
67
|
|
|
69
68
|
var _React$useState = React.useState(false),
|
|
@@ -111,14 +110,14 @@ var BasicDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
111
110
|
var handleValueSelect = function handleValueSelect(values) {
|
|
112
111
|
setInput(values.join(', '));
|
|
113
112
|
|
|
114
|
-
if (props.multiSelect) {
|
|
113
|
+
if (props.multiSelect === true) {
|
|
115
114
|
props.onSelect(values);
|
|
116
115
|
} else if (props.multiSelect === false || props.multiSelect === undefined) {
|
|
117
116
|
props.onSelect(values[0]);
|
|
118
117
|
} //don't close dropdown on item select if have custom action or multiselect
|
|
119
118
|
|
|
120
119
|
|
|
121
|
-
if (actionLabel || multiSelect) return;
|
|
120
|
+
if (actionLabel || props.multiSelect) return;
|
|
122
121
|
|
|
123
122
|
if (keyboardNavigated) {
|
|
124
123
|
var _styledFieldRef$curre;
|
|
@@ -246,7 +245,7 @@ var BasicDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
246
245
|
scrollable: scrollable,
|
|
247
246
|
onValueUpdate: handleValueSelect,
|
|
248
247
|
items: list,
|
|
249
|
-
multiSelect: multiSelect,
|
|
248
|
+
multiSelect: props.multiSelect,
|
|
250
249
|
pinTopItem: pinTopItem,
|
|
251
250
|
maxHeight: maxHeight,
|
|
252
251
|
actionIcon: actionIcon,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Dropdown/BasicDropdown.tsx"],"names":["BasicDropdown","React","forwardRef","props","ref","id","list","placeholder","messageOnNoResults","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","actionDisabled","pinTopItem","scrollable","maxHeight","disabled","readOnly","isButton","activeValidationMessage","autofilledMessage","size","margin","minWidth","multiSelect","onBlur","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","focused","setFocused","keyboardNavigated","setKeyboardNavigated","inputRef","useRef","styledFieldRef","resetDropdown","containerRef","handleKeyDown","e","key","handleValueSelect","values","join","onSelect","undefined","current","focus","focusVisible","useEffect","value","useImperativeHandle","customSetIsOpen","getDisplayItems","split","map","val","trim","listDisplayLabels","filter","item","includes","l","displayLabel","handleBlur","currentTarget","contains","relatedTarget","concat","defaultOnMouseDownHandler","stopPropagation","blur","Size","Small","COLORS","neutral_600","onValueUpdate","items","critical_400","disableSorting"],"mappings":"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","sourcesContent":["import * as React from 'react';\r\nimport {COLORS} from '../styles';\r\nimport {ArrowDropDown, ArrowDropUp, Information, TechnicalWarning} from '../icons/systemicons/SystemIcons';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport {Dropdown, StyledField, InputField} from './CommonStyling';\r\nimport DropdownContent, {DropdownItem} from './DropdownContent';\r\nimport {AutofilledMessage, ErrorMessage} from '../InputFields/styling';\r\nimport {Size} from '../types';\r\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusVisibleRef} from '../common';\r\nimport {useFocusOutsideRef} from '../common';\r\n\r\ninterface BasicDropdownCommonProps {\r\n id: string;\r\n list: DropdownItem[];\r\n itemsType?: 'normal' | 'checkbox' | 'radio';\r\n action?: () => void;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n pinTopItem?: boolean;\r\n scrollable?: boolean;\r\n maxHeight?: string;\r\n placeholder?: string;\r\n disableSorting?: boolean;\r\n messageOnNoResults?: string;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n isButton?: boolean;\r\n activeValidationMessage?: string;\r\n autofilledMessage?: string;\r\n size?: Size.Small | Size.Medium;\r\n margin?: string;\r\n minWidth?: string;\r\n onBlur?: (event: React.FocusEvent) => void;\r\n}\r\n\r\ntype DropdownFilterMultiSelectProps = BasicDropdownCommonProps & {\r\n multiSelect: true;\r\n value?: string[];\r\n onSelect: (value: string[]) => void;\r\n}\r\n\r\ntype DropdownFilterSingleSelectProps = BasicDropdownCommonProps & {\r\n multiSelect?: false | undefined;\r\n value?: string;\r\n onSelect: (value: string) => void;\r\n}\r\n\r\ntype DropdownFilterProps = DropdownFilterMultiSelectProps | DropdownFilterSingleSelectProps;\r\n\r\nconst BasicDropdown = React.forwardRef((props: DropdownFilterProps, ref) => {\r\n const {\r\n id,\r\n list,\r\n placeholder,\r\n messageOnNoResults,\r\n itemsType = 'normal',\r\n action,\r\n actionLabel,\r\n actionVariant,\r\n actionIcon,\r\n actionLoading,\r\n actionDisabled,\r\n pinTopItem,\r\n scrollable = true,\r\n maxHeight,\r\n disabled,\r\n readOnly,\r\n isButton,\r\n activeValidationMessage,\r\n autofilledMessage,\r\n size,\r\n margin = '4px 0',\r\n minWidth,\r\n multiSelect,\r\n onBlur\r\n } = props;\r\n\r\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\r\n const [isLoading, setIsLoading] = React.useState<boolean>(false);\r\n const [input, setInput] = React.useState<string>('');\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\r\n\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const styledFieldRef = useFocusVisibleRef([inputRef]);\r\n\r\n const resetDropdown = () => {\r\n setIsOpen(false);\r\n setFocused(null);\r\n };\r\n\r\n const containerRef = useClickOutsideRef(resetDropdown, [], useFocusOutsideRef(resetDropdown));\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n setIsOpen(!isOpen);\r\n setKeyboardNavigated(true);\r\n }\r\n };\r\n\r\n const handleValueSelect = (values: string[]) => {\r\n setInput(values.join(', '));\r\n\r\n if (props.multiSelect) {\r\n props.onSelect(values);\r\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\r\n props.onSelect(values[0]);\r\n }\r\n\r\n //don't close dropdown on item select if have custom action or multiselect\r\n if (actionLabel || multiSelect) return;\r\n\r\n if (keyboardNavigated) {\r\n styledFieldRef.current?.focus({focusVisible: true} as any);\r\n }\r\n setIsOpen(false);\r\n setFocused(null);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (props.value) {\r\n if (props.multiSelect) {\r\n setInput(props.value.join(', '));\r\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\r\n setInput(props.value);\r\n }\r\n } else {\r\n setInput('');\r\n }\r\n }, [props.value, props.multiSelect]);\r\n\r\n React.useEffect(() => {\r\n setIsLoading(false);\r\n }, [input]);\r\n\r\n React.useEffect(() => {\r\n !isOpen && setKeyboardNavigated(false);\r\n }, [isOpen]);\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const customSetIsOpen = (isOpen: boolean) => {\r\n setIsOpen(isOpen);\r\n };\r\n\r\n const getDisplayItems = () => {\r\n const values = input.split(',').map((val) => val.trim());\r\n const listDisplayLabels = list.filter((item) => values.includes(item.value)).map((l) => l.displayLabel);\r\n return listDisplayLabels.join(', ');\r\n };\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\r\n // @ts-ignore\r\n if (!e.currentTarget.contains(e.relatedTarget)) {\r\n onBlur && onBlur(e);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <Dropdown ref={containerRef}\r\n isButton={isButton || false}\r\n className={size ? size : ''}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n margin={margin}\r\n onBlur={handleBlur}\r\n minWidth={minWidth}>\r\n <StyledField\r\n ref={styledFieldRef}\r\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '').concat(isButton ? 'button' : '')}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onClick={(e) => {\r\n if (!readOnly && !disabled) {\r\n e.stopPropagation();\r\n setIsOpen(!isOpen);\r\n if (isOpen) {\r\n inputRef.current?.blur();\r\n } else {\r\n inputRef.current?.focus();\r\n }\r\n }\r\n }}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n disabled={disabled || false}\r\n readOnly={readOnly || false}\r\n isPlaceholder={!input}\r\n placeholder={placeholder}\r\n showValidationMessage={!!activeValidationMessage}\r\n onKeyDown={handleKeyDown}\r\n minWidth={minWidth}>\r\n <InputField\r\n ref={inputRef}\r\n type=\"search\"\r\n readOnly\r\n placeholder={placeholder}\r\n value={getDisplayItems()}\r\n className={size ? `${size} value` : 'value'}\r\n tabIndex={-1}\r\n disabled={disabled || false}\r\n />\r\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\r\n <div className={'icon dropdown-arrow'}>\r\n {isOpen ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\r\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\r\n </div>\r\n </StyledField>\r\n {!readOnly && !disabled && (\r\n <DropdownContent\r\n customizationProps={{\r\n itemsType: itemsType,\r\n action: action ?? (() => {\r\n }),\r\n actionLabel: actionLabel,\r\n actionVariant: actionVariant,\r\n actionDisabled: actionDisabled,\r\n scrollable: scrollable,\r\n onValueUpdate: handleValueSelect,\r\n items: list,\r\n multiSelect: multiSelect,\r\n pinTopItem: pinTopItem,\r\n maxHeight: maxHeight,\r\n actionIcon: actionIcon,\r\n actionLoading: actionLoading,\r\n }}\r\n focused={focused}\r\n setFocused={setFocused}\r\n size={size ?? Size.Small}\r\n filter={''}\r\n isOpen={isOpen}\r\n setIsOpen={customSetIsOpen}\r\n messageOnNoResults={messageOnNoResults ?? ''}\r\n outline={keyboardNavigated}\r\n isButton={isButton || false}\r\n selectedValues={props.multiSelect ? props.value || [] : [props.value || '']}\r\n setSelectedValues={handleValueSelect}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n )}\r\n </Dropdown>\r\n {activeValidationMessage && (\r\n <ErrorMessage>\r\n <TechnicalWarning color={COLORS.critical_400}/>\r\n <span>{activeValidationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n {autofilledMessage && (\r\n <AutofilledMessage>\r\n <Information color={COLORS.neutral_600}/>\r\n <span>{autofilledMessage}</span>\r\n </AutofilledMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default BasicDropdown;\r\n"],"file":"BasicDropdown.cjs"}
|
|
1
|
+
{"version":3,"sources":["../../src/Dropdown/BasicDropdown.tsx"],"names":["BasicDropdown","React","forwardRef","props","ref","id","list","placeholder","messageOnNoResults","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","actionDisabled","pinTopItem","scrollable","maxHeight","disabled","readOnly","isButton","activeValidationMessage","autofilledMessage","size","margin","minWidth","onBlur","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","focused","setFocused","keyboardNavigated","setKeyboardNavigated","inputRef","useRef","styledFieldRef","resetDropdown","containerRef","handleKeyDown","e","key","handleValueSelect","values","join","multiSelect","onSelect","undefined","current","focus","focusVisible","useEffect","value","useImperativeHandle","customSetIsOpen","getDisplayItems","split","map","val","trim","listDisplayLabels","filter","item","includes","l","displayLabel","handleBlur","currentTarget","contains","relatedTarget","concat","defaultOnMouseDownHandler","stopPropagation","blur","Size","Small","COLORS","neutral_600","onValueUpdate","items","critical_400","disableSorting"],"mappings":"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","sourcesContent":["import * as React from 'react';\r\nimport {COLORS} from '../styles';\r\nimport {ArrowDropDown, ArrowDropUp, Information, TechnicalWarning} from '../icons/systemicons/SystemIcons';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport {Dropdown, StyledField, InputField} from './CommonStyling';\r\nimport DropdownContent, {DropdownItem} from './DropdownContent';\r\nimport {AutofilledMessage, ErrorMessage} from '../InputFields/styling';\r\nimport {Size} from '../types';\r\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusVisibleRef} from '../common';\r\nimport {useFocusOutsideRef} from '../common';\r\n\r\ninterface BasicDropdownCommonProps {\r\n id: string;\r\n list: DropdownItem[];\r\n itemsType?: 'normal' | 'checkbox' | 'radio';\r\n action?: () => void;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n pinTopItem?: boolean;\r\n scrollable?: boolean;\r\n maxHeight?: string;\r\n placeholder?: string;\r\n disableSorting?: boolean;\r\n messageOnNoResults?: string;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n isButton?: boolean;\r\n activeValidationMessage?: string;\r\n autofilledMessage?: string;\r\n size?: Size.Small | Size.Medium;\r\n margin?: string;\r\n minWidth?: string;\r\n onBlur?: (event: React.FocusEvent) => void;\r\n}\r\n\r\ntype DropdownFilterMultiSelectProps = BasicDropdownCommonProps & {\r\n multiSelect: true;\r\n value?: string[];\r\n onSelect: (value: string[]) => void;\r\n}\r\n\r\ntype DropdownFilterSingleSelectProps = BasicDropdownCommonProps & {\r\n multiSelect?: false;\r\n value?: string;\r\n onSelect: (value: string) => void;\r\n}\r\n\r\ntype DropdownFilterProps = DropdownFilterMultiSelectProps | DropdownFilterSingleSelectProps;\r\n\r\nconst BasicDropdown = React.forwardRef((props: DropdownFilterProps, ref) => {\r\n const {\r\n id,\r\n list,\r\n placeholder,\r\n messageOnNoResults,\r\n itemsType = 'normal',\r\n action,\r\n actionLabel,\r\n actionVariant,\r\n actionIcon,\r\n actionLoading,\r\n actionDisabled,\r\n pinTopItem,\r\n scrollable = true,\r\n maxHeight,\r\n disabled,\r\n readOnly,\r\n isButton,\r\n activeValidationMessage,\r\n autofilledMessage,\r\n size,\r\n margin = '4px 0',\r\n minWidth,\r\n onBlur\r\n } = props;\r\n\r\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\r\n const [isLoading, setIsLoading] = React.useState<boolean>(false);\r\n const [input, setInput] = React.useState<string>('');\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\r\n\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const styledFieldRef = useFocusVisibleRef([inputRef]);\r\n\r\n const resetDropdown = () => {\r\n setIsOpen(false);\r\n setFocused(null);\r\n };\r\n\r\n const containerRef = useClickOutsideRef(resetDropdown, [], useFocusOutsideRef(resetDropdown));\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n setIsOpen(!isOpen);\r\n setKeyboardNavigated(true);\r\n }\r\n };\r\n\r\n const handleValueSelect = (values: string[]) => {\r\n setInput(values.join(', '));\r\n\r\n if (props.multiSelect === true) {\r\n props.onSelect(values);\r\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\r\n props.onSelect(values[0]);\r\n }\r\n\r\n //don't close dropdown on item select if have custom action or multiselect\r\n if (actionLabel || props.multiSelect) return;\r\n\r\n if (keyboardNavigated) {\r\n styledFieldRef.current?.focus({focusVisible: true} as any);\r\n }\r\n setIsOpen(false);\r\n setFocused(null);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (props.value) {\r\n if (props.multiSelect) {\r\n setInput(props.value.join(', '));\r\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\r\n setInput(props.value);\r\n }\r\n } else {\r\n setInput('');\r\n }\r\n }, [props.value, props.multiSelect]);\r\n\r\n React.useEffect(() => {\r\n setIsLoading(false);\r\n }, [input]);\r\n\r\n React.useEffect(() => {\r\n !isOpen && setKeyboardNavigated(false);\r\n }, [isOpen]);\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const customSetIsOpen = (isOpen: boolean) => {\r\n setIsOpen(isOpen);\r\n };\r\n\r\n const getDisplayItems = () => {\r\n const values = input.split(',').map((val) => val.trim());\r\n const listDisplayLabels = list.filter((item) => values.includes(item.value)).map((l) => l.displayLabel);\r\n return listDisplayLabels.join(', ');\r\n };\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\r\n // @ts-ignore\r\n if (!e.currentTarget.contains(e.relatedTarget)) {\r\n onBlur && onBlur(e);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <Dropdown ref={containerRef}\r\n isButton={isButton || false}\r\n className={size ? size : ''}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n margin={margin}\r\n onBlur={handleBlur}\r\n minWidth={minWidth}>\r\n <StyledField\r\n ref={styledFieldRef}\r\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '').concat(isButton ? 'button' : '')}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onClick={(e) => {\r\n if (!readOnly && !disabled) {\r\n e.stopPropagation();\r\n setIsOpen(!isOpen);\r\n if (isOpen) {\r\n inputRef.current?.blur();\r\n } else {\r\n inputRef.current?.focus();\r\n }\r\n }\r\n }}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n disabled={disabled || false}\r\n readOnly={readOnly || false}\r\n isPlaceholder={!input}\r\n placeholder={placeholder}\r\n showValidationMessage={!!activeValidationMessage}\r\n onKeyDown={handleKeyDown}\r\n minWidth={minWidth}>\r\n <InputField\r\n ref={inputRef}\r\n type=\"search\"\r\n readOnly\r\n placeholder={placeholder}\r\n value={getDisplayItems()}\r\n className={size ? `${size} value` : 'value'}\r\n tabIndex={-1}\r\n disabled={disabled || false}\r\n />\r\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\r\n <div className={'icon dropdown-arrow'}>\r\n {isOpen ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\r\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\r\n </div>\r\n </StyledField>\r\n {!readOnly && !disabled && (\r\n <DropdownContent\r\n customizationProps={{\r\n itemsType: itemsType,\r\n action: action ?? (() => {\r\n }),\r\n actionLabel: actionLabel,\r\n actionVariant: actionVariant,\r\n actionDisabled: actionDisabled,\r\n scrollable: scrollable,\r\n onValueUpdate: handleValueSelect,\r\n items: list,\r\n multiSelect: props.multiSelect,\r\n pinTopItem: pinTopItem,\r\n maxHeight: maxHeight,\r\n actionIcon: actionIcon,\r\n actionLoading: actionLoading,\r\n }}\r\n focused={focused}\r\n setFocused={setFocused}\r\n size={size ?? Size.Small}\r\n filter={''}\r\n isOpen={isOpen}\r\n setIsOpen={customSetIsOpen}\r\n messageOnNoResults={messageOnNoResults ?? ''}\r\n outline={keyboardNavigated}\r\n isButton={isButton || false}\r\n selectedValues={props.multiSelect ? props.value || [] : [props.value || '']}\r\n setSelectedValues={handleValueSelect}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n )}\r\n </Dropdown>\r\n {activeValidationMessage && (\r\n <ErrorMessage>\r\n <TechnicalWarning color={COLORS.critical_400}/>\r\n <span>{activeValidationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n {autofilledMessage && (\r\n <AutofilledMessage>\r\n <Information color={COLORS.neutral_600}/>\r\n <span>{autofilledMessage}</span>\r\n </AutofilledMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default BasicDropdown;\r\n"],"file":"BasicDropdown.cjs"}
|
|
@@ -33,7 +33,7 @@ declare type DropdownFilterMultiSelectProps = BasicDropdownCommonProps & {
|
|
|
33
33
|
onSelect: (value: string[]) => void;
|
|
34
34
|
};
|
|
35
35
|
declare type DropdownFilterSingleSelectProps = BasicDropdownCommonProps & {
|
|
36
|
-
multiSelect?: false
|
|
36
|
+
multiSelect?: false;
|
|
37
37
|
value?: string;
|
|
38
38
|
onSelect: (value: string) => void;
|
|
39
39
|
};
|
|
@@ -39,7 +39,6 @@ var BasicDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
39
39
|
_props$margin = props.margin,
|
|
40
40
|
margin = _props$margin === void 0 ? '4px 0' : _props$margin,
|
|
41
41
|
minWidth = props.minWidth,
|
|
42
|
-
multiSelect = props.multiSelect,
|
|
43
42
|
onBlur = props.onBlur;
|
|
44
43
|
|
|
45
44
|
var _React$useState = React.useState(false),
|
|
@@ -87,14 +86,14 @@ var BasicDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
87
86
|
var handleValueSelect = function handleValueSelect(values) {
|
|
88
87
|
setInput(values.join(', '));
|
|
89
88
|
|
|
90
|
-
if (props.multiSelect) {
|
|
89
|
+
if (props.multiSelect === true) {
|
|
91
90
|
props.onSelect(values);
|
|
92
91
|
} else if (props.multiSelect === false || props.multiSelect === undefined) {
|
|
93
92
|
props.onSelect(values[0]);
|
|
94
93
|
} //don't close dropdown on item select if have custom action or multiselect
|
|
95
94
|
|
|
96
95
|
|
|
97
|
-
if (actionLabel || multiSelect) return;
|
|
96
|
+
if (actionLabel || props.multiSelect) return;
|
|
98
97
|
|
|
99
98
|
if (keyboardNavigated) {
|
|
100
99
|
var _styledFieldRef$curre;
|
|
@@ -222,7 +221,7 @@ var BasicDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
222
221
|
scrollable: scrollable,
|
|
223
222
|
onValueUpdate: handleValueSelect,
|
|
224
223
|
items: list,
|
|
225
|
-
multiSelect: multiSelect,
|
|
224
|
+
multiSelect: props.multiSelect,
|
|
226
225
|
pinTopItem: pinTopItem,
|
|
227
226
|
maxHeight: maxHeight,
|
|
228
227
|
actionIcon: actionIcon,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Dropdown/BasicDropdown.tsx"],"names":["React","COLORS","ArrowDropDown","ArrowDropUp","Information","TechnicalWarning","LoadingIndicator","Dropdown","StyledField","InputField","DropdownContent","AutofilledMessage","ErrorMessage","Size","defaultOnMouseDownHandler","useClickOutsideRef","useFocusVisibleRef","useFocusOutsideRef","BasicDropdown","forwardRef","props","ref","id","list","placeholder","messageOnNoResults","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","actionDisabled","pinTopItem","scrollable","maxHeight","disabled","readOnly","isButton","activeValidationMessage","autofilledMessage","size","margin","minWidth","multiSelect","onBlur","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","focused","setFocused","keyboardNavigated","setKeyboardNavigated","inputRef","useRef","styledFieldRef","resetDropdown","containerRef","handleKeyDown","e","key","handleValueSelect","values","join","onSelect","undefined","current","focus","focusVisible","useEffect","value","useImperativeHandle","customSetIsOpen","getDisplayItems","split","map","val","trim","listDisplayLabels","filter","item","includes","l","displayLabel","handleBlur","currentTarget","contains","relatedTarget","concat","stopPropagation","blur","Small","neutral_600","onValueUpdate","items","critical_400","disableSorting"],"mappings":"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","sourcesContent":["import * as React from 'react';\r\nimport {COLORS} from '../styles';\r\nimport {ArrowDropDown, ArrowDropUp, Information, TechnicalWarning} from '../icons/systemicons/SystemIcons';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport {Dropdown, StyledField, InputField} from './CommonStyling';\r\nimport DropdownContent, {DropdownItem} from './DropdownContent';\r\nimport {AutofilledMessage, ErrorMessage} from '../InputFields/styling';\r\nimport {Size} from '../types';\r\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusVisibleRef} from '../common';\r\nimport {useFocusOutsideRef} from '../common';\r\n\r\ninterface BasicDropdownCommonProps {\r\n id: string;\r\n list: DropdownItem[];\r\n itemsType?: 'normal' | 'checkbox' | 'radio';\r\n action?: () => void;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n pinTopItem?: boolean;\r\n scrollable?: boolean;\r\n maxHeight?: string;\r\n placeholder?: string;\r\n disableSorting?: boolean;\r\n messageOnNoResults?: string;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n isButton?: boolean;\r\n activeValidationMessage?: string;\r\n autofilledMessage?: string;\r\n size?: Size.Small | Size.Medium;\r\n margin?: string;\r\n minWidth?: string;\r\n onBlur?: (event: React.FocusEvent) => void;\r\n}\r\n\r\ntype DropdownFilterMultiSelectProps = BasicDropdownCommonProps & {\r\n multiSelect: true;\r\n value?: string[];\r\n onSelect: (value: string[]) => void;\r\n}\r\n\r\ntype DropdownFilterSingleSelectProps = BasicDropdownCommonProps & {\r\n multiSelect?: false | undefined;\r\n value?: string;\r\n onSelect: (value: string) => void;\r\n}\r\n\r\ntype DropdownFilterProps = DropdownFilterMultiSelectProps | DropdownFilterSingleSelectProps;\r\n\r\nconst BasicDropdown = React.forwardRef((props: DropdownFilterProps, ref) => {\r\n const {\r\n id,\r\n list,\r\n placeholder,\r\n messageOnNoResults,\r\n itemsType = 'normal',\r\n action,\r\n actionLabel,\r\n actionVariant,\r\n actionIcon,\r\n actionLoading,\r\n actionDisabled,\r\n pinTopItem,\r\n scrollable = true,\r\n maxHeight,\r\n disabled,\r\n readOnly,\r\n isButton,\r\n activeValidationMessage,\r\n autofilledMessage,\r\n size,\r\n margin = '4px 0',\r\n minWidth,\r\n multiSelect,\r\n onBlur\r\n } = props;\r\n\r\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\r\n const [isLoading, setIsLoading] = React.useState<boolean>(false);\r\n const [input, setInput] = React.useState<string>('');\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\r\n\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const styledFieldRef = useFocusVisibleRef([inputRef]);\r\n\r\n const resetDropdown = () => {\r\n setIsOpen(false);\r\n setFocused(null);\r\n };\r\n\r\n const containerRef = useClickOutsideRef(resetDropdown, [], useFocusOutsideRef(resetDropdown));\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n setIsOpen(!isOpen);\r\n setKeyboardNavigated(true);\r\n }\r\n };\r\n\r\n const handleValueSelect = (values: string[]) => {\r\n setInput(values.join(', '));\r\n\r\n if (props.multiSelect) {\r\n props.onSelect(values);\r\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\r\n props.onSelect(values[0]);\r\n }\r\n\r\n //don't close dropdown on item select if have custom action or multiselect\r\n if (actionLabel || multiSelect) return;\r\n\r\n if (keyboardNavigated) {\r\n styledFieldRef.current?.focus({focusVisible: true} as any);\r\n }\r\n setIsOpen(false);\r\n setFocused(null);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (props.value) {\r\n if (props.multiSelect) {\r\n setInput(props.value.join(', '));\r\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\r\n setInput(props.value);\r\n }\r\n } else {\r\n setInput('');\r\n }\r\n }, [props.value, props.multiSelect]);\r\n\r\n React.useEffect(() => {\r\n setIsLoading(false);\r\n }, [input]);\r\n\r\n React.useEffect(() => {\r\n !isOpen && setKeyboardNavigated(false);\r\n }, [isOpen]);\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const customSetIsOpen = (isOpen: boolean) => {\r\n setIsOpen(isOpen);\r\n };\r\n\r\n const getDisplayItems = () => {\r\n const values = input.split(',').map((val) => val.trim());\r\n const listDisplayLabels = list.filter((item) => values.includes(item.value)).map((l) => l.displayLabel);\r\n return listDisplayLabels.join(', ');\r\n };\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\r\n // @ts-ignore\r\n if (!e.currentTarget.contains(e.relatedTarget)) {\r\n onBlur && onBlur(e);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <Dropdown ref={containerRef}\r\n isButton={isButton || false}\r\n className={size ? size : ''}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n margin={margin}\r\n onBlur={handleBlur}\r\n minWidth={minWidth}>\r\n <StyledField\r\n ref={styledFieldRef}\r\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '').concat(isButton ? 'button' : '')}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onClick={(e) => {\r\n if (!readOnly && !disabled) {\r\n e.stopPropagation();\r\n setIsOpen(!isOpen);\r\n if (isOpen) {\r\n inputRef.current?.blur();\r\n } else {\r\n inputRef.current?.focus();\r\n }\r\n }\r\n }}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n disabled={disabled || false}\r\n readOnly={readOnly || false}\r\n isPlaceholder={!input}\r\n placeholder={placeholder}\r\n showValidationMessage={!!activeValidationMessage}\r\n onKeyDown={handleKeyDown}\r\n minWidth={minWidth}>\r\n <InputField\r\n ref={inputRef}\r\n type=\"search\"\r\n readOnly\r\n placeholder={placeholder}\r\n value={getDisplayItems()}\r\n className={size ? `${size} value` : 'value'}\r\n tabIndex={-1}\r\n disabled={disabled || false}\r\n />\r\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\r\n <div className={'icon dropdown-arrow'}>\r\n {isOpen ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\r\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\r\n </div>\r\n </StyledField>\r\n {!readOnly && !disabled && (\r\n <DropdownContent\r\n customizationProps={{\r\n itemsType: itemsType,\r\n action: action ?? (() => {\r\n }),\r\n actionLabel: actionLabel,\r\n actionVariant: actionVariant,\r\n actionDisabled: actionDisabled,\r\n scrollable: scrollable,\r\n onValueUpdate: handleValueSelect,\r\n items: list,\r\n multiSelect: multiSelect,\r\n pinTopItem: pinTopItem,\r\n maxHeight: maxHeight,\r\n actionIcon: actionIcon,\r\n actionLoading: actionLoading,\r\n }}\r\n focused={focused}\r\n setFocused={setFocused}\r\n size={size ?? Size.Small}\r\n filter={''}\r\n isOpen={isOpen}\r\n setIsOpen={customSetIsOpen}\r\n messageOnNoResults={messageOnNoResults ?? ''}\r\n outline={keyboardNavigated}\r\n isButton={isButton || false}\r\n selectedValues={props.multiSelect ? props.value || [] : [props.value || '']}\r\n setSelectedValues={handleValueSelect}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n )}\r\n </Dropdown>\r\n {activeValidationMessage && (\r\n <ErrorMessage>\r\n <TechnicalWarning color={COLORS.critical_400}/>\r\n <span>{activeValidationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n {autofilledMessage && (\r\n <AutofilledMessage>\r\n <Information color={COLORS.neutral_600}/>\r\n <span>{autofilledMessage}</span>\r\n </AutofilledMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default BasicDropdown;\r\n"],"file":"BasicDropdown.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Dropdown/BasicDropdown.tsx"],"names":["React","COLORS","ArrowDropDown","ArrowDropUp","Information","TechnicalWarning","LoadingIndicator","Dropdown","StyledField","InputField","DropdownContent","AutofilledMessage","ErrorMessage","Size","defaultOnMouseDownHandler","useClickOutsideRef","useFocusVisibleRef","useFocusOutsideRef","BasicDropdown","forwardRef","props","ref","id","list","placeholder","messageOnNoResults","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","actionDisabled","pinTopItem","scrollable","maxHeight","disabled","readOnly","isButton","activeValidationMessage","autofilledMessage","size","margin","minWidth","onBlur","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","focused","setFocused","keyboardNavigated","setKeyboardNavigated","inputRef","useRef","styledFieldRef","resetDropdown","containerRef","handleKeyDown","e","key","handleValueSelect","values","join","multiSelect","onSelect","undefined","current","focus","focusVisible","useEffect","value","useImperativeHandle","customSetIsOpen","getDisplayItems","split","map","val","trim","listDisplayLabels","filter","item","includes","l","displayLabel","handleBlur","currentTarget","contains","relatedTarget","concat","stopPropagation","blur","Small","neutral_600","onValueUpdate","items","critical_400","disableSorting"],"mappings":"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","sourcesContent":["import * as React from 'react';\r\nimport {COLORS} from '../styles';\r\nimport {ArrowDropDown, ArrowDropUp, Information, TechnicalWarning} from '../icons/systemicons/SystemIcons';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport {Dropdown, StyledField, InputField} from './CommonStyling';\r\nimport DropdownContent, {DropdownItem} from './DropdownContent';\r\nimport {AutofilledMessage, ErrorMessage} from '../InputFields/styling';\r\nimport {Size} from '../types';\r\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusVisibleRef} from '../common';\r\nimport {useFocusOutsideRef} from '../common';\r\n\r\ninterface BasicDropdownCommonProps {\r\n id: string;\r\n list: DropdownItem[];\r\n itemsType?: 'normal' | 'checkbox' | 'radio';\r\n action?: () => void;\r\n actionLabel?: string;\r\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\r\n actionIcon?: React.ReactNode;\r\n actionLoading?: boolean;\r\n actionDisabled?: boolean;\r\n pinTopItem?: boolean;\r\n scrollable?: boolean;\r\n maxHeight?: string;\r\n placeholder?: string;\r\n disableSorting?: boolean;\r\n messageOnNoResults?: string;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n isButton?: boolean;\r\n activeValidationMessage?: string;\r\n autofilledMessage?: string;\r\n size?: Size.Small | Size.Medium;\r\n margin?: string;\r\n minWidth?: string;\r\n onBlur?: (event: React.FocusEvent) => void;\r\n}\r\n\r\ntype DropdownFilterMultiSelectProps = BasicDropdownCommonProps & {\r\n multiSelect: true;\r\n value?: string[];\r\n onSelect: (value: string[]) => void;\r\n}\r\n\r\ntype DropdownFilterSingleSelectProps = BasicDropdownCommonProps & {\r\n multiSelect?: false;\r\n value?: string;\r\n onSelect: (value: string) => void;\r\n}\r\n\r\ntype DropdownFilterProps = DropdownFilterMultiSelectProps | DropdownFilterSingleSelectProps;\r\n\r\nconst BasicDropdown = React.forwardRef((props: DropdownFilterProps, ref) => {\r\n const {\r\n id,\r\n list,\r\n placeholder,\r\n messageOnNoResults,\r\n itemsType = 'normal',\r\n action,\r\n actionLabel,\r\n actionVariant,\r\n actionIcon,\r\n actionLoading,\r\n actionDisabled,\r\n pinTopItem,\r\n scrollable = true,\r\n maxHeight,\r\n disabled,\r\n readOnly,\r\n isButton,\r\n activeValidationMessage,\r\n autofilledMessage,\r\n size,\r\n margin = '4px 0',\r\n minWidth,\r\n onBlur\r\n } = props;\r\n\r\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\r\n const [isLoading, setIsLoading] = React.useState<boolean>(false);\r\n const [input, setInput] = React.useState<string>('');\r\n const [focused, setFocused] = React.useState<number | null>(null);\r\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\r\n\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const styledFieldRef = useFocusVisibleRef([inputRef]);\r\n\r\n const resetDropdown = () => {\r\n setIsOpen(false);\r\n setFocused(null);\r\n };\r\n\r\n const containerRef = useClickOutsideRef(resetDropdown, [], useFocusOutsideRef(resetDropdown));\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n setIsOpen(!isOpen);\r\n setKeyboardNavigated(true);\r\n }\r\n };\r\n\r\n const handleValueSelect = (values: string[]) => {\r\n setInput(values.join(', '));\r\n\r\n if (props.multiSelect === true) {\r\n props.onSelect(values);\r\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\r\n props.onSelect(values[0]);\r\n }\r\n\r\n //don't close dropdown on item select if have custom action or multiselect\r\n if (actionLabel || props.multiSelect) return;\r\n\r\n if (keyboardNavigated) {\r\n styledFieldRef.current?.focus({focusVisible: true} as any);\r\n }\r\n setIsOpen(false);\r\n setFocused(null);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (props.value) {\r\n if (props.multiSelect) {\r\n setInput(props.value.join(', '));\r\n } else if (props.multiSelect === false || props.multiSelect === undefined) {\r\n setInput(props.value);\r\n }\r\n } else {\r\n setInput('');\r\n }\r\n }, [props.value, props.multiSelect]);\r\n\r\n React.useEffect(() => {\r\n setIsLoading(false);\r\n }, [input]);\r\n\r\n React.useEffect(() => {\r\n !isOpen && setKeyboardNavigated(false);\r\n }, [isOpen]);\r\n\r\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\r\n\r\n const customSetIsOpen = (isOpen: boolean) => {\r\n setIsOpen(isOpen);\r\n };\r\n\r\n const getDisplayItems = () => {\r\n const values = input.split(',').map((val) => val.trim());\r\n const listDisplayLabels = list.filter((item) => values.includes(item.value)).map((l) => l.displayLabel);\r\n return listDisplayLabels.join(', ');\r\n };\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\r\n // @ts-ignore\r\n if (!e.currentTarget.contains(e.relatedTarget)) {\r\n onBlur && onBlur(e);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <Dropdown ref={containerRef}\r\n isButton={isButton || false}\r\n className={size ? size : ''}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n margin={margin}\r\n onBlur={handleBlur}\r\n minWidth={minWidth}>\r\n <StyledField\r\n ref={styledFieldRef}\r\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '').concat(isButton ? 'button' : '')}\r\n onMouseDown={defaultOnMouseDownHandler}\r\n onClick={(e) => {\r\n if (!readOnly && !disabled) {\r\n e.stopPropagation();\r\n setIsOpen(!isOpen);\r\n if (isOpen) {\r\n inputRef.current?.blur();\r\n } else {\r\n inputRef.current?.focus();\r\n }\r\n }\r\n }}\r\n tabIndex={disabled || readOnly ? -1 : 0}\r\n disabled={disabled || false}\r\n readOnly={readOnly || false}\r\n isPlaceholder={!input}\r\n placeholder={placeholder}\r\n showValidationMessage={!!activeValidationMessage}\r\n onKeyDown={handleKeyDown}\r\n minWidth={minWidth}>\r\n <InputField\r\n ref={inputRef}\r\n type=\"search\"\r\n readOnly\r\n placeholder={placeholder}\r\n value={getDisplayItems()}\r\n className={size ? `${size} value` : 'value'}\r\n tabIndex={-1}\r\n disabled={disabled || false}\r\n />\r\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\r\n <div className={'icon dropdown-arrow'}>\r\n {isOpen ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\r\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\r\n </div>\r\n </StyledField>\r\n {!readOnly && !disabled && (\r\n <DropdownContent\r\n customizationProps={{\r\n itemsType: itemsType,\r\n action: action ?? (() => {\r\n }),\r\n actionLabel: actionLabel,\r\n actionVariant: actionVariant,\r\n actionDisabled: actionDisabled,\r\n scrollable: scrollable,\r\n onValueUpdate: handleValueSelect,\r\n items: list,\r\n multiSelect: props.multiSelect,\r\n pinTopItem: pinTopItem,\r\n maxHeight: maxHeight,\r\n actionIcon: actionIcon,\r\n actionLoading: actionLoading,\r\n }}\r\n focused={focused}\r\n setFocused={setFocused}\r\n size={size ?? Size.Small}\r\n filter={''}\r\n isOpen={isOpen}\r\n setIsOpen={customSetIsOpen}\r\n messageOnNoResults={messageOnNoResults ?? ''}\r\n outline={keyboardNavigated}\r\n isButton={isButton || false}\r\n selectedValues={props.multiSelect ? props.value || [] : [props.value || '']}\r\n setSelectedValues={handleValueSelect}\r\n id={`${id}_dropdowncontent`}\r\n />\r\n )}\r\n </Dropdown>\r\n {activeValidationMessage && (\r\n <ErrorMessage>\r\n <TechnicalWarning color={COLORS.critical_400}/>\r\n <span>{activeValidationMessage}</span>\r\n </ErrorMessage>\r\n )}\r\n {autofilledMessage && (\r\n <AutofilledMessage>\r\n <Information color={COLORS.neutral_600}/>\r\n <span>{autofilledMessage}</span>\r\n </AutofilledMessage>\r\n )}\r\n </>\r\n );\r\n});\r\n\r\nexport default BasicDropdown;\r\n"],"file":"BasicDropdown.js"}
|
|
@@ -29,7 +29,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
29
29
|
|
|
30
30
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
31
|
|
|
32
|
-
var TextField = function
|
|
32
|
+
var TextField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
33
33
|
var id = _ref.id,
|
|
34
34
|
disabled = _ref.disabled,
|
|
35
35
|
readOnly = _ref.readOnly,
|
|
@@ -49,6 +49,9 @@ var TextField = function TextField(_ref) {
|
|
|
49
49
|
margin = _ref$margin === void 0 ? '4px 0' : _ref$margin,
|
|
50
50
|
note = _ref.note;
|
|
51
51
|
var elementRef = (0, _common.useFocusVisibleRef)();
|
|
52
|
+
(0, React.useImperativeHandle)(ref, function () {
|
|
53
|
+
return elementRef.current;
|
|
54
|
+
}, [elementRef]);
|
|
52
55
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
53
56
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.InputWrapper, {
|
|
54
57
|
readOnly: readOnly,
|
|
@@ -98,8 +101,7 @@ var TextField = function TextField(_ref) {
|
|
|
98
101
|
})]
|
|
99
102
|
})
|
|
100
103
|
});
|
|
101
|
-
};
|
|
102
|
-
|
|
104
|
+
});
|
|
103
105
|
TextField.propTypes = {
|
|
104
106
|
id: _propTypes.default.string.isRequired,
|
|
105
107
|
disabled: _propTypes.default.bool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/InputFields/TextField.tsx"],"names":["TextField","id","disabled","readOnly","onChange","value","validationMessage","type","autoComplete","placeholder","required","pattern","maxLength","withoutBorder","state","size","margin","note","elementRef","e","preventDefault","States","Invalid","undefined","target","Valid","COLORS","correct_400","critical_400","icon","message"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/InputFields/TextField.tsx"],"names":["TextField","React","forwardRef","ref","id","disabled","readOnly","onChange","value","validationMessage","type","autoComplete","placeholder","required","pattern","maxLength","withoutBorder","state","size","margin","note","elementRef","current","e","preventDefault","States","Invalid","undefined","target","Valid","COLORS","correct_400","critical_400","icon","message"],"mappings":"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","sourcesContent":["import * as React from 'react';\r\nimport {CheckMark, TechnicalWarning} from '../icons/systemicons/SystemIcons';\r\nimport {COLORS} from '../styles';\r\nimport {Size, States} from '../types';\r\nimport {ErrorMessage, InputFieldStyling, InputWrapper, NoteMessage, ValidationMessage} from './styling';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {TextFieldNote} from './types';\r\nimport {useImperativeHandle} from 'react';\r\n\r\ntype TextFieldProps = {\r\n id: string;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n onChange?: (text: string) => void;\r\n value?: string;\r\n validationMessage?: string;\r\n type?: string;\r\n state?: States.Invalid | States.Valid;\r\n autoComplete?: string;\r\n placeholder?: string;\r\n required?: boolean;\r\n pattern?: string;\r\n maxLength?: number;\r\n withoutBorder?: boolean;\r\n size?: Size.Small | Size.Medium;\r\n margin?: string;\r\n note?: TextFieldNote;\r\n};\r\n\r\nconst TextField = React.forwardRef(({\r\n id,\r\n disabled,\r\n readOnly,\r\n onChange,\r\n value,\r\n validationMessage,\r\n type,\r\n autoComplete,\r\n placeholder,\r\n required,\r\n pattern,\r\n maxLength,\r\n withoutBorder,\r\n state,\r\n size,\r\n margin = '4px 0',\r\n note,\r\n }: TextFieldProps, ref) => {\r\n const elementRef = useFocusVisibleRef();\r\n\r\n useImperativeHandle(ref, () => elementRef.current, [elementRef]);\r\n\r\n return (\r\n <>\r\n <InputWrapper\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n margin={margin}\r\n onClick={(e: any) => {\r\n if (disabled || readOnly) {\r\n e.preventDefault();\r\n }\r\n }}>\r\n <InputFieldStyling\r\n id={id}\r\n ref={elementRef}\r\n type={type || 'text'}\r\n value={value}\r\n className={`${state || (validationMessage ? States.Invalid : '')} ${size || ''}`}\r\n tabIndex={readOnly || disabled ? -1 : 0}\r\n autoComplete={autoComplete}\r\n placeholder={disabled ? undefined : placeholder}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\r\n activeErrorMessage={!!validationMessage && state !== States.Valid}\r\n required={required}\r\n pattern={pattern}\r\n maxLength={maxLength}\r\n withoutBorder={withoutBorder}\r\n />\r\n {validationMessage && (\r\n <ValidationMessage className={size || ''} type={state ?? States.Invalid}>\r\n {state === States.Valid ? <CheckMark color={COLORS.correct_400}/> :\r\n <TechnicalWarning color={COLORS.critical_400}/>}\r\n <span>{validationMessage}</span>\r\n </ValidationMessage>\r\n )}\r\n {note && !disabled && (\r\n <NoteMessage className={size}>\r\n {note.icon}\r\n <span>{note.message}</span>\r\n </NoteMessage>\r\n )}\r\n </InputWrapper>\r\n </>\r\n );\r\n});\r\n\r\nexport default TextField;\r\n"],"file":"TextField.cjs"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { Size, States } from '../types';
|
|
2
3
|
import { TextFieldNote } from './types';
|
|
3
4
|
declare type TextFieldProps = {
|
|
@@ -19,5 +20,5 @@ declare type TextFieldProps = {
|
|
|
19
20
|
margin?: string;
|
|
20
21
|
note?: TextFieldNote;
|
|
21
22
|
};
|
|
22
|
-
declare const TextField:
|
|
23
|
+
declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<unknown>>;
|
|
23
24
|
export default TextField;
|
|
@@ -5,11 +5,11 @@ import { COLORS } from '../styles';
|
|
|
5
5
|
import { States } from '../types';
|
|
6
6
|
import { InputFieldStyling, InputWrapper, NoteMessage, ValidationMessage } from './styling';
|
|
7
7
|
import { useFocusVisibleRef } from '../common';
|
|
8
|
+
import React, { useImperativeHandle } from 'react';
|
|
8
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
10
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
11
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
|
-
|
|
12
|
-
var TextField = function TextField(_ref) {
|
|
12
|
+
var TextField = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
13
13
|
var id = _ref.id,
|
|
14
14
|
disabled = _ref.disabled,
|
|
15
15
|
readOnly = _ref.readOnly,
|
|
@@ -29,6 +29,9 @@ var TextField = function TextField(_ref) {
|
|
|
29
29
|
margin = _ref$margin === void 0 ? '4px 0' : _ref$margin,
|
|
30
30
|
note = _ref.note;
|
|
31
31
|
var elementRef = useFocusVisibleRef();
|
|
32
|
+
useImperativeHandle(ref, function () {
|
|
33
|
+
return elementRef.current;
|
|
34
|
+
}, [elementRef]);
|
|
32
35
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
33
36
|
children: /*#__PURE__*/_jsxs(InputWrapper, {
|
|
34
37
|
readOnly: readOnly,
|
|
@@ -78,8 +81,7 @@ var TextField = function TextField(_ref) {
|
|
|
78
81
|
})]
|
|
79
82
|
})
|
|
80
83
|
});
|
|
81
|
-
};
|
|
82
|
-
|
|
84
|
+
});
|
|
83
85
|
TextField.propTypes = {
|
|
84
86
|
id: _pt.string.isRequired,
|
|
85
87
|
disabled: _pt.bool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/InputFields/TextField.tsx"],"names":["React","CheckMark","TechnicalWarning","COLORS","States","InputFieldStyling","InputWrapper","NoteMessage","ValidationMessage","useFocusVisibleRef","TextField","id","disabled","readOnly","onChange","value","validationMessage","type","autoComplete","placeholder","required","pattern","maxLength","withoutBorder","state","size","margin","note","elementRef","e","preventDefault","Invalid","undefined","target","Valid","correct_400","critical_400","icon","message"],"mappings":";AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,
|
|
1
|
+
{"version":3,"sources":["../../src/InputFields/TextField.tsx"],"names":["React","CheckMark","TechnicalWarning","COLORS","States","InputFieldStyling","InputWrapper","NoteMessage","ValidationMessage","useFocusVisibleRef","useImperativeHandle","TextField","forwardRef","ref","id","disabled","readOnly","onChange","value","validationMessage","type","autoComplete","placeholder","required","pattern","maxLength","withoutBorder","state","size","margin","note","elementRef","current","e","preventDefault","Invalid","undefined","target","Valid","correct_400","critical_400","icon","message"],"mappings":"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","sourcesContent":["import * as React from 'react';\r\nimport {CheckMark, TechnicalWarning} from '../icons/systemicons/SystemIcons';\r\nimport {COLORS} from '../styles';\r\nimport {Size, States} from '../types';\r\nimport {ErrorMessage, InputFieldStyling, InputWrapper, NoteMessage, ValidationMessage} from './styling';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {TextFieldNote} from './types';\r\nimport {useImperativeHandle} from 'react';\r\n\r\ntype TextFieldProps = {\r\n id: string;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n onChange?: (text: string) => void;\r\n value?: string;\r\n validationMessage?: string;\r\n type?: string;\r\n state?: States.Invalid | States.Valid;\r\n autoComplete?: string;\r\n placeholder?: string;\r\n required?: boolean;\r\n pattern?: string;\r\n maxLength?: number;\r\n withoutBorder?: boolean;\r\n size?: Size.Small | Size.Medium;\r\n margin?: string;\r\n note?: TextFieldNote;\r\n};\r\n\r\nconst TextField = React.forwardRef(({\r\n id,\r\n disabled,\r\n readOnly,\r\n onChange,\r\n value,\r\n validationMessage,\r\n type,\r\n autoComplete,\r\n placeholder,\r\n required,\r\n pattern,\r\n maxLength,\r\n withoutBorder,\r\n state,\r\n size,\r\n margin = '4px 0',\r\n note,\r\n }: TextFieldProps, ref) => {\r\n const elementRef = useFocusVisibleRef();\r\n\r\n useImperativeHandle(ref, () => elementRef.current, [elementRef]);\r\n\r\n return (\r\n <>\r\n <InputWrapper\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n margin={margin}\r\n onClick={(e: any) => {\r\n if (disabled || readOnly) {\r\n e.preventDefault();\r\n }\r\n }}>\r\n <InputFieldStyling\r\n id={id}\r\n ref={elementRef}\r\n type={type || 'text'}\r\n value={value}\r\n className={`${state || (validationMessage ? States.Invalid : '')} ${size || ''}`}\r\n tabIndex={readOnly || disabled ? -1 : 0}\r\n autoComplete={autoComplete}\r\n placeholder={disabled ? undefined : placeholder}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\r\n activeErrorMessage={!!validationMessage && state !== States.Valid}\r\n required={required}\r\n pattern={pattern}\r\n maxLength={maxLength}\r\n withoutBorder={withoutBorder}\r\n />\r\n {validationMessage && (\r\n <ValidationMessage className={size || ''} type={state ?? States.Invalid}>\r\n {state === States.Valid ? <CheckMark color={COLORS.correct_400}/> :\r\n <TechnicalWarning color={COLORS.critical_400}/>}\r\n <span>{validationMessage}</span>\r\n </ValidationMessage>\r\n )}\r\n {note && !disabled && (\r\n <NoteMessage className={size}>\r\n {note.icon}\r\n <span>{note.message}</span>\r\n </NoteMessage>\r\n )}\r\n </InputWrapper>\r\n </>\r\n );\r\n});\r\n\r\nexport default TextField;\r\n"],"file":"TextField.js"}
|