dinocollab-core 2.1.7 → 2.1.9

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.
@@ -0,0 +1,2 @@
1
+ import{defineProperty as t,inherits as e,createClass as a,classCallCheck as n,callSuper as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o}from"react/jsx-runtime";import{Component as l}from"react";import{styled as i,TextField as u,InputAdornment as s}from"@mui/material";function c(){return function(){function i(e){var a;return n(this,i),a=r(this,i,[e]),t(a,"handleColorChange",(function(t){var e=t.target.value;a.setState({value:e})})),t(a,"handleInputChange",(function(t){var e=t.target.value;e.startsWith("#")||(e="#"+e.replace(/[^a-fA-F0-9]/g,"")),a.setState({value:e})})),t(a,"handleBlur",(function(){var t=a.state.value.trim();/^#[0-9A-Fa-f]{6}$/.test(t)||a.setState({value:a.getDefaultValue(a.props)})})),a.state={value:a.getDefaultValue(e)},a}return e(i,l),a(i,[{key:"shouldComponentUpdate",value:function(t){var e=this.getDefaultValue(this.props),a=this.getDefaultValue(t);return e===a||(this.setState({value:a}),!1)}},{key:"render",value:function(){var t,e=null===(t=this.props.name)||void 0===t?void 0:t.toString();return o(p,{name:e,label:this.props.label,value:this.state.value,onChange:this.handleInputChange,onBlur:this.handleBlur,variant:"outlined",fullWidth:!0,className:h.root,inputProps:{maxLength:7,style:{paddingLeft:0}},InputProps:{startAdornment:o(s,{position:"start",children:o("div",{className:h.icon,children:o("input",{type:"color",value:this.state.value,onChange:this.handleColorChange,style:{}})})})}})}},{key:"getDefaultValue",value:function(t){var e,a=t.name,n=t.data;return a&&(null==n||null===(e=n[a])||void 0===e?void 0:e.toString())||"#000000"}}])}()}var h={root:"DinoColorPicker-root",icon:"DinoColorPicker-icon"},p=i(u)((function(e){var a,n=e.theme,r=e.value,o="var(--color-picker-icon-size, ".concat(n.spacing(3.5),")"),l=r||"#000000";return t({},(a="icon","".concat("",".").concat(h[a]).concat("")),{width:o,height:o,backgroundColor:l,borderRadius:"50%",boxShadow:"rgba(99, 99, 99, 0.2) 0px 2px 8px 0px",'input[type="color"]':{width:"100%",height:"100%",border:"none",outline:"none",padding:0,background:"none",opacity:0,cursor:"pointer"}})}));export{c as createColorPicker,c as default};
2
+ //# sourceMappingURL=create.color-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.color-picker.js","sources":["../../src/form/create.color-picker.tsx"],"sourcesContent":["import { ChangeEventHandler, Component } from 'react'\r\nimport { TextField, InputAdornment, styled } from '@mui/material'\r\nimport { IFormInputBase } from './types'\r\n\r\nexport interface IColorPickerProps<T> extends IFormInputBase<T> {}\r\n\r\nexport interface IColorPickerState {\r\n value: string\r\n}\r\n\r\nexport function createColorPicker<T>() {\r\n class ColorPicker extends Component<IColorPickerProps<T>, IColorPickerState> {\r\n constructor(props: IColorPickerProps<T>) {\r\n super(props)\r\n this.state = { value: this.getDefaultValue(props) }\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<IColorPickerProps<T>>): boolean {\r\n const value = this.getDefaultValue(this.props)\r\n const nextValue = this.getDefaultValue(nextProps)\r\n if (value !== nextValue) {\r\n this.setState({ value: nextValue })\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n render() {\r\n const name = this.props.name?.toString()\r\n return (\r\n <TextFieldStyled\r\n name={name}\r\n label={this.props.label}\r\n value={this.state.value}\r\n onChange={this.handleInputChange}\r\n onBlur={this.handleBlur}\r\n variant='outlined'\r\n fullWidth\r\n className={colorPickerClasses.root}\r\n inputProps={{ maxLength: 7, style: { paddingLeft: 0 } }}\r\n InputProps={{\r\n startAdornment: (\r\n <InputAdornment position='start'>\r\n <div className={colorPickerClasses.icon}>\r\n <input type='color' value={this.state.value} onChange={this.handleColorChange} style={{}} />\r\n </div>\r\n </InputAdornment>\r\n )\r\n }}\r\n />\r\n )\r\n }\r\n\r\n getDefaultValue(currentProps: IColorPickerProps<T>) {\r\n const { name, data } = currentProps\r\n return name ? data?.[name]?.toString() || '#000000' : '#000000'\r\n }\r\n\r\n handleColorChange: ChangeEventHandler<HTMLInputElement> = (event) => {\r\n const { value } = event.target\r\n this.setState({ value })\r\n }\r\n\r\n handleInputChange: ChangeEventHandler<HTMLInputElement> = (event) => {\r\n let value = event.target.value\r\n if (!value.startsWith('#')) value = '#' + value.replace(/[^a-fA-F0-9]/g, '')\r\n this.setState({ value })\r\n }\r\n\r\n handleBlur = () => {\r\n const v = this.state.value.trim()\r\n if (!/^#[0-9A-Fa-f]{6}$/.test(v)) {\r\n this.setState({ value: this.getDefaultValue(this.props) })\r\n }\r\n }\r\n }\r\n return ColorPicker\r\n}\r\nexport default createColorPicker\r\n\r\nconst colorPickerClasses = {\r\n root: 'DinoColorPicker-root',\r\n icon: 'DinoColorPicker-icon'\r\n}\r\n\r\nconst getColorPickerClasses = (key: keyof typeof colorPickerClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${colorPickerClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nconst TextFieldStyled = styled(TextField)(({ theme, value }) => {\r\n const size = `var(--color-picker-icon-size, ${theme.spacing(3.5)})`\r\n const color = value || '#000000'\r\n return {\r\n [getColorPickerClasses('icon')]: {\r\n width: size,\r\n height: size,\r\n backgroundColor: color,\r\n borderRadius: '50%',\r\n boxShadow: 'rgba(99, 99, 99, 0.2) 0px 2px 8px 0px',\r\n 'input[type=\"color\"]': {\r\n width: '100%',\r\n height: '100%',\r\n border: 'none',\r\n outline: 'none',\r\n padding: 0,\r\n background: 'none',\r\n opacity: 0,\r\n cursor: 'pointer'\r\n }\r\n }\r\n }\r\n})\r\n"],"names":["createColorPicker","ColorPicker","props","_this","_classCallCheck","_callSuper","_defineProperty","event","value","target","setState","startsWith","replace","v","state","trim","test","getDefaultValue","_inherits","Component","_createClass","key","nextProps","this","nextValue","_this$props$name","name","toString","_jsx","TextFieldStyled","label","onChange","handleInputChange","onBlur","handleBlur","variant","fullWidth","className","colorPickerClasses","root","inputProps","maxLength","style","paddingLeft","InputProps","startAdornment","InputAdornment","position","children","icon","type","handleColorChange","currentProps","_data$name","data","styled","TextField","_ref","theme","size","concat","spacing","color","getColorPickerClasses","width","height","backgroundColor","borderRadius","boxShadow","border","outline","padding","background","opacity","cursor"],"mappings":"ySAUgBA,IAkEd,kBAhEE,SAAAC,EAAYC,GAA2B,IAAAC,EAEc,OAFdC,OAAAH,GACrCE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EA6C4C,qBAAA,SAACI,GACzD,IAAQC,EAAUD,EAAME,OAAhBD,MACRL,EAAKO,SAAS,CAAEF,MAAAA,OACjBF,EAAAH,EAEyD,qBAAA,SAACI,GACzD,IAAIC,EAAQD,EAAME,OAAOD,MACpBA,EAAMG,WAAW,OAAMH,EAAQ,IAAMA,EAAMI,QAAQ,gBAAiB,KACzET,EAAKO,SAAS,CAAEF,MAAAA,OACjBF,EAAAH,EAAA,cAEY,WACX,IAAMU,EAAIV,EAAKW,MAAMN,MAAMO,OACtB,oBAAoBC,KAAKH,IAC5BV,EAAKO,SAAS,CAAEF,MAAOL,EAAKc,gBAAgBd,EAAKD,YA1DnDC,EAAKW,MAAQ,CAAEN,MAAOL,EAAKc,gBAAgBf,IAAQC,CACrD,CAAC,OAAAe,EAAAjB,EAJuBkB,GAIvBC,EAAAnB,EAAA,CAAA,CAAAoB,IAAA,wBAAAb,MAED,SAAsBc,GACpB,IAAMd,EAAQe,KAAKN,gBAAgBM,KAAKrB,OAClCsB,EAAYD,KAAKN,gBAAgBK,GACvC,OAAId,IAAUgB,IACZD,KAAKb,SAAS,CAAEF,MAAOgB,KAChB,EAGX,GAAC,CAAAH,IAAA,SAAAb,MAED,WAAM,IAAAiB,EACEC,EAAsB,QAAlBD,EAAGF,KAAKrB,MAAMwB,YAAXD,IAAeA,OAAfA,EAAAA,EAAiBE,WAC9B,OACEC,EAACC,EAAe,CACdH,KAAMA,EACNI,MAAOP,KAAKrB,MAAM4B,MAClBtB,MAAOe,KAAKT,MAAMN,MAClBuB,SAAUR,KAAKS,kBACfC,OAAQV,KAAKW,WACbC,QAAQ,WACRC,WAAS,EACTC,UAAWC,EAAmBC,KAC9BC,WAAY,CAAEC,UAAW,EAAGC,MAAO,CAAEC,YAAa,IAClDC,WAAY,CACVC,eACEjB,EAACkB,EAAe,CAAAC,SAAS,QAAOC,SAC9BpB,EAAK,MAAA,CAAAS,UAAWC,EAAmBW,KACjCD,SAAApB,EAAA,QAAA,CAAOsB,KAAK,QAAQ1C,MAAOe,KAAKT,MAAMN,MAAOuB,SAAUR,KAAK4B,kBAAmBT,MAAO,CAAA,UAOpG,GAAC,CAAArB,IAAA,kBAAAb,MAED,SAAgB4C,GAAkC,IAAAC,EACxC3B,EAAe0B,EAAf1B,KAAM4B,EAASF,EAATE,KACd,OAAO5B,IAAO4B,SAAYD,QAARA,EAAJC,EAAO5B,UAAP2B,IAAYA,OAAZA,EAAAA,EAAc1B,aAA0B,SACxD,IAAC,GAqBL,CAGA,IAAMW,EAAqB,CACzBC,KAAM,uBACNU,KAAM,wBAOFpB,EAAkB0B,EAAOC,EAAPD,EAAkB,SAAAE,GAAqB,IAJhCpC,EAIcqC,EAAKD,EAALC,MAAOlD,EAAKiD,EAALjD,MAC5CmD,EAAIC,iCAAAA,OAAoCF,EAAMG,QAAQ,KAAO,KAC7DC,EAAQtD,GAAS,UACvB,OAAAF,EACGyD,CAAAA,GAR0B1C,EAQJ,OAPzB,GAAAuC,OAA6B,QAAEA,OAAItB,EAAmBjB,IAAIuC,OAAsB,KAO7C,CAC/BI,MAAOL,EACPM,OAAQN,EACRO,gBAAiBJ,EACjBK,aAAc,MACdC,UAAW,wCACX,sBAAuB,CACrBJ,MAAO,OACPC,OAAQ,OACRI,OAAQ,OACRC,QAAS,OACTC,QAAS,EACTC,WAAY,OACZC,QAAS,EACTC,OAAQ,YAIhB"}
@@ -1,2 +1,2 @@
1
- import{inherits as o,createClass as r,objectSpread2 as e,classCallCheck as n,callSuper as t,defineProperty as l,asyncToGenerator as i,regenerator as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as u}from"react/jsx-runtime";import{Fragment as d,Component as p}from"react";import{Grid as c}from"@mui/material";import{cleanObject as v}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{ContentWrap as m,CreateFormBottomBar as f}from"./create.form-grid-layout.units.js";import g from"./create.input.js";import b from"./create.form-base.js";import{mapGlobalModalContext as h}from"../api-context/global-modal.js";var S=function(S){var F=b(),y=f(),C=g({maxLength:250}),j=function(){function f(o){var r;return n(this,f),r=t(this,f,[o]),l(r,"renderFormFieldElement",(function(o){var n,t=r.props.data,l=null!==(n=o.inputElement)&&void 0!==n?n:C;return F.mapContext((function(n){var i,s,a={data:t,onBlur:n.onBlur,messageErrors:n.messageErrors,name:o.key,label:o.label,placeholder:o.placeholder,disabled:!(null===(i=r.configMerged.disabledFields)||void 0===i||!i[o.key])||void 0,defaultValue:null!==(s=null==t?void 0:t[o.key])&&void 0!==s?s:null==o?void 0:o.defaultValue,formContext:n};return u(l,e({},v(a)))}))})),l(r,"loading",(function(){return r.setState({loadding:!0})})),l(r,"unloading",(function(){return r.setState({loadding:!1})})),l(r,"onSubmit",function(){var o=i(s().m((function o(e,n){var t,l,i,a,u,d,p,c,v;return s().w((function(o){for(;;)switch(o.n){case 0:return a=r.props.slots,u=null!==(t=null!==(l=null===(i=r.props.slots)||void 0===i?void 0:i.preSubmit)&&void 0!==l?l:S.preSubmit)&&void 0!==t?t:r.preSubmit,d=u(e,r.props.data),o.p=1,r.loading(),null===(p=r.abortController)||void 0===p||p.abort(),r.abortController=new AbortController,o.n=2,r.props.onSubmit(d,null===(c=r.abortController)||void 0===c?void 0:c.signal);case 2:null!=a&&a.closeState&&!1===a.closeState.Success||(n&&n(),r.props.onClose&&r.props.onClose()),o.n=4;break;case 3:o.p=3,v=o.v,null!=a&&a.closeState&&!0===a.closeState.Fail&&(n&&n(),r.props.onClose&&r.props.onClose()),r.props.onError&&r.props.onError(v);case 4:return o.p=4,r.unloading(),o.f(4);case 5:return o.a(2)}}),o,null,[[1,3,4,5]])})));return function(r,e){return o.apply(this,arguments)}}()),l(r,"preSubmit",(function(o){return o})),l(r,"getFormSlots",(function(){var o,n=r.state.loadding,t=((null===(o=r.props.slots)||void 0===o?void 0:o.formSlots)||{}).formProps;return{formProps:e(e({},t),{},{sx:e(e({},r.props.sx),{},{opacity:n?.7:1,pointerEvents:n?"none":"auto"})})}})),r.state={loadding:!1},r}return o(f,p),r(f,[{key:"configMerged",get:function(){var o,r,e,n;return{hiddenFields:null!==(o=null===(r=this.props.slots)||void 0===r?void 0:r.hiddenFields)&&void 0!==o?o:S.hiddenFields,disabledFields:null!==(e=null===(n=this.props.slots)||void 0===n?void 0:n.disabledFields)&&void 0!==e?e:S.disabledFields}}},{key:"render",value:function(){var o,r,n,t=this,l=this.props.slots,i=null!==(o=null!==(r=null==S?void 0:S.action)&&void 0!==r?r:null===(n=this.props.slots)||void 0===n?void 0:n.action)&&void 0!==o?o:y;return h((function(o){var r,n=o.close;return a(F.Form,{validate:S.validate,onSubmit:function(o){return t.onSubmit(o,n)},slots:t.getFormSlots(),children:[a(m,e(e({},null===(r=t.props)||void 0===r||null===(r=r.slots)||void 0===r?void 0:r.contentProps),{},{children:[(null==l?void 0:l.contentBefore)&&(null==l?void 0:l.contentBefore),null==S?void 0:S.contentBefore,u(c,{container:!0,spacing:2,children:S.configs.map((function(o,r){var n,l=!(null===(n=t.configMerged.hiddenFields)||void 0===n||!n[o.key])||void 0;return u(d,l?{}:{children:u(c,e(e({item:!0,xs:12},o.sizes),{},{children:t.renderFormFieldElement(o)}))},o.key.toString()+r)}))}),null==S?void 0:S.contentAfter,(null==l?void 0:l.contentAfter)&&(null==l?void 0:l.contentAfter)]})),F.mapContext((function(o){var r;return u(i,{data:t.props.data,onBlur:o.onBlur,messageErrors:o.messageErrors,before:null===(r=t.props.slots)||void 0===r?void 0:r.actionBefore})}))]})}))}},{key:"componentWillUnmount",value:function(){var o;null===(o=this.abortController)||void 0===o||o.abort()}}])}();return j};export{S as default};
1
+ import{inherits as o,createClass as e,objectSpread2 as r,classCallCheck as n,callSuper as t,defineProperty as l,asyncToGenerator as i,regenerator as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as d}from"react/jsx-runtime";import{Fragment as u,Component as p}from"react";import{Grid as c}from"@mui/material";import{cleanObject as v}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{ContentWrap as m,CreateFormBottomBar as f}from"./create.form-grid-layout.units.js";import g from"./create.input.js";import b from"./create.form-base.js";import{mapGlobalModalContext as h}from"../api-context/global-modal.js";var S=function(S){var F=b(),y=f(),C=g({maxLength:250}),j=function(){function f(o){var e;return n(this,f),e=t(this,f,[o]),l(e,"renderFormFieldElement",(function(o,n){var t,l,i,s=e.props.data,a=null!==(t=n.inputElement)&&void 0!==t?t:C,u={data:s,onBlur:o.onBlur,messageErrors:o.messageErrors,name:n.key,label:n.label,placeholder:n.placeholder,disabled:!(null===(l=e.configMerged.disabledFields)||void 0===l||!l[n.key])||void 0,defaultValue:null!==(i=null==s?void 0:s[n.key])&&void 0!==i?i:null==n?void 0:n.defaultValue,formContext:o};return d(a,r({},v(u)))})),l(e,"loading",(function(){return e.setState({loadding:!0})})),l(e,"unloading",(function(){return e.setState({loadding:!1})})),l(e,"onSubmit",function(){var o=i(s().m((function o(r,n){var t,l,i,a,d,u,p,c,v;return s().w((function(o){for(;;)switch(o.n){case 0:return a=e.props.slots,d=null!==(t=null!==(l=null===(i=e.props.slots)||void 0===i?void 0:i.preSubmit)&&void 0!==l?l:S.preSubmit)&&void 0!==t?t:e.preSubmit,u=d(r,e.props.data),o.p=1,e.loading(),null===(p=e.abortController)||void 0===p||p.abort(),e.abortController=new AbortController,o.n=2,e.props.onSubmit(u,null===(c=e.abortController)||void 0===c?void 0:c.signal);case 2:null!=a&&a.closeState&&!1===a.closeState.Success||(n&&n(),e.props.onClose&&e.props.onClose()),o.n=4;break;case 3:o.p=3,v=o.v,null!=a&&a.closeState&&!0===a.closeState.Fail&&(n&&n(),e.props.onClose&&e.props.onClose()),e.props.onError&&e.props.onError(v);case 4:return o.p=4,e.unloading(),o.f(4);case 5:return o.a(2)}}),o,null,[[1,3,4,5]])})));return function(e,r){return o.apply(this,arguments)}}()),l(e,"preSubmit",(function(o){return o})),l(e,"getFormSlots",(function(){var o,n=e.state.loadding,t=((null===(o=e.props.slots)||void 0===o?void 0:o.formSlots)||{}).formProps;return{formProps:r(r({},t),{},{sx:r(r({},e.props.sx),{},{opacity:n?.7:1,pointerEvents:n?"none":"auto"})})}})),e.state={loadding:!1},e}return o(f,p),e(f,[{key:"configMerged",get:function(){var o,e,r,n,t,l,i,s,a;return{getHiddenFields:null!==(o=null!==(e=null===(r=this.props.slots)||void 0===r?void 0:r.getHiddenFields)&&void 0!==e?e:S.getHiddenFields)&&void 0!==o?o:function(){return{}},hiddenFields:null!==(n=null!==(t=null===(l=this.props.slots)||void 0===l?void 0:l.hiddenFields)&&void 0!==t?t:S.hiddenFields)&&void 0!==n?n:{},disabledFields:null!==(i=null!==(s=null===(a=this.props.slots)||void 0===a?void 0:a.disabledFields)&&void 0!==s?s:S.disabledFields)&&void 0!==i?i:{}}}},{key:"render",value:function(){var o,e,n,t=this,l=this.props,i=l.slots,s=l.data,p=null!==(o=null!==(e=null==S?void 0:S.action)&&void 0!==e?e:null===(n=this.props.slots)||void 0===n?void 0:n.action)&&void 0!==o?o:y;return h((function(o){var e,n=o.close;return a(F.Form,{validate:S.validate,onSubmit:function(o){return t.onSubmit(o,n)},slots:t.getFormSlots(),children:[a(m,r(r({},null===(e=t.props)||void 0===e||null===(e=e.slots)||void 0===e?void 0:e.contentProps),{},{children:[(null==i?void 0:i.contentBefore)&&(null==i?void 0:i.contentBefore),null==S?void 0:S.contentBefore,F.mapContext((function(o){var e=t.configMerged,n=e.getHiddenFields,l=e.hiddenFields,i=r(r({},l),n(o.modelState||{},s));return d(c,{container:!0,spacing:2,children:S.configs.map((function(e,n){var l=!!i[e.key]||void 0;return d(u,l?{}:{children:d(c,r(r({item:!0,xs:12},e.sizes),{},{children:t.renderFormFieldElement(o,e)}))},e.key.toString()+n)}))})})),null==S?void 0:S.contentAfter,(null==i?void 0:i.contentAfter)&&(null==i?void 0:i.contentAfter)]})),F.mapContext((function(o){var e;return d(p,{data:t.props.data,onBlur:o.onBlur,messageErrors:o.messageErrors,before:null===(e=t.props.slots)||void 0===e?void 0:e.actionBefore})}))]})}))}},{key:"componentWillUnmount",value:function(){var o;null===(o=this.abortController)||void 0===o||o.abort()}}])}();return j};export{S 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 { cleanObject } from '../utils'\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, { IFormBaseSlots } 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 sizes?: RegularBreakpoints\r\n defaultValue?: any\r\n inputElement?: React.ComponentType<IFormInputBase<T>>\r\n}\r\n\r\nexport type IPreSubmitEvent<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 hiddenFields?: Partial<Record<keyof T, boolean>>\r\n getHiddenFields?: (value: Partial<T>) => Partial<Record<keyof T, boolean>>\r\n disabledFields?: Partial<Record<keyof T, boolean>>\r\n closeState?: { Success?: boolean; Fail?: boolean }\r\n contentProps?: BoxProps\r\n preSubmit?: IPreSubmitEvent<T>\r\n formSlots?: IFormBaseSlots\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}\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 hiddenFields: this.props.slots?.hiddenFields ?? params.hiddenFields,\r\n disabledFields: this.props.slots?.disabledFields ?? params.disabledFields\r\n }\r\n }\r\n\r\n render() {\r\n const { slots } = this.props\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)} slots={this.getFormSlots()}>\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 isHidden: boolean | undefined = this.configMerged.hiddenFields?.[config.key] ? true : undefined\r\n if (isHidden) 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.sizes}>\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 {FormBaseInstance.mapContext((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 renderFormFieldElement = (config: IFormGridLayoutConfig<T>) => {\r\n const { data } = this.props\r\n const ElementComponent = config.inputElement ?? InputBaseInstance\r\n return FormBaseInstance.mapContext((context) => {\r\n const obj: IFormInputBase<T, any> = {\r\n 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: this.configMerged.disabledFields?.[config.key] ? true : undefined,\r\n defaultValue: data?.[config.key] ?? config?.defaultValue,\r\n formContext: context\r\n }\r\n return <ElementComponent {...cleanObject(obj)} />\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 = this.props.slots?.preSubmit ?? params.preSubmit ?? this.preSubmit\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 preSubmit: IPreSubmitEvent<T> = (value) => value\r\n\r\n getFormSlots = (): IFormBaseSlots => {\r\n const isLoading = this.state.loadding\r\n const { formProps } = this.props.slots?.formSlots || {}\r\n return {\r\n formProps: {\r\n ...formProps,\r\n sx: {\r\n ...this.props.sx,\r\n opacity: isLoading ? 0.7 : 1,\r\n pointerEvents: isLoading ? 'none' : 'auto'\r\n }\r\n }\r\n }\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","config","_config$inputElement","data","ElementComponent","inputElement","mapContext","context","_this$configMerged$di","_data$config$key","obj","onBlur","messageErrors","name","key","label","placeholder","disabled","configMerged","disabledFields","undefined","defaultValue","formContext","_jsx","_objectSpread","cleanObject","setState","loadding","_ref","_asyncToGenerator","_regenerator","m","_callee","value","close","_ref2","_this$props$slots$pre","_this$props$slots","slots","mapping","_this$abortController","_this$abortController2","_t","w","_context","n","preSubmit","p","loading","abortController","abort","AbortController","onSubmit","signal","closeState","Success","onClose","v","Fail","onError","unloading","f","a","_x","_x2","apply","this","arguments","_this$props$slots2","isLoading","state","formProps","formSlots","sx","opacity","pointerEvents","_inherits","Component","_createClass","get","_this$props$slots$hid","_this$props$slots3","_this$props$slots$dis","_this$props$slots4","hiddenFields","_ref4","_params$action","_this$props$slots5","_this2","BottomBar","action","mapGlobalModalContext","_ref5","_this2$props","_jsxs","Form","validate","getFormSlots","children","ContentWrap","contentProps","contentBefore","Grid","container","spacing","configs","map","index","_this2$configMerged$h","isHidden","Fragment","item","xs","sizes","renderFormFieldElement","toString","contentAfter","_this2$props$slots","before","actionBefore","_this$abortController3"],"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 { cleanObject } from '../utils'\r\nimport { IFormBase, IFormBaseContext, 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, { IFormBaseSlots } 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 sizes?: RegularBreakpoints\r\n defaultValue?: any\r\n inputElement?: React.ComponentType<IFormInputBase<T>>\r\n}\r\n\r\nexport type IPreSubmitEvent<T> = (value: Partial<T>, oldValue?: T) => Partial<T>\r\n\r\nexport interface IFormGridLayoutMergedConfigs<T> {\r\n hiddenFields?: Partial<Record<keyof T, boolean>>\r\n getHiddenFields?: (state: Partial<T>, model?: Partial<T>) => Partial<Record<keyof T, boolean>>\r\n disabledFields?: Partial<Record<keyof T, boolean>>\r\n}\r\n\r\nexport interface IFormGridLayoutSlots<T> extends IFormGridLayoutMergedConfigs<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 // getDisabledFields?: (value: Partial<T>) => Partial<Record<keyof T, boolean>>\r\n closeState?: { Success?: boolean; Fail?: boolean }\r\n contentProps?: BoxProps\r\n preSubmit?: IPreSubmitEvent<T>\r\n formSlots?: IFormBaseSlots\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}\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(): Required<IFormGridLayoutMergedConfigs<T>> {\r\n return {\r\n getHiddenFields: this.props.slots?.getHiddenFields ?? params.getHiddenFields ?? (() => ({})),\r\n hiddenFields: this.props.slots?.hiddenFields ?? params.hiddenFields ?? {},\r\n disabledFields: this.props.slots?.disabledFields ?? params.disabledFields ?? {}\r\n }\r\n }\r\n\r\n render() {\r\n const { slots, data } = this.props\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)} slots={this.getFormSlots()}>\r\n <ContentWrap {...this.props?.slots?.contentProps}>\r\n {slots?.contentBefore && slots?.contentBefore}\r\n {params?.contentBefore}\r\n {FormBaseInstance.mapContext((context) => {\r\n const { getHiddenFields, hiddenFields } = this.configMerged\r\n const finalHiddenFields: Partial<Record<keyof T, boolean>> = { ...hiddenFields, ...getHiddenFields(context.modelState || {}, data) }\r\n return (\r\n <Grid container spacing={2}>\r\n {params.configs.map((config, index) => {\r\n const isHidden: boolean | undefined = finalHiddenFields[config.key] ? true : undefined\r\n if (isHidden) 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.sizes}>\r\n {this.renderFormFieldElement(context, config)}\r\n </Grid>\r\n </Fragment>\r\n )\r\n })}\r\n </Grid>\r\n )\r\n })}\r\n {params?.contentAfter}\r\n {slots?.contentAfter && slots?.contentAfter}\r\n </ContentWrap>\r\n {FormBaseInstance.mapContext((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 renderFormFieldElement = (context: IFormBaseContext<T>, config: IFormGridLayoutConfig<T>) => {\r\n const { data } = this.props\r\n const ElementComponent = config.inputElement ?? InputBaseInstance\r\n const obj: IFormInputBase<T, any> = {\r\n 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: this.configMerged.disabledFields?.[config.key] ? true : undefined,\r\n defaultValue: data?.[config.key] ?? config?.defaultValue,\r\n formContext: context\r\n }\r\n return <ElementComponent {...cleanObject(obj)} />\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 = this.props.slots?.preSubmit ?? params.preSubmit ?? this.preSubmit\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 preSubmit: IPreSubmitEvent<T> = (value) => value\r\n\r\n getFormSlots = (): IFormBaseSlots => {\r\n const isLoading = this.state.loadding\r\n const { formProps } = this.props.slots?.formSlots || {}\r\n return {\r\n formProps: {\r\n ...formProps,\r\n sx: {\r\n ...this.props.sx,\r\n opacity: isLoading ? 0.7 : 1,\r\n pointerEvents: isLoading ? 'none' : 'auto'\r\n }\r\n }\r\n }\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","context","config","_config$inputElement","_this$configMerged$di","_data$config$key","data","ElementComponent","inputElement","obj","onBlur","messageErrors","name","key","label","placeholder","disabled","configMerged","disabledFields","undefined","defaultValue","formContext","_jsx","_objectSpread","cleanObject","setState","loadding","_ref","_asyncToGenerator","_regenerator","m","_callee","value","close","_ref2","_this$props$slots$pre","_this$props$slots","slots","mapping","_this$abortController","_this$abortController2","_t","w","_context","n","preSubmit","p","loading","abortController","abort","AbortController","onSubmit","signal","closeState","Success","onClose","v","Fail","onError","unloading","f","a","_x","_x2","apply","this","arguments","_this$props$slots2","isLoading","state","formProps","formSlots","sx","opacity","pointerEvents","_inherits","Component","_createClass","get","_ref4","_this$props$slots$get","_this$props$slots3","_ref5","_this$props$slots$hid","_this$props$slots4","_ref6","_this$props$slots$dis","_this$props$slots5","getHiddenFields","hiddenFields","_ref7","_params$action","_this$props$slots6","_this2","_this$props","BottomBar","action","mapGlobalModalContext","_ref8","_this2$props","_jsxs","Form","validate","getFormSlots","ContentWrap","contentProps","children","contentBefore","mapContext","_this2$configMerged","finalHiddenFields","modelState","Grid","container","spacing","configs","map","index","isHidden","Fragment","item","xs","sizes","renderFormFieldElement","toString","contentAfter","_this2$props$slots","before","actionBefore","_this$abortController3"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as t,objectSpread2 as r,classCallCheck as a,callSuper as o,defineProperty as i,objectWithoutProperties as n,asyncToGenerator as l,regenerator as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as u,jsx as d,Fragment as p}from"react/jsx-runtime";import{Component as c}from"react";import{styled as m,Box as h,TextField as v,InputAdornment as g,IconButton as f,Collapse as b,CircularProgress as x}from"@mui/material";import S from"@mui/icons-material/ContentPaste";import{mergeObjects as k}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{getErrorMessage as y}from"./helpers.js";import{ImageWithFallback as P}from"../components/image-with-fallback.js";var j=["srcGetter","element","alt","fallbackSrc","debounceDelay"],L=function(m){return function(){function x(e){var t,u;return a(this,x),u=o(this,x,[e]),i(u,"_cachedSlots",{}),i(u,"mapTextFieldProps",(function(){var e,t,a,o,i=y(u.props.messageErrors,u.props.name),n={fullWidth:!0,variant:"outlined",name:null===(e=u.props.name)||void 0===e?void 0:e.toString(),error:i.error,helperText:i.message,disabled:u.props.disabled,onBlur:function(){u.props.name&&u.props.onBlur&&u.props.onBlur(u.props.name)},label:u.getLabel(),placeholder:u.props.placeholder,InputLabelProps:u.state.value?{shrink:!0}:{},value:null!==(t=u.state.value)&&void 0!==t?t:"",onChange:u.handleChange};return!0===u.slots.pastenable&&(n.InputProps={endAdornment:d(g,{position:"end",children:d(f,{onClick:u.handlePaste,edge:"end",children:d(S,{})})})}),null!==(a=u.slots)&&void 0!==a&&a.maxLength&&(n.inputProps=r(r({},n.inputProps),{},{maxLength:u.slots.maxLength})),k({},n,null===(o=u.slots)||void 0===o?void 0:o.textFieldProps)})),i(u,"renderImageSide",(function(e){var t,a="left"===e?u.slots.imageLeft:u.slots.imageRight;if(!a)return d(p,{});var o=a.srcGetter,i=a.element,l=a.alt,s=void 0===l?"input-image":l,c=a.fallbackSrc,m=void 0===c?"":c,h=a.debounceDelay,v=void 0===h?700:h,g=n(a,j);if(i)return d(w,{children:d(i,{value:u.state.value,model:u.props.data})});var f=o?o(u.state.value,u.props.data):null!==(t=g.src)&&void 0!==t?t:u.state.value,x={src:f,alt:s,fallbackSrc:m,debounceDelay:v};return d(b,{sx:{mx:"10px"},in:!!f,unmountOnExit:!0,orientation:"horizontal",children:d(w,{children:d(P,r(r(r({},g),x),{},{loading:d(C,{})}))})})})),i(u,"mergeSlots",(function(e){var t=k({},m,e),a=t.imageLeft,o=t.imageRight;return null!=a&&a.mirror&&!o?(t.imageRight=r({},a),delete t.imageRight.mirror):null!=o&&o.mirror&&!a&&(t.imageLeft=r({},o),delete t.imageLeft.mirror),t})),i(u,"getLabel",(function(){var e,t,r;if(u.props.label)return null!==(e=u.slots)&&void 0!==e&&e.maxLength?"".concat(u.props.label," (").concat(null!==(t=null===(r=u.state.value)||void 0===r?void 0:r.length)&&void 0!==t?t:0,"/").concat(u.slots.maxLength,")"):u.props.label})),i(u,"handleChange",(function(e){u.setState({value:e.target.value})})),i(u,"handlePaste",l(s().m((function e(){var t,r;return s().w((function(e){for(;;)switch(e.n){case 0:return e.p=0,e.n=1,navigator.clipboard.readText();case 1:t=e.v,u.setState({value:t}),e.n=3;break;case 2:e.p=2,r=e.v,console.error("Error clipboard:",r);case 3:return e.a(2)}}),e,null,[[0,2]])})))),u._cachedSlots=null!==(t=u.mergeSlots(e.slots))&&void 0!==t?t:{},u.state={value:u.defaulValue},u}return e(x,c),t(x,[{key:"slots",get:function(){return this._cachedSlots}},{key:"defaulValue",get:function(){var e,t,r=this.props,a=r.data,o=r.name;return null!==(e=this.props.defaultValue)&&void 0!==e?e:a&&o?null===(t=a[o])||void 0===t?void 0:t.toString():void 0}},{key:"componentDidUpdate",value:function(e){e.slots!==this.props.slots&&(this._cachedSlots=this.mergeSlots(this.props.slots))}},{key:"shouldComponentUpdate",value:function(e){var t=this.props,r=t.name;t.slots;if(r){var a,o,i,n,l=null!==(a=null===(o=this.props.data)||void 0===o||null===(o=o[r])||void 0===o?void 0:o.toString())&&void 0!==a?a:"",s=null!==(i=null===(n=e.data)||void 0===n||null===(n=n[r])||void 0===n?void 0:n.toString())&&void 0!==i?i:"";if(l!==s)return this.setState({value:s}),!1}return e.slots,!0}},{key:"render",value:function(){var e;return u(h,{sx:{display:"flex",alignItems:"center"},children:[!!this.props.disabled&&d("input",{hidden:!0,name:null===(e=this.props.name)||void 0===e?void 0:e.toString(),defaultValue:this.defaulValue}),this.renderImageSide("left"),d(v,r({},this.mapTextFieldProps())),this.renderImageSide("right")]})}}])}()},C=function(){return d("div",{children:d(x,{size:24})})},w=m(h)({fontSize:"1rem",height:"var(--input-base-image-size, 54px)",width:"var(--input-base-image-size, 54px)",position:"relative",borderRadius:"8px",boxShadow:"rgba(0, 0, 0, 0.16) 0px 1px 4px",overflow:"hidden","& > img":{position:"absolute",top:0,left:0,backgroundRepeat:"no-repeat",height:"100%",width:"100%",backgroundSize:"contain"},"& > div":{position:"absolute",top:0,left:0,height:"100%",width:"100%",background:"#fafafa",zIndex:1,display:"flex",alignItems:"center",justifyContent:"center"}});export{L as default};
1
+ import{inherits as e,createClass as t,objectSpread2 as r,classCallCheck as o,callSuper as a,defineProperty as i,objectWithoutProperties as l,asyncToGenerator as n,regenerator as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as u,jsx as p,Fragment as d}from"react/jsx-runtime";import{Component as c}from"react";import{styled as m,Box as h,TextField as v,InputAdornment as f,IconButton as g,Collapse as b,CircularProgress as x}from"@mui/material";import S from"@mui/icons-material/ContentPaste";import{mergeObjects as k}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{getErrorMessage as y}from"./helpers.js";import{RichTooltip as P,HelpOutlinePulseIcon as j}from"../components/rich-tooltip.js";import{ImageWithFallback as L}from"../components/image-with-fallback.js";var C=["srcGetter","element","alt","fallbackSrc","debounceDelay"],I=function(m){return function(){function x(e){var t,c;return o(this,x),c=a(this,x,[e]),i(c,"_cachedSlots",{}),i(c,"mapTextFieldProps",(function(){var e,t,o,a,i=y(c.props.messageErrors,c.props.name),l={fullWidth:!0,variant:"outlined",name:null===(e=c.props.name)||void 0===e?void 0:e.toString(),error:i.error,helperText:i.message,disabled:c.props.disabled,onBlur:function(){c.props.name&&c.props.onBlur&&c.props.onBlur(c.props.name)},label:c.getLabel(),placeholder:c.props.placeholder,InputLabelProps:c.state.value?{shrink:!0}:{},value:null!==(t=c.state.value)&&void 0!==t?t:"",onChange:c.handleChange};return l.InputProps||(l.InputProps={}),l.InputProps.endAdornment=u(f,{position:"end",children:[c.slots.pastenable&&p(g,{onClick:c.handlePaste,edge:"end",children:p(S,{})}),c.slots.tooltip&&p(P,{panel:c.slots.tooltip,children:p(j,{fontSize:"small"})})]}),null!==(o=c.slots)&&void 0!==o&&o.maxLength&&(l.inputProps=r(r({},l.inputProps),{},{maxLength:c.slots.maxLength})),k({},l,null===(a=c.slots)||void 0===a?void 0:a.textFieldProps)})),i(c,"renderImageSide",(function(e){var t,o="left"===e?c.slots.imageLeft:c.slots.imageRight;if(!o)return p(d,{});var a=o.srcGetter,i=o.element,n=o.alt,s=void 0===n?"input-image":n,u=o.fallbackSrc,m=void 0===u?"":u,h=o.debounceDelay,v=void 0===h?700:h,f=l(o,C);if(i)return p(z,{children:p(i,{value:c.state.value,model:c.props.data})});var g=a?a(c.state.value,c.props.data):null!==(t=f.src)&&void 0!==t?t:c.state.value,x={src:g,alt:s,fallbackSrc:m,debounceDelay:v};return p(b,{sx:{mx:"10px"},in:!!g,unmountOnExit:!0,orientation:"horizontal",children:p(z,{children:p(L,r(r(r({},f),x),{},{loading:p(w,{})}))})})})),i(c,"mergeSlots",(function(e){var t=k({},m,e),o=t.imageLeft,a=t.imageRight;return null!=o&&o.mirror&&!a?(t.imageRight=r({},o),delete t.imageRight.mirror):null!=a&&a.mirror&&!o&&(t.imageLeft=r({},a),delete t.imageLeft.mirror),t})),i(c,"getLabel",(function(){var e,t,r;if(c.props.label)return null!==(e=c.slots)&&void 0!==e&&e.maxLength?"".concat(c.props.label," (").concat(null!==(t=null===(r=c.state.value)||void 0===r?void 0:r.length)&&void 0!==t?t:0,"/").concat(c.slots.maxLength,")"):c.props.label})),i(c,"handleChange",(function(e){c.setState({value:e.target.value})})),i(c,"handlePaste",n(s().m((function e(){var t,r;return s().w((function(e){for(;;)switch(e.n){case 0:return e.p=0,e.n=1,navigator.clipboard.readText();case 1:t=e.v,c.setState({value:t}),e.n=3;break;case 2:e.p=2,r=e.v,console.error("Error clipboard:",r);case 3:return e.a(2)}}),e,null,[[0,2]])})))),c._cachedSlots=null!==(t=c.mergeSlots(e.slots))&&void 0!==t?t:{},c.state={value:c.defaulValue},c}return e(x,c),t(x,[{key:"slots",get:function(){return this._cachedSlots}},{key:"defaulValue",get:function(){var e,t,r=this.props,o=r.data,a=r.name;return null!==(e=this.props.defaultValue)&&void 0!==e?e:o&&a?null===(t=o[a])||void 0===t?void 0:t.toString():void 0}},{key:"componentDidUpdate",value:function(e){e.slots!==this.props.slots&&(this._cachedSlots=this.mergeSlots(this.props.slots))}},{key:"shouldComponentUpdate",value:function(e){var t=this.props,r=t.name;t.slots;if(r){var o,a,i,l,n=null!==(o=null===(a=this.props.data)||void 0===a||null===(a=a[r])||void 0===a?void 0:a.toString())&&void 0!==o?o:"",s=null!==(i=null===(l=e.data)||void 0===l||null===(l=l[r])||void 0===l?void 0:l.toString())&&void 0!==i?i:"";if(n!==s)return this.setState({value:s}),!1}return e.slots,!0}},{key:"render",value:function(){var e;return u(h,{sx:{display:"flex",alignItems:"center"},children:[!!this.props.disabled&&p("input",{hidden:!0,name:null===(e=this.props.name)||void 0===e?void 0:e.toString(),defaultValue:this.defaulValue}),this.renderImageSide("left"),p(v,r({},this.mapTextFieldProps())),this.renderImageSide("right")]})}}])}()},w=function(){return p("div",{children:p(x,{size:24})})},z=m(h)({fontSize:"1rem",height:"var(--input-base-image-size, 54px)",width:"var(--input-base-image-size, 54px)",position:"relative",borderRadius:"8px",boxShadow:"rgba(0, 0, 0, 0.16) 0px 1px 4px",overflow:"hidden","& > img":{position:"absolute",top:0,left:0,backgroundRepeat:"no-repeat",height:"100%",width:"100%",backgroundSize:"contain"},"& > div":{position:"absolute",top:0,left:0,height:"100%",width:"100%",background:"#fafafa",zIndex:1,display:"flex",alignItems:"center",justifyContent:"center"}});export{I as default};
2
2
  //# sourceMappingURL=create.input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.input.js","sources":["../../src/form/create.input.tsx"],"sourcesContent":["import React, { Component, ComponentType, FC } from 'react'\r\nimport { Box, CircularProgress, Collapse, IconButton, InputAdornment, styled, TextField, TextFieldProps } from '@mui/material'\r\nimport ContentPasteIcon from '@mui/icons-material/ContentPaste'\r\nimport { mergeObjects } from '../utils'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helpers'\r\nimport { ImageWithFallback, IImageWithFallbackPropsOwner } from '../components'\r\n\r\nexport interface InputBaseImage<T> extends Partial<IImageWithFallbackPropsOwner> {\r\n srcGetter?: (value: any, model?: Partial<T>) => string\r\n element?: React.ComponentType<{ value: any; model?: Partial<T> }>\r\n mirror?: boolean\r\n}\r\n\r\nexport interface IInputSlots<T> {\r\n maxLength?: number\r\n textFieldProps?: TextFieldProps\r\n pastenable?: boolean\r\n imageLeft?: InputBaseImage<T>\r\n imageRight?: InputBaseImage<T>\r\n}\r\n\r\nexport interface IInputProps<T> extends IFormInputBase<T, IInputSlots<T>> {}\r\n\r\nexport interface IInputState {\r\n value?: string\r\n}\r\n\r\nexport interface IInputParams<T> extends IInputSlots<T> {}\r\n\r\nconst CreateInput = function <T>(params?: IInputParams<T>): ComponentType<IInputProps<T>> {\r\n class InputBase extends Component<IInputProps<T>, IInputState> {\r\n private _cachedSlots: IInputSlots<T> = {}\r\n constructor(props: IInputProps<T>) {\r\n super(props)\r\n this._cachedSlots = this.mergeSlots(props.slots) ?? {}\r\n this.state = { value: this.defaulValue }\r\n }\r\n\r\n get slots() {\r\n return this._cachedSlots\r\n }\r\n\r\n get defaulValue(): string {\r\n const { data, name } = this.props\r\n return this.props.defaultValue ?? (!!data && !!name ? data[name]?.toString() : undefined)\r\n }\r\n\r\n componentDidUpdate(prevProps: IInputProps<T>) {\r\n if (prevProps.slots !== this.props.slots) {\r\n this._cachedSlots = this.mergeSlots(this.props.slots)\r\n }\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<IInputProps<T>>): boolean {\r\n const { name, slots } = this.props\r\n if (!!name) {\r\n const currentDataValue = this.props.data?.[name]?.toString() ?? ''\r\n const nextDataValue = nextProps.data?.[name]?.toString() ?? ''\r\n if (currentDataValue !== nextDataValue) {\r\n this.setState({ value: nextDataValue })\r\n return false\r\n }\r\n }\r\n\r\n if (slots !== nextProps.slots) {\r\n return true\r\n }\r\n return true\r\n }\r\n\r\n mapTextFieldProps = (): TextFieldProps => {\r\n const errorMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n const tfp: TextFieldProps = {\r\n fullWidth: true,\r\n variant: 'outlined',\r\n name: this.props.name?.toString(),\r\n error: errorMessage.error,\r\n helperText: errorMessage.message,\r\n disabled: this.props.disabled,\r\n onBlur: () => {\r\n if (!this.props.name) return\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n },\r\n label: this.getLabel(),\r\n placeholder: this.props.placeholder,\r\n InputLabelProps: !!this.state.value ? { shrink: true } : {},\r\n value: this.state.value ?? '',\r\n onChange: this.handleChange\r\n }\r\n if (this.slots.pastenable === true) {\r\n tfp.InputProps = {\r\n endAdornment: (\r\n <InputAdornment position='end'>\r\n <IconButton onClick={this.handlePaste} edge='end'>\r\n <ContentPasteIcon />\r\n </IconButton>\r\n </InputAdornment>\r\n )\r\n }\r\n }\r\n if (this.slots?.maxLength) tfp.inputProps = { ...tfp.inputProps, maxLength: this.slots.maxLength }\r\n return mergeObjects<TextFieldProps>({}, tfp, this.slots?.textFieldProps)\r\n }\r\n\r\n //#region Render\r\n render() {\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\r\n {!!this.props.disabled && <input hidden name={this.props.name?.toString()} defaultValue={this.defaulValue} />}\r\n {this.renderImageSide('left')}\r\n <TextField {...this.mapTextFieldProps()} />\r\n {this.renderImageSide('right')}\r\n </Box>\r\n )\r\n }\r\n\r\n renderImageSide = (side: 'left' | 'right') => {\r\n const image = side === 'left' ? this.slots.imageLeft : this.slots.imageRight\r\n if (!image) return <></>\r\n const { srcGetter, element, alt = 'input-image', fallbackSrc = '', debounceDelay = 700, ...imageOther } = image\r\n if (element) {\r\n const Element = element\r\n return (\r\n <WrapImage>\r\n <Element value={this.state.value} model={this.props.data} />\r\n </WrapImage>\r\n )\r\n }\r\n const src = srcGetter ? srcGetter(this.state.value, this.props.data) : imageOther.src ?? this.state.value\r\n const imageProps: IImageWithFallbackPropsOwner = { src, alt, fallbackSrc, debounceDelay }\r\n return (\r\n <Collapse sx={{ mx: '10px' }} in={!!src} unmountOnExit orientation='horizontal'>\r\n <WrapImage>\r\n <ImageWithFallback {...imageOther} {...imageProps} loading={<LoadingCircularProgress />} />\r\n </WrapImage>\r\n </Collapse>\r\n )\r\n }\r\n //#endregion\r\n\r\n private mergeSlots = (currentSlots?: IInputSlots<T>): IInputSlots<T> => {\r\n const base = mergeObjects<IInputSlots<T>>({}, params, currentSlots)\r\n const { imageLeft, imageRight } = base\r\n\r\n // mirror from left to right\r\n if (imageLeft?.mirror && !imageRight) {\r\n base.imageRight = { ...imageLeft }\r\n delete base.imageRight.mirror\r\n }\r\n // mirror from right to left\r\n else if (imageRight?.mirror && !imageLeft) {\r\n base.imageLeft = { ...imageRight }\r\n delete base.imageLeft.mirror\r\n }\r\n\r\n return base\r\n }\r\n\r\n getLabel = () => {\r\n if (!this.props.label) return\r\n if (!this.slots?.maxLength) return this.props.label\r\n return `${this.props.label} (${this.state.value?.length ?? 0}/${this.slots.maxLength})`\r\n }\r\n\r\n handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n this.setState({ value: event.target.value })\r\n }\r\n\r\n handlePaste = async () => {\r\n try {\r\n const clipboardText = await navigator.clipboard.readText()\r\n this.setState({ value: clipboardText })\r\n } catch (error) {\r\n console.error('Error clipboard:', error)\r\n }\r\n }\r\n }\r\n return InputBase\r\n}\r\n\r\nexport default CreateInput\r\n\r\n// export type InputTextType<T> = ReturnType<typeof CreateInputBase<T>>\r\n\r\nconst LoadingCircularProgress: FC = () => (\r\n <div>\r\n <CircularProgress size={24} />\r\n </div>\r\n)\r\n\r\nconst WrapImage = styled(Box)({\r\n fontSize: '1rem',\r\n height: 'var(--input-base-image-size, 54px)',\r\n width: 'var(--input-base-image-size, 54px)',\r\n position: 'relative',\r\n borderRadius: '8px',\r\n boxShadow: 'rgba(0, 0, 0, 0.16) 0px 1px 4px',\r\n overflow: 'hidden',\r\n '& > img': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n backgroundRepeat: 'no-repeat',\r\n height: '100%',\r\n width: '100%',\r\n backgroundSize: 'contain'\r\n },\r\n '& > div': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n height: '100%',\r\n width: '100%',\r\n background: '#fafafa',\r\n zIndex: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n }\r\n})\r\n"],"names":["CreateInput","params","InputBase","props","_this$mergeSlots","_this","_classCallCheck","_callSuper","_defineProperty","_this$props$name","_this$state$value","_this$slots","_this$slots2","errorMessage","getErrorMessage","messageErrors","name","tfp","fullWidth","variant","toString","error","helperText","message","disabled","onBlur","label","getLabel","placeholder","InputLabelProps","state","value","shrink","onChange","handleChange","slots","pastenable","InputProps","endAdornment","_jsx","InputAdornment","position","children","IconButton","onClick","handlePaste","edge","ContentPasteIcon","maxLength","inputProps","_objectSpread","mergeObjects","textFieldProps","side","_imageOther$src","image","imageLeft","imageRight","srcGetter","element","_image$alt","alt","_image$fallbackSrc","fallbackSrc","_image$debounceDelay","debounceDelay","imageOther","_objectWithoutProperties","_excluded","WrapImage","model","data","src","imageProps","Collapse","sx","mx","in","unmountOnExit","orientation","ImageWithFallback","loading","LoadingCircularProgress","currentSlots","base","mirror","_this$slots3","_this$state$value$len","_this$state$value2","concat","length","event","setState","target","_asyncToGenerator","_regenerator","m","_callee","clipboardText","_t","w","_context","n","p","navigator","clipboard","readText","v","console","a","_cachedSlots","mergeSlots","defaulValue","_inherits","Component","_createClass","key","get","this","_this$props$defaultVa","_data$name","_this$props","defaultValue","undefined","prevProps","nextProps","_this$props2","_this$props$data$name","_this$props$data","_nextProps$data$name$","_nextProps$data","currentDataValue","nextDataValue","_this$props$name2","_jsxs","Box","display","alignItems","hidden","renderImageSide","TextField","mapTextFieldProps","CircularProgress","size","styled","fontSize","height","width","borderRadius","boxShadow","overflow","top","left","backgroundRepeat","backgroundSize","background","zIndex","justifyContent"],"mappings":"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"}
1
+ {"version":3,"file":"create.input.js","sources":["../../src/form/create.input.tsx"],"sourcesContent":["import React, { Component, ComponentType, FC } from 'react'\r\nimport { Box, CircularProgress, Collapse, IconButton, InputAdornment, styled, TextField, TextFieldProps } from '@mui/material'\r\nimport ContentPasteIcon from '@mui/icons-material/ContentPaste'\r\nimport { mergeObjects } from '../utils'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helpers'\r\nimport { ImageWithFallback, IImageWithFallbackPropsOwner, IRichTooltipPanelConfig, RichTooltip, HelpOutlinePulseIcon } from '../components'\r\n\r\nexport interface InputBaseImage<T> extends Partial<IImageWithFallbackPropsOwner> {\r\n srcGetter?: (value: any, model?: Partial<T>) => string\r\n element?: React.ComponentType<{ value: any; model?: Partial<T> }>\r\n mirror?: boolean\r\n}\r\n\r\nexport interface IInputSlots<T> {\r\n maxLength?: number\r\n textFieldProps?: TextFieldProps\r\n pastenable?: boolean\r\n imageLeft?: InputBaseImage<T>\r\n imageRight?: InputBaseImage<T>\r\n tooltip?: IRichTooltipPanelConfig\r\n}\r\n\r\nexport interface IInputProps<T> extends IFormInputBase<T, IInputSlots<T>> {}\r\n\r\nexport interface IInputState {\r\n value?: string\r\n}\r\n\r\nexport interface IInputParams<T> extends IInputSlots<T> {}\r\n\r\nconst CreateInput = function <T>(params?: IInputParams<T>): ComponentType<IInputProps<T>> {\r\n class InputBase extends Component<IInputProps<T>, IInputState> {\r\n private _cachedSlots: IInputSlots<T> = {}\r\n constructor(props: IInputProps<T>) {\r\n super(props)\r\n this._cachedSlots = this.mergeSlots(props.slots) ?? {}\r\n this.state = { value: this.defaulValue }\r\n }\r\n\r\n get slots() {\r\n return this._cachedSlots\r\n }\r\n\r\n get defaulValue(): string {\r\n const { data, name } = this.props\r\n return this.props.defaultValue ?? (!!data && !!name ? data[name]?.toString() : undefined)\r\n }\r\n\r\n componentDidUpdate(prevProps: IInputProps<T>) {\r\n if (prevProps.slots !== this.props.slots) {\r\n this._cachedSlots = this.mergeSlots(this.props.slots)\r\n }\r\n }\r\n\r\n shouldComponentUpdate(nextProps: Readonly<IInputProps<T>>): boolean {\r\n const { name, slots } = this.props\r\n if (!!name) {\r\n const currentDataValue = this.props.data?.[name]?.toString() ?? ''\r\n const nextDataValue = nextProps.data?.[name]?.toString() ?? ''\r\n if (currentDataValue !== nextDataValue) {\r\n this.setState({ value: nextDataValue })\r\n return false\r\n }\r\n }\r\n\r\n if (slots !== nextProps.slots) {\r\n return true\r\n }\r\n return true\r\n }\r\n\r\n mapTextFieldProps = (): TextFieldProps => {\r\n const errorMessage = getErrorMessage(this.props.messageErrors, this.props.name)\r\n const tfp: TextFieldProps = {\r\n fullWidth: true,\r\n variant: 'outlined',\r\n name: this.props.name?.toString(),\r\n error: errorMessage.error,\r\n helperText: errorMessage.message,\r\n disabled: this.props.disabled,\r\n onBlur: () => {\r\n if (!this.props.name) return\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n },\r\n label: this.getLabel(),\r\n placeholder: this.props.placeholder,\r\n InputLabelProps: !!this.state.value ? { shrink: true } : {},\r\n value: this.state.value ?? '',\r\n onChange: this.handleChange\r\n }\r\n if (!tfp.InputProps) tfp.InputProps = {}\r\n tfp.InputProps.endAdornment = (\r\n <InputAdornment position='end'>\r\n {this.slots.pastenable && (\r\n <IconButton onClick={this.handlePaste} edge='end'>\r\n <ContentPasteIcon />\r\n </IconButton>\r\n )}\r\n {this.slots.tooltip && (\r\n <RichTooltip panel={this.slots.tooltip}>\r\n <HelpOutlinePulseIcon fontSize='small' />\r\n </RichTooltip>\r\n )}\r\n </InputAdornment>\r\n )\r\n if (this.slots?.maxLength) tfp.inputProps = { ...tfp.inputProps, maxLength: this.slots.maxLength }\r\n return mergeObjects<TextFieldProps>({}, tfp, this.slots?.textFieldProps)\r\n }\r\n\r\n //#region Render\r\n render() {\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\r\n {!!this.props.disabled && <input hidden name={this.props.name?.toString()} defaultValue={this.defaulValue} />}\r\n {this.renderImageSide('left')}\r\n <TextField {...this.mapTextFieldProps()} />\r\n {this.renderImageSide('right')}\r\n </Box>\r\n )\r\n }\r\n\r\n renderImageSide = (side: 'left' | 'right') => {\r\n const image = side === 'left' ? this.slots.imageLeft : this.slots.imageRight\r\n if (!image) return <></>\r\n const { srcGetter, element, alt = 'input-image', fallbackSrc = '', debounceDelay = 700, ...imageOther } = image\r\n if (element) {\r\n const Element = element\r\n return (\r\n <WrapImage>\r\n <Element value={this.state.value} model={this.props.data} />\r\n </WrapImage>\r\n )\r\n }\r\n const src = srcGetter ? srcGetter(this.state.value, this.props.data) : imageOther.src ?? this.state.value\r\n const imageProps: IImageWithFallbackPropsOwner = { src, alt, fallbackSrc, debounceDelay }\r\n return (\r\n <Collapse sx={{ mx: '10px' }} in={!!src} unmountOnExit orientation='horizontal'>\r\n <WrapImage>\r\n <ImageWithFallback {...imageOther} {...imageProps} loading={<LoadingCircularProgress />} />\r\n </WrapImage>\r\n </Collapse>\r\n )\r\n }\r\n //#endregion\r\n\r\n private mergeSlots = (currentSlots?: IInputSlots<T>): IInputSlots<T> => {\r\n const base = mergeObjects<IInputSlots<T>>({}, params, currentSlots)\r\n const { imageLeft, imageRight } = base\r\n\r\n // mirror from left to right\r\n if (imageLeft?.mirror && !imageRight) {\r\n base.imageRight = { ...imageLeft }\r\n delete base.imageRight.mirror\r\n }\r\n // mirror from right to left\r\n else if (imageRight?.mirror && !imageLeft) {\r\n base.imageLeft = { ...imageRight }\r\n delete base.imageLeft.mirror\r\n }\r\n\r\n return base\r\n }\r\n\r\n getLabel = () => {\r\n if (!this.props.label) return\r\n if (!this.slots?.maxLength) return this.props.label\r\n return `${this.props.label} (${this.state.value?.length ?? 0}/${this.slots.maxLength})`\r\n }\r\n\r\n handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n this.setState({ value: event.target.value })\r\n }\r\n\r\n handlePaste = async () => {\r\n try {\r\n const clipboardText = await navigator.clipboard.readText()\r\n this.setState({ value: clipboardText })\r\n } catch (error) {\r\n console.error('Error clipboard:', error)\r\n }\r\n }\r\n }\r\n return InputBase\r\n}\r\n\r\nexport default CreateInput\r\n\r\n// export type InputTextType<T> = ReturnType<typeof CreateInputBase<T>>\r\n\r\nconst LoadingCircularProgress: FC = () => (\r\n <div>\r\n <CircularProgress size={24} />\r\n </div>\r\n)\r\n\r\nconst WrapImage = styled(Box)({\r\n fontSize: '1rem',\r\n height: 'var(--input-base-image-size, 54px)',\r\n width: 'var(--input-base-image-size, 54px)',\r\n position: 'relative',\r\n borderRadius: '8px',\r\n boxShadow: 'rgba(0, 0, 0, 0.16) 0px 1px 4px',\r\n overflow: 'hidden',\r\n '& > img': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n backgroundRepeat: 'no-repeat',\r\n height: '100%',\r\n width: '100%',\r\n backgroundSize: 'contain'\r\n },\r\n '& > div': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n height: '100%',\r\n width: '100%',\r\n background: '#fafafa',\r\n zIndex: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n }\r\n})\r\n"],"names":["CreateInput","params","InputBase","props","_this$mergeSlots","_this","_classCallCheck","_callSuper","_defineProperty","_this$props$name","_this$state$value","_this$slots","_this$slots2","errorMessage","getErrorMessage","messageErrors","name","tfp","fullWidth","variant","toString","error","helperText","message","disabled","onBlur","label","getLabel","placeholder","InputLabelProps","state","value","shrink","onChange","handleChange","InputProps","endAdornment","_jsxs","InputAdornment","position","children","slots","pastenable","_jsx","IconButton","onClick","handlePaste","edge","ContentPasteIcon","tooltip","RichTooltip","panel","HelpOutlinePulseIcon","fontSize","maxLength","inputProps","_objectSpread","mergeObjects","textFieldProps","side","_imageOther$src","image","imageLeft","imageRight","srcGetter","element","_image$alt","alt","_image$fallbackSrc","fallbackSrc","_image$debounceDelay","debounceDelay","imageOther","_objectWithoutProperties","_excluded","WrapImage","model","data","src","imageProps","Collapse","sx","mx","in","unmountOnExit","orientation","ImageWithFallback","loading","LoadingCircularProgress","currentSlots","base","mirror","_this$slots3","_this$state$value$len","_this$state$value2","concat","length","event","setState","target","_asyncToGenerator","_regenerator","m","_callee","clipboardText","_t","w","_context","n","p","navigator","clipboard","readText","v","console","a","_cachedSlots","mergeSlots","defaulValue","_inherits","Component","_createClass","key","get","this","_this$props$defaultVa","_data$name","_this$props","defaultValue","undefined","prevProps","nextProps","_this$props2","_this$props$data$name","_this$props$data","_nextProps$data$name$","_nextProps$data","currentDataValue","nextDataValue","_this$props$name2","Box","display","alignItems","hidden","renderImageSide","TextField","mapTextFieldProps","CircularProgress","size","styled","height","width","borderRadius","boxShadow","overflow","top","left","backgroundRepeat","backgroundSize","background","zIndex","justifyContent"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createClass as e,classCallCheck as t,defineProperty as r}from"../_virtual/_rollupPluginBabelHelpers.js";import i from"./validator.js";import a from"./modal-wrapper.js";import o from"./create.form-base.js";import s from"./create.input.file.js";import m from"./create.input.js";import p from"./create.date-picker.js";import c from"./create.text-editor.js";import l from"./create.date-expired.js";import f from"./create.form-comfirm.js";import h from"./create.select-simple.js";import u from"./create.select-with-api.js";import j from"./create.form-grid-layout.js";import d from"./create.input.image-file.js";import n from"./create.autocomplete.chips.js";import{FormBottomBarWrap as F}from"./create.form-grid-layout.units.js";import{createInputFileCsvLocalParser as v}from"./create.input-file.csv-local-parser.js";var C=new(e((function e(){t(this,e),r(this,"ModalWrap",a),r(this,"BottomBarWrap",F),r(this,"FormValidator",i),r(this,"validator",i.initial),r(this,"createFormBase",o),r(this,"createFormComfirm",f),r(this,"createFormGridLayout",j),r(this,"createDateExpired",l),r(this,"createDatePicker",p),r(this,"createAutocompleteChip",n),r(this,"createInputFileCsvLocalParser",v),r(this,"createInputFile",s),r(this,"createInputImageFile",d),r(this,"createInput",m),r(this,"createSelectSimple",h),r(this,"createSelectWithApi",u),r(this,"createTextEditor",c)})));export{C as default};
1
+ import{createClass as e,classCallCheck as t,defineProperty as r}from"../_virtual/_rollupPluginBabelHelpers.js";import i from"./validator.js";import o from"./modal-wrapper.js";import a from"./create.form-base.js";import s from"./create.input.file.js";import m from"./create.input.js";import c from"./create.date-picker.js";import p from"./create.text-editor.js";import{createColorPicker as l}from"./create.color-picker.js";import f from"./create.date-expired.js";import h from"./create.form-comfirm.js";import u from"./create.select-simple.js";import j from"./create.select-with-api.js";import d from"./create.form-grid-layout.js";import n from"./create.input.image-file.js";import C from"./create.autocomplete.chips.js";import{FormBottomBarWrap as F}from"./create.form-grid-layout.units.js";import{createInputFileCsvLocalParser as v}from"./create.input-file.csv-local-parser.js";var g=new(e((function e(){t(this,e),r(this,"ModalWrap",o),r(this,"BottomBarWrap",F),r(this,"FormValidator",i),r(this,"validator",i.initial),r(this,"createFormBase",a),r(this,"createFormComfirm",h),r(this,"createFormGridLayout",d),r(this,"createColorPicker",l),r(this,"createDateExpired",f),r(this,"createDatePicker",c),r(this,"createAutocompleteChip",C),r(this,"createInputFileCsvLocalParser",v),r(this,"createInputFile",s),r(this,"createInputImageFile",n),r(this,"createInput",m),r(this,"createSelectSimple",u),r(this,"createSelectWithApi",j),r(this,"createTextEditor",p)})));export{g as default};
2
2
  //# sourceMappingURL=dino-form.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dino-form.js","sources":["../../src/form/dino-form.tsx"],"sourcesContent":["import FormValidator from './validator'\r\nimport FormModalWrapper from './modal-wrapper'\r\nimport CreateFormBase from './create.form-base'\r\nimport CreateInputFile from './create.input.file'\r\nimport CreateInput from './create.input'\r\nimport CreateDatePicker from './create.date-picker'\r\nimport CreateTextEditor from './create.text-editor'\r\nimport CreateDateExpired from './create.date-expired'\r\nimport CreateFormComfirm from './create.form-comfirm'\r\nimport CreateSelectSimple from './create.select-simple'\r\nimport CreateSelectWithApi from './create.select-with-api'\r\nimport CreateFormGridLayout from './create.form-grid-layout'\r\nimport createInputImageFile from './create.input.image-file'\r\nimport CreateAutocompleteChip from './create.autocomplete.chips'\r\nimport { FormBottomBarWrap } from './create.form-grid-layout.units'\r\nimport { createInputFileCsvLocalParser } from './create.input-file.csv-local-parser'\r\n\r\nclass DinoFormBase {\r\n //#region Base\r\n ModalWrap = FormModalWrapper\r\n BottomBarWrap = FormBottomBarWrap\r\n FormValidator = FormValidator\r\n validator = FormValidator.initial\r\n createFormBase = CreateFormBase\r\n createFormComfirm = CreateFormComfirm\r\n createFormGridLayout = CreateFormGridLayout\r\n //#endregion\r\n\r\n //#region Inputs\r\n createDateExpired = CreateDateExpired\r\n createDatePicker = CreateDatePicker\r\n createAutocompleteChip = CreateAutocompleteChip\r\n createInputFileCsvLocalParser = createInputFileCsvLocalParser\r\n createInputFile = CreateInputFile\r\n createInputImageFile = createInputImageFile\r\n createInput = CreateInput\r\n createSelectSimple = CreateSelectSimple\r\n createSelectWithApi = CreateSelectWithApi\r\n createTextEditor = CreateTextEditor\r\n //#endregion\r\n}\r\n\r\nconst DinoForm = new DinoFormBase()\r\nexport default DinoForm\r\n"],"names":["DinoForm","_createClass","DinoFormBase","_classCallCheck","_defineProperty","FormModalWrapper","FormBottomBarWrap","FormValidator","this","initial","CreateFormBase","CreateFormComfirm","CreateFormGridLayout","CreateDateExpired","CreateDatePicker","CreateAutocompleteChip","createInputFileCsvLocalParser","CreateInputFile","createInputImageFile","CreateInput","CreateSelectSimple","CreateSelectWithApi","CreateTextEditor"],"mappings":"kzBAeoF,IA2B9EA,EAAW,IAzBCC,GAAA,SAAAC,IAAAC,OAAAD,GAChBE,mBACYC,GAAgBD,uBACZE,GAAiBF,uBACjBG,GAAaH,EAAAI,KAAA,YACjBD,EAAcE,SAAOL,wBAChBM,GAAcN,2BACXO,GAAiBP,8BACdQ,GAGvBR,2BACoBS,GAAiBT,0BAClBU,GAAgBV,gCACVW,GAAsBX,uCACfY,GAA6BZ,yBAC3Ca,GAAeb,8BACVc,GAAoBd,qBAC7Be,GAAWf,4BACJgB,GAAkBhB,6BACjBiB,GAAmBjB,0BACtBkB,EAAgB"}
1
+ {"version":3,"file":"dino-form.js","sources":["../../src/form/dino-form.tsx"],"sourcesContent":["import FormValidator from './validator'\r\nimport FormModalWrapper from './modal-wrapper'\r\nimport CreateFormBase from './create.form-base'\r\nimport CreateInputFile from './create.input.file'\r\nimport CreateInput from './create.input'\r\nimport CreateDatePicker from './create.date-picker'\r\nimport CreateTextEditor from './create.text-editor'\r\nimport createColorPicker from './create.color-picker'\r\nimport CreateDateExpired from './create.date-expired'\r\nimport CreateFormComfirm from './create.form-comfirm'\r\nimport CreateSelectSimple from './create.select-simple'\r\nimport CreateSelectWithApi from './create.select-with-api'\r\nimport CreateFormGridLayout from './create.form-grid-layout'\r\nimport createInputImageFile from './create.input.image-file'\r\nimport CreateAutocompleteChip from './create.autocomplete.chips'\r\nimport { FormBottomBarWrap } from './create.form-grid-layout.units'\r\nimport { createInputFileCsvLocalParser } from './create.input-file.csv-local-parser'\r\n\r\nclass DinoFormBase {\r\n //#region Base\r\n ModalWrap = FormModalWrapper\r\n BottomBarWrap = FormBottomBarWrap\r\n FormValidator = FormValidator\r\n validator = FormValidator.initial\r\n createFormBase = CreateFormBase\r\n createFormComfirm = CreateFormComfirm\r\n createFormGridLayout = CreateFormGridLayout\r\n //#endregion\r\n\r\n //#region Inputs\r\n createColorPicker = createColorPicker\r\n createDateExpired = CreateDateExpired\r\n createDatePicker = CreateDatePicker\r\n createAutocompleteChip = CreateAutocompleteChip\r\n createInputFileCsvLocalParser = createInputFileCsvLocalParser\r\n createInputFile = CreateInputFile\r\n createInputImageFile = createInputImageFile\r\n createInput = CreateInput\r\n createSelectSimple = CreateSelectSimple\r\n createSelectWithApi = CreateSelectWithApi\r\n createTextEditor = CreateTextEditor\r\n //#endregion\r\n}\r\n\r\nconst DinoForm = new DinoFormBase()\r\nexport default DinoForm\r\n"],"names":["DinoForm","_createClass","DinoFormBase","_classCallCheck","_defineProperty","FormModalWrapper","FormBottomBarWrap","FormValidator","this","initial","CreateFormBase","CreateFormComfirm","CreateFormGridLayout","createColorPicker","CreateDateExpired","CreateDatePicker","CreateAutocompleteChip","createInputFileCsvLocalParser","CreateInputFile","createInputImageFile","CreateInput","CreateSelectSimple","CreateSelectWithApi","CreateTextEditor"],"mappings":"+2BAgBoF,IA4B9EA,EAAW,IA1BCC,GAAA,SAAAC,IAAAC,OAAAD,GAChBE,mBACYC,GAAgBD,uBACZE,GAAiBF,uBACjBG,GAAaH,EAAAI,KAAA,YACjBD,EAAcE,SAAOL,wBAChBM,GAAcN,2BACXO,GAAiBP,8BACdQ,GAGvBR,2BACoBS,GAAiBT,2BACjBU,GAAiBV,0BAClBW,GAAgBX,gCACVY,GAAsBZ,uCACfa,GAA6Bb,yBAC3Cc,GAAed,8BACVe,GAAoBf,qBAC7BgB,GAAWhB,4BACJiB,GAAkBjB,6BACjBkB,GAAmBlB,0BACtBmB,EAAgB"}
@@ -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 p}from"@mui/material";import{DataGrid as c}from"@mui/x-data-grid";import{mergeObjects as m}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{TableBaseContext as g}from"./context.js";import{customFilterOperators as h}from"./custom.filter-operators.js";import f,{dinoTableClasses as v}from"./helpers.js";import b from"./toolbar-pannel.js";import{GlobalModal as y,mapGlobalModalContext as C}from"../api-context/global-modal.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,"setTableQueryParams",(function(e){a.tableQueryParams=m({},a.tableQueryParams,e)})),r(a,"renderWrapContext",(function(e){return s(y,{children:C((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:f.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:f.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:f.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.props.onChange&&a.props.onChange(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(b,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||f.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(c,o({loading:this.props.loading},this.getDataGridProps()))}))}}])}()}var S=u((function(r){var t=r.children,a=e(r,P);return s(p,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(v.whiteSpacePre," .MuiDataGrid-cellContent"),{whiteSpace:"pre"}));export{M as CreateTable,M as default};
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 p}from"@mui/material";import{DataGrid as c}from"@mui/x-data-grid";import{mergeObjects as m}from"../utils/helpers.js";import"../utils/dayjs-config.js";import"../utils/query-param.js";import{TableBaseContext as g}from"./context.js";import{customFilterOperators as h}from"./custom.filter-operators.js";import f,{dinoTableClasses as v}from"./helpers.js";import b from"./toolbar-pannel.js";import{GlobalModal as y,mapGlobalModalContext as C}from"../api-context/global-modal.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,"setTableQueryParams",(function(e){a.tableQueryParams=m({},a.tableQueryParams,e)})),r(a,"renderWrapContext",(function(e){return s(y,{children:C((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:f.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:f.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:f.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.props.onChange&&a.props.onChange(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(b,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||f.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(c,o({loading:this.props.loading},this.getDataGridProps()))}))}}])}()}var S=u((function(r){var t=r.children,a=e(r,P);return s(p,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,overflow:"hidden"}},"& .MuiDataGrid-cell.".concat(v.whiteSpacePre," .MuiDataGrid-cellContent"),{whiteSpace:"pre"}));export{M as CreateTable,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 loading?: boolean\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\nexport function 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 loading={this.props.loading} {...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 this.props.onChange && this.props.onChange(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","onChange","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":"myBA2CM,SAAUA,EAAyCC,GAuKvD,kBArJE,SAAAC,EAAYC,GAAqB,IAAAC,EAKT,OALSC,OAAAH,GAC/BE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAkBQ,uBAAA,SAACI,GACrBJ,EAAKK,iBAAmBC,EAAa,CAAE,EAAEN,EAAKK,iBAAkBD,MACjED,EAAAH,EAqBmB,qBAAA,SAACO,GAAyB,OAC5CC,EAACC,EAAW,CAAAF,SACTG,GAAsB,SAACC,GAAO,OAC7BH,EAACI,EAAiBC,UAAST,MAAO,CAAEU,UAAWH,EAAQI,KAAMC,WAAYL,EAAQM,OAAUV,SAAAA,GAC5F,SAEJJ,EAAAH,EAAA,oBAEkB,WAAuB,IAAAkB,EAAAC,EAAAC,EAAAC,EAClCC,EAActB,EAAKsB,YACnBC,EAAwB,CAC5BC,SAAU3B,EAAO2B,SACjBC,QAASzB,EAAKyB,QACdC,aAAIR,UAAAC,EAAEnB,EAAKD,MAAM4B,YAAI,IAAAR,OAAA,EAAfA,EAAiBS,aAAK,IAAAV,EAAAA,EAAI,GAChCW,mBAAmB,EACnBC,YAAY,EACZC,gBAAOX,UAAAC,EAAErB,EAAKD,MAAMiC,aAAK,IAAAX,OAAA,EAAhBA,EAAkBU,eAAO,IAAAX,EAAAA,EAAI,WACtCa,aAAcC,EAAYC,gBAAgBnC,EAAKD,MAAMqC,MAAO,CAC1DX,QAAS,CAAEY,sBAAuBxC,EAAOwC,yBAE3CC,iBAAkB,IAClBC,GAAI,CAAEC,OAAQ,GACdR,MAAO,CAAES,QAASnB,EAAYmB,SAC9BC,kBAAmB1C,EAAK2C,aACxBC,0BAA2B5C,EAAK6C,0BAElC,GAA2B,WAAvBhD,EAAOiD,YAA0B,CAAA,IAAAC,EAAAC,EAC7BC,EAAuC,CAC3CC,WAAY,SACZC,YAAa,SACbC,eAAgB,SAChBC,wBAAyBrD,EAAKqD,wBAC9BC,oBAAqBtD,EAAKsD,oBAC1BC,kBAAmBvD,EAAKuD,kBACxBC,iBAAQT,UAAAC,EAAEhD,EAAKD,MAAM4B,YAAI,IAAAqB,OAAA,EAAfA,EAAiBS,gBAAQ,IAAAV,EAAAA,EAAI,EACvCW,gBAAiB1D,EAAKK,iBAAiByB,WACvC6B,YAAa3D,EAAKK,iBAAiBuD,OACnCC,UAAW3B,EAAY4B,aAAa9D,EAAKK,iBAAiB0D,MAC1DC,QAAShE,EAAKK,iBAAiB2D,SAEjCC,OAAOC,OAAO3C,EAAK0B,EACpB,CACD,OAAO3C,EAAaiB,EAAKvB,EAAKsB,YAAY6C,kBAC3ChE,EAAAH,EAAA,kBAEgB,WACf,IAzGqBoE,EACjB3C,EAwGI4C,EAAcrE,EAAKsB,YAAnB+C,UACFC,EAAwB,GAa9B,OAZMD,GACJC,EAAKC,KAAIC,EAAA,CACPC,MAAO,UACPC,SAAU,IACVC,YAAa,QACbC,MAAO,QACPC,YAAY,EACZC,UAAU,EACVC,WAAY,SAAC3E,GAAK,OAAKI,EAAC6D,EAAS,CAACjE,MAAOA,EAAM4E,KAAO,GACnDnF,EAAOoF,YApHOb,EAuHEE,EAtHnB7C,EAAUwC,OAAOiB,KAAKrF,EAAO4B,SAAS0D,KAAgB,SAACC,GAC3D,IAAM7D,EAAGiD,EAAA,CAAKC,MAAOW,GAAQvF,EAAO4B,QAAQ2D,IAE5C,OADA7D,EAAI8D,gBAAkBxF,EAAOwF,gBAAkBxF,EAAOwF,gBAAgB9D,GAAO+D,EAAsB/D,GAC5FA,CACT,IAEM6C,GAAiBA,EAAcmB,OAAS,GAAG9D,EAAQ8C,KAAIiB,MAAZ/D,EAAOgE,EAASrB,IAC1D3C,KAgHNtB,EAAAH,EAAA,2BAEyB,SAAC0F,EAA4BC,GACrD3F,EAAK4F,oBAAoB,CAAE9D,WAAY4D,EAAOG,OAAQ,eACtD7F,EAAK8F,kBACN3F,EAAAH,EAAA,uBAEqB,SAAC0F,EAAwBC,GAA0C,IAAAI,EAC/EjE,EAAe9B,EAAKK,iBAApByB,WACR9B,EAAK4F,oBAAoB,CACvBhC,OAAQ8B,EACR5D,WAAY,CAAEkE,KAAM,EAAGC,SAA8B,QAAtBF,EAAEjE,aAAU,EAAVA,EAAYmE,gBAAQ,IAAAF,EAAAA,EAAI,IACzDF,OAAQ3D,EAAYgE,iBAAiBR,KAEvC1F,EAAK8F,kBACN3F,EAAAH,EAAA,qBAEmB,SAAC0F,EAAsBC,GACzC,IAEyCQ,EAAAC,EACiCC,EAAAC,EAEjEC,EALLC,EAAYd,EACR3B,EAAS/D,EAAKK,iBAAd0D,KACFA,SAAAA,EAAMwB,SAAWiB,EAAUjB,SAE7BiB,GADEzC,iBAAIoC,EAAJpC,EAAO,UAAE,IAAAoC,OAAA,EAATA,EAAW1B,kBAAK2B,EAAKpG,EAAKyG,wBAAwB1C,YAAI,IAAAqC,GAAKA,QAALA,EAAjCA,EAAoC,cAAEA,SAAtCA,EAAwC3B,OACnD,CAAC,CAAEA,MAAc,QAAT4B,EAAEtC,EAAK,UAAE,IAAAsC,OAAA,EAAPA,EAAS5B,MAAOV,KAAwB,UAAX,QAAPuC,EAAAvC,EAAK,UAAE,IAAAuC,OAAA,EAAPA,EAASvC,MAAkB,MAAQ,SAElCwC,QAApCA,EAAGvG,EAAKyG,wBAAwB1C,YAAIwC,IAAAA,EAAAA,EAAI,IAGrDvG,EAAK4F,oBAAoB,CAAE7B,KAAMyC,EAAWX,OAAQ,SACpD7F,EAAK8F,kBACN3F,EAAAH,EAAA,gBAEc,WACbA,EAAKD,MAAM2G,UAAY1G,EAAKD,MAAM2G,SAAS1G,EAAKK,qBACjDF,EAAAH,EAAA,4BAE0B,SAACI,EAA8BuF,GACpD3F,EAAKsB,YAAYqF,YAAcvG,EAAMmF,OAASvF,EAAKsB,YAAYqF,WACjE3G,EAAK2C,aAAevC,EAAMwG,MAAM,EAAG5G,EAAKsB,YAAYqF,YAEpD3G,EAAK2C,aAAevC,EAEtBJ,EAAKD,MAAM8G,sBAAwB7G,EAAKD,MAAM8G,qBAAqB7G,EAAK2C,aAAcgD,GACtF3F,EAAK8G,iBA/IL9G,EAAKyB,QAAUzB,EAAK+G,iBACpB/G,EAAKK,iBAAgBmE,KAAQzE,EAAMqC,OACnCpC,EAAKyG,wBAA0BzG,EAAKK,iBACpCL,EAAK2C,aAAe,GAAE3C,CACxB,CAAC,OAAAgH,EAAAlH,EAZiBmH,GAYjBC,EAAApH,EAAA,CAAA,CAAAsF,IAAA,cAAA+B,IAED,WAAe,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACPC,EAAqBrH,EAAa,CAAA,EAAIT,aAAAA,EAAAA,EAAQ+H,aAA8BR,QAAlBA,EAAES,KAAK9H,MAAMiC,aAAXoF,IAAgBA,OAAhBA,EAAAA,EAAkBQ,cACpF,MAAO,CACLnF,gBAAO4E,UAAAC,EAAEO,KAAK9H,MAAMiC,aAAK,IAAAsF,OAAA,EAAhBA,EAAkB7E,eAAO,IAAA4E,EAAAA,EAAK,WAAA,OAAM7G,EAACsH,EAAatD,EAAKmD,CAAAA,EAAAA,GAAuB,EACvFtD,UAA2BkD,QAAlBA,EAAEM,KAAK9H,MAAMiC,aAAXuF,IAAgBA,OAAhBA,EAAAA,EAAkBtC,UAC7B5C,sBAAuBxC,EAAOwC,sBAC9BsE,WAA0Ca,QAAhCA,EAAkB,QAAlBC,EAAEI,KAAK9H,MAAMiC,aAAXyF,IAAgBA,OAAhBA,EAAAA,EAAkBM,wBAAYP,EAAAA,EAAI3H,EAAOkI,aACrD5D,cAAe7D,EAAa,CAAE,EAAET,EAAOsE,sBAAauD,EAAEG,KAAK9H,MAAMiC,aAAK,IAAA0F,OAAA,EAAhBA,EAAkBvD,eAE5E,GAAC,CAAAiB,IAAA,wBAAAhF,MAMD,SAAsB4H,GACpB,MAA2B,WAAvBnI,EAAOiD,aAA6BZ,EAAY+F,sBAAsBD,EAAU5F,MAAOyF,KAAK9H,MAAMqC,OAGpE,WAAvBvC,EAAOiD,aAFhB+E,KAAKjC,oBAAmC,QAAhBsC,EAACF,EAAU5F,aAAK8F,IAAAA,EAAAA,EAAI,KACrC,GAFqG,IAAAA,CAQhH,GAAC,CAAA9C,IAAA,SAAAhF,MAED,WACE,OAAOyH,KAAKM,kBACV3H,EAAC4H,EACC,CAAA7H,SAAAC,EAAC6H,EAAQ7D,EAAA,CAACR,QAAS6D,KAAK9H,MAAMiE,SAAa6D,KAAKS,uBAGtD,IAAC,GA8GL,CAIA,IAAMF,EAAOG,GAAO,SAAAC,GAAA,IAAGjI,EAAQiI,EAARjI,SAAakI,EAACC,EAAAF,EAAAG,GAAA,OACnCnI,EAACoI,EAAGpE,EAAAA,KAAKiE,GAAC,GAAA,CAAAlI,SACRC,EAAM,MAAA,CAAAD,SAAAA,MACF,GAHKgI,CAIXpI,EAAA,CACA0I,KAAM,EACNC,SAAU,WACV,UAAW,CACTA,SAAU,WACVC,IAAK,EACLC,KAAM,EACNC,MAAO,OACPC,OAAQ,OACRC,UAAW,QAEb,sBAAuB,CACrB,6BAA8B,IAC/B,uBAAAC,OACuBC,EAAiBC,cAA2C,6BAAA,CAClFC,WAAY"}
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 loading?: boolean\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\nexport function 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 loading={this.props.loading} {...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 this.props.onChange && this.props.onChange(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 overflow: 'hidden'\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","onChange","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","overflow","concat","dinoTableClasses","whiteSpacePre","whiteSpace"],"mappings":"myBA2CM,SAAUA,EAAyCC,GAuKvD,kBArJE,SAAAC,EAAYC,GAAqB,IAAAC,EAKT,OALSC,OAAAH,GAC/BE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAkBQ,uBAAA,SAACI,GACrBJ,EAAKK,iBAAmBC,EAAa,CAAE,EAAEN,EAAKK,iBAAkBD,MACjED,EAAAH,EAqBmB,qBAAA,SAACO,GAAyB,OAC5CC,EAACC,EAAW,CAAAF,SACTG,GAAsB,SAACC,GAAO,OAC7BH,EAACI,EAAiBC,UAAST,MAAO,CAAEU,UAAWH,EAAQI,KAAMC,WAAYL,EAAQM,OAAUV,SAAAA,GAC5F,SAEJJ,EAAAH,EAAA,oBAEkB,WAAuB,IAAAkB,EAAAC,EAAAC,EAAAC,EAClCC,EAActB,EAAKsB,YACnBC,EAAwB,CAC5BC,SAAU3B,EAAO2B,SACjBC,QAASzB,EAAKyB,QACdC,aAAIR,UAAAC,EAAEnB,EAAKD,MAAM4B,YAAI,IAAAR,OAAA,EAAfA,EAAiBS,aAAK,IAAAV,EAAAA,EAAI,GAChCW,mBAAmB,EACnBC,YAAY,EACZC,gBAAOX,UAAAC,EAAErB,EAAKD,MAAMiC,aAAK,IAAAX,OAAA,EAAhBA,EAAkBU,eAAO,IAAAX,EAAAA,EAAI,WACtCa,aAAcC,EAAYC,gBAAgBnC,EAAKD,MAAMqC,MAAO,CAC1DX,QAAS,CAAEY,sBAAuBxC,EAAOwC,yBAE3CC,iBAAkB,IAClBC,GAAI,CAAEC,OAAQ,GACdR,MAAO,CAAES,QAASnB,EAAYmB,SAC9BC,kBAAmB1C,EAAK2C,aACxBC,0BAA2B5C,EAAK6C,0BAElC,GAA2B,WAAvBhD,EAAOiD,YAA0B,CAAA,IAAAC,EAAAC,EAC7BC,EAAuC,CAC3CC,WAAY,SACZC,YAAa,SACbC,eAAgB,SAChBC,wBAAyBrD,EAAKqD,wBAC9BC,oBAAqBtD,EAAKsD,oBAC1BC,kBAAmBvD,EAAKuD,kBACxBC,iBAAQT,UAAAC,EAAEhD,EAAKD,MAAM4B,YAAI,IAAAqB,OAAA,EAAfA,EAAiBS,gBAAQ,IAAAV,EAAAA,EAAI,EACvCW,gBAAiB1D,EAAKK,iBAAiByB,WACvC6B,YAAa3D,EAAKK,iBAAiBuD,OACnCC,UAAW3B,EAAY4B,aAAa9D,EAAKK,iBAAiB0D,MAC1DC,QAAShE,EAAKK,iBAAiB2D,SAEjCC,OAAOC,OAAO3C,EAAK0B,EACpB,CACD,OAAO3C,EAAaiB,EAAKvB,EAAKsB,YAAY6C,kBAC3ChE,EAAAH,EAAA,kBAEgB,WACf,IAzGqBoE,EACjB3C,EAwGI4C,EAAcrE,EAAKsB,YAAnB+C,UACFC,EAAwB,GAa9B,OAZMD,GACJC,EAAKC,KAAIC,EAAA,CACPC,MAAO,UACPC,SAAU,IACVC,YAAa,QACbC,MAAO,QACPC,YAAY,EACZC,UAAU,EACVC,WAAY,SAAC3E,GAAK,OAAKI,EAAC6D,EAAS,CAACjE,MAAOA,EAAM4E,KAAO,GACnDnF,EAAOoF,YApHOb,EAuHEE,EAtHnB7C,EAAUwC,OAAOiB,KAAKrF,EAAO4B,SAAS0D,KAAgB,SAACC,GAC3D,IAAM7D,EAAGiD,EAAA,CAAKC,MAAOW,GAAQvF,EAAO4B,QAAQ2D,IAE5C,OADA7D,EAAI8D,gBAAkBxF,EAAOwF,gBAAkBxF,EAAOwF,gBAAgB9D,GAAO+D,EAAsB/D,GAC5FA,CACT,IAEM6C,GAAiBA,EAAcmB,OAAS,GAAG9D,EAAQ8C,KAAIiB,MAAZ/D,EAAOgE,EAASrB,IAC1D3C,KAgHNtB,EAAAH,EAAA,2BAEyB,SAAC0F,EAA4BC,GACrD3F,EAAK4F,oBAAoB,CAAE9D,WAAY4D,EAAOG,OAAQ,eACtD7F,EAAK8F,kBACN3F,EAAAH,EAAA,uBAEqB,SAAC0F,EAAwBC,GAA0C,IAAAI,EAC/EjE,EAAe9B,EAAKK,iBAApByB,WACR9B,EAAK4F,oBAAoB,CACvBhC,OAAQ8B,EACR5D,WAAY,CAAEkE,KAAM,EAAGC,SAA8B,QAAtBF,EAAEjE,aAAU,EAAVA,EAAYmE,gBAAQ,IAAAF,EAAAA,EAAI,IACzDF,OAAQ3D,EAAYgE,iBAAiBR,KAEvC1F,EAAK8F,kBACN3F,EAAAH,EAAA,qBAEmB,SAAC0F,EAAsBC,GACzC,IAEyCQ,EAAAC,EACiCC,EAAAC,EAEjEC,EALLC,EAAYd,EACR3B,EAAS/D,EAAKK,iBAAd0D,KACFA,SAAAA,EAAMwB,SAAWiB,EAAUjB,SAE7BiB,GADEzC,iBAAIoC,EAAJpC,EAAO,UAAE,IAAAoC,OAAA,EAATA,EAAW1B,kBAAK2B,EAAKpG,EAAKyG,wBAAwB1C,YAAI,IAAAqC,GAAKA,QAALA,EAAjCA,EAAoC,cAAEA,SAAtCA,EAAwC3B,OACnD,CAAC,CAAEA,MAAc,QAAT4B,EAAEtC,EAAK,UAAE,IAAAsC,OAAA,EAAPA,EAAS5B,MAAOV,KAAwB,UAAX,QAAPuC,EAAAvC,EAAK,UAAE,IAAAuC,OAAA,EAAPA,EAASvC,MAAkB,MAAQ,SAElCwC,QAApCA,EAAGvG,EAAKyG,wBAAwB1C,YAAIwC,IAAAA,EAAAA,EAAI,IAGrDvG,EAAK4F,oBAAoB,CAAE7B,KAAMyC,EAAWX,OAAQ,SACpD7F,EAAK8F,kBACN3F,EAAAH,EAAA,gBAEc,WACbA,EAAKD,MAAM2G,UAAY1G,EAAKD,MAAM2G,SAAS1G,EAAKK,qBACjDF,EAAAH,EAAA,4BAE0B,SAACI,EAA8BuF,GACpD3F,EAAKsB,YAAYqF,YAAcvG,EAAMmF,OAASvF,EAAKsB,YAAYqF,WACjE3G,EAAK2C,aAAevC,EAAMwG,MAAM,EAAG5G,EAAKsB,YAAYqF,YAEpD3G,EAAK2C,aAAevC,EAEtBJ,EAAKD,MAAM8G,sBAAwB7G,EAAKD,MAAM8G,qBAAqB7G,EAAK2C,aAAcgD,GACtF3F,EAAK8G,iBA/IL9G,EAAKyB,QAAUzB,EAAK+G,iBACpB/G,EAAKK,iBAAgBmE,KAAQzE,EAAMqC,OACnCpC,EAAKyG,wBAA0BzG,EAAKK,iBACpCL,EAAK2C,aAAe,GAAE3C,CACxB,CAAC,OAAAgH,EAAAlH,EAZiBmH,GAYjBC,EAAApH,EAAA,CAAA,CAAAsF,IAAA,cAAA+B,IAED,WAAe,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACPC,EAAqBrH,EAAa,CAAA,EAAIT,aAAAA,EAAAA,EAAQ+H,aAA8BR,QAAlBA,EAAES,KAAK9H,MAAMiC,aAAXoF,IAAgBA,OAAhBA,EAAAA,EAAkBQ,cACpF,MAAO,CACLnF,gBAAO4E,UAAAC,EAAEO,KAAK9H,MAAMiC,aAAK,IAAAsF,OAAA,EAAhBA,EAAkB7E,eAAO,IAAA4E,EAAAA,EAAK,WAAA,OAAM7G,EAACsH,EAAatD,EAAKmD,CAAAA,EAAAA,GAAuB,EACvFtD,UAA2BkD,QAAlBA,EAAEM,KAAK9H,MAAMiC,aAAXuF,IAAgBA,OAAhBA,EAAAA,EAAkBtC,UAC7B5C,sBAAuBxC,EAAOwC,sBAC9BsE,WAA0Ca,QAAhCA,EAAkB,QAAlBC,EAAEI,KAAK9H,MAAMiC,aAAXyF,IAAgBA,OAAhBA,EAAAA,EAAkBM,wBAAYP,EAAAA,EAAI3H,EAAOkI,aACrD5D,cAAe7D,EAAa,CAAE,EAAET,EAAOsE,sBAAauD,EAAEG,KAAK9H,MAAMiC,aAAK,IAAA0F,OAAA,EAAhBA,EAAkBvD,eAE5E,GAAC,CAAAiB,IAAA,wBAAAhF,MAMD,SAAsB4H,GACpB,MAA2B,WAAvBnI,EAAOiD,aAA6BZ,EAAY+F,sBAAsBD,EAAU5F,MAAOyF,KAAK9H,MAAMqC,OAGpE,WAAvBvC,EAAOiD,aAFhB+E,KAAKjC,oBAAmC,QAAhBsC,EAACF,EAAU5F,aAAK8F,IAAAA,EAAAA,EAAI,KACrC,GAFqG,IAAAA,CAQhH,GAAC,CAAA9C,IAAA,SAAAhF,MAED,WACE,OAAOyH,KAAKM,kBACV3H,EAAC4H,EACC,CAAA7H,SAAAC,EAAC6H,EAAQ7D,EAAA,CAACR,QAAS6D,KAAK9H,MAAMiE,SAAa6D,KAAKS,uBAGtD,IAAC,GA8GL,CAIA,IAAMF,EAAOG,GAAO,SAAAC,GAAA,IAAGjI,EAAQiI,EAARjI,SAAakI,EAACC,EAAAF,EAAAG,GAAA,OACnCnI,EAACoI,EAAGpE,EAAAA,KAAKiE,GAAC,GAAA,CAAAlI,SACRC,EAAM,MAAA,CAAAD,SAAAA,MACF,GAHKgI,CAIXpI,EAAA,CACA0I,KAAM,EACNC,SAAU,WACV,UAAW,CACTA,SAAU,WACVC,IAAK,EACLC,KAAM,EACNC,MAAO,OACPC,OAAQ,OACRC,UAAW,QAEb,sBAAuB,CACrB,6BAA8B,EAC9BC,SAAU,WACX,uBAAAC,OACuBC,EAAiBC,cAA2C,6BAAA,CAClFC,WAAY"}
@@ -0,0 +1,38 @@
1
+ import { ChangeEventHandler } from 'react';
2
+ import { IFormInputBase } from './types';
3
+ export interface IColorPickerProps<T> extends IFormInputBase<T> {
4
+ }
5
+ export interface IColorPickerState {
6
+ value: string;
7
+ }
8
+ export declare function createColorPicker<T>(): {
9
+ new (props: IColorPickerProps<T>): {
10
+ shouldComponentUpdate(nextProps: Readonly<IColorPickerProps<T>>): boolean;
11
+ render(): import("react/jsx-runtime").JSX.Element;
12
+ getDefaultValue(currentProps: IColorPickerProps<T>): string;
13
+ handleColorChange: ChangeEventHandler<HTMLInputElement>;
14
+ handleInputChange: ChangeEventHandler<HTMLInputElement>;
15
+ handleBlur: () => void;
16
+ context: unknown;
17
+ setState<K extends "value">(state: IColorPickerState | ((prevState: Readonly<IColorPickerState>, props: Readonly<IColorPickerProps<T>>) => IColorPickerState | Pick<IColorPickerState, K> | null) | Pick<IColorPickerState, K> | null, callback?: (() => void) | undefined): void;
18
+ forceUpdate(callback?: (() => void) | undefined): void;
19
+ readonly props: Readonly<IColorPickerProps<T>>;
20
+ state: Readonly<IColorPickerState>;
21
+ refs: {
22
+ [key: string]: import("react").ReactInstance;
23
+ };
24
+ componentDidMount?(): void;
25
+ componentWillUnmount?(): void;
26
+ componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
27
+ getSnapshotBeforeUpdate?(prevProps: Readonly<IColorPickerProps<T>>, prevState: Readonly<IColorPickerState>): any;
28
+ componentDidUpdate?(prevProps: Readonly<IColorPickerProps<T>>, prevState: Readonly<IColorPickerState>, snapshot?: any): void;
29
+ componentWillMount?(): void;
30
+ UNSAFE_componentWillMount?(): void;
31
+ componentWillReceiveProps?(nextProps: Readonly<IColorPickerProps<T>>, nextContext: any): void;
32
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<IColorPickerProps<T>>, nextContext: any): void;
33
+ componentWillUpdate?(nextProps: Readonly<IColorPickerProps<T>>, nextState: Readonly<IColorPickerState>, nextContext: any): void;
34
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<IColorPickerProps<T>>, nextState: Readonly<IColorPickerState>, nextContext: any): void;
35
+ };
36
+ contextType?: import("react").Context<any> | undefined;
37
+ };
38
+ export default createColorPicker;
@@ -12,14 +12,16 @@ export interface IFormGridLayoutConfig<T> {
12
12
  inputElement?: React.ComponentType<IFormInputBase<T>>;
13
13
  }
14
14
  export type IPreSubmitEvent<T> = (value: Partial<T>, oldValue?: T) => Partial<T>;
15
- export interface IFormGridLayoutSlots<T> {
15
+ export interface IFormGridLayoutMergedConfigs<T> {
16
+ hiddenFields?: Partial<Record<keyof T, boolean>>;
17
+ getHiddenFields?: (state: Partial<T>, model?: Partial<T>) => Partial<Record<keyof T, boolean>>;
18
+ disabledFields?: Partial<Record<keyof T, boolean>>;
19
+ }
20
+ export interface IFormGridLayoutSlots<T> extends IFormGridLayoutMergedConfigs<T> {
16
21
  action?: React.ComponentType<IFormBase<T>>;
17
22
  actionBefore?: JSX.Element;
18
23
  contentBefore?: JSX.Element;
19
24
  contentAfter?: JSX.Element;
20
- hiddenFields?: Partial<Record<keyof T, boolean>>;
21
- getHiddenFields?: (value: Partial<T>) => Partial<Record<keyof T, boolean>>;
22
- disabledFields?: Partial<Record<keyof T, boolean>>;
23
25
  closeState?: {
24
26
  Success?: boolean;
25
27
  Fail?: boolean;
@@ -1,7 +1,7 @@
1
1
  import React, { ComponentType } from 'react';
2
2
  import { TextFieldProps } from '@mui/material';
3
3
  import { IFormInputBase } from './types';
4
- import { IImageWithFallbackPropsOwner } from '../components';
4
+ import { IImageWithFallbackPropsOwner, IRichTooltipPanelConfig } from '../components';
5
5
  export interface InputBaseImage<T> extends Partial<IImageWithFallbackPropsOwner> {
6
6
  srcGetter?: (value: any, model?: Partial<T>) => string;
7
7
  element?: React.ComponentType<{
@@ -16,6 +16,7 @@ export interface IInputSlots<T> {
16
16
  pastenable?: boolean;
17
17
  imageLeft?: InputBaseImage<T>;
18
18
  imageRight?: InputBaseImage<T>;
19
+ tooltip?: IRichTooltipPanelConfig;
19
20
  }
20
21
  export interface IInputProps<T> extends IFormInputBase<T, IInputSlots<T>> {
21
22
  }
@@ -2,6 +2,7 @@
2
2
  import FormValidator from './validator';
3
3
  import CreateInputFile from './create.input.file';
4
4
  import CreateTextEditor from './create.text-editor';
5
+ import createColorPicker from './create.color-picker';
5
6
  import CreateDateExpired from './create.date-expired';
6
7
  import CreateSelectSimple from './create.select-simple';
7
8
  import createInputImageFile from './create.input.image-file';
@@ -17,6 +18,7 @@ declare class DinoFormBase {
17
18
  createFormBase: <T>(params?: import("./create.form-base").IFormBaseParams<T> | undefined) => import("./create.form-base").IFormBaseResult<T>;
18
19
  createFormComfirm: <T = any>(param?: import("./create.form-comfirm").IFormComfirmParam<T> | undefined) => import("react").ComponentType<import("react").PropsWithChildren<import("./create.form-comfirm").IFormComfirmProps<T>>>;
19
20
  createFormGridLayout: <T>(params: import("./create.form-grid-layout").IFormGridLayoutParams<T>) => import("react").ComponentType<import("./create.form-grid-layout").IFormGridLayoutProps<T>>;
21
+ createColorPicker: typeof createColorPicker;
20
22
  createDateExpired: typeof CreateDateExpired;
21
23
  createDatePicker: <T extends Object>(params?: import("./create.date-picker").IDatePickerSlots | undefined) => import("react").ComponentType<import("./create.date-picker").IDatePickerProps<T>>;
22
24
  createAutocompleteChip: typeof CreateAutocompleteChip;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-core",
3
- "version": "2.1.7",
3
+ "version": "2.1.9",
4
4
  "description": "Dinocollab core - libraries for building collaborative applications with React 18",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",