@lysaab/lysa-pep 1.0.2-0 → 1.0.3-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/lib/Exports.d.ts +7 -7
  2. package/lib/Exports.js +7 -7
  3. package/lib/components/CountrySelect.d.ts +15 -15
  4. package/lib/components/CountrySelect.js +30 -30
  5. package/lib/components/PepAnswers.d.ts +8 -8
  6. package/lib/components/PepAnswers.js +131 -131
  7. package/lib/components/PepAnswers.scss +7 -7
  8. package/lib/model/Countries.d.ts +4 -4
  9. package/lib/model/Countries.js +1002 -1002
  10. package/lib/model/PepModel.d.ts +7 -7
  11. package/lib/model/PepModel.js +40 -40
  12. package/lib/model/PepTexts.d.ts +380 -322
  13. package/lib/model/PepTexts.js +552 -467
  14. package/lib/pages/IsPep/IsPepMessages.d.ts +32 -32
  15. package/lib/pages/IsPep/IsPepMessages.js +66 -66
  16. package/lib/pages/IsPep/IsPepPage.d.ts +14 -14
  17. package/lib/pages/IsPep/IsPepPage.js +59 -59
  18. package/lib/pages/PepContext.d.ts +80 -80
  19. package/lib/pages/PepContext.js +88 -88
  20. package/lib/pages/PepIsPepPage.d.ts +15 -6
  21. package/lib/pages/PepIsPepPage.js +59 -57
  22. package/lib/pages/PepRelationPage.d.ts +6 -6
  23. package/lib/pages/PepRelationPage.js +79 -83
  24. package/lib/pages/PepRolePage.d.ts +10 -9
  25. package/lib/pages/PepRolePage.js +127 -127
  26. package/lib/pages/PepStatusPage.d.ts +6 -6
  27. package/lib/pages/PepStatusPage.js +58 -57
  28. package/lib/pages/RelationPage/RelationMessages.d.ts +105 -105
  29. package/lib/pages/RelationPage/RelationMessages.js +283 -283
  30. package/lib/pages/RelationPage/RelationPage.d.ts +6 -6
  31. package/lib/pages/RelationPage/RelationPage.js +153 -153
  32. package/lib/pages/RolePage/RoleMessages.d.ts +185 -185
  33. package/lib/pages/RolePage/RoleMessages.js +385 -385
  34. package/lib/pages/RolePage/RolePage.d.ts +11 -11
  35. package/lib/pages/RolePage/RolePage.js +220 -220
  36. package/lib/pages/StatusPage/StatusMessages.d.ts +72 -72
  37. package/lib/pages/StatusPage/StatusMessages.js +266 -266
  38. package/lib/pages/StatusPage/StatusPage.d.ts +6 -6
  39. package/lib/pages/StatusPage/StatusPage.js +95 -95
  40. package/lib/utils/Possession.d.ts +1 -1
  41. package/lib/utils/Possession.js +18 -18
  42. package/package.json +57 -57
  43. package/src/Exports.ts +12 -12
  44. package/src/components/CountrySelect.tsx +47 -47
  45. package/src/components/PepAnswers.scss +7 -7
  46. package/src/components/PepAnswers.tsx +252 -252
  47. package/src/demo/Done.tsx +16 -16
  48. package/src/demo/Pep.tsx +112 -112
  49. package/src/model/PepModel.ts +52 -52
  50. package/src/pages/IsPep/IsPepMessages.ts +67 -67
  51. package/src/pages/IsPep/IsPepPage.tsx +115 -114
  52. package/src/pages/PepContext.tsx +144 -144
  53. package/src/pages/RelationPage/RelationMessages.ts +288 -288
  54. package/src/pages/RelationPage/RelationPage.tsx +299 -299
  55. package/src/pages/RolePage/RoleMessages.ts +393 -393
  56. package/src/pages/RolePage/RolePage.tsx +356 -356
  57. package/src/pages/StatusPage/StatusMessages.ts +272 -272
  58. package/src/pages/StatusPage/StatusPage.tsx +207 -207
  59. package/.vscode/settings.json +0 -4
@@ -1,299 +1,299 @@
1
- import React, {
2
- useContext,
3
- useRef,
4
- useCallback,
5
- FunctionComponent,
6
- } from "react";
7
- import {
8
- PepContext,
9
- PepType,
10
- BusinessRelation,
11
- Relation,
12
- EntityType,
13
- PepContextProps,
14
- } from "../PepContext";
15
- import {
16
- LysaFormRef,
17
- RadioGroup,
18
- Form,
19
- Alternative,
20
- RequiredValidator,
21
- TextInput,
22
- Datepicker,
23
- PrimaryButton,
24
- } from "@lysaab/ui-2";
25
- import { DateTime } from "luxon";
26
- import { useIntl, IntlShape, FormattedMessage } from "react-intl";
27
- import {
28
- relationMessages,
29
- businessRelationMessages,
30
- relativeNameMessages,
31
- birthdayMessages,
32
- colleagueNameMessages,
33
- } from "./RelationMessages";
34
- import { formatPossessive } from "../../utils/Possession";
35
-
36
- const DATEPICKER_START_DATE = DateTime.fromISO("1970-01-01").toJSDate();
37
-
38
- interface Props {
39
- next: () => void;
40
- }
41
-
42
- export const RelationPage: FunctionComponent<Props> = ({ next }) => {
43
- const intl = useIntl();
44
- const pepContext = useContext(PepContext);
45
- const formRef = useRef<LysaFormRef>();
46
- const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
47
- const type = pepContext.state.type;
48
-
49
- const businessRelationAlternatives = getBusinessRelationAlternatives(
50
- intl,
51
- entityType,
52
- pepContext
53
- );
54
- const relationAlternatives = getRelationAlternatives(
55
- intl,
56
- entityType,
57
- pepContext
58
- );
59
-
60
- const nextPage = useCallback(() => {
61
- if (formRef.current && formRef.current.isValid) {
62
- next();
63
- }
64
- }, [formRef, next]);
65
- return (
66
- <Form onSubmit={() => nextPage()} lysaFormRef={formRef}>
67
- {type === PepType.RELATIVE ? (
68
- <RadioGroup
69
- alternatives={relationAlternatives}
70
- onChange={(alternative) => {
71
- pepContext.setState({
72
- relationToPEP: alternative.value,
73
- });
74
- }}
75
- value={relationAlternatives.find(
76
- (alt) => alt.value === pepContext.state.relationToPEP
77
- )}
78
- header={intl.formatMessage(relationMessages.header, {
79
- entityType,
80
- name: pepContext.state.ownerName,
81
- possessiveName: formatPossessive(
82
- pepContext.state.ownerName,
83
- intl.locale
84
- ),
85
- })}
86
- validators={[
87
- new RequiredValidator(
88
- intl.formatMessage(relationMessages.required)
89
- ),
90
- ]}
91
- />
92
- ) : null}
93
- {type === PepType.COLLEAGUE ? (
94
- <RadioGroup
95
- alternatives={businessRelationAlternatives}
96
- onChange={(alternative) => {
97
- pepContext.setState({
98
- businessRelation: alternative.value,
99
- });
100
- }}
101
- value={businessRelationAlternatives.find(
102
- (alt) => alt.value === pepContext.state.businessRelation
103
- )}
104
- header={intl.formatMessage(businessRelationMessages.header, {
105
- entityType,
106
- name: pepContext.state.ownerName,
107
- })}
108
- validators={[
109
- new RequiredValidator(
110
- intl.formatMessage(businessRelationMessages.required)
111
- ),
112
- ]}
113
- />
114
- ) : null}
115
- {pepContext.state.relationToPEP && type === PepType.RELATIVE ? (
116
- <React.Fragment>
117
- <TextInput
118
- label={intl.formatMessage(relativeNameMessages.header, {
119
- entityType,
120
- name: pepContext.state.ownerName,
121
- relation:
122
- pepContext.state.type === PepType.COLLEAGUE
123
- ? pepContext.state.businessRelation
124
- : pepContext.state.relationToPEP,
125
- possessiveName: formatPossessive(
126
- pepContext.state.ownerName,
127
- intl.locale
128
- ),
129
- })}
130
- value={pepContext.state.nameOfPEP || ""}
131
- onChange={(value) => {
132
- pepContext.setState({ nameOfPEP: value });
133
- }}
134
- validators={[
135
- new RequiredValidator(
136
- intl.formatMessage(relativeNameMessages.required)
137
- ),
138
- ]}
139
- />
140
- <Datepicker
141
- label={intl.formatMessage(birthdayMessages.header, {
142
- entityType,
143
- name: pepContext.state.ownerName,
144
- relation:
145
- pepContext.state.type === PepType.COLLEAGUE
146
- ? pepContext.state.businessRelation
147
- : pepContext.state.relationToPEP,
148
- possessiveName: formatPossessive(
149
- pepContext.state.ownerName,
150
- intl.locale
151
- ),
152
- })}
153
- selected={pepContext.state.birthdayOfPEP}
154
- onChange={(event) =>
155
- pepContext.setState({ birthdayOfPEP: event || undefined })
156
- }
157
- validators={[
158
- new RequiredValidator(
159
- intl.formatMessage(birthdayMessages.required)
160
- ),
161
- ]}
162
- maxDate={new Date()}
163
- openToDate={pepContext.state.birthdayOfPEP || DATEPICKER_START_DATE}
164
- />
165
- </React.Fragment>
166
- ) : null}
167
-
168
- {pepContext.state.businessRelation && type === PepType.COLLEAGUE ? (
169
- <React.Fragment>
170
- <TextInput
171
- label={intl.formatMessage(colleagueNameMessages.header, {
172
- entityType,
173
- name: pepContext.state.ownerName,
174
- relation:
175
- pepContext.state.type === PepType.COLLEAGUE
176
- ? pepContext.state.businessRelation
177
- : pepContext.state.relationToPEP,
178
- possessiveName: formatPossessive(
179
- pepContext.state.ownerName,
180
- intl.locale
181
- ),
182
- })}
183
- value={pepContext.state.nameOfPEP || ""}
184
- onChange={(value) => {
185
- pepContext.setState({ nameOfPEP: value });
186
- }}
187
- validators={[
188
- new RequiredValidator(
189
- intl.formatMessage(colleagueNameMessages.required)
190
- ),
191
- ]}
192
- />
193
- </React.Fragment>
194
- ) : null}
195
- <PrimaryButton type="submit">
196
- <FormattedMessage
197
- id="pep.relation.next"
198
- description="Next button"
199
- defaultMessage="Gå vidare"
200
- />
201
- </PrimaryButton>
202
- </Form>
203
- );
204
- };
205
- function getRelationAlternatives(
206
- intl: IntlShape,
207
- entityType: EntityType,
208
- pepContext: PepContextProps
209
- ): Alternative<Relation>[] {
210
- return [
211
- {
212
- text: intl.formatMessage(relationMessages[Relation.MARRIED_PARTNER], {
213
- entityType,
214
- name: pepContext.state.ownerName,
215
- }),
216
- value: Relation.MARRIED_PARTNER,
217
- },
218
- {
219
- text: intl.formatMessage(relationMessages[Relation.COLIVING_PARTNER], {
220
- entityType,
221
- name: pepContext.state.ownerName,
222
- }),
223
- value: Relation.COLIVING_PARTNER,
224
- },
225
- {
226
- text: intl.formatMessage(relationMessages[Relation.CHILD], {
227
- entityType,
228
- name: pepContext.state.ownerName,
229
- }),
230
- value: Relation.CHILD,
231
- },
232
- {
233
- text: intl.formatMessage(relationMessages[Relation.PARENT], {
234
- entityType,
235
- name: pepContext.state.ownerName,
236
- }),
237
- value: Relation.PARENT,
238
- },
239
- {
240
- text: intl.formatMessage(
241
- relationMessages[Relation.CHILD_MARRIED_PARTNER],
242
- {
243
- entityType,
244
- name: pepContext.state.ownerName,
245
- }
246
- ),
247
- value: Relation.CHILD_MARRIED_PARTNER,
248
- },
249
- {
250
- text: intl.formatMessage(
251
- relationMessages[Relation.CHILD_COLIVING_PARTNER],
252
- {
253
- entityType,
254
- name: pepContext.state.ownerName,
255
- }
256
- ),
257
- value: Relation.CHILD_COLIVING_PARTNER,
258
- },
259
- ];
260
- }
261
-
262
- function getBusinessRelationAlternatives(
263
- intl: IntlShape,
264
- entityType: EntityType,
265
- pepContext: PepContextProps
266
- ): Alternative<BusinessRelation>[] {
267
- return [
268
- {
269
- text: intl.formatMessage(
270
- businessRelationMessages[BusinessRelation.CO_OWNERSHIP],
271
- {
272
- entityType,
273
- name: pepContext.state.ownerName,
274
- }
275
- ),
276
- value: BusinessRelation.CO_OWNERSHIP,
277
- },
278
- {
279
- text: intl.formatMessage(
280
- businessRelationMessages[BusinessRelation.CLOSE_CONNECTION],
281
- {
282
- entityType,
283
- name: pepContext.state.ownerName,
284
- }
285
- ),
286
- value: BusinessRelation.CLOSE_CONNECTION,
287
- },
288
- {
289
- text: intl.formatMessage(
290
- businessRelationMessages[BusinessRelation.COMPANY_FOR_PEP],
291
- {
292
- entityType,
293
- name: pepContext.state.ownerName,
294
- }
295
- ),
296
- value: BusinessRelation.COMPANY_FOR_PEP,
297
- },
298
- ];
299
- }
1
+ import React, {
2
+ useContext,
3
+ useRef,
4
+ useCallback,
5
+ FunctionComponent,
6
+ } from "react";
7
+ import {
8
+ PepContext,
9
+ PepType,
10
+ BusinessRelation,
11
+ Relation,
12
+ EntityType,
13
+ PepContextProps,
14
+ } from "../PepContext";
15
+ import {
16
+ LysaFormRef,
17
+ RadioGroup,
18
+ Form,
19
+ Alternative,
20
+ RequiredValidator,
21
+ TextInput,
22
+ Datepicker,
23
+ PrimaryButton,
24
+ } from "@lysaab/ui-2";
25
+ import { DateTime } from "luxon";
26
+ import { useIntl, IntlShape, FormattedMessage } from "react-intl";
27
+ import {
28
+ relationMessages,
29
+ businessRelationMessages,
30
+ relativeNameMessages,
31
+ birthdayMessages,
32
+ colleagueNameMessages,
33
+ } from "./RelationMessages";
34
+ import { formatPossessive } from "../../utils/Possession";
35
+
36
+ const DATEPICKER_START_DATE = DateTime.fromISO("1970-01-01").toJSDate();
37
+
38
+ interface Props {
39
+ next: () => void;
40
+ }
41
+
42
+ export const RelationPage: FunctionComponent<Props> = ({ next }) => {
43
+ const intl = useIntl();
44
+ const pepContext = useContext(PepContext);
45
+ const formRef = useRef<LysaFormRef>();
46
+ const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
47
+ const type = pepContext.state.type;
48
+
49
+ const businessRelationAlternatives = getBusinessRelationAlternatives(
50
+ intl,
51
+ entityType,
52
+ pepContext
53
+ );
54
+ const relationAlternatives = getRelationAlternatives(
55
+ intl,
56
+ entityType,
57
+ pepContext
58
+ );
59
+
60
+ const nextPage = useCallback(() => {
61
+ if (formRef.current && formRef.current.isValid) {
62
+ next();
63
+ }
64
+ }, [formRef, next]);
65
+ return (
66
+ <Form onSubmit={() => nextPage()} lysaFormRef={formRef}>
67
+ {type === PepType.RELATIVE ? (
68
+ <RadioGroup
69
+ alternatives={relationAlternatives}
70
+ onChange={(alternative) => {
71
+ pepContext.setState({
72
+ relationToPEP: alternative.value,
73
+ });
74
+ }}
75
+ value={relationAlternatives.find(
76
+ (alt) => alt.value === pepContext.state.relationToPEP
77
+ )}
78
+ header={intl.formatMessage(relationMessages.header, {
79
+ entityType,
80
+ name: pepContext.state.ownerName,
81
+ possessiveName: formatPossessive(
82
+ pepContext.state.ownerName,
83
+ intl.locale
84
+ ),
85
+ })}
86
+ validators={[
87
+ new RequiredValidator(
88
+ intl.formatMessage(relationMessages.required)
89
+ ),
90
+ ]}
91
+ />
92
+ ) : null}
93
+ {type === PepType.COLLEAGUE ? (
94
+ <RadioGroup
95
+ alternatives={businessRelationAlternatives}
96
+ onChange={(alternative) => {
97
+ pepContext.setState({
98
+ businessRelation: alternative.value,
99
+ });
100
+ }}
101
+ value={businessRelationAlternatives.find(
102
+ (alt) => alt.value === pepContext.state.businessRelation
103
+ )}
104
+ header={intl.formatMessage(businessRelationMessages.header, {
105
+ entityType,
106
+ name: pepContext.state.ownerName,
107
+ })}
108
+ validators={[
109
+ new RequiredValidator(
110
+ intl.formatMessage(businessRelationMessages.required)
111
+ ),
112
+ ]}
113
+ />
114
+ ) : null}
115
+ {pepContext.state.relationToPEP && type === PepType.RELATIVE ? (
116
+ <React.Fragment>
117
+ <TextInput
118
+ label={intl.formatMessage(relativeNameMessages.header, {
119
+ entityType,
120
+ name: pepContext.state.ownerName,
121
+ relation:
122
+ pepContext.state.type === PepType.COLLEAGUE
123
+ ? pepContext.state.businessRelation
124
+ : pepContext.state.relationToPEP,
125
+ possessiveName: formatPossessive(
126
+ pepContext.state.ownerName,
127
+ intl.locale
128
+ ),
129
+ })}
130
+ value={pepContext.state.nameOfPEP || ""}
131
+ onChange={(value) => {
132
+ pepContext.setState({ nameOfPEP: value });
133
+ }}
134
+ validators={[
135
+ new RequiredValidator(
136
+ intl.formatMessage(relativeNameMessages.required)
137
+ ),
138
+ ]}
139
+ />
140
+ <Datepicker
141
+ label={intl.formatMessage(birthdayMessages.header, {
142
+ entityType,
143
+ name: pepContext.state.ownerName,
144
+ relation:
145
+ pepContext.state.type === PepType.COLLEAGUE
146
+ ? pepContext.state.businessRelation
147
+ : pepContext.state.relationToPEP,
148
+ possessiveName: formatPossessive(
149
+ pepContext.state.ownerName,
150
+ intl.locale
151
+ ),
152
+ })}
153
+ selected={pepContext.state.birthdayOfPEP}
154
+ onChange={(event) =>
155
+ pepContext.setState({ birthdayOfPEP: event || undefined })
156
+ }
157
+ validators={[
158
+ new RequiredValidator(
159
+ intl.formatMessage(birthdayMessages.required)
160
+ ),
161
+ ]}
162
+ maxDate={new Date()}
163
+ openToDate={pepContext.state.birthdayOfPEP || DATEPICKER_START_DATE}
164
+ />
165
+ </React.Fragment>
166
+ ) : null}
167
+
168
+ {pepContext.state.businessRelation && type === PepType.COLLEAGUE ? (
169
+ <React.Fragment>
170
+ <TextInput
171
+ label={intl.formatMessage(colleagueNameMessages.header, {
172
+ entityType,
173
+ name: pepContext.state.ownerName,
174
+ relation:
175
+ pepContext.state.type === PepType.COLLEAGUE
176
+ ? pepContext.state.businessRelation
177
+ : pepContext.state.relationToPEP,
178
+ possessiveName: formatPossessive(
179
+ pepContext.state.ownerName,
180
+ intl.locale
181
+ ),
182
+ })}
183
+ value={pepContext.state.nameOfPEP || ""}
184
+ onChange={(value) => {
185
+ pepContext.setState({ nameOfPEP: value });
186
+ }}
187
+ validators={[
188
+ new RequiredValidator(
189
+ intl.formatMessage(colleagueNameMessages.required)
190
+ ),
191
+ ]}
192
+ />
193
+ </React.Fragment>
194
+ ) : null}
195
+ <PrimaryButton type="submit">
196
+ <FormattedMessage
197
+ id="pep.relation.next"
198
+ description="Next button"
199
+ defaultMessage="Gå vidare"
200
+ />
201
+ </PrimaryButton>
202
+ </Form>
203
+ );
204
+ };
205
+ function getRelationAlternatives(
206
+ intl: IntlShape,
207
+ entityType: EntityType,
208
+ pepContext: PepContextProps
209
+ ): Alternative<Relation>[] {
210
+ return [
211
+ {
212
+ text: intl.formatMessage(relationMessages[Relation.MARRIED_PARTNER], {
213
+ entityType,
214
+ name: pepContext.state.ownerName,
215
+ }),
216
+ value: Relation.MARRIED_PARTNER,
217
+ },
218
+ {
219
+ text: intl.formatMessage(relationMessages[Relation.COLIVING_PARTNER], {
220
+ entityType,
221
+ name: pepContext.state.ownerName,
222
+ }),
223
+ value: Relation.COLIVING_PARTNER,
224
+ },
225
+ {
226
+ text: intl.formatMessage(relationMessages[Relation.CHILD], {
227
+ entityType,
228
+ name: pepContext.state.ownerName,
229
+ }),
230
+ value: Relation.CHILD,
231
+ },
232
+ {
233
+ text: intl.formatMessage(relationMessages[Relation.PARENT], {
234
+ entityType,
235
+ name: pepContext.state.ownerName,
236
+ }),
237
+ value: Relation.PARENT,
238
+ },
239
+ {
240
+ text: intl.formatMessage(
241
+ relationMessages[Relation.CHILD_MARRIED_PARTNER],
242
+ {
243
+ entityType,
244
+ name: pepContext.state.ownerName,
245
+ }
246
+ ),
247
+ value: Relation.CHILD_MARRIED_PARTNER,
248
+ },
249
+ {
250
+ text: intl.formatMessage(
251
+ relationMessages[Relation.CHILD_COLIVING_PARTNER],
252
+ {
253
+ entityType,
254
+ name: pepContext.state.ownerName,
255
+ }
256
+ ),
257
+ value: Relation.CHILD_COLIVING_PARTNER,
258
+ },
259
+ ];
260
+ }
261
+
262
+ function getBusinessRelationAlternatives(
263
+ intl: IntlShape,
264
+ entityType: EntityType,
265
+ pepContext: PepContextProps
266
+ ): Alternative<BusinessRelation>[] {
267
+ return [
268
+ {
269
+ text: intl.formatMessage(
270
+ businessRelationMessages[BusinessRelation.CO_OWNERSHIP],
271
+ {
272
+ entityType,
273
+ name: pepContext.state.ownerName,
274
+ }
275
+ ),
276
+ value: BusinessRelation.CO_OWNERSHIP,
277
+ },
278
+ {
279
+ text: intl.formatMessage(
280
+ businessRelationMessages[BusinessRelation.CLOSE_CONNECTION],
281
+ {
282
+ entityType,
283
+ name: pepContext.state.ownerName,
284
+ }
285
+ ),
286
+ value: BusinessRelation.CLOSE_CONNECTION,
287
+ },
288
+ {
289
+ text: intl.formatMessage(
290
+ businessRelationMessages[BusinessRelation.COMPANY_FOR_PEP],
291
+ {
292
+ entityType,
293
+ name: pepContext.state.ownerName,
294
+ }
295
+ ),
296
+ value: BusinessRelation.COMPANY_FOR_PEP,
297
+ },
298
+ ];
299
+ }