dinocollab-shared 1.2.11 → 1.2.12
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/auth/profile.js +1 -1
- package/dist/cart/event-store.js +2 -0
- package/dist/cart/event-store.js.map +1 -0
- package/dist/cart/hooks.js +2 -0
- package/dist/cart/hooks.js.map +1 -0
- package/dist/cart/index.js +1 -1
- package/dist/cart/service.js +2 -0
- package/dist/cart/service.js.map +1 -0
- package/dist/cart/widget.js +1 -1
- package/dist/cart/widget.js.map +1 -1
- package/dist/components/no-data-panel.js +1 -1
- package/dist/components/no-data-panel.js.map +1 -1
- package/dist/layout-global/app-footer.js +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/app-theme-provider.js +1 -1
- package/dist/layout-global/app-theme-provider.js.map +1 -1
- package/dist/layout-global/configs.js +1 -1
- package/dist/layout-global/configs.js.map +1 -1
- package/dist/layout-global/index.js +1 -1
- package/dist/media-right/event-store.js +2 -0
- package/dist/media-right/event-store.js.map +1 -0
- 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/units.js +1 -1
- package/dist/media-right/group-selector/units.js.map +1 -1
- package/dist/media-right/hooks.js +2 -0
- package/dist/media-right/hooks.js.map +1 -0
- 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/media-list.js +1 -1
- package/dist/media-right/media-widget/media-list.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 +2 -0
- package/dist/media-right/service.js.map +1 -0
- package/dist/types/cart/{cart-store.d.ts → event-store.d.ts} +1 -22
- package/dist/types/cart/event-store.d.ts.map +1 -0
- package/dist/types/cart/{hook.d.ts → hooks.d.ts} +5 -7
- package/dist/types/cart/hooks.d.ts.map +1 -0
- package/dist/types/cart/index.d.ts +2 -1
- package/dist/types/cart/index.d.ts.map +1 -1
- package/dist/types/cart/service.d.ts +28 -0
- package/dist/types/cart/service.d.ts.map +1 -0
- package/dist/types/layout-global/app-header.nav.d.ts.map +1 -1
- package/dist/types/layout-global/app-theme-provider.d.ts +1 -1
- package/dist/types/layout-global/app-theme-provider.d.ts.map +1 -1
- package/dist/types/layout-global/configs.d.ts +1 -1
- package/dist/types/layout-global/configs.d.ts.map +1 -1
- package/dist/types/media-right/event-store.d.ts +27 -0
- package/dist/types/media-right/event-store.d.ts.map +1 -0
- package/dist/types/media-right/group-selector/index.d.ts +4 -3
- package/dist/types/media-right/group-selector/index.d.ts.map +1 -1
- package/dist/types/media-right/group-selector/units.d.ts +1 -1
- package/dist/types/media-right/group-selector/units.d.ts.map +1 -1
- package/dist/types/media-right/{hook.d.ts → hooks.d.ts} +1 -1
- package/dist/types/media-right/hooks.d.ts.map +1 -0
- package/dist/types/media-right/index.d.ts +2 -1
- package/dist/types/media-right/index.d.ts.map +1 -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.map +1 -1
- package/dist/types/media-right/media-widget/media-list.d.ts.map +1 -1
- package/dist/types/media-right/media-widget/styled.d.ts +10 -0
- package/dist/types/media-right/media-widget/styled.d.ts.map +1 -1
- package/dist/types/media-right/service.d.ts +36 -0
- package/dist/types/media-right/service.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/cart/cart-store.js +0 -2
- package/dist/cart/cart-store.js.map +0 -1
- package/dist/cart/hook.js +0 -2
- package/dist/cart/hook.js.map +0 -1
- package/dist/media-right/cart-store.js +0 -2
- package/dist/media-right/cart-store.js.map +0 -1
- package/dist/media-right/hook.js +0 -2
- package/dist/media-right/hook.js.map +0 -1
- package/dist/types/cart/cart-store.d.ts.map +0 -1
- package/dist/types/cart/hook.d.ts.map +0 -1
- package/dist/types/media-right/cart-store.d.ts +0 -48
- package/dist/types/media-right/cart-store.d.ts.map +0 -1
- package/dist/types/media-right/hook.d.ts.map +0 -1
|
@@ -1 +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 { canAddGroup, generateGroupId } from '../helpers'\r\nimport { NewCollectionButton, NewCollectionInput } from '../unit.control'\r\nimport { GuideSteps } from '../guide-steps'\r\nimport type { IGuideStepsProps } from '../guide-steps'\r\n\r\nexport interface IGroupSelectorModalProps {\r\n open: boolean\r\n guideStepsProps?: IGuideStepsProps\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, guideStepsProps, 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 <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 {canAddGroup(groups) &&\r\n (!showNewGroupInput ? (\r\n <NewCollectionButton onClick={handleNewGroupClick} />\r\n ) : (\r\n <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 {guideStepsProps && <GuideSteps iconButtonProps={{ color: 'primary', sx: { mr: 'auto' } }} {...guideStepsProps} />}\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 guideStepsProps?: IGuideStepsProps\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, guideStepsProps, 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 guideStepsProps={guideStepsProps}\r\n groups={groups}\r\n cartItem={cartItem}\r\n />\r\n )\r\n}\r\n"],"names":["GroupSelectorModal","_ref","open","onClose","onConfirm","groups","guideStepsProps","cartItem","_useState","useState","_useState2","_slicedToArray","selectedGroupId","setSelectedGroupId","_useState3","_useState4","showNewGroupInput","setShowNewGroupInput","_useState5","_useState6","newName","setNewName","handleClose","_jsxs","Dialog","maxWidth","fullWidth","disableScrollLock","keepMounted","scroll","children","_jsx","ModalHeader","Box","component","onSubmit","e","preventDefault","trim","DialogContent","Typography","variant","sx","mb","fontWeight","canAddGroup","NewCollectionInput","value","onChange","NewCollectionButton","onClick","CollectionsList","onGroupSelect","groupId","DialogActions","px","pb","GuideSteps","_objectSpread","iconButtonProps","color","mr","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","GroupId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/media-right/group-selector/index.tsx"],"sourcesContent":["import { useState, useEffect, useMemo } 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 { canAddGroup, generateGroupId } from '../helpers'\r\nimport { NewCollectionButton, NewCollectionInput } from '../unit.control'\r\nimport { GuideSteps } from '../guide-steps'\r\nimport type { IGuideStepsProps } from '../guide-steps'\r\n\r\nexport interface IGroupSelectorModalProps {\r\n open: boolean\r\n guideStepsProps?: IGuideStepsProps\r\n onClose: () => void\r\n onConfirm: (groupIdsToAdd: string[], groupIdsToRemove: string[], newGroupName?: 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, guideStepsProps, cartItem }) => {\r\n // Find all groups that contain this item\r\n const currentGroupIds = useMemo(() => {\r\n if (!cartItem?.ProductId) return []\r\n const l = groups.filter((g) => g.items?.some((item) => item.ProductId === cartItem.ProductId))\r\n return l.map((g) => g.id).sort()\r\n }, [groups, cartItem])\r\n\r\n // Auto-select: all current groups if exists, otherwise first group if available\r\n const initialGroupIds = currentGroupIds.length > 0 ? currentGroupIds : groups.length > 0 ? [groups[0].id] : []\r\n\r\n const [selectedGroupIds, setSelectedGroupIds] = useState<string[]>(initialGroupIds)\r\n const [showNewGroupInput, setShowNewGroupInput] = useState(false)\r\n const [newName, setNewName] = useState<string>('')\r\n\r\n // Update selection when modal opens or groups/cartItem changes\r\n useEffect(() => {\r\n if (open) {\r\n const newInitialGroupIds = currentGroupIds.length > 0 ? currentGroupIds : groups.length > 0 ? [groups[0].id] : []\r\n setSelectedGroupIds(newInitialGroupIds)\r\n setShowNewGroupInput(false)\r\n setNewName('')\r\n }\r\n }, [open, currentGroupIds, groups.length])\r\n\r\n // Check if there's any change\r\n const hasChanges = () => {\r\n if (showNewGroupInput && newName.trim()) return true\r\n\r\n // Sort and compare arrays (currentGroupIds is already sorted)\r\n const sortedSelected = [...selectedGroupIds].sort()\r\n\r\n // Check if arrays are different\r\n if (currentGroupIds.length !== sortedSelected.length) return true\r\n\r\n return currentGroupIds.some((id, index) => id !== sortedSelected[index])\r\n }\r\n\r\n const handleSubmit = (e: FormEvent) => {\r\n e.preventDefault()\r\n\r\n // Only proceed if there are changes\r\n if (!hasChanges()) {\r\n handleClose()\r\n return\r\n }\r\n\r\n if (showNewGroupInput && newName.trim()) {\r\n // Create new group and add item to it\r\n onConfirm([], [], newName.trim())\r\n } else {\r\n // Calculate changes\r\n const groupIdsToAdd = selectedGroupIds.filter((id) => !currentGroupIds.includes(id))\r\n const groupIdsToRemove = currentGroupIds.filter((id) => !selectedGroupIds.includes(id))\r\n onConfirm(groupIdsToAdd, groupIdsToRemove)\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n setSelectedGroupIds([])\r\n setShowNewGroupInput(false)\r\n setNewName('')\r\n onClose()\r\n }\r\n\r\n const handleNewGroupClick = () => {\r\n setShowNewGroupInput(true)\r\n }\r\n\r\n const handleGroupSelect = (groupId: string) => {\r\n setSelectedGroupIds((prev) => {\r\n if (prev.includes(groupId)) {\r\n // Uncheck: remove from selection\r\n return prev.filter((id) => id !== groupId)\r\n } else {\r\n // Check: add to selection\r\n return [...prev, groupId]\r\n }\r\n })\r\n setShowNewGroupInput(false)\r\n }\r\n\r\n const isConfirmDisabled = () => {\r\n if (showNewGroupInput) return !newName.trim()\r\n // Allow unchecking all groups (to remove item from all groups)\r\n return false\r\n }\r\n\r\n const getButtonText = () => {\r\n if (showNewGroupInput) return 'Create & Add'\r\n\r\n const changes = hasChanges()\r\n\r\n // Case 1: Item already exists in some groups\r\n if (currentGroupIds.length > 0) {\r\n return changes ? 'Save Changes' : 'OK'\r\n }\r\n\r\n // Case 2: Item doesn't exist in any group yet\r\n return 'Save'\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 <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 {canAddGroup(groups) &&\r\n (!showNewGroupInput ? (\r\n <NewCollectionButton onClick={handleNewGroupClick} />\r\n ) : (\r\n <NewCollectionInput value={newName} onChange={setNewName} />\r\n ))}\r\n <CollectionsList groups={groups} selectedGroupIds={selectedGroupIds} onGroupSelect={handleGroupSelect} />\r\n </DialogContent>\r\n\r\n <DialogActions sx={{ px: 3, pb: 3 }}>\r\n {guideStepsProps && <GuideSteps iconButtonProps={{ color: 'primary', sx: { mr: 'auto' } }} {...guideStepsProps} />}\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 {getButtonText()}\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 guideStepsProps?: IGuideStepsProps\r\n addGroup: (group: Omit<IMediaRightGroup, 'createdAt' | 'items' | 'channels'>) => void\r\n addItem: (item: IMediaRightItem) => void\r\n removeItem: (groupId: string, productId: string) => void\r\n}\r\n\r\nexport const showGroupSelectorModal = ({ cartItem, groups, guideStepsProps, addGroup, addItem, removeItem }: 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 = (groupIdsToAdd: string[], groupIdsToRemove: string[], newGroupName?: string) => {\r\n if (!cartItem) return\r\n\r\n // Create new group if needed\r\n if (newGroupName) {\r\n const newGroupId = generateGroupId()\r\n addGroup({\r\n id: newGroupId,\r\n name: newGroupName\r\n })\r\n // Add item to the new group\r\n const cartItemWithGroup: IMediaRightItem = {\r\n ...cartItem,\r\n GroupId: newGroupId\r\n }\r\n addItem(cartItemWithGroup)\r\n } else {\r\n // Remove from groups\r\n groupIdsToRemove.forEach((groupId) => {\r\n if (cartItem.ProductId) {\r\n removeItem(groupId, cartItem.ProductId)\r\n }\r\n })\r\n\r\n // Add to groups\r\n groupIdsToAdd.forEach((groupId) => {\r\n const cartItemWithGroup: IMediaRightItem = {\r\n ...cartItem,\r\n GroupId: groupId\r\n }\r\n addItem(cartItemWithGroup)\r\n })\r\n }\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 guideStepsProps={guideStepsProps}\r\n groups={groups}\r\n cartItem={cartItem}\r\n />\r\n )\r\n}\r\n"],"names":["GroupSelectorModal","_ref","open","onClose","onConfirm","groups","guideStepsProps","cartItem","currentGroupIds","useMemo","ProductId","filter","g","_g$items","items","some","item","map","id","sort","initialGroupIds","length","_useState","useState","_useState2","_slicedToArray","selectedGroupIds","setSelectedGroupIds","_useState3","_useState4","showNewGroupInput","setShowNewGroupInput","_useState5","_useState6","newName","setNewName","useEffect","newInitialGroupIds","hasChanges","trim","sortedSelected","_toConsumableArray","index","handleClose","_jsxs","Dialog","maxWidth","fullWidth","disableScrollLock","keepMounted","scroll","children","_jsx","ModalHeader","Box","component","onSubmit","e","preventDefault","groupIdsToAdd","includes","groupIdsToRemove","DialogContent","Typography","variant","sx","mb","fontWeight","canAddGroup","NewCollectionInput","value","onChange","NewCollectionButton","onClick","CollectionsList","onGroupSelect","groupId","prev","concat","DialogActions","px","pb","GuideSteps","_objectSpread","iconButtonProps","color","mr","Button","type","disabled","minWidth","changes","getButtonText","showGroupSelectorModal","_ref2","addGroup","addItem","removeItem","modalContainer","document","createElement","body","appendChild","root","createRoot","render","unmount","removeChild","newGroupName","newGroupId","generateGroupId","name","cartItemWithGroup","GroupId","forEach"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as e,jsx as r}from"react/jsx-runtime";import{Box as
|
|
1
|
+
import{jsxs as e,jsx as r}from"react/jsx-runtime";import{Box as i,Typography as t,List as n,ListItem as o,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(i){var n=i.group,m=i.isSelected,u=i.onSelect;return r(o,{disablePadding:!0,children:e(a,{selected:m,onClick:function(){return u(n.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(t,{variant:"body2",noWrap:!0,children:n.name}),r(d,{label:"".concat(n.items.length," items"),size:"small"})]})]})})},u=function(o){var a=o.groups,l=o.selectedGroupIds,c=o.onGroupSelect;return 0===a.length?e(i,{sx:{textAlign:"center",py:2,color:"text.secondary"},children:[r(s,{sx:{fontSize:48,mb:1,opacity:.5}}),r(t,{variant:"body2",children:"No Media Rights Packages yet. Create your first package!"})]}):r(n,{sx:{maxHeight:300,overflow:"auto"},children:a.map(function(e){return r(m,{group:e,isSelected:l.includes(e.id),onSelect:c},e.id)})})};export{u as CollectionsList};
|
|
2
2
|
//# sourceMappingURL=units.js.map
|
|
@@ -1 +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='body2' 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
|
|
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='body2' 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 selectedGroupIds: string[]\r\n onGroupSelect: (groupId: string) => void\r\n}\r\n\r\nexport const CollectionsList: FC<CollectionsListProps> = ({ groups, selectedGroupIds, 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={selectedGroupIds.includes(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","selectedGroupIds","onGroupSelect","Box","textAlign","py","color","mb","opacity","List","maxHeight","overflow","map","includes"],"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,GAA6E,IAA7CC,EAAMD,EAANC,OAAQC,EAAgBF,EAAhBE,iBAAkBC,EAAaH,EAAbG,cACpF,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,QAAQ3C,SAC3CgC,EAAOY,IAAI,SAAClD,GAAK,OAChBG,EAACL,GAA8BE,MAAOA,EAAOC,WAAYsC,EAAiBY,SAASnD,EAAMW,IAAKT,SAAUsC,GAAnFxC,EAAMW,GAC5B,IAGP"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{slicedToArray as e}from"../_virtual/_rollupPluginBabelHelpers.js";import{useRef as r,useState as n,useEffect as t}from"react";import{MediaRightService as o,mediaRightService as a}from"./service.js";function u(u){var c=r(!1);null!=u&&u.localStorageKey&&!c.current&&o.setLocalStorageKey(u.localStorageKey);var l=n(function(){return a.getGroupsMap()}),i=e(l,2),p=i[0],f=i[1];return t(function(){c.current||(a.initialize(),c.current=!0);var e=a.subscribe("stateChange",function(e){var r=e.groups;f(r)});return function(){e&&e()}},[]),{groups:Object.values(p),groupsMap:p}}function c(e){var n=r(!1);null!=e&&e.localStorageKey&&!n.current&&(o.setLocalStorageKey(e.localStorageKey),n.current=!0);return{addGroup:function(e){a.addGroup(e)},updateGroup:function(e,r){a.updateGroup(e,r)},removeGroup:function(e){a.removeGroup(e)},addItem:function(e){a.addItem(e)},updateItem:function(e,r,n){a.updateItem(e,r,n)},removeItem:function(e,r){a.removeItem(e,r)},addChannel:function(e,r){a.addChannel(e,r)},updateChannel:function(e,r,n){a.updateChannel(e,r,n)},removeChannel:function(e,r){a.removeChannel(e,r)},clearChannels:function(e){a.clearChannels(e)},clearCart:function(){a.clearAll()}}}export{c as useMediaRightActions,u as useMediaRightStore};
|
|
2
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../src/media-right/hooks.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\r\nimport { mediaRightService, MediaRightService } from './service'\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<O = any>(params?: IMediaRightStoreOptions) {\r\n const initializedRef = useRef(false)\r\n\r\n // Set custom localStorage key BEFORE getting initial data\r\n if (params?.localStorageKey && !initializedRef.current) {\r\n MediaRightService.setLocalStorageKey(params.localStorageKey)\r\n }\r\n\r\n const [groups, setGroups] = useState<Record<string, IMediaRightGroup<O>>>(\r\n () => mediaRightService.getGroupsMap() as Record<string, IMediaRightGroup<O>>\r\n )\r\n\r\n useEffect(() => {\r\n // Initialize and subscribe to changes\r\n if (!initializedRef.current) {\r\n mediaRightService.initialize()\r\n initializedRef.current = true\r\n }\r\n\r\n const unsubscribe = mediaRightService.subscribe('stateChange', ({ groups }) => {\r\n setGroups(groups as Record<string, IMediaRightGroup<O>>)\r\n })\r\n\r\n return () => {\r\n if (unsubscribe) unsubscribe()\r\n }\r\n }, [])\r\n\r\n return { groups: Object.values(groups), groupsMap: groups }\r\n}\r\n\r\nexport function useMediaRightActions<O = any>(params?: IMediaRightStoreOptions) {\r\n const initializedRef = useRef(false)\r\n\r\n // Set custom localStorage key ONCE on mount\r\n if (params?.localStorageKey && !initializedRef.current) {\r\n MediaRightService.setLocalStorageKey(params.localStorageKey)\r\n initializedRef.current = true\r\n }\r\n\r\n const addGroup = (group: Omit<IMediaRightGroup<O>, 'createdAt' | 'items' | 'channels'>) => {\r\n mediaRightService.addGroup(group)\r\n }\r\n\r\n const updateGroup = (groupId: string, updates: Partial<Pick<IMediaRightGroup<O>, 'name'>>) => {\r\n mediaRightService.updateGroup(groupId, updates)\r\n }\r\n\r\n const removeGroup = (groupId: string) => {\r\n mediaRightService.removeGroup(groupId)\r\n }\r\n\r\n const addItem = (item: IMediaRightItem<O>) => {\r\n mediaRightService.addItem(item)\r\n }\r\n\r\n const updateItem = (groupId: string, productId: string, updates: Partial<IMediaRightItem<O>>) => {\r\n mediaRightService.updateItem(groupId, productId, updates)\r\n }\r\n\r\n const removeItem = (groupId: string, productId: string) => {\r\n mediaRightService.removeItem(groupId, productId)\r\n }\r\n\r\n const clearCart = () => {\r\n mediaRightService.clearAll()\r\n }\r\n\r\n const addChannel = (groupId: string, channel: IMediaRightChannel) => {\r\n mediaRightService.addChannel(groupId, channel)\r\n }\r\n\r\n const updateChannel = (groupId: string, channelIndex: number, updates: Partial<IMediaRightChannel>) => {\r\n mediaRightService.updateChannel(groupId, channelIndex, updates)\r\n }\r\n\r\n const removeChannel = (groupId: string, channelIndex: number) => {\r\n mediaRightService.removeChannel(groupId, channelIndex)\r\n }\r\n\r\n const clearChannels = (groupId: string) => {\r\n mediaRightService.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","initializedRef","useRef","localStorageKey","current","MediaRightService","setLocalStorageKey","_useState","useState","mediaRightService","getGroupsMap","_useState2","_slicedToArray","groups","setGroups","useEffect","initialize","unsubscribe","subscribe","_ref","Object","values","groupsMap","useMediaRightActions","addGroup","group","updateGroup","groupId","updates","removeGroup","addItem","item","updateItem","productId","removeItem","addChannel","channel","updateChannel","channelIndex","removeChannel","clearChannels","clearCart","clearAll"],"mappings":"6MAQM,SAAUA,EAA4BC,GAC1C,IAAMC,EAAiBC,GAAO,GAG1BF,SAAAA,EAAQG,kBAAoBF,EAAeG,SAC7CC,EAAkBC,mBAAmBN,EAAOG,iBAG9C,IAAAI,EAA4BC,EAC1B,WAAA,OAAMC,EAAkBC,iBACzBC,EAAAC,EAAAL,EAAA,GAFMM,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAoBxB,OAhBAI,EAAU,WAEHd,EAAeG,UAClBK,EAAkBO,aAClBf,EAAeG,SAAU,GAG3B,IAAMa,EAAcR,EAAkBS,UAAU,cAAe,SAAAC,GAAe,IAAZN,EAAMM,EAANN,OAChEC,EAAUD,EACZ,GAEA,OAAO,WACDI,GAAaA,GAClB,CACF,EAAE,IAEI,CAAEJ,OAAQO,OAAOC,OAAOR,GAASS,UAAWT,EACrD,CAEM,SAAUU,EAA8BvB,GAC5C,IAAMC,EAAiBC,GAAO,GAG1BF,SAAAA,EAAQG,kBAAoBF,EAAeG,UAC7CC,EAAkBC,mBAAmBN,EAAOG,iBAC5CF,EAAeG,SAAU,GA+C3B,MAAO,CACLoB,SA7Ce,SAACC,GAChBhB,EAAkBe,SAASC,EAC5B,EA4CCC,YA1CkB,SAACC,EAAiBC,GACpCnB,EAAkBiB,YAAYC,EAASC,EACxC,EAyCCC,YAvCkB,SAACF,GACnBlB,EAAkBoB,YAAYF,EAC/B,EAsCCG,QApCc,SAACC,GACftB,EAAkBqB,QAAQC,EAC3B,EAmCCC,WAjCiB,SAACL,EAAiBM,EAAmBL,GACtDnB,EAAkBuB,WAAWL,EAASM,EAAWL,EAClD,EAgCCM,WA9BiB,SAACP,EAAiBM,GACnCxB,EAAkByB,WAAWP,EAASM,EACvC,EA6BCE,WAvBiB,SAACR,EAAiBS,GACnC3B,EAAkB0B,WAAWR,EAASS,EACvC,EAsBCC,cApBoB,SAACV,EAAiBW,EAAsBV,GAC5DnB,EAAkB4B,cAAcV,EAASW,EAAcV,EACxD,EAmBCW,cAjBoB,SAACZ,EAAiBW,GACtC7B,EAAkB8B,cAAcZ,EAASW,EAC1C,EAgBCE,cAdoB,SAACb,GACrBlB,EAAkB+B,cAAcb,EACjC,EAaCc,UA/BgB,WAChBhC,EAAkBiC,UACnB,EA+BH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{mediaRightStoreOptions}from"./configs.js";export{EChannelType}from"./types.js";export{GuideSteps}from"./guide-steps/index.js";export{MediaGroupWidget,createMediaGroupWidget}from"./media-widget/index.js";export{GroupSelectorModal,showGroupSelectorModal}from"./group-selector/index.js";export{useMediaRightActions,useMediaRightStore}from"./
|
|
1
|
+
export{mediaRightStoreOptions}from"./configs.js";export{EChannelType}from"./types.js";export{GuideSteps}from"./guide-steps/index.js";export{MediaGroupWidget,createMediaGroupWidget}from"./media-widget/index.js";export{GroupSelectorModal,showGroupSelectorModal}from"./group-selector/index.js";export{useMediaRightActions,useMediaRightStore}from"./hooks.js";export{MediaRightService,mediaRightService}from"./service.js";export{areDuplicatedLink,canAddGroup,canAddItemToGroup,convertStringToLinks,generateGroupId}from"./helpers.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as
|
|
1
|
+
import{slicedToArray as r,objectSpread2 as o}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as e,jsx as t,Fragment as n}from"react/jsx-runtime";import{useState as i,Fragment as l}from"react";import{Badge as a,Stack as c,Typography as m,Button as u}from"@mui/material";import p from"@mui/icons-material/DriveFileMoveOutlined";import s from"@mui/icons-material/FolderSpecialOutlined";import{EmptyState as d}from"./units.js";import{MenuStyled as h,mediaWidgetClasses as f}from"./styled.js";import{IconButtonDark as g}from"../../components/buttons.js";import{MediaGroupAccordion as v}from"./media-group-accordion.js";import{useMediaRightStore as P,useMediaRightActions as j}from"../hooks.js";import{NewGroupArea as C}from"./new-group-area.js";import{canAddGroup as G,generateGroupId as k}from"../helpers.js";import{ItemTitlePropsContext as S}from"./item-title-props-context.js";var T=function(T){var b,y=T.localStorageKey,M=T.hrefCart,x=T.buttonMoveToCartProps,D=T.onDetailClick,N=P({localStorageKey:y}).groups,O=j({localStorageKey:y}),z=i(null),F=r(z,2),K=F[0],w=F[1],B=i(!1),E=r(B,2),I=E[0],L=E[1],_=function(r){O.addGroup({name:r,id:k()})},A=function(r){O.updateGroup(r.id,r)},H=function(r){O.removeGroup(r)},R=function(r,o){O.removeItem(r,o)};return e(l,{children:[t(g,{onClick:function(r){return w(r.currentTarget)},children:t(a,{badgeContent:N.length||0,color:"error",children:t(s,{})})}),t(h,{disableScrollLock:!0,anchorEl:K,open:Boolean(K),onClose:function(){return w(null)},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:t(S.Provider,{value:{itemTitleProps:T.itemTitleProps,itemTitlePropsGetter:T.itemTitlePropsGetter,onClose:function(){return w(null)}},children:e(n,{children:[e(c,{spacing:1,className:f.header,children:[e(m,{variant:"h6",component:"span",className:f.headerText,children:["Your Media Rights Package (",null!==(b=N.length)&&void 0!==b?b:0," Package",N.length>1?"s":"",")"]}),G(N)&&t(C,{onSaveGroup:_})]}),0===N.length?t(d,{}):N.map(function(r){return t(v,{group:r,onEditGroup:A,onDeleteGroup:H,onDeleteMedia:R,accordionProps:{expanded:I===r.id,onChange:function(o,e){return L(!!e&&r.id)}}},r.id)}),t(c,{className:f.footer,children:t(u,o(o(o({},M?{component:"a",href:M}:{}),{},{color:"inherit",size:"small",endIcon:t(p,{}),onClick:function(r){w(null),D&&D(r)},disabled:N.length<1},x),{},{children:"Show Package"}))})]})})})]})},b=function(r){var e=function(e){return t(T,o(o({},r),e))};return e.displayName="MediaGroupWidget",e};export{T as MediaGroupWidget,b as createMediaGroupWidget};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/media-right/media-widget/index.tsx"],"sourcesContent":["import { Fragment, useState } from 'react'\r\nimport { Badge, 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 { IconButtonDark } from '../../components/buttons'\r\nimport { MediaGroupAccordion } from './media-group-accordion'\r\nimport { useMediaRightStore, useMediaRightActions } from '../
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/media-right/media-widget/index.tsx"],"sourcesContent":["import { Fragment, useState } from 'react'\r\nimport { Badge, Button, ButtonProps, colors, 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 { mediaWidgetClasses, MenuStyled } from './styled'\r\nimport { IconButtonDark } from '../../components/buttons'\r\nimport { MediaGroupAccordion } from './media-group-accordion'\r\nimport { useMediaRightStore, useMediaRightActions } from '../hooks'\r\nimport { NewGroupArea } from './new-group-area'\r\nimport { canAddGroup, generateGroupId } from '../helpers'\r\nimport { ItemTitlePropsContext } from './item-title-props-context'\r\nimport type { ITitlePropsContextValue } from './item-title-props-context'\r\nimport type { IMediaRightGroup } from '../types'\r\n\r\nexport interface IMediaGroupWidgetProps extends ITitlePropsContextValue {\r\n localStorageKey?: string\r\n hrefCart?: string\r\n buttonMoveToCartProps?: ButtonProps & { [key: string]: any }\r\n onDetailClick?: ButtonProps['onClick']\r\n}\r\n\r\nexport const MediaGroupWidget: React.FC<IMediaGroupWidgetProps> = (props) => {\r\n const { localStorageKey, hrefCart, buttonMoveToCartProps, onDetailClick } = props\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 const [expandedGroupId, setExpandedGroupId] = useState<string | false>(false)\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 <>\r\n <Stack spacing={1} className={mediaWidgetClasses.header}>\r\n <Typography variant='h6' component='span' className={mediaWidgetClasses.headerText}>\r\n Your Media Rights Package ({groups.length ?? 0} Package{groups.length > 1 ? 's' : ''})\r\n </Typography>\r\n {canAddGroup(groups) && <NewGroupArea onSaveGroup={handleSaveNewGroup} />}\r\n </Stack>\r\n {/* <Divider /> */}\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 accordionProps={{\r\n expanded: expandedGroupId === group.id,\r\n onChange: (_, isExpanded) => setExpandedGroupId(isExpanded ? group.id : false)\r\n }}\r\n />\r\n ))\r\n )}\r\n {/* <Divider /> */}\r\n <Stack className={mediaWidgetClasses.footer}>\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={(e) => {\r\n setAnchorEl(null)\r\n if (onDetailClick) onDetailClick(e)\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 </>\r\n )\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <IconButtonDark onClick={(e) => setAnchorEl(e.currentTarget)}>\r\n <Badge badgeContent={groups.length || 0} color='error'>\r\n <FolderSpecialOutlinedIcon />\r\n </Badge>\r\n </IconButtonDark>\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 <ItemTitlePropsContext.Provider\r\n value={{\r\n itemTitleProps: props.itemTitleProps,\r\n itemTitlePropsGetter: props.itemTitlePropsGetter,\r\n onClose: () => setAnchorEl(null)\r\n }}\r\n >\r\n {renderContent()}\r\n </ItemTitlePropsContext.Provider>\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","props","_groups$length","localStorageKey","hrefCart","buttonMoveToCartProps","onDetailClick","groups","useMediaRightStore","actions","useMediaRightActions","_useState","useState","_useState2","_slicedToArray","anchorEl","setAnchorEl","_useState3","_useState4","expandedGroupId","setExpandedGroupId","handleSaveNewGroup","groupName","addGroup","name","id","generateGroupId","handleEditGroup","group","updateGroup","handleDeleteGroup","groupId","removeGroup","handleDeleteMedia","productId","removeItem","_jsxs","Fragment","children","_jsx","IconButtonDark","onClick","e","currentTarget","Badge","badgeContent","length","color","FolderSpecialOutlinedIcon","MenuStyled","disableScrollLock","open","Boolean","onClose","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","ItemTitlePropsContext","Provider","value","itemTitleProps","itemTitlePropsGetter","_Fragment","Stack","spacing","className","mediaWidgetClasses","header","Typography","variant","headerText","canAddGroup","NewGroupArea","onSaveGroup","EmptyState","map","MediaGroupAccordion","onEditGroup","onDeleteGroup","onDeleteMedia","accordionProps","expanded","onChange","_","isExpanded","footer","Button","_objectSpread","href","size","endIcon","DriveFileMoveOutlinedIcon","disabled","createMediaGroupWidget","params","_MediaGroupWidget","displayName"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as i,objectSpread2 as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as t,jsx as o}from"react/jsx-runtime";import{useState as n}from"react";import{Accordion as r,AccordionSummary as m,Box as l,Typography as a,Chip as s,IconButton as d,AccordionDetails as c}from"@mui/material";import p from"@mui/icons-material/Edit";import u 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
|
|
1
|
+
import{slicedToArray as i,objectSpread2 as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as t,jsx as o}from"react/jsx-runtime";import{useState as n}from"react";import{Accordion as r,AccordionSummary as m,Box as l,Typography as a,Chip as s,IconButton as d,AccordionDetails as c}from"@mui/material";import p from"@mui/icons-material/Edit";import u 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";import{mediaWidgetClasses as v}from"./styled.js";var S=function(S){var b=S.group,z=S.accordionProps,E=S.onEditGroup,M=S.onDeleteGroup,y=S.onDeleteMedia,P=n(!1),A=i(P,2),D=A[0],W=A[1];return t(r,e(e({component:"div"},z),{},{sx:e({my:"0 !important"},null==z?void 0:z.sx),children:[o(m,{component:"div",expandIcon:o(u,{}),sx:{minWidth:0,"& .MuiAccordionSummary-content":{minWidth:0,margin:0}},children:t(l,{className:v.item,children:[o(f,{fontSize:"small"}),t(g,{isEdit:D,setShowEdit:W,onSubmit:function(i){E(e(e({},b),{},{name:i})),W(!1)},defaultValue:b.name,textField:{inputProps:{maxLength:j.MAX_NAME_GROUP},sx:{flex:1,minWidth:0,"& .MuiOutlinedInput-root":{height:"32px"}}},sxForm:{flex:1},children:[o(a,{variant:"body2",noWrap:!0,title:b.name,className:v.itemTitle,children:b.name}),o(s,{sx:{fontSize:"12px"},label:"".concat(b.items.length," items"),size:"small"}),o(d,{size:"small",onClick:function(i){i.stopPropagation(),W(!0)},color:"success",children:o(p,{fontSize:"small"})}),o(h,{onDelete:function(){return M(b.id)},size:"small"})]},b.id+b.name+D)]})}),o(c,{sx:{p:0},children:o(x,{medias:b.items,onDelete:function(i){return y(b.id,i)}})})]}))};export{S as MediaGroupAccordion};
|
|
2
2
|
//# sourceMappingURL=media-group-accordion.js.map
|
|
@@ -1 +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, AccordionProps } from '@mui/material'\r\nimport type { FC, MouseEvent } from 'react'\r\nimport type { IMediaRightGroup } from '../types'\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 { 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 accordionProps?: Partial<AccordionProps>\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, accordionProps, 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 component=
|
|
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, AccordionProps } from '@mui/material'\r\nimport type { FC, MouseEvent } from 'react'\r\nimport type { IMediaRightGroup } from '../types'\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 { DeleteButton } from './button.delete'\r\nimport { InlineEditing } from './inline-editing'\r\nimport { mediaRightStoreOptions } from '../configs'\r\nimport { mediaWidgetClasses } from './styled'\r\n\r\nexport interface IMediaGroupAccordionProps {\r\n group: IMediaRightGroup\r\n accordionProps?: Partial<AccordionProps>\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, accordionProps, 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 component='div' {...accordionProps} sx={{ my: '0 !important', ...accordionProps?.sx }}>\r\n <AccordionSummary\r\n component='div'\r\n expandIcon={<ExpandMoreIcon />}\r\n sx={{ minWidth: 0, '& .MuiAccordionSummary-content': { minWidth: 0, margin: 0 } }}\r\n >\r\n <Box className={mediaWidgetClasses.item}>\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='body2' noWrap title={group.name} className={mediaWidgetClasses.itemTitle}>\r\n {group.name}\r\n </Typography>\r\n <Chip sx={{ fontSize: '12px' }} label={`${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={() => 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","accordionProps","onEditGroup","onDeleteGroup","onDeleteMedia","_useState","useState","_useState2","_slicedToArray","isEditing","setIsEditing","_jsxs","Accordion","_objectSpread","component","sx","my","_jsx","AccordionSummary","expandIcon","ExpandMoreIcon","minWidth","margin","children","Box","className","mediaWidgetClasses","item","FolderOutlinedIcon","fontSize","InlineEditing","isEdit","setShowEdit","onSubmit","value","name","defaultValue","textField","inputProps","maxLength","mediaRightStoreOptions","MAX_NAME_GROUP","flex","height","sxForm","Typography","variant","noWrap","title","itemTitle","Chip","label","concat","items","length","size","IconButton","onClick","e","stopPropagation","color","EditIcon","DeleteButton","onDelete","id","AccordionDetails","p","MediaList","medias","mediaId"],"mappings":"isBAqBaA,EAAqD,SAAlCC,GAA2G,IAAtEC,EAAKD,EAALC,MAAOC,EAAcF,EAAdE,eAAgBC,EAAWH,EAAXG,YAAaC,EAAaJ,EAAbI,cAAeC,EAAaL,EAAbK,cACtHC,EAAkCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1CI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAY9B,OACEI,EAACC,EAASC,EAAAA,EAAA,CAACC,UAAU,OAAUb,GAAc,GAAA,CAAEc,GAAEF,EAAA,CAAIG,GAAI,gBAAmBf,eAAAA,EAAgBc,cAC1FE,EAACC,GACCJ,UAAU,MACVK,WAAYF,EAACG,MACbL,GAAI,CAAEM,SAAU,EAAG,iCAAkC,CAAEA,SAAU,EAAGC,OAAQ,IAAKC,SAEjFZ,EAACa,EAAG,CAACC,UAAWC,EAAmBC,KAAIJ,SAAA,CACrCN,EAACW,EAAkB,CAACC,SAAS,UAC7BlB,EAACmB,GAECC,OAAQtB,EACRuB,YAAatB,EACbuB,SAvBa,SAACC,GACtBhC,EAAWW,EAAAA,KAAMb,GAAK,CAAA,EAAA,CAAEmC,KAAMD,KAC9BxB,GAAa,EACd,EAqBS0B,aAAcpC,EAAMmC,KACpBE,UAAW,CACTC,WAAY,CAAEC,UAAWC,EAAuBC,gBAChD1B,GAAI,CAAE2B,KAAM,EAAGrB,SAAU,EAAG,2BAA4B,CAAEsB,OAAQ,UAEpEC,OAAQ,CAAEF,KAAM,GAAGnB,SAAA,CAEnBN,EAAC4B,GAAWC,QAAQ,QAAQC,QAAO,EAAAC,MAAOhD,EAAMmC,KAAMV,UAAWC,EAAmBuB,UACjF1B,SAAAvB,EAAMmC,OAETlB,EAACiC,EAAK,CAAAnC,GAAI,CAAEc,SAAU,QAAUsB,MAAK,GAAAC,OAAKpD,EAAMqD,MAAMC,OAAc,UAAEC,KAAK,UAC3EtC,EAACuC,EAAU,CAACD,KAAK,QAAQE,QA9BX,SAACC,GACvBA,EAAEC,kBACFjD,GAAa,EACd,EA2B4DkD,MAAM,UAASrC,SAChEN,EAAC4C,EAAQ,CAAChC,SAAS,YAErBZ,EAAC6C,EAAa,CAAAC,SAAU,WAAF,OAAQ5D,EAAcH,EAAMgE,GAAG,EAAET,KAAK,YAlBvDvD,EAAMgE,GAAKhE,EAAMmC,KAAO1B,QAsBnCQ,EAACgD,EAAgB,CAAClD,GAAI,CAAEmD,EAAG,GAAG3C,SAC5BN,EAACkD,GAAUC,OAAQpE,EAAMqD,MAAOU,SAAU,SAACM,GAAO,OAAKjE,EAAcJ,EAAMgE,GAAIK,EAAQ,SAI/F"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{objectSpread2 as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t,jsxs as r}from"react/jsx-runtime";import{ImageWithFallback as
|
|
1
|
+
import{objectSpread2 as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t,jsxs as r}from"react/jsx-runtime";import{ImageWithFallback as i}from"dinocollab-core/components";import{useItemTitleProps as o}from"./item-title-props-context.js";import{Typography as l,List as a,ListItem as n}from"@mui/material";import{DeleteButton as c}from"./button.delete.js";import{mediaWidgetClasses as m}from"./styled.js";var s=function(s){var d=s.medias,p=s.onDelete,u=o()||{},f=u.itemTitleProps,h=u.itemTitlePropsGetter,x=u.onClose;return 0===d.length?t(l,{variant:"body2",color:"text.secondary",sx:{textAlign:"center",py:2},children:"No media in this package yet"}):t(a,{children:d.map(function(o){return r(n,{sx:{gap:1,alignItems:"center"},className:m.itemChild,children:[t(i,{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"}}),t(l,e(e({noWrap:!0,variant:"subtitle1",fontWeight:500,sx:{flexGrow:1},title:o.ProductName},h?h(o):null!=f?f:{}),{},{onClick:x,className:m.itemChildTitle,children:o.ProductName})),t(c,{onDelete:function(){return p(o.ProductId)},size:"small"})]},o.MediaId)})})};export{s as MediaList};
|
|
2
2
|
//# sourceMappingURL=media-list.js.map
|
|
@@ -1 +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 { useItemTitleProps } from './item-title-props-context'\r\nimport { List, ListItem, Typography } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport type { 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 const { itemTitleProps, itemTitlePropsGetter, onClose } = useItemTitleProps() || {}\r\n\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\r\n noWrap\r\n variant='subtitle1'\r\n fontWeight={500}\r\n sx={{ flexGrow: 1 }}\r\n title={media.ProductName}\r\n {...(itemTitlePropsGetter ? itemTitlePropsGetter(media) : itemTitleProps ?? {})}\r\n onClick={onClose}\r\n >\r\n {media.ProductName}\r\n </Typography>\r\n <DeleteButton onDelete={() => onDelete(media.ProductId)} size='small' />\r\n </ListItem>\r\n ))}\r\n </List>\r\n )\r\n}\r\n"],"names":["MediaList","_ref","medias","onDelete","_ref2","useItemTitleProps","itemTitleProps","itemTitlePropsGetter","onClose","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","_objectSpread","noWrap","fontWeight","flexGrow","ProductName","onClick","DeleteButton","ProductId","size","MediaId"],"mappings":"
|
|
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 { useItemTitleProps } from './item-title-props-context'\r\nimport { List, ListItem, Typography } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport type { IMediaRightItem } from '../types'\r\nimport { DeleteButton } from './button.delete'\r\nimport { mediaWidgetClasses } from './styled'\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 const { itemTitleProps, itemTitlePropsGetter, onClose } = useItemTitleProps() || {}\r\n\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' }} className={mediaWidgetClasses.itemChild}>\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\r\n noWrap\r\n variant='subtitle1'\r\n fontWeight={500}\r\n sx={{ flexGrow: 1 }}\r\n title={media.ProductName}\r\n {...(itemTitlePropsGetter ? itemTitlePropsGetter(media) : itemTitleProps ?? {})}\r\n onClick={onClose}\r\n className={mediaWidgetClasses.itemChildTitle}\r\n >\r\n {media.ProductName}\r\n </Typography>\r\n <DeleteButton onDelete={() => onDelete(media.ProductId)} size='small' />\r\n </ListItem>\r\n ))}\r\n </List>\r\n )\r\n}\r\n"],"names":["MediaList","_ref","medias","onDelete","_ref2","useItemTitleProps","itemTitleProps","itemTitlePropsGetter","onClose","length","_jsx","Typography","variant","color","sx","textAlign","py","children","List","map","media","_jsxs","ListItem","gap","alignItems","className","mediaWidgetClasses","itemChild","ImageWithFallback","src","PictureUrl","title","fallbackSrc","alt","style","width","height","borderRadius","objectFit","flex","_objectSpread","noWrap","fontWeight","flexGrow","ProductName","onClick","itemChildTitle","DeleteButton","ProductId","size","MediaId"],"mappings":"yaAaaA,EAAiC,SAAxBC,GAAiD,IAAtBC,EAAMD,EAANC,OAAQC,EAAQF,EAARE,SACvDC,EAA0DC,KAAuB,CAAE,EAA3EC,EAAcF,EAAdE,eAAgBC,EAAoBH,EAApBG,qBAAsBC,EAAOJ,EAAPI,QAE9C,OAAsB,IAAlBN,EAAOO,OAEPC,EAACC,EAAW,CAAAC,QAAQ,QAAQC,MAAM,iBAAiBC,GAAI,CAAEC,UAAW,SAAUC,GAAI,GAErEC,SAAA,iCAKfP,EAACQ,EACE,CAAAD,SAAAf,EAAOiB,IAAI,SAACC,GAAK,OAChBC,EAACC,EAAQ,CAAqBR,GAAI,CAAES,IAAK,EAAGC,WAAY,UAAYC,UAAWC,EAAmBC,UAASV,SAAA,CACzGP,EAACkB,EACC,CAAAC,IAAKT,aAAAA,EAAAA,EAAOU,WACZC,MAAOX,aAAAA,EAAAA,EAAOU,WACdE,YAAY,4BACZC,IAAI,kBACJC,MAAO,CACLC,MAAO,OACPC,OAAQ,OACRC,aAAc,EACdC,UAAW,QACXC,KAAM,cAGV7B,EAACC,EAAU6B,EAAAA,EAAA,CACTC,QAAM,EACN7B,QAAQ,YACR8B,WAAY,IACZ5B,GAAI,CAAE6B,SAAU,GAChBZ,MAAOX,EAAMwB,aACRrC,EAAuBA,EAAqBa,GAASd,QAAAA,EAAkB,CAAE,GAAA,CAAA,EAAA,CAC9EuC,QAASrC,EACTiB,UAAWC,EAAmBoB,eAAc7B,SAE3CG,EAAMwB,eAETlC,EAACqC,EAAa,CAAA5C,SAAU,WAAF,OAAQA,EAASiB,EAAM4B,UAAU,EAAEC,KAAK,YA1BjD7B,EAAM8B,QA4BtB,IAGP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{styled as
|
|
1
|
+
import{defineProperty as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{styled as t,Menu as o}from"@mui/material";var r={header:"DinoMediaWidget-header",headerText:"DinoMediaWidget-headerText",footer:"DinoMediaWidget-footer",item:"DinoMediaWidget-item",itemTitle:"DinoMediaWidget-itemTitle",itemChild:"DinoMediaWidget-itemChild",itemChildTitle:"DinoMediaWidget-itemChildTitle"},i=t(o)(function(t){var o=t.theme;return e(e(e(e(e(e({"--color-bg":o.palette.background.paper,"--color-text":o.palette.text.primary,marginTop:"45px",">.MuiPaper-root":{position:"relative",overflow:"visible",display:"flex",flexDirection:"column",backgroundColor:"var(--color-bg, #000000)",borderRadius:o.shape.borderRadius,minWidth:"280px",width:"90vw",maxWidth:"450px",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","&::before":{content:'""',position:"absolute",backgroundColor:o.palette.divider,width:"10px",height:"10px",top:"-4px",right:o.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,height:"100%",overflowY:"auto","&::-webkit-scrollbar":{width:"6px",background:"transparent"},"&::-webkit-scrollbar-thumb":{background:"#e0e0e0",borderRadius:"8px"},"&::-webkit-scrollbar-thumb:hover":{background:"#bdbdbd"},"&":{scrollbarWidth:"thin",scrollbarColor:"#e0e0e0 transparent"}}},".".concat(r.header),{padding:"12px 16px",position:"sticky",top:0,backgroundColor:o.palette.background.paper,zIndex:2,boxShadow:"0px 0.5px 5px 0px rgba(0, 0, 0, 0.15)",alignItems:"flex-start"}),".".concat(r.headerText),{flex:1,color:o.palette.text.primary}),".".concat(r.footer),{position:"sticky",bottom:0,backgroundColor:o.palette.background.paper,zIndex:1,boxShadow:"0px 0.5px 5px 0px rgba(0, 0, 0, 0.15)",justifyContent:"end",flexDirection:"row",padding:"6px 12px"}),".".concat(r.item),{display:"flex",alignItems:"center",flex:1,gap:1,minWidth:0}),".".concat(r.itemTitle),{fontWeight:600,flex:1,minWidth:0,color:o.palette.text.primary,marginLeft:o.spacing(1)}),".".concat(r.itemChildTitle),{color:o.palette.text.primary})});export{i as MenuStyled,r as mediaWidgetClasses};
|
|
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 } 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':
|
|
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 mediaWidgetClasses = {\r\n root: 'DinoMediaWidget-root',\r\n header: 'DinoMediaWidget-header',\r\n headerText: 'DinoMediaWidget-headerText',\r\n footer: 'DinoMediaWidget-footer',\r\n item: 'DinoMediaWidget-item',\r\n itemTitle: 'DinoMediaWidget-itemTitle',\r\n itemChild: 'DinoMediaWidget-itemChild',\r\n itemChildTitle: 'DinoMediaWidget-itemChildTitle'\r\n}\r\n\r\nexport const MenuStyled: ComponentType<MenuProps> = styled(Menu)(({ theme }) => ({\r\n '--color-bg': theme.palette.background.paper,\r\n '--color-text': theme.palette.text.primary,\r\n\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: 'var(--color-bg, #000000)',\r\n borderRadius: theme.shape.borderRadius,\r\n minWidth: '280px',\r\n width: '90vw',\r\n maxWidth: '450px',\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\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n backgroundColor: theme.palette.divider,\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 '@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': {\r\n padding: 0,\r\n height: '100%',\r\n overflowY: 'auto',\r\n '&::-webkit-scrollbar': {\r\n width: '6px',\r\n background: 'transparent'\r\n },\r\n '&::-webkit-scrollbar-thumb': {\r\n background: '#e0e0e0',\r\n borderRadius: '8px'\r\n },\r\n '&::-webkit-scrollbar-thumb:hover': {\r\n background: '#bdbdbd'\r\n },\r\n '&': {\r\n scrollbarWidth: 'thin',\r\n scrollbarColor: '#e0e0e0 transparent'\r\n }\r\n },\r\n [`.${mediaWidgetClasses.header}`]: {\r\n padding: '12px 16px',\r\n position: 'sticky',\r\n top: 0,\r\n backgroundColor: theme.palette.background.paper,\r\n zIndex: 2,\r\n boxShadow: '0px 0.5px 5px 0px rgba(0, 0, 0, 0.15)',\r\n alignItems: 'flex-start'\r\n },\r\n [`.${mediaWidgetClasses.headerText}`]: {\r\n flex: 1,\r\n color: theme.palette.text.primary\r\n },\r\n [`.${mediaWidgetClasses.footer}`]: {\r\n position: 'sticky',\r\n bottom: 0,\r\n backgroundColor: theme.palette.background.paper,\r\n zIndex: 1,\r\n boxShadow: '0px 0.5px 5px 0px rgba(0, 0, 0, 0.15)',\r\n justifyContent: 'end',\r\n flexDirection: 'row',\r\n padding: '6px 12px'\r\n },\r\n [`.${mediaWidgetClasses.item}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flex: 1,\r\n gap: 1,\r\n minWidth: 0\r\n },\r\n [`.${mediaWidgetClasses.itemTitle}`]: {\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 [`.${mediaWidgetClasses.itemChildTitle}`]: {\r\n color: theme.palette.text.primary\r\n }\r\n}))\r\n"],"names":["mediaWidgetClasses","header","headerText","footer","item","itemTitle","itemChild","itemChildTitle","MenuStyled","styled","Menu","_ref","theme","_defineProperty","palette","background","paper","text","primary","marginTop","position","overflow","display","flexDirection","backgroundColor","borderRadius","shape","minWidth","width","maxWidth","boxShadow","animation","content","divider","height","top","right","spacing","transform","zIndex","opacity","padding","overflowY","scrollbarWidth","scrollbarColor","concat","alignItems","flex","color","bottom","justifyContent","gap","fontWeight","marginLeft"],"mappings":"8HAIO,IAAMA,EAAqB,CAEhCC,OAAQ,yBACRC,WAAY,6BACZC,OAAQ,yBACRC,KAAM,uBACNC,UAAW,4BACXC,UAAW,4BACXC,eAAgB,kCAGLC,EAAuCC,EAAOC,EAAPD,CAAa,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAC,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CACvE,aAAcD,EAAME,QAAQC,WAAWC,MACvC,eAAgBJ,EAAME,QAAQG,KAAKC,QAEnCC,UAAW,OACX,kBAAmB,CACjBC,SAAU,WACVC,SAAU,UACVC,QAAS,OACTC,cAAe,SACfC,gBAAiB,2BACjBC,aAAcb,EAAMc,MAAMD,aAC1BE,SAAU,QACVC,MAAO,OACPC,SAAU,QACVC,UAAsI,4HACtIC,UAAW,2BACXZ,UAAW,MAGX,YAAa,CACXa,QAAS,KACTZ,SAAU,WACVI,gBAAiBZ,EAAME,QAAQmB,QAC/BL,MAAO,OACPM,OAAQ,OACRC,IAAK,OACLC,MAAOxB,EAAMyB,QAAQ,GACrBC,UAAW,iCACXC,OAAQ,GAGV,wBAAyB,CACvB,KAAM,CAAEC,QAAS,EAAGF,UAAW,qBAC/B,OAAQ,CAAEE,QAAS,EAAGF,UAAW,mBAGrC,oBAAqB,CAAEd,gBAAiB,eACxC,gBAAiB,CACfiB,QAAS,EACTP,OAAQ,OACRQ,UAAW,OACX,uBAAwB,CACtBd,MAAO,MACPb,WAAY,eAEd,6BAA8B,CAC5BA,WAAY,UACZU,aAAc,OAEhB,mCAAoC,CAClCV,WAAY,WAEd,IAAK,CACH4B,eAAgB,OAChBC,eAAgB,yBAEnB,IAAAC,OACI7C,EAAmBC,QAAW,CACjCwC,QAAS,YACTrB,SAAU,SACVe,IAAK,EACLX,gBAAiBZ,EAAME,QAAQC,WAAWC,MAC1CuB,OAAQ,EACRT,UAAW,wCACXgB,WAAY,mBACbD,OACI7C,EAAmBE,YAAe,CACrC6C,KAAM,EACNC,MAAOpC,EAAME,QAAQG,KAAKC,cAC3B2B,OACI7C,EAAmBG,QAAW,CACjCiB,SAAU,SACV6B,OAAQ,EACRzB,gBAAiBZ,EAAME,QAAQC,WAAWC,MAC1CuB,OAAQ,EACRT,UAAW,wCACXoB,eAAgB,MAChB3B,cAAe,MACfkB,QAAS,iBACVI,OACI7C,EAAmBI,MAAS,CAC/BkB,QAAS,OACTwB,WAAY,SACZC,KAAM,EACNI,IAAK,EACLxB,SAAU,QACXkB,OACI7C,EAAmBK,WAAc,CACpC+C,WAAY,IACZL,KAAM,EACNpB,SAAU,EACVqB,MAAOpC,EAAME,QAAQG,KAAKC,QAC1BmC,WAAYzC,EAAMyB,QAAQ,SAC3BQ,OACI7C,EAAmBO,gBAAmB,CACzCyC,MAAOpC,EAAME,QAAQG,KAAKC,SAC3B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
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{MediaRightEventStore as l}from"./event-store.js";import{mediaRightStoreOptions as i}from"./configs.js";var s=e(function e(){t(this,e),o(this,"localStorageKey","__media_right_default__"),o(this,"store",new l)}),u=function(){function l(){t(this,l)}return e(l,[{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();if(Object.keys(a.groups).length>=i.MAX_GROUP)throw new Error("Maximum groups limit reached (".concat(i.MAX_GROUP,")"));if(e.name&&e.name.length>i.MAX_NAME_GROUP)throw new Error("Group name exceeds maximum length (".concat(i.MAX_NAME_GROUP,")"));var t=r(r({},e),{},{createdAt:Date.now(),items:[],channels:[]}),n=r(r({},a.groups),{},o({},e.id,t));this.saveToLocalStorage(n)}},{key:"updateGroup",value:function(e,a){var t=this.loadFromLocalStorage();if(t.groups[e]){if(a.name&&a.name.length>i.MAX_NAME_GROUP)throw new Error("Group name exceeds maximum length (".concat(i.MAX_NAME_GROUP,")"));var n=r(r({},t.groups),{},o({},e,r(r({},t.groups[e]),a)));this.saveToLocalStorage(n)}}},{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(),l=n.groups[e];if(!l)throw new Error("Group ".concat(e," not found"));if(l.channels.length>=i.MAX_CHANNELS)throw new Error("Group ".concat(e," has reached maximum channels limit (").concat(i.MAX_CHANNELS,")"));var s=r(r({},l),{},{channels:[].concat(a(l.channels),[t])}),u=r(r({},n.groups),{},o({},e,s));this.saveToLocalStorage(u)}},{key:"updateChannel",value:function(e,t,n){var l=this.loadFromLocalStorage(),i=l.groups[e];if(i&&i.channels[t]){var s=a(i.channels);s[t]=r(r({},s[t]),n);var u=r(r({},l.groups),{},o({},e,r(r({},i),{},{channels:s})));this.saveToLocalStorage(u)}}},{key:"removeChannel",value:function(e,t){var n=this.loadFromLocalStorage(),l=n.groups[e];if(l){var i=a(l.channels);i.splice(t,1);var s=r(r({},n.groups),{},o({},e,r(r({},l),{},{channels:i})));this.saveToLocalStorage(s)}}},{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("Group ".concat(e.GroupId," not found"));var l,s=n.items.findIndex(function(o){return o.ProductId===e.ProductId});if(-1===s&&n.items.length>=i.MAX_ITEMS_PER_GROUP)throw new Error("Group ".concat(e.GroupId," has reached maximum items limit (").concat(i.MAX_ITEMS_PER_GROUP,")"));s>=0?(l=a(n.items))[s]=e:l=[].concat(a(n.items),[e]);var u=r(r({},t.groups),{},o({},e.GroupId,r(r({},n),{},{items:l})));this.saveToLocalStorage(u)}},{key:"updateItem",value:function(e,t,n){var l=this.loadFromLocalStorage(),i=l.groups[e];if(i){var s=i.items.findIndex(function(o){return o.ProductId===t});if(s>=0){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){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 media rights 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 s}},{key:"setProvider",value:function(o){n(l.key_provider).set(null!=o?o:new s)}},{key:"setLocalStorageKey",value:function(o){var e=l.provider;e.localStorageKey=o,l.setProvider(e)}}])}();o(u,"key_provider","__media_right_key_provider__");var c=new u;export{u as MediaRightService,c as mediaRightService};
|
|
2
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sources":["../../src/media-right/service.ts"],"sourcesContent":["import { createObjectSingleton } from 'dinocollab-core/utils'\r\nimport { IMediaRightGroup, IMediaRightItem, IMediaRightChannel } from './types'\r\nimport { MediaRightEventStore } from './event-store'\r\nimport { mediaRightStoreOptions } from './configs'\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 {\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}\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 setLocalStorageKey(key: string) {\r\n const provider = MediaRightService.provider\r\n provider.localStorageKey = key\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>, '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 if (currentGroupCount >= mediaRightStoreOptions.MAX_GROUP) {\r\n throw new Error(`Maximum groups limit reached (${mediaRightStoreOptions.MAX_GROUP})`)\r\n }\r\n\r\n // Validate group name length\r\n if (group.name && group.name.length > mediaRightStoreOptions.MAX_NAME_GROUP) {\r\n throw new Error(`Group name exceeds maximum length (${mediaRightStoreOptions.MAX_NAME_GROUP})`)\r\n }\r\n\r\n const newGroup: IMediaRightGroup<O> = {\r\n ...group,\r\n createdAt: Date.now(),\r\n items: [],\r\n channels: []\r\n }\r\n const updatedGroups = { ...storedData.groups, [group.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 if (updates.name && updates.name.length > mediaRightStoreOptions.MAX_NAME_GROUP) {\r\n throw new Error(`Group name exceeds maximum length (${mediaRightStoreOptions.MAX_NAME_GROUP})`)\r\n }\r\n\r\n const updatedGroups = {\r\n ...storedData.groups,\r\n [groupId]: { ...storedData.groups[groupId], ...updates }\r\n }\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: IMediaRightChannel): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group) {\r\n throw new Error(`Group ${groupId} not found`)\r\n }\r\n\r\n // Validate max channels limit\r\n if (group.channels.length >= mediaRightStoreOptions.MAX_CHANNELS) {\r\n throw new Error(`Group ${groupId} has reached maximum channels limit (${mediaRightStoreOptions.MAX_CHANNELS})`)\r\n }\r\n\r\n const updatedGroup = {\r\n ...group,\r\n channels: [...group.channels, channel]\r\n }\r\n\r\n const updatedGroups = {\r\n ...storedData.groups,\r\n [groupId]: updatedGroup\r\n }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\r\n\r\n updateChannel(groupId: string, channelIndex: number, updates: Partial<IMediaRightChannel>): void {\r\n const storedData = this.loadFromLocalStorage()\r\n const group = storedData.groups[groupId]\r\n\r\n if (!group || !group.channels[channelIndex]) return\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, channelIndex: number): 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 updatedChannels = [...group.channels]\r\n updatedChannels.splice(channelIndex, 1)\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 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 = {\r\n ...storedData.groups,\r\n [groupId]: { ...group, channels: [] }\r\n }\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(`Group ${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 if (existingItemIndex === -1 && group.items.length >= mediaRightStoreOptions.MAX_ITEMS_PER_GROUP) {\r\n throw new Error(`Group ${item.GroupId} has reached maximum items limit (${mediaRightStoreOptions.MAX_ITEMS_PER_GROUP})`)\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 = {\r\n ...storedData.groups,\r\n [item.GroupId]: { ...group, items: updatedItems }\r\n }\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) return\r\n\r\n const itemIndex = group.items.findIndex((i) => i.ProductId === productId)\r\n if (itemIndex >= 0) {\r\n const updatedItems = [...group.items]\r\n updatedItems[itemIndex] = { ...updatedItems[itemIndex], ...updates }\r\n\r\n const updatedGroups = {\r\n ...storedData.groups,\r\n [groupId]: { ...group, items: updatedItems }\r\n }\r\n\r\n this.saveToLocalStorage(updatedGroups)\r\n }\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) return\r\n\r\n const updatedItems = group.items.filter((i) => i.ProductId !== productId)\r\n\r\n const updatedGroups = {\r\n ...storedData.groups,\r\n [groupId]: { ...group, items: updatedItems }\r\n }\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 media rights 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","MediaRightService","key","value","provider","store","emit","event","callback","subscribe","_storedData$groups","storedData","loadFromLocalStorage","Object","values","groups","_storedData$groups2","groupId","_storedData$groups3","group","keys","length","mediaRightStoreOptions","MAX_GROUP","Error","concat","name","MAX_NAME_GROUP","newGroup","_objectSpread","createdAt","Date","now","items","channels","updatedGroups","id","saveToLocalStorage","updates","channel","MAX_CHANNELS","updatedGroup","_toConsumableArray","channelIndex","updatedChannels","splice","item","GroupId","updatedItems","existingItemIndex","findIndex","i","ProductId","MAX_ITEMS_PER_GROUP","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","setProvider","mediaRightService"],"mappings":"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"}
|
|
@@ -25,26 +25,5 @@ export declare class CartEventStore extends EventEmitter<ICartEventConfigs> {
|
|
|
25
25
|
_createWrapListener: (callback: (...payload: any[]) => void) => (...payload: any[]) => void;
|
|
26
26
|
subscribe<K extends keyof ICartEventConfigs>(eventName: K, listener: K extends keyof ICartEventConfigs ? (ICartEventConfigs[K] extends unknown[] ? (...args: ICartEventConfigs[K]) => void : never) : never, isTry?: boolean): () => void;
|
|
27
27
|
}
|
|
28
|
-
export declare function getCartEventStore(): CartEventStore | null;
|
|
29
|
-
export interface ICartStoreConfigs {
|
|
30
|
-
idGetter: IIdGetter;
|
|
31
|
-
localStorageKey?: string;
|
|
32
|
-
}
|
|
33
|
-
export declare class MfeCartStore {
|
|
34
|
-
private configs;
|
|
35
|
-
constructor(config: ICartStoreConfigs);
|
|
36
|
-
initialize: () => void;
|
|
37
|
-
destroy: () => void;
|
|
38
|
-
emitStateChange(items: IItem): void;
|
|
39
|
-
add(item: any, overwrite?: boolean): this;
|
|
40
|
-
addMany(items: any[], overwrite?: boolean): this;
|
|
41
|
-
updateOrAdd(id: string, updates: Partial<any>): this;
|
|
42
|
-
remove(id: string): this;
|
|
43
|
-
clear(): this;
|
|
44
|
-
getState(): IItem;
|
|
45
|
-
getItems(): any[];
|
|
46
|
-
private loadFromLocalStorage;
|
|
47
|
-
private saveToLocalStorage;
|
|
48
|
-
}
|
|
49
28
|
export {};
|
|
50
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=event-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../../src/cart/event-store.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAEjC,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAA;AAEpD,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAEhC,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,aAAa,CAAA;KAAE,CAAC,CAAA;IACxD,YAAY,EAAE,CAAC;QAAE,OAAO,CAAC,EAAE,aAAa,CAAA;KAAE,CAAC,CAAA;CAC5C;AAED,qBAAa,cAAe,SAAQ,YAAY,CAAC,iBAAiB,CAAC;;IAIjE;;;;;OAKG;IACH,mBAAmB,0BAA2B,GAAG,EAAE,KAAK,IAAI,kBACtC,GAAG,EAAE,UAO1B;IACD,SAAS,CAAC,CAAC,SAAS,MAAM,iBAAiB,EACzC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,CAAC,SAAS,MAAM,iBAAiB,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,EAChJ,KAAK,GAAE,OAAc;CAQxB"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { ICartItem } from './types';
|
|
2
|
-
export
|
|
3
|
-
localStorageKey?: string;
|
|
4
|
-
}
|
|
5
|
-
export declare function useCartStore<T extends ICartItem = ICartItem>(params?: ICartStoreOptions): {
|
|
2
|
+
export declare function useCartStore<T extends ICartItem = ICartItem>(): {
|
|
6
3
|
items: T[];
|
|
7
4
|
};
|
|
8
|
-
export declare function useCartActions<T extends ICartItem = ICartItem>(
|
|
5
|
+
export declare function useCartActions<T extends ICartItem = ICartItem>(): {
|
|
6
|
+
idGetter: (item: T) => string;
|
|
9
7
|
addToCart: (item: T) => void;
|
|
8
|
+
updateCart: (id: string, updates: Partial<T>) => void;
|
|
10
9
|
updateOrAddCart: (id: string, updates: Partial<T>) => void;
|
|
11
10
|
removeFromCart: (id: string) => void;
|
|
12
11
|
clearCart: () => void;
|
|
13
|
-
idGetter: (item: T) => string;
|
|
14
12
|
};
|
|
15
|
-
//# sourceMappingURL=
|
|
13
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +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;;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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cart/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,cAAc,SAAS,CAAA;AAGvB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEvD,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cart/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,cAAc,SAAS,CAAA;AAGvB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEvD,cAAc,SAAS,CAAA;AAEvB,cAAc,WAAW,CAAA;AAEzB,cAAc,WAAW,CAAA;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ICartItem } from './types';
|
|
2
|
+
import { CartEventStore } from './event-store';
|
|
3
|
+
export interface ICartMetadata<T extends ICartItem = ICartItem> {
|
|
4
|
+
version: string;
|
|
5
|
+
items: T[];
|
|
6
|
+
}
|
|
7
|
+
export interface ICartProvider {
|
|
8
|
+
localStorageKey: string;
|
|
9
|
+
store: CartEventStore;
|
|
10
|
+
}
|
|
11
|
+
export declare class CartService<T extends ICartItem = ICartItem> {
|
|
12
|
+
static key_provider: string;
|
|
13
|
+
static get provider(): ICartProvider;
|
|
14
|
+
static setProvider(provider: ICartProvider): void;
|
|
15
|
+
static setLocalStorageKey(key: string): void;
|
|
16
|
+
initialize(): void;
|
|
17
|
+
subscribe(event: string, callback: (...args: any[]) => void): () => void;
|
|
18
|
+
getCarts(): T[];
|
|
19
|
+
addToCart(cartItem: T | T[]): void;
|
|
20
|
+
removeFromCart(cartItem: T | T[]): void;
|
|
21
|
+
updateCart(productId: string, updates: Partial<T>): void;
|
|
22
|
+
updateOrAddCart(productId: string, updates: Partial<T>): void;
|
|
23
|
+
clearCart(): void;
|
|
24
|
+
private loadFromLocalStorage;
|
|
25
|
+
private saveToLocalStorage;
|
|
26
|
+
}
|
|
27
|
+
export declare const cartService: CartService<ICartItem<any>>;
|
|
28
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/cart/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,CAAC,EAAE,CAAA;CACX;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,EAAE,cAAc,CAAA;CACtB;AAOD,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,kBAAkB,CAAC,GAAG,EAAE,MAAM;IAMrC,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;CAY3B;AAED,eAAO,MAAM,WAAW,6BAA+B,CAAA"}
|
|
@@ -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,MAAM,OAAO,CAAA;AAGtD,OAAO,EAAmB,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGtE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,IAAI,EAAE,QAAQ,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAA;CACtG;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,iBAAiB,CAAA;IAC1B,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACnB,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAC3B;AAED,cAAM,YAAa,SAAQ,SAAS,CAAC,eAAe,CAAC;IACnD,MAAM;IA4BN,iBAAiB,SAAU,OAAO,KAAG,QAAQ,qBAAqB,CAAC,
|
|
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,MAAM,OAAO,CAAA;AAGtD,OAAO,EAAmB,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGtE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,IAAI,EAAE,QAAQ,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAA;CACtG;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,iBAAiB,CAAA;IAC1B,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACnB,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAC3B;AAED,cAAM,YAAa,SAAQ,SAAS,CAAC,eAAe,CAAC;IACnD,MAAM;IA4BN,iBAAiB,SAAU,OAAO,KAAG,QAAQ,qBAAqB,CAAC,CAclE;IAED,kBAAkB,MAAO,YAAY,iBAAiB,EAAE,UAAU,CAAC,QAAQ,OAAO,UAIjF;CACF;AACD,eAAe,YAAY,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
export declare const getLightTheme: (primary: string, secondary: string, fontScale?: number) => import("@mui/material").Theme;
|
|
3
2
|
export interface IAppThemeProviderProps {
|
|
4
3
|
children: ReactNode;
|
|
4
|
+
mode?: 'light' | 'dark';
|
|
5
5
|
primaryVar?: string;
|
|
6
6
|
secondaryVar?: string;
|
|
7
7
|
fontScale?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-theme-provider.d.ts","sourceRoot":"","sources":["../../../src/layout-global/app-theme-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"app-theme-provider.d.ts","sourceRoot":"","sources":["../../../src/layout-global/app-theme-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAyEjC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,gBAAgB,UAAW,sBAAsB,4CAI7D,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { IAppMenu, IAppNav, IAppSocial, ENavKey, INavLink } from './types';
|
|
|
2
2
|
import type { IAppSiteBaseUrl } from '../types';
|
|
3
3
|
export declare const appLogoUrl = "images/logo.webp";
|
|
4
4
|
export declare const getAppLogoUrl: (base: IAppSiteBaseUrl) => string;
|
|
5
|
-
export declare const bgFooterUrl = "images/bg-footer.
|
|
5
|
+
export declare const bgFooterUrl = "images/bg-footer.jpg";
|
|
6
6
|
export declare const getBgFooterUrl: (base: IAppSiteBaseUrl) => string;
|
|
7
7
|
export declare const appSocialConfigs: IAppSocial[];
|
|
8
8
|
export declare const mapNavTitles: Record<ENavKey, string>;
|
|
@@ -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,
|
|
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,CAgD9E,CAAA;AAEF,eAAO,MAAM,oBAAoB,YAAa,eAAe,KAAG,QAAQ,EA+BvE,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,EAepE,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,EAmBxE,CAAA"}
|