linear-react-components-ui 2.0.1-beta.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -109,8 +109,8 @@ const InputBase = forwardRef((props, ref) => {
|
|
|
109
109
|
}
|
|
110
110
|
}, [listBoxOpen]);
|
|
111
111
|
useEffect(() => {
|
|
112
|
+
if (props?.value && !isMultipleSelect) setActiveDescendant(props?.value);
|
|
112
113
|
if (!isMultipleWithCheckboxes && !props?.value) setInputValue("");
|
|
113
|
-
if (!props?.value || document.activeElement === selectInputRef.current) return;
|
|
114
114
|
const lazyInputValue = listOptionsMap.get(rest.value);
|
|
115
115
|
if (!isMultipleWithCheckboxes) setInputValue(lazyInputValue ?? "");
|
|
116
116
|
if (isMultipleWithCheckboxes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sources":["../../../src/lib/inputs2/selectfield/base.tsx"],"sourcesContent":["import '../../assets/styles/selectfield.scss';\n\nimport {\n Children, cloneElement, forwardRef, Fragment, isValidElement, useEffect,\n useId, useMemo, useRef, useState, type ChangeEvent, type ClipboardEvent,\n type FocusEvent, type InputEvent, type KeyboardEvent, type ReactNode,\n type MouseEvent, \n} from 'react';\nimport _ from 'lodash';\nimport { createPortal } from 'react-dom';\nimport Hint from '../../hint';\nimport Popover, { PopoverText } from '../../popover';\nimport { Tooltip } from '../../tooltip';\nimport { mergeRefs } from '../../form2/helpers';\nimport { LeftSlot, RightSlot, type SlotProps } from '../slot';\nimport { ListBox } from './listbox';\nimport { Triggers } from './triggers';\nimport { Selections } from './selections';\nimport { SelectFieldContext } from './context';\nimport { Options, type OptionsProps } from './options';\nimport { Item, type SelectFieldItemProps } from './item';\nimport { Keys, MultipleVariantEnum, SelectFieldInputBaseProps } from './types';\nimport { isTypingKey, NAVIGATION_KEYS, scrollListBoxToElement } from './helpers';\n\nexport const InputBase = forwardRef<HTMLInputElement, SelectFieldInputBaseProps>(\n (props, ref) => {\n const {\n name, label, errors, children, onChange, tooltip, tooltipPosition, tooltipWidth, hintPosition = 'below',\n themePopover = 'light', popoverAlign = 'left', skeletonize = false, striped = false, undigitable = false, externalSearch = false,\n openDropdownOnFocus = true, showClearButton = true, textAlign = 'left', searchOnDropdown = false, onSearch = undefined,\n customClass = '', customClassLabel = '', customClassWrapper = '', customClassInputContainer = '',\n notFoundFilterLabel = 'Nenhuma opção encontrada.', multipleInputLabelEmpty = 'Nenhum registro selecionado',\n multipleInputLabelManySelection = 'Múltiplos registros selecionados', searchInputPlaceholder = 'Pesquisar registros',\n dropdownAlignButton = 'left', dropdownMaxWidth = undefined, disabled, readOnly, ...rest\n } = props;\n const SELECT_FIELD_CONTROLS_ID = useId();\n const [inputValue, setInputValue] = useState('');\n const [filterValue, setFilterValue] = useState('');\n const [listBoxOpen, setListBoxOpen] = useState(false);\n const [activeDescendant, setActiveDescendant] = useState<string | undefined>(undefined);\n const isMultipleDefault = _.isEqual(props?.multiple, MultipleVariantEnum.default);\n const isMultipleWithCheckboxes = _.isEqual(props?.multiple, MultipleVariantEnum.checkboxes);\n const isMultipleSelect = isMultipleDefault || isMultipleWithCheckboxes;\n const liSelectedRef = useRef<HTMLLIElement | null>(null);\n const selectFieldRoot = useRef<HTMLDivElement | null>(null);\n const selectInputRef = useRef<HTMLInputElement | null>(null);\n const selectListBoxRef = useRef<HTMLDivElement | null>(null);\n const selectContainerRef = useRef<HTMLDivElement | null>(null);\n const selectSearchInputRef = useRef<HTMLInputElement | null>(null);\n\n const listOptionsMap = useMemo(() => {\n const optionsMap = new Map<string, string>();\n Children.forEach(children, (child) => {\n if (isValidElement<SelectFieldItemProps>(child)) {\n optionsMap.set(child.props.value, child.props.label);\n }\n });\n return optionsMap;\n }, [children]);\n\n useEffect(() => {\n if (isMultipleWithCheckboxes) {\n setInputValue(multipleInputLabelEmpty);\n }\n }, []);\n\n useEffect(() => {\n if (openDropdownOnFocus && listBoxOpen) {\n if (isMultipleWithCheckboxes) {\n setTimeout(() => { selectSearchInputRef.current?.focus?.(); }, 10);\n }\n }\n\n if (listBoxOpen) {\n /**\n * Scroll automático para o item selecionado na abertura do listbox.\n *\n * Usa requestAnimationFrame para aguardar que o DOM esteja renderizado e que o container\n * tenha dimensões estáveis (clientHeight > 0), já que a animação CSS \"revealelement\"\n * inicia com height: 0%, o que invalida o cálculo de scroll se executado antes.\n *\n * O scroll é feito via scrollListBoxToElement (helpers.ts) que manipula diretamente\n * o scrollTop do <ul>, sem usar scrollIntoView(), evitando propagação indesejada\n * de scroll para containers ancestrais(ex: body).\n */\n let retries = 0;\n const maxRetries = 20;\n const scrollToViewSelectedElement = () => {\n const listBox = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n const currentLiElement = listBox?.querySelector(`li[id=\"${\n _.toString(currentValue)}\"]`) as HTMLLIElement | null;\n if (currentLiElement && listBox) {\n if (listBox.clientHeight > 0) {\n scrollListBoxToElement(listBox, currentLiElement, 'center');\n } else if (retries < maxRetries) {\n retries++;\n requestAnimationFrame(scrollToViewSelectedElement);\n }\n }\n };\n requestAnimationFrame(scrollToViewSelectedElement);\n }\n }, [listBoxOpen]);\n\n useEffect(() => {\n if (!isMultipleWithCheckboxes && !props?.value) setInputValue('');\n if (!props?.value || document.activeElement === selectInputRef.current) return;\n const lazyInputValue = listOptionsMap.get(rest.value);\n if (!isMultipleWithCheckboxes) setInputValue(lazyInputValue ?? '');\n if (isMultipleWithCheckboxes) {\n const firstSelectionLabel = listOptionsMap.get(props?.value[0]);\n switch (_.size(props?.value)) {\n case 0:\n return setInputValue(multipleInputLabelEmpty);\n case 1:\n return setInputValue(firstSelectionLabel ?? '');\n default:\n return setInputValue(multipleInputLabelManySelection);\n }\n }\n }, [props?.value, listOptionsMap]);\n\n const hasLabel = !_.isEmpty(props?.label);\n const hasHintMessages = Boolean(props.hint?.length);\n const hasValidationErrors = Boolean(errors?.length);\n\n const { childrenItems } = useMemo(() => {\n const itens: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<SelectFieldItemProps>(childElement)) {\n const clonedChild = cloneElement(childElement, {\n key: childElement.key ?? `child-item-${index + 1}`,\n });\n if (childElement.type === Item) itens.push(clonedChild);\n }\n });\n\n return { childrenItems: itens };\n }, [children, disabled]);\n\n const { leftSlotElements, rightSlotElements } = useMemo(() => {\n const left: ReactNode[] = [];\n const right: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<SlotProps>(childElement)) {\n const clonedChild = cloneElement(childElement, {\n key: childElement.key ?? `slot-${index}`,\n disabled: disabled,\n 'aria-disabled': disabled,\n });\n if (childElement.type === LeftSlot) left.push(clonedChild);\n if (childElement.type === RightSlot) right.push(clonedChild);\n }\n });\n\n return { leftSlotElements: left, rightSlotElements: right };\n }, [children, disabled]);\n\n const { optionItens } = useMemo(() => {\n const itens: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<OptionsProps>(childElement)) {\n const clonedChildItem = cloneElement(childElement, {\n key: childElement.key ?? `option-list-${index}`,\n disabled: disabled,\n });\n if (childElement.type === Options) itens.push(clonedChildItem);\n }\n });\n\n return { optionItens: itens };\n }, [children, disabled]);\n\n const hasLeftSlotElements = Boolean(leftSlotElements?.length);\n const hasRightSlotElements = Boolean(rightSlotElements?.length);\n\n const handleCloseListBox = () => {\n setListBoxOpen(false);\n setFilterValue('');\n };\n\n const handleOpenListBox = () => {\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n setActiveDescendant(_.toString(currentValue) ?? undefined);\n };\n\n const handleChangeListBoxState = () => {\n setListBoxOpen((prevState) => {\n if (prevState) {\n setFilterValue('');\n }\n if (selectInputRef.current !== document.activeElement) {\n selectInputRef?.current?.focus?.();\n }\n handleOpenListBox();\n return !prevState;\n });\n };\n\n const handleChangeLiSelected = (liElement: HTMLLIElement | null) => {\n liSelectedRef.current = liElement;\n };\n\n const handleOnChange = (value?: any, inputLabel?: string, addOrRemove?: boolean) => {\n let multipleValue = props?.value;\n if (!addOrRemove) multipleValue = _.union(props.value, [value]);\n if (addOrRemove) multipleValue = _.without(props.value, value);\n const changedValue = !isMultipleSelect ?\n value\n : _.orderBy(multipleValue, multiValue => _.toNumber(multiValue), ['asc']);\n const syntheticEvent = {\n target: {\n name,\n value: changedValue as any,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n if (!isMultipleSelect) {\n setListBoxOpen(false);\n setFilterValue('');\n setInputValue(inputLabel ?? '');\n if (document.activeElement === selectSearchInputRef.current) {\n selectInputRef?.current?.focus?.();\n setListBoxOpen(false);\n }\n }\n };\n\n const handleCheckMultiple = (checkOrUncheckAll?: boolean) => {\n const checkAll = Boolean(checkOrUncheckAll);\n const allValues: any[] = [];\n listOptionsMap.forEach((__, key) => allValues.push(key));\n const value: any = checkAll ? allValues : [];\n const syntheticEvent = {\n target: {\n name,\n value,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n };\n\n const handleClearValue = () => {\n const resetValue = !isMultipleSelect ? '' : [];\n const syntheticEvent = {\n target: {\n name,\n value: resetValue as any,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n setListBoxOpen(false);\n if (!isMultipleSelect) {\n setFilterValue('');\n setInputValue('');\n }\n if (isMultipleWithCheckboxes) {\n setInputValue(multipleInputLabelEmpty);\n }\n };\n\n const handleOnBlur = (event: FocusEvent<HTMLInputElement>) => {\n props?.onBlur?.(event);\n if (!event.relatedTarget || event.relatedTarget !== selectSearchInputRef.current) {\n setListBoxOpen(false);\n }\n setFilterValue('');\n };\n\n const handleOnFocus = (event: FocusEvent<HTMLInputElement>) => {\n props?.onFocus?.(event);\n if (openDropdownOnFocus) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n };\n\n const handleOnChangeInput = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n setInputValue(event.target.value);\n };\n\n const handleOnPaste = (event: ClipboardEvent<HTMLInputElement>) => {\n if (undigitable || isMultipleWithCheckboxes) {\n event.preventDefault();\n } else {\n props.onPaste?.(event);\n }\n };\n\n const handleOnBeforeInput = (event: InputEvent<HTMLInputElement>) => {\n if (undigitable || isMultipleWithCheckboxes) {\n event.preventDefault();\n } else {\n props.onBeforeInput?.(event);\n }\n };\n\n const handleOnMouseDown = (event: MouseEvent<HTMLInputElement>) => {\n if (undigitable) {\n event.preventDefault();\n } else {\n props.onMouseDown?.(event);\n if (openDropdownOnFocus && !listBoxOpen) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n }\n };\n\n const handleOnSearch = (event: ChangeEvent<HTMLInputElement>) => {\n if (externalSearch) {\n onSearch?.(event);\n } else {\n setFilterValue(event.target.value);\n }\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n props?.onKeyDown?.(event);\n const notUndigitableKeys: string[] = [Keys.backspace, Keys.delete];\n if ((undigitable) && notUndigitableKeys.includes(event.key)) {\n event.preventDefault();\n return;\n }\n const shouldOpenByTyping = isTypingKey(event) || event.key === Keys.arrowDown;\n if (shouldOpenByTyping && selectInputRef.current === document.activeElement) {\n if (event.key === Keys.arrowDown) {\n event.preventDefault();\n }\n requestAnimationFrame(() => {\n const ulListElement = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const liElementsFiltered = (ulListElement?.querySelectorAll(\n 'li[data-state-filtered=\"true\"]',\n ) ?? []) as HTMLLIElement[];\n if (!listBoxOpen && event.key === Keys.arrowDown) {\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n setActiveDescendant(_.toString(currentValue) ?? undefined);\n } else {\n setActiveDescendant(liElementsFiltered[0]?.id ?? undefined);\n }\n });\n if (!listBoxOpen) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n }\n if (listBoxOpen && NAVIGATION_KEYS.includes(event.key)) {\n event.preventDefault();\n }\n requestAnimationFrame(() => {\n const ulListElement = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const liElementsFiltered = (ulListElement?.querySelectorAll(\n 'li[data-state-filtered=\"true\"]',\n ) ?? []) as HTMLLIElement[];\n const currentElementIndex = Array.from(liElementsFiltered).findIndex(\n liElement => liElement.id === activeDescendant,\n );\n let nextElementIndex = currentElementIndex;\n if (listBoxOpen) {\n if (NAVIGATION_KEYS.includes(event.key)) {\n switch (event.key) {\n case Keys.escape:\n setListBoxOpen(false);\n setFilterValue('');\n selectInputRef.current?.focus();\n if (event.target === selectSearchInputRef.current) {\n setListBoxOpen(false);\n }\n break;\n case Keys.arrowDown:\n nextElementIndex = Math.min(currentElementIndex + 1, liElementsFiltered.length - 1);\n break;\n case Keys.arrowUp:\n nextElementIndex = Math.max(currentElementIndex - 1, 0);\n break;\n case Keys.enter:\n if (activeDescendant) {\n const selectedLIOption = liElementsFiltered[nextElementIndex];\n if (selectedLIOption) {\n selectedLIOption.click();\n }\n }\n break;\n default:\n break;\n }\n const nextLIOption = liElementsFiltered[nextElementIndex];\n if (nextLIOption) {\n setActiveDescendant(nextLIOption?.id ?? '');\n const ulListBox = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n scrollListBoxToElement(ulListBox, nextLIOption, 'nearest');\n }\n }\n } else return null;\n });\n };\n\n const contextValues = ({\n selectFieldId: SELECT_FIELD_CONTROLS_ID, label: props.label, striped, listBoxOpen,\n filterValue, disabled, liSelectedRef, selectInputRef, selectSearchInputRef, handleOnSearch,\n searchOnDropdown, nameSelect: String(props.name), valueSelect: props?.value,\n activeDescendant, handleOnChange, handleOnKeyDown, selectContainerRef, handleCloseListBox,\n notFoundFilterLabel, handleChangeLiSelected, isMultipleSelect, isMultipleDefault,\n isMultipleWithCheckboxes, searchInputPlaceholder, showClearButton, dropdownAlignButton,\n handleClearValue, handleCheckMultiple, handleChangeListBoxState, optionItens,\n });\n\n return (\n <Fragment>\n <SelectFieldContext.Provider value={contextValues}>\n <div\n ref={selectFieldRoot}\n data-testid=\"test-select-field-root\"\n className={`select-field-root ${customClassWrapper}`}\n data-state-error={hasValidationErrors}\n data-state-hint-position={hintPosition}>\n {hasLabel && (\n <span\n className={`root-label ${customClassLabel}`}\n data-state-skeletonize={skeletonize}>\n <label\n data-testid=\"test-select-field-label\"\n className=\"label\"\n title={label}\n htmlFor={name}\n aria-disabled={disabled}\n aria-readonly={readOnly}\n data-state-input-required={props.required}>\n {label}\n </label>\n {hasHintMessages && hintPosition === 'onLabelRight' && !skeletonize && (\n <Popover\n customClass=\"label-popover\"\n theme={themePopover}\n align={popoverAlign}\n iconColor=\"#03bde2\">\n <PopoverText text={props?.hint ?? ''} />\n </Popover>\n )}\n </span>\n )}\n <div\n ref={selectContainerRef}\n className={`container ${customClassInputContainer}`}\n aria-expanded={listBoxOpen}\n data-state-skeletonize={skeletonize}>\n {(hasLeftSlotElements && !skeletonize) && leftSlotElements}\n <div className=\"input-root\">\n <input\n {...rest}\n ref={mergeRefs(ref, selectInputRef)}\n readOnly={props.readOnly || undigitable}\n className={`input ${customClass}`}\n placeholder={rest.placeholder}\n data-state-error={hasValidationErrors}\n data-state-multiple={isMultipleSelect}\n data-state-read-only={readOnly}\n data-state-text-align={textAlign}\n data-state-undigitable={undigitable}\n data-state-skeletonize={skeletonize}\n data-state-multiple-with-checkboxes={isMultipleWithCheckboxes}\n id={name}\n type=\"text\"\n role=\"combobox\"\n multiple={false}\n disabled={disabled}\n data-testid=\"test-select-field-input\"\n aria-autocomplete=\"list\"\n aria-expanded={listBoxOpen}\n aria-controls={SELECT_FIELD_CONTROLS_ID}\n aria-activedescendant={activeDescendant}\n tabIndex={(!readOnly && !skeletonize) ? 0 : -1}\n value={inputValue}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChangeInput}\n onPaste={handleOnPaste}\n onMouseDown={handleOnMouseDown}\n onBeforeInput={handleOnBeforeInput} />\n {isMultipleDefault && (\n <Selections\n disabled={Boolean(disabled)}\n isReadOnly={Boolean(readOnly)}\n listOfOptionsToSelect={listOptionsMap} />\n )}\n </div>\n {(hasRightSlotElements && !skeletonize) && rightSlotElements}\n <div\n className=\"triggers\"\n data-state-disabled={disabled}\n data-state-read-only={readOnly}\n data-state-skeletonize={skeletonize}>\n <Triggers />\n </div>\n {listBoxOpen && createPortal(\n <ListBox\n ref={selectListBoxRef}\n dropdownMaxWidth={dropdownMaxWidth}>\n {childrenItems}\n </ListBox>,\n document.body,\n )}\n </div>\n {hintPosition === 'below' && (\n <Hint\n customClass=\"hint\"\n skeletonize={skeletonize}\n description={props.hint}\n disabled={disabled}\n visible={hasHintMessages} />\n )}\n {hasValidationErrors && (\n <span\n data-testid=\"test-select-field-list-errors\"\n className=\"error\"\n data-state-skeletonize={skeletonize}\n aria-describedby={String(name).concat('-errors')}>\n {errors?.map((error, index) => (\n <Fragment key={`${index + 1}-${error}`}>\n {error}\n {' '}\n </Fragment>\n ))}\n </span>\n )}\n </div>\n </SelectFieldContext.Provider>\n <Tooltip\n targetRef={selectInputRef}\n text={tooltip}\n position={tooltipPosition}\n width={tooltipWidth}\n space={tooltipPosition === 'right' ? 64 : undefined} />\n </Fragment>\n );\n },\n);\n\nInputBase.displayName = 'SelectFieldInputBase';\n"],"names":["InputBase","forwardRef","props","ref","name","label","errors","children","onChange","tooltip","tooltipPosition","tooltipWidth","hintPosition","themePopover","popoverAlign","skeletonize","striped","undigitable","externalSearch","openDropdownOnFocus","showClearButton","textAlign","searchOnDropdown","onSearch","undefined","customClass","customClassLabel","customClassWrapper","customClassInputContainer","notFoundFilterLabel","multipleInputLabelEmpty","multipleInputLabelManySelection","searchInputPlaceholder","dropdownAlignButton","dropdownMaxWidth","disabled","readOnly","rest","SELECT_FIELD_CONTROLS_ID","useId","inputValue","setInputValue","useState","filterValue","setFilterValue","listBoxOpen","setListBoxOpen","activeDescendant","setActiveDescendant","isMultipleDefault","_","isEqual","multiple","MultipleVariantEnum","default","isMultipleWithCheckboxes","checkboxes","isMultipleSelect","liSelectedRef","useRef","selectFieldRoot","selectInputRef","selectListBoxRef","selectContainerRef","selectSearchInputRef","listOptionsMap","useMemo","optionsMap","Map","Children","forEach","child","isValidElement","set","value","useEffect","setTimeout","current","focus","retries","maxRetries","scrollToViewSelectedElement","listBox","querySelector","currentValue","orderBy","toNumber","currentLiElement","toString","clientHeight","scrollListBoxToElement","requestAnimationFrame","document","activeElement","lazyInputValue","get","firstSelectionLabel","size","hasLabel","isEmpty","hasHintMessages","Boolean","hint","length","hasValidationErrors","childrenItems","itens","map","childElement","index","clonedChild","cloneElement","key","type","Item","push","leftSlotElements","rightSlotElements","left","right","LeftSlot","RightSlot","optionItens","clonedChildItem","Options","hasLeftSlotElements","hasRightSlotElements","handleCloseListBox","handleOpenListBox","handleChangeListBoxState","prevState","handleChangeLiSelected","liElement","handleOnChange","inputLabel","addOrRemove","multipleValue","union","without","changedValue","multiValue","syntheticEvent","target","handleCheckMultiple","checkOrUncheckAll","checkAll","allValues","__","handleClearValue","resetValue","handleOnBlur","event","onBlur","relatedTarget","handleOnFocus","onFocus","handleOnChangeInput","handleOnPaste","preventDefault","onPaste","handleOnBeforeInput","onBeforeInput","handleOnMouseDown","onMouseDown","handleOnSearch","handleOnKeyDown","onKeyDown","notUndigitableKeys","Keys","backspace","delete","includes","shouldOpenByTyping","isTypingKey","arrowDown","ulListElement","liElementsFiltered","querySelectorAll","id","NAVIGATION_KEYS","currentElementIndex","Array","from","findIndex","nextElementIndex","escape","Math","min","arrowUp","max","enter","selectedLIOption","click","nextLIOption","ulListBox","contextValues","selectFieldId","nameSelect","String","valueSelect","required","mergeRefs","placeholder","createPortal","body","concat","error","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../../src/lib/inputs2/selectfield/base.tsx"],"sourcesContent":["import '../../assets/styles/selectfield.scss';\n\nimport {\n Children, cloneElement, forwardRef, Fragment, isValidElement, useEffect,\n useId, useMemo, useRef, useState, type ChangeEvent, type ClipboardEvent,\n type FocusEvent, type InputEvent, type KeyboardEvent, type ReactNode,\n type MouseEvent, \n} from 'react';\nimport _ from 'lodash';\nimport { createPortal } from 'react-dom';\nimport Hint from '../../hint';\nimport Popover, { PopoverText } from '../../popover';\nimport { Tooltip } from '../../tooltip';\nimport { mergeRefs } from '../../form2/helpers';\nimport { LeftSlot, RightSlot, type SlotProps } from '../slot';\nimport { ListBox } from './listbox';\nimport { Triggers } from './triggers';\nimport { Selections } from './selections';\nimport { SelectFieldContext } from './context';\nimport { Options, type OptionsProps } from './options';\nimport { Item, type SelectFieldItemProps } from './item';\nimport { Keys, MultipleVariantEnum, SelectFieldInputBaseProps } from './types';\nimport { isTypingKey, NAVIGATION_KEYS, scrollListBoxToElement } from './helpers';\n\nexport const InputBase = forwardRef<HTMLInputElement, SelectFieldInputBaseProps>(\n (props, ref) => {\n const {\n name, label, errors, children, onChange, tooltip, tooltipPosition, tooltipWidth, hintPosition = 'below',\n themePopover = 'light', popoverAlign = 'left', skeletonize = false, striped = false, undigitable = false, externalSearch = false,\n openDropdownOnFocus = true, showClearButton = true, textAlign = 'left', searchOnDropdown = false, onSearch = undefined,\n customClass = '', customClassLabel = '', customClassWrapper = '', customClassInputContainer = '',\n notFoundFilterLabel = 'Nenhuma opção encontrada.', multipleInputLabelEmpty = 'Nenhum registro selecionado',\n multipleInputLabelManySelection = 'Múltiplos registros selecionados', searchInputPlaceholder = 'Pesquisar registros',\n dropdownAlignButton = 'left', dropdownMaxWidth = undefined, disabled, readOnly, ...rest\n } = props;\n const SELECT_FIELD_CONTROLS_ID = useId();\n const [inputValue, setInputValue] = useState('');\n const [filterValue, setFilterValue] = useState('');\n const [listBoxOpen, setListBoxOpen] = useState(false);\n const [activeDescendant, setActiveDescendant] = useState<string | undefined>(undefined);\n const isMultipleDefault = _.isEqual(props?.multiple, MultipleVariantEnum.default);\n const isMultipleWithCheckboxes = _.isEqual(props?.multiple, MultipleVariantEnum.checkboxes);\n const isMultipleSelect = isMultipleDefault || isMultipleWithCheckboxes;\n const liSelectedRef = useRef<HTMLLIElement | null>(null);\n const selectFieldRoot = useRef<HTMLDivElement | null>(null);\n const selectInputRef = useRef<HTMLInputElement | null>(null);\n const selectListBoxRef = useRef<HTMLDivElement | null>(null);\n const selectContainerRef = useRef<HTMLDivElement | null>(null);\n const selectSearchInputRef = useRef<HTMLInputElement | null>(null);\n\n const listOptionsMap = useMemo(() => {\n const optionsMap = new Map<string, string>();\n Children.forEach(children, (child) => {\n if (isValidElement<SelectFieldItemProps>(child)) {\n optionsMap.set(child.props.value, child.props.label);\n }\n });\n return optionsMap;\n }, [children]);\n\n useEffect(() => {\n if (isMultipleWithCheckboxes) {\n setInputValue(multipleInputLabelEmpty);\n }\n }, []);\n\n useEffect(() => {\n if (openDropdownOnFocus && listBoxOpen) {\n if (isMultipleWithCheckboxes) {\n setTimeout(() => { selectSearchInputRef.current?.focus?.(); }, 10);\n }\n }\n\n if (listBoxOpen) {\n /**\n * Scroll automático para o item selecionado na abertura do listbox.\n *\n * Usa requestAnimationFrame para aguardar que o DOM esteja renderizado e que o container\n * tenha dimensões estáveis (clientHeight > 0), já que a animação CSS \"revealelement\"\n * inicia com height: 0%, o que invalida o cálculo de scroll se executado antes.\n *\n * O scroll é feito via scrollListBoxToElement (helpers.ts) que manipula diretamente\n * o scrollTop do <ul>, sem usar scrollIntoView(), evitando propagação indesejada\n * de scroll para containers ancestrais(ex: body).\n */\n let retries = 0;\n const maxRetries = 20;\n const scrollToViewSelectedElement = () => {\n const listBox = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n const currentLiElement = listBox?.querySelector(`li[id=\"${\n _.toString(currentValue)}\"]`) as HTMLLIElement | null;\n if (currentLiElement && listBox) {\n if (listBox.clientHeight > 0) {\n scrollListBoxToElement(listBox, currentLiElement, 'center');\n } else if (retries < maxRetries) {\n retries++;\n requestAnimationFrame(scrollToViewSelectedElement);\n }\n }\n };\n requestAnimationFrame(scrollToViewSelectedElement);\n }\n }, [listBoxOpen]);\n\n useEffect(() => {\n if (props?.value && !isMultipleSelect) setActiveDescendant(props?.value);\n if (!isMultipleWithCheckboxes && !props?.value) setInputValue('');\n const lazyInputValue = listOptionsMap.get(rest.value);\n if (!isMultipleWithCheckboxes) setInputValue(lazyInputValue ?? '');\n if (isMultipleWithCheckboxes) {\n const firstSelectionLabel = listOptionsMap.get(props?.value[0]);\n switch (_.size(props?.value)) {\n case 0:\n return setInputValue(multipleInputLabelEmpty);\n case 1:\n return setInputValue(firstSelectionLabel ?? '');\n default:\n return setInputValue(multipleInputLabelManySelection);\n }\n }\n }, [props?.value, listOptionsMap]);\n\n const hasLabel = !_.isEmpty(props?.label);\n const hasHintMessages = Boolean(props.hint?.length);\n const hasValidationErrors = Boolean(errors?.length);\n\n const { childrenItems } = useMemo(() => {\n const itens: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<SelectFieldItemProps>(childElement)) {\n const clonedChild = cloneElement(childElement, {\n key: childElement.key ?? `child-item-${index + 1}`,\n });\n if (childElement.type === Item) itens.push(clonedChild);\n }\n });\n\n return { childrenItems: itens };\n }, [children, disabled]);\n\n const { leftSlotElements, rightSlotElements } = useMemo(() => {\n const left: ReactNode[] = [];\n const right: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<SlotProps>(childElement)) {\n const clonedChild = cloneElement(childElement, {\n key: childElement.key ?? `slot-${index}`,\n disabled: disabled,\n 'aria-disabled': disabled,\n });\n if (childElement.type === LeftSlot) left.push(clonedChild);\n if (childElement.type === RightSlot) right.push(clonedChild);\n }\n });\n\n return { leftSlotElements: left, rightSlotElements: right };\n }, [children, disabled]);\n\n const { optionItens } = useMemo(() => {\n const itens: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<OptionsProps>(childElement)) {\n const clonedChildItem = cloneElement(childElement, {\n key: childElement.key ?? `option-list-${index}`,\n disabled: disabled,\n });\n if (childElement.type === Options) itens.push(clonedChildItem);\n }\n });\n\n return { optionItens: itens };\n }, [children, disabled]);\n\n const hasLeftSlotElements = Boolean(leftSlotElements?.length);\n const hasRightSlotElements = Boolean(rightSlotElements?.length);\n\n const handleCloseListBox = () => {\n setListBoxOpen(false);\n setFilterValue('');\n };\n\n const handleOpenListBox = () => {\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n setActiveDescendant(_.toString(currentValue) ?? undefined);\n };\n\n const handleChangeListBoxState = () => {\n setListBoxOpen((prevState) => {\n if (prevState) {\n setFilterValue('');\n }\n if (selectInputRef.current !== document.activeElement) {\n selectInputRef?.current?.focus?.();\n }\n handleOpenListBox();\n return !prevState;\n });\n };\n\n const handleChangeLiSelected = (liElement: HTMLLIElement | null) => {\n liSelectedRef.current = liElement;\n };\n\n const handleOnChange = (value?: any, inputLabel?: string, addOrRemove?: boolean) => {\n let multipleValue = props?.value;\n if (!addOrRemove) multipleValue = _.union(props.value, [value]);\n if (addOrRemove) multipleValue = _.without(props.value, value);\n const changedValue = !isMultipleSelect ?\n value\n : _.orderBy(multipleValue, multiValue => _.toNumber(multiValue), ['asc']);\n const syntheticEvent = {\n target: {\n name,\n value: changedValue as any,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n if (!isMultipleSelect) {\n setListBoxOpen(false);\n setFilterValue('');\n setInputValue(inputLabel ?? '');\n if (document.activeElement === selectSearchInputRef.current) {\n selectInputRef?.current?.focus?.();\n setListBoxOpen(false);\n }\n }\n };\n\n const handleCheckMultiple = (checkOrUncheckAll?: boolean) => {\n const checkAll = Boolean(checkOrUncheckAll);\n const allValues: any[] = [];\n listOptionsMap.forEach((__, key) => allValues.push(key));\n const value: any = checkAll ? allValues : [];\n const syntheticEvent = {\n target: {\n name,\n value,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n };\n\n const handleClearValue = () => {\n const resetValue = !isMultipleSelect ? '' : [];\n const syntheticEvent = {\n target: {\n name,\n value: resetValue as any,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n setListBoxOpen(false);\n if (!isMultipleSelect) {\n setFilterValue('');\n setInputValue('');\n }\n if (isMultipleWithCheckboxes) {\n setInputValue(multipleInputLabelEmpty);\n }\n };\n\n const handleOnBlur = (event: FocusEvent<HTMLInputElement>) => {\n props?.onBlur?.(event);\n if (!event.relatedTarget || event.relatedTarget !== selectSearchInputRef.current) {\n setListBoxOpen(false);\n }\n setFilterValue('');\n };\n\n const handleOnFocus = (event: FocusEvent<HTMLInputElement>) => {\n props?.onFocus?.(event);\n if (openDropdownOnFocus) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n };\n\n const handleOnChangeInput = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n setInputValue(event.target.value);\n };\n\n const handleOnPaste = (event: ClipboardEvent<HTMLInputElement>) => {\n if (undigitable || isMultipleWithCheckboxes) {\n event.preventDefault();\n } else {\n props.onPaste?.(event);\n }\n };\n\n const handleOnBeforeInput = (event: InputEvent<HTMLInputElement>) => {\n if (undigitable || isMultipleWithCheckboxes) {\n event.preventDefault();\n } else {\n props.onBeforeInput?.(event);\n }\n };\n\n const handleOnMouseDown = (event: MouseEvent<HTMLInputElement>) => {\n if (undigitable) {\n event.preventDefault();\n } else {\n props.onMouseDown?.(event);\n if (openDropdownOnFocus && !listBoxOpen) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n }\n };\n\n const handleOnSearch = (event: ChangeEvent<HTMLInputElement>) => {\n if (externalSearch) {\n onSearch?.(event);\n } else {\n setFilterValue(event.target.value);\n }\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n props?.onKeyDown?.(event);\n const notUndigitableKeys: string[] = [Keys.backspace, Keys.delete];\n if ((undigitable) && notUndigitableKeys.includes(event.key)) {\n event.preventDefault();\n return;\n }\n const shouldOpenByTyping = isTypingKey(event) || event.key === Keys.arrowDown;\n if (shouldOpenByTyping && selectInputRef.current === document.activeElement) {\n if (event.key === Keys.arrowDown) {\n event.preventDefault();\n }\n requestAnimationFrame(() => {\n const ulListElement = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const liElementsFiltered = (ulListElement?.querySelectorAll(\n 'li[data-state-filtered=\"true\"]',\n ) ?? []) as HTMLLIElement[];\n if (!listBoxOpen && event.key === Keys.arrowDown) {\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n setActiveDescendant(_.toString(currentValue) ?? undefined);\n } else {\n setActiveDescendant(liElementsFiltered[0]?.id ?? undefined);\n }\n });\n if (!listBoxOpen) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n }\n if (listBoxOpen && NAVIGATION_KEYS.includes(event.key)) {\n event.preventDefault();\n }\n requestAnimationFrame(() => {\n const ulListElement = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const liElementsFiltered = (ulListElement?.querySelectorAll(\n 'li[data-state-filtered=\"true\"]',\n ) ?? []) as HTMLLIElement[];\n const currentElementIndex = Array.from(liElementsFiltered).findIndex(\n liElement => liElement.id === activeDescendant,\n );\n let nextElementIndex = currentElementIndex;\n if (listBoxOpen) {\n if (NAVIGATION_KEYS.includes(event.key)) {\n switch (event.key) {\n case Keys.escape:\n setListBoxOpen(false);\n setFilterValue('');\n selectInputRef.current?.focus();\n if (event.target === selectSearchInputRef.current) {\n setListBoxOpen(false);\n }\n break;\n case Keys.arrowDown:\n nextElementIndex = Math.min(currentElementIndex + 1, liElementsFiltered.length - 1);\n break;\n case Keys.arrowUp:\n nextElementIndex = Math.max(currentElementIndex - 1, 0);\n break;\n case Keys.enter:\n if (activeDescendant) {\n const selectedLIOption = liElementsFiltered[nextElementIndex];\n if (selectedLIOption) {\n selectedLIOption.click();\n }\n }\n break;\n default:\n break;\n }\n const nextLIOption = liElementsFiltered[nextElementIndex];\n if (nextLIOption) {\n setActiveDescendant(nextLIOption?.id ?? '');\n const ulListBox = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n scrollListBoxToElement(ulListBox, nextLIOption, 'nearest');\n }\n }\n } else return null;\n });\n };\n\n const contextValues = ({\n selectFieldId: SELECT_FIELD_CONTROLS_ID, label: props.label, striped, listBoxOpen,\n filterValue, disabled, liSelectedRef, selectInputRef, selectSearchInputRef, handleOnSearch,\n searchOnDropdown, nameSelect: String(props.name), valueSelect: props?.value,\n activeDescendant, handleOnChange, handleOnKeyDown, selectContainerRef, handleCloseListBox,\n notFoundFilterLabel, handleChangeLiSelected, isMultipleSelect, isMultipleDefault,\n isMultipleWithCheckboxes, searchInputPlaceholder, showClearButton, dropdownAlignButton,\n handleClearValue, handleCheckMultiple, handleChangeListBoxState, optionItens,\n });\n\n return (\n <Fragment>\n <SelectFieldContext.Provider value={contextValues}>\n <div\n ref={selectFieldRoot}\n data-testid=\"test-select-field-root\"\n className={`select-field-root ${customClassWrapper}`}\n data-state-error={hasValidationErrors}\n data-state-hint-position={hintPosition}>\n {hasLabel && (\n <span\n className={`root-label ${customClassLabel}`}\n data-state-skeletonize={skeletonize}>\n <label\n data-testid=\"test-select-field-label\"\n className=\"label\"\n title={label}\n htmlFor={name}\n aria-disabled={disabled}\n aria-readonly={readOnly}\n data-state-input-required={props.required}>\n {label}\n </label>\n {hasHintMessages && hintPosition === 'onLabelRight' && !skeletonize && (\n <Popover\n customClass=\"label-popover\"\n theme={themePopover}\n align={popoverAlign}\n iconColor=\"#03bde2\">\n <PopoverText text={props?.hint ?? ''} />\n </Popover>\n )}\n </span>\n )}\n <div\n ref={selectContainerRef}\n className={`container ${customClassInputContainer}`}\n aria-expanded={listBoxOpen}\n data-state-skeletonize={skeletonize}>\n {(hasLeftSlotElements && !skeletonize) && leftSlotElements}\n <div className=\"input-root\">\n <input\n {...rest}\n ref={mergeRefs(ref, selectInputRef)}\n readOnly={props.readOnly || undigitable}\n className={`input ${customClass}`}\n placeholder={rest.placeholder}\n data-state-error={hasValidationErrors}\n data-state-multiple={isMultipleSelect}\n data-state-read-only={readOnly}\n data-state-text-align={textAlign}\n data-state-undigitable={undigitable}\n data-state-skeletonize={skeletonize}\n data-state-multiple-with-checkboxes={isMultipleWithCheckboxes}\n id={name}\n type=\"text\"\n role=\"combobox\"\n multiple={false}\n disabled={disabled}\n data-testid=\"test-select-field-input\"\n aria-autocomplete=\"list\"\n aria-expanded={listBoxOpen}\n aria-controls={SELECT_FIELD_CONTROLS_ID}\n aria-activedescendant={activeDescendant}\n tabIndex={(!readOnly && !skeletonize) ? 0 : -1}\n value={inputValue}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChangeInput}\n onPaste={handleOnPaste}\n onMouseDown={handleOnMouseDown}\n onBeforeInput={handleOnBeforeInput} />\n {isMultipleDefault && (\n <Selections\n disabled={Boolean(disabled)}\n isReadOnly={Boolean(readOnly)}\n listOfOptionsToSelect={listOptionsMap} />\n )}\n </div>\n {(hasRightSlotElements && !skeletonize) && rightSlotElements}\n <div\n className=\"triggers\"\n data-state-disabled={disabled}\n data-state-read-only={readOnly}\n data-state-skeletonize={skeletonize}>\n <Triggers />\n </div>\n {listBoxOpen && createPortal(\n <ListBox\n ref={selectListBoxRef}\n dropdownMaxWidth={dropdownMaxWidth}>\n {childrenItems}\n </ListBox>,\n document.body,\n )}\n </div>\n {hintPosition === 'below' && (\n <Hint\n customClass=\"hint\"\n skeletonize={skeletonize}\n description={props.hint}\n disabled={disabled}\n visible={hasHintMessages} />\n )}\n {hasValidationErrors && (\n <span\n data-testid=\"test-select-field-list-errors\"\n className=\"error\"\n data-state-skeletonize={skeletonize}\n aria-describedby={String(name).concat('-errors')}>\n {errors?.map((error, index) => (\n <Fragment key={`${index + 1}-${error}`}>\n {error}\n {' '}\n </Fragment>\n ))}\n </span>\n )}\n </div>\n </SelectFieldContext.Provider>\n <Tooltip\n targetRef={selectInputRef}\n text={tooltip}\n position={tooltipPosition}\n width={tooltipWidth}\n space={tooltipPosition === 'right' ? 64 : undefined} />\n </Fragment>\n );\n },\n);\n\nInputBase.displayName = 'SelectFieldInputBase';\n"],"names":["InputBase","forwardRef","props","ref","name","label","errors","children","onChange","tooltip","tooltipPosition","tooltipWidth","hintPosition","themePopover","popoverAlign","skeletonize","striped","undigitable","externalSearch","openDropdownOnFocus","showClearButton","textAlign","searchOnDropdown","onSearch","undefined","customClass","customClassLabel","customClassWrapper","customClassInputContainer","notFoundFilterLabel","multipleInputLabelEmpty","multipleInputLabelManySelection","searchInputPlaceholder","dropdownAlignButton","dropdownMaxWidth","disabled","readOnly","rest","SELECT_FIELD_CONTROLS_ID","useId","inputValue","setInputValue","useState","filterValue","setFilterValue","listBoxOpen","setListBoxOpen","activeDescendant","setActiveDescendant","isMultipleDefault","_","isEqual","multiple","MultipleVariantEnum","default","isMultipleWithCheckboxes","checkboxes","isMultipleSelect","liSelectedRef","useRef","selectFieldRoot","selectInputRef","selectListBoxRef","selectContainerRef","selectSearchInputRef","listOptionsMap","useMemo","optionsMap","Map","Children","forEach","child","isValidElement","set","value","useEffect","setTimeout","current","focus","retries","maxRetries","scrollToViewSelectedElement","listBox","querySelector","currentValue","orderBy","toNumber","currentLiElement","toString","clientHeight","scrollListBoxToElement","requestAnimationFrame","lazyInputValue","get","firstSelectionLabel","size","hasLabel","isEmpty","hasHintMessages","Boolean","hint","length","hasValidationErrors","childrenItems","itens","map","childElement","index","clonedChild","cloneElement","key","type","Item","push","leftSlotElements","rightSlotElements","left","right","LeftSlot","RightSlot","optionItens","clonedChildItem","Options","hasLeftSlotElements","hasRightSlotElements","handleCloseListBox","handleOpenListBox","handleChangeListBoxState","prevState","document","activeElement","handleChangeLiSelected","liElement","handleOnChange","inputLabel","addOrRemove","multipleValue","union","without","changedValue","multiValue","syntheticEvent","target","handleCheckMultiple","checkOrUncheckAll","checkAll","allValues","__","handleClearValue","resetValue","handleOnBlur","event","onBlur","relatedTarget","handleOnFocus","onFocus","handleOnChangeInput","handleOnPaste","preventDefault","onPaste","handleOnBeforeInput","onBeforeInput","handleOnMouseDown","onMouseDown","handleOnSearch","handleOnKeyDown","onKeyDown","notUndigitableKeys","Keys","backspace","delete","includes","shouldOpenByTyping","isTypingKey","arrowDown","ulListElement","liElementsFiltered","querySelectorAll","id","NAVIGATION_KEYS","currentElementIndex","Array","from","findIndex","nextElementIndex","escape","Math","min","arrowUp","max","enter","selectedLIOption","click","nextLIOption","ulListBox","contextValues","selectFieldId","nameSelect","String","valueSelect","required","mergeRefs","placeholder","createPortal","body","concat","error","displayName"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { INumberFieldProps } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* NumberFieldBeta - Versao alternativa do NumberField que utiliza a API imperativa
|
|
4
|
-
* do IMask diretamente, sem o hook useIMask do react-imask.
|
|
5
|
-
*
|
|
6
|
-
* Vantagens:
|
|
7
|
-
* - Controle total do ciclo de vida da mascara
|
|
8
|
-
* - onChange/onBlur disparam SOMENTE por interacao do usuario
|
|
9
|
-
* - Sem disparos espurios na inicializacao ou sincronizacao programatica
|
|
10
|
-
* - Sem problemas de closure stale (leitura direta do maskRef)
|
|
11
|
-
*/
|
|
12
|
-
declare const NumberFieldBeta: (props: INumberFieldProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export default NumberFieldBeta;
|