@transferwise/components 46.98.0 → 46.98.1
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/build/dateInput/DateInput.js +4 -4
- package/build/dateInput/DateInput.js.map +1 -1
- package/build/dateInput/DateInput.mjs +4 -4
- package/build/dateInput/DateInput.mjs.map +1 -1
- package/build/dateLookup/DateLookup.js +4 -4
- package/build/dateLookup/DateLookup.js.map +1 -1
- package/build/dateLookup/DateLookup.mjs +4 -4
- package/build/dateLookup/DateLookup.mjs.map +1 -1
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.js +3 -3
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.js.map +1 -1
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.mjs +3 -3
- package/build/dateLookup/dayCalendar/table/DayCalendarTable.mjs.map +1 -1
- package/build/i18n/cs.json +0 -2
- package/build/i18n/cs.json.js +0 -2
- package/build/i18n/cs.json.js.map +1 -1
- package/build/i18n/cs.json.mjs +0 -2
- package/build/i18n/cs.json.mjs.map +1 -1
- package/build/i18n/de.json +0 -2
- package/build/i18n/de.json.js +0 -2
- package/build/i18n/de.json.js.map +1 -1
- package/build/i18n/de.json.mjs +0 -2
- package/build/i18n/de.json.mjs.map +1 -1
- package/build/i18n/en.json +0 -2
- package/build/i18n/en.json.js +0 -2
- package/build/i18n/en.json.js.map +1 -1
- package/build/i18n/en.json.mjs +0 -2
- package/build/i18n/en.json.mjs.map +1 -1
- package/build/i18n/es.json +0 -2
- package/build/i18n/es.json.js +0 -2
- package/build/i18n/es.json.js.map +1 -1
- package/build/i18n/es.json.mjs +0 -2
- package/build/i18n/es.json.mjs.map +1 -1
- package/build/i18n/fr.json +0 -2
- package/build/i18n/fr.json.js +0 -2
- package/build/i18n/fr.json.js.map +1 -1
- package/build/i18n/fr.json.mjs +0 -2
- package/build/i18n/fr.json.mjs.map +1 -1
- package/build/i18n/hu.json +0 -2
- package/build/i18n/hu.json.js +0 -2
- package/build/i18n/hu.json.js.map +1 -1
- package/build/i18n/hu.json.mjs +0 -2
- package/build/i18n/hu.json.mjs.map +1 -1
- package/build/i18n/id.json +0 -2
- package/build/i18n/id.json.js +0 -2
- package/build/i18n/id.json.js.map +1 -1
- package/build/i18n/id.json.mjs +0 -2
- package/build/i18n/id.json.mjs.map +1 -1
- package/build/i18n/it.json +0 -2
- package/build/i18n/it.json.js +0 -2
- package/build/i18n/it.json.js.map +1 -1
- package/build/i18n/it.json.mjs +0 -2
- package/build/i18n/it.json.mjs.map +1 -1
- package/build/i18n/ja.json +0 -2
- package/build/i18n/ja.json.js +0 -2
- package/build/i18n/ja.json.js.map +1 -1
- package/build/i18n/ja.json.mjs +0 -2
- package/build/i18n/ja.json.mjs.map +1 -1
- package/build/i18n/nl.json +0 -2
- package/build/i18n/pl.json +0 -2
- package/build/i18n/pl.json.js +0 -2
- package/build/i18n/pl.json.js.map +1 -1
- package/build/i18n/pl.json.mjs +0 -2
- package/build/i18n/pl.json.mjs.map +1 -1
- package/build/i18n/pt.json +0 -2
- package/build/i18n/pt.json.js +0 -2
- package/build/i18n/pt.json.js.map +1 -1
- package/build/i18n/pt.json.mjs +0 -2
- package/build/i18n/pt.json.mjs.map +1 -1
- package/build/i18n/ro.json +0 -2
- package/build/i18n/ro.json.js +0 -2
- package/build/i18n/ro.json.js.map +1 -1
- package/build/i18n/ro.json.mjs +0 -2
- package/build/i18n/ro.json.mjs.map +1 -1
- package/build/i18n/ru.json +0 -2
- package/build/i18n/ru.json.js +0 -2
- package/build/i18n/ru.json.js.map +1 -1
- package/build/i18n/ru.json.mjs +0 -2
- package/build/i18n/ru.json.mjs.map +1 -1
- package/build/i18n/th.json +0 -2
- package/build/i18n/th.json.js +0 -2
- package/build/i18n/th.json.js.map +1 -1
- package/build/i18n/th.json.mjs +0 -2
- package/build/i18n/th.json.mjs.map +1 -1
- package/build/i18n/tr.json +0 -2
- package/build/i18n/tr.json.js +0 -2
- package/build/i18n/tr.json.js.map +1 -1
- package/build/i18n/tr.json.mjs +0 -2
- package/build/i18n/tr.json.mjs.map +1 -1
- package/build/i18n/zh-CN.json +0 -2
- package/build/i18n/zh-CN.json.js +0 -2
- package/build/i18n/zh-CN.json.js.map +1 -1
- package/build/i18n/zh-CN.json.mjs +0 -2
- package/build/i18n/zh-CN.json.mjs.map +1 -1
- package/build/i18n/zh-HK.json +0 -2
- package/build/i18n/zh-HK.json.js +0 -2
- package/build/i18n/zh-HK.json.js.map +1 -1
- package/build/i18n/zh-HK.json.mjs +0 -2
- package/build/i18n/zh-HK.json.mjs.map +1 -1
- package/build/index.js +0 -2
- package/build/index.js.map +1 -1
- package/build/index.mjs +0 -1
- package/build/index.mjs.map +1 -1
- package/build/main.css +13 -45
- package/build/moneyInput/MoneyInput.js +2 -2
- package/build/moneyInput/MoneyInput.js.map +1 -1
- package/build/moneyInput/MoneyInput.mjs +2 -2
- package/build/moneyInput/MoneyInput.mjs.map +1 -1
- package/build/snackbar/Snackbar.js +1 -1
- package/build/snackbar/Snackbar.js.map +1 -1
- package/build/snackbar/Snackbar.mjs +1 -1
- package/build/snackbar/Snackbar.mjs.map +1 -1
- package/build/styles/dateInput/DateInput.css +13 -1
- package/build/styles/main.css +13 -45
- package/build/tabs/Tabs.js +3 -3
- package/build/tabs/Tabs.js.map +1 -1
- package/build/tabs/Tabs.mjs +3 -3
- package/build/tabs/Tabs.mjs.map +1 -1
- package/build/test-utils/assets/apple-pay-logo.svg +84 -0
- package/build/typeahead/Typeahead.js +2 -2
- package/build/typeahead/Typeahead.js.map +1 -1
- package/build/typeahead/Typeahead.mjs +2 -2
- package/build/typeahead/Typeahead.mjs.map +1 -1
- package/build/typeahead/typeaheadInput/TypeaheadInput.js +2 -2
- package/build/typeahead/typeaheadInput/TypeaheadInput.js.map +1 -1
- package/build/typeahead/typeaheadInput/TypeaheadInput.mjs +2 -2
- package/build/typeahead/typeaheadInput/TypeaheadInput.mjs.map +1 -1
- package/build/types/index.d.ts +0 -2
- package/build/types/index.d.ts.map +1 -1
- package/build/types/test-utils/fake-data.d.ts +2 -0
- package/build/types/test-utils/fake-data.d.ts.map +1 -1
- package/build/types/test-utils/index.d.ts +0 -4
- package/build/types/test-utils/index.d.ts.map +1 -1
- package/build/types/uploadInput/UploadInput.d.ts.map +1 -1
- package/build/upload/Upload.js +2 -2
- package/build/upload/Upload.js.map +1 -1
- package/build/upload/Upload.mjs +2 -2
- package/build/upload/Upload.mjs.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.js +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +1 -1
- package/build/uploadInput/UploadInput.js +0 -1
- package/build/uploadInput/UploadInput.js.map +1 -1
- package/build/uploadInput/UploadInput.mjs +0 -1
- package/build/uploadInput/UploadInput.mjs.map +1 -1
- package/package.json +11 -11
- package/src/dateInput/DateInput.css +13 -1
- package/src/dateInput/DateInput.less +20 -3
- package/src/dateInput/DateInput.tests.story.tsx +14 -3
- package/src/dateInput/DateInput.tsx +4 -4
- package/src/i18n/cs.json +0 -2
- package/src/i18n/de.json +0 -2
- package/src/i18n/en.json +0 -2
- package/src/i18n/es.json +0 -2
- package/src/i18n/fr.json +0 -2
- package/src/i18n/hu.json +0 -2
- package/src/i18n/id.json +0 -2
- package/src/i18n/it.json +0 -2
- package/src/i18n/ja.json +0 -2
- package/src/i18n/nl.json +0 -2
- package/src/i18n/pl.json +0 -2
- package/src/i18n/pt.json +0 -2
- package/src/i18n/ro.json +0 -2
- package/src/i18n/ru.json +0 -2
- package/src/i18n/th.json +0 -2
- package/src/i18n/tr.json +0 -2
- package/src/i18n/zh-CN.json +0 -2
- package/src/i18n/zh-HK.json +0 -2
- package/src/index.ts +0 -2
- package/src/legacylistItem/LegacyListItem.story.tsx +5 -5
- package/src/legacylistItem/LegacyListItem.tests.story.tsx +6 -6
- package/src/main.css +13 -45
- package/src/main.less +0 -1
- package/src/ssr.spec.tsx +0 -1
- package/src/test-utils/assets/apple-pay-logo.svg +84 -0
- package/src/test-utils/fake-data.ts +5 -0
- package/src/uploadInput/UploadInput.tsx +4 -13
- package/build/selectOption/SelectOption.js +0 -131
- package/build/selectOption/SelectOption.js.map +0 -1
- package/build/selectOption/SelectOption.messages.js +0 -17
- package/build/selectOption/SelectOption.messages.js.map +0 -1
- package/build/selectOption/SelectOption.messages.mjs +0 -13
- package/build/selectOption/SelectOption.messages.mjs.map +0 -1
- package/build/selectOption/SelectOption.mjs +0 -127
- package/build/selectOption/SelectOption.mjs.map +0 -1
- package/build/styles/selectOption/SelectOption.css +0 -44
- package/build/types/selectOption/SelectOption.d.ts +0 -21
- package/build/types/selectOption/SelectOption.d.ts.map +0 -1
- package/build/types/selectOption/SelectOption.messages.d.ts +0 -12
- package/build/types/selectOption/SelectOption.messages.d.ts.map +0 -1
- package/build/types/selectOption/index.d.ts +0 -3
- package/build/types/selectOption/index.d.ts.map +0 -1
- package/src/selectOption/SelectOption.css +0 -44
- package/src/selectOption/SelectOption.less +0 -40
- package/src/selectOption/SelectOption.messages.ts +0 -12
- package/src/selectOption/SelectOption.spec.tsx +0 -83
- package/src/selectOption/SelectOption.story.tsx +0 -277
- package/src/selectOption/SelectOption.tsx +0 -151
- package/src/selectOption/index.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Typeahead.mjs","sources":["../../src/typeahead/Typeahead.tsx"],"sourcesContent":["import { Cross as CrossIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { DebouncedFunc } from 'lodash';\nimport clamp from 'lodash.clamp';\nimport debounce from 'lodash.debounce';\nimport React, { Component, ReactNode } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport Chip from '../chips/Chip';\nimport {\n Size,\n Sentiment,\n SizeMedium,\n SizeLarge,\n addClickClassToDocumentOnIos,\n removeClickClassFromDocumentOnIos,\n stopPropagation,\n} from '../common';\nimport InlineAlert from '../inlineAlert';\nimport { InlineAlertProps } from '../inlineAlert/InlineAlert';\nimport { withInputAttributes, WithInputAttributesProps } from '../inputs/contexts';\n\nimport TypeaheadInput from './typeaheadInput/TypeaheadInput';\nimport TypeaheadOption from './typeaheadOption/TypeaheadOption';\nimport messages from './Typeahead.messages';\n\nconst DEFAULT_MIN_QUERY_LENGTH = 3;\nconst SEARCH_DELAY = 200;\n\nexport type TypeaheadOption<T = string> = {\n label: string;\n note?: string;\n secondary?: string;\n value?: T;\n clearQueryOnSelect?: boolean;\n keepFocusOnSelect?: boolean;\n};\n\nexport interface TypeaheadProps<T> extends Partial<WrappedComponentProps> {\n id: string;\n name: string;\n addon?: ReactNode;\n alert?: {\n message: InlineAlertProps['children'];\n type?: InlineAlertProps['type'];\n };\n allowNew?: boolean;\n autoFillOnBlur?: boolean;\n autoFocus?: boolean;\n chipSeparators?: readonly string[];\n clearable?: boolean;\n footer?: ReactNode;\n initialValue?: readonly TypeaheadOption<T>[];\n inputAutoComplete?: string;\n maxHeight?: number;\n minQueryLength?: number;\n placeholder?: string;\n multiple?: boolean;\n options: readonly TypeaheadOption<T>[];\n searchDelay?: number;\n showSuggestions?: boolean;\n showNewEntry?: boolean;\n size?: SizeMedium | SizeLarge;\n\n onBlur?: () => void;\n onChange: (options: TypeaheadOption<T>[]) => void;\n onFocus?: () => void;\n onInputChange?: (query: string) => void;\n onSearch?: (query: string) => void;\n validateChip?: (chip: TypeaheadOption<T>) => boolean;\n}\n\ntype TypeaheadPropsWithInputAttributes<T> = TypeaheadProps<T> &\n Partial<WithInputAttributesProps> &\n WrappedComponentProps;\n\ntype TypeaheadState<T> = {\n selected: readonly TypeaheadOption<T>[];\n keyboardFocusedOptionIndex: number | null;\n errorState: boolean;\n query: string;\n optionsShown: boolean;\n isFocused: boolean;\n};\n\nclass Typeahead<T> extends Component<TypeaheadPropsWithInputAttributes<T>, TypeaheadState<T>> {\n declare props: TypeaheadPropsWithInputAttributes<T> &\n Required<Pick<TypeaheadPropsWithInputAttributes<T>, keyof typeof Typeahead.defaultProps>>;\n\n static defaultProps = {\n allowNew: false,\n autoFillOnBlur: true,\n autoFocus: false,\n chipSeparators: [],\n clearable: true,\n initialValue: [],\n inputAutoComplete: 'new-password',\n minQueryLength: DEFAULT_MIN_QUERY_LENGTH,\n multiple: false,\n searchDelay: SEARCH_DELAY,\n showSuggestions: true,\n showNewEntry: true,\n size: Size.MEDIUM,\n validateChip: () => true,\n } satisfies Partial<TypeaheadProps<unknown>>;\n optionRefs: (React.RefObject<HTMLLIElement> | null)[];\n\n constructor(props: TypeaheadPropsWithInputAttributes<T>) {\n super(props);\n const { searchDelay, initialValue, multiple } = this.props;\n this.handleSearchDebounced = debounce(this.handleSearch, searchDelay);\n const initialQuery = !multiple && initialValue.length > 0 ? initialValue[0].label : '';\n this.state = {\n selected: initialValue,\n errorState: false,\n query: initialQuery,\n keyboardFocusedOptionIndex: null,\n optionsShown: false,\n isFocused: false,\n };\n this.optionRefs = [] as (React.RefObject<HTMLLIElement> | null)[];\n }\n\n handleSearchDebounced: DebouncedFunc<Typeahead<T>['handleSearch']>;\n\n UNSAFE_componentWillReceiveProps(nextProps: TypeaheadPropsWithInputAttributes<T>) {\n if (nextProps.multiple !== this.props.multiple) {\n this.setState((previousState) => {\n const { selected } = previousState;\n if (!nextProps.multiple && selected.length > 0) {\n return {\n query: selected[0].label,\n selected: [selected[0]],\n };\n }\n return {\n selected: previousState.selected,\n query: '',\n };\n });\n }\n }\n\n componentWillUnmount() {\n this.handleSearchDebounced.cancel();\n }\n\n handleOnFocus = () => {\n this.showMenu();\n this.props.onFocus?.();\n };\n\n onOptionSelected = (event: React.MouseEvent, item: TypeaheadOption<T>) => {\n event.preventDefault();\n this.selectItem(item);\n };\n\n handleOnChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const { optionsShown, selected } = this.state;\n const { multiple, onInputChange } = this.props;\n\n if (!optionsShown) {\n this.showMenu();\n }\n\n const query = event.target.value;\n\n if (!multiple && selected.length > 0) {\n this.updateSelectedValue([]);\n }\n\n this.setState({ query }, () => {\n this.handleSearchDebounced(query);\n if (onInputChange) {\n onInputChange(query);\n }\n });\n };\n\n handleOnPaste: React.ClipboardEventHandler<HTMLInputElement> = (event) => {\n const { allowNew, multiple, chipSeparators } = this.props;\n const { selected } = this.state;\n\n if (allowNew && multiple && chipSeparators.length > 0) {\n event.preventDefault();\n const value = event.clipboardData.getData('text');\n if (value) {\n const regex = new RegExp(chipSeparators.join('|'));\n const pastedChips = value\n .split(regex)\n .map((label) => ({ label: label.trim() }))\n .filter((chip) => chip.label);\n\n this.updateSelectedValue([...selected, ...pastedChips]);\n }\n }\n };\n\n handleOnKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const { showSuggestions, allowNew, multiple, chipSeparators, options } = this.props;\n const { keyboardFocusedOptionIndex, query, selected } = this.state;\n const chipsMode = !showSuggestions && allowNew && multiple;\n\n if (chipsMode && ['Enter', 'Tab', ...chipSeparators].includes(event.key) && query.trim()) {\n event.preventDefault();\n this.selectItem({ label: query });\n } else {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveFocusedOption(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveFocusedOption(-1);\n break;\n case 'Enter':\n event.preventDefault();\n if (keyboardFocusedOptionIndex != null && options[keyboardFocusedOptionIndex]) {\n this.selectItem(options[keyboardFocusedOptionIndex]);\n } else if (allowNew && query.trim()) {\n this.selectItem({ label: query });\n }\n break;\n case 'Backspace':\n if (multiple && !query && selected.length > 0) {\n this.updateSelectedValue(selected.slice(0, -1));\n }\n break;\n default:\n break;\n }\n }\n };\n moveFocusedOption(offset: number) {\n this.setState((previousState) => {\n const { keyboardFocusedOptionIndex } = previousState;\n const { options } = this.props;\n let index = 0;\n if (keyboardFocusedOptionIndex !== null) {\n index = clamp(keyboardFocusedOptionIndex + offset, 0, options.length - 1);\n }\n const optionRef = this.optionRefs[index];\n if (optionRef?.current) {\n optionRef.current.focus(); // Set focus on the option element\n }\n return {\n keyboardFocusedOptionIndex: index,\n };\n });\n }\n\n selectItem = (item: TypeaheadOption<T>) => {\n const { multiple } = this.props;\n let selected = [...this.state.selected];\n let query;\n if (multiple) {\n selected.push(item);\n query = '';\n } else {\n selected = [item];\n query = item.label;\n }\n\n this.updateSelectedValue(selected);\n\n if (!item.keepFocusOnSelect) {\n this.hideMenu();\n }\n\n if (item.clearQueryOnSelect) {\n query = '';\n }\n\n this.setState({\n query,\n });\n };\n\n handleSearch = (query: string) => {\n const { onSearch } = this.props;\n if (onSearch) {\n onSearch(query);\n }\n\n this.setState((previousState) => ({\n keyboardFocusedOptionIndex: previousState.keyboardFocusedOptionIndex === null ? null : 0,\n }));\n };\n\n handleDocumentClick = () => {\n if (this.state.optionsShown) {\n this.hideMenu();\n const { allowNew, onBlur, autoFillOnBlur } = this.props;\n const { query } = this.state;\n this.setState({\n isFocused: false,\n });\n if (allowNew && autoFillOnBlur && query.trim()) {\n this.selectItem({ label: query });\n }\n\n if (onBlur) {\n onBlur();\n }\n }\n };\n\n showMenu = () => {\n this.setState(\n {\n isFocused: true,\n optionsShown: true,\n },\n () => {\n addClickClassToDocumentOnIos();\n document.addEventListener('click', this.handleDocumentClick, false);\n },\n );\n };\n\n hideMenu = () => {\n this.setState(\n {\n optionsShown: false,\n keyboardFocusedOptionIndex: null,\n },\n () => {\n removeClickClassFromDocumentOnIos();\n document.removeEventListener('click', this.handleDocumentClick, false);\n },\n );\n };\n\n updateSelectedValue = (selected: readonly TypeaheadOption<T>[]) => {\n const { onChange, validateChip } = this.props;\n\n const errorState = selected.some((chip) => !validateChip(chip));\n this.setState({ selected, errorState }, () => {\n onChange([...selected]);\n });\n };\n\n clear = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n if (this.state.selected.length > 0) {\n this.updateSelectedValue([]);\n }\n\n this.setState({\n query: '',\n });\n };\n\n removeChip = (option: TypeaheadOption<T>) => {\n const { selected } = this.state;\n\n if (selected.length > 0) {\n this.updateSelectedValue([...selected.filter((selectedOption) => selectedOption !== option)]);\n }\n };\n\n renderChip = (option: TypeaheadOption<T>, idx: number): ReactNode => {\n const valid = this.props.validateChip?.(option);\n\n return (\n <Chip\n key={idx}\n label={option.label}\n className={clsx('m-t-1', {\n 'has-error': !valid,\n 'np-chip--valid': valid,\n })}\n onRemove={() => this.removeChip(option)}\n />\n );\n };\n\n renderMenu = ({\n footer,\n options,\n id,\n keyboardFocusedOptionIndex,\n query,\n allowNew,\n showNewEntry,\n dropdownOpen,\n }: Pick<\n TypeaheadPropsWithInputAttributes<T>,\n 'footer' | 'options' | 'id' | 'allowNew' | 'showNewEntry'\n > &\n Pick<TypeaheadState<T>, 'keyboardFocusedOptionIndex' | 'query'> & {\n dropdownOpen: boolean;\n }) => {\n const optionsToRender = [...options];\n if (\n allowNew &&\n query.trim() &&\n options.every((option) => option.label.trim().toUpperCase() !== query.trim().toUpperCase()) &&\n showNewEntry\n ) {\n optionsToRender.push({\n label: query,\n });\n }\n return (\n <div\n className={clsx('dropdown btn-group btn-block', { open: dropdownOpen })}\n id={`menu-${id}`}\n >\n {(!!optionsToRender.length || footer) && (\n <ul className=\"dropdown-menu\" role=\"menu\">\n {optionsToRender.map((option, idx) => {\n const ref = React.createRef<HTMLLIElement>();\n this.optionRefs[idx] = ref;\n return (\n <TypeaheadOption\n key={`${option.label}${idx.toString()}`}\n ref={ref}\n query={query}\n option={option}\n selected={keyboardFocusedOptionIndex === idx}\n id={String(option.label.replace(/\\s+/g, '-'))}\n onClick={(event) => {\n this.onOptionSelected(event, option);\n }}\n />\n );\n })}\n {footer}\n </ul>\n )}\n </div>\n );\n };\n\n render() {\n const {\n inputAttributes,\n id: idProp,\n placeholder,\n multiple,\n size,\n addon,\n name,\n clearable,\n allowNew,\n footer,\n showSuggestions,\n showNewEntry,\n options,\n minQueryLength,\n autoFocus,\n maxHeight,\n alert,\n inputAutoComplete,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n\n const { errorState, query, selected, optionsShown, keyboardFocusedOptionIndex } = this.state;\n\n const clearButton = clearable && (query || selected.length > 0);\n\n const dropdownOpen = optionsShown && showSuggestions && query.length >= minQueryLength;\n\n const menu = this.renderMenu({\n footer,\n options,\n id,\n keyboardFocusedOptionIndex,\n query,\n allowNew,\n showNewEntry,\n dropdownOpen,\n });\n\n const alertType = alert?.type ?? Sentiment.NEUTRAL;\n const hasError = errorState || (alert && alertType === Sentiment.ERROR);\n const displayAlert = (!errorState && alert) || (alert && alertType === Sentiment.ERROR);\n const hasWarning = displayAlert && alertType === Sentiment.WARNING;\n const hasInfo = displayAlert && alertType === Sentiment.NEUTRAL;\n return (\n /* eslint-disable-next-line jsx-a11y/click-events-have-key-events */\n <div\n role=\"group\"\n {...inputAttributes}\n id={id}\n className={clsx('typeahead', `typeahead-${size}`, {\n 'typeahead--has-value': selected.length > 0,\n 'typeahead--empty': selected.length === 0,\n 'typeahead--multiple': multiple,\n open: dropdownOpen,\n })}\n onClick={stopPropagation}\n >\n <div\n className={clsx('form-group', {\n 'has-error': hasError,\n 'has-warning': hasWarning,\n 'has-info': hasInfo,\n })}\n >\n <div\n className={clsx(`input-group input-group-${size}`, {\n 'input-group--has-error': hasError,\n })}\n >\n {addon && <span className=\"input-group-addon input-group-addon--search\">{addon}</span>}\n\n <TypeaheadInput\n {...{\n autoFocus,\n multiple,\n dropdownOpen,\n placeholder,\n selected,\n maxHeight,\n }}\n id={id}\n name={name}\n value={query}\n typeaheadId={id}\n renderChip={this.renderChip}\n autoComplete={inputAutoComplete}\n ariaActivedescendant={\n keyboardFocusedOptionIndex !== null && options[keyboardFocusedOptionIndex]\n ? `option-${options[keyboardFocusedOptionIndex].label.replace(/\\s+/g, '-')}`\n : undefined\n }\n onChange={this.handleOnChange}\n onKeyDown={this.handleOnKeyDown}\n onFocus={this.handleOnFocus}\n onPaste={this.handleOnPaste}\n />\n\n {clearButton && (\n <div className=\"input-group-addon\">\n <button\n type=\"button\"\n className=\"btn-unstyled\"\n aria-label={this.props?.intl?.formatMessage(messages.clearLabel)}\n onClick={this.clear}\n >\n <CrossIcon />\n </button>\n </div>\n )}\n </div>\n {displayAlert ? <InlineAlert type={alert.type}>{alert.message}</InlineAlert> : menu}\n </div>\n </div>\n );\n }\n}\n\nexport default injectIntl(withInputAttributes(Typeahead, { nonLabelable: true })) as <T>(\n props: TypeaheadProps<T>,\n) => React.ReactElement;\n"],"names":["DEFAULT_MIN_QUERY_LENGTH","SEARCH_DELAY","Typeahead","Component","defaultProps","allowNew","autoFillOnBlur","autoFocus","chipSeparators","clearable","initialValue","inputAutoComplete","minQueryLength","multiple","searchDelay","showSuggestions","showNewEntry","size","Size","MEDIUM","validateChip","optionRefs","constructor","props","handleSearchDebounced","debounce","handleSearch","initialQuery","length","label","state","selected","errorState","query","keyboardFocusedOptionIndex","optionsShown","isFocused","UNSAFE_componentWillReceiveProps","nextProps","setState","previousState","componentWillUnmount","cancel","handleOnFocus","showMenu","onFocus","onOptionSelected","event","item","preventDefault","selectItem","handleOnChange","onInputChange","target","value","updateSelectedValue","handleOnPaste","clipboardData","getData","regex","RegExp","join","pastedChips","split","map","trim","filter","chip","handleOnKeyDown","options","chipsMode","includes","key","moveFocusedOption","slice","offset","index","clamp","optionRef","current","focus","push","keepFocusOnSelect","hideMenu","clearQueryOnSelect","onSearch","handleDocumentClick","onBlur","addClickClassToDocumentOnIos","document","addEventListener","removeClickClassFromDocumentOnIos","removeEventListener","onChange","some","clear","removeChip","option","selectedOption","renderChip","idx","valid","_jsx","Chip","className","clsx","onRemove","renderMenu","footer","id","dropdownOpen","optionsToRender","every","toUpperCase","open","children","_jsxs","role","ref","React","createRef","TypeaheadOption","String","replace","onClick","toString","render","inputAttributes","idProp","placeholder","addon","name","maxHeight","alert","clearButton","menu","alertType","type","Sentiment","NEUTRAL","hasError","ERROR","displayAlert","hasWarning","WARNING","hasInfo","stopPropagation","TypeaheadInput","typeaheadId","autoComplete","ariaActivedescendant","undefined","onKeyDown","onPaste","intl","formatMessage","messages","clearLabel","CrossIcon","InlineAlert","message","injectIntl","withInputAttributes","nonLabelable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Typeahead.mjs","sources":["../../src/typeahead/Typeahead.tsx"],"sourcesContent":["import { Cross as CrossIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { DebouncedFunc } from 'lodash';\nimport clamp from 'lodash.clamp';\nimport debounce from 'lodash.debounce';\nimport React, { Component, ReactNode } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport Chip from '../chips/Chip';\nimport {\n Size,\n Sentiment,\n SizeMedium,\n SizeLarge,\n addClickClassToDocumentOnIos,\n removeClickClassFromDocumentOnIos,\n stopPropagation,\n} from '../common';\nimport InlineAlert from '../inlineAlert';\nimport { InlineAlertProps } from '../inlineAlert/InlineAlert';\nimport { withInputAttributes, WithInputAttributesProps } from '../inputs/contexts';\n\nimport TypeaheadInput from './typeaheadInput/TypeaheadInput';\nimport TypeaheadOption from './typeaheadOption/TypeaheadOption';\nimport messages from './Typeahead.messages';\n\nconst DEFAULT_MIN_QUERY_LENGTH = 3;\nconst SEARCH_DELAY = 200;\n\nexport type TypeaheadOption<T = string> = {\n label: string;\n note?: string;\n secondary?: string;\n value?: T;\n clearQueryOnSelect?: boolean;\n keepFocusOnSelect?: boolean;\n};\n\nexport interface TypeaheadProps<T> extends Partial<WrappedComponentProps> {\n id: string;\n name: string;\n addon?: ReactNode;\n alert?: {\n message: InlineAlertProps['children'];\n type?: InlineAlertProps['type'];\n };\n allowNew?: boolean;\n autoFillOnBlur?: boolean;\n autoFocus?: boolean;\n chipSeparators?: readonly string[];\n clearable?: boolean;\n footer?: ReactNode;\n initialValue?: readonly TypeaheadOption<T>[];\n inputAutoComplete?: string;\n maxHeight?: number;\n minQueryLength?: number;\n placeholder?: string;\n multiple?: boolean;\n options: readonly TypeaheadOption<T>[];\n searchDelay?: number;\n showSuggestions?: boolean;\n showNewEntry?: boolean;\n size?: SizeMedium | SizeLarge;\n\n onBlur?: () => void;\n onChange: (options: TypeaheadOption<T>[]) => void;\n onFocus?: () => void;\n onInputChange?: (query: string) => void;\n onSearch?: (query: string) => void;\n validateChip?: (chip: TypeaheadOption<T>) => boolean;\n}\n\ntype TypeaheadPropsWithInputAttributes<T> = TypeaheadProps<T> &\n Partial<WithInputAttributesProps> &\n WrappedComponentProps;\n\ntype TypeaheadState<T> = {\n selected: readonly TypeaheadOption<T>[];\n keyboardFocusedOptionIndex: number | null;\n errorState: boolean;\n query: string;\n optionsShown: boolean;\n isFocused: boolean;\n};\n\nclass Typeahead<T> extends Component<TypeaheadPropsWithInputAttributes<T>, TypeaheadState<T>> {\n declare props: TypeaheadPropsWithInputAttributes<T> &\n Required<Pick<TypeaheadPropsWithInputAttributes<T>, keyof typeof Typeahead.defaultProps>>;\n\n static defaultProps = {\n allowNew: false,\n autoFillOnBlur: true,\n autoFocus: false,\n chipSeparators: [],\n clearable: true,\n initialValue: [],\n inputAutoComplete: 'new-password',\n minQueryLength: DEFAULT_MIN_QUERY_LENGTH,\n multiple: false,\n searchDelay: SEARCH_DELAY,\n showSuggestions: true,\n showNewEntry: true,\n size: Size.MEDIUM,\n validateChip: () => true,\n } satisfies Partial<TypeaheadProps<unknown>>;\n optionRefs: (React.RefObject<HTMLLIElement> | null)[];\n\n constructor(props: TypeaheadPropsWithInputAttributes<T>) {\n super(props);\n const { searchDelay, initialValue, multiple } = this.props;\n this.handleSearchDebounced = debounce(this.handleSearch, searchDelay);\n const initialQuery = !multiple && initialValue.length > 0 ? initialValue[0].label : '';\n this.state = {\n selected: initialValue,\n errorState: false,\n query: initialQuery,\n keyboardFocusedOptionIndex: null,\n optionsShown: false,\n isFocused: false,\n };\n this.optionRefs = [] as (React.RefObject<HTMLLIElement> | null)[];\n }\n\n handleSearchDebounced: DebouncedFunc<Typeahead<T>['handleSearch']>;\n\n UNSAFE_componentWillReceiveProps(nextProps: TypeaheadPropsWithInputAttributes<T>) {\n if (nextProps.multiple !== this.props.multiple) {\n this.setState((previousState) => {\n const { selected } = previousState;\n if (!nextProps.multiple && selected.length > 0) {\n return {\n query: selected[0].label,\n selected: [selected[0]],\n };\n }\n return {\n selected: previousState.selected,\n query: '',\n };\n });\n }\n }\n\n componentWillUnmount() {\n this.handleSearchDebounced.cancel();\n }\n\n handleOnFocus = () => {\n this.showMenu();\n this.props.onFocus?.();\n };\n\n onOptionSelected = (event: React.MouseEvent, item: TypeaheadOption<T>) => {\n event.preventDefault();\n this.selectItem(item);\n };\n\n handleOnChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const { optionsShown, selected } = this.state;\n const { multiple, onInputChange } = this.props;\n\n if (!optionsShown) {\n this.showMenu();\n }\n\n const query = event.target.value;\n\n if (!multiple && selected.length > 0) {\n this.updateSelectedValue([]);\n }\n\n this.setState({ query }, () => {\n this.handleSearchDebounced(query);\n if (onInputChange) {\n onInputChange(query);\n }\n });\n };\n\n handleOnPaste: React.ClipboardEventHandler<HTMLInputElement> = (event) => {\n const { allowNew, multiple, chipSeparators } = this.props;\n const { selected } = this.state;\n\n if (allowNew && multiple && chipSeparators.length > 0) {\n event.preventDefault();\n const value = event.clipboardData.getData('text');\n if (value) {\n const regex = new RegExp(chipSeparators.join('|'));\n const pastedChips = value\n .split(regex)\n .map((label) => ({ label: label.trim() }))\n .filter((chip) => chip.label);\n\n this.updateSelectedValue([...selected, ...pastedChips]);\n }\n }\n };\n\n handleOnKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const { showSuggestions, allowNew, multiple, chipSeparators, options } = this.props;\n const { keyboardFocusedOptionIndex, query, selected } = this.state;\n const chipsMode = !showSuggestions && allowNew && multiple;\n\n if (chipsMode && ['Enter', 'Tab', ...chipSeparators].includes(event.key) && query.trim()) {\n event.preventDefault();\n this.selectItem({ label: query });\n } else {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveFocusedOption(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveFocusedOption(-1);\n break;\n case 'Enter':\n event.preventDefault();\n if (keyboardFocusedOptionIndex != null && options[keyboardFocusedOptionIndex]) {\n this.selectItem(options[keyboardFocusedOptionIndex]);\n } else if (allowNew && query.trim()) {\n this.selectItem({ label: query });\n }\n break;\n case 'Backspace':\n if (multiple && !query && selected.length > 0) {\n this.updateSelectedValue(selected.slice(0, -1));\n }\n break;\n default:\n break;\n }\n }\n };\n moveFocusedOption(offset: number) {\n this.setState((previousState) => {\n const { keyboardFocusedOptionIndex } = previousState;\n const { options } = this.props;\n let index = 0;\n if (keyboardFocusedOptionIndex !== null) {\n index = clamp(keyboardFocusedOptionIndex + offset, 0, options.length - 1);\n }\n const optionRef = this.optionRefs[index];\n if (optionRef?.current) {\n optionRef.current.focus(); // Set focus on the option element\n }\n return {\n keyboardFocusedOptionIndex: index,\n };\n });\n }\n\n selectItem = (item: TypeaheadOption<T>) => {\n const { multiple } = this.props;\n let selected = [...this.state.selected];\n let query;\n if (multiple) {\n selected.push(item);\n query = '';\n } else {\n selected = [item];\n query = item.label;\n }\n\n this.updateSelectedValue(selected);\n\n if (!item.keepFocusOnSelect) {\n this.hideMenu();\n }\n\n if (item.clearQueryOnSelect) {\n query = '';\n }\n\n this.setState({\n query,\n });\n };\n\n handleSearch = (query: string) => {\n const { onSearch } = this.props;\n if (onSearch) {\n onSearch(query);\n }\n\n this.setState((previousState) => ({\n keyboardFocusedOptionIndex: previousState.keyboardFocusedOptionIndex === null ? null : 0,\n }));\n };\n\n handleDocumentClick = () => {\n if (this.state.optionsShown) {\n this.hideMenu();\n const { allowNew, onBlur, autoFillOnBlur } = this.props;\n const { query } = this.state;\n this.setState({\n isFocused: false,\n });\n if (allowNew && autoFillOnBlur && query.trim()) {\n this.selectItem({ label: query });\n }\n\n if (onBlur) {\n onBlur();\n }\n }\n };\n\n showMenu = () => {\n this.setState(\n {\n isFocused: true,\n optionsShown: true,\n },\n () => {\n addClickClassToDocumentOnIos();\n document.addEventListener('click', this.handleDocumentClick, false);\n },\n );\n };\n\n hideMenu = () => {\n this.setState(\n {\n optionsShown: false,\n keyboardFocusedOptionIndex: null,\n },\n () => {\n removeClickClassFromDocumentOnIos();\n document.removeEventListener('click', this.handleDocumentClick, false);\n },\n );\n };\n\n updateSelectedValue = (selected: readonly TypeaheadOption<T>[]) => {\n const { onChange, validateChip } = this.props;\n\n const errorState = selected.some((chip) => !validateChip(chip));\n this.setState({ selected, errorState }, () => {\n onChange([...selected]);\n });\n };\n\n clear = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n if (this.state.selected.length > 0) {\n this.updateSelectedValue([]);\n }\n\n this.setState({\n query: '',\n });\n };\n\n removeChip = (option: TypeaheadOption<T>) => {\n const { selected } = this.state;\n\n if (selected.length > 0) {\n this.updateSelectedValue([...selected.filter((selectedOption) => selectedOption !== option)]);\n }\n };\n\n renderChip = (option: TypeaheadOption<T>, idx: number): ReactNode => {\n const valid = this.props.validateChip?.(option);\n\n return (\n <Chip\n key={idx}\n label={option.label}\n className={clsx('m-t-1', {\n 'has-error': !valid,\n 'np-chip--valid': valid,\n })}\n onRemove={() => this.removeChip(option)}\n />\n );\n };\n\n renderMenu = ({\n footer,\n options,\n id,\n keyboardFocusedOptionIndex,\n query,\n allowNew,\n showNewEntry,\n dropdownOpen,\n }: Pick<\n TypeaheadPropsWithInputAttributes<T>,\n 'footer' | 'options' | 'id' | 'allowNew' | 'showNewEntry'\n > &\n Pick<TypeaheadState<T>, 'keyboardFocusedOptionIndex' | 'query'> & {\n dropdownOpen: boolean;\n }) => {\n const optionsToRender = [...options];\n if (\n allowNew &&\n query.trim() &&\n options.every((option) => option.label.trim().toUpperCase() !== query.trim().toUpperCase()) &&\n showNewEntry\n ) {\n optionsToRender.push({\n label: query,\n });\n }\n return (\n <div\n className={clsx('dropdown btn-group btn-block', { open: dropdownOpen })}\n id={`menu-${id}`}\n >\n {(!!optionsToRender.length || footer) && (\n <ul className=\"dropdown-menu\" role=\"menu\">\n {optionsToRender.map((option, idx) => {\n const ref = React.createRef<HTMLLIElement>();\n this.optionRefs[idx] = ref;\n return (\n <TypeaheadOption\n key={`${option.label}${idx.toString()}`}\n ref={ref}\n query={query}\n option={option}\n selected={keyboardFocusedOptionIndex === idx}\n id={String(option.label.replace(/\\s+/g, '-'))}\n onClick={(event) => {\n this.onOptionSelected(event, option);\n }}\n />\n );\n })}\n {footer}\n </ul>\n )}\n </div>\n );\n };\n\n render() {\n const {\n inputAttributes,\n id: idProp,\n placeholder,\n multiple,\n size,\n addon,\n name,\n clearable,\n allowNew,\n footer,\n showSuggestions,\n showNewEntry,\n options,\n minQueryLength,\n autoFocus,\n maxHeight,\n alert,\n inputAutoComplete,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n\n const { errorState, query, selected, optionsShown, keyboardFocusedOptionIndex } = this.state;\n\n const clearButton = clearable && (query || selected.length > 0);\n\n const dropdownOpen = optionsShown && showSuggestions && query.length >= minQueryLength;\n\n const menu = this.renderMenu({\n footer,\n options,\n id,\n keyboardFocusedOptionIndex,\n query,\n allowNew,\n showNewEntry,\n dropdownOpen,\n });\n\n const alertType = alert?.type ?? Sentiment.NEUTRAL;\n const hasError = errorState || (alert && alertType === Sentiment.ERROR);\n const displayAlert = (!errorState && alert) || (alert && alertType === Sentiment.ERROR);\n const hasWarning = displayAlert && alertType === Sentiment.WARNING;\n const hasInfo = displayAlert && alertType === Sentiment.NEUTRAL;\n return (\n /* eslint-disable-next-line jsx-a11y/click-events-have-key-events */\n <div\n role=\"group\"\n {...inputAttributes}\n id={id}\n className={clsx('typeahead', `typeahead-${size}`, {\n 'typeahead--has-value': selected.length > 0,\n 'typeahead--empty': selected.length === 0,\n 'typeahead--multiple': multiple,\n open: dropdownOpen,\n })}\n onClick={stopPropagation}\n >\n <div\n className={clsx('form-group', {\n 'has-error': hasError,\n 'has-warning': hasWarning,\n 'has-info': hasInfo,\n })}\n >\n <div\n className={clsx(`input-group input-group-${size}`, {\n 'input-group--has-error': hasError,\n })}\n >\n {addon && <span className=\"input-group-addon input-group-addon--search\">{addon}</span>}\n\n <TypeaheadInput\n {...{\n autoFocus,\n multiple,\n dropdownOpen,\n placeholder,\n selected,\n maxHeight,\n }}\n id={id}\n name={name}\n value={query}\n typeaheadId={id}\n renderChip={this.renderChip}\n autoComplete={inputAutoComplete}\n ariaActivedescendant={\n keyboardFocusedOptionIndex !== null && options[keyboardFocusedOptionIndex]\n ? `option-${options[keyboardFocusedOptionIndex].label.replace(/\\s+/g, '-')}`\n : undefined\n }\n onChange={this.handleOnChange}\n onKeyDown={this.handleOnKeyDown}\n onFocus={this.handleOnFocus}\n onPaste={this.handleOnPaste}\n />\n\n {clearButton && (\n <div className=\"input-group-addon\">\n <button\n type=\"button\"\n className=\"btn-unstyled\"\n aria-label={this.props?.intl?.formatMessage(messages.clearLabel)}\n onClick={this.clear}\n >\n <CrossIcon />\n </button>\n </div>\n )}\n </div>\n {displayAlert ? <InlineAlert type={alert.type}>{alert.message}</InlineAlert> : menu}\n </div>\n </div>\n );\n }\n}\n\nexport default injectIntl(withInputAttributes(Typeahead, { nonLabelable: true })) as <T>(\n props: TypeaheadProps<T>,\n) => React.ReactElement;\n"],"names":["DEFAULT_MIN_QUERY_LENGTH","SEARCH_DELAY","Typeahead","Component","defaultProps","allowNew","autoFillOnBlur","autoFocus","chipSeparators","clearable","initialValue","inputAutoComplete","minQueryLength","multiple","searchDelay","showSuggestions","showNewEntry","size","Size","MEDIUM","validateChip","optionRefs","constructor","props","handleSearchDebounced","debounce","handleSearch","initialQuery","length","label","state","selected","errorState","query","keyboardFocusedOptionIndex","optionsShown","isFocused","UNSAFE_componentWillReceiveProps","nextProps","setState","previousState","componentWillUnmount","cancel","handleOnFocus","showMenu","onFocus","onOptionSelected","event","item","preventDefault","selectItem","handleOnChange","onInputChange","target","value","updateSelectedValue","handleOnPaste","clipboardData","getData","regex","RegExp","join","pastedChips","split","map","trim","filter","chip","handleOnKeyDown","options","chipsMode","includes","key","moveFocusedOption","slice","offset","index","clamp","optionRef","current","focus","push","keepFocusOnSelect","hideMenu","clearQueryOnSelect","onSearch","handleDocumentClick","onBlur","addClickClassToDocumentOnIos","document","addEventListener","removeClickClassFromDocumentOnIos","removeEventListener","onChange","some","clear","removeChip","option","selectedOption","renderChip","idx","valid","_jsx","Chip","className","clsx","onRemove","renderMenu","footer","id","dropdownOpen","optionsToRender","every","toUpperCase","open","children","_jsxs","role","ref","React","createRef","TypeaheadOption","String","replace","onClick","toString","render","inputAttributes","idProp","placeholder","addon","name","maxHeight","alert","clearButton","menu","alertType","type","Sentiment","NEUTRAL","hasError","ERROR","displayAlert","hasWarning","WARNING","hasInfo","stopPropagation","TypeaheadInput","typeaheadId","autoComplete","ariaActivedescendant","undefined","onKeyDown","onPaste","intl","formatMessage","messages","clearLabel","CrossIcon","InlineAlert","message","injectIntl","withInputAttributes","nonLabelable"],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
12
12
|
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
13
13
|
const DEFAULT_INPUT_MIN_WIDTH = 10;
|
|
14
14
|
class TypeaheadInput extends React.Component {
|
|
15
|
-
inputRef =
|
|
16
|
-
sizerRef =
|
|
15
|
+
inputRef = /*#__PURE__*/React.createRef();
|
|
16
|
+
sizerRef = /*#__PURE__*/React.createRef();
|
|
17
17
|
constructor(props) {
|
|
18
18
|
super(props);
|
|
19
19
|
this.state = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeaheadInput.js","sources":["../../../src/typeahead/typeaheadInput/TypeaheadInput.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { clsx } from 'clsx';\nimport { Component, createRef, ReactNode } from 'react';\n\nimport { Input } from '../../inputs/Input';\nimport { TypeaheadOption, TypeaheadProps } from '../Typeahead';\n\nconst DEFAULT_INPUT_MIN_WIDTH = 10;\n\nexport type TypeaheadInputProps<T> = {\n typeaheadId: string;\n value: string;\n selected: readonly TypeaheadOption<T>[];\n dropdownOpen?: boolean;\n autoComplete: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;\n onFocus: () => void;\n onPaste: React.ClipboardEventHandler<HTMLInputElement>;\n renderChip: (chip: TypeaheadOption<T>, index: number) => ReactNode;\n ariaActivedescendant?: string;\n} & Pick<TypeaheadProps<T>, 'id' | 'name' | 'autoFocus' | 'multiple' | 'placeholder' | 'maxHeight'>;\n\ntype TypeaheadInputState = {\n inputWidth: number;\n keyboardFocusedOptionIndex: number | null;\n};\n\nexport default class TypeaheadInput<T> extends Component<\n TypeaheadInputProps<T>,\n TypeaheadInputState\n> {\n inputRef = createRef<HTMLInputElement>();\n sizerRef = createRef<HTMLDivElement>();\n\n constructor(props: TypeaheadInputProps<T>) {\n super(props);\n this.state = {\n inputWidth: DEFAULT_INPUT_MIN_WIDTH,\n keyboardFocusedOptionIndex: null,\n };\n }\n\n componentDidMount() {\n const { autoFocus } = this.props;\n if (autoFocus) {\n // Autofocus after context code executions (e.g open Modal) is completed\n setTimeout(() => {\n this.inputRef.current?.focus();\n });\n }\n }\n\n componentDidUpdate(previousProps: TypeaheadInputProps<T>) {\n if (previousProps.value !== this.props.value && this.props.multiple) {\n this.recalculateWidth();\n }\n }\n\n recalculateWidth = () => {\n requestAnimationFrame(() => {\n this.setState({\n inputWidth: Math.max(DEFAULT_INPUT_MIN_WIDTH, this.sizerRef.current?.scrollWidth ?? 0 + 10),\n });\n });\n };\n\n renderInput = () => {\n const {\n typeaheadId,\n autoFocus,\n multiple,\n name,\n dropdownOpen,\n placeholder,\n selected,\n value,\n onChange,\n onKeyDown,\n onFocus,\n onPaste,\n autoComplete,\n ariaActivedescendant, // Declare the ariaActivedescendant variable\n } = this.props;\n const { inputWidth } = this.state;\n\n const hasPlaceholder = !multiple || selected.length === 0;\n return (\n <Input\n ref={this.inputRef}\n className={clsx(multiple && 'typeahead__input')}\n name={name}\n id={`input-${typeaheadId}`}\n aria-activedescendant={\n ariaActivedescendant\n ? `menu-${typeaheadId} ${ariaActivedescendant}`\n : `menu-${typeaheadId}`\n }\n autoFocus={autoFocus}\n placeholder={hasPlaceholder ? placeholder : ''}\n aria-autocomplete=\"list\"\n aria-expanded={dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-controls={dropdownOpen ? `menu-${typeaheadId}` : undefined}\n autoComplete={autoComplete}\n role=\"combobox\"\n value={value}\n style={multiple && selected.length > 0 ? { width: inputWidth } : {}}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onClick={onFocus}\n onFocus={onFocus}\n onPaste={onPaste}\n />\n );\n };\n\n render() {\n const { multiple, selected, value, maxHeight, renderChip } = this.props;\n\n return multiple ? (\n <div\n className=\"form-control typeahead__input-container\"\n style={{ maxHeight }}\n onClick={() => {\n this.inputRef.current?.focus();\n }}\n >\n <div className=\"typeahead__input-wrapper\">\n {selected && selected.map((chip, idx) => renderChip(chip, idx))}\n\n {this.renderInput()}\n <div className=\"typeahead__input-aligner\" />\n </div>\n <div ref={this.sizerRef} className=\"sizer form-control typeahead__input\">\n {value}\n </div>\n </div>\n ) : (\n this.renderInput()\n );\n }\n}\n"],"names":["DEFAULT_INPUT_MIN_WIDTH","TypeaheadInput","Component","inputRef","createRef","sizerRef","constructor","props","state","inputWidth","keyboardFocusedOptionIndex","componentDidMount","autoFocus","setTimeout","current","focus","componentDidUpdate","previousProps","value","multiple","recalculateWidth","requestAnimationFrame","setState","Math","max","scrollWidth","renderInput","typeaheadId","name","dropdownOpen","placeholder","selected","onChange","onKeyDown","onFocus","onPaste","autoComplete","ariaActivedescendant","hasPlaceholder","length","_jsx","Input","ref","className","clsx","id","undefined","role","style","width","onClick","render","maxHeight","renderChip","_jsxs","children","map","chip","idx"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AAOA,MAAMA,uBAAuB,GAAG,EAAE;AAqBb,MAAAC,cAAkB,SAAQC,eAG9C,CAAA;EACCC,QAAQ,
|
|
1
|
+
{"version":3,"file":"TypeaheadInput.js","sources":["../../../src/typeahead/typeaheadInput/TypeaheadInput.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { clsx } from 'clsx';\nimport { Component, createRef, ReactNode } from 'react';\n\nimport { Input } from '../../inputs/Input';\nimport { TypeaheadOption, TypeaheadProps } from '../Typeahead';\n\nconst DEFAULT_INPUT_MIN_WIDTH = 10;\n\nexport type TypeaheadInputProps<T> = {\n typeaheadId: string;\n value: string;\n selected: readonly TypeaheadOption<T>[];\n dropdownOpen?: boolean;\n autoComplete: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;\n onFocus: () => void;\n onPaste: React.ClipboardEventHandler<HTMLInputElement>;\n renderChip: (chip: TypeaheadOption<T>, index: number) => ReactNode;\n ariaActivedescendant?: string;\n} & Pick<TypeaheadProps<T>, 'id' | 'name' | 'autoFocus' | 'multiple' | 'placeholder' | 'maxHeight'>;\n\ntype TypeaheadInputState = {\n inputWidth: number;\n keyboardFocusedOptionIndex: number | null;\n};\n\nexport default class TypeaheadInput<T> extends Component<\n TypeaheadInputProps<T>,\n TypeaheadInputState\n> {\n inputRef = createRef<HTMLInputElement>();\n sizerRef = createRef<HTMLDivElement>();\n\n constructor(props: TypeaheadInputProps<T>) {\n super(props);\n this.state = {\n inputWidth: DEFAULT_INPUT_MIN_WIDTH,\n keyboardFocusedOptionIndex: null,\n };\n }\n\n componentDidMount() {\n const { autoFocus } = this.props;\n if (autoFocus) {\n // Autofocus after context code executions (e.g open Modal) is completed\n setTimeout(() => {\n this.inputRef.current?.focus();\n });\n }\n }\n\n componentDidUpdate(previousProps: TypeaheadInputProps<T>) {\n if (previousProps.value !== this.props.value && this.props.multiple) {\n this.recalculateWidth();\n }\n }\n\n recalculateWidth = () => {\n requestAnimationFrame(() => {\n this.setState({\n inputWidth: Math.max(DEFAULT_INPUT_MIN_WIDTH, this.sizerRef.current?.scrollWidth ?? 0 + 10),\n });\n });\n };\n\n renderInput = () => {\n const {\n typeaheadId,\n autoFocus,\n multiple,\n name,\n dropdownOpen,\n placeholder,\n selected,\n value,\n onChange,\n onKeyDown,\n onFocus,\n onPaste,\n autoComplete,\n ariaActivedescendant, // Declare the ariaActivedescendant variable\n } = this.props;\n const { inputWidth } = this.state;\n\n const hasPlaceholder = !multiple || selected.length === 0;\n return (\n <Input\n ref={this.inputRef}\n className={clsx(multiple && 'typeahead__input')}\n name={name}\n id={`input-${typeaheadId}`}\n aria-activedescendant={\n ariaActivedescendant\n ? `menu-${typeaheadId} ${ariaActivedescendant}`\n : `menu-${typeaheadId}`\n }\n autoFocus={autoFocus}\n placeholder={hasPlaceholder ? placeholder : ''}\n aria-autocomplete=\"list\"\n aria-expanded={dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-controls={dropdownOpen ? `menu-${typeaheadId}` : undefined}\n autoComplete={autoComplete}\n role=\"combobox\"\n value={value}\n style={multiple && selected.length > 0 ? { width: inputWidth } : {}}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onClick={onFocus}\n onFocus={onFocus}\n onPaste={onPaste}\n />\n );\n };\n\n render() {\n const { multiple, selected, value, maxHeight, renderChip } = this.props;\n\n return multiple ? (\n <div\n className=\"form-control typeahead__input-container\"\n style={{ maxHeight }}\n onClick={() => {\n this.inputRef.current?.focus();\n }}\n >\n <div className=\"typeahead__input-wrapper\">\n {selected && selected.map((chip, idx) => renderChip(chip, idx))}\n\n {this.renderInput()}\n <div className=\"typeahead__input-aligner\" />\n </div>\n <div ref={this.sizerRef} className=\"sizer form-control typeahead__input\">\n {value}\n </div>\n </div>\n ) : (\n this.renderInput()\n );\n }\n}\n"],"names":["DEFAULT_INPUT_MIN_WIDTH","TypeaheadInput","Component","inputRef","createRef","sizerRef","constructor","props","state","inputWidth","keyboardFocusedOptionIndex","componentDidMount","autoFocus","setTimeout","current","focus","componentDidUpdate","previousProps","value","multiple","recalculateWidth","requestAnimationFrame","setState","Math","max","scrollWidth","renderInput","typeaheadId","name","dropdownOpen","placeholder","selected","onChange","onKeyDown","onFocus","onPaste","autoComplete","ariaActivedescendant","hasPlaceholder","length","_jsx","Input","ref","className","clsx","id","undefined","role","style","width","onClick","render","maxHeight","renderChip","_jsxs","children","map","chip","idx"],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
8
8
|
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
9
9
|
const DEFAULT_INPUT_MIN_WIDTH = 10;
|
|
10
10
|
class TypeaheadInput extends Component {
|
|
11
|
-
inputRef =
|
|
12
|
-
sizerRef =
|
|
11
|
+
inputRef = /*#__PURE__*/createRef();
|
|
12
|
+
sizerRef = /*#__PURE__*/createRef();
|
|
13
13
|
constructor(props) {
|
|
14
14
|
super(props);
|
|
15
15
|
this.state = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeaheadInput.mjs","sources":["../../../src/typeahead/typeaheadInput/TypeaheadInput.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { clsx } from 'clsx';\nimport { Component, createRef, ReactNode } from 'react';\n\nimport { Input } from '../../inputs/Input';\nimport { TypeaheadOption, TypeaheadProps } from '../Typeahead';\n\nconst DEFAULT_INPUT_MIN_WIDTH = 10;\n\nexport type TypeaheadInputProps<T> = {\n typeaheadId: string;\n value: string;\n selected: readonly TypeaheadOption<T>[];\n dropdownOpen?: boolean;\n autoComplete: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;\n onFocus: () => void;\n onPaste: React.ClipboardEventHandler<HTMLInputElement>;\n renderChip: (chip: TypeaheadOption<T>, index: number) => ReactNode;\n ariaActivedescendant?: string;\n} & Pick<TypeaheadProps<T>, 'id' | 'name' | 'autoFocus' | 'multiple' | 'placeholder' | 'maxHeight'>;\n\ntype TypeaheadInputState = {\n inputWidth: number;\n keyboardFocusedOptionIndex: number | null;\n};\n\nexport default class TypeaheadInput<T> extends Component<\n TypeaheadInputProps<T>,\n TypeaheadInputState\n> {\n inputRef = createRef<HTMLInputElement>();\n sizerRef = createRef<HTMLDivElement>();\n\n constructor(props: TypeaheadInputProps<T>) {\n super(props);\n this.state = {\n inputWidth: DEFAULT_INPUT_MIN_WIDTH,\n keyboardFocusedOptionIndex: null,\n };\n }\n\n componentDidMount() {\n const { autoFocus } = this.props;\n if (autoFocus) {\n // Autofocus after context code executions (e.g open Modal) is completed\n setTimeout(() => {\n this.inputRef.current?.focus();\n });\n }\n }\n\n componentDidUpdate(previousProps: TypeaheadInputProps<T>) {\n if (previousProps.value !== this.props.value && this.props.multiple) {\n this.recalculateWidth();\n }\n }\n\n recalculateWidth = () => {\n requestAnimationFrame(() => {\n this.setState({\n inputWidth: Math.max(DEFAULT_INPUT_MIN_WIDTH, this.sizerRef.current?.scrollWidth ?? 0 + 10),\n });\n });\n };\n\n renderInput = () => {\n const {\n typeaheadId,\n autoFocus,\n multiple,\n name,\n dropdownOpen,\n placeholder,\n selected,\n value,\n onChange,\n onKeyDown,\n onFocus,\n onPaste,\n autoComplete,\n ariaActivedescendant, // Declare the ariaActivedescendant variable\n } = this.props;\n const { inputWidth } = this.state;\n\n const hasPlaceholder = !multiple || selected.length === 0;\n return (\n <Input\n ref={this.inputRef}\n className={clsx(multiple && 'typeahead__input')}\n name={name}\n id={`input-${typeaheadId}`}\n aria-activedescendant={\n ariaActivedescendant\n ? `menu-${typeaheadId} ${ariaActivedescendant}`\n : `menu-${typeaheadId}`\n }\n autoFocus={autoFocus}\n placeholder={hasPlaceholder ? placeholder : ''}\n aria-autocomplete=\"list\"\n aria-expanded={dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-controls={dropdownOpen ? `menu-${typeaheadId}` : undefined}\n autoComplete={autoComplete}\n role=\"combobox\"\n value={value}\n style={multiple && selected.length > 0 ? { width: inputWidth } : {}}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onClick={onFocus}\n onFocus={onFocus}\n onPaste={onPaste}\n />\n );\n };\n\n render() {\n const { multiple, selected, value, maxHeight, renderChip } = this.props;\n\n return multiple ? (\n <div\n className=\"form-control typeahead__input-container\"\n style={{ maxHeight }}\n onClick={() => {\n this.inputRef.current?.focus();\n }}\n >\n <div className=\"typeahead__input-wrapper\">\n {selected && selected.map((chip, idx) => renderChip(chip, idx))}\n\n {this.renderInput()}\n <div className=\"typeahead__input-aligner\" />\n </div>\n <div ref={this.sizerRef} className=\"sizer form-control typeahead__input\">\n {value}\n </div>\n </div>\n ) : (\n this.renderInput()\n );\n }\n}\n"],"names":["DEFAULT_INPUT_MIN_WIDTH","TypeaheadInput","Component","inputRef","createRef","sizerRef","constructor","props","state","inputWidth","keyboardFocusedOptionIndex","componentDidMount","autoFocus","setTimeout","current","focus","componentDidUpdate","previousProps","value","multiple","recalculateWidth","requestAnimationFrame","setState","Math","max","scrollWidth","renderInput","typeaheadId","name","dropdownOpen","placeholder","selected","onChange","onKeyDown","onFocus","onPaste","autoComplete","ariaActivedescendant","hasPlaceholder","length","_jsx","Input","ref","className","clsx","id","undefined","role","style","width","onClick","render","maxHeight","renderChip","_jsxs","children","map","chip","idx"],"mappings":";;;;;AAAA;AACA;AACA;AAOA,MAAMA,uBAAuB,GAAG,EAAE;AAqBb,MAAAC,cAAkB,SAAQC,SAG9C,CAAA;EACCC,QAAQ,
|
|
1
|
+
{"version":3,"file":"TypeaheadInput.mjs","sources":["../../../src/typeahead/typeaheadInput/TypeaheadInput.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { clsx } from 'clsx';\nimport { Component, createRef, ReactNode } from 'react';\n\nimport { Input } from '../../inputs/Input';\nimport { TypeaheadOption, TypeaheadProps } from '../Typeahead';\n\nconst DEFAULT_INPUT_MIN_WIDTH = 10;\n\nexport type TypeaheadInputProps<T> = {\n typeaheadId: string;\n value: string;\n selected: readonly TypeaheadOption<T>[];\n dropdownOpen?: boolean;\n autoComplete: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;\n onFocus: () => void;\n onPaste: React.ClipboardEventHandler<HTMLInputElement>;\n renderChip: (chip: TypeaheadOption<T>, index: number) => ReactNode;\n ariaActivedescendant?: string;\n} & Pick<TypeaheadProps<T>, 'id' | 'name' | 'autoFocus' | 'multiple' | 'placeholder' | 'maxHeight'>;\n\ntype TypeaheadInputState = {\n inputWidth: number;\n keyboardFocusedOptionIndex: number | null;\n};\n\nexport default class TypeaheadInput<T> extends Component<\n TypeaheadInputProps<T>,\n TypeaheadInputState\n> {\n inputRef = createRef<HTMLInputElement>();\n sizerRef = createRef<HTMLDivElement>();\n\n constructor(props: TypeaheadInputProps<T>) {\n super(props);\n this.state = {\n inputWidth: DEFAULT_INPUT_MIN_WIDTH,\n keyboardFocusedOptionIndex: null,\n };\n }\n\n componentDidMount() {\n const { autoFocus } = this.props;\n if (autoFocus) {\n // Autofocus after context code executions (e.g open Modal) is completed\n setTimeout(() => {\n this.inputRef.current?.focus();\n });\n }\n }\n\n componentDidUpdate(previousProps: TypeaheadInputProps<T>) {\n if (previousProps.value !== this.props.value && this.props.multiple) {\n this.recalculateWidth();\n }\n }\n\n recalculateWidth = () => {\n requestAnimationFrame(() => {\n this.setState({\n inputWidth: Math.max(DEFAULT_INPUT_MIN_WIDTH, this.sizerRef.current?.scrollWidth ?? 0 + 10),\n });\n });\n };\n\n renderInput = () => {\n const {\n typeaheadId,\n autoFocus,\n multiple,\n name,\n dropdownOpen,\n placeholder,\n selected,\n value,\n onChange,\n onKeyDown,\n onFocus,\n onPaste,\n autoComplete,\n ariaActivedescendant, // Declare the ariaActivedescendant variable\n } = this.props;\n const { inputWidth } = this.state;\n\n const hasPlaceholder = !multiple || selected.length === 0;\n return (\n <Input\n ref={this.inputRef}\n className={clsx(multiple && 'typeahead__input')}\n name={name}\n id={`input-${typeaheadId}`}\n aria-activedescendant={\n ariaActivedescendant\n ? `menu-${typeaheadId} ${ariaActivedescendant}`\n : `menu-${typeaheadId}`\n }\n autoFocus={autoFocus}\n placeholder={hasPlaceholder ? placeholder : ''}\n aria-autocomplete=\"list\"\n aria-expanded={dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-controls={dropdownOpen ? `menu-${typeaheadId}` : undefined}\n autoComplete={autoComplete}\n role=\"combobox\"\n value={value}\n style={multiple && selected.length > 0 ? { width: inputWidth } : {}}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onClick={onFocus}\n onFocus={onFocus}\n onPaste={onPaste}\n />\n );\n };\n\n render() {\n const { multiple, selected, value, maxHeight, renderChip } = this.props;\n\n return multiple ? (\n <div\n className=\"form-control typeahead__input-container\"\n style={{ maxHeight }}\n onClick={() => {\n this.inputRef.current?.focus();\n }}\n >\n <div className=\"typeahead__input-wrapper\">\n {selected && selected.map((chip, idx) => renderChip(chip, idx))}\n\n {this.renderInput()}\n <div className=\"typeahead__input-aligner\" />\n </div>\n <div ref={this.sizerRef} className=\"sizer form-control typeahead__input\">\n {value}\n </div>\n </div>\n ) : (\n this.renderInput()\n );\n }\n}\n"],"names":["DEFAULT_INPUT_MIN_WIDTH","TypeaheadInput","Component","inputRef","createRef","sizerRef","constructor","props","state","inputWidth","keyboardFocusedOptionIndex","componentDidMount","autoFocus","setTimeout","current","focus","componentDidUpdate","previousProps","value","multiple","recalculateWidth","requestAnimationFrame","setState","Math","max","scrollWidth","renderInput","typeaheadId","name","dropdownOpen","placeholder","selected","onChange","onKeyDown","onFocus","onPaste","autoComplete","ariaActivedescendant","hasPlaceholder","length","_jsx","Input","ref","className","clsx","id","undefined","role","style","width","onClick","render","maxHeight","renderChip","_jsxs","children","map","chip","idx"],"mappings":"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"}
|
package/build/types/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export type { AccordionItem, AccordionProps } from './accordion';
|
|
5
5
|
export type { ActionOptionProps } from './actionOption';
|
|
6
|
-
export type { SelectOptionProps, SelectOptionValue, SelectOptiopsSection } from './selectOption';
|
|
7
6
|
export type { AlertAction, AlertProps, AlertType } from './alert';
|
|
8
7
|
export type { AvatarProps } from './avatar';
|
|
9
8
|
export type { AvatarViewProps } from './avatarView';
|
|
@@ -78,7 +77,6 @@ export type { TableProps, TableRowType, TableRowClickableType, TableHeaderType,
|
|
|
78
77
|
export { default as Accordion } from './accordion';
|
|
79
78
|
export { default as ActionButton } from './actionButton';
|
|
80
79
|
export { default as ActionOption } from './actionOption';
|
|
81
|
-
export { default as SelectOption } from './selectOption';
|
|
82
80
|
export { default as Alert } from './alert';
|
|
83
81
|
export { default as Avatar } from './avatar';
|
|
84
82
|
export { default as AvatarView } from './avatarView';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export declare const lorem5 = "Lorem ipsum dolor sit amet.";
|
|
1
2
|
export declare const lorem10 = "Lorem ipsum, dolor sit amet consectetur adipisicing elit. Iste, architecto?";
|
|
3
|
+
export declare const lorem20 = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum non explicabo doloribus rerum saepe ut beatae adipisci rem vero optio.";
|
|
2
4
|
export declare const lorem40 = "Lorem ipsum dolor sit amet consectetur, adipisicing elit. Illo esse quod et iure deserunt facilis similique voluptatem reprehenderit mollitia inventore, ab voluptate dignissimos autem repellat accusamus perferendis sed pariatur tempore possimus ipsam praesentium ipsum? Nesciunt cumque repellendus impedit aliquam! Error?";
|
|
3
5
|
export declare const lorem100 = "Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ipsum quisquam fuga dolore veritatis assumenda rerum, non, sint aliquam, excepturi architecto temporibus quis? Quo, deleniti nobis, illo necessitatibus accusamus commodi error fuga culpa sequi, incidunt voluptatum tempore quisquam quos eos modi impedit sit! Eveniet libero optio assumenda rem accusantium quod quas, recusandae, incidunt mollitia harum dolorum. Dolor porro hic mollitia accusantium vel commodi, ipsam a suscipit iusto placeat numquam excepturi amet nostrum aliquid aperiam sequi deleniti asperiores fugit cumque ipsa voluptatem culpa non libero iste. Placeat rem dolore quisquam aperiam, eligendi facere quos minima totam a ut corporis culpa! Veniam, illo!";
|
|
4
6
|
export declare const lorem500 = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi commodi eos placeat aut quidem et error ex qui. Reprehenderit animi officiis magnam dicta, alias eligendi facilis sit fuga suscipit qui voluptatibus, quam harum beatae omnis sint sapiente dolorum cum officia dignissimos ab ipsa, deleniti voluptates exercitationem tempore! Fugit consequuntur ullam, similique tenetur corporis laborum sed sint, necessitatibus natus voluptatem, eius eveniet placeat quos quaerat officia officiis magni reprehenderit eaque! Dolorum odio iste vitae magnam, voluptatum pariatur unde, quod at adipisci reprehenderit dignissimos id modi quaerat rerum et dolorem. Rerum ratione beatae, repudiandae temporibus ipsam accusamus deserunt! Maiores, eos nisi laboriosam soluta rem minus expedita repudiandae accusamus aperiam rerum facere ducimus voluptas! Rerum fugit eum quasi. At sapiente quaerat, similique inventore quia magni cupiditate molestias odio voluptate quasi culpa ullam sit unde veritatis ut dicta ad nihil veniam accusamus eveniet vel placeat minus numquam nostrum! Delectus quas adipisci debitis cumque doloremque, nobis, obcaecati dolorem commodi possimus nesciunt vero? Excepturi saepe explicabo dolorem facere itaque optio, totam tempore earum culpa fugit ullam officia maiores dolores facilis voluptate consequuntur a voluptas, asperiores obcaecati voluptatem. Rerum suscipit quod nulla harum illum sequi praesentium tenetur neque architecto, molestias earum! Necessitatibus, ullam molestiae voluptas, esse dolorem officiis aut, inventore dolore provident beatae error nesciunt incidunt neque quam molestias iusto minus rem nam. Eum, provident id. Molestias vitae ex sequi veritatis totam minima labore quasi eligendi nemo, ipsa accusamus eaque quae maiores eum ipsam inventore illo voluptatem sapiente velit, quos aspernatur commodi quibusdam. A expedita, adipisci aut voluptatum repellat fugit saepe accusamus debitis, quis dolorem, incidunt corrupti magni? Inventore nulla fugit quisquam dolorum temporibus corporis error voluptates? Impedit possimus provident a vero exercitationem doloribus est voluptatibus distinctio, ipsum iste sit repellat sapiente tenetur deleniti ullam dolorem soluta accusantium! Ab, placeat rerum explicabo corporis impedit quam quos veritatis expedita hic veniam harum qui dolor neque! Laboriosam officiis, dignissimos corporis, ducimus iure nemo quisquam pariatur molestias repellat aliquam tempore impedit dolore tempora eaque accusamus fugiat facilis dolor sint laborum molestiae sapiente deserunt quasi obcaecati! Veniam, doloribus! Unde, fugiat odit sunt facere maiores nobis tempora, natus quam consectetur deleniti nesciunt perferendis aut praesentium. Libero, neque cumque beatae recusandae qui repudiandae sunt quod dolorum nemo voluptates et culpa temporibus perferendis est expedita vel laboriosam! Accusamus incidunt consectetur delectus voluptate sunt repudiandae deleniti ut consequuntur, facilis assumenda nostrum soluta unde repellat reiciendis ipsum quidem quam numquam optio voluptates eius. Molestias quibusdam assumenda earum atque ullam delectus explicabo recusandae quasi aperiam, est placeat? Officia molestiae accusamus rem placeat adipisci officiis harum vel. Neque sit qui alias magni illum! Ipsam, necessitatibus unde sit possimus ipsum quis neque voluptate reprehenderit tempore nobis quo sunt molestiae atque rerum similique natus minus eum? Maiores aspernatur ut ullam eos vitae aperiam odit deleniti eveniet delectus totam harum iste, blanditiis ab laboriosam mollitia. Esse incidunt odit voluptate minus cum molestiae reprehenderit minima voluptatibus id. Molestias aliquid repellendus dolores cupiditate, nemo reiciendis ad facilis quo est, a error culpa similique libero dolor labore! Facere laborum cupiditate iste laboriosam culpa consectetur.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-data.d.ts","sourceRoot":"","sources":["../../../src/test-utils/fake-data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,gFAC2D,CAAC;AAEhF,eAAO,MAAM,OAAO,sUACiT,CAAC;AAEtU,eAAO,MAAM,QAAQ,+tBACysB,CAAC;AAE/tB,eAAO,MAAM,QAAQ,2uHACqtH,CAAC;AAE3uH,eAAO,MAAM,SAAS,28OACo7O,CAAC"}
|
|
1
|
+
{"version":3,"file":"fake-data.d.ts","sourceRoot":"","sources":["../../../src/test-utils/fake-data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,gCAAgC,CAAC;AAEpD,eAAO,MAAM,OAAO,gFAC2D,CAAC;AAEhF,eAAO,MAAM,OAAO,4IACuH,CAAC;AAE5I,eAAO,MAAM,OAAO,sUACiT,CAAC;AAEtU,eAAO,MAAM,QAAQ,+tBACysB,CAAC;AAE/tB,eAAO,MAAM,QAAQ,2uHACqtH,CAAC;AAE3uH,eAAO,MAAM,SAAS,28OACo7O,CAAC"}
|
|
@@ -38,8 +38,6 @@ declare function customRender(ui: ReactElement, { locale, messages, ...renderOpt
|
|
|
38
38
|
"neptune.PhoneNumberInput.phoneNumberLabel": string;
|
|
39
39
|
"neptune.Select.searchPlaceholder": string;
|
|
40
40
|
"neptune.SelectInput.noResultsFound": string;
|
|
41
|
-
"neptune.SelectOption.action.label": string;
|
|
42
|
-
"neptune.SelectOption.selected.action.label": string;
|
|
43
41
|
"neptune.StatusIcon.iconLabel.error": string;
|
|
44
42
|
"neptune.StatusIcon.iconLabel.information": string;
|
|
45
43
|
"neptune.StatusIcon.iconLabel.pending": string;
|
|
@@ -121,8 +119,6 @@ declare function customRenderHook(callback: () => unknown, { locale, messages }?
|
|
|
121
119
|
"neptune.PhoneNumberInput.phoneNumberLabel": string;
|
|
122
120
|
"neptune.Select.searchPlaceholder": string;
|
|
123
121
|
"neptune.SelectInput.noResultsFound": string;
|
|
124
|
-
"neptune.SelectOption.action.label": string;
|
|
125
|
-
"neptune.SelectOption.selected.action.label": string;
|
|
126
122
|
"neptune.StatusIcon.iconLabel.error": string;
|
|
127
123
|
"neptune.StatusIcon.iconLabel.information": string;
|
|
128
124
|
"neptune.StatusIcon.iconLabel.pending": string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test-utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAM,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAMxD;;;;GAIG;AACH,iBAAS,YAAY,CACnB,EAAE,EAAE,YAAY,EAChB,EAAE,MAAuB,EAAE,QAAa,EAAE,GAAG,aAAa,EAAE
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test-utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAM,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAMxD;;;;GAIG;AACH,iBAAS,YAAY,CACnB,EAAE,EAAE,YAAY,EAChB,EAAE,MAAuB,EAAE,QAAa,EAAE,GAAG,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAK,GAChE,UAAU,CAAC,OAAO,MAAM,CAAC,CAK3B;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CACvB,QAAQ,EAAE,MAAM,OAAO,EACvB,EAAE,MAAuB,EAAE,QAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAK,uEAKhD;AAED,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,gBAAgB,IAAI,UAAU,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadInput.d.ts","sourceRoot":"","sources":["../../../src/uploadInput/UploadInput.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAiC,MAAM,WAAW,CAAC;AAOvE,OAAO,EAAE,YAAY,EAAe,cAAc,EAAE,MAAM,SAAS,CAAC;AACpE,OAAqB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE9E,OAAmB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAEhC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAE9D;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAErD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAEjD;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAEhD;;OAEG;IACH,aAAa,CAAC,EAAE;QACd;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAEvB;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,GAAG,IAAI,CACN,iBAAiB,EACjB,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,IAAI,GAAG,mBAAmB,CACjG,GAAG;IAAE,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAA;CAAE,GAAG,WAAW,CAAC;AAgCjE;;;;;;;;GAQG;AACH,QAAA,MAAM,WAAW,GAAI,oQAoBlB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"UploadInput.d.ts","sourceRoot":"","sources":["../../../src/uploadInput/UploadInput.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAiC,MAAM,WAAW,CAAC;AAOvE,OAAO,EAAE,YAAY,EAAe,cAAc,EAAE,MAAM,SAAS,CAAC;AACpE,OAAqB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE9E,OAAmB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAEhC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAE9D;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAErD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAEjD;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAEhD;;OAEG;IACH,aAAa,CAAC,EAAE;QACd;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAEvB;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,GAAG,IAAI,CACN,iBAAiB,EACjB,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,IAAI,GAAG,mBAAmB,CACjG,GAAG;IAAE,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAA;CAAE,GAAG,WAAW,CAAC;AAgCjE;;;;;;;;GAQG;AACH,QAAA,MAAM,WAAW,GAAI,oQAoBlB,gBAAgB,gCAkXlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
package/build/upload/Upload.js
CHANGED
|
@@ -44,7 +44,7 @@ exports.UploadStep = void 0;
|
|
|
44
44
|
UploadStep["UPLOAD_IMAGE_STEP"] = "uploadImageStep";
|
|
45
45
|
})(exports.UploadStep || (exports.UploadStep = {}));
|
|
46
46
|
class Upload extends React.Component {
|
|
47
|
-
static defaultProps =
|
|
47
|
+
static defaultProps = {
|
|
48
48
|
animationDelay: 300,
|
|
49
49
|
maxSize: MAX_SIZE_DEFAULT,
|
|
50
50
|
psButtonDisabled: false,
|
|
@@ -52,7 +52,7 @@ class Upload extends React.Component {
|
|
|
52
52
|
usAccept: 'image/*',
|
|
53
53
|
usDisabled: false,
|
|
54
54
|
usLabel: ''
|
|
55
|
-
}
|
|
55
|
+
};
|
|
56
56
|
dragCounter = 0;
|
|
57
57
|
timeouts = 0;
|
|
58
58
|
constructor(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Upload.js","sources":["../../src/upload/Upload.tsx"],"sourcesContent":["import { Plus as PlusIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { Component } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport { Size, Typography } from '../common';\nimport Title from '../title';\n\nimport messages from './Upload.messages';\nimport { UploadImageStep, ProcessingStep, CompleteStep } from './steps';\nimport { postData, asyncFileRead, isSizeValid, isTypeValid, getFileType } from './utils';\nimport { PostDataFetcher, PostDataHTTPOptions, ResponseError } from './utils/postData/postData';\nimport { ProcessIndicatorStatus } from '../processIndicator';\n\nexport const MAX_SIZE_DEFAULT = 5000000;\n\nexport enum UploadStep {\n UPLOAD_IMAGE_STEP = 'uploadImageStep',\n}\n\nexport interface UploadProps extends WrappedComponentProps {\n animationDelay?: number;\n csButtonText?: string;\n csFailureText?: string;\n csSuccessText?: string;\n csTooLargeMessage?: string;\n csWrongTypeMessage?: string;\n httpOptions?: PostDataHTTPOptions & {\n fileInputName?: string;\n data?: Record<string, string | Blob>;\n };\n /**\n * You can provide a fetcher function with the same interface as the global fetch function, which is used by default.\n * function fetcher(input: RequestInfo, init?: RequestInit): Promise<Response>\n */\n fetcher?: PostDataFetcher;\n maxSize?: number;\n psButtonText?: string;\n psButtonDisabled?: boolean;\n psProcessingText?: string;\n size?: `${Size.SMALL | Size.MEDIUM | Size.LARGE}`;\n /**\n * You can provide multiple rules separated by comma, e.g.: \"application/pdf,image/*\".\n * Using \"*\" will allow every file type to be uploaded.\n */\n usAccept?: string;\n usButtonText?: string;\n usButtonRetryText?: string;\n usDisabled?: boolean;\n usDropMessage?: string;\n usHelpImage?: React.ReactNode;\n usLabel?: string;\n usPlaceholder?: string;\n /**\n * Override for the [InlineAlert icon's default, accessible name](/?path=/docs/other-statusicon-accessibility--docs)\n * announced by the screen readers\n * */\n errorIconLabel?: string;\n /** @deprecated Only a single variant exists, please remove this prop. */\n uploadStep?: `${UploadStep}`;\n onCancel?: () => void;\n onFailure?: (error: unknown) => void;\n onStart?: (file: File) => void;\n onSuccess?: (response: string | Response, fileName: string) => void;\n}\n\ninterface UploadState {\n fileName: string;\n isDroppable: boolean;\n isComplete: boolean;\n isError: boolean;\n isImage: boolean;\n isProcessing: boolean;\n isSuccess: boolean;\n response: unknown;\n uploadedImage: string | undefined;\n}\n\nexport class Upload extends Component<UploadProps, UploadState> {\n declare props: UploadProps & Required<Pick<UploadProps, keyof typeof Upload.defaultProps>>;\n\n static defaultProps = {\n animationDelay: 300,\n maxSize: MAX_SIZE_DEFAULT,\n psButtonDisabled: false,\n size: 'md',\n usAccept: 'image/*',\n usDisabled: false,\n usLabel: '',\n } satisfies Partial<UploadProps>;\n\n dragCounter = 0;\n timeouts = 0;\n\n constructor(props: UploadProps) {\n super(props);\n\n this.state = {\n fileName: '',\n isDroppable: false,\n isComplete: false,\n isError: false,\n isImage: false,\n isProcessing: false,\n isSuccess: false,\n response: undefined,\n uploadedImage: undefined,\n };\n }\n\n getErrorMessage(status?: number) {\n const { csFailureText, csTooLargeMessage, csWrongTypeMessage, maxSize, intl } = this.props;\n switch (status) {\n case 413:\n return (\n csTooLargeMessage ||\n intl.formatMessage(messages.csTooLargeMessage, {\n maxSize: roundFileSize(maxSize),\n })\n );\n case 415:\n return csWrongTypeMessage || intl.formatMessage(messages.csWrongTypeMessage);\n default:\n return csFailureText || intl.formatMessage(messages.csFailureText);\n }\n }\n\n onDragLeave(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n this.dragCounter -= 1;\n if (this.dragCounter === 0) {\n this.setState({ isDroppable: false });\n }\n }\n\n onDragEnter(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n this.dragCounter += 1;\n const { usDisabled } = this.props;\n const { isProcessing } = this.state;\n if (this.dragCounter === 1 && !usDisabled && !isProcessing) {\n this.setState({ isDroppable: true });\n }\n }\n\n async onDrop(event: React.DragEvent<HTMLDivElement>) {\n const { isProcessing } = this.state;\n event.preventDefault();\n if (!isProcessing) {\n this.reset();\n }\n\n if (event.dataTransfer?.files?.[0]) {\n await this.fileDropped(event.dataTransfer.files[0]);\n }\n }\n\n asyncPost = async (file: File) => {\n const { httpOptions, fetcher } = this.props;\n if (httpOptions == null) {\n throw new Error('Cannot find HTTP options');\n }\n\n const { fileInputName = file.name, data = {} } = httpOptions;\n\n const formData = new FormData();\n formData.append(fileInputName, file);\n Object.keys(data).forEach((key) => formData.append(key, data[key]));\n return postData(httpOptions, formData, fetcher);\n };\n\n handleUploadComplete = (type: 'success' | 'error', response: unknown) => {\n const { animationDelay, onSuccess, onFailure } = this.props;\n const { fileName } = this.state;\n\n window.clearTimeout(this.timeouts);\n this.timeouts = window.setTimeout(() => {\n this.setState(\n {\n isProcessing: false,\n isComplete: true,\n },\n () => {\n if (type === 'success') {\n onSuccess?.(response as string | Response, fileName);\n } else {\n onFailure?.(response);\n }\n },\n );\n }, animationDelay);\n };\n\n asyncResponse = (response: unknown, type: 'success' | 'error') => {\n this.setState(\n {\n response,\n isError: type === 'error',\n isSuccess: type === 'success',\n },\n () => this.handleUploadComplete(type, response),\n );\n };\n\n handleOnClear: React.MouseEventHandler<HTMLButtonElement> = (event) => {\n event.preventDefault();\n const { onCancel } = this.props;\n onCancel?.();\n\n this.reset();\n };\n\n reset = () => {\n this.dragCounter = 0;\n window.clearTimeout(this.timeouts);\n this.setState({\n isComplete: false,\n isError: false,\n isProcessing: false,\n isSuccess: false,\n });\n };\n\n showDataImage = (dataUrl: string) => {\n const { isImage } = this.state;\n if (isImage) {\n this.setState({\n uploadedImage: dataUrl,\n });\n }\n };\n\n fileDropped = async (file: File) => {\n const { httpOptions, maxSize, onStart, usDisabled, usAccept } = this.props;\n const { isProcessing } = this.state;\n\n if (usDisabled || isProcessing) {\n return false;\n }\n\n if (!file) {\n throw new Error('Could not retrieve file');\n }\n\n this.setState({\n fileName: file.name,\n isDroppable: false,\n isProcessing: true,\n });\n\n onStart?.(file);\n\n let file64 = null;\n\n try {\n file64 = await asyncFileRead(file);\n } catch (error) {\n this.asyncResponse(error, 'error');\n }\n\n if (!file64) {\n return false;\n }\n\n this.setState({\n isImage: getFileType(file, file64).includes('image'),\n });\n\n if (!isTypeValid(file, usAccept, file64)) {\n this.asyncResponse(\n new ResponseError(\n new Response(null, {\n status: 415,\n statusText: 'Unsupported Media Type',\n }),\n ),\n 'error',\n );\n return false;\n }\n\n if (!isSizeValid(file, maxSize)) {\n this.asyncResponse(\n new ResponseError(\n new Response(null, {\n status: 413,\n statusText: 'Request Entity Too Large',\n }),\n ),\n 'error',\n );\n return false;\n }\n\n if (httpOptions) {\n // Post the file to provided endpoint\n let response;\n try {\n response = await this.asyncPost(file);\n } catch (error) {\n this.asyncResponse(error, 'error');\n return false;\n }\n this.asyncResponse(response, 'success');\n this.showDataImage(file64);\n return true;\n }\n // Post on form submit. And return the encoded image.\n this.showDataImage(file64);\n this.asyncResponse(file64, 'success');\n return true;\n };\n\n render() {\n const {\n maxSize,\n usDropMessage,\n usAccept,\n usButtonText,\n usButtonRetryText,\n usDisabled,\n usHelpImage,\n usLabel,\n usPlaceholder,\n psButtonText,\n psProcessingText,\n psButtonDisabled,\n csButtonText,\n csSuccessText,\n size,\n intl,\n errorIconLabel,\n } = this.props;\n\n const {\n response,\n fileName,\n isComplete,\n isDroppable,\n isError,\n isImage,\n isProcessing,\n isSuccess,\n uploadedImage,\n } = this.state;\n\n return (\n <div\n className={clsx('droppable-area', {\n droppable: true,\n 'tw-droppable-sm droppable-sm': size === 'sm',\n 'tw-droppable-md droppable-md': size === 'md' || !size,\n 'tw-droppable-lg droppable-lg': size === 'lg',\n 'droppable-dropping': isDroppable,\n 'droppable-processing': isProcessing,\n 'droppable-complete': isComplete && !isError,\n 'droppable-negative': isError && !isProcessing,\n })}\n onDragEnter={(event) => this.onDragEnter(event)}\n onDragLeave={(event) => this.onDragLeave(event)}\n onDrop={async (event) => this.onDrop(event)}\n onDragOver={(event) => event.preventDefault()}\n >\n {!isProcessing && !isComplete && (\n <UploadImageStep\n fileDropped={async (file) => this.fileDropped(file)}\n isComplete={isComplete}\n usAccept={usAccept}\n usButtonText={usButtonText || intl.formatMessage(messages.usButtonText)}\n usDisabled={usDisabled}\n usHelpImage={usHelpImage}\n usLabel={usLabel}\n usPlaceholder={\n usPlaceholder ||\n intl.formatMessage(messages.usPlaceholder, { maxSize: roundFileSize(maxSize) })\n }\n />\n )}\n\n {(isSuccess || isComplete) && !isError && (\n <CompleteStep\n fileName={fileName}\n isComplete={isComplete}\n isImage={isImage}\n csButtonText={csButtonText || intl.formatMessage(messages.csButtonText)}\n csSuccessText={csSuccessText || intl.formatMessage(messages.csSuccessText)}\n uploadedImage={uploadedImage}\n onClear={(event) => this.handleOnClear(event)}\n />\n )}\n {isError && !isProcessing && (\n <UploadImageStep\n fileDropped={async (file) => {\n this.reset();\n await this.fileDropped(file);\n }}\n isComplete={!isError}\n usAccept={usAccept}\n usButtonText={usButtonRetryText || intl.formatMessage(messages.retry)}\n usDisabled={usDisabled}\n usHelpImage={null}\n usLabel={usLabel}\n usPlaceholder={\n usPlaceholder ||\n intl.formatMessage(messages.usPlaceholder, { maxSize: roundFileSize(maxSize) })\n }\n errorMessage={this.getErrorMessage(\n response != null &&\n typeof response === 'object' &&\n 'status' in response &&\n typeof response.status === 'number'\n ? response.status\n : undefined,\n )}\n errorIconLabel={errorIconLabel}\n />\n )}\n {isProcessing && (\n <ProcessingStep\n isComplete={isComplete}\n isError={isError}\n isSuccess={isSuccess}\n psButtonText={psButtonText || intl.formatMessage(messages.psButtonText)}\n psProcessingText={psProcessingText || intl.formatMessage(messages.psProcessingText)}\n psButtonDisabled={psButtonDisabled}\n onClear={(event) => this.handleOnClear(event)}\n />\n )}\n {!isProcessing && (\n <div className=\"droppable-dropping-card droppable-card\" aria-live=\"polite\">\n <div className=\"droppable-card-content\">\n <div className=\"circle circle-sm text-primary\">\n <PlusIcon size=\"16\" />\n </div>\n <Title type={Typography.TITLE_BODY} className=\"m-t-3\">\n {usDropMessage || intl.formatMessage(messages.usDropMessage)}\n </Title>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default injectIntl(Upload);\n\nconst roundFileSize = (bytes: number) => {\n const megabytes = bytes / 1000000;\n if (megabytes >= 0.1) {\n const isRound = Math.floor(megabytes) === megabytes;\n return isRound ? `${megabytes}` : megabytes.toFixed(1);\n }\n if (megabytes >= 0.01) {\n return megabytes.toFixed(2);\n }\n return megabytes.toFixed(3);\n};\n"],"names":["MAX_SIZE_DEFAULT","UploadStep","Upload","Component","defaultProps","animationDelay","maxSize","psButtonDisabled","size","usAccept","usDisabled","usLabel","dragCounter","timeouts","constructor","props","state","fileName","isDroppable","isComplete","isError","isImage","isProcessing","isSuccess","response","undefined","uploadedImage","getErrorMessage","status","csFailureText","csTooLargeMessage","csWrongTypeMessage","intl","formatMessage","messages","roundFileSize","onDragLeave","event","preventDefault","setState","onDragEnter","onDrop","reset","dataTransfer","files","fileDropped","asyncPost","file","httpOptions","fetcher","Error","fileInputName","name","data","formData","FormData","append","Object","keys","forEach","key","postData","handleUploadComplete","type","onSuccess","onFailure","window","clearTimeout","setTimeout","asyncResponse","handleOnClear","onCancel","showDataImage","dataUrl","onStart","file64","asyncFileRead","error","getFileType","includes","isTypeValid","ResponseError","Response","statusText","isSizeValid","render","usDropMessage","usButtonText","usButtonRetryText","usHelpImage","usPlaceholder","psButtonText","psProcessingText","csButtonText","csSuccessText","errorIconLabel","_jsxs","className","clsx","droppable","onDragOver","children","_jsx","UploadImageStep","CompleteStep","onClear","retry","errorMessage","ProcessingStep","PlusIcon","Title","Typography","TITLE_BODY","injectIntl","bytes","megabytes","isRound","Math","floor","toFixed"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Upload.js","sources":["../../src/upload/Upload.tsx"],"sourcesContent":["import { Plus as PlusIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { Component } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport { Size, Typography } from '../common';\nimport Title from '../title';\n\nimport messages from './Upload.messages';\nimport { UploadImageStep, ProcessingStep, CompleteStep } from './steps';\nimport { postData, asyncFileRead, isSizeValid, isTypeValid, getFileType } from './utils';\nimport { PostDataFetcher, PostDataHTTPOptions, ResponseError } from './utils/postData/postData';\nimport { ProcessIndicatorStatus } from '../processIndicator';\n\nexport const MAX_SIZE_DEFAULT = 5000000;\n\nexport enum UploadStep {\n UPLOAD_IMAGE_STEP = 'uploadImageStep',\n}\n\nexport interface UploadProps extends WrappedComponentProps {\n animationDelay?: number;\n csButtonText?: string;\n csFailureText?: string;\n csSuccessText?: string;\n csTooLargeMessage?: string;\n csWrongTypeMessage?: string;\n httpOptions?: PostDataHTTPOptions & {\n fileInputName?: string;\n data?: Record<string, string | Blob>;\n };\n /**\n * You can provide a fetcher function with the same interface as the global fetch function, which is used by default.\n * function fetcher(input: RequestInfo, init?: RequestInit): Promise<Response>\n */\n fetcher?: PostDataFetcher;\n maxSize?: number;\n psButtonText?: string;\n psButtonDisabled?: boolean;\n psProcessingText?: string;\n size?: `${Size.SMALL | Size.MEDIUM | Size.LARGE}`;\n /**\n * You can provide multiple rules separated by comma, e.g.: \"application/pdf,image/*\".\n * Using \"*\" will allow every file type to be uploaded.\n */\n usAccept?: string;\n usButtonText?: string;\n usButtonRetryText?: string;\n usDisabled?: boolean;\n usDropMessage?: string;\n usHelpImage?: React.ReactNode;\n usLabel?: string;\n usPlaceholder?: string;\n /**\n * Override for the [InlineAlert icon's default, accessible name](/?path=/docs/other-statusicon-accessibility--docs)\n * announced by the screen readers\n * */\n errorIconLabel?: string;\n /** @deprecated Only a single variant exists, please remove this prop. */\n uploadStep?: `${UploadStep}`;\n onCancel?: () => void;\n onFailure?: (error: unknown) => void;\n onStart?: (file: File) => void;\n onSuccess?: (response: string | Response, fileName: string) => void;\n}\n\ninterface UploadState {\n fileName: string;\n isDroppable: boolean;\n isComplete: boolean;\n isError: boolean;\n isImage: boolean;\n isProcessing: boolean;\n isSuccess: boolean;\n response: unknown;\n uploadedImage: string | undefined;\n}\n\nexport class Upload extends Component<UploadProps, UploadState> {\n declare props: UploadProps & Required<Pick<UploadProps, keyof typeof Upload.defaultProps>>;\n\n static defaultProps = {\n animationDelay: 300,\n maxSize: MAX_SIZE_DEFAULT,\n psButtonDisabled: false,\n size: 'md',\n usAccept: 'image/*',\n usDisabled: false,\n usLabel: '',\n } satisfies Partial<UploadProps>;\n\n dragCounter = 0;\n timeouts = 0;\n\n constructor(props: UploadProps) {\n super(props);\n\n this.state = {\n fileName: '',\n isDroppable: false,\n isComplete: false,\n isError: false,\n isImage: false,\n isProcessing: false,\n isSuccess: false,\n response: undefined,\n uploadedImage: undefined,\n };\n }\n\n getErrorMessage(status?: number) {\n const { csFailureText, csTooLargeMessage, csWrongTypeMessage, maxSize, intl } = this.props;\n switch (status) {\n case 413:\n return (\n csTooLargeMessage ||\n intl.formatMessage(messages.csTooLargeMessage, {\n maxSize: roundFileSize(maxSize),\n })\n );\n case 415:\n return csWrongTypeMessage || intl.formatMessage(messages.csWrongTypeMessage);\n default:\n return csFailureText || intl.formatMessage(messages.csFailureText);\n }\n }\n\n onDragLeave(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n this.dragCounter -= 1;\n if (this.dragCounter === 0) {\n this.setState({ isDroppable: false });\n }\n }\n\n onDragEnter(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n this.dragCounter += 1;\n const { usDisabled } = this.props;\n const { isProcessing } = this.state;\n if (this.dragCounter === 1 && !usDisabled && !isProcessing) {\n this.setState({ isDroppable: true });\n }\n }\n\n async onDrop(event: React.DragEvent<HTMLDivElement>) {\n const { isProcessing } = this.state;\n event.preventDefault();\n if (!isProcessing) {\n this.reset();\n }\n\n if (event.dataTransfer?.files?.[0]) {\n await this.fileDropped(event.dataTransfer.files[0]);\n }\n }\n\n asyncPost = async (file: File) => {\n const { httpOptions, fetcher } = this.props;\n if (httpOptions == null) {\n throw new Error('Cannot find HTTP options');\n }\n\n const { fileInputName = file.name, data = {} } = httpOptions;\n\n const formData = new FormData();\n formData.append(fileInputName, file);\n Object.keys(data).forEach((key) => formData.append(key, data[key]));\n return postData(httpOptions, formData, fetcher);\n };\n\n handleUploadComplete = (type: 'success' | 'error', response: unknown) => {\n const { animationDelay, onSuccess, onFailure } = this.props;\n const { fileName } = this.state;\n\n window.clearTimeout(this.timeouts);\n this.timeouts = window.setTimeout(() => {\n this.setState(\n {\n isProcessing: false,\n isComplete: true,\n },\n () => {\n if (type === 'success') {\n onSuccess?.(response as string | Response, fileName);\n } else {\n onFailure?.(response);\n }\n },\n );\n }, animationDelay);\n };\n\n asyncResponse = (response: unknown, type: 'success' | 'error') => {\n this.setState(\n {\n response,\n isError: type === 'error',\n isSuccess: type === 'success',\n },\n () => this.handleUploadComplete(type, response),\n );\n };\n\n handleOnClear: React.MouseEventHandler<HTMLButtonElement> = (event) => {\n event.preventDefault();\n const { onCancel } = this.props;\n onCancel?.();\n\n this.reset();\n };\n\n reset = () => {\n this.dragCounter = 0;\n window.clearTimeout(this.timeouts);\n this.setState({\n isComplete: false,\n isError: false,\n isProcessing: false,\n isSuccess: false,\n });\n };\n\n showDataImage = (dataUrl: string) => {\n const { isImage } = this.state;\n if (isImage) {\n this.setState({\n uploadedImage: dataUrl,\n });\n }\n };\n\n fileDropped = async (file: File) => {\n const { httpOptions, maxSize, onStart, usDisabled, usAccept } = this.props;\n const { isProcessing } = this.state;\n\n if (usDisabled || isProcessing) {\n return false;\n }\n\n if (!file) {\n throw new Error('Could not retrieve file');\n }\n\n this.setState({\n fileName: file.name,\n isDroppable: false,\n isProcessing: true,\n });\n\n onStart?.(file);\n\n let file64 = null;\n\n try {\n file64 = await asyncFileRead(file);\n } catch (error) {\n this.asyncResponse(error, 'error');\n }\n\n if (!file64) {\n return false;\n }\n\n this.setState({\n isImage: getFileType(file, file64).includes('image'),\n });\n\n if (!isTypeValid(file, usAccept, file64)) {\n this.asyncResponse(\n new ResponseError(\n new Response(null, {\n status: 415,\n statusText: 'Unsupported Media Type',\n }),\n ),\n 'error',\n );\n return false;\n }\n\n if (!isSizeValid(file, maxSize)) {\n this.asyncResponse(\n new ResponseError(\n new Response(null, {\n status: 413,\n statusText: 'Request Entity Too Large',\n }),\n ),\n 'error',\n );\n return false;\n }\n\n if (httpOptions) {\n // Post the file to provided endpoint\n let response;\n try {\n response = await this.asyncPost(file);\n } catch (error) {\n this.asyncResponse(error, 'error');\n return false;\n }\n this.asyncResponse(response, 'success');\n this.showDataImage(file64);\n return true;\n }\n // Post on form submit. And return the encoded image.\n this.showDataImage(file64);\n this.asyncResponse(file64, 'success');\n return true;\n };\n\n render() {\n const {\n maxSize,\n usDropMessage,\n usAccept,\n usButtonText,\n usButtonRetryText,\n usDisabled,\n usHelpImage,\n usLabel,\n usPlaceholder,\n psButtonText,\n psProcessingText,\n psButtonDisabled,\n csButtonText,\n csSuccessText,\n size,\n intl,\n errorIconLabel,\n } = this.props;\n\n const {\n response,\n fileName,\n isComplete,\n isDroppable,\n isError,\n isImage,\n isProcessing,\n isSuccess,\n uploadedImage,\n } = this.state;\n\n return (\n <div\n className={clsx('droppable-area', {\n droppable: true,\n 'tw-droppable-sm droppable-sm': size === 'sm',\n 'tw-droppable-md droppable-md': size === 'md' || !size,\n 'tw-droppable-lg droppable-lg': size === 'lg',\n 'droppable-dropping': isDroppable,\n 'droppable-processing': isProcessing,\n 'droppable-complete': isComplete && !isError,\n 'droppable-negative': isError && !isProcessing,\n })}\n onDragEnter={(event) => this.onDragEnter(event)}\n onDragLeave={(event) => this.onDragLeave(event)}\n onDrop={async (event) => this.onDrop(event)}\n onDragOver={(event) => event.preventDefault()}\n >\n {!isProcessing && !isComplete && (\n <UploadImageStep\n fileDropped={async (file) => this.fileDropped(file)}\n isComplete={isComplete}\n usAccept={usAccept}\n usButtonText={usButtonText || intl.formatMessage(messages.usButtonText)}\n usDisabled={usDisabled}\n usHelpImage={usHelpImage}\n usLabel={usLabel}\n usPlaceholder={\n usPlaceholder ||\n intl.formatMessage(messages.usPlaceholder, { maxSize: roundFileSize(maxSize) })\n }\n />\n )}\n\n {(isSuccess || isComplete) && !isError && (\n <CompleteStep\n fileName={fileName}\n isComplete={isComplete}\n isImage={isImage}\n csButtonText={csButtonText || intl.formatMessage(messages.csButtonText)}\n csSuccessText={csSuccessText || intl.formatMessage(messages.csSuccessText)}\n uploadedImage={uploadedImage}\n onClear={(event) => this.handleOnClear(event)}\n />\n )}\n {isError && !isProcessing && (\n <UploadImageStep\n fileDropped={async (file) => {\n this.reset();\n await this.fileDropped(file);\n }}\n isComplete={!isError}\n usAccept={usAccept}\n usButtonText={usButtonRetryText || intl.formatMessage(messages.retry)}\n usDisabled={usDisabled}\n usHelpImage={null}\n usLabel={usLabel}\n usPlaceholder={\n usPlaceholder ||\n intl.formatMessage(messages.usPlaceholder, { maxSize: roundFileSize(maxSize) })\n }\n errorMessage={this.getErrorMessage(\n response != null &&\n typeof response === 'object' &&\n 'status' in response &&\n typeof response.status === 'number'\n ? response.status\n : undefined,\n )}\n errorIconLabel={errorIconLabel}\n />\n )}\n {isProcessing && (\n <ProcessingStep\n isComplete={isComplete}\n isError={isError}\n isSuccess={isSuccess}\n psButtonText={psButtonText || intl.formatMessage(messages.psButtonText)}\n psProcessingText={psProcessingText || intl.formatMessage(messages.psProcessingText)}\n psButtonDisabled={psButtonDisabled}\n onClear={(event) => this.handleOnClear(event)}\n />\n )}\n {!isProcessing && (\n <div className=\"droppable-dropping-card droppable-card\" aria-live=\"polite\">\n <div className=\"droppable-card-content\">\n <div className=\"circle circle-sm text-primary\">\n <PlusIcon size=\"16\" />\n </div>\n <Title type={Typography.TITLE_BODY} className=\"m-t-3\">\n {usDropMessage || intl.formatMessage(messages.usDropMessage)}\n </Title>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default injectIntl(Upload);\n\nconst roundFileSize = (bytes: number) => {\n const megabytes = bytes / 1000000;\n if (megabytes >= 0.1) {\n const isRound = Math.floor(megabytes) === megabytes;\n return isRound ? `${megabytes}` : megabytes.toFixed(1);\n }\n if (megabytes >= 0.01) {\n return megabytes.toFixed(2);\n }\n return megabytes.toFixed(3);\n};\n"],"names":["MAX_SIZE_DEFAULT","UploadStep","Upload","Component","defaultProps","animationDelay","maxSize","psButtonDisabled","size","usAccept","usDisabled","usLabel","dragCounter","timeouts","constructor","props","state","fileName","isDroppable","isComplete","isError","isImage","isProcessing","isSuccess","response","undefined","uploadedImage","getErrorMessage","status","csFailureText","csTooLargeMessage","csWrongTypeMessage","intl","formatMessage","messages","roundFileSize","onDragLeave","event","preventDefault","setState","onDragEnter","onDrop","reset","dataTransfer","files","fileDropped","asyncPost","file","httpOptions","fetcher","Error","fileInputName","name","data","formData","FormData","append","Object","keys","forEach","key","postData","handleUploadComplete","type","onSuccess","onFailure","window","clearTimeout","setTimeout","asyncResponse","handleOnClear","onCancel","showDataImage","dataUrl","onStart","file64","asyncFileRead","error","getFileType","includes","isTypeValid","ResponseError","Response","statusText","isSizeValid","render","usDropMessage","usButtonText","usButtonRetryText","usHelpImage","usPlaceholder","psButtonText","psProcessingText","csButtonText","csSuccessText","errorIconLabel","_jsxs","className","clsx","droppable","onDragOver","children","_jsx","UploadImageStep","CompleteStep","onClear","retry","errorMessage","ProcessingStep","PlusIcon","Title","Typography","TITLE_BODY","injectIntl","bytes","megabytes","isRound","Math","floor","toFixed"],"mappings":"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"}
|
package/build/upload/Upload.mjs
CHANGED
|
@@ -40,7 +40,7 @@ var UploadStep;
|
|
|
40
40
|
UploadStep["UPLOAD_IMAGE_STEP"] = "uploadImageStep";
|
|
41
41
|
})(UploadStep || (UploadStep = {}));
|
|
42
42
|
class Upload extends Component {
|
|
43
|
-
static defaultProps =
|
|
43
|
+
static defaultProps = {
|
|
44
44
|
animationDelay: 300,
|
|
45
45
|
maxSize: MAX_SIZE_DEFAULT,
|
|
46
46
|
psButtonDisabled: false,
|
|
@@ -48,7 +48,7 @@ class Upload extends Component {
|
|
|
48
48
|
usAccept: 'image/*',
|
|
49
49
|
usDisabled: false,
|
|
50
50
|
usLabel: ''
|
|
51
|
-
}
|
|
51
|
+
};
|
|
52
52
|
dragCounter = 0;
|
|
53
53
|
timeouts = 0;
|
|
54
54
|
constructor(props) {
|