dinocollab-core 2.1.26 → 2.1.28

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{defineProperty as t,slicedToArray as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i,jsxs as n}from"react/jsx-runtime";import{styled as o}from"@mui/material";import{useRef as a,useState as r,useLayoutEffect as c,useMemo as s}from"react";import{EViewMode as l}from"./view-mode.types.js";var u=function(t){var o=a(null),u=a(null),p=a(null),h=r("auto"),m=e(h,2),f=m[0],g=m[1];c((function(){var e=function(){var e,i,n,o,a=null!==(e=null===(i=u.current)||void 0===i?void 0:i.offsetHeight)&&void 0!==e?e:0,r=null!==(n=null===(o=p.current)||void 0===o?void 0:o.offsetHeight)&&void 0!==n?n:0,c=t.mode===l.List?a:r;g(c>0?c:"auto")};e();var i=new ResizeObserver(e);return u.current&&i.observe(u.current),p.current&&i.observe(p.current),function(){i.disconnect()}}),[t.mode,t.listNode,t.moduleNode,t.autoHeight]);var b=s((function(){var e=d.root,i=d.pane,n=d.paneList,o=d.paneModule,a=d.visible,r=d.hidden,c=d.autoHeight;return{root:[e,t.autoHeight?c:""],paneList:[i,n,t.mode===l.List?a:r],paneModule:[i,o,t.mode===l.Module?a:r]}}),[t.mode,t.autoHeight]);return i(v,{className:b.root.join(" "),children:n("div",{ref:o,className:d.content,style:"auto"===f?void 0:{height:"".concat(f,"px")},children:[i("div",{ref:u,className:b.paneList.join(" "),children:t.listNode}),i("div",{ref:p,className:b.paneModule.join(" "),children:t.moduleNode})]})})},d={root:"AnimationSwitch-root",content:"AnimationSwitch-content",autoHeight:"AnimationSwitch-auto-height",pane:"AnimationSwitch-pane",paneList:"AnimationSwitch-pane-list",paneModule:"AnimationSwitch-pane-module",visible:"AnimationSwitch-visible",hidden:"AnimationSwitch-hidden"},p=function(t,e){return"".concat((null==e?void 0:e.prefix)||"",".").concat(d[t]).concat((null==e?void 0:e.suffix)||"")},h={duration:.35,ease:[.25,.1,.25,1]},m="opacity ".concat(h.duration,"s cubic-bezier(").concat(h.ease.join(","),") , transform ").concat(h.duration,"s cubic-bezier(").concat(h.ease.join(","),")"),v=o("div")((function(e){var i=e.theme;return t(t(t(t(t(t({},p("root",{prefix:"&"}),{width:"100%"}),p("content"),{position:"relative",width:"100%",transition:"height ".concat(h.duration,"s cubic-bezier(").concat(h.ease.join(","),")")}),p("pane"),{position:"absolute",top:0,left:0,width:"100%",willChange:"opacity, transform",transition:m,paddingLeft:i.spacing(.5),paddingRight:i.spacing(.5)}),p("visible"),{opacity:1,transform:"translateY(0px) scale(1)",pointerEvents:"auto"}),p("hidden"),{opacity:0,transform:"translateY(".concat(i.spacing(2),") scale(0.98)"),pointerEvents:"none"}),"&:not(".concat(p("autoHeight"),")"),t(t({height:"100%"},p("content"),{height:"100%"}),p("pane"),{height:"100%",display:"flex"}))}));export{v as AnimationSwitchStyled,d as animationSwitchClasses,u as default};
1
+ import{defineProperty as t,objectSpread2 as n,slicedToArray as e}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as r,jsxs as i}from"react/jsx-runtime";import{styled as o}from"@mui/material";import{useRef as a,useState as u,useEffect as l,useMemo as c,cloneElement as s}from"react";import{EViewMode as m}from"./view-mode.types.js";var d={enter:300,exit:180,ease:"cubic-bezier(0.25, 0.1, 0.25, 1)",delayEnter:40,delayExit:0,transformOriginList:"top center",transformOriginModule:"top center",translateY:10,horizontalScale:.98,mountDelay:50,hold:100},f=function(t){var o=a(null),s=a(null),f=a(null),p=n(n({},d),t.animConfig||{}),w=u(t.mode),g=e(w,2),x=g[0],T=g[1],D=u(!0),L=e(D,2),H=L[0],O=L[1],S=a(null),A=a(null);l((function(){var n,e;if(t.mode!==x){A.current&&(window.clearTimeout(A.current),A.current=null),S.current=t.mode;var r=null===(n=o.current)||void 0===n?void 0:n.offsetHeight;o.current&&"number"==typeof r&&(o.current.style.height="".concat(r,"px"),o.current.style.transition="height ".concat(p.enter,"ms ").concat(p.ease)),O(!1);var i=p.exit+(null!==(e=p.hold)&&void 0!==e?e:0);return A.current=window.setTimeout((function(){var t=S.current;S.current=null,null!=t&&(T(t),requestAnimationFrame((function(){var n,e,r,i,a=null!==(n=null!==(e=null===(r=(t===m.List?s:f).current)||void 0===r?void 0:r.offsetHeight)&&void 0!==e?e:null===(i=o.current)||void 0===i?void 0:i.offsetHeight)&&void 0!==n?n:0;O(!0),o.current&&(o.current.style.height="".concat(a,"px"),window.setTimeout((function(){o.current&&(o.current.style.height="")}),p.enter))}))),A.current=null}),i),function(){A.current&&(window.clearTimeout(A.current),A.current=null)}}}),[t.mode,x]);var E=c((function(){var n=h.root,e=h.pane,r=h.paneList,i=h.paneModule,o=h.autoHeight;return{root:[n,t.autoHeight?o:""],paneList:[e,r],paneModule:[e,i]}}),[t.mode,t.autoHeight]);return r(y,{className:E.root.join(" "),children:i("div",{ref:o,className:h.content,children:[x===m.List&&r(v,{open:H,timeout:{enter:d.enter,exit:d.exit},mountDelay:p.mountDelay,anim:p,style:{transitionTimingFunction:d.ease,transitionDuration:"".concat(d.enter,"ms"),transitionDelay:"".concat(H?p.delayEnter:p.delayExit,"ms"),transformOrigin:p.transformOriginList},children:r("div",{ref:s,className:E.paneList.join(" "),"aria-hidden":x!==m.List,children:t.listNode})}),x===m.Module&&r(v,{open:H,timeout:{enter:d.enter,exit:d.exit},mountDelay:p.mountDelay,anim:p,style:{transitionTimingFunction:d.ease,transitionDuration:"".concat(d.enter,"ms"),transitionDelay:"".concat(H?p.delayEnter:p.delayExit,"ms"),transformOrigin:p.transformOriginModule},children:r("div",{ref:f,className:E.paneModule.join(" "),"aria-hidden":x!==m.Module,children:t.moduleNode})})]})})},h={root:"AnimationSwitch-root",content:"AnimationSwitch-content",autoHeight:"AnimationSwitch-auto-height",pane:"AnimationSwitch-pane",paneList:"AnimationSwitch-pane-list",paneModule:"AnimationSwitch-pane-module"},p=function(t,n){return"".concat((null==n?void 0:n.prefix)||"",".").concat(h[t]).concat((null==n?void 0:n.suffix)||"")},y=o("div")((function(n){return n.theme,t(t(t({},p("root",{prefix:"&"}),{width:"100%"}),p("content"),{position:"relative",width:"100%"}),"&:not(".concat(p("autoHeight"),")"),t(t({height:"100%"},p("content"),{height:"100%"}),p("pane"),{height:"100%",display:"flex"}))})),v=function(t){var r,i,o=t.open,c=t.timeout,m=t.mountDelay,f=t.style,h=t.anim,p=t.children,y=null!=h?h:d,v="number"==typeof c?c:null!==(r=null==c?void 0:c.enter)&&void 0!==r?r:y.enter,w="number"==typeof c?c:null!==(i=null==c?void 0:c.exit)&&void 0!==i?i:y.exit,g=null!=m?m:y.mountDelay,x=u(o),T=e(x,2),D=T[0],L=T[1],H=u(o),O=e(H,2),S=O[0],A=O[1],E=a(null),M=a(null);if(l((function(){if(o)return M.current&&(window.clearTimeout(M.current),M.current=null),L(!0),void(g>0?(E.current&&window.clearTimeout(E.current),E.current=window.setTimeout((function(){A(!0),E.current=null}),g)):A(!0));A(!1),E.current&&(window.clearTimeout(E.current),E.current=null),M.current&&window.clearTimeout(M.current),M.current=window.setTimeout((function(){L(!1),M.current=null}),w)}),[o,g,v,w]),l((function(){return function(){E.current&&window.clearTimeout(E.current),M.current&&window.clearTimeout(M.current)}}),[]),!D)return null;var b={transitionProperty:"opacity, transform",transitionTimingFunction:y.ease,transitionDuration:"".concat(S?v:w,"ms"),transitionDelay:"".concat(S?y.delayEnter:y.delayExit,"ms"),transformOrigin:(null==f?void 0:f.transformOrigin)||y.transformOriginList},j={opacity:0,transform:"translateY(".concat(y.translateY,"px) scaleX(").concat(y.horizontalScale,")")},N=n(n(n({},b),S?{opacity:1,transform:"translateY(0) scaleX(1)"}:j),f);return s(p,{style:N})};export{y as AnimationSwitchStyled,h as animationSwitchClasses,f as default};
2
2
  //# sourceMappingURL=animation-switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animation-switch.js","sources":["../../../src/data-view/animation-switch.tsx"],"sourcesContent":["import { styled } from '@mui/material'\r\nimport { FC, ReactNode, useLayoutEffect, useMemo, useRef, useState } from 'react'\r\nimport { EViewMode } from './view-mode.types'\r\n\r\ninterface IProps {\r\n mode: EViewMode\r\n moduleNode: ReactNode\r\n listNode: ReactNode\r\n autoHeight?: boolean\r\n}\r\n\r\nconst AnimationSwitch: FC<IProps> = (props) => {\r\n // refs to measure heights\r\n const wrapperRef = useRef<HTMLDivElement | null>(null)\r\n const listRef = useRef<HTMLDivElement | null>(null)\r\n const moduleRef = useRef<HTMLDivElement | null>(null)\r\n const [height, setHeight] = useState<number | 'auto'>('auto')\r\n\r\n useLayoutEffect(() => {\r\n const measure = () => {\r\n const listH = listRef.current?.offsetHeight ?? 0\r\n const moduleH = moduleRef.current?.offsetHeight ?? 0\r\n const visibleH = props.mode === EViewMode.List ? listH : moduleH\r\n // if both are 0, keep auto\r\n setHeight(visibleH > 0 ? visibleH : 'auto')\r\n }\r\n\r\n // initial measure (after layout)\r\n measure()\r\n\r\n // observe dynamic content changes\r\n const ro = new ResizeObserver(measure)\r\n if (listRef.current) ro.observe(listRef.current)\r\n if (moduleRef.current) ro.observe(moduleRef.current)\r\n\r\n return () => {\r\n ro.disconnect()\r\n }\r\n }, [props.mode, props.listNode, props.moduleNode, props.autoHeight])\r\n\r\n const classes = useMemo(() => {\r\n const { root, pane, paneList, paneModule, visible, hidden, autoHeight } = animationSwitchClasses\r\n const rootClasses = [root, props.autoHeight ? autoHeight : '']\r\n const paneListClasses = [pane, paneList, props.mode === EViewMode.List ? visible : hidden]\r\n const paneModuleClasses = [pane, paneModule, props.mode === EViewMode.Module ? visible : hidden]\r\n return { root: rootClasses, paneList: paneListClasses, paneModule: paneModuleClasses }\r\n }, [props.mode, props.autoHeight])\r\n\r\n return (\r\n <AnimationSwitchStyled className={classes.root.join(' ')}>\r\n <div\r\n ref={wrapperRef}\r\n className={animationSwitchClasses.content}\r\n // set explicit height when measured\r\n style={height === 'auto' ? undefined : { height: `${height}px` }}\r\n >\r\n <div ref={listRef} className={classes.paneList.join(' ')}>\r\n {props.listNode}\r\n </div>\r\n <div ref={moduleRef} className={classes.paneModule.join(' ')}>\r\n {props.moduleNode}\r\n </div>\r\n </div>\r\n </AnimationSwitchStyled>\r\n )\r\n}\r\nexport default AnimationSwitch\r\n\r\nexport const animationSwitchClasses = {\r\n root: 'AnimationSwitch-root',\r\n content: 'AnimationSwitch-content',\r\n autoHeight: 'AnimationSwitch-auto-height',\r\n pane: 'AnimationSwitch-pane',\r\n paneList: 'AnimationSwitch-pane-list',\r\n paneModule: 'AnimationSwitch-pane-module',\r\n visible: 'AnimationSwitch-visible',\r\n hidden: 'AnimationSwitch-hidden'\r\n}\r\n\r\nconst getClasses = (key: keyof typeof animationSwitchClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${animationSwitchClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nconst TRANSITION = { duration: 0.35, ease: [0.25, 0.1, 0.25, 1] }\r\nconst TRANSITION_CSS = `opacity ${TRANSITION.duration}s cubic-bezier(${TRANSITION.ease.join(',')}) , transform ${\r\n TRANSITION.duration\r\n}s cubic-bezier(${TRANSITION.ease.join(',')})`\r\n\r\nexport const AnimationSwitchStyled = styled('div')(({ theme }) => ({\r\n [getClasses('root', { prefix: '&' })]: { width: '100%' },\r\n [getClasses('content')]: {\r\n position: 'relative',\r\n width: '100%',\r\n transition: `height ${TRANSITION.duration}s cubic-bezier(${TRANSITION.ease.join(',')})`\r\n },\r\n // base pane styling for both list/module panes\r\n [getClasses('pane')]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n willChange: 'opacity, transform',\r\n transition: TRANSITION_CSS,\r\n paddingLeft: theme.spacing(0.5),\r\n paddingRight: theme.spacing(0.5)\r\n },\r\n // visible/hidden state classes\r\n [getClasses('visible')]: {\r\n opacity: 1,\r\n transform: 'translateY(0px) scale(1)',\r\n pointerEvents: 'auto'\r\n },\r\n [getClasses('hidden')]: {\r\n opacity: 0,\r\n transform: `translateY(${theme.spacing(2)}) scale(0.98)`,\r\n pointerEvents: 'none'\r\n },\r\n // autoHeight mode\r\n // [getClasses('autoHeight', { prefix: '&' })]: { overflowY: 'hidden' },\r\n [`&:not(${getClasses('autoHeight')})`]: {\r\n height: '100%',\r\n [getClasses('content')]: { height: '100%' },\r\n [getClasses('pane')]: { height: '100%', display: 'flex' }\r\n }\r\n}))\r\n"],"names":["AnimationSwitch","props","wrapperRef","useRef","listRef","moduleRef","_useState","useState","_useState2","_slicedToArray","height","setHeight","useLayoutEffect","measure","_listRef$current$offs","_listRef$current","_moduleRef$current$of","_moduleRef$current","listH","current","offsetHeight","moduleH","visibleH","mode","EViewMode","List","ro","ResizeObserver","observe","disconnect","listNode","moduleNode","autoHeight","classes","useMemo","root","animationSwitchClasses","pane","paneList","paneModule","visible","hidden","Module","_jsx","AnimationSwitchStyled","className","join","children","_jsxs","ref","content","style","undefined","concat","getClasses","key","options","prefix","suffix","TRANSITION","duration","ease","TRANSITION_CSS","styled","_ref","theme","_defineProperty","width","position","transition","top","left","willChange","paddingLeft","spacing","paddingRight","opacity","transform","pointerEvents","display"],"mappings":"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"}
1
+ {"version":3,"file":"animation-switch.js","sources":["../../../src/data-view/animation-switch.tsx"],"sourcesContent":["import { styled } from '@mui/material'\r\nimport { useMemo, useRef, useState, useEffect, cloneElement } from 'react'\r\nimport type { FC, ReactNode, ReactElement, CSSProperties } from 'react'\r\nimport { EViewMode } from './view-mode.types'\r\n\r\n// Animation defaults and configuration for the view-mode switch.\r\n// These values can be tuned here or overridden via the `animConfig` prop.\r\nconst DEFAULT_ANIM = {\r\n enter: 300,\r\n exit: 180,\r\n ease: 'cubic-bezier(0.25, 0.1, 0.25, 1)',\r\n delayEnter: 40,\r\n delayExit: 0,\r\n transformOriginList: 'top center',\r\n transformOriginModule: 'top center',\r\n // how far to translate vertically when hiding (px)\r\n translateY: 10,\r\n // horizontal shrink factor (1 = no shrink, 0.95 = 95% width)\r\n horizontalScale: 0.98,\r\n // how long to wait (ms) after mounting children before starting enter animation\r\n mountDelay: 50,\r\n // extra hold time (ms) after exit completes before shrinking height\r\n hold: 100\r\n}\r\n\r\ninterface IProps {\r\n mode: EViewMode\r\n moduleNode: ReactNode\r\n listNode: ReactNode\r\n autoHeight?: boolean\r\n animConfig?: Partial<typeof DEFAULT_ANIM>\r\n}\r\n\r\nconst AnimationSwitch: FC<IProps> = (props) => {\r\n // refs to measure heights\r\n const wrapperRef = useRef<HTMLDivElement | null>(null)\r\n const listRef = useRef<HTMLDivElement | null>(null)\r\n const moduleRef = useRef<HTMLDivElement | null>(null)\r\n // animation config merged from defaults + props\r\n const anim = { ...DEFAULT_ANIM, ...(props.animConfig || {}) }\r\n\r\n // mountedMode: which pane is currently mounted (rendered). We sequence\r\n // transitions by hiding the currently mounted pane first, then swapping\r\n // to the requested mode after the exit animation finishes.\r\n const [mountedMode, setMountedMode] = useState<EViewMode>(props.mode)\r\n const [mountedOpen, setMountedOpen] = useState<boolean>(true)\r\n const pendingModeRef = useRef<EViewMode | null>(null)\r\n const exitTimerRef = useRef<number | null>(null)\r\n\r\n useEffect(() => {\r\n // if prop didn't change, nothing to do\r\n if (props.mode === mountedMode) return\r\n\r\n // if a swap is already pending, replace it\r\n if (exitTimerRef.current) {\r\n window.clearTimeout(exitTimerRef.current)\r\n exitTimerRef.current = null\r\n }\r\n\r\n // request a swap: hide the currently mounted pane first\r\n pendingModeRef.current = props.mode\r\n\r\n // lock the current wrapper height so it doesn't shrink immediately\r\n const currentH = wrapperRef.current?.offsetHeight\r\n if (wrapperRef.current && typeof currentH === 'number') {\r\n wrapperRef.current.style.height = `${currentH}px`\r\n wrapperRef.current.style.transition = `height ${anim.enter}ms ${anim.ease}`\r\n }\r\n\r\n setMountedOpen(false)\r\n\r\n // after exit duration + optional hold, swap mounted pane and show it\r\n const exitDur = anim.exit\r\n const totalDelay = exitDur + (anim.hold ?? 0)\r\n exitTimerRef.current = window.setTimeout(() => {\r\n const next = pendingModeRef.current\r\n pendingModeRef.current = null\r\n if (next != null) {\r\n // mount the next pane\r\n setMountedMode(next)\r\n\r\n // wait a frame for DOM to mount the new content, measure and animate height\r\n requestAnimationFrame(() => {\r\n const targetRef = next === EViewMode.List ? listRef : moduleRef\r\n const newH = targetRef.current?.offsetHeight ?? wrapperRef.current?.offsetHeight ?? 0\r\n\r\n // start enter animation for the new pane\r\n setMountedOpen(true)\r\n\r\n // animate wrapper height from previous to new\r\n if (wrapperRef.current) {\r\n // ensure we set a numeric height first (we set currentH earlier)\r\n wrapperRef.current.style.height = `${newH}px`\r\n // after the transition finishes, reset to auto\r\n window.setTimeout(() => {\r\n if (wrapperRef.current) wrapperRef.current.style.height = ''\r\n }, anim.enter)\r\n }\r\n })\r\n }\r\n exitTimerRef.current = null\r\n }, totalDelay)\r\n\r\n return () => {\r\n if (exitTimerRef.current) {\r\n window.clearTimeout(exitTimerRef.current)\r\n exitTimerRef.current = null\r\n }\r\n }\r\n }, [props.mode, mountedMode])\r\n\r\n const classes = useMemo(() => {\r\n const { root, pane, paneList, paneModule, autoHeight } = animationSwitchClasses\r\n const rootClasses = [root, props.autoHeight ? autoHeight : '']\r\n const paneListClasses = [pane, paneList]\r\n const paneModuleClasses = [pane, paneModule]\r\n return { root: rootClasses, paneList: paneListClasses, paneModule: paneModuleClasses }\r\n }, [props.mode, props.autoHeight])\r\n\r\n return (\r\n <AnimationSwitchStyled className={classes.root.join(' ')}>\r\n <div ref={wrapperRef} className={animationSwitchClasses.content}>\r\n {mountedMode === EViewMode.List && (\r\n <CombinedTransition\r\n open={mountedOpen}\r\n timeout={{ enter: DEFAULT_ANIM.enter, exit: DEFAULT_ANIM.exit }}\r\n mountDelay={anim.mountDelay}\r\n anim={anim}\r\n style={{\r\n transitionTimingFunction: DEFAULT_ANIM.ease,\r\n transitionDuration: `${DEFAULT_ANIM.enter}ms`,\r\n transitionDelay: `${mountedOpen ? anim.delayEnter : anim.delayExit}ms`,\r\n transformOrigin: anim.transformOriginList\r\n }}\r\n >\r\n <div ref={listRef} className={classes.paneList.join(' ')} aria-hidden={mountedMode !== EViewMode.List}>\r\n {props.listNode}\r\n </div>\r\n </CombinedTransition>\r\n )}\r\n\r\n {mountedMode === EViewMode.Module && (\r\n <CombinedTransition\r\n open={mountedOpen}\r\n timeout={{ enter: DEFAULT_ANIM.enter, exit: DEFAULT_ANIM.exit }}\r\n mountDelay={anim.mountDelay}\r\n anim={anim}\r\n style={{\r\n transitionTimingFunction: DEFAULT_ANIM.ease,\r\n transitionDuration: `${DEFAULT_ANIM.enter}ms`,\r\n transitionDelay: `${mountedOpen ? anim.delayEnter : anim.delayExit}ms`,\r\n transformOrigin: anim.transformOriginModule\r\n }}\r\n >\r\n <div ref={moduleRef} className={classes.paneModule.join(' ')} aria-hidden={mountedMode !== EViewMode.Module}>\r\n {props.moduleNode}\r\n </div>\r\n </CombinedTransition>\r\n )}\r\n </div>\r\n </AnimationSwitchStyled>\r\n )\r\n}\r\nexport default AnimationSwitch\r\n\r\nexport const animationSwitchClasses = {\r\n root: 'AnimationSwitch-root',\r\n content: 'AnimationSwitch-content',\r\n autoHeight: 'AnimationSwitch-auto-height',\r\n pane: 'AnimationSwitch-pane',\r\n paneList: 'AnimationSwitch-pane-list',\r\n paneModule: 'AnimationSwitch-pane-module'\r\n}\r\n\r\nconst getClasses = (key: keyof typeof animationSwitchClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${animationSwitchClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const AnimationSwitchStyled = styled('div')(({ theme }) => ({\r\n [getClasses('root', { prefix: '&' })]: { width: '100%' },\r\n [getClasses('content')]: {\r\n position: 'relative',\r\n width: '100%'\r\n },\r\n // autoHeight mode\r\n // [getClasses('autoHeight', { prefix: '&' })]: { overflow: 'clip' },\r\n [`&:not(${getClasses('autoHeight')})`]: {\r\n height: '100%',\r\n [getClasses('content')]: { height: '100%' },\r\n [getClasses('pane')]: { height: '100%', display: 'flex' }\r\n }\r\n}))\r\n\r\n// Custom Transition-like component that mounts children immediately\r\n// then waits `mountDelay` before starting the enter animation. On close,\r\n// it runs the exit animation and then unmounts after exit duration.\r\nconst CombinedTransition: FC<{\r\n open: boolean\r\n timeout?: number | { enter?: number; exit?: number }\r\n mountDelay?: number\r\n style?: CSSProperties\r\n anim?: typeof DEFAULT_ANIM\r\n children: ReactElement\r\n}> = ({ open, timeout, mountDelay, style, anim, children }) => {\r\n const cfg = anim ?? DEFAULT_ANIM\r\n const enterDur = typeof timeout === 'number' ? timeout : timeout?.enter ?? cfg.enter\r\n const exitDur = typeof timeout === 'number' ? timeout : timeout?.exit ?? cfg.exit\r\n const delayMount = mountDelay ?? cfg.mountDelay\r\n\r\n const [mounted, setMounted] = useState(open)\r\n const [showing, setShowing] = useState(open)\r\n const mountTimer = useRef<number | null>(null)\r\n const unmountTimer = useRef<number | null>(null)\r\n\r\n useEffect(() => {\r\n // open -> mount immediately, then wait mountDelay before starting enter\r\n if (open) {\r\n if (unmountTimer.current) {\r\n window.clearTimeout(unmountTimer.current)\r\n unmountTimer.current = null\r\n }\r\n setMounted(true)\r\n // delay the start of the enter animation so inner children can render\r\n if (delayMount > 0) {\r\n if (mountTimer.current) window.clearTimeout(mountTimer.current)\r\n mountTimer.current = window.setTimeout(() => {\r\n setShowing(true)\r\n mountTimer.current = null\r\n }, delayMount)\r\n } else {\r\n setShowing(true)\r\n }\r\n return\r\n }\r\n\r\n // close -> start exit immediately, then unmount after exitDur\r\n setShowing(false)\r\n if (mountTimer.current) {\r\n window.clearTimeout(mountTimer.current)\r\n mountTimer.current = null\r\n }\r\n if (unmountTimer.current) window.clearTimeout(unmountTimer.current)\r\n unmountTimer.current = window.setTimeout(() => {\r\n setMounted(false)\r\n unmountTimer.current = null\r\n }, exitDur)\r\n return\r\n }, [open, delayMount, enterDur, exitDur])\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (mountTimer.current) window.clearTimeout(mountTimer.current)\r\n if (unmountTimer.current) window.clearTimeout(unmountTimer.current)\r\n }\r\n }, [])\r\n\r\n if (!mounted) return null\r\n\r\n const baseStyle: CSSProperties = {\r\n transitionProperty: 'opacity, transform',\r\n transitionTimingFunction: cfg.ease,\r\n transitionDuration: `${showing ? enterDur : exitDur}ms`,\r\n transitionDelay: `${showing ? cfg.delayEnter : cfg.delayExit}ms`,\r\n transformOrigin: style?.transformOrigin || cfg.transformOriginList\r\n }\r\n\r\n const visibleStyle: CSSProperties = { opacity: 1, transform: `translateY(0) scaleX(1)` }\r\n const hiddenStyle: CSSProperties = { opacity: 0, transform: `translateY(${cfg.translateY}px) scaleX(${cfg.horizontalScale})` }\r\n\r\n const styleObj: CSSProperties = { ...baseStyle, ...(showing ? visibleStyle : hiddenStyle), ...style }\r\n\r\n return cloneElement(children, { style: styleObj })\r\n}\r\n"],"names":["DEFAULT_ANIM","enter","exit","ease","delayEnter","delayExit","transformOriginList","transformOriginModule","translateY","horizontalScale","mountDelay","hold","AnimationSwitch","props","wrapperRef","useRef","listRef","moduleRef","anim","_objectSpread","animConfig","_useState","useState","mode","_useState2","_slicedToArray","mountedMode","setMountedMode","_useState3","_useState4","mountedOpen","setMountedOpen","pendingModeRef","exitTimerRef","useEffect","_wrapperRef$current","_anim$hold","current","window","clearTimeout","currentH","offsetHeight","style","height","concat","transition","totalDelay","setTimeout","next","requestAnimationFrame","_ref","_targetRef$current$of","_targetRef$current","_wrapperRef$current2","newH","EViewMode","List","classes","useMemo","root","animationSwitchClasses","pane","paneList","paneModule","autoHeight","_jsx","AnimationSwitchStyled","className","join","children","_jsxs","ref","content","CombinedTransition","open","timeout","transitionTimingFunction","transitionDuration","transitionDelay","transformOrigin","listNode","Module","moduleNode","getClasses","key","options","prefix","suffix","styled","_ref2","theme","_defineProperty","width","position","display","_ref4","_timeout$enter","_timeout$exit","cfg","enterDur","exitDur","delayMount","_useState5","_useState6","mounted","setMounted","_useState7","_useState8","showing","setShowing","mountTimer","unmountTimer","baseStyle","transitionProperty","hiddenStyle","opacity","transform","styleObj","cloneElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as t,inherits as e,createClass as i,objectSpread2 as n,classCallCheck as o,callSuper as r}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{Component as s}from"react";import{styled as c,Box as p,colors as d,tablePaginationClasses as g,alpha as u,Grid as m,Fade as h,CircularProgress as f,Typography as v,Divider as S,TablePagination as P}from"@mui/material";import{mergeObjects as b}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{tableGridClasses as x,defaultPagination as j}from"./helpers.js";import{CreateTableGridItemActions as C}from"./item-actions.js";import y from"./filter-bar/create.filter-bar.js";import"./filter-bar/types.js";import I from"./toolbar-pannel.js";import z from"../api-context/popover-global.js";import{GlobalModal as k}from"../api-context/global-modal.js";function w(c){var d,g=y(null!==(d=c.filterBarConfigs)&&void 0!==d?d:{fields:{}}),u=C(),w=function(){function d(){var e;o(this,d);for(var i=arguments.length,s=new Array(i),c=0;c<i;c++)s[c]=arguments[c];return e=r(this,d,[].concat(s)),t(e,"filterStateStore",{pagination:j}),t(e,"setFilterState",(function(t){try{t.details?e.filterStateStore=n({pagination:e.filterStateStore.pagination},t):e.filterStateStore=b({},e.filterState,t),e.props.onFilterChange&&e.props.onFilterChange(e.filterStateStore),e.forceUpdate()}catch(t){console.log(t)}})),t(e,"preRender",(function(t){return l(k,{children:[a(z.Provider,{}),t]})})),t(e,"getPagination",(function(){var t;return null!==(t=e.filterState.pagination)&&void 0!==t?t:j})),t(e,"getRootClasses",(function(){var t=[x.root];return e.filterState.loading&&t.push(x.loading),t.join(" ")})),t(e,"getItems",(function(){var t;return null!==(t=e.props.data.items)&&void 0!==t?t:[]})),t(e,"handleFilterChange",(function(t){e.setFilterState(t)})),t(e,"handleChangePage",(function(t,i){var n=e.getPagination();e.setFilterState({pagination:{page:i,pageSize:n.pageSize}})})),t(e,"handleChangeRowsPerPage",(function(t){e.setFilterState({pagination:{page:0,pageSize:parseInt(t.target.value,10)}})})),e}return e(d,s),i(d,[{key:"filterState",get:function(){var t;return null!==(t=this.props.filter)&&void 0!==t?t:this.filterStateStore}},{key:"slots",get:function(){var t,e,i,o,r,l,s;return n(n({},Object.assign({},c.slots,this.props.slots)),{},{TableGridItem:null!==(t=null!==(e=null===(i=this.props.slots)||void 0===i?void 0:i.item)&&void 0!==e?e:c.item)&&void 0!==t?t:function(){return a(N,{})},ToolbarPannel:null!==(o=null!==(r=null===(l=this.props.slots)||void 0===l?void 0:l.toolbar)&&void 0!==r?r:null===(s=c.slots)||void 0===s?void 0:s.toolbar)&&void 0!==o?o:I})}},{key:"mergeConfig",get:function(){var t;return{size:null!==(t=c.size)&&void 0!==t?t:{xs:12,sm:6,md:4}}}},{key:"render",value:function(){var t,e=this,i=this.slots,o=i.TableGridItem,r=i.ToolbarPannel,s=i.actionProps,d=this.getItems(),b=this.getPagination();return this.preRender(l(F,{className:this.getRootClasses(),children:[a(r,n({title:c.title},this.slots.toolbarProps)),a(g,{value:this.filterState,onChange:this.handleFilterChange}),l("div",{className:x.content,children:[a("div",{className:[x.contentInner,x.contentPosition].join(" "),children:a(m,n(n({container:!0,spacing:2},this.slots.gridContainer),{},{children:d.map((function(t,i){return a(m,n(n(n({item:!0},e.mergeConfig.size),e.slots.gridItem),{},{children:l("div",{className:x.item,children:[a(o,{value:t}),a(p,{className:x.actions,children:a(u,n({value:t},s))})]})}),c.getSelecterId(t).toString()+i)}))}))}),a(h,{in:this.filterState.loading,unmountOnExit:!0,children:a("div",{className:[x.overlay,x.contentPosition].join(" "),children:a(f,{size:36})})}),a(h,{in:d.length<1&&!this.filterState.loading,unmountOnExit:!0,children:a("div",{className:[x.noItems,x.contentPosition].join(" "),children:a(v,{variant:"body2",children:"No items data"})})})]}),a(S,{sx:{position:"relative",zIndex:2}}),a(P,{component:"div",count:null!==(t=this.props.data.totalItems)&&void 0!==t?t:0,page:b.page,onPageChange:this.handleChangePage,rowsPerPage:b.pageSize,onRowsPerPageChange:this.handleChangeRowsPerPage,slotProps:{select:{MenuProps:{disableScrollLock:!0}}}})]}))}}])}();return w}var F=c(p)(t(t(t(t(t(t(t(t({flex:1,height:"100%",display:"flex",flexDirection:"column"},".".concat(x.content),{position:"relative",flex:1,zIndex:1}),".".concat(x.contentPosition),{position:"absolute",top:0,left:0,width:"100%",height:"100%"}),".".concat(x.contentInner),{overflowY:"auto",padding:"10px 5px"}),".".concat(x.overlay),{display:"flex",alignItems:"center",justifyContent:"center",background:u(d.common.white,.4),zIndex:10}),".".concat(x.noItems),{display:"flex",alignItems:"center",justifyContent:"center"}),".".concat(x.item),{position:"relative"}),".".concat(x.actions),{position:"absolute",top:"5px",right:"5px",zIndex:5,display:"inline-block"}),".".concat(g.root),{background:d.common.white,position:"relative",zIndex:5})),N=c(p)({width:"100%",paddingBottom:"100%",background:d.grey[600]});export{w as default};
1
+ import{inherits as t,createClass as e,objectSpread2 as i,classCallCheck as r,callSuper as o,defineProperty as n}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{Component as s}from"react";import{Stack as d,Grid as c,Box as p,Fade as g,CircularProgress as u,Typography as h,Divider as m,TablePagination as f}from"@mui/material";import{mergeObjects as v}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{defaultPagination as S}from"./helpers.js";import{CreateTableGridItemActions as P}from"./item-actions.js";import j from"./filter-bar/create.filter-bar.js";import"./filter-bar/types.js";import{ItemDefault as b,TableGridStyled as C,tableGridClasses as y}from"./styled.js";import I from"./toolbar-pannel.js";import x from"../api-context/popover-global.js";import{GlobalModal as z}from"../api-context/global-modal.js";function F(F){var N,R=j(null!==(N=F.filterBarConfigs)&&void 0!==N?N:{fields:{}}),k=P(),w=function(){function P(){var t;r(this,P);for(var e=arguments.length,s=new Array(e),d=0;d<e;d++)s[d]=arguments[d];return t=o(this,P,[].concat(s)),n(t,"filterStateStore",{pagination:S}),n(t,"setFilterState",(function(e){try{e.details?t.filterStateStore=i({pagination:t.filterStateStore.pagination},e):t.filterStateStore=v({},t.filterState,e),t.props.onFilterChange&&t.props.onFilterChange(t.filterStateStore),t.forceUpdate()}catch(t){console.log(t)}})),n(t,"preRender",(function(t){return l(z,{children:[a(x.Provider,{}),t]})})),n(t,"getPagination",(function(){var e;return null!==(e=t.filterState.pagination)&&void 0!==e?e:S})),n(t,"getRootClasses",(function(){var e=[y.root];return t.filterState.loading&&e.push(y.loading),e.join(" ")})),n(t,"getItems",(function(){var e;return null!==(e=t.props.data.items)&&void 0!==e?e:[]})),n(t,"handleFilterChange",(function(e){t.setFilterState(e)})),n(t,"handleChangePage",(function(e,i){var r=t.getPagination();t.setFilterState({pagination:{page:i,pageSize:r.pageSize}})})),n(t,"handleChangeRowsPerPage",(function(e){t.setFilterState({pagination:{page:0,pageSize:parseInt(e.target.value,10)}})})),t}return t(P,s),e(P,[{key:"filterState",get:function(){var t;return null!==(t=this.props.filter)&&void 0!==t?t:this.filterStateStore}},{key:"slots",get:function(){var t,e,r,o,n,l,s;return i(i({},Object.assign({},F.slots,this.props.slots)),{},{TableGridItem:null!==(t=null!==(e=null===(r=this.props.slots)||void 0===r?void 0:r.item)&&void 0!==e?e:F.item)&&void 0!==t?t:function(){return a(b,{})},ToolbarPannel:null!==(o=null!==(n=null===(l=this.props.slots)||void 0===l?void 0:l.toolbar)&&void 0!==n?n:null===(s=F.slots)||void 0===s?void 0:s.toolbar)&&void 0!==o?o:I})}},{key:"mergeConfig",get:function(){var t;return{size:null!==(t=F.size)&&void 0!==t?t:{xs:12,sm:6,md:4}}}},{key:"render",value:function(){var t,e,r,o=this,n=this.slots,s=n.TableGridItem,v=n.ToolbarPannel,S=n.actionProps,P=this.getItems(),j=this.getPagination();return this.preRender(l(C,{className:this.getRootClasses(),children:[a(v,i({title:F.title},this.slots.toolbarProps)),l(d,{direction:"row",alignItems:"stretch",gap:1,children:[(null===(t=this.slots.filterBar)||void 0===t?void 0:t.before)||null,a(R,{value:this.filterState,onChange:this.handleFilterChange}),(null===(e=this.slots.filterBar)||void 0===e?void 0:e.after)||null]}),l("div",{className:y.content,children:[a("div",{className:[y.contentInner,y.contentPosition].join(" "),children:a(c,i(i({container:!0,spacing:2},this.slots.gridContainer),{},{children:P.map((function(t,e){return a(c,i(i(i({item:!0},o.mergeConfig.size),o.slots.gridItem),{},{children:l("div",{className:y.item,children:[a(s,{value:t}),a(p,{className:y.actions,children:a(k,i({value:t},S))})]})}),F.getSelecterId(t).toString()+e)}))}))}),a(g,{in:this.filterState.loading,unmountOnExit:!0,children:a("div",{className:[y.overlay,y.contentPosition].join(" "),children:a(u,{size:36})})}),a(g,{in:P.length<1&&!this.filterState.loading,unmountOnExit:!0,children:a("div",{className:[y.noItems,y.contentPosition].join(" "),children:a(h,{variant:"body2",children:"No items data"})})})]}),a(m,{sx:{position:"relative",zIndex:2}}),a(f,{component:"div",count:null!==(r=this.props.data.totalItems)&&void 0!==r?r:0,page:j.page,onPageChange:this.handleChangePage,rowsPerPage:j.pageSize,onRowsPerPageChange:this.handleChangeRowsPerPage,slotProps:{select:{MenuProps:{disableScrollLock:!0}}}})]}))}}])}();return w}export{F as default};
2
2
  //# sourceMappingURL=create.table-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.table-grid.js","sources":["../../../src/table-grid/create.table-grid.tsx"],"sourcesContent":["import React, { Component, ReactNode } from 'react'\r\nimport { alpha, Box, CircularProgress, colors, Divider, Fade, Grid, styled, TablePagination, tablePaginationClasses, Typography } from '@mui/material'\r\nimport { mergeObjects } from '../utils'\r\nimport { defaultPagination, tableGridClasses } from './helpers'\r\nimport { CreateTableGridItemActions } from './item-actions'\r\nimport { GlobalModal, PopoverGlobal } from '../api-context'\r\nimport { CreateFilterBar, IFilterState } from './filter-bar'\r\nimport { ITableGridFilter, IPaginationModel, ITableGridParams, ITableGridProps, ITableGridInnerSlots } from './types'\r\nimport ToolbarPannelDefault from './toolbar-pannel'\r\n\r\nfunction CreateTableGrid<T extends object>(params: ITableGridParams<T>): React.ComponentType<ITableGridProps<T>> {\r\n const FilterBarInstance = CreateFilterBar<T>(params.filterBarConfigs ?? { fields: {} })\r\n const ItemActions = CreateTableGridItemActions<T>()\r\n\r\n class TableGrid extends Component<ITableGridProps<T>> {\r\n private filterStateStore: ITableGridFilter<T> = { pagination: defaultPagination }\r\n get filterState(): ITableGridFilter<T> {\r\n return this.props.filter ?? this.filterStateStore\r\n }\r\n\r\n get slots(): ITableGridInnerSlots<T> {\r\n return {\r\n ...Object.assign({}, params.slots, this.props.slots),\r\n TableGridItem: this.props.slots?.item ?? params.item ?? (() => <ItemDefault />),\r\n ToolbarPannel: this.props.slots?.toolbar ?? params.slots?.toolbar ?? ToolbarPannelDefault\r\n }\r\n }\r\n\r\n get mergeConfig() {\r\n return {\r\n size: params.size ?? { xs: 12, sm: 6, md: 4 }\r\n }\r\n }\r\n\r\n setFilterState = (value: Partial<ITableGridFilter<T>>) => {\r\n try {\r\n if (!!value.details) {\r\n this.filterStateStore = { pagination: this.filterStateStore.pagination, ...value }\r\n } else {\r\n this.filterStateStore = mergeObjects<any>({}, this.filterState, value)\r\n }\r\n this.props.onFilterChange && this.props.onFilterChange(this.filterStateStore)\r\n this.forceUpdate()\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n render() {\r\n const { TableGridItem, ToolbarPannel, actionProps } = this.slots\r\n const items = this.getItems()\r\n const pagination = this.getPagination()\r\n return this.preRender(\r\n <Wrap className={this.getRootClasses()}>\r\n <ToolbarPannel title={params.title} {...this.slots.toolbarProps} />\r\n <FilterBarInstance value={this.filterState} onChange={this.handleFilterChange} />\r\n <div className={tableGridClasses.content}>\r\n <div className={[tableGridClasses.contentInner, tableGridClasses.contentPosition].join(' ')}>\r\n <Grid container spacing={2} {...this.slots.gridContainer}>\r\n {items.map((item, index) => (\r\n <Grid key={params.getSelecterId(item).toString() + index} item {...this.mergeConfig.size} {...this.slots.gridItem}>\r\n <div className={tableGridClasses.item}>\r\n <TableGridItem value={item} />\r\n <Box className={tableGridClasses.actions}>\r\n <ItemActions value={item} {...actionProps} />\r\n </Box>\r\n </div>\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </div>\r\n <Fade in={this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.overlay, tableGridClasses.contentPosition].join(' ')}>\r\n <CircularProgress size={36} />\r\n </div>\r\n </Fade>\r\n <Fade in={items.length < 1 && !this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.noItems, tableGridClasses.contentPosition].join(' ')}>\r\n <Typography variant='body2'>No items data</Typography>\r\n </div>\r\n </Fade>\r\n </div>\r\n <Divider sx={{ position: 'relative', zIndex: 2 }} />\r\n <TablePagination\r\n component='div'\r\n count={this.props.data.totalItems ?? 0}\r\n page={pagination.page}\r\n onPageChange={this.handleChangePage}\r\n rowsPerPage={pagination.pageSize}\r\n onRowsPerPageChange={this.handleChangeRowsPerPage}\r\n slotProps={{ select: { MenuProps: { disableScrollLock: true } } }}\r\n />\r\n </Wrap>\r\n )\r\n }\r\n\r\n preRender = (children?: ReactNode) => (\r\n <GlobalModal>\r\n <PopoverGlobal.Provider />\r\n {children}\r\n </GlobalModal>\r\n )\r\n\r\n getPagination = (): IPaginationModel => this.filterState.pagination ?? defaultPagination\r\n\r\n getRootClasses = () => {\r\n const classes = [tableGridClasses.root]\r\n if (this.filterState.loading) classes.push(tableGridClasses.loading)\r\n return classes.join(' ')\r\n }\r\n\r\n getItems = () => {\r\n return this.props.data.items ?? []\r\n }\r\n\r\n handleFilterChange = (filterStateChange: IFilterState<T>) => {\r\n this.setFilterState(filterStateChange)\r\n }\r\n\r\n handleChangePage = (_: React.MouseEvent<HTMLButtonElement, MouseEvent> | null, page: number) => {\r\n const pagination = this.getPagination()\r\n this.setFilterState({ pagination: { page, pageSize: pagination.pageSize } })\r\n }\r\n\r\n handleChangeRowsPerPage: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement> = (event) => {\r\n this.setFilterState({ pagination: { page: 0, pageSize: parseInt(event.target.value, 10) } })\r\n }\r\n }\r\n\r\n return TableGrid\r\n}\r\n\r\nexport default CreateTableGrid\r\n\r\nconst Wrap = styled(Box)({\r\n flex: 1,\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n [`.${tableGridClasses.content}`]: {\r\n position: 'relative',\r\n flex: 1,\r\n zIndex: 1\r\n },\r\n [`.${tableGridClasses.contentPosition}`]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%'\r\n },\r\n [`.${tableGridClasses.contentInner}`]: {\r\n overflowY: 'auto',\r\n padding: '10px 5px'\r\n },\r\n [`.${tableGridClasses.overlay}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: alpha(colors.common.white, 0.4),\r\n zIndex: 10\r\n },\r\n [`.${tableGridClasses.noItems}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n [`.${tableGridClasses.item}`]: {\r\n position: 'relative'\r\n },\r\n [`.${tableGridClasses.actions}`]: {\r\n position: 'absolute',\r\n top: '5px',\r\n right: '5px',\r\n zIndex: 5,\r\n display: 'inline-block'\r\n },\r\n [`.${tablePaginationClasses.root}`]: {\r\n background: colors.common.white,\r\n position: 'relative',\r\n zIndex: 5\r\n }\r\n})\r\n\r\nconst ItemDefault = styled(Box)({\r\n width: '100%',\r\n paddingBottom: '100%',\r\n background: colors.grey[600]\r\n})\r\n"],"names":["CreateTableGrid","params","_params$filterBarConf","FilterBarInstance","CreateFilterBar","filterBarConfigs","fields","ItemActions","CreateTableGridItemActions","TableGrid","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","pagination","defaultPagination","value","details","filterStateStore","_objectSpread","mergeObjects","filterState","props","onFilterChange","forceUpdate","error","console","log","children","_jsxs","GlobalModal","_jsx","PopoverGlobal","Provider","_this$filterState$pag","classes","tableGridClasses","root","loading","push","join","_this$props$data$item","data","items","filterStateChange","setFilterState","_","page","getPagination","pageSize","event","parseInt","target","_inherits","Component","_createClass","key","get","_this$props$filter","filter","_ref","_this$props$slots$ite","_this$props$slots","_ref2","_this$props$slots$too","_this$props$slots2","_params$slots","Object","assign","slots","TableGridItem","item","ItemDefault","ToolbarPannel","toolbar","ToolbarPannelDefault","_params$size","size","xs","sm","md","_this$props$data$tota","_this2","_this$slots","actionProps","getItems","preRender","Wrap","className","getRootClasses","title","toolbarProps","onChange","handleFilterChange","content","contentInner","contentPosition","Grid","container","spacing","gridContainer","map","index","mergeConfig","gridItem","Box","actions","getSelecterId","toString","Fade","in","unmountOnExit","overlay","CircularProgress","noItems","Typography","variant","Divider","sx","position","zIndex","TablePagination","component","count","totalItems","onPageChange","handleChangePage","rowsPerPage","onRowsPerPageChange","handleChangeRowsPerPage","slotProps","select","MenuProps","disableScrollLock","styled","flex","height","display","flexDirection","top","left","width","overflowY","padding","alignItems","justifyContent","background","alpha","colors","common","white","right","tablePaginationClasses","paddingBottom","grey"],"mappings":"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"}
1
+ {"version":3,"file":"create.table-grid.js","sources":["../../../src/table-grid/create.table-grid.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport type { ChangeEventHandler, ComponentType, MouseEvent as RMEvent, ReactNode } from 'react'\r\nimport { Box, CircularProgress, Divider, Fade, Grid, Stack, TablePagination, Typography } from '@mui/material'\r\nimport { mergeObjects } from '../utils'\r\nimport { defaultPagination } from './helpers'\r\nimport { CreateTableGridItemActions } from './item-actions'\r\nimport { GlobalModal, PopoverGlobal } from '../api-context'\r\nimport { CreateFilterBar, IFilterState } from './filter-bar'\r\nimport { ItemDefault, tableGridClasses, TableGridStyled } from './styled'\r\nimport { ITableGridFilter, IPaginationModel, ITableGridParams, ITableGridProps, ITableGridInnerSlots } from './types'\r\nimport ToolbarPannelDefault from './toolbar-pannel'\r\n\r\nfunction CreateTableGrid<T extends object>(params: ITableGridParams<T>): ComponentType<ITableGridProps<T>> {\r\n const FilterBarInstance = CreateFilterBar<T>(params.filterBarConfigs ?? { fields: {} })\r\n const ItemActions = CreateTableGridItemActions<T>()\r\n\r\n class TableGrid extends Component<ITableGridProps<T>> {\r\n private filterStateStore: ITableGridFilter<T> = { pagination: defaultPagination }\r\n get filterState(): ITableGridFilter<T> {\r\n return this.props.filter ?? this.filterStateStore\r\n }\r\n\r\n get slots(): ITableGridInnerSlots<T> {\r\n return {\r\n ...Object.assign({}, params.slots, this.props.slots),\r\n TableGridItem: this.props.slots?.item ?? params.item ?? (() => <ItemDefault />),\r\n ToolbarPannel: this.props.slots?.toolbar ?? params.slots?.toolbar ?? ToolbarPannelDefault\r\n }\r\n }\r\n\r\n get mergeConfig() {\r\n return {\r\n size: params.size ?? { xs: 12, sm: 6, md: 4 }\r\n }\r\n }\r\n\r\n setFilterState = (value: Partial<ITableGridFilter<T>>) => {\r\n try {\r\n if (!!value.details) {\r\n this.filterStateStore = { pagination: this.filterStateStore.pagination, ...value }\r\n } else {\r\n this.filterStateStore = mergeObjects<any>({}, this.filterState, value)\r\n }\r\n this.props.onFilterChange && this.props.onFilterChange(this.filterStateStore)\r\n this.forceUpdate()\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n render() {\r\n const { TableGridItem, ToolbarPannel, actionProps } = this.slots\r\n const items = this.getItems()\r\n const pagination = this.getPagination()\r\n return this.preRender(\r\n <TableGridStyled className={this.getRootClasses()}>\r\n <ToolbarPannel title={params.title} {...this.slots.toolbarProps} />\r\n <Stack direction='row' alignItems='stretch' gap={1}>\r\n {this.slots.filterBar?.before || null}\r\n <FilterBarInstance value={this.filterState} onChange={this.handleFilterChange} />\r\n {this.slots.filterBar?.after || null}\r\n </Stack>\r\n <div className={tableGridClasses.content}>\r\n <div className={[tableGridClasses.contentInner, tableGridClasses.contentPosition].join(' ')}>\r\n <Grid container spacing={2} {...this.slots.gridContainer}>\r\n {items.map((item, index) => (\r\n <Grid key={params.getSelecterId(item).toString() + index} item {...this.mergeConfig.size} {...this.slots.gridItem}>\r\n <div className={tableGridClasses.item}>\r\n <TableGridItem value={item} />\r\n <Box className={tableGridClasses.actions}>\r\n <ItemActions value={item} {...actionProps} />\r\n </Box>\r\n </div>\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </div>\r\n <Fade in={this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.overlay, tableGridClasses.contentPosition].join(' ')}>\r\n <CircularProgress size={36} />\r\n </div>\r\n </Fade>\r\n <Fade in={items.length < 1 && !this.filterState.loading} unmountOnExit>\r\n <div className={[tableGridClasses.noItems, tableGridClasses.contentPosition].join(' ')}>\r\n <Typography variant='body2'>No items data</Typography>\r\n </div>\r\n </Fade>\r\n </div>\r\n <Divider sx={{ position: 'relative', zIndex: 2 }} />\r\n <TablePagination\r\n component='div'\r\n count={this.props.data.totalItems ?? 0}\r\n page={pagination.page}\r\n onPageChange={this.handleChangePage}\r\n rowsPerPage={pagination.pageSize}\r\n onRowsPerPageChange={this.handleChangeRowsPerPage}\r\n slotProps={{ select: { MenuProps: { disableScrollLock: true } } }}\r\n />\r\n </TableGridStyled>\r\n )\r\n }\r\n\r\n preRender = (children?: ReactNode) => (\r\n <GlobalModal>\r\n <PopoverGlobal.Provider />\r\n {children}\r\n </GlobalModal>\r\n )\r\n\r\n getPagination = (): IPaginationModel => this.filterState.pagination ?? defaultPagination\r\n\r\n getRootClasses = () => {\r\n const classes = [tableGridClasses.root]\r\n if (this.filterState.loading) classes.push(tableGridClasses.loading)\r\n return classes.join(' ')\r\n }\r\n\r\n getItems = () => {\r\n return this.props.data.items ?? []\r\n }\r\n\r\n handleFilterChange = (filterStateChange: IFilterState<T>) => {\r\n this.setFilterState(filterStateChange)\r\n }\r\n\r\n handleChangePage = (_: RMEvent<HTMLButtonElement, MouseEvent> | null, page: number) => {\r\n const pagination = this.getPagination()\r\n this.setFilterState({ pagination: { page, pageSize: pagination.pageSize } })\r\n }\r\n\r\n handleChangeRowsPerPage: ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement> = (event) => {\r\n this.setFilterState({ pagination: { page: 0, pageSize: parseInt(event.target.value, 10) } })\r\n }\r\n }\r\n\r\n return TableGrid\r\n}\r\n\r\nexport default CreateTableGrid\r\n"],"names":["CreateTableGrid","params","_params$filterBarConf","FilterBarInstance","CreateFilterBar","filterBarConfigs","fields","ItemActions","CreateTableGridItemActions","TableGrid","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","pagination","defaultPagination","value","details","filterStateStore","_objectSpread","mergeObjects","filterState","props","onFilterChange","forceUpdate","error","console","log","children","_jsxs","GlobalModal","_jsx","PopoverGlobal","Provider","_this$filterState$pag","classes","tableGridClasses","root","loading","push","join","_this$props$data$item","data","items","filterStateChange","setFilterState","_","page","getPagination","pageSize","event","parseInt","target","_inherits","Component","_createClass","key","get","_this$props$filter","filter","_ref","_this$props$slots$ite","_this$props$slots","_ref2","_this$props$slots$too","_this$props$slots2","_params$slots","Object","assign","slots","TableGridItem","item","ItemDefault","ToolbarPannel","toolbar","ToolbarPannelDefault","_params$size","size","xs","sm","md","_this$slots$filterBar","_this$slots$filterBar2","_this$props$data$tota","_this2","_this$slots","actionProps","getItems","preRender","TableGridStyled","className","getRootClasses","title","toolbarProps","Stack","direction","alignItems","gap","filterBar","before","onChange","handleFilterChange","after","content","contentInner","contentPosition","Grid","container","spacing","gridContainer","map","index","mergeConfig","gridItem","Box","actions","getSelecterId","toString","Fade","in","unmountOnExit","overlay","CircularProgress","noItems","Typography","variant","Divider","sx","position","zIndex","TablePagination","component","count","totalItems","onPageChange","handleChangePage","rowsPerPage","onRowsPerPageChange","handleChangeRowsPerPage","slotProps","select","MenuProps","disableScrollLock"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var e={page:0,pageSize:25},n={root:"TableGrid-root",content:"TableGrid-content",contentPosition:"TableGrid-contentPosition",contentInner:"TableGrid-contentInner",loading:"TableGrid-loading",overlay:"TableGrid-overlay",item:"TableGrid-item",actions:"TableGrid-actions",noItems:"TableGrid-noItems"};export{e as defaultPagination,n as tableGridClasses};
1
+ var e={page:0,pageSize:25};export{e as defaultPagination};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../src/table-grid/helpers.tsx"],"sourcesContent":["import { IPaginationModel } from './types'\r\n\r\nexport const defaultPagination: IPaginationModel = { page: 0, pageSize: 25 }\r\n\r\nexport const tableGridClasses = {\r\n root: 'TableGrid-root',\r\n content: 'TableGrid-content',\r\n contentPosition: 'TableGrid-contentPosition',\r\n contentInner: 'TableGrid-contentInner',\r\n loading: 'TableGrid-loading',\r\n overlay: 'TableGrid-overlay',\r\n item: 'TableGrid-item',\r\n actions: 'TableGrid-actions',\r\n noItems: 'TableGrid-noItems'\r\n}\r\n"],"names":["defaultPagination","page","pageSize","tableGridClasses","root","content","contentPosition","contentInner","loading","overlay","item","actions","noItems"],"mappings":"AAEO,IAAMA,EAAsC,CAAEC,KAAM,EAAGC,SAAU,IAE3DC,EAAmB,CAC9BC,KAAM,iBACNC,QAAS,oBACTC,gBAAiB,4BACjBC,aAAc,yBACdC,QAAS,oBACTC,QAAS,oBACTC,KAAM,iBACNC,QAAS,oBACTC,QAAS"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../src/table-grid/helpers.tsx"],"sourcesContent":["import { IPaginationModel } from './types'\r\n\r\nexport const defaultPagination: IPaginationModel = { page: 0, pageSize: 25 }\r\n"],"names":["defaultPagination","page","pageSize"],"mappings":"AAEO,IAAMA,EAAsC,CAAEC,KAAM,EAAGC,SAAU"}
@@ -0,0 +1,2 @@
1
+ import{defineProperty as t}from"../../_virtual/_rollupPluginBabelHelpers.js";import{styled as o,Box as e,colors as n,tablePaginationClasses as i,alpha as a}from"@mui/material";var r={root:"TableGrid-root",content:"TableGrid-content",contentPosition:"TableGrid-contentPosition",contentInner:"TableGrid-contentInner",loading:"TableGrid-loading",overlay:"TableGrid-overlay",item:"TableGrid-item",actions:"TableGrid-actions",noItems:"TableGrid-noItems"},l=o(e)(t(t(t(t(t(t(t(t({flex:1,height:"100%",display:"flex",flexDirection:"column"},".".concat(r.content),{position:"relative",flex:1,zIndex:1}),".".concat(r.contentPosition),{position:"absolute",top:0,left:0,width:"100%",height:"100%"}),".".concat(r.contentInner),{overflowY:"auto",padding:"10px 5px"}),".".concat(r.overlay),{display:"flex",alignItems:"center",justifyContent:"center",background:a(n.common.white,.4),zIndex:10}),".".concat(r.noItems),{display:"flex",alignItems:"center",justifyContent:"center"}),".".concat(r.item),{position:"relative"}),".".concat(r.actions),{position:"absolute",top:"5px",right:"5px",zIndex:5,display:"inline-block"}),".".concat(i.root),{background:n.common.white,position:"relative",zIndex:5})),c=o(e)({width:"100%",paddingBottom:"100%",background:n.grey[600]});export{c as ItemDefault,l as TableGridStyled,r as tableGridClasses};
2
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled.js","sources":["../../../src/table-grid/styled.tsx"],"sourcesContent":["import { alpha, Box, colors, styled, tablePaginationClasses } from '@mui/material'\r\n\r\nexport const tableGridClasses = {\r\n root: 'TableGrid-root',\r\n content: 'TableGrid-content',\r\n contentPosition: 'TableGrid-contentPosition',\r\n contentInner: 'TableGrid-contentInner',\r\n loading: 'TableGrid-loading',\r\n overlay: 'TableGrid-overlay',\r\n item: 'TableGrid-item',\r\n actions: 'TableGrid-actions',\r\n noItems: 'TableGrid-noItems'\r\n}\r\n\r\nexport const TableGridStyled = styled(Box)({\r\n flex: 1,\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n [`.${tableGridClasses.content}`]: {\r\n position: 'relative',\r\n flex: 1,\r\n zIndex: 1\r\n },\r\n [`.${tableGridClasses.contentPosition}`]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%'\r\n },\r\n [`.${tableGridClasses.contentInner}`]: {\r\n overflowY: 'auto',\r\n padding: '10px 5px'\r\n },\r\n [`.${tableGridClasses.overlay}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: alpha(colors.common.white, 0.4),\r\n zIndex: 10\r\n },\r\n [`.${tableGridClasses.noItems}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n [`.${tableGridClasses.item}`]: {\r\n position: 'relative'\r\n },\r\n [`.${tableGridClasses.actions}`]: {\r\n position: 'absolute',\r\n top: '5px',\r\n right: '5px',\r\n zIndex: 5,\r\n display: 'inline-block'\r\n },\r\n [`.${tablePaginationClasses.root}`]: {\r\n background: colors.common.white,\r\n position: 'relative',\r\n zIndex: 5\r\n }\r\n})\r\n\r\nexport const ItemDefault = styled(Box)({\r\n width: '100%',\r\n paddingBottom: '100%',\r\n background: colors.grey[600]\r\n})\r\n"],"names":["tableGridClasses","root","content","contentPosition","contentInner","loading","overlay","item","actions","noItems","TableGridStyled","styled","Box","_defineProperty","flex","height","display","flexDirection","concat","position","zIndex","top","left","width","overflowY","padding","alignItems","justifyContent","background","alpha","colors","common","white","right","tablePaginationClasses","ItemDefault","paddingBottom","grey"],"mappings":"gLAEO,IAAMA,EAAmB,CAC9BC,KAAM,iBACNC,QAAS,oBACTC,gBAAiB,4BACjBC,aAAc,yBACdC,QAAS,oBACTC,QAAS,oBACTC,KAAM,iBACNC,QAAS,oBACTC,QAAS,qBAGEC,EAAkBC,EAAOC,EAAPD,CAAWE,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CACxCC,KAAM,EACNC,OAAQ,OACRC,QAAS,OACTC,cAAe,UAAQ,IAAAC,OAClBlB,EAAiBE,SAAY,CAChCiB,SAAU,WACVL,KAAM,EACNM,OAAQ,QACTF,OACIlB,EAAiBG,iBAAoB,CACxCgB,SAAU,WACVE,IAAK,EACLC,KAAM,EACNC,MAAO,OACPR,OAAQ,aACTG,OACIlB,EAAiBI,cAAiB,CACrCoB,UAAW,OACXC,QAAS,iBACVP,OACIlB,EAAiBM,SAAY,CAChCU,QAAS,OACTU,WAAY,SACZC,eAAgB,SAChBC,WAAYC,EAAMC,EAAOC,OAAOC,MAAO,IACvCZ,OAAQ,SACTF,OACIlB,EAAiBS,SAAY,CAChCO,QAAS,OACTU,WAAY,SACZC,eAAgB,eACjBT,OACIlB,EAAiBO,MAAS,CAC7BY,SAAU,iBACXD,OACIlB,EAAiBQ,SAAY,CAChCW,SAAU,WACVE,IAAK,MACLY,MAAO,MACPb,OAAQ,EACRJ,QAAS,qBACVE,OACIgB,EAAuBjC,MAAS,CACnC2B,WAAYE,EAAOC,OAAOC,MAC1Bb,SAAU,WACVC,OAAQ,KAICe,EAAcxB,EAAOC,EAAPD,CAAY,CACrCY,MAAO,OACPa,cAAe,OACfR,WAAYE,EAAOO,KAAK"}
@@ -1,10 +1,24 @@
1
- import { FC, ReactNode } from 'react';
1
+ import type { FC, ReactNode } from 'react';
2
2
  import { EViewMode } from './view-mode.types';
3
+ declare const DEFAULT_ANIM: {
4
+ enter: number;
5
+ exit: number;
6
+ ease: string;
7
+ delayEnter: number;
8
+ delayExit: number;
9
+ transformOriginList: string;
10
+ transformOriginModule: string;
11
+ translateY: number;
12
+ horizontalScale: number;
13
+ mountDelay: number;
14
+ hold: number;
15
+ };
3
16
  interface IProps {
4
17
  mode: EViewMode;
5
18
  moduleNode: ReactNode;
6
19
  listNode: ReactNode;
7
20
  autoHeight?: boolean;
21
+ animConfig?: Partial<typeof DEFAULT_ANIM>;
8
22
  }
9
23
  declare const AnimationSwitch: FC<IProps>;
10
24
  export default AnimationSwitch;
@@ -15,7 +29,5 @@ export declare const animationSwitchClasses: {
15
29
  pane: string;
16
30
  paneList: string;
17
31
  paneModule: string;
18
- visible: string;
19
- hidden: string;
20
32
  };
21
33
  export declare const AnimationSwitchStyled: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import type { ComponentType } from 'react';
2
2
  import { ITableGridParams, ITableGridProps } from './types';
3
- declare function CreateTableGrid<T extends object>(params: ITableGridParams<T>): React.ComponentType<ITableGridProps<T>>;
3
+ declare function CreateTableGrid<T extends object>(params: ITableGridParams<T>): ComponentType<ITableGridProps<T>>;
4
4
  export default CreateTableGrid;
@@ -1,13 +1,2 @@
1
1
  import { IPaginationModel } from './types';
2
2
  export declare const defaultPagination: IPaginationModel;
3
- export declare const tableGridClasses: {
4
- root: string;
5
- content: string;
6
- contentPosition: string;
7
- contentInner: string;
8
- loading: string;
9
- overlay: string;
10
- item: string;
11
- actions: string;
12
- noItems: string;
13
- };
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ export declare const tableGridClasses: {
3
+ root: string;
4
+ content: string;
5
+ contentPosition: string;
6
+ contentInner: string;
7
+ loading: string;
8
+ overlay: string;
9
+ item: string;
10
+ actions: string;
11
+ noItems: string;
12
+ };
13
+ export declare const TableGridStyled: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
14
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
15
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
16
+ export declare const ItemDefault: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
17
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
18
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -26,6 +26,10 @@ export interface ITableGridSlots<T> extends ITableGridFlexibleSlots<T> {
26
26
  toolbarProps?: IToolbarPannelProps;
27
27
  action?: ComponentType<ITableGridItemActionsBaseProps<T>>;
28
28
  actionProps?: TableGridItemActionsConfig<T>;
29
+ filterBar?: {
30
+ after?: ReactNode;
31
+ before?: ReactNode;
32
+ };
29
33
  }
30
34
  export interface ITableGridInnerSlots<T> extends ITableGridSlots<T> {
31
35
  TableGridItem: ComponentType<ITableGridItemProps<T>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-core",
3
- "version": "2.1.26",
3
+ "version": "2.1.28",
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",