dinocollab-shared 1.1.13 → 1.1.15
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/widget.js +1 -1
- package/dist/auth/widget.js.map +1 -1
- package/dist/cart/widget.js +1 -1
- package/dist/cart/widget.js.map +1 -1
- package/dist/components/buttons.js +1 -1
- package/dist/components/buttons.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/layout-global/mobile-menu.styled.js +1 -1
- package/dist/layout-global/mobile-menu.styled.js.map +1 -1
- package/dist/layout-global/ui.units.js +1 -1
- package/dist/layout-global/ui.units.js.map +1 -1
- package/dist/media-right/hook.js.map +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/notification/widget.js +1 -1
- package/dist/notification/widget.js.map +1 -1
- package/dist/types/auth/widget.d.ts +4 -3
- package/dist/types/auth/widget.d.ts.map +1 -1
- package/dist/types/components/buttons.d.ts +8 -2
- package/dist/types/components/buttons.d.ts.map +1 -1
- package/dist/types/layout-global/ui.units.d.ts +1 -11
- package/dist/types/layout-global/ui.units.d.ts.map +1 -1
- package/dist/types/media-right/hook.d.ts +8 -8
- package/dist/types/media-right/hook.d.ts.map +1 -1
- package/dist/types/media-right/types.d.ts +2 -2
- package/dist/types/media-right/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/auth/widget.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{objectSpread2 as o}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as
|
|
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 l from"@mui/icons-material/ManageAccounts";import{ButtonOrange as m,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,d=s.isAuthenticated,h=s.profile;if(s.isLoading)return null;if(!d)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(m,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",sx:{fontSize:"".concat(.9*(null!==(g=s.fontSizeScale)&&void 0!==g?g:1),"rem")},children:"Login"})}))});var L=i(function(){var o;return s.menu&&0!==s.menu.length?null!==(o=s.menu)&&void 0!==o?o:[]:[{title:"Manage Profile",icon:n(l,{fontSize:"small"})},{title:"Logout",icon:n(t,{fontSize:"small"})}]},[s.menu]);return n(u,{profile:h,menuConfigs:L})},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};
|
|
2
2
|
//# sourceMappingURL=widget.js.map
|
package/dist/auth/widget.js.map
CHANGED
|
@@ -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 {
|
|
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 </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","_props$fontSizeScale","isAuthenticated","profile","isLoading","_jsx","ResponsiveDisplay","xs","IconButtonOrange","_objectSpread","onClick","onLoginClick","hrefLogin","component","href","buttonLoginProps","children","LoginIcon","fontSize","md","ButtonOrange","className","startIcon","Typography","variant","sx","concat","fontSizeScale","menuConfigs","useMemo","_props$menu","menu","length","title","icon","ManageAccountsIcon","Logout","Profile","createAuthWidget","params","_AuthWidget","displayName"],"mappings":"6eAwBaA,EAAmC,SAACC,GAC/C,IAGsBC,EAAAC,EAAAC,EAHdC,EAAwCJ,EAAxCI,gBAAiBC,EAAuBL,EAAvBK,QACzB,GADgDL,EAAdM,UACnB,OAAO,KAEtB,IAAKF,EACH,OACEG,EAACC,EAAiB,CAChBC,GACEF,EAACG,EAAgBC,EAAAA,EAAAA,EAAA,CACfC,QAASZ,EAAMa,cACVb,EAAMc,UAAY,CAAEC,UAAW,IAAKC,KAAqBf,QAAjBA,EAAED,EAAMc,iBAASb,IAAAA,EAAAA,EAAI,KAAQ,CAAE,GACxED,EAAMiB,kBAAgB,CAAA,EAAA,CAAAC,SAE1BX,EAACY,GAAUC,SAAS,aAGxBC,GACEd,EAACe,EAAYX,EAAAA,EAAAA,EAAA,CACXY,UAAU,iBACVC,UAAWjB,EAACY,EAAS,CAACC,SAAS,UAC/BR,QAASZ,EAAMa,cACVb,EAAMc,UAAY,CAAEC,UAAW,IAAKC,KAAqBd,QAAjBA,EAAEF,EAAMc,iBAASZ,IAAAA,EAAAA,EAAI,KAAQ,CAAE,GACxEF,EAAMiB,kBAAgB,CAAA,EAAA,CAAAC,SAE1BX,EAACkB,EAAU,CAACC,QAAQ,KAAKC,GAAI,CAAEP,YAAQQ,OAAkC,IAAT,QAApBzB,EAACH,EAAM6B,qBAAa1B,IAAAA,EAAAA,EAAI,GAAQ,QAAOe,SAAA,eAS7F,IAAMY,EAAcC,EAAQ,WAAK,IAAAC,EAC/B,OAAKhC,EAAMiC,MAA8B,IAAtBjC,EAAMiC,KAAKC,eAM9BF,EAAOhC,EAAMiC,YAAI,IAAAD,EAAAA,EAAI,GALZ,CACL,CAAEG,MAAO,iBAAkBC,KAAM7B,EAAC8B,EAAmB,CAAAjB,SAAS,WAC9D,CAAEe,MAAO,SAAUC,KAAM7B,EAAC+B,EAAO,CAAAlB,SAAS,WAIhD,EAAG,CAACpB,EAAMiC,OAGV,OAAO1B,EAACgC,EAAO,CAAClC,QAASA,EAASyB,YAAaA,GACjD,EAGaU,EAAmB,SAACC,GAC/B,IAAMC,EAAqD,SAAC1C,GAAK,OAAKO,EAACR,EAAUY,EAAAA,EAAA,CAAA,EAAK8B,GAAYzC,GAAS,EAE3G,OADA0C,EAAYC,YAAc,aACnBD,CACT"}
|
package/dist/cart/widget.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as r,createClass as e,objectSpread2 as t,classCallCheck as n,callSuper as o,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as a}from"react/jsx-runtime";import{Component as c,Fragment as s}from"react";import{ImageWithFallback as d}from"dinocollab-core/components";import{Badge as u,Typography as m,Divider as p,Button as h,Box as v,IconButton as f}from"@mui/material";import C from"@mui/icons-material/Remove";import g from"@mui/icons-material/ShoppingCartOutlined";import x from"@mui/icons-material/ShoppingCartCheckout";import{getTotalData as b}from"./helpers.js";import{
|
|
1
|
+
import{inherits as r,createClass as e,objectSpread2 as t,classCallCheck as n,callSuper as o,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as a}from"react/jsx-runtime";import{Component as c,Fragment as s}from"react";import{ImageWithFallback as d}from"dinocollab-core/components";import{Badge as u,Typography as m,Divider as p,Button as h,Box as v,IconButton as f}from"@mui/material";import C from"@mui/icons-material/Remove";import g from"@mui/icons-material/ShoppingCartOutlined";import x from"@mui/icons-material/ShoppingCartCheckout";import{getTotalData as b}from"./helpers.js";import{IconButtonDark as y}from"../components/buttons.js";import{NoDataPanel as k}from"../components/no-data-panel.js";import{MenuStyled as P,CartContentStyled as T,cartContentClasses as N}from"./styled.js";var S=function(){function S(r){var e;return n(this,S),e=o(this,S,[r]),i(e,"render",function(){var r;return a(s,{children:[l(y,{onClick:function(r){return e.onOpen(r.currentTarget)},children:l(u,{badgeContent:e.state.hydrated&&null!==(r=e.carts.length)&&void 0!==r?r:0,color:"error",children:l(g,{})})}),l(P,{disableScrollLock:!0,anchorEl:e.state.anchorEl,open:Boolean(e.state.anchorEl),onClose:e.onClose,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:e.renderContent()})]})}),i(e,"renderContent",function(){var r,n=b(e.carts);return a(T,{children:[a("div",{className:N.header,children:[a(m,{variant:"h6",component:"span",sx:{flex:1},children:["Your Cart (",null!==(r=n.quantity)&&void 0!==r?r:0," items)"]}),a(m,{variant:"h6",component:"span",children:["Total: $ ",n.price.toFixed(2)]})]}),l(p,{}),a("div",{className:N.items,children:[e.carts.map(function(r,t){return l(s,{children:e.renderItem(r)},"key"+t)}),e.carts.length<1&&l(k,{title:"Your cart is empty",subTitle:"Try adding some products",sx:{height:"100%"}})]}),l(p,{}),l("div",{className:N.footer,children:l(h,t(t(t({},e.props.hrefCart?{component:"a",href:e.props.hrefCart}:{}),{},{color:"inherit",endIcon:l(x,{}),onClick:function(r){e.onClose(),e.props.onMoveToCartClick&&e.props.onMoveToCartClick(r)},disabled:e.carts.length<1},e.props.buttonMoveToCartProps),{},{children:"Show in cart"}))})]})}),i(e,"renderTitle",function(r){var n,o=e.props,i=o.itemTitleProps,a=o.itemTitlePropsGetter,c=a?a(r,e.onClose):null!=i?i:{};return l(m,t(t({className:N.itemTitle,noWrap:!0,variant:"subtitle1"},c),{},{children:null!==(n=r.ProductName)&&void 0!==n?n:"Unknown Product"}))}),i(e,"renderItem",function(r){var t,n,o,i;return a("div",{className:N.item,children:[l(d,{className:N.itemImg,src:null==r?void 0:r.PictureUrl,title:null==r?void 0:r.PictureUrl,fallbackSrc:"images/default-video.webp",alt:"product-picture"}),a("div",{className:N.itemContent,children:[l(m,{className:N.itemTag,variant:"caption",sx:{color:null!==(t=r.PriceColor)&&void 0!==t?t:"#000"},children:null!==(n=r.PriceName)&&void 0!==n?n:"Unknown Price"}),e.renderTitle(r),a(v,{sx:{display:"flex",alignItems:"flex-end",gap:"2px",justifyContent:"flex-end"},children:[a(m,{variant:"subtitle1",children:["$ ",null!==(o=r.Price)&&void 0!==o?o:0]}),a(m,{variant:"body1",sx:{fontSize:"14px",mb:"3px",color:"#818181"},children:["x",null!==(i=r.Amount)&&void 0!==i?i:0," urls"]})]})]}),l(f,{size:"small",onClick:function(){var t,n;return null===(t=(n=e.props).onRemoveCart)||void 0===t?void 0:t.call(n,r)},sx:{color:"#818181"},children:l(C,{})})]})}),i(e,"onOpen",function(r){e.setState({anchorEl:r})}),i(e,"onClose",function(){e.setState({anchorEl:null})}),e.state={anchorEl:null,hydrated:!1},e}return r(S,c),e(S,[{key:"carts",get:function(){var r;return null!==(r=this.props.carts)&&void 0!==r?r:[]}},{key:"componentDidMount",value:function(){this.setState({hydrated:!0})}}])}(),j=function(r){var e=function(e){return l(S,t(t({},r),e))};return e.displayName="CartWidget",e};export{S as CartWidget,j as createCartWidget};
|
|
2
2
|
//# sourceMappingURL=widget.js.map
|
package/dist/cart/widget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.js","sources":["../../src/cart/widget.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\r\nimport { ImageWithFallback } from 'dinocollab-core/components'\r\nimport { Badge, Box, Button, ButtonProps, Divider, IconButton, Typography } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport type { TypographyProps } from '@mui/material'\r\nimport RemoveIcon from '@mui/icons-material/Remove'\r\nimport ShoppingCartOutlinedIcon from '@mui/icons-material/ShoppingCartOutlined'\r\nimport ShoppingCartCheckoutIcon from '@mui/icons-material/ShoppingCartCheckout'\r\nimport { ICartItem } from './types'\r\nimport { getTotalData } from './helpers'\r\nimport { IAppSiteBaseUrl } from '../types'\r\nimport { DarkIconButton, NoDataPanel } from '../components'\r\nimport { cartContentClasses, CartContentStyled, MenuStyled } from './styled'\r\n\r\ntype ITypographyProps = TypographyProps & { [key: string]: any }\r\n\r\ninterface ICartWidgetProps {\r\n baseUrl: IAppSiteBaseUrl\r\n carts?: ICartItem[]\r\n hrefCart?: string\r\n buttonMoveToCartProps?: ButtonProps & { [key: string]: any }\r\n storageKey?: string\r\n onRemoveCart?: (item: ICartItem) => void\r\n onMoveToCartClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLButtonElement, MouseEvent>) => void\r\n itemTitleProps?: ITypographyProps\r\n itemTitlePropsGetter?: (item: ICartItem, close?: () => void) => ITypographyProps\r\n}\r\n\r\ninterface ICartWidgetState {\r\n anchorEl: HTMLElement | null\r\n hydrated: boolean\r\n}\r\n\r\nexport class CartWidget extends Component<ICartWidgetProps, ICartWidgetState> {\r\n constructor(props: ICartWidgetProps) {\r\n super(props)\r\n this.state = { anchorEl: null, hydrated: false }\r\n }\r\n\r\n get carts() {\r\n return this.props.carts ?? []\r\n }\r\n\r\n componentDidMount() {\r\n // When mounted on the client, set hydrated = true\r\n this.setState({ hydrated: true })\r\n }\r\n\r\n render = () => (\r\n <Fragment>\r\n <DarkIconButton onClick={(e) => this.onOpen(e.currentTarget)}>\r\n <Badge badgeContent={this.state.hydrated ? this.carts.length ?? 0 : 0} color='error'>\r\n <ShoppingCartOutlinedIcon />\r\n </Badge>\r\n </DarkIconButton>\r\n <MenuStyled\r\n disableScrollLock\r\n anchorEl={this.state.anchorEl}\r\n open={Boolean(this.state.anchorEl)}\r\n onClose={this.onClose}\r\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n MenuListProps={{ component: 'div' }}\r\n >\r\n {this.renderContent()}\r\n </MenuStyled>\r\n </Fragment>\r\n )\r\n\r\n renderContent = () => {\r\n const totalData = getTotalData(this.carts)\r\n return (\r\n <CartContentStyled>\r\n <div className={cartContentClasses.header}>\r\n <Typography variant='h6' component='span' sx={{ flex: 1 }}>\r\n Your Cart ({totalData.quantity ?? 0} items)\r\n </Typography>\r\n <Typography variant='h6' component='span'>\r\n Total: $ {totalData.price.toFixed(2)}\r\n </Typography>\r\n </div>\r\n <Divider />\r\n <div className={cartContentClasses.items}>\r\n {this.carts.map((x, i) => (\r\n <Fragment key={'key' + i}>{this.renderItem(x)}</Fragment>\r\n ))}\r\n {this.carts.length < 1 && <NoDataPanel title='Your cart is empty' subTitle='Try adding some products' sx={{ height: '100%' }} />}\r\n </div>\r\n <Divider />\r\n <div className={cartContentClasses.footer}>\r\n <Button\r\n {...(this.props.hrefCart ? { component: 'a', href: this.props.hrefCart } : {})}\r\n color='inherit'\r\n endIcon={<ShoppingCartCheckoutIcon />}\r\n onClick={(event) => {\r\n this.onClose()\r\n if (this.props.onMoveToCartClick) {\r\n this.props.onMoveToCartClick(event as React.MouseEvent<HTMLAnchorElement | HTMLButtonElement, MouseEvent>)\r\n }\r\n }}\r\n disabled={this.carts.length < 1}\r\n {...this.props.buttonMoveToCartProps}\r\n >\r\n Show in cart\r\n </Button>\r\n </div>\r\n </CartContentStyled>\r\n )\r\n }\r\n\r\n renderTitle = (item: ICartItem) => {\r\n const { itemTitleProps, itemTitlePropsGetter } = this.props\r\n const currentProps: ITypographyProps = itemTitlePropsGetter ? itemTitlePropsGetter(item, this.onClose) : itemTitleProps ?? {}\r\n return (\r\n <Typography className={cartContentClasses.itemTitle} noWrap variant='subtitle1' {...currentProps}>\r\n {item.ProductName ?? 'Unknown Product'}\r\n </Typography>\r\n )\r\n }\r\n\r\n renderItem = (item: ICartItem) => (\r\n <div className={cartContentClasses.item}>\r\n <ImageWithFallback\r\n className={cartContentClasses.itemImg}\r\n src={item?.PictureUrl}\r\n title={item?.PictureUrl}\r\n fallbackSrc='images/default-video.webp'\r\n alt='product-picture'\r\n />\r\n <div className={cartContentClasses.itemContent}>\r\n <Typography className={cartContentClasses.itemTag} variant='caption' sx={{ color: item.PriceColor ?? '#000' }}>\r\n {item.PriceName ?? 'Unknown Price'}\r\n </Typography>\r\n {this.renderTitle(item)}\r\n <Box sx={{ display: 'flex', alignItems: 'flex-end', gap: '2px', justifyContent: 'flex-end' }}>\r\n <Typography variant='subtitle1'>$ {item.Price ?? 0}</Typography>\r\n <Typography variant='body1' sx={{ fontSize: '14px', mb: '3px', color: '#818181' }}>\r\n x{item.Amount ?? 0} urls\r\n </Typography>\r\n </Box>\r\n </div>\r\n <IconButton size='small' onClick={() => this.props.onRemoveCart?.(item)} sx={{ color: '#818181' }}>\r\n <RemoveIcon />\r\n </IconButton>\r\n </div>\r\n )\r\n\r\n onOpen = (target: HTMLElement) => {\r\n this.setState({ anchorEl: target })\r\n }\r\n\r\n onClose = () => {\r\n this.setState({ anchorEl: null })\r\n }\r\n}\r\n\r\nexport const createCartWidget = (params: ICartWidgetProps) => {\r\n const _CartWidget: FC<Partial<ICartWidgetProps>> = (props) => <CartWidget {...params} {...props} />\r\n _CartWidget.displayName = 'CartWidget'\r\n return _CartWidget\r\n}\r\n"],"names":["CartWidget","props","_this","_classCallCheck","_callSuper","_defineProperty","_this$carts$length","_jsxs","Fragment","children","_jsx","DarkIconButton","onClick","e","onOpen","currentTarget","Badge","badgeContent","state","hydrated","carts","length","color","ShoppingCartOutlinedIcon","MenuStyled","disableScrollLock","anchorEl","open","Boolean","onClose","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","renderContent","_totalData$quantity","totalData","getTotalData","CartContentStyled","className","cartContentClasses","header","Typography","variant","sx","flex","quantity","price","toFixed","Divider","items","map","x","i","renderItem","NoDataPanel","title","subTitle","height","footer","Button","_objectSpread","hrefCart","href","endIcon","ShoppingCartCheckoutIcon","event","onMoveToCartClick","disabled","buttonMoveToCartProps","item","_item$ProductName","_this$props","itemTitleProps","itemTitlePropsGetter","currentProps","itemTitle","noWrap","ProductName","_item$PriceColor","_item$PriceName","_item$Price","_item$Amount","ImageWithFallback","itemImg","src","PictureUrl","fallbackSrc","alt","itemContent","itemTag","PriceColor","PriceName","renderTitle","Box","display","alignItems","gap","justifyContent","Price","fontSize","mb","Amount","IconButton","size","_this$props$onRemoveC","_this$props2","onRemoveCart","call","RemoveIcon","target","setState","_inherits","Component","_createClass","key","get","_this$props$carts","this","value","createCartWidget","params","_CartWidget","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"widget.js","sources":["../../src/cart/widget.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\r\nimport { ImageWithFallback } from 'dinocollab-core/components'\r\nimport { Badge, Box, Button, ButtonProps, Divider, IconButton, Typography } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport type { TypographyProps } from '@mui/material'\r\nimport RemoveIcon from '@mui/icons-material/Remove'\r\nimport ShoppingCartOutlinedIcon from '@mui/icons-material/ShoppingCartOutlined'\r\nimport ShoppingCartCheckoutIcon from '@mui/icons-material/ShoppingCartCheckout'\r\nimport { ICartItem } from './types'\r\nimport { getTotalData } from './helpers'\r\nimport { IAppSiteBaseUrl } from '../types'\r\nimport { IconButtonDark, NoDataPanel } from '../components'\r\nimport { cartContentClasses, CartContentStyled, MenuStyled } from './styled'\r\n\r\ntype ITypographyProps = TypographyProps & { [key: string]: any }\r\n\r\ninterface ICartWidgetProps {\r\n baseUrl: IAppSiteBaseUrl\r\n carts?: ICartItem[]\r\n hrefCart?: string\r\n buttonMoveToCartProps?: ButtonProps & { [key: string]: any }\r\n storageKey?: string\r\n onRemoveCart?: (item: ICartItem) => void\r\n onMoveToCartClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLButtonElement, MouseEvent>) => void\r\n itemTitleProps?: ITypographyProps\r\n itemTitlePropsGetter?: (item: ICartItem, close?: () => void) => ITypographyProps\r\n}\r\n\r\ninterface ICartWidgetState {\r\n anchorEl: HTMLElement | null\r\n hydrated: boolean\r\n}\r\n\r\nexport class CartWidget extends Component<ICartWidgetProps, ICartWidgetState> {\r\n constructor(props: ICartWidgetProps) {\r\n super(props)\r\n this.state = { anchorEl: null, hydrated: false }\r\n }\r\n\r\n get carts() {\r\n return this.props.carts ?? []\r\n }\r\n\r\n componentDidMount() {\r\n // When mounted on the client, set hydrated = true\r\n this.setState({ hydrated: true })\r\n }\r\n\r\n render = () => (\r\n <Fragment>\r\n <IconButtonDark onClick={(e) => this.onOpen(e.currentTarget)}>\r\n <Badge badgeContent={this.state.hydrated ? this.carts.length ?? 0 : 0} color='error'>\r\n <ShoppingCartOutlinedIcon />\r\n </Badge>\r\n </IconButtonDark>\r\n <MenuStyled\r\n disableScrollLock\r\n anchorEl={this.state.anchorEl}\r\n open={Boolean(this.state.anchorEl)}\r\n onClose={this.onClose}\r\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n MenuListProps={{ component: 'div' }}\r\n >\r\n {this.renderContent()}\r\n </MenuStyled>\r\n </Fragment>\r\n )\r\n\r\n renderContent = () => {\r\n const totalData = getTotalData(this.carts)\r\n return (\r\n <CartContentStyled>\r\n <div className={cartContentClasses.header}>\r\n <Typography variant='h6' component='span' sx={{ flex: 1 }}>\r\n Your Cart ({totalData.quantity ?? 0} items)\r\n </Typography>\r\n <Typography variant='h6' component='span'>\r\n Total: $ {totalData.price.toFixed(2)}\r\n </Typography>\r\n </div>\r\n <Divider />\r\n <div className={cartContentClasses.items}>\r\n {this.carts.map((x, i) => (\r\n <Fragment key={'key' + i}>{this.renderItem(x)}</Fragment>\r\n ))}\r\n {this.carts.length < 1 && <NoDataPanel title='Your cart is empty' subTitle='Try adding some products' sx={{ height: '100%' }} />}\r\n </div>\r\n <Divider />\r\n <div className={cartContentClasses.footer}>\r\n <Button\r\n {...(this.props.hrefCart ? { component: 'a', href: this.props.hrefCart } : {})}\r\n color='inherit'\r\n endIcon={<ShoppingCartCheckoutIcon />}\r\n onClick={(event) => {\r\n this.onClose()\r\n if (this.props.onMoveToCartClick) {\r\n this.props.onMoveToCartClick(event as React.MouseEvent<HTMLAnchorElement | HTMLButtonElement, MouseEvent>)\r\n }\r\n }}\r\n disabled={this.carts.length < 1}\r\n {...this.props.buttonMoveToCartProps}\r\n >\r\n Show in cart\r\n </Button>\r\n </div>\r\n </CartContentStyled>\r\n )\r\n }\r\n\r\n renderTitle = (item: ICartItem) => {\r\n const { itemTitleProps, itemTitlePropsGetter } = this.props\r\n const currentProps: ITypographyProps = itemTitlePropsGetter ? itemTitlePropsGetter(item, this.onClose) : itemTitleProps ?? {}\r\n return (\r\n <Typography className={cartContentClasses.itemTitle} noWrap variant='subtitle1' {...currentProps}>\r\n {item.ProductName ?? 'Unknown Product'}\r\n </Typography>\r\n )\r\n }\r\n\r\n renderItem = (item: ICartItem) => (\r\n <div className={cartContentClasses.item}>\r\n <ImageWithFallback\r\n className={cartContentClasses.itemImg}\r\n src={item?.PictureUrl}\r\n title={item?.PictureUrl}\r\n fallbackSrc='images/default-video.webp'\r\n alt='product-picture'\r\n />\r\n <div className={cartContentClasses.itemContent}>\r\n <Typography className={cartContentClasses.itemTag} variant='caption' sx={{ color: item.PriceColor ?? '#000' }}>\r\n {item.PriceName ?? 'Unknown Price'}\r\n </Typography>\r\n {this.renderTitle(item)}\r\n <Box sx={{ display: 'flex', alignItems: 'flex-end', gap: '2px', justifyContent: 'flex-end' }}>\r\n <Typography variant='subtitle1'>$ {item.Price ?? 0}</Typography>\r\n <Typography variant='body1' sx={{ fontSize: '14px', mb: '3px', color: '#818181' }}>\r\n x{item.Amount ?? 0} urls\r\n </Typography>\r\n </Box>\r\n </div>\r\n <IconButton size='small' onClick={() => this.props.onRemoveCart?.(item)} sx={{ color: '#818181' }}>\r\n <RemoveIcon />\r\n </IconButton>\r\n </div>\r\n )\r\n\r\n onOpen = (target: HTMLElement) => {\r\n this.setState({ anchorEl: target })\r\n }\r\n\r\n onClose = () => {\r\n this.setState({ anchorEl: null })\r\n }\r\n}\r\n\r\nexport const createCartWidget = (params: ICartWidgetProps) => {\r\n const _CartWidget: FC<Partial<ICartWidgetProps>> = (props) => <CartWidget {...params} {...props} />\r\n _CartWidget.displayName = 'CartWidget'\r\n return _CartWidget\r\n}\r\n"],"names":["CartWidget","props","_this","_classCallCheck","_callSuper","_defineProperty","_this$carts$length","_jsxs","Fragment","children","_jsx","IconButtonDark","onClick","e","onOpen","currentTarget","Badge","badgeContent","state","hydrated","carts","length","color","ShoppingCartOutlinedIcon","MenuStyled","disableScrollLock","anchorEl","open","Boolean","onClose","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","renderContent","_totalData$quantity","totalData","getTotalData","CartContentStyled","className","cartContentClasses","header","Typography","variant","sx","flex","quantity","price","toFixed","Divider","items","map","x","i","renderItem","NoDataPanel","title","subTitle","height","footer","Button","_objectSpread","hrefCart","href","endIcon","ShoppingCartCheckoutIcon","event","onMoveToCartClick","disabled","buttonMoveToCartProps","item","_item$ProductName","_this$props","itemTitleProps","itemTitlePropsGetter","currentProps","itemTitle","noWrap","ProductName","_item$PriceColor","_item$PriceName","_item$Price","_item$Amount","ImageWithFallback","itemImg","src","PictureUrl","fallbackSrc","alt","itemContent","itemTag","PriceColor","PriceName","renderTitle","Box","display","alignItems","gap","justifyContent","Price","fontSize","mb","Amount","IconButton","size","_this$props$onRemoveC","_this$props2","onRemoveCart","call","RemoveIcon","target","setState","_inherits","Component","_createClass","key","get","_this$props$carts","this","value","createCartWidget","params","_CartWidget","displayName"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{styled as o,IconButton as r}from"@mui/material";var e=o(r)(function(o){var
|
|
1
|
+
import{styled as o,Button as a,IconButton as r}from"@mui/material";var e=o(a)({color:"#fff",padding:"6px 16px",borderRadius:"6px",border:"none",minWidth:"120px",height:"36px",boxShadow:"0 2px 8px rgba(27, 25, 24, 0.2)",background:"linear-gradient(45deg, #d32f2f 0%, #f9a925 70%, #d32f2f 100%)",backgroundSize:"200% auto",transition:"background-position 0.5s ease, box-shadow 0.3s ease, color 0.25s ease","&, .MuiTypography-root":{lineHeight:1,fontWeight:500,textTransform:"unset"},"&:hover":{backgroundPosition:"100% 0",boxShadow:"0 4px 16px rgba(252, 228, 19, 0.23)"},"@keyframes gentleBounceY":{"0%, 5%":{transform:"translateY(0)"},"20%":{transform:"translateY(-3px)"},"30%":{transform:"translateY(-2px)"},"40%":{transform:"translateY(-3px)"},"50%":{transform:"translateY(-2px)"},"75%, 100%":{transform:"translateY(0)"}},"&:not(:hover).animate-bounce":{animation:"gentleBounceY 3s cubic-bezier(0.4, 0.8, 0.4, 1) infinite"}}),n=o(r)({color:"#fff",border:"none",boxShadow:"0 2px 8px rgba(27, 25, 24, 0.2)",background:"linear-gradient(45deg, #d32f2f 0%, #fbc02d 70%, #d32f2f 100%)",backgroundSize:"165% auto",transition:"background-position 0.5s ease, box-shadow 0.3s ease","&:hover":{backgroundPosition:"100% 0",boxShadow:"0 4px 16px rgba(252, 228, 19, 0.23)"}});n.displayName="IconButtonOrange";var t=o(r)(function(o){var a=o.theme;return{color:a.palette.common.white,borderRadius:"8px",padding:"8px","&:hover":{backgroundColor:"rgba(255, 255, 255, 0.08)",color:a.palette.common.white},"&:focus":{backgroundColor:"rgba(255, 255, 255, 0.12)"}}});export{e as ButtonOrange,t as IconButtonDark,n as IconButtonOrange};
|
|
2
2
|
//# sourceMappingURL=buttons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttons.js","sources":["../../src/components/buttons.tsx"],"sourcesContent":["import { IconButton, styled } from '@mui/material'\r\nimport type { IconButtonProps, Theme } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\n\r\n// Custom IconButton for dark background\r\nexport const
|
|
1
|
+
{"version":3,"file":"buttons.js","sources":["../../src/components/buttons.tsx"],"sourcesContent":["import { Button, IconButton, styled } from '@mui/material'\r\nimport type { ButtonProps, IconButtonProps, Theme } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\n\r\nexport const ButtonOrange: ComponentType<ButtonProps & { [key: string]: any }> = styled(Button)({\r\n color: '#fff',\r\n padding: '6px 16px',\r\n borderRadius: '6px',\r\n border: 'none',\r\n minWidth: '120px',\r\n height: '36px',\r\n boxShadow: '0 2px 8px rgba(27, 25, 24, 0.2)',\r\n background: 'linear-gradient(45deg, #d32f2f 0%, #f9a925 70%, #d32f2f 100%)',\r\n backgroundSize: '200% auto',\r\n transition: 'background-position 0.5s ease, box-shadow 0.3s ease, color 0.25s ease',\r\n '&, .MuiTypography-root': {\r\n lineHeight: 1,\r\n fontWeight: 500,\r\n textTransform: 'unset'\r\n },\r\n '&:hover': {\r\n backgroundPosition: '100% 0',\r\n boxShadow: '0 4px 16px rgba(252, 228, 19, 0.23)'\r\n },\r\n '@keyframes gentleBounceY': {\r\n '0%, 5%': { transform: 'translateY(0)' },\r\n '20%': { transform: 'translateY(-3px)' },\r\n '30%': { transform: 'translateY(-2px)' },\r\n '40%': { transform: 'translateY(-3px)' },\r\n '50%': { transform: 'translateY(-2px)' },\r\n '75%, 100%': { transform: 'translateY(0)' }\r\n },\r\n '&:not(:hover).animate-bounce': {\r\n animation: 'gentleBounceY 3s cubic-bezier(0.4, 0.8, 0.4, 1) infinite'\r\n }\r\n})\r\n\r\nexport const IconButtonOrange: ComponentType<IconButtonProps & { [key: string]: any }> = styled(IconButton)({\r\n color: '#fff',\r\n border: 'none',\r\n boxShadow: '0 2px 8px rgba(27, 25, 24, 0.2)',\r\n background: 'linear-gradient(45deg, #d32f2f 0%, #fbc02d 70%, #d32f2f 100%)',\r\n backgroundSize: '165% auto',\r\n transition: 'background-position 0.5s ease, box-shadow 0.3s ease',\r\n '&:hover': {\r\n backgroundPosition: '100% 0',\r\n boxShadow: '0 4px 16px rgba(252, 228, 19, 0.23)'\r\n }\r\n})\r\nIconButtonOrange.displayName = 'IconButtonOrange'\r\n\r\n// export const IconButtonSquareDark: ComponentType<IconButtonProps & { [key: string]: any }> = styled(IconButton)(({ theme }) => ({\r\n// color: '#fff',\r\n// border: 'none',\r\n// boxShadow: '0 2px 8px rgba(27, 25, 24, 0.2)',\r\n// background: 'linear-gradient(45deg, #333 0%, #555 70%, #333 100%)',\r\n// backgroundSize: '165% auto',\r\n// transition: 'background-position 0.5s ease, box-shadow 0.3s ease',\r\n// '&:hover': {\r\n// backgroundPosition: '100% 0',\r\n// boxShadow: '0 4px 16px rgba(85, 85, 85, 0.23)'\r\n// }\r\n// }))\r\n// IconButtonSquareDark.displayName = 'IconButtonCirDark'\r\n\r\n// Custom IconButton for dark background\r\nexport const IconButtonDark: ComponentType<IconButtonProps> = styled(IconButton)(({ theme }: { theme: Theme }) => ({\r\n color: theme.palette.common.white,\r\n borderRadius: '8px',\r\n padding: '8px',\r\n '&:hover': {\r\n backgroundColor: 'rgba(255, 255, 255, 0.08)',\r\n color: theme.palette.common.white\r\n },\r\n '&:focus': {\r\n backgroundColor: 'rgba(255, 255, 255, 0.12)'\r\n }\r\n}))\r\n"],"names":["ButtonOrange","styled","Button","color","padding","borderRadius","border","minWidth","height","boxShadow","background","backgroundSize","transition","lineHeight","fontWeight","textTransform","backgroundPosition","transform","animation","IconButtonOrange","IconButton","displayName","IconButtonDark","_ref","theme","palette","common","white","backgroundColor"],"mappings":"uEAIaA,EAAoEC,EAAOC,EAAPD,CAAe,CAC9FE,MAAO,OACPC,QAAS,WACTC,aAAc,MACdC,OAAQ,OACRC,SAAU,QACVC,OAAQ,OACRC,UAAW,kCACXC,WAAY,gEACZC,eAAgB,YAChBC,WAAY,wEACZ,yBAA0B,CACxBC,WAAY,EACZC,WAAY,IACZC,cAAe,SAEjB,UAAW,CACTC,mBAAoB,SACpBP,UAAW,uCAEb,2BAA4B,CAC1B,SAAU,CAAEQ,UAAW,iBACvB,MAAO,CAAEA,UAAW,oBACpB,MAAO,CAAEA,UAAW,oBACpB,MAAO,CAAEA,UAAW,oBACpB,MAAO,CAAEA,UAAW,oBACpB,YAAa,CAAEA,UAAW,kBAE5B,+BAAgC,CAC9BC,UAAW,8DAIFC,EAA4ElB,EAAOmB,EAAPnB,CAAmB,CAC1GE,MAAO,OACPG,OAAQ,OACRG,UAAW,kCACXC,WAAY,gEACZC,eAAgB,YAChBC,WAAY,sDACZ,UAAW,CACTI,mBAAoB,SACpBP,UAAW,yCAGfU,EAAiBE,YAAc,mBAiBxB,IAAMC,EAAiDrB,EAAOmB,EAAPnB,CAAmB,SAAAsB,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAA0B,CACjHrB,MAAOqB,EAAMC,QAAQC,OAAOC,MAC5BtB,aAAc,MACdD,QAAS,MACT,UAAW,CACTwB,gBAAiB,4BACjBzB,MAAOqB,EAAMC,QAAQC,OAAOC,OAE9B,UAAW,CACTC,gBAAiB,6BAEpB"}
|
package/dist/components/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{ButtonOrange,IconButtonDark,IconButtonOrange}from"./buttons.js";export{NoDataPanel}from"./no-data-panel.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{objectWithoutProperties as e,objectSpread2 as o,defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as r}from"react/jsx-runtime";import{styled as
|
|
1
|
+
import{objectWithoutProperties as e,objectSpread2 as o,defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as r}from"react/jsx-runtime";import{styled as n,Drawer as a,paperClasses as i,typographyClasses as l}from"@mui/material";import c from"@mui/icons-material/Menu";import{IconButtonDark as m}from"../components/buttons.js";var p=["children"],s={root:"MobileMenu-root",logoArea:"MobileMenu-logoArea",tab:"MobileMenu-tab",title:"MobileMenu-tabTitle",nav:"MobileMenu-nav",navItem:"MobileMenu-navItem",divider:"MobileMenu-divider",socialList:"MobileMenu-socialList"},u=function(e,o){return"".concat("",".").concat(s[e]).concat("")},d=n(function(t){t.children;var n=e(t,p);return r(m,o(o({size:"small"},n),{},{children:r(c,{})}))})(function(e){var o=e.theme;return t({flex:0,borderRadius:"6px",border:"1px solid rgba(255, 255, 255, 0.3)"},o.breakpoints.up("md"),{display:"none"})});d.displayName="IconButtonStyled";var g=n(a)(function(e){var o=e.theme;return t(t(t(t(t(t(t(t({"*":{margin:0,padding:0,boxSizing:"border-box"}},"& .".concat(i.root),{width:"calc(100vw - 90px)",backgroundColor:"#1b1b1b",color:"var(--color-text-mobile-menu, ".concat(o.palette.grey[200],")"),padding:0,textAlign:"center"}),u("logoArea"),{minHeight:"var(--header-height, 114px)",alignItems:"center",justifyContent:"center"}),u("tab"),t({justifyContent:"center"},"& .".concat(l.root),{color:"var(--color-text-mobile-menu, ".concat(o.palette.grey[200],")"),textTransform:"uppercase",textDecoration:"none","&:hover":{color:o.palette.primary.main}})),u("title"),{fontWeight:600,color:"var(--color-text-mobile-menu, ".concat(o.palette.grey[50],")"),marginBottom:o.spacing(2)}),u("navItem"),t({fontWeight:600,color:"var(--color-text-mobile-menu, ".concat(o.palette.grey[200],")"),lineHeight:1.5,textTransform:"uppercase",padding:"8px 0"},"& .".concat(l.root),{color:"var(--color-text-mobile-menu, ".concat(o.palette.grey[200],")"),textDecoration:"none","&:hover":{color:o.palette.primary.main}})),u("nav"),{paddingBottom:o.spacing(2)}),u("divider"),{borderBottom:"1px solid rgba(255, 255, 255, 0.3)",marginTop:o.spacing(2),marginBottom:o.spacing(2)}),u("socialList"),{justifyContent:"center",paddingBottom:o.spacing(4),listStyle:"none","& li":{margin:o.spacing(0,1),"& a":{color:"var(--color-social, ".concat(o.palette.grey[200],")"),"&:hover":{color:o.palette.primary.main}}}})});g.displayName="DrawerStyled";export{g as DrawerStyled,d as IconButtonStyled,s as mobileMenuClasses};
|
|
2
2
|
//# sourceMappingURL=mobile-menu.styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile-menu.styled.js","sources":["../../src/layout-global/mobile-menu.styled.tsx"],"sourcesContent":["import { Drawer, paperClasses, styled, typographyClasses } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { DrawerProps, IconButtonProps, Theme } from '@mui/material'\r\nimport MenuIcon from '@mui/icons-material/Menu'\r\nimport {
|
|
1
|
+
{"version":3,"file":"mobile-menu.styled.js","sources":["../../src/layout-global/mobile-menu.styled.tsx"],"sourcesContent":["import { Drawer, paperClasses, styled, typographyClasses } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { DrawerProps, IconButtonProps, Theme } from '@mui/material'\r\nimport MenuIcon from '@mui/icons-material/Menu'\r\nimport { IconButtonDark } from '../components/buttons'\r\n\r\nexport const mobileMenuClasses = {\r\n root: 'MobileMenu-root',\r\n logoArea: 'MobileMenu-logoArea',\r\n tab: 'MobileMenu-tab',\r\n title: 'MobileMenu-tabTitle',\r\n nav: 'MobileMenu-nav',\r\n navItem: 'MobileMenu-navItem',\r\n divider: 'MobileMenu-divider',\r\n socialList: 'MobileMenu-socialList'\r\n}\r\n\r\nconst getClasses = (key: keyof typeof mobileMenuClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${mobileMenuClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const IconButtonStyled: ComponentType<IconButtonProps> = styled(({ children, ...props }: IconButtonProps) => (\r\n <IconButtonDark size='small' {...props}>\r\n <MenuIcon />\r\n </IconButtonDark>\r\n))(({ theme }: { theme: Theme }) => ({\r\n flex: 0,\r\n borderRadius: '6px',\r\n border: '1px solid rgba(255, 255, 255, 0.3)',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none'\r\n }\r\n}))\r\nIconButtonStyled.displayName = 'IconButtonStyled'\r\n\r\nexport const DrawerStyled: ComponentType<DrawerProps> = styled(Drawer)(({ theme }: { theme: Theme }) => ({\r\n '*': {\r\n margin: 0,\r\n padding: 0,\r\n boxSizing: 'border-box'\r\n },\r\n [`& .${paperClasses.root}`]: {\r\n width: 'calc(100vw - 90px)',\r\n backgroundColor: '#1b1b1b',\r\n color: `var(--color-text-mobile-menu, ${theme.palette.grey[200]})`,\r\n padding: 0,\r\n textAlign: 'center'\r\n },\r\n [getClasses('logoArea')]: {\r\n minHeight: 'var(--header-height, 114px)',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n [getClasses('tab')]: {\r\n justifyContent: 'center',\r\n [`& .${typographyClasses.root}`]: {\r\n color: `var(--color-text-mobile-menu, ${theme.palette.grey[200]})`,\r\n textTransform: 'uppercase',\r\n textDecoration: 'none',\r\n '&:hover': {\r\n color: theme.palette.primary.main\r\n }\r\n }\r\n },\r\n [getClasses('title')]: {\r\n fontWeight: 600,\r\n color: `var(--color-text-mobile-menu, ${theme.palette.grey[50]})`,\r\n marginBottom: theme.spacing(2)\r\n },\r\n [getClasses('navItem')]: {\r\n fontWeight: 600,\r\n color: `var(--color-text-mobile-menu, ${theme.palette.grey[200]})`,\r\n lineHeight: 1.5,\r\n textTransform: 'uppercase',\r\n padding: '8px 0',\r\n [`& .${typographyClasses.root}`]: {\r\n color: `var(--color-text-mobile-menu, ${theme.palette.grey[200]})`,\r\n textDecoration: 'none',\r\n '&:hover': {\r\n color: theme.palette.primary.main\r\n }\r\n }\r\n },\r\n [getClasses('nav')]: {\r\n paddingBottom: theme.spacing(2)\r\n },\r\n [getClasses('divider')]: {\r\n borderBottom: '1px solid rgba(255, 255, 255, 0.3)',\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(2)\r\n },\r\n [getClasses('socialList')]: {\r\n justifyContent: 'center',\r\n paddingBottom: theme.spacing(4),\r\n listStyle: 'none',\r\n '& li': {\r\n margin: theme.spacing(0, 1),\r\n '& a': {\r\n color: `var(--color-social, ${theme.palette.grey[200]})`,\r\n '&:hover': {\r\n color: theme.palette.primary.main\r\n }\r\n }\r\n }\r\n }\r\n}))\r\nDrawerStyled.displayName = 'DrawerStyled'\r\n"],"names":["mobileMenuClasses","root","logoArea","tab","title","nav","navItem","divider","socialList","getClasses","key","options","concat","IconButtonStyled","styled","_ref","children","props","_objectWithoutProperties","_excluded","_jsx","IconButtonDark","_objectSpread","size","MenuIcon","_ref2","theme","_defineProperty","flex","borderRadius","border","breakpoints","up","display","displayName","DrawerStyled","Drawer","_ref4","margin","padding","boxSizing","paperClasses","width","backgroundColor","color","palette","grey","textAlign","minHeight","alignItems","justifyContent","typographyClasses","textTransform","textDecoration","primary","main","fontWeight","marginBottom","spacing","lineHeight","paddingBottom","borderBottom","marginTop","listStyle"],"mappings":"mXAMaA,EAAoB,CAC/BC,KAAM,kBACNC,SAAU,sBACVC,IAAK,iBACLC,MAAO,sBACPC,IAAK,iBACLC,QAAS,qBACTC,QAAS,qBACTC,WAAY,yBAGRC,EAAa,SAACC,EAAqCC,GACvD,MAAA,GAAAC,OAA6B,QAAEA,OAAIZ,EAAkBU,IAAIE,OAAsB,GACjF,EAEaC,EAAmDC,EAAO,SAAAC,GAAWA,EAARC,SAAaC,IAAAA,EAAKC,EAAAH,EAAAI,GAAA,OAC1FC,EAACC,EAAcC,EAAAA,EAAA,CAACC,KAAK,SAAYN,GAAK,GAAA,UACpCG,EAACI,QACc,EAH6CV,CAI7D,SAAAW,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAC,EAAA,CACTC,KAAM,EACNC,aAAc,MACdC,OAAQ,sCACPJ,EAAMK,YAAYC,GAAG,MAAQ,CAC5BC,QAAS,QACV,GAEHpB,EAAiBqB,YAAc,mBAExB,IAAMC,EAA2CrB,EAAOsB,EAAPtB,CAAe,SAAAuB,GAAA,IAAGX,EAAKW,EAALX,MAAK,OAAAC,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAC7E,IAAK,CACHW,OAAQ,EACRC,QAAS,EACTC,UAAW,eACZ,MAAA5B,OACM6B,EAAaxC,MAAS,CAC3ByC,MAAO,qBACPC,gBAAiB,UACjBC,MAAK,iCAAAhC,OAAmCc,EAAMmB,QAAQC,KAAK,KAAO,KAClEP,QAAS,EACTQ,UAAW,WAEZtC,EAAW,YAAc,CACxBuC,UAAW,8BACXC,WAAY,SACZC,eAAgB,WAEjBzC,EAAW,OAAMkB,EAAA,CAChBuB,eAAgB,UAAQ,MAAAtC,OACjBuC,EAAkBlD,MAAS,CAChC2C,MAAK,iCAAAhC,OAAmCc,EAAMmB,QAAQC,KAAK,KAAO,KAClEM,cAAe,YACfC,eAAgB,OAChB,UAAW,CACTT,MAAOlB,EAAMmB,QAAQS,QAAQC,SAIlC9C,EAAW,SAAW,CACrB+C,WAAY,IACZZ,MAAK,iCAAAhC,OAAmCc,EAAMmB,QAAQC,KAAK,IAAM,KACjEW,aAAc/B,EAAMgC,QAAQ,KAE7BjD,EAAW,WAAUkB,EAAA,CACpB6B,WAAY,IACZZ,MAAK,iCAAAhC,OAAmCc,EAAMmB,QAAQC,KAAK,KAAO,KAClEa,WAAY,IACZP,cAAe,YACfb,QAAS,SAAO,MAAA3B,OACTuC,EAAkBlD,MAAS,CAChC2C,MAAK,iCAAAhC,OAAmCc,EAAMmB,QAAQC,KAAK,KAAO,KAClEO,eAAgB,OAChB,UAAW,CACTT,MAAOlB,EAAMmB,QAAQS,QAAQC,SAIlC9C,EAAW,OAAS,CACnBmD,cAAelC,EAAMgC,QAAQ,KAE9BjD,EAAW,WAAa,CACvBoD,aAAc,qCACdC,UAAWpC,EAAMgC,QAAQ,GACzBD,aAAc/B,EAAMgC,QAAQ,KAE7BjD,EAAW,cAAgB,CAC1ByC,eAAgB,SAChBU,cAAelC,EAAMgC,QAAQ,GAC7BK,UAAW,OACX,OAAQ,CACNzB,OAAQZ,EAAMgC,QAAQ,EAAG,GACzB,MAAO,CACLd,MAAK,uBAAAhC,OAAyBc,EAAMmB,QAAQC,KAAK,KAAO,KACxD,UAAW,CACTF,MAAOlB,EAAMmB,QAAQS,QAAQC,SAIpC,GAEHpB,EAAaD,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as r,jsxs as n}from"react/jsx-runtime";import{Fragment as t}from"react";var i=function(i){var e,o=null===(e=i.children)||void 0===e?void 0:e.split("\n").filter(function(r){return!!r});return r(t,{children:null==o?void 0:o.map(function(i,e){return n(t,{children:[i,e<o.length-1&&r("br",{})]},e)})})};export{i as TextLineBreak};
|
|
2
2
|
//# sourceMappingURL=ui.units.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.units.js","sources":["../../src/layout-global/ui.units.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ui.units.js","sources":["../../src/layout-global/ui.units.tsx"],"sourcesContent":["import { FC, Fragment } from 'react'\r\n\r\nexport const TextLineBreak: FC<{ children?: string }> = (props) => {\r\n const texts = props.children?.split('\\n').filter((x) => !!x)\r\n return (\r\n <Fragment>\r\n {texts?.map((x, i) => (\r\n <Fragment key={i}>\r\n {x}\r\n {i < texts.length - 1 && <br />}\r\n </Fragment>\r\n ))}\r\n </Fragment>\r\n )\r\n}\r\n"],"names":["TextLineBreak","props","_props$children","texts","children","split","filter","x","_jsx","Fragment","map","i","_jsxs","length"],"mappings":"uFAEaA,EAA2C,SAACC,GAAS,IAAAC,EAC1DC,UAAKD,EAAGD,EAAMG,gBAAQ,IAAAF,OAAA,EAAdA,EAAgBG,MAAM,MAAMC,OAAO,SAACC,GAAC,QAAOA,IAC1D,OACEC,EAACC,EACE,CAAAL,SAAAD,aAAAA,EAAAA,EAAOO,IAAI,SAACH,EAAGI,GAAC,OACfC,EAACH,EACE,CAAAL,SAAA,CAAAG,EACAI,EAAIR,EAAMU,OAAS,GAAKL,EAAA,KAAA,MAFZG,EAIhB,IAGP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sources":["../../src/media-right/hook.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\r\nimport { getEventStore, MfeCartStore } from './cart-store'\r\nimport { IMediaRightChannel, IMediaRightGroup, IMediaRightItem } from './types'\r\n\r\nexport interface IMediaRightStoreOptions {\r\n localStorageKey?: string\r\n}\r\n\r\nexport function useMediaRightStore(params?: IMediaRightStoreOptions) {\r\n const storeRef = useRef<MfeCartStore>()\r\n if (!storeRef.current) {\r\n storeRef.current = new MfeCartStore({ localStorageKey: params?.localStorageKey })\r\n }\r\n const store = storeRef.current\r\n const [groups, setGroups] = useState<Record<string, IMediaRightGroup
|
|
1
|
+
{"version":3,"file":"hook.js","sources":["../../src/media-right/hook.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\r\nimport { getEventStore, MfeCartStore } from './cart-store'\r\nimport { IMediaRightChannel, IMediaRightGroup, IMediaRightItem } from './types'\r\n\r\nexport interface IMediaRightStoreOptions {\r\n localStorageKey?: string\r\n}\r\n\r\nexport function useMediaRightStore<O = any>(params?: IMediaRightStoreOptions) {\r\n const storeRef = useRef<MfeCartStore>()\r\n if (!storeRef.current) {\r\n storeRef.current = new MfeCartStore({ localStorageKey: params?.localStorageKey })\r\n }\r\n const store = storeRef.current\r\n const [groups, setGroups] = useState<Record<string, IMediaRightGroup<O>>>(store.getState())\r\n\r\n useEffect(() => {\r\n const event = getEventStore()\r\n if (!groups || Object.keys(groups).length < 1) {\r\n event?.emit('requestState', {})\r\n }\r\n\r\n const unsubscribe = event?.subscribe('stateChange', ({ groups }) => {\r\n setGroups(groups)\r\n })\r\n\r\n return () => {\r\n if (unsubscribe) unsubscribe()\r\n store.destroy()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n const reloadState = () => {\r\n const state = store.getState()\r\n setGroups(state)\r\n }\r\n const handleStorage = (e: StorageEvent) => {\r\n if (e.key === params?.localStorageKey) {\r\n reloadState()\r\n }\r\n }\r\n window.addEventListener('storage', handleStorage)\r\n return () => {\r\n window.removeEventListener('storage', handleStorage)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [params?.localStorageKey])\r\n\r\n return { groups: Object.values(groups), groupsMap: groups }\r\n}\r\n\r\nexport function useMediaRightActions<O = any>(params?: IMediaRightStoreOptions) {\r\n const storeRef = useRef<MfeCartStore>()\r\n if (!storeRef.current) {\r\n storeRef.current = new MfeCartStore({ localStorageKey: params?.localStorageKey })\r\n }\r\n const store = storeRef.current\r\n\r\n const addGroup = (group: Omit<IMediaRightGroup<O>, 'createdAt' | 'items' | 'channels'>) => {\r\n store.addGroup(group)\r\n }\r\n\r\n const updateGroup = (groupId: string, updates: Partial<Pick<IMediaRightGroup<O>, 'name'>>) => {\r\n store.updateGroup(groupId, updates)\r\n }\r\n\r\n const removeGroup = (groupId: string) => {\r\n store.removeGroup(groupId)\r\n }\r\n\r\n const addItem = (item: IMediaRightItem<O>) => {\r\n store.addItem(item)\r\n }\r\n\r\n const updateItem = (groupId: string, productId: string, updates: Partial<IMediaRightItem<O>>) => {\r\n store.updateItem(groupId, productId, updates)\r\n }\r\n\r\n const removeItem = (groupId: string, productId: string) => {\r\n store.removeItem(groupId, productId)\r\n }\r\n\r\n const clearCart = () => {\r\n store.clear()\r\n }\r\n\r\n const addChannel = (groupId: string, channel: IMediaRightChannel) => {\r\n store.addChannel(groupId, channel)\r\n }\r\n\r\n const updateChannel = (groupId: string, channelIndex: number, updates: Partial<IMediaRightChannel>) => {\r\n store.updateChannel(groupId, channelIndex, updates)\r\n }\r\n\r\n const removeChannel = (groupId: string, channelIndex: number) => {\r\n store.removeChannel(groupId, channelIndex)\r\n }\r\n\r\n const clearChannels = (groupId: string) => {\r\n store.clearChannels(groupId)\r\n }\r\n\r\n return {\r\n addGroup,\r\n updateGroup,\r\n removeGroup,\r\n addItem,\r\n updateItem,\r\n removeItem,\r\n addChannel,\r\n updateChannel,\r\n removeChannel,\r\n clearChannels,\r\n clearCart\r\n }\r\n}\r\n"],"names":["useMediaRightStore","params","storeRef","useRef","current","MfeCartStore","localStorageKey","store","_useState","useState","getState","_useState2","_slicedToArray","groups","setGroups","useEffect","event","getEventStore","Object","keys","length","emit","unsubscribe","subscribe","_ref","destroy","handleStorage","e","state","key","window","addEventListener","removeEventListener","values","groupsMap","useMediaRightActions","addGroup","group","updateGroup","groupId","updates","removeGroup","addItem","item","updateItem","productId","removeItem","addChannel","channel","updateChannel","channelIndex","removeChannel","clearChannels","clearCart","clear"],"mappings":"uMAQM,SAAUA,EAA4BC,GAC1C,IAAMC,EAAWC,IACZD,EAASE,UACZF,EAASE,QAAU,IAAIC,EAAa,CAAEC,gBAAiBL,aAAM,EAANA,EAAQK,mBAEjE,IAAMC,EAAQL,EAASE,QACvBI,EAA4BC,EAA8CF,EAAMG,YAAWC,EAAAC,EAAAJ,EAAA,GAApFK,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAoCxB,OAlCAI,EAAU,WACR,IAAMC,EAAQC,MACTJ,GAAUK,OAAOC,KAAKN,GAAQO,OAAS,KAC1CJ,SAAAA,EAAOK,KAAK,eAAgB,KAG9B,IAAMC,EAAcN,aAAAA,EAAAA,EAAOO,UAAU,cAAe,SAAAC,GAAe,IAAZX,EAAMW,EAANX,OACrDC,EAAUD,EACZ,GAEA,OAAO,WACDS,GAAaA,IACjBf,EAAMkB,SACP,CAEF,EAAE,IAEHV,EAAU,WACR,IAIMW,EAAgB,SAACC,GAJH,IACZC,EAIFD,EAAEE,OAAQ5B,aAAAA,EAAAA,EAAQK,mBAJhBsB,EAAQrB,EAAMG,WACpBI,EAAUc,GAMX,EAED,OADAE,OAAOC,iBAAiB,UAAWL,GAC5B,WACLI,OAAOE,oBAAoB,UAAWN,EACvC,GAEA,CAACzB,eAAAA,EAAQK,kBAEL,CAAEO,OAAQK,OAAOe,OAAOpB,GAASqB,UAAWrB,EACrD,CAEM,SAAUsB,EAA8BlC,GAC5C,IAAMC,EAAWC,IACZD,EAASE,UACZF,EAASE,QAAU,IAAIC,EAAa,CAAEC,gBAAiBL,aAAM,EAANA,EAAQK,mBAEjE,IAAMC,EAAQL,EAASE,QA8CvB,MAAO,CACLgC,SA7Ce,SAACC,GAChB9B,EAAM6B,SAASC,EAChB,EA4CCC,YA1CkB,SAACC,EAAiBC,GACpCjC,EAAM+B,YAAYC,EAASC,EAC5B,EAyCCC,YAvCkB,SAACF,GACnBhC,EAAMkC,YAAYF,EACnB,EAsCCG,QApCc,SAACC,GACfpC,EAAMmC,QAAQC,EACf,EAmCCC,WAjCiB,SAACL,EAAiBM,EAAmBL,GACtDjC,EAAMqC,WAAWL,EAASM,EAAWL,EACtC,EAgCCM,WA9BiB,SAACP,EAAiBM,GACnCtC,EAAMuC,WAAWP,EAASM,EAC3B,EA6BCE,WAvBiB,SAACR,EAAiBS,GACnCzC,EAAMwC,WAAWR,EAASS,EAC3B,EAsBCC,cApBoB,SAACV,EAAiBW,EAAsBV,GAC5DjC,EAAM0C,cAAcV,EAASW,EAAcV,EAC5C,EAmBCW,cAjBoB,SAACZ,EAAiBW,GACtC3C,EAAM4C,cAAcZ,EAASW,EAC9B,EAgBCE,cAdoB,SAACb,GACrBhC,EAAM6C,cAAcb,EACrB,EAaCc,UA/BgB,WAChB9C,EAAM+C,OACP,EA+BH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as o,objectSpread2 as r}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as e,jsx as n}from"react/jsx-runtime";import{useState as i,Fragment as t}from"react";import{Badge as l,Box as a,Typography as c,Stack as u,Button as p}from"@mui/material";import m from"@mui/icons-material/DriveFileMoveOutlined";import d from"@mui/icons-material/FolderSpecialOutlined";import{EmptyState as s}from"./units.js";import{MenuStyled as f}from"./styled.js";import{
|
|
1
|
+
import{slicedToArray as o,objectSpread2 as r}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as e,jsx as n}from"react/jsx-runtime";import{useState as i,Fragment as t}from"react";import{Badge as l,Box as a,Typography as c,Stack as u,Button as p}from"@mui/material";import m from"@mui/icons-material/DriveFileMoveOutlined";import d from"@mui/icons-material/FolderSpecialOutlined";import{EmptyState as s}from"./units.js";import{MenuStyled as f}from"./styled.js";import{IconButtonDark as h}from"../../components/buttons.js";import{MediaGroupAccordion as g}from"./media-group-accordion.js";import{useMediaRightStore as v,useMediaRightActions as x}from"../hook.js";var j=function(j){var y,b=j.localStorageKey,k=j.hrefCart,C=j.buttonMoveToCartProps,S=v({localStorageKey:b}).groups,M=x({localStorageKey:b}),P=i(null),G=o(P,2),D=G[0],O=G[1],z=function(o){M.updateGroup(o.id,o)},I=function(o){M.removeGroup(o)},K=function(o,r){M.removeItem(o,r)};return e(t,{children:[n(h,{onClick:function(o){return O(o.currentTarget)},children:n(l,{badgeContent:S.length||0,color:"error",children:n(d,{})})}),n(f,{disableScrollLock:!0,anchorEl:D,open:Boolean(D),onClose:function(){return O(null)},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:e(a,{children:[n(a,{sx:{display:"flex",alignItems:"center",padding:"12px 16px"},children:e(c,{variant:"h6",component:"span",sx:{flex:1},children:["Your Media Rights Package (",null!==(y=S.length)&&void 0!==y?y:0," Package",S.length>1?"s":"",")"]})}),0===S.length?n(s,{}):S.map(function(o){return n(g,{group:o,onEditGroup:z,onDeleteGroup:I,onDeleteMedia:K},o.id)}),n(u,{justifyContent:"end",flexDirection:"row",padding:"6px 12px",children:n(p,r(r(r({},k?{component:"a",href:k}:{}),{},{color:"inherit",size:"small",endIcon:n(m,{}),onClick:function(){O(null)},disabled:S.length<1},C),{},{children:"Show Package"}))})]})})]})},y=function(o){var e=function(e){return n(j,r(r({},o),e))};return e.displayName="MediaGroupWidget",e};export{j as MediaGroupWidget,y as createMediaGroupWidget};
|
|
2
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, Box, Button, ButtonProps, Stack, Typography } from '@mui/material'\r\nimport DriveFileMoveOutlinedIcon from '@mui/icons-material/DriveFileMoveOutlined'\r\nimport FolderSpecialOutlinedIcon from '@mui/icons-material/FolderSpecialOutlined'\r\nimport { EmptyState } from './units'\r\nimport { MenuStyled } from './styled'\r\nimport { IMediaRightGroup } from '../types'\r\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/media-right/media-widget/index.tsx"],"sourcesContent":["import { Fragment, useState } from 'react'\r\nimport { Badge, Box, Button, ButtonProps, Stack, Typography } from '@mui/material'\r\nimport DriveFileMoveOutlinedIcon from '@mui/icons-material/DriveFileMoveOutlined'\r\nimport FolderSpecialOutlinedIcon from '@mui/icons-material/FolderSpecialOutlined'\r\nimport { EmptyState } from './units'\r\nimport { MenuStyled } from './styled'\r\nimport { IMediaRightGroup } from '../types'\r\nimport { IconButtonDark } from '../../components/buttons'\r\nimport { MediaGroupAccordion } from './media-group-accordion'\r\nimport { useMediaRightStore, useMediaRightActions } from '../hook'\r\n\r\nexport interface IMediaGroupWidgetProps {\r\n localStorageKey?: string\r\n hrefCart?: string\r\n buttonMoveToCartProps?: ButtonProps & { [key: string]: any }\r\n}\r\n\r\nexport const MediaGroupWidget: React.FC<IMediaGroupWidgetProps> = ({ localStorageKey, hrefCart, buttonMoveToCartProps }) => {\r\n const { groups } = useMediaRightStore({ localStorageKey })\r\n const actions = useMediaRightActions({ localStorageKey })\r\n\r\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null)\r\n\r\n // const handleSaveNewGroup = (groupName: string) => {\r\n // actions.addGroup({\r\n // name: groupName,\r\n // id: generateGroupId()\r\n // })\r\n // }\r\n\r\n const handleEditGroup = (group: IMediaRightGroup) => {\r\n actions.updateGroup(group.id, group)\r\n }\r\n\r\n const handleDeleteGroup = (groupId: string) => {\r\n actions.removeGroup(groupId)\r\n }\r\n\r\n const handleDeleteMedia = (groupId: string, productId: string) => {\r\n actions.removeItem(groupId, productId)\r\n }\r\n\r\n const renderContent = () => {\r\n return (\r\n <Box>\r\n <Box sx={{ display: 'flex', alignItems: 'center', padding: '12px 16px' }}>\r\n <Typography variant='h6' component='span' sx={{ flex: 1 }}>\r\n Your Media Rights Package ({groups.length ?? 0} Package{groups.length > 1 ? 's' : ''})\r\n </Typography>\r\n </Box>\r\n {/* <Divider /> */}\r\n {/* <NewGroupArea onSaveGroup={handleSaveNewGroup} /> */}\r\n {groups.length === 0 ? (\r\n <EmptyState />\r\n ) : (\r\n groups.map((group) => (\r\n <MediaGroupAccordion\r\n key={group.id}\r\n group={group}\r\n onEditGroup={handleEditGroup}\r\n onDeleteGroup={handleDeleteGroup}\r\n onDeleteMedia={handleDeleteMedia}\r\n />\r\n ))\r\n )}\r\n {/* <Divider /> */}\r\n <Stack justifyContent={'end'} flexDirection={'row'} padding={'6px 12px'}>\r\n <Button\r\n {...(hrefCart ? { component: 'a', href: hrefCart } : {})}\r\n color='inherit'\r\n size='small'\r\n endIcon={<DriveFileMoveOutlinedIcon />}\r\n onClick={() => {\r\n setAnchorEl(null)\r\n }}\r\n disabled={groups.length < 1}\r\n {...buttonMoveToCartProps}\r\n >\r\n Show Package\r\n </Button>\r\n </Stack>\r\n </Box>\r\n )\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <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 {renderContent()}\r\n </MenuStyled>\r\n </Fragment>\r\n )\r\n}\r\n\r\nexport const createMediaGroupWidget = (params: IMediaGroupWidgetProps) => {\r\n const _MediaGroupWidget: React.FC<Partial<IMediaGroupWidgetProps>> = (props) => <MediaGroupWidget {...params} {...props} />\r\n _MediaGroupWidget.displayName = 'MediaGroupWidget'\r\n return _MediaGroupWidget\r\n}\r\n"],"names":["MediaGroupWidget","_ref","_groups$length","localStorageKey","hrefCart","buttonMoveToCartProps","groups","useMediaRightStore","actions","useMediaRightActions","_useState","useState","_useState2","_slicedToArray","anchorEl","setAnchorEl","handleEditGroup","group","updateGroup","id","handleDeleteGroup","groupId","removeGroup","handleDeleteMedia","productId","removeItem","_jsxs","Fragment","children","_jsx","IconButtonDark","onClick","e","currentTarget","Badge","badgeContent","length","color","FolderSpecialOutlinedIcon","MenuStyled","disableScrollLock","open","Boolean","onClose","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","Box","sx","display","alignItems","padding","Typography","variant","flex","EmptyState","map","MediaGroupAccordion","onEditGroup","onDeleteGroup","onDeleteMedia","Stack","justifyContent","flexDirection","Button","_objectSpread","href","size","endIcon","DriveFileMoveOutlinedIcon","disabled","createMediaGroupWidget","params","_MediaGroupWidget","props","displayName"],"mappings":"qqBAiBaA,EAAqD,SAArCC,GAA8F,IAyB9FC,EAzBwCC,EAAeF,EAAfE,gBAAiBC,EAAQH,EAARG,SAAUC,EAAqBJ,EAArBI,sBACtFC,EAAWC,EAAmB,CAAEJ,gBAAAA,IAAhCG,OACFE,EAAUC,EAAqB,CAAEN,gBAAAA,IAEvCO,EAAgCC,EAA6B,MAAKC,EAAAC,EAAAH,EAAA,GAA3DI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAStBI,EAAkB,SAACC,GACvBT,EAAQU,YAAYD,EAAME,GAAIF,EAC/B,EAEKG,EAAoB,SAACC,GACzBb,EAAQc,YAAYD,EACrB,EAEKE,EAAoB,SAACF,EAAiBG,GAC1ChB,EAAQiB,WAAWJ,EAASG,EAC7B,EA6CD,OACEE,EAACC,EAAQ,CAAAC,SAAA,CACPC,EAACC,EAAc,CAACC,QAAS,SAACC,GAAC,OAAKjB,EAAYiB,EAAEC,cAAc,EAAAL,SAC1DC,EAACK,EAAM,CAAAC,aAAc7B,EAAO8B,QAAU,EAAGC,MAAM,QAAOT,SACpDC,EAACS,UAGLT,EAACU,EAAU,CACTC,mBACA,EAAA1B,SAAUA,EACV2B,KAAMC,QAAQ5B,GACd6B,QAAS,WAAF,OAAQ5B,EAAY,KAAK,EAChC6B,aAAc,CAAEC,SAAU,MAAOC,WAAY,SAC7CC,gBAAiB,CAAEF,SAAU,MAAOC,WAAY,SAChDE,cAAe,CAAEC,UAAW,OAAOrB,SAvDrCF,EAACwB,aACCrB,EAACqB,GAAIC,GAAI,CAAEC,QAAS,OAAQC,WAAY,SAAUC,QAAS,sBACzD5B,EAAC6B,GAAWC,QAAQ,KAAKP,UAAU,OAAOE,GAAI,CAAEM,KAAM,GAAG7B,SAAA,CAAA,8BACd,QADc1B,EAC3BI,EAAO8B,cAAM,IAAAlC,EAAAA,EAAI,aAAWI,EAAO8B,OAAS,EAAI,IAAM,YAKnE,IAAlB9B,EAAO8B,OACNP,EAAC6B,EAAa,CAAA,GAEdpD,EAAOqD,IAAI,SAAC1C,GAAK,OACfY,EAAC+B,EAAmB,CAElB3C,MAAOA,EACP4C,YAAa7C,EACb8C,cAAe1C,EACf2C,cAAexC,GAJVN,EAAME,GAKX,GAINU,EAACmC,EAAK,CAACC,eAAgB,MAAOC,cAAe,MAAOZ,QAAS,oBAC3DzB,EAACsC,EAAMC,EAAAA,EAAAA,EACAhE,CAAAA,EAAAA,EAAW,CAAE6C,UAAW,IAAKoB,KAAMjE,GAAa,CAAA,GAAE,GAAA,CACvDiC,MAAM,UACNiC,KAAK,QACLC,QAAS1C,EAAC2C,EAAyB,IACnCzC,QAAS,WACPhB,EAAY,KACb,EACD0D,SAAUnE,EAAO8B,OAAS,GACtB/B,GAAqB,GAAA,CAAAuB,SAAA,2BA6BrC,EAEa8C,EAAyB,SAACC,GACrC,IAAMC,EAA+D,SAACC,GAAK,OAAKhD,EAAC7B,EAAgBoE,EAAAA,EAAA,CAAA,EAAKO,GAAYE,GAAS,EAE3H,OADAD,EAAkBE,YAAc,mBACzBF,CACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as t,inherits as n,createClass as o,asyncToGenerator as r,objectSpread2 as e,classCallCheck as a,callSuper as i,defineProperty as l,regenerator as c}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s,jsxs as u,Fragment as d}from"react/jsx-runtime";import{Badge as f}from"@mui/material";import{useState as p,useEffect as h,Component as m}from"react";import{GlobalModal as v,mapGlobalModalContext as C}from"dinocollab-core/api-context";import g from"@mui/icons-material/NotificationsNone";import{MenuStyled as y}from"./styled.js";import{
|
|
1
|
+
import{slicedToArray as t,inherits as n,createClass as o,asyncToGenerator as r,objectSpread2 as e,classCallCheck as a,callSuper as i,defineProperty as l,regenerator as c}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s,jsxs as u,Fragment as d}from"react/jsx-runtime";import{Badge as f}from"@mui/material";import{useState as p,useEffect as h,Component as m}from"react";import{GlobalModal as v,mapGlobalModalContext as C}from"dinocollab-core/api-context";import g from"@mui/icons-material/NotificationsNone";import{MenuStyled as y}from"./styled.js";import{IconButtonDark as k}from"../components/buttons.js";import{useFetchData as b}from"./hook.js";import j from"./notify-list.js";import x from"./notify-detail.js";var E=function(){function t(n){var o;return a(this,t),o=i(this,t,[n]),l(o,"onClickHandler",function(t){var n;o.onClose(),null===(n=o.globalModalContext)||void 0===n||n.show({backdropActivated:!0,renderContent:function(){var n;return s(x,{data:[t],onRead:o.onReadHandler,onClose:null===(n=o.globalModalContext)||void 0===n?void 0:n.close})}})}),l(o,"onOpen",function(t){o.setState({anchorEl:t})}),l(o,"onClose",function(){o.setState({anchorEl:null})}),l(o,"onReadHandler",function(t){var n;null===(n=o.globalModalContext)||void 0===n||n.close();try{var r,e;null===(r=(e=o.props).onReaded)||void 0===r||r.call(e,t.Id)}catch(t){console.error("Error updating read state:",t)}}),o.state={anchorEl:null,hydrated:!1},o}return n(t,m),o(t,[{key:"notifications",get:function(){var t;return null!==(t=this.props.data)&&void 0!==t?t:[]}},{key:"newFeatureCount",get:function(){return this.notifications.filter(function(t){return!t.IsRead}).length}},{key:"componentDidMount",value:function(){this.setState({hydrated:!0})}},{key:"render",value:function(){var t=this;return u(d,{children:[s(k,{onClick:function(n){return t.onOpen(n.currentTarget)},children:s(f,{badgeContent:this.state.hydrated?this.newFeatureCount:0,color:"error",children:s(g,{})})}),s(y,{disableScrollLock:!0,anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:this.onClose,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:C(function(n){return t.globalModalContext=n,s(j,{data:t.props.data,onClick:t.onClickHandler})})})]})}}])}(),R=function(n){var o=b(n.featData),a=p([]),i=t(a,2),l=i[0],u=i[1];h(function(){o.data&&u(o.data)},[o.data]);var d=function(){var t=r(c().m(function t(o,r){var a;return c().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,null===(a=n.readed)||void 0===a?void 0:a.call(n,o,r);case 1:u(function(t){return t.map(function(t){return t.Id===o?e(e({},t),{},{IsRead:!0}):t})});case 2:return t.a(2)}},t)}));return function(n,o){return t.apply(this,arguments)}}();return s(v,{children:s(E,{data:l,loading:o.loading,onReaded:d})})},M=function(t){var n=function(n){return s(R,e(e({},t),n))};return n.displayName="NotificationWidget",n};export{R as NotificationWidget,M as createNotificationWidget,R as default};
|
|
2
2
|
//# sourceMappingURL=widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.js","sources":["../../src/notification/widget.tsx"],"sourcesContent":["import { Badge } from '@mui/material'\r\nimport { Component, FC, useEffect, useState } from 'react'\r\nimport { GlobalModal, IGlobalModalContext, mapGlobalModalContext } from 'dinocollab-core/api-context'\r\nimport NotificationsNoneIcon from '@mui/icons-material/NotificationsNone'\r\nimport { MenuStyled } from './styled'\r\nimport {
|
|
1
|
+
{"version":3,"file":"widget.js","sources":["../../src/notification/widget.tsx"],"sourcesContent":["import { Badge } from '@mui/material'\r\nimport { Component, FC, useEffect, useState } from 'react'\r\nimport { GlobalModal, IGlobalModalContext, mapGlobalModalContext } from 'dinocollab-core/api-context'\r\nimport NotificationsNoneIcon from '@mui/icons-material/NotificationsNone'\r\nimport { MenuStyled } from './styled'\r\nimport { IconButtonDark } from '../components/buttons'\r\nimport { FetcherFunction, useFetchData } from './hook'\r\nimport { INotification, ReadedFunction } from './types'\r\nimport NotifyList from './notify-list'\r\nimport NotifyDetail from './notify-detail'\r\n\r\ninterface INotificationProps {\r\n loading?: boolean\r\n data: INotification[]\r\n onReaded?: ReadedFunction\r\n}\r\n\r\ninterface INotificationState {\r\n anchorEl: HTMLElement | null\r\n hydrated: boolean\r\n}\r\nclass NotificationContent extends Component<INotificationProps, INotificationState> {\r\n globalModalContext?: IGlobalModalContext\r\n constructor(props: INotificationProps) {\r\n super(props)\r\n this.state = { anchorEl: null, hydrated: false }\r\n }\r\n\r\n get notifications() {\r\n return this.props.data ?? []\r\n }\r\n\r\n get newFeatureCount() {\r\n return this.notifications.filter((n) => !n.IsRead).length\r\n }\r\n\r\n componentDidMount() {\r\n // When mounted on the client, set hydrated = true\r\n this.setState({ hydrated: true })\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n <IconButtonDark onClick={(e) => this.onOpen(e.currentTarget)}>\r\n <Badge badgeContent={this.state.hydrated ? this.newFeatureCount : 0} color='error'>\r\n <NotificationsNoneIcon />\r\n </Badge>\r\n </IconButtonDark>\r\n <MenuStyled\r\n disableScrollLock\r\n anchorEl={this.state.anchorEl}\r\n open={Boolean(this.state.anchorEl)}\r\n onClose={this.onClose}\r\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n MenuListProps={{ component: 'div' }}\r\n >\r\n {mapGlobalModalContext((context: IGlobalModalContext) => {\r\n this.globalModalContext = context\r\n return <NotifyList data={this.props.data} onClick={this.onClickHandler} />\r\n })}\r\n </MenuStyled>\r\n </>\r\n )\r\n }\r\n\r\n onClickHandler = (value: INotification) => {\r\n this.onClose()\r\n this.globalModalContext?.show({\r\n backdropActivated: true,\r\n renderContent: () => <NotifyDetail data={[value]} onRead={this.onReadHandler} onClose={this.globalModalContext?.close} />\r\n })\r\n }\r\n\r\n onOpen = (target: HTMLElement) => {\r\n this.setState({ anchorEl: target })\r\n }\r\n\r\n onClose = () => {\r\n this.setState({ anchorEl: null })\r\n }\r\n\r\n onReadHandler = (value: INotification) => {\r\n this.globalModalContext?.close()\r\n // NotifyLocalStorage.setSingle(value.Id)\r\n try {\r\n // Call the callback to update the read state in the parent component\r\n this.props.onReaded?.(value.Id)\r\n } catch (error) {\r\n console.error('Error updating read state:', error)\r\n }\r\n }\r\n}\r\n\r\nexport interface INotificationWidgetProps {\r\n featData: FetcherFunction<INotification[]>\r\n readed?: ReadedFunction\r\n}\r\n\r\nexport const NotificationWidget: FC<INotificationWidgetProps> = (props) => {\r\n const intitialData = useFetchData<INotification[]>(props.featData)\r\n const [data, setData] = useState<INotification[]>([])\r\n\r\n // When initialData changes, update the local state\r\n useEffect(() => {\r\n if (intitialData.data) setData(intitialData.data)\r\n }, [intitialData.data])\r\n\r\n // Function to update read notifications\r\n const handleRead: ReadedFunction = async (id: string, signal?: AbortSignal) => {\r\n await props.readed?.(id, signal)\r\n setData((prev) => prev.map((n) => (n.Id === id ? { ...n, IsRead: true } : n)))\r\n }\r\n\r\n return (\r\n <GlobalModal>\r\n <NotificationContent data={data} loading={intitialData.loading} onReaded={handleRead} />\r\n </GlobalModal>\r\n )\r\n}\r\nexport default NotificationWidget\r\n\r\nexport const createNotificationWidget = (params: INotificationWidgetProps) => {\r\n const _NotificationWidget: FC<Partial<INotificationWidgetProps>> = (props) => <NotificationWidget {...params} {...props} />\r\n _NotificationWidget.displayName = 'NotificationWidget'\r\n return _NotificationWidget\r\n}\r\n"],"names":["NotificationContent","props","_this","_classCallCheck","_callSuper","_defineProperty","value","_this$globalModalCont","onClose","globalModalContext","show","backdropActivated","renderContent","_this$globalModalCont2","_jsx","NotifyDetail","data","onRead","onReadHandler","close","target","setState","anchorEl","_this$globalModalCont3","_this$props$onReaded","_this$props","onReaded","call","Id","error","console","state","hydrated","_inherits","Component","_createClass","key","get","_this$props$data","this","notifications","filter","n","IsRead","length","_this2","_jsxs","_Fragment","children","IconButtonDark","onClick","e","onOpen","currentTarget","Badge","badgeContent","newFeatureCount","color","NotificationsNoneIcon","MenuStyled","disableScrollLock","open","Boolean","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","mapGlobalModalContext","context","NotifyList","onClickHandler","NotificationWidget","intitialData","useFetchData","featData","_useState","useState","_useState2","_slicedToArray","setData","useEffect","handleRead","_ref","_asyncToGenerator","_regenerator","m","_callee","id","signal","_props$readed","w","_context","readed","prev","map","_objectSpread","a","_x","_x2","apply","arguments","GlobalModal","loading","createNotificationWidget","params","_NotificationWidget","displayName"],"mappings":"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"}
|
|
@@ -2,8 +2,9 @@ import { FC } from 'react';
|
|
|
2
2
|
import { ButtonProps } from '@mui/material';
|
|
3
3
|
import type { IAppSiteBaseUrl } from '../types';
|
|
4
4
|
import type { IAuthState, IIMenuConfigs } from './types';
|
|
5
|
-
export interface
|
|
5
|
+
export interface IAuthBaseProps {
|
|
6
6
|
baseUrl: IAppSiteBaseUrl;
|
|
7
|
+
fontSizeScale?: number;
|
|
7
8
|
hrefLogin?: string;
|
|
8
9
|
onLoginClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLDivElement, MouseEvent>) => void;
|
|
9
10
|
buttonLoginProps?: ButtonProps & {
|
|
@@ -11,9 +12,9 @@ export interface ICreateAuthBase {
|
|
|
11
12
|
};
|
|
12
13
|
menu?: IIMenuConfigs;
|
|
13
14
|
}
|
|
14
|
-
export interface IAuthWidgetProps extends IAuthState,
|
|
15
|
+
export interface IAuthWidgetProps extends IAuthState, IAuthBaseProps {
|
|
15
16
|
}
|
|
16
17
|
export declare const AuthWidget: FC<IAuthWidgetProps>;
|
|
17
18
|
export default AuthWidget;
|
|
18
|
-
export declare const createAuthWidget: (params:
|
|
19
|
+
export declare const createAuthWidget: (params: IAuthBaseProps) => FC<Omit<IAuthWidgetProps, "baseUrl">>;
|
|
19
20
|
//# sourceMappingURL=widget.d.ts.map
|
|
@@ -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,
|
|
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,CA6C3C,CAAA;AACD,eAAe,UAAU,CAAA;AAEzB,eAAO,MAAM,gBAAgB,WAAY,cAAc,0CAItD,CAAA"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import type { IconButtonProps } from '@mui/material';
|
|
1
|
+
import type { ButtonProps, IconButtonProps } from '@mui/material';
|
|
2
2
|
import type { ComponentType } from 'react';
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const ButtonOrange: ComponentType<ButtonProps & {
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
}>;
|
|
6
|
+
export declare const IconButtonOrange: ComponentType<IconButtonProps & {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const IconButtonDark: ComponentType<IconButtonProps>;
|
|
4
10
|
//# sourceMappingURL=buttons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../../src/components/buttons.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAS,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../../src/components/buttons.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAS,MAAM,eAAe,CAAA;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA+B3E,CAAA;AAEF,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,eAAe,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAWnF,CAAA;AAkBF,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,eAAe,CAWvD,CAAA"}
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type IconButtonProps, type ButtonProps } from '@mui/material';
|
|
1
|
+
import { FC } from 'react';
|
|
3
2
|
export declare const TextLineBreak: FC<{
|
|
4
3
|
children?: string;
|
|
5
4
|
}>;
|
|
6
|
-
export declare const AppButtonOrange: ComponentType<ButtonProps & {
|
|
7
|
-
[key: string]: any;
|
|
8
|
-
}>;
|
|
9
|
-
export declare const AppIconButtonOrange: ComponentType<IconButtonProps & {
|
|
10
|
-
[key: string]: any;
|
|
11
|
-
}>;
|
|
12
|
-
export declare const AppIconButtonDark: ComponentType<IconButtonProps & {
|
|
13
|
-
[key: string]: any;
|
|
14
|
-
}>;
|
|
15
5
|
//# sourceMappingURL=ui.units.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.units.d.ts","sourceRoot":"","sources":["../../../src/layout-global/ui.units.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ui.units.d.ts","sourceRoot":"","sources":["../../../src/layout-global/ui.units.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAA;AAEpC,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAYnD,CAAA"}
|
|
@@ -2,16 +2,16 @@ import { IMediaRightChannel, IMediaRightGroup, IMediaRightItem } from './types';
|
|
|
2
2
|
export interface IMediaRightStoreOptions {
|
|
3
3
|
localStorageKey?: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function useMediaRightStore(params?: IMediaRightStoreOptions): {
|
|
6
|
-
groups: IMediaRightGroup[];
|
|
7
|
-
groupsMap: Record<string, IMediaRightGroup
|
|
5
|
+
export declare function useMediaRightStore<O = any>(params?: IMediaRightStoreOptions): {
|
|
6
|
+
groups: IMediaRightGroup<O>[];
|
|
7
|
+
groupsMap: Record<string, IMediaRightGroup<O>>;
|
|
8
8
|
};
|
|
9
|
-
export declare function useMediaRightActions<
|
|
10
|
-
addGroup: (group: Omit<IMediaRightGroup
|
|
11
|
-
updateGroup: (groupId: string, updates: Partial<Pick<IMediaRightGroup
|
|
9
|
+
export declare function useMediaRightActions<O = any>(params?: IMediaRightStoreOptions): {
|
|
10
|
+
addGroup: (group: Omit<IMediaRightGroup<O>, 'createdAt' | 'items' | 'channels'>) => void;
|
|
11
|
+
updateGroup: (groupId: string, updates: Partial<Pick<IMediaRightGroup<O>, 'name'>>) => void;
|
|
12
12
|
removeGroup: (groupId: string) => void;
|
|
13
|
-
addItem: (item:
|
|
14
|
-
updateItem: (groupId: string, productId: string, updates: Partial<
|
|
13
|
+
addItem: (item: IMediaRightItem<O>) => void;
|
|
14
|
+
updateItem: (groupId: string, productId: string, updates: Partial<IMediaRightItem<O>>) => void;
|
|
15
15
|
removeItem: (groupId: string, productId: string) => void;
|
|
16
16
|
addChannel: (groupId: string, channel: IMediaRightChannel) => void;
|
|
17
17
|
updateChannel: (groupId: string, channelIndex: number, updates: Partial<IMediaRightChannel>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/media-right/hook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/E,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,uBAAuB;;;
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/media-right/hook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/E,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,uBAAuB;;;EA2C3E;AAED,wBAAgB,oBAAoB,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,uBAAuB;sBAOnD,KAAK,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;2BAIxD,MAAM,WAAW,QAAQ,KAAK,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;2BAI3D,MAAM;oBAIb,gBAAgB,CAAC,CAAC;0BAIZ,MAAM,aAAa,MAAM,WAAW,QAAQ,gBAAgB,CAAC,CAAC,CAAC;0BAI/D,MAAM,aAAa,MAAM;0BAQzB,MAAM,WAAW,kBAAkB;6BAIhC,MAAM,gBAAgB,MAAM,WAAW,QAAQ,kBAAkB,CAAC;6BAIlE,MAAM,gBAAgB,MAAM;6BAI5B,MAAM;;EAiBvC"}
|
|
@@ -14,7 +14,7 @@ export interface IMediaRightChannel {
|
|
|
14
14
|
/**
|
|
15
15
|
* Cart group structure
|
|
16
16
|
*/
|
|
17
|
-
export interface IMediaRightGroup {
|
|
17
|
+
export interface IMediaRightGroup<O = any> {
|
|
18
18
|
/** Unique identifier for the group */
|
|
19
19
|
id: string;
|
|
20
20
|
/** Group name */
|
|
@@ -22,7 +22,7 @@ export interface IMediaRightGroup {
|
|
|
22
22
|
/** Creation timestamp */
|
|
23
23
|
createdAt: number;
|
|
24
24
|
/** Items in this group */
|
|
25
|
-
items: IMediaRightItem[];
|
|
25
|
+
items: IMediaRightItem<O>[];
|
|
26
26
|
/** Channels associated with this group */
|
|
27
27
|
channels: IMediaRightChannel[];
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/media-right/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/media-right/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,GAAG;IACvC,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,0BAA0B;IAC1B,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3B,0CAA0C;IAC1C,QAAQ,EAAE,kBAAkB,EAAE,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACtC,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,iDAAiD;IAEjD,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAA;IACf,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB"}
|