dinocollab-core 2.1.9 → 2.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{objectWithoutProperties as r,slicedToArray as
|
|
1
|
+
import{objectWithoutProperties as r,slicedToArray as t,objectSpread2 as e}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o,Fragment as n,jsxs as a}from"react/jsx-runtime";import{useState as l,useRef as i,useEffect as u,Fragment as c}from"react";import{useDebounce as s}from"../hooks/debounce.js";var f=["src","fallbackSrc","alt","loading","debounceDelay"],m=function(m){var d=m.src,p=m.fallbackSrc,b=m.alt,y=m.loading,g=m.debounceDelay,h=void 0===g?0:g,j=r(m,f),v=s(d,h),S=s(p,h),k=h>0?v:d,T=h>0?S:p,x=l(!0),D=t(x,2),L=D[0],P=D[1],_=l(null!=k?k:T),A=t(_,2),B=A[0],E=A[1],F=i(null),H=function(){F.current&&(clearTimeout(F.current),F.current=null),F.current=setTimeout((function(){L&&P(!1)}),2e3)};u((function(){E(null!=k?k:T),P(!0)}),[k,T]);var W,q=L&&y?y:o(n,{});return a(c,{children:[q,o("img",e(e(e({},j),(W={},j.style&&(W.style=j.style),L&&(W.style=e(e({},W.style),{},{height:"0!important",transition:"height 0.2s ease-in-out"})),W)),{},{src:B,alt:b,onLoadStart:function(){return P(!0)},onLoad:function(){P(!1),H()},onError:function(){E(p),P(!1),H()}}))]})};export{m as ImageWithFallback,m as default};
|
|
2
2
|
//# sourceMappingURL=image-with-fallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-with-fallback.js","sources":["../../src/components/image-with-fallback.tsx"],"sourcesContent":["import { Fragment, useEffect, useState } from 'react'\r\nimport type { FC, ImgHTMLAttributes, ReactNode } from 'react'\r\nimport { useDebounce } from '../hooks'\r\n\r\nexport interface IImageWithFallbackPropsOwner {\r\n src?: string\r\n alt?: string\r\n fallbackSrc: string\r\n loading?: ReactNode\r\n debounceDelay?: number\r\n}\r\n\r\nexport type IImageProps = Omit<ImgHTMLAttributes<HTMLImageElement>, keyof IImageWithFallbackPropsOwner>\r\n\r\nexport interface IImageWithFallbackProps extends IImageProps, IImageWithFallbackPropsOwner {}\r\n\r\nexport const ImageWithFallback: FC<IImageWithFallbackProps> = ({ src, fallbackSrc, alt, loading, debounceDelay = 0, ...props }) => {\r\n const debouncedSrc = useDebounce(src, debounceDelay)\r\n const debouncedFallbackSrc = useDebounce(fallbackSrc, debounceDelay)\r\n\r\n const effectiveSrc = debounceDelay > 0 ? debouncedSrc : src\r\n const effectiveFallbackSrc = debounceDelay > 0 ? debouncedFallbackSrc : fallbackSrc\r\n\r\n const [isLoading, setLoading] = useState(true)\r\n const [imgSrc, setImgSrc] = useState(effectiveSrc ?? effectiveFallbackSrc)\r\n\r\n useEffect(() => {\r\n setImgSrc(effectiveSrc ?? effectiveFallbackSrc)\r\n setLoading(true)\r\n }, [effectiveSrc, effectiveFallbackSrc])\r\n\r\n const loadingElement = isLoading && loading ? loading : <></>\r\n\r\n return (\r\n <Fragment>\r\n {loadingElement}\r\n <img\r\n {...props}\r\n src={imgSrc}\r\n alt={alt}\r\n onLoadStart={() => setLoading(true)}\r\n onLoad={() => setLoading(false)}\r\n onError={() => {\r\n setImgSrc(fallbackSrc)\r\n setLoading(false)\r\n }}\r\n />\r\n </Fragment>\r\n )\r\n}\r\nexport default ImageWithFallback\r\n"],"names":["ImageWithFallback","_ref","src","fallbackSrc","alt","loading","_ref$debounceDelay","debounceDelay","props","_objectWithoutProperties","_excluded","debouncedSrc","useDebounce","debouncedFallbackSrc","effectiveSrc","effectiveFallbackSrc","_useState","useState","_useState2","_slicedToArray","isLoading","setLoading","_useState3","_useState4","imgSrc","setImgSrc","useEffect","loadingElement","_jsx","_jsxs","Fragment","onLoadStart","onLoad","onError"],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-with-fallback.js","sources":["../../src/components/image-with-fallback.tsx"],"sourcesContent":["import { Fragment, useEffect, useRef, useState } from 'react'\r\nimport type { CSSProperties, FC, ImgHTMLAttributes, ReactNode } from 'react'\r\nimport { useDebounce } from '../hooks'\r\n\r\nexport interface IImageWithFallbackPropsOwner {\r\n src?: string\r\n alt?: string\r\n fallbackSrc: string\r\n loading?: ReactNode\r\n debounceDelay?: number\r\n}\r\n\r\nexport type IImageProps = Omit<ImgHTMLAttributes<HTMLImageElement>, keyof IImageWithFallbackPropsOwner>\r\n\r\nexport interface IImageWithFallbackProps extends IImageProps, IImageWithFallbackPropsOwner {}\r\n\r\nexport const ImageWithFallback: FC<IImageWithFallbackProps> = ({ src, fallbackSrc, alt, loading, debounceDelay = 0, ...props }) => {\r\n const debouncedSrc = useDebounce(src, debounceDelay)\r\n const debouncedFallbackSrc = useDebounce(fallbackSrc, debounceDelay)\r\n\r\n const effectiveSrc = debounceDelay > 0 ? debouncedSrc : src\r\n const effectiveFallbackSrc = debounceDelay > 0 ? debouncedFallbackSrc : fallbackSrc\r\n\r\n const [isLoading, setLoading] = useState(true)\r\n const [imgSrc, setImgSrc] = useState(effectiveSrc ?? effectiveFallbackSrc)\r\n\r\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\r\n const forceStopLoading = () => {\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current)\r\n timeoutRef.current = null\r\n }\r\n timeoutRef.current = setTimeout(() => {\r\n if (isLoading) setLoading(false)\r\n }, 2000)\r\n }\r\n\r\n useEffect(() => {\r\n setImgSrc(effectiveSrc ?? effectiveFallbackSrc)\r\n setLoading(true)\r\n }, [effectiveSrc, effectiveFallbackSrc])\r\n\r\n const loadingElement = isLoading && loading ? loading : <></>\r\n\r\n const mapStyle = () => {\r\n const obj: { style?: CSSProperties } = {}\r\n if (props.style) obj.style = props.style\r\n if (isLoading) obj.style = { ...obj.style, height: '0!important', transition: 'height 0.2s ease-in-out' }\r\n return obj\r\n }\r\n\r\n return (\r\n <Fragment>\r\n {loadingElement}\r\n <img\r\n {...props}\r\n {...mapStyle()}\r\n src={imgSrc}\r\n alt={alt}\r\n onLoadStart={() => setLoading(true)}\r\n onLoad={() => {\r\n setLoading(false)\r\n forceStopLoading()\r\n }}\r\n onError={() => {\r\n setImgSrc(fallbackSrc)\r\n setLoading(false)\r\n forceStopLoading()\r\n }}\r\n />\r\n </Fragment>\r\n )\r\n}\r\nexport default ImageWithFallback\r\n"],"names":["ImageWithFallback","_ref","src","fallbackSrc","alt","loading","_ref$debounceDelay","debounceDelay","props","_objectWithoutProperties","_excluded","debouncedSrc","useDebounce","debouncedFallbackSrc","effectiveSrc","effectiveFallbackSrc","_useState","useState","_useState2","_slicedToArray","isLoading","setLoading","_useState3","_useState4","imgSrc","setImgSrc","timeoutRef","useRef","forceStopLoading","current","clearTimeout","setTimeout","useEffect","obj","loadingElement","_jsx","_jsxs","Fragment","children","_objectSpread","style","height","transition","onLoadStart","onLoad","onError"],"mappings":"kXAgBaA,EAAiD,SAAhCC,GAAoG,IAAjEC,EAAGD,EAAHC,IAAKC,EAAWF,EAAXE,YAAaC,EAAGH,EAAHG,IAAKC,EAAOJ,EAAPI,QAAOC,EAAAL,EAAEM,cAAAA,OAAgB,IAAHD,EAAG,EAACA,EAAKE,EAAKC,EAAAR,EAAAS,GACpHC,EAAeC,EAAYV,EAAKK,GAChCM,EAAuBD,EAAYT,EAAaI,GAEhDO,EAAeP,EAAgB,EAAII,EAAeT,EAClDa,EAAuBR,EAAgB,EAAIM,EAAuBV,EAExEa,EAAgCC,GAAS,GAAKC,EAAAC,EAAAH,EAAA,GAAvCI,EAASF,EAAA,GAAEG,EAAUH,EAAA,GAC5BI,EAA4BL,EAASH,QAAAA,EAAgBC,GAAqBQ,EAAAJ,EAAAG,EAAA,GAAnEE,EAAMD,EAAA,GAAEE,EAASF,EAAA,GAElBG,EAAaC,EAA6C,MAC1DC,EAAmB,WACnBF,EAAWG,UACbC,aAAaJ,EAAWG,SACxBH,EAAWG,QAAU,MAEvBH,EAAWG,QAAUE,YAAW,WAC1BX,GAAWC,GAAW,EAC3B,GAAE,IACJ,EAEDW,GAAU,WACRP,EAAUX,QAAAA,EAAgBC,GAC1BM,GAAW,EACb,GAAG,CAACP,EAAcC,IAElB,IAGQkB,EAHFC,EAAiBd,GAAaf,EAAUA,EAAU8B,QASxD,OACEC,EAACC,EAAQ,CAAAC,SAAA,CACNJ,EACDC,EAAA,MAAAI,EAAAA,EAAAA,EAAA,CAAA,EACM/B,IAVFyB,EAAiC,CAAE,EACrCzB,EAAMgC,QAAOP,EAAIO,MAAQhC,EAAMgC,OAC/BpB,IAAWa,EAAIO,MAAKD,EAAAA,EAAA,CAAA,EAAQN,EAAIO,OAAK,GAAA,CAAEC,OAAQ,cAAeC,WAAY,6BACvET,IAQW,CAAA,EAAA,CACd/B,IAAKsB,EACLpB,IAAKA,EACLuC,YAAa,WAAF,OAAQtB,GAAW,EAAK,EACnCuB,OAAQ,WACNvB,GAAW,GACXO,GACD,EACDiB,QAAS,WACPpB,EAAUtB,GACVkB,GAAW,GACXO,GACF,OAIR"}
|
|
@@ -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
|
|
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 d,GridToolbarQuickFilter as c}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{HelpTooltip as 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),d=0;d<t;d++)p[d]=arguments[d];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",flexWrap:"wrap"},children:[s(m,{sx:{flex:1,display:"flex",alignItems:"center",flexWrap:"wrap"},children:[l(d,{sx:{padding:0}}),this.props.formCreate&&l(h,{children:this.props.formCreate}),this.props.afterAction]}),l(m,{sx:{display:"flex",gap:"8px",alignItems:"center",width:{xs:"100%",md:"auto"}},children:s(m,{sx:{display:"flex",alignItems:"center"},children:[l(c,{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 <
|
|
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', flexWrap: 'wrap' }}>\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', width: { xs: '100%', md: 'auto' } }}>\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 <SearchHelp>\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 </SearchHelp>\r\n </HelpTooltip>\r\n )\r\n }\r\n}\r\nexport default ToolbarPannel\r\n\r\nconst 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"],"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","SearchHelp","map","item","index","Typography","variant","_inherits","Component","_createClass","key","padding","renderTitle","flexWrap","flex","GridToolbar","formCreate","BtnFormCreate","afterAction","gap","width","xs","md","GridToolbarQuickFilter","fullWidth","size","debounceMs","quickFilterParser","x","renderEndAdornment","styled","margin","li","position","content","top","transform","left","_objectSpread","noWrap","fontWeight"],"mappings":"mjBAkBMA,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,EAAU,CAAAZ,SACRpB,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,GAAIC,GAAI,CAAEiB,QAAS,mBACjBjC,KAAKkC,cACNpB,EAACC,EAAG,CAACC,GAAI,CAAEE,QAAS,OAAQiB,SAAU,QACpCxB,SAAA,CAAAG,EAACC,EAAI,CAAAC,GAAI,CAAEoB,KAAM,EAAGlB,QAAS,OAAQC,WAAY,SAAUgB,SAAU,QAAQxB,SAAA,CAC3EH,EAAC6B,EAAW,CAACrB,GAAI,CAAEiB,QAAS,KAC3BjC,KAAKI,MAAMkC,YAAc9B,EAAC+B,YAAevC,KAAKI,MAAMkC,aACpDtC,KAAKI,MAAMoC,eAEdhC,EAACO,GAAIC,GAAI,CAAEE,QAAS,OAAQuB,IAAK,MAAOtB,WAAY,SAAUuB,MAAO,CAAEC,GAAI,OAAQC,GAAI,SACrFjC,SAAAG,EAACC,EAAI,CAAAC,GAAI,CAAEE,QAAS,OAAQC,WAAY,UAAUR,SAAA,CAChDH,EAACqC,EAAsB,CAACC,WAAU,EAAAlB,QAAQ,WAAWmB,KAAK,QAAQC,WAAY,IAAKC,kBAAmB,SAACC,GAAM,MAAK,CAACA,EAAE,IACpHlD,KAAKmD,+BAMlB,IAAC,IAqCG5B,EAAa6B,EAAO,KAAPA,CAAa,CAC9BC,OAAQ,aACRpB,QAAS,EACTqB,GAAI,CACFC,SAAU,YAEZ,YAAa,CACXC,QAAS,MACTtC,QAAS,eACTuC,IAAK,MACLC,UAAW,mBACXH,SAAU,WACVI,KAAM,WAIJjD,EAAQ0C,GAAO,SAAChD,GAAsB,OAAKI,EAACmB,EAAUiC,EAAA,CAACC,UAAOjC,QAAQ,aAAgBxB,GAAS,GAAvFgD,CAAyF,CACrGU,WAAY,IACZ1B,KAAM"}
|