@firedesktop/react-base 1.9.0 → 1.11.0
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.
- package/debug.log +2 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/{ConfigurationLoader.d.ts → utils/configuration/ConfigurationLoader.d.ts} +1 -1
- package/dist/{ConfigurationLoader.js → utils/configuration/ConfigurationLoader.js} +1 -1
- package/dist/utils/configuration/ConfigurationLoader.js.map +1 -0
- package/dist/utils/configuration/ConfigurationManager.js.map +1 -0
- package/dist/utils/configuration/index.d.ts +3 -0
- package/dist/utils/configuration/index.js +4 -0
- package/dist/utils/configuration/index.js.map +1 -0
- package/dist/utils/fetch/Types.d.ts +9 -0
- package/dist/utils/fetch/Types.js +2 -0
- package/dist/utils/fetch/Types.js.map +1 -0
- package/dist/utils/fetch/fetchWrapper.d.ts +13 -0
- package/dist/utils/fetch/fetchWrapper.js +117 -0
- package/dist/utils/fetch/fetchWrapper.js.map +1 -0
- package/dist/utils/fetch/index.d.ts +3 -0
- package/dist/utils/fetch/index.js +4 -0
- package/dist/utils/fetch/index.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/{LanguageLoader.d.ts → utils/labels/LanguageLoader.d.ts} +1 -1
- package/dist/{LanguageLoader.js → utils/labels/LanguageLoader.js} +1 -1
- package/dist/utils/labels/LanguageLoader.js.map +1 -0
- package/dist/utils/labels/LanguageManager.js.map +1 -0
- package/dist/utils/labels/index.d.ts +3 -0
- package/dist/utils/labels/index.js +4 -0
- package/dist/utils/labels/index.js.map +1 -0
- package/package.json +2 -3
- package/src/App.tsx +40 -13
- package/src/TestLabelFunction.tsx +2 -2
- package/src/lib/index.ts +4 -5
- package/src/lib/{ConfigurationLoader.tsx → utils/configuration/ConfigurationLoader.tsx} +3 -3
- package/src/lib/utils/configuration/index.ts +4 -0
- package/src/lib/utils/fetch/Types.ts +10 -0
- package/src/lib/utils/fetch/fetchWrapper.ts +125 -0
- package/src/lib/utils/fetch/index.ts +4 -0
- package/src/lib/utils/index.ts +5 -0
- package/src/lib/{LanguageLoader.tsx → utils/labels/LanguageLoader.tsx} +3 -3
- package/src/lib/utils/labels/index.ts +4 -0
- package/dist/ConfigurationLoader.js.map +0 -1
- package/dist/ConfigurationManager.js.map +0 -1
- package/dist/LanguageLoader.js.map +0 -1
- package/dist/LanguageManager.js.map +0 -1
- package/src/types/ConfigurationLoader.d.ts +0 -7
- package/src/types/ConfigurationLoader.js +0 -27
- package/src/types/ConfigurationLoader.js.map +0 -1
- package/src/types/ConfigurationManager.d.ts +0 -5
- package/src/types/ConfigurationManager.js +0 -81
- package/src/types/ConfigurationManager.js.map +0 -1
- package/src/types/LanguageLoader.d.ts +0 -8
- package/src/types/LanguageLoader.js +0 -28
- package/src/types/LanguageLoader.js.map +0 -1
- package/src/types/LanguageManager.d.ts +0 -6
- package/src/types/LanguageManager.js +0 -99
- package/src/types/LanguageManager.js.map +0 -1
- package/src/types/components/AppIcon.d.ts +0 -14
- package/src/types/components/AppIcon.js +0 -163
- package/src/types/components/AppIcon.js.map +0 -1
- package/src/types/index.d.ts +0 -5
- package/src/types/index.js +0 -6
- package/src/types/index.js.map +0 -1
- /package/dist/{ConfigurationManager.d.ts → utils/configuration/ConfigurationManager.d.ts} +0 -0
- /package/dist/{ConfigurationManager.js → utils/configuration/ConfigurationManager.js} +0 -0
- /package/dist/{LanguageManager.d.ts → utils/labels/LanguageManager.d.ts} +0 -0
- /package/dist/{LanguageManager.js → utils/labels/LanguageManager.js} +0 -0
- /package/src/lib/{ConfigurationManager.ts → utils/configuration/ConfigurationManager.ts} +0 -0
- /package/src/lib/{LanguageManager.ts → utils/labels/LanguageManager.ts} +0 -0
package/debug.log
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
[1111/205244.463:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)
|
|
1
|
+
[1111/205244.463:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)
|
|
2
|
+
[1115/122702.918:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import ConfigurationLoader from './ConfigurationLoader';
|
|
2
|
-
import
|
|
3
|
-
import LanguageLoader from './LanguageLoader';
|
|
4
|
-
import LanguageManager from './LanguageManager';
|
|
1
|
+
import ConfigurationLoader from './utils/configuration/ConfigurationLoader';
|
|
2
|
+
import LanguageLoader from './utils/labels/LanguageLoader';
|
|
5
3
|
import * as Components from './components';
|
|
6
|
-
|
|
4
|
+
import * as Utils from './utils';
|
|
5
|
+
export { Components, ConfigurationLoader, LanguageLoader, Utils };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import ConfigurationLoader from './ConfigurationLoader';
|
|
2
|
-
import
|
|
3
|
-
import LanguageLoader from './LanguageLoader';
|
|
4
|
-
import LanguageManager from './LanguageManager';
|
|
1
|
+
import ConfigurationLoader from './utils/configuration/ConfigurationLoader';
|
|
2
|
+
import LanguageLoader from './utils/labels/LanguageLoader';
|
|
5
3
|
import * as Components from './components';
|
|
6
|
-
|
|
4
|
+
import * as Utils from './utils';
|
|
5
|
+
export { Components, ConfigurationLoader, LanguageLoader, Utils };
|
|
7
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,2CAA2C,CAAC;AAC5E,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAGjC,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare type configurationLoaderParamsType = {
|
|
3
|
-
updateAppState:
|
|
3
|
+
updateAppState: (name: string, value: object) => void;
|
|
4
4
|
path: string | null;
|
|
5
5
|
};
|
|
6
6
|
declare function ConfigurationLoader({ updateAppState, path }: configurationLoaderParamsType): JSX.Element;
|
|
@@ -51,7 +51,7 @@ function ConfigurationLoader(_a) {
|
|
|
51
51
|
return __generator(this, function (_a) {
|
|
52
52
|
switch (_a.label) {
|
|
53
53
|
case 0:
|
|
54
|
-
if (
|
|
54
|
+
if (!(!configuration || !configuration.loaded)) return [3, 2];
|
|
55
55
|
console.log("Loading Configuration for this Site in this path: " + fullPath);
|
|
56
56
|
return [4, loadConfiguration(fullPath).then(function (response) {
|
|
57
57
|
console.log("Loaded Configuration for this Site in this path: " + fullPath, response);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigurationLoader.js","sourceRoot":"","sources":["../../../src/lib/utils/configuration/ConfigurationLoader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAO1D,SAAS,mBAAmB,CAAC,EAAuD;QAArD,cAAc,oBAAA,EAAE,IAAI,UAAA;IAC/C,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IACvB,IAAA,aAAa,GAAU,WAAW,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,EAAL,CAAK,CAAC,cAArC,CAAsC;IACnD,IAAA,iBAAiB,GAAK,oBAAoB,EAAE,kBAA3B,CAA4B;IAErD,IAAI,QAAQ,GAAG,6BAA6B,CAAC;IAC7C,IAAI,IAAI;QACJ,QAAQ,GAAG,IAAI,CAAC;IAEpB,SAAS,CAAC;QACN,SAAe,SAAS;;;;;iCAChB,CAAA,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,CAAA,EAAvC,cAAuC;4BACvC,OAAO,CAAC,GAAG,CAAC,uDAAqD,QAAU,CAAC,CAAC;4BAC7E,WAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,QAAa;oCACjD,OAAO,CAAC,GAAG,CAAC,sDAAoD,QAAU,EAAE,QAAQ,CAAC,CAAC;oCACtF,QAAQ,CAAC,cAAc,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;gCAExD,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,GAAQ;oCACd,OAAO,CAAC,GAAG,CAAC,0DAAwD,QAAU,CAAC,CAAC;gCACpF,CAAC,CAAC,EAAA;;4BANF,SAME,CAAC;;;;;;SAEV;QACD,SAAS,EAAE,CAAC;IAEhB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,oBAAC,KAAK,CAAC,QAAQ,OACE,CACpB,CAAC;AACN,CAAC;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigurationManager.js","sourceRoot":"","sources":["../../../src/lib/utils/configuration/ConfigurationManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,oBAAoB;IAEzB,SAAe,iBAAiB,CAAC,QAAgB;;;;;;;wBAE7B,WAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,EAAE,CAAC,EAAA;;wBAA/F,GAAG,GAAG,SAAyF;wBAC9F,WAAM,GAAG,CAAC,IAAI,EAAE,EAAA;4BAAvB,WAAO,SAAgB,EAAC;;;wBAGxB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;;;;;;KAEtD;IAAA,CAAC;IAEF,SAAe,6BAA6B,CAAC,QAAa,EAAE,cAAmB,EAAE,aAAkB;;;;gBAC/F,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;oBACnC,aAAW,6BAA6B,CAAC;oBAC/C,OAAO,CAAC,GAAG,CAAC,yDAAuD,UAAU,CAAC,CAAC;oBAC/E,iBAAiB,CAAC,UAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,QAAa;wBAC3C,OAAO,CAAC,GAAG,CAAC,sDAAoD,UAAU,EAAE,QAAQ,CAAC,CAAC;wBACtF,QAAQ,CAAC,cAAc,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACxD,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,GAAQ;wBACd,OAAO,CAAC,GAAG,CAAC,0DAAwD,UAAU,CAAC,CAAC;oBACpF,CAAC,CAAC,CAAC;iBACN;;;;KACJ;IAED,OAAO,EAAE,iBAAiB,mBAAA,EAAE,6BAA6B,+BAAA,EAAE,CAAC;AAChE,CAAC;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/configuration/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../src/lib/utils/fetch/Types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as Types from './Types';
|
|
2
|
+
declare class FetchWrapper {
|
|
3
|
+
apiVersion: string;
|
|
4
|
+
labels: Types.ILabels;
|
|
5
|
+
status_401_403: () => void;
|
|
6
|
+
constructor(apiVersion: string, labels?: Types.ILabels, status_401_403?: () => void);
|
|
7
|
+
get: (url: string, token?: string, params?: Blob | string, isFile?: boolean, isBlob?: boolean) => Promise<any>;
|
|
8
|
+
post: (url: string, token?: string, params?: Blob | string, isFile?: boolean, isBlob?: boolean, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
|
|
9
|
+
put: (url: string, token?: string, params?: Blob | string, isFile?: boolean, isBlob?: boolean) => Promise<any>;
|
|
10
|
+
delete: (url: string, token?: string, params?: Blob | string, isFile?: boolean, isBlob?: boolean) => Promise<any>;
|
|
11
|
+
generic: (method: string, url: string, token?: string, params?: Blob | string, isFile?: boolean, isBlob?: boolean, version?: string, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
|
|
12
|
+
}
|
|
13
|
+
export default FetchWrapper;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
var Constants = (function () {
|
|
2
|
+
function Constants() {
|
|
3
|
+
}
|
|
4
|
+
Constants.labels = {
|
|
5
|
+
errorGeneric: 'Sorry we have errors on the remote server',
|
|
6
|
+
errorServerNotAvailable: 'Server not available',
|
|
7
|
+
errorSessionExpired: 'Your session has expired, please login.',
|
|
8
|
+
};
|
|
9
|
+
return Constants;
|
|
10
|
+
}());
|
|
11
|
+
var FetchWrapper = (function () {
|
|
12
|
+
function FetchWrapper(apiVersion, labels, status_401_403) {
|
|
13
|
+
var _this = this;
|
|
14
|
+
this.get = function (url, token, params, isFile, isBlob) {
|
|
15
|
+
if (isFile === void 0) { isFile = false; }
|
|
16
|
+
if (isBlob === void 0) { isBlob = false; }
|
|
17
|
+
return _this.generic('GET', url, token, params, isFile, isBlob);
|
|
18
|
+
};
|
|
19
|
+
this.post = function (url, token, params, isFile, isBlob, additionalParams) {
|
|
20
|
+
if (isFile === void 0) { isFile = false; }
|
|
21
|
+
if (isBlob === void 0) { isBlob = false; }
|
|
22
|
+
if (additionalParams === void 0) { additionalParams = []; }
|
|
23
|
+
return _this.generic('POST', url, token, params, isFile, isBlob, _this.apiVersion, additionalParams);
|
|
24
|
+
};
|
|
25
|
+
this.put = function (url, token, params, isFile, isBlob) {
|
|
26
|
+
if (isFile === void 0) { isFile = false; }
|
|
27
|
+
if (isBlob === void 0) { isBlob = false; }
|
|
28
|
+
return _this.generic('PUT', url, token, params, isFile, isBlob);
|
|
29
|
+
};
|
|
30
|
+
this.delete = function (url, token, params, isFile, isBlob) {
|
|
31
|
+
if (isFile === void 0) { isFile = false; }
|
|
32
|
+
if (isBlob === void 0) { isBlob = false; }
|
|
33
|
+
return _this.generic('DELETE', url, token, params, isFile, isBlob);
|
|
34
|
+
};
|
|
35
|
+
this.generic = function (method, url, token, params, isFile, isBlob, version, additionalParams) {
|
|
36
|
+
if (isFile === void 0) { isFile = false; }
|
|
37
|
+
if (isBlob === void 0) { isBlob = false; }
|
|
38
|
+
if (version === void 0) { version = _this.apiVersion; }
|
|
39
|
+
if (additionalParams === void 0) { additionalParams = []; }
|
|
40
|
+
var body;
|
|
41
|
+
var headers = new Headers();
|
|
42
|
+
headers.append('pragma', 'no-cache');
|
|
43
|
+
if (version)
|
|
44
|
+
headers.append('api-version', version);
|
|
45
|
+
if (token)
|
|
46
|
+
headers.append('Authorization', 'Bearer ' + token);
|
|
47
|
+
if (params) {
|
|
48
|
+
if (isFile) {
|
|
49
|
+
var formData = new FormData();
|
|
50
|
+
formData.append('file', params);
|
|
51
|
+
body = formData;
|
|
52
|
+
if (additionalParams) {
|
|
53
|
+
for (var index = 0; index < additionalParams.length; index++) {
|
|
54
|
+
var element = additionalParams[index];
|
|
55
|
+
formData.append(element.name, element.value);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
headers.append('Content-Type', 'application/json');
|
|
61
|
+
body = JSON.stringify(params);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
var requestInit = {
|
|
65
|
+
body: body,
|
|
66
|
+
method: method,
|
|
67
|
+
mode: 'cors',
|
|
68
|
+
cache: 'default',
|
|
69
|
+
credentials: 'omit',
|
|
70
|
+
headers: headers
|
|
71
|
+
};
|
|
72
|
+
var labels = _this.labels;
|
|
73
|
+
var status_401_403 = _this.status_401_403;
|
|
74
|
+
return fetch(url, requestInit)
|
|
75
|
+
.then(function (response) {
|
|
76
|
+
if (response.status < 200 || response.status >= 300)
|
|
77
|
+
throw response;
|
|
78
|
+
return isBlob ? response.blob() : response.json();
|
|
79
|
+
})
|
|
80
|
+
.then(function (json) {
|
|
81
|
+
return json;
|
|
82
|
+
})
|
|
83
|
+
.catch(function (error) {
|
|
84
|
+
console.error("Error on fetch url: " + url);
|
|
85
|
+
if (!error || error.message === 'Failed to fetch')
|
|
86
|
+
throw new Error(labels.errorServerNotAvailable);
|
|
87
|
+
if (error.text) {
|
|
88
|
+
if ((error.status === 401 || error.status === 403) && status_401_403) {
|
|
89
|
+
status_401_403();
|
|
90
|
+
throw new Error(labels.errorSessionExpired);
|
|
91
|
+
}
|
|
92
|
+
else
|
|
93
|
+
return error.text();
|
|
94
|
+
}
|
|
95
|
+
if (error.message && error.message !== '')
|
|
96
|
+
throw error.message;
|
|
97
|
+
throw new Error(labels.errorGeneric);
|
|
98
|
+
})
|
|
99
|
+
.then(function (finalMessage) {
|
|
100
|
+
if (typeof (finalMessage) === 'object')
|
|
101
|
+
return finalMessage;
|
|
102
|
+
if (finalMessage)
|
|
103
|
+
throw new Error(finalMessage);
|
|
104
|
+
throw new Error(labels.errorGeneric);
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
this.apiVersion = apiVersion;
|
|
108
|
+
this.status_401_403 = status_401_403;
|
|
109
|
+
if (labels && labels !== null && labels.errorGeneric && labels.errorServerNotAvailable && labels.errorSessionExpired)
|
|
110
|
+
this.labels = labels;
|
|
111
|
+
else
|
|
112
|
+
this.labels = Constants.labels;
|
|
113
|
+
}
|
|
114
|
+
return FetchWrapper;
|
|
115
|
+
}());
|
|
116
|
+
export default FetchWrapper;
|
|
117
|
+
//# sourceMappingURL=fetchWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchWrapper.js","sourceRoot":"","sources":["../../../src/lib/utils/fetch/fetchWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -50,7 +50,7 @@ function LanguageLoader(_a) {
|
|
|
50
50
|
function justAsync() {
|
|
51
51
|
return __awaiter(this, void 0, void 0, function () {
|
|
52
52
|
return __generator(this, function (_a) {
|
|
53
|
-
if (!labels.language || labels.language !== language) {
|
|
53
|
+
if (!labels || !labels.language || labels.language !== language) {
|
|
54
54
|
console.log("Loading Language Labels for this Site in this path: " + fullPath);
|
|
55
55
|
loadLabels(fullPath).then(function (response) {
|
|
56
56
|
console.log("Loaded Language Labels for this Site in this path: " + fullPath, response);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguageLoader.js","sourceRoot":"","sources":["../../../src/lib/utils/labels/LanguageLoader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAQhD,SAAS,cAAc,CAAC,EAA4D;QAA1D,cAAc,oBAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;IACpD,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IACvB,IAAA,MAAM,GAAU,WAAW,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,EAAL,CAAK,CAAC,OAArC,CAAsC;IAC5C,IAAA,UAAU,GAAK,eAAe,EAAE,WAAtB,CAAuB;IAEzC,IAAM,QAAQ,GAAM,QAAQ,UAAO,CAAC;IAEpC,IAAI,QAAQ,GAAG,cAAY,QAAU,CAAC;IACtC,IAAI,IAAI;QACJ,QAAQ,GAAG,OAAK,IAAI,SAAI,QAAU,CAAC;IAGvC,SAAS,CAAC;QACN,SAAe,SAAS;;;oBACpB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;wBAC7D,OAAO,CAAC,GAAG,CAAC,yDAAuD,QAAU,CAAC,CAAC;wBAC/E,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,QAAa;4BACpC,OAAO,CAAC,GAAG,CAAC,wDAAsD,QAAU,EAAE,QAAQ,CAAC,CAAC;4BACxF,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;wBACjD,CAAC,CAAC;6BACG,KAAK,CAAC,UAAC,GAAQ;4BACZ,OAAO,CAAC,GAAG,CAAC,4DAA0D,QAAU,CAAC,CAAC;wBACtF,CAAC,CAAC,CAAC;qBACV;;;;SACJ;QACD,SAAS,EAAE,CAAC;IAEhB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACH,oBAAC,KAAK,CAAC,QAAQ,OACE,CACpB,CAAC;AACN,CAAC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguageManager.js","sourceRoot":"","sources":["../../../src/lib/utils/labels/LanguageManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,eAAe;IAEpB,SAAe,UAAU,CAAC,QAAgB;;;;;;;wBAEtB,WAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,EAAE,CAAC,EAAA;;wBAA/F,GAAG,GAAG,SAAyF;wBAC9F,WAAM,GAAG,CAAC,IAAI,EAAE,EAAA;4BAAvB,WAAO,SAAgB,EAAC;;;wBAGxB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;;;;;;KAEtD;IAAA,CAAC;IAEF,SAAe,sBAAsB,CAAC,QAAa,EAAE,cAAmB,EAAE,MAAW,EAAE,QAAgB;;;;gBACnG,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACvD,QAAQ,GAAG,cAAY,QAAQ,UAAO,CAAC;oBAC7C,OAAO,CAAC,GAAG,CAAC,sCAAoC,QAAQ,0BAAqB,QAAU,CAAC,CAAC;oBACzF,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,QAAa;wBACpC,OAAO,CAAC,GAAG,CAAC,qCAAmC,QAAU,EAAE,QAAQ,CAAC,CAAC;wBACrE,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACjD,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,GAAQ;wBACd,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;iBACN;;;;KACJ;IAED,SAAS,QAAQ,CAAC,MAAW,EAAE,EAAU,EAAE,YAAoB;QAC3D,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YACvC,OAAO,YAAY,IAAI,EAAE,CAAC;QAE9B,IAAI;YACA,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,OAAO,GAAG,MAAM,CAAC;YACrB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAChD,IAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;aAC9B;YACD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;gBACzC,OAAO,OAAO,CAAC;YAEnB,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3C;QAAC,OAAO,EAAE,EAAE;YACT,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3C;IACL,CAAC;IAED,OAAO,EAAE,QAAQ,UAAA,EAAE,UAAU,YAAA,EAAE,sBAAsB,wBAAA,EAAE,CAAC;AAC5D,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/labels/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@firedesktop/react-base",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.0",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"description": "This is the FireDesktop base package used to support every React Project in this Company.",
|
|
@@ -36,8 +36,7 @@
|
|
|
36
36
|
"scripts": {
|
|
37
37
|
"distribute_not_working": "rmdir /s /q dist & mkdir dist && npx babel src/lib --out-dir dist --extensions \".js,.ts,.tsx\" --source-maps inline",
|
|
38
38
|
"start": "react-scripts start && copy ./src/lib/styles/* ./dist/styles/ && tsc",
|
|
39
|
-
"distribute": "rmdir /s /q dist & mkdir dist\\styles && tsc && copyfiles -f src/lib/styles/* dist/styles"
|
|
40
|
-
"suca": "copyfiles -f src/lib/styles/* dist/styles"
|
|
39
|
+
"distribute": "rmdir /s /q dist & mkdir dist\\styles && tsc && copyfiles -f src/lib/styles/* dist/styles"
|
|
41
40
|
},
|
|
42
41
|
"eslintConfig": {
|
|
43
42
|
"extends": [
|
package/src/App.tsx
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
2
|
import { Provider } from "react-redux";
|
|
3
3
|
import { createStore } from 'redux';
|
|
4
4
|
|
|
5
|
-
import ConfigurationLoader from './
|
|
6
|
-
|
|
5
|
+
import { Components, ConfigurationLoader, Utils, LanguageLoader } from './lib';
|
|
6
|
+
|
|
7
7
|
import TestLabelFunction from './TestLabelFunction';
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
|
|
10
10
|
import './lib/styles/base.css';
|
|
11
11
|
|
|
@@ -23,16 +23,38 @@ const appReducer = (state = {}, action: any) => {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
function App() {
|
|
26
|
+
const [options, setOptions] = useState<{ value: string }[]>([]);
|
|
27
|
+
|
|
28
|
+
function status_401_403() {
|
|
29
|
+
alert("Log Out");
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const textFetch = () => {
|
|
33
|
+
const labels = { errorGeneric: 'Errore generiro', errorServerNotAvailable: 'No serviziooo', errorSessionExpired: 'Sessione scadurta' } as Utils.Fetch.Types.ILabels;
|
|
34
|
+
|
|
35
|
+
const runner = new Utils.Fetch.FetchWrapper(null, labels, status_401_403);
|
|
36
|
+
runner.get('https://my-json-server.typicode.com/typicode/demo/posts', null, null, false, false).then(response => {
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
const values = response.map(x => {
|
|
39
|
+
return { value: x.id, label: x.title };
|
|
40
|
+
});
|
|
41
|
+
setOptions(values);
|
|
42
|
+
}).catch(errorMessage => {
|
|
43
|
+
if (errorMessage)
|
|
44
|
+
console.log(errorMessage);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
}
|
|
26
48
|
|
|
27
49
|
const updateAppState = (name: string, value: object) => {
|
|
28
50
|
console.log(`updateState name: ${name}, configuration: ${value}`);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
51
|
+
return {
|
|
52
|
+
type: UPDATE_APP_STATE,
|
|
53
|
+
payload: {
|
|
54
|
+
name,
|
|
55
|
+
value,
|
|
56
|
+
},
|
|
57
|
+
};
|
|
36
58
|
}
|
|
37
59
|
|
|
38
60
|
// @ts-ignore
|
|
@@ -41,10 +63,15 @@ function App() {
|
|
|
41
63
|
return (
|
|
42
64
|
|
|
43
65
|
<Provider store={store}>
|
|
44
|
-
<AppIcon name={"Pin"} className='dark-pink-svg'/>
|
|
66
|
+
<Components.AppIcon name={"Pin"} className='dark-pink-svg' />
|
|
45
67
|
<TestLabelFunction />
|
|
46
68
|
<ConfigurationLoader updateAppState={updateAppState} path={null} />
|
|
47
|
-
|
|
69
|
+
<LanguageLoader updateAppState={updateAppState} language='it-IT' path={null} />
|
|
70
|
+
|
|
71
|
+
<button onClick={textFetch}>Fetch Demo</button>
|
|
72
|
+
{options ? options.map((x: any) => {
|
|
73
|
+
return (<li key={x.value}>ID: {x.value} Post: {x.label}</li>)
|
|
74
|
+
}) : ''}
|
|
48
75
|
</Provider >
|
|
49
76
|
);
|
|
50
77
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useSelector } from "react-redux";
|
|
3
|
-
import
|
|
4
|
-
const { getLabel } = LanguageManager();
|
|
3
|
+
import { Utils} from './lib';
|
|
4
|
+
const { getLabel } = Utils.Labels.LanguageManager();
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
function TestLabelFunction() {
|
package/src/lib/index.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import ConfigurationLoader from './ConfigurationLoader';
|
|
2
|
-
import
|
|
3
|
-
import LanguageLoader from './LanguageLoader';
|
|
4
|
-
import LanguageManager from './LanguageManager';
|
|
1
|
+
import ConfigurationLoader from './utils/configuration/ConfigurationLoader';
|
|
2
|
+
import LanguageLoader from './utils/labels/LanguageLoader';
|
|
5
3
|
import * as Components from './components';
|
|
4
|
+
import * as Utils from './utils';
|
|
6
5
|
|
|
7
6
|
|
|
8
|
-
export { Components, ConfigurationLoader,
|
|
7
|
+
export { Components, ConfigurationLoader, LanguageLoader, Utils };
|
|
@@ -4,9 +4,8 @@ import { useDispatch, useSelector } from "react-redux";
|
|
|
4
4
|
import ConfigurationManager from './ConfigurationManager';
|
|
5
5
|
|
|
6
6
|
export type configurationLoaderParamsType = {
|
|
7
|
-
updateAppState:
|
|
7
|
+
updateAppState: (name: string, value: object) => void,
|
|
8
8
|
path: string | null
|
|
9
|
-
// toggle: (confirm: boolean) => void
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
function ConfigurationLoader({ updateAppState, path }: configurationLoaderParamsType) {
|
|
@@ -20,7 +19,7 @@ function ConfigurationLoader({ updateAppState, path }: configurationLoaderParams
|
|
|
20
19
|
|
|
21
20
|
useEffect(() => {
|
|
22
21
|
async function justAsync() {
|
|
23
|
-
if (!configuration) {
|
|
22
|
+
if (!configuration || !configuration.loaded) {
|
|
24
23
|
console.log(`Loading Configuration for this Site in this path: ${fullPath}`);
|
|
25
24
|
await loadConfiguration(fullPath).then((response: any) => {
|
|
26
25
|
console.log(`Loaded Configuration for this Site in this path: ${fullPath}`, response);
|
|
@@ -32,6 +31,7 @@ function ConfigurationLoader({ updateAppState, path }: configurationLoaderParams
|
|
|
32
31
|
}
|
|
33
32
|
}
|
|
34
33
|
justAsync();
|
|
34
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
35
35
|
}, []);
|
|
36
36
|
|
|
37
37
|
return (
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import * as Types from './Types';
|
|
2
|
+
|
|
3
|
+
class Constants {
|
|
4
|
+
static labels = {
|
|
5
|
+
errorGeneric: 'Sorry we have errors on the remote server',
|
|
6
|
+
errorServerNotAvailable: 'Server not available',
|
|
7
|
+
errorSessionExpired: 'Your session has expired, please login.',
|
|
8
|
+
} as Types.ILabels;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
class FetchWrapper {
|
|
12
|
+
apiVersion: string;
|
|
13
|
+
labels: Types.ILabels;
|
|
14
|
+
status_401_403: () => void;
|
|
15
|
+
|
|
16
|
+
constructor(apiVersion: string, labels?: Types.ILabels, status_401_403?: () => void) {
|
|
17
|
+
this.apiVersion = apiVersion;
|
|
18
|
+
this.status_401_403 = status_401_403;
|
|
19
|
+
|
|
20
|
+
if (labels && labels !== null && labels.errorGeneric && labels.errorServerNotAvailable && labels.errorSessionExpired)
|
|
21
|
+
this.labels = labels;
|
|
22
|
+
else
|
|
23
|
+
this.labels = Constants.labels;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
get = (url: string, token?: string, params?: Blob | string, isFile = false, isBlob = false) => {
|
|
27
|
+
return this.generic('GET', url, token, params, isFile, isBlob);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
post = (url: string, token?: string, params?: Blob | string, isFile = false, isBlob = false, additionalParams: Types.AdditionalParamsType[] = []) => {
|
|
31
|
+
return this.generic('POST', url, token, params, isFile, isBlob, this.apiVersion, additionalParams);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
put = (url: string, token?: string, params?: Blob | string, isFile = false, isBlob = false) => {
|
|
35
|
+
return this.generic('PUT', url, token, params, isFile, isBlob);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
delete = (url: string, token?: string, params?: Blob | string, isFile = false, isBlob = false) => {
|
|
39
|
+
return this.generic('DELETE', url, token, params, isFile, isBlob);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
generic = (method: string, url: string, token?: string, params?: Blob | string, isFile = false, isBlob = false, version = this.apiVersion, additionalParams: Types.AdditionalParamsType[] = []) => {
|
|
43
|
+
// Headers & Body
|
|
44
|
+
let body: BodyInit;
|
|
45
|
+
const headers = new Headers();
|
|
46
|
+
headers.append('pragma', 'no-cache');
|
|
47
|
+
if (version)
|
|
48
|
+
headers.append('api-version', version);
|
|
49
|
+
if (token)
|
|
50
|
+
headers.append('Authorization', 'Bearer ' + token);
|
|
51
|
+
|
|
52
|
+
if (params) {
|
|
53
|
+
if (isFile) {
|
|
54
|
+
var formData = new FormData();
|
|
55
|
+
formData.append('file', params);
|
|
56
|
+
body = formData;
|
|
57
|
+
if (additionalParams) {
|
|
58
|
+
for (let index = 0; index < additionalParams.length; index++) {
|
|
59
|
+
const element = additionalParams[index];
|
|
60
|
+
formData.append(element.name, element.value);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
} else {
|
|
64
|
+
headers.append('Content-Type', 'application/json');
|
|
65
|
+
body = JSON.stringify(params);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const requestInit = {
|
|
70
|
+
body,
|
|
71
|
+
method: method,
|
|
72
|
+
mode: 'cors',
|
|
73
|
+
cache: 'default',
|
|
74
|
+
credentials: 'omit',
|
|
75
|
+
headers
|
|
76
|
+
} as RequestInit;
|
|
77
|
+
|
|
78
|
+
const labels = this.labels;
|
|
79
|
+
const status_401_403 = this.status_401_403;
|
|
80
|
+
|
|
81
|
+
return fetch(url, requestInit)
|
|
82
|
+
.then(response => {
|
|
83
|
+
// Others Status Code
|
|
84
|
+
if (response.status < 200 || response.status >= 300)
|
|
85
|
+
throw response;
|
|
86
|
+
|
|
87
|
+
return isBlob ? response.blob() : response.json();
|
|
88
|
+
})
|
|
89
|
+
.then(json => {
|
|
90
|
+
return json;
|
|
91
|
+
})
|
|
92
|
+
.catch(error => {
|
|
93
|
+
console.error(`Error on fetch url: ${url}`);
|
|
94
|
+
|
|
95
|
+
if (!error || error.message === 'Failed to fetch')
|
|
96
|
+
throw new Error(labels.errorServerNotAvailable);
|
|
97
|
+
|
|
98
|
+
// This is an error coming from then
|
|
99
|
+
if (error.text) {
|
|
100
|
+
if ((error.status === 401 || error.status === 403) && status_401_403) {
|
|
101
|
+
status_401_403();
|
|
102
|
+
throw new Error(labels.errorSessionExpired);
|
|
103
|
+
}
|
|
104
|
+
else
|
|
105
|
+
return error.text()
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (error.message && error.message !== '')
|
|
109
|
+
throw error.message;
|
|
110
|
+
|
|
111
|
+
throw new Error(labels.errorGeneric);
|
|
112
|
+
})
|
|
113
|
+
.then(finalMessage => {
|
|
114
|
+
if (typeof (finalMessage) === 'object')
|
|
115
|
+
return finalMessage;
|
|
116
|
+
|
|
117
|
+
if (finalMessage)
|
|
118
|
+
throw new Error(finalMessage);
|
|
119
|
+
|
|
120
|
+
throw new Error(labels.errorGeneric);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export default FetchWrapper;
|