@firedesktop/react-base 1.16.0 → 1.17.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.
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import '../styles/toaster.css';
3
+ export declare type Toaster_Type = 'Error' | 'Information' | 'Success' | 'Warning';
4
+ export declare type Toaster_Prop_Type = {
5
+ content: string;
6
+ title: string;
7
+ type: Toaster_Type;
8
+ };
9
+ declare type Toaster_Props = {
10
+ propertiesObject: Toaster_Prop_Type;
11
+ };
12
+ declare const Toaster: ({ propertiesObject }: Toaster_Props) => JSX.Element;
13
+ export default Toaster;
@@ -0,0 +1,32 @@
1
+ import { ToastComponent } from '@syncfusion/ej2-react-notifications';
2
+ import React, { createRef, useEffect } from 'react';
3
+ import '../styles/toaster.css';
4
+ var Toaster = function (_a) {
5
+ var propertiesObject = _a.propertiesObject;
6
+ var toastObj = createRef();
7
+ var position = { X: 'Right' };
8
+ useEffect(function () {
9
+ var _a, _b, _c, _d;
10
+ if (propertiesObject && propertiesObject.title && propertiesObject.title !== '') {
11
+ toastObj.current.showCloseButton = true;
12
+ toastObj.current.showProgressBar = true;
13
+ if (propertiesObject.type === 'Information')
14
+ toastObj.current.show({ title: propertiesObject.title, content: (_a = propertiesObject.content) !== null && _a !== void 0 ? _a : '', cssClass: 'e-toast-info', icon: 'e-info toast-icons' });
15
+ else if (propertiesObject.type === 'Error')
16
+ toastObj.current.show({
17
+ title: propertiesObject.title,
18
+ content: (_b = propertiesObject.content) !== null && _b !== void 0 ? _b : '',
19
+ cssClass: 'e-toast-danger', icon: 'e-error toast-icons',
20
+ timeOut: 4000
21
+ });
22
+ else if (propertiesObject.type === 'Success')
23
+ toastObj.current.show({ title: propertiesObject.title, content: (_c = propertiesObject.content) !== null && _c !== void 0 ? _c : '', cssClass: 'e-toast-success', icon: 'e-success toast-icons' });
24
+ else if (propertiesObject.type === 'Warning')
25
+ toastObj.current.show({ title: propertiesObject.title, content: (_d = propertiesObject.content) !== null && _d !== void 0 ? _d : '', cssClass: 'e-toast-warning', icon: 'e-warning toast-icons' });
26
+ }
27
+ }, [propertiesObject]);
28
+ return (React.createElement(React.Fragment, null,
29
+ React.createElement(ToastComponent, { ref: toastObj, id: 'toast_default', position: position })));
30
+ };
31
+ export default Toaster;
32
+ //# sourceMappingURL=Toaster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toaster.js","sourceRoot":"","sources":["../../src/lib/components/Toaster.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,uBAAuB,CAAC;AAsB/B,IAAM,OAAO,GAAG,UAAC,EAAmC;QAAjC,gBAAgB,sBAAA;IAC/B,IAAM,QAAQ,GAAG,SAAS,EAAO,CAAC;IAClC,IAAM,QAAQ,GAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;IAEnD,SAAS,CAAC;;QACN,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,KAAK,IAAI,gBAAgB,CAAC,KAAK,KAAK,EAAE,EAAE;YAC7E,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;YACxC,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;YAExC,IAAI,gBAAgB,CAAC,IAAI,KAAK,aAAa;gBACvC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,QAAE,gBAAgB,CAAC,OAAO,mCAAI,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;iBACvJ,IAAI,gBAAgB,CAAC,IAAI,KAAK,OAAO;gBACtC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,KAAK,EAAE,gBAAgB,CAAC,KAAK;oBAAE,OAAO,QAAE,gBAAgB,CAAC,OAAO,mCAAI,EAAE;oBAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,qBAAqB;oBAC/H,OAAO,EAAE,IAAI;iBAChB,CAAC,CAAC;iBACF,IAAI,gBAAgB,CAAC,IAAI,KAAK,SAAS;gBACxC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,QAAE,gBAAgB,CAAC,OAAO,mCAAI,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;iBAC7J,IAAI,gBAAgB,CAAC,IAAI,KAAK,SAAS;gBACxC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,QAAE,gBAAgB,CAAC,OAAO,mCAAI,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;SACrK;IAEL,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,CACH,oBAAC,KAAK,CAAC,QAAQ;QACX,oBAAC,cAAc,IACX,GAAG,EAAE,QAAQ,EACb,EAAE,EAAC,eAAe,EAClB,QAAQ,EAAE,QAAQ,GAAmB,CAC5B,CACpB,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,50 @@
1
+ @font-face {
2
+ font-family: 'Toast_icons';
3
+ src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype');
4
+ font-weight: normal;
5
+ font-style: normal;
6
+ }
7
+
8
+ #toast_types button {
9
+ margin: 5px;
10
+ min-width: 160px;
11
+ max-width: 160px;
12
+ }
13
+
14
+ #toast_types {
15
+ text-align: center;
16
+ }
17
+
18
+ .toast-icons {
19
+ font-family: 'Toast_icons' !important;
20
+ speak: none;
21
+ font-size: 55px;
22
+ font-style: normal;
23
+ font-weight: normal;
24
+ font-variant: normal;
25
+ text-transform: none;
26
+ line-height: 1;
27
+ -webkit-font-smoothing: antialiased;
28
+ -moz-osx-font-smoothing: grayscale;
29
+ }
30
+
31
+ #toast_type .e-toast-icon.e-icons {
32
+ height: auto;
33
+ font-size: 30px;
34
+ }
35
+
36
+ .toast-icons.e-success::before {
37
+ content: "\e701";
38
+ }
39
+
40
+ .toast-icons.e-error::before {
41
+ content: "\e700";
42
+ }
43
+
44
+ .toast-icons.e-info::before {
45
+ content: "\e704";
46
+ }
47
+
48
+ .toast-icons.e-warning::before {
49
+ content: "\e703";
50
+ }
@@ -1,4 +1,5 @@
1
1
  export interface ILabels {
2
+ errorBadRequest: string;
2
3
  errorGeneric: string;
3
4
  errorServerNotAvailable: string;
4
5
  errorSessionExpired: string;
@@ -2,12 +2,13 @@ import * as Types from './Types';
2
2
  declare class FetchWrapper {
3
3
  apiVersion?: string;
4
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 | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
8
- post: (url: string, token?: string, params?: Blob | any, isFile?: boolean, isBlob?: boolean, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
9
- put: (url: string, token?: string, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
10
- delete: (url: string, token?: string, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
11
- generic: (method: string, url: string, token?: string, params?: Blob | any, isFile?: boolean, isBlob?: boolean, version?: string, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
5
+ status_401?: () => void;
6
+ status_403?: () => void;
7
+ constructor(apiVersion?: string, labels?: Types.ILabels, status_401?: () => void, status_403?: () => void);
8
+ get: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
9
+ post: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
10
+ put: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
11
+ delete: (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean) => Promise<any>;
12
+ generic: (method: string, url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile?: boolean, isBlob?: boolean, version?: string, additionalParams?: Types.AdditionalParamsType[]) => Promise<any>;
12
13
  }
13
14
  export default FetchWrapper;
@@ -2,6 +2,7 @@ var Constants = (function () {
2
2
  function Constants() {
3
3
  }
4
4
  Constants.labels = {
5
+ errorBadRequest: 'Request is not in a valid format',
5
6
  errorGeneric: 'Sorry we have errors on the remote server',
6
7
  errorServerNotAvailable: 'Server not available',
7
8
  errorSessionExpired: 'Your session has expired, please login.',
@@ -9,30 +10,30 @@ var Constants = (function () {
9
10
  return Constants;
10
11
  }());
11
12
  var FetchWrapper = (function () {
12
- function FetchWrapper(apiVersion, labels, status_401_403) {
13
+ function FetchWrapper(apiVersion, labels, status_401, status_403) {
13
14
  var _this = this;
14
- this.get = function (url, token, params, isFile, isBlob) {
15
+ this.get = function (url, token, onGenericServerError, params, isFile, isBlob) {
15
16
  if (isFile === void 0) { isFile = false; }
16
17
  if (isBlob === void 0) { isBlob = false; }
17
- return _this.generic('GET', url, token, params, isFile, isBlob);
18
+ return _this.generic('GET', url, token, onGenericServerError, params, isFile, isBlob);
18
19
  };
19
- this.post = function (url, token, params, isFile, isBlob, additionalParams) {
20
+ this.post = function (url, token, onGenericServerError, params, isFile, isBlob, additionalParams) {
20
21
  if (isFile === void 0) { isFile = false; }
21
22
  if (isBlob === void 0) { isBlob = false; }
22
23
  if (additionalParams === void 0) { additionalParams = []; }
23
- return _this.generic('POST', url, token, params, isFile, isBlob, _this.apiVersion, additionalParams);
24
+ return _this.generic('POST', url, token, onGenericServerError, params, isFile, isBlob, _this.apiVersion, additionalParams);
24
25
  };
25
- this.put = function (url, token, params, isFile, isBlob) {
26
+ this.put = function (url, token, onGenericServerError, params, isFile, isBlob) {
26
27
  if (isFile === void 0) { isFile = false; }
27
28
  if (isBlob === void 0) { isBlob = false; }
28
- return _this.generic('PUT', url, token, params, isFile, isBlob);
29
+ return _this.generic('PUT', url, token, onGenericServerError, params, isFile, isBlob);
29
30
  };
30
- this.delete = function (url, token, params, isFile, isBlob) {
31
+ this.delete = function (url, token, onGenericServerError, params, isFile, isBlob) {
31
32
  if (isFile === void 0) { isFile = false; }
32
33
  if (isBlob === void 0) { isBlob = false; }
33
- return _this.generic('DELETE', url, token, params, isFile, isBlob);
34
+ return _this.generic('DELETE', url, token, onGenericServerError, params, isFile, isBlob);
34
35
  };
35
- this.generic = function (method, url, token, params, isFile, isBlob, version, additionalParams) {
36
+ this.generic = function (method, url, token, onGenericServerError, params, isFile, isBlob, version, additionalParams) {
36
37
  if (isFile === void 0) { isFile = false; }
37
38
  if (isBlob === void 0) { isBlob = false; }
38
39
  if (version === void 0) { version = _this.apiVersion; }
@@ -70,7 +71,8 @@ var FetchWrapper = (function () {
70
71
  headers: headers
71
72
  };
72
73
  var labels = _this.labels;
73
- var status_401_403 = _this.status_401_403;
74
+ var status_401 = _this.status_401;
75
+ var status_403 = _this.status_403;
74
76
  return fetch(url, requestInit)
75
77
  .then(function (response) {
76
78
  if (response.status < 200 || response.status >= 300)
@@ -84,14 +86,25 @@ var FetchWrapper = (function () {
84
86
  console.error("Error on fetch url: " + url);
85
87
  if (!error || error.message === 'Failed to fetch')
86
88
  throw new Error(labels.errorServerNotAvailable);
87
- if (error.text) {
88
- if ((error.status === 401 || error.status === 403) && status_401_403) {
89
- status_401_403();
89
+ if (error.status === 401 && status_401) {
90
+ status_401();
91
+ }
92
+ else if (error.status === 403 && status_401) {
93
+ status_403();
94
+ }
95
+ else if (error.status === 400 && onGenericServerError) {
96
+ onGenericServerError(error.status);
97
+ }
98
+ if (!error.text) {
99
+ if (error.status === 400) {
100
+ throw new Error(labels.errorBadRequest);
101
+ }
102
+ else if (error.status === 401 || error.status === 403) {
90
103
  throw new Error(labels.errorSessionExpired);
91
104
  }
92
- else
93
- return error.text();
94
105
  }
106
+ else
107
+ return error.text();
95
108
  if (error.message && error.message !== '')
96
109
  throw error.message;
97
110
  throw new Error(labels.errorGeneric);
@@ -105,7 +118,8 @@ var FetchWrapper = (function () {
105
118
  });
106
119
  };
107
120
  this.apiVersion = apiVersion;
108
- this.status_401_403 = status_401_403;
121
+ this.status_401 = status_401;
122
+ this.status_403 = status_403;
109
123
  if (labels && labels !== null && labels.errorGeneric && labels.errorServerNotAvailable && labels.errorSessionExpired)
110
124
  this.labels = labels;
111
125
  else
@@ -1 +1 @@
1
- {"version":3,"file":"fetchWrapper.js","sourceRoot":"","sources":["../../../src/lib/utils/fetch/fetchWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetchWrapper.js","sourceRoot":"","sources":["../../../src/lib/utils/fetch/fetchWrapper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@firedesktop/react-base",
3
- "version": "1.16.0",
3
+ "version": "1.17.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.",
7
7
  "author": "alessandro.gambaro",
8
8
  "repository": "https://firedesktopDevOps@dev.azure.com/firedesktopDevOps/baseFEComponents/_git/baseFEComponents",
9
9
  "dependencies": {
10
- "@syncfusion/ej2-popups": "^18.3.47",
10
+ "@syncfusion/ej2-react-notifications": "18.3.47",
11
+ "@syncfusion/ej2-popups": "^18.3.50",
11
12
  "react": "^16.14.0",
12
13
  "react-dom": "^16.14.0",
13
14
  "react-redux": "^7.2.1"
@@ -36,7 +37,7 @@
36
37
  "peerDependencies": {},
37
38
  "scripts": {
38
39
  "distribute_not_working": "rmdir /s /q dist & mkdir dist && npx babel src/lib --out-dir dist --extensions \".js,.ts,.tsx\" --source-maps inline",
39
- "start": "react-scripts start && copy ./src/lib/styles/* ./dist/styles/ && tsc",
40
+ "start": "react-scripts start",
40
41
  "distribute": "rmdir /s /q dist & mkdir dist\\styles && tsc && copyfiles -f src/lib/styles/* dist/styles"
41
42
  },
42
43
  "eslintConfig": {
package/src/App.tsx CHANGED
@@ -31,16 +31,26 @@ function App() {
31
31
  const [options, setOptions] = useState<{ value: string }[]>([]);
32
32
  const [spinning, setSpinning] = useState(false);
33
33
 
34
- function status_401_403() {
35
- alert('Log Out');
34
+
35
+ function onGenericServerError(status: number) {
36
+ alert(`Error, Status: ${status}`);
37
+ }
38
+
39
+ function status_401() {
40
+ alert('Log Out 401');
41
+ }
42
+
43
+ function status_403() {
44
+ alert('Log Out 403');
36
45
  }
37
46
 
38
47
  const textFetch = () => {
39
48
  const labels = { errorGeneric: 'Errore generiro', errorServerNotAvailable: 'No serviziooo', errorSessionExpired: 'Sessione scadurta' } as Utils.Fetch.Types.ILabels;
40
49
 
41
- const runner = new Utils.Fetch.FetchWrapper(null, labels, status_401_403);
50
+ const runner = new Utils.Fetch.FetchWrapper(null, labels, status_401, status_403);
51
+
42
52
  setSpinning(true);
43
- runner.get('https://my-json-server.typicode.com/typicode/demo/posts', null, null, false, false).then(response => {
53
+ runner.get('https://my-json-server.typicode.com/typicode/demo/posts', null, onGenericServerError, null, false, false).then(response => {
44
54
  // @ts-ignore
45
55
  const values = response.map(x => {
46
56
  return { value: x.id, label: x.title };
@@ -52,7 +62,6 @@ function App() {
52
62
  if (errorMessage)
53
63
  console.log(errorMessage);
54
64
  });
55
-
56
65
  };
57
66
 
58
67
  const updateAppState = (name: string, value: object) => {
@@ -0,0 +1,61 @@
1
+ import { ToastComponent } from '@syncfusion/ej2-react-notifications';
2
+ import { PositionDataModel } from '@syncfusion/ej2-popups';
3
+ import React, { createRef, useEffect } from 'react';
4
+
5
+ import '../styles/toaster.css';
6
+
7
+
8
+ export type Toaster_Type =
9
+ | 'Error'
10
+ | 'Information'
11
+ | 'Success'
12
+ | 'Warning';
13
+
14
+ export type Toaster_Prop_Type = {
15
+ content: string,
16
+ title: string,
17
+ type: Toaster_Type
18
+ }
19
+
20
+ type Toaster_Props = {
21
+ propertiesObject: Toaster_Prop_Type
22
+ }
23
+
24
+ /**
25
+ * https://ej2.syncfusion.com/react/demos/?_ga=2.216203862.1349101002.1605820787-2080297629.1605485687#/material/toast/default
26
+ */
27
+ const Toaster = ({ propertiesObject }: Toaster_Props) => {
28
+ const toastObj = createRef<any>();
29
+ const position: PositionDataModel = { X: 'Right' };
30
+
31
+ useEffect(() => {
32
+ if (propertiesObject && propertiesObject.title && propertiesObject.title !== '') {
33
+ toastObj.current.showCloseButton = true;
34
+ toastObj.current.showProgressBar = true;
35
+
36
+ if (propertiesObject.type === 'Information')
37
+ toastObj.current.show({ title: propertiesObject.title, content: propertiesObject.content ?? '', cssClass: 'e-toast-info', icon: 'e-info toast-icons' });
38
+ else if (propertiesObject.type === 'Error')
39
+ toastObj.current.show({
40
+ title: propertiesObject.title, content: propertiesObject.content ?? '', cssClass: 'e-toast-danger', icon: 'e-error toast-icons',
41
+ timeOut: 4000
42
+ });
43
+ else if (propertiesObject.type === 'Success')
44
+ toastObj.current.show({ title: propertiesObject.title, content: propertiesObject.content ?? '', cssClass: 'e-toast-success', icon: 'e-success toast-icons' });
45
+ else if (propertiesObject.type === 'Warning')
46
+ toastObj.current.show({ title: propertiesObject.title, content: propertiesObject.content ?? '', cssClass: 'e-toast-warning', icon: 'e-warning toast-icons' });
47
+ }
48
+ // eslint-disable-next-line react-hooks/exhaustive-deps
49
+ }, [propertiesObject]);
50
+
51
+ return (
52
+ <React.Fragment>
53
+ <ToastComponent
54
+ ref={toastObj}
55
+ id='toast_default'
56
+ position={position}></ToastComponent>
57
+ </React.Fragment>
58
+ );
59
+ };
60
+
61
+ export default Toaster;
@@ -0,0 +1,50 @@
1
+ @font-face {
2
+ font-family: 'Toast_icons';
3
+ src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMj0gSRkAAAEoAAAAVmNtYXDnM+eRAAABsAAAAEpnbHlmzVnmlwAAAhgAAAZAaGVhZBEYIl8AAADQAAAANmhoZWEHlgN3AAAArAAAACRobXR4LvgAAAAAAYAAAAAwbG9jYQnUCGIAAAH8AAAAGm1heHABHQBcAAABCAAAACBuYW1lfUUTYwAACFgAAAKpcG9zdAxfTDgAAAsEAAAAggABAAADUv9qAFoEAAAAAAAD6AABAAAAAAAAAAAAAAAAAAAADAABAAAAAQAACcU5MF8PPPUACwPoAAAAANcI7skAAAAA1wjuyQAAAAAD6APoAAAACAACAAAAAAAAAAEAAAAMAFAABwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQPqAZAABQAAAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5wDnCgNS/2oAWgPoAJYAAAABAAAAAAAABAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA2AAAABAAEAAEAAOcK//8AAOcA//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsAAAAAAAAAQgB8AMIA4gEcAZQCBgJwAo4DAAMgAAAAAwAAAAADlAOUAAsAFwAjAAABFwcXNxc3JzcnBycFDgEHLgEnPgE3HgEFHgEXPgE3LgEnDgEBTXh4L3h4L3h4L3h4AbwDt4qKtwMDt4qKt/0eBeuxsesFBeuxsesCbHh4L3h4L3h4L3h4p4q3AwO3ioq3AwO3irHrBQXrsbHrBQXrAAAAAwAAAAADlAOUAAUAEQAdAAABJwcXAScXDgEHLgEnPgE3HgEFHgEXPgE3LgEnDgEBr2UylwEbMqADt4qKtwMDt4qKt/0eBeuxsesFBeuxsesBrGQylgEcMqKKtwMDt4qKtwMDt4qx6wUF67Gx6wUF6wAAAAAFAAAAAAOUA5cABQARAB0AIQAlAAABFzcnNSMFDgEHLgEnPgE3HgEFHgEXPgE3LgEnDgElFzcnBRc3JwHKxiCnPwFOA6V8fKUDA6V8fKX9aATToJ/UBATUn5/UAh7ANsD9fja/NQGedzNj29F8pAMDpHx8pQMDpXyf1AQE1J+g0wQE0/GhQKGhQKFAAAQAAAAAA74DfgADAAcACgANAAAlMzUjNTM1IwEhCQEhAQHLUlJSUgFj/YwBOv42A5T+NuZUUqf+igIc/ZADFgAEAAAAAAOUA5QAAwAHABMAHwAAATM1IzUzNSMFDgEHLgEnPgE3HgEFHgEXPgE3LgEnDgEBylRUVFQBbgO3ioq3AwO3ioq3/R4F67Gx6wUF67Gx6wEk+lNT0Iq3AwO3ioq3AwO3irHrBQXrsbHrBQXrAAAAAAcAAAAAA+gDMQALABUAJQAuADcAQQBLAAABFhcVITUmJz4BMxYFFhcVITU+ATcWJQYHFSE1LgEjIgYHLgEjIgEWFAYiJjQ2MgUWFAYiJjQ2MiUGFBYXPgE0JiIFBhQWFz4BNCYiA1xEBP6sAxUeRiRX/qxEBP45BIlXV/7xZQsD6AvKUypvMzNvKlMCKxozTTMzTP6CGTNMNDRMAQItWUREWlqI/jstWkREWVmIAWMbFjc3IBgKDwQcGxY3NxY3BAQjJUt7e0tKFxgYFwEMGU01NU0zGhlNNTVNMxYthloCAlqGWy4thloCAlqGWwAAAAQAAAAAA5wCxwAIABQANABFAAABFBYyNjQmIgYXDgEHLgEnPgE3HgEfAQcOAQ8BNz4BNS4BJw4BBxQWHwEnLgEvATc+ATc2FiUOAQ8BFx4BNz4BPwEnJiciAb8fLR4eLR+wAkU0NEUBAUU0NEX8BgEemG0FBB8kAlZBQFcBKyUCCkeVTAYBH76RVMP+3bDPBwcKZclcu/AGCwrM2AoBxxYfHy0eHhc0RQEBRTQ1RQEBRSgEARpWGAECFUIoQVcCAldBLEYUAQEIQkAGASJsBwFCoRbFFAoJW0sBCo8LCgztAQAAAAIAAAAAA4ADbAA4AEEAAAEEJCcmDgEWFx4BHwEVFAYHDgEnJg4BFhcWNjc2Fx4BBx4BFzc+ASc2JicmJzUzPgE3PgEnJicjIiUUFjI2NCYiBgNM/tz+pwwMGxEDDAaMfAcSETKEQw8WBg8Og80hNSg4JwICEw0FDhECAjFJEBICPYhKDQgGChQCB/5dMUgxMUgxAuB/ZRcIAxgbCQdHEQGTGi8TOVgKAw8dFwMNuDUFHTGDCA0QAQECFQ8Mnz8LCasJKiUHGg0SATMkMDBJMDAAAAAAAgAAAAAC/QMkAAMADQAAAQchJxMeATMhMjY3EyEC2x3+bB0kBCQZAQQZJARH/ewDBuDg/fcZICAZAicAAwAAAAACzwPoACwAQwBPAAABERQfARYfAzMVHgE7ATI2NRE0JisBNTEWOwEyNjQmJyMiJi8BLgErAQ4BAxUzNTQ2NzMeARcVMzUuAScjIgcjESM1HgEXPgE3LgEnDgEBVQEBAwQCCAjXARENOg0REQ2zDROVExoaE2UQGAQfAxAKYg0RPR8RDZcNEQEeASIalxANAR8CTTo6TQEBTTo6TQJ8/nYEBQIGBAIFArYNERENARENEUoNGicZARMPfQoNARH98Hl5DREBARENeXkaIgEIAe3FOk0CAk06Ok0BAU0AAAAAAgAAAAAC5gMyAAkAEQAAJRQWMyEyNjURITcjFSE1IycjASApHgEaHin+WFBuAeR+JLD8HigoHgGfeT09HgAAAAAAEgDeAAEAAAAAAAAAAQAAAAEAAAAAAAEAEgABAAEAAAAAAAIABwATAAEAAAAAAAMAEgAaAAEAAAAAAAQAEgAsAAEAAAAAAAUACwA+AAEAAAAAAAYAEgBJAAEAAAAAAAoALABbAAEAAAAAAAsAEgCHAAMAAQQJAAAAAgCZAAMAAQQJAAEAJACbAAMAAQQJAAIADgC/AAMAAQQJAAMAJADNAAMAAQQJAAQAJADxAAMAAQQJAAUAFgEVAAMAAQQJAAYAJAErAAMAAQQJAAoAWAFPAAMAAQQJAAsAJAGnIEZpbmFsIFRvYXN0IE1ldHJvcFJlZ3VsYXJGaW5hbCBUb2FzdCBNZXRyb3BGaW5hbCBUb2FzdCBNZXRyb3BWZXJzaW9uIDEuMEZpbmFsIFRvYXN0IE1ldHJvcEZvbnQgZ2VuZXJhdGVkIHVzaW5nIFN5bmNmdXNpb24gTWV0cm8gU3R1ZGlvd3d3LnN5bmNmdXNpb24uY29tACAARgBpAG4AYQBsACAAVABvAGEAcwB0ACAATQBlAHQAcgBvAHAAUgBlAGcAdQBsAGEAcgBGAGkAbgBhAGwAIABUAG8AYQBzAHQAIABNAGUAdAByAG8AcABGAGkAbgBhAGwAIABUAG8AYQBzAHQAIABNAGUAdAByAG8AcABWAGUAcgBzAGkAbwBuACAAMQAuADAARgBpAG4AYQBsACAAVABvAGEAcwB0ACAATQBlAHQAcgBvAHAARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAdQBzAGkAbgBnACAAUwB5AG4AYwBmAHUAcwBpAG8AbgAgAE0AZQB0AHIAbwAgAFMAdAB1AGQAaQBvAHcAdwB3AC4AcwB5AG4AYwBmAHUAcwBpAG8AbgAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQAFRXJyb3IHU3VjY2VzcwVBbGFybQdXYXJuaW5nBEluZm8HTWVldGluZwVCbGluawdTdHJldGNoA1NpcANTaXQFVHJhc2gAAAAA) format('truetype');
4
+ font-weight: normal;
5
+ font-style: normal;
6
+ }
7
+
8
+ #toast_types button {
9
+ margin: 5px;
10
+ min-width: 160px;
11
+ max-width: 160px;
12
+ }
13
+
14
+ #toast_types {
15
+ text-align: center;
16
+ }
17
+
18
+ .toast-icons {
19
+ font-family: 'Toast_icons' !important;
20
+ speak: none;
21
+ font-size: 55px;
22
+ font-style: normal;
23
+ font-weight: normal;
24
+ font-variant: normal;
25
+ text-transform: none;
26
+ line-height: 1;
27
+ -webkit-font-smoothing: antialiased;
28
+ -moz-osx-font-smoothing: grayscale;
29
+ }
30
+
31
+ #toast_type .e-toast-icon.e-icons {
32
+ height: auto;
33
+ font-size: 30px;
34
+ }
35
+
36
+ .toast-icons.e-success::before {
37
+ content: "\e701";
38
+ }
39
+
40
+ .toast-icons.e-error::before {
41
+ content: "\e700";
42
+ }
43
+
44
+ .toast-icons.e-info::before {
45
+ content: "\e704";
46
+ }
47
+
48
+ .toast-icons.e-warning::before {
49
+ content: "\e703";
50
+ }
@@ -1,4 +1,5 @@
1
1
  export interface ILabels {
2
+ errorBadRequest: string,
2
3
  errorGeneric: string;
3
4
  errorServerNotAvailable: string;
4
5
  errorSessionExpired: string;
@@ -2,6 +2,7 @@ import * as Types from './Types';
2
2
 
3
3
  class Constants {
4
4
  static labels = {
5
+ errorBadRequest: 'Request is not in a valid format',
5
6
  errorGeneric: 'Sorry we have errors on the remote server',
6
7
  errorServerNotAvailable: 'Server not available',
7
8
  errorSessionExpired: 'Your session has expired, please login.',
@@ -11,11 +12,13 @@ class Constants {
11
12
  class FetchWrapper {
12
13
  apiVersion?: string;
13
14
  labels?: Types.ILabels;
14
- status_401_403?: () => void;
15
+ status_401?: () => void;
16
+ status_403?: () => void;
15
17
 
16
- constructor(apiVersion?: string, labels?: Types.ILabels, status_401_403?: () => void) {
18
+ constructor(apiVersion?: string, labels?: Types.ILabels, status_401?: () => void, status_403?: () => void) {
17
19
  this.apiVersion = apiVersion;
18
- this.status_401_403 = status_401_403;
20
+ this.status_401 = status_401;
21
+ this.status_403 = status_403;
19
22
 
20
23
  if (labels && labels !== null && labels.errorGeneric && labels.errorServerNotAvailable && labels.errorSessionExpired)
21
24
  this.labels = labels;
@@ -23,23 +26,23 @@ class FetchWrapper {
23
26
  this.labels = Constants.labels;
24
27
  }
25
28
 
26
- get = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false) => {
27
- return this.generic('GET', url, token, params, isFile, isBlob);
29
+ get = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false) => {
30
+ return this.generic('GET', url, token, onGenericServerError, params, isFile, isBlob);
28
31
  }
29
32
 
30
- post = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false, additionalParams: Types.AdditionalParamsType[] = []) => {
31
- return this.generic('POST', url, token, params, isFile, isBlob, this.apiVersion, additionalParams);
33
+ post = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false, additionalParams: Types.AdditionalParamsType[] = []) => {
34
+ return this.generic('POST', url, token, onGenericServerError, params, isFile, isBlob, this.apiVersion, additionalParams);
32
35
  }
33
36
 
34
- put = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false) => {
35
- return this.generic('PUT', url, token, params, isFile, isBlob);
37
+ put = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false) => {
38
+ return this.generic('PUT', url, token, onGenericServerError, params, isFile, isBlob);
36
39
  }
37
40
 
38
- delete = (url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false) => {
39
- return this.generic('DELETE', url, token, params, isFile, isBlob);
41
+ delete = (url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false) => {
42
+ return this.generic('DELETE', url, token, onGenericServerError, params, isFile, isBlob);
40
43
  }
41
44
 
42
- generic = (method: string, url: string, token?: string, params?: Blob | any, isFile = false, isBlob = false, version = this.apiVersion, additionalParams: Types.AdditionalParamsType[] = []) => {
45
+ generic = (method: string, url: string, token?: string, onGenericServerError?: (status: number) => void, params?: Blob | any, isFile = false, isBlob = false, version = this.apiVersion, additionalParams: Types.AdditionalParamsType[] = []) => {
43
46
  // Headers & Body
44
47
  let body: BodyInit;
45
48
  const headers = new Headers();
@@ -76,7 +79,8 @@ class FetchWrapper {
76
79
  } as RequestInit;
77
80
 
78
81
  const labels = this.labels;
79
- const status_401_403 = this.status_401_403;
82
+ const status_401 = this.status_401;
83
+ const status_403 = this.status_403;
80
84
 
81
85
  return fetch(url, requestInit)
82
86
  .then(response => {
@@ -95,15 +99,24 @@ class FetchWrapper {
95
99
  if (!error || error.message === 'Failed to fetch')
96
100
  throw new Error(labels.errorServerNotAvailable);
97
101
 
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
+ // This is an error coming from BE
103
+ if (error.status === 401 && status_401) {
104
+ status_401();
105
+ } else if (error.status === 403 && status_401) {
106
+ status_403();
107
+ } else if (error.status === 400 && onGenericServerError) {
108
+ onGenericServerError(error.status);
109
+ }
110
+
111
+ if (!error.text) {
112
+ if (error.status === 400) {
113
+ throw new Error(labels.errorBadRequest);
114
+ } else if (error.status === 401 || error.status === 403) {
102
115
  throw new Error(labels.errorSessionExpired);
103
116
  }
104
- else
105
- return error.text();
106
117
  }
118
+ else
119
+ return error.text();
107
120
 
108
121
  if (error.message && error.message !== '')
109
122
  throw error.message;
package/debug.log DELETED
@@ -1,2 +0,0 @@
1
- [1118/091940.733:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)
2
- [1118/100751.068:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3)