@wavemaker/app-rn-runtime 11.3.2-next.27252 → 11.4.0-next.1417011
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 +10 -25
- 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 +4 -16
- 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
|
@@ -1,56 +1,34 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
-
import { Platform } from 'react-native';
|
|
3
2
|
import { endsWith } from 'lodash-es';
|
|
4
|
-
import * as DocumentPicker from 'expo-document-picker';
|
|
5
3
|
import { FileExtensionTypesMap } from '@wavemaker/app-rn-runtime/core/file-extension-types';
|
|
6
|
-
const namedParameters = {
|
|
7
|
-
copyToCacheDirectory: false,
|
|
8
|
-
multiple: false,
|
|
9
|
-
type: '*/*'
|
|
10
|
-
};
|
|
11
4
|
export class UploadFileOperation {
|
|
12
|
-
chooseFile() {
|
|
13
|
-
return DocumentPicker.getDocumentAsync(namedParameters).then(response => {
|
|
14
|
-
return Platform.OS === 'web' ? response.file : response.uri;
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
5
|
invoke(params) {
|
|
18
6
|
params.serverUrl = endsWith(params.serverUrl, '/') ? params.serverUrl : params.serverUrl + '/';
|
|
19
7
|
let serverUrl = params.serverUrl + 'services/file/uploadFile';
|
|
20
8
|
if (params.remoteFolder) {
|
|
21
9
|
serverUrl = serverUrl + '?relativePath=' + params.remoteFolder;
|
|
22
10
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
url: serverUrl,
|
|
45
|
-
method: 'POST',
|
|
46
|
-
headers: {
|
|
47
|
-
'Content-Type': 'multipart/form-data'
|
|
48
|
-
},
|
|
49
|
-
data: formData
|
|
50
|
-
}).then(response => {
|
|
51
|
-
return response.data[0];
|
|
52
|
-
}, error => error);
|
|
53
|
-
});
|
|
11
|
+
const filePath = params.localFile;
|
|
12
|
+
const fileName = filePath.split('/').pop() || '';
|
|
13
|
+
const arr = fileName.split('.');
|
|
14
|
+
const fileExtension = '.' + arr[arr.length - 1];
|
|
15
|
+
let fileObj = {
|
|
16
|
+
uri: filePath,
|
|
17
|
+
type: FileExtensionTypesMap[fileExtension],
|
|
18
|
+
name: fileName
|
|
19
|
+
};
|
|
20
|
+
let formData = new FormData();
|
|
21
|
+
formData.append('files', fileObj);
|
|
22
|
+
return axios({
|
|
23
|
+
url: serverUrl,
|
|
24
|
+
method: 'POST',
|
|
25
|
+
headers: {
|
|
26
|
+
'Content-Type': 'multipart/form-data'
|
|
27
|
+
},
|
|
28
|
+
data: formData
|
|
29
|
+
}).then(response => {
|
|
30
|
+
return response.data[0];
|
|
31
|
+
}, error => error);
|
|
54
32
|
}
|
|
55
33
|
}
|
|
56
34
|
//# sourceMappingURL=upload-file.operation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["axios","
|
|
1
|
+
{"version":3,"names":["axios","endsWith","FileExtensionTypesMap","UploadFileOperation","invoke","params","serverUrl","remoteFolder","filePath","localFile","fileName","split","pop","arr","fileExtension","length","fileObj","uri","type","name","formData","FormData","append","url","method","headers","data","then","response","error"],"sources":["upload-file.operation.tsx"],"sourcesContent":["import axios from 'axios';\nimport { endsWith } from 'lodash-es';\n\nimport { Operation } from '@wavemaker/app-rn-runtime/variables/device/operation.provider';\nimport { FileExtensionTypesMap } from '@wavemaker/app-rn-runtime/core/file-extension-types';\n\nexport interface UploadFileInput {\n localFile: string;\n remoteFolder: string;\n serverUrl: string;\n}\n\nexport interface UploadFileOutput {\n fileName: string;\n path: string;\n length: number;\n success: boolean;\n inlinePath: string;\n errorMessage: string;\n}\n\nexport class UploadFileOperation implements Operation {\n\n public invoke(params: UploadFileInput): Promise<UploadFileOutput> {\n params.serverUrl = endsWith(params.serverUrl, '/') ? params.serverUrl : params.serverUrl + '/';\n let serverUrl = params.serverUrl + 'services/file/uploadFile';\n if (params.remoteFolder) {\n serverUrl = serverUrl + '?relativePath=' + params.remoteFolder\n }\n const filePath = params.localFile;\n const fileName: string | undefined = filePath.split('/').pop() || '';\n const arr: any = fileName.split('.');\n const fileExtension: string = '.' + arr[arr.length - 1];\n let fileObj = {\n uri: filePath,\n type: FileExtensionTypesMap[fileExtension],\n name: fileName,\n };\n\n let formData = new FormData();\n formData.append('files', fileObj);\n return axios({\n url: serverUrl,\n method: 'POST',\n headers: {\n 'Content-Type': 'multipart/form-data'\n },\n data: formData\n }).then(\n (response) => {\n return response.data[0];\n }, error => error);\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,WAAW;AAGpC,SAASC,qBAAqB,QAAQ,qDAAqD;AAiB3F,OAAO,MAAMC,mBAAmB,CAAsB;EAE7CC,MAAM,CAACC,MAAuB,EAA6B;IAChEA,MAAM,CAACC,SAAS,GAAGL,QAAQ,CAACI,MAAM,CAACC,SAAS,EAAE,GAAG,CAAC,GAAGD,MAAM,CAACC,SAAS,GAAGD,MAAM,CAACC,SAAS,GAAG,GAAG;IAC9F,IAAIA,SAAS,GAAGD,MAAM,CAACC,SAAS,GAAG,0BAA0B;IAC7D,IAAID,MAAM,CAACE,YAAY,EAAE;MACvBD,SAAS,GAAGA,SAAS,GAAG,gBAAgB,GAAGD,MAAM,CAACE,YAAY;IAChE;IACA,MAAMC,QAAQ,GAAGH,MAAM,CAACI,SAAS;IACjC,MAAMC,QAA4B,GAAGF,QAAQ,CAACG,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE,IAAI,EAAE;IACpE,MAAMC,GAAQ,GAAGH,QAAQ,CAACC,KAAK,CAAC,GAAG,CAAC;IACpC,MAAMG,aAAqB,GAAG,GAAG,GAAGD,GAAG,CAACA,GAAG,CAACE,MAAM,GAAG,CAAC,CAAC;IACvD,IAAIC,OAAO,GAAG;MACZC,GAAG,EAAET,QAAQ;MACbU,IAAI,EAAEhB,qBAAqB,CAACY,aAAa,CAAC;MAC1CK,IAAI,EAAET;IACR,CAAC;IAED,IAAIU,QAAQ,GAAG,IAAIC,QAAQ,EAAE;IAC7BD,QAAQ,CAACE,MAAM,CAAC,OAAO,EAAEN,OAAO,CAAC;IACjC,OAAOhB,KAAK,CAAC;MACXuB,GAAG,EAAEjB,SAAS;MACdkB,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE;QACP,cAAc,EAAE;MAClB,CAAC;MACDC,IAAI,EAAEN;IACR,CAAC,CAAC,CAACO,IAAI,CACJC,QAAQ,IAAK;MACd,OAAOA,QAAQ,CAACF,IAAI,CAAC,CAAC,CAAC;IACzB,CAAC,EAAEG,KAAK,IAAIA,KAAK,CAAC;EACpB;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
2
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
3
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
|
-
import { isEqual
|
|
4
|
+
import { isEqual } from 'lodash';
|
|
5
5
|
import { ServiceVariable as _ServiceVariable } from '@wavemaker/variables/src/model/variable/service-variable';
|
|
6
6
|
import httpService from '@wavemaker/app-rn-runtime/variables/http.service';
|
|
7
7
|
import injector from '@wavemaker/app-rn-runtime/core/injector';
|
|
@@ -53,7 +53,7 @@ export class ServiceVariable extends _ServiceVariable {
|
|
|
53
53
|
const last = this.params;
|
|
54
54
|
const latest = this.config.paramProvider();
|
|
55
55
|
if (!isEqual(last, latest)) {
|
|
56
|
-
this.invoke(
|
|
56
|
+
this.invoke();
|
|
57
57
|
}
|
|
58
58
|
return Promise.resolve(this);
|
|
59
59
|
}
|
|
@@ -67,12 +67,7 @@ export class ServiceVariable extends _ServiceVariable {
|
|
|
67
67
|
this.appConfig.refresh(false);
|
|
68
68
|
}
|
|
69
69
|
invoke(options, onSuccess, onError) {
|
|
70
|
-
this.params = this.config.paramProvider();
|
|
71
|
-
let params = options ? options.inputFields ? options.inputFields : options : undefined;
|
|
72
|
-
if (!params) {
|
|
73
|
-
params = !isEmpty(this.dataBinding) ? this.dataBinding : this.config.paramProvider();
|
|
74
|
-
}
|
|
75
|
-
this.dataBinding = params;
|
|
70
|
+
this.dataBinding = this.params = this.config.paramProvider();
|
|
76
71
|
// service definitions data depends on whether user logged in or not
|
|
77
72
|
// Try to get the latest definition
|
|
78
73
|
this.serviceInfo = this.config.getServiceInfo();
|
|
@@ -108,9 +103,9 @@ export class ServiceVariable extends _ServiceVariable {
|
|
|
108
103
|
// }
|
|
109
104
|
// }
|
|
110
105
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
106
|
+
setInput(key, val, options) {
|
|
107
|
+
// this.params = merge({}, this.config.paramProvider(), _setInput(this.params, key, val, options));
|
|
108
|
+
// return this.params;
|
|
109
|
+
}
|
|
115
110
|
}
|
|
116
111
|
//# sourceMappingURL=service-variable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isEqual","
|
|
1
|
+
{"version":3,"names":["isEqual","ServiceVariable","_ServiceVariable","httpService","injector","_ServiceVariableEvents","constructor","config","variableConfig","name","dataSet","paramProvider","dataBinding","isList","service","serviceType","maxResults","_context","operation","operationId","serviceInfo","getServiceInfo","httpClientService","onSuccess","context","args","variable","data","options","onError","onCanUpdate","onBeforeUpdate","onResult","onBeforeDatasetReady","get","invokeOnParamChange","last","params","latest","invoke","Promise","resolve","doNext","currentPage","reject","onDataUpdated","appConfig","refresh","console","error","setInput","key","val"],"sources":["service-variable.ts"],"sourcesContent":["import { VariableConfig, VariableEvents } from './base-variable';\nimport { isEqual } from 'lodash';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { $queue } from './utils/inflight-queue';\nimport { ServiceVariable as _ServiceVariable } from '@wavemaker/variables/src/model/variable/service-variable';\nimport httpService from '@wavemaker/app-rn-runtime/variables/http.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\n\nexport interface ServiceVariableConfig extends VariableConfig {\n baseUrl: string;\n maxResults: number;\n _context: any;\n serviceType: string;\n onCanUpdate: any;\n onBeforeUpdate: any;\n onResult: any;\n onBeforeDatasetReady: any;\n inFlightBehavior: string;\n getServiceInfo: Function;\n}\n\nenum _ServiceVariableEvents {\n BEFORE_INVOKE = 'beforeInvoke'\n}\nexport type ServiceVariableEvents = _ServiceVariableEvents | VariableEvents;\n\nexport class ServiceVariable extends _ServiceVariable {\n private cancelTokenSource: any;\n params: any = {};\n public appConfig = injector.get<AppConfig>('APP_CONFIG');\n\n constructor(public config: ServiceVariableConfig) {\n const variableConfig = {\n name: config.name,\n dataSet: config.paramProvider(),\n dataBinding: config.paramProvider(),\n isList: config.isList,\n service: config.service,\n serviceType: config.serviceType,\n maxResults: config.maxResults,\n _context: config._context,\n operation: config.operation,\n operationId: config.operationId,\n serviceInfo: config.getServiceInfo(),\n httpClientService: httpService,\n onSuccess: (context: any, args: any) => {\n return config.onSuccess && config.onSuccess(args.variable, args.data, args.options);\n },\n onError: (context: any, args: any) => {\n return config.onError && config.onError(args.variable, args.data, args.options);\n },\n onCanUpdate: (context: any, args: any) => {\n return config.onCanUpdate && config.onCanUpdate(args.variable, args.data, args.options);\n },\n onBeforeUpdate: (context: any, args: any) => {\n return config.onBeforeUpdate && config.onBeforeUpdate(args.variable, args.data, args.options);\n },\n onResult: (context: any, args: any) => {\n return config.onResult && config.onResult(args.variable, args.data, args.options);\n },\n onBeforeDatasetReady: (context: any, args: any) => {\n return config.onBeforeDatasetReady && config.onBeforeDatasetReady(args.variable, args.data, args.options);\n }\n }\n super(variableConfig);\n }\n\n invokeOnParamChange() {\n const last = this.params;\n const latest = this.config.paramProvider();\n if (!isEqual(last, latest)) {\n this.invoke();\n }\n return Promise.resolve(this);\n }\n\n public doNext(currentPage: number) {\n // this.invoke({\n // page: currentPage\n // });\n return Promise.reject(this);\n }\n\n onDataUpdated() {\n this.appConfig.refresh(false);\n }\n\n invoke(options? : any, onSuccess?: Function, onError?: Function) {\n this.dataBinding = this.params = this.config.paramProvider();\n // service definitions data depends on whether user logged in or not\n // Try to get the latest definition\n this.serviceInfo = this.config.getServiceInfo();\n if (!this.serviceInfo) {\n console.error(`Service Info is missing for (${this.name}) variable.`)\n }\n return super.invoke(options, onSuccess, onError);\n }\n\n // cancel($file?: any) {\n // // CHecks if there is any pending requests in the queue\n // if ($queue.requestsQueue.has(this)) {\n // // If the request is a File upload request then modify the elements associated with file upload\n // // else unsubscribe from the observable on the variable.\n // if (false) {\n // // $file._uploadProgress.unsubscribe();\n // // $file.status = 'abort';\n // // this.totalFilesCount--;\n // // initiateCallback(VARIABLE_CONSTANTS.EVENT.ABORT, variable, $file);\n // // if (!this.isFileUploadInProgress(variable.dataBinding) && this.totalFilesCount === 0) {\n // // $queue.process(variable);\n // // // notify inflight variable\n // // this.notifyInflight(variable, false);\n // // }\n // } else {\n // if (true) {\n // this.cancelTokenSource.cancel();\n // $queue.process(this);\n // // notify inflight variable\n // //this.notifyInflight(variable, false);\n // }\n // }\n // }\n // }\n\n setInput(key: any, val?: any, options?: any) {\n // this.params = merge({}, this.config.paramProvider(), _setInput(this.params, key, val, options));\n // return this.params;\n }\n}\n"],"mappings":"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"}
|