@wavemaker/app-rn-runtime 11.4.0-next.140429 → 11.4.0-next.140433

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.
Files changed (58) hide show
  1. app-rn-runtime/actions/navigation-action.js +14 -2
  2. app-rn-runtime/actions/navigation-action.js.map +1 -1
  3. app-rn-runtime/components/basic/anchor/anchor.component.js +1 -0
  4. app-rn-runtime/components/basic/anchor/anchor.component.js.map +1 -1
  5. app-rn-runtime/components/chart/basechart.props.js +1 -0
  6. app-rn-runtime/components/chart/basechart.props.js.map +1 -1
  7. app-rn-runtime/components/chart/basechart.styles.js +17 -0
  8. app-rn-runtime/components/chart/basechart.styles.js.map +1 -1
  9. app-rn-runtime/components/chart/donut-chart/donut-chart.props.js +0 -1
  10. app-rn-runtime/components/chart/donut-chart/donut-chart.props.js.map +1 -1
  11. app-rn-runtime/components/chart/legend/legend.component.js +36 -0
  12. app-rn-runtime/components/chart/legend/legend.component.js.map +1 -0
  13. app-rn-runtime/components/chart/pie-chart/pie-chart.component.js +119 -40
  14. app-rn-runtime/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  15. app-rn-runtime/components/chart/pie-chart/pie-chart.props.js +1 -2
  16. app-rn-runtime/components/chart/pie-chart/pie-chart.props.js.map +1 -1
  17. app-rn-runtime/components/container/accordion/accordion.component.js +20 -8
  18. app-rn-runtime/components/container/accordion/accordion.component.js.map +1 -1
  19. app-rn-runtime/components/container/accordion/accordionpane/accordionpane.component.js +8 -2
  20. app-rn-runtime/components/container/accordion/accordionpane/accordionpane.component.js.map +1 -1
  21. app-rn-runtime/components/data/form/form-action/form-action.component.js +1 -0
  22. app-rn-runtime/components/data/form/form-action/form-action.component.js.map +1 -1
  23. app-rn-runtime/components/data/form/form-action/form-action.props.js +3 -1
  24. app-rn-runtime/components/data/form/form-action/form-action.props.js.map +1 -1
  25. app-rn-runtime/components/data/form/form-field/form-field.component.js +21 -0
  26. app-rn-runtime/components/data/form/form-field/form-field.component.js.map +1 -1
  27. app-rn-runtime/components/data/form/form-field/form-field.props.js +8 -0
  28. app-rn-runtime/components/data/form/form-field/form-field.props.js.map +1 -1
  29. app-rn-runtime/components/data/form/form.component.js +92 -1
  30. app-rn-runtime/components/data/form/form.component.js.map +1 -1
  31. app-rn-runtime/components/data/form/form.props.js +2 -0
  32. app-rn-runtime/components/data/form/form.props.js.map +1 -1
  33. app-rn-runtime/components/data/form/form.styles.js +6 -0
  34. app-rn-runtime/components/data/form/form.styles.js.map +1 -1
  35. app-rn-runtime/components/data/list/list.component.js +8 -3
  36. app-rn-runtime/components/data/list/list.component.js.map +1 -1
  37. app-rn-runtime/components/data/liveform/liveform.component.js +102 -0
  38. app-rn-runtime/components/data/liveform/liveform.component.js.map +1 -0
  39. app-rn-runtime/components/dialogs/dialog/dialog.component.js +5 -2
  40. app-rn-runtime/components/dialogs/dialog/dialog.component.js.map +1 -1
  41. app-rn-runtime/components/input/baseinput/baseinput.component.js +2 -2
  42. app-rn-runtime/components/input/baseinput/baseinput.component.js.map +1 -1
  43. app-rn-runtime/core/formatters.js.map +1 -1
  44. app-rn-runtime/core/utils.js +19 -0
  45. app-rn-runtime/core/utils.js.map +1 -1
  46. app-rn-runtime/package.json +3 -3
  47. app-rn-runtime/runtime/base-fragment.component.js +15 -2
  48. app-rn-runtime/runtime/base-fragment.component.js.map +1 -1
  49. app-rn-runtime/runtime/base-page.component.js +2 -0
  50. app-rn-runtime/runtime/base-page.component.js.map +1 -1
  51. app-rn-runtime/styles/theme.variables.js +2 -0
  52. app-rn-runtime/styles/theme.variables.js.map +1 -1
  53. app-rn-runtime/variables/http.service.js +6 -2
  54. app-rn-runtime/variables/http.service.js.map +1 -1
  55. app-rn-runtime/variables/live-variable.js +115 -0
  56. app-rn-runtime/variables/live-variable.js.map +1 -0
  57. app-rn-runtime/variables/service-variable.js +11 -1
  58. app-rn-runtime/variables/service-variable.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","Text","View","Badge","isArray","BaseComponent","BaseComponentState","WmAccordionProps","DEFAULT_CLASS","WmIcon","isDefined","WmAccordionState","constructor","arguments","_defineProperty","WmAccordion","props","addAccordionPane","accordionPane","i","accordionPanes","findIndex","t","name","newIndex","expandCollapseIcon","item","showBadge","length","undefined","showIcon","useChevron","isExpanded","widgetProps","badge","badgevalue","createElement","style","styles","activeBadge","badgetype","iconclass","flexDirection","theme","mergeStyle","icon","activeIcon","renderAccordionpane","index","accordionpanes","showIconOnLeft","leftToggleIcon","root","width","state","pane","key","header","firstHeader","lastHeader","activeHeader","onTouchEnd","toggle","bind","flex","justifyContent","text","heading","activeHeaderTitle","title","description","subheading","expandedId","collapseId","closeothers","lastExpandedIndex","collapsedPane","collapse","Promise","resolve","then","expandedPane","expand","setState","invokeEventCallback","proxy","componentDidMount","defaultpaneindex","renderWidget","children","_background","map"],"sources":["accordion.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, View } from 'react-native';\nimport { Badge } from 'react-native-paper';\nimport { isArray } from 'lodash';\n\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmAccordionProps from './accordion.props';\nimport { DEFAULT_CLASS, WmAccordionStyles } from './accordion.styles';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport WmAccordionpane from './accordionpane/accordionpane.component';\nimport { isDefined } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport class WmAccordionState extends BaseComponentState<WmAccordionProps> {\n lastExpandedIndex = -1;\n isExpanded = [] as boolean[];\n}\n\nexport default class WmAccordion extends BaseComponent<WmAccordionProps, WmAccordionState, WmAccordionStyles> {\n public accordionPanes = [] as WmAccordionpane[];\n private newIndex = 0;\n\n constructor(props: WmAccordionProps) {\n super(props, DEFAULT_CLASS, new WmAccordionProps(), new WmAccordionState());\n }\n\n addAccordionPane(accordionPane: WmAccordionpane) {\n const i = this.accordionPanes.findIndex(t => t.props.name === accordionPane.props.name);\n if (i >= 0) {\n this.accordionPanes[i] = accordionPane;\n } else {\n this.accordionPanes[this.newIndex++] = accordionPane;\n }\n }\n\n expandCollapseIcon(item: any, showBadge = true, showIcon = true, useChevron = true, isExpanded = false) {\n const widgetProps = item.props;\n //@ts-ignore\n const badge = showBadge && widgetProps.badgevalue != undefined ? (\n <Badge style={[\n this.styles.badge,\n isExpanded ? this.styles.activeBadge: null,\n this.styles[widgetProps.badgetype || 'default']]}>\n {widgetProps.badgevalue}\n </Badge>): null;\n let iconclass = null;\n if (useChevron) {\n iconclass = isExpanded ? 'wi wi-chevron-down' : 'wi wi-chevron-up';\n } else {\n iconclass = isExpanded ? 'wi wi-minus' : 'wi wi-plus';\n }\n return (<View style={{flexDirection: 'row'}}>\n {badge}\n {showIcon ? (\n <WmIcon\n styles={this.theme.mergeStyle({}, this.styles.icon, isExpanded ? this.styles.activeIcon : null)}\n name={'expand_collapse_icon'}\n iconclass={iconclass}></WmIcon>): null}\n </View>);\n }\n\n renderAccordionpane(item: any, index: any, accordionpanes: any[] = []) {\n const showIconOnLeft = this.styles.leftToggleIcon.root.width !== undefined;\n const isExpanded = this.state.isExpanded[index];\n return (\n <View style={this.styles.pane} key={item.props.name}>\n <View key={'accordionpane_' + (index + 1)}\n style={[this.styles.header,\n index === 0 ? this.styles.firstHeader: null,\n index === accordionpanes.length - 1 && !isExpanded ? this.styles.lastHeader: null,\n isExpanded ? this.styles.activeHeader : {}]}\n onTouchEnd={this.toggle.bind(this, index + 1)}>\n {this.expandCollapseIcon(item, false, showIconOnLeft, true, isExpanded)}\n {item.props.iconclass ? <WmIcon styles={this.styles.icon} name={item.props.name + '_icon'} iconclass={item.props.iconclass}></WmIcon>: null}\n <View style={{flexDirection: 'column', flex: 1, justifyContent: 'center'}}>\n <Text style={[\n this.styles.text,\n this.styles.heading,\n isExpanded ? this.styles.activeHeaderTitle : {}]}>\n {isDefined(item.props.title) ? item.props.title : 'Title'}\n </Text>\n {item.props.description ? \n (<Text style={this.styles.subheading}>{item.props.description}</Text>) : null }\n </View>\n {this.expandCollapseIcon(item, true, !showIconOnLeft, true, isExpanded)}\n </View>\n {item}\n </View>\n );\n }\n\n toggle(expandedId: number) {\n let collapseId = this.state.isExpanded[expandedId - 1] ? expandedId: -1;\n expandedId = this.state.isExpanded[expandedId - 1] ? -1 : expandedId;\n if (collapseId < 0 && this.state.props.closeothers) {\n collapseId = this.state.lastExpandedIndex;\n }\n const collapsedPane = this.accordionPanes[collapseId -1];\n collapsedPane?.collapse();\n Promise.resolve().then(() => {\n const expandedPane = expandedId ? this.accordionPanes[expandedId - 1]: null;\n expandedPane?.expand();\n this.setState((state) => {\n if (collapseId > 0 && collapsedPane) {\n state.isExpanded[collapseId - 1] = false;\n }\n if (expandedId > 0 && expandedPane) {\n state.isExpanded[expandedId - 1] = true;\n }\n return {\n lastExpandedIndex: expandedId,\n isExpanded: [...state.isExpanded]\n };\n }, () => {\n this.invokeEventCallback('onChange', [{},\n this.proxy,\n expandedId - 1,\n collapseId ? collapseId - 1 : null,\n expandedPane && expandedPane.props.name,\n collapsedPane && collapsedPane.props.name]);\n });\n }, () => {});\n }\n\n public componentDidMount(): void {\n super.componentDidMount();\n this.toggle(this.state.props.defaultpaneindex + 1);\n }\n\n renderWidget(props: WmAccordionProps) {\n const accordionpanes = props.children;\n const expandedId = this.state.lastExpandedIndex || 0;\n return (\n <View style={this.styles.root}>\n {this._background}\n {accordionpanes\n ? isArray(accordionpanes) && accordionpanes.length\n ? accordionpanes.map((item: any, index: any) => this.renderAccordionpane(item, index, accordionpanes))\n : this.renderAccordionpane(accordionpanes, 0)\n : null}\n </View>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Text","TouchableOpacity","View","Badge","isArray","BaseComponent","BaseComponentState","WmAccordionProps","DEFAULT_CLASS","WmIcon","isDefined","WmAccordionState","constructor","arguments","_defineProperty","WmAccordion","props","addAccordionPane","accordionPane","i","accordionPanes","findIndex","t","name","newIndex","expand","accordionName","toggle","collapse","expandCollapseIcon","item","showBadge","length","undefined","showIcon","useChevron","isExpanded","widgetProps","badge","badgevalue","createElement","style","styles","activeBadge","badgetype","iconclass","flexDirection","theme","mergeStyle","icon","activeIcon","renderAccordionpane","index","accordionpanes","showIconOnLeft","leftToggleIcon","root","width","state","pane","key","header","firstHeader","lastHeader","activeHeader","onPress","bind","flex","justifyContent","text","heading","activeHeaderTitle","title","description","subheading","expandedId","collapseId","closeothers","lastExpandedIndex","collapsedPane","hide","Promise","resolve","then","expandedPane","show","setState","invokeEventCallback","proxy","componentDidMount","defaultpaneindex","renderWidget","children","_background","map"],"sources":["accordion.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, TouchableOpacity, View } from 'react-native';\nimport { Badge } from 'react-native-paper';\nimport { isArray } from 'lodash';\n\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmAccordionProps from './accordion.props';\nimport { DEFAULT_CLASS, WmAccordionStyles } from './accordion.styles';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport WmAccordionpane from './accordionpane/accordionpane.component';\nimport { isDefined } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport class WmAccordionState extends BaseComponentState<WmAccordionProps> {\n lastExpandedIndex = -1;\n isExpanded = [] as boolean[];\n}\n\nexport default class WmAccordion extends BaseComponent<WmAccordionProps, WmAccordionState, WmAccordionStyles> {\n public accordionPanes = [] as WmAccordionpane[];\n private newIndex = 0;\n\n constructor(props: WmAccordionProps) {\n super(props, DEFAULT_CLASS, new WmAccordionProps(), new WmAccordionState());\n }\n\n addAccordionPane(accordionPane: WmAccordionpane) {\n const i = this.accordionPanes.findIndex(t => t.props.name === accordionPane.props.name);\n if (i >= 0) {\n this.accordionPanes[i] = accordionPane;\n } else {\n this.accordionPanes[this.newIndex++] = accordionPane;\n }\n }\n\n expand(accordionName: string) {\n const i = this.accordionPanes.findIndex(t => t.props.name === accordionName);\n this.toggle(i + 1, true);\n }\n\n collapse(accordionName: string) {\n const i = this.accordionPanes.findIndex(t => t.props.name === accordionName);\n this.toggle(i + 1, false);\n }\n\n expandCollapseIcon(item: any, showBadge = true, showIcon = true, useChevron = true, isExpanded = false) {\n const widgetProps = item.props;\n //@ts-ignore\n const badge = showBadge && widgetProps.badgevalue != undefined ? (\n <Badge style={[\n this.styles.badge,\n isExpanded ? this.styles.activeBadge: null,\n this.styles[widgetProps.badgetype || 'default']]}>\n {widgetProps.badgevalue}\n </Badge>): null;\n let iconclass = null;\n if (useChevron) {\n iconclass = isExpanded ? 'wi wi-chevron-down' : 'wi wi-chevron-up';\n } else {\n iconclass = isExpanded ? 'wi wi-minus' : 'wi wi-plus';\n }\n return (<View style={{flexDirection: 'row'}}>\n {badge}\n {showIcon ? (\n <WmIcon\n styles={this.theme.mergeStyle({}, this.styles.icon, isExpanded ? this.styles.activeIcon : null)}\n name={'expand_collapse_icon'}\n iconclass={iconclass}></WmIcon>): null}\n </View>);\n }\n\n renderAccordionpane(item: any, index: any, accordionpanes: any[] = []) {\n const showIconOnLeft = this.styles.leftToggleIcon.root.width !== undefined;\n const isExpanded = this.state.isExpanded[index];\n return (\n <View style={this.styles.pane} key={item.props.name}>\n <TouchableOpacity key={'accordionpane_' + (index + 1)}\n style={[this.styles.header,\n index === 0 ? this.styles.firstHeader: null,\n index === accordionpanes.length - 1 && !isExpanded ? this.styles.lastHeader: null,\n isExpanded ? this.styles.activeHeader : {}]}\n onPress={this.toggle.bind(this, index + 1, !isExpanded)}>\n {this.expandCollapseIcon(item, false, showIconOnLeft, true, isExpanded)}\n {item.props.iconclass ? <WmIcon styles={this.styles.icon} name={item.props.name + '_icon'} iconclass={item.props.iconclass}></WmIcon>: null}\n <View style={{flexDirection: 'column', flex: 1, justifyContent: 'center'}}>\n <Text style={[\n this.styles.text,\n this.styles.heading,\n isExpanded ? this.styles.activeHeaderTitle : {}]}>\n {isDefined(item.props.title) ? item.props.title : 'Title'}\n </Text>\n {item.props.description ? \n (<Text style={this.styles.subheading}>{item.props.description}</Text>) : null }\n </View>\n {this.expandCollapseIcon(item, true, !showIconOnLeft, true, isExpanded)}\n </TouchableOpacity>\n {item}\n </View>\n );\n }\n\n toggle(index: number, expand = true) {\n let expandedId = expand ? index : -1;\n let collapseId = expand ? -1 : index;\n if (expand && this.state.isExpanded[expandedId - 1]\n || !expand && this.state.isExpanded[collapseId - 1] === false) {\n return;\n }\n if (collapseId < 0 && this.state.props.closeothers) {\n collapseId = this.state.lastExpandedIndex;\n }\n const collapsedPane = this.accordionPanes[collapseId -1];\n collapsedPane?.hide();\n Promise.resolve().then(() => {\n const expandedPane = expandedId ? this.accordionPanes[expandedId - 1]: null;\n expandedPane?.show();\n this.setState((state) => {\n if (collapseId > 0 && collapsedPane) {\n state.isExpanded[collapseId - 1] = false;\n }\n if (expandedId > 0 && expandedPane) {\n state.isExpanded[expandedId - 1] = true;\n }\n return {\n lastExpandedIndex: expandedId,\n isExpanded: [...state.isExpanded]\n };\n }, () => {\n this.invokeEventCallback('onChange', [{},\n this.proxy,\n expandedId - 1,\n collapseId ? collapseId - 1 : null,\n expandedPane && expandedPane.props.name,\n collapsedPane && collapsedPane.props.name]);\n });\n }, () => {});\n }\n\n public componentDidMount(): void {\n super.componentDidMount();\n this.toggle(this.state.props.defaultpaneindex + 1);\n }\n\n renderWidget(props: WmAccordionProps) {\n const accordionpanes = props.children;\n const expandedId = this.state.lastExpandedIndex || 0;\n return (\n <View style={this.styles.root}>\n {this._background}\n {accordionpanes\n ? isArray(accordionpanes) && accordionpanes.length\n ? accordionpanes.map((item: any, index: any) => this.renderAccordionpane(item, index, accordionpanes))\n : this.renderAccordionpane(accordionpanes, 0)\n : null}\n </View>\n );\n }\n}\n"],"mappings":"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"}
@@ -41,18 +41,24 @@ export default class WmAccordionpane extends BaseComponent {
41
41
  isCollapsed() {
42
42
  return this.state.collapsed;
43
43
  }
44
- expand() {
44
+ show() {
45
45
  this.updateState({
46
46
  collapsed: false
47
47
  });
48
48
  this.invokeEventCallback('onExpand', [null, this.proxy]);
49
49
  }
50
- collapse() {
50
+ hide() {
51
51
  this.updateState({
52
52
  collapsed: true
53
53
  });
54
54
  this.invokeEventCallback('onCollapse', [null, this.proxy]);
55
55
  }
56
+ expand() {
57
+ this.parent.expand(this.props.name || '');
58
+ }
59
+ collapse() {
60
+ this.parent.expand(this.props.name || '');
61
+ }
56
62
  componentDidMount() {
57
63
  const accordion = this.parent;
58
64
  accordion.addAccordionPane(this);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","BaseComponent","BaseComponentState","WmAccordionpaneProps","DEFAULT_CLASS","View","isWebPreviewMode","Animated","require","WmAccordionpaneState","constructor","arguments","_defineProperty","AnimatedView","props","height","setHeight","offset","useSharedValue","value","close","onLayoutChange","e","_e$nativeEvent","nativeEvent","layout","animatedStyles","useAnimatedStyle","maxHeight","withTiming","createElement","default","style","onLayout","children","WmAccordionpane","isCollapsed","state","collapsed","expand","updateState","invokeEventCallback","proxy","collapse","componentDidMount","accordion","parent","addAccordionPane","onPartialLoad","renderContent","renderPartial","isPartialLoaded","setTimeout","bind","renderWidget","_background"],"sources":["accordionpane.component.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmAccordionpaneProps from './accordionpane.props';\nimport { DEFAULT_CLASS, WmAccordionpaneStyles } from './accordionpane.styles';\nimport WmAccordion from '../accordion.component';\nimport { LayoutChangeEvent, View } from 'react-native';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\n\nconst Animated: any = isWebPreviewMode() ? {} : require('react-native-reanimated');\n\nexport class WmAccordionpaneState extends BaseComponentState<WmAccordionpaneProps> {\n isPartialLoaded = false;\n collapsed = true;\n}\n\nconst AnimatedView = (props: {\n close: boolean,\n children: any\n}) => {\n const [height, setHeight] = useState(0);\n const offset = Animated.useSharedValue(0);\n offset.value = props.close ? 0 : 1;\n const onLayoutChange = (e: LayoutChangeEvent) => {\n setHeight((e.nativeEvent?.layout?.height || height || 100000000) + 1000);\n };\n const animatedStyles = Animated.useAnimatedStyle(() => {\n return {\n maxHeight: Animated.withTiming(offset.value * height)\n };\n });\n return (\n <Animated.default.View style={[animatedStyles]}>\n <View onLayout={onLayoutChange}>\n {props.children}\n </View>\n </Animated.default.View>\n );\n};\n\nexport default class WmAccordionpane extends BaseComponent<WmAccordionpaneProps, WmAccordionpaneState, WmAccordionpaneStyles> {\n\n constructor(props: WmAccordionpaneProps) {\n super(props, DEFAULT_CLASS, new WmAccordionpaneProps(), new WmAccordionpaneState());\n }\n\n isCollapsed() {\n return this.state.collapsed;\n }\n \n expand() {\n this.updateState({\n collapsed: false\n } as WmAccordionpaneState);\n this.invokeEventCallback('onExpand', [null, this.proxy]);\n }\n\n collapse() {\n this.updateState({\n collapsed: true\n } as WmAccordionpaneState);\n this.invokeEventCallback('onCollapse', [null, this.proxy]);\n }\n\n componentDidMount() {\n const accordion = (this.parent) as WmAccordion;\n accordion.addAccordionPane(this);\n super.componentDidMount();\n }\n\n onPartialLoad() {\n this.invokeEventCallback('onLoad', [this]);\n }\n\n renderContent(props: WmAccordionpaneProps) {\n if (props.renderPartial) {\n if (!this.state.isPartialLoaded) {\n setTimeout(() => {\n this.updateState({\n isPartialLoaded: true\n } as WmAccordionpaneState);\n });\n }\n return props.renderPartial(this.onPartialLoad.bind(this));\n }\n return props.children;\n }\n renderWidget(props: WmAccordionpaneProps) {\n return isWebPreviewMode() ? \n (<View style={this.state.collapsed ? {maxHeight: 0} : {}}>\n {this._background}\n {this.renderContent(props)}\n </View>) :\n (<AnimatedView close={this.state.collapsed}>\n {this._background}\n {this.renderContent(props)}\n </AnimatedView>);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useState","BaseComponent","BaseComponentState","WmAccordionpaneProps","DEFAULT_CLASS","View","isWebPreviewMode","Animated","require","WmAccordionpaneState","constructor","arguments","_defineProperty","AnimatedView","props","height","setHeight","offset","useSharedValue","value","close","onLayoutChange","e","_e$nativeEvent","nativeEvent","layout","animatedStyles","useAnimatedStyle","maxHeight","withTiming","createElement","default","style","onLayout","children","WmAccordionpane","isCollapsed","state","collapsed","show","updateState","invokeEventCallback","proxy","hide","expand","parent","name","collapse","componentDidMount","accordion","addAccordionPane","onPartialLoad","renderContent","renderPartial","isPartialLoaded","setTimeout","bind","renderWidget","_background"],"sources":["accordionpane.component.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmAccordionpaneProps from './accordionpane.props';\nimport { DEFAULT_CLASS, WmAccordionpaneStyles } from './accordionpane.styles';\nimport WmAccordion from '../accordion.component';\nimport { LayoutChangeEvent, View } from 'react-native';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\n\nconst Animated: any = isWebPreviewMode() ? {} : require('react-native-reanimated');\n\nexport class WmAccordionpaneState extends BaseComponentState<WmAccordionpaneProps> {\n isPartialLoaded = false;\n collapsed = true;\n}\n\nconst AnimatedView = (props: {\n close: boolean,\n children: any\n}) => {\n const [height, setHeight] = useState(0);\n const offset = Animated.useSharedValue(0);\n offset.value = props.close ? 0 : 1;\n const onLayoutChange = (e: LayoutChangeEvent) => {\n setHeight((e.nativeEvent?.layout?.height || height || 100000000) + 1000);\n };\n const animatedStyles = Animated.useAnimatedStyle(() => {\n return {\n maxHeight: Animated.withTiming(offset.value * height)\n };\n });\n return (\n <Animated.default.View style={[animatedStyles]}>\n <View onLayout={onLayoutChange}>\n {props.children}\n </View>\n </Animated.default.View>\n );\n};\n\nexport default class WmAccordionpane extends BaseComponent<WmAccordionpaneProps, WmAccordionpaneState, WmAccordionpaneStyles> {\n\n constructor(props: WmAccordionpaneProps) {\n super(props, DEFAULT_CLASS, new WmAccordionpaneProps(), new WmAccordionpaneState());\n }\n\n isCollapsed() {\n return this.state.collapsed;\n }\n \n show() {\n this.updateState({\n collapsed: false\n } as WmAccordionpaneState);\n this.invokeEventCallback('onExpand', [null, this.proxy]);\n }\n\n hide() {\n this.updateState({\n collapsed: true\n } as WmAccordionpaneState);\n this.invokeEventCallback('onCollapse', [null, this.proxy]);\n }\n\n expand() {\n (this.parent as WmAccordion).expand(this.props.name || '');\n }\n\n collapse() {\n (this.parent as WmAccordion).expand(this.props.name || '');\n }\n\n componentDidMount() {\n const accordion = (this.parent) as WmAccordion;\n accordion.addAccordionPane(this);\n super.componentDidMount();\n }\n\n onPartialLoad() {\n this.invokeEventCallback('onLoad', [this]);\n }\n\n renderContent(props: WmAccordionpaneProps) {\n if (props.renderPartial) {\n if (!this.state.isPartialLoaded) {\n setTimeout(() => {\n this.updateState({\n isPartialLoaded: true\n } as WmAccordionpaneState);\n });\n }\n return props.renderPartial(this.onPartialLoad.bind(this));\n }\n return props.children;\n }\n renderWidget(props: WmAccordionpaneProps) {\n return isWebPreviewMode() ? \n (<View style={this.state.collapsed ? {maxHeight: 0} : {}}>\n {this._background}\n {this.renderContent(props)}\n </View>) :\n (<AnimatedView close={this.state.collapsed}>\n {this._background}\n {this.renderContent(props)}\n </AnimatedView>);\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAA0BC,QAAQ,QAAQ,OAAO;AAC7D,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,oBAAoB,MAAM,uBAAuB;AACxD,SAASC,aAAa,QAA+B,wBAAwB;AAE7E,SAA4BC,IAAI,QAAQ,cAAc;AACtD,SAASC,gBAAgB,QAAQ,sCAAsC;AAEvE,MAAMC,QAAa,GAAGD,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAGE,OAAO,CAAC,yBAAyB,CAAC;AAElF,OAAO,MAAMC,oBAAoB,SAASP,kBAAkB,CAAuB;EAAAQ,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,0BAC/D,KAAK;IAAAA,eAAA,oBACX,IAAI;EAAA;AAClB;AAEA,MAAMC,YAAY,GAAIC,KAGrB,IAAK;EACJ,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGhB,QAAQ,CAAC,CAAC,CAAC;EACvC,MAAMiB,MAAM,GAAGV,QAAQ,CAACW,cAAc,CAAC,CAAC,CAAC;EACzCD,MAAM,CAACE,KAAK,GAAGL,KAAK,CAACM,KAAK,GAAG,CAAC,GAAG,CAAC;EAClC,MAAMC,cAAc,GAAIC,CAAoB,IAAK;IAAA,IAAAC,cAAA;IAC/CP,SAAS,CAAC,CAAC,EAAAO,cAAA,GAAAD,CAAC,CAACE,WAAW,cAAAD,cAAA,gBAAAA,cAAA,GAAbA,cAAA,CAAeE,MAAM,cAAAF,cAAA,uBAArBA,cAAA,CAAuBR,MAAM,KAAIA,MAAM,IAAI,SAAS,IAAI,IAAI,CAAC;EAC1E,CAAC;EACD,MAAMW,cAAc,GAAGnB,QAAQ,CAACoB,gBAAgB,CAAC,MAAM;IACrD,OAAO;MACLC,SAAS,EAAErB,QAAQ,CAACsB,UAAU,CAACZ,MAAM,CAACE,KAAK,GAAGJ,MAAM;IACtD,CAAC;EACH,CAAC,CAAC;EACF,oBACIhB,KAAA,CAAA+B,aAAA,CAACvB,QAAQ,CAACwB,OAAO,CAAC1B,IAAI;IAAC2B,KAAK,EAAE,CAACN,cAAc;EAAE,gBAC7C3B,KAAA,CAAA+B,aAAA,CAACzB,IAAI;IAAC4B,QAAQ,EAAEZ;EAAe,GAC5BP,KAAK,CAACoB,QACH,CACe,CAAC;AAE9B,CAAC;AAED,eAAe,MAAMC,eAAe,SAASlC,aAAa,CAAoE;EAE5HS,WAAWA,CAACI,KAA2B,EAAE;IACvC,KAAK,CAACA,KAAK,EAAEV,aAAa,EAAE,IAAID,oBAAoB,CAAC,CAAC,EAAE,IAAIM,oBAAoB,CAAC,CAAC,CAAC;EACrF;EAEA2B,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACC,KAAK,CAACC,SAAS;EAC7B;EAEAC,IAAIA,CAAA,EAAG;IACL,IAAI,CAACC,WAAW,CAAC;MACfF,SAAS,EAAE;IACb,CAAyB,CAAC;IAC1B,IAAI,CAACG,mBAAmB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAACC,KAAK,CAAC,CAAC;EAC1D;EAEAC,IAAIA,CAAA,EAAG;IACL,IAAI,CAACH,WAAW,CAAC;MACfF,SAAS,EAAE;IACb,CAAyB,CAAC;IAC1B,IAAI,CAACG,mBAAmB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,CAACC,KAAK,CAAC,CAAC;EAC5D;EAEAE,MAAMA,CAAA,EAAG;IACN,IAAI,CAACC,MAAM,CAAiBD,MAAM,CAAC,IAAI,CAAC9B,KAAK,CAACgC,IAAI,IAAI,EAAE,CAAC;EAC5D;EAEAC,QAAQA,CAAA,EAAG;IACR,IAAI,CAACF,MAAM,CAAiBD,MAAM,CAAC,IAAI,CAAC9B,KAAK,CAACgC,IAAI,IAAI,EAAE,CAAC;EAC5D;EAEAE,iBAAiBA,CAAA,EAAG;IAClB,MAAMC,SAAS,GAAI,IAAI,CAACJ,MAAsB;IAC9CI,SAAS,CAACC,gBAAgB,CAAC,IAAI,CAAC;IAChC,KAAK,CAACF,iBAAiB,CAAC,CAAC;EAC3B;EAEAG,aAAaA,CAAA,EAAG;IACd,IAAI,CAACV,mBAAmB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;EAC5C;EAEAW,aAAaA,CAACtC,KAA2B,EAAE;IACzC,IAAIA,KAAK,CAACuC,aAAa,EAAE;MACvB,IAAI,CAAC,IAAI,CAAChB,KAAK,CAACiB,eAAe,EAAE;QAC/BC,UAAU,CAAC,MAAM;UACf,IAAI,CAACf,WAAW,CAAC;YACfc,eAAe,EAAE;UACnB,CAAyB,CAAC;QAC5B,CAAC,CAAC;MACJ;MACA,OAAOxC,KAAK,CAACuC,aAAa,CAAC,IAAI,CAACF,aAAa,CAACK,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D;IACA,OAAO1C,KAAK,CAACoB,QAAQ;EACvB;EACAuB,YAAYA,CAAC3C,KAA2B,EAAE;IACxC,OAAOR,gBAAgB,CAAC,CAAC,gBACxBP,KAAA,CAAA+B,aAAA,CAACzB,IAAI;MAAC2B,KAAK,EAAE,IAAI,CAACK,KAAK,CAACC,SAAS,GAAG;QAACV,SAAS,EAAE;MAAC,CAAC,GAAG,CAAC;IAAE,GACtD,IAAI,CAAC8B,WAAW,EAChB,IAAI,CAACN,aAAa,CAACtC,KAAK,CACrB,CAAC,gBACNf,KAAA,CAAA+B,aAAA,CAACjB,YAAY;MAACO,KAAK,EAAE,IAAI,CAACiB,KAAK,CAACC;IAAU,GACxC,IAAI,CAACoB,WAAW,EAChB,IAAI,CAACN,aAAa,CAACtC,KAAK,CACb,CAAE;EAClB;AACF"}
@@ -18,6 +18,7 @@ export default class WmFormAction extends BaseComponent {
18
18
  }
19
19
  renderWidget(props) {
20
20
  return /*#__PURE__*/React.createElement(WmButton, {
21
+ show: props.show,
21
22
  disabled: props.disabled,
22
23
  caption: props.displayName,
23
24
  styles: this.styles,
@@ -1 +1 @@
1
- {"version":3,"names":["React","BaseComponent","BaseComponentState","WmButton","WmFormActionProps","DEFAULT_CLASS","debounce","WmFormActionState","WmFormAction","constructor","props","_defineProperty","onClick","$event","cb","renderWidget","createElement","disabled","caption","displayName","styles","name","iconclass","onTap","_debouncedFormAction","formAction"],"sources":["form-action.component.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\nimport { TapEvent } from '@wavemaker/app-rn-runtime/core/tappable.component';\n\nimport WmFormActionProps from './form-action.props';\nimport { DEFAULT_CLASS, WmFormActionStyles } from './form-action.styles';\nimport {debounce} from \"lodash\";\nimport WmSkeleton, { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { ThemeConsumer } from '@wavemaker/app-rn-runtime/styles/theme';\n\nexport class WmFormActionState extends BaseComponentState<WmFormActionProps> {}\n\nexport default class WmFormAction extends BaseComponent<WmFormActionProps, WmFormActionState, WmFormActionStyles> {\n\n constructor(props: WmFormActionProps) {\n super(props, DEFAULT_CLASS, new WmFormActionProps());\n }\n\n private _debouncedFormAction = debounce(this.onClick, 250);\n\n onClick($event: TapEvent, cb: Function | undefined) {\n cb && cb($event);\n }\n\n renderWidget(props: WmFormActionProps) {\n return (\n <WmButton\n disabled={props.disabled}\n caption={props.displayName}\n styles={this.styles}\n name={props.name}\n iconclass={props.iconclass}\n onTap={($event: any) => {\n this._debouncedFormAction($event, props.formAction);\n }}\n />\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AACjG,OAAOC,QAAQ,MAAM,oEAAoE;AAGzF,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SAASC,aAAa,QAA4B,sBAAsB;AACxE,SAAQC,QAAQ,QAAO,QAAQ;AAI/B,OAAO,MAAMC,iBAAiB,SAASL,kBAAkB,CAAoB;AAE7E,eAAe,MAAMM,YAAY,SAASP,aAAa,CAA2D;EAEhHQ,WAAWA,CAACC,KAAwB,EAAE;IACpC,KAAK,CAACA,KAAK,EAAEL,aAAa,EAAE,IAAID,iBAAiB,CAAC,CAAC,CAAC;IAACO,eAAA,+BAGxBL,QAAQ,CAAC,IAAI,CAACM,OAAO,EAAE,GAAG,CAAC;EAF1D;EAIAA,OAAOA,CAACC,MAAgB,EAAEC,EAAwB,EAAE;IAClDA,EAAE,IAAIA,EAAE,CAACD,MAAM,CAAC;EAClB;EAEAE,YAAYA,CAACL,KAAwB,EAAE;IACrC,oBACEV,KAAA,CAAAgB,aAAA,CAACb,QAAQ;MACPc,QAAQ,EAAEP,KAAK,CAACO,QAAS;MACzBC,OAAO,EAAER,KAAK,CAACS,WAAY;MAC3BC,MAAM,EAAE,IAAI,CAACA,MAAO;MACpBC,IAAI,EAAEX,KAAK,CAACW,IAAK;MACjBC,SAAS,EAAEZ,KAAK,CAACY,SAAU;MAC3BC,KAAK,EAAGV,MAAW,IAAK;QACtB,IAAI,CAACW,oBAAoB,CAACX,MAAM,EAAEH,KAAK,CAACe,UAAU,CAAC;MACrD;IAAE,CACH,CAAC;EAEN;AACF"}
1
+ {"version":3,"names":["React","BaseComponent","BaseComponentState","WmButton","WmFormActionProps","DEFAULT_CLASS","debounce","WmFormActionState","WmFormAction","constructor","props","_defineProperty","onClick","$event","cb","renderWidget","createElement","show","disabled","caption","displayName","styles","name","iconclass","onTap","_debouncedFormAction","formAction"],"sources":["form-action.component.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\nimport { TapEvent } from '@wavemaker/app-rn-runtime/core/tappable.component';\n\nimport WmFormActionProps from './form-action.props';\nimport { DEFAULT_CLASS, WmFormActionStyles } from './form-action.styles';\nimport {debounce} from \"lodash\";\nimport WmSkeleton, { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { ThemeConsumer } from '@wavemaker/app-rn-runtime/styles/theme';\n\nexport class WmFormActionState extends BaseComponentState<WmFormActionProps> {}\n\nexport default class WmFormAction extends BaseComponent<WmFormActionProps, WmFormActionState, WmFormActionStyles> {\n\n constructor(props: WmFormActionProps) {\n super(props, DEFAULT_CLASS, new WmFormActionProps());\n }\n\n private _debouncedFormAction = debounce(this.onClick, 250);\n\n onClick($event: TapEvent, cb: Function | undefined) {\n cb && cb($event);\n }\n\n renderWidget(props: WmFormActionProps) {\n return (\n <WmButton\n show={props.show}\n disabled={props.disabled}\n caption={props.displayName}\n styles={this.styles}\n name={props.name}\n iconclass={props.iconclass}\n onTap={($event: any) => {\n this._debouncedFormAction($event, props.formAction);\n }}\n />\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AACjG,OAAOC,QAAQ,MAAM,oEAAoE;AAGzF,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SAASC,aAAa,QAA4B,sBAAsB;AACxE,SAAQC,QAAQ,QAAO,QAAQ;AAI/B,OAAO,MAAMC,iBAAiB,SAASL,kBAAkB,CAAoB;AAE7E,eAAe,MAAMM,YAAY,SAASP,aAAa,CAA2D;EAEhHQ,WAAWA,CAACC,KAAwB,EAAE;IACpC,KAAK,CAACA,KAAK,EAAEL,aAAa,EAAE,IAAID,iBAAiB,CAAC,CAAC,CAAC;IAACO,eAAA,+BAGxBL,QAAQ,CAAC,IAAI,CAACM,OAAO,EAAE,GAAG,CAAC;EAF1D;EAIAA,OAAOA,CAACC,MAAgB,EAAEC,EAAwB,EAAE;IAClDA,EAAE,IAAIA,EAAE,CAACD,MAAM,CAAC;EAClB;EAEAE,YAAYA,CAACL,KAAwB,EAAE;IACrC,oBACEV,KAAA,CAAAgB,aAAA,CAACb,QAAQ;MACPc,IAAI,EAAEP,KAAK,CAACO,IAAK;MACjBC,QAAQ,EAAER,KAAK,CAACQ,QAAS;MACzBC,OAAO,EAAET,KAAK,CAACU,WAAY;MAC3BC,MAAM,EAAE,IAAI,CAACA,MAAO;MACpBC,IAAI,EAAEZ,KAAK,CAACY,IAAK;MACjBC,SAAS,EAAEb,KAAK,CAACa,SAAU;MAC3BC,KAAK,EAAGX,MAAW,IAAK;QACtB,IAAI,CAACY,oBAAoB,CAACZ,MAAM,EAAEH,KAAK,CAACgB,UAAU,CAAC;MACrD;IAAE,CACH,CAAC;EAEN;AACF"}
@@ -6,9 +6,11 @@ export default class WmFormActionProps extends BaseProps {
6
6
  constructor() {
7
7
  super(...arguments);
8
8
  _defineProperty(this, "displayName", '');
9
- _defineProperty(this, "formkey", '');
9
+ _defineProperty(this, "formKey", '');
10
10
  _defineProperty(this, "action", '');
11
+ _defineProperty(this, "show", true);
11
12
  _defineProperty(this, "iconclass", void 0);
13
+ _defineProperty(this, "updateMode", true);
12
14
  _defineProperty(this, "formAction", null);
13
15
  }
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BaseProps","WmFormActionProps","constructor","arguments","_defineProperty"],"sources":["form-action.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmFormActionProps extends BaseProps {\n displayName: string = '';\n formkey: string = '';\n action: any = '';\n iconclass: any;\n formAction: Function = null as any;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,iBAAiB,SAASD,SAAS,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,sBACjC,EAAE;IAAAA,eAAA,kBACN,EAAE;IAAAA,eAAA,iBACN,EAAE;IAAAA,eAAA;IAAAA,eAAA,qBAEO,IAAI;EAAA;AAC7B"}
1
+ {"version":3,"names":["BaseProps","WmFormActionProps","constructor","arguments","_defineProperty"],"sources":["form-action.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmFormActionProps extends BaseProps {\n displayName: string = '';\n formKey: string = '';\n action: any = '';\n show: boolean = true;\n iconclass: any;\n updateMode: boolean = true;\n formAction: Function = null as any;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,iBAAiB,SAASD,SAAS,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,sBACjC,EAAE;IAAAA,eAAA,kBACN,EAAE;IAAAA,eAAA,iBACN,EAAE;IAAAA,eAAA,eACA,IAAI;IAAAA,eAAA;IAAAA,eAAA,qBAEE,IAAI;IAAAA,eAAA,qBACH,IAAI;EAAA;AAC7B"}
@@ -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,8 +152,20 @@ 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
  }
162
+ setReadOnlyState(updateMode) {
163
+ this.formwidget.updateState({
164
+ props: {
165
+ readonly: !updateMode
166
+ }
167
+ });
168
+ }
148
169
  validateFormField() {
149
170
  var _this$formwidget, _this$_syncValidators;
150
171
  if (((_this$formwidget = this.formwidget) === null || _this$formwidget === void 0 ? void 0 : _this$formwidget.state.isValid) === false) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","Text","View","BaseComponent","BaseComponentState","isEqual","get","find","cloneDeep","forEach","keys","WmFormFieldProps","DEFAULT_CLASS","PERFORMANCE_LOGGER","WmFormFieldState","constructor","arguments","_defineProperty","WmFormField","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","_this$formwidget","_this$_syncValidators","state","_this$formwidget2","errorType","errormsg","errorMessage","renderWidget","childrenWithProps","Children","map","renderFormFields","children","child","cloneElement","invokeEvent","triggerValidation","onFieldChange","formRef","createElement","style","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","constructor","arguments","_defineProperty","WmFormField","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","setReadOnlyState","updateMode","readonly","_this$formwidget","_this$_syncValidators","_this$formwidget2","errorType","errormsg","errorMessage","renderWidget","childrenWithProps","Children","map","renderFormFields","children","child","cloneElement","invokeEvent","triggerValidation","onFieldChange","formRef","createElement","style","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 setReadOnlyState(updateMode: any) {\n this.formwidget.updateState({\n props: {\n readonly: !updateMode,\n }\n } as WmFormFieldState);\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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"}
@@ -8,14 +8,22 @@ 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);
26
+ _defineProperty(this, "readonly", false);
19
27
  _defineProperty(this, "onValidate", void 0);
20
28
  }
21
29
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BaseProps","WmFormFieldProps","constructor","arguments","_defineProperty"],"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;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,mBAQlC,KAAK;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,kBAGP,EAAE;IAAAA,eAAA;EAAA;AAEtB"}
1
+ {"version":3,"names":["BaseProps","WmFormFieldProps","constructor","arguments","_defineProperty"],"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 readonly: boolean = false;\n onValidate?: Function;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,gBAAgB,SAASD,SAAS,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,oBAIlC,EAAE;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,mBAKF,KAAK;IAAAA,eAAA,qBACH,KAAK;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,kBAIT,EAAE;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,oBAGA,EAAE;IAAAA,eAAA,yBACI,KAAK;IAAAA,eAAA,mBACX,KAAK;IAAAA,eAAA;EAAA;AAE3B"}
@@ -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);
@@ -19,6 +20,7 @@ export class WmFormState extends BaseComponentState {
19
20
  _defineProperty(this, "type", 'success');
20
21
  _defineProperty(this, "message", '');
21
22
  _defineProperty(this, "showInlineMsg", false);
23
+ _defineProperty(this, "isUpdateMode", true);
22
24
  }
23
25
  }
24
26
  export default class WmForm extends BaseComponent {
@@ -31,6 +33,9 @@ export default class WmForm extends BaseComponent {
31
33
  _defineProperty(this, "formfields", {});
32
34
  _defineProperty(this, "formdataoutput", void 0);
33
35
  _defineProperty(this, "toaster", void 0);
36
+ _defineProperty(this, "formActions", []);
37
+ _defineProperty(this, "primaryKey", []);
38
+ _defineProperty(this, "buttonArray", []);
34
39
  _defineProperty(this, "formWidgets", {});
35
40
  _defineProperty(this, "_debouncedSubmitForm", debounce(this.handleSubmit, 250));
36
41
  }
@@ -48,6 +53,31 @@ export default class WmForm extends BaseComponent {
48
53
  current = current.parent;
49
54
  }
50
55
  }
56
+ setReadonlyFields() {
57
+ var _this$formFields;
58
+ (_this$formFields = this.formFields) === null || _this$formFields === void 0 ? void 0 : _this$formFields.forEach(field => {
59
+ field.setReadOnlyState(this.state.isUpdateMode);
60
+ });
61
+ }
62
+ setReadonlyState(updateMode) {
63
+ this.updateState({
64
+ isUpdateMode: updateMode
65
+ });
66
+ setTimeout(() => {
67
+ this.showActions();
68
+ this.setReadonlyFields();
69
+ }, 100);
70
+ }
71
+ edit() {
72
+ this.setReadonlyState(true);
73
+ }
74
+ new() {
75
+ this.setReadonlyState(true);
76
+ }
77
+ cancel() {
78
+ this.setReadonlyState(false);
79
+ }
80
+ delete() {}
51
81
  registerFormFields(formFields, formWidgets) {
52
82
  forEach(formFields, w => {
53
83
  if (!w.form) {
@@ -62,6 +92,7 @@ export default class WmForm extends BaseComponent {
62
92
  set(this.formfields, f.props.name, f);
63
93
  }
64
94
  });
95
+ this.setReadonlyFields();
65
96
  this.applyFormData();
66
97
  this.applyDefaultValue();
67
98
 
@@ -74,6 +105,37 @@ export default class WmForm extends BaseComponent {
74
105
  set(this.formdataoutput, name, w.props.datavalue);
75
106
  }
76
107
  });
108
+ this.updateState({
109
+ props: {
110
+ dataoutput: this.formdataoutput
111
+ }
112
+ });
113
+ }
114
+ }
115
+ showActions() {
116
+ var _this$buttonArray;
117
+ (_this$buttonArray = this.buttonArray) === null || _this$buttonArray === void 0 ? void 0 : _this$buttonArray.forEach(action => {
118
+ action.updateState({
119
+ props: {
120
+ show: action.updateMode === this.state.isUpdateMode
121
+ }
122
+ });
123
+ });
124
+ }
125
+ registerFormActions(formActions) {
126
+ this.buttonArray = formActions;
127
+ this.showActions();
128
+ }
129
+ _updateFieldOnDataSourceChange(field, formFields) {
130
+ if (!field.state.props.isDataSetBound && isDataSetWidget(field.props.widget)) {
131
+ if (field.state.props.isRelated) {
132
+ field.updateState({
133
+ props: {
134
+ isDataSetBound: true
135
+ }
136
+ });
137
+ this.props.relatedData && this.props.relatedData(field);
138
+ }
77
139
  }
78
140
  }
79
141
  applyFormData() {
@@ -125,6 +187,9 @@ export default class WmForm extends BaseComponent {
125
187
  }
126
188
  }
127
189
  }
190
+ get dataoutput() {
191
+ return this.formdataoutput;
192
+ }
128
193
  applyDefaultValue(formField) {
129
194
  if (formField) {
130
195
  this.updateFormFieldDefaultValue(formField);
@@ -167,11 +232,32 @@ export default class WmForm extends BaseComponent {
167
232
  this._debouncedSubmitForm();
168
233
  }
169
234
  onPropertyChange(name, $new, $old) {
235
+ var _this$formFields2;
170
236
  switch (name) {
171
237
  case 'formdata':
172
238
  if ($new) {
173
239
  this.applyFormData();
174
240
  }
241
+ break;
242
+ case 'defaultmode':
243
+ this.updateState({
244
+ isUpdateMode: $new && $new === 'Edit' ? true : false
245
+ });
246
+ break;
247
+ case 'dataset':
248
+ (_this$formFields2 = this.formFields) === null || _this$formFields2 === void 0 ? void 0 : _this$formFields2.forEach(w => {
249
+ this._updateFieldOnDataSourceChange(w, this.formFields);
250
+ });
251
+ break;
252
+ }
253
+ }
254
+ setPrimaryKey(fieldName) {
255
+ /*Store the primary key of data*/
256
+ this.primaryKey = this.primaryKey || [];
257
+ // @ts-ignore
258
+ if (this.primaryKey.indexOf(fieldName) === -1) {
259
+ // @ts-ignore
260
+ this.primaryKey.push(fieldName);
175
261
  }
176
262
  }
177
263
  // Disable the form submit if form is in invalid state. Highlight all the invalid fields if validation type is default
@@ -181,7 +267,7 @@ export default class WmForm extends BaseComponent {
181
267
  const val = field === null || field === void 0 ? void 0 : field.state.props.datavalue;
182
268
  const onValidate = get(field, 'props.onValidate');
183
269
  onValidate && onValidate(field);
184
- if (!val && field !== null && field !== void 0 && field.state.props.required) {
270
+ if (!val && field !== null && field !== void 0 && field.state.props.required && field.state.props.generator === 'assigned') {
185
271
  isValid = false;
186
272
  const msg = get(field.defaultValidatorMessages, 'required') || field.state.props.validationmessage;
187
273
  field.updateState({
@@ -246,6 +332,11 @@ export default class WmForm extends BaseComponent {
246
332
  }
247
333
  });
248
334
  this.parentFormRef && this.parentFormRef.updateDataOutput(undefined, this.formdataoutput);
335
+ this.updateState({
336
+ props: {
337
+ dataoutput: this.formdataoutput
338
+ }
339
+ });
249
340
  }
250
341
  toggleMessage(type, message) {
251
342
  if (this.state.props.messagelayout === 'Inline') {