dinocollab-core 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -487
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/dist/api-context/alert-global.js +1 -165
- package/dist/api-context/alert-global.js.map +1 -1
- package/dist/api-context/drawer-global.js +1 -111
- package/dist/api-context/drawer-global.js.map +1 -1
- package/dist/api-context/global-modal.js +1 -94
- package/dist/api-context/global-modal.js.map +1 -1
- package/dist/api-context/popover-global.js +1 -109
- package/dist/api-context/popover-global.js.map +1 -1
- package/dist/api-context/popover.js +1 -93
- package/dist/api-context/popover.js.map +1 -1
- package/dist/api-context/ui.units.js +1 -22
- package/dist/api-context/ui.units.js.map +1 -1
- package/dist/components/breadcrumbs.js +1 -64
- package/dist/components/breadcrumbs.js.map +1 -1
- package/dist/components/copy-to-clipboard.js +1 -111
- package/dist/components/copy-to-clipboard.js.map +1 -1
- package/dist/components/help-tooltip.js +1 -103
- package/dist/components/help-tooltip.js.map +1 -1
- package/dist/components/image-with-fallback.js +1 -50
- package/dist/components/image-with-fallback.js.map +1 -1
- package/dist/components/text-editor.js +1 -117
- package/dist/components/text-editor.js.map +1 -1
- package/dist/components/text-editor.preview.js +1 -26
- package/dist/components/text-editor.preview.js.map +1 -1
- package/dist/form/create.autocomplete.chips.js +1 -227
- package/dist/form/create.autocomplete.chips.js.map +1 -1
- package/dist/form/create.date-expired.js +1 -210
- package/dist/form/create.date-expired.js.map +1 -1
- package/dist/form/create.date-picker.js +1 -127
- package/dist/form/create.date-picker.js.map +1 -1
- package/dist/form/create.form-base.js +1 -140
- package/dist/form/create.form-base.js.map +1 -1
- package/dist/form/create.form-comfirm.js +1 -130
- package/dist/form/create.form-comfirm.js.map +1 -1
- package/dist/form/create.form-grid-layout.js +1 -187
- package/dist/form/create.form-grid-layout.js.map +1 -1
- package/dist/form/create.form-grid-layout.units.js +1 -41
- package/dist/form/create.form-grid-layout.units.js.map +1 -1
- package/dist/form/create.input.file.js +1 -78
- package/dist/form/create.input.file.js.map +1 -1
- package/dist/form/create.input.js +1 -275
- package/dist/form/create.input.js.map +1 -1
- package/dist/form/create.select-simple.js +1 -113
- package/dist/form/create.select-simple.js.map +1 -1
- package/dist/form/create.select-with-api.js +1 -276
- package/dist/form/create.select-with-api.js.map +1 -1
- package/dist/form/create.text-editor.js +1 -180
- package/dist/form/create.text-editor.js.map +1 -1
- package/dist/form/dino-form.js +1 -40
- package/dist/form/dino-form.js.map +1 -1
- package/dist/form/helper.js +1 -156
- package/dist/form/helper.js.map +1 -1
- package/dist/form/modal-wrapper.js +1 -81
- package/dist/form/modal-wrapper.js.map +1 -1
- package/dist/form/validator.js +1 -189
- package/dist/form/validator.js.map +1 -1
- package/dist/hooks/index.js +1 -47
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.js +1 -32
- package/dist/index.js.map +1 -1
- package/dist/redux/create.hoc-lazy.js +1 -70
- package/dist/redux/create.hoc-lazy.js.map +1 -1
- package/dist/redux/dino.js +1 -10
- package/dist/redux/dino.js.map +1 -1
- package/dist/redux/types.js +1 -8
- package/dist/redux/types.js.map +1 -1
- package/dist/redux/ui.error-page.js +1 -88
- package/dist/redux/ui.error-page.js.map +1 -1
- package/dist/redux/vector-404.webp.js +1 -3
- package/dist/redux/vector-404.webp.js.map +1 -1
- package/dist/table/context.js +1 -14
- package/dist/table/context.js.map +1 -1
- package/dist/table/create.action-row.js +1 -143
- package/dist/table/create.action-row.js.map +1 -1
- package/dist/table/create.table.js +1 -245
- package/dist/table/create.table.js.map +1 -1
- package/dist/table/custom.filter-operators.js +1 -88
- package/dist/table/custom.filter-operators.js.map +1 -1
- package/dist/table/dino.js +1 -135
- package/dist/table/dino.js.map +1 -1
- package/dist/table/helpers.js +1 -114
- package/dist/table/helpers.js.map +1 -1
- package/dist/table/model-filter.js +1 -22
- package/dist/table/model-filter.js.map +1 -1
- package/dist/table/toolbar-pannel.js +1 -142
- package/dist/table/toolbar-pannel.js.map +1 -1
- package/dist/table/ui.buttons.js +1 -66
- package/dist/table/ui.buttons.js.map +1 -1
- package/dist/table/ui.units.js +1 -247
- package/dist/table/ui.units.js.map +1 -1
- package/dist/utils/dayjs-config.js +1 -11
- package/dist/utils/dayjs-config.js.map +1 -1
- package/dist/utils/helpers.js +1 -198
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/json-object.js +1 -37
- package/dist/utils/json-object.js.map +1 -1
- package/dist/utils/query-param.js +1 -171
- package/dist/utils/query-param.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.form-base.js","sources":["../../src/form/create.form-base.tsx"],"sourcesContent":["import React, { Component, ComponentType, PropsWithChildren } from 'react'\r\nimport { Box, SxProps, Theme } from '@mui/material'\r\nimport { IFormBase } from './types'\r\nimport { convertFormDataToJson, getErrorFromResponse, SingleValidate, validateMerge } from './helper'\r\nimport FormValidator, { IPartialError, SingleRuleValidate } from './validator'\r\n\r\nexport interface FormBaseParam<TModel> {\r\n validate?: FormValidator<Partial<TModel>>\r\n}\r\n\r\nexport interface FormBaseProps<TModel> extends PropsWithChildren {\r\n sx?: SxProps<Theme>\r\n validate?: FormValidator<Partial<TModel>>\r\n onSubmit: (data: Partial<TModel>, e: React.FormEvent<HTMLFormElement>) => Promise<void>\r\n}\r\n\r\nexport interface FormBaseState<TModel> extends Pick<IFormBase<TModel>, 'messageErrors'> {\r\n modelState?: Partial<TModel>\r\n}\r\n\r\nexport interface IFormContextBase<TModel> {\r\n modelState?: Partial<TModel>\r\n messageErrors: IPartialError<TModel>\r\n onBlur: (keyName: keyof TModel) => void\r\n setError: (keyName: keyof TModel, message: string) => void\r\n clearErrorAll: (keyName: keyof TModel) => void\r\n}\r\n\r\nexport interface FormBaseResult<TModel> {\r\n Form: ComponentType<FormBaseProps<TModel>>\r\n Validator?: FormValidator<Partial<TModel>>\r\n Context: React.Context<IFormContextBase<TModel>>\r\n contextMapping: (params: (context: IFormContextBase<TModel>) => JSX.Element) => JSX.Element\r\n}\r\n\r\nconst CreateFormBase = function <TModel>(param?: FormBaseParam<TModel>): FormBaseResult<TModel> {\r\n const FormBaseContext = React.createContext<IFormContextBase<TModel>>({} as any)\r\n class FormBase extends Component<FormBaseProps<TModel>, FormBaseState<TModel>> {\r\n refForm: HTMLFormElement | null = null\r\n constructor(props: FormBaseProps<TModel>) {\r\n super(props)\r\n this.validate = this.getValidate()\r\n this.state = { messageErrors: {} }\r\n }\r\n\r\n setError = (keyName: keyof TModel, message: string) => {\r\n const error = { [keyName]: [{ rule: SingleRuleValidate.Custom, message }] }\r\n this.setState({\r\n messageErrors: Object.assign({}, this.state.messageErrors, error)\r\n })\r\n }\r\n\r\n clearErrorAll = () => {\r\n this.setState({ messageErrors: {} })\r\n }\r\n\r\n render() {\r\n const { onBlur, setError, clearErrorAll } = this\r\n const { modelState, messageErrors } = this.state\r\n return (\r\n <Box component='form' sx={this.props.sx} ref={(ref: HTMLFormElement) => (this.refForm = ref)} onSubmit={this.onSubmit}>\r\n <FormBaseContext.Provider value={{ setError, onBlur, clearErrorAll, modelState, messageErrors }}>\r\n {this.props.children}\r\n </FormBaseContext.Provider>\r\n </Box>\r\n )\r\n }\r\n\r\n private validate: FormValidator<Partial<TModel>>\r\n onSubmit: React.FormEventHandler<HTMLFormElement> = async (e) => {\r\n e.preventDefault()\r\n const formData = new FormData(e.currentTarget as HTMLFormElement)\r\n const model = convertFormDataToJson<TModel>(formData)\r\n this.setState({ modelState: model })\r\n const messageErrors = this.validate.run(model) as IPartialError<TModel>\r\n if (messageErrors) {\r\n this.setState({ messageErrors: messageErrors })\r\n if (Object.keys(messageErrors).length > 0) return\r\n }\r\n await this.props.onSubmit(model, e).catch((error) => {\r\n const messageError = getErrorFromResponse(error, model)\r\n this.setState({ messageErrors: { ...this.state.messageErrors, ...(messageError || {}) } })\r\n })\r\n }\r\n\r\n onBlur = (keyName: keyof TModel) => {\r\n if (!this.refForm) return\r\n const { messageErrors } = this.state\r\n const formData = new FormData(this.refForm)\r\n const model = convertFormDataToJson(formData)\r\n this.setState({ modelState: model })\r\n const error = SingleValidate<TModel, Partial<TModel>>(keyName, model, messageErrors, this.validate) || {}\r\n this.setState({ messageErrors: error as IPartialError<TModel> })\r\n }\r\n\r\n getValidate = (): FormValidator<Partial<TModel>> => {\r\n const defaultValidate = new FormValidator<Partial<TModel>>({})\r\n return validateMerge(defaultValidate, param?.validate, this.props.validate)\r\n }\r\n }\r\n\r\n return {\r\n Form: FormBase,\r\n Validator: param?.validate,\r\n Context: FormBaseContext,\r\n contextMapping: (params: (context: IFormContextBase<TModel>) => JSX.Element) => <FormBaseContext.Consumer>{params}</FormBaseContext.Consumer>\r\n }\r\n}\r\nexport default CreateFormBase\r\n"],"names":["CreateFormBase","param","FormBaseContext","React","createContext","FormBase","_Component","props","_this","_classCallCheck","_callSuper","_defineProperty","keyName","message","error","rule","SingleRuleValidate","Custom","setState","messageErrors","Object","assign","state","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","e","formData","model","wrap","_callee$","_context","prev","next","preventDefault","FormData","currentTarget","convertFormDataToJson","modelState","validate","run","keys","length","abrupt","onSubmit","messageError","getErrorFromResponse","_objectSpread","stop","_x","apply","arguments","refForm","SingleValidate","defaultValidate","FormValidator","validateMerge","getValidate","_inherits","_createClass","key","value","render","_this2","onBlur","setError","clearErrorAll","_this$state","_jsx","Box","component","sx","ref","children","Provider","Component","Form","Validator","Context","contextMapping","params","Consumer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.form-base.js","sources":["../../src/form/create.form-base.tsx"],"sourcesContent":["import React, { Component, ComponentType, PropsWithChildren } from 'react'\r\nimport { Box, SxProps, Theme } from '@mui/material'\r\nimport { IFormBase } from './types'\r\nimport { convertFormDataToJson, getErrorFromResponse, SingleValidate, validateMerge } from './helper'\r\nimport FormValidator, { IPartialError, SingleRuleValidate } from './validator'\r\n\r\nexport interface FormBaseParam<TModel> {\r\n validate?: FormValidator<Partial<TModel>>\r\n}\r\n\r\nexport interface FormBaseProps<TModel> extends PropsWithChildren {\r\n sx?: SxProps<Theme>\r\n validate?: FormValidator<Partial<TModel>>\r\n onSubmit: (data: Partial<TModel>, e: React.FormEvent<HTMLFormElement>) => Promise<void>\r\n}\r\n\r\nexport interface FormBaseState<TModel> extends Pick<IFormBase<TModel>, 'messageErrors'> {\r\n modelState?: Partial<TModel>\r\n}\r\n\r\nexport interface IFormContextBase<TModel> {\r\n modelState?: Partial<TModel>\r\n messageErrors: IPartialError<TModel>\r\n onBlur: (keyName: keyof TModel) => void\r\n setError: (keyName: keyof TModel, message: string) => void\r\n clearErrorAll: (keyName: keyof TModel) => void\r\n}\r\n\r\nexport interface FormBaseResult<TModel> {\r\n Form: ComponentType<FormBaseProps<TModel>>\r\n Validator?: FormValidator<Partial<TModel>>\r\n Context: React.Context<IFormContextBase<TModel>>\r\n contextMapping: (params: (context: IFormContextBase<TModel>) => JSX.Element) => JSX.Element\r\n}\r\n\r\nconst CreateFormBase = function <TModel>(param?: FormBaseParam<TModel>): FormBaseResult<TModel> {\r\n const FormBaseContext = React.createContext<IFormContextBase<TModel>>({} as any)\r\n class FormBase extends Component<FormBaseProps<TModel>, FormBaseState<TModel>> {\r\n refForm: HTMLFormElement | null = null\r\n constructor(props: FormBaseProps<TModel>) {\r\n super(props)\r\n this.validate = this.getValidate()\r\n this.state = { messageErrors: {} }\r\n }\r\n\r\n setError = (keyName: keyof TModel, message: string) => {\r\n const error = { [keyName]: [{ rule: SingleRuleValidate.Custom, message }] }\r\n this.setState({\r\n messageErrors: Object.assign({}, this.state.messageErrors, error)\r\n })\r\n }\r\n\r\n clearErrorAll = () => {\r\n this.setState({ messageErrors: {} })\r\n }\r\n\r\n render() {\r\n const { onBlur, setError, clearErrorAll } = this\r\n const { modelState, messageErrors } = this.state\r\n return (\r\n <Box component='form' sx={this.props.sx} ref={(ref: HTMLFormElement) => (this.refForm = ref)} onSubmit={this.onSubmit}>\r\n <FormBaseContext.Provider value={{ setError, onBlur, clearErrorAll, modelState, messageErrors }}>\r\n {this.props.children}\r\n </FormBaseContext.Provider>\r\n </Box>\r\n )\r\n }\r\n\r\n private validate: FormValidator<Partial<TModel>>\r\n onSubmit: React.FormEventHandler<HTMLFormElement> = async (e) => {\r\n e.preventDefault()\r\n const formData = new FormData(e.currentTarget as HTMLFormElement)\r\n const model = convertFormDataToJson<TModel>(formData)\r\n this.setState({ modelState: model })\r\n const messageErrors = this.validate.run(model) as IPartialError<TModel>\r\n if (messageErrors) {\r\n this.setState({ messageErrors: messageErrors })\r\n if (Object.keys(messageErrors).length > 0) return\r\n }\r\n await this.props.onSubmit(model, e).catch((error) => {\r\n const messageError = getErrorFromResponse(error, model)\r\n this.setState({ messageErrors: { ...this.state.messageErrors, ...(messageError || {}) } })\r\n })\r\n }\r\n\r\n onBlur = (keyName: keyof TModel) => {\r\n if (!this.refForm) return\r\n const { messageErrors } = this.state\r\n const formData = new FormData(this.refForm)\r\n const model = convertFormDataToJson(formData)\r\n this.setState({ modelState: model })\r\n const error = SingleValidate<TModel, Partial<TModel>>(keyName, model, messageErrors, this.validate) || {}\r\n this.setState({ messageErrors: error as IPartialError<TModel> })\r\n }\r\n\r\n getValidate = (): FormValidator<Partial<TModel>> => {\r\n const defaultValidate = new FormValidator<Partial<TModel>>({})\r\n return validateMerge(defaultValidate, param?.validate, this.props.validate)\r\n }\r\n }\r\n\r\n return {\r\n Form: FormBase,\r\n Validator: param?.validate,\r\n Context: FormBaseContext,\r\n contextMapping: (params: (context: IFormContextBase<TModel>) => JSX.Element) => <FormBaseContext.Consumer>{params}</FormBaseContext.Consumer>\r\n }\r\n}\r\nexport default CreateFormBase\r\n"],"names":["CreateFormBase","param","FormBaseContext","React","createContext","FormBase","props","_this","_classCallCheck","_callSuper","_defineProperty","keyName","message","error","rule","SingleRuleValidate","Custom","setState","messageErrors","Object","assign","state","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","e","formData","model","wrap","_context","prev","next","preventDefault","FormData","currentTarget","convertFormDataToJson","modelState","validate","run","keys","length","abrupt","onSubmit","messageError","getErrorFromResponse","_objectSpread","stop","_x","apply","this","arguments","refForm","SingleValidate","defaultValidate","FormValidator","validateMerge","getValidate","_inherits","Component","_createClass","key","value","_this2","onBlur","setError","clearErrorAll","_this$state","_jsx","Box","component","sx","ref","children","Provider","Form","Validator","Context","contextMapping","params","Consumer"],"mappings":"0eAmCA,IAAMA,EAAiB,SAAkBC,GACvC,IAAMC,EAAkBC,EAAMC,cAAwC,IAChEC,aAEJ,SAAAA,EAAYC,GAA4B,IAAAC,EAGJ,OAHIC,OAAAH,GACtCE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAAA,UAFoB,MAAIG,EAAAH,EAAA,YAO3B,SAACI,EAAuBC,GACjC,IAAMC,EAAKH,EAAMC,CAAAA,EAAAA,EAAU,CAAC,CAAEG,KAAMC,EAAmBC,OAAQJ,QAAAA,KAC/DL,EAAKU,SAAS,CACZC,cAAeC,OAAOC,OAAO,CAAA,EAAIb,EAAKc,MAAMH,cAAeL,QAE9DH,EAAAH,EAAA,iBAEe,WACdA,EAAKU,SAAS,CAAEC,cAAe,CAAA,OAChCR,EAAAH,EAAA,WAAA,WAAA,IAAAe,EAAAC,EAAAC,IAAAC,MAemD,SAAAC,EAAOC,GAAC,IAAAC,EAAAC,EAAAX,EAAA,OAAAM,IAAAM,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAKa,GAJvEN,EAAEO,iBACIN,EAAW,IAAIO,SAASR,EAAES,eAC1BP,EAAQQ,EAA8BT,GAC5CrB,EAAKU,SAAS,CAAEqB,WAAYT,MACtBX,EAAgBX,EAAKgC,SAASC,IAAIX,IACvB,CAAAE,EAAAE,KAAA,EAAA,KAAA,CACgC,GAA/C1B,EAAKU,SAAS,CAAEC,cAAeA,MAC3BC,OAAOsB,KAAKvB,GAAewB,OAAS,GAAC,CAAAX,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAY,OAAA,UAAA,KAAA,EAAA,OAAAZ,EAAAE,KAAA,GAErC1B,EAAKD,MAAMsC,SAASf,EAAOF,GAAE,OAAO,SAACd,GACzC,IAAMgC,EAAeC,EAAqBjC,EAAOgB,GACjDtB,EAAKU,SAAS,CAAEC,cAAa6B,EAAAA,KAAOxC,EAAKc,MAAMH,eAAmB2B,GAAgB,CAAE,IACtF,IAAE,KAAA,GAAA,IAAA,MAAA,OAAAd,EAAAiB,OAAA,GAAAtB,OACH,OAAA,SAAAuB,GAAA,OAAA3B,EAAA4B,MAAAC,KAAAC,UAAA,CAAA,CA7BA,IA6BA1C,EAAAH,EAEQ,UAAA,SAACI,GACR,GAAKJ,EAAK8C,QAAV,CACA,IAAQnC,EAAkBX,EAAKc,MAAvBH,cACFU,EAAW,IAAIO,SAAS5B,EAAK8C,SAC7BxB,EAAQQ,EAAsBT,GACpCrB,EAAKU,SAAS,CAAEqB,WAAYT,IAC5B,IAAMhB,EAAQyC,EAAwC3C,EAASkB,EAAOX,EAAeX,EAAKgC,WAAa,CAAE,EACzGhC,EAAKU,SAAS,CAAEC,cAAeL,GANZ,KAOpBH,EAAAH,EAAA,eAEa,WACZ,IAAMgD,EAAkB,IAAIC,EAA+B,IAC3D,OAAOC,EAAcF,EAAiBtD,aAAK,EAALA,EAAOsC,SAAUhC,EAAKD,MAAMiC,aAxDlEhC,EAAKgC,SAAWhC,EAAKmD,cACrBnD,EAAKc,MAAQ,CAAEH,cAAe,CAAA,GAAIX,CACpC,CAAC,OAAAoD,EAAAtD,EANoBuD,GAMpBC,EAAAxD,EAAA,CAAA,CAAAyD,IAAA,SAAAC,MAaD,WAAM,IAAAC,EAAAb,KACIc,EAAoCd,KAApCc,OAAQC,EAA4Bf,KAA5Be,SAAUC,EAAkBhB,KAAlBgB,cAC1BC,EAAsCjB,KAAK9B,MAAnCiB,EAAU8B,EAAV9B,WAAYpB,EAAakD,EAAblD,cACpB,OACEmD,EAACC,EAAG,CAACC,UAAU,OAAOC,GAAIrB,KAAK7C,MAAMkE,GAAIC,IAAK,SAACA,GAAoB,OAAMT,EAAKX,QAAUoB,CAAI,EAAE7B,SAAUO,KAAKP,SAC3G8B,SAAAL,EAACnE,EAAgByE,SAAQ,CAACZ,MAAO,CAAEG,SAAAA,EAAUD,OAAAA,EAAQE,cAAAA,EAAe7B,WAAAA,EAAYpB,cAAAA,GAC7EwD,SAAAvB,KAAK7C,MAAMoE,YAIpB,IAAC,IAmCH,MAAO,CACLE,KAAMvE,EACNwE,UAAW5E,aAAAA,EAAAA,EAAOsC,SAClBuC,QAAS5E,EACT6E,eAAgB,SAACC,GAA0D,OAAKX,EAACnE,EAAgB+E,SAAU,CAAAP,SAAAM,GAAkC,EAEjJ"}
|
|
@@ -1,131 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
-
import { Component } from 'react';
|
|
4
|
-
import { styled, Button, Box, Card, DialogTitle, DialogContent, DialogActions } from '@mui/material';
|
|
5
|
-
import { fetchDelay } from '../utils/helpers.js';
|
|
6
|
-
import '../utils/query-param.js';
|
|
7
|
-
import '../utils/dayjs-config.js';
|
|
8
|
-
import '../api-context/alert-global.js';
|
|
9
|
-
import '../api-context/drawer-global.js';
|
|
10
|
-
import { MapGlobalModalContext } from '../api-context/global-modal.js';
|
|
11
|
-
|
|
12
|
-
var CreateFormComfirm = function CreateFormComfirm(param) {
|
|
13
|
-
var FormConfirm = /*#__PURE__*/function (_Component) {
|
|
14
|
-
function FormConfirm(props) {
|
|
15
|
-
var _this;
|
|
16
|
-
_classCallCheck(this, FormConfirm);
|
|
17
|
-
_this = _callSuper(this, FormConfirm, [props]);
|
|
18
|
-
_defineProperty(_this, "handleClickNo", function (context) {
|
|
19
|
-
context.close();
|
|
20
|
-
_this.props.onCancel && _this.props.onCancel();
|
|
21
|
-
});
|
|
22
|
-
_defineProperty(_this, "handleClickYes", /*#__PURE__*/function () {
|
|
23
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(context) {
|
|
24
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
25
|
-
while (1) switch (_context.prev = _context.next) {
|
|
26
|
-
case 0:
|
|
27
|
-
if (_this.props.onSubmit) {
|
|
28
|
-
_context.next = 2;
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
return _context.abrupt("return");
|
|
32
|
-
case 2:
|
|
33
|
-
_context.prev = 2;
|
|
34
|
-
_this.setState({
|
|
35
|
-
loading: true
|
|
36
|
-
});
|
|
37
|
-
_context.next = 6;
|
|
38
|
-
return fetchDelay(function () {
|
|
39
|
-
return _this.props.onSubmit(_this.props.data);
|
|
40
|
-
}, 700);
|
|
41
|
-
case 6:
|
|
42
|
-
context.close();
|
|
43
|
-
_context.next = 12;
|
|
44
|
-
break;
|
|
45
|
-
case 9:
|
|
46
|
-
_context.prev = 9;
|
|
47
|
-
_context.t0 = _context["catch"](2);
|
|
48
|
-
console.log(_context.t0);
|
|
49
|
-
case 12:
|
|
50
|
-
_context.prev = 12;
|
|
51
|
-
_this.setState({
|
|
52
|
-
loading: false
|
|
53
|
-
});
|
|
54
|
-
return _context.finish(12);
|
|
55
|
-
case 15:
|
|
56
|
-
case "end":
|
|
57
|
-
return _context.stop();
|
|
58
|
-
}
|
|
59
|
-
}, _callee, null, [[2, 9, 12, 15]]);
|
|
60
|
-
}));
|
|
61
|
-
return function (_x) {
|
|
62
|
-
return _ref.apply(this, arguments);
|
|
63
|
-
};
|
|
64
|
-
}());
|
|
65
|
-
_this.state = {
|
|
66
|
-
loading: false
|
|
67
|
-
};
|
|
68
|
-
return _this;
|
|
69
|
-
}
|
|
70
|
-
_inherits(FormConfirm, _Component);
|
|
71
|
-
return _createClass(FormConfirm, [{
|
|
72
|
-
key: "render",
|
|
73
|
-
value: function render() {
|
|
74
|
-
var _ref2,
|
|
75
|
-
_this$props$title,
|
|
76
|
-
_this2 = this;
|
|
77
|
-
var content = this.props.children || (param !== null && param !== void 0 && param.content ? param === null || param === void 0 ? void 0 : param.content(this.props.data) : undefined);
|
|
78
|
-
var title = (_ref2 = (_this$props$title = this.props.title) !== null && _this$props$title !== void 0 ? _this$props$title : param === null || param === void 0 ? void 0 : param.title) !== null && _ref2 !== void 0 ? _ref2 : 'Are you sure?';
|
|
79
|
-
return jsx(Box, {
|
|
80
|
-
sx: {
|
|
81
|
-
flex: 1,
|
|
82
|
-
display: 'flex',
|
|
83
|
-
alignItems: 'center',
|
|
84
|
-
justifyContent: 'center'
|
|
85
|
-
},
|
|
86
|
-
children: MapGlobalModalContext(function (context) {
|
|
87
|
-
var _param$colors, _param$colors2;
|
|
88
|
-
return jsxs(Card, {
|
|
89
|
-
children: [jsx(DialogTitle, {
|
|
90
|
-
id: 'alert-dialog-title',
|
|
91
|
-
children: title
|
|
92
|
-
}), jsx(DialogContent, {
|
|
93
|
-
sx: {
|
|
94
|
-
minWidth: '300px'
|
|
95
|
-
},
|
|
96
|
-
children: content
|
|
97
|
-
}), jsxs(DialogActions, {
|
|
98
|
-
children: [jsx(CustomButton, {
|
|
99
|
-
disabled: _this2.state.loading,
|
|
100
|
-
color: (param === null || param === void 0 || (_param$colors = param.colors) === null || _param$colors === void 0 ? void 0 : _param$colors.no) || 'inherit',
|
|
101
|
-
onClick: function onClick() {
|
|
102
|
-
return _this2.handleClickNo(context);
|
|
103
|
-
},
|
|
104
|
-
children: "No"
|
|
105
|
-
}), jsx(CustomButton, {
|
|
106
|
-
color: (param === null || param === void 0 || (_param$colors2 = param.colors) === null || _param$colors2 === void 0 ? void 0 : _param$colors2.yes) || 'error',
|
|
107
|
-
disabled: _this2.state.loading,
|
|
108
|
-
onClick: function onClick() {
|
|
109
|
-
return _this2.handleClickYes(context);
|
|
110
|
-
},
|
|
111
|
-
children: "Yes"
|
|
112
|
-
})]
|
|
113
|
-
})]
|
|
114
|
-
});
|
|
115
|
-
})
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}]);
|
|
119
|
-
}(Component);
|
|
120
|
-
return FormConfirm;
|
|
121
|
-
};
|
|
122
|
-
var CustomButton = styled(Button)({
|
|
123
|
-
textTransform: 'capitalize',
|
|
124
|
-
fontWeight: 600,
|
|
125
|
-
'&.MuiButton-colorInherit': {
|
|
126
|
-
color: '#606060!important'
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
export { CreateFormComfirm as default };
|
|
1
|
+
import{inherits as r,createClass as t,classCallCheck as e,callSuper as n,defineProperty as o,asyncToGenerator as i,regeneratorRuntime as l}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as s}from"react/jsx-runtime";import{Component as c}from"react";import{styled as u,Button as p,Box as d,Card as f,DialogTitle as h,DialogContent as m,DialogActions as v}from"@mui/material";import{fetchDelay as g}from"../utils/helpers.js";import"../utils/query-param.js";import"../utils/dayjs-config.js";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{MapGlobalModalContext as x}from"../api-context/global-modal.js";var C=function(u){var p=function(){function p(r){var t;return e(this,p),t=n(this,p,[r]),o(t,"handleClickNo",(function(r){r.close(),t.props.onCancel&&t.props.onCancel()})),o(t,"handleClickYes",function(){var r=i(l().mark((function r(e){return l().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(t.props.onSubmit){r.next=2;break}return r.abrupt("return");case 2:return r.prev=2,t.setState({loading:!0}),r.next=6,g((function(){return t.props.onSubmit(t.props.data)}),700);case 6:e.close(),r.next=12;break;case 9:r.prev=9,r.t0=r.catch(2),console.log(r.t0);case 12:return r.prev=12,t.setState({loading:!1}),r.finish(12);case 15:case"end":return r.stop()}}),r,null,[[2,9,12,15]])})));return function(t){return r.apply(this,arguments)}}()),t.state={loading:!1},t}return r(p,c),t(p,[{key:"render",value:function(){var r,t,e=this,n=this.props.children||(null!=u&&u.content?null==u?void 0:u.content(this.props.data):void 0),o=null!==(r=null!==(t=this.props.title)&&void 0!==t?t:null==u?void 0:u.title)&&void 0!==r?r:"Are you sure?";return a(d,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:x((function(r){var t,i;return s(f,{children:[a(h,{id:"alert-dialog-title",children:o}),a(m,{sx:{minWidth:"300px"},children:n}),s(v,{children:[a(b,{disabled:e.state.loading,color:(null==u||null===(t=u.colors)||void 0===t?void 0:t.no)||"inherit",onClick:function(){return e.handleClickNo(r)},children:"No"}),a(b,{color:(null==u||null===(i=u.colors)||void 0===i?void 0:i.yes)||"error",disabled:e.state.loading,onClick:function(){return e.handleClickYes(r)},children:"Yes"})]})]})}))})}}])}();return p},b=u(p)({textTransform:"capitalize",fontWeight:600,"&.MuiButton-colorInherit":{color:"#606060!important"}});export{C as default};
|
|
131
2
|
//# sourceMappingURL=create.form-comfirm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.form-comfirm.js","sources":["../../src/form/create.form-comfirm.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Box, Button, Card, DialogActions, DialogContent, DialogTitle, styled } from '@mui/material'\r\nimport { fetchDelay } from '../utils'\r\nimport { IGlobalModalContext, MapGlobalModalContext } from '../api-context'\r\n\r\nexport interface IFormComfirmParam<T> {\r\n title?: string\r\n content: (value?: T) => JSX.Element\r\n colors?: {\r\n yes?: 'inherit' | 'error' | 'primary' | 'secondary' | 'success' | 'info' | 'warning'\r\n no?: 'inherit' | 'error' | 'primary' | 'secondary' | 'success' | 'info' | 'warning'\r\n }\r\n}\r\n\r\nexport interface IFormComfirmProps<T> {\r\n data?: T\r\n title?: string\r\n onSubmit: (value?: T) => Promise<void>\r\n onCancel?: () => void\r\n}\r\n\r\nexport interface IFormComfirmState {\r\n loading?: boolean\r\n}\r\n\r\nconst CreateFormComfirm = function <T = any>(param?: IFormComfirmParam<T>): ComponentType<React.PropsWithChildren<IFormComfirmProps<T>>> {\r\n class FormConfirm extends Component<React.PropsWithChildren<IFormComfirmProps<T>>, IFormComfirmState> {\r\n constructor(props: IFormComfirmProps<T>) {\r\n super(props)\r\n this.state = { loading: false }\r\n }\r\n\r\n render() {\r\n const content = this.props.children || (param?.content ? param?.content(this.props.data) : undefined)\r\n const title = this.props.title ?? param?.title ?? 'Are you sure?'\r\n return (\r\n <Box sx={{ flex: 1, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\r\n {MapGlobalModalContext((context) => (\r\n <Card>\r\n <DialogTitle id='alert-dialog-title'>{title}</DialogTitle>\r\n <DialogContent sx={{ minWidth: '300px' }}>{content}</DialogContent>\r\n <DialogActions>\r\n <CustomButton disabled={this.state.loading} color={param?.colors?.no || 'inherit'} onClick={() => this.handleClickNo(context)}>\r\n No\r\n </CustomButton>\r\n <CustomButton color={param?.colors?.yes || 'error'} disabled={this.state.loading} onClick={() => this.handleClickYes(context)}>\r\n Yes\r\n </CustomButton>\r\n </DialogActions>\r\n </Card>\r\n ))}\r\n </Box>\r\n )\r\n }\r\n\r\n handleClickNo = (context: IGlobalModalContext) => {\r\n context.close()\r\n this.props.onCancel && this.props.onCancel()\r\n }\r\n\r\n handleClickYes = async (context: IGlobalModalContext) => {\r\n if (!this.props.onSubmit) return\r\n try {\r\n this.setState({ loading: true })\r\n await fetchDelay(() => this.props.onSubmit(this.props.data), 700)\r\n context.close()\r\n } catch (error) {\r\n console.log(error)\r\n } finally {\r\n this.setState({ loading: false })\r\n }\r\n }\r\n }\r\n return FormConfirm\r\n}\r\nexport default CreateFormComfirm\r\n\r\nconst CustomButton = styled(Button)({\r\n textTransform: 'capitalize',\r\n fontWeight: 600,\r\n '&.MuiButton-colorInherit': {\r\n color: '#606060!important'\r\n }\r\n})\r\n"],"names":["CreateFormComfirm","param","FormConfirm","
|
|
1
|
+
{"version":3,"file":"create.form-comfirm.js","sources":["../../src/form/create.form-comfirm.tsx"],"sourcesContent":["import React, { Component, ComponentType } from 'react'\r\nimport { Box, Button, Card, DialogActions, DialogContent, DialogTitle, styled } from '@mui/material'\r\nimport { fetchDelay } from '../utils'\r\nimport { IGlobalModalContext, MapGlobalModalContext } from '../api-context'\r\n\r\nexport interface IFormComfirmParam<T> {\r\n title?: string\r\n content: (value?: T) => JSX.Element\r\n colors?: {\r\n yes?: 'inherit' | 'error' | 'primary' | 'secondary' | 'success' | 'info' | 'warning'\r\n no?: 'inherit' | 'error' | 'primary' | 'secondary' | 'success' | 'info' | 'warning'\r\n }\r\n}\r\n\r\nexport interface IFormComfirmProps<T> {\r\n data?: T\r\n title?: string\r\n onSubmit: (value?: T) => Promise<void>\r\n onCancel?: () => void\r\n}\r\n\r\nexport interface IFormComfirmState {\r\n loading?: boolean\r\n}\r\n\r\nconst CreateFormComfirm = function <T = any>(param?: IFormComfirmParam<T>): ComponentType<React.PropsWithChildren<IFormComfirmProps<T>>> {\r\n class FormConfirm extends Component<React.PropsWithChildren<IFormComfirmProps<T>>, IFormComfirmState> {\r\n constructor(props: IFormComfirmProps<T>) {\r\n super(props)\r\n this.state = { loading: false }\r\n }\r\n\r\n render() {\r\n const content = this.props.children || (param?.content ? param?.content(this.props.data) : undefined)\r\n const title = this.props.title ?? param?.title ?? 'Are you sure?'\r\n return (\r\n <Box sx={{ flex: 1, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\r\n {MapGlobalModalContext((context) => (\r\n <Card>\r\n <DialogTitle id='alert-dialog-title'>{title}</DialogTitle>\r\n <DialogContent sx={{ minWidth: '300px' }}>{content}</DialogContent>\r\n <DialogActions>\r\n <CustomButton disabled={this.state.loading} color={param?.colors?.no || 'inherit'} onClick={() => this.handleClickNo(context)}>\r\n No\r\n </CustomButton>\r\n <CustomButton color={param?.colors?.yes || 'error'} disabled={this.state.loading} onClick={() => this.handleClickYes(context)}>\r\n Yes\r\n </CustomButton>\r\n </DialogActions>\r\n </Card>\r\n ))}\r\n </Box>\r\n )\r\n }\r\n\r\n handleClickNo = (context: IGlobalModalContext) => {\r\n context.close()\r\n this.props.onCancel && this.props.onCancel()\r\n }\r\n\r\n handleClickYes = async (context: IGlobalModalContext) => {\r\n if (!this.props.onSubmit) return\r\n try {\r\n this.setState({ loading: true })\r\n await fetchDelay(() => this.props.onSubmit(this.props.data), 700)\r\n context.close()\r\n } catch (error) {\r\n console.log(error)\r\n } finally {\r\n this.setState({ loading: false })\r\n }\r\n }\r\n }\r\n return FormConfirm\r\n}\r\nexport default CreateFormComfirm\r\n\r\nconst CustomButton = styled(Button)({\r\n textTransform: 'capitalize',\r\n fontWeight: 600,\r\n '&.MuiButton-colorInherit': {\r\n color: '#606060!important'\r\n }\r\n})\r\n"],"names":["CreateFormComfirm","param","FormConfirm","props","_this","_classCallCheck","_callSuper","_defineProperty","context","close","onCancel","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","onSubmit","abrupt","setState","loading","fetchDelay","data","t0","console","log","finish","stop","_x","apply","this","arguments","state","_inherits","Component","_createClass","key","value","_ref2","_this$props$title","_this2","content","children","undefined","title","_jsx","Box","sx","flex","display","alignItems","justifyContent","MapGlobalModalContext","_param$colors","_param$colors2","_jsxs","Card","DialogTitle","id","DialogContent","minWidth","DialogActions","CustomButton","disabled","color","colors","no","onClick","handleClickNo","yes","handleClickYes","styled","Button","textTransform","fontWeight"],"mappings":"mpBAyBA,IAAMA,EAAoB,SAAmBC,GAA4B,IACjEC,aACJ,SAAAA,EAAYC,GAA2B,IAAAC,EAEN,OAFMC,OAAAH,GACrCE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EA2BE,iBAAA,SAACI,GACfA,EAAQC,QACRL,EAAKD,MAAMO,UAAYN,EAAKD,MAAMO,cACnCH,EAAAH,EAAA,iBAAA,WAAA,IAAAO,EAAAC,EAAAC,IAAAC,MAEgB,SAAAC,EAAOP,GAA4B,OAAAK,IAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,GAC7Cf,EAAKD,MAAMiB,SAAQ,CAAAH,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAI,OAAA,UAAA,KAAA,EAEU,OAFVJ,EAAAC,KAAA,EAEtBd,EAAKkB,SAAS,CAAEC,SAAS,IAAON,EAAAE,KAAA,EAC1BK,GAAW,WAAA,OAAMpB,EAAKD,MAAMiB,SAAShB,EAAKD,MAAMsB,KAAK,GAAE,KAAI,KAAA,EACjEjB,EAAQC,QAAOQ,EAAAE,KAAA,GAAA,MAAA,KAAA,EAAAF,EAAAC,KAAA,EAAAD,EAAAS,GAAAT,EAAA,MAAA,GAEfU,QAAQC,IAAGX,EAAAS,IAAO,KAAA,GAEe,OAFfT,EAAAC,KAAA,GAElBd,EAAKkB,SAAS,CAAEC,SAAS,IAAQN,EAAAY,OAAA,IAAA,KAAA,GAAA,IAAA,MAAA,OAAAZ,EAAAa,OAAA,GAAAf,EAAA,KAAA,CAAA,CAAA,EAAA,EAAA,GAAA,UAEpC,OAAA,SAAAgB,GAAA,OAAApB,EAAAqB,MAAAC,KAAAC,UAAA,CAAA,CAbA,IA7BC9B,EAAK+B,MAAQ,CAAEZ,SAAS,GAAOnB,CACjC,CAAC,OAAAgC,EAAAlC,EAJuBmC,GAIvBC,EAAApC,EAAA,CAAA,CAAAqC,IAAA,SAAAC,MAED,WAAM,IAAAC,EAAAC,EAAAC,EAAAV,KACEW,EAAUX,KAAK9B,MAAM0C,WAAa5C,SAAAA,EAAO2C,QAAU3C,aAAK,EAALA,EAAO2C,QAAQX,KAAK9B,MAAMsB,WAAQqB,GACrFC,EAAwC,QAAnCN,EAAmB,QAAnBC,EAAGT,KAAK9B,MAAM4C,aAAK,IAAAL,EAAAA,EAAIzC,aAAK,EAALA,EAAO8C,aAAK,IAAAN,EAAAA,EAAI,gBAClD,OACEO,EAACC,EAAG,CAACC,GAAI,CAAEC,KAAM,EAAGC,QAAS,OAAQC,WAAY,SAAUC,eAAgB,UACxET,SAAAU,GAAsB,SAAC/C,GAAO,IAAAgD,EAAAC,EAAA,OAC7BC,EAACC,EACC,CAAAd,SAAA,CAAAG,EAACY,EAAW,CAACC,GAAG,qBAAoBhB,SAAEE,IACtCC,EAACc,EAAc,CAAAZ,GAAI,CAAEa,SAAU,kBAAYnB,IAC3Cc,EAACM,EAAa,CAAAnB,SAAA,CACZG,EAACiB,GAAaC,SAAUvB,EAAKR,MAAMZ,QAAS4C,OAAOlE,iBAAKuD,EAALvD,EAAOmE,cAAM,IAAAZ,OAAA,EAAbA,EAAea,KAAM,UAAWC,QAAS,WAAF,OAAQ3B,EAAK4B,cAAc/D,EAAQ,EAAAqC,SAAA,OAG7HG,EAACiB,EAAY,CAACE,OAAOlE,iBAAKwD,EAALxD,EAAOmE,cAAM,IAAAX,OAAA,EAAbA,EAAee,MAAO,QAASN,SAAUvB,EAAKR,MAAMZ,QAAS+C,QAAS,WAAF,OAAQ3B,EAAK8B,eAAejE,EAAQ,EAE9GqC,SAAA,aAGpB,KAGP,IAAC,IAoBH,OAAO3C,CACT,EAGM+D,EAAeS,EAAOC,EAAPD,CAAe,CAClCE,cAAe,aACfC,WAAY,IACZ,2BAA4B,CAC1BV,MAAO"}
|
|
@@ -1,188 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { Fragment, Component } from 'react';
|
|
4
|
-
import { Grid } from '@mui/material';
|
|
5
|
-
import '../api-context/alert-global.js';
|
|
6
|
-
import '../api-context/drawer-global.js';
|
|
7
|
-
import { MapGlobalModalContext } from '../api-context/global-modal.js';
|
|
8
|
-
import { CreateFormBottomBar, ContentWrap } from './create.form-grid-layout.units.js';
|
|
9
|
-
import CreateInput from './create.input.js';
|
|
10
|
-
import CreateFormBase from './create.form-base.js';
|
|
11
|
-
|
|
12
|
-
var _excluded = ["slots"];
|
|
13
|
-
var CreateFormGridLayout = function CreateFormGridLayout(params) {
|
|
14
|
-
var FormBaseInstance = CreateFormBase();
|
|
15
|
-
var BottomBarInstance = CreateFormBottomBar();
|
|
16
|
-
var InputBaseInstance = CreateInput({
|
|
17
|
-
maxLength: 250
|
|
18
|
-
});
|
|
19
|
-
var FormGridLayout = /*#__PURE__*/function (_Component) {
|
|
20
|
-
function FormGridLayout(props) {
|
|
21
|
-
var _this;
|
|
22
|
-
_classCallCheck(this, FormGridLayout);
|
|
23
|
-
_this = _callSuper(this, FormGridLayout, [props]);
|
|
24
|
-
_defineProperty(_this, "renderContent", function () {
|
|
25
|
-
var _this$props;
|
|
26
|
-
var slots = _this.props.slots;
|
|
27
|
-
return jsxs(ContentWrap, _objectSpread2(_objectSpread2({}, (_this$props = _this.props) === null || _this$props === void 0 || (_this$props = _this$props.slots) === null || _this$props === void 0 ? void 0 : _this$props.contentProps), {}, {
|
|
28
|
-
children: [(slots === null || slots === void 0 ? void 0 : slots.contentBefore) && (slots === null || slots === void 0 ? void 0 : slots.contentBefore), params === null || params === void 0 ? void 0 : params.contentBefore, jsx(Grid, {
|
|
29
|
-
container: true,
|
|
30
|
-
spacing: 2,
|
|
31
|
-
children: params.configs.map(function (config, index) {
|
|
32
|
-
var _this$configMerged$in;
|
|
33
|
-
var visibility = (_this$configMerged$in = _this.configMerged.inputVisibility) !== null && _this$configMerged$in !== void 0 && _this$configMerged$in[config.key] ? true : undefined;
|
|
34
|
-
if (visibility) return jsx(Fragment, {}, config.key.toString() + index);
|
|
35
|
-
return jsx(Fragment, {
|
|
36
|
-
children: jsx(Grid, _objectSpread2(_objectSpread2({
|
|
37
|
-
item: true,
|
|
38
|
-
xs: 12
|
|
39
|
-
}, config.reponsives), {}, {
|
|
40
|
-
children: _this.renderFormFieldElement(config)
|
|
41
|
-
}))
|
|
42
|
-
}, config.key.toString() + index);
|
|
43
|
-
})
|
|
44
|
-
}), params === null || params === void 0 ? void 0 : params.contentAfter, (slots === null || slots === void 0 ? void 0 : slots.contentAfter) && (slots === null || slots === void 0 ? void 0 : slots.contentAfter)]
|
|
45
|
-
}));
|
|
46
|
-
});
|
|
47
|
-
_defineProperty(_this, "renderFormFieldElement", function (config) {
|
|
48
|
-
var _config$inputElement, _otherProps$data$conf, _otherProps$data, _this$configMerged$in2;
|
|
49
|
-
var _this$props2 = _this.props;
|
|
50
|
-
_this$props2.slots;
|
|
51
|
-
var otherProps = _objectWithoutProperties(_this$props2, _excluded);
|
|
52
|
-
var ElementComponent = (_config$inputElement = config.inputElement) !== null && _config$inputElement !== void 0 ? _config$inputElement : InputBaseInstance;
|
|
53
|
-
var dValue = (_otherProps$data$conf = (_otherProps$data = otherProps.data) === null || _otherProps$data === void 0 ? void 0 : _otherProps$data[config.key]) !== null && _otherProps$data$conf !== void 0 ? _otherProps$data$conf : config === null || config === void 0 ? void 0 : config.defaultValue;
|
|
54
|
-
var disabled = (_this$configMerged$in2 = _this.configMerged.inputDisabled) !== null && _this$configMerged$in2 !== void 0 && _this$configMerged$in2[config.key] ? true : undefined;
|
|
55
|
-
return FormBaseInstance.contextMapping(function (context) {
|
|
56
|
-
return jsx(ElementComponent, {
|
|
57
|
-
data: _this.props.data,
|
|
58
|
-
onBlur: context.onBlur,
|
|
59
|
-
messageErrors: context.messageErrors,
|
|
60
|
-
name: config.key,
|
|
61
|
-
label: config.label,
|
|
62
|
-
placeholder: config.placeholder,
|
|
63
|
-
disabled: disabled,
|
|
64
|
-
defaultValue: dValue
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
_defineProperty(_this, "loading", function () {
|
|
69
|
-
return _this.setState({
|
|
70
|
-
loadding: true
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
_defineProperty(_this, "unloading", function () {
|
|
74
|
-
return _this.setState({
|
|
75
|
-
loadding: false
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
_defineProperty(_this, "onSubmit", /*#__PURE__*/function () {
|
|
79
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(value, close) {
|
|
80
|
-
var _params$submitMapping;
|
|
81
|
-
var slots, mapping, data, _this$abortController;
|
|
82
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
83
|
-
while (1) switch (_context.prev = _context.next) {
|
|
84
|
-
case 0:
|
|
85
|
-
slots = _this.props.slots;
|
|
86
|
-
mapping = (_params$submitMapping = params.submitMapping) !== null && _params$submitMapping !== void 0 ? _params$submitMapping : _this.submitMapping;
|
|
87
|
-
data = mapping(value, _this.props.data);
|
|
88
|
-
_context.prev = 3;
|
|
89
|
-
_this.loading();
|
|
90
|
-
(_this$abortController = _this.abortController) === null || _this$abortController === void 0 || _this$abortController.abort();
|
|
91
|
-
_this.abortController = new AbortController();
|
|
92
|
-
_context.next = 9;
|
|
93
|
-
return _this.props.onSubmit(data, _this.abortController.signal);
|
|
94
|
-
case 9:
|
|
95
|
-
if (!(slots !== null && slots !== void 0 && slots.closeState) || slots.closeState.Success !== false) {
|
|
96
|
-
close && close();
|
|
97
|
-
_this.props.onClose && _this.props.onClose();
|
|
98
|
-
}
|
|
99
|
-
_context.next = 16;
|
|
100
|
-
break;
|
|
101
|
-
case 12:
|
|
102
|
-
_context.prev = 12;
|
|
103
|
-
_context.t0 = _context["catch"](3);
|
|
104
|
-
if (slots !== null && slots !== void 0 && slots.closeState && slots.closeState.Fail === true) {
|
|
105
|
-
close && close();
|
|
106
|
-
_this.props.onClose && _this.props.onClose();
|
|
107
|
-
}
|
|
108
|
-
if (_this.props.onError) _this.props.onError(_context.t0);
|
|
109
|
-
case 16:
|
|
110
|
-
_context.prev = 16;
|
|
111
|
-
_this.unloading();
|
|
112
|
-
return _context.finish(16);
|
|
113
|
-
case 19:
|
|
114
|
-
case "end":
|
|
115
|
-
return _context.stop();
|
|
116
|
-
}
|
|
117
|
-
}, _callee, null, [[3, 12, 16, 19]]);
|
|
118
|
-
}));
|
|
119
|
-
return function (_x, _x2) {
|
|
120
|
-
return _ref.apply(this, arguments);
|
|
121
|
-
};
|
|
122
|
-
}());
|
|
123
|
-
_defineProperty(_this, "submitMapping", function (value, oldValue) {
|
|
124
|
-
return Object.assign({}, oldValue, value);
|
|
125
|
-
});
|
|
126
|
-
_defineProperty(_this, "getSxProps", function () {
|
|
127
|
-
var isLoading = _this.state.loadding;
|
|
128
|
-
return _objectSpread2(_objectSpread2({}, _this.props.sx), {}, {
|
|
129
|
-
opacity: isLoading ? 0.7 : 1,
|
|
130
|
-
pointerEvents: isLoading ? 'none' : 'auto'
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
_this.state = {
|
|
134
|
-
loadding: false
|
|
135
|
-
};
|
|
136
|
-
return _this;
|
|
137
|
-
}
|
|
138
|
-
_inherits(FormGridLayout, _Component);
|
|
139
|
-
return _createClass(FormGridLayout, [{
|
|
140
|
-
key: "configMerged",
|
|
141
|
-
get: function get() {
|
|
142
|
-
var _this$props$slots$inp, _this$props$slots, _this$props$slots$inp2, _this$props$slots2;
|
|
143
|
-
return {
|
|
144
|
-
inputVisibility: (_this$props$slots$inp = (_this$props$slots = this.props.slots) === null || _this$props$slots === void 0 ? void 0 : _this$props$slots.inputVisibility) !== null && _this$props$slots$inp !== void 0 ? _this$props$slots$inp : params.inputVisibility,
|
|
145
|
-
inputDisabled: (_this$props$slots$inp2 = (_this$props$slots2 = this.props.slots) === null || _this$props$slots2 === void 0 ? void 0 : _this$props$slots2.inputDisabled) !== null && _this$props$slots$inp2 !== void 0 ? _this$props$slots$inp2 : params.inputDisabled
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
}, {
|
|
149
|
-
key: "render",
|
|
150
|
-
value: function render() {
|
|
151
|
-
var _ref2,
|
|
152
|
-
_params$action,
|
|
153
|
-
_this$props$slots3,
|
|
154
|
-
_this2 = this;
|
|
155
|
-
var BottomBar = (_ref2 = (_params$action = params === null || params === void 0 ? void 0 : params.action) !== null && _params$action !== void 0 ? _params$action : (_this$props$slots3 = this.props.slots) === null || _this$props$slots3 === void 0 ? void 0 : _this$props$slots3.action) !== null && _ref2 !== void 0 ? _ref2 : BottomBarInstance;
|
|
156
|
-
return MapGlobalModalContext(function (_ref3) {
|
|
157
|
-
var close = _ref3.close;
|
|
158
|
-
return jsxs(FormBaseInstance.Form, {
|
|
159
|
-
validate: params.validate,
|
|
160
|
-
onSubmit: function onSubmit(v) {
|
|
161
|
-
return _this2.onSubmit(v, close);
|
|
162
|
-
},
|
|
163
|
-
sx: _this2.getSxProps(),
|
|
164
|
-
children: [_this2.renderContent(), FormBaseInstance.contextMapping(function (context) {
|
|
165
|
-
var _this2$props$slots;
|
|
166
|
-
return jsx(BottomBar, {
|
|
167
|
-
data: _this2.props.data,
|
|
168
|
-
onBlur: context.onBlur,
|
|
169
|
-
messageErrors: context.messageErrors,
|
|
170
|
-
before: (_this2$props$slots = _this2.props.slots) === null || _this2$props$slots === void 0 ? void 0 : _this2$props$slots.actionBefore
|
|
171
|
-
});
|
|
172
|
-
})]
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}, {
|
|
177
|
-
key: "componentWillUnmount",
|
|
178
|
-
value: function componentWillUnmount() {
|
|
179
|
-
var _this$abortController2;
|
|
180
|
-
(_this$abortController2 = this.abortController) === null || _this$abortController2 === void 0 || _this$abortController2.abort();
|
|
181
|
-
}
|
|
182
|
-
}]);
|
|
183
|
-
}(Component);
|
|
184
|
-
return FormGridLayout;
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
export { CreateFormGridLayout as default };
|
|
1
|
+
import{inherits as o,createClass as t,classCallCheck as n,callSuper as r,defineProperty as e,objectSpread2 as i,objectWithoutProperties as l,asyncToGenerator as a,regeneratorRuntime as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as u,jsx as p}from"react/jsx-runtime";import{Fragment as d,Component as c}from"react";import{Grid as v}from"@mui/material";import"../api-context/alert-global.js";import"../api-context/drawer-global.js";import{MapGlobalModalContext as f}from"../api-context/global-modal.js";import{CreateFormBottomBar as m,ContentWrap as g}from"./create.form-grid-layout.units.js";import b from"./create.input.js";import h from"./create.form-base.js";var y=["slots"],x=function(x){var S=h(),C=m(),j=b({maxLength:250}),k=function(){function m(o){var t;return n(this,m),t=r(this,m,[o]),e(t,"renderContent",(function(){var o,n=t.props.slots;return u(g,i(i({},null===(o=t.props)||void 0===o||null===(o=o.slots)||void 0===o?void 0:o.contentProps),{},{children:[(null==n?void 0:n.contentBefore)&&(null==n?void 0:n.contentBefore),null==x?void 0:x.contentBefore,p(v,{container:!0,spacing:2,children:x.configs.map((function(o,n){var r,e=!(null===(r=t.configMerged.inputVisibility)||void 0===r||!r[o.key])||void 0;return p(d,e?{}:{children:p(v,i(i({item:!0,xs:12},o.reponsives),{},{children:t.renderFormFieldElement(o)}))},o.key.toString()+n)}))}),null==x?void 0:x.contentAfter,(null==n?void 0:n.contentAfter)&&(null==n?void 0:n.contentAfter)]}))})),e(t,"renderFormFieldElement",(function(o){var n,r,e,i,a=t.props;a.slots;var s=l(a,y),u=null!==(n=o.inputElement)&&void 0!==n?n:j,d=null!==(r=null===(e=s.data)||void 0===e?void 0:e[o.key])&&void 0!==r?r:null==o?void 0:o.defaultValue,c=!(null===(i=t.configMerged.inputDisabled)||void 0===i||!i[o.key])||void 0;return S.contextMapping((function(n){return p(u,{data:t.props.data,onBlur:n.onBlur,messageErrors:n.messageErrors,name:o.key,label:o.label,placeholder:o.placeholder,disabled:c,defaultValue:d})}))})),e(t,"loading",(function(){return t.setState({loadding:!0})})),e(t,"unloading",(function(){return t.setState({loadding:!1})})),e(t,"onSubmit",function(){var o=a(s().mark((function o(n,r){var e,i,l,a,u;return s().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return i=t.props.slots,l=null!==(e=x.submitMapping)&&void 0!==e?e:t.submitMapping,a=l(n,t.props.data),o.prev=3,t.loading(),null===(u=t.abortController)||void 0===u||u.abort(),t.abortController=new AbortController,o.next=9,t.props.onSubmit(a,t.abortController.signal);case 9:null!=i&&i.closeState&&!1===i.closeState.Success||(r&&r(),t.props.onClose&&t.props.onClose()),o.next=16;break;case 12:o.prev=12,o.t0=o.catch(3),null!=i&&i.closeState&&!0===i.closeState.Fail&&(r&&r(),t.props.onClose&&t.props.onClose()),t.props.onError&&t.props.onError(o.t0);case 16:return o.prev=16,t.unloading(),o.finish(16);case 19:case"end":return o.stop()}}),o,null,[[3,12,16,19]])})));return function(t,n){return o.apply(this,arguments)}}()),e(t,"submitMapping",(function(o,t){return Object.assign({},t,o)})),e(t,"getSxProps",(function(){var o=t.state.loadding;return i(i({},t.props.sx),{},{opacity:o?.7:1,pointerEvents:o?"none":"auto"})})),t.state={loadding:!1},t}return o(m,c),t(m,[{key:"configMerged",get:function(){var o,t,n,r;return{inputVisibility:null!==(o=null===(t=this.props.slots)||void 0===t?void 0:t.inputVisibility)&&void 0!==o?o:x.inputVisibility,inputDisabled:null!==(n=null===(r=this.props.slots)||void 0===r?void 0:r.inputDisabled)&&void 0!==n?n:x.inputDisabled}}},{key:"render",value:function(){var o,t,n,r=this,e=null!==(o=null!==(t=null==x?void 0:x.action)&&void 0!==t?t:null===(n=this.props.slots)||void 0===n?void 0:n.action)&&void 0!==o?o:C;return f((function(o){var t=o.close;return u(S.Form,{validate:x.validate,onSubmit:function(o){return r.onSubmit(o,t)},sx:r.getSxProps(),children:[r.renderContent(),S.contextMapping((function(o){var t;return p(e,{data:r.props.data,onBlur:o.onBlur,messageErrors:o.messageErrors,before:null===(t=r.props.slots)||void 0===t?void 0:t.actionBefore})}))]})}))}},{key:"componentWillUnmount",value:function(){var o;null===(o=this.abortController)||void 0===o||o.abort()}}])}();return k};export{x as default};
|
|
188
2
|
//# sourceMappingURL=create.form-grid-layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.form-grid-layout.js","sources":["../../src/form/create.form-grid-layout.tsx"],"sourcesContent":["import React, { Component, ComponentType, Fragment } from 'react'\r\nimport { BoxProps, Grid, RegularBreakpoints, SxProps, Theme } from '@mui/material'\r\nimport { IFormBase, IFormInputBase } from './types'\r\nimport { MapGlobalModalContext } from '../api-context'\r\nimport { ContentWrap, CreateFormBottomBar } from './create.form-grid-layout.units'\r\nimport FormValidator from './validator'\r\nimport CreateInput from './create.input'\r\nimport CreateFormBase from './create.form-base'\r\n\r\nexport interface IFormGridLayoutConfig<T> {\r\n key: keyof T\r\n label?: string\r\n placeholder?: string\r\n reponsives?: RegularBreakpoints\r\n defaultValue?: any\r\n inputElement?: React.ComponentType<IFormInputBase<T>>\r\n}\r\n\r\nexport type SubmitMappingEvent<T> = (value: Partial<T>, oldValue?: T) => Partial<T>\r\n\r\nexport interface IFormGridLayoutSlots<T> {\r\n action?: React.ComponentType<IFormBase<T>>\r\n actionBefore?: JSX.Element\r\n contentBefore?: JSX.Element\r\n contentAfter?: JSX.Element\r\n inputVisibility?: Partial<Record<keyof T, boolean>>\r\n inputDisabled?: Partial<Record<keyof T, boolean>>\r\n closeState?: { Success?: boolean; Fail?: boolean }\r\n contentProps?: BoxProps\r\n}\r\n\r\nexport interface IFormGridLayoutParams<T> extends IFormGridLayoutSlots<T> {\r\n configs: IFormGridLayoutConfig<T>[]\r\n validate: FormValidator<Partial<T>>\r\n submitMapping?: SubmitMappingEvent<T>\r\n}\r\n\r\nexport interface IFormGridLayoutProps<T> {\r\n data?: T\r\n onSubmit: (value: Partial<T>, signal?: AbortSignal) => Promise<void>\r\n onError?: (error: any) => void\r\n onClose?: () => void\r\n sx?: SxProps<Theme>\r\n slots?: IFormGridLayoutSlots<T>\r\n}\r\n\r\nexport interface IFormGridLayoutState {\r\n loadding?: boolean\r\n}\r\n\r\nconst CreateFormGridLayout = function <T>(params: IFormGridLayoutParams<T>): ComponentType<IFormGridLayoutProps<T>> {\r\n const FormBaseInstance = CreateFormBase<T>()\r\n const BottomBarInstance = CreateFormBottomBar<T>()\r\n const InputBaseInstance = CreateInput<T>({ maxLength: 250 })\r\n\r\n class FormGridLayout extends Component<IFormGridLayoutProps<T>, IFormGridLayoutState> {\r\n private abortController?: AbortController\r\n constructor(props: IFormGridLayoutProps<T>) {\r\n super(props)\r\n this.state = { loadding: false }\r\n }\r\n\r\n get configMerged() {\r\n return {\r\n inputVisibility: this.props.slots?.inputVisibility ?? params.inputVisibility,\r\n inputDisabled: this.props.slots?.inputDisabled ?? params.inputDisabled\r\n }\r\n }\r\n\r\n render() {\r\n const BottomBar = params?.action ?? this.props.slots?.action ?? BottomBarInstance\r\n return MapGlobalModalContext(({ close }) => (\r\n <FormBaseInstance.Form validate={params.validate} onSubmit={(v) => this.onSubmit(v, close)} sx={this.getSxProps()}>\r\n {this.renderContent()}\r\n {FormBaseInstance.contextMapping((context) => (\r\n <BottomBar data={this.props.data} onBlur={context.onBlur} messageErrors={context.messageErrors} before={this.props.slots?.actionBefore} />\r\n ))}\r\n </FormBaseInstance.Form>\r\n ))\r\n }\r\n\r\n renderContent = () => {\r\n const { slots } = this.props\r\n return (\r\n <ContentWrap {...this.props?.slots?.contentProps}>\r\n {slots?.contentBefore && slots?.contentBefore}\r\n {params?.contentBefore}\r\n <Grid container spacing={2}>\r\n {params.configs.map((config, index) => {\r\n const visibility: boolean | undefined = this.configMerged.inputVisibility?.[config.key] ? true : undefined\r\n if (visibility) return <Fragment key={config.key.toString() + index} />\r\n return (\r\n <Fragment key={config.key.toString() + index}>\r\n <Grid item xs={12} {...config.reponsives}>\r\n {this.renderFormFieldElement(config)}\r\n </Grid>\r\n </Fragment>\r\n )\r\n })}\r\n </Grid>\r\n {params?.contentAfter}\r\n {slots?.contentAfter && slots?.contentAfter}\r\n </ContentWrap>\r\n )\r\n }\r\n\r\n renderFormFieldElement = (config: IFormGridLayoutConfig<T>) => {\r\n const { slots, ...otherProps } = this.props\r\n const ElementComponent = config.inputElement ?? InputBaseInstance\r\n const dValue = otherProps.data?.[config.key] ?? config?.defaultValue\r\n const disabled: boolean | undefined = this.configMerged.inputDisabled?.[config.key] ? true : undefined\r\n return FormBaseInstance.contextMapping((context) => (\r\n <ElementComponent\r\n data={this.props.data}\r\n onBlur={context.onBlur}\r\n messageErrors={context.messageErrors}\r\n name={config.key}\r\n label={config.label}\r\n placeholder={config.placeholder}\r\n disabled={disabled}\r\n defaultValue={dValue}\r\n />\r\n ))\r\n }\r\n\r\n loading = () => this.setState({ loadding: true })\r\n\r\n unloading = () => this.setState({ loadding: false })\r\n\r\n componentWillUnmount(): void {\r\n this.abortController?.abort()\r\n }\r\n\r\n onSubmit = async (value: Partial<T>, close?: () => void) => {\r\n const { slots } = this.props\r\n const mapping = params.submitMapping ?? this.submitMapping\r\n const data = mapping(value, this.props.data)\r\n try {\r\n this.loading()\r\n this.abortController?.abort()\r\n this.abortController = new AbortController()\r\n await this.props.onSubmit(data, this.abortController.signal)\r\n if (!slots?.closeState || slots.closeState.Success !== false) {\r\n close && close()\r\n this.props.onClose && this.props.onClose()\r\n }\r\n } catch (error) {\r\n if (slots?.closeState && slots.closeState.Fail === true) {\r\n close && close()\r\n this.props.onClose && this.props.onClose()\r\n }\r\n if (this.props.onError) this.props.onError(error)\r\n } finally {\r\n this.unloading()\r\n }\r\n }\r\n\r\n submitMapping: SubmitMappingEvent<T> = (value, oldValue) => {\r\n return Object.assign({}, oldValue, value)\r\n }\r\n\r\n getSxProps = (): SxProps<Theme> => {\r\n const isLoading = this.state.loadding\r\n return { ...this.props.sx, opacity: isLoading ? 0.7 : 1, pointerEvents: isLoading ? 'none' : 'auto' }\r\n }\r\n }\r\n return FormGridLayout\r\n}\r\n\r\nexport default CreateFormGridLayout\r\n"],"names":["CreateFormGridLayout","params","FormBaseInstance","CreateFormBase","BottomBarInstance","CreateFormBottomBar","InputBaseInstance","CreateInput","maxLength","FormGridLayout","_Component","props","_this","_classCallCheck","_callSuper","_defineProperty","_this$props","slots","_jsxs","ContentWrap","_objectSpread","contentProps","children","contentBefore","_jsx","Grid","container","spacing","configs","map","config","index","_this$configMerged$in","visibility","configMerged","inputVisibility","key","undefined","Fragment","toString","item","xs","reponsives","renderFormFieldElement","contentAfter","_config$inputElement","_otherProps$data$conf","_otherProps$data","_this$configMerged$in2","_this$props2","otherProps","_objectWithoutProperties","_excluded","ElementComponent","inputElement","dValue","data","defaultValue","disabled","inputDisabled","contextMapping","context","onBlur","messageErrors","name","label","placeholder","setState","loadding","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","value","close","_params$submitMapping","mapping","_this$abortController","wrap","_callee$","_context","prev","next","submitMapping","loading","abortController","abort","AbortController","onSubmit","signal","closeState","Success","onClose","t0","Fail","onError","unloading","finish","stop","_x","_x2","apply","arguments","oldValue","Object","assign","isLoading","state","sx","opacity","pointerEvents","_inherits","_createClass","get","_this$props$slots$inp","_this$props$slots","_this$props$slots$inp2","_this$props$slots2","render","_ref2","_params$action","_this$props$slots3","_this2","BottomBar","action","MapGlobalModalContext","_ref3","Form","validate","v","getSxProps","renderContent","_this2$props$slots","before","actionBefore","componentWillUnmount","_this$abortController2","Component"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create.form-grid-layout.js","sources":["../../src/form/create.form-grid-layout.tsx"],"sourcesContent":["import React, { Component, ComponentType, Fragment } from 'react'\r\nimport { BoxProps, Grid, RegularBreakpoints, SxProps, Theme } from '@mui/material'\r\nimport { IFormBase, IFormInputBase } from './types'\r\nimport { MapGlobalModalContext } from '../api-context'\r\nimport { ContentWrap, CreateFormBottomBar } from './create.form-grid-layout.units'\r\nimport FormValidator from './validator'\r\nimport CreateInput from './create.input'\r\nimport CreateFormBase from './create.form-base'\r\n\r\nexport interface IFormGridLayoutConfig<T> {\r\n key: keyof T\r\n label?: string\r\n placeholder?: string\r\n reponsives?: RegularBreakpoints\r\n defaultValue?: any\r\n inputElement?: React.ComponentType<IFormInputBase<T>>\r\n}\r\n\r\nexport type SubmitMappingEvent<T> = (value: Partial<T>, oldValue?: T) => Partial<T>\r\n\r\nexport interface IFormGridLayoutSlots<T> {\r\n action?: React.ComponentType<IFormBase<T>>\r\n actionBefore?: JSX.Element\r\n contentBefore?: JSX.Element\r\n contentAfter?: JSX.Element\r\n inputVisibility?: Partial<Record<keyof T, boolean>>\r\n inputDisabled?: Partial<Record<keyof T, boolean>>\r\n closeState?: { Success?: boolean; Fail?: boolean }\r\n contentProps?: BoxProps\r\n}\r\n\r\nexport interface IFormGridLayoutParams<T> extends IFormGridLayoutSlots<T> {\r\n configs: IFormGridLayoutConfig<T>[]\r\n validate: FormValidator<Partial<T>>\r\n submitMapping?: SubmitMappingEvent<T>\r\n}\r\n\r\nexport interface IFormGridLayoutProps<T> {\r\n data?: T\r\n onSubmit: (value: Partial<T>, signal?: AbortSignal) => Promise<void>\r\n onError?: (error: any) => void\r\n onClose?: () => void\r\n sx?: SxProps<Theme>\r\n slots?: IFormGridLayoutSlots<T>\r\n}\r\n\r\nexport interface IFormGridLayoutState {\r\n loadding?: boolean\r\n}\r\n\r\nconst CreateFormGridLayout = function <T>(params: IFormGridLayoutParams<T>): ComponentType<IFormGridLayoutProps<T>> {\r\n const FormBaseInstance = CreateFormBase<T>()\r\n const BottomBarInstance = CreateFormBottomBar<T>()\r\n const InputBaseInstance = CreateInput<T>({ maxLength: 250 })\r\n\r\n class FormGridLayout extends Component<IFormGridLayoutProps<T>, IFormGridLayoutState> {\r\n private abortController?: AbortController\r\n constructor(props: IFormGridLayoutProps<T>) {\r\n super(props)\r\n this.state = { loadding: false }\r\n }\r\n\r\n get configMerged() {\r\n return {\r\n inputVisibility: this.props.slots?.inputVisibility ?? params.inputVisibility,\r\n inputDisabled: this.props.slots?.inputDisabled ?? params.inputDisabled\r\n }\r\n }\r\n\r\n render() {\r\n const BottomBar = params?.action ?? this.props.slots?.action ?? BottomBarInstance\r\n return MapGlobalModalContext(({ close }) => (\r\n <FormBaseInstance.Form validate={params.validate} onSubmit={(v) => this.onSubmit(v, close)} sx={this.getSxProps()}>\r\n {this.renderContent()}\r\n {FormBaseInstance.contextMapping((context) => (\r\n <BottomBar data={this.props.data} onBlur={context.onBlur} messageErrors={context.messageErrors} before={this.props.slots?.actionBefore} />\r\n ))}\r\n </FormBaseInstance.Form>\r\n ))\r\n }\r\n\r\n renderContent = () => {\r\n const { slots } = this.props\r\n return (\r\n <ContentWrap {...this.props?.slots?.contentProps}>\r\n {slots?.contentBefore && slots?.contentBefore}\r\n {params?.contentBefore}\r\n <Grid container spacing={2}>\r\n {params.configs.map((config, index) => {\r\n const visibility: boolean | undefined = this.configMerged.inputVisibility?.[config.key] ? true : undefined\r\n if (visibility) return <Fragment key={config.key.toString() + index} />\r\n return (\r\n <Fragment key={config.key.toString() + index}>\r\n <Grid item xs={12} {...config.reponsives}>\r\n {this.renderFormFieldElement(config)}\r\n </Grid>\r\n </Fragment>\r\n )\r\n })}\r\n </Grid>\r\n {params?.contentAfter}\r\n {slots?.contentAfter && slots?.contentAfter}\r\n </ContentWrap>\r\n )\r\n }\r\n\r\n renderFormFieldElement = (config: IFormGridLayoutConfig<T>) => {\r\n const { slots, ...otherProps } = this.props\r\n const ElementComponent = config.inputElement ?? InputBaseInstance\r\n const dValue = otherProps.data?.[config.key] ?? config?.defaultValue\r\n const disabled: boolean | undefined = this.configMerged.inputDisabled?.[config.key] ? true : undefined\r\n return FormBaseInstance.contextMapping((context) => (\r\n <ElementComponent\r\n data={this.props.data}\r\n onBlur={context.onBlur}\r\n messageErrors={context.messageErrors}\r\n name={config.key}\r\n label={config.label}\r\n placeholder={config.placeholder}\r\n disabled={disabled}\r\n defaultValue={dValue}\r\n />\r\n ))\r\n }\r\n\r\n loading = () => this.setState({ loadding: true })\r\n\r\n unloading = () => this.setState({ loadding: false })\r\n\r\n componentWillUnmount(): void {\r\n this.abortController?.abort()\r\n }\r\n\r\n onSubmit = async (value: Partial<T>, close?: () => void) => {\r\n const { slots } = this.props\r\n const mapping = params.submitMapping ?? this.submitMapping\r\n const data = mapping(value, this.props.data)\r\n try {\r\n this.loading()\r\n this.abortController?.abort()\r\n this.abortController = new AbortController()\r\n await this.props.onSubmit(data, this.abortController.signal)\r\n if (!slots?.closeState || slots.closeState.Success !== false) {\r\n close && close()\r\n this.props.onClose && this.props.onClose()\r\n }\r\n } catch (error) {\r\n if (slots?.closeState && slots.closeState.Fail === true) {\r\n close && close()\r\n this.props.onClose && this.props.onClose()\r\n }\r\n if (this.props.onError) this.props.onError(error)\r\n } finally {\r\n this.unloading()\r\n }\r\n }\r\n\r\n submitMapping: SubmitMappingEvent<T> = (value, oldValue) => {\r\n return Object.assign({}, oldValue, value)\r\n }\r\n\r\n getSxProps = (): SxProps<Theme> => {\r\n const isLoading = this.state.loadding\r\n return { ...this.props.sx, opacity: isLoading ? 0.7 : 1, pointerEvents: isLoading ? 'none' : 'auto' }\r\n }\r\n }\r\n return FormGridLayout\r\n}\r\n\r\nexport default CreateFormGridLayout\r\n"],"names":["CreateFormGridLayout","params","FormBaseInstance","CreateFormBase","BottomBarInstance","CreateFormBottomBar","InputBaseInstance","CreateInput","maxLength","FormGridLayout","props","_this","_classCallCheck","_callSuper","_defineProperty","_this$props","slots","_jsxs","ContentWrap","_objectSpread","contentProps","children","contentBefore","_jsx","Grid","container","spacing","configs","map","config","index","_this$configMerged$in","visibility","configMerged","inputVisibility","key","undefined","Fragment","item","xs","reponsives","renderFormFieldElement","toString","contentAfter","_config$inputElement","_otherProps$data$conf","_otherProps$data","_this$configMerged$in2","_this$props2","otherProps","_objectWithoutProperties","_excluded","ElementComponent","inputElement","dValue","data","defaultValue","disabled","inputDisabled","contextMapping","context","onBlur","messageErrors","name","label","placeholder","setState","loadding","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","value","close","_params$submitMapping","mapping","_this$abortController","wrap","_context","prev","next","submitMapping","loading","abortController","abort","AbortController","onSubmit","signal","closeState","Success","onClose","t0","Fail","onError","unloading","finish","stop","_x","_x2","apply","this","arguments","oldValue","Object","assign","isLoading","state","sx","opacity","pointerEvents","_inherits","Component","_createClass","get","_this$props$slots$inp","_this$props$slots","_this$props$slots$inp2","_this$props$slots2","_ref2","_params$action","_this$props$slots3","_this2","BottomBar","action","MapGlobalModalContext","_ref3","Form","validate","v","getSxProps","renderContent","_this2$props$slots","before","actionBefore","_this$abortController2"],"mappings":"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"}
|
|
@@ -1,42 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { styled, Box, colors, Button } from '@mui/material';
|
|
3
|
-
|
|
4
|
-
var ContentWrap = styled(Box)({
|
|
5
|
-
padding: '16px 12px 3px',
|
|
6
|
-
maxHeight: "calc(100vh - ".concat(48 * 2 + 12 * 2, "px)"),
|
|
7
|
-
overflowY: 'auto',
|
|
8
|
-
overflowX: 'hidden'
|
|
9
|
-
});
|
|
10
|
-
function CreateFormBottomBar() {
|
|
11
|
-
var FormBottomBar = function FormBottomBar(props) {
|
|
12
|
-
return jsxs(FormBottomBarWrap, {
|
|
13
|
-
className: 'bottom-bar',
|
|
14
|
-
children: [jsx(Box, {
|
|
15
|
-
sx: {
|
|
16
|
-
flex: 1
|
|
17
|
-
},
|
|
18
|
-
children: props.before
|
|
19
|
-
}), jsx(Button, {
|
|
20
|
-
variant: 'contained',
|
|
21
|
-
type: 'submit',
|
|
22
|
-
size: 'small',
|
|
23
|
-
children: "Submit"
|
|
24
|
-
})]
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
return FormBottomBar;
|
|
28
|
-
}
|
|
29
|
-
var FormBottomBarWrap = styled(Box)({
|
|
30
|
-
display: 'flex',
|
|
31
|
-
alignItems: 'center',
|
|
32
|
-
padding: '0 12px',
|
|
33
|
-
boxShadow: 'rgba(145, 158, 171, 0.2) 0px 0px 2px 0px,rgba(145, 158, 171, 0.12) 0px 12px 24px -4px',
|
|
34
|
-
position: 'sticky',
|
|
35
|
-
bottom: 0,
|
|
36
|
-
backgroundColor: colors.common.white,
|
|
37
|
-
zIndex: 1,
|
|
38
|
-
height: '48px'
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
export { ContentWrap, CreateFormBottomBar, FormBottomBarWrap };
|
|
1
|
+
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{styled as e,Box as r,colors as i,Button as a}from"@mui/material";var n=e(r)({padding:"16px 12px 3px",maxHeight:"calc(100vh - ".concat(120,"px)"),overflowY:"auto",overflowX:"hidden"});function p(){return function(e){return o(x,{className:"bottom-bar",children:[t(r,{sx:{flex:1},children:e.before}),t(a,{variant:"contained",type:"submit",size:"small",children:"Submit"})]})}}var x=e(r)({display:"flex",alignItems:"center",padding:"0 12px",boxShadow:"rgba(145, 158, 171, 0.2) 0px 0px 2px 0px,rgba(145, 158, 171, 0.12) 0px 12px 24px -4px",position:"sticky",bottom:0,backgroundColor:i.common.white,zIndex:1,height:"48px"});export{n as ContentWrap,p as CreateFormBottomBar,x as FormBottomBarWrap};
|
|
42
2
|
//# sourceMappingURL=create.form-grid-layout.units.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.form-grid-layout.units.js","sources":["../../src/form/create.form-grid-layout.units.tsx"],"sourcesContent":["import React, { FC, ReactNode } from 'react'\r\nimport { Box, Button, colors, styled } from '@mui/material'\r\nimport { IFormBase } from './types'\r\n\r\nexport const ContentWrap = styled(Box)({\r\n padding: '16px 12px 3px',\r\n maxHeight: `calc(100vh - ${48 * 2 + 12 * 2}px)`,\r\n overflowY: 'auto',\r\n overflowX: 'hidden'\r\n})\r\n\r\nexport interface IFormBottomBarProps<T> extends IFormBase<T> {\r\n before?: ReactNode\r\n}\r\n\r\nexport function CreateFormBottomBar<T>() {\r\n const FormBottomBar: FC<IFormBottomBarProps<T>> = (props) => (\r\n <FormBottomBarWrap className='bottom-bar'>\r\n <Box sx={{ flex: 1 }}>{props.before}</Box>\r\n <Button variant='contained' type='submit' size='small'>\r\n Submit\r\n </Button>\r\n </FormBottomBarWrap>\r\n )\r\n return FormBottomBar\r\n}\r\n\r\nexport const FormBottomBarWrap = styled(Box)({\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '0 12px',\r\n boxShadow: 'rgba(145, 158, 171, 0.2) 0px 0px 2px 0px,rgba(145, 158, 171, 0.12) 0px 12px 24px -4px',\r\n position: 'sticky',\r\n bottom: 0,\r\n backgroundColor: colors.common.white,\r\n zIndex: 1,\r\n height: '48px'\r\n})\r\n"],"names":["ContentWrap","styled","Box","padding","maxHeight","concat","overflowY","overflowX","CreateFormBottomBar","
|
|
1
|
+
{"version":3,"file":"create.form-grid-layout.units.js","sources":["../../src/form/create.form-grid-layout.units.tsx"],"sourcesContent":["import React, { FC, ReactNode } from 'react'\r\nimport { Box, Button, colors, styled } from '@mui/material'\r\nimport { IFormBase } from './types'\r\n\r\nexport const ContentWrap = styled(Box)({\r\n padding: '16px 12px 3px',\r\n maxHeight: `calc(100vh - ${48 * 2 + 12 * 2}px)`,\r\n overflowY: 'auto',\r\n overflowX: 'hidden'\r\n})\r\n\r\nexport interface IFormBottomBarProps<T> extends IFormBase<T> {\r\n before?: ReactNode\r\n}\r\n\r\nexport function CreateFormBottomBar<T>() {\r\n const FormBottomBar: FC<IFormBottomBarProps<T>> = (props) => (\r\n <FormBottomBarWrap className='bottom-bar'>\r\n <Box sx={{ flex: 1 }}>{props.before}</Box>\r\n <Button variant='contained' type='submit' size='small'>\r\n Submit\r\n </Button>\r\n </FormBottomBarWrap>\r\n )\r\n return FormBottomBar\r\n}\r\n\r\nexport const FormBottomBarWrap = styled(Box)({\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '0 12px',\r\n boxShadow: 'rgba(145, 158, 171, 0.2) 0px 0px 2px 0px,rgba(145, 158, 171, 0.12) 0px 12px 24px -4px',\r\n position: 'sticky',\r\n bottom: 0,\r\n backgroundColor: colors.common.white,\r\n zIndex: 1,\r\n height: '48px'\r\n})\r\n"],"names":["ContentWrap","styled","Box","padding","maxHeight","concat","overflowY","overflowX","CreateFormBottomBar","props","_jsxs","FormBottomBarWrap","className","_jsx","sx","flex","children","before","Button","variant","type","size","display","alignItems","boxShadow","position","bottom","backgroundColor","colors","common","white","zIndex","height"],"mappings":"8HAIaA,EAAcC,EAAOC,EAAPD,CAAY,CACrCE,QAAS,gBACTC,UAAS,gBAAAC,OAAkB,IAAoB,OAC/CC,UAAW,OACXC,UAAW,oBAOGC,IASd,OARkD,SAACC,GAAK,OACtDC,EAACC,EAAiB,CAACC,UAAU,uBAC3BC,EAACX,GAAIY,GAAI,CAAEC,KAAM,GAAMC,SAAAP,EAAMQ,SAC7BJ,EAACK,EAAO,CAAAC,QAAQ,YAAYC,KAAK,SAASC,KAAK,QAAOL,SAAA,aAIzD,CAEH,KAEaL,EAAoBV,EAAOC,EAAPD,CAAY,CAC3CqB,QAAS,OACTC,WAAY,SACZpB,QAAS,SACTqB,UAAW,wFACXC,SAAU,SACVC,OAAQ,EACRC,gBAAiBC,EAAOC,OAAOC,MAC/BC,OAAQ,EACRC,OAAQ"}
|