Merged PR 350: Created basic dynamic form builder and pagination

Related work items: #5177
This commit is contained in:
Robert Bond
2021-07-09 06:51:17 +00:00
54 changed files with 20912 additions and 3055 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
"type": "pwa-chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "https://localhost:3000",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}"
}
]
+145 -86
View File
@@ -1,80 +1,138 @@
import axios from "axios";
import https from 'https';
import https from "https";
//import {XMLHttpRequest} from 'xmlhttprequest';
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
const agent = new https.Agent({
rejectUnauthorized: false,
})
});
const crmHeaders = {
withCredentials: true,
headers:{
headers: {
"Content-Type": "application/json; charset=utf-8",
"OData-MaxVersion": "4.0",
"OData-Version": "4.0",
"Accept": "application/json",
"Prefer": "odata.include-annotations=\"*\"",
agent
"Prefer": 'odata.include-annotations="*"',
agent,
},
auth:{
username: 'xm\bondr',
password: '!Sky9fish1972'
}
}
auth: {
username: "xm\bondr",
password: "!Sky9fish1972",
},
};
export const getBasicSearch = (searchString) => {
console.log('got to axios', searchString)
console.log("got to axios", searchString);
return (
axios
//.get("https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title&$filter=contains(title, '" + searchString + "')&$count=true", crmHeaders)
//.get("https://jsonplaceholder.typicode.com/todos/1",{proxy:{protocol: 'http',host:'lon3.sme.zscloud.net',port: 80}})
.get("http://localhost:3000/api/searchresults2", {
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
})
.then((res) => res.data)
.catch((error) => {
console.log("thiserror", error);
})
);
};
export const getFormData = (whichForm) => {
console.log("got to axios", whichForm);
return (
axios
//.get("http://localhost:3000/api/appealforms/pinswg_dns", {
//.get("http://localhost:3000/api/appealforms/pinswg_planningobligationappeals106", {
//.get("http://localhost:3000/api/appealforms/pinswg_planningconditionss73s79", {
//.get("http://localhost:3000/api/appealforms/pinswg_row", {
//.get("http://localhost:3000/api/appealforms/pinswg_transportandworkact", {
//.get("http://localhost:3000/api/appealforms/pinswg_harbourrevisionorder", {
//.get("http://localhost:3000/api/appealforms/pinswg_planningappeals78", {
//.get(http://localhost:3000/api/appealforms/pinswg_householderappealhas", {
.get("http://localhost:3000/api/appealforms/pinswg_" + whichForm, {
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
})
.then((res) => res.data)
.catch((error) => {
console.log("thiserror", error);
})
);
};
export const getAppealsTypes = () => {
console.log("got to axios: appeal types");
return axios
//.get("https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title&$filter=contains(title, '" + searchString + "')&$count=true", crmHeaders)
//.get("https://jsonplaceholder.typicode.com/todos/1",{proxy:{protocol: 'http',host:'lon3.sme.zscloud.net',port: 80}})
.get("https://localhost:3000/api/searchresults2",{httpsAgent: new https.Agent({rejectUnauthorized:false})})
.then((res)=>res.data)
.catch((error)=>{
console.log('thiserror',error)
})
}
export const getBasicSearch2 = (searchString) =>{
var req = new XMLHttpRequest();
req.open("GET", "https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title&$filter=contains(title, '"+ searchString +"')&$count=true", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
req.onreadystatechange = function() {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var results = JSON.parse(this.response);
var recordCount = results["@odata.count"];
for (var i = 0; i < results.value.length; i++) {
var _accountid_value = results.value[i]["_accountid_value"];
var _accountid_value_formatted = results.value[i]["_accountid_value@OData.Community.Display.V1.FormattedValue"];
var _accountid_value_lookuplogicalname = results.value[i]["_accountid_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
var _customerid_value = results.value[i]["_customerid_value"];
var _customerid_value_formatted = results.value[i]["_customerid_value@OData.Community.Display.V1.FormattedValue"];
var _customerid_value_lookuplogicalname = results.value[i]["_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
var pinswg_appealcasetype = results.value[i]["pinswg_appealcasetype"];
var pinswg_appealcasetype_formatted = results.value[i]["pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"];
var statuscode = results.value[i]["statuscode"];
var ticketnumber = results.value[i]["ticketnumber"];
var title = results.value[i]["title"];
}
} else {
console.log(this.statusText);
}
}
.get("http://localhost:3000/api/lookups/pinswg_appealcasetype", {
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
})
.then((res) => res.data)
.catch((error) => {
console.log("thiserror", error);
});
};
return (req.send());
}
export const getBasicSearch2 = (searchString) => {
var req = new XMLHttpRequest();
req.open(
"GET",
"https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title&$filter=contains(title, '" +
searchString +
"')&$count=true",
true
);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", 'odata.include-annotations="*"');
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var results = JSON.parse(this.response);
var recordCount = results["@odata.count"];
for (var i = 0; i < results.value.length; i++) {
var _accountid_value = results.value[i]["_accountid_value"];
var _accountid_value_formatted =
results.value[i][
"_accountid_value@OData.Community.Display.V1.FormattedValue"
];
var _accountid_value_lookuplogicalname =
results.value[i][
"_accountid_value@Microsoft.Dynamics.CRM.lookuplogicalname"
];
var _customerid_value =
results.value[i]["_customerid_value"];
var _customerid_value_formatted =
results.value[i][
"_customerid_value@OData.Community.Display.V1.FormattedValue"
];
var _customerid_value_lookuplogicalname =
results.value[i][
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname"
];
var pinswg_appealcasetype =
results.value[i]["pinswg_appealcasetype"];
var pinswg_appealcasetype_formatted =
results.value[i][
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
];
var statuscode = results.value[i]["statuscode"];
var ticketnumber = results.value[i]["ticketnumber"];
var title = results.value[i]["title"];
}
} else {
console.log(this.statusText);
}
}
};
return req.send();
};
//get list of entitydefinitions
//https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/EntityDefinitions?$select=LogicalName
@@ -85,11 +143,11 @@ return (req.send());
//get crm xml form for appealtype
//https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/systemforms?$select=formid,name,formxml&$filter=(objecttypecode%20eq%20%27pinswg_dns%27and%20type%20eq%202)&$count=true
// then use regex to remove the escape
// convert xml to json and return
// convert xml to json and return
// promise example
// var xml2js = require('xml2js');
// var xml = '<foo></foo>';
// // With parser
// var parser = new xml2js.Parser(/* options */);
// parser.parseStringPromise(data).then(function (result) {
@@ -100,37 +158,38 @@ return (req.send());
// // Failed
// });
export const getAppealTypeDetail = (caseReference,appealcasetype) =>{
console.log('got to axios', searchString)
export const getAppealTypeDetail = (caseReference, appealcasetype) => {
console.log("got to axios", searchString);
// example appealcasetype type pinswg_householderappealhases
return axios
.get("https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/" + appealcasetype + "?$filter=pinswg_name eq '" + caseReference + "'",{httpsAgent: new https.Agent({rejectUnauthorized:false})})
.then((res)=>res.data)
.catch((error)=>{
console.log('thi serror',error)
})
}
.get(
"https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/" +
appealcasetype +
"?$filter=pinswg_name eq '" +
caseReference +
"'",
{ httpsAgent: new https.Agent({ rejectUnauthorized: false }) }
)
.then((res) => res.data)
.catch((error) => {
console.log("thi serror", error);
});
};
//https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/pinswg_planningappeals78s?$filter=pinswg_name eq 'CAS-00015-L7J9H1'
export const getLPA = () =>{
console.log('got to axios', searchString)
export const getLPA = () => {
console.log("got to axios", searchString);
return axios
.get("https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/accounts?$select=name",{httpsAgent: new https.Agent({rejectUnauthorized:false})})
.then((res)=>res.data)
.catch((error)=>{
console.log('thi serror',error)
})
}
.get(
"https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/accounts?$select=name",
{ httpsAgent: new https.Agent({ rejectUnauthorized: false }) }
)
.then((res) => res.data)
.catch((error) => {
console.log("thi serror", error);
});
};
// var req = new XMLHttpRequest();
// req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.2/incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title&$filter=contains(title, '000')&$count=true", true);
@@ -163,4 +222,4 @@ export const getLPA = () =>{
// }
// }
// };
// req.send();
// req.send();
+14 -11
View File
@@ -2,6 +2,7 @@ import Link from "next/link";
import jsonpath from "jsonpath";
import _ from "lodash";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
const Breadcrumbs = (props) => {
const {
@@ -14,11 +15,13 @@ const Breadcrumbs = (props) => {
applicant_ref,
} = props;
const router = useRouter();
const { course, section } = router.query;
const { appealType, section } = router.query;
let { t } = useTranslation();
function Breadcrumb() {
if (slug) {
var coursePageURL = course + "/" + slug;
var coursePageURL = appealType + "/" + slug;
if (_.isEmpty(courseContent)) {
return null;
} else {
@@ -43,37 +46,37 @@ const Breadcrumbs = (props) => {
return (
<nav
aria-label={"Breadcrumb for " + _.startCase(_.toLower(course))}
aria-label={"Breadcrumb for " + _.startCase(_.toLower(appealType))}
role="navigation"
data-module="track-click"
>
<div className="govuk-breadcrumbs ">
<ol className="govuk-breadcrumbs__list">
<li className="govuk-breadcrumbs__list-item">
<Link href="http://www.gov.uk">
<a className="govuk-breadcrumbs__link">GOV.UK</a>
<Link href="http://www.gov.wales">
<a className="govuk-breadcrumbs__link">GOV.WALES</a>
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link href="/">
<a className="govuk-breadcrumbs__link">
Appeals Casework Portal
{t("common:service-name")}
</a>
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link href="/portal">
<Link href="/myportal">
<a className="govuk-breadcrumbs__link">
Find the right training
{t("myportal:page-title")}
</a>
</Link>
</li>
{!_.isEmpty(course) ? (
{!_.isEmpty(appealType) ? (
<li className="govuk-breadcrumbs__list-item">
<Link
href={
"/" +
course +
appealType +
"?id=" +
applicant_id +
"&refno=" +
@@ -83,7 +86,7 @@ const Breadcrumbs = (props) => {
}
>
<a className="govuk-breadcrumbs__link">
{_.startCase(_.toLower(course))}
{_.startCase(_.toLower(appealType))}
</a>
</Link>
</li>
+281
View File
@@ -0,0 +1,281 @@
export function Textfield(props) {
const { name, label } = props;
return (
<div className="govuk-form-group">
<label className="govuk-label govuk-label--m " htmlFor="event-name">
{props.label}
</label>
<input
className="govuk-input govuk-input--width-20"
id="event-name"
name={props.name}
type="text"
/>
</div>
);
}
export function MultiLinefield(props) {
const { name, label } = props;
return (
<div className="govuk-form-group">
<h1 className="govuk-label-wrapper">
<label
className="govuk-label govuk-label--l"
htmlFor="more-detail"
>
{props.label}
</label>
</h1>
<div id="more-detail-hint" className="govuk-hint">
Do not include personal or financial information, like your
National Insurance number or credit card details.
</div>
<textarea
className="govuk-textarea"
id="more-detail"
name="more-detail"
rows="5"
aria-describedby="more-detail-hint"
></textarea>
</div>
);
}
export function DateField(props) {
const { name, label } = props;
return (
<div className="govuk-form-group">
<fieldset
className="govuk-fieldset"
role="group"
aria-describedby="dob-hint"
>
<legend className="govuk-fieldset__legend govuk-fieldset__legend--s">
<label className="govuk-fieldset__heading">
{props.label}
</label>
</legend>
<div id="dob-hint" className="govuk-hint">
For example, 31 3 1980
</div>
<div className="govuk-date-input" id="dob">
<div className="govuk-date-input__item">
<div className="govuk-form-group">
<label
className="govuk-label govuk-date-input__label"
htmlFor="dob-day"
>
Day
</label>
<input
className="govuk-input govuk-date-input__input govuk-input--width-2"
id="dob-day"
name="dob-day"
type="text"
autoComplete="bday-day"
pattern="[0-9]*"
inputMode="numeric"
/>
</div>
</div>
<div className="govuk-date-input__item">
<div className="govuk-form-group">
<label
className="govuk-label govuk-date-input__label"
htmlFor="dob-month"
>
Month
</label>
<input
className="govuk-input govuk-date-input__input govuk-input--width-2"
id="dob-month"
name="dob-month"
type="text"
autoComplete="bday-month"
pattern="[0-9]*"
inputMode="numeric"
/>
</div>
</div>
<div className="govuk-date-input__item">
<div className="govuk-form-group">
<label
className="govuk-label govuk-date-input__label"
htmlFor="dob-year"
>
Year
</label>
<input
className="govuk-input govuk-date-input__input govuk-input--width-4"
id="dob-year"
name="dob-year"
type="text"
autoComplete="bday-year"
pattern="[0-9]*"
inputMode="numeric"
/>
</div>
</div>
</div>
</fieldset>
</div>
);
}
export function YesNofield(props) {
const { name, label } = props;
return (
<div className="govuk-form-group">
<fieldset
className="govuk-fieldset"
aria-describedby="changed-name-hint"
>
<legend className="govuk-fieldset__legend govuk-fieldset__legend--s">
<label className="govuk-fieldset__heading">
{props.label}
</label>
</legend>
<div id="changed-name-hint" className="govuk-hint">
This includes changing your last name or spelling your name
differently.
</div>
<div className="govuk-radios govuk-radios--inline">
<div className="govuk-radios__item">
<input
className="govuk-radios__input"
id="changed-name"
name="changed-name"
type="radio"
value="yes"
/>
<label
className="govuk-label govuk-radios__label"
htmlFor="changed-name"
>
Yes
</label>
</div>
<div className="govuk-radios__item">
<input
className="govuk-radios__input"
id="changed-name-2"
name="changed-name"
type="radio"
value="no"
/>
<label
className="govuk-label govuk-radios__label"
htmlFor="changed-name-2"
>
No
</label>
</div>
</div>
</fieldset>
</div>
);
}
export function PickList(props) {
const { name, label } = props;
return (
<div className="govuk-form-group">
<label className="govuk-label govuk-body-m" htmlFor="sort">
{props.label}
</label>
<select className="govuk-select" id="sort" name="sort">
<option value="published">Recently published</option>
<option value="updated" defaultValue>
Recently updated
</option>
<option value="views">Most views</option>
<option value="comments">Most comments</option>
</select>
</div>
);
}
export function NumericField(props) {
const { name, label } = props;
return (
<div className="govuk-form-group">
<label
className="govuk-label govuk-label--m"
htmlFor="account-number"
>
{props.label}
</label>
<div id="account-number-hint" className="govuk-hint">
Must be between 6 and 8 digits long
</div>
<input
className="govuk-input govuk-input--width-10"
id="account-number"
name="account-number"
type="text"
spellCheck="false"
aria-describedby="account-number-hint"
pattern="[0-9]*"
inputMode="numeric"
/>
</div>
);
}
export function DecimalField(props) {
const { name, label } = props;
return (
<div className="govuk-form-group">
<label
className="govuk-label govuk-label--m"
htmlFor="account-number"
>
{props.label}
</label>
<div id="account-number-hint" className="govuk-hint">
Must be between 6 and 8 digits long
</div>
<input
className="govuk-input govuk-input--width-10"
id="account-number"
name="account-number"
type="text"
spellCheck="false"
aria-describedby="account-number-hint"
pattern="[0-9]*"
inputMode="numeric"
/>
</div>
);
}
export function ReadOnlyfield(props) {
const { name, label } = props;
return (
<div className="govuk-form-group">
<label className="govuk-label govuk-label--m " htmlFor="event-name">
{props.label}
</label>
<input
className="govuk-input govuk-input--width-20"
id="event-name"
name={props.name}
type="text"
disabled
/>
</div>
);
}
+24 -18
View File
@@ -3,24 +3,30 @@ import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function MakeNewAppeal() {
let { t } = useTranslation();
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card card-3" id="casescomment-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:makenewappeal-card-title")}
</h3>
<p className="govuk-body-s">{t("myportal:makenewappeal-card-paragraph-one")}</p>
<p className="govuk-body-s">{t("myportal:makenewappeal-card-paragraph-two")}</p>
<div>
<Link href="/">
<a className="govuk-button">{t("myportal:makenewappeal-card-button-label")}</a>
</Link>
const router = useRouter();
const { locale } = router;
return (
<div className="card card-3" id="casescomment-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:makenewappeal-card-title")}
</h3>
<p className="govuk-body-s">
{t("myportal:makenewappeal-card-paragraph-one")}
</p>
<p className="govuk-body-s">
{t("myportal:makenewappeal-card-paragraph-two")}
</p>
<div>
<Link href="/newappeal">
<a className="govuk-button">
{t("myportal:makenewappeal-card-button-label")}
</a>
</Link>
</div>
</div>
</div>
</div>
</div>
);
);
}
+34
View File
@@ -0,0 +1,34 @@
import Link from "next/link";
import { useRouter } from "next/router";
import { useContext } from "react";
import useTranslation from "next-translate/useTranslation";
import PlanningAppeal from "./newappeal/planningappeal";
import EnforcementNotice from "./newappeal/enforcementnotice";
import LDC from "./newappeal/ldc";
import AdvertApplication from "./newappeal/advertapplication";
export default function NewAppeal({ children, pages }) {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<main
className="govuk-main-wrapper govuk-main-wrapper--auto-spacing"
id="main-content"
role="main"
>
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<div className="flex-container grid-row govuk-body ">
<PlanningAppeal />
<EnforcementNotice />
<LDC />
<AdvertApplication />
</div>
</div>
</div>
</main>
);
}
+27
View File
@@ -0,0 +1,27 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function MakeAdvertApplication() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card" id="casescomment-card">
<div className="card-body appealModule">
<p className="govuk-body-s">
An appeal relating to an advertisement application or a
discontinuance notice.
</p>
<div className="appealCTA">
<Link href="/newappeal/selectappeal">
<a className="govuk-button">
An advert application/Discontinuance Notice (DN)
</a>
</Link>
</div>
</div>
</div>
);
}
+101
View File
@@ -0,0 +1,101 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
import xpath from "xpath";
import {
Textfield,
DateField,
YesNofield,
PickList,
MultiLinefield,
NumericField,
ReadOnlyfield,
DecimalField,
} from "../elements";
export default function BuildField(props) {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const { fieldType, label, datafieldname } = props;
const parser = new DOMParser();
const whichFieldType = (classid) => {
switch (classid) {
case "{270BD3DB-D9AF-4782-9025-509E298DEC0A}":
return (
<ReadOnlyfield
name={props.datafieldname}
label={props.label}
/>
);
break;
case "{3EF39988-22BB-4f0b-BBBE-64B5A3748AEE}":
return (
<PickList
name={props.datafieldname}
label={props.label}
datafieldname={props.datafieldname}
/>
);
break;
case "{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}":
return (
<YesNofield
name={props.datafieldname}
label={props.label}
/>
);
break;
case "{ 4273EDBD-AC1D-40d3-9FB2-095C621B552D}":
return (
<Textfield name={props.datafieldname} label={props.label} />
);
break;
case "{5B773807-9FB2-42db-97C3-7A91EFF8ADFF}":
return (
<DateField name={props.datafieldname} label={props.label} />
);
break;
case "{E0DECE4B-6FC8-4a8f-A065-082708572369}":
return (
<MultiLinefield
name={props.datafieldname}
label={props.label}
/>
);
break;
case "{C6D124CA-7EDA-4a60-AEA9-7FB8D318B68F}":
return (
<NumericField
name={props.datafieldname}
label={props.label}
/>
);
break;
case "{C3EFE0C3-0EC6-42be-8349-CBD9079DFD8E}":
return (
<DecimalField
name={props.datafieldname}
label={props.label}
/>
);
break;
default:
return (
<Textfield name={props.datafieldname} label={props.label} />
);
}
};
return (
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
{whichFieldType(props.fieldType)}
</div>
</div>
);
}
+39
View File
@@ -0,0 +1,39 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
import xpath from "xpath";
import BuildField from "./buildfield";
export default function BuildRow(props) {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const { rowXML, whichSection, sectionCount } = props;
const parser = new DOMParser();
return (
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
{Object.keys(rowXML).map((key, index) => {
var doc = parser.parseFromString(
rowXML[key].outerHTML,
"text/xml"
);
var rows = xpath.select("//label/@description", doc);
var fieldtype = xpath.select("//@classid", doc);
var datafieldname = xpath.select("//@datafieldname", doc);
return (
<BuildField
fieldType={fieldtype[0].value}
label={rows[0].value}
datafieldname={datafieldname[0].value}
/>
);
})}
</div>
</div>
);
}
+121
View File
@@ -0,0 +1,121 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
import { useState, useEffect } from "react";
import xpath from "xpath";
import BuildRow from "./buildrow";
const BuildSection = (props) => {
useEffect(() => {
window.scrollTo(0, 0);
});
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const { formXML, sectionCount } = props;
const [currentSection, setCurrentSection] = useState(1);
const parser = new DOMParser();
var doc = parser.parseFromString(props.formXML, "text/xml");
var titles = xpath.select(
"//form/tabs/tab[" + currentSection + " ]/labels/label/@description",
doc
);
var rowXML = xpath.select(
"/form/tabs/tab[" +
currentSection +
"]/columns//sections/section/rows/row",
doc
);
var titleList = xpath.select(
"//form/tabs/tab[*]/labels/label/@description",
doc
);
console.log(titleList);
const handleParam = (setValue) => (e) => setValue(e.target.value);
const basicSearch = (event) => {
event.preventDefault();
console.log(query);
// /searchresults
};
return (
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds">
<h2>{titles[0].value} </h2>
<BuildRow
rowXML={rowXML}
whichSection={props.whichSection}
sectionCount={props.sectionCount}
/>
{}
<div class="govuk-button-group">
{props.sectionCount != currentSection ? (
<button
class="govuk-button"
data-module="govuk-button"
onClick={() =>
setCurrentSection(currentSection + 1)
}
>
Continue
</button>
) : (
""
)}
{currentSection > 1 ? (
<a
class="govuk-link"
href="#"
onClick={() =>
setCurrentSection(currentSection - 1)
}
>
Back
</a>
) : (
""
)}
</div>
</div>
<div className="govuk-grid-column-one-third">
<nav
role="navigation"
aria-labelledby="progress-list"
className="at-nav"
>
<h3 className="govuk-visually-hidden">
New Appeal progress
</h3>
<ol className="govuk-list">
<ul className="govuk-list ">
<li className="at-nav__page">
<ol className="govuk-list">
{Object.keys(titleList).map((key) =>
parseInt(key) + 1 == currentSection ? (
<li>
<b>{titleList[key].value}</b>
</li>
) : (
<li>{titleList[key].value}</li>
)
)}
</ol>
</li>
</ul>
</ol>
</nav>
</div>
</div>
);
};
export default BuildSection;
+24
View File
@@ -0,0 +1,24 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function MakeEnforcementNotice() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card" id="casescomment-card">
<div className="card-body appealModule">
<p className="govuk-body-s">
Including an enforcement listed building notice.
</p>
<div className="appealCTA">
<Link href="/newappeal/selectappeal">
<a className="govuk-button">A enforcement notice</a>
</Link>
</div>
</div>
</div>
);
}
+27
View File
@@ -0,0 +1,27 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function MakeLDC() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card" id="casescomment-card">
<div className="card-body appealModule">
<p className="govuk-body-s">
An appeal relating to an application for a certificate of
lawful use or development.
</p>
<div className="appealCTA">
<Link href="/newappeal/selectappeal">
<a className="govuk-button">
A Lawful Development Certificate (LDC)
</a>
</Link>
</div>
</div>
</div>
);
}
+26
View File
@@ -0,0 +1,26 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
export default function MakeNewAppeal() {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
return (
<div className="card" id="casescomment-card">
<div className="card-body appealModule">
<p className="govuk-body-s">
This includes all householder applications, full planning
applications, outline planning applications, planning listed
building (LB) applications.
</p>
<div className="appealCTA">
<Link href="./newappeal/selectappeal">
<a className="govuk-button">A planning application</a>
</Link>
</div>
</div>
</div>
);
}
+11
View File
@@ -0,0 +1,11 @@
export default function SkipLink(props) {
return (
<div id="skiplink-container">
<div>
<a href="#main-content" className="skiplink govuk-link">
Skip to main content
</a>
</div>
</div>
);
}
+1 -1
View File
@@ -1,5 +1,5 @@
{
"service-name": "Penderfyniadau Cynllunio ac Amgylchedd Cymru",
"service-name": "Porth Gwaith Achos Apeliadau",
"breadcrumb-back-link": "Yn ôl",
"error-radio": "Dewiswch opsiwn",
"error-checkbox": "Enter a value",
+2 -2
View File
@@ -1,6 +1,6 @@
{
{
"viewall-link": "Gweld y cyfan",
"page-title": "My Portal",
"page-title": "Fy mhorth",
"makenewappeal-card-title": "Gwneud apêl newydd",
"makenewappeal-card-paragraph-one": "Cyn cyflwyno apêl newydd, sicrhewch eich bod wedi darllen yr holl ganllawiau sy'n",
"makenewappeal-card-link": "berthnasol i'r math o apêl sydd gennych.",
+1 -1
View File
@@ -1,5 +1,5 @@
{
"service-name": "Planning & Environment Decisions Wales",
"service-name": "Appeals Casework Portal",
"breadcrumb-back-link": "Back",
"error-radio": "Choose an option",
"error-checkbox": "Choose an option",
+10399 -2793
View File
File diff suppressed because it is too large Load Diff
+6 -2
View File
@@ -3,7 +3,7 @@
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "node server.js",
"dev": "next dev",
"build": "next build",
"start": "next start"
},
@@ -11,6 +11,7 @@
"@webdeb/next-styles": "^1.1.1",
"axios": "^0.21.1",
"cookies": "^0.8.0",
"dom": "^0.0.3",
"dynamics-web-api": "^1.7.4",
"govuk-frontend": "^3.13.0",
"https": "^1.0.0",
@@ -25,6 +26,7 @@
"react-cookie-consent": "^6.2.4",
"react-dom": "17.0.2",
"react-redux": "^7.2.4",
"react-xml-parser": "^1.1.8",
"redux-devtools-extension": "^2.13.9",
"redux-form": "^8.3.7",
"redux-persist": "^6.0.0",
@@ -33,7 +35,9 @@
"sass-loader": "^12.1.0",
"webpack": "^5.40.0",
"xml2js": "^0.4.23",
"xmlhttprequest": "^1.8.0"
"xmldom": "^0.6.0",
"xmlhttprequest": "^1.8.0",
"xpath": "^0.0.32"
},
"devDependencies": {
"eslint": "^7.29.0",
+35
View File
@@ -0,0 +1,35 @@
import Document, { Html, Head, Main, NextScript } from "next/document";
import SkipLink from "../components/skiplink";
//import basicAuthMiddleware from "nextjs-basic-auth-middleware";
class MyDocument extends Document {
// static async getInitialProps(ctx) {
// const initialProps = await Document.getInitialProps(ctx);
// if (ctx.req && ctx.res) {
// await basicAuthMiddleware(ctx.req, ctx.res, {
// users: [
// {
// name: "rehab",
// password: "preventTesting",
// },
// ],
// });
// }
// return { ...initialProps };
// }
render() {
return (
<Html lang="en">
<Head />
<body>
<SkipLink />
<Main />
<NextScript />
</body>
</Html>
);
}
}
export default MyDocument;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+33
View File
@@ -0,0 +1,33 @@
pinswg_dns
pinswg_planningobligationappeals106
pinswg_planningconditionss73s79
pinswg_row
pinswg_transportandworkact
pinswg_harbourrevisionorder
pinswg_miscellaneouscasework
pinswg_planningappeals78
pinswg_lawfuldevelopmentcertificate
pinswg_householderappealhas
pinswg_enforcementlistedbuildingconservationap
pinswg_callinss77
pinswg_commonland
pinswg_adverts
pinswg_hedgeshedgerowstreepreservationreplacem
pinswg_compulsorypurchaseorders
pinswg_communityinfrastructurelevys117118119
pinswg_objectiveconfig
pinswg_nonvalidation
pinswg_caseinvolvement
pinswg_advertisementappealanddiscontinuance
pinswg_documenthistory
pinswg_document
pinswg_wayleave
pinswg_listedbuildingandconservationareaconsen
pinswg_environmentalpermitting
pinswg_enforcementnoticeappeals174
pinswg_ldp
pinswg_maintenanceoflands217
pinswg_electricityact
https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/EntityDefinitions(LogicalName='incident')/Attributes(LogicalName='pinswg_appealcasetype')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=GlobalOptionSet($select=Options)
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+231
View File
@@ -0,0 +1,231 @@
export default(req, res) =>{
res.statusCode= 200;
res.json(
{
"@odata.context": "https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/$metadata#EntityDefinitions('pinswg_householderappealhas')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,GlobalOptionSet,GlobalOptionSet(Options))/$entity",
"LogicalName": "pinswg_appointedby",
"MetadataId": "3c10eef7-6f85-eb11-aac2-00224800be9c",
"GlobalOptionSet": {
"@odata.type": "#Microsoft.Dynamics.CRM.OptionSetMetadata",
"Options": [
{
"Value": 846040000,
"Label": {
"LocalizedLabels": [
{
"Label": "MHCLG",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "899c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "MHCLG",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "899c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "8b9c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "8b9c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040001,
"Label": {
"LocalizedLabels": [
{
"Label": "Welsh Government",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "8c9c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Welsh Government",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "8c9c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "8e9c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "8e9c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040003,
"Label": {
"LocalizedLabels": [
{
"Label": "Secretary of State for Transport",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "929c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Secretary of State for Transport",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "929c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "949c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "949c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040004,
"Label": {
"LocalizedLabels": [
{
"Label": "BEIS",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "959c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "BEIS",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "959c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "979c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "979c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040005,
"Label": {
"LocalizedLabels": [
{
"Label": "Council",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "989c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Council",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "989c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "9a9c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "9a9c9260-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
}
],
"MetadataId": "869c9260-3683-eb11-aac0-00224800be9c"
}
}
)
};
+145
View File
@@ -0,0 +1,145 @@
export default(req, res) =>{
res.statusCode= 200;
res.json(
{
"@odata.context": "https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/$metadata#EntityDefinitions('pinswg_householderappealhas')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,GlobalOptionSet,GlobalOptionSet(Options))/$entity",
"LogicalName": "pinswg_band",
"MetadataId": "bddafa01-7085-eb11-aac2-00224800be9c",
"GlobalOptionSet": {
"@odata.type": "#Microsoft.Dynamics.CRM.OptionSetMetadata",
"Options": [
{
"Value": 846040000,
"Label": {
"LocalizedLabels": [
{
"Label": "Band 1",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "3d8e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Band 1",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "3d8e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "3f8e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "3f8e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040001,
"Label": {
"LocalizedLabels": [
{
"Label": "Band 2",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "408e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Band 2",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "408e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "428e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "428e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040002,
"Label": {
"LocalizedLabels": [
{
"Label": "Band 3",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "438e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Band 3",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "438e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "458e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "458e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
}
],
"MetadataId": "3a8e4173-3683-eb11-aac0-00224800be9c"
}
}
)
};
+403
View File
@@ -0,0 +1,403 @@
export default(req, res) =>{
res.statusCode= 200;
res.json(
{
"@odata.context": "https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/$metadata#EntityDefinitions('pinswg_householderappealhas')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,GlobalOptionSet,GlobalOptionSet(Options))/$entity",
"LogicalName": "pinswg_casetype",
"MetadataId": "fa824014-7085-eb11-aac2-00224800be9c",
"GlobalOptionSet": {
"@odata.type": "#Microsoft.Dynamics.CRM.OptionSetMetadata",
"Options": [
{
"Value": 846040000,
"Label": {
"LocalizedLabels": [
{
"Label": "Planning Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "fd6d05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Planning Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "fd6d05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "ff6d05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "ff6d05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040001,
"Label": {
"LocalizedLabels": [
{
"Label": "Listed Building Conservation Area Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "006e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Listed Building Conservation Area Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "006e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "026e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "026e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040002,
"Label": {
"LocalizedLabels": [
{
"Label": "Planning Conditions Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "036e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Planning Conditions Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "036e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "056e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "056e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040003,
"Label": {
"LocalizedLabels": [
{
"Label": "Planning Obligations Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "066e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Planning Obligations Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "066e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "086e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "086e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040004,
"Label": {
"LocalizedLabels": [
{
"Label": "Householder/Minor Commercial Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "096e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Householder/Minor Commercial Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "096e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "0b6e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "0b6e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040005,
"Label": {
"LocalizedLabels": [
{
"Label": "Advertisement Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "0c6e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Advertisement Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "0c6e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "0e6e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "0e6e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040006,
"Label": {
"LocalizedLabels": [
{
"Label": "Lawful Development Certificate Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "0f6e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Lawful Development Certificate Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "0f6e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "116e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "116e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040007,
"Label": {
"LocalizedLabels": [
{
"Label": "Community Infrastructure Levy Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "126e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Community Infrastructure Levy Appeal",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "126e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "146e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "146e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040008,
"Label": {
"LocalizedLabels": [
{
"Label": "Call-In Application",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "156e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Call-In Application",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "156e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "176e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "176e05d7-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
}
],
"MetadataId": "fa6d05d7-3683-eb11-aac0-00224800be9c"
}
}
)
};
+145
View File
@@ -0,0 +1,145 @@
export default(req, res) =>{
res.statusCode= 200;
res.json(
{
"@odata.context": "https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/$metadata#EntityDefinitions('pinswg_householderappealhas')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,GlobalOptionSet,GlobalOptionSet(Options))/$entity",
"LogicalName": "pinswg_band",
"MetadataId": "bddafa01-7085-eb11-aac2-00224800be9c",
"GlobalOptionSet": {
"@odata.type": "#Microsoft.Dynamics.CRM.OptionSetMetadata",
"Options": [
{
"Value": 846040000,
"Label": {
"LocalizedLabels": [
{
"Label": "Band 1",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "3d8e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Band 1",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "3d8e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "3f8e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "3f8e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040001,
"Label": {
"LocalizedLabels": [
{
"Label": "Band 2",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "408e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Band 2",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "408e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "428e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "428e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040002,
"Label": {
"LocalizedLabels": [
{
"Label": "Band 3",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "438e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Band 3",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "438e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "458e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "458e4173-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
}
],
"MetadataId": "3a8e4173-3683-eb11-aac0-00224800be9c"
}
}
)
};
+188
View File
@@ -0,0 +1,188 @@
export default(req, res) =>{
res.statusCode= 200;
res.json(
{
"@odata.context": "https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/$metadata#EntityDefinitions('pinswg_householderappealhas')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,GlobalOptionSet,GlobalOptionSet(Options))/$entity",
"LogicalName": "pinswg_decision",
"MetadataId": "3e383643-7085-eb11-aac2-00224800be9c",
"GlobalOptionSet": {
"@odata.type": "#Microsoft.Dynamics.CRM.OptionSetMetadata",
"Options": [
{
"Value": 846040000,
"Label": {
"LocalizedLabels": [
{
"Label": "Allowed",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "4de653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Allowed",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "4de653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "4fe653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "4fe653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040001,
"Label": {
"LocalizedLabels": [
{
"Label": "Dismissed",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "50e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Dismissed",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "50e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "52e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "52e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040002,
"Label": {
"LocalizedLabels": [
{
"Label": "Split Decision",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "53e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Split Decision",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "53e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "55e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "55e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040003,
"Label": {
"LocalizedLabels": [
{
"Label": "Invalid",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "56e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Invalid",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "56e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "58e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "58e653f8-3683-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
}
],
"MetadataId": "4ae653f8-3683-eb11-aac0-00224800be9c"
}
}
)
};
+317
View File
@@ -0,0 +1,317 @@
export default(req, res) =>{
res.statusCode= 200;
res.json(
{
"@odata.context": "https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/$metadata#EntityDefinitions('pinswg_householderappealhas')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,GlobalOptionSet,GlobalOptionSet(Options))/$entity",
"LogicalName": "pinswg_decisionbranch",
"MetadataId": "15429e52-7085-eb11-aac2-00224800be9c",
"GlobalOptionSet": {
"@odata.type": "#Microsoft.Dynamics.CRM.OptionSetMetadata",
"Options": [
{
"Value": 846040000,
"Label": {
"LocalizedLabels": [
{
"Label": "The Welsh Ministers",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "a9d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "The Welsh Ministers",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "a9d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "abd887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "abd887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040001,
"Label": {
"LocalizedLabels": [
{
"Label": "PINS",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "acd887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "PINS",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "acd887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "aed887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "aed887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040002,
"Label": {
"LocalizedLabels": [
{
"Label": "BEIS",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "afd887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "BEIS",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "afd887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b1d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b1d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040003,
"Label": {
"LocalizedLabels": [
{
"Label": "Department for Transport",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b2d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Department for Transport",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b2d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b4d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b4d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040004,
"Label": {
"LocalizedLabels": [
{
"Label": "County Council",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b5d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "County Council",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b5d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b7d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b7d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040005,
"Label": {
"LocalizedLabels": [
{
"Label": "Department for Transport (Bridges and Ferries)",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b8d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "Department for Transport (Bridges and Ferries)",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "b8d887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "bad887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "bad887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
},
{
"Value": 846040006,
"Label": {
"LocalizedLabels": [
{
"Label": "MHCLG",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "bbd887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "MHCLG",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "bbd887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Description": {
"LocalizedLabels": [
{
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "bdd887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
],
"UserLocalizedLabel": {
"Label": "",
"LanguageCode": 1033,
"IsManaged": false,
"MetadataId": "bdd887c2-3783-eb11-aac0-00224800be9c",
"HasChanged": null
}
},
"Color": "#0000ff",
"IsManaged": false,
"MetadataId": null,
"HasChanged": null
}
],
"MetadataId": "a6d887c2-3783-eb11-aac0-00224800be9c"
}
}
)
};
+80
View File
@@ -0,0 +1,80 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import MyPortal from "../../components/myportal";
import Footer from "../../components/footer";
import Errorpage from "../../components/errorpage";
import styles from "../../styles/Home.module.css";
import { useSelector, shallowEqual, connect } from "react-redux";
import { wrapper } from "../../store/store";
import Cookies from "cookies";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
const Home = (props) => {
const { footerLinks, pages } = props;
let { t, lang } = useTranslation();
const router = useRouter();
const { locale } = router;
const { appealtypes } = router.query;
return (
<div>
<Head>
<title>
{t("myportal:page-title")} - {t("common:service-name")}
</title>
</Head>
<div id="page_wrapper">
<CookieBanner />
<Header courseName={t("common:service-name")} />
<div className="govuk-width-container">
<Banner />
<Breadcrumbs slug={appealtypes} />
<MyPortal />
</div>
<Footer footerLinks={footerLinks} />
</div>
</div>
);
};
// export const getServerSideProps = wrapper.getServerSideProps(
// async ({ locale, store, req, res }) => {
// const token = await getToken();
// let accessToken = token.access_token;
// const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
// const [pages, footerLinks, courseListContent] = await Promise.all([
// await getPages(accessToken, locale),
// await getFooterLinks(accessToken, locale),
// await getCourseList(accessToken, locale),
// ]);
// //const courseID = await getCourseID
// store.dispatch(setApiRoot(apiRoot));
// store.dispatch(setPages(pages));
// store.dispatch(setFooterLinks(footerLinks));
// store.dispatch(setCourseListContent(courseListContent));
// }
// );
// const mapStateToProps = (state) => {
// //console.log(state);
// return {
// apiroot: state.apiroot,
// courseListContent: state.courseListContent.courseListContent,
// pages: state.pages.pages,
// footerLinks: state.footerLinks.footerLinks,
// regions: state.regions,
// sectors: state.sectors,
// form: state.form,
// };
// };
export default Home; //connect(mapStateToProps)(Home);
+138
View File
@@ -0,0 +1,138 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import Footer from "../../components/footer";
import Errorpage from "../../components/errorpage";
import styles from "../../styles/Home.module.css";
import { useSelector, shallowEqual, connect } from "react-redux";
import { wrapper } from "../../store/store";
import Cookies from "cookies";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
import { setForm, getFormObj } from "../../store/formData/action";
import { getFormData } from "../../actions";
import xpath from "xpath";
import BuildSection from "../../components/newappeal/buildsection";
const Home = (props) => {
const { footerLinks, pages, formData } = props;
let { t, lang } = useTranslation();
const router = useRouter();
const { locale } = router;
const { appealtypes } = router.query;
const formXML = props.formData.formData;
const parser = new DOMParser();
var doc = parser.parseFromString(formXML, "text/xml");
var titles = xpath.select(
"//form/tabs/tab[*]/labels/label[@description]/@description",
doc
);
var sectionCount = xpath.select("/form/tabs/tab[*]", doc);
sectionCount = sectionCount.length;
var tabs = xpath.select("//form/tabs/tab[*]", doc);
// crm api query for looking up picklist fields/drop downs
// <url path to >/api/data/v8.2/EntityDefinitions(LogicalName='{appeal type form}')/Attributes(LogicalName='{drop down datafield name}')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=GlobalOptionSet($select=Options)
// eg https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/EntityDefinitions(LogicalName='pinswg_householderappealhas')/Attributes(LogicalName='pinswg_casetype')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=GlobalOptionSet($select=Options)
// query for labels in section eg for section 2 - /form/tabs/tab[2]//rows//labels
// query for getting guids of form element types /form/tabs/tab[*]//rows/row//control[@classid]/@classid
//
// 270BD3DB-D9AF-4782-9025-509E298DEC0A - read only
// 3EF39988-22BB-4f0b-BBBE-64B5A3748AEE - drop down list controlled by datafieldname for content - datafieldname picklist entity
// 67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED - boolean flag / yes no radio button
// 4273EDBD-AC1D-40d3-9FB2-095C621B552D - text field
// 5B773807-9FB2-42db-97C3-7A91EFF8ADFF - date field
// E0DECE4B-6FC8-4a8f-A065-082708572369 - multiline
// C6D124CA-7EDA-4a60-AEA9-7FB8D318B68F - numeric field
// C3EFE0C3-0EC6-42be-8349-CBD9079DFD8E - decimal
/// to get dropdowns names
// form/tabs/tab[*]//rows/row//control[@classid="{3EF39988-22BB-4f0b-BBBE-64B5A3748AEE}"]/@datafieldname
console.log(titles);
const Sections = Object.keys(tabs).map((key, index) => (
<BuildSection
formXML={formXML}
whichSection={key}
sectionCount={sectionCount}
/>
));
return (
<div>
<Head>
<title>
{t("search:page-title")} - {t("common:service-name")}
</title>
</Head>
<div id="page_wrapper">
<CookieBanner />
<Header courseName={t("common:service-name")} />
<div className="govuk-width-container">
<Banner />
<Breadcrumbs slug={appealtypes} />
<BuildSection
formXML={formXML}
sectionCount={sectionCount}
/>
</div>
<Footer footerLinks={footerLinks} />
</div>
</div>
);
};
export const getServerSideProps = wrapper.getServerSideProps(
(store) =>
async ({ query, req, res }) => {
console.log("the query", query);
const formdata = (await getFormData(query.appealtypes)) || null;
let xmlStr = formdata;
xmlStr = formdata.value[0].formxml;
xmlStr = xmlStr.replace(/\\"/g, "");
store.dispatch(setForm(xmlStr));
}
);
// export const getServerSideProps = wrapper.getServerSideProps(
// async ({ locale, store, query, req, res }) => {
// // const token = await getToken();
// // let accessToken = token.access_token;
// // const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
// // const [pages, footerLinks, courseListContent] = await Promise.all([
// // await getPages(accessToken, locale),
// // await getFooterLinks(accessToken, locale),
// // await getCourseList(accessToken, locale),
// // ]);
// // //const courseID = await getCourseID
// // store.dispatch(setApiRoot(apiRoot));
// // store.dispatch(setPages(pages));
// // store.dispatch(setFooterLinks(footerLinks));
// // store.dispatch(setCourseListContent(courseListContent));
// console.log(query);
// //store.dispatch(setSearch(query.search));
// }
// );
const mapStateToProps = (state) => {
return {
search: state.search,
searchResultsObj: state.searchResultsObj,
formData: state.formData,
appealType: state.appealType,
};
};
export default connect(mapStateToProps)(Home);
+80
View File
@@ -0,0 +1,80 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import NewAppeal from "../../components/newappeal";
import Footer from "../../components/footer";
import Errorpage from "../../components/errorpage";
import styles from "../../styles/Home.module.css";
import { useSelector, shallowEqual, connect } from "react-redux";
import { wrapper } from "../../store/store";
import Cookies from "cookies";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
const Home = (props) => {
const { footerLinks, pages } = props;
let { t, lang } = useTranslation();
const router = useRouter();
const { locale } = router;
const { appealtypes } = router.query;
return (
<div>
<Head>
<title>
{t("myportal:page-title")} - {t("common:service-name")}
</title>
</Head>
<div id="page_wrapper">
<CookieBanner />
<Header courseName={t("common:service-name")} />
<div className="govuk-width-container">
<Banner />
<Breadcrumbs slug={appealtypes} />
<NewAppeal />
</div>
<Footer footerLinks={footerLinks} />
</div>
</div>
);
};
// export const getServerSideProps = wrapper.getServerSideProps(
// async ({ locale, store, req, res }) => {
// const token = await getToken();
// let accessToken = token.access_token;
// const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
// const [pages, footerLinks, courseListContent] = await Promise.all([
// await getPages(accessToken, locale),
// await getFooterLinks(accessToken, locale),
// await getCourseList(accessToken, locale),
// ]);
// //const courseID = await getCourseID
// store.dispatch(setApiRoot(apiRoot));
// store.dispatch(setPages(pages));
// store.dispatch(setFooterLinks(footerLinks));
// store.dispatch(setCourseListContent(courseListContent));
// }
// );
// const mapStateToProps = (state) => {
// //console.log(state);
// return {
// apiroot: state.apiroot,
// courseListContent: state.courseListContent.courseListContent,
// pages: state.pages.pages,
// footerLinks: state.footerLinks.footerLinks,
// regions: state.regions,
// sectors: state.sectors,
// form: state.form,
// };
// };
export default Home; //connect(mapStateToProps)(Home);
@@ -1,15 +1,15 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../components/header";
import Banner from "../components/banner";
import CookieBanner from "../components/cookieBanner";
import Breadcrumbs from "../components/breadcrumbs";
import MyPortal from "../components/myportal";
import Footer from "../components/footer";
import Errorpage from "../components/errorpage";
import styles from "../styles/Home.module.css";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import NewAppeal from "../../components/newappeal";
import Footer from "../../components/footer";
import Errorpage from "../../components/errorpage";
import styles from "../../styles/Home.module.css";
import { useSelector, shallowEqual, connect } from "react-redux";
import { wrapper } from "../store/store";
import { wrapper } from "../../store/store";
import Cookies from "cookies";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
@@ -33,7 +33,7 @@ const Home = (props) => {
<Header courseName={t("common:service-name")} />
<div className="govuk-width-container">
<Banner />
<MyPortal />
<NewAppeal />
</div>
<Footer footerLinks={footerLinks} />
</div>
+127
View File
@@ -0,0 +1,127 @@
import _ from "lodash";
import Head from "next/head";
import Header from "../../components/header";
import Banner from "../../components/banner";
import CookieBanner from "../../components/cookieBanner";
import Breadcrumbs from "../../components/breadcrumbs";
import Footer from "../../components/footer";
import Errorpage from "../../components/errorpage";
import styles from "../../styles/Home.module.css";
import { useSelector, shallowEqual, connect } from "react-redux";
import { wrapper } from "../../store/store";
import Cookies from "cookies";
import { useRouter } from "next/router";
import { useState } from "react";
import useTranslation from "next-translate/useTranslation";
import { setAppealType, gtAppealTypeObj } from "../../store/appealType/action";
import { getAppealsTypes } from "../../actions";
import xpath from "xpath";
const Home = (props) => {
const { footerLinks, pages, formData } = props;
let { t, lang } = useTranslation();
const router = useRouter();
const { locale } = router;
const { appealtypes } = router.query;
const { appealType } = props;
const optionsObj = props.appealType.appealType.GlobalOptionSet.Options;
const appealOptions = Object.keys(optionsObj).map((key, index) => (
<option
value={optionsObj[key].Label.LocalizedLabels[0].Label.replace(
/[\s\-\+\(\)\,]/g,
""
).toLowerCase()}
>
{optionsObj[key].Label.LocalizedLabels[0].Label}
</option>
));
const [appealTypeSelect, setAppealTypeSelect] = useState("");
const handleParam = (setValue) => (e) => setValue(e.target.value);
const selectAppealType = (event) => {
event.preventDefault();
console.log(appealTypeSelect);
// /searchresults
router.push({
pathname: "/newappeal/" + appealTypeSelect,
});
};
return (
<div>
<Head>
<title>
{t("search:page-title")} - {t("common:service-name")}
</title>
</Head>
<div id="page_wrapper">
<CookieBanner />
<Header courseName={t("common:service-name")} />
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<div className="govuk-width-container">
<Banner />
<Breadcrumbs slug={appealtypes} />
<h1>New Appeal</h1>
<form onSubmit={selectAppealType}>
<div class="govuk-form-group">
<label class="govuk-label" for="sort">
Select an appeal Type
</label>
<select
class="govuk-select"
id="appealTypes"
name="appealTypes"
onChange={handleParam(
setAppealTypeSelect
)}
>
{appealOptions}
</select>
</div>
<button
class="govuk-button"
data-module="govuk-button"
>
Continue
</button>
</form>
</div>
</div>
</div>
<Footer footerLinks={footerLinks} />
</div>
</div>
);
};
export const getServerSideProps = wrapper.getServerSideProps(
(store) =>
async ({ query, req, res }) => {
const appealTypeData = (await getAppealsTypes()) || null;
console.log("appeal types", appealTypeData);
store.dispatch(setAppealType(appealTypeData));
}
);
const mapStateToProps = (state) => {
return {
search: state.search,
searchResultsObj: state.searchResultsObj,
formData: state.formData,
appealType: state.appealType,
};
};
export default connect(mapStateToProps)(Home);
+20 -12
View File
@@ -15,8 +15,11 @@ import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
import { setSearch, getSearchObj } from "../store/search/action";
import { setSearchResults, getSearchResultsObj } from "../store/searchOutput/action";
import {getBasicSearch} from "../actions"
import {
setSearchResults,
getSearchResultsObj,
} from "../store/searchOutput/action";
import { getBasicSearch } from "../actions";
const Home = (props) => {
const { footerLinks, pages } = props;
@@ -24,6 +27,7 @@ const Home = (props) => {
const router = useRouter();
const { locale } = router;
const { appealtypes } = router.query;
return (
<div>
@@ -37,7 +41,11 @@ const Home = (props) => {
<Header courseName={t("common:service-name")} />
<div className="govuk-width-container">
<Banner />
<SearchResults searchString={props.search.searchString} searchResultsObj={props.searchResultsObj} />
<Breadcrumbs slug={appealtypes} />
<SearchResults
searchString={props.search.searchString}
searchResultsObj={props.searchResultsObj}
/>
</div>
<Footer footerLinks={footerLinks} />
</div>
@@ -45,13 +53,13 @@ const Home = (props) => {
);
};
export const getServerSideProps = wrapper.getServerSideProps (
store => async({ query, req, res }) =>
{
console.log('query-',query);
const searchResultsObj = await getBasicSearch(query.q) || null;
store.dispatch(setSearchResults(searchResultsObj));
store.dispatch(setSearch(query.q));
export const getServerSideProps = wrapper.getServerSideProps(
(store) =>
async ({ query, req, res }) => {
console.log("query-", query);
const searchResultsObj = (await getBasicSearch(query.q)) || null;
store.dispatch(setSearchResults(searchResultsObj));
store.dispatch(setSearch(query.q));
}
);
@@ -78,11 +86,11 @@ export const getServerSideProps = wrapper.getServerSideProps (
// );
const mapStateToProps = (state) => {
console.log('mapstate',state);
console.log("mapstate", state);
return {
search: state.search,
searchResultsObj: state.searchResultsObj
searchResultsObj: state.searchResultsObj,
// // apiroot: state.apiroot,
// // courseListContent: state.courseListContent.courseListContent,
// // pages: state.pages.pages,
File diff suppressed because one or more lines are too long
+18
View File
@@ -0,0 +1,18 @@
export const appealTypeDataActionTypes = {
GETAPPEALTYPEDATA: "GETAPPEALTYPEDATA",
SETAPPEALTYPEDATA: "SETAPPEALTYPEDATA",
UPDATEAPPEALTYPEDATA: "UPDATEAPPEALTYPEDATA",
};
export const getAppealTypeObj = () => (dispatch) => {
return dispatch({
type: appealTypeDataActionTypes.GETAPPEALTYPEDATA,
});
};
export const setAppealType = (appealTypeData) => (dispatch) => {
return dispatch({
type: appealTypeDataActionTypes.SETAPPEALTYPEDATA,
appealType: appealTypeData,
});
};
+16
View File
@@ -0,0 +1,16 @@
import { appealTypeDataActionTypes } from "./action";
const appealTypeDataInitialState = {
appealType: {},
};
export default function reducer(state = appealTypeDataInitialState, action) {
switch (action.type) {
case appealTypeDataActionTypes.SETAPPEALTYPEDATA:
return {
appealType: action.appealType,
};
default:
return state;
}
}
+18
View File
@@ -0,0 +1,18 @@
export const formDataActionTypes = {
GETFORMDATA: "GETFORMDATA",
SETFORMDATA: "SETFORMDATA",
UPDATEFORMDATA: "UPDATEFORMDATA",
};
export const getFormObj = () => (dispatch) => {
return dispatch({
type: formDataActionTypes.GETFORMDATA,
});
};
export const setForm = (formData) => (dispatch) => {
return dispatch({
type: formDataActionTypes.SETFORMDATA,
formData: formData,
});
};
+16
View File
@@ -0,0 +1,16 @@
import { formDataActionTypes } from "./action";
const formDataInitialState = {
formData: {},
};
export default function reducer(state = formDataInitialState, action) {
switch (action.type) {
case formDataActionTypes.SETFORMDATA:
return {
formData: action.formData,
};
default:
return state;
}
}
+6 -2
View File
@@ -4,6 +4,8 @@ import thunkMiddleware from "redux-thunk";
import progress from "./progress/reducer";
import search from "./search/reducer";
import searchResultsObj from "./searchOutput/reducer";
import formData from "./formData/reducer";
import appealType from "./appealType/reducer";
import { reducer as formReducer } from "redux-form";
import autoMergeLevel2 from "redux-persist/lib/stateReconciler/autoMergeLevel2";
@@ -11,7 +13,9 @@ import autoMergeLevel2 from "redux-persist/lib/stateReconciler/autoMergeLevel2";
const combinedReducer = combineReducers({
progress,
search,
searchResultsObj
searchResultsObj,
formData,
appealType,
});
const reducer = (state = { progress: "{}" }, action) => {
@@ -72,7 +76,7 @@ const makeStore = ({ isServer }) => {
const persistConfig = {
key: "nextjs",
whitelist: ["progress,search,searchResults"],
whitelist: ["progress,search,searchResults,formData,appealType"],
storage,
stateReconciler: autoMergeLevel2, // if needed, use a safer storage
};
View File
+2 -1
View File
@@ -199,7 +199,8 @@ html[data-useragent*="MSIE 10.0"] .flex-container {
padding-top: 20%;
}
.card-3 .card-body {
.card-3 .card-body,
.appealModule.card-body {
display: inline-flex;
flex-direction: column;
min-height: 30vh;
+10 -2
View File
@@ -125,8 +125,8 @@ a {
}
nav {
margin-top: 60px;
margin-bottom: 40px;
// margin-top: 60px;
// margin-bottom: 40px;
}
.govuk-footer {
@@ -231,3 +231,11 @@ nav {
.case .govuk-grid-column-full .govuk-summary-list__key {
width: 100%;
}
.appealModule {
width: 94%;
min-height: 20vh;
.appealCTA {
text-align: center;
}
}
+6057
View File
File diff suppressed because it is too large Load Diff
+276 -113
View File
@@ -31,14 +31,14 @@
core-js-pure "^3.15.0"
regenerator-runtime "^0.13.4"
"@babel/runtime@7.12.5", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.9.2":
"@babel/runtime@7.12.5":
version "7.12.5"
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz"
integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.13.17", "@babel/runtime@^7.14.5":
"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.13.17", "@babel/runtime@^7.14.5", "@babel/runtime@^7.9.2":
version "7.14.6"
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz"
integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==
@@ -78,9 +78,9 @@
"@hapi/hoek" "9.x.x"
"@hapi/boom@9.x.x":
version "9.1.2"
resolved "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.2.tgz"
integrity sha512-uJEJtiNHzKw80JpngDGBCGAmWjBtzxDCz17A9NO2zCi8LLBlb5Frpq4pXwyN+2JQMod4pKz5BALwyneCgDg89Q==
version "9.1.3"
resolved "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.3.tgz"
integrity sha512-RlrGyZ603hE/eRTZtTltocRm50HHmrmL3kGOP0SQ9MasazlW1mt/fkv4C5P/6rnpFXjwld/POFX1C8tMZE3ldg==
dependencies:
"@hapi/hoek" "9.x.x"
@@ -89,6 +89,20 @@
resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz"
integrity sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==
"@humanwhocodes/config-array@^0.5.0":
version "0.5.0"
resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz"
integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==
dependencies:
"@humanwhocodes/object-schema" "^1.2.0"
debug "^4.1.1"
minimatch "^3.0.4"
"@humanwhocodes/object-schema@^1.2.0":
version "1.2.0"
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz"
integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==
"@next/env@11.0.1":
version "11.0.1"
resolved "https://registry.npmjs.org/@next/env/-/env-11.0.1.tgz"
@@ -152,6 +166,11 @@
resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.0.6.tgz"
integrity sha512-Myxw//kzromB9yWgS8qYGuGVf91oBUUJpNvy5eM50sqvmKLbKjwLxohJnkWGTeeI9v9IBMtPLxz5Gc60FIfvCA==
"@tootallnate/once@1":
version "1.1.2"
resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz"
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
"@types/eslint-scope@^3.7.0":
version "3.7.0"
resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz"
@@ -168,10 +187,15 @@
"@types/estree" "*"
"@types/json-schema" "*"
"@types/estree@*", "@types/estree@^0.0.47":
version "0.0.47"
resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz"
integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==
"@types/estree@*":
version "0.0.49"
resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.49.tgz"
integrity sha512-K1AFuMe8a+pXmfHTtnwBvqoEylNKVeaiKYkjmcEAdytMQVJ/i9Fu7sc13GxgXdO49gkE7Hy8SyJonUZUn+eVaw==
"@types/estree@^0.0.48":
version "0.0.48"
resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz"
integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==
"@types/hoist-non-react-statics@^3.3.0", "@types/hoist-non-react-statics@^3.3.1":
version "3.3.1"
@@ -188,7 +212,7 @@
dependencies:
i18next "^19.7.0"
"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7":
version "7.0.7"
resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz"
integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==
@@ -199,9 +223,9 @@
integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
"@types/node@*":
version "15.12.4"
resolved "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz"
integrity sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==
version "16.0.0"
resolved "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz"
integrity sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==
"@types/prop-types@*":
version "15.7.3"
@@ -224,9 +248,9 @@
redux "^4.0.0"
"@types/react@*":
version "17.0.11"
resolved "https://registry.npmjs.org/@types/react/-/react-17.0.11.tgz"
integrity sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA==
version "17.0.13"
resolved "https://registry.npmjs.org/@types/react/-/react-17.0.13.tgz"
integrity sha512-D/G3PiuqTfE3IMNjLn/DCp6umjVCSvtZTPdtAFy5+Ved6CsdRvivfKeCzw79W4AatShtU4nGqgvOv5Gro534vQ==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
@@ -238,47 +262,47 @@
integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==
"@typescript-eslint/parser@^4.20.0":
version "4.28.1"
resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.1.tgz"
integrity sha512-UjrMsgnhQIIK82hXGaD+MCN8IfORS1CbMdu7VlZbYa8LCZtbZjJA26De4IPQB7XYZbL8gJ99KWNj0l6WD0guJg==
version "4.28.2"
resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.2.tgz"
integrity sha512-Q0gSCN51eikAgFGY+gnd5p9bhhCUAl0ERMiDKrTzpSoMYRubdB8MJrTTR/BBii8z+iFwz8oihxd0RAdP4l8w8w==
dependencies:
"@typescript-eslint/scope-manager" "4.28.1"
"@typescript-eslint/types" "4.28.1"
"@typescript-eslint/typescript-estree" "4.28.1"
"@typescript-eslint/scope-manager" "4.28.2"
"@typescript-eslint/types" "4.28.2"
"@typescript-eslint/typescript-estree" "4.28.2"
debug "^4.3.1"
"@typescript-eslint/scope-manager@4.28.1":
version "4.28.1"
resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.1.tgz"
integrity sha512-o95bvGKfss6705x7jFGDyS7trAORTy57lwJ+VsYwil/lOUxKQ9tA7Suuq+ciMhJc/1qPwB3XE2DKh9wubW8YYA==
"@typescript-eslint/scope-manager@4.28.2":
version "4.28.2"
resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz"
integrity sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A==
dependencies:
"@typescript-eslint/types" "4.28.1"
"@typescript-eslint/visitor-keys" "4.28.1"
"@typescript-eslint/types" "4.28.2"
"@typescript-eslint/visitor-keys" "4.28.2"
"@typescript-eslint/types@4.28.1":
version "4.28.1"
resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.1.tgz"
integrity sha512-4z+knEihcyX7blAGi7O3Fm3O6YRCP+r56NJFMNGsmtdw+NCdpG5SgNz427LS9nQkRVTswZLhz484hakQwB8RRg==
"@typescript-eslint/types@4.28.2":
version "4.28.2"
resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz"
integrity sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==
"@typescript-eslint/typescript-estree@4.28.1":
version "4.28.1"
resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.1.tgz"
integrity sha512-GhKxmC4sHXxHGJv8e8egAZeTZ6HI4mLU6S7FUzvFOtsk7ZIDN1ksA9r9DyOgNqowA9yAtZXV0Uiap61bIO81FQ==
"@typescript-eslint/typescript-estree@4.28.2":
version "4.28.2"
resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz"
integrity sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg==
dependencies:
"@typescript-eslint/types" "4.28.1"
"@typescript-eslint/visitor-keys" "4.28.1"
"@typescript-eslint/types" "4.28.2"
"@typescript-eslint/visitor-keys" "4.28.2"
debug "^4.3.1"
globby "^11.0.3"
is-glob "^4.0.1"
semver "^7.3.5"
tsutils "^3.21.0"
"@typescript-eslint/visitor-keys@4.28.1":
version "4.28.1"
resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.1.tgz"
integrity sha512-K4HMrdFqr9PFquPu178SaSb92CaWe2yErXyPumc8cYWxFmhgJsNY9eSePmO05j0JhBvf2Cdhptd6E6Yv9HVHcg==
"@typescript-eslint/visitor-keys@4.28.2":
version "4.28.2"
resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz"
integrity sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w==
dependencies:
"@typescript-eslint/types" "4.28.1"
"@typescript-eslint/types" "4.28.2"
eslint-visitor-keys "^2.0.0"
"@webassemblyjs/ast@1.11.0":
@@ -444,11 +468,18 @@ acorn@^7.4.0:
resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
acorn@^8.2.1:
acorn@^8.4.1:
version "8.4.1"
resolved "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz"
integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==
agent-base@6:
version "6.0.2"
resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz"
integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
dependencies:
debug "4"
ajv-errors@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz"
@@ -470,9 +501,9 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
uri-js "^4.2.2"
ajv@^8.0.1:
version "8.6.0"
resolved "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz"
integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==
version "8.6.1"
resolved "https://registry.npmjs.org/ajv/-/ajv-8.6.1.tgz"
integrity sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ==
dependencies:
fast-deep-equal "^3.1.1"
json-schema-traverse "^1.0.0"
@@ -504,6 +535,11 @@ ansi-regex@^2.0.0:
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
ansi-regex@^4.1.0:
version "4.1.0"
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"
@@ -533,7 +569,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
anymatch@~3.1.1:
anymatch@~3.1.1, anymatch@~3.1.2:
version "3.1.2"
resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
@@ -950,9 +986,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001202, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001228:
version "1.0.30001239"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz"
integrity sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==
version "1.0.30001242"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001242.tgz"
integrity sha512-KvNuZ/duufelMB3w2xtf9gEWCSxJwUgoxOx5b6ScLXC4kPc9xsczUVCPrQU26j5kOsHM4pSUL54tAZt5THQKug==
caseless@~0.12.0:
version "0.12.0"
@@ -995,7 +1031,7 @@ chalk@^4.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
chokidar@3.5.1, "chokidar@>=3.0.0 <4.0.0":
chokidar@3.5.1:
version "3.5.1"
resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz"
integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
@@ -1010,6 +1046,21 @@ chokidar@3.5.1, "chokidar@>=3.0.0 <4.0.0":
optionalDependencies:
fsevents "~2.3.1"
"chokidar@>=3.0.0 <4.0.0":
version "3.5.2"
resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz"
integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
dependencies:
anymatch "~3.1.2"
braces "~3.0.2"
glob-parent "~5.1.2"
is-binary-path "~2.1.0"
is-glob "~4.0.1"
normalize-path "~3.0.0"
readdirp "~3.6.0"
optionalDependencies:
fsevents "~2.3.2"
chrome-trace-event@^1.0.2:
version "1.0.3"
resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz"
@@ -1079,12 +1130,12 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
color-name@1.1.3, color-name@^1.0.0:
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
color-name@~1.1.4:
color-name@^1.0.0, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
@@ -1175,9 +1226,9 @@ core-js-pure@^3.15.0:
integrity sha512-D42L7RYh1J2grW8ttxoY1+17Y4wXZeKe7uyplAI3FkNQyI5OgBIAjUfFiTPfL1rs0qLpxaabITNbjKl1Sp82tA==
core-js@^3:
version "3.15.1"
resolved "https://registry.npmjs.org/core-js/-/core-js-3.15.1.tgz"
integrity sha512-h8VbZYnc9pDzueiS2610IULDkpFFPunHwIpl8yRwFahAEEdSpHlTy3h3z3rKq5h11CaUdBEeRViu9AYvbxiMeg==
version "3.15.2"
resolved "https://registry.npmjs.org/core-js/-/core-js-3.15.2.tgz"
integrity sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q==
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
@@ -1462,6 +1513,13 @@ debug@2, debug@^2.6.9:
dependencies:
ms "2.0.0"
debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1:
version "4.3.2"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz"
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
dependencies:
ms "2.1.2"
debug@^3.2.7:
version "3.2.7"
resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
@@ -1469,13 +1527,6 @@ debug@^3.2.7:
dependencies:
ms "^2.1.1"
debug@^4.0.1, debug@^4.1.1, debug@^4.3.1:
version "4.3.1"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz"
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
dependencies:
ms "2.1.2"
decamelize@^1.1.2, decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
@@ -1559,6 +1610,11 @@ dom-serializer@0:
domelementtype "^2.0.1"
entities "^2.0.0"
dom@^0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/dom/-/dom-0.0.3.tgz#16e0c225a0553d8e4362cc4bcd78d8fde59af67b"
integrity sha1-FuDCJaBVPY5DYsxLzXjY/eWa9ns=
domain-browser@4.19.0:
version "4.19.0"
resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz"
@@ -1594,6 +1650,14 @@ dot-prop@^5.2.0:
dependencies:
is-obj "^2.0.0"
dynamics-web-api@^1.7.4:
version "1.7.4"
resolved "https://registry.npmjs.org/dynamics-web-api/-/dynamics-web-api-1.7.4.tgz"
integrity sha512-bwdG1mJInXMlrzdDogIyNP7s14OUgtBZ54e6y+CZB9v4Vtp3BIaF/I/IUEPXM25A66UxLsAw8q+Uv1V7rctXcg==
dependencies:
http-proxy-agent "^4.0.1"
https-proxy-agent "^5.0.0"
ecc-jsbn@~0.1.1:
version "0.1.2"
resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
@@ -1603,9 +1667,9 @@ ecc-jsbn@~0.1.1:
safer-buffer "^2.1.0"
electron-to-chromium@^1.3.723:
version "1.3.756"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.756.tgz"
integrity sha512-WsmJym1TMeHVndjPjczTFbnRR/c4sbzg8fBFtuhlb2Sru3i/S1VGpzDSrv/It8ctMU2bj8G7g7/O3FzYMGw6eA==
version "1.3.768"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.768.tgz"
integrity sha512-I4UMZHhVSK2pwt8jOIxTi3GIuc41NkddtKT/hpuxp9GO5UWJgDKTBa4TACppbVAuKtKbMK6BhQZvT5tFF1bcNA==
elliptic@^6.5.3:
version "6.5.4"
@@ -1640,6 +1704,11 @@ emojis-list@^2.0.0:
resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz"
integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
emojis-list@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz"
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
encoding@0.1.13:
version "0.1.13"
resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz"
@@ -1883,12 +1952,13 @@ eslint-visitor-keys@^2.0.0:
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
eslint@^7.29.0:
version "7.29.0"
resolved "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz"
integrity sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==
version "7.30.0"
resolved "https://registry.npmjs.org/eslint/-/eslint-7.30.0.tgz"
integrity sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==
dependencies:
"@babel/code-frame" "7.12.11"
"@eslint/eslintrc" "^0.4.2"
"@humanwhocodes/config-array" "^0.5.0"
ajv "^6.10.0"
chalk "^4.0.0"
cross-spawn "^7.0.2"
@@ -2003,11 +2073,16 @@ extracted-loader@^1.0.7:
resolved "https://registry.npmjs.org/extracted-loader/-/extracted-loader-1.0.7.tgz"
integrity sha512-70ynm4CxHhoXkFS1TOoqIesH+xc7l0sqj8C3i9gQklkAhNZjgSafgVuRJyGmD1lROgP1Ft3z2ONP88XJbAJiow==
extsprintf@1.3.0, extsprintf@^1.2.0:
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
extsprintf@^1.2.0:
version "1.4.0"
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz"
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
@@ -2035,9 +2110,9 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
fastq@^1.6.0:
version "1.11.0"
resolved "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz"
integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==
version "1.11.1"
resolved "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz"
integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==
dependencies:
reusify "^1.0.4"
@@ -2136,7 +2211,7 @@ fs.realpath@^1.0.0:
resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@~2.3.1:
fsevents@~2.3.1, fsevents@~2.3.2:
version "2.3.2"
resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
@@ -2215,7 +2290,7 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
glob-parent@^5.1.2, glob-parent@~5.1.0:
glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@@ -2405,6 +2480,15 @@ http-errors@1.7.3:
statuses ">= 1.5.0 < 2"
toidentifier "1.0.0"
http-proxy-agent@^4.0.1:
version "4.0.1"
resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz"
integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
dependencies:
"@tootallnate/once" "1"
agent-base "6"
debug "4"
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"
@@ -2419,9 +2503,17 @@ https-browserify@1.0.0, https-browserify@^1.0.0:
resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
https-proxy-agent@^5.0.0:
version "5.0.0"
resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz"
integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
dependencies:
agent-base "6"
debug "4"
https@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4"
resolved "https://registry.npmjs.org/https/-/https-1.0.0.tgz"
integrity sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=
i18next-fs-backend@^1.0.7:
@@ -2556,12 +2648,12 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3, inherits@~2.0.4:
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4:
version "2.0.4"
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
inherits@2.0.1, inherits@~2.0.1:
inherits@2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
@@ -2827,9 +2919,9 @@ jest-worker@27.0.0-next.5:
supports-color "^8.0.0"
jest-worker@^27.0.2:
version "27.0.2"
resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz"
integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==
version "27.0.6"
resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz"
integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==
dependencies:
"@types/node" "*"
merge-stream "^2.0.0"
@@ -3036,7 +3128,7 @@ loader-runner@^4.2.0:
resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz"
integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
loader-utils@1.2.3, loader-utils@^1.1.0, loader-utils@^1.2.3:
loader-utils@1.2.3:
version "1.2.3"
resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz"
integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
@@ -3045,6 +3137,15 @@ loader-utils@1.2.3, loader-utils@^1.1.0, loader-utils@^1.2.3:
emojis-list "^2.0.0"
json5 "^1.0.1"
loader-utils@^1.1.0, loader-utils@^1.2.3:
version "1.4.0"
resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz"
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
dependencies:
big.js "^5.2.2"
emojis-list "^3.0.0"
json5 "^1.0.1"
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz"
@@ -3318,9 +3419,9 @@ neo-async@^2.6.1, neo-async@^2.6.2:
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
next-i18next@^8.5.1:
version "8.5.1"
resolved "https://registry.npmjs.org/next-i18next/-/next-i18next-8.5.1.tgz"
integrity sha512-ETr6yOw69PPvbUCH2RoujgRzreTzcbSS4YrTusP5878ovBSmoah/mZ4+iUVVRU4ToeaSBZiIIJA6MtAJWGFBTw==
version "8.5.3"
resolved "https://registry.npmjs.org/next-i18next/-/next-i18next-8.5.3.tgz"
integrity sha512-XV+dL7iW/aOpDMIcWIB2HhfSC9cpaM9yXggE9zJFh+7r2UxJVfC23pw3u5MHFgwkcw5daC4SDBvZoVRrXSFdYQ==
dependencies:
"@babel/runtime" "^7.13.17"
"@types/hoist-non-react-statics" "^3.3.1"
@@ -4430,9 +4531,9 @@ react-dom@17.0.2:
scheduler "^0.20.2"
react-i18next@^11.8.13:
version "11.11.0"
resolved "https://registry.npmjs.org/react-i18next/-/react-i18next-11.11.0.tgz"
integrity sha512-p1jHmoyJgDFQmyubUEjrx6kCsr1izW/C8i9pOiJy+9lJqLYwNA8sElVplm0VAnop3kH68edT0/g3wB3UvAcRCQ==
version "11.11.1"
resolved "https://registry.npmjs.org/react-i18next/-/react-i18next-11.11.1.tgz"
integrity sha512-MtfzPEOvx0ev2cz0HmrEcduuqkktSa5bfeN8Flp0cvN0xP3H3MRSTa8P6pxPtqstHbRe1cD9QBOr5T/FEV2gOw==
dependencies:
"@babel/runtime" "^7.14.5"
html-parse-stringify "^3.0.1"
@@ -4464,6 +4565,11 @@ react-refresh@0.8.3:
resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz"
integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==
react-xml-parser@^1.1.8:
version "1.1.8"
resolved "https://registry.yarnpkg.com/react-xml-parser/-/react-xml-parser-1.1.8.tgz#e0fd3a5aa3c6e50197eed72a05fe110a5df64307"
integrity sha512-yX9k9LNCRzzNnFWoyo9cWEjtor6n6VD0Uh7z1ww5rIP6h5vdhJKEmowsm9RumEJMRdr7akcT4mMBScpsz573qQ==
react@17.0.2:
version "17.0.2"
resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz"
@@ -4535,6 +4641,13 @@ readdirp@~3.5.0:
dependencies:
picomatch "^2.2.1"
readdirp@~3.6.0:
version "3.6.0"
resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
dependencies:
picomatch "^2.2.1"
redent@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz"
@@ -4766,7 +4879,7 @@ sass@^1.35.1:
dependencies:
chokidar ">=3.0.0 <4.0.0"
sax@~1.2.4:
sax@>=0.6.0, sax@~1.2.4:
version "1.2.4"
resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -4798,11 +4911,11 @@ schema-utils@^2.6.1, schema-utils@^2.7.0:
ajv-keywords "^3.5.2"
schema-utils@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz"
integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==
version "3.1.0"
resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.0.tgz"
integrity sha512-tTEaeYkyIhEZ9uWgAjDerWov3T9MgX8dhhy2r0IGeeX4W8ngtGl1++dUve/RUqzuaASSh7shwCDJjEzthxki8w==
dependencies:
"@types/json-schema" "^7.0.6"
"@types/json-schema" "^7.0.7"
ajv "^6.12.5"
ajv-keywords "^3.5.2"
@@ -4836,10 +4949,10 @@ semver@~5.3.0:
resolved "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8=
serialize-javascript@^5.0.1:
version "5.0.1"
resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz"
integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
serialize-javascript@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz"
integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
dependencies:
randombytes "^2.1.0"
@@ -5100,7 +5213,7 @@ string-hash@1.1.3:
resolved "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz"
integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=
string-width@^1.0.1, "string-width@^1.0.2 || 2":
string-width@^1.0.1:
version "1.0.2"
resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
@@ -5109,6 +5222,14 @@ string-width@^1.0.1, "string-width@^1.0.2 || 2":
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
"string-width@^1.0.2 || 2":
version "2.1.1"
resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
dependencies:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
string-width@^3.0.0, string-width@^3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"
@@ -5185,6 +5306,13 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1:
dependencies:
ansi-regex "^2.0.0"
strip-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"
integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
dependencies:
ansi-regex "^3.0.0"
strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
version "5.2.0"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
@@ -5328,21 +5456,21 @@ tar@^2.0.0:
inherits "2"
terser-webpack-plugin@^5.1.3:
version "5.1.3"
resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.3.tgz"
integrity sha512-cxGbMqr6+A2hrIB5ehFIF+F/iST5ZOxvOmy9zih9ySbP1C2oEWQSOUS+2SNBTjzx5xLKO4xnod9eywdfq1Nb9A==
version "5.1.4"
resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz"
integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==
dependencies:
jest-worker "^27.0.2"
p-limit "^3.1.0"
schema-utils "^3.0.0"
serialize-javascript "^5.0.1"
serialize-javascript "^6.0.0"
source-map "^0.6.1"
terser "^5.7.0"
terser@^5.7.0:
version "5.7.0"
resolved "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz"
integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==
version "5.7.1"
resolved "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz"
integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==
dependencies:
commander "^2.20.0"
source-map "~0.7.2"
@@ -5571,7 +5699,7 @@ util@0.10.3:
dependencies:
inherits "2.0.1"
util@0.12.3, util@^0.12.0:
util@0.12.3:
version "0.12.3"
resolved "https://registry.npmjs.org/util/-/util-0.12.3.tgz"
integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==
@@ -5590,6 +5718,18 @@ util@^0.11.0:
dependencies:
inherits "2.0.3"
util@^0.12.0:
version "0.12.4"
resolved "https://registry.npmjs.org/util/-/util-0.12.4.tgz"
integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==
dependencies:
inherits "^2.0.3"
is-arguments "^1.0.4"
is-generator-function "^1.0.7"
is-typed-array "^1.1.3"
safe-buffer "^5.1.2"
which-typed-array "^1.1.2"
uuid@^3.3.2:
version "3.4.0"
resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"
@@ -5670,16 +5810,16 @@ webpack-sources@^2.3.0:
source-map "^0.6.1"
webpack@^5.40.0:
version "5.40.0"
resolved "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz"
integrity sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw==
version "5.42.1"
resolved "https://registry.npmjs.org/webpack/-/webpack-5.42.1.tgz"
integrity sha512-msikozzXrG2Hdx+dElq0fyNvxPFsaM2dKLc/l+xkMmhO/1qwVJ9K9gY+fi/49MYWcpSP7alnK5Q78Evrd1LiqQ==
dependencies:
"@types/eslint-scope" "^3.7.0"
"@types/estree" "^0.0.47"
"@types/estree" "^0.0.48"
"@webassemblyjs/ast" "1.11.0"
"@webassemblyjs/wasm-edit" "1.11.0"
"@webassemblyjs/wasm-parser" "1.11.0"
acorn "^8.2.1"
acorn "^8.4.1"
browserslist "^4.14.5"
chrome-trace-event "^1.0.2"
enhanced-resolve "^5.8.0"
@@ -5776,11 +5916,34 @@ wrappy@1:
resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
xml2js@^0.4.23:
version "0.4.23"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
dependencies:
sax ">=0.6.0"
xmlbuilder "~11.0.0"
xmlbuilder@~11.0.0:
version "11.0.1"
resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz"
integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
xmldom@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.6.0.tgz#43a96ecb8beece991cef382c08397d82d4d0c46f"
integrity sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==
xmlhttprequest@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
resolved "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz"
integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=
xpath@^0.0.32:
version "0.0.32"
resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.32.tgz#1b73d3351af736e17ec078d6da4b8175405c48af"
integrity sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==
xtend@^4.0.0, xtend@^4.0.2:
version "4.0.2"
resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"