@beinformed/ui 1.15.1 → 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.
- package/CHANGELOG.md +20 -0
- package/esm/hooks/useAuthentication.js +4 -1
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/models/application/ApplicationModel.js +13 -2
- package/esm/models/application/ApplicationModel.js.map +1 -1
- package/esm/models/attributes/AttributeContent.js +4 -7
- package/esm/models/attributes/AttributeContent.js.map +1 -1
- package/esm/models/href/Href.js +11 -1
- package/esm/models/href/Href.js.map +1 -1
- package/esm/redux/actions/SignIn.js +9 -0
- package/esm/redux/actions/SignIn.js.map +1 -1
- package/esm/redux/reducers/AuthReducer.js +5 -0
- package/esm/redux/reducers/AuthReducer.js.map +1 -1
- package/esm/utils/helpers/checkResource.js +39 -0
- package/esm/utils/helpers/checkResource.js.map +1 -0
- package/esm/utils/index.js +1 -1
- package/esm/utils/index.js.map +1 -1
- package/lib/hooks/useAuthentication.js +3 -0
- package/lib/hooks/useAuthentication.js.flow +7 -5
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/models/application/ApplicationModel.js +13 -2
- package/lib/models/application/ApplicationModel.js.flow +7 -0
- package/lib/models/application/ApplicationModel.js.map +1 -1
- package/lib/models/attributes/AttributeContent.js +4 -7
- package/lib/models/attributes/AttributeContent.js.flow +3 -6
- package/lib/models/attributes/AttributeContent.js.map +1 -1
- package/lib/models/href/Href.js +11 -1
- package/lib/models/href/Href.js.flow +12 -1
- package/lib/models/href/Href.js.map +1 -1
- package/lib/redux/actions/SignIn.js +14 -2
- package/lib/redux/actions/SignIn.js.flow +8 -0
- package/lib/redux/actions/SignIn.js.map +1 -1
- package/lib/redux/reducers/AuthReducer.js +5 -0
- package/lib/redux/reducers/AuthReducer.js.flow +3 -0
- package/lib/redux/reducers/AuthReducer.js.map +1 -1
- package/lib/redux/reducers/__tests__/AuthReducer.spec.js.flow +52 -13
- package/lib/redux/types.js.flow +5 -0
- package/lib/utils/helpers/__tests__/checkResource.spec.js.flow +60 -0
- package/lib/utils/helpers/checkResource.js +54 -0
- package/lib/utils/helpers/checkResource.js.flow +42 -0
- package/lib/utils/helpers/checkResource.js.map +1 -0
- package/lib/utils/index.js +4 -4
- package/lib/utils/index.js.flow +1 -1
- package/lib/utils/index.js.map +1 -1
- package/package.json +10 -10
- package/src/hooks/useAuthentication.js +7 -5
- package/src/models/application/ApplicationModel.js +7 -0
- package/src/models/attributes/AttributeContent.js +3 -6
- package/src/models/href/Href.js +12 -1
- package/src/redux/actions/SignIn.js +8 -0
- package/src/redux/reducers/AuthReducer.js +3 -0
- package/src/redux/reducers/__tests__/AuthReducer.spec.js +52 -13
- package/src/redux/types.js +5 -0
- package/src/utils/helpers/__tests__/checkResource.spec.js +60 -0
- package/src/utils/helpers/checkResource.js +42 -0
- package/src/utils/index.js +1 -1
- package/esm/utils/helpers/checkResourceExists.js +0 -23
- package/esm/utils/helpers/checkResourceExists.js.map +0 -1
- package/lib/utils/helpers/checkResourceExists.js +0 -34
- package/lib/utils/helpers/checkResourceExists.js.flow +0 -21
- package/lib/utils/helpers/checkResourceExists.js.map +0 -1
- package/src/utils/helpers/checkResourceExists.js +0 -21
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [1.17.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.16.1...v1.17.0) (2022-03-29)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- **application:** add isLoggedIn method to application ([61a340d](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/61a340d12703c2db0c351c3ab23c4bfed12c4f12))
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
- **check-resource:** handle Href as input argument for resourceExists and resourceRedirectsToSecureLogin ([c49e671](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/c49e6715addb2703222ecf4a8b120fc9cb814f35))
|
|
14
|
+
- **href:** absolute href no longer prefixes querystring, use absolutehrefPrefixedQuerystring if needed ([2ff2abd](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/2ff2abd8ce6f6f9545dd82c573891f344ed49c09))
|
|
15
|
+
|
|
16
|
+
### [1.16.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.16.0...v1.16.1) (2022-03-22)
|
|
17
|
+
|
|
18
|
+
## [1.16.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.15.1...v1.16.0) (2022-03-22)
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
- **authentication:** add action to reset authentication errors in auth reducer ([600c130](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/600c130bd5684f7d6fb677d6115f58145a709de7))
|
|
23
|
+
- **check-resource:** add method to check if a resource redirects to secureLogin ([ec5346b](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/ec5346b602e277dcb2c5a8c11efc8dfa6be4086e))
|
|
24
|
+
|
|
5
25
|
### [1.15.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.15.0...v1.15.1) (2022-03-21)
|
|
6
26
|
|
|
7
27
|
### Bug Fixes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
|
2
2
|
import { useSelector, useDispatch } from "react-redux";
|
|
3
3
|
import { getApplication } from "../redux/_modularui/selectors";
|
|
4
|
-
import { login as _login, logout as _logout } from "../redux/actions";
|
|
4
|
+
import { login as _login, logout as _logout, resetAuthErrors } from "../redux/actions";
|
|
5
5
|
import UserServicesModel from "../models/user/UserServicesModel";
|
|
6
6
|
import { useState, useEffect } from "react";
|
|
7
7
|
|
|
@@ -31,6 +31,9 @@ export var useLogin = function useLogin() {
|
|
|
31
31
|
return {
|
|
32
32
|
isAuthenticated: getIsAuthenticated(auth.isAuthenticated, application),
|
|
33
33
|
errorMessage: auth.error,
|
|
34
|
+
resetErrors: function resetErrors() {
|
|
35
|
+
return dispatch(resetAuthErrors());
|
|
36
|
+
},
|
|
34
37
|
login: function login(username, password) {
|
|
35
38
|
return dispatch(_login(username, password));
|
|
36
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useAuthentication.js"],"names":["useSelector","useDispatch","getApplication","login","logout","UserServicesModel","useState","useEffect","getIsAuthenticated","isAuthenticated","application","userServicesModel","userServices","isLoggedIn","useLogin","dispatch","auth","state","errorMessage","error","username","password","useLogout","cancel","setCancel","setIsAuthenticated","then"],"mappings":";AACA,SAASA,WAAT,EAAsBC,WAAtB,QAAyC,aAAzC;AACA,SAASC,cAAT,QAA+B,+BAA/B;AACA,SAASC,KAAK,IAALA,MAAT,EAAgBC,MAAM,IAANA,OAAhB,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useAuthentication.js"],"names":["useSelector","useDispatch","getApplication","login","logout","resetAuthErrors","UserServicesModel","useState","useEffect","getIsAuthenticated","isAuthenticated","application","userServicesModel","userServices","isLoggedIn","useLogin","dispatch","auth","state","errorMessage","error","resetErrors","username","password","useLogout","cancel","setCancel","setIsAuthenticated","then"],"mappings":";AACA,SAASA,WAAT,EAAsBC,WAAtB,QAAyC,aAAzC;AACA,SAASC,cAAT,QAA+B,+BAA/B;AACA,SAASC,KAAK,IAALA,MAAT,EAAgBC,MAAM,IAANA,OAAhB,EAAwBC,eAAxB,QAA+C,kBAA/C;AACA,OAAOC,iBAAP,MAA8B,kCAA9B;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;;AAcA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,eAAD,EAAkBC,WAAlB,EAAkC;AAC3D,MAAI,CAACA,WAAL,EAAkB;AAChB,WAAO,KAAP;AACD;;AAED,MAAMC,iBAAiB,GAAGD,WAAW,CAACE,YAAtC;;AACA,MAAID,iBAAiB,YAAYN,iBAAjC,EAAoD;AAClD,WAAOI,eAAe,IAAIE,iBAAiB,CAACE,UAA5C;AACD;;AAED,SAAO,KAAP;AACD,CAXD;AAaA;AACA;;;AACA,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,GAAiB;AACvC,MAAMC,QAAQ,GAAGf,WAAW,EAA5B;AAEA,MAAMU,WAAW,GAAGX,WAAW,CAACE,cAAD,CAA/B;AACA,MAAMe,IAAI,GAAGjB,WAAW,CAAC,UAACkB,KAAD;AAAA,WAAWA,KAAK,CAACD,IAAjB;AAAA,GAAD,CAAxB;AAEA,SAAO;AACLP,IAAAA,eAAe,EAAED,kBAAkB,CAACQ,IAAI,CAACP,eAAN,EAAuBC,WAAvB,CAD9B;AAELQ,IAAAA,YAAY,EAAEF,IAAI,CAACG,KAFd;AAGLC,IAAAA,WAAW,EAAE;AAAA,aAAML,QAAQ,CAACX,eAAe,EAAhB,CAAd;AAAA,KAHR;AAILF,IAAAA,KAAK,EAAE,eAACmB,QAAD,EAAmBC,QAAnB;AAAA,aACLP,QAAQ,CAACb,MAAK,CAACmB,QAAD,EAAWC,QAAX,CAAN,CADH;AAAA;AAJF,GAAP;AAOD,CAbM;AAeP;AACA;;AACA,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAAY,GAAkB;AACzC,MAAMR,QAAQ,GAAGf,WAAW,EAA5B;AACA,MAAMU,WAAW,GAAGX,WAAW,CAACE,cAAD,CAA/B;AACA,MAAMe,IAAI,GAAGjB,WAAW,CAAC,UAACkB,KAAD;AAAA;;AAAA,WAAW,gBAAAA,KAAK,CAACD,IAAN,4DAAYP,eAAZ,KAA+B,KAA1C;AAAA,GAAD,CAAxB;;AAEA,kBAA4BH,QAAQ,CAAC,KAAD,CAApC;AAAA;AAAA,MAAOkB,MAAP;AAAA,MAAeC,SAAf;;AACA,mBAA8CnB,QAAQ,CAAC;AAAA,WACrDE,kBAAkB,CAACQ,IAAD,EAAON,WAAP,CADmC;AAAA,GAAD,CAAtD;AAAA;AAAA,MAAOD,eAAP;AAAA,MAAwBiB,kBAAxB,iBANyC,CAUzC;AACA;;;AACAnB,EAAAA,SAAS,CAAC,YAAM;AACd,WAAO,YAAM;AACXkB,MAAAA,SAAS,CAAC,IAAD,CAAT;AACD,KAFD;AAGD,GAJQ,EAIN,EAJM,CAAT;AAMA,SAAO;AACLhB,IAAAA,eAAe,EAAfA,eADK;AAELN,IAAAA,MAAM,EAAE;AAAA,aACNY,QAAQ,CAACZ,OAAM,EAAP,CAAR,CAAmBwB,IAAnB,CAAwB,YAAM;AAC5B,YAAI,CAACH,MAAL,EAAa;AACXE,UAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD;AACF,OAJD,CADM;AAAA;AAFH,GAAP;AASD,CA3BM","sourcesContent":["// @flow\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { getApplication } from \"../redux/_modularui/selectors\";\nimport { login, logout, resetAuthErrors } from \"../redux/actions\";\nimport UserServicesModel from \"../models/user/UserServicesModel\";\nimport { useState, useEffect } from \"react\";\n\nimport type { ResetAuthErrorsAction } from \"../redux/types\";\ntype LoginHook = {\n isAuthenticated: boolean,\n errorMessage: ?string,\n resetErrors: () => ResetAuthErrorsAction,\n login: (username: string, password: string) => void,\n};\ntype LogoutHook = {\n isAuthenticated: boolean,\n logout: () => void,\n};\n\nconst getIsAuthenticated = (isAuthenticated, application) => {\n if (!application) {\n return false;\n }\n\n const userServicesModel = application.userServices;\n if (userServicesModel instanceof UserServicesModel) {\n return isAuthenticated && userServicesModel.isLoggedIn;\n }\n\n return false;\n};\n\n/**\n */\nexport const useLogin = (): LoginHook => {\n const dispatch = useDispatch();\n\n const application = useSelector(getApplication);\n const auth = useSelector((state) => state.auth);\n\n return {\n isAuthenticated: getIsAuthenticated(auth.isAuthenticated, application),\n errorMessage: auth.error,\n resetErrors: () => dispatch(resetAuthErrors()),\n login: (username: string, password: string) =>\n dispatch(login(username, password)),\n };\n};\n\n/**\n */\nexport const useLogout = (): LogoutHook => {\n const dispatch = useDispatch();\n const application = useSelector(getApplication);\n const auth = useSelector((state) => state.auth?.isAuthenticated || false);\n\n const [cancel, setCancel] = useState(false);\n const [isAuthenticated, setIsAuthenticated] = useState(() =>\n getIsAuthenticated(auth, application)\n );\n\n // set cancel to true when the component this hook is used on, has been unmounted\n // prevents state changes after unmount\n useEffect(() => {\n return () => {\n setCancel(true);\n };\n }, []);\n\n return {\n isAuthenticated,\n logout: () =>\n dispatch(logout()).then(() => {\n if (!cancel) {\n setIsAuthenticated(false);\n }\n }),\n };\n};\n"],"file":"useAuthentication.js"}
|
|
@@ -125,13 +125,24 @@ var ApplicationModel = /*#__PURE__*/function (_ResourceModel) {
|
|
|
125
125
|
return this._userServices ? this._userServices : null;
|
|
126
126
|
}
|
|
127
127
|
/**
|
|
128
|
-
*
|
|
129
|
-
* only available when the user services are available
|
|
128
|
+
* Indicates if the user is logged in
|
|
130
129
|
*/
|
|
131
130
|
,
|
|
132
131
|
set: function set(model) {
|
|
133
132
|
this._userServices = model instanceof UserServicesModel ? model : null;
|
|
134
133
|
}
|
|
134
|
+
}, {
|
|
135
|
+
key: "isLoggedIn",
|
|
136
|
+
get: function get() {
|
|
137
|
+
var _this$userServices$is, _this$userServices;
|
|
138
|
+
|
|
139
|
+
return (_this$userServices$is = (_this$userServices = this.userServices) === null || _this$userServices === void 0 ? void 0 : _this$userServices.isLoggedIn) !== null && _this$userServices$is !== void 0 ? _this$userServices$is : false;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Retrieve link to the user information,
|
|
143
|
+
* only available when the user services are available
|
|
144
|
+
*/
|
|
145
|
+
|
|
135
146
|
}, {
|
|
136
147
|
key: "userHref",
|
|
137
148
|
get: function get() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/application/ApplicationModel.js"],"names":["ResourceModel","LinkModel","UserServicesModel","NotAllowedUriException","ApplicationModel","userService","links","getLinkByKey","href","path","models","userServiceModel","model","type","userServices","getContribution","getLinksByGroup","create","_userServices","userLink","data","contributions","resourcetype"],"mappings":";;;;;;;;;;;;;;;AACA,OAAOA,aAAP,MAA0B,uBAA1B;AACA,OAAOC,SAAP,MAAsB,oBAAtB;AACA,OAAOC,iBAAP,MAA8B,2BAA9B;AAEA,SAASC,sBAAT,QAAuC,kBAAvC;;AAOA;AACA;AACA;IACqBC,gB;;;;;;;;;;;;;;;;;;;;;;;;;;AAGnB;AACF;AACA;AACE,mBAAmB;AACjB,aAAO,aAAP;AACD;AAED;AACF;;;;;AAQE;AACF;AACE,yCAA8C;AAC5C,UAAMC,WAAW,GAAG,KAAKC,KAAL,CAAWC,YAAX,CAAwB,cAAxB,CAApB;;AACA,UAAIF,WAAW,IAAIA,WAAW,CAACG,IAAZ,CAAiBC,IAAjB,KAA0B,QAA7C,EAAuD;AACrD,cAAM,IAAIN,sBAAJ,CACJ,kIADI,CAAN;AAGD;;AAED,aAAOE,WAAW,GAAG,CAACA,WAAD,CAAH,GAAmB,EAArC;AACD;AAED;AACF;;;;WACE,wBAAeK,MAAf,EAA8C;AAC5C,UAAMC,gBAAgB,GAAG,sBAAAD,MAAM,MAAN,CAAAA,MAAM,EAC7B,UAACE,KAAD;AAAA,eAAWA,KAAK,CAACC,IAAN,KAAe,cAA1B;AAAA,OAD6B,CAA/B;;AAIA,UAAIF,gBAAJ,EAAsB;AACpB,aAAKG,YAAL,GAAoBH,gBAApB;AACD;AACF;AAED;AACF;AACA;;;;SACE,eAAoB;AAClB,aAAO,KAAKI,eAAL,CAAqB,OAArB,EAA8B,EAA9B,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA2B;AACzB,aAAO,KAAKT,KAAL,CAAWU,eAAX,CAA2B,KAA3B,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA8B;AAC5B,aAAOf,SAAS,CAACgB,MAAV,CAAiB,cAAjB,EAAiC,eAAjC,EAAkD,eAAlD,CAAP;AACD;AAED;AACF;AACA;;;;;AAKE;AACF;AACA;AACE,mBAAuC;AACrC,aAAO,KAAKC,aAAL,GAAqB,KAAKA,aAA1B,GAA0C,IAAjD;AACD;AAED;AACF;AACA
|
|
1
|
+
{"version":3,"sources":["../../../src/models/application/ApplicationModel.js"],"names":["ResourceModel","LinkModel","UserServicesModel","NotAllowedUriException","ApplicationModel","userService","links","getLinkByKey","href","path","models","userServiceModel","model","type","userServices","getContribution","getLinksByGroup","create","_userServices","isLoggedIn","userLink","data","contributions","resourcetype"],"mappings":";;;;;;;;;;;;;;;AACA,OAAOA,aAAP,MAA0B,uBAA1B;AACA,OAAOC,SAAP,MAAsB,oBAAtB;AACA,OAAOC,iBAAP,MAA8B,2BAA9B;AAEA,SAASC,sBAAT,QAAuC,kBAAvC;;AAOA;AACA;AACA;IACqBC,gB;;;;;;;;;;;;;;;;;;;;;;;;;;AAGnB;AACF;AACA;AACE,mBAAmB;AACjB,aAAO,aAAP;AACD;AAED;AACF;;;;;AAQE;AACF;AACE,yCAA8C;AAC5C,UAAMC,WAAW,GAAG,KAAKC,KAAL,CAAWC,YAAX,CAAwB,cAAxB,CAApB;;AACA,UAAIF,WAAW,IAAIA,WAAW,CAACG,IAAZ,CAAiBC,IAAjB,KAA0B,QAA7C,EAAuD;AACrD,cAAM,IAAIN,sBAAJ,CACJ,kIADI,CAAN;AAGD;;AAED,aAAOE,WAAW,GAAG,CAACA,WAAD,CAAH,GAAmB,EAArC;AACD;AAED;AACF;;;;WACE,wBAAeK,MAAf,EAA8C;AAC5C,UAAMC,gBAAgB,GAAG,sBAAAD,MAAM,MAAN,CAAAA,MAAM,EAC7B,UAACE,KAAD;AAAA,eAAWA,KAAK,CAACC,IAAN,KAAe,cAA1B;AAAA,OAD6B,CAA/B;;AAIA,UAAIF,gBAAJ,EAAsB;AACpB,aAAKG,YAAL,GAAoBH,gBAApB;AACD;AACF;AAED;AACF;AACA;;;;SACE,eAAoB;AAClB,aAAO,KAAKI,eAAL,CAAqB,OAArB,EAA8B,EAA9B,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA2B;AACzB,aAAO,KAAKT,KAAL,CAAWU,eAAX,CAA2B,KAA3B,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA8B;AAC5B,aAAOf,SAAS,CAACgB,MAAV,CAAiB,cAAjB,EAAiC,eAAjC,EAAkD,eAAlD,CAAP;AACD;AAED;AACF;AACA;;;;;AAKE;AACF;AACA;AACE,mBAAuC;AACrC,aAAO,KAAKC,aAAL,GAAqB,KAAKA,aAA1B,GAA0C,IAAjD;AACD;AAED;AACF;AACA;;SAbE,aAAiBN,KAAjB,EAAyC;AACvC,WAAKM,aAAL,GAAqBN,KAAK,YAAYV,iBAAjB,GAAqCU,KAArC,GAA6C,IAAlE;AACD;;;SAYD,eAA0B;AAAA;;AACxB,4DAAO,KAAKE,YAAZ,uDAAO,mBAAmBK,UAA1B,yEAAwC,KAAxC;AACD;AAED;AACF;AACA;AACA;;;;SACE,eAA4B;AAC1B,UAAI,KAAKL,YAAL,IAAqB,IAArB,IAA6B,KAAKA,YAAL,CAAkBM,QAAlB,IAA8B,IAA/D,EAAqE;AACnE,eAAO,KAAKN,YAAL,CAAkBM,QAAlB,CAA2BZ,IAAlC;AACD;;AAED,aAAO,IAAP;AACD;;;WApFD,2BAAyBa,IAAzB,EAA2D;AACzD,aACEA,IAAI,CAACC,aAAL,CAAmBC,YAAnB,IACAF,IAAI,CAACC,aAAL,CAAmBC,YAAnB,KAAoC,aAFtC;AAID;;;;EAjB2CvB,a;;SAAzBI,gB","sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport LinkModel from \"../links/LinkModel\";\nimport UserServicesModel from \"../user/UserServicesModel\";\n\nimport { NotAllowedUriException } from \"../../exceptions\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type Href from \"../href/Href\";\n\n/**\n * The Application model\n */\nexport default class ApplicationModel extends ResourceModel {\n _userServices: ?UserServicesModel;\n\n /**\n * Retrieve type of model\n */\n get type(): string {\n return \"Application\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"Application\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const userService = this.links.getLinkByKey(\"UserServices\");\n if (userService && userService.href.path === \"/login\") {\n throw new NotAllowedUriException(\n \"The user service (Login panel) should not have the uri '/login', use a different URI because this uri matches the login service.\"\n );\n }\n\n return userService ? [userService] : [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n const userServiceModel = models.find(\n (model) => model.type === \"UserServices\"\n );\n\n if (userServiceModel) {\n this.userServices = userServiceModel;\n }\n }\n\n /**\n * Getting the label of the application\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the tab links\n */\n get tabs(): LinkCollection {\n return this.links.getLinksByGroup(\"tab\");\n }\n\n /**\n * Get modelcatalog link\n */\n get modelcatalog(): LinkModel {\n return LinkModel.create(\"modelcatalog\", \"/modelcatalog\", \"Model catalog\");\n }\n\n /**\n * Set the userservices for this application\n */\n set userServices(model: ?ModularUIModel) {\n this._userServices = model instanceof UserServicesModel ? model : null;\n }\n\n /**\n * returns the userservices configured for this application\n */\n get userServices(): ?UserServicesModel {\n return this._userServices ? this._userServices : null;\n }\n\n /**\n * Indicates if the user is logged in\n */\n get isLoggedIn(): boolean {\n return this.userServices?.isLoggedIn ?? false;\n }\n\n /**\n * Retrieve link to the user information,\n * only available when the user services are available\n */\n get userHref(): Href | null {\n if (this.userServices != null && this.userServices.userLink != null) {\n return this.userServices.userLink.href;\n }\n\n return null;\n }\n}\n"],"file":"ApplicationModel.js"}
|
|
@@ -91,8 +91,7 @@ var AttributeContent = /*#__PURE__*/function () {
|
|
|
91
91
|
var _this$_content$elemen;
|
|
92
92
|
|
|
93
93
|
return (_this$_content$elemen = this._content.elements) === null || _this$_content$elemen === void 0 ? void 0 : _mapInstanceProperty(_this$_content$elemen).call(_this$_content$elemen, function (element) {
|
|
94
|
-
if (
|
|
95
|
-
// $FlowIssue[prop-missing]
|
|
94
|
+
if (element.propertyElement) {
|
|
96
95
|
var _element$propertyElem = element.propertyElement,
|
|
97
96
|
label = _element$propertyElem.label,
|
|
98
97
|
layouthint = _element$propertyElem.layouthint,
|
|
@@ -106,9 +105,8 @@ var AttributeContent = /*#__PURE__*/function () {
|
|
|
106
105
|
};
|
|
107
106
|
}
|
|
108
107
|
|
|
109
|
-
if (
|
|
110
|
-
var _element$textFragment =
|
|
111
|
-
element.textFragmentElement,
|
|
108
|
+
if (element.textFragmentElement) {
|
|
109
|
+
var _element$textFragment = element.textFragmentElement,
|
|
112
110
|
_label = _element$textFragment.label,
|
|
113
111
|
_layouthint = _element$textFragment.layouthint,
|
|
114
112
|
textfragments = _element$textFragment.textfragments;
|
|
@@ -125,8 +123,7 @@ var AttributeContent = /*#__PURE__*/function () {
|
|
|
125
123
|
};
|
|
126
124
|
}
|
|
127
125
|
|
|
128
|
-
if (
|
|
129
|
-
// $FlowIssue[prop-missing]
|
|
126
|
+
if (element.contentElement) {
|
|
130
127
|
var _element$contentEleme = element.contentElement,
|
|
131
128
|
_label2 = _element$contentEleme.label,
|
|
132
129
|
_layouthint2 = _element$contentEleme.layouthint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/attributes/AttributeContent.js"],"names":["retrieveText","hasAllContentInData","SectionModel","LayoutHintCollection","isPlainObject","AttributeContent","content","_content","headerLabel","headerDescription","label","header","description","message","elements","element","propertyElement","layouthint","properties","textFragmentElement","textfragments","textfragment","text","contentElement","sections","section","elementName","collectionName","getContentElements","labels","getContentElementCollections","getContentElementCollectionByLabels","types","type","referredSections","push","getReferredSections"],"mappings":"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","sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport { isPlainObject } from \"../../utils\";\n\nimport type {\n ContentData,\n ContentElementMapped,\n PropertyData,\n PropertyElementMapped,\n TextFragmentData,\n TextFragmentElementMapped,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\n\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n let headerLabel = null;\n let headerDescription = null;\n\n const label = this._content?.header?.label;\n if (label) {\n headerLabel = label;\n }\n\n const description = this._content?.header?.description;\n if (description) {\n if (isPlainObject(description) && \"message\" in description) {\n headerDescription = description.message;\n } else if (typeof description === \"string\") {\n headerDescription = description;\n }\n }\n\n return { label: headerLabel, description: headerDescription };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements?.map((element) => {\n if (\"propertyElement\" in element) {\n // $FlowIssue[prop-missing]\n const { label, layouthint, properties } = element.propertyElement;\n\n return {\n propertyElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n properties,\n },\n };\n }\n\n if (\"textFragmentElement\" in element) {\n const { label, layouthint, textfragments } =\n // $FlowIssue[prop-missing]\n element.textFragmentElement;\n return {\n textFragmentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text),\n })),\n },\n };\n }\n\n if (\"contentElement\" in element) {\n // $FlowIssue[prop-missing]\n const { label, layouthint, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n sections: sections.map(\n (section) => new SectionModel(section, null)\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this._content?.label;\n }\n\n /**\n */\n getContentElements<T>(elementName: string): Array<T> {\n // $FlowIssue incompatible-return\n return this.elements.filter((element) => elementName in element);\n }\n\n /**\n */\n getContentElementCollections<T>(\n elementName: string,\n collectionName: string\n ): Array<T> {\n return this.getContentElements(elementName)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n getContentElementCollectionByLabels<T, U>(\n elementName: string,\n collectionName: string,\n labels: Array<string>\n ): Array<U> {\n return (\n this.getContentElements<T>(elementName)\n // $FlowIssue incompatible-use\n .filter((element) => labels.includes(element[elementName].label))\n // $FlowIssue incompatible-use\n .map((element) => element[elementName][collectionName])\n .flat()\n );\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElementCollections<PropertyData>(\n \"propertyElement\",\n \"properties\"\n );\n }\n\n /**\n * Get concept properties by property element label\n */\n getConceptPropertiesByLabels(labels: Array<string>): Array<PropertyData> {\n return this.getContentElementCollectionByLabels<\n PropertyElementMapped,\n PropertyData\n >(\"propertyElement\", \"properties\", labels);\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElementCollections<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\"\n );\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getTextFragmentsByLabels(labels: Array<string>): Array<TextFragmentData> {\n return this.getContentElementCollectionByLabels<\n TextFragmentElementMapped,\n TextFragmentData\n >(\"textFragmentElement\", \"textfragments\", labels);\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElementCollections<SectionModel>(\n \"contentElement\",\n \"sections\"\n );\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getSectionsByLabels(labels: Array<string>): Array<SectionModel> {\n return this.getContentElementCollectionByLabels<\n ContentElementMapped,\n SectionModel\n >(\"contentElement\", \"sections\", labels);\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"file":"AttributeContent.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/models/attributes/AttributeContent.js"],"names":["retrieveText","hasAllContentInData","SectionModel","LayoutHintCollection","isPlainObject","AttributeContent","content","_content","headerLabel","headerDescription","label","header","description","message","elements","element","propertyElement","layouthint","properties","textFragmentElement","textfragments","textfragment","text","contentElement","sections","section","elementName","collectionName","getContentElements","labels","getContentElementCollections","getContentElementCollectionByLabels","types","type","referredSections","push","getReferredSections"],"mappings":"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","sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport { isPlainObject } from \"../../utils\";\n\nimport type {\n ContentData,\n ContentElementMapped,\n PropertyData,\n PropertyElementMapped,\n TextFragmentData,\n TextFragmentElementMapped,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\n\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n let headerLabel = null;\n let headerDescription = null;\n\n const label = this._content?.header?.label;\n if (label) {\n headerLabel = label;\n }\n\n const description = this._content?.header?.description;\n if (description) {\n if (isPlainObject(description) && \"message\" in description) {\n headerDescription = description.message;\n } else if (typeof description === \"string\") {\n headerDescription = description;\n }\n }\n\n return { label: headerLabel, description: headerDescription };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements?.map((element) => {\n if (element.propertyElement) {\n const { label, layouthint, properties } = element.propertyElement;\n\n return {\n propertyElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n properties,\n },\n };\n }\n\n if (element.textFragmentElement) {\n const { label, layouthint, textfragments } =\n element.textFragmentElement;\n return {\n textFragmentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text),\n })),\n },\n };\n }\n\n if (element.contentElement) {\n const { label, layouthint, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n sections: sections.map(\n (section) => new SectionModel(section, null)\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this._content?.label;\n }\n\n /**\n */\n getContentElements<T>(elementName: string): Array<T> {\n // $FlowIssue incompatible-return\n return this.elements.filter((element) => elementName in element);\n }\n\n /**\n */\n getContentElementCollections<T>(\n elementName: string,\n collectionName: string\n ): Array<T> {\n return this.getContentElements(elementName)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n getContentElementCollectionByLabels<T, U>(\n elementName: string,\n collectionName: string,\n labels: Array<string>\n ): Array<U> {\n return (\n this.getContentElements<T>(elementName)\n // $FlowIssue incompatible-use\n .filter((element) => labels.includes(element[elementName].label))\n // $FlowIssue incompatible-use\n .map((element) => element[elementName][collectionName])\n .flat()\n );\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElementCollections<PropertyData>(\n \"propertyElement\",\n \"properties\"\n );\n }\n\n /**\n * Get concept properties by property element label\n */\n getConceptPropertiesByLabels(labels: Array<string>): Array<PropertyData> {\n return this.getContentElementCollectionByLabels<\n PropertyElementMapped,\n PropertyData\n >(\"propertyElement\", \"properties\", labels);\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElementCollections<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\"\n );\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getTextFragmentsByLabels(labels: Array<string>): Array<TextFragmentData> {\n return this.getContentElementCollectionByLabels<\n TextFragmentElementMapped,\n TextFragmentData\n >(\"textFragmentElement\", \"textfragments\", labels);\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElementCollections<SectionModel>(\n \"contentElement\",\n \"sections\"\n );\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getSectionsByLabels(labels: Array<string>): Array<SectionModel> {\n return this.getContentElementCollectionByLabels<\n ContentElementMapped,\n SectionModel\n >(\"contentElement\", \"sections\", labels);\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"file":"AttributeContent.js"}
|
package/esm/models/href/Href.js
CHANGED
|
@@ -390,11 +390,21 @@ var Href = /*#__PURE__*/function () {
|
|
|
390
390
|
return this.querystring.length > 0 ? [this.path, this.querystring].join("?") : this.path;
|
|
391
391
|
}
|
|
392
392
|
/**
|
|
393
|
-
* Getting the URL including the base path
|
|
393
|
+
* Getting the URL including the base path, querystring is prefixed
|
|
394
394
|
*/
|
|
395
395
|
|
|
396
396
|
}, {
|
|
397
397
|
key: "absolutehref",
|
|
398
|
+
get: function get() {
|
|
399
|
+
var querystring = this.getQuerystring(false);
|
|
400
|
+
return querystring.length > 0 ? [this.absolutepath, querystring].join("?") : this.absolutepath;
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Getting the URL including the base path, the querystring is prefixed
|
|
404
|
+
*/
|
|
405
|
+
|
|
406
|
+
}, {
|
|
407
|
+
key: "absolutehrefPrefixedQuerystring",
|
|
398
408
|
get: function get() {
|
|
399
409
|
var querystring = this.getQuerystring(true);
|
|
400
410
|
return querystring.length > 0 ? [this.absolutepath, querystring].join("?") : this.absolutepath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/href/Href.js"],"names":["BASE","CONTENT_PATH","HTTP_METHODS","Parameter","IllegalArgumentException","Href","href","resourcetype","path","parameters","hash","state","method","GET","setFromHref","setFromString","setFromLocationOrObject","pathname","_path","search","addParametersFromString","Array","isArray","_parameters","param","addParameter","_name","_value","_prefix","getHashFromString","_hash","_state","getPathFromString","checkAbsoluteUrl","split","forEach","paramFromString","fromString","setParameter","name","value","prefix","removeParameter","push","getParameter","undefined","_method","withPrefix","toQuerystring","join","isModUIParameter","getQuerystring","_resourcetype","isExternal","querystring","length","absolutepath","thisPath","otherPath","equals","thisParams","toString","every","checkAbsolute","RegExp","test","decodedHref","decodeURI","hrefNoHash","substr","indexOf"],"mappings":"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","sourcesContent":["// @flow\nimport { BASE, CONTENT_PATH, HTTP_METHODS } from \"../../constants/Constants\";\n\nimport Parameter from \"../parameter/Parameter\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { LocationShape } from \"react-router\";\n\ntype HrefObject = {\n _path: string,\n _hash: string,\n _parameters: Array<Parameter>,\n _resourcetype: string,\n _method: $Keys<typeof HTTP_METHODS>,\n _state: ?{ [key: string]: any },\n pathname: ?string,\n};\n\nexport type HrefInput = Href | HrefObject | LocationShape | string;\n\n/**\n * Defines a Href with the parameters\n */\nclass Href {\n _path: string;\n _hash: string;\n _parameters: Array<Parameter>;\n _resourcetype: string;\n _method: $Keys<typeof HTTP_METHODS>;\n _state: ?{ +[key: string]: any };\n\n /**\n * Create a Href\n */\n constructor(href?: HrefInput, resourcetype?: string) {\n this.path = \"\";\n this.parameters = [];\n this.hash = \"\";\n this.state = null;\n this.method = HTTP_METHODS.GET;\n this.resourcetype = resourcetype || \"\";\n\n if (href instanceof Href) {\n this.setFromHref(href);\n } else if (typeof href === \"string\") {\n this.setFromString(href);\n } else if (typeof href === \"object\") {\n this.setFromLocationOrObject(href);\n }\n }\n\n /**\n * Set parameters from Href model input\n */\n setFromHref(href: Href) {\n this.path = href.path;\n this.parameters = href.parameters;\n this.hash = href.hash;\n this.state = href.state;\n }\n\n /**\n */\n setFromLocationOrObject(href: LocationShape | HrefObject) {\n if (typeof href[\"pathname\"] === \"string\") {\n this.path = href.pathname;\n } else if (typeof href._path === \"string\") {\n this.path = href._path;\n }\n\n if (href.search) {\n this.addParametersFromString(href.search);\n } else if (Array.isArray(href._parameters)) {\n // $FlowExpectedError[incompatible-call]\n href._parameters.map((param: Parameter) =>\n this.addParameter(param._name, param._value, param._prefix)\n );\n }\n\n if (href.hash) {\n this.hash = Href.getHashFromString(href.hash);\n } else if (typeof href._hash === \"string\") {\n this.hash = href._hash;\n }\n\n if (href.state) {\n this.state = href.state || null;\n } else if (typeof href._state === \"object\") {\n this.state = href._state;\n }\n }\n\n /**\n * Set parameters from string input\n */\n setFromString(href: string) {\n this.path = Href.getPathFromString(href);\n this.addParametersFromString(href);\n this.hash = Href.getHashFromString(href);\n }\n\n /**\n */\n get isChangePassword(): boolean {\n return this._path.includes(\"/change-password\");\n }\n\n /**\n * check if the path is referencing a camel route\n */\n static isCamelRoute(path: string): boolean {\n return (\n path.startsWith(\"/restServices\") && !path.startsWith(\"/restServices/ui\")\n );\n }\n\n /**\n */\n static checkAbsoluteUrl(href: string): boolean {\n const checkAbsolute = new RegExp(\"^(?:[a-z]+:)?//\", \"i\");\n return checkAbsolute.test(href);\n }\n\n // Check if url is relative (not checking for absolute urls with same domain)\n /**\n */\n get isExternal(): boolean {\n return Href.checkAbsoluteUrl(this.path);\n }\n\n /**\n * Retrieve the relative path part of a href string, e.g. https://www.beinformed.com/BeInformed/tab/view?q=url => /tab/view\n */\n static getPathFromString(href: string): string {\n const decodedHref = decodeURI(href);\n\n const hrefNoHash = decodedHref.includes(\"#\")\n ? decodedHref.substr(0, decodedHref.indexOf(\"#\"))\n : decodedHref;\n\n return hrefNoHash.includes(\"?\") ? hrefNoHash.split(\"?\")[0] : hrefNoHash;\n }\n\n /**\n * Retrieve hash of href string\n */\n static getHashFromString(href: string = \"\"): string {\n return href.includes(\"#\") ? href.substr(href.indexOf(\"#\") + 1) : \"\";\n }\n\n /**\n * Add a parameter for each parameter found in the querystring of an URL string, e.g. https://www.beinformed.com?q=url => q=url\n */\n addParametersFromString(href: string): Href {\n if (href.includes(\"?\")) {\n href\n .split(\"?\")[1]\n .split(\"&\")\n .forEach((param) => {\n const paramFromString = Parameter.fromString(param);\n if (paramFromString) {\n this.setParameter(\n paramFromString.name,\n paramFromString.value,\n paramFromString.prefix\n );\n }\n });\n }\n\n return this;\n }\n\n /**\n * Add a querystring parameter to the parameter collection of this Href, skips parameters that have a value of null\n */\n addParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value !== null) {\n this.removeParameter(name, prefix);\n this._parameters.push(new Parameter(prefix, name, value));\n }\n\n return this;\n }\n\n /**\n * Adds or overwrites a parameter when it exists and value is not null.\n * Removes the parameter when the value is null\n */\n setParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value === null) {\n this.removeParameter(name, prefix);\n } else {\n this.addParameter(name, value, prefix);\n }\n\n return this;\n }\n\n /**\n * Retrieve a parameter by it's name and (optionally) prefix\n */\n getParameter(name: string, prefix: ?string): ?Parameter {\n return this._parameters.find(\n (param) => param.prefix === prefix && param.name === name\n );\n }\n\n /**\n */\n hasParameter(name: string, prefix: ?string): boolean {\n return this.getParameter(name, prefix) !== undefined;\n }\n\n /**\n * Get request method\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this._method;\n }\n\n /**\n * Set request method\n */\n set method(method: $Keys<typeof HTTP_METHODS>) {\n this._method = method || HTTP_METHODS.GET;\n }\n\n /**\n * Retrieve all paremters\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n * Replace parameters of Href\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n * Remove a parameter from the parameter collection\n */\n removeParameter(name: string, prefix: ?string): Href {\n this._parameters = this._parameters.filter(\n (param) => param.prefix !== prefix || param.name !== name\n );\n\n return this;\n }\n\n /**\n * Get the parameters as a querystring, e.g. param1=value1¶m2=value2, optionally with prefix\n */\n getQuerystring(withPrefix: boolean = false): string {\n return this.parameters\n .filter((param) => param.value != null)\n .map((param) => param.toQuerystring(withPrefix))\n .join(\"&\");\n }\n\n /**\n * Retrieve a querystring that only contains parameter that can be send to the modular ui, parameters are filtered by prefix\n */\n getQuerystringForModularUI(prefix: string = \"\"): string {\n return this.parameters\n .filter(\n (param) =>\n param.isModUIParameter &&\n (!prefix || !param.prefix || param.prefix === prefix) &&\n param.value != null\n )\n .map((param) => param.toQuerystring(false))\n .join(\"&\");\n }\n\n /**\n * Retrieve all parameters from the parameter collection in a querystring style name1=value1&name2=value2, without the prefix\n */\n get querystring(): string {\n return this.getQuerystring(false);\n }\n\n /**\n * Set the path of the Href, the part before the querystring question mark\n */\n set path(path: string) {\n this._path = path;\n }\n\n /**\n * Retrieve the path\n */\n get path(): string {\n return this._path || \"\";\n }\n\n /**\n * Set hash\n */\n set hash(hash: string) {\n this._hash = hash;\n }\n\n /**\n * Retrieve hash\n */\n get hash(): string {\n return this._hash;\n }\n\n /**\n */\n set state(state: ?{ +[key: string]: any }) {\n this._state = state;\n }\n\n /**\n */\n get state(): ?{ +[key: string]: any } {\n return this._state;\n }\n\n /**\n */\n setState(state: { [key: string]: any }): Href {\n this.state = state;\n\n return this;\n }\n\n /**\n * Set resourctype\n */\n set resourcetype(resourcetype: string) {\n this._resourcetype = resourcetype;\n }\n\n /**\n * Retrieve resourceType\n */\n get resourcetype(): string {\n return this._resourcetype;\n }\n\n /**\n * Retrieve the path combined with the BASE of the application, e.g. /BeInformed\n */\n get absolutepath(): string {\n if (this.isExternal) {\n return this.path;\n }\n\n return BASE + this.path;\n }\n\n /**\n * Retrieves the combination of the path and the querystring\n */\n get href(): string {\n return this.querystring.length > 0\n ? [this.path, this.querystring].join(\"?\")\n : this.path;\n }\n\n /**\n * Getting the URL including the base path\n */\n get absolutehref(): string {\n const querystring = this.getQuerystring(true);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Checks if the URL starts within the given href\n */\n startsWith(href: Href | string): boolean {\n const thisPath = `${this.path}/`;\n const otherPath = href instanceof Href ? `${href.path}/` : href;\n\n return thisPath.startsWith(otherPath);\n }\n\n /**\n * Checks if the given Href equals this Href\n */\n equals(href: Href | string): boolean {\n if (href instanceof Href) {\n return this.path === href.path;\n }\n\n return this.path === href;\n }\n\n /**\n */\n equalsWithParameters(href: Href): boolean {\n if (!this.equals(href)) {\n return false;\n }\n\n if (href instanceof Href) {\n if (this.parameters.length !== href.parameters.length) {\n return false;\n }\n\n if (this.parameters.length === 0 && href.parameters.length === 0) {\n return true;\n }\n\n const thisParams = this.parameters.map((param) => param.toString());\n\n return href.parameters.every((param) =>\n thisParams.includes(param.toString())\n );\n }\n\n throw new IllegalArgumentException(`${href} is not an instance of Href`);\n }\n\n /**\n * Indicates if the link is a content link\n */\n get isContent(): boolean {\n return this.absolutepath.startsWith(CONTENT_PATH);\n }\n\n /**\n * Returns a complete url from the Href\n */\n toString(): string {\n return this.href;\n }\n\n /**\n */\n toLocation(): LocationShape {\n return {\n pathname: this.path,\n search: this.querystring.length > 0 ? `?${this.querystring}` : \"\",\n hash: this.hash.length > 0 ? `#${this.hash}` : \"\",\n state: this.state,\n };\n }\n}\n\nexport default Href;\n"],"file":"Href.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/models/href/Href.js"],"names":["BASE","CONTENT_PATH","HTTP_METHODS","Parameter","IllegalArgumentException","Href","href","resourcetype","path","parameters","hash","state","method","GET","setFromHref","setFromString","setFromLocationOrObject","pathname","_path","search","addParametersFromString","Array","isArray","_parameters","param","addParameter","_name","_value","_prefix","getHashFromString","_hash","_state","getPathFromString","checkAbsoluteUrl","split","forEach","paramFromString","fromString","setParameter","name","value","prefix","removeParameter","push","getParameter","undefined","_method","withPrefix","toQuerystring","join","isModUIParameter","getQuerystring","_resourcetype","isExternal","querystring","length","absolutepath","thisPath","otherPath","equals","thisParams","toString","every","checkAbsolute","RegExp","test","decodedHref","decodeURI","hrefNoHash","substr","indexOf"],"mappings":"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","sourcesContent":["// @flow\nimport { BASE, CONTENT_PATH, HTTP_METHODS } from \"../../constants/Constants\";\n\nimport Parameter from \"../parameter/Parameter\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { LocationShape } from \"react-router\";\n\ntype HrefObject = {\n _path: string,\n _hash: string,\n _parameters: Array<Parameter>,\n _resourcetype: string,\n _method: $Keys<typeof HTTP_METHODS>,\n _state: ?{ [key: string]: any },\n pathname: ?string,\n};\n\nexport type HrefInput = Href | HrefObject | LocationShape | string;\n\n/**\n * Defines a Href with the parameters\n */\nclass Href {\n _path: string;\n _hash: string;\n _parameters: Array<Parameter>;\n _resourcetype: string;\n _method: $Keys<typeof HTTP_METHODS>;\n _state: ?{ +[key: string]: any };\n\n /**\n * Create a Href\n */\n constructor(href?: HrefInput, resourcetype?: string) {\n this.path = \"\";\n this.parameters = [];\n this.hash = \"\";\n this.state = null;\n this.method = HTTP_METHODS.GET;\n this.resourcetype = resourcetype || \"\";\n\n if (href instanceof Href) {\n this.setFromHref(href);\n } else if (typeof href === \"string\") {\n this.setFromString(href);\n } else if (typeof href === \"object\") {\n this.setFromLocationOrObject(href);\n }\n }\n\n /**\n * Set parameters from Href model input\n */\n setFromHref(href: Href) {\n this.path = href.path;\n this.parameters = href.parameters;\n this.hash = href.hash;\n this.state = href.state;\n }\n\n /**\n */\n setFromLocationOrObject(href: LocationShape | HrefObject) {\n if (typeof href[\"pathname\"] === \"string\") {\n this.path = href.pathname;\n } else if (typeof href._path === \"string\") {\n this.path = href._path;\n }\n\n if (href.search) {\n this.addParametersFromString(href.search);\n } else if (Array.isArray(href._parameters)) {\n // $FlowExpectedError[incompatible-call]\n href._parameters.map((param: Parameter) =>\n this.addParameter(param._name, param._value, param._prefix)\n );\n }\n\n if (href.hash) {\n this.hash = Href.getHashFromString(href.hash);\n } else if (typeof href._hash === \"string\") {\n this.hash = href._hash;\n }\n\n if (href.state) {\n this.state = href.state || null;\n } else if (typeof href._state === \"object\") {\n this.state = href._state;\n }\n }\n\n /**\n * Set parameters from string input\n */\n setFromString(href: string) {\n this.path = Href.getPathFromString(href);\n this.addParametersFromString(href);\n this.hash = Href.getHashFromString(href);\n }\n\n /**\n */\n get isChangePassword(): boolean {\n return this._path.includes(\"/change-password\");\n }\n\n /**\n * check if the path is referencing a camel route\n */\n static isCamelRoute(path: string): boolean {\n return (\n path.startsWith(\"/restServices\") && !path.startsWith(\"/restServices/ui\")\n );\n }\n\n /**\n */\n static checkAbsoluteUrl(href: string): boolean {\n const checkAbsolute = new RegExp(\"^(?:[a-z]+:)?//\", \"i\");\n return checkAbsolute.test(href);\n }\n\n // Check if url is relative (not checking for absolute urls with same domain)\n /**\n */\n get isExternal(): boolean {\n return Href.checkAbsoluteUrl(this.path);\n }\n\n /**\n * Retrieve the relative path part of a href string, e.g. https://www.beinformed.com/BeInformed/tab/view?q=url => /tab/view\n */\n static getPathFromString(href: string): string {\n const decodedHref = decodeURI(href);\n\n const hrefNoHash = decodedHref.includes(\"#\")\n ? decodedHref.substr(0, decodedHref.indexOf(\"#\"))\n : decodedHref;\n\n return hrefNoHash.includes(\"?\") ? hrefNoHash.split(\"?\")[0] : hrefNoHash;\n }\n\n /**\n * Retrieve hash of href string\n */\n static getHashFromString(href: string = \"\"): string {\n return href.includes(\"#\") ? href.substr(href.indexOf(\"#\") + 1) : \"\";\n }\n\n /**\n * Add a parameter for each parameter found in the querystring of an URL string, e.g. https://www.beinformed.com?q=url => q=url\n */\n addParametersFromString(href: string): Href {\n if (href.includes(\"?\")) {\n href\n .split(\"?\")[1]\n .split(\"&\")\n .forEach((param) => {\n const paramFromString = Parameter.fromString(param);\n if (paramFromString) {\n this.setParameter(\n paramFromString.name,\n paramFromString.value,\n paramFromString.prefix\n );\n }\n });\n }\n\n return this;\n }\n\n /**\n * Add a querystring parameter to the parameter collection of this Href, skips parameters that have a value of null\n */\n addParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value !== null) {\n this.removeParameter(name, prefix);\n this._parameters.push(new Parameter(prefix, name, value));\n }\n\n return this;\n }\n\n /**\n * Adds or overwrites a parameter when it exists and value is not null.\n * Removes the parameter when the value is null\n */\n setParameter(name: string, value: ?string, prefix: ?string): Href {\n if (value === null) {\n this.removeParameter(name, prefix);\n } else {\n this.addParameter(name, value, prefix);\n }\n\n return this;\n }\n\n /**\n * Retrieve a parameter by it's name and (optionally) prefix\n */\n getParameter(name: string, prefix: ?string): ?Parameter {\n return this._parameters.find(\n (param) => param.prefix === prefix && param.name === name\n );\n }\n\n /**\n */\n hasParameter(name: string, prefix: ?string): boolean {\n return this.getParameter(name, prefix) !== undefined;\n }\n\n /**\n * Get request method\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this._method;\n }\n\n /**\n * Set request method\n */\n set method(method: $Keys<typeof HTTP_METHODS>) {\n this._method = method || HTTP_METHODS.GET;\n }\n\n /**\n * Retrieve all paremters\n */\n get parameters(): Array<Parameter> {\n return this._parameters;\n }\n\n /**\n * Replace parameters of Href\n */\n set parameters(parameters: Array<Parameter>) {\n this._parameters = parameters;\n }\n\n /**\n * Remove a parameter from the parameter collection\n */\n removeParameter(name: string, prefix: ?string): Href {\n this._parameters = this._parameters.filter(\n (param) => param.prefix !== prefix || param.name !== name\n );\n\n return this;\n }\n\n /**\n * Get the parameters as a querystring, e.g. param1=value1¶m2=value2, optionally with prefix\n */\n getQuerystring(withPrefix: boolean = false): string {\n return this.parameters\n .filter((param) => param.value != null)\n .map((param) => param.toQuerystring(withPrefix))\n .join(\"&\");\n }\n\n /**\n * Retrieve a querystring that only contains parameter that can be send to the modular ui, parameters are filtered by prefix\n */\n getQuerystringForModularUI(prefix: string = \"\"): string {\n return this.parameters\n .filter(\n (param) =>\n param.isModUIParameter &&\n (!prefix || !param.prefix || param.prefix === prefix) &&\n param.value != null\n )\n .map((param) => param.toQuerystring(false))\n .join(\"&\");\n }\n\n /**\n * Retrieve all parameters from the parameter collection in a querystring style name1=value1&name2=value2, without the prefix\n */\n get querystring(): string {\n return this.getQuerystring(false);\n }\n\n /**\n * Set the path of the Href, the part before the querystring question mark\n */\n set path(path: string) {\n this._path = path;\n }\n\n /**\n * Retrieve the path\n */\n get path(): string {\n return this._path || \"\";\n }\n\n /**\n * Set hash\n */\n set hash(hash: string) {\n this._hash = hash;\n }\n\n /**\n * Retrieve hash\n */\n get hash(): string {\n return this._hash;\n }\n\n /**\n */\n set state(state: ?{ +[key: string]: any }) {\n this._state = state;\n }\n\n /**\n */\n get state(): ?{ +[key: string]: any } {\n return this._state;\n }\n\n /**\n */\n setState(state: { [key: string]: any }): Href {\n this.state = state;\n\n return this;\n }\n\n /**\n * Set resourctype\n */\n set resourcetype(resourcetype: string) {\n this._resourcetype = resourcetype;\n }\n\n /**\n * Retrieve resourceType\n */\n get resourcetype(): string {\n return this._resourcetype;\n }\n\n /**\n * Retrieve the path combined with the BASE of the application, e.g. /BeInformed\n */\n get absolutepath(): string {\n if (this.isExternal) {\n return this.path;\n }\n\n return BASE + this.path;\n }\n\n /**\n * Retrieves the combination of the path and the querystring\n */\n get href(): string {\n return this.querystring.length > 0\n ? [this.path, this.querystring].join(\"?\")\n : this.path;\n }\n\n /**\n * Getting the URL including the base path, querystring is prefixed\n */\n get absolutehref(): string {\n const querystring = this.getQuerystring(false);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Getting the URL including the base path, the querystring is prefixed\n */\n get absolutehrefPrefixedQuerystring(): string {\n const querystring = this.getQuerystring(true);\n\n return querystring.length > 0\n ? [this.absolutepath, querystring].join(\"?\")\n : this.absolutepath;\n }\n\n /**\n * Checks if the URL starts within the given href\n */\n startsWith(href: Href | string): boolean {\n const thisPath = `${this.path}/`;\n const otherPath = href instanceof Href ? `${href.path}/` : href;\n\n return thisPath.startsWith(otherPath);\n }\n\n /**\n * Checks if the given Href equals this Href\n */\n equals(href: Href | string): boolean {\n if (href instanceof Href) {\n return this.path === href.path;\n }\n\n return this.path === href;\n }\n\n /**\n */\n equalsWithParameters(href: Href): boolean {\n if (!this.equals(href)) {\n return false;\n }\n\n if (href instanceof Href) {\n if (this.parameters.length !== href.parameters.length) {\n return false;\n }\n\n if (this.parameters.length === 0 && href.parameters.length === 0) {\n return true;\n }\n\n const thisParams = this.parameters.map((param) => param.toString());\n\n return href.parameters.every((param) =>\n thisParams.includes(param.toString())\n );\n }\n\n throw new IllegalArgumentException(`${href} is not an instance of Href`);\n }\n\n /**\n * Indicates if the link is a content link\n */\n get isContent(): boolean {\n return this.absolutepath.startsWith(CONTENT_PATH);\n }\n\n /**\n * Returns a complete url from the Href\n */\n toString(): string {\n return this.href;\n }\n\n /**\n */\n toLocation(): LocationShape {\n return {\n pathname: this.path,\n search: this.querystring.length > 0 ? `?${this.querystring}` : \"\",\n hash: this.hash.length > 0 ? `#${this.hash}` : \"\",\n state: this.state,\n };\n }\n}\n\nexport default Href;\n"],"file":"Href.js"}
|
|
@@ -15,6 +15,15 @@ export var loginFailed = function loginFailed(errorMessage) {
|
|
|
15
15
|
payload: errorMessage
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* Resets any authentication errors
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
export var resetAuthErrors = function resetAuthErrors() {
|
|
23
|
+
return {
|
|
24
|
+
type: "AUTHENTICATION_RESET_ERRORS"
|
|
25
|
+
};
|
|
26
|
+
};
|
|
18
27
|
/**
|
|
19
28
|
* Send login success action
|
|
20
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/redux/actions/SignIn.js"],"names":["Cache","Authenticate","reloadApplication","startProgress","finishProgress","push","CHANGEPASSWORD_PATH","loginFailed","errorMessage","type","payload","loginSuccess","changePassword","dispatch","getState","isModal","router","location","state","modal","locationFrom","from","login","username","password","then","addItem","catch","error","id","dispatchedReloadApplication","resolve"],"mappings":";AACA,OAAOA,KAAP,MAAkB,2BAAlB;AACA,OAAOC,YAAP,MAAyB,8BAAzB;AAEA,SAASC,iBAAT,QAAkC,eAAlC;AAEA,SAASC,aAAT,EAAwBC,cAAxB,QAA8C,qBAA9C;AACA,SAASC,IAAT,QAAqB,oBAArB;AACA,SAASC,mBAAT,QAAoC,2BAApC;;
|
|
1
|
+
{"version":3,"sources":["../../../src/redux/actions/SignIn.js"],"names":["Cache","Authenticate","reloadApplication","startProgress","finishProgress","push","CHANGEPASSWORD_PATH","loginFailed","errorMessage","type","payload","resetAuthErrors","loginSuccess","changePassword","dispatch","getState","isModal","router","location","state","modal","locationFrom","from","login","username","password","then","addItem","catch","error","id","dispatchedReloadApplication","resolve"],"mappings":";AACA,OAAOA,KAAP,MAAkB,2BAAlB;AACA,OAAOC,YAAP,MAAyB,8BAAzB;AAEA,SAASC,iBAAT,QAAkC,eAAlC;AAEA,SAASC,aAAT,EAAwBC,cAAxB,QAA8C,qBAA9C;AACA,SAASC,IAAT,QAAqB,oBAArB;AACA,SAASC,mBAAT,QAAoC,2BAApC;;AASA;AACA;AACA;AACA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,YAAD;AAAA,SAA8C;AACvEC,IAAAA,IAAI,EAAE,sBADiE;AAEvEC,IAAAA,OAAO,EAAEF;AAF8D,GAA9C;AAAA,CAApB;AAKP;AACA;AACA;;AACA,OAAO,IAAMG,eAAe,GAAG,SAAlBA,eAAkB;AAAA,SAA8B;AAC3DF,IAAAA,IAAI,EAAE;AADqD,GAA9B;AAAA,CAAxB;AAIP;AACA;AACA;;AACA,OAAO,IAAMG,YAAY,GAAG,SAAfA,YAAe;AAAA,SAA2B;AACrDH,IAAAA,IAAI,EAAE;AAD+C,GAA3B;AAAA,CAArB;AAIP;AACA;AACA;;AACA,OAAO,IAAMI,cAAc,GAAG,SAAjBA,cAAiB;AAAA,SAAmB,UAACC,QAAD,EAAWC,QAAX,EAAwB;AAAA;;AACvED,IAAAA,QAAQ,CAAC;AACPL,MAAAA,IAAI,EAAE;AADC,KAAD,CAAR;AAIA,QAAMO,OAAO,4BAAGD,QAAQ,GAAGE,MAAX,CAAkBC,QAArB,oFAAG,sBAA4BC,KAA/B,2DAAG,uBAAmCC,KAAnD;AACA,QAAMC,YAAY,6BAAGN,QAAQ,GAAGE,MAAX,CAAkBC,QAArB,qFAAG,uBAA4BC,KAA/B,2DAAG,uBAAmCG,IAAxD;AACA,WAAOR,QAAQ,CACbT,IAAI,CAACC,mBAAD,EAAsB;AACxBgB,MAAAA,IAAI,EAAED,YAAY,GAAGA,YAAH,GAAkBN,QAAQ,GAAGE,MAAX,CAAkBC,QAD9B;AAExBE,MAAAA,KAAK,EAAEJ;AAFiB,KAAtB,CADS,CAAf;AAMD,GAb6B;AAAA,CAAvB;AAeP;AACA;;AACA,OAAO,IAAMO,KAAK,GAChB,SADWA,KACX,CAACC,QAAD,EAAmBC,QAAnB;AAAA,SACA,UAACX,QAAD,EAAc;AACZA,IAAAA,QAAQ,CAACX,aAAa,EAAd,CAAR;AAEA,WAAO,IAAIF,YAAJ,GACJsB,KADI,CACEC,QADF,EACYC,QADZ,EAEJC,IAFI,CAEC;AAAA,aAAMZ,QAAQ,CAACZ,iBAAiB,EAAlB,CAAd;AAAA,KAFD,EAGJwB,IAHI,CAGC,YAAM;AACV1B,MAAAA,KAAK,CAAC2B,OAAN,CAAc,MAAd,EAAsB,IAAtB;AACAb,MAAAA,QAAQ,CAACF,YAAY,EAAb,CAAR;AAEA,aAAOE,QAAQ,CAACV,cAAc,EAAf,CAAf;AACD,KARI,EASJwB,KATI,CASE,UAACC,KAAD,EAAW;AAChB,UAAIA,KAAK,CAACC,EAAN,KAAa,8BAAjB,EAAiD;AAC/C,YAAMC,2BAA2B,GAAGjB,QAAQ,CAACZ,iBAAiB,EAAlB,CAA5C;AAEA,eAAO,SAAQ8B,OAAR,CAAgBD,2BAAhB,EAA6CL,IAA7C,CAAkD,YAAM;AAC7D1B,UAAAA,KAAK,CAAC2B,OAAN,CAAc,MAAd,EAAsB,IAAtB;AACA,iBAAOb,QAAQ,CAACD,cAAc,EAAf,CAAf;AACD,SAHM,CAAP;AAID;;AAEDC,MAAAA,QAAQ,CAACP,WAAW,CAACsB,KAAK,CAACC,EAAP,CAAZ,CAAR;AACA,aAAOhB,QAAQ,CAACV,cAAc,EAAf,CAAf;AACD,KArBI,CAAP;AAsBD,GA1BD;AAAA,CADK","sourcesContent":["// @flow\nimport Cache from \"../../utils/browser/Cache\";\nimport Authenticate from \"../../modularui/Authenticate\";\n\nimport { reloadApplication } from \"./Application\";\n\nimport { startProgress, finishProgress } from \"./ProgressIndicator\";\nimport { push } from \"../_router/actions\";\nimport { CHANGEPASSWORD_PATH } from \"../../constants/Constants\";\n\nimport type {\n LoginFailedAction,\n ResetAuthErrorsAction,\n LoginSuccessAction,\n ThunkAction,\n} from \"../types\";\n\n/**\n * Send login failed action\n */\nexport const loginFailed = (errorMessage: string): LoginFailedAction => ({\n type: \"AUTHENTICATION_ERROR\",\n payload: errorMessage,\n});\n\n/**\n * Resets any authentication errors\n */\nexport const resetAuthErrors = (): ResetAuthErrorsAction => ({\n type: \"AUTHENTICATION_RESET_ERRORS\",\n});\n\n/**\n * Send login success action\n */\nexport const loginSuccess = (): LoginSuccessAction => ({\n type: \"AUTHENTICATION_SUCCESS\",\n});\n\n/**\n * Send change password action\n */\nexport const changePassword = (): ThunkAction => (dispatch, getState) => {\n dispatch({\n type: \"CHANGE_PASSWORD\",\n });\n\n const isModal = getState().router.location?.state?.modal;\n const locationFrom = getState().router.location?.state?.from;\n return dispatch(\n push(CHANGEPASSWORD_PATH, {\n from: locationFrom ? locationFrom : getState().router.location,\n modal: isModal,\n })\n );\n};\n\n/**\n */\nexport const login =\n (username: string, password: string): ThunkAction =>\n (dispatch) => {\n dispatch(startProgress());\n\n return new Authenticate()\n .login(username, password)\n .then(() => dispatch(reloadApplication()))\n .then(() => {\n Cache.addItem(\"auth\", true);\n dispatch(loginSuccess());\n\n return dispatch(finishProgress());\n })\n .catch((error) => {\n if (error.id === \"Error.ChangePasswordRequired\") {\n const dispatchedReloadApplication = dispatch(reloadApplication());\n\n return Promise.resolve(dispatchedReloadApplication).then(() => {\n Cache.addItem(\"auth\", true);\n return dispatch(changePassword());\n });\n }\n\n dispatch(loginFailed(error.id));\n return dispatch(finishProgress());\n });\n };\n"],"file":"SignIn.js"}
|
|
@@ -42,6 +42,11 @@ var AuthReducer = function AuthReducer() {
|
|
|
42
42
|
error: action.payload
|
|
43
43
|
});
|
|
44
44
|
|
|
45
|
+
case "AUTHENTICATION_RESET_ERRORS":
|
|
46
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
47
|
+
error: null
|
|
48
|
+
});
|
|
49
|
+
|
|
45
50
|
case "AUTHENTICATION_LOGOUT":
|
|
46
51
|
{
|
|
47
52
|
// clear cache because of cached contributions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/redux/reducers/AuthReducer.js"],"names":["Cache","initialState","isAuthenticated","mustChangePassword","error","AuthReducer","state","action","type","payload","clear"],"mappings":";;;;;;;;;;;AACA,OAAOA,KAAP,MAAkB,2BAAlB;AAKA;AACA,IAAMC,YAAuB,GAAG;AAC9BC,EAAAA,eAAe,EAAE,KADa;AAE9BC,EAAAA,kBAAkB,EAAE,KAFU;AAG9BC,EAAAA,KAAK,EAAE;AAHuB,CAAhC;AAMA;AACA;AACA;;AACA,IAAMC,WAA4C,GAAG,SAA/CA,WAA+C,GAGhD;AAAA,MAFHC,KAEG,uEAFKL,YAEL;AAAA,MADHM,MACG;;AACH,MAAI,CAACA,MAAL,EAAa;AACX,WAAOD,KAAP;AACD;;AAED,UAAQC,MAAM,CAACC,IAAf;AACE,SAAK,wBAAL;AACE,6CACKF,KADL;AAEEJ,QAAAA,eAAe,EAAE,IAFnB;AAGEE,QAAAA,KAAK,EAAE,IAHT;AAIED,QAAAA,kBAAkB,EAAE;AAJtB;;AAOF,SAAK,sBAAL;AACE,6CAAYG,KAAZ;AAAmBH,QAAAA,kBAAkB,EAAE,KAAvC;AAA8CC,QAAAA,KAAK,EAAEG,MAAM,CAACE;AAA5D;;AAEF,SAAK,uBAAL;AAA8B;AAC5B;AACA,
|
|
1
|
+
{"version":3,"sources":["../../../src/redux/reducers/AuthReducer.js"],"names":["Cache","initialState","isAuthenticated","mustChangePassword","error","AuthReducer","state","action","type","payload","clear"],"mappings":";;;;;;;;;;;AACA,OAAOA,KAAP,MAAkB,2BAAlB;AAKA;AACA,IAAMC,YAAuB,GAAG;AAC9BC,EAAAA,eAAe,EAAE,KADa;AAE9BC,EAAAA,kBAAkB,EAAE,KAFU;AAG9BC,EAAAA,KAAK,EAAE;AAHuB,CAAhC;AAMA;AACA;AACA;;AACA,IAAMC,WAA4C,GAAG,SAA/CA,WAA+C,GAGhD;AAAA,MAFHC,KAEG,uEAFKL,YAEL;AAAA,MADHM,MACG;;AACH,MAAI,CAACA,MAAL,EAAa;AACX,WAAOD,KAAP;AACD;;AAED,UAAQC,MAAM,CAACC,IAAf;AACE,SAAK,wBAAL;AACE,6CACKF,KADL;AAEEJ,QAAAA,eAAe,EAAE,IAFnB;AAGEE,QAAAA,KAAK,EAAE,IAHT;AAIED,QAAAA,kBAAkB,EAAE;AAJtB;;AAOF,SAAK,sBAAL;AACE,6CAAYG,KAAZ;AAAmBH,QAAAA,kBAAkB,EAAE,KAAvC;AAA8CC,QAAAA,KAAK,EAAEG,MAAM,CAACE;AAA5D;;AAEF,SAAK,6BAAL;AACE,6CAAYH,KAAZ;AAAmBF,QAAAA,KAAK,EAAE;AAA1B;;AAEF,SAAK,uBAAL;AAA8B;AAC5B;AACA,YAAIE,KAAK,CAACJ,eAAV,EAA2B;AACzBF,UAAAA,KAAK,CAACU,KAAN;AACD;;AAED,+CACKJ,KADL;AAEEH,UAAAA,kBAAkB,EAAE,KAFtB;AAGED,UAAAA,eAAe,EAAE,KAHnB;AAIEE,UAAAA,KAAK,EAAE;AAJT;AAMD;;AAED,SAAK,iBAAL;AACE,6CACKE,KADL;AAEEJ,QAAAA,eAAe,EAAE,IAFnB;AAGEC,QAAAA,kBAAkB,EAAE,IAHtB;AAIEC,QAAAA,KAAK,EAAE;AAJT;;AAOF;AACE,aAAOE,KAAP;AAtCJ;AAwCD,CAhDD;;AAkDA,eAAeD,WAAf","sourcesContent":["// @flow\nimport Cache from \"../../utils/browser/Cache\";\n\nimport type { Reducer } from \"redux\";\nimport type { AuthState, ReduxAction } from \"../types\";\n\n// REDUCER\nconst initialState: AuthState = {\n isAuthenticated: false,\n mustChangePassword: false,\n error: null,\n};\n\n/**\n * Auth reducer\n */\nconst AuthReducer: Reducer<AuthState, ReduxAction> = (\n state = initialState,\n action\n) => {\n if (!action) {\n return state;\n }\n\n switch (action.type) {\n case \"AUTHENTICATION_SUCCESS\":\n return {\n ...state,\n isAuthenticated: true,\n error: null,\n mustChangePassword: false,\n };\n\n case \"AUTHENTICATION_ERROR\":\n return { ...state, mustChangePassword: false, error: action.payload };\n\n case \"AUTHENTICATION_RESET_ERRORS\":\n return { ...state, error: null };\n\n case \"AUTHENTICATION_LOGOUT\": {\n // clear cache because of cached contributions\n if (state.isAuthenticated) {\n Cache.clear();\n }\n\n return {\n ...state,\n mustChangePassword: false,\n isAuthenticated: false,\n error: null,\n };\n }\n\n case \"CHANGE_PASSWORD\":\n return {\n ...state,\n isAuthenticated: true,\n mustChangePassword: true,\n error: null,\n };\n\n default:\n return state;\n }\n};\n\nexport default AuthReducer;\n"],"file":"AuthReducer.js"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import _endsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/ends-with";
|
|
2
|
+
import Href from "../../models/href/Href";
|
|
3
|
+
/**
|
|
4
|
+
* Checks if a given url to a modular ui resource exists using a HEAD request to the resource (synchronous)
|
|
5
|
+
* When the resource returns a 404, the resource does not exists and the method returns false
|
|
6
|
+
*
|
|
7
|
+
* @param url
|
|
8
|
+
* @returns {boolean}
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export var resourceExists = function resourceExists(url) {
|
|
12
|
+
var fullUrl = new Href(url).absolutehref; // const fullUrl = `${BASE}/${url}`.replace(/\/\//g, "/");
|
|
13
|
+
|
|
14
|
+
var xhr = new XMLHttpRequest();
|
|
15
|
+
xhr.open("HEAD", fullUrl, false);
|
|
16
|
+
xhr.setRequestHeader("Accept", "application/json");
|
|
17
|
+
xhr.setRequestHeader("Content-Type", "application/json");
|
|
18
|
+
xhr.send();
|
|
19
|
+
return xhr.status !== 404;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Indicates if a request to the given url resuls in a redirect to /secureRedirect
|
|
23
|
+
* @param url
|
|
24
|
+
* @returns {boolean}
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
export var resourceRedirectsToSecureLogin = function resourceRedirectsToSecureLogin(url) {
|
|
28
|
+
var _xhr$responseURL;
|
|
29
|
+
|
|
30
|
+
var fullUrl = new Href(url).absolutehref;
|
|
31
|
+
var xhr = new XMLHttpRequest();
|
|
32
|
+
xhr.open("HEAD", fullUrl, false);
|
|
33
|
+
xhr.setRequestHeader("Accept", "application/json");
|
|
34
|
+
xhr.setRequestHeader("Content-Type", "application/json");
|
|
35
|
+
xhr.send();
|
|
36
|
+
var responseURL = (_xhr$responseURL = xhr.responseURL) !== null && _xhr$responseURL !== void 0 ? _xhr$responseURL : "";
|
|
37
|
+
return xhr.status === 400 && _endsWithInstanceProperty(responseURL).call(responseURL, "/secureLogin");
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=checkResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/helpers/checkResource.js"],"names":["Href","resourceExists","url","fullUrl","absolutehref","xhr","XMLHttpRequest","open","setRequestHeader","send","status","resourceRedirectsToSecureLogin","responseURL"],"mappings":";AACA,OAAOA,IAAP,MAAiB,wBAAjB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,GAAD,EAAiC;AAC7D,MAAMC,OAAO,GAAG,IAAIH,IAAJ,CAASE,GAAT,EAAcE,YAA9B,CAD6D,CAG7D;;AAEA,MAAMC,GAAG,GAAG,IAAIC,cAAJ,EAAZ;AACAD,EAAAA,GAAG,CAACE,IAAJ,CAAS,MAAT,EAAiBJ,OAAjB,EAA0B,KAA1B;AACAE,EAAAA,GAAG,CAACG,gBAAJ,CAAqB,QAArB,EAA+B,kBAA/B;AACAH,EAAAA,GAAG,CAACG,gBAAJ,CAAqB,cAArB,EAAqC,kBAArC;AACAH,EAAAA,GAAG,CAACI,IAAJ;AAEA,SAAOJ,GAAG,CAACK,MAAJ,KAAe,GAAtB;AACD,CAZM;AAcP;AACA;AACA;AACA;AACA;;AACA,OAAO,IAAMC,8BAA8B,GAAG,SAAjCA,8BAAiC,CAACT,GAAD,EAAiC;AAAA;;AAC7E,MAAMC,OAAO,GAAG,IAAIH,IAAJ,CAASE,GAAT,EAAcE,YAA9B;AAEA,MAAMC,GAAG,GAAG,IAAIC,cAAJ,EAAZ;AACAD,EAAAA,GAAG,CAACE,IAAJ,CAAS,MAAT,EAAiBJ,OAAjB,EAA0B,KAA1B;AACAE,EAAAA,GAAG,CAACG,gBAAJ,CAAqB,QAArB,EAA+B,kBAA/B;AACAH,EAAAA,GAAG,CAACG,gBAAJ,CAAqB,cAArB,EAAqC,kBAArC;AACAH,EAAAA,GAAG,CAACI,IAAJ;AAEA,MAAMG,WAAW,uBAAGP,GAAG,CAACO,WAAP,+DAAsB,EAAvC;AAEA,SAAOP,GAAG,CAACK,MAAJ,KAAe,GAAf,IAAsB,0BAAAE,WAAW,MAAX,CAAAA,WAAW,EAAU,cAAV,CAAxC;AACD,CAZM","sourcesContent":["// @flow\nimport Href from \"../../models/href/Href\";\n\n/**\n * Checks if a given url to a modular ui resource exists using a HEAD request to the resource (synchronous)\n * When the resource returns a 404, the resource does not exists and the method returns false\n *\n * @param url\n * @returns {boolean}\n */\nexport const resourceExists = (url: string | Href): boolean => {\n const fullUrl = new Href(url).absolutehref;\n\n // const fullUrl = `${BASE}/${url}`.replace(/\\/\\//g, \"/\");\n\n const xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", fullUrl, false);\n xhr.setRequestHeader(\"Accept\", \"application/json\");\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n xhr.send();\n\n return xhr.status !== 404;\n};\n\n/**\n * Indicates if a request to the given url resuls in a redirect to /secureRedirect\n * @param url\n * @returns {boolean}\n */\nexport const resourceRedirectsToSecureLogin = (url: string | Href): boolean => {\n const fullUrl = new Href(url).absolutehref;\n\n const xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", fullUrl, false);\n xhr.setRequestHeader(\"Accept\", \"application/json\");\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n xhr.send();\n\n const responseURL = xhr.responseURL ?? \"\";\n\n return xhr.status === 400 && responseURL.endsWith(\"/secureLogin\");\n};\n"],"file":"checkResource.js"}
|
package/esm/utils/index.js
CHANGED
|
@@ -13,7 +13,7 @@ export { default as createUUID } from "./helpers/createUUID";
|
|
|
13
13
|
export * from "./helpers/sanitizeHtml";
|
|
14
14
|
export * from "./helpers/objects";
|
|
15
15
|
export * from "./helpers/text";
|
|
16
|
-
export * from "./helpers/
|
|
16
|
+
export * from "./helpers/checkResource"; // number
|
|
17
17
|
|
|
18
18
|
export { default as DecimalFormat } from "./number/DecimalFormat";
|
|
19
19
|
export { default as formatValue } from "./number/formatValue";
|
package/esm/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/index.js"],"names":["default","Cache","serverFetch","universalFetch","xhr","createUUID","DecimalFormat","formatValue"],"mappings":"AAEA;AACA,SAASA,OAAO,IAAIC,KAApB,QAAiC,iBAAjC;AACA,cAAc,mBAAd,C,CAEA;;AACA,cAAc,yBAAd,C,CAEA;;AACA,SAASD,OAAO,IAAIE,WAApB,QAAuC,qBAAvC;AACA,SAASF,OAAO,IAAIG,cAApB,QAA0C,wBAA1C;AACA,SAASH,OAAO,IAAII,GAApB,QAA+B,aAA/B;AAGA;AACA,cAAc,sBAAd;AACA,SAASJ,OAAO,IAAIK,UAApB,QAAsC,sBAAtC;AACA,cAAc,wBAAd;AACA,cAAc,mBAAd;AACA,cAAc,gBAAd;AACA,cAAc
|
|
1
|
+
{"version":3,"sources":["../../src/utils/index.js"],"names":["default","Cache","serverFetch","universalFetch","xhr","createUUID","DecimalFormat","formatValue"],"mappings":"AAEA;AACA,SAASA,OAAO,IAAIC,KAApB,QAAiC,iBAAjC;AACA,cAAc,mBAAd,C,CAEA;;AACA,cAAc,yBAAd,C,CAEA;;AACA,SAASD,OAAO,IAAIE,WAApB,QAAuC,qBAAvC;AACA,SAASF,OAAO,IAAIG,cAApB,QAA0C,wBAA1C;AACA,SAASH,OAAO,IAAII,GAApB,QAA+B,aAA/B;AAGA;AACA,cAAc,sBAAd;AACA,SAASJ,OAAO,IAAIK,UAApB,QAAsC,sBAAtC;AACA,cAAc,wBAAd;AACA,cAAc,mBAAd;AACA,cAAc,gBAAd;AACA,cAAc,yBAAd,C,CAEA;;AACA,SAASL,OAAO,IAAIM,aAApB,QAAyC,wBAAzC;AACA,SAASN,OAAO,IAAIO,WAApB,QAAuC,sBAAvC;AACA,cAAc,uBAAd","sourcesContent":["// @flow\n\n// browser\nexport { default as Cache } from \"./browser/Cache\";\nexport * from \"./browser/Cookies\";\n\n// datetime\nexport * from \"./datetime/DateTimeUtil\";\n\n// fetch\nexport { default as serverFetch } from \"./fetch/serverFetch\";\nexport { default as universalFetch } from \"./fetch/universalFetch\";\nexport { default as xhr } from \"./fetch/xhr\";\nexport type * from \"./fetch/types\";\n\n// helpers\nexport * from \"./helpers/createHash\";\nexport { default as createUUID } from \"./helpers/createUUID\";\nexport * from \"./helpers/sanitizeHtml\";\nexport * from \"./helpers/objects\";\nexport * from \"./helpers/text\";\nexport * from \"./helpers/checkResource\";\n\n// number\nexport { default as DecimalFormat } from \"./number/DecimalFormat\";\nexport { default as formatValue } from \"./number/formatValue\";\nexport * from \"./number/parseNumbers\";\n"],"file":"index.js"}
|
|
@@ -45,6 +45,9 @@ var useLogin = function useLogin() {
|
|
|
45
45
|
return {
|
|
46
46
|
isAuthenticated: getIsAuthenticated(auth.isAuthenticated, application),
|
|
47
47
|
errorMessage: auth.error,
|
|
48
|
+
resetErrors: function resetErrors() {
|
|
49
|
+
return dispatch((0, _actions.resetAuthErrors)());
|
|
50
|
+
},
|
|
48
51
|
login: function login(username, password) {
|
|
49
52
|
return dispatch((0, _actions.login)(username, password));
|
|
50
53
|
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import { useSelector, useDispatch } from "react-redux";
|
|
3
3
|
import { getApplication } from "../redux/_modularui/selectors";
|
|
4
|
-
import { login, logout } from "../redux/actions";
|
|
4
|
+
import { login, logout, resetAuthErrors } from "../redux/actions";
|
|
5
5
|
import UserServicesModel from "../models/user/UserServicesModel";
|
|
6
6
|
import { useState, useEffect } from "react";
|
|
7
7
|
|
|
8
|
+
import type { ResetAuthErrorsAction } from "../redux/types";
|
|
8
9
|
type LoginHook = {
|
|
9
10
|
isAuthenticated: boolean,
|
|
10
11
|
errorMessage: ?string,
|
|
12
|
+
resetErrors: () => ResetAuthErrorsAction,
|
|
11
13
|
login: (username: string, password: string) => void,
|
|
12
14
|
};
|
|
13
15
|
type LogoutHook = {
|
|
@@ -39,6 +41,7 @@ export const useLogin = (): LoginHook => {
|
|
|
39
41
|
return {
|
|
40
42
|
isAuthenticated: getIsAuthenticated(auth.isAuthenticated, application),
|
|
41
43
|
errorMessage: auth.error,
|
|
44
|
+
resetErrors: () => dispatch(resetAuthErrors()),
|
|
42
45
|
login: (username: string, password: string) =>
|
|
43
46
|
dispatch(login(username, password)),
|
|
44
47
|
};
|
|
@@ -66,12 +69,11 @@ export const useLogout = (): LogoutHook => {
|
|
|
66
69
|
|
|
67
70
|
return {
|
|
68
71
|
isAuthenticated,
|
|
69
|
-
logout: () =>
|
|
70
|
-
|
|
72
|
+
logout: () =>
|
|
73
|
+
dispatch(logout()).then(() => {
|
|
71
74
|
if (!cancel) {
|
|
72
75
|
setIsAuthenticated(false);
|
|
73
76
|
}
|
|
74
|
-
})
|
|
75
|
-
},
|
|
77
|
+
}),
|
|
76
78
|
};
|
|
77
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useAuthentication.js"],"names":["getIsAuthenticated","isAuthenticated","application","userServicesModel","userServices","UserServicesModel","isLoggedIn","useLogin","dispatch","getApplication","auth","state","errorMessage","error","login","username","password","useLogout","cancel","setCancel","setIsAuthenticated","logout","then"],"mappings":";;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useAuthentication.js"],"names":["getIsAuthenticated","isAuthenticated","application","userServicesModel","userServices","UserServicesModel","isLoggedIn","useLogin","dispatch","getApplication","auth","state","errorMessage","error","resetErrors","login","username","password","useLogout","cancel","setCancel","setIsAuthenticated","logout","then"],"mappings":";;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAcA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,eAAD,EAAkBC,WAAlB,EAAkC;AAC3D,MAAI,CAACA,WAAL,EAAkB;AAChB,WAAO,KAAP;AACD;;AAED,MAAMC,iBAAiB,GAAGD,WAAW,CAACE,YAAtC;;AACA,MAAID,iBAAiB,YAAYE,0BAAjC,EAAoD;AAClD,WAAOJ,eAAe,IAAIE,iBAAiB,CAACG,UAA5C;AACD;;AAED,SAAO,KAAP;AACD,CAXD;AAaA;AACA;;;AACO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,GAAiB;AACvC,MAAMC,QAAQ,GAAG,8BAAjB;AAEA,MAAMN,WAAW,GAAG,6BAAYO,yBAAZ,CAApB;AACA,MAAMC,IAAI,GAAG,6BAAY,UAACC,KAAD;AAAA,WAAWA,KAAK,CAACD,IAAjB;AAAA,GAAZ,CAAb;AAEA,SAAO;AACLT,IAAAA,eAAe,EAAED,kBAAkB,CAACU,IAAI,CAACT,eAAN,EAAuBC,WAAvB,CAD9B;AAELU,IAAAA,YAAY,EAAEF,IAAI,CAACG,KAFd;AAGLC,IAAAA,WAAW,EAAE;AAAA,aAAMN,QAAQ,CAAC,+BAAD,CAAd;AAAA,KAHR;AAILO,IAAAA,KAAK,EAAE,eAACC,QAAD,EAAmBC,QAAnB;AAAA,aACLT,QAAQ,CAAC,oBAAMQ,QAAN,EAAgBC,QAAhB,CAAD,CADH;AAAA;AAJF,GAAP;AAOD,CAbM;AAeP;AACA;;;;;AACO,IAAMC,SAAS,GAAG,SAAZA,SAAY,GAAkB;AACzC,MAAMV,QAAQ,GAAG,8BAAjB;AACA,MAAMN,WAAW,GAAG,6BAAYO,yBAAZ,CAApB;AACA,MAAMC,IAAI,GAAG,6BAAY,UAACC,KAAD;AAAA;;AAAA,WAAW,gBAAAA,KAAK,CAACD,IAAN,4DAAYT,eAAZ,KAA+B,KAA1C;AAAA,GAAZ,CAAb;;AAEA,kBAA4B,qBAAS,KAAT,CAA5B;AAAA;AAAA,MAAOkB,MAAP;AAAA,MAAeC,SAAf;;AACA,mBAA8C,qBAAS;AAAA,WACrDpB,kBAAkB,CAACU,IAAD,EAAOR,WAAP,CADmC;AAAA,GAAT,CAA9C;AAAA;AAAA,MAAOD,eAAP;AAAA,MAAwBoB,kBAAxB,iBANyC,CAUzC;AACA;;;AACA,wBAAU,YAAM;AACd,WAAO,YAAM;AACXD,MAAAA,SAAS,CAAC,IAAD,CAAT;AACD,KAFD;AAGD,GAJD,EAIG,EAJH;AAMA,SAAO;AACLnB,IAAAA,eAAe,EAAfA,eADK;AAELqB,IAAAA,MAAM,EAAE;AAAA,aACNd,QAAQ,CAAC,sBAAD,CAAR,CAAmBe,IAAnB,CAAwB,YAAM;AAC5B,YAAI,CAACJ,MAAL,EAAa;AACXE,UAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD;AACF,OAJD,CADM;AAAA;AAFH,GAAP;AASD,CA3BM","sourcesContent":["// @flow\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { getApplication } from \"../redux/_modularui/selectors\";\nimport { login, logout, resetAuthErrors } from \"../redux/actions\";\nimport UserServicesModel from \"../models/user/UserServicesModel\";\nimport { useState, useEffect } from \"react\";\n\nimport type { ResetAuthErrorsAction } from \"../redux/types\";\ntype LoginHook = {\n isAuthenticated: boolean,\n errorMessage: ?string,\n resetErrors: () => ResetAuthErrorsAction,\n login: (username: string, password: string) => void,\n};\ntype LogoutHook = {\n isAuthenticated: boolean,\n logout: () => void,\n};\n\nconst getIsAuthenticated = (isAuthenticated, application) => {\n if (!application) {\n return false;\n }\n\n const userServicesModel = application.userServices;\n if (userServicesModel instanceof UserServicesModel) {\n return isAuthenticated && userServicesModel.isLoggedIn;\n }\n\n return false;\n};\n\n/**\n */\nexport const useLogin = (): LoginHook => {\n const dispatch = useDispatch();\n\n const application = useSelector(getApplication);\n const auth = useSelector((state) => state.auth);\n\n return {\n isAuthenticated: getIsAuthenticated(auth.isAuthenticated, application),\n errorMessage: auth.error,\n resetErrors: () => dispatch(resetAuthErrors()),\n login: (username: string, password: string) =>\n dispatch(login(username, password)),\n };\n};\n\n/**\n */\nexport const useLogout = (): LogoutHook => {\n const dispatch = useDispatch();\n const application = useSelector(getApplication);\n const auth = useSelector((state) => state.auth?.isAuthenticated || false);\n\n const [cancel, setCancel] = useState(false);\n const [isAuthenticated, setIsAuthenticated] = useState(() =>\n getIsAuthenticated(auth, application)\n );\n\n // set cancel to true when the component this hook is used on, has been unmounted\n // prevents state changes after unmount\n useEffect(() => {\n return () => {\n setCancel(true);\n };\n }, []);\n\n return {\n isAuthenticated,\n logout: () =>\n dispatch(logout()).then(() => {\n if (!cancel) {\n setIsAuthenticated(false);\n }\n }),\n };\n};\n"],"file":"useAuthentication.js"}
|
|
@@ -144,13 +144,24 @@ var ApplicationModel = /*#__PURE__*/function (_ResourceModel) {
|
|
|
144
144
|
return this._userServices ? this._userServices : null;
|
|
145
145
|
}
|
|
146
146
|
/**
|
|
147
|
-
*
|
|
148
|
-
* only available when the user services are available
|
|
147
|
+
* Indicates if the user is logged in
|
|
149
148
|
*/
|
|
150
149
|
,
|
|
151
150
|
set: function set(model) {
|
|
152
151
|
this._userServices = model instanceof _UserServicesModel.default ? model : null;
|
|
153
152
|
}
|
|
153
|
+
}, {
|
|
154
|
+
key: "isLoggedIn",
|
|
155
|
+
get: function get() {
|
|
156
|
+
var _this$userServices$is, _this$userServices;
|
|
157
|
+
|
|
158
|
+
return (_this$userServices$is = (_this$userServices = this.userServices) === null || _this$userServices === void 0 ? void 0 : _this$userServices.isLoggedIn) !== null && _this$userServices$is !== void 0 ? _this$userServices$is : false;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Retrieve link to the user information,
|
|
162
|
+
* only available when the user services are available
|
|
163
|
+
*/
|
|
164
|
+
|
|
154
165
|
}, {
|
|
155
166
|
key: "userHref",
|
|
156
167
|
get: function get() {
|