@wavemaker/app-rn-runtime 11.4.0-next.24560 → 11.4.0-next.24562
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.
- app-rn-runtime/components/data/form/form-field/form-field.component.js +14 -0
- app-rn-runtime/components/data/form/form-field/form-field.component.js.map +1 -1
- app-rn-runtime/components/data/form/form-field/form-field.props.js +7 -0
- app-rn-runtime/components/data/form/form-field/form-field.props.js.map +1 -1
- app-rn-runtime/components/data/form/form.component.js +44 -1
- app-rn-runtime/components/data/form/form.component.js.map +1 -1
- app-rn-runtime/components/data/form/form.props.js +2 -0
- app-rn-runtime/components/data/form/form.props.js.map +1 -1
- app-rn-runtime/components/data/liveform/liveform.component.js +102 -0
- app-rn-runtime/components/data/liveform/liveform.component.js.map +1 -0
- app-rn-runtime/components/input/baseinput/baseinput.component.js +2 -2
- app-rn-runtime/components/input/baseinput/baseinput.component.js.map +1 -1
- app-rn-runtime/core/utils.js +4 -0
- app-rn-runtime/core/utils.js.map +1 -1
- app-rn-runtime/package.json +3 -3
- app-rn-runtime/variables/http.service.js +0 -3
- app-rn-runtime/variables/http.service.js.map +1 -1
|
@@ -117,6 +117,15 @@ export default class WmFormField extends BaseComponent {
|
|
|
117
117
|
}
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
|
+
updateFormWidgetDataset(res, displayField) {
|
|
121
|
+
this.formwidget.updateState({
|
|
122
|
+
props: {
|
|
123
|
+
dataset: res.data,
|
|
124
|
+
datafield: 'All Fields',
|
|
125
|
+
displayfield: this.formwidget.state.props.displayfield || displayField
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
}
|
|
120
129
|
setInvalidState(msg) {
|
|
121
130
|
this.updateState({
|
|
122
131
|
isValid: false,
|
|
@@ -143,6 +152,11 @@ export default class WmFormField extends BaseComponent {
|
|
|
143
152
|
get(this, 'form') && this.form.applyDefaultValue(this);
|
|
144
153
|
}
|
|
145
154
|
break;
|
|
155
|
+
case 'primary-key':
|
|
156
|
+
if ($new) {
|
|
157
|
+
this.form.setPrimaryKey(this.props.name);
|
|
158
|
+
}
|
|
159
|
+
break;
|
|
146
160
|
}
|
|
147
161
|
}
|
|
148
162
|
validateFormField() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Text","View","BaseComponent","BaseComponentState","isEqual","get","find","cloneDeep","forEach","keys","WmFormFieldProps","DEFAULT_CLASS","PERFORMANCE_LOGGER","WmFormFieldState","WmFormField","constructor","props","onFieldChangeEvt","name","$new","$old","isDefault","notifyChanges","validateFormField","updateState","datavalue","invokeEventCallback","undefined","form","updateDataOutput","call","observeOn","fields","field","formfield","formFields","f","proxy","notifyForFields","push","formwidget","validate","setTimeout","getPromiseList","validators","arr","fn","promise","Function","bind","Promise","setAsyncValidators","_asyncValidatorFn","all","then","err","validationMsg","hasOwnProperty","messageKeys","toString","setInvalidState","setValidators","_cloneValidators","_syncValidators","obj","index","key","defaultValidatorMessages","value","propsObj","msg","isValid","validationmessage","onPropertyChange","debug","applyDefaultValue","state","errorType","errormsg","errorMessage","renderWidget","childrenWithProps","Children","map","renderFormFields","children","child","cloneElement","invokeEvent","triggerValidation","onFieldChange","formRef","styles","root","_background","errorMsg"],"sources":["form-field.component.tsx"],"sourcesContent":["import React from 'react';\nimport {Text, View} from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { widgetsWithUndefinedValue } from '@wavemaker/app-rn-runtime/core/utils';\nimport { isEqual, get, find, cloneDeep, forEach, keys } from 'lodash';\n\nimport WmFormFieldProps from './form-field.props';\nimport { DEFAULT_CLASS, WmFormFieldStyles } from './form-field.styles';\nimport {PERFORMANCE_LOGGER} from \"@wavemaker/app-rn-runtime/core/logger\";\n\nexport class WmFormFieldState extends BaseComponentState<WmFormFieldProps> {\n isValid = true;\n}\n\nexport default class WmFormField extends BaseComponent<WmFormFieldProps, WmFormFieldState, WmFormFieldStyles> {\n public form: any;\n public formwidget: any;\n public _syncValidators: any;\n public defaultValidatorMessages: any = [];\n private notifyForFields: any = [];\n private _asyncValidatorFn: any;\n constructor(props: WmFormFieldProps) {\n super(props, DEFAULT_CLASS, new WmFormFieldProps(), new WmFormFieldState());\n }\n\n onFieldChangeEvt(name: string, $new: any, $old: any, isDefault: boolean) {\n this.notifyChanges();\n this.validateFormField();\n if (!isEqual($old, $new)) {\n this.updateState({ props: { datavalue: $new }} as WmFormFieldState, () => {\n !isDefault && this.invokeEventCallback('onChange', [undefined, this, $new, $old]);\n });\n if (this.form) {\n this.form.updateDataOutput.call(this.form, get(this.props, 'formKey', this.props.name), $new);\n }\n }\n }\n\n // Registers observer of validation fields\n observeOn(fields: any) {\n forEach(fields, (field) => {\n const formfield = find(this.form.formFields, (f) => f.proxy.name === field);\n if (formfield) {\n formfield.notifyForFields.push(this);\n }\n });\n }\n\n // Notifies changes to observing validation fields\n notifyChanges() {\n forEach(this.notifyForFields, (field) => {\n field.formwidget.validate(field.formwidget.datavalue);\n setTimeout(() => field.validateFormField());\n });\n }\n\n getPromiseList(validators: any) {\n const arr: any = [];\n forEach(validators, (fn) => {\n let promise = fn;\n if (fn instanceof Function && fn.bind) {\n promise = fn(this.formwidget.proxy, this.form);\n }\n if (promise instanceof Promise) {\n arr.push(promise);\n }\n });\n return arr;\n }\n\n // this method sets the asyncValidation on the form field. Assigns validationmessages from the returned response\n setAsyncValidators(validators: any) {\n this._asyncValidatorFn = () => {\n return Promise.all(this.getPromiseList(validators)).then(() => {\n return null;\n }, err => {\n let validationMsg: string;\n // if err obj has validationMessage key, then set validationMessage using this value\n // else return the value of the first key in the err object as validation message.\n if (err.hasOwnProperty('errorMessage')) {\n validationMsg = get(err, 'errorMessage');\n } else {\n const messageKeys = keys(err);\n validationMsg = (err[messageKeys[0]]).toString();\n }\n this.setInvalidState(validationMsg);\n return err;\n })\n };\n }\n\n // sets the default validation on the form field\n setValidators(validators: any) {\n let _cloneValidators = cloneDeep(validators);\n this._syncValidators = [];\n forEach(_cloneValidators, (obj, index) => {\n // custom validation is bound to function.\n if (obj && obj instanceof Function) {\n // passing formwidget and form as arguments to the obj (i.e. validator function)\n _cloneValidators[index] = obj.bind(undefined, this.formwidget.proxy, this.form);\n this._syncValidators.push(_cloneValidators[index]);\n } else {\n // checks for default validator like required, maxchars etc.\n const key = get(obj, 'type');\n this.defaultValidatorMessages[key] = get(obj, 'errorMessage');\n const value = get(obj, 'validator');\n let propsObj: any = {\n props: {}\n };\n propsObj.props[key] = value;\n key === 'required' && this.updateState(propsObj as WmFormFieldState);\n this.formwidget.updateState(propsObj as WmFormFieldState);\n }\n });\n }\n\n setInvalidState(msg: string) {\n this.updateState({\n isValid: false,\n props: {\n validationmessage: msg\n }\n } as WmFormFieldState)\n this.formwidget.updateState({\n isValid: false,\n props: {\n validationmessage: msg\n }\n } as WmFormFieldState);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'datavalue':\n if (!isEqual($old, $new)) {\n PERFORMANCE_LOGGER.debug(`form field ${this.props.name} changed from ${$old} to ${$new}`);\n }\n break;\n case 'defaultvalue':\n if (!isEqual($old, $new)) {\n get(this, 'form') && this.form.applyDefaultValue(this);\n }\n break;\n }\n }\n\n validateFormField() {\n if (this.formwidget?.state.isValid === false) {\n const errorType = this.formwidget?.state?.errorType;\n let validationMsg = get(this.defaultValidatorMessages, errorType);\n if (validationMsg) {\n if (validationMsg instanceof Function) {\n // passing formwidget and form as arguments to the errorMessage function.\n validationMsg = validationMsg(this.formwidget.proxy, this.form);\n }\n this.updateState({ props: {\n validationmessage: validationMsg\n }} as WmFormFieldState);\n }\n this.updateState({ isValid: false} as WmFormFieldState);\n } else {\n this.updateState({ isValid: true } as WmFormFieldState);\n }\n\n this._syncValidators?.forEach((fn: any) => {\n const errormsg = fn();\n let validationMsg = errormsg?.errorMessage;\n if (validationMsg) {\n if (validationMsg instanceof Function) {\n // passing formwidget and form as arguments to the errorMessage function.\n validationMsg = validationMsg(this.formwidget.proxy, this.form);\n }\n this.setInvalidState(validationMsg);\n }\n })\n\n this._asyncValidatorFn && this._asyncValidatorFn();\n\n }\n\n renderWidget(props: WmFormFieldProps) {\n var childrenWithProps = React.Children.map(props.renderFormFields(this.proxy).props.children, (child) => {\n return React.cloneElement(child, {\n datavalue: props.datavalue,\n isValid: this.state.isValid,\n invokeEvent: this.invokeEventCallback.bind(this),\n triggerValidation: this.validateFormField.bind(this),\n onFieldChange: this.onFieldChangeEvt.bind(this),\n formRef: props.formRef });\n });\n return (\n <View style={this.styles.root}>{this._background}{childrenWithProps}\n {this.state.isValid === false && <Text style={this.styles.errorMsg}>{props.validationmessage}</Text>}\n </View>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","Text","View","BaseComponent","BaseComponentState","isEqual","get","find","cloneDeep","forEach","keys","WmFormFieldProps","DEFAULT_CLASS","PERFORMANCE_LOGGER","WmFormFieldState","WmFormField","constructor","props","onFieldChangeEvt","name","$new","$old","isDefault","notifyChanges","validateFormField","updateState","datavalue","invokeEventCallback","undefined","form","updateDataOutput","call","observeOn","fields","field","formfield","formFields","f","proxy","notifyForFields","push","formwidget","validate","setTimeout","getPromiseList","validators","arr","fn","promise","Function","bind","Promise","setAsyncValidators","_asyncValidatorFn","all","then","err","validationMsg","hasOwnProperty","messageKeys","toString","setInvalidState","setValidators","_cloneValidators","_syncValidators","obj","index","key","defaultValidatorMessages","value","propsObj","updateFormWidgetDataset","res","displayField","dataset","data","datafield","displayfield","state","msg","isValid","validationmessage","onPropertyChange","debug","applyDefaultValue","setPrimaryKey","errorType","errormsg","errorMessage","renderWidget","childrenWithProps","Children","map","renderFormFields","children","child","cloneElement","invokeEvent","triggerValidation","onFieldChange","formRef","styles","root","_background","errorMsg"],"sources":["form-field.component.tsx"],"sourcesContent":["import React from 'react';\nimport {Text, View} from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { widgetsWithUndefinedValue } from '@wavemaker/app-rn-runtime/core/utils';\nimport { isEqual, get, find, cloneDeep, forEach, keys } from 'lodash';\n\nimport WmFormFieldProps from './form-field.props';\nimport { DEFAULT_CLASS, WmFormFieldStyles } from './form-field.styles';\nimport {PERFORMANCE_LOGGER} from \"@wavemaker/app-rn-runtime/core/logger\";\n\nexport class WmFormFieldState extends BaseComponentState<WmFormFieldProps> {\n isValid = true;\n}\n\nexport default class WmFormField extends BaseComponent<WmFormFieldProps, WmFormFieldState, WmFormFieldStyles> {\n public form: any;\n public formwidget: any;\n public _syncValidators: any;\n public defaultValidatorMessages: any = [];\n private notifyForFields: any = [];\n private _asyncValidatorFn: any;\n constructor(props: WmFormFieldProps) {\n super(props, DEFAULT_CLASS, new WmFormFieldProps(), new WmFormFieldState());\n }\n\n onFieldChangeEvt(name: string, $new: any, $old: any, isDefault: boolean) {\n this.notifyChanges();\n this.validateFormField();\n if (!isEqual($old, $new)) {\n this.updateState({ props: { datavalue: $new }} as WmFormFieldState, () => {\n !isDefault && this.invokeEventCallback('onChange', [undefined, this, $new, $old]);\n });\n if (this.form) {\n this.form.updateDataOutput.call(this.form, get(this.props, 'formKey', this.props.name), $new);\n }\n }\n }\n\n // Registers observer of validation fields\n observeOn(fields: any) {\n forEach(fields, (field) => {\n const formfield = find(this.form.formFields, (f) => f.proxy.name === field);\n if (formfield) {\n formfield.notifyForFields.push(this);\n }\n });\n }\n\n // Notifies changes to observing validation fields\n notifyChanges() {\n forEach(this.notifyForFields, (field) => {\n field.formwidget.validate(field.formwidget.datavalue);\n setTimeout(() => field.validateFormField());\n });\n }\n\n getPromiseList(validators: any) {\n const arr: any = [];\n forEach(validators, (fn) => {\n let promise = fn;\n if (fn instanceof Function && fn.bind) {\n promise = fn(this.formwidget.proxy, this.form);\n }\n if (promise instanceof Promise) {\n arr.push(promise);\n }\n });\n return arr;\n }\n\n // this method sets the asyncValidation on the form field. Assigns validationmessages from the returned response\n setAsyncValidators(validators: any) {\n this._asyncValidatorFn = () => {\n return Promise.all(this.getPromiseList(validators)).then(() => {\n return null;\n }, err => {\n let validationMsg: string;\n // if err obj has validationMessage key, then set validationMessage using this value\n // else return the value of the first key in the err object as validation message.\n if (err.hasOwnProperty('errorMessage')) {\n validationMsg = get(err, 'errorMessage');\n } else {\n const messageKeys = keys(err);\n validationMsg = (err[messageKeys[0]]).toString();\n }\n this.setInvalidState(validationMsg);\n return err;\n })\n };\n }\n\n // sets the default validation on the form field\n setValidators(validators: any) {\n let _cloneValidators = cloneDeep(validators);\n this._syncValidators = [];\n forEach(_cloneValidators, (obj, index) => {\n // custom validation is bound to function.\n if (obj && obj instanceof Function) {\n // passing formwidget and form as arguments to the obj (i.e. validator function)\n _cloneValidators[index] = obj.bind(undefined, this.formwidget.proxy, this.form);\n this._syncValidators.push(_cloneValidators[index]);\n } else {\n // checks for default validator like required, maxchars etc.\n const key = get(obj, 'type');\n this.defaultValidatorMessages[key] = get(obj, 'errorMessage');\n const value = get(obj, 'validator');\n let propsObj: any = {\n props: {}\n };\n propsObj.props[key] = value;\n key === 'required' && this.updateState(propsObj as WmFormFieldState);\n this.formwidget.updateState(propsObj as WmFormFieldState);\n }\n });\n }\n\n updateFormWidgetDataset(res: any, displayField: string) {\n this.formwidget.updateState({\n props: {\n dataset: res.data,\n datafield: 'All Fields',\n displayfield: this.formwidget.state.props.displayfield || displayField,\n }\n } as WmFormFieldState);\n }\n\n setInvalidState(msg: string) {\n this.updateState({\n isValid: false,\n props: {\n validationmessage: msg\n }\n } as WmFormFieldState)\n this.formwidget.updateState({\n isValid: false,\n props: {\n validationmessage: msg\n }\n } as WmFormFieldState);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'datavalue':\n if (!isEqual($old, $new)) {\n PERFORMANCE_LOGGER.debug(`form field ${this.props.name} changed from ${$old} to ${$new}`);\n }\n break;\n case 'defaultvalue':\n if (!isEqual($old, $new)) {\n get(this, 'form') && this.form.applyDefaultValue(this);\n }\n break;\n case 'primary-key':\n if ($new) {\n this.form.setPrimaryKey(this.props.name);\n }\n break;\n }\n }\n\n validateFormField() {\n if (this.formwidget?.state.isValid === false) {\n const errorType = this.formwidget?.state?.errorType;\n let validationMsg = get(this.defaultValidatorMessages, errorType);\n if (validationMsg) {\n if (validationMsg instanceof Function) {\n // passing formwidget and form as arguments to the errorMessage function.\n validationMsg = validationMsg(this.formwidget.proxy, this.form);\n }\n this.updateState({ props: {\n validationmessage: validationMsg\n }} as WmFormFieldState);\n }\n this.updateState({ isValid: false} as WmFormFieldState);\n } else {\n this.updateState({ isValid: true } as WmFormFieldState);\n }\n\n this._syncValidators?.forEach((fn: any) => {\n const errormsg = fn();\n let validationMsg = errormsg?.errorMessage;\n if (validationMsg) {\n if (validationMsg instanceof Function) {\n // passing formwidget and form as arguments to the errorMessage function.\n validationMsg = validationMsg(this.formwidget.proxy, this.form);\n }\n this.setInvalidState(validationMsg);\n }\n })\n\n this._asyncValidatorFn && this._asyncValidatorFn();\n\n }\n\n renderWidget(props: WmFormFieldProps) {\n var childrenWithProps = React.Children.map(props.renderFormFields(this.proxy).props.children, (child) => {\n return React.cloneElement(child, {\n datavalue: props.datavalue,\n isValid: this.state.isValid,\n invokeEvent: this.invokeEventCallback.bind(this),\n triggerValidation: this.validateFormField.bind(this),\n onFieldChange: this.onFieldChangeEvt.bind(this),\n formRef: props.formRef });\n });\n return (\n <View style={this.styles.root}>{this._background}{childrenWithProps}\n {this.state.isValid === false && <Text style={this.styles.errorMsg}>{props.validationmessage}</Text>}\n </View>\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAQC,IAAI,EAAEC,IAAI,QAAO,cAAc;AACvC,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,SAASC,OAAO,EAAEC,GAAG,EAAEC,IAAI,EAAEC,SAAS,EAAEC,OAAO,EAAEC,IAAI,QAAQ,QAAQ;AAErE,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,aAAa,QAA2B,qBAAqB;AACtE,SAAQC,kBAAkB,QAAO,uCAAuC;AAExE,OAAO,MAAMC,gBAAgB,SAASV,kBAAkB,CAAmB;EAAA;IAAA;IAAA,iCAC/D,IAAI;EAAA;AAChB;AAEA,eAAe,MAAMW,WAAW,SAASZ,aAAa,CAAwD;EAO5Ga,WAAW,CAACC,KAAuB,EAAE;IACnC,KAAK,CAACA,KAAK,EAAEL,aAAa,EAAE,IAAID,gBAAgB,EAAE,EAAE,IAAIG,gBAAgB,EAAE,CAAC;IAAC;IAAA;IAAA;IAAA,kDAJvC,EAAE;IAAA,yCACV,EAAE;IAAA;EAIjC;EAEAI,gBAAgB,CAACC,IAAY,EAAEC,IAAS,EAAEC,IAAS,EAAEC,SAAkB,EAAE;IACvE,IAAI,CAACC,aAAa,EAAE;IACpB,IAAI,CAACC,iBAAiB,EAAE;IACxB,IAAI,CAACnB,OAAO,CAACgB,IAAI,EAAED,IAAI,CAAC,EAAE;MACxB,IAAI,CAACK,WAAW,CAAC;QAAER,KAAK,EAAE;UAAES,SAAS,EAAEN;QAAK;MAAC,CAAC,EAAsB,MAAM;QACxE,CAACE,SAAS,IAAI,IAAI,CAACK,mBAAmB,CAAC,UAAU,EAAE,CAACC,SAAS,EAAE,IAAI,EAAER,IAAI,EAAEC,IAAI,CAAC,CAAC;MACnF,CAAC,CAAC;MACF,IAAI,IAAI,CAACQ,IAAI,EAAE;QACb,IAAI,CAACA,IAAI,CAACC,gBAAgB,CAACC,IAAI,CAAC,IAAI,CAACF,IAAI,EAAEvB,GAAG,CAAC,IAAI,CAACW,KAAK,EAAE,SAAS,EAAE,IAAI,CAACA,KAAK,CAACE,IAAI,CAAC,EAAEC,IAAI,CAAC;MAC/F;IACF;EACF;;EAEA;EACAY,SAAS,CAACC,MAAW,EAAE;IACrBxB,OAAO,CAACwB,MAAM,EAAGC,KAAK,IAAK;MACzB,MAAMC,SAAS,GAAG5B,IAAI,CAAC,IAAI,CAACsB,IAAI,CAACO,UAAU,EAAGC,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACnB,IAAI,KAAKe,KAAK,CAAC;MAC3E,IAAIC,SAAS,EAAE;QACbA,SAAS,CAACI,eAAe,CAACC,IAAI,CAAC,IAAI,CAAC;MACtC;IACF,CAAC,CAAC;EACJ;;EAEA;EACAjB,aAAa,GAAG;IACdd,OAAO,CAAC,IAAI,CAAC8B,eAAe,EAAGL,KAAK,IAAK;MACvCA,KAAK,CAACO,UAAU,CAACC,QAAQ,CAACR,KAAK,CAACO,UAAU,CAACf,SAAS,CAAC;MACrDiB,UAAU,CAAC,MAAMT,KAAK,CAACV,iBAAiB,EAAE,CAAC;IAC7C,CAAC,CAAC;EACJ;EAEAoB,cAAc,CAACC,UAAe,EAAE;IAC9B,MAAMC,GAAQ,GAAG,EAAE;IACnBrC,OAAO,CAACoC,UAAU,EAAGE,EAAE,IAAK;MAC1B,IAAIC,OAAO,GAAGD,EAAE;MAChB,IAAIA,EAAE,YAAYE,QAAQ,IAAIF,EAAE,CAACG,IAAI,EAAE;QACrCF,OAAO,GAAGD,EAAE,CAAC,IAAI,CAACN,UAAU,CAACH,KAAK,EAAE,IAAI,CAACT,IAAI,CAAC;MAChD;MACA,IAAImB,OAAO,YAAYG,OAAO,EAAE;QAC9BL,GAAG,CAACN,IAAI,CAACQ,OAAO,CAAC;MACnB;IACF,CAAC,CAAC;IACF,OAAOF,GAAG;EACZ;;EAEA;EACAM,kBAAkB,CAACP,UAAe,EAAE;IAClC,IAAI,CAACQ,iBAAiB,GAAG,MAAM;MAC3B,OAAOF,OAAO,CAACG,GAAG,CAAC,IAAI,CAACV,cAAc,CAACC,UAAU,CAAC,CAAC,CAACU,IAAI,CAAC,MAAM;QAC7D,OAAO,IAAI;MACb,CAAC,EAAEC,GAAG,IAAI;QACR,IAAIC,aAAqB;QACzB;QACA;QACA,IAAID,GAAG,CAACE,cAAc,CAAC,cAAc,CAAC,EAAE;UACtCD,aAAa,GAAGnD,GAAG,CAACkD,GAAG,EAAE,cAAc,CAAC;QAC1C,CAAC,MAAM;UACL,MAAMG,WAAW,GAAGjD,IAAI,CAAC8C,GAAG,CAAC;UAC7BC,aAAa,GAAID,GAAG,CAACG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAEC,QAAQ,EAAE;QAClD;QACA,IAAI,CAACC,eAAe,CAACJ,aAAa,CAAC;QACnC,OAAOD,GAAG;MACZ,CAAC,CAAC;IACJ,CAAC;EACL;;EAEA;EACAM,aAAa,CAACjB,UAAe,EAAE;IAC7B,IAAIkB,gBAAgB,GAAGvD,SAAS,CAACqC,UAAU,CAAC;IAC5C,IAAI,CAACmB,eAAe,GAAG,EAAE;IACzBvD,OAAO,CAACsD,gBAAgB,EAAE,CAACE,GAAG,EAAEC,KAAK,KAAK;MACxC;MACA,IAAID,GAAG,IAAIA,GAAG,YAAYhB,QAAQ,EAAE;QAClC;QACAc,gBAAgB,CAACG,KAAK,CAAC,GAAGD,GAAG,CAACf,IAAI,CAACtB,SAAS,EAAE,IAAI,CAACa,UAAU,CAACH,KAAK,EAAE,IAAI,CAACT,IAAI,CAAC;QAC/E,IAAI,CAACmC,eAAe,CAACxB,IAAI,CAACuB,gBAAgB,CAACG,KAAK,CAAC,CAAC;MACpD,CAAC,MAAM;QACL;QACA,MAAMC,GAAG,GAAG7D,GAAG,CAAC2D,GAAG,EAAE,MAAM,CAAC;QAC5B,IAAI,CAACG,wBAAwB,CAACD,GAAG,CAAC,GAAG7D,GAAG,CAAC2D,GAAG,EAAE,cAAc,CAAC;QAC7D,MAAMI,KAAK,GAAG/D,GAAG,CAAC2D,GAAG,EAAE,WAAW,CAAC;QACnC,IAAIK,QAAa,GAAG;UAClBrD,KAAK,EAAE,CAAC;QACV,CAAC;QACDqD,QAAQ,CAACrD,KAAK,CAACkD,GAAG,CAAC,GAAGE,KAAK;QAC3BF,GAAG,KAAK,UAAU,IAAI,IAAI,CAAC1C,WAAW,CAAC6C,QAAQ,CAAqB;QACpE,IAAI,CAAC7B,UAAU,CAAChB,WAAW,CAAC6C,QAAQ,CAAqB;MAC3D;IACF,CAAC,CAAC;EACJ;EAEAC,uBAAuB,CAACC,GAAQ,EAAEC,YAAoB,EAAE;IACtD,IAAI,CAAChC,UAAU,CAAChB,WAAW,CAAC;MAC1BR,KAAK,EAAE;QACLyD,OAAO,EAAEF,GAAG,CAACG,IAAI;QACjBC,SAAS,EAAE,YAAY;QACvBC,YAAY,EAAE,IAAI,CAACpC,UAAU,CAACqC,KAAK,CAAC7D,KAAK,CAAC4D,YAAY,IAAIJ;MAC5D;IACF,CAAC,CAAqB;EACxB;EAEAZ,eAAe,CAACkB,GAAW,EAAE;IAC3B,IAAI,CAACtD,WAAW,CAAC;MACfuD,OAAO,EAAE,KAAK;MACd/D,KAAK,EAAE;QACLgE,iBAAiB,EAAEF;MACrB;IACF,CAAC,CAAqB;IACtB,IAAI,CAACtC,UAAU,CAAChB,WAAW,CAAC;MAC1BuD,OAAO,EAAE,KAAK;MACd/D,KAAK,EAAE;QACLgE,iBAAiB,EAAEF;MACrB;IACF,CAAC,CAAqB;EACxB;EAEAG,gBAAgB,CAAC/D,IAAY,EAAEC,IAAS,EAAEC,IAAS,EAAE;IACnD,QAAQF,IAAI;MACV,KAAK,WAAW;QACd,IAAI,CAACd,OAAO,CAACgB,IAAI,EAAED,IAAI,CAAC,EAAE;UACxBP,kBAAkB,CAACsE,KAAK,CAAE,cAAa,IAAI,CAAClE,KAAK,CAACE,IAAK,iBAAgBE,IAAK,OAAMD,IAAK,EAAC,CAAC;QAC3F;QACA;MACF,KAAK,cAAc;QACjB,IAAI,CAACf,OAAO,CAACgB,IAAI,EAAED,IAAI,CAAC,EAAE;UACxBd,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAACuB,IAAI,CAACuD,iBAAiB,CAAC,IAAI,CAAC;QACxD;QACA;MACF,KAAK,aAAa;QAChB,IAAIhE,IAAI,EAAE;UACR,IAAI,CAACS,IAAI,CAACwD,aAAa,CAAC,IAAI,CAACpE,KAAK,CAACE,IAAI,CAAC;QAC1C;QACA;IAAM;EAEZ;EAEAK,iBAAiB,GAAG;IAAA;IAClB,IAAI,yBAAI,CAACiB,UAAU,qDAAf,iBAAiBqC,KAAK,CAACE,OAAO,MAAK,KAAK,EAAE;MAAA;MAC5C,MAAMM,SAAS,wBAAG,IAAI,CAAC7C,UAAU,+EAAf,kBAAiBqC,KAAK,0DAAtB,sBAAwBQ,SAAS;MACnD,IAAI7B,aAAa,GAAGnD,GAAG,CAAC,IAAI,CAAC8D,wBAAwB,EAAEkB,SAAS,CAAC;MACjE,IAAI7B,aAAa,EAAE;QACjB,IAAIA,aAAa,YAAYR,QAAQ,EAAE;UACrC;UACAQ,aAAa,GAAGA,aAAa,CAAC,IAAI,CAAChB,UAAU,CAACH,KAAK,EAAE,IAAI,CAACT,IAAI,CAAC;QACjE;QACA,IAAI,CAACJ,WAAW,CAAC;UAAER,KAAK,EAAE;YACtBgE,iBAAiB,EAAExB;UACrB;QAAC,CAAC,CAAqB;MAC3B;MACA,IAAI,CAAChC,WAAW,CAAC;QAAEuD,OAAO,EAAE;MAAK,CAAC,CAAqB;IACzD,CAAC,MAAM;MACL,IAAI,CAACvD,WAAW,CAAC;QAAEuD,OAAO,EAAE;MAAK,CAAC,CAAqB;IACzD;IAEA,6BAAI,CAAChB,eAAe,0DAApB,sBAAsBvD,OAAO,CAAEsC,EAAO,IAAK;MACzC,MAAMwC,QAAQ,GAAGxC,EAAE,EAAE;MACrB,IAAIU,aAAa,GAAG8B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEC,YAAY;MAC1C,IAAI/B,aAAa,EAAE;QACjB,IAAIA,aAAa,YAAYR,QAAQ,EAAE;UACrC;UACAQ,aAAa,GAAGA,aAAa,CAAC,IAAI,CAAChB,UAAU,CAACH,KAAK,EAAE,IAAI,CAACT,IAAI,CAAC;QACjE;QACA,IAAI,CAACgC,eAAe,CAACJ,aAAa,CAAC;MACrC;IACF,CAAC,CAAC;IAEF,IAAI,CAACJ,iBAAiB,IAAI,IAAI,CAACA,iBAAiB,EAAE;EAEpD;EAEAoC,YAAY,CAACxE,KAAuB,EAAE;IACpC,IAAIyE,iBAAiB,GAAG1F,KAAK,CAAC2F,QAAQ,CAACC,GAAG,CAAC3E,KAAK,CAAC4E,gBAAgB,CAAC,IAAI,CAACvD,KAAK,CAAC,CAACrB,KAAK,CAAC6E,QAAQ,EAAGC,KAAK,IAAK;MACvG,oBAAO/F,KAAK,CAACgG,YAAY,CAACD,KAAK,EAAE;QAC7BrE,SAAS,EAAET,KAAK,CAACS,SAAS;QAC1BsD,OAAO,EAAE,IAAI,CAACF,KAAK,CAACE,OAAO;QAC3BiB,WAAW,EAAE,IAAI,CAACtE,mBAAmB,CAACuB,IAAI,CAAC,IAAI,CAAC;QAChDgD,iBAAiB,EAAE,IAAI,CAAC1E,iBAAiB,CAAC0B,IAAI,CAAC,IAAI,CAAC;QACpDiD,aAAa,EAAE,IAAI,CAACjF,gBAAgB,CAACgC,IAAI,CAAC,IAAI,CAAC;QAC/CkD,OAAO,EAAEnF,KAAK,CAACmF;MAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,oBACE,oBAAC,IAAI;MAAC,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;IAAK,GAAE,IAAI,CAACC,WAAW,EAAEb,iBAAiB,EAChE,IAAI,CAACZ,KAAK,CAACE,OAAO,KAAK,KAAK,iBAAI,oBAAC,IAAI;MAAC,KAAK,EAAE,IAAI,CAACqB,MAAM,CAACG;IAAS,GAAEvF,KAAK,CAACgE,iBAAiB,CAAQ,CAC/F;EAEX;AACF"}
|
|
@@ -8,14 +8,21 @@ export default class WmFormFieldProps extends BaseProps {
|
|
|
8
8
|
_defineProperty(this, "children", void 0);
|
|
9
9
|
_defineProperty(this, "formRef", void 0);
|
|
10
10
|
_defineProperty(this, "defaultvalue", void 0);
|
|
11
|
+
_defineProperty(this, "generator", '');
|
|
11
12
|
_defineProperty(this, "datavalue", void 0);
|
|
12
13
|
_defineProperty(this, "onChange", void 0);
|
|
13
14
|
_defineProperty(this, "renderFormFields", void 0);
|
|
14
15
|
_defineProperty(this, "validationmessage", void 0);
|
|
15
16
|
_defineProperty(this, "required", false);
|
|
17
|
+
_defineProperty(this, "primaryKey", false);
|
|
18
|
+
_defineProperty(this, "isRelated", void 0);
|
|
16
19
|
_defineProperty(this, "widget", void 0);
|
|
17
20
|
_defineProperty(this, "onFieldChange", void 0);
|
|
18
21
|
_defineProperty(this, "formKey", '');
|
|
22
|
+
_defineProperty(this, "dataset", void 0);
|
|
23
|
+
_defineProperty(this, "displayfield", void 0);
|
|
24
|
+
_defineProperty(this, "datafield", '');
|
|
25
|
+
_defineProperty(this, "isDataSetBound", false);
|
|
19
26
|
_defineProperty(this, "onValidate", void 0);
|
|
20
27
|
}
|
|
21
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseProps","WmFormFieldProps"],"sources":["form-field.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmFormFieldProps extends BaseProps {\n children: any;\n formRef: any;\n defaultvalue: any;\n datavalue: any;\n onChange: any;\n renderFormFields: any;\n validationmessage: any;\n required: Boolean = false;\n widget: any;\n onFieldChange: any;\n formKey: string = '';\n onValidate?: Function;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,gBAAgB,SAASD,SAAS,CAAC;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,
|
|
1
|
+
{"version":3,"names":["BaseProps","WmFormFieldProps"],"sources":["form-field.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmFormFieldProps extends BaseProps {\n children: any;\n formRef: any;\n defaultvalue: any;\n generator: string = '';\n datavalue: any;\n onChange: any;\n renderFormFields: any;\n validationmessage: any;\n required: Boolean = false;\n primaryKey: Boolean = false;\n isRelated: any;\n widget: any;\n onFieldChange: any;\n formKey: string = '';\n dataset: any;\n displayfield: any;\n datafield: string = '';\n isDataSetBound: boolean = false;\n onValidate?: Function;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,gBAAgB,SAASD,SAAS,CAAC;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA,mCAIlC,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA,kCAKF,KAAK;IAAA,oCACH,KAAK;IAAA;IAAA;IAAA;IAAA,iCAIT,EAAE;IAAA;IAAA;IAAA,mCAGA,EAAE;IAAA,wCACI,KAAK;IAAA;EAAA;AAEjC"}
|
|
@@ -12,6 +12,7 @@ import WmMessage from '@wavemaker/app-rn-runtime/components/basic/message/messag
|
|
|
12
12
|
import { ToastConsumer } from '@wavemaker/app-rn-runtime/core/toast.service';
|
|
13
13
|
import WmFormProps from './form.props';
|
|
14
14
|
import { DEFAULT_CLASS } from './form.styles';
|
|
15
|
+
import { isDataSetWidget } from '@wavemaker/app-rn-runtime/core/utils';
|
|
15
16
|
export class WmFormState extends BaseComponentState {
|
|
16
17
|
constructor() {
|
|
17
18
|
super(...arguments);
|
|
@@ -32,6 +33,7 @@ export default class WmForm extends BaseComponent {
|
|
|
32
33
|
_defineProperty(this, "formfields", {});
|
|
33
34
|
_defineProperty(this, "formdataoutput", void 0);
|
|
34
35
|
_defineProperty(this, "toaster", void 0);
|
|
36
|
+
_defineProperty(this, "primaryKey", []);
|
|
35
37
|
_defineProperty(this, "formWidgets", {});
|
|
36
38
|
_defineProperty(this, "_debouncedSubmitForm", debounce(this.handleSubmit, 250));
|
|
37
39
|
}
|
|
@@ -75,6 +77,23 @@ export default class WmForm extends BaseComponent {
|
|
|
75
77
|
set(this.formdataoutput, name, w.props.datavalue);
|
|
76
78
|
}
|
|
77
79
|
});
|
|
80
|
+
this.updateState({
|
|
81
|
+
props: {
|
|
82
|
+
dataoutput: this.formdataoutput
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
_updateFieldOnDataSourceChange(field, formFields) {
|
|
88
|
+
if (!field.state.props.isDataSetBound && isDataSetWidget(field.props.widget)) {
|
|
89
|
+
if (field.state.props.isRelated) {
|
|
90
|
+
field.updateState({
|
|
91
|
+
props: {
|
|
92
|
+
isDataSetBound: true
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
this.props.relatedData && this.props.relatedData(field);
|
|
96
|
+
}
|
|
78
97
|
}
|
|
79
98
|
}
|
|
80
99
|
applyFormData() {
|
|
@@ -126,6 +145,9 @@ export default class WmForm extends BaseComponent {
|
|
|
126
145
|
}
|
|
127
146
|
}
|
|
128
147
|
}
|
|
148
|
+
get dataoutput() {
|
|
149
|
+
return this.formdataoutput;
|
|
150
|
+
}
|
|
129
151
|
applyDefaultValue(formField) {
|
|
130
152
|
if (formField) {
|
|
131
153
|
this.updateFormFieldDefaultValue(formField);
|
|
@@ -168,11 +190,27 @@ export default class WmForm extends BaseComponent {
|
|
|
168
190
|
this._debouncedSubmitForm();
|
|
169
191
|
}
|
|
170
192
|
onPropertyChange(name, $new, $old) {
|
|
193
|
+
var _this$formFields;
|
|
171
194
|
switch (name) {
|
|
172
195
|
case 'formdata':
|
|
173
196
|
if ($new) {
|
|
174
197
|
this.applyFormData();
|
|
175
198
|
}
|
|
199
|
+
break;
|
|
200
|
+
case 'dataset':
|
|
201
|
+
(_this$formFields = this.formFields) === null || _this$formFields === void 0 ? void 0 : _this$formFields.forEach(w => {
|
|
202
|
+
this._updateFieldOnDataSourceChange(w, this.formFields);
|
|
203
|
+
});
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
setPrimaryKey(fieldName) {
|
|
208
|
+
/*Store the primary key of data*/
|
|
209
|
+
this.primaryKey = this.primaryKey || [];
|
|
210
|
+
// @ts-ignore
|
|
211
|
+
if (this.primaryKey.indexOf(fieldName) === -1) {
|
|
212
|
+
// @ts-ignore
|
|
213
|
+
this.primaryKey.push(fieldName);
|
|
176
214
|
}
|
|
177
215
|
}
|
|
178
216
|
// Disable the form submit if form is in invalid state. Highlight all the invalid fields if validation type is default
|
|
@@ -182,7 +220,7 @@ export default class WmForm extends BaseComponent {
|
|
|
182
220
|
const val = field === null || field === void 0 ? void 0 : field.state.props.datavalue;
|
|
183
221
|
const onValidate = get(field, 'props.onValidate');
|
|
184
222
|
onValidate && onValidate(field);
|
|
185
|
-
if (!val && field !== null && field !== void 0 && field.state.props.required) {
|
|
223
|
+
if (!val && field !== null && field !== void 0 && field.state.props.required && field.state.props.generator === 'assigned') {
|
|
186
224
|
isValid = false;
|
|
187
225
|
const msg = get(field.defaultValidatorMessages, 'required') || field.state.props.validationmessage;
|
|
188
226
|
field.updateState({
|
|
@@ -247,6 +285,11 @@ export default class WmForm extends BaseComponent {
|
|
|
247
285
|
}
|
|
248
286
|
});
|
|
249
287
|
this.parentFormRef && this.parentFormRef.updateDataOutput(undefined, this.formdataoutput);
|
|
288
|
+
this.updateState({
|
|
289
|
+
props: {
|
|
290
|
+
dataoutput: this.formdataoutput
|
|
291
|
+
}
|
|
292
|
+
});
|
|
250
293
|
}
|
|
251
294
|
toggleMessage(type, message) {
|
|
252
295
|
if (this.state.props.messagelayout === 'Inline') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","BaseComponent","BaseComponentState","isDefined","debounce","find","forEach","get","set","WmLabel","WmIcon","WmMessage","ToastConsumer","WmFormProps","DEFAULT_CLASS","WmFormState","WmForm","constructor","props","handleSubmit","componentDidMount","getParentFormRef","parentForm","pformName","current","parent","parentFormRef","registerFormFields","formFields","formWidgets","w","form","formwidget","formKey","name","f","formfields","applyFormData","applyDefaultValue","formdataoutput","datavalue","formData","state","formdata","formField","fw","key","setState","isDefault","updateState","updateFormFieldDefaultValue","dv","defaultvalue","field","invokeEventCallback","bind","undefined","formreset","ff","id","widget","isValid","reset","submit","_debouncedSubmitForm","onPropertyChange","$new","$old","validateFieldsOnSubmit","val","onValidate","required","msg","defaultValidatorMessages","validationmessage","validate","event","preventDefault","dataoutput","onBeforesubmit","proxy","formSubmit","data","onResultCb","error","response","status","onSuccess","postmessage","toggleMessage","onError","errormessage","updateDataOutput","Object","assign","type","message","messagelayout","showInlineMsg","toaster","showToast","placement","styles","bottom","text","hideOnClick","onMsgClose","renderWidget","toastService","root","_background","iconclass","title","subheading","heading","flex","flexDirection","listIcon","children"],"sources":["form.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { isDefined, widgetsWithUndefinedValue } from '@wavemaker/app-rn-runtime/core/utils';\nimport { debounce, find, forEach, get, set } from 'lodash';\n\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport WmFormField, { WmFormFieldState } from '@wavemaker/app-rn-runtime/components/data/form/form-field/form-field.component';\nimport WmMessage from '@wavemaker/app-rn-runtime/components/basic/message/message.component';\nimport { ToastConsumer, ToastService } from '@wavemaker/app-rn-runtime/core/toast.service';\n\nimport WmFormProps from './form.props';\nimport { DEFAULT_CLASS, WmFormStyles } from './form.styles';\nimport WmSkeleton, { createSkeleton } from '../../basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport class WmFormState extends BaseComponentState<WmFormProps> {\n isValid = false;\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined = 'success';\n message: string = '';\n showInlineMsg: boolean = false;\n}\nexport default class WmForm extends BaseComponent<WmFormProps, WmFormState, WmFormStyles> {\n public formFields: Array<WmFormField> = []; // contains array of direct widget elements [WmText, WmNumber, WmCurrent]\n public parentFormRef: any;\n public formfields: {[key: string]: WmFormField} = {};\n private formdataoutput: any;\n private toaster: any;\n formWidgets: { [key: string]: BaseComponent<any, any, any> } = {}; // object containing key as name of formField and value as WmFormField proxy.\n constructor(props: WmFormProps) {\n super(props, DEFAULT_CLASS, new WmFormProps());\n }\n\n private _debouncedSubmitForm = debounce(this.handleSubmit, 250);\n\n componentDidMount() {\n super.componentDidMount();\n this.getParentFormRef(this.props.parentForm);\n }\n\n getParentFormRef(pformName: string) {\n let current = this.parent;\n while (current) {\n if (get(current, 'props.name') === pformName) {\n this.parentFormRef = current;\n break;\n }\n current = current.parent;\n }\n }\n\n registerFormFields(\n formFields: Array<WmFormField>,\n formWidgets: { [key: string]: BaseComponent<any, any, any> }\n ) {\n forEach(formFields, (w: WmFormField) => {\n if (!w.form) {\n w.form = this;\n w.formwidget = (w.props.formKey && formWidgets[w.props.formKey]) \n || (w.props.name && formWidgets[w.props.name]);\n }\n });\n\n this.formFields = formFields;\n this.formWidgets = formWidgets;\n\n formFields.forEach((f: WmFormField) => {\n if (f.props.name) {\n set(this.formfields, f.props.name, f);\n }\n })\n\n this.applyFormData();\n this.applyDefaultValue();\n\n // setting default form dataoutput.\n if (!this.formdataoutput) {\n this.formdataoutput = {};\n formFields.forEach((w: WmFormField) => {\n const name = get(w.props, 'formKey') || w.props.name;\n if (name) {\n set(this.formdataoutput, name, w.props.datavalue);\n }\n });\n }\n }\n\n applyFormData() {\n let formData = this.state.props.formdata || this.parentFormRef?.state.props.formdata;\n if (!formData || (this.parentFormRef && this.state.props.formdata)) {\n return;\n }\n forEach(this.formFields, (formField: WmFormField) => {\n let fw = formField.props?.name && this.formWidgets[formField.props.name];\n if (!fw) {\n fw = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n let key = get(formField, 'formKey') || get(fw, 'props.name');\n fw && fw.setState({ isDefault: true });\n formField.updateState({\n props: {\n datavalue: get(formData, key)\n }\n } as WmFormFieldState);\n });\n }\n\n updateFormFieldDefaultValue(formField: WmFormField) {\n if (formField) {\n const dv = formField.state.props.defaultvalue;\n if (isDefined(dv) && dv !== null && this.formFields) {\n let field = formField.props?.name && this.formWidgets[formField.props.name];\n if (!field) {\n field = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n if (field) {\n field.setState({ isDefault: true });\n field.updateState({\n props: {\n datavalue: dv\n }\n }, this.invokeEventCallback.bind(formField, 'onFieldChange', [undefined, formField, dv]));\n }\n }\n }\n }\n\n applyDefaultValue(formField?: WmFormField) {\n if (formField) {\n this.updateFormFieldDefaultValue(formField);\n return;\n }\n forEach(this.formFields, (w: WmFormField) => {\n this.updateFormFieldDefaultValue(w);\n });\n }\n\n formreset() {\n forEach(this.formFields, (ff: WmFormField) => {\n ff.updateState({\n props : {\n datavalue: ''\n }\n } as WmFormFieldState, () => {\n const id = ff.props.formKey || ff.props.name;\n if (id) {\n let widget: BaseComponent<any, any, any> | undefined | any = this.formWidgets[id];\n if (!widget) {\n widget = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === ff.props.name\n });\n }\n widget.updateState({\n isValid: true,\n props : {\n datavalue: ''\n }\n }, () => ff.updateState({\n isValid: true\n } as WmFormFieldState));\n widget?.reset();\n }\n }\n );\n });\n }\n\n submit() {\n this._debouncedSubmitForm();\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'formdata':\n if ($new) {\n this.applyFormData();\n }\n }\n }\n // Disable the form submit if form is in invalid state. Highlight all the invalid fields if validation type is default\n validateFieldsOnSubmit() {\n let isValid = true;\n forEach(this.formFields, (field) => {\n const val = field?.state.props.datavalue;\n\n const onValidate = get(field, 'props.onValidate');\n onValidate && onValidate(field);\n if (!val && field?.state.props.required) {\n isValid = false;\n const msg = get(field.defaultValidatorMessages, 'required') || field.state.props.validationmessage;\n field.updateState({ isValid: isValid, props: {\n validationmessage: msg\n }} as WmFormFieldState);\n field.formwidget.validate && field.formwidget.validate(val);\n }\n // check for isvalid state of formwidget\n if (field.formwidget.state.isValid === false) {\n isValid = false;\n }\n });\n return isValid;\n }\n\n // @ts-ignore\n handleSubmit(event?: any) {\n event?.preventDefault();\n const formData = this.state.props.dataoutput || this.formdataoutput;\n\n if (!this.validateFieldsOnSubmit()) {\n return false;\n }\n if (this.props.onBeforesubmit) {\n this.invokeEventCallback('onBeforesubmit', [ null, this.proxy, formData ]);\n }\n if (this.props.formSubmit) {\n this.props.formSubmit(formData, ((data: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(get(data, 'params'), 'success');\n }), ((error: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(error, '');\n }));\n } else {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n }\n }\n\n onResultCb(response: any, status: string, event?: any) {\n this.invokeEventCallback('onResult', [ null, this.proxy, response ]);\n if (status) {\n this.invokeEventCallback('onSuccess', [ null, this.proxy, response ]);\n !this.props.onSuccess && this.state.props.postmessage && this.toggleMessage('success', this.state.props.postmessage);\n } else {\n this.invokeEventCallback('onError', [ null, this.proxy, response ]);\n !this.props.onError && this.toggleMessage('error', this.state.props.errormessage || get(response, 'message'));\n }\n }\n\n updateDataOutput(key: string, val: any) {\n const current = this.formdataoutput || {};\n if (key) {\n set(current, key, val);\n } else {\n Object.assign(current, val)\n }\n this.formdataoutput = current;\n this.updateState({ props: { dataoutput: current }} as WmFormState);\n this.parentFormRef && this.parentFormRef.updateDataOutput(undefined, this.formdataoutput);\n }\n\n toggleMessage(\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined,\n message: string\n ) {\n if (this.state.props.messagelayout === 'Inline') {\n this.setState({\n type: type,\n message: message,\n showInlineMsg: true\n } as WmFormState)\n return;\n }\n this.toaster.showToast({\n name: this, placement: \"\", styles: {bottom: 0},\n text: message,\n type: type,\n hideOnClick: true\n });\n }\n\n onMsgClose() {\n this.setState({\n showInlineMsg: false\n } as WmFormState)\n }\n\n renderWidget(props: WmFormProps) {\n return (\n <ToastConsumer>\n {(toastService: ToastService) => {\n this.toaster = toastService;\n return <View style={this.styles.root}>\n {this._background}\n {props.iconclass || props.title || props.subheading ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>\n ) : null}\n {this.state.showInlineMsg ? <WmMessage type={this.state.type} caption={this.state.message} hideclose={false} onClose={this.onMsgClose.bind(this)}></WmMessage> : null\n }\n {props.children}\n </View>\n }\n }\n </ToastConsumer>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","View","BaseComponent","BaseComponentState","isDefined","debounce","find","forEach","get","set","WmLabel","WmIcon","WmMessage","ToastConsumer","WmFormProps","DEFAULT_CLASS","isDataSetWidget","WmFormState","WmForm","constructor","props","handleSubmit","componentDidMount","getParentFormRef","parentForm","pformName","current","parent","parentFormRef","registerFormFields","formFields","formWidgets","w","form","formwidget","formKey","name","f","formfields","applyFormData","applyDefaultValue","formdataoutput","datavalue","updateState","dataoutput","_updateFieldOnDataSourceChange","field","state","isDataSetBound","widget","isRelated","relatedData","formData","formdata","formField","fw","key","setState","isDefault","updateFormFieldDefaultValue","dv","defaultvalue","invokeEventCallback","bind","undefined","formreset","ff","id","isValid","reset","submit","_debouncedSubmitForm","onPropertyChange","$new","$old","setPrimaryKey","fieldName","primaryKey","indexOf","push","validateFieldsOnSubmit","val","onValidate","required","generator","msg","defaultValidatorMessages","validationmessage","validate","event","preventDefault","onBeforesubmit","proxy","formSubmit","data","onResultCb","error","response","status","onSuccess","postmessage","toggleMessage","onError","errormessage","updateDataOutput","Object","assign","type","message","messagelayout","showInlineMsg","toaster","showToast","placement","styles","bottom","text","hideOnClick","onMsgClose","renderWidget","toastService","root","_background","iconclass","title","subheading","heading","flex","flexDirection","listIcon","children"],"sources":["form.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { isDefined, widgetsWithUndefinedValue } from '@wavemaker/app-rn-runtime/core/utils';\nimport { debounce, find, forEach, get, set } from 'lodash';\n\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport WmFormField, { WmFormFieldState } from '@wavemaker/app-rn-runtime/components/data/form/form-field/form-field.component';\nimport WmMessage from '@wavemaker/app-rn-runtime/components/basic/message/message.component';\nimport { ToastConsumer, ToastService } from '@wavemaker/app-rn-runtime/core/toast.service';\n\nimport WmFormProps from './form.props';\nimport { DEFAULT_CLASS, WmFormStyles } from './form.styles';\nimport WmSkeleton, { createSkeleton } from '../../basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\nimport { isDataSetWidget } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport class WmFormState extends BaseComponentState<WmFormProps> {\n isValid = false;\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined = 'success';\n message: string = '';\n showInlineMsg: boolean = false;\n}\nexport default class WmForm extends BaseComponent<WmFormProps, WmFormState, WmFormStyles> {\n public formFields: Array<WmFormField> = []; // contains array of direct widget elements [WmText, WmNumber, WmCurrent]\n public parentFormRef: any;\n public formfields: {[key: string]: WmFormField} = {};\n public formdataoutput: any;\n private toaster: any;\n primaryKey = [];\n formWidgets: { [key: string]: BaseComponent<any, any, any> } = {}; // object containing key as name of formField and value as WmFormField proxy.\n constructor(props: WmFormProps) {\n super(props, DEFAULT_CLASS, new WmFormProps());\n }\n\n private _debouncedSubmitForm = debounce(this.handleSubmit, 250);\n\n componentDidMount() {\n super.componentDidMount();\n this.getParentFormRef(this.props.parentForm);\n }\n\n getParentFormRef(pformName: string) {\n let current = this.parent;\n while (current) {\n if (get(current, 'props.name') === pformName) {\n this.parentFormRef = current;\n break;\n }\n current = current.parent;\n }\n }\n\n registerFormFields(\n formFields: Array<WmFormField>,\n formWidgets: { [key: string]: BaseComponent<any, any, any> }\n ) {\n forEach(formFields, (w: WmFormField) => {\n if (!w.form) {\n w.form = this;\n w.formwidget = (w.props.formKey && formWidgets[w.props.formKey])\n || (w.props.name && formWidgets[w.props.name]);\n }\n });\n\n this.formFields = formFields;\n this.formWidgets = formWidgets;\n\n formFields.forEach((f: WmFormField) => {\n if (f.props.name) {\n set(this.formfields, f.props.name, f);\n }\n })\n\n this.applyFormData();\n this.applyDefaultValue();\n\n // setting default form dataoutput.\n if (!this.formdataoutput) {\n this.formdataoutput = {};\n formFields.forEach((w: WmFormField) => {\n const name = get(w.props, 'formKey') || w.props.name;\n if (name) {\n set(this.formdataoutput, name, w.props.datavalue);\n }\n });\n this.updateState({\n props: {\n dataoutput: this.formdataoutput\n }\n } as WmFormState);\n }\n }\n\n private _updateFieldOnDataSourceChange(field: WmFormField, formFields: Array<WmFormField>) {\n if (!field.state.props.isDataSetBound && isDataSetWidget(field.props.widget)) {\n if (field.state.props.isRelated) {\n field.updateState({\n props: {\n isDataSetBound: true\n }} as WmFormFieldState);\n this.props.relatedData && this.props.relatedData(field);\n }\n }\n }\n\n applyFormData() {\n let formData = this.state.props.formdata || this.parentFormRef?.state.props.formdata;\n if (!formData || (this.parentFormRef && this.state.props.formdata)) {\n return;\n }\n forEach(this.formFields, (formField: WmFormField) => {\n let fw = formField.props?.name && this.formWidgets[formField.props.name];\n if (!fw) {\n fw = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n let key = get(formField, 'formKey') || get(fw, 'props.name');\n fw && fw.setState({ isDefault: true });\n formField.updateState({\n props: {\n datavalue: get(formData, key)\n }\n } as WmFormFieldState);\n });\n }\n\n updateFormFieldDefaultValue(formField: WmFormField) {\n if (formField) {\n const dv = formField.state.props.defaultvalue;\n if (isDefined(dv) && dv !== null && this.formFields) {\n let field = formField.props?.name && this.formWidgets[formField.props.name];\n if (!field) {\n field = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n if (field) {\n field.setState({ isDefault: true });\n field.updateState({\n props: {\n datavalue: dv\n }\n }, this.invokeEventCallback.bind(formField, 'onFieldChange', [undefined, formField, dv]));\n }\n }\n }\n }\n\n get dataoutput() {\n return this.formdataoutput;\n }\n\n applyDefaultValue(formField?: WmFormField) {\n if (formField) {\n this.updateFormFieldDefaultValue(formField);\n return;\n }\n forEach(this.formFields, (w: WmFormField) => {\n this.updateFormFieldDefaultValue(w);\n });\n }\n\n formreset() {\n forEach(this.formFields, (ff: WmFormField) => {\n ff.updateState({\n props : {\n datavalue: ''\n }\n } as WmFormFieldState, () => {\n const id = ff.props.formKey || ff.props.name;\n if (id) {\n let widget: BaseComponent<any, any, any> | undefined | any = this.formWidgets[id];\n if (!widget) {\n widget = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === ff.props.name\n });\n }\n widget.updateState({\n isValid: true,\n props : {\n datavalue: ''\n }\n }, () => ff.updateState({\n isValid: true\n } as WmFormFieldState));\n widget?.reset();\n }\n }\n );\n });\n }\n\n submit() {\n this._debouncedSubmitForm();\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'formdata':\n if ($new) {\n this.applyFormData();\n }\n break;\n case 'dataset':\n this.formFields?.forEach((w: WmFormField) => {\n this._updateFieldOnDataSourceChange(w, this.formFields);\n });\n break;\n }\n }\n setPrimaryKey(fieldName: string) {\n /*Store the primary key of data*/\n this.primaryKey = this.primaryKey || [];\n // @ts-ignore\n if (this.primaryKey.indexOf(fieldName) === -1) {\n // @ts-ignore\n this.primaryKey.push(fieldName);\n }\n }\n // Disable the form submit if form is in invalid state. Highlight all the invalid fields if validation type is default\n validateFieldsOnSubmit() {\n let isValid = true;\n forEach(this.formFields, (field) => {\n const val = field?.state.props.datavalue;\n\n const onValidate = get(field, 'props.onValidate');\n onValidate && onValidate(field);\n if (!val && field?.state.props.required && field.state.props.generator === 'assigned') {\n isValid = false;\n const msg = get(field.defaultValidatorMessages, 'required') || field.state.props.validationmessage;\n field.updateState({ isValid: isValid, props: {\n validationmessage: msg\n }} as WmFormFieldState);\n field.formwidget.validate && field.formwidget.validate(val);\n }\n // check for isvalid state of formwidget\n if (field.formwidget.state.isValid === false) {\n isValid = false;\n }\n });\n return isValid;\n }\n\n // @ts-ignore\n handleSubmit(event?: any) {\n event?.preventDefault();\n const formData = this.state.props.dataoutput || this.formdataoutput;\n\n if (!this.validateFieldsOnSubmit()) {\n return false;\n }\n if (this.props.onBeforesubmit) {\n this.invokeEventCallback('onBeforesubmit', [ null, this.proxy, formData ]);\n }\n if (this.props.formSubmit) {\n this.props.formSubmit(formData, ((data: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(get(data, 'params'), 'success');\n }), ((error: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(error, '');\n }));\n } else {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n }\n }\n\n onResultCb(response: any, status: string, event?: any) {\n this.invokeEventCallback('onResult', [ null, this.proxy, response ]);\n if (status) {\n this.invokeEventCallback('onSuccess', [ null, this.proxy, response ]);\n !this.props.onSuccess && this.state.props.postmessage && this.toggleMessage('success', this.state.props.postmessage);\n } else {\n this.invokeEventCallback('onError', [ null, this.proxy, response ]);\n !this.props.onError && this.toggleMessage('error', this.state.props.errormessage || get(response, 'message'));\n }\n }\n\n updateDataOutput(key: string, val: any) {\n const current = this.formdataoutput || {};\n if (key) {\n set(current, key, val);\n } else {\n Object.assign(current, val)\n }\n this.formdataoutput = current;\n this.updateState({ props: { dataoutput: current }} as WmFormState);\n this.parentFormRef && this.parentFormRef.updateDataOutput(undefined, this.formdataoutput);\n this.updateState({\n props: {\n dataoutput: this.formdataoutput\n }\n } as WmFormState);\n }\n\n toggleMessage(\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined,\n message: string\n ) {\n if (this.state.props.messagelayout === 'Inline') {\n this.setState({\n type: type,\n message: message,\n showInlineMsg: true\n } as WmFormState)\n return;\n }\n this.toaster.showToast({\n name: this, placement: \"\", styles: {bottom: 0},\n text: message,\n type: type,\n hideOnClick: true\n });\n }\n\n onMsgClose() {\n this.setState({\n showInlineMsg: false\n } as WmFormState)\n }\n\n renderWidget(props: WmFormProps) {\n return (\n <ToastConsumer>\n {(toastService: ToastService) => {\n this.toaster = toastService;\n return <View style={this.styles.root}>\n {this._background}\n {props.iconclass || props.title || props.subheading ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>\n ) : null}\n {this.state.showInlineMsg ? <WmMessage type={this.state.type} caption={this.state.message} hideclose={false} onClose={this.onMsgClose.bind(this)}></WmMessage> : null\n }\n {props.children}\n </View>\n }\n }\n </ToastConsumer>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ export default class WmFormProps extends BaseProps {
|
|
|
17
17
|
_defineProperty(this, "errormessage", 'An error occured. Please try again!');
|
|
18
18
|
_defineProperty(this, "messagelayout", 'Inline');
|
|
19
19
|
_defineProperty(this, "formSubmit", () => {});
|
|
20
|
+
_defineProperty(this, "formSuccess", () => {});
|
|
21
|
+
_defineProperty(this, "relatedData", () => {});
|
|
20
22
|
_defineProperty(this, "onSuccess", () => {});
|
|
21
23
|
_defineProperty(this, "onError", () => {});
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseProps","WmFormProps"],"sources":["form.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmFormProps extends BaseProps {\n children: any;\n dataoutput: any;\n onBeforesubmit: any;\n formdata: any;\n parentForm: string = '';\n title: any;\n subheading: any;\n iconclass: any;\n postmessage: string = 'Data posted successfully';\n errormessage: string = 'An error occured. Please try again!';\n messagelayout: string = 'Inline';\n formSubmit: Function = () => {};\n onSuccess: Function = () => {};\n onError: Function = () => {};\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,WAAW,SAASD,SAAS,CAAC;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,oCAK5B,EAAE;IAAA;IAAA;IAAA;IAAA,qCAID,0BAA0B;IAAA,sCACzB,qCAAqC;IAAA,uCACpC,QAAQ;IAAA,oCACT,MAAM,CAAC,CAAC;IAAA,
|
|
1
|
+
{"version":3,"names":["BaseProps","WmFormProps"],"sources":["form.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmFormProps extends BaseProps {\n children: any;\n dataoutput: any;\n onBeforesubmit: any;\n formdata: any;\n parentForm: string = '';\n title: any;\n subheading: any;\n iconclass: any;\n postmessage: string = 'Data posted successfully';\n errormessage: string = 'An error occured. Please try again!';\n messagelayout: string = 'Inline';\n formSubmit: Function = () => {};\n formSuccess: Function = () => {};\n relatedData: Function = () => {};\n onSuccess: Function = () => {};\n onError: Function = () => {};\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,WAAW,SAASD,SAAS,CAAC;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,oCAK5B,EAAE;IAAA;IAAA;IAAA;IAAA,qCAID,0BAA0B;IAAA,sCACzB,qCAAqC;IAAA,uCACpC,QAAQ;IAAA,oCACT,MAAM,CAAC,CAAC;IAAA,qCACP,MAAM,CAAC,CAAC;IAAA,qCACR,MAAM,CAAC,CAAC;IAAA,mCACV,MAAM,CAAC,CAAC;IAAA,iCACV,MAAM,CAAC,CAAC;EAAA;AAC9B"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
|
+
import { BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
|
|
5
|
+
import { forEach, isEmpty, some, get } from 'lodash';
|
|
6
|
+
import WmForm from '@wavemaker/app-rn-runtime/components/data/form/form.component';
|
|
7
|
+
export class WmFormState extends BaseComponentState {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
_defineProperty(this, "isValid", false);
|
|
11
|
+
_defineProperty(this, "type", 'success');
|
|
12
|
+
_defineProperty(this, "message", '');
|
|
13
|
+
_defineProperty(this, "showInlineMsg", false);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const Live_Operations = {
|
|
17
|
+
INSERT: 'insert',
|
|
18
|
+
UPDATE: 'update',
|
|
19
|
+
DELETE: 'delete',
|
|
20
|
+
READ: 'read'
|
|
21
|
+
};
|
|
22
|
+
export default class WmLiveForm extends WmForm {
|
|
23
|
+
findOperationType() {
|
|
24
|
+
let operation;
|
|
25
|
+
let isPrimary = false;
|
|
26
|
+
// const sourceOperation = this.form.datasource && this.form.datasource.execute(DataSource.Operation.GET_OPERATION_TYPE);
|
|
27
|
+
// if (sourceOperation && sourceOperation !== 'read') {
|
|
28
|
+
// return sourceOperation;
|
|
29
|
+
// }
|
|
30
|
+
/*If OperationType is not set then based on the formdata object return the operation type,
|
|
31
|
+
this case occurs only if the form is outside a livegrid*/
|
|
32
|
+
/*If the formdata object has primary key value then return update else insert*/
|
|
33
|
+
if (this.primaryKey && !isEmpty(this.state.props.formdata)) {
|
|
34
|
+
/*If only one column is primary key*/
|
|
35
|
+
if (this.primaryKey.length === 1) {
|
|
36
|
+
if (this.state.props.formdata[this.primaryKey[0]]) {
|
|
37
|
+
operation = Live_Operations.UPDATE;
|
|
38
|
+
}
|
|
39
|
+
/*If only no column is primary key*/
|
|
40
|
+
} else if (this.primaryKey.length === 0) {
|
|
41
|
+
forEach(this.state.props.formdata, value => {
|
|
42
|
+
if (value) {
|
|
43
|
+
isPrimary = true;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
if (isPrimary) {
|
|
47
|
+
operation = Live_Operations.UPDATE;
|
|
48
|
+
}
|
|
49
|
+
/*If multiple columns are primary key*/
|
|
50
|
+
} else {
|
|
51
|
+
// @ts-ignore
|
|
52
|
+
isPrimary = some(this.primaryKey, primaryKey => {
|
|
53
|
+
if (this.state.props.formdata[primaryKey]) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
if (isPrimary) {
|
|
58
|
+
operation = Live_Operations.UPDATE;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return operation || Live_Operations.INSERT;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// @ts-ignore
|
|
66
|
+
handleSubmit(event) {
|
|
67
|
+
event === null || event === void 0 ? void 0 : event.preventDefault();
|
|
68
|
+
const formData = this.state.props.dataoutput || this.formdataoutput;
|
|
69
|
+
const operationType = this.findOperationType();
|
|
70
|
+
if (!this.validateFieldsOnSubmit()) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
if (this.props.onBeforesubmit) {
|
|
74
|
+
this.invokeEventCallback('onBeforesubmit', [null, this.proxy, formData]);
|
|
75
|
+
}
|
|
76
|
+
if (this.props.formSubmit) {
|
|
77
|
+
this.props.formSubmit({
|
|
78
|
+
inputFields: formData
|
|
79
|
+
}, operationType, data => {
|
|
80
|
+
this.invokeEventCallback('onSubmit', [null, this.proxy, formData]);
|
|
81
|
+
this.onResultCb(get(data, 'params'), 'success');
|
|
82
|
+
}, error => {
|
|
83
|
+
this.invokeEventCallback('onSubmit', [null, this.proxy, formData]);
|
|
84
|
+
this.onResultCb(error, '');
|
|
85
|
+
});
|
|
86
|
+
} else {
|
|
87
|
+
this.invokeEventCallback('onSubmit', [null, this.proxy, formData]);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
onResultCb(response, status, event) {
|
|
91
|
+
this.invokeEventCallback('onResult', [null, this.proxy, response]);
|
|
92
|
+
if (status) {
|
|
93
|
+
this.invokeEventCallback('onSuccess', [null, this.proxy, response]);
|
|
94
|
+
this.props.formSuccess && this.props.formSuccess();
|
|
95
|
+
!this.props.onSuccess && this.state.props.postmessage && this.toggleMessage('success', this.state.props.postmessage);
|
|
96
|
+
} else {
|
|
97
|
+
this.invokeEventCallback('onError', [null, this.proxy, response]);
|
|
98
|
+
!this.props.onError && this.toggleMessage('error', this.state.props.errormessage || get(response, 'message'));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=liveform.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BaseComponentState","forEach","isEmpty","some","get","WmForm","WmFormState","Live_Operations","INSERT","UPDATE","DELETE","READ","WmLiveForm","findOperationType","operation","isPrimary","primaryKey","state","props","formdata","length","value","handleSubmit","event","preventDefault","formData","dataoutput","formdataoutput","operationType","validateFieldsOnSubmit","onBeforesubmit","invokeEventCallback","proxy","formSubmit","inputFields","data","onResultCb","error","response","status","formSuccess","onSuccess","postmessage","toggleMessage","onError","errormessage"],"sources":["liveform.component.tsx"],"sourcesContent":["import { BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { forEach, isEmpty, some, get } from 'lodash';\n\nimport WmFormProps from '../form/form.props';\nimport WmForm from '@wavemaker/app-rn-runtime/components/data/form/form.component';\n\nexport class WmFormState extends BaseComponentState<WmFormProps> {\n isValid = false;\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined = 'success';\n message: string = '';\n showInlineMsg: boolean = false;\n}\nconst Live_Operations = {\n INSERT : 'insert',\n UPDATE : 'update',\n DELETE : 'delete',\n READ : 'read'\n}\n\nexport default class WmLiveForm extends WmForm {\n\n findOperationType() {\n let operation;\n let isPrimary = false;\n // const sourceOperation = this.form.datasource && this.form.datasource.execute(DataSource.Operation.GET_OPERATION_TYPE);\n // if (sourceOperation && sourceOperation !== 'read') {\n // return sourceOperation;\n // }\n /*If OperationType is not set then based on the formdata object return the operation type,\n this case occurs only if the form is outside a livegrid*/\n /*If the formdata object has primary key value then return update else insert*/\n if (this.primaryKey && !isEmpty(this.state.props.formdata)) {\n /*If only one column is primary key*/\n if (this.primaryKey.length === 1) {\n if (this.state.props.formdata[this.primaryKey[0]]) {\n operation = Live_Operations.UPDATE;\n }\n /*If only no column is primary key*/\n } else if (this.primaryKey.length === 0) {\n forEach(this.state.props.formdata, (value) => {\n if (value) {\n isPrimary = true;\n }\n });\n if (isPrimary) {\n operation = Live_Operations.UPDATE;\n }\n /*If multiple columns are primary key*/\n } else {\n // @ts-ignore\n isPrimary = some(this.primaryKey, (primaryKey: any) => {\n if (this.state.props.formdata[primaryKey]) {\n return true;\n }\n });\n if (isPrimary) {\n operation = Live_Operations.UPDATE;\n }\n }\n }\n return operation || Live_Operations.INSERT;\n }\n\n // @ts-ignore\n handleSubmit(event?: any) {\n event?.preventDefault();\n const formData = this.state.props.dataoutput || this.formdataoutput;\n const operationType = this.findOperationType();\n\n if (!this.validateFieldsOnSubmit()) {\n return false;\n }\n if (this.props.onBeforesubmit) {\n this.invokeEventCallback('onBeforesubmit', [ null, this.proxy, formData ]);\n }\n if (this.props.formSubmit) {\n this.props.formSubmit({inputFields: formData}, operationType, ((data: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(get(data, 'params'), 'success');\n }), ((error: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(error, '');\n }));\n } else {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n }\n }\n\n onResultCb(response: any, status: string, event?: any) {\n this.invokeEventCallback('onResult', [ null, this.proxy, response ]);\n if (status) {\n this.invokeEventCallback('onSuccess', [ null, this.proxy, response ]);\n this.props.formSuccess && this.props.formSuccess();\n !this.props.onSuccess && this.state.props.postmessage && this.toggleMessage('success', this.state.props.postmessage);\n } else {\n this.invokeEventCallback('onError', [ null, this.proxy, response ]);\n !this.props.onError && this.toggleMessage('error', this.state.props.errormessage || get(response, 'message'));\n }\n }\n\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
2
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
3
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
|
-
import { DEFAULT_CLASS } from
|
|
4
|
+
import { DEFAULT_CLASS } from '@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.styles';
|
|
5
5
|
import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
|
|
6
6
|
import { isString } from 'lodash';
|
|
7
7
|
import { Platform } from 'react-native';
|
|
@@ -131,7 +131,7 @@ export class BaseInputComponent extends BaseComponent {
|
|
|
131
131
|
}
|
|
132
132
|
validate(value) {
|
|
133
133
|
const validationObj = validateField(this.state.props, value);
|
|
134
|
-
this.
|
|
134
|
+
this.setState({
|
|
135
135
|
isValid: validationObj.isValid,
|
|
136
136
|
errorType: validationObj.errorType
|
|
137
137
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_CLASS","BaseComponent","BaseComponentState","isString","Platform","validateField","Injector","BaseInputState","BaseInputComponent","constructor","props","defaultClass","defaultProps","defaultState","focus","widgetRef","blur","onPropertyChange","name","$new","$old","keyboardType","type","updateState","textValue","isDefault","state","onFieldChange","bind","onChange","event","updateon","updateDatavalue","target","value","onChangeText","validate","invokeChange","e","OS","cursor","selectionStart","setState","source","oldValue","datavalue","autotrim","trim","invokeEventCallback","proxy","onBlur","FOCUSED_ELEMENT","remove","isTouched","newVal","oldVal","setTimeout","triggerValidation","validationObj","isValid","errorType","onFocus","set","onKeyPress"],"sources":["baseinput.component.ts"],"sourcesContent":["import { DEFAULT_CLASS } from
|
|
1
|
+
{"version":3,"names":["DEFAULT_CLASS","BaseComponent","BaseComponentState","isString","Platform","validateField","Injector","BaseInputState","BaseInputComponent","constructor","props","defaultClass","defaultProps","defaultState","focus","widgetRef","blur","onPropertyChange","name","$new","$old","keyboardType","type","updateState","textValue","isDefault","state","onFieldChange","bind","onChange","event","updateon","updateDatavalue","target","value","onChangeText","validate","invokeChange","e","OS","cursor","selectionStart","setState","source","oldValue","datavalue","autotrim","trim","invokeEventCallback","proxy","onBlur","FOCUSED_ELEMENT","remove","isTouched","newVal","oldVal","setTimeout","triggerValidation","validationObj","isValid","errorType","onFocus","set","onKeyPress"],"sources":["baseinput.component.ts"],"sourcesContent":["import { DEFAULT_CLASS } from '@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.styles';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport BaseInputProps from './baseinput.props';\nimport { isString } from 'lodash';\nimport { BaseInputStyles } from './baseinput.styles';\nimport { Platform, TextInput } from 'react-native';\nimport { validateField } from '@wavemaker/app-rn-runtime/core/utils';\nimport Injector from '@wavemaker/app-rn-runtime/core/injector';\n\nexport class BaseInputState <T extends BaseInputProps> extends BaseComponentState<T> {\n keyboardType: any = 'default';\n isValid: boolean = true;\n textValue: string = '';\n isDefault = false;\n errorType: string = '';\n}\nexport abstract class BaseInputComponent< T extends BaseInputProps, S extends BaseInputState<T>, L extends BaseInputStyles> extends BaseComponent<T, S, L> {\n public widgetRef: TextInput | null = null;\n isTouched: boolean = false;\n private cursor: any = 0;\n constructor(props: T, public defaultClass: string = DEFAULT_CLASS, defaultProps?: T, defaultState?: S) {\n super(props, defaultClass, defaultProps, defaultState);\n }\n\n focus() {\n this?.widgetRef?.focus();\n }\n\n blur() {\n this?.widgetRef?.blur && this?.widgetRef?.blur();\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'type':\n let keyboardType;\n if (this.props.type === 'number') {\n keyboardType = 'numeric';\n } else if (this.props.type === 'tel') {\n keyboardType = 'phone-pad';\n } else if (this.props.type === 'email') {\n keyboardType = 'email-address';\n }\n this.updateState({\n keyboardType: keyboardType,\n } as S);\n break;\n case 'datavalue':\n this.updateState({\n textValue: $new\n } as S\n );\n const isDefault = this.state.isDefault;\n if (isDefault) {\n this.updateState({ isDefault: false } as S, this.props.onFieldChange && this.props.onFieldChange.bind(this, 'datavalue', $new, $old, isDefault));\n } else {\n this.props.onFieldChange && this.props.onFieldChange('datavalue', $new, $old, isDefault);\n }\n }\n }\n\n onChange(event: any) {\n if (this.state.props.updateon === 'default') {\n this.updateDatavalue(event.target.value, event);\n }\n }\n\n onChangeText(value: any) {\n this.updateState({\n textValue: value\n } as S, () => {\n if (this.state.props.updateon === 'default') {\n this.validate(value);\n this.updateDatavalue(value, null);\n }\n }\n );\n }\n\n invokeChange(e: any) {\n if (Platform.OS === 'web') {\n this.cursor = e.target.selectionStart;\n this.setState({ textValue: e.target.value });\n }\n }\n\n updateDatavalue(value: any, event?: any, source?: any) {\n const props = this.state.props;\n const oldValue = props.datavalue;\n if (value === oldValue) {\n return;\n }\n\n // autotrim\n if (props.autotrim && props.datavalue && isString(props.datavalue)) {\n value = value.trim();\n }\n\n this.updateState({\n props: {\n datavalue: value\n }\n } as S, () => {\n !this.props.onFieldChange && value !== oldValue && this.invokeEventCallback('onChange', [event, this.proxy, value, oldValue]);\n if (source === 'blur') {\n this.invokeEventCallback('onBlur', [ event, this.proxy]);\n }\n })\n\n }\n\n onBlur(event: any) {\n Injector.FOCUSED_ELEMENT.remove();\n this.isTouched = true;\n let newVal = event.target.value || this.state.textValue;\n let oldVal = this.state.props.datavalue || '';\n this.validate(newVal);\n if (newVal === '') {\n setTimeout(() => {\n this.props.triggerValidation && this.props.triggerValidation();\n })\n }\n if (this.state.props.updateon === 'blur') {\n if (oldVal !== newVal) {\n this.updateDatavalue(newVal, event, 'blur');\n } else {\n this.invokeEventCallback('onBlur', [event, this.proxy]);\n }\n }\n }\n\n validate(value: any) {\n const validationObj = validateField(this.state.props, value);\n this.setState({\n isValid: validationObj.isValid,\n errorType: validationObj.errorType\n } as S);\n }\n\n onFocus(event: any) {\n Injector.FOCUSED_ELEMENT.set(this);\n this.invokeEventCallback('onFocus', [ event, this.proxy]);\n }\n\n onKeyPress(event: any) {\n this.invokeEventCallback('onKeypress', [ event, this.proxy]);\n }\n}\n"],"mappings":"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"}
|
app-rn-runtime/core/utils.js
CHANGED
|
@@ -291,4 +291,8 @@ export const toBase64 = function (path) {
|
|
|
291
291
|
encoding: 'base64'
|
|
292
292
|
});
|
|
293
293
|
};
|
|
294
|
+
const DATASET_WIDGETS = new Set(['select', 'checkboxset', 'radioset', 'switch', 'autocomplete', 'chips', 'typeahead', 'rating']);
|
|
295
|
+
export const isDataSetWidget = widget => {
|
|
296
|
+
return DATASET_WIDGETS.has(widget);
|
|
297
|
+
};
|
|
294
298
|
//# sourceMappingURL=utils.js.map
|
app-rn-runtime/core/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","moment","FileSystem","isFunction","includes","isUndefined","isNull","orderBy","groupBy","toLower","get","forEach","sortBy","cloneDeep","keys","values","isArray","isString","isNumber","GROUP_BY_OPTIONS","ALPHABET","WORD","OTHERS","TIME_ROLLUP_OPTIONS","HOUR","DAY","WEEK","MONTH","YEAR","_deepCopy","o1","o2","o","Object","k","v","deepCopy","objects","toBoolean","val","undefined","toNumber","parseFloat","e","encodeUrl","url","splits","split","hash","params","length","map","p","encodeURIComponent","join","encodeURI","isWebPreviewMode","OS","isDevMode","__DEV__","widgetsWithUndefinedValue","isAndroid","test","window","navigator","userAgent","isIos","getGroupKey","fieldDef","groupby","widgetScope","innerItem","apply","proxy","getGroupedData","fieldDefs","match","orderby","dateFormat","groupKey","groupedLiData","concatStr","toString","trim","substr","replace","format","getSortedGroupedData","getOrderedDataset","dataSet","items","fields","directions","obj","item","push","_groupedData","groupkey","index","liData","key","data","_groupIndex","isDefined","unStringify","defaultVal","number","parseInt","isNaN","retryIfFails","fn","interval","maxRetries","onBeforeRetry","Promise","resolve","retryCount","tryFn","reject","errorFn","errArgs","arguments","setTimeout","then","retry","getAbortableDefer","_defer","promise","onAbort","isAborted","abort","validateField","props","value","requiredCheck","regexCheck","required","errorType","isValid","regexp","condition","RegExp","maxchars","mindate","Date","datavalue","startOf","toDate","maxdate","endOf","toBase64","path","readAsStringAsync","encoding"],"sources":["utils.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport moment from \"moment\";\nimport * as FileSystem from \"expo-file-system\";\nimport { isFunction, includes, isUndefined, isNull, orderBy, groupBy, toLower, get, forEach, sortBy, cloneDeep, keys, values, isArray, isString, isNumber} from 'lodash';\n\ndeclare const window: any;\nconst GROUP_BY_OPTIONS = {\n ALPHABET: 'alphabet',\n WORD: 'word',\n OTHERS: 'Others'\n};\nconst TIME_ROLLUP_OPTIONS = {\n HOUR: 'hour',\n DAY: 'day',\n WEEK: 'week',\n MONTH: 'month',\n YEAR: 'year'\n};\n\nconst _deepCopy = (o1: any, ...o2: any) => {\n o2.forEach((o: any) => {\n if (o) {\n Object.keys(o).forEach(k => {\n const v = o[k];\n if (v && !isString(v) && !isArray(v) && typeof v === 'object') {\n o1[k] = _deepCopy(o1[k] || {}, o[k]);\n } else {\n o1[k] = _deepCopy(v);\n }\n });\n }\n });\n return o1;\n};\n\nexport const deepCopy = (...objects: any) => _deepCopy({}, ...objects);\n\nexport const toBoolean = (val: any) => {\n return val === true\n || val === 'true'\n || !(val === false\n || val === null\n || val === undefined\n || val === '');\n};\n\nexport const toNumber = (val: any) => {\n try {\n return parseFloat(val) || 0;\n } catch(e) {\n return 0;\n }\n};\n\n/**\n * this method encodes the url and returns the encoded string\n */\n export const encodeUrl = (url: string): string => {\n let splits = url.split('#');\n const hash = splits[1];\n splits = splits[0].split('?');\n let params = '';\n if (splits.length > 1) {\n params = splits[1].split('&')\n .map(p => p.split('='))\n .map(p => p[0] +'=' + encodeURIComponent(p[1]))\n .join('&');\n }\n return encodeURI(splits[0]) + (params ? '?' + params: '') + (hash ? '#'+ hash : '');\n};\n\nexport const isWebPreviewMode = () => Platform.OS === 'web';\n\nexport const isDevMode = () => isWebPreviewMode() || __DEV__;\n\nexport const widgetsWithUndefinedValue = ['checkbox', 'toggle'];\n\nexport const isAndroid = () => (Platform.OS === 'android' || (Platform.OS === 'web' && /android/i.test(window.navigator.userAgent)));\n\nexport const isIos = () => (Platform.OS === 'ios' || (Platform.OS === 'web' && /iPhone|iPad/i.test(window.navigator.userAgent)));\n\nconst getGroupKey = (fieldDef: any, groupby: string, widgetScope: any, innerItem?: any) => isFunction(groupby) ? groupby.apply(widgetScope.proxy, [innerItem ? fieldDef[innerItem] : fieldDef]) : get(innerItem ? fieldDef[innerItem] : fieldDef, groupby);\n\n/**\n * This method prepares the grouped data.\n *\n * @param fieldDefs array of objects i.e. dataset\n * @param groupby string groupby\n * @param match string match\n * @param orderby string orderby\n * @param dateFormat string date format\n */\nexport const getGroupedData = (fieldDefs: any, groupby: string, match: string, orderby: string, dateFormat: string, widgetScope: any, innerItem?: any) => {\n\n // handling case-in-sensitive scenario\n // ordering the data based on groupby field. If there is innerItem then apply orderby using the innerItem's containing the groupby field.\n fieldDefs = orderBy(fieldDefs, fieldDef => {\n const groupKey = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n if (groupKey) {\n return toLower(groupKey);\n }\n return '';\n });\n\n // extract the grouped data based on the field obtained from 'groupDataByField'.\n const groupedLiData = groupBy(fieldDefs, function (fieldDef) {\n let concatStr = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n // by default set the undefined groupKey as 'others'\n if (isUndefined(concatStr) || isNull(concatStr) || concatStr.toString().trim() === '') {\n return GROUP_BY_OPTIONS.OTHERS;\n }\n // if match prop is alphabetic ,get the starting alphabet of the word as key.\n if (match === GROUP_BY_OPTIONS.ALPHABET) {\n concatStr = concatStr.substr(0, 1);\n }\n\n // if match contains the time options then get the concatStr using 'getTimeRolledUpString'\n if (includes(values(TIME_ROLLUP_OPTIONS), match)) {\n dateFormat = dateFormat && dateFormat.replace(/d/g, 'D');\n dateFormat = dateFormat && dateFormat.replace(/y/g, 'Y');\n concatStr = moment(concatStr).format(dateFormat);\n }\n\n return concatStr;\n });\n\n return getSortedGroupedData(groupedLiData, groupby, orderby, innerItem);\n};\n\n/**\n * function to get the ordered dataset based on the given orderby\n */\nexport const getOrderedDataset = (dataSet: any, orderby: string, innerItem?: any) => {\n if (!orderBy) {\n return cloneDeep(dataSet);\n }\n\n // The order by only works when the dataset contains list of objects.\n const items = orderby && orderby.split(','),\n fields: any = [],\n directions: any = [];\n items && items.forEach( obj => {\n const item = obj.split(':');\n fields.push(innerItem ? innerItem + '.' + item[0] : item[0]);\n directions.push(item[1]);\n });\n return orderBy(dataSet, fields, directions);\n};\n\n\n/**\n * This method returns sorted data based to groupkey.\n * Returns a array of objects, each object containing key which is groupKey and data is the sorted data which is sorted by groupby field in the data.\n *\n * @param groupedLiData, grouped data object with key as the groupKey and its value as the array of objects grouped under the groupKey.\n * @param groupBy, string groupby property\n * @returns {any[]}\n */\nexport const getSortedGroupedData = (groupedLiData: any, groupBy: string, orderby: string, innerItem?: any) => {\n const _groupedData: any = [];\n forEach(keys(groupedLiData), (groupkey, index) => {\n const liData = getOrderedDataset(groupedLiData[groupkey], orderby, innerItem);\n _groupedData.push({\n key: groupkey,\n data: sortBy(liData, data => {\n data._groupIndex = index;\n return get(data, groupBy) || get(data[innerItem], groupBy);\n })\n });\n });\n return _groupedData;\n};\n\nexport const isDefined = (v: any) => typeof v !== 'undefined';\n\n// try to convert the chekedvalue and unchecked values to boolean/number\nexport const unStringify = (val: any, defaultVal?: boolean) => {\n if (val === null) {\n return defaultVal;\n }\n\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n const number = parseInt(val, 10);\n if (!isNaN(number)) {\n return number;\n }\n return val;\n};\n\n/**\n * This function invokes the given the function (fn) until the function successfully executes or the maximum number\n * of retries is reached or onBeforeRetry returns false.\n *\n * @param fn - a function that is needs to be invoked. The function can also return a promise as well.\n * @param interval - minimum time gap between successive retries. This argument should be greater or equal to 0.\n * @param maxRetries - maximum number of retries. This argument should be greater than 0. For all other values,\n * maxRetries is infinity.\n * @param onBeforeRetry - a callback function that will be invoked before re-invoking again. This function can\n * return false or a promise that is resolved to false to stop further retry attempts.\n * @returns {*} a promise that is resolved when fn is success (or) maximum retry attempts reached\n * (or) onBeforeRetry returned false.\n */\nexport const retryIfFails = (fn: Function, interval: number, maxRetries: number, onBeforeRetry = () => Promise.resolve(false)) => {\n let retryCount = 0;\n const tryFn = () => {\n retryCount++;\n if (isFunction(fn)) {\n return fn();\n }\n };\n maxRetries = (isNumber(maxRetries) && maxRetries > 0 ? maxRetries : 0);\n interval = (isNumber(interval) && interval > 0 ? interval : 0);\n return new Promise((resolve, reject) => {\n const errorFn = function () {\n const errArgs = arguments;\n setTimeout(() => {\n Promise.resolve().then(() => onBeforeRetry()).then(function (retry) {\n if (retry !== false && (!maxRetries || retryCount <= maxRetries)) {\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n } else {\n reject(errArgs);\n }\n }, () => reject(errArgs));\n }, interval);\n };\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n });\n};\n\n/**\n * Promise of a defer created using this function, has abort function that will reject the defer when called.\n * @returns {*} angular defer object\n */\nexport const getAbortableDefer = () => {\n const _defer: any = {\n promise: null,\n reject: null,\n resolve: null,\n onAbort: () => { },\n isAborted: false\n };\n _defer.promise = new Promise((resolve, reject) => {\n _defer.resolve = resolve;\n _defer.reject = reject;\n });\n _defer.promise.abort = () => {\n _defer.onAbort && _defer.onAbort();\n _defer.reject('aborted');\n _defer.isAborted = true;\n };\n return _defer;\n};\n\nexport const validateField = (props: any, value: any) => {\n let requiredCheck = true, regexCheck = true;\n if (props.required) {\n if (isArray(value)) {\n requiredCheck = value.length === 0 ? false : true\n } else {\n requiredCheck = !value ? false : true\n }\n if (!requiredCheck) {\n return {\n errorType : 'required',\n isValid: false\n }\n }\n }\n if (value && props.regexp) {\n const condition = new RegExp(\"^\" + props.regexp + \"$\", 'g');\n regexCheck = condition.test(value);\n if (!regexCheck) {\n return {\n errorType : 'regexp',\n isValid: false\n }\n }\n }\n if (value && props.maxchars && value.length > props.maxchars) {\n return {\n errorType : 'maxchars',\n isValid: false\n }\n\n }\n if (value && props.mindate && new Date(props.datavalue) < moment(props.mindate).startOf('day').toDate()) {\n return {\n errorType : 'mindate',\n isValid: false\n }\n }\n if (value && props.maxdate && new Date(props.datavalue) > moment(props.maxdate).endOf('day').toDate()) {\n return {\n errorType : 'maxdate',\n isValid: false\n }\n }\n\n return {\n isValid: true\n }\n};\n\n\nexport const toBase64 = function(path: string) {\n return FileSystem.readAsStringAsync(path, { encoding: 'base64' });\n};"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Platform","moment","FileSystem","isFunction","includes","isUndefined","isNull","orderBy","groupBy","toLower","get","forEach","sortBy","cloneDeep","keys","values","isArray","isString","isNumber","GROUP_BY_OPTIONS","ALPHABET","WORD","OTHERS","TIME_ROLLUP_OPTIONS","HOUR","DAY","WEEK","MONTH","YEAR","_deepCopy","o1","o2","o","Object","k","v","deepCopy","objects","toBoolean","val","undefined","toNumber","parseFloat","e","encodeUrl","url","splits","split","hash","params","length","map","p","encodeURIComponent","join","encodeURI","isWebPreviewMode","OS","isDevMode","__DEV__","widgetsWithUndefinedValue","isAndroid","test","window","navigator","userAgent","isIos","getGroupKey","fieldDef","groupby","widgetScope","innerItem","apply","proxy","getGroupedData","fieldDefs","match","orderby","dateFormat","groupKey","groupedLiData","concatStr","toString","trim","substr","replace","format","getSortedGroupedData","getOrderedDataset","dataSet","items","fields","directions","obj","item","push","_groupedData","groupkey","index","liData","key","data","_groupIndex","isDefined","unStringify","defaultVal","number","parseInt","isNaN","retryIfFails","fn","interval","maxRetries","onBeforeRetry","Promise","resolve","retryCount","tryFn","reject","errorFn","errArgs","arguments","setTimeout","then","retry","getAbortableDefer","_defer","promise","onAbort","isAborted","abort","validateField","props","value","requiredCheck","regexCheck","required","errorType","isValid","regexp","condition","RegExp","maxchars","mindate","Date","datavalue","startOf","toDate","maxdate","endOf","toBase64","path","readAsStringAsync","encoding","DATASET_WIDGETS","Set","isDataSetWidget","widget","has"],"sources":["utils.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport moment from \"moment\";\nimport * as FileSystem from \"expo-file-system\";\nimport { isFunction, includes, isUndefined, isNull, orderBy, groupBy, toLower, get, forEach, sortBy, cloneDeep, keys, values, isArray, isString, isNumber} from 'lodash';\n\ndeclare const window: any;\nconst GROUP_BY_OPTIONS = {\n ALPHABET: 'alphabet',\n WORD: 'word',\n OTHERS: 'Others'\n};\nconst TIME_ROLLUP_OPTIONS = {\n HOUR: 'hour',\n DAY: 'day',\n WEEK: 'week',\n MONTH: 'month',\n YEAR: 'year'\n};\n\nconst _deepCopy = (o1: any, ...o2: any) => {\n o2.forEach((o: any) => {\n if (o) {\n Object.keys(o).forEach(k => {\n const v = o[k];\n if (v && !isString(v) && !isArray(v) && typeof v === 'object') {\n o1[k] = _deepCopy(o1[k] || {}, o[k]);\n } else {\n o1[k] = _deepCopy(v);\n }\n });\n }\n });\n return o1;\n};\n\nexport const deepCopy = (...objects: any) => _deepCopy({}, ...objects);\n\nexport const toBoolean = (val: any) => {\n return val === true\n || val === 'true'\n || !(val === false\n || val === null\n || val === undefined\n || val === '');\n};\n\nexport const toNumber = (val: any) => {\n try {\n return parseFloat(val) || 0;\n } catch(e) {\n return 0;\n }\n};\n\n/**\n * this method encodes the url and returns the encoded string\n */\n export const encodeUrl = (url: string): string => {\n let splits = url.split('#');\n const hash = splits[1];\n splits = splits[0].split('?');\n let params = '';\n if (splits.length > 1) {\n params = splits[1].split('&')\n .map(p => p.split('='))\n .map(p => p[0] +'=' + encodeURIComponent(p[1]))\n .join('&');\n }\n return encodeURI(splits[0]) + (params ? '?' + params: '') + (hash ? '#'+ hash : '');\n};\n\nexport const isWebPreviewMode = () => Platform.OS === 'web';\n\nexport const isDevMode = () => isWebPreviewMode() || __DEV__;\n\nexport const widgetsWithUndefinedValue = ['checkbox', 'toggle'];\n\nexport const isAndroid = () => (Platform.OS === 'android' || (Platform.OS === 'web' && /android/i.test(window.navigator.userAgent)));\n\nexport const isIos = () => (Platform.OS === 'ios' || (Platform.OS === 'web' && /iPhone|iPad/i.test(window.navigator.userAgent)));\n\nconst getGroupKey = (fieldDef: any, groupby: string, widgetScope: any, innerItem?: any) => isFunction(groupby) ? groupby.apply(widgetScope.proxy, [innerItem ? fieldDef[innerItem] : fieldDef]) : get(innerItem ? fieldDef[innerItem] : fieldDef, groupby);\n\n/**\n * This method prepares the grouped data.\n *\n * @param fieldDefs array of objects i.e. dataset\n * @param groupby string groupby\n * @param match string match\n * @param orderby string orderby\n * @param dateFormat string date format\n */\nexport const getGroupedData = (fieldDefs: any, groupby: string, match: string, orderby: string, dateFormat: string, widgetScope: any, innerItem?: any) => {\n\n // handling case-in-sensitive scenario\n // ordering the data based on groupby field. If there is innerItem then apply orderby using the innerItem's containing the groupby field.\n fieldDefs = orderBy(fieldDefs, fieldDef => {\n const groupKey = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n if (groupKey) {\n return toLower(groupKey);\n }\n return '';\n });\n\n // extract the grouped data based on the field obtained from 'groupDataByField'.\n const groupedLiData = groupBy(fieldDefs, function (fieldDef) {\n let concatStr = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n // by default set the undefined groupKey as 'others'\n if (isUndefined(concatStr) || isNull(concatStr) || concatStr.toString().trim() === '') {\n return GROUP_BY_OPTIONS.OTHERS;\n }\n // if match prop is alphabetic ,get the starting alphabet of the word as key.\n if (match === GROUP_BY_OPTIONS.ALPHABET) {\n concatStr = concatStr.substr(0, 1);\n }\n\n // if match contains the time options then get the concatStr using 'getTimeRolledUpString'\n if (includes(values(TIME_ROLLUP_OPTIONS), match)) {\n dateFormat = dateFormat && dateFormat.replace(/d/g, 'D');\n dateFormat = dateFormat && dateFormat.replace(/y/g, 'Y');\n concatStr = moment(concatStr).format(dateFormat);\n }\n\n return concatStr;\n });\n\n return getSortedGroupedData(groupedLiData, groupby, orderby, innerItem);\n};\n\n/**\n * function to get the ordered dataset based on the given orderby\n */\nexport const getOrderedDataset = (dataSet: any, orderby: string, innerItem?: any) => {\n if (!orderBy) {\n return cloneDeep(dataSet);\n }\n\n // The order by only works when the dataset contains list of objects.\n const items = orderby && orderby.split(','),\n fields: any = [],\n directions: any = [];\n items && items.forEach( obj => {\n const item = obj.split(':');\n fields.push(innerItem ? innerItem + '.' + item[0] : item[0]);\n directions.push(item[1]);\n });\n return orderBy(dataSet, fields, directions);\n};\n\n\n/**\n * This method returns sorted data based to groupkey.\n * Returns a array of objects, each object containing key which is groupKey and data is the sorted data which is sorted by groupby field in the data.\n *\n * @param groupedLiData, grouped data object with key as the groupKey and its value as the array of objects grouped under the groupKey.\n * @param groupBy, string groupby property\n * @returns {any[]}\n */\nexport const getSortedGroupedData = (groupedLiData: any, groupBy: string, orderby: string, innerItem?: any) => {\n const _groupedData: any = [];\n forEach(keys(groupedLiData), (groupkey, index) => {\n const liData = getOrderedDataset(groupedLiData[groupkey], orderby, innerItem);\n _groupedData.push({\n key: groupkey,\n data: sortBy(liData, data => {\n data._groupIndex = index;\n return get(data, groupBy) || get(data[innerItem], groupBy);\n })\n });\n });\n return _groupedData;\n};\n\nexport const isDefined = (v: any) => typeof v !== 'undefined';\n\n// try to convert the chekedvalue and unchecked values to boolean/number\nexport const unStringify = (val: any, defaultVal?: boolean) => {\n if (val === null) {\n return defaultVal;\n }\n\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n const number = parseInt(val, 10);\n if (!isNaN(number)) {\n return number;\n }\n return val;\n};\n\n/**\n * This function invokes the given the function (fn) until the function successfully executes or the maximum number\n * of retries is reached or onBeforeRetry returns false.\n *\n * @param fn - a function that is needs to be invoked. The function can also return a promise as well.\n * @param interval - minimum time gap between successive retries. This argument should be greater or equal to 0.\n * @param maxRetries - maximum number of retries. This argument should be greater than 0. For all other values,\n * maxRetries is infinity.\n * @param onBeforeRetry - a callback function that will be invoked before re-invoking again. This function can\n * return false or a promise that is resolved to false to stop further retry attempts.\n * @returns {*} a promise that is resolved when fn is success (or) maximum retry attempts reached\n * (or) onBeforeRetry returned false.\n */\nexport const retryIfFails = (fn: Function, interval: number, maxRetries: number, onBeforeRetry = () => Promise.resolve(false)) => {\n let retryCount = 0;\n const tryFn = () => {\n retryCount++;\n if (isFunction(fn)) {\n return fn();\n }\n };\n maxRetries = (isNumber(maxRetries) && maxRetries > 0 ? maxRetries : 0);\n interval = (isNumber(interval) && interval > 0 ? interval : 0);\n return new Promise((resolve, reject) => {\n const errorFn = function () {\n const errArgs = arguments;\n setTimeout(() => {\n Promise.resolve().then(() => onBeforeRetry()).then(function (retry) {\n if (retry !== false && (!maxRetries || retryCount <= maxRetries)) {\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n } else {\n reject(errArgs);\n }\n }, () => reject(errArgs));\n }, interval);\n };\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n });\n};\n\n/**\n * Promise of a defer created using this function, has abort function that will reject the defer when called.\n * @returns {*} angular defer object\n */\nexport const getAbortableDefer = () => {\n const _defer: any = {\n promise: null,\n reject: null,\n resolve: null,\n onAbort: () => { },\n isAborted: false\n };\n _defer.promise = new Promise((resolve, reject) => {\n _defer.resolve = resolve;\n _defer.reject = reject;\n });\n _defer.promise.abort = () => {\n _defer.onAbort && _defer.onAbort();\n _defer.reject('aborted');\n _defer.isAborted = true;\n };\n return _defer;\n};\n\nexport const validateField = (props: any, value: any) => {\n let requiredCheck = true, regexCheck = true;\n if (props.required) {\n if (isArray(value)) {\n requiredCheck = value.length === 0 ? false : true\n } else {\n requiredCheck = !value ? false : true\n }\n if (!requiredCheck) {\n return {\n errorType : 'required',\n isValid: false\n }\n }\n }\n if (value && props.regexp) {\n const condition = new RegExp(\"^\" + props.regexp + \"$\", 'g');\n regexCheck = condition.test(value);\n if (!regexCheck) {\n return {\n errorType : 'regexp',\n isValid: false\n }\n }\n }\n if (value && props.maxchars && value.length > props.maxchars) {\n return {\n errorType : 'maxchars',\n isValid: false\n }\n\n }\n if (value && props.mindate && new Date(props.datavalue) < moment(props.mindate).startOf('day').toDate()) {\n return {\n errorType : 'mindate',\n isValid: false\n }\n }\n if (value && props.maxdate && new Date(props.datavalue) > moment(props.maxdate).endOf('day').toDate()) {\n return {\n errorType : 'maxdate',\n isValid: false\n }\n }\n\n return {\n isValid: true\n }\n};\n\n\nexport const toBase64 = function(path: string) {\n return FileSystem.readAsStringAsync(path, { encoding: 'base64' });\n};\n\nconst DATASET_WIDGETS = new Set([ 'select', 'checkboxset', 'radioset', 'switch', 'autocomplete', 'chips', 'typeahead', 'rating']);\nexport const isDataSetWidget = (widget: any) => {\n return DATASET_WIDGETS.has(widget);\n};\n"],"mappings":"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"}
|
app-rn-runtime/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavemaker/app-rn-runtime",
|
|
3
|
-
"version": "11.4.0-next.
|
|
3
|
+
"version": "11.4.0-next.24562",
|
|
4
4
|
"description": "''",
|
|
5
5
|
"main": "index",
|
|
6
6
|
"module": "index",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@react-navigation/native": "^6.0.16",
|
|
50
50
|
"@react-navigation/stack": "^6.3.7",
|
|
51
51
|
"@types/lodash-es": "^4.17.6",
|
|
52
|
-
"@wavemaker/variables": "11.4.0-next.
|
|
52
|
+
"@wavemaker/variables": "11.4.0-next.24562",
|
|
53
53
|
"axios": "^1.4.0",
|
|
54
54
|
"color": "4.2.3",
|
|
55
55
|
"cross-env": "^5.2.0",
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
"typescript": "^4.9.3",
|
|
128
128
|
"victory-native": "^36.6.11",
|
|
129
129
|
"yargs": "^16.2.0",
|
|
130
|
-
"@wavemaker/variables": "11.4.0-next.
|
|
130
|
+
"@wavemaker/variables": "11.4.0-next.24562"
|
|
131
131
|
},
|
|
132
132
|
"jest": {
|
|
133
133
|
"preset": "react-native",
|
|
@@ -25,9 +25,6 @@ export class HttpService {
|
|
|
25
25
|
options.url = options.url.replace('./', '/');
|
|
26
26
|
url = variable.config.baseUrl + options.url;
|
|
27
27
|
}
|
|
28
|
-
if (isWebPreviewMode() && variable.category === 'wm.LiveVariable') {
|
|
29
|
-
url = '.' + url;
|
|
30
|
-
}
|
|
31
28
|
const methodType = (serviceInfo === null || serviceInfo === void 0 ? void 0 : serviceInfo.methodType) || options.method.toLowerCase();
|
|
32
29
|
const isNonDataMethod = WS_CONSTANTS.NON_DATA_AXIOS_METHODS.indexOf(methodType.toUpperCase()) > -1;
|
|
33
30
|
const axiosConfig = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["axios","WS_CONSTANTS","isWebPreviewMode","injector","HttpService","send","options","variable","serviceInfo","headers","requestBody","data","url","cancelTokenSource","CancelToken","source","consumes","formData","FormData","parameters","forEach","p","v","params","name","append","category","startsWith","replace","config","baseUrl","methodType","method","toLowerCase","isNonDataMethod","NON_DATA_AXIOS_METHODS","indexOf","toUpperCase","axiosConfig","cancelToken","token","withCredentials","Promise","resolve","reject","apply","then","result","err","response","sendCall","requestParams","getLocale","appConfig","get","appLocale","messages","cancel","uploadFile","event","error","httpService"],"sources":["http.service.ts"],"sourcesContent":["import axios from 'axios';\nimport { HttpClientService } from '@wavemaker/variables/src/types/http-client.service';\nimport { WS_CONSTANTS } from '@wavemaker/app-rn-runtime/variables/utils/variable.constants';\nimport { get, isEmpty } from 'lodash';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\n\nexport class HttpService implements HttpClientService {\n\n send(options: any, variable: any) {\n const serviceInfo = variable.serviceInfo;\n let headers: any = options.headers,\n requestBody: any = options.data,\n url: string = options.url;\n variable.cancelTokenSource = axios.CancelToken.source();\n if (!isWebPreviewMode() && (variable?.serviceInfo?.consumes||[])[0] === 'multipart/form-data') {\n headers['Content-Type'] = 'multipart/form-data';\n let formData = new FormData();\n (variable.serviceInfo.parameters||[]).forEach((p: any) => {\n const v = variable.params[p.name];\n if (v) {\n formData.append(p.name, variable.params[p.name]);\n }\n });\n requestBody = formData;\n }\n if (!isWebPreviewMode()\n && variable.category === 'wm.LiveVariable'\n && !(url.startsWith('http://') || url.startsWith(\"https://\"))) {\n options.url = options.url.replace('./', '/');\n url = variable.config.baseUrl + options.url;\n }\n
|
|
1
|
+
{"version":3,"names":["axios","WS_CONSTANTS","isWebPreviewMode","injector","HttpService","send","options","variable","serviceInfo","headers","requestBody","data","url","cancelTokenSource","CancelToken","source","consumes","formData","FormData","parameters","forEach","p","v","params","name","append","category","startsWith","replace","config","baseUrl","methodType","method","toLowerCase","isNonDataMethod","NON_DATA_AXIOS_METHODS","indexOf","toUpperCase","axiosConfig","cancelToken","token","withCredentials","Promise","resolve","reject","apply","then","result","err","response","sendCall","requestParams","getLocale","appConfig","get","appLocale","messages","cancel","uploadFile","event","error","httpService"],"sources":["http.service.ts"],"sourcesContent":["import axios from 'axios';\nimport { HttpClientService } from '@wavemaker/variables/src/types/http-client.service';\nimport { WS_CONSTANTS } from '@wavemaker/app-rn-runtime/variables/utils/variable.constants';\nimport { get, isEmpty } from 'lodash';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\n\nexport class HttpService implements HttpClientService {\n\n send(options: any, variable: any) {\n const serviceInfo = variable.serviceInfo;\n let headers: any = options.headers,\n requestBody: any = options.data,\n url: string = options.url;\n variable.cancelTokenSource = axios.CancelToken.source();\n if (!isWebPreviewMode() && (variable?.serviceInfo?.consumes||[])[0] === 'multipart/form-data') {\n headers['Content-Type'] = 'multipart/form-data';\n let formData = new FormData();\n (variable.serviceInfo.parameters||[]).forEach((p: any) => {\n const v = variable.params[p.name];\n if (v) {\n formData.append(p.name, variable.params[p.name]);\n }\n });\n requestBody = formData;\n }\n if (!isWebPreviewMode()\n && variable.category === 'wm.LiveVariable'\n && !(url.startsWith('http://') || url.startsWith(\"https://\"))) {\n options.url = options.url.replace('./', '/');\n url = variable.config.baseUrl + options.url;\n }\n\n const methodType: string = serviceInfo?.methodType || options.method.toLowerCase();\n const isNonDataMethod: boolean = WS_CONSTANTS.NON_DATA_AXIOS_METHODS.indexOf(methodType.toUpperCase()) > -1;\n const axiosConfig = {\n headers: headers,\n cancelToken: variable.cancelTokenSource.token,\n withCredentials: true\n };\n return new Promise((resolve, reject) => {\n // @ts-ignore\n axios[methodType].apply(variable, ( isNonDataMethod ? [url, axiosConfig] : [url, requestBody || {}, axiosConfig]))\n .then((result: any) => {\n resolve(result);\n }, (err: any) => {\n reject(err.response);\n })\n })\n }\n\n sendCall(requestParams: any, variable: any) {\n return new Promise((resolve, reject) => {\n this.send(requestParams, variable).then((response: any) => {\n resolve(response);\n }, (err: any) => {\n reject(err);\n });\n });\n }\n\n getLocale() {\n const appConfig = injector.get<AppConfig>('APP_CONFIG');\n return appConfig.appLocale.messages;\n }\n\n cancel(variable: any) {\n variable.cancelTokenSource.cancel();\n }\n\n uploadFile(url: any, data: any, variable: any, options?: any) {\n const requestParams = {\n url: url,\n data: data\n }\n return new Promise((resolve, reject) => {\n return this.send(requestParams, variable).then((event: any) => {\n resolve(event.data);\n }, (error: any) => {\n reject(error);\n });\n });\n }\n}\n\nconst httpService = new HttpService();\n\nexport default httpService;\n"],"mappings":"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"}
|