dinocollab-shared 1.1.9 → 1.1.11
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/dist/cart/styled.js +1 -1
- package/dist/cart/styled.js.map +1 -1
- package/dist/cart/widget.js +1 -1
- package/dist/cart/widget.js.map +1 -1
- package/dist/layout-global/app-footer.js +1 -1
- package/dist/layout-global/app-footer.js.map +1 -1
- package/dist/layout-global/app-header.js +1 -1
- package/dist/layout-global/app-header.nav.js +1 -1
- package/dist/layout-global/app-header.nav.js.map +1 -1
- package/dist/layout-global/sub-menu.js +1 -1
- package/dist/layout-global/sub-menu.js.map +1 -1
- package/dist/layout-global/sub-menu.styled.js +1 -1
- package/dist/layout-global/sub-menu.styled.js.map +1 -1
- package/dist/layout-global/types.js.map +1 -1
- package/dist/media-right/cart-store.js +2 -0
- package/dist/media-right/cart-store.js.map +1 -0
- package/dist/media-right/configs.js +2 -0
- package/dist/media-right/configs.js.map +1 -0
- package/dist/media-right/group-selector/index.js +2 -0
- package/dist/media-right/group-selector/index.js.map +1 -0
- package/dist/media-right/group-selector/modal-header.js +2 -0
- package/dist/media-right/group-selector/modal-header.js.map +1 -0
- package/dist/media-right/group-selector/unit.control.js +2 -0
- package/dist/media-right/group-selector/unit.control.js.map +1 -0
- package/dist/media-right/group-selector/units.js +2 -0
- package/dist/media-right/group-selector/units.js.map +1 -0
- package/dist/media-right/helpers.js +2 -0
- package/dist/media-right/helpers.js.map +1 -0
- package/dist/media-right/hook.js +2 -0
- package/dist/media-right/hook.js.map +1 -0
- package/dist/media-right/index.js +2 -0
- package/dist/media-right/index.js.map +1 -0
- package/dist/media-right/media-widget/button.delete.js +2 -0
- package/dist/media-right/media-widget/button.delete.js.map +1 -0
- package/dist/media-right/media-widget/index.js +2 -0
- package/dist/media-right/media-widget/index.js.map +1 -0
- package/dist/media-right/media-widget/inline-editing.js +2 -0
- package/dist/media-right/media-widget/inline-editing.js.map +1 -0
- package/dist/media-right/media-widget/media-group-accordion.js +2 -0
- package/dist/media-right/media-widget/media-group-accordion.js.map +1 -0
- package/dist/media-right/media-widget/media-list.js +2 -0
- package/dist/media-right/media-widget/media-list.js.map +1 -0
- package/dist/media-right/media-widget/styled.js +2 -0
- package/dist/media-right/media-widget/styled.js.map +1 -0
- package/dist/media-right/media-widget/units.js +2 -0
- package/dist/media-right/media-widget/units.js.map +1 -0
- package/dist/media-right.d.ts +2 -0
- package/dist/media-right.js +2 -0
- package/dist/media-right.mjs +2 -0
- package/dist/notification/index.js +1 -1
- package/dist/notification/notify-detail.js +1 -1
- package/dist/notification/notify-detail.js.map +1 -1
- package/dist/notification/widget.js +1 -1
- package/dist/notification/widget.js.map +1 -1
- package/dist/types/cart/styled.d.ts.map +1 -1
- package/dist/types/cart/widget.d.ts +8 -2
- package/dist/types/cart/widget.d.ts.map +1 -1
- package/dist/types/layout-global/app-footer.d.ts +2 -0
- package/dist/types/layout-global/app-footer.d.ts.map +1 -1
- package/dist/types/layout-global/app-header.nav.d.ts +3 -1
- package/dist/types/layout-global/app-header.nav.d.ts.map +1 -1
- package/dist/types/layout-global/sub-menu.d.ts +5 -7
- package/dist/types/layout-global/sub-menu.d.ts.map +1 -1
- package/dist/types/layout-global/sub-menu.styled.d.ts +5 -2
- package/dist/types/layout-global/sub-menu.styled.d.ts.map +1 -1
- package/dist/types/layout-global/types.d.ts +2 -1
- package/dist/types/layout-global/types.d.ts.map +1 -1
- package/dist/types/media-right/cart-store.d.ts +48 -0
- package/dist/types/media-right/cart-store.d.ts.map +1 -0
- package/dist/types/media-right/configs.d.ts +7 -0
- package/dist/types/media-right/configs.d.ts.map +1 -0
- package/dist/types/media-right/group-selector/NewCollectionInput.d.ts +7 -0
- package/dist/types/media-right/group-selector/NewCollectionInput.d.ts.map +1 -0
- package/dist/types/media-right/group-selector/index.d.ts +18 -0
- package/dist/types/media-right/group-selector/index.d.ts.map +1 -0
- package/dist/types/media-right/group-selector/modal-header.d.ts +8 -0
- package/dist/types/media-right/group-selector/modal-header.d.ts.map +1 -0
- package/dist/types/media-right/group-selector/unit.control.d.ts +11 -0
- package/dist/types/media-right/group-selector/unit.control.d.ts.map +1 -0
- package/dist/types/media-right/group-selector/units.d.ts +14 -0
- package/dist/types/media-right/group-selector/units.d.ts.map +1 -0
- package/dist/types/media-right/helpers.d.ts +29 -0
- package/dist/types/media-right/helpers.d.ts.map +1 -0
- package/dist/types/media-right/hook.d.ts +22 -0
- package/dist/types/media-right/hook.d.ts.map +1 -0
- package/dist/types/media-right/index.d.ts +7 -0
- package/dist/types/media-right/index.d.ts.map +1 -0
- package/dist/types/media-right/media-widget/button.delete.d.ts +8 -0
- package/dist/types/media-right/media-widget/button.delete.d.ts.map +1 -0
- package/dist/types/media-right/media-widget/index.d.ts +12 -0
- package/dist/types/media-right/media-widget/index.d.ts.map +1 -0
- package/dist/types/media-right/media-widget/inline-editing.d.ts +12 -0
- package/dist/types/media-right/media-widget/inline-editing.d.ts.map +1 -0
- package/dist/types/media-right/media-widget/media-group-accordion.d.ts +10 -0
- package/dist/types/media-right/media-widget/media-group-accordion.d.ts.map +1 -0
- package/dist/types/media-right/media-widget/media-list.d.ts +8 -0
- package/dist/types/media-right/media-widget/media-list.d.ts.map +1 -0
- package/dist/types/media-right/media-widget/new-group-area.d.ts +2 -0
- package/dist/types/media-right/media-widget/new-group-area.d.ts.map +1 -0
- package/dist/types/media-right/media-widget/styled.d.ts +4 -0
- package/dist/types/media-right/media-widget/styled.d.ts.map +1 -0
- package/dist/types/media-right/media-widget/units.d.ts +3 -0
- package/dist/types/media-right/media-widget/units.d.ts.map +1 -0
- package/dist/types/media-right/types.d.ts +55 -0
- package/dist/types/media-right/types.d.ts.map +1 -0
- package/dist/types/notification/index.d.ts +0 -1
- package/dist/types/notification/index.d.ts.map +1 -1
- package/dist/types/notification/local-storage.d.ts +1 -8
- package/dist/types/notification/local-storage.d.ts.map +1 -1
- package/dist/types/notification/notify-detail.d.ts.map +1 -1
- package/dist/types/notification/widget.d.ts +1 -1
- package/dist/types/notification/widget.d.ts.map +1 -1
- package/package.json +29 -15
- package/dist/notification/local-storage.js +0 -2
- package/dist/notification/local-storage.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/media-right/group-selector/index.tsx"],"sourcesContent":["import { useState } from 'react'\r\nimport type { FC, FormEvent } from 'react'\r\nimport { createRoot } from 'react-dom/client'\r\nimport { Dialog, DialogContent, DialogActions, Button, Typography, Box } from '@mui/material'\r\nimport type { IMediaRightGroup, IMediaRightItem } from '../types'\r\nimport { CollectionsList } from './units'\r\nimport { ModalHeader } from './modal-header'\r\nimport { generateGroupId } from '../helpers'\r\nimport { NewCollectionButton, NewCollectionInput } from './unit.control'\r\n\r\nexport interface IGroupSelectorModalProps {\r\n open: boolean\r\n onClose: () => void\r\n onConfirm: (groupId: string | null, newName?: string) => void\r\n groups: IMediaRightGroup[]\r\n cartItem: IMediaRightItem | null\r\n}\r\n\r\nexport const GroupSelectorModal: FC<IGroupSelectorModalProps> = ({ open, onClose, onConfirm, groups, cartItem }) => {\r\n const [selectedGroupId, setSelectedGroupId] = useState<string | null>(null)\r\n const [showNewGroupInput, setShowNewGroupInput] = useState(false)\r\n const [newName, setNewName] = useState<string>('')\r\n\r\n const handleSubmit = (e: FormEvent) => {\r\n e.preventDefault()\r\n\r\n if (showNewGroupInput && newName.trim()) {\r\n // Create new group\r\n onConfirm(null, newName.trim())\r\n } else if (selectedGroupId) {\r\n // Add to selected group\r\n onConfirm(selectedGroupId)\r\n } else {\r\n // Add to cart without group\r\n onConfirm(null)\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n setSelectedGroupId(null)\r\n setShowNewGroupInput(false)\r\n setNewName('')\r\n onClose()\r\n }\r\n\r\n const handleNewGroupClick = () => {\r\n setSelectedGroupId(null)\r\n setShowNewGroupInput(true)\r\n }\r\n\r\n const handleGroupSelect = (groupId: string) => {\r\n setSelectedGroupId(groupId)\r\n setShowNewGroupInput(false)\r\n }\r\n\r\n const isConfirmDisabled = () => {\r\n if (showNewGroupInput) return !newName.trim()\r\n return !selectedGroupId\r\n }\r\n\r\n return (\r\n <Dialog open={open} onClose={handleClose} maxWidth='xs' fullWidth disableScrollLock={true} keepMounted={false} scroll='paper'>\r\n <ModalHeader cartItem={cartItem} onClose={handleClose} />\r\n\r\n <Box component='form' onSubmit={handleSubmit}>\r\n <DialogContent>\r\n <Typography variant='subtitle1' sx={{ mb: 1, fontWeight: 600 }}>\r\n Your Media Rights Package\r\n </Typography>\r\n\r\n {!showNewGroupInput ? <NewCollectionButton onClick={handleNewGroupClick} /> : <NewCollectionInput value={newName} onChange={setNewName} />}\r\n\r\n <CollectionsList groups={groups} selectedGroupId={selectedGroupId} onGroupSelect={handleGroupSelect} />\r\n </DialogContent>\r\n\r\n <DialogActions sx={{ px: 3, pb: 3 }}>\r\n <Button onClick={handleClose} variant='outlined' type='button'>\r\n Cancel\r\n </Button>\r\n <Button type='submit' variant='contained' disabled={isConfirmDisabled()} sx={{ minWidth: 100 }}>\r\n {showNewGroupInput ? 'Create & Add' : selectedGroupId ? 'Add' : 'Save'}\r\n </Button>\r\n </DialogActions>\r\n </Box>\r\n </Dialog>\r\n )\r\n}\r\n\r\nexport interface IShowGroupSelectorModalProps {\r\n cartItem: IMediaRightItem | null\r\n groups: IMediaRightGroup[]\r\n addGroup: (group: Omit<IMediaRightGroup, 'createdAt' | 'items'>) => void\r\n addItem: (item: IMediaRightItem) => void\r\n}\r\n\r\nexport const showGroupSelectorModal = ({ cartItem, groups, addGroup, addItem }: IShowGroupSelectorModalProps) => {\r\n const modalContainer = document.createElement('div')\r\n document.body.appendChild(modalContainer)\r\n const root = createRoot(modalContainer)\r\n\r\n const handleModalConfirmInModal = (groupId: string | null, newGroupName?: string) => {\r\n if (!cartItem) return\r\n let finalGroupId = groupId\r\n // Create new group if needed\r\n if (!groupId && newGroupName) {\r\n finalGroupId = generateGroupId()\r\n addGroup({\r\n id: finalGroupId,\r\n name: newGroupName,\r\n channels: []\r\n })\r\n }\r\n const cartItemWithGroup: IMediaRightItem = {\r\n ...cartItem,\r\n GroupId: finalGroupId || ''\r\n }\r\n if (finalGroupId) {\r\n addItem(cartItemWithGroup)\r\n }\r\n root.unmount()\r\n document.body.removeChild(modalContainer)\r\n }\r\n root.render(\r\n <GroupSelectorModal\r\n open={true}\r\n onClose={() => {\r\n root.unmount()\r\n document.body.removeChild(modalContainer)\r\n }}\r\n onConfirm={handleModalConfirmInModal}\r\n groups={groups}\r\n cartItem={cartItem}\r\n />\r\n )\r\n}\r\n"],"names":["GroupSelectorModal","_ref","open","onClose","onConfirm","groups","cartItem","_useState","useState","_useState2","_slicedToArray","selectedGroupId","setSelectedGroupId","_useState3","_useState4","showNewGroupInput","setShowNewGroupInput","_useState5","_useState6","newName","setNewName","handleClose","_jsxs","Dialog","maxWidth","fullWidth","disableScrollLock","keepMounted","scroll","_jsx","ModalHeader","Box","component","onSubmit","e","preventDefault","trim","children","DialogContent","Typography","variant","sx","mb","fontWeight","NewCollectionInput","value","onChange","NewCollectionButton","onClick","CollectionsList","onGroupSelect","groupId","DialogActions","px","pb","Button","type","disabled","minWidth","showGroupSelectorModal","_ref2","addGroup","addItem","modalContainer","document","createElement","body","appendChild","root","createRoot","render","unmount","removeChild","newGroupName","finalGroupId","generateGroupId","id","name","channels","cartItemWithGroup","_objectSpread","GroupId"],"mappings":"mjBAkBaA,EAAmD,SAAjCC,GAAoF,IAAhDC,EAAID,EAAJC,KAAMC,EAAOF,EAAPE,QAASC,EAASH,EAATG,UAAWC,EAAMJ,EAANI,OAAQC,EAAQL,EAARK,SACnGC,EAA8CC,EAAwB,MAAKC,EAAAC,EAAAH,EAAA,GAApEI,EAAeF,EAAA,GAAEG,EAAkBH,EAAA,GAC1CI,EAAkDL,GAAS,GAAMM,EAAAJ,EAAAG,EAAA,GAA1DE,EAAiBD,EAAA,GAAEE,EAAoBF,EAAA,GAC9CG,EAA8BT,EAAiB,IAAGU,EAAAR,EAAAO,EAAA,GAA3CE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAiBpBG,EAAc,WAClBT,EAAmB,MACnBI,GAAqB,GACrBI,EAAW,IACXjB,GACD,EAiBD,OACEmB,EAACC,EAAM,CAACrB,KAAMA,EAAMC,QAASkB,EAAaG,SAAS,KAAKC,WAAU,EAAAC,mBAAmB,EAAMC,aAAa,EAAOC,OAAO,kBACpHC,EAACC,GAAYxB,SAAUA,EAAUH,QAASkB,IAE1CC,EAACS,EAAI,CAAAC,UAAU,OAAOC,SAzCL,SAACC,GACpBA,EAAEC,iBAEEpB,GAAqBI,EAAQiB,OAE/BhC,EAAU,KAAMe,EAAQiB,QAGxBhC,EAFSO,GAKC,KAEb,EA6BK0B,SAAA,CAAAf,EAACgB,EACC,CAAAD,SAAA,CAAAR,EAACU,EAAW,CAAAC,QAAQ,YAAYC,GAAI,CAAEC,GAAI,EAAGC,WAAY,KAE5CN,SAAA,8BAEXtB,EAA4Ec,EAACe,EAAkB,CAACC,MAAO1B,EAAS2B,SAAU1B,IAAtGS,EAACkB,EAAoB,CAAAC,QAzBvB,WAC1BpC,EAAmB,MACnBI,GAAqB,EACtB,IAwBOa,EAACoB,EAAgB,CAAA5C,OAAQA,EAAQM,gBAAiBA,EAAiBuC,cAtBjD,SAACC,GACzBvC,EAAmBuC,GACnBnC,GAAqB,EACtB,OAsBKM,EAAC8B,EAAa,CAACX,GAAI,CAAEY,GAAI,EAAGC,GAAI,GAAGjB,SAAA,CACjCR,EAAC0B,EAAM,CAACP,QAAS3B,EAAamB,QAAQ,WAAWgB,KAAK,SAE7CnB,SAAA,WACTR,EAAC0B,EAAM,CAACC,KAAK,SAAShB,QAAQ,YAAYiB,SAvB5C1C,GAA2BI,EAAQiB,QAC/BzB,EAsBuE8B,GAAI,CAAEiB,SAAU,KACtFrB,SAAAtB,EAAoB,eAAiBJ,EAAkB,MAAQ,iBAM5E,EASagD,EAAyB,SAAHC,GAA6E,IAAvEtD,EAAQsD,EAARtD,SAAUD,EAAMuD,EAANvD,OAAQwD,EAAQD,EAARC,SAAUC,EAAOF,EAAPE,QAC7DC,EAAiBC,SAASC,cAAc,OAC9CD,SAASE,KAAKC,YAAYJ,GAC1B,IAAMK,EAAOC,EAAWN,GAwBxBK,EAAKE,OACHzC,EAAC7B,EAAkB,CACjBE,MAAM,EACNC,QAAS,WACPiE,EAAKG,UACLP,SAASE,KAAKM,YAAYT,EAC3B,EACD3D,UA7B8B,SAAC+C,EAAwBsB,GACzD,GAAKnE,EAAL,CACA,IAAIoE,EAAevB,GAEdA,GAAWsB,IACdC,EAAeC,IACfd,EAAS,CACPe,GAAIF,EACJG,KAAMJ,EACNK,SAAU,MAGd,IAAMC,EAAiBC,EAAAA,KAClB1E,GAAQ,GAAA,CACX2E,QAASP,GAAgB,KAEvBA,GACFZ,EAAQiB,GAEVX,EAAKG,UACLP,SAASE,KAAKM,YAAYT,EAnBX,CAoBhB,EASG1D,OAAQA,EACRC,SAAUA,IAGhB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r,jsxs as e}from"react/jsx-runtime";import{DialogTitle as i,Box as t,Avatar as a,Typography as l,IconButton as n}from"@mui/material";import o from"@mui/icons-material/VideoLibraryOutlined";import c from"@mui/icons-material/Close";var d=function(d){var m=d.cartItem,s=d.onClose;return r(i,{children:e(t,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e(t,{sx:{display:"flex",alignItems:"center",gap:1},children:[null!=m&&m.PictureUrl?r(a,{src:m.PictureUrl,alt:m.ProductName||"Product",sx:{width:60,height:60,borderRadius:2}}):r(o,{}),e(t,{children:[r(l,{variant:"h6",children:"Add to Media Rights Package"}),r(l,{variant:"body2",color:"text.secondary",children:null==m?void 0:m.ProductName})]})]}),r(n,{onClick:s,size:"small",children:r(c,{})})]})})};export{d as ModalHeader};
|
|
2
|
+
//# sourceMappingURL=modal-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal-header.js","sources":["../../../src/media-right/group-selector/modal-header.tsx"],"sourcesContent":["import type { FC } from 'react'\r\nimport { DialogTitle, Box, Typography, IconButton, Avatar } from '@mui/material'\r\nimport VideoLibraryOutlinedIcon from '@mui/icons-material/VideoLibraryOutlined'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport type { IMediaRightItem } from '../types'\r\n\r\nexport interface ModalHeaderProps {\r\n cartItem: IMediaRightItem | null\r\n onClose: () => void\r\n}\r\n\r\nexport const ModalHeader: FC<ModalHeaderProps> = ({ cartItem, onClose }) => {\r\n return (\r\n <DialogTitle>\r\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>\r\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\r\n {cartItem?.PictureUrl ? (\r\n <Avatar src={cartItem.PictureUrl} alt={cartItem.ProductName || 'Product'} sx={{ width: 60, height: 60, borderRadius: 2 }} />\r\n ) : (\r\n <VideoLibraryOutlinedIcon />\r\n )}\r\n <Box>\r\n <Typography variant='h6'>Add to Media Rights Package</Typography>\r\n <Typography variant='body2' color='text.secondary'>\r\n {cartItem?.ProductName}\r\n </Typography>\r\n </Box>\r\n </Box>\r\n <IconButton onClick={onClose} size='small'>\r\n <CloseIcon />\r\n </IconButton>\r\n </Box>\r\n </DialogTitle>\r\n )\r\n}\r\n"],"names":["ModalHeader","_ref","cartItem","onClose","_jsx","DialogTitle","children","_jsxs","Box","sx","display","alignItems","justifyContent","gap","PictureUrl","Avatar","src","alt","ProductName","width","height","borderRadius","VideoLibraryOutlinedIcon","Typography","variant","color","IconButton","onClick","size","CloseIcon"],"mappings":"wPAWaA,EAAoC,SAAzBC,GAAmD,IAAvBC,EAAQD,EAARC,SAAUC,EAAOF,EAAPE,QAC5D,OACEC,EAACC,EAAW,CAAAC,SACVC,EAACC,EAAI,CAAAC,GAAI,CAAEC,QAAS,OAAQC,WAAY,SAAUC,eAAgB,iBAChEN,SAAA,CAAAC,EAACC,EAAG,CAACC,GAAI,CAAEC,QAAS,OAAQC,WAAY,SAAUE,IAAK,GAAGP,SAAA,CACvDJ,SAAAA,EAAUY,WACTV,EAACW,EAAO,CAAAC,IAAKd,EAASY,WAAYG,IAAKf,EAASgB,aAAe,UAAWT,GAAI,CAAEU,MAAO,GAAIC,OAAQ,GAAIC,aAAc,KAErHjB,EAACkB,EAA2B,CAAA,GAE9Bf,EAACC,EACC,CAAAF,SAAA,CAAAF,EAACmB,EAAU,CAACC,QAAQ,KAAIlB,SAAA,gCACxBF,EAACmB,EAAW,CAAAC,QAAQ,QAAQC,MAAM,iBAAgBnB,SAC/CJ,aAAQ,EAARA,EAAUgB,oBAIjBd,EAACsB,EAAW,CAAAC,QAASxB,EAASyB,KAAK,QAAOtB,SACxCF,EAACyB,EAAY,CAAA,SAKvB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as a}from"react/jsx-runtime";import{Button as r,TextField as e}from"@mui/material";import t from"@mui/icons-material/Add";import{mediaRightStoreOptions as n}from"../configs.js";var o=function(e){var n=e.onClick;return a(r,{fullWidth:!0,size:"small",variant:"outlined",startIcon:a(t,{}),onClick:n,sx:{justifyContent:"flex-start",textTransform:"none",color:"primary.main",borderStyle:"dashed"},children:"New Package"})},i=function(r){var t=r.value,o=r.onChange;return a(e,{fullWidth:!0,size:"small",label:"Package name",value:t,onChange:function(a){return o(a.target.value)},placeholder:"Enter package name",autoFocus:!0,variant:"outlined",inputProps:{maxLength:n.MAX_NAME_GROUP}})};export{o as NewCollectionButton,i as NewCollectionInput};
|
|
2
|
+
//# sourceMappingURL=unit.control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unit.control.js","sources":["../../../src/media-right/group-selector/unit.control.tsx"],"sourcesContent":["import type { FC } from 'react'\r\nimport { Button, TextField } from '@mui/material'\r\nimport AddIcon from '@mui/icons-material/Add'\r\nimport { mediaRightStoreOptions } from '../configs'\r\n\r\nexport interface NewCollectionButtonProps {\r\n onClick: () => void\r\n}\r\n\r\nexport const NewCollectionButton: FC<NewCollectionButtonProps> = ({ onClick }) => (\r\n <Button\r\n fullWidth\r\n size='small'\r\n variant='outlined'\r\n startIcon={<AddIcon />}\r\n onClick={onClick}\r\n sx={{\r\n justifyContent: 'flex-start',\r\n textTransform: 'none',\r\n color: 'primary.main',\r\n borderStyle: 'dashed'\r\n }}\r\n >\r\n New Package\r\n </Button>\r\n)\r\n\r\nexport interface NewCollectionInputProps {\r\n value: string\r\n onChange: (value: string) => void\r\n}\r\n\r\nexport const NewCollectionInput: FC<NewCollectionInputProps> = ({ value, onChange }) => (\r\n <TextField\r\n fullWidth\r\n size='small'\r\n label='Package name'\r\n value={value}\r\n onChange={(e) => onChange(e.target.value)}\r\n placeholder='Enter package name'\r\n autoFocus\r\n variant='outlined'\r\n inputProps={{ maxLength: mediaRightStoreOptions.MAX_NAME_GROUP }}\r\n />\r\n)\r\n"],"names":["NewCollectionButton","_ref","onClick","_jsx","Button","fullWidth","size","variant","startIcon","AddIcon","sx","justifyContent","textTransform","color","borderStyle","children","NewCollectionInput","_ref2","value","onChange","TextField","label","e","target","placeholder","autoFocus","inputProps","maxLength","mediaRightStoreOptions","MAX_NAME_GROUP"],"mappings":"gMASaA,EAAoD,SAAjCC,GAAA,IAAoCC,EAAOD,EAAPC,QAAO,OACzEC,EAACC,EAAM,CACLC,WACA,EAAAC,KAAK,QACLC,QAAQ,WACRC,UAAWL,EAACM,EAAO,IACnBP,QAASA,EACTQ,GAAI,CACFC,eAAgB,aAChBC,cAAe,OACfC,MAAO,eACPC,YAAa,UACdC,SAAA,eAGM,EAQEC,EAAkD,SAAhCC,GAAA,IAAmCC,EAAKD,EAALC,MAAOC,EAAQF,EAARE,SAAQ,OAC/EhB,EAACiB,EACC,CAAAf,WACA,EAAAC,KAAK,QACLe,MAAM,eACNH,MAAOA,EACPC,SAAU,SAACG,GAAC,OAAKH,EAASG,EAAEC,OAAOL,MAAM,EACzCM,YAAY,qBACZC,WACA,EAAAlB,QAAQ,WACRmB,WAAY,CAAEC,UAAWC,EAAuBC,iBAChD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,jsx as r}from"react/jsx-runtime";import{Box as t,Typography as i,List as o,ListItem as n,ListItemButton as a,Checkbox as l,Stack as c,Chip as d}from"@mui/material";import s from"@mui/icons-material/FolderOutlined";var m=function(t){var o=t.group,m=t.isSelected,u=t.onSelect;return r(n,{disablePadding:!0,children:e(a,{selected:m,onClick:function(){return u(o.id)},sx:{gap:1,borderRadius:1,"&.Mui-selected":{bgcolor:"primary.50","&:hover":{bgcolor:"primary.100"}}},children:[r(l,{checked:m,size:"small"}),r(s,{fontSize:"small"}),e(c,{direction:"row",gap:1,sx:{minWidth:0,flexGrow:1,alignItems:"center",justifyContent:"space-between"},children:[r(i,{variant:"body1",noWrap:!0,children:o.name}),r(d,{label:"".concat(o.items.length," items"),size:"small"})]})]})})},u=function(n){var a=n.groups,l=n.selectedGroupId,c=n.onGroupSelect;return 0===a.length?e(t,{sx:{textAlign:"center",py:2,color:"text.secondary"},children:[r(s,{sx:{fontSize:48,mb:1,opacity:.5}}),r(i,{variant:"body2",children:"No Media Rights Packages yet. Create your first package!"})]}):r(o,{sx:{maxHeight:300,overflow:"auto"},children:a.map(function(e){return r(m,{group:e,isSelected:l===e.id,onSelect:c},e.id)})})};export{u as CollectionsList};
|
|
2
|
+
//# sourceMappingURL=units.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.js","sources":["../../../src/media-right/group-selector/units.tsx"],"sourcesContent":["import type { FC } from 'react'\r\nimport { List, Box, Typography, ListItem, ListItemButton, Checkbox, Stack, Chip } from '@mui/material'\r\nimport FolderOutlinedIcon from '@mui/icons-material/FolderOutlined'\r\nimport type { IMediaRightGroup } from '../types'\r\n\r\nexport interface CollectionItemProps {\r\n group: IMediaRightGroup\r\n isSelected: boolean\r\n onSelect: (groupId: string) => void\r\n}\r\n\r\nconst CollectionItem: FC<CollectionItemProps> = ({ group, isSelected, onSelect }) => {\r\n return (\r\n <ListItem disablePadding>\r\n <ListItemButton\r\n selected={isSelected}\r\n onClick={() => onSelect(group.id)}\r\n sx={{\r\n gap: 1,\r\n borderRadius: 1,\r\n '&.Mui-selected': {\r\n bgcolor: 'primary.50',\r\n '&:hover': {\r\n bgcolor: 'primary.100'\r\n }\r\n }\r\n }}\r\n >\r\n <Checkbox checked={isSelected} size='small' />\r\n <FolderOutlinedIcon fontSize='small' />\r\n <Stack direction='row' gap={1} sx={{ minWidth: 0, flexGrow: 1, alignItems: 'center', justifyContent: 'space-between' }}>\r\n <Typography variant='body1' noWrap>\r\n {group.name}\r\n </Typography>\r\n <Chip label={`${group.items.length} items`} size='small' />\r\n </Stack>\r\n </ListItemButton>\r\n </ListItem>\r\n )\r\n}\r\n\r\nexport interface CollectionsListProps {\r\n groups: IMediaRightGroup[]\r\n selectedGroupId: string | null\r\n onGroupSelect: (groupId: string) => void\r\n}\r\n\r\nexport const CollectionsList: FC<CollectionsListProps> = ({ groups, selectedGroupId, onGroupSelect }) => {\r\n if (groups.length === 0) {\r\n return (\r\n <Box sx={{ textAlign: 'center', py: 2, color: 'text.secondary' }}>\r\n <FolderOutlinedIcon sx={{ fontSize: 48, mb: 1, opacity: 0.5 }} />\r\n <Typography variant='body2'>No Media Rights Packages yet. Create your first package!</Typography>\r\n </Box>\r\n )\r\n }\r\n\r\n return (\r\n <List sx={{ maxHeight: 300, overflow: 'auto' }}>\r\n {groups.map((group) => (\r\n <CollectionItem key={group.id} group={group} isSelected={selectedGroupId === group.id} onSelect={onGroupSelect} />\r\n ))}\r\n </List>\r\n )\r\n}\r\n"],"names":["CollectionItem","_ref","group","isSelected","onSelect","_jsx","ListItem","disablePadding","children","_jsxs","ListItemButton","selected","onClick","id","sx","gap","borderRadius","bgcolor","Checkbox","checked","size","FolderOutlinedIcon","fontSize","Stack","direction","minWidth","flexGrow","alignItems","justifyContent","Typography","variant","noWrap","name","Chip","label","concat","items","length","CollectionsList","_ref2","groups","selectedGroupId","onGroupSelect","Box","textAlign","py","color","mb","opacity","List","maxHeight","overflow","map"],"mappings":"uOAWA,IAAMA,EAA0C,SAA5BC,GAAgE,IAAjCC,EAAKD,EAALC,MAAOC,EAAUF,EAAVE,WAAYC,EAAQH,EAARG,SACpE,OACEC,EAACC,EAAS,CAAAC,gBACR,EAAAC,SAAAC,EAACC,EAAc,CACbC,SAAUR,EACVS,QAAS,WAAF,OAAQR,EAASF,EAAMW,GAAG,EACjCC,GAAI,CACFC,IAAK,EACLC,aAAc,EACd,iBAAkB,CAChBC,QAAS,aACT,UAAW,CACTA,QAAS,iBAGdT,SAAA,CAEDH,EAACa,EAAQ,CAACC,QAAShB,EAAYiB,KAAK,UACpCf,EAACgB,GAAmBC,SAAS,UAC7Bb,EAACc,GAAMC,UAAU,MAAMT,IAAK,EAAGD,GAAI,CAAEW,SAAU,EAAGC,SAAU,EAAGC,WAAY,SAAUC,eAAgB,iBAAiBpB,SAAA,CACpHH,EAACwB,EAAU,CAACC,QAAQ,QAAQC,mBACzB7B,EAAM8B,OAET3B,EAAC4B,GAAKC,MAAK,GAAAC,OAAKjC,EAAMkC,MAAMC,OAAc,UAAEjB,KAAK,iBAK3D,EAQakB,EAA4C,SAA7BC,GAA4E,IAA5CC,EAAMD,EAANC,OAAQC,EAAeF,EAAfE,gBAAiBC,EAAaH,EAAbG,cACnF,OAAsB,IAAlBF,EAAOH,OAEP5B,EAACkC,EAAG,CAAC7B,GAAI,CAAE8B,UAAW,SAAUC,GAAI,EAAGC,MAAO,kBAAkBtC,SAAA,CAC9DH,EAACgB,EAAmB,CAAAP,GAAI,CAAEQ,SAAU,GAAIyB,GAAI,EAAGC,QAAS,MACxD3C,EAACwB,EAAW,CAAAC,QAAQ,QAAOtB,SAAA,gEAM/BH,EAAC4C,EAAK,CAAAnC,GAAI,CAAEoC,UAAW,IAAKC,SAAU,QACnC3C,SAAAgC,EAAOY,IAAI,SAAClD,GAAK,OAChBG,EAACL,EAAc,CAAgBE,MAAOA,EAAOC,WAAYsC,IAAoBvC,EAAMW,GAAIT,SAAUsC,GAA5ExC,EAAMW,GAC5B,IAGP"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var t=function(){var t,n;return null!==(n=(null!==(t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").split("http").join(" http").match(/[hH][tT][tT][pP][sS]?:\/\/[^\s]+/g))&&void 0!==t?t:[]).filter(function(t){return t}).map(function(t){return t.trim()}))&&void 0!==n?n:[]},n=function(){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=new Set(t(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")),o=n.trim();return r.has(o)},r=function(){return"group_".concat(Date.now(),"_").concat(Math.random().toString(36).substr(2,9))},o=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return t.items.length<n};export{n as areDuplicatedLink,o as canAddItemToGroup,t as convertStringToLinks,r as generateGroupId};
|
|
2
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../src/media-right/helpers.ts"],"sourcesContent":["import type { IMediaRightGroup } from './types'\r\n\r\n/**\r\n * Convert a string to an array of URLs using improved regex\r\n * @param text Input string\r\n * @returns Array of matched URLs\r\n */\r\nexport const convertStringToLinks = (text: string = ''): string[] => {\r\n const updatedText = text.split('http').join(' http')\r\n const list = updatedText.match(/[hH][tT][tT][pP][sS]?:\\/\\/[^\\s]+/g) ?? []\r\n return list.filter((x) => x).map((x) => x.trim()) ?? []\r\n}\r\n\r\n/**\r\n * Check if a link is duplicated in a string\r\n * @param linkString Input string containing links\r\n * @param value Link to check\r\n * @returns True if the link is duplicated, false otherwise\r\n */\r\nexport const areDuplicatedLink = (linkString: string = '', value: string = '') => {\r\n const linkSet = new Set(convertStringToLinks(linkString))\r\n const formatString = value.trim()\r\n return linkSet.has(formatString)\r\n}\r\n\r\n/**\r\n * Calculate total data from groups\r\n */\r\n// export const getTotalData = (groups: IMediaRightGroup[]): ICartSummary => {\r\n// return groups.reduce(\r\n// (acc, group) => {\r\n// const groupTotal = group.items.reduce((sum, item) => sum + (item.Price * item.Amount), 0)\r\n// return {\r\n// totalGroups: acc.totalGroups + 1,\r\n// totalItems: acc.totalItems + group.items.length,\r\n// totalPrice: acc.totalPrice + groupTotal\r\n// }\r\n// },\r\n// { totalGroups: 0, totalItems: 0, totalPrice: 0 }\r\n// )\r\n// }\r\n\r\n/**\r\n * Get total items and price for a specific group\r\n */\r\n// export const getGroupTotal = (group: IMediaRightGroup) => {\r\n// return group.items.reduce(\r\n// (acc, item) => ({\r\n// totalItems: acc.totalItems + 1,\r\n// totalPrice: acc.totalPrice + (item.Price * item.Amount)\r\n// }),\r\n// { totalItems: 0, totalPrice: 0 }\r\n// )\r\n// }\r\n\r\n/**\r\n * Generate unique group ID\r\n */\r\nexport const generateGroupId = () => {\r\n return `group_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`\r\n}\r\n\r\n/**\r\n * Validate group item limit\r\n */\r\nexport const canAddItemToGroup = (group: IMediaRightGroup, maxItems: number = 100): boolean => {\r\n return group.items.length < maxItems\r\n}\r\n"],"names":["convertStringToLinks","_updatedText$match","_list$filter$map","arguments","length","undefined","split","join","match","filter","x","map","trim","areDuplicatedLink","value","linkSet","Set","formatString","has","generateGroupId","concat","Date","now","Math","random","toString","substr","canAddItemToGroup","group","maxItems","items"],"mappings":"IAOaA,EAAuB,WAAgC,IAAAC,EAAAC,EAGlE,OAAiDA,QAAjDA,GADmED,QAAzDA,GAFwCE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAA,IACzBG,MAAM,QAAQC,KAAK,SACnBC,MAAM,4CAAoCP,IAAAA,EAAAA,EAAI,IAC3DQ,OAAO,SAACC,GAAC,OAAKA,CAAC,GAAEC,IAAI,SAACD,GAAC,OAAKA,EAAEE,MAAM,UAACV,IAAAA,EAAAA,EAAI,EACvD,EAQaW,EAAoB,WAAgD,IAAtBC,EAAAX,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAgB,GACnEY,EAAU,IAAIC,IAAIhB,EAD6BG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAA,KAE/Cc,EAAeH,EAAMF,OAC3B,OAAOG,EAAQG,IAAID,EACrB,EAmCaE,EAAkB,WAC7B,MAAAC,SAAAA,OAAgBC,KAAKC,MAAKF,KAAAA,OAAIG,KAAKC,SAASC,SAAS,IAAIC,OAAO,EAAG,GACrE,EAKaC,EAAoB,SAACC,GAA4D,IAAnCC,EAAA1B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAmB,IAC5E,OAAOyB,EAAME,MAAM1B,OAASyB,CAC9B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{slicedToArray as e}from"../_virtual/_rollupPluginBabelHelpers.js";import{useRef as n,useState as r,useEffect as t}from"react";import{MfeCartStore as o,getEventStore as a}from"./cart-store.js";function u(u){var l=n();l.current||(l.current=new o({localStorageKey:null==u?void 0:u.localStorageKey}));var c=l.current,i=r(c.getState()),d=e(i,2),v=d[0],f=d[1];return t(function(){var e=a();(!v||Object.keys(v).length<1)&&(null==e||e.emit("requestState",{}));var n=null==e?void 0:e.subscribe("stateChange",function(e){var n=e.groups;f(n)});return function(){n&&n(),c.destroy()}},[]),t(function(){var e=function(e){var n;e.key===(null==u?void 0:u.localStorageKey)&&(n=c.getState(),f(n))};return window.addEventListener("storage",e),function(){window.removeEventListener("storage",e)}},[null==u?void 0:u.localStorageKey]),{groups:Object.values(v),groupsMap:v}}function l(e){var r=n();r.current||(r.current=new o({localStorageKey:null==e?void 0:e.localStorageKey}));var t=r.current;return{addGroup:function(e){t.addGroup(e)},updateGroup:function(e,n){t.updateGroup(e,n)},removeGroup:function(e){t.removeGroup(e)},addItem:function(e){t.addItem(e)},updateItem:function(e,n,r){t.updateItem(e,n,r)},removeItem:function(e,n){t.removeItem(e,n)},addChannel:function(e,n){t.addChannel(e,n)},updateChannel:function(e,n,r){t.updateChannel(e,n,r)},removeChannel:function(e,n){t.removeChannel(e,n)},clearChannels:function(e){t.clearChannels(e)},clearCart:function(){t.clear()}}}export{l as useMediaRightActions,u as useMediaRightStore};
|
|
2
|
+
//# sourceMappingURL=hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.js","sources":["../../src/media-right/hook.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\r\nimport { getEventStore, MfeCartStore } from './cart-store'\r\nimport { IMediaRightChannel, IMediaRightGroup, IMediaRightItem } from './types'\r\n\r\nexport interface IMediaRightStoreOptions {\r\n localStorageKey?: string\r\n}\r\n\r\nexport function useMediaRightStore(params?: IMediaRightStoreOptions) {\r\n const storeRef = useRef<MfeCartStore>()\r\n if (!storeRef.current) {\r\n storeRef.current = new MfeCartStore({ localStorageKey: params?.localStorageKey })\r\n }\r\n const store = storeRef.current\r\n const [groups, setGroups] = useState<Record<string, IMediaRightGroup>>(store.getState())\r\n\r\n useEffect(() => {\r\n const event = getEventStore()\r\n if (!groups || Object.keys(groups).length < 1) {\r\n event?.emit('requestState', {})\r\n }\r\n\r\n const unsubscribe = event?.subscribe('stateChange', ({ groups }) => {\r\n setGroups(groups)\r\n })\r\n\r\n return () => {\r\n if (unsubscribe) unsubscribe()\r\n store.destroy()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n const reloadState = () => {\r\n const state = store.getState()\r\n setGroups(state)\r\n }\r\n const handleStorage = (e: StorageEvent) => {\r\n if (e.key === params?.localStorageKey) {\r\n reloadState()\r\n }\r\n }\r\n window.addEventListener('storage', handleStorage)\r\n return () => {\r\n window.removeEventListener('storage', handleStorage)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [params?.localStorageKey])\r\n\r\n return { groups: Object.values(groups), groupsMap: groups }\r\n}\r\n\r\nexport function useMediaRightActions(params?: IMediaRightStoreOptions) {\r\n const storeRef = useRef<MfeCartStore>()\r\n if (!storeRef.current) {\r\n storeRef.current = new MfeCartStore({ localStorageKey: params?.localStorageKey })\r\n }\r\n const store = storeRef.current\r\n\r\n const addGroup = (group: Omit<IMediaRightGroup, 'createdAt' | 'items' | 'channels'>) => {\r\n store.addGroup(group)\r\n }\r\n\r\n const updateGroup = (groupId: string, updates: Partial<Pick<IMediaRightGroup, 'name'>>) => {\r\n store.updateGroup(groupId, updates)\r\n }\r\n\r\n const removeGroup = (groupId: string) => {\r\n store.removeGroup(groupId)\r\n }\r\n\r\n const addItem = (item: IMediaRightItem) => {\r\n store.addItem(item)\r\n }\r\n\r\n const updateItem = (groupId: string, productId: string, updates: Partial<IMediaRightItem>) => {\r\n store.updateItem(groupId, productId, updates)\r\n }\r\n\r\n const removeItem = (groupId: string, productId: string) => {\r\n store.removeItem(groupId, productId)\r\n }\r\n\r\n const clearCart = () => {\r\n store.clear()\r\n }\r\n\r\n const addChannel = (groupId: string, channel: IMediaRightChannel) => {\r\n store.addChannel(groupId, channel)\r\n }\r\n\r\n const updateChannel = (groupId: string, channelIndex: number, updates: Partial<IMediaRightChannel>) => {\r\n store.updateChannel(groupId, channelIndex, updates)\r\n }\r\n\r\n const removeChannel = (groupId: string, channelIndex: number) => {\r\n store.removeChannel(groupId, channelIndex)\r\n }\r\n\r\n const clearChannels = (groupId: string) => {\r\n store.clearChannels(groupId)\r\n }\r\n\r\n return {\r\n addGroup,\r\n updateGroup,\r\n removeGroup,\r\n addItem,\r\n updateItem,\r\n removeItem,\r\n addChannel,\r\n updateChannel,\r\n removeChannel,\r\n clearChannels,\r\n clearCart\r\n }\r\n}\r\n"],"names":["useMediaRightStore","params","storeRef","useRef","current","MfeCartStore","localStorageKey","store","_useState","useState","getState","_useState2","_slicedToArray","groups","setGroups","useEffect","event","getEventStore","Object","keys","length","emit","unsubscribe","subscribe","_ref","destroy","handleStorage","e","state","key","window","addEventListener","removeEventListener","values","groupsMap","useMediaRightActions","addGroup","group","updateGroup","groupId","updates","removeGroup","addItem","item","updateItem","productId","removeItem","addChannel","channel","updateChannel","channelIndex","removeChannel","clearChannels","clearCart","clear"],"mappings":"uMAQM,SAAUA,EAAmBC,GACjC,IAAMC,EAAWC,IACZD,EAASE,UACZF,EAASE,QAAU,IAAIC,EAAa,CAAEC,gBAAiBL,aAAM,EAANA,EAAQK,mBAEjE,IAAMC,EAAQL,EAASE,QACvBI,EAA4BC,EAA2CF,EAAMG,YAAWC,EAAAC,EAAAJ,EAAA,GAAjFK,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAoCxB,OAlCAI,EAAU,WACR,IAAMC,EAAQC,MACTJ,GAAUK,OAAOC,KAAKN,GAAQO,OAAS,KAC1CJ,SAAAA,EAAOK,KAAK,eAAgB,KAG9B,IAAMC,EAAcN,aAAAA,EAAAA,EAAOO,UAAU,cAAe,SAAAC,GAAe,IAAZX,EAAMW,EAANX,OACrDC,EAAUD,EACZ,GAEA,OAAO,WACDS,GAAaA,IACjBf,EAAMkB,SACP,CAEF,EAAE,IAEHV,EAAU,WACR,IAIMW,EAAgB,SAACC,GAJH,IACZC,EAIFD,EAAEE,OAAQ5B,aAAAA,EAAAA,EAAQK,mBAJhBsB,EAAQrB,EAAMG,WACpBI,EAAUc,GAMX,EAED,OADAE,OAAOC,iBAAiB,UAAWL,GAC5B,WACLI,OAAOE,oBAAoB,UAAWN,EACvC,GAEA,CAACzB,eAAAA,EAAQK,kBAEL,CAAEO,OAAQK,OAAOe,OAAOpB,GAASqB,UAAWrB,EACrD,CAEM,SAAUsB,EAAqBlC,GACnC,IAAMC,EAAWC,IACZD,EAASE,UACZF,EAASE,QAAU,IAAIC,EAAa,CAAEC,gBAAiBL,aAAM,EAANA,EAAQK,mBAEjE,IAAMC,EAAQL,EAASE,QA8CvB,MAAO,CACLgC,SA7Ce,SAACC,GAChB9B,EAAM6B,SAASC,EAChB,EA4CCC,YA1CkB,SAACC,EAAiBC,GACpCjC,EAAM+B,YAAYC,EAASC,EAC5B,EAyCCC,YAvCkB,SAACF,GACnBhC,EAAMkC,YAAYF,EACnB,EAsCCG,QApCc,SAACC,GACfpC,EAAMmC,QAAQC,EACf,EAmCCC,WAjCiB,SAACL,EAAiBM,EAAmBL,GACtDjC,EAAMqC,WAAWL,EAASM,EAAWL,EACtC,EAgCCM,WA9BiB,SAACP,EAAiBM,GACnCtC,EAAMuC,WAAWP,EAASM,EAC3B,EA6BCE,WAvBiB,SAACR,EAAiBS,GACnCzC,EAAMwC,WAAWR,EAASS,EAC3B,EAsBCC,cApBoB,SAACV,EAAiBW,EAAsBV,GAC5DjC,EAAM0C,cAAcV,EAASW,EAAcV,EAC5C,EAmBCW,cAjBoB,SAACZ,EAAiBW,GACtC3C,EAAM4C,cAAcZ,EAASW,EAC9B,EAgBCE,cAdoB,SAACb,GACrBhC,EAAM6C,cAAcb,EACrB,EAaCc,UA/BgB,WAChB9C,EAAM+C,OACP,EA+BH"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{mediaRightStoreOptions}from"./configs.js";export{MediaGroupWidget,createMediaGroupWidget}from"./media-widget/index.js";export{GroupSelectorModal,showGroupSelectorModal}from"./group-selector/index.js";export{useMediaRightActions,useMediaRightStore}from"./hook.js";export{areDuplicatedLink,canAddItemToGroup,convertStringToLinks,generateGroupId}from"./helpers.js";
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{slicedToArray as i}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as o,jsx as r}from"react/jsx-runtime";import{useState as e}from"react";import{Box as a,IconButton as t}from"@mui/material";import l from"@mui/icons-material/Remove";import n from"@mui/icons-material/Check";import s from"@mui/icons-material/Close";var m=function(m){var c=m.onDelete,p=m.size,d=void 0===p?"small":p,f=m.disabled,u=void 0!==f&&f,z=e(!1),v=i(z,2),x=v[0],b=v[1];return x?o(a,{sx:{display:"flex",gap:.5},children:[r(t,{size:d,onClick:function(i){i.stopPropagation(),c(),b(!1)},sx:{color:"success.main"},disabled:u,children:r(n,{fontSize:d})}),r(t,{size:d,onClick:function(i){i.stopPropagation(),b(!1)},sx:{color:"error.main"},disabled:u,children:r(s,{fontSize:d})})]}):r(t,{size:d,onClick:function(i){i.stopPropagation(),b(!0)},disabled:u,children:r(l,{fontSize:d})})};export{m as DeleteButton};
|
|
2
|
+
//# sourceMappingURL=button.delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.delete.js","sources":["../../../src/media-right/media-widget/button.delete.tsx"],"sourcesContent":["import { useState } from 'react'\r\nimport { IconButton, Box } from '@mui/material'\r\nimport type { FC, MouseEvent } from 'react'\r\nimport RemoveIcon from '@mui/icons-material/Remove'\r\nimport CheckIcon from '@mui/icons-material/Check'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\n\r\nexport interface IDeleteButtonProps {\r\n onDelete: () => void\r\n size?: 'small' | 'medium' | 'large'\r\n disabled?: boolean\r\n}\r\n\r\nexport const DeleteButton: FC<IDeleteButtonProps> = ({ onDelete, size = 'small', disabled = false }) => {\r\n const [isConfirming, setIsConfirming] = useState(false)\r\n\r\n const handleDeleteClick = (e: MouseEvent) => {\r\n e.stopPropagation()\r\n setIsConfirming(true)\r\n }\r\n\r\n const handleConfirm = (e: MouseEvent) => {\r\n e.stopPropagation()\r\n onDelete()\r\n setIsConfirming(false)\r\n }\r\n\r\n const handleCancel = (e: MouseEvent) => {\r\n e.stopPropagation()\r\n setIsConfirming(false)\r\n }\r\n\r\n if (isConfirming) {\r\n return (\r\n <Box sx={{ display: 'flex', gap: 0.5 }}>\r\n <IconButton size={size} onClick={handleConfirm} sx={{ color: 'success.main' }} disabled={disabled}>\r\n <CheckIcon fontSize={size} />\r\n </IconButton>\r\n <IconButton size={size} onClick={handleCancel} sx={{ color: 'error.main' }} disabled={disabled}>\r\n <CloseIcon fontSize={size} />\r\n </IconButton>\r\n </Box>\r\n )\r\n }\r\n\r\n return (\r\n <IconButton size={size} onClick={handleDeleteClick} disabled={disabled}>\r\n <RemoveIcon fontSize={size} />\r\n </IconButton>\r\n )\r\n}\r\n"],"names":["DeleteButton","_ref","onDelete","_ref$size","size","_ref$disabled","disabled","_useState","useState","_useState2","_slicedToArray","isConfirming","setIsConfirming","_jsxs","Box","sx","display","gap","children","_jsx","IconButton","onClick","e","stopPropagation","color","CheckIcon","fontSize","CloseIcon","RemoveIcon"],"mappings":"mVAaaA,EAAuC,SAA3BC,GAA8E,IAAhDC,EAAQD,EAARC,SAAQC,EAAAF,EAAEG,KAAAA,OAAO,IAAHD,EAAG,QAAOA,EAAAE,EAAAJ,EAAEK,SAAAA,OAAW,IAAHD,GAAQA,EAC/FE,EAAwCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAhDI,EAAYF,EAAA,GAAEG,EAAeH,EAAA,GAkBpC,OAAIE,EAEAE,EAACC,EAAI,CAAAC,GAAI,CAAEC,QAAS,OAAQC,IAAK,IAAKC,SAAA,CACpCC,EAACC,EAAU,CAAChB,KAAMA,EAAMiB,QAdR,SAACC,GACrBA,EAAEC,kBACFrB,IACAU,GAAgB,EACjB,EAUqDG,GAAI,CAAES,MAAO,gBAAkBlB,SAAUA,EACvFY,SAAAC,EAACM,EAAS,CAACC,SAAUtB,MAEvBe,EAACC,EAAW,CAAAhB,KAAMA,EAAMiB,QAXT,SAACC,GACpBA,EAAEC,kBACFX,GAAgB,EACjB,EAQoDG,GAAI,CAAES,MAAO,cAAgBlB,SAAUA,EACpFY,SAAAC,EAACQ,EAAS,CAACD,SAAUtB,SAO3Be,EAACC,EAAW,CAAAhB,KAAMA,EAAMiB,QA9BA,SAACC,GACzBA,EAAEC,kBACFX,GAAgB,EACjB,EA2BqDN,SAAUA,EAC5DY,SAAAC,EAACS,EAAU,CAACF,SAAUtB,KAG5B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{slicedToArray as o,objectSpread2 as r}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as e,jsx as n}from"react/jsx-runtime";import{useState as i,Fragment as t}from"react";import{Badge as l,Box as a,Typography as c,Stack as u,Button as p}from"@mui/material";import m from"@mui/icons-material/DriveFileMoveOutlined";import d from"@mui/icons-material/FolderSpecialOutlined";import{EmptyState as s}from"./units.js";import{MenuStyled as f}from"./styled.js";import{DarkIconButton as h}from"../../components/buttons.js";import{MediaGroupAccordion as g}from"./media-group-accordion.js";import{useMediaRightStore as v,useMediaRightActions as x}from"../hook.js";var j=function(j){var y,b=j.localStorageKey,k=j.hrefCart,C=j.buttonMoveToCartProps,S=v({localStorageKey:b}).groups,M=x({localStorageKey:b}),P=i(null),G=o(P,2),D=G[0],O=G[1],z=function(o){M.updateGroup(o.id,o)},I=function(o){M.removeGroup(o)},K=function(o,r){M.removeItem(o,r)};return e(t,{children:[n(h,{onClick:function(o){return O(o.currentTarget)},children:n(l,{badgeContent:S.length||0,color:"error",children:n(d,{})})}),n(f,{disableScrollLock:!0,anchorEl:D,open:Boolean(D),onClose:function(){return O(null)},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:e(a,{children:[n(a,{sx:{display:"flex",alignItems:"center",padding:"12px 16px"},children:e(c,{variant:"h6",component:"span",sx:{flex:1},children:["Your Media Rights Package (",null!==(y=S.length)&&void 0!==y?y:0," Package",S.length>1?"s":"",")"]})}),0===S.length?n(s,{}):S.map(function(o){return n(g,{group:o,onEditGroup:z,onDeleteGroup:I,onDeleteMedia:K},o.id)}),n(u,{justifyContent:"end",flexDirection:"row",padding:"6px 12px",children:n(p,r(r(r({},k?{component:"a",href:k}:{}),{},{color:"inherit",size:"small",endIcon:n(m,{}),onClick:function(){O(null)},disabled:S.length<1},C),{},{children:"Show Package"}))})]})})]})},y=function(o){var e=function(e){return n(j,r(r({},o),e))};return e.displayName="MediaGroupWidget",e};export{j as MediaGroupWidget,y as createMediaGroupWidget};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/media-right/media-widget/index.tsx"],"sourcesContent":["import { Fragment, useState } from 'react'\r\nimport { Badge, Box, Button, ButtonProps, Stack, Typography } from '@mui/material'\r\nimport DriveFileMoveOutlinedIcon from '@mui/icons-material/DriveFileMoveOutlined'\r\nimport FolderSpecialOutlinedIcon from '@mui/icons-material/FolderSpecialOutlined'\r\nimport { EmptyState } from './units'\r\nimport { MenuStyled } from './styled'\r\nimport { IMediaRightGroup } from '../types'\r\nimport { DarkIconButton } from '../../components/buttons'\r\nimport { MediaGroupAccordion } from './media-group-accordion'\r\nimport { useMediaRightStore, useMediaRightActions } from '../hook'\r\n\r\nexport interface IMediaGroupWidgetProps {\r\n localStorageKey?: string\r\n hrefCart?: string\r\n buttonMoveToCartProps?: ButtonProps & { [key: string]: any }\r\n}\r\n\r\nexport const MediaGroupWidget: React.FC<IMediaGroupWidgetProps> = ({ localStorageKey, hrefCart, buttonMoveToCartProps }) => {\r\n const { groups } = useMediaRightStore({ localStorageKey })\r\n const actions = useMediaRightActions({ localStorageKey })\r\n\r\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null)\r\n\r\n // const handleSaveNewGroup = (groupName: string) => {\r\n // actions.addGroup({\r\n // name: groupName,\r\n // id: generateGroupId()\r\n // })\r\n // }\r\n\r\n const handleEditGroup = (group: IMediaRightGroup) => {\r\n actions.updateGroup(group.id, group)\r\n }\r\n\r\n const handleDeleteGroup = (groupId: string) => {\r\n actions.removeGroup(groupId)\r\n }\r\n\r\n const handleDeleteMedia = (groupId: string, productId: string) => {\r\n actions.removeItem(groupId, productId)\r\n }\r\n\r\n const renderContent = () => {\r\n return (\r\n <Box>\r\n <Box sx={{ display: 'flex', alignItems: 'center', padding: '12px 16px' }}>\r\n <Typography variant='h6' component='span' sx={{ flex: 1 }}>\r\n Your Media Rights Package ({groups.length ?? 0} Package{groups.length > 1 ? 's' : ''})\r\n </Typography>\r\n </Box>\r\n {/* <Divider /> */}\r\n {/* <NewGroupArea onSaveGroup={handleSaveNewGroup} /> */}\r\n {groups.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n groups.map((group) => (\r\n <MediaGroupAccordion\r\n key={group.id}\r\n group={group}\r\n onEditGroup={handleEditGroup}\r\n onDeleteGroup={handleDeleteGroup}\r\n onDeleteMedia={handleDeleteMedia}\r\n />\r\n ))\r\n )}\r\n {/* <Divider /> */}\r\n <Stack justifyContent={'end'} flexDirection={'row'} padding={'6px 12px'}>\r\n <Button\r\n {...(hrefCart ? { component: 'a', href: hrefCart } : {})}\r\n color='inherit'\r\n size='small'\r\n endIcon={<DriveFileMoveOutlinedIcon />}\r\n onClick={() => {\r\n setAnchorEl(null)\r\n }}\r\n disabled={groups.length < 1}\r\n {...buttonMoveToCartProps}\r\n >\r\n Show Package\r\n </Button>\r\n </Stack>\r\n </Box>\r\n )\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <DarkIconButton onClick={(e) => setAnchorEl(e.currentTarget)}>\r\n <Badge badgeContent={groups.length || 0} color='error'>\r\n <FolderSpecialOutlinedIcon />\r\n </Badge>\r\n </DarkIconButton>\r\n <MenuStyled\r\n disableScrollLock\r\n anchorEl={anchorEl}\r\n open={Boolean(anchorEl)}\r\n onClose={() => setAnchorEl(null)}\r\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n MenuListProps={{ component: 'div' }}\r\n >\r\n {renderContent()}\r\n </MenuStyled>\r\n </Fragment>\r\n )\r\n}\r\n\r\nexport const createMediaGroupWidget = (params: IMediaGroupWidgetProps) => {\r\n const _MediaGroupWidget: React.FC<Partial<IMediaGroupWidgetProps>> = (props) => <MediaGroupWidget {...params} {...props} />\r\n _MediaGroupWidget.displayName = 'MediaGroupWidget'\r\n return _MediaGroupWidget\r\n}\r\n"],"names":["MediaGroupWidget","_ref","_groups$length","localStorageKey","hrefCart","buttonMoveToCartProps","groups","useMediaRightStore","actions","useMediaRightActions","_useState","useState","_useState2","_slicedToArray","anchorEl","setAnchorEl","handleEditGroup","group","updateGroup","id","handleDeleteGroup","groupId","removeGroup","handleDeleteMedia","productId","removeItem","_jsxs","Fragment","children","_jsx","DarkIconButton","onClick","e","currentTarget","Badge","badgeContent","length","color","FolderSpecialOutlinedIcon","MenuStyled","disableScrollLock","open","Boolean","onClose","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","Box","sx","display","alignItems","padding","Typography","variant","flex","EmptyState","map","MediaGroupAccordion","onEditGroup","onDeleteGroup","onDeleteMedia","Stack","justifyContent","flexDirection","Button","_objectSpread","href","size","endIcon","DriveFileMoveOutlinedIcon","disabled","createMediaGroupWidget","params","_MediaGroupWidget","props","displayName"],"mappings":"qqBAiBaA,EAAqD,SAArCC,GAA8F,IAyB9FC,EAzBwCC,EAAeF,EAAfE,gBAAiBC,EAAQH,EAARG,SAAUC,EAAqBJ,EAArBI,sBACtFC,EAAWC,EAAmB,CAAEJ,gBAAAA,IAAhCG,OACFE,EAAUC,EAAqB,CAAEN,gBAAAA,IAEvCO,EAAgCC,EAA6B,MAAKC,EAAAC,EAAAH,EAAA,GAA3DI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAStBI,EAAkB,SAACC,GACvBT,EAAQU,YAAYD,EAAME,GAAIF,EAC/B,EAEKG,EAAoB,SAACC,GACzBb,EAAQc,YAAYD,EACrB,EAEKE,EAAoB,SAACF,EAAiBG,GAC1ChB,EAAQiB,WAAWJ,EAASG,EAC7B,EA6CD,OACEE,EAACC,EAAQ,CAAAC,SAAA,CACPC,EAACC,EAAc,CAACC,QAAS,SAACC,GAAC,OAAKjB,EAAYiB,EAAEC,cAAc,EAAAL,SAC1DC,EAACK,EAAM,CAAAC,aAAc7B,EAAO8B,QAAU,EAAGC,MAAM,QAAOT,SACpDC,EAACS,UAGLT,EAACU,EAAU,CACTC,mBACA,EAAA1B,SAAUA,EACV2B,KAAMC,QAAQ5B,GACd6B,QAAS,WAAF,OAAQ5B,EAAY,KAAK,EAChC6B,aAAc,CAAEC,SAAU,MAAOC,WAAY,SAC7CC,gBAAiB,CAAEF,SAAU,MAAOC,WAAY,SAChDE,cAAe,CAAEC,UAAW,OAAOrB,SAvDrCF,EAACwB,aACCrB,EAACqB,GAAIC,GAAI,CAAEC,QAAS,OAAQC,WAAY,SAAUC,QAAS,sBACzD5B,EAAC6B,GAAWC,QAAQ,KAAKP,UAAU,OAAOE,GAAI,CAAEM,KAAM,GAAG7B,SAAA,CAAA,8BACd,QADc1B,EAC3BI,EAAO8B,cAAM,IAAAlC,EAAAA,EAAI,aAAWI,EAAO8B,OAAS,EAAI,IAAM,YAKnE,IAAlB9B,EAAO8B,OACNP,EAAC6B,EAAa,CAAA,GAEdpD,EAAOqD,IAAI,SAAC1C,GAAK,OACfY,EAAC+B,EAAmB,CAElB3C,MAAOA,EACP4C,YAAa7C,EACb8C,cAAe1C,EACf2C,cAAexC,GAJVN,EAAME,GAKX,GAINU,EAACmC,EAAK,CAACC,eAAgB,MAAOC,cAAe,MAAOZ,QAAS,oBAC3DzB,EAACsC,EAAMC,EAAAA,EAAAA,EACAhE,CAAAA,EAAAA,EAAW,CAAE6C,UAAW,IAAKoB,KAAMjE,GAAa,CAAA,GAAE,GAAA,CACvDiC,MAAM,UACNiC,KAAK,QACLC,QAAS1C,EAAC2C,EAAyB,IACnCzC,QAAS,WACPhB,EAAY,KACb,EACD0D,SAAUnE,EAAO8B,OAAS,GACtB/B,GAAqB,GAAA,CAAAuB,SAAA,2BA6BrC,EAEa8C,EAAyB,SAACC,GACrC,IAAMC,EAA+D,SAACC,GAAK,OAAKhD,EAAC7B,EAAgBoE,EAAAA,EAAA,CAAA,EAAKO,GAAYE,GAAS,EAE3H,OADAD,EAAkBE,YAAc,mBACzBF,CACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{slicedToArray as t,objectSpread2 as i}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o,Fragment as r,jsxs as e}from"react/jsx-runtime";import{useState as n}from"react";import{Box as l,TextField as a,IconButton as m}from"@mui/material";import s from"@mui/icons-material/Check";import u from"@mui/icons-material/Close";var c=function(c){var p=c.onSubmit,f=c.setShowEdit,d=c.sxForm,g=c.defaultValue,h=c.isEdit,v=c.textField,b=c.children,x=n(g||""),C=t(x,2),S=C[0],z=C[1],k=function(){S.trim()&&(p(S.trim()),z(""),f(!1))};return o(r,{children:h?o(function(){return e(l,{component:"form",onSubmit:function(t){t.preventDefault(),k()},sx:i({display:"flex",alignItems:"center",gap:1},d),children:[o(a,i({size:"small",value:S,onChange:function(t){return z(t.target.value)},autoFocus:!0,variant:"outlined",onClick:function(t){return t.stopPropagation()}},v)),o(m,{type:"submit",size:"small",color:"success",onClick:function(t){t.stopPropagation(),k()},disabled:!S.trim(),children:o(s,{fontSize:"small"})}),o(m,{size:"small",onClick:function(t){t.stopPropagation(),z(""),f(!1)},color:"error",children:o(u,{fontSize:"small"})})]})},{}):b})};export{c as InlineEditing};
|
|
2
|
+
//# sourceMappingURL=inline-editing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-editing.js","sources":["../../../src/media-right/media-widget/inline-editing.tsx"],"sourcesContent":["import { useState } from 'react'\r\nimport type { FC, PropsWithChildren } from 'react'\r\nimport { Box, TextField, IconButton, TextFieldProps, SxProps, Theme } from '@mui/material'\r\nimport CheckIcon from '@mui/icons-material/Check'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\n\r\nexport interface IInlineEditingProps extends PropsWithChildren {\r\n onSubmit: (value: string) => void\r\n isEdit: boolean\r\n setShowEdit: (show: boolean) => void\r\n defaultValue?: string\r\n textField?: TextFieldProps\r\n sxForm?: SxProps<Theme>\r\n}\r\n\r\nexport const InlineEditing: FC<IInlineEditingProps> = ({ onSubmit, setShowEdit, sxForm, defaultValue, isEdit, textField, children }) => {\r\n const [newValue, setNewValue] = useState<string>(defaultValue || '')\r\n\r\n const handleSubmit = () => {\r\n if (newValue.trim()) {\r\n onSubmit(newValue.trim())\r\n setNewValue('')\r\n setShowEdit(false)\r\n }\r\n }\r\n\r\n const handleCancel = () => {\r\n setNewValue('')\r\n setShowEdit(false)\r\n }\r\n\r\n const NewGroupInput = () => (\r\n <Box\r\n component='form'\r\n onSubmit={(e) => {\r\n e.preventDefault()\r\n handleSubmit()\r\n }}\r\n sx={{ display: 'flex', alignItems: 'center', gap: 1, ...sxForm }}\r\n >\r\n <TextField\r\n size='small'\r\n value={newValue}\r\n onChange={(e) => setNewValue(e.target.value)}\r\n autoFocus\r\n variant='outlined'\r\n onClick={(e) => e.stopPropagation()}\r\n {...textField}\r\n />\r\n <IconButton\r\n type='submit'\r\n size='small'\r\n color='success'\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n handleSubmit()\r\n }}\r\n disabled={!newValue.trim()}\r\n >\r\n <CheckIcon fontSize='small' />\r\n </IconButton>\r\n <IconButton\r\n size='small'\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n handleCancel()\r\n }}\r\n color='error'\r\n >\r\n <CloseIcon fontSize='small' />\r\n </IconButton>\r\n </Box>\r\n )\r\n\r\n return <>{!isEdit ? children : <NewGroupInput />}</>\r\n}\r\n"],"names":["InlineEditing","_ref","onSubmit","setShowEdit","sxForm","defaultValue","isEdit","textField","children","_useState","useState","_useState2","_slicedToArray","newValue","setNewValue","handleSubmit","trim","_jsx","_Fragment","_jsxs","Box","component","e","preventDefault","sx","_objectSpread","display","alignItems","gap","TextField","size","value","onChange","target","autoFocus","variant","onClick","stopPropagation","IconButton","type","color","disabled","CheckIcon","fontSize","CloseIcon"],"mappings":"yVAeaA,EAAyC,SAA5BC,GAA6G,IAA9EC,EAAQD,EAARC,SAAUC,EAAWF,EAAXE,YAAaC,EAAMH,EAANG,OAAQC,EAAYJ,EAAZI,aAAcC,EAAML,EAANK,OAAQC,EAASN,EAATM,UAAWC,EAAQP,EAARO,SACvHC,EAAgCC,EAAiBL,GAAgB,IAAGM,EAAAC,EAAAH,EAAA,GAA7DI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAEtBI,EAAe,WACfF,EAASG,SACXd,EAASW,EAASG,QAClBF,EAAY,IACZX,GAAY,GAEf,EAkDD,OAAOc,EAAGC,EAAA,CAAAV,SAACF,EAAoBW,EA3CT,WAAH,OACjBE,EAACC,EAAG,CACFC,UAAU,OACVnB,SAAU,SAACoB,GACTA,EAAEC,iBACFR,GACD,EACDS,GAAEC,EAAA,CAAIC,QAAS,OAAQC,WAAY,SAAUC,IAAK,GAAMxB,GAExDI,SAAA,CAAAS,EAACY,EAASJ,EAAA,CACRK,KAAK,QACLC,MAAOlB,EACPmB,SAAU,SAACV,GAAC,OAAKR,EAAYQ,EAAEW,OAAOF,MAAM,EAC5CG,WAAS,EACTC,QAAQ,WACRC,QAAS,SAACd,GAAC,OAAKA,EAAEe,iBAAiB,GAC/B9B,IAENU,EAACqB,EACC,CAAAC,KAAK,SACLT,KAAK,QACLU,MAAM,UACNJ,QAAS,SAACd,GACRA,EAAEe,kBACFtB,GACD,EACD0B,UAAW5B,EAASG,OAEpBR,SAAAS,EAACyB,EAAS,CAACC,SAAS,YAEtB1B,EAACqB,EAAU,CACTR,KAAK,QACLM,QAAS,SAACd,GACRA,EAAEe,kBArCRvB,EAAY,IACZX,GAAY,EAsCP,EACDqC,MAAM,iBAENvB,EAAC2B,EAAU,CAAAD,SAAS,cAGzB,EAE4C,CAAA,GAAzBnC,GACtB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{slicedToArray as i,objectSpread2 as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as t,jsx as n}from"react/jsx-runtime";import{useState as o}from"react";import{Accordion as r,AccordionSummary as m,Box as l,Typography as a,Chip as s,IconButton as d,AccordionDetails as p}from"@mui/material";import u from"@mui/icons-material/Edit";import c from"@mui/icons-material/ExpandMore";import f from"@mui/icons-material/FolderOutlined";import{MediaList as x}from"./media-list.js";import{DeleteButton as h}from"./button.delete.js";import{InlineEditing as g}from"./inline-editing.js";import{mediaRightStoreOptions as j}from"../configs.js";var W=function(W){var b=W.group,E=W.onEditGroup,M=W.onDeleteGroup,S=W.onDeleteMedia,y=o(!1),z=i(y,2),v=z[0],A=z[1];return t(r,{sx:{my:"0 !important"},children:[n(m,{expandIcon:n(c,{}),sx:{minWidth:0,"& .MuiAccordionSummary-content":{minWidth:0,margin:0}},children:t(l,{sx:{display:"flex",alignItems:"center",flex:1,gap:1,minWidth:0},children:[n(f,{fontSize:"small"}),t(g,{isEdit:v,setShowEdit:A,onSubmit:function(i){E(e(e({},b),{},{name:i})),A(!1)},defaultValue:b.name,textField:{inputProps:{maxLength:j.MAX_NAME_GROUP},sx:{flex:1,minWidth:0,"& .MuiOutlinedInput-root":{height:"32px"}}},sxForm:{flex:1},children:[n(a,{variant:"body1",noWrap:!0,fontWeight:600,sx:{flex:1,minWidth:0},children:b.name}),n(s,{label:"".concat(b.items.length," items"),size:"small"}),n(d,{size:"small",onClick:function(i){i.stopPropagation(),A(!0)},children:n(u,{fontSize:"small"})}),n(h,{onDelete:function(){return M(b.id)},size:"small"})]},b.id+b.name+v)]})}),n(p,{sx:{p:0},children:n(x,{medias:b.items,onDelete:function(i){return S(b.id,i)}})})]})};export{W as MediaGroupAccordion};
|
|
2
|
+
//# sourceMappingURL=media-group-accordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-group-accordion.js","sources":["../../../src/media-right/media-widget/media-group-accordion.tsx"],"sourcesContent":["import { useState } from 'react'\r\nimport { Accordion, AccordionSummary, AccordionDetails, Box, Typography, Chip, IconButton } from '@mui/material'\r\nimport type { FC, MouseEvent } from 'react'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\r\nimport FolderOutlinedIcon from '@mui/icons-material/FolderOutlined'\r\nimport { MediaList } from './media-list'\r\nimport { IMediaRightGroup } from '../types'\r\nimport { DeleteButton } from './button.delete'\r\nimport { InlineEditing } from './inline-editing'\r\nimport { mediaRightStoreOptions } from '../configs'\r\n\r\nexport interface IMediaGroupAccordionProps {\r\n group: IMediaRightGroup\r\n onEditGroup: (group: IMediaRightGroup) => void\r\n onDeleteGroup: (groupId: string) => void\r\n onDeleteMedia: (groupId: string, mediaId: string) => void\r\n}\r\n\r\nexport const MediaGroupAccordion: FC<IMediaGroupAccordionProps> = ({ group, onEditGroup, onDeleteGroup, onDeleteMedia }) => {\r\n const [isEditing, setIsEditing] = useState(false)\r\n\r\n const handleSaveEdit = (value: string) => {\r\n onEditGroup({ ...group, name: value })\r\n setIsEditing(false)\r\n }\r\n\r\n const handleEditClick = (e: MouseEvent) => {\r\n e.stopPropagation()\r\n setIsEditing(true)\r\n }\r\n\r\n return (\r\n <Accordion sx={{ my: '0 !important' }}>\r\n <AccordionSummary expandIcon={<ExpandMoreIcon />} sx={{ minWidth: 0, '& .MuiAccordionSummary-content': { minWidth: 0, margin: 0 } }}>\r\n <Box sx={{ display: 'flex', alignItems: 'center', flex: 1, gap: 1, minWidth: 0 }}>\r\n <FolderOutlinedIcon fontSize='small' />\r\n <InlineEditing\r\n key={group.id + group.name + isEditing}\r\n isEdit={isEditing}\r\n setShowEdit={setIsEditing}\r\n onSubmit={handleSaveEdit}\r\n defaultValue={group.name}\r\n textField={{\r\n inputProps: { maxLength: mediaRightStoreOptions.MAX_NAME_GROUP },\r\n sx: { flex: 1, minWidth: 0, '& .MuiOutlinedInput-root': { height: '32px' } }\r\n }}\r\n sxForm={{ flex: 1 }}\r\n >\r\n <Typography variant='body1' noWrap fontWeight={600} sx={{ flex: 1, minWidth: 0 }}>\r\n {group.name}\r\n </Typography>\r\n <Chip label={`${group.items.length} items`} size='small' />\r\n <IconButton size='small' onClick={handleEditClick}>\r\n <EditIcon fontSize='small' />\r\n </IconButton>\r\n <DeleteButton onDelete={() => onDeleteGroup(group.id)} size='small' />\r\n </InlineEditing>\r\n </Box>\r\n </AccordionSummary>\r\n <AccordionDetails sx={{ p: 0 }}>\r\n <MediaList medias={group.items} onDelete={(mediaId) => onDeleteMedia(group.id, mediaId)} />\r\n </AccordionDetails>\r\n </Accordion>\r\n )\r\n}\r\n"],"names":["MediaGroupAccordion","_ref","group","onEditGroup","onDeleteGroup","onDeleteMedia","_useState","useState","_useState2","_slicedToArray","isEditing","setIsEditing","_jsxs","Accordion","sx","my","children","_jsx","AccordionSummary","expandIcon","ExpandMoreIcon","minWidth","margin","Box","display","alignItems","flex","gap","FolderOutlinedIcon","fontSize","InlineEditing","isEdit","setShowEdit","onSubmit","value","_objectSpread","name","defaultValue","textField","inputProps","maxLength","mediaRightStoreOptions","MAX_NAME_GROUP","height","sxForm","Typography","variant","noWrap","fontWeight","Chip","label","concat","items","length","size","IconButton","onClick","e","stopPropagation","EditIcon","DeleteButton","onDelete","id","AccordionDetails","p","MediaList","medias","mediaId"],"mappings":"gpBAmBaA,EAAqD,SAAlCC,GAA2F,IAAtDC,EAAKD,EAALC,MAAOC,EAAWF,EAAXE,YAAaC,EAAaH,EAAbG,cAAeC,EAAaJ,EAAbI,cACtGC,EAAkCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1CI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAY9B,OACEI,EAACC,EAAS,CAACC,GAAI,CAAEC,GAAI,gBACnBC,SAAA,CAAAC,EAACC,EAAiB,CAAAC,WAAYF,EAACG,EAAiB,IAAEN,GAAI,CAAEO,SAAU,EAAG,iCAAkC,CAAEA,SAAU,EAAGC,OAAQ,IAC5HN,SAAAJ,EAACW,EAAI,CAAAT,GAAI,CAAEU,QAAS,OAAQC,WAAY,SAAUC,KAAM,EAAGC,IAAK,EAAGN,SAAU,aAC3EJ,EAACW,EAAmB,CAAAC,SAAS,UAC7BjB,EAACkB,EAEC,CAAAC,OAAQrB,EACRsB,YAAarB,EACbsB,SAnBa,SAACC,GACtB/B,EAAWgC,EAAAA,KAAMjC,GAAK,CAAA,EAAA,CAAEkC,KAAMF,KAC9BvB,GAAa,EACd,EAiBS0B,aAAcnC,EAAMkC,KACpBE,UAAW,CACTC,WAAY,CAAEC,UAAWC,EAAuBC,gBAChD5B,GAAI,CAAEY,KAAM,EAAGL,SAAU,EAAG,2BAA4B,CAAEsB,OAAQ,UAEpEC,OAAQ,CAAElB,KAAM,GAEhBV,SAAA,CAAAC,EAAC4B,EAAW,CAAAC,QAAQ,QAAQC,QAAM,EAACC,WAAY,IAAKlC,GAAI,CAAEY,KAAM,EAAGL,SAAU,GAAGL,SAC7Ed,EAAMkC,OAETnB,EAACgC,EAAK,CAAAC,MAAK,GAAAC,OAAKjD,EAAMkD,MAAMC,OAAc,UAAEC,KAAK,UACjDrC,EAACsC,EAAU,CAACD,KAAK,QAAQE,QA1BX,SAACC,GACvBA,EAAEC,kBACF/C,GAAa,EACd,WAwBWM,EAAC0C,EAAS,CAAA9B,SAAS,YAErBZ,EAAC2C,EAAa,CAAAC,SAAU,WAAF,OAAQzD,EAAcF,EAAM4D,GAAG,EAAER,KAAK,YAlBvDpD,EAAM4D,GAAK5D,EAAMkC,KAAO1B,QAsBnCO,EAAC8C,EAAgB,CAACjD,GAAI,CAAEkD,EAAG,GACzBhD,SAAAC,EAACgD,EAAS,CAACC,OAAQhE,EAAMkD,MAAOS,SAAU,SAACM,GAAO,OAAK9D,EAAcH,EAAM4D,GAAIK,EAAQ,QAI/F"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{ImageWithFallback as r}from"dinocollab-core/components";import{Typography as i,List as o,ListItem as n,ListItemSecondaryAction as l}from"@mui/material";import{DeleteButton as a}from"./button.delete.js";var c=function(c){var d=c.medias,u=c.onDelete;return 0===d.length?e(i,{variant:"body2",color:"text.secondary",sx:{textAlign:"center",py:2},children:"No media in this package yet"}):e(o,{children:d.map(function(o){return t(n,{sx:{gap:1,alignItems:"center"},children:[e(r,{src:null==o?void 0:o.PictureUrl,title:null==o?void 0:o.PictureUrl,fallbackSrc:"images/default-video.webp",alt:"product-picture",style:{width:"50px",height:"50px",borderRadius:3,objectFit:"cover",flex:"0 0 auto"}}),e(i,{noWrap:!0,variant:"subtitle1",fontWeight:500,sx:{flexGrow:1},children:o.ProductName}),e(l,{children:e(a,{onDelete:function(){return u(o.ProductId)},size:"small"})})]},o.MediaId)})})};export{c as MediaList};
|
|
2
|
+
//# sourceMappingURL=media-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-list.js","sources":["../../../src/media-right/media-widget/media-list.tsx"],"sourcesContent":["import { ImageWithFallback } from 'dinocollab-core/components'\r\nimport { List, ListItem, ListItemSecondaryAction, Typography } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport { IMediaRightItem } from '../types'\r\nimport { DeleteButton } from './button.delete'\r\n\r\nexport interface IMediaListProps {\r\n medias: IMediaRightItem[]\r\n onDelete: (mediaId: string) => void\r\n}\r\n\r\nexport const MediaList: FC<IMediaListProps> = ({ medias, onDelete }) => {\r\n if (medias.length === 0) {\r\n return (\r\n <Typography variant='body2' color='text.secondary' sx={{ textAlign: 'center', py: 2 }}>\r\n No media in this package yet\r\n </Typography>\r\n )\r\n }\r\n\r\n return (\r\n <List>\r\n {medias.map((media) => (\r\n <ListItem key={media.MediaId} sx={{ gap: 1, alignItems: 'center' }}>\r\n <ImageWithFallback\r\n src={media?.PictureUrl}\r\n title={media?.PictureUrl}\r\n fallbackSrc='images/default-video.webp'\r\n alt='product-picture'\r\n style={{\r\n width: '50px',\r\n height: '50px',\r\n borderRadius: 3,\r\n objectFit: 'cover',\r\n flex: '0 0 auto'\r\n }}\r\n />\r\n <Typography noWrap variant='subtitle1' fontWeight={500} sx={{ flexGrow: 1 }}>\r\n {media.ProductName}\r\n </Typography>\r\n <ListItemSecondaryAction>\r\n <DeleteButton onDelete={() => onDelete(media.ProductId)} size='small' />\r\n </ListItemSecondaryAction>\r\n </ListItem>\r\n ))}\r\n </List>\r\n )\r\n}\r\n"],"names":["MediaList","_ref","medias","onDelete","length","_jsx","Typography","variant","color","sx","textAlign","py","children","List","map","media","_jsxs","ListItem","gap","alignItems","ImageWithFallback","src","PictureUrl","title","fallbackSrc","alt","style","width","height","borderRadius","objectFit","flex","noWrap","fontWeight","flexGrow","ProductName","ListItemSecondaryAction","DeleteButton","ProductId","size","MediaId"],"mappings":"uQAWaA,EAAiC,SAAxBC,GAAiD,IAAtBC,EAAMD,EAANC,OAAQC,EAAQF,EAARE,SACvD,OAAsB,IAAlBD,EAAOE,OAEPC,EAACC,EAAW,CAAAC,QAAQ,QAAQC,MAAM,iBAAiBC,GAAI,CAAEC,UAAW,SAAUC,GAAI,GAErEC,SAAA,iCAKfP,EAACQ,EACE,CAAAD,SAAAV,EAAOY,IAAI,SAACC,GAAK,OAChBC,EAACC,EAAQ,CAAqBR,GAAI,CAAES,IAAK,EAAGC,WAAY,UAAUP,SAAA,CAChEP,EAACe,EACC,CAAAC,IAAKN,aAAAA,EAAAA,EAAOO,WACZC,MAAOR,aAAAA,EAAAA,EAAOO,WACdE,YAAY,4BACZC,IAAI,kBACJC,MAAO,CACLC,MAAO,OACPC,OAAQ,OACRC,aAAc,EACdC,UAAW,QACXC,KAAM,cAGV1B,EAACC,EAAW,CAAA0B,QAAO,EAAAzB,QAAQ,YAAY0B,WAAY,IAAKxB,GAAI,CAAEyB,SAAU,GACrEtB,SAAAG,EAAMoB,cAET9B,EAAC+B,EACC,CAAAxB,SAAAP,EAACgC,EAAY,CAAClC,SAAU,WAAF,OAAQA,EAASY,EAAMuB,UAAU,EAAEC,KAAK,cAlBnDxB,EAAMyB,QAqBtB,IAGP"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{styled as o,Menu as r}from"@mui/material";var a=o(r)(function(o){var r=o.theme;return{"--color-bg":"#ffffff","--color-text":r.palette.common.black,marginTop:"45px",">.MuiPaper-root":{overflow:"visible",backgroundColor:"var(--color-bg, #000000)",borderRadius:r.shape.borderRadius,minWidth:"280px",maxWidth:"550px",boxShadow:"0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)",animation:"fadeInDown 0.3s ease-out",marginTop:"8px",color:"var(--color-text, #000000)","&::before":{content:'""',position:"absolute",backgroundColor:"var(--color-bg, #ffffff)",width:"10px",height:"10px",top:"-4px",right:r.spacing(1),transform:"translateX(-50%) rotate(45deg)",zIndex:0},"@keyframes fadeInDown":{"0%":{opacity:0,transform:"translateY(-10px)"},"100%":{opacity:1,transform:"translateY(0)"}}},".MuiBackdrop-root":{backgroundColor:"transparent"},".MuiList-root":{padding:0}}});export{a as MenuStyled};
|
|
2
|
+
//# sourceMappingURL=styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styled.js","sources":["../../../src/media-right/media-widget/styled.tsx"],"sourcesContent":["import { Menu, styled } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { MenuProps } from '@mui/material'\r\n\r\nexport const MenuStyled: ComponentType<MenuProps> = styled(Menu)(({ theme }) => ({\r\n '--color-bg': '#ffffff',\r\n '--color-text': theme.palette.common.black,\r\n\r\n marginTop: '45px',\r\n '>.MuiPaper-root': {\r\n overflow: 'visible',\r\n backgroundColor: 'var(--color-bg, #000000)',\r\n borderRadius: theme.shape.borderRadius,\r\n minWidth: '280px',\r\n maxWidth: '550px',\r\n boxShadow: `0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)`,\r\n animation: 'fadeInDown 0.3s ease-out',\r\n marginTop: '8px',\r\n color: 'var(--color-text, #000000)',\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n backgroundColor: 'var(--color-bg, #ffffff)',\r\n width: '10px',\r\n height: '10px',\r\n top: '-4px',\r\n right: theme.spacing(1),\r\n transform: 'translateX(-50%) rotate(45deg)',\r\n zIndex: 0\r\n },\r\n '@keyframes fadeInDown': {\r\n '0%': { opacity: 0, transform: 'translateY(-10px)' },\r\n '100%': { opacity: 1, transform: 'translateY(0)' }\r\n }\r\n },\r\n '.MuiBackdrop-root': { backgroundColor: 'transparent' },\r\n '.MuiList-root': { padding: 0 }\r\n}))\r\n"],"names":["MenuStyled","styled","Menu","_ref","theme","palette","common","black","marginTop","overflow","backgroundColor","borderRadius","shape","minWidth","maxWidth","boxShadow","animation","color","content","position","width","height","top","right","spacing","transform","zIndex","opacity","padding"],"mappings":"iDAIO,IAAMA,EAAuCC,EAAOC,EAAPD,CAAa,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CAC/E,aAAc,UACd,eAAgBA,EAAMC,QAAQC,OAAOC,MAErCC,UAAW,OACX,kBAAmB,CAClBC,SAAU,UACTC,gBAAiB,2BACjBC,aAAcP,EAAMQ,MAAMD,aAC1BE,SAAU,QACVC,SAAU,QACVC,UAAsI,4HACtIC,UAAW,2BACXR,UAAW,MACXS,MAAO,6BACP,YAAa,CACXC,QAAS,KACTC,SAAU,WACVT,gBAAiB,2BACjBU,MAAO,OACPC,OAAQ,OACRC,IAAK,OACLC,MAAOnB,EAAMoB,QAAQ,GACrBC,UAAW,iCACXC,OAAQ,GAEV,wBAAyB,CACvB,KAAM,CAAEC,QAAS,EAAGF,UAAW,qBAC/B,OAAQ,CAAEE,QAAS,EAAGF,UAAW,mBAGrC,oBAAqB,CAAEf,gBAAiB,eACxC,gBAAiB,CAAEkB,QAAS,GAC7B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r,jsxs as o}from"react/jsx-runtime";import{Card as e,CardContent as t,Typography as i}from"@mui/material";import a from"@mui/icons-material/Folder";var n=function(){return r(e,{sx:{boxShadow:0},children:o(t,{sx:{textAlign:"center",py:4},children:[r(a,{sx:{fontSize:64,color:"text.secondary",mb:2}}),r(i,{variant:"h6",color:"text.secondary",children:"No Media Rights Packages yet."}),r(i,{variant:"body2",color:"text.secondary",children:"Try adding some products."})]})})};export{n as EmptyState};
|
|
2
|
+
//# sourceMappingURL=units.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"units.js","sources":["../../../src/media-right/media-widget/units.tsx"],"sourcesContent":["import { Card, CardContent, Typography } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport FolderIcon from '@mui/icons-material/Folder'\r\n\r\nexport const EmptyState: FC = () => (\r\n <Card sx={{ boxShadow: 0 }}>\r\n <CardContent sx={{ textAlign: 'center', py: 4 }}>\r\n <FolderIcon sx={{ fontSize: 64, color: 'text.secondary', mb: 2 }} />\r\n <Typography variant='h6' color='text.secondary'>\r\n No Media Rights Packages yet.\r\n </Typography>\r\n <Typography variant='body2' color='text.secondary'>\r\n Try adding some products.\r\n </Typography>\r\n </CardContent>\r\n </Card>\r\n)\r\n"],"names":["EmptyState","_jsx","Card","sx","boxShadow","children","_jsxs","CardContent","textAlign","py","FolderIcon","fontSize","color","mb","Typography","variant"],"mappings":"kKAIaA,IAAAA,EAAiB,WAAP,OACrBC,EAACC,GAAKC,GAAI,CAAEC,UAAW,GAAGC,SACxBC,EAACC,GAAYJ,GAAI,CAAEK,UAAW,SAAUC,GAAI,GAAGJ,SAAA,CAC7CJ,EAACS,EAAU,CAACP,GAAI,CAAEQ,SAAU,GAAIC,MAAO,iBAAkBC,GAAI,KAC7DZ,EAACa,EAAW,CAAAC,QAAQ,KAAKH,MAAM,iBAElBP,SAAA,kCACbJ,EAACa,GAAWC,QAAQ,QAAQH,MAAM,4DAI/B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{NotificationWidget,createNotificationWidget}from"./widget.js";
|
|
1
|
+
export{NotificationWidget,createNotificationWidget}from"./widget.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as e,createClass as t,classCallCheck as
|
|
1
|
+
import{inherits as e,createClass as t,classCallCheck as r,callSuper as i,defineProperty as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,Fragment as n,jsxs as o}from"react/jsx-runtime";import"react-quill/dist/quill.snow.css";import{Component as d}from"react";import{styled as s,Box as c,Typography as h,Tooltip as p,IconButton as m,Divider as u,Button as f}from"@mui/material";import x from"@mui/icons-material/Close";import g from"@mui/icons-material/KeyboardArrowLeft";import C from"@mui/icons-material/KeyboardArrowRight";import{NotifyDetailStyled as v,notifyDetailClasses as S}from"./styled.js";var k=function(){function s(e){var t;return r(this,s),t=i(this,s,[e]),a(t,"renderControl",function(){return t.props.data.length<2?l(c,{}):o(y,{children:[l(m,{disabled:t.state.indexSelected<=0,onClick:t.handleClickLeft,children:l(g,{})}),o(h,{children:[t.state.indexSelected+1," / ",t.props.data.length]}),l(m,{disabled:t.state.indexSelected>=t.props.data.length-1,onClick:t.handleClickRight,children:l(C,{})})]})}),a(t,"handleClickLeft",function(){var e=t.state.indexSelected-1;e<0||t.setState({indexSelected:e})}),a(t,"handleClickRight",function(){var e=t.state.indexSelected+1;e>=t.props.data.length||t.setState({indexSelected:e})}),a(t,"handleRead",function(){var e,r,i,a,l=t.props.data[t.state.indexSelected];null===(e=(r=t.props).onRead)||void 0===e||e.call(r,l),t.handleClickRight(),t.state.indexSelected>=t.props.data.length-1&&(null===(i=(a=t.props).onClose)||void 0===i||i.call(a))}),a(t,"getData",function(){var e=t.props.data,r=t.state.indexSelected,i=e[r];return i||0===r?i:void t.setState({indexSelected:0})}),t.state={indexSelected:0},t}return e(s,d),t(s,[{key:"render",value:function(){var e=this.getData();return e?o(v,{className:S.root,children:[o("div",{className:S.header,children:[l(h,{variant:"h6",children:e.Title}),l(p,{title:"Close",children:l(m,{onClick:this.props.onClose,className:S.closeButton,children:l(x,{})})})]}),l(u,{flexItem:!0,variant:"middle"}),l(R,{children:l("div",{className:"ql-editor",dangerouslySetInnerHTML:{__html:e.Content}})}),l(u,{flexItem:!0,variant:"middle"}),o("div",{className:S.footer,children:[this.renderControl(),o("div",{className:S.footerActions,children:[!e.IsRead&&l(f,{color:"inherit",onClick:this.props.onClose,sx:{textTransform:"unset"},children:"Remind me later"}),!e.IsRead&&l(f,{color:"primary",onClick:this.handleRead,sx:{textTransform:"unset",fontWeight:600},children:"Mark as read"}),e.IsRead&&l(f,{color:"primary",onClick:this.props.onClose,sx:{textTransform:"unset"},children:"Close"})]})]})]}):l(n,{})}}])}(),R=s(c)({width:"100%",minHeight:"350px",maxHeight:"calc(100vh - 128px)",overflow:"auto",margin:"0 4px",padding:"0 8px","& .ql-toolbar.ql-snow":{display:"none"},"& .ql-container.ql-snow":{border:"none"},"& .ql-editor":{paddingLeft:0,paddingRight:0,height:"unset"}}),y=s(c)({display:"flex",alignItems:"center",gap:"8px"});export{k as default};
|
|
2
2
|
//# sourceMappingURL=notify-detail.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify-detail.js","sources":["../../src/notification/notify-detail.tsx"],"sourcesContent":["import 'react-quill/dist/quill.snow.css'\r\nimport { Component } from 'react'\r\nimport { Box, Button, styled, Typography, Divider, IconButton, Tooltip } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport KeyboardArrowLeftIcon from '@mui/icons-material/KeyboardArrowLeft'\r\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight'\r\nimport { INotification } from './types'\r\nimport { notifyDetailClasses, NotifyDetailStyled } from './styled'\r\n\r\ninterface IProps {\r\n data: INotification[]\r\n onRead?: (value: INotification) => void\r\n onClose?: () => void\r\n}\r\n\r\ninterface IState {\r\n indexSelected: number\r\n}\r\n\r\nclass NotifyDetail extends Component<IProps, IState> {\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = { indexSelected: 0 }\r\n }\r\n\r\n render() {\r\n const data = this.getData()\r\n if (!data) return <></>\r\n return (\r\n <NotifyDetailStyled className={notifyDetailClasses.root}>\r\n <div className={notifyDetailClasses.header}>\r\n <Typography variant='h6'>{data.Title}</Typography>\r\n <Tooltip title='Close'>\r\n <IconButton onClick={this.props.onClose} className={notifyDetailClasses.closeButton}>\r\n <CloseIcon />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n <Divider flexItem variant='middle' />\r\n <TextEditorWrapper>\r\n <div className='ql-editor' dangerouslySetInnerHTML={{ __html: data.Content }} />\r\n </TextEditorWrapper>\r\n <Divider flexItem variant='middle' />\r\n <div className={notifyDetailClasses.footer}>\r\n {this.renderControl()}\r\n <div className={notifyDetailClasses.footerActions}>\r\n <Button color='inherit' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n
|
|
1
|
+
{"version":3,"file":"notify-detail.js","sources":["../../src/notification/notify-detail.tsx"],"sourcesContent":["import 'react-quill/dist/quill.snow.css'\r\nimport { Component } from 'react'\r\nimport { Box, Button, styled, Typography, Divider, IconButton, Tooltip, Badge } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport KeyboardArrowLeftIcon from '@mui/icons-material/KeyboardArrowLeft'\r\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight'\r\nimport { INotification } from './types'\r\nimport { notifyDetailClasses, NotifyDetailStyled } from './styled'\r\n\r\ninterface IProps {\r\n data: INotification[]\r\n onRead?: (value: INotification) => void\r\n onClose?: () => void\r\n}\r\n\r\ninterface IState {\r\n indexSelected: number\r\n}\r\n\r\nclass NotifyDetail extends Component<IProps, IState> {\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = { indexSelected: 0 }\r\n }\r\n\r\n render() {\r\n const data = this.getData()\r\n if (!data) return <></>\r\n return (\r\n <NotifyDetailStyled className={notifyDetailClasses.root}>\r\n <div className={notifyDetailClasses.header}>\r\n <Typography variant='h6'>{data.Title}</Typography>\r\n <Tooltip title='Close'>\r\n <IconButton onClick={this.props.onClose} className={notifyDetailClasses.closeButton}>\r\n <CloseIcon />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n <Divider flexItem variant='middle' />\r\n <TextEditorWrapper>\r\n <div className='ql-editor' dangerouslySetInnerHTML={{ __html: data.Content }} />\r\n </TextEditorWrapper>\r\n <Divider flexItem variant='middle' />\r\n <div className={notifyDetailClasses.footer}>\r\n {this.renderControl()}\r\n <div className={notifyDetailClasses.footerActions}>\r\n {!data.IsRead && (\r\n <Button color='inherit' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n {'Remind me later'}\r\n </Button>\r\n )}\r\n {!data.IsRead && (\r\n <Button color='primary' onClick={this.handleRead} sx={{ textTransform: 'unset', fontWeight: 600 }}>\r\n Mark as read\r\n </Button>\r\n )}\r\n {data.IsRead && (\r\n <Button color='primary' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n Close\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </NotifyDetailStyled>\r\n )\r\n }\r\n\r\n renderControl = () => {\r\n if (this.props.data.length < 2) return <Box />\r\n return (\r\n <FlexCenter>\r\n <IconButton disabled={this.state.indexSelected <= 0} onClick={this.handleClickLeft}>\r\n <KeyboardArrowLeftIcon />\r\n </IconButton>\r\n <Typography>\r\n {this.state.indexSelected + 1} / {this.props.data.length}\r\n </Typography>\r\n <IconButton disabled={this.state.indexSelected >= this.props.data.length - 1} onClick={this.handleClickRight}>\r\n <KeyboardArrowRightIcon />\r\n </IconButton>\r\n </FlexCenter>\r\n )\r\n }\r\n\r\n handleClickLeft = () => {\r\n const index = this.state.indexSelected - 1\r\n if (index < 0) return\r\n this.setState({ indexSelected: index })\r\n }\r\n\r\n handleClickRight = () => {\r\n const index = this.state.indexSelected + 1\r\n if (index >= this.props.data.length) return\r\n this.setState({ indexSelected: index })\r\n }\r\n\r\n handleRead = () => {\r\n const data = this.props.data[this.state.indexSelected]\r\n this.props.onRead?.(data)\r\n this.handleClickRight()\r\n if (this.state.indexSelected >= this.props.data.length - 1) this.props.onClose?.()\r\n }\r\n\r\n getData = () => {\r\n const { data } = this.props\r\n const { indexSelected } = this.state\r\n const item = data[indexSelected]\r\n if (!item && indexSelected !== 0) {\r\n this.setState({ indexSelected: 0 })\r\n return\r\n } else {\r\n return item\r\n }\r\n }\r\n}\r\n\r\nexport default NotifyDetail\r\n\r\nconst TextEditorWrapper = styled(Box)({\r\n width: '100%',\r\n minHeight: '350px',\r\n maxHeight: 'calc(100vh - 128px)',\r\n overflow: 'auto',\r\n margin: '0 4px',\r\n padding: '0 8px',\r\n '& .ql-toolbar.ql-snow': { display: 'none' },\r\n '& .ql-container.ql-snow': { border: 'none' },\r\n '& .ql-editor': {\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n height: 'unset'\r\n }\r\n})\r\n\r\nconst FlexCenter = styled(Box)({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px'\r\n})\r\n"],"names":["NotifyDetail","props","_this","_classCallCheck","_callSuper","_defineProperty","data","length","_jsx","Box","_jsxs","FlexCenter","children","IconButton","disabled","state","indexSelected","onClick","handleClickLeft","KeyboardArrowLeftIcon","Typography","handleClickRight","KeyboardArrowRightIcon","index","setState","_this$props$onRead","_this$props","_this$props$onClose","_this$props2","onRead","call","onClose","item","_inherits","Component","_createClass","key","value","this","getData","NotifyDetailStyled","className","notifyDetailClasses","root","header","variant","Title","Tooltip","title","closeButton","CloseIcon","Divider","flexItem","TextEditorWrapper","dangerouslySetInnerHTML","__html","Content","footer","renderControl","footerActions","IsRead","Button","color","sx","textTransform","handleRead","fontWeight","styled","width","minHeight","maxHeight","overflow","margin","padding","display","border","paddingLeft","paddingRight","height","alignItems","gap"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as t,inherits as n,createClass as o,asyncToGenerator as r,objectSpread2 as e,classCallCheck as a,callSuper as i,defineProperty as l,regenerator as c}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s,jsxs as
|
|
1
|
+
import{slicedToArray as t,inherits as n,createClass as o,asyncToGenerator as r,objectSpread2 as e,classCallCheck as a,callSuper as i,defineProperty as l,regenerator as c}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s,jsxs as u,Fragment as d}from"react/jsx-runtime";import{Badge as f}from"@mui/material";import{useState as p,useEffect as h,Component as m}from"react";import{GlobalModal as v,mapGlobalModalContext as C}from"dinocollab-core/api-context";import g from"@mui/icons-material/NotificationsNone";import{MenuStyled as y}from"./styled.js";import{DarkIconButton as k}from"../components/buttons.js";import{useFetchData as b}from"./hook.js";import j from"./notify-list.js";import x from"./notify-detail.js";var E=function(){function t(n){var o;return a(this,t),o=i(this,t,[n]),l(o,"onClickHandler",function(t){var n;o.onClose(),null===(n=o.globalModalContext)||void 0===n||n.show({backdropActivated:!0,renderContent:function(){var n;return s(x,{data:[t],onRead:o.onReadHandler,onClose:null===(n=o.globalModalContext)||void 0===n?void 0:n.close})}})}),l(o,"onOpen",function(t){o.setState({anchorEl:t})}),l(o,"onClose",function(){o.setState({anchorEl:null})}),l(o,"onReadHandler",function(t){var n;null===(n=o.globalModalContext)||void 0===n||n.close();try{var r,e;null===(r=(e=o.props).onReaded)||void 0===r||r.call(e,t.Id)}catch(t){console.error("Error updating read state:",t)}}),o.state={anchorEl:null,hydrated:!1},o}return n(t,m),o(t,[{key:"notifications",get:function(){var t;return null!==(t=this.props.data)&&void 0!==t?t:[]}},{key:"newFeatureCount",get:function(){return this.notifications.filter(function(t){return!t.IsRead}).length}},{key:"componentDidMount",value:function(){this.setState({hydrated:!0})}},{key:"render",value:function(){var t=this;return u(d,{children:[s(k,{onClick:function(n){return t.onOpen(n.currentTarget)},children:s(f,{badgeContent:this.state.hydrated?this.newFeatureCount:0,color:"error",children:s(g,{})})}),s(y,{disableScrollLock:!0,anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:this.onClose,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:C(function(n){return t.globalModalContext=n,s(j,{data:t.props.data,onClick:t.onClickHandler})})})]})}}])}(),R=function(n){var o=b(n.featData),a=p([]),i=t(a,2),l=i[0],u=i[1];h(function(){o.data&&u(o.data)},[o.data]);var d=function(){var t=r(c().m(function t(o,r){var a;return c().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,null===(a=n.readed)||void 0===a?void 0:a.call(n,o,r);case 1:u(function(t){return t.map(function(t){return t.Id===o?e(e({},t),{},{IsRead:!0}):t})});case 2:return t.a(2)}},t)}));return function(n,o){return t.apply(this,arguments)}}();return s(v,{children:s(E,{data:l,loading:o.loading,onReaded:d})})},M=function(t){var n=function(n){return s(R,e(e({},t),n))};return n.displayName="NotificationWidget",n};export{R as NotificationWidget,M as createNotificationWidget,R as default};
|
|
2
2
|
//# sourceMappingURL=widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.js","sources":["../../src/notification/widget.tsx"],"sourcesContent":["import { Component, FC, useEffect, useState } from 'react'\r\nimport { GlobalModal, IGlobalModalContext, mapGlobalModalContext } from 'dinocollab-core/api-context'\r\nimport NotificationsNoneIcon from '@mui/icons-material/NotificationsNone'\r\nimport { MenuStyled } from './styled'\r\nimport {
|
|
1
|
+
{"version":3,"file":"widget.js","sources":["../../src/notification/widget.tsx"],"sourcesContent":["import { Badge } from '@mui/material'\r\nimport { Component, FC, useEffect, useState } from 'react'\r\nimport { GlobalModal, IGlobalModalContext, mapGlobalModalContext } from 'dinocollab-core/api-context'\r\nimport NotificationsNoneIcon from '@mui/icons-material/NotificationsNone'\r\nimport { MenuStyled } from './styled'\r\nimport { DarkIconButton } from '../components/buttons'\r\nimport { FetcherFunction, useFetchData } from './hook'\r\nimport { INotification, ReadedFunction } from './types'\r\nimport NotifyList from './notify-list'\r\nimport NotifyDetail from './notify-detail'\r\n\r\ninterface INotificationProps {\r\n loading?: boolean\r\n data: INotification[]\r\n onReaded?: ReadedFunction\r\n}\r\n\r\ninterface INotificationState {\r\n anchorEl: HTMLElement | null\r\n hydrated: boolean\r\n}\r\nclass NotificationContent extends Component<INotificationProps, INotificationState> {\r\n globalModalContext?: IGlobalModalContext\r\n constructor(props: INotificationProps) {\r\n super(props)\r\n this.state = { anchorEl: null, hydrated: false }\r\n }\r\n\r\n get notifications() {\r\n return this.props.data ?? []\r\n }\r\n\r\n get newFeatureCount() {\r\n return this.notifications.filter((n) => !n.IsRead).length\r\n }\r\n\r\n componentDidMount() {\r\n // When mounted on the client, set hydrated = true\r\n this.setState({ hydrated: true })\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n <DarkIconButton onClick={(e) => this.onOpen(e.currentTarget)}>\r\n <Badge badgeContent={this.state.hydrated ? this.newFeatureCount : 0} color='error'>\r\n <NotificationsNoneIcon />\r\n </Badge>\r\n </DarkIconButton>\r\n <MenuStyled\r\n disableScrollLock\r\n anchorEl={this.state.anchorEl}\r\n open={Boolean(this.state.anchorEl)}\r\n onClose={this.onClose}\r\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n MenuListProps={{ component: 'div' }}\r\n >\r\n {mapGlobalModalContext((context: IGlobalModalContext) => {\r\n this.globalModalContext = context\r\n return <NotifyList data={this.props.data} onClick={this.onClickHandler} />\r\n })}\r\n </MenuStyled>\r\n </>\r\n )\r\n }\r\n\r\n onClickHandler = (value: INotification) => {\r\n this.onClose()\r\n this.globalModalContext?.show({\r\n backdropActivated: true,\r\n renderContent: () => <NotifyDetail data={[value]} onRead={this.onReadHandler} onClose={this.globalModalContext?.close} />\r\n })\r\n }\r\n\r\n onOpen = (target: HTMLElement) => {\r\n this.setState({ anchorEl: target })\r\n }\r\n\r\n onClose = () => {\r\n this.setState({ anchorEl: null })\r\n }\r\n\r\n onReadHandler = (value: INotification) => {\r\n this.globalModalContext?.close()\r\n // NotifyLocalStorage.setSingle(value.Id)\r\n try {\r\n // Call the callback to update the read state in the parent component\r\n this.props.onReaded?.(value.Id)\r\n } catch (error) {\r\n console.error('Error updating read state:', error)\r\n }\r\n }\r\n}\r\n\r\nexport interface INotificationWidgetProps {\r\n featData: FetcherFunction<INotification[]>\r\n readed?: ReadedFunction\r\n}\r\n\r\nexport const NotificationWidget: FC<INotificationWidgetProps> = (props) => {\r\n const intitialData = useFetchData<INotification[]>(props.featData)\r\n const [data, setData] = useState<INotification[]>([])\r\n\r\n // When initialData changes, update the local state\r\n useEffect(() => {\r\n if (intitialData.data) setData(intitialData.data)\r\n }, [intitialData.data])\r\n\r\n // Function to update read notifications\r\n const handleRead: ReadedFunction = async (id: string, signal?: AbortSignal) => {\r\n await props.readed?.(id, signal)\r\n setData((prev) => prev.map((n) => (n.Id === id ? { ...n, IsRead: true } : n)))\r\n }\r\n\r\n return (\r\n <GlobalModal>\r\n <NotificationContent data={data} loading={intitialData.loading} onReaded={handleRead} />\r\n </GlobalModal>\r\n )\r\n}\r\nexport default NotificationWidget\r\n\r\nexport const createNotificationWidget = (params: INotificationWidgetProps) => {\r\n const _NotificationWidget: FC<Partial<INotificationWidgetProps>> = (props) => <NotificationWidget {...params} {...props} />\r\n _NotificationWidget.displayName = 'NotificationWidget'\r\n return _NotificationWidget\r\n}\r\n"],"names":["NotificationContent","props","_this","_classCallCheck","_callSuper","_defineProperty","value","_this$globalModalCont","onClose","globalModalContext","show","backdropActivated","renderContent","_this$globalModalCont2","_jsx","NotifyDetail","data","onRead","onReadHandler","close","target","setState","anchorEl","_this$globalModalCont3","_this$props$onReaded","_this$props","onReaded","call","Id","error","console","state","hydrated","_inherits","Component","_createClass","key","get","_this$props$data","this","notifications","filter","n","IsRead","length","_this2","_jsxs","_Fragment","children","DarkIconButton","onClick","e","onOpen","currentTarget","Badge","badgeContent","newFeatureCount","color","NotificationsNoneIcon","MenuStyled","disableScrollLock","open","Boolean","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","mapGlobalModalContext","context","NotifyList","onClickHandler","NotificationWidget","intitialData","useFetchData","featData","_useState","useState","_useState2","_slicedToArray","setData","useEffect","handleRead","_ref","_asyncToGenerator","_regenerator","m","_callee","id","signal","_props$readed","w","_context","readed","prev","map","_objectSpread","a","_x","_x2","apply","arguments","GlobalModal","loading","createNotificationWidget","params","_NotificationWidget","displayName"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/cart/styled.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAExD,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,SAAS,CAyC7C,CAAA;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;CAW9B,CAAA;AAMD,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/cart/styled.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAExD,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,SAAS,CAyC7C,CAAA;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;CAW9B,CAAA;AAMD,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,QAAQ,CA6EnD,CAAA"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { Component } from 'react';
|
|
2
|
-
import { ButtonProps } from '@mui/material';
|
|
2
|
+
import { ButtonProps, TypographyProps } from '@mui/material';
|
|
3
3
|
import type { FC } from 'react';
|
|
4
4
|
import { ICartItem } from './types';
|
|
5
5
|
import { IAppSiteBaseUrl } from '../types';
|
|
6
|
+
type ITypographyProps = TypographyProps & {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
6
9
|
interface ICartWidgetProps {
|
|
7
10
|
baseUrl: IAppSiteBaseUrl;
|
|
8
11
|
carts?: ICartItem[];
|
|
@@ -12,7 +15,9 @@ interface ICartWidgetProps {
|
|
|
12
15
|
};
|
|
13
16
|
storageKey?: string;
|
|
14
17
|
onRemoveCart?: (item: ICartItem) => void;
|
|
15
|
-
|
|
18
|
+
onMoveToCartClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLButtonElement, MouseEvent>) => void;
|
|
19
|
+
itemTitleProps?: ITypographyProps;
|
|
20
|
+
itemTitlePropsGetter?: (item: ICartItem, close?: () => void) => ITypographyProps;
|
|
16
21
|
}
|
|
17
22
|
interface ICartWidgetState {
|
|
18
23
|
anchorEl: HTMLElement | null;
|
|
@@ -24,6 +29,7 @@ export declare class CartWidget extends Component<ICartWidgetProps, ICartWidgetS
|
|
|
24
29
|
componentDidMount(): void;
|
|
25
30
|
render: () => import("react/jsx-runtime").JSX.Element;
|
|
26
31
|
renderContent: () => import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
renderTitle: (item: ICartItem) => import("react/jsx-runtime").JSX.Element;
|
|
27
33
|
renderItem: (item: ICartItem) => import("react/jsx-runtime").JSX.Element;
|
|
28
34
|
onOpen: (target: HTMLElement) => void;
|
|
29
35
|
onClose: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/cart/widget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAsB,WAAW,EAAmC,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/cart/widget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAsB,WAAW,EAAmC,eAAe,EAAE,MAAM,eAAe,CAAA;AACjH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAI/B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,KAAK,gBAAgB,GAAG,eAAe,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAA;AAEhE,UAAU,gBAAgB;IACxB,OAAO,EAAE,eAAe,CAAA;IACxB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qBAAqB,CAAC,EAAE,WAAW,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;IACxC,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAA;IACpG,cAAc,CAAC,EAAE,gBAAgB,CAAA;IACjC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,IAAI,KAAK,gBAAgB,CAAA;CACjF;AAED,UAAU,gBAAgB;IACxB,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,UAAW,SAAQ,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;gBAC/D,KAAK,EAAE,gBAAgB;IAKnC,IAAI,KAAK,qBAER;IAED,iBAAiB;IAKjB,MAAM,gDAmBL;IAED,aAAa,gDAuCZ;IAED,WAAW,SAAU,SAAS,6CAQ7B;IAED,UAAU,SAAU,SAAS,6CAyB5B;IAED,MAAM,WAAY,WAAW,UAE5B;IAED,OAAO,aAEN;CACF;AAED,eAAO,MAAM,gBAAgB,WAAY,gBAAgB,kCAIxD,CAAA"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Component, FC } from 'react';
|
|
2
|
+
import type { BoxProps } from '@mui/material';
|
|
2
3
|
import { IAppThemeProviderProps } from './app-theme-provider';
|
|
3
4
|
import type { INavLink, NavItemClickFunction } from './types';
|
|
4
5
|
import type { IAppSiteBaseUrl } from '../types';
|
|
5
6
|
export interface IAppFooterSlots {
|
|
6
7
|
themeProps?: Partial<IAppThemeProviderProps>;
|
|
8
|
+
footerElementProps?: Partial<BoxProps>;
|
|
7
9
|
}
|
|
8
10
|
export interface IAppFooterProps {
|
|
9
11
|
baseUrl: IAppSiteBaseUrl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-footer.d.ts","sourceRoot":"","sources":["../../../src/layout-global/app-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"app-footer.d.ts","sourceRoot":"","sources":["../../../src/layout-global/app-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,eAAe,CAAA;AAG7D,OAAO,EAAoB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAG/E,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,eAAe,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,KAAK,CAAC,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,SAAU,SAAQ,SAAS,CAAC,eAAe,CAAC;IACvD,MAAM;IA0EN,kBAAkB,UAAW,gBAAgB,CAAC,iBAAiB,EAAE,UAAU,CAAC,SAAS,QAAQ,UAG5F;CACF;AACD,eAAe,SAAS,CAAA;AAExB,eAAO,MAAM,eAAe,WAAY,eAAe,KAAG,GAAG,QAAQ,eAAe,CAAC,CAIpF,CAAA"}
|
|
@@ -20,9 +20,11 @@ interface IHeaderNavState {
|
|
|
20
20
|
declare class AppHeaderNav extends Component<IHeaderNavProps, IHeaderNavState> {
|
|
21
21
|
constructor(props: IHeaderNavProps);
|
|
22
22
|
render(): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
getLiProps: (item: IAppNav) => React.HTMLProps<HTMLLIElement>;
|
|
23
24
|
getButtonNavProps: (item: IAppNav) => Partial<IButtonAnimationProps>;
|
|
24
25
|
renderItemIcon: (nav: IAppNav) => ReactNode;
|
|
25
|
-
|
|
26
|
+
handleMouseEnter: (e: React.MouseEvent<HTMLLIElement>, item: IAppNav) => void;
|
|
27
|
+
handleMouseLeave: () => void;
|
|
26
28
|
onClickNavItemHandler: (e: RMouseEvent<HTMLAnchorElement, MouseEvent>, nav: IAppNav) => void;
|
|
27
29
|
onCloseMenuHandler: () => void;
|
|
28
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-header.nav.d.ts","sourceRoot":"","sources":["../../../src/layout-global/app-header.nav.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,IAAI,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGjE,OAAO,EAAmB,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAE9E,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAG5D,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;CACzE;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACnB,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAC3B;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,OAAO,GAAG,IAAI,CAAA;CAC5B;AAED,cAAM,YAAa,SAAQ,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;gBACxD,KAAK,EAAE,eAAe;IAKlC,MAAM;
|
|
1
|
+
{"version":3,"file":"app-header.nav.d.ts","sourceRoot":"","sources":["../../../src/layout-global/app-header.nav.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,IAAI,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGjE,OAAO,EAAmB,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAE9E,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAG5D,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;CACzE;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACnB,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAC3B;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,OAAO,GAAG,IAAI,CAAA;CAC5B;AAED,cAAM,YAAa,SAAQ,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;gBACxD,KAAK,EAAE,eAAe;IAKlC,MAAM;IAwBN,UAAU,SAAU,OAAO,KAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAO3D;IAED,iBAAiB,SAAU,OAAO,KAAG,QAAQ,qBAAqB,CAAC,CAclE;IAED,cAAc,QAAS,OAAO,KAAG,SAAS,CAIzC;IAED,gBAAgB,MAAO,gBAAgB,CAAC,aAAa,CAAC,QAAQ,OAAO,UAIpE;IAED,gBAAgB,aAEf;IAED,qBAAqB,MAAO,YAAY,iBAAiB,EAAE,UAAU,CAAC,OAAO,OAAO,UAUnF;IAED,kBAAkB,aAEjB;CACF;AACD,eAAe,YAAY,CAAA"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { Component } from 'react';
|
|
2
|
-
import type { ReactNode } from 'react';
|
|
3
|
-
import type { IAppMenu,
|
|
4
|
-
interface ISubMenuProps {
|
|
5
|
-
|
|
6
|
-
onClose: () => void;
|
|
7
|
-
navSelected: IAppNav | null;
|
|
2
|
+
import type { PropsWithChildren, ReactNode } from 'react';
|
|
3
|
+
import type { IAppMenu, INavLink, NavItemClickFunction, SingleOrArray } from './types';
|
|
4
|
+
interface ISubMenuProps extends PropsWithChildren {
|
|
5
|
+
menu?: SingleOrArray<IAppMenu>;
|
|
8
6
|
onNavItemClick?: NavItemClickFunction;
|
|
9
7
|
}
|
|
10
8
|
declare class SubMenu extends Component<ISubMenuProps> {
|
|
11
|
-
render(): import("react/jsx-runtime").JSX.Element
|
|
9
|
+
render(): import("react/jsx-runtime").JSX.Element;
|
|
12
10
|
renderItem: (item: IAppMenu, index: number) => import("react/jsx-runtime").JSX.Element;
|
|
13
11
|
renderIcon: (value: ReactNode) => import("react/jsx-runtime").JSX.Element | null;
|
|
14
12
|
getMenuData: () => IAppMenu[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sub-menu.d.ts","sourceRoot":"","sources":["../../../src/layout-global/sub-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"sub-menu.d.ts","sourceRoot":"","sources":["../../../src/layout-global/sub-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIzD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEtF,UAAU,aAAc,SAAQ,iBAAiB;IAC/C,IAAI,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC9B,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACtC;AAED,cAAM,OAAQ,SAAQ,SAAS,CAAC,aAAa,CAAC;IAC5C,MAAM;IAoBN,UAAU,SAAU,QAAQ,SAAS,MAAM,6CAsB1C;IAED,UAAU,UAAW,SAAS,oDAO7B;IAED,WAAW,mBAGV;IAED,kBAAkB,UAAW,gBAAgB,CAAC,iBAAiB,EAAE,UAAU,CAAC,SAAS,QAAQ,UAG5F;CACF;AACD,eAAe,OAAO,CAAA"}
|