@laerdal/life-react-components 2.0.1-dev.20.full → 2.0.1-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/ChipsInput/ChipDropdownInput.cjs.map +1 -1
- package/dist/ChipsInput/ChipDropdownInput.d.ts +1 -1
- package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
- package/dist/ChipsInput/ChipInput.cjs +13 -5
- package/dist/ChipsInput/ChipInput.cjs.map +1 -1
- package/dist/ChipsInput/ChipInput.js +13 -5
- package/dist/ChipsInput/ChipInput.js.map +1 -1
- package/dist/ChipsInput/ChipInputTypes.cjs.map +1 -1
- package/dist/ChipsInput/ChipInputTypes.d.ts +2 -1
- package/dist/ChipsInput/ChipInputTypes.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipDropdownInput.cjs","names":["Wrapper","styled","div","ChipInputContainer","Z_INDEXES","dropdown","ChipDropdownInput","React","forwardRef","ref","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationMessage","onValueChange","suggestion","loading","maxSelectedItems","multiLine","size","Size","Medium","icon","disableFiltering","disabled","altPlaceholder","required","rest","useState","givenList","setGivenList","chips","setChips","activeDescendant","setActiveDescendant","value","setValue","restartFilter","setRestartFilter","filteredList","setFilteredList","dropdownIsOpen","setDropdownIsOpen","dropdownList","setDropdownList","dropdownValue","setDropdownValue","focused","setFocused","containerRef","useClickOutsideRef","useFocusOutsideRef","inputRef","useRef","useImperativeHandle","current","useEffect","map","a","find","b","label","index","variant","States","Default","newList","e","options","filter","option","toUpperCase","indexOf","secondaryLabel","sort","push","o","length","handleClickOutside","contains","target","document","addEventListener","removeEventListener","x","displayLabel","noteLabel","SystemIcons","addChip","newChip","handleInputValueChange","handleValueUpdate","item","focus","handleInputKeyDown","event","key","stopPropagation","handleOnChipRemoved","newChips","splice","chip","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","items"],"sources":["../../src/ChipsInput/ChipDropdownInput.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom components.\n */\nimport {ChipInputContainer, ChipInputField} from './ChipInputField';\nimport {Size, States} from '../types';\nimport {DropdownContent, DropdownItem} from '../Dropdown';\nimport {SystemIcons} from '../icons';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {Z_INDEXES} from '../styles';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n\n ${ChipInputContainer} {\n position: relative;\n\n &:focus, &.focus-visible-within {\n z-index: ${Z_INDEXES.dropdown + 1} !important;\n }\n }\n`;\n\n\ninterface ListItem extends ChipItem {\n secondaryLabel?: string;\n value: string;\n}\n\ninterface ChipDropdownInputProps extends ChipInputProps {\n list: ListItem[] | string[];\n onInputChange?: (input: string) => void;\n messageOnNoResults?: string;\n suggestion?: ListItem;\n loading?: boolean;\n maxSelectedItems?: number;\n disableSorting?: boolean;\n disableFiltering?: boolean;\n}\n\nexport const ChipDropdownInput = React.forwardRef<HTMLInputElement | undefined, ChipDropdownInputProps>(({\n list,\n onInputChange,\n disableSorting,\n messageOnNoResults,\n values,\n inputId,\n variants,\n placeholder,\n validationMessage,\n onValueChange,\n suggestion,\n loading,\n maxSelectedItems,\n multiLine = true,\n size = Size.Medium,\n icon,\n disableFiltering,\n disabled,\n altPlaceholder,\n required,\n ...rest\n }: ChipDropdownInputProps, ref) => {\n // Initiate states\n const [givenList, setGivenList] = React.useState<ListItem[]>([]);\n const [chips, setChips] = React.useState<ListItem[]>([]);\n\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\n const [value, setValue] = React.useState<string>('');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [filteredList, setFilteredList] = React.useState<ListItem[]>();\n\n const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\n const [dropdownList, setDropdownList] = React.useState<DropdownItem[]>([]);\n const [dropdownValue, setDropdownValue] = React.useState<string>('');\n\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const containerRef = useClickOutsideRef(() => setDropdownIsOpen(false), [], useFocusOutsideRef(() => setDropdownIsOpen(false)));\n const inputRef = React.useRef<any>();\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n\n const list =\n values.map((a) => chips.find(b => b.value === a) || givenList.find(b => b.value === a) || {\n label: a,\n value: a,\n icon: icon\n })\n .map((a, index) => ({...a, variant: a.variant || (variants && variants[index]) || States.Default}))\n .map((a, index) => ({...a, icon: a.icon || icon}));\n\n setChips(list);\n }, [values, variants, icon, givenList]);\n\n /**\n * Convert string[] to List[] if necessary\n */\n React.useEffect(() => {\n if (typeof list[0] === 'string') {\n const newList: ListItem[] = (list as string[]).map((e: string) => ({label: e, value: e}));\n setGivenList(newList);\n } else {\n setGivenList(list as ListItem[]);\n }\n }, [list]);\n\n /**\n * filter and sort list if remoteOperations is false\n * */\n React.useEffect(() => {\n let options = [...givenList];\n if (!disableFiltering) {\n if (!restartFilter && value !== '') {\n options = options.filter((option) => option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 ||\n (option.secondaryLabel && option.secondaryLabel?.toUpperCase().indexOf(value.toUpperCase()) !== -1));\n }\n }\n\n if (!disableSorting) {\n options = options.sort();\n }\n\n suggestion && options.push(suggestion);\n\n options = options.filter((o) => !chips.find(a => a.value === o.value));\n setFilteredList(options);\n }, [value, givenList, chips, disableFiltering, disableSorting]);\n\n /**\n * if there is only one active item in dropdown mark it as focused\n * */\n React.useEffect(() => {\n if (dropdownIsOpen && !!value && dropdownList?.filter(a => !a.disabled).length === 1) {\n setDropdownValue(dropdownList.find(a => !a.disabled)!.value);\n } else {\n setDropdownValue('');\n }\n }, [dropdownList, dropdownIsOpen, value]);\n\n const handleClickOutside = (e: any) => {\n if (!containerRef.current?.contains(e.target)) {\n if (dropdownIsOpen) {\n setDropdownIsOpen(false);\n if (!givenList.find((e) => e.value === value)) {\n setValue('');\n }\n }\n }\n };\n\n /**\n * register click outside event listener\n * */\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n /**\n * update dropdown items when filtered list changes\n * */\n React.useEffect(() => {\n setDropdownList(filteredList?.map(x => ({\n value: x.value,\n displayLabel: x.label,\n noteLabel: x.secondaryLabel,\n icon: (x.icon ?? icon) && SystemIcons[(x.icon || icon)!]({}),\n disabled: x.disabled,\n })) ?? []);\n }, [filteredList]);\n\n const addChip = (newChip: ListItem) => {\n const newList = [...chips, newChip];\n // Let's add the chip\n setChips(newList);\n onValueChange(newList.map(a => a.value));\n\n setValue('');\n };\n\n const handleInputValueChange = (value: string) => {\n setValue(value);\n setRestartFilter(false);\n setDropdownIsOpen(true);\n onInputChange && onInputChange(value);\n }\n\n /**\n * Add chip from dropdown\n * */\n const handleValueUpdate = (values: string[]) => {\n const item = filteredList?.find(a => a.value === values[0]);\n item && addChip(item);\n setRestartFilter(true);\n inputRef?.current?.focus();\n }\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n if (dropdownList?.filter(a => !a.disabled).length === 1) {\n handleValueUpdate([dropdownList!.find(a => !a.disabled)!.value]);\n event.stopPropagation();\n }\n }\n\n if ((event.key === 'ArrowDown' || event.key === 'Down' || event.key === 'ArrowUp' || event.key === 'Up') && !!dropdownList?.length) {\n setDropdownIsOpen(true);\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const handleOnChipRemoved = (index: number): void => {\n // Let's copy the chips\n const newChips = [...chips];\n\n // Let's delete the chip\n // If necessary, let's replace it with a different chip\n newChips.splice(index, 1);\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange(newChips.map((e) => e.value));\n };\n\n return (\n <Wrapper ref={containerRef}>\n <ChipInputField inputId={inputId}\n ref={inputRef}\n items={chips}\n required={required}\n inputValue={value}\n role=\"combobox\"\n aria-activedescendant={activeDescendant}\n size={size}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n multiLine={multiLine}\n validationMessage={validationMessage}\n loading={loading}\n onRemoveItem={(chip, index) => handleOnChipRemoved(index)}\n onInputValueChange={handleInputValueChange}\n onInputKeyDown={handleInputKeyDown}\n onActivationChange={(value) => setDropdownIsOpen(value)}\n {...rest}/>\n <DropdownContent\n containerRef={containerRef}\n customizationProps={{\n action: () => {\n },\n pinTopItem: true,\n\n itemsType: 'normal',\n scrollable: true,\n actionLabel: '',\n multiSelect: false,\n onValueUpdate: handleValueUpdate,\n items: dropdownList,\n }}\n ariaRolesType=\"input\"\n focused={focused}\n setFocused={setFocused}\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\n selectedValues={[dropdownValue]}\n messageOnNoResults={messageOnNoResults ?? ''}\n setSelectedValues={() => {\n }}\n isOpen={(!maxSelectedItems || (!!maxSelectedItems && chips.length < maxSelectedItems)) && dropdownIsOpen}\n setIsOpen={setDropdownIsOpen}\n filter={''}\n isButton={false}\n id={`${inputId}_dropdowncontent`}/>\n\n </Wrapper>\n );\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChipDropdownInput.cjs","names":["Wrapper","styled","div","ChipInputContainer","Z_INDEXES","dropdown","ChipDropdownInput","React","forwardRef","ref","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationMessage","onValueChange","suggestion","loading","maxSelectedItems","multiLine","size","Size","Medium","icon","disableFiltering","disabled","altPlaceholder","required","rest","useState","givenList","setGivenList","chips","setChips","activeDescendant","setActiveDescendant","value","setValue","restartFilter","setRestartFilter","filteredList","setFilteredList","dropdownIsOpen","setDropdownIsOpen","dropdownList","setDropdownList","dropdownValue","setDropdownValue","focused","setFocused","containerRef","useClickOutsideRef","useFocusOutsideRef","inputRef","useRef","useImperativeHandle","current","useEffect","map","a","find","b","label","index","variant","States","Default","newList","e","options","filter","option","toUpperCase","indexOf","secondaryLabel","sort","push","o","length","handleClickOutside","contains","target","document","addEventListener","removeEventListener","x","displayLabel","noteLabel","SystemIcons","addChip","newChip","handleInputValueChange","handleValueUpdate","item","focus","handleInputKeyDown","event","key","stopPropagation","handleOnChipRemoved","newChips","splice","chip","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","items"],"sources":["../../src/ChipsInput/ChipDropdownInput.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom components.\n */\nimport {ChipInputContainer, ChipInputField} from './ChipInputField';\nimport {Size, States} from '../types';\nimport {DropdownContent, DropdownItem} from '../Dropdown';\nimport {SystemIcons} from '../icons';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {Z_INDEXES} from '../styles';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n\n ${ChipInputContainer} {\n position: relative;\n\n &:focus, &.focus-visible-within {\n z-index: ${Z_INDEXES.dropdown + 1} !important;\n }\n }\n`;\n\n\ninterface ListItem extends ChipItem {\n secondaryLabel?: string;\n value: string;\n}\n\ninterface ChipDropdownInputProps extends Omit<ChipInputProps, 'autoSave'> {\n list: ListItem[] | string[];\n onInputChange?: (input: string) => void;\n messageOnNoResults?: string;\n suggestion?: ListItem;\n loading?: boolean;\n maxSelectedItems?: number;\n disableSorting?: boolean;\n disableFiltering?: boolean;\n}\n\nexport const ChipDropdownInput = React.forwardRef<HTMLInputElement | undefined, ChipDropdownInputProps>(({\n list,\n onInputChange,\n disableSorting,\n messageOnNoResults,\n values,\n inputId,\n variants,\n placeholder,\n validationMessage,\n onValueChange,\n suggestion,\n loading,\n maxSelectedItems,\n multiLine = true,\n size = Size.Medium,\n icon,\n disableFiltering,\n disabled,\n altPlaceholder,\n required,\n ...rest\n }: ChipDropdownInputProps, ref) => {\n // Initiate states\n const [givenList, setGivenList] = React.useState<ListItem[]>([]);\n const [chips, setChips] = React.useState<ListItem[]>([]);\n\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\n const [value, setValue] = React.useState<string>('');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [filteredList, setFilteredList] = React.useState<ListItem[]>();\n\n const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\n const [dropdownList, setDropdownList] = React.useState<DropdownItem[]>([]);\n const [dropdownValue, setDropdownValue] = React.useState<string>('');\n\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const containerRef = useClickOutsideRef(() => setDropdownIsOpen(false), [], useFocusOutsideRef(() => setDropdownIsOpen(false)));\n const inputRef = React.useRef<any>();\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n\n const list =\n values.map((a) => chips.find(b => b.value === a) || givenList.find(b => b.value === a) || {\n label: a,\n value: a,\n icon: icon\n })\n .map((a, index) => ({...a, variant: a.variant || (variants && variants[index]) || States.Default}))\n .map((a, index) => ({...a, icon: a.icon || icon}));\n\n setChips(list);\n }, [values, variants, icon, givenList]);\n\n /**\n * Convert string[] to List[] if necessary\n */\n React.useEffect(() => {\n if (typeof list[0] === 'string') {\n const newList: ListItem[] = (list as string[]).map((e: string) => ({label: e, value: e}));\n setGivenList(newList);\n } else {\n setGivenList(list as ListItem[]);\n }\n }, [list]);\n\n /**\n * filter and sort list if remoteOperations is false\n * */\n React.useEffect(() => {\n let options = [...givenList];\n if (!disableFiltering) {\n if (!restartFilter && value !== '') {\n options = options.filter((option) => option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 ||\n (option.secondaryLabel && option.secondaryLabel?.toUpperCase().indexOf(value.toUpperCase()) !== -1));\n }\n }\n\n if (!disableSorting) {\n options = options.sort();\n }\n\n suggestion && options.push(suggestion);\n\n options = options.filter((o) => !chips.find(a => a.value === o.value));\n setFilteredList(options);\n }, [value, givenList, chips, disableFiltering, disableSorting]);\n\n /**\n * if there is only one active item in dropdown mark it as focused\n * */\n React.useEffect(() => {\n if (dropdownIsOpen && !!value && dropdownList?.filter(a => !a.disabled).length === 1) {\n setDropdownValue(dropdownList.find(a => !a.disabled)!.value);\n } else {\n setDropdownValue('');\n }\n }, [dropdownList, dropdownIsOpen, value]);\n\n const handleClickOutside = (e: any) => {\n if (!containerRef.current?.contains(e.target)) {\n if (dropdownIsOpen) {\n setDropdownIsOpen(false);\n if (!givenList.find((e) => e.value === value)) {\n setValue('');\n }\n }\n }\n };\n\n /**\n * register click outside event listener\n * */\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n /**\n * update dropdown items when filtered list changes\n * */\n React.useEffect(() => {\n setDropdownList(filteredList?.map(x => ({\n value: x.value,\n displayLabel: x.label,\n noteLabel: x.secondaryLabel,\n icon: (x.icon ?? icon) && SystemIcons[(x.icon || icon)!]({}),\n disabled: x.disabled,\n })) ?? []);\n }, [filteredList]);\n\n const addChip = (newChip: ListItem) => {\n const newList = [...chips, newChip];\n // Let's add the chip\n setChips(newList);\n onValueChange(newList.map(a => a.value));\n\n setValue('');\n };\n\n const handleInputValueChange = (value: string) => {\n setValue(value);\n setRestartFilter(false);\n setDropdownIsOpen(true);\n onInputChange && onInputChange(value);\n }\n\n /**\n * Add chip from dropdown\n * */\n const handleValueUpdate = (values: string[]) => {\n const item = filteredList?.find(a => a.value === values[0]);\n item && addChip(item);\n setRestartFilter(true);\n inputRef?.current?.focus();\n }\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n if (dropdownList?.filter(a => !a.disabled).length === 1) {\n handleValueUpdate([dropdownList!.find(a => !a.disabled)!.value]);\n event.stopPropagation();\n }\n }\n\n if ((event.key === 'ArrowDown' || event.key === 'Down' || event.key === 'ArrowUp' || event.key === 'Up') && !!dropdownList?.length) {\n setDropdownIsOpen(true);\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const handleOnChipRemoved = (index: number): void => {\n // Let's copy the chips\n const newChips = [...chips];\n\n // Let's delete the chip\n // If necessary, let's replace it with a different chip\n newChips.splice(index, 1);\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange(newChips.map((e) => e.value));\n };\n\n return (\n <Wrapper ref={containerRef}>\n <ChipInputField inputId={inputId}\n ref={inputRef}\n items={chips}\n required={required}\n inputValue={value}\n role=\"combobox\"\n aria-activedescendant={activeDescendant}\n size={size}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n multiLine={multiLine}\n validationMessage={validationMessage}\n loading={loading}\n onRemoveItem={(chip, index) => handleOnChipRemoved(index)}\n onInputValueChange={handleInputValueChange}\n onInputKeyDown={handleInputKeyDown}\n onActivationChange={(value) => setDropdownIsOpen(value)}\n {...rest}/>\n <DropdownContent\n containerRef={containerRef}\n customizationProps={{\n action: () => {\n },\n pinTopItem: true,\n\n itemsType: 'normal',\n scrollable: true,\n actionLabel: '',\n multiSelect: false,\n onValueUpdate: handleValueUpdate,\n items: dropdownList,\n }}\n ariaRolesType=\"input\"\n focused={focused}\n setFocused={setFocused}\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\n selectedValues={[dropdownValue]}\n messageOnNoResults={messageOnNoResults ?? ''}\n setSelectedValues={() => {\n }}\n isOpen={(!maxSelectedItems || (!!maxSelectedItems && chips.length < maxSelectedItems)) && dropdownIsOpen}\n setIsOpen={setDropdownIsOpen}\n filter={''}\n isButton={false}\n id={`${inputId}_dropdowncontent`}/>\n\n </Wrapper>\n );\n});\n"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ interface ListItem extends ChipItem {
|
|
|
7
7
|
secondaryLabel?: string;
|
|
8
8
|
value: string;
|
|
9
9
|
}
|
|
10
|
-
interface ChipDropdownInputProps extends ChipInputProps {
|
|
10
|
+
interface ChipDropdownInputProps extends Omit<ChipInputProps, 'autoSave'> {
|
|
11
11
|
list: ListItem[] | string[];
|
|
12
12
|
onInputChange?: (input: string) => void;
|
|
13
13
|
messageOnNoResults?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipDropdownInput.js","names":["React","styled","ChipInputContainer","ChipInputField","Size","States","DropdownContent","SystemIcons","useClickOutsideRef","useFocusOutsideRef","Z_INDEXES","Wrapper","div","dropdown","ChipDropdownInput","forwardRef","ref","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationMessage","onValueChange","suggestion","loading","maxSelectedItems","multiLine","size","Medium","icon","disableFiltering","disabled","altPlaceholder","required","rest","useState","givenList","setGivenList","chips","setChips","activeDescendant","setActiveDescendant","value","setValue","restartFilter","setRestartFilter","filteredList","setFilteredList","dropdownIsOpen","setDropdownIsOpen","dropdownList","setDropdownList","dropdownValue","setDropdownValue","focused","setFocused","containerRef","inputRef","useRef","useImperativeHandle","current","useEffect","map","a","find","b","label","index","variant","Default","newList","e","options","filter","option","toUpperCase","indexOf","secondaryLabel","sort","push","o","length","handleClickOutside","contains","target","document","addEventListener","removeEventListener","x","displayLabel","noteLabel","addChip","newChip","handleInputValueChange","handleValueUpdate","item","focus","handleInputKeyDown","event","key","stopPropagation","handleOnChipRemoved","newChips","splice","chip","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","items"],"sources":["../../src/ChipsInput/ChipDropdownInput.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom components.\n */\nimport {ChipInputContainer, ChipInputField} from './ChipInputField';\nimport {Size, States} from '../types';\nimport {DropdownContent, DropdownItem} from '../Dropdown';\nimport {SystemIcons} from '../icons';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {Z_INDEXES} from '../styles';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n\n ${ChipInputContainer} {\n position: relative;\n\n &:focus, &.focus-visible-within {\n z-index: ${Z_INDEXES.dropdown + 1} !important;\n }\n }\n`;\n\n\ninterface ListItem extends ChipItem {\n secondaryLabel?: string;\n value: string;\n}\n\ninterface ChipDropdownInputProps extends ChipInputProps {\n list: ListItem[] | string[];\n onInputChange?: (input: string) => void;\n messageOnNoResults?: string;\n suggestion?: ListItem;\n loading?: boolean;\n maxSelectedItems?: number;\n disableSorting?: boolean;\n disableFiltering?: boolean;\n}\n\nexport const ChipDropdownInput = React.forwardRef<HTMLInputElement | undefined, ChipDropdownInputProps>(({\n list,\n onInputChange,\n disableSorting,\n messageOnNoResults,\n values,\n inputId,\n variants,\n placeholder,\n validationMessage,\n onValueChange,\n suggestion,\n loading,\n maxSelectedItems,\n multiLine = true,\n size = Size.Medium,\n icon,\n disableFiltering,\n disabled,\n altPlaceholder,\n required,\n ...rest\n }: ChipDropdownInputProps, ref) => {\n // Initiate states\n const [givenList, setGivenList] = React.useState<ListItem[]>([]);\n const [chips, setChips] = React.useState<ListItem[]>([]);\n\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\n const [value, setValue] = React.useState<string>('');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [filteredList, setFilteredList] = React.useState<ListItem[]>();\n\n const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\n const [dropdownList, setDropdownList] = React.useState<DropdownItem[]>([]);\n const [dropdownValue, setDropdownValue] = React.useState<string>('');\n\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const containerRef = useClickOutsideRef(() => setDropdownIsOpen(false), [], useFocusOutsideRef(() => setDropdownIsOpen(false)));\n const inputRef = React.useRef<any>();\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n\n const list =\n values.map((a) => chips.find(b => b.value === a) || givenList.find(b => b.value === a) || {\n label: a,\n value: a,\n icon: icon\n })\n .map((a, index) => ({...a, variant: a.variant || (variants && variants[index]) || States.Default}))\n .map((a, index) => ({...a, icon: a.icon || icon}));\n\n setChips(list);\n }, [values, variants, icon, givenList]);\n\n /**\n * Convert string[] to List[] if necessary\n */\n React.useEffect(() => {\n if (typeof list[0] === 'string') {\n const newList: ListItem[] = (list as string[]).map((e: string) => ({label: e, value: e}));\n setGivenList(newList);\n } else {\n setGivenList(list as ListItem[]);\n }\n }, [list]);\n\n /**\n * filter and sort list if remoteOperations is false\n * */\n React.useEffect(() => {\n let options = [...givenList];\n if (!disableFiltering) {\n if (!restartFilter && value !== '') {\n options = options.filter((option) => option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 ||\n (option.secondaryLabel && option.secondaryLabel?.toUpperCase().indexOf(value.toUpperCase()) !== -1));\n }\n }\n\n if (!disableSorting) {\n options = options.sort();\n }\n\n suggestion && options.push(suggestion);\n\n options = options.filter((o) => !chips.find(a => a.value === o.value));\n setFilteredList(options);\n }, [value, givenList, chips, disableFiltering, disableSorting]);\n\n /**\n * if there is only one active item in dropdown mark it as focused\n * */\n React.useEffect(() => {\n if (dropdownIsOpen && !!value && dropdownList?.filter(a => !a.disabled).length === 1) {\n setDropdownValue(dropdownList.find(a => !a.disabled)!.value);\n } else {\n setDropdownValue('');\n }\n }, [dropdownList, dropdownIsOpen, value]);\n\n const handleClickOutside = (e: any) => {\n if (!containerRef.current?.contains(e.target)) {\n if (dropdownIsOpen) {\n setDropdownIsOpen(false);\n if (!givenList.find((e) => e.value === value)) {\n setValue('');\n }\n }\n }\n };\n\n /**\n * register click outside event listener\n * */\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n /**\n * update dropdown items when filtered list changes\n * */\n React.useEffect(() => {\n setDropdownList(filteredList?.map(x => ({\n value: x.value,\n displayLabel: x.label,\n noteLabel: x.secondaryLabel,\n icon: (x.icon ?? icon) && SystemIcons[(x.icon || icon)!]({}),\n disabled: x.disabled,\n })) ?? []);\n }, [filteredList]);\n\n const addChip = (newChip: ListItem) => {\n const newList = [...chips, newChip];\n // Let's add the chip\n setChips(newList);\n onValueChange(newList.map(a => a.value));\n\n setValue('');\n };\n\n const handleInputValueChange = (value: string) => {\n setValue(value);\n setRestartFilter(false);\n setDropdownIsOpen(true);\n onInputChange && onInputChange(value);\n }\n\n /**\n * Add chip from dropdown\n * */\n const handleValueUpdate = (values: string[]) => {\n const item = filteredList?.find(a => a.value === values[0]);\n item && addChip(item);\n setRestartFilter(true);\n inputRef?.current?.focus();\n }\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n if (dropdownList?.filter(a => !a.disabled).length === 1) {\n handleValueUpdate([dropdownList!.find(a => !a.disabled)!.value]);\n event.stopPropagation();\n }\n }\n\n if ((event.key === 'ArrowDown' || event.key === 'Down' || event.key === 'ArrowUp' || event.key === 'Up') && !!dropdownList?.length) {\n setDropdownIsOpen(true);\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const handleOnChipRemoved = (index: number): void => {\n // Let's copy the chips\n const newChips = [...chips];\n\n // Let's delete the chip\n // If necessary, let's replace it with a different chip\n newChips.splice(index, 1);\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange(newChips.map((e) => e.value));\n };\n\n return (\n <Wrapper ref={containerRef}>\n <ChipInputField inputId={inputId}\n ref={inputRef}\n items={chips}\n required={required}\n inputValue={value}\n role=\"combobox\"\n aria-activedescendant={activeDescendant}\n size={size}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n multiLine={multiLine}\n validationMessage={validationMessage}\n loading={loading}\n onRemoveItem={(chip, index) => handleOnChipRemoved(index)}\n onInputValueChange={handleInputValueChange}\n onInputKeyDown={handleInputKeyDown}\n onActivationChange={(value) => setDropdownIsOpen(value)}\n {...rest}/>\n <DropdownContent\n containerRef={containerRef}\n customizationProps={{\n action: () => {\n },\n pinTopItem: true,\n\n itemsType: 'normal',\n scrollable: true,\n actionLabel: '',\n multiSelect: false,\n onValueUpdate: handleValueUpdate,\n items: dropdownList,\n }}\n ariaRolesType=\"input\"\n focused={focused}\n setFocused={setFocused}\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\n selectedValues={[dropdownValue]}\n messageOnNoResults={messageOnNoResults ?? ''}\n setSelectedValues={() => {\n }}\n isOpen={(!maxSelectedItems || (!!maxSelectedItems && chips.length < maxSelectedItems)) && dropdownIsOpen}\n setIsOpen={setDropdownIsOpen}\n filter={''}\n isButton={false}\n id={`${inputId}_dropdowncontent`}/>\n\n </Wrapper>\n );\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChipDropdownInput.js","names":["React","styled","ChipInputContainer","ChipInputField","Size","States","DropdownContent","SystemIcons","useClickOutsideRef","useFocusOutsideRef","Z_INDEXES","Wrapper","div","dropdown","ChipDropdownInput","forwardRef","ref","list","onInputChange","disableSorting","messageOnNoResults","values","inputId","variants","placeholder","validationMessage","onValueChange","suggestion","loading","maxSelectedItems","multiLine","size","Medium","icon","disableFiltering","disabled","altPlaceholder","required","rest","useState","givenList","setGivenList","chips","setChips","activeDescendant","setActiveDescendant","value","setValue","restartFilter","setRestartFilter","filteredList","setFilteredList","dropdownIsOpen","setDropdownIsOpen","dropdownList","setDropdownList","dropdownValue","setDropdownValue","focused","setFocused","containerRef","inputRef","useRef","useImperativeHandle","current","useEffect","map","a","find","b","label","index","variant","Default","newList","e","options","filter","option","toUpperCase","indexOf","secondaryLabel","sort","push","o","length","handleClickOutside","contains","target","document","addEventListener","removeEventListener","x","displayLabel","noteLabel","addChip","newChip","handleInputValueChange","handleValueUpdate","item","focus","handleInputKeyDown","event","key","stopPropagation","handleOnChipRemoved","newChips","splice","chip","action","pinTopItem","itemsType","scrollable","actionLabel","multiSelect","onValueUpdate","items"],"sources":["../../src/ChipsInput/ChipDropdownInput.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom components.\n */\nimport {ChipInputContainer, ChipInputField} from './ChipInputField';\nimport {Size, States} from '../types';\nimport {DropdownContent, DropdownItem} from '../Dropdown';\nimport {SystemIcons} from '../icons';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {Z_INDEXES} from '../styles';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n\n ${ChipInputContainer} {\n position: relative;\n\n &:focus, &.focus-visible-within {\n z-index: ${Z_INDEXES.dropdown + 1} !important;\n }\n }\n`;\n\n\ninterface ListItem extends ChipItem {\n secondaryLabel?: string;\n value: string;\n}\n\ninterface ChipDropdownInputProps extends Omit<ChipInputProps, 'autoSave'> {\n list: ListItem[] | string[];\n onInputChange?: (input: string) => void;\n messageOnNoResults?: string;\n suggestion?: ListItem;\n loading?: boolean;\n maxSelectedItems?: number;\n disableSorting?: boolean;\n disableFiltering?: boolean;\n}\n\nexport const ChipDropdownInput = React.forwardRef<HTMLInputElement | undefined, ChipDropdownInputProps>(({\n list,\n onInputChange,\n disableSorting,\n messageOnNoResults,\n values,\n inputId,\n variants,\n placeholder,\n validationMessage,\n onValueChange,\n suggestion,\n loading,\n maxSelectedItems,\n multiLine = true,\n size = Size.Medium,\n icon,\n disableFiltering,\n disabled,\n altPlaceholder,\n required,\n ...rest\n }: ChipDropdownInputProps, ref) => {\n // Initiate states\n const [givenList, setGivenList] = React.useState<ListItem[]>([]);\n const [chips, setChips] = React.useState<ListItem[]>([]);\n\n const [activeDescendant, setActiveDescendant] = React.useState<string>();\n const [value, setValue] = React.useState<string>('');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [filteredList, setFilteredList] = React.useState<ListItem[]>();\n\n const [dropdownIsOpen, setDropdownIsOpen] = React.useState<boolean>(false);\n const [dropdownList, setDropdownList] = React.useState<DropdownItem[]>([]);\n const [dropdownValue, setDropdownValue] = React.useState<string>('');\n\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const containerRef = useClickOutsideRef(() => setDropdownIsOpen(false), [], useFocusOutsideRef(() => setDropdownIsOpen(false)));\n const inputRef = React.useRef<any>();\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n\n const list =\n values.map((a) => chips.find(b => b.value === a) || givenList.find(b => b.value === a) || {\n label: a,\n value: a,\n icon: icon\n })\n .map((a, index) => ({...a, variant: a.variant || (variants && variants[index]) || States.Default}))\n .map((a, index) => ({...a, icon: a.icon || icon}));\n\n setChips(list);\n }, [values, variants, icon, givenList]);\n\n /**\n * Convert string[] to List[] if necessary\n */\n React.useEffect(() => {\n if (typeof list[0] === 'string') {\n const newList: ListItem[] = (list as string[]).map((e: string) => ({label: e, value: e}));\n setGivenList(newList);\n } else {\n setGivenList(list as ListItem[]);\n }\n }, [list]);\n\n /**\n * filter and sort list if remoteOperations is false\n * */\n React.useEffect(() => {\n let options = [...givenList];\n if (!disableFiltering) {\n if (!restartFilter && value !== '') {\n options = options.filter((option) => option.label.toUpperCase().indexOf(value.toUpperCase()) !== -1 ||\n (option.secondaryLabel && option.secondaryLabel?.toUpperCase().indexOf(value.toUpperCase()) !== -1));\n }\n }\n\n if (!disableSorting) {\n options = options.sort();\n }\n\n suggestion && options.push(suggestion);\n\n options = options.filter((o) => !chips.find(a => a.value === o.value));\n setFilteredList(options);\n }, [value, givenList, chips, disableFiltering, disableSorting]);\n\n /**\n * if there is only one active item in dropdown mark it as focused\n * */\n React.useEffect(() => {\n if (dropdownIsOpen && !!value && dropdownList?.filter(a => !a.disabled).length === 1) {\n setDropdownValue(dropdownList.find(a => !a.disabled)!.value);\n } else {\n setDropdownValue('');\n }\n }, [dropdownList, dropdownIsOpen, value]);\n\n const handleClickOutside = (e: any) => {\n if (!containerRef.current?.contains(e.target)) {\n if (dropdownIsOpen) {\n setDropdownIsOpen(false);\n if (!givenList.find((e) => e.value === value)) {\n setValue('');\n }\n }\n }\n };\n\n /**\n * register click outside event listener\n * */\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n /**\n * update dropdown items when filtered list changes\n * */\n React.useEffect(() => {\n setDropdownList(filteredList?.map(x => ({\n value: x.value,\n displayLabel: x.label,\n noteLabel: x.secondaryLabel,\n icon: (x.icon ?? icon) && SystemIcons[(x.icon || icon)!]({}),\n disabled: x.disabled,\n })) ?? []);\n }, [filteredList]);\n\n const addChip = (newChip: ListItem) => {\n const newList = [...chips, newChip];\n // Let's add the chip\n setChips(newList);\n onValueChange(newList.map(a => a.value));\n\n setValue('');\n };\n\n const handleInputValueChange = (value: string) => {\n setValue(value);\n setRestartFilter(false);\n setDropdownIsOpen(true);\n onInputChange && onInputChange(value);\n }\n\n /**\n * Add chip from dropdown\n * */\n const handleValueUpdate = (values: string[]) => {\n const item = filteredList?.find(a => a.value === values[0]);\n item && addChip(item);\n setRestartFilter(true);\n inputRef?.current?.focus();\n }\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n // Let's trigger only on enter, comma and space key press\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n if (dropdownList?.filter(a => !a.disabled).length === 1) {\n handleValueUpdate([dropdownList!.find(a => !a.disabled)!.value]);\n event.stopPropagation();\n }\n }\n\n if ((event.key === 'ArrowDown' || event.key === 'Down' || event.key === 'ArrowUp' || event.key === 'Up') && !!dropdownList?.length) {\n setDropdownIsOpen(true);\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const handleOnChipRemoved = (index: number): void => {\n // Let's copy the chips\n const newChips = [...chips];\n\n // Let's delete the chip\n // If necessary, let's replace it with a different chip\n newChips.splice(index, 1);\n\n // Let's update the chip list\n setChips([...newChips]);\n onValueChange(newChips.map((e) => e.value));\n };\n\n return (\n <Wrapper ref={containerRef}>\n <ChipInputField inputId={inputId}\n ref={inputRef}\n items={chips}\n required={required}\n inputValue={value}\n role=\"combobox\"\n aria-activedescendant={activeDescendant}\n size={size}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n multiLine={multiLine}\n validationMessage={validationMessage}\n loading={loading}\n onRemoveItem={(chip, index) => handleOnChipRemoved(index)}\n onInputValueChange={handleInputValueChange}\n onInputKeyDown={handleInputKeyDown}\n onActivationChange={(value) => setDropdownIsOpen(value)}\n {...rest}/>\n <DropdownContent\n containerRef={containerRef}\n customizationProps={{\n action: () => {\n },\n pinTopItem: true,\n\n itemsType: 'normal',\n scrollable: true,\n actionLabel: '',\n multiSelect: false,\n onValueUpdate: handleValueUpdate,\n items: dropdownList,\n }}\n ariaRolesType=\"input\"\n focused={focused}\n setFocused={setFocused}\n onActiveDescendantChanged={(e) => setActiveDescendant(e)}\n selectedValues={[dropdownValue]}\n messageOnNoResults={messageOnNoResults ?? ''}\n setSelectedValues={() => {\n }}\n isOpen={(!maxSelectedItems || (!!maxSelectedItems && chips.length < maxSelectedItems)) && dropdownIsOpen}\n setIsOpen={setDropdownIsOpen}\n filter={''}\n isButton={false}\n id={`${inputId}_dropdowncontent`}/>\n\n </Wrapper>\n );\n});\n"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
14
14
|
var _types = require("../types");
|
|
15
15
|
var _ChipInputField = require("./ChipInputField");
|
|
16
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
-
var _excluded = ["values", "inputId", "variants", "icon", "placeholder", "disabled", "altPlaceholder", "validationMessage", "onValueChange", "multiLine", "size"];
|
|
17
|
+
var _excluded = ["values", "inputId", "variants", "icon", "placeholder", "disabled", "altPlaceholder", "validationMessage", "onValueChange", "multiLine", "size", "autoSave"];
|
|
18
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
19
|
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; }
|
|
20
20
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -33,6 +33,8 @@ var ChipInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
33
33
|
multiLine = _ref$multiLine === void 0 ? true : _ref$multiLine,
|
|
34
34
|
_ref$size = _ref.size,
|
|
35
35
|
size = _ref$size === void 0 ? _types.Size.Medium : _ref$size,
|
|
36
|
+
_ref$autoSave = _ref.autoSave,
|
|
37
|
+
autoSave = _ref$autoSave === void 0 ? false : _ref$autoSave,
|
|
36
38
|
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
37
39
|
var _React$useState = React.useState([]),
|
|
38
40
|
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
@@ -68,6 +70,11 @@ var ChipInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
68
70
|
};
|
|
69
71
|
}));
|
|
70
72
|
}, [chips, variants, icon, size]);
|
|
73
|
+
var addCurrentChip = function addCurrentChip() {
|
|
74
|
+
setChips([].concat((0, _toConsumableArray2.default)(chips), [value]));
|
|
75
|
+
onValueChange([].concat((0, _toConsumableArray2.default)(chips), [value]));
|
|
76
|
+
setValue('');
|
|
77
|
+
};
|
|
71
78
|
|
|
72
79
|
/**
|
|
73
80
|
* Adds a chip to the chip list.
|
|
@@ -76,9 +83,7 @@ var ChipInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
76
83
|
var handleInputKeyDown = function handleInputKeyDown(event) {
|
|
77
84
|
if ((event.key === 'Enter' || event.key === ' ') && value) {
|
|
78
85
|
event.preventDefault();
|
|
79
|
-
|
|
80
|
-
onValueChange([].concat((0, _toConsumableArray2.default)(chips), [value]));
|
|
81
|
-
setValue('');
|
|
86
|
+
addCurrentChip();
|
|
82
87
|
}
|
|
83
88
|
};
|
|
84
89
|
|
|
@@ -113,7 +118,10 @@ var ChipInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
113
118
|
disabled: disabled,
|
|
114
119
|
validationMessage: validationMessage,
|
|
115
120
|
multiLine: multiLine,
|
|
116
|
-
size: size
|
|
121
|
+
size: size,
|
|
122
|
+
onBlur: function onBlur() {
|
|
123
|
+
return autoSave && value && addCurrentChip();
|
|
124
|
+
}
|
|
117
125
|
}, rest));
|
|
118
126
|
});
|
|
119
127
|
var _default = ChipInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipInput.cjs","names":["ChipInput","React","forwardRef","ref","values","inputId","variants","icon","placeholder","disabled","altPlaceholder","validationMessage","onValueChange","multiLine","size","Size","Medium","rest","useState","chips","setChips","value","setValue","chipItems","setChipItems","useEffect","map","chip","index","label","variant","handleInputKeyDown","event","key","preventDefault","onRemoveChip","newChips","splice","item"],"sources":["../../src/ChipsInput/ChipInput.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types';\nimport {ChipInputField} from './ChipInputField';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\n\n\nconst ChipInput = React.forwardRef<HTMLInputElement, ChipInputProps>(({\n values,\n inputId,\n variants,\n icon,\n placeholder,\n disabled,\n altPlaceholder,\n validationMessage,\n onValueChange,\n multiLine = true,\n size = Size.Medium,\n ...rest\n }: ChipInputProps, ref) => {\n\n const [chips, setChips] = React.useState<string[]>([]);\n const [value, setValue] = React.useState<string>('');\n const [chipItems, setChipItems] = React.useState<ChipItem[]>([]);\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n // Let's add initial chip values\n setChips(values);\n }, [values]);\n\n /**\n * Set chip items for chip input field\n * */\n React.useEffect(() => {\n setChipItems(chips.map((chip, index) => ({\n label: chip,\n icon: icon,\n disabled: false,\n variant: variants && variants[index],\n })));\n }, [chips, variants, icon, size]);\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n event.preventDefault();\n\n
|
|
1
|
+
{"version":3,"file":"ChipInput.cjs","names":["ChipInput","React","forwardRef","ref","values","inputId","variants","icon","placeholder","disabled","altPlaceholder","validationMessage","onValueChange","multiLine","size","Size","Medium","autoSave","rest","useState","chips","setChips","value","setValue","chipItems","setChipItems","useEffect","map","chip","index","label","variant","addCurrentChip","handleInputKeyDown","event","key","preventDefault","onRemoveChip","newChips","splice","item"],"sources":["../../src/ChipsInput/ChipInput.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types';\nimport {ChipInputField} from './ChipInputField';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\n\n\nconst ChipInput = React.forwardRef<HTMLInputElement, ChipInputProps>(({\n values,\n inputId,\n variants,\n icon,\n placeholder,\n disabled,\n altPlaceholder,\n validationMessage,\n onValueChange,\n multiLine = true,\n size = Size.Medium,\n autoSave = false,\n ...rest\n }: ChipInputProps, ref) => {\n\n const [chips, setChips] = React.useState<string[]>([]);\n const [value, setValue] = React.useState<string>('');\n const [chipItems, setChipItems] = React.useState<ChipItem[]>([]);\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n // Let's add initial chip values\n setChips(values);\n }, [values]);\n\n /**\n * Set chip items for chip input field\n * */\n React.useEffect(() => {\n setChipItems(chips.map((chip, index) => ({\n label: chip,\n icon: icon,\n disabled: false,\n variant: variants && variants[index],\n })));\n }, [chips, variants, icon, size]);\n\n const addCurrentChip = () => {\n setChips([...chips, value]);\n onValueChange([...chips, value]);\n\n setValue('');\n };\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n event.preventDefault();\n\n addCurrentChip()\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const onRemoveChip = (index: number): void => {\n const newChips = [...chips];\n newChips.splice(index, 1);\n\n setChips(newChips);\n onValueChange(newChips);\n };\n\n /**\n * Return Chip Input component.\n */\n return (\n <ChipInputField inputId={inputId}\n ref={ref}\n items={chipItems}\n onRemoveItem={(item, index) => onRemoveChip(index)}\n inputValue={value}\n onInputValueChange={value => setValue(value)}\n onInputKeyDown={handleInputKeyDown}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n validationMessage={validationMessage}\n multiLine={multiLine}\n size={size}\n onBlur={() => autoSave && value && addCurrentChip()}\n {...rest}\n />\n );\n});\n\nexport default ChipInput;\n"],"mappings":";;;;;;;;;;;;AAGA;AAKA;AACA;AAAgD;AAAA;AAAA;AAAA;AAAA;AAAA;AAIhD,IAAMA,SAAS,gBAAGC,KAAK,CAACC,UAAU,CAAmC,gBAcoBC,GAAG,EAAK;EAAA,IAbzBC,MAAM,QAANA,MAAM;IACNC,OAAO,QAAPA,OAAO;IACPC,QAAQ,QAARA,QAAQ;IACRC,IAAI,QAAJA,IAAI;IACJC,WAAW,QAAXA,WAAW;IACXC,QAAQ,QAARA,QAAQ;IACRC,cAAc,QAAdA,cAAc;IACdC,iBAAiB,QAAjBA,iBAAiB;IACjBC,aAAa,QAAbA,aAAa;IAAA,sBACbC,SAAS;IAATA,SAAS,+BAAG,IAAI;IAAA,iBAChBC,IAAI;IAAJA,IAAI,0BAAGC,WAAI,CAACC,MAAM;IAAA,qBAClBC,QAAQ;IAARA,QAAQ,8BAAG,KAAK;IACbC,IAAI;EAG7E,sBAA0BjB,KAAK,CAACkB,QAAQ,CAAW,EAAE,CAAC;IAAA;IAA/CC,KAAK;IAAEC,QAAQ;EACtB,uBAA0BpB,KAAK,CAACkB,QAAQ,CAAS,EAAE,CAAC;IAAA;IAA7CG,KAAK;IAAEC,QAAQ;EACtB,uBAAkCtB,KAAK,CAACkB,QAAQ,CAAa,EAAE,CAAC;IAAA;IAAzDK,SAAS;IAAEC,YAAY;;EAE9B;AACF;AACA;EACExB,KAAK,CAACyB,SAAS,CAAC,YAAM;IACpB;IACAL,QAAQ,CAACjB,MAAM,CAAC;EAClB,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;;EAEZ;AACF;AACA;EACEH,KAAK,CAACyB,SAAS,CAAC,YAAM;IACpBD,YAAY,CAACL,KAAK,CAACO,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK;MAAA,OAAM;QACvCC,KAAK,EAAEF,IAAI;QACXrB,IAAI,EAAEA,IAAI;QACVE,QAAQ,EAAE,KAAK;QACfsB,OAAO,EAAEzB,QAAQ,IAAIA,QAAQ,CAACuB,KAAK;MACrC,CAAC;IAAA,CAAC,CAAC,CAAC;EACN,CAAC,EAAE,CAACT,KAAK,EAAEd,QAAQ,EAAEC,IAAI,EAAEO,IAAI,CAAC,CAAC;EAEjC,IAAMkB,cAAc,GAAG,SAAjBA,cAAc,GAAS;IAC3BX,QAAQ,4CAAKD,KAAK,IAAEE,KAAK,GAAE;IAC3BV,aAAa,4CAAKQ,KAAK,IAAEE,KAAK,GAAE;IAEhCC,QAAQ,CAAC,EAAE,CAAC;EACd,CAAC;;EAED;AACF;AACA;AACA;EACE,IAAMU,kBAAkB,GAAG,SAArBA,kBAAkB,CAAIC,KAA4C,EAAW;IACjF,IAAI,CAACA,KAAK,CAACC,GAAG,KAAK,OAAO,IAAID,KAAK,CAACC,GAAG,KAAK,GAAG,KAAKb,KAAK,EAAE;MACzDY,KAAK,CAACE,cAAc,EAAE;MAEtBJ,cAAc,EAAE;IAClB;EACF,CAAC;;EAED;AACF;AACA;AACA;EACE,IAAMK,YAAY,GAAG,SAAfA,YAAY,CAAIR,KAAa,EAAW;IAC5C,IAAMS,QAAQ,oCAAOlB,KAAK,CAAC;IAC3BkB,QAAQ,CAACC,MAAM,CAACV,KAAK,EAAE,CAAC,CAAC;IAEzBR,QAAQ,CAACiB,QAAQ,CAAC;IAClB1B,aAAa,CAAC0B,QAAQ,CAAC;EACzB,CAAC;;EAED;AACF;AACA;EACE,oBACE,qBAAC,8BAAc;IAAC,OAAO,EAAEjC,OAAQ;IACjB,GAAG,EAAEF,GAAI;IACT,KAAK,EAAEqB,SAAU;IACjB,YAAY,EAAE,sBAACgB,IAAI,EAAEX,KAAK;MAAA,OAAKQ,YAAY,CAACR,KAAK,CAAC;IAAA,CAAC;IACnD,UAAU,EAAEP,KAAM;IAClB,kBAAkB,EAAE,4BAAAA,KAAK;MAAA,OAAIC,QAAQ,CAACD,KAAK,CAAC;IAAA,CAAC;IAC7C,cAAc,EAAEW,kBAAmB;IACnC,WAAW,EAAEzB,WAAY;IACzB,cAAc,EAAEE,cAAe;IAC/B,QAAQ,EAAED,QAAS;IACnB,iBAAiB,EAAEE,iBAAkB;IACrC,SAAS,EAAEE,SAAU;IACrB,IAAI,EAAEC,IAAK;IACX,MAAM,EAAE;MAAA,OAAMG,QAAQ,IAAIK,KAAK,IAAIU,cAAc,EAAE;IAAA;EAAC,GAChDd,IAAI,EACtB;AAEN,CAAC,CAAC;AAAC,eAEYlB,SAAS;AAAA"}
|
|
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
|
-
var _excluded = ["values", "inputId", "variants", "icon", "placeholder", "disabled", "altPlaceholder", "validationMessage", "onValueChange", "multiLine", "size"];
|
|
5
|
+
var _excluded = ["values", "inputId", "variants", "icon", "placeholder", "disabled", "altPlaceholder", "validationMessage", "onValueChange", "multiLine", "size", "autoSave"];
|
|
6
6
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7
7
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
8
8
|
/**
|
|
@@ -30,6 +30,8 @@ var ChipInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
30
30
|
multiLine = _ref$multiLine === void 0 ? true : _ref$multiLine,
|
|
31
31
|
_ref$size = _ref.size,
|
|
32
32
|
size = _ref$size === void 0 ? Size.Medium : _ref$size,
|
|
33
|
+
_ref$autoSave = _ref.autoSave,
|
|
34
|
+
autoSave = _ref$autoSave === void 0 ? false : _ref$autoSave,
|
|
33
35
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
34
36
|
var _React$useState = React.useState([]),
|
|
35
37
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -65,6 +67,11 @@ var ChipInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
65
67
|
};
|
|
66
68
|
}));
|
|
67
69
|
}, [chips, variants, icon, size]);
|
|
70
|
+
var addCurrentChip = function addCurrentChip() {
|
|
71
|
+
setChips([].concat(_toConsumableArray(chips), [value]));
|
|
72
|
+
onValueChange([].concat(_toConsumableArray(chips), [value]));
|
|
73
|
+
setValue('');
|
|
74
|
+
};
|
|
68
75
|
|
|
69
76
|
/**
|
|
70
77
|
* Adds a chip to the chip list.
|
|
@@ -73,9 +80,7 @@ var ChipInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
73
80
|
var handleInputKeyDown = function handleInputKeyDown(event) {
|
|
74
81
|
if ((event.key === 'Enter' || event.key === ' ') && value) {
|
|
75
82
|
event.preventDefault();
|
|
76
|
-
|
|
77
|
-
onValueChange([].concat(_toConsumableArray(chips), [value]));
|
|
78
|
-
setValue('');
|
|
83
|
+
addCurrentChip();
|
|
79
84
|
}
|
|
80
85
|
};
|
|
81
86
|
|
|
@@ -110,7 +115,10 @@ var ChipInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
110
115
|
disabled: disabled,
|
|
111
116
|
validationMessage: validationMessage,
|
|
112
117
|
multiLine: multiLine,
|
|
113
|
-
size: size
|
|
118
|
+
size: size,
|
|
119
|
+
onBlur: function onBlur() {
|
|
120
|
+
return autoSave && value && addCurrentChip();
|
|
121
|
+
}
|
|
114
122
|
}, rest));
|
|
115
123
|
});
|
|
116
124
|
export default ChipInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipInput.js","names":["React","Size","ChipInputField","ChipInput","forwardRef","ref","values","inputId","variants","icon","placeholder","disabled","altPlaceholder","validationMessage","onValueChange","multiLine","size","Medium","rest","useState","chips","setChips","value","setValue","chipItems","setChipItems","useEffect","map","chip","index","label","variant","handleInputKeyDown","event","key","preventDefault","onRemoveChip","newChips","splice","item"],"sources":["../../src/ChipsInput/ChipInput.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types';\nimport {ChipInputField} from './ChipInputField';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\n\n\nconst ChipInput = React.forwardRef<HTMLInputElement, ChipInputProps>(({\n values,\n inputId,\n variants,\n icon,\n placeholder,\n disabled,\n altPlaceholder,\n validationMessage,\n onValueChange,\n multiLine = true,\n size = Size.Medium,\n ...rest\n }: ChipInputProps, ref) => {\n\n const [chips, setChips] = React.useState<string[]>([]);\n const [value, setValue] = React.useState<string>('');\n const [chipItems, setChipItems] = React.useState<ChipItem[]>([]);\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n // Let's add initial chip values\n setChips(values);\n }, [values]);\n\n /**\n * Set chip items for chip input field\n * */\n React.useEffect(() => {\n setChipItems(chips.map((chip, index) => ({\n label: chip,\n icon: icon,\n disabled: false,\n variant: variants && variants[index],\n })));\n }, [chips, variants, icon, size]);\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n event.preventDefault();\n\n
|
|
1
|
+
{"version":3,"file":"ChipInput.js","names":["React","Size","ChipInputField","ChipInput","forwardRef","ref","values","inputId","variants","icon","placeholder","disabled","altPlaceholder","validationMessage","onValueChange","multiLine","size","Medium","autoSave","rest","useState","chips","setChips","value","setValue","chipItems","setChipItems","useEffect","map","chip","index","label","variant","addCurrentChip","handleInputKeyDown","event","key","preventDefault","onRemoveChip","newChips","splice","item"],"sources":["../../src/ChipsInput/ChipInput.tsx"],"sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types';\nimport {ChipInputField} from './ChipInputField';\nimport {ChipInputProps, ChipItem} from './ChipInputTypes';\n\n\nconst ChipInput = React.forwardRef<HTMLInputElement, ChipInputProps>(({\n values,\n inputId,\n variants,\n icon,\n placeholder,\n disabled,\n altPlaceholder,\n validationMessage,\n onValueChange,\n multiLine = true,\n size = Size.Medium,\n autoSave = false,\n ...rest\n }: ChipInputProps, ref) => {\n\n const [chips, setChips] = React.useState<string[]>([]);\n const [value, setValue] = React.useState<string>('');\n const [chipItems, setChipItems] = React.useState<ChipItem[]>([]);\n\n /**\n * Sets initial values for the chips.\n */\n React.useEffect(() => {\n // Let's add initial chip values\n setChips(values);\n }, [values]);\n\n /**\n * Set chip items for chip input field\n * */\n React.useEffect(() => {\n setChipItems(chips.map((chip, index) => ({\n label: chip,\n icon: icon,\n disabled: false,\n variant: variants && variants[index],\n })));\n }, [chips, variants, icon, size]);\n\n const addCurrentChip = () => {\n setChips([...chips, value]);\n onValueChange([...chips, value]);\n\n setValue('');\n };\n\n /**\n * Adds a chip to the chip list.\n * @param event - Event handler from the key down event.\n */\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n if ((event.key === 'Enter' || event.key === ' ') && value) {\n event.preventDefault();\n\n addCurrentChip()\n }\n };\n\n /**\n * Removes a specific chip from the chip list.\n * @param index - Index of the chip that needs to be removed.\n */\n const onRemoveChip = (index: number): void => {\n const newChips = [...chips];\n newChips.splice(index, 1);\n\n setChips(newChips);\n onValueChange(newChips);\n };\n\n /**\n * Return Chip Input component.\n */\n return (\n <ChipInputField inputId={inputId}\n ref={ref}\n items={chipItems}\n onRemoveItem={(item, index) => onRemoveChip(index)}\n inputValue={value}\n onInputValueChange={value => setValue(value)}\n onInputKeyDown={handleInputKeyDown}\n placeholder={placeholder}\n altPlaceholder={altPlaceholder}\n disabled={disabled}\n validationMessage={validationMessage}\n multiLine={multiLine}\n size={size}\n onBlur={() => autoSave && value && addCurrentChip()}\n {...rest}\n />\n );\n});\n\nexport default ChipInput;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipInputTypes.cjs","names":[],"sources":["../../src/ChipsInput/ChipInputTypes.ts"],"sourcesContent":["import {Size} from '../types';\nimport {ChipIcons, ChipVariant} from '../Chips/ChipTypes';\nimport React from \"react\";\n\n\nexport interface ChipInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'list' | 'type' | 'id' | 'required' | 'tabIndex' | 'value' | 'onChange' | 'onKeyDown' | 'placeholder' | 'onClick' | 'disabled' | 'size'> {\n inputId: string;\n values: string[];\n icon?: ChipIcons;\n variants?: ChipVariant[];\n placeholder?: string;\n altPlaceholder?: string;\n\n onValueChange: (chips: string[]) => void;\n multiLine?: boolean;\n disabled?: boolean;\n size?: Size.Medium | Size.Small;\n\n validationMessage?: string;\n\n required?: boolean;\n}\n\n\nexport interface ChipItem {\n label: string;\n icon?: ChipIcons;\n disabled?: boolean;\n variant?: ChipVariant;\n}\n\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ChipInputTypes.cjs","names":[],"sources":["../../src/ChipsInput/ChipInputTypes.ts"],"sourcesContent":["import {Size} from '../types';\nimport {ChipIcons, ChipVariant} from '../Chips/ChipTypes';\nimport React from \"react\";\n\n\nexport interface ChipInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'autoSave' | 'list' | 'type' | 'id' | 'required' | 'tabIndex' | 'value' | 'onChange' | 'onKeyDown' | 'placeholder' | 'onClick' | 'disabled' | 'size'> {\n inputId: string;\n values: string[];\n icon?: ChipIcons;\n variants?: ChipVariant[];\n placeholder?: string;\n altPlaceholder?: string;\n\n onValueChange: (chips: string[]) => void;\n multiLine?: boolean;\n disabled?: boolean;\n size?: Size.Medium | Size.Small;\n\n validationMessage?: string;\n\n required?: boolean;\n\n autoSave?: boolean;\n}\n\n\nexport interface ChipItem {\n label: string;\n icon?: ChipIcons;\n disabled?: boolean;\n variant?: ChipVariant;\n}\n\n"],"mappings":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Size } from '../types';
|
|
2
2
|
import { ChipIcons, ChipVariant } from '../Chips/ChipTypes';
|
|
3
3
|
import React from "react";
|
|
4
|
-
export interface ChipInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'list' | 'type' | 'id' | 'required' | 'tabIndex' | 'value' | 'onChange' | 'onKeyDown' | 'placeholder' | 'onClick' | 'disabled' | 'size'> {
|
|
4
|
+
export interface ChipInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'autoSave' | 'list' | 'type' | 'id' | 'required' | 'tabIndex' | 'value' | 'onChange' | 'onKeyDown' | 'placeholder' | 'onClick' | 'disabled' | 'size'> {
|
|
5
5
|
inputId: string;
|
|
6
6
|
values: string[];
|
|
7
7
|
icon?: ChipIcons;
|
|
@@ -14,6 +14,7 @@ export interface ChipInputProps extends Omit<React.InputHTMLAttributes<HTMLInput
|
|
|
14
14
|
size?: Size.Medium | Size.Small;
|
|
15
15
|
validationMessage?: string;
|
|
16
16
|
required?: boolean;
|
|
17
|
+
autoSave?: boolean;
|
|
17
18
|
}
|
|
18
19
|
export interface ChipItem {
|
|
19
20
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipInputTypes.js","names":[],"sources":["../../src/ChipsInput/ChipInputTypes.ts"],"sourcesContent":["import {Size} from '../types';\nimport {ChipIcons, ChipVariant} from '../Chips/ChipTypes';\nimport React from \"react\";\n\n\nexport interface ChipInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'list' | 'type' | 'id' | 'required' | 'tabIndex' | 'value' | 'onChange' | 'onKeyDown' | 'placeholder' | 'onClick' | 'disabled' | 'size'> {\n inputId: string;\n values: string[];\n icon?: ChipIcons;\n variants?: ChipVariant[];\n placeholder?: string;\n altPlaceholder?: string;\n\n onValueChange: (chips: string[]) => void;\n multiLine?: boolean;\n disabled?: boolean;\n size?: Size.Medium | Size.Small;\n\n validationMessage?: string;\n\n required?: boolean;\n}\n\n\nexport interface ChipItem {\n label: string;\n icon?: ChipIcons;\n disabled?: boolean;\n variant?: ChipVariant;\n}\n\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ChipInputTypes.js","names":[],"sources":["../../src/ChipsInput/ChipInputTypes.ts"],"sourcesContent":["import {Size} from '../types';\nimport {ChipIcons, ChipVariant} from '../Chips/ChipTypes';\nimport React from \"react\";\n\n\nexport interface ChipInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'autoSave' | 'list' | 'type' | 'id' | 'required' | 'tabIndex' | 'value' | 'onChange' | 'onKeyDown' | 'placeholder' | 'onClick' | 'disabled' | 'size'> {\n inputId: string;\n values: string[];\n icon?: ChipIcons;\n variants?: ChipVariant[];\n placeholder?: string;\n altPlaceholder?: string;\n\n onValueChange: (chips: string[]) => void;\n multiLine?: boolean;\n disabled?: boolean;\n size?: Size.Medium | Size.Small;\n\n validationMessage?: string;\n\n required?: boolean;\n\n autoSave?: boolean;\n}\n\n\nexport interface ChipItem {\n label: string;\n icon?: ChipIcons;\n disabled?: boolean;\n variant?: ChipVariant;\n}\n\n"],"mappings":""}
|