dinocollab-shared 1.2.46 → 1.2.48
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/action-license/area.group.js +1 -1
- package/dist/action-license/area.group.js.map +1 -1
- package/dist/action-license/btn.icon.add-to-package.js +1 -1
- package/dist/action-license/btn.icon.add-to-package.js.map +1 -1
- package/dist/action-license/quickly-add-to-cart/content.js +1 -1
- package/dist/action-license/quickly-add-to-cart/content.js.map +1 -1
- package/dist/cart/hooks.js +1 -1
- package/dist/cart/hooks.js.map +1 -1
- package/dist/cart/service.js +1 -1
- package/dist/cart/service.js.map +1 -1
- package/dist/cart/styled.js +1 -1
- package/dist/cart/styled.js.map +1 -1
- package/dist/factory/cart-content/styled.js +1 -1
- package/dist/factory/cart-content/styled.js.map +1 -1
- package/dist/factory/cart-item/create.cart-item.js +1 -1
- package/dist/factory/cart-item/create.cart-item.js.map +1 -1
- package/dist/factory/cart-item/styled.js +1 -1
- package/dist/factory/cart-item/styled.js.map +1 -1
- package/dist/layout-global/configs.js +1 -1
- package/dist/layout-global/configs.js.map +1 -1
- package/dist/media-right/configs.js +1 -1
- package/dist/media-right/configs.js.map +1 -1
- package/dist/media-right/group-selector/index.js +1 -1
- package/dist/media-right/group-selector/index.js.map +1 -1
- package/dist/media-right/group-selector/modal-header.js +1 -1
- package/dist/media-right/group-selector/modal-header.js.map +1 -1
- package/dist/media-right/group-selector/units.js +1 -1
- package/dist/media-right/group-selector/units.js.map +1 -1
- package/dist/media-right/guide-steps/index.js +1 -1
- package/dist/media-right/guide-steps/index.js.map +1 -1
- package/dist/media-right/helpers.js +1 -1
- package/dist/media-right/helpers.js.map +1 -1
- package/dist/media-right/hooks.js +1 -1
- package/dist/media-right/hooks.js.map +1 -1
- package/dist/media-right/index.js +1 -1
- package/dist/media-right/media-widget/index.js +1 -1
- package/dist/media-right/media-widget/index.js.map +1 -1
- package/dist/media-right/media-widget/media-group-accordion.js +1 -1
- package/dist/media-right/media-widget/media-group-accordion.js.map +1 -1
- package/dist/media-right/media-widget/new-group-area.js +1 -1
- package/dist/media-right/media-widget/new-group-area.js.map +1 -1
- package/dist/media-right/media-widget/styled.js +1 -1
- package/dist/media-right/media-widget/styled.js.map +1 -1
- package/dist/media-right/service.js +1 -1
- package/dist/media-right/service.js.map +1 -1
- package/dist/media-right/types.js.map +1 -1
- package/dist/media-right/unit.control.js +1 -1
- package/dist/media-right/unit.control.js.map +1 -1
- package/dist/types/action-license/btn.icon.add-to-package.d.ts +3 -3
- package/dist/types/action-license/btn.icon.add-to-package.d.ts.map +1 -1
- package/dist/types/action-license/quickly-add-to-cart/content.d.ts +2 -2
- package/dist/types/action-license/quickly-add-to-cart/content.d.ts.map +1 -1
- package/dist/types/cart/hooks.d.ts +5 -0
- package/dist/types/cart/hooks.d.ts.map +1 -1
- package/dist/types/cart/service.d.ts +5 -0
- package/dist/types/cart/service.d.ts.map +1 -1
- package/dist/types/cart/styled.d.ts.map +1 -1
- package/dist/types/factory/cart-content/styled.d.ts.map +1 -1
- package/dist/types/factory/cart-item/create.cart-item.d.ts +1 -1
- package/dist/types/factory/cart-item/create.cart-item.d.ts.map +1 -1
- package/dist/types/factory/cart-item/styled.d.ts.map +1 -1
- package/dist/types/layout-global/configs.d.ts.map +1 -1
- package/dist/types/media-right/configs.d.ts +1 -1
- package/dist/types/media-right/configs.d.ts.map +1 -1
- package/dist/types/media-right/group-selector/index.d.ts +2 -13
- package/dist/types/media-right/group-selector/index.d.ts.map +1 -1
- package/dist/types/media-right/group-selector/modal-header.d.ts.map +1 -1
- package/dist/types/media-right/group-selector/units.d.ts +3 -0
- package/dist/types/media-right/group-selector/units.d.ts.map +1 -1
- package/dist/types/media-right/guide-steps/index.d.ts.map +1 -1
- package/dist/types/media-right/helpers.d.ts +0 -4
- package/dist/types/media-right/helpers.d.ts.map +1 -1
- package/dist/types/media-right/hooks.d.ts +4 -5
- package/dist/types/media-right/hooks.d.ts.map +1 -1
- package/dist/types/media-right/media-widget/index.d.ts +0 -1
- package/dist/types/media-right/media-widget/index.d.ts.map +1 -1
- package/dist/types/media-right/media-widget/media-group-accordion.d.ts +4 -1
- package/dist/types/media-right/media-widget/media-group-accordion.d.ts.map +1 -1
- 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 -1
- package/dist/types/media-right/media-widget/styled.d.ts.map +1 -1
- package/dist/types/media-right/service.d.ts +5 -4
- package/dist/types/media-right/service.d.ts.map +1 -1
- package/dist/types/media-right/types.d.ts +5 -5
- package/dist/types/media-right/types.d.ts.map +1 -1
- package/dist/types/media-right/unit.control.d.ts +2 -0
- package/dist/types/media-right/unit.control.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/types/media-right/group-selector/NewCollectionInput.d.ts +0 -7
- package/dist/types/media-right/group-selector/NewCollectionInput.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-group-accordion.js","sources":["../../../src/media-right/media-widget/media-group-accordion.tsx"],"sourcesContent":["// imports\r\nimport { useState } from 'react'\r\nimport { Accordion, AccordionSummary, AccordionDetails, Box
|
|
1
|
+
{"version":3,"file":"media-group-accordion.js","sources":["../../../src/media-right/media-widget/media-group-accordion.tsx"],"sourcesContent":["// imports\r\nimport { useState } from 'react'\r\nimport { Accordion, AccordionSummary, AccordionDetails, Box } from '@mui/material'\r\nimport { Typography, IconButton, styled, accordionSummaryClasses, Badge, alpha } from '@mui/material'\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 { DeleteButton } from './button.delete'\r\nimport { InlineEditing } from './inline-editing'\r\nimport { NoDataPanel } from '../../components'\r\n// types\r\nimport type { ComponentType, FC, MouseEvent } from 'react'\r\nimport type { AccordionProps, AccordionDetailsProps, AccordionSummaryProps, BoxProps, TypographyProps } from '@mui/material'\r\nimport type { IMediaRightGroup, IMediaRightItem, IMediaRightOptions } from '../types'\r\nimport type { IInlineEditingProps } from './inline-editing'\r\n\r\nexport interface IMediaGroupAccordionProps {\r\n group: IMediaRightGroup\r\n options: IMediaRightOptions\r\n accordionProps?: Partial<AccordionProps>\r\n accordionSummaryProps?: Partial<AccordionSummaryProps>\r\n accordionDetailsProps?: Partial<AccordionDetailsProps>\r\n inlineEditingProps?: Partial<IInlineEditingProps>\r\n renderItem?: (item: IMediaRightItem) => React.ReactNode\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> = (props) => {\r\n const [isEditing, setIsEditing] = useState(false)\r\n\r\n const handleSaveEdit = (value: string) => {\r\n props.onEditGroup({ ...props.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 <PlaylistAccordion component='div' {...props.accordionProps} sx={{ my: '0 !important', ...props.accordionProps?.sx }}>\r\n <AccordionSummary component='div' expandIcon={<ExpandMoreIcon />} {...props.accordionSummaryProps}>\r\n <ItemBox>\r\n <Badge badgeContent={props.group.items.length} color='primary'>\r\n <FolderOutlinedIcon fontSize='small' />\r\n </Badge>\r\n <InlineEditing\r\n key={props.group.id + props.group.name + isEditing}\r\n isEdit={isEditing}\r\n setShowEdit={setIsEditing}\r\n onSubmit={handleSaveEdit}\r\n defaultValue={props.group.name}\r\n sxForm={{ flex: 1 }}\r\n {...props.inlineEditingProps}\r\n textField={{\r\n ...props.inlineEditingProps?.textField,\r\n sx: { flex: 1, minWidth: 0, '& .MuiOutlinedInput-root': { height: '32px' }, ...props.inlineEditingProps?.textField?.sx }\r\n }}\r\n >\r\n <ItemTitle variant='body2' noWrap title={props.group.name}>\r\n {props.group.name}\r\n </ItemTitle>\r\n {/* <Chip sx={{ fontSize: '12px' }} label={`${props.group.items.length} items`} size='small' /> */}\r\n <IconButton size='small' onClick={handleEditClick} color='success'>\r\n <EditIcon fontSize='small' />\r\n </IconButton>\r\n <DeleteButton onDelete={() => props.onDeleteGroup(props.group.id)} size='small' />\r\n </InlineEditing>\r\n </ItemBox>\r\n </AccordionSummary>\r\n <AccordionDetails {...props.accordionDetailsProps}>\r\n {props.group.items.length > 0 ? (\r\n props.group.items.map((item) => (props.renderItem ? props.renderItem(item) : null))\r\n ) : (\r\n <NoDataPanel title={'No media in this playlist'} sx={{ flex: 1 }} />\r\n )}\r\n </AccordionDetails>\r\n </PlaylistAccordion>\r\n )\r\n}\r\n\r\nexport const PlaylistAccordion: ComponentType<AccordionProps> = styled(Accordion)(({ theme }) => ({\r\n backgroundColor: 'transparent',\r\n boxShadow: 'none',\r\n backgroundImage: 'none',\r\n '&:before': { display: 'none' },\r\n '&.Mui-expanded': { margin: 0 },\r\n [`.${accordionSummaryClasses.root}`]: {\r\n position: 'sticky',\r\n top: 0,\r\n zIndex: 1,\r\n background: alpha(theme.palette.background.paper, 0.6),\r\n backdropFilter: 'blur(500px)',\r\n WebkitBackdropFilter: 'blur(500px)',\r\n borderRadius: '12px',\r\n minWidth: 0,\r\n [`& .${accordionSummaryClasses.content}`]: {\r\n minWidth: 0,\r\n margin: 0\r\n }\r\n }\r\n}))\r\n\r\nexport const ItemBox: ComponentType<BoxProps> = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n flex: 1,\r\n gap: theme.spacing(1),\r\n minWidth: 0\r\n}))\r\n\r\nexport const ItemTitle: ComponentType<TypographyProps> = styled(Typography)(({ theme }) => ({\r\n fontWeight: 600,\r\n flex: 1,\r\n minWidth: 0,\r\n color: theme.palette.text.primary,\r\n marginLeft: theme.spacing(1)\r\n}))\r\n"],"names":["MediaGroupAccordion","props","_props$accordionProps","_props$inlineEditingP","_props$inlineEditingP2","_useState","useState","_useState2","_slicedToArray","isEditing","setIsEditing","_jsxs","PlaylistAccordion","_objectSpread","component","accordionProps","sx","my","_jsx","AccordionSummary","expandIcon","ExpandMoreIcon","accordionSummaryProps","children","ItemBox","Badge","badgeContent","group","items","length","color","FolderOutlinedIcon","fontSize","InlineEditing","isEdit","setShowEdit","onSubmit","value","onEditGroup","name","defaultValue","sxForm","flex","inlineEditingProps","textField","minWidth","height","ItemTitle","variant","noWrap","title","IconButton","size","onClick","e","stopPropagation","EditIcon","DeleteButton","onDelete","onDeleteGroup","id","AccordionDetails","accordionDetailsProps","map","item","renderItem","NoDataPanel","styled","Accordion","_ref","theme","_defineProperty","backgroundColor","boxShadow","backgroundImage","display","margin","concat","accordionSummaryClasses","root","position","top","zIndex","background","alpha","palette","paper","backdropFilter","WebkitBackdropFilter","borderRadius","content","Box","_ref3","alignItems","gap","spacing","Typography","_ref4","fontWeight","text","primary","marginLeft"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as
|
|
1
|
+
import{slicedToArray as r,objectSpread2 as t}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i}from"react/jsx-runtime";import{useState as e}from"react";import{InlineEditing as o}from"./inline-editing.js";import{NewCollectionButton as l}from"../unit.control.js";import{Box as n}from"@mui/material";var m=function(m){var a=m.textFieldProps,p=m.onSaveGroup,s=e(!1),c=r(s,2),d=c[0],u=c[1];return i(n,{sx:{p:1,pt:0,width:"100%"},children:i(o,{isEdit:d,onSubmit:function(r){r.trim()&&(p(r.trim()),u(!1))},setShowEdit:u,textField:t({label:"Playlist name",placeholder:"Enter playlist name",sx:{width:"100%"}},a),children:i(l,{onClick:function(){u(!0)}})})})};export{m as NewGroupArea};
|
|
2
2
|
//# sourceMappingURL=new-group-area.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-group-area.js","sources":["../../../src/media-right/media-widget/new-group-area.tsx"],"sourcesContent":["import React, { useState } from 'react'\r\nimport { InlineEditing } from './inline-editing'\r\nimport {
|
|
1
|
+
{"version":3,"file":"new-group-area.js","sources":["../../../src/media-right/media-widget/new-group-area.tsx"],"sourcesContent":["import React, { useState } from 'react'\r\nimport { InlineEditing } from './inline-editing'\r\nimport { NewCollectionButton } from '../unit.control'\r\nimport { Box } from '@mui/material'\r\nimport type { TextFieldProps } from '@mui/material'\r\n\r\ninterface INewGroupAreaProps {\r\n textFieldProps: Partial<TextFieldProps>\r\n onSaveGroup: (groupName: string) => void\r\n}\r\n\r\nexport const NewGroupArea: React.FC<INewGroupAreaProps> = ({ textFieldProps, onSaveGroup }) => {\r\n const [showNewGroupInput, setShowNewGroupInput] = useState(false)\r\n\r\n const handleNewGroupClick = () => {\r\n setShowNewGroupInput(true)\r\n }\r\n\r\n const handleSaveNewGroup = (value: string) => {\r\n if (value.trim()) {\r\n onSaveGroup(value.trim())\r\n setShowNewGroupInput(false)\r\n }\r\n }\r\n\r\n return (\r\n <Box sx={{ p: 1, pt: 0, width: '100%' }}>\r\n <InlineEditing\r\n isEdit={showNewGroupInput}\r\n onSubmit={handleSaveNewGroup}\r\n setShowEdit={setShowNewGroupInput}\r\n textField={{\r\n label: 'Playlist name',\r\n placeholder: 'Enter playlist name',\r\n sx: { width: '100%' },\r\n ...textFieldProps\r\n }}\r\n >\r\n <NewCollectionButton onClick={handleNewGroupClick} />\r\n </InlineEditing>\r\n </Box>\r\n )\r\n}\r\n"],"names":["NewGroupArea","_ref","textFieldProps","onSaveGroup","_useState","useState","_useState2","_slicedToArray","showNewGroupInput","setShowNewGroupInput","_jsx","Box","sx","p","pt","width","children","InlineEditing","isEdit","onSubmit","value","trim","setShowEdit","textField","_objectSpread","label","placeholder","NewCollectionButton","onClick"],"mappings":"6TAWaA,EAA6C,SAAjCC,GAAqE,IAAjCC,EAAcD,EAAdC,eAAgBC,EAAWF,EAAXE,YAC3EC,EAAkDC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1DI,EAAiBF,EAAA,GAAEG,EAAoBH,EAAA,GAa9C,OACEI,EAACC,EAAI,CAAAC,GAAI,CAAEC,EAAG,EAAGC,GAAI,EAAGC,MAAO,QAAQC,SACrCN,EAACO,EAAa,CACZC,OAAQV,EACRW,SAXqB,SAACC,GACtBA,EAAMC,SACRlB,EAAYiB,EAAMC,QAClBZ,GAAqB,GAExB,EAOKa,YAAab,EACbc,UAASC,EAAA,CACPC,MAAO,gBACPC,YAAa,sBACbd,GAAI,CAAEG,MAAO,SACVb,GAGLc,SAAAN,EAACiB,EAAmB,CAACC,QAxBC,WAC1BnB,GAAqB,EACtB,OA0BH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{styled as
|
|
1
|
+
import{styled as a,Stack as r,Menu as t}from"@mui/material";var o=a(r)(function(a){return a.theme,{height:"100%"}}),e=a(t)(function(a){var r=a.theme;return{marginTop:"45px","> .MuiPaper-root":{position:"relative",overflow:"visible",display:"flex",flexDirection:"column",backgroundColor:r.palette.background.paper,borderRadius:r.shape.borderRadius,minWidth:"280px",maxWidth:"550px",boxShadow:r.shadows[5],animation:"fadeInDown 0.3s ease-out",marginTop:"8px",color:r.palette.text.primary,"@keyframes fadeInDown":{"0%":{opacity:0,transform:"translateY(-10px)"},"100%":{opacity:1,transform:"translateY(0)"}},"&::before":{content:'""',position:"absolute",backgroundColor:r.palette.background.paper,backgroundImage:"linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))",width:"10px",height:"10px",top:"-4px",right:r.spacing(1),transform:"translateX(-50%) rotate(45deg)",zIndex:0}},".MuiBackdrop-root":{backgroundColor:"transparent"},".MuiList-root":{padding:0,height:"100%",minHeight:0,maxHeight:"60vh"}}});export{e as MenuStyled,o as Root};
|
|
2
2
|
//# sourceMappingURL=styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.js","sources":["../../../src/media-right/media-widget/styled.tsx"],"sourcesContent":["import { Menu, styled, Stack } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { MenuProps, StackProps } from '@mui/material'\r\n\r\nexport const Root: ComponentType<StackProps> = styled(Stack)(({ theme }) => ({\r\n
|
|
1
|
+
{"version":3,"file":"styled.js","sources":["../../../src/media-right/media-widget/styled.tsx"],"sourcesContent":["import { Menu, styled, Stack } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { MenuProps, StackProps } from '@mui/material'\r\n\r\nexport const Root: ComponentType<StackProps> = styled(Stack)(({ theme }) => ({\r\n height: '100%'\r\n}))\r\n\r\nexport const MenuStyled: ComponentType<MenuProps> = styled(Menu)(({ theme }) => ({\r\n marginTop: '45px',\r\n '> .MuiPaper-root': {\r\n position: 'relative',\r\n overflow: 'visible',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: theme.palette.background.paper,\r\n borderRadius: theme.shape.borderRadius,\r\n minWidth: '280px',\r\n maxWidth: '550px',\r\n boxShadow: theme.shadows[5],\r\n animation: 'fadeInDown 0.3s ease-out',\r\n marginTop: '8px',\r\n color: theme.palette.text.primary,\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 '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n backgroundColor: theme.palette.background.paper,\r\n backgroundImage: 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))',\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 },\r\n '.MuiBackdrop-root': { backgroundColor: 'transparent' },\r\n '.MuiList-root': { padding: 0, height: '100%', minHeight: 0, maxHeight: '60vh' }\r\n}))\r\n"],"names":["Root","styled","Stack","_ref","theme","height","MenuStyled","Menu","_ref2","marginTop","position","overflow","display","flexDirection","backgroundColor","palette","background","paper","borderRadius","shape","minWidth","maxWidth","boxShadow","shadows","animation","color","text","primary","opacity","transform","content","backgroundImage","width","top","right","spacing","zIndex","padding","minHeight","maxHeight"],"mappings":"4DAIO,IAAMA,EAAkCC,EAAOC,EAAPD,CAAc,SAAAE,GAAQ,OAAAA,EAALC,MAAa,CAC3EC,OAAQ,OACT,GAEYC,EAAuCL,EAAOM,EAAPN,CAAa,SAAAO,GAAA,IAAGJ,EAAKI,EAALJ,MAAK,MAAQ,CAC/EK,UAAW,OACX,mBAAoB,CAClBC,SAAU,WACVC,SAAU,UACVC,QAAS,OACTC,cAAe,SACfC,gBAAiBV,EAAMW,QAAQC,WAAWC,MAC1CC,aAAcd,EAAMe,MAAMD,aAC1BE,SAAU,QACVC,SAAU,QACVC,UAAWlB,EAAMmB,QAAQ,GACzBC,UAAW,2BACXf,UAAW,MACXgB,MAAOrB,EAAMW,QAAQW,KAAKC,QAE1B,wBAAyB,CACvB,KAAM,CAAEC,QAAS,EAAGC,UAAW,qBAC/B,OAAQ,CAAED,QAAS,EAAGC,UAAW,kBAGnC,YAAa,CACXC,QAAS,KACTpB,SAAU,WACVI,gBAAiBV,EAAMW,QAAQC,WAAWC,MAC1Cc,gBAAiB,wEACjBC,MAAO,OACP3B,OAAQ,OACR4B,IAAK,OACLC,MAAO9B,EAAM+B,QAAQ,GACrBN,UAAW,iCACXO,OAAQ,IAGZ,oBAAqB,CAAEtB,gBAAiB,eACxC,gBAAiB,CAAEuB,QAAS,EAAGhC,OAAQ,OAAQiC,UAAW,EAAGC,UAAW,QACzE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as o,createClass as
|
|
1
|
+
import{defineProperty as o,createClass as e,objectSpread2 as r,toConsumableArray as a,classCallCheck as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{createObjectSingleton as n}from"dinocollab-core/utils";import{mediaRightDefaultOptions as l}from"./configs.js";import{MediaRightEventStore as i}from"./event-store.js";import{v4 as s}from"uuid";var u=e(function e(){t(this,e),o(this,"localStorageKey","__media_right_default__"),o(this,"store",new i),o(this,"maxItemsPerGroup",l.MAX_ITEMS_PER_GROUP),o(this,"maxGroup",l.MAX_GROUP),o(this,"maxNameGroup",l.MAX_NAME_GROUP),o(this,"maxChannels",l.MAX_CHANNELS)}),c=function(){function l(){t(this,l)}return e(l,[{key:"getOptions",value:function(){var o=l.provider;return{localStorageKey:o.localStorageKey,maxItemsPerGroup:o.maxItemsPerGroup,maxGroup:o.maxGroup,maxNameGroup:o.maxNameGroup,maxChannels:o.maxChannels}}},{key:"initialize",value:function(){l.provider.store.emit("requestState",{})}},{key:"subscribe",value:function(o,e){return l.provider.store.subscribe(o,e)}},{key:"getGroups",value:function(){var o,e=this.loadFromLocalStorage();return Object.values(null!==(o=e.groups)&&void 0!==o?o:{})}},{key:"getGroupsMap",value:function(){var o;return null!==(o=this.loadFromLocalStorage().groups)&&void 0!==o?o:{}}},{key:"getGroup",value:function(o){var e;return null===(e=this.loadFromLocalStorage().groups)||void 0===e?void 0:e[o]}},{key:"addGroup",value:function(e){var a=this.loadFromLocalStorage(),t=Object.keys(a.groups).length,n=l.provider.maxGroup;if(t>=n)throw new Error("Maximum playlist limit reached (".concat(n,")"));var i=l.provider.maxNameGroup;if(e.name&&e.name.length>i)throw new Error("Playlist name exceeds maximum length (".concat(i,")"));var u=r(r({},e),{},{id:s(),createdAt:Date.now(),items:[],channels:[]}),c=r(r({},a.groups),{},o({},u.id,u));return this.saveToLocalStorage(c),u}},{key:"updateGroup",value:function(e,a){var t=this.loadFromLocalStorage();if(t.groups[e]){var n=l.provider.maxNameGroup;if(a.name&&a.name.length>n)throw new Error("Playlist name exceeds maximum length (".concat(n,")"));var i=r(r({},t.groups),{},o({},e,r(r({},t.groups[e]),a)));this.saveToLocalStorage(i)}}},{key:"removeGroup",value:function(o){var e=this.loadFromLocalStorage(),a=r({},e.groups);delete a[o],this.saveToLocalStorage(a)}},{key:"addChannel",value:function(e,t){var n=this.loadFromLocalStorage(),i=n.groups[e];if(!i)throw new Error("Playlist not found");var u=l.provider.maxChannels;if(i.channels.length>=u)throw new Error('Playlist "'.concat(i.name,'" has reached maximum channels limit (').concat(u,")"));var c=r(r({},t),{},{Id:s()}),m=r(r({},i),{},{channels:[].concat(a(i.channels),[c])}),v=r(r({},n.groups),{},o({},e,m));this.saveToLocalStorage(v)}},{key:"updateChannel",value:function(e,t,n){var l=this.loadFromLocalStorage(),i=l.groups[e];if(!i)throw new Error("Playlist not found");var s=i.channels.findIndex(function(o){return o.Id===t});if(-1===s)throw new Error("Channel ".concat(t," not found in playlist ").concat(i.name));var u=a(i.channels);u[s]=r(r({},u[s]),n);var c=r(r({},l.groups),{},o({},e,r(r({},i),{},{channels:u})));this.saveToLocalStorage(c)}},{key:"removeChannel",value:function(e,t){var n=this.loadFromLocalStorage(),l=n.groups[e];if(!l)throw new Error("Playlist not found");var i=l.channels.findIndex(function(o){return o.Id===t});if(-1===i)throw new Error("Channel ".concat(t," not found in playlist ").concat(l.name));var s=a(l.channels);s.splice(i,1);var u=r(r({},n.groups),{},o({},e,r(r({},l),{},{channels:s})));this.saveToLocalStorage(u)}},{key:"clearChannels",value:function(e){var a=this.loadFromLocalStorage(),t=a.groups[e];if(t){var n=r(r({},a.groups),{},o({},e,r(r({},t),{},{channels:[]})));this.saveToLocalStorage(n)}}},{key:"addItem",value:function(e){var t=this.loadFromLocalStorage(),n=t.groups[e.GroupId];if(!n)throw new Error("Playlist not found");var i,s=n.items.findIndex(function(o){return o.ProductId===e.ProductId}),u=l.provider.maxItemsPerGroup;if(-1===s&&n.items.length>=u)throw new Error('Playlist "'.concat(n.name,'" has reached maximum items limit (').concat(u,")"));s>=0?(i=a(n.items))[s]=e:i=[].concat(a(n.items),[e]);var c=r(r({},t.groups),{},o({},e.GroupId,r(r({},n),{},{items:i})));this.saveToLocalStorage(c)}},{key:"updateItem",value:function(e,t,n){var l=this.loadFromLocalStorage(),i=l.groups[e];if(!i)throw new Error("Playlist not found");var s=i.items.findIndex(function(o){return o.ProductId===t});if(-1===s)throw new Error("Item ".concat(t," not found in playlist ").concat(i.name));var u=a(i.items);u[s]=r(r({},u[s]),n);var c=r(r({},l.groups),{},o({},e,r(r({},i),{},{items:u})));this.saveToLocalStorage(c)}},{key:"removeItem",value:function(e,a){var t=this.loadFromLocalStorage(),n=t.groups[e];if(!n)throw new Error("Playlist not found");var l=n.items.filter(function(o){return o.ProductId!==a}),i=r(r({},t.groups),{},o({},e,r(r({},n),{},{items:l})));this.saveToLocalStorage(i)}},{key:"clearAll",value:function(){this.saveToLocalStorage({})}},{key:"loadFromLocalStorage",value:function(){var o={version:"1.0",groups:{}};try{if("undefined"!=typeof globalThis&&globalThis.localStorage){var e=localStorage.getItem(l.provider.localStorageKey),r=e?JSON.parse(e):null;null!=r&&r.groups&&Object.keys(r.groups).length>0&&(o=r)}}catch(o){console.error("Error loading playlist from localStorage:",o)}return o}},{key:"saveToLocalStorage",value:function(o){if("undefined"!=typeof globalThis&&globalThis.localStorage)if(l.provider.localStorageKey){var e={version:"1.0",groups:o};localStorage.setItem(l.provider.localStorageKey,JSON.stringify(e)),l.provider.store.emit("stateChange",{groups:o})}else console.warn("No localStorageKey provided, skipping storage")}}],[{key:"provider",get:function(){var o;return null!==(o=n(l.key_provider).get())&&void 0!==o?o:new u}},{key:"setProvider",value:function(o){n(l.key_provider).set(null!=o?o:new u)}},{key:"setOptions",value:function(o){var e=l.provider;void 0!==o.localStorageKey&&(e.localStorageKey=o.localStorageKey),void 0!==o.maxItemsPerGroup&&(e.maxItemsPerGroup=o.maxItemsPerGroup),void 0!==o.maxGroup&&(e.maxGroup=o.maxGroup),void 0!==o.maxNameGroup&&(e.maxNameGroup=o.maxNameGroup),void 0!==o.maxChannels&&(e.maxChannels=o.maxChannels),l.setProvider(e)}}])}();o(c,"key_provider","__media_right_key_provider__");var m=new c;export{c as MediaRightService,m as mediaRightService};
|
|
2
2
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sources":["../../src/media-right/service.ts"],"sourcesContent":["import { createObjectSingleton } from 'dinocollab-core/utils'\r\nimport { mediaRightStoreOptions } from './configs'\r\nimport { MediaRightEventStore } from './event-store'\r\nimport { IMediaRightGroup, IMediaRightItem, IMediaRightChannel, IMediaRightOptions } from './types'\r\nimport { v4 as uuidv4 } from 'uuid'\r\n\r\nexport interface IMediaRightMetadata<O = any> {\r\n version: string\r\n groups: Record<string, IMediaRightGroup<O>>\r\n}\r\n\r\nexport interface IMediaRightProvider extends IMediaRightOptions {\r\n localStorageKey: string\r\n store: MediaRightEventStore\r\n}\r\n\r\nclass MediaRightProviderDefault implements IMediaRightProvider {\r\n localStorageKey = '__media_right_default__'\r\n store = new MediaRightEventStore()\r\n maxItemsPerGroup = mediaRightStoreOptions.MAX_ITEMS_PER_GROUP\r\n maxGroup = mediaRightStoreOptions.MAX_GROUP\r\n maxNameGroup = mediaRightStoreOptions.MAX_NAME_GROUP\r\n maxChannels = mediaRightStoreOptions.MAX_CHANNELS\r\n}\r\n\r\nexport class MediaRightService<O = any> {\r\n static key_provider = '__media_right_key_provider__'\r\n\r\n static get provider(): IMediaRightProvider {\r\n const ObjectProvider = createObjectSingleton<IMediaRightProvider>(MediaRightService.key_provider)\r\n return ObjectProvider.get() ?? new MediaRightProviderDefault()\r\n }\r\n\r\n static setProvider(provider: IMediaRightProvider) {\r\n const ObjectProvider = createObjectSingleton<IMediaRightProvider>(MediaRightService.key_provider)\r\n ObjectProvider.set(provider ?? new MediaRightProviderDefault())\r\n }\r\n\r\n static setOptions(options: IMediaRightOptions) {\r\n const provider = MediaRightService.provider\r\n if (options.localStorageKey !== undefined) provider.localStorageKey = options.localStorageKey\r\n if (options.maxItemsPerGroup !== undefined) provider.maxItemsPerGroup = options.maxItemsPerGroup\r\n if (options.maxGroup !== undefined) provider.maxGroup = options.maxGroup\r\n if (options.maxNameGroup !== undefined) provider.maxNameGroup = options.maxNameGroup\r\n if (options.maxChannels !== undefined) provider.maxChannels = options.maxChannels\r\n MediaRightService.setProvider(provider)\r\n }\r\n\r\n initialize() {\r\n MediaRightService.provider.store.emit('requestState', {})\r\n }\r\n\r\n subscribe(event: string, callback: (...args: any[]) => void) {\r\n return MediaRightService.provider.store.subscribe(event as any, callback as any)\r\n }\r\n\r\n // Group operations\r\n getGroups(): IMediaRightGroup<O>[] {\r\n const storedData = this.loadFromLocalStorage()\r\n return Object.values(storedData.groups ?? {})\r\n }\r\n\r\n getGroupsMap(): Record<string, IMediaRightGroup<O>> {\r\n const storedData = this.loadFromLocalStorage()\r\n return storedData.groups ?? {}\r\n }\r\n\r\n getGroup(groupId: string): IMediaRightGroup<O> | undefined {\r\n const storedData = this.loadFromLocalStorage()\r\n return storedData.groups?.[groupId]\r\n }\r\n\r\n addGroup(group: Omit<IMediaRightGroup<O>, 'id' | 'createdAt' | 'items' | 'channels'>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n\r\n // Validate max groups limit\r\n const currentGroupCount = Object.keys(storedData.groups).length\r\n const maxGroup = MediaRightService.provider.maxGroup!\r\n if (currentGroupCount >= maxGroup) {\r\n throw new Error(`Maximum playlist limit reached (${maxGroup})`)\r\n }\r\n\r\n // Validate group name length\r\n const maxNameGroup = MediaRightService.provider.maxNameGroup!\r\n if (group.name && group.name.length > maxNameGroup) {\r\n throw new Error(`Playlist name exceeds maximum length (${maxNameGroup})`)\r\n }\r\n\r\n const newGroup: IMediaRightGroup<O> = { ...group, id: uuidv4(), createdAt: Date.now(), items: [], channels: [] }\r\n const updatedGroups = { ...storedData.groups, [newGroup.id]: newGroup }\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n updateGroup(groupId: string, updates: Partial<Pick<IMediaRightGroup<O>, 'name'>>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n if (storedData.groups[groupId]) {\r\n // Validate group name length if updating name\r\n const maxNameGroup = MediaRightService.provider.maxNameGroup!\r\n if (updates.name && updates.name.length > maxNameGroup) {\r\n throw new Error(`Playlist name exceeds maximum length (${maxNameGroup})`)\r\n }\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: { ...storedData.groups[groupId], ...updates } }\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n }\r\n\r\n removeGroup(groupId: string): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const updatedGroups = { ...storedData.groups }\r\n delete updatedGroups[groupId]\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n // Channel operations\r\n addChannel(groupId: string, channel: Omit<IMediaRightChannel, 'Id'>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n // Validate group existence\r\n if (!group) throw new Error(`Playlist ${groupId} not found`)\r\n\r\n // Validate max channels limit\r\n const maxChannels = MediaRightService.provider.maxChannels!\r\n if (group.channels.length >= maxChannels) {\r\n throw new Error(`Playlist ${groupId} has reached maximum channels limit (${maxChannels})`)\r\n }\r\n\r\n const newChannel: IMediaRightChannel = { ...channel, Id: uuidv4() }\r\n const updatedGroup = { ...group, channels: [...group.channels, newChannel] }\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: updatedGroup }\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n updateChannel(groupId: string, channelId: string, updates: Partial<IMediaRightChannel>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) throw new Error(`Playlist ${groupId} not found`)\r\n\r\n const channelIndex = group.channels.findIndex((c) => c.Id === channelId)\r\n if (channelIndex === -1) throw new Error(`Channel ${channelId} not found in playlist ${groupId}`)\r\n\r\n const updatedChannels = [...group.channels]\r\n updatedChannels[channelIndex] = { ...updatedChannels[channelIndex], ...updates }\r\n\r\n const updatedGroups = {\r\n ...storedData.groups,\r\n [groupId]: { ...group, channels: updatedChannels }\r\n }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n removeChannel(groupId: string, channelId: string): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) throw new Error(`Playlist ${groupId} not found`)\r\n\r\n const channelIndex = group.channels.findIndex((c) => c.Id === channelId)\r\n if (channelIndex === -1) throw new Error(`Channel ${channelId} not found in playlist ${groupId}`)\r\n\r\n const updatedChannels = [...group.channels]\r\n updatedChannels.splice(channelIndex, 1)\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: { ...group, channels: updatedChannels } }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n clearChannels(groupId: string): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) return\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: { ...group, channels: [] } }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n // Item operations\r\n addItem(item: IMediaRightItem<O>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[item.GroupId]\r\n\r\n if (!group) {\r\n throw new Error(`Playlist ${item.GroupId} not found`)\r\n }\r\n\r\n // Validate max items limit (only for new items, not updates)\r\n const existingItemIndex = group.items.findIndex((i) => i.ProductId === item.ProductId)\r\n const maxItemsPerGroup = MediaRightService.provider.maxItemsPerGroup!\r\n if (existingItemIndex === -1 && group.items.length >= maxItemsPerGroup) {\r\n throw new Error(`Playlist ${item.GroupId} has reached maximum items limit (${maxItemsPerGroup})`)\r\n }\r\n\r\n let updatedItems: IMediaRightItem<O>[]\r\n\r\n if (existingItemIndex >= 0) {\r\n updatedItems = [...group.items]\r\n updatedItems[existingItemIndex] = item\r\n } else {\r\n updatedItems = [...group.items, item]\r\n }\r\n\r\n const updatedGroups = { ...storedData.groups, [item.GroupId]: { ...group, items: updatedItems } }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n updateItem(groupId: string, productId: string, updates: Partial<IMediaRightItem<O>>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) throw new Error(`Playlist ${groupId} not found`)\r\n\r\n const itemIndex = group.items.findIndex((i) => i.ProductId === productId)\r\n if (itemIndex === -1) throw new Error(`Item ${productId} not found in playlist ${groupId}`)\r\n\r\n const updatedItems = [...group.items]\r\n updatedItems[itemIndex] = { ...updatedItems[itemIndex], ...updates }\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: { ...group, items: updatedItems } }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n removeItem(groupId: string, productId: string): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) throw new Error(`Playlist ${groupId} not found`)\r\n\r\n const updatedItems = group.items.filter((i) => i.ProductId !== productId)\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: { ...group, items: updatedItems } }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n clearAll(): void {\r\n this.saveToLocalStorage({})\r\n }\r\n\r\n private loadFromLocalStorage(): IMediaRightMetadata<O> {\r\n const defaultValue: IMediaRightMetadata<O> = { version: '1.0', groups: {} }\r\n let data = defaultValue\r\n\r\n try {\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n const temp = localStorage.getItem(MediaRightService.provider.localStorageKey)\r\n const tempParsed = temp ? JSON.parse(temp) : null\r\n if (tempParsed?.groups && Object.keys(tempParsed.groups).length > 0) {\r\n data = tempParsed\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Error loading playlist from localStorage:', error)\r\n }\r\n\r\n return data\r\n }\r\n\r\n private saveToLocalStorage(groups: Record<string, IMediaRightGroup<O>>) {\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n if (MediaRightService.provider.localStorageKey) {\r\n const value: IMediaRightMetadata<O> = { version: '1.0', groups }\r\n localStorage.setItem(MediaRightService.provider.localStorageKey, JSON.stringify(value))\r\n MediaRightService.provider.store.emit('stateChange', { groups })\r\n } else {\r\n console.warn('No localStorageKey provided, skipping storage')\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const mediaRightService = new MediaRightService()\r\n"],"names":["MediaRightProviderDefault","_createClass","_classCallCheck","_defineProperty","this","MediaRightEventStore","mediaRightStoreOptions","MAX_ITEMS_PER_GROUP","MAX_GROUP","MAX_NAME_GROUP","MAX_CHANNELS","MediaRightService","key","value","provider","store","emit","event","callback","subscribe","_storedData$groups","storedData","loadFromLocalStorage","Object","values","groups","_storedData$groups2","groupId","_storedData$groups3","group","currentGroupCount","keys","length","maxGroup","Error","concat","maxNameGroup","name","newGroup","_objectSpread","id","uuidv4","createdAt","Date","now","items","channels","updatedGroups","saveToLocalStorage","updates","channel","maxChannels","newChannel","Id","updatedGroup","_toConsumableArray","channelId","channelIndex","findIndex","c","updatedChannels","splice","item","GroupId","updatedItems","existingItemIndex","i","ProductId","maxItemsPerGroup","productId","itemIndex","filter","data","version","globalThis","localStorage","temp","getItem","localStorageKey","tempParsed","JSON","parse","error","console","setItem","stringify","warn","get","_ObjectProvider$get","createObjectSingleton","key_provider","set","options","undefined","setProvider","mediaRightService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sources":["../../src/media-right/service.ts"],"sourcesContent":["import { createObjectSingleton } from 'dinocollab-core/utils'\r\nimport { mediaRightDefaultOptions } from './configs'\r\nimport { MediaRightEventStore } from './event-store'\r\nimport { IMediaRightGroup, IMediaRightItem, IMediaRightChannel, IMediaRightOptions } from './types'\r\nimport { v4 as uuidv4 } from 'uuid'\r\n\r\nexport interface IMediaRightMetadata<O = any> {\r\n version: string\r\n groups: Record<string, IMediaRightGroup<O>>\r\n}\r\n\r\nexport interface IMediaRightProvider extends Partial<IMediaRightOptions> {\r\n localStorageKey: string\r\n store: MediaRightEventStore\r\n}\r\n\r\nclass MediaRightProviderDefault implements IMediaRightProvider {\r\n localStorageKey = '__media_right_default__'\r\n store = new MediaRightEventStore()\r\n maxItemsPerGroup = mediaRightDefaultOptions.MAX_ITEMS_PER_GROUP\r\n maxGroup = mediaRightDefaultOptions.MAX_GROUP\r\n maxNameGroup = mediaRightDefaultOptions.MAX_NAME_GROUP\r\n maxChannels = mediaRightDefaultOptions.MAX_CHANNELS\r\n}\r\n\r\nexport class MediaRightService<O = any> {\r\n static key_provider = '__media_right_key_provider__'\r\n\r\n static get provider(): Required<IMediaRightProvider> {\r\n const ObjectProvider = createObjectSingleton<IMediaRightProvider>(MediaRightService.key_provider)\r\n return ObjectProvider.get() ?? new MediaRightProviderDefault()\r\n }\r\n\r\n static setProvider(provider: IMediaRightProvider) {\r\n const ObjectProvider = createObjectSingleton<IMediaRightProvider>(MediaRightService.key_provider)\r\n ObjectProvider.set(provider ?? new MediaRightProviderDefault())\r\n }\r\n\r\n static setOptions(options: Partial<IMediaRightOptions>) {\r\n const provider = MediaRightService.provider\r\n if (options.localStorageKey !== undefined) provider.localStorageKey = options.localStorageKey\r\n if (options.maxItemsPerGroup !== undefined) provider.maxItemsPerGroup = options.maxItemsPerGroup\r\n if (options.maxGroup !== undefined) provider.maxGroup = options.maxGroup\r\n if (options.maxNameGroup !== undefined) provider.maxNameGroup = options.maxNameGroup\r\n if (options.maxChannels !== undefined) provider.maxChannels = options.maxChannels\r\n MediaRightService.setProvider(provider)\r\n }\r\n\r\n // option\r\n getOptions(): IMediaRightOptions {\r\n const provider = MediaRightService.provider\r\n return {\r\n localStorageKey: provider.localStorageKey,\r\n maxItemsPerGroup: provider.maxItemsPerGroup,\r\n maxGroup: provider.maxGroup,\r\n maxNameGroup: provider.maxNameGroup,\r\n maxChannels: provider.maxChannels\r\n }\r\n }\r\n\r\n initialize() {\r\n MediaRightService.provider.store.emit('requestState', {})\r\n }\r\n\r\n subscribe(event: string, callback: (...args: any[]) => void) {\r\n return MediaRightService.provider.store.subscribe(event as any, callback as any)\r\n }\r\n\r\n // Group operations\r\n getGroups(): IMediaRightGroup<O>[] {\r\n const storedData = this.loadFromLocalStorage()\r\n return Object.values(storedData.groups ?? {})\r\n }\r\n\r\n getGroupsMap(): Record<string, IMediaRightGroup<O>> {\r\n const storedData = this.loadFromLocalStorage()\r\n return storedData.groups ?? {}\r\n }\r\n\r\n getGroup(groupId: string): IMediaRightGroup<O> | undefined {\r\n const storedData = this.loadFromLocalStorage()\r\n return storedData.groups?.[groupId]\r\n }\r\n\r\n addGroup(group: Omit<IMediaRightGroup<O>, 'id' | 'createdAt' | 'items' | 'channels'>): IMediaRightGroup<O> {\r\n const storedData = this.loadFromLocalStorage()\r\n\r\n // Validate max groups limit\r\n const currentGroupCount = Object.keys(storedData.groups).length\r\n const maxGroup = MediaRightService.provider.maxGroup!\r\n if (currentGroupCount >= maxGroup) {\r\n throw new Error(`Maximum playlist limit reached (${maxGroup})`)\r\n }\r\n\r\n // Validate group name length\r\n const maxNameGroup = MediaRightService.provider.maxNameGroup!\r\n if (group.name && group.name.length > maxNameGroup) {\r\n throw new Error(`Playlist name exceeds maximum length (${maxNameGroup})`)\r\n }\r\n\r\n const newGroup: IMediaRightGroup<O> = { ...group, id: uuidv4(), createdAt: Date.now(), items: [], channels: [] }\r\n const updatedGroups = { ...storedData.groups, [newGroup.id]: newGroup }\r\n this.saveToLocalStorage(updatedGroups)\r\n return newGroup\r\n }\r\n\r\n updateGroup(groupId: string, updates: Partial<Pick<IMediaRightGroup<O>, 'name'>>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n if (storedData.groups[groupId]) {\r\n // Validate group name length if updating name\r\n const maxNameGroup = MediaRightService.provider.maxNameGroup!\r\n if (updates.name && updates.name.length > maxNameGroup) {\r\n throw new Error(`Playlist name exceeds maximum length (${maxNameGroup})`)\r\n }\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: { ...storedData.groups[groupId], ...updates } }\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n }\r\n\r\n removeGroup(groupId: string): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const updatedGroups = { ...storedData.groups }\r\n delete updatedGroups[groupId]\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n // Channel operations\r\n addChannel(groupId: string, channel: Omit<IMediaRightChannel, 'Id'>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n // Validate group existence\r\n if (!group) throw new Error(`Playlist not found`)\r\n\r\n // Validate max channels limit\r\n const maxChannels = MediaRightService.provider.maxChannels!\r\n if (group.channels.length >= maxChannels) {\r\n throw new Error(`Playlist \"${group.name}\" has reached maximum channels limit (${maxChannels})`)\r\n }\r\n\r\n const newChannel: IMediaRightChannel = { ...channel, Id: uuidv4() }\r\n const updatedGroup = { ...group, channels: [...group.channels, newChannel] }\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: updatedGroup }\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n updateChannel(groupId: string, channelId: string, updates: Partial<IMediaRightChannel>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) throw new Error(`Playlist not found`)\r\n\r\n const channelIndex = group.channels.findIndex((c) => c.Id === channelId)\r\n if (channelIndex === -1) throw new Error(`Channel ${channelId} not found in playlist ${group.name}`)\r\n\r\n const updatedChannels = [...group.channels]\r\n updatedChannels[channelIndex] = { ...updatedChannels[channelIndex], ...updates }\r\n\r\n const updatedGroups = {\r\n ...storedData.groups,\r\n [groupId]: { ...group, channels: updatedChannels }\r\n }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n removeChannel(groupId: string, channelId: string): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) throw new Error(`Playlist not found`)\r\n\r\n const channelIndex = group.channels.findIndex((c) => c.Id === channelId)\r\n if (channelIndex === -1) throw new Error(`Channel ${channelId} not found in playlist ${group.name}`)\r\n\r\n const updatedChannels = [...group.channels]\r\n updatedChannels.splice(channelIndex, 1)\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: { ...group, channels: updatedChannels } }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n clearChannels(groupId: string): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) return\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: { ...group, channels: [] } }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n // Item operations\r\n addItem(item: IMediaRightItem<O>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[item.GroupId]\r\n\r\n if (!group) {\r\n throw new Error(`Playlist not found`)\r\n }\r\n\r\n // Validate max items limit (only for new items, not updates)\r\n const existingItemIndex = group.items.findIndex((i) => i.ProductId === item.ProductId)\r\n const maxItemsPerGroup = MediaRightService.provider.maxItemsPerGroup!\r\n if (existingItemIndex === -1 && group.items.length >= maxItemsPerGroup) {\r\n throw new Error(`Playlist \"${group.name}\" has reached maximum items limit (${maxItemsPerGroup})`)\r\n }\r\n\r\n let updatedItems: IMediaRightItem<O>[]\r\n\r\n if (existingItemIndex >= 0) {\r\n updatedItems = [...group.items]\r\n updatedItems[existingItemIndex] = item\r\n } else {\r\n updatedItems = [...group.items, item]\r\n }\r\n\r\n const updatedGroups = { ...storedData.groups, [item.GroupId]: { ...group, items: updatedItems } }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n updateItem(groupId: string, productId: string, updates: Partial<IMediaRightItem<O>>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) throw new Error(`Playlist not found`)\r\n\r\n const itemIndex = group.items.findIndex((i) => i.ProductId === productId)\r\n if (itemIndex === -1) throw new Error(`Item ${productId} not found in playlist ${group.name}`)\r\n\r\n const updatedItems = [...group.items]\r\n updatedItems[itemIndex] = { ...updatedItems[itemIndex], ...updates }\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: { ...group, items: updatedItems } }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n removeItem(groupId: string, productId: string): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) throw new Error(`Playlist not found`)\r\n\r\n const updatedItems = group.items.filter((i) => i.ProductId !== productId)\r\n\r\n const updatedGroups = { ...storedData.groups, [groupId]: { ...group, items: updatedItems } }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n clearAll(): void {\r\n this.saveToLocalStorage({})\r\n }\r\n\r\n private loadFromLocalStorage(): IMediaRightMetadata<O> {\r\n const defaultValue: IMediaRightMetadata<O> = { version: '1.0', groups: {} }\r\n let data = defaultValue\r\n\r\n try {\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n const temp = localStorage.getItem(MediaRightService.provider.localStorageKey)\r\n const tempParsed = temp ? JSON.parse(temp) : null\r\n if (tempParsed?.groups && Object.keys(tempParsed.groups).length > 0) {\r\n data = tempParsed\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Error loading playlist from localStorage:', error)\r\n }\r\n\r\n return data\r\n }\r\n\r\n private saveToLocalStorage(groups: Record<string, IMediaRightGroup<O>>) {\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n if (MediaRightService.provider.localStorageKey) {\r\n const value: IMediaRightMetadata<O> = { version: '1.0', groups }\r\n localStorage.setItem(MediaRightService.provider.localStorageKey, JSON.stringify(value))\r\n MediaRightService.provider.store.emit('stateChange', { groups })\r\n } else {\r\n console.warn('No localStorageKey provided, skipping storage')\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const mediaRightService = new MediaRightService()\r\n"],"names":["MediaRightProviderDefault","_createClass","_classCallCheck","_defineProperty","this","MediaRightEventStore","mediaRightDefaultOptions","MAX_ITEMS_PER_GROUP","MAX_GROUP","MAX_NAME_GROUP","MAX_CHANNELS","MediaRightService","key","value","provider","localStorageKey","maxItemsPerGroup","maxGroup","maxNameGroup","maxChannels","store","emit","event","callback","subscribe","_storedData$groups","storedData","loadFromLocalStorage","Object","values","groups","_storedData$groups2","groupId","_storedData$groups3","group","currentGroupCount","keys","length","Error","concat","name","newGroup","_objectSpread","id","uuidv4","createdAt","Date","now","items","channels","updatedGroups","saveToLocalStorage","updates","channel","newChannel","Id","updatedGroup","_toConsumableArray","channelId","channelIndex","findIndex","c","updatedChannels","splice","item","GroupId","updatedItems","existingItemIndex","i","ProductId","productId","itemIndex","filter","data","version","globalThis","localStorage","temp","getItem","tempParsed","JSON","parse","error","console","setItem","stringify","warn","get","_ObjectProvider$get","createObjectSingleton","key_provider","set","options","undefined","setProvider","mediaRightService"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../src/media-right/types.ts"],"sourcesContent":["/**\r\n * Channel information for media rights groups\r\n */\r\nexport enum EChannelType {\r\n Youtube = 'Youtube',\r\n Other = 'Other'\r\n}\r\n\r\nexport interface IMediaRightChannelCreate {\r\n /** URL of the channel */\r\n ChannelUrl: string\r\n /** Name of the channel */\r\n Name: string\r\n /** Type of the channel */\r\n ChannelType: EChannelType\r\n /** Additional custom information */\r\n CustomInfo: string\r\n}\r\n\r\nexport interface IMediaRightChannel extends IMediaRightChannelCreate {\r\n Id: string\r\n}\r\n\r\n/**\r\n * Cart group structure\r\n */\r\nexport interface IMediaRightGroup<O = any> {\r\n /** Unique identifier for the group */\r\n id: string\r\n /** Group name */\r\n name: string\r\n /** Creation timestamp */\r\n createdAt: number\r\n /** Items in this group */\r\n items: IMediaRightItem<O>[]\r\n /** Channels associated with this group */\r\n channels: IMediaRightChannel[]\r\n}\r\n\r\n/**\r\n * Shopping cart item structure\r\n */\r\nexport interface IMediaRightItem<O = any> {\r\n /** Unique identifier for the cart item */\r\n ProductId: string\r\n /** Group ID this item belongs to */\r\n GroupId: string\r\n /** The social URL associated with the product */\r\n // SocialUrl?: string\r\n /** The type of the product, e.g., Media or Audio */\r\n Type?: string\r\n /** The name of the product */\r\n ProductName?: string\r\n /** The picture URL associated with the product */\r\n PictureUrl: string\r\n /** This will be the ID used to stream video or retrieve audio. */\r\n MediaId: string\r\n /** Additional options for the media item */\r\n Options?: O\r\n}\r\n\r\n/**\r\n * Cart summary data\r\n */\r\nexport interface ICartSummary {\r\n totalGroups: number\r\n totalItems: number\r\n totalPrice: number\r\n}\r\n\r\nexport interface IMediaRightOptions {\r\n localStorageKey
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../src/media-right/types.ts"],"sourcesContent":["/**\r\n * Channel information for media rights groups\r\n */\r\nexport enum EChannelType {\r\n Youtube = 'Youtube',\r\n Other = 'Other'\r\n}\r\n\r\nexport interface IMediaRightChannelCreate {\r\n /** URL of the channel */\r\n ChannelUrl: string\r\n /** Name of the channel */\r\n Name: string\r\n /** Type of the channel */\r\n ChannelType: EChannelType\r\n /** Additional custom information */\r\n CustomInfo: string\r\n}\r\n\r\nexport interface IMediaRightChannel extends IMediaRightChannelCreate {\r\n Id: string\r\n}\r\n\r\n/**\r\n * Cart group structure\r\n */\r\nexport interface IMediaRightGroup<O = any> {\r\n /** Unique identifier for the group */\r\n id: string\r\n /** Group name */\r\n name: string\r\n /** Creation timestamp */\r\n createdAt: number\r\n /** Items in this group */\r\n items: IMediaRightItem<O>[]\r\n /** Channels associated with this group */\r\n channels: IMediaRightChannel[]\r\n}\r\n\r\n/**\r\n * Shopping cart item structure\r\n */\r\nexport interface IMediaRightItem<O = any> {\r\n /** Unique identifier for the cart item */\r\n ProductId: string\r\n /** Group ID this item belongs to */\r\n GroupId: string\r\n /** The social URL associated with the product */\r\n // SocialUrl?: string\r\n /** The type of the product, e.g., Media or Audio */\r\n Type?: string\r\n /** The name of the product */\r\n ProductName?: string\r\n /** The picture URL associated with the product */\r\n PictureUrl: string\r\n /** This will be the ID used to stream video or retrieve audio. */\r\n MediaId: string\r\n /** Additional options for the media item */\r\n Options?: O\r\n}\r\n\r\n/**\r\n * Cart summary data\r\n */\r\nexport interface ICartSummary {\r\n totalGroups: number\r\n totalItems: number\r\n totalPrice: number\r\n}\r\n\r\nexport interface IMediaRightOptions {\r\n localStorageKey: string\r\n maxItemsPerGroup: number\r\n maxGroup: number\r\n maxNameGroup: number\r\n maxChannels: number\r\n}\r\n"],"names":["EChannelType"],"mappings":"IAGYA,GAAZ,SAAYA,GACVA,EAAA,QAAA,UACAA,EAAA,MAAA,OACD,CAHD,CAAYA,IAAAA,EAGX,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{Button as r,TextField as a}from"@mui/material";import n from"@mui/icons-material/Add";
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{Button as r,TextField as a}from"@mui/material";import n from"@mui/icons-material/Add";var e=function(a){var e=a.onClick;return t(r,{fullWidth:!0,size:"small",variant:"outlined",startIcon:t(n,{}),onClick:e,sx:{justifyContent:"flex-start",textTransform:"none",color:"primary.main",borderStyle:"dashed"},children:"New Playlist"})},i=function(r){var n=r.value,e=r.onChange,i=r.inputProps;return t(a,{fullWidth:!0,size:"small",label:"Playlist name",value:n,onChange:function(t){return e(t.target.value)},placeholder:"Enter playlist name",autoFocus:!0,variant:"outlined",inputProps:i})};export{e as NewCollectionButton,i as NewCollectionInput};
|
|
2
2
|
//# sourceMappingURL=unit.control.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit.control.js","sources":["../../src/media-right/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 {
|
|
1
|
+
{"version":3,"file":"unit.control.js","sources":["../../src/media-right/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 type { InputBaseComponentProps } from '@mui/material'\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 Playlist\r\n </Button>\r\n)\r\n\r\nexport interface NewCollectionInputProps {\r\n value: string\r\n onChange: (value: string) => void\r\n inputProps?: InputBaseComponentProps\r\n}\r\n\r\nexport const NewCollectionInput: FC<NewCollectionInputProps> = ({ value, onChange, inputProps }) => (\r\n <TextField\r\n fullWidth\r\n size='small'\r\n label='Playlist name'\r\n value={value}\r\n onChange={(e) => onChange(e.target.value)}\r\n placeholder='Enter playlist name'\r\n autoFocus\r\n variant='outlined'\r\n inputProps={inputProps}\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","inputProps","TextField","label","e","target","placeholder","autoFocus"],"mappings":"yIASaA,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,gBAGM,EASEC,EAAkD,SAAhCC,GAAA,IAAmCC,EAAKD,EAALC,MAAOC,EAAQF,EAARE,SAAUC,EAAUH,EAAVG,WAAU,OAC3FjB,EAACkB,EAAS,CACRhB,WAAS,EACTC,KAAK,QACLgB,MAAM,gBACNJ,MAAOA,EACPC,SAAU,SAACI,GAAC,OAAKJ,EAASI,EAAEC,OAAON,MAAM,EACzCO,YAAY,sBACZC,WAAS,EACTnB,QAAQ,WACRa,WAAYA,GACZ"}
|
|
@@ -8,11 +8,11 @@ export interface BtnIconAddToPackageProps<T> {
|
|
|
8
8
|
product?: T;
|
|
9
9
|
buttonProps?: ButtonProps;
|
|
10
10
|
tooltipProps?: Partial<TooltipProps>;
|
|
11
|
-
helpProps?: Partial<IconButtonProps> & Record<string,
|
|
11
|
+
helpProps?: Partial<IconButtonProps> & Record<string, unknown>;
|
|
12
12
|
kind?: EBtnAddToPackage;
|
|
13
|
-
|
|
13
|
+
onClick: (item: T, e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
14
14
|
}
|
|
15
|
-
export declare const ButtonIconAddToPackage: <T>({ product, buttonProps, tooltipProps, helpProps, kind,
|
|
15
|
+
export declare const ButtonIconAddToPackage: <T>({ product, buttonProps, tooltipProps, helpProps, kind, onClick }: BtnIconAddToPackageProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
16
16
|
interface ButtonIconAddToPackageSkeletonProps {
|
|
17
17
|
kind?: EBtnAddToPackage;
|
|
18
18
|
buttonProps?: ButtonProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"btn.icon.add-to-package.d.ts","sourceRoot":"","sources":["../../../src/action-license/btn.icon.add-to-package.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE/E,oBAAY,gBAAgB;IAC1B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AACD,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"btn.icon.add-to-package.d.ts","sourceRoot":"","sources":["../../../src/action-license/btn.icon.add-to-package.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE/E,oBAAY,gBAAgB;IAC1B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AACD,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9D,IAAI,CAAC,EAAE,gBAAgB,CAAA;IACvB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;CACnE;AAED,eAAO,MAAM,sBAAsB,+IAuDlC,CAAA;AAID,UAAU,mCAAmC;IAC3C,IAAI,CAAC,EAAE,gBAAgB,CAAA;IACvB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,eAAO,MAAM,8BAA8B,EAAE,EAAE,CAAC,mCAAmC,CAKlF,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Component, ComponentType } from 'react';
|
|
2
|
-
import type { BoxProps } from '@mui/material';
|
|
3
2
|
import type { IFormBase } from 'dinocollab-core/form';
|
|
4
|
-
import {
|
|
3
|
+
import type { BoxProps } from '@mui/material';
|
|
4
|
+
import type { IPricePackage } from '../types';
|
|
5
5
|
import type { IFormQuicklyAddToCartData, IQuicklyAddToCartConfig } from './type';
|
|
6
6
|
interface IState {
|
|
7
7
|
Value?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../src/action-license/quickly-add-to-cart/content.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../src/action-license/quickly-add-to-cart/content.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAOhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAEhF,UAAU,MAAM;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,UAAU,iBAAiB,CAAC,QAAQ,EAAE,OAAO,SAAS,aAAa,CAAE,SAAQ,SAAS,CAAC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClI,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,MAAM,EAAE,uBAAuB,CAAA;CAChC;AAED,qBAAa,eAAe,CAAC,QAAQ,EAAE,OAAO,SAAS,aAAa,CAAE,SAAQ,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IACnI,UAAU,CAAC,EAAE,MAAM,CAAA;gBACP,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC;IAUvD,MAAM;IA6BN,gBAAgB,gDAkCf;IAED,YAAY,MAAO,MAAM,WAAW,CAAC,gBAAgB,CAAC,SAAS,MAAM,UAGpE;CACF;AAMD,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,QAAQ,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAoD/E,CAAA"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { ICartItem } from './types';
|
|
2
2
|
export declare function useCartStore<T extends ICartItem = ICartItem>(): {
|
|
3
3
|
items: T[];
|
|
4
|
+
options: {
|
|
5
|
+
localStorageKey: string | undefined;
|
|
6
|
+
maxItems: number | undefined;
|
|
7
|
+
maxLinks: number | undefined;
|
|
8
|
+
};
|
|
4
9
|
};
|
|
5
10
|
export declare function useCartActions<T extends ICartItem = ICartItem>(): {
|
|
6
11
|
idGetter: (item: T) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/cart/hooks.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGnC,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/cart/hooks.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGnC,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;;;;;;;EA0B3D;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;qBACpC,CAAC;sBAEA,CAAC;qBAIF,MAAM,WAAW,QAAQ,CAAC,CAAC;0BAItB,MAAM,WAAW,QAAQ,CAAC,CAAC;yBAI5B,MAAM;;EAanC"}
|
|
@@ -18,6 +18,11 @@ export declare class CartService<T extends ICartItem = ICartItem> {
|
|
|
18
18
|
}): void;
|
|
19
19
|
initialize(): void;
|
|
20
20
|
subscribe(event: string, callback: (...args: any[]) => void): (() => void) | undefined;
|
|
21
|
+
getOptions(): {
|
|
22
|
+
localStorageKey: string | undefined;
|
|
23
|
+
maxItems: number | undefined;
|
|
24
|
+
maxLinks: number | undefined;
|
|
25
|
+
};
|
|
21
26
|
getCarts(): T[];
|
|
22
27
|
addToCart(cartItem: T | T[]): void;
|
|
23
28
|
removeFromCart(cartItem: T | T[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/cart/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,CAAC,EAAE,CAAA;CACX;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,KAAK,CAAC,EAAE,cAAc,CAAA;CACvB;AASD,qBAAa,WAAW,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACtD,MAAM,CAAC,YAAY,SAA0B;IAC7C,MAAM,KAAK,QAAQ,IAAI,aAAa,CAGnC;IACD,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa;IAI1C,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ7F,UAAU;IAIV,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAI3D,QAAQ,IAAI,CAAC,EAAE;IAKf,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAOlC,cAAc,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAOvC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAMxD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAa7D,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,WAAW,CAelB;IAED,OAAO,CAAC,qBAAqB;CAM9B;AAED,eAAO,MAAM,WAAW,6BAA+B,CAAA"}
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/cart/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,CAAC,EAAE,CAAA;CACX;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,KAAK,CAAC,EAAE,cAAc,CAAA;CACvB;AASD,qBAAa,WAAW,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACtD,MAAM,CAAC,YAAY,SAA0B;IAC7C,MAAM,KAAK,QAAQ,IAAI,aAAa,CAGnC;IACD,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa;IAI1C,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ7F,UAAU;IAIV,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAI3D,UAAU;;;;;IAKV,QAAQ,IAAI,CAAC,EAAE;IAKf,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAOlC,cAAc,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAOvC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAMxD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAa7D,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,WAAW,CAelB;IAED,OAAO,CAAC,qBAAqB;CAM9B;AAED,eAAO,MAAM,WAAW,6BAA+B,CAAA"}
|
|
@@ -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,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE3E,eAAO,MAAM,IAAI,EAAE,aAAa,CAAC,UAAU,CAMxC,CAAA;AAEH,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,SAAS,
|
|
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,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE3E,eAAO,MAAM,IAAI,EAAE,aAAa,CAAC,UAAU,CAMxC,CAAA;AAEH,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,SAAS,CAuC7C,CAAA;AAEH,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,eAAe,CAOhD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../../src/factory/cart-content/styled.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAS,UAAU,EAAU,MAAM,eAAe,CAAA;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,eAAO,MAAM,IAAI,EAAE,aAAa,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../../src/factory/cart-content/styled.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAS,UAAU,EAAU,MAAM,eAAe,CAAA;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,eAAO,MAAM,IAAI,EAAE,aAAa,CAAC,QAAQ,CAOtC,CAAA;AAEH,eAAO,MAAM,MAAM,EAAE,aAAa,CAAC,UAAU,CAgB1C,CAAA;AAEH,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,UAAU,CAAqC,CAAA;AAEtF,eAAO,MAAM,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAqE,CAAA;AAE9G,eAAO,MAAM,KAAK,EAAE,aAAa,CAAC,QAAQ,CAKvC,CAAA;AAEH,eAAO,MAAM,MAAM,EAAE,aAAa,CAAC,QAAQ,CAaxC,CAAA;AAEH,eAAe,IAAI,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentType } from 'react';
|
|
2
2
|
import IFactoryCartProps, { ICartOptions } from './types';
|
|
3
|
-
export declare
|
|
3
|
+
export declare function createCartItem<T = {}>(configs?: ICartOptions<T>): ComponentType<IFactoryCartProps<T>>;
|
|
4
4
|
export default createCartItem;
|
|
5
5
|
//# sourceMappingURL=create.cart-item.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.cart-item.d.ts","sourceRoot":"","sources":["../../../../src/factory/cart-item/create.cart-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAW,MAAM,OAAO,CAAA;AAG9C,OAAO,iBAAiB,EAAE,EAAgB,YAAY,EAAE,MAAM,SAAS,CAAA;AAGvE,
|
|
1
|
+
{"version":3,"file":"create.cart-item.d.ts","sourceRoot":"","sources":["../../../../src/factory/cart-item/create.cart-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAW,MAAM,OAAO,CAAA;AAG9C,OAAO,iBAAiB,EAAE,EAAgB,YAAY,EAAE,MAAM,SAAS,CAAA;AAGvE,wBAAgB,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAqDrG;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../../src/factory/cart-item/styled.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAEzE,eAAO,MAAM,QAAQ,EAAE,aAAa,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../../src/factory/cart-item/styled.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAEzE,eAAO,MAAM,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAe1C,CAAA;AAEH,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,uBAAuB,CAOxD,CAAA;AAEH,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,QAAQ,CAQ9C,CAAA;AAEF,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,QAAQ,CAa3C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../../src/layout-global/configs.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAA;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,eAAO,MAAM,UAAU,qBAAqB,CAAA;AAC5C,eAAO,MAAM,aAAa,SAAU,eAAe,WAA6B,CAAA;AAEhF,eAAO,MAAM,WAAW,yBAAyB,CAAA;AACjD,eAAO,MAAM,cAAc,SAAU,eAAe,WAA8B,CAAA;AAElF,eAAO,MAAM,gBAAgB,EAAE,UAAU,EAMxC,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAchD,CAAA;AAMD,eAAO,MAAM,WAAW,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAuD9E,CAAA;AAEF,eAAO,MAAM,oBAAoB,YAAa,eAAe,KAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../../src/layout-global/configs.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAA;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,eAAO,MAAM,UAAU,qBAAqB,CAAA;AAC5C,eAAO,MAAM,aAAa,SAAU,eAAe,WAA6B,CAAA;AAEhF,eAAO,MAAM,WAAW,yBAAyB,CAAA;AACjD,eAAO,MAAM,cAAc,SAAU,eAAe,WAA8B,CAAA;AAElF,eAAO,MAAM,gBAAgB,EAAE,UAAU,EAMxC,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAchD,CAAA;AAMD,eAAO,MAAM,WAAW,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAuD9E,CAAA;AAEF,eAAO,MAAM,oBAAoB,YAAa,eAAe,KAAG,QAAQ,EA8BvE,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,EAUtE,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,EAapE,CAAA;AAED,eAAO,MAAM,iBAAiB,uLAAuL,CAAA;AAErN,eAAO,MAAM,gBAAgB,cAG5B,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,EAMzE,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,EAAE,EAiBxE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../../src/media-right/configs.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../../src/media-right/configs.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB;;;;;CAMpC,CAAA"}
|
|
@@ -1,22 +1,11 @@
|
|
|
1
1
|
import type { FC } from 'react';
|
|
2
2
|
import type { IGuideStepsProps } from '../guide-steps';
|
|
3
|
-
import type {
|
|
3
|
+
import type { IMediaRightItem } from '../types';
|
|
4
4
|
export interface IGroupSelectorModalProps {
|
|
5
5
|
open: boolean;
|
|
6
6
|
guideStepsProps?: IGuideStepsProps;
|
|
7
7
|
onClose: () => void;
|
|
8
|
-
onConfirm: (groupIdsToAdd: string[], groupIdsToRemove: string[], newGroupName?: string) => void;
|
|
9
|
-
groups: IMediaRightGroup[];
|
|
10
8
|
cartItem: IMediaRightItem | null;
|
|
11
9
|
}
|
|
12
|
-
export declare const
|
|
13
|
-
export interface IShowGroupSelectorModalProps {
|
|
14
|
-
cartItem: IMediaRightItem | null;
|
|
15
|
-
groups: IMediaRightGroup[];
|
|
16
|
-
guideStepsProps?: IGuideStepsProps;
|
|
17
|
-
addGroup: (group: Omit<IMediaRightGroup, 'createdAt' | 'items' | 'channels'>) => void;
|
|
18
|
-
addItem: (item: IMediaRightItem) => void;
|
|
19
|
-
removeItem: (groupId: string, productId: string) => void;
|
|
20
|
-
}
|
|
21
|
-
export declare const showGroupSelectorModal: ({ cartItem, groups, guideStepsProps, addGroup, addItem, removeItem }: IShowGroupSelectorModalProps) => void;
|
|
10
|
+
export declare const ModalAddMediaRight: FC<IGroupSelectorModalProps>;
|
|
22
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-right/group-selector/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-right/group-selector/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAA;AAM1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAA;IACb,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;CACjC;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,wBAAwB,CAiK3D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal-header.d.ts","sourceRoot":"","sources":["../../../../src/media-right/group-selector/modal-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;IAChC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"modal-header.d.ts","sourceRoot":"","sources":["../../../../src/media-right/group-selector/modal-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;IAChC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA+B5C,CAAA"}
|
|
@@ -3,12 +3,15 @@ import type { IMediaRightGroup } from '../types';
|
|
|
3
3
|
export interface CollectionItemProps {
|
|
4
4
|
group: IMediaRightGroup;
|
|
5
5
|
isSelected: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
6
7
|
onSelect: (groupId: string) => void;
|
|
7
8
|
}
|
|
8
9
|
export interface CollectionsListProps {
|
|
9
10
|
groups: IMediaRightGroup[];
|
|
10
11
|
selectedGroupIds: string[];
|
|
12
|
+
activeGroupIds: string[];
|
|
11
13
|
onGroupSelect: (groupId: string) => void;
|
|
14
|
+
tooltipDisabled?: string;
|
|
12
15
|
}
|
|
13
16
|
export declare const CollectionsList: FC<CollectionsListProps>;
|
|
14
17
|
//# sourceMappingURL=units.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../../../src/media-right/group-selector/units.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAG/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,gBAAgB,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC;
|
|
1
|
+
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../../../src/media-right/group-selector/units.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAG/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,gBAAgB,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC;AA8BD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAwBpD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-right/guide-steps/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE7E,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-right/guide-steps/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE7E,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,gBAAgB,CA2H3C,CAAA"}
|
|
@@ -22,10 +22,6 @@ export declare const areDuplicatedLink: (linkString?: string, value?: string) =>
|
|
|
22
22
|
* Generate unique group ID
|
|
23
23
|
*/
|
|
24
24
|
export declare const generateGroupId: () => string;
|
|
25
|
-
/**
|
|
26
|
-
* Validate group limit
|
|
27
|
-
*/
|
|
28
|
-
export declare const canAddGroup: (group: IMediaRightGroup[]) => boolean;
|
|
29
25
|
/**
|
|
30
26
|
* Validate group item limit
|
|
31
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/media-right/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/media-right/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,UAAU,MAAM,KAAQ,MAAM,EAI9D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,gBAAgB,MAAM,UAAc,MAAM,YAIvE,CAAA;AAED;;GAEG;AAeH;;GAEG;AAWH;;GAEG;AACH,eAAO,MAAM,eAAe,cAE3B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAAW,gBAAgB,aAAY,MAAM,KAAS,OAEnF,CAAA"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { IMediaRightChannel, IMediaRightChannelCreate, IMediaRightGroup, IMediaRightItem } from './types';
|
|
2
|
-
export
|
|
3
|
-
localStorageKey?: string;
|
|
4
|
-
}
|
|
1
|
+
import type { IMediaRightChannel, IMediaRightChannelCreate, IMediaRightGroup, IMediaRightItem, IMediaRightOptions } from './types';
|
|
2
|
+
export type IMediaRightStoreOptions = IMediaRightOptions;
|
|
5
3
|
export declare function useMediaRightStore<O = any>(params?: IMediaRightStoreOptions): {
|
|
6
4
|
groups: IMediaRightGroup<O>[];
|
|
7
5
|
groupsMap: Record<string, IMediaRightGroup<O>>;
|
|
6
|
+
options: IMediaRightOptions;
|
|
8
7
|
};
|
|
9
8
|
export declare function useMediaRightActions<O = any>(params?: IMediaRightStoreOptions): {
|
|
10
|
-
addGroup: (group: Omit<IMediaRightGroup<O>, 'id' | 'createdAt' | 'items' | 'channels'>) =>
|
|
9
|
+
addGroup: (group: Omit<IMediaRightGroup<O>, 'id' | 'createdAt' | 'items' | 'channels'>) => IMediaRightGroup<any>;
|
|
11
10
|
updateGroup: (groupId: string, updates: Partial<Pick<IMediaRightGroup<O>, 'name'>>) => void;
|
|
12
11
|
removeGroup: (groupId: string) => void;
|
|
13
12
|
addItem: (item: IMediaRightItem<O>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/media-right/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/media-right/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAElI,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAA;AAExD,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,uBAAuB;;;;EA6B3E;AAED,wBAAgB,oBAAoB,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,uBAAuB;sBASnD,KAAK,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;2BAI/D,MAAM,WAAW,QAAQ,KAAK,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;2BAI3D,MAAM;oBAIb,gBAAgB,CAAC,CAAC;0BAIZ,MAAM,aAAa,MAAM,WAAW,QAAQ,gBAAgB,CAAC,CAAC,CAAC;0BAI/D,MAAM,aAAa,MAAM;0BAQzB,MAAM,WAAW,wBAAwB;6BAItC,MAAM,aAAa,MAAM,WAAW,QAAQ,kBAAkB,CAAC;6BAI/D,MAAM,aAAa,MAAM;6BAIzB,MAAM;;EAiBvC"}
|