@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,207 +1,213 @@
1
- import React, {
2
- FunctionComponent,
3
- useRef,
4
- useCallback,
5
- useContext,
6
- } from "react";
7
- import {
8
- Form,
9
- RadioGroup,
10
- RequiredValidator,
11
- PrimaryButton,
12
- LysaFormRef,
13
- Datepicker,
14
- } from "@lysaab/ui-2";
15
- import { Alternative } from "@lysaab/ui-2/components/input/InputAPI";
16
- import { PepContext, PepStatus, EntityType, PepType } from "../PepContext";
17
- import { CountrySelect } from "../../components/CountrySelect";
18
- import { useIntl, FormattedMessage, IntlShape } from "react-intl";
19
- import {
20
- isOngoingMessages,
21
- endedMessages,
22
- isLocalCountryMessages,
23
- countrySelectionMessages,
24
- localCountryAltMessages,
25
- stateAltMessages,
26
- } from "./StatusMessages";
27
- import { formatPossessive } from "../../utils/Possession";
28
-
29
- interface Props {
30
- next: () => void;
31
- }
32
-
33
- export const StatusPage: FunctionComponent<Props> = ({ next }) => {
34
- const pepContext = useContext(PepContext);
35
- const formRef = useRef<LysaFormRef>();
36
- const intl = useIntl();
37
- const stateAlternatives = getStateAlternatives(intl);
38
- const isSwedenAlternatives = getIsLocalCountryAlternatives(intl);
39
- const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
40
-
41
- const nextPage = useCallback(() => {
42
- if (formRef.current && formRef.current.isValid) {
43
- next();
44
- }
45
- }, [formRef, next]);
46
-
47
- const updateIsSweden = useCallback(
48
- (alternative: Alternative<string>) => {
49
- pepContext.setState({ isSweden: alternative.value });
50
-
51
- if (alternative.value === "other") {
52
- pepContext.setState({ country: undefined });
53
- }
54
- },
55
- [pepContext]
56
- );
57
-
58
- const updateIsOngoing = useCallback(
59
- (alternative: Alternative<PepStatus>) => {
60
- pepContext.setState({ isOngoing: alternative.value });
61
-
62
- if (alternative.value === PepStatus.ONGOING) {
63
- pepContext.setState({ ended: undefined });
64
- }
65
- },
66
- [pepContext]
67
- );
68
-
69
- return (
70
- <div>
71
- <Form
72
- lysaFormRef={formRef}
73
- onSubmit={() => {
74
- nextPage();
75
- }}
76
- >
77
- <RadioGroup
78
- alternatives={stateAlternatives}
79
- header={intl.formatMessage(isOngoingMessages.header, {
80
- entityType,
81
- name: pepContext.state.ownerName,
82
- possessiveName: formatPossessive(
83
- pepContext.state.ownerName,
84
- intl.locale
85
- ),
86
- relation:
87
- pepContext.state.type === PepType.COLLEAGUE
88
- ? pepContext.state.businessRelation
89
- : pepContext.state.relationToPEP,
90
- pepType: pepContext.state.type,
91
- })}
92
- onChange={updateIsOngoing}
93
- value={stateAlternatives.find(
94
- (alt) => alt.value === pepContext.state.isOngoing
95
- )}
96
- validators={[
97
- new RequiredValidator(
98
- intl.formatMessage(isOngoingMessages.required)
99
- ),
100
- ]}
101
- />
102
-
103
- {pepContext.state.isOngoing &&
104
- pepContext.state.isOngoing === PepStatus.ENDED ? (
105
- <Datepicker
106
- label={intl.formatMessage(endedMessages.header)}
107
- selected={pepContext.state.ended}
108
- onChange={(event) =>
109
- pepContext.setState({ ended: event || undefined })
110
- }
111
- validators={[
112
- new RequiredValidator(
113
- intl.formatMessage(isOngoingMessages.required)
114
- ),
115
- ]}
116
- showMonthYearPicker
117
- dateFormat="yyyy-MM"
118
- maxDate={new Date()}
119
- />
120
- ) : null}
121
-
122
- <RadioGroup
123
- alternatives={isSwedenAlternatives}
124
- header={intl.formatMessage(isLocalCountryMessages.header, {
125
- possessiveName: formatPossessive(
126
- pepContext.state.ownerName,
127
- intl.locale
128
- ),
129
- })}
130
- onChange={updateIsSweden}
131
- value={isSwedenAlternatives.find(
132
- (alt) => alt.value === pepContext.state.isSweden
133
- )}
134
- validators={[
135
- new RequiredValidator(
136
- intl.formatMessage(isLocalCountryMessages.required)
137
- ),
138
- ]}
139
- />
140
-
141
- {pepContext.state.isSweden && pepContext.state.isSweden === "other" ? (
142
- <CountrySelect
143
- label={intl.formatMessage(countrySelectionMessages.header, {
144
- entityType,
145
- name: pepContext.state.ownerName,
146
- possessiveName: formatPossessive(
147
- pepContext.state.ownerName,
148
- intl.locale
149
- ),
150
- relation:
151
- pepContext.state.type === PepType.COLLEAGUE
152
- ? pepContext.state.businessRelation
153
- : pepContext.state.relationToPEP,
154
- pepType: pepContext.state.type,
155
- })}
156
- onChange={(event) =>
157
- pepContext.setState({
158
- country: event.value ? event.value.toString() : undefined,
159
- })
160
- }
161
- validators={[
162
- new RequiredValidator(
163
- intl.formatMessage(countrySelectionMessages.required)
164
- ),
165
- ]}
166
- value={pepContext.state.country}
167
- omitCountries={["SE"]}
168
- />
169
- ) : null}
170
-
171
- <PrimaryButton type="submit">
172
- <FormattedMessage
173
- id="pep.status.next"
174
- description="Next button"
175
- defaultMessage="Gå vidare"
176
- />
177
- </PrimaryButton>
178
- </Form>
179
- </div>
180
- );
181
- };
182
-
183
- function getIsLocalCountryAlternatives(intl: IntlShape): Alternative<string>[] {
184
- return [
185
- {
186
- text: intl.formatMessage(localCountryAltMessages.localCountry),
187
- value: "sweden",
188
- },
189
- {
190
- text: intl.formatMessage(localCountryAltMessages.otherCountry),
191
- value: "other",
192
- },
193
- ];
194
- }
195
-
196
- function getStateAlternatives(intl: IntlShape): Alternative<PepStatus>[] {
197
- return [
198
- {
199
- text: intl.formatMessage(stateAltMessages[PepStatus.ONGOING]),
200
- value: PepStatus.ONGOING,
201
- },
202
- {
203
- text: intl.formatMessage(stateAltMessages[PepStatus.ENDED]),
204
- value: PepStatus.ENDED,
205
- },
206
- ];
207
- }
1
+ import React, {
2
+ FunctionComponent,
3
+ useRef,
4
+ useCallback,
5
+ useContext,
6
+ } from "react";
7
+ import {
8
+ Form,
9
+ RadioGroup,
10
+ RequiredValidator,
11
+ PrimaryButton,
12
+ LysaFormRef,
13
+ Datepicker,
14
+ Card,
15
+ } from "@lysaab/ui-2";
16
+ import { Alternative } from "@lysaab/ui-2/components/input/InputAPI";
17
+ import { PepContext, PepStatus, EntityType, PepType } from "../PepContext";
18
+ import { CountrySelect } from "../../components/CountrySelect";
19
+ import { useIntl, FormattedMessage, IntlShape } from "react-intl";
20
+ import {
21
+ isOngoingMessages,
22
+ endedMessages,
23
+ isLocalCountryMessages,
24
+ countrySelectionMessages,
25
+ localCountryAltMessages,
26
+ stateAltMessages,
27
+ } from "./StatusMessages";
28
+ import { formatPossessive } from "../../utils/Possession";
29
+
30
+ interface Props {
31
+ next: () => void;
32
+ }
33
+
34
+ export const StatusPage: FunctionComponent<Props> = ({ next }) => {
35
+ const pepContext = useContext(PepContext);
36
+ const formRef = useRef<LysaFormRef>();
37
+ const intl = useIntl();
38
+ const stateAlternatives = getStateAlternatives(intl);
39
+ const isSwedenAlternatives = getIsLocalCountryAlternatives(intl);
40
+ const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
41
+
42
+ const nextPage = useCallback(() => {
43
+ if (formRef.current && formRef.current.isValid) {
44
+ next();
45
+ }
46
+ }, [formRef, next]);
47
+
48
+ const updateIsSweden = useCallback(
49
+ (alternative: Alternative<string>) => {
50
+ pepContext.setState({ isSweden: alternative.value });
51
+
52
+ if (alternative.value === "other") {
53
+ pepContext.setState({ country: undefined });
54
+ }
55
+ },
56
+ [pepContext]
57
+ );
58
+
59
+ const updateIsOngoing = useCallback(
60
+ (alternative: Alternative<PepStatus>) => {
61
+ pepContext.setState({ isOngoing: alternative.value });
62
+
63
+ if (alternative.value === PepStatus.ONGOING) {
64
+ pepContext.setState({ ended: undefined });
65
+ }
66
+ },
67
+ [pepContext]
68
+ );
69
+
70
+ return (
71
+ <div>
72
+ <Form
73
+ lysaFormRef={formRef}
74
+ onSubmit={() => {
75
+ nextPage();
76
+ }}
77
+ >
78
+ <Card>
79
+ <RadioGroup
80
+ alternatives={stateAlternatives}
81
+ header={intl.formatMessage(isOngoingMessages.header, {
82
+ entityType,
83
+ name: pepContext.state.ownerName,
84
+ possessiveName: formatPossessive(
85
+ pepContext.state.ownerName,
86
+ intl.locale
87
+ ),
88
+ relation:
89
+ pepContext.state.type === PepType.COLLEAGUE
90
+ ? pepContext.state.businessRelation
91
+ : pepContext.state.relationToPEP,
92
+ pepType: pepContext.state.type,
93
+ })}
94
+ onChange={updateIsOngoing}
95
+ value={stateAlternatives.find(
96
+ (alt) => alt.value === pepContext.state.isOngoing
97
+ )}
98
+ validators={[
99
+ new RequiredValidator(
100
+ intl.formatMessage(isOngoingMessages.required)
101
+ ),
102
+ ]}
103
+ />
104
+
105
+ {pepContext.state.isOngoing &&
106
+ pepContext.state.isOngoing === PepStatus.ENDED ? (
107
+ <Datepicker
108
+ label={intl.formatMessage(endedMessages.header)}
109
+ selected={pepContext.state.ended}
110
+ onChange={(event) =>
111
+ pepContext.setState({ ended: event || undefined })
112
+ }
113
+ validators={[
114
+ new RequiredValidator(
115
+ intl.formatMessage(isOngoingMessages.required)
116
+ ),
117
+ ]}
118
+ showMonthYearPicker
119
+ dateFormat="yyyy-MM"
120
+ maxDate={new Date()}
121
+ />
122
+ ) : null}
123
+ </Card>
124
+
125
+ <Card>
126
+ <RadioGroup
127
+ alternatives={isSwedenAlternatives}
128
+ header={intl.formatMessage(isLocalCountryMessages.header, {
129
+ possessiveName: formatPossessive(
130
+ pepContext.state.ownerName,
131
+ intl.locale
132
+ ),
133
+ })}
134
+ onChange={updateIsSweden}
135
+ value={isSwedenAlternatives.find(
136
+ (alt) => alt.value === pepContext.state.isSweden
137
+ )}
138
+ validators={[
139
+ new RequiredValidator(
140
+ intl.formatMessage(isLocalCountryMessages.required)
141
+ ),
142
+ ]}
143
+ />
144
+
145
+ {pepContext.state.isSweden &&
146
+ pepContext.state.isSweden === "other" ? (
147
+ <CountrySelect
148
+ label={intl.formatMessage(countrySelectionMessages.header, {
149
+ entityType,
150
+ name: pepContext.state.ownerName,
151
+ possessiveName: formatPossessive(
152
+ pepContext.state.ownerName,
153
+ intl.locale
154
+ ),
155
+ relation:
156
+ pepContext.state.type === PepType.COLLEAGUE
157
+ ? pepContext.state.businessRelation
158
+ : pepContext.state.relationToPEP,
159
+ pepType: pepContext.state.type,
160
+ })}
161
+ onChange={(event) =>
162
+ pepContext.setState({
163
+ country: event.value ? event.value.toString() : undefined,
164
+ })
165
+ }
166
+ validators={[
167
+ new RequiredValidator(
168
+ intl.formatMessage(countrySelectionMessages.required)
169
+ ),
170
+ ]}
171
+ value={pepContext.state.country}
172
+ omitCountries={["SE"]}
173
+ />
174
+ ) : null}
175
+ </Card>
176
+
177
+ <PrimaryButton block type="submit">
178
+ <FormattedMessage
179
+ id="pep.status.next"
180
+ description="Next button"
181
+ defaultMessage="Gå vidare"
182
+ />
183
+ </PrimaryButton>
184
+ </Form>
185
+ </div>
186
+ );
187
+ };
188
+
189
+ function getIsLocalCountryAlternatives(intl: IntlShape): Alternative<string>[] {
190
+ return [
191
+ {
192
+ text: intl.formatMessage(localCountryAltMessages.localCountry),
193
+ value: "sweden",
194
+ },
195
+ {
196
+ text: intl.formatMessage(localCountryAltMessages.otherCountry),
197
+ value: "other",
198
+ },
199
+ ];
200
+ }
201
+
202
+ function getStateAlternatives(intl: IntlShape): Alternative<PepStatus>[] {
203
+ return [
204
+ {
205
+ text: intl.formatMessage(stateAltMessages[PepStatus.ONGOING]),
206
+ value: PepStatus.ONGOING,
207
+ },
208
+ {
209
+ text: intl.formatMessage(stateAltMessages[PepStatus.ENDED]),
210
+ value: PepStatus.ENDED,
211
+ },
212
+ ];
213
+ }