@chayns-components/core 5.0.0-beta.28 → 5.0.0-beta.30
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/components/context-menu/ContextMenu.js +1 -1
- package/lib/components/context-menu/ContextMenu.js.map +1 -1
- package/lib/components/list/list-item/ListItem.d.ts +9 -0
- package/lib/components/list/list-item/ListItem.js +7 -4
- package/lib/components/list/list-item/ListItem.js.map +1 -1
- package/lib/components/list/list-item/list-item-head/ListItemHead.d.ts +1 -0
- package/lib/components/list/list-item/list-item-head/ListItemHead.js +17 -35
- package/lib/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
- package/lib/components/list/list-item/list-item-head/ListItemHead.styles.d.ts +0 -10
- package/lib/components/list/list-item/list-item-head/ListItemHead.styles.js +14 -44
- package/lib/components/list/list-item/list-item-head/ListItemHead.styles.js.map +1 -1
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.d.ts +6 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.js +27 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.js.map +1 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.d.ts +1 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.js +25 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.js.map +1 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.d.ts +7 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.js +72 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.js.map +1 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.d.ts +10 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.js +35 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.js.map +1 -0
- package/package.json +2 -2
|
@@ -155,7 +155,7 @@ var ContextMenu = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
}, _callee);
|
|
158
|
-
})), []);
|
|
158
|
+
})), [items]);
|
|
159
159
|
var handleClick = (0, _react.useCallback)(function (event) {
|
|
160
160
|
event.preventDefault();
|
|
161
161
|
event.stopPropagation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/context-menu/ContextMenu.tsx"],"names":["ContextMenu","ref","alignment","children","container","document","body","coordinates","items","onHide","onShow","x","y","internalCoordinates","setInternalCoordinates","ContextMenuAlignment","TopLeft","internalAlignment","setInternalAlignment","isContentShown","setIsContentShown","uuid","contextMenuContentRef","contextMenuRef","handleHide","handleShow","chayns","env","isMobile","isTablet","dialog","select","buttons","list","map","index","icons","text","name","value","icon","type","buttonType","selection","onClick","current","rootElement","querySelector","getBoundingClientRect","childrenHeight","height","childrenWidth","width","BottomRight","TopRight","BottomLeft","handleClick","event","preventDefault","stopPropagation","handleDocumentClick","contains","target","hide","show","addEventListener","window","removeEventListener","portal","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AAYA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,IAAMA,WAAW,gBAAG,uBAChB,gBAUIC,GAVJ,EAWK;AAAA,MATGC,SASH,QATGA,SASH;AAAA,2BARGC,QAQH;AAAA,MARGA,QAQH,2CARc,6BAAC,aAAD;AAAM,IAAA,KAAK,EAAE,CAAC,eAAD;AAAb,IAQd;AAAA,4BAPGC,SAOH;AAAA,MAPGA,SAOH,+BAPeC,QAAQ,CAACC,IAOxB;AAAA,MANGC,WAMH,QANGA,WAMH;AAAA,MALGC,KAKH,QALGA,KAKH;AAAA,MAJGC,MAIH,QAJGA,MAIH;AAAA,MAHGC,MAGH,QAHGA,MAGH;;AACD,kBAAsD,qBAAiC;AACnFC,IAAAA,CAAC,EAAE,CADgF;AAEnFC,IAAAA,CAAC,EAAE;AAFgF,GAAjC,CAAtD;AAAA;AAAA,MAAOC,mBAAP;AAAA,MAA4BC,sBAA5B;;AAIA,mBAAkD,qBAC9CC,gCAAqBC,OADyB,CAAlD;AAAA;AAAA,MAAOC,iBAAP;AAAA,MAA0BC,oBAA1B;;AAGA,mBAA4C,qBAAS,KAAT,CAA5C;AAAA;AAAA,MAAOC,cAAP;AAAA,MAAuBC,iBAAvB;;AAEA,MAAMC,IAAI,GAAG,oBAAb,CAVC,CAYD;;AACA,MAAMC,qBAAqB,GAAG,mBAAuB,IAAvB,CAA9B;AACA,MAAMC,cAAc,GAAG,mBAAwB,IAAxB,CAAvB;AAEA,MAAMC,UAAU,GAAG,wBAAY,YAAM;AACjCJ,IAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACH,GAFkB,EAEhB,EAFgB,CAAnB;AAIA,MAAMK,UAAU,GAAG,8FAAY;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,0BACIC,MAAM,CAACC,GADX,EACnBC,QADmB,eACnBA,QADmB,EACTC,QADS,eACTA,QADS;;AAAA,kBAGvBD,QAAQ,IAAIC,QAHW;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAKiBH,MAAM,CAACI,MAAP,CAAcC,MAAd,CAAqB;AACzDC,cAAAA,OAAO,EAAE,EADgD;AAEzDC,cAAAA,IAAI,EAAEzB,KAAK,CAAC0B,GAAN,CAAU,iBAAkBC,KAAlB;AAAA,oBAAGC,KAAH,SAAGA,KAAH;AAAA,oBAAUC,IAAV,SAAUA,IAAV;AAAA,uBAA6B;AACzCC,kBAAAA,IAAI,EAAED,IADmC;AAEzCE,kBAAAA,KAAK,EAAEJ,KAFkC;AAGzCK,kBAAAA,IAAI,EAAEJ,KAAK,CAAC,CAAD;AAH8B,iBAA7B;AAAA,eAAV,CAFmD;AAOzDK,cAAAA,IAAI,EAAE;AAPmD,aAArB,CALjB;;AAAA;AAAA;AAKfC,YAAAA,UALe,yBAKfA,UALe;AAKHC,YAAAA,SALG,yBAKHA,SALG;;AAevB,gBAAID,UAAU,KAAK,CAAf,IAAoB,uBAAOC,SAAS,CAAC,CAAD,CAAhB,gDAAO,YAAcJ,KAArB,MAA+B,QAAvD,EAAiE;AAC7D,uCAAA/B,KAAK,CAACmC,SAAS,CAAC,CAAD,CAAT,CAAaJ,KAAd,CAAL,gFAA2BK,OAA3B;AACH;;AAjBsB;AAAA;;AAAA;AAkBpB,gBAAIrB,cAAc,CAACsB,OAAnB,EAA4B;AACzBC,cAAAA,WADyB,GACXzC,QAAQ,CAAC0C,aAAT,CAAuB,OAAvB,KAAmC1C,QAAQ,CAACC,IADjC;AAAA,sCAQ3BiB,cAAc,CAACsB,OAAf,CAAuBG,qBAAvB,EAR2B,EAI3BrC,CAJ2B,yBAI3BA,CAJ2B,EAK3BC,CAL2B,yBAK3BA,CAL2B,EAMnBqC,cANmB,yBAM3BC,MAN2B,EAOpBC,aAPoB,yBAO3BC,KAP2B;AAU/BtC,cAAAA,sBAAsB,CAAC;AAAEH,gBAAAA,CAAC,EAAEA,CAAC,GAAGwC,aAAa,GAAG,CAAzB;AAA4BvC,gBAAAA,CAAC,EAAEA,CAAC,GAAGqC,cAAc,GAAG;AAApD,eAAD,CAAtB;AAV+B,sCAYLH,WAAW,CAACE,qBAAZ,EAZK,EAYvBE,MAZuB,yBAYvBA,MAZuB,EAYfE,KAZe,yBAYfA,KAZe;;AAc/B,kBAAIzC,CAAC,GAAGyC,KAAK,GAAG,CAAhB,EAAmB;AACf,oBAAIxC,CAAC,GAAGsC,MAAM,GAAG,CAAjB,EAAoB;AAChBhC,kBAAAA,oBAAoB,CAACH,gCAAqBsC,WAAtB,CAApB;AACH,iBAFD,MAEO;AACHnC,kBAAAA,oBAAoB,CAACH,gCAAqBuC,QAAtB,CAApB;AACH;AACJ,eAND,MAMO,IAAI1C,CAAC,GAAGsC,MAAM,GAAG,CAAjB,EAAoB;AACvBhC,gBAAAA,oBAAoB,CAACH,gCAAqBwC,UAAtB,CAApB;AACH,eAFM,MAEA;AACHrC,gBAAAA,oBAAoB,CAACH,gCAAqBC,OAAtB,CAApB;AACH;;AAEDI,cAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACH;;AA7C0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAZ,IA8ChB,EA9CgB,CAAnB;AAgDA,MAAMoC,WAAW,GAAG,wBAChB,UAACC,KAAD,EAAW;AACPA,IAAAA,KAAK,CAACC,cAAN;AACAD,IAAAA,KAAK,CAACE,eAAN;AAEA,SAAKlC,UAAU,EAAf;AACH,GANe,EAOhB,CAACA,UAAD,CAPgB,CAApB;AAUA,MAAMmC,mBAAmB,GAAG,wBACxB,UAACH,KAAD,EAAW;AAAA;;AACP,QAAI,2BAACnC,qBAAqB,CAACuB,OAAvB,kDAAC,sBAA+BgB,QAA/B,CAAwCJ,KAAK,CAACK,MAA9C,CAAD,CAAJ,EAAoE;AAChEL,MAAAA,KAAK,CAACC,cAAN;AACAD,MAAAA,KAAK,CAACE,eAAN;AACH;;AAEDnC,IAAAA,UAAU;AACb,GARuB,EASxB,CAACA,UAAD,CATwB,CAA5B;AAYA,kCACIvB,GADJ,EAEI;AAAA,WAAO;AACH8D,MAAAA,IAAI,EAAEvC,UADH;AAEHwC,MAAAA,IAAI,EAAEvC;AAFH,KAAP;AAAA,GAFJ,EAMI,CAACD,UAAD,EAAaC,UAAb,CANJ;AASA,wBAAU,YAAM;AACZ,QAAIN,cAAJ,EAAoB;AAChBd,MAAAA,QAAQ,CAAC4D,gBAAT,CAA0B,OAA1B,EAAmCL,mBAAnC,EAAwD,IAAxD;AACAM,MAAAA,MAAM,CAACD,gBAAP,CAAwB,MAAxB,EAAgCzC,UAAhC;;AAEA,UAAI,OAAOd,MAAP,KAAkB,UAAtB,EAAkC;AAC9BA,QAAAA,MAAM;AACT;AACJ,KAPD,MAOO,IAAI,OAAOD,MAAP,KAAkB,UAAtB,EAAkC;AACrCA,MAAAA,MAAM;AACT;;AAED,WAAO,YAAM;AACTJ,MAAAA,QAAQ,CAAC8D,mBAAT,CAA6B,OAA7B,EAAsCP,mBAAtC,EAA2D,IAA3D;AACAM,MAAAA,MAAM,CAACC,mBAAP,CAA2B,MAA3B,EAAmC3C,UAAnC;AACH,KAHD;AAIH,GAhBD,EAgBG,CAACoC,mBAAD,EAAsBpC,UAAtB,EAAkCL,cAAlC,EAAkDV,MAAlD,EAA0DC,MAA1D,CAhBH;AAkBA,MAAM0D,MAAM,GAAG,oBACX;AAAA,wBACI,0CACI,6BAAC,6BAAD;AAAiB,MAAA,OAAO,EAAE;AAA1B,OACKjD,cAAc,iBACX,6BAAC,2BAAD;AACI,MAAA,WAAW,EAAEZ,WAAF,aAAEA,WAAF,cAAEA,WAAF,GAAiBM,mBADhC;AAEI,MAAA,KAAK,EAAEL,KAFX;AAGI,MAAA,GAAG,wBAAiBa,IAAjB,CAHP;AAII,MAAA,SAAS,EAAEnB,SAAF,aAAEA,SAAF,cAAEA,SAAF,GAAee,iBAJ5B;AAKI,MAAA,GAAG,EAAEK;AALT,MAFR,CADJ,EAYIlB,SAZJ,CADJ;AAAA,GADW,EAgBX,CACIA,SADJ,EAEIG,WAFJ,EAGIM,mBAHJ,EAIII,iBAJJ,EAKIE,cALJ,EAMIX,KANJ,EAOIN,SAPJ,EAQImB,IARJ,CAhBW,CAAf;AA4BA,sBACI,yEACI,6BAAC,8BAAD;AACI,IAAA,SAAS,EAAC,0BADd;AAEI,IAAA,OAAO,EAAEmC,WAFb;AAGI,IAAA,GAAG,EAAEjC;AAHT,KAKKpB,QALL,CADJ,EAQKiE,MARL,CADJ;AAYH,CAzKe,CAApB;AA4KApE,WAAW,CAACqE,WAAZ,GAA0B,aAA1B;eAEerE,W","sourcesContent":["import { AnimatePresence } from 'framer-motion';\nimport React, {\n forwardRef,\n MouseEvent,\n MouseEventHandler,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useUuid } from '../../hooks/uuid';\nimport Icon from '../icon/Icon';\nimport { ContextMenuAlignment } from './constants/alignment';\nimport ContextMenuContent from './context-menu-content/ContextMenuContent';\nimport { StyledContextMenu } from './ContextMenu.styles';\n\nexport type ContextMenuCoordinates = {\n x: number;\n y: number;\n};\n\nexport type ContextMenuItem = {\n icons: string[];\n key: string;\n onClick: (event?: MouseEvent<HTMLDivElement>) => void;\n text: string;\n};\n\ntype ContextMenuRef = {\n hide: VoidFunction;\n show: VoidFunction;\n};\n\ntype ContextMenuProps = {\n /**\n * Optional custom alignment used instead of calculating it using the\n * alignment within the page. The available alignment can be taken from the\n * ContextMenuAlignment enum.\n */\n alignment?: ContextMenuAlignment;\n /**\n * The element over which the content of the `ContextMenu` should be displayed.\n */\n children?: ReactNode;\n /**\n * The element where the content of the `ContextMenu` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * Optional own coordinates to be used instead of calculating the alignment\n * based on the alignment of the children.\n */\n coordinates?: ContextMenuCoordinates;\n /**\n * The items that will be displayed in the content of the `ContextMenu`.\n */\n items: ContextMenuItem[];\n /**\n * Function to be executed when the content of the Context menu has been hidden.\n */\n onHide?: VoidFunction;\n /**\n * Function to be executed when the content of the Context menu has been shown.\n */\n onShow?: VoidFunction;\n};\n\nconst ContextMenu = forwardRef<ContextMenuRef, ContextMenuProps>(\n (\n {\n alignment,\n children = <Icon icons={['ts-ellipsis_v']} />,\n container = document.body,\n coordinates,\n items,\n onHide,\n onShow,\n },\n ref\n ) => {\n const [internalCoordinates, setInternalCoordinates] = useState<ContextMenuCoordinates>({\n x: 0,\n y: 0,\n });\n const [internalAlignment, setInternalAlignment] = useState<ContextMenuAlignment>(\n ContextMenuAlignment.TopLeft\n );\n const [isContentShown, setIsContentShown] = useState(false);\n\n const uuid = useUuid();\n\n // ToDo: Replace with hook if new chayns api is ready\n const contextMenuContentRef = useRef<HTMLDivElement>(null);\n const contextMenuRef = useRef<HTMLSpanElement>(null);\n\n const handleHide = useCallback(() => {\n setIsContentShown(false);\n }, []);\n\n const handleShow = useCallback(async () => {\n const { isMobile, isTablet } = chayns.env;\n\n if (isMobile || isTablet) {\n // ToDo: Replace with new api function if new api is ready\n const { buttonType, selection } = await chayns.dialog.select({\n buttons: [],\n list: items.map(({ icons, text }, index) => ({\n name: text,\n value: index,\n icon: icons[0],\n })),\n type: 2,\n });\n\n if (buttonType === 1 && typeof selection[0]?.value === 'number') {\n items[selection[0].value]?.onClick();\n }\n } else if (contextMenuRef.current) {\n const rootElement = document.querySelector('.tapp') || document.body;\n\n const {\n x,\n y,\n height: childrenHeight,\n width: childrenWidth,\n } = contextMenuRef.current.getBoundingClientRect();\n\n setInternalCoordinates({ x: x + childrenWidth / 2, y: y + childrenHeight / 2 });\n\n const { height, width } = rootElement.getBoundingClientRect();\n\n if (x < width / 2) {\n if (y < height / 2) {\n setInternalAlignment(ContextMenuAlignment.BottomRight);\n } else {\n setInternalAlignment(ContextMenuAlignment.TopRight);\n }\n } else if (y < height / 2) {\n setInternalAlignment(ContextMenuAlignment.BottomLeft);\n } else {\n setInternalAlignment(ContextMenuAlignment.TopLeft);\n }\n\n setIsContentShown(true);\n }\n }, []);\n\n const handleClick = useCallback<MouseEventHandler<HTMLDivElement>>(\n (event) => {\n event.preventDefault();\n event.stopPropagation();\n\n void handleShow();\n },\n [handleShow]\n );\n\n const handleDocumentClick = useCallback<EventListener>(\n (event) => {\n if (!contextMenuContentRef.current?.contains(event.target as Node)) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n handleHide();\n },\n [handleHide]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow]\n );\n\n useEffect(() => {\n if (isContentShown) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n\n if (typeof onShow === 'function') {\n onShow();\n }\n } else if (typeof onHide === 'function') {\n onHide();\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n };\n }, [handleDocumentClick, handleHide, isContentShown, onHide, onShow]);\n\n const portal = useMemo(\n () =>\n createPortal(\n <AnimatePresence initial={false}>\n {isContentShown && (\n <ContextMenuContent\n coordinates={coordinates ?? internalCoordinates}\n items={items}\n key={`contextMenu_${uuid}`}\n alignment={alignment ?? internalAlignment}\n ref={contextMenuContentRef}\n />\n )}\n </AnimatePresence>,\n container\n ),\n [\n container,\n coordinates,\n internalCoordinates,\n internalAlignment,\n isContentShown,\n items,\n alignment,\n uuid,\n ]\n );\n\n return (\n <>\n <StyledContextMenu\n className=\"beta-chayns-context-menu\"\n onClick={handleClick}\n ref={contextMenuRef}\n >\n {children}\n </StyledContextMenu>\n {portal}\n </>\n );\n }\n);\n\nContextMenu.displayName = 'ContextMenu';\n\nexport default ContextMenu;\n"],"file":"ContextMenu.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/context-menu/ContextMenu.tsx"],"names":["ContextMenu","ref","alignment","children","container","document","body","coordinates","items","onHide","onShow","x","y","internalCoordinates","setInternalCoordinates","ContextMenuAlignment","TopLeft","internalAlignment","setInternalAlignment","isContentShown","setIsContentShown","uuid","contextMenuContentRef","contextMenuRef","handleHide","handleShow","chayns","env","isMobile","isTablet","dialog","select","buttons","list","map","index","icons","text","name","value","icon","type","buttonType","selection","onClick","current","rootElement","querySelector","getBoundingClientRect","childrenHeight","height","childrenWidth","width","BottomRight","TopRight","BottomLeft","handleClick","event","preventDefault","stopPropagation","handleDocumentClick","contains","target","hide","show","addEventListener","window","removeEventListener","portal","displayName"],"mappings":"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","sourcesContent":["import { AnimatePresence } from 'framer-motion';\nimport React, {\n forwardRef,\n MouseEvent,\n MouseEventHandler,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useUuid } from '../../hooks/uuid';\nimport Icon from '../icon/Icon';\nimport { ContextMenuAlignment } from './constants/alignment';\nimport ContextMenuContent from './context-menu-content/ContextMenuContent';\nimport { StyledContextMenu } from './ContextMenu.styles';\n\nexport type ContextMenuCoordinates = {\n x: number;\n y: number;\n};\n\nexport type ContextMenuItem = {\n icons: string[];\n key: string;\n onClick: (event?: MouseEvent<HTMLDivElement>) => void;\n text: string;\n};\n\ntype ContextMenuRef = {\n hide: VoidFunction;\n show: VoidFunction;\n};\n\ntype ContextMenuProps = {\n /**\n * Optional custom alignment used instead of calculating it using the\n * alignment within the page. The available alignment can be taken from the\n * ContextMenuAlignment enum.\n */\n alignment?: ContextMenuAlignment;\n /**\n * The element over which the content of the `ContextMenu` should be displayed.\n */\n children?: ReactNode;\n /**\n * The element where the content of the `ContextMenu` should be rendered via React Portal.\n */\n container?: Element;\n /**\n * Optional own coordinates to be used instead of calculating the alignment\n * based on the alignment of the children.\n */\n coordinates?: ContextMenuCoordinates;\n /**\n * The items that will be displayed in the content of the `ContextMenu`.\n */\n items: ContextMenuItem[];\n /**\n * Function to be executed when the content of the Context menu has been hidden.\n */\n onHide?: VoidFunction;\n /**\n * Function to be executed when the content of the Context menu has been shown.\n */\n onShow?: VoidFunction;\n};\n\nconst ContextMenu = forwardRef<ContextMenuRef, ContextMenuProps>(\n (\n {\n alignment,\n children = <Icon icons={['ts-ellipsis_v']} />,\n container = document.body,\n coordinates,\n items,\n onHide,\n onShow,\n },\n ref\n ) => {\n const [internalCoordinates, setInternalCoordinates] = useState<ContextMenuCoordinates>({\n x: 0,\n y: 0,\n });\n const [internalAlignment, setInternalAlignment] = useState<ContextMenuAlignment>(\n ContextMenuAlignment.TopLeft\n );\n const [isContentShown, setIsContentShown] = useState(false);\n\n const uuid = useUuid();\n\n // ToDo: Replace with hook if new chayns api is ready\n const contextMenuContentRef = useRef<HTMLDivElement>(null);\n const contextMenuRef = useRef<HTMLSpanElement>(null);\n\n const handleHide = useCallback(() => {\n setIsContentShown(false);\n }, []);\n\n const handleShow = useCallback(async () => {\n const { isMobile, isTablet } = chayns.env;\n\n if (isMobile || isTablet) {\n // ToDo: Replace with new api function if new api is ready\n const { buttonType, selection } = await chayns.dialog.select({\n buttons: [],\n list: items.map(({ icons, text }, index) => ({\n name: text,\n value: index,\n icon: icons[0],\n })),\n type: 2,\n });\n\n if (buttonType === 1 && typeof selection[0]?.value === 'number') {\n items[selection[0].value]?.onClick();\n }\n } else if (contextMenuRef.current) {\n const rootElement = document.querySelector('.tapp') || document.body;\n\n const {\n x,\n y,\n height: childrenHeight,\n width: childrenWidth,\n } = contextMenuRef.current.getBoundingClientRect();\n\n setInternalCoordinates({ x: x + childrenWidth / 2, y: y + childrenHeight / 2 });\n\n const { height, width } = rootElement.getBoundingClientRect();\n\n if (x < width / 2) {\n if (y < height / 2) {\n setInternalAlignment(ContextMenuAlignment.BottomRight);\n } else {\n setInternalAlignment(ContextMenuAlignment.TopRight);\n }\n } else if (y < height / 2) {\n setInternalAlignment(ContextMenuAlignment.BottomLeft);\n } else {\n setInternalAlignment(ContextMenuAlignment.TopLeft);\n }\n\n setIsContentShown(true);\n }\n }, [items]);\n\n const handleClick = useCallback<MouseEventHandler<HTMLDivElement>>(\n (event) => {\n event.preventDefault();\n event.stopPropagation();\n\n void handleShow();\n },\n [handleShow]\n );\n\n const handleDocumentClick = useCallback<EventListener>(\n (event) => {\n if (!contextMenuContentRef.current?.contains(event.target as Node)) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n handleHide();\n },\n [handleHide]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow]\n );\n\n useEffect(() => {\n if (isContentShown) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n\n if (typeof onShow === 'function') {\n onShow();\n }\n } else if (typeof onHide === 'function') {\n onHide();\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n };\n }, [handleDocumentClick, handleHide, isContentShown, onHide, onShow]);\n\n const portal = useMemo(\n () =>\n createPortal(\n <AnimatePresence initial={false}>\n {isContentShown && (\n <ContextMenuContent\n coordinates={coordinates ?? internalCoordinates}\n items={items}\n key={`contextMenu_${uuid}`}\n alignment={alignment ?? internalAlignment}\n ref={contextMenuContentRef}\n />\n )}\n </AnimatePresence>,\n container\n ),\n [\n container,\n coordinates,\n internalCoordinates,\n internalAlignment,\n isContentShown,\n items,\n alignment,\n uuid,\n ]\n );\n\n return (\n <>\n <StyledContextMenu\n className=\"beta-chayns-context-menu\"\n onClick={handleClick}\n ref={contextMenuRef}\n >\n {children}\n </StyledContextMenu>\n {portal}\n </>\n );\n }\n);\n\nContextMenu.displayName = 'ContextMenu';\n\nexport default ContextMenu;\n"],"file":"ContextMenu.js"}
|
|
@@ -26,6 +26,10 @@ declare type ListItemProps = {
|
|
|
26
26
|
* This can be used to automatically expand the `ListItem` during the first render.
|
|
27
27
|
*/
|
|
28
28
|
isDefaultOpen?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* This overrides the internal opening state of the item and makes it controlled.
|
|
31
|
+
*/
|
|
32
|
+
isOpen?: boolean;
|
|
29
33
|
/**
|
|
30
34
|
* Function to be executed when the header of the `ListItem` was clicked
|
|
31
35
|
*/
|
|
@@ -35,6 +39,11 @@ declare type ListItemProps = {
|
|
|
35
39
|
* 400 milliseconds.
|
|
36
40
|
*/
|
|
37
41
|
onLongPress?: TouchEventHandler<HTMLDivElement>;
|
|
42
|
+
/**
|
|
43
|
+
* Elements that are displayed on the left side of the header. If multiple
|
|
44
|
+
* elements are specified, they are displayed one aside the other.
|
|
45
|
+
*/
|
|
46
|
+
leftElements?: [ReactNode, ...ReactNode[]];
|
|
38
47
|
/**
|
|
39
48
|
* Elements that are displayed on the right side of the header. If multiple
|
|
40
49
|
* elements are specified, they are displayed one below the other.
|
|
@@ -33,8 +33,10 @@ var ListItem = function ListItem(_ref) {
|
|
|
33
33
|
icons = _ref.icons,
|
|
34
34
|
images = _ref.images,
|
|
35
35
|
isDefaultOpen = _ref.isDefaultOpen,
|
|
36
|
+
isOpen = _ref.isOpen,
|
|
36
37
|
onClick = _ref.onClick,
|
|
37
38
|
onLongPress = _ref.onLongPress,
|
|
39
|
+
leftElements = _ref.leftElements,
|
|
38
40
|
rightElements = _ref.rightElements,
|
|
39
41
|
subtitle = _ref.subtitle,
|
|
40
42
|
shouldShowRoundImage = _ref.shouldShowRoundImage,
|
|
@@ -48,7 +50,7 @@ var ListItem = function ListItem(_ref) {
|
|
|
48
50
|
|
|
49
51
|
var uuid = (0, _uuid.useUuid)();
|
|
50
52
|
var isExpandable = children !== undefined;
|
|
51
|
-
var
|
|
53
|
+
var isItemOpen = isOpen !== null && isOpen !== void 0 ? isOpen : openItemUuid === uuid;
|
|
52
54
|
var handleHeadClick = (0, _react.useCallback)(function (event) {
|
|
53
55
|
if (isExpandable) {
|
|
54
56
|
updateOpenItemUuid(uuid);
|
|
@@ -77,23 +79,24 @@ var ListItem = function ListItem(_ref) {
|
|
|
77
79
|
return /*#__PURE__*/_react.default.createElement(_ListItem.StyledListItem, {
|
|
78
80
|
className: "beta-chayns-list-item",
|
|
79
81
|
isClickable: typeof onClick === 'function' || isExpandable,
|
|
80
|
-
isOpen:
|
|
82
|
+
isOpen: isItemOpen
|
|
81
83
|
}, /*#__PURE__*/_react.default.createElement(_ListItemHead.default, {
|
|
82
84
|
hoverItem: hoverItem,
|
|
83
85
|
icons: icons,
|
|
84
86
|
images: images,
|
|
85
87
|
isAnyItemExpandable: isAnyItemExpandable,
|
|
86
88
|
isExpandable: isExpandable,
|
|
87
|
-
isOpen:
|
|
89
|
+
isOpen: isItemOpen,
|
|
88
90
|
onClick: handleHeadClick,
|
|
89
91
|
onLongPress: onLongPress,
|
|
92
|
+
leftElements: leftElements,
|
|
90
93
|
rightElements: rightElements,
|
|
91
94
|
subtitle: subtitle,
|
|
92
95
|
shouldShowRoundImage: shouldShowRoundImage,
|
|
93
96
|
title: title
|
|
94
97
|
}), /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, {
|
|
95
98
|
initial: false
|
|
96
|
-
}, isExpandable &&
|
|
99
|
+
}, isExpandable && isItemOpen && /*#__PURE__*/_react.default.createElement(_ListItemBody.default, null, children)));
|
|
97
100
|
};
|
|
98
101
|
|
|
99
102
|
ListItem.displayName = 'ListItem';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/list/list-item/ListItem.tsx"],"names":["ListItem","children","hoverItem","icons","images","isDefaultOpen","onClick","onLongPress","rightElements","subtitle","shouldShowRoundImage","title","ListContext","incrementExpandableItemCount","isAnyItemExpandable","openItemUuid","updateOpenItemUuid","uuid","isExpandable","undefined","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/list/list-item/ListItem.tsx"],"names":["ListItem","children","hoverItem","icons","images","isDefaultOpen","isOpen","onClick","onLongPress","leftElements","rightElements","subtitle","shouldShowRoundImage","title","ListContext","incrementExpandableItemCount","isAnyItemExpandable","openItemUuid","updateOpenItemUuid","uuid","isExpandable","undefined","isItemOpen","handleHeadClick","event","shouldOnlyOpen","displayName"],"mappings":"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","sourcesContent":["import { AnimatePresence } from 'framer-motion';\nimport React, {\n FC,\n MouseEventHandler,\n ReactNode,\n TouchEventHandler,\n useCallback,\n useContext,\n useEffect,\n} from 'react';\nimport { useUuid } from '../../../hooks/uuid';\nimport { ListContext } from '../List';\nimport ListItemBody from './list-item-body/ListItemBody';\nimport ListItemHead from './list-item-head/ListItemHead';\nimport { StyledListItem } from './ListItem.styles';\n\ntype ListItemProps = {\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 * 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 * 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 * 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 header of the `ListItem` is pressed for\n * 400 milliseconds.\n */\n onLongPress?: TouchEventHandler<HTMLDivElement>;\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?: [ReactNode, ...ReactNode[]];\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?: [ReactNode, ...ReactNode[]];\n /**\n * Images of users should always be displayed in a round shape. Therefore\n * this property can be set to true.\n */\n shouldShowRoundImage?: 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\nconst ListItem: FC<ListItemProps> = ({\n children,\n hoverItem,\n icons,\n images,\n isDefaultOpen,\n isOpen,\n onClick,\n onLongPress,\n leftElements,\n rightElements,\n subtitle,\n shouldShowRoundImage,\n title,\n}) => {\n const { incrementExpandableItemCount, isAnyItemExpandable, openItemUuid, updateOpenItemUuid } =\n useContext(ListContext);\n\n const uuid = useUuid();\n\n const isExpandable = children !== undefined;\n const isItemOpen = isOpen ?? openItemUuid === uuid;\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 (isExpandable) {\n // The incrementExpandableItemCount function returns an cleanup\n // function to decrement expandableItemCount if component unmounts\n return incrementExpandableItemCount();\n }\n\n return undefined;\n }, [incrementExpandableItemCount, isExpandable]);\n\n useEffect(() => {\n if (isDefaultOpen) {\n updateOpenItemUuid(uuid, { shouldOnlyOpen: true });\n }\n }, [isDefaultOpen, updateOpenItemUuid, uuid]);\n\n return (\n <StyledListItem\n className=\"beta-chayns-list-item\"\n isClickable={typeof onClick === 'function' || isExpandable}\n isOpen={isItemOpen}\n >\n <ListItemHead\n hoverItem={hoverItem}\n icons={icons}\n images={images}\n isAnyItemExpandable={isAnyItemExpandable}\n isExpandable={isExpandable}\n isOpen={isItemOpen}\n onClick={handleHeadClick}\n onLongPress={onLongPress}\n leftElements={leftElements}\n rightElements={rightElements}\n subtitle={subtitle}\n shouldShowRoundImage={shouldShowRoundImage}\n title={title}\n />\n <AnimatePresence initial={false}>\n {isExpandable && isItemOpen && <ListItemBody>{children}</ListItemBody>}\n </AnimatePresence>\n </StyledListItem>\n );\n};\n\nListItem.displayName = 'ListItem';\n\nexport default ListItem;\n"],"file":"ListItem.js"}
|
|
@@ -9,10 +9,12 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
|
|
12
|
-
var _GridImage = _interopRequireDefault(require("../../../grid-image/GridImage"));
|
|
13
|
-
|
|
14
12
|
var _Icon = _interopRequireDefault(require("../../../icon/Icon"));
|
|
15
13
|
|
|
14
|
+
var _ListItemIcon = _interopRequireDefault(require("./list-item-icon/ListItemIcon"));
|
|
15
|
+
|
|
16
|
+
var _ListItemImage = _interopRequireDefault(require("./list-item-image/ListItemImage"));
|
|
17
|
+
|
|
16
18
|
var _ListItemHead = require("./ListItemHead.styles");
|
|
17
19
|
|
|
18
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -45,22 +47,15 @@ var ListItemHead = function ListItemHead(_ref) {
|
|
|
45
47
|
rightElements = _ref.rightElements,
|
|
46
48
|
subtitle = _ref.subtitle,
|
|
47
49
|
shouldShowRoundImage = _ref.shouldShowRoundImage,
|
|
48
|
-
title = _ref.title
|
|
50
|
+
title = _ref.title,
|
|
51
|
+
leftElements = _ref.leftElements;
|
|
49
52
|
|
|
50
53
|
var _useState = (0, _react.useState)(false),
|
|
51
54
|
_useState2 = _slicedToArray(_useState, 2),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
var _useState3 = (0, _react.useState)(false),
|
|
56
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
57
|
-
shouldShowHoverItem = _useState4[0],
|
|
58
|
-
setShouldShowHoverItem = _useState4[1];
|
|
55
|
+
shouldShowHoverItem = _useState2[0],
|
|
56
|
+
setShouldShowHoverItem = _useState2[1];
|
|
59
57
|
|
|
60
58
|
var longPressTimeoutRef = (0, _react.useRef)();
|
|
61
|
-
var handleImageLoaded = (0, _react.useCallback)(function () {
|
|
62
|
-
setHasLoadedImage(true);
|
|
63
|
-
}, []);
|
|
64
59
|
var handleMouseEnter = (0, _react.useCallback)(function () {
|
|
65
60
|
return setShouldShowHoverItem(true);
|
|
66
61
|
}, []);
|
|
@@ -79,33 +74,20 @@ var ListItemHead = function ListItemHead(_ref) {
|
|
|
79
74
|
}, []);
|
|
80
75
|
var iconOrImageElement = (0, _react.useMemo)(function () {
|
|
81
76
|
if (icons) {
|
|
82
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
83
|
-
icons: icons
|
|
84
|
-
size: 22
|
|
85
|
-
}));
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (images && images[0] && images[1] && images[2]) {
|
|
89
|
-
var gridImages = [images[0], images[1], images[2]];
|
|
90
|
-
return /*#__PURE__*/_react.default.createElement(_GridImage.default, {
|
|
91
|
-
images: gridImages,
|
|
92
|
-
shouldShowRoundImage: shouldShowRoundImage,
|
|
93
|
-
size: 40
|
|
77
|
+
return /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, {
|
|
78
|
+
icons: icons
|
|
94
79
|
});
|
|
95
80
|
}
|
|
96
81
|
|
|
97
|
-
if (images
|
|
98
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
onLoad: handleImageLoaded,
|
|
103
|
-
src: images[0]
|
|
104
|
-
}));
|
|
82
|
+
if (images) {
|
|
83
|
+
return /*#__PURE__*/_react.default.createElement(_ListItemImage.default, {
|
|
84
|
+
images: images,
|
|
85
|
+
shouldShowRoundImage: !!shouldShowRoundImage
|
|
86
|
+
});
|
|
105
87
|
}
|
|
106
88
|
|
|
107
89
|
return undefined;
|
|
108
|
-
}, [
|
|
90
|
+
}, [icons, images, shouldShowRoundImage]);
|
|
109
91
|
return /*#__PURE__*/_react.default.createElement(_ListItemHead.StyledListItemHead, {
|
|
110
92
|
className: "beta-chayns-list-item-head",
|
|
111
93
|
isClickable: typeof onClick === 'function' || isExpandable,
|
|
@@ -124,7 +106,7 @@ var ListItemHead = function ListItemHead(_ref) {
|
|
|
124
106
|
}
|
|
125
107
|
}, isExpandable && /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
126
108
|
icons: ['fa fa-chevron-right']
|
|
127
|
-
})), iconOrImageElement, /*#__PURE__*/_react.default.createElement(_ListItemHead.StyledListItemHeadContent, {
|
|
109
|
+
})), leftElements, iconOrImageElement, /*#__PURE__*/_react.default.createElement(_ListItemHead.StyledListItemHeadContent, {
|
|
128
110
|
isIconOrImageGiven: iconOrImageElement !== undefined,
|
|
129
111
|
isOpen: isOpen
|
|
130
112
|
}, /*#__PURE__*/_react.default.createElement(_ListItemHead.StyledListItemHeadTitle, null, /*#__PURE__*/_react.default.createElement(_ListItemHead.StyledListItemHeadTitleText, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/list/list-item/list-item-head/ListItemHead.tsx"],"names":["ListItemHead","hoverItem","icons","images","isAnyItemExpandable","isExpandable","isOpen","onClick","onLongPress","rightElements","subtitle","shouldShowRoundImage","title","hasLoadedImage","setHasLoadedImage","shouldShowHoverItem","setShouldShowHoverItem","longPressTimeoutRef","handleImageLoaded","handleMouseEnter","handleMouseLeave","handleTouchStart","event","current","window","setTimeout","handleTouchEnd","clearTimeout","iconOrImageElement","gridImages","undefined","rotate","type","length","marginLeft","opacity","width","duration","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n MouseEventHandler,\n ReactNode,\n TouchEventHandler,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport GridImage from '../../../grid-image/GridImage';\nimport Icon from '../../../icon/Icon';\nimport {\n StyledListItemHead,\n StyledListItemHeadBottomRightElement,\n StyledListItemHeadContent,\n StyledListItemHeadIcon,\n StyledListItemHeadImage,\n StyledListItemHeadImageWrapper,\n StyledListItemHeadRightElement,\n StyledListItemHeadSubtitle,\n StyledListItemHeadSubtitleText,\n StyledListItemHeadTitle,\n StyledListItemHeadTitleText,\n StyledListItemHeadTopRightElement,\n StyledMotionListItemHeadHoverItem,\n StyledMotionListItemHeadIndicator,\n} from './ListItemHead.styles';\n\ntype ListItemHeadProps = {\n hoverItem?: ReactNode;\n icons?: string[];\n images?: string[];\n isAnyItemExpandable: boolean;\n isExpandable: boolean;\n isOpen: boolean;\n onClick?: MouseEventHandler<HTMLDivElement>;\n onLongPress?: TouchEventHandler<HTMLDivElement>;\n rightElements?: [ReactNode, ...ReactNode[]];\n subtitle?: ReactNode;\n shouldShowRoundImage?: boolean;\n title: ReactNode;\n};\n\nconst ListItemHead: FC<ListItemHeadProps> = ({\n hoverItem,\n icons,\n images,\n isAnyItemExpandable,\n isExpandable,\n isOpen,\n onClick,\n onLongPress,\n rightElements,\n subtitle,\n shouldShowRoundImage,\n title,\n}) => {\n const [hasLoadedImage, setHasLoadedImage] = useState(false);\n const [shouldShowHoverItem, setShouldShowHoverItem] = useState(false);\n\n const longPressTimeoutRef = useRef<number>();\n\n const handleImageLoaded = useCallback(() => {\n setHasLoadedImage(true);\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 iconOrImageElement = useMemo(() => {\n if (icons) {\n return (\n <StyledListItemHeadIcon>\n <Icon icons={icons} size={22} />\n </StyledListItemHeadIcon>\n );\n }\n\n if (images && images[0] && images[1] && images[2]) {\n const gridImages = [images[0], images[1], images[2]];\n\n return (\n <GridImage\n images={gridImages}\n shouldShowRoundImage={shouldShowRoundImage}\n size={40}\n />\n );\n }\n\n if (images && images[0]) {\n return (\n <StyledListItemHeadImageWrapper shouldShowRoundImage={shouldShowRoundImage}>\n <StyledListItemHeadImage\n isHidden={!hasLoadedImage}\n onLoad={handleImageLoaded}\n src={images[0]}\n />\n </StyledListItemHeadImageWrapper>\n );\n }\n\n return undefined;\n }, [handleImageLoaded, hasLoadedImage, icons, images, shouldShowRoundImage]);\n\n return (\n <StyledListItemHead\n className=\"beta-chayns-list-item-head\"\n isClickable={typeof onClick === 'function' || isExpandable}\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 {isAnyItemExpandable && (\n <StyledMotionListItemHeadIndicator\n animate={{ rotate: isOpen ? 90 : 0 }}\n initial={false}\n transition={{ type: 'tween' }}\n >\n {isExpandable && <Icon icons={['fa fa-chevron-right']} />}\n </StyledMotionListItemHeadIndicator>\n )}\n {iconOrImageElement}\n <StyledListItemHeadContent\n isIconOrImageGiven={iconOrImageElement !== undefined}\n isOpen={isOpen}\n >\n <StyledListItemHeadTitle>\n <StyledListItemHeadTitleText className=\"ellipsis\">\n {title}\n </StyledListItemHeadTitleText>\n {rightElements && rightElements.length > 1 && rightElements[0] && (\n <StyledListItemHeadTopRightElement>\n {rightElements[0]}\n </StyledListItemHeadTopRightElement>\n )}\n </StyledListItemHeadTitle>\n {subtitle && (\n <StyledListItemHeadSubtitle>\n <StyledListItemHeadSubtitleText className=\"ellipsis\">\n {subtitle}\n </StyledListItemHeadSubtitleText>\n {rightElements && rightElements.length > 1 && rightElements[1] && (\n <StyledListItemHeadBottomRightElement>\n {rightElements[1]}\n </StyledListItemHeadBottomRightElement>\n )}\n </StyledListItemHeadSubtitle>\n )}\n </StyledListItemHeadContent>\n {rightElements?.length === 1 && (\n <StyledListItemHeadRightElement>{rightElements[0]}</StyledListItemHeadRightElement>\n )}\n {hoverItem && (\n <StyledMotionListItemHeadHoverItem\n animate={{\n marginLeft: shouldShowHoverItem ? 8 : 0,\n opacity: shouldShowHoverItem ? 1 : 0,\n width: shouldShowHoverItem ? 'auto' : 0,\n }}\n initial={false}\n transition={{ duration: 0.15, type: 'tween' }}\n >\n {hoverItem}\n </StyledMotionListItemHeadHoverItem>\n )}\n </StyledListItemHead>\n );\n};\n\nListItemHead.displayName = 'ListItemHead';\n\nexport default ListItemHead;\n"],"file":"ListItemHead.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/list/list-item/list-item-head/ListItemHead.tsx"],"names":["ListItemHead","hoverItem","icons","images","isAnyItemExpandable","isExpandable","isOpen","onClick","onLongPress","rightElements","subtitle","shouldShowRoundImage","title","leftElements","shouldShowHoverItem","setShouldShowHoverItem","longPressTimeoutRef","handleMouseEnter","handleMouseLeave","handleTouchStart","event","current","window","setTimeout","handleTouchEnd","clearTimeout","iconOrImageElement","undefined","rotate","type","length","marginLeft","opacity","width","duration","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n MouseEventHandler,\n ReactNode,\n TouchEventHandler,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport Icon from '../../../icon/Icon';\nimport ListItemIcon from './list-item-icon/ListItemIcon';\nimport ListItemImage from './list-item-image/ListItemImage';\nimport {\n StyledListItemHead,\n StyledListItemHeadBottomRightElement,\n StyledListItemHeadContent,\n StyledListItemHeadRightElement,\n StyledListItemHeadSubtitle,\n StyledListItemHeadSubtitleText,\n StyledListItemHeadTitle,\n StyledListItemHeadTitleText,\n StyledListItemHeadTopRightElement,\n StyledMotionListItemHeadHoverItem,\n StyledMotionListItemHeadIndicator,\n} from './ListItemHead.styles';\n\ntype ListItemHeadProps = {\n hoverItem?: ReactNode;\n icons?: string[];\n images?: string[];\n isAnyItemExpandable: boolean;\n isExpandable: boolean;\n isOpen: boolean;\n onClick?: MouseEventHandler<HTMLDivElement>;\n onLongPress?: TouchEventHandler<HTMLDivElement>;\n rightElements?: [ReactNode, ...ReactNode[]];\n subtitle?: ReactNode;\n leftElements?: ReactNode;\n shouldShowRoundImage?: boolean;\n title: ReactNode;\n};\n\nconst ListItemHead: FC<ListItemHeadProps> = ({\n hoverItem,\n icons,\n images,\n isAnyItemExpandable,\n isExpandable,\n isOpen,\n onClick,\n onLongPress,\n rightElements,\n subtitle,\n shouldShowRoundImage,\n title,\n leftElements,\n}) => {\n const [shouldShowHoverItem, setShouldShowHoverItem] = useState(false);\n\n const longPressTimeoutRef = useRef<number>();\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 iconOrImageElement = useMemo(() => {\n if (icons) {\n return <ListItemIcon icons={icons} />;\n }\n\n if (images) {\n return <ListItemImage images={images} shouldShowRoundImage={!!shouldShowRoundImage} />;\n }\n\n return undefined;\n }, [icons, images, shouldShowRoundImage]);\n\n return (\n <StyledListItemHead\n className=\"beta-chayns-list-item-head\"\n isClickable={typeof onClick === 'function' || isExpandable}\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 {isAnyItemExpandable && (\n <StyledMotionListItemHeadIndicator\n animate={{ rotate: isOpen ? 90 : 0 }}\n initial={false}\n transition={{ type: 'tween' }}\n >\n {isExpandable && <Icon icons={['fa fa-chevron-right']} />}\n </StyledMotionListItemHeadIndicator>\n )}\n {leftElements}\n {iconOrImageElement}\n <StyledListItemHeadContent\n isIconOrImageGiven={iconOrImageElement !== undefined}\n isOpen={isOpen}\n >\n <StyledListItemHeadTitle>\n <StyledListItemHeadTitleText className=\"ellipsis\">\n {title}\n </StyledListItemHeadTitleText>\n {rightElements && rightElements.length > 1 && rightElements[0] && (\n <StyledListItemHeadTopRightElement>\n {rightElements[0]}\n </StyledListItemHeadTopRightElement>\n )}\n </StyledListItemHeadTitle>\n {subtitle && (\n <StyledListItemHeadSubtitle>\n <StyledListItemHeadSubtitleText className=\"ellipsis\">\n {subtitle}\n </StyledListItemHeadSubtitleText>\n {rightElements && rightElements.length > 1 && rightElements[1] && (\n <StyledListItemHeadBottomRightElement>\n {rightElements[1]}\n </StyledListItemHeadBottomRightElement>\n )}\n </StyledListItemHeadSubtitle>\n )}\n </StyledListItemHeadContent>\n {rightElements?.length === 1 && (\n <StyledListItemHeadRightElement>{rightElements[0]}</StyledListItemHeadRightElement>\n )}\n {hoverItem && (\n <StyledMotionListItemHeadHoverItem\n animate={{\n marginLeft: shouldShowHoverItem ? 8 : 0,\n opacity: shouldShowHoverItem ? 1 : 0,\n width: shouldShowHoverItem ? 'auto' : 0,\n }}\n initial={false}\n transition={{ duration: 0.15, type: 'tween' }}\n >\n {hoverItem}\n </StyledMotionListItemHeadHoverItem>\n )}\n </StyledListItemHead>\n );\n};\n\nListItemHead.displayName = 'ListItemHead';\n\nexport default ListItemHead;\n"],"file":"ListItemHead.js"}
|
|
@@ -4,16 +4,6 @@ export declare const StyledListItemHead: import("styled-components").StyledCompo
|
|
|
4
4
|
theme: import("../../../color-scheme-provider/ColorSchemeProvider").Theme;
|
|
5
5
|
}, never>;
|
|
6
6
|
export declare const StyledMotionListItemHeadIndicator: import("styled-components").StyledComponent<import("framer-motion").ForwardRefComponent<HTMLDivElement, import("framer-motion").HTMLMotionProps<"div">>, any, {}, never>;
|
|
7
|
-
export declare const StyledListItemHeadIcon: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
8
|
-
export declare const StyledListItemHeadImageWrapper: import("styled-components").StyledComponent<"div", any, {
|
|
9
|
-
shouldShowRoundImage?: boolean | undefined;
|
|
10
|
-
} & {
|
|
11
|
-
theme: import("../../../color-scheme-provider/ColorSchemeProvider").Theme;
|
|
12
|
-
}, never>;
|
|
13
|
-
declare type StyledListItemHeadImageProps = {
|
|
14
|
-
isHidden: boolean;
|
|
15
|
-
};
|
|
16
|
-
export declare const StyledListItemHeadImage: import("styled-components").StyledComponent<"img", any, StyledListItemHeadImageProps, never>;
|
|
17
7
|
declare type StyledListItemHeadContentProps = {
|
|
18
8
|
isIconOrImageGiven: boolean;
|
|
19
9
|
isOpen: boolean;
|
|
@@ -5,13 +5,13 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.StyledMotionListItemHeadIndicator = exports.StyledMotionListItemHeadHoverItem = exports.StyledListItemHeadTopRightElement = exports.StyledListItemHeadTitleText = exports.StyledListItemHeadTitle = exports.StyledListItemHeadSubtitleText = exports.StyledListItemHeadSubtitle = exports.StyledListItemHeadRightElement = exports.
|
|
8
|
+
exports.StyledMotionListItemHeadIndicator = exports.StyledMotionListItemHeadHoverItem = exports.StyledListItemHeadTopRightElement = exports.StyledListItemHeadTitleText = exports.StyledListItemHeadTitle = exports.StyledListItemHeadSubtitleText = exports.StyledListItemHeadSubtitle = exports.StyledListItemHeadRightElement = exports.StyledListItemHeadContent = exports.StyledListItemHeadBottomRightElement = exports.StyledListItemHead = void 0;
|
|
9
9
|
|
|
10
10
|
var _framerMotion = require("framer-motion");
|
|
11
11
|
|
|
12
12
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
13
13
|
|
|
14
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12
|
|
14
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
|
|
15
15
|
|
|
16
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
17
|
|
|
@@ -31,73 +31,43 @@ exports.StyledListItemHead = StyledListItemHead;
|
|
|
31
31
|
var StyledMotionListItemHeadIndicator = (0, _styledComponents.default)(_framerMotion.motion.div)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n height: 26px;\n justify-content: center;\n width: 26px;\n"])));
|
|
32
32
|
exports.StyledMotionListItemHeadIndicator = StyledMotionListItemHeadIndicator;
|
|
33
33
|
|
|
34
|
-
var
|
|
35
|
-
var
|
|
36
|
-
return theme['text-rgb'];
|
|
37
|
-
}, function (_ref4) {
|
|
38
|
-
var theme = _ref4.theme;
|
|
39
|
-
return theme['009-rgb'];
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
exports.StyledListItemHeadIcon = StyledListItemHeadIcon;
|
|
43
|
-
|
|
44
|
-
var StyledListItemHeadImageWrapper = _styledComponents.default.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n background-color: rgba(\n ", ",\n 0.1\n );\n border-radius: ", ";\n box-shadow: 0 0 0 1px\n rgba(", ", 0.08) inset;\n flex: 0 0 auto;\n height: 40px;\n overflow: hidden;\n transition: border-radius 0.3s ease;\n width: 40px;\n"])), function (_ref5) {
|
|
45
|
-
var theme = _ref5.theme;
|
|
46
|
-
return theme['text-rgb'];
|
|
47
|
-
}, function (_ref6) {
|
|
48
|
-
var shouldShowRoundImage = _ref6.shouldShowRoundImage;
|
|
49
|
-
return shouldShowRoundImage ? '50%' : undefined;
|
|
50
|
-
}, function (_ref7) {
|
|
51
|
-
var theme = _ref7.theme;
|
|
52
|
-
return theme['009-rgb'];
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
exports.StyledListItemHeadImageWrapper = StyledListItemHeadImageWrapper;
|
|
56
|
-
|
|
57
|
-
var StyledListItemHeadImage = _styledComponents.default.img(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n height: 100%;\n object-fit: cover;\n opacity: ", ";\n transition: opacity 0.4s ease;\n width: 100%;\n"])), function (_ref8) {
|
|
58
|
-
var isHidden = _ref8.isHidden;
|
|
59
|
-
return isHidden ? 0 : 1;
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
exports.StyledListItemHeadImage = StyledListItemHeadImage;
|
|
63
|
-
|
|
64
|
-
var StyledListItemHeadContent = _styledComponents.default.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n font-weight: ", ";\n justify-content: center;\n line-height: normal;\n margin-left: ", ";\n min-width: 0;\n"])), function (_ref9) {
|
|
65
|
-
var isOpen = _ref9.isOpen;
|
|
34
|
+
var StyledListItemHeadContent = _styledComponents.default.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n font-weight: ", ";\n justify-content: center;\n line-height: normal;\n margin-left: ", ";\n min-width: 0;\n"])), function (_ref3) {
|
|
35
|
+
var isOpen = _ref3.isOpen;
|
|
66
36
|
return isOpen ? 'bold' : 'normal';
|
|
67
|
-
}, function (
|
|
68
|
-
var isIconOrImageGiven =
|
|
37
|
+
}, function (_ref4) {
|
|
38
|
+
var isIconOrImageGiven = _ref4.isIconOrImageGiven;
|
|
69
39
|
return isIconOrImageGiven ? '10px' : undefined;
|
|
70
40
|
});
|
|
71
41
|
|
|
72
42
|
exports.StyledListItemHeadContent = StyledListItemHeadContent;
|
|
73
43
|
|
|
74
|
-
var StyledListItemHeadTitle = _styledComponents.default.div(
|
|
44
|
+
var StyledListItemHeadTitle = _styledComponents.default.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n justify-content: space-between;\n"])));
|
|
75
45
|
|
|
76
46
|
exports.StyledListItemHeadTitle = StyledListItemHeadTitle;
|
|
77
47
|
|
|
78
|
-
var StyledListItemHeadTitleText = _styledComponents.default.span(
|
|
48
|
+
var StyledListItemHeadTitleText = _styledComponents.default.span(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n flex: 1 1 auto;\n min-width: 0;\n"])));
|
|
79
49
|
|
|
80
50
|
exports.StyledListItemHeadTitleText = StyledListItemHeadTitleText;
|
|
81
51
|
|
|
82
|
-
var StyledListItemHeadSubtitle = _styledComponents.default.div(
|
|
52
|
+
var StyledListItemHeadSubtitle = _styledComponents.default.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n justify-content: space-between;\n margin-top: 2px;\n opacity: 0.75;\n"])));
|
|
83
53
|
|
|
84
54
|
exports.StyledListItemHeadSubtitle = StyledListItemHeadSubtitle;
|
|
85
55
|
|
|
86
|
-
var StyledListItemHeadSubtitleText = _styledComponents.default.span(
|
|
56
|
+
var StyledListItemHeadSubtitleText = _styledComponents.default.span(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n flex: 1 1 auto;\n font-size: 85%;\n min-width: 0;\n"])));
|
|
87
57
|
|
|
88
58
|
exports.StyledListItemHeadSubtitleText = StyledListItemHeadSubtitleText;
|
|
89
59
|
|
|
90
|
-
var StyledListItemHeadTopRightElement = _styledComponents.default.div(
|
|
60
|
+
var StyledListItemHeadTopRightElement = _styledComponents.default.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n flex: 0 0 auto;\n font-size: 85%;\n margin-left: 8px;\n opacity: 0.75;\n"])));
|
|
91
61
|
|
|
92
62
|
exports.StyledListItemHeadTopRightElement = StyledListItemHeadTopRightElement;
|
|
93
63
|
|
|
94
|
-
var StyledListItemHeadBottomRightElement = _styledComponents.default.div(
|
|
64
|
+
var StyledListItemHeadBottomRightElement = _styledComponents.default.div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n flex: 0 0 auto;\n margin-left: 8px;\n font-size: 85%;\n"])));
|
|
95
65
|
|
|
96
66
|
exports.StyledListItemHeadBottomRightElement = StyledListItemHeadBottomRightElement;
|
|
97
67
|
|
|
98
|
-
var StyledListItemHeadRightElement = _styledComponents.default.div(
|
|
68
|
+
var StyledListItemHeadRightElement = _styledComponents.default.div(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n flex: 0 0 auto;\n margin-left: 8px;\n"])));
|
|
99
69
|
|
|
100
70
|
exports.StyledListItemHeadRightElement = StyledListItemHeadRightElement;
|
|
101
|
-
var StyledMotionListItemHeadHoverItem = (0, _styledComponents.default)(_framerMotion.motion.div)(
|
|
71
|
+
var StyledMotionListItemHeadHoverItem = (0, _styledComponents.default)(_framerMotion.motion.div)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n overflow: hidden;\n"])));
|
|
102
72
|
exports.StyledMotionListItemHeadHoverItem = StyledMotionListItemHeadHoverItem;
|
|
103
73
|
//# sourceMappingURL=ListItemHead.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/list/list-item/list-item-head/ListItemHead.styles.ts"],"names":["StyledListItemHead","styled","div","theme","text","isClickable","css","StyledMotionListItemHeadIndicator","motion","
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/list/list-item/list-item-head/ListItemHead.styles.ts"],"names":["StyledListItemHead","styled","div","theme","text","isClickable","css","StyledMotionListItemHeadIndicator","motion","StyledListItemHeadContent","isOpen","isIconOrImageGiven","undefined","StyledListItemHeadTitle","StyledListItemHeadTitleText","span","StyledListItemHeadSubtitle","StyledListItemHeadSubtitleText","StyledListItemHeadTopRightElement","StyledListItemHeadBottomRightElement","StyledListItemHeadRightElement","StyledMotionListItemHeadHoverItem"],"mappings":";;;;;;;;;AAAA;;AACA;;;;;;;;;;AAOO,IAAMA,kBAAkB,GAAGC,0BAAOC,GAAV,+LAElB;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,SAAwCA,KAAK,CAACC,IAA9C;AAAA,CAFkB,EAOzB;AAAA,MAAGC,WAAH,SAAGA,WAAH;AAAA,SACEA,WAAW,QACXC,qBADW,gHADb;AAAA,CAPyB,CAAxB;;;AAcA,IAAMC,iCAAiC,GAAG,+BAAOC,qBAAON,GAAd,CAAH,+MAAvC;;;AAcA,IAAMO,yBAAyB,GAAGR,0BAAOC,GAAV,2QAInB;AAAA,MAAGQ,MAAH,SAAGA,MAAH;AAAA,SAAiBA,MAAM,GAAG,MAAH,GAAY,QAAnC;AAAA,CAJmB,EAOnB;AAAA,MAAGC,kBAAH,SAAGA,kBAAH;AAAA,SAA6BA,kBAAkB,GAAG,MAAH,GAAYC,SAA3D;AAAA,CAPmB,CAA/B;;;;AAWA,IAAMC,uBAAuB,GAAGZ,0BAAOC,GAAV,4JAA7B;;;;AAMA,IAAMY,2BAA2B,GAAGb,0BAAOc,IAAV,iHAAjC;;;;AAKA,IAAMC,0BAA0B,GAAGf,0BAAOC,GAAV,sMAAhC;;;;AAQA,IAAMe,8BAA8B,GAAGhB,0BAAOc,IAAV,sIAApC;;;;AAMA,IAAMG,iCAAiC,GAAGjB,0BAAOC,GAAV,8JAAvC;;;;AAOA,IAAMiB,oCAAoC,GAAGlB,0BAAOC,GAAV,4IAA1C;;;;AAMA,IAAMkB,8BAA8B,GAAGnB,0BAAOC,GAAV,uHAApC;;;AAKA,IAAMmB,iCAAiC,GAAG,+BAAOb,qBAAON,GAAd,CAAH,kGAAvC","sourcesContent":["import { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledListItemHeadProps = WithTheme<{\n isClickable: boolean;\n}>;\n\nexport const StyledListItemHead = styled.div<StyledListItemHeadProps>`\n align-items: center;\n color: ${({ theme }: StyledListItemHeadProps) => theme.text};\n display: flex;\n height: 64px;\n padding: 12px 9px;\n\n ${({ isClickable }) =>\n isClickable &&\n css`\n cursor: pointer;\n `}\n`;\n\nexport const StyledMotionListItemHeadIndicator = styled(motion.div)`\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n height: 26px;\n justify-content: center;\n width: 26px;\n`;\n\ntype StyledListItemHeadContentProps = {\n isIconOrImageGiven: boolean;\n isOpen: boolean;\n};\n\nexport const StyledListItemHeadContent = styled.div<StyledListItemHeadContentProps>`\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n font-weight: ${({ isOpen }) => (isOpen ? 'bold' : 'normal')};\n justify-content: center;\n line-height: normal;\n margin-left: ${({ isIconOrImageGiven }) => (isIconOrImageGiven ? '10px' : undefined)};\n min-width: 0;\n`;\n\nexport const StyledListItemHeadTitle = styled.div`\n align-items: center;\n display: flex;\n justify-content: space-between;\n`;\n\nexport const StyledListItemHeadTitleText = styled.span`\n flex: 1 1 auto;\n min-width: 0;\n`;\n\nexport const StyledListItemHeadSubtitle = styled.div`\n align-items: center;\n display: flex;\n justify-content: space-between;\n margin-top: 2px;\n opacity: 0.75;\n`;\n\nexport const StyledListItemHeadSubtitleText = styled.span`\n flex: 1 1 auto;\n font-size: 85%;\n min-width: 0;\n`;\n\nexport const StyledListItemHeadTopRightElement = styled.div`\n flex: 0 0 auto;\n font-size: 85%;\n margin-left: 8px;\n opacity: 0.75;\n`;\n\nexport const StyledListItemHeadBottomRightElement = styled.div`\n flex: 0 0 auto;\n margin-left: 8px;\n font-size: 85%;\n`;\n\nexport const StyledListItemHeadRightElement = styled.div`\n flex: 0 0 auto;\n margin-left: 8px;\n`;\n\nexport const StyledMotionListItemHeadHoverItem = styled(motion.div)`\n overflow: hidden;\n`;\n"],"file":"ListItemHead.styles.js"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _Icon = _interopRequireDefault(require("../../../../icon/Icon"));
|
|
11
|
+
|
|
12
|
+
var _ListItemIcon = require("./ListItemIcon.styles");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
var ListItemIcon = function ListItemIcon(_ref) {
|
|
17
|
+
var icons = _ref.icons;
|
|
18
|
+
return /*#__PURE__*/_react.default.createElement(_ListItemIcon.StyledListItemIcon, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
19
|
+
icons: icons,
|
|
20
|
+
size: 22
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
ListItemIcon.displayName = 'ListItemIcon';
|
|
25
|
+
var _default = ListItemIcon;
|
|
26
|
+
exports.default = _default;
|
|
27
|
+
//# sourceMappingURL=ListItemIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.tsx"],"names":["ListItemIcon","icons","displayName"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAMA,IAAMA,YAAyC,GAAG,SAA5CA,YAA4C,OAAe;AAAA,MAAZC,KAAY,QAAZA,KAAY;AAC7D,sBACI,6BAAC,gCAAD,qBACI,6BAAC,aAAD;AAAM,IAAA,KAAK,EAAEA,KAAb;AAAoB,IAAA,IAAI,EAAE;AAA1B,IADJ,CADJ;AAKH,CAND;;AAQAD,YAAY,CAACE,WAAb,GAA2B,cAA3B;eAEeF,Y","sourcesContent":["import React from 'react';\nimport Icon from '../../../../icon/Icon';\nimport { StyledListItemIcon } from './ListItemIcon.styles';\n\ntype ListItemIconProps = {\n icons: string[];\n};\n\nconst ListItemIcon: React.FC<ListItemIconProps> = ({ icons }) => {\n return (\n <StyledListItemIcon>\n <Icon icons={icons} size={22} />\n </StyledListItemIcon>\n );\n};\n\nListItemIcon.displayName = 'ListItemIcon';\n\nexport default ListItemIcon;\n"],"file":"ListItemIcon.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const StyledListItemIcon: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StyledListItemIcon = void 0;
|
|
7
|
+
|
|
8
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
+
|
|
10
|
+
var _templateObject;
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
15
|
+
|
|
16
|
+
var StyledListItemIcon = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n align-items: center;\n background-color: rgba(", ", 0.1);\n box-shadow: 0 0 0 1px rgba(", ", 0.08)\n inset;\n display: flex;\n flex: 0 0 auto;\n height: 40px;\n justify-content: center;\n margin-right: 10px;\n width: 40px;\n"])), function (_ref) {
|
|
17
|
+
var theme = _ref.theme;
|
|
18
|
+
return theme['text-rgb'];
|
|
19
|
+
}, function (_ref2) {
|
|
20
|
+
var theme = _ref2.theme;
|
|
21
|
+
return theme['009-rgb'];
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
exports.StyledListItemIcon = StyledListItemIcon;
|
|
25
|
+
//# sourceMappingURL=ListItemIcon.styles.js.map
|
package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.ts"],"names":["StyledListItemIcon","styled","div","theme"],"mappings":";;;;;;;AAAA;;;;;;;;AAKO,IAAMA,kBAAkB,GAAGC,0BAAOC,GAAV,2UAEF;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,SAAwCA,KAAK,CAAC,UAAD,CAA7C;AAAA,CAFE,EAGE;AAAA,MAAGA,KAAH,SAAGA,KAAH;AAAA,SAAwCA,KAAK,CAAC,SAAD,CAA7C;AAAA,CAHF,CAAxB","sourcesContent":["import styled from 'styled-components';\nimport type { WithTheme } from '../../../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledListItemIconProps = WithTheme<unknown>;\n\nexport const StyledListItemIcon = styled.div`\n align-items: center;\n background-color: rgba(${({ theme }: StyledListItemIconProps) => theme['text-rgb']}, 0.1);\n box-shadow: 0 0 0 1px rgba(${({ theme }: StyledListItemIconProps) => theme['009-rgb']}, 0.08)\n inset;\n display: flex;\n flex: 0 0 auto;\n height: 40px;\n justify-content: center;\n margin-right: 10px;\n width: 40px;\n`;\n"],"file":"ListItemIcon.styles.js"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _GridImage = _interopRequireDefault(require("../../../../grid-image/GridImage"));
|
|
13
|
+
|
|
14
|
+
var _ListItemImage = require("./ListItemImage.styles");
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
+
|
|
20
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
|
+
|
|
22
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
23
|
+
|
|
24
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
|
+
|
|
26
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
27
|
+
|
|
28
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
29
|
+
|
|
30
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
31
|
+
|
|
32
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
33
|
+
|
|
34
|
+
var ListItemImage = function ListItemImage(_ref) {
|
|
35
|
+
var images = _ref.images,
|
|
36
|
+
shouldShowRoundImage = _ref.shouldShowRoundImage;
|
|
37
|
+
|
|
38
|
+
var _useState = (0, _react.useState)(false),
|
|
39
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
40
|
+
hasLoadedImage = _useState2[0],
|
|
41
|
+
setHasLoadedImage = _useState2[1];
|
|
42
|
+
|
|
43
|
+
var handleImageLoaded = (0, _react.useCallback)(function () {
|
|
44
|
+
setHasLoadedImage(true);
|
|
45
|
+
}, []);
|
|
46
|
+
|
|
47
|
+
if (images && images[0] && images[1] && images[2]) {
|
|
48
|
+
var gridImages = [images[0], images[1], images[2]];
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement(_GridImage.default, {
|
|
50
|
+
images: gridImages,
|
|
51
|
+
shouldShowRoundImage: shouldShowRoundImage,
|
|
52
|
+
size: 40
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (images && images[0]) {
|
|
57
|
+
return /*#__PURE__*/_react.default.createElement(_ListItemImage.StyledListItemHeadImageWrapper, {
|
|
58
|
+
shouldShowRoundImage: shouldShowRoundImage
|
|
59
|
+
}, /*#__PURE__*/_react.default.createElement(_ListItemImage.StyledListItemHeadImage, {
|
|
60
|
+
isHidden: !hasLoadedImage,
|
|
61
|
+
onLoad: handleImageLoaded,
|
|
62
|
+
src: images[0]
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return null;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
ListItemImage.displayName = 'ListItemImage';
|
|
70
|
+
var _default = ListItemImage;
|
|
71
|
+
exports.default = _default;
|
|
72
|
+
//# sourceMappingURL=ListItemImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/list/list-item/list-item-head/list-item-image/ListItemImage.tsx"],"names":["ListItemImage","images","shouldShowRoundImage","hasLoadedImage","setHasLoadedImage","handleImageLoaded","gridImages","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAOA,IAAMA,aAA2C,GAAG,SAA9CA,aAA8C,OAAsC;AAAA,MAAnCC,MAAmC,QAAnCA,MAAmC;AAAA,MAA3BC,oBAA2B,QAA3BA,oBAA2B;;AACtF,kBAA4C,qBAAS,KAAT,CAA5C;AAAA;AAAA,MAAOC,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,MAAMC,iBAAiB,GAAG,wBAAY,YAAM;AACxCD,IAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACH,GAFyB,EAEvB,EAFuB,CAA1B;;AAIA,MAAIH,MAAM,IAAIA,MAAM,CAAC,CAAD,CAAhB,IAAuBA,MAAM,CAAC,CAAD,CAA7B,IAAoCA,MAAM,CAAC,CAAD,CAA9C,EAAmD;AAC/C,QAAMK,UAAU,GAAG,CAACL,MAAM,CAAC,CAAD,CAAP,EAAYA,MAAM,CAAC,CAAD,CAAlB,EAAuBA,MAAM,CAAC,CAAD,CAA7B,CAAnB;AAEA,wBACI,6BAAC,kBAAD;AAAW,MAAA,MAAM,EAAEK,UAAnB;AAA+B,MAAA,oBAAoB,EAAEJ,oBAArD;AAA2E,MAAA,IAAI,EAAE;AAAjF,MADJ;AAGH;;AAED,MAAID,MAAM,IAAIA,MAAM,CAAC,CAAD,CAApB,EAAyB;AACrB,wBACI,6BAAC,6CAAD;AAAgC,MAAA,oBAAoB,EAAEC;AAAtD,oBACI,6BAAC,sCAAD;AACI,MAAA,QAAQ,EAAE,CAACC,cADf;AAEI,MAAA,MAAM,EAAEE,iBAFZ;AAGI,MAAA,GAAG,EAAEJ,MAAM,CAAC,CAAD;AAHf,MADJ,CADJ;AASH;;AAED,SAAO,IAAP;AACH,CA3BD;;AA6BAD,aAAa,CAACO,WAAd,GAA4B,eAA5B;eAEeP,a","sourcesContent":["import React, { useCallback, useState } from 'react';\nimport GridImage from '../../../../grid-image/GridImage';\nimport { StyledListItemHeadImage, StyledListItemHeadImageWrapper } from './ListItemImage.styles';\n\ntype ListItemImageProps = {\n images: string[];\n shouldShowRoundImage: boolean;\n};\n\nconst ListItemImage: React.FC<ListItemImageProps> = ({ images, shouldShowRoundImage }) => {\n const [hasLoadedImage, setHasLoadedImage] = useState(false);\n const handleImageLoaded = useCallback(() => {\n setHasLoadedImage(true);\n }, []);\n\n if (images && images[0] && images[1] && images[2]) {\n const gridImages = [images[0], images[1], images[2]];\n\n return (\n <GridImage images={gridImages} shouldShowRoundImage={shouldShowRoundImage} size={40} />\n );\n }\n\n if (images && images[0]) {\n return (\n <StyledListItemHeadImageWrapper shouldShowRoundImage={shouldShowRoundImage}>\n <StyledListItemHeadImage\n isHidden={!hasLoadedImage}\n onLoad={handleImageLoaded}\n src={images[0]}\n />\n </StyledListItemHeadImageWrapper>\n );\n }\n\n return null;\n};\n\nListItemImage.displayName = 'ListItemImage';\n\nexport default ListItemImage;\n"],"file":"ListItemImage.js"}
|
package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const StyledListItemHeadImageWrapper: import("styled-components").StyledComponent<"div", any, {
|
|
2
|
+
shouldShowRoundImage?: boolean | undefined;
|
|
3
|
+
} & {
|
|
4
|
+
theme: import("../../../../color-scheme-provider/ColorSchemeProvider").Theme;
|
|
5
|
+
}, never>;
|
|
6
|
+
declare type StyledListItemHeadImageProps = {
|
|
7
|
+
isHidden: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare const StyledListItemHeadImage: import("styled-components").StyledComponent<"img", any, StyledListItemHeadImageProps, never>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StyledListItemHeadImageWrapper = exports.StyledListItemHeadImage = void 0;
|
|
7
|
+
|
|
8
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
+
|
|
10
|
+
var _templateObject, _templateObject2;
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
15
|
+
|
|
16
|
+
var StyledListItemHeadImageWrapper = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background-color: rgba(\n ", ",\n 0.1\n );\n border-radius: ", ";\n box-shadow: 0 0 0 1px\n rgba(", ", 0.08) inset;\n flex: 0 0 auto;\n height: 40px;\n overflow: hidden;\n transition: border-radius 0.3s ease;\n width: 40px;\n"])), function (_ref) {
|
|
17
|
+
var theme = _ref.theme;
|
|
18
|
+
return theme['text-rgb'];
|
|
19
|
+
}, function (_ref2) {
|
|
20
|
+
var shouldShowRoundImage = _ref2.shouldShowRoundImage;
|
|
21
|
+
return shouldShowRoundImage ? '50%' : undefined;
|
|
22
|
+
}, function (_ref3) {
|
|
23
|
+
var theme = _ref3.theme;
|
|
24
|
+
return theme['009-rgb'];
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
exports.StyledListItemHeadImageWrapper = StyledListItemHeadImageWrapper;
|
|
28
|
+
|
|
29
|
+
var StyledListItemHeadImage = _styledComponents.default.img(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n height: 100%;\n object-fit: cover;\n opacity: ", ";\n transition: opacity 0.4s ease;\n width: 100%;\n"])), function (_ref4) {
|
|
30
|
+
var isHidden = _ref4.isHidden;
|
|
31
|
+
return isHidden ? 0 : 1;
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
exports.StyledListItemHeadImage = StyledListItemHeadImage;
|
|
35
|
+
//# sourceMappingURL=ListItemImage.styles.js.map
|
package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.ts"],"names":["StyledListItemHeadImageWrapper","styled","div","theme","shouldShowRoundImage","undefined","StyledListItemHeadImage","img","isHidden"],"mappings":";;;;;;;AAAA;;;;;;;;AAOO,IAAMA,8BAA8B,GAAGC,0BAAOC,GAAV,0VAEjC;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,SAAoDA,KAAK,CAAC,UAAD,CAAzD;AAAA,CAFiC,EAKtB;AAAA,MAAGC,oBAAH,SAAGA,oBAAH;AAAA,SAA+BA,oBAAoB,GAAG,KAAH,GAAWC,SAA9D;AAAA,CALsB,EAO5B;AAAA,MAAGF,KAAH,SAAGA,KAAH;AAAA,SAAoDA,KAAK,CAAC,SAAD,CAAzD;AAAA,CAP4B,CAApC;;;;AAmBA,IAAMG,uBAAuB,GAAGL,0BAAOM,GAAV,+LAGrB;AAAA,MAAGC,QAAH,SAAGA,QAAH;AAAA,SAAmBA,QAAQ,GAAG,CAAH,GAAO,CAAlC;AAAA,CAHqB,CAA7B","sourcesContent":["import styled from 'styled-components';\nimport type { WithTheme } from '../../../../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledListItemHeadImageWrapperProps = WithTheme<{\n shouldShowRoundImage?: boolean;\n}>;\n\nexport const StyledListItemHeadImageWrapper = styled.div<StyledListItemHeadImageWrapperProps>`\n background-color: rgba(\n ${({ theme }: StyledListItemHeadImageWrapperProps) => theme['text-rgb']},\n 0.1\n );\n border-radius: ${({ shouldShowRoundImage }) => (shouldShowRoundImage ? '50%' : undefined)};\n box-shadow: 0 0 0 1px\n rgba(${({ theme }: StyledListItemHeadImageWrapperProps) => theme['009-rgb']}, 0.08) inset;\n flex: 0 0 auto;\n height: 40px;\n overflow: hidden;\n transition: border-radius 0.3s ease;\n width: 40px;\n`;\n\ntype StyledListItemHeadImageProps = {\n isHidden: boolean;\n};\n\nexport const StyledListItemHeadImage = styled.img<StyledListItemHeadImageProps>`\n height: 100%;\n object-fit: cover;\n opacity: ${({ isHidden }) => (isHidden ? 0 : 1)};\n transition: opacity 0.4s ease;\n width: 100%;\n`;\n"],"file":"ListItemImage.styles.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chayns-components/core",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.30",
|
|
4
4
|
"description": "A set of beautiful React components for developing your own applications with chayns.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"chayns",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"publishConfig": {
|
|
62
62
|
"access": "public"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "c7360693b78dc6c97b1655df459684498a1c218b"
|
|
65
65
|
}
|