dinocollab-core 2.1.3 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{objectSpread2 as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o,jsxs as e}from"react/jsx-runtime";import{styled as t,Box as i,Breadcrumbs as l,Typography as n}from"@mui/material";import a from"@mui/icons-material/ArrowBackIos";var c=function(t){var i,c=null!==(i=t.value)&&void 0!==i?i:[];return o(l,{children:c.map((function(t,i){var l,c=!!t.onClick||!!t.url;return e(p,r(r({},(l=t).propsGetter?l.propsGetter():l.url?{component:"a",href:l.url}:{}),{},{onClick:t.onClick?function(r){return function(r,o){r.preventDefault(),r.stopPropagation(),o.onClick&&o.onClick(r)}(r,t)}:void 0,className:c?"clickable":"",children:[i<1&&o(a,{sx:{fontSize:"16px",mb:"3px",color:"#000"}}),o(n,{variant:"subtitle1",sx:{fontWeight:600},noWrap:!0,children:o("span",{children:t.label})})]}),"key"+i)}))})},p=t(i)({display:"flex",alignItems:"center",textDecoration:"none","&.clickable":{cursor:"pointer"},"& .MuiTypography-root":{color:"var(--color-title)"},"&.clickable:hover .MuiTypography-root":{textDecoration:"underline"}});export{c as default};
1
+ import{objectSpread2 as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o,jsxs as e}from"react/jsx-runtime";import{styled as t,Box as n,Breadcrumbs as i,Typography as l}from"@mui/material";import a from"@mui/icons-material/ArrowBackIos";var c=function(t){var n,c=null!==(n=t.value)&&void 0!==n?n:[];return o(i,{children:c.map((function(t,n){var i,c,p=!!t.onClick||!!t.url;return e(u,r(r({},null!==(c=(i=t).props)&&void 0!==c?c:i.url?{component:"a",href:i.url}:{}),{},{onClick:t.onClick?function(r){return function(r,o){r.preventDefault(),r.stopPropagation(),o.onClick&&o.onClick(r)}(r,t)}:void 0,className:p?"clickable":"",children:[n<1&&o(a,{fontSize:"small"}),o(l,{variant:"subtitle1",noWrap:!0,children:o("span",{children:t.label})})]}),"key"+n)}))})},u=t(n)((function(r){var o=r.theme;return{display:"flex",alignItems:"center",color:"var(--color-title, ".concat(o.palette.text.primary,")"),".MuiTypography-root":{color:"currentColor",fontWeight:600},".MuiSvgIcon-root":{color:"currentColor",fontSize:o.typography.pxToRem(16),marginRight:o.spacing(.5)},"&[href]":{textDecoration:"none",cursor:"pointer","&:hover":{textDecoration:"underline",color:"var(--color-title-hover, ".concat(o.palette.primary.main,")")}}}}));export{c as Breadcrumbs,c as default};
2
2
  //# sourceMappingURL=breadcrumbs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.js","sources":["../../src/components/breadcrumbs.tsx"],"sourcesContent":["import React, { FC } from 'react'\r\nimport { Box, Breadcrumbs as MUIBreadcrumbs, styled, Typography, TypographyProps } from '@mui/material'\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'\r\n\r\nexport interface IBreadcrumbConfig {\r\n label: string\r\n url?: string\r\n propsGetter?: () => TypographyProps\r\n onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\r\n}\r\n\r\nexport interface IBreadcrumbsProps {\r\n value?: IBreadcrumbConfig[]\r\n}\r\n\r\nconst Breadcrumbs: FC<IBreadcrumbsProps> = (props) => {\r\n const list = props.value ?? []\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>, x: IBreadcrumbConfig) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n x.onClick && x.onClick(e)\r\n }\r\n\r\n const getItemProps = (item: IBreadcrumbConfig): TypographyProps => {\r\n if (item.propsGetter) return item.propsGetter()\r\n return item.url ? ({ component: 'a', href: item.url } as TypographyProps) : {}\r\n }\r\n\r\n return (\r\n <MUIBreadcrumbs>\r\n {list.map((x, i) => {\r\n const isClick = !!x.onClick || !!x.url\r\n return (\r\n <WrapTypography\r\n key={'key' + i}\r\n {...getItemProps(x)}\r\n onClick={x.onClick ? (e: any) => handleClick(e, x) : undefined}\r\n className={isClick ? 'clickable' : ''}\r\n >\r\n {i < 1 && <ArrowBackIosIcon sx={{ fontSize: '16px', mb: '3px', color: '#000' }} />}\r\n <Typography variant='subtitle1' sx={{ fontWeight: 600 }} noWrap>\r\n <span>{x.label}</span>\r\n </Typography>\r\n </WrapTypography>\r\n )\r\n })}\r\n </MUIBreadcrumbs>\r\n )\r\n}\r\nexport default Breadcrumbs\r\n\r\nconst WrapTypography = styled(Box)({\r\n display: 'flex',\r\n alignItems: 'center',\r\n textDecoration: 'none',\r\n '&.clickable': {\r\n cursor: 'pointer'\r\n },\r\n '& .MuiTypography-root': {\r\n color: 'var(--color-title)'\r\n },\r\n '&.clickable:hover .MuiTypography-root': {\r\n textDecoration: 'underline'\r\n }\r\n})\r\n"],"names":["Breadcrumbs","props","_props$value","list","value","_jsx","MUIBreadcrumbs","children","map","x","i","item","isClick","onClick","url","_jsxs","WrapTypography","_objectSpread","getItemProps","propsGetter","component","href","e","preventDefault","stopPropagation","handleClick","undefined","className","ArrowBackIosIcon","sx","fontSize","mb","color","Typography","variant","fontWeight","noWrap","label","styled","Box","display","alignItems","textDecoration","cursor"],"mappings":"4PAeA,IAAMA,EAAqC,SAACC,GAAS,IAAAC,EAC7CC,EAAkB,QAAdD,EAAGD,EAAMG,aAAK,IAAAF,EAAAA,EAAI,GAa5B,OACEG,EAACC,EAAc,CAAAC,SACZJ,EAAKK,KAAI,SAACC,EAAGC,GACZ,IARgBC,EAQVC,IAAYH,EAAEI,WAAaJ,EAAEK,IACnC,OACEC,EAACC,EAAcC,EAAAA,EAETC,CAAAA,GAZQP,EAYKF,GAXhBU,YAAoBR,EAAKQ,cAC3BR,EAAKG,IAAO,CAAEM,UAAW,IAAKC,KAAMV,EAAKG,KAA4B,CAAE,GAUnD,GAAA,CACnBD,QAASJ,EAAEI,QAAU,SAACS,GAAM,OAnBlB,SAACA,EAAiDb,GACpEa,EAAEC,iBACFD,EAAEE,kBACFf,EAAEI,SAAWJ,EAAEI,QAAQS,EACxB,CAe0CG,CAAYH,EAAGb,EAAE,OAAGiB,EACrDC,UAAWf,EAAU,YAAc,GAAEL,SAAA,CAEpCG,EAAI,GAAKL,EAACuB,EAAgB,CAACC,GAAI,CAAEC,SAAU,OAAQC,GAAI,MAAOC,MAAO,UACtE3B,EAAC4B,EAAU,CAACC,QAAQ,YAAYL,GAAI,CAAEM,WAAY,KAAOC,QACvD,EAAA7B,SAAAF,EAAA,OAAA,CAAAE,SAAOE,EAAE4B,aAPN,MAAQ3B,EAWlB,KAGP,EAGMM,EAAiBsB,EAAOC,EAAPD,CAAY,CACjCE,QAAS,OACTC,WAAY,SACZC,eAAgB,OAChB,cAAe,CACbC,OAAQ,WAEV,wBAAyB,CACvBX,MAAO,sBAET,wCAAyC,CACvCU,eAAgB"}
1
+ {"version":3,"file":"breadcrumbs.js","sources":["../../src/components/breadcrumbs.tsx"],"sourcesContent":["import React, { FC } from 'react'\r\nimport { Box, Breadcrumbs as MUIBreadcrumbs, styled, Typography, TypographyProps } from '@mui/material'\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'\r\nimport { fontSize } from '@mui/system'\r\n\r\nexport interface IBreadcrumbConfig {\r\n label: string\r\n url?: string\r\n props?: TypographyProps & { [key: string]: any }\r\n onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\r\n}\r\n\r\nexport interface IBreadcrumbsProps {\r\n value?: IBreadcrumbConfig[]\r\n}\r\n\r\nexport const Breadcrumbs: FC<IBreadcrumbsProps> = (props) => {\r\n const list = props.value ?? []\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>, x: IBreadcrumbConfig) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n x.onClick && x.onClick(e)\r\n }\r\n\r\n const getItemProps = (item: IBreadcrumbConfig): TypographyProps => {\r\n return item.props ?? (item.url ? ({ component: 'a', href: item.url } as TypographyProps) : {})\r\n }\r\n\r\n return (\r\n <MUIBreadcrumbs>\r\n {list.map((x, i) => {\r\n const isClick = !!x.onClick || !!x.url\r\n return (\r\n <WrapTypography\r\n key={'key' + i}\r\n {...getItemProps(x)}\r\n onClick={x.onClick ? (e: any) => handleClick(e, x) : undefined}\r\n className={isClick ? 'clickable' : ''}\r\n >\r\n {i < 1 && <ArrowBackIosIcon fontSize='small' />}\r\n <Typography variant='subtitle1' noWrap>\r\n <span>{x.label}</span>\r\n </Typography>\r\n </WrapTypography>\r\n )\r\n })}\r\n </MUIBreadcrumbs>\r\n )\r\n}\r\nexport default Breadcrumbs\r\n\r\nconst WrapTypography = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: `var(--color-title, ${theme.palette.text.primary})`,\r\n '.MuiTypography-root': {\r\n color: 'currentColor',\r\n fontWeight: 600\r\n },\r\n '.MuiSvgIcon-root': {\r\n color: 'currentColor',\r\n fontSize: theme.typography.pxToRem(16),\r\n marginRight: theme.spacing(0.5)\r\n },\r\n '&[href]': {\r\n textDecoration: 'none',\r\n cursor: 'pointer',\r\n '&:hover': {\r\n textDecoration: 'underline',\r\n color: `var(--color-title-hover, ${theme.palette.primary.main})`\r\n }\r\n }\r\n}))\r\n"],"names":["Breadcrumbs","props","_props$value","list","value","_jsx","MUIBreadcrumbs","children","map","x","i","item","_item$props","isClick","onClick","url","_jsxs","WrapTypography","_objectSpread","getItemProps","component","href","e","preventDefault","stopPropagation","handleClick","undefined","className","ArrowBackIosIcon","fontSize","Typography","variant","noWrap","label","styled","Box","_ref","theme","display","alignItems","color","concat","palette","text","primary","fontWeight","typography","pxToRem","marginRight","spacing","textDecoration","cursor","main"],"mappings":"gQAgBaA,EAAqC,SAACC,GAAS,IAAAC,EACpDC,EAAkB,QAAdD,EAAGD,EAAMG,aAAK,IAAAF,EAAAA,EAAI,GAY5B,OACEG,EAACC,EAAc,CAAAC,SACZJ,EAAKK,KAAI,SAACC,EAAGC,GACZ,IAPgBC,EAA4CC,EAOtDC,IAAYJ,EAAEK,WAAaL,EAAEM,IACnC,OACEC,EAACC,EAAcC,EAAAA,EAETC,CAAAA,EAVK,QAAjBP,GADoBD,EAWKF,GAVbR,aAAK,IAAAW,EAAAA,EAAKD,EAAKI,IAAO,CAAEK,UAAW,IAAKC,KAAMV,EAAKI,KAA4B,CAAE,GAUlE,GAAA,CACnBD,QAASL,EAAEK,QAAU,SAACQ,GAAM,OAlBlB,SAACA,EAAiDb,GACpEa,EAAEC,iBACFD,EAAEE,kBACFf,EAAEK,SAAWL,EAAEK,QAAQQ,EACxB,CAc0CG,CAAYH,EAAGb,EAAE,OAAGiB,EACrDC,UAAWd,EAAU,YAAc,GAElCN,SAAA,CAAAG,EAAI,GAAKL,EAACuB,GAAiBC,SAAS,UACrCxB,EAACyB,EAAW,CAAAC,QAAQ,YAAYC,QAAM,EAAAzB,SACpCF,mBAAOI,EAAEwB,aAPN,MAAQvB,EAWlB,KAGP,EAGMO,EAAiBiB,EAAOC,EAAPD,EAAY,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CACjDC,QAAS,OACTC,WAAY,SACZC,MAAK,sBAAAC,OAAwBJ,EAAMK,QAAQC,KAAKC,QAAU,KAC1D,sBAAuB,CACrBJ,MAAO,eACPK,WAAY,KAEd,mBAAoB,CAClBL,MAAO,eACPX,SAAUQ,EAAMS,WAAWC,QAAQ,IACnCC,YAAaX,EAAMY,QAAQ,KAE7B,UAAW,CACTC,eAAgB,OAChBC,OAAQ,UACR,UAAW,CACTD,eAAgB,YAChBV,MAAK,4BAAAC,OAA8BJ,EAAMK,QAAQE,QAAQQ,KAAI,OAGlE"}
@@ -1,2 +1,2 @@
1
- export{default as Breadcrumbs}from"./breadcrumbs.js";export{LoadingButton}from"./buttons.js";export{CopyToClipboard}from"./copy-to-clipboard.js";export{default as CreateMultiSelectDropdown}from"./create.multi-select-dropdown.js";export{default as ImageWithFallback}from"./image-with-fallback.js";export{default as HelpTooltip,HelpTooltipWrap}from"./help-tooltip.js";export{default as TextEditorPreview}from"./text-editor.preview.js";export{default as TextEditor,textEditorClasses}from"./text-editor.js";
1
+ export{Breadcrumbs}from"./breadcrumbs.js";export{LoadingButton}from"./buttons.js";export{CopyToClipboard}from"./copy-to-clipboard.js";export{default as CreateMultiSelectDropdown}from"./create.multi-select-dropdown.js";export{default as ImageWithFallback}from"./image-with-fallback.js";export{default as HelpTooltip,HelpTooltipWrap}from"./help-tooltip.js";export{default as TextEditorPreview}from"./text-editor.preview.js";export{default as TextEditor,textEditorClasses}from"./text-editor.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as t,superPropGet as n,typeof as i,objectWithoutProperties as r,objectSpread2 as o,classCallCheck as a,callSuper as s,defineProperty as u}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as c,Fragment as l}from"react/jsx-runtime";import v from"events";import{useEffect as f}from"react";var p=["onClick","routeKey"],g=function(){function i(){var e;return a(this,i),e=s(this,i),u(e,"_createWrapListener",(function(e){return function(){try{e.apply(void 0,arguments)}catch(e){console.error("Error in MfeBridge listener:",e)}}})),e}return e(i,v),t(i,[{key:"subscribe",value:function(e,t){var r=this,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?this._createWrapListener(t):t;return n(i,"addListener",this)([e,o]),function(){n(i,"removeListener",r)([e,o])}}}])}();function d(){if(void 0===("undefined"==typeof globalThis?"undefined":i(globalThis)))return null;void 0===globalThis.MfeNavigationEventStore&&(globalThis.MfeNavigationEventStore=new g);var e=globalThis.MfeNavigationEventStore;return e.setMaxListeners(50),e}var h=function(e){return f((function(){var t=d();if(t){var n=t.subscribe("navigation",(function(t){console.log("Navigation event received:",t),e.navigation&&e.navigation(t.routeKey)}));return function(){n()}}}),[]),c(l,{})},m=function(e){var t=e.onClick,n=e.routeKey,i=r(e,p);return c("a",o(o({},i),{},{onClick:function(e){t&&t(e);var i=d();i&&n&&(e.preventDefault(),e.stopPropagation(),i.emit("navigation",{routeKey:n,options:{message:"Link clicked"}}))}}))},b=function(e){var t=d();t&&t.emit("navigation",{routeKey:e,options:{message:"Navigating to ".concat(e)}})};export{m as MfeLink,g as MfeNavigationEventStore,h as MfeNavigationProvider,d as getMfeNavigationEventStore,b as mfeNavigation};
1
+ import{inherits as e,createClass as t,superPropGet as r,typeof as n,objectWithoutProperties as i,objectSpread2 as o,classCallCheck as a,callSuper as s,defineProperty as u}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as c,Fragment as l}from"react/jsx-runtime";import f from"events";import{forwardRef as v,useEffect as p}from"react";var g=["onClick","routeKey"],h=function(){function n(){var e;return a(this,n),e=s(this,n),u(e,"_createWrapListener",(function(e){return function(){try{e.apply(void 0,arguments)}catch(e){console.error("Error in MfeBridge listener:",e)}}})),e}return e(n,f),t(n,[{key:"subscribe",value:function(e,t){var i=this,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?this._createWrapListener(t):t;return r(n,"addListener",this)([e,o]),function(){r(n,"removeListener",i)([e,o])}}}])}();function d(){if(void 0===("undefined"==typeof globalThis?"undefined":n(globalThis)))return null;void 0===globalThis.MfeNavigationEventStore&&(globalThis.MfeNavigationEventStore=new h);var e=globalThis.MfeNavigationEventStore;return e.setMaxListeners(50),e}var m=function(e){return p((function(){var t=d();if(t){var r=t.subscribe("navigation",(function(t){e.navigation&&e.navigation(t.routeKey)}));return function(){r()}}}),[]),c(l,{})},b=v((function(e,t){var r=e.onClick,n=e.routeKey,a=i(e,g);return c("a",o(o({},a),{},{ref:t,onClick:function(e){r&&r(e);var t=d();t&&n&&(e.preventDefault(),e.stopPropagation(),t.emit("navigation",{routeKey:n,options:{message:"Link clicked"}}))}}))})),y=function(e){var t=d();t&&t.emit("navigation",{routeKey:e,options:{message:"Navigating to ".concat(e)}})};export{b as MfeLink,h as MfeNavigationEventStore,m as MfeNavigationProvider,d as getMfeNavigationEventStore,y as mfeNavigation};
2
2
  //# sourceMappingURL=navigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sources":["../../src/mfe-shared/navigation.tsx"],"sourcesContent":["import EventEmitter from 'events'\r\nimport { FC, useEffect } from 'react'\r\n\r\ninterface IEventOptions {\r\n message?: string\r\n}\r\n\r\nexport interface IMfeNavigationEventConfigs {\r\n navigation: [{ routeKey?: string; options?: IEventOptions }]\r\n}\r\n\r\nexport class MfeNavigationEventStore extends EventEmitter<IMfeNavigationEventConfigs> {\r\n constructor() {\r\n super()\r\n }\r\n /**\r\n * Subscribe to a specific channel\r\n * @param channel The channel to subscribe to\r\n * @param callback Function to call when an event occurs on this channel\r\n * @returns Unsubscribe function to remove the event listener\r\n */\r\n _createWrapListener = (callback: (...payload: any[]) => void) => {\r\n return (...payload: any[]) => {\r\n try {\r\n callback(...payload)\r\n } catch (error) {\r\n console.error('Error in MfeBridge listener:', error)\r\n }\r\n }\r\n }\r\n subscribe<K extends keyof IMfeNavigationEventConfigs>(\r\n eventName: K,\r\n listener: K extends keyof IMfeNavigationEventConfigs\r\n ? IMfeNavigationEventConfigs[K] extends unknown[]\r\n ? (...args: IMfeNavigationEventConfigs[K]) => void\r\n : never\r\n : never,\r\n isTry: boolean = true\r\n ) {\r\n const action = isTry ? this._createWrapListener(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 getMfeNavigationEventStore() {\r\n if (typeof globalThis === undefined) return null\r\n\r\n if (typeof (globalThis as any).MfeNavigationEventStore === 'undefined') {\r\n // If MfeNavigationEventStore is not defined globally, define it\r\n // This allows it to be used in other parts of the application\r\n // without needing to import it explicitly\r\n ;(globalThis as any).MfeNavigationEventStore = new MfeNavigationEventStore()\r\n }\r\n const eventEmitter = (globalThis as any).MfeNavigationEventStore as MfeNavigationEventStore\r\n eventEmitter.setMaxListeners(50)\r\n return eventEmitter\r\n}\r\n\r\ntype INavigationFunction = (routeKey?: string) => void\r\n\r\nexport interface IMfeNavigationProviderProps {\r\n navigation?: INavigationFunction\r\n}\r\n\r\nexport const MfeNavigationProvider: FC<IMfeNavigationProviderProps> = (props) => {\r\n useEffect(() => {\r\n const eventStore = getMfeNavigationEventStore()\r\n if (!eventStore) return\r\n\r\n const unsubscribe = eventStore.subscribe('navigation', (payload) => {\r\n console.log('Navigation event received:', payload)\r\n if (props.navigation) {\r\n props.navigation(payload.routeKey)\r\n }\r\n })\r\n\r\n return () => {\r\n unsubscribe()\r\n }\r\n }, [])\r\n\r\n return <></>\r\n}\r\n\r\nexport interface IMfeLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\r\n routeKey?: string\r\n}\r\n\r\nexport const MfeLink: FC<IMfeLinkProps> = ({ onClick, routeKey, ...props }) => {\r\n const handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\r\n if (onClick) {\r\n onClick(event)\r\n }\r\n const eventStore = getMfeNavigationEventStore()\r\n if (eventStore && !!routeKey) {\r\n event.preventDefault() // Prevent default link behavior\r\n event.stopPropagation() // Stop the event from bubbling up\r\n eventStore.emit('navigation', { routeKey: routeKey, options: { message: 'Link clicked' } })\r\n }\r\n }\r\n return <a {...props} onClick={handleClick} />\r\n}\r\n\r\nexport const mfeNavigation = (routeKey: string) => {\r\n const eventStore = getMfeNavigationEventStore()\r\n if (eventStore) {\r\n eventStore.emit('navigation', { routeKey: routeKey, options: { message: `Navigating to ${routeKey}` } })\r\n }\r\n}\r\n"],"names":["MfeNavigationEventStore","_this","_classCallCheck","_callSuper","this","_defineProperty","callback","apply","arguments","error","console","_inherits","EventEmitter","_createClass","key","value","eventName","listener","_this2","action","_createWrapListener","_superPropGet","getMfeNavigationEventStore","undefined","globalThis","_typeof","eventEmitter","setMaxListeners","MfeNavigationProvider","props","useEffect","eventStore","unsubscribe","subscribe","payload","log","navigation","routeKey","_jsx","MfeLink","_ref","onClick","_objectWithoutProperties","_excluded","event","preventDefault","stopPropagation","emit","options","message","mfeNavigation","concat"],"mappings":"qWAWaA,aACX,SAAAA,IAAA,IAAAC,EAiBC,OAjBDC,OAAAF,GACEC,EAAAE,EAAAC,KAAAJ,GAEFK,EAAAJ,EAMsB,uBAAA,SAACK,GACrB,OAAO,WACL,IACEA,EAAQC,WAAAC,EAAAA,UACT,CAAC,MAAOC,GACPC,QAAQD,MAAM,+BAAgCA,EAC/C,CACF,KACFR,CAfD,CAAC,OAAAU,EAAAX,EAH0CY,GAG1CC,EAAAb,EAAA,CAAA,CAAAc,IAAA,YAAAC,MAgBD,SACEC,EACAC,GAKqB,IAAAC,EAAAd,KAEfe,6DAAiBf,KAAKgB,oBAAoBH,GAAYA,EAE5D,OADAI,EAAArB,EAAkBgB,cAAAA,KAAlBK,CAAkBL,CAAAA,EAAWG,IACtB,WACLE,EAAArB,EAAA,iBAAAkB,EAAAG,CAAqBL,CAAAA,EAAWG,GACjC,CACH,IAAC,aAGaG,IACd,QAA0BC,KAAL,oBAAVC,WAAU,YAAAC,EAAVD,aAA0B,OAAO,UAEe,IAA/CA,WAAmBxB,0BAI3BwB,WAAmBxB,wBAA0B,IAAIA,GAErD,IAAM0B,EAAgBF,WAAmBxB,wBAEzC,OADA0B,EAAaC,gBAAgB,IACtBD,CACT,KAQaE,EAAyD,SAACC,GAiBrE,OAhBAC,GAAU,WACR,IAAMC,EAAaT,IACnB,GAAKS,EAAL,CAEA,IAAMC,EAAcD,EAAWE,UAAU,cAAc,SAACC,GACtDxB,QAAQyB,IAAI,6BAA8BD,GACtCL,EAAMO,YACRP,EAAMO,WAAWF,EAAQG,SAE7B,IAEA,OAAO,WACLL,GACD,CAXgB,CAYlB,GAAE,IAEIM,OACT,EAMaC,EAA6B,SAAtBC,GAA0D,IAAjCC,EAAOD,EAAPC,QAASJ,EAAQG,EAARH,SAAaR,EAAKa,EAAAF,EAAAG,GAYtE,OAAOL,aAAOT,GAAK,GAAA,CAAEY,QAXD,SAACG,GACfH,GACFA,EAAQG,GAEV,IAAMb,EAAaT,IACfS,GAAgBM,IAClBO,EAAMC,iBACND,EAAME,kBACNf,EAAWgB,KAAK,aAAc,CAAEV,SAAUA,EAAUW,QAAS,CAAEC,QAAS,kBAE3E,IAEH,EAEaC,EAAgB,SAACb,GAC5B,IAAMN,EAAaT,IACfS,GACFA,EAAWgB,KAAK,aAAc,CAAEV,SAAUA,EAAUW,QAAS,CAAEC,QAAO,iBAAAE,OAAmBd,KAE7F"}
1
+ {"version":3,"file":"navigation.js","sources":["../../src/mfe-shared/navigation.tsx"],"sourcesContent":["import EventEmitter from 'events'\r\nimport { FC, forwardRef, useEffect } from 'react'\r\n\r\ninterface IEventOptions {\r\n message?: string\r\n}\r\n\r\nexport interface IMfeNavigationEventConfigs {\r\n navigation: [{ routeKey?: string; options?: IEventOptions }]\r\n}\r\n\r\nexport class MfeNavigationEventStore extends EventEmitter<IMfeNavigationEventConfigs> {\r\n constructor() {\r\n super()\r\n }\r\n /**\r\n * Subscribe to a specific channel\r\n * @param channel The channel to subscribe to\r\n * @param callback Function to call when an event occurs on this channel\r\n * @returns Unsubscribe function to remove the event listener\r\n */\r\n _createWrapListener = (callback: (...payload: any[]) => void) => {\r\n return (...payload: any[]) => {\r\n try {\r\n callback(...payload)\r\n } catch (error) {\r\n console.error('Error in MfeBridge listener:', error)\r\n }\r\n }\r\n }\r\n subscribe<K extends keyof IMfeNavigationEventConfigs>(\r\n eventName: K,\r\n listener: K extends keyof IMfeNavigationEventConfigs\r\n ? IMfeNavigationEventConfigs[K] extends unknown[]\r\n ? (...args: IMfeNavigationEventConfigs[K]) => void\r\n : never\r\n : never,\r\n isTry: boolean = true\r\n ) {\r\n const action = isTry ? this._createWrapListener(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 getMfeNavigationEventStore() {\r\n if (typeof globalThis === undefined) return null\r\n\r\n if (typeof (globalThis as any).MfeNavigationEventStore === 'undefined') {\r\n // If MfeNavigationEventStore is not defined globally, define it\r\n // This allows it to be used in other parts of the application\r\n // without needing to import it explicitly\r\n ;(globalThis as any).MfeNavigationEventStore = new MfeNavigationEventStore()\r\n }\r\n const eventEmitter = (globalThis as any).MfeNavigationEventStore as MfeNavigationEventStore\r\n eventEmitter.setMaxListeners(50)\r\n return eventEmitter\r\n}\r\n\r\ntype INavigationFunction = (routeKey?: string) => void\r\n\r\nexport interface IMfeNavigationProviderProps {\r\n navigation?: INavigationFunction\r\n}\r\n\r\nexport const MfeNavigationProvider: FC<IMfeNavigationProviderProps> = (props) => {\r\n useEffect(() => {\r\n const eventStore = getMfeNavigationEventStore()\r\n if (!eventStore) return\r\n\r\n const unsubscribe = eventStore.subscribe('navigation', (payload) => {\r\n if (props.navigation) {\r\n props.navigation(payload.routeKey)\r\n }\r\n })\r\n\r\n return () => {\r\n unsubscribe()\r\n }\r\n }, [])\r\n\r\n return <></>\r\n}\r\n\r\nexport interface IMfeLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\r\n routeKey?: string\r\n}\r\n\r\nexport const MfeLink = forwardRef<HTMLAnchorElement, IMfeLinkProps>(({ onClick, routeKey, ...props }, ref) => {\r\n const handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\r\n if (onClick) {\r\n onClick(event)\r\n }\r\n const eventStore = getMfeNavigationEventStore()\r\n if (eventStore && !!routeKey) {\r\n event.preventDefault() // Prevent default link behavior\r\n event.stopPropagation() // Stop the event from bubbling up\r\n eventStore.emit('navigation', { routeKey: routeKey, options: { message: 'Link clicked' } })\r\n }\r\n }\r\n return <a {...props} ref={ref} onClick={handleClick} />\r\n})\r\n\r\nexport const mfeNavigation = (routeKey: string) => {\r\n const eventStore = getMfeNavigationEventStore()\r\n if (eventStore) {\r\n eventStore.emit('navigation', { routeKey: routeKey, options: { message: `Navigating to ${routeKey}` } })\r\n }\r\n}\r\n"],"names":["MfeNavigationEventStore","_this","_classCallCheck","_callSuper","this","_defineProperty","callback","apply","arguments","error","console","_inherits","EventEmitter","_createClass","key","value","eventName","listener","_this2","action","_createWrapListener","_superPropGet","getMfeNavigationEventStore","undefined","globalThis","_typeof","eventEmitter","setMaxListeners","MfeNavigationProvider","props","useEffect","eventStore","unsubscribe","subscribe","payload","navigation","routeKey","_jsx","MfeLink","forwardRef","_ref","ref","onClick","_objectWithoutProperties","_excluded","_objectSpread","event","preventDefault","stopPropagation","emit","options","message","mfeNavigation","concat"],"mappings":"qXAWaA,aACX,SAAAA,IAAA,IAAAC,EAiBC,OAjBDC,OAAAF,GACEC,EAAAE,EAAAC,KAAAJ,GAEFK,EAAAJ,EAMsB,uBAAA,SAACK,GACrB,OAAO,WACL,IACEA,EAAQC,WAAAC,EAAAA,UACT,CAAC,MAAOC,GACPC,QAAQD,MAAM,+BAAgCA,EAC/C,CACF,KACFR,CAfD,CAAC,OAAAU,EAAAX,EAH0CY,GAG1CC,EAAAb,EAAA,CAAA,CAAAc,IAAA,YAAAC,MAgBD,SACEC,EACAC,GAKqB,IAAAC,EAAAd,KAEfe,6DAAiBf,KAAKgB,oBAAoBH,GAAYA,EAE5D,OADAI,EAAArB,EAAkBgB,cAAAA,KAAlBK,CAAkBL,CAAAA,EAAWG,IACtB,WACLE,EAAArB,EAAA,iBAAAkB,EAAAG,CAAqBL,CAAAA,EAAWG,GACjC,CACH,IAAC,aAGaG,IACd,QAA0BC,KAAL,oBAAVC,WAAU,YAAAC,EAAVD,aAA0B,OAAO,UAEe,IAA/CA,WAAmBxB,0BAI3BwB,WAAmBxB,wBAA0B,IAAIA,GAErD,IAAM0B,EAAgBF,WAAmBxB,wBAEzC,OADA0B,EAAaC,gBAAgB,IACtBD,CACT,KAQaE,EAAyD,SAACC,GAgBrE,OAfAC,GAAU,WACR,IAAMC,EAAaT,IACnB,GAAKS,EAAL,CAEA,IAAMC,EAAcD,EAAWE,UAAU,cAAc,SAACC,GAClDL,EAAMM,YACRN,EAAMM,WAAWD,EAAQE,SAE7B,IAEA,OAAO,WACLJ,GACD,CAVgB,CAWlB,GAAE,IAEIK,OACT,EAMaC,EAAUC,GAA6C,SAAAC,EAAkCC,GAAO,IAAtCC,EAAOF,EAAPE,QAASN,EAAQI,EAARJ,SAAaP,EAAKc,EAAAH,EAAAI,GAYhG,OAAOP,EAAA,IAAAQ,EAAAA,KAAOhB,GAAK,GAAA,CAAEY,IAAKA,EAAKC,QAXX,SAACI,GACfJ,GACFA,EAAQI,GAEV,IAAMf,EAAaT,IACfS,GAAgBK,IAClBU,EAAMC,iBACND,EAAME,kBACNjB,EAAWkB,KAAK,aAAc,CAAEb,SAAUA,EAAUc,QAAS,CAAEC,QAAS,kBAE3E,IAEH,IAEaC,EAAgB,SAAChB,GAC5B,IAAML,EAAaT,IACfS,GACFA,EAAWkB,KAAK,aAAc,CAAEb,SAAUA,EAAUc,QAAS,CAAEC,QAAO,iBAAAE,OAAmBjB,KAE7F"}
@@ -1,2 +1,2 @@
1
- import{createClass as r,classCallCheck as t,defineProperty as e,objectSpread2 as o,objectWithoutProperties as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a}from"react/jsx-runtime";import i from"dayjs";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{MapTableBaseContext as l}from"./context.js";import{BtnFormDetail as u,BtnDetail as s}from"./ui.buttons.js";import{CreateStatusCell as c,CellChips as m,CellBase as v,CellImageSmall as f,CellDate as p}from"./ui.units.js";import h from"./toolbar-pannel.js";import d from"./helpers.js";import{CreateTable as g}from"./create.table.js";import y from"./create.action-row.js";import j from"../components/breadcrumbs.js";var b=["imageUrl","valueFormatter","typographyProps","typographyPropsGetter"],C=["formatString"],S="MM/DD/YYYY HH:mm",w=new(r((function r(){var w=this;t(this,r),e(this,"createTable",g),e(this,"createActionRow",y),e(this,"setUrlQuery",d.setUrlQuery),e(this,"getUrlQuery",d.getUrlQuery),e(this,"mapContext",l),e(this,"ToolbarPannel",h),e(this,"createToolbar",(function(r){return function(t){return a(h,o({},o(o({},t),r)))}})),e(this,"BtnFormDetail",u),e(this,"BtnDetail",s),e(this,"createBreadcrumbConfigs",(function(r){return r})),e(this,"createBreadcrumbs",(function(r){return function(){return a(j,{value:r})}})),e(this,"createStatusCell",c),e(this,"formatterDate",(function(r,t){var e,o,n=null!==(e=null==t?void 0:t.formatString)&&void 0!==e?e:S,a=null!==(o=null==t?void 0:t.showRelative)&&void 0!==o&&o;try{if(!r)return"";var l=i(r),u=l.format(n);return a?"".concat(u," (").concat(i().to(l),")"):u}catch(r){return""}})),e(this,"valueFormatterDate",(function(r){return function(t){return w.formatterDate(t.value,r)}})),e(this,"renderCellChips",(function(r){return function(t){var e;return a(m,o(o({},r),{},{value:null!==(e=t.value)&&void 0!==e?e:null==r?void 0:r.value}))}})),e(this,"renderCellStatus",(function(r,t){var e=c(r,o({sx:{minWidth:"90px"}},t));return function(r){return a(e,{value:r.value})}})),e(this,"renderCellBase",(function(r){return function(t){var e,i=null!=r?r:{},l=i.imageUrl,u=i.valueFormatter,s=i.typographyProps,c=i.typographyPropsGetter,m=n(i,b),f=u?u(t.value,t.row):void 0,p=l?l(t.value,t.row):void 0,h=null!=r&&r.renderIcon?r.renderIcon(t.value,t.row):null!==(e=null==r?void 0:r.icon)&&void 0!==e?e:void 0,d=c?c(t.value,t.row):s;return a(v,o(o({value:t.value,valueFormatted:f},m),{},{imageUrl:p,icon:h,typographyProps:d}))}})),e(this,"renderCellImage",(function(r,t){return function(e){var o;return a(f,{value:e.value,imageUri:null===(o=r(e.row))||void 0===o?void 0:o.toString(),fallbackSrc:null==t?void 0:t.fallbackSrc})}})),e(this,"renderCellDate",(function(r){return function(t){var e=null!=r?r:{},i=e.formatString,l=n(e,C);return a(p,o(o({},l),{},{value:t.value,formatString:null!=i?i:S}))}}))})));export{w as default};
1
+ import{createClass as r,classCallCheck as t,defineProperty as e,objectSpread2 as o,objectWithoutProperties as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a}from"react/jsx-runtime";import i from"dayjs";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{MapTableBaseContext as l}from"./context.js";import{BtnFormDetail as u,BtnDetail as s}from"./ui.buttons.js";import{CreateStatusCell as c,CellChips as m,CellBase as v,CellImageSmall as f,CellDate as p}from"./ui.units.js";import h from"./toolbar-pannel.js";import d from"./helpers.js";import{CreateTable as g}from"./create.table.js";import y from"./create.action-row.js";import{Breadcrumbs as j}from"../components/breadcrumbs.js";var b=["imageUrl","valueFormatter","typographyProps","typographyPropsGetter"],C=["formatString"],S="MM/DD/YYYY HH:mm",w=new(r((function r(){var w=this;t(this,r),e(this,"createTable",g),e(this,"createActionRow",y),e(this,"setUrlQuery",d.setUrlQuery),e(this,"getUrlQuery",d.getUrlQuery),e(this,"mapContext",l),e(this,"ToolbarPannel",h),e(this,"createToolbar",(function(r){return function(t){return a(h,o({},o(o({},t),r)))}})),e(this,"BtnFormDetail",u),e(this,"BtnDetail",s),e(this,"createBreadcrumbConfigs",(function(r){return r})),e(this,"createBreadcrumbs",(function(r){return function(){return a(j,{value:r})}})),e(this,"createStatusCell",c),e(this,"formatterDate",(function(r,t){var e,o,n=null!==(e=null==t?void 0:t.formatString)&&void 0!==e?e:S,a=null!==(o=null==t?void 0:t.showRelative)&&void 0!==o&&o;try{if(!r)return"";var l=i(r),u=l.format(n);return a?"".concat(u," (").concat(i().to(l),")"):u}catch(r){return""}})),e(this,"valueFormatterDate",(function(r){return function(t){return w.formatterDate(t.value,r)}})),e(this,"renderCellChips",(function(r){return function(t){var e;return a(m,o(o({},r),{},{value:null!==(e=t.value)&&void 0!==e?e:null==r?void 0:r.value}))}})),e(this,"renderCellStatus",(function(r,t){var e=c(r,o({sx:{minWidth:"90px"}},t));return function(r){return a(e,{value:r.value})}})),e(this,"renderCellBase",(function(r){return function(t){var e,i=null!=r?r:{},l=i.imageUrl,u=i.valueFormatter,s=i.typographyProps,c=i.typographyPropsGetter,m=n(i,b),f=u?u(t.value,t.row):void 0,p=l?l(t.value,t.row):void 0,h=null!=r&&r.renderIcon?r.renderIcon(t.value,t.row):null!==(e=null==r?void 0:r.icon)&&void 0!==e?e:void 0,d=c?c(t.value,t.row):s;return a(v,o(o({value:t.value,valueFormatted:f},m),{},{imageUrl:p,icon:h,typographyProps:d}))}})),e(this,"renderCellImage",(function(r,t){return function(e){var o;return a(f,{value:e.value,imageUri:null===(o=r(e.row))||void 0===o?void 0:o.toString(),fallbackSrc:null==t?void 0:t.fallbackSrc})}})),e(this,"renderCellDate",(function(r){return function(t){var e=null!=r?r:{},i=e.formatString,l=n(e,C);return a(p,o(o({},l),{},{value:t.value,formatString:null!=i?i:S}))}}))})));export{w as default};
2
2
  //# sourceMappingURL=dino.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dino.js","sources":["../../src/table/dino.tsx"],"sourcesContent":["import { GridRenderCellParams, GridTreeNodeWithRender, GridValueFormatterParams } from '@mui/x-data-grid'\r\nimport type { FC, ReactNode } from 'react'\r\nimport { dayjsCustom } from '../utils'\r\nimport { MapTableBaseContext } from './context'\r\nimport { BtnDetail, BtnFormDetail } from './ui.buttons'\r\nimport { Breadcrumbs, IBreadcrumbConfig } from '../components'\r\nimport { CreateStatusCell, IStatusCellOptions, IStatusCellConfig } from './ui.units'\r\nimport { CellBase, CellImageSmall, CellBaseOptions, CellChips, CellChipsProps, CellDate, CellDatePropsOwner } from './ui.units'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\nimport TableHelper from './helpers'\r\nimport CreateTable from './create.table'\r\nimport CreateActionRow from './create.action-row'\r\nimport { TypographyProps } from '@mui/material'\r\n\r\nconst formatDateString = 'MM/DD/YYYY HH:mm'\r\n\r\ntype RenderCellBaseParams<T> = Omit<CellBaseOptions, 'imageUrl'> & {\r\n imageUrl?: (value: any, model: T) => string\r\n valueFormatter?: (value: any, model: T) => string\r\n icon?: ReactNode\r\n renderIcon?: (value: any, model: T) => ReactNode\r\n typographyPropsGetter?: (value: any, model: T) => TypographyProps & { [key: string]: any }\r\n}\r\n\r\ninterface FormatterDateOptions {\r\n formatString?: string\r\n showRelative?: boolean\r\n}\r\n\r\nclass DinoTableBase {\r\n //#region Base\r\n\r\n createTable = CreateTable\r\n\r\n createActionRow = CreateActionRow\r\n\r\n setUrlQuery = TableHelper.setUrlQuery\r\n\r\n getUrlQuery = TableHelper.getUrlQuery\r\n\r\n mapContext = MapTableBaseContext\r\n\r\n ToolbarPannel = ToolbarPannel\r\n\r\n createToolbar = (props: IToolbarPannelProps): FC<IToolbarPannelProps> => {\r\n return (p) => <ToolbarPannel {...{ ...p, ...props }} />\r\n }\r\n\r\n BtnFormDetail = BtnFormDetail\r\n\r\n BtnDetail = BtnDetail\r\n\r\n createBreadcrumbConfigs = (value: IBreadcrumbConfig[]) => value\r\n\r\n createBreadcrumbs = (value: IBreadcrumbConfig[]): FC => {\r\n return () => <Breadcrumbs value={value} />\r\n }\r\n\r\n createStatusCell = CreateStatusCell\r\n //#endregion\r\n\r\n //#region Value Formatter\r\n formatterDate = (value: any, options?: FormatterDateOptions): string => {\r\n const f = options?.formatString ?? formatDateString\r\n const showRelative = options?.showRelative ?? false\r\n try {\r\n if (!value) return ''\r\n\r\n const date = dayjsCustom(value)\r\n const formatted = date.format(f)\r\n\r\n return showRelative ? `${formatted} (${dayjsCustom().to(date)})` : formatted\r\n } catch (error) {\r\n return ''\r\n }\r\n }\r\n\r\n valueFormatterDate = (options?: FormatterDateOptions) => {\r\n return (params: GridValueFormatterParams<any>) => this.formatterDate(params.value, options)\r\n }\r\n //#endregion\r\n\r\n //#region Render Cell\r\n renderCellChips = (params?: CellChipsProps) => {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <CellChips {...params} value={tableRow.value ?? params?.value} />\r\n }\r\n }\r\n\r\n renderCellStatus = function <E extends string>(config: IStatusCellConfig<E>, options?: IStatusCellOptions) {\r\n const StatusCellInstance = CreateStatusCell(config, { sx: { minWidth: '90px' }, ...options })\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <StatusCellInstance value={tableRow.value} />\r\n }\r\n }\r\n\r\n renderCellBase = function <T = any>(options?: RenderCellBaseParams<T>) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n const { imageUrl, valueFormatter, typographyProps, typographyPropsGetter, ...p } = options ?? {}\r\n const value = valueFormatter ? valueFormatter(tableRow.value, tableRow.row) : undefined\r\n const img = imageUrl ? imageUrl(tableRow.value, tableRow.row) : undefined\r\n const icon = options?.renderIcon ? options.renderIcon(tableRow.value, tableRow.row) : options?.icon ?? undefined\r\n const mergedTypographyProps = typographyPropsGetter ? typographyPropsGetter(tableRow.value, tableRow.row) : typographyProps\r\n return <CellBase value={tableRow.value} valueFormatted={value} {...p} imageUrl={img} icon={icon} typographyProps={mergedTypographyProps} />\r\n }\r\n }\r\n\r\n renderCellImage = function <T>(selectImage: (value: T) => T[keyof T], options?: { fallbackSrc?: string }) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <CellImageSmall value={tableRow.value} imageUri={selectImage(tableRow.row)?.toString()} fallbackSrc={options?.fallbackSrc} />\r\n }\r\n }\r\n\r\n renderCellDate = function (params?: CellDatePropsOwner) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n const { formatString, ...props } = params ?? {}\r\n return <CellDate {...props} value={tableRow.value} formatString={formatString ?? formatDateString} />\r\n }\r\n }\r\n //#endregion\r\n}\r\n\r\nconst DinoTable = new DinoTableBase()\r\n\r\nexport default DinoTable\r\n"],"names":["formatDateString","DinoTable","_createClass","DinoTableBase","_this","this","_classCallCheck","_defineProperty","CreateTable","CreateActionRow","TableHelper","setUrlQuery","getUrlQuery","MapTableBaseContext","ToolbarPannel","props","p","_jsx","_objectSpread","BtnFormDetail","BtnDetail","value","Breadcrumbs","CreateStatusCell","options","_options$formatString","_options$showRelative","f","formatString","showRelative","date","dayjsCustom","formatted","format","concat","to","error","params","formatterDate","tableRow","_tableRow$value","CellChips","config","StatusCellInstance","sx","minWidth","_options$icon","_ref","imageUrl","valueFormatter","typographyProps","typographyPropsGetter","_objectWithoutProperties","_excluded","row","undefined","img","icon","renderIcon","mergedTypographyProps","CellBase","valueFormatted","selectImage","_selectImage","CellImageSmall","imageUri","toString","fallbackSrc","_ref2","_excluded2","CellDate"],"mappings":"iyBAcMA,EAAmB,mBA4GnBC,EAAY,IA7FCC,GAAA,SAAAC,IAAA,IAAAC,EAAAC,KAAAC,OAAAH,GACjBI,qBAEcC,GAAWD,yBAEPE,GAAeF,EAAAF,KAAA,cAEnBK,EAAYC,aAAWJ,EAAAF,KAAA,cAEvBK,EAAYE,aAAWL,oBAExBM,GAAmBN,uBAEhBO,GAAaP,EAAAF,KAAA,iBAEb,SAACU,GACf,OAAO,SAACC,GAAC,OAAKC,EAACH,EAAaI,EAAAA,GAAAA,EAAAA,EAAUF,GAAAA,GAAMD,IAAW,KACxDR,uBAEeY,GAAaZ,mBAEjBa,GAASb,EAAAF,KAAA,2BAEK,SAACgB,GAA0B,OAAKA,CAAK,IAAAd,EAAAF,KAAA,qBAE3C,SAACgB,GACnB,OAAO,WAAA,OAAMJ,EAACK,GAAYD,MAAOA,GAAS,KAC3Cd,0BAEkBgB,GAGnBhB,EACgBF,KAAA,iBAAA,SAACgB,EAAYG,GAA0C,IAAAC,EAAAC,EAC/DC,EAAyBF,QAAxBA,EAAGD,aAAO,EAAPA,EAASI,oBAAYH,IAAAA,EAAAA,EAAIzB,EAC7B6B,EAAoCH,QAAxBA,EAAGF,aAAO,EAAPA,EAASK,oBAAYH,IAAAA,GAAAA,EAC1C,IACE,IAAKL,EAAO,MAAO,GAEnB,IAAMS,EAAOC,EAAYV,GACnBW,EAAYF,EAAKG,OAAON,GAE9B,OAAOE,EAAYK,GAAAA,OAAMF,QAASE,OAAKH,IAAcI,GAAGL,QAAWE,CACpE,CAAC,MAAOI,GACP,MAAO,EACR,KACF7B,EAAAF,KAAA,sBAEoB,SAACmB,GACpB,OAAO,SAACa,GAAqC,OAAKjC,EAAKkC,cAAcD,EAAOhB,MAAOG,EAAQ,KAI7FjB,EAAAF,KAAA,mBACkB,SAACgC,GACjB,OAAO,SAAcE,GAAqE,IAAAC,EACxF,OAAOvB,EAACwB,EAASvB,EAAAA,KAAKmB,GAAM,GAAA,CAAEhB,MAAqBmB,QAAhBA,EAAED,EAASlB,aAAKmB,IAAAA,EAAAA,EAAIH,aAAM,EAANA,EAAQhB,QAChE,KACFd,EAEkBF,KAAA,oBAAA,SAA4BqC,EAA8BlB,GAC3E,IAAMmB,EAAqBpB,EAAiBmB,EAAMxB,EAAA,CAAI0B,GAAI,CAAEC,SAAU,SAAarB,IACnF,OAAO,SAAce,GACnB,OAAOtB,EAAC0B,EAAmB,CAAAtB,MAAOkB,EAASlB,OAC5C,KACFd,EAAAF,KAAA,kBAEgB,SAAmBmB,GAClC,OAAO,SAAce,GAAqE,IAAAO,EACxFC,EAAmFvB,QAAAA,EAAW,CAAE,EAAxFwB,EAAQD,EAARC,SAAUC,EAAcF,EAAdE,eAAgBC,EAAeH,EAAfG,gBAAiBC,EAAqBJ,EAArBI,sBAA0BnC,EAACoC,EAAAL,EAAAM,GACxEhC,EAAQ4B,EAAiBA,EAAeV,EAASlB,MAAOkB,EAASe,UAAOC,EACxEC,EAAMR,EAAWA,EAAST,EAASlB,MAAOkB,EAASe,UAAOC,EAC1DE,EAAOjC,SAAAA,EAASkC,WAAalC,EAAQkC,WAAWnB,EAASlB,MAAOkB,EAASe,KAAoB,QAAhBR,EAAGtB,aAAAA,EAAAA,EAASiC,YAAIX,IAAAA,EAAAA,OAAIS,EACjGI,EAAwBR,EAAwBA,EAAsBZ,EAASlB,MAAOkB,EAASe,KAAOJ,EAC5G,OAAOjC,EAAC2C,EAAQ1C,EAAAA,EAAA,CAACG,MAAOkB,EAASlB,MAAOwC,eAAgBxC,GAAWL,GAAC,GAAA,CAAEgC,SAAUQ,EAAKC,KAAMA,EAAMP,gBAAiBS,IACnH,KACFpD,EAEiBF,KAAA,mBAAA,SAAayD,EAAuCtC,GACpE,OAAO,SAAce,GAAqE,IAAAwB,EACxF,OAAO9C,EAAC+C,EAAc,CAAC3C,MAAOkB,EAASlB,MAAO4C,SAAmC,QAA3BF,EAAED,EAAYvB,EAASe,YAArBS,IAAyBA,OAAzBA,EAAAA,EAA2BG,WAAYC,YAAa3C,aAAO,EAAPA,EAAS2C,aACtH,KACF5D,EAAAF,KAAA,kBAEgB,SAAUgC,GACzB,OAAO,SAAcE,GACnB,IAAA6B,EAAmC/B,QAAAA,EAAU,CAAE,EAAvCT,EAAYwC,EAAZxC,aAAiBb,EAAKqC,EAAAgB,EAAAC,GAC9B,OAAOpD,EAACqD,EAAQpD,EAAAA,KAAKH,GAAK,GAAA,CAAEM,MAAOkB,EAASlB,MAAOO,aAAcA,QAAAA,EAAgB5B,IAClF,IACF"}
1
+ {"version":3,"file":"dino.js","sources":["../../src/table/dino.tsx"],"sourcesContent":["import { GridRenderCellParams, GridTreeNodeWithRender, GridValueFormatterParams } from '@mui/x-data-grid'\r\nimport type { FC, ReactNode } from 'react'\r\nimport { dayjsCustom } from '../utils'\r\nimport { MapTableBaseContext } from './context'\r\nimport { BtnDetail, BtnFormDetail } from './ui.buttons'\r\nimport { Breadcrumbs, IBreadcrumbConfig } from '../components'\r\nimport { CreateStatusCell, IStatusCellOptions, IStatusCellConfig } from './ui.units'\r\nimport { CellBase, CellImageSmall, CellBaseOptions, CellChips, CellChipsProps, CellDate, CellDatePropsOwner } from './ui.units'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\nimport TableHelper from './helpers'\r\nimport CreateTable from './create.table'\r\nimport CreateActionRow from './create.action-row'\r\nimport { TypographyProps } from '@mui/material'\r\n\r\nconst formatDateString = 'MM/DD/YYYY HH:mm'\r\n\r\ntype RenderCellBaseParams<T> = Omit<CellBaseOptions, 'imageUrl'> & {\r\n imageUrl?: (value: any, model: T) => string\r\n valueFormatter?: (value: any, model: T) => string\r\n icon?: ReactNode\r\n renderIcon?: (value: any, model: T) => ReactNode\r\n typographyPropsGetter?: (value: any, model: T) => TypographyProps & { [key: string]: any }\r\n}\r\n\r\ninterface FormatterDateOptions {\r\n formatString?: string\r\n showRelative?: boolean\r\n}\r\n\r\nclass DinoTableBase {\r\n //#region Base\r\n\r\n createTable = CreateTable\r\n\r\n createActionRow = CreateActionRow\r\n\r\n setUrlQuery = TableHelper.setUrlQuery\r\n\r\n getUrlQuery = TableHelper.getUrlQuery\r\n\r\n mapContext = MapTableBaseContext\r\n\r\n ToolbarPannel = ToolbarPannel\r\n\r\n createToolbar = (props: IToolbarPannelProps): FC<IToolbarPannelProps> => {\r\n return (p) => <ToolbarPannel {...{ ...p, ...props }} />\r\n }\r\n\r\n BtnFormDetail = BtnFormDetail\r\n\r\n BtnDetail = BtnDetail\r\n\r\n createBreadcrumbConfigs = (value: IBreadcrumbConfig[]) => value\r\n\r\n createBreadcrumbs = (value: IBreadcrumbConfig[]): FC => {\r\n return () => <Breadcrumbs value={value} />\r\n }\r\n\r\n createStatusCell = CreateStatusCell\r\n //#endregion\r\n\r\n //#region Value Formatter\r\n formatterDate = (value: any, options?: FormatterDateOptions): string => {\r\n const f = options?.formatString ?? formatDateString\r\n const showRelative = options?.showRelative ?? false\r\n try {\r\n if (!value) return ''\r\n\r\n const date = dayjsCustom(value)\r\n const formatted = date.format(f)\r\n\r\n return showRelative ? `${formatted} (${dayjsCustom().to(date)})` : formatted\r\n } catch (error) {\r\n return ''\r\n }\r\n }\r\n\r\n valueFormatterDate = (options?: FormatterDateOptions) => {\r\n return (params: GridValueFormatterParams<any>) => this.formatterDate(params.value, options)\r\n }\r\n //#endregion\r\n\r\n //#region Render Cell\r\n renderCellChips = (params?: CellChipsProps) => {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <CellChips {...params} value={tableRow.value ?? params?.value} />\r\n }\r\n }\r\n\r\n renderCellStatus = function <E extends string>(config: IStatusCellConfig<E>, options?: IStatusCellOptions) {\r\n const StatusCellInstance = CreateStatusCell(config, { sx: { minWidth: '90px' }, ...options })\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <StatusCellInstance value={tableRow.value} />\r\n }\r\n }\r\n\r\n renderCellBase = function <T = any>(options?: RenderCellBaseParams<T>) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n const { imageUrl, valueFormatter, typographyProps, typographyPropsGetter, ...p } = options ?? {}\r\n const value = valueFormatter ? valueFormatter(tableRow.value, tableRow.row) : undefined\r\n const img = imageUrl ? imageUrl(tableRow.value, tableRow.row) : undefined\r\n const icon = options?.renderIcon ? options.renderIcon(tableRow.value, tableRow.row) : options?.icon ?? undefined\r\n const mergedTypographyProps = typographyPropsGetter ? typographyPropsGetter(tableRow.value, tableRow.row) : typographyProps\r\n return <CellBase value={tableRow.value} valueFormatted={value} {...p} imageUrl={img} icon={icon} typographyProps={mergedTypographyProps} />\r\n }\r\n }\r\n\r\n renderCellImage = function <T>(selectImage: (value: T) => T[keyof T], options?: { fallbackSrc?: string }) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n return <CellImageSmall value={tableRow.value} imageUri={selectImage(tableRow.row)?.toString()} fallbackSrc={options?.fallbackSrc} />\r\n }\r\n }\r\n\r\n renderCellDate = function (params?: CellDatePropsOwner) {\r\n return function func(tableRow: GridRenderCellParams<any, any, any, GridTreeNodeWithRender>) {\r\n const { formatString, ...props } = params ?? {}\r\n return <CellDate {...props} value={tableRow.value} formatString={formatString ?? formatDateString} />\r\n }\r\n }\r\n //#endregion\r\n}\r\n\r\nconst DinoTable = new DinoTableBase()\r\n\r\nexport default DinoTable\r\n"],"names":["formatDateString","DinoTable","_createClass","DinoTableBase","_this","this","_classCallCheck","_defineProperty","CreateTable","CreateActionRow","TableHelper","setUrlQuery","getUrlQuery","MapTableBaseContext","ToolbarPannel","props","p","_jsx","_objectSpread","BtnFormDetail","BtnDetail","value","Breadcrumbs","CreateStatusCell","options","_options$formatString","_options$showRelative","f","formatString","showRelative","date","dayjsCustom","formatted","format","concat","to","error","params","formatterDate","tableRow","_tableRow$value","CellChips","config","StatusCellInstance","sx","minWidth","_options$icon","_ref","imageUrl","valueFormatter","typographyProps","typographyPropsGetter","_objectWithoutProperties","_excluded","row","undefined","img","icon","renderIcon","mergedTypographyProps","CellBase","valueFormatted","selectImage","_selectImage","CellImageSmall","imageUri","toString","fallbackSrc","_ref2","_excluded2","CellDate"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{objectSpread2 as r,inherits as e,createClass as t,classCallCheck as n,callSuper as i,defineProperty as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as s,Fragment as o}from"react/jsx-runtime";import{Component as p}from"react";import{GridToolbar as c,GridToolbarQuickFilter as d}from"@mui/x-data-grid";import{styled as u,Typography as f,Box as m}from"@mui/material";import{BtnFormCreate as h}from"./ui.buttons.js";import x from"../components/breadcrumbs.js";import g from"../components/help-tooltip.js";var b=function(){function r(){var e;n(this,r);for(var t=arguments.length,p=new Array(t),c=0;c<t;c++)p[c]=arguments[c];return e=i(this,r,[].concat(p)),a(e,"renderTitle",(function(){var r=e.props,t=r.title,n=r.afterTitle,i=r.breadcrumbs;if(!(!!t||!!i||!!n))return l(o,{});var a=t;return"string"==typeof t&&(a=l(y,{children:t})),i&&(a=l(x,{value:i})),s(m,{sx:{height:"56px",display:"flex",alignItems:"center"},children:[a,n]})})),a(e,"renderEndAdornment",(function(){return!e.props.searchInclude||e.props.searchInclude.length<=0?l(o,{}):l(g,{title:"The search includes",small:!0,children:l(v,{children:e.props.searchInclude.map((function(r,e){return l("li",{children:l(f,{variant:"body2",children:r})},e)}))})})})),e}return e(r,p),t(r,[{key:"render",value:function(){return s(m,{sx:{padding:"0 6px"},children:[this.renderTitle(),s(m,{sx:{display:"flex"},children:[s(m,{sx:{flex:1,display:"flex",alignItems:"center",flexWrap:"wrap"},children:[l(c,{sx:{padding:0}}),this.props.formCreate&&l(h,{children:this.props.formCreate}),this.props.afterAction]}),l(m,{sx:{display:"flex",gap:"8px",alignItems:"center"},children:s(m,{sx:{display:"flex",alignItems:"center"},children:[l(d,{fullWidth:!0,variant:"standard",size:"small",debounceMs:800,quickFilterParser:function(r){return[r]}}),this.renderEndAdornment()]})})]})]})}}])}(),v=u("ul")({margin:"0 0 0 18px",padding:0,li:{position:"relative"},"li::after":{content:'"►"',display:"inline-block",top:"50%",transform:"translateY(-50%)",position:"absolute",left:"-18px"}}),y=u((function(e){return l(f,r({noWrap:!0,variant:"subtitle1"},e))}))({fontWeight:700,flex:1});export{b as default};
1
+ import{objectSpread2 as r,inherits as e,createClass as t,classCallCheck as n,callSuper as i,defineProperty as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as s,Fragment as o}from"react/jsx-runtime";import{Component as p}from"react";import{GridToolbar as c,GridToolbarQuickFilter as d}from"@mui/x-data-grid";import{styled as u,Typography as f,Box as m}from"@mui/material";import{BtnFormCreate as h}from"./ui.buttons.js";import{Breadcrumbs as x}from"../components/breadcrumbs.js";import g from"../components/help-tooltip.js";var b=function(){function r(){var e;n(this,r);for(var t=arguments.length,p=new Array(t),c=0;c<t;c++)p[c]=arguments[c];return e=i(this,r,[].concat(p)),a(e,"renderTitle",(function(){var r=e.props,t=r.title,n=r.afterTitle,i=r.breadcrumbs;if(!(!!t||!!i||!!n))return l(o,{});var a=t;return"string"==typeof t&&(a=l(y,{children:t})),i&&(a=l(x,{value:i})),s(m,{sx:{height:"56px",display:"flex",alignItems:"center"},children:[a,n]})})),a(e,"renderEndAdornment",(function(){return!e.props.searchInclude||e.props.searchInclude.length<=0?l(o,{}):l(g,{title:"The search includes",small:!0,children:l(v,{children:e.props.searchInclude.map((function(r,e){return l("li",{children:l(f,{variant:"body2",children:r})},e)}))})})})),e}return e(r,p),t(r,[{key:"render",value:function(){return s(m,{sx:{padding:"0 6px"},children:[this.renderTitle(),s(m,{sx:{display:"flex"},children:[s(m,{sx:{flex:1,display:"flex",alignItems:"center",flexWrap:"wrap"},children:[l(c,{sx:{padding:0}}),this.props.formCreate&&l(h,{children:this.props.formCreate}),this.props.afterAction]}),l(m,{sx:{display:"flex",gap:"8px",alignItems:"center"},children:s(m,{sx:{display:"flex",alignItems:"center"},children:[l(d,{fullWidth:!0,variant:"standard",size:"small",debounceMs:800,quickFilterParser:function(r){return[r]}}),this.renderEndAdornment()]})})]})]})}}])}(),v=u("ul")({margin:"0 0 0 18px",padding:0,li:{position:"relative"},"li::after":{content:'"►"',display:"inline-block",top:"50%",transform:"translateY(-50%)",position:"absolute",left:"-18px"}}),y=u((function(e){return l(f,r({noWrap:!0,variant:"subtitle1"},e))}))({fontWeight:700,flex:1});export{b as default};
2
2
  //# sourceMappingURL=toolbar-pannel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar-pannel.js","sources":["../../src/table/toolbar-pannel.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { GridToolbar, GridToolbarQuickFilter } from '@mui/x-data-grid'\r\nimport { Box, styled, Typography, TypographyProps } from '@mui/material'\r\nimport { BtnFormCreate } from './ui.buttons'\r\nimport { Breadcrumbs, IBreadcrumbConfig, HelpTooltip } from '../components'\r\n\r\nexport interface IToolbarPannelOptions {\r\n searchInclude?: string[]\r\n formCreate?: React.ReactNode\r\n afterAction?: React.ReactNode\r\n breadcrumbs?: IBreadcrumbConfig[]\r\n}\r\n\r\nexport interface IToolbarPannelProps extends IToolbarPannelOptions {\r\n title?: React.ReactNode\r\n afterTitle?: React.ReactNode\r\n}\r\n\r\nclass ToolbarPannel extends Component<React.PropsWithChildren<IToolbarPannelProps>> {\r\n render() {\r\n return (\r\n <Box sx={{ padding: '0 6px' }}>\r\n {this.renderTitle()}\r\n <Box sx={{ display: 'flex' }}>\r\n <Box sx={{ flex: 1, display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}>\r\n <GridToolbar sx={{ padding: 0 }} />\r\n {this.props.formCreate && <BtnFormCreate>{this.props.formCreate}</BtnFormCreate>}\r\n {this.props.afterAction}\r\n </Box>\r\n <Box sx={{ display: 'flex', gap: '8px', alignItems: 'center' }}>\r\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\r\n <GridToolbarQuickFilter fullWidth variant='standard' size='small' debounceMs={800} quickFilterParser={(x: any) => [x]} />\r\n {this.renderEndAdornment()}\r\n </Box>\r\n </Box>\r\n </Box>\r\n </Box>\r\n )\r\n }\r\n\r\n renderTitle = () => {\r\n const { title, afterTitle, breadcrumbs } = this.props\r\n\r\n const isVisible = !!title || !!breadcrumbs || !!afterTitle\r\n if (!isVisible) return <></>\r\n\r\n let titleElm = title\r\n if (typeof title === 'string') titleElm = <Title>{title}</Title>\r\n if (breadcrumbs) titleElm = <Breadcrumbs value={breadcrumbs} />\r\n\r\n return (\r\n <Box sx={{ height: '56px', display: 'flex', alignItems: 'center' }}>\r\n {titleElm}\r\n {afterTitle}\r\n </Box>\r\n )\r\n }\r\n\r\n renderEndAdornment = () => {\r\n if (!this.props.searchInclude || this.props.searchInclude.length <= 0) return <></>\r\n return (\r\n <HelpTooltip title='The search includes' small>\r\n <SeachHelp>\r\n {this.props.searchInclude.map((item, index) => (\r\n <li key={index}>\r\n <Typography variant='body2'>{item}</Typography>\r\n </li>\r\n ))}\r\n </SeachHelp>\r\n </HelpTooltip>\r\n )\r\n }\r\n}\r\n\r\nexport default ToolbarPannel\r\n\r\nconst SeachHelp = styled('ul')({\r\n margin: '0 0 0 18px',\r\n padding: 0,\r\n li: {\r\n position: 'relative'\r\n },\r\n 'li::after': {\r\n content: '\"►\"',\r\n display: 'inline-block',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n position: 'absolute',\r\n left: '-18px'\r\n }\r\n})\r\n\r\nconst Title = styled((props: TypographyProps) => <Typography noWrap variant='subtitle1' {...props} />)({\r\n fontWeight: 700,\r\n flex: 1\r\n})\r\n"],"names":["ToolbarPannel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","_this$props","props","title","afterTitle","breadcrumbs","_jsx","titleElm","Title","children","Breadcrumbs","value","_jsxs","Box","sx","height","display","alignItems","searchInclude","HelpTooltip","small","SeachHelp","map","item","index","Typography","variant","_inherits","Component","_createClass","key","padding","renderTitle","flex","flexWrap","GridToolbar","formCreate","BtnFormCreate","afterAction","gap","GridToolbarQuickFilter","fullWidth","size","debounceMs","quickFilterParser","x","renderEndAdornment","styled","margin","li","position","content","top","transform","left","_objectSpread","noWrap","fontWeight"],"mappings":"qhBAkBMA,IAAAA,aAAc,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAqDjB,OArDiBP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,eAsBJ,WACZ,IAAAY,EAA2CZ,EAAKa,MAAxCC,EAAKF,EAALE,MAAOC,EAAUH,EAAVG,WAAYC,EAAWJ,EAAXI,YAG3B,OADoBF,KAAWE,KAAiBD,GAChC,OAAOE,QAEvB,IAAIC,EAAWJ,EAIf,MAHqB,iBAAVA,IAAoBI,EAAWD,EAACE,EAAO,CAAAC,SAAAN,KAC9CE,IAAaE,EAAWD,EAACI,EAAW,CAACC,MAAON,KAG9CO,EAACC,EAAI,CAAAC,GAAI,CAAEC,OAAQ,OAAQC,QAAS,OAAQC,WAAY,UACrDR,SAAA,CAAAF,EACAH,QAGNJ,EAAAX,EAAA,sBAEoB,WACnB,OAAKA,EAAKa,MAAMgB,eAAiB7B,EAAKa,MAAMgB,cAAczB,QAAU,EAAUa,QAE5EA,EAACa,EAAW,CAAChB,MAAM,sBAAsBiB,OAAK,EAAAX,SAC5CH,EAACe,EAAS,CAAAZ,SACPpB,EAAKa,MAAMgB,cAAcI,KAAI,SAACC,EAAMC,GAAK,OACxClB,iBACEA,EAACmB,EAAW,CAAAC,QAAQ,iBAASH,KADtBC,EAGV,WAIRnC,CAAA,CAAA,OAAAsC,EAAAvC,EArDyBwC,GAqDzBC,EAAAzC,EAAA,CAAA,CAAA0C,IAAA,SAAAnB,MApDD,WACE,OACEC,EAACC,EAAI,CAAAC,GAAI,CAAEiB,QAAS,SACjBtB,SAAA,CAAAX,KAAKkC,cACNpB,EAACC,EAAG,CAACC,GAAI,CAAEE,QAAS,QAAQP,SAAA,CAC1BG,EAACC,GAAIC,GAAI,CAAEmB,KAAM,EAAGjB,QAAS,OAAQC,WAAY,SAAUiB,SAAU,kBACnE5B,EAAC6B,EAAY,CAAArB,GAAI,CAAEiB,QAAS,KAC3BjC,KAAKI,MAAMkC,YAAc9B,EAAC+B,EAAe,CAAA5B,SAAAX,KAAKI,MAAMkC,aACpDtC,KAAKI,MAAMoC,eAEdhC,EAACO,EAAG,CAACC,GAAI,CAAEE,QAAS,OAAQuB,IAAK,MAAOtB,WAAY,UAClDR,SAAAG,EAACC,EAAI,CAAAC,GAAI,CAAEE,QAAS,OAAQC,WAAY,UACtCR,SAAA,CAAAH,EAACkC,EAAuB,CAAAC,WAAU,EAAAf,QAAQ,WAAWgB,KAAK,QAAQC,WAAY,IAAKC,kBAAmB,SAACC,GAAM,MAAK,CAACA,EAAE,IACpH/C,KAAKgD,+BAMlB,IAAC,IAsCGzB,EAAY0B,EAAO,KAAPA,CAAa,CAC7BC,OAAQ,aACRjB,QAAS,EACTkB,GAAI,CACFC,SAAU,YAEZ,YAAa,CACXC,QAAS,MACTnC,QAAS,eACToC,IAAK,MACLC,UAAW,mBACXH,SAAU,WACVI,KAAM,WAIJ9C,EAAQuC,GAAO,SAAC7C,GAAsB,OAAKI,EAACmB,EAAU8B,EAAA,CAACC,UAAO9B,QAAQ,aAAgBxB,GAAS,GAAvF6C,CAAyF,CACrGU,WAAY,IACZxB,KAAM"}
1
+ {"version":3,"file":"toolbar-pannel.js","sources":["../../src/table/toolbar-pannel.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { GridToolbar, GridToolbarQuickFilter } from '@mui/x-data-grid'\r\nimport { Box, styled, Typography, TypographyProps } from '@mui/material'\r\nimport { BtnFormCreate } from './ui.buttons'\r\nimport { Breadcrumbs, IBreadcrumbConfig, HelpTooltip } from '../components'\r\n\r\nexport interface IToolbarPannelOptions {\r\n searchInclude?: string[]\r\n formCreate?: React.ReactNode\r\n afterAction?: React.ReactNode\r\n breadcrumbs?: IBreadcrumbConfig[]\r\n}\r\n\r\nexport interface IToolbarPannelProps extends IToolbarPannelOptions {\r\n title?: React.ReactNode\r\n afterTitle?: React.ReactNode\r\n}\r\n\r\nclass ToolbarPannel extends Component<React.PropsWithChildren<IToolbarPannelProps>> {\r\n render() {\r\n return (\r\n <Box sx={{ padding: '0 6px' }}>\r\n {this.renderTitle()}\r\n <Box sx={{ display: 'flex' }}>\r\n <Box sx={{ flex: 1, display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}>\r\n <GridToolbar sx={{ padding: 0 }} />\r\n {this.props.formCreate && <BtnFormCreate>{this.props.formCreate}</BtnFormCreate>}\r\n {this.props.afterAction}\r\n </Box>\r\n <Box sx={{ display: 'flex', gap: '8px', alignItems: 'center' }}>\r\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\r\n <GridToolbarQuickFilter fullWidth variant='standard' size='small' debounceMs={800} quickFilterParser={(x: any) => [x]} />\r\n {this.renderEndAdornment()}\r\n </Box>\r\n </Box>\r\n </Box>\r\n </Box>\r\n )\r\n }\r\n\r\n renderTitle = () => {\r\n const { title, afterTitle, breadcrumbs } = this.props\r\n\r\n const isVisible = !!title || !!breadcrumbs || !!afterTitle\r\n if (!isVisible) return <></>\r\n\r\n let titleElm = title\r\n if (typeof title === 'string') titleElm = <Title>{title}</Title>\r\n if (breadcrumbs) titleElm = <Breadcrumbs value={breadcrumbs} />\r\n\r\n return (\r\n <Box sx={{ height: '56px', display: 'flex', alignItems: 'center' }}>\r\n {titleElm}\r\n {afterTitle}\r\n </Box>\r\n )\r\n }\r\n\r\n renderEndAdornment = () => {\r\n if (!this.props.searchInclude || this.props.searchInclude.length <= 0) return <></>\r\n return (\r\n <HelpTooltip title='The search includes' small>\r\n <SeachHelp>\r\n {this.props.searchInclude.map((item, index) => (\r\n <li key={index}>\r\n <Typography variant='body2'>{item}</Typography>\r\n </li>\r\n ))}\r\n </SeachHelp>\r\n </HelpTooltip>\r\n )\r\n }\r\n}\r\n\r\nexport default ToolbarPannel\r\n\r\nconst SeachHelp = styled('ul')({\r\n margin: '0 0 0 18px',\r\n padding: 0,\r\n li: {\r\n position: 'relative'\r\n },\r\n 'li::after': {\r\n content: '\"►\"',\r\n display: 'inline-block',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n position: 'absolute',\r\n left: '-18px'\r\n }\r\n})\r\n\r\nconst Title = styled((props: TypographyProps) => <Typography noWrap variant='subtitle1' {...props} />)({\r\n fontWeight: 700,\r\n flex: 1\r\n})\r\n"],"names":["ToolbarPannel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","_this$props","props","title","afterTitle","breadcrumbs","_jsx","titleElm","Title","children","Breadcrumbs","value","_jsxs","Box","sx","height","display","alignItems","searchInclude","HelpTooltip","small","SeachHelp","map","item","index","Typography","variant","_inherits","Component","_createClass","key","padding","renderTitle","flex","flexWrap","GridToolbar","formCreate","BtnFormCreate","afterAction","gap","GridToolbarQuickFilter","fullWidth","size","debounceMs","quickFilterParser","x","renderEndAdornment","styled","margin","li","position","content","top","transform","left","_objectSpread","noWrap","fontWeight"],"mappings":"oiBAkBMA,IAAAA,aAAc,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAqDjB,OArDiBP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,eAsBJ,WACZ,IAAAY,EAA2CZ,EAAKa,MAAxCC,EAAKF,EAALE,MAAOC,EAAUH,EAAVG,WAAYC,EAAWJ,EAAXI,YAG3B,OADoBF,KAAWE,KAAiBD,GAChC,OAAOE,QAEvB,IAAIC,EAAWJ,EAIf,MAHqB,iBAAVA,IAAoBI,EAAWD,EAACE,EAAO,CAAAC,SAAAN,KAC9CE,IAAaE,EAAWD,EAACI,EAAW,CAACC,MAAON,KAG9CO,EAACC,EAAI,CAAAC,GAAI,CAAEC,OAAQ,OAAQC,QAAS,OAAQC,WAAY,UACrDR,SAAA,CAAAF,EACAH,QAGNJ,EAAAX,EAAA,sBAEoB,WACnB,OAAKA,EAAKa,MAAMgB,eAAiB7B,EAAKa,MAAMgB,cAAczB,QAAU,EAAUa,QAE5EA,EAACa,EAAW,CAAChB,MAAM,sBAAsBiB,OAAK,EAAAX,SAC5CH,EAACe,EAAS,CAAAZ,SACPpB,EAAKa,MAAMgB,cAAcI,KAAI,SAACC,EAAMC,GAAK,OACxClB,iBACEA,EAACmB,EAAW,CAAAC,QAAQ,iBAASH,KADtBC,EAGV,WAIRnC,CAAA,CAAA,OAAAsC,EAAAvC,EArDyBwC,GAqDzBC,EAAAzC,EAAA,CAAA,CAAA0C,IAAA,SAAAnB,MApDD,WACE,OACEC,EAACC,EAAI,CAAAC,GAAI,CAAEiB,QAAS,SACjBtB,SAAA,CAAAX,KAAKkC,cACNpB,EAACC,EAAG,CAACC,GAAI,CAAEE,QAAS,QAAQP,SAAA,CAC1BG,EAACC,GAAIC,GAAI,CAAEmB,KAAM,EAAGjB,QAAS,OAAQC,WAAY,SAAUiB,SAAU,kBACnE5B,EAAC6B,EAAY,CAAArB,GAAI,CAAEiB,QAAS,KAC3BjC,KAAKI,MAAMkC,YAAc9B,EAAC+B,EAAe,CAAA5B,SAAAX,KAAKI,MAAMkC,aACpDtC,KAAKI,MAAMoC,eAEdhC,EAACO,EAAG,CAACC,GAAI,CAAEE,QAAS,OAAQuB,IAAK,MAAOtB,WAAY,UAClDR,SAAAG,EAACC,EAAI,CAAAC,GAAI,CAAEE,QAAS,OAAQC,WAAY,UACtCR,SAAA,CAAAH,EAACkC,EAAuB,CAAAC,WAAU,EAAAf,QAAQ,WAAWgB,KAAK,QAAQC,WAAY,IAAKC,kBAAmB,SAACC,GAAM,MAAK,CAACA,EAAE,IACpH/C,KAAKgD,+BAMlB,IAAC,IAsCGzB,EAAY0B,EAAO,KAAPA,CAAa,CAC7BC,OAAQ,aACRjB,QAAS,EACTkB,GAAI,CACFC,SAAU,YAEZ,YAAa,CACXC,QAAS,MACTnC,QAAS,eACToC,IAAK,MACLC,UAAW,mBACXH,SAAU,WACVI,KAAM,WAIJ9C,EAAQuC,GAAO,SAAC7C,GAAsB,OAAKI,EAACmB,EAAU8B,EAAA,CAACC,UAAO9B,QAAQ,aAAgBxB,GAAS,GAAvF6C,CAAyF,CACrGU,WAAY,IACZxB,KAAM"}
@@ -1,2 +1,2 @@
1
- import{objectSpread2 as r,inherits as t,createClass as e,classCallCheck as o,callSuper as i,defineProperty as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as a,Fragment as s}from"react/jsx-runtime";import{Component as p}from"react";import{styled as u,Typography as d,Box as c,Tooltip as f,Button as m}from"@mui/material";import v from"@mui/icons-material/AddCircleOutline";import h from"../components/breadcrumbs.js";import{mapGlobalModalContext as b}from"../api-context/global-modal.js";var C=function(){function u(){var t;o(this,u);for(var e=arguments.length,a=new Array(e),p=0;p<e;p++)a[p]=arguments[p];return t=i(this,u,[].concat(a)),n(t,"renderButtonCreate",(function(){return t.props.formCreate?b((function(e){var o;return l(f,{title:"Create new",children:l(m,r(r({size:"small",onClick:function(){return e.show({renderContent:function(){return t.props.formCreate}})},startIcon:l(v,{fontSize:"small"}),sx:{fontWeight:600},variant:"contained"},null===(o=t.props.slots)||void 0===o?void 0:o.buttonCreateProps),{},{children:"Create"}))})})):l(s,{})})),n(t,"renderTitle",(function(){var r,e=null!==(r=t.props)&&void 0!==r?r:{},o=e.title,i=e.breadcrumbs;return i?l(h,{value:i}):l("string"==typeof o?g:s,{children:o})})),t}return t(u,p),e(u,[{key:"render",value:function(){var t,e,o,i,n;if(!1!==this.props.visible)return a(x,r(r({},null===(t=this.props.slots)||void 0===t?void 0:t.rootProps),{},{children:[null===(e=this.props.titleSlots)||void 0===e?void 0:e.before,this.renderTitle(),null===(o=this.props.titleSlots)||void 0===o?void 0:o.after,l(c,{sx:{flex:1}}),null===(i=this.props.actionSlots)||void 0===i?void 0:i.before,this.renderButtonCreate(),null===(n=this.props.actionSlots)||void 0===n?void 0:n.after]}))}}])}(),g=u((function(t){return l(d,r({noWrap:!0,variant:"subtitle1"},t))}))({fontWeight:700,flex:1}),x=u(c)({height:"var(--height-toolbar, 56px)",display:"flex",alignItems:"center",gap:"8px",padding:"0 6px"});export{C as default};
1
+ import{objectSpread2 as r,inherits as t,createClass as e,classCallCheck as o,callSuper as i,defineProperty as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as a,Fragment as s}from"react/jsx-runtime";import{Component as p}from"react";import{styled as u,Typography as d,Box as c,Tooltip as f,Button as m}from"@mui/material";import v from"@mui/icons-material/AddCircleOutline";import{Breadcrumbs as h}from"../components/breadcrumbs.js";import{mapGlobalModalContext as b}from"../api-context/global-modal.js";var C=function(){function u(){var t;o(this,u);for(var e=arguments.length,a=new Array(e),p=0;p<e;p++)a[p]=arguments[p];return t=i(this,u,[].concat(a)),n(t,"renderButtonCreate",(function(){return t.props.formCreate?b((function(e){var o;return l(f,{title:"Create new",children:l(m,r(r({size:"small",onClick:function(){return e.show({renderContent:function(){return t.props.formCreate}})},startIcon:l(v,{fontSize:"small"}),sx:{fontWeight:600},variant:"contained"},null===(o=t.props.slots)||void 0===o?void 0:o.buttonCreateProps),{},{children:"Create"}))})})):l(s,{})})),n(t,"renderTitle",(function(){var r,e=null!==(r=t.props)&&void 0!==r?r:{},o=e.title,i=e.breadcrumbs;return i?l(h,{value:i}):l("string"==typeof o?g:s,{children:o})})),t}return t(u,p),e(u,[{key:"render",value:function(){var t,e,o,i,n;if(!1!==this.props.visible)return a(x,r(r({},null===(t=this.props.slots)||void 0===t?void 0:t.rootProps),{},{children:[null===(e=this.props.titleSlots)||void 0===e?void 0:e.before,this.renderTitle(),null===(o=this.props.titleSlots)||void 0===o?void 0:o.after,l(c,{sx:{flex:1}}),null===(i=this.props.actionSlots)||void 0===i?void 0:i.before,this.renderButtonCreate(),null===(n=this.props.actionSlots)||void 0===n?void 0:n.after]}))}}])}(),g=u((function(t){return l(d,r({noWrap:!0,variant:"subtitle1"},t))}))({fontWeight:700,flex:1}),x=u(c)({height:"var(--height-toolbar, 56px)",display:"flex",alignItems:"center",gap:"8px",padding:"0 6px"});export{C as default};
2
2
  //# sourceMappingURL=toolbar-pannel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar-pannel.js","sources":["../../src/table-grid/toolbar-pannel.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Box, BoxProps, Button, ButtonProps, styled, Tooltip, Typography, TypographyProps } from '@mui/material'\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'\r\nimport { mapGlobalModalContext } from '../api-context'\r\nimport { Breadcrumbs, IBreadcrumbConfig } from '../components'\r\n\r\nexport interface ISectionSlots {\r\n before?: React.ReactNode\r\n after?: React.ReactNode\r\n}\r\n\r\nexport interface IToolbarPannelProps {\r\n /** @default true */\r\n visible?: boolean\r\n searchInclude?: string[]\r\n breadcrumbs?: IBreadcrumbConfig[]\r\n title?: React.ReactNode\r\n titleSlots?: ISectionSlots\r\n formCreate?: React.ReactNode\r\n actionSlots?: ISectionSlots\r\n slots?: {\r\n rootProps?: BoxProps\r\n buttonCreateProps?: ButtonProps\r\n }\r\n}\r\n\r\nclass ToolbarPannel extends Component<IToolbarPannelProps> {\r\n render() {\r\n if (this.props.visible === false) return\r\n return (\r\n <Wrap {...this.props.slots?.rootProps}>\r\n {this.props.titleSlots?.before}\r\n {this.renderTitle()}\r\n {this.props.titleSlots?.after}\r\n <Box sx={{ flex: 1 }} />\r\n {this.props.actionSlots?.before}\r\n {this.renderButtonCreate()}\r\n {this.props.actionSlots?.after}\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderButtonCreate = () => {\r\n if (!this.props.formCreate) return <></>\r\n return mapGlobalModalContext((context) => (\r\n <Tooltip title='Create new'>\r\n <Button\r\n size='small'\r\n onClick={() => context.show({ renderContent: () => this.props.formCreate })}\r\n startIcon={<AddCircleOutlineIcon fontSize='small' />}\r\n sx={{ fontWeight: 600 }}\r\n variant='contained'\r\n {...this.props.slots?.buttonCreateProps}\r\n >\r\n Create\r\n </Button>\r\n </Tooltip>\r\n ))\r\n }\r\n\r\n renderTitle = () => {\r\n const { title, breadcrumbs } = this.props ?? {}\r\n if (breadcrumbs) return <Breadcrumbs value={breadcrumbs} />\r\n if (typeof title === 'string') return <Title>{title}</Title>\r\n return <>{title}</>\r\n }\r\n}\r\n\r\nexport default ToolbarPannel\r\n\r\n// const SearchHelp = styled('ul')({\r\n// margin: '0 0 0 18px',\r\n// padding: 0,\r\n// li: {\r\n// position: 'relative'\r\n// },\r\n// 'li::after': {\r\n// content: '\"►\"',\r\n// display: 'inline-block',\r\n// top: '50%',\r\n// transform: 'translateY(-50%)',\r\n// position: 'absolute',\r\n// left: '-18px'\r\n// }\r\n// })\r\n\r\nconst Title = styled((props: TypographyProps) => <Typography noWrap variant='subtitle1' {...props} />)({\r\n fontWeight: 700,\r\n flex: 1\r\n})\r\n\r\nconst Wrap = styled(Box)({\r\n height: 'var(--height-toolbar, 56px)',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n padding: '0 6px'\r\n})\r\n"],"names":["ToolbarPannel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","formCreate","mapGlobalModalContext","context","_this$props$slots","_jsx","Tooltip","title","children","Button","_objectSpread","size","onClick","show","renderContent","startIcon","AddCircleOutlineIcon","fontSize","sx","fontWeight","variant","slots","buttonCreateProps","_this$props","_ref","breadcrumbs","Breadcrumbs","value","Title","_Fragment","_inherits","Component","_createClass","key","_this$props$slots2","_this$props$titleSlot","_this$props$titleSlot2","_this$props$actionSlo","_this$props$actionSlo2","visible","_jsxs","Wrap","rootProps","titleSlots","before","renderTitle","after","Box","flex","actionSlots","renderButtonCreate","styled","Typography","noWrap","height","display","alignItems","gap","padding"],"mappings":"igBA0BMA,IAAAA,aAAc,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAuCjB,OAvCiBP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,sBAgBG,WACnB,OAAKA,EAAKY,MAAMC,WACTC,GAAsB,SAACC,GAAO,IAAAC,EAAA,OACnCC,EAACC,GAAQC,MAAM,aAAYC,SACzBH,EAACI,EAAMC,EAAAA,EAAA,CACLC,KAAK,QACLC,QAAS,WAAF,OAAQT,EAAQU,KAAK,CAAEC,cAAe,WAAF,OAAQ1B,EAAKY,MAAMC,UAAU,GAAG,EAC3Ec,UAAWV,EAACW,EAAqB,CAAAC,SAAS,UAC1CC,GAAI,CAAEC,WAAY,KAClBC,QAAQ,aACY,QADDhB,EACfhB,EAAKY,MAAMqB,aAAK,IAAAjB,OAAA,EAAhBA,EAAkBkB,mBAAiB,CAAA,EAAA,uBAIjC,IAbuBjB,WAepCN,EAAAX,EAAA,eAEa,WAAK,IAAAmC,EACjBC,EAAyC,QAAzCD,EAA+BnC,EAAKY,aAAK,IAAAuB,EAAAA,EAAI,CAAE,EAAvChB,EAAKiB,EAALjB,MAAOkB,EAAWD,EAAXC,YACf,OAAIA,EAAoBpB,EAACqB,EAAW,CAACC,MAAOF,IACNpB,EAAjB,iBAAVE,EAA4BqB,EAChCC,EADuC,CAAArB,SAAAD,OAE/CnB,CAAA,CAAA,OAAA0C,EAAA3C,EAvCyB4C,GAuCzBC,EAAA7C,EAAA,CAAA,CAAA8C,IAAA,SAAAN,MAtCD,WAAM,IAAAO,EAAAC,EAAAC,EAAAC,EAAAC,EACJ,IAA2B,IAAvBzC,KAAKG,MAAMuC,QACf,OACEC,EAACC,EAAI/B,EAAAA,KAAqB,QAArBwB,EAAKrC,KAAKG,MAAMqB,aAAXa,IAAgBA,OAAhBA,EAAAA,EAAkBQ,WAAS,GAAA,CAAAlC,SAAA,CACb,QADa2B,EAClCtC,KAAKG,MAAM2C,kBAAXR,IAAqBA,OAArBA,EAAAA,EAAuBS,OACvB/C,KAAKgD,cACgB,QADHT,EAClBvC,KAAKG,MAAM2C,kBAAU,IAAAP,OAAA,EAArBA,EAAuBU,MACxBzC,EAAC0C,EAAI,CAAA7B,GAAI,CAAE8B,KAAM,aAAOX,EACvBxC,KAAKG,MAAMiD,mBAAW,IAAAZ,OAAA,EAAtBA,EAAwBO,OACxB/C,KAAKqD,qBACiBZ,QADGA,EACzBzC,KAAKG,MAAMiD,mBAAXX,IAAsBA,OAAtBA,EAAAA,EAAwBQ,SAG/B,IAAC,IA8CGlB,EAAQuB,GAAO,SAACnD,GAAsB,OAAKK,EAAC+C,EAAU1C,EAAA,CAAC2C,UAAOjC,QAAQ,aAAgBpB,GAAS,GAAvFmD,CAAyF,CACrGhC,WAAY,IACZ6B,KAAM,IAGFP,EAAOU,EAAOJ,EAAPI,CAAY,CACvBG,OAAQ,8BACRC,QAAS,OACTC,WAAY,SACZC,IAAK,MACLC,QAAS"}
1
+ {"version":3,"file":"toolbar-pannel.js","sources":["../../src/table-grid/toolbar-pannel.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Box, BoxProps, Button, ButtonProps, styled, Tooltip, Typography, TypographyProps } from '@mui/material'\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'\r\nimport { mapGlobalModalContext } from '../api-context'\r\nimport { Breadcrumbs, IBreadcrumbConfig } from '../components'\r\n\r\nexport interface ISectionSlots {\r\n before?: React.ReactNode\r\n after?: React.ReactNode\r\n}\r\n\r\nexport interface IToolbarPannelProps {\r\n /** @default true */\r\n visible?: boolean\r\n searchInclude?: string[]\r\n breadcrumbs?: IBreadcrumbConfig[]\r\n title?: React.ReactNode\r\n titleSlots?: ISectionSlots\r\n formCreate?: React.ReactNode\r\n actionSlots?: ISectionSlots\r\n slots?: {\r\n rootProps?: BoxProps\r\n buttonCreateProps?: ButtonProps\r\n }\r\n}\r\n\r\nclass ToolbarPannel extends Component<IToolbarPannelProps> {\r\n render() {\r\n if (this.props.visible === false) return\r\n return (\r\n <Wrap {...this.props.slots?.rootProps}>\r\n {this.props.titleSlots?.before}\r\n {this.renderTitle()}\r\n {this.props.titleSlots?.after}\r\n <Box sx={{ flex: 1 }} />\r\n {this.props.actionSlots?.before}\r\n {this.renderButtonCreate()}\r\n {this.props.actionSlots?.after}\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderButtonCreate = () => {\r\n if (!this.props.formCreate) return <></>\r\n return mapGlobalModalContext((context) => (\r\n <Tooltip title='Create new'>\r\n <Button\r\n size='small'\r\n onClick={() => context.show({ renderContent: () => this.props.formCreate })}\r\n startIcon={<AddCircleOutlineIcon fontSize='small' />}\r\n sx={{ fontWeight: 600 }}\r\n variant='contained'\r\n {...this.props.slots?.buttonCreateProps}\r\n >\r\n Create\r\n </Button>\r\n </Tooltip>\r\n ))\r\n }\r\n\r\n renderTitle = () => {\r\n const { title, breadcrumbs } = this.props ?? {}\r\n if (breadcrumbs) return <Breadcrumbs value={breadcrumbs} />\r\n if (typeof title === 'string') return <Title>{title}</Title>\r\n return <>{title}</>\r\n }\r\n}\r\n\r\nexport default ToolbarPannel\r\n\r\n// const SearchHelp = styled('ul')({\r\n// margin: '0 0 0 18px',\r\n// padding: 0,\r\n// li: {\r\n// position: 'relative'\r\n// },\r\n// 'li::after': {\r\n// content: '\"►\"',\r\n// display: 'inline-block',\r\n// top: '50%',\r\n// transform: 'translateY(-50%)',\r\n// position: 'absolute',\r\n// left: '-18px'\r\n// }\r\n// })\r\n\r\nconst Title = styled((props: TypographyProps) => <Typography noWrap variant='subtitle1' {...props} />)({\r\n fontWeight: 700,\r\n flex: 1\r\n})\r\n\r\nconst Wrap = styled(Box)({\r\n height: 'var(--height-toolbar, 56px)',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n padding: '0 6px'\r\n})\r\n"],"names":["ToolbarPannel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","formCreate","mapGlobalModalContext","context","_this$props$slots","_jsx","Tooltip","title","children","Button","_objectSpread","size","onClick","show","renderContent","startIcon","AddCircleOutlineIcon","fontSize","sx","fontWeight","variant","slots","buttonCreateProps","_this$props","_ref","breadcrumbs","Breadcrumbs","value","Title","_Fragment","_inherits","Component","_createClass","key","_this$props$slots2","_this$props$titleSlot","_this$props$titleSlot2","_this$props$actionSlo","_this$props$actionSlo2","visible","_jsxs","Wrap","rootProps","titleSlots","before","renderTitle","after","Box","flex","actionSlots","renderButtonCreate","styled","Typography","noWrap","height","display","alignItems","gap","padding"],"mappings":"ghBA0BMA,IAAAA,aAAc,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAuCjB,OAvCiBP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,sBAgBG,WACnB,OAAKA,EAAKY,MAAMC,WACTC,GAAsB,SAACC,GAAO,IAAAC,EAAA,OACnCC,EAACC,GAAQC,MAAM,aAAYC,SACzBH,EAACI,EAAMC,EAAAA,EAAA,CACLC,KAAK,QACLC,QAAS,WAAF,OAAQT,EAAQU,KAAK,CAAEC,cAAe,WAAF,OAAQ1B,EAAKY,MAAMC,UAAU,GAAG,EAC3Ec,UAAWV,EAACW,EAAqB,CAAAC,SAAS,UAC1CC,GAAI,CAAEC,WAAY,KAClBC,QAAQ,aACY,QADDhB,EACfhB,EAAKY,MAAMqB,aAAK,IAAAjB,OAAA,EAAhBA,EAAkBkB,mBAAiB,CAAA,EAAA,uBAIjC,IAbuBjB,WAepCN,EAAAX,EAAA,eAEa,WAAK,IAAAmC,EACjBC,EAAyC,QAAzCD,EAA+BnC,EAAKY,aAAK,IAAAuB,EAAAA,EAAI,CAAE,EAAvChB,EAAKiB,EAALjB,MAAOkB,EAAWD,EAAXC,YACf,OAAIA,EAAoBpB,EAACqB,EAAW,CAACC,MAAOF,IACNpB,EAAjB,iBAAVE,EAA4BqB,EAChCC,EADuC,CAAArB,SAAAD,OAE/CnB,CAAA,CAAA,OAAA0C,EAAA3C,EAvCyB4C,GAuCzBC,EAAA7C,EAAA,CAAA,CAAA8C,IAAA,SAAAN,MAtCD,WAAM,IAAAO,EAAAC,EAAAC,EAAAC,EAAAC,EACJ,IAA2B,IAAvBzC,KAAKG,MAAMuC,QACf,OACEC,EAACC,EAAI/B,EAAAA,KAAqB,QAArBwB,EAAKrC,KAAKG,MAAMqB,aAAXa,IAAgBA,OAAhBA,EAAAA,EAAkBQ,WAAS,GAAA,CAAAlC,SAAA,CACb,QADa2B,EAClCtC,KAAKG,MAAM2C,kBAAXR,IAAqBA,OAArBA,EAAAA,EAAuBS,OACvB/C,KAAKgD,cACgB,QADHT,EAClBvC,KAAKG,MAAM2C,kBAAU,IAAAP,OAAA,EAArBA,EAAuBU,MACxBzC,EAAC0C,EAAI,CAAA7B,GAAI,CAAE8B,KAAM,aAAOX,EACvBxC,KAAKG,MAAMiD,mBAAW,IAAAZ,OAAA,EAAtBA,EAAwBO,OACxB/C,KAAKqD,qBACiBZ,QADGA,EACzBzC,KAAKG,MAAMiD,mBAAXX,IAAsBA,OAAtBA,EAAAA,EAAwBQ,SAG/B,IAAC,IA8CGlB,EAAQuB,GAAO,SAACnD,GAAsB,OAAKK,EAAC+C,EAAU1C,EAAA,CAAC2C,UAAOjC,QAAQ,aAAgBpB,GAAS,GAAvFmD,CAAyF,CACrGhC,WAAY,IACZ6B,KAAM,IAGFP,EAAOU,EAAOJ,EAAPI,CAAY,CACvBG,OAAQ,8BACRC,QAAS,OACTC,WAAY,SACZC,IAAK,MACLC,QAAS"}
@@ -3,11 +3,13 @@ import { TypographyProps } from '@mui/material';
3
3
  export interface IBreadcrumbConfig {
4
4
  label: string;
5
5
  url?: string;
6
- propsGetter?: () => TypographyProps;
6
+ props?: TypographyProps & {
7
+ [key: string]: any;
8
+ };
7
9
  onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
8
10
  }
9
11
  export interface IBreadcrumbsProps {
10
12
  value?: IBreadcrumbConfig[];
11
13
  }
12
- declare const Breadcrumbs: FC<IBreadcrumbsProps>;
14
+ export declare const Breadcrumbs: FC<IBreadcrumbsProps>;
13
15
  export default Breadcrumbs;
@@ -30,6 +30,6 @@ export declare const MfeNavigationProvider: FC<IMfeNavigationProviderProps>;
30
30
  export interface IMfeLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
31
31
  routeKey?: string;
32
32
  }
33
- export declare const MfeLink: FC<IMfeLinkProps>;
33
+ export declare const MfeLink: import("react").ForwardRefExoticComponent<IMfeLinkProps & import("react").RefAttributes<HTMLAnchorElement>>;
34
34
  export declare const mfeNavigation: (routeKey: string) => void;
35
35
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-core",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "description": "Dinocollab core - libraries for building collaborative applications with React 18",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",