@wavemaker/app-rn-runtime 11.3.1-rc.5248 → 11.4.0-next.25501
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- app-rn-runtime/actions/notification-action.js +4 -5
- app-rn-runtime/actions/notification-action.js.map +1 -1
- app-rn-runtime/components/container/tabs/tabpane/tabpane.component.js +1 -4
- app-rn-runtime/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
- app-rn-runtime/components/container/tabs/tabs.component.js +14 -28
- app-rn-runtime/components/container/tabs/tabs.component.js.map +1 -1
- app-rn-runtime/components/data/form/form.component.js +1 -1
- app-rn-runtime/components/data/form/form.component.js.map +1 -1
- app-rn-runtime/components/data/list/list.component.js +3 -4
- app-rn-runtime/components/data/list/list.component.js.map +1 -1
- app-rn-runtime/components/device/barcodescanner/barcodescanner.component.js +1 -2
- app-rn-runtime/components/device/barcodescanner/barcodescanner.component.js.map +1 -1
- app-rn-runtime/components/device/camera/camera.component.js +4 -6
- app-rn-runtime/components/device/camera/camera.component.js.map +1 -1
- app-rn-runtime/components/device/camera/camera.props.js +1 -0
- app-rn-runtime/components/device/camera/camera.props.js.map +1 -1
- app-rn-runtime/components/input/baseinput/baseinput.component.js +0 -7
- app-rn-runtime/components/input/baseinput/baseinput.component.js.map +1 -1
- app-rn-runtime/components/page/partial-container/partial-container.styles.js +1 -2
- app-rn-runtime/components/page/partial-container/partial-container.styles.js.map +1 -1
- app-rn-runtime/core/injector.js +1 -15
- app-rn-runtime/core/injector.js.map +1 -1
- app-rn-runtime/core/tappable.component.js +2 -9
- app-rn-runtime/core/tappable.component.js.map +1 -1
- app-rn-runtime/core/utils.js +0 -6
- app-rn-runtime/core/utils.js.map +1 -1
- app-rn-runtime/package.json +5 -5
- app-rn-runtime/runtime/App.js +14 -13
- app-rn-runtime/runtime/App.js.map +1 -1
- app-rn-runtime/runtime/App.navigator.js +12 -2
- app-rn-runtime/runtime/App.navigator.js.map +1 -1
- app-rn-runtime/runtime/services/device/camera-service.js +6 -28
- app-rn-runtime/runtime/services/device/camera-service.js.map +1 -1
- app-rn-runtime/runtime/services/device/scan-service.js +14 -15
- app-rn-runtime/runtime/services/device/scan-service.js.map +1 -1
- app-rn-runtime/variables/device/camera/capture-image.operation.js.map +1 -1
- app-rn-runtime/variables/device/camera/capture-video.operation.js.map +1 -1
- app-rn-runtime/variables/device/file/upload-file.operation.js +21 -43
- app-rn-runtime/variables/device/file/upload-file.operation.js.map +1 -1
- app-rn-runtime/variables/service-variable.js +7 -12
- app-rn-runtime/variables/service-variable.js.map +1 -1
|
@@ -16,11 +16,9 @@ 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 =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.config.onOk && this.config.onOk(this);
|
|
23
|
-
}, o.content = this.config.partialContent;
|
|
19
|
+
o.onClose = this.config.onClose;
|
|
20
|
+
o.onClick = this.config.onOk;
|
|
21
|
+
o.content = this.config.partialContent;
|
|
24
22
|
o.hideOnClick = options.hideOnClick || true;
|
|
25
23
|
const toasterPosition = options.position || params.toasterPosition || 'bottom right';
|
|
26
24
|
const placement = toasterPosition.split(' ')[0];
|
|
@@ -45,6 +43,7 @@ export class NotificationAction extends BaseAction {
|
|
|
45
43
|
if (!o.styles) {
|
|
46
44
|
o.styles = {};
|
|
47
45
|
}
|
|
46
|
+
o.styles.backgroundColor = 'black';
|
|
48
47
|
}
|
|
49
48
|
if (!params.duration) {
|
|
50
49
|
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","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 =
|
|
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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"}
|
|
@@ -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);
|
|
38
38
|
super.componentDidMount();
|
|
39
39
|
}
|
|
40
40
|
_onSelect() {
|
|
@@ -43,9 +43,6 @@ 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
|
-
}
|
|
49
46
|
renderWidget(props) {
|
|
50
47
|
return /*#__PURE__*/React.createElement(View, {
|
|
51
48
|
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","
|
|
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,4 +1,3 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
1
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3
2
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
4
3
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
@@ -26,7 +25,7 @@ export default class WmTabs extends BaseComponent {
|
|
|
26
25
|
_defineProperty(this, "panResponder", PanResponder.create({
|
|
27
26
|
onMoveShouldSetPanResponder: () => true,
|
|
28
27
|
onPanResponderGrant: () => {
|
|
29
|
-
this.tabPosition.
|
|
28
|
+
this.tabPosition.setOffset(this.tabPosition._value);
|
|
30
29
|
},
|
|
31
30
|
onPanResponderMove: Animated.event([null, {
|
|
32
31
|
dx: this.tabPosition
|
|
@@ -69,14 +68,13 @@ export default class WmTabs extends BaseComponent {
|
|
|
69
68
|
this.forceUpdate();
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
|
-
|
|
71
|
+
setTabPosition() {
|
|
73
72
|
var _this$tabLayout;
|
|
74
|
-
|
|
75
|
-
return Animated.timing(this.tabPosition, {
|
|
73
|
+
Animated.timing(this.tabPosition, {
|
|
76
74
|
useNativeDriver: true,
|
|
77
|
-
toValue: -1 *
|
|
75
|
+
toValue: -1 * this.state.selectedTabIndex * (((_this$tabLayout = this.tabLayout) === null || _this$tabLayout === void 0 ? void 0 : _this$tabLayout.width) || 0),
|
|
78
76
|
duration: 200,
|
|
79
|
-
easing: Easing.
|
|
77
|
+
easing: Easing.linear
|
|
80
78
|
}).start();
|
|
81
79
|
}
|
|
82
80
|
setTabShown(tabIndex, callback) {
|
|
@@ -96,27 +94,11 @@ export default class WmTabs extends BaseComponent {
|
|
|
96
94
|
this.tabPanes[this.newIndex || this.state.selectedTabIndex] = tabPane;
|
|
97
95
|
this.newIndex++;
|
|
98
96
|
}
|
|
99
|
-
selectTabPane(tabPane) {
|
|
100
|
-
this.onChange(this.tabPanes.indexOf(tabPane));
|
|
101
|
-
}
|
|
102
|
-
goToTab(index) {
|
|
103
|
-
this.onChange(index);
|
|
104
|
-
}
|
|
105
|
-
prev() {
|
|
106
|
-
this.onChange(this.state.selectedTabIndex - 1);
|
|
107
|
-
}
|
|
108
|
-
next() {
|
|
109
|
-
this.onChange(this.state.selectedTabIndex + 1);
|
|
110
|
-
}
|
|
111
97
|
onChange(newIndex) {
|
|
112
|
-
if (newIndex < 0 || newIndex >= this.tabPanes.length) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
98
|
const oldIndex = this.state.selectedTabIndex;
|
|
116
99
|
const deselectedTab = this.tabPanes[this.state.selectedTabIndex];
|
|
117
100
|
this.newIndex = newIndex;
|
|
118
101
|
deselectedTab === null || deselectedTab === void 0 ? void 0 : deselectedTab._onDeselect();
|
|
119
|
-
this.animate(newIndex);
|
|
120
102
|
this.updateState({
|
|
121
103
|
selectedTabIndex: newIndex
|
|
122
104
|
}, () => {
|
|
@@ -134,6 +116,7 @@ export default class WmTabs extends BaseComponent {
|
|
|
134
116
|
icon: '',
|
|
135
117
|
key: `tab-${p.props.title}-${i}`
|
|
136
118
|
}));
|
|
119
|
+
this.setTabPosition();
|
|
137
120
|
return /*#__PURE__*/React.createElement(View, {
|
|
138
121
|
style: [this.styles.root, {
|
|
139
122
|
borderBottomWidth: 0
|
|
@@ -173,7 +156,7 @@ export default class WmTabs extends BaseComponent {
|
|
|
173
156
|
alignSelf: 'flex-start'
|
|
174
157
|
},
|
|
175
158
|
onLayout: this.setTabPaneHeights.bind(this, i)
|
|
176
|
-
}, p);
|
|
159
|
+
}, this.state.tabsShown[i] ? p : null);
|
|
177
160
|
}))));
|
|
178
161
|
}
|
|
179
162
|
renderWidget(props) {
|
|
@@ -183,6 +166,7 @@ export default class WmTabs extends BaseComponent {
|
|
|
183
166
|
icon: '',
|
|
184
167
|
key: `tab-${p.props.title}-${i}`
|
|
185
168
|
}));
|
|
169
|
+
this.setTabPosition();
|
|
186
170
|
return /*#__PURE__*/React.createElement(View, {
|
|
187
171
|
style: this.styles.root
|
|
188
172
|
}, /*#__PURE__*/React.createElement(View, {
|
|
@@ -195,13 +179,15 @@ export default class WmTabs extends BaseComponent {
|
|
|
195
179
|
data: headerData,
|
|
196
180
|
selectedTabIndex: this.state.selectedTabIndex,
|
|
197
181
|
onIndexChange: this.onChange.bind(this)
|
|
198
|
-
}), /*#__PURE__*/React.createElement(View
|
|
182
|
+
}), /*#__PURE__*/React.createElement(View
|
|
183
|
+
//{...this.panResponder.panHandlers}
|
|
184
|
+
, {
|
|
199
185
|
style: {
|
|
200
186
|
width: '100%',
|
|
201
|
-
height: this.tabPaneHeights[this.state.selectedTabIndex],
|
|
187
|
+
//height: this.tabPaneHeights[this.state.selectedTabIndex],
|
|
202
188
|
overflow: 'hidden'
|
|
203
189
|
}
|
|
204
|
-
}
|
|
190
|
+
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
205
191
|
style: {
|
|
206
192
|
flexDirection: 'row',
|
|
207
193
|
flexWrap: 'nowrap',
|
|
@@ -217,7 +203,7 @@ export default class WmTabs extends BaseComponent {
|
|
|
217
203
|
alignSelf: 'flex-start'
|
|
218
204
|
},
|
|
219
205
|
onLayout: this.setTabPaneHeights.bind(this, i)
|
|
220
|
-
}, p);
|
|
206
|
+
}, this.state.tabsShown[i] ? p : null);
|
|
221
207
|
}))));
|
|
222
208
|
}
|
|
223
209
|
}
|
|
@@ -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","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","panResponder","panHandlers"],"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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"}
|
|
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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"}
|
|
@@ -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.
|
|
57
|
+
w.formwidget = 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","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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"}
|
|
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":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AACjG,SAASC,SAAS,QAAmC,sCAAsC;AAC3F,SAASC,QAAQ,EAAEC,IAAI,EAAEC,OAAO,EAAEC,GAAG,EAAEC,GAAG,QAAQ,QAAQ;AAE1D,OAAOC,OAAO,MAAM,kEAAkE;AACtF,OAAOC,MAAM,MAAM,gEAAgE;AAEnF,OAAOC,SAAS,MAAM,sEAAsE;AAC5F,SAASC,aAAa,QAAsB,8CAA8C;AAE1F,OAAOC,WAAW,MAAM,cAAc;AACtC,SAASC,aAAa,QAAsB,eAAe;AAC3D,SAAqBC,cAAc,QAAQ,yCAAyC;AAGpF,OAAO,MAAMC,WAAW,SAASd,kBAAkB,CAAc;EAAA;IAAA;IAAA,iCACrD,KAAK;IAAA,8BAC0D,SAAS;IAAA,iCAChE,EAAE;IAAA,uCACK,KAAK;EAAA;AAChC;AACA,eAAe,MAAMe,MAAM,SAAShB,aAAa,CAAyC;EAC5C;;EAKuB;EACnEiB,WAAW,CAACC,KAAkB,EAAE;IAC9B,KAAK,CAACA,KAAK,EAAEL,aAAa,EAAE,IAAID,WAAW,EAAE,CAAC;IAAC,oCAPT,EAAE;IAAA;IAAA,oCAEQ,CAAC,CAAC;IAAA;IAAA;IAAA,qCAGW,CAAC,CAAC;IAAA,8CAKlCT,QAAQ,CAAC,IAAI,CAACgB,YAAY,EAAE,GAAG,CAAC;EAF/D;EAIAC,iBAAiB,GAAG;IAClB,KAAK,CAACA,iBAAiB,EAAE;IACzB,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAACH,KAAK,CAACI,UAAU,CAAC;EAC9C;EAEAD,gBAAgB,CAACE,SAAiB,EAAE;IAClC,IAAIC,OAAO,GAAG,IAAI,CAACC,MAAM;IACzB,OAAOD,OAAO,EAAE;MACd,IAAIlB,GAAG,CAACkB,OAAO,EAAE,YAAY,CAAC,KAAKD,SAAS,EAAE;QAC5C,IAAI,CAACG,aAAa,GAAGF,OAAO;QAC5B;MACF;MACAA,OAAO,GAAGA,OAAO,CAACC,MAAM;IAC1B;EACF;EAEAE,kBAAkB,CAChBC,UAA8B,EAC9BC,WAA4D,EAC5D;IACAxB,OAAO,CAACuB,UAAU,EAAGE,CAAc,IAAK;MACtC,IAAI,CAACA,CAAC,CAACC,IAAI,EAAE;QACXD,CAAC,CAACC,IAAI,GAAG,IAAI;QACbD,CAAC,CAACE,UAAU,GAAGF,CAAC,CAACZ,KAAK,CAACe,IAAI,IAAIJ,WAAW,CAACC,CAAC,CAACZ,KAAK,CAACe,IAAI,CAAC;MAC1D;IACF,CAAC,CAAC;IAEF,IAAI,CAACL,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAE9BD,UAAU,CAACvB,OAAO,CAAE6B,CAAc,IAAK;MACrC,IAAIA,CAAC,CAAChB,KAAK,CAACe,IAAI,EAAE;QAChB1B,GAAG,CAAC,IAAI,CAAC4B,UAAU,EAAED,CAAC,CAAChB,KAAK,CAACe,IAAI,EAAEC,CAAC,CAAC;MACvC;IACF,CAAC,CAAC;IAEF,IAAI,CAACE,aAAa,EAAE;IACpB,IAAI,CAACC,iBAAiB,EAAE;;IAExB;IACA,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;MACxB,IAAI,CAACA,cAAc,GAAG,CAAC,CAAC;MACxBV,UAAU,CAACvB,OAAO,CAAEyB,CAAc,IAAK;QACrC,MAAMG,IAAI,GAAG3B,GAAG,CAACwB,CAAC,CAACZ,KAAK,EAAE,SAAS,CAAC,IAAIY,CAAC,CAACZ,KAAK,CAACe,IAAI;QACpD,IAAIA,IAAI,EAAE;UACR1B,GAAG,CAAC,IAAI,CAAC+B,cAAc,EAAEL,IAAI,EAAEH,CAAC,CAACZ,KAAK,CAACqB,SAAS,CAAC;QACnD;MACF,CAAC,CAAC;IACJ;EACF;EAEAH,aAAa,GAAG;IAAA;IACd,IAAII,QAAQ,GAAG,IAAI,CAACC,KAAK,CAACvB,KAAK,CAACwB,QAAQ,4BAAI,IAAI,CAAChB,aAAa,wDAAlB,oBAAoBe,KAAK,CAACvB,KAAK,CAACwB,QAAQ;IACpF,IAAI,CAACF,QAAQ,IAAK,IAAI,CAACd,aAAa,IAAI,IAAI,CAACe,KAAK,CAACvB,KAAK,CAACwB,QAAS,EAAE;MAClE;IACF;IACArC,OAAO,CAAC,IAAI,CAACuB,UAAU,EAAGe,SAAsB,IAAK;MAAA;MACnD,IAAIC,EAAE,GAAG,qBAAAD,SAAS,CAACzB,KAAK,qDAAf,iBAAiBe,IAAI,KAAI,IAAI,CAACJ,WAAW,CAACc,SAAS,CAACzB,KAAK,CAACe,IAAI,CAAC;MACxE,IAAI,CAACW,EAAE,EAAE;QACPA,EAAE,GAAGxC,IAAI,CAAC,IAAI,CAACyB,WAAW,EAAGe,EAAgC,IAAK;UAChE,OAAOtC,GAAG,CAACsC,EAAE,EAAE,eAAe,CAAC,KAAKD,SAAS,CAACzB,KAAK,CAACe,IAAI;QAC1D,CAAC,CAAC;MACJ;MACA,IAAIY,GAAG,GAAGvC,GAAG,CAACqC,SAAS,EAAE,SAAS,CAAC,IAAIrC,GAAG,CAACsC,EAAE,EAAE,YAAY,CAAC;MAC5DA,EAAE,IAAIA,EAAE,CAACE,QAAQ,CAAC;QAAEC,SAAS,EAAE;MAAK,CAAC,CAAC;MACtCJ,SAAS,CAACK,WAAW,CAAC;QACpB9B,KAAK,EAAE;UACLqB,SAAS,EAAEjC,GAAG,CAACkC,QAAQ,EAAEK,GAAG;QAC9B;MACF,CAAC,CAAqB;IACxB,CAAC,CAAC;EACJ;EAEAI,2BAA2B,CAACN,SAAsB,EAAE;IAClD,IAAIA,SAAS,EAAE;MACb,MAAMO,EAAE,GAAGP,SAAS,CAACF,KAAK,CAACvB,KAAK,CAACiC,YAAY;MAC7C,IAAIjD,SAAS,CAACgD,EAAE,CAAC,IAAIA,EAAE,KAAK,IAAI,IAAI,IAAI,CAACtB,UAAU,EAAE;QAAA;QACnD,IAAIwB,KAAK,GAAG,sBAAAT,SAAS,CAACzB,KAAK,sDAAf,kBAAiBe,IAAI,KAAI,IAAI,CAACJ,WAAW,CAACc,SAAS,CAACzB,KAAK,CAACe,IAAI,CAAC;QAC3E,IAAI,CAACmB,KAAK,EAAE;UACVA,KAAK,GAAGhD,IAAI,CAAC,IAAI,CAACyB,WAAW,EAAGe,EAAgC,IAAK;YACnE,OAAOtC,GAAG,CAACsC,EAAE,EAAE,eAAe,CAAC,KAAKD,SAAS,CAACzB,KAAK,CAACe,IAAI;UAC1D,CAAC,CAAC;QACJ;QACA,IAAImB,KAAK,EAAE;UACTA,KAAK,CAACN,QAAQ,CAAC;YAAEC,SAAS,EAAE;UAAK,CAAC,CAAC;UACnCK,KAAK,CAACJ,WAAW,CAAC;YAChB9B,KAAK,EAAE;cACLqB,SAAS,EAAEW;YACb;UACF,CAAC,EAAE,IAAI,CAACG,mBAAmB,CAACC,IAAI,CAACX,SAAS,EAAE,eAAe,EAAE,CAACY,SAAS,EAAEZ,SAAS,EAAEO,EAAE,CAAC,CAAC,CAAC;QAC3F;MACF;IACF;EACF;EAEAb,iBAAiB,CAACM,SAAuB,EAAE;IACzC,IAAIA,SAAS,EAAE;MACb,IAAI,CAACM,2BAA2B,CAACN,SAAS,CAAC;MAC3C;IACF;IACAtC,OAAO,CAAC,IAAI,CAACuB,UAAU,EAAGE,CAAc,IAAK;MAC3C,IAAI,CAACmB,2BAA2B,CAACnB,CAAC,CAAC;IACrC,CAAC,CAAC;EACJ;EAEA0B,SAAS,GAAG;IACVnD,OAAO,CAAC,IAAI,CAACuB,UAAU,EAAG6B,EAAe,IAAK;MAC5CA,EAAE,CAACT,WAAW,CAAC;QACb9B,KAAK,EAAG;UACNqB,SAAS,EAAE;QACb;MACF,CAAC,EAAsB,MAAM;QACzB,MAAMmB,EAAE,GAAGD,EAAE,CAACvC,KAAK,CAACyC,OAAO,IAAIF,EAAE,CAACvC,KAAK,CAACe,IAAI;QAC5C,IAAIyB,EAAE,EAAE;UAAA;UACN,IAAIE,MAAsD,GAAG,IAAI,CAAC/B,WAAW,CAAC6B,EAAE,CAAC;UACjF,IAAI,CAACE,MAAM,EAAE;YACXA,MAAM,GAAGxD,IAAI,CAAC,IAAI,CAACyB,WAAW,EAAGe,EAAgC,IAAK;cACpE,OAAOtC,GAAG,CAACsC,EAAE,EAAE,eAAe,CAAC,KAAKa,EAAE,CAACvC,KAAK,CAACe,IAAI;YACnD,CAAC,CAAC;UACJ;UACA2B,MAAM,CAACZ,WAAW,CAAC;YACjBa,OAAO,EAAE,IAAI;YACb3C,KAAK,EAAG;cACNqB,SAAS,EAAE;YACb;UACF,CAAC,EAAE,MAAMkB,EAAE,CAACT,WAAW,CAAC;YACtBa,OAAO,EAAE;UACX,CAAC,CAAqB,CAAC;UACvB,WAAAD,MAAM,4CAAN,QAAQE,KAAK,EAAE;QACjB;MACF,CAAC,CACF;IACH,CAAC,CAAC;EACJ;EAEAC,MAAM,GAAG;IACP,IAAI,CAACC,oBAAoB,EAAE;EAC7B;EAEAC,gBAAgB,CAAChC,IAAY,EAAEiC,IAAS,EAAEC,IAAS,EAAE;IACnD,QAAQlC,IAAI;MACV,KAAK,UAAU;QACb,IAAIiC,IAAI,EAAE;UACR,IAAI,CAAC9B,aAAa,EAAE;QACtB;IAAC;EAEP;EACA;EACAgC,sBAAsB,GAAG;IACvB,IAAIP,OAAO,GAAG,IAAI;IAClBxD,OAAO,CAAC,IAAI,CAACuB,UAAU,EAAGwB,KAAK,IAAK;MAClC,MAAMiB,GAAG,GAAGjB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEX,KAAK,CAACvB,KAAK,CAACqB,SAAS;MAExC,MAAM+B,UAAU,GAAGhE,GAAG,CAAC8C,KAAK,EAAE,kBAAkB,CAAC;MACjDkB,UAAU,IAAIA,UAAU,CAAClB,KAAK,CAAC;MAC/B,IAAI,CAACiB,GAAG,IAAIjB,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEX,KAAK,CAACvB,KAAK,CAACqD,QAAQ,EAAE;QACvCV,OAAO,GAAG,KAAK;QACf,MAAMW,GAAG,GAAGlE,GAAG,CAAC8C,KAAK,CAACqB,wBAAwB,EAAE,UAAU,CAAC,IAAIrB,KAAK,CAACX,KAAK,CAACvB,KAAK,CAACwD,iBAAiB;QAClGtB,KAAK,CAACJ,WAAW,CAAC;UAAEa,OAAO,EAAEA,OAAO;UAAE3C,KAAK,EAAE;YACzCwD,iBAAiB,EAAEF;UACrB;QAAC,CAAC,CAAqB;QACzBpB,KAAK,CAACpB,UAAU,CAAC2C,QAAQ,IAAIvB,KAAK,CAACpB,UAAU,CAAC2C,QAAQ,CAACN,GAAG,CAAC;MAC7D;MACA;MACA,IAAIjB,KAAK,CAACpB,UAAU,CAACS,KAAK,CAACoB,OAAO,KAAK,KAAK,EAAE;QAC5CA,OAAO,GAAG,KAAK;MACjB;IACF,CAAC,CAAC;IACF,OAAOA,OAAO;EAChB;;EAEA;EACA1C,YAAY,CAACyD,KAAW,EAAE;IACxBA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,cAAc,EAAE;IACvB,MAAMrC,QAAQ,GAAG,IAAI,CAACC,KAAK,CAACvB,KAAK,CAAC4D,UAAU,IAAI,IAAI,CAACxC,cAAc;IAEnE,IAAI,CAAC,IAAI,CAAC8B,sBAAsB,EAAE,EAAE;MAClC,OAAO,KAAK;IACd;IACA,IAAI,IAAI,CAAClD,KAAK,CAAC6D,cAAc,EAAE;MAC7B,IAAI,CAAC1B,mBAAmB,CAAC,gBAAgB,EAAE,CAAE,IAAI,EAAE,IAAI,CAAC2B,KAAK,EAAExC,QAAQ,CAAE,CAAC;IAC5E;IACA,IAAI,IAAI,CAACtB,KAAK,CAAC+D,UAAU,EAAE;MACzB,IAAI,CAAC/D,KAAK,CAAC+D,UAAU,CAACzC,QAAQ,EAAI0C,IAAS,IAAK;QAC9C,IAAI,CAAC7B,mBAAmB,CAAC,UAAU,EAAE,CAAE,IAAI,EAAE,IAAI,CAAC2B,KAAK,EAAExC,QAAQ,CAAE,CAAC;QACpE,IAAI,CAAC2C,UAAU,CAAC7E,GAAG,CAAC4E,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;MACjD,CAAC,EAAKE,KAAU,IAAK;QACnB,IAAI,CAAC/B,mBAAmB,CAAC,UAAU,EAAE,CAAE,IAAI,EAAE,IAAI,CAAC2B,KAAK,EAAExC,QAAQ,CAAE,CAAC;QACpE,IAAI,CAAC2C,UAAU,CAACC,KAAK,EAAE,EAAE,CAAC;MAC5B,CAAC,CAAE;IACL,CAAC,MAAM;MACL,IAAI,CAAC/B,mBAAmB,CAAC,UAAU,EAAE,CAAE,IAAI,EAAE,IAAI,CAAC2B,KAAK,EAAExC,QAAQ,CAAE,CAAC;IACtE;EACF;EAEA2C,UAAU,CAACE,QAAa,EAAEC,MAAc,EAAEV,KAAW,EAAE;IACrD,IAAI,CAACvB,mBAAmB,CAAC,UAAU,EAAE,CAAE,IAAI,EAAE,IAAI,CAAC2B,KAAK,EAAEK,QAAQ,CAAE,CAAC;IACpE,IAAIC,MAAM,EAAE;MACV,IAAI,CAACjC,mBAAmB,CAAC,WAAW,EAAE,CAAE,IAAI,EAAE,IAAI,CAAC2B,KAAK,EAAEK,QAAQ,CAAE,CAAC;MACrE,CAAC,IAAI,CAACnE,KAAK,CAACqE,SAAS,IAAI,IAAI,CAAC9C,KAAK,CAACvB,KAAK,CAACsE,WAAW,IAAI,IAAI,CAACC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAChD,KAAK,CAACvB,KAAK,CAACsE,WAAW,CAAC;IACtH,CAAC,MAAM;MACL,IAAI,CAACnC,mBAAmB,CAAC,SAAS,EAAE,CAAE,IAAI,EAAE,IAAI,CAAC2B,KAAK,EAAEK,QAAQ,CAAE,CAAC;MACnE,CAAC,IAAI,CAACnE,KAAK,CAACwE,OAAO,IAAI,IAAI,CAACD,aAAa,CAAC,OAAO,EAAE,IAAI,CAAChD,KAAK,CAACvB,KAAK,CAACyE,YAAY,IAAIrF,GAAG,CAAC+E,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/G;EACF;EAEAO,gBAAgB,CAAC/C,GAAW,EAAEwB,GAAQ,EAAE;IACtC,MAAM7C,OAAO,GAAG,IAAI,CAACc,cAAc,IAAI,CAAC,CAAC;IACzC,IAAIO,GAAG,EAAE;MACPtC,GAAG,CAACiB,OAAO,EAAEqB,GAAG,EAAEwB,GAAG,CAAC;IACxB,CAAC,MAAM;MACLwB,MAAM,CAACC,MAAM,CAACtE,OAAO,EAAE6C,GAAG,CAAC;IAC7B;IACA,IAAI,CAAC/B,cAAc,GAAGd,OAAO;IAC7B,IAAI,CAACwB,WAAW,CAAC;MAAE9B,KAAK,EAAE;QAAE4D,UAAU,EAAEtD;MAAQ;IAAC,CAAC,CAAgB;IAClE,IAAI,CAACE,aAAa,IAAI,IAAI,CAACA,aAAa,CAACkE,gBAAgB,CAACrC,SAAS,EAAE,IAAI,CAACjB,cAAc,CAAC;EAC3F;EAEAmD,aAAa,CACXM,IAAsE,EACtEC,OAAe,EACf;IACA,IAAI,IAAI,CAACvD,KAAK,CAACvB,KAAK,CAAC+E,aAAa,KAAK,QAAQ,EAAE;MAC7C,IAAI,CAACnD,QAAQ,CAAC;QACZiD,IAAI,EAAEA,IAAI;QACVC,OAAO,EAAEA,OAAO;QAChBE,aAAa,EAAE;MACjB,CAAC,CAAgB;MACnB;IACF;IACA,IAAI,CAACC,OAAO,CAACC,SAAS,CAAC;MACrBnE,IAAI,EAAE,IAAI;MAAEoE,SAAS,EAAE,EAAE;MAAEC,MAAM,EAAE;QAACC,MAAM,EAAE;MAAC,CAAC;MAC9CC,IAAI,EAAER,OAAO;MACbD,IAAI,EAAEA,IAAI;MACVU,WAAW,EAAE;IACf,CAAC,CAAC;EACJ;EAEAC,UAAU,GAAG;IACX,IAAI,CAAC5D,QAAQ,CAAC;MACZoD,aAAa,EAAE;IACjB,CAAC,CAAgB;EACnB;EAEOS,cAAc,CAACzF,KAAkB,EAAC;IACvC,oBACE,oBAAC,IAAI;MAAC,KAAK,EAAE,IAAI,CAACoF,MAAM,CAACM;IAAK,GACvB,IAAI,CAAC1F,KAAK,CAAC2F,SAAS,IAAI,IAAI,CAAC3F,KAAK,CAAC4F,KAAK,IAAI,IAAI,CAAC5F,KAAK,CAAC6F,UAAU,gBAChE,oBAAC,IAAI;MAAC,KAAK,EAAE,IAAI,CAACT,MAAM,CAACU;IAAQ,gBAC/B,oBAAC,IAAI;MAAC,KAAK,EAAE;QAACC,IAAI,EAAE,CAAC;QAAEC,aAAa,EAAE;MAAK;IAAE,gBAC3C,oBAAC,MAAM;MAAC,MAAM,EAAE,IAAI,CAACZ,MAAM,CAACa,QAAS;MAAC,SAAS,EAAE,IAAI,CAACjG,KAAK,CAAC2F;IAAU,EAAU,eAChF,oBAAC,IAAI,QAED/F,cAAc,CAAC,IAAI,CAACsG,KAAK,EAAE,CAAC,CAAC,EAAsB;MACjD,GAAG,IAAI,CAACd,MAAM,CAACQ,KAAK,CAACF,IAAI;MACzBS,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,IAAI,CAAChB,MAAM,CAACQ,KAAK,CAACN,IAAI,CAACe;IACjC,CAAC,CAAC,EAGFzG,cAAc,CAAC,IAAI,CAACsG,KAAK,EAAE,CAAC,CAAC,EAAsB;MACjD,GAAG,IAAI,CAACd,MAAM,CAACS,UAAU,CAACH,IAAI;MAC9BS,KAAK,EAAE,GAAG;MACVC,MAAM,EAAE,IAAI,CAAChB,MAAM,CAACS,UAAU,CAACP,IAAI,CAACe;IACtC,CAAC,CAAC,CAEC,CACF,CACF,GACL,IAAI,EACP,IAAI,CAAC9E,KAAK,CAACyD,aAAa,gBAAG,oBAAC,SAAS;MAAC,IAAI,EAAE,IAAI,CAACzD,KAAK,CAACsD,IAAK;MAAC,OAAO,EAAE,IAAI,CAACtD,KAAK,CAACuD,OAAQ;MAAC,SAAS,EAAE,KAAM;MAAC,OAAO,EAAE,IAAI,CAACU,UAAU,CAACpD,IAAI,CAAC,IAAI;IAAE,EAAa,GAAG,IAAI,EAEpK,IAAI,CAACpC,KAAK,CAACsG,QAAQ,CACf;EAEf;EAEAC,YAAY,CAACvG,KAAkB,EAAE;IAC/B,oBACE,oBAAC,aAAa,QACVwG,YAA0B,IAAK;MAC/B,IAAI,CAACvB,OAAO,GAAGuB,YAAY;MAC3B,oBAAO,oBAAC,IAAI;QAAC,KAAK,EAAE,IAAI,CAACpB,MAAM,CAACM;MAAK,GAClC1F,KAAK,CAAC2F,SAAS,IAAI3F,KAAK,CAAC4F,KAAK,IAAI5F,KAAK,CAAC6F,UAAU,gBACjD,oBAAC,IAAI;QAAC,KAAK,EAAE,IAAI,CAACT,MAAM,CAACU;MAAQ,gBAC/B,oBAAC,IAAI;QAAC,KAAK,EAAE;UAACC,IAAI,EAAE,CAAC;UAAEC,aAAa,EAAE;QAAK;MAAE,gBAC3C,oBAAC,MAAM;QAAC,MAAM,EAAE,IAAI,CAACZ,MAAM,CAACa,QAAS;QAAC,SAAS,EAAEjG,KAAK,CAAC2F;MAAU,EAAU,eAC3E,oBAAC,IAAI,qBACH,oBAAC,OAAO;QAAC,MAAM,EAAE,IAAI,CAACP,MAAM,CAACQ,KAAM;QAAC,OAAO,EAAE5F,KAAK,CAAC4F;MAAM,EAAW,eACpE,oBAAC,OAAO;QAAC,MAAM,EAAE,IAAI,CAACR,MAAM,CAACS,UAAW;QAAC,OAAO,EAAE7F,KAAK,CAAC6F;MAAW,EAAW,CACzE,CACF,CACF,GACL,IAAI,EACP,IAAI,CAACtE,KAAK,CAACyD,aAAa,gBAAG,oBAAC,SAAS;QAAC,IAAI,EAAE,IAAI,CAACzD,KAAK,CAACsD,IAAK;QAAC,OAAO,EAAE,IAAI,CAACtD,KAAK,CAACuD,OAAQ;QAAC,SAAS,EAAE,KAAM;QAAC,OAAO,EAAE,IAAI,CAACU,UAAU,CAACpD,IAAI,CAAC,IAAI;MAAE,EAAa,GAAG,IAAI,EAEpKpC,KAAK,CAACsG,QAAQ,CACV;IACT,CAAC,CAEa;EAEpB;AACF"}
|
|
@@ -82,12 +82,11 @@ 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] : [];
|
|
86
85
|
this.updateState({
|
|
87
|
-
groupedData:
|
|
86
|
+
groupedData: [{
|
|
88
87
|
key: '',
|
|
89
|
-
data:
|
|
90
|
-
}]
|
|
88
|
+
data: isArray($new) ? $new : isDefined($new) ? [$new] : []
|
|
89
|
+
}]
|
|
91
90
|
}, () => {
|
|
92
91
|
this.key += $new && $new.length || 0;
|
|
93
92
|
});
|
|
@@ -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","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","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 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","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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"}
|
|
@@ -23,9 +23,8 @@ export default class WmBarcodescanner extends BaseComponent {
|
|
|
23
23
|
props: {
|
|
24
24
|
datavalue: res.text
|
|
25
25
|
}
|
|
26
|
-
}, () => {
|
|
27
|
-
this.invokeEventCallback('onSuccess', [null, this.proxy]);
|
|
28
26
|
});
|
|
27
|
+
this.invokeEventCallback('onSuccess', [null, this.proxy]);
|
|
29
28
|
});
|
|
30
29
|
}
|
|
31
30
|
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
|
|
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"}
|