dinocollab-core 1.0.6 → 1.0.7
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/api-context/global-modal.js +1 -1
- package/dist/api-context/global-modal.js.map +1 -1
- package/dist/api-context/popover-global.js +1 -1
- package/dist/api-context/popover-global.js.map +1 -1
- package/dist/api-context/popover.js +1 -1
- package/dist/api-context/popover.js.map +1 -1
- package/dist/components/help-tooltip.js +1 -1
- package/dist/filter-bar/create.filter-bar.js.map +1 -1
- package/dist/filter-bar/demo.js +1 -1
- package/dist/filter-bar/demo.js.map +1 -1
- package/dist/form/create.form-comfirm.js +1 -1
- package/dist/form/create.form-comfirm.js.map +1 -1
- package/dist/form/create.form-grid-layout.js +1 -1
- package/dist/form/create.form-grid-layout.js.map +1 -1
- package/dist/form/modal-wrapper.js +1 -1
- package/dist/form/modal-wrapper.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/table/create.table.js +1 -1
- package/dist/table/create.table.js.map +1 -1
- package/dist/table/ui.buttons.js +1 -1
- package/dist/table/ui.buttons.js.map +1 -1
- package/dist/table-grid/item-actions.js +1 -1
- package/dist/table-grid/item-actions.js.map +1 -1
- package/dist/table-grid/toolbar-pannel.js +1 -1
- package/dist/table-grid/toolbar-pannel.js.map +1 -1
- package/dist/types/api-context/global-modal.d.ts +1 -1
- package/dist/types/api-context/popover-global.d.ts +1 -1
- package/dist/types/api-context/popover.d.ts +1 -1
- package/dist/types/filter-bar/create.filter-bar.d.ts +14 -14
- package/dist/types/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as t,createClass as e,classCallCheck as n,callSuper as r,defineProperty as o,objectSpread2 as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as i,Fragment as l}from"react/jsx-runtime";import c,{Component as u}from"react";import{styled as d,Box as f,Modal as p,Backdrop as h}from"@mui/material";var m=c.createContext({close:function(){console.warn("GlobalModal provider not found!")},show:function(){console.warn("GlobalModal provider not found!")}}),C=function(t){return a(m.Consumer,{children:t})},b=function(){function s(t){var e;return n(this,s),e=r(this,s,[t]),o(e,"show",(function(t){e.setState(t)})),o(e,"close",(function(t,n){"backdropClick"===n&&!1===e.state.backdropActivated||e.setState({renderContent:void 0})})),o(e,"renderContent",(function(){return e.state.renderContent?e.state.renderContent():a(l,{})})),e.state={},e}return t(s,u),e(s,[{key:"render",value:function(){return i(m.Provider,{value:this,children:[this.props.children,a(p,{open:!!this.state.renderContent,onClose:this.close,slots:{backdrop:h},slotProps:{backdrop:{timeout:300}},sx:this.state.sx,children:a(v,{sx:this.state.sxWrap,children:this.renderContent()})})]})}}])}(),v=d(f)({position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",outline:"none"}),x=function(t){return function(e){return a(b,{children:C((function(n){return a(t,s(s({},e),{},{contextGlobalModal:n}))}))})}},k=function(t){return function(e){return C((function(n){return a(t,s(s({},e),{},{contextGlobalModal:n}))}))}};export{m as GlobalModalContext,
|
|
1
|
+
import{inherits as t,createClass as e,classCallCheck as n,callSuper as r,defineProperty as o,objectSpread2 as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as i,Fragment as l}from"react/jsx-runtime";import c,{Component as u}from"react";import{styled as d,Box as f,Modal as p,Backdrop as h}from"@mui/material";var m=c.createContext({close:function(){console.warn("GlobalModal provider not found!")},show:function(){console.warn("GlobalModal provider not found!")}}),C=function(t){return a(m.Consumer,{children:t})},b=function(){function s(t){var e;return n(this,s),e=r(this,s,[t]),o(e,"show",(function(t){e.setState(t)})),o(e,"close",(function(t,n){"backdropClick"===n&&!1===e.state.backdropActivated||e.setState({renderContent:void 0})})),o(e,"renderContent",(function(){return e.state.renderContent?e.state.renderContent():a(l,{})})),e.state={},e}return t(s,u),e(s,[{key:"render",value:function(){return i(m.Provider,{value:this,children:[this.props.children,a(p,{open:!!this.state.renderContent,onClose:this.close,slots:{backdrop:h},slotProps:{backdrop:{timeout:300}},sx:this.state.sx,children:a(v,{sx:this.state.sxWrap,children:this.renderContent()})})]})}}])}(),v=d(f)({position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",outline:"none"}),x=function(t){return function(e){return a(b,{children:C((function(n){return a(t,s(s({},e),{},{contextGlobalModal:n}))}))})}},k=function(t){return function(e){return C((function(n){return a(t,s(s({},e),{},{contextGlobalModal:n}))}))}};export{m as GlobalModalContext,b as default,C as mapGlobalModalContext,k as withApiGlobalModalConsumerContext,x as withApiGlobalModalContext};
|
|
2
2
|
//# sourceMappingURL=global-modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-modal.js","sources":["../../src/api-context/global-modal.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Backdrop, Box, Modal, SxProps, styled } from '@mui/material'\r\n\r\nexport interface GlobalModalState {\r\n sx?: SxProps\r\n sxWrap?: SxProps\r\n /** @default true */\r\n backdropActivated?: boolean\r\n onClose?: (reason?: TModalReason) => void\r\n renderContent?: () => React.ReactNode\r\n}\r\n\r\nexport type TModalReason = 'backdropClick' | 'escapeKeyDown'\r\n\r\ninterface GlobalModalProps {}\r\n\r\nexport type TShowModal = (value: GlobalModalState) => void\r\n\r\nexport type TCloseModal = (event?: {}, reason?: TModalReason) => void\r\n\r\nexport interface IGlobalModalContext {\r\n show: TShowModal\r\n close: TCloseModal\r\n}\r\n\r\nexport const GlobalModalContext = React.createContext<IGlobalModalContext>({\r\n close: () => {\r\n console.warn('GlobalModal provider not found!')\r\n },\r\n show: () => {\r\n console.warn('GlobalModal provider not found!')\r\n }\r\n})\r\n\r\nexport interface IMapGlobalModal {\r\n context: IGlobalModalContext\r\n}\r\n\r\nexport const
|
|
1
|
+
{"version":3,"file":"global-modal.js","sources":["../../src/api-context/global-modal.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Backdrop, Box, Modal, SxProps, styled } from '@mui/material'\r\n\r\nexport interface GlobalModalState {\r\n sx?: SxProps\r\n sxWrap?: SxProps\r\n /** @default true */\r\n backdropActivated?: boolean\r\n onClose?: (reason?: TModalReason) => void\r\n renderContent?: () => React.ReactNode\r\n}\r\n\r\nexport type TModalReason = 'backdropClick' | 'escapeKeyDown'\r\n\r\ninterface GlobalModalProps {}\r\n\r\nexport type TShowModal = (value: GlobalModalState) => void\r\n\r\nexport type TCloseModal = (event?: {}, reason?: TModalReason) => void\r\n\r\nexport interface IGlobalModalContext {\r\n show: TShowModal\r\n close: TCloseModal\r\n}\r\n\r\nexport const GlobalModalContext = React.createContext<IGlobalModalContext>({\r\n close: () => {\r\n console.warn('GlobalModal provider not found!')\r\n },\r\n show: () => {\r\n console.warn('GlobalModal provider not found!')\r\n }\r\n})\r\n\r\nexport interface IMapGlobalModal {\r\n context: IGlobalModalContext\r\n}\r\n\r\nexport const mapGlobalModalContext = (context: (state: IGlobalModalContext) => React.ReactNode) => (\r\n <GlobalModalContext.Consumer>{context}</GlobalModalContext.Consumer>\r\n)\r\n\r\nclass GlobalModal extends Component<React.PropsWithChildren<GlobalModalProps>, GlobalModalState> implements IGlobalModalContext {\r\n constructor(props: any) {\r\n super(props)\r\n this.state = {}\r\n }\r\n\r\n show: TShowModal = (value) => {\r\n this.setState(value)\r\n }\r\n\r\n close: TCloseModal = (_, reason) => {\r\n if (reason === 'backdropClick' && this.state.backdropActivated === false) return\r\n this.setState({ renderContent: undefined })\r\n }\r\n\r\n render() {\r\n return (\r\n <GlobalModalContext.Provider value={this}>\r\n {this.props.children}\r\n <Modal\r\n open={!!this.state.renderContent}\r\n onClose={this.close}\r\n slots={{ backdrop: Backdrop }}\r\n slotProps={{ backdrop: { timeout: 300 } }}\r\n sx={this.state.sx}\r\n >\r\n <Wrapper sx={this.state.sxWrap}>{this.renderContent()}</Wrapper>\r\n </Modal>\r\n </GlobalModalContext.Provider>\r\n )\r\n }\r\n\r\n renderContent = (): React.ReactNode => {\r\n return this.state.renderContent ? this.state.renderContent() : <></>\r\n }\r\n}\r\nexport default GlobalModal\r\n\r\nconst Wrapper = styled(Box)({\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n outline: 'none'\r\n})\r\n\r\nexport interface IApiGlobalModalContextProps {\r\n contextGlobalModal: IGlobalModalContext\r\n}\r\n\r\nexport const withApiGlobalModalContext = <P extends IApiGlobalModalContextProps>(Component: React.ComponentType<P>) => {\r\n return (props: Omit<P, keyof IApiGlobalModalContextProps>) => {\r\n return (\r\n <GlobalModal>\r\n {mapGlobalModalContext((context) => (\r\n <Component {...(props as P)} contextGlobalModal={context} />\r\n ))}\r\n </GlobalModal>\r\n )\r\n }\r\n}\r\n\r\nexport const withApiGlobalModalConsumerContext = <P extends IApiGlobalModalContextProps>(Component: React.ComponentType<P>) => {\r\n return (props: Omit<P, keyof IApiGlobalModalContextProps>) => {\r\n return mapGlobalModalContext((context) => <Component {...(props as P)} contextGlobalModal={context} />)\r\n }\r\n}\r\n"],"names":["GlobalModalContext","React","createContext","close","console","warn","show","mapGlobalModalContext","context","_jsx","Consumer","GlobalModal","props","_this","_classCallCheck","_callSuper","_defineProperty","value","setState","_","reason","state","backdropActivated","renderContent","undefined","_inherits","Component","_createClass","key","_jsxs","Provider","this","children","Modal","open","onClose","slots","backdrop","Backdrop","slotProps","timeout","sx","Wrapper","sxWrap","styled","Box","position","top","left","transform","outline","withApiGlobalModalContext","_objectSpread","contextGlobalModal","withApiGlobalModalConsumerContext"],"mappings":"iVAyBaA,EAAqBC,EAAMC,cAAmC,CACzEC,MAAO,WACLC,QAAQC,KAAK,kCACd,EACDC,KAAM,WACJF,QAAQC,KAAK,kCACf,IAOWE,EAAwB,SAACC,GAAwD,OAC5FC,EAACT,EAAmBU,mBAAUF,GAAsC,EAGhEG,aACJ,SAAAA,EAAYC,GAAU,IAAAC,EAEL,OAFKC,OAAAH,GACpBE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAIK,QAAA,SAACI,GAClBJ,EAAKK,SAASD,MACfD,EAAAH,EAAA,SAEoB,SAACM,EAAGC,GACR,kBAAXA,IAA+D,IAAjCP,EAAKQ,MAAMC,mBAC7CT,EAAKK,SAAS,CAAEK,mBAAeC,OAChCR,EAAAH,EAAA,iBAmBe,WACd,OAAOA,EAAKQ,MAAME,cAAgBV,EAAKQ,MAAME,gBAAkBd,WA9B/DI,EAAKQ,MAAQ,CAAE,EAAAR,CACjB,CAAC,OAAAY,EAAAd,EAJuBe,GAIvBC,EAAAhB,EAAA,CAAA,CAAAiB,IAAA,SAAAX,MAWD,WACE,OACEY,EAAC7B,EAAmB8B,UAASb,MAAOc,KAAIC,SAAA,CACrCD,KAAKnB,MAAMoB,SACZvB,EAACwB,EAAK,CACJC,OAAQH,KAAKV,MAAME,cACnBY,QAASJ,KAAK5B,MACdiC,MAAO,CAAEC,SAAUC,GACnBC,UAAW,CAAEF,SAAU,CAAEG,QAAS,MAClCC,GAAIV,KAAKV,MAAMoB,GAEfT,SAAAvB,EAACiC,EAAQ,CAAAD,GAAIV,KAAKV,MAAMsB,OAASX,SAAAD,KAAKR,sBAI9C,IAAC,IAQGmB,EAAUE,EAAOC,EAAPD,CAAY,CAC1BE,SAAU,WACVC,IAAK,MACLC,KAAM,MACNC,UAAW,wBACXC,QAAS,SAOEC,EAA4B,SAAwCzB,GAC/E,OAAO,SAACd,GACN,OACEH,EAACE,EACE,CAAAqB,SAAAzB,GAAsB,SAACC,GAAO,OAC7BC,EAACiB,EAAS0B,EAAAA,KAAMxC,GAAW,GAAA,CAAEyC,mBAAoB7C,IAClD,KAGN,CACH,EAEa8C,EAAoC,SAAwC5B,GACvF,OAAO,SAACd,GACN,OAAOL,GAAsB,SAACC,GAAO,OAAKC,EAACiB,EAAS0B,EAAAA,KAAMxC,GAAW,GAAA,CAAEyC,mBAAoB7C,OAC5F,CACH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as o,createClass as e,objectSpread2 as t,classCallCheck as r,callSuper as n,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as l}from"react/jsx-runtime";import c,{Component as s}from"react";import{Popover as u}from"@mui/material";import{ContentDefault as p}from"./ui.units.js";var h={open:function(){console.warn("PopoverGlobal provider not found!")},close:function(){console.warn("PopoverGlobal provider not found!")}},f=c.createContext(h),v=function(o){return l(f.Consumer,{children:o})},m=function(){function c(o){var e;return r(this,c),e=n(this,c,[o]),i(e,"openPopover",(function(o){clearTimeout(e.timer),e.setState(t({},o))})),i(e,"closePopover",(function(){clearTimeout(e.timer),e.setState({anchorEl:null},(function(){e.timer=setTimeout((function(){e.setState({content:l(p,{})})}),500)}))})),e.state={anchorEl:null,content:l(p,{})},e}return o(c,s),e(c,[{key:"componentDidMount",value:function(){h.open=this.openPopover,h.close=this.closePopover}},{key:"render",value:function(){var o=this;return a(f.Provider,{value:{open:this.openPopover,close:this.closePopover},children:[this.props.children,l(u,t(t({sx:{"& .MuiPaper-root.MuiPaper-elevation":{overflow:"hidden"}},anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:function(e,t){return o.closePopover(t)},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},disableScrollLock:!0},this.state.popoverProps),{},{children:this.state.content}))]})}}])}(),d=function(o){return function(e){return l(m,{children:v((function(r){return l(o,t(t({},e),{},{contextPopover:r}))}))})}},P={Provider:m,Api:h,Context:f,mapContext:v};export{
|
|
1
|
+
import{inherits as o,createClass as e,objectSpread2 as t,classCallCheck as r,callSuper as n,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as l}from"react/jsx-runtime";import c,{Component as s}from"react";import{Popover as u}from"@mui/material";import{ContentDefault as p}from"./ui.units.js";var h={open:function(){console.warn("PopoverGlobal provider not found!")},close:function(){console.warn("PopoverGlobal provider not found!")}},f=c.createContext(h),v=function(o){return l(f.Consumer,{children:o})},m=function(){function c(o){var e;return r(this,c),e=n(this,c,[o]),i(e,"openPopover",(function(o){clearTimeout(e.timer),e.setState(t({},o))})),i(e,"closePopover",(function(){clearTimeout(e.timer),e.setState({anchorEl:null},(function(){e.timer=setTimeout((function(){e.setState({content:l(p,{})})}),500)}))})),e.state={anchorEl:null,content:l(p,{})},e}return o(c,s),e(c,[{key:"componentDidMount",value:function(){h.open=this.openPopover,h.close=this.closePopover}},{key:"render",value:function(){var o=this;return a(f.Provider,{value:{open:this.openPopover,close:this.closePopover},children:[this.props.children,l(u,t(t({sx:{"& .MuiPaper-root.MuiPaper-elevation":{overflow:"hidden"}},anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:function(e,t){return o.closePopover(t)},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},disableScrollLock:!0},this.state.popoverProps),{},{children:this.state.content}))]})}}])}(),d=function(o){return function(e){return l(m,{children:v((function(r){return l(o,t(t({},e),{},{contextPopover:r}))}))})}},P={Provider:m,Api:h,Context:f,mapContext:v};export{h as PopoverGlobalApi,f as PopoverGlobalContext,m as PopoverGlobalProvider,P as default,v as mapPopoverGlobalContext,d as withPopoverGlobalContext};
|
|
2
2
|
//# sourceMappingURL=popover-global.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover-global.js","sources":["../../src/api-context/popover-global.tsx"],"sourcesContent":["import React, { Component, PropsWithChildren } from 'react'\r\nimport { Popover, PopoverProps, PopoverVirtualElement } from '@mui/material'\r\nimport { ContentDefault } from './ui.units'\r\n\r\nexport interface PopoverGlobalState {\r\n anchorEl?: Element | (() => Element) | PopoverVirtualElement | (() => PopoverVirtualElement) | null\r\n popoverProps?: Omit<PopoverProps, 'open'>\r\n content: React.ReactNode\r\n}\r\n\r\nexport type OpenPopover = (value: PopoverGlobalState) => void\r\n\r\nexport type ClosePopover = (reason?: 'backdropClick' | 'escapeKeyDown') => void\r\n\r\nexport interface PopoverGlobalContext {\r\n open: OpenPopover\r\n close: ClosePopover\r\n}\r\n\r\nexport const PopoverGlobalApi: PopoverGlobalContext = {\r\n open: () => {\r\n console.warn('PopoverGlobal provider not found!')\r\n },\r\n close: () => {\r\n console.warn('PopoverGlobal provider not found!')\r\n }\r\n}\r\n\r\nexport const PopoverGlobalContext = React.createContext<PopoverGlobalContext>(PopoverGlobalApi)\r\n\r\nexport const
|
|
1
|
+
{"version":3,"file":"popover-global.js","sources":["../../src/api-context/popover-global.tsx"],"sourcesContent":["import React, { Component, PropsWithChildren } from 'react'\r\nimport { Popover, PopoverProps, PopoverVirtualElement } from '@mui/material'\r\nimport { ContentDefault } from './ui.units'\r\n\r\nexport interface PopoverGlobalState {\r\n anchorEl?: Element | (() => Element) | PopoverVirtualElement | (() => PopoverVirtualElement) | null\r\n popoverProps?: Omit<PopoverProps, 'open'>\r\n content: React.ReactNode\r\n}\r\n\r\nexport type OpenPopover = (value: PopoverGlobalState) => void\r\n\r\nexport type ClosePopover = (reason?: 'backdropClick' | 'escapeKeyDown') => void\r\n\r\nexport interface PopoverGlobalContext {\r\n open: OpenPopover\r\n close: ClosePopover\r\n}\r\n\r\nexport const PopoverGlobalApi: PopoverGlobalContext = {\r\n open: () => {\r\n console.warn('PopoverGlobal provider not found!')\r\n },\r\n close: () => {\r\n console.warn('PopoverGlobal provider not found!')\r\n }\r\n}\r\n\r\nexport const PopoverGlobalContext = React.createContext<PopoverGlobalContext>(PopoverGlobalApi)\r\n\r\nexport const mapPopoverGlobalContext = (context: (state: PopoverGlobalContext) => React.ReactNode) => (\r\n <PopoverGlobalContext.Consumer>{context}</PopoverGlobalContext.Consumer>\r\n)\r\n\r\ninterface IProps extends PropsWithChildren {}\r\n\r\nexport class PopoverGlobalProvider extends Component<IProps, PopoverGlobalState> {\r\n constructor(props: any) {\r\n super(props)\r\n this.state = { anchorEl: null, content: <ContentDefault /> }\r\n }\r\n\r\n componentDidMount() {\r\n PopoverGlobalApi.open = this.openPopover\r\n PopoverGlobalApi.close = this.closePopover\r\n }\r\n\r\n render() {\r\n return (\r\n <PopoverGlobalContext.Provider value={{ open: this.openPopover, close: this.closePopover }}>\r\n {this.props.children}\r\n <Popover\r\n sx={{ '& .MuiPaper-root.MuiPaper-elevation': { overflow: 'hidden' } }}\r\n anchorEl={this.state.anchorEl}\r\n open={Boolean(this.state.anchorEl)}\r\n onClose={(_, reason) => this.closePopover(reason)}\r\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\r\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n disableScrollLock\r\n {...this.state.popoverProps}\r\n >\r\n {this.state.content}\r\n </Popover>\r\n </PopoverGlobalContext.Provider>\r\n )\r\n }\r\n\r\n openPopover: OpenPopover = (option) => {\r\n clearTimeout(this.timer)\r\n this.setState({ ...option })\r\n }\r\n\r\n timer: any\r\n closePopover: ClosePopover = () => {\r\n clearTimeout(this.timer)\r\n this.setState({ anchorEl: null }, () => {\r\n this.timer = setTimeout(() => {\r\n this.setState({ content: <ContentDefault /> })\r\n }, 500)\r\n })\r\n }\r\n}\r\n\r\nexport interface IPopoverGlobalContextProps {\r\n contextPopover: PopoverGlobalContext\r\n}\r\n\r\nexport const withPopoverGlobalContext = <P extends IPopoverGlobalContextProps>(Component: React.ComponentType<P>) => {\r\n return (props: Omit<P, keyof IPopoverGlobalContextProps>) => {\r\n return (\r\n <PopoverGlobalProvider>\r\n {mapPopoverGlobalContext((context) => (\r\n <Component {...(props as P)} contextPopover={context} />\r\n ))}\r\n </PopoverGlobalProvider>\r\n )\r\n }\r\n}\r\n\r\nconst PopoverGlobal = {\r\n Provider: PopoverGlobalProvider,\r\n Api: PopoverGlobalApi,\r\n Context: PopoverGlobalContext,\r\n mapContext: mapPopoverGlobalContext\r\n}\r\n\r\nexport default PopoverGlobal\r\n"],"names":["PopoverGlobalApi","open","console","warn","close","PopoverGlobalContext","React","createContext","mapPopoverGlobalContext","context","_jsx","Consumer","PopoverGlobalProvider","props","_this","_classCallCheck","_callSuper","_defineProperty","option","clearTimeout","timer","setState","_objectSpread","anchorEl","setTimeout","content","ContentDefault","state","_inherits","Component","_createClass","key","value","this","openPopover","closePopover","_this2","_jsxs","Provider","children","Popover","sx","overflow","Boolean","onClose","_","reason","anchorOrigin","vertical","horizontal","transformOrigin","disableScrollLock","popoverProps","withPopoverGlobalContext","contextPopover","PopoverGlobal","Api","Context","mapContext"],"mappings":"6UAmBO,IAAMA,EAAyC,CACpDC,KAAM,WACJC,QAAQC,KAAK,oCACd,EACDC,MAAO,WACLF,QAAQC,KAAK,oCACf,GAGWE,EAAuBC,EAAMC,cAAoCP,GAEjEQ,EAA0B,SAACC,GAAyD,OAC/FC,EAACL,EAAqBM,mBAAUF,GAAwC,EAK7DG,aACX,SAAAA,EAAYC,GAAU,IAAAC,EAEwC,OAFxCC,OAAAH,GACpBE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EA6Ba,eAAA,SAACI,GAC1BC,aAAaL,EAAKM,OAClBN,EAAKO,SAAQC,EAAMJ,CAAAA,EAAAA,OACpBD,EAAAH,EAAA,gBAG4B,WAC3BK,aAAaL,EAAKM,OAClBN,EAAKO,SAAS,CAAEE,SAAU,OAAQ,WAChCT,EAAKM,MAAQI,YAAW,WACtBV,EAAKO,SAAS,CAAEI,QAASf,EAACgB,EAAc,CAAA,IACzC,GAAE,IACL,OAxCAZ,EAAKa,MAAQ,CAAEJ,SAAU,KAAME,QAASf,EAACgB,EAAc,CAAA,IAAKZ,CAC9D,CAAC,OAAAc,EAAAhB,EAJwCiB,GAIxCC,EAAAlB,EAAA,CAAA,CAAAmB,IAAA,oBAAAC,MAED,WACEhC,EAAiBC,KAAOgC,KAAKC,YAC7BlC,EAAiBI,MAAQ6B,KAAKE,YAChC,GAAC,CAAAJ,IAAA,SAAAC,MAED,WAAM,IAAAI,EAAAH,KACJ,OACEI,EAAChC,EAAqBiC,SAAS,CAAAN,MAAO,CAAE/B,KAAMgC,KAAKC,YAAa9B,MAAO6B,KAAKE,cAAcI,SAAA,CACvFN,KAAKpB,MAAM0B,SACZ7B,EAAC8B,EAAOlB,EAAAA,EAAA,CACNmB,GAAI,CAAE,sCAAuC,CAAEC,SAAU,WACzDnB,SAAUU,KAAKN,MAAMJ,SACrBtB,KAAM0C,QAAQV,KAAKN,MAAMJ,UACzBqB,QAAS,SAACC,EAAGC,GAAM,OAAKV,EAAKD,aAAaW,EAAO,EACjDC,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChDC,gBAAiB,CAAEF,SAAU,MAAOC,WAAY,SAChDE,mBAAiB,GACblB,KAAKN,MAAMyB,cAAY,CAAA,EAAA,CAAAb,SAE1BN,KAAKN,MAAMF,aAIpB,IAAC,IAsBU4B,EAA2B,SAAuCxB,GAC7E,OAAO,SAAChB,GACN,OACEH,EAACE,EACE,CAAA2B,SAAA/B,GAAwB,SAACC,GAAO,OAC/BC,EAACmB,EAASP,EAAAA,KAAMT,GAAW,GAAA,CAAEyC,eAAgB7C,IAC9C,KAGN,CACH,EAEM8C,EAAgB,CACpBjB,SAAU1B,EACV4C,IAAKxD,EACLyD,QAASpD,EACTqD,WAAYlD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as o,createClass as t,objectSpread2 as r,classCallCheck as e,callSuper as n,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as s}from"react/jsx-runtime";import c,{Component as l}from"react";import{Popover as u}from"@mui/material";import{ContentDefault as p}from"./ui.units.js";var h=c.createContext({showPopover:function(){console.warn("ApiPopover provider not found!")},closePopover:function(){console.warn("ApiPopover provider not found!")}}),f=function(o){return s(h.Consumer,{children:o})},m=function(){function c(o){var t;return e(this,c),t=n(this,c,[o]),i(t,"showPopover",(function(o){clearTimeout(t.timer),t.setState(r({},o))})),i(t,"closePopover",(function(){clearTimeout(t.timer),t.setState({anchorEl:null},(function(){t.timer=setTimeout((function(){t.setState({content:s(p,{})})}),500)}))})),t.state={anchorEl:null,content:s(p,{})},t}return o(c,l),t(c,[{key:"render",value:function(){var o=this;return a(h.Provider,{value:this,children:[this.props.children,s(u,r(r({sx:{"& .MuiPaper-root.MuiPaper-elevation":{overflow:"hidden"}},anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:function(t,r){return o.closePopover(r)},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},disableScrollLock:!0},this.state.popoverProps),{},{children:this.state.content}))]})}}])}(),v=function(o){return function(t){return s(m,{children:f((function(e){return s(o,r(r({},t),{},{contextPopover:e}))}))})}};export{h as ApiPopoverContext,
|
|
1
|
+
import{inherits as o,createClass as t,objectSpread2 as r,classCallCheck as e,callSuper as n,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as s}from"react/jsx-runtime";import c,{Component as l}from"react";import{Popover as u}from"@mui/material";import{ContentDefault as p}from"./ui.units.js";var h=c.createContext({showPopover:function(){console.warn("ApiPopover provider not found!")},closePopover:function(){console.warn("ApiPopover provider not found!")}}),f=function(o){return s(h.Consumer,{children:o})},m=function(){function c(o){var t;return e(this,c),t=n(this,c,[o]),i(t,"showPopover",(function(o){clearTimeout(t.timer),t.setState(r({},o))})),i(t,"closePopover",(function(){clearTimeout(t.timer),t.setState({anchorEl:null},(function(){t.timer=setTimeout((function(){t.setState({content:s(p,{})})}),500)}))})),t.state={anchorEl:null,content:s(p,{})},t}return o(c,l),t(c,[{key:"render",value:function(){var o=this;return a(h.Provider,{value:this,children:[this.props.children,s(u,r(r({sx:{"& .MuiPaper-root.MuiPaper-elevation":{overflow:"hidden"}},anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:function(t,r){return o.closePopover(r)},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},disableScrollLock:!0},this.state.popoverProps),{},{children:this.state.content}))]})}}])}(),v=function(o){return function(t){return s(m,{children:f((function(e){return s(o,r(r({},t),{},{contextPopover:e}))}))})}};export{h as ApiPopoverContext,m as default,f as mapApiPopoverContext,v as withApiPopoverContext};
|
|
2
2
|
//# sourceMappingURL=popover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.js","sources":["../../src/api-context/popover.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Popover, PopoverProps, PopoverVirtualElement } from '@mui/material'\r\nimport { ContentDefault } from './ui.units'\r\n\r\nexport interface IPopoverOptions {\r\n anchorEl?: Element | (() => Element) | PopoverVirtualElement | (() => PopoverVirtualElement) | null\r\n popoverProps?: Omit<PopoverProps, 'open'>\r\n content: React.ReactNode\r\n}\r\n\r\nexport type TShowPopover = (option: IPopoverOptions) => void\r\n\r\nexport type TClosePopover = (reason?: 'backdropClick' | 'escapeKeyDown') => void\r\n\r\nexport interface IApiPopoverContext {\r\n showPopover: TShowPopover\r\n closePopover: TClosePopover\r\n}\r\n\r\nexport const ApiPopoverContext = React.createContext<IApiPopoverContext>({\r\n showPopover: () => {\r\n console.warn('ApiPopover provider not found!')\r\n },\r\n closePopover: () => {\r\n console.warn('ApiPopover provider not found!')\r\n }\r\n})\r\n\r\nexport const
|
|
1
|
+
{"version":3,"file":"popover.js","sources":["../../src/api-context/popover.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Popover, PopoverProps, PopoverVirtualElement } from '@mui/material'\r\nimport { ContentDefault } from './ui.units'\r\n\r\nexport interface IPopoverOptions {\r\n anchorEl?: Element | (() => Element) | PopoverVirtualElement | (() => PopoverVirtualElement) | null\r\n popoverProps?: Omit<PopoverProps, 'open'>\r\n content: React.ReactNode\r\n}\r\n\r\nexport type TShowPopover = (option: IPopoverOptions) => void\r\n\r\nexport type TClosePopover = (reason?: 'backdropClick' | 'escapeKeyDown') => void\r\n\r\nexport interface IApiPopoverContext {\r\n showPopover: TShowPopover\r\n closePopover: TClosePopover\r\n}\r\n\r\nexport const ApiPopoverContext = React.createContext<IApiPopoverContext>({\r\n showPopover: () => {\r\n console.warn('ApiPopover provider not found!')\r\n },\r\n closePopover: () => {\r\n console.warn('ApiPopover provider not found!')\r\n }\r\n})\r\n\r\nexport const mapApiPopoverContext = (context: (state: IApiPopoverContext) => React.ReactNode) => (\r\n <ApiPopoverContext.Consumer>{context}</ApiPopoverContext.Consumer>\r\n)\r\n\r\ninterface IProps {}\r\ninterface IState extends IPopoverOptions {}\r\ntype TProps = React.PropsWithChildren<IProps>\r\nclass ApiPopover extends Component<TProps, IState> implements IApiPopoverContext {\r\n constructor(props: any) {\r\n super(props)\r\n this.state = { anchorEl: null, content: <ContentDefault /> }\r\n }\r\n render() {\r\n return (\r\n <ApiPopoverContext.Provider value={this}>\r\n {this.props.children}\r\n <Popover\r\n sx={{ '& .MuiPaper-root.MuiPaper-elevation': { overflow: 'hidden' } }}\r\n anchorEl={this.state.anchorEl}\r\n open={Boolean(this.state.anchorEl)}\r\n onClose={(_, reason) => this.closePopover(reason)}\r\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\r\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n disableScrollLock\r\n {...this.state.popoverProps}\r\n >\r\n {this.state.content}\r\n </Popover>\r\n </ApiPopoverContext.Provider>\r\n )\r\n }\r\n showPopover = (option: IPopoverOptions) => {\r\n clearTimeout(this.timer)\r\n this.setState({ ...option })\r\n }\r\n timer: any\r\n closePopover: TClosePopover = () => {\r\n clearTimeout(this.timer)\r\n this.setState({ anchorEl: null }, () => {\r\n this.timer = setTimeout(() => {\r\n this.setState({ content: <ContentDefault /> })\r\n }, 500)\r\n })\r\n }\r\n}\r\nexport default ApiPopover\r\n\r\nexport interface IApiPopoverContextProps {\r\n contextPopover: IApiPopoverContext\r\n}\r\nexport const withApiPopoverContext = <P extends IApiPopoverContextProps>(Component: React.ComponentType<P>) => {\r\n return (props: Omit<P, keyof IApiPopoverContextProps>) => {\r\n return (\r\n <ApiPopover>\r\n {mapApiPopoverContext((context) => (\r\n <Component {...(props as P)} contextPopover={context} />\r\n ))}\r\n </ApiPopover>\r\n )\r\n }\r\n}\r\n"],"names":["ApiPopoverContext","React","createContext","showPopover","console","warn","closePopover","mapApiPopoverContext","context","_jsx","Consumer","ApiPopover","props","_this","_classCallCheck","_callSuper","_defineProperty","option","clearTimeout","timer","setState","_objectSpread","anchorEl","setTimeout","content","ContentDefault","state","_inherits","Component","_createClass","key","value","_this2","this","_jsxs","Provider","children","Popover","sx","overflow","open","Boolean","onClose","_","reason","anchorOrigin","vertical","horizontal","transformOrigin","disableScrollLock","popoverProps","withApiPopoverContext","contextPopover"],"mappings":"iVAmBaA,EAAoBC,EAAMC,cAAkC,CACvEC,YAAa,WACXC,QAAQC,KAAK,iCACd,EACDC,aAAc,WACZF,QAAQC,KAAK,iCACf,IAGWE,EAAuB,SAACC,GAAuD,OAC1FC,EAACT,EAAkBU,mBAAUF,GAAqC,EAM9DG,aACJ,SAAAA,EAAYC,GAAU,IAAAC,EAEwC,OAFxCC,OAAAH,GACpBE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAsBA,eAAA,SAACI,GACbC,aAAaL,EAAKM,OAClBN,EAAKO,SAAQC,EAAMJ,CAAAA,EAAAA,OACpBD,EAAAH,EAAA,gBAE6B,WAC5BK,aAAaL,EAAKM,OAClBN,EAAKO,SAAS,CAAEE,SAAU,OAAQ,WAChCT,EAAKM,MAAQI,YAAW,WACtBV,EAAKO,SAAS,CAAEI,QAASf,EAACgB,EAAc,CAAA,IACzC,GAAE,IACL,OAhCAZ,EAAKa,MAAQ,CAAEJ,SAAU,KAAME,QAASf,EAACgB,EAAc,CAAA,IAAKZ,CAC9D,CAAC,OAAAc,EAAAhB,EAJsBiB,GAItBC,EAAAlB,EAAA,CAAA,CAAAmB,IAAA,SAAAC,MACD,WAAM,IAAAC,EAAAC,KACJ,OACEC,EAAClC,EAAkBmC,SAAS,CAAAJ,MAAOE,KAChCG,SAAA,CAAAH,KAAKrB,MAAMwB,SACZ3B,EAAC4B,EAAOhB,EAAAA,EAAA,CACNiB,GAAI,CAAE,sCAAuC,CAAEC,SAAU,WACzDjB,SAAUW,KAAKP,MAAMJ,SACrBkB,KAAMC,QAAQR,KAAKP,MAAMJ,UACzBoB,QAAS,SAACC,EAAGC,GAAM,OAAKZ,EAAK1B,aAAasC,EAAO,EACjDC,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChDC,gBAAiB,CAAEF,SAAU,MAAOC,WAAY,SAChDE,mBAAiB,GACbhB,KAAKP,MAAMwB,cAAY,CAAA,EAAA,CAE1Bd,SAAAH,KAAKP,MAAMF,aAIpB,IAAC,IAoBU2B,EAAwB,SAAoCvB,GACvE,OAAO,SAAChB,GACN,OACEH,EAACE,EACE,CAAAyB,SAAA7B,GAAqB,SAACC,GAAO,OAC5BC,EAACmB,EAASP,EAAAA,KAAMT,GAAW,GAAA,CAAEwC,eAAgB5C,IAC9C,KAGN,CACH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{objectSpread2 as r,objectWithoutProperties as t,defineProperty as e}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i,jsxs as o}from"react/jsx-runtime";import{styled as n,Typography as l,Tooltip as a,tooltipClasses as p,Box as c,
|
|
1
|
+
import{objectSpread2 as r,objectWithoutProperties as t,defineProperty as e}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i,jsxs as o}from"react/jsx-runtime";import{styled as n,Typography as l,Tooltip as a,tooltipClasses as p,Box as c,IconButton as m,Stack as s,Divider as x}from"@mui/material";import d from"@mui/icons-material/HelpOutline";var u=["className"],f=function(t){return i(g,{arrow:!0,placement:"bottom",title:o(s,{sx:{gap:"6px",py:"6px",minWidth:"200px",maxWidth:"400px "},children:[i(b,{children:t.title}),i(x,{}),i(c,{sx:{p:"6px 12px"},children:t.children})]}),children:i(c,{sx:r({cursor:"default"},t.sxIcon),children:i(m,{size:"small",children:i(d,{fontSize:t.small?"small":"medium",sx:{color:"rgb(25,103,210)"}})})})})},h=function(r){return i(g,{arrow:!0,placement:"bottom",title:o(s,{sx:{gap:"6px",py:"6px",minWidth:"200px",maxWidth:"400px "},children:[i(b,{children:r.title}),i(x,{}),i(c,{sx:{p:"6px 12px"},children:r.content})]}),children:i(c,{sx:{cursor:"default"},children:r.children})})},b=n((function(t){return i(l,r({variant:"subtitle1"},t))}))({color:"#0095ff",fontWeight:700,padding:"0 10px"}),g=n((function(e){var o=e.className,n=t(e,u);return i(a,r(r({},n),{},{classes:{popper:o}}))}))((function(r){var t=r.theme;return e(e({},"& .".concat(p.tooltip),{backgroundColor:"#fff",color:"#3c3c3c",maxWidth:500,minHeight:120,fontSize:t.typography.pxToRem(12),borderRadius:"8px",boxShadow:"rgba(0, 0, 0, 0.08) 0px 6px 30px"}),"& .".concat(p.arrow),{color:"#fff"})}));export{h as HelpTooltipWrap,f as default};
|
|
2
2
|
//# sourceMappingURL=help-tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.filter-bar.js","sources":["../../src/filter-bar/create.filter-bar.tsx"],"sourcesContent":["import React from 'react'\r\nimport { Box, ClickAwayListener, IconButton, InputBase, styled } from '@mui/material'\r\nimport FilterListIcon from '@mui/icons-material/FilterList'\r\nimport { ButtonClear, FilterHelpNotes, FilterHelpNotesProps } from './ui.units'\r\nimport { IFilterFields, IFilterItemModel, IFilterModel, FilterReason, IFilterState } from './types'\r\nimport CreateFilterPanel, { FilterPanelState } from './create.filter-panel'\r\nimport FilterBarBase from './base'\r\nimport CreateFiltered from './create.filtered'\r\n\r\nexport interface FilterBarParams<T> {\r\n fields: IFilterFields<T>\r\n id?: string\r\n placeholder?: string\r\n helpNotes?: FilterHelpNotesProps\r\n}\r\n\r\ninterface IProps<T> {\r\n id?: string\r\n placeholder?: string\r\n value?: IFilterState<T>\r\n onChange?: (value: IFilterState<T>) => void\r\n}\r\n\r\ninterface IState {\r\n panelState: FilterPanelState\r\n keyword: string\r\n}\r\n\r\nfunction CreateFilterBar<T>(params: FilterBarParams<T>) {\r\n const FilterPanelInstance = CreateFilterPanel<T>({ fields: params.fields })\r\n const FilteredInstance = CreateFiltered<T>()\r\n\r\n class FilterBar extends FilterBarBase<IProps<T>, IState, T> {\r\n defaultState: IState = { keyword: '', panelState: { anchorEl: null } }\r\n constructor(props: IProps<T>) {\r\n super(props)\r\n this.state = this.defaultState\r\n }\r\n\r\n filterStateStore: IFilterState<T> = { filter: {} }\r\n get filterState(): IFilterState<T> {\r\n return this.props.value ?? this.filterStateStore\r\n }\r\n\r\n setFilterState = (filterState: IFilterState<T>) => {\r\n if (!this.props.value) {\r\n this.filterStateStore = filterState\r\n }\r\n this.props.onChange && this.props.onChange(filterState)\r\n }\r\n\r\n get configs() {\r\n return {\r\n id: this.props.id ?? params.id ?? new Date().getTime().toString(),\r\n placeholder: this.props.placeholder ?? params.placeholder ?? 'Filter',\r\n helpNotes: params.helpNotes\r\n }\r\n }\r\n\r\n refFilterButton: HTMLButtonElement | null = null\r\n refSortButton: HTMLButtonElement | null = null\r\n render() {\r\n return (\r\n <ClickAwayListener onClickAway={this.closePanel}>\r\n <Wrapper>\r\n <IconButton ref={(ref) => (this.refFilterButton = ref)} onClick={() => this.showPanel('filterButton')}>\r\n <FilterListIcon />\r\n </IconButton>\r\n <Content>\r\n <FilteredInstance fields={params.fields} filterState={this.filterState} onRemove={this.handleRemove} />\r\n {this.renderTextField()}\r\n </Content>\r\n <ButtonClear visibled={!this.isFilterEmpty(this.filterState)} onClick={this.handleClear} />\r\n {/* <IconButton ref={(ref) => (this.refSortButton = ref)} onClick={() => this.showPanel('sortButton')}>\r\n <SwapVertIcon />\r\n </IconButton> */}\r\n <FilterHelpNotes {...this.configs.helpNotes} />\r\n <FilterPanelInstance {...this.state.panelState} keyword={this.state.keyword} onSubmit={this.handleAdd} onClose={this.closePanel} />\r\n </Wrapper>\r\n </ClickAwayListener>\r\n )\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n refBeforeInput: HTMLElement | null = null\r\n renderTextField = () => (\r\n <Box component='label' htmlFor={this.configs.id} sx={{ flex: 1, display: 'flex', alignItems: 'flex-end' }}>\r\n <Box ref={(ref: HTMLElement) => (this.refBeforeInput = ref)} sx={{ height: '100%' }} />\r\n <InputBase\r\n id={this.configs.id}\r\n placeholder={this.configs.placeholder}\r\n fullWidth\r\n autoComplete='off'\r\n inputRef={(ref: HTMLInputElement) => (this.refInput = ref)}\r\n onChange={(event) => this.setState({ keyword: event.target.value })}\r\n value={this.state.keyword}\r\n onFocus={() => this.showPanel('searchInput')}\r\n onKeyDown={this.handleKeyDown}\r\n />\r\n </Box>\r\n )\r\n\r\n handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n const keyCode: number = event.keyCode\r\n if (keyCode === 13) {\r\n if (!this.state.keyword) return\r\n const temp = this.patchFilterWithKey(this.filterState, 'Search', { value: this.state.keyword })\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n } else if (keyCode === 27) {\r\n this.refInput?.blur()\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleAdd = (key: keyof IFilterModel<T>, value: IFilterItemModel) => {\r\n const temp = this.patchFilterWithKey(this.filterState, key, value)\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleRemove = (key: keyof IFilterModel<T>) => {\r\n const temp = this.deleteFilterWithKey(this.filterState, key)\r\n temp.filterState.details = 'remove'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n handleClear = () => {\r\n this.setFilterState({ filter: {}, details: 'remove' })\r\n this.setState(this.defaultState)\r\n }\r\n\r\n showPanel = (reason: FilterReason) => {\r\n let anchorEl = null\r\n switch (reason) {\r\n case 'searchInput':\r\n anchorEl = this.refBeforeInput\r\n break\r\n case 'filterButton':\r\n anchorEl = this.refFilterButton\r\n break\r\n case 'sortButton':\r\n anchorEl = this.refSortButton\r\n break\r\n default:\r\n break\r\n }\r\n this.setState({ panelState: { anchorEl, reason } })\r\n }\r\n\r\n closePanel = () => this.setState({ panelState: { anchorEl: null } })\r\n }\r\n\r\n return FilterBar\r\n}\r\n\r\nexport default CreateFilterBar\r\n\r\nconst Wrapper = styled(Box)({\r\n display: 'flex',\r\n gap: '8px',\r\n width: '100%',\r\n borderRadius: '6px',\r\n transition: 'all linear 0.2s',\r\n padding: '2px',\r\n backgroundColor: '#fafafa',\r\n '&:hover': { backgroundColor: '#ededed' }\r\n})\r\n\r\nconst Content = styled(Box)({\r\n flex: 1,\r\n minHeight: '40px',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '6px'\r\n})\r\n"],"names":["CreateFilterBar","params","FilterPanelInstance","CreateFilterPanel","fields","FilteredInstance","CreateFiltered","FilterBar","props","_this","_classCallCheck","_callSuper","_defineProperty","keyword","panelState","anchorEl","filter","filterState","value","filterStateStore","onChange","_jsxs","Box","component","htmlFor","configs","id","sx","flex","display","alignItems","children","_jsx","ref","refBeforeInput","height","InputBase","placeholder","fullWidth","autoComplete","inputRef","refInput","event","setState","target","state","onFocus","showPanel","onKeyDown","handleKeyDown","keyCode","_this$refInput","temp","patchFilterWithKey","details","isChanged","blur","setFilterState","defaultState","_this$refInput2","key","_this$refInput3","_this$refInput4","deleteFilterWithKey","forceUpdate","reason","refFilterButton","refSortButton","_inherits","FilterBarBase","_createClass","get","_this$props$value","this","_ref2","_this$props$id","_ref3","_this$props$placehold","Date","getTime","toString","helpNotes","_this2","ClickAwayListener","onClickAway","closePanel","Wrapper","IconButton","onClick","FilterListIcon","Content","onRemove","handleRemove","renderTextField","ButtonClear","visibled","isFilterEmpty","handleClear","FilterHelpNotes","_objectSpread","onSubmit","handleAdd","onClose","styled","gap","width","borderRadius","transition","padding","backgroundColor","minHeight","flexWrap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.filter-bar.js","sources":["../../src/filter-bar/create.filter-bar.tsx"],"sourcesContent":["import React from 'react'\r\nimport { Box, ClickAwayListener, IconButton, InputBase, styled } from '@mui/material'\r\nimport FilterListIcon from '@mui/icons-material/FilterList'\r\nimport { ButtonClear, FilterHelpNotes, FilterHelpNotesProps } from './ui.units'\r\nimport { IFilterFields, IFilterItemModel, IFilterModel, FilterReason, IFilterState } from './types'\r\nimport CreateFilterPanel, { FilterPanelState } from './create.filter-panel'\r\nimport FilterBarBase from './base'\r\nimport CreateFiltered from './create.filtered'\r\n\r\nexport interface FilterBarParams<T> {\r\n fields: IFilterFields<T>\r\n id?: string\r\n placeholder?: string\r\n helpNotes?: FilterHelpNotesProps\r\n}\r\n\r\nexport interface IFilterBarProps<T> {\r\n id?: string\r\n placeholder?: string\r\n value?: IFilterState<T>\r\n onChange?: (value: IFilterState<T>) => void\r\n}\r\n\r\nexport interface IFilterBarState {\r\n panelState: FilterPanelState\r\n keyword: string\r\n}\r\n\r\nfunction CreateFilterBar<T>(params: FilterBarParams<T>) {\r\n const FilterPanelInstance = CreateFilterPanel<T>({ fields: params.fields })\r\n const FilteredInstance = CreateFiltered<T>()\r\n\r\n class FilterBar extends FilterBarBase<IFilterBarProps<T>, IFilterBarState, T> {\r\n defaultState: IFilterBarState = { keyword: '', panelState: { anchorEl: null } }\r\n constructor(props: IFilterBarProps<T>) {\r\n super(props)\r\n this.state = this.defaultState\r\n }\r\n\r\n filterStateStore: IFilterState<T> = { filter: {} }\r\n get filterState(): IFilterState<T> {\r\n return this.props.value ?? this.filterStateStore\r\n }\r\n\r\n setFilterState = (filterState: IFilterState<T>) => {\r\n if (!this.props.value) {\r\n this.filterStateStore = filterState\r\n }\r\n this.props.onChange && this.props.onChange(filterState)\r\n }\r\n\r\n get configs() {\r\n return {\r\n id: this.props.id ?? params.id ?? new Date().getTime().toString(),\r\n placeholder: this.props.placeholder ?? params.placeholder ?? 'Filter',\r\n helpNotes: params.helpNotes\r\n }\r\n }\r\n\r\n refFilterButton: HTMLButtonElement | null = null\r\n refSortButton: HTMLButtonElement | null = null\r\n render() {\r\n return (\r\n <ClickAwayListener onClickAway={this.closePanel}>\r\n <Wrapper>\r\n <IconButton ref={(ref) => (this.refFilterButton = ref)} onClick={() => this.showPanel('filterButton')}>\r\n <FilterListIcon />\r\n </IconButton>\r\n <Content>\r\n <FilteredInstance fields={params.fields} filterState={this.filterState} onRemove={this.handleRemove} />\r\n {this.renderTextField()}\r\n </Content>\r\n <ButtonClear visibled={!this.isFilterEmpty(this.filterState)} onClick={this.handleClear} />\r\n {/* <IconButton ref={(ref) => (this.refSortButton = ref)} onClick={() => this.showPanel('sortButton')}>\r\n <SwapVertIcon />\r\n </IconButton> */}\r\n <FilterHelpNotes {...this.configs.helpNotes} />\r\n <FilterPanelInstance {...this.state.panelState} keyword={this.state.keyword} onSubmit={this.handleAdd} onClose={this.closePanel} />\r\n </Wrapper>\r\n </ClickAwayListener>\r\n )\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n refBeforeInput: HTMLElement | null = null\r\n renderTextField = () => (\r\n <Box component='label' htmlFor={this.configs.id} sx={{ flex: 1, display: 'flex', alignItems: 'flex-end' }}>\r\n <Box ref={(ref: HTMLElement) => (this.refBeforeInput = ref)} sx={{ height: '100%' }} />\r\n <InputBase\r\n id={this.configs.id}\r\n placeholder={this.configs.placeholder}\r\n fullWidth\r\n autoComplete='off'\r\n inputRef={(ref: HTMLInputElement) => (this.refInput = ref)}\r\n onChange={(event) => this.setState({ keyword: event.target.value })}\r\n value={this.state.keyword}\r\n onFocus={() => this.showPanel('searchInput')}\r\n onKeyDown={this.handleKeyDown}\r\n />\r\n </Box>\r\n )\r\n\r\n handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n const keyCode: number = event.keyCode\r\n if (keyCode === 13) {\r\n if (!this.state.keyword) return\r\n const temp = this.patchFilterWithKey(this.filterState, 'Search', { value: this.state.keyword })\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n } else if (keyCode === 27) {\r\n this.refInput?.blur()\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleAdd = (key: keyof IFilterModel<T>, value: IFilterItemModel) => {\r\n const temp = this.patchFilterWithKey(this.filterState, key, value)\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleRemove = (key: keyof IFilterModel<T>) => {\r\n const temp = this.deleteFilterWithKey(this.filterState, key)\r\n temp.filterState.details = 'remove'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n handleClear = () => {\r\n this.setFilterState({ filter: {}, details: 'remove' })\r\n this.setState(this.defaultState)\r\n }\r\n\r\n showPanel = (reason: FilterReason) => {\r\n let anchorEl = null\r\n switch (reason) {\r\n case 'searchInput':\r\n anchorEl = this.refBeforeInput\r\n break\r\n case 'filterButton':\r\n anchorEl = this.refFilterButton\r\n break\r\n case 'sortButton':\r\n anchorEl = this.refSortButton\r\n break\r\n default:\r\n break\r\n }\r\n this.setState({ panelState: { anchorEl, reason } })\r\n }\r\n\r\n closePanel = () => this.setState({ panelState: { anchorEl: null } })\r\n }\r\n\r\n return FilterBar\r\n}\r\n\r\nexport default CreateFilterBar\r\n\r\nconst Wrapper = styled(Box)({\r\n display: 'flex',\r\n gap: '8px',\r\n width: '100%',\r\n borderRadius: '6px',\r\n transition: 'all linear 0.2s',\r\n padding: '2px',\r\n backgroundColor: '#fafafa',\r\n '&:hover': { backgroundColor: '#ededed' }\r\n})\r\n\r\nconst Content = styled(Box)({\r\n flex: 1,\r\n minHeight: '40px',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '6px'\r\n})\r\n"],"names":["CreateFilterBar","params","FilterPanelInstance","CreateFilterPanel","fields","FilteredInstance","CreateFiltered","FilterBar","props","_this","_classCallCheck","_callSuper","_defineProperty","keyword","panelState","anchorEl","filter","filterState","value","filterStateStore","onChange","_jsxs","Box","component","htmlFor","configs","id","sx","flex","display","alignItems","children","_jsx","ref","refBeforeInput","height","InputBase","placeholder","fullWidth","autoComplete","inputRef","refInput","event","setState","target","state","onFocus","showPanel","onKeyDown","handleKeyDown","keyCode","_this$refInput","temp","patchFilterWithKey","details","isChanged","blur","setFilterState","defaultState","_this$refInput2","key","_this$refInput3","_this$refInput4","deleteFilterWithKey","forceUpdate","reason","refFilterButton","refSortButton","_inherits","FilterBarBase","_createClass","get","_this$props$value","this","_ref2","_this$props$id","_ref3","_this$props$placehold","Date","getTime","toString","helpNotes","_this2","ClickAwayListener","onClickAway","closePanel","Wrapper","IconButton","onClick","FilterListIcon","Content","onRemove","handleRemove","renderTextField","ButtonClear","visibled","isFilterEmpty","handleClear","FilterHelpNotes","_objectSpread","onSubmit","handleAdd","onClose","styled","gap","width","borderRadius","transition","padding","backgroundColor","minHeight","flexWrap"],"mappings":"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"}
|
package/dist/filter-bar/demo.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"react/jsx-runtime";import"@mui/material";import{EFieldValidate as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{Container as t}from"@mui/material";import{EFieldValidate as l,ESearchMatch as a}from"./types.js";import i from"./create.filter-bar.js";var r;!function(e){e.Val1="Val1",e.Val2="Val2",e.Val3="Val3"}(r||(r={}));var s=i({helpNotes:{items:["Id","Title","Asset Id"]},fields:{Id:{type:"string",searchMatches:{rule:a.Guid}},Title:{type:"string",searchMatches:{rule:a.AlwaysVisible}},AssetId:{type:"string",label:"Asset ID"},Link:{type:"string",searchMatches:{rule:a.Link},validate:{rule:l.Link}},YoutubeLink:{type:"string",label:"Youtube",searchMatches:{rule:a.LinkYoutube},validate:{rule:l.LinkYoutube}},Enum:{type:"select",label:"Enum Field",options:[{value:r.Val1},{value:r.Val2},{value:r.Val3,label:"Value 3"}]}}}),u=function(){return e(t,{maxWidth:"xl",sx:{padding:"50px 0"},children:e(s,{})})};export{u as default};
|
|
2
2
|
//# sourceMappingURL=demo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demo.js","sources":["../../src/filter-bar/demo.tsx"],"sourcesContent":["import { FC } from 'react'\r\nimport { Container } from '@mui/material'\r\nimport { EFieldValidate, ESearchMatch } from './types'\r\nimport CreateFilterBar from './create.filter-bar'\r\n\r\nenum EDataEnum {\r\n 'Val1' = 'Val1',\r\n 'Val2' = 'Val2',\r\n 'Val3' = 'Val3'\r\n}\r\n\r\ninterface Data {\r\n Id: string\r\n Title: string\r\n AssetId: string\r\n YoutubeLink: string\r\n Link: string\r\n Enum: EDataEnum\r\n}\r\n\r\nconst FilterBarInstance = CreateFilterBar<Data>({\r\n helpNotes: { items: ['Id', 'Title', 'Asset Id'] },\r\n fields: {\r\n Id: { type: 'string', searchMatches: { rule: ESearchMatch.Guid } },\r\n Title: { type: 'string', searchMatches: { rule: ESearchMatch.AlwaysVisible } },\r\n AssetId: { type: 'string', label: 'Asset ID' },\r\n Link: { type: 'string', searchMatches: { rule: ESearchMatch.Link }, validate: { rule: EFieldValidate.Link } },\r\n YoutubeLink: {\r\n type: 'string',\r\n label: 'Youtube',\r\n searchMatches: { rule: ESearchMatch.LinkYoutube },\r\n validate: { rule: EFieldValidate.LinkYoutube }\r\n },\r\n Enum: {\r\n type: 'select',\r\n label: 'Enum Field',\r\n options: [{ value: EDataEnum.Val1 }, { value: EDataEnum.Val2 }, { value: EDataEnum.Val3, label: 'Value 3' }]\r\n }\r\n }\r\n})\r\n\r\nconst FilterBarDemo: FC = () => {\r\n return (\r\n <Container maxWidth='xl' sx={{ padding: '50px 0' }}>\r\n <FilterBarInstance />\r\n </Container>\r\n )\r\n}\r\n\r\nexport default FilterBarDemo\r\n"],"names":["EDataEnum","CreateFilterBar","helpNotes","items","fields","Id","type","searchMatches","rule","ESearchMatch","Guid","Title","AlwaysVisible","AssetId","label","Link","validate","EFieldValidate","YoutubeLink","LinkYoutube","Enum","options","value","Val1","Val2","Val3"],"mappings":"
|
|
1
|
+
{"version":3,"file":"demo.js","sources":["../../src/filter-bar/demo.tsx"],"sourcesContent":["import { FC } from 'react'\r\nimport { Container } from '@mui/material'\r\nimport { EFieldValidate, ESearchMatch } from './types'\r\nimport CreateFilterBar from './create.filter-bar'\r\n\r\nenum EDataEnum {\r\n 'Val1' = 'Val1',\r\n 'Val2' = 'Val2',\r\n 'Val3' = 'Val3'\r\n}\r\n\r\ninterface Data {\r\n Id: string\r\n Title: string\r\n AssetId: string\r\n YoutubeLink: string\r\n Link: string\r\n Enum: EDataEnum\r\n}\r\n\r\nconst FilterBarInstance = CreateFilterBar<Data>({\r\n helpNotes: { items: ['Id', 'Title', 'Asset Id'] },\r\n fields: {\r\n Id: { type: 'string', searchMatches: { rule: ESearchMatch.Guid } },\r\n Title: { type: 'string', searchMatches: { rule: ESearchMatch.AlwaysVisible } },\r\n AssetId: { type: 'string', label: 'Asset ID' },\r\n Link: { type: 'string', searchMatches: { rule: ESearchMatch.Link }, validate: { rule: EFieldValidate.Link } },\r\n YoutubeLink: {\r\n type: 'string',\r\n label: 'Youtube',\r\n searchMatches: { rule: ESearchMatch.LinkYoutube },\r\n validate: { rule: EFieldValidate.LinkYoutube }\r\n },\r\n Enum: {\r\n type: 'select',\r\n label: 'Enum Field',\r\n options: [{ value: EDataEnum.Val1 }, { value: EDataEnum.Val2 }, { value: EDataEnum.Val3, label: 'Value 3' }]\r\n }\r\n }\r\n})\r\n\r\nconst FilterBarDemo: FC = () => {\r\n return (\r\n <Container maxWidth='xl' sx={{ padding: '50px 0' }}>\r\n <FilterBarInstance />\r\n </Container>\r\n )\r\n}\r\n\r\nexport default FilterBarDemo\r\n"],"names":["EDataEnum","FilterBarInstance","CreateFilterBar","helpNotes","items","fields","Id","type","searchMatches","rule","ESearchMatch","Guid","Title","AlwaysVisible","AssetId","label","Link","validate","EFieldValidate","YoutubeLink","LinkYoutube","Enum","options","value","Val1","Val2","Val3","FilterBarDemo","_jsx","Container","maxWidth","sx","padding","children"],"mappings":"sLAKA,IAAKA,GAAL,SAAKA,GACHA,EAAA,KAAA,OACAA,EAAA,KAAA,OACAA,EAAA,KAAA,MACD,CAJD,CAAKA,IAAAA,EAIJ,CAAA,IAWD,IAAMC,EAAoBC,EAAsB,CAC9CC,UAAW,CAAEC,MAAO,CAAC,KAAM,QAAS,aACpCC,OAAQ,CACNC,GAAI,CAAEC,KAAM,SAAUC,cAAe,CAAEC,KAAMC,EAAaC,OAC1DC,MAAO,CAAEL,KAAM,SAAUC,cAAe,CAAEC,KAAMC,EAAaG,gBAC7DC,QAAS,CAAEP,KAAM,SAAUQ,MAAO,YAClCC,KAAM,CAAET,KAAM,SAAUC,cAAe,CAAEC,KAAMC,EAAaM,MAAQC,SAAU,CAAER,KAAMS,EAAeF,OACrGG,YAAa,CACXZ,KAAM,SACNQ,MAAO,UACPP,cAAe,CAAEC,KAAMC,EAAaU,aACpCH,SAAU,CAAER,KAAMS,EAAeE,cAEnCC,KAAM,CACJd,KAAM,SACNQ,MAAO,aACPO,QAAS,CAAC,CAAEC,MAAOvB,EAAUwB,MAAQ,CAAED,MAAOvB,EAAUyB,MAAQ,CAAEF,MAAOvB,EAAU0B,KAAMX,MAAO,gBAKhGY,EAAoB,WACxB,OACEC,EAACC,EAAS,CAACC,SAAS,KAAKC,GAAI,CAAEC,QAAS,UAAUC,SAChDL,EAAC3B,EAAiB,CAAA,IAGxB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as r,createClass as t,classCallCheck as e,callSuper as n,defineProperty as o,asyncToGenerator as i,regeneratorRuntime as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as s}from"react/jsx-runtime";import{Component as c}from"react";import{styled as u,Button as p,Box as d,Card as f,DialogTitle as h,DialogContent as m,DialogActions as v}from"@mui/material";import{fetchDelay as g}from"../utils/helpers.js";import"../utils/query-param.js";import"../utils/dayjs-config.js";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{
|
|
1
|
+
import{inherits as r,createClass as t,classCallCheck as e,callSuper as n,defineProperty as o,asyncToGenerator as i,regeneratorRuntime as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as s}from"react/jsx-runtime";import{Component as c}from"react";import{styled as u,Button as p,Box as d,Card as f,DialogTitle as h,DialogContent as m,DialogActions as v}from"@mui/material";import{fetchDelay as g}from"../utils/helpers.js";import"../utils/query-param.js";import"../utils/dayjs-config.js";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{mapGlobalModalContext as x}from"../api-context/global-modal.js";var C=function(u){var p=function(){function p(r){var t;return e(this,p),t=n(this,p,[r]),o(t,"handleClickNo",(function(r){r.close(),t.props.onCancel&&t.props.onCancel()})),o(t,"handleClickYes",function(){var r=i(l().mark((function r(e){return l().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(t.props.onSubmit){r.next=2;break}return r.abrupt("return");case 2:return r.prev=2,t.setState({loading:!0}),r.next=6,g((function(){return t.props.onSubmit(t.props.data)}),700);case 6:e.close(),r.next=12;break;case 9:r.prev=9,r.t0=r.catch(2),console.log(r.t0);case 12:return r.prev=12,t.setState({loading:!1}),r.finish(12);case 15:case"end":return r.stop()}}),r,null,[[2,9,12,15]])})));return function(t){return r.apply(this,arguments)}}()),t.state={loading:!1},t}return r(p,c),t(p,[{key:"render",value:function(){var r,t,e=this,n=this.props.children||(null!=u&&u.content?null==u?void 0:u.content(this.props.data):void 0),o=null!==(r=null!==(t=this.props.title)&&void 0!==t?t:null==u?void 0:u.title)&&void 0!==r?r:"Are you sure?";return a(d,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:x((function(r){var t,i;return s(f,{children:[a(h,{id:"alert-dialog-title",children:o}),a(m,{sx:{minWidth:"300px"},children:n}),s(v,{children:[a(b,{disabled:e.state.loading,color:(null==u||null===(t=u.colors)||void 0===t?void 0:t.no)||"inherit",onClick:function(){return e.handleClickNo(r)},children:"No"}),a(b,{color:(null==u||null===(i=u.colors)||void 0===i?void 0:i.yes)||"error",disabled:e.state.loading,onClick:function(){return e.handleClickYes(r)},children:"Yes"})]})]})}))})}}])}();return p},b=u(p)({textTransform:"capitalize",fontWeight:600,"&.MuiButton-colorInherit":{color:"#606060!important"}});export{C as default};
|
|
2
2
|
//# sourceMappingURL=create.form-comfirm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.form-comfirm.js","sources":["../../src/form/create.form-comfirm.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Box, Button, Card, DialogActions, DialogContent, DialogTitle, styled } from '@mui/material'\r\nimport { fetchDelay } from '../utils'\r\nimport { IGlobalModalContext,
|
|
1
|
+
{"version":3,"file":"create.form-comfirm.js","sources":["../../src/form/create.form-comfirm.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Box, Button, Card, DialogActions, DialogContent, DialogTitle, styled } from '@mui/material'\r\nimport { fetchDelay } from '../utils'\r\nimport { IGlobalModalContext, mapGlobalModalContext } from '../api-context'\r\n\r\nexport interface IFormComfirmParam<T> {\r\n title?: string\r\n content: (value?: T) => JSX.Element\r\n colors?: {\r\n yes?: 'inherit' | 'error' | 'primary' | 'secondary' | 'success' | 'info' | 'warning'\r\n no?: 'inherit' | 'error' | 'primary' | 'secondary' | 'success' | 'info' | 'warning'\r\n }\r\n}\r\n\r\nexport interface IFormComfirmProps<T> {\r\n data?: T\r\n title?: string\r\n onSubmit: (value?: T) => Promise<void>\r\n onCancel?: () => void\r\n}\r\n\r\nexport interface IFormComfirmState {\r\n loading?: boolean\r\n}\r\n\r\nconst CreateFormComfirm = function <T = any>(param?: IFormComfirmParam<T>): ComponentType<React.PropsWithChildren<IFormComfirmProps<T>>> {\r\n class FormConfirm extends Component<React.PropsWithChildren<IFormComfirmProps<T>>, IFormComfirmState> {\r\n constructor(props: IFormComfirmProps<T>) {\r\n super(props)\r\n this.state = { loading: false }\r\n }\r\n\r\n render() {\r\n const content = this.props.children || (param?.content ? param?.content(this.props.data) : undefined)\r\n const title = this.props.title ?? param?.title ?? 'Are you sure?'\r\n return (\r\n <Box sx={{ flex: 1, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\r\n {mapGlobalModalContext((context) => (\r\n <Card>\r\n <DialogTitle id='alert-dialog-title'>{title}</DialogTitle>\r\n <DialogContent sx={{ minWidth: '300px' }}>{content}</DialogContent>\r\n <DialogActions>\r\n <CustomButton disabled={this.state.loading} color={param?.colors?.no || 'inherit'} onClick={() => this.handleClickNo(context)}>\r\n No\r\n </CustomButton>\r\n <CustomButton color={param?.colors?.yes || 'error'} disabled={this.state.loading} onClick={() => this.handleClickYes(context)}>\r\n Yes\r\n </CustomButton>\r\n </DialogActions>\r\n </Card>\r\n ))}\r\n </Box>\r\n )\r\n }\r\n\r\n handleClickNo = (context: IGlobalModalContext) => {\r\n context.close()\r\n this.props.onCancel && this.props.onCancel()\r\n }\r\n\r\n handleClickYes = async (context: IGlobalModalContext) => {\r\n if (!this.props.onSubmit) return\r\n try {\r\n this.setState({ loading: true })\r\n await fetchDelay(() => this.props.onSubmit(this.props.data), 700)\r\n context.close()\r\n } catch (error) {\r\n console.log(error)\r\n } finally {\r\n this.setState({ loading: false })\r\n }\r\n }\r\n }\r\n return FormConfirm\r\n}\r\nexport default CreateFormComfirm\r\n\r\nconst CustomButton = styled(Button)({\r\n textTransform: 'capitalize',\r\n fontWeight: 600,\r\n '&.MuiButton-colorInherit': {\r\n color: '#606060!important'\r\n }\r\n})\r\n"],"names":["CreateFormComfirm","param","FormConfirm","props","_this","_classCallCheck","_callSuper","_defineProperty","context","close","onCancel","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","onSubmit","abrupt","setState","loading","fetchDelay","data","t0","console","log","finish","stop","_x","apply","this","arguments","state","_inherits","Component","_createClass","key","value","_ref2","_this$props$title","_this2","content","children","undefined","title","_jsx","Box","sx","flex","display","alignItems","justifyContent","mapGlobalModalContext","_param$colors","_param$colors2","_jsxs","Card","DialogTitle","id","DialogContent","minWidth","DialogActions","CustomButton","disabled","color","colors","no","onClick","handleClickNo","yes","handleClickYes","styled","Button","textTransform","fontWeight"],"mappings":"mpBAyBA,IAAMA,EAAoB,SAAmBC,GAA4B,IACjEC,aACJ,SAAAA,EAAYC,GAA2B,IAAAC,EAEN,OAFMC,OAAAH,GACrCE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EA2BE,iBAAA,SAACI,GACfA,EAAQC,QACRL,EAAKD,MAAMO,UAAYN,EAAKD,MAAMO,cACnCH,EAAAH,EAAA,iBAAA,WAAA,IAAAO,EAAAC,EAAAC,IAAAC,MAEgB,SAAAC,EAAOP,GAA4B,OAAAK,IAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,GAC7Cf,EAAKD,MAAMiB,SAAQ,CAAAH,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAI,OAAA,UAAA,KAAA,EAEU,OAFVJ,EAAAC,KAAA,EAEtBd,EAAKkB,SAAS,CAAEC,SAAS,IAAON,EAAAE,KAAA,EAC1BK,GAAW,WAAA,OAAMpB,EAAKD,MAAMiB,SAAShB,EAAKD,MAAMsB,KAAK,GAAE,KAAI,KAAA,EACjEjB,EAAQC,QAAOQ,EAAAE,KAAA,GAAA,MAAA,KAAA,EAAAF,EAAAC,KAAA,EAAAD,EAAAS,GAAAT,EAAA,MAAA,GAEfU,QAAQC,IAAGX,EAAAS,IAAO,KAAA,GAEe,OAFfT,EAAAC,KAAA,GAElBd,EAAKkB,SAAS,CAAEC,SAAS,IAAQN,EAAAY,OAAA,IAAA,KAAA,GAAA,IAAA,MAAA,OAAAZ,EAAAa,OAAA,GAAAf,EAAA,KAAA,CAAA,CAAA,EAAA,EAAA,GAAA,UAEpC,OAAA,SAAAgB,GAAA,OAAApB,EAAAqB,MAAAC,KAAAC,UAAA,CAAA,CAbA,IA7BC9B,EAAK+B,MAAQ,CAAEZ,SAAS,GAAOnB,CACjC,CAAC,OAAAgC,EAAAlC,EAJuBmC,GAIvBC,EAAApC,EAAA,CAAA,CAAAqC,IAAA,SAAAC,MAED,WAAM,IAAAC,EAAAC,EAAAC,EAAAV,KACEW,EAAUX,KAAK9B,MAAM0C,WAAa5C,SAAAA,EAAO2C,QAAU3C,aAAK,EAALA,EAAO2C,QAAQX,KAAK9B,MAAMsB,WAAQqB,GACrFC,EAAwC,QAAnCN,EAAmB,QAAnBC,EAAGT,KAAK9B,MAAM4C,aAAK,IAAAL,EAAAA,EAAIzC,aAAK,EAALA,EAAO8C,aAAK,IAAAN,EAAAA,EAAI,gBAClD,OACEO,EAACC,EAAG,CAACC,GAAI,CAAEC,KAAM,EAAGC,QAAS,OAAQC,WAAY,SAAUC,eAAgB,UACxET,SAAAU,GAAsB,SAAC/C,GAAO,IAAAgD,EAAAC,EAAA,OAC7BC,EAACC,EACC,CAAAd,SAAA,CAAAG,EAACY,EAAW,CAACC,GAAG,qBAAoBhB,SAAEE,IACtCC,EAACc,EAAc,CAAAZ,GAAI,CAAEa,SAAU,kBAAYnB,IAC3Cc,EAACM,EAAa,CAAAnB,SAAA,CACZG,EAACiB,GAAaC,SAAUvB,EAAKR,MAAMZ,QAAS4C,OAAOlE,iBAAKuD,EAALvD,EAAOmE,cAAM,IAAAZ,OAAA,EAAbA,EAAea,KAAM,UAAWC,QAAS,WAAF,OAAQ3B,EAAK4B,cAAc/D,EAAQ,EAAAqC,SAAA,OAG7HG,EAACiB,EAAY,CAACE,OAAOlE,iBAAKwD,EAALxD,EAAOmE,cAAM,IAAAX,OAAA,EAAbA,EAAee,MAAO,QAASN,SAAUvB,EAAKR,MAAMZ,QAAS+C,QAAS,WAAF,OAAQ3B,EAAK8B,eAAejE,EAAQ,EAE9GqC,SAAA,aAGpB,KAGP,IAAC,IAoBH,OAAO3C,CACT,EAGM+D,EAAeS,EAAOC,EAAPD,CAAe,CAClCE,cAAe,aACfC,WAAY,IACZ,2BAA4B,CAC1BV,MAAO"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as o,createClass as t,classCallCheck as n,callSuper as r,defineProperty as e,objectSpread2 as i,objectWithoutProperties as l,asyncToGenerator as a,regeneratorRuntime as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as u,jsx as p}from"react/jsx-runtime";import{Fragment as d,Component as c}from"react";import{Grid as v}from"@mui/material";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{
|
|
1
|
+
import{inherits as o,createClass as t,classCallCheck as n,callSuper as r,defineProperty as e,objectSpread2 as i,objectWithoutProperties as l,asyncToGenerator as a,regeneratorRuntime as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as u,jsx as p}from"react/jsx-runtime";import{Fragment as d,Component as c}from"react";import{Grid as v}from"@mui/material";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{mapGlobalModalContext as f}from"../api-context/global-modal.js";import{CreateFormBottomBar as m,ContentWrap as g}from"./create.form-grid-layout.units.js";import b from"./create.input.js";import h from"./create.form-base.js";var y=["slots"],x=function(x){var S=h(),C=m(),j=b({maxLength:250}),k=function(){function m(o){var t;return n(this,m),t=r(this,m,[o]),e(t,"renderContent",(function(){var o,n=t.props.slots;return u(g,i(i({},null===(o=t.props)||void 0===o||null===(o=o.slots)||void 0===o?void 0:o.contentProps),{},{children:[(null==n?void 0:n.contentBefore)&&(null==n?void 0:n.contentBefore),null==x?void 0:x.contentBefore,p(v,{container:!0,spacing:2,children:x.configs.map((function(o,n){var r,e=!(null===(r=t.configMerged.inputVisibility)||void 0===r||!r[o.key])||void 0;return p(d,e?{}:{children:p(v,i(i({item:!0,xs:12},o.reponsives),{},{children:t.renderFormFieldElement(o)}))},o.key.toString()+n)}))}),null==x?void 0:x.contentAfter,(null==n?void 0:n.contentAfter)&&(null==n?void 0:n.contentAfter)]}))})),e(t,"renderFormFieldElement",(function(o){var n,r,e,i,a=t.props;a.slots;var s=l(a,y),u=null!==(n=o.inputElement)&&void 0!==n?n:j,d=null!==(r=null===(e=s.data)||void 0===e?void 0:e[o.key])&&void 0!==r?r:null==o?void 0:o.defaultValue,c=!(null===(i=t.configMerged.inputDisabled)||void 0===i||!i[o.key])||void 0;return S.contextMapping((function(n){return p(u,{data:t.props.data,onBlur:n.onBlur,messageErrors:n.messageErrors,name:o.key,label:o.label,placeholder:o.placeholder,disabled:c,defaultValue:d})}))})),e(t,"loading",(function(){return t.setState({loadding:!0})})),e(t,"unloading",(function(){return t.setState({loadding:!1})})),e(t,"onSubmit",function(){var o=a(s().mark((function o(n,r){var e,i,l,a,u;return s().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return i=t.props.slots,l=null!==(e=x.submitMapping)&&void 0!==e?e:t.submitMapping,a=l(n,t.props.data),o.prev=3,t.loading(),null===(u=t.abortController)||void 0===u||u.abort(),t.abortController=new AbortController,o.next=9,t.props.onSubmit(a,t.abortController.signal);case 9:null!=i&&i.closeState&&!1===i.closeState.Success||(r&&r(),t.props.onClose&&t.props.onClose()),o.next=16;break;case 12:o.prev=12,o.t0=o.catch(3),null!=i&&i.closeState&&!0===i.closeState.Fail&&(r&&r(),t.props.onClose&&t.props.onClose()),t.props.onError&&t.props.onError(o.t0);case 16:return o.prev=16,t.unloading(),o.finish(16);case 19:case"end":return o.stop()}}),o,null,[[3,12,16,19]])})));return function(t,n){return o.apply(this,arguments)}}()),e(t,"submitMapping",(function(o,t){return Object.assign({},t,o)})),e(t,"getSxProps",(function(){var o=t.state.loadding;return i(i({},t.props.sx),{},{opacity:o?.7:1,pointerEvents:o?"none":"auto"})})),t.state={loadding:!1},t}return o(m,c),t(m,[{key:"configMerged",get:function(){var o,t,n,r;return{inputVisibility:null!==(o=null===(t=this.props.slots)||void 0===t?void 0:t.inputVisibility)&&void 0!==o?o:x.inputVisibility,inputDisabled:null!==(n=null===(r=this.props.slots)||void 0===r?void 0:r.inputDisabled)&&void 0!==n?n:x.inputDisabled}}},{key:"render",value:function(){var o,t,n,r=this,e=null!==(o=null!==(t=null==x?void 0:x.action)&&void 0!==t?t:null===(n=this.props.slots)||void 0===n?void 0:n.action)&&void 0!==o?o:C;return f((function(o){var t=o.close;return u(S.Form,{validate:x.validate,onSubmit:function(o){return r.onSubmit(o,t)},sx:r.getSxProps(),children:[r.renderContent(),S.contextMapping((function(o){var t;return p(e,{data:r.props.data,onBlur:o.onBlur,messageErrors:o.messageErrors,before:null===(t=r.props.slots)||void 0===t?void 0:t.actionBefore})}))]})}))}},{key:"componentWillUnmount",value:function(){var o;null===(o=this.abortController)||void 0===o||o.abort()}}])}();return k};export{x as default};
|
|
2
2
|
//# sourceMappingURL=create.form-grid-layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.form-grid-layout.js","sources":["../../src/form/create.form-grid-layout.tsx"],"sourcesContent":["import React, { Component, ComponentType, Fragment } from 'react'\r\nimport { BoxProps, Grid, RegularBreakpoints, SxProps, Theme } from '@mui/material'\r\nimport { IFormBase, IFormInputBase } from './types'\r\nimport { MapGlobalModalContext } from '../api-context'\r\nimport { ContentWrap, CreateFormBottomBar } from './create.form-grid-layout.units'\r\nimport FormValidator from './validator'\r\nimport CreateInput from './create.input'\r\nimport CreateFormBase from './create.form-base'\r\n\r\nexport interface IFormGridLayoutConfig<T> {\r\n key: keyof T\r\n label?: string\r\n placeholder?: string\r\n reponsives?: RegularBreakpoints\r\n defaultValue?: any\r\n inputElement?: React.ComponentType<IFormInputBase<T>>\r\n}\r\n\r\nexport type SubmitMappingEvent<T> = (value: Partial<T>, oldValue?: T) => Partial<T>\r\n\r\nexport interface IFormGridLayoutSlots<T> {\r\n action?: React.ComponentType<IFormBase<T>>\r\n actionBefore?: JSX.Element\r\n contentBefore?: JSX.Element\r\n contentAfter?: JSX.Element\r\n inputVisibility?: Partial<Record<keyof T, boolean>>\r\n inputDisabled?: Partial<Record<keyof T, boolean>>\r\n closeState?: { Success?: boolean; Fail?: boolean }\r\n contentProps?: BoxProps\r\n}\r\n\r\nexport interface IFormGridLayoutParams<T> extends IFormGridLayoutSlots<T> {\r\n configs: IFormGridLayoutConfig<T>[]\r\n validate: FormValidator<Partial<T>>\r\n submitMapping?: SubmitMappingEvent<T>\r\n}\r\n\r\nexport interface IFormGridLayoutProps<T> {\r\n data?: T\r\n onSubmit: (value: Partial<T>, signal?: AbortSignal) => Promise<void>\r\n onError?: (error: any) => void\r\n onClose?: () => void\r\n sx?: SxProps<Theme>\r\n slots?: IFormGridLayoutSlots<T>\r\n}\r\n\r\nexport interface IFormGridLayoutState {\r\n loadding?: boolean\r\n}\r\n\r\nconst CreateFormGridLayout = function <T>(params: IFormGridLayoutParams<T>): ComponentType<IFormGridLayoutProps<T>> {\r\n const FormBaseInstance = CreateFormBase<T>()\r\n const BottomBarInstance = CreateFormBottomBar<T>()\r\n const InputBaseInstance = CreateInput<T>({ maxLength: 250 })\r\n\r\n class FormGridLayout extends Component<IFormGridLayoutProps<T>, IFormGridLayoutState> {\r\n private abortController?: AbortController\r\n constructor(props: IFormGridLayoutProps<T>) {\r\n super(props)\r\n this.state = { loadding: false }\r\n }\r\n\r\n get configMerged() {\r\n return {\r\n inputVisibility: this.props.slots?.inputVisibility ?? params.inputVisibility,\r\n inputDisabled: this.props.slots?.inputDisabled ?? params.inputDisabled\r\n }\r\n }\r\n\r\n render() {\r\n const BottomBar = params?.action ?? this.props.slots?.action ?? BottomBarInstance\r\n return MapGlobalModalContext(({ close }) => (\r\n <FormBaseInstance.Form validate={params.validate} onSubmit={(v) => this.onSubmit(v, close)} sx={this.getSxProps()}>\r\n {this.renderContent()}\r\n {FormBaseInstance.contextMapping((context) => (\r\n <BottomBar data={this.props.data} onBlur={context.onBlur} messageErrors={context.messageErrors} before={this.props.slots?.actionBefore} />\r\n ))}\r\n </FormBaseInstance.Form>\r\n ))\r\n }\r\n\r\n renderContent = () => {\r\n const { slots } = this.props\r\n return (\r\n <ContentWrap {...this.props?.slots?.contentProps}>\r\n {slots?.contentBefore && slots?.contentBefore}\r\n {params?.contentBefore}\r\n <Grid container spacing={2}>\r\n {params.configs.map((config, index) => {\r\n const visibility: boolean | undefined = this.configMerged.inputVisibility?.[config.key] ? true : undefined\r\n if (visibility) return <Fragment key={config.key.toString() + index} />\r\n return (\r\n <Fragment key={config.key.toString() + index}>\r\n <Grid item xs={12} {...config.reponsives}>\r\n {this.renderFormFieldElement(config)}\r\n </Grid>\r\n </Fragment>\r\n )\r\n })}\r\n </Grid>\r\n {params?.contentAfter}\r\n {slots?.contentAfter && slots?.contentAfter}\r\n </ContentWrap>\r\n )\r\n }\r\n\r\n renderFormFieldElement = (config: IFormGridLayoutConfig<T>) => {\r\n const { slots, ...otherProps } = this.props\r\n const ElementComponent = config.inputElement ?? InputBaseInstance\r\n const dValue = otherProps.data?.[config.key] ?? config?.defaultValue\r\n const disabled: boolean | undefined = this.configMerged.inputDisabled?.[config.key] ? true : undefined\r\n return FormBaseInstance.contextMapping((context) => (\r\n <ElementComponent\r\n data={this.props.data}\r\n onBlur={context.onBlur}\r\n messageErrors={context.messageErrors}\r\n name={config.key}\r\n label={config.label}\r\n placeholder={config.placeholder}\r\n disabled={disabled}\r\n defaultValue={dValue}\r\n />\r\n ))\r\n }\r\n\r\n loading = () => this.setState({ loadding: true })\r\n\r\n unloading = () => this.setState({ loadding: false })\r\n\r\n componentWillUnmount(): void {\r\n this.abortController?.abort()\r\n }\r\n\r\n onSubmit = async (value: Partial<T>, close?: () => void) => {\r\n const { slots } = this.props\r\n const mapping = params.submitMapping ?? this.submitMapping\r\n const data = mapping(value, this.props.data)\r\n try {\r\n this.loading()\r\n this.abortController?.abort()\r\n this.abortController = new AbortController()\r\n await this.props.onSubmit(data, this.abortController.signal)\r\n if (!slots?.closeState || slots.closeState.Success !== false) {\r\n close && close()\r\n this.props.onClose && this.props.onClose()\r\n }\r\n } catch (error) {\r\n if (slots?.closeState && slots.closeState.Fail === true) {\r\n close && close()\r\n this.props.onClose && this.props.onClose()\r\n }\r\n if (this.props.onError) this.props.onError(error)\r\n } finally {\r\n this.unloading()\r\n }\r\n }\r\n\r\n submitMapping: SubmitMappingEvent<T> = (value, oldValue) => {\r\n return Object.assign({}, oldValue, value)\r\n }\r\n\r\n getSxProps = (): SxProps<Theme> => {\r\n const isLoading = this.state.loadding\r\n return { ...this.props.sx, opacity: isLoading ? 0.7 : 1, pointerEvents: isLoading ? 'none' : 'auto' }\r\n }\r\n }\r\n return FormGridLayout\r\n}\r\n\r\nexport default CreateFormGridLayout\r\n"],"names":["CreateFormGridLayout","params","FormBaseInstance","CreateFormBase","BottomBarInstance","CreateFormBottomBar","InputBaseInstance","CreateInput","maxLength","FormGridLayout","props","_this","_classCallCheck","_callSuper","_defineProperty","_this$props","slots","_jsxs","ContentWrap","_objectSpread","contentProps","children","contentBefore","_jsx","Grid","container","spacing","configs","map","config","index","_this$configMerged$in","visibility","configMerged","inputVisibility","key","undefined","Fragment","item","xs","reponsives","renderFormFieldElement","toString","contentAfter","_config$inputElement","_otherProps$data$conf","_otherProps$data","_this$configMerged$in2","_this$props2","otherProps","_objectWithoutProperties","_excluded","ElementComponent","inputElement","dValue","data","defaultValue","disabled","inputDisabled","contextMapping","context","onBlur","messageErrors","name","label","placeholder","setState","loadding","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","value","close","_params$submitMapping","mapping","_this$abortController","wrap","_context","prev","next","submitMapping","loading","abortController","abort","AbortController","onSubmit","signal","closeState","Success","onClose","t0","Fail","onError","unloading","finish","stop","_x","_x2","apply","this","arguments","oldValue","Object","assign","isLoading","state","sx","opacity","pointerEvents","_inherits","Component","_createClass","get","_this$props$slots$inp","_this$props$slots","_this$props$slots$inp2","_this$props$slots2","_ref2","_params$action","_this$props$slots3","_this2","BottomBar","action","MapGlobalModalContext","_ref3","Form","validate","v","getSxProps","renderContent","_this2$props$slots","before","actionBefore","_this$abortController2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.form-grid-layout.js","sources":["../../src/form/create.form-grid-layout.tsx"],"sourcesContent":["import React, { Component, ComponentType, Fragment } from 'react'\r\nimport { BoxProps, Grid, RegularBreakpoints, SxProps, Theme } from '@mui/material'\r\nimport { IFormBase, IFormInputBase } from './types'\r\nimport { mapGlobalModalContext } from '../api-context'\r\nimport { ContentWrap, CreateFormBottomBar } from './create.form-grid-layout.units'\r\nimport FormValidator from './validator'\r\nimport CreateInput from './create.input'\r\nimport CreateFormBase from './create.form-base'\r\n\r\nexport interface IFormGridLayoutConfig<T> {\r\n key: keyof T\r\n label?: string\r\n placeholder?: string\r\n reponsives?: RegularBreakpoints\r\n defaultValue?: any\r\n inputElement?: React.ComponentType<IFormInputBase<T>>\r\n}\r\n\r\nexport type SubmitMappingEvent<T> = (value: Partial<T>, oldValue?: T) => Partial<T>\r\n\r\nexport interface IFormGridLayoutSlots<T> {\r\n action?: React.ComponentType<IFormBase<T>>\r\n actionBefore?: JSX.Element\r\n contentBefore?: JSX.Element\r\n contentAfter?: JSX.Element\r\n inputVisibility?: Partial<Record<keyof T, boolean>>\r\n inputDisabled?: Partial<Record<keyof T, boolean>>\r\n closeState?: { Success?: boolean; Fail?: boolean }\r\n contentProps?: BoxProps\r\n}\r\n\r\nexport interface IFormGridLayoutParams<T> extends IFormGridLayoutSlots<T> {\r\n configs: IFormGridLayoutConfig<T>[]\r\n validate: FormValidator<Partial<T>>\r\n submitMapping?: SubmitMappingEvent<T>\r\n}\r\n\r\nexport interface IFormGridLayoutProps<T> {\r\n data?: T\r\n onSubmit: (value: Partial<T>, signal?: AbortSignal) => Promise<void>\r\n onError?: (error: any) => void\r\n onClose?: () => void\r\n sx?: SxProps<Theme>\r\n slots?: IFormGridLayoutSlots<T>\r\n}\r\n\r\nexport interface IFormGridLayoutState {\r\n loadding?: boolean\r\n}\r\n\r\nconst CreateFormGridLayout = function <T>(params: IFormGridLayoutParams<T>): ComponentType<IFormGridLayoutProps<T>> {\r\n const FormBaseInstance = CreateFormBase<T>()\r\n const BottomBarInstance = CreateFormBottomBar<T>()\r\n const InputBaseInstance = CreateInput<T>({ maxLength: 250 })\r\n\r\n class FormGridLayout extends Component<IFormGridLayoutProps<T>, IFormGridLayoutState> {\r\n private abortController?: AbortController\r\n constructor(props: IFormGridLayoutProps<T>) {\r\n super(props)\r\n this.state = { loadding: false }\r\n }\r\n\r\n get configMerged() {\r\n return {\r\n inputVisibility: this.props.slots?.inputVisibility ?? params.inputVisibility,\r\n inputDisabled: this.props.slots?.inputDisabled ?? params.inputDisabled\r\n }\r\n }\r\n\r\n render() {\r\n const BottomBar = params?.action ?? this.props.slots?.action ?? BottomBarInstance\r\n return mapGlobalModalContext(({ close }) => (\r\n <FormBaseInstance.Form validate={params.validate} onSubmit={(v) => this.onSubmit(v, close)} sx={this.getSxProps()}>\r\n {this.renderContent()}\r\n {FormBaseInstance.contextMapping((context) => (\r\n <BottomBar data={this.props.data} onBlur={context.onBlur} messageErrors={context.messageErrors} before={this.props.slots?.actionBefore} />\r\n ))}\r\n </FormBaseInstance.Form>\r\n ))\r\n }\r\n\r\n renderContent = () => {\r\n const { slots } = this.props\r\n return (\r\n <ContentWrap {...this.props?.slots?.contentProps}>\r\n {slots?.contentBefore && slots?.contentBefore}\r\n {params?.contentBefore}\r\n <Grid container spacing={2}>\r\n {params.configs.map((config, index) => {\r\n const visibility: boolean | undefined = this.configMerged.inputVisibility?.[config.key] ? true : undefined\r\n if (visibility) return <Fragment key={config.key.toString() + index} />\r\n return (\r\n <Fragment key={config.key.toString() + index}>\r\n <Grid item xs={12} {...config.reponsives}>\r\n {this.renderFormFieldElement(config)}\r\n </Grid>\r\n </Fragment>\r\n )\r\n })}\r\n </Grid>\r\n {params?.contentAfter}\r\n {slots?.contentAfter && slots?.contentAfter}\r\n </ContentWrap>\r\n )\r\n }\r\n\r\n renderFormFieldElement = (config: IFormGridLayoutConfig<T>) => {\r\n const { slots, ...otherProps } = this.props\r\n const ElementComponent = config.inputElement ?? InputBaseInstance\r\n const dValue = otherProps.data?.[config.key] ?? config?.defaultValue\r\n const disabled: boolean | undefined = this.configMerged.inputDisabled?.[config.key] ? true : undefined\r\n return FormBaseInstance.contextMapping((context) => (\r\n <ElementComponent\r\n data={this.props.data}\r\n onBlur={context.onBlur}\r\n messageErrors={context.messageErrors}\r\n name={config.key}\r\n label={config.label}\r\n placeholder={config.placeholder}\r\n disabled={disabled}\r\n defaultValue={dValue}\r\n />\r\n ))\r\n }\r\n\r\n loading = () => this.setState({ loadding: true })\r\n\r\n unloading = () => this.setState({ loadding: false })\r\n\r\n componentWillUnmount(): void {\r\n this.abortController?.abort()\r\n }\r\n\r\n onSubmit = async (value: Partial<T>, close?: () => void) => {\r\n const { slots } = this.props\r\n const mapping = params.submitMapping ?? this.submitMapping\r\n const data = mapping(value, this.props.data)\r\n try {\r\n this.loading()\r\n this.abortController?.abort()\r\n this.abortController = new AbortController()\r\n await this.props.onSubmit(data, this.abortController.signal)\r\n if (!slots?.closeState || slots.closeState.Success !== false) {\r\n close && close()\r\n this.props.onClose && this.props.onClose()\r\n }\r\n } catch (error) {\r\n if (slots?.closeState && slots.closeState.Fail === true) {\r\n close && close()\r\n this.props.onClose && this.props.onClose()\r\n }\r\n if (this.props.onError) this.props.onError(error)\r\n } finally {\r\n this.unloading()\r\n }\r\n }\r\n\r\n submitMapping: SubmitMappingEvent<T> = (value, oldValue) => {\r\n return Object.assign({}, oldValue, value)\r\n }\r\n\r\n getSxProps = (): SxProps<Theme> => {\r\n const isLoading = this.state.loadding\r\n return { ...this.props.sx, opacity: isLoading ? 0.7 : 1, pointerEvents: isLoading ? 'none' : 'auto' }\r\n }\r\n }\r\n return FormGridLayout\r\n}\r\n\r\nexport default CreateFormGridLayout\r\n"],"names":["CreateFormGridLayout","params","FormBaseInstance","CreateFormBase","BottomBarInstance","CreateFormBottomBar","InputBaseInstance","CreateInput","maxLength","FormGridLayout","props","_this","_classCallCheck","_callSuper","_defineProperty","_this$props","slots","_jsxs","ContentWrap","_objectSpread","contentProps","children","contentBefore","_jsx","Grid","container","spacing","configs","map","config","index","_this$configMerged$in","visibility","configMerged","inputVisibility","key","undefined","Fragment","item","xs","reponsives","renderFormFieldElement","toString","contentAfter","_config$inputElement","_otherProps$data$conf","_otherProps$data","_this$configMerged$in2","_this$props2","otherProps","_objectWithoutProperties","_excluded","ElementComponent","inputElement","dValue","data","defaultValue","disabled","inputDisabled","contextMapping","context","onBlur","messageErrors","name","label","placeholder","setState","loadding","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","value","close","_params$submitMapping","mapping","_this$abortController","wrap","_context","prev","next","submitMapping","loading","abortController","abort","AbortController","onSubmit","signal","closeState","Success","onClose","t0","Fail","onError","unloading","finish","stop","_x","_x2","apply","this","arguments","oldValue","Object","assign","isLoading","state","sx","opacity","pointerEvents","_inherits","Component","_createClass","get","_this$props$slots$inp","_this$props$slots","_this$props$slots$inp2","_this$props$slots2","_ref2","_params$action","_this$props$slots3","_this2","BottomBar","action","mapGlobalModalContext","_ref3","Form","validate","v","getSxProps","renderContent","_this2$props$slots","before","actionBefore","_this$abortController2"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as e,jsx as i,Fragment as o}from"react/jsx-runtime";import{styled as t,Paper as r,IconButton as a,Box as n,Typography as p}from"@mui/material";import s from"@mui/icons-material/Close";import"react";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{
|
|
1
|
+
import{defineProperty as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as e,jsx as i,Fragment as o}from"react/jsx-runtime";import{styled as t,Paper as r,IconButton as a,Box as n,Typography as p}from"@mui/material";import s from"@mui/icons-material/Close";import"react";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{mapGlobalModalContext as c}from"../api-context/global-modal.js";var x=function(l){return c((function(t){var r,a;return e(m,{size:l.size,className:l.fullHeight?"full-height":void 0,children:[e(h,{sx:null===(r=l.slots)||void 0===r?void 0:r.sxTopbarProps,children:[(null===(a=l.slots)||void 0===a?void 0:a.beforeTitle)&&e(o,{children:[l.slots.beforeTitle,i(n,{flex:1})]}),i(p,{component:"h3",variant:"subtitle1",sx:{mt:"2px",ml:"8px",fontWeight:700},children:l.title}),i(n,{flex:1}),i(f,{onClick:function(){l.onCloseClick&&l.onCloseClick(),t.close()},children:i(s,{})})]}),l.children]})}))},m=t(r)((function(e){var i=e.theme,o=e.size;return l(l({maxHeight:"calc(100vh - 24px)",overflow:"hidden",display:"flex",flexDirection:"column",position:"relative",maxWidth:"calc(100vw - 24px)",width:i.breakpoints.values[null!=o?o:"lg"]},i.breakpoints.down("sm"),{width:"calc(100vw - 24px)"}),"&.full-height",{height:"calc(100vh - 24px)"})})),f=t(a)({flex:"0 0 auto",color:"#3c3c3c","& svg":{transition:"all 0.2s"},"&:hover svg":{color:"#ff200c"}}),h=t(n)({display:"flex",alignItems:"center",padding:"0 8px 0 8px",gap:"6px",flex:"0 0 auto",boxShadow:"rgba(145, 158, 171, 0.1) 0px 0px 2px 0px,rgba(145, 158, 171, 0.12) 0px 0px 24px -4px",height:"48px"});export{x as default};
|
|
2
2
|
//# sourceMappingURL=modal-wrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal-wrapper.js","sources":["../../src/form/modal-wrapper.tsx"],"sourcesContent":["import React, { FC, PropsWithChildren } from 'react'\r\nimport { Box, Breakpoint, IconButton, Paper, styled, SxProps, Theme, Typography } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport {
|
|
1
|
+
{"version":3,"file":"modal-wrapper.js","sources":["../../src/form/modal-wrapper.tsx"],"sourcesContent":["import React, { FC, PropsWithChildren } from 'react'\r\nimport { Box, Breakpoint, IconButton, Paper, styled, SxProps, Theme, Typography } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport { mapGlobalModalContext } from '../api-context'\r\n\r\nexport interface IFormModalWrapperProps extends PropsWithChildren {\r\n title: string\r\n size?: Breakpoint\r\n fullHeight?: boolean\r\n onCloseClick?: () => void\r\n slots?: {\r\n sxTopbarProps?: SxProps<Theme>\r\n beforeTitle?: JSX.Element\r\n }\r\n}\r\n\r\nconst FormModalWrapper: FC<IFormModalWrapperProps> = (props) => {\r\n return mapGlobalModalContext((context) => (\r\n <Wrap size={props.size} className={props.fullHeight ? 'full-height' : undefined}>\r\n <TopBar sx={props.slots?.sxTopbarProps}>\r\n {props.slots?.beforeTitle && (\r\n <>\r\n {props.slots.beforeTitle}\r\n <Box flex={1} />\r\n </>\r\n )}\r\n <Typography component='h3' variant='subtitle1' sx={{ mt: '2px', ml: '8px', fontWeight: 700 }}>\r\n {props.title}\r\n </Typography>\r\n <Box flex={1} />\r\n <BtnClose\r\n onClick={() => {\r\n props.onCloseClick && props.onCloseClick()\r\n context.close()\r\n }}\r\n >\r\n <CloseIcon />\r\n </BtnClose>\r\n </TopBar>\r\n {props.children}\r\n </Wrap>\r\n ))\r\n}\r\nexport default FormModalWrapper\r\n\r\nconst Wrap = styled(Paper)<{ size?: Breakpoint }>(({ theme, size }) => ({\r\n maxHeight: 'calc(100vh - 24px)',\r\n overflow: 'hidden',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n position: 'relative',\r\n maxWidth: 'calc(100vw - 24px)',\r\n width: theme.breakpoints.values[size ?? 'lg'],\r\n [theme.breakpoints.down('sm')]: { width: 'calc(100vw - 24px)' },\r\n '&.full-height': {\r\n height: 'calc(100vh - 24px)'\r\n }\r\n}))\r\n\r\nconst BtnClose = styled(IconButton)({\r\n flex: '0 0 auto',\r\n color: '#3c3c3c',\r\n '& svg': { transition: 'all 0.2s' },\r\n '&:hover svg': { color: '#ff200c' }\r\n})\r\n\r\nconst TopBar = styled(Box)({\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '0 8px 0 8px',\r\n gap: '6px',\r\n flex: '0 0 auto',\r\n boxShadow: 'rgba(145, 158, 171, 0.1) 0px 0px 2px 0px,rgba(145, 158, 171, 0.12) 0px 0px 24px -4px',\r\n height: '48px'\r\n})\r\n"],"names":["FormModalWrapper","props","mapGlobalModalContext","context","_props$slots","_props$slots2","_jsxs","Wrap","size","className","fullHeight","undefined","children","TopBar","sx","slots","sxTopbarProps","beforeTitle","_Fragment","_jsx","Box","flex","Typography","component","variant","mt","ml","fontWeight","title","BtnClose","onClick","onCloseClick","close","CloseIcon","styled","Paper","_ref","theme","_defineProperty","maxHeight","overflow","display","flexDirection","position","maxWidth","width","breakpoints","values","down","height","IconButton","color","transition","alignItems","padding","gap","boxShadow"],"mappings":"kbAgBA,IAAMA,EAA+C,SAACC,GACpD,OAAOC,GAAsB,SAACC,GAAO,IAAAC,EAAAC,EAAA,OACnCC,EAACC,EAAK,CAAAC,KAAMP,EAAMO,KAAMC,UAAWR,EAAMS,WAAa,mBAAgBC,EACpEC,SAAA,CAAAN,EAACO,EAAM,CAACC,GAAe,QAAbV,EAAEH,EAAMc,aAAK,IAAAX,OAAA,EAAXA,EAAaY,yBACX,QAAXX,EAAAJ,EAAMc,aAAK,IAAAV,OAAA,EAAXA,EAAaY,cACZX,EAAAY,EAAA,CAAAN,SAAA,CACGX,EAAMc,MAAME,YACbE,EAACC,EAAG,CAACC,KAAM,OAGfF,EAACG,EAAW,CAAAC,UAAU,KAAKC,QAAQ,YAAYV,GAAI,CAAEW,GAAI,MAAOC,GAAI,MAAOC,WAAY,cACpF1B,EAAM2B,QAETT,EAACC,EAAI,CAAAC,KAAM,IACXF,EAACU,EACC,CAAAC,QAAS,WACP7B,EAAM8B,cAAgB9B,EAAM8B,eAC5B5B,EAAQ6B,OACT,EAEDpB,SAAAO,EAACc,EAAS,CAAA,QAGbhC,EAAMW,WACF,GAEX,EAGML,EAAO2B,EAAOC,EAAPD,EAAqC,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAO7B,EAAI4B,EAAJ5B,KAAI,OAAA8B,EAAAA,EAAA,CAC9DC,UAAW,qBACXC,SAAU,SACVC,QAAS,OACTC,cAAe,SACfC,SAAU,WACVC,SAAU,qBACVC,MAAOR,EAAMS,YAAYC,OAAOvC,QAAAA,EAAQ,OACvC6B,EAAMS,YAAYE,KAAK,MAAQ,CAAEH,MAAO,uBACzC,gBAAiB,CACfI,OAAQ,sBACT,IAGGpB,EAAWK,EAAOgB,EAAPhB,CAAmB,CAClCb,KAAM,WACN8B,MAAO,UACP,QAAS,CAAEC,WAAY,YACvB,cAAe,CAAED,MAAO,aAGpBtC,EAASqB,EAAOd,EAAPc,CAAY,CACzBO,QAAS,OACTY,WAAY,SACZC,QAAS,cACTC,IAAK,MACLlC,KAAM,WACNmC,UAAW,uFACXP,OAAQ"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{default as ApiPopover,ApiPopoverContext,
|
|
1
|
+
export{default as ApiPopover,ApiPopoverContext,mapApiPopoverContext,withApiPopoverContext}from"./api-context/popover.js";export{AlertDialog,default as AlertGlobal,ApiAlertContext}from"./api-context/alert-global.js";export{default as DrawerGlobal}from"./api-context/drawer-global.js";export{default as GlobalModal,GlobalModalContext,mapGlobalModalContext,withApiGlobalModalConsumerContext,withApiGlobalModalContext}from"./api-context/global-modal.js";export{default as PopoverGlobal,PopoverGlobalApi,PopoverGlobalContext,PopoverGlobalProvider,mapPopoverGlobalContext,withPopoverGlobalContext}from"./api-context/popover-global.js";export{default as Breadcrumbs}from"./components/breadcrumbs.js";export{default as CopyToClipboard}from"./components/copy-to-clipboard.js";export{default as CreateMultiSelectDropdown}from"./components/create.multi-select-dropdown.js";export{default as ImageWithFallback}from"./components/image-with-fallback.js";export{default as HelpTooltip,HelpTooltipWrap}from"./components/help-tooltip.js";export{default as TextEditorPreview}from"./components/text-editor.preview.js";export{default as TextEditor,textEditorClasses}from"./components/text-editor.js";export{default as CreateFilterBar}from"./filter-bar/create.filter-bar.js";export{default as FilterBarDemo}from"./filter-bar/demo.js";export{EFieldValidate,ESearchMatch}from"./filter-bar/types.js";export{default as FormValidator,SingleRuleValidate,createFormValidator,mapRuleOptions}from"./form/validator.js";export{default as DinoForm}from"./form/dino-form.js";export{convertFormDataToJson,getErrorMessage}from"./form/helper.js";export{useCheckScrolled,useDebounce}from"./hooks/index.js";export{ELazyStatus}from"./redux/types.js";export{default as DinoRedux}from"./redux/dino.js";export{default as CreateHocLazy,EmptyComponent,defaultOptionHocLazy}from"./redux/create.hoc-lazy.js";export{ELogic,EOperator,EOrder}from"./table/model-filter.js";import"react/jsx-runtime";import"react";import"@mui/material";import"@mui/icons-material/Edit";import"@mui/icons-material/Delete";export{decodeBase64,encodeBase64,fetchDelay,formatCapitalizeFirstText,formatCurrency,formatDatetime,formatFileSize,formatNumberWithCommas,mergeClasses,mergeObjects,sleep,tryParseArray,tryParseIntRequired,tryParseObject,windowScrollToTop}from"./utils/helpers.js";export{default as JObject}from"./utils/json-object.js";export{QueryParam}from"./utils/query-param.js";import"./utils/dayjs-config.js";export{default as CreateTable}from"./table/create.table.js";export{default as DinoTable}from"./table/dino.js";export{dinoTableClasses}from"./table/helpers.js";export{default as DinoTableGrid}from"./table-grid/dino.js";export{default as dayjsCustom}from"dayjs";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{objectWithoutProperties as e,objectSpread2 as o,defineProperty as r,inherits as t,createClass as a,classCallCheck as i,callSuper as l,toConsumableArray as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s}from"react/jsx-runtime";import{Component as d}from"react";import{styled as u,Box as c}from"@mui/material";import{DataGrid as p}from"@mui/x-data-grid";import{mergeObjects as m}from"../utils/helpers.js";import"../utils/query-param.js";import"../utils/dayjs-config.js";import{TableBaseContext as g}from"./context.js";import{customFilterOperators as h}from"./custom.filter-operators.js";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import f,{
|
|
1
|
+
import{objectWithoutProperties as e,objectSpread2 as o,defineProperty as r,inherits as t,createClass as a,classCallCheck as i,callSuper as l,toConsumableArray as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s}from"react/jsx-runtime";import{Component as d}from"react";import{styled as u,Box as c}from"@mui/material";import{DataGrid as p}from"@mui/x-data-grid";import{mergeObjects as m}from"../utils/helpers.js";import"../utils/query-param.js";import"../utils/dayjs-config.js";import{TableBaseContext as g}from"./context.js";import{customFilterOperators as h}from"./custom.filter-operators.js";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import f,{mapGlobalModalContext as v}from"../api-context/global-modal.js";import b,{dinoTableClasses as y}from"./helpers.js";import C from"./toolbar-pannel.js";var P=["children"];function M(e){return function(){function u(t){var a;return i(this,u),a=l(this,u,[t]),r(a,"tableQueryParamsCache",{}),r(a,"setTableQueryParams",(function(e){a.tableQueryParams=m({},a.tableQueryParams,e)})),r(a,"renderWrapContext",(function(e){return s(f,{children:v((function(o){return s(g.Provider,{value:{showModal:o.show,closeModal:o.close},children:e})}))})})),r(a,"getDataGridProps",(function(){var o,r,t,i,l=a.mergeConfig,n={getRowId:e.getRowId,columns:a.columns,rows:null!==(o=null===(r=a.props.data)||void 0===r?void 0:r.items)&&void 0!==o?o:[],checkboxSelection:!0,pagination:!0,density:null!==(t=null===(i=a.props.slots)||void 0===i?void 0:i.density)&&void 0!==t?t:"standard",initialState:b.mapInitialState(a.props.query,{columns:{columnVisibilityModel:e.columnVisibilityModel}}),filterDebounceMs:800,sx:{border:0},slots:{toolbar:l.toolbar},rowSelectionModel:a.rowSelecteds,onRowSelectionModelChange:a.handleRowSelectionChange};if("server"===e.featureMode){var s,d,u={filterMode:"server",sortingMode:"server",paginationMode:"server",onPaginationModelChange:a.onPaginationModelChange,onFilterModelChange:a.onFilterModelChange,onSortModelChange:a.onSortModelChange,rowCount:null!==(s=null===(d=a.props.data)||void 0===d?void 0:d.rowTotal)&&void 0!==s?s:0,paginationModel:a.tableQueryParams.pagination,filterModel:a.tableQueryParams.filter,sortModel:b.mapSortModel(a.tableQueryParams.sort),loading:a.tableQueryParams.loading};Object.assign(n,u)}return m(n,a.mergeConfig.dataGridProps)})),r(a,"initialColumns",(function(){var r,t,i=a.mergeConfig.ActionRow,l=[];return i&&l.push(o({field:"Actions",minWidth:100,headerAlign:"right",align:"right",filterable:!1,sortable:!1,renderCell:function(e){return s(i,{value:e.row})}},e.actionRow)),r=l,t=Object.keys(e.columns).map((function(r){var t=o({field:r},e.columns[r]);return t.filterOperators=e.filterOperators?e.filterOperators(t):h(t),t})),r&&r.length>0&&t.push.apply(t,n(r)),t})),r(a,"onPaginationModelChange",(function(e,o){a.setTableQueryParams({pagination:e,detail:"pagination"}),a.handleChange()})),r(a,"onFilterModelChange",(function(e,o){var r,t=a.tableQueryParams.pagination;a.setTableQueryParams({filter:e,pagination:{page:0,pageSize:null!==(r=null==t?void 0:t.pageSize)&&void 0!==r?r:25},detail:b.detectSearchType(e)}),a.handleChange()})),r(a,"onSortModelChange",(function(e,o){var r,t,i,l,n,s=e,d=a.tableQueryParams.sort;null!=d&&d.length&&!s.length&&(s=(null==d||null===(r=d[0])||void 0===r?void 0:r.field)===(null===(t=a.defaultTableQueryParams.sort)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.field)?[{field:null===(i=d[0])||void 0===i?void 0:i.field,sort:"desc"===(null===(l=d[0])||void 0===l?void 0:l.sort)?"asc":"desc"}]:null!==(n=a.defaultTableQueryParams.sort)&&void 0!==n?n:[]);a.setTableQueryParams({sort:s,detail:"sort"}),a.handleChange()})),r(a,"handleChange",(function(){a.tableQueryParamsCache=a.tableQueryParams})),r(a,"handleRowSelectionChange",(function(e,o){a.mergeConfig.maxSelcion&&e.length>a.mergeConfig.maxSelcion?a.rowSelecteds=e.slice(0,a.mergeConfig.maxSelcion):a.rowSelecteds=e,a.props.onRowSelectionChange&&a.props.onRowSelectionChange(a.rowSelecteds,o),a.forceUpdate()})),a.columns=a.initialColumns(),a.tableQueryParams=o({},t.query),a.defaultTableQueryParams=a.tableQueryParams,a.rowSelecteds=[],a}return t(u,d),a(u,[{key:"mergeConfig",get:function(){var r,t,a,i,l,n,d,u=m({},null==e?void 0:e.toolbarProps,null===(r=this.props.slots)||void 0===r?void 0:r.toolbarProps);return{toolbar:null!==(t=null===(a=this.props.slots)||void 0===a?void 0:a.toolbar)&&void 0!==t?t:function(){return s(C,o({},u))},ActionRow:null===(i=this.props.slots)||void 0===i?void 0:i.actionRow,columnVisibilityModel:e.columnVisibilityModel,maxSelcion:null!==(l=null===(n=this.props.slots)||void 0===n?void 0:n.maxSelection)&&void 0!==l?l:e.maxSelection,dataGridProps:m({},e.dataGridProps,null===(d=this.props.slots)||void 0===d?void 0:d.dataGridProps)}}},{key:"shouldComponentUpdate",value:function(o){return"server"!==e.featureMode||b.equalTableQueryParams(o.query,this.props.query)?"server"!==e.featureMode:(this.setTableQueryParams(null!==(r=o.query)&&void 0!==r?r:{}),!0);var r}},{key:"render",value:function(){return this.renderWrapContext(s(S,{children:s(p,o({},this.getDataGridProps()))}))}}])}()}var S=u((function(r){var t=r.children,a=e(r,P);return s(c,o(o({},a),{},{children:s("div",{children:t})}))}))(r({flex:1,position:"relative","& > div":{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflowY:"auto"},"& .MuiDataGrid-root":{"--unstable_DataGrid-radius":0}},"& .MuiDataGrid-cell.".concat(y.whiteSpacePre," .MuiDataGrid-cellContent"),{whiteSpace:"pre"}));export{M as default};
|
|
2
2
|
//# sourceMappingURL=create.table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.table.js","sources":["../../src/table/create.table.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Box, BoxProps, styled } from '@mui/material'\r\nimport { DataGrid, DataGridProps, GridColDef, GridFeatureMode, GridFilterOperator } from '@mui/x-data-grid'\r\nimport { GridSortModel, GridValidRowModel, GridRowIdGetter, GridRowSelectionModel } from '@mui/x-data-grid'\r\nimport { GridCallbackDetails, GridColumnVisibilityModel, GridDensity, GridFilterModel, GridPaginationModel } from '@mui/x-data-grid'\r\nimport { mergeObjects } from '../utils'\r\nimport { TableBaseContext } from './context'\r\nimport { IActionRowProps } from './create.action-row'\r\nimport { customFilterOperators } from './custom.filter-operators'\r\nimport { GlobalModal, MapGlobalModalContext } from '../api-context'\r\nimport { ICustomGridColDef, ICustomGridFilterModel, ICustomGridSortModel, ITableData, ITableQueryParams } from './types'\r\nimport TableHelper, { dinoTableClasses } from './helpers'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\n\r\nexport interface ITableSlots<T> {\r\n maxSelection?: number\r\n density?: GridDensity\r\n toolbar?: React.ComponentType<IToolbarPannelProps>\r\n actionRow?: React.ComponentType<IActionRowProps<T>>\r\n toolbarProps?: IToolbarPannelProps\r\n dataGridProps?: DataGridProps\r\n}\r\n\r\nexport type ITableParamsSlots<T> = Pick<ITableSlots<T>, 'maxSelection' | 'toolbarProps' | 'dataGridProps'>\r\n\r\nexport interface ITableProps<T> {\r\n data?: ITableData<T>\r\n query?: ITableQueryParams<T>\r\n onChange?: (query: ITableQueryParams<T>) => void\r\n onRowSelectionChange?: DataGridProps['onRowSelectionModelChange']\r\n slots?: ITableSlots<T>\r\n}\r\n\r\nexport interface ITableParams<T extends GridValidRowModel> extends ITableParamsSlots<T> {\r\n featureMode?: GridFeatureMode\r\n getRowId: GridRowIdGetter<T>\r\n columns: ICustomGridColDef<T>\r\n filterOperators?: (config: GridColDef) => GridFilterOperator[]\r\n columnVisibilityModel?: Partial<Record<keyof T, boolean>>\r\n actionRow?: Omit<GridColDef, 'field'>\r\n}\r\n\r\nfunction CreateTable<T extends GridValidRowModel>(params: ITableParams<T>): ComponentType<ITableProps<T>> {\r\n const generateColumns = (extendColDefs?: GridColDef[]) => {\r\n const columns = Object.keys(params.columns).map<GridColDef>((key) => {\r\n const obj = { field: key, ...params.columns[key] }\r\n obj.filterOperators = params.filterOperators ? params.filterOperators(obj) : customFilterOperators(obj)\r\n return obj\r\n })\r\n\r\n if (!!extendColDefs && extendColDefs.length > 0) columns.push(...extendColDefs)\r\n return columns\r\n }\r\n\r\n class Table extends Component<ITableProps<T>> {\r\n private tableQueryParams: ITableQueryParams<T>\r\n private tableQueryParamsCache: ITableQueryParams<T> = {}\r\n private defaultTableQueryParams: ITableQueryParams<T>\r\n private columns: GridColDef<T>[]\r\n private rowSelecteds: GridRowSelectionModel\r\n constructor(props: ITableProps<T>) {\r\n super(props)\r\n this.columns = this.initialColumns()\r\n this.tableQueryParams = { ...props.query }\r\n this.defaultTableQueryParams = this.tableQueryParams\r\n this.rowSelecteds = []\r\n }\r\n\r\n get mergeConfig() {\r\n const toolbarPannelProps = mergeObjects({}, params?.toolbarProps, this.props.slots?.toolbarProps)\r\n return {\r\n toolbar: this.props.slots?.toolbar ?? (() => <ToolbarPannel {...toolbarPannelProps} />),\r\n ActionRow: this.props.slots?.actionRow,\r\n columnVisibilityModel: params.columnVisibilityModel,\r\n maxSelcion: this.props.slots?.maxSelection ?? params.maxSelection,\r\n dataGridProps: mergeObjects({}, params.dataGridProps, this.props.slots?.dataGridProps)\r\n }\r\n }\r\n\r\n setTableQueryParams = (value: Partial<ITableQueryParams<T>>) => {\r\n this.tableQueryParams = mergeObjects({}, this.tableQueryParams, value)\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<ITableProps<T>>): boolean {\r\n if (params.featureMode === 'server' && !TableHelper.equalTableQueryParams(nextProps.query, this.props.query)) {\r\n this.setTableQueryParams(nextProps.query ?? {})\r\n return true\r\n } else if (params.featureMode !== 'server') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n render() {\r\n return this.renderWrapContext(\r\n <Wrap>\r\n <DataGrid {...this.getDataGridProps()} />\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderWrapContext = (children: React.ReactNode) => (\r\n <GlobalModal>\r\n {MapGlobalModalContext((context) => (\r\n <TableBaseContext.Provider value={{ showModal: context.show, closeModal: context.close }}>{children}</TableBaseContext.Provider>\r\n ))}\r\n </GlobalModal>\r\n )\r\n\r\n getDataGridProps = (): DataGridProps<T> => {\r\n const mergeConfig = this.mergeConfig\r\n const obj: DataGridProps<T> = {\r\n getRowId: params.getRowId,\r\n columns: this.columns,\r\n rows: this.props.data?.items ?? [],\r\n checkboxSelection: true,\r\n pagination: true,\r\n density: this.props.slots?.density ?? 'standard',\r\n initialState: TableHelper.mapInitialState(this.props.query, {\r\n columns: { columnVisibilityModel: params.columnVisibilityModel as GridColumnVisibilityModel }\r\n }),\r\n filterDebounceMs: 800,\r\n sx: { border: 0 },\r\n slots: { toolbar: mergeConfig.toolbar },\r\n rowSelectionModel: this.rowSelecteds,\r\n onRowSelectionModelChange: this.handleRowSelectionChange\r\n }\r\n if (params.featureMode === 'server') {\r\n const objServer: Partial<DataGridProps<T>> = {\r\n filterMode: 'server',\r\n sortingMode: 'server',\r\n paginationMode: 'server',\r\n onPaginationModelChange: this.onPaginationModelChange,\r\n onFilterModelChange: this.onFilterModelChange,\r\n onSortModelChange: this.onSortModelChange,\r\n rowCount: this.props.data?.rowTotal ?? 0,\r\n paginationModel: this.tableQueryParams.pagination,\r\n filterModel: this.tableQueryParams.filter as GridFilterModel,\r\n sortModel: TableHelper.mapSortModel(this.tableQueryParams.sort),\r\n loading: this.tableQueryParams.loading\r\n }\r\n Object.assign(obj, objServer)\r\n }\r\n return mergeObjects(obj, this.mergeConfig.dataGridProps)\r\n }\r\n\r\n initialColumns = (): GridColDef<T>[] => {\r\n const { ActionRow } = this.mergeConfig\r\n const list: GridColDef<T>[] = []\r\n if (!!ActionRow) {\r\n list.push({\r\n field: 'Actions',\r\n minWidth: 100,\r\n headerAlign: 'right',\r\n align: 'right',\r\n filterable: false,\r\n sortable: false,\r\n renderCell: (value) => <ActionRow value={value.row} />,\r\n ...params.actionRow\r\n })\r\n }\r\n return generateColumns(list)\r\n }\r\n\r\n onPaginationModelChange = (model: GridPaginationModel, details: GridCallbackDetails<'pagination'>) => {\r\n this.setTableQueryParams({ pagination: model, detail: 'pagination' })\r\n this.handleChange()\r\n }\r\n\r\n onFilterModelChange = (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\r\n const { pagination } = this.tableQueryParams\r\n this.setTableQueryParams({\r\n filter: model as ICustomGridFilterModel<T>,\r\n pagination: { page: 0, pageSize: pagination?.pageSize ?? 25 },\r\n detail: TableHelper.detectSearchType(model)\r\n })\r\n this.handleChange()\r\n }\r\n\r\n onSortModelChange = (model: GridSortModel, details: GridCallbackDetails<any>) => {\r\n let sortValue = model as ICustomGridSortModel<T>\r\n const { sort } = this.tableQueryParams\r\n if (!!sort?.length && !sortValue.length) {\r\n if (sort?.[0]?.field === this.defaultTableQueryParams.sort?.[0]?.field) {\r\n sortValue = [{ field: sort[0]?.field, sort: sort[0]?.sort === 'desc' ? 'asc' : 'desc' }]\r\n } else {\r\n sortValue = this.defaultTableQueryParams.sort ?? []\r\n }\r\n }\r\n this.setTableQueryParams({ sort: sortValue, detail: 'sort' })\r\n this.handleChange()\r\n }\r\n\r\n handleChange = () => {\r\n // const check = TableHelper.isEmpty(this.tableQueryParams)\r\n // const checkCache = TableHelper.isEmpty(this.tableQueryParamsCache)\r\n // const isChange = this.props.onChange && this.props.onChange(this.tableQueryParams)\r\n this.tableQueryParamsCache = this.tableQueryParams\r\n }\r\n\r\n handleRowSelectionChange = (value: GridRowSelectionModel, details: GridCallbackDetails) => {\r\n if (this.mergeConfig.maxSelcion && value.length > this.mergeConfig.maxSelcion) {\r\n this.rowSelecteds = value.slice(0, this.mergeConfig.maxSelcion)\r\n } else {\r\n this.rowSelecteds = value\r\n }\r\n this.props.onRowSelectionChange && this.props.onRowSelectionChange(this.rowSelecteds, details)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n return Table\r\n}\r\n\r\nexport default CreateTable\r\n\r\nconst Wrap = styled(({ children, ...p }: BoxProps) => (\r\n <Box {...p}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n flex: 1,\r\n position: 'relative',\r\n '& > div': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n overflowY: 'auto'\r\n },\r\n '& .MuiDataGrid-root': {\r\n '--unstable_DataGrid-radius': 0\r\n },\r\n [`& .MuiDataGrid-cell.${dinoTableClasses.whiteSpacePre} .MuiDataGrid-cellContent`]: {\r\n whiteSpace: 'pre'\r\n }\r\n})\r\n"],"names":["CreateTable","params","Table","props","_this","_classCallCheck","_callSuper","_defineProperty","value","tableQueryParams","mergeObjects","children","_jsx","GlobalModal","MapGlobalModalContext","context","TableBaseContext","Provider","showModal","show","closeModal","close","_this$props$data$item","_this$props$data","_this$props$slots$den","_this$props$slots","mergeConfig","obj","getRowId","columns","rows","data","items","checkboxSelection","pagination","density","slots","initialState","TableHelper","mapInitialState","query","columnVisibilityModel","filterDebounceMs","sx","border","toolbar","rowSelectionModel","rowSelecteds","onRowSelectionModelChange","handleRowSelectionChange","featureMode","_this$props$data$rowT","_this$props$data2","objServer","filterMode","sortingMode","paginationMode","onPaginationModelChange","onFilterModelChange","onSortModelChange","rowCount","rowTotal","paginationModel","filterModel","filter","sortModel","mapSortModel","sort","loading","Object","assign","dataGridProps","extendColDefs","ActionRow","list","push","_objectSpread","field","minWidth","headerAlign","align","filterable","sortable","renderCell","row","actionRow","keys","map","key","filterOperators","customFilterOperators","length","apply","_toConsumableArray","model","details","setTableQueryParams","detail","handleChange","_pagination$pageSize","page","pageSize","detectSearchType","_sort$","_this$defaultTableQue","_sort$2","_sort$3","_this$defaultTableQue2","sortValue","defaultTableQueryParams","tableQueryParamsCache","maxSelcion","slice","onRowSelectionChange","forceUpdate","initialColumns","_inherits","Component","_createClass","get","_this$props$slots2","_this$props$slots$too","_this$props$slots3","_this$props$slots4","_this$props$slots$max","_this$props$slots5","_this$props$slots6","toolbarPannelProps","toolbarProps","this","ToolbarPannel","maxSelection","nextProps","equalTableQueryParams","_nextProps$query","renderWrapContext","Wrap","DataGrid","getDataGridProps","styled","_ref","p","_objectWithoutProperties","_excluded","Box","flex","position","top","left","width","height","overflowY","concat","dinoTableClasses","whiteSpacePre","whiteSpace"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.table.js","sources":["../../src/table/create.table.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Box, BoxProps, styled } from '@mui/material'\r\nimport { DataGrid, DataGridProps, GridColDef, GridFeatureMode, GridFilterOperator } from '@mui/x-data-grid'\r\nimport { GridSortModel, GridValidRowModel, GridRowIdGetter, GridRowSelectionModel } from '@mui/x-data-grid'\r\nimport { GridCallbackDetails, GridColumnVisibilityModel, GridDensity, GridFilterModel, GridPaginationModel } from '@mui/x-data-grid'\r\nimport { mergeObjects } from '../utils'\r\nimport { TableBaseContext } from './context'\r\nimport { IActionRowProps } from './create.action-row'\r\nimport { customFilterOperators } from './custom.filter-operators'\r\nimport { GlobalModal, mapGlobalModalContext } from '../api-context'\r\nimport { ICustomGridColDef, ICustomGridFilterModel, ICustomGridSortModel, ITableData, ITableQueryParams } from './types'\r\nimport TableHelper, { dinoTableClasses } from './helpers'\r\nimport ToolbarPannel, { IToolbarPannelProps } from './toolbar-pannel'\r\n\r\nexport interface ITableSlots<T> {\r\n maxSelection?: number\r\n density?: GridDensity\r\n toolbar?: React.ComponentType<IToolbarPannelProps>\r\n actionRow?: React.ComponentType<IActionRowProps<T>>\r\n toolbarProps?: IToolbarPannelProps\r\n dataGridProps?: DataGridProps\r\n}\r\n\r\nexport type ITableParamsSlots<T> = Pick<ITableSlots<T>, 'maxSelection' | 'toolbarProps' | 'dataGridProps'>\r\n\r\nexport interface ITableProps<T> {\r\n data?: ITableData<T>\r\n query?: ITableQueryParams<T>\r\n onChange?: (query: ITableQueryParams<T>) => void\r\n onRowSelectionChange?: DataGridProps['onRowSelectionModelChange']\r\n slots?: ITableSlots<T>\r\n}\r\n\r\nexport interface ITableParams<T extends GridValidRowModel> extends ITableParamsSlots<T> {\r\n featureMode?: GridFeatureMode\r\n getRowId: GridRowIdGetter<T>\r\n columns: ICustomGridColDef<T>\r\n filterOperators?: (config: GridColDef) => GridFilterOperator[]\r\n columnVisibilityModel?: Partial<Record<keyof T, boolean>>\r\n actionRow?: Omit<GridColDef, 'field'>\r\n}\r\n\r\nfunction CreateTable<T extends GridValidRowModel>(params: ITableParams<T>): ComponentType<ITableProps<T>> {\r\n const generateColumns = (extendColDefs?: GridColDef[]) => {\r\n const columns = Object.keys(params.columns).map<GridColDef>((key) => {\r\n const obj = { field: key, ...params.columns[key] }\r\n obj.filterOperators = params.filterOperators ? params.filterOperators(obj) : customFilterOperators(obj)\r\n return obj\r\n })\r\n\r\n if (!!extendColDefs && extendColDefs.length > 0) columns.push(...extendColDefs)\r\n return columns\r\n }\r\n\r\n class Table extends Component<ITableProps<T>> {\r\n private tableQueryParams: ITableQueryParams<T>\r\n private tableQueryParamsCache: ITableQueryParams<T> = {}\r\n private defaultTableQueryParams: ITableQueryParams<T>\r\n private columns: GridColDef<T>[]\r\n private rowSelecteds: GridRowSelectionModel\r\n constructor(props: ITableProps<T>) {\r\n super(props)\r\n this.columns = this.initialColumns()\r\n this.tableQueryParams = { ...props.query }\r\n this.defaultTableQueryParams = this.tableQueryParams\r\n this.rowSelecteds = []\r\n }\r\n\r\n get mergeConfig() {\r\n const toolbarPannelProps = mergeObjects({}, params?.toolbarProps, this.props.slots?.toolbarProps)\r\n return {\r\n toolbar: this.props.slots?.toolbar ?? (() => <ToolbarPannel {...toolbarPannelProps} />),\r\n ActionRow: this.props.slots?.actionRow,\r\n columnVisibilityModel: params.columnVisibilityModel,\r\n maxSelcion: this.props.slots?.maxSelection ?? params.maxSelection,\r\n dataGridProps: mergeObjects({}, params.dataGridProps, this.props.slots?.dataGridProps)\r\n }\r\n }\r\n\r\n setTableQueryParams = (value: Partial<ITableQueryParams<T>>) => {\r\n this.tableQueryParams = mergeObjects({}, this.tableQueryParams, value)\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<ITableProps<T>>): boolean {\r\n if (params.featureMode === 'server' && !TableHelper.equalTableQueryParams(nextProps.query, this.props.query)) {\r\n this.setTableQueryParams(nextProps.query ?? {})\r\n return true\r\n } else if (params.featureMode !== 'server') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n render() {\r\n return this.renderWrapContext(\r\n <Wrap>\r\n <DataGrid {...this.getDataGridProps()} />\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderWrapContext = (children: React.ReactNode) => (\r\n <GlobalModal>\r\n {mapGlobalModalContext((context) => (\r\n <TableBaseContext.Provider value={{ showModal: context.show, closeModal: context.close }}>{children}</TableBaseContext.Provider>\r\n ))}\r\n </GlobalModal>\r\n )\r\n\r\n getDataGridProps = (): DataGridProps<T> => {\r\n const mergeConfig = this.mergeConfig\r\n const obj: DataGridProps<T> = {\r\n getRowId: params.getRowId,\r\n columns: this.columns,\r\n rows: this.props.data?.items ?? [],\r\n checkboxSelection: true,\r\n pagination: true,\r\n density: this.props.slots?.density ?? 'standard',\r\n initialState: TableHelper.mapInitialState(this.props.query, {\r\n columns: { columnVisibilityModel: params.columnVisibilityModel as GridColumnVisibilityModel }\r\n }),\r\n filterDebounceMs: 800,\r\n sx: { border: 0 },\r\n slots: { toolbar: mergeConfig.toolbar },\r\n rowSelectionModel: this.rowSelecteds,\r\n onRowSelectionModelChange: this.handleRowSelectionChange\r\n }\r\n if (params.featureMode === 'server') {\r\n const objServer: Partial<DataGridProps<T>> = {\r\n filterMode: 'server',\r\n sortingMode: 'server',\r\n paginationMode: 'server',\r\n onPaginationModelChange: this.onPaginationModelChange,\r\n onFilterModelChange: this.onFilterModelChange,\r\n onSortModelChange: this.onSortModelChange,\r\n rowCount: this.props.data?.rowTotal ?? 0,\r\n paginationModel: this.tableQueryParams.pagination,\r\n filterModel: this.tableQueryParams.filter as GridFilterModel,\r\n sortModel: TableHelper.mapSortModel(this.tableQueryParams.sort),\r\n loading: this.tableQueryParams.loading\r\n }\r\n Object.assign(obj, objServer)\r\n }\r\n return mergeObjects(obj, this.mergeConfig.dataGridProps)\r\n }\r\n\r\n initialColumns = (): GridColDef<T>[] => {\r\n const { ActionRow } = this.mergeConfig\r\n const list: GridColDef<T>[] = []\r\n if (!!ActionRow) {\r\n list.push({\r\n field: 'Actions',\r\n minWidth: 100,\r\n headerAlign: 'right',\r\n align: 'right',\r\n filterable: false,\r\n sortable: false,\r\n renderCell: (value) => <ActionRow value={value.row} />,\r\n ...params.actionRow\r\n })\r\n }\r\n return generateColumns(list)\r\n }\r\n\r\n onPaginationModelChange = (model: GridPaginationModel, details: GridCallbackDetails<'pagination'>) => {\r\n this.setTableQueryParams({ pagination: model, detail: 'pagination' })\r\n this.handleChange()\r\n }\r\n\r\n onFilterModelChange = (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\r\n const { pagination } = this.tableQueryParams\r\n this.setTableQueryParams({\r\n filter: model as ICustomGridFilterModel<T>,\r\n pagination: { page: 0, pageSize: pagination?.pageSize ?? 25 },\r\n detail: TableHelper.detectSearchType(model)\r\n })\r\n this.handleChange()\r\n }\r\n\r\n onSortModelChange = (model: GridSortModel, details: GridCallbackDetails<any>) => {\r\n let sortValue = model as ICustomGridSortModel<T>\r\n const { sort } = this.tableQueryParams\r\n if (!!sort?.length && !sortValue.length) {\r\n if (sort?.[0]?.field === this.defaultTableQueryParams.sort?.[0]?.field) {\r\n sortValue = [{ field: sort[0]?.field, sort: sort[0]?.sort === 'desc' ? 'asc' : 'desc' }]\r\n } else {\r\n sortValue = this.defaultTableQueryParams.sort ?? []\r\n }\r\n }\r\n this.setTableQueryParams({ sort: sortValue, detail: 'sort' })\r\n this.handleChange()\r\n }\r\n\r\n handleChange = () => {\r\n // const check = TableHelper.isEmpty(this.tableQueryParams)\r\n // const checkCache = TableHelper.isEmpty(this.tableQueryParamsCache)\r\n // const isChange = this.props.onChange && this.props.onChange(this.tableQueryParams)\r\n this.tableQueryParamsCache = this.tableQueryParams\r\n }\r\n\r\n handleRowSelectionChange = (value: GridRowSelectionModel, details: GridCallbackDetails) => {\r\n if (this.mergeConfig.maxSelcion && value.length > this.mergeConfig.maxSelcion) {\r\n this.rowSelecteds = value.slice(0, this.mergeConfig.maxSelcion)\r\n } else {\r\n this.rowSelecteds = value\r\n }\r\n this.props.onRowSelectionChange && this.props.onRowSelectionChange(this.rowSelecteds, details)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n return Table\r\n}\r\n\r\nexport default CreateTable\r\n\r\nconst Wrap = styled(({ children, ...p }: BoxProps) => (\r\n <Box {...p}>\r\n <div>{children}</div>\r\n </Box>\r\n))({\r\n flex: 1,\r\n position: 'relative',\r\n '& > div': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n overflowY: 'auto'\r\n },\r\n '& .MuiDataGrid-root': {\r\n '--unstable_DataGrid-radius': 0\r\n },\r\n [`& .MuiDataGrid-cell.${dinoTableClasses.whiteSpacePre} .MuiDataGrid-cellContent`]: {\r\n whiteSpace: 'pre'\r\n }\r\n})\r\n"],"names":["CreateTable","params","Table","props","_this","_classCallCheck","_callSuper","_defineProperty","value","tableQueryParams","mergeObjects","children","_jsx","GlobalModal","mapGlobalModalContext","context","TableBaseContext","Provider","showModal","show","closeModal","close","_this$props$data$item","_this$props$data","_this$props$slots$den","_this$props$slots","mergeConfig","obj","getRowId","columns","rows","data","items","checkboxSelection","pagination","density","slots","initialState","TableHelper","mapInitialState","query","columnVisibilityModel","filterDebounceMs","sx","border","toolbar","rowSelectionModel","rowSelecteds","onRowSelectionModelChange","handleRowSelectionChange","featureMode","_this$props$data$rowT","_this$props$data2","objServer","filterMode","sortingMode","paginationMode","onPaginationModelChange","onFilterModelChange","onSortModelChange","rowCount","rowTotal","paginationModel","filterModel","filter","sortModel","mapSortModel","sort","loading","Object","assign","dataGridProps","extendColDefs","ActionRow","list","push","_objectSpread","field","minWidth","headerAlign","align","filterable","sortable","renderCell","row","actionRow","keys","map","key","filterOperators","customFilterOperators","length","apply","_toConsumableArray","model","details","setTableQueryParams","detail","handleChange","_pagination$pageSize","page","pageSize","detectSearchType","_sort$","_this$defaultTableQue","_sort$2","_sort$3","_this$defaultTableQue2","sortValue","defaultTableQueryParams","tableQueryParamsCache","maxSelcion","slice","onRowSelectionChange","forceUpdate","initialColumns","_inherits","Component","_createClass","get","_this$props$slots2","_this$props$slots$too","_this$props$slots3","_this$props$slots4","_this$props$slots$max","_this$props$slots5","_this$props$slots6","toolbarPannelProps","toolbarProps","this","ToolbarPannel","maxSelection","nextProps","equalTableQueryParams","_nextProps$query","renderWrapContext","Wrap","DataGrid","getDataGridProps","styled","_ref","p","_objectWithoutProperties","_excluded","Box","flex","position","top","left","width","height","overflowY","concat","dinoTableClasses","whiteSpacePre","whiteSpace"],"mappings":"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"}
|
package/dist/table/ui.buttons.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{Tooltip as n,IconButton as r,Button as i}from"@mui/material";import e from"@mui/icons-material/ViewList";import o from"@mui/icons-material/AddCircleOutline";import"react";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{Tooltip as n,IconButton as r,Button as i}from"@mui/material";import e from"@mui/icons-material/ViewList";import o from"@mui/icons-material/AddCircleOutline";import"react";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{mapGlobalModalContext as l}from"../api-context/global-modal.js";var a=function(r){return l((function(e){return t(n,{title:"Create new",children:t(i,{size:"small",onClick:function(){return e.show({renderContent:function(){return r.children}})},startIcon:t(o,{fontSize:"small"}),sx:{fontWeight:600},variant:"contained",children:"Create"})})}))},c=function(i){return l((function(o){return t(n,{title:"Detail",children:t(r,{onClick:function(t){var n;null===(n=i.onOpenModal)||void 0===n||n.call(i,t),o.show({backdropActivated:!0,renderContent:function(){return i.formDetail},onClose:i.onCloseModal})},children:t(e,{})})})}))},m=function(i){return t(n,{title:"Detail",children:t(r,{onClick:i.onClick,children:t(e,{})})})};export{m as BtnDetail,a as BtnFormCreate,c as BtnFormDetail};
|
|
2
2
|
//# sourceMappingURL=ui.buttons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.buttons.js","sources":["../../src/table/ui.buttons.tsx"],"sourcesContent":["import React, { FC } from 'react'\r\nimport { Button, IconButton, IconButtonProps, Tooltip } from '@mui/material'\r\nimport ViewListIcon from '@mui/icons-material/ViewList'\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'\r\nimport {
|
|
1
|
+
{"version":3,"file":"ui.buttons.js","sources":["../../src/table/ui.buttons.tsx"],"sourcesContent":["import React, { FC } from 'react'\r\nimport { Button, IconButton, IconButtonProps, Tooltip } from '@mui/material'\r\nimport ViewListIcon from '@mui/icons-material/ViewList'\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'\r\nimport { mapGlobalModalContext, TModalReason } from '../api-context'\r\n\r\nexport const BtnFormCreate: FC<{ children: React.ReactNode }> = (props) => {\r\n return mapGlobalModalContext((context) => (\r\n <Tooltip title='Create new'>\r\n <Button\r\n size='small'\r\n onClick={() => context.show({ renderContent: () => props.children })}\r\n startIcon={<AddCircleOutlineIcon fontSize='small' />}\r\n sx={{ fontWeight: 600 }}\r\n variant='contained'\r\n >\r\n Create\r\n </Button>\r\n </Tooltip>\r\n ))\r\n}\r\n\r\nexport interface IBtnFormDetailProps {\r\n formDetail: React.ReactNode\r\n onOpenModal?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void\r\n onCloseModal?: (reason?: TModalReason) => void\r\n}\r\n\r\nexport const BtnFormDetail: FC<IBtnFormDetailProps> = (props) => {\r\n return mapGlobalModalContext((context) => (\r\n <Tooltip title='Detail'>\r\n <IconButton\r\n onClick={(e) => {\r\n props.onOpenModal?.(e)\r\n context.show({ backdropActivated: true, renderContent: () => props.formDetail, onClose: props.onCloseModal })\r\n }}\r\n >\r\n <ViewListIcon />\r\n </IconButton>\r\n </Tooltip>\r\n ))\r\n}\r\n\r\nexport interface IBtnDetailProps {\r\n onClick?: IconButtonProps['onClick']\r\n}\r\n\r\nexport const BtnDetail: FC<IBtnDetailProps> = (props) => (\r\n <Tooltip title='Detail'>\r\n <IconButton onClick={props.onClick}>\r\n <ViewListIcon />\r\n </IconButton>\r\n </Tooltip>\r\n)\r\n"],"names":["BtnFormCreate","props","mapGlobalModalContext","context","_jsx","Tooltip","title","children","Button","size","onClick","show","renderContent","startIcon","AddCircleOutlineIcon","fontSize","sx","fontWeight","variant","BtnFormDetail","IconButton","e","_props$onOpenModal","onOpenModal","call","backdropActivated","formDetail","onClose","onCloseModal","ViewListIcon","BtnDetail"],"mappings":"oXAMaA,EAAmD,SAACC,GAC/D,OAAOC,GAAsB,SAACC,GAAO,OACnCC,EAACC,EAAO,CAACC,MAAM,aACbC,SAAAH,EAACI,EAAM,CACLC,KAAK,QACLC,QAAS,WAAF,OAAQP,EAAQQ,KAAK,CAAEC,cAAe,WAAF,OAAQX,EAAMM,QAAQ,GAAG,EACpEM,UAAWT,EAACU,EAAqB,CAAAC,SAAS,UAC1CC,GAAI,CAAEC,WAAY,KAClBC,QAAQ,YAAWX,SAAA,YAIb,GAEd,EAQaY,EAAyC,SAAClB,GACrD,OAAOC,GAAsB,SAACC,GAAO,OACnCC,EAACC,EAAO,CAACC,MAAM,SACbC,SAAAH,EAACgB,EAAU,CACTV,QAAS,SAACW,GAAK,IAAAC,EACIA,QAAjBA,EAAArB,EAAMsB,mBAAND,IAAiBA,GAAjBA,EAAAE,KAAAvB,EAAoBoB,GACpBlB,EAAQQ,KAAK,CAAEc,mBAAmB,EAAMb,cAAe,WAAF,OAAQX,EAAMyB,UAAU,EAAEC,QAAS1B,EAAM2B,cAC/F,EAAArB,SAEDH,EAACyB,EAAY,CAAA,MAEP,GAEd,EAMaC,EAAiC,SAAC7B,GAAK,OAClDG,EAACC,EAAO,CAACC,MAAM,SACbC,SAAAH,EAACgB,EAAU,CAACV,QAAST,EAAMS,QACzBH,SAAAH,EAACyB,EAAY,CAAA,MAEP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{inherits as r,createClass as e,classCallCheck as i,callSuper as o,defineProperty as t,objectSpread2 as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,Fragment as a,jsxs as s}from"react/jsx-runtime";import{Component as p}from"react";import{styled as c,Box as m,colors as d,IconButton as u,List as f,ListItem as h,ListItemButton as v,ListItemIcon as b,ListItemText as g}from"@mui/material";import C from"@mui/icons-material/Edit";import x from"@mui/icons-material/MoreVert";import k from"@mui/icons-material/DeleteOutline";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{
|
|
1
|
+
import{inherits as r,createClass as e,classCallCheck as i,callSuper as o,defineProperty as t,objectSpread2 as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,Fragment as a,jsxs as s}from"react/jsx-runtime";import{Component as p}from"react";import{styled as c,Box as m,colors as d,IconButton as u,List as f,ListItem as h,ListItemButton as v,ListItemIcon as b,ListItemText as g}from"@mui/material";import C from"@mui/icons-material/Edit";import x from"@mui/icons-material/MoreVert";import k from"@mui/icons-material/DeleteOutline";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{mapGlobalModalContext as y}from"../api-context/global-modal.js";import A from"../api-context/popover-global.js";var E={Edit:l(C,{fontSize:"small",color:"primary"}),Delete:l(k,{fontSize:"small",color:"error"})};function j(){var c=function(){function c(){var r;i(this,c);for(var e=arguments.length,p=new Array(e),m=0;m<e;m++)p[m]=arguments[m];return r=o(this,c,[].concat(p)),t(r,"isVisible",(function(){return!!r.props.formEdit||!!r.props.formDelete})),t(r,"renderItems",(function(e){return e?(Array.isArray(e)?e:[e]).map((function(e,i){var o=e.name+i,t=e.override;return t?l(t,{onClose:A.Api.close},o):l(h,n(n({disablePadding:!0,sx:{minWidth:"170px"},onClick:function(i){!1!==e.closableOnClick&&A.Api.close(),e.onClick&&e.onClick(i,r.props.value)}},e.listItemProps),{},{children:s(v,{children:[l(b,{children:e.icon}),l(g,{primary:e.name})]})}),o)})):l(a,{})})),t(r,"renderItemWithForm",(function(e,i,o){return i?y((function(t){return l(h,{disablePadding:!0,sx:{minWidth:"170px"},onClick:function(){A.Api.close(),t.show(n({renderContent:function(){return i(r.props.value)}},o))},children:s(v,{children:[l(b,{children:E[e]}),l(g,{primary:e})]})})})):l(a,{})})),r}return r(c,p),e(c,[{key:"render",value:function(){var r=this;return this.isVisible()?l(I,{children:l(u,{size:"small",onClick:function(e){var i,o,t;A.Api.open({anchorEl:e.currentTarget,popoverProps:{anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}},content:s(f,{children:[r.renderItems(null===(i=r.props.menuList)||void 0===i?void 0:i.before),r.renderItemWithForm("Edit",r.props.formEdit,r.props.buttonEditConfig),r.renderItemWithForm("Delete",r.props.formDelete,null!==(o=r.props.buttonEditConfig)&&void 0!==o?o:{backdropActivated:!0}),r.renderItems(null===(t=r.props.menuList)||void 0===t?void 0:t.after)]})})},children:l(x,{fontSize:"small"})})}):l(a,{})}}])}();return c}var I=c(m)({background:d.common.white,borderRadius:"6px","& > .MuiButtonBase-root":{borderRadius:"6px"}});export{j as CreateTableGridItemActions};
|
|
2
2
|
//# sourceMappingURL=item-actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-actions.js","sources":["../../src/table-grid/item-actions.tsx"],"sourcesContent":["import React, { Component, ComponentType, ReactNode } from 'react'\r\nimport { Box, colors, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemProps, ListItemText, styled } from '@mui/material'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport MoreVertIcon from '@mui/icons-material/MoreVert'\r\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'\r\nimport { ClosePopover, GlobalModalState,
|
|
1
|
+
{"version":3,"file":"item-actions.js","sources":["../../src/table-grid/item-actions.tsx"],"sourcesContent":["import React, { Component, ComponentType, ReactNode } from 'react'\r\nimport { Box, colors, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemProps, ListItemText, styled } from '@mui/material'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport MoreVertIcon from '@mui/icons-material/MoreVert'\r\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'\r\nimport { ClosePopover, GlobalModalState, mapGlobalModalContext, PopoverGlobal } from '../api-context'\r\n\r\nexport type TableGridItemActionType = 'Edit' | 'Delete'\r\n\r\nconst mapIcons: { [key in TableGridItemActionType]: ReactNode } = {\r\n Edit: <EditIcon fontSize='small' color='primary' />,\r\n Delete: <DeleteOutlineIcon fontSize='small' color='error' />\r\n}\r\n\r\nexport interface TableGridItemActionsProps<T> {\r\n value: T\r\n}\r\n\r\ntype FormRenderFunc<T> = (value: T) => React.ReactNode\r\n\r\ninterface ListItemDef<T> {\r\n name: string\r\n icon?: ReactNode\r\n /** Whether this item should trigger a close action when clicked. @default true */\r\n closableOnClick?: boolean\r\n /** Handler called when item is clicked */\r\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>, value: T) => void\r\n listItemProps?: ListItemProps\r\n /**\r\n * Optional custom ReactNode to override the entire ListItem UI.\r\n * If provided, this will be rendered instead of the default ListItem structure\r\n * (icon + text + click behavior).\r\n */\r\n override?: ComponentType<{ onClose?: ClosePopover }>\r\n}\r\n\r\nexport interface TableGridItemActionsConfig<T> {\r\n formEdit?: FormRenderFunc<T>\r\n formDelete?: FormRenderFunc<T>\r\n buttonEditConfig?: GlobalModalState\r\n buttonDeleteConfig?: GlobalModalState\r\n menuList?: {\r\n before?: SingleOrArray<ListItemDef<T>>\r\n after?: ListItemDef<T>\r\n }\r\n}\r\n\r\ninterface IProps<T> extends TableGridItemActionsProps<T>, TableGridItemActionsConfig<T> {}\r\n\r\nexport function CreateTableGridItemActions<T>() {\r\n class TableGridItemActions extends Component<IProps<T>> {\r\n render() {\r\n if (!this.isVisible()) return <></>\r\n return (\r\n <Wrap>\r\n <IconButton\r\n size='small'\r\n onClick={(e) => {\r\n PopoverGlobal.Api.open({\r\n anchorEl: e.currentTarget,\r\n popoverProps: { anchorOrigin: { vertical: 'top', horizontal: 'right' }, transformOrigin: { vertical: 'top', horizontal: 'right' } },\r\n content: (\r\n <List>\r\n {this.renderItems(this.props.menuList?.before)}\r\n {this.renderItemWithForm('Edit', this.props.formEdit, this.props.buttonEditConfig)}\r\n {this.renderItemWithForm('Delete', this.props.formDelete, this.props.buttonEditConfig ?? { backdropActivated: true })}\r\n {this.renderItems(this.props.menuList?.after)}\r\n </List>\r\n )\r\n })\r\n }}\r\n >\r\n <MoreVertIcon fontSize='small' />\r\n </IconButton>\r\n </Wrap>\r\n )\r\n }\r\n\r\n isVisible = () => {\r\n return !!this.props.formEdit || !!this.props.formDelete\r\n }\r\n\r\n renderItems = (value?: SingleOrArray<ListItemDef<T>>) => {\r\n if (!value) return <></>\r\n const list = Array.isArray(value) ? value : [value]\r\n return list.map((item, index) => {\r\n const key = item.name + index\r\n const { override: Override } = item\r\n if (Override) return <Override key={key} onClose={PopoverGlobal.Api.close} />\r\n return (\r\n <ListItem\r\n key={key}\r\n disablePadding\r\n sx={{ minWidth: '170px' }}\r\n onClick={(e) => {\r\n if (item.closableOnClick !== false) PopoverGlobal.Api.close()\r\n item.onClick && item.onClick(e, this.props.value)\r\n }}\r\n {...item.listItemProps}\r\n >\r\n <ListItemButton>\r\n <ListItemIcon>{item.icon}</ListItemIcon>\r\n <ListItemText primary={item.name} />\r\n </ListItemButton>\r\n </ListItem>\r\n )\r\n })\r\n }\r\n\r\n renderItemWithForm = (name: TableGridItemActionType, form?: FormRenderFunc<T>, globalState?: GlobalModalState) => {\r\n if (!form) return <></>\r\n return mapGlobalModalContext((context) => (\r\n <ListItem\r\n disablePadding\r\n sx={{ minWidth: '170px' }}\r\n onClick={() => {\r\n PopoverGlobal.Api.close()\r\n context.show({ renderContent: () => form(this.props.value), ...globalState })\r\n }}\r\n >\r\n <ListItemButton>\r\n <ListItemIcon>{mapIcons[name]}</ListItemIcon>\r\n <ListItemText primary={name} />\r\n </ListItemButton>\r\n </ListItem>\r\n ))\r\n }\r\n }\r\n return TableGridItemActions\r\n}\r\n\r\nconst Wrap = styled(Box)({\r\n background: colors.common.white,\r\n borderRadius: '6px',\r\n '& > .MuiButtonBase-root': {\r\n borderRadius: '6px'\r\n }\r\n})\r\n"],"names":["mapIcons","Edit","_jsx","EditIcon","fontSize","color","Delete","DeleteOutlineIcon","CreateTableGridItemActions","TableGridItemActions","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","formEdit","formDelete","value","isArray","map","item","index","key","name","Override","override","onClose","PopoverGlobal","Api","close","ListItem","_objectSpread","disablePadding","sx","minWidth","onClick","e","closableOnClick","listItemProps","children","_jsxs","ListItemButton","ListItemIcon","icon","ListItemText","primary","form","globalState","mapGlobalModalContext","context","show","renderContent","_inherits","Component","_createClass","_this2","isVisible","Wrap","IconButton","size","_this2$props$menuList","_this2$props$buttonEd","_this2$props$menuList2","open","anchorEl","currentTarget","popoverProps","anchorOrigin","vertical","horizontal","transformOrigin","content","List","renderItems","menuList","before","renderItemWithForm","buttonEditConfig","backdropActivated","after","MoreVertIcon","styled","Box","background","colors","common","white","borderRadius"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{objectSpread2 as t,inherits as r,createClass as o,classCallCheck as e,callSuper as i,defineProperty as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as a,Fragment as s}from"react/jsx-runtime";import{Component as p}from"react";import{styled as c,Typography as u,Box as m,Tooltip as d,Button as f}from"@mui/material";import v from"@mui/icons-material/AddCircleOutline";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{
|
|
1
|
+
import{objectSpread2 as t,inherits as r,createClass as o,classCallCheck as e,callSuper as i,defineProperty as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as a,Fragment as s}from"react/jsx-runtime";import{Component as p}from"react";import{styled as c,Typography as u,Box as m,Tooltip as d,Button as f}from"@mui/material";import v from"@mui/icons-material/AddCircleOutline";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{mapGlobalModalContext as h}from"../api-context/global-modal.js";import b from"../components/breadcrumbs.js";import"clipboard-copy";import"@mui/icons-material/Done";import"@mui/icons-material/ContentCopy";import"../components/create.multi-select-dropdown.js";import"../components/help-tooltip.js";import"../components/text-editor.js";var C=function(){function c(){var r;e(this,c);for(var o=arguments.length,a=new Array(o),p=0;p<o;p++)a[p]=arguments[p];return r=i(this,c,[].concat(a)),n(r,"renderButtonCreate",(function(){return r.props.formCreate?h((function(o){var e;return l(d,{title:"Create new",children:l(f,t(t({size:"small",onClick:function(){return o.show({renderContent:function(){return r.props.formCreate}})},startIcon:l(v,{fontSize:"small"}),sx:{fontWeight:600},variant:"contained"},null===(e=r.props.slots)||void 0===e?void 0:e.buttonCreateProps),{},{children:"Create"}))})})):l(s,{})})),n(r,"renderTitle",(function(){var t,o=null!==(t=r.props)&&void 0!==t?t:{},e=o.title,i=o.breadcrumbs;return i?l(b,{value:i}):l("string"==typeof e?x:s,{children:e})})),r}return r(c,p),o(c,[{key:"render",value:function(){var r,o,e,i,n;if(!1!==this.props.visible)return a(g,t(t({},null===(r=this.props.slots)||void 0===r?void 0:r.rootProps),{},{children:[null===(o=this.props.titleSlots)||void 0===o?void 0:o.before,this.renderTitle(),null===(e=this.props.titleSlots)||void 0===e?void 0:e.after,l(m,{sx:{flex:1}}),null===(i=this.props.actionSlots)||void 0===i?void 0:i.before,this.renderButtonCreate(),null===(n=this.props.actionSlots)||void 0===n?void 0:n.after]}))}}])}(),x=c((function(r){return l(u,t({noWrap:!0,variant:"subtitle1"},r))}))({fontWeight:700,flex:1}),g=c(m)({height:"var(--height-toolbar, 56px)",display:"flex",alignItems:"center",gap:"8px",padding:"0 6px"});export{C as default};
|
|
2
2
|
//# sourceMappingURL=toolbar-pannel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar-pannel.js","sources":["../../src/table-grid/toolbar-pannel.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Box, BoxProps, Button, ButtonProps, styled, Tooltip, Typography, TypographyProps } from '@mui/material'\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'\r\nimport {
|
|
1
|
+
{"version":3,"file":"toolbar-pannel.js","sources":["../../src/table-grid/toolbar-pannel.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Box, BoxProps, Button, ButtonProps, styled, Tooltip, Typography, TypographyProps } from '@mui/material'\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'\r\nimport { mapGlobalModalContext } from '../api-context'\r\nimport { Breadcrumbs, IBreadcrumbConfig } from '../components'\r\n\r\ninterface SectionSlots {\r\n before?: React.ReactNode\r\n after?: React.ReactNode\r\n}\r\n\r\nexport interface ToolbarPannelProps {\r\n /** @default true */\r\n visible?: boolean\r\n searchInclude?: string[]\r\n breadcrumbs?: IBreadcrumbConfig[]\r\n title?: React.ReactNode\r\n titleSlots?: SectionSlots\r\n formCreate?: React.ReactNode\r\n actionSlots?: SectionSlots\r\n slots?: {\r\n rootProps?: BoxProps\r\n buttonCreateProps?: ButtonProps\r\n }\r\n}\r\n\r\nclass ToolbarPannel extends Component<ToolbarPannelProps> {\r\n render() {\r\n if (this.props.visible === false) return\r\n return (\r\n <Wrap {...this.props.slots?.rootProps}>\r\n {this.props.titleSlots?.before}\r\n {this.renderTitle()}\r\n {this.props.titleSlots?.after}\r\n <Box sx={{ flex: 1 }} />\r\n {this.props.actionSlots?.before}\r\n {this.renderButtonCreate()}\r\n {this.props.actionSlots?.after}\r\n </Wrap>\r\n )\r\n }\r\n\r\n renderButtonCreate = () => {\r\n if (!this.props.formCreate) return <></>\r\n return mapGlobalModalContext((context) => (\r\n <Tooltip title='Create new'>\r\n <Button\r\n size='small'\r\n onClick={() => context.show({ renderContent: () => this.props.formCreate })}\r\n startIcon={<AddCircleOutlineIcon fontSize='small' />}\r\n sx={{ fontWeight: 600 }}\r\n variant='contained'\r\n {...this.props.slots?.buttonCreateProps}\r\n >\r\n Create\r\n </Button>\r\n </Tooltip>\r\n ))\r\n }\r\n\r\n renderTitle = () => {\r\n const { title, breadcrumbs } = this.props ?? {}\r\n if (breadcrumbs) return <Breadcrumbs value={breadcrumbs} />\r\n if (typeof title === 'string') return <Title>{title}</Title>\r\n return <>{title}</>\r\n }\r\n}\r\n\r\nexport default ToolbarPannel\r\n\r\n// const SeachHelp = styled('ul')({\r\n// margin: '0 0 0 18px',\r\n// padding: 0,\r\n// li: {\r\n// position: 'relative'\r\n// },\r\n// 'li::after': {\r\n// content: '\"►\"',\r\n// display: 'inline-block',\r\n// top: '50%',\r\n// transform: 'translateY(-50%)',\r\n// position: 'absolute',\r\n// left: '-18px'\r\n// }\r\n// })\r\n\r\nconst Title = styled((props: TypographyProps) => <Typography noWrap variant='subtitle1' {...props} />)({\r\n fontWeight: 700,\r\n flex: 1\r\n})\r\n\r\nconst Wrap = styled(Box)({\r\n height: 'var(--height-toolbar, 56px)',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n padding: '0 6px'\r\n})\r\n"],"names":["ToolbarPannel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","formCreate","mapGlobalModalContext","context","_this$props$slots","_jsx","Tooltip","title","children","Button","_objectSpread","size","onClick","show","renderContent","startIcon","AddCircleOutlineIcon","fontSize","sx","fontWeight","variant","slots","buttonCreateProps","_this$props","_ref","breadcrumbs","Breadcrumbs","value","Title","_Fragment","_inherits","Component","_createClass","key","_this$props$slots2","_this$props$titleSlot","_this$props$titleSlot2","_this$props$actionSlo","_this$props$actionSlo2","visible","_jsxs","Wrap","rootProps","titleSlots","before","renderTitle","after","Box","flex","actionSlots","renderButtonCreate","styled","Typography","noWrap","height","display","alignItems","gap","padding"],"mappings":"izBA0BMA,IAAAA,aAAc,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAuCjB,OAvCiBP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,sBAgBG,WACnB,OAAKA,EAAKY,MAAMC,WACTC,GAAsB,SAACC,GAAO,IAAAC,EAAA,OACnCC,EAACC,GAAQC,MAAM,aAAYC,SACzBH,EAACI,EAAMC,EAAAA,EAAA,CACLC,KAAK,QACLC,QAAS,WAAF,OAAQT,EAAQU,KAAK,CAAEC,cAAe,WAAF,OAAQ1B,EAAKY,MAAMC,UAAU,GAAG,EAC3Ec,UAAWV,EAACW,EAAqB,CAAAC,SAAS,UAC1CC,GAAI,CAAEC,WAAY,KAClBC,QAAQ,aACY,QADDhB,EACfhB,EAAKY,MAAMqB,aAAK,IAAAjB,OAAA,EAAhBA,EAAkBkB,mBAAiB,CAAA,EAAA,uBAIjC,IAbuBjB,WAepCN,EAAAX,EAAA,eAEa,WAAK,IAAAmC,EACjBC,EAAyC,QAAzCD,EAA+BnC,EAAKY,aAAK,IAAAuB,EAAAA,EAAI,CAAE,EAAvChB,EAAKiB,EAALjB,MAAOkB,EAAWD,EAAXC,YACf,OAAIA,EAAoBpB,EAACqB,EAAW,CAACC,MAAOF,IACNpB,EAAjB,iBAAVE,EAA4BqB,EAChCC,EADuC,CAAArB,SAAAD,OAE/CnB,CAAA,CAAA,OAAA0C,EAAA3C,EAvCyB4C,GAuCzBC,EAAA7C,EAAA,CAAA,CAAA8C,IAAA,SAAAN,MAtCD,WAAM,IAAAO,EAAAC,EAAAC,EAAAC,EAAAC,EACJ,IAA2B,IAAvBzC,KAAKG,MAAMuC,QACf,OACEC,EAACC,EAAI/B,EAAAA,KAAqB,QAArBwB,EAAKrC,KAAKG,MAAMqB,aAAXa,IAAgBA,OAAhBA,EAAAA,EAAkBQ,WAAS,GAAA,CAAAlC,SAAA,CACb,QADa2B,EAClCtC,KAAKG,MAAM2C,kBAAXR,IAAqBA,OAArBA,EAAAA,EAAuBS,OACvB/C,KAAKgD,cACgB,QADHT,EAClBvC,KAAKG,MAAM2C,kBAAU,IAAAP,OAAA,EAArBA,EAAuBU,MACxBzC,EAAC0C,EAAI,CAAA7B,GAAI,CAAE8B,KAAM,aAAOX,EACvBxC,KAAKG,MAAMiD,mBAAW,IAAAZ,OAAA,EAAtBA,EAAwBO,OACxB/C,KAAKqD,qBACiBZ,QADGA,EACzBzC,KAAKG,MAAMiD,mBAAXX,IAAsBA,OAAtBA,EAAAA,EAAwBQ,SAG/B,IAAC,IA8CGlB,EAAQuB,GAAO,SAACnD,GAAsB,OAAKK,EAAC+C,EAAU1C,EAAA,CAAC2C,UAAOjC,QAAQ,aAAgBpB,GAAS,GAAvFmD,CAAyF,CACrGhC,WAAY,IACZ6B,KAAM,IAGFP,EAAOU,EAAOJ,EAAPI,CAAY,CACvBG,OAAQ,8BACRC,QAAS,OACTC,WAAY,SACZC,IAAK,MACLC,QAAS"}
|
|
@@ -21,7 +21,7 @@ export declare const GlobalModalContext: React.Context<IGlobalModalContext>;
|
|
|
21
21
|
export interface IMapGlobalModal {
|
|
22
22
|
context: IGlobalModalContext;
|
|
23
23
|
}
|
|
24
|
-
export declare const
|
|
24
|
+
export declare const mapGlobalModalContext: (context: (state: IGlobalModalContext) => React.ReactNode) => import("react/jsx-runtime").JSX.Element;
|
|
25
25
|
declare class GlobalModal extends Component<React.PropsWithChildren<GlobalModalProps>, GlobalModalState> implements IGlobalModalContext {
|
|
26
26
|
constructor(props: any);
|
|
27
27
|
show: TShowModal;
|
|
@@ -13,7 +13,7 @@ export interface PopoverGlobalContext {
|
|
|
13
13
|
}
|
|
14
14
|
export declare const PopoverGlobalApi: PopoverGlobalContext;
|
|
15
15
|
export declare const PopoverGlobalContext: React.Context<PopoverGlobalContext>;
|
|
16
|
-
export declare const
|
|
16
|
+
export declare const mapPopoverGlobalContext: (context: (state: PopoverGlobalContext) => React.ReactNode) => import("react/jsx-runtime").JSX.Element;
|
|
17
17
|
interface IProps extends PropsWithChildren {
|
|
18
18
|
}
|
|
19
19
|
export declare class PopoverGlobalProvider extends Component<IProps, PopoverGlobalState> {
|
|
@@ -12,7 +12,7 @@ export interface IApiPopoverContext {
|
|
|
12
12
|
closePopover: TClosePopover;
|
|
13
13
|
}
|
|
14
14
|
export declare const ApiPopoverContext: React.Context<IApiPopoverContext>;
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const mapApiPopoverContext: (context: (state: IApiPopoverContext) => React.ReactNode) => import("react/jsx-runtime").JSX.Element;
|
|
16
16
|
interface IProps {
|
|
17
17
|
}
|
|
18
18
|
interface IState extends IPopoverOptions {
|
|
@@ -8,19 +8,19 @@ export interface FilterBarParams<T> {
|
|
|
8
8
|
placeholder?: string;
|
|
9
9
|
helpNotes?: FilterHelpNotesProps;
|
|
10
10
|
}
|
|
11
|
-
interface
|
|
11
|
+
export interface IFilterBarProps<T> {
|
|
12
12
|
id?: string;
|
|
13
13
|
placeholder?: string;
|
|
14
14
|
value?: IFilterState<T>;
|
|
15
15
|
onChange?: (value: IFilterState<T>) => void;
|
|
16
16
|
}
|
|
17
|
-
interface
|
|
17
|
+
export interface IFilterBarState {
|
|
18
18
|
panelState: FilterPanelState;
|
|
19
19
|
keyword: string;
|
|
20
20
|
}
|
|
21
21
|
declare function CreateFilterBar<T>(params: FilterBarParams<T>): {
|
|
22
|
-
new (props:
|
|
23
|
-
defaultState:
|
|
22
|
+
new (props: IFilterBarProps<T>): {
|
|
23
|
+
defaultState: IFilterBarState;
|
|
24
24
|
filterStateStore: IFilterState<T>;
|
|
25
25
|
readonly filterState: IFilterState<T>;
|
|
26
26
|
setFilterState: (filterState: IFilterState<T>) => void;
|
|
@@ -67,25 +67,25 @@ declare function CreateFilterBar<T>(params: FilterBarParams<T>): {
|
|
|
67
67
|
};
|
|
68
68
|
getSortFields: (fields: IFilterFields<T>) => IFilterFields<T>;
|
|
69
69
|
context: unknown;
|
|
70
|
-
setState<K extends keyof
|
|
70
|
+
setState<K extends keyof IFilterBarState>(state: IFilterBarState | ((prevState: Readonly<IFilterBarState>, props: Readonly<IFilterBarProps<T>>) => IFilterBarState | Pick<IFilterBarState, K> | null) | Pick<IFilterBarState, K> | null, callback?: (() => void) | undefined): void;
|
|
71
71
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
72
|
-
readonly props: Readonly<
|
|
73
|
-
state: Readonly<
|
|
72
|
+
readonly props: Readonly<IFilterBarProps<T>>;
|
|
73
|
+
state: Readonly<IFilterBarState>;
|
|
74
74
|
refs: {
|
|
75
75
|
[key: string]: React.ReactInstance;
|
|
76
76
|
};
|
|
77
77
|
componentDidMount?(): void;
|
|
78
|
-
shouldComponentUpdate?(nextProps: Readonly<
|
|
78
|
+
shouldComponentUpdate?(nextProps: Readonly<IFilterBarProps<T>>, nextState: Readonly<IFilterBarState>, nextContext: any): boolean;
|
|
79
79
|
componentWillUnmount?(): void;
|
|
80
80
|
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
|
81
|
-
getSnapshotBeforeUpdate?(prevProps: Readonly<
|
|
82
|
-
componentDidUpdate?(prevProps: Readonly<
|
|
81
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<IFilterBarProps<T>>, prevState: Readonly<IFilterBarState>): any;
|
|
82
|
+
componentDidUpdate?(prevProps: Readonly<IFilterBarProps<T>>, prevState: Readonly<IFilterBarState>, snapshot?: any): void;
|
|
83
83
|
componentWillMount?(): void;
|
|
84
84
|
UNSAFE_componentWillMount?(): void;
|
|
85
|
-
componentWillReceiveProps?(nextProps: Readonly<
|
|
86
|
-
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<
|
|
87
|
-
componentWillUpdate?(nextProps: Readonly<
|
|
88
|
-
UNSAFE_componentWillUpdate?(nextProps: Readonly<
|
|
85
|
+
componentWillReceiveProps?(nextProps: Readonly<IFilterBarProps<T>>, nextContext: any): void;
|
|
86
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<IFilterBarProps<T>>, nextContext: any): void;
|
|
87
|
+
componentWillUpdate?(nextProps: Readonly<IFilterBarProps<T>>, nextState: Readonly<IFilterBarState>, nextContext: any): void;
|
|
88
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<IFilterBarProps<T>>, nextState: Readonly<IFilterBarState>, nextContext: any): void;
|
|
89
89
|
};
|
|
90
90
|
contextType?: React.Context<any> | undefined;
|
|
91
91
|
};
|
package/dist/types/index.d.ts
CHANGED