@chayns-components/core 5.3.12-alpha.0 → 5.4.5-alpha.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/lib/cjs/components/accordion/Accordion.js +1 -1
- package/lib/cjs/components/accordion/Accordion.js.map +1 -1
- package/lib/cjs/components/accordion/Accordion.styles.js +1 -1
- package/lib/cjs/components/accordion/Accordion.styles.js.map +1 -1
- package/lib/cjs/components/button/Button.styles.js +1 -8
- package/lib/cjs/components/button/Button.styles.js.map +1 -1
- package/lib/cjs/components/combobox/ComboBox.js +14 -5
- package/lib/cjs/components/combobox/ComboBox.js.map +1 -1
- package/lib/cjs/components/context-menu/ContextMenu.js +50 -40
- package/lib/cjs/components/context-menu/ContextMenu.js.map +1 -1
- package/lib/cjs/components/context-menu/ContextMenu.utils.js +27 -1
- package/lib/cjs/components/context-menu/ContextMenu.utils.js.map +1 -1
- package/lib/cjs/components/context-menu/context-menu-content/ContextMenuContent.js +3 -8
- package/lib/cjs/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -1
- package/lib/cjs/components/file-list/file-item/FileItem.js +29 -27
- package/lib/cjs/components/file-list/file-item/FileItem.js.map +1 -1
- package/lib/cjs/components/file-list/file-item/FileItem.styles.js +6 -0
- package/lib/cjs/components/file-list/file-item/FileItem.styles.js.map +1 -1
- package/lib/cjs/components/highlight-slider/HighlightSlider.js +6 -3
- package/lib/cjs/components/highlight-slider/HighlightSlider.js.map +1 -1
- package/lib/cjs/components/input/Input.js +2 -2
- package/lib/cjs/components/input/Input.js.map +1 -1
- package/lib/cjs/components/input/Input.styles.js +6 -1
- package/lib/cjs/components/input/Input.styles.js.map +1 -1
- package/lib/cjs/components/list/List.utils.js +108 -14
- package/lib/cjs/components/list/List.utils.js.map +1 -1
- package/lib/cjs/components/list/list-item/ListItem.js +27 -25
- package/lib/cjs/components/list/list-item/ListItem.js.map +1 -1
- package/lib/cjs/components/list/list-item/ListItem.styles.js +3 -5
- package/lib/cjs/components/list/list-item/ListItem.styles.js.map +1 -1
- package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.js +4 -35
- package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
- package/lib/cjs/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js +1 -31
- package/lib/cjs/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js.map +1 -1
- package/lib/cjs/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js +1 -29
- package/lib/cjs/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js.map +1 -1
- package/lib/cjs/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js +1 -29
- package/lib/cjs/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js.map +1 -1
- package/lib/cjs/components/mention-finder/MentionFinder.js +12 -3
- package/lib/cjs/components/mention-finder/MentionFinder.js.map +1 -1
- package/lib/cjs/components/multi-action-button/MultiActionButton.styles.js +6 -0
- package/lib/cjs/components/multi-action-button/MultiActionButton.styles.js.map +1 -1
- package/lib/cjs/components/search-box/SearchBox.js +15 -3
- package/lib/cjs/components/search-box/SearchBox.js.map +1 -1
- package/lib/cjs/components/search-input/SearchInput.js +16 -2
- package/lib/cjs/components/search-input/SearchInput.js.map +1 -1
- package/lib/cjs/components/search-input/SearchInput.styles.js +1 -0
- package/lib/cjs/components/search-input/SearchInput.styles.js.map +1 -1
- package/lib/cjs/components/setup-wizard/SetupWizard.js +6 -3
- package/lib/cjs/components/setup-wizard/SetupWizard.js.map +1 -1
- package/lib/cjs/components/sharing-bar/SharingBar.js +1 -1
- package/lib/cjs/components/sharing-bar/SharingBar.js.map +1 -1
- package/lib/cjs/components/sharing-bar/SharingBar.styles.js +3 -2
- package/lib/cjs/components/sharing-bar/SharingBar.styles.js.map +1 -1
- package/lib/cjs/components/skeleton/base-skeleton/BaseSkeleton.styles.js +2 -0
- package/lib/cjs/components/skeleton/base-skeleton/BaseSkeleton.styles.js.map +1 -1
- package/lib/cjs/components/slider-button/SliderButton.styles.js +1 -5
- package/lib/cjs/components/slider-button/SliderButton.styles.js.map +1 -1
- package/lib/cjs/components/tag-input/TagInput.js +1 -0
- package/lib/cjs/components/tag-input/TagInput.js.map +1 -1
- package/lib/cjs/components/tag-input/TagInput.styles.js +0 -2
- package/lib/cjs/components/tag-input/TagInput.styles.js.map +1 -1
- package/lib/cjs/components/truncation/Truncation.styles.js +0 -1
- package/lib/cjs/components/truncation/Truncation.styles.js.map +1 -1
- package/lib/cjs/index.js +6 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/utils/keyboardFocusHighlighting.styles.js +2 -3
- package/lib/cjs/utils/keyboardFocusHighlighting.styles.js.map +1 -1
- package/lib/esm/components/accordion/Accordion.js +1 -1
- package/lib/esm/components/accordion/Accordion.js.map +1 -1
- package/lib/esm/components/accordion/Accordion.styles.js +1 -1
- package/lib/esm/components/accordion/Accordion.styles.js.map +1 -1
- package/lib/esm/components/button/Button.styles.js +1 -8
- package/lib/esm/components/button/Button.styles.js.map +1 -1
- package/lib/esm/components/combobox/ComboBox.js +9 -1
- package/lib/esm/components/combobox/ComboBox.js.map +1 -1
- package/lib/esm/components/context-menu/ContextMenu.js +48 -39
- package/lib/esm/components/context-menu/ContextMenu.js.map +1 -1
- package/lib/esm/components/context-menu/ContextMenu.utils.js +24 -0
- package/lib/esm/components/context-menu/ContextMenu.utils.js.map +1 -1
- package/lib/esm/components/context-menu/context-menu-content/ContextMenuContent.js +3 -8
- package/lib/esm/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -1
- package/lib/esm/components/file-list/file-item/FileItem.js +29 -27
- package/lib/esm/components/file-list/file-item/FileItem.js.map +1 -1
- package/lib/esm/components/file-list/file-item/FileItem.styles.js +7 -1
- package/lib/esm/components/file-list/file-item/FileItem.styles.js.map +1 -1
- package/lib/esm/components/highlight-slider/HighlightSlider.js +6 -3
- package/lib/esm/components/highlight-slider/HighlightSlider.js.map +1 -1
- package/lib/esm/components/input/Input.js +2 -2
- package/lib/esm/components/input/Input.js.map +1 -1
- package/lib/esm/components/input/Input.styles.js +6 -1
- package/lib/esm/components/input/Input.styles.js.map +1 -1
- package/lib/esm/components/list/List.utils.js +104 -13
- package/lib/esm/components/list/List.utils.js.map +1 -1
- package/lib/esm/components/list/list-item/ListItem.js +28 -26
- package/lib/esm/components/list/list-item/ListItem.js.map +1 -1
- package/lib/esm/components/list/list-item/ListItem.styles.js +3 -5
- package/lib/esm/components/list/list-item/ListItem.styles.js.map +1 -1
- package/lib/esm/components/list/list-item/list-item-head/ListItemHead.js +4 -35
- package/lib/esm/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
- package/lib/esm/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js +2 -32
- package/lib/esm/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js.map +1 -1
- package/lib/esm/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js +2 -30
- package/lib/esm/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js.map +1 -1
- package/lib/esm/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js +1 -29
- package/lib/esm/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js.map +1 -1
- package/lib/esm/components/mention-finder/MentionFinder.js +9 -1
- package/lib/esm/components/mention-finder/MentionFinder.js.map +1 -1
- package/lib/esm/components/multi-action-button/MultiActionButton.styles.js +6 -0
- package/lib/esm/components/multi-action-button/MultiActionButton.styles.js.map +1 -1
- package/lib/esm/components/search-box/SearchBox.js +12 -1
- package/lib/esm/components/search-box/SearchBox.js.map +1 -1
- package/lib/esm/components/search-input/SearchInput.js +15 -2
- package/lib/esm/components/search-input/SearchInput.js.map +1 -1
- package/lib/esm/components/search-input/SearchInput.styles.js +1 -0
- package/lib/esm/components/search-input/SearchInput.styles.js.map +1 -1
- package/lib/esm/components/setup-wizard/SetupWizard.js +6 -3
- package/lib/esm/components/setup-wizard/SetupWizard.js.map +1 -1
- package/lib/esm/components/sharing-bar/SharingBar.js +1 -1
- package/lib/esm/components/sharing-bar/SharingBar.js.map +1 -1
- package/lib/esm/components/sharing-bar/SharingBar.styles.js +3 -2
- package/lib/esm/components/sharing-bar/SharingBar.styles.js.map +1 -1
- package/lib/esm/components/skeleton/base-skeleton/BaseSkeleton.styles.js +2 -0
- package/lib/esm/components/skeleton/base-skeleton/BaseSkeleton.styles.js.map +1 -1
- package/lib/esm/components/slider-button/SliderButton.styles.js +1 -5
- package/lib/esm/components/slider-button/SliderButton.styles.js.map +1 -1
- package/lib/esm/components/tag-input/TagInput.js +1 -0
- package/lib/esm/components/tag-input/TagInput.js.map +1 -1
- package/lib/esm/components/tag-input/TagInput.styles.js +0 -2
- package/lib/esm/components/tag-input/TagInput.styles.js.map +1 -1
- package/lib/esm/components/truncation/Truncation.styles.js +0 -1
- package/lib/esm/components/truncation/Truncation.styles.js.map +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/utils/keyboardFocusHighlighting.styles.js +2 -3
- package/lib/esm/utils/keyboardFocusHighlighting.styles.js.map +1 -1
- package/lib/types/components/context-menu/ContextMenu.utils.d.ts +10 -0
- package/lib/types/components/context-menu/context-menu-content/ContextMenuContent.d.ts +1 -1
- package/lib/types/components/list/List.utils.d.ts +23 -7
- package/lib/types/components/list/list-item/ListItem.d.ts +4 -0
- package/lib/types/components/list/list-item/list-item-head/ListItemHead.d.ts +0 -1
- package/lib/types/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.d.ts +0 -1
- package/lib/types/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.d.ts +0 -1
- package/lib/types/components/list/list-item/list-item-head/list-item-title/ListItemTitle.d.ts +0 -1
- package/lib/types/index.d.ts +1 -1
- package/package.json +3 -3
|
@@ -57,14 +57,15 @@ const ListItem = /*#__PURE__*/(0, _react2.forwardRef)(({
|
|
|
57
57
|
titleElement,
|
|
58
58
|
shouldDisableAnimation = false,
|
|
59
59
|
cornerElement,
|
|
60
|
-
isSelected = false
|
|
60
|
+
isSelected = false,
|
|
61
|
+
shouldEnableKeyboardHighlighting: shouldEnableKeyboardHighlightingProp
|
|
61
62
|
}, ref) => {
|
|
62
63
|
const {
|
|
63
64
|
isAnyItemExpandable,
|
|
64
65
|
isWrapped,
|
|
65
66
|
openItemUuid,
|
|
66
67
|
updateOpenItemUuid,
|
|
67
|
-
shouldEnableKeyboardHighlighting,
|
|
68
|
+
shouldEnableKeyboardHighlighting: shouldEnableKeyboardHighlightingContext,
|
|
68
69
|
listGroupUuid,
|
|
69
70
|
listItemUuids,
|
|
70
71
|
registerListItemUuid,
|
|
@@ -72,6 +73,7 @@ const ListItem = /*#__PURE__*/(0, _react2.forwardRef)(({
|
|
|
72
73
|
activeListItemUuid,
|
|
73
74
|
updateActiveListItemUuid
|
|
74
75
|
} = (0, _react2.useContext)(_List.ListContext);
|
|
76
|
+
const shouldEnableKeyboardHighlighting = shouldEnableKeyboardHighlightingProp ?? shouldEnableKeyboardHighlightingContext;
|
|
75
77
|
const {
|
|
76
78
|
isWrapped: isParentAccordionWrapped
|
|
77
79
|
} = (0, _react2.useContext)(_Accordion.AccordionContext);
|
|
@@ -145,41 +147,43 @@ const ListItem = /*#__PURE__*/(0, _react2.forwardRef)(({
|
|
|
145
147
|
}
|
|
146
148
|
return undefined;
|
|
147
149
|
}, [shouldEnableKeyboardHighlighting, registerListItemUuid, unregisterListItemUuid, uuid]);
|
|
148
|
-
const tabIndex = (0, _react2.useMemo)(() =>
|
|
149
|
-
if (isInKeyboardNavigationGroup) {
|
|
150
|
-
const isGroupTabStop = activeListItemUuid != null ? activeListItemUuid === uuid : (listItemUuids === null || listItemUuids === void 0 ? void 0 : listItemUuids[0]) === uuid;
|
|
151
|
-
return isGroupTabStop ? 0 : -1;
|
|
152
|
-
}
|
|
153
|
-
return shouldEnableKeyboardHighlighting ? 0 : -1;
|
|
154
|
-
}, [activeListItemUuid, isInKeyboardNavigationGroup, listItemUuids, shouldEnableKeyboardHighlighting, uuid]);
|
|
150
|
+
const tabIndex = (0, _react2.useMemo)(() => shouldEnableKeyboardHighlighting ? 0 : -1, [shouldEnableKeyboardHighlighting]);
|
|
155
151
|
const handleKeyDown = (0, _react2.useCallback)(event => {
|
|
156
152
|
const isCurrentListItemTarget = event.currentTarget === event.target;
|
|
157
153
|
const currentListItemElement = event.currentTarget;
|
|
158
154
|
const targetElement = event.target;
|
|
159
|
-
|
|
155
|
+
[() => shouldEnableKeyboardHighlighting && (0, _List2.handleHorizontalArrowNavigation)({
|
|
160
156
|
event,
|
|
161
157
|
currentListItemElement,
|
|
162
158
|
targetElement,
|
|
163
159
|
isCurrentListItemTarget
|
|
164
|
-
})) {
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
if ((0, _List2.handleVerticalListGroupNavigation)({
|
|
160
|
+
}), () => (0, _List2.handleListItemTabNavigation)({
|
|
168
161
|
event,
|
|
162
|
+
currentListItemElement,
|
|
163
|
+
targetElement,
|
|
169
164
|
isCurrentListItemTarget,
|
|
170
165
|
isInKeyboardNavigationGroup,
|
|
171
166
|
listItemUuids,
|
|
172
167
|
currentUuid: uuid,
|
|
173
168
|
listGroupUuid,
|
|
174
169
|
updateActiveListItemUuid
|
|
175
|
-
})) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
170
|
+
}), () => (0, _List2.handleVerticalListGroupNavigation)({
|
|
171
|
+
event,
|
|
172
|
+
isCurrentListItemTarget,
|
|
173
|
+
isInKeyboardNavigationGroup,
|
|
174
|
+
listItemUuids,
|
|
175
|
+
currentUuid: uuid,
|
|
176
|
+
listGroupUuid,
|
|
177
|
+
updateActiveListItemUuid
|
|
178
|
+
}), () => (0, _List2.handleListItemToggleKey)({
|
|
179
|
+
event,
|
|
180
|
+
isCurrentListItemTarget,
|
|
181
|
+
isExpandable,
|
|
182
|
+
isItemOpen,
|
|
183
|
+
shouldEnableKeyboardHighlighting,
|
|
184
|
+
toggleItem: () => handleHeadClick(event)
|
|
185
|
+
})].some(handleKey => handleKey());
|
|
186
|
+
}, [handleHeadClick, isExpandable, isInKeyboardNavigationGroup, isItemOpen, listGroupUuid, listItemUuids, shouldEnableKeyboardHighlighting, updateActiveListItemUuid, uuid]);
|
|
183
187
|
const {
|
|
184
188
|
isFocusWithinListItem,
|
|
185
189
|
handleFocus,
|
|
@@ -195,7 +199,6 @@ const ListItem = /*#__PURE__*/(0, _react2.forwardRef)(({
|
|
|
195
199
|
updateActiveListItemUuid(uuid);
|
|
196
200
|
}
|
|
197
201
|
}, [activeListItemUuid, isInKeyboardNavigationGroup, listItemUuids, updateActiveListItemUuid, uuid]);
|
|
198
|
-
const shouldAllowElementFocus = !shouldEnableKeyboardHighlighting || isFocusWithinListItem;
|
|
199
202
|
return /*#__PURE__*/_react2.default.createElement(_ListItem.StyledListItem, {
|
|
200
203
|
as: shouldDisableAnimation ? undefined : _react.motion.div,
|
|
201
204
|
animate: shouldDisableAnimation ? undefined : {
|
|
@@ -269,8 +272,7 @@ const ListItem = /*#__PURE__*/(0, _react2.forwardRef)(({
|
|
|
269
272
|
titleElement: titleElement,
|
|
270
273
|
setShouldEnableTooltip: setShouldEnableTooltip,
|
|
271
274
|
shouldDisableAnimation: shouldDisableAnimation,
|
|
272
|
-
onImageError: onImageError
|
|
273
|
-
shouldAllowElementFocus: shouldAllowElementFocus
|
|
275
|
+
onImageError: onImageError
|
|
274
276
|
})), /*#__PURE__*/_react2.default.createElement(_react.AnimatePresence, {
|
|
275
277
|
initial: false
|
|
276
278
|
}, isExpandable && (isItemOpen || shouldRenderClosed) && /*#__PURE__*/_react2.default.createElement(_ListItemBody.default, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItem.js","names":["_react","require","_react2","_interopRequireWildcard","_uuid","_Accordion","_AreaContextProvider","_List","_List2","_ListItemBody","_interopRequireDefault","_ListItemHead","_ListItem","_Tooltip","_element","_useKeyboardFocusHighlighting","_useListItemFocus","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ListItem","forwardRef","backgroundColor","careOfLocationId","children","cornerImage","hoverItem","icons","imageBackground","images","isDefaultOpen","isOpen","isTitleGreyed","leftElements","onClick","onClose","onLongPress","onOpen","rightElements","shouldShowTooltipOnTitleOverflow","shouldForceBackground","shouldForceBottomLine","shouldForceHover","shouldHideBottomLine","shouldOpenImageOnClick","shouldHideImageOrIconBackground","shouldHideIndicator","shouldPreventLayoutAnimation","shouldRenderClosed","shouldShowRoundImageOrIcon","shouldShowSeparatorBelow","subtitle","title","onImageError","onSizeChange","titleElement","shouldDisableAnimation","cornerElement","isSelected","ref","isAnyItemExpandable","isWrapped","openItemUuid","updateOpenItemUuid","shouldEnableKeyboardHighlighting","listGroupUuid","listItemUuids","registerListItemUuid","unregisterListItemUuid","activeListItemUuid","updateActiveListItemUuid","useContext","ListContext","isParentAccordionWrapped","AccordionContext","areaProvider","AreaContext","isInitialRenderRef","useRef","listItemRef","isInDialog","useIsInsideDialog","uuid","useUuid","isExpandable","undefined","isItemOpen","onCloseRef","onOpenRef","shouldEnableTooltip","setShouldEnableTooltip","useState","titleWidth","setTitleWidth","titleMaxWidth","setTitleMaxWidth","useEffect","current","handleHeadClick","useCallback","event","shouldOnlyOpen","isClickable","useImperativeHandle","handleTitleWidthChange","width","maxWidth","shouldShowKeyboardHighlighting","useKeyboardFocusHighlighting","isInKeyboardNavigationGroup","tabIndex","useMemo","isGroupTabStop","handleKeyDown","isCurrentListItemTarget","currentTarget","target","currentListItemElement","targetElement","handleHorizontalArrowNavigation","handleVerticalListGroupNavigation","currentUuid","key","preventDefault","isFocusWithinListItem","handleFocus","handleBlur","useListItemFocus","shouldAllowElementFocus","createElement","StyledListItem","as","motion","div","animate","height","opacity","className","exit","initial","layout","$backgroundColor","$isClickable","$isInAccordion","shouldDisableListItemPadding","$isOpen","$isWrapped","$isInDialog","$isSelected","$shouldChangeColor","shouldChangeColor","$shouldForceBackground","$shouldForceBottomLine","$shouldHideBottomLine","$shouldHideIndicator","$shouldShowSeparatorBelow","onKeyDown","onFocus","onBlur","shouldUseFullWidth","isDisabled","item","StyledListItemTooltip","style","cursor","onTitleWidthChange","AnimatePresence","id","shouldHideBody","displayName","_default","exports"],"sources":["../../../../../src/components/list/list-item/ListItem.tsx"],"sourcesContent":["import { AnimatePresence, motion } from 'motion/react';\nimport React, {\n CSSProperties,\n forwardRef,\n KeyboardEvent,\n MouseEventHandler,\n ReactNode,\n SyntheticEvent,\n TouchEventHandler,\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../../hooks/uuid';\nimport type { IListItemRightElements } from '../../../types/list';\nimport { AccordionContext } from '../../accordion/Accordion';\nimport AreaContextProvider, { AreaContext } from '../../area-provider/AreaContextProvider';\nimport { ListContext } from '../List';\nimport { handleHorizontalArrowNavigation, handleVerticalListGroupNavigation } from '../List.utils';\nimport ListItemBody from './list-item-body/ListItemBody';\nimport ListItemHead from './list-item-head/ListItemHead';\nimport { StyledListItem, StyledListItemTooltip } from './ListItem.styles';\nimport Tooltip from '../../tooltip/Tooltip';\nimport { useIsInsideDialog } from '../../../hooks/element';\nimport { useKeyboardFocusHighlighting } from '../../../hooks/useKeyboardFocusHighlighting';\nimport { useListItemFocus } from './useListItemFocus';\n\nexport type ListItemElements = [ReactNode, ...ReactNode[]];\n\nexport interface ListItemSize {\n titleWidth: number;\n titleMaxWidth: number;\n}\n\nexport type ListItemProps = {\n /**\n * The background color of the `ListItem`.\n */\n backgroundColor?: CSSProperties['backgroundColor'];\n /**\n * DEPRECATED: Use `cornerImage` instead.\n */\n careOfLocationId?: number;\n /**\n * The content of the `ListItem` body. When the `ListItem` has children,\n * it can be opened and also gets an icon as an indicator automatically.\n */\n children?: ReactNode;\n /**\n * The image that is displayed in the bottom right corner of the grouped image of list item.\n */\n cornerImage?: string;\n /**\n * Element that is displayed when hovering over the `ListItem` on the right\n * side. On mobile devices, this element is not displayed.\n */\n hoverItem?: ReactNode;\n /**\n * The FontAwesome or tobit icons to render like an image on the left side\n * of the header. Multiple icons are stacked. See the `Icon` component\n * documentation for more information.\n */\n icons?: string[];\n /**\n * The background of the image. This is only used if images are passed.\n */\n imageBackground?: CSSProperties['background'];\n /**\n * A list of image URLs that are displayed on the left side of the header.\n * If multiple URLs are passed, the image is assembled from the first three\n * image URLs as a puzzle.\n */\n images?: string[];\n /**\n * This can be used to automatically expand the `ListItem` during the first render.\n */\n isDefaultOpen?: boolean;\n /**\n * This overrides the internal opening state of the item and makes it controlled.\n */\n isOpen?: boolean;\n /**\n * Whether the ListItem locks disabled but has full functionality.\n */\n isTitleGreyed?: boolean;\n /**\n * Whether the item is selected.\n */\n isSelected?: boolean;\n /**\n * Elements that are displayed on the left side of the header. If multiple\n * elements are specified, they are displayed one aside the other.\n */\n leftElements?: ListItemElements;\n /**\n * Function to be executed when the header of the `ListItem` was clicked\n */\n onClick?: MouseEventHandler<HTMLDivElement>;\n /**\n * Function to be executed when the ListItem is closed.\n */\n onClose?: VoidFunction;\n /**\n * Function to be executed when the header of the `ListItem` is pressed for\n * 400 milliseconds.\n */\n onLongPress?: TouchEventHandler<HTMLDivElement>;\n /**\n * Function to be executed when the ListItem is opened.\n */\n onOpen?: VoidFunction;\n /**\n * Elements that are displayed on the right side of the header. If multiple\n * elements are specified, they are displayed one below the other.\n */\n rightElements?: IListItemRightElements;\n /**\n * This will force the background color of the ListItem to be used even if it is closed and not hovered.\n */\n shouldForceBackground?: boolean;\n /**\n * Whether the line should be forced, e.g., so that it is also displayed if the item is the last element in the list.\n */\n shouldForceBottomLine?: boolean;\n /**\n * Whether the hover item should be forced.\n */\n shouldForceHover?: boolean;\n /**\n * Whether the bottom line should be hidden.\n */\n shouldHideBottomLine?: boolean;\n /**\n * Whether the background and border of the shape on which the image or icon of the element is displayed should be\n * hidden.\n */\n shouldHideImageOrIconBackground?: boolean;\n /**\n * If the `ListItem` is expandable, the indicator is displayed on the left\n * side of the header. If this property is set to true, the indicator is\n * hidden.\n */\n shouldHideIndicator?: boolean;\n /**\n * Whether the image should be opened on click.\n */\n shouldOpenImageOnClick?: boolean;\n /**\n * Whether the layout animation should be prevented. This is useful when the\n * `ListItem` is used in a list with a lot of items and the layout animation\n * is not desired.\n */\n shouldPreventLayoutAnimation?: boolean;\n /**\n * This will render the ListItem closed on the first render.\n */\n shouldRenderClosed?: boolean;\n /**\n * Whether the image or icon should be displayed in a round shape. This should always be used for images of persons.\n */\n shouldShowRoundImageOrIcon?: boolean;\n /**\n * Whether a separator should be displayed below this item. In this case, the border is displayed thicker than normal.\n */\n shouldShowSeparatorBelow?: boolean;\n /**\n * Whether a Tooltip should be displayed on hover if the title is cut.\n */\n shouldShowTooltipOnTitleOverflow?: boolean;\n /**\n * Subtitle of the `ListItem` displayed in the head below the title\n */\n subtitle?: ReactNode;\n /**\n * Title of the `ListItem` displayed in the head\n */\n title: ReactNode;\n /**\n * Additional elements to be displayed in the header next to the title.\n */\n titleElement?: ReactNode;\n /**\n * Whether the ListItem Animation should be disabled.\n */\n shouldDisableAnimation?: boolean;\n /**\n * Optional Element to display in the right corner of the image\n */\n cornerElement?: ReactNode;\n /**\n * Optional handler for image load errors.\n */\n onImageError?: (event: SyntheticEvent<HTMLImageElement, Event>, index: number) => void;\n /**\n * Function to be executed if the size are changed.\n */\n onSizeChange?: (sizes: ListItemSize) => void;\n};\n\nexport type ListItemRef = ListItemSize;\n\nconst ListItem = forwardRef<ListItemRef, ListItemProps>(\n (\n {\n backgroundColor,\n careOfLocationId,\n children,\n cornerImage,\n hoverItem,\n icons,\n imageBackground,\n images,\n isDefaultOpen,\n isOpen,\n isTitleGreyed,\n leftElements,\n onClick,\n onClose,\n onLongPress,\n onOpen,\n rightElements,\n shouldShowTooltipOnTitleOverflow = false,\n shouldForceBackground = false,\n shouldForceBottomLine = false,\n shouldForceHover = false,\n shouldHideBottomLine = false,\n shouldOpenImageOnClick = false,\n shouldHideImageOrIconBackground,\n shouldHideIndicator = false,\n shouldPreventLayoutAnimation = false,\n shouldRenderClosed = false,\n shouldShowRoundImageOrIcon,\n shouldShowSeparatorBelow = false,\n subtitle,\n title,\n onImageError,\n onSizeChange,\n titleElement,\n shouldDisableAnimation = false,\n cornerElement,\n isSelected = false,\n },\n ref,\n ) => {\n const {\n isAnyItemExpandable,\n isWrapped,\n openItemUuid,\n updateOpenItemUuid,\n shouldEnableKeyboardHighlighting,\n listGroupUuid,\n listItemUuids,\n registerListItemUuid,\n unregisterListItemUuid,\n activeListItemUuid,\n updateActiveListItemUuid,\n } = useContext(ListContext);\n\n const { isWrapped: isParentAccordionWrapped } = useContext(AccordionContext);\n\n const areaProvider = useContext(AreaContext);\n\n const isInitialRenderRef = useRef(true);\n\n const listItemRef = useRef<HTMLDivElement>(null);\n\n const isInDialog = useIsInsideDialog<HTMLDivElement>(listItemRef);\n\n const uuid = useUuid();\n\n const isExpandable = children !== undefined;\n const isItemOpen = isOpen ?? openItemUuid === uuid;\n\n const onCloseRef = useRef(onClose);\n const onOpenRef = useRef(onOpen);\n\n const [shouldEnableTooltip, setShouldEnableTooltip] = useState(false);\n const [titleWidth, setTitleWidth] = useState(0);\n const [titleMaxWidth, setTitleMaxWidth] = useState(0);\n\n useEffect(() => {\n onCloseRef.current = onClose;\n onOpenRef.current = onOpen;\n }, [isOpen, onClose, onOpen]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (isItemOpen) {\n if (typeof onOpenRef.current === 'function') {\n onOpenRef.current();\n }\n } else if (typeof onCloseRef.current === 'function') {\n onCloseRef.current();\n }\n }, [isItemOpen]);\n\n const handleHeadClick = useCallback<MouseEventHandler<HTMLDivElement>>(\n (event) => {\n if (isExpandable) {\n updateOpenItemUuid(uuid);\n }\n\n if (typeof onClick === 'function') {\n onClick(event);\n }\n },\n [isExpandable, onClick, updateOpenItemUuid, uuid],\n );\n\n useEffect(() => {\n if (isDefaultOpen) {\n updateOpenItemUuid(uuid, { shouldOnlyOpen: true });\n }\n }, [isDefaultOpen, updateOpenItemUuid, uuid]);\n\n const isClickable = typeof onClick === 'function' || isExpandable;\n\n useEffect(() => {\n if (typeof onSizeChange === 'function') {\n onSizeChange({\n titleWidth,\n titleMaxWidth,\n });\n }\n }, [onSizeChange, titleMaxWidth, titleWidth]);\n\n useImperativeHandle(\n ref,\n () => ({\n titleWidth,\n titleMaxWidth,\n }),\n [titleMaxWidth, titleWidth],\n );\n\n const handleTitleWidthChange = useCallback((width: number, maxWidth: number) => {\n setTitleWidth(width);\n setTitleMaxWidth(maxWidth);\n }, []);\n\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlighting,\n );\n\n const isInKeyboardNavigationGroup =\n shouldEnableKeyboardHighlighting &&\n typeof listGroupUuid === 'string' &&\n typeof updateActiveListItemUuid === 'function';\n\n useEffect(() => {\n if (\n shouldEnableKeyboardHighlighting &&\n typeof registerListItemUuid === 'function' &&\n typeof unregisterListItemUuid === 'function'\n ) {\n registerListItemUuid(uuid);\n\n return () => {\n unregisterListItemUuid(uuid);\n };\n }\n\n return undefined;\n }, [shouldEnableKeyboardHighlighting, registerListItemUuid, unregisterListItemUuid, uuid]);\n\n const tabIndex = useMemo(() => {\n if (isInKeyboardNavigationGroup) {\n const isGroupTabStop =\n activeListItemUuid != null\n ? activeListItemUuid === uuid\n : listItemUuids?.[0] === uuid;\n\n return isGroupTabStop ? 0 : -1;\n }\n\n return shouldEnableKeyboardHighlighting ? 0 : -1;\n }, [\n activeListItemUuid,\n isInKeyboardNavigationGroup,\n listItemUuids,\n shouldEnableKeyboardHighlighting,\n uuid,\n ]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n const isCurrentListItemTarget = event.currentTarget === event.target;\n const currentListItemElement = event.currentTarget as HTMLDivElement;\n const targetElement = event.target as HTMLElement | null;\n\n if (\n shouldEnableKeyboardHighlighting &&\n handleHorizontalArrowNavigation({\n event,\n currentListItemElement,\n targetElement,\n isCurrentListItemTarget,\n })\n ) {\n return;\n }\n\n if (\n handleVerticalListGroupNavigation({\n event,\n isCurrentListItemTarget,\n isInKeyboardNavigationGroup,\n listItemUuids,\n currentUuid: uuid,\n listGroupUuid,\n updateActiveListItemUuid,\n })\n ) {\n return;\n }\n\n if (\n isCurrentListItemTarget &&\n shouldEnableKeyboardHighlighting &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n event.preventDefault();\n handleHeadClick(event as unknown as React.MouseEvent<HTMLDivElement>);\n }\n },\n [\n handleHeadClick,\n isInKeyboardNavigationGroup,\n listGroupUuid,\n listItemUuids,\n shouldEnableKeyboardHighlighting,\n updateActiveListItemUuid,\n uuid,\n ],\n );\n\n const { isFocusWithinListItem, handleFocus, handleBlur } = useListItemFocus({\n uuid,\n listGroupUuid,\n isInKeyboardNavigationGroup,\n updateActiveListItemUuid,\n });\n\n useEffect(() => {\n if (\n isInKeyboardNavigationGroup &&\n activeListItemUuid == null &&\n typeof updateActiveListItemUuid === 'function' &&\n listItemUuids?.[0] === uuid\n ) {\n updateActiveListItemUuid(uuid);\n }\n }, [\n activeListItemUuid,\n isInKeyboardNavigationGroup,\n listItemUuids,\n updateActiveListItemUuid,\n uuid,\n ]);\n\n const shouldAllowElementFocus = !shouldEnableKeyboardHighlighting || isFocusWithinListItem;\n\n return (\n <StyledListItem\n as={shouldDisableAnimation ? undefined : motion.div}\n animate={shouldDisableAnimation ? undefined : { height: 'auto', opacity: 1 }}\n className=\"beta-chayns-list-item\"\n exit={shouldDisableAnimation ? undefined : { height: 0, opacity: 0 }}\n initial={shouldDisableAnimation ? undefined : { height: 0, opacity: 0 }}\n key={`list-item-${uuid}`}\n ref={listItemRef}\n data-uuid={`${listGroupUuid ?? ''}---${uuid}`}\n layout={\n shouldPreventLayoutAnimation || shouldDisableAnimation ? undefined : 'position'\n }\n $backgroundColor={backgroundColor}\n $isClickable={isClickable}\n $isInAccordion={\n typeof isParentAccordionWrapped === 'boolean' &&\n !areaProvider.shouldDisableListItemPadding\n }\n $isOpen={isItemOpen}\n $isWrapped={isWrapped}\n $isInDialog={isInDialog}\n $isSelected={isSelected}\n $shouldChangeColor={areaProvider.shouldChangeColor}\n $shouldForceBackground={shouldForceBackground}\n $shouldForceBottomLine={shouldForceBottomLine}\n $shouldHideBottomLine={shouldHideBottomLine}\n $shouldHideIndicator={shouldHideIndicator}\n $shouldShowSeparatorBelow={shouldShowSeparatorBelow}\n data-should-show-keyboard-highlighting={\n shouldShowKeyboardHighlighting ? 'true' : undefined\n }\n tabIndex={tabIndex}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n <Tooltip\n shouldUseFullWidth\n isDisabled={!shouldShowTooltipOnTitleOverflow || !shouldEnableTooltip}\n item={\n <StyledListItemTooltip\n style={{ cursor: 'default' }}\n key={`list-item-tooltip-${uuid}`}\n >\n {title}\n </StyledListItemTooltip>\n }\n >\n <ListItemHead\n hoverItem={hoverItem}\n careOfLocationId={careOfLocationId}\n cornerElement={cornerElement}\n cornerImage={cornerImage}\n icons={icons}\n imageBackground={imageBackground}\n images={images}\n isAnyItemExpandable={isAnyItemExpandable}\n isExpandable={isExpandable}\n isOpen={isItemOpen}\n isTitleGreyed={isTitleGreyed}\n leftElements={leftElements}\n onClick={isClickable ? handleHeadClick : undefined}\n onLongPress={onLongPress}\n shouldForceHover={shouldForceHover}\n rightElements={rightElements}\n shouldHideImageOrIconBackground={shouldHideImageOrIconBackground}\n shouldHideIndicator={shouldHideIndicator}\n shouldOpenImageOnClick={shouldOpenImageOnClick}\n shouldShowRoundImageOrIcon={shouldShowRoundImageOrIcon}\n subtitle={subtitle}\n title={title}\n onTitleWidthChange={handleTitleWidthChange}\n titleElement={titleElement}\n setShouldEnableTooltip={setShouldEnableTooltip}\n shouldDisableAnimation={shouldDisableAnimation}\n onImageError={onImageError}\n shouldAllowElementFocus={shouldAllowElementFocus}\n />\n </Tooltip>\n <AnimatePresence initial={false}>\n {isExpandable && (isItemOpen || shouldRenderClosed) && (\n <ListItemBody\n id={uuid}\n key={`listItemBody-${uuid}`}\n shouldHideBody={shouldRenderClosed && !isItemOpen}\n >\n <AreaContextProvider>{children}</AreaContextProvider>\n </ListItemBody>\n )}\n </AnimatePresence>\n </StyledListItem>\n );\n },\n);\n\nListItem.displayName = 'ListItem';\n\nexport default ListItem;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ListItem.js","names":["_react","require","_react2","_interopRequireWildcard","_uuid","_Accordion","_AreaContextProvider","_List","_List2","_ListItemBody","_interopRequireDefault","_ListItemHead","_ListItem","_Tooltip","_element","_useKeyboardFocusHighlighting","_useListItemFocus","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ListItem","forwardRef","backgroundColor","careOfLocationId","children","cornerImage","hoverItem","icons","imageBackground","images","isDefaultOpen","isOpen","isTitleGreyed","leftElements","onClick","onClose","onLongPress","onOpen","rightElements","shouldShowTooltipOnTitleOverflow","shouldForceBackground","shouldForceBottomLine","shouldForceHover","shouldHideBottomLine","shouldOpenImageOnClick","shouldHideImageOrIconBackground","shouldHideIndicator","shouldPreventLayoutAnimation","shouldRenderClosed","shouldShowRoundImageOrIcon","shouldShowSeparatorBelow","subtitle","title","onImageError","onSizeChange","titleElement","shouldDisableAnimation","cornerElement","isSelected","shouldEnableKeyboardHighlighting","shouldEnableKeyboardHighlightingProp","ref","isAnyItemExpandable","isWrapped","openItemUuid","updateOpenItemUuid","shouldEnableKeyboardHighlightingContext","listGroupUuid","listItemUuids","registerListItemUuid","unregisterListItemUuid","activeListItemUuid","updateActiveListItemUuid","useContext","ListContext","isParentAccordionWrapped","AccordionContext","areaProvider","AreaContext","isInitialRenderRef","useRef","listItemRef","isInDialog","useIsInsideDialog","uuid","useUuid","isExpandable","undefined","isItemOpen","onCloseRef","onOpenRef","shouldEnableTooltip","setShouldEnableTooltip","useState","titleWidth","setTitleWidth","titleMaxWidth","setTitleMaxWidth","useEffect","current","handleHeadClick","useCallback","event","shouldOnlyOpen","isClickable","useImperativeHandle","handleTitleWidthChange","width","maxWidth","shouldShowKeyboardHighlighting","useKeyboardFocusHighlighting","isInKeyboardNavigationGroup","tabIndex","useMemo","handleKeyDown","isCurrentListItemTarget","currentTarget","target","currentListItemElement","targetElement","handleHorizontalArrowNavigation","handleListItemTabNavigation","currentUuid","handleVerticalListGroupNavigation","handleListItemToggleKey","toggleItem","some","handleKey","isFocusWithinListItem","handleFocus","handleBlur","useListItemFocus","createElement","StyledListItem","as","motion","div","animate","height","opacity","className","exit","initial","key","layout","$backgroundColor","$isClickable","$isInAccordion","shouldDisableListItemPadding","$isOpen","$isWrapped","$isInDialog","$isSelected","$shouldChangeColor","shouldChangeColor","$shouldForceBackground","$shouldForceBottomLine","$shouldHideBottomLine","$shouldHideIndicator","$shouldShowSeparatorBelow","onKeyDown","onFocus","onBlur","shouldUseFullWidth","isDisabled","item","StyledListItemTooltip","style","cursor","onTitleWidthChange","AnimatePresence","id","shouldHideBody","displayName","_default","exports"],"sources":["../../../../../src/components/list/list-item/ListItem.tsx"],"sourcesContent":["import { AnimatePresence, motion } from 'motion/react';\nimport React, {\n CSSProperties,\n forwardRef,\n KeyboardEvent,\n MouseEventHandler,\n ReactNode,\n SyntheticEvent,\n TouchEventHandler,\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../../hooks/uuid';\nimport type { IListItemRightElements } from '../../../types/list';\nimport { AccordionContext } from '../../accordion/Accordion';\nimport AreaContextProvider, { AreaContext } from '../../area-provider/AreaContextProvider';\nimport { ListContext } from '../List';\nimport {\n handleHorizontalArrowNavigation,\n handleListItemTabNavigation,\n handleListItemToggleKey,\n handleVerticalListGroupNavigation,\n} from '../List.utils';\nimport ListItemBody from './list-item-body/ListItemBody';\nimport ListItemHead from './list-item-head/ListItemHead';\nimport { StyledListItem, StyledListItemTooltip } from './ListItem.styles';\nimport Tooltip from '../../tooltip/Tooltip';\nimport { useIsInsideDialog } from '../../../hooks/element';\nimport { useKeyboardFocusHighlighting } from '../../../hooks/useKeyboardFocusHighlighting';\nimport { useListItemFocus } from './useListItemFocus';\n\nexport type ListItemElements = [ReactNode, ...ReactNode[]];\n\nexport interface ListItemSize {\n titleWidth: number;\n titleMaxWidth: number;\n}\n\nexport type ListItemProps = {\n /**\n * The background color of the `ListItem`.\n */\n backgroundColor?: CSSProperties['backgroundColor'];\n /**\n * DEPRECATED: Use `cornerImage` instead.\n */\n careOfLocationId?: number;\n /**\n * The content of the `ListItem` body. When the `ListItem` has children,\n * it can be opened and also gets an icon as an indicator automatically.\n */\n children?: ReactNode;\n /**\n * The image that is displayed in the bottom right corner of the grouped image of list item.\n */\n cornerImage?: string;\n /**\n * Element that is displayed when hovering over the `ListItem` on the right\n * side. On mobile devices, this element is not displayed.\n */\n hoverItem?: ReactNode;\n /**\n * The FontAwesome or tobit icons to render like an image on the left side\n * of the header. Multiple icons are stacked. See the `Icon` component\n * documentation for more information.\n */\n icons?: string[];\n /**\n * The background of the image. This is only used if images are passed.\n */\n imageBackground?: CSSProperties['background'];\n /**\n * A list of image URLs that are displayed on the left side of the header.\n * If multiple URLs are passed, the image is assembled from the first three\n * image URLs as a puzzle.\n */\n images?: string[];\n /**\n * This can be used to automatically expand the `ListItem` during the first render.\n */\n isDefaultOpen?: boolean;\n /**\n * This overrides the internal opening state of the item and makes it controlled.\n */\n isOpen?: boolean;\n /**\n * Whether the ListItem locks disabled but has full functionality.\n */\n isTitleGreyed?: boolean;\n /**\n * Whether the item is selected.\n */\n isSelected?: boolean;\n /**\n * Elements that are displayed on the left side of the header. If multiple\n * elements are specified, they are displayed one aside the other.\n */\n leftElements?: ListItemElements;\n /**\n * Function to be executed when the header of the `ListItem` was clicked\n */\n onClick?: MouseEventHandler<HTMLDivElement>;\n /**\n * Function to be executed when the ListItem is closed.\n */\n onClose?: VoidFunction;\n /**\n * Function to be executed when the header of the `ListItem` is pressed for\n * 400 milliseconds.\n */\n onLongPress?: TouchEventHandler<HTMLDivElement>;\n /**\n * Function to be executed when the ListItem is opened.\n */\n onOpen?: VoidFunction;\n /**\n * Elements that are displayed on the right side of the header. If multiple\n * elements are specified, they are displayed one below the other.\n */\n rightElements?: IListItemRightElements;\n /**\n * This will force the background color of the ListItem to be used even if it is closed and not hovered.\n */\n shouldForceBackground?: boolean;\n /**\n * Whether the line should be forced, e.g., so that it is also displayed if the item is the last element in the list.\n */\n shouldForceBottomLine?: boolean;\n /**\n * Whether the hover item should be forced.\n */\n shouldForceHover?: boolean;\n /**\n * Whether the bottom line should be hidden.\n */\n shouldHideBottomLine?: boolean;\n /**\n * Whether the background and border of the shape on which the image or icon of the element is displayed should be\n * hidden.\n */\n shouldHideImageOrIconBackground?: boolean;\n /**\n * If the `ListItem` is expandable, the indicator is displayed on the left\n * side of the header. If this property is set to true, the indicator is\n * hidden.\n */\n shouldHideIndicator?: boolean;\n /**\n * Whether the image should be opened on click.\n */\n shouldOpenImageOnClick?: boolean;\n /**\n * Whether the layout animation should be prevented. This is useful when the\n * `ListItem` is used in a list with a lot of items and the layout animation\n * is not desired.\n */\n shouldPreventLayoutAnimation?: boolean;\n /**\n * This will render the ListItem closed on the first render.\n */\n shouldRenderClosed?: boolean;\n /**\n * Whether the image or icon should be displayed in a round shape. This should always be used for images of persons.\n */\n shouldShowRoundImageOrIcon?: boolean;\n /**\n * Whether a separator should be displayed below this item. In this case, the border is displayed thicker than normal.\n */\n shouldShowSeparatorBelow?: boolean;\n /**\n * Whether a Tooltip should be displayed on hover if the title is cut.\n */\n shouldShowTooltipOnTitleOverflow?: boolean;\n /**\n * Subtitle of the `ListItem` displayed in the head below the title\n */\n subtitle?: ReactNode;\n /**\n * Title of the `ListItem` displayed in the head\n */\n title: ReactNode;\n /**\n * Additional elements to be displayed in the header next to the title.\n */\n titleElement?: ReactNode;\n /**\n * Whether the ListItem Animation should be disabled.\n */\n shouldDisableAnimation?: boolean;\n /**\n * Optional Element to display in the right corner of the image\n */\n cornerElement?: ReactNode;\n /**\n * Optional handler for image load errors.\n */\n onImageError?: (event: SyntheticEvent<HTMLImageElement, Event>, index: number) => void;\n /**\n * Function to be executed if the size are changed.\n */\n onSizeChange?: (sizes: ListItemSize) => void;\n /**\n * Enables keyboard-only focus highlighting. Overrides the value from the List context.\n */\n shouldEnableKeyboardHighlighting?: boolean;\n};\n\nexport type ListItemRef = ListItemSize;\n\nconst ListItem = forwardRef<ListItemRef, ListItemProps>(\n (\n {\n backgroundColor,\n careOfLocationId,\n children,\n cornerImage,\n hoverItem,\n icons,\n imageBackground,\n images,\n isDefaultOpen,\n isOpen,\n isTitleGreyed,\n leftElements,\n onClick,\n onClose,\n onLongPress,\n onOpen,\n rightElements,\n shouldShowTooltipOnTitleOverflow = false,\n shouldForceBackground = false,\n shouldForceBottomLine = false,\n shouldForceHover = false,\n shouldHideBottomLine = false,\n shouldOpenImageOnClick = false,\n shouldHideImageOrIconBackground,\n shouldHideIndicator = false,\n shouldPreventLayoutAnimation = false,\n shouldRenderClosed = false,\n shouldShowRoundImageOrIcon,\n shouldShowSeparatorBelow = false,\n subtitle,\n title,\n onImageError,\n onSizeChange,\n titleElement,\n shouldDisableAnimation = false,\n cornerElement,\n isSelected = false,\n shouldEnableKeyboardHighlighting: shouldEnableKeyboardHighlightingProp,\n },\n ref,\n ) => {\n const {\n isAnyItemExpandable,\n isWrapped,\n openItemUuid,\n updateOpenItemUuid,\n shouldEnableKeyboardHighlighting: shouldEnableKeyboardHighlightingContext,\n listGroupUuid,\n listItemUuids,\n registerListItemUuid,\n unregisterListItemUuid,\n activeListItemUuid,\n updateActiveListItemUuid,\n } = useContext(ListContext);\n\n const shouldEnableKeyboardHighlighting =\n shouldEnableKeyboardHighlightingProp ?? shouldEnableKeyboardHighlightingContext;\n\n const { isWrapped: isParentAccordionWrapped } = useContext(AccordionContext);\n\n const areaProvider = useContext(AreaContext);\n\n const isInitialRenderRef = useRef(true);\n\n const listItemRef = useRef<HTMLDivElement>(null);\n\n const isInDialog = useIsInsideDialog<HTMLDivElement>(listItemRef);\n\n const uuid = useUuid();\n\n const isExpandable = children !== undefined;\n const isItemOpen = isOpen ?? openItemUuid === uuid;\n\n const onCloseRef = useRef(onClose);\n const onOpenRef = useRef(onOpen);\n\n const [shouldEnableTooltip, setShouldEnableTooltip] = useState(false);\n const [titleWidth, setTitleWidth] = useState(0);\n const [titleMaxWidth, setTitleMaxWidth] = useState(0);\n\n useEffect(() => {\n onCloseRef.current = onClose;\n onOpenRef.current = onOpen;\n }, [isOpen, onClose, onOpen]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (isItemOpen) {\n if (typeof onOpenRef.current === 'function') {\n onOpenRef.current();\n }\n } else if (typeof onCloseRef.current === 'function') {\n onCloseRef.current();\n }\n }, [isItemOpen]);\n\n const handleHeadClick = useCallback<MouseEventHandler<HTMLDivElement>>(\n (event) => {\n if (isExpandable) {\n updateOpenItemUuid(uuid);\n }\n\n if (typeof onClick === 'function') {\n onClick(event);\n }\n },\n [isExpandable, onClick, updateOpenItemUuid, uuid],\n );\n\n useEffect(() => {\n if (isDefaultOpen) {\n updateOpenItemUuid(uuid, { shouldOnlyOpen: true });\n }\n }, [isDefaultOpen, updateOpenItemUuid, uuid]);\n\n const isClickable = typeof onClick === 'function' || isExpandable;\n\n useEffect(() => {\n if (typeof onSizeChange === 'function') {\n onSizeChange({\n titleWidth,\n titleMaxWidth,\n });\n }\n }, [onSizeChange, titleMaxWidth, titleWidth]);\n\n useImperativeHandle(\n ref,\n () => ({\n titleWidth,\n titleMaxWidth,\n }),\n [titleMaxWidth, titleWidth],\n );\n\n const handleTitleWidthChange = useCallback((width: number, maxWidth: number) => {\n setTitleWidth(width);\n setTitleMaxWidth(maxWidth);\n }, []);\n\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlighting,\n );\n\n const isInKeyboardNavigationGroup =\n shouldEnableKeyboardHighlighting &&\n typeof listGroupUuid === 'string' &&\n typeof updateActiveListItemUuid === 'function';\n\n useEffect(() => {\n if (\n shouldEnableKeyboardHighlighting &&\n typeof registerListItemUuid === 'function' &&\n typeof unregisterListItemUuid === 'function'\n ) {\n registerListItemUuid(uuid);\n\n return () => {\n unregisterListItemUuid(uuid);\n };\n }\n\n return undefined;\n }, [shouldEnableKeyboardHighlighting, registerListItemUuid, unregisterListItemUuid, uuid]);\n\n const tabIndex = useMemo(\n () => (shouldEnableKeyboardHighlighting ? 0 : -1),\n [shouldEnableKeyboardHighlighting],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n const isCurrentListItemTarget = event.currentTarget === event.target;\n const currentListItemElement = event.currentTarget as HTMLDivElement;\n const targetElement = event.target as HTMLElement | null;\n\n [\n () =>\n shouldEnableKeyboardHighlighting &&\n handleHorizontalArrowNavigation({\n event,\n currentListItemElement,\n targetElement,\n isCurrentListItemTarget,\n }),\n () =>\n handleListItemTabNavigation({\n event,\n currentListItemElement,\n targetElement,\n isCurrentListItemTarget,\n isInKeyboardNavigationGroup,\n listItemUuids,\n currentUuid: uuid,\n listGroupUuid,\n updateActiveListItemUuid,\n }),\n () =>\n handleVerticalListGroupNavigation({\n event,\n isCurrentListItemTarget,\n isInKeyboardNavigationGroup,\n listItemUuids,\n currentUuid: uuid,\n listGroupUuid,\n updateActiveListItemUuid,\n }),\n () =>\n handleListItemToggleKey({\n event,\n isCurrentListItemTarget,\n isExpandable,\n isItemOpen,\n shouldEnableKeyboardHighlighting,\n toggleItem: () =>\n handleHeadClick(\n event as unknown as React.MouseEvent<HTMLDivElement>,\n ),\n }),\n ].some((handleKey) => handleKey());\n },\n [\n handleHeadClick,\n isExpandable,\n isInKeyboardNavigationGroup,\n isItemOpen,\n listGroupUuid,\n listItemUuids,\n shouldEnableKeyboardHighlighting,\n updateActiveListItemUuid,\n uuid,\n ],\n );\n\n const { isFocusWithinListItem, handleFocus, handleBlur } = useListItemFocus({\n uuid,\n listGroupUuid,\n isInKeyboardNavigationGroup,\n updateActiveListItemUuid,\n });\n\n useEffect(() => {\n if (\n isInKeyboardNavigationGroup &&\n activeListItemUuid == null &&\n typeof updateActiveListItemUuid === 'function' &&\n listItemUuids?.[0] === uuid\n ) {\n updateActiveListItemUuid(uuid);\n }\n }, [\n activeListItemUuid,\n isInKeyboardNavigationGroup,\n listItemUuids,\n updateActiveListItemUuid,\n uuid,\n ]);\n\n return (\n <StyledListItem\n as={shouldDisableAnimation ? undefined : motion.div}\n animate={shouldDisableAnimation ? undefined : { height: 'auto', opacity: 1 }}\n className=\"beta-chayns-list-item\"\n exit={shouldDisableAnimation ? undefined : { height: 0, opacity: 0 }}\n initial={shouldDisableAnimation ? undefined : { height: 0, opacity: 0 }}\n key={`list-item-${uuid}`}\n ref={listItemRef}\n data-uuid={`${listGroupUuid ?? ''}---${uuid}`}\n layout={\n shouldPreventLayoutAnimation || shouldDisableAnimation ? undefined : 'position'\n }\n $backgroundColor={backgroundColor}\n $isClickable={isClickable}\n $isInAccordion={\n typeof isParentAccordionWrapped === 'boolean' &&\n !areaProvider.shouldDisableListItemPadding\n }\n $isOpen={isItemOpen}\n $isWrapped={isWrapped}\n $isInDialog={isInDialog}\n $isSelected={isSelected}\n $shouldChangeColor={areaProvider.shouldChangeColor}\n $shouldForceBackground={shouldForceBackground}\n $shouldForceBottomLine={shouldForceBottomLine}\n $shouldHideBottomLine={shouldHideBottomLine}\n $shouldHideIndicator={shouldHideIndicator}\n $shouldShowSeparatorBelow={shouldShowSeparatorBelow}\n data-should-show-keyboard-highlighting={\n shouldShowKeyboardHighlighting ? 'true' : undefined\n }\n tabIndex={tabIndex}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n <Tooltip\n shouldUseFullWidth\n isDisabled={!shouldShowTooltipOnTitleOverflow || !shouldEnableTooltip}\n item={\n <StyledListItemTooltip\n style={{ cursor: 'default' }}\n key={`list-item-tooltip-${uuid}`}\n >\n {title}\n </StyledListItemTooltip>\n }\n >\n <ListItemHead\n hoverItem={hoverItem}\n careOfLocationId={careOfLocationId}\n cornerElement={cornerElement}\n cornerImage={cornerImage}\n icons={icons}\n imageBackground={imageBackground}\n images={images}\n isAnyItemExpandable={isAnyItemExpandable}\n isExpandable={isExpandable}\n isOpen={isItemOpen}\n isTitleGreyed={isTitleGreyed}\n leftElements={leftElements}\n onClick={isClickable ? handleHeadClick : undefined}\n onLongPress={onLongPress}\n shouldForceHover={shouldForceHover}\n rightElements={rightElements}\n shouldHideImageOrIconBackground={shouldHideImageOrIconBackground}\n shouldHideIndicator={shouldHideIndicator}\n shouldOpenImageOnClick={shouldOpenImageOnClick}\n shouldShowRoundImageOrIcon={shouldShowRoundImageOrIcon}\n subtitle={subtitle}\n title={title}\n onTitleWidthChange={handleTitleWidthChange}\n titleElement={titleElement}\n setShouldEnableTooltip={setShouldEnableTooltip}\n shouldDisableAnimation={shouldDisableAnimation}\n onImageError={onImageError}\n />\n </Tooltip>\n <AnimatePresence initial={false}>\n {isExpandable && (isItemOpen || shouldRenderClosed) && (\n <ListItemBody\n id={uuid}\n key={`listItemBody-${uuid}`}\n shouldHideBody={shouldRenderClosed && !isItemOpen}\n >\n <AreaContextProvider>{children}</AreaContextProvider>\n </ListItemBody>\n )}\n </AnimatePresence>\n </StyledListItem>\n );\n },\n);\n\nListItem.displayName = 'ListItem';\n\nexport default ListItem;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -88,12 +88,10 @@ const StyledListItem = exports.StyledListItem = _styledComponents.default.div`
|
|
|
88
88
|
}) => $isWrapped && (0, _styledComponents.css)`
|
|
89
89
|
padding-left: 26px;
|
|
90
90
|
`}
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
|
|
92
|
+
&[data-should-show-keyboard-highlighting='true']:focus-visible {
|
|
93
93
|
transition: none;
|
|
94
|
-
${_keyboardFocusHighlighting.keyboardFocusHighlightingRingCss}
|
|
95
|
-
color: var(--chayns-color--text);
|
|
96
|
-
outline: solid 2px color-mix(in srgb, white 70%, transparent);
|
|
94
|
+
${_keyboardFocusHighlighting.keyboardFocusHighlightingRingCss};
|
|
97
95
|
overflow: visible;
|
|
98
96
|
}
|
|
99
97
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItem.styles.js","names":["_styledComponents","_interopRequireWildcard","require","_keyboardFocusHighlighting","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledListItem","exports","styled","div","$isInAccordion","$shouldHideIndicator","css","$isOpen","$shouldChangeColor","$shouldForceBackground","theme","$isInDialog","$isSelected","cardBackgroundOpacity","$backgroundColor","$isClickable","$isWrapped","$shouldHideBottomLine","$shouldForceBottomLine","$shouldShowSeparatorBelow","accordionLines","undefined","keyboardFocusHighlightingRingCss","StyledListItemTooltip"],"sources":["../../../../../src/components/list/list-item/ListItem.styles.ts"],"sourcesContent":["import type { HTMLMotionProps } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { Theme } from '../../color-scheme-provider/ColorSchemeProvider';\nimport { CSSProperties } from 'react';\nimport { keyboardFocusHighlightingRingCss } from '../../../utils/keyboardFocusHighlighting.styles';\n\ntype StyledListItemProps = HTMLMotionProps<'div'> & {\n $backgroundColor?: CSSProperties['backgroundColor'];\n $isClickable: boolean;\n $isInAccordion: boolean;\n $isOpen: boolean;\n $isWrapped: boolean;\n $shouldChangeColor?: boolean;\n $shouldForceBackground?: boolean;\n $shouldForceBottomLine?: boolean;\n $shouldHideBottomLine: boolean;\n $shouldHideIndicator: boolean;\n $shouldShowSeparatorBelow: boolean;\n $isInDialog: boolean;\n $isSelected: boolean;\n};\n\nexport const StyledListItem = styled.div<StyledListItemProps>`\n overflow: hidden;\n transition: background-color 0.3s ease;\n\n ${({ $isInAccordion, $shouldHideIndicator }: StyledListItemProps) =>\n $isInAccordion &&\n css`\n padding-left: ${$shouldHideIndicator ? '16px' : '8px'};\n `}\n\n ${({\n $isInAccordion,\n $isOpen,\n $shouldChangeColor,\n $shouldForceBackground,\n theme,\n $isInDialog,\n $isSelected,\n }: StyledListItemProps & {\n theme: Theme;\n }) =>\n ((!$isInAccordion && $isOpen) || $shouldForceBackground || $isSelected) &&\n css`\n background-color: rgba(\n ${$shouldChangeColor || $isInDialog ? theme['102-rgb'] : theme['100-rgb']},\n ${theme.cardBackgroundOpacity}\n );\n `}\n\n ${({ $backgroundColor, $isInAccordion, $isOpen, $shouldForceBackground }) =>\n $backgroundColor &&\n ((!$isInAccordion && $isOpen) || $shouldForceBackground) &&\n css`\n background-color: ${$backgroundColor} !important;\n `}\n\n ${({\n $isClickable,\n $isInAccordion,\n $shouldChangeColor,\n $isInDialog,\n theme,\n }: StyledListItemProps & {\n theme: Theme;\n }) =>\n $isClickable &&\n !$isInAccordion &&\n css`\n &&:hover {\n background-color: rgba(\n ${$shouldChangeColor || $isInDialog ? theme['102-rgb'] : theme['100-rgb']},\n ${theme.cardBackgroundOpacity}\n );\n }\n `}\n\n ${({\n $isInAccordion,\n $isOpen,\n $isWrapped,\n $shouldHideBottomLine,\n $shouldForceBottomLine,\n $shouldShowSeparatorBelow,\n theme,\n }: StyledListItemProps & { theme: Theme }) => {\n if (\n $shouldShowSeparatorBelow ||\n ((!$isOpen || $isWrapped || $isInAccordion) &&\n theme.accordionLines &&\n !$shouldHideBottomLine)\n ) {\n if ($shouldForceBottomLine) {\n return css`\n border-bottom: ${$shouldShowSeparatorBelow ? '4px' : '1px'} solid\n rgba(${theme['headline-rgb']}, 1);\n `;\n }\n\n return css`\n &&:not(:last-child) {\n border-bottom: ${$shouldShowSeparatorBelow ? '4px' : '1px'} solid\n rgba(${theme['headline-rgb']}, 1);\n }\n `;\n }\n\n return undefined;\n }}\n\n ${({ $isWrapped }) =>\n $isWrapped &&\n css`\n padding-left: 26px;\n `}\n\n
|
|
1
|
+
{"version":3,"file":"ListItem.styles.js","names":["_styledComponents","_interopRequireWildcard","require","_keyboardFocusHighlighting","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledListItem","exports","styled","div","$isInAccordion","$shouldHideIndicator","css","$isOpen","$shouldChangeColor","$shouldForceBackground","theme","$isInDialog","$isSelected","cardBackgroundOpacity","$backgroundColor","$isClickable","$isWrapped","$shouldHideBottomLine","$shouldForceBottomLine","$shouldShowSeparatorBelow","accordionLines","undefined","keyboardFocusHighlightingRingCss","StyledListItemTooltip"],"sources":["../../../../../src/components/list/list-item/ListItem.styles.ts"],"sourcesContent":["import type { HTMLMotionProps } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { Theme } from '../../color-scheme-provider/ColorSchemeProvider';\nimport { CSSProperties } from 'react';\nimport { keyboardFocusHighlightingRingCss } from '../../../utils/keyboardFocusHighlighting.styles';\n\ntype StyledListItemProps = HTMLMotionProps<'div'> & {\n $backgroundColor?: CSSProperties['backgroundColor'];\n $isClickable: boolean;\n $isInAccordion: boolean;\n $isOpen: boolean;\n $isWrapped: boolean;\n $shouldChangeColor?: boolean;\n $shouldForceBackground?: boolean;\n $shouldForceBottomLine?: boolean;\n $shouldHideBottomLine: boolean;\n $shouldHideIndicator: boolean;\n $shouldShowSeparatorBelow: boolean;\n $isInDialog: boolean;\n $isSelected: boolean;\n};\n\nexport const StyledListItem = styled.div<StyledListItemProps>`\n overflow: hidden;\n transition: background-color 0.3s ease;\n\n ${({ $isInAccordion, $shouldHideIndicator }: StyledListItemProps) =>\n $isInAccordion &&\n css`\n padding-left: ${$shouldHideIndicator ? '16px' : '8px'};\n `}\n\n ${({\n $isInAccordion,\n $isOpen,\n $shouldChangeColor,\n $shouldForceBackground,\n theme,\n $isInDialog,\n $isSelected,\n }: StyledListItemProps & {\n theme: Theme;\n }) =>\n ((!$isInAccordion && $isOpen) || $shouldForceBackground || $isSelected) &&\n css`\n background-color: rgba(\n ${$shouldChangeColor || $isInDialog ? theme['102-rgb'] : theme['100-rgb']},\n ${theme.cardBackgroundOpacity}\n );\n `}\n\n ${({ $backgroundColor, $isInAccordion, $isOpen, $shouldForceBackground }) =>\n $backgroundColor &&\n ((!$isInAccordion && $isOpen) || $shouldForceBackground) &&\n css`\n background-color: ${$backgroundColor} !important;\n `}\n\n ${({\n $isClickable,\n $isInAccordion,\n $shouldChangeColor,\n $isInDialog,\n theme,\n }: StyledListItemProps & {\n theme: Theme;\n }) =>\n $isClickable &&\n !$isInAccordion &&\n css`\n &&:hover {\n background-color: rgba(\n ${$shouldChangeColor || $isInDialog ? theme['102-rgb'] : theme['100-rgb']},\n ${theme.cardBackgroundOpacity}\n );\n }\n `}\n\n ${({\n $isInAccordion,\n $isOpen,\n $isWrapped,\n $shouldHideBottomLine,\n $shouldForceBottomLine,\n $shouldShowSeparatorBelow,\n theme,\n }: StyledListItemProps & { theme: Theme }) => {\n if (\n $shouldShowSeparatorBelow ||\n ((!$isOpen || $isWrapped || $isInAccordion) &&\n theme.accordionLines &&\n !$shouldHideBottomLine)\n ) {\n if ($shouldForceBottomLine) {\n return css`\n border-bottom: ${$shouldShowSeparatorBelow ? '4px' : '1px'} solid\n rgba(${theme['headline-rgb']}, 1);\n `;\n }\n\n return css`\n &&:not(:last-child) {\n border-bottom: ${$shouldShowSeparatorBelow ? '4px' : '1px'} solid\n rgba(${theme['headline-rgb']}, 1);\n }\n `;\n }\n\n return undefined;\n }}\n\n ${({ $isWrapped }) =>\n $isWrapped &&\n css`\n padding-left: 26px;\n `}\n \n &[data-should-show-keyboard-highlighting='true']:focus-visible {\n transition: none;\n ${keyboardFocusHighlightingRingCss};\n overflow: visible;\n }\n`;\n\nexport const StyledListItemTooltip = styled.div`\n padding: 6px;\n`;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -44,8 +44,7 @@ const ListItemHead = ({
|
|
|
44
44
|
shouldDisableAnimation = false,
|
|
45
45
|
cornerElement,
|
|
46
46
|
onTitleWidthChange,
|
|
47
|
-
onImageError
|
|
48
|
-
shouldAllowElementFocus = true
|
|
47
|
+
onImageError
|
|
49
48
|
}) => {
|
|
50
49
|
const [shouldShowHoverItem, setShouldShowHoverItem] = (0, _react2.useState)(false);
|
|
51
50
|
const [titleMaxWidth, setTitleMaxWidth] = (0, _react2.useState)(0);
|
|
@@ -120,33 +119,6 @@ const ListItemHead = ({
|
|
|
120
119
|
className: internalIconStyle
|
|
121
120
|
});
|
|
122
121
|
}, [theme.accordionIcon, theme.iconStyle]);
|
|
123
|
-
(0, _react2.useEffect)(() => {
|
|
124
|
-
const leftElementWrapper = leftElementRef.current;
|
|
125
|
-
if (!leftElementWrapper) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
const focusableElements = Array.from(leftElementWrapper.querySelectorAll('a[href], button, input, select, textarea, [tabindex], [contenteditable="true"]'));
|
|
129
|
-
focusableElements.forEach(element => {
|
|
130
|
-
const currentElement = element;
|
|
131
|
-
const datasetKey = 'listItemLeftElementOriginalTabIndex';
|
|
132
|
-
if (shouldAllowElementFocus) {
|
|
133
|
-
const originalTabIndex = currentElement.dataset[datasetKey];
|
|
134
|
-
if (typeof originalTabIndex === 'string') {
|
|
135
|
-
if (originalTabIndex === '') {
|
|
136
|
-
currentElement.removeAttribute('tabindex');
|
|
137
|
-
} else {
|
|
138
|
-
currentElement.setAttribute('tabindex', originalTabIndex);
|
|
139
|
-
}
|
|
140
|
-
delete currentElement.dataset[datasetKey];
|
|
141
|
-
}
|
|
142
|
-
} else {
|
|
143
|
-
if (typeof currentElement.dataset[datasetKey] !== 'string') {
|
|
144
|
-
currentElement.dataset[datasetKey] = currentElement.getAttribute('tabindex') ?? '';
|
|
145
|
-
}
|
|
146
|
-
currentElement.setAttribute('tabindex', '-1');
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
}, [leftElements, shouldAllowElementFocus]);
|
|
150
122
|
return /*#__PURE__*/_react2.default.createElement(_ListItemHead.StyledListItemHead, {
|
|
151
123
|
as: shouldDisableAnimation ? undefined : _react.motion.div,
|
|
152
124
|
animate: shouldDisableAnimation ? undefined : {
|
|
@@ -190,16 +162,13 @@ const ListItemHead = ({
|
|
|
190
162
|
shouldShowMultilineTitle: shouldShowMultilineTitle,
|
|
191
163
|
rightElements: rightElements,
|
|
192
164
|
onTitleWidthChange: handleTitleWidthChange,
|
|
193
|
-
onResize: handleShowTooltipResize
|
|
194
|
-
shouldAllowRightElementFocus: shouldAllowElementFocus
|
|
165
|
+
onResize: handleShowTooltipResize
|
|
195
166
|
})), shouldShowSubtitleRow && /*#__PURE__*/_react2.default.createElement(_ListItemHead.StyledListItemHeadSubtitle, null, /*#__PURE__*/_react2.default.createElement(_ListItemSubtitle.default, {
|
|
196
167
|
subtitle: subtitle,
|
|
197
168
|
isOpen: isOpen,
|
|
198
|
-
rightElements: rightElements
|
|
199
|
-
shouldAllowRightElementFocus: shouldAllowElementFocus
|
|
169
|
+
rightElements: rightElements
|
|
200
170
|
})))), /*#__PURE__*/_react2.default.createElement(_ListItemRightElement.default, {
|
|
201
|
-
rightElements: rightElements
|
|
202
|
-
shouldAllowFocus: shouldAllowElementFocus
|
|
171
|
+
rightElements: rightElements
|
|
203
172
|
}), hoverItem && /*#__PURE__*/_react2.default.createElement(_ListItemHead.StyledMotionListItemHeadHoverItemWrapper, {
|
|
204
173
|
className: "beta-chayns-list-item-hover-item",
|
|
205
174
|
animate: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemHead.js","names":["_react","require","_react2","_interopRequireWildcard","_ListItemIcon","_interopRequireDefault","_ListItemImage","_ListItemHead","_ListItemTitle","_ListItemSubtitle","_ListItemRightElement","_styledComponents","_Icon","_icon","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ListItemHead","careOfLocationId","cornerImage","hoverItem","icons","imageBackground","images","isAnyItemExpandable","isExpandable","isOpen","isTitleGreyed","leftElements","onClick","onLongPress","rightElements","shouldHideImageOrIconBackground","shouldHideIndicator","shouldOpenImageOnClick","shouldShowRoundImageOrIcon","subtitle","shouldForceHover","title","titleElement","setShouldEnableTooltip","shouldDisableAnimation","cornerElement","onTitleWidthChange","onImageError","shouldAllowElementFocus","shouldShowHoverItem","setShouldShowHoverItem","useState","titleMaxWidth","setTitleMaxWidth","titleWidth","setTitleWidth","longPressTimeoutRef","useRef","resizeSkipRef","leftElementRef","theme","useTheme","shouldShowSubtitleRow","shouldShowMultilineTitle","useMemo","useEffect","window","setTimeout","current","handleShowTooltipResize","useCallback","entries","_entries$","_entries$2","target","clientWidth","el","scrollWidth","handleMouseEnter","handleMouseLeave","handleTouchStart","event","handleTouchEnd","clearTimeout","handleTitleWidthChange","width","iconOrImageElement","createElement","shouldHideBackground","shouldShowRoundIcon","shouldShowRoundImage","undefined","expandIcon","internalIcon","getIsExpandableIcon","accordionIcon","internalIconStyle","iconStyle","StyledUnicodeIcon","$icon","className","leftElementWrapper","focusableElements","Array","from","querySelectorAll","forEach","element","currentElement","datasetKey","originalTabIndex","dataset","removeAttribute","setAttribute","getAttribute","StyledListItemHead","as","motion","div","animate","opacity","initial","transition","duration","type","$isClickable","$isAnyItemExpandable","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","StyledListItemHeadLeftWrapper","StyledListItemHeadIndicator","rotate","StyledListItemHeadLeftElements","ref","StyledListItemHeadContent","$isIconOrImageGiven","$isOpen","LayoutGroup","StyledListItemHeadTitle","layout","onResize","shouldAllowRightElementFocus","StyledListItemHeadSubtitle","shouldAllowFocus","StyledMotionListItemHeadHoverItemWrapper","marginLeft","StyledMotionListItemHeadHoverItem","displayName","_default","exports"],"sources":["../../../../../../src/components/list/list-item/list-item-head/ListItemHead.tsx"],"sourcesContent":["import { LayoutGroup, motion } from 'motion/react';\nimport React, {\n CSSProperties,\n FC,\n MouseEventHandler,\n ReactNode,\n SyntheticEvent,\n TouchEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { IListItemRightElements } from '../../../../types/list';\nimport ListItemIcon from './list-item-icon/ListItemIcon';\nimport ListItemImage from './list-item-image/ListItemImage';\nimport {\n StyledListItemHead,\n StyledListItemHeadContent,\n StyledListItemHeadIndicator,\n StyledListItemHeadLeftElements,\n StyledListItemHeadLeftWrapper,\n StyledListItemHeadSubtitle,\n StyledListItemHeadTitle,\n StyledMotionListItemHeadHoverItem,\n StyledMotionListItemHeadHoverItemWrapper,\n} from './ListItemHead.styles';\nimport ListItemTitle from './list-item-title/ListItemTitle';\nimport ListItemSubtitle from './list-item-subtitle/ListItemSubtitle';\nimport ListItemRightElement from './list-item-right-element/ListItemRightElement';\nimport { useTheme } from 'styled-components';\nimport type { Theme } from '../../../color-scheme-provider/ColorSchemeProvider';\nimport { StyledUnicodeIcon } from '../../../icon/Icon.styles';\nimport { getIsExpandableIcon } from '../../../../utils/icon';\n\ntype ListItemHeadProps = {\n careOfLocationId?: number;\n cornerImage?: string;\n hoverItem?: ReactNode;\n icons?: string[];\n imageBackground?: CSSProperties['background'];\n images?: string[];\n isAnyItemExpandable: boolean;\n isExpandable: boolean;\n isOpen: boolean;\n isTitleGreyed?: boolean;\n leftElements?: ReactNode;\n onClick?: MouseEventHandler<HTMLDivElement>;\n onLongPress?: TouchEventHandler<HTMLDivElement>;\n rightElements?: IListItemRightElements;\n shouldHideImageOrIconBackground?: boolean;\n shouldHideIndicator?: boolean;\n shouldOpenImageOnClick: boolean;\n shouldShowRoundImageOrIcon?: boolean;\n subtitle?: ReactNode;\n title: ReactNode;\n titleElement?: ReactNode;\n shouldForceHover?: boolean;\n setShouldEnableTooltip: (value: boolean) => void;\n shouldDisableAnimation?: boolean;\n cornerElement?: ReactNode;\n onTitleWidthChange: (titleWidth: number, titleMaxWidth: number) => void;\n onImageError?: (event: SyntheticEvent<HTMLImageElement, Event>, index: number) => void;\n shouldAllowElementFocus?: boolean;\n};\n\nconst ListItemHead: FC<ListItemHeadProps> = ({\n careOfLocationId,\n cornerImage,\n hoverItem,\n icons,\n imageBackground,\n images,\n isAnyItemExpandable,\n isExpandable,\n isOpen,\n isTitleGreyed,\n leftElements,\n onClick,\n onLongPress,\n rightElements,\n shouldHideImageOrIconBackground,\n shouldHideIndicator,\n shouldOpenImageOnClick,\n shouldShowRoundImageOrIcon,\n subtitle,\n shouldForceHover,\n title,\n titleElement,\n setShouldEnableTooltip,\n shouldDisableAnimation = false,\n cornerElement,\n onTitleWidthChange,\n onImageError,\n shouldAllowElementFocus = true,\n}) => {\n const [shouldShowHoverItem, setShouldShowHoverItem] = useState(false);\n const [titleMaxWidth, setTitleMaxWidth] = useState(0);\n const [titleWidth, setTitleWidth] = useState(0);\n\n const longPressTimeoutRef = useRef<number>();\n const resizeSkipRef = useRef(true);\n const leftElementRef = useRef<HTMLDivElement>(null);\n\n const theme = useTheme() as Theme;\n\n const shouldShowSubtitleRow =\n subtitle ||\n typeof subtitle === 'string' ||\n (typeof rightElements === 'object' && rightElements && 'bottom' in rightElements);\n\n const shouldShowMultilineTitle = useMemo(() => !subtitle, [subtitle]);\n\n useEffect(() => {\n window.setTimeout(() => {\n resizeSkipRef.current = false;\n }, 200);\n }, []);\n\n useEffect(() => {\n onTitleWidthChange(titleWidth, titleMaxWidth);\n }, [onTitleWidthChange, titleMaxWidth, titleWidth]);\n\n const handleShowTooltipResize = useCallback(\n (entries: ResizeObserverEntry[]) => {\n setTitleWidth(entries[0]?.target.clientWidth ?? 0);\n\n if (resizeSkipRef.current) {\n return;\n }\n\n const el = entries[0]?.target;\n if (!el) return;\n setShouldEnableTooltip(el.scrollWidth > el.clientWidth);\n },\n [setShouldEnableTooltip],\n );\n\n const handleMouseEnter = useCallback(() => setShouldShowHoverItem(true), []);\n\n const handleMouseLeave = useCallback(() => setShouldShowHoverItem(false), []);\n\n const handleTouchStart = useCallback<TouchEventHandler<HTMLDivElement>>(\n (event) => {\n longPressTimeoutRef.current = window.setTimeout(() => {\n if (typeof onLongPress === 'function') {\n onLongPress(event);\n }\n }, 400);\n },\n [onLongPress],\n );\n\n const handleTouchEnd = useCallback(() => {\n clearTimeout(longPressTimeoutRef.current);\n }, []);\n\n const handleTitleWidthChange = useCallback((width: number) => {\n setTitleMaxWidth(width);\n }, []);\n\n const iconOrImageElement = useMemo(() => {\n if (icons) {\n return (\n <ListItemIcon\n icons={icons}\n shouldHideBackground={!!shouldHideImageOrIconBackground}\n shouldShowRoundIcon={!!shouldShowRoundImageOrIcon}\n />\n );\n }\n\n if (images) {\n return (\n <ListItemImage\n cornerElement={cornerElement}\n imageBackground={imageBackground}\n careOfLocationId={careOfLocationId}\n cornerImage={cornerImage}\n images={images}\n onImageError={onImageError}\n shouldOpenImageOnClick={shouldOpenImageOnClick}\n shouldHideBackground={!!shouldHideImageOrIconBackground}\n shouldShowRoundImage={!!shouldShowRoundImageOrIcon}\n />\n );\n }\n\n return undefined;\n }, [\n careOfLocationId,\n cornerElement,\n cornerImage,\n icons,\n imageBackground,\n images,\n onImageError,\n shouldHideImageOrIconBackground,\n shouldOpenImageOnClick,\n shouldShowRoundImageOrIcon,\n ]);\n\n const expandIcon = useMemo(() => {\n const internalIcon = getIsExpandableIcon(theme.accordionIcon);\n const internalIconStyle = theme?.iconStyle ? theme.iconStyle : 'fa-regular';\n return <StyledUnicodeIcon $icon={internalIcon} className={internalIconStyle} />;\n }, [theme.accordionIcon, theme.iconStyle]);\n\n useEffect(() => {\n const leftElementWrapper = leftElementRef.current;\n\n if (!leftElementWrapper) {\n return;\n }\n\n const focusableElements = Array.from(\n leftElementWrapper.querySelectorAll<HTMLElement>(\n 'a[href], button, input, select, textarea, [tabindex], [contenteditable=\"true\"]',\n ),\n );\n\n focusableElements.forEach((element) => {\n const currentElement = element;\n const datasetKey = 'listItemLeftElementOriginalTabIndex';\n\n if (shouldAllowElementFocus) {\n const originalTabIndex = currentElement.dataset[datasetKey];\n\n if (typeof originalTabIndex === 'string') {\n if (originalTabIndex === '') {\n currentElement.removeAttribute('tabindex');\n } else {\n currentElement.setAttribute('tabindex', originalTabIndex);\n }\n\n delete currentElement.dataset[datasetKey];\n }\n } else {\n if (typeof currentElement.dataset[datasetKey] !== 'string') {\n currentElement.dataset[datasetKey] =\n currentElement.getAttribute('tabindex') ?? '';\n }\n\n currentElement.setAttribute('tabindex', '-1');\n }\n });\n }, [leftElements, shouldAllowElementFocus]);\n\n return (\n <StyledListItemHead\n as={shouldDisableAnimation ? undefined : motion.div}\n animate={\n shouldDisableAnimation\n ? undefined\n : {\n opacity: isTitleGreyed ? 0.5 : 1,\n }\n }\n initial={shouldDisableAnimation ? undefined : false}\n transition={shouldDisableAnimation ? undefined : { duration: 0.2, type: 'tween' }}\n className=\"beta-chayns-list-item-head\"\n $isClickable={typeof onClick === 'function' || isExpandable}\n $isAnyItemExpandable={isAnyItemExpandable}\n onClick={onClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onTouchStart={typeof onLongPress === 'function' ? handleTouchStart : undefined}\n onTouchEnd={typeof onLongPress === 'function' ? handleTouchEnd : undefined}\n >\n <StyledListItemHeadLeftWrapper>\n {isAnyItemExpandable && (\n <StyledListItemHeadIndicator\n as={shouldDisableAnimation ? undefined : motion.div}\n animate={shouldDisableAnimation ? undefined : { rotate: isOpen ? 90 : 0 }}\n initial={shouldDisableAnimation ? undefined : false}\n transition={shouldDisableAnimation ? undefined : { type: 'tween' }}\n >\n {isExpandable && !shouldHideIndicator && expandIcon}\n </StyledListItemHeadIndicator>\n )}\n {leftElements && (\n <StyledListItemHeadLeftElements ref={leftElementRef} data-left-element=\"true\">\n {leftElements}\n </StyledListItemHeadLeftElements>\n )}\n {iconOrImageElement}\n </StyledListItemHeadLeftWrapper>\n <StyledListItemHeadContent\n $isIconOrImageGiven={iconOrImageElement !== undefined}\n $isOpen={isOpen}\n >\n <LayoutGroup>\n <StyledListItemHeadTitle\n as={shouldDisableAnimation ? undefined : motion.div}\n layout=\"position\"\n >\n <ListItemTitle\n title={title}\n titleElement={titleElement}\n isOpen={isOpen}\n shouldShowMultilineTitle={shouldShowMultilineTitle}\n rightElements={rightElements}\n onTitleWidthChange={handleTitleWidthChange}\n onResize={handleShowTooltipResize}\n shouldAllowRightElementFocus={shouldAllowElementFocus}\n />\n </StyledListItemHeadTitle>\n {shouldShowSubtitleRow && (\n <StyledListItemHeadSubtitle>\n <ListItemSubtitle\n subtitle={subtitle}\n isOpen={isOpen}\n rightElements={rightElements}\n shouldAllowRightElementFocus={shouldAllowElementFocus}\n />\n </StyledListItemHeadSubtitle>\n )}\n </LayoutGroup>\n </StyledListItemHeadContent>\n <ListItemRightElement\n rightElements={rightElements}\n shouldAllowFocus={shouldAllowElementFocus}\n />\n {hoverItem && (\n <StyledMotionListItemHeadHoverItemWrapper\n className=\"beta-chayns-list-item-hover-item\"\n animate={{\n marginLeft: shouldForceHover || shouldShowHoverItem ? 8 : 0,\n opacity: shouldForceHover || shouldShowHoverItem ? 1 : 0,\n width: shouldForceHover || shouldShowHoverItem ? 'auto' : 0,\n }}\n initial={false}\n transition={{ duration: 0.15, type: 'tween' }}\n >\n <StyledMotionListItemHeadHoverItem>\n {hoverItem}\n </StyledMotionListItemHeadHoverItem>\n </StyledMotionListItemHeadHoverItemWrapper>\n )}\n </StyledListItemHead>\n );\n};\n\nListItemHead.displayName = 'ListItemHead';\n\nexport default ListItemHead;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ListItemHead.js","names":["_react","require","_react2","_interopRequireWildcard","_ListItemIcon","_interopRequireDefault","_ListItemImage","_ListItemHead","_ListItemTitle","_ListItemSubtitle","_ListItemRightElement","_styledComponents","_Icon","_icon","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ListItemHead","careOfLocationId","cornerImage","hoverItem","icons","imageBackground","images","isAnyItemExpandable","isExpandable","isOpen","isTitleGreyed","leftElements","onClick","onLongPress","rightElements","shouldHideImageOrIconBackground","shouldHideIndicator","shouldOpenImageOnClick","shouldShowRoundImageOrIcon","subtitle","shouldForceHover","title","titleElement","setShouldEnableTooltip","shouldDisableAnimation","cornerElement","onTitleWidthChange","onImageError","shouldShowHoverItem","setShouldShowHoverItem","useState","titleMaxWidth","setTitleMaxWidth","titleWidth","setTitleWidth","longPressTimeoutRef","useRef","resizeSkipRef","leftElementRef","theme","useTheme","shouldShowSubtitleRow","shouldShowMultilineTitle","useMemo","useEffect","window","setTimeout","current","handleShowTooltipResize","useCallback","entries","_entries$","_entries$2","target","clientWidth","el","scrollWidth","handleMouseEnter","handleMouseLeave","handleTouchStart","event","handleTouchEnd","clearTimeout","handleTitleWidthChange","width","iconOrImageElement","createElement","shouldHideBackground","shouldShowRoundIcon","shouldShowRoundImage","undefined","expandIcon","internalIcon","getIsExpandableIcon","accordionIcon","internalIconStyle","iconStyle","StyledUnicodeIcon","$icon","className","StyledListItemHead","as","motion","div","animate","opacity","initial","transition","duration","type","$isClickable","$isAnyItemExpandable","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","StyledListItemHeadLeftWrapper","StyledListItemHeadIndicator","rotate","StyledListItemHeadLeftElements","ref","StyledListItemHeadContent","$isIconOrImageGiven","$isOpen","LayoutGroup","StyledListItemHeadTitle","layout","onResize","StyledListItemHeadSubtitle","StyledMotionListItemHeadHoverItemWrapper","marginLeft","StyledMotionListItemHeadHoverItem","displayName","_default","exports"],"sources":["../../../../../../src/components/list/list-item/list-item-head/ListItemHead.tsx"],"sourcesContent":["import { LayoutGroup, motion } from 'motion/react';\nimport React, {\n CSSProperties,\n FC,\n MouseEventHandler,\n ReactNode,\n SyntheticEvent,\n TouchEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { IListItemRightElements } from '../../../../types/list';\nimport ListItemIcon from './list-item-icon/ListItemIcon';\nimport ListItemImage from './list-item-image/ListItemImage';\nimport {\n StyledListItemHead,\n StyledListItemHeadContent,\n StyledListItemHeadIndicator,\n StyledListItemHeadLeftElements,\n StyledListItemHeadLeftWrapper,\n StyledListItemHeadSubtitle,\n StyledListItemHeadTitle,\n StyledMotionListItemHeadHoverItem,\n StyledMotionListItemHeadHoverItemWrapper,\n} from './ListItemHead.styles';\nimport ListItemTitle from './list-item-title/ListItemTitle';\nimport ListItemSubtitle from './list-item-subtitle/ListItemSubtitle';\nimport ListItemRightElement from './list-item-right-element/ListItemRightElement';\nimport { useTheme } from 'styled-components';\nimport type { Theme } from '../../../color-scheme-provider/ColorSchemeProvider';\nimport { StyledUnicodeIcon } from '../../../icon/Icon.styles';\nimport { getIsExpandableIcon } from '../../../../utils/icon';\n\ntype ListItemHeadProps = {\n careOfLocationId?: number;\n cornerImage?: string;\n hoverItem?: ReactNode;\n icons?: string[];\n imageBackground?: CSSProperties['background'];\n images?: string[];\n isAnyItemExpandable: boolean;\n isExpandable: boolean;\n isOpen: boolean;\n isTitleGreyed?: boolean;\n leftElements?: ReactNode;\n onClick?: MouseEventHandler<HTMLDivElement>;\n onLongPress?: TouchEventHandler<HTMLDivElement>;\n rightElements?: IListItemRightElements;\n shouldHideImageOrIconBackground?: boolean;\n shouldHideIndicator?: boolean;\n shouldOpenImageOnClick: boolean;\n shouldShowRoundImageOrIcon?: boolean;\n subtitle?: ReactNode;\n title: ReactNode;\n titleElement?: ReactNode;\n shouldForceHover?: boolean;\n setShouldEnableTooltip: (value: boolean) => void;\n shouldDisableAnimation?: boolean;\n cornerElement?: ReactNode;\n onTitleWidthChange: (titleWidth: number, titleMaxWidth: number) => void;\n onImageError?: (event: SyntheticEvent<HTMLImageElement, Event>, index: number) => void;\n};\n\nconst ListItemHead: FC<ListItemHeadProps> = ({\n careOfLocationId,\n cornerImage,\n hoverItem,\n icons,\n imageBackground,\n images,\n isAnyItemExpandable,\n isExpandable,\n isOpen,\n isTitleGreyed,\n leftElements,\n onClick,\n onLongPress,\n rightElements,\n shouldHideImageOrIconBackground,\n shouldHideIndicator,\n shouldOpenImageOnClick,\n shouldShowRoundImageOrIcon,\n subtitle,\n shouldForceHover,\n title,\n titleElement,\n setShouldEnableTooltip,\n shouldDisableAnimation = false,\n cornerElement,\n onTitleWidthChange,\n onImageError,\n}) => {\n const [shouldShowHoverItem, setShouldShowHoverItem] = useState(false);\n const [titleMaxWidth, setTitleMaxWidth] = useState(0);\n const [titleWidth, setTitleWidth] = useState(0);\n\n const longPressTimeoutRef = useRef<number>();\n const resizeSkipRef = useRef(true);\n const leftElementRef = useRef<HTMLDivElement>(null);\n\n const theme = useTheme() as Theme;\n\n const shouldShowSubtitleRow =\n subtitle ||\n typeof subtitle === 'string' ||\n (typeof rightElements === 'object' && rightElements && 'bottom' in rightElements);\n\n const shouldShowMultilineTitle = useMemo(() => !subtitle, [subtitle]);\n\n useEffect(() => {\n window.setTimeout(() => {\n resizeSkipRef.current = false;\n }, 200);\n }, []);\n\n useEffect(() => {\n onTitleWidthChange(titleWidth, titleMaxWidth);\n }, [onTitleWidthChange, titleMaxWidth, titleWidth]);\n\n const handleShowTooltipResize = useCallback(\n (entries: ResizeObserverEntry[]) => {\n setTitleWidth(entries[0]?.target.clientWidth ?? 0);\n\n if (resizeSkipRef.current) {\n return;\n }\n\n const el = entries[0]?.target;\n if (!el) return;\n setShouldEnableTooltip(el.scrollWidth > el.clientWidth);\n },\n [setShouldEnableTooltip],\n );\n\n const handleMouseEnter = useCallback(() => setShouldShowHoverItem(true), []);\n\n const handleMouseLeave = useCallback(() => setShouldShowHoverItem(false), []);\n\n const handleTouchStart = useCallback<TouchEventHandler<HTMLDivElement>>(\n (event) => {\n longPressTimeoutRef.current = window.setTimeout(() => {\n if (typeof onLongPress === 'function') {\n onLongPress(event);\n }\n }, 400);\n },\n [onLongPress],\n );\n\n const handleTouchEnd = useCallback(() => {\n clearTimeout(longPressTimeoutRef.current);\n }, []);\n\n const handleTitleWidthChange = useCallback((width: number) => {\n setTitleMaxWidth(width);\n }, []);\n\n const iconOrImageElement = useMemo(() => {\n if (icons) {\n return (\n <ListItemIcon\n icons={icons}\n shouldHideBackground={!!shouldHideImageOrIconBackground}\n shouldShowRoundIcon={!!shouldShowRoundImageOrIcon}\n />\n );\n }\n\n if (images) {\n return (\n <ListItemImage\n cornerElement={cornerElement}\n imageBackground={imageBackground}\n careOfLocationId={careOfLocationId}\n cornerImage={cornerImage}\n images={images}\n onImageError={onImageError}\n shouldOpenImageOnClick={shouldOpenImageOnClick}\n shouldHideBackground={!!shouldHideImageOrIconBackground}\n shouldShowRoundImage={!!shouldShowRoundImageOrIcon}\n />\n );\n }\n\n return undefined;\n }, [\n careOfLocationId,\n cornerElement,\n cornerImage,\n icons,\n imageBackground,\n images,\n onImageError,\n shouldHideImageOrIconBackground,\n shouldOpenImageOnClick,\n shouldShowRoundImageOrIcon,\n ]);\n\n const expandIcon = useMemo(() => {\n const internalIcon = getIsExpandableIcon(theme.accordionIcon);\n const internalIconStyle = theme?.iconStyle ? theme.iconStyle : 'fa-regular';\n return <StyledUnicodeIcon $icon={internalIcon} className={internalIconStyle} />;\n }, [theme.accordionIcon, theme.iconStyle]);\n\n return (\n <StyledListItemHead\n as={shouldDisableAnimation ? undefined : motion.div}\n animate={\n shouldDisableAnimation\n ? undefined\n : {\n opacity: isTitleGreyed ? 0.5 : 1,\n }\n }\n initial={shouldDisableAnimation ? undefined : false}\n transition={shouldDisableAnimation ? undefined : { duration: 0.2, type: 'tween' }}\n className=\"beta-chayns-list-item-head\"\n $isClickable={typeof onClick === 'function' || isExpandable}\n $isAnyItemExpandable={isAnyItemExpandable}\n onClick={onClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onTouchStart={typeof onLongPress === 'function' ? handleTouchStart : undefined}\n onTouchEnd={typeof onLongPress === 'function' ? handleTouchEnd : undefined}\n >\n <StyledListItemHeadLeftWrapper>\n {isAnyItemExpandable && (\n <StyledListItemHeadIndicator\n as={shouldDisableAnimation ? undefined : motion.div}\n animate={shouldDisableAnimation ? undefined : { rotate: isOpen ? 90 : 0 }}\n initial={shouldDisableAnimation ? undefined : false}\n transition={shouldDisableAnimation ? undefined : { type: 'tween' }}\n >\n {isExpandable && !shouldHideIndicator && expandIcon}\n </StyledListItemHeadIndicator>\n )}\n {leftElements && (\n <StyledListItemHeadLeftElements ref={leftElementRef} data-left-element=\"true\">\n {leftElements}\n </StyledListItemHeadLeftElements>\n )}\n {iconOrImageElement}\n </StyledListItemHeadLeftWrapper>\n <StyledListItemHeadContent\n $isIconOrImageGiven={iconOrImageElement !== undefined}\n $isOpen={isOpen}\n >\n <LayoutGroup>\n <StyledListItemHeadTitle\n as={shouldDisableAnimation ? undefined : motion.div}\n layout=\"position\"\n >\n <ListItemTitle\n title={title}\n titleElement={titleElement}\n isOpen={isOpen}\n shouldShowMultilineTitle={shouldShowMultilineTitle}\n rightElements={rightElements}\n onTitleWidthChange={handleTitleWidthChange}\n onResize={handleShowTooltipResize}\n />\n </StyledListItemHeadTitle>\n {shouldShowSubtitleRow && (\n <StyledListItemHeadSubtitle>\n <ListItemSubtitle\n subtitle={subtitle}\n isOpen={isOpen}\n rightElements={rightElements}\n />\n </StyledListItemHeadSubtitle>\n )}\n </LayoutGroup>\n </StyledListItemHeadContent>\n <ListItemRightElement rightElements={rightElements} />\n {hoverItem && (\n <StyledMotionListItemHeadHoverItemWrapper\n className=\"beta-chayns-list-item-hover-item\"\n animate={{\n marginLeft: shouldForceHover || shouldShowHoverItem ? 8 : 0,\n opacity: shouldForceHover || shouldShowHoverItem ? 1 : 0,\n width: shouldForceHover || shouldShowHoverItem ? 'auto' : 0,\n }}\n initial={false}\n transition={{ duration: 0.15, type: 'tween' }}\n >\n <StyledMotionListItemHeadHoverItem>\n {hoverItem}\n </StyledMotionListItemHeadHoverItem>\n </StyledMotionListItemHeadHoverItemWrapper>\n )}\n </StyledListItemHead>\n );\n};\n\nListItemHead.displayName = 'ListItemHead';\n\nexport default ListItemHead;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,10 +9,8 @@ var _ListItemRightElement = require("./ListItemRightElement.styles");
|
|
|
9
9
|
var _accordion = require("../../../../../utils/accordion");
|
|
10
10
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
11
|
const ListItemRightElement = ({
|
|
12
|
-
rightElements
|
|
13
|
-
shouldAllowFocus = true
|
|
12
|
+
rightElements
|
|
14
13
|
}) => {
|
|
15
|
-
const rightElementRef = (0, _react.useRef)(null);
|
|
16
14
|
const handlePreventClick = event => {
|
|
17
15
|
event.stopPropagation();
|
|
18
16
|
event.preventDefault();
|
|
@@ -32,38 +30,10 @@ const ListItemRightElement = ({
|
|
|
32
30
|
}
|
|
33
31
|
return false;
|
|
34
32
|
}, [centerElement]);
|
|
35
|
-
(0, _react.useEffect)(() => {
|
|
36
|
-
const rightElement = rightElementRef.current;
|
|
37
|
-
if (!rightElement) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
const focusableElements = Array.from(rightElement.querySelectorAll('a[href], button, input, select, textarea, [tabindex], [contenteditable="true"]'));
|
|
41
|
-
focusableElements.forEach(element => {
|
|
42
|
-
const currentElement = element;
|
|
43
|
-
const datasetKey = 'listItemRightElementOriginalTabIndex';
|
|
44
|
-
if (shouldAllowFocus) {
|
|
45
|
-
const originalTabIndex = currentElement.dataset[datasetKey];
|
|
46
|
-
if (typeof originalTabIndex === 'string') {
|
|
47
|
-
if (originalTabIndex === '') {
|
|
48
|
-
currentElement.removeAttribute('tabindex');
|
|
49
|
-
} else {
|
|
50
|
-
currentElement.setAttribute('tabindex', originalTabIndex);
|
|
51
|
-
}
|
|
52
|
-
delete currentElement.dataset[datasetKey];
|
|
53
|
-
}
|
|
54
|
-
} else {
|
|
55
|
-
if (typeof currentElement.dataset[datasetKey] !== 'string') {
|
|
56
|
-
currentElement.dataset[datasetKey] = currentElement.getAttribute('tabindex') ?? '';
|
|
57
|
-
}
|
|
58
|
-
currentElement.setAttribute('tabindex', '-1');
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}, [centerElement, shouldAllowFocus]);
|
|
62
33
|
if (!centerElement) {
|
|
63
34
|
return null;
|
|
64
35
|
}
|
|
65
36
|
return /*#__PURE__*/_react.default.createElement(_ListItemRightElement.StyledListItemRightElement, {
|
|
66
|
-
ref: rightElementRef,
|
|
67
37
|
"data-right-element": "true",
|
|
68
38
|
onClick: shouldPreventRightElementClick ? handlePreventClick : undefined
|
|
69
39
|
}, centerElement);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemRightElement.js","names":["_react","_interopRequireWildcard","require","_ListItemRightElement","_accordion","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ListItemRightElement","rightElements","
|
|
1
|
+
{"version":3,"file":"ListItemRightElement.js","names":["_react","_interopRequireWildcard","require","_ListItemRightElement","_accordion","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ListItemRightElement","rightElements","handlePreventClick","event","stopPropagation","preventDefault","centerElement","useMemo","isValidElement","center","undefined","shouldPreventRightElementClick","getElementClickEvent","createElement","StyledListItemRightElement","onClick","displayName","_default","exports"],"sources":["../../../../../../../src/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.tsx"],"sourcesContent":["import React, { FC, isValidElement, useMemo } from 'react';\nimport type { IListItemRightElement, IListItemRightElements } from '../../../../../types/list';\nimport { StyledListItemRightElement } from './ListItemRightElement.styles';\nimport { getElementClickEvent } from '../../../../../utils/accordion';\n\ntype ListItemRightElementProps = {\n rightElements?: IListItemRightElements;\n};\n\nconst ListItemRightElement: FC<ListItemRightElementProps> = ({ rightElements }) => {\n const handlePreventClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n const centerElement = useMemo(() => {\n if (typeof rightElements === 'string' || isValidElement(rightElements)) {\n return rightElements;\n }\n\n if (typeof rightElements === 'object' && rightElements && 'center' in rightElements) {\n return (rightElements as unknown as IListItemRightElement).center;\n }\n\n return undefined;\n }, [rightElements]);\n\n const shouldPreventRightElementClick = useMemo(() => {\n if (centerElement) {\n return getElementClickEvent(centerElement);\n }\n\n return false;\n }, [centerElement]);\n\n if (!centerElement) {\n return null;\n }\n\n return (\n <StyledListItemRightElement\n data-right-element=\"true\"\n onClick={shouldPreventRightElementClick ? handlePreventClick : undefined}\n >\n {centerElement}\n </StyledListItemRightElement>\n );\n};\n\nListItemRightElement.displayName = 'ListItemRightElement';\n\nexport default ListItemRightElement;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAAsE,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAMtE,MAAMkB,oBAAmD,GAAGA,CAAC;EAAEC;AAAc,CAAC,KAAK;EAC/E,MAAMC,kBAAkB,GAAIC,KAAuB,IAAK;IACpDA,KAAK,CAACC,eAAe,CAAC,CAAC;IACvBD,KAAK,CAACE,cAAc,CAAC,CAAC;EAC1B,CAAC;EAED,MAAMC,aAAa,GAAG,IAAAC,cAAO,EAAC,MAAM;IAChC,IAAI,OAAON,aAAa,KAAK,QAAQ,iBAAI,IAAAO,qBAAc,EAACP,aAAa,CAAC,EAAE;MACpE,OAAOA,aAAa;IACxB;IAEA,IAAI,OAAOA,aAAa,KAAK,QAAQ,IAAIA,aAAa,IAAI,QAAQ,IAAIA,aAAa,EAAE;MACjF,OAAQA,aAAa,CAAsCQ,MAAM;IACrE;IAEA,OAAOC,SAAS;EACpB,CAAC,EAAE,CAACT,aAAa,CAAC,CAAC;EAEnB,MAAMU,8BAA8B,GAAG,IAAAJ,cAAO,EAAC,MAAM;IACjD,IAAID,aAAa,EAAE;MACf,OAAO,IAAAM,+BAAoB,EAACN,aAAa,CAAC;IAC9C;IAEA,OAAO,KAAK;EAChB,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnB,IAAI,CAACA,aAAa,EAAE;IAChB,OAAO,IAAI;EACf;EAEA,oBACI9B,MAAA,CAAAe,OAAA,CAAAsB,aAAA,CAAClC,qBAAA,CAAAmC,0BAA0B;IACvB,sBAAmB,MAAM;IACzBC,OAAO,EAAEJ,8BAA8B,GAAGT,kBAAkB,GAAGQ;EAAU,GAExEJ,aACuB,CAAC;AAErC,CAAC;AAEDN,oBAAoB,CAACgB,WAAW,GAAG,sBAAsB;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA3B,OAAA,GAE3CS,oBAAoB","ignoreList":[]}
|