dinocollab-shared 1.2.23 → 1.2.24

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{objectSpread2 as o}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as n}from"react/jsx-runtime";import{useMemo as i}from"react";import{Typography as r}from"@mui/material";import t from"@mui/icons-material/Logout";import e from"@mui/icons-material/Login";import m from"@mui/icons-material/ManageAccounts";import{ButtonOrange as l,IconButtonOrange as a}from"../components/buttons.js";import{Profile as u}from"./profile.js";import f from"../components/responsive-display.js";var s=function(s){var c,p,g=s.isAuthenticated,d=s.profile;if(s.isLoading)return null;if(!g)return n(f,{xs:n(a,o(o(o({onClick:s.onLoginClick},s.hrefLogin?{component:"a",href:null!==(c=s.hrefLogin)&&void 0!==c?c:"/"}:{}),s.buttonLoginProps),{},{children:n(e,{fontSize:"small"})})),md:n(l,o(o(o({className:"animate-bounce",startIcon:n(e,{fontSize:"small"}),onClick:s.onLoginClick},s.hrefLogin?{component:"a",href:null!==(p=s.hrefLogin)&&void 0!==p?p:"/"}:{}),s.buttonLoginProps),{},{children:n(r,{variant:"h6",children:"Login"})}))});var h=i(function(){var o;return s.menu&&0!==s.menu.length?null!==(o=s.menu)&&void 0!==o?o:[]:[{title:"Manage Profile",icon:n(m,{fontSize:"small"})},{title:"Logout",icon:n(t,{fontSize:"small"})}]},[s.menu]);return n(u,{profile:d,menuConfigs:h})},c=function(i){var r=function(r){return n(s,o(o({},i),r))};return r.displayName="AuthWidget",r};export{s as AuthWidget,c as createAuthWidget,s as default};
1
+ import{objectSpread2 as o}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i}from"react/jsx-runtime";import{useMemo as n}from"react";import r from"@mui/icons-material/Logout";import t from"@mui/icons-material/Login";import e from"@mui/icons-material/ManageAccounts";import{IconButtonOrange as m}from"../components/buttons.js";import{Profile as l}from"./profile.js";var u=function(u){var a,f=u.isAuthenticated,s=u.profile;if(u.isLoading)return null;if(!f)return i(m,o(o(o({onClick:u.onLoginClick},u.hrefLogin?{component:"a",href:null!==(a=u.hrefLogin)&&void 0!==a?a:"/"}:{}),u.buttonLoginProps),{},{children:i(t,{fontSize:"small"})}));var c=n(function(){var o;return u.menu&&0!==u.menu.length?null!==(o=u.menu)&&void 0!==o?o:[]:[{title:"Manage Profile",icon:i(e,{fontSize:"small"})},{title:"Logout",icon:i(r,{fontSize:"small"})}]},[u.menu]);return i(l,{profile:s,menuConfigs:c})},a=function(n){var r=function(r){return i(u,o(o({},n),r))};return r.displayName="AuthWidget",r};export{u as AuthWidget,a as createAuthWidget,u as default};
2
2
  //# sourceMappingURL=widget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","sources":["../../src/auth/widget.tsx"],"sourcesContent":["import { FC, useMemo } from 'react'\r\nimport { ButtonProps, Typography } from '@mui/material'\r\nimport Logout from '@mui/icons-material/Logout'\r\nimport LoginIcon from '@mui/icons-material/Login'\r\nimport ManageAccountsIcon from '@mui/icons-material/ManageAccounts'\r\nimport { ButtonOrange, IconButtonOrange } from '../components/buttons'\r\nimport type { IAppSiteBaseUrl } from '../types'\r\nimport type { IAuthState, IIMenuConfigs } from './types'\r\nimport Profile from './profile'\r\nimport ResponsiveDisplay from '../components/responsive-display'\r\n\r\nexport interface IAuthBaseProps {\r\n baseUrl: IAppSiteBaseUrl\r\n fontSizeScale?: number\r\n // login\r\n hrefLogin?: string\r\n onLoginClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLDivElement, MouseEvent>) => void\r\n buttonLoginProps?: ButtonProps & { [key: string]: any }\r\n // menu\r\n menu?: IIMenuConfigs\r\n}\r\n\r\nexport interface IAuthWidgetProps extends IAuthState, IAuthBaseProps {}\r\n\r\nexport const AuthWidget: FC<IAuthWidgetProps> = (props) => {\r\n const { isAuthenticated, profile, isLoading } = props\r\n if (isLoading) return null\r\n\r\n if (!isAuthenticated) {\r\n return (\r\n <ResponsiveDisplay\r\n xs={\r\n <IconButtonOrange\r\n onClick={props.onLoginClick as any}\r\n {...(props.hrefLogin ? { component: 'a', href: props.hrefLogin ?? '/' } : {})}\r\n {...props.buttonLoginProps}\r\n >\r\n <LoginIcon fontSize='small' />\r\n </IconButtonOrange>\r\n }\r\n md={\r\n <ButtonOrange\r\n className='animate-bounce'\r\n startIcon={<LoginIcon fontSize='small' />}\r\n onClick={props.onLoginClick as any}\r\n {...(props.hrefLogin ? { component: 'a', href: props.hrefLogin ?? '/' } : {})}\r\n {...props.buttonLoginProps}\r\n >\r\n {/* <Typography variant='h6' sx={{ fontSize: `${(props.fontSizeScale ?? 1) * 0.9}rem` }}>\r\n Login\r\n </Typography> */}\r\n <Typography variant='h6'>Login</Typography>\r\n </ButtonOrange>\r\n }\r\n />\r\n )\r\n }\r\n\r\n const menuConfigs = useMemo(() => {\r\n if (!props.menu || props.menu.length === 0) {\r\n return [\r\n { title: 'Manage Profile', icon: <ManageAccountsIcon fontSize='small' /> },\r\n { title: 'Logout', icon: <Logout fontSize='small' /> }\r\n ]\r\n }\r\n return props.menu ?? []\r\n }, [props.menu])\r\n\r\n // If the user is authenticated, display the AuthWidget with user details\r\n return <Profile profile={profile} menuConfigs={menuConfigs} />\r\n}\r\nexport default AuthWidget\r\n\r\nexport const createAuthWidget = (params: IAuthBaseProps) => {\r\n const _AuthWidget: FC<Omit<IAuthWidgetProps, 'baseUrl'>> = (props) => <AuthWidget {...params} {...props} />\r\n _AuthWidget.displayName = 'AuthWidget'\r\n return _AuthWidget\r\n}\r\n"],"names":["AuthWidget","props","_props$hrefLogin","_props$hrefLogin2","isAuthenticated","profile","isLoading","_jsx","ResponsiveDisplay","xs","IconButtonOrange","_objectSpread","onClick","onLoginClick","hrefLogin","component","href","buttonLoginProps","children","LoginIcon","fontSize","md","ButtonOrange","className","startIcon","Typography","variant","menuConfigs","useMemo","_props$menu","menu","length","title","icon","ManageAccountsIcon","Logout","Profile","createAuthWidget","params","_AuthWidget","displayName"],"mappings":"6eAwBaA,EAAmC,SAACC,GAC/C,IAGsBC,EAAAC,EAHdC,EAAwCH,EAAxCG,gBAAiBC,EAAuBJ,EAAvBI,QACzB,GADgDJ,EAAdK,UACnB,OAAO,KAEtB,IAAKF,EACH,OACEG,EAACC,EACC,CAAAC,GACEF,EAACG,EAAgBC,EAAAA,EAAAA,EAAA,CACfC,QAASX,EAAMY,cACVZ,EAAMa,UAAY,CAAEC,UAAW,IAAKC,KAAqBd,QAAjBA,EAAED,EAAMa,iBAASZ,IAAAA,EAAAA,EAAI,KAAQ,CAAE,GACxED,EAAMgB,kBAAgB,CAAA,EAAA,CAAAC,SAE1BX,EAACY,EAAU,CAAAC,SAAS,aAGxBC,GACEd,EAACe,EAAYX,EAAAA,EAAAA,EAAA,CACXY,UAAU,iBACVC,UAAWjB,EAACY,EAAS,CAACC,SAAS,UAC/BR,QAASX,EAAMY,cACVZ,EAAMa,UAAY,CAAEC,UAAW,IAAKC,KAAqBb,QAAjBA,EAAEF,EAAMa,iBAASX,IAAAA,EAAAA,EAAI,KAAQ,CAAE,GACxEF,EAAMgB,kBAAgB,CAAA,EAAA,CAAAC,SAK1BX,EAACkB,EAAW,CAAAC,QAAQ,KAAuBR,SAAA,eAOrD,IAAMS,EAAcC,EAAQ,WAAK,IAAAC,EAC/B,OAAK5B,EAAM6B,MAA8B,IAAtB7B,EAAM6B,KAAKC,eAM9BF,EAAO5B,EAAM6B,YAAI,IAAAD,EAAAA,EAAI,GALZ,CACL,CAAEG,MAAO,iBAAkBC,KAAM1B,EAAC2B,EAAmB,CAAAd,SAAS,WAC9D,CAAEY,MAAO,SAAUC,KAAM1B,EAAC4B,EAAO,CAAAf,SAAS,WAIhD,EAAG,CAACnB,EAAM6B,OAGV,OAAOvB,EAAC6B,EAAO,CAAC/B,QAASA,EAASsB,YAAaA,GACjD,EAGaU,EAAmB,SAACC,GAC/B,IAAMC,EAAqD,SAACtC,GAAK,OAAKM,EAACP,EAAUW,EAAAA,EAAA,CAAA,EAAK2B,GAAYrC,GAAS,EAE3G,OADAsC,EAAYC,YAAc,aACnBD,CACT"}
1
+ {"version":3,"file":"widget.js","sources":["../../src/auth/widget.tsx"],"sourcesContent":["import { FC, useMemo } from 'react'\r\nimport { ButtonProps } from '@mui/material'\r\nimport Logout from '@mui/icons-material/Logout'\r\nimport LoginIcon from '@mui/icons-material/Login'\r\nimport ManageAccountsIcon from '@mui/icons-material/ManageAccounts'\r\nimport { IconButtonOrange } from '../components/buttons'\r\nimport type { IAppSiteBaseUrl } from '../types'\r\nimport type { IAuthState, IIMenuConfigs } from './types'\r\nimport Profile from './profile'\r\n\r\nexport interface IAuthBaseProps {\r\n baseUrl: IAppSiteBaseUrl\r\n fontSizeScale?: number\r\n // login\r\n hrefLogin?: string\r\n onLoginClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLDivElement, MouseEvent>) => void\r\n buttonLoginProps?: ButtonProps & { [key: string]: any }\r\n // menu\r\n menu?: IIMenuConfigs\r\n}\r\n\r\nexport interface IAuthWidgetProps extends IAuthState, IAuthBaseProps {}\r\n\r\nexport const AuthWidget: FC<IAuthWidgetProps> = (props) => {\r\n const { isAuthenticated, profile, isLoading } = props\r\n if (isLoading) return null\r\n\r\n if (!isAuthenticated) {\r\n return (\r\n <IconButtonOrange\r\n onClick={props.onLoginClick as any}\r\n {...(props.hrefLogin ? { component: 'a', href: props.hrefLogin ?? '/' } : {})}\r\n {...props.buttonLoginProps}\r\n >\r\n <LoginIcon fontSize='small' />\r\n </IconButtonOrange>\r\n )\r\n // return (\r\n // <ResponsiveDisplay\r\n // xs={\r\n // <IconButtonOrange\r\n // onClick={props.onLoginClick as any}\r\n // {...(props.hrefLogin ? { component: 'a', href: props.hrefLogin ?? '/' } : {})}\r\n // {...props.buttonLoginProps}\r\n // >\r\n // <LoginIcon fontSize='small' />\r\n // </IconButtonOrange>\r\n // }\r\n // md={\r\n // <ButtonOrange\r\n // className='animate-bounce'\r\n // startIcon={<LoginIcon fontSize='small' />}\r\n // onClick={props.onLoginClick as any}\r\n // {...(props.hrefLogin ? { component: 'a', href: props.hrefLogin ?? '/' } : {})}\r\n // {...props.buttonLoginProps}\r\n // >\r\n // {/* <Typography variant='h6' sx={{ fontSize: `${(props.fontSizeScale ?? 1) * 0.9}rem` }}>\r\n // Login\r\n // </Typography> */}\r\n // <Typography variant='h6'>Login</Typography>\r\n // </ButtonOrange>\r\n // }\r\n // />\r\n // )\r\n }\r\n\r\n const menuConfigs = useMemo(() => {\r\n if (!props.menu || props.menu.length === 0) {\r\n return [\r\n { title: 'Manage Profile', icon: <ManageAccountsIcon fontSize='small' /> },\r\n { title: 'Logout', icon: <Logout fontSize='small' /> }\r\n ]\r\n }\r\n return props.menu ?? []\r\n }, [props.menu])\r\n\r\n // If the user is authenticated, display the AuthWidget with user details\r\n return <Profile profile={profile} menuConfigs={menuConfigs} />\r\n}\r\nexport default AuthWidget\r\n\r\nexport const createAuthWidget = (params: IAuthBaseProps) => {\r\n const _AuthWidget: FC<Omit<IAuthWidgetProps, 'baseUrl'>> = (props) => <AuthWidget {...params} {...props} />\r\n _AuthWidget.displayName = 'AuthWidget'\r\n return _AuthWidget\r\n}\r\n"],"names":["AuthWidget","props","_props$hrefLogin","isAuthenticated","profile","isLoading","_jsx","IconButtonOrange","_objectSpread","onClick","onLoginClick","hrefLogin","component","href","buttonLoginProps","children","LoginIcon","fontSize","menuConfigs","useMemo","_props$menu","menu","length","title","icon","ManageAccountsIcon","Logout","Profile","createAuthWidget","params","_AuthWidget","displayName"],"mappings":"6XAuBaA,EAAmC,SAACC,GAC/C,IAGsBC,EAHdC,EAAwCF,EAAxCE,gBAAiBC,EAAuBH,EAAvBG,QACzB,GADgDH,EAAdI,UACnB,OAAO,KAEtB,IAAKF,EACH,OACEG,EAACC,EAAgBC,EAAAA,EAAAA,EAAA,CACfC,QAASR,EAAMS,cACVT,EAAMU,UAAY,CAAEC,UAAW,IAAKC,KAAqBX,QAAjBA,EAAED,EAAMU,iBAAST,IAAAA,EAAAA,EAAI,KAAQ,CAAE,GACxED,EAAMa,kBAAgB,CAAA,EAAA,CAAAC,SAE1BT,EAACU,EAAU,CAAAC,SAAS,aAgC1B,IAAMC,EAAcC,EAAQ,WAAK,IAAAC,EAC/B,OAAKnB,EAAMoB,MAA8B,IAAtBpB,EAAMoB,KAAKC,eAM9BF,EAAOnB,EAAMoB,YAAI,IAAAD,EAAAA,EAAI,GALZ,CACL,CAAEG,MAAO,iBAAkBC,KAAMlB,EAACmB,EAAmB,CAAAR,SAAS,WAC9D,CAAEM,MAAO,SAAUC,KAAMlB,EAACoB,EAAO,CAAAT,SAAS,WAIhD,EAAG,CAAChB,EAAMoB,OAGV,OAAOf,EAACqB,EAAO,CAACvB,QAASA,EAASc,YAAaA,GACjD,EAGaU,EAAmB,SAACC,GAC/B,IAAMC,EAAqD,SAAC7B,GAAK,OAAKK,EAACN,EAAUQ,EAAAA,EAAA,CAAA,EAAKqB,GAAY5B,GAAS,EAE3G,OADA6B,EAAYC,YAAc,aACnBD,CACT"}
@@ -1,2 +1,2 @@
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};
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 a}from"react";import{Badge as l,Stack as c,Typography as m,Button as u}from"@mui/material";import p from"@mui/icons-material/PlaylistPlay";import s from"@mui/icons-material/DriveFileMoveOutlined";import{EmptyState as d}from"./units.js";import{NewGroupArea as h}from"./new-group-area.js";import{canAddGroup as f,generateGroupId as g}from"../helpers.js";import{MenuStyled as v,mediaWidgetClasses as P}from"./styled.js";import{IconButtonDark as j}from"../../components/buttons.js";import{MediaGroupAccordion as C}from"./media-group-accordion.js";import{ItemTitlePropsContext as G}from"./item-title-props-context.js";import{useMediaRightStore as k,useMediaRightActions as y}from"../hooks.js";var T=function(T){var b,S=T.localStorageKey,M=T.hrefCart,x=T.buttonMoveToCartProps,D=T.onDetailClick,N=k({localStorageKey:S}).groups,z=y({localStorageKey:S}),K=i(null),O=r(K,2),w=O[0],B=O[1],E=i(!1),F=r(E,2),I=F[0],L=F[1],_=function(r){z.addGroup({name:r,id:g()})},A=function(r){z.updateGroup(r.id,r)},H=function(r){z.removeGroup(r)},R=function(r,o){z.removeItem(r,o)};return e(a,{children:[t(j,{onClick:function(r){return B(r.currentTarget)},children:t(l,{badgeContent:N.length||0,color:"error",children:t(p,{})})}),t(v,{disableScrollLock:!0,anchorEl:w,open:Boolean(w),onClose:function(){return B(null)},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:t(G.Provider,{value:{itemTitleProps:T.itemTitleProps,itemTitlePropsGetter:T.itemTitlePropsGetter,onClose:function(){return B(null)}},children:e(n,{children:[e(c,{spacing:1,className:P.header,children:[e(m,{variant:"h6",component:"span",className:P.headerText,children:["Your Media Rights Package (",null!==(b=N.length)&&void 0!==b?b:0," Package",N.length>1?"s":"",")"]}),f(N)&&t(h,{onSaveGroup:_})]}),0===N.length?t(d,{}):N.map(function(r){return t(C,{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:P.footer,children:t(u,o(o(o({},M?{component:"a",href:M}:{}),{},{color:"inherit",size:"small",endIcon:t(s,{}),onClick:function(r){B(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, 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
+ {"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 PlaylistPlayIcon from '@mui/icons-material/PlaylistPlay'\r\nimport DriveFileMoveOutlinedIcon from '@mui/icons-material/DriveFileMoveOutlined'\r\nimport { EmptyState } from './units'\r\nimport { NewGroupArea } from './new-group-area'\r\nimport { canAddGroup, generateGroupId } from '../helpers'\r\nimport { mediaWidgetClasses, MenuStyled } from './styled'\r\nimport { IconButtonDark } from '../../components/buttons'\r\nimport { MediaGroupAccordion } from './media-group-accordion'\r\nimport { ItemTitlePropsContext } from './item-title-props-context'\r\nimport { useMediaRightStore, useMediaRightActions } from '../hooks'\r\nimport type { IMediaRightGroup } from '../types'\r\nimport type { ITitlePropsContextValue } from './item-title-props-context'\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 <PlaylistPlayIcon />\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","PlaylistPlayIcon","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 +1 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/auth/widget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,WAAW,EAAc,MAAM,eAAe,CAAA;AAKvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAIxD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,cAAc,EAAE,UAAU,CAAC,KAAK,IAAI,CAAA;IAC5F,gBAAgB,CAAC,EAAE,WAAW,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;IAEvD,IAAI,CAAC,EAAE,aAAa,CAAA;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU,EAAE,cAAc;CAAG;AAEvE,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,gBAAgB,CA8C3C,CAAA;AACD,eAAe,UAAU,CAAA;AAEzB,eAAO,MAAM,gBAAgB,WAAY,cAAc,0CAItD,CAAA"}
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/auth/widget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAK3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGxD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,cAAc,EAAE,UAAU,CAAC,KAAK,IAAI,CAAA;IAC5F,gBAAgB,CAAC,EAAE,WAAW,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;IAEvD,IAAI,CAAC,EAAE,aAAa,CAAA;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU,EAAE,cAAc;CAAG;AAEvE,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAuD3C,CAAA;AACD,eAAe,UAAU,CAAA;AAEzB,eAAO,MAAM,gBAAgB,WAAY,cAAc,0CAItD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-right/media-widget/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAiB,WAAW,EAA6B,MAAM,eAAe,CAAA;AAWrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAGzE,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qBAAqB,CAAC,EAAE,WAAW,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;IAC5D,aAAa,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;CACvC;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAuG7D,CAAA;AAED,eAAO,MAAM,sBAAsB,WAAY,sBAAsB,wDAIpE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-right/media-widget/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAiB,WAAW,EAAqB,MAAM,eAAe,CAAA;AAY7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAEzE,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qBAAqB,CAAC,EAAE,WAAW,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;IAC5D,aAAa,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;CACvC;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAuG7D,CAAA;AAED,eAAO,MAAM,sBAAsB,WAAY,sBAAsB,wDAIpE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-shared",
3
- "version": "1.2.23",
3
+ "version": "1.2.24",
4
4
  "description": "DinoCollab shared utilities and components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -1,2 +0,0 @@
1
- import{jsx as r,Fragment as n}from"react/jsx-runtime";import e from"@mui/material/Box";var o=function(o){for(var t=Array.from(new Set(Object.values(o).filter(Boolean))),a={},i=o.xs,f=function(){var r=m[l];if(o[r]&&(i=o[r]),i){var n=t.indexOf(i);a[n]||(a[n]={xs:"none"}),a[n][r]="block",t.forEach(function(e,o){o!==n&&(a[o]||(a[o]={xs:"none"}),a[o][r]="none")})}},l=0,m=["xs","sm","md","lg","xl"];l<m.length;l++)f();return r(n,{children:t.map(function(n,o){return r(e,{sx:{display:a[o]},children:n},o)})})};export{o as default};
2
- //# sourceMappingURL=responsive-display.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"responsive-display.js","sources":["../../src/components/responsive-display.tsx"],"sourcesContent":["import React from 'react'\r\nimport Box from '@mui/material/Box'\r\n\r\ninterface ResponsiveDisplayProps {\r\n xs?: React.ReactNode\r\n sm?: React.ReactNode\r\n md?: React.ReactNode\r\n lg?: React.ReactNode\r\n xl?: React.ReactNode\r\n}\r\n\r\n/**\r\n * This component displays different content based on the screen's breakpoint.\r\n * It uses MUI's `sx` prop to efficiently show/hide content.\r\n *\r\n * Example:\r\n * <ResponsiveDisplay\r\n * xs={<MobileComponent />}\r\n * md={<DesktopComponent />}\r\n * />\r\n *\r\n * - On 'xs' and 'sm' screens, <MobileComponent /> will be displayed.\r\n * - On 'md', 'lg', and 'xl' screens, <DesktopComponent /> will be displayed.\r\n */\r\nconst ResponsiveDisplay: React.FC<ResponsiveDisplayProps> = (props) => {\r\n // Create a unique array of components to avoid duplicate rendering\r\n const uniqueComponents = Array.from(new Set(Object.values(props).filter(Boolean)))\r\n\r\n // Create an object to determine when each component should be displayed\r\n const displayRules: Record<string, any> = {}\r\n\r\n const breakpoints: (keyof ResponsiveDisplayProps)[] = ['xs', 'sm', 'md', 'lg', 'xl']\r\n let lastContent = props.xs\r\n\r\n for (const bp of breakpoints) {\r\n if (props[bp]) {\r\n lastContent = props[bp]\r\n }\r\n if (lastContent) {\r\n // Assign 'block' to the current breakpoint if it corresponds to the last available content\r\n const componentKey = uniqueComponents.indexOf(lastContent)\r\n if (!displayRules[componentKey]) {\r\n displayRules[componentKey] = { xs: 'none' } // Hide by default\r\n }\r\n displayRules[componentKey][bp] = 'block'\r\n\r\n // Hide other components at this breakpoint\r\n uniqueComponents.forEach((_, index) => {\r\n if (index !== componentKey) {\r\n if (!displayRules[index]) {\r\n displayRules[index] = { xs: 'none' }\r\n }\r\n displayRules[index][bp] = 'none'\r\n }\r\n })\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {uniqueComponents.map((component, index) => (\r\n <Box key={index} sx={{ display: displayRules[index] }}>\r\n {component}\r\n </Box>\r\n ))}\r\n </>\r\n )\r\n}\r\n\r\nexport default ResponsiveDisplay\r\n"],"names":["ResponsiveDisplay","props","uniqueComponents","Array","from","Set","Object","values","filter","Boolean","displayRules","lastContent","xs","_loop","bp","_breakpoints","_i","componentKey","indexOf","forEach","_","index","length","_jsx","_Fragment","children","map","component","Box","sx","display"],"mappings":"uFAwBA,IAAMA,EAAsD,SAACC,GAU3D,IARA,IAAMC,EAAmBC,MAAMC,KAAK,IAAIC,IAAIC,OAAOC,OAAON,GAAOO,OAAOC,WAGlEC,EAAoC,CAAE,EAGxCC,EAAcV,EAAMW,GAAEC,EAAAA,WAErB,IAAMC,EAAEC,EAAAC,GAIX,GAHIf,EAAMa,KACRH,EAAcV,EAAMa,IAElBH,EAAa,CAEf,IAAMM,EAAef,EAAiBgB,QAAQP,GACzCD,EAAaO,KAChBP,EAAaO,GAAgB,CAAEL,GAAI,SAErCF,EAAaO,GAAcH,GAAM,QAGjCZ,EAAiBiB,QAAQ,SAACC,EAAGC,GACvBA,IAAUJ,IACPP,EAAaW,KAChBX,EAAaW,GAAS,CAAET,GAAI,SAE9BF,EAAaW,GAAOP,GAAM,OAE9B,EACD,CACF,EAtBDE,EAAA,EAAAD,EAHsD,CAAC,KAAM,KAAM,KAAM,KAAM,MAGnDC,EAAAD,EAAAO,OAAAN,IAAAH,IAwB5B,OACEU,EACGC,EAAA,CAAAC,SAAAvB,EAAiBwB,IAAI,SAACC,EAAWN,GAAK,OACrCE,EAACK,EAAgB,CAAAC,GAAI,CAAEC,QAASpB,EAAaW,IAAQI,SAClDE,GADON,EAGX,IAGP"}