@lysaab/lysa-pep 1.0.3-0 → 1.0.4-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.
Files changed (59) hide show
  1. package/.vscode/settings.json +4 -0
  2. package/lib/Exports.d.ts +7 -7
  3. package/lib/Exports.js +7 -7
  4. package/lib/components/CountrySelect.d.ts +15 -15
  5. package/lib/components/CountrySelect.js +30 -30
  6. package/lib/components/PepAnswers.d.ts +8 -8
  7. package/lib/components/PepAnswers.js +131 -131
  8. package/lib/components/PepAnswers.scss +7 -7
  9. package/lib/model/Countries.d.ts +4 -4
  10. package/lib/model/Countries.js +1002 -1002
  11. package/lib/model/PepModel.d.ts +7 -7
  12. package/lib/model/PepModel.js +40 -40
  13. package/lib/model/PepTexts.d.ts +322 -380
  14. package/lib/model/PepTexts.js +467 -552
  15. package/lib/pages/IsPep/IsPepMessages.d.ts +32 -32
  16. package/lib/pages/IsPep/IsPepMessages.js +66 -66
  17. package/lib/pages/IsPep/IsPepPage.d.ts +14 -14
  18. package/lib/pages/IsPep/IsPepPage.js +60 -59
  19. package/lib/pages/PepContext.d.ts +80 -80
  20. package/lib/pages/PepContext.js +88 -88
  21. package/lib/pages/PepIsPepPage.d.ts +6 -15
  22. package/lib/pages/PepIsPepPage.js +57 -59
  23. package/lib/pages/PepRelationPage.d.ts +6 -6
  24. package/lib/pages/PepRelationPage.js +83 -79
  25. package/lib/pages/PepRolePage.d.ts +9 -10
  26. package/lib/pages/PepRolePage.js +127 -127
  27. package/lib/pages/PepStatusPage.d.ts +6 -6
  28. package/lib/pages/PepStatusPage.js +57 -58
  29. package/lib/pages/RelationPage/RelationMessages.d.ts +105 -105
  30. package/lib/pages/RelationPage/RelationMessages.js +283 -283
  31. package/lib/pages/RelationPage/RelationPage.d.ts +6 -6
  32. package/lib/pages/RelationPage/RelationPage.js +154 -153
  33. package/lib/pages/RolePage/RoleMessages.d.ts +185 -185
  34. package/lib/pages/RolePage/RoleMessages.js +385 -385
  35. package/lib/pages/RolePage/RolePage.d.ts +11 -11
  36. package/lib/pages/RolePage/RolePage.js +223 -220
  37. package/lib/pages/StatusPage/StatusMessages.d.ts +72 -72
  38. package/lib/pages/StatusPage/StatusMessages.js +266 -266
  39. package/lib/pages/StatusPage/StatusPage.d.ts +6 -6
  40. package/lib/pages/StatusPage/StatusPage.js +98 -95
  41. package/lib/utils/Possession.d.ts +1 -1
  42. package/lib/utils/Possession.js +18 -18
  43. package/package.json +57 -57
  44. package/src/Exports.ts +12 -12
  45. package/src/components/CountrySelect.tsx +47 -47
  46. package/src/components/PepAnswers.scss +7 -7
  47. package/src/components/PepAnswers.tsx +252 -252
  48. package/src/demo/Done.tsx +16 -16
  49. package/src/demo/Pep.tsx +112 -112
  50. package/src/model/PepModel.ts +52 -52
  51. package/src/pages/IsPep/IsPepMessages.ts +67 -67
  52. package/src/pages/IsPep/IsPepPage.tsx +118 -115
  53. package/src/pages/PepContext.tsx +144 -144
  54. package/src/pages/RelationPage/RelationMessages.ts +288 -288
  55. package/src/pages/RelationPage/RelationPage.tsx +304 -299
  56. package/src/pages/RolePage/RoleMessages.ts +393 -393
  57. package/src/pages/RolePage/RolePage.tsx +361 -356
  58. package/src/pages/StatusPage/StatusMessages.ts +272 -272
  59. package/src/pages/StatusPage/StatusPage.tsx +213 -207
@@ -1,356 +1,361 @@
1
- import React, {
2
- FunctionComponent,
3
- useRef,
4
- useCallback,
5
- useContext,
6
- } from "react";
7
- import { Alternative } from "@lysaab/ui-2/components/input/InputAPI";
8
- import {
9
- LysaFormRef,
10
- Form,
11
- PrimaryButton,
12
- RequiredValidator,
13
- TextInput,
14
- Select,
15
- } from "@lysaab/ui-2";
16
- import {
17
- PepContext,
18
- Role,
19
- MilitaryRank,
20
- PepType,
21
- EntityType,
22
- } from "../PepContext";
23
- import { CountrySelect } from "../../components/CountrySelect";
24
- import { useIntl, IntlShape, FormattedMessage } from "react-intl";
25
- import {
26
- roleMessages,
27
- ambassadorMessages,
28
- governmentCompanyMessages,
29
- intCompanyMessages,
30
- militaryMessages,
31
- } from "./RoleMessages";
32
- import { formatPossessive } from "../../utils/Possession";
33
-
34
- interface Props {
35
- next: () => void;
36
- }
37
-
38
- export const RolePage: FunctionComponent<Props> = ({ next }) => {
39
- const pepContext = useContext(PepContext);
40
- const formRef = useRef<LysaFormRef>();
41
- const intl = useIntl();
42
- const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
43
- const type = pepContext.state.type;
44
-
45
- const roleAlternatives: Alternative<Role>[] = getRoleAlts(intl);
46
- const militaryAlternatives: Alternative<MilitaryRank>[] = getMilitaryAlts(
47
- intl
48
- );
49
-
50
- const nextPage = useCallback(() => {
51
- if (formRef.current && formRef.current.isValid) {
52
- next();
53
- }
54
- }, [formRef, next]);
55
-
56
- const resetRoleFields = useCallback(() => {
57
- pepContext.setState({
58
- ambassadorCountry: undefined,
59
- governmentCompany: undefined,
60
- governmentCompanyRole: undefined,
61
- internationalOrganisation: undefined,
62
- internationalOrganisationRole: undefined,
63
- militaryRank: undefined,
64
- });
65
- }, [pepContext]);
66
-
67
- if (!type || type === PepType.NOT_PEP) {
68
- return null;
69
- }
70
-
71
- return (
72
- <Form onSubmit={() => nextPage()} lysaFormRef={formRef}>
73
- <Select
74
- label={intl.formatMessage(roleMessages.header, {
75
- entityType,
76
- pepType: type,
77
- relation:
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
- })}
87
- placeholder={intl.formatMessage(roleMessages.placeholder)}
88
- alternatives={roleAlternatives}
89
- value={roleAlternatives.find(
90
- (alt) => alt.value === pepContext.state.role
91
- )}
92
- onChange={(event) => {
93
- pepContext.setState({ role: event.value as Role });
94
- resetRoleFields();
95
- }}
96
- validators={[
97
- new RequiredValidator(intl.formatMessage(roleMessages.required)),
98
- ]}
99
- />
100
-
101
- {pepContext.state.role && pepContext.state.role === Role.AMBASSADOR ? (
102
- <CountrySelect
103
- label={intl.formatMessage(ambassadorMessages.header, {
104
- entityType,
105
- pepType: type,
106
- relation:
107
- pepContext.state.type === PepType.COLLEAGUE
108
- ? pepContext.state.businessRelation
109
- : pepContext.state.relationToPEP,
110
- name: pepContext.state.ownerName,
111
- })}
112
- onChange={(event) =>
113
- pepContext.setState({
114
- ambassadorCountry: event.value
115
- ? event.value.toString()
116
- : undefined,
117
- })
118
- }
119
- value={pepContext.state.ambassadorCountry}
120
- validators={[
121
- new RequiredValidator(
122
- intl.formatMessage(ambassadorMessages.required)
123
- ),
124
- ]}
125
- />
126
- ) : null}
127
-
128
- {pepContext.state.role &&
129
- pepContext.state.role === Role.GOVERNMENT_COMPANY ? (
130
- <React.Fragment>
131
- <TextInput
132
- label={intl.formatMessage(governmentCompanyMessages.nameHeader, {
133
- entityType,
134
- pepType: type,
135
- relation:
136
- pepContext.state.type === PepType.COLLEAGUE
137
- ? pepContext.state.businessRelation
138
- : pepContext.state.relationToPEP,
139
- name: pepContext.state.ownerName,
140
- })}
141
- value={pepContext.state.governmentCompany || ""}
142
- onChange={(value) => {
143
- pepContext.setState({ governmentCompany: value });
144
- }}
145
- validators={[
146
- new RequiredValidator(
147
- intl.formatMessage(governmentCompanyMessages.nameRequired)
148
- ),
149
- ]}
150
- />
151
- <TextInput
152
- label={intl.formatMessage(governmentCompanyMessages.roleHeader, {
153
- entityType,
154
- pepType: type,
155
- relation:
156
- pepContext.state.type === PepType.COLLEAGUE
157
- ? pepContext.state.businessRelation
158
- : pepContext.state.relationToPEP,
159
- name: pepContext.state.ownerName,
160
- })}
161
- value={pepContext.state.governmentCompanyRole || ""}
162
- onChange={(value) => {
163
- pepContext.setState({
164
- governmentCompanyRole: value,
165
- });
166
- }}
167
- validators={[
168
- new RequiredValidator(
169
- intl.formatMessage(governmentCompanyMessages.roleRequired)
170
- ),
171
- ]}
172
- />
173
- </React.Fragment>
174
- ) : null}
175
-
176
- {pepContext.state.role &&
177
- pepContext.state.role ===
178
- Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP ? (
179
- <React.Fragment>
180
- <TextInput
181
- label={intl.formatMessage(intCompanyMessages.nameHeader, {
182
- entityType,
183
- pepType: type,
184
- relation:
185
- pepContext.state.type === PepType.COLLEAGUE
186
- ? pepContext.state.businessRelation
187
- : pepContext.state.relationToPEP,
188
- name: pepContext.state.ownerName,
189
- })}
190
- value={pepContext.state.internationalOrganisation || ""}
191
- onChange={(value) => {
192
- pepContext.setState({ internationalOrganisation: value });
193
- }}
194
- validators={[
195
- new RequiredValidator(
196
- intl.formatMessage(intCompanyMessages.nameRequired)
197
- ),
198
- ]}
199
- />
200
- <TextInput
201
- label={intl.formatMessage(intCompanyMessages.roleHeader, {
202
- entityType,
203
- pepType: type,
204
- relation:
205
- pepContext.state.type === PepType.COLLEAGUE
206
- ? pepContext.state.businessRelation
207
- : pepContext.state.relationToPEP,
208
- name: pepContext.state.ownerName,
209
- })}
210
- value={pepContext.state.internationalOrganisationRole || ""}
211
- onChange={(value) => {
212
- pepContext.setState({
213
- internationalOrganisationRole: value,
214
- });
215
- }}
216
- validators={[
217
- new RequiredValidator(
218
- intl.formatMessage(intCompanyMessages.roleRequired)
219
- ),
220
- ]}
221
- />
222
- </React.Fragment>
223
- ) : null}
224
-
225
- {pepContext.state.role &&
226
- pepContext.state.role === Role.MILITARY_OFFICER ? (
227
- <Select
228
- label={intl.formatMessage(militaryMessages.header, {
229
- entityType,
230
- pepType: type,
231
- relation:
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
- ),
240
- })}
241
- placeholder={intl.formatMessage(militaryMessages.placeholder)}
242
- alternatives={militaryAlternatives}
243
- value={militaryAlternatives.find(
244
- (alt) => alt.value === pepContext.state.militaryRank
245
- )}
246
- onChange={(event) => {
247
- pepContext.setState({ militaryRank: event.value as MilitaryRank });
248
- }}
249
- validators={[
250
- new RequiredValidator(
251
- intl.formatMessage(militaryMessages.required)
252
- ),
253
- ]}
254
- />
255
- ) : null}
256
-
257
- <PrimaryButton type="submit">
258
- <FormattedMessage
259
- id="pep.role.next"
260
- description="Next button"
261
- defaultMessage="Gå vidare"
262
- />
263
- </PrimaryButton>
264
- </Form>
265
- );
266
- };
267
-
268
- export function getRoleAlts(intl: IntlShape): Alternative<Role>[] {
269
- return [
270
- {
271
- text: intl.formatMessage(roleMessages[Role.HEAD_OF_GOVERNMENT]),
272
- value: Role.HEAD_OF_GOVERNMENT,
273
- },
274
- {
275
- text: intl.formatMessage(roleMessages[Role.MINISTER]),
276
- value: Role.MINISTER,
277
- },
278
- {
279
- text: intl.formatMessage(roleMessages[Role.PARLIMENT_MEMBER]),
280
- value: Role.PARLIMENT_MEMBER,
281
- },
282
- {
283
- text: intl.formatMessage(roleMessages[Role.CENTRAL_BANK_MEMBER]),
284
- value: Role.CENTRAL_BANK_MEMBER,
285
- },
286
- {
287
- text: intl.formatMessage(roleMessages[Role.BOARD_MEMBER_POLITICAL_PARTY]),
288
- value: Role.BOARD_MEMBER_POLITICAL_PARTY,
289
- },
290
- {
291
- text: intl.formatMessage(roleMessages[Role.JUDGE_SUPREME_COURT]),
292
- value: Role.JUDGE_SUPREME_COURT,
293
- },
294
- {
295
- text: intl.formatMessage(roleMessages[Role.JUDGE_OTHER_HIGH_COURT]),
296
- value: Role.JUDGE_OTHER_HIGH_COURT,
297
- },
298
- {
299
- text: intl.formatMessage(roleMessages[Role.REVISION_INSTITUTE]),
300
- value: Role.REVISION_INSTITUTE,
301
- },
302
- {
303
- text: intl.formatMessage(roleMessages[Role.AMBASSADOR]),
304
- value: Role.AMBASSADOR,
305
- },
306
- {
307
- text: intl.formatMessage(roleMessages[Role.MILITARY_OFFICER]),
308
- value: Role.MILITARY_OFFICER,
309
- },
310
- {
311
- text: intl.formatMessage(roleMessages[Role.GOVERNMENT_COMPANY]),
312
- value: Role.GOVERNMENT_COMPANY,
313
- },
314
- {
315
- text: intl.formatMessage(roleMessages[Role.EU_HIGH_RANKING_POSITION]),
316
- value: Role.EU_HIGH_RANKING_POSITION,
317
- },
318
- {
319
- text: intl.formatMessage(
320
- roleMessages[Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP]
321
- ),
322
- value: Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP,
323
- },
324
- ];
325
- }
326
-
327
- export function getMilitaryAlts(intl: IntlShape): Alternative<MilitaryRank>[] {
328
- return [
329
- {
330
- text: intl.formatMessage(militaryMessages[MilitaryRank.GENERAL]),
331
- value: MilitaryRank.GENERAL,
332
- },
333
- {
334
- text: intl.formatMessage(
335
- militaryMessages[MilitaryRank.LIEUTENANT_GENERAL]
336
- ),
337
- value: MilitaryRank.LIEUTENANT_GENERAL,
338
- },
339
- {
340
- text: intl.formatMessage(militaryMessages[MilitaryRank.MAJOR_GENERAL]),
341
- value: MilitaryRank.MAJOR_GENERAL,
342
- },
343
- {
344
- text: intl.formatMessage(militaryMessages[MilitaryRank.ADMIRAL]),
345
- value: MilitaryRank.ADMIRAL,
346
- },
347
- {
348
- text: intl.formatMessage(militaryMessages[MilitaryRank.VICE_ADMIRAL]),
349
- value: MilitaryRank.VICE_ADMIRAL,
350
- },
351
- {
352
- text: intl.formatMessage(militaryMessages[MilitaryRank.REAR_ADMIRAL]),
353
- value: MilitaryRank.REAR_ADMIRAL,
354
- },
355
- ];
356
- }
1
+ import React, {
2
+ FunctionComponent,
3
+ useRef,
4
+ useCallback,
5
+ useContext,
6
+ } from "react";
7
+ import { Alternative } from "@lysaab/ui-2/components/input/InputAPI";
8
+ import {
9
+ LysaFormRef,
10
+ Form,
11
+ PrimaryButton,
12
+ RequiredValidator,
13
+ TextInput,
14
+ Select,
15
+ Card,
16
+ } from "@lysaab/ui-2";
17
+ import {
18
+ PepContext,
19
+ Role,
20
+ MilitaryRank,
21
+ PepType,
22
+ EntityType,
23
+ } from "../PepContext";
24
+ import { CountrySelect } from "../../components/CountrySelect";
25
+ import { useIntl, IntlShape, FormattedMessage } from "react-intl";
26
+ import {
27
+ roleMessages,
28
+ ambassadorMessages,
29
+ governmentCompanyMessages,
30
+ intCompanyMessages,
31
+ militaryMessages,
32
+ } from "./RoleMessages";
33
+ import { formatPossessive } from "../../utils/Possession";
34
+
35
+ interface Props {
36
+ next: () => void;
37
+ }
38
+
39
+ export const RolePage: FunctionComponent<Props> = ({ next }) => {
40
+ const pepContext = useContext(PepContext);
41
+ const formRef = useRef<LysaFormRef>();
42
+ const intl = useIntl();
43
+ const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
44
+ const type = pepContext.state.type;
45
+
46
+ const roleAlternatives: Alternative<Role>[] = getRoleAlts(intl);
47
+ const militaryAlternatives: Alternative<MilitaryRank>[] = getMilitaryAlts(
48
+ intl
49
+ );
50
+
51
+ const nextPage = useCallback(() => {
52
+ if (formRef.current && formRef.current.isValid) {
53
+ next();
54
+ }
55
+ }, [formRef, next]);
56
+
57
+ const resetRoleFields = useCallback(() => {
58
+ pepContext.setState({
59
+ ambassadorCountry: undefined,
60
+ governmentCompany: undefined,
61
+ governmentCompanyRole: undefined,
62
+ internationalOrganisation: undefined,
63
+ internationalOrganisationRole: undefined,
64
+ militaryRank: undefined,
65
+ });
66
+ }, [pepContext]);
67
+
68
+ if (!type || type === PepType.NOT_PEP) {
69
+ return null;
70
+ }
71
+
72
+ return (
73
+ <Form onSubmit={() => nextPage()} lysaFormRef={formRef}>
74
+ <Card>
75
+ <Select
76
+ label={intl.formatMessage(roleMessages.header, {
77
+ entityType,
78
+ pepType: type,
79
+ relation:
80
+ pepContext.state.type === PepType.COLLEAGUE
81
+ ? pepContext.state.businessRelation
82
+ : pepContext.state.relationToPEP,
83
+ name: pepContext.state.ownerName,
84
+ possessiveName: formatPossessive(
85
+ pepContext.state.ownerName,
86
+ intl.locale
87
+ ),
88
+ })}
89
+ placeholder={intl.formatMessage(roleMessages.placeholder)}
90
+ alternatives={roleAlternatives}
91
+ value={roleAlternatives.find(
92
+ (alt) => alt.value === pepContext.state.role
93
+ )}
94
+ onChange={(event) => {
95
+ pepContext.setState({ role: event.value as Role });
96
+ resetRoleFields();
97
+ }}
98
+ validators={[
99
+ new RequiredValidator(intl.formatMessage(roleMessages.required)),
100
+ ]}
101
+ />
102
+
103
+ {pepContext.state.role && pepContext.state.role === Role.AMBASSADOR ? (
104
+ <CountrySelect
105
+ label={intl.formatMessage(ambassadorMessages.header, {
106
+ entityType,
107
+ pepType: type,
108
+ relation:
109
+ pepContext.state.type === PepType.COLLEAGUE
110
+ ? pepContext.state.businessRelation
111
+ : pepContext.state.relationToPEP,
112
+ name: pepContext.state.ownerName,
113
+ })}
114
+ onChange={(event) =>
115
+ pepContext.setState({
116
+ ambassadorCountry: event.value
117
+ ? event.value.toString()
118
+ : undefined,
119
+ })
120
+ }
121
+ value={pepContext.state.ambassadorCountry}
122
+ validators={[
123
+ new RequiredValidator(
124
+ intl.formatMessage(ambassadorMessages.required)
125
+ ),
126
+ ]}
127
+ />
128
+ ) : null}
129
+
130
+ {pepContext.state.role &&
131
+ pepContext.state.role === Role.GOVERNMENT_COMPANY ? (
132
+ <React.Fragment>
133
+ <TextInput
134
+ label={intl.formatMessage(governmentCompanyMessages.nameHeader, {
135
+ entityType,
136
+ pepType: type,
137
+ relation:
138
+ pepContext.state.type === PepType.COLLEAGUE
139
+ ? pepContext.state.businessRelation
140
+ : pepContext.state.relationToPEP,
141
+ name: pepContext.state.ownerName,
142
+ })}
143
+ value={pepContext.state.governmentCompany || ""}
144
+ onChange={(value) => {
145
+ pepContext.setState({ governmentCompany: value });
146
+ }}
147
+ validators={[
148
+ new RequiredValidator(
149
+ intl.formatMessage(governmentCompanyMessages.nameRequired)
150
+ ),
151
+ ]}
152
+ />
153
+ <TextInput
154
+ label={intl.formatMessage(governmentCompanyMessages.roleHeader, {
155
+ entityType,
156
+ pepType: type,
157
+ relation:
158
+ pepContext.state.type === PepType.COLLEAGUE
159
+ ? pepContext.state.businessRelation
160
+ : pepContext.state.relationToPEP,
161
+ name: pepContext.state.ownerName,
162
+ })}
163
+ value={pepContext.state.governmentCompanyRole || ""}
164
+ onChange={(value) => {
165
+ pepContext.setState({
166
+ governmentCompanyRole: value,
167
+ });
168
+ }}
169
+ validators={[
170
+ new RequiredValidator(
171
+ intl.formatMessage(governmentCompanyMessages.roleRequired)
172
+ ),
173
+ ]}
174
+ />
175
+ </React.Fragment>
176
+ ) : null}
177
+
178
+ {pepContext.state.role &&
179
+ pepContext.state.role ===
180
+ Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP ? (
181
+ <React.Fragment>
182
+ <TextInput
183
+ label={intl.formatMessage(intCompanyMessages.nameHeader, {
184
+ entityType,
185
+ pepType: type,
186
+ relation:
187
+ pepContext.state.type === PepType.COLLEAGUE
188
+ ? pepContext.state.businessRelation
189
+ : pepContext.state.relationToPEP,
190
+ name: pepContext.state.ownerName,
191
+ })}
192
+ value={pepContext.state.internationalOrganisation || ""}
193
+ onChange={(value) => {
194
+ pepContext.setState({ internationalOrganisation: value });
195
+ }}
196
+ validators={[
197
+ new RequiredValidator(
198
+ intl.formatMessage(intCompanyMessages.nameRequired)
199
+ ),
200
+ ]}
201
+ />
202
+ <TextInput
203
+ label={intl.formatMessage(intCompanyMessages.roleHeader, {
204
+ entityType,
205
+ pepType: type,
206
+ relation:
207
+ pepContext.state.type === PepType.COLLEAGUE
208
+ ? pepContext.state.businessRelation
209
+ : pepContext.state.relationToPEP,
210
+ name: pepContext.state.ownerName,
211
+ })}
212
+ value={pepContext.state.internationalOrganisationRole || ""}
213
+ onChange={(value) => {
214
+ pepContext.setState({
215
+ internationalOrganisationRole: value,
216
+ });
217
+ }}
218
+ validators={[
219
+ new RequiredValidator(
220
+ intl.formatMessage(intCompanyMessages.roleRequired)
221
+ ),
222
+ ]}
223
+ />
224
+ </React.Fragment>
225
+ ) : null}
226
+
227
+ {pepContext.state.role &&
228
+ pepContext.state.role === Role.MILITARY_OFFICER ? (
229
+ <Select
230
+ label={intl.formatMessage(militaryMessages.header, {
231
+ entityType,
232
+ pepType: type,
233
+ relation:
234
+ pepContext.state.type === PepType.COLLEAGUE
235
+ ? pepContext.state.businessRelation
236
+ : pepContext.state.relationToPEP,
237
+ name: pepContext.state.ownerName,
238
+ possessiveName: formatPossessive(
239
+ pepContext.state.ownerName,
240
+ intl.locale
241
+ ),
242
+ })}
243
+ placeholder={intl.formatMessage(militaryMessages.placeholder)}
244
+ alternatives={militaryAlternatives}
245
+ value={militaryAlternatives.find(
246
+ (alt) => alt.value === pepContext.state.militaryRank
247
+ )}
248
+ onChange={(event) => {
249
+ pepContext.setState({
250
+ militaryRank: event.value as MilitaryRank,
251
+ });
252
+ }}
253
+ validators={[
254
+ new RequiredValidator(
255
+ intl.formatMessage(militaryMessages.required)
256
+ ),
257
+ ]}
258
+ />
259
+ ) : null}
260
+ </Card>
261
+
262
+ <PrimaryButton block type="submit">
263
+ <FormattedMessage
264
+ id="pep.role.next"
265
+ description="Next button"
266
+ defaultMessage="Gå vidare"
267
+ />
268
+ </PrimaryButton>
269
+ </Form>
270
+ );
271
+ };
272
+
273
+ export function getRoleAlts(intl: IntlShape): Alternative<Role>[] {
274
+ return [
275
+ {
276
+ text: intl.formatMessage(roleMessages[Role.HEAD_OF_GOVERNMENT]),
277
+ value: Role.HEAD_OF_GOVERNMENT,
278
+ },
279
+ {
280
+ text: intl.formatMessage(roleMessages[Role.MINISTER]),
281
+ value: Role.MINISTER,
282
+ },
283
+ {
284
+ text: intl.formatMessage(roleMessages[Role.PARLIMENT_MEMBER]),
285
+ value: Role.PARLIMENT_MEMBER,
286
+ },
287
+ {
288
+ text: intl.formatMessage(roleMessages[Role.CENTRAL_BANK_MEMBER]),
289
+ value: Role.CENTRAL_BANK_MEMBER,
290
+ },
291
+ {
292
+ text: intl.formatMessage(roleMessages[Role.BOARD_MEMBER_POLITICAL_PARTY]),
293
+ value: Role.BOARD_MEMBER_POLITICAL_PARTY,
294
+ },
295
+ {
296
+ text: intl.formatMessage(roleMessages[Role.JUDGE_SUPREME_COURT]),
297
+ value: Role.JUDGE_SUPREME_COURT,
298
+ },
299
+ {
300
+ text: intl.formatMessage(roleMessages[Role.JUDGE_OTHER_HIGH_COURT]),
301
+ value: Role.JUDGE_OTHER_HIGH_COURT,
302
+ },
303
+ {
304
+ text: intl.formatMessage(roleMessages[Role.REVISION_INSTITUTE]),
305
+ value: Role.REVISION_INSTITUTE,
306
+ },
307
+ {
308
+ text: intl.formatMessage(roleMessages[Role.AMBASSADOR]),
309
+ value: Role.AMBASSADOR,
310
+ },
311
+ {
312
+ text: intl.formatMessage(roleMessages[Role.MILITARY_OFFICER]),
313
+ value: Role.MILITARY_OFFICER,
314
+ },
315
+ {
316
+ text: intl.formatMessage(roleMessages[Role.GOVERNMENT_COMPANY]),
317
+ value: Role.GOVERNMENT_COMPANY,
318
+ },
319
+ {
320
+ text: intl.formatMessage(roleMessages[Role.EU_HIGH_RANKING_POSITION]),
321
+ value: Role.EU_HIGH_RANKING_POSITION,
322
+ },
323
+ {
324
+ text: intl.formatMessage(
325
+ roleMessages[Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP]
326
+ ),
327
+ value: Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP,
328
+ },
329
+ ];
330
+ }
331
+
332
+ export function getMilitaryAlts(intl: IntlShape): Alternative<MilitaryRank>[] {
333
+ return [
334
+ {
335
+ text: intl.formatMessage(militaryMessages[MilitaryRank.GENERAL]),
336
+ value: MilitaryRank.GENERAL,
337
+ },
338
+ {
339
+ text: intl.formatMessage(
340
+ militaryMessages[MilitaryRank.LIEUTENANT_GENERAL]
341
+ ),
342
+ value: MilitaryRank.LIEUTENANT_GENERAL,
343
+ },
344
+ {
345
+ text: intl.formatMessage(militaryMessages[MilitaryRank.MAJOR_GENERAL]),
346
+ value: MilitaryRank.MAJOR_GENERAL,
347
+ },
348
+ {
349
+ text: intl.formatMessage(militaryMessages[MilitaryRank.ADMIRAL]),
350
+ value: MilitaryRank.ADMIRAL,
351
+ },
352
+ {
353
+ text: intl.formatMessage(militaryMessages[MilitaryRank.VICE_ADMIRAL]),
354
+ value: MilitaryRank.VICE_ADMIRAL,
355
+ },
356
+ {
357
+ text: intl.formatMessage(militaryMessages[MilitaryRank.REAR_ADMIRAL]),
358
+ value: MilitaryRank.REAR_ADMIRAL,
359
+ },
360
+ ];
361
+ }