@wavemaker/app-rn-runtime 11.7.0-next.42251 → 11.7.0-rc.5525

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. app-rn-runtime/components/basic/anchor/anchor.component.js +3 -1
  2. app-rn-runtime/components/basic/anchor/anchor.component.js.map +1 -1
  3. app-rn-runtime/components/basic/anchor/anchor.props.js +1 -0
  4. app-rn-runtime/components/basic/anchor/anchor.props.js.map +1 -1
  5. app-rn-runtime/components/basic/button/button.component.js +3 -1
  6. app-rn-runtime/components/basic/button/button.component.js.map +1 -1
  7. app-rn-runtime/components/basic/button/button.styles.js +2 -1
  8. app-rn-runtime/components/basic/button/button.styles.js.map +1 -1
  9. app-rn-runtime/components/basic/label/label.component.js +17 -9
  10. app-rn-runtime/components/basic/label/label.component.js.map +1 -1
  11. app-rn-runtime/components/basic/search/search.component.js +8 -2
  12. app-rn-runtime/components/basic/search/search.component.js.map +1 -1
  13. app-rn-runtime/components/basic/search/search.props.js +1 -0
  14. app-rn-runtime/components/basic/search/search.props.js.map +1 -1
  15. app-rn-runtime/components/chart/basechart.component.js +1 -0
  16. app-rn-runtime/components/chart/basechart.component.js.map +1 -1
  17. app-rn-runtime/components/chart/stack-chart/stack-chart.component.js +17 -10
  18. app-rn-runtime/components/chart/stack-chart/stack-chart.component.js.map +1 -1
  19. app-rn-runtime/components/container/container.component.js +1 -10
  20. app-rn-runtime/components/container/container.component.js.map +1 -1
  21. app-rn-runtime/components/container/container.props.js +0 -1
  22. app-rn-runtime/components/container/container.props.js.map +1 -1
  23. app-rn-runtime/components/container/tabs/tabheader/tabheader.component.js +1 -1
  24. app-rn-runtime/components/container/tabs/tabheader/tabheader.component.js.map +1 -1
  25. app-rn-runtime/components/container/tabs/tabpane/tabpane.component.js +14 -1
  26. app-rn-runtime/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
  27. app-rn-runtime/components/container/tabs/tabs.component.js +3 -0
  28. app-rn-runtime/components/container/tabs/tabs.component.js.map +1 -1
  29. app-rn-runtime/components/data/form/form-action/form-action.component.js +1 -0
  30. app-rn-runtime/components/data/form/form-action/form-action.component.js.map +1 -1
  31. app-rn-runtime/components/data/form/form-action/form-action.props.js +1 -0
  32. app-rn-runtime/components/data/form/form-action/form-action.props.js.map +1 -1
  33. app-rn-runtime/components/data/form/form-field/form-field.component.js +11 -0
  34. app-rn-runtime/components/data/form/form-field/form-field.component.js.map +1 -1
  35. app-rn-runtime/components/data/form/form-field/form-field.props.js +3 -0
  36. app-rn-runtime/components/data/form/form-field/form-field.props.js.map +1 -1
  37. app-rn-runtime/components/data/form/form.component.js +26 -4
  38. app-rn-runtime/components/data/form/form.component.js.map +1 -1
  39. app-rn-runtime/components/data/form/form.props.js +3 -0
  40. app-rn-runtime/components/data/form/form.props.js.map +1 -1
  41. app-rn-runtime/components/data/list/list.component.js +42 -38
  42. app-rn-runtime/components/data/list/list.component.js.map +1 -1
  43. app-rn-runtime/components/data/list/list.props.js +2 -0
  44. app-rn-runtime/components/data/list/list.props.js.map +1 -1
  45. app-rn-runtime/components/data/list/list.styles.js +5 -1
  46. app-rn-runtime/components/data/list/list.styles.js.map +1 -1
  47. app-rn-runtime/components/dialogs/dialogcontent/dialogcontent.component.js +4 -0
  48. app-rn-runtime/components/dialogs/dialogcontent/dialogcontent.component.js.map +1 -1
  49. app-rn-runtime/components/input/baseinput/baseinput.component.js +1 -1
  50. app-rn-runtime/components/input/baseinput/baseinput.component.js.map +1 -1
  51. app-rn-runtime/components/input/baseinput/baseinput.props.js +2 -0
  52. app-rn-runtime/components/input/baseinput/baseinput.props.js.map +1 -1
  53. app-rn-runtime/components/input/checkboxset/checkboxset.component.js +13 -4
  54. app-rn-runtime/components/input/checkboxset/checkboxset.component.js.map +1 -1
  55. app-rn-runtime/components/input/checkboxset/checkboxset.props.js +1 -0
  56. app-rn-runtime/components/input/checkboxset/checkboxset.props.js.map +1 -1
  57. app-rn-runtime/components/input/radioset/radioset.component.js +49 -23
  58. app-rn-runtime/components/input/radioset/radioset.component.js.map +1 -1
  59. app-rn-runtime/components/input/radioset/radioset.props.js +1 -0
  60. app-rn-runtime/components/input/radioset/radioset.props.js.map +1 -1
  61. app-rn-runtime/components/input/radioset/radioset.styles.js +35 -2
  62. app-rn-runtime/components/input/radioset/radioset.styles.js.map +1 -1
  63. app-rn-runtime/components/input/slider/slider.component.js +3 -2
  64. app-rn-runtime/components/input/slider/slider.component.js.map +1 -1
  65. app-rn-runtime/components/input/text/text.component.js +4 -2
  66. app-rn-runtime/components/input/text/text.component.js.map +1 -1
  67. app-rn-runtime/components/input/toggle/toggle.component.js +3 -2
  68. app-rn-runtime/components/input/toggle/toggle.component.js.map +1 -1
  69. app-rn-runtime/components/navigation/popover/popover.component.js +4 -0
  70. app-rn-runtime/components/navigation/popover/popover.component.js.map +1 -1
  71. app-rn-runtime/components/page/left-panel/left-panel.component.js +4 -0
  72. app-rn-runtime/components/page/left-panel/left-panel.component.js.map +1 -1
  73. app-rn-runtime/core/accessibility.js +2 -2
  74. app-rn-runtime/core/accessibility.js.map +1 -1
  75. app-rn-runtime/core/base.component.js +12 -3
  76. app-rn-runtime/core/base.component.js.map +1 -1
  77. app-rn-runtime/core/components/textinput.component.js +147 -14
  78. app-rn-runtime/core/components/textinput.component.js.map +1 -1
  79. app-rn-runtime/core/event-notifier.js +21 -7
  80. app-rn-runtime/core/event-notifier.js.map +1 -1
  81. app-rn-runtime/core/formatters.js +14 -1
  82. app-rn-runtime/core/formatters.js.map +1 -1
  83. app-rn-runtime/package.json +4 -3
  84. app-rn-runtime/runtime/App.js +5 -3
  85. app-rn-runtime/runtime/App.js.map +1 -1
  86. app-rn-runtime/runtime/base-fragment.component.js +5 -1
  87. app-rn-runtime/runtime/base-fragment.component.js.map +1 -1
  88. app-rn-runtime/styles/background.component.js +15 -4
  89. app-rn-runtime/styles/background.component.js.map +1 -1
@@ -10,11 +10,15 @@ export class WmTabpaneState extends BaseComponentState {
10
10
  constructor() {
11
11
  super(...arguments);
12
12
  _defineProperty(this, "isPartialLoaded", false);
13
+ _defineProperty(this, "isActive", false);
13
14
  }
14
15
  }
15
16
  export default class WmTabpane extends BaseComponent {
16
17
  constructor(props) {
17
- super(props, DEFAULT_CLASS, new WmTabpaneProps());
18
+ super(props, DEFAULT_CLASS, new WmTabpaneProps(), new WmTabpaneState());
19
+ this.subscribe('scroll', event => {
20
+ return this.state.isActive;
21
+ });
18
22
  }
19
23
  onPartialLoad() {
20
24
  this.invokeEventCallback('onLoad', [null, this]);
@@ -32,15 +36,24 @@ export default class WmTabpane extends BaseComponent {
32
36
  }
33
37
  return props.children;
34
38
  }
39
+ showView() {
40
+ return this.isVisible() && this.state.isActive;
41
+ }
35
42
  componentDidMount() {
36
43
  const tabs = this.parent;
37
44
  tabs.addTabPane(this.proxy);
38
45
  super.componentDidMount();
39
46
  }
40
47
  _onSelect() {
48
+ this.updateState({
49
+ isActive: true
50
+ });
41
51
  this.invokeEventCallback('onSelect', [null, this.proxy]);
42
52
  }
43
53
  _onDeselect() {
54
+ this.updateState({
55
+ isActive: false
56
+ });
44
57
  this.invokeEventCallback('onDeselect', [null, this.proxy]);
45
58
  }
46
59
  select() {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","BaseComponent","BaseComponentState","WmTabpaneProps","DEFAULT_CLASS","WmTabpaneState","constructor","arguments","_defineProperty","WmTabpane","props","onPartialLoad","invokeEventCallback","renderContent","renderPartial","state","isPartialLoaded","setTimeout","updateState","bind","children","componentDidMount","tabs","parent","addTabPane","proxy","_onSelect","_onDeselect","select","selectTabPane","renderWidget","createElement","style","styles","root","_background"],"sources":["tabpane.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmTabpaneProps from './tabpane.props';\nimport { DEFAULT_CLASS, WmTabpaneStyles } from './tabpane.styles';\nimport WmTabs from '../tabs.component';\n\nexport class WmTabpaneState extends BaseComponentState<WmTabpaneProps> {\n isPartialLoaded = false;\n}\n\nexport default class WmTabpane extends BaseComponent<WmTabpaneProps, WmTabpaneState, WmTabpaneStyles> {\n\n constructor(props: WmTabpaneProps) {\n super(props, DEFAULT_CLASS, new WmTabpaneProps());\n }\n\n onPartialLoad() {\n this.invokeEventCallback('onLoad', [null, this]);\n }\n\n renderContent(props: WmTabpaneProps) {\n if (props.renderPartial) {\n if (!this.state.isPartialLoaded) {\n setTimeout(() => {\n this.updateState({\n isPartialLoaded: true\n } as WmTabpaneState);\n });\n }\n return props.renderPartial(props, this.onPartialLoad.bind(this));\n }\n return props.children;\n }\n\n componentDidMount() {\n const tabs = (this.parent) as WmTabs;\n tabs.addTabPane(this.proxy as WmTabpane);\n super.componentDidMount();\n }\n\n _onSelect() {\n this.invokeEventCallback('onSelect', [null, this.proxy]);\n }\n _onDeselect() {\n this.invokeEventCallback('onDeselect', [null, this.proxy]);\n }\n\n select() {\n (this.parent as WmTabs).selectTabPane(this);\n }\n\n renderWidget(props: WmTabpaneProps) {\n return (<View style={this.styles.root}>{this._background}{this.renderContent(props)}</View>);\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,cAAc,MAAM,iBAAiB;AAC5C,SAASC,aAAa,QAAyB,kBAAkB;AAGjE,OAAO,MAAMC,cAAc,SAASH,kBAAkB,CAAiB;EAAAI,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,0BACnD,KAAK;EAAA;AACzB;AAEA,eAAe,MAAMC,SAAS,SAASR,aAAa,CAAkD;EAEpGK,WAAWA,CAACI,KAAqB,EAAE;IACjC,KAAK,CAACA,KAAK,EAAEN,aAAa,EAAE,IAAID,cAAc,CAAC,CAAC,CAAC;EACnD;EAEAQ,aAAaA,CAAA,EAAG;IACd,IAAI,CAACC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EAClD;EAEAC,aAAaA,CAACH,KAAqB,EAAE;IACnC,IAAIA,KAAK,CAACI,aAAa,EAAE;MACvB,IAAI,CAAC,IAAI,CAACC,KAAK,CAACC,eAAe,EAAE;QAC/BC,UAAU,CAAC,MAAM;UACf,IAAI,CAACC,WAAW,CAAC;YACfF,eAAe,EAAE;UACnB,CAAmB,CAAC;QACtB,CAAC,CAAC;MACJ;MACA,OAAON,KAAK,CAACI,aAAa,CAACJ,KAAK,EAAE,IAAI,CAACC,aAAa,CAACQ,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE;IACA,OAAOT,KAAK,CAACU,QAAQ;EACvB;EAEAC,iBAAiBA,CAAA,EAAG;IAClB,MAAMC,IAAI,GAAI,IAAI,CAACC,MAAiB;IACpCD,IAAI,CAACE,UAAU,CAAC,IAAI,CAACC,KAAkB,CAAC;IACxC,KAAK,CAACJ,iBAAiB,CAAC,CAAC;EAC3B;EAEAK,SAASA,CAAA,EAAG;IACV,IAAI,CAACd,mBAAmB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAACa,KAAK,CAAC,CAAC;EAC1D;EACAE,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACf,mBAAmB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,CAACa,KAAK,CAAC,CAAC;EAC5D;EAEAG,MAAMA,CAAA,EAAG;IACN,IAAI,CAACL,MAAM,CAAYM,aAAa,CAAC,IAAI,CAAC;EAC7C;EAEAC,YAAYA,CAACpB,KAAqB,EAAE;IAClC,oBAAQX,KAAA,CAAAgC,aAAA,CAAC/B,IAAI;MAACgC,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;IAAK,GAAE,IAAI,CAACC,WAAW,EAAE,IAAI,CAACtB,aAAa,CAACH,KAAK,CAAQ,CAAC;EAC7F;AACF"}
1
+ {"version":3,"names":["React","View","BaseComponent","BaseComponentState","WmTabpaneProps","DEFAULT_CLASS","WmTabpaneState","constructor","arguments","_defineProperty","WmTabpane","props","subscribe","event","state","isActive","onPartialLoad","invokeEventCallback","renderContent","renderPartial","isPartialLoaded","setTimeout","updateState","bind","children","showView","isVisible","componentDidMount","tabs","parent","addTabPane","proxy","_onSelect","_onDeselect","select","selectTabPane","renderWidget","createElement","style","styles","root","_background"],"sources":["tabpane.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmTabpaneProps from './tabpane.props';\nimport { DEFAULT_CLASS, WmTabpaneStyles } from './tabpane.styles';\nimport WmTabs from '../tabs.component';\n\nexport class WmTabpaneState extends BaseComponentState<WmTabpaneProps> {\n isPartialLoaded = false;\n isActive = false;\n}\n\nexport default class WmTabpane extends BaseComponent<WmTabpaneProps, WmTabpaneState, WmTabpaneStyles> {\n\n constructor(props: WmTabpaneProps) {\n super(props, DEFAULT_CLASS, new WmTabpaneProps(), new WmTabpaneState());\n this.subscribe('scroll', (event: any) => {\n return this.state.isActive;\n });\n }\n\n onPartialLoad() {\n this.invokeEventCallback('onLoad', [null, this]);\n }\n\n renderContent(props: WmTabpaneProps) {\n if (props.renderPartial) {\n if (!this.state.isPartialLoaded) {\n setTimeout(() => {\n this.updateState({\n isPartialLoaded: true\n } as WmTabpaneState);\n });\n }\n return props.renderPartial(props, this.onPartialLoad.bind(this));\n }\n return props.children;\n }\n\n showView(): boolean {\n return this.isVisible() && this.state.isActive;\n }\n\n componentDidMount() {\n const tabs = (this.parent) as WmTabs;\n tabs.addTabPane(this.proxy as WmTabpane);\n super.componentDidMount();\n }\n\n _onSelect() {\n this.updateState({\n isActive: true\n } as WmTabpaneState);\n this.invokeEventCallback('onSelect', [null, this.proxy]);\n }\n _onDeselect() {\n this.updateState({\n isActive: false\n } as WmTabpaneState);\n this.invokeEventCallback('onDeselect', [null, this.proxy]);\n }\n\n select() {\n (this.parent as WmTabs).selectTabPane(this);\n }\n\n renderWidget(props: WmTabpaneProps) {\n return (<View style={this.styles.root}>\n {this._background}\n {this.renderContent(props)}\n </View>);\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,cAAc,MAAM,iBAAiB;AAC5C,SAASC,aAAa,QAAyB,kBAAkB;AAGjE,OAAO,MAAMC,cAAc,SAASH,kBAAkB,CAAiB;EAAAI,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,0BACnD,KAAK;IAAAA,eAAA,mBACZ,KAAK;EAAA;AAClB;AAEA,eAAe,MAAMC,SAAS,SAASR,aAAa,CAAkD;EAEpGK,WAAWA,CAACI,KAAqB,EAAE;IACjC,KAAK,CAACA,KAAK,EAAEN,aAAa,EAAE,IAAID,cAAc,CAAC,CAAC,EAAE,IAAIE,cAAc,CAAC,CAAC,CAAC;IACvE,IAAI,CAACM,SAAS,CAAC,QAAQ,EAAGC,KAAU,IAAK;MACvC,OAAO,IAAI,CAACC,KAAK,CAACC,QAAQ;IAC5B,CAAC,CAAC;EACJ;EAEAC,aAAaA,CAAA,EAAG;IACd,IAAI,CAACC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EAClD;EAEAC,aAAaA,CAACP,KAAqB,EAAE;IACnC,IAAIA,KAAK,CAACQ,aAAa,EAAE;MACvB,IAAI,CAAC,IAAI,CAACL,KAAK,CAACM,eAAe,EAAE;QAC/BC,UAAU,CAAC,MAAM;UACf,IAAI,CAACC,WAAW,CAAC;YACfF,eAAe,EAAE;UACnB,CAAmB,CAAC;QACtB,CAAC,CAAC;MACJ;MACA,OAAOT,KAAK,CAACQ,aAAa,CAACR,KAAK,EAAE,IAAI,CAACK,aAAa,CAACO,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE;IACA,OAAOZ,KAAK,CAACa,QAAQ;EACvB;EAEAC,QAAQA,CAAA,EAAY;IAClB,OAAO,IAAI,CAACC,SAAS,CAAC,CAAC,IAAI,IAAI,CAACZ,KAAK,CAACC,QAAQ;EAChD;EAEAY,iBAAiBA,CAAA,EAAG;IAClB,MAAMC,IAAI,GAAI,IAAI,CAACC,MAAiB;IACpCD,IAAI,CAACE,UAAU,CAAC,IAAI,CAACC,KAAkB,CAAC;IACxC,KAAK,CAACJ,iBAAiB,CAAC,CAAC;EAC3B;EAEAK,SAASA,CAAA,EAAG;IACV,IAAI,CAACV,WAAW,CAAC;MACfP,QAAQ,EAAE;IACZ,CAAmB,CAAC;IACpB,IAAI,CAACE,mBAAmB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAACc,KAAK,CAAC,CAAC;EAC1D;EACAE,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACX,WAAW,CAAC;MACfP,QAAQ,EAAE;IACZ,CAAmB,CAAC;IACpB,IAAI,CAACE,mBAAmB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,CAACc,KAAK,CAAC,CAAC;EAC5D;EAEAG,MAAMA,CAAA,EAAG;IACN,IAAI,CAACL,MAAM,CAAYM,aAAa,CAAC,IAAI,CAAC;EAC7C;EAEAC,YAAYA,CAACzB,KAAqB,EAAE;IAClC,oBAAQX,KAAA,CAAAqC,aAAA,CAACpC,IAAI;MAACqC,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;IAAK,GACjC,IAAI,CAACC,WAAW,EAChB,IAAI,CAACvB,aAAa,CAACP,KAAK,CACrB,CAAC;EACX;AACF"}
@@ -81,6 +81,9 @@ export default class WmTabs extends BaseComponent {
81
81
  selectTabPane(tabPane) {
82
82
  this.goToTab(this.tabPanes.indexOf(tabPane));
83
83
  }
84
+ get selectedTabPane() {
85
+ return this.tabPanes[this.state.selectedTabIndex];
86
+ }
84
87
  goToTab() {
85
88
  var _this$tabLayout2, _this$animationView;
86
89
  let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.selectedTabIndex;
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","BaseComponent","BaseComponentState","SwipeAnimation","isWebPreviewMode","WmTabsProps","DEFAULT_CLASS","WmTabheader","WmTabsState","constructor","arguments","_defineProperty","WmTabs","props","bounds","e","_this$tabLayout","activeTabIndex","state","selectedTabIndex","w","tabLayout","width","noOfTabs","tabPanes","length","lower","center","upper","onLower","onChange","onUpper","setTabLayout","event","nativeEvent","layout","forceUpdate","goToTab","setTabPaneHeights","index","_nativeEvent$nativeEv","tabPaneHeights","height","setTabShown","tabIndex","callback","tabsShown","setTimeout","updateState","addTabPane","tabPane","i","findIndex","t","name","newIndex","selectTabPane","indexOf","_this$tabLayout2","_this$animationView","undefined","position","animationView","setPosition","then","prev","_this$animationView2","goToLower","next","_this$animationView3","oldIndex","deselectedTab","_onDeselect","selectedTab","_onSelect","invokeEventCallback","proxy","renderSkeleton","Children","toArray","children","filter","item","show","headerData","map","p","title","icon","key","createElement","style","styles","root","borderBottomWidth","onLayout","bind","tabHeader","data","showskeleton","overflow","flexDirection","flexWrap","alignSelf","onPropertyChange","$new","$old","selectedIndex","renderWidget","_background","id","getTestId","onIndexChange","flex","maxHeight","tabContent","enableGestures","enablegestures","alignItems","direction","ref","r","handlers","animationHandlers"],"sources":["tabs.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, LayoutRectangle, View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport * as SwipeAnimation from '@wavemaker/app-rn-runtime/gestures/swipe.animation';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\n\nimport WmTabsProps from './tabs.props';\nimport { DEFAULT_CLASS, WmTabsStyles } from './tabs.styles';\nimport WmTabpane from './tabpane/tabpane.component';\nimport WmTabheader from './tabheader/tabheader.component';\n\nexport class WmTabsState extends BaseComponentState<WmTabsProps> {\n tabsShown: boolean[] = [];\n selectedTabIndex: number = 0;\n}\n\nexport default class WmTabs extends BaseComponent<WmTabsProps, WmTabsState, WmTabsStyles> {\n public tabPanes = [] as WmTabpane[];\n private newIndex = 0;\n private tabLayout: LayoutRectangle = null as any;\n private tabPaneHeights: number[] = [];\n private animationView: SwipeAnimation.View | null = null as any;\n private animationHandlers = {\n bounds: (e) => {\n const activeTabIndex = this.state.selectedTabIndex,\n w = this.tabLayout?.width || 0,\n noOfTabs = this.tabPanes.length;\n return {\n lower: -1 * (activeTabIndex - (activeTabIndex === 0 ? 0 : 1)) * w,\n center: -1 * activeTabIndex * w,\n upper: -1 * (activeTabIndex + (activeTabIndex === noOfTabs - 1 ? 0 : 1)) * w\n };\n },\n onLower: (e) => {\n this.onChange(this.state.selectedTabIndex - 1);\n },\n onUpper: (e) => {\n this.onChange(this.state.selectedTabIndex + 1);\n }\n } as SwipeAnimation.Handlers;\n\n constructor(props: WmTabsProps) {\n super(props, DEFAULT_CLASS, new WmTabsProps(), new WmTabsState());\n }\n \n setTabLayout(event: LayoutChangeEvent) {\n this.tabLayout = event.nativeEvent.layout;\n this.forceUpdate(() => {\n this.goToTab();\n });\n }\n\n setTabPaneHeights(index: number, nativeEvent: LayoutChangeEvent) {\n this.tabPaneHeights[index] = nativeEvent.nativeEvent.layout?.height;\n if (index === this.state.selectedTabIndex) {\n this.forceUpdate();\n }\n }\n\n setTabShown(tabIndex: number, callback: () => any) {\n if (!this.state.tabsShown[tabIndex]) {\n const tabsShown = [...this.state.tabsShown];\n tabsShown[tabIndex] = true;\n setTimeout(() => {\n this.updateState({\n tabsShown: tabsShown\n } as WmTabsState, callback);\n }, 300);\n } else {\n callback && callback();\n }\n }\n\n addTabPane(tabPane: WmTabpane) {\n const i = this.tabPanes.findIndex(t => t.props.name === tabPane.props.name);\n if (i >= 0) {\n this.tabPanes[i] = tabPane;\n } else {\n this.tabPanes[this.newIndex++] = tabPane;\n }\n }\n\n selectTabPane(tabPane: WmTabpane) {\n this.goToTab(this.tabPanes.indexOf(tabPane));\n }\n\n goToTab(index = this.state.selectedTabIndex) {\n const position = -1 * index * (this.tabLayout?.width || 0);\n this.animationView?.setPosition(position)\n .then(() => this.onChange(index));\n }\n\n prev() {\n this.animationView?.goToLower();\n }\n\n next() {\n this.animationView?.goToLower();\n }\n\n onChange(newIndex: number) {\n if (newIndex < 0 || newIndex >= this.tabPanes.length) {\n return;\n }\n const oldIndex = this.state.selectedTabIndex;\n const deselectedTab = this.tabPanes[this.state.selectedTabIndex];\n this.newIndex = newIndex;\n deselectedTab?._onDeselect();\n this.updateState({\n selectedTabIndex: newIndex\n } as WmTabsState, () => {\n this.setTabShown(newIndex, () => {\n const selectedTab = this.tabPanes[newIndex];\n selectedTab?._onSelect();\n this.invokeEventCallback('onChange', [{}, this.proxy, newIndex, oldIndex]);\n });\n });\n }\n\n public renderSkeleton(props: WmTabsProps){\n const tabPanes = React.Children.toArray(this.props.children)\n .filter((item: any, index: number) => item.props.show != false);\n const headerData = tabPanes.map((p: any, i: number) => \n ({title: p.props.title || 'Tab Title', icon: '', key: `tab-${p.props.title}-${i}`}));\n return(\n <View style={[this.styles.root, { borderBottomWidth: 0}]}>\n <View onLayout={this.setTabLayout.bind(this)} style={{width: '100%'}}></View>\n <WmTabheader\n styles={this.styles.tabHeader}\n data={headerData}\n showskeleton={this.props.showskeleton}\n selectedTabIndex={this.state.selectedTabIndex}\n ></WmTabheader>\n <View \n //{...this.panResponder.panHandlers}\n style={{\n width: '100%',\n //height: this.tabPaneHeights[this.state.selectedTabIndex],\n overflow: 'hidden'\n }} >\n <View style={{\n flexDirection: 'row',\n flexWrap: 'nowrap'\n }}>\n {tabPanes.map((p: any, i) => {\n return (\n <View\n key={`tab-${p.props.title}-${i}`}\n style={{width: '100%', alignSelf: 'flex-start'}}\n onLayout={this.setTabPaneHeights.bind(this, i)}>\n {/* {this.state.tabsShown[i] ? p : null} */}\n {p}\n </View>);\n })}\n </View>\n </View>\n </View>\n\n )\n }\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case \"defaultpaneindex\":\n const selectedIndex = $new || 0;\n const tabsShown: boolean[] = [];\n tabsShown[selectedIndex] = true;\n this.updateState({\n selectedTabIndex: selectedIndex,\n tabsShown: tabsShown\n } as WmTabsState);\n }\n }\n \n renderWidget(props: WmTabsProps) {\n const tabPanes = React.Children.toArray(props.children)\n .filter((item: any, index: number) => item.props.show != false);\n const headerData = tabPanes.map((p: any, i: number) => \n ({title: p.props.title || 'Tab Title', icon: '', key: `tab-${p.props.title}-${i}`}));\n return (\n <View style={this.styles.root}>\n {this._background}\n <View onLayout={this.setTabLayout.bind(this)} style={{width: '100%'}}></View>\n <WmTabheader\n id={this.getTestId('headers')}\n styles={this.styles.tabHeader}\n data={headerData}\n selectedTabIndex={this.state.selectedTabIndex}\n onIndexChange={this.goToTab.bind(this)}\n ></WmTabheader>\n <View\n style={[{\n width: '100%',\n flex: 1\n }, this.styles.root.height ? \n (isWebPreviewMode() ? {'overflow-x': 'hidden','overflow-y': 'auto'} as any : {overflow: 'scroll'}) \n : {\n overflow: 'hidden',\n maxHeight: this.tabPaneHeights[this.state.selectedTabIndex],\n }, this.styles.tabContent]} >\n <SwipeAnimation.View \n enableGestures={props.enablegestures}\n style={{\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start'\n }}\n direction='horizontal'\n ref={(r) => {this.animationView = r}}\n handlers = {this.animationHandlers}\n >\n {tabPanes.map((p: any, i) => {\n return (\n <View \n key={`tab-${p.props.title}-${i}`}\n style={{\n width: '100%',\n height: this.styles.root.height ? undefined : 1000000,\n alignSelf: 'flex-start'}}>\n <View\n style={{width: '100%', alignSelf: 'flex-start'}}\n onLayout={this.setTabPaneHeights.bind(this, i)}>\n {/* {this.state.tabsShown[i] ? p : null} */}\n {p}\n </View>\n </View>);\n })}\n </SwipeAnimation.View>\n </View>\n </View>\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAA6CC,IAAI,QAAQ,cAAc;AACvE,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AACjG,OAAO,KAAKC,cAAc,MAAM,oDAAoD;AACpF,SAASC,gBAAgB,QAAQ,sCAAsC;AAEvE,OAAOC,WAAW,MAAM,cAAc;AACtC,SAASC,aAAa,QAAsB,eAAe;AAE3D,OAAOC,WAAW,MAAM,iCAAiC;AAEzD,OAAO,MAAMC,WAAW,SAASN,kBAAkB,CAAc;EAAAO,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,oBACxC,EAAE;IAAAA,eAAA,2BACE,CAAC;EAAA;AAC9B;AAEA,eAAe,MAAMC,MAAM,SAASX,aAAa,CAAyC;EAyBxFQ,WAAWA,CAACI,KAAkB,EAAE;IAC9B,KAAK,CAACA,KAAK,EAAEP,aAAa,EAAE,IAAID,WAAW,CAAC,CAAC,EAAE,IAAIG,WAAW,CAAC,CAAC,CAAC;IAACG,eAAA,mBAzBlD,EAAE;IAAAA,eAAA,mBACD,CAAC;IAAAA,eAAA,oBACiB,IAAI;IAAAA,eAAA,yBACN,EAAE;IAAAA,eAAA,wBACe,IAAI;IAAAA,eAAA,4BAC5B;MAC1BG,MAAM,EAAGC,CAAC,IAAK;QAAA,IAAAC,eAAA;QACb,MAAMC,cAAc,GAAG,IAAI,CAACC,KAAK,CAACC,gBAAgB;UAC5CC,CAAC,GAAG,EAAAJ,eAAA,OAAI,CAACK,SAAS,cAAAL,eAAA,uBAAdA,eAAA,CAAgBM,KAAK,KAAI,CAAC;UAC9BC,QAAQ,GAAG,IAAI,CAACC,QAAQ,CAACC,MAAM;QACrC,OAAO;UACLC,KAAK,EAAE,CAAC,CAAC,IAAIT,cAAc,IAAIA,cAAc,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAGG,CAAC;UACjEO,MAAM,EAAE,CAAC,CAAC,GAAGV,cAAc,GAAGG,CAAC;UAC/BQ,KAAK,EAAG,CAAC,CAAC,IAAIX,cAAc,IAAIA,cAAc,KAAKM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAGH;QAC9E,CAAC;MACH,CAAC;MACDS,OAAO,EAAGd,CAAC,IAAK;QACd,IAAI,CAACe,QAAQ,CAAC,IAAI,CAACZ,KAAK,CAACC,gBAAgB,GAAG,CAAC,CAAC;MAChD,CAAC;MACDY,OAAO,EAAGhB,CAAC,IAAK;QACd,IAAI,CAACe,QAAQ,CAAC,IAAI,CAACZ,KAAK,CAACC,gBAAgB,GAAG,CAAC,CAAC;MAChD;IACF,CAAC;EAID;EAEAa,YAAYA,CAACC,KAAwB,EAAE;IACrC,IAAI,CAACZ,SAAS,GAAGY,KAAK,CAACC,WAAW,CAACC,MAAM;IACzC,IAAI,CAACC,WAAW,CAAC,MAAM;MACrB,IAAI,CAACC,OAAO,CAAC,CAAC;IAChB,CAAC,CAAC;EACJ;EAEAC,iBAAiBA,CAACC,KAAa,EAAEL,WAA8B,EAAE;IAAA,IAAAM,qBAAA;IAC/D,IAAI,CAACC,cAAc,CAACF,KAAK,CAAC,IAAAC,qBAAA,GAAGN,WAAW,CAACA,WAAW,CAACC,MAAM,cAAAK,qBAAA,uBAA9BA,qBAAA,CAAgCE,MAAM;IACnE,IAAIH,KAAK,KAAK,IAAI,CAACrB,KAAK,CAACC,gBAAgB,EAAE;MACzC,IAAI,CAACiB,WAAW,CAAC,CAAC;IACpB;EACF;EAEAO,WAAWA,CAACC,QAAgB,EAAEC,QAAmB,EAAE;IACjD,IAAI,CAAC,IAAI,CAAC3B,KAAK,CAAC4B,SAAS,CAACF,QAAQ,CAAC,EAAE;MACnC,MAAME,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC5B,KAAK,CAAC4B,SAAS,CAAC;MAC3CA,SAAS,CAACF,QAAQ,CAAC,GAAG,IAAI;MAC1BG,UAAU,CAAC,MAAM;QACf,IAAI,CAACC,WAAW,CAAC;UACfF,SAAS,EAAEA;QACb,CAAC,EAAiBD,QAAQ,CAAC;MAC7B,CAAC,EAAE,GAAG,CAAC;IACT,CAAC,MAAM;MACLA,QAAQ,IAAIA,QAAQ,CAAC,CAAC;IACxB;EACF;EAEAI,UAAUA,CAACC,OAAkB,EAAE;IAC7B,MAAMC,CAAC,GAAG,IAAI,CAAC3B,QAAQ,CAAC4B,SAAS,CAACC,CAAC,IAAIA,CAAC,CAACxC,KAAK,CAACyC,IAAI,KAAKJ,OAAO,CAACrC,KAAK,CAACyC,IAAI,CAAC;IAC3E,IAAIH,CAAC,IAAI,CAAC,EAAE;MACV,IAAI,CAAC3B,QAAQ,CAAC2B,CAAC,CAAC,GAAGD,OAAO;IAC5B,CAAC,MAAM;MACL,IAAI,CAAC1B,QAAQ,CAAC,IAAI,CAAC+B,QAAQ,EAAE,CAAC,GAAGL,OAAO;IAC1C;EACF;EAEAM,aAAaA,CAACN,OAAkB,EAAE;IAChC,IAAI,CAACb,OAAO,CAAC,IAAI,CAACb,QAAQ,CAACiC,OAAO,CAACP,OAAO,CAAC,CAAC;EAC9C;EAEAb,OAAOA,CAAA,EAAsC;IAAA,IAAAqB,gBAAA,EAAAC,mBAAA;IAAA,IAArCpB,KAAK,GAAA7B,SAAA,CAAAe,MAAA,QAAAf,SAAA,QAAAkD,SAAA,GAAAlD,SAAA,MAAG,IAAI,CAACQ,KAAK,CAACC,gBAAgB;IACzC,MAAM0C,QAAQ,GAAG,CAAC,CAAC,GAAGtB,KAAK,IAAI,EAAAmB,gBAAA,OAAI,CAACrC,SAAS,cAAAqC,gBAAA,uBAAdA,gBAAA,CAAgBpC,KAAK,KAAI,CAAC,CAAC;IAC1D,CAAAqC,mBAAA,OAAI,CAACG,aAAa,cAAAH,mBAAA,uBAAlBA,mBAAA,CAAoBI,WAAW,CAACF,QAAQ,CAAC,CACtCG,IAAI,CAAC,MAAM,IAAI,CAAClC,QAAQ,CAACS,KAAK,CAAC,CAAC;EACrC;EAEA0B,IAAIA,CAAA,EAAG;IAAA,IAAAC,oBAAA;IACL,CAAAA,oBAAA,OAAI,CAACJ,aAAa,cAAAI,oBAAA,uBAAlBA,oBAAA,CAAoBC,SAAS,CAAC,CAAC;EACjC;EAEAC,IAAIA,CAAA,EAAG;IAAA,IAAAC,oBAAA;IACL,CAAAA,oBAAA,OAAI,CAACP,aAAa,cAAAO,oBAAA,uBAAlBA,oBAAA,CAAoBF,SAAS,CAAC,CAAC;EACjC;EAEArC,QAAQA,CAACyB,QAAgB,EAAE;IACzB,IAAIA,QAAQ,GAAG,CAAC,IAAIA,QAAQ,IAAI,IAAI,CAAC/B,QAAQ,CAACC,MAAM,EAAE;MACpD;IACF;IACA,MAAM6C,QAAQ,GAAG,IAAI,CAACpD,KAAK,CAACC,gBAAgB;IAC5C,MAAMoD,aAAa,GAAG,IAAI,CAAC/C,QAAQ,CAAC,IAAI,CAACN,KAAK,CAACC,gBAAgB,CAAC;IAChE,IAAI,CAACoC,QAAQ,GAAGA,QAAQ;IACxBgB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEC,WAAW,CAAC,CAAC;IAC5B,IAAI,CAACxB,WAAW,CAAC;MACf7B,gBAAgB,EAAEoC;IACpB,CAAC,EAAiB,MAAM;MACtB,IAAI,CAACZ,WAAW,CAACY,QAAQ,EAAE,MAAM;QAC/B,MAAMkB,WAAW,GAAG,IAAI,CAACjD,QAAQ,CAAC+B,QAAQ,CAAC;QAC3CkB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEC,SAAS,CAAC,CAAC;QACxB,IAAI,CAACC,mBAAmB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAACC,KAAK,EAAErB,QAAQ,EAAEe,QAAQ,CAAC,CAAC;MAC5E,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEOO,cAAcA,CAAChE,KAAkB,EAAC;IACvC,MAAMW,QAAQ,GAAIzB,KAAK,CAAC+E,QAAQ,CAACC,OAAO,CAAC,IAAI,CAAClE,KAAK,CAACmE,QAAQ,CAAC,CAC5DC,MAAM,CAAC,CAACC,IAAS,EAAE3C,KAAa,KAAK2C,IAAI,CAACrE,KAAK,CAACsE,IAAI,IAAI,KAAK,CAAC;IAC/D,MAAMC,UAAU,GAAG5D,QAAQ,CAAC6D,GAAG,CAAC,CAACC,CAAM,EAAEnC,CAAS,MAC/C;MAACoC,KAAK,EAAED,CAAC,CAACzE,KAAK,CAAC0E,KAAK,IAAI,WAAW;MAAEC,IAAI,EAAE,EAAE;MAAEC,GAAG,EAAI,OAAMH,CAAC,CAACzE,KAAK,CAAC0E,KAAM,IAAGpC,CAAE;IAAC,CAAC,CAAC,CAAC;IACvF,oBACEpD,KAAA,CAAA2F,aAAA,CAAC1F,IAAI;MAAC2F,KAAK,EAAE,CAAC,IAAI,CAACC,MAAM,CAACC,IAAI,EAAE;QAAEC,iBAAiB,EAAE;MAAC,CAAC;IAAE,gBACzD/F,KAAA,CAAA2F,aAAA,CAAC1F,IAAI;MAAC+F,QAAQ,EAAE,IAAI,CAAC/D,YAAY,CAACgE,IAAI,CAAC,IAAI,CAAE;MAACL,KAAK,EAAE;QAACrE,KAAK,EAAE;MAAM;IAAE,CAAO,CAAC,eAC7EvB,KAAA,CAAA2F,aAAA,CAACnF,WAAW;MACVqF,MAAM,EAAE,IAAI,CAACA,MAAM,CAACK,SAAU;MAC9BC,IAAI,EAAEd,UAAW;MACjBe,YAAY,EAAE,IAAI,CAACtF,KAAK,CAACsF,YAAa;MACtChF,gBAAgB,EAAE,IAAI,CAACD,KAAK,CAACC;IAAiB,CAClC,CAAC,eACfpB,KAAA,CAAA2F,aAAA,CAAC1F;IACC;IAAA;MACA2F,KAAK,EAAE;QACLrE,KAAK,EAAE,MAAM;QACb;QACA8E,QAAQ,EAAE;MACZ;IAAE,gBACFrG,KAAA,CAAA2F,aAAA,CAAC1F,IAAI;MAAC2F,KAAK,EAAE;QACXU,aAAa,EAAE,KAAK;QACpBC,QAAQ,EAAE;MACZ;IAAE,GACC9E,QAAQ,CAAC6D,GAAG,CAAC,CAACC,CAAM,EAAEnC,CAAC,KAAK;MAC3B,oBACApD,KAAA,CAAA2F,aAAA,CAAC1F,IAAI;QACHyF,GAAG,EAAG,OAAMH,CAAC,CAACzE,KAAK,CAAC0E,KAAM,IAAGpC,CAAE,EAAE;QACjCwC,KAAK,EAAE;UAACrE,KAAK,EAAE,MAAM;UAAEiF,SAAS,EAAE;QAAY,CAAE;QAChDR,QAAQ,EAAE,IAAI,CAACzD,iBAAiB,CAAC0D,IAAI,CAAC,IAAI,EAAE7C,CAAC;MAAE,GAE9CmC,CACG,CAAC;IACT,CAAC,CACG,CACF,CACF,CAAC;EAGT;EAEOkB,gBAAgBA,CAAClD,IAAY,EAAEmD,IAAS,EAAEC,IAAS,EAAQ;IAChE,KAAK,CAACF,gBAAgB,CAAClD,IAAI,EAAEmD,IAAI,EAAEC,IAAI,CAAC;IACxC,QAAOpD,IAAI;MACT,KAAK,kBAAkB;QACrB,MAAMqD,aAAa,GAAGF,IAAI,IAAI,CAAC;QAC/B,MAAM3D,SAAoB,GAAG,EAAE;QAC/BA,SAAS,CAAC6D,aAAa,CAAC,GAAG,IAAI;QAC/B,IAAI,CAAC3D,WAAW,CAAC;UACf7B,gBAAgB,EAAEwF,aAAa;UAC/B7D,SAAS,EAAEA;QACb,CAAgB,CAAC;IACrB;EACF;EAEA8D,YAAYA,CAAC/F,KAAkB,EAAE;IAC/B,MAAMW,QAAQ,GAAIzB,KAAK,CAAC+E,QAAQ,CAACC,OAAO,CAAClE,KAAK,CAACmE,QAAQ,CAAC,CACrDC,MAAM,CAAC,CAACC,IAAS,EAAE3C,KAAa,KAAK2C,IAAI,CAACrE,KAAK,CAACsE,IAAI,IAAI,KAAK,CAAC;IACjE,MAAMC,UAAU,GAAG5D,QAAQ,CAAC6D,GAAG,CAAC,CAACC,CAAM,EAAEnC,CAAS,MAC/C;MAACoC,KAAK,EAAED,CAAC,CAACzE,KAAK,CAAC0E,KAAK,IAAI,WAAW;MAAEC,IAAI,EAAE,EAAE;MAAEC,GAAG,EAAI,OAAMH,CAAC,CAACzE,KAAK,CAAC0E,KAAM,IAAGpC,CAAE;IAAC,CAAC,CAAC,CAAC;IACvF,oBACEpD,KAAA,CAAA2F,aAAA,CAAC1F,IAAI;MAAC2F,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;IAAK,GAC3B,IAAI,CAACgB,WAAW,eACjB9G,KAAA,CAAA2F,aAAA,CAAC1F,IAAI;MAAC+F,QAAQ,EAAE,IAAI,CAAC/D,YAAY,CAACgE,IAAI,CAAC,IAAI,CAAE;MAACL,KAAK,EAAE;QAACrE,KAAK,EAAE;MAAM;IAAE,CAAO,CAAC,eAC7EvB,KAAA,CAAA2F,aAAA,CAACnF,WAAW;MACVuG,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,SAAS,CAAE;MAC9BnB,MAAM,EAAE,IAAI,CAACA,MAAM,CAACK,SAAU;MAC9BC,IAAI,EAAEd,UAAW;MACjBjE,gBAAgB,EAAE,IAAI,CAACD,KAAK,CAACC,gBAAiB;MAC9C6F,aAAa,EAAE,IAAI,CAAC3E,OAAO,CAAC2D,IAAI,CAAC,IAAI;IAAE,CAC3B,CAAC,eACfjG,KAAA,CAAA2F,aAAA,CAAC1F,IAAI;MACH2F,KAAK,EAAE,CAAC;QACNrE,KAAK,EAAE,MAAM;QACb2F,IAAI,EAAE;MACR,CAAC,EAAE,IAAI,CAACrB,MAAM,CAACC,IAAI,CAACnD,MAAM,GACzBtC,gBAAgB,CAAC,CAAC,GAAG;QAAC,YAAY,EAAE,QAAQ;QAAC,YAAY,EAAE;MAAM,CAAC,GAAU;QAACgG,QAAQ,EAAE;MAAQ,CAAC,GAC/F;QACAA,QAAQ,EAAE,QAAQ;QAClBc,SAAS,EAAE,IAAI,CAACzE,cAAc,CAAC,IAAI,CAACvB,KAAK,CAACC,gBAAgB;MAC5D,CAAC,EAAE,IAAI,CAACyE,MAAM,CAACuB,UAAU;IAAE,gBAC3BpH,KAAA,CAAA2F,aAAA,CAACvF,cAAc,CAACH,IAAI;MAClBoH,cAAc,EAAEvG,KAAK,CAACwG,cAAe;MACrC1B,KAAK,EAAE;QACLU,aAAa,EAAE,KAAK;QACpBC,QAAQ,EAAE,QAAQ;QAClBgB,UAAU,EAAE;MACd,CAAE;MACFC,SAAS,EAAC,YAAY;MACtBC,GAAG,EAAGC,CAAC,IAAK;QAAC,IAAI,CAAC3D,aAAa,GAAG2D,CAAC;MAAA,CAAE;MACrCC,QAAQ,EAAI,IAAI,CAACC;IAAkB,GAElCnG,QAAQ,CAAC6D,GAAG,CAAC,CAACC,CAAM,EAAEnC,CAAC,KAAK;MAC3B,oBACApD,KAAA,CAAA2F,aAAA,CAAC1F,IAAI;QACHyF,GAAG,EAAG,OAAMH,CAAC,CAACzE,KAAK,CAAC0E,KAAM,IAAGpC,CAAE,EAAE;QACjCwC,KAAK,EAAE;UACLrE,KAAK,EAAE,MAAM;UACboB,MAAM,EAAE,IAAI,CAACkD,MAAM,CAACC,IAAI,CAACnD,MAAM,GAAIkB,SAAS,GAAG,OAAO;UACtD2C,SAAS,EAAE;QAAY;MAAE,gBAC3BxG,KAAA,CAAA2F,aAAA,CAAC1F,IAAI;QACH2F,KAAK,EAAE;UAACrE,KAAK,EAAE,MAAM;UAAEiF,SAAS,EAAE;QAAY,CAAE;QAChDR,QAAQ,EAAE,IAAI,CAACzD,iBAAiB,CAAC0D,IAAI,CAAC,IAAI,EAAE7C,CAAC;MAAE,GAE9CmC,CACG,CACF,CAAC;IACT,CAAC,CACkB,CACjB,CACF,CAAC;EAEX;AACF"}
1
+ {"version":3,"names":["React","View","BaseComponent","BaseComponentState","SwipeAnimation","isWebPreviewMode","WmTabsProps","DEFAULT_CLASS","WmTabheader","WmTabsState","constructor","arguments","_defineProperty","WmTabs","props","bounds","e","_this$tabLayout","activeTabIndex","state","selectedTabIndex","w","tabLayout","width","noOfTabs","tabPanes","length","lower","center","upper","onLower","onChange","onUpper","setTabLayout","event","nativeEvent","layout","forceUpdate","goToTab","setTabPaneHeights","index","_nativeEvent$nativeEv","tabPaneHeights","height","setTabShown","tabIndex","callback","tabsShown","setTimeout","updateState","addTabPane","tabPane","i","findIndex","t","name","newIndex","selectTabPane","indexOf","selectedTabPane","_this$tabLayout2","_this$animationView","undefined","position","animationView","setPosition","then","prev","_this$animationView2","goToLower","next","_this$animationView3","oldIndex","deselectedTab","_onDeselect","selectedTab","_onSelect","invokeEventCallback","proxy","renderSkeleton","Children","toArray","children","filter","item","show","headerData","map","p","title","icon","key","createElement","style","styles","root","borderBottomWidth","onLayout","bind","tabHeader","data","showskeleton","overflow","flexDirection","flexWrap","alignSelf","onPropertyChange","$new","$old","selectedIndex","renderWidget","_background","id","getTestId","onIndexChange","flex","maxHeight","tabContent","enableGestures","enablegestures","alignItems","direction","ref","r","handlers","animationHandlers"],"sources":["tabs.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, LayoutRectangle, View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport * as SwipeAnimation from '@wavemaker/app-rn-runtime/gestures/swipe.animation';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\n\nimport WmTabsProps from './tabs.props';\nimport { DEFAULT_CLASS, WmTabsStyles } from './tabs.styles';\nimport WmTabpane from './tabpane/tabpane.component';\nimport WmTabheader from './tabheader/tabheader.component';\n\nexport class WmTabsState extends BaseComponentState<WmTabsProps> {\n tabsShown: boolean[] = [];\n selectedTabIndex: number = 0;\n}\n\nexport default class WmTabs extends BaseComponent<WmTabsProps, WmTabsState, WmTabsStyles> {\n public tabPanes = [] as WmTabpane[];\n private newIndex = 0;\n private tabLayout: LayoutRectangle = null as any;\n private tabPaneHeights: number[] = [];\n private animationView: SwipeAnimation.View | null = null as any;\n private animationHandlers = {\n bounds: (e) => {\n const activeTabIndex = this.state.selectedTabIndex,\n w = this.tabLayout?.width || 0,\n noOfTabs = this.tabPanes.length;\n return {\n lower: -1 * (activeTabIndex - (activeTabIndex === 0 ? 0 : 1)) * w,\n center: -1 * activeTabIndex * w,\n upper: -1 * (activeTabIndex + (activeTabIndex === noOfTabs - 1 ? 0 : 1)) * w\n };\n },\n onLower: (e) => {\n this.onChange(this.state.selectedTabIndex - 1);\n },\n onUpper: (e) => {\n this.onChange(this.state.selectedTabIndex + 1);\n }\n } as SwipeAnimation.Handlers;\n\n constructor(props: WmTabsProps) {\n super(props, DEFAULT_CLASS, new WmTabsProps(), new WmTabsState());\n }\n \n setTabLayout(event: LayoutChangeEvent) {\n this.tabLayout = event.nativeEvent.layout;\n this.forceUpdate(() => {\n this.goToTab();\n });\n }\n\n setTabPaneHeights(index: number, nativeEvent: LayoutChangeEvent) {\n this.tabPaneHeights[index] = nativeEvent.nativeEvent.layout?.height;\n if (index === this.state.selectedTabIndex) {\n this.forceUpdate();\n }\n }\n\n setTabShown(tabIndex: number, callback: () => any) {\n if (!this.state.tabsShown[tabIndex]) {\n const tabsShown = [...this.state.tabsShown];\n tabsShown[tabIndex] = true;\n setTimeout(() => {\n this.updateState({\n tabsShown: tabsShown\n } as WmTabsState, callback);\n }, 300);\n } else {\n callback && callback();\n }\n }\n\n addTabPane(tabPane: WmTabpane) {\n const i = this.tabPanes.findIndex(t => t.props.name === tabPane.props.name);\n if (i >= 0) {\n this.tabPanes[i] = tabPane;\n } else {\n this.tabPanes[this.newIndex++] = tabPane;\n }\n }\n\n selectTabPane(tabPane: WmTabpane) {\n this.goToTab(this.tabPanes.indexOf(tabPane));\n }\n\n get selectedTabPane() {\n return this.tabPanes[this.state.selectedTabIndex];\n }\n\n goToTab(index = this.state.selectedTabIndex) {\n const position = -1 * index * (this.tabLayout?.width || 0);\n this.animationView?.setPosition(position)\n .then(() => this.onChange(index));\n }\n\n prev() {\n this.animationView?.goToLower();\n }\n\n next() {\n this.animationView?.goToLower();\n }\n\n onChange(newIndex: number) {\n if (newIndex < 0 || newIndex >= this.tabPanes.length) {\n return;\n }\n const oldIndex = this.state.selectedTabIndex;\n const deselectedTab = this.tabPanes[this.state.selectedTabIndex];\n this.newIndex = newIndex;\n deselectedTab?._onDeselect();\n this.updateState({\n selectedTabIndex: newIndex\n } as WmTabsState, () => {\n this.setTabShown(newIndex, () => {\n const selectedTab = this.tabPanes[newIndex];\n selectedTab?._onSelect();\n this.invokeEventCallback('onChange', [{}, this.proxy, newIndex, oldIndex]);\n });\n });\n }\n\n public renderSkeleton(props: WmTabsProps){\n const tabPanes = React.Children.toArray(this.props.children)\n .filter((item: any, index: number) => item.props.show != false);\n const headerData = tabPanes.map((p: any, i: number) => \n ({title: p.props.title || 'Tab Title', icon: '', key: `tab-${p.props.title}-${i}`}));\n return(\n <View style={[this.styles.root, { borderBottomWidth: 0}]}>\n <View onLayout={this.setTabLayout.bind(this)} style={{width: '100%'}}></View>\n <WmTabheader\n styles={this.styles.tabHeader}\n data={headerData}\n showskeleton={this.props.showskeleton}\n selectedTabIndex={this.state.selectedTabIndex}\n ></WmTabheader>\n <View \n //{...this.panResponder.panHandlers}\n style={{\n width: '100%',\n //height: this.tabPaneHeights[this.state.selectedTabIndex],\n overflow: 'hidden'\n }} >\n <View style={{\n flexDirection: 'row',\n flexWrap: 'nowrap'\n }}>\n {tabPanes.map((p: any, i) => {\n return (\n <View\n key={`tab-${p.props.title}-${i}`}\n style={{width: '100%', alignSelf: 'flex-start'}}\n onLayout={this.setTabPaneHeights.bind(this, i)}>\n {/* {this.state.tabsShown[i] ? p : null} */}\n {p}\n </View>);\n })}\n </View>\n </View>\n </View>\n\n )\n }\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case \"defaultpaneindex\":\n const selectedIndex = $new || 0;\n const tabsShown: boolean[] = [];\n tabsShown[selectedIndex] = true;\n this.updateState({\n selectedTabIndex: selectedIndex,\n tabsShown: tabsShown\n } as WmTabsState);\n }\n }\n \n renderWidget(props: WmTabsProps) {\n const tabPanes = React.Children.toArray(props.children)\n .filter((item: any, index: number) => item.props.show != false);\n const headerData = tabPanes.map((p: any, i: number) => \n ({title: p.props.title || 'Tab Title', icon: '', key: `tab-${p.props.title}-${i}`}));\n return (\n <View style={this.styles.root}>\n {this._background}\n <View onLayout={this.setTabLayout.bind(this)} style={{width: '100%'}}></View>\n <WmTabheader\n id={this.getTestId('headers')}\n styles={this.styles.tabHeader}\n data={headerData}\n selectedTabIndex={this.state.selectedTabIndex}\n onIndexChange={this.goToTab.bind(this)}\n ></WmTabheader>\n <View\n style={[{\n width: '100%',\n flex: 1\n }, this.styles.root.height ? \n (isWebPreviewMode() ? {'overflow-x': 'hidden','overflow-y': 'auto'} as any : {overflow: 'scroll'}) \n : {\n overflow: 'hidden',\n maxHeight: this.tabPaneHeights[this.state.selectedTabIndex],\n }, this.styles.tabContent]} >\n <SwipeAnimation.View \n enableGestures={props.enablegestures}\n style={{\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start'\n }}\n direction='horizontal'\n ref={(r) => {this.animationView = r}}\n handlers = {this.animationHandlers}\n >\n {tabPanes.map((p: any, i) => {\n return (\n <View \n key={`tab-${p.props.title}-${i}`}\n style={{\n width: '100%',\n height: this.styles.root.height ? undefined : 1000000,\n alignSelf: 'flex-start'}}>\n <View\n style={{width: '100%', alignSelf: 'flex-start'}}\n onLayout={this.setTabPaneHeights.bind(this, i)}>\n {/* {this.state.tabsShown[i] ? p : null} */}\n {p}\n </View>\n </View>);\n })}\n </SwipeAnimation.View>\n </View>\n </View>\n );\n }\n}\n"],"mappings":"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"}
@@ -25,6 +25,7 @@ export default class WmFormAction extends BaseComponent {
25
25
  styles: this.styles,
26
26
  name: props.name,
27
27
  iconclass: props.iconclass,
28
+ iconposition: props.iconposition,
28
29
  onTap: $event => {
29
30
  this._debouncedFormAction($event, props.formAction);
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","BaseComponent","BaseComponentState","WmButton","WmFormActionProps","DEFAULT_CLASS","debounce","WmFormActionState","WmFormAction","constructor","props","_defineProperty","onClick","$event","cb","renderWidget","createElement","id","getTestId","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 id={this.getTestId()}\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,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,CAAE;MACrBC,IAAI,EAAET,KAAK,CAACS,IAAK;MACjBC,QAAQ,EAAEV,KAAK,CAACU,QAAS;MACzBC,OAAO,EAAEX,KAAK,CAACY,WAAY;MAC3BC,MAAM,EAAE,IAAI,CAACA,MAAO;MACpBC,IAAI,EAAEd,KAAK,CAACc,IAAK;MACjBC,SAAS,EAAEf,KAAK,CAACe,SAAU;MAC3BC,KAAK,EAAGb,MAAW,IAAK;QACtB,IAAI,CAACc,oBAAoB,CAACd,MAAM,EAAEH,KAAK,CAACkB,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","id","getTestId","show","disabled","caption","displayName","styles","name","iconclass","iconposition","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 id={this.getTestId()}\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 iconposition={props.iconposition}\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,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,CAAE;MACrBC,IAAI,EAAET,KAAK,CAACS,IAAK;MACjBC,QAAQ,EAAEV,KAAK,CAACU,QAAS;MACzBC,OAAO,EAAEX,KAAK,CAACY,WAAY;MAC3BC,MAAM,EAAE,IAAI,CAACA,MAAO;MACpBC,IAAI,EAAEd,KAAK,CAACc,IAAK;MACjBC,SAAS,EAAEf,KAAK,CAACe,SAAU;MAC3BC,YAAY,EAAEhB,KAAK,CAACgB,YAAa;MACjCC,KAAK,EAAGd,MAAW,IAAK;QACtB,IAAI,CAACe,oBAAoB,CAACf,MAAM,EAAEH,KAAK,CAACmB,UAAU,CAAC;MACrD;IAAE,CACH,CAAC;EAEN;AACF"}
@@ -12,6 +12,7 @@ export default class WmFormActionProps extends BaseProps {
12
12
  _defineProperty(this, "iconclass", void 0);
13
13
  _defineProperty(this, "updateMode", true);
14
14
  _defineProperty(this, "formAction", null);
15
+ _defineProperty(this, "iconposition", 'left');
15
16
  }
16
17
  }
17
18
  //# sourceMappingURL=form-action.props.js.map
@@ -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 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"}
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 iconposition? = 'left';\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;IAAAA,eAAA,uBACX,MAAM;EAAA;AACxB"}
@@ -24,6 +24,15 @@ export default class WmFormField extends BaseComponent {
24
24
  _defineProperty(this, "defaultValidatorMessages", []);
25
25
  _defineProperty(this, "notifyForFields", []);
26
26
  _defineProperty(this, "_asyncValidatorFn", void 0);
27
+ if (!this.form) {
28
+ this.form = props.formScope && props.formScope();
29
+ }
30
+ }
31
+ componentDidMount() {
32
+ var _this$form, _this$form2, _this$form3;
33
+ super.componentDidMount();
34
+ this.formwidget = this.props.formKey && ((_this$form = this.form) === null || _this$form === void 0 ? void 0 : _this$form.formWidgets[this.props.formKey]) || this.props.name && ((_this$form2 = this.form) === null || _this$form2 === void 0 ? void 0 : _this$form2.formWidgets[this.props.name]);
35
+ (_this$form3 = this.form) === null || _this$form3 === void 0 ? void 0 : _this$form3.registerFormFields(this.form.formFields, this.form.formWidgets);
27
36
  }
28
37
  onFieldChangeEvt(name, $new, $old, isDefault) {
29
38
  this.notifyChanges();
@@ -215,6 +224,8 @@ export default class WmFormField extends BaseComponent {
215
224
  datavalue: props.datavalue,
216
225
  value: this.value,
217
226
  isValid: this.state.isValid,
227
+ maskchar: props.maskchar,
228
+ displayformat: props.displayformat,
218
229
  invokeEvent: this.invokeEventCallback.bind(this),
219
230
  triggerValidation: this.validateFormField.bind(this),
220
231
  onFieldChange: this.onFieldChangeEvt.bind(this),
@@ -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","updateState","datavalue","invokeEventCallback","undefined","validateFormField","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","_this$formwidget","readonly","_this$formwidget2","_this$_syncValidators","_this$formwidget3","errorType","errormsg","errorMessage","renderWidget","childrenWithProps","Children","map","renderFormFields","children","child","cloneElement","invokeEvent","triggerValidation","onFieldChange","formRef","createElement","style","styles","root","_background","_extends","getTestPropsForLabel","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 if (!isEqual($old, $new)) {\n this.updateState({ props: { datavalue: $new }} as WmFormFieldState, () => {\n !isDefault && this.invokeEventCallback('onChange', [undefined, this, $new, $old]);\n this.validateFormField();\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 get value(){\n return this.state.props.datavalue;\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 value: this.value,\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 {...this.getTestPropsForLabel('error_msg')} 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","form","formScope","componentDidMount","_this$form","_this$form2","_this$form3","formwidget","formKey","formWidgets","name","registerFormFields","formFields","onFieldChangeEvt","$new","$old","isDefault","notifyChanges","updateState","datavalue","invokeEventCallback","undefined","validateFormField","updateDataOutput","call","observeOn","fields","field","formfield","f","proxy","notifyForFields","push","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","_this$formwidget","readonly","_this$formwidget2","_this$_syncValidators","_this$formwidget3","errorType","errormsg","errorMessage","renderWidget","childrenWithProps","Children","map","renderFormFields","children","child","cloneElement","maskchar","displayformat","invokeEvent","triggerValidation","onFieldChange","formRef","createElement","style","styles","root","_background","_extends","getTestPropsForLabel","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 if (!this.form) {\n this.form = props.formScope && props.formScope();\n }\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.formwidget = (this.props.formKey && this.form?.formWidgets[this.props.formKey])\n || (this.props.name && this.form?.formWidgets[this.props.name]);\n this.form?.registerFormFields(this.form.formFields, this.form.formWidgets);\n }\n\n onFieldChangeEvt(name: string, $new: any, $old: any, isDefault: boolean) {\n this.notifyChanges();\n if (!isEqual($old, $new)) {\n this.updateState({ props: { datavalue: $new }} as WmFormFieldState, () => {\n !isDefault && this.invokeEventCallback('onChange', [undefined, this, $new, $old]);\n this.validateFormField();\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 get value(){\n return this.state.props.datavalue;\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 value: this.value,\n isValid: this.state.isValid,\n maskchar: props.maskchar,\n displayformat: props.displayformat,\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 {...this.getTestPropsForLabel('error_msg')} style={this.styles.errorMsg}>{props.validationmessage}</Text>}\n </View>\n );\n }\n}\n"],"mappings":"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"}
@@ -25,6 +25,9 @@ export default class WmFormFieldProps extends BaseProps {
25
25
  _defineProperty(this, "isDataSetBound", false);
26
26
  _defineProperty(this, "readonly", false);
27
27
  _defineProperty(this, "onValidate", void 0);
28
+ _defineProperty(this, "formScope", () => {});
29
+ _defineProperty(this, "maskchar", null);
30
+ _defineProperty(this, "displayformat", null);
28
31
  }
29
32
  }
30
33
  //# sourceMappingURL=form-field.props.js.map
@@ -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 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"}
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 formScope?: Function = () => {};\n maskchar: string = null as any;\n displayformat: string = null as any;\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;IAAAA,eAAA,oBAEF,MAAM,CAAC,CAAC;IAAAA,eAAA,mBACZ,IAAI;IAAAA,eAAA,wBACC,IAAI;EAAA;AAC9B"}
@@ -5,7 +5,7 @@ import React from 'react';
5
5
  import { View } from 'react-native';
6
6
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
7
7
  import { isDefined } from '@wavemaker/app-rn-runtime/core/utils';
8
- import { debounce, find, forEach, isNil, get, set, cloneDeep } from 'lodash';
8
+ import { debounce, find, forEach, isNil, get, set, cloneDeep, isEmpty } from 'lodash';
9
9
  import WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';
10
10
  import WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';
11
11
  import WmMessage from '@wavemaker/app-rn-runtime/components/basic/message/message.component';
@@ -21,6 +21,7 @@ export class WmFormState extends BaseComponentState {
21
21
  _defineProperty(this, "message", '');
22
22
  _defineProperty(this, "showInlineMsg", false);
23
23
  _defineProperty(this, "isUpdateMode", true);
24
+ _defineProperty(this, "dynamicForm", void 0);
24
25
  }
25
26
  }
26
27
  export default class WmForm extends BaseComponent {
@@ -87,7 +88,7 @@ export default class WmForm extends BaseComponent {
87
88
  });
88
89
  this.formFields = formFields;
89
90
  this.formWidgets = formWidgets;
90
- formFields.forEach(f => {
91
+ formFields === null || formFields === void 0 ? void 0 : formFields.forEach(f => {
91
92
  if (f.props.name) {
92
93
  set(this.formfields, f.props.name, f);
93
94
  }
@@ -99,7 +100,7 @@ export default class WmForm extends BaseComponent {
99
100
  // setting default form dataoutput.
100
101
  if (!this.formdataoutput) {
101
102
  this.formdataoutput = {};
102
- formFields.forEach(w => {
103
+ formFields === null || formFields === void 0 ? void 0 : formFields.forEach(w => {
103
104
  const name = get(w.props, 'formKey') || w.props.name;
104
105
  if (name) {
105
106
  set(this.formdataoutput, name, w.props.datavalue);
@@ -233,6 +234,24 @@ export default class WmForm extends BaseComponent {
233
234
  submit() {
234
235
  this._debouncedSubmitForm();
235
236
  }
237
+
238
+ // Function to generate and compile the form fields from the metadata
239
+ generateFormFields() {
240
+ let userFields;
241
+ let fields = this.state.props.metadata ? this.state.props.metadata.data || this.state.props.metadata : [];
242
+ if (isEmpty(fields)) {
243
+ return;
244
+ }
245
+ if (this.props.onBeforerender) {
246
+ userFields = this.invokeEventCallback('onBeforerender', [fields, this.proxy]);
247
+ if (userFields) {
248
+ fields = userFields;
249
+ }
250
+ }
251
+ this.updateState({
252
+ dynamicForm: this.props.generateComponent(fields, this.props.name)
253
+ });
254
+ }
236
255
  onPropertyChange(name, $new, $old) {
237
256
  var _this$formFields2;
238
257
  switch (name) {
@@ -251,6 +270,9 @@ export default class WmForm extends BaseComponent {
251
270
  this._updateFieldOnDataSourceChange(w, this.formFields);
252
271
  });
253
272
  break;
273
+ case 'metadata':
274
+ this.generateFormFields();
275
+ break;
254
276
  }
255
277
  }
256
278
  setPrimaryKey(fieldName) {
@@ -395,7 +417,7 @@ export default class WmForm extends BaseComponent {
395
417
  caption: this.state.message,
396
418
  hideclose: false,
397
419
  onClose: this.onMsgClose.bind(this)
398
- }) : null, props.children);
420
+ }) : null, props.metadata && this.state.dynamicForm, props.children);
399
421
  });
400
422
  }
401
423
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","BaseComponent","BaseComponentState","isDefined","debounce","find","forEach","isNil","get","set","cloneDeep","WmLabel","WmIcon","WmMessage","ToastConsumer","WmFormProps","DEFAULT_CLASS","isDataSetWidget","WmFormState","constructor","arguments","_defineProperty","WmForm","props","handleSubmit","componentDidMount","getParentFormRef","parentForm","pformName","current","parent","parentFormRef","setReadonlyFields","_this$formFields","formFields","field","setReadOnlyState","state","isUpdateMode","setReadonlyState","updateMode","updateState","setTimeout","showActions","edit","new","cancel","delete","registerFormFields","formWidgets","w","form","formwidget","formKey","name","f","formfields","applyFormData","applyDefaultValue","formdataoutput","datavalue","dataoutput","_this$buttonArray","buttonArray","action","show","registerFormActions","formActions","_updateFieldOnDataSourceChange","isDataSetBound","widget","isRelated","relatedData","_this$parentFormRef","formData","formdata","formField","_formField$props","fw","key","setState","isDefault","updateFormFieldDefaultValue","dv","defaultvalue","_formField$props2","invokeEventCallback","bind","undefined","formreset","ff","defaultValue","id","_widget","isValid","reset","submit","_debouncedSubmitForm","onPropertyChange","$new","$old","_this$formFields2","setPrimaryKey","fieldName","primaryKey","indexOf","push","validateFieldsOnSubmit","val","onValidate","required","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","duration","onMsgClose","renderWidget","createElement","toastService","style","root","_background","iconclass","title","subheading","heading","flex","flexDirection","getTestId","listIcon","caption","hideclose","onClose","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, isNil, get, set, cloneDeep } 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';\nimport WmFormAction, {\n WmFormActionState\n} from '@wavemaker/app-rn-runtime/components/data/form/form-action/form-action.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 isUpdateMode: boolean = true;\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 public formActions: Array<WmFormAction> = [];\n primaryKey = [];\n buttonArray: Array<WmFormAction> = [];\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(), new WmFormState());\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 setReadonlyFields() {\n this.formFields?.forEach((field: any) => {\n field.setReadOnlyState(this.state.isUpdateMode);\n });\n }\n\n setReadonlyState(updateMode: any) {\n this.updateState({\n isUpdateMode: updateMode,\n } as WmFormState);\n setTimeout(() => {\n this.showActions();\n this.setReadonlyFields();\n }, 100);\n }\n\n edit() {\n this.setReadonlyState(true);\n }\n\n new() {\n this.setReadonlyState(true);\n }\n\n cancel() {\n this.setReadonlyState(false);\n }\n\n delete() { }\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.setReadonlyFields();\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 showActions () {\n this.buttonArray?.forEach((action: any) => {\n action.updateState({\n props: {\n show: action.updateMode === this.state.isUpdateMode\n }} as WmFormActionState);\n });\n }\n\n registerFormActions(formActions: Array<WmFormAction>) {\n this.buttonArray = formActions;\n this.showActions();\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 this.formdataoutput = {};\n forEach(this.formFields, (ff: WmFormField) => {\n const defaultValue = isNil(ff.state.props.defaultvalue) ? '' : ff.state.props.defaultvalue;\n ff.updateState({\n props : {\n datavalue: defaultValue\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: defaultValue\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 'defaultmode':\n this.updateState({\n isUpdateMode: $new && $new === 'Edit' ? true : false,\n } as WmFormState);\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) {\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 = cloneDeep(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 duration: 5000\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 id={this.getTestId('icon')} styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel id={this.getTestId('title')} styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel id={this.getTestId('description')} 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","isNil","get","set","cloneDeep","isEmpty","WmLabel","WmIcon","WmMessage","ToastConsumer","WmFormProps","DEFAULT_CLASS","isDataSetWidget","WmFormState","constructor","arguments","_defineProperty","WmForm","props","handleSubmit","componentDidMount","getParentFormRef","parentForm","pformName","current","parent","parentFormRef","setReadonlyFields","_this$formFields","formFields","field","setReadOnlyState","state","isUpdateMode","setReadonlyState","updateMode","updateState","setTimeout","showActions","edit","new","cancel","delete","registerFormFields","formWidgets","w","form","formwidget","formKey","name","f","formfields","applyFormData","applyDefaultValue","formdataoutput","datavalue","dataoutput","_this$buttonArray","buttonArray","action","show","registerFormActions","formActions","_updateFieldOnDataSourceChange","isDataSetBound","widget","isRelated","relatedData","_this$parentFormRef","formData","formdata","formField","_formField$props","fw","key","setState","isDefault","updateFormFieldDefaultValue","dv","defaultvalue","_formField$props2","invokeEventCallback","bind","undefined","formreset","ff","defaultValue","id","_widget","isValid","reset","submit","_debouncedSubmitForm","generateFormFields","userFields","fields","metadata","data","onBeforerender","proxy","dynamicForm","generateComponent","onPropertyChange","$new","$old","_this$formFields2","setPrimaryKey","fieldName","primaryKey","indexOf","push","validateFieldsOnSubmit","val","onValidate","required","msg","defaultValidatorMessages","validationmessage","validate","event","preventDefault","onBeforesubmit","formSubmit","onResultCb","error","response","status","onSuccess","postmessage","toggleMessage","onError","errormessage","updateDataOutput","Object","assign","type","message","messagelayout","showInlineMsg","toaster","showToast","placement","styles","bottom","text","hideOnClick","duration","onMsgClose","renderWidget","createElement","toastService","style","root","_background","iconclass","title","subheading","heading","flex","flexDirection","getTestId","listIcon","caption","hideclose","onClose","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, isNil, get, set, cloneDeep, isEmpty } 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';\nimport WmFormAction, {\n WmFormActionState\n} from '@wavemaker/app-rn-runtime/components/data/form/form-action/form-action.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 isUpdateMode: boolean = true;\n dynamicForm: any;\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 public formActions: Array<WmFormAction> = [];\n primaryKey = [];\n buttonArray: Array<WmFormAction> = [];\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(), new WmFormState());\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 setReadonlyFields() {\n this.formFields?.forEach((field: any) => {\n field.setReadOnlyState(this.state.isUpdateMode);\n });\n }\n\n setReadonlyState(updateMode: any) {\n this.updateState({\n isUpdateMode: updateMode,\n } as WmFormState);\n setTimeout(() => {\n this.showActions();\n this.setReadonlyFields();\n }, 100);\n }\n\n edit() {\n this.setReadonlyState(true);\n }\n\n new() {\n this.setReadonlyState(true);\n }\n\n cancel() {\n this.setReadonlyState(false);\n }\n\n delete() { }\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.setReadonlyFields();\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 showActions () {\n this.buttonArray?.forEach((action: any) => {\n action.updateState({\n props: {\n show: action.updateMode === this.state.isUpdateMode\n }} as WmFormActionState);\n });\n }\n\n registerFormActions(formActions: Array<WmFormAction>) {\n this.buttonArray = formActions;\n this.showActions();\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 this.formdataoutput = {};\n forEach(this.formFields, (ff: WmFormField) => {\n const defaultValue = isNil(ff.state.props.defaultvalue) ? '' : ff.state.props.defaultvalue;\n ff.updateState({\n props : {\n datavalue: defaultValue\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: defaultValue\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 // Function to generate and compile the form fields from the metadata\n generateFormFields() {\n let userFields;\n let fields = this.state.props.metadata ? this.state.props.metadata.data || this.state.props.metadata : [];\n\n if (isEmpty(fields)) {\n return;\n }\n\n if (this.props.onBeforerender) {\n userFields = this.invokeEventCallback('onBeforerender', [fields, this.proxy]);\n if (userFields) {\n fields = userFields;\n }\n }\n\n this.updateState({\n dynamicForm: this.props.generateComponent(fields, this.props.name)\n } as WmFormState);\n\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 'defaultmode':\n this.updateState({\n isUpdateMode: $new && $new === 'Edit' ? true : false,\n } as WmFormState);\n break;\n case 'dataset':\n this.formFields?.forEach((w: WmFormField) => {\n this._updateFieldOnDataSourceChange(w, this.formFields);\n });\n break;\n case 'metadata':\n this.generateFormFields();\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) {\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 = cloneDeep(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 duration: 5000\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 id={this.getTestId('icon')} styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel id={this.getTestId('title')} styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel id={this.getTestId('description')} 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.metadata && this.state.dynamicForm }\n { props.children}\n </View>\n }\n }\n </ToastConsumer>\n );\n }\n}\n"],"mappings":"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"}
@@ -10,6 +10,7 @@ export default class WmFormProps extends BaseProps {
10
10
  _defineProperty(this, "onBeforesubmit", void 0);
11
11
  _defineProperty(this, "formdata", void 0);
12
12
  _defineProperty(this, "parentForm", '');
13
+ _defineProperty(this, "metadata", void 0);
13
14
  _defineProperty(this, "title", void 0);
14
15
  _defineProperty(this, "subheading", void 0);
15
16
  _defineProperty(this, "iconclass", void 0);
@@ -21,6 +22,8 @@ export default class WmFormProps extends BaseProps {
21
22
  _defineProperty(this, "relatedData", () => {});
22
23
  _defineProperty(this, "onSuccess", () => {});
23
24
  _defineProperty(this, "onError", () => {});
25
+ _defineProperty(this, "onBeforerender", () => {});
26
+ _defineProperty(this, "generateComponent", metadata => {});
24
27
  }
25
28
  }
26
29
  //# sourceMappingURL=form.props.js.map