dinocollab-shared 1.2.14 → 1.2.16
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/cart/widget.js +1 -1
- package/dist/layout-global/app-footer.js +1 -1
- package/dist/layout-global/app-footer.js.map +1 -1
- package/dist/layout-global/app-header.js +1 -1
- package/dist/layout-global/app-header.js.map +1 -1
- package/dist/layout-global/app-logo.js +1 -1
- package/dist/layout-global/app-logo.js.map +1 -1
- package/dist/notification/notify-detail.js +1 -1
- package/dist/notification/notify-detail.js.map +1 -1
- package/dist/types/layout-global/app-footer.d.ts +4 -0
- package/dist/types/layout-global/app-footer.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cart/widget.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as r,createClass as e,classCallCheck as t,callSuper as n,defineProperty as o,objectSpread2 as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as l,jsx 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 m,Typography as u,Divider as p,Button as h,Box as f,IconButton as v}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,classCallCheck as t,callSuper as n,defineProperty as o,objectSpread2 as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as l,jsx 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 m,Typography as u,Divider as p,Button as h,Box as f,IconButton as v}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 S}from"./styled.js";var N=function(){function N(r){var e;return t(this,N),e=n(this,N,[r]),o(e,"render",function(){var r;return l(s,{children:[a(y,{onClick:function(r){return e.onOpen(r.currentTarget)},children:a(m,{badgeContent:e.state.hydrated&&null!==(r=e.carts.length)&&void 0!==r?r:0,color:"error",children:a(g,{fontSize:"small"})})}),a(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()})]})}),o(e,"renderContent",function(){var r,t=b(e.carts);return l(T,{children:[l("div",{className:S.header,children:[l(u,{variant:"h6",component:"span",sx:{flex:1},children:["Your Cart (",null!==(r=t.quantity)&&void 0!==r?r:0," items)"]}),l(u,{variant:"h6",component:"span",children:["Total: $ ",t.price.toFixed(2)]})]}),a(p,{}),l("div",{className:S.items,children:[e.carts.map(function(r,t){return a(s,{children:e.renderItem(r)},"key"+t)}),e.carts.length<1&&a(k,{title:"Your cart is empty",subTitle:"Try adding some products",sx:{height:"100%",m:1}})]}),a(p,{}),a("div",{className:S.footer,children:a(h,i(i(i({},e.props.hrefCart?{component:"a",href:e.props.hrefCart}:{}),{},{color:"inherit",endIcon:a(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"}))})]})}),o(e,"renderTitle",function(r){var t,n=e.props,o=n.itemTitleProps,l=n.itemTitlePropsGetter,c=l?l(r,e.onClose):null!=o?o:{};return a(u,i(i({className:S.itemTitle,noWrap:!0,variant:"subtitle1"},c),{},{children:null!==(t=r.ProductName)&&void 0!==t?t:"Unknown Product"}))}),o(e,"renderItem",function(r){var t,n,o,i;return l("div",{className:S.item,children:[a(d,{className:S.itemImg,src:null==r?void 0:r.PictureUrl,title:null==r?void 0:r.PictureUrl,fallbackSrc:"images/default-video.webp",alt:"product-picture"}),l("div",{className:S.itemContent,children:[a(u,{className:S.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),l(f,{sx:{display:"flex",alignItems:"flex-end",gap:"2px",justifyContent:"flex-end"},children:[l(u,{variant:"subtitle1",children:["$ ",null!==(o=r.Price)&&void 0!==o?o:0]}),l(u,{variant:"body1",sx:{fontSize:"14px",mb:"3px",color:"#818181"},children:["x",null!==(i=r.Amount)&&void 0!==i?i:0," urls"]})]})]}),a(v,{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:a(C,{})})]})}),o(e,"onOpen",function(r){e.setState({anchorEl:r})}),o(e,"onClose",function(){e.setState({anchorEl:null})}),e.state={anchorEl:null,hydrated:!1},e}return r(N,c),e(N,[{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 a(N,i(i({},r),e))};return e.displayName="CartWidget",e};export{N as CartWidget,j as createCartWidget};
|
|
2
2
|
//# sourceMappingURL=widget.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as r,createClass as e,objectSpread2 as
|
|
1
|
+
import{inherits as r,createClass as e,objectSpread2 as o,classCallCheck as i,callSuper as n,defineProperty as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as t,jsx as a}from"react/jsx-runtime";import{Component as s}from"react";import{Container as c,Grid as p,Typography as d,Divider as m,Box as u,IconButton as h}from"@mui/material";import{AppLogo as v}from"./app-logo.js";import{TextLineBreak as f}from"./ui.units.js";import{FooterStyled as g,appFooterClasses as k,AppFooterNav as N}from"./app-footer.styled.js";import{getFooterNavConfigs as x,bgFooterUrl as b,appLogoUrl as C,footerDescription as y,appSocialConfigs as F,getCopyrightText as j}from"./configs.js";var I=function(){function I(){var r;i(this,I);for(var e=arguments.length,o=new Array(e),t=0;t<e;t++)o[t]=arguments[t];return r=n(this,I,[].concat(o)),l(r,"handleNavItemClick",function(e,o){r.props.onNavItemClick&&o&&r.props.onNavItemClick(e,o)}),r}return r(I,s),e(I,[{key:"render",value:function(){var r,e,i,n,l,s=this,I=x(this.props.baseUrl);return t(g,o(o({className:k.root},null===(r=this.props.slots)||void 0===r?void 0:r.footerElementProps),{},{children:[a("img",{src:null!==(e=this.props.backgroundUrl)&&void 0!==e?e:b,alt:"Footer Background",className:k.background,loading:"lazy"}),t(c,{maxWidth:!1,className:k.content,children:[t(p,{container:!0,children:[t(p,{item:!0,xs:12,lg:7,children:[null===(i=this.props.slots)||void 0===i||null===(i=i.left)||void 0===i?void 0:i.top,a(v,{src:null!==(n=this.props.logoUrl)&&void 0!==n?n:C,href:this.props.baseUrl.home,className:k.appLogo}),a(d,{variant:"subtitle1",className:k.description,children:a(f,{children:y})}),null===(l=this.props.slots)||void 0===l||null===(l=l.left)||void 0===l?void 0:l.bottom]}),a(p,{item:!0,xs:12,lg:5,children:a(N,{children:a(p,{container:!0,children:I.map(function(r,e){return a(p,{item:!0,xs:12,md:6,children:a("ul",{children:r.map(function(r,e){var o,i,n;return a("li",{className:k.navItem,children:a(d,{variant:"h5",className:k.navItemText,component:"a",href:null!==(o=null===(i=r.navLink)||void 0===i?void 0:i.href)&&void 0!==o?o:"/",target:null===(n=r.navLink)||void 0===n?void 0:n.target,onClick:function(e){return s.handleNavItemClick(e,r.navLink)},children:a("span",{children:r.title})})},e)})})},e)})})})})]}),t("div",{className:k.copyright,children:[a(m,{sx:{borderColor:"#1E1E1E",mt:{xs:"20px",md:"80px"}}}),a("ul",{className:k.socialList,children:F.map(function(r,e){var i=o({"--social-color-hover":r.color||"#FFFFFF"},r.sx);return a(u,{component:"li",sx:i,children:a(h,{component:"a",href:r.link,target:"_blank",rel:"noopener noreferrer",children:r.icon})},e)})}),a("div",{className:k.copyrightText,children:a(d,{variant:"subtitle1",children:j()})})]})]})]}))}}])}(),L=function(r){var e=function(e){return a(I,o(o({},r),e))};return e.displayName="AppFooter",e};export{I as AppFooter,L as createAppFooter,I as default};
|
|
2
2
|
//# sourceMappingURL=app-footer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-footer.js","sources":["../../src/layout-global/app-footer.tsx"],"sourcesContent":["import { Component, FC } from 'react'\r\nimport { Box, Container, Divider, Grid, IconButton, Typography } from '@mui/material'\r\nimport type { BoxProps, SxProps, Theme } from '@mui/material'\r\nimport { AppLogo } from './app-logo'\r\nimport { TextLineBreak } from './ui.units'\r\nimport { IAppThemeProviderProps } from './app-theme-provider'\r\nimport { appFooterClasses, AppFooterNav, FooterStyled } from './app-footer.styled'\r\nimport { getFooterNavConfigs, appSocialConfigs, footerDescription, bgFooterUrl, appLogoUrl, getCopyrightText } from './configs'\r\nimport type { IAppSiteBaseUrl } from '../types'\r\nimport type { INavLink, NavItemClickFunction } from './types'\r\n\r\nexport interface IAppFooterSlots {\r\n themeProps?: Partial<IAppThemeProviderProps>\r\n footerElementProps?: Partial<BoxProps>\r\n}\r\n\r\nexport interface IAppFooterProps {\r\n baseUrl: IAppSiteBaseUrl\r\n logoUrl?: string\r\n backgroundUrl?: string\r\n onNavItemClick?: NavItemClickFunction\r\n slots?: IAppFooterSlots\r\n}\r\n\r\nexport class AppFooter extends Component<IAppFooterProps> {\r\n render() {\r\n const footerNavConfigs = getFooterNavConfigs(this.props.baseUrl)\r\n return (\r\n <FooterStyled className={appFooterClasses.root} {...this.props.slots?.footerElementProps}>\r\n <img src={this.props.backgroundUrl ?? bgFooterUrl} alt='Footer Background' className={appFooterClasses.background} loading='lazy' />\r\n <Container maxWidth={false} className={appFooterClasses.content}>\r\n <Grid container>\r\n <Grid item xs={12} lg={7}>\r\n <AppLogo src={this.props.logoUrl ?? appLogoUrl} href={this.props.baseUrl.home} className={appFooterClasses.appLogo} />\r\n <Typography variant='subtitle1' className={appFooterClasses.description}>\r\n <TextLineBreak>{footerDescription}</TextLineBreak>\r\n </Typography>\r\n </Grid>\r\n <Grid item xs={12} lg={5}>\r\n <AppFooterNav>\r\n <Grid container>\r\n {footerNavConfigs.map((navs, index) => (\r\n <Grid key={index} item xs={12} md={6}>\r\n <ul>\r\n {navs.map((nav, navIndex) => (\r\n <li key={navIndex} className={appFooterClasses.navItem}>\r\n <Typography\r\n variant='h5'\r\n className={appFooterClasses.navItemText}\r\n component='a'\r\n href={nav.navLink?.href ?? '/'}\r\n target={nav.navLink?.target}\r\n onClick={(event) => this.handleNavItemClick(event, nav.navLink)}\r\n >\r\n <span>{nav.title}</span>\r\n </Typography>\r\n </li>\r\n ))}\r\n </ul>\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </AppFooterNav>\r\n </Grid>\r\n </Grid>\r\n <div className={appFooterClasses.copyright}>\r\n <Divider sx={{ borderColor: '#1E1E1E', mt: { xs: '20px', md: '80px' } }} />\r\n <ul className={appFooterClasses.socialList}>\r\n {appSocialConfigs.map((social, index) => {\r\n const sxProps: SxProps<Theme> = { '--social-color-hover': social.color || '#FFFFFF', ...social.sx }\r\n return (\r\n <Box component='li' key={index} sx={sxProps}>\r\n <IconButton component='a' href={social.link} target='_blank' rel='noopener noreferrer'>\r\n {social.icon}\r\n </IconButton>\r\n </Box>\r\n )\r\n })}\r\n </ul>\r\n <div className={appFooterClasses.copyrightText}>\r\n <Typography variant='subtitle1'>{getCopyrightText()}</Typography>\r\n </div>\r\n </div>\r\n </Container>\r\n </FooterStyled>\r\n )\r\n }\r\n\r\n handleNavItemClick = (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>, item?: INavLink) => {\r\n if (!this.props.onNavItemClick || !item) return\r\n this.props.onNavItemClick(event, item)\r\n }\r\n}\r\nexport default AppFooter\r\n\r\nexport const createAppFooter = (params: IAppFooterProps): FC<Partial<IAppFooterProps>> => {\r\n const _AppFooter: FC<Partial<IAppFooterProps>> = (props) => <AppFooter {...params} {...props} />\r\n _AppFooter.displayName = 'AppFooter'\r\n return _AppFooter\r\n}\r\n"],"names":["AppFooter","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","event","item","props","onNavItemClick","_inherits","Component","_createClass","key","value","_this$props$slots","_this$props$backgroun","_this$props$logoUrl","_this2","footerNavConfigs","getFooterNavConfigs","baseUrl","_jsxs","FooterStyled","_objectSpread","className","appFooterClasses","root","slots","footerElementProps","children","_jsx","src","backgroundUrl","bgFooterUrl","alt","background","loading","Container","maxWidth","content","Grid","container","xs","lg","AppLogo","logoUrl","appLogoUrl","href","home","appLogo","Typography","variant","description","TextLineBreak","footerDescription","AppFooterNav","map","navs","index","md","nav","navIndex","_nav$navLink$href","_nav$navLink","_nav$navLink2","navItem","navItemText","component","navLink","target","onClick","handleNavItemClick","title","copyright","Divider","sx","borderColor","mt","socialList","appSocialConfigs","social","sxProps","color","Box","IconButton","link","rel","icon","copyrightText","getCopyrightText","createAppFooter","params","_AppFooter","displayName"],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-footer.js","sources":["../../src/layout-global/app-footer.tsx"],"sourcesContent":["import { Component, FC } from 'react'\r\nimport { Box, Container, Divider, Grid, IconButton, Typography } from '@mui/material'\r\nimport type { BoxProps, SxProps, Theme } from '@mui/material'\r\nimport { AppLogo } from './app-logo'\r\nimport { TextLineBreak } from './ui.units'\r\nimport { IAppThemeProviderProps } from './app-theme-provider'\r\nimport { appFooterClasses, AppFooterNav, FooterStyled } from './app-footer.styled'\r\nimport { getFooterNavConfigs, appSocialConfigs, footerDescription, bgFooterUrl, appLogoUrl, getCopyrightText } from './configs'\r\nimport type { IAppSiteBaseUrl } from '../types'\r\nimport type { INavLink, NavItemClickFunction } from './types'\r\n\r\nexport interface IAppFooterSlots {\r\n themeProps?: Partial<IAppThemeProviderProps>\r\n footerElementProps?: Partial<BoxProps>\r\n left?: {\r\n top?: React.ReactNode\r\n bottom?: React.ReactNode\r\n }\r\n}\r\n\r\nexport interface IAppFooterProps {\r\n baseUrl: IAppSiteBaseUrl\r\n logoUrl?: string\r\n backgroundUrl?: string\r\n onNavItemClick?: NavItemClickFunction\r\n slots?: IAppFooterSlots\r\n}\r\n\r\nexport class AppFooter extends Component<IAppFooterProps> {\r\n render() {\r\n const footerNavConfigs = getFooterNavConfigs(this.props.baseUrl)\r\n return (\r\n <FooterStyled className={appFooterClasses.root} {...this.props.slots?.footerElementProps}>\r\n <img src={this.props.backgroundUrl ?? bgFooterUrl} alt='Footer Background' className={appFooterClasses.background} loading='lazy' />\r\n <Container maxWidth={false} className={appFooterClasses.content}>\r\n <Grid container>\r\n <Grid item xs={12} lg={7}>\r\n {this.props.slots?.left?.top}\r\n <AppLogo src={this.props.logoUrl ?? appLogoUrl} href={this.props.baseUrl.home} className={appFooterClasses.appLogo} />\r\n <Typography variant='subtitle1' className={appFooterClasses.description}>\r\n <TextLineBreak>{footerDescription}</TextLineBreak>\r\n </Typography>\r\n {this.props.slots?.left?.bottom}\r\n </Grid>\r\n <Grid item xs={12} lg={5}>\r\n <AppFooterNav>\r\n <Grid container>\r\n {footerNavConfigs.map((navs, index) => (\r\n <Grid key={index} item xs={12} md={6}>\r\n <ul>\r\n {navs.map((nav, navIndex) => (\r\n <li key={navIndex} className={appFooterClasses.navItem}>\r\n <Typography\r\n variant='h5'\r\n className={appFooterClasses.navItemText}\r\n component='a'\r\n href={nav.navLink?.href ?? '/'}\r\n target={nav.navLink?.target}\r\n onClick={(event) => this.handleNavItemClick(event, nav.navLink)}\r\n >\r\n <span>{nav.title}</span>\r\n </Typography>\r\n </li>\r\n ))}\r\n </ul>\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </AppFooterNav>\r\n </Grid>\r\n </Grid>\r\n <div className={appFooterClasses.copyright}>\r\n <Divider sx={{ borderColor: '#1E1E1E', mt: { xs: '20px', md: '80px' } }} />\r\n <ul className={appFooterClasses.socialList}>\r\n {appSocialConfigs.map((social, index) => {\r\n const sxProps: SxProps<Theme> = { '--social-color-hover': social.color || '#FFFFFF', ...social.sx }\r\n return (\r\n <Box component='li' key={index} sx={sxProps}>\r\n <IconButton component='a' href={social.link} target='_blank' rel='noopener noreferrer'>\r\n {social.icon}\r\n </IconButton>\r\n </Box>\r\n )\r\n })}\r\n </ul>\r\n <div className={appFooterClasses.copyrightText}>\r\n <Typography variant='subtitle1'>{getCopyrightText()}</Typography>\r\n </div>\r\n </div>\r\n </Container>\r\n </FooterStyled>\r\n )\r\n }\r\n\r\n handleNavItemClick = (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>, item?: INavLink) => {\r\n if (!this.props.onNavItemClick || !item) return\r\n this.props.onNavItemClick(event, item)\r\n }\r\n}\r\nexport default AppFooter\r\n\r\nexport const createAppFooter = (params: IAppFooterProps): FC<Partial<IAppFooterProps>> => {\r\n const _AppFooter: FC<Partial<IAppFooterProps>> = (props) => <AppFooter {...params} {...props} />\r\n _AppFooter.displayName = 'AppFooter'\r\n return _AppFooter\r\n}\r\n"],"names":["AppFooter","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","event","item","props","onNavItemClick","_inherits","Component","_createClass","key","value","_this$props$slots","_this$props$backgroun","_this$props$slots2","_this$props$logoUrl","_this$props$slots3","_this2","footerNavConfigs","getFooterNavConfigs","baseUrl","_jsxs","FooterStyled","_objectSpread","className","appFooterClasses","root","slots","footerElementProps","children","_jsx","src","backgroundUrl","bgFooterUrl","alt","background","loading","Container","maxWidth","content","Grid","container","xs","lg","left","top","AppLogo","logoUrl","appLogoUrl","href","home","appLogo","Typography","variant","description","TextLineBreak","footerDescription","bottom","AppFooterNav","map","navs","index","md","nav","navIndex","_nav$navLink$href","_nav$navLink","_nav$navLink2","navItem","navItemText","component","navLink","target","onClick","handleNavItemClick","title","copyright","Divider","sx","borderColor","mt","socialList","appSocialConfigs","social","sxProps","color","Box","IconButton","link","rel","icon","copyrightText","getCopyrightText","createAppFooter","params","_AppFooter","displayName"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as
|
|
1
|
+
import{inherits as s,createClass as r,classCallCheck as e,callSuper as o,objectSpread2 as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t,jsxs as a}from"react/jsx-runtime";import{Component as l}from"react";import{Container as n,Stack as p}from"@mui/material";import{AppLogo as m}from"./app-logo.js";import{appHeaderClasses as c,HeaderStyled as d}from"./app-header.styled.js";import{appLogoUrl as h,getHeaderMenuConfigs as f,getHeaderNavConfigs as u}from"./configs.js";import x from"./mobile-menu.js";import g from"./app-header.nav.js";var v=function(){function i(s){var r;return e(this,i),(r=o(this,i,[s])).configs={navs:u(s.baseUrl),menu:f(s.baseUrl)},r}return s(i,l),r(i,[{key:"render",value:function(){var s,r,e=this.props.isFixed,o=[c.root];return!1!==e&&o.push(c.fixed),t(d,{className:o.join(" "),children:t("div",{className:c.rootFixed,children:a(n,{maxWidth:!1,className:c.content,sx:{height:"100%"},children:[t(m,{src:null!==(s=this.props.logoUrl)&&void 0!==s?s:h,href:this.props.baseUrl.home,sx:{m:{xs:"-16px 0 -16px 0",md:"0 0 -12px 0"}}}),a(p,{direction:"row",alignItems:"center",spacing:2,children:[t(g,{configs:this.configs,onNavItemClick:this.props.onNavItemClick,sx:{display:{xs:"none",lg:"flex"}},slots:null===(r=this.props.slots)||void 0===r?void 0:r.navItem}),a(p,{direction:"row",gap:1,sx:{justifyContent:"flex-end",alignItems:"center"},children:[this.props.actions,t(x,{baseUrl:this.props.baseUrl,logoUrl:this.props.logoUrl})]})]})]})})})}}])}(),j=function(s){var r=function(r){return t(v,i({},i(i(i({},s),r),{},{slots:i(i({},s.slots),r.slots)})))};return r.displayName="AppHeader",r};export{v as AppHeader,j as createAppHeader,v as default};
|
|
2
2
|
//# sourceMappingURL=app-header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-header.js","sources":["../../src/layout-global/app-header.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport { Container, Stack } from '@mui/material'\r\nimport type { ComponentType, FC, ReactNode } from 'react'\r\nimport { AppLogo } from './app-logo'\r\nimport { IAppNav, NavItemClickFunction } from './types'\r\nimport { IAppThemeProviderProps } from './app-theme-provider'\r\nimport { appHeaderClasses, HeaderStyled } from './app-header.styled'\r\nimport { appLogoUrl, getHeaderMenuConfigs, getHeaderNavConfigs } from './configs'\r\nimport type { IAppSiteBaseUrl } from '../types'\r\nimport type { IAppHeaderNavSlots } from './app-header.nav'\r\nimport MobileMenu from './mobile-menu'\r\nimport AppHeaderNav from './app-header.nav'\r\n\r\nexport interface IAppHeaderSlots {\r\n navItem?: IAppHeaderNavSlots\r\n themeProps?: Partial<IAppThemeProviderProps>\r\n}\r\n\r\nexport interface IAppHeaderProps {\r\n baseUrl: IAppSiteBaseUrl\r\n onNavItemClick?: NavItemClickFunction\r\n logoUrl?: string\r\n actions?: ReactNode\r\n isFixed?: boolean\r\n slots?: IAppHeaderSlots\r\n}\r\n\r\nexport class AppHeader extends Component<IAppHeaderProps> {\r\n private configs: Record<'navs' | 'menu', IAppNav[]>\r\n constructor(props: IAppHeaderProps) {\r\n super(props)\r\n this.configs = {\r\n navs: getHeaderNavConfigs(props.baseUrl),\r\n menu: getHeaderMenuConfigs(props.baseUrl)\r\n }\r\n }\r\n\r\n render() {\r\n const { isFixed } = this.props\r\n const rootClasses = [appHeaderClasses.root]\r\n if (isFixed !== false) rootClasses.push(appHeaderClasses.fixed)\r\n return (\r\n <HeaderStyled className={rootClasses.join(' ')}>\r\n <div className={appHeaderClasses.rootFixed}>\r\n <Container maxWidth={false} className={appHeaderClasses.content} sx={{ height: '100%' }}>\r\n {/* The AppLogo component displays the application logo */}\r\n <AppLogo src={this.props.logoUrl ?? appLogoUrl} href={this.props.baseUrl.home} sx={{
|
|
1
|
+
{"version":3,"file":"app-header.js","sources":["../../src/layout-global/app-header.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport { Container, Stack } from '@mui/material'\r\nimport type { ComponentType, FC, ReactNode } from 'react'\r\nimport { AppLogo } from './app-logo'\r\nimport { IAppNav, NavItemClickFunction } from './types'\r\nimport { IAppThemeProviderProps } from './app-theme-provider'\r\nimport { appHeaderClasses, HeaderStyled } from './app-header.styled'\r\nimport { appLogoUrl, getHeaderMenuConfigs, getHeaderNavConfigs } from './configs'\r\nimport type { IAppSiteBaseUrl } from '../types'\r\nimport type { IAppHeaderNavSlots } from './app-header.nav'\r\nimport MobileMenu from './mobile-menu'\r\nimport AppHeaderNav from './app-header.nav'\r\n\r\nexport interface IAppHeaderSlots {\r\n navItem?: IAppHeaderNavSlots\r\n themeProps?: Partial<IAppThemeProviderProps>\r\n}\r\n\r\nexport interface IAppHeaderProps {\r\n baseUrl: IAppSiteBaseUrl\r\n onNavItemClick?: NavItemClickFunction\r\n logoUrl?: string\r\n actions?: ReactNode\r\n isFixed?: boolean\r\n slots?: IAppHeaderSlots\r\n}\r\n\r\nexport class AppHeader extends Component<IAppHeaderProps> {\r\n private configs: Record<'navs' | 'menu', IAppNav[]>\r\n constructor(props: IAppHeaderProps) {\r\n super(props)\r\n this.configs = {\r\n navs: getHeaderNavConfigs(props.baseUrl),\r\n menu: getHeaderMenuConfigs(props.baseUrl)\r\n }\r\n }\r\n\r\n render() {\r\n const { isFixed } = this.props\r\n const rootClasses = [appHeaderClasses.root]\r\n if (isFixed !== false) rootClasses.push(appHeaderClasses.fixed)\r\n return (\r\n <HeaderStyled className={rootClasses.join(' ')}>\r\n <div className={appHeaderClasses.rootFixed}>\r\n <Container maxWidth={false} className={appHeaderClasses.content} sx={{ height: '100%' }}>\r\n {/* The AppLogo component displays the application logo */}\r\n <AppLogo src={this.props.logoUrl ?? appLogoUrl} href={this.props.baseUrl.home} sx={{ m: { xs: '-16px 0 -16px 0', md: '0 0 -12px 0' } }} />\r\n <Stack direction='row' alignItems='center' spacing={2}>\r\n <AppHeaderNav\r\n configs={this.configs}\r\n onNavItemClick={this.props.onNavItemClick}\r\n sx={{ display: { xs: 'none', lg: 'flex' } }}\r\n slots={this.props.slots?.navItem}\r\n />\r\n <Stack direction='row' gap={1} sx={{ justifyContent: 'flex-end', alignItems: 'center' }}>\r\n {this.props.actions}\r\n {/* MobileMenu is a responsive menu for smaller screens */}\r\n {/* It provides a hamburger menu icon that toggles the navigation items */}\r\n <MobileMenu baseUrl={this.props.baseUrl} logoUrl={this.props.logoUrl} />\r\n </Stack>\r\n </Stack>\r\n </Container>\r\n </div>\r\n </HeaderStyled>\r\n )\r\n }\r\n}\r\nexport default AppHeader\r\n\r\nexport const createAppHeader = (params: IAppHeaderProps): ComponentType<Partial<IAppHeaderProps>> => {\r\n const _AppHeader: FC<Partial<IAppHeaderProps>> = (props) => {\r\n return <AppHeader {...{ ...params, ...props, slots: { ...params.slots, ...props.slots } }} />\r\n }\r\n _AppHeader.displayName = 'AppHeader'\r\n return _AppHeader\r\n}\r\n"],"names":["AppHeader","props","_this","_classCallCheck","_callSuper","configs","navs","getHeaderNavConfigs","baseUrl","menu","getHeaderMenuConfigs","_inherits","Component","_createClass","key","value","_this$props$logoUrl","_this$props$slots","isFixed","this","rootClasses","appHeaderClasses","root","push","fixed","_jsx","HeaderStyled","className","join","children","rootFixed","_jsxs","Container","maxWidth","content","sx","height","AppLogo","src","logoUrl","appLogoUrl","href","home","m","xs","md","Stack","direction","alignItems","spacing","AppHeaderNav","onNavItemClick","display","lg","slots","navItem","gap","justifyContent","actions","MobileMenu","createAppHeader","params","_AppHeader","_objectSpread","displayName"],"mappings":"wiBA2BaA,IAAAA,aAEX,SAAAA,EAAYC,GAAsB,IAAAC,EAK/B,OAL+BC,OAAAH,IAChCE,EAAAE,EAAAJ,KAAAA,GAAMC,KACDI,QAAU,CACbC,KAAMC,EAAoBN,EAAMO,SAChCC,KAAMC,EAAqBT,EAAMO,UAClCN,CACH,CAAC,OAAAS,EAAAX,EAR4BY,GAQ5BC,EAAAb,EAAA,CAAA,CAAAc,IAAA,SAAAC,MAED,WAAM,IAAAC,EAAAC,EACIC,EAAYC,KAAKlB,MAAjBiB,QACFE,EAAc,CAACC,EAAiBC,MAEtC,OADgB,IAAZJ,GAAmBE,EAAYG,KAAKF,EAAiBG,OAEvDC,EAACC,EAAY,CAACC,UAAWP,EAAYQ,KAAK,KAAIC,SAC5CJ,SAAKE,UAAWN,EAAiBS,mBAC/BC,EAACC,GAAUC,UAAU,EAAON,UAAWN,EAAiBa,QAASC,GAAI,CAAEC,OAAQ,kBAE7EX,EAACY,EAAQ,CAAAC,IAAuBtB,QAApBA,EAAEG,KAAKlB,MAAMsC,eAAOvB,IAAAA,EAAAA,EAAIwB,EAAYC,KAAMtB,KAAKlB,MAAMO,QAAQkC,KAAMP,GAAI,CAAEQ,EAAG,CAAEC,GAAI,kBAAmBC,GAAI,kBACrHd,EAACe,EAAK,CAACC,UAAU,MAAMC,WAAW,SAASC,QAAS,EAClDpB,SAAA,CAAAJ,EAACyB,EACC,CAAA7C,QAASc,KAAKd,QACd8C,eAAgBhC,KAAKlB,MAAMkD,eAC3BhB,GAAI,CAAEiB,QAAS,CAAER,GAAI,OAAQS,GAAI,SACjCC,MAAuBrC,QAAlBA,EAAEE,KAAKlB,MAAMqD,aAAXrC,IAAgBA,OAAhBA,EAAAA,EAAkBsC,UAE3BxB,EAACe,EAAM,CAAAC,UAAU,MAAMS,IAAK,EAAGrB,GAAI,CAAEsB,eAAgB,WAAYT,WAAY,UAC1EnB,SAAA,CAAAV,KAAKlB,MAAMyD,QAGZjC,EAACkC,GAAWnD,QAASW,KAAKlB,MAAMO,QAAS+B,QAASpB,KAAKlB,MAAMsC,sBAO3E,IAAC,IAIUqB,EAAkB,SAACC,GAC9B,IAAMC,EAA2C,SAAC7D,GAChD,OAAOwB,EAACzB,EAAS+D,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,EAAUF,CAAAA,EAAAA,GAAW5D,GAAK,CAAA,EAAA,CAAEqD,MAAKS,EAAAA,EAAA,CAAA,EAAOF,EAAOP,OAAUrD,EAAMqD,UACjF,EAED,OADAQ,EAAWE,YAAc,YAClBF,CACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{objectWithoutProperties as r,objectSpread2 as e,defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o}from"react/jsx-runtime";import{styled as i,Box as a}from"@mui/material";var n=["src","href"],p=["href"],s=function(t){var i=t.src,a=t.href,p=r(t,n);return o(c,e(e({href:a||"/",className:"AppLogo"},p),{},{children:o("img",{src:i,alt:"App Logo"})}))},c=i(function(t){var i=t.href,n=r(t,p);return o(a,e({component:"a",href:i},n))})(function(r){var e=r.theme;return t({cursor:"pointer",display:"flex",
|
|
1
|
+
import{objectWithoutProperties as r,objectSpread2 as e,defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o}from"react/jsx-runtime";import{styled as i,Box as a}from"@mui/material";var n=["src","href"],p=["href"],s=function(t){var i=t.src,a=t.href,p=r(t,n);return o(c,e(e({href:a||"/",className:"AppLogo"},p),{},{children:o("img",{src:i,alt:"App Logo"})}))},c=i(function(t){var i=t.href,n=r(t,p);return o(a,e({component:"a",href:i},n))})(function(r){var e=r.theme;return t(t({cursor:"pointer",display:"flex",height:"90px",flex:"0 0 auto",aspectRatio:"16/9","& > img":{width:"100%",height:"100%",objectFit:"contain"}},e.breakpoints.down("xl"),{height:"78px"}),e.breakpoints.down("sm"),{aspectRatio:"unset"})});export{s as AppLogo,s as default};
|
|
2
2
|
//# sourceMappingURL=app-logo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-logo.js","sources":["../../src/layout-global/app-logo.tsx"],"sourcesContent":["import { Box, styled } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport type { BoxProps, Theme } from '@mui/material'\r\n\r\nexport interface IAppLogoProps extends BoxProps {\r\n src: string\r\n href?: string // Optional href to make the logo clickable\r\n}\r\n\r\nexport const AppLogo: FC<IAppLogoProps> = (props) => {\r\n const { src, href, ...boxProps } = props\r\n return (\r\n <WrapLogo href={href || '/'} className='AppLogo' {...boxProps}>\r\n <img src={src} alt='App Logo' />\r\n </WrapLogo>\r\n )\r\n}\r\nexport default AppLogo\r\n\r\nconst WrapLogo = styled(({ href, ...props }: BoxProps & { href: string }) => {\r\n return <Box component='a' href={href} {...props} />\r\n})(({ theme }: { theme: Theme }) => ({\r\n cursor: 'pointer',\r\n display: 'flex',\r\n
|
|
1
|
+
{"version":3,"file":"app-logo.js","sources":["../../src/layout-global/app-logo.tsx"],"sourcesContent":["import { Box, styled } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport type { BoxProps, Theme } from '@mui/material'\r\n\r\nexport interface IAppLogoProps extends BoxProps {\r\n src: string\r\n href?: string // Optional href to make the logo clickable\r\n}\r\n\r\nexport const AppLogo: FC<IAppLogoProps> = (props) => {\r\n const { src, href, ...boxProps } = props\r\n return (\r\n <WrapLogo href={href || '/'} className='AppLogo' {...boxProps}>\r\n <img src={src} alt='App Logo' />\r\n </WrapLogo>\r\n )\r\n}\r\nexport default AppLogo\r\n\r\nconst WrapLogo = styled(({ href, ...props }: BoxProps & { href: string }) => {\r\n return <Box component='a' href={href} {...props} />\r\n})(({ theme }: { theme: Theme }) => ({\r\n cursor: 'pointer',\r\n display: 'flex',\r\n height: '90px',\r\n flex: '0 0 auto',\r\n aspectRatio: '16/9', // 480:270 ratio\r\n '& > img': {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'contain'\r\n },\r\n [theme.breakpoints.down('xl')]: {\r\n height: '78px'\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n aspectRatio: 'unset'\r\n }\r\n}))\r\n"],"names":["AppLogo","props","src","href","boxProps","_objectWithoutProperties","_excluded","_jsx","WrapLogo","_objectSpread","className","children","alt","styled","_ref","_excluded2","Box","component","_ref2","theme","_defineProperty","cursor","display","height","flex","aspectRatio","width","objectFit","breakpoints","down"],"mappings":"kPASaA,EAA6B,SAACC,GACzC,IAAQC,EAA2BD,EAA3BC,IAAKC,EAAsBF,EAAtBE,KAASC,EAAQC,EAAKJ,EAAKK,GACxC,OACEC,EAACC,EAAQC,EAAAA,EAAA,CAACN,KAAMA,GAAQ,IAAKO,UAAU,WAAcN,GAAQ,GAAA,CAC3DO,SAAAJ,EAAA,MAAA,CAAKL,IAAKA,EAAKU,IAAI,eAGzB,EAGMJ,EAAWK,EAAO,SAAAC,GAAoD,IAAjDX,EAAIW,EAAJX,KAASF,EAAKI,EAAAS,EAAAC,GACvC,OAAOR,EAACS,EAAGP,EAAA,CAACQ,UAAU,IAAId,KAAMA,GAAUF,GAC5C,EAFiBY,CAEd,SAAAK,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAC,EAAAA,EAAA,CACTC,OAAQ,UACRC,QAAS,OACTC,OAAQ,OACRC,KAAM,WACNC,YAAa,OACb,UAAW,CACTC,MAAO,OACPH,OAAQ,OACRI,UAAW,YAEZR,EAAMS,YAAYC,KAAK,MAAQ,CAC9BN,OAAQ,SAETJ,EAAMS,YAAYC,KAAK,MAAQ,CAC9BJ,YAAa,SACd"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as e,createClass as t,classCallCheck as a,callSuper as i,defineProperty as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,Fragment as n,jsxs as o}from"react/jsx-runtime";import"react-quill/dist/quill.snow.css";import{Component as s}from"react";import{styled as d,Box as c,Typography as h,Tooltip as p,IconButton as m,Divider as u,Button as f}from"@mui/material";import x from"@mui/icons-material/Close";import g from"@mui/icons-material/KeyboardArrowLeft";import C from"@mui/icons-material/KeyboardArrowRight";import{NotifyDetailStyled as v,notifyDetailClasses as
|
|
1
|
+
import{inherits as e,createClass as t,classCallCheck as a,callSuper as i,defineProperty as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,Fragment as n,jsxs as o}from"react/jsx-runtime";import"react-quill/dist/quill.snow.css";import{Component as s}from"react";import{styled as d,Box as c,Typography as h,Tooltip as p,IconButton as m,Divider as u,Button as f}from"@mui/material";import x from"@mui/icons-material/Close";import g from"@mui/icons-material/KeyboardArrowLeft";import C from"@mui/icons-material/KeyboardArrowRight";import{NotifyDetailStyled as v,notifyDetailClasses as y}from"./styled.js";var S=function(){function d(e){var t;return a(this,d),t=i(this,d,[e]),r(t,"renderControl",function(){return t.props.data.length<2?l(c,{}):o(R,{children:[l(m,{disabled:t.state.indexSelected<=0,onClick:t.handleClickLeft,children:l(g,{})}),o(h,{children:[t.state.indexSelected+1," / ",t.props.data.length]}),l(m,{disabled:t.state.indexSelected>=t.props.data.length-1,onClick:t.handleClickRight,children:l(C,{})})]})}),r(t,"handleClickLeft",function(){var e=t.state.indexSelected-1;e<0||t.setState({indexSelected:e})}),r(t,"handleClickRight",function(){var e=t.state.indexSelected+1;e>=t.props.data.length||t.setState({indexSelected:e})}),r(t,"handleRead",function(){var e,a,i,r,l=t.props.data[t.state.indexSelected];null===(e=(a=t.props).onRead)||void 0===e||e.call(a,l),t.handleClickRight(),t.state.indexSelected>=t.props.data.length-1&&(null===(i=(r=t.props).onClose)||void 0===i||i.call(r))}),r(t,"getData",function(){var e=t.props.data,a=t.state.indexSelected,i=e[a];return i||0===a?i:void t.setState({indexSelected:0})}),t.state={indexSelected:0},t}return e(d,s),t(d,[{key:"render",value:function(){var e=this.getData();return e?o(v,{className:y.root,children:[o("div",{className:y.header,children:[l(h,{variant:"h6",className:y.title,children:e.Title}),l(p,{title:"Close",children:l(m,{onClick:this.props.onClose,className:y.closeButton,children:l(x,{})})})]}),l(u,{flexItem:!0,variant:"middle",sx:{opacity:.3}}),l(k,{children:l("div",{className:"ql-editor",dangerouslySetInnerHTML:{__html:e.Content}})}),l(u,{flexItem:!0,variant:"middle",sx:{opacity:.3}}),o("div",{className:y.footer,children:[this.renderControl(),o("div",{className:y.footerActions,children:[!e.IsRead&&l(f,{color:"inherit",onClick:this.props.onClose,sx:{textTransform:"unset"},children:"Remind me later"}),!e.IsRead&&l(f,{color:"primary",onClick:this.handleRead,sx:{textTransform:"unset",fontWeight:600},children:"Mark as read"}),e.IsRead&&l(f,{color:"primary",onClick:this.props.onClose,sx:{textTransform:"unset"},children:"Close"})]})]})]}):l(n,{})}}])}(),k=d(c)(function(e){var t=e.theme;return{width:"100%",minHeight:"350px",maxHeight:"calc(100vh - 128px)",overflow:"auto",margin:"0 4px",padding:"0 8px",color:t.palette.grey[900],fontFamily:"var(--font-primary, 'Roboto', 'Arial', sans-serif)","--color-body":t.palette.grey[900],"& .ql-toolbar.ql-snow":{display:"none"},"& .ql-container.ql-snow":{border:"none"},"& .ql-editor":{paddingLeft:0,paddingRight:0,height:"unset"},img:{maxWidth:"90%",height:"auto",marginLeft:"auto",marginRight:"auto",display:"block"}}}),R=d(c)({display:"flex",alignItems:"center",gap:"8px"});export{S as default};
|
|
2
2
|
//# sourceMappingURL=notify-detail.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify-detail.js","sources":["../../src/notification/notify-detail.tsx"],"sourcesContent":["import 'react-quill/dist/quill.snow.css'\r\nimport { Component } from 'react'\r\nimport { Box, Button, styled, Typography, Divider, IconButton, Tooltip } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport KeyboardArrowLeftIcon from '@mui/icons-material/KeyboardArrowLeft'\r\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight'\r\nimport { INotification } from './types'\r\nimport { notifyDetailClasses, NotifyDetailStyled } from './styled'\r\n\r\ninterface IProps {\r\n data: INotification[]\r\n onRead?: (value: INotification) => void\r\n onClose?: () => void\r\n}\r\n\r\ninterface IState {\r\n indexSelected: number\r\n}\r\n\r\nclass NotifyDetail extends Component<IProps, IState> {\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = { indexSelected: 0 }\r\n }\r\n\r\n render() {\r\n const data = this.getData()\r\n if (!data) return <></>\r\n return (\r\n <NotifyDetailStyled className={notifyDetailClasses.root}>\r\n <div className={notifyDetailClasses.header}>\r\n <Typography variant='h6' className={notifyDetailClasses.title}>\r\n {data.Title}\r\n </Typography>\r\n <Tooltip title='Close'>\r\n <IconButton onClick={this.props.onClose} className={notifyDetailClasses.closeButton}>\r\n <CloseIcon />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n <Divider flexItem variant='middle' sx={{ opacity: 0.3 }} />\r\n <TextEditorWrapper>\r\n <div className='ql-editor' dangerouslySetInnerHTML={{ __html: data.Content }} />\r\n </TextEditorWrapper>\r\n <Divider flexItem variant='middle' sx={{ opacity: 0.3 }} />\r\n <div className={notifyDetailClasses.footer}>\r\n {this.renderControl()}\r\n <div className={notifyDetailClasses.footerActions}>\r\n {!data.IsRead && (\r\n <Button color='inherit' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n {'Remind me later'}\r\n </Button>\r\n )}\r\n {!data.IsRead && (\r\n <Button color='primary' onClick={this.handleRead} sx={{ textTransform: 'unset', fontWeight: 600 }}>\r\n Mark as read\r\n </Button>\r\n )}\r\n {data.IsRead && (\r\n <Button color='primary' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n Close\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </NotifyDetailStyled>\r\n )\r\n }\r\n\r\n renderControl = () => {\r\n if (this.props.data.length < 2) return <Box />\r\n return (\r\n <FlexCenter>\r\n <IconButton disabled={this.state.indexSelected <= 0} onClick={this.handleClickLeft}>\r\n <KeyboardArrowLeftIcon />\r\n </IconButton>\r\n <Typography>\r\n {this.state.indexSelected + 1} / {this.props.data.length}\r\n </Typography>\r\n <IconButton disabled={this.state.indexSelected >= this.props.data.length - 1} onClick={this.handleClickRight}>\r\n <KeyboardArrowRightIcon />\r\n </IconButton>\r\n </FlexCenter>\r\n )\r\n }\r\n\r\n handleClickLeft = () => {\r\n const index = this.state.indexSelected - 1\r\n if (index < 0) return\r\n this.setState({ indexSelected: index })\r\n }\r\n\r\n handleClickRight = () => {\r\n const index = this.state.indexSelected + 1\r\n if (index >= this.props.data.length) return\r\n this.setState({ indexSelected: index })\r\n }\r\n\r\n handleRead = () => {\r\n const data = this.props.data[this.state.indexSelected]\r\n this.props.onRead?.(data)\r\n this.handleClickRight()\r\n if (this.state.indexSelected >= this.props.data.length - 1) this.props.onClose?.()\r\n }\r\n\r\n getData = () => {\r\n const { data } = this.props\r\n const { indexSelected } = this.state\r\n const item = data[indexSelected]\r\n if (!item && indexSelected !== 0) {\r\n this.setState({ indexSelected: 0 })\r\n return\r\n } else {\r\n return item\r\n }\r\n }\r\n}\r\n\r\nexport default NotifyDetail\r\n\r\nconst TextEditorWrapper = styled(Box)(({ theme }) => ({\r\n width: '100%',\r\n minHeight: '350px',\r\n maxHeight: 'calc(100vh - 128px)',\r\n overflow: 'auto',\r\n margin: '0 4px',\r\n padding: '0 8px',\r\n color: theme.palette.grey[900],\r\n '--color-body': theme.palette.grey[900],\r\n '& .ql-toolbar.ql-snow': { display: 'none' },\r\n '& .ql-container.ql-snow': { border: 'none' },\r\n '& .ql-editor': {
|
|
1
|
+
{"version":3,"file":"notify-detail.js","sources":["../../src/notification/notify-detail.tsx"],"sourcesContent":["import 'react-quill/dist/quill.snow.css'\r\nimport { Component } from 'react'\r\nimport { Box, Button, styled, Typography, Divider, IconButton, Tooltip } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport KeyboardArrowLeftIcon from '@mui/icons-material/KeyboardArrowLeft'\r\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight'\r\nimport { INotification } from './types'\r\nimport { notifyDetailClasses, NotifyDetailStyled } from './styled'\r\n\r\ninterface IProps {\r\n data: INotification[]\r\n onRead?: (value: INotification) => void\r\n onClose?: () => void\r\n}\r\n\r\ninterface IState {\r\n indexSelected: number\r\n}\r\n\r\nclass NotifyDetail extends Component<IProps, IState> {\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = { indexSelected: 0 }\r\n }\r\n\r\n render() {\r\n const data = this.getData()\r\n if (!data) return <></>\r\n return (\r\n <NotifyDetailStyled className={notifyDetailClasses.root}>\r\n <div className={notifyDetailClasses.header}>\r\n <Typography variant='h6' className={notifyDetailClasses.title}>\r\n {data.Title}\r\n </Typography>\r\n <Tooltip title='Close'>\r\n <IconButton onClick={this.props.onClose} className={notifyDetailClasses.closeButton}>\r\n <CloseIcon />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n <Divider flexItem variant='middle' sx={{ opacity: 0.3 }} />\r\n <TextEditorWrapper>\r\n <div className='ql-editor' dangerouslySetInnerHTML={{ __html: data.Content }} />\r\n </TextEditorWrapper>\r\n <Divider flexItem variant='middle' sx={{ opacity: 0.3 }} />\r\n <div className={notifyDetailClasses.footer}>\r\n {this.renderControl()}\r\n <div className={notifyDetailClasses.footerActions}>\r\n {!data.IsRead && (\r\n <Button color='inherit' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n {'Remind me later'}\r\n </Button>\r\n )}\r\n {!data.IsRead && (\r\n <Button color='primary' onClick={this.handleRead} sx={{ textTransform: 'unset', fontWeight: 600 }}>\r\n Mark as read\r\n </Button>\r\n )}\r\n {data.IsRead && (\r\n <Button color='primary' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n Close\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </NotifyDetailStyled>\r\n )\r\n }\r\n\r\n renderControl = () => {\r\n if (this.props.data.length < 2) return <Box />\r\n return (\r\n <FlexCenter>\r\n <IconButton disabled={this.state.indexSelected <= 0} onClick={this.handleClickLeft}>\r\n <KeyboardArrowLeftIcon />\r\n </IconButton>\r\n <Typography>\r\n {this.state.indexSelected + 1} / {this.props.data.length}\r\n </Typography>\r\n <IconButton disabled={this.state.indexSelected >= this.props.data.length - 1} onClick={this.handleClickRight}>\r\n <KeyboardArrowRightIcon />\r\n </IconButton>\r\n </FlexCenter>\r\n )\r\n }\r\n\r\n handleClickLeft = () => {\r\n const index = this.state.indexSelected - 1\r\n if (index < 0) return\r\n this.setState({ indexSelected: index })\r\n }\r\n\r\n handleClickRight = () => {\r\n const index = this.state.indexSelected + 1\r\n if (index >= this.props.data.length) return\r\n this.setState({ indexSelected: index })\r\n }\r\n\r\n handleRead = () => {\r\n const data = this.props.data[this.state.indexSelected]\r\n this.props.onRead?.(data)\r\n this.handleClickRight()\r\n if (this.state.indexSelected >= this.props.data.length - 1) this.props.onClose?.()\r\n }\r\n\r\n getData = () => {\r\n const { data } = this.props\r\n const { indexSelected } = this.state\r\n const item = data[indexSelected]\r\n if (!item && indexSelected !== 0) {\r\n this.setState({ indexSelected: 0 })\r\n return\r\n } else {\r\n return item\r\n }\r\n }\r\n}\r\n\r\nexport default NotifyDetail\r\n\r\nconst TextEditorWrapper = styled(Box)(({ theme }) => ({\r\n width: '100%',\r\n minHeight: '350px',\r\n maxHeight: 'calc(100vh - 128px)',\r\n overflow: 'auto',\r\n margin: '0 4px',\r\n padding: '0 8px',\r\n color: theme.palette.grey[900],\r\n fontFamily: \"var(--font-primary, 'Roboto', 'Arial', sans-serif)\",\r\n '--color-body': theme.palette.grey[900],\r\n '& .ql-toolbar.ql-snow': { display: 'none' },\r\n '& .ql-container.ql-snow': { border: 'none' },\r\n '& .ql-editor': { paddingLeft: 0, paddingRight: 0, height: 'unset' },\r\n img: { maxWidth: '90%', height: 'auto', marginLeft: 'auto', marginRight: 'auto', display: 'block' }\r\n}))\r\n\r\nconst FlexCenter = styled(Box)({ display: 'flex', alignItems: 'center', gap: '8px' })\r\n"],"names":["NotifyDetail","props","_this","_classCallCheck","_callSuper","_defineProperty","data","length","_jsx","Box","_jsxs","FlexCenter","children","IconButton","disabled","state","indexSelected","onClick","handleClickLeft","KeyboardArrowLeftIcon","Typography","handleClickRight","KeyboardArrowRightIcon","index","setState","_this$props$onRead","_this$props","_this$props$onClose","_this$props2","onRead","call","onClose","item","_inherits","Component","_createClass","key","value","this","getData","NotifyDetailStyled","className","notifyDetailClasses","root","header","variant","title","Title","Tooltip","closeButton","CloseIcon","Divider","flexItem","sx","opacity","TextEditorWrapper","dangerouslySetInnerHTML","__html","Content","footer","renderControl","footerActions","IsRead","Button","color","textTransform","handleRead","fontWeight","styled","_ref","theme","width","minHeight","maxHeight","overflow","margin","padding","palette","grey","fontFamily","display","border","paddingLeft","paddingRight","height","img","maxWidth","marginLeft","marginRight","alignItems","gap"],"mappings":"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"}
|
|
@@ -6,6 +6,10 @@ import type { INavLink, NavItemClickFunction } from './types';
|
|
|
6
6
|
export interface IAppFooterSlots {
|
|
7
7
|
themeProps?: Partial<IAppThemeProviderProps>;
|
|
8
8
|
footerElementProps?: Partial<BoxProps>;
|
|
9
|
+
left?: {
|
|
10
|
+
top?: React.ReactNode;
|
|
11
|
+
bottom?: React.ReactNode;
|
|
12
|
+
};
|
|
9
13
|
}
|
|
10
14
|
export interface IAppFooterProps {
|
|
11
15
|
baseUrl: IAppSiteBaseUrl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-footer.d.ts","sourceRoot":"","sources":["../../../src/layout-global/app-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,eAAe,CAAA;AAG7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAG7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE7D,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"app-footer.d.ts","sourceRoot":"","sources":["../../../src/layout-global/app-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,eAAe,CAAA;AAG7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAG7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE7D,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KACzB,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,eAAe,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,KAAK,CAAC,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,SAAU,SAAQ,SAAS,CAAC,eAAe,CAAC;IACvD,MAAM;IAiEN,kBAAkB,UAAW,gBAAgB,CAAC,iBAAiB,EAAE,UAAU,CAAC,SAAS,QAAQ,UAG5F;CACF;AACD,eAAe,SAAS,CAAA;AAExB,eAAO,MAAM,eAAe,WAAY,eAAe,KAAG,GAAG,QAAQ,eAAe,CAAC,CAIpF,CAAA"}
|