@beinformed/ui 1.25.6 → 1.27.0-beta.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 +31 -0
- package/esm/constants/Constants.js +9 -35
- package/esm/constants/Constants.js.map +1 -1
- package/esm/constants/Settings.js +47 -1
- package/esm/constants/Settings.js.map +1 -1
- package/esm/hooks/useAuthentication.js +7 -6
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/models/application/ApplicationModel.js +2 -3
- package/esm/models/application/ApplicationModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js +3 -12
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/esm/models/attributes/UploadAttributeModel.js +15 -3
- package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
- package/esm/models/error/ErrorModel.js +11 -0
- package/esm/models/error/ErrorModel.js.map +1 -1
- package/esm/models/href/Href.js +4 -4
- package/esm/models/href/Href.js.map +1 -1
- package/esm/modularui/Authenticate.js +6 -6
- package/esm/modularui/Authenticate.js.map +1 -1
- package/esm/modularui/CaptchaRequest.js +46 -0
- package/esm/modularui/CaptchaRequest.js.map +1 -0
- package/esm/modularui/ModularUIRequest.js +48 -6
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/modularui/UploadRequest.js +104 -0
- package/esm/modularui/UploadRequest.js.map +1 -0
- package/esm/modularui/index.js +2 -0
- package/esm/modularui/index.js.map +1 -1
- package/esm/react-client/client.js +2 -2
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-server/contextPath.js +2 -2
- package/esm/react-server/contextPath.js.map +1 -1
- package/esm/react-server/renderSSRComplete.js +5 -4
- package/esm/react-server/renderSSRComplete.js.map +1 -1
- package/esm/react-server/renderSSRMinimal.js +2 -2
- package/esm/react-server/renderSSRMinimal.js.map +1 -1
- package/esm/react-server/serverNoSSR.js +2 -1
- package/esm/react-server/serverNoSSR.js.map +1 -1
- package/esm/react-server/serverUtil.js +31 -5
- package/esm/react-server/serverUtil.js.map +1 -1
- package/esm/redux/_modularui/ModularUIActions.js +7 -0
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
- package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/esm/redux/_modularui/ModularUIReducer.js +21 -1
- package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/esm/redux/_modularui/types.js.map +1 -1
- package/esm/redux/store/configureStore.js +1 -1
- package/esm/redux/store/configureStore.js.map +1 -1
- package/esm/redux/types.js.map +1 -1
- package/esm/utils/browser/Cookies.js +6 -7
- package/esm/utils/browser/Cookies.js.map +1 -1
- package/esm/utils/fetch/serverFetch.js +2 -2
- package/esm/utils/fetch/serverFetch.js.map +1 -1
- package/esm/utils/fetch/types.js.map +1 -1
- package/esm/utils/fetch/universalFetch.js +4 -3
- package/esm/utils/fetch/universalFetch.js.map +1 -1
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/esm/utils/helpers/checkResource.js +0 -3
- package/esm/utils/helpers/checkResource.js.map +1 -1
- package/esm/utils/helpers/index.js +8 -0
- package/esm/utils/helpers/index.js.map +1 -0
- package/esm/utils/helpers/repositoryResource.js +18 -0
- package/esm/utils/helpers/repositoryResource.js.map +1 -0
- package/esm/utils/index.js +1 -6
- package/esm/utils/index.js.map +1 -1
- package/lib/constants/Constants.js +13 -42
- package/lib/constants/Constants.js.flow +9 -41
- package/lib/constants/Constants.js.map +1 -1
- package/lib/constants/Settings.js +53 -1
- package/lib/constants/Settings.js.flow +60 -0
- package/lib/constants/Settings.js.map +1 -1
- package/lib/hooks/useAuthentication.js +6 -5
- package/lib/hooks/useAuthentication.js.flow +9 -8
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/models/application/ApplicationModel.js +1 -1
- package/lib/models/application/ApplicationModel.js.flow +3 -2
- package/lib/models/application/ApplicationModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js +3 -12
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +3 -17
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/lib/models/attributes/UploadAttributeModel.js +15 -3
- package/lib/models/attributes/UploadAttributeModel.js.flow +21 -0
- package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
- package/lib/models/error/ErrorModel.js +11 -0
- package/lib/models/error/ErrorModel.js.flow +12 -1
- package/lib/models/error/ErrorModel.js.map +1 -1
- package/lib/models/href/Href.js +6 -6
- package/lib/models/href/Href.js.flow +4 -4
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/href/__tests__/Href.spec.js.flow +2 -3
- package/lib/modularui/Authenticate.js +4 -4
- package/lib/modularui/Authenticate.js.flow +6 -5
- package/lib/modularui/Authenticate.js.map +1 -1
- package/lib/modularui/CaptchaRequest.js +54 -0
- package/lib/modularui/CaptchaRequest.js.flow +45 -0
- package/lib/modularui/CaptchaRequest.js.map +1 -0
- package/lib/modularui/ModularUIRequest.js +46 -4
- package/lib/modularui/ModularUIRequest.js.flow +49 -10
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/modularui/UploadRequest.js +112 -0
- package/lib/modularui/UploadRequest.js.flow +125 -0
- package/lib/modularui/UploadRequest.js.map +1 -0
- package/lib/modularui/index.js +14 -0
- package/lib/modularui/index.js.flow +2 -0
- package/lib/modularui/index.js.map +1 -1
- package/lib/react-client/client.js +2 -2
- package/lib/react-client/client.js.flow +2 -2
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-server/contextPath.js +2 -2
- package/lib/react-server/contextPath.js.flow +2 -2
- package/lib/react-server/contextPath.js.map +1 -1
- package/lib/react-server/renderSSRComplete.js +5 -4
- package/lib/react-server/renderSSRComplete.js.flow +6 -4
- package/lib/react-server/renderSSRComplete.js.map +1 -1
- package/lib/react-server/renderSSRMinimal.js +2 -2
- package/lib/react-server/renderSSRMinimal.js.flow +2 -2
- package/lib/react-server/renderSSRMinimal.js.map +1 -1
- package/lib/react-server/serverNoSSR.js +1 -0
- package/lib/react-server/serverNoSSR.js.flow +5 -0
- package/lib/react-server/serverNoSSR.js.map +1 -1
- package/lib/react-server/serverUtil.js +32 -5
- package/lib/react-server/serverUtil.js.flow +40 -6
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/redux/_modularui/ModularUIActions.js +9 -1
- package/lib/redux/_modularui/ModularUIActions.js.flow +10 -0
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
- package/lib/redux/_modularui/ModularUIMiddleware.js.flow +1 -1
- package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/lib/redux/_modularui/ModularUIReducer.js +21 -1
- package/lib/redux/_modularui/ModularUIReducer.js.flow +22 -0
- package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/lib/redux/_modularui/types.js.flow +9 -1
- package/lib/redux/_modularui/types.js.map +1 -1
- package/lib/redux/store/configureStore.js +1 -1
- package/lib/redux/store/configureStore.js.flow +1 -1
- package/lib/redux/store/configureStore.js.map +1 -1
- package/lib/redux/types.js.flow +2 -0
- package/lib/redux/types.js.map +1 -1
- package/lib/utils/browser/Cookies.js +3 -3
- package/lib/utils/browser/Cookies.js.flow +10 -8
- package/lib/utils/browser/Cookies.js.map +1 -1
- package/lib/utils/fetch/serverFetch.js +2 -2
- package/lib/utils/fetch/serverFetch.js.flow +2 -2
- package/lib/utils/fetch/serverFetch.js.map +1 -1
- package/lib/utils/fetch/types.js.flow +1 -1
- package/lib/utils/fetch/types.js.map +1 -1
- package/lib/utils/fetch/universalFetch.js +3 -2
- package/lib/utils/fetch/universalFetch.js.flow +5 -3
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js.flow +1 -1
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/checkResource.js +0 -3
- package/lib/utils/helpers/checkResource.js.flow +0 -2
- package/lib/utils/helpers/checkResource.js.map +1 -1
- package/lib/utils/helpers/index.js +90 -0
- package/lib/utils/helpers/index.js.flow +8 -0
- package/lib/utils/helpers/index.js.map +1 -0
- package/lib/utils/helpers/repositoryResource.js +25 -0
- package/lib/utils/helpers/repositoryResource.js.flow +20 -0
- package/lib/utils/helpers/repositoryResource.js.map +1 -0
- package/lib/utils/index.js +4 -60
- package/lib/utils/index.js.flow +1 -6
- package/lib/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/constants/Constants.js +9 -41
- package/src/constants/Settings.js +60 -0
- package/src/hooks/useAuthentication.js +9 -8
- package/src/models/application/ApplicationModel.js +3 -2
- package/src/models/attributes/ChoiceAttributeOptionCollection.js +3 -17
- package/src/models/attributes/UploadAttributeModel.js +21 -0
- package/src/models/error/ErrorModel.js +12 -1
- package/src/models/href/Href.js +4 -4
- package/src/models/href/__tests__/Href.spec.js +2 -3
- package/src/modularui/Authenticate.js +6 -5
- package/src/modularui/CaptchaRequest.js +45 -0
- package/src/modularui/ModularUIRequest.js +49 -10
- package/src/modularui/UploadRequest.js +125 -0
- package/src/modularui/index.js +2 -0
- package/src/react-client/client.js +2 -2
- package/src/react-server/contextPath.js +2 -2
- package/src/react-server/renderSSRComplete.js +6 -4
- package/src/react-server/renderSSRMinimal.js +2 -2
- package/src/react-server/serverNoSSR.js +5 -0
- package/src/react-server/serverUtil.js +40 -6
- package/src/redux/_modularui/ModularUIActions.js +10 -0
- package/src/redux/_modularui/ModularUIMiddleware.js +1 -1
- package/src/redux/_modularui/ModularUIReducer.js +22 -0
- package/src/redux/_modularui/types.js +9 -1
- package/src/redux/store/configureStore.js +1 -1
- package/src/redux/types.js +2 -0
- package/src/utils/browser/Cookies.js +10 -8
- package/src/utils/fetch/serverFetch.js +2 -2
- package/src/utils/fetch/types.js +1 -1
- package/src/utils/fetch/universalFetch.js +5 -3
- package/src/utils/fetch/xhr.js +1 -1
- package/src/utils/helpers/checkResource.js +0 -2
- package/src/utils/helpers/index.js +8 -0
- package/src/utils/helpers/repositoryResource.js +20 -0
- package/src/utils/index.js +1 -6
- package/types/constants/Constants.d.ts +8 -24
- package/types/constants/Settings.d.ts +12 -0
- package/types/models/attributes/ChoiceAttributeOptionCollection.d.ts +0 -3
- package/types/models/attributes/UploadAttributeModel.d.ts +6 -0
- package/types/models/error/ErrorModel.d.ts +5 -0
- package/types/models/href/Href.d.ts +1 -1
- package/types/modularui/CaptchaRequest.d.ts +17 -0
- package/types/modularui/ModularUIRequest.d.ts +13 -0
- package/types/modularui/UploadRequest.d.ts +29 -0
- package/types/modularui/index.d.ts +2 -0
- package/types/redux/_modularui/types.d.ts +9 -3
- package/types/redux/types.d.ts +1 -1
- package/types/utils/browser/Cookies.d.ts +0 -6
- package/types/utils/fetch/types.d.ts +2 -3
- package/types/utils/helpers/index.d.ts +7 -0
- package/types/utils/helpers/repositoryResource.d.ts +1 -0
- package/types/utils/index.d.ts +1 -6
|
@@ -21,7 +21,7 @@ const useLogin = () => {
|
|
|
21
21
|
const isAuthenticated = application?.isLoggedIn ?? false;
|
|
22
22
|
return {
|
|
23
23
|
isAuthenticated,
|
|
24
|
-
authenticationTypes: application?.authenticationTypes ?? [_constants.
|
|
24
|
+
authenticationTypes: application?.authenticationTypes ?? [_constants.DEFAULT_AUTHENTICATION_TYPE],
|
|
25
25
|
errorMessage: auth.error,
|
|
26
26
|
resetErrors: () => dispatch((0, _actions.resetAuthErrors)()),
|
|
27
27
|
login: (username, password) => dispatch((0, _actions.login)(username, password)),
|
|
@@ -32,7 +32,7 @@ const useLogin = () => {
|
|
|
32
32
|
}
|
|
33
33
|
if (!isAuthenticated) {
|
|
34
34
|
_Cache.default.setItem("isRedirectLogin", true);
|
|
35
|
-
window.location.assign(`${_constants.
|
|
35
|
+
window.location.assign(`${(0, _constants.getBasePath)()}${authenticationType.redirectUri ?? ""}`);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
};
|
|
@@ -44,15 +44,16 @@ exports.useLogin = useLogin;
|
|
|
44
44
|
const useLogout = () => {
|
|
45
45
|
const dispatch = (0, _reactRedux.useDispatch)();
|
|
46
46
|
const application = (0, _reactRedux.useSelector)(_ModularUISelectors.getApplication);
|
|
47
|
-
const LOGOUT_PATH = (0, _constants.
|
|
47
|
+
const LOGOUT_PATH = (0, _constants.logoutPath)();
|
|
48
|
+
const BASE_PATH = (0, _constants.getBasePath)();
|
|
48
49
|
const isAuthenticated = application?.isLoggedIn ?? false;
|
|
49
50
|
return {
|
|
50
51
|
isAuthenticated,
|
|
51
|
-
authenticationTypes: application?.authenticationTypes ?? [_constants.
|
|
52
|
+
authenticationTypes: application?.authenticationTypes ?? [_constants.DEFAULT_AUTHENTICATION_TYPE],
|
|
52
53
|
logout: () => {
|
|
53
54
|
if (_Cache.default.getItem("isRedirectLogin")) {
|
|
54
55
|
const origin = window.location.origin;
|
|
55
|
-
const url = `${origin}${
|
|
56
|
+
const url = `${origin}${BASE_PATH}/logout?url=${origin}${BASE_PATH}${LOGOUT_PATH}`;
|
|
56
57
|
_Cache.default.setItem("isRedirectLogin", false);
|
|
57
58
|
window.location.assign(url);
|
|
58
59
|
} else {
|
|
@@ -6,9 +6,9 @@ import { login, logout, resetAuthErrors } from "../redux/actions";
|
|
|
6
6
|
|
|
7
7
|
import Cache from "../utils/browser/Cache";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
DEFAULT_AUTHENTICATION_TYPE,
|
|
10
|
+
getBasePath,
|
|
11
|
+
logoutPath,
|
|
12
12
|
} from "../constants";
|
|
13
13
|
|
|
14
14
|
import type { ResetAuthErrorsAction } from "../redux/types";
|
|
@@ -43,7 +43,7 @@ export const useLogin = (): LoginHook => {
|
|
|
43
43
|
return {
|
|
44
44
|
isAuthenticated,
|
|
45
45
|
authenticationTypes: application?.authenticationTypes ?? [
|
|
46
|
-
|
|
46
|
+
DEFAULT_AUTHENTICATION_TYPE,
|
|
47
47
|
],
|
|
48
48
|
errorMessage: auth.error,
|
|
49
49
|
resetErrors: () => dispatch(resetAuthErrors()),
|
|
@@ -62,7 +62,7 @@ export const useLogin = (): LoginHook => {
|
|
|
62
62
|
if (!isAuthenticated) {
|
|
63
63
|
Cache.setItem("isRedirectLogin", true);
|
|
64
64
|
window.location.assign(
|
|
65
|
-
`${
|
|
65
|
+
`${getBasePath()}${authenticationType.redirectUri ?? ""}`
|
|
66
66
|
);
|
|
67
67
|
}
|
|
68
68
|
},
|
|
@@ -75,18 +75,19 @@ export const useLogout = (): LogoutHook => {
|
|
|
75
75
|
const dispatch = useDispatch();
|
|
76
76
|
const application = useSelector(getApplication);
|
|
77
77
|
|
|
78
|
-
const LOGOUT_PATH =
|
|
78
|
+
const LOGOUT_PATH = logoutPath();
|
|
79
|
+
const BASE_PATH = getBasePath();
|
|
79
80
|
|
|
80
81
|
const isAuthenticated = application?.isLoggedIn ?? false;
|
|
81
82
|
return {
|
|
82
83
|
isAuthenticated,
|
|
83
84
|
authenticationTypes: application?.authenticationTypes ?? [
|
|
84
|
-
|
|
85
|
+
DEFAULT_AUTHENTICATION_TYPE,
|
|
85
86
|
],
|
|
86
87
|
logout: () => {
|
|
87
88
|
if (Cache.getItem("isRedirectLogin")) {
|
|
88
89
|
const origin = window.location.origin;
|
|
89
|
-
const url = `${origin}${
|
|
90
|
+
const url = `${origin}${BASE_PATH}/logout?url=${origin}${BASE_PATH}${LOGOUT_PATH}`;
|
|
90
91
|
Cache.setItem("isRedirectLogin", false);
|
|
91
92
|
window.location.assign(url);
|
|
92
93
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthentication.js","names":["useLogin","Cache","setItem","dispatch","useDispatch","application","useSelector","getApplication","auth","state","isAuthenticated","isLoggedIn","authenticationTypes","
|
|
1
|
+
{"version":3,"file":"useAuthentication.js","names":["useLogin","Cache","setItem","dispatch","useDispatch","application","useSelector","getApplication","auth","state","isAuthenticated","isLoggedIn","authenticationTypes","DEFAULT_AUTHENTICATION_TYPE","errorMessage","error","resetErrors","resetAuthErrors","login","username","password","redirectLogin","authenticationType","getItem","IllegalStateException","authentication","redirectUri","window","location","assign","getBasePath","useLogout","LOGOUT_PATH","logoutPath","BASE_PATH","logout","origin","url"],"sources":["../../src/hooks/useAuthentication.js"],"sourcesContent":["// @flow\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { getApplication } from \"../redux/_modularui/ModularUISelectors\";\nimport { login, logout, resetAuthErrors } from \"../redux/actions\";\n\nimport Cache from \"../utils/browser/Cache\";\nimport {\n DEFAULT_AUTHENTICATION_TYPE,\n getBasePath,\n logoutPath,\n} from \"../constants\";\n\nimport type { ResetAuthErrorsAction } from \"../redux/types\";\nimport type { AuthenticationType } from \"../models/types\";\nimport { IllegalStateException } from \"../exceptions\";\ntype LoginHook = {\n isAuthenticated: boolean,\n authenticationTypes: Array<AuthenticationType>,\n errorMessage: ?string,\n resetErrors: () => ResetAuthErrorsAction,\n login: (username: string, password: string) => void,\n redirectLogin: (authenticationType: AuthenticationType) => void,\n};\ntype LogoutHook = {\n isAuthenticated: boolean,\n authenticationTypes: Array<AuthenticationType>,\n logout: () => void,\n};\n\n/**\n */\nexport const useLogin = (): LoginHook => {\n Cache.setItem(\"isRedirectLogin\", false);\n\n const dispatch = useDispatch();\n\n const application = useSelector(getApplication);\n const auth = useSelector((state) => state.auth);\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n errorMessage: auth.error,\n resetErrors: () => dispatch(resetAuthErrors()),\n login: (username: string, password: string) =>\n dispatch(login(username, password)),\n redirectLogin: (authenticationType: AuthenticationType) => {\n if (Cache.getItem(\"isRedirectLogin\")) {\n // prevent endless loop in redirects when authentication type can't be redirected\n throw new IllegalStateException(\n `Could not redirect to '${\n authenticationType.authentication\n }' using url: '${authenticationType.redirectUri ?? \"\"}'`\n );\n }\n\n if (!isAuthenticated) {\n Cache.setItem(\"isRedirectLogin\", true);\n window.location.assign(\n `${getBasePath()}${authenticationType.redirectUri ?? \"\"}`\n );\n }\n },\n };\n};\n\n/**\n */\nexport const useLogout = (): LogoutHook => {\n const dispatch = useDispatch();\n const application = useSelector(getApplication);\n\n const LOGOUT_PATH = logoutPath();\n const BASE_PATH = getBasePath();\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n logout: () => {\n if (Cache.getItem(\"isRedirectLogin\")) {\n const origin = window.location.origin;\n const url = `${origin}${BASE_PATH}/logout?url=${origin}${BASE_PATH}${LOGOUT_PATH}`;\n Cache.setItem(\"isRedirectLogin\", false);\n window.location.assign(url);\n } else {\n return dispatch(logout());\n }\n },\n };\n};\n"],"mappings":";;;;;;;AACA;AAEA;AACA;AAEA;AACA;AAQA;AAeA;AACA;AACO,MAAMA,QAAQ,GAAG,MAAiB;EACvCC,cAAK,CAACC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC;EAEvC,MAAMC,QAAQ,GAAG,IAAAC,uBAAW,GAAE;EAE9B,MAAMC,WAAW,GAAG,IAAAC,uBAAW,EAACC,kCAAc,CAAC;EAC/C,MAAMC,IAAI,GAAG,IAAAF,uBAAW,EAAEG,KAAK,IAAKA,KAAK,CAACD,IAAI,CAAC;EAE/C,MAAME,eAAe,GAAGL,WAAW,EAAEM,UAAU,IAAI,KAAK;EAExD,OAAO;IACLD,eAAe;IACfE,mBAAmB,EAAEP,WAAW,EAAEO,mBAAmB,IAAI,CACvDC,sCAA2B,CAC5B;IACDC,YAAY,EAAEN,IAAI,CAACO,KAAK;IACxBC,WAAW,EAAE,MAAMb,QAAQ,CAAC,IAAAc,wBAAe,GAAE,CAAC;IAC9CC,KAAK,EAAE,CAACC,QAAgB,EAAEC,QAAgB,KACxCjB,QAAQ,CAAC,IAAAe,cAAK,EAACC,QAAQ,EAAEC,QAAQ,CAAC,CAAC;IACrCC,aAAa,EAAGC,kBAAsC,IAAK;MACzD,IAAIrB,cAAK,CAACsB,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACpC;QACA,MAAM,IAAIC,iCAAqB,CAC5B,0BACCF,kBAAkB,CAACG,cACpB,iBAAgBH,kBAAkB,CAACI,WAAW,IAAI,EAAG,GAAE,CACzD;MACH;MAEA,IAAI,CAAChB,eAAe,EAAE;QACpBT,cAAK,CAACC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;QACtCyB,MAAM,CAACC,QAAQ,CAACC,MAAM,CACnB,GAAE,IAAAC,sBAAW,GAAG,GAAER,kBAAkB,CAACI,WAAW,IAAI,EAAG,EAAC,CAC1D;MACH;IACF;EACF,CAAC;AACH,CAAC;;AAED;AACA;AADA;AAEO,MAAMK,SAAS,GAAG,MAAkB;EACzC,MAAM5B,QAAQ,GAAG,IAAAC,uBAAW,GAAE;EAC9B,MAAMC,WAAW,GAAG,IAAAC,uBAAW,EAACC,kCAAc,CAAC;EAE/C,MAAMyB,WAAW,GAAG,IAAAC,qBAAU,GAAE;EAChC,MAAMC,SAAS,GAAG,IAAAJ,sBAAW,GAAE;EAE/B,MAAMpB,eAAe,GAAGL,WAAW,EAAEM,UAAU,IAAI,KAAK;EACxD,OAAO;IACLD,eAAe;IACfE,mBAAmB,EAAEP,WAAW,EAAEO,mBAAmB,IAAI,CACvDC,sCAA2B,CAC5B;IACDsB,MAAM,EAAE,MAAM;MACZ,IAAIlC,cAAK,CAACsB,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACpC,MAAMa,MAAM,GAAGT,MAAM,CAACC,QAAQ,CAACQ,MAAM;QACrC,MAAMC,GAAG,GAAI,GAAED,MAAO,GAAEF,SAAU,eAAcE,MAAO,GAAEF,SAAU,GAAEF,WAAY,EAAC;QAClF/B,cAAK,CAACC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC;QACvCyB,MAAM,CAACC,QAAQ,CAACC,MAAM,CAACQ,GAAG,CAAC;MAC7B,CAAC,MAAM;QACL,OAAOlC,QAAQ,CAAC,IAAAgC,eAAM,GAAE,CAAC;MAC3B;IACF;EACF,CAAC;AACH,CAAC;AAAC"}
|
|
@@ -69,7 +69,7 @@ class ApplicationModel extends _ResourceModel.default {
|
|
|
69
69
|
* Getting the authentication types of the application
|
|
70
70
|
*/
|
|
71
71
|
get authenticationTypes() {
|
|
72
|
-
const authenticationTypes = this.getContribution("security", [_constants.
|
|
72
|
+
const authenticationTypes = this.getContribution("security", [_constants.DEFAULT_AUTHENTICATION_TYPE]);
|
|
73
73
|
|
|
74
74
|
//put primary first
|
|
75
75
|
return authenticationTypes?.sort((a, b) => a.isPrimary === b.isPrimary ? 0 : a.isPrimary ? -1 : 1);
|
|
@@ -5,11 +5,12 @@ import UserServicesModel from "../user/UserServicesModel";
|
|
|
5
5
|
|
|
6
6
|
import { NotAllowedUriException } from "../../exceptions";
|
|
7
7
|
|
|
8
|
+
import { DEFAULT_AUTHENTICATION_TYPE } from "../../constants";
|
|
9
|
+
|
|
8
10
|
import type { ModularUIModel, AuthenticationType } from "../types";
|
|
9
11
|
import type { ModularUIResponse } from "../../modularui";
|
|
10
12
|
import type LinkCollection from "../links/LinkCollection";
|
|
11
13
|
import type Href from "../href/Href";
|
|
12
|
-
import { fallbackDefaultAuthenticationType } from "../../constants";
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* The Application model
|
|
@@ -76,7 +77,7 @@ export default class ApplicationModel extends ResourceModel {
|
|
|
76
77
|
*/
|
|
77
78
|
get authenticationTypes(): Array<AuthenticationType> {
|
|
78
79
|
const authenticationTypes = this.getContribution("security", [
|
|
79
|
-
|
|
80
|
+
DEFAULT_AUTHENTICATION_TYPE,
|
|
80
81
|
]);
|
|
81
82
|
|
|
82
83
|
//put primary first
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationModel.js","names":["ApplicationModel","ResourceModel","type","modelName","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","userService","links","getLinkByKey","href","path","NotAllowedUriException","setChildModels","models","userServiceModel","model","userServices","label","getContribution","authenticationTypes","
|
|
1
|
+
{"version":3,"file":"ApplicationModel.js","names":["ApplicationModel","ResourceModel","type","modelName","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","userService","links","getLinkByKey","href","path","NotAllowedUriException","setChildModels","models","userServiceModel","model","userServices","label","getContribution","authenticationTypes","DEFAULT_AUTHENTICATION_TYPE","sort","a","b","isPrimary","tabs","getLinksByGroup","modelcatalog","LinkModel","create","_userServices","UserServicesModel","isLoggedIn","userHref","userLink"],"sources":["../../../src/models/application/ApplicationModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport LinkModel from \"../links/LinkModel\";\nimport UserServicesModel from \"../user/UserServicesModel\";\n\nimport { NotAllowedUriException } from \"../../exceptions\";\n\nimport { DEFAULT_AUTHENTICATION_TYPE } from \"../../constants\";\n\nimport type { ModularUIModel, AuthenticationType } 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 get modelName(): string {\n return \"ApplicationModel\";\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 authentication types of the application\n */\n get authenticationTypes(): Array<AuthenticationType> {\n const authenticationTypes = this.getContribution(\"security\", [\n DEFAULT_AUTHENTICATION_TYPE,\n ]);\n\n //put primary first\n return authenticationTypes?.sort(\n (a: AuthenticationType, b: AuthenticationType) =>\n a.isPrimary === b.isPrimary ? 0 : a.isPrimary ? -1 : 1\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"],"mappings":";;;;;;;;;AACA;AACA;AACA;AAEA;AAEA;AAOA;AACA;AACA;AACe,MAAMA,gBAAgB,SAASC,sBAAa,CAAC;EAAA;IAAA;IAAA;EAAA;EAG1D;AACF;AACA;EACE,IAAIC,IAAI,GAAW;IACjB,OAAO,aAAa;EACtB;;EAEA;AACF;EACE,WAAWC,SAAS,GAAW;IAC7B,OAAO,kBAAkB;EAC3B;;EAEA;AACF;EACE,OAAOC,iBAAiB,CAACC,IAAuB,EAAW;IACzD,OACEA,IAAI,CAACC,aAAa,CAACC,YAAY,IAC/BF,IAAI,CAACC,aAAa,CAACC,YAAY,KAAK,aAAa;EAErD;;EAEA;AACF;EACEC,yBAAyB,GAAqB;IAC5C,MAAMC,WAAW,GAAG,IAAI,CAACC,KAAK,CAACC,YAAY,CAAC,cAAc,CAAC;IAC3D,IAAIF,WAAW,IAAIA,WAAW,CAACG,IAAI,CAACC,IAAI,KAAK,QAAQ,EAAE;MACrD,MAAM,IAAIC,kCAAsB,CAC9B,kIAAkI,CACnI;IACH;IAEA,OAAOL,WAAW,GAAG,CAACA,WAAW,CAAC,GAAG,EAAE;EACzC;;EAEA;AACF;EACEM,cAAc,CAACC,MAA6B,EAAE;IAC5C,MAAMC,gBAAgB,GAAG,mBAAAD,MAAM,OAANA,MAAM,EAC5BE,KAAK,IAAKA,KAAK,CAAChB,IAAI,KAAK,cAAc,CACzC;IAED,IAAIe,gBAAgB,EAAE;MACpB,IAAI,CAACE,YAAY,GAAGF,gBAAgB;IACtC;EACF;;EAEA;AACF;AACA;EACE,IAAIG,KAAK,GAAW;IAClB,OAAO,IAAI,CAACC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;EAC1C;;EAEA;AACF;AACA;EACE,IAAIC,mBAAmB,GAA8B;IACnD,MAAMA,mBAAmB,GAAG,IAAI,CAACD,eAAe,CAAC,UAAU,EAAE,CAC3DE,sCAA2B,CAC5B,CAAC;;IAEF;IACA,OAAOD,mBAAmB,EAAEE,IAAI,CAC9B,CAACC,CAAqB,EAAEC,CAAqB,KAC3CD,CAAC,CAACE,SAAS,KAAKD,CAAC,CAACC,SAAS,GAAG,CAAC,GAAGF,CAAC,CAACE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CACzD;EACH;EACA;AACF;AACA;EACE,IAAIC,IAAI,GAAmB;IACzB,OAAO,IAAI,CAAClB,KAAK,CAACmB,eAAe,CAAC,KAAK,CAAC;EAC1C;;EAEA;AACF;AACA;EACE,IAAIC,YAAY,GAAc;IAC5B,OAAOC,kBAAS,CAACC,MAAM,CAAC,cAAc,EAAE,eAAe,EAAE,eAAe,CAAC;EAC3E;;EAEA;AACF;AACA;EACE,IAAIb,YAAY,CAACD,KAAsB,EAAE;IACvC,IAAI,CAACe,aAAa,GAAGf,KAAK,YAAYgB,0BAAiB,GAAGhB,KAAK,GAAG,IAAI;EACxE;;EAEA;AACF;AACA;EACE,IAAIC,YAAY,GAAuB;IACrC,OAAO,IAAI,CAACc,aAAa,GAAG,IAAI,CAACA,aAAa,GAAG,IAAI;EACvD;;EAEA;AACF;AACA;EACE,IAAIE,UAAU,GAAY;IACxB,OAAO,IAAI,CAAChB,YAAY,EAAEgB,UAAU,IAAI,KAAK;EAC/C;;EAEA;AACF;AACA;AACA;EACE,IAAIC,QAAQ,GAAgB;IAC1B,IAAI,IAAI,CAACjB,YAAY,IAAI,IAAI,IAAI,IAAI,CAACA,YAAY,CAACkB,QAAQ,IAAI,IAAI,EAAE;MACnE,OAAO,IAAI,CAAClB,YAAY,CAACkB,QAAQ,CAACzB,IAAI;IACxC;IAEA,OAAO,IAAI;EACb;AACF;AAAC"}
|
|
@@ -9,7 +9,6 @@ var _sort = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stabl
|
|
|
9
9
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
10
10
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
11
11
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
12
|
-
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
13
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
14
13
|
var _ResourceCollection = _interopRequireDefault(require("../base/ResourceCollection"));
|
|
15
14
|
var _ChoiceAttributeOptionModel = _interopRequireDefault(require("./ChoiceAttributeOptionModel"));
|
|
@@ -142,22 +141,14 @@ class ChoiceAttributeOptionCollection extends _ResourceCollection.default {
|
|
|
142
141
|
});
|
|
143
142
|
}
|
|
144
143
|
|
|
145
|
-
/**
|
|
146
|
-
*/
|
|
147
|
-
getDefaultValueForOption(value, contributions) {
|
|
148
|
-
const layouthints = contributions.layouthint ?? [];
|
|
149
|
-
const requireDefaultValue = (0, _includes.default)(layouthints).call(layouthints, "checkbox") || (0, _includes.default)(layouthints).call(layouthints, "toggle");
|
|
150
|
-
return requireDefaultValue ? "false" : "";
|
|
151
|
-
}
|
|
152
|
-
|
|
153
144
|
/**
|
|
154
145
|
* Create two static options for true and false,
|
|
155
146
|
* there might be alternative labels configured for each option value
|
|
156
147
|
*/
|
|
157
148
|
addBooleanOptions(value, contributions) {
|
|
158
|
-
const optionValue = value == null ?
|
|
159
|
-
this.addBooleanOption("true", "Yes",
|
|
160
|
-
this.addBooleanOption("false", "No",
|
|
149
|
+
const optionValue = value == null ? [] : [value.toString()];
|
|
150
|
+
this.addBooleanOption("true", "Yes", optionValue, contributions.options);
|
|
151
|
+
this.addBooleanOption("false", "No", optionValue, contributions.options);
|
|
161
152
|
return this;
|
|
162
153
|
}
|
|
163
154
|
|
|
@@ -166,17 +166,6 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
|
|
|
166
166
|
});
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
/**
|
|
170
|
-
*/
|
|
171
|
-
getDefaultValueForOption(value: any, contributions: Object): string {
|
|
172
|
-
const layouthints = contributions.layouthint ?? [];
|
|
173
|
-
|
|
174
|
-
const requireDefaultValue =
|
|
175
|
-
layouthints.includes("checkbox") || layouthints.includes("toggle");
|
|
176
|
-
|
|
177
|
-
return requireDefaultValue ? "false" : "";
|
|
178
|
-
}
|
|
179
|
-
|
|
180
169
|
/**
|
|
181
170
|
* Create two static options for true and false,
|
|
182
171
|
* there might be alternative labels configured for each option value
|
|
@@ -185,13 +174,10 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
|
|
|
185
174
|
value: any,
|
|
186
175
|
contributions: Object
|
|
187
176
|
): ChoiceAttributeOptionCollection {
|
|
188
|
-
const optionValue =
|
|
189
|
-
value == null
|
|
190
|
-
? this.getDefaultValueForOption(value, contributions)
|
|
191
|
-
: value.toString();
|
|
177
|
+
const optionValue = value == null ? [] : [value.toString()];
|
|
192
178
|
|
|
193
|
-
this.addBooleanOption("true", "Yes",
|
|
194
|
-
this.addBooleanOption("false", "No",
|
|
179
|
+
this.addBooleanOption("true", "Yes", optionValue, contributions.options);
|
|
180
|
+
this.addBooleanOption("false", "No", optionValue, contributions.options);
|
|
195
181
|
|
|
196
182
|
return this;
|
|
197
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceAttributeOptionCollection.js","names":["ChoiceAttributeOptionCollection","ResourceCollection","sortOptions","_sortOptions","collection","forEach","option","children","create","data","contributions","referenceDate","DateUtil","now","type","addBooleanOptions","value","dynamicschema","addDynamicSchema","options","addOptions","addHeaders","all","a","b","label","localeCompare","getSelectedOptions","selectedOptions","Array","isArray","push","selected","key","toString","getOptionCount","code","foundOption","count","selectedValues","optionContributions","optionCode","addOption","optionDynamicschema","elementsContributions","addBooleanOption","defaultLabel","isBooleanType","hasAlternativeLabel","getDefaultValueForOption","layouthints","layouthint","requireDefaultValue","optionValue","optionModel","ChoiceAttributeOptionModel","add","deselectAll","newOption","clone","select","toggle","deselect","action","setReferenceDate","date","headers","_headers","child","ListHeaderModel","mergeOptions","withOptions","addNotExistingOptions","some","opt","withOption","mergeOption","callbackfn","thisArg","optionIndex","collectionArray","result"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ListHeaderModel from \"../list/ListHeaderModel\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\n/**\n */\nclass ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttributeOptionModel> {\n _headers: Array<ListHeaderModel> = [];\n _sortOptions: boolean = false;\n\n /**\n */\n set sortOptions(sortOptions: boolean) {\n this._sortOptions = sortOptions;\n\n this.collection.forEach((option) => {\n if (option.children) {\n option.children.sortOptions = sortOptions;\n }\n });\n }\n\n /**\n */\n get sortOptions(): boolean {\n return this._sortOptions;\n }\n\n /**\n */\n static create(\n data: Object = {},\n contributions: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const collection = new ChoiceAttributeOptionCollection();\n\n if (contributions.type === \"boolean\") {\n collection.addBooleanOptions(data.value, contributions);\n } else if (data.dynamicschema != null) {\n collection.addDynamicSchema(data, contributions, referenceDate);\n } else if (contributions.options != null) {\n collection.addOptions(data, contributions, referenceDate);\n }\n\n if (contributions.children != null) {\n collection.addHeaders(contributions.children);\n }\n\n return collection;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<ChoiceAttributeOptionModel> {\n return this.sortOptions\n ? this.collection.sort((a, b) => a.label.localeCompare(b.label))\n : this.collection;\n }\n\n /**\n */\n getSelectedOptions(data: Object): Array<string> {\n const selectedOptions = [];\n\n if (Array.isArray(data.options)) {\n selectedOptions.push(\n ...data.options\n .filter((option) => option.selected)\n .map((option) => option.key)\n );\n } else if (Array.isArray(data.value)) {\n selectedOptions.push(...data.value);\n } else if (typeof data.value === \"boolean\") {\n selectedOptions.push(data.value.toString());\n } else {\n selectedOptions.push(data.value);\n }\n\n return selectedOptions;\n }\n\n /**\n */\n getOptionCount(code: string, options: Array<Object>): number | null {\n if (Array.isArray(options)) {\n const foundOption = options.find((option) => option.key === code);\n if (foundOption) {\n return foundOption.count;\n }\n }\n\n return null;\n }\n\n /**\n */\n addOptions(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n\n contributions.options.forEach((optionContributions) => {\n const optionCode = optionContributions.code || optionContributions.key;\n\n this.addOption(\n selectedValues,\n {\n ...optionContributions,\n count: this.getOptionCount(optionCode, data.options),\n },\n referenceDate\n );\n });\n\n return this;\n }\n\n /**\n * Create options based on data and dynamischema\n */\n addDynamicSchema(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n data.dynamicschema.forEach((optionDynamicschema) => {\n this.addOption(\n selectedValues,\n {\n ...optionDynamicschema,\n count: this.getOptionCount(optionDynamicschema.code, data.options),\n elementsContributions: contributions.children,\n },\n referenceDate\n );\n });\n\n return this;\n }\n\n /**\n */\n addBooleanOption(\n code: \"true\" | \"false\",\n defaultLabel: string,\n data: string | Array<string>,\n options: Array<Object> = []\n ) {\n const foundOption = options.find((option) => option.code === code);\n\n const label = foundOption ? foundOption.label : defaultLabel;\n\n this.addOption(data, {\n code,\n label,\n isBooleanType: true,\n hasAlternativeLabel: foundOption != null,\n });\n }\n\n /**\n */\n getDefaultValueForOption(value: any, contributions: Object): string {\n const layouthints = contributions.layouthint ?? [];\n\n const requireDefaultValue =\n layouthints.includes(\"checkbox\") || layouthints.includes(\"toggle\");\n\n return requireDefaultValue ? \"false\" : \"\";\n }\n\n /**\n * Create two static options for true and false,\n * there might be alternative labels configured for each option value\n */\n addBooleanOptions(\n value: any,\n contributions: Object\n ): ChoiceAttributeOptionCollection {\n const optionValue =\n value == null\n ? this.getDefaultValueForOption(value, contributions)\n : value.toString();\n\n this.addBooleanOption(\"true\", \"Yes\", [optionValue], contributions.options);\n this.addBooleanOption(\"false\", \"No\", [optionValue], contributions.options);\n\n return this;\n }\n\n /**\n */\n addOption(\n data: string | Array<string>,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const optionModel = new ChoiceAttributeOptionModel(\n Array.isArray(data) ? data : [data],\n contributions,\n referenceDate\n );\n\n this.add(optionModel);\n\n return this;\n }\n\n /**\n * Get all options that have selected property true\n */\n get selected(): Array<ChoiceAttributeOptionModel> {\n const selectedOptions = [];\n\n this.collection.forEach((option: ChoiceAttributeOptionModel) => {\n if (option.selected && option.selected === true) {\n selectedOptions.push(option);\n }\n\n if (option.children) {\n selectedOptions.push(...option.children.selected);\n }\n });\n\n return selectedOptions;\n }\n\n /**\n * Deselect all options\n */\n deselectAll() {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n newOption.selected = false;\n\n if (newOption.children) {\n newOption.children.deselectAll();\n }\n\n return newOption;\n });\n }\n\n /**\n * Select an option by it's code\n */\n select(optionCode: string) {\n this.toggle(optionCode, \"select\");\n }\n\n /**\n * Deselect an option by it's code\n */\n deselect(optionCode: string) {\n this.toggle(optionCode, \"deselect\");\n }\n\n /**\n * Toggle an option by it's code\n */\n toggle(optionCode: string, action: \"select\" | \"deselect\") {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n if (newOption.code === optionCode) {\n newOption.selected = action === \"select\";\n } else if (newOption.children) {\n newOption.children.toggle(optionCode, action);\n }\n\n return newOption;\n });\n }\n\n /**\n */\n setReferenceDate(date: ISO_DATE): Array<ChoiceAttributeOptionModel> {\n return this.collection.map((option) => {\n option.referenceDate = date;\n if (option.children) {\n option.children.referenceDate = date;\n }\n\n return option;\n });\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this.collection = this.setReferenceDate(date);\n }\n\n /**\n */\n addHeaders(headers: Array<Object>) {\n this._headers = headers.map((child) => new ListHeaderModel(child));\n }\n\n /**\n */\n get headers(): Array<ListHeaderModel> {\n if (this._headers) {\n return this._headers;\n }\n\n return [];\n }\n\n /**\n */\n mergeOptions(\n withOptions: ChoiceAttributeOptionCollection,\n addNotExistingOptions: boolean = false\n ) {\n if (addNotExistingOptions) {\n this.collection = [\n ...this.collection,\n ...withOptions.filter(\n (option) => !this.collection.some((opt) => opt.code === option.code)\n ),\n ];\n }\n\n this.collection.forEach((option) => {\n const foundOption = withOptions.find(\n (withOption) => withOption.code === option.code\n );\n if (foundOption) {\n option.mergeOption(foundOption);\n }\n });\n }\n\n /**\n */\n some(\n callbackfn: (\n value: ChoiceAttributeOptionModel,\n index: number,\n array: Array<ChoiceAttributeOptionModel>\n ) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some((option, optionIndex, collectionArray) => {\n const result = callbackfn(option, optionIndex, collectionArray);\n if (!result && option.children) {\n return option.children.some(callbackfn, thisArg);\n }\n return result;\n });\n }\n}\n\nexport default ChoiceAttributeOptionCollection;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChoiceAttributeOptionCollection.js","names":["ChoiceAttributeOptionCollection","ResourceCollection","sortOptions","_sortOptions","collection","forEach","option","children","create","data","contributions","referenceDate","DateUtil","now","type","addBooleanOptions","value","dynamicschema","addDynamicSchema","options","addOptions","addHeaders","all","a","b","label","localeCompare","getSelectedOptions","selectedOptions","Array","isArray","push","selected","key","toString","getOptionCount","code","foundOption","count","selectedValues","optionContributions","optionCode","addOption","optionDynamicschema","elementsContributions","addBooleanOption","defaultLabel","isBooleanType","hasAlternativeLabel","optionValue","optionModel","ChoiceAttributeOptionModel","add","deselectAll","newOption","clone","select","toggle","deselect","action","setReferenceDate","date","headers","_headers","child","ListHeaderModel","mergeOptions","withOptions","addNotExistingOptions","some","opt","withOption","mergeOption","callbackfn","thisArg","optionIndex","collectionArray","result"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ListHeaderModel from \"../list/ListHeaderModel\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\n/**\n */\nclass ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttributeOptionModel> {\n _headers: Array<ListHeaderModel> = [];\n _sortOptions: boolean = false;\n\n /**\n */\n set sortOptions(sortOptions: boolean) {\n this._sortOptions = sortOptions;\n\n this.collection.forEach((option) => {\n if (option.children) {\n option.children.sortOptions = sortOptions;\n }\n });\n }\n\n /**\n */\n get sortOptions(): boolean {\n return this._sortOptions;\n }\n\n /**\n */\n static create(\n data: Object = {},\n contributions: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const collection = new ChoiceAttributeOptionCollection();\n\n if (contributions.type === \"boolean\") {\n collection.addBooleanOptions(data.value, contributions);\n } else if (data.dynamicschema != null) {\n collection.addDynamicSchema(data, contributions, referenceDate);\n } else if (contributions.options != null) {\n collection.addOptions(data, contributions, referenceDate);\n }\n\n if (contributions.children != null) {\n collection.addHeaders(contributions.children);\n }\n\n return collection;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<ChoiceAttributeOptionModel> {\n return this.sortOptions\n ? this.collection.sort((a, b) => a.label.localeCompare(b.label))\n : this.collection;\n }\n\n /**\n */\n getSelectedOptions(data: Object): Array<string> {\n const selectedOptions = [];\n\n if (Array.isArray(data.options)) {\n selectedOptions.push(\n ...data.options\n .filter((option) => option.selected)\n .map((option) => option.key)\n );\n } else if (Array.isArray(data.value)) {\n selectedOptions.push(...data.value);\n } else if (typeof data.value === \"boolean\") {\n selectedOptions.push(data.value.toString());\n } else {\n selectedOptions.push(data.value);\n }\n\n return selectedOptions;\n }\n\n /**\n */\n getOptionCount(code: string, options: Array<Object>): number | null {\n if (Array.isArray(options)) {\n const foundOption = options.find((option) => option.key === code);\n if (foundOption) {\n return foundOption.count;\n }\n }\n\n return null;\n }\n\n /**\n */\n addOptions(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n\n contributions.options.forEach((optionContributions) => {\n const optionCode = optionContributions.code || optionContributions.key;\n\n this.addOption(\n selectedValues,\n {\n ...optionContributions,\n count: this.getOptionCount(optionCode, data.options),\n },\n referenceDate\n );\n });\n\n return this;\n }\n\n /**\n * Create options based on data and dynamischema\n */\n addDynamicSchema(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n data.dynamicschema.forEach((optionDynamicschema) => {\n this.addOption(\n selectedValues,\n {\n ...optionDynamicschema,\n count: this.getOptionCount(optionDynamicschema.code, data.options),\n elementsContributions: contributions.children,\n },\n referenceDate\n );\n });\n\n return this;\n }\n\n /**\n */\n addBooleanOption(\n code: \"true\" | \"false\",\n defaultLabel: string,\n data: string | Array<string>,\n options: Array<Object> = []\n ) {\n const foundOption = options.find((option) => option.code === code);\n\n const label = foundOption ? foundOption.label : defaultLabel;\n\n this.addOption(data, {\n code,\n label,\n isBooleanType: true,\n hasAlternativeLabel: foundOption != null,\n });\n }\n\n /**\n * Create two static options for true and false,\n * there might be alternative labels configured for each option value\n */\n addBooleanOptions(\n value: any,\n contributions: Object\n ): ChoiceAttributeOptionCollection {\n const optionValue = value == null ? [] : [value.toString()];\n\n this.addBooleanOption(\"true\", \"Yes\", optionValue, contributions.options);\n this.addBooleanOption(\"false\", \"No\", optionValue, contributions.options);\n\n return this;\n }\n\n /**\n */\n addOption(\n data: string | Array<string>,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const optionModel = new ChoiceAttributeOptionModel(\n Array.isArray(data) ? data : [data],\n contributions,\n referenceDate\n );\n\n this.add(optionModel);\n\n return this;\n }\n\n /**\n * Get all options that have selected property true\n */\n get selected(): Array<ChoiceAttributeOptionModel> {\n const selectedOptions = [];\n\n this.collection.forEach((option: ChoiceAttributeOptionModel) => {\n if (option.selected && option.selected === true) {\n selectedOptions.push(option);\n }\n\n if (option.children) {\n selectedOptions.push(...option.children.selected);\n }\n });\n\n return selectedOptions;\n }\n\n /**\n * Deselect all options\n */\n deselectAll() {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n newOption.selected = false;\n\n if (newOption.children) {\n newOption.children.deselectAll();\n }\n\n return newOption;\n });\n }\n\n /**\n * Select an option by it's code\n */\n select(optionCode: string) {\n this.toggle(optionCode, \"select\");\n }\n\n /**\n * Deselect an option by it's code\n */\n deselect(optionCode: string) {\n this.toggle(optionCode, \"deselect\");\n }\n\n /**\n * Toggle an option by it's code\n */\n toggle(optionCode: string, action: \"select\" | \"deselect\") {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n if (newOption.code === optionCode) {\n newOption.selected = action === \"select\";\n } else if (newOption.children) {\n newOption.children.toggle(optionCode, action);\n }\n\n return newOption;\n });\n }\n\n /**\n */\n setReferenceDate(date: ISO_DATE): Array<ChoiceAttributeOptionModel> {\n return this.collection.map((option) => {\n option.referenceDate = date;\n if (option.children) {\n option.children.referenceDate = date;\n }\n\n return option;\n });\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this.collection = this.setReferenceDate(date);\n }\n\n /**\n */\n addHeaders(headers: Array<Object>) {\n this._headers = headers.map((child) => new ListHeaderModel(child));\n }\n\n /**\n */\n get headers(): Array<ListHeaderModel> {\n if (this._headers) {\n return this._headers;\n }\n\n return [];\n }\n\n /**\n */\n mergeOptions(\n withOptions: ChoiceAttributeOptionCollection,\n addNotExistingOptions: boolean = false\n ) {\n if (addNotExistingOptions) {\n this.collection = [\n ...this.collection,\n ...withOptions.filter(\n (option) => !this.collection.some((opt) => opt.code === option.code)\n ),\n ];\n }\n\n this.collection.forEach((option) => {\n const foundOption = withOptions.find(\n (withOption) => withOption.code === option.code\n );\n if (foundOption) {\n option.mergeOption(foundOption);\n }\n });\n }\n\n /**\n */\n some(\n callbackfn: (\n value: ChoiceAttributeOptionModel,\n index: number,\n array: Array<ChoiceAttributeOptionModel>\n ) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some((option, optionIndex, collectionArray) => {\n const result = callbackfn(option, optionIndex, collectionArray);\n if (!result && option.children) {\n return option.children.some(callbackfn, thisArg);\n }\n return result;\n });\n }\n}\n\nexport default ChoiceAttributeOptionCollection;\n"],"mappings":"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"}
|
|
@@ -121,10 +121,22 @@ class UploadAttributeModel extends _StringAttributeModel.default {
|
|
|
121
121
|
fileSize: this.maxFileSize,
|
|
122
122
|
maxTotalFileSize: this.maxTotalFileSize,
|
|
123
123
|
isMaxTotal: this.maxTotalFileSize !== undefined
|
|
124
|
-
}
|
|
124
|
+
},
|
|
125
|
+
acceptedFiles: this.acceptedFiles
|
|
125
126
|
};
|
|
126
127
|
}
|
|
127
128
|
|
|
129
|
+
/**
|
|
130
|
+
* Array of accepted file extensions and mime types.
|
|
131
|
+
* Convenience method for accept attribute of file input html control
|
|
132
|
+
*/
|
|
133
|
+
get acceptedFiles() {
|
|
134
|
+
var _context3, _context4, _context5;
|
|
135
|
+
const mimeTypes = this.contributions.allowedMimeTypes ? (0, _filter.default)(_context3 = this.contributions.allowedMimeTypes).call(_context3, mimeType => mimeType !== "[...]") : [];
|
|
136
|
+
const extensions = this.contributions.allowedExtensions ? (0, _map.default)(_context4 = (0, _filter.default)(_context5 = this.contributions.allowedExtensions).call(_context5, extension => extension !== "[...]")).call(_context4, extension => `.${extension}`) : [];
|
|
137
|
+
return [...extensions, ...mimeTypes];
|
|
138
|
+
}
|
|
139
|
+
|
|
128
140
|
/**
|
|
129
141
|
* Add upload constraints
|
|
130
142
|
*/
|
|
@@ -164,10 +176,10 @@ class UploadAttributeModel extends _StringAttributeModel.default {
|
|
|
164
176
|
// when the input value is a string but not json,
|
|
165
177
|
// we assume that it is just a list of uploaded tokens and copy it as input value
|
|
166
178
|
try {
|
|
167
|
-
var
|
|
179
|
+
var _context6;
|
|
168
180
|
const files = JSON.parse(value);
|
|
169
181
|
this.files = files;
|
|
170
|
-
this.inputvalue = (0, _map.default)(
|
|
182
|
+
this.inputvalue = (0, _map.default)(_context6 = (0, _keys.default)(files)).call(_context6, fileName => files[fileName].token).join(",");
|
|
171
183
|
} catch (error) {
|
|
172
184
|
if (typeof value === "string") {
|
|
173
185
|
this.inputvalue = value;
|
|
@@ -108,6 +108,7 @@ export default class UploadAttributeModel extends StringAttributeModel {
|
|
|
108
108
|
get uploadConstraints(): {
|
|
109
109
|
fileTypes: FiletypeConstraintsType,
|
|
110
110
|
maxFileSize: FilesizeConstraintsType,
|
|
111
|
+
acceptedFiles: Array<string>,
|
|
111
112
|
} {
|
|
112
113
|
const mimeTypes = this.contributions.allowedMimeTypes
|
|
113
114
|
? this.contributions.allowedMimeTypes.filter(
|
|
@@ -132,9 +133,29 @@ export default class UploadAttributeModel extends StringAttributeModel {
|
|
|
132
133
|
maxTotalFileSize: this.maxTotalFileSize,
|
|
133
134
|
isMaxTotal: this.maxTotalFileSize !== undefined,
|
|
134
135
|
},
|
|
136
|
+
acceptedFiles: this.acceptedFiles,
|
|
135
137
|
};
|
|
136
138
|
}
|
|
137
139
|
|
|
140
|
+
/**
|
|
141
|
+
* Array of accepted file extensions and mime types.
|
|
142
|
+
* Convenience method for accept attribute of file input html control
|
|
143
|
+
*/
|
|
144
|
+
get acceptedFiles(): Array<string> {
|
|
145
|
+
const mimeTypes = this.contributions.allowedMimeTypes
|
|
146
|
+
? this.contributions.allowedMimeTypes.filter(
|
|
147
|
+
(mimeType) => mimeType !== "[...]"
|
|
148
|
+
)
|
|
149
|
+
: [];
|
|
150
|
+
const extensions = this.contributions.allowedExtensions
|
|
151
|
+
? this.contributions.allowedExtensions
|
|
152
|
+
.filter((extension) => extension !== "[...]")
|
|
153
|
+
.map((extension) => `.${extension}`)
|
|
154
|
+
: [];
|
|
155
|
+
|
|
156
|
+
return [...extensions, ...mimeTypes];
|
|
157
|
+
}
|
|
158
|
+
|
|
138
159
|
/**
|
|
139
160
|
* Add upload constraints
|
|
140
161
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadAttributeModel.js","names":["UNCHANGED","UploadAttributeModel","StringAttributeModel","isApplicableModel","contributions","type","multiple","getContribution","initialTotalFileSize","_initialTotalFileSize","maxTotalFileSize","_maxTotalFileSize","currentFilesize","uploadedFileSize","maxFileSize","uploadMaxFileSize","files","length","accumulatedFileSize","forEach","fileName","file","size","uploadConstraints","mimeTypes","allowedMimeTypes","mimeType","extensions","allowedExtensions","extension","fileTypes","fileSize","isMaxTotal","undefined","addConstraints","constraints","ConstraintCollection","add","FileExtensionConstraint","hasFilesizeConstraint","FileSizeConstraint","_files","update","value","JSON","parse","inputvalue","token","join","error","updateLastModification","readonlyvalue","initvalue","toString","getValue","hasValue","_value","mergeAttribute","oldAttribute","isValid"],"sources":["../../../src/models/attributes/UploadAttributeModel.js"],"sourcesContent":["// @flow\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport FileExtensionConstraint from \"./input-constraints/FileExtensionConstraint\";\nimport FileSizeConstraint from \"./input-constraints/FileSizeConstraint\";\n\nimport type {\n AttributeType,\n FilesType,\n FiletypeConstraintsType,\n FilesizeConstraintsType,\n} from \"../types\";\n\nconst UNCHANGED = \"UNCHANGED\";\n\n/**\n * Upload attribute\n */\nexport default class UploadAttributeModel extends StringAttributeModel {\n _files: FilesType;\n _initialTotalFileSize: number;\n _maxTotalFileSize: number;\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"binary\";\n }\n\n /**\n */\n get type(): string {\n return \"upload\";\n }\n\n /**\n * Retrieve single or multi upload\n */\n get multiple(): boolean {\n return this.getContribution(\"multiple\", false);\n }\n\n /**\n */\n get initialTotalFileSize(): number {\n return this._initialTotalFileSize || 0;\n }\n\n /**\n */\n set initialTotalFileSize(initialTotalFileSize: number) {\n this._initialTotalFileSize = initialTotalFileSize;\n }\n\n /**\n */\n get maxTotalFileSize(): number {\n return this._maxTotalFileSize;\n }\n\n /**\n */\n set maxTotalFileSize(maxTotalFileSize: number) {\n this._maxTotalFileSize = maxTotalFileSize;\n }\n\n /**\n */\n get currentFilesize(): number {\n return this.initialTotalFileSize + this.uploadedFileSize;\n }\n\n /**\n */\n get maxFileSize(): ?number {\n if (this.maxTotalFileSize) {\n const uploadMaxFileSize = this.maxTotalFileSize - this.currentFilesize;\n if (uploadMaxFileSize < 0) {\n return 0;\n }\n\n return uploadMaxFileSize;\n }\n\n return this.contributions.uploadMaxFileSize;\n }\n\n /**\n */\n get uploadedFileSize(): number {\n if (Object.keys(this.files).length === 0) {\n return 0;\n }\n\n let accumulatedFileSize = 0;\n Object.keys(this.files).forEach((fileName) => {\n const file = this.files[fileName];\n if (file.size) {\n accumulatedFileSize += file.size;\n }\n });\n return accumulatedFileSize;\n }\n\n /**\n * Upload constraints\n */\n get uploadConstraints(): {\n fileTypes: FiletypeConstraintsType,\n maxFileSize: FilesizeConstraintsType,\n } {\n const mimeTypes = this.contributions.allowedMimeTypes\n ? this.contributions.allowedMimeTypes.filter(\n (mimeType) => mimeType !== \"[...]\"\n )\n : [];\n const extensions = this.contributions.allowedExtensions\n ? this.contributions.allowedExtensions.filter(\n (extension) => extension !== \"[...]\"\n )\n : [];\n\n const fileTypes: FiletypeConstraintsType = extensions.map((extension) => ({\n extensions: [extension],\n mimeTypes,\n }));\n\n return {\n fileTypes,\n maxFileSize: {\n fileSize: this.maxFileSize,\n maxTotalFileSize: this.maxTotalFileSize,\n isMaxTotal: this.maxTotalFileSize !== undefined,\n },\n };\n }\n\n /**\n * Add upload constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.uploadConstraints.fileTypes.length > 0) {\n constraints.add(\n new FileExtensionConstraint(this.uploadConstraints.fileTypes)\n );\n }\n\n const hasFilesizeConstraint =\n this.uploadConstraints.maxFileSize.isMaxTotal ||\n this.uploadConstraints.maxFileSize.fileSize !== undefined;\n\n if (hasFilesizeConstraint) {\n constraints.add(\n new FileSizeConstraint(this.uploadConstraints.maxFileSize)\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get files(): FilesType {\n return this._files || {};\n }\n\n /**\n */\n set files(files: FilesType) {\n this._files = files;\n }\n\n /**\n * Update the attribute\n */\n update(value: string): UploadAttributeModel {\n if (!value) {\n return this;\n }\n\n // parse to json and handle uploaded file\n // when the input value is a string but not json,\n // we assume that it is just a list of uploaded tokens and copy it as input value\n try {\n const files = JSON.parse(value);\n this.files = files;\n\n this.inputvalue = Object.keys(files)\n .map((fileName) => files[fileName].token)\n .join(\",\");\n } catch (error) {\n if (typeof value === \"string\") {\n this.inputvalue = value;\n }\n }\n\n this.updateLastModification();\n\n return this;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.initvalue) {\n return this.initvalue.toString();\n }\n\n return \"\";\n }\n\n /**\n * Getting the value of the attribute, return unchanged when the uploaded file has not changed\n */\n getValue(): any {\n if (!this.hasValue()) {\n return null;\n }\n\n if (this.initvalue === this.inputvalue) {\n return UNCHANGED;\n }\n\n return this._value;\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n if (\n oldAttribute instanceof UploadAttributeModel &&\n oldAttribute.isValid &&\n oldAttribute.inputvalue !== null\n ) {\n this.update(JSON.stringify(oldAttribute.files));\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;AACA;AACA;AACA;AACA;AASA,MAAMA,SAAS,GAAG,WAAW;;AAE7B;AACA;AACA;AACe,MAAMC,oBAAoB,SAASC,6BAAoB,CAAC;EAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAKrE;AACF;EACE,OAAOC,iBAAiB,CAACC,aAAqB,EAAW;IACvD,OAAOA,aAAa,CAACC,IAAI,KAAK,QAAQ;EACxC;;EAEA;AACF;EACE,IAAIA,IAAI,GAAW;IACjB,OAAO,QAAQ;EACjB;;EAEA;AACF;AACA;EACE,IAAIC,QAAQ,GAAY;IACtB,OAAO,IAAI,CAACC,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC;EAChD;;EAEA;AACF;EACE,IAAIC,oBAAoB,GAAW;IACjC,OAAO,IAAI,CAACC,qBAAqB,IAAI,CAAC;EACxC;;EAEA;AACF;EACE,IAAID,oBAAoB,CAACA,oBAA4B,EAAE;IACrD,IAAI,CAACC,qBAAqB,GAAGD,oBAAoB;EACnD;;EAEA;AACF;EACE,IAAIE,gBAAgB,GAAW;IAC7B,OAAO,IAAI,CAACC,iBAAiB;EAC/B;;EAEA;AACF;EACE,IAAID,gBAAgB,CAACA,gBAAwB,EAAE;IAC7C,IAAI,CAACC,iBAAiB,GAAGD,gBAAgB;EAC3C;;EAEA;AACF;EACE,IAAIE,eAAe,GAAW;IAC5B,OAAO,IAAI,CAACJ,oBAAoB,GAAG,IAAI,CAACK,gBAAgB;EAC1D;;EAEA;AACF;EACE,IAAIC,WAAW,GAAY;IACzB,IAAI,IAAI,CAACJ,gBAAgB,EAAE;MACzB,MAAMK,iBAAiB,GAAG,IAAI,CAACL,gBAAgB,GAAG,IAAI,CAACE,eAAe;MACtE,IAAIG,iBAAiB,GAAG,CAAC,EAAE;QACzB,OAAO,CAAC;MACV;MAEA,OAAOA,iBAAiB;IAC1B;IAEA,OAAO,IAAI,CAACX,aAAa,CAACW,iBAAiB;EAC7C;;EAEA;AACF;EACE,IAAIF,gBAAgB,GAAW;IAC7B,IAAI,mBAAY,IAAI,CAACG,KAAK,CAAC,CAACC,MAAM,KAAK,CAAC,EAAE;MACxC,OAAO,CAAC;IACV;IAEA,IAAIC,mBAAmB,GAAG,CAAC;IAC3B,mBAAY,IAAI,CAACF,KAAK,CAAC,CAACG,OAAO,CAAEC,QAAQ,IAAK;MAC5C,MAAMC,IAAI,GAAG,IAAI,CAACL,KAAK,CAACI,QAAQ,CAAC;MACjC,IAAIC,IAAI,CAACC,IAAI,EAAE;QACbJ,mBAAmB,IAAIG,IAAI,CAACC,IAAI;MAClC;IACF,CAAC,CAAC;IACF,OAAOJ,mBAAmB;EAC5B;;EAEA;AACF;AACA;EACE,IAAIK,iBAAiB,GAGnB;IAAA;IACA,MAAMC,SAAS,GAAG,IAAI,CAACpB,aAAa,CAACqB,gBAAgB,GACjD,oCAAI,CAACrB,aAAa,CAACqB,gBAAgB,iBAChCC,QAAQ,IAAKA,QAAQ,KAAK,OAAO,CACnC,GACD,EAAE;IACN,MAAMC,UAAU,GAAG,IAAI,CAACvB,aAAa,CAACwB,iBAAiB,GACnD,qCAAI,CAACxB,aAAa,CAACwB,iBAAiB,kBACjCC,SAAS,IAAKA,SAAS,KAAK,OAAO,CACrC,GACD,EAAE;IAEN,MAAMC,SAAkC,GAAG,kBAAAH,UAAU,OAAVA,UAAU,EAAME,SAAS,KAAM;MACxEF,UAAU,EAAE,CAACE,SAAS,CAAC;MACvBL;IACF,CAAC,CAAC,CAAC;IAEH,OAAO;MACLM,SAAS;MACThB,WAAW,EAAE;QACXiB,QAAQ,EAAE,IAAI,CAACjB,WAAW;QAC1BJ,gBAAgB,EAAE,IAAI,CAACA,gBAAgB;QACvCsB,UAAU,EAAE,IAAI,CAACtB,gBAAgB,KAAKuB;MACxC;IACF,CAAC;EACH;;EAEA;AACF;AACA;EACEC,cAAc,GAAyB;IACrC,MAAMC,WAAW,GAAG,IAAIC,6BAAoB,EAAE;IAE9C,IAAI,IAAI,CAACb,iBAAiB,CAACO,SAAS,CAACb,MAAM,GAAG,CAAC,EAAE;MAC/CkB,WAAW,CAACE,GAAG,CACb,IAAIC,gCAAuB,CAAC,IAAI,CAACf,iBAAiB,CAACO,SAAS,CAAC,CAC9D;IACH;IAEA,MAAMS,qBAAqB,GACzB,IAAI,CAAChB,iBAAiB,CAACT,WAAW,CAACkB,UAAU,IAC7C,IAAI,CAACT,iBAAiB,CAACT,WAAW,CAACiB,QAAQ,KAAKE,SAAS;IAE3D,IAAIM,qBAAqB,EAAE;MACzBJ,WAAW,CAACE,GAAG,CACb,IAAIG,2BAAkB,CAAC,IAAI,CAACjB,iBAAiB,CAACT,WAAW,CAAC,CAC3D;IACH;IAEA,OAAOqB,WAAW;EACpB;;EAEA;AACF;EACE,IAAInB,KAAK,GAAc;IACrB,OAAO,IAAI,CAACyB,MAAM,IAAI,CAAC,CAAC;EAC1B;;EAEA;AACF;EACE,IAAIzB,KAAK,CAACA,KAAgB,EAAE;IAC1B,IAAI,CAACyB,MAAM,GAAGzB,KAAK;EACrB;;EAEA;AACF;AACA;EACE0B,MAAM,CAACC,KAAa,EAAwB;IAC1C,IAAI,CAACA,KAAK,EAAE;MACV,OAAO,IAAI;IACb;;IAEA;IACA;IACA;IACA,IAAI;MAAA;MACF,MAAM3B,KAAK,GAAG4B,IAAI,CAACC,KAAK,CAACF,KAAK,CAAC;MAC/B,IAAI,CAAC3B,KAAK,GAAGA,KAAK;MAElB,IAAI,CAAC8B,UAAU,GAAG,iDAAY9B,KAAK,CAAC,kBAC5BI,QAAQ,IAAKJ,KAAK,CAACI,QAAQ,CAAC,CAAC2B,KAAK,CAAC,CACxCC,IAAI,CAAC,GAAG,CAAC;IACd,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,IAAI,OAAON,KAAK,KAAK,QAAQ,EAAE;QAC7B,IAAI,CAACG,UAAU,GAAGH,KAAK;MACzB;IACF;IAEA,IAAI,CAACO,sBAAsB,EAAE;IAE7B,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIC,aAAa,GAAW;IAC1B,IAAI,IAAI,CAACC,SAAS,EAAE;MAClB,OAAO,IAAI,CAACA,SAAS,CAACC,QAAQ,EAAE;IAClC;IAEA,OAAO,EAAE;EACX;;EAEA;AACF;AACA;EACEC,QAAQ,GAAQ;IACd,IAAI,CAAC,IAAI,CAACC,QAAQ,EAAE,EAAE;MACpB,OAAO,IAAI;IACb;IAEA,IAAI,IAAI,CAACH,SAAS,KAAK,IAAI,CAACN,UAAU,EAAE;MACtC,OAAO9C,SAAS;IAClB;IAEA,OAAO,IAAI,CAACwD,MAAM;EACpB;;EAEA;AACF;EACEC,cAAc,CAACC,YAA2B,EAAE;IAC1C,IACEA,YAAY,YAAYzD,oBAAoB,IAC5CyD,YAAY,CAACC,OAAO,IACpBD,YAAY,CAACZ,UAAU,KAAK,IAAI,EAChC;MACA,IAAI,CAACJ,MAAM,CAAC,wBAAegB,YAAY,CAAC1C,KAAK,CAAC,CAAC;IACjD;EACF;AACF;AAAC"}
|
|
1
|
+
{"version":3,"file":"UploadAttributeModel.js","names":["UNCHANGED","UploadAttributeModel","StringAttributeModel","isApplicableModel","contributions","type","multiple","getContribution","initialTotalFileSize","_initialTotalFileSize","maxTotalFileSize","_maxTotalFileSize","currentFilesize","uploadedFileSize","maxFileSize","uploadMaxFileSize","files","length","accumulatedFileSize","forEach","fileName","file","size","uploadConstraints","mimeTypes","allowedMimeTypes","mimeType","extensions","allowedExtensions","extension","fileTypes","fileSize","isMaxTotal","undefined","acceptedFiles","addConstraints","constraints","ConstraintCollection","add","FileExtensionConstraint","hasFilesizeConstraint","FileSizeConstraint","_files","update","value","JSON","parse","inputvalue","token","join","error","updateLastModification","readonlyvalue","initvalue","toString","getValue","hasValue","_value","mergeAttribute","oldAttribute","isValid"],"sources":["../../../src/models/attributes/UploadAttributeModel.js"],"sourcesContent":["// @flow\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport FileExtensionConstraint from \"./input-constraints/FileExtensionConstraint\";\nimport FileSizeConstraint from \"./input-constraints/FileSizeConstraint\";\n\nimport type {\n AttributeType,\n FilesType,\n FiletypeConstraintsType,\n FilesizeConstraintsType,\n} from \"../types\";\n\nconst UNCHANGED = \"UNCHANGED\";\n\n/**\n * Upload attribute\n */\nexport default class UploadAttributeModel extends StringAttributeModel {\n _files: FilesType;\n _initialTotalFileSize: number;\n _maxTotalFileSize: number;\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"binary\";\n }\n\n /**\n */\n get type(): string {\n return \"upload\";\n }\n\n /**\n * Retrieve single or multi upload\n */\n get multiple(): boolean {\n return this.getContribution(\"multiple\", false);\n }\n\n /**\n */\n get initialTotalFileSize(): number {\n return this._initialTotalFileSize || 0;\n }\n\n /**\n */\n set initialTotalFileSize(initialTotalFileSize: number) {\n this._initialTotalFileSize = initialTotalFileSize;\n }\n\n /**\n */\n get maxTotalFileSize(): number {\n return this._maxTotalFileSize;\n }\n\n /**\n */\n set maxTotalFileSize(maxTotalFileSize: number) {\n this._maxTotalFileSize = maxTotalFileSize;\n }\n\n /**\n */\n get currentFilesize(): number {\n return this.initialTotalFileSize + this.uploadedFileSize;\n }\n\n /**\n */\n get maxFileSize(): ?number {\n if (this.maxTotalFileSize) {\n const uploadMaxFileSize = this.maxTotalFileSize - this.currentFilesize;\n if (uploadMaxFileSize < 0) {\n return 0;\n }\n\n return uploadMaxFileSize;\n }\n\n return this.contributions.uploadMaxFileSize;\n }\n\n /**\n */\n get uploadedFileSize(): number {\n if (Object.keys(this.files).length === 0) {\n return 0;\n }\n\n let accumulatedFileSize = 0;\n Object.keys(this.files).forEach((fileName) => {\n const file = this.files[fileName];\n if (file.size) {\n accumulatedFileSize += file.size;\n }\n });\n return accumulatedFileSize;\n }\n\n /**\n * Upload constraints\n */\n get uploadConstraints(): {\n fileTypes: FiletypeConstraintsType,\n maxFileSize: FilesizeConstraintsType,\n acceptedFiles: Array<string>,\n } {\n const mimeTypes = this.contributions.allowedMimeTypes\n ? this.contributions.allowedMimeTypes.filter(\n (mimeType) => mimeType !== \"[...]\"\n )\n : [];\n const extensions = this.contributions.allowedExtensions\n ? this.contributions.allowedExtensions.filter(\n (extension) => extension !== \"[...]\"\n )\n : [];\n\n const fileTypes: FiletypeConstraintsType = extensions.map((extension) => ({\n extensions: [extension],\n mimeTypes,\n }));\n\n return {\n fileTypes,\n maxFileSize: {\n fileSize: this.maxFileSize,\n maxTotalFileSize: this.maxTotalFileSize,\n isMaxTotal: this.maxTotalFileSize !== undefined,\n },\n acceptedFiles: this.acceptedFiles,\n };\n }\n\n /**\n * Array of accepted file extensions and mime types.\n * Convenience method for accept attribute of file input html control\n */\n get acceptedFiles(): Array<string> {\n const mimeTypes = this.contributions.allowedMimeTypes\n ? this.contributions.allowedMimeTypes.filter(\n (mimeType) => mimeType !== \"[...]\"\n )\n : [];\n const extensions = this.contributions.allowedExtensions\n ? this.contributions.allowedExtensions\n .filter((extension) => extension !== \"[...]\")\n .map((extension) => `.${extension}`)\n : [];\n\n return [...extensions, ...mimeTypes];\n }\n\n /**\n * Add upload constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.uploadConstraints.fileTypes.length > 0) {\n constraints.add(\n new FileExtensionConstraint(this.uploadConstraints.fileTypes)\n );\n }\n\n const hasFilesizeConstraint =\n this.uploadConstraints.maxFileSize.isMaxTotal ||\n this.uploadConstraints.maxFileSize.fileSize !== undefined;\n\n if (hasFilesizeConstraint) {\n constraints.add(\n new FileSizeConstraint(this.uploadConstraints.maxFileSize)\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get files(): FilesType {\n return this._files || {};\n }\n\n /**\n */\n set files(files: FilesType) {\n this._files = files;\n }\n\n /**\n * Update the attribute\n */\n update(value: string): UploadAttributeModel {\n if (!value) {\n return this;\n }\n\n // parse to json and handle uploaded file\n // when the input value is a string but not json,\n // we assume that it is just a list of uploaded tokens and copy it as input value\n try {\n const files = JSON.parse(value);\n this.files = files;\n\n this.inputvalue = Object.keys(files)\n .map((fileName) => files[fileName].token)\n .join(\",\");\n } catch (error) {\n if (typeof value === \"string\") {\n this.inputvalue = value;\n }\n }\n\n this.updateLastModification();\n\n return this;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.initvalue) {\n return this.initvalue.toString();\n }\n\n return \"\";\n }\n\n /**\n * Getting the value of the attribute, return unchanged when the uploaded file has not changed\n */\n getValue(): any {\n if (!this.hasValue()) {\n return null;\n }\n\n if (this.initvalue === this.inputvalue) {\n return UNCHANGED;\n }\n\n return this._value;\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n if (\n oldAttribute instanceof UploadAttributeModel &&\n oldAttribute.isValid &&\n oldAttribute.inputvalue !== null\n ) {\n this.update(JSON.stringify(oldAttribute.files));\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -65,6 +65,17 @@ class ErrorModel {
|
|
|
65
65
|
get isMandatoryConstraint() {
|
|
66
66
|
return this.id === "Constraint.Mandatory";
|
|
67
67
|
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Returns a message object from the error
|
|
71
|
+
*/
|
|
72
|
+
getMessage() {
|
|
73
|
+
return {
|
|
74
|
+
id: this.id,
|
|
75
|
+
defaultMessage: this.defaultMessage ?? "",
|
|
76
|
+
parameters: this.parameters ?? {}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
68
79
|
}
|
|
69
80
|
var _default = ErrorModel;
|
|
70
81
|
exports.default = _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import type { MessageParameters } from "../../i18n/types";
|
|
2
|
+
import type { MessageObject, MessageParameters } from "../../i18n/types";
|
|
3
3
|
import LayoutHintCollection from "../layouthint/LayoutHintCollection";
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -67,6 +67,17 @@ class ErrorModel {
|
|
|
67
67
|
get isMandatoryConstraint(): boolean {
|
|
68
68
|
return this.id === "Constraint.Mandatory";
|
|
69
69
|
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Returns a message object from the error
|
|
73
|
+
*/
|
|
74
|
+
getMessage(): MessageObject {
|
|
75
|
+
return {
|
|
76
|
+
id: this.id,
|
|
77
|
+
defaultMessage: this.defaultMessage ?? "",
|
|
78
|
+
parameters: this.parameters ?? {},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
70
81
|
}
|
|
71
82
|
|
|
72
83
|
export default ErrorModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorModel.js","names":["ErrorModel","constructor","id","defaultMessage","parameters","isClientConstraint","layouthint","LayoutHintCollection","_id","_parameters","_defaultMessage","_isClientConstraint","_layouthint","Array","isArray","isMandatoryConstraint"],"sources":["../../../src/models/error/ErrorModel.js"],"sourcesContent":["// @flow\nimport type { MessageParameters } from \"../../i18n/types\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\n\n/**\n * Wrapper around an error message / object\n */\nclass ErrorModel {\n _id: string;\n _defaultMessage: ?string;\n _parameters: ?MessageParameters;\n _isClientConstraint: boolean;\n _layouthint: LayoutHintCollection;\n\n /**\n * Contruct\n */\n constructor(\n id: string,\n defaultMessage: ?string,\n parameters: ?MessageParameters,\n isClientConstraint: boolean = false,\n layouthint: LayoutHintCollection = new LayoutHintCollection()\n ) {\n this._id = id;\n this._parameters = parameters;\n this._defaultMessage = defaultMessage;\n this._isClientConstraint = isClientConstraint;\n this._layouthint = Array.isArray(layouthint)\n ? new LayoutHintCollection(layouthint)\n : layouthint;\n }\n\n /**\n * Get id of error\n */\n get id(): string {\n return this._id;\n }\n\n /**\n */\n get defaultMessage(): ?string {\n return this._defaultMessage;\n }\n\n /**\n */\n get parameters(): ?MessageParameters {\n return this._parameters;\n }\n\n /**\n */\n get isClientConstraint(): boolean {\n return this._isClientConstraint || false;\n }\n\n /**\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return this.id === \"Constraint.Mandatory\";\n }\n}\n\nexport default ErrorModel;\n"],"mappings":";;;;;;;;AAEA;AAEA;AACA;AACA;AACA,MAAMA,UAAU,CAAC;EAOf;AACF;AACA;EACEC,WAAW,CACTC,EAAU,EACVC,cAAuB,EACvBC,UAA8B,EAG9B;IAAA,IAFAC,kBAA2B,uEAAG,KAAK;IAAA,IACnCC,UAAgC,uEAAG,IAAIC,6BAAoB,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA;IAE7D,IAAI,CAACC,GAAG,GAAGN,EAAE;IACb,IAAI,CAACO,WAAW,GAAGL,UAAU;IAC7B,IAAI,CAACM,eAAe,GAAGP,cAAc;IACrC,IAAI,CAACQ,mBAAmB,GAAGN,kBAAkB;IAC7C,IAAI,CAACO,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACR,UAAU,CAAC,GACxC,IAAIC,6BAAoB,CAACD,UAAU,CAAC,GACpCA,UAAU;EAChB;;EAEA;AACF;AACA;EACE,IAAIJ,EAAE,GAAW;IACf,OAAO,IAAI,CAACM,GAAG;EACjB;;EAEA;AACF;EACE,IAAIL,cAAc,GAAY;IAC5B,OAAO,IAAI,CAACO,eAAe;EAC7B;;EAEA;AACF;EACE,IAAIN,UAAU,GAAuB;IACnC,OAAO,IAAI,CAACK,WAAW;EACzB;;EAEA;AACF;EACE,IAAIJ,kBAAkB,GAAY;IAChC,OAAO,IAAI,CAACM,mBAAmB,IAAI,KAAK;EAC1C;;EAEA;AACF;EACE,IAAIL,UAAU,GAAyB;IACrC,OAAO,IAAI,CAACM,WAAW;EACzB;;EAEA;AACF;EACE,IAAIG,qBAAqB,GAAY;IACnC,OAAO,IAAI,CAACb,EAAE,KAAK,sBAAsB;EAC3C;AACF;AAAC,
|
|
1
|
+
{"version":3,"file":"ErrorModel.js","names":["ErrorModel","constructor","id","defaultMessage","parameters","isClientConstraint","layouthint","LayoutHintCollection","_id","_parameters","_defaultMessage","_isClientConstraint","_layouthint","Array","isArray","isMandatoryConstraint","getMessage"],"sources":["../../../src/models/error/ErrorModel.js"],"sourcesContent":["// @flow\nimport type { MessageObject, MessageParameters } from \"../../i18n/types\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\n\n/**\n * Wrapper around an error message / object\n */\nclass ErrorModel {\n _id: string;\n _defaultMessage: ?string;\n _parameters: ?MessageParameters;\n _isClientConstraint: boolean;\n _layouthint: LayoutHintCollection;\n\n /**\n * Contruct\n */\n constructor(\n id: string,\n defaultMessage: ?string,\n parameters: ?MessageParameters,\n isClientConstraint: boolean = false,\n layouthint: LayoutHintCollection = new LayoutHintCollection()\n ) {\n this._id = id;\n this._parameters = parameters;\n this._defaultMessage = defaultMessage;\n this._isClientConstraint = isClientConstraint;\n this._layouthint = Array.isArray(layouthint)\n ? new LayoutHintCollection(layouthint)\n : layouthint;\n }\n\n /**\n * Get id of error\n */\n get id(): string {\n return this._id;\n }\n\n /**\n */\n get defaultMessage(): ?string {\n return this._defaultMessage;\n }\n\n /**\n */\n get parameters(): ?MessageParameters {\n return this._parameters;\n }\n\n /**\n */\n get isClientConstraint(): boolean {\n return this._isClientConstraint || false;\n }\n\n /**\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return this.id === \"Constraint.Mandatory\";\n }\n\n /**\n * Returns a message object from the error\n */\n getMessage(): MessageObject {\n return {\n id: this.id,\n defaultMessage: this.defaultMessage ?? \"\",\n parameters: this.parameters ?? {},\n };\n }\n}\n\nexport default ErrorModel;\n"],"mappings":";;;;;;;;AAEA;AAEA;AACA;AACA;AACA,MAAMA,UAAU,CAAC;EAOf;AACF;AACA;EACEC,WAAW,CACTC,EAAU,EACVC,cAAuB,EACvBC,UAA8B,EAG9B;IAAA,IAFAC,kBAA2B,uEAAG,KAAK;IAAA,IACnCC,UAAgC,uEAAG,IAAIC,6BAAoB,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA;IAE7D,IAAI,CAACC,GAAG,GAAGN,EAAE;IACb,IAAI,CAACO,WAAW,GAAGL,UAAU;IAC7B,IAAI,CAACM,eAAe,GAAGP,cAAc;IACrC,IAAI,CAACQ,mBAAmB,GAAGN,kBAAkB;IAC7C,IAAI,CAACO,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACR,UAAU,CAAC,GACxC,IAAIC,6BAAoB,CAACD,UAAU,CAAC,GACpCA,UAAU;EAChB;;EAEA;AACF;AACA;EACE,IAAIJ,EAAE,GAAW;IACf,OAAO,IAAI,CAACM,GAAG;EACjB;;EAEA;AACF;EACE,IAAIL,cAAc,GAAY;IAC5B,OAAO,IAAI,CAACO,eAAe;EAC7B;;EAEA;AACF;EACE,IAAIN,UAAU,GAAuB;IACnC,OAAO,IAAI,CAACK,WAAW;EACzB;;EAEA;AACF;EACE,IAAIJ,kBAAkB,GAAY;IAChC,OAAO,IAAI,CAACM,mBAAmB,IAAI,KAAK;EAC1C;;EAEA;AACF;EACE,IAAIL,UAAU,GAAyB;IACrC,OAAO,IAAI,CAACM,WAAW;EACzB;;EAEA;AACF;EACE,IAAIG,qBAAqB,GAAY;IACnC,OAAO,IAAI,CAACb,EAAE,KAAK,sBAAsB;EAC3C;;EAEA;AACF;AACA;EACEc,UAAU,GAAkB;IAC1B,OAAO;MACLd,EAAE,EAAE,IAAI,CAACA,EAAE;MACXC,cAAc,EAAE,IAAI,CAACA,cAAc,IAAI,EAAE;MACzCC,UAAU,EAAE,IAAI,CAACA,UAAU,IAAI,CAAC;IAClC,CAAC;EACH;AACF;AAAC,eAEcJ,UAAU;AAAA"}
|
package/lib/models/href/Href.js
CHANGED
|
@@ -11,7 +11,7 @@ var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js
|
|
|
11
11
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
12
12
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
13
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
14
|
-
var
|
|
14
|
+
var _constants = require("../../constants");
|
|
15
15
|
var _Parameter = _interopRequireDefault(require("../parameter/Parameter"));
|
|
16
16
|
var _exceptions = require("../../exceptions");
|
|
17
17
|
/**
|
|
@@ -26,7 +26,7 @@ class Href {
|
|
|
26
26
|
(0, _defineProperty2.default)(this, "_hash", "");
|
|
27
27
|
(0, _defineProperty2.default)(this, "_parameters", []);
|
|
28
28
|
(0, _defineProperty2.default)(this, "_resourcetype", "");
|
|
29
|
-
(0, _defineProperty2.default)(this, "_method",
|
|
29
|
+
(0, _defineProperty2.default)(this, "_method", _constants.HTTP_METHODS.GET);
|
|
30
30
|
(0, _defineProperty2.default)(this, "_state", null);
|
|
31
31
|
this.resourcetype = resourcetype ?? "";
|
|
32
32
|
if (href instanceof Href) {
|
|
@@ -193,7 +193,7 @@ class Href {
|
|
|
193
193
|
* Set request method
|
|
194
194
|
*/
|
|
195
195
|
set method(method) {
|
|
196
|
-
this._method = method ||
|
|
196
|
+
this._method = method || _constants.HTTP_METHODS.GET;
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
/**
|
|
@@ -306,13 +306,13 @@ class Href {
|
|
|
306
306
|
}
|
|
307
307
|
|
|
308
308
|
/**
|
|
309
|
-
* Retrieve the path combined with the
|
|
309
|
+
* Retrieve the path combined with the base path (context-path) of the application, e.g. /BeInformed
|
|
310
310
|
*/
|
|
311
311
|
get absolutepath() {
|
|
312
312
|
if (this.isExternal) {
|
|
313
313
|
return this.path;
|
|
314
314
|
}
|
|
315
|
-
return
|
|
315
|
+
return (0, _constants.getBasePath)() + this.path;
|
|
316
316
|
}
|
|
317
317
|
|
|
318
318
|
/**
|
|
@@ -382,7 +382,7 @@ class Href {
|
|
|
382
382
|
*/
|
|
383
383
|
get isContent() {
|
|
384
384
|
var _context10;
|
|
385
|
-
return (0, _startsWith.default)(_context10 = this.absolutepath).call(_context10,
|
|
385
|
+
return (0, _startsWith.default)(_context10 = this.absolutepath).call(_context10, `${(0, _constants.getBasePath)()}${_constants.CONTENT_PATH}`);
|
|
386
386
|
}
|
|
387
387
|
|
|
388
388
|
/**
|