@beinformed/ui 1.63.10 → 1.63.12
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 +15 -0
- package/esm/hooks/__tests__/useAuthentication.spec.js.flow +32 -2
- package/esm/hooks/useAuthentication.js +2 -1
- package/esm/hooks/useAuthentication.js.flow +2 -1
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.flow +1 -3
- package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
- package/esm/models/list/ListDetailModel.js +2 -2
- package/esm/models/list/ListDetailModel.js.flow +9 -7
- package/esm/models/list/ListDetailModel.js.map +1 -1
- package/esm/utils/helpers/createHash.js +1 -1
- package/esm/utils/helpers/createHash.js.flow +1 -1
- package/esm/utils/helpers/createHash.js.map +1 -1
- package/esm/utils/helpers/createUUID.js.flow +1 -1
- package/esm/utils/helpers/createUUID.js.map +1 -1
- package/lib/hooks/useAuthentication.js +2 -1
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
- package/lib/models/list/ListDetailModel.js +2 -2
- package/lib/models/list/ListDetailModel.js.map +1 -1
- package/lib/utils/helpers/createHash.js +4 -5
- package/lib/utils/helpers/createHash.js.map +1 -1
- package/lib/utils/helpers/createUUID.js.map +1 -1
- package/package.json +9 -8
- package/src/hooks/__tests__/useAuthentication.spec.js +32 -2
- package/src/hooks/useAuthentication.js +2 -1
- package/src/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +1 -3
- package/src/models/list/ListDetailModel.js +9 -7
- package/src/utils/helpers/createHash.js +1 -1
- package/src/utils/helpers/createUUID.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [1.63.12](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.63.11...v1.63.12) (2025-12-08)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **authentication:** update `useApplication` usage ([4e210b5](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/4e210b564386f3b261175e0a0ffbfec62b6d7f0b))
|
|
11
|
+
|
|
12
|
+
## [1.63.11](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.63.9...v1.63.11) (2025-11-27)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **list-detail:** handle given answers without attributes ([36e4ad1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/36e4ad1932dc422ce7d03a9422a10c67e95e9a62))
|
|
18
|
+
* **logout:** use absolute post logout redirect url ([4ddfee8](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/4ddfee88748ea97944c74b4d006638e71db89af1))
|
|
19
|
+
|
|
5
20
|
## [1.63.10](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.63.9...v1.63.10) (2025-11-25)
|
|
6
21
|
|
|
7
22
|
|
|
@@ -6,16 +6,27 @@ import xhrMock from "xhr-mock";
|
|
|
6
6
|
|
|
7
7
|
import { useLogin, useLogout } from "../useAuthentication";
|
|
8
8
|
import Href from "../../models/href/Href";
|
|
9
|
+
import { useLocation } from "react-router";
|
|
9
10
|
|
|
10
11
|
const middlewares = [thunk];
|
|
11
12
|
const mockStore = configureMockStore(middlewares);
|
|
12
13
|
|
|
14
|
+
jest.mock("react-router", () => ({
|
|
15
|
+
...jest.requireActual("react-router"), // Keep other methods from react-router as is
|
|
16
|
+
useLocation: jest.fn(), // Mock useLocation
|
|
17
|
+
}));
|
|
18
|
+
|
|
13
19
|
const JSON_TYPE = "application/json";
|
|
14
20
|
|
|
15
21
|
describe("authentication hooks", () => {
|
|
16
22
|
// replace the real XHR object with the mock XHR object before each test
|
|
17
23
|
// eslint-disable-next-line jest/no-hooks
|
|
18
|
-
beforeEach(() =>
|
|
24
|
+
beforeEach(() => {
|
|
25
|
+
useLocation.mockReturnValue({
|
|
26
|
+
state: null,
|
|
27
|
+
});
|
|
28
|
+
xhrMock.setup();
|
|
29
|
+
});
|
|
19
30
|
|
|
20
31
|
// put the real XHR object back and clear the mocks after each test
|
|
21
32
|
// eslint-disable-next-line jest/no-hooks
|
|
@@ -25,6 +36,11 @@ describe("authentication hooks", () => {
|
|
|
25
36
|
expect.assertions(10);
|
|
26
37
|
|
|
27
38
|
xhrMock
|
|
39
|
+
.get(`/BeInformed`, (req, res) => {
|
|
40
|
+
expect(req.header("accept")).toBe(JSON_TYPE);
|
|
41
|
+
expect(req.header("Content-Type")).toBe(JSON_TYPE);
|
|
42
|
+
return res.status(200).body({ data: "ok" });
|
|
43
|
+
})
|
|
28
44
|
.get("/BeInformed/login", (req, res) => {
|
|
29
45
|
expect(req.header("accept")).toBe(JSON_TYPE);
|
|
30
46
|
expect(req.header("Content-Type")).toBe(
|
|
@@ -42,7 +58,13 @@ describe("authentication hooks", () => {
|
|
|
42
58
|
return res.status(200).body({ data: "ok" });
|
|
43
59
|
});
|
|
44
60
|
|
|
45
|
-
const store = mockStore({
|
|
61
|
+
const store = mockStore({
|
|
62
|
+
auth: {},
|
|
63
|
+
modularui: {},
|
|
64
|
+
router: { location: {} },
|
|
65
|
+
i18n: { locale: "en" },
|
|
66
|
+
});
|
|
67
|
+
|
|
46
68
|
/**
|
|
47
69
|
*/
|
|
48
70
|
const wrapper = ({ children }) => (
|
|
@@ -61,6 +83,14 @@ describe("authentication hooks", () => {
|
|
|
61
83
|
|
|
62
84
|
expect(store.getActions()).toStrictEqual([
|
|
63
85
|
{ type: "START_PROGRESS" },
|
|
86
|
+
expect.objectContaining({
|
|
87
|
+
type: "MODULARUI/FETCH",
|
|
88
|
+
payload: expect.objectContaining({
|
|
89
|
+
key: "application(/)(en)",
|
|
90
|
+
}),
|
|
91
|
+
}),
|
|
92
|
+
{ type: "START_PROGRESS" },
|
|
93
|
+
{ type: "FINISH_PROGRESS" },
|
|
64
94
|
{ type: "START_PROGRESS" },
|
|
65
95
|
expect.objectContaining({
|
|
66
96
|
type: "MODULARUI/FETCH",
|
|
@@ -5,12 +5,13 @@ import Cache from "../utils/browser/Cache";
|
|
|
5
5
|
import { DEFAULT_AUTHENTICATION_TYPE, getBasePath, getBasePathServer, INTERNAL_LOGIN_TYPE } from "../constants";
|
|
6
6
|
import { IllegalStateException } from "../exceptions";
|
|
7
7
|
import { Authenticate } from "../modularui";
|
|
8
|
+
import { useApplication } from "./useModularUIModel";
|
|
8
9
|
/**
|
|
9
10
|
*/
|
|
10
11
|
export const useLogin = () => {
|
|
11
12
|
Cache.setItem("isRedirectLogin", false);
|
|
12
13
|
const dispatch = useDispatch();
|
|
13
|
-
const application =
|
|
14
|
+
const application = useApplication();
|
|
14
15
|
const auth = useSelector(state => state.auth);
|
|
15
16
|
const isAuthenticated = application?.isLoggedIn ?? false;
|
|
16
17
|
return {
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
} from "../constants";
|
|
14
14
|
import { IllegalStateException } from "../exceptions";
|
|
15
15
|
import { Authenticate } from "../modularui";
|
|
16
|
+
import { useApplication } from "./useModularUIModel";
|
|
16
17
|
|
|
17
18
|
import type { ResetAuthErrorsAction } from "../redux/types";
|
|
18
19
|
import type { AuthenticationType } from "../models/types";
|
|
@@ -39,7 +40,7 @@ export const useLogin = (): LoginHook => {
|
|
|
39
40
|
|
|
40
41
|
const dispatch = useDispatch();
|
|
41
42
|
|
|
42
|
-
const application =
|
|
43
|
+
const application = useApplication();
|
|
43
44
|
const auth = useSelector((state) => state.auth);
|
|
44
45
|
|
|
45
46
|
const isAuthenticated = application?.isLoggedIn ?? false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthentication.js","names":["useSelector","useDispatch","getApplication","login","logout","resetAuthErrors","Cache","DEFAULT_AUTHENTICATION_TYPE","getBasePath","getBasePathServer","INTERNAL_LOGIN_TYPE","IllegalStateException","Authenticate","useLogin","setItem","dispatch","application","auth","state","isAuthenticated","isLoggedIn","authenticationTypes","errorMessage","error","resetErrors","username","password","redirectLogin","authenticationType","getItem","authentication","redirectUri","window","location","assign","useLogout","BASE_PATH","authenticate","type","PAC4J_INDIRECT","redirectToLogout","origin","url","getLogoutUrl","logoutUrl"],"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 getBasePathServer,\n INTERNAL_LOGIN_TYPE,\n} from \"../constants\";\nimport { IllegalStateException } from \"../exceptions\";\nimport { Authenticate } from \"../modularui\";\n\nimport type { ResetAuthErrorsAction } from \"../redux/types\";\nimport type { AuthenticationType } from \"../models/types\";\n\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 logoutUrl: string,\n};\n\n/**\n */\nexport const useLogin = (): LoginHook => {\n Cache.setItem(\"isRedirectLogin\", false);\n\n const dispatch = useDispatch();\n\n const application =
|
|
1
|
+
{"version":3,"file":"useAuthentication.js","names":["useSelector","useDispatch","getApplication","login","logout","resetAuthErrors","Cache","DEFAULT_AUTHENTICATION_TYPE","getBasePath","getBasePathServer","INTERNAL_LOGIN_TYPE","IllegalStateException","Authenticate","useApplication","useLogin","setItem","dispatch","application","auth","state","isAuthenticated","isLoggedIn","authenticationTypes","errorMessage","error","resetErrors","username","password","redirectLogin","authenticationType","getItem","authentication","redirectUri","window","location","assign","useLogout","BASE_PATH","authenticate","type","PAC4J_INDIRECT","redirectToLogout","origin","url","getLogoutUrl","logoutUrl"],"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 getBasePathServer,\n INTERNAL_LOGIN_TYPE,\n} from \"../constants\";\nimport { IllegalStateException } from \"../exceptions\";\nimport { Authenticate } from \"../modularui\";\nimport { useApplication } from \"./useModularUIModel\";\n\nimport type { ResetAuthErrorsAction } from \"../redux/types\";\nimport type { AuthenticationType } from \"../models/types\";\n\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 logoutUrl: string,\n};\n\n/**\n */\nexport const useLogin = (): LoginHook => {\n Cache.setItem(\"isRedirectLogin\", false);\n\n const dispatch = useDispatch();\n\n const application = useApplication();\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 `${getBasePathServer()}${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 BASE_PATH = getBasePath();\n\n const authenticate = new Authenticate();\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n logout: () => {\n const type = authenticate.authenticationType;\n if (type === INTERNAL_LOGIN_TYPE.PAC4J_INDIRECT) {\n authenticate.redirectToLogout();\n } else if (Cache.getItem(\"isRedirectLogin\")) {\n const origin = window.location.origin;\n const url = `${authenticate.getLogoutUrl()}?url=${origin}${BASE_PATH}`;\n Cache.setItem(\"isRedirectLogin\", false);\n window.location.assign(url);\n } else {\n return dispatch(logout());\n }\n },\n logoutUrl: authenticate.getLogoutUrl(),\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,9 +3,7 @@ import type { IConstraintModel } from "../../types";
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
*/
|
|
6
|
-
class PasswordThreeConsecutiveCharactersNotAllowedConstraint
|
|
7
|
-
implements IConstraintModel
|
|
8
|
-
{
|
|
6
|
+
class PasswordThreeConsecutiveCharactersNotAllowedConstraint implements IConstraintModel {
|
|
9
7
|
_maxSequence: number;
|
|
10
8
|
|
|
11
9
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordThreeConsecutiveCharactersNotAllowedConstraint.js","names":["PasswordThreeConsecutiveCharactersNotAllowedConstraint","constructor","maxSequence","_defineProperty","_maxSequence","id","hasValidation","defaultMessage","parameters","hasNoSequenceOfIdenticalCharacters","value","_context","_filterInstanceProperty","split","call","char","i","indexOf","some","sequence","_repeatInstanceProperty","_includesInstanceProperty","validate","isMandatoryConstraint"],"sources":["../../../../src/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js"],"sourcesContent":["// @flow\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass PasswordThreeConsecutiveCharactersNotAllowedConstraint
|
|
1
|
+
{"version":3,"file":"PasswordThreeConsecutiveCharactersNotAllowedConstraint.js","names":["PasswordThreeConsecutiveCharactersNotAllowedConstraint","constructor","maxSequence","_defineProperty","_maxSequence","id","hasValidation","defaultMessage","parameters","hasNoSequenceOfIdenticalCharacters","value","_context","_filterInstanceProperty","split","call","char","i","indexOf","some","sequence","_repeatInstanceProperty","_includesInstanceProperty","validate","isMandatoryConstraint"],"sources":["../../../../src/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js"],"sourcesContent":["// @flow\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass PasswordThreeConsecutiveCharactersNotAllowedConstraint implements IConstraintModel {\n _maxSequence: number;\n\n /**\n */\n constructor(maxSequence: number = 2) {\n this._maxSequence = maxSequence;\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.Password.ThreeConsecutiveCharactersNotAllowed\";\n }\n\n /**\n */\n get maxSequence(): number {\n return this._maxSequence;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Must not contain any character more than twice consecutively\";\n }\n\n /**\n */\n get parameters(): { \"max-sequence\": number } {\n return {\n \"max-sequence\": this.maxSequence,\n };\n }\n\n /**\n */\n hasNoSequenceOfIdenticalCharacters(value: string): boolean {\n return !value\n .split(\"\")\n .filter((char, i) => value.indexOf(char) === i)\n .some((char) => {\n const sequence = char.repeat(this.maxSequence + 1);\n return value.includes(sequence);\n });\n }\n\n /**\n */\n validate(value: string): boolean {\n return this.hasNoSequenceOfIdenticalCharacters(value);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default PasswordThreeConsecutiveCharactersNotAllowedConstraint;\n"],"mappings":";;;;AAGA;AACA;AACA,MAAMA,sDAAsD,CAA6B;EAGvF;AACF;EACEC,WAAWA,CAACC,WAAmB,GAAG,CAAC,EAAE;IAAAC,eAAA;IACnC,IAAI,CAACC,YAAY,GAAGF,WAAW;EACjC;;EAEA;AACF;EACE,IAAIG,EAAEA,CAAA,EAAW;IACf,OAAO,0DAA0D;EACnE;;EAEA;AACF;EACE,IAAIH,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACE,YAAY;EAC1B;;EAEA;AACF;EACEE,aAAaA,CAAA,EAAY;IACvB,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIC,cAAcA,CAAA,EAAW;IAC3B,OAAO,8DAA8D;EACvE;;EAEA;AACF;EACE,IAAIC,UAAUA,CAAA,EAA+B;IAC3C,OAAO;MACL,cAAc,EAAE,IAAI,CAACN;IACvB,CAAC;EACH;;EAEA;AACF;EACEO,kCAAkCA,CAACC,KAAa,EAAW;IAAA,IAAAC,QAAA;IACzD,OAAO,CAACC,uBAAA,CAAAD,QAAA,GAAAD,KAAK,CACVG,KAAK,CAAC,EAAE,CAAC,EAAAC,IAAA,CAAAH,QAAA,EACF,CAACI,IAAI,EAAEC,CAAC,KAAKN,KAAK,CAACO,OAAO,CAACF,IAAI,CAAC,KAAKC,CAAC,CAAC,CAC9CE,IAAI,CAAEH,IAAI,IAAK;MACd,MAAMI,QAAQ,GAAGC,uBAAA,CAAAL,IAAI,EAAAD,IAAA,CAAJC,IAAI,EAAQ,IAAI,CAACb,WAAW,GAAG,CAAC,CAAC;MAClD,OAAOmB,yBAAA,CAAAX,KAAK,EAAAI,IAAA,CAALJ,KAAK,EAAUS,QAAQ,CAAC;IACjC,CAAC,CAAC;EACN;;EAEA;AACF;EACEG,QAAQA,CAACZ,KAAa,EAAW;IAC/B,OAAO,IAAI,CAACD,kCAAkC,CAACC,KAAK,CAAC;EACvD;;EAEA;AACF;EACE,IAAIa,qBAAqBA,CAAA,EAAY;IACnC,OAAO,KAAK;EACd;AACF;AAEA,eAAevB,sDAAsD","ignoreList":[]}
|
|
@@ -174,13 +174,13 @@ export default class ListDetailModel extends DetailModel {
|
|
|
174
174
|
var _context2;
|
|
175
175
|
const givenAnswersData = this.data.resultSection.givenAnswers;
|
|
176
176
|
const givenAnswersContributions = this.contributions.resultSection.givenAnswers;
|
|
177
|
-
const filteredContributions = {
|
|
177
|
+
const filteredContributions = givenAnswersContributions.children ? {
|
|
178
178
|
...givenAnswersContributions,
|
|
179
179
|
children: _filterInstanceProperty(_context2 = givenAnswersContributions.children).call(_context2, child => {
|
|
180
180
|
const childKey = _Object$keys(child)[0];
|
|
181
181
|
return childKey in givenAnswersData;
|
|
182
182
|
})
|
|
183
|
-
};
|
|
183
|
+
} : givenAnswersContributions;
|
|
184
184
|
const givenAnswers = createAttribute("givenAnswers", {
|
|
185
185
|
key: "givenAnswers",
|
|
186
186
|
dynamicschema: this.data.dynamicschema,
|
|
@@ -219,13 +219,15 @@ export default class ListDetailModel extends DetailModel {
|
|
|
219
219
|
const givenAnswersContributions =
|
|
220
220
|
this.contributions.resultSection.givenAnswers;
|
|
221
221
|
|
|
222
|
-
const filteredContributions =
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
222
|
+
const filteredContributions = givenAnswersContributions.children
|
|
223
|
+
? {
|
|
224
|
+
...givenAnswersContributions,
|
|
225
|
+
children: givenAnswersContributions.children.filter((child) => {
|
|
226
|
+
const childKey = Object.keys(child)[0];
|
|
227
|
+
return childKey in givenAnswersData;
|
|
228
|
+
}),
|
|
229
|
+
}
|
|
230
|
+
: givenAnswersContributions;
|
|
229
231
|
|
|
230
232
|
const givenAnswers = createAttribute(
|
|
231
233
|
"givenAnswers",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListDetailModel.js","names":["has","ActionCollection","DetailModel","ContentConfiguration","AttributeSetModel","createAttribute","CompositeAttributeModel","ListDetailModel","constructor","modularUIResponse","_defineProperty","_actionCollection","_contentConfiguration","contributions","content","setResultSection","setEventData","getInitialChildModelLinks","listitemPanels","listitem","links","getLinksByGroup","all","hasResults","results","push","givenAnswers","setChildModels","models","errors","_attributeCollection","type","modelName","isApplicableModel","data","resourcetype","toLowerCase","_endsWithInstanceProperty","call","_listitem","actionCollection","panelLinks","contentConfiguration","configuration","introtext","_content","text","message","Array","isArray","texts","setResults","setGivenAnswers","resultsData","resultSection","resultsContributions","_context","children","_filterInstanceProperty","child","childKey","_Object$keys","key","dynamicschema","isResult","indicateContentConfiguration","_results","_context2","givenAnswersData","givenAnswersContributions","filteredContributions","_givenAnswers","hasEventData","eventdata","addAttributes","eventData","eventContributions","_eventdata","modelOptions","forEach","eventDataContribution","eventDataData","i"],"sources":["../../../src/models/list/ListDetailModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ActionCollection from \"../actions/ActionCollection\";\nimport DetailModel from \"../detail/DetailModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport AttributeSetModel from \"../attributes/AttributeSetModel\";\n\nimport createAttribute from \"../attributes/_createAttribute\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type ListItemModel from \"../list/ListItemModel\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Detail of a list item\n */\nexport default class ListDetailModel extends DetailModel {\n _contentConfiguration: ContentConfiguration;\n _listitem: ListItemModel;\n _givenAnswers: ?CompositeAttributeModel;\n _results: ?CompositeAttributeModel;\n _eventdata: Array<AttributeSetModel>;\n\n /**\n * Construct\n */\n constructor(modularUIResponse: ModularUIResponse) {\n super(modularUIResponse);\n\n this._actionCollection = new ActionCollection();\n\n this._contentConfiguration = new ContentConfiguration(\n this.contributions ? this.contributions.content : {},\n );\n\n this.setResultSection();\n this.setEventData();\n }\n\n /**\n * Add links to expand on initialization of this model\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const listitemPanels = this.listitem\n ? this.listitem.links.getLinksByGroup(\"panel\").all\n : [];\n\n const links = [...super.getInitialChildModelLinks(), ...listitemPanels];\n\n if (this.hasResults) {\n if (this.results) {\n links.push(...this.results.getInitialChildModelLinks());\n }\n if (this.givenAnswers) {\n links.push(...this.givenAnswers.getInitialChildModelLinks());\n }\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this._attributeCollection.setChildModels(models, errors);\n\n if (this.results) {\n this.results.setChildModels(models, errors);\n }\n\n if (this.givenAnswers) {\n this.givenAnswers.setChildModels(models, errors);\n }\n }\n\n /**\n */\n get type(): string {\n return \"ListDetail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ListDetailModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n let resourcetype = data.contributions?.resourcetype ?? \"unknown\";\n resourcetype = resourcetype.toLowerCase();\n\n return (\n resourcetype.endsWith(\"listdetail\") ||\n resourcetype.endsWith(\"listpaneldetail\") ||\n resourcetype.endsWith(\"datastorepaneldetail\")\n );\n }\n\n /**\n * Set listitem of this listdetail and transfer listitem actions to listdetail actions\n */\n set listitem(listitem: ListItemModel) {\n this._listitem = listitem;\n\n // transfer listitem actions to _actions\n this._actionCollection = listitem.actionCollection;\n }\n\n /**\n * Get listitem\n */\n get listitem(): ListItemModel {\n return this._listitem;\n }\n\n /**\n * Getting panel links\n */\n get panelLinks(): LinkCollection {\n return this.listitem.links.getLinksByGroup(\"panel\");\n }\n\n /**\n * Getting the contentConfiguration\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n set contentConfiguration(configuration: ContentConfiguration) {\n this._contentConfiguration = configuration;\n }\n\n /**\n * Getting the introduction text configured on the case view\n */\n get introtext(): string {\n if (this.data._content) {\n return this.data._content.text.message;\n }\n\n if (this.contributions.text) {\n return this.contributions.text.message ?? this.contributions.text;\n }\n\n if (Array.isArray(this.contributions.texts)) {\n return this.contributions.texts[0].text;\n }\n\n return \"\";\n }\n\n /**\n */\n setResultSection() {\n if (\n has(this.contributions, \"resultSection\") &&\n has(this.data, \"resultSection\")\n ) {\n this.setResults();\n this.setGivenAnswers();\n }\n }\n\n /**\n */\n setResults() {\n if (\n has(this.data, \"resultSection.results\") &&\n has(this.contributions, \"resultSection.results\")\n ) {\n const resultsData = this.data.resultSection.results;\n const resultsContributions = this.contributions.resultSection.results;\n if (resultsContributions.type === \"composite\") {\n resultsContributions.children = resultsContributions.children.filter(\n (child) => {\n const childKey = Object.keys(child)[0];\n return childKey in resultsData;\n },\n );\n }\n\n const results = createAttribute(\n \"results\",\n {\n key: \"results\",\n dynamicschema: this.data.dynamicschema,\n content: this.data.content?.results,\n ...this.data.resultSection,\n },\n resultsContributions,\n );\n\n if (results instanceof CompositeAttributeModel) {\n results.isResult = true;\n results.indicateContentConfiguration(this.contentConfiguration);\n this._results = results;\n }\n }\n }\n\n /**\n */\n setGivenAnswers() {\n if (\n has(this.data, \"resultSection.givenAnswers\") &&\n has(this.contributions, \"resultSection.givenAnswers\")\n ) {\n const givenAnswersData = this.data.resultSection.givenAnswers;\n const givenAnswersContributions =\n this.contributions.resultSection.givenAnswers;\n\n const filteredContributions = {\n ...givenAnswersContributions,\n children: givenAnswersContributions.children.filter((child) => {\n const childKey = Object.keys(child)[0];\n return childKey in givenAnswersData;\n }),\n };\n\n const givenAnswers = createAttribute(\n \"givenAnswers\",\n {\n key: \"givenAnswers\",\n dynamicschema: this.data.dynamicschema,\n content: this.data.content?.givenAnswers,\n ...this.data.resultSection,\n },\n filteredContributions,\n );\n\n if (givenAnswers instanceof CompositeAttributeModel) {\n givenAnswers.isResult = true;\n this._givenAnswers = givenAnswers;\n }\n }\n }\n\n /**\n */\n get givenAnswers(): ?CompositeAttributeModel {\n return this._givenAnswers;\n }\n\n /**\n */\n get hasResults(): boolean {\n return has(this.contributions, \"resultSection\");\n }\n\n /**\n */\n get results(): ?CompositeAttributeModel {\n return this._results;\n }\n\n /**\n */\n get hasEventData(): boolean {\n return (\n has(this.contributions, \"eventdata\") &&\n has(this.data, \"eventdata\") &&\n this.data.eventdata != null &&\n this.contributions.eventdata != null\n );\n }\n\n /**\n */\n addAttributes(key: string, eventData: Object, eventContributions: Object) {\n this._eventdata.push(\n new AttributeSetModel(\n key,\n eventData,\n eventContributions,\n this.modelOptions,\n ),\n );\n }\n\n /**\n */\n setEventData() {\n if (this.hasEventData) {\n this._eventdata = [];\n\n this.contributions.eventdata.forEach((eventDataContribution) => {\n const [key] = Object.keys(eventDataContribution);\n if (key in this.data.eventdata) {\n if (Array.isArray(this.data.eventdata[key])) {\n this.data.eventdata[key].forEach((eventDataData, i) => {\n this.addAttributes(\n `${key}-${i + 1}`,\n {\n ...eventDataData,\n dynamicschema: this.data.dynamicschema,\n },\n eventDataContribution[key],\n );\n });\n } else {\n this.addAttributes(\n key,\n {\n ...this.data.eventdata[key],\n dynamicschema: this.data.dynamicschema,\n },\n eventDataContribution[key],\n );\n }\n }\n });\n }\n }\n\n /**\n */\n get eventdata(): Array<AttributeSetModel> {\n return this._eventdata;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ListDetailModel.js","names":["has","ActionCollection","DetailModel","ContentConfiguration","AttributeSetModel","createAttribute","CompositeAttributeModel","ListDetailModel","constructor","modularUIResponse","_defineProperty","_actionCollection","_contentConfiguration","contributions","content","setResultSection","setEventData","getInitialChildModelLinks","listitemPanels","listitem","links","getLinksByGroup","all","hasResults","results","push","givenAnswers","setChildModels","models","errors","_attributeCollection","type","modelName","isApplicableModel","data","resourcetype","toLowerCase","_endsWithInstanceProperty","call","_listitem","actionCollection","panelLinks","contentConfiguration","configuration","introtext","_content","text","message","Array","isArray","texts","setResults","setGivenAnswers","resultsData","resultSection","resultsContributions","_context","children","_filterInstanceProperty","child","childKey","_Object$keys","key","dynamicschema","isResult","indicateContentConfiguration","_results","_context2","givenAnswersData","givenAnswersContributions","filteredContributions","_givenAnswers","hasEventData","eventdata","addAttributes","eventData","eventContributions","_eventdata","modelOptions","forEach","eventDataContribution","eventDataData","i"],"sources":["../../../src/models/list/ListDetailModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ActionCollection from \"../actions/ActionCollection\";\nimport DetailModel from \"../detail/DetailModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport AttributeSetModel from \"../attributes/AttributeSetModel\";\n\nimport createAttribute from \"../attributes/_createAttribute\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type ListItemModel from \"../list/ListItemModel\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Detail of a list item\n */\nexport default class ListDetailModel extends DetailModel {\n _contentConfiguration: ContentConfiguration;\n _listitem: ListItemModel;\n _givenAnswers: ?CompositeAttributeModel;\n _results: ?CompositeAttributeModel;\n _eventdata: Array<AttributeSetModel>;\n\n /**\n * Construct\n */\n constructor(modularUIResponse: ModularUIResponse) {\n super(modularUIResponse);\n\n this._actionCollection = new ActionCollection();\n\n this._contentConfiguration = new ContentConfiguration(\n this.contributions ? this.contributions.content : {},\n );\n\n this.setResultSection();\n this.setEventData();\n }\n\n /**\n * Add links to expand on initialization of this model\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const listitemPanels = this.listitem\n ? this.listitem.links.getLinksByGroup(\"panel\").all\n : [];\n\n const links = [...super.getInitialChildModelLinks(), ...listitemPanels];\n\n if (this.hasResults) {\n if (this.results) {\n links.push(...this.results.getInitialChildModelLinks());\n }\n if (this.givenAnswers) {\n links.push(...this.givenAnswers.getInitialChildModelLinks());\n }\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this._attributeCollection.setChildModels(models, errors);\n\n if (this.results) {\n this.results.setChildModels(models, errors);\n }\n\n if (this.givenAnswers) {\n this.givenAnswers.setChildModels(models, errors);\n }\n }\n\n /**\n */\n get type(): string {\n return \"ListDetail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ListDetailModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n let resourcetype = data.contributions?.resourcetype ?? \"unknown\";\n resourcetype = resourcetype.toLowerCase();\n\n return (\n resourcetype.endsWith(\"listdetail\") ||\n resourcetype.endsWith(\"listpaneldetail\") ||\n resourcetype.endsWith(\"datastorepaneldetail\")\n );\n }\n\n /**\n * Set listitem of this listdetail and transfer listitem actions to listdetail actions\n */\n set listitem(listitem: ListItemModel) {\n this._listitem = listitem;\n\n // transfer listitem actions to _actions\n this._actionCollection = listitem.actionCollection;\n }\n\n /**\n * Get listitem\n */\n get listitem(): ListItemModel {\n return this._listitem;\n }\n\n /**\n * Getting panel links\n */\n get panelLinks(): LinkCollection {\n return this.listitem.links.getLinksByGroup(\"panel\");\n }\n\n /**\n * Getting the contentConfiguration\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n set contentConfiguration(configuration: ContentConfiguration) {\n this._contentConfiguration = configuration;\n }\n\n /**\n * Getting the introduction text configured on the case view\n */\n get introtext(): string {\n if (this.data._content) {\n return this.data._content.text.message;\n }\n\n if (this.contributions.text) {\n return this.contributions.text.message ?? this.contributions.text;\n }\n\n if (Array.isArray(this.contributions.texts)) {\n return this.contributions.texts[0].text;\n }\n\n return \"\";\n }\n\n /**\n */\n setResultSection() {\n if (\n has(this.contributions, \"resultSection\") &&\n has(this.data, \"resultSection\")\n ) {\n this.setResults();\n this.setGivenAnswers();\n }\n }\n\n /**\n */\n setResults() {\n if (\n has(this.data, \"resultSection.results\") &&\n has(this.contributions, \"resultSection.results\")\n ) {\n const resultsData = this.data.resultSection.results;\n const resultsContributions = this.contributions.resultSection.results;\n if (resultsContributions.type === \"composite\") {\n resultsContributions.children = resultsContributions.children.filter(\n (child) => {\n const childKey = Object.keys(child)[0];\n return childKey in resultsData;\n },\n );\n }\n\n const results = createAttribute(\n \"results\",\n {\n key: \"results\",\n dynamicschema: this.data.dynamicschema,\n content: this.data.content?.results,\n ...this.data.resultSection,\n },\n resultsContributions,\n );\n\n if (results instanceof CompositeAttributeModel) {\n results.isResult = true;\n results.indicateContentConfiguration(this.contentConfiguration);\n this._results = results;\n }\n }\n }\n\n /**\n */\n setGivenAnswers() {\n if (\n has(this.data, \"resultSection.givenAnswers\") &&\n has(this.contributions, \"resultSection.givenAnswers\")\n ) {\n const givenAnswersData = this.data.resultSection.givenAnswers;\n const givenAnswersContributions =\n this.contributions.resultSection.givenAnswers;\n\n const filteredContributions = givenAnswersContributions.children\n ? {\n ...givenAnswersContributions,\n children: givenAnswersContributions.children.filter((child) => {\n const childKey = Object.keys(child)[0];\n return childKey in givenAnswersData;\n }),\n }\n : givenAnswersContributions;\n\n const givenAnswers = createAttribute(\n \"givenAnswers\",\n {\n key: \"givenAnswers\",\n dynamicschema: this.data.dynamicschema,\n content: this.data.content?.givenAnswers,\n ...this.data.resultSection,\n },\n filteredContributions,\n );\n\n if (givenAnswers instanceof CompositeAttributeModel) {\n givenAnswers.isResult = true;\n this._givenAnswers = givenAnswers;\n }\n }\n }\n\n /**\n */\n get givenAnswers(): ?CompositeAttributeModel {\n return this._givenAnswers;\n }\n\n /**\n */\n get hasResults(): boolean {\n return has(this.contributions, \"resultSection\");\n }\n\n /**\n */\n get results(): ?CompositeAttributeModel {\n return this._results;\n }\n\n /**\n */\n get hasEventData(): boolean {\n return (\n has(this.contributions, \"eventdata\") &&\n has(this.data, \"eventdata\") &&\n this.data.eventdata != null &&\n this.contributions.eventdata != null\n );\n }\n\n /**\n */\n addAttributes(key: string, eventData: Object, eventContributions: Object) {\n this._eventdata.push(\n new AttributeSetModel(\n key,\n eventData,\n eventContributions,\n this.modelOptions,\n ),\n );\n }\n\n /**\n */\n setEventData() {\n if (this.hasEventData) {\n this._eventdata = [];\n\n this.contributions.eventdata.forEach((eventDataContribution) => {\n const [key] = Object.keys(eventDataContribution);\n if (key in this.data.eventdata) {\n if (Array.isArray(this.data.eventdata[key])) {\n this.data.eventdata[key].forEach((eventDataData, i) => {\n this.addAttributes(\n `${key}-${i + 1}`,\n {\n ...eventDataData,\n dynamicschema: this.data.dynamicschema,\n },\n eventDataContribution[key],\n );\n });\n } else {\n this.addAttributes(\n key,\n {\n ...this.data.eventdata[key],\n dynamicschema: this.data.dynamicschema,\n },\n eventDataContribution[key],\n );\n }\n }\n });\n }\n }\n\n /**\n */\n get eventdata(): Array<AttributeSetModel> {\n return this._eventdata;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHash.js","names":["hash","createHash","str","createHashFromHref","href","fragment","hrefString","toString","join"],"sources":["../../../src/utils/helpers/createHash.js"],"sourcesContent":["// @flow\nimport hash from \"hash-it\";\n\nimport type Href from \"../../models/href/Href\";\nimport type { SectionFragment } from \"../../models\";\n\n/**\n * https://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/\n */\nconst createHash = (str: string): number => {\n return hash(str);\n};\n\n/**\n */\nconst createHashFromHref = (href: Href, fragment?: SectionFragment): number => {\n const hrefString = href.hash\n ? [href.toString(), href.hash].join(\"#\")\n : href.toString();\n\n if (fragment) {\n return hash({ hrefString, fragment });\n }\n\n return hash(hrefString);\n};\n\nexport { createHash, createHashFromHref };\n"],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"createHash.js","names":["hash","createHash","str","createHashFromHref","href","fragment","hrefString","toString","join"],"sources":["../../../src/utils/helpers/createHash.js"],"sourcesContent":["// @flow\nimport { hash } from \"hash-it\";\n\nimport type Href from \"../../models/href/Href\";\nimport type { SectionFragment } from \"../../models\";\n\n/**\n * https://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/\n */\nconst createHash = (str: string): number => {\n return hash(str);\n};\n\n/**\n */\nconst createHashFromHref = (href: Href, fragment?: SectionFragment): number => {\n const hrefString = href.hash\n ? [href.toString(), href.hash].join(\"#\")\n : href.toString();\n\n if (fragment) {\n return hash({ hrefString, fragment });\n }\n\n return hash(hrefString);\n};\n\nexport { createHash, createHashFromHref };\n"],"mappings":"AACA,SAASA,IAAI,QAAQ,SAAS;AAK9B;AACA;AACA;AACA,MAAMC,UAAU,GAAIC,GAAW,IAAa;EAC1C,OAAOF,IAAI,CAACE,GAAG,CAAC;AAClB,CAAC;;AAED;AACA;AACA,MAAMC,kBAAkB,GAAGA,CAACC,IAAU,EAAEC,QAA0B,KAAa;EAC7E,MAAMC,UAAU,GAAGF,IAAI,CAACJ,IAAI,GACxB,CAACI,IAAI,CAACG,QAAQ,CAAC,CAAC,EAAEH,IAAI,CAACJ,IAAI,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC,GACtCJ,IAAI,CAACG,QAAQ,CAAC,CAAC;EAEnB,IAAIF,QAAQ,EAAE;IACZ,OAAOL,IAAI,CAAC;MAAEM,UAAU;MAAED;IAAS,CAAC,CAAC;EACvC;EAEA,OAAOL,IAAI,CAACM,UAAU,CAAC;AACzB,CAAC;AAED,SAASL,UAAU,EAAEE,kBAAkB","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
const createUUID = (): string => {
|
|
5
5
|
let d = new Date().getTime();
|
|
6
6
|
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
7
|
-
const r = (d + Math.random() * 16) % 16 | 0;
|
|
7
|
+
const r = ((d + Math.random() * 16) % 16) | 0;
|
|
8
8
|
d = Math.floor(d / 16);
|
|
9
9
|
return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
10
10
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createUUID.js","names":["createUUID","d","Date","getTime","replace","c","r","Math","random","floor","toString"],"sources":["../../../src/utils/helpers/createUUID.js"],"sourcesContent":["// @flow\n/**\n */\nconst createUUID = (): string => {\n let d = new Date().getTime();\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c === \"x\" ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nexport default createUUID;\n"],"mappings":"AACA;AACA;AACA,MAAMA,UAAU,GAAGA,CAAA,KAAc;EAC/B,IAAIC,CAAC,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;EAC5B,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAK;IACpE,MAAMC,CAAC,
|
|
1
|
+
{"version":3,"file":"createUUID.js","names":["createUUID","d","Date","getTime","replace","c","r","Math","random","floor","toString"],"sources":["../../../src/utils/helpers/createUUID.js"],"sourcesContent":["// @flow\n/**\n */\nconst createUUID = (): string => {\n let d = new Date().getTime();\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = ((d + Math.random() * 16) % 16) | 0;\n d = Math.floor(d / 16);\n return (c === \"x\" ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nexport default createUUID;\n"],"mappings":"AACA;AACA;AACA,MAAMA,UAAU,GAAGA,CAAA,KAAc;EAC/B,IAAIC,CAAC,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;EAC5B,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAK;IACpE,MAAMC,CAAC,GAAI,CAACL,CAAC,GAAGM,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAI,CAAC;IAC7CP,CAAC,GAAGM,IAAI,CAACE,KAAK,CAACR,CAAC,GAAG,EAAE,CAAC;IACtB,OAAO,CAACI,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAI,GAAG,EAAEI,QAAQ,CAAC,EAAE,CAAC;EACvD,CAAC,CAAC;AACJ,CAAC;AAED,eAAeV,UAAU","ignoreList":[]}
|
|
@@ -12,12 +12,13 @@ var _Cache = _interopRequireDefault(require("../utils/browser/Cache"));
|
|
|
12
12
|
var _constants = require("../constants");
|
|
13
13
|
var _exceptions = require("../exceptions");
|
|
14
14
|
var _modularui = require("../modularui");
|
|
15
|
+
var _useModularUIModel = require("./useModularUIModel");
|
|
15
16
|
/**
|
|
16
17
|
*/
|
|
17
18
|
const useLogin = () => {
|
|
18
19
|
_Cache.default.setItem("isRedirectLogin", false);
|
|
19
20
|
const dispatch = (0, _reactRedux.useDispatch)();
|
|
20
|
-
const application = (0,
|
|
21
|
+
const application = (0, _useModularUIModel.useApplication)();
|
|
21
22
|
const auth = (0, _reactRedux.useSelector)(state => state.auth);
|
|
22
23
|
const isAuthenticated = application?.isLoggedIn ?? false;
|
|
23
24
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthentication.js","names":["_reactRedux","require","_ModularUISelectors","_actions","_Cache","_interopRequireDefault","_constants","_exceptions","_modularui","useLogin","Cache","setItem","dispatch","useDispatch","application","
|
|
1
|
+
{"version":3,"file":"useAuthentication.js","names":["_reactRedux","require","_ModularUISelectors","_actions","_Cache","_interopRequireDefault","_constants","_exceptions","_modularui","_useModularUIModel","useLogin","Cache","setItem","dispatch","useDispatch","application","useApplication","auth","useSelector","state","isAuthenticated","isLoggedIn","authenticationTypes","DEFAULT_AUTHENTICATION_TYPE","errorMessage","error","resetErrors","resetAuthErrors","login","username","password","redirectLogin","authenticationType","getItem","IllegalStateException","authentication","redirectUri","window","location","assign","getBasePathServer","exports","useLogout","getApplication","BASE_PATH","getBasePath","authenticate","Authenticate","logout","type","INTERNAL_LOGIN_TYPE","PAC4J_INDIRECT","redirectToLogout","origin","url","getLogoutUrl","logoutUrl"],"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 getBasePathServer,\n INTERNAL_LOGIN_TYPE,\n} from \"../constants\";\nimport { IllegalStateException } from \"../exceptions\";\nimport { Authenticate } from \"../modularui\";\nimport { useApplication } from \"./useModularUIModel\";\n\nimport type { ResetAuthErrorsAction } from \"../redux/types\";\nimport type { AuthenticationType } from \"../models/types\";\n\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 logoutUrl: string,\n};\n\n/**\n */\nexport const useLogin = (): LoginHook => {\n Cache.setItem(\"isRedirectLogin\", false);\n\n const dispatch = useDispatch();\n\n const application = useApplication();\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 `${getBasePathServer()}${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 BASE_PATH = getBasePath();\n\n const authenticate = new Authenticate();\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n logout: () => {\n const type = authenticate.authenticationType;\n if (type === INTERNAL_LOGIN_TYPE.PAC4J_INDIRECT) {\n authenticate.redirectToLogout();\n } else if (Cache.getItem(\"isRedirectLogin\")) {\n const origin = window.location.origin;\n const url = `${authenticate.getLogoutUrl()}?url=${origin}${BASE_PATH}`;\n Cache.setItem(\"isRedirectLogin\", false);\n window.location.assign(url);\n } else {\n return dispatch(logout());\n }\n },\n logoutUrl: authenticate.getLogoutUrl(),\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordThreeConsecutiveCharactersNotAllowedConstraint.js","names":["PasswordThreeConsecutiveCharactersNotAllowedConstraint","constructor","maxSequence","_defineProperty2","default","_maxSequence","id","hasValidation","defaultMessage","parameters","hasNoSequenceOfIdenticalCharacters","value","_context","_filter","split","call","char","i","indexOf","some","sequence","_repeat","_includes","validate","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js"],"sourcesContent":["// @flow\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass PasswordThreeConsecutiveCharactersNotAllowedConstraint
|
|
1
|
+
{"version":3,"file":"PasswordThreeConsecutiveCharactersNotAllowedConstraint.js","names":["PasswordThreeConsecutiveCharactersNotAllowedConstraint","constructor","maxSequence","_defineProperty2","default","_maxSequence","id","hasValidation","defaultMessage","parameters","hasNoSequenceOfIdenticalCharacters","value","_context","_filter","split","call","char","i","indexOf","some","sequence","_repeat","_includes","validate","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js"],"sourcesContent":["// @flow\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass PasswordThreeConsecutiveCharactersNotAllowedConstraint implements IConstraintModel {\n _maxSequence: number;\n\n /**\n */\n constructor(maxSequence: number = 2) {\n this._maxSequence = maxSequence;\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.Password.ThreeConsecutiveCharactersNotAllowed\";\n }\n\n /**\n */\n get maxSequence(): number {\n return this._maxSequence;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Must not contain any character more than twice consecutively\";\n }\n\n /**\n */\n get parameters(): { \"max-sequence\": number } {\n return {\n \"max-sequence\": this.maxSequence,\n };\n }\n\n /**\n */\n hasNoSequenceOfIdenticalCharacters(value: string): boolean {\n return !value\n .split(\"\")\n .filter((char, i) => value.indexOf(char) === i)\n .some((char) => {\n const sequence = char.repeat(this.maxSequence + 1);\n return value.includes(sequence);\n });\n }\n\n /**\n */\n validate(value: string): boolean {\n return this.hasNoSequenceOfIdenticalCharacters(value);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default PasswordThreeConsecutiveCharactersNotAllowedConstraint;\n"],"mappings":";;;;;;;;;;;AAGA;AACA;AACA,MAAMA,sDAAsD,CAA6B;EAGvF;AACF;EACEC,WAAWA,CAACC,WAAmB,GAAG,CAAC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IACnC,IAAI,CAACC,YAAY,GAAGH,WAAW;EACjC;;EAEA;AACF;EACE,IAAII,EAAEA,CAAA,EAAW;IACf,OAAO,0DAA0D;EACnE;;EAEA;AACF;EACE,IAAIJ,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACG,YAAY;EAC1B;;EAEA;AACF;EACEE,aAAaA,CAAA,EAAY;IACvB,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIC,cAAcA,CAAA,EAAW;IAC3B,OAAO,8DAA8D;EACvE;;EAEA;AACF;EACE,IAAIC,UAAUA,CAAA,EAA+B;IAC3C,OAAO;MACL,cAAc,EAAE,IAAI,CAACP;IACvB,CAAC;EACH;;EAEA;AACF;EACEQ,kCAAkCA,CAACC,KAAa,EAAW;IAAA,IAAAC,QAAA;IACzD,OAAO,CAAC,IAAAC,OAAA,CAAAT,OAAA,EAAAQ,QAAA,GAAAD,KAAK,CACVG,KAAK,CAAC,EAAE,CAAC,EAAAC,IAAA,CAAAH,QAAA,EACF,CAACI,IAAI,EAAEC,CAAC,KAAKN,KAAK,CAACO,OAAO,CAACF,IAAI,CAAC,KAAKC,CAAC,CAAC,CAC9CE,IAAI,CAAEH,IAAI,IAAK;MACd,MAAMI,QAAQ,GAAG,IAAAC,OAAA,CAAAjB,OAAA,EAAAY,IAAI,EAAAD,IAAA,CAAJC,IAAI,EAAQ,IAAI,CAACd,WAAW,GAAG,CAAC,CAAC;MAClD,OAAO,IAAAoB,SAAA,CAAAlB,OAAA,EAAAO,KAAK,EAAAI,IAAA,CAALJ,KAAK,EAAUS,QAAQ,CAAC;IACjC,CAAC,CAAC;EACN;;EAEA;AACF;EACEG,QAAQA,CAACZ,KAAa,EAAW;IAC/B,OAAO,IAAI,CAACD,kCAAkC,CAACC,KAAK,CAAC;EACvD;;EAEA;AACF;EACE,IAAIa,qBAAqBA,CAAA,EAAY;IACnC,OAAO,KAAK;EACd;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAEcJ,sDAAsD","ignoreList":[]}
|
|
@@ -181,13 +181,13 @@ class ListDetailModel extends _DetailModel.default {
|
|
|
181
181
|
var _context2;
|
|
182
182
|
const givenAnswersData = this.data.resultSection.givenAnswers;
|
|
183
183
|
const givenAnswersContributions = this.contributions.resultSection.givenAnswers;
|
|
184
|
-
const filteredContributions = {
|
|
184
|
+
const filteredContributions = givenAnswersContributions.children ? {
|
|
185
185
|
...givenAnswersContributions,
|
|
186
186
|
children: (0, _filter.default)(_context2 = givenAnswersContributions.children).call(_context2, child => {
|
|
187
187
|
const childKey = (0, _keys.default)(child)[0];
|
|
188
188
|
return childKey in givenAnswersData;
|
|
189
189
|
})
|
|
190
|
-
};
|
|
190
|
+
} : givenAnswersContributions;
|
|
191
191
|
const givenAnswers = (0, _createAttribute.default)("givenAnswers", {
|
|
192
192
|
key: "givenAnswers",
|
|
193
193
|
dynamicschema: this.data.dynamicschema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListDetailModel.js","names":["_objects","require","_ActionCollection","_interopRequireDefault","_DetailModel","_ContentConfiguration","_AttributeSetModel","_createAttribute","_CompositeAttributeModel","ListDetailModel","DetailModel","constructor","modularUIResponse","_defineProperty2","default","_actionCollection","ActionCollection","_contentConfiguration","ContentConfiguration","contributions","content","setResultSection","setEventData","getInitialChildModelLinks","listitemPanels","listitem","links","getLinksByGroup","all","hasResults","results","push","givenAnswers","setChildModels","models","errors","_attributeCollection","type","modelName","isApplicableModel","data","resourcetype","toLowerCase","_endsWith","call","_listitem","actionCollection","panelLinks","contentConfiguration","configuration","introtext","_content","text","message","Array","isArray","texts","has","setResults","setGivenAnswers","resultsData","resultSection","resultsContributions","_context","children","_filter","child","childKey","_keys","createAttribute","key","dynamicschema","CompositeAttributeModel","isResult","indicateContentConfiguration","_results","_context2","givenAnswersData","givenAnswersContributions","filteredContributions","_givenAnswers","hasEventData","eventdata","addAttributes","eventData","eventContributions","_eventdata","AttributeSetModel","modelOptions","forEach","eventDataContribution","eventDataData","i","exports"],"sources":["../../../src/models/list/ListDetailModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ActionCollection from \"../actions/ActionCollection\";\nimport DetailModel from \"../detail/DetailModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport AttributeSetModel from \"../attributes/AttributeSetModel\";\n\nimport createAttribute from \"../attributes/_createAttribute\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type ListItemModel from \"../list/ListItemModel\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Detail of a list item\n */\nexport default class ListDetailModel extends DetailModel {\n _contentConfiguration: ContentConfiguration;\n _listitem: ListItemModel;\n _givenAnswers: ?CompositeAttributeModel;\n _results: ?CompositeAttributeModel;\n _eventdata: Array<AttributeSetModel>;\n\n /**\n * Construct\n */\n constructor(modularUIResponse: ModularUIResponse) {\n super(modularUIResponse);\n\n this._actionCollection = new ActionCollection();\n\n this._contentConfiguration = new ContentConfiguration(\n this.contributions ? this.contributions.content : {},\n );\n\n this.setResultSection();\n this.setEventData();\n }\n\n /**\n * Add links to expand on initialization of this model\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const listitemPanels = this.listitem\n ? this.listitem.links.getLinksByGroup(\"panel\").all\n : [];\n\n const links = [...super.getInitialChildModelLinks(), ...listitemPanels];\n\n if (this.hasResults) {\n if (this.results) {\n links.push(...this.results.getInitialChildModelLinks());\n }\n if (this.givenAnswers) {\n links.push(...this.givenAnswers.getInitialChildModelLinks());\n }\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this._attributeCollection.setChildModels(models, errors);\n\n if (this.results) {\n this.results.setChildModels(models, errors);\n }\n\n if (this.givenAnswers) {\n this.givenAnswers.setChildModels(models, errors);\n }\n }\n\n /**\n */\n get type(): string {\n return \"ListDetail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ListDetailModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n let resourcetype = data.contributions?.resourcetype ?? \"unknown\";\n resourcetype = resourcetype.toLowerCase();\n\n return (\n resourcetype.endsWith(\"listdetail\") ||\n resourcetype.endsWith(\"listpaneldetail\") ||\n resourcetype.endsWith(\"datastorepaneldetail\")\n );\n }\n\n /**\n * Set listitem of this listdetail and transfer listitem actions to listdetail actions\n */\n set listitem(listitem: ListItemModel) {\n this._listitem = listitem;\n\n // transfer listitem actions to _actions\n this._actionCollection = listitem.actionCollection;\n }\n\n /**\n * Get listitem\n */\n get listitem(): ListItemModel {\n return this._listitem;\n }\n\n /**\n * Getting panel links\n */\n get panelLinks(): LinkCollection {\n return this.listitem.links.getLinksByGroup(\"panel\");\n }\n\n /**\n * Getting the contentConfiguration\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n set contentConfiguration(configuration: ContentConfiguration) {\n this._contentConfiguration = configuration;\n }\n\n /**\n * Getting the introduction text configured on the case view\n */\n get introtext(): string {\n if (this.data._content) {\n return this.data._content.text.message;\n }\n\n if (this.contributions.text) {\n return this.contributions.text.message ?? this.contributions.text;\n }\n\n if (Array.isArray(this.contributions.texts)) {\n return this.contributions.texts[0].text;\n }\n\n return \"\";\n }\n\n /**\n */\n setResultSection() {\n if (\n has(this.contributions, \"resultSection\") &&\n has(this.data, \"resultSection\")\n ) {\n this.setResults();\n this.setGivenAnswers();\n }\n }\n\n /**\n */\n setResults() {\n if (\n has(this.data, \"resultSection.results\") &&\n has(this.contributions, \"resultSection.results\")\n ) {\n const resultsData = this.data.resultSection.results;\n const resultsContributions = this.contributions.resultSection.results;\n if (resultsContributions.type === \"composite\") {\n resultsContributions.children = resultsContributions.children.filter(\n (child) => {\n const childKey = Object.keys(child)[0];\n return childKey in resultsData;\n },\n );\n }\n\n const results = createAttribute(\n \"results\",\n {\n key: \"results\",\n dynamicschema: this.data.dynamicschema,\n content: this.data.content?.results,\n ...this.data.resultSection,\n },\n resultsContributions,\n );\n\n if (results instanceof CompositeAttributeModel) {\n results.isResult = true;\n results.indicateContentConfiguration(this.contentConfiguration);\n this._results = results;\n }\n }\n }\n\n /**\n */\n setGivenAnswers() {\n if (\n has(this.data, \"resultSection.givenAnswers\") &&\n has(this.contributions, \"resultSection.givenAnswers\")\n ) {\n const givenAnswersData = this.data.resultSection.givenAnswers;\n const givenAnswersContributions =\n this.contributions.resultSection.givenAnswers;\n\n const filteredContributions = {\n ...givenAnswersContributions,\n children: givenAnswersContributions.children.filter((child) => {\n const childKey = Object.keys(child)[0];\n return childKey in givenAnswersData;\n }),\n };\n\n const givenAnswers = createAttribute(\n \"givenAnswers\",\n {\n key: \"givenAnswers\",\n dynamicschema: this.data.dynamicschema,\n content: this.data.content?.givenAnswers,\n ...this.data.resultSection,\n },\n filteredContributions,\n );\n\n if (givenAnswers instanceof CompositeAttributeModel) {\n givenAnswers.isResult = true;\n this._givenAnswers = givenAnswers;\n }\n }\n }\n\n /**\n */\n get givenAnswers(): ?CompositeAttributeModel {\n return this._givenAnswers;\n }\n\n /**\n */\n get hasResults(): boolean {\n return has(this.contributions, \"resultSection\");\n }\n\n /**\n */\n get results(): ?CompositeAttributeModel {\n return this._results;\n }\n\n /**\n */\n get hasEventData(): boolean {\n return (\n has(this.contributions, \"eventdata\") &&\n has(this.data, \"eventdata\") &&\n this.data.eventdata != null &&\n this.contributions.eventdata != null\n );\n }\n\n /**\n */\n addAttributes(key: string, eventData: Object, eventContributions: Object) {\n this._eventdata.push(\n new AttributeSetModel(\n key,\n eventData,\n eventContributions,\n this.modelOptions,\n ),\n );\n }\n\n /**\n */\n setEventData() {\n if (this.hasEventData) {\n this._eventdata = [];\n\n this.contributions.eventdata.forEach((eventDataContribution) => {\n const [key] = Object.keys(eventDataContribution);\n if (key in this.data.eventdata) {\n if (Array.isArray(this.data.eventdata[key])) {\n this.data.eventdata[key].forEach((eventDataData, i) => {\n this.addAttributes(\n `${key}-${i + 1}`,\n {\n ...eventDataData,\n dynamicschema: this.data.dynamicschema,\n },\n eventDataContribution[key],\n );\n });\n } else {\n this.addAttributes(\n key,\n {\n ...this.data.eventdata[key],\n dynamicschema: this.data.dynamicschema,\n },\n eventDataContribution[key],\n );\n }\n }\n });\n }\n }\n\n /**\n */\n get eventdata(): Array<AttributeSetModel> {\n return this._eventdata;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ListDetailModel.js","names":["_objects","require","_ActionCollection","_interopRequireDefault","_DetailModel","_ContentConfiguration","_AttributeSetModel","_createAttribute","_CompositeAttributeModel","ListDetailModel","DetailModel","constructor","modularUIResponse","_defineProperty2","default","_actionCollection","ActionCollection","_contentConfiguration","ContentConfiguration","contributions","content","setResultSection","setEventData","getInitialChildModelLinks","listitemPanels","listitem","links","getLinksByGroup","all","hasResults","results","push","givenAnswers","setChildModels","models","errors","_attributeCollection","type","modelName","isApplicableModel","data","resourcetype","toLowerCase","_endsWith","call","_listitem","actionCollection","panelLinks","contentConfiguration","configuration","introtext","_content","text","message","Array","isArray","texts","has","setResults","setGivenAnswers","resultsData","resultSection","resultsContributions","_context","children","_filter","child","childKey","_keys","createAttribute","key","dynamicschema","CompositeAttributeModel","isResult","indicateContentConfiguration","_results","_context2","givenAnswersData","givenAnswersContributions","filteredContributions","_givenAnswers","hasEventData","eventdata","addAttributes","eventData","eventContributions","_eventdata","AttributeSetModel","modelOptions","forEach","eventDataContribution","eventDataData","i","exports"],"sources":["../../../src/models/list/ListDetailModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ActionCollection from \"../actions/ActionCollection\";\nimport DetailModel from \"../detail/DetailModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport AttributeSetModel from \"../attributes/AttributeSetModel\";\n\nimport createAttribute from \"../attributes/_createAttribute\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type ListItemModel from \"../list/ListItemModel\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Detail of a list item\n */\nexport default class ListDetailModel extends DetailModel {\n _contentConfiguration: ContentConfiguration;\n _listitem: ListItemModel;\n _givenAnswers: ?CompositeAttributeModel;\n _results: ?CompositeAttributeModel;\n _eventdata: Array<AttributeSetModel>;\n\n /**\n * Construct\n */\n constructor(modularUIResponse: ModularUIResponse) {\n super(modularUIResponse);\n\n this._actionCollection = new ActionCollection();\n\n this._contentConfiguration = new ContentConfiguration(\n this.contributions ? this.contributions.content : {},\n );\n\n this.setResultSection();\n this.setEventData();\n }\n\n /**\n * Add links to expand on initialization of this model\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const listitemPanels = this.listitem\n ? this.listitem.links.getLinksByGroup(\"panel\").all\n : [];\n\n const links = [...super.getInitialChildModelLinks(), ...listitemPanels];\n\n if (this.hasResults) {\n if (this.results) {\n links.push(...this.results.getInitialChildModelLinks());\n }\n if (this.givenAnswers) {\n links.push(...this.givenAnswers.getInitialChildModelLinks());\n }\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this._attributeCollection.setChildModels(models, errors);\n\n if (this.results) {\n this.results.setChildModels(models, errors);\n }\n\n if (this.givenAnswers) {\n this.givenAnswers.setChildModels(models, errors);\n }\n }\n\n /**\n */\n get type(): string {\n return \"ListDetail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ListDetailModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n let resourcetype = data.contributions?.resourcetype ?? \"unknown\";\n resourcetype = resourcetype.toLowerCase();\n\n return (\n resourcetype.endsWith(\"listdetail\") ||\n resourcetype.endsWith(\"listpaneldetail\") ||\n resourcetype.endsWith(\"datastorepaneldetail\")\n );\n }\n\n /**\n * Set listitem of this listdetail and transfer listitem actions to listdetail actions\n */\n set listitem(listitem: ListItemModel) {\n this._listitem = listitem;\n\n // transfer listitem actions to _actions\n this._actionCollection = listitem.actionCollection;\n }\n\n /**\n * Get listitem\n */\n get listitem(): ListItemModel {\n return this._listitem;\n }\n\n /**\n * Getting panel links\n */\n get panelLinks(): LinkCollection {\n return this.listitem.links.getLinksByGroup(\"panel\");\n }\n\n /**\n * Getting the contentConfiguration\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n set contentConfiguration(configuration: ContentConfiguration) {\n this._contentConfiguration = configuration;\n }\n\n /**\n * Getting the introduction text configured on the case view\n */\n get introtext(): string {\n if (this.data._content) {\n return this.data._content.text.message;\n }\n\n if (this.contributions.text) {\n return this.contributions.text.message ?? this.contributions.text;\n }\n\n if (Array.isArray(this.contributions.texts)) {\n return this.contributions.texts[0].text;\n }\n\n return \"\";\n }\n\n /**\n */\n setResultSection() {\n if (\n has(this.contributions, \"resultSection\") &&\n has(this.data, \"resultSection\")\n ) {\n this.setResults();\n this.setGivenAnswers();\n }\n }\n\n /**\n */\n setResults() {\n if (\n has(this.data, \"resultSection.results\") &&\n has(this.contributions, \"resultSection.results\")\n ) {\n const resultsData = this.data.resultSection.results;\n const resultsContributions = this.contributions.resultSection.results;\n if (resultsContributions.type === \"composite\") {\n resultsContributions.children = resultsContributions.children.filter(\n (child) => {\n const childKey = Object.keys(child)[0];\n return childKey in resultsData;\n },\n );\n }\n\n const results = createAttribute(\n \"results\",\n {\n key: \"results\",\n dynamicschema: this.data.dynamicschema,\n content: this.data.content?.results,\n ...this.data.resultSection,\n },\n resultsContributions,\n );\n\n if (results instanceof CompositeAttributeModel) {\n results.isResult = true;\n results.indicateContentConfiguration(this.contentConfiguration);\n this._results = results;\n }\n }\n }\n\n /**\n */\n setGivenAnswers() {\n if (\n has(this.data, \"resultSection.givenAnswers\") &&\n has(this.contributions, \"resultSection.givenAnswers\")\n ) {\n const givenAnswersData = this.data.resultSection.givenAnswers;\n const givenAnswersContributions =\n this.contributions.resultSection.givenAnswers;\n\n const filteredContributions = givenAnswersContributions.children\n ? {\n ...givenAnswersContributions,\n children: givenAnswersContributions.children.filter((child) => {\n const childKey = Object.keys(child)[0];\n return childKey in givenAnswersData;\n }),\n }\n : givenAnswersContributions;\n\n const givenAnswers = createAttribute(\n \"givenAnswers\",\n {\n key: \"givenAnswers\",\n dynamicschema: this.data.dynamicschema,\n content: this.data.content?.givenAnswers,\n ...this.data.resultSection,\n },\n filteredContributions,\n );\n\n if (givenAnswers instanceof CompositeAttributeModel) {\n givenAnswers.isResult = true;\n this._givenAnswers = givenAnswers;\n }\n }\n }\n\n /**\n */\n get givenAnswers(): ?CompositeAttributeModel {\n return this._givenAnswers;\n }\n\n /**\n */\n get hasResults(): boolean {\n return has(this.contributions, \"resultSection\");\n }\n\n /**\n */\n get results(): ?CompositeAttributeModel {\n return this._results;\n }\n\n /**\n */\n get hasEventData(): boolean {\n return (\n has(this.contributions, \"eventdata\") &&\n has(this.data, \"eventdata\") &&\n this.data.eventdata != null &&\n this.contributions.eventdata != null\n );\n }\n\n /**\n */\n addAttributes(key: string, eventData: Object, eventContributions: Object) {\n this._eventdata.push(\n new AttributeSetModel(\n key,\n eventData,\n eventContributions,\n this.modelOptions,\n ),\n );\n }\n\n /**\n */\n setEventData() {\n if (this.hasEventData) {\n this._eventdata = [];\n\n this.contributions.eventdata.forEach((eventDataContribution) => {\n const [key] = Object.keys(eventDataContribution);\n if (key in this.data.eventdata) {\n if (Array.isArray(this.data.eventdata[key])) {\n this.data.eventdata[key].forEach((eventDataData, i) => {\n this.addAttributes(\n `${key}-${i + 1}`,\n {\n ...eventDataData,\n dynamicschema: this.data.dynamicschema,\n },\n eventDataContribution[key],\n );\n });\n } else {\n this.addAttributes(\n key,\n {\n ...this.data.eventdata[key],\n dynamicschema: this.data.dynamicschema,\n },\n eventDataContribution[key],\n );\n }\n }\n });\n }\n }\n\n /**\n */\n get eventdata(): Array<AttributeSetModel> {\n return this._eventdata;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.createHashFromHref = exports.createHash = void 0;
|
|
8
|
-
var _hashIt =
|
|
7
|
+
var _hashIt = require("hash-it");
|
|
9
8
|
/**
|
|
10
9
|
* https://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/
|
|
11
10
|
*/
|
|
12
11
|
const createHash = str => {
|
|
13
|
-
return (0, _hashIt.
|
|
12
|
+
return (0, _hashIt.hash)(str);
|
|
14
13
|
};
|
|
15
14
|
|
|
16
15
|
/**
|
|
@@ -19,12 +18,12 @@ exports.createHash = createHash;
|
|
|
19
18
|
const createHashFromHref = (href, fragment) => {
|
|
20
19
|
const hrefString = href.hash ? [href.toString(), href.hash].join("#") : href.toString();
|
|
21
20
|
if (fragment) {
|
|
22
|
-
return (0, _hashIt.
|
|
21
|
+
return (0, _hashIt.hash)({
|
|
23
22
|
hrefString,
|
|
24
23
|
fragment
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
|
-
return (0, _hashIt.
|
|
26
|
+
return (0, _hashIt.hash)(hrefString);
|
|
28
27
|
};
|
|
29
28
|
exports.createHashFromHref = createHashFromHref;
|
|
30
29
|
//# sourceMappingURL=createHash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHash.js","names":["_hashIt","
|
|
1
|
+
{"version":3,"file":"createHash.js","names":["_hashIt","require","createHash","str","hash","exports","createHashFromHref","href","fragment","hrefString","toString","join"],"sources":["../../../src/utils/helpers/createHash.js"],"sourcesContent":["// @flow\nimport { hash } from \"hash-it\";\n\nimport type Href from \"../../models/href/Href\";\nimport type { SectionFragment } from \"../../models\";\n\n/**\n * https://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/\n */\nconst createHash = (str: string): number => {\n return hash(str);\n};\n\n/**\n */\nconst createHashFromHref = (href: Href, fragment?: SectionFragment): number => {\n const hrefString = href.hash\n ? [href.toString(), href.hash].join(\"#\")\n : href.toString();\n\n if (fragment) {\n return hash({ hrefString, fragment });\n }\n\n return hash(hrefString);\n};\n\nexport { createHash, createHashFromHref };\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAKA;AACA;AACA;AACA,MAAMC,UAAU,GAAIC,GAAW,IAAa;EAC1C,OAAO,IAAAC,YAAI,EAACD,GAAG,CAAC;AAClB,CAAC;;AAED;AACA;AADAE,OAAA,CAAAH,UAAA,GAAAA,UAAA;AAEA,MAAMI,kBAAkB,GAAGA,CAACC,IAAU,EAAEC,QAA0B,KAAa;EAC7E,MAAMC,UAAU,GAAGF,IAAI,CAACH,IAAI,GACxB,CAACG,IAAI,CAACG,QAAQ,CAAC,CAAC,EAAEH,IAAI,CAACH,IAAI,CAAC,CAACO,IAAI,CAAC,GAAG,CAAC,GACtCJ,IAAI,CAACG,QAAQ,CAAC,CAAC;EAEnB,IAAIF,QAAQ,EAAE;IACZ,OAAO,IAAAJ,YAAI,EAAC;MAAEK,UAAU;MAAED;IAAS,CAAC,CAAC;EACvC;EAEA,OAAO,IAAAJ,YAAI,EAACK,UAAU,CAAC;AACzB,CAAC;AAACJ,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createUUID.js","names":["createUUID","d","Date","getTime","replace","c","r","Math","random","floor","toString","_default","exports","default"],"sources":["../../../src/utils/helpers/createUUID.js"],"sourcesContent":["// @flow\n/**\n */\nconst createUUID = (): string => {\n let d = new Date().getTime();\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c === \"x\" ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nexport default createUUID;\n"],"mappings":";;;;;;AACA;AACA;AACA,MAAMA,UAAU,GAAGA,CAAA,KAAc;EAC/B,IAAIC,CAAC,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;EAC5B,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAK;IACpE,MAAMC,CAAC,
|
|
1
|
+
{"version":3,"file":"createUUID.js","names":["createUUID","d","Date","getTime","replace","c","r","Math","random","floor","toString","_default","exports","default"],"sources":["../../../src/utils/helpers/createUUID.js"],"sourcesContent":["// @flow\n/**\n */\nconst createUUID = (): string => {\n let d = new Date().getTime();\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = ((d + Math.random() * 16) % 16) | 0;\n d = Math.floor(d / 16);\n return (c === \"x\" ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nexport default createUUID;\n"],"mappings":";;;;;;AACA;AACA;AACA,MAAMA,UAAU,GAAGA,CAAA,KAAc;EAC/B,IAAIC,CAAC,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;EAC5B,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAK;IACpE,MAAMC,CAAC,GAAI,CAACL,CAAC,GAAGM,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAI,CAAC;IAC7CP,CAAC,GAAGM,IAAI,CAACE,KAAK,CAACR,CAAC,GAAG,EAAE,CAAC;IACtB,OAAO,CAACI,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAI,GAAG,EAAEI,QAAQ,CAAC,EAAE,CAAC;EACvD,CAAC,CAAC;AACJ,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEab,UAAU","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beinformed/ui",
|
|
3
|
-
"version": "1.63.
|
|
3
|
+
"version": "1.63.12",
|
|
4
4
|
"description": "Toolbox for be informed javascript layouts",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"bugs": "https://support.beinformed.com",
|
|
@@ -71,13 +71,14 @@
|
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@babel/runtime-corejs3": "^7.28.4",
|
|
73
73
|
"@date-fns/tz": "^1.4.1",
|
|
74
|
+
"baseline-browser-mapping": "^2.9.4",
|
|
74
75
|
"big.js": "^7.0.1",
|
|
75
76
|
"date-fns": "^4.1.0",
|
|
76
77
|
"deepmerge": "^4.3.1",
|
|
77
78
|
"dequal": "^2.0.3",
|
|
78
79
|
"file-size": "^1.0.0",
|
|
79
80
|
"format-message": "^6.2.4",
|
|
80
|
-
"hash-it": "^
|
|
81
|
+
"hash-it": "^7.0.1",
|
|
81
82
|
"html-entities": "^2.6.0",
|
|
82
83
|
"iban": "^0.0.14",
|
|
83
84
|
"js-cookie": "^3.0.5",
|
|
@@ -106,7 +107,7 @@
|
|
|
106
107
|
"babel-jest": "^30.2.0",
|
|
107
108
|
"babel-plugin-styled-components": "^2.1.4",
|
|
108
109
|
"cherry-pick": "^0.5.0",
|
|
109
|
-
"commit-and-tag-version": "^12.6.
|
|
110
|
+
"commit-and-tag-version": "^12.6.1",
|
|
110
111
|
"cross-env": "^7.0.3",
|
|
111
112
|
"documentation": "^14.0.3",
|
|
112
113
|
"eslint": "^8.57.0",
|
|
@@ -131,17 +132,17 @@
|
|
|
131
132
|
"jscodeshift": "^17.3.0",
|
|
132
133
|
"lint-staged": "^15.5.1",
|
|
133
134
|
"polished": "^4.3.1",
|
|
134
|
-
"prettier": "^3.
|
|
135
|
-
"react": "^19.2.
|
|
136
|
-
"react-dom": "^19.2.
|
|
135
|
+
"prettier": "^3.7.4",
|
|
136
|
+
"react": "^19.2.1",
|
|
137
|
+
"react-dom": "^19.2.1",
|
|
137
138
|
"react-helmet-async": "^2.0.5",
|
|
138
139
|
"react-redux": "^8.1.3",
|
|
139
140
|
"react-router": "^5.0.0",
|
|
140
|
-
"react-test-renderer": "^19.2.
|
|
141
|
+
"react-test-renderer": "^19.2.1",
|
|
141
142
|
"redux": "^4.2.1",
|
|
142
143
|
"redux-mock-store": "^1.5.5",
|
|
143
144
|
"redux-thunk": "^2.4.2",
|
|
144
|
-
"rimraf": "^6.1.
|
|
145
|
+
"rimraf": "^6.1.2",
|
|
145
146
|
"styled-components": "^5.3.11",
|
|
146
147
|
"typescript": "^5.9.3",
|
|
147
148
|
"xhr-mock": "^2.5.1"
|
|
@@ -6,16 +6,27 @@ import xhrMock from "xhr-mock";
|
|
|
6
6
|
|
|
7
7
|
import { useLogin, useLogout } from "../useAuthentication";
|
|
8
8
|
import Href from "../../models/href/Href";
|
|
9
|
+
import { useLocation } from "react-router";
|
|
9
10
|
|
|
10
11
|
const middlewares = [thunk];
|
|
11
12
|
const mockStore = configureMockStore(middlewares);
|
|
12
13
|
|
|
14
|
+
jest.mock("react-router", () => ({
|
|
15
|
+
...jest.requireActual("react-router"), // Keep other methods from react-router as is
|
|
16
|
+
useLocation: jest.fn(), // Mock useLocation
|
|
17
|
+
}));
|
|
18
|
+
|
|
13
19
|
const JSON_TYPE = "application/json";
|
|
14
20
|
|
|
15
21
|
describe("authentication hooks", () => {
|
|
16
22
|
// replace the real XHR object with the mock XHR object before each test
|
|
17
23
|
// eslint-disable-next-line jest/no-hooks
|
|
18
|
-
beforeEach(() =>
|
|
24
|
+
beforeEach(() => {
|
|
25
|
+
useLocation.mockReturnValue({
|
|
26
|
+
state: null,
|
|
27
|
+
});
|
|
28
|
+
xhrMock.setup();
|
|
29
|
+
});
|
|
19
30
|
|
|
20
31
|
// put the real XHR object back and clear the mocks after each test
|
|
21
32
|
// eslint-disable-next-line jest/no-hooks
|
|
@@ -25,6 +36,11 @@ describe("authentication hooks", () => {
|
|
|
25
36
|
expect.assertions(10);
|
|
26
37
|
|
|
27
38
|
xhrMock
|
|
39
|
+
.get(`/BeInformed`, (req, res) => {
|
|
40
|
+
expect(req.header("accept")).toBe(JSON_TYPE);
|
|
41
|
+
expect(req.header("Content-Type")).toBe(JSON_TYPE);
|
|
42
|
+
return res.status(200).body({ data: "ok" });
|
|
43
|
+
})
|
|
28
44
|
.get("/BeInformed/login", (req, res) => {
|
|
29
45
|
expect(req.header("accept")).toBe(JSON_TYPE);
|
|
30
46
|
expect(req.header("Content-Type")).toBe(
|
|
@@ -42,7 +58,13 @@ describe("authentication hooks", () => {
|
|
|
42
58
|
return res.status(200).body({ data: "ok" });
|
|
43
59
|
});
|
|
44
60
|
|
|
45
|
-
const store = mockStore({
|
|
61
|
+
const store = mockStore({
|
|
62
|
+
auth: {},
|
|
63
|
+
modularui: {},
|
|
64
|
+
router: { location: {} },
|
|
65
|
+
i18n: { locale: "en" },
|
|
66
|
+
});
|
|
67
|
+
|
|
46
68
|
/**
|
|
47
69
|
*/
|
|
48
70
|
const wrapper = ({ children }) => (
|
|
@@ -61,6 +83,14 @@ describe("authentication hooks", () => {
|
|
|
61
83
|
|
|
62
84
|
expect(store.getActions()).toStrictEqual([
|
|
63
85
|
{ type: "START_PROGRESS" },
|
|
86
|
+
expect.objectContaining({
|
|
87
|
+
type: "MODULARUI/FETCH",
|
|
88
|
+
payload: expect.objectContaining({
|
|
89
|
+
key: "application(/)(en)",
|
|
90
|
+
}),
|
|
91
|
+
}),
|
|
92
|
+
{ type: "START_PROGRESS" },
|
|
93
|
+
{ type: "FINISH_PROGRESS" },
|
|
64
94
|
{ type: "START_PROGRESS" },
|
|
65
95
|
expect.objectContaining({
|
|
66
96
|
type: "MODULARUI/FETCH",
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
} from "../constants";
|
|
14
14
|
import { IllegalStateException } from "../exceptions";
|
|
15
15
|
import { Authenticate } from "../modularui";
|
|
16
|
+
import { useApplication } from "./useModularUIModel";
|
|
16
17
|
|
|
17
18
|
import type { ResetAuthErrorsAction } from "../redux/types";
|
|
18
19
|
import type { AuthenticationType } from "../models/types";
|
|
@@ -39,7 +40,7 @@ export const useLogin = (): LoginHook => {
|
|
|
39
40
|
|
|
40
41
|
const dispatch = useDispatch();
|
|
41
42
|
|
|
42
|
-
const application =
|
|
43
|
+
const application = useApplication();
|
|
43
44
|
const auth = useSelector((state) => state.auth);
|
|
44
45
|
|
|
45
46
|
const isAuthenticated = application?.isLoggedIn ?? false;
|
|
@@ -3,9 +3,7 @@ import type { IConstraintModel } from "../../types";
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
*/
|
|
6
|
-
class PasswordThreeConsecutiveCharactersNotAllowedConstraint
|
|
7
|
-
implements IConstraintModel
|
|
8
|
-
{
|
|
6
|
+
class PasswordThreeConsecutiveCharactersNotAllowedConstraint implements IConstraintModel {
|
|
9
7
|
_maxSequence: number;
|
|
10
8
|
|
|
11
9
|
/**
|
|
@@ -219,13 +219,15 @@ export default class ListDetailModel extends DetailModel {
|
|
|
219
219
|
const givenAnswersContributions =
|
|
220
220
|
this.contributions.resultSection.givenAnswers;
|
|
221
221
|
|
|
222
|
-
const filteredContributions =
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
222
|
+
const filteredContributions = givenAnswersContributions.children
|
|
223
|
+
? {
|
|
224
|
+
...givenAnswersContributions,
|
|
225
|
+
children: givenAnswersContributions.children.filter((child) => {
|
|
226
|
+
const childKey = Object.keys(child)[0];
|
|
227
|
+
return childKey in givenAnswersData;
|
|
228
|
+
}),
|
|
229
|
+
}
|
|
230
|
+
: givenAnswersContributions;
|
|
229
231
|
|
|
230
232
|
const givenAnswers = createAttribute(
|
|
231
233
|
"givenAnswers",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
const createUUID = (): string => {
|
|
5
5
|
let d = new Date().getTime();
|
|
6
6
|
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
7
|
-
const r = (d + Math.random() * 16) % 16 | 0;
|
|
7
|
+
const r = ((d + Math.random() * 16) % 16) | 0;
|
|
8
8
|
d = Math.floor(d / 16);
|
|
9
9
|
return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
10
10
|
});
|