@lysaab/lysa-pep 1.0.0-1 → 1.0.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/lib/Exports.d.ts +8 -7
- package/lib/Exports.js +8 -7
- package/lib/components/CountrySelect.d.ts +22 -15
- package/lib/components/CountrySelect.js +21 -30
- package/lib/components/PepAnswers.d.ts +8 -8
- package/lib/components/PepAnswers.js +39 -131
- package/lib/components/PepAnswers.scss +7 -7
- package/lib/model/Countries.d.ts +4 -4
- package/lib/model/Countries.js +1002 -1002
- package/lib/model/PepModel.d.ts +7 -7
- package/lib/model/PepModel.js +40 -40
- package/lib/model/PepTexts.d.ts +380 -322
- package/lib/model/PepTexts.js +552 -467
- package/lib/pages/PepContext.d.ts +80 -80
- package/lib/pages/PepContext.js +88 -88
- package/lib/pages/PepIsPepPage.d.ts +15 -6
- package/lib/pages/PepIsPepPage.js +59 -57
- package/lib/pages/PepRelationPage.d.ts +6 -6
- package/lib/pages/PepRelationPage.js +79 -83
- package/lib/pages/PepRolePage.d.ts +10 -9
- package/lib/pages/PepRolePage.js +127 -127
- package/lib/pages/PepStatusPage.d.ts +6 -6
- package/lib/pages/PepStatusPage.js +58 -57
- package/package.json +53 -56
- package/src/Exports.ts +13 -12
- package/src/components/CountrySelect.tsx +43 -47
- package/src/components/PepAnswers.scss +7 -7
- package/src/components/PepAnswers.tsx +120 -252
- package/src/demo/Done.tsx +20 -16
- package/src/demo/Pep.tsx +106 -112
- package/src/model/PepModel.ts +52 -52
- package/src/model/PepTexts.ts +607 -0
- package/src/pages/PepContext.tsx +144 -144
- package/src/pages/PepIsPepPage.tsx +107 -0
- package/src/pages/PepRelationPage.tsx +188 -0
- package/src/pages/PepRolePage.tsx +272 -0
- package/src/pages/PepStatusPage.tsx +157 -0
- package/.vscode/settings.json +0 -4
- package/lib/pages/IsPep/IsPepMessages.d.ts +0 -32
- package/lib/pages/IsPep/IsPepMessages.js +0 -74
- package/lib/pages/IsPep/IsPepPage.d.ts +0 -14
- package/lib/pages/IsPep/IsPepPage.js +0 -39
- package/lib/pages/RelationPage/RelationMessages.d.ts +0 -105
- package/lib/pages/RelationPage/RelationMessages.js +0 -282
- package/lib/pages/RelationPage/RelationPage.d.ts +0 -6
- package/lib/pages/RelationPage/RelationPage.js +0 -142
- package/lib/pages/RolePage/RoleMessages.d.ts +0 -185
- package/lib/pages/RolePage/RoleMessages.js +0 -381
- package/lib/pages/RolePage/RolePage.d.ts +0 -11
- package/lib/pages/RolePage/RolePage.js +0 -214
- package/lib/pages/StatusPage/StatusMessages.d.ts +0 -72
- package/lib/pages/StatusPage/StatusMessages.js +0 -74
- package/lib/pages/StatusPage/StatusPage.d.ts +0 -6
- package/lib/pages/StatusPage/StatusPage.js +0 -75
- package/src/pages/IsPep/IsPepMessages.ts +0 -75
- package/src/pages/IsPep/IsPepPage.tsx +0 -94
- package/src/pages/RelationPage/RelationMessages.ts +0 -287
- package/src/pages/RelationPage/RelationPage.tsx +0 -269
- package/src/pages/RolePage/RoleMessages.ts +0 -389
- package/src/pages/RolePage/RolePage.tsx +0 -342
- package/src/pages/StatusPage/StatusMessages.ts +0 -80
- package/src/pages/StatusPage/StatusPage.tsx +0 -172
package/src/demo/Pep.tsx
CHANGED
|
@@ -1,112 +1,106 @@
|
|
|
1
|
-
import React, { useState, useContext, useEffect, useRef } from "react";
|
|
2
|
-
import { Story } from "@lysaab/ui-2";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
</div>
|
|
108
|
-
</fieldset>
|
|
109
|
-
</IntlProvider>
|
|
110
|
-
</div>
|
|
111
|
-
);
|
|
112
|
-
}
|
|
1
|
+
import React, { useState, useContext, useEffect, useRef } from "react";
|
|
2
|
+
import { Story } from "@lysaab/ui-2";
|
|
3
|
+
import { PepIsPepPage } from "../pages/PepIsPepPage";
|
|
4
|
+
import { PepStatusPage } from "../pages/PepStatusPage";
|
|
5
|
+
import { PepRolePage } from "../pages/PepRolePage";
|
|
6
|
+
import { PepContext, PepType, EntityType } from "../pages/PepContext";
|
|
7
|
+
import { Done } from "./Done";
|
|
8
|
+
import { PepRelationPage } from "../pages/PepRelationPage";
|
|
9
|
+
|
|
10
|
+
export function Pep() {
|
|
11
|
+
const [page, setPage] = useState(0);
|
|
12
|
+
const pepContext = useContext(PepContext);
|
|
13
|
+
const type = pepContext.state.type;
|
|
14
|
+
const loaded = useRef(false);
|
|
15
|
+
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if(!loaded.current) {
|
|
18
|
+
pepContext.setState({ ownerName: "Sean Banan", tin: '191212121212', legalEntityType: EntityType.PERSON });
|
|
19
|
+
loaded.current = true;
|
|
20
|
+
}
|
|
21
|
+
}, [loaded, pepContext]);
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<div style={{ maxWidth: "1000px", margin: "0 auto" }}>
|
|
25
|
+
<Story
|
|
26
|
+
header="PEP Lib"
|
|
27
|
+
showBack={page > 0}
|
|
28
|
+
showClose={false}
|
|
29
|
+
onBack={() => {
|
|
30
|
+
if (page === 4 && type === PepType.NOT_PEP) {
|
|
31
|
+
setPage(0);
|
|
32
|
+
} else if (page === 2 && type === PepType.ME) {
|
|
33
|
+
setPage(0);
|
|
34
|
+
} else {
|
|
35
|
+
setPage(page - 1);
|
|
36
|
+
}
|
|
37
|
+
}}
|
|
38
|
+
transitionKey={page.toString()}
|
|
39
|
+
onExit={() => {}}
|
|
40
|
+
>
|
|
41
|
+
{page === 0 && (
|
|
42
|
+
<PepIsPepPage
|
|
43
|
+
next={() => {
|
|
44
|
+
if (type === PepType.ME) {
|
|
45
|
+
setPage(2);
|
|
46
|
+
} else if (type === PepType.NOT_PEP) {
|
|
47
|
+
setPage(4);
|
|
48
|
+
} else {
|
|
49
|
+
setPage(1);
|
|
50
|
+
}
|
|
51
|
+
}}
|
|
52
|
+
/>
|
|
53
|
+
)}
|
|
54
|
+
{page === 1 && <PepRelationPage next={() => setPage(2)} />}
|
|
55
|
+
{page === 2 && <PepStatusPage next={() => setPage(3)} />}
|
|
56
|
+
{page === 3 && <PepRolePage next={() => setPage(4)} />}
|
|
57
|
+
{page === 4 && <Done />}
|
|
58
|
+
</Story>
|
|
59
|
+
<hr />
|
|
60
|
+
<fieldset>
|
|
61
|
+
<legend>Konfig</legend>
|
|
62
|
+
<div>
|
|
63
|
+
<label>
|
|
64
|
+
Entitet
|
|
65
|
+
|
|
66
|
+
<select
|
|
67
|
+
value={pepContext.state.legalEntityType || EntityType.PERSON}
|
|
68
|
+
onChange={event => {
|
|
69
|
+
pepContext.setState({
|
|
70
|
+
legalEntityType: event.currentTarget.value as EntityType,
|
|
71
|
+
});
|
|
72
|
+
}}
|
|
73
|
+
>
|
|
74
|
+
<option value={EntityType.PERSON}>Person</option>
|
|
75
|
+
<option value={EntityType.CORPORATION}>Företag</option>
|
|
76
|
+
</select>
|
|
77
|
+
</label>
|
|
78
|
+
</div>
|
|
79
|
+
<div>
|
|
80
|
+
<label>
|
|
81
|
+
Namnet på den verkliga huvudmannen
|
|
82
|
+
<input
|
|
83
|
+
type="text"
|
|
84
|
+
value={pepContext.state.ownerName || ''}
|
|
85
|
+
onChange={event =>
|
|
86
|
+
pepContext.setState({ ownerName: event.currentTarget.value })
|
|
87
|
+
}
|
|
88
|
+
/>
|
|
89
|
+
</label>
|
|
90
|
+
</div>
|
|
91
|
+
<div>
|
|
92
|
+
<label>
|
|
93
|
+
Personnummer på huvudmannen
|
|
94
|
+
<input
|
|
95
|
+
type="text"
|
|
96
|
+
value={pepContext.state.tin || ''}
|
|
97
|
+
onChange={event =>
|
|
98
|
+
pepContext.setState({ tin: event.currentTarget.value })
|
|
99
|
+
}
|
|
100
|
+
/>
|
|
101
|
+
</label>
|
|
102
|
+
</div>
|
|
103
|
+
</fieldset>
|
|
104
|
+
</div>
|
|
105
|
+
);
|
|
106
|
+
}
|
package/src/model/PepModel.ts
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { PepState, PepType, EntityType, PepStatus } from "../pages/PepContext";
|
|
2
|
-
import { DateTime } from "luxon";
|
|
3
|
-
|
|
4
|
-
export interface PepRequest
|
|
5
|
-
extends Omit<PepState, "isSweden" | "isOngoing" | "ended" | "birthdayOfPEP"> {
|
|
6
|
-
ended?: string;
|
|
7
|
-
birthdayOfPEP?: string;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Do some minor preprocessing before we are ready to send everything to the
|
|
12
|
-
* server
|
|
13
|
-
*/
|
|
14
|
-
export function stateToRequest(pepData: PepState): PepRequest {
|
|
15
|
-
const data = { ...pepData };
|
|
16
|
-
delete data.isSweden;
|
|
17
|
-
delete data.isOngoing;
|
|
18
|
-
delete data.ownerName;
|
|
19
|
-
if (data.legalEntityType === EntityType.PERSON) {
|
|
20
|
-
delete data.tin;
|
|
21
|
-
}
|
|
22
|
-
return {
|
|
23
|
-
...data,
|
|
24
|
-
country: data.type !== PepType.NOT_PEP ? data.country || "SE" : undefined,
|
|
25
|
-
ended: data.ended
|
|
26
|
-
? DateTime.fromJSDate(data.ended).toFormat("yyyy-MM")
|
|
27
|
-
: undefined,
|
|
28
|
-
birthdayOfPEP: data.birthdayOfPEP
|
|
29
|
-
? DateTime.fromJSDate(data.birthdayOfPEP).toFormat("yyyy-MM-dd")
|
|
30
|
-
: undefined
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export function requestToState({
|
|
35
|
-
ended,
|
|
36
|
-
birthdayOfPEP,
|
|
37
|
-
...serverData
|
|
38
|
-
}: PepRequest): PepState {
|
|
39
|
-
const state: PepState = { ...serverData };
|
|
40
|
-
if (ended) {
|
|
41
|
-
state.ended = DateTime.fromFormat(ended, "yyyy-MM").toJSDate();
|
|
42
|
-
}
|
|
43
|
-
if (birthdayOfPEP) {
|
|
44
|
-
state.birthdayOfPEP = DateTime.fromFormat(
|
|
45
|
-
birthdayOfPEP,
|
|
46
|
-
"yyyy-MM-dd"
|
|
47
|
-
).toJSDate();
|
|
48
|
-
}
|
|
49
|
-
state.isSweden = state.country === "SE" ? "sweden" : "other";
|
|
50
|
-
state.isOngoing = state.ended ? PepStatus.ENDED : PepStatus.ONGOING;
|
|
51
|
-
return state;
|
|
52
|
-
}
|
|
1
|
+
import { PepState, PepType, EntityType, PepStatus } from "../pages/PepContext";
|
|
2
|
+
import { DateTime } from "luxon";
|
|
3
|
+
|
|
4
|
+
export interface PepRequest
|
|
5
|
+
extends Omit<PepState, "isSweden" | "isOngoing" | "ended" | "birthdayOfPEP"> {
|
|
6
|
+
ended?: string;
|
|
7
|
+
birthdayOfPEP?: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Do some minor preprocessing before we are ready to send everything to the
|
|
12
|
+
* server
|
|
13
|
+
*/
|
|
14
|
+
export function stateToRequest(pepData: PepState): PepRequest {
|
|
15
|
+
const data = { ...pepData };
|
|
16
|
+
delete data.isSweden;
|
|
17
|
+
delete data.isOngoing;
|
|
18
|
+
delete data.ownerName;
|
|
19
|
+
if (data.legalEntityType === EntityType.PERSON) {
|
|
20
|
+
delete data.tin;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
...data,
|
|
24
|
+
country: data.type !== PepType.NOT_PEP ? data.country || "SE" : undefined,
|
|
25
|
+
ended: data.ended
|
|
26
|
+
? DateTime.fromJSDate(data.ended).toFormat("yyyy-MM")
|
|
27
|
+
: undefined,
|
|
28
|
+
birthdayOfPEP: data.birthdayOfPEP
|
|
29
|
+
? DateTime.fromJSDate(data.birthdayOfPEP).toFormat("yyyy-MM-dd")
|
|
30
|
+
: undefined
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function requestToState({
|
|
35
|
+
ended,
|
|
36
|
+
birthdayOfPEP,
|
|
37
|
+
...serverData
|
|
38
|
+
}: PepRequest): PepState {
|
|
39
|
+
const state: PepState = { ...serverData };
|
|
40
|
+
if (ended) {
|
|
41
|
+
state.ended = DateTime.fromFormat(ended, "yyyy-MM").toJSDate();
|
|
42
|
+
}
|
|
43
|
+
if (birthdayOfPEP) {
|
|
44
|
+
state.birthdayOfPEP = DateTime.fromFormat(
|
|
45
|
+
birthdayOfPEP,
|
|
46
|
+
"yyyy-MM-dd"
|
|
47
|
+
).toJSDate();
|
|
48
|
+
}
|
|
49
|
+
state.isSweden = state.country === "SE" ? "sweden" : "other";
|
|
50
|
+
state.isOngoing = state.ended ? PepStatus.ENDED : PepStatus.ONGOING;
|
|
51
|
+
return state;
|
|
52
|
+
}
|