dinocollab-core 1.0.16 → 1.0.18

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{inherits as r,createClass as e,objectSpread2 as n,classCallCheck as o,callSuper as t,defineProperty as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,Fragment as i,jsxs as p}from"react/jsx-runtime";import{styled as l,Box as c,Popper as u,Fade as d,MenuList as h,MenuItem as m}from"@mui/material";import f,{filterPanelClasses as b}from"./base.js";import k from"./create.filter-menu.js";import v from"./create.sort-menu.js";function C(l){var c=k(l),C=v(),x=function(){function k(){var r;o(this,k);for(var e=arguments.length,n=new Array(e),u=0;u<e;u++)n[u]=arguments[u];return r=t(this,k,[].concat(n)),s(r,"renderContent",(function(){switch(r.props.reason){case"searchInput":return r.renderSearchInput();case"filterButton":return a(c,{onCancel:r.props.onClose,onSubmit:function(e,n){r.props.onSubmit&&r.props.onSubmit(e,n),r.props.onClose&&r.props.onClose()}});case"sortButton":return a(C,{})}})),s(r,"renderSearchInput",(function(){var e;if("searchInput"!==r.props.reason)return a(i,{});var n=r.getFieldsMatches(l.fields,null!==(e=r.props.keyword)&&void 0!==e?e:""),o=Object.keys(n).filter((function(r){return!!r}));return p(h,{className:b.list,children:[o.map((function(e,n){var o,t=l.fields[e];return p(m,{className:b.item,onClick:function(){return r.handleClick(e)},children:[null!==(o=null==t?void 0:t.label)&&void 0!==o?o:e.toString(),' "',r.props.keyword,'"']},e.toString()+n)})),r.props.keyword&&p(m,{className:b.item,onClick:function(){return r.handleClick("Search")},children:['Search "',r.props.keyword,'"']})]})})),s(r,"handleClick",(function(e){r.props.onSubmit&&r.props.onSubmit(e,{value:r.props.keyword})})),r}return r(k,f),e(k,[{key:"render",value:function(){var r=this,e=Boolean(this.props.anchorEl)&&(!!this.props.keyword||"searchInput"!==this.props.reason);return a(u,{anchorEl:this.props.anchorEl,open:e,placement:"bottom-start",transition:!0,sx:{zIndex:1350},children:function(e){var o=e.TransitionProps;return a(d,n(n({},o),{},{timeout:0,children:a(S,{className:b.root,children:r.renderContent()})}))}})}}])}();return x}var S=l(c)({borderRadius:"4px",boxShadow:"rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px",backgroundColor:"#fff"});export{C as default};
1
+ import{inherits as r,createClass as e,objectSpread2 as n,classCallCheck as o,callSuper as t,defineProperty as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i,Fragment as a,jsxs as p}from"react/jsx-runtime";import{styled as l,Box as u,Popper as c,Fade as d,MenuList as m,MenuItem as f,Typography as h}from"@mui/material";import b,{filterPanelClasses as v}from"./base.js";import x from"./create.filter-menu.js";import C from"./create.sort-menu.js";import{FilterHelpNotes as S}from"./ui.units.js";function k(l){var u=x(l),k=C(),g=function(){function x(){var r;o(this,x);for(var e=arguments.length,c=new Array(e),d=0;d<e;d++)c[d]=arguments[d];return r=t(this,x,[].concat(c)),s(r,"renderContent",(function(){switch(r.props.reason){case"searchInput":return r.renderSearchInput();case"filterButton":return i(u,{onCancel:r.props.onClose,onSubmit:function(e,n){r.props.onSubmit&&r.props.onSubmit(e,n),r.props.onClose&&r.props.onClose()}});case"sortButton":return i(k,{})}})),s(r,"renderSearchInput",(function(){var e;if("searchInput"!==r.props.reason)return i(a,{});var o=r.getFieldsMatches(l.fields,null!==(e=r.props.keyword)&&void 0!==e?e:""),t=Object.keys(o).filter((function(r){return!!r}));return i(m,{className:v.list,children:t.map((function(e,o){var t,s=l.fields[e],a=null!==(t=null==s?void 0:s.label)&&void 0!==t?t:e.toString();return p(f,{className:v.item,onClick:function(){return r.handleClick(e)},children:[p(h,{variant:"body2",component:"span",sx:{flex:1},children:[a,' "',r.props.keyword,'"']}),(null==s?void 0:s.helpeNotes)&&i(S,n({title:"The ".concat(a," includes"),disabledSize:!0},s.helpeNotes))]},e.toString()+o)}))})})),s(r,"handleClick",(function(e){r.props.onSubmit&&r.props.onSubmit(e,{value:r.props.keyword})})),r}return r(x,b),e(x,[{key:"render",value:function(){var r=this,e=Boolean(this.props.anchorEl)&&(!!this.props.keyword||"searchInput"!==this.props.reason);return i(c,{anchorEl:this.props.anchorEl,open:e,placement:"bottom-start",transition:!0,sx:{zIndex:1350},children:function(e){var o=e.TransitionProps;return i(d,n(n({},o),{},{timeout:0,children:i(y,{className:v.root,children:r.renderContent()})}))}})}}])}();return g}var y=l(u)({borderRadius:"4px",boxShadow:"rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px",backgroundColor:"#fff"});export{k as default};
2
2
  //# sourceMappingURL=create.filter-panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.filter-panel.js","sources":["../../src/filter-bar/create.filter-panel.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react'\r\nimport { Popper, Fade, Box, styled, MenuList, MenuItem } from '@mui/material'\r\nimport { IFilterModel, FilterReason, IFilterPanelParams, IFilterPannelSubmitFunc } from './types'\r\nimport FilterBarBase, { filterPanelClasses } from './base'\r\nimport CreateFilterMenu from './create.filter-menu'\r\nimport CreateFilterSort from './create.sort-menu'\r\n\r\nexport interface FilterPanelState {\r\n anchorEl: HTMLElement | null\r\n reason?: FilterReason\r\n}\r\n\r\ninterface IProps<T> extends FilterPanelState, PropsWithChildren {\r\n keyword?: string\r\n onSubmit?: IFilterPannelSubmitFunc<T>\r\n onClose?: () => void\r\n}\r\n\r\nfunction CreateFilterPanel<T>(params: IFilterPanelParams<T>) {\r\n const FilterMenuInstance = CreateFilterMenu<T>(params)\r\n const SortMenuInstance = CreateFilterSort<T>(params)\r\n\r\n class FilterPanel extends FilterBarBase<IProps<T>, {}, T> {\r\n render() {\r\n const isOpen = Boolean(this.props.anchorEl) && (!!this.props.keyword || this.props.reason !== 'searchInput')\r\n return (\r\n <Popper anchorEl={this.props.anchorEl} open={isOpen} placement='bottom-start' transition sx={{ zIndex: 1350 }}>\r\n {({ TransitionProps }) => (\r\n <Fade {...TransitionProps} timeout={0}>\r\n <Wrapper className={filterPanelClasses.root}>{this.renderContent()}</Wrapper>\r\n </Fade>\r\n )}\r\n </Popper>\r\n )\r\n }\r\n\r\n renderContent = () => {\r\n switch (this.props.reason) {\r\n case 'searchInput':\r\n return this.renderSearchInput()\r\n case 'filterButton':\r\n return (\r\n <FilterMenuInstance\r\n onCancel={this.props.onClose}\r\n onSubmit={(f, v) => {\r\n this.props.onSubmit && this.props.onSubmit(f, v)\r\n this.props.onClose && this.props.onClose()\r\n }}\r\n />\r\n )\r\n case 'sortButton':\r\n return <SortMenuInstance />\r\n default:\r\n break\r\n }\r\n }\r\n\r\n renderSearchInput = () => {\r\n if (this.props.reason !== 'searchInput') return <></>\r\n const fields = this.getFieldsMatches(params.fields, this.props.keyword ?? '')\r\n const keys = Object.keys(fields).filter((x) => !!x) as (keyof IFilterModel<T>)[]\r\n return (\r\n <MenuList className={filterPanelClasses.list}>\r\n {keys.map((x, i) => {\r\n const item = params.fields[x]\r\n return (\r\n <MenuItem key={x.toString() + i} className={filterPanelClasses.item} onClick={() => this.handleClick(x)}>\r\n {item?.label ?? x.toString()} \"{this.props.keyword}\"\r\n </MenuItem>\r\n )\r\n })}\r\n {this.props.keyword && (\r\n <MenuItem className={filterPanelClasses.item} onClick={() => this.handleClick('Search')}>\r\n Search \"{this.props.keyword}\"{/* <FilterHelpNotes title='The quick search includes' items={[]} /> */}\r\n </MenuItem>\r\n )}\r\n </MenuList>\r\n )\r\n }\r\n handleClick = (key: keyof IFilterModel<T>) => {\r\n if (!this.props.onSubmit) return\r\n this.props.onSubmit(key, { value: this.props.keyword })\r\n }\r\n }\r\n return FilterPanel\r\n}\r\n\r\nexport default CreateFilterPanel\r\n\r\nconst Wrapper = styled(Box)({\r\n borderRadius: '4px',\r\n boxShadow: 'rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px',\r\n backgroundColor: '#fff'\r\n})\r\n"],"names":["CreateFilterPanel","params","FilterMenuInstance","CreateFilterMenu","SortMenuInstance","CreateFilterSort","FilterPanel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","reason","renderSearchInput","_jsx","onCancel","onClose","onSubmit","f","v","_this$props$keyword","fields","getFieldsMatches","keyword","keys","Object","filter","x","_jsxs","MenuList","className","filterPanelClasses","list","map","i","_item$label","item","MenuItem","onClick","handleClick","children","label","toString","key","value","_inherits","FilterBarBase","_createClass","_this2","isOpen","Boolean","anchorEl","Popper","open","placement","transition","sx","zIndex","TransitionProps","_ref","Fade","_objectSpread","timeout","Wrapper","root","renderContent","styled","Box","borderRadius","boxShadow","backgroundColor"],"mappings":"+bAkBA,SAASA,EAAqBC,GAC5B,IAAMC,EAAqBC,EAAoBF,GACzCG,EAAmBC,IAEnBC,aAAY,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GA4Df,OA5DeP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,iBAcA,WACd,OAAQA,EAAKY,MAAMC,QACjB,IAAK,cACH,OAAOb,EAAKc,oBACd,IAAK,eACH,OACEC,EAACpB,GACCqB,SAAUhB,EAAKY,MAAMK,QACrBC,SAAU,SAACC,EAAGC,GACZpB,EAAKY,MAAMM,UAAYlB,EAAKY,MAAMM,SAASC,EAAGC,GAC9CpB,EAAKY,MAAMK,SAAWjB,EAAKY,MAAMK,SACnC,IAGN,IAAK,aACH,OAAOF,EAAClB,EAAgB,QAI7Bc,EAAAX,EAAA,qBAEmB,WAAK,IAAAqB,EACvB,GAA0B,gBAAtBrB,EAAKY,MAAMC,OAA0B,OAAOE,QAChD,IAAMO,EAAStB,EAAKuB,iBAAiB7B,EAAO4B,OAA0B,QAApBD,EAAErB,EAAKY,MAAMY,eAAOH,IAAAA,EAAAA,EAAI,IACpEI,EAAOC,OAAOD,KAAKH,GAAQK,QAAO,SAACC,GAAC,QAAOA,KACjD,OACEC,EAACC,GAASC,UAAWC,EAAmBC,eACrCR,EAAKS,KAAI,SAACN,EAAGO,GAAK,IAAAC,EACXC,EAAO3C,EAAO4B,OAAOM,GAC3B,OACEC,EAACS,EAAQ,CAAwBP,UAAWC,EAAmBK,KAAME,QAAS,WAAF,OAAQvC,EAAKwC,YAAYZ,EAAE,EAAAa,SAAA,CACzF,QADyFL,EACpGC,aAAI,EAAJA,EAAMK,aAAKN,IAAAA,EAAAA,EAAIR,EAAEe,WAAU,KAAI3C,EAAKY,MAAMY,QAAO,MADrCI,EAAEe,WAAaR,EAIjC,IACAnC,EAAKY,MAAMY,SACVK,EAACS,EAAS,CAAAP,UAAWC,EAAmBK,KAAME,QAAS,WAAF,OAAQvC,EAAKwC,YAAY,SAAS,EAAAC,SAAA,CAAA,WAC5EzC,EAAKY,MAAMY,qBAK7Bb,EAAAX,EACa,eAAA,SAAC4C,GACR5C,EAAKY,MAAMM,UAChBlB,EAAKY,MAAMM,SAAS0B,EAAK,CAAEC,MAAO7C,EAAKY,MAAMY,aAC9CxB,CAAA,CAAA,OAAA8C,EAAA/C,EA5DuBgD,GA4DvBC,EAAAjD,EAAA,CAAA,CAAA6C,IAAA,SAAAC,MA3DD,WAAM,IAAAI,EAAAxC,KACEyC,EAASC,QAAQ1C,KAAKG,MAAMwC,cAAgB3C,KAAKG,MAAMY,SAAiC,gBAAtBf,KAAKG,MAAMC,QACnF,OACEE,EAACsC,EAAM,CAACD,SAAU3C,KAAKG,MAAMwC,SAAUE,KAAMJ,EAAQK,UAAU,eAAeC,YAAW,EAAAC,GAAI,CAAEC,OAAQ,eACpG,gBAAGC,EAAeC,EAAfD,gBAAe,OACjB5C,EAAC8C,EAAIC,EAAAA,KAAKH,GAAe,GAAA,CAAEI,QAAS,WAClChD,EAACiD,EAAQ,CAAAjC,UAAWC,EAAmBiC,cAAOhB,EAAKiB,oBAC9C,GAIf,IAAC,IAkDH,OAAOnE,CACT,CAIA,IAAMiE,EAAUG,EAAOC,EAAPD,CAAY,CAC1BE,aAAc,MACdC,UAAW,0EACXC,gBAAiB"}
1
+ {"version":3,"file":"create.filter-panel.js","sources":["../../src/filter-bar/create.filter-panel.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react'\r\nimport { Popper, Fade, Box, styled, MenuList, MenuItem, Typography } from '@mui/material'\r\nimport { IFilterModel, FilterReason, IFilterPanelParams, IFilterPannelSubmitFunc } from './types'\r\nimport FilterBarBase, { filterPanelClasses } from './base'\r\nimport CreateFilterMenu from './create.filter-menu'\r\nimport CreateFilterSort from './create.sort-menu'\r\nimport { FilterHelpNotes } from './ui.units'\r\n\r\nexport interface FilterPanelState {\r\n anchorEl: HTMLElement | null\r\n reason?: FilterReason\r\n}\r\n\r\ninterface IProps<T> extends FilterPanelState, PropsWithChildren {\r\n keyword?: string\r\n onSubmit?: IFilterPannelSubmitFunc<T>\r\n onClose?: () => void\r\n}\r\n\r\nfunction CreateFilterPanel<T>(params: IFilterPanelParams<T>) {\r\n const FilterMenuInstance = CreateFilterMenu<T>(params)\r\n const SortMenuInstance = CreateFilterSort<T>(params)\r\n\r\n class FilterPanel extends FilterBarBase<IProps<T>, {}, T> {\r\n render() {\r\n const isOpen = Boolean(this.props.anchorEl) && (!!this.props.keyword || this.props.reason !== 'searchInput')\r\n return (\r\n <Popper anchorEl={this.props.anchorEl} open={isOpen} placement='bottom-start' transition sx={{ zIndex: 1350 }}>\r\n {({ TransitionProps }) => (\r\n <Fade {...TransitionProps} timeout={0}>\r\n <Wrapper className={filterPanelClasses.root}>{this.renderContent()}</Wrapper>\r\n </Fade>\r\n )}\r\n </Popper>\r\n )\r\n }\r\n\r\n renderContent = () => {\r\n switch (this.props.reason) {\r\n case 'searchInput':\r\n return this.renderSearchInput()\r\n case 'filterButton':\r\n return (\r\n <FilterMenuInstance\r\n onCancel={this.props.onClose}\r\n onSubmit={(f, v) => {\r\n this.props.onSubmit && this.props.onSubmit(f, v)\r\n this.props.onClose && this.props.onClose()\r\n }}\r\n />\r\n )\r\n case 'sortButton':\r\n return <SortMenuInstance />\r\n default:\r\n break\r\n }\r\n }\r\n\r\n renderSearchInput = () => {\r\n if (this.props.reason !== 'searchInput') return <></>\r\n const fields = this.getFieldsMatches(params.fields, this.props.keyword ?? '')\r\n const keys = Object.keys(fields).filter((x) => !!x) as (keyof IFilterModel<T>)[]\r\n return (\r\n <MenuList className={filterPanelClasses.list}>\r\n {keys.map((x, i) => {\r\n const item = params.fields[x]\r\n const label = item?.label ?? x.toString()\r\n return (\r\n <MenuItem key={x.toString() + i} className={filterPanelClasses.item} onClick={() => this.handleClick(x)}>\r\n <Typography variant='body2' component='span' sx={{ flex: 1 }}>\r\n {label} \"{this.props.keyword}\"\r\n </Typography>\r\n {item?.helpeNotes && <FilterHelpNotes title={`The ${label} includes`} disabledSize {...item.helpeNotes} />}\r\n </MenuItem>\r\n )\r\n })}\r\n </MenuList>\r\n )\r\n }\r\n handleClick = (key: keyof IFilterModel<T>) => {\r\n if (!this.props.onSubmit) return\r\n this.props.onSubmit(key, { value: this.props.keyword })\r\n }\r\n }\r\n return FilterPanel\r\n}\r\n\r\nexport default CreateFilterPanel\r\n\r\nconst Wrapper = styled(Box)({\r\n borderRadius: '4px',\r\n boxShadow: 'rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px',\r\n backgroundColor: '#fff'\r\n})\r\n"],"names":["CreateFilterPanel","params","FilterMenuInstance","CreateFilterMenu","SortMenuInstance","CreateFilterSort","FilterPanel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","reason","renderSearchInput","_jsx","onCancel","onClose","onSubmit","f","v","_this$props$keyword","fields","getFieldsMatches","keyword","keys","Object","filter","x","MenuList","className","filterPanelClasses","list","map","i","_item$label","item","label","toString","_jsxs","MenuItem","onClick","handleClick","children","Typography","variant","component","sx","flex","helpeNotes","FilterHelpNotes","_objectSpread","title","disabledSize","key","value","_inherits","FilterBarBase","_createClass","_this2","isOpen","Boolean","anchorEl","Popper","open","placement","transition","zIndex","TransitionProps","_ref","Fade","timeout","Wrapper","root","renderContent","styled","Box","borderRadius","boxShadow","backgroundColor"],"mappings":"+fAmBA,SAASA,EAAqBC,GAC5B,IAAMC,EAAqBC,EAAoBF,GACzCG,EAAmBC,IAEnBC,aAAY,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GA2Df,OA3DeP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,iBAcA,WACd,OAAQA,EAAKY,MAAMC,QACjB,IAAK,cACH,OAAOb,EAAKc,oBACd,IAAK,eACH,OACEC,EAACpB,GACCqB,SAAUhB,EAAKY,MAAMK,QACrBC,SAAU,SAACC,EAAGC,GACZpB,EAAKY,MAAMM,UAAYlB,EAAKY,MAAMM,SAASC,EAAGC,GAC9CpB,EAAKY,MAAMK,SAAWjB,EAAKY,MAAMK,SACnC,IAGN,IAAK,aACH,OAAOF,EAAClB,EAAgB,QAI7Bc,EAAAX,EAAA,qBAEmB,WAAK,IAAAqB,EACvB,GAA0B,gBAAtBrB,EAAKY,MAAMC,OAA0B,OAAOE,QAChD,IAAMO,EAAStB,EAAKuB,iBAAiB7B,EAAO4B,OAA0B,QAApBD,EAAErB,EAAKY,MAAMY,eAAOH,IAAAA,EAAAA,EAAI,IACpEI,EAAOC,OAAOD,KAAKH,GAAQK,QAAO,SAACC,GAAC,QAAOA,KACjD,OACEb,EAACc,GAASC,UAAWC,EAAmBC,cACrCP,EAAKQ,KAAI,SAACL,EAAGM,GAAK,IAAAC,EACXC,EAAO1C,EAAO4B,OAAOM,GACrBS,EAAmBF,QAAdA,EAAGC,eAAAA,EAAMC,iBAAKF,EAAAA,EAAIP,EAAEU,WAC/B,OACEC,EAACC,EAAgC,CAAAV,UAAWC,EAAmBK,KAAMK,QAAS,WAAF,OAAQzC,EAAK0C,YAAYd,EAAE,EACrGe,SAAA,CAAAJ,EAACK,EAAU,CAACC,QAAQ,QAAQC,UAAU,OAAOC,GAAI,CAAEC,KAAM,GAAGL,SAAA,CACzDN,EAAS,KAAArC,EAAKY,MAAMY,QAAO,QAE7BY,aAAI,EAAJA,EAAMa,aAAclC,EAACmC,EAAeC,EAAA,CAACC,MAAK1C,OAAAA,OAAS2B,EAAgB,aAAEgB,cAAiB,GAAAjB,EAAKa,eAJ/ErB,EAAEU,WAAaJ,EAOjC,SAGNvB,EAAAX,EACa,eAAA,SAACsD,GACRtD,EAAKY,MAAMM,UAChBlB,EAAKY,MAAMM,SAASoC,EAAK,CAAEC,MAAOvD,EAAKY,MAAMY,aAC9CxB,CAAA,CAAA,OAAAwD,EAAAzD,EA3DuB0D,GA2DvBC,EAAA3D,EAAA,CAAA,CAAAuD,IAAA,SAAAC,MA1DD,WAAM,IAAAI,EAAAlD,KACEmD,EAASC,QAAQpD,KAAKG,MAAMkD,cAAgBrD,KAAKG,MAAMY,SAAiC,gBAAtBf,KAAKG,MAAMC,QACnF,OACEE,EAACgD,EAAM,CAACD,SAAUrD,KAAKG,MAAMkD,SAAUE,KAAMJ,EAAQK,UAAU,eAAeC,YAAW,EAAAnB,GAAI,CAAEoB,OAAQ,eACpG,gBAAGC,EAAeC,EAAfD,gBAAe,OACjBrD,EAACuD,EAAInB,EAAAA,KAAKiB,GAAe,GAAA,CAAEG,QAAS,WAClCxD,EAACyD,EAAQ,CAAA1C,UAAWC,EAAmB0C,cAAOd,EAAKe,oBAC9C,GAIf,IAAC,IAiDH,OAAO3E,CACT,CAIA,IAAMyE,EAAUG,EAAOC,EAAPD,CAAY,CAC1BE,aAAc,MACdC,UAAW,0EACXC,gBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../src/filter-bar/types.ts"],"sourcesContent":["export type FilterReason = 'searchInput' | 'filterButton' | 'sortButton'\r\n\r\ntype Dictionary<T, V, E = any> = {\r\n [key in keyof T | keyof E]?: V\r\n}\r\n\r\ntype SingleOrArray<T> = T | T[]\r\n\r\n//#region Search Match\r\nexport enum ESearchMatch {\r\n AlwaysVisible = 'AlwaysVisible',\r\n MatchOnly = 'MatchOnly',\r\n LinkYoutube = 'LinkYoutube',\r\n Link = 'Link',\r\n Guid = 'Guid'\r\n}\r\n\r\ninterface ISearchMatchBase {\r\n rule: ESearchMatch\r\n}\r\n\r\ninterface ISearchMatchMatchOnly extends ISearchMatchBase {\r\n rule: ESearchMatch.MatchOnly\r\n match: (value: string) => boolean\r\n}\r\n\r\ninterface ISearchMatchQuickly extends ISearchMatchBase {\r\n rule: ESearchMatch.AlwaysVisible | ESearchMatch.LinkYoutube | ESearchMatch.Link | ESearchMatch.Guid\r\n}\r\n\r\ntype IFieldSearchMatch = ISearchMatchMatchOnly | ISearchMatchQuickly\r\n//#endregion\r\n\r\n//#region Sort\r\n// interface SortModel<T> {\r\n// value: 'asc' | 'desc'\r\n// }\r\n//\r\n\r\n//#region Validate\r\nexport enum EFieldValidate {\r\n LinkYoutube = 'LinkYoutube',\r\n Link = 'Link',\r\n Custom = 'Custom'\r\n}\r\n\r\ninterface IFieldValidateBase {\r\n rule: EFieldValidate\r\n}\r\ninterface IFieldValidateCustom extends IFieldValidateBase {\r\n rule: EFieldValidate.Custom\r\n custom: (value: string) => boolean\r\n}\r\n\r\ninterface IFieldValidateQuickly extends IFieldValidateBase {\r\n rule: EFieldValidate.Link | EFieldValidate.LinkYoutube\r\n}\r\n\r\ntype IFieldValidate = IFieldValidateQuickly | IFieldValidateCustom\r\n//#endregion\r\n\r\n//#region Filter Field\r\ninterface IFilterFieldBase {\r\n label?: string\r\n /** @default string */\r\n type?: 'string' | 'select'\r\n searchMatches?: SingleOrArray<IFieldSearchMatch>\r\n /** @default true */\r\n sortable?: boolean\r\n /** @default Required */\r\n validate?: SingleOrArray<IFieldValidate>\r\n}\r\n\r\nexport interface IFilterFieldString extends IFilterFieldBase {\r\n type?: 'string'\r\n}\r\n\r\nexport interface IFilterFieldSelect extends IFilterFieldBase {\r\n type: 'select'\r\n options: { value: string; label?: string }[]\r\n}\r\n\r\nexport type IFilterField = IFilterFieldString | IFilterFieldSelect\r\n\r\nexport type IFilterFields<T> = Dictionary<T, IFilterField, { Search?: string }>\r\n\r\nexport interface IFilterItemModel {\r\n value?: string | number | boolean\r\n label?: string\r\n /** @default true */\r\n sortable?: boolean\r\n}\r\n\r\nexport type IFilterModel<T> = Dictionary<T, IFilterItemModel[], { Search?: string }>\r\n\r\nexport interface IFilterState<T> {\r\n filter?: IFilterModel<T>\r\n details?: 'add' | 'remove'\r\n}\r\n//#endregion\r\nexport interface IFilterPanelParams<T> {\r\n fields: IFilterFields<T>\r\n}\r\n\r\nexport type IFilterPannelSubmitFunc<T> = (filed: keyof IFilterModel<T>, value: IFilterItemModel) => void\r\n"],"names":["ESearchMatch","EFieldValidate"],"mappings":"IASYA,EA+BAC,GA/BZ,SAAYD,GACVA,EAAA,cAAA,gBACAA,EAAA,UAAA,YACAA,EAAA,YAAA,cACAA,EAAA,KAAA,OACAA,EAAA,KAAA,MACD,CAND,CAAYA,IAAAA,EAMX,CAAA,IAyBD,SAAYC,GACVA,EAAA,YAAA,cACAA,EAAA,KAAA,OACAA,EAAA,OAAA,QACD,CAJD,CAAYA,IAAAA,EAIX,CAAA"}
1
+ {"version":3,"file":"types.js","sources":["../../src/filter-bar/types.ts"],"sourcesContent":["export type FilterReason = 'searchInput' | 'filterButton' | 'sortButton'\r\n\r\ntype Dictionary<T, V, E = any> = {\r\n [key in keyof T | keyof E]?: V\r\n}\r\n\r\ntype SingleOrArray<T> = T | T[]\r\n\r\n//#region Search Match\r\nexport enum ESearchMatch {\r\n AlwaysVisible = 'AlwaysVisible',\r\n MatchOnly = 'MatchOnly',\r\n LinkYoutube = 'LinkYoutube',\r\n Link = 'Link',\r\n Guid = 'Guid'\r\n}\r\n\r\ninterface ISearchMatchBase {\r\n rule: ESearchMatch\r\n}\r\n\r\ninterface ISearchMatchMatchOnly extends ISearchMatchBase {\r\n rule: ESearchMatch.MatchOnly\r\n match: (value: string) => boolean\r\n}\r\n\r\ninterface ISearchMatchQuickly extends ISearchMatchBase {\r\n rule: ESearchMatch.AlwaysVisible | ESearchMatch.LinkYoutube | ESearchMatch.Link | ESearchMatch.Guid\r\n}\r\n\r\ntype IFieldSearchMatch = ISearchMatchMatchOnly | ISearchMatchQuickly\r\n//#endregion\r\n\r\n//#region Sort\r\n// interface SortModel<T> {\r\n// value: 'asc' | 'desc'\r\n// }\r\n//\r\n\r\n//#region Validate\r\nexport enum EFieldValidate {\r\n LinkYoutube = 'LinkYoutube',\r\n Link = 'Link',\r\n Custom = 'Custom'\r\n}\r\n\r\ninterface IFieldValidateBase {\r\n rule: EFieldValidate\r\n}\r\ninterface IFieldValidateCustom extends IFieldValidateBase {\r\n rule: EFieldValidate.Custom\r\n custom: (value: string) => boolean\r\n}\r\n\r\ninterface IFieldValidateQuickly extends IFieldValidateBase {\r\n rule: EFieldValidate.Link | EFieldValidate.LinkYoutube\r\n}\r\n\r\ntype IFieldValidate = IFieldValidateQuickly | IFieldValidateCustom\r\n//#endregion\r\n\r\n//#region Filter Field\r\ninterface IFilterFieldBase {\r\n label?: string\r\n /** @default string */\r\n type?: 'string' | 'select'\r\n searchMatches?: SingleOrArray<IFieldSearchMatch>\r\n helpeNotes?: { title?: string; items: string[] }\r\n /** @default true */\r\n sortable?: boolean\r\n /** @default Required */\r\n validate?: SingleOrArray<IFieldValidate>\r\n}\r\n\r\nexport interface IFilterFieldString extends IFilterFieldBase {\r\n type?: 'string'\r\n}\r\n\r\nexport interface IFilterFieldSelect extends IFilterFieldBase {\r\n type: 'select'\r\n options: { value: string; label?: string }[]\r\n}\r\n\r\nexport type IFilterField = IFilterFieldString | IFilterFieldSelect\r\n\r\nexport type IFilterFields<T> = Dictionary<T, IFilterField, { Search?: string }>\r\n\r\nexport interface IFilterItemModel {\r\n value?: string | number | boolean\r\n label?: string\r\n /** @default true */\r\n sortable?: boolean\r\n}\r\n\r\nexport type IFilterModel<T> = Dictionary<T, IFilterItemModel[], { Search?: string }>\r\n\r\nexport interface IFilterState<T> {\r\n filter?: IFilterModel<T>\r\n details?: 'add' | 'remove'\r\n}\r\n//#endregion\r\nexport interface IFilterPanelParams<T> {\r\n fields: IFilterFields<T>\r\n}\r\n\r\nexport type IFilterPannelSubmitFunc<T> = (filed: keyof IFilterModel<T>, value: IFilterItemModel) => void\r\n"],"names":["ESearchMatch","EFieldValidate"],"mappings":"IASYA,EA+BAC,GA/BZ,SAAYD,GACVA,EAAA,cAAA,gBACAA,EAAA,UAAA,YACAA,EAAA,YAAA,cACAA,EAAA,KAAA,OACAA,EAAA,KAAA,MACD,CAND,CAAYA,IAAAA,EAMX,CAAA,IAyBD,SAAYC,GACVA,EAAA,YAAA,cACAA,EAAA,KAAA,OACAA,EAAA,OAAA,QACD,CAJD,CAAYA,IAAAA,EAIX,CAAA"}
@@ -1,2 +1,2 @@
1
- import{jsx as t,Fragment as i}from"react/jsx-runtime";import{styled as e,Box as n,Tooltip as l,Fade as o,IconButton as r,Typography as m}from"@mui/material";import a from"@mui/icons-material/Close";import c from"../components/help-tooltip.js";var s=function(i){return t(u,{children:t(l,{title:"Remove filter",children:t(o,{in:i.visibled,unmountOnExit:!0,children:t(r,{size:"small",onClick:i.onClick,children:t(a,{fontSize:"small"})})})})})},p=function(e){var n;return!e.items||e.items.length<1?t(i,{}):t(u,{children:t(c,{small:!0,title:null!==(n=e.title)&&void 0!==n?n:"The search includes",children:t(d,{children:e.items.map((function(i,e){return t(m,{component:"li",variant:"body2",children:i},e)}))})})})},u=e(n)({display:"flex",flex:"0 0 auto",width:"40px",height:"40px",justifyContent:"center",alignItems:"center"}),d=e("ul")({paddingLeft:"1.7rem",marginBottom:0,li:{position:"relative",textAlign:"justify","&::before":{content:'"►"',display:"block",position:"absolute",top:"50%",right:"calc(100% + 6px)",transform:"translateY(-50%)",fontSize:"0.9em"}}});export{s as ButtonClear,p as FilterHelpNotes};
1
+ import{jsx as i,Fragment as e}from"react/jsx-runtime";import{styled as t,Box as n,Tooltip as l,Fade as o,IconButton as r,Typography as s}from"@mui/material";import a from"@mui/icons-material/Close";import m from"../components/help-tooltip.js";var c=function(e){return i(p,{children:i(l,{title:"Remove filter",children:i(o,{in:e.visibled,unmountOnExit:!0,children:i(r,{size:"small",onClick:e.onClick,children:i(a,{fontSize:"small"})})})})})},d=function(t){var n;return!t.items||t.items.length<1?i(e,{}):i(p,{className:!0===t.disabledSize?"disabled-size":"",children:i(m,{small:!0,title:null!==(n=t.title)&&void 0!==n?n:"The search includes",children:i(u,{children:t.items.map((function(e,t){return i(s,{component:"li",variant:"body2",children:e},t)}))})})})},p=t(n)({display:"inline-flex",flex:"0 0 auto",justifyContent:"center",alignItems:"center","&:not(.disabled-size)":{width:"40px",height:"40px"}}),u=t("ul")({paddingLeft:"1.7rem",marginBottom:0,li:{position:"relative",textAlign:"justify","&::before":{content:'"►"',display:"block",position:"absolute",top:"50%",right:"calc(100% + 6px)",transform:"translateY(-50%)",fontSize:"0.9em"}}});export{c as ButtonClear,d as FilterHelpNotes};
2
2
  //# sourceMappingURL=ui.units.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.units.js","sources":["../../src/filter-bar/ui.units.tsx"],"sourcesContent":["import React, { FC } from 'react'\r\nimport { Box, Fade, IconButton, IconButtonProps, styled, Tooltip, Typography } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport HelpTooltip from '../components/help-tooltip'\r\n\r\nexport interface IButtonClearProps {\r\n visibled?: boolean\r\n onClick: IconButtonProps['onClick']\r\n}\r\n\r\nexport const ButtonClear: FC<IButtonClearProps> = (props) => (\r\n <WrapIcon>\r\n <Tooltip title='Remove filter'>\r\n <Fade in={props.visibled} unmountOnExit>\r\n <IconButton size='small' onClick={props.onClick}>\r\n <CloseIcon fontSize='small' />\r\n </IconButton>\r\n </Fade>\r\n </Tooltip>\r\n </WrapIcon>\r\n)\r\n\r\nexport interface IFilterHelpNotesProps {\r\n title?: string\r\n items?: string[]\r\n}\r\n\r\nexport const FilterHelpNotes: FC<IFilterHelpNotesProps> = (props) => {\r\n if (!props.items || props.items.length < 1) return <></>\r\n return (\r\n <WrapIcon>\r\n <HelpTooltip small title={props.title ?? 'The search includes'}>\r\n <WrapList>\r\n {props.items.map((item, index) => (\r\n <Typography key={index} component='li' variant='body2'>\r\n {item}\r\n </Typography>\r\n ))}\r\n </WrapList>\r\n </HelpTooltip>\r\n </WrapIcon>\r\n )\r\n}\r\n\r\nconst WrapIcon = styled(Box)({\r\n display: 'flex',\r\n flex: '0 0 auto',\r\n width: '40px',\r\n height: '40px',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n})\r\n\r\nconst WrapList = styled('ul')({\r\n paddingLeft: '1.7rem',\r\n marginBottom: 0,\r\n li: {\r\n position: 'relative',\r\n textAlign: 'justify',\r\n '&::before': {\r\n content: '\"►\"',\r\n display: 'block',\r\n position: 'absolute',\r\n top: '50%',\r\n right: 'calc(100% + 6px)',\r\n transform: 'translateY(-50%)',\r\n fontSize: '0.9em'\r\n }\r\n }\r\n})\r\n"],"names":["ButtonClear","props","_jsx","WrapIcon","children","Tooltip","title","Fade","in","visibled","unmountOnExit","IconButton","size","onClick","CloseIcon","fontSize","FilterHelpNotes","_props$title","items","length","HelpTooltip","small","WrapList","map","item","index","Typography","component","variant","styled","Box","display","flex","width","height","justifyContent","alignItems","paddingLeft","marginBottom","li","position","textAlign","content","top","right","transform"],"mappings":"uPAUaA,EAAqC,SAACC,GAAK,OACtDC,EAACC,EAAQ,CAAAC,SACPF,EAACG,EAAO,CAACC,MAAM,gBAAeF,SAC5BF,EAACK,EAAK,CAAAC,GAAIP,EAAMQ,SAAUC,eAAa,EAAAN,SACrCF,EAACS,EAAW,CAAAC,KAAK,QAAQC,QAASZ,EAAMY,iBACtCX,EAACY,EAAU,CAAAC,SAAS,iBAIjB,EAQAC,EAA6C,SAACf,GAAS,IAAAgB,EAClE,OAAKhB,EAAMiB,OAASjB,EAAMiB,MAAMC,OAAS,EAAUjB,QAEjDA,EAACC,EACC,CAAAC,SAAAF,EAACkB,EAAY,CAAAC,OAAM,EAAAf,MAAkB,QAAbW,EAAEhB,EAAMK,aAAK,IAAAW,EAAAA,EAAI,sBAAqBb,SAC5DF,EAACoB,EACE,CAAAlB,SAAAH,EAAMiB,MAAMK,KAAI,SAACC,EAAMC,GAAK,OAC3BvB,EAACwB,EAAuB,CAAAC,UAAU,KAAKC,QAAQ,QAAOxB,SACnDoB,GADcC,EAGlB,SAKX,EAEMtB,EAAW0B,EAAOC,EAAPD,CAAY,CAC3BE,QAAS,OACTC,KAAM,WACNC,MAAO,OACPC,OAAQ,OACRC,eAAgB,SAChBC,WAAY,WAGRd,EAAWO,EAAO,KAAPA,CAAa,CAC5BQ,YAAa,SACbC,aAAc,EACdC,GAAI,CACFC,SAAU,WACVC,UAAW,UACX,YAAa,CACXC,QAAS,MACTX,QAAS,QACTS,SAAU,WACVG,IAAK,MACLC,MAAO,mBACPC,UAAW,mBACX9B,SAAU"}
1
+ {"version":3,"file":"ui.units.js","sources":["../../src/filter-bar/ui.units.tsx"],"sourcesContent":["import React, { FC } from 'react'\r\nimport { Box, Fade, IconButton, IconButtonProps, styled, Tooltip, Typography } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport HelpTooltip from '../components/help-tooltip'\r\n\r\nexport interface IButtonClearProps {\r\n visibled?: boolean\r\n onClick: IconButtonProps['onClick']\r\n}\r\n\r\nexport const ButtonClear: FC<IButtonClearProps> = (props) => (\r\n <WrapIcon>\r\n <Tooltip title='Remove filter'>\r\n <Fade in={props.visibled} unmountOnExit>\r\n <IconButton size='small' onClick={props.onClick}>\r\n <CloseIcon fontSize='small' />\r\n </IconButton>\r\n </Fade>\r\n </Tooltip>\r\n </WrapIcon>\r\n)\r\n\r\nexport interface IFilterHelpNotesProps {\r\n title?: string\r\n items?: string[]\r\n disabledSize?: boolean\r\n}\r\n\r\nexport const FilterHelpNotes: FC<IFilterHelpNotesProps> = (props) => {\r\n if (!props.items || props.items.length < 1) return <></>\r\n return (\r\n <WrapIcon className={props.disabledSize === true ? 'disabled-size' : ''}>\r\n <HelpTooltip small title={props.title ?? 'The search includes'}>\r\n <WrapList>\r\n {props.items.map((item, index) => (\r\n <Typography key={index} component='li' variant='body2'>\r\n {item}\r\n </Typography>\r\n ))}\r\n </WrapList>\r\n </HelpTooltip>\r\n </WrapIcon>\r\n )\r\n}\r\nconst WrapIcon = styled(Box)({\r\n display: 'inline-flex',\r\n flex: '0 0 auto',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n '&:not(.disabled-size)': {\r\n width: '40px',\r\n height: '40px'\r\n }\r\n})\r\n\r\nconst WrapList = styled('ul')({\r\n paddingLeft: '1.7rem',\r\n marginBottom: 0,\r\n li: {\r\n position: 'relative',\r\n textAlign: 'justify',\r\n '&::before': {\r\n content: '\"►\"',\r\n display: 'block',\r\n position: 'absolute',\r\n top: '50%',\r\n right: 'calc(100% + 6px)',\r\n transform: 'translateY(-50%)',\r\n fontSize: '0.9em'\r\n }\r\n }\r\n})\r\n"],"names":["ButtonClear","props","_jsx","WrapIcon","children","Tooltip","title","Fade","in","visibled","unmountOnExit","IconButton","size","onClick","CloseIcon","fontSize","FilterHelpNotes","_props$title","items","length","className","disabledSize","HelpTooltip","small","WrapList","map","item","index","Typography","component","variant","styled","Box","display","flex","justifyContent","alignItems","width","height","paddingLeft","marginBottom","li","position","textAlign","content","top","right","transform"],"mappings":"uPAUaA,EAAqC,SAACC,GAAK,OACtDC,EAACC,EAAQ,CAAAC,SACPF,EAACG,EAAO,CAACC,MAAM,gBAAeF,SAC5BF,EAACK,EAAK,CAAAC,GAAIP,EAAMQ,SAAUC,eAAa,EAAAN,SACrCF,EAACS,EAAW,CAAAC,KAAK,QAAQC,QAASZ,EAAMY,iBACtCX,EAACY,EAAU,CAAAC,SAAS,iBAIjB,EASAC,EAA6C,SAACf,GAAS,IAAAgB,EAClE,OAAKhB,EAAMiB,OAASjB,EAAMiB,MAAMC,OAAS,EAAUjB,QAEjDA,EAACC,EAAQ,CAACiB,WAAkC,IAAvBnB,EAAMoB,aAAwB,gBAAkB,GAAEjB,SACrEF,EAACoB,GAAYC,OAAK,EAACjB,MAAkB,QAAbW,EAAEhB,EAAMK,aAAK,IAAAW,EAAAA,EAAI,+BACvCf,EAACsB,EACE,CAAApB,SAAAH,EAAMiB,MAAMO,KAAI,SAACC,EAAMC,GAAK,OAC3BzB,EAAC0B,EAAuB,CAAAC,UAAU,KAAKC,QAAQ,iBAC5CJ,GADcC,EAGlB,SAKX,EACMxB,EAAW4B,EAAOC,EAAPD,CAAY,CAC3BE,QAAS,cACTC,KAAM,WACNC,eAAgB,SAChBC,WAAY,SACZ,wBAAyB,CACvBC,MAAO,OACPC,OAAQ,UAINd,EAAWO,EAAO,KAAPA,CAAa,CAC5BQ,YAAa,SACbC,aAAc,EACdC,GAAI,CACFC,SAAU,WACVC,UAAW,UACX,YAAa,CACXC,QAAS,MACTX,QAAS,QACTS,SAAU,WACVG,IAAK,MACLC,MAAO,mBACPC,UAAW,mBACXhC,SAAU"}
@@ -1,2 +1,2 @@
1
- import{objectWithoutProperties as e,objectSpread2 as r,slicedToArray as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t,Fragment as n,jsxs as a}from"react/jsx-runtime";import{useState as l,useEffect as o}from"react";import{styled as p,Typography as c,Box as m,Chip as s,Tooltip as u,IconButton as d,Divider as f}from"@mui/material";import v from"@mui/icons-material/OpenInNew";import{mergeObjects as g}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"react-router-dom";import"../utils/query-param.js";import"../components/breadcrumbs.js";import"../components/buttons.js";import x from"../components/copy-to-clipboard.js";import"../components/create.multi-select-dropdown.js";import{HelpTooltipWrap as h}from"../components/help-tooltip.js";import"../components/text-editor.js";import b from"dayjs";var y=["children"],k=function(e,i){return function(a){var l,o,p,c,m;return a.value?t(j,r(r({onClick:a.onClick},null===(l=a.slots)||void 0===l?void 0:l.typographyProps),{},{sx:(p=a.value,c=a.sx,m=a.slots,Object.assign({},p?e[p]:{},null==i?void 0:i.sx,c,null==m||null===(o=m.typographyProps)||void 0===o?void 0:o.sx)),children:a.title||a.value})):t(n,{})}},j=p(c)({borderRadius:"4px",fontSize:"0.8rem",padding:"4px 9px",fontWeight:600,minWidth:"70px",textAlign:"center",color:"#ffffff",display:"inline-block"}),w=function(e){var r,n=l(null!==(r=e.imageUri)&&void 0!==r?r:e.fallbackSrc),p=i(n,2),s=p[0],u=p[1];return o((function(){var r;u(null!==(r=e.imageUri)&&void 0!==r?r:e.fallbackSrc)}),[e.imageUri,e.fallbackSrc]),a(m,{sx:{display:"flex",alignItems:"center",height:"100%",gap:"10px"},children:[t(U,{src:s,onError:function(){return u(e.fallbackSrc)}}),t(c,{variant:"body1",children:e.value})]})},S=function(e){var r,n=l(null!==(r=e.imageUri)&&void 0!==r?r:e.imageFallback),a=i(n,2),p=a[0],c=a[1];return o((function(){var r;c(null!==(r=e.imageUri)&&void 0!==r?r:e.imageFallback)}),[e.imageUri,e.imageFallback]),t(U,{src:p,onError:function(){return c(e.imageFallback)},sx:e.sx})},U=p("img")({backgroundRepeat:"no-repeat",height:"50px",width:"50px",backgroundSize:"contain",borderRadius:"8px",boxShadow:"rgba(0, 0, 0, 0.16) 0px 1px 4px"}),W=function(e){var i,n=null!==(i=e.valueFormatted)&&void 0!==i?i:e.value,l=!!e.copyToClipboard&&!!n;return a(F,r(r({title:n},e.wrapProps),{},{children:[e.imageUrl&&t(S,{imageUri:e.imageUrl,sx:{mr:"10px"},imageFallback:e.imageFallbackSrc}),t(c,r(r({variant:"body2",component:"span",noWrap:!0,sx:{flex:1}},e.typographyProps),{},{children:n})),n&&!0===e.openInNewTab&&t(u,{arrow:!0,title:"Open new tab",children:t(d,{component:"a",href:n,target:"_blank",children:t(v,{fontSize:"small",sx:{color:"#1A75E2"}})})}),l&&t(x,{value:n}),n&&!0===e.beforeLine&&t(f,{flexItem:!0,variant:"middle",orientation:"vertical"})]}))},F=p((function(i){var n=i.children,a=e(i,y);return t(m,r(r({},a),{},{children:t("div",{children:n})}))}))({flex:1,width:"100%",height:"100%",position:"relative",top:0,left:0,"& > div":{display:"flex",alignItems:"center",width:"100%",height:"100%",position:"absolute",top:0,left:0}}),I=function(e){var r,i;if("string"!=typeof e.value)return null!==(r=e.value)&&void 0!==r?r:t(n,{});var l=e.value.split(null!==(i=null==e?void 0:e.separator)&&void 0!==i?i:"|").filter((function(e){return!!e})),o=null!=e&&e.maximum?l.slice(0,e.maximum):l,p=null!=e&&e.maximum&&l.length>e.maximum?l.length-e.maximum:0;return a(m,{sx:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"4px",height:"100%"},children:[o.map((function(e,r){return t(P,{label:e,size:"small"},"key"+r)})),p>0&&t(h,{title:"Artists",content:t(m,{sx:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"4px"},children:l.map((function(e,r){return t(P,{label:e,size:"small"},"key"+r)}))}),children:t(P,{label:"+".concat(p),size:"small"},"remaining")})]})},P=p(s)({lineHeight:1}),z=function(e){try{var i,n,a=null!==(i=null==e?void 0:e.showRelative)&&void 0!==i&&i,l=b(e.value),o=l.format(e.formatString),p=a?"".concat(o," (").concat(b().to(l),")"):o,m=e.styledGetter?e.styledGetter(e.value):{flex:1},s=g({},null!==(n=e.typographyProps)&&void 0!==n?n:{},{sx:m});return t(c,r(r({variant:"body2",component:"span",noWrap:!0},s),{},{children:p}))}catch(e){return t(c,{variant:"body2",component:"span",noWrap:!0,children:"format invalid"})}};export{W as CellBase,I as CellChips,z as CellDate,w as CellImageSmall,k as CreateStatusCell,S as ImageSmallFallback};
1
+ import{objectWithoutProperties as e,objectSpread2 as r,slicedToArray as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t,Fragment as a,jsxs as l}from"react/jsx-runtime";import{useState as n,useEffect as o}from"react";import{styled as p,Typography as c,Box as m,Chip as s,Tooltip as u,IconButton as d,Divider as f}from"@mui/material";import v from"@mui/icons-material/OpenInNew";import{mergeObjects as g}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"react-router-dom";import"../utils/query-param.js";import"../components/breadcrumbs.js";import"../components/buttons.js";import x from"../components/copy-to-clipboard.js";import"../components/create.multi-select-dropdown.js";import{HelpTooltipWrap as h}from"../components/help-tooltip.js";import"../components/text-editor.js";import b from"dayjs";var y=["children"],k=function(e,i){return function(l){var n,o,p,c,m;return l.value?t(j,r(r({onClick:l.onClick},null===(n=l.slots)||void 0===n?void 0:n.typographyProps),{},{sx:(p=l.value,c=l.sx,m=l.slots,Object.assign({},p?e[p]:{},null==i?void 0:i.sx,c,null==m||null===(o=m.typographyProps)||void 0===o?void 0:o.sx)),children:l.title||l.value})):t(a,{})}},j=p(c)({borderRadius:"4px",fontSize:"0.8rem",padding:"4px 9px",fontWeight:600,minWidth:"70px",textAlign:"center",color:"#ffffff",display:"inline-block"}),w=function(e){var r,a=n(null!==(r=e.imageUri)&&void 0!==r?r:e.fallbackSrc),p=i(a,2),s=p[0],u=p[1];return o((function(){var r;u(null!==(r=e.imageUri)&&void 0!==r?r:e.fallbackSrc)}),[e.imageUri,e.fallbackSrc]),l(m,{sx:{display:"flex",alignItems:"center",height:"100%",gap:"10px"},children:[t(F,{src:s,onError:function(){return u(e.fallbackSrc)}}),t(c,{variant:"body1",children:e.value})]})},S=function(e){var r,a=n(null!==(r=e.imageUri)&&void 0!==r?r:e.imageFallback),l=i(a,2),p=l[0],c=l[1];return o((function(){var r;c(null!==(r=e.imageUri)&&void 0!==r?r:e.imageFallback)}),[e.imageUri,e.imageFallback]),t(F,{src:p,onError:function(){return c(e.imageFallback)},sx:e.sx})},F=p("img")({backgroundRepeat:"no-repeat",height:"50px",width:"50px",backgroundSize:"contain",borderRadius:"8px",boxShadow:"rgba(0, 0, 0, 0.16) 0px 1px 4px"}),U=function(e){var i,a=null!==(i=e.valueFormatted)&&void 0!==i?i:e.value,n=!!e.copyToClipboard&&!!a;return l(W,r(r({title:a},e.wrapProps),{},{children:[e.imageUrl&&t(S,{imageUri:e.imageUrl,sx:{mr:"10px"},imageFallback:e.imageFallbackSrc}),t(c,r(r({variant:"body2",component:"span",noWrap:!0,sx:{flex:1}},e.typographyProps),{},{children:a})),a&&!0===e.openInNewTab&&t(u,{arrow:!0,title:"Open new tab",children:t(d,{component:"a",href:a,target:"_blank",children:t(v,{fontSize:"small",sx:{color:"#1A75E2"}})})}),n&&t(x,{value:a}),a&&!0===e.beforeLine&&t(f,{flexItem:!0,variant:"middle",orientation:"vertical"})]}))},W=p((function(i){var a=i.children,l=e(i,y);return t(m,r(r({},l),{},{children:t("div",{children:a})}))}))({flex:1,width:"100%",height:"100%",position:"relative",top:0,left:0,"& > div":{display:"flex",alignItems:"center",width:"100%",height:"100%",position:"absolute",top:0,left:0}}),I=function(e){var r,i;if("string"!=typeof e.value)return null!==(r=e.value)&&void 0!==r?r:t(a,{});var n=e.value.split(null!==(i=null==e?void 0:e.separator)&&void 0!==i?i:"|").filter((function(e){return!!e})),o=null!=e&&e.maximum?n.slice(0,e.maximum):n,p=null!=e&&e.maximum&&n.length>e.maximum?n.length-e.maximum:0;return l(m,{sx:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"4px",height:"100%"},children:[o.map((function(r,i){return t(P,{label:e.valueFormatter?e.valueFormatter(r):r,size:"small"},"key"+i)})),p>0&&t(h,{title:"Artists",content:t(m,{sx:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"4px"},children:n.map((function(e,r){return t(P,{label:e,size:"small"},"key"+r)}))}),children:t(P,{label:"+".concat(p),size:"small"},"remaining")})]})},P=p(s)({lineHeight:1}),z=function(e){try{var i,a,l=null!==(i=null==e?void 0:e.showRelative)&&void 0!==i&&i,n=b(e.value),o=n.format(e.formatString),p=l?"".concat(o," (").concat(b().to(n),")"):o,m=e.styledGetter?e.styledGetter(e.value):{flex:1},s=g({},null!==(a=e.typographyProps)&&void 0!==a?a:{},{sx:m});return t(c,r(r({variant:"body2",component:"span",noWrap:!0},s),{},{children:p}))}catch(e){return t(c,{variant:"body2",component:"span",noWrap:!0,children:"format invalid"})}};export{U as CellBase,I as CellChips,z as CellDate,w as CellImageSmall,k as CreateStatusCell,S as ImageSmallFallback};
2
2
  //# sourceMappingURL=ui.units.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.units.js","sources":["../../src/table/ui.units.tsx"],"sourcesContent":["import React, { ComponentType, FC, PropsWithChildren, useEffect, useState } from 'react'\r\nimport { Box, BoxProps, Chip, Divider, IconButton, styled, SxProps, Theme, Tooltip, Typography, TypographyProps } from '@mui/material'\r\nimport OpenInNewIcon from '@mui/icons-material/OpenInNew'\r\nimport { dayjsCustom, mergeObjects } from '../utils'\r\nimport { CopyToClipboard, HelpTooltipWrap } from '../components'\r\n\r\n//#region CellImageSmall\r\nexport type IStatusCellConfig<T extends string> = { [key in T]: SxProps<Theme> }\r\n\r\nexport interface IStatusCellOptions {\r\n sx?: SxProps<Theme>\r\n}\r\n\r\nexport interface IStatusCellProps<T extends string> extends PropsWithChildren {\r\n value?: T\r\n title?: string\r\n sx?: SxProps<Theme>\r\n onClick?: TypographyProps['onClick']\r\n slots?: {\r\n typographyProps?: TypographyProps\r\n }\r\n}\r\n\r\nexport const CreateStatusCell = function <T extends string>(\r\n config: IStatusCellConfig<T>,\r\n options?: IStatusCellOptions\r\n): ComponentType<IStatusCellProps<T>> {\r\n const StatusCell: FC<IStatusCellProps<T>> = (props) => {\r\n const getSxProps = (): SxProps<Theme> => {\r\n const { value: data, sx, slots } = props\r\n return Object.assign({}, data ? config[data] : {}, options?.sx, sx, slots?.typographyProps?.sx)\r\n }\r\n\r\n if (!props.value) return <></>\r\n return (\r\n <CustomTypography onClick={props.onClick} {...props.slots?.typographyProps} sx={getSxProps()}>\r\n {props.title || props.value}\r\n </CustomTypography>\r\n )\r\n }\r\n return StatusCell\r\n}\r\n\r\nconst CustomTypography = styled(Typography)({\r\n borderRadius: '4px',\r\n fontSize: '0.8rem',\r\n padding: '4px 9px',\r\n fontWeight: 600,\r\n minWidth: '70px',\r\n textAlign: 'center',\r\n color: '#ffffff',\r\n display: 'inline-block'\r\n})\r\n\r\n//#region CellImageSmall\r\ninterface CellImageSmallProps {\r\n value: string\r\n imageUri?: string\r\n fallbackSrc?: string\r\n}\r\n\r\nexport const CellImageSmall: FC<CellImageSmallProps> = (props) => {\r\n const [imgSrc, setImgSrc] = useState(props.imageUri ?? props.fallbackSrc)\r\n useEffect(() => {\r\n setImgSrc(props.imageUri ?? props.fallbackSrc)\r\n }, [props.imageUri, props.fallbackSrc])\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', height: '100%', gap: '10px' }}>\r\n <ImageSmall src={imgSrc} onError={() => setImgSrc(props.fallbackSrc)} />\r\n <Typography variant='body1'>{props.value}</Typography>\r\n </Box>\r\n )\r\n}\r\n\r\ninterface ImageSmallFallbackProps {\r\n imageUri?: string\r\n imageFallback?: string\r\n sx?: SxProps<Theme>\r\n}\r\n\r\nexport const ImageSmallFallback: FC<ImageSmallFallbackProps> = (props) => {\r\n const [imgSrc, setImgSrc] = useState(props.imageUri ?? props.imageFallback)\r\n useEffect(() => {\r\n setImgSrc(props.imageUri ?? props.imageFallback)\r\n }, [props.imageUri, props.imageFallback])\r\n return <ImageSmall src={imgSrc} onError={() => setImgSrc(props.imageFallback)} sx={props.sx} />\r\n}\r\n\r\nconst ImageSmall = styled('img')({\r\n backgroundRepeat: 'no-repeat',\r\n height: '50px',\r\n width: '50px',\r\n backgroundSize: 'contain',\r\n borderRadius: '8px',\r\n boxShadow: 'rgba(0, 0, 0, 0.16) 0px 1px 4px'\r\n})\r\n//#endregion\r\n\r\n//#region CellBase\r\n\r\nexport interface CellBaseOptions {\r\n openInNewTab?: boolean\r\n beforeLine?: boolean\r\n copyToClipboard?: boolean\r\n imageUrl?: string\r\n imageFallbackSrc?: string\r\n valueFormatter?: (value?: string) => string\r\n wrapProps?: BoxProps\r\n typographyProps?: TypographyProps\r\n}\r\n\r\ninterface CellBaseProps extends CellBaseOptions {\r\n value?: string\r\n valueFormatted?: string\r\n}\r\n\r\nexport const CellBase: FC<CellBaseProps> = (props) => {\r\n const value = props.valueFormatted ?? props.value\r\n const isCopyToClipboard = !!props.copyToClipboard && !!value\r\n return (\r\n <CellBaseWrap title={value} {...props.wrapProps}>\r\n {props.imageUrl && <ImageSmallFallback imageUri={props.imageUrl} sx={{ mr: '10px' }} imageFallback={props.imageFallbackSrc} />}\r\n <Typography variant='body2' component='span' noWrap sx={{ flex: 1 }} {...props.typographyProps}>\r\n {value}\r\n </Typography>\r\n {value && props.openInNewTab === true && (\r\n <Tooltip arrow title='Open new tab'>\r\n <IconButton component='a' href={value} target='_blank'>\r\n <OpenInNewIcon fontSize='small' sx={{ color: '#1A75E2' }} />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n {isCopyToClipboard && <CopyToClipboard value={value} />}\r\n {value && props.beforeLine === true && <Divider flexItem variant='middle' orientation='vertical' />}\r\n </CellBaseWrap>\r\n )\r\n}\r\n\r\nconst CellBaseWrap = styled(({ children, ...props }: BoxProps) => (\r\n <Box {...props}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n flex: 1,\r\n width: '100%',\r\n height: '100%',\r\n position: 'relative',\r\n top: 0,\r\n left: 0,\r\n '& > div': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n height: '100%',\r\n position: 'absolute',\r\n top: 0,\r\n left: 0\r\n }\r\n})\r\n//#endregion\r\n\r\n//#region Chips\r\nexport interface CellChipsProps {\r\n value?: string\r\n separator?: string\r\n maximum?: number\r\n}\r\n\r\nexport const CellChips: FC<CellChipsProps> = (props) => {\r\n if (typeof props.value !== 'string') return props.value ?? <></>\r\n\r\n const list = props.value.split(props?.separator ?? '|').filter((x) => !!x)\r\n const displayList = props?.maximum ? list.slice(0, props.maximum) : list\r\n const remainingCount = props?.maximum && list.length > props.maximum ? list.length - props.maximum : 0\r\n\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: '4px', height: '100%' }}>\r\n {displayList.map((x, i) => (\r\n <CustomChip key={'key' + i} label={x} size='small' />\r\n ))}\r\n {remainingCount > 0 && (\r\n <HelpTooltipWrap\r\n title='Artists'\r\n content={\r\n <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: '4px' }}>\r\n {list.map((x, i) => (\r\n <CustomChip key={'key' + i} label={x} size='small' />\r\n ))}\r\n </Box>\r\n }\r\n >\r\n <CustomChip key='remaining' label={`+${remainingCount}`} size='small' />\r\n </HelpTooltipWrap>\r\n )}\r\n </Box>\r\n )\r\n}\r\n\r\nconst CustomChip = styled(Chip)({\r\n lineHeight: 1\r\n})\r\n//#endregion\r\n\r\n//#region Date\r\nexport interface CellDatePropsOwner {\r\n formatString?: string\r\n showRelative?: boolean\r\n typographyProps?: TypographyProps\r\n styledGetter?: (value: any) => SxProps<Theme>\r\n}\r\nexport interface CellDateProps extends CellDatePropsOwner {\r\n value: any\r\n}\r\n\r\nexport const CellDate: FC<CellDateProps> = (props) => {\r\n try {\r\n const showRelative = props?.showRelative ?? false\r\n const date = dayjsCustom(props.value)\r\n const formatted = date.format(props.formatString)\r\n const value = showRelative ? `${formatted} (${dayjsCustom().to(date)})` : formatted\r\n const sx = props.styledGetter ? props.styledGetter(props.value) : { flex: 1 }\r\n const mergeTypographyProps = mergeObjects<TypographyProps>({}, props.typographyProps ?? {}, { sx })\r\n return (\r\n <Typography variant='body2' component='span' noWrap {...mergeTypographyProps}>\r\n {value}\r\n </Typography>\r\n )\r\n } catch {\r\n return (\r\n <Typography variant='body2' component='span' noWrap>\r\n format invalid\r\n </Typography>\r\n )\r\n }\r\n}\r\n//#endregion\r\n"],"names":["CreateStatusCell","config","options","props","_props$slots","_slots$typographyProp","data","sx","slots","value","_jsx","CustomTypography","_objectSpread","onClick","typographyProps","Object","assign","children","title","styled","Typography","borderRadius","fontSize","padding","fontWeight","minWidth","textAlign","color","display","CellImageSmall","_props$imageUri","_useState","useState","imageUri","fallbackSrc","_useState2","_slicedToArray","imgSrc","setImgSrc","useEffect","_props$imageUri2","_jsxs","Box","alignItems","height","gap","ImageSmall","src","onError","variant","ImageSmallFallback","_props$imageUri3","_useState3","imageFallback","_useState4","_props$imageUri4","backgroundRepeat","width","backgroundSize","boxShadow","CellBase","_props$valueFormatted","valueFormatted","isCopyToClipboard","copyToClipboard","CellBaseWrap","wrapProps","imageUrl","mr","imageFallbackSrc","component","noWrap","flex","openInNewTab","Tooltip","arrow","IconButton","href","target","OpenInNewIcon","CopyToClipboard","beforeLine","Divider","flexItem","orientation","_ref","_objectWithoutProperties","_excluded","position","top","left","CellChips","_props$value","_props$separator","list","split","separator","filter","x","displayList","maximum","slice","remainingCount","length","flexWrap","map","i","CustomChip","label","size","HelpTooltipWrap","content","concat","Chip","lineHeight","CellDate","_props$showRelative","_props$typographyProp","showRelative","date","dayjsCustom","formatted","format","formatString","to","styledGetter","mergeTypographyProps","mergeObjects","_unused"],"mappings":"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"}
1
+ {"version":3,"file":"ui.units.js","sources":["../../src/table/ui.units.tsx"],"sourcesContent":["import React, { ComponentType, FC, PropsWithChildren, useEffect, useState } from 'react'\r\nimport { Box, BoxProps, Chip, Divider, IconButton, styled, SxProps, Theme, Tooltip, Typography, TypographyProps } from '@mui/material'\r\nimport OpenInNewIcon from '@mui/icons-material/OpenInNew'\r\nimport { dayjsCustom, mergeObjects } from '../utils'\r\nimport { CopyToClipboard, HelpTooltipWrap } from '../components'\r\n\r\n//#region CellImageSmall\r\nexport type IStatusCellConfig<T extends string> = { [key in T]: SxProps<Theme> }\r\n\r\nexport interface IStatusCellOptions {\r\n sx?: SxProps<Theme>\r\n}\r\n\r\nexport interface IStatusCellProps<T extends string> extends PropsWithChildren {\r\n value?: T\r\n title?: string\r\n sx?: SxProps<Theme>\r\n onClick?: TypographyProps['onClick']\r\n slots?: {\r\n typographyProps?: TypographyProps\r\n }\r\n}\r\n\r\nexport const CreateStatusCell = function <T extends string>(\r\n config: IStatusCellConfig<T>,\r\n options?: IStatusCellOptions\r\n): ComponentType<IStatusCellProps<T>> {\r\n const StatusCell: FC<IStatusCellProps<T>> = (props) => {\r\n const getSxProps = (): SxProps<Theme> => {\r\n const { value: data, sx, slots } = props\r\n return Object.assign({}, data ? config[data] : {}, options?.sx, sx, slots?.typographyProps?.sx)\r\n }\r\n\r\n if (!props.value) return <></>\r\n return (\r\n <CustomTypography onClick={props.onClick} {...props.slots?.typographyProps} sx={getSxProps()}>\r\n {props.title || props.value}\r\n </CustomTypography>\r\n )\r\n }\r\n return StatusCell\r\n}\r\n\r\nconst CustomTypography = styled(Typography)({\r\n borderRadius: '4px',\r\n fontSize: '0.8rem',\r\n padding: '4px 9px',\r\n fontWeight: 600,\r\n minWidth: '70px',\r\n textAlign: 'center',\r\n color: '#ffffff',\r\n display: 'inline-block'\r\n})\r\n\r\n//#region CellImageSmall\r\ninterface CellImageSmallProps {\r\n value: string\r\n imageUri?: string\r\n fallbackSrc?: string\r\n}\r\n\r\nexport const CellImageSmall: FC<CellImageSmallProps> = (props) => {\r\n const [imgSrc, setImgSrc] = useState(props.imageUri ?? props.fallbackSrc)\r\n useEffect(() => {\r\n setImgSrc(props.imageUri ?? props.fallbackSrc)\r\n }, [props.imageUri, props.fallbackSrc])\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', height: '100%', gap: '10px' }}>\r\n <ImageSmall src={imgSrc} onError={() => setImgSrc(props.fallbackSrc)} />\r\n <Typography variant='body1'>{props.value}</Typography>\r\n </Box>\r\n )\r\n}\r\n\r\ninterface ImageSmallFallbackProps {\r\n imageUri?: string\r\n imageFallback?: string\r\n sx?: SxProps<Theme>\r\n}\r\n\r\nexport const ImageSmallFallback: FC<ImageSmallFallbackProps> = (props) => {\r\n const [imgSrc, setImgSrc] = useState(props.imageUri ?? props.imageFallback)\r\n useEffect(() => {\r\n setImgSrc(props.imageUri ?? props.imageFallback)\r\n }, [props.imageUri, props.imageFallback])\r\n return <ImageSmall src={imgSrc} onError={() => setImgSrc(props.imageFallback)} sx={props.sx} />\r\n}\r\n\r\nconst ImageSmall = styled('img')({\r\n backgroundRepeat: 'no-repeat',\r\n height: '50px',\r\n width: '50px',\r\n backgroundSize: 'contain',\r\n borderRadius: '8px',\r\n boxShadow: 'rgba(0, 0, 0, 0.16) 0px 1px 4px'\r\n})\r\n//#endregion\r\n\r\n//#region CellBase\r\n\r\nexport interface CellBaseOptions {\r\n openInNewTab?: boolean\r\n beforeLine?: boolean\r\n copyToClipboard?: boolean\r\n imageUrl?: string\r\n imageFallbackSrc?: string\r\n valueFormatter?: (value?: string) => string\r\n wrapProps?: BoxProps\r\n typographyProps?: TypographyProps\r\n}\r\n\r\ninterface CellBaseProps extends CellBaseOptions {\r\n value?: string\r\n valueFormatted?: string\r\n}\r\n\r\nexport const CellBase: FC<CellBaseProps> = (props) => {\r\n const value = props.valueFormatted ?? props.value\r\n const isCopyToClipboard = !!props.copyToClipboard && !!value\r\n return (\r\n <CellBaseWrap title={value} {...props.wrapProps}>\r\n {props.imageUrl && <ImageSmallFallback imageUri={props.imageUrl} sx={{ mr: '10px' }} imageFallback={props.imageFallbackSrc} />}\r\n <Typography variant='body2' component='span' noWrap sx={{ flex: 1 }} {...props.typographyProps}>\r\n {value}\r\n </Typography>\r\n {value && props.openInNewTab === true && (\r\n <Tooltip arrow title='Open new tab'>\r\n <IconButton component='a' href={value} target='_blank'>\r\n <OpenInNewIcon fontSize='small' sx={{ color: '#1A75E2' }} />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n {isCopyToClipboard && <CopyToClipboard value={value} />}\r\n {value && props.beforeLine === true && <Divider flexItem variant='middle' orientation='vertical' />}\r\n </CellBaseWrap>\r\n )\r\n}\r\n\r\nconst CellBaseWrap = styled(({ children, ...props }: BoxProps) => (\r\n <Box {...props}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n flex: 1,\r\n width: '100%',\r\n height: '100%',\r\n position: 'relative',\r\n top: 0,\r\n left: 0,\r\n '& > div': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n height: '100%',\r\n position: 'absolute',\r\n top: 0,\r\n left: 0\r\n }\r\n})\r\n//#endregion\r\n\r\n//#region Chips\r\nexport interface CellChipsProps {\r\n value?: string\r\n valueFormatter?: (value: string) => string\r\n separator?: string\r\n maximum?: number\r\n}\r\n\r\nexport const CellChips: FC<CellChipsProps> = (props) => {\r\n if (typeof props.value !== 'string') return props.value ?? <></>\r\n\r\n const list = props.value.split(props?.separator ?? '|').filter((x) => !!x)\r\n const displayList = props?.maximum ? list.slice(0, props.maximum) : list\r\n const remainingCount = props?.maximum && list.length > props.maximum ? list.length - props.maximum : 0\r\n\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: '4px', height: '100%' }}>\r\n {displayList.map((x, i) => (\r\n <CustomChip key={'key' + i} label={props.valueFormatter ? props.valueFormatter(x) : x} size='small' />\r\n ))}\r\n {remainingCount > 0 && (\r\n <HelpTooltipWrap\r\n title='Artists'\r\n content={\r\n <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: '4px' }}>\r\n {list.map((x, i) => (\r\n <CustomChip key={'key' + i} label={x} size='small' />\r\n ))}\r\n </Box>\r\n }\r\n >\r\n <CustomChip key='remaining' label={`+${remainingCount}`} size='small' />\r\n </HelpTooltipWrap>\r\n )}\r\n </Box>\r\n )\r\n}\r\n\r\nconst CustomChip = styled(Chip)({\r\n lineHeight: 1\r\n})\r\n//#endregion\r\n\r\n//#region Date\r\nexport interface CellDatePropsOwner {\r\n formatString?: string\r\n showRelative?: boolean\r\n typographyProps?: TypographyProps\r\n styledGetter?: (value: any) => SxProps<Theme>\r\n}\r\nexport interface CellDateProps extends CellDatePropsOwner {\r\n value: any\r\n}\r\n\r\nexport const CellDate: FC<CellDateProps> = (props) => {\r\n try {\r\n const showRelative = props?.showRelative ?? false\r\n const date = dayjsCustom(props.value)\r\n const formatted = date.format(props.formatString)\r\n const value = showRelative ? `${formatted} (${dayjsCustom().to(date)})` : formatted\r\n const sx = props.styledGetter ? props.styledGetter(props.value) : { flex: 1 }\r\n const mergeTypographyProps = mergeObjects<TypographyProps>({}, props.typographyProps ?? {}, { sx })\r\n return (\r\n <Typography variant='body2' component='span' noWrap {...mergeTypographyProps}>\r\n {value}\r\n </Typography>\r\n )\r\n } catch {\r\n return (\r\n <Typography variant='body2' component='span' noWrap>\r\n format invalid\r\n </Typography>\r\n )\r\n }\r\n}\r\n//#endregion\r\n"],"names":["CreateStatusCell","config","options","props","_props$slots","_slots$typographyProp","data","sx","slots","value","_jsx","CustomTypography","_objectSpread","onClick","typographyProps","Object","assign","children","title","styled","Typography","borderRadius","fontSize","padding","fontWeight","minWidth","textAlign","color","display","CellImageSmall","_props$imageUri","_useState","useState","imageUri","fallbackSrc","_useState2","_slicedToArray","imgSrc","setImgSrc","useEffect","_props$imageUri2","_jsxs","Box","alignItems","height","gap","ImageSmall","src","onError","variant","ImageSmallFallback","_props$imageUri3","_useState3","imageFallback","_useState4","_props$imageUri4","backgroundRepeat","width","backgroundSize","boxShadow","CellBase","_props$valueFormatted","valueFormatted","isCopyToClipboard","copyToClipboard","CellBaseWrap","wrapProps","imageUrl","mr","imageFallbackSrc","component","noWrap","flex","openInNewTab","Tooltip","arrow","IconButton","href","target","OpenInNewIcon","CopyToClipboard","beforeLine","Divider","flexItem","orientation","_ref","_objectWithoutProperties","_excluded","position","top","left","CellChips","_props$value","_props$separator","list","split","separator","filter","x","displayList","maximum","slice","remainingCount","length","flexWrap","map","i","CustomChip","label","valueFormatter","size","HelpTooltipWrap","content","concat","Chip","lineHeight","CellDate","_props$showRelative","_props$typographyProp","showRelative","date","dayjsCustom","formatted","format","formatString","to","styledGetter","mergeTypographyProps","mergeObjects","_unused"],"mappings":"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"}
@@ -42,6 +42,10 @@ interface IFilterFieldBase {
42
42
  /** @default string */
43
43
  type?: 'string' | 'select';
44
44
  searchMatches?: SingleOrArray<IFieldSearchMatch>;
45
+ helpeNotes?: {
46
+ title?: string;
47
+ items: string[];
48
+ };
45
49
  /** @default true */
46
50
  sortable?: boolean;
47
51
  /** @default Required */
@@ -8,5 +8,6 @@ export declare const ButtonClear: FC<IButtonClearProps>;
8
8
  export interface IFilterHelpNotesProps {
9
9
  title?: string;
10
10
  items?: string[];
11
+ disabledSize?: boolean;
11
12
  }
12
13
  export declare const FilterHelpNotes: FC<IFilterHelpNotesProps>;
@@ -45,6 +45,7 @@ interface CellBaseProps extends CellBaseOptions {
45
45
  export declare const CellBase: FC<CellBaseProps>;
46
46
  export interface CellChipsProps {
47
47
  value?: string;
48
+ valueFormatter?: (value: string) => string;
48
49
  separator?: string;
49
50
  maximum?: number;
50
51
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-core",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",