@transferwise/components 46.47.0 → 46.48.0
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/accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/build/accordion/AccordionItem/AccordionItem.mjs.map +1 -1
- package/build/alert/Alert.js.map +1 -1
- package/build/alert/Alert.mjs.map +1 -1
- package/build/avatar/Avatar.js.map +1 -1
- package/build/avatar/Avatar.mjs.map +1 -1
- package/build/badge/Badge.js.map +1 -1
- package/build/badge/Badge.mjs.map +1 -1
- package/build/button/legacyUtils/legacyUtils.js.map +1 -1
- package/build/button/legacyUtils/legacyUtils.mjs.map +1 -1
- package/build/carousel/Carousel.js.map +1 -1
- package/build/carousel/Carousel.mjs.map +1 -1
- package/build/chips/Chip.js.map +1 -1
- package/build/chips/Chip.mjs.map +1 -1
- package/build/chips/Chips.js.map +1 -1
- package/build/chips/Chips.mjs.map +1 -1
- package/build/common/bottomSheet/BottomSheet.js.map +1 -1
- package/build/common/bottomSheet/BottomSheet.mjs.map +1 -1
- package/build/common/deviceDetection/deviceDetection.js.map +1 -1
- package/build/common/deviceDetection/deviceDetection.mjs.map +1 -1
- package/build/common/panel/Panel.js.map +1 -1
- package/build/common/panel/Panel.mjs.map +1 -1
- package/build/common/responsivePanel/ResponsivePanel.js +3 -1
- package/build/common/responsivePanel/ResponsivePanel.js.map +1 -1
- package/build/common/responsivePanel/ResponsivePanel.mjs +3 -1
- package/build/common/responsivePanel/ResponsivePanel.mjs.map +1 -1
- package/build/dateInput/DateInput.js.map +1 -1
- package/build/dateInput/DateInput.mjs.map +1 -1
- package/build/dateLookup/DateLookup.js.map +1 -1
- package/build/dateLookup/DateLookup.mjs.map +1 -1
- package/build/dateLookup/dateHeader/DateHeader.js.map +1 -1
- package/build/dateLookup/dateHeader/DateHeader.mjs.map +1 -1
- package/build/dateLookup/dateTrigger/DateTrigger.js.map +1 -1
- package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +1 -1
- package/build/decision/Decision.js.map +1 -1
- package/build/decision/Decision.mjs.map +1 -1
- package/build/display/Display.js.map +1 -1
- package/build/display/Display.mjs.map +1 -1
- package/build/emphasis/EmphasisHtmlTransformer.js.map +1 -1
- package/build/emphasis/EmphasisHtmlTransformer.mjs.map +1 -1
- package/build/i18n/en.json +2 -0
- package/build/i18n/en.json.js +2 -0
- package/build/i18n/en.json.js.map +1 -1
- package/build/i18n/en.json.mjs +2 -0
- package/build/i18n/en.json.mjs.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/index.mjs +1 -0
- package/build/index.mjs.map +1 -1
- package/build/inlineAlert/InlineAlert.js.map +1 -1
- package/build/inlineAlert/InlineAlert.mjs.map +1 -1
- package/build/inputs/InputGroup.js.map +1 -1
- package/build/inputs/InputGroup.mjs.map +1 -1
- package/build/inputs/contexts.js.map +1 -1
- package/build/inputs/contexts.mjs.map +1 -1
- package/build/link/Link.js.map +1 -1
- package/build/link/Link.mjs.map +1 -1
- package/build/loader/Loader.js.map +1 -1
- package/build/loader/Loader.mjs.map +1 -1
- package/build/logo/Logo.js.map +1 -1
- package/build/logo/Logo.mjs.map +1 -1
- package/build/main.css +44 -0
- package/build/markdown/Markdown.js.map +1 -1
- package/build/markdown/Markdown.mjs.map +1 -1
- package/build/modal/Modal.js.map +1 -1
- package/build/modal/Modal.mjs.map +1 -1
- package/build/moneyInput/MoneyInput.js.map +1 -1
- package/build/moneyInput/MoneyInput.mjs.map +1 -1
- package/build/moneyInput/currencyFormatting.js.map +1 -1
- package/build/moneyInput/currencyFormatting.mjs.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
- package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.js.map +1 -1
- package/build/phoneNumberInput/utils/groupCountriesByPrefix/groupCountriesByPrefix.mjs.map +1 -1
- package/build/popover/Popover.js.map +1 -1
- package/build/popover/Popover.mjs.map +1 -1
- package/build/processIndicator/ProcessIndicator.js.map +1 -1
- package/build/processIndicator/ProcessIndicator.mjs.map +1 -1
- package/build/progressBar/ProgressBar.js.map +1 -1
- package/build/progressBar/ProgressBar.mjs.map +1 -1
- package/build/promoCard/PromoCard.js.map +1 -1
- package/build/promoCard/PromoCard.mjs.map +1 -1
- package/build/provider/Provider.js.map +1 -1
- package/build/provider/Provider.mjs.map +1 -1
- package/build/select/Select.js.map +1 -1
- package/build/select/Select.mjs.map +1 -1
- package/build/select/option/Option.js.map +1 -1
- package/build/select/option/Option.mjs.map +1 -1
- package/build/select/searchBox/SearchBox.js.map +1 -1
- package/build/select/searchBox/SearchBox.mjs.map +1 -1
- package/build/selectOption/SelectOption.js +115 -0
- package/build/selectOption/SelectOption.js.map +1 -0
- package/build/selectOption/SelectOption.messages.js +15 -0
- package/build/selectOption/SelectOption.messages.js.map +1 -0
- package/build/selectOption/SelectOption.messages.mjs +13 -0
- package/build/selectOption/SelectOption.messages.mjs.map +1 -0
- package/build/selectOption/SelectOption.mjs +109 -0
- package/build/selectOption/SelectOption.mjs.map +1 -0
- package/build/slidingPanel/SlidingPanel.js.map +1 -1
- package/build/slidingPanel/SlidingPanel.mjs.map +1 -1
- package/build/statusIcon/StatusIcon.js.map +1 -1
- package/build/statusIcon/StatusIcon.mjs.map +1 -1
- package/build/stepper/Stepper.js.map +1 -1
- package/build/stepper/Stepper.mjs.map +1 -1
- package/build/stepper/deviceDetection.js.map +1 -1
- package/build/stepper/deviceDetection.mjs.map +1 -1
- package/build/styles/main.css +44 -0
- package/build/styles/selectOption/SelectOption.css +44 -0
- package/build/tabs/Tabs.js.map +1 -1
- package/build/tabs/Tabs.mjs.map +1 -1
- package/build/title/Title.js.map +1 -1
- package/build/title/Title.mjs.map +1 -1
- package/build/tooltip/Tooltip.js.map +1 -1
- package/build/tooltip/Tooltip.mjs.map +1 -1
- package/build/typeahead/Typeahead.js.map +1 -1
- package/build/typeahead/Typeahead.mjs.map +1 -1
- package/build/typeahead/typeaheadInput/TypeaheadInput.js.map +1 -1
- package/build/typeahead/typeaheadInput/TypeaheadInput.mjs.map +1 -1
- package/build/types/common/responsivePanel/ResponsivePanel.d.ts.map +1 -1
- package/build/types/index.d.ts +2 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/selectOption/SelectOption.d.ts +21 -0
- package/build/types/selectOption/SelectOption.d.ts.map +1 -0
- package/build/types/selectOption/SelectOption.messages.d.ts +12 -0
- package/build/types/selectOption/SelectOption.messages.d.ts.map +1 -0
- package/build/types/selectOption/index.d.ts +3 -0
- package/build/types/selectOption/index.d.ts.map +1 -0
- package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +1 -1
- package/build/uploadInput/UploadInput.js.map +1 -1
- package/build/uploadInput/UploadInput.mjs.map +1 -1
- package/build/uploadInput/uploadButton/UploadButton.js.map +1 -1
- package/build/uploadInput/uploadButton/UploadButton.mjs.map +1 -1
- package/build/utilities/cssValueWithUnit.js.map +1 -1
- package/build/utilities/cssValueWithUnit.mjs.map +1 -1
- package/package.json +32 -33
- package/src/common/responsivePanel/ResponsivePanel.tsx +2 -0
- package/src/i18n/en.json +2 -0
- package/src/index.ts +2 -0
- package/src/main.css +44 -0
- package/src/main.less +1 -0
- package/src/selectOption/SelectOption.css +44 -0
- package/src/selectOption/SelectOption.less +40 -0
- package/src/selectOption/SelectOption.messages.ts +12 -0
- package/src/selectOption/SelectOption.spec.tsx +83 -0
- package/src/selectOption/SelectOption.story.tsx +278 -0
- package/src/selectOption/SelectOption.tsx +151 -0
- package/src/selectOption/index.ts +2 -0
- package/src/ssr.spec.js +1 -0
- package/src/test-utils/Parameters.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../src/select/Select.js"],"sourcesContent":["import { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { useState, useEffect, useRef, useMemo, useId } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Button from '../button';\nimport Chevron from '../chevron';\nimport { Position } from '../common';\nimport BottomSheet from '../common/bottomSheet';\nimport { stopPropagation } from '../common/domHelpers';\nimport { useLayout } from '../common/hooks';\nimport Panel from '../common/panel';\nimport Drawer from '../drawer';\nimport { useInputAttributes } from '../inputs/contexts';\n\nimport messages from './Select.messages';\nimport Option from './option';\nimport SearchBox from './searchBox';\n\nconst DEFAULT_SEARCH_VALUE = '';\nconst DEFAULT_OPTIONS_PAGE_SIZE = 1000;\n\nconst includesString = (string1, string2) => string1.toLowerCase().includes(string2.toLowerCase());\n\nfunction defaultFilterFunction(option, searchValue) {\n if (isPlaceholderOption(option)) {\n return true;\n }\n const { label, note, secondary, currency, searchStrings } = option;\n return (\n (!!label && includesString(label, searchValue)) ||\n (!!note && includesString(note, searchValue)) ||\n (!!secondary && includesString(secondary, searchValue)) ||\n (!!currency && includesString(currency, searchValue)) ||\n (!!searchStrings && searchStrings.some((string) => includesString(string, searchValue)))\n );\n}\n\nfunction isActionableOption(option) {\n return !option.header && !option.separator && !option.disabled;\n}\n\nfunction isHeaderOption(option) {\n return option != null && 'header' in option;\n}\n\nfunction isSeparatorOption(option) {\n return option != null && 'separator' in option;\n}\n\nfunction clamp(from, to, value) {\n return Math.max(Math.min(to, value), from);\n}\n\n/**\n * No option or placeholder option is selected\n */\nconst DEFAULT_SELECTED_OPTION = null;\n\nfunction isPlaceholderOption(option) {\n return option === DEFAULT_SELECTED_OPTION || 'placeholder' in option;\n}\n\nfunction isSearchableOption(option) {\n return !isHeaderOption(option) && !isSeparatorOption(option) && !isPlaceholderOption(option);\n}\n\nconst getUniqueIdForOption = (parentId = '', option) => {\n if (option == null) {\n return undefined;\n }\n\n const uniqueOptionId = option.value || (option.label?.replace(/\\s/g, '') ?? '');\n\n return `option-${parentId}-${uniqueOptionId}`;\n};\n\n/**\n * @deprecated Use `SelectInput` instead (https://neptune.wise.design/blog/2023-11-28-adopting-our-new-selectinput)\n */\nexport default function Select({\n placeholder,\n id,\n required,\n disabled,\n inverse,\n dropdownWidth,\n size,\n block,\n selected,\n search,\n onChange,\n onFocus,\n onBlur,\n options: defaultOptions,\n onSearchChange,\n searchValue: initSearchValue,\n searchPlaceholder,\n // eslint-disable-next-line unicorn/prevent-abbreviations\n classNames: classNamesProp,\n dropdownUp,\n dropdownProps,\n buttonProps,\n}) {\n const inputAttributes = useInputAttributes();\n\n const { formatMessage } = useIntl();\n const { isModern } = useTheme();\n const s = (className) => classNamesProp[className] || className;\n const [open, setOpen] = useState(false);\n const [searchValue, setSearchValue] = useState(DEFAULT_SEARCH_VALUE);\n const [keyboardFocusedOptionIndex, setKeyboardFocusedOptionIndex] = useState(null);\n const keyboardFocusedReference = useRef();\n const previousKeyboardFocusedOptionIndex = useRef();\n const [numberOfOptionsShown, setNumberOfOptionsShown] = useState(DEFAULT_OPTIONS_PAGE_SIZE);\n const searchBoxReference = useRef(null);\n const selectReference = useRef(null);\n const dropdownButtonReference = useRef(null);\n const optionsListReference = useRef(null);\n const isSearchEnabled = !!onSearchChange || !!search;\n const isDropdownAutoWidth = dropdownWidth == null;\n\n const options = useMemo(() => {\n if (!search || !searchValue) {\n return defaultOptions;\n }\n\n return defaultOptions.filter(isSearchableOption).filter((option) => {\n if (typeof search === 'function') {\n return search(option, searchValue);\n }\n return defaultFilterFunction(option, searchValue);\n });\n }, [defaultOptions, search, searchValue]);\n\n const selectableOptions = useMemo(() => options.filter(isActionableOption), [options]);\n const focusedOption = selectableOptions[keyboardFocusedOptionIndex];\n\n const fallbackButtonId = useId();\n const computedId = id || inputAttributes.id || fallbackButtonId;\n const listboxId = `${computedId}-listbox`;\n const searchBoxId = `${computedId}-searchbox`;\n\n const { isMobile } = useLayout();\n\n useEffect(() => {\n let cancelled;\n\n if (keyboardFocusedOptionIndex >= 0) {\n requestAnimationFrame(() => {\n if (!cancelled) {\n if (isSearchEnabled) {\n keyboardFocusedReference.current?.scrollIntoView?.({ block: 'center' });\n } else {\n keyboardFocusedReference.current?.focus();\n }\n }\n });\n\n return () => {\n cancelled = true;\n };\n }\n }, [keyboardFocusedOptionIndex, isSearchEnabled]);\n\n const handleOnClick = () => {\n setOpen(true);\n };\n\n const handleTouchStart = (event) => {\n if (event.currentTarget === event.target && open) {\n handleCloseOptions();\n }\n };\n\n const handleOnFocus = (event) => {\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleOnBlur = (event) => {\n const { nativeEvent } = event;\n if (nativeEvent) {\n const elementReceivingFocus = nativeEvent.relatedTarget;\n const select = event.currentTarget;\n if (select && elementReceivingFocus && select.contains(elementReceivingFocus)) {\n return;\n }\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleSearchChange = (event) => {\n setNumberOfOptionsShown(DEFAULT_OPTIONS_PAGE_SIZE);\n setSearchValue(event.target.value);\n if (onSearchChange) {\n onSearchChange(event.target.value);\n }\n };\n\n const handleKeyDown = (event) => {\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n if (open) {\n moveFocusWithDifference(event.key === 'ArrowUp' ? -1 : 1);\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n break;\n case ' ':\n if (event.target !== searchBoxReference.current) {\n if (open) {\n selectKeyboardFocusedOption();\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n }\n break;\n case 'Enter':\n if (open) {\n selectKeyboardFocusedOption();\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n break;\n case 'Escape':\n handleCloseOptions();\n stopPropagation(event);\n break;\n case 'Tab':\n if (open) {\n selectKeyboardFocusedOption();\n }\n break;\n default:\n break;\n }\n };\n\n function selectKeyboardFocusedOption() {\n if (keyboardFocusedOptionIndex != null && selectableOptions.length > 0) {\n selectOption(selectableOptions[keyboardFocusedOptionIndex]);\n }\n }\n\n function moveFocusWithDifference(difference) {\n const selectedOptionIndex = selectableOptions.reduce((optionIndex, current, index) => {\n if (optionIndex != null) {\n return optionIndex;\n }\n if (isOptionSelected(selected, current)) {\n return index;\n }\n return null;\n }, null);\n const previousFocusedIndex = previousKeyboardFocusedOptionIndex.current ?? -1;\n let indexToStartMovingFrom = previousFocusedIndex;\n if (previousFocusedIndex === -1) {\n if (selectedOptionIndex == null) {\n setKeyboardFocusedOptionIndex(0);\n } else {\n indexToStartMovingFrom = selectedOptionIndex;\n }\n }\n\n const unClampedNewIndex = indexToStartMovingFrom + difference;\n const newIndex = clamp(0, selectableOptions.length - 1, unClampedNewIndex);\n\n setKeyboardFocusedOptionIndex(newIndex);\n }\n\n useEffect(() => {\n if (open) {\n if (!isMobile || searchValue) {\n if (isSearchEnabled && searchBoxReference.current) {\n searchBoxReference.current.focus();\n }\n if (\n !isSearchEnabled &&\n optionsListReference.current &&\n (previousKeyboardFocusedOptionIndex.current == null ||\n Number.isNaN(previousKeyboardFocusedOptionIndex.current))\n ) {\n optionsListReference.current.focus();\n }\n }\n\n previousKeyboardFocusedOptionIndex.current = keyboardFocusedOptionIndex;\n } else {\n previousKeyboardFocusedOptionIndex.current = null;\n }\n }, [open, searchValue, isSearchEnabled, isMobile, keyboardFocusedOptionIndex]);\n\n const handleCloseOptions = () => {\n setOpen(false);\n setKeyboardFocusedOptionIndex(null);\n if (dropdownButtonReference.current) {\n dropdownButtonReference.current.focus();\n }\n };\n\n function createSelectHandlerForOption(option) {\n return (event) => {\n stopPropagation(event);\n selectOption(option);\n };\n }\n\n function selectOption(option) {\n onChange(isPlaceholderOption(option) ? DEFAULT_SELECTED_OPTION : option);\n handleCloseOptions();\n }\n\n function renderOptionsList({ className } = {}) {\n const dropdownClass = classNames(\n s('np-dropdown-menu'),\n {\n [s('np-dropdown-menu-desktop')]: !isMobile,\n [s(`np-dropdown-menu-${dropdownWidth}`)]: !isMobile && !isDropdownAutoWidth,\n },\n s(className),\n );\n\n const showPlaceholder = !required && !isSearchEnabled && Boolean(placeholder);\n return (\n <ul\n ref={optionsListReference}\n id={listboxId}\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-activedescendant={getUniqueIdForOption(id, selected)}\n tabIndex=\"-1\"\n className={dropdownClass}\n {...dropdownProps}\n >\n {showPlaceholder && <PlaceHolderOption />}\n {isSearchEnabled && (\n <SearchBox\n ref={searchBoxReference}\n id={searchBoxId}\n classNames={classNamesProp}\n value={initSearchValue || searchValue}\n placeholder={searchPlaceholder || formatMessage(messages.searchPlaceholder)}\n focusedOptionId={getUniqueIdForOption(id, focusedOption)}\n onChange={handleSearchChange}\n onClick={stopPropagation}\n />\n )}\n {options.slice(0, numberOfOptionsShown).map(renderOption)}\n {numberOfOptionsShown < options.length && <ShowMoreOption />}\n </ul>\n );\n }\n\n function ShowMoreOption() {\n function handleOnClick(event) {\n stopPropagation(event);\n setNumberOfOptionsShown(numberOfOptionsShown + DEFAULT_OPTIONS_PAGE_SIZE);\n }\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n className={classNames(s('clickable'), s('border-bottom'), s('show-more'))}\n onClick={handleOnClick}\n onKeyPress={handleOnClick}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a>...</a>\n </li>\n );\n }\n\n function PlaceHolderOption() {\n const placeholderOption = { placeholder };\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n className={classNames(s('clickable'), s('border-bottom'))}\n onClick={createSelectHandlerForOption(placeholderOption)}\n onKeyPress={createSelectHandlerForOption(placeholderOption)}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a>{placeholder}</a>\n </li>\n );\n }\n\n // eslint-disable-next-line react/prop-types\n function SeparatorOption() {\n return <li className={s('np-separator')} aria-hidden />;\n }\n\n // eslint-disable-next-line react/prop-types\n function HeaderOption({ children }) {\n return (\n <li // eslint-disable-line jsx-a11y/no-noninteractive-element-interactions\n className={classNames(s('np-dropdown-header'), s('np-text-title-group'))}\n onClick={stopPropagation}\n onKeyPress={stopPropagation}\n >\n {children}\n </li>\n );\n }\n\n function isOptionSelected(selected, option) {\n return selected?.value === option?.value;\n }\n\n const renderOption = (option, index) => {\n const separatorOption = option;\n if (isSeparatorOption(separatorOption) && separatorOption?.separator) {\n return <SeparatorOption key={index} />;\n }\n const headerOption = option;\n if (isHeaderOption(headerOption) && headerOption.header) {\n return <HeaderOption key={index}>{headerOption.header}</HeaderOption>;\n }\n\n const isActive = isOptionSelected(selected, option);\n const selectOption = option;\n const isFocusedWithKeyboard =\n !selectOption.disabled &&\n keyboardFocusedOptionIndex === getIndexWithoutHeadersForIndexWithHeaders(index);\n\n const className = classNames(\n s('np-dropdown-item'),\n selectOption.disabled ? [s('disabled')] : s('clickable'),\n {\n [s('active')]: isActive,\n [s('np-dropdown-item--focused')]: isFocusedWithKeyboard,\n },\n );\n\n const handleOnClick = selectOption.disabled\n ? stopPropagation\n : createSelectHandlerForOption(selectOption);\n\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n ref={isFocusedWithKeyboard ? keyboardFocusedReference : undefined}\n key={index}\n id={getUniqueIdForOption(id, option)}\n aria-selected={isActive}\n aria-disabled={option.disabled}\n role=\"option\"\n tabIndex=\"-1\"\n className={className}\n onClick={handleOnClick}\n onKeyPress={handleOnClick}\n >\n {/* @ts-expect-error options needs DOM refactoring */}\n <a disabled={selectOption.disabled}>\n <Option {...selectOption} classNames={classNamesProp} />\n </a>\n </li>\n );\n };\n\n function getIndexWithoutHeadersForIndexWithHeaders(index) {\n return options.reduce((sum, option, currentIndex) => {\n if (currentIndex < index && isActionableOption(option)) {\n return sum + 1;\n }\n return sum;\n }, 0);\n }\n\n const hasActiveOptions = !!defaultOptions.length;\n if (open && (initSearchValue || searchValue)) {\n if (hasActiveOptions && keyboardFocusedOptionIndex == null) {\n setKeyboardFocusedOptionIndex(0);\n }\n if (!hasActiveOptions && keyboardFocusedOptionIndex != null) {\n setKeyboardFocusedOptionIndex(null);\n }\n }\n\n return (\n <div // eslint-disable-line jsx-a11y/no-static-element-interactions\n ref={selectReference}\n className={classNames(s('np-select'), block ? s('btn-block') : null, s('btn-group'))}\n onKeyDown={handleKeyDown}\n onTouchMove={handleTouchStart}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n >\n <Button\n ref={dropdownButtonReference}\n {...inputAttributes}\n id={computedId}\n block={block}\n size={size}\n htmlType=\"button\"\n className={classNames(\n s('np-dropdown-toggle'),\n s('np-text-body-large'),\n inverse ? s('np-dropdown-toggle-navy') : null,\n )}\n // reset Button's styles\n type={null}\n priority={null}\n disabled={disabled}\n aria-controls={listboxId}\n aria-expanded={open}\n onClick={handleOnClick}\n {...buttonProps}\n >\n {selected ? (\n <Option {...selected} classNames={classNamesProp} selected />\n ) : (\n <span className={s('form-control-placeholder')}>{placeholder}</span>\n )}\n <Chevron\n // disabled={disabled}\n className={classNames(\n s('tw-icon'),\n s('tw-chevron-up-icon'),\n s('tw-chevron'),\n s('bottom'),\n s('np-select-chevron'),\n )}\n />\n </Button>\n {isMobile ? (\n isSearchEnabled ? (\n <Drawer\n open={open}\n headerTitle={searchPlaceholder || formatMessage(messages.searchPlaceholder)}\n onClose={handleCloseOptions}\n >\n {renderOptionsList()}\n </Drawer>\n ) : (\n <BottomSheet open={open} onClose={handleCloseOptions}>\n {renderOptionsList({ className: isModern ? '' : 'p-a-1' })}\n </BottomSheet>\n )\n ) : (\n <Panel\n open={open}\n flip={false}\n altAxis\n anchorRef={selectReference}\n anchorWidth={isDropdownAutoWidth}\n position={dropdownUp ? Position.TOP : Position.BOTTOM}\n onClose={handleCloseOptions}\n >\n {renderOptionsList({ className: 'p-a-1' })}\n </Panel>\n )}\n </div>\n );\n}\n\nSelect.propTypes = {\n placeholder: PropTypes.string,\n id: PropTypes.string,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n inverse: PropTypes.bool,\n dropdownRight: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n dropdownWidth: PropTypes.oneOf(['sm', 'md', 'lg']),\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n block: PropTypes.bool,\n selected: PropTypes.shape({\n value: PropTypes.any.isRequired,\n label: PropTypes.node,\n icon: PropTypes.node,\n currency: PropTypes.string,\n note: PropTypes.node,\n secondary: PropTypes.node,\n }),\n /**\n * Search toggle\n * if `true` default search functionality being enabled (not case sensitive search in option labels & currency props)\n * if `function` you can define your own search function to implement custom search experience. This search function used while filtering the options array. The custom search function takes two parameters. First is the option the second is the keyword.\n */\n search: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.any,\n label: PropTypes.node,\n header: PropTypes.node,\n icon: PropTypes.node,\n currency: PropTypes.string,\n note: PropTypes.node,\n secondary: PropTypes.node,\n separator: PropTypes.bool,\n disabled: PropTypes.bool,\n searchStrings: PropTypes.arrayOf(PropTypes.string),\n }),\n ).isRequired,\n searchValue: PropTypes.string,\n searchPlaceholder: PropTypes.string,\n classNames: PropTypes.objectOf(PropTypes.string),\n dropdownUp: PropTypes.bool,\n buttonProps: PropTypes.object,\n dropdownProps: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n /**\n * To have full control of your search value and response use `onSearchChange` function combined with `searchValue` and custom filtering on the options array.\n * DO NOT USE TOGETHER WITH `search` PROPERTY\n */\n onSearchChange: PropTypes.func,\n};\n\nSelect.defaultProps = {\n id: undefined,\n placeholder: undefined,\n size: 'md',\n dropdownRight: null,\n dropdownWidth: null,\n inverse: false,\n required: false,\n disabled: false,\n block: true,\n selected: null,\n onFocus: null,\n onBlur: null,\n onSearchChange: undefined,\n search: false,\n searchValue: '',\n searchPlaceholder: undefined,\n classNames: {},\n dropdownUp: false,\n buttonProps: {},\n dropdownProps: {},\n};\n"],"names":["DEFAULT_SEARCH_VALUE","DEFAULT_OPTIONS_PAGE_SIZE","includesString","string1","string2","toLowerCase","includes","defaultFilterFunction","option","searchValue","isPlaceholderOption","label","note","secondary","currency","searchStrings","some","string","isActionableOption","header","separator","disabled","isHeaderOption","isSeparatorOption","clamp","from","to","value","Math","max","min","DEFAULT_SELECTED_OPTION","isSearchableOption","getUniqueIdForOption","parentId","undefined","uniqueOptionId","replace","Select","placeholder","id","required","inverse","dropdownWidth","size","block","selected","search","onChange","onFocus","onBlur","options","defaultOptions","onSearchChange","initSearchValue","searchPlaceholder","classNames","classNamesProp","dropdownUp","dropdownProps","buttonProps","inputAttributes","useInputAttributes","formatMessage","useIntl","isModern","useTheme","s","className","open","setOpen","useState","setSearchValue","keyboardFocusedOptionIndex","setKeyboardFocusedOptionIndex","keyboardFocusedReference","useRef","previousKeyboardFocusedOptionIndex","numberOfOptionsShown","setNumberOfOptionsShown","searchBoxReference","selectReference","dropdownButtonReference","optionsListReference","isSearchEnabled","isDropdownAutoWidth","useMemo","filter","selectableOptions","focusedOption","fallbackButtonId","useId","computedId","listboxId","searchBoxId","isMobile","useLayout","useEffect","cancelled","requestAnimationFrame","current","scrollIntoView","focus","handleOnClick","handleTouchStart","event","currentTarget","target","handleCloseOptions","handleOnFocus","handleOnBlur","nativeEvent","elementReceivingFocus","relatedTarget","select","contains","handleSearchChange","handleKeyDown","key","moveFocusWithDifference","stopPropagation","selectKeyboardFocusedOption","length","selectOption","difference","selectedOptionIndex","reduce","optionIndex","index","isOptionSelected","previousFocusedIndex","indexToStartMovingFrom","unClampedNewIndex","newIndex","Number","isNaN","createSelectHandlerForOption","renderOptionsList","dropdownClass","showPlaceholder","Boolean","_jsxs","ref","role","tabIndex","children","_jsx","PlaceHolderOption","SearchBox","messages","focusedOptionId","onClick","slice","map","renderOption","ShowMoreOption","onKeyPress","placeholderOption","SeparatorOption","HeaderOption","separatorOption","headerOption","isActive","isFocusedWithKeyboard","getIndexWithoutHeadersForIndexWithHeaders","Option","sum","currentIndex","hasActiveOptions","onKeyDown","onTouchMove","Button","htmlType","type","priority","Chevron","Drawer","headerTitle","onClose","BottomSheet","Panel","flip","altAxis","anchorRef","anchorWidth","position","Position","TOP","BOTTOM","propTypes","PropTypes","bool","dropdownRight","oneOf","shape","any","isRequired","node","icon","oneOfType","func","arrayOf","objectOf","object","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../src/select/Select.js"],"sourcesContent":["import { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { useState, useEffect, useRef, useMemo, useId } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Button from '../button';\nimport Chevron from '../chevron';\nimport { Position } from '../common';\nimport BottomSheet from '../common/bottomSheet';\nimport { stopPropagation } from '../common/domHelpers';\nimport { useLayout } from '../common/hooks';\nimport Panel from '../common/panel';\nimport Drawer from '../drawer';\nimport { useInputAttributes } from '../inputs/contexts';\n\nimport messages from './Select.messages';\nimport Option from './option';\nimport SearchBox from './searchBox';\n\nconst DEFAULT_SEARCH_VALUE = '';\nconst DEFAULT_OPTIONS_PAGE_SIZE = 1000;\n\nconst includesString = (string1, string2) => string1.toLowerCase().includes(string2.toLowerCase());\n\nfunction defaultFilterFunction(option, searchValue) {\n if (isPlaceholderOption(option)) {\n return true;\n }\n const { label, note, secondary, currency, searchStrings } = option;\n return (\n (!!label && includesString(label, searchValue)) ||\n (!!note && includesString(note, searchValue)) ||\n (!!secondary && includesString(secondary, searchValue)) ||\n (!!currency && includesString(currency, searchValue)) ||\n (!!searchStrings && searchStrings.some((string) => includesString(string, searchValue)))\n );\n}\n\nfunction isActionableOption(option) {\n return !option.header && !option.separator && !option.disabled;\n}\n\nfunction isHeaderOption(option) {\n return option != null && 'header' in option;\n}\n\nfunction isSeparatorOption(option) {\n return option != null && 'separator' in option;\n}\n\nfunction clamp(from, to, value) {\n return Math.max(Math.min(to, value), from);\n}\n\n/**\n * No option or placeholder option is selected\n */\nconst DEFAULT_SELECTED_OPTION = null;\n\nfunction isPlaceholderOption(option) {\n return option === DEFAULT_SELECTED_OPTION || 'placeholder' in option;\n}\n\nfunction isSearchableOption(option) {\n return !isHeaderOption(option) && !isSeparatorOption(option) && !isPlaceholderOption(option);\n}\n\nconst getUniqueIdForOption = (parentId = '', option) => {\n if (option == null) {\n return undefined;\n }\n\n const uniqueOptionId = option.value || (option.label?.replace(/\\s/g, '') ?? '');\n\n return `option-${parentId}-${uniqueOptionId}`;\n};\n\n/**\n * @deprecated Use `SelectInput` instead (https://neptune.wise.design/blog/2023-11-28-adopting-our-new-selectinput)\n */\nexport default function Select({\n placeholder,\n id,\n required,\n disabled,\n inverse,\n dropdownWidth,\n size,\n block,\n selected,\n search,\n onChange,\n onFocus,\n onBlur,\n options: defaultOptions,\n onSearchChange,\n searchValue: initSearchValue,\n searchPlaceholder,\n // eslint-disable-next-line unicorn/prevent-abbreviations\n classNames: classNamesProp,\n dropdownUp,\n dropdownProps,\n buttonProps,\n}) {\n const inputAttributes = useInputAttributes();\n\n const { formatMessage } = useIntl();\n const { isModern } = useTheme();\n const s = (className) => classNamesProp[className] || className;\n const [open, setOpen] = useState(false);\n const [searchValue, setSearchValue] = useState(DEFAULT_SEARCH_VALUE);\n const [keyboardFocusedOptionIndex, setKeyboardFocusedOptionIndex] = useState(null);\n const keyboardFocusedReference = useRef();\n const previousKeyboardFocusedOptionIndex = useRef();\n const [numberOfOptionsShown, setNumberOfOptionsShown] = useState(DEFAULT_OPTIONS_PAGE_SIZE);\n const searchBoxReference = useRef(null);\n const selectReference = useRef(null);\n const dropdownButtonReference = useRef(null);\n const optionsListReference = useRef(null);\n const isSearchEnabled = !!onSearchChange || !!search;\n const isDropdownAutoWidth = dropdownWidth == null;\n\n const options = useMemo(() => {\n if (!search || !searchValue) {\n return defaultOptions;\n }\n\n return defaultOptions.filter(isSearchableOption).filter((option) => {\n if (typeof search === 'function') {\n return search(option, searchValue);\n }\n return defaultFilterFunction(option, searchValue);\n });\n }, [defaultOptions, search, searchValue]);\n\n const selectableOptions = useMemo(() => options.filter(isActionableOption), [options]);\n const focusedOption = selectableOptions[keyboardFocusedOptionIndex];\n\n const fallbackButtonId = useId();\n const computedId = id || inputAttributes.id || fallbackButtonId;\n const listboxId = `${computedId}-listbox`;\n const searchBoxId = `${computedId}-searchbox`;\n\n const { isMobile } = useLayout();\n\n useEffect(() => {\n let cancelled;\n\n if (keyboardFocusedOptionIndex >= 0) {\n requestAnimationFrame(() => {\n if (!cancelled) {\n if (isSearchEnabled) {\n keyboardFocusedReference.current?.scrollIntoView?.({ block: 'center' });\n } else {\n keyboardFocusedReference.current?.focus();\n }\n }\n });\n\n return () => {\n cancelled = true;\n };\n }\n }, [keyboardFocusedOptionIndex, isSearchEnabled]);\n\n const handleOnClick = () => {\n setOpen(true);\n };\n\n const handleTouchStart = (event) => {\n if (event.currentTarget === event.target && open) {\n handleCloseOptions();\n }\n };\n\n const handleOnFocus = (event) => {\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleOnBlur = (event) => {\n const { nativeEvent } = event;\n if (nativeEvent) {\n const elementReceivingFocus = nativeEvent.relatedTarget;\n const select = event.currentTarget;\n if (select && elementReceivingFocus && select.contains(elementReceivingFocus)) {\n return;\n }\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleSearchChange = (event) => {\n setNumberOfOptionsShown(DEFAULT_OPTIONS_PAGE_SIZE);\n setSearchValue(event.target.value);\n if (onSearchChange) {\n onSearchChange(event.target.value);\n }\n };\n\n const handleKeyDown = (event) => {\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n if (open) {\n moveFocusWithDifference(event.key === 'ArrowUp' ? -1 : 1);\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n break;\n case ' ':\n if (event.target !== searchBoxReference.current) {\n if (open) {\n selectKeyboardFocusedOption();\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n }\n break;\n case 'Enter':\n if (open) {\n selectKeyboardFocusedOption();\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n break;\n case 'Escape':\n handleCloseOptions();\n stopPropagation(event);\n break;\n case 'Tab':\n if (open) {\n selectKeyboardFocusedOption();\n }\n break;\n default:\n break;\n }\n };\n\n function selectKeyboardFocusedOption() {\n if (keyboardFocusedOptionIndex != null && selectableOptions.length > 0) {\n selectOption(selectableOptions[keyboardFocusedOptionIndex]);\n }\n }\n\n function moveFocusWithDifference(difference) {\n const selectedOptionIndex = selectableOptions.reduce((optionIndex, current, index) => {\n if (optionIndex != null) {\n return optionIndex;\n }\n if (isOptionSelected(selected, current)) {\n return index;\n }\n return null;\n }, null);\n const previousFocusedIndex = previousKeyboardFocusedOptionIndex.current ?? -1;\n let indexToStartMovingFrom = previousFocusedIndex;\n if (previousFocusedIndex === -1) {\n if (selectedOptionIndex == null) {\n setKeyboardFocusedOptionIndex(0);\n } else {\n indexToStartMovingFrom = selectedOptionIndex;\n }\n }\n\n const unClampedNewIndex = indexToStartMovingFrom + difference;\n const newIndex = clamp(0, selectableOptions.length - 1, unClampedNewIndex);\n\n setKeyboardFocusedOptionIndex(newIndex);\n }\n\n useEffect(() => {\n if (open) {\n if (!isMobile || searchValue) {\n if (isSearchEnabled && searchBoxReference.current) {\n searchBoxReference.current.focus();\n }\n if (\n !isSearchEnabled &&\n optionsListReference.current &&\n (previousKeyboardFocusedOptionIndex.current == null ||\n Number.isNaN(previousKeyboardFocusedOptionIndex.current))\n ) {\n optionsListReference.current.focus();\n }\n }\n\n previousKeyboardFocusedOptionIndex.current = keyboardFocusedOptionIndex;\n } else {\n previousKeyboardFocusedOptionIndex.current = null;\n }\n }, [open, searchValue, isSearchEnabled, isMobile, keyboardFocusedOptionIndex]);\n\n const handleCloseOptions = () => {\n setOpen(false);\n setKeyboardFocusedOptionIndex(null);\n if (dropdownButtonReference.current) {\n dropdownButtonReference.current.focus();\n }\n };\n\n function createSelectHandlerForOption(option) {\n return (event) => {\n stopPropagation(event);\n selectOption(option);\n };\n }\n\n function selectOption(option) {\n onChange(isPlaceholderOption(option) ? DEFAULT_SELECTED_OPTION : option);\n handleCloseOptions();\n }\n\n function renderOptionsList({ className } = {}) {\n const dropdownClass = classNames(\n s('np-dropdown-menu'),\n {\n [s('np-dropdown-menu-desktop')]: !isMobile,\n [s(`np-dropdown-menu-${dropdownWidth}`)]: !isMobile && !isDropdownAutoWidth,\n },\n s(className),\n );\n\n const showPlaceholder = !required && !isSearchEnabled && Boolean(placeholder);\n return (\n <ul\n ref={optionsListReference}\n id={listboxId}\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-activedescendant={getUniqueIdForOption(id, selected)}\n tabIndex=\"-1\"\n className={dropdownClass}\n {...dropdownProps}\n >\n {showPlaceholder && <PlaceHolderOption />}\n {isSearchEnabled && (\n <SearchBox\n ref={searchBoxReference}\n id={searchBoxId}\n classNames={classNamesProp}\n value={initSearchValue || searchValue}\n placeholder={searchPlaceholder || formatMessage(messages.searchPlaceholder)}\n focusedOptionId={getUniqueIdForOption(id, focusedOption)}\n onChange={handleSearchChange}\n onClick={stopPropagation}\n />\n )}\n {options.slice(0, numberOfOptionsShown).map(renderOption)}\n {numberOfOptionsShown < options.length && <ShowMoreOption />}\n </ul>\n );\n }\n\n function ShowMoreOption() {\n function handleOnClick(event) {\n stopPropagation(event);\n setNumberOfOptionsShown(numberOfOptionsShown + DEFAULT_OPTIONS_PAGE_SIZE);\n }\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n className={classNames(s('clickable'), s('border-bottom'), s('show-more'))}\n onClick={handleOnClick}\n onKeyPress={handleOnClick}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a>...</a>\n </li>\n );\n }\n\n function PlaceHolderOption() {\n const placeholderOption = { placeholder };\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n className={classNames(s('clickable'), s('border-bottom'))}\n onClick={createSelectHandlerForOption(placeholderOption)}\n onKeyPress={createSelectHandlerForOption(placeholderOption)}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a>{placeholder}</a>\n </li>\n );\n }\n\n // eslint-disable-next-line react/prop-types\n function SeparatorOption() {\n return <li className={s('np-separator')} aria-hidden />;\n }\n\n // eslint-disable-next-line react/prop-types\n function HeaderOption({ children }) {\n return (\n <li // eslint-disable-line jsx-a11y/no-noninteractive-element-interactions\n className={classNames(s('np-dropdown-header'), s('np-text-title-group'))}\n onClick={stopPropagation}\n onKeyPress={stopPropagation}\n >\n {children}\n </li>\n );\n }\n\n function isOptionSelected(selected, option) {\n return selected?.value === option?.value;\n }\n\n const renderOption = (option, index) => {\n const separatorOption = option;\n if (isSeparatorOption(separatorOption) && separatorOption?.separator) {\n return <SeparatorOption key={index} />;\n }\n const headerOption = option;\n if (isHeaderOption(headerOption) && headerOption.header) {\n return <HeaderOption key={index}>{headerOption.header}</HeaderOption>;\n }\n\n const isActive = isOptionSelected(selected, option);\n const selectOption = option;\n const isFocusedWithKeyboard =\n !selectOption.disabled &&\n keyboardFocusedOptionIndex === getIndexWithoutHeadersForIndexWithHeaders(index);\n\n const className = classNames(\n s('np-dropdown-item'),\n selectOption.disabled ? [s('disabled')] : s('clickable'),\n {\n [s('active')]: isActive,\n [s('np-dropdown-item--focused')]: isFocusedWithKeyboard,\n },\n );\n\n const handleOnClick = selectOption.disabled\n ? stopPropagation\n : createSelectHandlerForOption(selectOption);\n\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n ref={isFocusedWithKeyboard ? keyboardFocusedReference : undefined}\n key={index}\n id={getUniqueIdForOption(id, option)}\n aria-selected={isActive}\n aria-disabled={option.disabled}\n role=\"option\"\n tabIndex=\"-1\"\n className={className}\n onClick={handleOnClick}\n onKeyPress={handleOnClick}\n >\n {/* @ts-expect-error options needs DOM refactoring */}\n <a disabled={selectOption.disabled}>\n <Option {...selectOption} classNames={classNamesProp} />\n </a>\n </li>\n );\n };\n\n function getIndexWithoutHeadersForIndexWithHeaders(index) {\n return options.reduce((sum, option, currentIndex) => {\n if (currentIndex < index && isActionableOption(option)) {\n return sum + 1;\n }\n return sum;\n }, 0);\n }\n\n const hasActiveOptions = !!defaultOptions.length;\n if (open && (initSearchValue || searchValue)) {\n if (hasActiveOptions && keyboardFocusedOptionIndex == null) {\n setKeyboardFocusedOptionIndex(0);\n }\n if (!hasActiveOptions && keyboardFocusedOptionIndex != null) {\n setKeyboardFocusedOptionIndex(null);\n }\n }\n\n return (\n <div // eslint-disable-line jsx-a11y/no-static-element-interactions\n ref={selectReference}\n className={classNames(s('np-select'), block ? s('btn-block') : null, s('btn-group'))}\n onKeyDown={handleKeyDown}\n onTouchMove={handleTouchStart}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n >\n <Button\n ref={dropdownButtonReference}\n {...inputAttributes}\n id={computedId}\n block={block}\n size={size}\n htmlType=\"button\"\n className={classNames(\n s('np-dropdown-toggle'),\n s('np-text-body-large'),\n inverse ? s('np-dropdown-toggle-navy') : null,\n )}\n // reset Button's styles\n type={null}\n priority={null}\n disabled={disabled}\n aria-controls={listboxId}\n aria-expanded={open}\n onClick={handleOnClick}\n {...buttonProps}\n >\n {selected ? (\n <Option {...selected} classNames={classNamesProp} selected />\n ) : (\n <span className={s('form-control-placeholder')}>{placeholder}</span>\n )}\n <Chevron\n // disabled={disabled}\n className={classNames(\n s('tw-icon'),\n s('tw-chevron-up-icon'),\n s('tw-chevron'),\n s('bottom'),\n s('np-select-chevron'),\n )}\n />\n </Button>\n {isMobile ? (\n isSearchEnabled ? (\n <Drawer\n open={open}\n headerTitle={searchPlaceholder || formatMessage(messages.searchPlaceholder)}\n onClose={handleCloseOptions}\n >\n {renderOptionsList()}\n </Drawer>\n ) : (\n <BottomSheet open={open} onClose={handleCloseOptions}>\n {renderOptionsList({ className: isModern ? '' : 'p-a-1' })}\n </BottomSheet>\n )\n ) : (\n <Panel\n open={open}\n flip={false}\n altAxis\n anchorRef={selectReference}\n anchorWidth={isDropdownAutoWidth}\n position={dropdownUp ? Position.TOP : Position.BOTTOM}\n onClose={handleCloseOptions}\n >\n {renderOptionsList({ className: 'p-a-1' })}\n </Panel>\n )}\n </div>\n );\n}\n\nSelect.propTypes = {\n placeholder: PropTypes.string,\n id: PropTypes.string,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n inverse: PropTypes.bool,\n dropdownRight: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n dropdownWidth: PropTypes.oneOf(['sm', 'md', 'lg']),\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n block: PropTypes.bool,\n selected: PropTypes.shape({\n value: PropTypes.any.isRequired,\n label: PropTypes.node,\n icon: PropTypes.node,\n currency: PropTypes.string,\n note: PropTypes.node,\n secondary: PropTypes.node,\n }),\n /**\n * Search toggle\n * if `true` default search functionality being enabled (not case sensitive search in option labels & currency props)\n * if `function` you can define your own search function to implement custom search experience. This search function used while filtering the options array. The custom search function takes two parameters. First is the option the second is the keyword.\n */\n search: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.any,\n label: PropTypes.node,\n header: PropTypes.node,\n icon: PropTypes.node,\n currency: PropTypes.string,\n note: PropTypes.node,\n secondary: PropTypes.node,\n separator: PropTypes.bool,\n disabled: PropTypes.bool,\n searchStrings: PropTypes.arrayOf(PropTypes.string),\n }),\n ).isRequired,\n searchValue: PropTypes.string,\n searchPlaceholder: PropTypes.string,\n classNames: PropTypes.objectOf(PropTypes.string),\n dropdownUp: PropTypes.bool,\n buttonProps: PropTypes.object,\n dropdownProps: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n /**\n * To have full control of your search value and response use `onSearchChange` function combined with `searchValue` and custom filtering on the options array.\n * DO NOT USE TOGETHER WITH `search` PROPERTY\n */\n onSearchChange: PropTypes.func,\n};\n\nSelect.defaultProps = {\n id: undefined,\n placeholder: undefined,\n size: 'md',\n dropdownRight: null,\n dropdownWidth: null,\n inverse: false,\n required: false,\n disabled: false,\n block: true,\n selected: null,\n onFocus: null,\n onBlur: null,\n onSearchChange: undefined,\n search: false,\n searchValue: '',\n searchPlaceholder: undefined,\n classNames: {},\n dropdownUp: false,\n buttonProps: {},\n dropdownProps: {},\n};\n"],"names":["DEFAULT_SEARCH_VALUE","DEFAULT_OPTIONS_PAGE_SIZE","includesString","string1","string2","toLowerCase","includes","defaultFilterFunction","option","searchValue","isPlaceholderOption","label","note","secondary","currency","searchStrings","some","string","isActionableOption","header","separator","disabled","isHeaderOption","isSeparatorOption","clamp","from","to","value","Math","max","min","DEFAULT_SELECTED_OPTION","isSearchableOption","getUniqueIdForOption","parentId","undefined","uniqueOptionId","replace","Select","placeholder","id","required","inverse","dropdownWidth","size","block","selected","search","onChange","onFocus","onBlur","options","defaultOptions","onSearchChange","initSearchValue","searchPlaceholder","classNames","classNamesProp","dropdownUp","dropdownProps","buttonProps","inputAttributes","useInputAttributes","formatMessage","useIntl","isModern","useTheme","s","className","open","setOpen","useState","setSearchValue","keyboardFocusedOptionIndex","setKeyboardFocusedOptionIndex","keyboardFocusedReference","useRef","previousKeyboardFocusedOptionIndex","numberOfOptionsShown","setNumberOfOptionsShown","searchBoxReference","selectReference","dropdownButtonReference","optionsListReference","isSearchEnabled","isDropdownAutoWidth","useMemo","filter","selectableOptions","focusedOption","fallbackButtonId","useId","computedId","listboxId","searchBoxId","isMobile","useLayout","useEffect","cancelled","requestAnimationFrame","current","scrollIntoView","focus","handleOnClick","handleTouchStart","event","currentTarget","target","handleCloseOptions","handleOnFocus","handleOnBlur","nativeEvent","elementReceivingFocus","relatedTarget","select","contains","handleSearchChange","handleKeyDown","key","moveFocusWithDifference","stopPropagation","selectKeyboardFocusedOption","length","selectOption","difference","selectedOptionIndex","reduce","optionIndex","index","isOptionSelected","previousFocusedIndex","indexToStartMovingFrom","unClampedNewIndex","newIndex","Number","isNaN","createSelectHandlerForOption","renderOptionsList","dropdownClass","showPlaceholder","Boolean","_jsxs","ref","role","tabIndex","children","_jsx","PlaceHolderOption","SearchBox","messages","focusedOptionId","onClick","slice","map","renderOption","ShowMoreOption","onKeyPress","placeholderOption","SeparatorOption","HeaderOption","separatorOption","headerOption","isActive","isFocusedWithKeyboard","getIndexWithoutHeadersForIndexWithHeaders","Option","sum","currentIndex","hasActiveOptions","onKeyDown","onTouchMove","Button","htmlType","type","priority","Chevron","Drawer","headerTitle","onClose","BottomSheet","Panel","flip","altAxis","anchorRef","anchorWidth","position","Position","TOP","BOTTOM","propTypes","PropTypes","bool","dropdownRight","oneOf","shape","any","isRequired","node","icon","oneOfType","func","arrayOf","objectOf","object","defaultProps"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.mjs","sources":["../../src/select/Select.js"],"sourcesContent":["import { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { useState, useEffect, useRef, useMemo, useId } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Button from '../button';\nimport Chevron from '../chevron';\nimport { Position } from '../common';\nimport BottomSheet from '../common/bottomSheet';\nimport { stopPropagation } from '../common/domHelpers';\nimport { useLayout } from '../common/hooks';\nimport Panel from '../common/panel';\nimport Drawer from '../drawer';\nimport { useInputAttributes } from '../inputs/contexts';\n\nimport messages from './Select.messages';\nimport Option from './option';\nimport SearchBox from './searchBox';\n\nconst DEFAULT_SEARCH_VALUE = '';\nconst DEFAULT_OPTIONS_PAGE_SIZE = 1000;\n\nconst includesString = (string1, string2) => string1.toLowerCase().includes(string2.toLowerCase());\n\nfunction defaultFilterFunction(option, searchValue) {\n if (isPlaceholderOption(option)) {\n return true;\n }\n const { label, note, secondary, currency, searchStrings } = option;\n return (\n (!!label && includesString(label, searchValue)) ||\n (!!note && includesString(note, searchValue)) ||\n (!!secondary && includesString(secondary, searchValue)) ||\n (!!currency && includesString(currency, searchValue)) ||\n (!!searchStrings && searchStrings.some((string) => includesString(string, searchValue)))\n );\n}\n\nfunction isActionableOption(option) {\n return !option.header && !option.separator && !option.disabled;\n}\n\nfunction isHeaderOption(option) {\n return option != null && 'header' in option;\n}\n\nfunction isSeparatorOption(option) {\n return option != null && 'separator' in option;\n}\n\nfunction clamp(from, to, value) {\n return Math.max(Math.min(to, value), from);\n}\n\n/**\n * No option or placeholder option is selected\n */\nconst DEFAULT_SELECTED_OPTION = null;\n\nfunction isPlaceholderOption(option) {\n return option === DEFAULT_SELECTED_OPTION || 'placeholder' in option;\n}\n\nfunction isSearchableOption(option) {\n return !isHeaderOption(option) && !isSeparatorOption(option) && !isPlaceholderOption(option);\n}\n\nconst getUniqueIdForOption = (parentId = '', option) => {\n if (option == null) {\n return undefined;\n }\n\n const uniqueOptionId = option.value || (option.label?.replace(/\\s/g, '') ?? '');\n\n return `option-${parentId}-${uniqueOptionId}`;\n};\n\n/**\n * @deprecated Use `SelectInput` instead (https://neptune.wise.design/blog/2023-11-28-adopting-our-new-selectinput)\n */\nexport default function Select({\n placeholder,\n id,\n required,\n disabled,\n inverse,\n dropdownWidth,\n size,\n block,\n selected,\n search,\n onChange,\n onFocus,\n onBlur,\n options: defaultOptions,\n onSearchChange,\n searchValue: initSearchValue,\n searchPlaceholder,\n // eslint-disable-next-line unicorn/prevent-abbreviations\n classNames: classNamesProp,\n dropdownUp,\n dropdownProps,\n buttonProps,\n}) {\n const inputAttributes = useInputAttributes();\n\n const { formatMessage } = useIntl();\n const { isModern } = useTheme();\n const s = (className) => classNamesProp[className] || className;\n const [open, setOpen] = useState(false);\n const [searchValue, setSearchValue] = useState(DEFAULT_SEARCH_VALUE);\n const [keyboardFocusedOptionIndex, setKeyboardFocusedOptionIndex] = useState(null);\n const keyboardFocusedReference = useRef();\n const previousKeyboardFocusedOptionIndex = useRef();\n const [numberOfOptionsShown, setNumberOfOptionsShown] = useState(DEFAULT_OPTIONS_PAGE_SIZE);\n const searchBoxReference = useRef(null);\n const selectReference = useRef(null);\n const dropdownButtonReference = useRef(null);\n const optionsListReference = useRef(null);\n const isSearchEnabled = !!onSearchChange || !!search;\n const isDropdownAutoWidth = dropdownWidth == null;\n\n const options = useMemo(() => {\n if (!search || !searchValue) {\n return defaultOptions;\n }\n\n return defaultOptions.filter(isSearchableOption).filter((option) => {\n if (typeof search === 'function') {\n return search(option, searchValue);\n }\n return defaultFilterFunction(option, searchValue);\n });\n }, [defaultOptions, search, searchValue]);\n\n const selectableOptions = useMemo(() => options.filter(isActionableOption), [options]);\n const focusedOption = selectableOptions[keyboardFocusedOptionIndex];\n\n const fallbackButtonId = useId();\n const computedId = id || inputAttributes.id || fallbackButtonId;\n const listboxId = `${computedId}-listbox`;\n const searchBoxId = `${computedId}-searchbox`;\n\n const { isMobile } = useLayout();\n\n useEffect(() => {\n let cancelled;\n\n if (keyboardFocusedOptionIndex >= 0) {\n requestAnimationFrame(() => {\n if (!cancelled) {\n if (isSearchEnabled) {\n keyboardFocusedReference.current?.scrollIntoView?.({ block: 'center' });\n } else {\n keyboardFocusedReference.current?.focus();\n }\n }\n });\n\n return () => {\n cancelled = true;\n };\n }\n }, [keyboardFocusedOptionIndex, isSearchEnabled]);\n\n const handleOnClick = () => {\n setOpen(true);\n };\n\n const handleTouchStart = (event) => {\n if (event.currentTarget === event.target && open) {\n handleCloseOptions();\n }\n };\n\n const handleOnFocus = (event) => {\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleOnBlur = (event) => {\n const { nativeEvent } = event;\n if (nativeEvent) {\n const elementReceivingFocus = nativeEvent.relatedTarget;\n const select = event.currentTarget;\n if (select && elementReceivingFocus && select.contains(elementReceivingFocus)) {\n return;\n }\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleSearchChange = (event) => {\n setNumberOfOptionsShown(DEFAULT_OPTIONS_PAGE_SIZE);\n setSearchValue(event.target.value);\n if (onSearchChange) {\n onSearchChange(event.target.value);\n }\n };\n\n const handleKeyDown = (event) => {\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n if (open) {\n moveFocusWithDifference(event.key === 'ArrowUp' ? -1 : 1);\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n break;\n case ' ':\n if (event.target !== searchBoxReference.current) {\n if (open) {\n selectKeyboardFocusedOption();\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n }\n break;\n case 'Enter':\n if (open) {\n selectKeyboardFocusedOption();\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n break;\n case 'Escape':\n handleCloseOptions();\n stopPropagation(event);\n break;\n case 'Tab':\n if (open) {\n selectKeyboardFocusedOption();\n }\n break;\n default:\n break;\n }\n };\n\n function selectKeyboardFocusedOption() {\n if (keyboardFocusedOptionIndex != null && selectableOptions.length > 0) {\n selectOption(selectableOptions[keyboardFocusedOptionIndex]);\n }\n }\n\n function moveFocusWithDifference(difference) {\n const selectedOptionIndex = selectableOptions.reduce((optionIndex, current, index) => {\n if (optionIndex != null) {\n return optionIndex;\n }\n if (isOptionSelected(selected, current)) {\n return index;\n }\n return null;\n }, null);\n const previousFocusedIndex = previousKeyboardFocusedOptionIndex.current ?? -1;\n let indexToStartMovingFrom = previousFocusedIndex;\n if (previousFocusedIndex === -1) {\n if (selectedOptionIndex == null) {\n setKeyboardFocusedOptionIndex(0);\n } else {\n indexToStartMovingFrom = selectedOptionIndex;\n }\n }\n\n const unClampedNewIndex = indexToStartMovingFrom + difference;\n const newIndex = clamp(0, selectableOptions.length - 1, unClampedNewIndex);\n\n setKeyboardFocusedOptionIndex(newIndex);\n }\n\n useEffect(() => {\n if (open) {\n if (!isMobile || searchValue) {\n if (isSearchEnabled && searchBoxReference.current) {\n searchBoxReference.current.focus();\n }\n if (\n !isSearchEnabled &&\n optionsListReference.current &&\n (previousKeyboardFocusedOptionIndex.current == null ||\n Number.isNaN(previousKeyboardFocusedOptionIndex.current))\n ) {\n optionsListReference.current.focus();\n }\n }\n\n previousKeyboardFocusedOptionIndex.current = keyboardFocusedOptionIndex;\n } else {\n previousKeyboardFocusedOptionIndex.current = null;\n }\n }, [open, searchValue, isSearchEnabled, isMobile, keyboardFocusedOptionIndex]);\n\n const handleCloseOptions = () => {\n setOpen(false);\n setKeyboardFocusedOptionIndex(null);\n if (dropdownButtonReference.current) {\n dropdownButtonReference.current.focus();\n }\n };\n\n function createSelectHandlerForOption(option) {\n return (event) => {\n stopPropagation(event);\n selectOption(option);\n };\n }\n\n function selectOption(option) {\n onChange(isPlaceholderOption(option) ? DEFAULT_SELECTED_OPTION : option);\n handleCloseOptions();\n }\n\n function renderOptionsList({ className } = {}) {\n const dropdownClass = classNames(\n s('np-dropdown-menu'),\n {\n [s('np-dropdown-menu-desktop')]: !isMobile,\n [s(`np-dropdown-menu-${dropdownWidth}`)]: !isMobile && !isDropdownAutoWidth,\n },\n s(className),\n );\n\n const showPlaceholder = !required && !isSearchEnabled && Boolean(placeholder);\n return (\n <ul\n ref={optionsListReference}\n id={listboxId}\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-activedescendant={getUniqueIdForOption(id, selected)}\n tabIndex=\"-1\"\n className={dropdownClass}\n {...dropdownProps}\n >\n {showPlaceholder && <PlaceHolderOption />}\n {isSearchEnabled && (\n <SearchBox\n ref={searchBoxReference}\n id={searchBoxId}\n classNames={classNamesProp}\n value={initSearchValue || searchValue}\n placeholder={searchPlaceholder || formatMessage(messages.searchPlaceholder)}\n focusedOptionId={getUniqueIdForOption(id, focusedOption)}\n onChange={handleSearchChange}\n onClick={stopPropagation}\n />\n )}\n {options.slice(0, numberOfOptionsShown).map(renderOption)}\n {numberOfOptionsShown < options.length && <ShowMoreOption />}\n </ul>\n );\n }\n\n function ShowMoreOption() {\n function handleOnClick(event) {\n stopPropagation(event);\n setNumberOfOptionsShown(numberOfOptionsShown + DEFAULT_OPTIONS_PAGE_SIZE);\n }\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n className={classNames(s('clickable'), s('border-bottom'), s('show-more'))}\n onClick={handleOnClick}\n onKeyPress={handleOnClick}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a>...</a>\n </li>\n );\n }\n\n function PlaceHolderOption() {\n const placeholderOption = { placeholder };\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n className={classNames(s('clickable'), s('border-bottom'))}\n onClick={createSelectHandlerForOption(placeholderOption)}\n onKeyPress={createSelectHandlerForOption(placeholderOption)}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a>{placeholder}</a>\n </li>\n );\n }\n\n // eslint-disable-next-line react/prop-types\n function SeparatorOption() {\n return <li className={s('np-separator')} aria-hidden />;\n }\n\n // eslint-disable-next-line react/prop-types\n function HeaderOption({ children }) {\n return (\n <li // eslint-disable-line jsx-a11y/no-noninteractive-element-interactions\n className={classNames(s('np-dropdown-header'), s('np-text-title-group'))}\n onClick={stopPropagation}\n onKeyPress={stopPropagation}\n >\n {children}\n </li>\n );\n }\n\n function isOptionSelected(selected, option) {\n return selected?.value === option?.value;\n }\n\n const renderOption = (option, index) => {\n const separatorOption = option;\n if (isSeparatorOption(separatorOption) && separatorOption?.separator) {\n return <SeparatorOption key={index} />;\n }\n const headerOption = option;\n if (isHeaderOption(headerOption) && headerOption.header) {\n return <HeaderOption key={index}>{headerOption.header}</HeaderOption>;\n }\n\n const isActive = isOptionSelected(selected, option);\n const selectOption = option;\n const isFocusedWithKeyboard =\n !selectOption.disabled &&\n keyboardFocusedOptionIndex === getIndexWithoutHeadersForIndexWithHeaders(index);\n\n const className = classNames(\n s('np-dropdown-item'),\n selectOption.disabled ? [s('disabled')] : s('clickable'),\n {\n [s('active')]: isActive,\n [s('np-dropdown-item--focused')]: isFocusedWithKeyboard,\n },\n );\n\n const handleOnClick = selectOption.disabled\n ? stopPropagation\n : createSelectHandlerForOption(selectOption);\n\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n ref={isFocusedWithKeyboard ? keyboardFocusedReference : undefined}\n key={index}\n id={getUniqueIdForOption(id, option)}\n aria-selected={isActive}\n aria-disabled={option.disabled}\n role=\"option\"\n tabIndex=\"-1\"\n className={className}\n onClick={handleOnClick}\n onKeyPress={handleOnClick}\n >\n {/* @ts-expect-error options needs DOM refactoring */}\n <a disabled={selectOption.disabled}>\n <Option {...selectOption} classNames={classNamesProp} />\n </a>\n </li>\n );\n };\n\n function getIndexWithoutHeadersForIndexWithHeaders(index) {\n return options.reduce((sum, option, currentIndex) => {\n if (currentIndex < index && isActionableOption(option)) {\n return sum + 1;\n }\n return sum;\n }, 0);\n }\n\n const hasActiveOptions = !!defaultOptions.length;\n if (open && (initSearchValue || searchValue)) {\n if (hasActiveOptions && keyboardFocusedOptionIndex == null) {\n setKeyboardFocusedOptionIndex(0);\n }\n if (!hasActiveOptions && keyboardFocusedOptionIndex != null) {\n setKeyboardFocusedOptionIndex(null);\n }\n }\n\n return (\n <div // eslint-disable-line jsx-a11y/no-static-element-interactions\n ref={selectReference}\n className={classNames(s('np-select'), block ? s('btn-block') : null, s('btn-group'))}\n onKeyDown={handleKeyDown}\n onTouchMove={handleTouchStart}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n >\n <Button\n ref={dropdownButtonReference}\n {...inputAttributes}\n id={computedId}\n block={block}\n size={size}\n htmlType=\"button\"\n className={classNames(\n s('np-dropdown-toggle'),\n s('np-text-body-large'),\n inverse ? s('np-dropdown-toggle-navy') : null,\n )}\n // reset Button's styles\n type={null}\n priority={null}\n disabled={disabled}\n aria-controls={listboxId}\n aria-expanded={open}\n onClick={handleOnClick}\n {...buttonProps}\n >\n {selected ? (\n <Option {...selected} classNames={classNamesProp} selected />\n ) : (\n <span className={s('form-control-placeholder')}>{placeholder}</span>\n )}\n <Chevron\n // disabled={disabled}\n className={classNames(\n s('tw-icon'),\n s('tw-chevron-up-icon'),\n s('tw-chevron'),\n s('bottom'),\n s('np-select-chevron'),\n )}\n />\n </Button>\n {isMobile ? (\n isSearchEnabled ? (\n <Drawer\n open={open}\n headerTitle={searchPlaceholder || formatMessage(messages.searchPlaceholder)}\n onClose={handleCloseOptions}\n >\n {renderOptionsList()}\n </Drawer>\n ) : (\n <BottomSheet open={open} onClose={handleCloseOptions}>\n {renderOptionsList({ className: isModern ? '' : 'p-a-1' })}\n </BottomSheet>\n )\n ) : (\n <Panel\n open={open}\n flip={false}\n altAxis\n anchorRef={selectReference}\n anchorWidth={isDropdownAutoWidth}\n position={dropdownUp ? Position.TOP : Position.BOTTOM}\n onClose={handleCloseOptions}\n >\n {renderOptionsList({ className: 'p-a-1' })}\n </Panel>\n )}\n </div>\n );\n}\n\nSelect.propTypes = {\n placeholder: PropTypes.string,\n id: PropTypes.string,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n inverse: PropTypes.bool,\n dropdownRight: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n dropdownWidth: PropTypes.oneOf(['sm', 'md', 'lg']),\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n block: PropTypes.bool,\n selected: PropTypes.shape({\n value: PropTypes.any.isRequired,\n label: PropTypes.node,\n icon: PropTypes.node,\n currency: PropTypes.string,\n note: PropTypes.node,\n secondary: PropTypes.node,\n }),\n /**\n * Search toggle\n * if `true` default search functionality being enabled (not case sensitive search in option labels & currency props)\n * if `function` you can define your own search function to implement custom search experience. This search function used while filtering the options array. The custom search function takes two parameters. First is the option the second is the keyword.\n */\n search: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.any,\n label: PropTypes.node,\n header: PropTypes.node,\n icon: PropTypes.node,\n currency: PropTypes.string,\n note: PropTypes.node,\n secondary: PropTypes.node,\n separator: PropTypes.bool,\n disabled: PropTypes.bool,\n searchStrings: PropTypes.arrayOf(PropTypes.string),\n }),\n ).isRequired,\n searchValue: PropTypes.string,\n searchPlaceholder: PropTypes.string,\n classNames: PropTypes.objectOf(PropTypes.string),\n dropdownUp: PropTypes.bool,\n buttonProps: PropTypes.object,\n dropdownProps: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n /**\n * To have full control of your search value and response use `onSearchChange` function combined with `searchValue` and custom filtering on the options array.\n * DO NOT USE TOGETHER WITH `search` PROPERTY\n */\n onSearchChange: PropTypes.func,\n};\n\nSelect.defaultProps = {\n id: undefined,\n placeholder: undefined,\n size: 'md',\n dropdownRight: null,\n dropdownWidth: null,\n inverse: false,\n required: false,\n disabled: false,\n block: true,\n selected: null,\n onFocus: null,\n onBlur: null,\n onSearchChange: undefined,\n search: false,\n searchValue: '',\n searchPlaceholder: undefined,\n classNames: {},\n dropdownUp: false,\n buttonProps: {},\n dropdownProps: {},\n};\n"],"names":["DEFAULT_SEARCH_VALUE","DEFAULT_OPTIONS_PAGE_SIZE","includesString","string1","string2","toLowerCase","includes","defaultFilterFunction","option","searchValue","isPlaceholderOption","label","note","secondary","currency","searchStrings","some","string","isActionableOption","header","separator","disabled","isHeaderOption","isSeparatorOption","clamp","from","to","value","Math","max","min","DEFAULT_SELECTED_OPTION","isSearchableOption","getUniqueIdForOption","parentId","undefined","uniqueOptionId","replace","Select","placeholder","id","required","inverse","dropdownWidth","size","block","selected","search","onChange","onFocus","onBlur","options","defaultOptions","onSearchChange","initSearchValue","searchPlaceholder","classNames","classNamesProp","dropdownUp","dropdownProps","buttonProps","inputAttributes","useInputAttributes","formatMessage","useIntl","isModern","useTheme","s","className","open","setOpen","useState","setSearchValue","keyboardFocusedOptionIndex","setKeyboardFocusedOptionIndex","keyboardFocusedReference","useRef","previousKeyboardFocusedOptionIndex","numberOfOptionsShown","setNumberOfOptionsShown","searchBoxReference","selectReference","dropdownButtonReference","optionsListReference","isSearchEnabled","isDropdownAutoWidth","useMemo","filter","selectableOptions","focusedOption","fallbackButtonId","useId","computedId","listboxId","searchBoxId","isMobile","useLayout","useEffect","cancelled","requestAnimationFrame","current","scrollIntoView","focus","handleOnClick","handleTouchStart","event","currentTarget","target","handleCloseOptions","handleOnFocus","handleOnBlur","nativeEvent","elementReceivingFocus","relatedTarget","select","contains","handleSearchChange","handleKeyDown","key","moveFocusWithDifference","stopPropagation","selectKeyboardFocusedOption","length","selectOption","difference","selectedOptionIndex","reduce","optionIndex","index","isOptionSelected","previousFocusedIndex","indexToStartMovingFrom","unClampedNewIndex","newIndex","Number","isNaN","createSelectHandlerForOption","renderOptionsList","dropdownClass","showPlaceholder","Boolean","_jsxs","ref","role","tabIndex","children","_jsx","PlaceHolderOption","SearchBox","messages","focusedOptionId","onClick","slice","map","renderOption","ShowMoreOption","onKeyPress","placeholderOption","SeparatorOption","HeaderOption","separatorOption","headerOption","isActive","isFocusedWithKeyboard","getIndexWithoutHeadersForIndexWithHeaders","Option","sum","currentIndex","hasActiveOptions","onKeyDown","onTouchMove","Button","htmlType","type","priority","Chevron","Drawer","headerTitle","onClose","BottomSheet","Panel","flip","altAxis","anchorRef","anchorWidth","position","Position","TOP","BOTTOM","propTypes","PropTypes","bool","dropdownRight","oneOf","shape","any","isRequired","node","icon","oneOfType","func","arrayOf","objectOf","object","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.mjs","sources":["../../src/select/Select.js"],"sourcesContent":["import { useTheme } from '@wise/components-theming';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { useState, useEffect, useRef, useMemo, useId } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Button from '../button';\nimport Chevron from '../chevron';\nimport { Position } from '../common';\nimport BottomSheet from '../common/bottomSheet';\nimport { stopPropagation } from '../common/domHelpers';\nimport { useLayout } from '../common/hooks';\nimport Panel from '../common/panel';\nimport Drawer from '../drawer';\nimport { useInputAttributes } from '../inputs/contexts';\n\nimport messages from './Select.messages';\nimport Option from './option';\nimport SearchBox from './searchBox';\n\nconst DEFAULT_SEARCH_VALUE = '';\nconst DEFAULT_OPTIONS_PAGE_SIZE = 1000;\n\nconst includesString = (string1, string2) => string1.toLowerCase().includes(string2.toLowerCase());\n\nfunction defaultFilterFunction(option, searchValue) {\n if (isPlaceholderOption(option)) {\n return true;\n }\n const { label, note, secondary, currency, searchStrings } = option;\n return (\n (!!label && includesString(label, searchValue)) ||\n (!!note && includesString(note, searchValue)) ||\n (!!secondary && includesString(secondary, searchValue)) ||\n (!!currency && includesString(currency, searchValue)) ||\n (!!searchStrings && searchStrings.some((string) => includesString(string, searchValue)))\n );\n}\n\nfunction isActionableOption(option) {\n return !option.header && !option.separator && !option.disabled;\n}\n\nfunction isHeaderOption(option) {\n return option != null && 'header' in option;\n}\n\nfunction isSeparatorOption(option) {\n return option != null && 'separator' in option;\n}\n\nfunction clamp(from, to, value) {\n return Math.max(Math.min(to, value), from);\n}\n\n/**\n * No option or placeholder option is selected\n */\nconst DEFAULT_SELECTED_OPTION = null;\n\nfunction isPlaceholderOption(option) {\n return option === DEFAULT_SELECTED_OPTION || 'placeholder' in option;\n}\n\nfunction isSearchableOption(option) {\n return !isHeaderOption(option) && !isSeparatorOption(option) && !isPlaceholderOption(option);\n}\n\nconst getUniqueIdForOption = (parentId = '', option) => {\n if (option == null) {\n return undefined;\n }\n\n const uniqueOptionId = option.value || (option.label?.replace(/\\s/g, '') ?? '');\n\n return `option-${parentId}-${uniqueOptionId}`;\n};\n\n/**\n * @deprecated Use `SelectInput` instead (https://neptune.wise.design/blog/2023-11-28-adopting-our-new-selectinput)\n */\nexport default function Select({\n placeholder,\n id,\n required,\n disabled,\n inverse,\n dropdownWidth,\n size,\n block,\n selected,\n search,\n onChange,\n onFocus,\n onBlur,\n options: defaultOptions,\n onSearchChange,\n searchValue: initSearchValue,\n searchPlaceholder,\n // eslint-disable-next-line unicorn/prevent-abbreviations\n classNames: classNamesProp,\n dropdownUp,\n dropdownProps,\n buttonProps,\n}) {\n const inputAttributes = useInputAttributes();\n\n const { formatMessage } = useIntl();\n const { isModern } = useTheme();\n const s = (className) => classNamesProp[className] || className;\n const [open, setOpen] = useState(false);\n const [searchValue, setSearchValue] = useState(DEFAULT_SEARCH_VALUE);\n const [keyboardFocusedOptionIndex, setKeyboardFocusedOptionIndex] = useState(null);\n const keyboardFocusedReference = useRef();\n const previousKeyboardFocusedOptionIndex = useRef();\n const [numberOfOptionsShown, setNumberOfOptionsShown] = useState(DEFAULT_OPTIONS_PAGE_SIZE);\n const searchBoxReference = useRef(null);\n const selectReference = useRef(null);\n const dropdownButtonReference = useRef(null);\n const optionsListReference = useRef(null);\n const isSearchEnabled = !!onSearchChange || !!search;\n const isDropdownAutoWidth = dropdownWidth == null;\n\n const options = useMemo(() => {\n if (!search || !searchValue) {\n return defaultOptions;\n }\n\n return defaultOptions.filter(isSearchableOption).filter((option) => {\n if (typeof search === 'function') {\n return search(option, searchValue);\n }\n return defaultFilterFunction(option, searchValue);\n });\n }, [defaultOptions, search, searchValue]);\n\n const selectableOptions = useMemo(() => options.filter(isActionableOption), [options]);\n const focusedOption = selectableOptions[keyboardFocusedOptionIndex];\n\n const fallbackButtonId = useId();\n const computedId = id || inputAttributes.id || fallbackButtonId;\n const listboxId = `${computedId}-listbox`;\n const searchBoxId = `${computedId}-searchbox`;\n\n const { isMobile } = useLayout();\n\n useEffect(() => {\n let cancelled;\n\n if (keyboardFocusedOptionIndex >= 0) {\n requestAnimationFrame(() => {\n if (!cancelled) {\n if (isSearchEnabled) {\n keyboardFocusedReference.current?.scrollIntoView?.({ block: 'center' });\n } else {\n keyboardFocusedReference.current?.focus();\n }\n }\n });\n\n return () => {\n cancelled = true;\n };\n }\n }, [keyboardFocusedOptionIndex, isSearchEnabled]);\n\n const handleOnClick = () => {\n setOpen(true);\n };\n\n const handleTouchStart = (event) => {\n if (event.currentTarget === event.target && open) {\n handleCloseOptions();\n }\n };\n\n const handleOnFocus = (event) => {\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleOnBlur = (event) => {\n const { nativeEvent } = event;\n if (nativeEvent) {\n const elementReceivingFocus = nativeEvent.relatedTarget;\n const select = event.currentTarget;\n if (select && elementReceivingFocus && select.contains(elementReceivingFocus)) {\n return;\n }\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleSearchChange = (event) => {\n setNumberOfOptionsShown(DEFAULT_OPTIONS_PAGE_SIZE);\n setSearchValue(event.target.value);\n if (onSearchChange) {\n onSearchChange(event.target.value);\n }\n };\n\n const handleKeyDown = (event) => {\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n if (open) {\n moveFocusWithDifference(event.key === 'ArrowUp' ? -1 : 1);\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n break;\n case ' ':\n if (event.target !== searchBoxReference.current) {\n if (open) {\n selectKeyboardFocusedOption();\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n }\n break;\n case 'Enter':\n if (open) {\n selectKeyboardFocusedOption();\n } else {\n setOpen(true);\n }\n stopPropagation(event);\n break;\n case 'Escape':\n handleCloseOptions();\n stopPropagation(event);\n break;\n case 'Tab':\n if (open) {\n selectKeyboardFocusedOption();\n }\n break;\n default:\n break;\n }\n };\n\n function selectKeyboardFocusedOption() {\n if (keyboardFocusedOptionIndex != null && selectableOptions.length > 0) {\n selectOption(selectableOptions[keyboardFocusedOptionIndex]);\n }\n }\n\n function moveFocusWithDifference(difference) {\n const selectedOptionIndex = selectableOptions.reduce((optionIndex, current, index) => {\n if (optionIndex != null) {\n return optionIndex;\n }\n if (isOptionSelected(selected, current)) {\n return index;\n }\n return null;\n }, null);\n const previousFocusedIndex = previousKeyboardFocusedOptionIndex.current ?? -1;\n let indexToStartMovingFrom = previousFocusedIndex;\n if (previousFocusedIndex === -1) {\n if (selectedOptionIndex == null) {\n setKeyboardFocusedOptionIndex(0);\n } else {\n indexToStartMovingFrom = selectedOptionIndex;\n }\n }\n\n const unClampedNewIndex = indexToStartMovingFrom + difference;\n const newIndex = clamp(0, selectableOptions.length - 1, unClampedNewIndex);\n\n setKeyboardFocusedOptionIndex(newIndex);\n }\n\n useEffect(() => {\n if (open) {\n if (!isMobile || searchValue) {\n if (isSearchEnabled && searchBoxReference.current) {\n searchBoxReference.current.focus();\n }\n if (\n !isSearchEnabled &&\n optionsListReference.current &&\n (previousKeyboardFocusedOptionIndex.current == null ||\n Number.isNaN(previousKeyboardFocusedOptionIndex.current))\n ) {\n optionsListReference.current.focus();\n }\n }\n\n previousKeyboardFocusedOptionIndex.current = keyboardFocusedOptionIndex;\n } else {\n previousKeyboardFocusedOptionIndex.current = null;\n }\n }, [open, searchValue, isSearchEnabled, isMobile, keyboardFocusedOptionIndex]);\n\n const handleCloseOptions = () => {\n setOpen(false);\n setKeyboardFocusedOptionIndex(null);\n if (dropdownButtonReference.current) {\n dropdownButtonReference.current.focus();\n }\n };\n\n function createSelectHandlerForOption(option) {\n return (event) => {\n stopPropagation(event);\n selectOption(option);\n };\n }\n\n function selectOption(option) {\n onChange(isPlaceholderOption(option) ? DEFAULT_SELECTED_OPTION : option);\n handleCloseOptions();\n }\n\n function renderOptionsList({ className } = {}) {\n const dropdownClass = classNames(\n s('np-dropdown-menu'),\n {\n [s('np-dropdown-menu-desktop')]: !isMobile,\n [s(`np-dropdown-menu-${dropdownWidth}`)]: !isMobile && !isDropdownAutoWidth,\n },\n s(className),\n );\n\n const showPlaceholder = !required && !isSearchEnabled && Boolean(placeholder);\n return (\n <ul\n ref={optionsListReference}\n id={listboxId}\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-activedescendant={getUniqueIdForOption(id, selected)}\n tabIndex=\"-1\"\n className={dropdownClass}\n {...dropdownProps}\n >\n {showPlaceholder && <PlaceHolderOption />}\n {isSearchEnabled && (\n <SearchBox\n ref={searchBoxReference}\n id={searchBoxId}\n classNames={classNamesProp}\n value={initSearchValue || searchValue}\n placeholder={searchPlaceholder || formatMessage(messages.searchPlaceholder)}\n focusedOptionId={getUniqueIdForOption(id, focusedOption)}\n onChange={handleSearchChange}\n onClick={stopPropagation}\n />\n )}\n {options.slice(0, numberOfOptionsShown).map(renderOption)}\n {numberOfOptionsShown < options.length && <ShowMoreOption />}\n </ul>\n );\n }\n\n function ShowMoreOption() {\n function handleOnClick(event) {\n stopPropagation(event);\n setNumberOfOptionsShown(numberOfOptionsShown + DEFAULT_OPTIONS_PAGE_SIZE);\n }\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n className={classNames(s('clickable'), s('border-bottom'), s('show-more'))}\n onClick={handleOnClick}\n onKeyPress={handleOnClick}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a>...</a>\n </li>\n );\n }\n\n function PlaceHolderOption() {\n const placeholderOption = { placeholder };\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n className={classNames(s('clickable'), s('border-bottom'))}\n onClick={createSelectHandlerForOption(placeholderOption)}\n onKeyPress={createSelectHandlerForOption(placeholderOption)}\n >\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n <a>{placeholder}</a>\n </li>\n );\n }\n\n // eslint-disable-next-line react/prop-types\n function SeparatorOption() {\n return <li className={s('np-separator')} aria-hidden />;\n }\n\n // eslint-disable-next-line react/prop-types\n function HeaderOption({ children }) {\n return (\n <li // eslint-disable-line jsx-a11y/no-noninteractive-element-interactions\n className={classNames(s('np-dropdown-header'), s('np-text-title-group'))}\n onClick={stopPropagation}\n onKeyPress={stopPropagation}\n >\n {children}\n </li>\n );\n }\n\n function isOptionSelected(selected, option) {\n return selected?.value === option?.value;\n }\n\n const renderOption = (option, index) => {\n const separatorOption = option;\n if (isSeparatorOption(separatorOption) && separatorOption?.separator) {\n return <SeparatorOption key={index} />;\n }\n const headerOption = option;\n if (isHeaderOption(headerOption) && headerOption.header) {\n return <HeaderOption key={index}>{headerOption.header}</HeaderOption>;\n }\n\n const isActive = isOptionSelected(selected, option);\n const selectOption = option;\n const isFocusedWithKeyboard =\n !selectOption.disabled &&\n keyboardFocusedOptionIndex === getIndexWithoutHeadersForIndexWithHeaders(index);\n\n const className = classNames(\n s('np-dropdown-item'),\n selectOption.disabled ? [s('disabled')] : s('clickable'),\n {\n [s('active')]: isActive,\n [s('np-dropdown-item--focused')]: isFocusedWithKeyboard,\n },\n );\n\n const handleOnClick = selectOption.disabled\n ? stopPropagation\n : createSelectHandlerForOption(selectOption);\n\n return (\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n <li\n ref={isFocusedWithKeyboard ? keyboardFocusedReference : undefined}\n key={index}\n id={getUniqueIdForOption(id, option)}\n aria-selected={isActive}\n aria-disabled={option.disabled}\n role=\"option\"\n tabIndex=\"-1\"\n className={className}\n onClick={handleOnClick}\n onKeyPress={handleOnClick}\n >\n {/* @ts-expect-error options needs DOM refactoring */}\n <a disabled={selectOption.disabled}>\n <Option {...selectOption} classNames={classNamesProp} />\n </a>\n </li>\n );\n };\n\n function getIndexWithoutHeadersForIndexWithHeaders(index) {\n return options.reduce((sum, option, currentIndex) => {\n if (currentIndex < index && isActionableOption(option)) {\n return sum + 1;\n }\n return sum;\n }, 0);\n }\n\n const hasActiveOptions = !!defaultOptions.length;\n if (open && (initSearchValue || searchValue)) {\n if (hasActiveOptions && keyboardFocusedOptionIndex == null) {\n setKeyboardFocusedOptionIndex(0);\n }\n if (!hasActiveOptions && keyboardFocusedOptionIndex != null) {\n setKeyboardFocusedOptionIndex(null);\n }\n }\n\n return (\n <div // eslint-disable-line jsx-a11y/no-static-element-interactions\n ref={selectReference}\n className={classNames(s('np-select'), block ? s('btn-block') : null, s('btn-group'))}\n onKeyDown={handleKeyDown}\n onTouchMove={handleTouchStart}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n >\n <Button\n ref={dropdownButtonReference}\n {...inputAttributes}\n id={computedId}\n block={block}\n size={size}\n htmlType=\"button\"\n className={classNames(\n s('np-dropdown-toggle'),\n s('np-text-body-large'),\n inverse ? s('np-dropdown-toggle-navy') : null,\n )}\n // reset Button's styles\n type={null}\n priority={null}\n disabled={disabled}\n aria-controls={listboxId}\n aria-expanded={open}\n onClick={handleOnClick}\n {...buttonProps}\n >\n {selected ? (\n <Option {...selected} classNames={classNamesProp} selected />\n ) : (\n <span className={s('form-control-placeholder')}>{placeholder}</span>\n )}\n <Chevron\n // disabled={disabled}\n className={classNames(\n s('tw-icon'),\n s('tw-chevron-up-icon'),\n s('tw-chevron'),\n s('bottom'),\n s('np-select-chevron'),\n )}\n />\n </Button>\n {isMobile ? (\n isSearchEnabled ? (\n <Drawer\n open={open}\n headerTitle={searchPlaceholder || formatMessage(messages.searchPlaceholder)}\n onClose={handleCloseOptions}\n >\n {renderOptionsList()}\n </Drawer>\n ) : (\n <BottomSheet open={open} onClose={handleCloseOptions}>\n {renderOptionsList({ className: isModern ? '' : 'p-a-1' })}\n </BottomSheet>\n )\n ) : (\n <Panel\n open={open}\n flip={false}\n altAxis\n anchorRef={selectReference}\n anchorWidth={isDropdownAutoWidth}\n position={dropdownUp ? Position.TOP : Position.BOTTOM}\n onClose={handleCloseOptions}\n >\n {renderOptionsList({ className: 'p-a-1' })}\n </Panel>\n )}\n </div>\n );\n}\n\nSelect.propTypes = {\n placeholder: PropTypes.string,\n id: PropTypes.string,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n inverse: PropTypes.bool,\n dropdownRight: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n dropdownWidth: PropTypes.oneOf(['sm', 'md', 'lg']),\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n block: PropTypes.bool,\n selected: PropTypes.shape({\n value: PropTypes.any.isRequired,\n label: PropTypes.node,\n icon: PropTypes.node,\n currency: PropTypes.string,\n note: PropTypes.node,\n secondary: PropTypes.node,\n }),\n /**\n * Search toggle\n * if `true` default search functionality being enabled (not case sensitive search in option labels & currency props)\n * if `function` you can define your own search function to implement custom search experience. This search function used while filtering the options array. The custom search function takes two parameters. First is the option the second is the keyword.\n */\n search: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.any,\n label: PropTypes.node,\n header: PropTypes.node,\n icon: PropTypes.node,\n currency: PropTypes.string,\n note: PropTypes.node,\n secondary: PropTypes.node,\n separator: PropTypes.bool,\n disabled: PropTypes.bool,\n searchStrings: PropTypes.arrayOf(PropTypes.string),\n }),\n ).isRequired,\n searchValue: PropTypes.string,\n searchPlaceholder: PropTypes.string,\n classNames: PropTypes.objectOf(PropTypes.string),\n dropdownUp: PropTypes.bool,\n buttonProps: PropTypes.object,\n dropdownProps: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n /**\n * To have full control of your search value and response use `onSearchChange` function combined with `searchValue` and custom filtering on the options array.\n * DO NOT USE TOGETHER WITH `search` PROPERTY\n */\n onSearchChange: PropTypes.func,\n};\n\nSelect.defaultProps = {\n id: undefined,\n placeholder: undefined,\n size: 'md',\n dropdownRight: null,\n dropdownWidth: null,\n inverse: false,\n required: false,\n disabled: false,\n block: true,\n selected: null,\n onFocus: null,\n onBlur: null,\n onSearchChange: undefined,\n search: false,\n searchValue: '',\n searchPlaceholder: undefined,\n classNames: {},\n dropdownUp: false,\n buttonProps: {},\n dropdownProps: {},\n};\n"],"names":["DEFAULT_SEARCH_VALUE","DEFAULT_OPTIONS_PAGE_SIZE","includesString","string1","string2","toLowerCase","includes","defaultFilterFunction","option","searchValue","isPlaceholderOption","label","note","secondary","currency","searchStrings","some","string","isActionableOption","header","separator","disabled","isHeaderOption","isSeparatorOption","clamp","from","to","value","Math","max","min","DEFAULT_SELECTED_OPTION","isSearchableOption","getUniqueIdForOption","parentId","undefined","uniqueOptionId","replace","Select","placeholder","id","required","inverse","dropdownWidth","size","block","selected","search","onChange","onFocus","onBlur","options","defaultOptions","onSearchChange","initSearchValue","searchPlaceholder","classNames","classNamesProp","dropdownUp","dropdownProps","buttonProps","inputAttributes","useInputAttributes","formatMessage","useIntl","isModern","useTheme","s","className","open","setOpen","useState","setSearchValue","keyboardFocusedOptionIndex","setKeyboardFocusedOptionIndex","keyboardFocusedReference","useRef","previousKeyboardFocusedOptionIndex","numberOfOptionsShown","setNumberOfOptionsShown","searchBoxReference","selectReference","dropdownButtonReference","optionsListReference","isSearchEnabled","isDropdownAutoWidth","useMemo","filter","selectableOptions","focusedOption","fallbackButtonId","useId","computedId","listboxId","searchBoxId","isMobile","useLayout","useEffect","cancelled","requestAnimationFrame","current","scrollIntoView","focus","handleOnClick","handleTouchStart","event","currentTarget","target","handleCloseOptions","handleOnFocus","handleOnBlur","nativeEvent","elementReceivingFocus","relatedTarget","select","contains","handleSearchChange","handleKeyDown","key","moveFocusWithDifference","stopPropagation","selectKeyboardFocusedOption","length","selectOption","difference","selectedOptionIndex","reduce","optionIndex","index","isOptionSelected","previousFocusedIndex","indexToStartMovingFrom","unClampedNewIndex","newIndex","Number","isNaN","createSelectHandlerForOption","renderOptionsList","dropdownClass","showPlaceholder","Boolean","_jsxs","ref","role","tabIndex","children","_jsx","PlaceHolderOption","SearchBox","messages","focusedOptionId","onClick","slice","map","renderOption","ShowMoreOption","onKeyPress","placeholderOption","SeparatorOption","HeaderOption","separatorOption","headerOption","isActive","isFocusedWithKeyboard","getIndexWithoutHeadersForIndexWithHeaders","Option","sum","currentIndex","hasActiveOptions","onKeyDown","onTouchMove","Button","htmlType","type","priority","Chevron","Drawer","headerTitle","onClose","BottomSheet","Panel","flip","altAxis","anchorRef","anchorWidth","position","Position","TOP","BOTTOM","propTypes","PropTypes","bool","dropdownRight","oneOf","shape","any","isRequired","node","icon","oneOfType","func","arrayOf","objectOf","object","defaultProps"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.js","sources":["../../../src/select/option/Option.tsx"],"sourcesContent":["import { IdIconProps } from '@transferwise/icons';\nimport { Flag } from '@wise/art';\nimport classNames from 'classnames';\nimport { cloneElement, ReactElement, ReactNode } from 'react';\n\nimport Body from '../../body';\nimport { Typography } from '../../common';\n\nexport type Props<T> = {\n label: ReactNode;\n value: T;\n currency?: string;\n note?: ReactNode;\n secondary?: ReactNode;\n icon?: ReactNode;\n /** @deprecated */\n classNames?: Record<string, string>;\n selected?: boolean;\n};\n\nfunction Option<T>({\n label,\n currency = '',\n note = '',\n secondary = '',\n icon,\n selected = false,\n}: Props<T>) {\n const iconElement = icon\n ? cloneElement(icon as ReactElement<IdIconProps>, {\n size: 24,\n className: 'tw-icon',\n })\n : currency && <Flag code={currency.toLowerCase()} intrinsicSize={24} />;\n\n const titleAndNoteElement = (\n <Body as=\"span\" type={Typography.BODY_LARGE} className={selected ? 'text-ellipsis' : undefined}>\n {label}\n {note && (\n <Body as=\"span\" className=\"m-l-1\">\n {note}\n </Body>\n )}\n </Body>\n );\n\n const secondaryElement = secondary && (\n <Body className={classNames(selected && 'text-ellipsis')}>{secondary}</Body>\n );\n\n return iconElement ? (\n <div className=\"d-flex np-option-content\">\n <div className={`d-flex flex-column${selected ? ' justify-content-center' : ''}`}>\n {iconElement}\n </div>\n <div className=\"d-flex flex-column justify-content-center\">\n {titleAndNoteElement}\n {secondaryElement}\n </div>\n </div>\n ) : (\n <>\n {iconElement}\n {titleAndNoteElement}\n {secondaryElement}\n </>\n );\n}\n\nexport default Option;\n"],"names":["Option","label","currency","note","secondary","icon","selected","iconElement","cloneElement","size","className","_jsx","Flag","code","toLowerCase","intrinsicSize","titleAndNoteElement","_jsxs","Body","as","type","Typography","BODY_LARGE","undefined","children","secondaryElement","classNames","_Fragment"],"mappings":";;;;;;;;;;;;;AAoBA,SAASA,MAAMA,CAAI;EACjBC,KAAK;AACLC,EAAAA,QAAQ,GAAG,EAAE;AACbC,EAAAA,IAAI,GAAG,EAAE;AACTC,EAAAA,SAAS,GAAG,EAAE;EACdC,IAAI;AACJC,EAAAA,QAAQ,GAAG,KAAA;AACF,CAAA,EAAA;AACT,EAAA,MAAMC,WAAW,GAAGF,IAAI,gBACpBG,kBAAY,CAACH,IAAiC,EAAE;AAC9CI,IAAAA,IAAI,EAAE,EAAE;AACRC,IAAAA,SAAS,EAAE,SAAA;GACZ,CAAC,GACFR,QAAQ,iBAAIS,cAAA,CAACC,QAAI,EAAA;AAACC,IAAAA,IAAI,EAAEX,QAAQ,CAACY,WAAW,EAAG;AAACC,IAAAA,aAAa,EAAE,EAAA;AAAG,GAAA,CAAG,CAAA;AAEzE,EAAA,MAAMC,mBAAmB,gBACvBC,eAAA,CAACC,IAAI,EAAA;AAACC,IAAAA,EAAE,EAAC,MAAM;IAACC,IAAI,EAAEC,qBAAU,CAACC,UAAW;AAACZ,IAAAA,SAAS,EAAEJ,QAAQ,GAAG,eAAe,GAAGiB,SAAU;AAAAC,IAAAA,QAAA,GAC5FvB,KAAK,EACLE,IAAI,iBACHQ,cAAA,CAACO,IAAI,EAAA;AAACC,MAAAA,EAAE,EAAC,MAAM;AAACT,MAAAA,SAAS,EAAC,OAAO;AAAAc,MAAAA,QAAA,EAC9BrB,IAAAA;AAAI,KACD,CACP,CAAA;AAAA,GACG,CACP,CAAA;AAED,EAAA,MAAMsB,gBAAgB,GAAGrB,SAAS,iBAChCO,cAAA,CAACO,IAAI,EAAA;AAACR,IAAAA,SAAS,EAAEgB,2BAAU,CAACpB,QAAQ,IAAI,eAAe,CAAE;AAAAkB,IAAAA,QAAA,EAAEpB,SAAAA;AAAS,GAAO,CAC5E,CAAA;EAED,OAAOG,WAAW,gBAChBU,eAAA,CAAA,KAAA,EAAA;AAAKP,IAAAA,SAAS,EAAC,0BAA0B;AAAAc,IAAAA,QAAA,gBACvCb,cAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,
|
|
1
|
+
{"version":3,"file":"Option.js","sources":["../../../src/select/option/Option.tsx"],"sourcesContent":["import { IdIconProps } from '@transferwise/icons';\nimport { Flag } from '@wise/art';\nimport classNames from 'classnames';\nimport { cloneElement, ReactElement, ReactNode } from 'react';\n\nimport Body from '../../body';\nimport { Typography } from '../../common';\n\nexport type Props<T> = {\n label: ReactNode;\n value: T;\n currency?: string;\n note?: ReactNode;\n secondary?: ReactNode;\n icon?: ReactNode;\n /** @deprecated */\n classNames?: Record<string, string>;\n selected?: boolean;\n};\n\nfunction Option<T>({\n label,\n currency = '',\n note = '',\n secondary = '',\n icon,\n selected = false,\n}: Props<T>) {\n const iconElement = icon\n ? cloneElement(icon as ReactElement<IdIconProps>, {\n size: 24,\n className: 'tw-icon',\n })\n : currency && <Flag code={currency.toLowerCase()} intrinsicSize={24} />;\n\n const titleAndNoteElement = (\n <Body as=\"span\" type={Typography.BODY_LARGE} className={selected ? 'text-ellipsis' : undefined}>\n {label}\n {note && (\n <Body as=\"span\" className=\"m-l-1\">\n {note}\n </Body>\n )}\n </Body>\n );\n\n const secondaryElement = secondary && (\n <Body className={classNames(selected && 'text-ellipsis')}>{secondary}</Body>\n );\n\n return iconElement ? (\n <div className=\"d-flex np-option-content\">\n <div className={`d-flex flex-column${selected ? ' justify-content-center' : ''}`}>\n {iconElement}\n </div>\n <div className=\"d-flex flex-column justify-content-center\">\n {titleAndNoteElement}\n {secondaryElement}\n </div>\n </div>\n ) : (\n <>\n {iconElement}\n {titleAndNoteElement}\n {secondaryElement}\n </>\n );\n}\n\nexport default Option;\n"],"names":["Option","label","currency","note","secondary","icon","selected","iconElement","cloneElement","size","className","_jsx","Flag","code","toLowerCase","intrinsicSize","titleAndNoteElement","_jsxs","Body","as","type","Typography","BODY_LARGE","undefined","children","secondaryElement","classNames","_Fragment"],"mappings":";;;;;;;;;;;;;AAoBA,SAASA,MAAMA,CAAI;EACjBC,KAAK;AACLC,EAAAA,QAAQ,GAAG,EAAE;AACbC,EAAAA,IAAI,GAAG,EAAE;AACTC,EAAAA,SAAS,GAAG,EAAE;EACdC,IAAI;AACJC,EAAAA,QAAQ,GAAG,KAAA;AACF,CAAA,EAAA;AACT,EAAA,MAAMC,WAAW,GAAGF,IAAI,gBACpBG,kBAAY,CAACH,IAAiC,EAAE;AAC9CI,IAAAA,IAAI,EAAE,EAAE;AACRC,IAAAA,SAAS,EAAE,SAAA;GACZ,CAAC,GACFR,QAAQ,iBAAIS,cAAA,CAACC,QAAI,EAAA;AAACC,IAAAA,IAAI,EAAEX,QAAQ,CAACY,WAAW,EAAG;AAACC,IAAAA,aAAa,EAAE,EAAA;AAAG,GAAA,CAAG,CAAA;AAEzE,EAAA,MAAMC,mBAAmB,gBACvBC,eAAA,CAACC,IAAI,EAAA;AAACC,IAAAA,EAAE,EAAC,MAAM;IAACC,IAAI,EAAEC,qBAAU,CAACC,UAAW;AAACZ,IAAAA,SAAS,EAAEJ,QAAQ,GAAG,eAAe,GAAGiB,SAAU;AAAAC,IAAAA,QAAA,GAC5FvB,KAAK,EACLE,IAAI,iBACHQ,cAAA,CAACO,IAAI,EAAA;AAACC,MAAAA,EAAE,EAAC,MAAM;AAACT,MAAAA,SAAS,EAAC,OAAO;AAAAc,MAAAA,QAAA,EAC9BrB,IAAAA;AAAI,KACD,CACP,CAAA;AAAA,GACG,CACP,CAAA;AAED,EAAA,MAAMsB,gBAAgB,GAAGrB,SAAS,iBAChCO,cAAA,CAACO,IAAI,EAAA;AAACR,IAAAA,SAAS,EAAEgB,2BAAU,CAACpB,QAAQ,IAAI,eAAe,CAAE;AAAAkB,IAAAA,QAAA,EAAEpB,SAAAA;AAAS,GAAO,CAC5E,CAAA;EAED,OAAOG,WAAW,gBAChBU,eAAA,CAAA,KAAA,EAAA;AAAKP,IAAAA,SAAS,EAAC,0BAA0B;AAAAc,IAAAA,QAAA,gBACvCb,cAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,EAAE,CAAqBJ,kBAAAA,EAAAA,QAAQ,GAAG,yBAAyB,GAAG,EAAE,CAAG,CAAA;AAAAkB,MAAAA,QAAA,EAC9EjB,WAAAA;KACE,CACL,eAAAU,eAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAC,2CAA2C;MAAAc,QAAA,EAAA,CACvDR,mBAAmB,EACnBS,gBAAgB,CAAA;AAAA,KACd,CACP,CAAA;AAAA,GAAK,CAAC,gBAENR,eAAA,CAAAU,mBAAA,EAAA;AAAAH,IAAAA,QAAA,EACGjB,CAAAA,WAAW,EACXS,mBAAmB,EACnBS,gBAAgB,CAAA;AAAA,GACnB,CACD,CAAA;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.mjs","sources":["../../../src/select/option/Option.tsx"],"sourcesContent":["import { IdIconProps } from '@transferwise/icons';\nimport { Flag } from '@wise/art';\nimport classNames from 'classnames';\nimport { cloneElement, ReactElement, ReactNode } from 'react';\n\nimport Body from '../../body';\nimport { Typography } from '../../common';\n\nexport type Props<T> = {\n label: ReactNode;\n value: T;\n currency?: string;\n note?: ReactNode;\n secondary?: ReactNode;\n icon?: ReactNode;\n /** @deprecated */\n classNames?: Record<string, string>;\n selected?: boolean;\n};\n\nfunction Option<T>({\n label,\n currency = '',\n note = '',\n secondary = '',\n icon,\n selected = false,\n}: Props<T>) {\n const iconElement = icon\n ? cloneElement(icon as ReactElement<IdIconProps>, {\n size: 24,\n className: 'tw-icon',\n })\n : currency && <Flag code={currency.toLowerCase()} intrinsicSize={24} />;\n\n const titleAndNoteElement = (\n <Body as=\"span\" type={Typography.BODY_LARGE} className={selected ? 'text-ellipsis' : undefined}>\n {label}\n {note && (\n <Body as=\"span\" className=\"m-l-1\">\n {note}\n </Body>\n )}\n </Body>\n );\n\n const secondaryElement = secondary && (\n <Body className={classNames(selected && 'text-ellipsis')}>{secondary}</Body>\n );\n\n return iconElement ? (\n <div className=\"d-flex np-option-content\">\n <div className={`d-flex flex-column${selected ? ' justify-content-center' : ''}`}>\n {iconElement}\n </div>\n <div className=\"d-flex flex-column justify-content-center\">\n {titleAndNoteElement}\n {secondaryElement}\n </div>\n </div>\n ) : (\n <>\n {iconElement}\n {titleAndNoteElement}\n {secondaryElement}\n </>\n );\n}\n\nexport default Option;\n"],"names":["Option","label","currency","note","secondary","icon","selected","iconElement","cloneElement","size","className","_jsx","Flag","code","toLowerCase","intrinsicSize","titleAndNoteElement","_jsxs","Body","as","type","Typography","BODY_LARGE","undefined","children","secondaryElement","classNames","_Fragment"],"mappings":";;;;;;;AAoBA,SAASA,MAAMA,CAAI;EACjBC,KAAK;AACLC,EAAAA,QAAQ,GAAG,EAAE;AACbC,EAAAA,IAAI,GAAG,EAAE;AACTC,EAAAA,SAAS,GAAG,EAAE;EACdC,IAAI;AACJC,EAAAA,QAAQ,GAAG,KAAA;AACF,CAAA,EAAA;AACT,EAAA,MAAMC,WAAW,GAAGF,IAAI,gBACpBG,YAAY,CAACH,IAAiC,EAAE;AAC9CI,IAAAA,IAAI,EAAE,EAAE;AACRC,IAAAA,SAAS,EAAE,SAAA;GACZ,CAAC,GACFR,QAAQ,iBAAIS,GAAA,CAACC,IAAI,EAAA;AAACC,IAAAA,IAAI,EAAEX,QAAQ,CAACY,WAAW,EAAG;AAACC,IAAAA,aAAa,EAAE,EAAA;AAAG,GAAA,CAAG,CAAA;AAEzE,EAAA,MAAMC,mBAAmB,gBACvBC,IAAA,CAACC,IAAI,EAAA;AAACC,IAAAA,EAAE,EAAC,MAAM;IAACC,IAAI,EAAEC,UAAU,CAACC,UAAW;AAACZ,IAAAA,SAAS,EAAEJ,QAAQ,GAAG,eAAe,GAAGiB,SAAU;AAAAC,IAAAA,QAAA,GAC5FvB,KAAK,EACLE,IAAI,iBACHQ,GAAA,CAACO,IAAI,EAAA;AAACC,MAAAA,EAAE,EAAC,MAAM;AAACT,MAAAA,SAAS,EAAC,OAAO;AAAAc,MAAAA,QAAA,EAC9BrB,IAAAA;AAAI,KACD,CACP,CAAA;AAAA,GACG,CACP,CAAA;AAED,EAAA,MAAMsB,gBAAgB,GAAGrB,SAAS,iBAChCO,GAAA,CAACO,IAAI,EAAA;AAACR,IAAAA,SAAS,EAAEgB,UAAU,CAACpB,QAAQ,IAAI,eAAe,CAAE;AAAAkB,IAAAA,QAAA,EAAEpB,SAAAA;AAAS,GAAO,CAC5E,CAAA;EAED,OAAOG,WAAW,gBAChBU,IAAA,CAAA,KAAA,EAAA;AAAKP,IAAAA,SAAS,EAAC,0BAA0B;AAAAc,IAAAA,QAAA,gBACvCb,GAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,
|
|
1
|
+
{"version":3,"file":"Option.mjs","sources":["../../../src/select/option/Option.tsx"],"sourcesContent":["import { IdIconProps } from '@transferwise/icons';\nimport { Flag } from '@wise/art';\nimport classNames from 'classnames';\nimport { cloneElement, ReactElement, ReactNode } from 'react';\n\nimport Body from '../../body';\nimport { Typography } from '../../common';\n\nexport type Props<T> = {\n label: ReactNode;\n value: T;\n currency?: string;\n note?: ReactNode;\n secondary?: ReactNode;\n icon?: ReactNode;\n /** @deprecated */\n classNames?: Record<string, string>;\n selected?: boolean;\n};\n\nfunction Option<T>({\n label,\n currency = '',\n note = '',\n secondary = '',\n icon,\n selected = false,\n}: Props<T>) {\n const iconElement = icon\n ? cloneElement(icon as ReactElement<IdIconProps>, {\n size: 24,\n className: 'tw-icon',\n })\n : currency && <Flag code={currency.toLowerCase()} intrinsicSize={24} />;\n\n const titleAndNoteElement = (\n <Body as=\"span\" type={Typography.BODY_LARGE} className={selected ? 'text-ellipsis' : undefined}>\n {label}\n {note && (\n <Body as=\"span\" className=\"m-l-1\">\n {note}\n </Body>\n )}\n </Body>\n );\n\n const secondaryElement = secondary && (\n <Body className={classNames(selected && 'text-ellipsis')}>{secondary}</Body>\n );\n\n return iconElement ? (\n <div className=\"d-flex np-option-content\">\n <div className={`d-flex flex-column${selected ? ' justify-content-center' : ''}`}>\n {iconElement}\n </div>\n <div className=\"d-flex flex-column justify-content-center\">\n {titleAndNoteElement}\n {secondaryElement}\n </div>\n </div>\n ) : (\n <>\n {iconElement}\n {titleAndNoteElement}\n {secondaryElement}\n </>\n );\n}\n\nexport default Option;\n"],"names":["Option","label","currency","note","secondary","icon","selected","iconElement","cloneElement","size","className","_jsx","Flag","code","toLowerCase","intrinsicSize","titleAndNoteElement","_jsxs","Body","as","type","Typography","BODY_LARGE","undefined","children","secondaryElement","classNames","_Fragment"],"mappings":";;;;;;;AAoBA,SAASA,MAAMA,CAAI;EACjBC,KAAK;AACLC,EAAAA,QAAQ,GAAG,EAAE;AACbC,EAAAA,IAAI,GAAG,EAAE;AACTC,EAAAA,SAAS,GAAG,EAAE;EACdC,IAAI;AACJC,EAAAA,QAAQ,GAAG,KAAA;AACF,CAAA,EAAA;AACT,EAAA,MAAMC,WAAW,GAAGF,IAAI,gBACpBG,YAAY,CAACH,IAAiC,EAAE;AAC9CI,IAAAA,IAAI,EAAE,EAAE;AACRC,IAAAA,SAAS,EAAE,SAAA;GACZ,CAAC,GACFR,QAAQ,iBAAIS,GAAA,CAACC,IAAI,EAAA;AAACC,IAAAA,IAAI,EAAEX,QAAQ,CAACY,WAAW,EAAG;AAACC,IAAAA,aAAa,EAAE,EAAA;AAAG,GAAA,CAAG,CAAA;AAEzE,EAAA,MAAMC,mBAAmB,gBACvBC,IAAA,CAACC,IAAI,EAAA;AAACC,IAAAA,EAAE,EAAC,MAAM;IAACC,IAAI,EAAEC,UAAU,CAACC,UAAW;AAACZ,IAAAA,SAAS,EAAEJ,QAAQ,GAAG,eAAe,GAAGiB,SAAU;AAAAC,IAAAA,QAAA,GAC5FvB,KAAK,EACLE,IAAI,iBACHQ,GAAA,CAACO,IAAI,EAAA;AAACC,MAAAA,EAAE,EAAC,MAAM;AAACT,MAAAA,SAAS,EAAC,OAAO;AAAAc,MAAAA,QAAA,EAC9BrB,IAAAA;AAAI,KACD,CACP,CAAA;AAAA,GACG,CACP,CAAA;AAED,EAAA,MAAMsB,gBAAgB,GAAGrB,SAAS,iBAChCO,GAAA,CAACO,IAAI,EAAA;AAACR,IAAAA,SAAS,EAAEgB,UAAU,CAACpB,QAAQ,IAAI,eAAe,CAAE;AAAAkB,IAAAA,QAAA,EAAEpB,SAAAA;AAAS,GAAO,CAC5E,CAAA;EAED,OAAOG,WAAW,gBAChBU,IAAA,CAAA,KAAA,EAAA;AAAKP,IAAAA,SAAS,EAAC,0BAA0B;AAAAc,IAAAA,QAAA,gBACvCb,GAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,EAAE,CAAqBJ,kBAAAA,EAAAA,QAAQ,GAAG,yBAAyB,GAAG,EAAE,CAAG,CAAA;AAAAkB,MAAAA,QAAA,EAC9EjB,WAAAA;KACE,CACL,eAAAU,IAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAC,2CAA2C;MAAAc,QAAA,EAAA,CACvDR,mBAAmB,EACnBS,gBAAgB,CAAA;AAAA,KACd,CACP,CAAA;AAAA,GAAK,CAAC,gBAENR,IAAA,CAAAU,QAAA,EAAA;AAAAH,IAAAA,QAAA,EACGjB,CAAAA,WAAW,EACXS,mBAAmB,EACnBS,gBAAgB,CAAA;AAAA,GACnB,CACD,CAAA;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchBox.js","sources":["../../../src/select/searchBox/SearchBox.tsx"],"sourcesContent":["import { Search as SearchIcon } from '@transferwise/icons';\nimport classnames from 'classnames';\nimport { forwardRef, InputHTMLAttributes } from 'react';\n\nimport { Input } from '../../inputs/Input';\n\ntype Props = {\n id?: string;\n classNames?: Record<string, string>;\n focusedOptionId?: string;\n} & Pick<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onClick' | 'placeholder' | 'value'>;\n\nconst SearchBox = forwardRef<HTMLInputElement, Props>(\n (\n {\n id,\n classNames = {},\n focusedOptionId,\n onChange,\n onClick,\n placeholder = undefined,\n value = '',\n },\n reference,\n ) => {\n const style = (className: string) => classNames[className] || className;\n return (\n <li className={style('border-bottom')}>\n <a className={`${style('np-select-filter-link')} ${style('p-a-0')}`}>\n <div className={style('input-group')}>\n <span className={classnames('input-group-addon', 'input-group-addon--search')}>\n <SearchIcon\n className={classnames(style('tw-icon'), style('tw-icon-search'))}\n size={24}\n />\n </span>\n <Input\n ref={reference}\n id={id}\n role=\"searchbox\"\n inputMode=\"search\"\n className={classnames(style('np-select-filter'))}\n placeholder={placeholder}\n value={value}\n spellCheck=\"false\"\n aria-activedescendant={focusedOptionId}\n onChange={onChange}\n onClick={onClick}\n />\n </div>\n </a>\n </li>\n );\n },\n);\n\nexport default SearchBox;\n"],"names":["SearchBox","forwardRef","id","classNames","focusedOptionId","onChange","onClick","placeholder","undefined","value","reference","style","className","_jsx","children","_jsxs","classnames","SearchIcon","size","Input","ref","role","inputMode","spellCheck"],"mappings":";;;;;;;;;;;;AAYA,MAAMA,SAAS,gBAAGC,gBAAU,CAC1B,CACE;EACEC,EAAE;EACFC,UAAU,GAAG,EAAE;EACfC,eAAe;EACfC,QAAQ;EACRC,OAAO;AACPC,EAAAA,WAAW,GAAGC,SAAS;AACvBC,EAAAA,KAAK,GAAG,EAAA;AAAE,CACX,EACDC,SAAS,KACP;EACF,MAAMC,KAAK,GAAIC,SAAiB,IAAKT,UAAU,CAACS,SAAS,CAAC,IAAIA,SAAS,CAAA;AACvE,EAAA,oBACEC,cAAA,CAAA,IAAA,EAAA;AAAID,IAAAA,SAAS,EAAED,KAAK,CAAC,eAAe,CAAE;AAAAG,IAAAA,QAAA,eACpCD,cAAA,CAAA,GAAA,EAAA;MAAGD,SAAS,
|
|
1
|
+
{"version":3,"file":"SearchBox.js","sources":["../../../src/select/searchBox/SearchBox.tsx"],"sourcesContent":["import { Search as SearchIcon } from '@transferwise/icons';\nimport classnames from 'classnames';\nimport { forwardRef, InputHTMLAttributes } from 'react';\n\nimport { Input } from '../../inputs/Input';\n\ntype Props = {\n id?: string;\n classNames?: Record<string, string>;\n focusedOptionId?: string;\n} & Pick<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onClick' | 'placeholder' | 'value'>;\n\nconst SearchBox = forwardRef<HTMLInputElement, Props>(\n (\n {\n id,\n classNames = {},\n focusedOptionId,\n onChange,\n onClick,\n placeholder = undefined,\n value = '',\n },\n reference,\n ) => {\n const style = (className: string) => classNames[className] || className;\n return (\n <li className={style('border-bottom')}>\n <a className={`${style('np-select-filter-link')} ${style('p-a-0')}`}>\n <div className={style('input-group')}>\n <span className={classnames('input-group-addon', 'input-group-addon--search')}>\n <SearchIcon\n className={classnames(style('tw-icon'), style('tw-icon-search'))}\n size={24}\n />\n </span>\n <Input\n ref={reference}\n id={id}\n role=\"searchbox\"\n inputMode=\"search\"\n className={classnames(style('np-select-filter'))}\n placeholder={placeholder}\n value={value}\n spellCheck=\"false\"\n aria-activedescendant={focusedOptionId}\n onChange={onChange}\n onClick={onClick}\n />\n </div>\n </a>\n </li>\n );\n },\n);\n\nexport default SearchBox;\n"],"names":["SearchBox","forwardRef","id","classNames","focusedOptionId","onChange","onClick","placeholder","undefined","value","reference","style","className","_jsx","children","_jsxs","classnames","SearchIcon","size","Input","ref","role","inputMode","spellCheck"],"mappings":";;;;;;;;;;;;AAYA,MAAMA,SAAS,gBAAGC,gBAAU,CAC1B,CACE;EACEC,EAAE;EACFC,UAAU,GAAG,EAAE;EACfC,eAAe;EACfC,QAAQ;EACRC,OAAO;AACPC,EAAAA,WAAW,GAAGC,SAAS;AACvBC,EAAAA,KAAK,GAAG,EAAA;AAAE,CACX,EACDC,SAAS,KACP;EACF,MAAMC,KAAK,GAAIC,SAAiB,IAAKT,UAAU,CAACS,SAAS,CAAC,IAAIA,SAAS,CAAA;AACvE,EAAA,oBACEC,cAAA,CAAA,IAAA,EAAA;AAAID,IAAAA,SAAS,EAAED,KAAK,CAAC,eAAe,CAAE;AAAAG,IAAAA,QAAA,eACpCD,cAAA,CAAA,GAAA,EAAA;MAAGD,SAAS,EAAE,CAAGD,EAAAA,KAAK,CAAC,uBAAuB,CAAC,CAAA,CAAA,EAAIA,KAAK,CAAC,OAAO,CAAC,CAAG,CAAA;AAAAG,MAAAA,QAAA,eAClEC,eAAA,CAAA,KAAA,EAAA;AAAKH,QAAAA,SAAS,EAAED,KAAK,CAAC,aAAa,CAAE;AAAAG,QAAAA,QAAA,gBACnCD,cAAA,CAAA,MAAA,EAAA;AAAMD,UAAAA,SAAS,EAAEI,2BAAU,CAAC,mBAAmB,EAAE,2BAA2B,CAAE;UAAAF,QAAA,eAC5ED,cAAA,CAACI,YAAU,EAAA;AACTL,YAAAA,SAAS,EAAEI,2BAAU,CAACL,KAAK,CAAC,SAAS,CAAC,EAAEA,KAAK,CAAC,gBAAgB,CAAC,CAAE;AACjEO,YAAAA,IAAI,EAAE,EAAA;WAEV,CAAA;AAAA,SAAM,CACN,eAAAL,cAAA,CAACM,WAAK,EAAA;AACJC,UAAAA,GAAG,EAAEV,SAAU;AACfR,UAAAA,EAAE,EAAEA,EAAG;AACPmB,UAAAA,IAAI,EAAC,WAAW;AAChBC,UAAAA,SAAS,EAAC,QAAQ;AAClBV,UAAAA,SAAS,EAAEI,2BAAU,CAACL,KAAK,CAAC,kBAAkB,CAAC,CAAE;AACjDJ,UAAAA,WAAW,EAAEA,WAAY;AACzBE,UAAAA,KAAK,EAAEA,KAAM;AACbc,UAAAA,UAAU,EAAC,OAAO;AAClB,UAAA,uBAAA,EAAuBnB,eAAgB;AACvCC,UAAAA,QAAQ,EAAEA,QAAS;AACnBC,UAAAA,OAAO,EAAEA,OAAAA;AAAQ,SAErB,CAAA,CAAA;OAAK,CAAA;KACJ,CAAA;AACL,GAAI,CAAC,CAAA;AAET,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchBox.mjs","sources":["../../../src/select/searchBox/SearchBox.tsx"],"sourcesContent":["import { Search as SearchIcon } from '@transferwise/icons';\nimport classnames from 'classnames';\nimport { forwardRef, InputHTMLAttributes } from 'react';\n\nimport { Input } from '../../inputs/Input';\n\ntype Props = {\n id?: string;\n classNames?: Record<string, string>;\n focusedOptionId?: string;\n} & Pick<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onClick' | 'placeholder' | 'value'>;\n\nconst SearchBox = forwardRef<HTMLInputElement, Props>(\n (\n {\n id,\n classNames = {},\n focusedOptionId,\n onChange,\n onClick,\n placeholder = undefined,\n value = '',\n },\n reference,\n ) => {\n const style = (className: string) => classNames[className] || className;\n return (\n <li className={style('border-bottom')}>\n <a className={`${style('np-select-filter-link')} ${style('p-a-0')}`}>\n <div className={style('input-group')}>\n <span className={classnames('input-group-addon', 'input-group-addon--search')}>\n <SearchIcon\n className={classnames(style('tw-icon'), style('tw-icon-search'))}\n size={24}\n />\n </span>\n <Input\n ref={reference}\n id={id}\n role=\"searchbox\"\n inputMode=\"search\"\n className={classnames(style('np-select-filter'))}\n placeholder={placeholder}\n value={value}\n spellCheck=\"false\"\n aria-activedescendant={focusedOptionId}\n onChange={onChange}\n onClick={onClick}\n />\n </div>\n </a>\n </li>\n );\n },\n);\n\nexport default SearchBox;\n"],"names":["SearchBox","forwardRef","id","classNames","focusedOptionId","onChange","onClick","placeholder","undefined","value","reference","style","className","_jsx","children","_jsxs","classnames","SearchIcon","size","Input","ref","role","inputMode","spellCheck"],"mappings":";;;;;;AAYA,MAAMA,SAAS,gBAAGC,UAAU,CAC1B,CACE;EACEC,EAAE;cACFC,YAAU,GAAG,EAAE;EACfC,eAAe;EACfC,QAAQ;EACRC,OAAO;AACPC,EAAAA,WAAW,GAAGC,SAAS;AACvBC,EAAAA,KAAK,GAAG,EAAA;AAAE,CACX,EACDC,SAAS,KACP;EACF,MAAMC,KAAK,GAAIC,SAAiB,IAAKT,YAAU,CAACS,SAAS,CAAC,IAAIA,SAAS,CAAA;AACvE,EAAA,oBACEC,GAAA,CAAA,IAAA,EAAA;AAAID,IAAAA,SAAS,EAAED,KAAK,CAAC,eAAe,CAAE;AAAAG,IAAAA,QAAA,eACpCD,GAAA,CAAA,GAAA,EAAA;MAAGD,SAAS,
|
|
1
|
+
{"version":3,"file":"SearchBox.mjs","sources":["../../../src/select/searchBox/SearchBox.tsx"],"sourcesContent":["import { Search as SearchIcon } from '@transferwise/icons';\nimport classnames from 'classnames';\nimport { forwardRef, InputHTMLAttributes } from 'react';\n\nimport { Input } from '../../inputs/Input';\n\ntype Props = {\n id?: string;\n classNames?: Record<string, string>;\n focusedOptionId?: string;\n} & Pick<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onClick' | 'placeholder' | 'value'>;\n\nconst SearchBox = forwardRef<HTMLInputElement, Props>(\n (\n {\n id,\n classNames = {},\n focusedOptionId,\n onChange,\n onClick,\n placeholder = undefined,\n value = '',\n },\n reference,\n ) => {\n const style = (className: string) => classNames[className] || className;\n return (\n <li className={style('border-bottom')}>\n <a className={`${style('np-select-filter-link')} ${style('p-a-0')}`}>\n <div className={style('input-group')}>\n <span className={classnames('input-group-addon', 'input-group-addon--search')}>\n <SearchIcon\n className={classnames(style('tw-icon'), style('tw-icon-search'))}\n size={24}\n />\n </span>\n <Input\n ref={reference}\n id={id}\n role=\"searchbox\"\n inputMode=\"search\"\n className={classnames(style('np-select-filter'))}\n placeholder={placeholder}\n value={value}\n spellCheck=\"false\"\n aria-activedescendant={focusedOptionId}\n onChange={onChange}\n onClick={onClick}\n />\n </div>\n </a>\n </li>\n );\n },\n);\n\nexport default SearchBox;\n"],"names":["SearchBox","forwardRef","id","classNames","focusedOptionId","onChange","onClick","placeholder","undefined","value","reference","style","className","_jsx","children","_jsxs","classnames","SearchIcon","size","Input","ref","role","inputMode","spellCheck"],"mappings":";;;;;;AAYA,MAAMA,SAAS,gBAAGC,UAAU,CAC1B,CACE;EACEC,EAAE;cACFC,YAAU,GAAG,EAAE;EACfC,eAAe;EACfC,QAAQ;EACRC,OAAO;AACPC,EAAAA,WAAW,GAAGC,SAAS;AACvBC,EAAAA,KAAK,GAAG,EAAA;AAAE,CACX,EACDC,SAAS,KACP;EACF,MAAMC,KAAK,GAAIC,SAAiB,IAAKT,YAAU,CAACS,SAAS,CAAC,IAAIA,SAAS,CAAA;AACvE,EAAA,oBACEC,GAAA,CAAA,IAAA,EAAA;AAAID,IAAAA,SAAS,EAAED,KAAK,CAAC,eAAe,CAAE;AAAAG,IAAAA,QAAA,eACpCD,GAAA,CAAA,GAAA,EAAA;MAAGD,SAAS,EAAE,CAAGD,EAAAA,KAAK,CAAC,uBAAuB,CAAC,CAAA,CAAA,EAAIA,KAAK,CAAC,OAAO,CAAC,CAAG,CAAA;AAAAG,MAAAA,QAAA,eAClEC,IAAA,CAAA,KAAA,EAAA;AAAKH,QAAAA,SAAS,EAAED,KAAK,CAAC,aAAa,CAAE;AAAAG,QAAAA,QAAA,gBACnCD,GAAA,CAAA,MAAA,EAAA;AAAMD,UAAAA,SAAS,EAAEI,UAAU,CAAC,mBAAmB,EAAE,2BAA2B,CAAE;UAAAF,QAAA,eAC5ED,GAAA,CAACI,MAAU,EAAA;AACTL,YAAAA,SAAS,EAAEI,UAAU,CAACL,KAAK,CAAC,SAAS,CAAC,EAAEA,KAAK,CAAC,gBAAgB,CAAC,CAAE;AACjEO,YAAAA,IAAI,EAAE,EAAA;WAEV,CAAA;AAAA,SAAM,CACN,eAAAL,GAAA,CAACM,KAAK,EAAA;AACJC,UAAAA,GAAG,EAAEV,SAAU;AACfR,UAAAA,EAAE,EAAEA,EAAG;AACPmB,UAAAA,IAAI,EAAC,WAAW;AAChBC,UAAAA,SAAS,EAAC,QAAQ;AAClBV,UAAAA,SAAS,EAAEI,UAAU,CAACL,KAAK,CAAC,kBAAkB,CAAC,CAAE;AACjDJ,UAAAA,WAAW,EAAEA,WAAY;AACzBE,UAAAA,KAAK,EAAEA,KAAM;AACbc,UAAAA,UAAU,EAAC,OAAO;AAClB,UAAA,uBAAA,EAAuBnB,eAAgB;AACvCC,UAAAA,QAAQ,EAAEA,QAAS;AACnBC,UAAAA,OAAO,EAAEA,OAAAA;AAAQ,SAErB,CAAA,CAAA;OAAK,CAAA;KACJ,CAAA;AACL,GAAI,CAAC,CAAA;AAET,CAAC;;;;"}
|