@lysaab/lysa-pep 1.0.0 → 1.0.1-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 (62) hide show
  1. package/.vscode/settings.json +4 -0
  2. package/lib/Exports.d.ts +7 -8
  3. package/lib/Exports.js +7 -8
  4. package/lib/components/CountrySelect.d.ts +15 -22
  5. package/lib/components/CountrySelect.js +30 -21
  6. package/lib/components/PepAnswers.d.ts +8 -8
  7. package/lib/components/PepAnswers.js +131 -39
  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 -0
  16. package/lib/pages/IsPep/IsPepMessages.js +74 -0
  17. package/lib/pages/IsPep/IsPepPage.d.ts +14 -0
  18. package/lib/pages/IsPep/IsPepPage.js +39 -0
  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 -0
  30. package/lib/pages/RelationPage/RelationMessages.js +282 -0
  31. package/lib/pages/RelationPage/RelationPage.d.ts +6 -0
  32. package/lib/pages/RelationPage/RelationPage.js +142 -0
  33. package/lib/pages/RolePage/RoleMessages.d.ts +185 -0
  34. package/lib/pages/RolePage/RoleMessages.js +381 -0
  35. package/lib/pages/RolePage/RolePage.d.ts +11 -0
  36. package/lib/pages/RolePage/RolePage.js +214 -0
  37. package/lib/pages/StatusPage/StatusMessages.d.ts +72 -0
  38. package/lib/pages/StatusPage/StatusMessages.js +74 -0
  39. package/lib/pages/StatusPage/StatusPage.d.ts +6 -0
  40. package/lib/pages/StatusPage/StatusPage.js +75 -0
  41. package/package.json +57 -53
  42. package/src/Exports.ts +12 -13
  43. package/src/components/CountrySelect.tsx +47 -43
  44. package/src/components/PepAnswers.scss +7 -7
  45. package/src/components/PepAnswers.tsx +252 -120
  46. package/src/demo/Done.tsx +16 -20
  47. package/src/demo/Pep.tsx +112 -106
  48. package/src/model/PepModel.ts +52 -52
  49. package/src/pages/IsPep/IsPepMessages.ts +75 -0
  50. package/src/pages/IsPep/IsPepPage.tsx +94 -0
  51. package/src/pages/PepContext.tsx +144 -144
  52. package/src/pages/RelationPage/RelationMessages.ts +287 -0
  53. package/src/pages/RelationPage/RelationPage.tsx +269 -0
  54. package/src/pages/RolePage/RoleMessages.ts +389 -0
  55. package/src/pages/RolePage/RolePage.tsx +342 -0
  56. package/src/pages/StatusPage/StatusMessages.ts +80 -0
  57. package/src/pages/StatusPage/StatusPage.tsx +172 -0
  58. package/src/model/PepTexts.ts +0 -607
  59. package/src/pages/PepIsPepPage.tsx +0 -107
  60. package/src/pages/PepRelationPage.tsx +0 -188
  61. package/src/pages/PepRolePage.tsx +0 -272
  62. package/src/pages/PepStatusPage.tsx +0 -157
@@ -1,79 +1,83 @@
1
- import React, { useContext, useRef, useCallback, } from "react";
2
- import { PepContext, PepType, BusinessRelation, Relation, EntityType, } from "./PepContext";
3
- import { RadioGroup, Form, RequiredValidator, TextInput, Datepicker, PrimaryButton, } from "@lysaab/ui-2";
4
- import { LABELS } from "../model/PepTexts";
5
- import { DateTime } from "luxon";
6
- const DATEPICKER_START_DATE = DateTime.fromISO("1970-01-01").toJSDate();
7
- export const PepRelationPage = ({ next }) => {
8
- const pepContext = useContext(PepContext);
9
- const formRef = useRef();
10
- const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
11
- const type = pepContext.state.type;
12
- const labels = LABELS(pepContext.state.ownerName);
13
- const businessRelationAlternatives = [
14
- {
15
- text: labels[entityType][PepType.COLLEAGUE].BUSINESS_RELATION[BusinessRelation.CO_OWNERSHIP],
16
- value: BusinessRelation.CO_OWNERSHIP,
17
- },
18
- {
19
- text: labels[entityType][PepType.COLLEAGUE].BUSINESS_RELATION[BusinessRelation.CLOSE_CONNECTION],
20
- value: BusinessRelation.CLOSE_CONNECTION,
21
- },
22
- {
23
- text: labels[entityType][PepType.COLLEAGUE].BUSINESS_RELATION[BusinessRelation.COMPANY_FOR_PEP],
24
- value: BusinessRelation.COMPANY_FOR_PEP,
25
- },
26
- ];
27
- const relationAlternatives = [
28
- {
29
- text: labels[entityType][PepType.RELATIVE].RELATION[Relation.MARRIED_PARTNER],
30
- value: Relation.MARRIED_PARTNER,
31
- },
32
- {
33
- text: labels[entityType][PepType.RELATIVE].RELATION[Relation.COLIVING_PARTNER],
34
- value: Relation.COLIVING_PARTNER,
35
- },
36
- {
37
- text: labels[entityType][PepType.RELATIVE].RELATION[Relation.CHILD],
38
- value: Relation.CHILD,
39
- },
40
- {
41
- text: labels[entityType][PepType.RELATIVE].RELATION[Relation.PARENT],
42
- value: Relation.PARENT,
43
- },
44
- {
45
- text: labels[entityType][PepType.RELATIVE].RELATION[Relation.CHILD_MARRIED_PARTNER],
46
- value: Relation.CHILD_MARRIED_PARTNER,
47
- },
48
- {
49
- text: labels[entityType][PepType.RELATIVE].RELATION[Relation.CHILD_COLIVING_PARTNER],
50
- value: Relation.CHILD_COLIVING_PARTNER,
51
- },
52
- ];
53
- const nextPage = useCallback(() => {
54
- if (formRef.current && formRef.current.isValid) {
55
- next();
56
- }
57
- }, [formRef, next]);
58
- return (React.createElement(Form, { onSubmit: () => nextPage(), lysaFormRef: formRef },
59
- type === PepType.RELATIVE ? (React.createElement(RadioGroup, { alternatives: relationAlternatives, onChange: alternative => {
60
- pepContext.setState({
61
- relationToPEP: alternative.value,
62
- });
63
- }, value: relationAlternatives.find(alt => alt.value === pepContext.state.relationToPEP), header: labels[entityType][PepType.RELATIVE].RELATION_LABEL, validators: [new RequiredValidator("Du måste välja ett alternativ")] })) : null,
64
- type === PepType.COLLEAGUE ? (React.createElement(RadioGroup, { alternatives: businessRelationAlternatives, onChange: alternative => {
65
- pepContext.setState({
66
- businessRelation: alternative.value,
67
- });
68
- }, value: businessRelationAlternatives.find(alt => alt.value === pepContext.state.businessRelation), header: labels[entityType][PepType.COLLEAGUE].BUSINESS_RELATION_LABEL, validators: [new RequiredValidator("Du måste välja ett alternativ")] })) : null,
69
- pepContext.state.relationToPEP && type === PepType.RELATIVE ? (React.createElement(React.Fragment, null,
70
- React.createElement(TextInput, { label: labels[entityType][type].NAME_LABEL[pepContext.state.relationToPEP], value: pepContext.state.nameOfPEP || "", onChange: value => {
71
- pepContext.setState({ nameOfPEP: value });
72
- }, validators: [new RequiredValidator("Du måste ange namn")] }),
73
- React.createElement(Datepicker, { label: labels[entityType][type].BIRTH_LABEL[pepContext.state.relationToPEP], selected: pepContext.state.birthdayOfPEP, onChange: event => pepContext.setState({ birthdayOfPEP: event || undefined }), validators: [new RequiredValidator("Ange datum")], maxDate: new Date(), openToDate: pepContext.state.birthdayOfPEP || DATEPICKER_START_DATE }))) : null,
74
- pepContext.state.businessRelation && type === PepType.COLLEAGUE ? (React.createElement(React.Fragment, null,
75
- React.createElement(TextInput, { label: labels[entityType][type].NAME_LABEL[pepContext.state.businessRelation], value: pepContext.state.nameOfPEP || "", onChange: value => {
76
- pepContext.setState({ nameOfPEP: value });
77
- }, validators: [new RequiredValidator("Du måste ange namn")] }))) : null,
78
- React.createElement(PrimaryButton, { type: "submit" }, "N\u00E4sta")));
79
- };
1
+ import React, { useContext, useRef, useCallback } from "react";
2
+ import { PepContext, PepType, BusinessRelation, Relation, EntityType } from "./PepContext";
3
+ import { RadioGroup, Form, RequiredValidator, TextInput, Datepicker, PrimaryButton } from "@lysaab/ui-2";
4
+ import { LABELS } from "../model/PepTexts";
5
+ import { DateTime } from "luxon";
6
+ const DATEPICKER_START_DATE = DateTime.fromISO("1970-01-01").toJSDate();
7
+ export const PepRelationPage = ({ next }) => {
8
+ const pepContext = useContext(PepContext);
9
+ const formRef = useRef();
10
+ const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
11
+ const type = pepContext.state.type;
12
+ const labels = LABELS(pepContext.state.ownerName);
13
+ const businessRelationAlternatives = [
14
+ {
15
+ text: labels[entityType][PepType.COLLEAGUE].BUSINESS_RELATION[BusinessRelation.CO_OWNERSHIP],
16
+ value: BusinessRelation.CO_OWNERSHIP
17
+ },
18
+ {
19
+ text: labels[entityType][PepType.COLLEAGUE].BUSINESS_RELATION[BusinessRelation.CLOSE_CONNECTION],
20
+ value: BusinessRelation.CLOSE_CONNECTION
21
+ },
22
+ {
23
+ text: labels[entityType][PepType.COLLEAGUE].BUSINESS_RELATION[BusinessRelation.COMPANY_FOR_PEP],
24
+ value: BusinessRelation.COMPANY_FOR_PEP
25
+ }
26
+ ];
27
+ const relationAlternatives = [
28
+ {
29
+ text: labels[entityType][PepType.RELATIVE].RELATION[Relation.MARRIED_PARTNER],
30
+ value: Relation.MARRIED_PARTNER
31
+ },
32
+ {
33
+ text: labels[entityType][PepType.RELATIVE].RELATION[Relation.COLIVING_PARTNER],
34
+ value: Relation.COLIVING_PARTNER
35
+ },
36
+ {
37
+ text: labels[entityType][PepType.RELATIVE].RELATION[Relation.CHILD],
38
+ value: Relation.CHILD
39
+ },
40
+ {
41
+ text: labels[entityType][PepType.RELATIVE].RELATION[Relation.PARENT],
42
+ value: Relation.PARENT
43
+ },
44
+ {
45
+ text: labels[entityType][PepType.RELATIVE].RELATION[Relation.CHILD_MARRIED_PARTNER],
46
+ value: Relation.CHILD_MARRIED_PARTNER
47
+ },
48
+ {
49
+ text: labels[entityType][PepType.RELATIVE].RELATION[Relation.CHILD_COLIVING_PARTNER],
50
+ value: Relation.CHILD_COLIVING_PARTNER
51
+ }
52
+ ];
53
+ const nextPage = useCallback(() => {
54
+ if (formRef.current && formRef.current.isValid) {
55
+ next();
56
+ }
57
+ }, [formRef, next]);
58
+ return (React.createElement(Form, { onSubmit: () => nextPage(), lysaFormRef: formRef },
59
+ type === PepType.RELATIVE ? (React.createElement(RadioGroup, { alternatives: relationAlternatives, onChange: event => {
60
+ pepContext.setState({
61
+ relationToPEP: event.value
62
+ ? event.value.value
63
+ : undefined
64
+ });
65
+ }, value: relationAlternatives.find(alt => alt.value === pepContext.state.relationToPEP), header: labels[entityType][PepType.RELATIVE].RELATION_LABEL, validators: [RequiredValidator("Du måste välja ett alternativ")] })) : null,
66
+ type === PepType.COLLEAGUE ? (React.createElement(RadioGroup, { alternatives: businessRelationAlternatives, onChange: event => {
67
+ pepContext.setState({
68
+ businessRelation: event.value
69
+ ? event.value.value
70
+ : undefined
71
+ });
72
+ }, value: businessRelationAlternatives.find(alt => alt.value === pepContext.state.businessRelation), header: labels[entityType][PepType.COLLEAGUE].BUSINESS_RELATION_LABEL, validators: [RequiredValidator("Du måste välja ett alternativ")] })) : null,
73
+ pepContext.state.relationToPEP && type === PepType.RELATIVE ? (React.createElement(React.Fragment, null,
74
+ React.createElement(TextInput, { label: labels[entityType][type].NAME_LABEL[pepContext.state.relationToPEP], value: pepContext.state.nameOfPEP || "", onChange: event => {
75
+ pepContext.setState({ nameOfPEP: event.value });
76
+ }, validators: [RequiredValidator("Du måste ange namn")] }),
77
+ React.createElement(Datepicker, { label: labels[entityType][type].BIRTH_LABEL[pepContext.state.relationToPEP], selected: pepContext.state.birthdayOfPEP, onChange: event => pepContext.setState({ birthdayOfPEP: event || undefined }), validators: [RequiredValidator("Ange datum")], maxDate: new Date(), openToDate: pepContext.state.birthdayOfPEP || DATEPICKER_START_DATE }))) : null,
78
+ pepContext.state.businessRelation && type === PepType.COLLEAGUE ? (React.createElement(React.Fragment, null,
79
+ React.createElement(TextInput, { label: labels[entityType][type].NAME_LABEL[pepContext.state.businessRelation], value: pepContext.state.nameOfPEP || "", onChange: event => {
80
+ pepContext.setState({ nameOfPEP: event.value });
81
+ }, validators: [RequiredValidator("Du måste ange namn")] }))) : null,
82
+ React.createElement(PrimaryButton, { type: "submit" }, "N\u00E4sta")));
83
+ };
@@ -1,10 +1,9 @@
1
- import { FunctionComponent } from "react";
2
- import { Alternative } from "@lysaab/ui-2/components/input/InputAPI";
3
- import { Role, MilitaryRank } from "./PepContext";
4
- interface Props {
5
- next: () => void;
6
- }
7
- export declare const roleAlternatives: Alternative<Role>[];
8
- export declare const militaryAlternatives: Alternative<MilitaryRank>[];
9
- export declare const PepRolePage: FunctionComponent<Props>;
10
- export {};
1
+ import { FunctionComponent } from "react";
2
+ import { Alternative } from "@lysaab/ui-2/components/input/InputAPI";
3
+ interface Props {
4
+ next: () => void;
5
+ }
6
+ export declare const roleAlternatives: Alternative[];
7
+ export declare const militaryAlternatives: Alternative[];
8
+ export declare const PepRolePage: FunctionComponent<Props>;
9
+ export {};
@@ -1,127 +1,127 @@
1
- import React, { useRef, useCallback, useContext, } from "react";
2
- import { Form, PrimaryButton, RequiredValidator, TextInput, Select, } from "@lysaab/ui-2";
3
- import { PepContext, Role, MilitaryRank, EntityType, PepType, } from "./PepContext";
4
- import { CountrySelect } from "../components/CountrySelect";
5
- import { getGovernmentCompanyNameLabel, getGovernmentCompanyRoleLabel, getHighRankingPositionIntCorpNameLabel, getHighRankingPositionIntCorpRoleLabel, getMilitaryRankLabel, getRoleLabel, getAmbassadorLabel, } from "../model/PepTexts";
6
- export const roleAlternatives = [
7
- { text: "Stats eller regeringschef", value: Role.HEAD_OF_GOVERNMENT },
8
- { text: "Minister eller Vice/Biträdande minister", value: Role.MINISTER },
9
- { text: "Ledamot i parlament eller riksdag", value: Role.PARLIMENT_MEMBER },
10
- {
11
- text: "Ledamot i centralbanks styrande organ",
12
- value: Role.CENTRAL_BANK_MEMBER,
13
- },
14
- {
15
- text: "Ledamot för styrelsen i politiskt parti representerade i riksdagen",
16
- value: Role.BOARD_MEMBER_POLITICAL_PARTY,
17
- },
18
- { text: "Domare i högsta domstolen", value: Role.JUDGE_SUPREME_COURT },
19
- {
20
- text: "Domare i konstitutionell domstol eller annat rättsligt organ på hög nivå vars beslut endast undantagsvis kan överklagas",
21
- value: Role.JUDGE_OTHER_HIGH_COURT,
22
- },
23
- {
24
- text: "Högre tjänsteman vid revisionsmyndighet",
25
- value: Role.REVISION_INSTITUTE,
26
- },
27
- { text: "Ambassadör eller bestickningschef", value: Role.AMBASSADOR },
28
- { text: "Högre officer i försvarsmakt", value: Role.MILITARY_OFFICER },
29
- {
30
- text: "Person som ingår i statsägt företags förvaltnings-, lednings eller kontrollorgan",
31
- value: Role.GOVERNMENT_COMPANY,
32
- },
33
- {
34
- text: "EU-parlamentariker",
35
- value: Role.EU_HIGH_RANKING_POSITION,
36
- },
37
- {
38
- text: "Befattning på hög nivå i en internationell organisation",
39
- value: Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP,
40
- },
41
- ];
42
- export const militaryAlternatives = [
43
- {
44
- text: "General",
45
- value: MilitaryRank.GENERAL,
46
- },
47
- {
48
- text: "Generallöjtnant",
49
- value: MilitaryRank.LIEUTENANT_GENERAL,
50
- },
51
- {
52
- text: "Generalmajor",
53
- value: MilitaryRank.MAJOR_GENERAL,
54
- },
55
- {
56
- text: "Amiral",
57
- value: MilitaryRank.ADMIRAL,
58
- },
59
- {
60
- text: "Viceamiral",
61
- value: MilitaryRank.VICE_ADMIRAL,
62
- },
63
- {
64
- text: "Konteramiral",
65
- value: MilitaryRank.REAR_ADMIRAL,
66
- },
67
- ];
68
- export const PepRolePage = ({ next }) => {
69
- const pepContext = useContext(PepContext);
70
- const formRef = useRef();
71
- const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
72
- const type = pepContext.state.type;
73
- const nextPage = useCallback(() => {
74
- if (formRef.current && formRef.current.isValid) {
75
- next();
76
- }
77
- }, [formRef, next]);
78
- const resetRoleFields = useCallback(() => {
79
- pepContext.setState({
80
- ambassadorCountry: undefined,
81
- governmentCompany: undefined,
82
- governmentCompanyRole: undefined,
83
- internationalOrganisation: undefined,
84
- internationalOrganisationRole: undefined,
85
- militaryRank: undefined,
86
- });
87
- }, [pepContext]);
88
- if (!type || type === PepType.NOT_PEP) {
89
- return null;
90
- }
91
- return (React.createElement(Form, { onSubmit: () => nextPage(), lysaFormRef: formRef },
92
- React.createElement(Select, { label: getRoleLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), placeholder: "V\u00E4lj en roll", alternatives: roleAlternatives, value: roleAlternatives.find(alt => alt.value === pepContext.state.role), onChange: event => {
93
- pepContext.setState({ role: event.value });
94
- resetRoleFields();
95
- }, validators: [new RequiredValidator("Du måste välja roll")] }),
96
- pepContext.state.role && pepContext.state.role === Role.AMBASSADOR ? (React.createElement(CountrySelect, { label: getAmbassadorLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), onChange: event => pepContext.setState({
97
- ambassadorCountry: event.value
98
- ? event.value.toString()
99
- : undefined,
100
- }), value: pepContext.state.ambassadorCountry, validators: [new RequiredValidator("Du måste välja land")] })) : null,
101
- pepContext.state.role &&
102
- pepContext.state.role === Role.GOVERNMENT_COMPANY ? (React.createElement(React.Fragment, null,
103
- React.createElement(TextInput, { label: getGovernmentCompanyNameLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), value: pepContext.state.governmentCompany || "", onChange: value => {
104
- pepContext.setState({ governmentCompany: value });
105
- }, validators: [new RequiredValidator("Du måste ange ett namn")] }),
106
- React.createElement(TextInput, { label: getGovernmentCompanyRoleLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), value: pepContext.state.governmentCompanyRole || "", onChange: value => {
107
- pepContext.setState({
108
- governmentCompanyRole: value,
109
- });
110
- }, validators: [new RequiredValidator("Du måste ange roll")] }))) : null,
111
- pepContext.state.role &&
112
- pepContext.state.role ===
113
- Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP ? (React.createElement(React.Fragment, null,
114
- React.createElement(TextInput, { label: getHighRankingPositionIntCorpNameLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), value: pepContext.state.internationalOrganisation || "", onChange: value => {
115
- pepContext.setState({ internationalOrganisation: value });
116
- }, validators: [new RequiredValidator("Du måste ange ett namn")] }),
117
- React.createElement(TextInput, { label: getHighRankingPositionIntCorpRoleLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), value: pepContext.state.internationalOrganisationRole || "", onChange: value => {
118
- pepContext.setState({
119
- internationalOrganisationRole: value,
120
- });
121
- }, validators: [new RequiredValidator("Du måste ange roll")] }))) : null,
122
- pepContext.state.role &&
123
- pepContext.state.role === Role.MILITARY_OFFICER ? (React.createElement(Select, { label: getMilitaryRankLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), placeholder: "V\u00E4lj grad", alternatives: militaryAlternatives, value: militaryAlternatives.find(alt => alt.value === pepContext.state.militaryRank), onChange: event => {
124
- pepContext.setState({ militaryRank: event.value });
125
- }, validators: [new RequiredValidator("Du måste ange en grad")] })) : null,
126
- React.createElement(PrimaryButton, { type: "submit" }, "N\u00E4sta")));
127
- };
1
+ import React, { useRef, useCallback, useContext } from "react";
2
+ import { Form, PrimaryButton, RequiredValidator, TextInput, Select } from "@lysaab/ui-2";
3
+ import { PepContext, Role, MilitaryRank, EntityType, PepType, } from "./PepContext";
4
+ import { CountrySelect } from "../components/CountrySelect";
5
+ import { getGovernmentCompanyNameLabel, getGovernmentCompanyRoleLabel, getHighRankingPositionIntCorpNameLabel, getHighRankingPositionIntCorpRoleLabel, getMilitaryRankLabel, getRoleLabel, getAmbassadorLabel } from "../model/PepTexts";
6
+ export const roleAlternatives = [
7
+ { text: "Stats eller regeringschef", value: Role.HEAD_OF_GOVERNMENT },
8
+ { text: "Minister eller Vice/Biträdande minister", value: Role.MINISTER },
9
+ { text: "Ledamot i parlament eller riksdag", value: Role.PARLIMENT_MEMBER },
10
+ {
11
+ text: "Ledamot i centralbanks styrande organ",
12
+ value: Role.CENTRAL_BANK_MEMBER
13
+ },
14
+ {
15
+ text: "Ledamot för styrelsen i politiskt parti representerade i riksdagen",
16
+ value: Role.BOARD_MEMBER_POLITICAL_PARTY
17
+ },
18
+ { text: "Domare i högsta domstolen", value: Role.JUDGE_SUPREME_COURT },
19
+ {
20
+ text: "Domare i konstitutionell domstol eller annat rättsligt organ på hög nivå vars beslut endast undantagsvis kan överklagas",
21
+ value: Role.JUDGE_OTHER_HIGH_COURT
22
+ },
23
+ {
24
+ text: "Högre tjänsteman vid revisionsmyndighet",
25
+ value: Role.REVISION_INSTITUTE
26
+ },
27
+ { text: "Ambassadör eller bestickningschef", value: Role.AMBASSADOR },
28
+ { text: "Högre officer i försvarsmakt", value: Role.MILITARY_OFFICER },
29
+ {
30
+ text: "Person som ingår i statsägt företags förvaltnings-, lednings eller kontrollorgan",
31
+ value: Role.GOVERNMENT_COMPANY
32
+ },
33
+ {
34
+ text: "EU-parlamentariker",
35
+ value: Role.EU_HIGH_RANKING_POSITION
36
+ },
37
+ {
38
+ text: "Befattning på hög nivå i en internationell organisation",
39
+ value: Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP
40
+ }
41
+ ];
42
+ export const militaryAlternatives = [
43
+ {
44
+ text: "General",
45
+ value: MilitaryRank.GENERAL
46
+ },
47
+ {
48
+ text: "Generallöjtnant",
49
+ value: MilitaryRank.LIEUTENANT_GENERAL
50
+ },
51
+ {
52
+ text: "Generalmajor",
53
+ value: MilitaryRank.MAJOR_GENERAL
54
+ },
55
+ {
56
+ text: "Amiral",
57
+ value: MilitaryRank.ADMIRAL
58
+ },
59
+ {
60
+ text: "Viceamiral",
61
+ value: MilitaryRank.VICE_ADMIRAL
62
+ },
63
+ {
64
+ text: "Konteramiral",
65
+ value: MilitaryRank.REAR_ADMIRAL
66
+ }
67
+ ];
68
+ export const PepRolePage = ({ next }) => {
69
+ const pepContext = useContext(PepContext);
70
+ const formRef = useRef();
71
+ const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
72
+ const type = pepContext.state.type;
73
+ const nextPage = useCallback(() => {
74
+ if (formRef.current && formRef.current.isValid) {
75
+ next();
76
+ }
77
+ }, [formRef, next]);
78
+ const resetRoleFields = useCallback(() => {
79
+ pepContext.setState({
80
+ ambassadorCountry: undefined,
81
+ governmentCompany: undefined,
82
+ governmentCompanyRole: undefined,
83
+ internationalOrganisation: undefined,
84
+ internationalOrganisationRole: undefined,
85
+ militaryRank: undefined
86
+ });
87
+ }, [pepContext]);
88
+ if (!type || type === PepType.NOT_PEP) {
89
+ return null;
90
+ }
91
+ return (React.createElement(Form, { onSubmit: () => nextPage(), lysaFormRef: formRef },
92
+ React.createElement(Select, { label: getRoleLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), placeholder: "V\u00E4lj en roll", alternatives: roleAlternatives, value: roleAlternatives.find(alt => alt.value === pepContext.state.role), onChange: event => {
93
+ pepContext.setState({ role: event.value });
94
+ resetRoleFields();
95
+ }, validators: [RequiredValidator("Du måste välja roll")] }),
96
+ pepContext.state.role && pepContext.state.role === Role.AMBASSADOR ? (React.createElement(CountrySelect, { label: getAmbassadorLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), onChange: event => pepContext.setState({
97
+ ambassadorCountry: event.value
98
+ ? event.value.toString()
99
+ : undefined
100
+ }), value: pepContext.state.ambassadorCountry, validators: [RequiredValidator("Du måste välja land")] })) : null,
101
+ pepContext.state.role &&
102
+ pepContext.state.role === Role.GOVERNMENT_COMPANY ? (React.createElement(React.Fragment, null,
103
+ React.createElement(TextInput, { label: getGovernmentCompanyNameLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), value: pepContext.state.governmentCompany || "", onChange: event => {
104
+ pepContext.setState({ governmentCompany: event.value });
105
+ }, validators: [RequiredValidator("Du måste ange ett namn")] }),
106
+ React.createElement(TextInput, { label: getGovernmentCompanyRoleLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), value: pepContext.state.governmentCompanyRole || "", onChange: event => {
107
+ pepContext.setState({
108
+ governmentCompanyRole: event.value
109
+ });
110
+ }, validators: [RequiredValidator("Du måste ange roll")] }))) : null,
111
+ pepContext.state.role &&
112
+ pepContext.state.role ===
113
+ Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP ? (React.createElement(React.Fragment, null,
114
+ React.createElement(TextInput, { label: getHighRankingPositionIntCorpNameLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), value: pepContext.state.internationalOrganisation || "", onChange: event => {
115
+ pepContext.setState({ internationalOrganisation: event.value });
116
+ }, validators: [RequiredValidator("Du måste ange ett namn")] }),
117
+ React.createElement(TextInput, { label: getHighRankingPositionIntCorpRoleLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), value: pepContext.state.internationalOrganisationRole || "", onChange: event => {
118
+ pepContext.setState({
119
+ internationalOrganisationRole: event.value
120
+ });
121
+ }, validators: [RequiredValidator("Du måste ange roll")] }))) : null,
122
+ pepContext.state.role &&
123
+ pepContext.state.role === Role.MILITARY_OFFICER ? (React.createElement(Select, { label: getMilitaryRankLabel(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), placeholder: "V\u00E4lj grad", alternatives: militaryAlternatives, value: militaryAlternatives.find(alt => alt.value === pepContext.state.militaryRank), onChange: event => {
124
+ pepContext.setState({ militaryRank: event.value });
125
+ }, validators: [RequiredValidator("Du måste ange en grad")] })) : null,
126
+ React.createElement(PrimaryButton, { type: "submit" }, "N\u00E4sta")));
127
+ };
@@ -1,6 +1,6 @@
1
- import { FunctionComponent } from "react";
2
- interface Props {
3
- next: () => void;
4
- }
5
- export declare const PepStatusPage: FunctionComponent<Props>;
6
- export {};
1
+ import { FunctionComponent } from "react";
2
+ interface Props {
3
+ next: () => void;
4
+ }
5
+ export declare const PepStatusPage: FunctionComponent<Props>;
6
+ export {};
@@ -1,58 +1,57 @@
1
- import React, { useRef, useCallback, useContext, } from "react";
2
- import { Form, RadioGroup, RequiredValidator, PrimaryButton, Datepicker, } from "@lysaab/ui-2";
3
- import { PepContext, PepStatus, EntityType, PepType } from "./PepContext";
4
- import { CountrySelect } from "../components/CountrySelect";
5
- import { LABELS, getStatusOngoingHeader, getStatusCountryHeader, } from "../model/PepTexts";
6
- const stateAlternatives = [
7
- {
8
- text: "Pågående",
9
- value: PepStatus.ONGOING,
10
- },
11
- {
12
- text: "Avslutad",
13
- value: PepStatus.ENDED,
14
- },
15
- ];
16
- const isSwedenAlternatives = [
17
- { text: "Sverige", value: "sweden" },
18
- { text: "Annat", value: "other" },
19
- ];
20
- export const PepStatusPage = ({ next }) => {
21
- const pepContext = useContext(PepContext);
22
- const formRef = useRef();
23
- const nextPage = useCallback(() => {
24
- if (formRef.current && formRef.current.isValid) {
25
- next();
26
- }
27
- }, [formRef, next]);
28
- const updateIsSweden = useCallback((alternative) => {
29
- pepContext.setState({ isSweden: alternative.value });
30
- if (alternative.value === "other") {
31
- pepContext.setState({ country: undefined });
32
- }
33
- }, [pepContext]);
34
- const updateIsOngoing = useCallback((alternative) => {
35
- pepContext.setState({ isOngoing: alternative.value });
36
- if (alternative.value === PepStatus.ONGOING) {
37
- pepContext.setState({ ended: undefined });
38
- }
39
- }, [pepContext]);
40
- const labels = LABELS(pepContext.state.ownerName);
41
- const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
42
- const type = pepContext.state.type;
43
- if (!type || type === PepType.NOT_PEP) {
44
- return null;
45
- }
46
- return (React.createElement("div", null,
47
- React.createElement(Form, { lysaFormRef: formRef, onSubmit: () => {
48
- nextPage();
49
- } },
50
- React.createElement(RadioGroup, { alternatives: stateAlternatives, header: getStatusOngoingHeader(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), onChange: updateIsOngoing, value: stateAlternatives.find((alt) => alt.value === pepContext.state.isOngoing), validators: [new RequiredValidator("Du måste välja ett alternativ")] }),
51
- pepContext.state.isOngoing &&
52
- pepContext.state.isOngoing === PepStatus.ENDED ? (React.createElement(Datepicker, { label: "N\u00E4r avslutades uppdraget?", selected: pepContext.state.ended, onChange: (event) => pepContext.setState({ ended: event || undefined }), validators: [new RequiredValidator("Du måste ange datum")], showMonthYearPicker: true, dateFormat: "yyyy-MM", maxDate: new Date() })) : null,
53
- React.createElement(RadioGroup, { alternatives: isSwedenAlternatives, header: getStatusCountryHeader(entityType, type, pepContext.state.relationToPEP, pepContext.state.businessRelation, pepContext.state.ownerName), onChange: updateIsSweden, value: isSwedenAlternatives.find((alt) => alt.value === pepContext.state.isSweden), validators: [new RequiredValidator("Du måste välja ett alternativ")] }),
54
- pepContext.state.isSweden && pepContext.state.isSweden === "other" ? (React.createElement(CountrySelect, { label: "V\u00E4lj i vilket land befattningen \u00E4r", onChange: (event) => pepContext.setState({
55
- country: event.value ? event.value.toString() : undefined,
56
- }), validators: [new RequiredValidator("Du måste välja land")], value: pepContext.state.country, removeSweden: true })) : null,
57
- React.createElement(PrimaryButton, { type: "submit" }, "N\u00E4sta"))));
58
- };
1
+ import React, { useRef, useCallback, useContext } from "react";
2
+ import { Form, RadioGroup, RequiredValidator, PrimaryButton, Datepicker } from "@lysaab/ui-2";
3
+ import { PepContext, PepStatus } from "./PepContext";
4
+ import { CountrySelect } from "../components/CountrySelect";
5
+ const stateAlternatives = [
6
+ {
7
+ text: "Pågående",
8
+ value: PepStatus.ONGOING
9
+ },
10
+ {
11
+ text: "Avslutad",
12
+ value: PepStatus.ENDED
13
+ }
14
+ ];
15
+ const isSwedenAlternatives = [
16
+ { text: "Sverige", value: "sweden" },
17
+ { text: "Annat", value: "other" }
18
+ ];
19
+ export const PepStatusPage = ({ next }) => {
20
+ const pepContext = useContext(PepContext);
21
+ const formRef = useRef();
22
+ const nextPage = useCallback(() => {
23
+ if (formRef.current && formRef.current.isValid) {
24
+ next();
25
+ }
26
+ }, [formRef, next]);
27
+ const updateIsSweden = useCallback((event) => {
28
+ pepContext.setState({
29
+ isSweden: event.value && event.value.value
30
+ ? event.value.value.toString()
31
+ : undefined
32
+ });
33
+ if (event.value && event.value.value === "other") {
34
+ pepContext.setState({ country: undefined });
35
+ }
36
+ }, [pepContext]);
37
+ const updateIsOngoing = useCallback((event) => {
38
+ pepContext.setState({
39
+ isOngoing: event.value && event.value.value
40
+ ? event.value.value
41
+ : undefined
42
+ });
43
+ if (event.value && event.value.value === PepStatus.ONGOING) {
44
+ pepContext.setState({ ended: undefined });
45
+ }
46
+ }, [pepContext]);
47
+ return (React.createElement("div", null,
48
+ React.createElement(Form, { lysaFormRef: formRef, onSubmit: () => {
49
+ nextPage();
50
+ } },
51
+ React.createElement(RadioGroup, { alternatives: stateAlternatives, header: "\u00C4r befattningen p\u00E5g\u00E5ende eller avslutad?", onChange: updateIsOngoing, value: stateAlternatives.find(alt => alt.value === pepContext.state.isOngoing), validators: [RequiredValidator("Du måste välja ett alternativ")] }),
52
+ pepContext.state.isOngoing &&
53
+ pepContext.state.isOngoing === PepStatus.ENDED ? (React.createElement(Datepicker, { label: "N\u00E4r avslutades uppdraget?", selected: pepContext.state.ended, onChange: event => pepContext.setState({ ended: event || undefined }), validators: [RequiredValidator("Du måste ange fördelsedag")], showMonthYearPicker: true, dateFormat: "yyyy-MM", maxDate: new Date() })) : null,
54
+ React.createElement(RadioGroup, { alternatives: isSwedenAlternatives, header: "I vilket land \u00E4r befattningen", onChange: updateIsSweden, value: isSwedenAlternatives.find(alt => alt.value === pepContext.state.isSweden), validators: [RequiredValidator("Du måste välja ett alternativ")] }),
55
+ pepContext.state.isSweden && pepContext.state.isSweden === "other" ? (React.createElement(CountrySelect, { label: "V\u00E4lj i vilket land befattningen \u00E4r", onChange: event => pepContext.setState({ country: event.value ? event.value.toString() : undefined }), validators: [RequiredValidator("Du måste välja land")], value: pepContext.state.country, removeSweden: true })) : null,
56
+ React.createElement(PrimaryButton, { type: "submit" }, "N\u00E4sta"))));
57
+ };