@lysaab/lysa-pep 1.0.1-0 → 1.0.2-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.
@@ -2,7 +2,7 @@ import React, {
2
2
  FunctionComponent,
3
3
  useRef,
4
4
  useCallback,
5
- useContext
5
+ useContext,
6
6
  } from "react";
7
7
  import { Alternative } from "@lysaab/ui-2/components/input/InputAPI";
8
8
  import {
@@ -11,14 +11,14 @@ import {
11
11
  PrimaryButton,
12
12
  RequiredValidator,
13
13
  TextInput,
14
- Select
14
+ Select,
15
15
  } from "@lysaab/ui-2";
16
16
  import {
17
17
  PepContext,
18
18
  Role,
19
19
  MilitaryRank,
20
20
  PepType,
21
- EntityType
21
+ EntityType,
22
22
  } from "../PepContext";
23
23
  import { CountrySelect } from "../../components/CountrySelect";
24
24
  import { useIntl, IntlShape, FormattedMessage } from "react-intl";
@@ -27,8 +27,9 @@ import {
27
27
  ambassadorMessages,
28
28
  governmentCompanyMessages,
29
29
  intCompanyMessages,
30
- militaryMessages
30
+ militaryMessages,
31
31
  } from "./RoleMessages";
32
+ import { formatPossessive } from "../../utils/Possession";
32
33
 
33
34
  interface Props {
34
35
  next: () => void;
@@ -59,7 +60,7 @@ export const RolePage: FunctionComponent<Props> = ({ next }) => {
59
60
  governmentCompanyRole: undefined,
60
61
  internationalOrganisation: undefined,
61
62
  internationalOrganisationRole: undefined,
62
- militaryRank: undefined
63
+ militaryRank: undefined,
63
64
  });
64
65
  }, [pepContext]);
65
66
 
@@ -67,13 +68,6 @@ export const RolePage: FunctionComponent<Props> = ({ next }) => {
67
68
  return null;
68
69
  }
69
70
 
70
- console.log({
71
- entityType,
72
- pepType: type,
73
- relation:
74
- pepContext.state.relationToPEP || pepContext.state.businessRelation
75
- });
76
-
77
71
  return (
78
72
  <Form onSubmit={() => nextPage()} lysaFormRef={formRef}>
79
73
  <Select
@@ -81,20 +75,26 @@ export const RolePage: FunctionComponent<Props> = ({ next }) => {
81
75
  entityType,
82
76
  pepType: type,
83
77
  relation:
84
- pepContext.state.relationToPEP || pepContext.state.businessRelation,
85
- name: pepContext.state.ownerName
78
+ pepContext.state.type === PepType.COLLEAGUE
79
+ ? pepContext.state.businessRelation
80
+ : pepContext.state.relationToPEP,
81
+ name: pepContext.state.ownerName,
82
+ possessiveName: formatPossessive(
83
+ pepContext.state.ownerName,
84
+ intl.locale
85
+ ),
86
86
  })}
87
87
  placeholder={intl.formatMessage(roleMessages.placeholder)}
88
88
  alternatives={roleAlternatives}
89
89
  value={roleAlternatives.find(
90
- alt => alt.value === pepContext.state.role
90
+ (alt) => alt.value === pepContext.state.role
91
91
  )}
92
- onChange={event => {
92
+ onChange={(event) => {
93
93
  pepContext.setState({ role: event.value as Role });
94
94
  resetRoleFields();
95
95
  }}
96
96
  validators={[
97
- RequiredValidator(intl.formatMessage(roleMessages.required))
97
+ new RequiredValidator(intl.formatMessage(roleMessages.required)),
98
98
  ]}
99
99
  />
100
100
 
@@ -104,20 +104,23 @@ export const RolePage: FunctionComponent<Props> = ({ next }) => {
104
104
  entityType,
105
105
  pepType: type,
106
106
  relation:
107
- pepContext.state.relationToPEP ||
108
- pepContext.state.businessRelation,
109
- name: pepContext.state.ownerName
107
+ pepContext.state.type === PepType.COLLEAGUE
108
+ ? pepContext.state.businessRelation
109
+ : pepContext.state.relationToPEP,
110
+ name: pepContext.state.ownerName,
110
111
  })}
111
- onChange={event =>
112
+ onChange={(event) =>
112
113
  pepContext.setState({
113
114
  ambassadorCountry: event.value
114
115
  ? event.value.toString()
115
- : undefined
116
+ : undefined,
116
117
  })
117
118
  }
118
119
  value={pepContext.state.ambassadorCountry}
119
120
  validators={[
120
- RequiredValidator(intl.formatMessage(ambassadorMessages.required))
121
+ new RequiredValidator(
122
+ intl.formatMessage(ambassadorMessages.required)
123
+ ),
121
124
  ]}
122
125
  />
123
126
  ) : null}
@@ -130,18 +133,19 @@ export const RolePage: FunctionComponent<Props> = ({ next }) => {
130
133
  entityType,
131
134
  pepType: type,
132
135
  relation:
133
- pepContext.state.relationToPEP ||
134
- pepContext.state.businessRelation,
135
- name: pepContext.state.ownerName
136
+ pepContext.state.type === PepType.COLLEAGUE
137
+ ? pepContext.state.businessRelation
138
+ : pepContext.state.relationToPEP,
139
+ name: pepContext.state.ownerName,
136
140
  })}
137
141
  value={pepContext.state.governmentCompany || ""}
138
- onChange={value => {
142
+ onChange={(value) => {
139
143
  pepContext.setState({ governmentCompany: value });
140
144
  }}
141
145
  validators={[
142
- RequiredValidator(
146
+ new RequiredValidator(
143
147
  intl.formatMessage(governmentCompanyMessages.nameRequired)
144
- )
148
+ ),
145
149
  ]}
146
150
  />
147
151
  <TextInput
@@ -149,20 +153,21 @@ export const RolePage: FunctionComponent<Props> = ({ next }) => {
149
153
  entityType,
150
154
  pepType: type,
151
155
  relation:
152
- pepContext.state.relationToPEP ||
153
- pepContext.state.businessRelation,
154
- name: pepContext.state.ownerName
156
+ pepContext.state.type === PepType.COLLEAGUE
157
+ ? pepContext.state.businessRelation
158
+ : pepContext.state.relationToPEP,
159
+ name: pepContext.state.ownerName,
155
160
  })}
156
161
  value={pepContext.state.governmentCompanyRole || ""}
157
- onChange={value => {
162
+ onChange={(value) => {
158
163
  pepContext.setState({
159
- governmentCompanyRole: value
164
+ governmentCompanyRole: value,
160
165
  });
161
166
  }}
162
167
  validators={[
163
- RequiredValidator(
168
+ new RequiredValidator(
164
169
  intl.formatMessage(governmentCompanyMessages.roleRequired)
165
- )
170
+ ),
166
171
  ]}
167
172
  />
168
173
  </React.Fragment>
@@ -177,18 +182,19 @@ export const RolePage: FunctionComponent<Props> = ({ next }) => {
177
182
  entityType,
178
183
  pepType: type,
179
184
  relation:
180
- pepContext.state.relationToPEP ||
181
- pepContext.state.businessRelation,
182
- name: pepContext.state.ownerName
185
+ pepContext.state.type === PepType.COLLEAGUE
186
+ ? pepContext.state.businessRelation
187
+ : pepContext.state.relationToPEP,
188
+ name: pepContext.state.ownerName,
183
189
  })}
184
190
  value={pepContext.state.internationalOrganisation || ""}
185
- onChange={value => {
191
+ onChange={(value) => {
186
192
  pepContext.setState({ internationalOrganisation: value });
187
193
  }}
188
194
  validators={[
189
- RequiredValidator(
195
+ new RequiredValidator(
190
196
  intl.formatMessage(intCompanyMessages.nameRequired)
191
- )
197
+ ),
192
198
  ]}
193
199
  />
194
200
  <TextInput
@@ -196,20 +202,21 @@ export const RolePage: FunctionComponent<Props> = ({ next }) => {
196
202
  entityType,
197
203
  pepType: type,
198
204
  relation:
199
- pepContext.state.relationToPEP ||
200
- pepContext.state.businessRelation,
201
- name: pepContext.state.ownerName
205
+ pepContext.state.type === PepType.COLLEAGUE
206
+ ? pepContext.state.businessRelation
207
+ : pepContext.state.relationToPEP,
208
+ name: pepContext.state.ownerName,
202
209
  })}
203
210
  value={pepContext.state.internationalOrganisationRole || ""}
204
- onChange={value => {
211
+ onChange={(value) => {
205
212
  pepContext.setState({
206
- internationalOrganisationRole: value
213
+ internationalOrganisationRole: value,
207
214
  });
208
215
  }}
209
216
  validators={[
210
- RequiredValidator(
217
+ new RequiredValidator(
211
218
  intl.formatMessage(intCompanyMessages.roleRequired)
212
- )
219
+ ),
213
220
  ]}
214
221
  />
215
222
  </React.Fragment>
@@ -222,20 +229,27 @@ export const RolePage: FunctionComponent<Props> = ({ next }) => {
222
229
  entityType,
223
230
  pepType: type,
224
231
  relation:
225
- pepContext.state.relationToPEP ||
226
- pepContext.state.businessRelation,
227
- name: pepContext.state.ownerName
232
+ pepContext.state.type === PepType.COLLEAGUE
233
+ ? pepContext.state.businessRelation
234
+ : pepContext.state.relationToPEP,
235
+ name: pepContext.state.ownerName,
236
+ possessiveName: formatPossessive(
237
+ pepContext.state.ownerName,
238
+ intl.locale
239
+ ),
228
240
  })}
229
241
  placeholder={intl.formatMessage(militaryMessages.placeholder)}
230
242
  alternatives={militaryAlternatives}
231
243
  value={militaryAlternatives.find(
232
- alt => alt.value === pepContext.state.militaryRank
244
+ (alt) => alt.value === pepContext.state.militaryRank
233
245
  )}
234
- onChange={event => {
246
+ onChange={(event) => {
235
247
  pepContext.setState({ militaryRank: event.value as MilitaryRank });
236
248
  }}
237
249
  validators={[
238
- RequiredValidator(intl.formatMessage(militaryMessages.required))
250
+ new RequiredValidator(
251
+ intl.formatMessage(militaryMessages.required)
252
+ ),
239
253
  ]}
240
254
  />
241
255
  ) : null}
@@ -255,58 +269,58 @@ export function getRoleAlts(intl: IntlShape): Alternative<Role>[] {
255
269
  return [
256
270
  {
257
271
  text: intl.formatMessage(roleMessages[Role.HEAD_OF_GOVERNMENT]),
258
- value: Role.HEAD_OF_GOVERNMENT
272
+ value: Role.HEAD_OF_GOVERNMENT,
259
273
  },
260
274
  {
261
275
  text: intl.formatMessage(roleMessages[Role.MINISTER]),
262
- value: Role.MINISTER
276
+ value: Role.MINISTER,
263
277
  },
264
278
  {
265
279
  text: intl.formatMessage(roleMessages[Role.PARLIMENT_MEMBER]),
266
- value: Role.PARLIMENT_MEMBER
280
+ value: Role.PARLIMENT_MEMBER,
267
281
  },
268
282
  {
269
283
  text: intl.formatMessage(roleMessages[Role.CENTRAL_BANK_MEMBER]),
270
- value: Role.CENTRAL_BANK_MEMBER
284
+ value: Role.CENTRAL_BANK_MEMBER,
271
285
  },
272
286
  {
273
287
  text: intl.formatMessage(roleMessages[Role.BOARD_MEMBER_POLITICAL_PARTY]),
274
- value: Role.BOARD_MEMBER_POLITICAL_PARTY
288
+ value: Role.BOARD_MEMBER_POLITICAL_PARTY,
275
289
  },
276
290
  {
277
291
  text: intl.formatMessage(roleMessages[Role.JUDGE_SUPREME_COURT]),
278
- value: Role.JUDGE_SUPREME_COURT
292
+ value: Role.JUDGE_SUPREME_COURT,
279
293
  },
280
294
  {
281
295
  text: intl.formatMessage(roleMessages[Role.JUDGE_OTHER_HIGH_COURT]),
282
- value: Role.JUDGE_OTHER_HIGH_COURT
296
+ value: Role.JUDGE_OTHER_HIGH_COURT,
283
297
  },
284
298
  {
285
299
  text: intl.formatMessage(roleMessages[Role.REVISION_INSTITUTE]),
286
- value: Role.REVISION_INSTITUTE
300
+ value: Role.REVISION_INSTITUTE,
287
301
  },
288
302
  {
289
303
  text: intl.formatMessage(roleMessages[Role.AMBASSADOR]),
290
- value: Role.AMBASSADOR
304
+ value: Role.AMBASSADOR,
291
305
  },
292
306
  {
293
307
  text: intl.formatMessage(roleMessages[Role.MILITARY_OFFICER]),
294
- value: Role.MILITARY_OFFICER
308
+ value: Role.MILITARY_OFFICER,
295
309
  },
296
310
  {
297
311
  text: intl.formatMessage(roleMessages[Role.GOVERNMENT_COMPANY]),
298
- value: Role.GOVERNMENT_COMPANY
312
+ value: Role.GOVERNMENT_COMPANY,
299
313
  },
300
314
  {
301
315
  text: intl.formatMessage(roleMessages[Role.EU_HIGH_RANKING_POSITION]),
302
- value: Role.EU_HIGH_RANKING_POSITION
316
+ value: Role.EU_HIGH_RANKING_POSITION,
303
317
  },
304
318
  {
305
319
  text: intl.formatMessage(
306
320
  roleMessages[Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP]
307
321
  ),
308
- value: Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP
309
- }
322
+ value: Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP,
323
+ },
310
324
  ];
311
325
  }
312
326
 
@@ -314,29 +328,29 @@ export function getMilitaryAlts(intl: IntlShape): Alternative<MilitaryRank>[] {
314
328
  return [
315
329
  {
316
330
  text: intl.formatMessage(militaryMessages[MilitaryRank.GENERAL]),
317
- value: MilitaryRank.GENERAL
331
+ value: MilitaryRank.GENERAL,
318
332
  },
319
333
  {
320
334
  text: intl.formatMessage(
321
335
  militaryMessages[MilitaryRank.LIEUTENANT_GENERAL]
322
336
  ),
323
- value: MilitaryRank.LIEUTENANT_GENERAL
337
+ value: MilitaryRank.LIEUTENANT_GENERAL,
324
338
  },
325
339
  {
326
340
  text: intl.formatMessage(militaryMessages[MilitaryRank.MAJOR_GENERAL]),
327
- value: MilitaryRank.MAJOR_GENERAL
341
+ value: MilitaryRank.MAJOR_GENERAL,
328
342
  },
329
343
  {
330
344
  text: intl.formatMessage(militaryMessages[MilitaryRank.ADMIRAL]),
331
- value: MilitaryRank.ADMIRAL
345
+ value: MilitaryRank.ADMIRAL,
332
346
  },
333
347
  {
334
348
  text: intl.formatMessage(militaryMessages[MilitaryRank.VICE_ADMIRAL]),
335
- value: MilitaryRank.VICE_ADMIRAL
349
+ value: MilitaryRank.VICE_ADMIRAL,
336
350
  },
337
351
  {
338
352
  text: intl.formatMessage(militaryMessages[MilitaryRank.REAR_ADMIRAL]),
339
- value: MilitaryRank.REAR_ADMIRAL
340
- }
353
+ value: MilitaryRank.REAR_ADMIRAL,
354
+ },
341
355
  ];
342
356
  }
@@ -5,7 +5,103 @@ export const isOngoingMessages = defineMessages({
5
5
  header: {
6
6
  id: "pep.status.isongoing.header",
7
7
  description: "Is ongoing header",
8
- defaultMessage: "Är befattningen pågående eller avslutad?",
8
+ defaultMessage: `{
9
+ entityType, select,
10
+ PERSON {
11
+ {
12
+ pepType, select,
13
+ ME {
14
+ Är din befattning pågående eller avslutad?
15
+ }
16
+ RELATIVE {
17
+ {
18
+ relation, select,
19
+ MARRIED_PARTNER {
20
+ Är din make/maka/registrerade partners befattning pågående eller avslutad?
21
+ }
22
+ COLIVING_PARTNER {
23
+ Är din sambos befattning pågående eller avslutad?
24
+ }
25
+ CHILD {
26
+ Är din förälders befattning pågående eller avslutad?
27
+ }
28
+ PARENT {
29
+ Är ditt barns befattning pågående eller avslutad?
30
+ }
31
+ CHILD_MARRIED_PARTNER {
32
+ Är din make/makas förälders befattning pågående eller avslutad?
33
+ }
34
+ CHILD_COLIVING_PARTNER {
35
+ Är din sambos förälders befattning pågående eller avslutad?
36
+ }
37
+ }
38
+ }
39
+ COLLEAGUE {
40
+ {
41
+ relation, select,
42
+ CO_OWNERSHIP {
43
+ Är befattningen för personen i politisk utsatt ställning, som är verklig huvudman till ett företag tillsammans med dig, pågående eller avslutad?
44
+ }
45
+ CLOSE_CONNECTION {
46
+ Är befattningen för personen i politisk utsatt ställning, som du har eller har haft nära förbindelse med, pågående eller avslutad?
47
+ }
48
+ COMPANY_FOR_PEP {
49
+ Är befattningen för personen i politisk utsatt ställning, som du har en relation till, pågående eller avslutad?
50
+ }
51
+ }
52
+ }
53
+ other {}
54
+ }
55
+ }
56
+ CORPORATION {
57
+ {
58
+ pepType, select,
59
+ ME {
60
+ Är {possessiveName} befattning pågående eller avslutad?
61
+
62
+ }
63
+ RELATIVE {
64
+ {
65
+ relation, select,
66
+ MARRIED_PARTNER {
67
+ Är {possessiveName} make/maka/registrerade partners befattning pågående eller avslutad?
68
+ }
69
+ COLIVING_PARTNER {
70
+ Är {possessiveName} sambos befattning pågående eller avslutad?
71
+ }
72
+ CHILD {
73
+ Är {possessiveName} förälders befattning pågående eller avslutad?
74
+ }
75
+ PARENT {
76
+ Är {possessiveName} barns befattning pågående eller avslutad?
77
+ }
78
+ CHILD_MARRIED_PARTNER {
79
+ Är {possessiveName} make/makas förälders befattning pågående eller avslutad?
80
+ }
81
+ CHILD_COLIVING_PARTNER {
82
+ Är {possessiveName} sambos förälders befattning pågående eller avslutad?
83
+ }
84
+ }
85
+ }
86
+ COLLEAGUE {
87
+ {
88
+ relation, select,
89
+ CO_OWNERSHIP {
90
+ Är befattningen för personen i politisk utsatt ställning, som är verklig huvudman till ett företag tillsammans med {name}, pågående eller avslutad?
91
+ }
92
+ CLOSE_CONNECTION {
93
+ Är befattningen för personen i politisk utsatt ställning, som {name} har eller har haft nära förbindelse med, pågående eller avslutad?
94
+ }
95
+ COMPANY_FOR_PEP {
96
+ Är befattningen för personen i politisk utsatt ställning, som {name} har en relation till, pågående eller avslutad?
97
+ }
98
+ }
99
+ }
100
+ other {}
101
+ }
102
+ }
103
+ other {}
104
+ }`,
9
105
  },
10
106
  required: {
11
107
  id: "pep.status.isongoing.required",
@@ -31,7 +127,7 @@ export const isLocalCountryMessages = defineMessages({
31
127
  header: {
32
128
  id: "pep.status.localcountry.sweden.header",
33
129
  description: "Is local country header",
34
- defaultMessage: "I vilket land är befattningen?",
130
+ defaultMessage: "Är befattningen i Sverige?",
35
131
  },
36
132
  required: {
37
133
  id: "pep.status.localcountry.required",
@@ -44,12 +140,108 @@ export const countrySelectionMessages = defineMessages({
44
140
  header: {
45
141
  id: "pep.status.countryselecton.header",
46
142
  description: "Country selection header",
47
- defaultMessage: "Välj i vilket land befattningen är",
143
+ defaultMessage: `{
144
+ entityType, select,
145
+ PERSON {
146
+ {
147
+ pepType, select,
148
+ ME {
149
+ I vilket land är/var din befattning?
150
+ }
151
+ RELATIVE {
152
+ {
153
+ relation, select,
154
+ MARRIED_PARTNER {
155
+ I vilket land är/var din make/maka/registrerade partners befattning?
156
+ }
157
+ COLIVING_PARTNER {
158
+ I vilket land är/var din sambos befattning?
159
+ }
160
+ CHILD {
161
+ I vilket land är/var din förälders befattning?
162
+ }
163
+ PARENT {
164
+ I vilket land är/var ditt barns befattning?
165
+ }
166
+ CHILD_MARRIED_PARTNER {
167
+ I vilket land är/var din make/makas förälders befattning?
168
+ }
169
+ CHILD_COLIVING_PARTNER {
170
+ I vilket land är/var din sambos förälders befattning?
171
+ }
172
+ }
173
+ }
174
+ COLLEAGUE {
175
+ {
176
+ relation, select,
177
+ CO_OWNERSHIP {
178
+ I vilket land har/hade personen som har bestämmande rätt över företaget som du har en relation till sin befattning?
179
+ }
180
+ CLOSE_CONNECTION {
181
+ I vilket land har/hade personen som du har eller har haft nära förbindelse med sin befattning?
182
+ }
183
+ COMPANY_FOR_PEP {
184
+ I vilket land har/hade personen i politisk utsatt ställning som du har en relation till sin befattning?
185
+ }
186
+ }
187
+ }
188
+ other {}
189
+ }
190
+ }
191
+ CORPORATION {
192
+ {
193
+ pepType, select,
194
+ ME {
195
+ I vilket land är/var {possessiveName} befattning?
196
+
197
+ }
198
+ RELATIVE {
199
+ {
200
+ relation, select,
201
+ MARRIED_PARTNER {
202
+ I vilket land är/var {possessiveName} make/maka/registrerade partners befattning?
203
+ }
204
+ COLIVING_PARTNER {
205
+ I vilket land är/var {possessiveName} sambos befattning?
206
+ }
207
+ CHILD {
208
+ I vilket land är/var {possessiveName} förälders befattning?
209
+ }
210
+ PARENT {
211
+ I vilket land är/var {possessiveName} barns befattning?
212
+ }
213
+ CHILD_MARRIED_PARTNER {
214
+ I vilket land är/var {possessiveName} make/makas förälders befattning?
215
+ }
216
+ CHILD_COLIVING_PARTNER {
217
+ I vilket land är/var {possessiveName} sambos förälders befattning?
218
+ }
219
+ }
220
+ }
221
+ COLLEAGUE {
222
+ {
223
+ relation, select,
224
+ CO_OWNERSHIP {
225
+ I vilket land har/hade personen som har bestämmande rätt över företaget som {name} har en relation till sin befattning?
226
+ }
227
+ CLOSE_CONNECTION {
228
+ I vilket land har/hade personen som {name} har eller har haft nära förbindelse med sin befattning?
229
+ }
230
+ COMPANY_FOR_PEP {
231
+ I vilket land har/hade personen i politisk utsatt ställning som {name} har en relation till sin befattning?
232
+ }
233
+ }
234
+ }
235
+ other {}
236
+ }
237
+ }
238
+ other {}
239
+ }`,
48
240
  },
49
241
  required: {
50
242
  id: "pep.status.countryselecton.required",
51
243
  description: "Country selection required error",
52
- defaultMessage: "Du måste välja land",
244
+ defaultMessage: "Du måste välja ett land",
53
245
  },
54
246
  });
55
247