dinocollab-core 1.0.16 → 1.0.17
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.
- package/dist/filter-bar/create.filter-panel.js +1 -1
- package/dist/filter-bar/create.filter-panel.js.map +1 -1
- package/dist/filter-bar/types.js.map +1 -1
- package/dist/filter-bar/ui.units.js +1 -1
- package/dist/filter-bar/ui.units.js.map +1 -1
- package/dist/types/filter-bar/types.d.ts +4 -0
- package/dist/types/filter-bar/ui.units.d.ts +1 -0
- package/package.json +1 -1
|
@@ -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
|
|
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 {
|
|
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
|
|
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\
|
|
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"}
|
|
@@ -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 */
|