@pega/cosmos-react-build 7.1.2 → 7.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"FieldReferenceInput.d.ts","sourceRoot":"","sources":["../../../src/components/FieldReference/FieldReferenceInput.tsx"],"names":[],"mappings":";AAsCA,OAAO,KAAK,wBAAwB,MAAM,wBAAwB,CAAC;;;;AA6lBnE,wBAA+E"}
1
+ {"version":3,"file":"FieldReferenceInput.d.ts","sourceRoot":"","sources":["../../../src/components/FieldReference/FieldReferenceInput.tsx"],"names":[],"mappings":";AAsCA,OAAO,KAAK,wBAAwB,MAAM,wBAAwB,CAAC;;;;AAilBnE,wBAA+E"}
@@ -267,7 +267,7 @@ const FieldReferenceInput = forwardRef(function FieldReferenceInput(props, ref)
267
267
  }
268
268
  }));
269
269
  }, [actions]);
270
- const Comp = (_jsxs(StyledFieldReferencePicker, { ref: containerRef, id: `${id}-field-reference`, role: 'combobox', "aria-haspopup": 'menu', "aria-expanded": !readOnly && !disabled && open, "aria-owns": open && !pauseMenuDescendantEvaluation ? listId : undefined, children: [_jsxs(Flex, { "data-testid": testIds.control, as: StyledFieldReferenceInput, forwardedAs: StyledFormControl, spellCheck: false, restingState: !!selected.length && !open, container: { alignItems: 'center', justify: 'between' }, readOnly: readOnly, disabled: disabled, status: status, children: [_jsxs(Flex, { container: {
270
+ const Comp = (_jsxs(StyledFieldReferencePicker, { ref: containerRef, id: `${id}-field-reference`, children: [_jsxs(Flex, { "data-testid": testIds.control, as: StyledFieldReferenceInput, forwardedAs: StyledFormControl, spellCheck: false, restingState: !!selected.length && !open, container: { alignItems: 'center', justify: 'between' }, readOnly: readOnly, disabled: disabled, status: status, children: [_jsxs(Flex, { container: {
271
271
  alignContent: 'center',
272
272
  colGap: 0.25,
273
273
  pad: 0.25
@@ -282,7 +282,7 @@ const FieldReferenceInput = forwardRef(function FieldReferenceInput(props, ref)
282
282
  if (index === 0 && field.id !== parentItem?.id)
283
283
  return null;
284
284
  return (_jsxs(Fragment, { children: [(index > 0 || showDot) && '.', _jsx(StyledPathSegment, { children: field.name })] }, field.id));
285
- }) })), _jsx(Flex, { item: { grow: 1, alignSelf: 'center' }, as: 'input', size: 1, ref: inputRef, role: 'searchbox', value: open ? filterValue : '', onChange: (e) => {
285
+ }) })), _jsx(Flex, { item: { grow: 1, alignSelf: 'center' }, as: 'input', size: 1, ref: inputRef, role: 'combobox', "aria-autocomplete": 'list', "aria-expanded": !readOnly && !disabled && open, "aria-controls": !pauseSelectedDescendantEvaluation ? listId : ariaControls, "aria-haspopup": 'menu', "aria-describedby": ariaDescribedBy, value: open ? filterValue : '', onChange: (e) => {
286
286
  if (e.target.value !== '.') {
287
287
  if (e.target.value.endsWith('.')) {
288
288
  const search = e.target.value.replace('.', '');
@@ -305,7 +305,7 @@ const FieldReferenceInput = forwardRef(function FieldReferenceInput(props, ref)
305
305
  else if (selected.length) {
306
306
  setShowDot(true);
307
307
  }
308
- }, onClick: onInputClick, onKeyDown: onInputKeyDown, onKeyUp: onInputKeyUp, readOnly: readOnly, disabled: disabled, placeholder: !selected.length ? placeholder : undefined, autoComplete: 'off', "aria-describedby": ariaDescribedBy, "aria-controls": !pauseSelectedDescendantEvaluation ? id : ariaControls, "aria-autocomplete": 'list', required: undefined })] }), dropdownButton, _jsx(VisuallyHiddenText, { id: `${id}-inputDescription`, children: `${t('fieldref_open_close')} ` }), _jsx(VisuallyHiddenText, { id: `${id}-searchDescription`, children: t('fieldref_search_instructions') })] }), _jsx(Popover, { ref: popoverRef, show: open, target: containerRef.current, placement: 'bottom-start', modifiers: [sameWidth], strategy: 'fixed', onMouseDown: (e) => e.preventDefault(), onKeyDown: (e) => {
308
+ }, onClick: onInputClick, onKeyDown: onInputKeyDown, onKeyUp: onInputKeyUp, readOnly: readOnly, disabled: disabled, placeholder: !selected.length ? placeholder : undefined, autoComplete: 'off', required: undefined })] }), dropdownButton] }), _jsx(Popover, { ref: popoverRef, show: open, target: containerRef.current, placement: 'bottom-start', modifiers: [sameWidth], strategy: 'fixed', onMouseDown: (e) => e.preventDefault(), onKeyDown: (e) => {
309
309
  if (!inputRef.current)
310
310
  return;
311
311
  if (e.key === 'Tab') {
@@ -1 +1 @@
1
- {"version":3,"file":"FieldReferenceInput.js","sourceRoot":"","sources":["../../../src/components/FieldReference/FieldReferenceInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type {\n MouseEvent,\n KeyboardEvent as ReactKeyboardEvent,\n PropsWithoutRef,\n Ref,\n MutableRefObject,\n ChangeEvent\n} from 'react';\n\nimport {\n registerIcon,\n navigatorIsAvailable,\n useUID,\n useTestIds,\n useI18n,\n type MenuProps,\n useElement,\n useConsolidatedRef,\n useFocusWithin,\n type FieldValueListItemProps,\n Icon,\n useEscape,\n Button,\n Flex,\n StyledFormControl,\n VisuallyHiddenText,\n FieldValueList,\n Popover,\n getFocusables,\n Menu,\n FormField,\n withTestIds\n} from '@pega/cosmos-react-core';\nimport * as caretDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-down.icon';\nimport * as caretUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-up.icon';\nimport { sameWidth } from '@pega/cosmos-react-core/lib/components/Popover/modifiers';\n\nimport type FieldReferenceInputProps from './FieldReference.types';\nimport {\n StyledFieldReferenceInput,\n StyledFieldReferencePicker,\n StyledPathSegment,\n StyledSelection,\n StyledFieldReferenceMenu\n} from './FieldReference.styles';\nimport { getFieldReferenceInputTestIds } from './FieldReference.test-ids';\nimport type {\n FieldReferenceDisplayProps,\n FieldReferencedMenuListProps,\n FieldReferenceMenuItem,\n FieldReferenceMenuProps\n} from './FieldReference.types';\nimport FieldReferenceDisplay from './FieldReferenceDisplay';\nimport FieldReferenceMenuList from './FieldReferenceMenuList';\nimport { addFieldToPath, removeFieldFromPath } from './helpers';\n\nregisterIcon(caretDownIcon, caretUpIcon);\n\nconst isMobile = navigatorIsAvailable && navigator.userAgent.includes('Mobile');\n\nconst FieldReferenceInput = forwardRef(function FieldReferenceInput(\n props: PropsWithoutRef<FieldReferenceInputProps>,\n ref: Ref<HTMLDivElement>\n) {\n const uid = useUID();\n const {\n testId,\n additionalInfo,\n required,\n id = uid,\n label,\n labelHidden,\n info,\n status,\n readOnly,\n disabled,\n placeholder,\n menu,\n showCurrentContext,\n onAltContextClick,\n selected = [],\n onSelectedChange,\n filterValue,\n onFilterChange,\n showPath,\n link,\n actions,\n onFocus,\n onBlur,\n onDropdownButtonClick: onDropdownButtonClickProp,\n onMenuOpen,\n onClick,\n onKeyDown\n } = props;\n const {\n items: menuItems,\n altContexts,\n currentContext,\n parentItem,\n onCreateNew,\n createNewLabel,\n scrollAt,\n loading,\n loadMore\n } = menu;\n\n const testIds = useTestIds(testId, getFieldReferenceInputTestIds);\n const bodyRef = useRef<Element>(document.body);\n\n const [pauseMenuDescendantEvaluation, setPauseMenuDescendantEvaluation] = useState(true);\n const [pauseSelectedDescendantEvaluation, setPauseSelectedDescendantEvaluation] = useState(false);\n const t = useI18n();\n const listId = `${id}-list`;\n const inputRef = useRef<HTMLInputElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const [showDot, setShowDot] = useState(false);\n const [modifyingLeafItem, setModifyingLeafItem] = useState(false);\n const [open, setOpen] = useState(false);\n const menuRef: MenuProps['ref'] = useRef(null);\n const menuComponentId = `${id}-listbox`;\n\n // Force a re-render to make sure useFocusWithin has valid elements to set listeners on.\n const [, setContainerEl] = useElement();\n const containerRef = useConsolidatedRef<HTMLDivElement>(ref, setContainerEl);\n\n const toggleMenuDescendantsActive = useCallback((bool: boolean) => {\n setPauseMenuDescendantEvaluation(!bool);\n setPauseSelectedDescendantEvaluation(bool);\n }, []);\n\n const focus = useFocusWithin([containerRef, popoverRef], focused => {\n if (!focused) {\n setOpen(false);\n toggleMenuDescendantsActive(false);\n onBlur?.();\n } else {\n onFocus?.();\n if (isMobile) {\n setTimeout(() => {\n containerRef.current?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }, 150); // delay it to let keyboard expand first\n }\n }\n });\n\n const formatMenuItems = ({\n items,\n context,\n altContextItems,\n hasFilter\n }: {\n items: FieldReferenceMenuItem[];\n context?: FieldReferenceMenuProps['currentContext'];\n altContextItems?: FieldReferenceMenuProps['altContexts'];\n hasFilter?: boolean;\n }): FieldReferencedMenuListProps['items'] => {\n const formattedItems = items\n .sort((a, b) => {\n if (a.selected) return -1;\n if (b.selected) return 1;\n return 0;\n })\n .map(item => {\n const tooltipData: FieldValueListItemProps[] = [\n { name: t('id'), value: item.id, truncate: false },\n { name: t('name'), value: item.name, truncate: false }\n ];\n\n if (item.type) tooltipData.push({ name: t('type'), value: item.type, truncate: false });\n if (item.metadata)\n tooltipData.push(...item.metadata.map(meta => ({ ...meta, truncate: false })));\n\n return {\n id: item.id,\n visual: item.icon ? <Icon {...item.icon} size='s' /> : undefined,\n primary: item.name,\n secondary: item.type ? [item.type] : undefined,\n items: item.items ? formatMenuItems({ items: item.items, context: item }) : undefined,\n tooltip: <FieldValueList fields={tooltipData} truncate={false} />,\n selected: showPath ? item.selected : undefined\n };\n });\n const formattedAltContextItems = altContextItems?.map(item => ({\n id: item.id,\n primary: item.name,\n items: formatMenuItems({ items: item.items, context: item })\n }));\n\n const organizedMenuItems: MenuProps['items'] = [];\n if (!hasFilter && !!formattedAltContextItems?.length && !parentItem) {\n organizedMenuItems.push(...formattedAltContextItems);\n }\n\n if (!hasFilter && context && !parentItem) {\n organizedMenuItems.push({\n id: context.id,\n label: t('current_context', [context.name]),\n items: formattedItems\n });\n } else if (hasFilter || !context || parentItem) {\n organizedMenuItems.push(...formattedItems);\n }\n\n return organizedMenuItems;\n };\n\n const handleEscape = useCallback(\n (e: KeyboardEvent) => {\n e.preventDefault();\n if (open) {\n e.stopPropagation();\n setOpen(false);\n toggleMenuDescendantsActive(false);\n }\n },\n [open]\n );\n\n useEscape(handleEscape, containerRef, [handleEscape]);\n\n const onInputKeyDown = useCallback(\n (e: ReactKeyboardEvent<HTMLInputElement>) => {\n if (readOnly) return;\n if (onKeyDown?.(e) === false) {\n return;\n }\n\n switch (e.key) {\n case 'ArrowUp':\n if (e.altKey) {\n e.preventDefault();\n if (open) {\n setOpen(false);\n toggleMenuDescendantsActive(false);\n }\n }\n break;\n case 'ArrowDown':\n e.preventDefault();\n if (!open) {\n setOpen(true);\n toggleMenuDescendantsActive(true);\n }\n break;\n case 'Tab': {\n const matchedItem = menuItems.find(\n item =>\n item.id === filterValue || item.name.toLowerCase() === filterValue?.toLowerCase()\n );\n if (matchedItem) {\n onSelectedChange(addFieldToPath(selected, matchedItem, parentItem));\n }\n\n setOpen(false);\n toggleMenuDescendantsActive(false);\n\n break;\n }\n case 'Backspace': {\n if (open && selected.length) {\n const removeAll = e.altKey || e.metaKey;\n const lastSelectedItem = selected.at(-1)!;\n\n if (\n !showDot &&\n lastSelectedItem &&\n (removeAll || lastSelectedItem.id === parentItem?.id)\n ) {\n onSelectedChange(removeAll ? [] : removeFieldFromPath(selected, lastSelectedItem.id));\n } else if (showDot) {\n setShowDot(false);\n } else if (filterValue && lastSelectedItem.id !== parentItem?.id) {\n setModifyingLeafItem(true);\n }\n }\n break;\n }\n default:\n }\n },\n [open, selected, readOnly, filterValue, showDot, parentItem, onKeyDown]\n );\n\n const onInputKeyUp = useCallback(\n (e: ReactKeyboardEvent<HTMLInputElement>) => {\n if (readOnly) return;\n\n if (e.key === 'Backspace' && selected.length) {\n const lastSelectedItem = selected.at(-1)!;\n if (!filterValue && modifyingLeafItem && open) {\n onSelectedChange(showPath ? removeFieldFromPath(selected, lastSelectedItem.id) : []);\n setModifyingLeafItem(false);\n }\n }\n },\n [open, selected, readOnly, filterValue]\n );\n\n const onDropdownButtonClick = useCallback(() => {\n onDropdownButtonClickProp?.(!open);\n setOpen(!open);\n }, [open, onDropdownButtonClickProp]);\n\n const dropdownButton = useMemo(() => {\n return (menuItems || onDropdownButtonClickProp) && !readOnly ? (\n <Button\n aria-label={t(open ? 'fieldref_close_list_button_a11y' : 'fieldref_open_list_button_a11y')}\n icon\n variant='simple'\n onClick={onDropdownButtonClick}\n onMouseDown={(e: MouseEvent) => {\n e.preventDefault();\n inputRef.current?.focus();\n }}\n disabled={disabled}\n tabIndex='-1'\n >\n <Icon name={open ? 'caret-up' : 'caret-down'} />\n </Button>\n ) : null;\n }, [menuItems, onDropdownButtonClick, readOnly, open, disabled]);\n\n const ariaDescribedBy = useMemo(() => {\n let idString = `${id}-inputDescription`;\n\n if (info) {\n idString = idString.concat(` ${id}-info`);\n }\n idString = idString.concat(` ${id}-searchDescription`);\n\n return idString;\n }, [info, id]);\n\n const onInputClick = useCallback(\n (e: MouseEvent) => {\n if (readOnly) return;\n setOpen(true);\n toggleMenuDescendantsActive(true);\n onClick?.(e);\n },\n [readOnly, onClick]\n );\n\n const tooltipData: FieldReferenceDisplayProps['tooltipData'] = useMemo(() => {\n const selectedField = selected.at(-1);\n if (selectedField) {\n const data: FieldValueListItemProps[] = [\n { name: t('id'), value: selectedField.id, truncate: false },\n { name: t('name'), value: selectedField.name, truncate: false }\n ];\n\n if (selectedField.type)\n data.push({ name: t('type'), value: selectedField.type, truncate: false });\n if (selectedField.metadata)\n data.push(...selectedField.metadata.map(meta => ({ ...meta, truncate: false })));\n return data;\n }\n\n return undefined;\n }, [selected]);\n\n const formattedMenuItems = useMemo(() => {\n return formatMenuItems({\n items: menuItems || [],\n context: currentContext,\n altContextItems: altContexts,\n hasFilter: !!filterValue\n });\n }, [menuItems, currentContext, altContexts, filterValue, parentItem, showPath]);\n\n useEffect(() => {\n if (focus && filterValue && filterValue.length > 0) {\n setOpen(true);\n toggleMenuDescendantsActive(true);\n }\n }, [filterValue, focus]);\n\n useEffect(() => {\n if (open) {\n onMenuOpen?.();\n if (!!selected.length && selected.at(-1)!.id !== parentItem?.id) {\n onFilterChange(`${selected.at(-1)!.name}${filterValue}`);\n }\n } else {\n setShowDot(false);\n onFilterChange('');\n }\n }, [open]);\n\n const handleItemClick = (itemId: string) => {\n onFilterChange('');\n const matchedItem = menuItems.find(item => item.id === itemId);\n const altContext = altContexts?.find(context => context.id === itemId);\n if (matchedItem) {\n onSelectedChange(addFieldToPath(selected, matchedItem, parentItem));\n } else if (altContext) {\n onAltContextClick?.(altContext);\n }\n };\n\n const ariaControls = open && !pauseMenuDescendantEvaluation ? listId : undefined;\n\n const selectedFieldPath: FieldReferenceDisplayProps['fieldPath'] = useMemo(() => {\n if (!showPath && !!selected.length) return [selected.at(-1)!];\n if (showCurrentContext && currentContext) return [currentContext, ...selected];\n return selected;\n }, [showCurrentContext, currentContext, selected, showPath]);\n\n const formattedActions: FieldReferenceDisplayProps['actions'] = useMemo(() => {\n if (actions)\n return actions.map(action => ({\n ...action,\n onClick: (clickId, e, menuButton) => {\n e.stopPropagation();\n action.onClick?.(clickId, e, menuButton);\n }\n }));\n }, [actions]);\n\n const Comp = (\n <StyledFieldReferencePicker\n ref={containerRef}\n id={`${id}-field-reference`}\n role='combobox'\n aria-haspopup='menu'\n aria-expanded={!readOnly && !disabled && open}\n aria-owns={open && !pauseMenuDescendantEvaluation ? listId : undefined}\n >\n <Flex\n data-testid={testIds.control}\n as={StyledFieldReferenceInput}\n forwardedAs={StyledFormControl}\n spellCheck={false}\n restingState={!!selected.length && !open}\n container={{ alignItems: 'center', justify: 'between' }}\n readOnly={readOnly}\n disabled={disabled}\n status={status}\n >\n <Flex\n container={{\n alignContent: 'center',\n colGap: 0.25,\n pad: 0.25\n }}\n item={{ grow: 1 }}\n onClick={(e: MouseEvent<HTMLDivElement>) => {\n // Ignore clicks on selection items\n if (e.target instanceof HTMLElement && !(e.target instanceof HTMLInputElement)) {\n e.stopPropagation();\n inputRef.current?.focus();\n inputRef.current?.click();\n }\n }}\n >\n {!!selected.length && !open && (\n <FieldReferenceDisplay\n fieldPath={selectedFieldPath}\n link={link}\n actions={formattedActions}\n tooltipData={tooltipData}\n />\n )}\n {!!selected.length && open && showPath && (\n <Flex container={{ gap: 0.25, alignItems: 'center' }} as={StyledSelection}>\n {[...selectedFieldPath].reverse().map((field, index) => {\n if (index === 0 && field.id !== parentItem?.id) return null;\n return (\n <Fragment key={field.id}>\n {(index > 0 || showDot) && '.'}\n <StyledPathSegment>{field.name}</StyledPathSegment>\n </Fragment>\n );\n })}\n </Flex>\n )}\n <Flex\n item={{ grow: 1, alignSelf: 'center' }}\n as='input'\n size={1}\n ref={inputRef}\n role='searchbox'\n value={open ? filterValue : ''}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.value !== '.') {\n if (e.target.value.endsWith('.')) {\n const search = e.target.value.replace('.', '');\n const matchedItem =\n menuItems.length === 1\n ? menuItems[0]\n : menuItems.find(item => item.id === search) ||\n menuItems.find(item => item.name.toLowerCase() === search.toLowerCase());\n if (matchedItem && !!matchedItem.items) {\n onSelectedChange(addFieldToPath(selected, matchedItem, parentItem));\n setShowDot(true);\n onFilterChange('');\n }\n } else {\n onFilterChange(e.target.value);\n if (!showDot && !!selected.length) setShowDot(true);\n }\n } else if (selected.length) {\n setShowDot(true);\n }\n }}\n onClick={onInputClick}\n onKeyDown={onInputKeyDown}\n onKeyUp={onInputKeyUp}\n readOnly={readOnly}\n disabled={disabled}\n placeholder={!selected.length ? placeholder : undefined}\n autoComplete='off'\n aria-describedby={ariaDescribedBy}\n aria-controls={!pauseSelectedDescendantEvaluation ? id : ariaControls}\n aria-autocomplete='list'\n required={undefined}\n />\n </Flex>\n {dropdownButton}\n\n <VisuallyHiddenText id={`${id}-inputDescription`}>\n {`${t('fieldref_open_close')} `}\n </VisuallyHiddenText>\n <VisuallyHiddenText id={`${id}-searchDescription`}>\n {t('fieldref_search_instructions')}\n </VisuallyHiddenText>\n </Flex>\n\n <Popover\n ref={popoverRef}\n show={open}\n target={containerRef.current}\n placement='bottom-start'\n modifiers={[sameWidth]}\n strategy='fixed'\n onMouseDown={(e: MouseEvent) => e.preventDefault()}\n onKeyDown={(e: KeyboardEvent) => {\n if (!inputRef.current) return;\n\n if (e.key === 'Tab') {\n const popoverFocusables = getFocusables(popoverRef);\n const currentIndex = popoverFocusables.indexOf(e.target as HTMLElement);\n const forward = !e.shiftKey;\n const isLast = currentIndex === popoverFocusables.length - 1;\n\n if (forward && isLast) {\n e.preventDefault();\n const allFocusable = getFocusables(bodyRef as MutableRefObject<HTMLElement>);\n const nextIndex = allFocusable.indexOf(inputRef.current) + 1;\n\n allFocusable[nextIndex]?.focus();\n setOpen(false);\n toggleMenuDescendantsActive(false);\n } else if (!forward && currentIndex === 0) {\n e.preventDefault();\n inputRef.current.focus();\n }\n }\n if (e.key === 'Escape') {\n handleEscape(e);\n inputRef.current.focus();\n }\n }}\n >\n <Menu\n as={StyledFieldReferenceMenu}\n ref={menuRef}\n listId={listId}\n id={menuComponentId}\n role='menu'\n items={formattedMenuItems}\n itemLayout='inline'\n focusControlEl={inputRef.current || undefined}\n mode='single-select'\n onItemClick={itemId => {\n handleItemClick(itemId);\n setOpen(false);\n }}\n onItemExpand={handleItemClick}\n onItemCollapse={itemId => {\n onFilterChange('');\n onSelectedChange(removeFieldFromPath(selected, itemId));\n }}\n aria-label={t('menu_option_list')}\n pauseDescendantEvaluation={pauseMenuDescendantEvaluation}\n arrowNavigationUnsupported\n footer={\n onCreateNew ? (\n <Button variant='link' onClick={onCreateNew}>\n <Icon name='plus' /> {createNewLabel || t('create_new')}\n </Button>\n ) : undefined\n }\n scrollAt={scrollAt}\n loading={loading}\n loadMore={loadMore}\n menuList={\n <FieldReferenceMenuList\n id={listId}\n items={formattedMenuItems}\n parent={\n parentItem && !filterValue\n ? { id: parentItem.id, primary: parentItem.name }\n : undefined\n }\n aria-labelledby={`${menuComponentId}-menuLabel`}\n />\n }\n />\n </Popover>\n </StyledFieldReferencePicker>\n );\n\n return (\n <>\n {label ? (\n <FormField\n testId={testIds}\n label={label}\n labelHidden={labelHidden}\n id={id}\n info={info}\n status={status}\n required={required}\n disabled={disabled}\n additionalInfo={additionalInfo}\n >\n {Comp}\n </FormField>\n ) : (\n Comp\n )}\n <VisuallyHiddenText id={`${id}-inputDescription`} aria-hidden>\n {`${t('fieldref_open_close')} `}\n </VisuallyHiddenText>\n <VisuallyHiddenText id={`${id}-searchDescription`} aria-hidden>\n {t('fieldref_search_instructions')}\n </VisuallyHiddenText>\n </>\n );\n});\n\nexport default withTestIds(FieldReferenceInput, getFieldReferenceInputTestIds);\n"]}
1
+ {"version":3,"file":"FieldReferenceInput.js","sourceRoot":"","sources":["../../../src/components/FieldReference/FieldReferenceInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type {\n MouseEvent,\n KeyboardEvent as ReactKeyboardEvent,\n PropsWithoutRef,\n Ref,\n MutableRefObject,\n ChangeEvent\n} from 'react';\n\nimport {\n registerIcon,\n navigatorIsAvailable,\n useUID,\n useTestIds,\n useI18n,\n type MenuProps,\n useElement,\n useConsolidatedRef,\n useFocusWithin,\n type FieldValueListItemProps,\n Icon,\n useEscape,\n Button,\n Flex,\n StyledFormControl,\n VisuallyHiddenText,\n FieldValueList,\n Popover,\n getFocusables,\n Menu,\n FormField,\n withTestIds\n} from '@pega/cosmos-react-core';\nimport * as caretDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-down.icon';\nimport * as caretUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-up.icon';\nimport { sameWidth } from '@pega/cosmos-react-core/lib/components/Popover/modifiers';\n\nimport type FieldReferenceInputProps from './FieldReference.types';\nimport {\n StyledFieldReferenceInput,\n StyledFieldReferencePicker,\n StyledPathSegment,\n StyledSelection,\n StyledFieldReferenceMenu\n} from './FieldReference.styles';\nimport { getFieldReferenceInputTestIds } from './FieldReference.test-ids';\nimport type {\n FieldReferenceDisplayProps,\n FieldReferencedMenuListProps,\n FieldReferenceMenuItem,\n FieldReferenceMenuProps\n} from './FieldReference.types';\nimport FieldReferenceDisplay from './FieldReferenceDisplay';\nimport FieldReferenceMenuList from './FieldReferenceMenuList';\nimport { addFieldToPath, removeFieldFromPath } from './helpers';\n\nregisterIcon(caretDownIcon, caretUpIcon);\n\nconst isMobile = navigatorIsAvailable && navigator.userAgent.includes('Mobile');\n\nconst FieldReferenceInput = forwardRef(function FieldReferenceInput(\n props: PropsWithoutRef<FieldReferenceInputProps>,\n ref: Ref<HTMLDivElement>\n) {\n const uid = useUID();\n const {\n testId,\n additionalInfo,\n required,\n id = uid,\n label,\n labelHidden,\n info,\n status,\n readOnly,\n disabled,\n placeholder,\n menu,\n showCurrentContext,\n onAltContextClick,\n selected = [],\n onSelectedChange,\n filterValue,\n onFilterChange,\n showPath,\n link,\n actions,\n onFocus,\n onBlur,\n onDropdownButtonClick: onDropdownButtonClickProp,\n onMenuOpen,\n onClick,\n onKeyDown\n } = props;\n const {\n items: menuItems,\n altContexts,\n currentContext,\n parentItem,\n onCreateNew,\n createNewLabel,\n scrollAt,\n loading,\n loadMore\n } = menu;\n\n const testIds = useTestIds(testId, getFieldReferenceInputTestIds);\n const bodyRef = useRef<Element>(document.body);\n\n const [pauseMenuDescendantEvaluation, setPauseMenuDescendantEvaluation] = useState(true);\n const [pauseSelectedDescendantEvaluation, setPauseSelectedDescendantEvaluation] = useState(false);\n const t = useI18n();\n const listId = `${id}-list`;\n const inputRef = useRef<HTMLInputElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const [showDot, setShowDot] = useState(false);\n const [modifyingLeafItem, setModifyingLeafItem] = useState(false);\n const [open, setOpen] = useState(false);\n const menuRef: MenuProps['ref'] = useRef(null);\n const menuComponentId = `${id}-listbox`;\n\n // Force a re-render to make sure useFocusWithin has valid elements to set listeners on.\n const [, setContainerEl] = useElement();\n const containerRef = useConsolidatedRef<HTMLDivElement>(ref, setContainerEl);\n\n const toggleMenuDescendantsActive = useCallback((bool: boolean) => {\n setPauseMenuDescendantEvaluation(!bool);\n setPauseSelectedDescendantEvaluation(bool);\n }, []);\n\n const focus = useFocusWithin([containerRef, popoverRef], focused => {\n if (!focused) {\n setOpen(false);\n toggleMenuDescendantsActive(false);\n onBlur?.();\n } else {\n onFocus?.();\n if (isMobile) {\n setTimeout(() => {\n containerRef.current?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }, 150); // delay it to let keyboard expand first\n }\n }\n });\n\n const formatMenuItems = ({\n items,\n context,\n altContextItems,\n hasFilter\n }: {\n items: FieldReferenceMenuItem[];\n context?: FieldReferenceMenuProps['currentContext'];\n altContextItems?: FieldReferenceMenuProps['altContexts'];\n hasFilter?: boolean;\n }): FieldReferencedMenuListProps['items'] => {\n const formattedItems = items\n .sort((a, b) => {\n if (a.selected) return -1;\n if (b.selected) return 1;\n return 0;\n })\n .map(item => {\n const tooltipData: FieldValueListItemProps[] = [\n { name: t('id'), value: item.id, truncate: false },\n { name: t('name'), value: item.name, truncate: false }\n ];\n\n if (item.type) tooltipData.push({ name: t('type'), value: item.type, truncate: false });\n if (item.metadata)\n tooltipData.push(...item.metadata.map(meta => ({ ...meta, truncate: false })));\n\n return {\n id: item.id,\n visual: item.icon ? <Icon {...item.icon} size='s' /> : undefined,\n primary: item.name,\n secondary: item.type ? [item.type] : undefined,\n items: item.items ? formatMenuItems({ items: item.items, context: item }) : undefined,\n tooltip: <FieldValueList fields={tooltipData} truncate={false} />,\n selected: showPath ? item.selected : undefined\n };\n });\n const formattedAltContextItems = altContextItems?.map(item => ({\n id: item.id,\n primary: item.name,\n items: formatMenuItems({ items: item.items, context: item })\n }));\n\n const organizedMenuItems: MenuProps['items'] = [];\n if (!hasFilter && !!formattedAltContextItems?.length && !parentItem) {\n organizedMenuItems.push(...formattedAltContextItems);\n }\n\n if (!hasFilter && context && !parentItem) {\n organizedMenuItems.push({\n id: context.id,\n label: t('current_context', [context.name]),\n items: formattedItems\n });\n } else if (hasFilter || !context || parentItem) {\n organizedMenuItems.push(...formattedItems);\n }\n\n return organizedMenuItems;\n };\n\n const handleEscape = useCallback(\n (e: KeyboardEvent) => {\n e.preventDefault();\n if (open) {\n e.stopPropagation();\n setOpen(false);\n toggleMenuDescendantsActive(false);\n }\n },\n [open]\n );\n\n useEscape(handleEscape, containerRef, [handleEscape]);\n\n const onInputKeyDown = useCallback(\n (e: ReactKeyboardEvent<HTMLInputElement>) => {\n if (readOnly) return;\n if (onKeyDown?.(e) === false) {\n return;\n }\n\n switch (e.key) {\n case 'ArrowUp':\n if (e.altKey) {\n e.preventDefault();\n if (open) {\n setOpen(false);\n toggleMenuDescendantsActive(false);\n }\n }\n break;\n case 'ArrowDown':\n e.preventDefault();\n if (!open) {\n setOpen(true);\n toggleMenuDescendantsActive(true);\n }\n break;\n case 'Tab': {\n const matchedItem = menuItems.find(\n item =>\n item.id === filterValue || item.name.toLowerCase() === filterValue?.toLowerCase()\n );\n if (matchedItem) {\n onSelectedChange(addFieldToPath(selected, matchedItem, parentItem));\n }\n\n setOpen(false);\n toggleMenuDescendantsActive(false);\n\n break;\n }\n case 'Backspace': {\n if (open && selected.length) {\n const removeAll = e.altKey || e.metaKey;\n const lastSelectedItem = selected.at(-1)!;\n\n if (\n !showDot &&\n lastSelectedItem &&\n (removeAll || lastSelectedItem.id === parentItem?.id)\n ) {\n onSelectedChange(removeAll ? [] : removeFieldFromPath(selected, lastSelectedItem.id));\n } else if (showDot) {\n setShowDot(false);\n } else if (filterValue && lastSelectedItem.id !== parentItem?.id) {\n setModifyingLeafItem(true);\n }\n }\n break;\n }\n default:\n }\n },\n [open, selected, readOnly, filterValue, showDot, parentItem, onKeyDown]\n );\n\n const onInputKeyUp = useCallback(\n (e: ReactKeyboardEvent<HTMLInputElement>) => {\n if (readOnly) return;\n\n if (e.key === 'Backspace' && selected.length) {\n const lastSelectedItem = selected.at(-1)!;\n if (!filterValue && modifyingLeafItem && open) {\n onSelectedChange(showPath ? removeFieldFromPath(selected, lastSelectedItem.id) : []);\n setModifyingLeafItem(false);\n }\n }\n },\n [open, selected, readOnly, filterValue]\n );\n\n const onDropdownButtonClick = useCallback(() => {\n onDropdownButtonClickProp?.(!open);\n setOpen(!open);\n }, [open, onDropdownButtonClickProp]);\n\n const dropdownButton = useMemo(() => {\n return (menuItems || onDropdownButtonClickProp) && !readOnly ? (\n <Button\n aria-label={t(open ? 'fieldref_close_list_button_a11y' : 'fieldref_open_list_button_a11y')}\n icon\n variant='simple'\n onClick={onDropdownButtonClick}\n onMouseDown={(e: MouseEvent) => {\n e.preventDefault();\n inputRef.current?.focus();\n }}\n disabled={disabled}\n tabIndex='-1'\n >\n <Icon name={open ? 'caret-up' : 'caret-down'} />\n </Button>\n ) : null;\n }, [menuItems, onDropdownButtonClick, readOnly, open, disabled]);\n\n const ariaDescribedBy = useMemo(() => {\n let idString = `${id}-inputDescription`;\n\n if (info) {\n idString = idString.concat(` ${id}-info`);\n }\n idString = idString.concat(` ${id}-searchDescription`);\n\n return idString;\n }, [info, id]);\n\n const onInputClick = useCallback(\n (e: MouseEvent) => {\n if (readOnly) return;\n setOpen(true);\n toggleMenuDescendantsActive(true);\n onClick?.(e);\n },\n [readOnly, onClick]\n );\n\n const tooltipData: FieldReferenceDisplayProps['tooltipData'] = useMemo(() => {\n const selectedField = selected.at(-1);\n if (selectedField) {\n const data: FieldValueListItemProps[] = [\n { name: t('id'), value: selectedField.id, truncate: false },\n { name: t('name'), value: selectedField.name, truncate: false }\n ];\n\n if (selectedField.type)\n data.push({ name: t('type'), value: selectedField.type, truncate: false });\n if (selectedField.metadata)\n data.push(...selectedField.metadata.map(meta => ({ ...meta, truncate: false })));\n return data;\n }\n\n return undefined;\n }, [selected]);\n\n const formattedMenuItems = useMemo(() => {\n return formatMenuItems({\n items: menuItems || [],\n context: currentContext,\n altContextItems: altContexts,\n hasFilter: !!filterValue\n });\n }, [menuItems, currentContext, altContexts, filterValue, parentItem, showPath]);\n\n useEffect(() => {\n if (focus && filterValue && filterValue.length > 0) {\n setOpen(true);\n toggleMenuDescendantsActive(true);\n }\n }, [filterValue, focus]);\n\n useEffect(() => {\n if (open) {\n onMenuOpen?.();\n if (!!selected.length && selected.at(-1)!.id !== parentItem?.id) {\n onFilterChange(`${selected.at(-1)!.name}${filterValue}`);\n }\n } else {\n setShowDot(false);\n onFilterChange('');\n }\n }, [open]);\n\n const handleItemClick = (itemId: string) => {\n onFilterChange('');\n const matchedItem = menuItems.find(item => item.id === itemId);\n const altContext = altContexts?.find(context => context.id === itemId);\n if (matchedItem) {\n onSelectedChange(addFieldToPath(selected, matchedItem, parentItem));\n } else if (altContext) {\n onAltContextClick?.(altContext);\n }\n };\n\n const ariaControls = open && !pauseMenuDescendantEvaluation ? listId : undefined;\n\n const selectedFieldPath: FieldReferenceDisplayProps['fieldPath'] = useMemo(() => {\n if (!showPath && !!selected.length) return [selected.at(-1)!];\n if (showCurrentContext && currentContext) return [currentContext, ...selected];\n return selected;\n }, [showCurrentContext, currentContext, selected, showPath]);\n\n const formattedActions: FieldReferenceDisplayProps['actions'] = useMemo(() => {\n if (actions)\n return actions.map(action => ({\n ...action,\n onClick: (clickId, e, menuButton) => {\n e.stopPropagation();\n action.onClick?.(clickId, e, menuButton);\n }\n }));\n }, [actions]);\n\n const Comp = (\n <StyledFieldReferencePicker ref={containerRef} id={`${id}-field-reference`}>\n <Flex\n data-testid={testIds.control}\n as={StyledFieldReferenceInput}\n forwardedAs={StyledFormControl}\n spellCheck={false}\n restingState={!!selected.length && !open}\n container={{ alignItems: 'center', justify: 'between' }}\n readOnly={readOnly}\n disabled={disabled}\n status={status}\n >\n <Flex\n container={{\n alignContent: 'center',\n colGap: 0.25,\n pad: 0.25\n }}\n item={{ grow: 1 }}\n onClick={(e: MouseEvent<HTMLDivElement>) => {\n // Ignore clicks on selection items\n if (e.target instanceof HTMLElement && !(e.target instanceof HTMLInputElement)) {\n e.stopPropagation();\n inputRef.current?.focus();\n inputRef.current?.click();\n }\n }}\n >\n {!!selected.length && !open && (\n <FieldReferenceDisplay\n fieldPath={selectedFieldPath}\n link={link}\n actions={formattedActions}\n tooltipData={tooltipData}\n />\n )}\n {!!selected.length && open && showPath && (\n <Flex container={{ gap: 0.25, alignItems: 'center' }} as={StyledSelection}>\n {[...selectedFieldPath].reverse().map((field, index) => {\n if (index === 0 && field.id !== parentItem?.id) return null;\n return (\n <Fragment key={field.id}>\n {(index > 0 || showDot) && '.'}\n <StyledPathSegment>{field.name}</StyledPathSegment>\n </Fragment>\n );\n })}\n </Flex>\n )}\n <Flex\n item={{ grow: 1, alignSelf: 'center' }}\n as='input'\n size={1}\n ref={inputRef}\n role='combobox'\n aria-autocomplete='list'\n aria-expanded={!readOnly && !disabled && open}\n aria-controls={!pauseSelectedDescendantEvaluation ? listId : ariaControls}\n aria-haspopup='menu'\n aria-describedby={ariaDescribedBy}\n value={open ? filterValue : ''}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.value !== '.') {\n if (e.target.value.endsWith('.')) {\n const search = e.target.value.replace('.', '');\n const matchedItem =\n menuItems.length === 1\n ? menuItems[0]\n : menuItems.find(item => item.id === search) ||\n menuItems.find(item => item.name.toLowerCase() === search.toLowerCase());\n if (matchedItem && !!matchedItem.items) {\n onSelectedChange(addFieldToPath(selected, matchedItem, parentItem));\n setShowDot(true);\n onFilterChange('');\n }\n } else {\n onFilterChange(e.target.value);\n if (!showDot && !!selected.length) setShowDot(true);\n }\n } else if (selected.length) {\n setShowDot(true);\n }\n }}\n onClick={onInputClick}\n onKeyDown={onInputKeyDown}\n onKeyUp={onInputKeyUp}\n readOnly={readOnly}\n disabled={disabled}\n placeholder={!selected.length ? placeholder : undefined}\n autoComplete='off'\n required={undefined}\n />\n </Flex>\n {dropdownButton}\n </Flex>\n\n <Popover\n ref={popoverRef}\n show={open}\n target={containerRef.current}\n placement='bottom-start'\n modifiers={[sameWidth]}\n strategy='fixed'\n onMouseDown={(e: MouseEvent) => e.preventDefault()}\n onKeyDown={(e: KeyboardEvent) => {\n if (!inputRef.current) return;\n\n if (e.key === 'Tab') {\n const popoverFocusables = getFocusables(popoverRef);\n const currentIndex = popoverFocusables.indexOf(e.target as HTMLElement);\n const forward = !e.shiftKey;\n const isLast = currentIndex === popoverFocusables.length - 1;\n\n if (forward && isLast) {\n e.preventDefault();\n const allFocusable = getFocusables(bodyRef as MutableRefObject<HTMLElement>);\n const nextIndex = allFocusable.indexOf(inputRef.current) + 1;\n\n allFocusable[nextIndex]?.focus();\n setOpen(false);\n toggleMenuDescendantsActive(false);\n } else if (!forward && currentIndex === 0) {\n e.preventDefault();\n inputRef.current.focus();\n }\n }\n if (e.key === 'Escape') {\n handleEscape(e);\n inputRef.current.focus();\n }\n }}\n >\n <Menu\n as={StyledFieldReferenceMenu}\n ref={menuRef}\n listId={listId}\n id={menuComponentId}\n role='menu'\n items={formattedMenuItems}\n itemLayout='inline'\n focusControlEl={inputRef.current || undefined}\n mode='single-select'\n onItemClick={itemId => {\n handleItemClick(itemId);\n setOpen(false);\n }}\n onItemExpand={handleItemClick}\n onItemCollapse={itemId => {\n onFilterChange('');\n onSelectedChange(removeFieldFromPath(selected, itemId));\n }}\n aria-label={t('menu_option_list')}\n pauseDescendantEvaluation={pauseMenuDescendantEvaluation}\n arrowNavigationUnsupported\n footer={\n onCreateNew ? (\n <Button variant='link' onClick={onCreateNew}>\n <Icon name='plus' /> {createNewLabel || t('create_new')}\n </Button>\n ) : undefined\n }\n scrollAt={scrollAt}\n loading={loading}\n loadMore={loadMore}\n menuList={\n <FieldReferenceMenuList\n id={listId}\n items={formattedMenuItems}\n parent={\n parentItem && !filterValue\n ? { id: parentItem.id, primary: parentItem.name }\n : undefined\n }\n aria-labelledby={`${menuComponentId}-menuLabel`}\n />\n }\n />\n </Popover>\n </StyledFieldReferencePicker>\n );\n\n return (\n <>\n {label ? (\n <FormField\n testId={testIds}\n label={label}\n labelHidden={labelHidden}\n id={id}\n info={info}\n status={status}\n required={required}\n disabled={disabled}\n additionalInfo={additionalInfo}\n >\n {Comp}\n </FormField>\n ) : (\n Comp\n )}\n <VisuallyHiddenText id={`${id}-inputDescription`} aria-hidden>\n {`${t('fieldref_open_close')} `}\n </VisuallyHiddenText>\n <VisuallyHiddenText id={`${id}-searchDescription`} aria-hidden>\n {t('fieldref_search_instructions')}\n </VisuallyHiddenText>\n </>\n );\n});\n\nexport default withTestIds(FieldReferenceInput, getFieldReferenceInputTestIds);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/cosmos-react-build",
3
- "version": "7.1.2",
3
+ "version": "7.2.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/pegasystems/cosmos-react.git",
@@ -19,9 +19,9 @@
19
19
  "build": "tsc -b tsconfig.build.json"
20
20
  },
21
21
  "dependencies": {
22
- "@pega/cosmos-react-core": "7.1.2",
23
- "@pega/cosmos-react-dnd": "7.1.2",
24
- "@pega/cosmos-react-rte": "7.1.2",
22
+ "@pega/cosmos-react-core": "7.2.0",
23
+ "@pega/cosmos-react-dnd": "7.2.0",
24
+ "@pega/cosmos-react-rte": "7.2.0",
25
25
  "@types/codemirror": "^5.60.7",
26
26
  "@types/dagre": "^0.7.46",
27
27
  "@types/react": "^17.0.62",