@wavemaker/app-rn-runtime 11.4.0-next.25501 → 11.4.0-next.26251

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. app-rn-runtime/actions/notification-action.js +5 -4
  2. app-rn-runtime/actions/notification-action.js.map +1 -1
  3. app-rn-runtime/components/container/tabs/tabpane/tabpane.component.js +4 -1
  4. app-rn-runtime/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
  5. app-rn-runtime/components/container/tabs/tabs.component.js +25 -10
  6. app-rn-runtime/components/container/tabs/tabs.component.js.map +1 -1
  7. app-rn-runtime/components/data/form/form.component.js +1 -1
  8. app-rn-runtime/components/data/form/form.component.js.map +1 -1
  9. app-rn-runtime/components/data/list/list.component.js +16 -4
  10. app-rn-runtime/components/data/list/list.component.js.map +1 -1
  11. app-rn-runtime/components/device/barcodescanner/barcodescanner.component.js +2 -1
  12. app-rn-runtime/components/device/barcodescanner/barcodescanner.component.js.map +1 -1
  13. app-rn-runtime/components/device/camera/camera.component.js +6 -4
  14. app-rn-runtime/components/device/camera/camera.component.js.map +1 -1
  15. app-rn-runtime/components/device/camera/camera.props.js +0 -1
  16. app-rn-runtime/components/device/camera/camera.props.js.map +1 -1
  17. app-rn-runtime/components/input/baseinput/baseinput.component.js +7 -0
  18. app-rn-runtime/components/input/baseinput/baseinput.component.js.map +1 -1
  19. app-rn-runtime/components/page/partial-container/partial-container.styles.js +2 -1
  20. app-rn-runtime/components/page/partial-container/partial-container.styles.js.map +1 -1
  21. app-rn-runtime/core/injector.js +15 -1
  22. app-rn-runtime/core/injector.js.map +1 -1
  23. app-rn-runtime/core/tappable.component.js +9 -2
  24. app-rn-runtime/core/tappable.component.js.map +1 -1
  25. app-rn-runtime/core/utils.js +6 -0
  26. app-rn-runtime/core/utils.js.map +1 -1
  27. app-rn-runtime/package.json +5 -5
  28. app-rn-runtime/runtime/App.js +13 -14
  29. app-rn-runtime/runtime/App.js.map +1 -1
  30. app-rn-runtime/runtime/App.navigator.js +2 -12
  31. app-rn-runtime/runtime/App.navigator.js.map +1 -1
  32. app-rn-runtime/runtime/services/device/camera-service.js +28 -6
  33. app-rn-runtime/runtime/services/device/camera-service.js.map +1 -1
  34. app-rn-runtime/runtime/services/device/scan-service.js +15 -14
  35. app-rn-runtime/runtime/services/device/scan-service.js.map +1 -1
  36. app-rn-runtime/variables/device/camera/capture-image.operation.js.map +1 -1
  37. app-rn-runtime/variables/device/camera/capture-video.operation.js.map +1 -1
  38. app-rn-runtime/variables/device/file/upload-file.operation.js +43 -21
  39. app-rn-runtime/variables/device/file/upload-file.operation.js.map +1 -1
  40. app-rn-runtime/variables/service-variable.js +12 -7
  41. app-rn-runtime/variables/service-variable.js.map +1 -1
@@ -16,9 +16,11 @@ export class NotificationAction extends BaseAction {
16
16
  const o = {};
17
17
  o.text = options.message || params.text;
18
18
  o.type = ((_options$class = options.class) === null || _options$class === void 0 ? void 0 : _options$class.toLowerCase()) || ((_params$class = params.class) === null || _params$class === void 0 ? void 0 : _params$class.toLowerCase());
19
- o.onClose = this.config.onClose;
20
- o.onClick = this.config.onOk;
21
- o.content = this.config.partialContent;
19
+ o.onClose = () => {
20
+ this.config.onClose && this.config.onClose(this);
21
+ }, o.onClick = () => {
22
+ this.config.onOk && this.config.onOk(this);
23
+ }, o.content = this.config.partialContent;
22
24
  o.hideOnClick = options.hideOnClick || true;
23
25
  const toasterPosition = options.position || params.toasterPosition || 'bottom right';
24
26
  const placement = toasterPosition.split(' ')[0];
@@ -43,7 +45,6 @@ export class NotificationAction extends BaseAction {
43
45
  if (!o.styles) {
44
46
  o.styles = {};
45
47
  }
46
- o.styles.backgroundColor = 'black';
47
48
  }
48
49
  if (!params.duration) {
49
50
  params.duration = params.duration !== 0 && o.type === 'success' ? DEFAULT_DURATION : 0;
@@ -1 +1 @@
1
- {"version":3,"names":["BaseAction","DEFAULT_DURATION","NotificationAction","constructor","config","showDialog","prepareToastOptions","options","params","paramProvider","o","text","message","type","class","toLowerCase","onClose","onClick","onOk","content","partialContent","hideOnClick","toasterPosition","position","placement","split","styles","top","bottom","backgroundColor","duration","parseInt","name","getMessage","invoke","success","error","operation","toasterService","showToast","onCancel"],"sources":["notification-action.ts"],"sourcesContent":["import { ActionConfig, BaseAction } from \"./base-action\";\nimport { ToastOptions, ToastService } from '@wavemaker/app-rn-runtime/core/toast.service';\nimport React from 'react';\nexport interface NotificationActionConfig extends ActionConfig {\n showDialog: Function;\n onOk: any;\n onCancel: any;\n onClose: any;\n operation: string;\n partialContent: React.ReactNode;\n toasterService: () => ToastService;\n}\nconst DEFAULT_DURATION = 3000;\nexport class NotificationAction extends BaseAction<NotificationActionConfig> {\n showDialog: Function;\n constructor(config: NotificationActionConfig) {\n super(config);\n this.showDialog = config.showDialog;\n }\n\n prepareToastOptions(options: any = {}) {\n const params = this.config.paramProvider();\n const o = {} as ToastOptions;\n o.text = options.message || params.text;\n o.type = options.class?.toLowerCase() || params.class?.toLowerCase();\n o.onClose = this.config.onClose;\n o.onClick = this.config.onOk;\n o.content = this.config.partialContent;\n o.hideOnClick = options.hideOnClick || true;\n const toasterPosition = options.position || params.toasterPosition || 'bottom right';\n const placement = toasterPosition.split(' ')[0];\n switch(placement) {\n case 'top':\n o.styles = {top: 0};\n break;\n case 'bottom':\n o.styles = {bottom: 0};\n break;\n case 'center':\n o.styles = {top: '50%'};\n break;\n }\n if (this.config.partialContent) {\n if (!o.styles) {\n o.styles = {};\n }\n o.styles.backgroundColor = 'black';\n }\n if (!params.duration) {\n params.duration = (params.duration !== 0 && o.type === 'success') ? DEFAULT_DURATION : 0;\n }\n o.duration = parseInt(options.duration || params.duration);\n o.name = this.name;\n return o;\n }\n\n getMessage() {\n return this.config.paramProvider().text;\n }\n\n invoke(options: any, success: any, error: any) {\n super.invoke(options, success, error);\n if (this.config.operation === 'toast') {\n const toasterService = this.config.toasterService();\n return toasterService.showToast(this.prepareToastOptions(options));\n } else {\n return this.showDialog && this.showDialog({...this.params, onOk: this.config.onOk, onCancel: this.config.onCancel, onClose: this.config.onClose});\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["BaseAction","DEFAULT_DURATION","NotificationAction","constructor","config","showDialog","prepareToastOptions","options","params","paramProvider","o","text","message","type","class","toLowerCase","onClose","onClick","onOk","content","partialContent","hideOnClick","toasterPosition","position","placement","split","styles","top","bottom","duration","parseInt","name","getMessage","invoke","success","error","operation","toasterService","showToast","onCancel"],"sources":["notification-action.ts"],"sourcesContent":["import { ActionConfig, BaseAction } from \"./base-action\";\nimport { ToastOptions, ToastService } from '@wavemaker/app-rn-runtime/core/toast.service';\nimport React from 'react';\nexport interface NotificationActionConfig extends ActionConfig {\n showDialog: Function;\n onOk: any;\n onCancel: any;\n onClose: any;\n operation: string;\n partialContent: React.ReactNode;\n toasterService: () => ToastService;\n}\nconst DEFAULT_DURATION = 3000;\nexport class NotificationAction extends BaseAction<NotificationActionConfig> {\n showDialog: Function;\n constructor(config: NotificationActionConfig) {\n super(config);\n this.showDialog = config.showDialog;\n }\n\n prepareToastOptions(options: any = {}) {\n const params = this.config.paramProvider();\n const o = {} as ToastOptions;\n o.text = options.message || params.text;\n o.type = options.class?.toLowerCase() || params.class?.toLowerCase();\n o.onClose = () => {\n this.config.onClose && this.config.onClose(this);\n },\n o.onClick = () => {\n this.config.onOk && this.config.onOk(this);\n },\n o.content = this.config.partialContent;\n o.hideOnClick = options.hideOnClick || true;\n const toasterPosition = options.position || params.toasterPosition || 'bottom right';\n const placement = toasterPosition.split(' ')[0];\n switch(placement) {\n case 'top':\n o.styles = {top: 0};\n break;\n case 'bottom':\n o.styles = {bottom: 0};\n break;\n case 'center':\n o.styles = {top: '50%'};\n break;\n }\n if (this.config.partialContent) {\n if (!o.styles) {\n o.styles = {};\n }\n }\n if (!params.duration) {\n params.duration = (params.duration !== 0 && o.type === 'success') ? DEFAULT_DURATION : 0;\n }\n o.duration = parseInt(options.duration || params.duration);\n o.name = this.name;\n return o;\n }\n\n getMessage() {\n return this.config.paramProvider().text;\n }\n\n invoke(options: any, success: any, error: any) {\n super.invoke(options, success, error);\n if (this.config.operation === 'toast') {\n const toasterService = this.config.toasterService();\n return toasterService.showToast(this.prepareToastOptions(options));\n } else {\n return this.showDialog && this.showDialog({...this.params, onOk: this.config.onOk, onCancel: this.config.onCancel, onClose: this.config.onClose});\n }\n }\n}\n"],"mappings":"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"}
@@ -34,7 +34,7 @@ export default class WmTabpane extends BaseComponent {
34
34
  }
35
35
  componentDidMount() {
36
36
  const tabs = this.parent;
37
- tabs.addTabPane(this);
37
+ tabs.addTabPane(this.proxy);
38
38
  super.componentDidMount();
39
39
  }
40
40
  _onSelect() {
@@ -43,6 +43,9 @@ export default class WmTabpane extends BaseComponent {
43
43
  _onDeselect() {
44
44
  this.invokeEventCallback('onDeselect', [null, this.proxy]);
45
45
  }
46
+ select() {
47
+ this.parent.selectTabPane(this);
48
+ }
46
49
  renderWidget(props) {
47
50
  return /*#__PURE__*/React.createElement(View, {
48
51
  style: this.styles.root
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","BaseComponent","BaseComponentState","WmTabpaneProps","DEFAULT_CLASS","WmTabpaneState","WmTabpane","constructor","props","onPartialLoad","invokeEventCallback","renderContent","renderPartial","state","isPartialLoaded","setTimeout","updateState","bind","children","componentDidMount","tabs","parent","addTabPane","_onSelect","proxy","_onDeselect","renderWidget","styles","root"],"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(this.onPartialLoad.bind(this));\n }\n return props.children;\n }\n\n componentDidMount() {\n const tabs = (this.parent) as WmTabs;\n tabs.addTabPane(this);\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 renderWidget(props: WmTabpaneProps) {\n return (<View style={this.styles.root}>{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;EAAA;IAAA;IAAA,yCACnD,KAAK;EAAA;AACzB;AAEA,eAAe,MAAMI,SAAS,SAASL,aAAa,CAAkD;EAEpGM,WAAW,CAACC,KAAqB,EAAE;IACjC,KAAK,CAACA,KAAK,EAAEJ,aAAa,EAAE,IAAID,cAAc,EAAE,CAAC;EACnD;EAEAM,aAAa,GAAG;IACd,IAAI,CAACC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EAClD;EAEAC,aAAa,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,CAAC,CAAmB;QACtB,CAAC,CAAC;MACJ;MACA,OAAON,KAAK,CAACI,aAAa,CAAC,IAAI,CAACH,aAAa,CAACQ,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D;IACA,OAAOT,KAAK,CAACU,QAAQ;EACvB;EAEAC,iBAAiB,GAAG;IAClB,MAAMC,IAAI,GAAI,IAAI,CAACC,MAAiB;IACpCD,IAAI,CAACE,UAAU,CAAC,IAAI,CAAC;IACrB,KAAK,CAACH,iBAAiB,EAAE;EAC3B;EAEAI,SAAS,GAAG;IACV,IAAI,CAACb,mBAAmB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAACc,KAAK,CAAC,CAAC;EAC1D;EACAC,WAAW,GAAG;IACZ,IAAI,CAACf,mBAAmB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,CAACc,KAAK,CAAC,CAAC;EAC5D;EAEAE,YAAY,CAAClB,KAAqB,EAAE;IAClC,oBAAQ,oBAAC,IAAI;MAAC,KAAK,EAAE,IAAI,CAACmB,MAAM,CAACC;IAAK,GAAE,IAAI,CAACjB,aAAa,CAACH,KAAK,CAAC,CAAQ;EAC3E;AACF"}
1
+ {"version":3,"names":["React","View","BaseComponent","BaseComponentState","WmTabpaneProps","DEFAULT_CLASS","WmTabpaneState","WmTabpane","constructor","props","onPartialLoad","invokeEventCallback","renderContent","renderPartial","state","isPartialLoaded","setTimeout","updateState","bind","children","componentDidMount","tabs","parent","addTabPane","proxy","_onSelect","_onDeselect","select","selectTabPane","renderWidget","styles","root"],"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(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.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;EAAA;IAAA;IAAA,yCACnD,KAAK;EAAA;AACzB;AAEA,eAAe,MAAMI,SAAS,SAASL,aAAa,CAAkD;EAEpGM,WAAW,CAACC,KAAqB,EAAE;IACjC,KAAK,CAACA,KAAK,EAAEJ,aAAa,EAAE,IAAID,cAAc,EAAE,CAAC;EACnD;EAEAM,aAAa,GAAG;IACd,IAAI,CAACC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EAClD;EAEAC,aAAa,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,CAAC,CAAmB;QACtB,CAAC,CAAC;MACJ;MACA,OAAON,KAAK,CAACI,aAAa,CAAC,IAAI,CAACH,aAAa,CAACQ,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D;IACA,OAAOT,KAAK,CAACU,QAAQ;EACvB;EAEAC,iBAAiB,GAAG;IAClB,MAAMC,IAAI,GAAI,IAAI,CAACC,MAAiB;IACpCD,IAAI,CAACE,UAAU,CAAC,IAAI,CAACC,KAAK,CAAc;IACxC,KAAK,CAACJ,iBAAiB,EAAE;EAC3B;EAEAK,SAAS,GAAG;IACV,IAAI,CAACd,mBAAmB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAACa,KAAK,CAAC,CAAC;EAC1D;EACAE,WAAW,GAAG;IACZ,IAAI,CAACf,mBAAmB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,CAACa,KAAK,CAAC,CAAC;EAC5D;EAEAG,MAAM,GAAG;IACN,IAAI,CAACL,MAAM,CAAYM,aAAa,CAAC,IAAI,CAAC;EAC7C;EAEAC,YAAY,CAACpB,KAAqB,EAAE;IAClC,oBAAQ,oBAAC,IAAI;MAAC,KAAK,EAAE,IAAI,CAACqB,MAAM,CAACC;IAAK,GAAE,IAAI,CAACnB,aAAa,CAACH,KAAK,CAAC,CAAQ;EAC3E;AACF"}
@@ -25,7 +25,7 @@ export default class WmTabs extends BaseComponent {
25
25
  _defineProperty(this, "panResponder", PanResponder.create({
26
26
  onMoveShouldSetPanResponder: () => true,
27
27
  onPanResponderGrant: () => {
28
- this.tabPosition.setOffset(this.tabPosition._value);
28
+ this.tabPosition.extractOffset();
29
29
  },
30
30
  onPanResponderMove: Animated.event([null, {
31
31
  dx: this.tabPosition
@@ -68,13 +68,14 @@ export default class WmTabs extends BaseComponent {
68
68
  this.forceUpdate();
69
69
  }
70
70
  }
71
- setTabPosition() {
71
+ animate() {
72
72
  var _this$tabLayout;
73
- Animated.timing(this.tabPosition, {
73
+ let toIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.selectedTabIndex;
74
+ return Animated.timing(this.tabPosition, {
74
75
  useNativeDriver: true,
75
- toValue: -1 * this.state.selectedTabIndex * (((_this$tabLayout = this.tabLayout) === null || _this$tabLayout === void 0 ? void 0 : _this$tabLayout.width) || 0),
76
+ toValue: -1 * toIndex * (((_this$tabLayout = this.tabLayout) === null || _this$tabLayout === void 0 ? void 0 : _this$tabLayout.width) || 0),
76
77
  duration: 200,
77
- easing: Easing.linear
78
+ easing: Easing.out(Easing.linear)
78
79
  }).start();
79
80
  }
80
81
  setTabShown(tabIndex, callback) {
@@ -94,11 +95,27 @@ export default class WmTabs extends BaseComponent {
94
95
  this.tabPanes[this.newIndex || this.state.selectedTabIndex] = tabPane;
95
96
  this.newIndex++;
96
97
  }
98
+ selectTabPane(tabPane) {
99
+ this.onChange(this.tabPanes.indexOf(tabPane));
100
+ }
101
+ goToTab(index) {
102
+ this.onChange(index);
103
+ }
104
+ prev() {
105
+ this.onChange(this.state.selectedTabIndex - 1);
106
+ }
107
+ next() {
108
+ this.onChange(this.state.selectedTabIndex + 1);
109
+ }
97
110
  onChange(newIndex) {
111
+ if (newIndex < 0 || newIndex >= this.tabPanes.length) {
112
+ return;
113
+ }
98
114
  const oldIndex = this.state.selectedTabIndex;
99
115
  const deselectedTab = this.tabPanes[this.state.selectedTabIndex];
100
116
  this.newIndex = newIndex;
101
117
  deselectedTab === null || deselectedTab === void 0 ? void 0 : deselectedTab._onDeselect();
118
+ this.animate(newIndex);
102
119
  this.updateState({
103
120
  selectedTabIndex: newIndex
104
121
  }, () => {
@@ -116,7 +133,6 @@ export default class WmTabs extends BaseComponent {
116
133
  icon: '',
117
134
  key: `tab-${p.props.title}-${i}`
118
135
  }));
119
- this.setTabPosition();
120
136
  return /*#__PURE__*/React.createElement(View, {
121
137
  style: [this.styles.root, {
122
138
  borderBottomWidth: 0
@@ -156,7 +172,7 @@ export default class WmTabs extends BaseComponent {
156
172
  alignSelf: 'flex-start'
157
173
  },
158
174
  onLayout: this.setTabPaneHeights.bind(this, i)
159
- }, this.state.tabsShown[i] ? p : null);
175
+ }, p);
160
176
  }))));
161
177
  }
162
178
  renderWidget(props) {
@@ -166,7 +182,6 @@ export default class WmTabs extends BaseComponent {
166
182
  icon: '',
167
183
  key: `tab-${p.props.title}-${i}`
168
184
  }));
169
- this.setTabPosition();
170
185
  return /*#__PURE__*/React.createElement(View, {
171
186
  style: this.styles.root
172
187
  }, /*#__PURE__*/React.createElement(View, {
@@ -184,7 +199,7 @@ export default class WmTabs extends BaseComponent {
184
199
  , {
185
200
  style: {
186
201
  width: '100%',
187
- //height: this.tabPaneHeights[this.state.selectedTabIndex],
202
+ height: this.tabPaneHeights[this.state.selectedTabIndex],
188
203
  overflow: 'hidden'
189
204
  }
190
205
  }, /*#__PURE__*/React.createElement(Animated.View, {
@@ -203,7 +218,7 @@ export default class WmTabs extends BaseComponent {
203
218
  alignSelf: 'flex-start'
204
219
  },
205
220
  onLayout: this.setTabPaneHeights.bind(this, i)
206
- }, this.state.tabsShown[i] ? p : null);
221
+ }, p);
207
222
  }))));
208
223
  }
209
224
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","Easing","PanResponder","View","BaseComponent","BaseComponentState","WmTabsProps","DEFAULT_CLASS","WmTabheader","WmTabsState","WmTabs","constructor","props","Value","create","onMoveShouldSetPanResponder","onPanResponderGrant","tabPosition","setOffset","_value","onPanResponderMove","event","dx","onPanResponderRelease","flattenOffset","toIndex","state","selectedTabIndex","Math","abs","tabPanes","length","onChange","forceUpdate","selectedIndex","defaultpaneindex","tabsShown","updateState","setTabLayout","tabLayout","nativeEvent","layout","setTabPaneHeights","index","tabPaneHeights","height","setTabPosition","timing","useNativeDriver","toValue","width","duration","easing","linear","start","setTabShown","tabIndex","callback","setTimeout","addTabPane","tabPane","newIndex","oldIndex","deselectedTab","_onDeselect","selectedTab","_onSelect","invokeEventCallback","proxy","renderSkeleton","Children","toArray","children","filter","item","show","headerData","map","p","i","title","icon","key","styles","root","borderBottomWidth","bind","tabHeader","showskeleton","overflow","flexDirection","flexWrap","transform","translateX","alignSelf","renderWidget"],"sources":["tabs.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, Easing, LayoutChangeEvent, LayoutRectangle, PanResponder, View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\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 tabPosition = new Animated.Value(0);\n private tabPaneHeights: number[] = [];\n private panResponder = PanResponder.create({\n onMoveShouldSetPanResponder: () => true,\n onPanResponderGrant: () => {\n this.tabPosition.setOffset((this.tabPosition as any)._value);\n },\n onPanResponderMove: Animated.event([\n null,\n { dx: this.tabPosition }\n ]),\n onPanResponderRelease: () => {\n const dx = (this.tabPosition as any)._value;\n this.tabPosition.flattenOffset();\n let toIndex = this.state.selectedTabIndex;\n if (Math.abs(dx) > 50) {\n if (dx < 0) {\n if (toIndex < this.tabPanes.length - 1) {\n this.onChange(toIndex + 1);\n return;\n }\n } else if (toIndex > 0) {\n this.onChange(toIndex - 1);\n return;\n }\n }\n this.onChange(toIndex);\n this.forceUpdate();\n }\n });\n\n constructor(props: WmTabsProps) {\n super(props, DEFAULT_CLASS, new WmTabsProps(), new WmTabsState());\n const selectedIndex = props.defaultpaneindex || 0;\n const tabsShown: boolean[] = [];\n tabsShown[selectedIndex] = true;\n this.updateState({\n selectedTabIndex: selectedIndex,\n tabsShown: tabsShown\n }as WmTabsState);\n }\n\n setTabLayout(event: LayoutChangeEvent) {\n this.tabLayout = event.nativeEvent.layout;\n this.forceUpdate();\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 setTabPosition() {\n Animated.timing(this.tabPosition, {\n useNativeDriver: true,\n toValue: -1 * this.state.selectedTabIndex * (this.tabLayout?.width || 0),\n duration: 200,\n easing: Easing.linear\n }).start();\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 this.tabPanes[this.newIndex || this.state.selectedTabIndex] = tabPane;\n this.newIndex++;\n }\n\n onChange(newIndex: number) {\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 this.setTabPosition();\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 onIndexChange={this.onChange.bind(this)}\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 <Animated.View style={{\n flexDirection: 'row',\n flexWrap: 'nowrap',\n transform: [{\n translateX: this.tabPosition\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 </View>);\n })}\n </Animated.View>\n </View>\n </View>\n\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 this.setTabPosition();\n return (\n <View style={this.styles.root}>\n <View onLayout={this.setTabLayout.bind(this)} style={{width: '100%'}}></View>\n <WmTabheader\n styles={this.styles.tabHeader}\n data={headerData}\n selectedTabIndex={this.state.selectedTabIndex}\n onIndexChange={this.onChange.bind(this)}\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 <Animated.View style={{\n flexDirection: 'row',\n flexWrap: 'nowrap',\n transform: [{\n translateX: this.tabPosition\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 </View>);\n })}\n </Animated.View>\n </View>\n </View>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Animated","Easing","PanResponder","View","BaseComponent","BaseComponentState","WmTabsProps","DEFAULT_CLASS","WmTabheader","WmTabsState","WmTabs","constructor","props","Value","create","onMoveShouldSetPanResponder","onPanResponderGrant","tabPosition","extractOffset","onPanResponderMove","event","dx","onPanResponderRelease","_value","flattenOffset","toIndex","state","selectedTabIndex","Math","abs","tabPanes","length","onChange","forceUpdate","selectedIndex","defaultpaneindex","tabsShown","updateState","setTabLayout","tabLayout","nativeEvent","layout","setTabPaneHeights","index","tabPaneHeights","height","animate","timing","useNativeDriver","toValue","width","duration","easing","out","linear","start","setTabShown","tabIndex","callback","setTimeout","addTabPane","tabPane","newIndex","selectTabPane","indexOf","goToTab","prev","next","oldIndex","deselectedTab","_onDeselect","selectedTab","_onSelect","invokeEventCallback","proxy","renderSkeleton","Children","toArray","children","filter","item","show","headerData","map","p","i","title","icon","key","styles","root","borderBottomWidth","bind","tabHeader","showskeleton","overflow","flexDirection","flexWrap","transform","translateX","alignSelf","renderWidget"],"sources":["tabs.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, Easing, LayoutChangeEvent, LayoutRectangle, PanResponder, View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\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 tabPosition = new Animated.Value(0);\n private tabPaneHeights: number[] = [];\n private panResponder = PanResponder.create({\n onMoveShouldSetPanResponder: () => true,\n onPanResponderGrant: () => {\n this.tabPosition.extractOffset();\n },\n onPanResponderMove: Animated.event([\n null,\n { dx: this.tabPosition }\n ]),\n onPanResponderRelease: () => {\n const dx = (this.tabPosition as any)._value;\n this.tabPosition.flattenOffset();\n let toIndex = this.state.selectedTabIndex;\n if (Math.abs(dx) > 50) {\n if (dx < 0) {\n if (toIndex < this.tabPanes.length - 1) {\n this.onChange(toIndex + 1);\n return;\n }\n } else if (toIndex > 0) {\n this.onChange(toIndex - 1);\n return;\n }\n }\n this.onChange(toIndex);\n this.forceUpdate();\n }\n });\n\n constructor(props: WmTabsProps) {\n super(props, DEFAULT_CLASS, new WmTabsProps(), new WmTabsState());\n const selectedIndex = props.defaultpaneindex || 0;\n const tabsShown: boolean[] = [];\n tabsShown[selectedIndex] = true;\n this.updateState({\n selectedTabIndex: selectedIndex,\n tabsShown: tabsShown\n }as WmTabsState);\n }\n\n setTabLayout(event: LayoutChangeEvent) {\n this.tabLayout = event.nativeEvent.layout;\n this.forceUpdate();\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 animate(toIndex = this.state.selectedTabIndex) {\n return Animated.timing(this.tabPosition, {\n useNativeDriver: true,\n toValue: -1 * toIndex * (this.tabLayout?.width || 0),\n duration: 200,\n easing: Easing.out(Easing.linear)\n }).start();\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 this.tabPanes[this.newIndex || this.state.selectedTabIndex] = tabPane;\n this.newIndex++;\n }\n\n selectTabPane(tabPane: WmTabpane) {\n this.onChange(this.tabPanes.indexOf(tabPane));\n }\n\n goToTab(index: number) {\n this.onChange(index);\n }\n\n prev() {\n this.onChange(this.state.selectedTabIndex - 1);\n }\n\n next() {\n this.onChange(this.state.selectedTabIndex + 1);\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.animate(newIndex);\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 onIndexChange={this.onChange.bind(this)}\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 <Animated.View style={{\n flexDirection: 'row',\n flexWrap: 'nowrap',\n transform: [{\n translateX: this.tabPosition\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 </Animated.View>\n </View>\n </View>\n\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 <View onLayout={this.setTabLayout.bind(this)} style={{width: '100%'}}></View>\n <WmTabheader\n styles={this.styles.tabHeader}\n data={headerData}\n selectedTabIndex={this.state.selectedTabIndex}\n onIndexChange={this.onChange.bind(this)}\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 <Animated.View style={{\n flexDirection: 'row',\n flexWrap: 'nowrap',\n transform: [{\n translateX: this.tabPosition\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 </Animated.View>\n </View>\n </View>\n );\n }\n}\n"],"mappings":"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"}
@@ -54,7 +54,7 @@ export default class WmForm extends BaseComponent {
54
54
  forEach(formFields, w => {
55
55
  if (!w.form) {
56
56
  w.form = this;
57
- w.formwidget = w.props.name && formWidgets[w.props.name];
57
+ w.formwidget = w.props.formKey && formWidgets[w.props.formKey] || w.props.name && formWidgets[w.props.name];
58
58
  }
59
59
  });
60
60
  this.formFields = formFields;
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","BaseComponent","BaseComponentState","isDefined","debounce","find","forEach","get","set","WmLabel","WmIcon","WmMessage","ToastConsumer","WmFormProps","DEFAULT_CLASS","createSkeleton","WmFormState","WmForm","constructor","props","handleSubmit","componentDidMount","getParentFormRef","parentForm","pformName","current","parent","parentFormRef","registerFormFields","formFields","formWidgets","w","form","formwidget","name","f","formfields","applyFormData","applyDefaultValue","formdataoutput","datavalue","formData","state","formdata","formField","fw","key","setState","isDefault","updateState","updateFormFieldDefaultValue","dv","defaultvalue","field","invokeEventCallback","bind","undefined","formreset","ff","id","formKey","widget","isValid","reset","submit","_debouncedSubmitForm","onPropertyChange","$new","$old","validateFieldsOnSubmit","val","onValidate","required","msg","defaultValidatorMessages","validationmessage","validate","event","preventDefault","dataoutput","onBeforesubmit","proxy","formSubmit","data","onResultCb","error","response","status","onSuccess","postmessage","toggleMessage","onError","errormessage","updateDataOutput","Object","assign","type","message","messagelayout","showInlineMsg","toaster","showToast","placement","styles","bottom","text","hideOnClick","onMsgClose","renderSkeleton","root","iconclass","title","subheading","heading","flex","flexDirection","listIcon","theme","width","height","fontSize","children","renderWidget","toastService"],"sources":["form.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { isDefined, widgetsWithUndefinedValue } from '@wavemaker/app-rn-runtime/core/utils';\nimport { debounce, find, forEach, get, set } from 'lodash';\n\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport WmFormField, { WmFormFieldState } from '@wavemaker/app-rn-runtime/components/data/form/form-field/form-field.component';\nimport WmMessage from '@wavemaker/app-rn-runtime/components/basic/message/message.component';\nimport { ToastConsumer, ToastService } from '@wavemaker/app-rn-runtime/core/toast.service';\n\nimport WmFormProps from './form.props';\nimport { DEFAULT_CLASS, WmFormStyles } from './form.styles';\nimport WmSkeleton, { createSkeleton } from '../../basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport class WmFormState extends BaseComponentState<WmFormProps> {\n isValid = false;\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined = 'success';\n message: string = '';\n showInlineMsg: boolean = false;\n}\nexport default class WmForm extends BaseComponent<WmFormProps, WmFormState, WmFormStyles> {\n public formFields: Array<WmFormField> = []; // contains array of direct widget elements [WmText, WmNumber, WmCurrent]\n public parentFormRef: any;\n public formfields: {[key: string]: WmFormField} = {};\n private formdataoutput: any;\n private toaster: any;\n formWidgets: { [key: string]: BaseComponent<any, any, any> } = {}; // object containing key as name of formField and value as WmFormField proxy.\n constructor(props: WmFormProps) {\n super(props, DEFAULT_CLASS, new WmFormProps());\n }\n\n private _debouncedSubmitForm = debounce(this.handleSubmit, 250);\n\n componentDidMount() {\n super.componentDidMount();\n this.getParentFormRef(this.props.parentForm);\n }\n\n getParentFormRef(pformName: string) {\n let current = this.parent;\n while (current) {\n if (get(current, 'props.name') === pformName) {\n this.parentFormRef = current;\n break;\n }\n current = current.parent;\n }\n }\n\n registerFormFields(\n formFields: Array<WmFormField>,\n formWidgets: { [key: string]: BaseComponent<any, any, any> }\n ) {\n forEach(formFields, (w: WmFormField) => {\n if (!w.form) {\n w.form = this;\n w.formwidget = w.props.name && formWidgets[w.props.name];\n }\n });\n\n this.formFields = formFields;\n this.formWidgets = formWidgets;\n\n formFields.forEach((f: WmFormField) => {\n if (f.props.name) {\n set(this.formfields, f.props.name, f);\n }\n })\n\n this.applyFormData();\n this.applyDefaultValue();\n\n // setting default form dataoutput.\n if (!this.formdataoutput) {\n this.formdataoutput = {};\n formFields.forEach((w: WmFormField) => {\n const name = get(w.props, 'formKey') || w.props.name;\n if (name) {\n set(this.formdataoutput, name, w.props.datavalue);\n }\n });\n }\n }\n\n applyFormData() {\n let formData = this.state.props.formdata || this.parentFormRef?.state.props.formdata;\n if (!formData || (this.parentFormRef && this.state.props.formdata)) {\n return;\n }\n forEach(this.formFields, (formField: WmFormField) => {\n let fw = formField.props?.name && this.formWidgets[formField.props.name];\n if (!fw) {\n fw = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n let key = get(formField, 'formKey') || get(fw, 'props.name');\n fw && fw.setState({ isDefault: true });\n formField.updateState({\n props: {\n datavalue: get(formData, key)\n }\n } as WmFormFieldState);\n });\n }\n\n updateFormFieldDefaultValue(formField: WmFormField) {\n if (formField) {\n const dv = formField.state.props.defaultvalue;\n if (isDefined(dv) && dv !== null && this.formFields) {\n let field = formField.props?.name && this.formWidgets[formField.props.name];\n if (!field) {\n field = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n if (field) {\n field.setState({ isDefault: true });\n field.updateState({\n props: {\n datavalue: dv\n }\n }, this.invokeEventCallback.bind(formField, 'onFieldChange', [undefined, formField, dv]));\n }\n }\n }\n }\n\n applyDefaultValue(formField?: WmFormField) {\n if (formField) {\n this.updateFormFieldDefaultValue(formField);\n return;\n }\n forEach(this.formFields, (w: WmFormField) => {\n this.updateFormFieldDefaultValue(w);\n });\n }\n\n formreset() {\n forEach(this.formFields, (ff: WmFormField) => {\n ff.updateState({\n props : {\n datavalue: ''\n }\n } as WmFormFieldState, () => {\n const id = ff.props.formKey || ff.props.name;\n if (id) {\n let widget: BaseComponent<any, any, any> | undefined | any = this.formWidgets[id];\n if (!widget) {\n widget = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === ff.props.name\n });\n }\n widget.updateState({\n isValid: true,\n props : {\n datavalue: ''\n }\n }, () => ff.updateState({\n isValid: true\n } as WmFormFieldState));\n widget?.reset();\n }\n }\n );\n });\n }\n\n submit() {\n this._debouncedSubmitForm();\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'formdata':\n if ($new) {\n this.applyFormData();\n }\n }\n }\n // Disable the form submit if form is in invalid state. Highlight all the invalid fields if validation type is default\n validateFieldsOnSubmit() {\n let isValid = true;\n forEach(this.formFields, (field) => {\n const val = field?.state.props.datavalue;\n\n const onValidate = get(field, 'props.onValidate');\n onValidate && onValidate(field);\n if (!val && field?.state.props.required) {\n isValid = false;\n const msg = get(field.defaultValidatorMessages, 'required') || field.state.props.validationmessage;\n field.updateState({ isValid: isValid, props: {\n validationmessage: msg\n }} as WmFormFieldState);\n field.formwidget.validate && field.formwidget.validate(val);\n }\n // check for isvalid state of formwidget\n if (field.formwidget.state.isValid === false) {\n isValid = false;\n }\n });\n return isValid;\n }\n\n // @ts-ignore\n handleSubmit(event?: any) {\n event?.preventDefault();\n const formData = this.state.props.dataoutput || this.formdataoutput;\n\n if (!this.validateFieldsOnSubmit()) {\n return false;\n }\n if (this.props.onBeforesubmit) {\n this.invokeEventCallback('onBeforesubmit', [ null, this.proxy, formData ]);\n }\n if (this.props.formSubmit) {\n this.props.formSubmit(formData, ((data: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(get(data, 'params'), 'success');\n }), ((error: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(error, '');\n }));\n } else {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n }\n }\n\n onResultCb(response: any, status: string, event?: any) {\n this.invokeEventCallback('onResult', [ null, this.proxy, response ]);\n if (status) {\n this.invokeEventCallback('onSuccess', [ null, this.proxy, response ]);\n !this.props.onSuccess && this.state.props.postmessage && this.toggleMessage('success', this.state.props.postmessage);\n } else {\n this.invokeEventCallback('onError', [ null, this.proxy, response ]);\n !this.props.onError && this.toggleMessage('error', this.state.props.errormessage || get(response, 'message'));\n }\n }\n\n updateDataOutput(key: string, val: any) {\n const current = this.formdataoutput || {};\n if (key) {\n set(current, key, val);\n } else {\n Object.assign(current, val)\n }\n this.formdataoutput = current;\n this.updateState({ props: { dataoutput: current }} as WmFormState);\n this.parentFormRef && this.parentFormRef.updateDataOutput(undefined, this.formdataoutput);\n }\n\n toggleMessage(\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined,\n message: string\n ) {\n if (this.state.props.messagelayout === 'Inline') {\n this.setState({\n type: type,\n message: message,\n showInlineMsg: true\n } as WmFormState)\n return;\n }\n this.toaster.showToast({\n name: this, placement: \"\", styles: {bottom: 0},\n text: message,\n type: type,\n hideOnClick: true\n });\n }\n\n onMsgClose() {\n this.setState({\n showInlineMsg: false\n } as WmFormState)\n }\n\n public renderSkeleton(props: WmFormProps){\n return(\n <View style={this.styles.root}>\n {this.props.iconclass || this.props.title || this.props.subheading ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon styles={this.styles.listIcon} iconclass={this.props.iconclass}></WmIcon>\n <View>\n {\n createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.title.root,\n width: 96,\n height: this.styles.title.text.fontSize\n })\n }\n {\n createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.subheading.root,\n width: 160,\n height: this.styles.subheading.text.fontSize\n })\n }\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 {this.props.children}\n </View>\n )\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 {props.iconclass || props.title || props.subheading ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>\n ) : null}\n {this.state.showInlineMsg ? <WmMessage type={this.state.type} caption={this.state.message} hideclose={false} onClose={this.onMsgClose.bind(this)}></WmMessage> : null\n }\n {props.children}\n </View>\n }\n }\n </ToastConsumer>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","BaseComponent","BaseComponentState","isDefined","debounce","find","forEach","get","set","WmLabel","WmIcon","WmMessage","ToastConsumer","WmFormProps","DEFAULT_CLASS","createSkeleton","WmFormState","WmForm","constructor","props","handleSubmit","componentDidMount","getParentFormRef","parentForm","pformName","current","parent","parentFormRef","registerFormFields","formFields","formWidgets","w","form","formwidget","formKey","name","f","formfields","applyFormData","applyDefaultValue","formdataoutput","datavalue","formData","state","formdata","formField","fw","key","setState","isDefault","updateState","updateFormFieldDefaultValue","dv","defaultvalue","field","invokeEventCallback","bind","undefined","formreset","ff","id","widget","isValid","reset","submit","_debouncedSubmitForm","onPropertyChange","$new","$old","validateFieldsOnSubmit","val","onValidate","required","msg","defaultValidatorMessages","validationmessage","validate","event","preventDefault","dataoutput","onBeforesubmit","proxy","formSubmit","data","onResultCb","error","response","status","onSuccess","postmessage","toggleMessage","onError","errormessage","updateDataOutput","Object","assign","type","message","messagelayout","showInlineMsg","toaster","showToast","placement","styles","bottom","text","hideOnClick","onMsgClose","renderSkeleton","root","iconclass","title","subheading","heading","flex","flexDirection","listIcon","theme","width","height","fontSize","children","renderWidget","toastService"],"sources":["form.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { isDefined, widgetsWithUndefinedValue } from '@wavemaker/app-rn-runtime/core/utils';\nimport { debounce, find, forEach, get, set } from 'lodash';\n\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport WmFormField, { WmFormFieldState } from '@wavemaker/app-rn-runtime/components/data/form/form-field/form-field.component';\nimport WmMessage from '@wavemaker/app-rn-runtime/components/basic/message/message.component';\nimport { ToastConsumer, ToastService } from '@wavemaker/app-rn-runtime/core/toast.service';\n\nimport WmFormProps from './form.props';\nimport { DEFAULT_CLASS, WmFormStyles } from './form.styles';\nimport WmSkeleton, { createSkeleton } from '../../basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport class WmFormState extends BaseComponentState<WmFormProps> {\n isValid = false;\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined = 'success';\n message: string = '';\n showInlineMsg: boolean = false;\n}\nexport default class WmForm extends BaseComponent<WmFormProps, WmFormState, WmFormStyles> {\n public formFields: Array<WmFormField> = []; // contains array of direct widget elements [WmText, WmNumber, WmCurrent]\n public parentFormRef: any;\n public formfields: {[key: string]: WmFormField} = {};\n private formdataoutput: any;\n private toaster: any;\n formWidgets: { [key: string]: BaseComponent<any, any, any> } = {}; // object containing key as name of formField and value as WmFormField proxy.\n constructor(props: WmFormProps) {\n super(props, DEFAULT_CLASS, new WmFormProps());\n }\n\n private _debouncedSubmitForm = debounce(this.handleSubmit, 250);\n\n componentDidMount() {\n super.componentDidMount();\n this.getParentFormRef(this.props.parentForm);\n }\n\n getParentFormRef(pformName: string) {\n let current = this.parent;\n while (current) {\n if (get(current, 'props.name') === pformName) {\n this.parentFormRef = current;\n break;\n }\n current = current.parent;\n }\n }\n\n registerFormFields(\n formFields: Array<WmFormField>,\n formWidgets: { [key: string]: BaseComponent<any, any, any> }\n ) {\n forEach(formFields, (w: WmFormField) => {\n if (!w.form) {\n w.form = this;\n w.formwidget = (w.props.formKey && formWidgets[w.props.formKey]) \n || (w.props.name && formWidgets[w.props.name]);\n }\n });\n\n this.formFields = formFields;\n this.formWidgets = formWidgets;\n\n formFields.forEach((f: WmFormField) => {\n if (f.props.name) {\n set(this.formfields, f.props.name, f);\n }\n })\n\n this.applyFormData();\n this.applyDefaultValue();\n\n // setting default form dataoutput.\n if (!this.formdataoutput) {\n this.formdataoutput = {};\n formFields.forEach((w: WmFormField) => {\n const name = get(w.props, 'formKey') || w.props.name;\n if (name) {\n set(this.formdataoutput, name, w.props.datavalue);\n }\n });\n }\n }\n\n applyFormData() {\n let formData = this.state.props.formdata || this.parentFormRef?.state.props.formdata;\n if (!formData || (this.parentFormRef && this.state.props.formdata)) {\n return;\n }\n forEach(this.formFields, (formField: WmFormField) => {\n let fw = formField.props?.name && this.formWidgets[formField.props.name];\n if (!fw) {\n fw = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n let key = get(formField, 'formKey') || get(fw, 'props.name');\n fw && fw.setState({ isDefault: true });\n formField.updateState({\n props: {\n datavalue: get(formData, key)\n }\n } as WmFormFieldState);\n });\n }\n\n updateFormFieldDefaultValue(formField: WmFormField) {\n if (formField) {\n const dv = formField.state.props.defaultvalue;\n if (isDefined(dv) && dv !== null && this.formFields) {\n let field = formField.props?.name && this.formWidgets[formField.props.name];\n if (!field) {\n field = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n if (field) {\n field.setState({ isDefault: true });\n field.updateState({\n props: {\n datavalue: dv\n }\n }, this.invokeEventCallback.bind(formField, 'onFieldChange', [undefined, formField, dv]));\n }\n }\n }\n }\n\n applyDefaultValue(formField?: WmFormField) {\n if (formField) {\n this.updateFormFieldDefaultValue(formField);\n return;\n }\n forEach(this.formFields, (w: WmFormField) => {\n this.updateFormFieldDefaultValue(w);\n });\n }\n\n formreset() {\n forEach(this.formFields, (ff: WmFormField) => {\n ff.updateState({\n props : {\n datavalue: ''\n }\n } as WmFormFieldState, () => {\n const id = ff.props.formKey || ff.props.name;\n if (id) {\n let widget: BaseComponent<any, any, any> | undefined | any = this.formWidgets[id];\n if (!widget) {\n widget = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === ff.props.name\n });\n }\n widget.updateState({\n isValid: true,\n props : {\n datavalue: ''\n }\n }, () => ff.updateState({\n isValid: true\n } as WmFormFieldState));\n widget?.reset();\n }\n }\n );\n });\n }\n\n submit() {\n this._debouncedSubmitForm();\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'formdata':\n if ($new) {\n this.applyFormData();\n }\n }\n }\n // Disable the form submit if form is in invalid state. Highlight all the invalid fields if validation type is default\n validateFieldsOnSubmit() {\n let isValid = true;\n forEach(this.formFields, (field) => {\n const val = field?.state.props.datavalue;\n\n const onValidate = get(field, 'props.onValidate');\n onValidate && onValidate(field);\n if (!val && field?.state.props.required) {\n isValid = false;\n const msg = get(field.defaultValidatorMessages, 'required') || field.state.props.validationmessage;\n field.updateState({ isValid: isValid, props: {\n validationmessage: msg\n }} as WmFormFieldState);\n field.formwidget.validate && field.formwidget.validate(val);\n }\n // check for isvalid state of formwidget\n if (field.formwidget.state.isValid === false) {\n isValid = false;\n }\n });\n return isValid;\n }\n\n // @ts-ignore\n handleSubmit(event?: any) {\n event?.preventDefault();\n const formData = this.state.props.dataoutput || this.formdataoutput;\n\n if (!this.validateFieldsOnSubmit()) {\n return false;\n }\n if (this.props.onBeforesubmit) {\n this.invokeEventCallback('onBeforesubmit', [ null, this.proxy, formData ]);\n }\n if (this.props.formSubmit) {\n this.props.formSubmit(formData, ((data: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(get(data, 'params'), 'success');\n }), ((error: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(error, '');\n }));\n } else {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n }\n }\n\n onResultCb(response: any, status: string, event?: any) {\n this.invokeEventCallback('onResult', [ null, this.proxy, response ]);\n if (status) {\n this.invokeEventCallback('onSuccess', [ null, this.proxy, response ]);\n !this.props.onSuccess && this.state.props.postmessage && this.toggleMessage('success', this.state.props.postmessage);\n } else {\n this.invokeEventCallback('onError', [ null, this.proxy, response ]);\n !this.props.onError && this.toggleMessage('error', this.state.props.errormessage || get(response, 'message'));\n }\n }\n\n updateDataOutput(key: string, val: any) {\n const current = this.formdataoutput || {};\n if (key) {\n set(current, key, val);\n } else {\n Object.assign(current, val)\n }\n this.formdataoutput = current;\n this.updateState({ props: { dataoutput: current }} as WmFormState);\n this.parentFormRef && this.parentFormRef.updateDataOutput(undefined, this.formdataoutput);\n }\n\n toggleMessage(\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined,\n message: string\n ) {\n if (this.state.props.messagelayout === 'Inline') {\n this.setState({\n type: type,\n message: message,\n showInlineMsg: true\n } as WmFormState)\n return;\n }\n this.toaster.showToast({\n name: this, placement: \"\", styles: {bottom: 0},\n text: message,\n type: type,\n hideOnClick: true\n });\n }\n\n onMsgClose() {\n this.setState({\n showInlineMsg: false\n } as WmFormState)\n }\n\n public renderSkeleton(props: WmFormProps){\n return(\n <View style={this.styles.root}>\n {this.props.iconclass || this.props.title || this.props.subheading ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon styles={this.styles.listIcon} iconclass={this.props.iconclass}></WmIcon>\n <View>\n {\n createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.title.root,\n width: 96,\n height: this.styles.title.text.fontSize\n })\n }\n {\n createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.subheading.root,\n width: 160,\n height: this.styles.subheading.text.fontSize\n })\n }\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 {this.props.children}\n </View>\n )\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 {props.iconclass || props.title || props.subheading ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>\n ) : null}\n {this.state.showInlineMsg ? <WmMessage type={this.state.type} caption={this.state.message} hideclose={false} onClose={this.onMsgClose.bind(this)}></WmMessage> : null\n }\n {props.children}\n </View>\n }\n }\n </ToastConsumer>\n );\n }\n}\n"],"mappings":"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"}
@@ -82,11 +82,12 @@ export default class WmList extends BaseComponent {
82
82
  if (this.state.props.groupby) {
83
83
  this.setGroupData($new);
84
84
  } else {
85
+ const data = isArray($new) ? $new : isDefined($new) ? [$new] : [];
85
86
  this.updateState({
86
- groupedData: [{
87
+ groupedData: data[0] || props.direction === 'horizontal' ? [{
87
88
  key: '',
88
- data: isArray($new) ? $new : isDefined($new) ? [$new] : []
89
- }]
89
+ data: data
90
+ }] : []
90
91
  }, () => {
91
92
  this.key += $new && $new.length || 0;
92
93
  });
@@ -192,6 +193,17 @@ export default class WmList extends BaseComponent {
192
193
  renderItem: itemInfo => this.renderItem(itemInfo.item, itemInfo.index, props)
193
194
  }))) : null);
194
195
  }
196
+ getSectionListData() {
197
+ if (this._showSkeleton) {
198
+ return [{
199
+ key: '',
200
+ data: [{}, {}, {}]
201
+ }];
202
+ } else if (this.state.groupedData[0] && this.state.groupedData[0]['data'].length) {
203
+ return this.state.groupedData;
204
+ }
205
+ return [];
206
+ }
195
207
  renderWithSectionList(props) {
196
208
  let isHorizontal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
197
209
  return /*#__PURE__*/React.createElement(SectionList, {
@@ -208,7 +220,7 @@ export default class WmList extends BaseComponent {
208
220
  },
209
221
  contentContainerStyle: this.styles.root,
210
222
  onEndReachedThreshold: 0.3,
211
- sections: this.state.groupedData[0]['data'].length ? this.state.groupedData : [] || [],
223
+ sections: this.getSectionListData(),
212
224
  renderSectionHeader: _ref2 => {
213
225
  let {
214
226
  section: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","SectionList","Text","View","TouchableWithoutFeedback","FlatList","isArray","BaseComponent","BaseComponentState","getGroupedData","isDefined","WmLabel","WmIcon","WmListProps","DEFAULT_CLASS","WmListState","WmList","constructor","props","onSelect","$item","$index","state","disableitem","selectedItemWidgets","itemWidgets","updateState","selecteditem","selectedindex","invokeEventCallback","proxy","selectFirstItem","initialized","dataset","length","index","groupby","deselect","setGroupData","items","dataItems","groupedData","match","orderby","dateformat","key","onPropertyChange","name","$new","$old","_showSkeleton","data","selectfirstitem","componentDidMount","setTimeout","componentDidUpdate","prevProps","prevState","snapshot","getDefaultStyles","isHorizontal","direction","theme","getStyle","defaultClass","getIndex","item","indexOf","generateItemKey","itemkey","renderItem","styles","itemclass","_groupIndex","selectedItem","selectedIcon","renderHeader","title","groupHeading","iconclass","subheading","heading","flex","flexDirection","listIcon","renderEmptyMessage","emptyMessage","nodatamessage","renderLoadingIcon","loadingIcon","loadingicon","loadingdatamsg","renderWithFlatList","root","map","v","marginBottom","i","itemInfo","renderWithSectionList","distanceFromEnd","setState","currentPage","section","loadingdata","renderWidget"],"sources":["list.component.tsx"],"sourcesContent":["import React from 'react';\nimport { SectionList, Text, View, TouchableWithoutFeedback } from 'react-native';\nimport { FlatList } from 'react-native-gesture-handler';\nimport { isArray } from 'lodash-es';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {getGroupedData, isDefined} from \"@wavemaker/app-rn-runtime/core/utils\";\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\n\nimport WmListProps from './list.props';\nimport { DEFAULT_CLASS, WmListStyles } from './list.styles';\n\n\nexport class WmListState extends BaseComponentState<WmListProps> {\n public selectedindex: any;\n groupedData: Array<any> = [];\n currentPage: number = 1;\n}\n\nexport default class WmList extends BaseComponent<WmListProps, WmListState, WmListStyles> {\n\n private itemWidgets = [] as any[];\n private selectedItemWidgets = {} as any;\n private key = 1;\n\n constructor(props: WmListProps) {\n super(props, DEFAULT_CLASS, new WmListProps(), new WmListState());\n }\n\n private onSelect($item: any, $index: number | string) {\n if (!this.state.props.disableitem($item, $index)) {\n this.selectedItemWidgets = this.itemWidgets[$index as number];\n this.updateState({\n props: { selecteditem: $item },\n selectedindex: $index\n } as WmListState, () => {\n this.invokeEventCallback('onSelect', [this.proxy, $item]);\n });\n }\n }\n\n private selectFirstItem() {\n const props = this.state.props;\n if (this.initialized\n && props.dataset\n && props.dataset.length) {\n const index = props.groupby ? '00': 0;\n this.onSelect(props.dataset[0], index);\n }\n }\n\n private deselect() {\n this.updateState({\n props: { selecteditem: null },\n selectedindex: -1\n } as WmListState);\n }\n\n setGroupData(items: any) {\n const dataItems = items;\n const props = this.state.props;\n if (props.groupby) {\n const groupedData = dataItems && getGroupedData(dataItems, props.groupby, props.match, props.orderby, props.dateformat, this);\n this.updateState({\n groupedData: groupedData\n } as WmListState, () => {\n this.key += (items && items.length) || 0;\n });\n }\n }\n\n public onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n const props = this.state.props;\n switch(name) {\n case 'selectfirstitem':\n if ($new) {\n this.selectFirstItem();\n }\n break;\n case 'dataset':\n if(this._showSkeleton) {\n $new = [{}, {}, {}];\n }\n if (this.state.props.groupby) {\n this.setGroupData($new);\n } else {\n this.updateState({\n groupedData: [{\n key: '',\n data: isArray($new) ? $new : (isDefined($new) ? [$new] : [])\n }]\n } as WmListState, () => {\n this.key += ($new && $new.length) || 0;\n });\n }\n this.itemWidgets = [];\n if (props.selectfirstitem) {\n this.selectFirstItem();\n } else {\n this.deselect();\n }\n break;\n case 'groupby':\n case 'match':\n this.setGroupData(this.state.props.dataset);\n break;\n }\n }\n\n componentDidMount() {\n const props = this.state.props;\n if (this.state.props.selectfirstitem && props.dataset?.length) {\n setTimeout(() => {\n this.onSelect(props.dataset[0], 0);\n });\n }\n super.componentDidMount();\n }\n\n componentDidUpdate(prevProps: WmListProps, prevState: WmListState, snapshot?: any) {\n super.componentDidUpdate && super.componentDidUpdate(prevProps, prevState, snapshot);\n this.invokeEventCallback('onRender', [this, this.state.props.dataset]);\n }\n\n getDefaultStyles() {\n const isHorizontal = this.state.props.direction === 'horizontal';\n return this.theme.getStyle(`${this.defaultClass} ${isHorizontal ? 'app-horizontal-list' : 'app-vertical-list'}`);\n }\n\n getIndex(item: any) {\n return this.state.props.dataset.indexOf(item);\n }\n\n private generateItemKey(item: any, index: number, props: WmListProps) {\n if (props.itemkey && item && !this._showSkeleton) {\n return props.itemkey(item, index);\n }\n return 'list_item_' + (this.key + index);\n }\n\n private renderItem(item: any, index: number, props: WmListProps) {\n return (\n <TouchableWithoutFeedback onPress={() => this.onSelect(item, index)}>\n <View style={[\n this.styles.item,\n props.itemclass ? this.theme.getStyle(props.itemclass(item, index)) : null,\n this.state.selectedindex === index && this.state.props.selecteditem?._groupIndex === item._groupIndex ? this.styles.selectedItem : {}]}>\n {props.renderItem(item, index, this)}\n { this.state.selectedindex === index && this.state.props.selecteditem?._groupIndex === item._groupIndex ? (\n <WmIcon iconclass='wi wi-check-circle' styles={this.styles.selectedIcon} />\n ) : null}\n </View>\n </TouchableWithoutFeedback>\n );\n }\n\n private renderHeader(props: WmListProps, title: string) {\n return props.groupby ? (\n <Text style={this.styles.groupHeading}>{title}</Text>\n ) : (props.iconclass || props.title || props.subheading) ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>) : null;\n }\n\n private renderEmptyMessage(isHorizontal: boolean, item: any, index: any, props: WmListProps) {\n return (<WmLabel styles={this.styles.emptyMessage} caption={props.nodatamessage}></WmLabel>);\n }\n\n private renderLoadingIcon(props: WmListProps) {\n return (<WmIcon\n styles={this.styles.loadingIcon}\n iconclass={props.loadingicon}\n caption={props.loadingdatamsg}></WmIcon>)\n }\n\n private renderWithFlatList(props: WmListProps, isHorizontal = false) {\n return (\n <View style={this.styles.root}>\n {this.state.groupedData ? this.state.groupedData.map((v: any) => ((\n <View style={{marginBottom: 16}}>\n {this.renderHeader(props, v.key)}\n <FlatList\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n data={v.data || []}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)}>\n </FlatList>\n </View>\n ))) : null\n }\n </View>);\n }\n\n private renderWithSectionList(props: WmListProps, isHorizontal = false) {\n return (\n <SectionList\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n onEndReached={({distanceFromEnd}) => {\n this.setState({ currentPage: this.state.currentPage + 1 } as WmListState);\n this.invokeEventCallback('onEndReached', [null, this]);\n }}\n contentContainerStyle={this.styles.root}\n onEndReachedThreshold={0.3}\n sections={this.state.groupedData[0]['data'].length ? this.state.groupedData : [] || []}\n renderSectionHeader={({ section: {key, data}}) => {\n return this.renderHeader(props, key);\n }}\n renderSectionFooter={() => props.loadingdata ? this.renderLoadingIcon(props) : null}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)}>\n </SectionList>\n );\n }\n\n renderWidget(props: WmListProps) {\n this.invokeEventCallback('onBeforedatarender', [this, this.state.props.dataset]);\n const isHorizontal = (props.direction === 'horizontal');\n return (\n <View>\n {(isHorizontal) ?\n this.renderWithFlatList(props, isHorizontal)\n : this.renderWithSectionList(props, isHorizontal)}\n </View>);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","SectionList","Text","View","TouchableWithoutFeedback","FlatList","isArray","BaseComponent","BaseComponentState","getGroupedData","isDefined","WmLabel","WmIcon","WmListProps","DEFAULT_CLASS","WmListState","WmList","constructor","props","onSelect","$item","$index","state","disableitem","selectedItemWidgets","itemWidgets","updateState","selecteditem","selectedindex","invokeEventCallback","proxy","selectFirstItem","initialized","dataset","length","index","groupby","deselect","setGroupData","items","dataItems","groupedData","match","orderby","dateformat","key","onPropertyChange","name","$new","$old","_showSkeleton","data","direction","selectfirstitem","componentDidMount","setTimeout","componentDidUpdate","prevProps","prevState","snapshot","getDefaultStyles","isHorizontal","theme","getStyle","defaultClass","getIndex","item","indexOf","generateItemKey","itemkey","renderItem","styles","itemclass","_groupIndex","selectedItem","selectedIcon","renderHeader","title","groupHeading","iconclass","subheading","heading","flex","flexDirection","listIcon","renderEmptyMessage","emptyMessage","nodatamessage","renderLoadingIcon","loadingIcon","loadingicon","loadingdatamsg","renderWithFlatList","root","map","v","marginBottom","i","itemInfo","getSectionListData","renderWithSectionList","distanceFromEnd","setState","currentPage","section","loadingdata","renderWidget"],"sources":["list.component.tsx"],"sourcesContent":["import React from 'react';\nimport { SectionList, Text, View, TouchableWithoutFeedback } from 'react-native';\nimport { FlatList } from 'react-native-gesture-handler';\nimport { isArray } from 'lodash-es';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {getGroupedData, isDefined} from \"@wavemaker/app-rn-runtime/core/utils\";\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\n\nimport WmListProps from './list.props';\nimport { DEFAULT_CLASS, WmListStyles } from './list.styles';\n\n\nexport class WmListState extends BaseComponentState<WmListProps> {\n public selectedindex: any;\n groupedData: Array<any> = [];\n currentPage: number = 1;\n}\n\nexport default class WmList extends BaseComponent<WmListProps, WmListState, WmListStyles> {\n\n private itemWidgets = [] as any[];\n private selectedItemWidgets = {} as any;\n private key = 1;\n\n constructor(props: WmListProps) {\n super(props, DEFAULT_CLASS, new WmListProps(), new WmListState());\n }\n\n private onSelect($item: any, $index: number | string) {\n if (!this.state.props.disableitem($item, $index)) {\n this.selectedItemWidgets = this.itemWidgets[$index as number];\n this.updateState({\n props: { selecteditem: $item },\n selectedindex: $index\n } as WmListState, () => {\n this.invokeEventCallback('onSelect', [this.proxy, $item]);\n });\n }\n }\n\n private selectFirstItem() {\n const props = this.state.props;\n if (this.initialized\n && props.dataset\n && props.dataset.length) {\n const index = props.groupby ? '00': 0;\n this.onSelect(props.dataset[0], index);\n }\n }\n\n private deselect() {\n this.updateState({\n props: { selecteditem: null },\n selectedindex: -1\n } as WmListState);\n }\n\n setGroupData(items: any) {\n const dataItems = items;\n const props = this.state.props;\n if (props.groupby) {\n const groupedData = dataItems && getGroupedData(dataItems, props.groupby, props.match, props.orderby, props.dateformat, this);\n this.updateState({\n groupedData: groupedData\n } as WmListState, () => {\n this.key += (items && items.length) || 0;\n });\n }\n }\n\n public onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n const props = this.state.props;\n switch(name) {\n case 'selectfirstitem':\n if ($new) {\n this.selectFirstItem();\n }\n break;\n case 'dataset':\n if(this._showSkeleton) {\n $new = [{}, {}, {}];\n }\n if (this.state.props.groupby) {\n this.setGroupData($new);\n } else {\n const data = isArray($new) ? $new : (isDefined($new) ? [$new] : []);\n this.updateState({\n groupedData: (data[0] || props.direction === 'horizontal' ? [{\n key: '',\n data: data\n }] : [])\n } as WmListState, () => {\n this.key += ($new && $new.length) || 0;\n });\n }\n this.itemWidgets = [];\n if (props.selectfirstitem) {\n this.selectFirstItem();\n } else {\n this.deselect();\n }\n break;\n case 'groupby':\n case 'match':\n this.setGroupData(this.state.props.dataset);\n break;\n }\n }\n\n componentDidMount() {\n const props = this.state.props;\n if (this.state.props.selectfirstitem && props.dataset?.length) {\n setTimeout(() => {\n this.onSelect(props.dataset[0], 0);\n });\n }\n super.componentDidMount();\n }\n\n componentDidUpdate(prevProps: WmListProps, prevState: WmListState, snapshot?: any) {\n super.componentDidUpdate && super.componentDidUpdate(prevProps, prevState, snapshot);\n this.invokeEventCallback('onRender', [this, this.state.props.dataset]);\n }\n\n getDefaultStyles() {\n const isHorizontal = this.state.props.direction === 'horizontal';\n return this.theme.getStyle(`${this.defaultClass} ${isHorizontal ? 'app-horizontal-list' : 'app-vertical-list'}`);\n }\n\n getIndex(item: any) {\n return this.state.props.dataset.indexOf(item);\n }\n\n private generateItemKey(item: any, index: number, props: WmListProps) {\n if (props.itemkey && item && !this._showSkeleton) {\n return props.itemkey(item, index);\n }\n return 'list_item_' + (this.key + index);\n }\n\n private renderItem(item: any, index: number, props: WmListProps) {\n return (\n <TouchableWithoutFeedback onPress={() => this.onSelect(item, index)}>\n <View style={[\n this.styles.item,\n props.itemclass ? this.theme.getStyle(props.itemclass(item, index)) : null,\n this.state.selectedindex === index && this.state.props.selecteditem?._groupIndex === item._groupIndex ? this.styles.selectedItem : {}]}>\n {props.renderItem(item, index, this)}\n { this.state.selectedindex === index && this.state.props.selecteditem?._groupIndex === item._groupIndex ? (\n <WmIcon iconclass='wi wi-check-circle' styles={this.styles.selectedIcon} />\n ) : null}\n </View>\n </TouchableWithoutFeedback>\n );\n }\n\n private renderHeader(props: WmListProps, title: string) {\n return props.groupby ? (\n <Text style={this.styles.groupHeading}>{title}</Text>\n ) : (props.iconclass || props.title || props.subheading) ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>) : null;\n }\n\n private renderEmptyMessage(isHorizontal: boolean, item: any, index: any, props: WmListProps) {\n return (<WmLabel styles={this.styles.emptyMessage} caption={props.nodatamessage}></WmLabel>);\n }\n\n private renderLoadingIcon(props: WmListProps) {\n return (<WmIcon\n styles={this.styles.loadingIcon}\n iconclass={props.loadingicon}\n caption={props.loadingdatamsg}></WmIcon>)\n }\n\n private renderWithFlatList(props: WmListProps, isHorizontal = false) {\n return (\n <View style={this.styles.root}>\n {this.state.groupedData ? this.state.groupedData.map((v: any) => ((\n <View style={{marginBottom: 16}}>\n {this.renderHeader(props, v.key)}\n <FlatList\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n data={v.data || []}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)}>\n </FlatList>\n </View>\n ))) : null\n }\n </View>);\n }\n\n private getSectionListData() {\n if (this._showSkeleton) {\n return [{\n key: '',\n data: [{}, {}, {}]\n }];\n } else if (this.state.groupedData[0] && this.state.groupedData[0]['data'].length) {\n return this.state.groupedData;\n }\n return [];\n }\n\n private renderWithSectionList(props: WmListProps, isHorizontal = false) {\n return (\n <SectionList\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n onEndReached={({distanceFromEnd}) => {\n this.setState({ currentPage: this.state.currentPage + 1 } as WmListState);\n this.invokeEventCallback('onEndReached', [null, this]);\n }}\n contentContainerStyle={this.styles.root}\n onEndReachedThreshold={0.3}\n sections={this.getSectionListData()}\n renderSectionHeader={({ section: {key, data}}) => {\n return this.renderHeader(props, key);\n }}\n renderSectionFooter={() => props.loadingdata ? this.renderLoadingIcon(props) : null}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)}>\n </SectionList>\n );\n }\n\n renderWidget(props: WmListProps) {\n this.invokeEventCallback('onBeforedatarender', [this, this.state.props.dataset]);\n const isHorizontal = (props.direction === 'horizontal');\n return (\n <View>\n {(isHorizontal) ?\n this.renderWithFlatList(props, isHorizontal)\n : this.renderWithSectionList(props, isHorizontal)}\n </View>);\n }\n}\n"],"mappings":"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"}
@@ -23,8 +23,9 @@ export default class WmBarcodescanner extends BaseComponent {
23
23
  props: {
24
24
  datavalue: res.text
25
25
  }
26
+ }, () => {
27
+ this.invokeEventCallback('onSuccess', [null, this.proxy]);
26
28
  });
27
- this.invokeEventCallback('onSuccess', [null, this.proxy]);
28
29
  });
29
30
  }
30
31
  renderWidget(props) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","BaseComponent","BaseComponentState","ScanConsumer","WmBarcodescannerProps","DEFAULT_CLASS","WmButton","WmBarcodescannerState","WmBarcodescanner","constructor","props","onScanTap","params","barcodeFormat","state","barcodeformat","scanner","scanBarcode","then","res","updateState","datavalue","text","invokeEventCallback","proxy","renderWidget","scanService","styles","root","iconclass","button","bind","caption","iconsize"],"sources":["barcodescanner.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { ScanInput, ScanOutput } from '@wavemaker/app-rn-runtime/variables/device/scan/scan.operation';\nimport { ScanConsumer, ScanService } from '@wavemaker/app-rn-runtime/core/device/scan-service';\n\nimport WmBarcodescannerProps from './barcodescanner.props';\nimport { DEFAULT_CLASS, WmBarcodescannerStyles } from './barcodescanner.styles';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\n\nexport class WmBarcodescannerState extends BaseComponentState<WmBarcodescannerProps> {}\n\nexport default class WmBarcodescanner extends BaseComponent<WmBarcodescannerProps, WmBarcodescannerState, WmBarcodescannerStyles> {\n private scanner: ScanService = null as any;\n constructor(props: WmBarcodescannerProps) {\n super(props, DEFAULT_CLASS, new WmBarcodescannerProps());\n }\n\n onScanTap() {\n const params: ScanInput = {\n barcodeFormat: this.state.props.barcodeformat\n };\n this.scanner.scanBarcode(params).then((res: ScanOutput) => {\n this.updateState({\n props: {\n datavalue: res.text\n }\n } as WmBarcodescannerState);\n this.invokeEventCallback('onSuccess', [null, this.proxy]);\n })\n }\n\n renderWidget(props: WmBarcodescannerProps) {\n return (\n <ScanConsumer>\n {(scanService: ScanService) => {\n this.scanner = scanService;\n return <View style={this.styles.root}>\n <WmButton iconclass={props.iconclass} styles={this.styles.button} onTap={this.onScanTap.bind(this)} caption={props.caption} iconsize={props.iconsize}></WmButton>\n </View>\n }}\n </ScanConsumer>\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,SAASC,YAAY,QAAqB,oDAAoD;AAE9F,OAAOC,qBAAqB,MAAM,wBAAwB;AAC1D,SAASC,aAAa,QAAgC,yBAAyB;AAC/E,OAAOC,QAAQ,MAAM,oEAAoE;AAEzF,OAAO,MAAMC,qBAAqB,SAASL,kBAAkB,CAAwB;AAErF,eAAe,MAAMM,gBAAgB,SAASP,aAAa,CAAuE;EAEhIQ,WAAW,CAACC,KAA4B,EAAE;IACxC,KAAK,CAACA,KAAK,EAAEL,aAAa,EAAE,IAAID,qBAAqB,EAAE,CAAC;IAAC,iCAF5B,IAAI;EAGnC;EAEAO,SAAS,GAAG;IACV,MAAMC,MAAiB,GAAG;MACxBC,aAAa,EAAE,IAAI,CAACC,KAAK,CAACJ,KAAK,CAACK;IAClC,CAAC;IACD,IAAI,CAACC,OAAO,CAACC,WAAW,CAACL,MAAM,CAAC,CAACM,IAAI,CAAEC,GAAe,IAAK;MACzD,IAAI,CAACC,WAAW,CAAC;QACfV,KAAK,EAAE;UACLW,SAAS,EAAEF,GAAG,CAACG;QACjB;MACF,CAAC,CAA0B;MAC3B,IAAI,CAACC,mBAAmB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAACC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC;EACJ;EAEAC,YAAY,CAACf,KAA4B,EAAE;IACzC,oBACE,oBAAC,YAAY,QACTgB,WAAwB,IAAK;MAC7B,IAAI,CAACV,OAAO,GAAGU,WAAW;MAC1B,oBAAO,oBAAC,IAAI;QAAC,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;MAAK,gBACnC,oBAAC,QAAQ;QAAC,SAAS,EAAElB,KAAK,CAACmB,SAAU;QAAC,MAAM,EAAE,IAAI,CAACF,MAAM,CAACG,MAAO;QAAC,KAAK,EAAE,IAAI,CAACnB,SAAS,CAACoB,IAAI,CAAC,IAAI,CAAE;QAAC,OAAO,EAAErB,KAAK,CAACsB,OAAQ;QAAC,QAAQ,EAAEtB,KAAK,CAACuB;MAAS,EAAY,CAC5J;IACT,CAAC,CACY;EAEnB;AACF"}
1
+ {"version":3,"names":["React","View","BaseComponent","BaseComponentState","ScanConsumer","WmBarcodescannerProps","DEFAULT_CLASS","WmButton","WmBarcodescannerState","WmBarcodescanner","constructor","props","onScanTap","params","barcodeFormat","state","barcodeformat","scanner","scanBarcode","then","res","updateState","datavalue","text","invokeEventCallback","proxy","renderWidget","scanService","styles","root","iconclass","button","bind","caption","iconsize"],"sources":["barcodescanner.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { ScanInput, ScanOutput } from '@wavemaker/app-rn-runtime/variables/device/scan/scan.operation';\nimport { ScanConsumer, ScanService } from '@wavemaker/app-rn-runtime/core/device/scan-service';\n\nimport WmBarcodescannerProps from './barcodescanner.props';\nimport { DEFAULT_CLASS, WmBarcodescannerStyles } from './barcodescanner.styles';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\n\nexport class WmBarcodescannerState extends BaseComponentState<WmBarcodescannerProps> {}\n\nexport default class WmBarcodescanner extends BaseComponent<WmBarcodescannerProps, WmBarcodescannerState, WmBarcodescannerStyles> {\n private scanner: ScanService = null as any;\n constructor(props: WmBarcodescannerProps) {\n super(props, DEFAULT_CLASS, new WmBarcodescannerProps());\n }\n\n onScanTap() {\n const params: ScanInput = {\n barcodeFormat: this.state.props.barcodeformat\n };\n this.scanner.scanBarcode(params).then((res: ScanOutput) => {\n this.updateState({\n props: {\n datavalue: res.text\n }\n } as WmBarcodescannerState, () => {\n this.invokeEventCallback('onSuccess', [null, this.proxy]);\n });\n })\n }\n\n renderWidget(props: WmBarcodescannerProps) {\n return (\n <ScanConsumer>\n {(scanService: ScanService) => {\n this.scanner = scanService;\n return <View style={this.styles.root}>\n <WmButton iconclass={props.iconclass} styles={this.styles.button} onTap={this.onScanTap.bind(this)} caption={props.caption} iconsize={props.iconsize}></WmButton>\n </View>\n }}\n </ScanConsumer>\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,SAASC,YAAY,QAAqB,oDAAoD;AAE9F,OAAOC,qBAAqB,MAAM,wBAAwB;AAC1D,SAASC,aAAa,QAAgC,yBAAyB;AAC/E,OAAOC,QAAQ,MAAM,oEAAoE;AAEzF,OAAO,MAAMC,qBAAqB,SAASL,kBAAkB,CAAwB;AAErF,eAAe,MAAMM,gBAAgB,SAASP,aAAa,CAAuE;EAEhIQ,WAAW,CAACC,KAA4B,EAAE;IACxC,KAAK,CAACA,KAAK,EAAEL,aAAa,EAAE,IAAID,qBAAqB,EAAE,CAAC;IAAC,iCAF5B,IAAI;EAGnC;EAEAO,SAAS,GAAG;IACV,MAAMC,MAAiB,GAAG;MACxBC,aAAa,EAAE,IAAI,CAACC,KAAK,CAACJ,KAAK,CAACK;IAClC,CAAC;IACD,IAAI,CAACC,OAAO,CAACC,WAAW,CAACL,MAAM,CAAC,CAACM,IAAI,CAAEC,GAAe,IAAK;MACzD,IAAI,CAACC,WAAW,CAAC;QACfV,KAAK,EAAE;UACLW,SAAS,EAAEF,GAAG,CAACG;QACjB;MACF,CAAC,EAA2B,MAAM;QAChC,IAAI,CAACC,mBAAmB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAACC,KAAK,CAAC,CAAC;MAC3D,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEAC,YAAY,CAACf,KAA4B,EAAE;IACzC,oBACE,oBAAC,YAAY,QACTgB,WAAwB,IAAK;MAC7B,IAAI,CAACV,OAAO,GAAGU,WAAW;MAC1B,oBAAO,oBAAC,IAAI;QAAC,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;MAAK,gBACnC,oBAAC,QAAQ;QAAC,SAAS,EAAElB,KAAK,CAACmB,SAAU;QAAC,MAAM,EAAE,IAAI,CAACF,MAAM,CAACG,MAAO;QAAC,KAAK,EAAE,IAAI,CAACnB,SAAS,CAACoB,IAAI,CAAC,IAAI,CAAE;QAAC,OAAO,EAAErB,KAAK,CAACsB,OAAQ;QAAC,QAAQ,EAAEtB,KAAK,CAACuB;MAAS,EAAY,CAC5J;IACT,CAAC,CACY;EAEnB;AACF"}