dinocollab-shared 1.1.9 → 1.1.11

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.
Files changed (115) hide show
  1. package/dist/cart/styled.js +1 -1
  2. package/dist/cart/styled.js.map +1 -1
  3. package/dist/cart/widget.js +1 -1
  4. package/dist/cart/widget.js.map +1 -1
  5. package/dist/layout-global/app-footer.js +1 -1
  6. package/dist/layout-global/app-footer.js.map +1 -1
  7. package/dist/layout-global/app-header.js +1 -1
  8. package/dist/layout-global/app-header.nav.js +1 -1
  9. package/dist/layout-global/app-header.nav.js.map +1 -1
  10. package/dist/layout-global/sub-menu.js +1 -1
  11. package/dist/layout-global/sub-menu.js.map +1 -1
  12. package/dist/layout-global/sub-menu.styled.js +1 -1
  13. package/dist/layout-global/sub-menu.styled.js.map +1 -1
  14. package/dist/layout-global/types.js.map +1 -1
  15. package/dist/media-right/cart-store.js +2 -0
  16. package/dist/media-right/cart-store.js.map +1 -0
  17. package/dist/media-right/configs.js +2 -0
  18. package/dist/media-right/configs.js.map +1 -0
  19. package/dist/media-right/group-selector/index.js +2 -0
  20. package/dist/media-right/group-selector/index.js.map +1 -0
  21. package/dist/media-right/group-selector/modal-header.js +2 -0
  22. package/dist/media-right/group-selector/modal-header.js.map +1 -0
  23. package/dist/media-right/group-selector/unit.control.js +2 -0
  24. package/dist/media-right/group-selector/unit.control.js.map +1 -0
  25. package/dist/media-right/group-selector/units.js +2 -0
  26. package/dist/media-right/group-selector/units.js.map +1 -0
  27. package/dist/media-right/helpers.js +2 -0
  28. package/dist/media-right/helpers.js.map +1 -0
  29. package/dist/media-right/hook.js +2 -0
  30. package/dist/media-right/hook.js.map +1 -0
  31. package/dist/media-right/index.js +2 -0
  32. package/dist/media-right/index.js.map +1 -0
  33. package/dist/media-right/media-widget/button.delete.js +2 -0
  34. package/dist/media-right/media-widget/button.delete.js.map +1 -0
  35. package/dist/media-right/media-widget/index.js +2 -0
  36. package/dist/media-right/media-widget/index.js.map +1 -0
  37. package/dist/media-right/media-widget/inline-editing.js +2 -0
  38. package/dist/media-right/media-widget/inline-editing.js.map +1 -0
  39. package/dist/media-right/media-widget/media-group-accordion.js +2 -0
  40. package/dist/media-right/media-widget/media-group-accordion.js.map +1 -0
  41. package/dist/media-right/media-widget/media-list.js +2 -0
  42. package/dist/media-right/media-widget/media-list.js.map +1 -0
  43. package/dist/media-right/media-widget/styled.js +2 -0
  44. package/dist/media-right/media-widget/styled.js.map +1 -0
  45. package/dist/media-right/media-widget/units.js +2 -0
  46. package/dist/media-right/media-widget/units.js.map +1 -0
  47. package/dist/media-right.d.ts +2 -0
  48. package/dist/media-right.js +2 -0
  49. package/dist/media-right.mjs +2 -0
  50. package/dist/notification/index.js +1 -1
  51. package/dist/notification/notify-detail.js +1 -1
  52. package/dist/notification/notify-detail.js.map +1 -1
  53. package/dist/notification/widget.js +1 -1
  54. package/dist/notification/widget.js.map +1 -1
  55. package/dist/types/cart/styled.d.ts.map +1 -1
  56. package/dist/types/cart/widget.d.ts +8 -2
  57. package/dist/types/cart/widget.d.ts.map +1 -1
  58. package/dist/types/layout-global/app-footer.d.ts +2 -0
  59. package/dist/types/layout-global/app-footer.d.ts.map +1 -1
  60. package/dist/types/layout-global/app-header.nav.d.ts +3 -1
  61. package/dist/types/layout-global/app-header.nav.d.ts.map +1 -1
  62. package/dist/types/layout-global/sub-menu.d.ts +5 -7
  63. package/dist/types/layout-global/sub-menu.d.ts.map +1 -1
  64. package/dist/types/layout-global/sub-menu.styled.d.ts +5 -2
  65. package/dist/types/layout-global/sub-menu.styled.d.ts.map +1 -1
  66. package/dist/types/layout-global/types.d.ts +2 -1
  67. package/dist/types/layout-global/types.d.ts.map +1 -1
  68. package/dist/types/media-right/cart-store.d.ts +48 -0
  69. package/dist/types/media-right/cart-store.d.ts.map +1 -0
  70. package/dist/types/media-right/configs.d.ts +7 -0
  71. package/dist/types/media-right/configs.d.ts.map +1 -0
  72. package/dist/types/media-right/group-selector/NewCollectionInput.d.ts +7 -0
  73. package/dist/types/media-right/group-selector/NewCollectionInput.d.ts.map +1 -0
  74. package/dist/types/media-right/group-selector/index.d.ts +18 -0
  75. package/dist/types/media-right/group-selector/index.d.ts.map +1 -0
  76. package/dist/types/media-right/group-selector/modal-header.d.ts +8 -0
  77. package/dist/types/media-right/group-selector/modal-header.d.ts.map +1 -0
  78. package/dist/types/media-right/group-selector/unit.control.d.ts +11 -0
  79. package/dist/types/media-right/group-selector/unit.control.d.ts.map +1 -0
  80. package/dist/types/media-right/group-selector/units.d.ts +14 -0
  81. package/dist/types/media-right/group-selector/units.d.ts.map +1 -0
  82. package/dist/types/media-right/helpers.d.ts +29 -0
  83. package/dist/types/media-right/helpers.d.ts.map +1 -0
  84. package/dist/types/media-right/hook.d.ts +22 -0
  85. package/dist/types/media-right/hook.d.ts.map +1 -0
  86. package/dist/types/media-right/index.d.ts +7 -0
  87. package/dist/types/media-right/index.d.ts.map +1 -0
  88. package/dist/types/media-right/media-widget/button.delete.d.ts +8 -0
  89. package/dist/types/media-right/media-widget/button.delete.d.ts.map +1 -0
  90. package/dist/types/media-right/media-widget/index.d.ts +12 -0
  91. package/dist/types/media-right/media-widget/index.d.ts.map +1 -0
  92. package/dist/types/media-right/media-widget/inline-editing.d.ts +12 -0
  93. package/dist/types/media-right/media-widget/inline-editing.d.ts.map +1 -0
  94. package/dist/types/media-right/media-widget/media-group-accordion.d.ts +10 -0
  95. package/dist/types/media-right/media-widget/media-group-accordion.d.ts.map +1 -0
  96. package/dist/types/media-right/media-widget/media-list.d.ts +8 -0
  97. package/dist/types/media-right/media-widget/media-list.d.ts.map +1 -0
  98. package/dist/types/media-right/media-widget/new-group-area.d.ts +2 -0
  99. package/dist/types/media-right/media-widget/new-group-area.d.ts.map +1 -0
  100. package/dist/types/media-right/media-widget/styled.d.ts +4 -0
  101. package/dist/types/media-right/media-widget/styled.d.ts.map +1 -0
  102. package/dist/types/media-right/media-widget/units.d.ts +3 -0
  103. package/dist/types/media-right/media-widget/units.d.ts.map +1 -0
  104. package/dist/types/media-right/types.d.ts +55 -0
  105. package/dist/types/media-right/types.d.ts.map +1 -0
  106. package/dist/types/notification/index.d.ts +0 -1
  107. package/dist/types/notification/index.d.ts.map +1 -1
  108. package/dist/types/notification/local-storage.d.ts +1 -8
  109. package/dist/types/notification/local-storage.d.ts.map +1 -1
  110. package/dist/types/notification/notify-detail.d.ts.map +1 -1
  111. package/dist/types/notification/widget.d.ts +1 -1
  112. package/dist/types/notification/widget.d.ts.map +1 -1
  113. package/package.json +29 -15
  114. package/dist/notification/local-storage.js +0 -2
  115. package/dist/notification/local-storage.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{styled as e,Menu as o,Box as i,alpha as r}from"@mui/material";var a=e(o)(function(t){var e=t.theme;return{"--color-bg":"#ffffff","--color-text":e.palette.common.black,marginTop:"45px",".MuiPaper-root":{overflow:"visible",backgroundColor:"var(--color-bg, #000000)",borderRadius:e.shape.borderRadius,minWidth:"280px",maxWidth:"550px",boxShadow:"0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)",animation:"fadeInDown 0.3s ease-out",marginTop:"8px",color:"var(--color-text, #000000)",display:"flex","@keyframes fadeInDown":{"0%":{opacity:0,transform:"translateY(-10px)"},"100%":{opacity:1,transform:"translateY(0)"}},"&::before":{content:'""',position:"absolute",backgroundColor:"var(--color-bg, #ffffff)",width:"10px",height:"10px",top:"-4px",right:e.spacing(1),transform:"translateX(-50%) rotate(45deg)",zIndex:0}},".MuiBackdrop-root":{backgroundColor:"transparent"},".MuiList-root":{padding:0}}}),n={root:"CartContent-root",header:"CartContent-header",footer:"CartContent-footer",items:"CartContent-items",item:"CartContent-item",itemContent:"CartContent-itemContent",itemImg:"CartContent-itemImg",itemTitle:"CartContent-itemTitle",itemPrice:"CartContent-itemPrice",itemTag:"CartContent-itemTag"},p=function(t,e){return"".concat((null==e?void 0:e.prefix)||"",".").concat(n[t]).concat((null==e?void 0:e.suffix)||"")},l=e(i)(function(e){var o=e.theme;return t(t(t(t(t(t(t(t(t({"--height-item":"80px"},p("root",{prefix:"&"}),{height:"100%"}),p("header"),{padding:"12px 16px",display:"flex",justifyContent:"space-between",alignItems:"center",gap:o.spacing(5)}),p("footer"),{padding:"6px 12px",display:"flex",justifyContent:"flex-end",position:"relative"}),p("items"),{padding:"8px",overflowY:"auto",height:"100%"}),p("item"),{display:"flex",alignItems:"center",padding:"0 9px",transition:"0.3s",height:"var(--height-item)","& a":{textDecoration:"none"},"&:hover":{background:"#fafafa"},"&:hover a":{textDecoration:"underline"}}),p("itemImg"),{width:"60px",height:"60px",borderRadius:"6px",objectFit:"cover",marginRight:"12px",flex:"0 0 auto",backgroundColor:r(o.palette.grey[400],.2)}),p("itemContent"),{flex:1,display:"flex",alignItems:"center",minWidth:0,position:"relative"}),p("itemTitle"),{color:"var(--color-body)",fontWeight:600,flex:1,width:"100%",margin:"0 12px",padding:"15px 0",minWidth:0,maxWidth:"300px"}),p("itemTag"),{position:"absolute",top:0,left:"12px",fontWeight:600})});export{l as CartContentStyled,a as MenuStyled,n as cartContentClasses};
1
+ import{defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{styled as e,Menu as o,Box as i,alpha as r}from"@mui/material";var a=e(o)(function(t){var e=t.theme;return{"--color-bg":"#ffffff","--color-text":e.palette.common.black,marginTop:"45px",".MuiPaper-root":{overflow:"visible",backgroundColor:"var(--color-bg, #000000)",borderRadius:e.shape.borderRadius,minWidth:"280px",maxWidth:"550px",boxShadow:"0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)",animation:"fadeInDown 0.3s ease-out",marginTop:"8px",color:"var(--color-text, #000000)",display:"flex","@keyframes fadeInDown":{"0%":{opacity:0,transform:"translateY(-10px)"},"100%":{opacity:1,transform:"translateY(0)"}},"&::before":{content:'""',position:"absolute",backgroundColor:"var(--color-bg, #ffffff)",width:"10px",height:"10px",top:"-4px",right:e.spacing(1),transform:"translateX(-50%) rotate(45deg)",zIndex:0}},".MuiBackdrop-root":{backgroundColor:"transparent"},".MuiList-root":{padding:0}}}),n={root:"CartContent-root",header:"CartContent-header",footer:"CartContent-footer",items:"CartContent-items",item:"CartContent-item",itemContent:"CartContent-itemContent",itemImg:"CartContent-itemImg",itemTitle:"CartContent-itemTitle",itemPrice:"CartContent-itemPrice",itemTag:"CartContent-itemTag"},p=function(t,e){return"".concat((null==e?void 0:e.prefix)||"",".").concat(n[t]).concat((null==e?void 0:e.suffix)||"")},l=e(i)(function(e){var o=e.theme;return t(t(t(t(t(t(t(t(t(t({"--height-item":"80px"},p("root",{prefix:"&"}),{height:"100%"}),p("header"),{padding:"12px 16px",display:"flex",justifyContent:"space-between",alignItems:"center",gap:o.spacing(5)}),p("footer"),{padding:"6px 12px",display:"flex",justifyContent:"flex-end",position:"relative"}),p("items"),{padding:"8px",overflowY:"auto",height:"100%"}),p("item"),{display:"flex",alignItems:"center",padding:"0 9px",transition:"0.3s",height:"var(--height-item)","& a":{textDecoration:"none"},"&:hover":{background:"#fafafa"},"&:hover a":{textDecoration:"underline"}}),p("itemImg"),{width:"60px",height:"60px",borderRadius:"6px",objectFit:"cover",marginRight:"12px",flex:"0 0 auto",backgroundColor:r(o.palette.grey[400],.2)}),p("itemContent"),{flex:1,display:"flex",alignItems:"center",minWidth:0,position:"relative"}),p("itemTitle"),{color:"var(--color-body, #000)",fontWeight:600,flex:1,width:"100%",margin:"0 12px",padding:"15px 0",minWidth:0,maxWidth:"300px"}),p("itemTitle",{prefix:"a"}),{textDecoration:"none","&:hover":{textDecoration:"underline"}}),p("itemTag"),{position:"absolute",top:0,left:"12px",fontWeight:600})});export{l as CartContentStyled,a as MenuStyled,n as cartContentClasses};
2
2
  //# sourceMappingURL=styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../src/cart/styled.tsx"],"sourcesContent":["import { alpha, Box, Menu, styled } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { BoxProps, MenuProps } from '@mui/material'\r\n\r\nexport const MenuStyled: ComponentType<MenuProps> = styled(Menu)(({ theme }) => ({\r\n // dark mode\r\n // '--color-bg': '#323234',\r\n // \"--color-text\": theme.palette.common.white,\r\n\r\n // light mode\r\n '--color-bg': '#ffffff',\r\n '--color-text': theme.palette.common.black,\r\n\r\n marginTop: '45px',\r\n '.MuiPaper-root': {\r\n overflow: 'visible',\r\n backgroundColor: 'var(--color-bg, #000000)',\r\n borderRadius: theme.shape.borderRadius,\r\n minWidth: '280px',\r\n maxWidth: '550px',\r\n boxShadow: `0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)`,\r\n animation: 'fadeInDown 0.3s ease-out',\r\n marginTop: '8px',\r\n color: 'var(--color-text, #000000)',\r\n display: 'flex',\r\n\r\n '@keyframes fadeInDown': {\r\n '0%': { opacity: 0, transform: 'translateY(-10px)' },\r\n '100%': { opacity: 1, transform: 'translateY(0)' }\r\n },\r\n\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n backgroundColor: 'var(--color-bg, #ffffff)',\r\n width: '10px',\r\n height: '10px',\r\n top: '-4px',\r\n right: theme.spacing(1),\r\n transform: 'translateX(-50%) rotate(45deg)',\r\n zIndex: 0\r\n }\r\n },\r\n '.MuiBackdrop-root': { backgroundColor: 'transparent' },\r\n '.MuiList-root': { padding: 0 }\r\n}))\r\n\r\nexport const cartContentClasses = {\r\n root: 'CartContent-root',\r\n header: 'CartContent-header',\r\n footer: 'CartContent-footer',\r\n items: 'CartContent-items',\r\n item: 'CartContent-item',\r\n itemContent: 'CartContent-itemContent',\r\n itemImg: 'CartContent-itemImg',\r\n itemTitle: 'CartContent-itemTitle',\r\n itemPrice: 'CartContent-itemPrice',\r\n itemTag: 'CartContent-itemTag'\r\n}\r\n\r\nconst getCartContentClasses = (key: keyof typeof cartContentClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${cartContentClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const CartContentStyled: ComponentType<BoxProps> = styled(Box)(({ theme }) => ({\r\n '--height-item': '80px',\r\n [getCartContentClasses('root', { prefix: '&' })]: {\r\n height: '100%'\r\n },\r\n [getCartContentClasses('header')]: {\r\n padding: '12px 16px',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n gap: theme.spacing(5)\r\n },\r\n [getCartContentClasses('footer')]: {\r\n padding: '6px 12px',\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n position: 'relative'\r\n },\r\n [getCartContentClasses('items')]: {\r\n padding: '8px',\r\n overflowY: 'auto',\r\n height: '100%'\r\n },\r\n [getCartContentClasses('item')]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '0 9px',\r\n transition: '0.3s',\r\n height: 'var(--height-item)',\r\n '& a': {\r\n textDecoration: 'none'\r\n },\r\n '&:hover': {\r\n background: '#fafafa'\r\n },\r\n '&:hover a': {\r\n textDecoration: 'underline'\r\n }\r\n },\r\n [getCartContentClasses('itemImg')]: {\r\n width: '60px',\r\n height: '60px',\r\n borderRadius: '6px',\r\n objectFit: 'cover',\r\n marginRight: '12px',\r\n flex: '0 0 auto',\r\n backgroundColor: alpha(theme.palette.grey[400], 0.2)\r\n },\r\n [getCartContentClasses('itemContent')]: {\r\n flex: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n minWidth: 0,\r\n position: 'relative'\r\n },\r\n [getCartContentClasses('itemTitle')]: {\r\n color: 'var(--color-body)',\r\n fontWeight: 600,\r\n flex: 1,\r\n width: '100%',\r\n margin: '0 12px',\r\n padding: '15px 0',\r\n minWidth: 0,\r\n maxWidth: '300px'\r\n },\r\n [getCartContentClasses('itemTag')]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: '12px',\r\n fontWeight: 600\r\n }\r\n}))\r\n"],"names":["MenuStyled","styled","Menu","_ref","theme","palette","common","black","marginTop","overflow","backgroundColor","borderRadius","shape","minWidth","maxWidth","boxShadow","animation","color","display","opacity","transform","content","position","width","height","top","right","spacing","zIndex","padding","cartContentClasses","root","header","footer","items","item","itemContent","itemImg","itemTitle","itemPrice","itemTag","getCartContentClasses","key","options","concat","prefix","suffix","CartContentStyled","Box","_ref2","_defineProperty","justifyContent","alignItems","gap","overflowY","transition","textDecoration","background","objectFit","marginRight","flex","alpha","grey","fontWeight","margin","left"],"mappings":"+IAIO,IAAMA,EAAuCC,EAAOC,EAAPD,CAAa,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CAM/E,aAAc,UACd,eAAgBA,EAAMC,QAAQC,OAAOC,MAErCC,UAAW,OACX,iBAAkB,CAChBC,SAAU,UACVC,gBAAiB,2BACjBC,aAAcP,EAAMQ,MAAMD,aAC1BE,SAAU,QACVC,SAAU,QACVC,UAAsI,4HACtIC,UAAW,2BACXR,UAAW,MACXS,MAAO,6BACPC,QAAS,OAET,wBAAyB,CACvB,KAAM,CAAEC,QAAS,EAAGC,UAAW,qBAC/B,OAAQ,CAAED,QAAS,EAAGC,UAAW,kBAGnC,YAAa,CACXC,QAAS,KACTC,SAAU,WACVZ,gBAAiB,2BACjBa,MAAO,OACPC,OAAQ,OACRC,IAAK,OACLC,MAAOtB,EAAMuB,QAAQ,GACrBP,UAAW,iCACXQ,OAAQ,IAGZ,oBAAqB,CAAElB,gBAAiB,eACxC,gBAAiB,CAAEmB,QAAS,GAC7B,GAEYC,EAAqB,CAChCC,KAAM,mBACNC,OAAQ,qBACRC,OAAQ,qBACRC,MAAO,oBACPC,KAAM,mBACNC,YAAa,0BACbC,QAAS,sBACTC,UAAW,wBACXC,UAAW,wBACXC,QAAS,uBAGLC,EAAwB,SAACC,EAAsCC,GACnE,MAAA,GAAAC,QAAUD,aAAAA,EAAAA,EAASE,SAAU,QAAED,OAAId,EAAmBY,IAAIE,QAAGD,aAAAA,EAAAA,EAASG,SAAU,GAClF,EAEaC,EAA6C9C,EAAO+C,EAAP/C,CAAY,SAAAgD,GAAA,IAAG7C,EAAK6C,EAAL7C,MAAK,OAAA8C,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAC5E,gBAAiB,QAChBT,EAAsB,OAAQ,CAAEI,OAAQ,MAAS,CAChDrB,OAAQ,SAETiB,EAAsB,UAAY,CACjCZ,QAAS,YACTX,QAAS,OACTiC,eAAgB,gBAChBC,WAAY,SACZC,IAAKjD,EAAMuB,QAAQ,KAEpBc,EAAsB,UAAY,CACjCZ,QAAS,WACTX,QAAS,OACTiC,eAAgB,WAChB7B,SAAU,aAEXmB,EAAsB,SAAW,CAChCZ,QAAS,MACTyB,UAAW,OACX9B,OAAQ,SAETiB,EAAsB,QAAU,CAC/BvB,QAAS,OACTkC,WAAY,SACZvB,QAAS,QACT0B,WAAY,OACZ/B,OAAQ,qBACR,MAAO,CACLgC,eAAgB,QAElB,UAAW,CACTC,WAAY,WAEd,YAAa,CACXD,eAAgB,eAGnBf,EAAsB,WAAa,CAClClB,MAAO,OACPC,OAAQ,OACRb,aAAc,MACd+C,UAAW,QACXC,YAAa,OACbC,KAAM,WACNlD,gBAAiBmD,EAAMzD,EAAMC,QAAQyD,KAAK,KAAM,MAEjDrB,EAAsB,eAAiB,CACtCmB,KAAM,EACN1C,QAAS,OACTkC,WAAY,SACZvC,SAAU,EACVS,SAAU,aAEXmB,EAAsB,aAAe,CACpCxB,MAAO,oBACP8C,WAAY,IACZH,KAAM,EACNrC,MAAO,OACPyC,OAAQ,SACRnC,QAAS,SACThB,SAAU,EACVC,SAAU,UAEX2B,EAAsB,WAAa,CAClCnB,SAAU,WACVG,IAAK,EACLwC,KAAM,OACNF,WAAY,KACb"}
1
+ {"version":3,"file":"styled.js","sources":["../../src/cart/styled.tsx"],"sourcesContent":["import { alpha, Box, Menu, styled } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { BoxProps, MenuProps } from '@mui/material'\r\n\r\nexport const MenuStyled: ComponentType<MenuProps> = styled(Menu)(({ theme }) => ({\r\n // dark mode\r\n // '--color-bg': '#323234',\r\n // \"--color-text\": theme.palette.common.white,\r\n\r\n // light mode\r\n '--color-bg': '#ffffff',\r\n '--color-text': theme.palette.common.black,\r\n\r\n marginTop: '45px',\r\n '.MuiPaper-root': {\r\n overflow: 'visible',\r\n backgroundColor: 'var(--color-bg, #000000)',\r\n borderRadius: theme.shape.borderRadius,\r\n minWidth: '280px',\r\n maxWidth: '550px',\r\n boxShadow: `0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)`,\r\n animation: 'fadeInDown 0.3s ease-out',\r\n marginTop: '8px',\r\n color: 'var(--color-text, #000000)',\r\n display: 'flex',\r\n\r\n '@keyframes fadeInDown': {\r\n '0%': { opacity: 0, transform: 'translateY(-10px)' },\r\n '100%': { opacity: 1, transform: 'translateY(0)' }\r\n },\r\n\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n backgroundColor: 'var(--color-bg, #ffffff)',\r\n width: '10px',\r\n height: '10px',\r\n top: '-4px',\r\n right: theme.spacing(1),\r\n transform: 'translateX(-50%) rotate(45deg)',\r\n zIndex: 0\r\n }\r\n },\r\n '.MuiBackdrop-root': { backgroundColor: 'transparent' },\r\n '.MuiList-root': { padding: 0 }\r\n}))\r\n\r\nexport const cartContentClasses = {\r\n root: 'CartContent-root',\r\n header: 'CartContent-header',\r\n footer: 'CartContent-footer',\r\n items: 'CartContent-items',\r\n item: 'CartContent-item',\r\n itemContent: 'CartContent-itemContent',\r\n itemImg: 'CartContent-itemImg',\r\n itemTitle: 'CartContent-itemTitle',\r\n itemPrice: 'CartContent-itemPrice',\r\n itemTag: 'CartContent-itemTag'\r\n}\r\n\r\nconst getCartContentClasses = (key: keyof typeof cartContentClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${cartContentClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const CartContentStyled: ComponentType<BoxProps> = styled(Box)(({ theme }) => ({\r\n '--height-item': '80px',\r\n [getCartContentClasses('root', { prefix: '&' })]: {\r\n height: '100%'\r\n },\r\n [getCartContentClasses('header')]: {\r\n padding: '12px 16px',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n gap: theme.spacing(5)\r\n },\r\n [getCartContentClasses('footer')]: {\r\n padding: '6px 12px',\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n position: 'relative'\r\n },\r\n [getCartContentClasses('items')]: {\r\n padding: '8px',\r\n overflowY: 'auto',\r\n height: '100%'\r\n },\r\n [getCartContentClasses('item')]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '0 9px',\r\n transition: '0.3s',\r\n height: 'var(--height-item)',\r\n '& a': {\r\n textDecoration: 'none'\r\n },\r\n '&:hover': {\r\n background: '#fafafa'\r\n },\r\n '&:hover a': {\r\n textDecoration: 'underline'\r\n }\r\n },\r\n [getCartContentClasses('itemImg')]: {\r\n width: '60px',\r\n height: '60px',\r\n borderRadius: '6px',\r\n objectFit: 'cover',\r\n marginRight: '12px',\r\n flex: '0 0 auto',\r\n backgroundColor: alpha(theme.palette.grey[400], 0.2)\r\n },\r\n [getCartContentClasses('itemContent')]: {\r\n flex: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n minWidth: 0,\r\n position: 'relative'\r\n },\r\n [getCartContentClasses('itemTitle')]: {\r\n color: 'var(--color-body, #000)',\r\n fontWeight: 600,\r\n flex: 1,\r\n width: '100%',\r\n margin: '0 12px',\r\n padding: '15px 0',\r\n minWidth: 0,\r\n maxWidth: '300px'\r\n },\r\n [getCartContentClasses('itemTitle', { prefix: 'a' })]: {\r\n textDecoration: 'none',\r\n '&:hover': {\r\n textDecoration: 'underline'\r\n }\r\n },\r\n [getCartContentClasses('itemTag')]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: '12px',\r\n fontWeight: 600\r\n }\r\n}))\r\n"],"names":["MenuStyled","styled","Menu","_ref","theme","palette","common","black","marginTop","overflow","backgroundColor","borderRadius","shape","minWidth","maxWidth","boxShadow","animation","color","display","opacity","transform","content","position","width","height","top","right","spacing","zIndex","padding","cartContentClasses","root","header","footer","items","item","itemContent","itemImg","itemTitle","itemPrice","itemTag","getCartContentClasses","key","options","concat","prefix","suffix","CartContentStyled","Box","_ref2","_defineProperty","justifyContent","alignItems","gap","overflowY","transition","textDecoration","background","objectFit","marginRight","flex","alpha","grey","fontWeight","margin","left"],"mappings":"+IAIO,IAAMA,EAAuCC,EAAOC,EAAPD,CAAa,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CAM/E,aAAc,UACd,eAAgBA,EAAMC,QAAQC,OAAOC,MAErCC,UAAW,OACX,iBAAkB,CAChBC,SAAU,UACVC,gBAAiB,2BACjBC,aAAcP,EAAMQ,MAAMD,aAC1BE,SAAU,QACVC,SAAU,QACVC,UAAsI,4HACtIC,UAAW,2BACXR,UAAW,MACXS,MAAO,6BACPC,QAAS,OAET,wBAAyB,CACvB,KAAM,CAAEC,QAAS,EAAGC,UAAW,qBAC/B,OAAQ,CAAED,QAAS,EAAGC,UAAW,kBAGnC,YAAa,CACXC,QAAS,KACTC,SAAU,WACVZ,gBAAiB,2BACjBa,MAAO,OACPC,OAAQ,OACRC,IAAK,OACLC,MAAOtB,EAAMuB,QAAQ,GACrBP,UAAW,iCACXQ,OAAQ,IAGZ,oBAAqB,CAAElB,gBAAiB,eACxC,gBAAiB,CAAEmB,QAAS,GAC7B,GAEYC,EAAqB,CAChCC,KAAM,mBACNC,OAAQ,qBACRC,OAAQ,qBACRC,MAAO,oBACPC,KAAM,mBACNC,YAAa,0BACbC,QAAS,sBACTC,UAAW,wBACXC,UAAW,wBACXC,QAAS,uBAGLC,EAAwB,SAACC,EAAsCC,GACnE,MAAA,GAAAC,QAAUD,aAAAA,EAAAA,EAASE,SAAU,QAAED,OAAId,EAAmBY,IAAIE,QAAGD,aAAAA,EAAAA,EAASG,SAAU,GAClF,EAEaC,EAA6C9C,EAAO+C,EAAP/C,CAAY,SAAAgD,GAAA,IAAG7C,EAAK6C,EAAL7C,MAAK,OAAA8C,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CAC5E,gBAAiB,QAChBT,EAAsB,OAAQ,CAAEI,OAAQ,MAAS,CAChDrB,OAAQ,SAETiB,EAAsB,UAAY,CACjCZ,QAAS,YACTX,QAAS,OACTiC,eAAgB,gBAChBC,WAAY,SACZC,IAAKjD,EAAMuB,QAAQ,KAEpBc,EAAsB,UAAY,CACjCZ,QAAS,WACTX,QAAS,OACTiC,eAAgB,WAChB7B,SAAU,aAEXmB,EAAsB,SAAW,CAChCZ,QAAS,MACTyB,UAAW,OACX9B,OAAQ,SAETiB,EAAsB,QAAU,CAC/BvB,QAAS,OACTkC,WAAY,SACZvB,QAAS,QACT0B,WAAY,OACZ/B,OAAQ,qBACR,MAAO,CACLgC,eAAgB,QAElB,UAAW,CACTC,WAAY,WAEd,YAAa,CACXD,eAAgB,eAGnBf,EAAsB,WAAa,CAClClB,MAAO,OACPC,OAAQ,OACRb,aAAc,MACd+C,UAAW,QACXC,YAAa,OACbC,KAAM,WACNlD,gBAAiBmD,EAAMzD,EAAMC,QAAQyD,KAAK,KAAM,MAEjDrB,EAAsB,eAAiB,CACtCmB,KAAM,EACN1C,QAAS,OACTkC,WAAY,SACZvC,SAAU,EACVS,SAAU,aAEXmB,EAAsB,aAAe,CACpCxB,MAAO,0BACP8C,WAAY,IACZH,KAAM,EACNrC,MAAO,OACPyC,OAAQ,SACRnC,QAAS,SACThB,SAAU,EACVC,SAAU,UAEX2B,EAAsB,YAAa,CAAEI,OAAQ,MAAS,CACrDW,eAAgB,OAChB,UAAW,CACTA,eAAgB,eAGnBf,EAAsB,WAAa,CAClCnB,SAAU,WACVG,IAAK,EACLwC,KAAM,OACNF,WAAY,KACb"}
@@ -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 a,jsx as l}from"react/jsx-runtime";import{Fragment as c,Component 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{MenuStyled as b,CartContentStyled as y,cartContentClasses as k}from"./styled.js";import{getTotalData as P}from"./helpers.js";import{DarkIconButton as N}from"../components/buttons.js";import{NoDataPanel as S}from"../components/no-data-panel.js";var j=function(){function j(r){var e;return t(this,j),e=n(this,j,[r]),o(e,"render",function(){var r;return a(c,{children:[l(N,{onClick:function(r){return e.onOpen(r.currentTarget)},children:l(m,{badgeContent:e.state.hydrated&&null!==(r=e.carts.length)&&void 0!==r?r:0,color:"error",children:l(g,{})})}),l(b,{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=P(e.carts);return a(y,{children:[a("div",{className:k.header,children:[a(u,{variant:"h6",component:"span",sx:{flex:1},children:["Your Cart (",null!==(r=t.quantity)&&void 0!==r?r:0," items)"]}),a(u,{variant:"h6",component:"span",children:["Total: $ ",t.price.toFixed(2)]})]}),l(p,{}),a("div",{className:k.items,children:[e.carts.map(function(r,t){return l(c,{children:e.renderItem(r)},"key"+t)}),e.carts.length<1&&l(S,{title:"Your cart is empty",subTitle:"Try adding some products",sx:{height:"100%"}})]}),l(p,{}),l("div",{className:k.footer,children:l(h,i(i(i({},e.props.hrefCart?{component:"a",href:e.props.hrefCart}:{}),{},{color:"inherit",endIcon:l(x,{}),onClick:function(r){e.onClose(),e.props.onCartClick&&e.props.onCartClick(r)},disabled:e.carts.length<1},e.props.buttonMoveToCartProps),{},{children:"Show in cart"}))})]})}),o(e,"renderItem",function(r){var t,n,o,i,c;return a("div",{className:k.item,children:[l(d,{className:k.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:k.itemContent,children:[l(u,{className:k.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"}),l(u,{className:k.itemTitle,noWrap:!0,variant:"subtitle1",children:null!==(o=r.ProductName)&&void 0!==o?o:"Unknown Product"}),a(f,{sx:{display:"flex",alignItems:"flex-end",gap:"2px",justifyContent:"flex-end"},children:[a(u,{variant:"subtitle1",children:["$ ",null!==(i=r.Price)&&void 0!==i?i:0]}),a(u,{variant:"body1",sx:{fontSize:"14px",mb:"3px",color:"#818181"},children:["x",null!==(c=r.Amount)&&void 0!==c?c:0," urls"]})]})]}),l(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:l(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(j,s),e(j,[{key:"carts",get:function(){var r;return null!==(r=this.props.carts)&&void 0!==r?r:[]}},{key:"componentDidMount",value:function(){this.setState({hydrated:!0})}}])}(),T=function(r){var e=function(e){return l(j,i(i({},r),e))};return e.displayName="CartWidget",e};export{j as CartWidget,T as createCartWidget};
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{MenuStyled as b,CartContentStyled as y,cartContentClasses as k}from"./styled.js";import{getTotalData as P}from"./helpers.js";import{DarkIconButton as T}from"../components/buttons.js";import{NoDataPanel as N}from"../components/no-data-panel.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(T,{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(b,{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=P(e.carts);return a(y,{children:[a("div",{className:k.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:k.items,children:[e.carts.map(function(r,t){return l(s,{children:e.renderItem(r)},"key"+t)}),e.carts.length<1&&l(N,{title:"Your cart is empty",subTitle:"Try adding some products",sx:{height:"100%"}})]}),l(p,{}),l("div",{className:k.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:k.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:k.item,children:[l(d,{className:k.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:k.itemContent,children:[l(m,{className:k.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
@@ -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 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 { cartContentClasses, CartContentStyled, MenuStyled } from './styled'\r\nimport { getTotalData } from './helpers'\r\nimport { IAppSiteBaseUrl } from '../types'\r\nimport { DarkIconButton, NoDataPanel } from '../components'\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 onCartClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLButtonElement, MouseEvent>) => void\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.onCartClick) {\r\n this.props.onCartClick(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 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 <Typography className={cartContentClasses.itemTitle} noWrap variant='subtitle1'>\r\n {item.ProductName ?? 'Unknown Product'}\r\n </Typography>\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","onCartClick","disabled","buttonMoveToCartProps","item","_item$PriceColor","_item$PriceName","_item$ProductName","_item$Price","_item$Amount","ImageWithFallback","itemImg","src","PictureUrl","fallbackSrc","alt","itemContent","itemTag","PriceColor","PriceName","itemTitle","noWrap","ProductName","Box","display","alignItems","gap","justifyContent","Price","fontSize","mb","Amount","IconButton","size","_this$props$onRemoveC","_this$props","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, TypographyProps } from '@mui/material'\r\nimport type { FC } from 'react'\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 { cartContentClasses, CartContentStyled, MenuStyled } from './styled'\r\nimport { getTotalData } from './helpers'\r\nimport { IAppSiteBaseUrl } from '../types'\r\nimport { DarkIconButton, NoDataPanel } from '../components'\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,2 +1,2 @@
1
- import{inherits as r,createClass as e,objectSpread2 as n,classCallCheck as i,callSuper as o,defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as l}from"react/jsx-runtime";import{Component as s}from"react";import{CssBaseline as c,Container as p,Grid as m,Typography as d,Divider as h,Box as u,IconButton as v}from"@mui/material";import{AppLogo as f}from"./app-logo.js";import{TextLineBreak as g}from"./ui.units.js";import{AppThemeProvider as k}from"./app-theme-provider.js";import{FooterStyled as N,appFooterClasses as x,AppFooterNav as b}from"./app-footer.styled.js";import{getFooterNavConfigs as C,bgFooterUrl as j,appLogoUrl as y,footerDescription as F,appSocialConfigs as I,copyrightText as L}from"./configs.js";var U=function(){function U(){var r;i(this,U);for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];return r=o(this,U,[].concat(n)),t(r,"handleNavItemClick",function(e,n){r.props.onNavItemClick&&n&&r.props.onNavItemClick(e,n)}),r}return r(U,s),e(U,[{key:"render",value:function(){var r,e,i,o=this,t=C(this.props.baseUrl);return a(k,n(n({},null===(r=this.props.slots)||void 0===r?void 0:r.themeProps),{},{children:[l(c,{}),a(N,{className:x.root,children:[l("img",{src:null!==(e=this.props.backgroundUrl)&&void 0!==e?e:j,alt:"Footer Background",className:x.background,loading:"lazy"}),a(p,{maxWidth:!1,className:x.content,children:[a(m,{container:!0,children:[a(m,{item:!0,xs:12,lg:7,children:[l(f,{src:null!==(i=this.props.logoUrl)&&void 0!==i?i:y,href:this.props.baseUrl.home,className:x.appLogo}),l(d,{variant:"subtitle1",className:x.description,children:l(g,{children:F})})]}),l(m,{item:!0,xs:12,lg:5,children:l(b,{children:l(m,{container:!0,children:t.map(function(r,e){return l(m,{item:!0,xs:12,md:6,children:l("ul",{children:r.map(function(r,e){var n,i,t;return l("li",{className:x.navItem,children:l(d,{variant:"h5",className:x.navItemText,component:"a",href:null!==(n=null===(i=r.navLink)||void 0===i?void 0:i.href)&&void 0!==n?n:"/",target:null===(t=r.navLink)||void 0===t?void 0:t.target,onClick:function(e){return o.handleNavItemClick(e,r.navLink)},children:l("span",{children:r.title})})},e)})})},e)})})})})]}),a("div",{className:x.copyright,children:[l(h,{sx:{borderColor:"#1E1E1E",mt:{xs:"20px",md:"80px"}}}),l("ul",{className:x.socialList,children:I.map(function(r,e){var i=n({"--social-color-hover":r.color||"#FFFFFF"},r.sx);return l(u,{component:"li",sx:i,children:l(v,{component:"a",href:r.link,target:"_blank",rel:"noopener noreferrer",children:r.icon})},e)})}),l("div",{className:x.copyrightText,children:l(d,{variant:"subtitle1",noWrap:!0,children:L})})]})]})]})]}))}}])}(),E=function(r){var e=function(e){return l(U,n(n({},r),e))};return e.displayName="AppFooter",e};export{U as AppFooter,E as createAppFooter,U as default};
1
+ import{inherits as r,createClass as e,objectSpread2 as o,classCallCheck as n,callSuper as i,defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as a}from"react/jsx-runtime";import{Component as s}from"react";import{CssBaseline as c,Container as p,Grid as m,Typography as d,Divider as h,Box as u,IconButton as v}from"@mui/material";import{AppLogo as f}from"./app-logo.js";import{TextLineBreak as g}from"./ui.units.js";import{AppThemeProvider as k}from"./app-theme-provider.js";import{FooterStyled as N,appFooterClasses as x,AppFooterNav as b}from"./app-footer.styled.js";import{getFooterNavConfigs as C,bgFooterUrl as j,appLogoUrl as y,footerDescription as F,appSocialConfigs as I,copyrightText as L}from"./configs.js";var E=function(){function E(){var r;n(this,E);for(var e=arguments.length,o=new Array(e),l=0;l<e;l++)o[l]=arguments[l];return r=i(this,E,[].concat(o)),t(r,"handleNavItemClick",function(e,o){r.props.onNavItemClick&&o&&r.props.onNavItemClick(e,o)}),r}return r(E,s),e(E,[{key:"render",value:function(){var r,e,n,i,t=this,s=C(this.props.baseUrl);return a(k,o(o({},null===(r=this.props.slots)||void 0===r?void 0:r.themeProps),{},{children:[l(c,{}),a(N,o(o({className:x.root},null===(e=this.props.slots)||void 0===e?void 0:e.footerElementProps),{},{children:[l("img",{src:null!==(n=this.props.backgroundUrl)&&void 0!==n?n:j,alt:"Footer Background",className:x.background,loading:"lazy"}),a(p,{maxWidth:!1,className:x.content,children:[a(m,{container:!0,children:[a(m,{item:!0,xs:12,lg:7,children:[l(f,{src:null!==(i=this.props.logoUrl)&&void 0!==i?i:y,href:this.props.baseUrl.home,className:x.appLogo}),l(d,{variant:"subtitle1",className:x.description,children:l(g,{children:F})})]}),l(m,{item:!0,xs:12,lg:5,children:l(b,{children:l(m,{container:!0,children:s.map(function(r,e){return l(m,{item:!0,xs:12,md:6,children:l("ul",{children:r.map(function(r,e){var o,n,i;return l("li",{className:x.navItem,children:l(d,{variant:"h5",className:x.navItemText,component:"a",href:null!==(o=null===(n=r.navLink)||void 0===n?void 0:n.href)&&void 0!==o?o:"/",target:null===(i=r.navLink)||void 0===i?void 0:i.target,onClick:function(e){return t.handleNavItemClick(e,r.navLink)},children:l("span",{children:r.title})})},e)})})},e)})})})})]}),a("div",{className:x.copyright,children:[l(h,{sx:{borderColor:"#1E1E1E",mt:{xs:"20px",md:"80px"}}}),l("ul",{className:x.socialList,children:I.map(function(r,e){var n=o({"--social-color-hover":r.color||"#FFFFFF"},r.sx);return l(u,{component:"li",sx:n,children:l(v,{component:"a",href:r.link,target:"_blank",rel:"noopener noreferrer",children:r.icon})},e)})}),l("div",{className:x.copyrightText,children:l(d,{variant:"subtitle1",noWrap:!0,children:L})})]})]})]}))]}))}}])}(),P=function(r){var e=function(e){return l(E,o(o({},r),e))};return e.displayName="AppFooter",e};export{E as AppFooter,P as createAppFooter,E 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, CssBaseline, Divider, Grid, IconButton, Typography } from '@mui/material'\r\nimport type { SxProps, Theme } from '@mui/material'\r\nimport { AppLogo } from './app-logo'\r\nimport { TextLineBreak } from './ui.units'\r\nimport { AppThemeProvider, IAppThemeProviderProps } from './app-theme-provider'\r\nimport { appFooterClasses, AppFooterNav, FooterStyled } from './app-footer.styled'\r\nimport { getFooterNavConfigs, appSocialConfigs, copyrightText, footerDescription, bgFooterUrl, appLogoUrl } from './configs'\r\nimport type { INavLink, NavItemClickFunction } from './types'\r\nimport type { IAppSiteBaseUrl } from '../types'\r\n\r\nexport interface IAppFooterSlots {\r\n themeProps?: Partial<IAppThemeProviderProps>\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 bgFooterUrl = useMemo(() => getBgFooterUrl(props.baseUrl), [props.baseUrl])\r\n const footerNavConfigs = getFooterNavConfigs(this.props.baseUrl)\r\n\r\n return (\r\n <AppThemeProvider {...this.props.slots?.themeProps}>\r\n {/* The AppThemeProvider provides a consistent theme across the application */}\r\n {/* It uses the light theme with Roboto and Oswald fonts */}\r\n {/* The primary font is Roboto and the secondary font is Oswald */}\r\n {/* The theme is applied globally using MUI's ThemeProvider and CssBaseline */}\r\n <CssBaseline />\r\n <FooterStyled className={appFooterClasses.root}>\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' noWrap>\r\n {copyrightText}\r\n </Typography>\r\n </div>\r\n </div>\r\n </Container>\r\n </FooterStyled>\r\n </AppThemeProvider>\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","AppThemeProvider","_objectSpread","slots","themeProps","children","_jsx","CssBaseline","FooterStyled","className","appFooterClasses","root","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","noWrap","createAppFooter","params","_AppFooter","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"app-footer.js","sources":["../../src/layout-global/app-footer.tsx"],"sourcesContent":["import { Component, FC } from 'react'\r\nimport { Box, Container, CssBaseline, 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 { AppThemeProvider, IAppThemeProviderProps } from './app-theme-provider'\r\nimport { appFooterClasses, AppFooterNav, FooterStyled } from './app-footer.styled'\r\nimport { getFooterNavConfigs, appSocialConfigs, copyrightText, footerDescription, bgFooterUrl, appLogoUrl } from './configs'\r\nimport type { INavLink, NavItemClickFunction } from './types'\r\nimport type { IAppSiteBaseUrl } 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 bgFooterUrl = useMemo(() => getBgFooterUrl(props.baseUrl), [props.baseUrl])\r\n const footerNavConfigs = getFooterNavConfigs(this.props.baseUrl)\r\n\r\n return (\r\n <AppThemeProvider {...this.props.slots?.themeProps}>\r\n {/* The AppThemeProvider provides a consistent theme across the application */}\r\n {/* It uses the light theme with Roboto and Oswald fonts */}\r\n {/* The primary font is Roboto and the secondary font is Oswald */}\r\n {/* The theme is applied globally using MUI's ThemeProvider and CssBaseline */}\r\n <CssBaseline />\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' noWrap>\r\n {copyrightText}\r\n </Typography>\r\n </div>\r\n </div>\r\n </Container>\r\n </FooterStyled>\r\n </AppThemeProvider>\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$slots2","_this$props$backgroun","_this$props$logoUrl","_this2","footerNavConfigs","getFooterNavConfigs","baseUrl","_jsxs","AppThemeProvider","_objectSpread","slots","themeProps","children","_jsx","CssBaseline","FooterStyled","className","appFooterClasses","root","footerElementProps","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","noWrap","createAppFooter","params","_AppFooter","displayName"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{inherits as r,createClass as s,objectSpread2 as e,classCallCheck as o,callSuper as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as i,jsx as a}from"react/jsx-runtime";import{Component as l}from"react";import{CssBaseline as n,Container as p,Stack as m}from"@mui/material";import{AppLogo as c}from"./app-logo.js";import{AppThemeProvider as d}from"./app-theme-provider.js";import{appLogoUrl as h,getHeaderNavConfigs as f}from"./configs.js";import{HeaderStyled as u,appHeaderClasses as v}from"./app-header.styled.js";import g from"./mobile-menu.js";import x from"./app-header.nav.js";var j=function(){function j(r){var s;return o(this,j),(s=t(this,j,[r])).configs=f(r.baseUrl),s}return r(j,l),s(j,[{key:"render",value:function(){var r,s,o;return i(d,e(e({},null===(r=this.props.slots)||void 0===r?void 0:r.themeProps),{},{children:[a(n,{}),a(u,{className:v.root,children:a("div",{className:v.rootFixed,children:i(p,{maxWidth:!1,className:v.content,sx:{height:"100%"},children:[a(c,{src:null!==(s=this.props.logoUrl)&&void 0!==s?s:h,href:this.props.baseUrl.home,sx:{mb:"-12px"}}),i(m,{direction:"row",alignItems:"center",spacing:2,children:[a(x,{onNavItemClick:this.props.onNavItemClick,configs:this.configs,sx:{display:{xs:"none",md:"flex"}},slots:null===(o=this.props.slots)||void 0===o?void 0:o.navItem}),i(m,{direction:"row",gap:1,sx:{justifyContent:"flex-end",alignItems:"center"},children:[this.props.actions,a(g,{baseUrl:this.props.baseUrl})]})]})]})})})]}))}}])}(),b=function(r){var s=function(s){return a(j,e({},e(e(e({},r),s),{},{slots:e(e({},r.slots),s.slots)})))};return s.displayName="AppHeader",s};export{j as AppHeader,b as createAppHeader,j as default};
1
+ import{inherits as r,createClass as s,objectSpread2 as e,classCallCheck as o,callSuper as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{Component as l}from"react";import{CssBaseline as n,Container as p,Stack as m}from"@mui/material";import{AppLogo as c}from"./app-logo.js";import{AppThemeProvider as d}from"./app-theme-provider.js";import{appLogoUrl as h,getHeaderNavConfigs as f}from"./configs.js";import{HeaderStyled as u,appHeaderClasses as v}from"./app-header.styled.js";import g from"./mobile-menu.js";import x from"./app-header.nav.js";var j=function(){function j(r){var s;return o(this,j),(s=t(this,j,[r])).configs=f(r.baseUrl),s}return r(j,l),s(j,[{key:"render",value:function(){var r,s,o;return a(d,e(e({},null===(r=this.props.slots)||void 0===r?void 0:r.themeProps),{},{children:[i(n,{}),i(u,{className:v.root,children:i("div",{className:v.rootFixed,children:a(p,{maxWidth:!1,className:v.content,sx:{height:"100%"},children:[i(c,{src:null!==(s=this.props.logoUrl)&&void 0!==s?s:h,href:this.props.baseUrl.home,sx:{mb:"-12px"}}),a(m,{direction:"row",alignItems:"center",spacing:2,children:[i(x,{onNavItemClick:this.props.onNavItemClick,configs:this.configs,sx:{display:{xs:"none",md:"flex"}},slots:null===(o=this.props.slots)||void 0===o?void 0:o.navItem}),a(m,{direction:"row",gap:1,sx:{justifyContent:"flex-end",alignItems:"center"},children:[this.props.actions,i(g,{baseUrl:this.props.baseUrl})]})]})]})})})]}))}}])}(),b=function(r){var s=function(s){return i(j,e({},e(e(e({},r),s),{},{slots:e(e({},r.slots),s.slots)})))};return s.displayName="AppHeader",s};export{j as AppHeader,b as createAppHeader,j as default};
2
2
  //# sourceMappingURL=app-header.js.map
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as t,objectSpread2 as n,classCallCheck as r,callSuper as a,defineProperty as o,objectWithoutProperties as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as s,jsx as i}from"react/jsx-runtime";import{Component as c}from"react";import u from"@mui/icons-material/ExpandMore";import{toArray as m}from"./helpers.js";import{ButtonAnimation as p}from"./animated-tabs.units.js";import{NavStyled as v,appHeaderClasses as d}from"./app-header.styled.js";import h from"./sub-menu.js";var f=["onClick"],I=function(){function I(e){var t;return r(this,I),t=a(this,I,[e]),o(t,"getButtonNavProps",function(e){var r,a,o=t.props.slots||{},s=o.buttonNavProps,i=o.buttonNavPropsGetter,c=i?i(e):s,u=null!=c?c:{},m=u.onClick,p=l(u,f),v=n({},e.options);e.navLink&&!p.component&&(v.component="a",v.href=null!==(r=null===(a=e.navLink)||void 0===a?void 0:a.href)&&void 0!==r?r:"/");return n(n(n({},v),p),{},{onClick:function(n){t.onClickNavItemHandler(n,e),null==m||m(n)}})}),o(t,"renderItemIcon",function(e){return 0===m(e.menu).length?null:i(u,{className:d.navItemIcon})}),o(t,"getItemClasses",function(e){var n=[d.navItem];return t.state.navSelected&&t.state.navSelected.title===e.title&&n.push(d.navItemSelected),n.join(" ")}),o(t,"onClickNavItemHandler",function(e,n){if(n.menu)return e.preventDefault(),void t.setState({anchorEl:e.currentTarget,navSelected:n});n.navLink&&t.props.onNavItemClick&&t.props.onNavItemClick(e,n.navLink)}),o(t,"onCloseMenuHandler",function(){t.setState({anchorEl:null,navSelected:null})}),t.state={anchorEl:null,navSelected:null},t}return e(I,c),t(I,[{key:"render",value:function(){var e=this;return s(v,{sx:this.props.sx,children:[i("ul",{className:d.navItems,children:this.props.configs.map(function(t,r){return i("li",{className:e.getItemClasses(t),children:i(p,n(n({forceTheme:"dark",endIcon:e.renderItemIcon(t)},e.getButtonNavProps(t)),{},{children:t.title}))},r)})}),i(h,{anchorEl:this.state.anchorEl,onClose:this.onCloseMenuHandler,navSelected:this.state.navSelected,onNavItemClick:this.props.onNavItemClick})]})}}])}();export{I as default};
1
+ import{inherits as e,createClass as n,objectSpread2 as t,classCallCheck as r,callSuper as a,defineProperty as o}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l}from"react/jsx-runtime";import{Component as s}from"react";import i from"@mui/icons-material/ExpandMore";import{toArray as c}from"./helpers.js";import{ButtonAnimation as u}from"./animated-tabs.units.js";import{NavStyled as m,appHeaderClasses as p}from"./app-header.styled.js";import v from"./sub-menu.js";var d=function(){function d(e){var n;return r(this,d),n=a(this,d,[e]),o(n,"getLiProps",function(e){var t=[p.navItem];return n.state.navSelected&&n.state.navSelected.title===e.title&&t.push(p.navItemSelected),{className:t.join(" ")}}),o(n,"getButtonNavProps",function(e){var r,a,o=n.props.slots||{},l=o.buttonNavProps,s=o.buttonNavPropsGetter,i=s?s(e):null!=l?l:{},c=t({},e.options);e.navLink&&!i.component&&(c.component="a",c.href=null!==(r=null===(a=e.navLink)||void 0===a?void 0:a.href)&&void 0!==r?r:"/");return t(t({},c),i)}),o(n,"renderItemIcon",function(e){return 0===c(e.menu).length?null:l(i,{className:p.navItemIcon})}),o(n,"handleMouseEnter",function(e,t){t.menu&&n.setState({anchorEl:e.currentTarget,navSelected:t})}),o(n,"handleMouseLeave",function(){n.setState({anchorEl:null,navSelected:null})}),o(n,"onClickNavItemHandler",function(e,t){if(t.menu)return e.preventDefault(),void n.setState({anchorEl:e.currentTarget,navSelected:t});t.navLink&&n.props.onNavItemClick&&n.props.onNavItemClick(e,t.navLink)}),o(n,"onCloseMenuHandler",function(){n.setState({anchorEl:null,navSelected:null})}),n.state={anchorEl:null,navSelected:null},n}return e(d,s),n(d,[{key:"render",value:function(){var e=this;return l(m,{sx:this.props.sx,children:l("ul",{className:p.navItems,children:this.props.configs.map(function(n,r){return l("li",t(t({},e.getLiProps(n)),{},{children:n.menu?l(v,{menu:n.menu,onNavItemClick:e.props.onNavItemClick,children:l(u,t(t({forceTheme:"dark",endIcon:e.renderItemIcon(n)},e.getButtonNavProps(n)),{},{children:n.title}))}):l(u,t(t({forceTheme:"dark",endIcon:e.renderItemIcon(n)},e.getButtonNavProps(n)),{},{children:n.title}))}),r)})})})}}])}();export{d as default};
2
2
  //# sourceMappingURL=app-header.nav.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-header.nav.js","sources":["../../src/layout-global/app-header.nav.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport type { SxProps, Theme } from '@mui/material'\r\nimport type { MouseEvent as RMouseEvent, ReactNode } from 'react'\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\r\nimport { toArray } from './helpers'\r\nimport { ButtonAnimation, IButtonAnimationProps } from './animated-tabs.units'\r\nimport { appHeaderClasses, NavStyled } from './app-header.styled'\r\nimport type { IAppNav, NavItemClickFunction } from './types'\r\nimport SubMenu from './sub-menu'\r\n\r\nexport interface IAppHeaderNavSlots {\r\n buttonNavProps?: IButtonAnimationProps\r\n buttonNavPropsGetter?: (item: IAppNav) => Partial<IButtonAnimationProps>\r\n}\r\n\r\nexport interface IHeaderNavProps {\r\n configs: IAppNav[]\r\n sx?: SxProps<Theme>\r\n onNavItemClick?: NavItemClickFunction\r\n slots?: IAppHeaderNavSlots\r\n}\r\n\r\ninterface IHeaderNavState {\r\n anchorEl: HTMLElement | null\r\n navSelected: IAppNav | null\r\n}\r\n\r\nclass AppHeaderNav extends Component<IHeaderNavProps, IHeaderNavState> {\r\n constructor(props: IHeaderNavProps) {\r\n super(props)\r\n this.state = { anchorEl: null, navSelected: null }\r\n }\r\n\r\n render() {\r\n return (\r\n <NavStyled sx={this.props.sx}>\r\n <ul className={appHeaderClasses.navItems}>\r\n {this.props.configs.map((item, index) => (\r\n <li key={index} className={this.getItemClasses(item)}>\r\n <ButtonAnimation forceTheme='dark' endIcon={this.renderItemIcon(item)} {...this.getButtonNavProps(item)}>\r\n {item.title}\r\n </ButtonAnimation>\r\n </li>\r\n ))}\r\n </ul>\r\n <SubMenu\r\n anchorEl={this.state.anchorEl}\r\n onClose={this.onCloseMenuHandler}\r\n navSelected={this.state.navSelected}\r\n onNavItemClick={this.props.onNavItemClick}\r\n />\r\n </NavStyled>\r\n )\r\n }\r\n\r\n getButtonNavProps = (item: IAppNav): Partial<IButtonAnimationProps> => {\r\n const { buttonNavProps, buttonNavPropsGetter } = this.props.slots || {}\r\n const dynamic = buttonNavPropsGetter ? buttonNavPropsGetter(item) : buttonNavProps\r\n const { onClick: outsideOnClick, ...outsideProps } = dynamic ?? {}\r\n\r\n // Base props từ item\r\n const base: Partial<IButtonAnimationProps> = {\r\n ...item.options\r\n }\r\n\r\n // Thêm link nếu item có navLink và outside chưa tự set\r\n if (item.navLink && !(outsideProps as any).component) {\r\n base.component = 'a'\r\n ;(base as any).href = item.navLink?.href ?? '/'\r\n }\r\n\r\n return {\r\n ...base,\r\n ...outsideProps,\r\n onClick: (e: React.MouseEvent<any>) => {\r\n this.onClickNavItemHandler(e, item)\r\n outsideOnClick?.(e)\r\n }\r\n }\r\n }\r\n\r\n renderItemIcon = (nav: IAppNav): ReactNode => {\r\n const menu = toArray(nav.menu)\r\n if (menu.length === 0) return null\r\n return <ExpandMoreIcon className={appHeaderClasses.navItemIcon} />\r\n }\r\n\r\n getItemClasses = (nav: IAppNav) => {\r\n const classes = [appHeaderClasses.navItem]\r\n if (this.state.navSelected && this.state.navSelected.title === nav.title) {\r\n classes.push(appHeaderClasses.navItemSelected)\r\n }\r\n return classes.join(' ')\r\n }\r\n\r\n onClickNavItemHandler = (e: RMouseEvent<HTMLAnchorElement, MouseEvent>, nav: IAppNav) => {\r\n if (nav.menu) {\r\n e.preventDefault()\r\n this.setState({ anchorEl: e.currentTarget, navSelected: nav })\r\n return\r\n }\r\n if (nav.navLink && this.props.onNavItemClick) {\r\n // If there's a navLink and an onNavItemClick handler, call it\r\n this.props.onNavItemClick(e, nav.navLink)\r\n }\r\n }\r\n\r\n onCloseMenuHandler = () => {\r\n this.setState({ anchorEl: null, navSelected: null })\r\n }\r\n}\r\nexport default AppHeaderNav\r\n"],"names":["AppHeaderNav","props","_this","_classCallCheck","_callSuper","_defineProperty","item","_item$navLink$href","_item$navLink","_ref","slots","buttonNavProps","buttonNavPropsGetter","dynamic","_ref2","outsideOnClick","onClick","outsideProps","_objectWithoutProperties","_excluded","base","_objectSpread","options","navLink","component","href","e","onClickNavItemHandler","nav","toArray","menu","length","_jsx","ExpandMoreIcon","className","appHeaderClasses","navItemIcon","classes","navItem","state","navSelected","title","push","navItemSelected","join","preventDefault","setState","anchorEl","currentTarget","onNavItemClick","_inherits","Component","_createClass","key","value","_this2","this","_jsxs","NavStyled","sx","children","navItems","configs","map","index","getItemClasses","ButtonAnimation","forceTheme","endIcon","renderItemIcon","getButtonNavProps","SubMenu","onClose","onCloseMenuHandler"],"mappings":"whBA2BMA,aACJ,SAAAA,EAAYC,GAAsB,IAAAC,EAEkB,OAFlBC,OAAAH,GAChCE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EA0BM,oBAAA,SAACI,GACnB,IAUsDC,EAAAC,EAVtDC,EAAiDP,EAAKD,MAAMS,OAAS,CAAE,EAA/DC,EAAcF,EAAdE,eAAgBC,EAAoBH,EAApBG,qBAClBC,EAAUD,EAAuBA,EAAqBN,GAAQK,EACpEG,EAAqDD,QAAAA,EAAW,CAAE,EAAjDE,EAAcD,EAAvBE,QAA4BC,EAAYC,EAAAJ,EAAAK,GAG1CC,EAAIC,KACLf,EAAKgB,SAINhB,EAAKiB,UAAaN,EAAqBO,YACzCJ,EAAKI,UAAY,IACfJ,EAAaK,aAAIlB,UAAAC,EAAGF,EAAKiB,eAAO,IAAAf,OAAA,EAAZA,EAAciB,YAAI,IAAAlB,EAAAA,EAAI,KAG9C,OAAAc,EAAAA,EAAAA,EACKD,CAAAA,EAAAA,GACAH,GAAY,GAAA,CACfD,QAAS,SAACU,GACRxB,EAAKyB,sBAAsBD,EAAGpB,GAC9BS,SAAAA,EAAiBW,EACnB,MAEHrB,EAAAH,EAEgB,iBAAA,SAAC0B,GAEhB,OAAoB,IADPC,EAAQD,EAAIE,MAChBC,OAAqB,KACvBC,EAACC,EAAe,CAAAC,UAAWC,EAAiBC,gBACpD/B,EAAAH,EAEgB,iBAAA,SAAC0B,GAChB,IAAMS,EAAU,CAACF,EAAiBG,SAIlC,OAHIpC,EAAKqC,MAAMC,aAAetC,EAAKqC,MAAMC,YAAYC,QAAUb,EAAIa,OACjEJ,EAAQK,KAAKP,EAAiBQ,iBAEzBN,EAAQO,KAAK,OACrBvC,EAAAH,EAAA,wBAEuB,SAACwB,EAA+CE,GACtE,GAAIA,EAAIE,KAGN,OAFAJ,EAAEmB,sBACF3C,EAAK4C,SAAS,CAAEC,SAAUrB,EAAEsB,cAAeR,YAAaZ,IAGtDA,EAAIL,SAAWrB,EAAKD,MAAMgD,gBAE5B/C,EAAKD,MAAMgD,eAAevB,EAAGE,EAAIL,WAEpClB,EAAAH,EAAA,qBAEoB,WACnBA,EAAK4C,SAAS,CAAEC,SAAU,KAAMP,YAAa,SA9E7CtC,EAAKqC,MAAQ,CAAEQ,SAAU,KAAMP,YAAa,MAAMtC,CACpD,CAAC,OAAAgD,EAAAlD,EAJwBmD,GAIxBC,EAAApD,EAAA,CAAA,CAAAqD,IAAA,SAAAC,MAED,WAAM,IAAAC,EAAAC,KACJ,OACEC,EAACC,EAAU,CAAAC,GAAIH,KAAKvD,MAAM0D,GAAEC,SAAA,CAC1B5B,QAAIE,UAAWC,EAAiB0B,SAAQD,SACrCJ,KAAKvD,MAAM6D,QAAQC,IAAI,SAACzD,EAAM0D,GAAK,OAClChC,EAAA,KAAA,CAAgBE,UAAWqB,EAAKU,eAAe3D,GAAKsD,SAClD5B,EAACkC,EAAe7C,EAAAA,EAAA,CAAC8C,WAAW,OAAOC,QAASb,EAAKc,eAAe/D,IAAWiD,EAAKe,kBAAkBhE,IAAK,CAAA,EAAA,CACpGsD,SAAAtD,EAAKmC,UAFDuB,EAKV,KAEHhC,EAACuC,EAAO,CACNxB,SAAUS,KAAKjB,MAAMQ,SACrByB,QAAShB,KAAKiB,mBACdjC,YAAagB,KAAKjB,MAAMC,YACxBS,eAAgBO,KAAKvD,MAAMgD,mBAInC,IAAC"}
1
+ {"version":3,"file":"app-header.nav.js","sources":["../../src/layout-global/app-header.nav.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport type { SxProps, Theme } from '@mui/material'\r\nimport type { MouseEvent as RMouseEvent, ReactNode } from 'react'\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\r\nimport { toArray } from './helpers'\r\nimport { ButtonAnimation, IButtonAnimationProps } from './animated-tabs.units'\r\nimport { appHeaderClasses, NavStyled } from './app-header.styled'\r\nimport type { IAppNav, NavItemClickFunction } from './types'\r\nimport SubMenu from './sub-menu'\r\n\r\nexport interface IAppHeaderNavSlots {\r\n buttonNavProps?: IButtonAnimationProps\r\n buttonNavPropsGetter?: (item: IAppNav) => Partial<IButtonAnimationProps>\r\n}\r\n\r\nexport interface IHeaderNavProps {\r\n configs: IAppNav[]\r\n sx?: SxProps<Theme>\r\n onNavItemClick?: NavItemClickFunction\r\n slots?: IAppHeaderNavSlots\r\n}\r\n\r\ninterface IHeaderNavState {\r\n anchorEl: HTMLElement | null\r\n navSelected: IAppNav | null\r\n}\r\n\r\nclass AppHeaderNav extends Component<IHeaderNavProps, IHeaderNavState> {\r\n constructor(props: IHeaderNavProps) {\r\n super(props)\r\n this.state = { anchorEl: null, navSelected: null }\r\n }\r\n\r\n render() {\r\n return (\r\n <NavStyled sx={this.props.sx}>\r\n <ul className={appHeaderClasses.navItems}>\r\n {this.props.configs.map((item, index) => (\r\n <li key={index} {...this.getLiProps(item)}>\r\n {item.menu ? (\r\n <SubMenu menu={item.menu} onNavItemClick={this.props.onNavItemClick}>\r\n <ButtonAnimation forceTheme='dark' endIcon={this.renderItemIcon(item)} {...this.getButtonNavProps(item)}>\r\n {item.title}\r\n </ButtonAnimation>\r\n </SubMenu>\r\n ) : (\r\n <ButtonAnimation forceTheme='dark' endIcon={this.renderItemIcon(item)} {...this.getButtonNavProps(item)}>\r\n {item.title}\r\n </ButtonAnimation>\r\n )}\r\n </li>\r\n ))}\r\n </ul>\r\n </NavStyled>\r\n )\r\n }\r\n\r\n getLiProps = (item: IAppNav): React.HTMLProps<HTMLLIElement> => {\r\n const classes = [appHeaderClasses.navItem]\r\n if (this.state.navSelected && this.state.navSelected.title === item.title) {\r\n classes.push(appHeaderClasses.navItemSelected)\r\n }\r\n const props: React.HTMLProps<HTMLLIElement> = { className: classes.join(' ') }\r\n return props\r\n }\r\n\r\n getButtonNavProps = (item: IAppNav): Partial<IButtonAnimationProps> => {\r\n const { buttonNavProps, buttonNavPropsGetter } = this.props.slots || {}\r\n const outsideProps = buttonNavPropsGetter ? buttonNavPropsGetter(item) : buttonNavProps ?? {}\r\n\r\n // Base props từ item\r\n const base: Partial<IButtonAnimationProps> = { ...item.options }\r\n\r\n // Thêm link nếu item có navLink và outside chưa tự set\r\n if (item.navLink && !(outsideProps as any).component) {\r\n base.component = 'a'\r\n ;(base as any).href = item.navLink?.href ?? '/'\r\n }\r\n\r\n return { ...base, ...outsideProps }\r\n }\r\n\r\n renderItemIcon = (nav: IAppNav): ReactNode => {\r\n const menu = toArray(nav.menu)\r\n if (menu.length === 0) return null\r\n return <ExpandMoreIcon className={appHeaderClasses.navItemIcon} />\r\n }\r\n\r\n handleMouseEnter = (e: React.MouseEvent<HTMLLIElement>, item: IAppNav) => {\r\n if (item.menu) {\r\n this.setState({ anchorEl: e.currentTarget, navSelected: item })\r\n }\r\n }\r\n\r\n handleMouseLeave = () => {\r\n this.setState({ anchorEl: null, navSelected: null })\r\n }\r\n\r\n onClickNavItemHandler = (e: RMouseEvent<HTMLAnchorElement, MouseEvent>, nav: IAppNav) => {\r\n if (nav.menu) {\r\n e.preventDefault()\r\n this.setState({ anchorEl: e.currentTarget, navSelected: nav })\r\n return\r\n }\r\n if (nav.navLink && this.props.onNavItemClick) {\r\n // If there's a navLink and an onNavItemClick handler, call it\r\n this.props.onNavItemClick(e, nav.navLink)\r\n }\r\n }\r\n\r\n onCloseMenuHandler = () => {\r\n this.setState({ anchorEl: null, navSelected: null })\r\n }\r\n}\r\nexport default AppHeaderNav\r\n"],"names":["AppHeaderNav","props","_this","_classCallCheck","_callSuper","_defineProperty","item","classes","appHeaderClasses","navItem","state","navSelected","title","push","navItemSelected","className","join","_item$navLink$href","_item$navLink","_ref","slots","buttonNavProps","buttonNavPropsGetter","outsideProps","base","_objectSpread","options","navLink","component","href","nav","toArray","menu","length","_jsx","ExpandMoreIcon","navItemIcon","e","setState","anchorEl","currentTarget","preventDefault","onNavItemClick","_inherits","Component","_createClass","key","value","_this2","this","NavStyled","sx","children","navItems","configs","map","index","getLiProps","SubMenu","ButtonAnimation","forceTheme","endIcon","renderItemIcon","getButtonNavProps"],"mappings":"+dA2BMA,IAAAA,aACJ,SAAAA,EAAYC,GAAsB,IAAAC,EAEkB,OAFlBC,OAAAH,GAChCE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EA4BD,aAAA,SAACI,GACZ,IAAMC,EAAU,CAACC,EAAiBC,SAKlC,OAJIP,EAAKQ,MAAMC,aAAeT,EAAKQ,MAAMC,YAAYC,QAAUN,EAAKM,OAClEL,EAAQM,KAAKL,EAAiBM,iBAEc,CAAEC,UAAWR,EAAQS,KAAK,QAEzEX,EAAAH,EAEmB,oBAAA,SAACI,GACnB,IAOsDW,EAAAC,EAPtDC,EAAiDjB,EAAKD,MAAMmB,OAAS,CAAE,EAA/DC,EAAcF,EAAdE,eAAgBC,EAAoBH,EAApBG,qBAClBC,EAAeD,EAAuBA,EAAqBhB,GAAQe,QAAAA,EAAkB,CAAE,EAGvFG,EAAIC,KAAwCnB,EAAKoB,SAGnDpB,EAAKqB,UAAaJ,EAAqBK,YACzCJ,EAAKI,UAAY,IACfJ,EAAaK,aAAIZ,UAAAC,EAAGZ,EAAKqB,eAAO,IAAAT,OAAA,EAAZA,EAAcW,YAAI,IAAAZ,EAAAA,EAAI,KAG9C,OAAAQ,EAAAA,EAAYD,CAAAA,EAAAA,GAASD,KACtBlB,EAAAH,EAEgB,iBAAA,SAAC4B,GAEhB,OAAoB,IADPC,EAAQD,EAAIE,MAChBC,OAAqB,KACvBC,EAACC,EAAe,CAAApB,UAAWP,EAAiB4B,gBACpD/B,EAAAH,EAAA,mBAEkB,SAACmC,EAAoC/B,GAClDA,EAAK0B,MACP9B,EAAKoC,SAAS,CAAEC,SAAUF,EAAEG,cAAe7B,YAAaL,MAE3DD,EAAAH,EAAA,mBAEkB,WACjBA,EAAKoC,SAAS,CAAEC,SAAU,KAAM5B,YAAa,SAC9CN,EAAAH,EAAA,wBAEuB,SAACmC,EAA+CP,GACtE,GAAIA,EAAIE,KAGN,OAFAK,EAAEI,sBACFvC,EAAKoC,SAAS,CAAEC,SAAUF,EAAEG,cAAe7B,YAAamB,IAGtDA,EAAIH,SAAWzB,EAAKD,MAAMyC,gBAE5BxC,EAAKD,MAAMyC,eAAeL,EAAGP,EAAIH,WAEpCtB,EAAAH,EAAA,qBAEoB,WACnBA,EAAKoC,SAAS,CAAEC,SAAU,KAAM5B,YAAa,SAjF7CT,EAAKQ,MAAQ,CAAE6B,SAAU,KAAM5B,YAAa,MAAMT,CACpD,CAAC,OAAAyC,EAAA3C,EAJwB4C,GAIxBC,EAAA7C,EAAA,CAAA,CAAA8C,IAAA,SAAAC,MAED,WAAM,IAAAC,EAAAC,KACJ,OACEf,EAACgB,EAAS,CAACC,GAAIF,KAAKhD,MAAMkD,GAAEC,SAC1BlB,QAAInB,UAAWP,EAAiB6C,SAAQD,SACrCH,KAAKhD,MAAMqD,QAAQC,IAAI,SAACjD,EAAMkD,GAAK,OAClCtB,EAAoB,KAAAT,EAAAA,EAAA,CAAA,EAAAuB,EAAKS,WAAWnD,IAAK,GAAA,CAAA8C,SACtC9C,EAAK0B,KACJE,EAACwB,EAAQ,CAAA1B,KAAM1B,EAAK0B,KAAMU,eAAgBM,EAAK/C,MAAMyC,eACnDU,SAAAlB,EAACyB,EAAelC,EAAAA,EAAA,CAACmC,WAAW,OAAOC,QAASb,EAAKc,eAAexD,IAAW0C,EAAKe,kBAAkBzD,IAAK,CAAA,EAAA,CACpG8C,SAAA9C,EAAKM,WAIVsB,EAACyB,EAAelC,EAAAA,EAAA,CAACmC,WAAW,OAAOC,QAASb,EAAKc,eAAexD,IAAW0C,EAAKe,kBAAkBzD,IAAK,CAAA,EAAA,CACpG8C,SAAA9C,EAAKM,WATH4C,EAaV,MAIT,IAAC"}
@@ -1,2 +1,2 @@
1
- import{inherits as n,createClass as e,classCallCheck as r,callSuper as t,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as o,jsx as a}from"react/jsx-runtime";import{Component as l}from"react";import{Box as c,Divider as s,alpha as m,colors as u,Stack as d,Typography as p,MenuItem as h}from"@mui/material";import v from"@mui/icons-material/Facebook";import{toArray as f}from"./helpers.js";import{MenuStyled as g,subMenuClasses as C}from"./sub-menu.styled.js";var N=function(){function N(){var n;r(this,N);for(var e=arguments.length,l=new Array(e),s=0;s<e;s++)l[s]=arguments[s];return n=t(this,N,[].concat(l)),i(n,"renderItem",function(e,r){var t;return o(c,{className:C.group,children:[a(p,{variant:"h6",className:C.title,children:e.title}),null===(t=e.items)||void 0===t?void 0:t.map(function(e,r){var t,i;return a(h,{component:"div",className:C.item,children:o(c,{className:C.itemContent,component:"a",href:null!==(t=null===(i=e.navLink)||void 0===i?void 0:i.href)&&void 0!==t?t:"/",onClick:function(r){return n.handleNavItemClick(r,e.navLink)},children:[e.icon&&a("span",{className:C.itemIcon,children:n.renderIcon(e.icon)}),a(p,{component:"div",variant:"body2",className:C.itemText,children:a("span",{children:e.title})})]})},r)})]},r)}),i(n,"renderIcon",function(n){if(!n)return null;var e=n;return"string"==typeof n&&(e=a(c,{component:"span",className:"icon-img",sx:{"--mask-url":"url(".concat(n,")")}})),a("span",{className:"icon-static",children:e})}),i(n,"getMenuData",function(){var e=n.props.navSelected;return f(null==e?void 0:e.menu).filter(function(n){var e;return n.items&&(null===(e=n.items)||void 0===e?void 0:e.length)>0})}),i(n,"handleNavItemClick",function(e,r){n.props.onClose(),n.props.onNavItemClick&&r&&n.props.onNavItemClick(e,r)}),n}return n(N,l),e(N,[{key:"render",value:function(){var n=this.props,e=n.anchorEl,r=n.onClose,t=n.navSelected,i=this.getMenuData();return null===e||0===i.length?null:o(g,{anchorEl:e,open:Boolean(t),onClose:r,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},disableScrollLock:!0,MenuListProps:{component:"div"},children:[a(c,{className:C.root,children:i.map(this.renderItem)}),a(s,{variant:"middle",sx:{borderColor:m(u.common.white,.1)}}),o(d,{direction:"row",spacing:1,justifyContent:"flex-end",alignItems:"center",padding:1,children:[a(p,{variant:"body2",children:"Follow us on social media for updates and news!"}),a(v,{})]})]})}}])}();export{N as default};
1
+ import{inherits as e,createClass as n,classCallCheck as r,callSuper as t,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as o}from"react/jsx-runtime";import{Component as l}from"react";import{Box as c,Divider as s,alpha as m,colors as d,Stack as u,Typography as p,MenuItem as h}from"@mui/material";import v from"@mui/icons-material/Facebook";import{toArray as f}from"./helpers.js";import{SubMenuStyled as N,subMenuClasses as g}from"./sub-menu.styled.js";var k=function(){function k(){var e;r(this,k);for(var n=arguments.length,l=new Array(n),s=0;s<n;s++)l[s]=arguments[s];return e=t(this,k,[].concat(l)),i(e,"renderItem",function(n,r){var t;return a(c,{className:g.group,children:[o(p,{variant:"h6",className:g.title,children:n.title}),null===(t=n.items)||void 0===t?void 0:t.map(function(n,r){var t,i;return o(h,{component:"div",className:g.item,children:a(c,{className:g.itemContent,component:"a",href:null!==(t=null===(i=n.navLink)||void 0===i?void 0:i.href)&&void 0!==t?t:"/",onClick:function(r){return e.handleNavItemClick(r,n.navLink)},children:[n.icon&&o("span",{className:g.itemIcon,children:e.renderIcon(n.icon)}),o(p,{component:"div",variant:"body2",className:g.itemText,children:o("span",{children:n.title})})]})},r)})]},r)}),i(e,"renderIcon",function(e){if(!e)return null;var n=e;return"string"==typeof e&&(n=o(c,{component:"span",className:"icon-img",sx:{"--mask-url":"url(".concat(e,")")}})),o("span",{className:"icon-static",children:n})}),i(e,"getMenuData",function(){return f(e.props.menu).filter(function(e){var n;return e.items&&(null===(n=e.items)||void 0===n?void 0:n.length)>0})}),i(e,"handleNavItemClick",function(n,r){e.props.onNavItemClick&&r&&e.props.onNavItemClick(n,r)}),e}return e(k,l),n(k,[{key:"render",value:function(){var e=this.getMenuData();return a(N,{children:[this.props.children,a(c,{className:g.root,children:[o(c,{className:g.content,children:e.map(this.renderItem)}),o(s,{variant:"middle",sx:{borderColor:m(d.common.white,.1)}}),a(u,{direction:"row",spacing:1,justifyContent:"flex-end",alignItems:"center",padding:1,children:[o(p,{variant:"body2",children:"Follow us on social media for updates and news!"}),o(v,{})]})]})]})}}])}();export{k as default};
2
2
  //# sourceMappingURL=sub-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sub-menu.js","sources":["../../src/layout-global/sub-menu.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport { alpha, Box, colors, Divider, MenuItem, Stack, Typography } from '@mui/material'\r\nimport type { ReactNode } from 'react'\r\nimport FacebookIcon from '@mui/icons-material/Facebook'\r\nimport { toArray } from './helpers'\r\nimport { MenuStyled, subMenuClasses } from './sub-menu.styled'\r\nimport type { IAppMenu, IAppNav, INavLink, NavItemClickFunction } from './types'\r\n\r\ninterface ISubMenuProps {\r\n anchorEl: HTMLElement | null\r\n onClose: () => void\r\n navSelected: IAppNav | null\r\n onNavItemClick?: NavItemClickFunction\r\n}\r\n\r\nclass SubMenu extends Component<ISubMenuProps> {\r\n render() {\r\n const { anchorEl, onClose, navSelected } = this.props\r\n const menu = this.getMenuData()\r\n\r\n if (anchorEl === null || menu.length === 0) return null\r\n // Render sub-items only if anchorEl is set and subItems are available\r\n // This prevents rendering when there are no sub-items or the menu is not open\r\n return (\r\n <MenuStyled\r\n anchorEl={anchorEl}\r\n open={Boolean(navSelected)}\r\n onClose={onClose}\r\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n disableScrollLock\r\n MenuListProps={{ component: 'div' }}\r\n >\r\n {/* Render sub-menu items */}\r\n <Box className={subMenuClasses.root}>{menu.map(this.renderItem)}</Box>\r\n\r\n {/* Optional footer or additional content */}\r\n <Divider variant='middle' sx={{ borderColor: alpha(colors.common.white, 0.1) }} />\r\n <Stack direction='row' spacing={1} justifyContent='flex-end' alignItems='center' padding={1}>\r\n <Typography variant='body2'>Follow us on social media for updates and news!</Typography>\r\n {/* Add social media links or icons here if needed */}\r\n <FacebookIcon />\r\n </Stack>\r\n </MenuStyled>\r\n )\r\n }\r\n\r\n renderItem = (item: IAppMenu, index: number) => (\r\n <Box key={index} className={subMenuClasses.group}>\r\n <Typography variant='h6' className={subMenuClasses.title}>\r\n {item.title}\r\n </Typography>\r\n {/* <Divider sx={{ borderColor: alpha(colors.common.white, 0.1), my: 1 }} /> */}\r\n {item.items?.map((item, j) => (\r\n <MenuItem key={j} component='div' className={subMenuClasses.item}>\r\n <Box\r\n className={subMenuClasses.itemContent}\r\n component='a'\r\n href={item.navLink?.href ?? '/'}\r\n onClick={(e) => this.handleNavItemClick(e, item.navLink)}\r\n >\r\n {item.icon && <span className={subMenuClasses.itemIcon}>{this.renderIcon(item.icon)}</span>}\r\n <Typography component='div' variant='body2' className={subMenuClasses.itemText}>\r\n <span>{item.title}</span>\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n ))}\r\n </Box>\r\n )\r\n\r\n renderIcon = (value: ReactNode) => {\r\n if (!value) return null\r\n let finalIcon = value\r\n if (typeof value === 'string') {\r\n finalIcon = <Box component='span' className='icon-img' sx={{ '--mask-url': `url(${value})` }} />\r\n }\r\n return <span className='icon-static'>{finalIcon}</span>\r\n }\r\n\r\n getMenuData = () => {\r\n const { navSelected } = this.props\r\n const list = toArray<IAppMenu>(navSelected?.menu)\r\n return list.filter((item) => item.items && item.items?.length > 0)\r\n }\r\n\r\n handleNavItemClick = (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>, item?: INavLink) => {\r\n this.props.onClose()\r\n if (!this.props.onNavItemClick || !item) return\r\n this.props.onNavItemClick(event, item)\r\n }\r\n}\r\nexport default SubMenu\r\n"],"names":["SubMenu","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","item","index","_item$items","_jsxs","Box","className","subMenuClasses","group","children","_jsx","Typography","variant","title","items","map","j","_item$navLink$href","_item$navLink","MenuItem","component","itemContent","href","navLink","onClick","e","handleNavItemClick","icon","itemIcon","renderIcon","itemText","value","finalIcon","sx","navSelected","props","toArray","menu","filter","_item$items2","event","onClose","onNavItemClick","_inherits","Component","_createClass","key","_this$props","anchorEl","getMenuData","MenuStyled","open","Boolean","anchorOrigin","vertical","horizontal","transformOrigin","disableScrollLock","MenuListProps","root","renderItem","Divider","borderColor","alpha","colors","common","white","Stack","direction","spacing","justifyContent","alignItems","padding","FacebookIcon"],"mappings":"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"}
1
+ {"version":3,"file":"sub-menu.js","sources":["../../src/layout-global/sub-menu.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport { alpha, Box, colors, Divider, MenuItem, Paper, Stack, Typography } from '@mui/material'\r\nimport type { PropsWithChildren, ReactNode } from 'react'\r\nimport FacebookIcon from '@mui/icons-material/Facebook'\r\nimport { toArray } from './helpers'\r\nimport { subMenuClasses, SubMenuStyled } from './sub-menu.styled'\r\nimport type { IAppMenu, INavLink, NavItemClickFunction, SingleOrArray } from './types'\r\n\r\ninterface ISubMenuProps extends PropsWithChildren {\r\n menu?: SingleOrArray<IAppMenu>\r\n onNavItemClick?: NavItemClickFunction\r\n}\r\n\r\nclass SubMenu extends Component<ISubMenuProps> {\r\n render() {\r\n const menu = this.getMenuData()\r\n return (\r\n <SubMenuStyled>\r\n {this.props.children}\r\n {/* Render sub-menu items */}\r\n <Box className={subMenuClasses.root}>\r\n <Box className={subMenuClasses.content}>{menu.map(this.renderItem)}</Box>\r\n {/* Optional footer or additional content */}\r\n <Divider variant='middle' sx={{ borderColor: alpha(colors.common.white, 0.1) }} />\r\n <Stack direction='row' spacing={1} justifyContent='flex-end' alignItems='center' padding={1}>\r\n <Typography variant='body2'>Follow us on social media for updates and news!</Typography>\r\n {/* Add social media links or icons here if needed */}\r\n <FacebookIcon />\r\n </Stack>\r\n </Box>\r\n </SubMenuStyled>\r\n )\r\n }\r\n\r\n renderItem = (item: IAppMenu, index: number) => (\r\n <Box key={index} className={subMenuClasses.group}>\r\n <Typography variant='h6' className={subMenuClasses.title}>\r\n {item.title}\r\n </Typography>\r\n {/* <Divider sx={{ borderColor: alpha(colors.common.white, 0.1), my: 1 }} /> */}\r\n {item.items?.map((item, j) => (\r\n <MenuItem key={j} component='div' className={subMenuClasses.item}>\r\n <Box\r\n className={subMenuClasses.itemContent}\r\n component='a'\r\n href={item.navLink?.href ?? '/'}\r\n onClick={(e) => this.handleNavItemClick(e, item.navLink)}\r\n >\r\n {item.icon && <span className={subMenuClasses.itemIcon}>{this.renderIcon(item.icon)}</span>}\r\n <Typography component='div' variant='body2' className={subMenuClasses.itemText}>\r\n <span>{item.title}</span>\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n ))}\r\n </Box>\r\n )\r\n\r\n renderIcon = (value: ReactNode) => {\r\n if (!value) return null\r\n let finalIcon = value\r\n if (typeof value === 'string') {\r\n finalIcon = <Box component='span' className='icon-img' sx={{ '--mask-url': `url(${value})` }} />\r\n }\r\n return <span className='icon-static'>{finalIcon}</span>\r\n }\r\n\r\n getMenuData = () => {\r\n const list = toArray<IAppMenu>(this.props.menu)\r\n return list.filter((item) => item.items && item.items?.length > 0)\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 SubMenu\r\n"],"names":["SubMenu","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","item","index","_item$items","_jsxs","Box","className","subMenuClasses","group","children","_jsx","Typography","variant","title","items","map","j","_item$navLink$href","_item$navLink","MenuItem","component","itemContent","href","navLink","onClick","e","handleNavItemClick","icon","itemIcon","renderIcon","itemText","value","finalIcon","sx","toArray","props","menu","filter","_item$items2","event","onNavItemClick","_inherits","Component","_createClass","key","getMenuData","SubMenuStyled","root","content","renderItem","Divider","borderColor","alpha","colors","common","white","Stack","direction","spacing","justifyContent","alignItems","padding","FacebookIcon"],"mappings":"6eAaMA,IAAAA,aAAQ,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GA8DX,OA9DWP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,aAqBC,SAACY,EAAgBC,GAAa,IAAAC,EAAA,OACzCC,EAACC,EAAgB,CAAAC,UAAWC,EAAeC,MAAKC,SAAA,CAC9CC,EAACC,GAAWC,QAAQ,KAAKN,UAAWC,EAAeM,eAChDZ,EAAKY,QAGG,QAFEV,EAEZF,EAAKa,aAAK,IAAAX,OAAA,EAAVA,EAAYY,IAAI,SAACd,EAAMe,GAAC,IAAAC,EAAAC,EAAA,OACvBR,EAACS,EAAQ,CAASC,UAAU,MAAMd,UAAWC,EAAeN,KAAIQ,SAC9DL,EAACC,GACCC,UAAWC,EAAec,YAC1BD,UAAU,IACVE,KAAwB,QAApBL,EAAc,QAAdC,EAAEjB,EAAKsB,eAALL,IAAYA,OAAZA,EAAAA,EAAcI,YAAIL,IAAAA,EAAAA,EAAI,IAC5BO,QAAS,SAACC,GAAC,OAAKpC,EAAKqC,mBAAmBD,EAAGxB,EAAKsB,QAAQ,EAAAd,SAAA,CAEvDR,EAAK0B,MAAQjB,EAAA,OAAA,CAAMJ,UAAWC,EAAeqB,SAAWnB,SAAApB,EAAKwC,WAAW5B,EAAK0B,QAC9EjB,EAACC,EAAW,CAAAS,UAAU,MAAMR,QAAQ,QAAQN,UAAWC,EAAeuB,kBACpEpB,EAAO,OAAA,CAAAD,SAAAR,EAAKY,cATHG,EAYJ,KAlBLd,KAqBXF,EAAAX,EAEY,aAAA,SAAC0C,GACZ,IAAKA,EAAO,OAAO,KACnB,IAAIC,EAAYD,EAIhB,MAHqB,iBAAVA,IACTC,EAAYtB,EAACL,EAAG,CAACe,UAAU,OAAOd,UAAU,WAAW2B,GAAI,CAAE,aAAY,OAAAlC,OAASgC,EAAK,SAElFrB,UAAMJ,UAAU,cAAeG,SAAAuB,MACvChC,EAAAX,EAAA,cAEa,WAEZ,OADa6C,EAAkB7C,EAAK8C,MAAMC,MAC9BC,OAAO,SAACpC,GAAI,IAAAqC,EAAA,OAAKrC,EAAKa,gBAASwB,EAAArC,EAAKa,aAAK,IAAAwB,OAAA,EAAVA,EAAY7C,QAAS,MACjEO,EAAAX,EAAA,qBAEoB,SAACkD,EAAwDtC,GACvEZ,EAAK8C,MAAMK,gBAAmBvC,GACnCZ,EAAK8C,MAAMK,eAAeD,EAAOtC,KAClCZ,CAAA,CAAA,OAAAoD,EAAArD,EA9DmBsD,GA8DnBC,EAAAvD,EAAA,CAAA,CAAAwD,IAAA,SAAAb,MA7DD,WACE,IAAMK,EAAOtC,KAAK+C,cAClB,OACEzC,EAAC0C,EAAa,CAAArC,SAAA,CACXX,KAAKqC,MAAM1B,SAEZL,EAACC,EAAI,CAAAC,UAAWC,EAAewC,KAC7BtC,SAAA,CAAAC,EAACL,EAAG,CAACC,UAAWC,EAAeyC,iBAAUZ,EAAKrB,IAAIjB,KAAKmD,cAEvDvC,EAACwC,GAAQtC,QAAQ,SAASqB,GAAI,CAAEkB,YAAaC,EAAMC,EAAOC,OAAOC,MAAO,OACxEnD,EAACoD,EAAK,CAACC,UAAU,MAAMC,QAAS,EAAGC,eAAe,WAAWC,WAAW,SAASC,QAAS,EACxFpD,SAAA,CAAAC,EAACC,EAAU,CAACC,QAAQ,QAAoEH,SAAA,oDAExFC,EAACoD,cAKX,IAAC"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{styled as e,Menu as i,alpha as o}from"@mui/material";var n={root:"SubMenu-root",group:"SubMenu-group",title:"SubMenu-title",item:"SubMenu-item",itemContent:"SubMenu-itemContent",itemIcon:"SubMenu-itemIcon",itemText:"SubMenu-itemText",socialText:"SubMenu-socialText"},r=function(t,e){return"".concat("",".").concat(n[t]).concat("")},a=e(i)(function(e){var i=e.theme;return t(t(t(t({"--bg-divider":"linear-gradient(45deg, rgb(211, 47, 47) 0%, rgb(249, 169, 37) 70%, rgb(211, 47, 47) 100%) 0% 0% / 200%","--size-icon":"24px",marginTop:"45px",".MuiPaper-root":{overflow:"visible",backgroundColor:"#323234",borderRadius:i.shape.borderRadius,minWidth:"280px",maxWidth:"550px",boxShadow:"0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)",animation:"fadeInDown 0.3s ease-out",marginTop:"8px",color:i.palette.common.white,"@keyframes fadeInDown":{"0%":{opacity:0,transform:"translateY(-10px)"},"100%":{opacity:1,transform:"translateY(0)"}},"&::before":{content:'""',position:"absolute",backgroundColor:"#323234",width:"10px",height:"10px",top:"-4px",right:i.spacing(1.5),transform:"translateX(-50%) rotate(45deg)",zIndex:0}},".MuiBackdrop-root":{backgroundColor:"transparent"},".MuiList-root":{padding:0}},r("root"),t(t({display:"flex",padding:i.spacing(1,0)},i.breakpoints.down("md"),{flexDirection:"column",padding:i.spacing(1,0)}),"&:hover",{"--color-text-sub-menu":i.palette.grey[500],"--filter-icon":"invert(1) brightness(0.6) opacity(0.7)"})),r("group"),t({borderRight:"1px solid ".concat(o(i.palette.common.white,.1)),padding:i.spacing(0,1),"&:last-of-type":{borderRight:"none"}},i.breakpoints.down("md"),{borderRight:"none",padding:i.spacing(0,0,0,1)})),r("title"),{padding:i.spacing(.5,1.25),color:"var(--color-title-sub-menu, #ffffff)",fontWeight:500,marginBottom:i.spacing(1.25)}),r("item"),t(t(t(t(t(t({position:"relative",transition:"all 0.35s ease",padding:i.spacing(1.5,3.5,1.5,1.5),backgroundColor:"var(--bg-nav-item, transparent)",borderRadius:i.shape.borderRadius},r("itemContent"),{display:"flex",alignItems:"center"}),r("itemText"),{color:"var(--color-text-sub-menu, ".concat(i.palette.grey[100],")"),textDecoration:"none",display:"block",width:"100%",transition:"all 0.3s ease",span:{display:"inline-block"}}),r("itemIcon"),{display:"flex",alignItems:"center",flexShrink:0,transition:"transform var(--timing-medium) var(--easing-bounce)",transformOrigin:"left bottom",position:"relative",marginRight:i.spacing(1),"img, svg, .icon-img":{width:"var(--size-icon)",height:"var(--size-icon)"},".icon-img":{backgroundImage:"var(--mask-url)",backgroundSize:"cover",backgroundPosition:"center",display:"block",borderRadius:4,transition:"filter 0.3s",position:"relative",zIndex:1,filter:"var(--filter-icon, invert(1) brightness(0.9) opacity(1))"}}),r("socialText"),{color:"var(--color-text-secondary, #9da1a5)"}),"&::before",{content:'""',position:"absolute",left:"14px",top:"50%",transform:"translateY(-50%)",width:0,transition:"all 0.4s",background:"var(--bg-divider)",height:"2px"}),"&:hover",{"--color-text-sub-menu":i.palette.common.white,"--filter-icon":"invert(1) brightness(1) opacity(1)",padding:i.spacing(1.5,1.5,1.5,3.5),backgroundColor:"var(--bg-nav-item-hover, rgba(249, 169, 37, 0.1))","&::before":{width:i.spacing(1.125),marginRight:i.spacing(1)}}))});a.displayName="MenuStyled";export{a as MenuStyled,n as subMenuClasses};
1
+ import{defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{styled as e,Popover as o,Box as i,alpha as n}from"@mui/material";e(o)(function(t){var e=t.theme;return{marginTop:"45px",".MuiPaper-root":{overflow:"visible",backgroundColor:"#323234",borderRadius:e.shape.borderRadius,minWidth:"280px",maxWidth:"550px",boxShadow:"0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)",animation:"fadeInDown 0.3s ease-out",marginTop:"8px",color:e.palette.common.white,"@keyframes fadeInDown":{"0%":{opacity:0,transform:"translateY(-10px)"},"100%":{opacity:1,transform:"translateY(0)"}},"&::before":{content:'""',position:"absolute",backgroundColor:"#323234",width:"10px",height:"10px",top:"-4px",right:e.spacing(1.5),transform:"translateX(-50%) rotate(45deg)",zIndex:0}},".MuiBackdrop-root":{backgroundColor:"transparent"},".MuiList-root":{padding:0}}});var r={root:"SubMenu-root",content:"SubMenu-content",group:"SubMenu-group",title:"SubMenu-title",item:"SubMenu-item",itemContent:"SubMenu-itemContent",itemIcon:"SubMenu-itemIcon",itemText:"SubMenu-itemText",socialText:"SubMenu-socialText",hovering:"SubMenu-hovering"},a=function(t,e){return"".concat("",".").concat(r[t]).concat("")},s=e(i)(function(e){var o=e.theme;return t(t(t(t(t(t(t(t(t({"--bg-divider":"linear-gradient(45deg, rgb(211, 47, 47) 0%, rgb(249, 169, 37) 70%, rgb(211, 47, 47) 100%) 0% 0% / 200%","--size-icon":"24px"},a("root"),{"&::before":{content:'""',position:"absolute",backgroundColor:"#323234",width:"10px",height:"10px",top:"-4px",right:o.spacing(1.5),transform:"translateX(-50%) rotate(45deg)",zIndex:0}}),a("content"),t(t({display:"flex",padding:o.spacing(1,0)},o.breakpoints.down("md"),{flexDirection:"column",padding:o.spacing(1,0)}),"&:hover",{"--color-text-sub-menu":o.palette.grey[500],"--filter-icon":"invert(1) brightness(0.6) opacity(0.7)"})),a("group"),t({borderRight:"1px solid ".concat(n(o.palette.common.white,.1)),padding:o.spacing(0,1),"&:last-of-type":{borderRight:"none"}},o.breakpoints.down("md"),{borderRight:"none",padding:o.spacing(0,0,0,1)})),a("title"),{padding:o.spacing(.5,1.25),color:"var(--color-title-sub-menu, #ffffff)",fontWeight:500,marginBottom:o.spacing(1.25)}),a("itemContent"),{display:"flex",alignItems:"center"}),a("itemText"),{color:"var(--color-text-sub-menu, ".concat(o.palette.grey[100],")"),textDecoration:"none",display:"block",width:"100%",transition:"all 0.3s ease",span:{display:"inline-block"}}),a("itemIcon"),{display:"flex",alignItems:"center",flexShrink:0,transition:"transform var(--timing-medium) var(--easing-bounce)",transformOrigin:"left bottom",position:"relative",marginRight:o.spacing(1),"img, svg, .icon-img":{width:"var(--size-icon)",height:"var(--size-icon)"},".icon-img":{backgroundImage:"var(--mask-url)",backgroundSize:"cover",backgroundPosition:"center",display:"block",borderRadius:4,transition:"filter 0.3s",position:"relative",zIndex:1,filter:"var(--filter-icon, invert(1) brightness(0.9) opacity(1))"}}),a("socialText"),{color:"var(--color-text-secondary, #9da1a5)"}),a("item"),{position:"relative",transition:"all 0.35s ease",padding:o.spacing(1.5,3.5,1.5,1.5),backgroundColor:"var(--bg-nav-item, transparent)",borderRadius:o.shape.borderRadius,"&::before":{content:'""',position:"absolute",left:"14px",top:"50%",transform:"translateY(-50%)",width:0,transition:"all 0.4s",background:"var(--bg-divider)",height:"2px"},"&:hover":{"--color-text-sub-menu":o.palette.common.white,"--filter-icon":"invert(1) brightness(1) opacity(1)",padding:o.spacing(1.5,1.5,1.5,3.5),backgroundColor:"var(--bg-nav-item-hover, rgba(249, 169, 37, 0.1))","&::before":{width:o.spacing(1.125),marginRight:o.spacing(1)}}})});export{s as SubMenuStyled,r as subMenuClasses};
2
2
  //# sourceMappingURL=sub-menu.styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sub-menu.styled.js","sources":["../../src/layout-global/sub-menu.styled.ts"],"sourcesContent":["import { alpha, Menu, styled } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { MenuProps, Theme } from '@mui/material'\r\n\r\nexport const subMenuClasses = {\r\n root: 'SubMenu-root',\r\n group: 'SubMenu-group',\r\n title: 'SubMenu-title',\r\n item: 'SubMenu-item',\r\n itemContent: 'SubMenu-itemContent',\r\n itemIcon: 'SubMenu-itemIcon',\r\n itemText: 'SubMenu-itemText',\r\n socialText: 'SubMenu-socialText'\r\n}\r\n\r\nconst getClasses = (key: keyof typeof subMenuClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${subMenuClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const MenuStyled: ComponentType<MenuProps> = styled(Menu)(({ theme }: { theme: Theme }) => ({\r\n '--bg-divider': 'linear-gradient(45deg, rgb(211, 47, 47) 0%, rgb(249, 169, 37) 70%, rgb(211, 47, 47) 100%) 0% 0% / 200%',\r\n '--size-icon': '24px',\r\n marginTop: '45px',\r\n '.MuiPaper-root': {\r\n overflow: 'visible',\r\n backgroundColor: '#323234',\r\n borderRadius: theme.shape.borderRadius,\r\n minWidth: '280px',\r\n maxWidth: '550px',\r\n boxShadow: `0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)`,\r\n animation: 'fadeInDown 0.3s ease-out',\r\n marginTop: '8px',\r\n color: theme.palette.common.white,\r\n\r\n '@keyframes fadeInDown': {\r\n '0%': { opacity: 0, transform: 'translateY(-10px)' },\r\n '100%': { opacity: 1, transform: 'translateY(0)' }\r\n },\r\n\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n backgroundColor: '#323234',\r\n width: '10px',\r\n height: '10px',\r\n top: '-4px',\r\n right: theme.spacing(1.5),\r\n transform: 'translateX(-50%) rotate(45deg)',\r\n zIndex: 0\r\n }\r\n },\r\n '.MuiBackdrop-root': { backgroundColor: 'transparent' },\r\n '.MuiList-root': { padding: 0 },\r\n\r\n [getClasses('root')]: {\r\n display: 'flex',\r\n padding: theme.spacing(1, 0),\r\n [theme.breakpoints.down('md')]: {\r\n flexDirection: 'column',\r\n padding: theme.spacing(1, 0)\r\n },\r\n '&:hover': {\r\n '--color-text-sub-menu': theme.palette.grey[500],\r\n '--filter-icon': 'invert(1) brightness(0.6) opacity(0.7)'\r\n }\r\n },\r\n\r\n [getClasses('group')]: {\r\n borderRight: `1px solid ${alpha(theme.palette.common.white, 0.1)}`,\r\n padding: theme.spacing(0, 1),\r\n '&:last-of-type': {\r\n borderRight: 'none'\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n borderRight: 'none',\r\n padding: theme.spacing(0, 0, 0, 1)\r\n }\r\n },\r\n\r\n [getClasses('title')]: {\r\n padding: theme.spacing(0.5, 1.25),\r\n color: 'var(--color-title-sub-menu, #ffffff)',\r\n fontWeight: 500,\r\n marginBottom: theme.spacing(1.25)\r\n },\r\n\r\n [getClasses('item')]: {\r\n position: 'relative',\r\n transition: 'all 0.35s ease',\r\n padding: theme.spacing(1.5, 3.5, 1.5, 1.5),\r\n backgroundColor: 'var(--bg-nav-item, transparent)',\r\n borderRadius: theme.shape.borderRadius,\r\n\r\n [getClasses('itemContent')]: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n\r\n [getClasses('itemText')]: {\r\n color: `var(--color-text-sub-menu, ${theme.palette.grey[100]})`,\r\n textDecoration: 'none',\r\n display: 'block',\r\n width: '100%',\r\n transition: 'all 0.3s ease',\r\n span: {\r\n display: 'inline-block'\r\n }\r\n },\r\n\r\n [getClasses('itemIcon')]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n transition: 'transform var(--timing-medium) var(--easing-bounce)',\r\n transformOrigin: 'left bottom',\r\n position: 'relative',\r\n marginRight: theme.spacing(1),\r\n 'img, svg, .icon-img': { width: 'var(--size-icon)', height: 'var(--size-icon)' },\r\n '.icon-img': {\r\n backgroundImage: `var(--mask-url)`,\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center',\r\n display: 'block',\r\n borderRadius: 4,\r\n transition: 'filter 0.3s',\r\n position: 'relative',\r\n zIndex: 1,\r\n filter: 'var(--filter-icon, invert(1) brightness(0.9) opacity(1))'\r\n }\r\n },\r\n\r\n [getClasses('socialText')]: {\r\n color: 'var(--color-text-secondary, #9da1a5)'\r\n },\r\n\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n left: '14px',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n width: 0,\r\n transition: 'all 0.4s',\r\n background: 'var(--bg-divider)',\r\n height: '2px'\r\n },\r\n\r\n '&:hover': {\r\n '--color-text-sub-menu': theme.palette.common.white,\r\n '--filter-icon': 'invert(1) brightness(1) opacity(1)',\r\n padding: theme.spacing(1.5, 1.5, 1.5, 3.5),\r\n backgroundColor: 'var(--bg-nav-item-hover, rgba(249, 169, 37, 0.1))',\r\n '&::before': {\r\n width: theme.spacing(1.125),\r\n marginRight: theme.spacing(1)\r\n }\r\n }\r\n }\r\n}))\r\nMenuStyled.displayName = 'MenuStyled'\r\n"],"names":["subMenuClasses","root","group","title","item","itemContent","itemIcon","itemText","socialText","getClasses","key","options","concat","MenuStyled","styled","Menu","_ref","theme","_defineProperty","marginTop","overflow","backgroundColor","borderRadius","shape","minWidth","maxWidth","boxShadow","animation","color","palette","common","white","opacity","transform","content","position","width","height","top","right","spacing","zIndex","padding","display","breakpoints","down","flexDirection","grey","borderRight","alpha","fontWeight","marginBottom","transition","alignItems","textDecoration","span","flexShrink","transformOrigin","marginRight","backgroundImage","backgroundSize","backgroundPosition","filter","left","background","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"sub-menu.styled.js","sources":["../../src/layout-global/sub-menu.styled.ts"],"sourcesContent":["import { alpha, Box, Menu, Popover, styled } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { BoxProps, MenuProps, PopoverProps, Theme } from '@mui/material'\r\n\r\nexport const PopoverStyled: ComponentType<PopoverProps> = styled(Popover)(({ theme }) => ({\r\n marginTop: '45px',\r\n '.MuiPaper-root': {\r\n overflow: 'visible',\r\n backgroundColor: '#323234',\r\n borderRadius: theme.shape.borderRadius,\r\n minWidth: '280px',\r\n maxWidth: '550px',\r\n boxShadow: `0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)`,\r\n animation: 'fadeInDown 0.3s ease-out',\r\n marginTop: '8px',\r\n color: theme.palette.common.white,\r\n\r\n '@keyframes fadeInDown': {\r\n '0%': { opacity: 0, transform: 'translateY(-10px)' },\r\n '100%': { opacity: 1, transform: 'translateY(0)' }\r\n },\r\n\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n backgroundColor: '#323234',\r\n width: '10px',\r\n height: '10px',\r\n top: '-4px',\r\n right: theme.spacing(1.5),\r\n transform: 'translateX(-50%) rotate(45deg)',\r\n zIndex: 0\r\n }\r\n },\r\n '.MuiBackdrop-root': { backgroundColor: 'transparent' },\r\n '.MuiList-root': { padding: 0 }\r\n}))\r\n\r\nexport const subMenuClasses = {\r\n root: 'SubMenu-root',\r\n content: 'SubMenu-content',\r\n group: 'SubMenu-group',\r\n title: 'SubMenu-title',\r\n item: 'SubMenu-item',\r\n itemContent: 'SubMenu-itemContent',\r\n itemIcon: 'SubMenu-itemIcon',\r\n itemText: 'SubMenu-itemText',\r\n socialText: 'SubMenu-socialText',\r\n hovering: 'SubMenu-hovering'\r\n}\r\n\r\nconst getSubMenuClasses = (key: keyof typeof subMenuClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${subMenuClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const SubMenuStyled: ComponentType<BoxProps> = styled(Box)(({ theme }) => ({\r\n '--bg-divider': 'linear-gradient(45deg, rgb(211, 47, 47) 0%, rgb(249, 169, 37) 70%, rgb(211, 47, 47) 100%) 0% 0% / 200%',\r\n '--size-icon': '24px',\r\n [getSubMenuClasses('root')]: {\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n backgroundColor: '#323234',\r\n width: '10px',\r\n height: '10px',\r\n top: '-4px',\r\n right: theme.spacing(1.5),\r\n transform: 'translateX(-50%) rotate(45deg)',\r\n zIndex: 0\r\n }\r\n },\r\n [getSubMenuClasses('content')]: {\r\n display: 'flex',\r\n padding: theme.spacing(1, 0),\r\n [theme.breakpoints.down('md')]: {\r\n flexDirection: 'column',\r\n padding: theme.spacing(1, 0)\r\n },\r\n '&:hover': {\r\n '--color-text-sub-menu': theme.palette.grey[500],\r\n '--filter-icon': 'invert(1) brightness(0.6) opacity(0.7)'\r\n }\r\n },\r\n\r\n [getSubMenuClasses('group')]: {\r\n borderRight: `1px solid ${alpha(theme.palette.common.white, 0.1)}`,\r\n padding: theme.spacing(0, 1),\r\n '&:last-of-type': {\r\n borderRight: 'none'\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n borderRight: 'none',\r\n padding: theme.spacing(0, 0, 0, 1)\r\n }\r\n },\r\n\r\n [getSubMenuClasses('title')]: {\r\n padding: theme.spacing(0.5, 1.25),\r\n color: 'var(--color-title-sub-menu, #ffffff)',\r\n fontWeight: 500,\r\n marginBottom: theme.spacing(1.25)\r\n },\r\n\r\n [getSubMenuClasses('itemContent')]: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n\r\n [getSubMenuClasses('itemText')]: {\r\n color: `var(--color-text-sub-menu, ${theme.palette.grey[100]})`,\r\n textDecoration: 'none',\r\n display: 'block',\r\n width: '100%',\r\n transition: 'all 0.3s ease',\r\n span: {\r\n display: 'inline-block'\r\n }\r\n },\r\n\r\n [getSubMenuClasses('itemIcon')]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n transition: 'transform var(--timing-medium) var(--easing-bounce)',\r\n transformOrigin: 'left bottom',\r\n position: 'relative',\r\n marginRight: theme.spacing(1),\r\n 'img, svg, .icon-img': { width: 'var(--size-icon)', height: 'var(--size-icon)' },\r\n '.icon-img': {\r\n backgroundImage: `var(--mask-url)`,\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center',\r\n display: 'block',\r\n borderRadius: 4,\r\n transition: 'filter 0.3s',\r\n position: 'relative',\r\n zIndex: 1,\r\n filter: 'var(--filter-icon, invert(1) brightness(0.9) opacity(1))'\r\n }\r\n },\r\n\r\n [getSubMenuClasses('socialText')]: {\r\n color: 'var(--color-text-secondary, #9da1a5)'\r\n },\r\n\r\n [getSubMenuClasses('item')]: {\r\n position: 'relative',\r\n transition: 'all 0.35s ease',\r\n padding: theme.spacing(1.5, 3.5, 1.5, 1.5),\r\n backgroundColor: 'var(--bg-nav-item, transparent)',\r\n borderRadius: theme.shape.borderRadius,\r\n\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n left: '14px',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n width: 0,\r\n transition: 'all 0.4s',\r\n background: 'var(--bg-divider)',\r\n height: '2px'\r\n },\r\n\r\n '&:hover': {\r\n '--color-text-sub-menu': theme.palette.common.white,\r\n '--filter-icon': 'invert(1) brightness(1) opacity(1)',\r\n padding: theme.spacing(1.5, 1.5, 1.5, 3.5),\r\n backgroundColor: 'var(--bg-nav-item-hover, rgba(249, 169, 37, 0.1))',\r\n '&::before': {\r\n width: theme.spacing(1.125),\r\n marginRight: theme.spacing(1)\r\n }\r\n }\r\n }\r\n}))\r\n"],"names":["styled","Popover","_ref","theme","marginTop","overflow","backgroundColor","borderRadius","shape","minWidth","maxWidth","boxShadow","animation","color","palette","common","white","opacity","transform","content","position","width","height","top","right","spacing","zIndex","padding","subMenuClasses","root","group","title","item","itemContent","itemIcon","itemText","socialText","hovering","getSubMenuClasses","key","options","concat","SubMenuStyled","Box","_ref2","_defineProperty","display","breakpoints","down","flexDirection","grey","borderRight","alpha","fontWeight","marginBottom","alignItems","textDecoration","transition","span","flexShrink","transformOrigin","marginRight","backgroundImage","backgroundSize","backgroundPosition","filter","left","background"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../src/layout-global/types.ts"],"sourcesContent":["import type { ReactNode } from 'react'\r\nimport type { SxProps, Theme } from '@mui/material'\r\nimport type { IButtonAnimationProps } from './animated-tabs.units'\r\nimport type { AppSite } from '../types'\r\n\r\nexport enum ENavKey {\r\n Home = 'home',\r\n Pricing = 'pricing',\r\n SubmitMedia = 'submit-media',\r\n Faqs = 'faqs',\r\n Videos = 'videos',\r\n Audios = 'audios',\r\n Privacy = 'privacy',\r\n Terms = 'terms',\r\n About = 'about',\r\n CreateAccount = 'create-account',\r\n ContactUs = 'contact-us',\r\n PurchaseLicenses = 'purchase-licenses'\r\n}\r\n\r\nexport interface IAuthData {\r\n userId?: string\r\n displayName?: string\r\n userAvatar?: string\r\n isAuthenticated?: boolean\r\n profilePath?: string\r\n registerPath?: string\r\n loginPath?: string\r\n logoutPath?: string\r\n isFirstLogin?: boolean\r\n}\r\n\r\nexport interface IAppSocial {\r\n link: string\r\n icon: ReactNode\r\n color?: string\r\n sx?: SxProps<Theme>\r\n}\r\n\r\nexport interface INavLinkOptions {\r\n tabKey?: 'video' | 'audio'\r\n toLocate?: 'home' | 'faqs' | 'about' | 'contact' | 'pricing'\r\n}\r\n\r\nexport type INavLink = {\r\n /** App site key */\r\n site: AppSite\r\n /** Link URL */\r\n href: string\r\n /** Router path for internal routing (Next.js/React Router) */\r\n routerPath?: string\r\n /** Link target */\r\n target?: '_blank' | '_self'\r\n /** This field is used for UI handling and some other non-critical tasks */\r\n options?: string\r\n}\r\n\r\nexport type NavItemClickFunction = (event: React.MouseEvent<HTMLAnchorElement | HTMLDivElement, MouseEvent>, item: INavLink) => void\r\n\r\nexport interface IAppNavDef {\r\n navLink?: INavLink\r\n options?: Partial<IButtonAnimationProps>\r\n}\r\n\r\nexport interface IAppMenuItem extends Omit<IAppNavDef, 'options'> {\r\n title: string\r\n icon?: ReactNode\r\n}\r\n\r\nexport interface IAppMenu {\r\n title: string\r\n icon?: ReactNode\r\n items?: IAppMenuItem[]\r\n}\r\n\r\nexport interface IAppNav extends IAppNavDef {\r\n title: string\r\n menu?: IAppMenu | IAppMenu[]\r\n}\r\n\r\nexport type OnRouterUrlGetter = (site: AppSite, path: string) => string\r\n"],"names":["ENavKey"],"mappings":"IAKYA,GAAZ,SAAYA,GACVA,EAAA,KAAA,OACAA,EAAA,QAAA,UACAA,EAAA,YAAA,eACAA,EAAA,KAAA,OACAA,EAAA,OAAA,SACAA,EAAA,OAAA,SACAA,EAAA,QAAA,UACAA,EAAA,MAAA,QACAA,EAAA,MAAA,QACAA,EAAA,cAAA,iBACAA,EAAA,UAAA,aACAA,EAAA,iBAAA,mBACD,CAbD,CAAYA,IAAAA,EAaX,CAAA"}
1
+ {"version":3,"file":"types.js","sources":["../../src/layout-global/types.ts"],"sourcesContent":["import type { ReactNode } from 'react'\r\nimport type { SxProps, Theme } from '@mui/material'\r\nimport type { IButtonAnimationProps } from './animated-tabs.units'\r\nimport type { AppSite } from '../types'\r\n\r\nexport type SingleOrArray<T> = T | T[]\r\n\r\nexport enum ENavKey {\r\n Home = 'home',\r\n Pricing = 'pricing',\r\n SubmitMedia = 'submit-media',\r\n Faqs = 'faqs',\r\n Videos = 'videos',\r\n Audios = 'audios',\r\n Privacy = 'privacy',\r\n Terms = 'terms',\r\n About = 'about',\r\n CreateAccount = 'create-account',\r\n ContactUs = 'contact-us',\r\n PurchaseLicenses = 'purchase-licenses'\r\n}\r\n\r\nexport interface IAuthData {\r\n userId?: string\r\n displayName?: string\r\n userAvatar?: string\r\n isAuthenticated?: boolean\r\n profilePath?: string\r\n registerPath?: string\r\n loginPath?: string\r\n logoutPath?: string\r\n isFirstLogin?: boolean\r\n}\r\n\r\nexport interface IAppSocial {\r\n link: string\r\n icon: ReactNode\r\n color?: string\r\n sx?: SxProps<Theme>\r\n}\r\n\r\nexport interface INavLinkOptions {\r\n tabKey?: 'video' | 'audio'\r\n toLocate?: 'home' | 'faqs' | 'about' | 'contact' | 'pricing'\r\n}\r\n\r\nexport type INavLink = {\r\n /** App site key */\r\n site: AppSite\r\n /** Link URL */\r\n href: string\r\n /** Router path for internal routing (Next.js/React Router) */\r\n routerPath?: string\r\n /** Link target */\r\n target?: '_blank' | '_self'\r\n /** This field is used for UI handling and some other non-critical tasks */\r\n options?: string\r\n}\r\n\r\nexport type NavItemClickFunction = (event: React.MouseEvent<HTMLAnchorElement | HTMLDivElement, MouseEvent>, item: INavLink) => void\r\n\r\nexport interface IAppNavDef {\r\n navLink?: INavLink\r\n options?: Partial<IButtonAnimationProps>\r\n}\r\n\r\nexport interface IAppMenuItem extends Omit<IAppNavDef, 'options'> {\r\n title: string\r\n icon?: ReactNode\r\n}\r\n\r\nexport interface IAppMenu {\r\n title: string\r\n icon?: ReactNode\r\n items?: IAppMenuItem[]\r\n}\r\n\r\nexport interface IAppNav extends IAppNavDef {\r\n title: string\r\n menu?: SingleOrArray<IAppMenu>\r\n}\r\n\r\nexport type OnRouterUrlGetter = (site: AppSite, path: string) => string\r\n"],"names":["ENavKey"],"mappings":"IAOYA,GAAZ,SAAYA,GACVA,EAAA,KAAA,OACAA,EAAA,QAAA,UACAA,EAAA,YAAA,eACAA,EAAA,KAAA,OACAA,EAAA,OAAA,SACAA,EAAA,OAAA,SACAA,EAAA,QAAA,UACAA,EAAA,MAAA,QACAA,EAAA,MAAA,QACAA,EAAA,cAAA,iBACAA,EAAA,UAAA,aACAA,EAAA,iBAAA,mBACD,CAbD,CAAYA,IAAAA,EAaX,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{createClass as t,objectSpread2 as e,classCallCheck as i,defineProperty as a,inherits as n,superPropGet as r,callSuper as o}from"../_virtual/_rollupPluginBabelHelpers.js";import s from"events";import{mediaRightStoreOptions as u}from"./configs.js";var l=function(){function e(){var t;return i(this,e),t=o(this,e),a(t,"_createWrapListener",function(t){return function(){try{t.apply(void 0,arguments)}catch(t){console.error("Error in Cart listener:",t)}}}),t}return n(e,s),t(e,[{key:"subscribe",value:function(t,i){var a=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?this._createWrapListener(i):i;return r(e,"addListener",this)([t,n]),function(){r(e,"removeListener",a)([t,n])}}}])}();function h(){return"undefined"==typeof globalThis?null:(void 0===globalThis.MediaRightEventStore&&(globalThis.MediaRightEventStore=new l),globalThis.MediaRightEventStore.setMaxListeners(50),globalThis.MediaRightEventStore)}var c=function(){return t(function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,t),a(this,"initialize",function(){var t=h();null==t||t.subscribe("requestState",function(){null==t||t.emit("stateChange",{groups:e.getState()})})}),a(this,"destroy",function(){var t=h();null==t||t.removeAllListeners("requestState")}),this.configs=n,this.configs.localStorageKey||(this.configs.localStorageKey="cartGroups"),this.initialize()},[{key:"emitStateChange",value:function(t){var e=h();this.saveToLocalStorage(t),null==e||e.emit("stateChange",{groups:t,options:{message:"Cart updated"}})}},{key:"addGroup",value:function(t){var i=this.getState(),a=e(e({},t),{},{createdAt:Date.now(),items:[],channels:[]});return i[t.id]=a,this.emitStateChange(i),this}},{key:"updateGroup",value:function(t,i){var a=this.getState();return a[t]&&(a[t]=e(e({},a[t]),i),this.emitStateChange(a)),this}},{key:"removeGroup",value:function(t){var e=this.getState();return e[t]&&(delete e[t],this.emitStateChange(e)),this}},{key:"addChannel",value:function(t,e){var i=this.getState(),a=i[t];if(!a)throw new Error("Group ".concat(t," not found"));return a.channels.push(e),this.emitStateChange(i),this}},{key:"updateChannel",value:function(t,i,a){var n=this.getState(),r=n[t];return r&&r.channels[i]?(r.channels[i]=e(e({},r.channels[i]),a),this.emitStateChange(n),this):this}},{key:"removeChannel",value:function(t,e){var i=this.getState(),a=i[t];return a?(a.channels.splice(e,1),this.emitStateChange(i),this):this}},{key:"clearChannels",value:function(t){var e=this.getState(),i=e[t];return i?(i.channels=[],this.emitStateChange(e),this):this}},{key:"addItem",value:function(t){var e=this.getState(),i=e[t.GroupId];if(!i)throw new Error("Group ".concat(t.GroupId," not found"));if(i.items.length>=u.MAX_ITEMS_PER_GROUP)throw new Error("Group ".concat(t.GroupId," has reached maximum items limit (").concat(u.MAX_ITEMS_PER_GROUP,")"));var a=i.items.findIndex(function(e){return e.ProductId===t.ProductId});return a>=0?i.items[a]=t:i.items.push(t),this.emitStateChange(e),this}},{key:"updateItem",value:function(t,i,a){var n=this.getState(),r=n[t];if(!r)return this;var o=r.items.findIndex(function(t){return t.ProductId===i});return o>=0&&(r.items[o]=e(e({},r.items[o]),a),this.emitStateChange(n)),this}},{key:"removeItem",value:function(t,e){var i=this.getState(),a=i[t];return a?(a.items=a.items.filter(function(t){return t.ProductId!==e}),console.log(a.items),this.emitStateChange(i),this):this}},{key:"clear",value:function(){return this.emitStateChange({}),this}},{key:"getState",value:function(){return this.loadFromLocalStorage()||{}}},{key:"getGroups",value:function(){return Object.values(this.getState())}},{key:"getGroup",value:function(t){return this.getState()[t]}},{key:"loadFromLocalStorage",value:function(){if("undefined"!=typeof globalThis&&globalThis.localStorage){var t=localStorage.getItem(this.configs.localStorageKey||"cartGroups");if(t)return JSON.parse(t)}return null}},{key:"saveToLocalStorage",value:function(t){"undefined"!=typeof globalThis&&globalThis.localStorage&&this.configs.localStorageKey&&localStorage.setItem(this.configs.localStorageKey,JSON.stringify(t))}}])}();export{l as MediaRightEventStore,c as MfeCartStore,h as getEventStore};
2
+ //# sourceMappingURL=cart-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart-store.js","sources":["../../src/media-right/cart-store.ts"],"sourcesContent":["import EventEmitter from 'events'\r\nimport type { IMediaRightChannel, IMediaRightGroup, IMediaRightItem } from './types'\r\nimport { mediaRightStoreOptions } from './configs'\r\n\r\nexport interface IEventOptions {\r\n message?: string\r\n}\r\n\r\nexport interface IMediaRightEventConfigs {\r\n stateChange: [{ groups: Record<string, IMediaRightGroup>; options?: IEventOptions }]\r\n requestState: [{ options?: IEventOptions }]\r\n}\r\n\r\nexport class MediaRightEventStore extends EventEmitter<IMediaRightEventConfigs> {\r\n constructor() {\r\n super()\r\n }\r\n\r\n private _createWrapListener = <K extends keyof IMediaRightEventConfigs>(callback: (...args: IMediaRightEventConfigs[K]) => void) => {\r\n return (...payload: any[]) => {\r\n try {\r\n callback(...(payload as IMediaRightEventConfigs[K]))\r\n } catch (error) {\r\n console.error('Error in Cart listener:', error)\r\n }\r\n }\r\n }\r\n\r\n subscribe<K extends keyof IMediaRightEventConfigs>(eventName: K, listener: (...args: IMediaRightEventConfigs[K]) => void, isTry: boolean = true) {\r\n const action = isTry ? this._createWrapListener<K>(listener) : listener\r\n super.addListener(eventName, action as any)\r\n return () => {\r\n super.removeListener(eventName, action as any)\r\n }\r\n }\r\n}\r\n\r\nexport function getEventStore() {\r\n if (typeof globalThis === 'undefined') return null\r\n\r\n if (typeof (globalThis as any).MediaRightEventStore === 'undefined') {\r\n ;(globalThis as any).MediaRightEventStore = new MediaRightEventStore()\r\n }\r\n const eventEmitter = (globalThis as any).MediaRightEventStore as MediaRightEventStore\r\n eventEmitter.setMaxListeners(50)\r\n return (globalThis as any).MediaRightEventStore as MediaRightEventStore\r\n}\r\n\r\nexport interface ICartStoreConfigs {\r\n localStorageKey?: string\r\n}\r\n\r\nexport class MfeCartStore {\r\n private configs: ICartStoreConfigs\r\n\r\n constructor(config: ICartStoreConfigs = {}) {\r\n this.configs = config\r\n if (!this.configs.localStorageKey) {\r\n this.configs.localStorageKey = 'cartGroups'\r\n }\r\n this.initialize()\r\n }\r\n\r\n initialize = () => {\r\n const eventStore = getEventStore()\r\n eventStore?.subscribe('requestState', () => {\r\n eventStore?.emit('stateChange', { groups: this.getState() })\r\n })\r\n }\r\n\r\n destroy = () => {\r\n const eventStore = getEventStore()\r\n eventStore?.removeAllListeners('requestState')\r\n }\r\n\r\n private emitStateChange(groups: Record<string, IMediaRightGroup>) {\r\n const eventStore = getEventStore()\r\n this.saveToLocalStorage(groups)\r\n eventStore?.emit('stateChange', { groups, options: { message: 'Cart updated' } })\r\n }\r\n\r\n // Group operations\r\n addGroup(group: Omit<IMediaRightGroup, 'createdAt' | 'items' | 'channels'>) {\r\n const groups = this.getState()\r\n const newGroup: IMediaRightGroup = {\r\n ...group,\r\n createdAt: Date.now(),\r\n items: [],\r\n channels: []\r\n }\r\n groups[group.id] = newGroup\r\n this.emitStateChange(groups)\r\n return this\r\n }\r\n\r\n updateGroup(groupId: string, updates: Partial<Pick<IMediaRightGroup, 'name' | 'items' | 'channels'>>) {\r\n const groups = this.getState()\r\n if (groups[groupId]) {\r\n groups[groupId] = { ...groups[groupId], ...updates }\r\n this.emitStateChange(groups)\r\n }\r\n return this\r\n }\r\n\r\n removeGroup(groupId: string) {\r\n const groups = this.getState()\r\n if (groups[groupId]) {\r\n delete groups[groupId]\r\n this.emitStateChange(groups)\r\n }\r\n return this\r\n }\r\n\r\n // Channel operations\r\n addChannel(groupId: string, channel: IMediaRightChannel) {\r\n const groups = this.getState()\r\n const group = groups[groupId]\r\n\r\n if (!group) {\r\n throw new Error(`Group ${groupId} not found`)\r\n }\r\n\r\n group.channels.push(channel)\r\n this.emitStateChange(groups)\r\n return this\r\n }\r\n\r\n updateChannel(groupId: string, channelIndex: number, updates: Partial<IMediaRightChannel>) {\r\n const groups = this.getState()\r\n const group = groups[groupId]\r\n\r\n if (!group || !group.channels[channelIndex]) return this\r\n\r\n group.channels[channelIndex] = { ...group.channels[channelIndex], ...updates }\r\n this.emitStateChange(groups)\r\n return this\r\n }\r\n\r\n removeChannel(groupId: string, channelIndex: number) {\r\n const groups = this.getState()\r\n const group = groups[groupId]\r\n\r\n if (!group) return this\r\n\r\n group.channels.splice(channelIndex, 1)\r\n this.emitStateChange(groups)\r\n return this\r\n }\r\n\r\n clearChannels(groupId: string) {\r\n const groups = this.getState()\r\n const group = groups[groupId]\r\n\r\n if (!group) return this\r\n\r\n group.channels = []\r\n this.emitStateChange(groups)\r\n return this\r\n }\r\n\r\n // Item operations\r\n addItem(item: IMediaRightItem) {\r\n const groups = this.getState()\r\n const group = groups[item.GroupId]\r\n\r\n if (!group) {\r\n throw new Error(`Group ${item.GroupId} not found`)\r\n }\r\n\r\n if (group.items.length >= mediaRightStoreOptions.MAX_ITEMS_PER_GROUP) {\r\n throw new Error(`Group ${item.GroupId} has reached maximum items limit (${mediaRightStoreOptions.MAX_ITEMS_PER_GROUP})`)\r\n }\r\n\r\n const existingItemIndex = group.items.findIndex((i) => i.ProductId === item.ProductId)\r\n if (existingItemIndex >= 0) {\r\n group.items[existingItemIndex] = item\r\n } else {\r\n group.items.push(item)\r\n }\r\n\r\n this.emitStateChange(groups)\r\n return this\r\n }\r\n\r\n updateItem(groupId: string, productId: string, updates: Partial<IMediaRightItem>) {\r\n const groups = this.getState()\r\n const group = groups[groupId]\r\n\r\n if (!group) return this\r\n\r\n const itemIndex = group.items.findIndex((i) => i.ProductId === productId)\r\n if (itemIndex >= 0) {\r\n group.items[itemIndex] = { ...group.items[itemIndex], ...updates }\r\n this.emitStateChange(groups)\r\n }\r\n return this\r\n }\r\n\r\n removeItem(groupId: string, productId: string) {\r\n const groups = this.getState()\r\n const group = groups[groupId]\r\n if (!group) return this\r\n\r\n group.items = group.items.filter((i) => i.ProductId !== productId)\r\n console.log(group.items)\r\n this.emitStateChange(groups)\r\n return this\r\n }\r\n\r\n clear() {\r\n this.emitStateChange({})\r\n return this\r\n }\r\n\r\n getState(): Record<string, IMediaRightGroup> {\r\n return this.loadFromLocalStorage() || {}\r\n }\r\n\r\n getGroups(): IMediaRightGroup[] {\r\n return Object.values(this.getState())\r\n }\r\n\r\n getGroup(groupId: string): IMediaRightGroup | undefined {\r\n return this.getState()[groupId]\r\n }\r\n\r\n private loadFromLocalStorage(): Record<string, IMediaRightGroup> | null {\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n const storedData = localStorage.getItem(this.configs.localStorageKey || 'cartGroups')\r\n if (storedData) {\r\n return JSON.parse(storedData)\r\n }\r\n }\r\n return null\r\n }\r\n\r\n private saveToLocalStorage(groups: Record<string, IMediaRightGroup>) {\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n if (this.configs.localStorageKey) {\r\n localStorage.setItem(this.configs.localStorageKey, JSON.stringify(groups))\r\n }\r\n }\r\n }\r\n}\r\n"],"names":["MediaRightEventStore","_this","_classCallCheck","_callSuper","this","_defineProperty","callback","apply","arguments","error","console","_inherits","EventEmitter","_createClass","key","value","eventName","listener","_this2","action","_createWrapListener","_superPropGet","getEventStore","globalThis","setMaxListeners","MfeCartStore","_this3","config","eventStore","subscribe","emit","groups","getState","removeAllListeners","configs","localStorageKey","initialize","saveToLocalStorage","options","message","group","newGroup","_objectSpread","createdAt","Date","now","items","channels","id","emitStateChange","groupId","updates","channel","Error","concat","push","channelIndex","splice","item","GroupId","length","mediaRightStoreOptions","MAX_ITEMS_PER_GROUP","existingItemIndex","findIndex","i","ProductId","productId","itemIndex","filter","log","loadFromLocalStorage","Object","values","localStorage","storedData","getItem","JSON","parse","setItem","stringify"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var _={MAX_ITEMS_PER_GROUP:100,MAX_NAME_GROUP:50,MAX_CHANNELS:20,CHANNEL_TYPES:["Youtube"]};export{_ as mediaRightStoreOptions};
2
+ //# sourceMappingURL=configs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configs.js","sources":["../../src/media-right/configs.ts"],"sourcesContent":["export const mediaRightStoreOptions = {\r\n MAX_ITEMS_PER_GROUP: 100,\r\n MAX_NAME_GROUP: 50,\r\n MAX_CHANNELS: 20,\r\n CHANNEL_TYPES: ['Youtube']\r\n}\r\n"],"names":["mediaRightStoreOptions","MAX_ITEMS_PER_GROUP","MAX_NAME_GROUP","MAX_CHANNELS","CHANNEL_TYPES"],"mappings":"AAAO,IAAMA,EAAyB,CACpCC,oBAAqB,IACrBC,eAAgB,GAChBC,aAAc,GACdC,cAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{slicedToArray as o,objectSpread2 as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as n,jsx as r}from"react/jsx-runtime";import{useState as t}from"react";import{createRoot as i}from"react-dom/client";import{Dialog as l,Box as m,DialogContent as a,Typography as d,DialogActions as u,Button as c}from"@mui/material";import{CollectionsList as p}from"./units.js";import{ModalHeader as s}from"./modal-header.js";import{generateGroupId as f}from"../helpers.js";import{NewCollectionButton as h,NewCollectionInput as v}from"./unit.control.js";var C=function(e){var i=e.open,f=e.onClose,C=e.onConfirm,b=e.groups,g=e.cartItem,x=t(null),j=o(x,2),I=j[0],y=j[1],k=t(!1),S=o(k,2),G=S[0],W=S[1],A=t(""),M=o(A,2),P=M[0],_=M[1],B=function(){y(null),W(!1),_(""),f()};return n(l,{open:i,onClose:B,maxWidth:"xs",fullWidth:!0,disableScrollLock:!0,keepMounted:!1,scroll:"paper",children:[r(s,{cartItem:g,onClose:B}),n(m,{component:"form",onSubmit:function(o){o.preventDefault(),G&&P.trim()?C(null,P.trim()):C(I||null)},children:[n(a,{children:[r(d,{variant:"subtitle1",sx:{mb:1,fontWeight:600},children:"Your Media Rights Package"}),G?r(v,{value:P,onChange:_}):r(h,{onClick:function(){y(null),W(!0)}}),r(p,{groups:b,selectedGroupId:I,onGroupSelect:function(o){y(o),W(!1)}})]}),n(u,{sx:{px:3,pb:3},children:[r(c,{onClick:B,variant:"outlined",type:"button",children:"Cancel"}),r(c,{type:"submit",variant:"contained",disabled:G?!P.trim():!I,sx:{minWidth:100},children:G?"Create & Add":I?"Add":"Save"})]})]})]})},b=function(o){var n=o.cartItem,t=o.groups,l=o.addGroup,m=o.addItem,a=document.createElement("div");document.body.appendChild(a);var d=i(a);d.render(r(C,{open:!0,onClose:function(){d.unmount(),document.body.removeChild(a)},onConfirm:function(o,r){if(n){var t=o;!o&&r&&(t=f(),l({id:t,name:r,channels:[]}));var i=e(e({},n),{},{GroupId:t||""});t&&m(i),d.unmount(),document.body.removeChild(a)}},groups:t,cartItem:n}))};export{C as GroupSelectorModal,b as showGroupSelectorModal};
2
+ //# sourceMappingURL=index.js.map