dinocollab-shared 1.2.20 → 1.2.21

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.
@@ -1,2 +1,2 @@
1
- import{slicedToArray as r,objectSpread2 as t,toConsumableArray as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as n,jsx as o}from"react/jsx-runtime";import{useMemo as i,useState as u,useEffect as c}from"react";import{createRoot as d}from"react-dom/client";import{Dialog as l,Box as a,DialogContent as m,Typography as s,DialogActions as f,Button as p}from"@mui/material";import{CollectionsList as h}from"./units.js";import{ModalHeader as v}from"./modal-header.js";import{canAddGroup as g,generateGroupId as C}from"../helpers.js";import{NewCollectionButton as b,NewCollectionInput as I}from"../unit.control.js";import{GuideSteps as P}from"../guide-steps/index.js";var x=function(d){var C=d.open,x=d.onClose,S=d.onConfirm,j=d.groups,y=d.guideStepsProps,k=d.cartItem,G=i(function(){return null!=k&&k.ProductId?j.filter(function(r){var t;return null===(t=r.items)||void 0===t?void 0:t.some(function(r){return r.ProductId===k.ProductId})}).map(function(r){return r.id}).sort():[]},[j,k]),W=G.length>0?G:j.length>0?[j[0].id]:[],A=u(W),E=r(A,2),B=E[0],M=E[1],_=u(!1),D=r(_,2),H=D[0],K=D[1],L=u(""),O=r(L,2),R=O[0],T=O[1];c(function(){if(C){var r=G.length>0?G:j.length>0?[j[0].id]:[];M(r),K(!1),T("")}},[C,G,j.length]);var Y=function(){if(H&&R.trim())return!0;var r=e(B).sort();return G.length!==r.length||G.some(function(t,e){return t!==r[e]})},q=function(){M([]),K(!1),T(""),x()};return n(l,{open:C,onClose:q,maxWidth:"xs",fullWidth:!0,disableScrollLock:!0,keepMounted:!1,scroll:"paper",children:[o(v,{cartItem:k,onClose:q}),n(a,{component:"form",onSubmit:function(r){if(r.preventDefault(),Y())if(H&&R.trim())S([],[],R.trim());else{var t=B.filter(function(r){return!G.includes(r)}),e=G.filter(function(r){return!B.includes(r)});S(t,e)}else q()},children:[n(m,{children:[o(s,{variant:"subtitle1",sx:{mb:1,fontWeight:600},children:"Your Media Rights Package"}),g(j)&&(H?o(I,{value:R,onChange:T}):o(b,{onClick:function(){K(!0)}})),o(h,{groups:j,selectedGroupIds:B,onGroupSelect:function(r){M(function(t){return t.includes(r)?t.filter(function(t){return t!==r}):[].concat(e(t),[r])}),K(!1)}})]}),n(f,{sx:{px:3,pb:3},children:[y&&o(P,t({iconButtonProps:{color:"primary",sx:{mr:"auto"}}},y)),o(p,{onClick:q,variant:"outlined",type:"button",children:"Cancel"}),o(p,{type:"submit",variant:"contained",disabled:!!H&&!R.trim(),sx:{minWidth:100},children:function(){if(H)return"Create & Add";var r=Y();return G.length>0?r?"Save Changes":"OK":"Save"}()})]})]})]})},S=function(r){var e=r.cartItem,n=r.groups,i=r.guideStepsProps,u=r.addGroup,c=r.addItem,l=r.removeItem,a=document.createElement("div");document.body.appendChild(a);var m=d(a);m.render(o(x,{open:!0,onClose:function(){m.unmount(),document.body.removeChild(a)},onConfirm:function(r,n,o){if(e){if(o){var i=C();u({id:i,name:o});var d=t(t({},e),{},{GroupId:i});c(d)}else n.forEach(function(r){e.ProductId&&l(r,e.ProductId)}),r.forEach(function(r){var n=t(t({},e),{},{GroupId:r});c(n)});m.unmount(),document.body.removeChild(a)}},guideStepsProps:i,groups:n,cartItem:e}))};export{x as GroupSelectorModal,S as showGroupSelectorModal};
1
+ import{slicedToArray as r,toConsumableArray as t,objectSpread2 as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as o,jsx as n}from"react/jsx-runtime";import{createRoot as i}from"react-dom/client";import{useMemo as u,useState as c,useEffect as l}from"react";import{Dialog as d,Box as a,DialogContent as m,Typography as s,DialogActions as f,Button as p}from"@mui/material";import{CollectionsList as h}from"./units.js";import{GuideSteps as v}from"../guide-steps/index.js";import{ModalHeader as g}from"./modal-header.js";import{canAddGroup as C,generateGroupId as b}from"../helpers.js";import{NewCollectionButton as I,NewCollectionInput as x}from"../unit.control.js";var P=function(i){var b=i.open,P=i.onClose,y=i.onConfirm,S=i.groups,j=i.guideStepsProps,k=i.cartItem,G=u(function(){return null!=k&&k.ProductId?S.filter(function(r){var t;return null===(t=r.items)||void 0===t?void 0:t.some(function(r){return r.ProductId===k.ProductId})}).map(function(r){return r.id}).sort():[]},[S,k]),W=G.length>0?G:S.length>0?[S[0].id]:[],A=c(W),E=r(A,2),B=E[0],M=E[1],_=c(!1),D=r(_,2),H=D[0],K=D[1],L=c(""),O=r(L,2),R=O[0],T=O[1];l(function(){if(b){var r=G.length>0?G:S.length>0?[S[0].id]:[];M(r),K(!1),T("")}},[b,G,S.length]);var Y=u(function(){if(H&&R.trim())return!0;var r=t(B).sort();return G.length!==r.length||G.some(function(t,e){return t!==r[e]})},[H,R,B,G]),q=function(){M([]),K(!1),T(""),P()};return o(d,{open:b,onClose:q,maxWidth:"xs",fullWidth:!0,disableScrollLock:!0,keepMounted:!1,scroll:"paper",children:[n(g,{cartItem:k,onClose:q}),o(a,{component:"form",onSubmit:function(r){if(r.preventDefault(),Y)if(H&&R.trim())y([],[],R.trim());else{var t=B.filter(function(r){return!G.includes(r)}),e=G.filter(function(r){return!B.includes(r)});y(t,e)}else q()},children:[o(m,{children:[n(s,{variant:"subtitle1",sx:{mb:1,fontWeight:600},children:"Your Media Rights Package"}),C(S)&&(H?n(x,{value:R,onChange:T}):n(I,{onClick:function(){K(!0)}})),n(h,{groups:S,selectedGroupIds:B,onGroupSelect:function(r){M(function(e){return e.includes(r)?e.filter(function(t){return t!==r}):[].concat(t(e),[r])}),K(!1)}})]}),o(f,{sx:{px:3,pb:3},children:[j&&n(v,e({iconButtonProps:{color:"primary",sx:{mr:"auto"}}},j)),n(p,{onClick:q,variant:"text",type:"button",color:"inherit",children:"Cancel"}),n(p,{type:"submit",variant:Y?"contained":"outlined",disabled:!!H&&!R.trim(),color:"primary",sx:{minWidth:100},children:H?"Create & Add":G.length>0?Y?"Save Changes":"OK":"Save"})]})]})]})},y=function(r){var t=r.cartItem,o=r.groups,u=r.guideStepsProps,c=r.addGroup,l=r.addItem,d=r.removeItem,a=document.createElement("div");document.body.appendChild(a);var m=i(a);m.render(n(P,{open:!0,onClose:function(){m.unmount(),document.body.removeChild(a)},onConfirm:function(r,o,n){if(t){if(n){var i=b();c({id:i,name:n});var u=e(e({},t),{},{GroupId:i});l(u)}else o.forEach(function(r){t.ProductId&&d(r,t.ProductId)}),r.forEach(function(r){var o=e(e({},t),{},{GroupId:r});l(o)});m.unmount(),document.body.removeChild(a)}},guideStepsProps:u,groups:o,cartItem:t}))};export{P as GroupSelectorModal,y as showGroupSelectorModal};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"index.js","sources":["../../../src/media-right/group-selector/index.tsx"],"sourcesContent":["import { createRoot } from 'react-dom/client'\r\nimport { useState, useEffect, useMemo } from 'react'\r\nimport { Dialog, DialogContent, DialogActions, Button, Typography, Box } from '@mui/material'\r\nimport type { FC, FormEvent } from 'react'\r\nimport { CollectionsList } from './units'\r\nimport { GuideSteps } from '../guide-steps'\r\nimport { ModalHeader } from './modal-header'\r\nimport { canAddGroup, generateGroupId } from '../helpers'\r\nimport { NewCollectionButton, NewCollectionInput } from '../unit.control'\r\nimport type { IGuideStepsProps } from '../guide-steps'\r\nimport type { IMediaRightGroup, IMediaRightItem } from '../types'\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 isChanged = useMemo(() => {\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 return currentGroupIds.some((id, index) => id !== sortedSelected[index])\r\n }, [showNewGroupInput, newName, selectedGroupIds, currentGroupIds])\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 (!isChanged) {\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 // Case 1: Item already exists in some groups\r\n if (currentGroupIds.length > 0) {\r\n return isChanged ? '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='text' type='button' color='inherit'>\r\n Cancel\r\n </Button>\r\n <Button type='submit' variant={isChanged ? 'contained' : 'outlined'} disabled={isConfirmDisabled()} color='primary' 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({ id: newGroupId, name: newGroupName })\r\n // Add item to the new group\r\n const cartItemWithGroup: IMediaRightItem = { ...cartItem, GroupId: newGroupId }\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 = { ...cartItem, GroupId: groupId }\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","isChanged","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","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,6 +1,6 @@
1
1
  import type { FC } from 'react';
2
- import type { IMediaRightGroup, IMediaRightItem } from '../types';
3
2
  import type { IGuideStepsProps } from '../guide-steps';
3
+ import type { IMediaRightGroup, IMediaRightItem } from '../types';
4
4
  export interface IGroupSelectorModalProps {
5
5
  open: boolean;
6
6
  guideStepsProps?: IGuideStepsProps;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-right/group-selector/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAMjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAA;IACb,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/F,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;CACjC;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,wBAAwB,CAmI3D,CAAA;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;IAChC,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC,KAAK,IAAI,CAAA;IACrF,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CACzD;AAED,eAAO,MAAM,sBAAsB,yEAA0E,4BAA4B,SAuDxI,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-right/group-selector/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAA;AAM1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAEjE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAA;IACb,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/F,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;CACjC;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,wBAAwB,CA4I3D,CAAA;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;IAChC,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC,KAAK,IAAI,CAAA;IACrF,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CACzD;AAED,eAAO,MAAM,sBAAsB,yEAA0E,4BAA4B,SA8CxI,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-shared",
3
- "version": "1.2.20",
3
+ "version": "1.2.21",
4
4
  "description": "DinoCollab shared utilities and components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",