import ReactPDF, { Document, Page, Text, View, Image, StyleSheet, PDFViewer, Font, } from "@react-pdf/renderer"; import { createElement } from "react"; import Html from "react-pdf-html"; import { getFormCollectionByID, bytesToSize } from "../../components/utils"; import transLookupCY from "../../locales/cy/myrepresentations.json"; import transLookupEN from "../../locales/en/myrepresentations.json"; import { JSONPath as jsonpath } from "jsonpath-plus"; const getTrans = (locale, key) => { let jsonQuery = `$.${key}`; let jsonObj = locale == "cy" ? transLookupCY : transLookupEN; //console.log(locale, jsonObj[key]); return jsonObj[key]; }; const styles = StyleSheet.create({ page: { backgroundColor: "white", padding: 20, fontSize: 16, paddingBottom: 50, }, header: { fontSize: 25, fontFamily: "Helvetica", flexDirection: "row", justifyContent: "space-between", }, subHeader: { fontSize: 20, }, logoImage: { width: "200pt" }, questionBullet: { width: "5%", fontSize: 12 }, questionText: { width: "30%", fontSize: 12 }, questionTextMid: { width: "80%", fontSize: 12 }, questionTextWide: { width: "95%", fontSize: 12, marginBottom: 5 }, questionAnswer: { color: "#757575", width: "65%", fontSize: 12, padding: 5, border: 1, borderColor: "#eee", paddingLeft: 10, backgroundColor: "white", }, questionAnswerMid: { color: "#757575", width: "20%", fontSize: 12, padding: 5, border: 1, borderColor: "#eee", paddingLeft: 10, backgroundColor: "white", }, questionAnswerWide: { color: "#757575", width: "95%", fontSize: 12, marginLeft: "5%", border: 1, borderColor: "#eee", backgroundColor: "white", padding: 5, }, sectionContainer: { backgroundColor: "#F8F8F8", padding: 10, marginTop: 20, fontSize: 15, }, pageNumber: { position: "absolute", fontSize: 12, bottom: 20, left: 0, right: 0, textAlign: "center", color: "grey", }, richArea: { fontSize: 12, flexDirection: "column", }, }); export const other_pdf = ({ docProps }) => { //console.log("----", docProps); function formatDates(dateObj) { var dateObj = new Date(dateObj); var dd = String(dateObj.getDate()).padStart(2, "0"); var mm = String(dateObj.getMonth() + 1).padStart(2, "0"); //January is 0! var yyyy = dateObj.getFullYear(); return dd + "/" + mm + "/" + yyyy; } let values = docProps; let datestr = values.pinswg_name.split("-"); let signedDate = formatDates(new Date()); // datestr[2] + "/" + datestr[1] + "/" + datestr[0]; const isLPA = values.representationCapacity == "lpa" || values.representationCapacity == "LPA" ? true : false; let filterFilesList = values.hasOwnProperty("filesList") ? values.filesList.filter(function (el) { return el != null; }) : []; Font.registerHyphenationCallback((word) => [word]); function CleanHTML(htmlStr) { let cleanStr = typeof htmlStr === "string" ? htmlStr.replace( /


<\/p>|


<\/p>/g, "" ) : ""; return cleanStr; } return ( Other For Planning Appeal, Planning Conditions, Listed Building and Conservation Area Appeal, Lawful Development Appeal, Planning Obligations, Community Infrastructure Levy, Enforcement Notice appeal, Enforcement Listed Building Appeal, Maintenance of land, Called in Application applications/appeals PEDW Logo Case details 1. {getTrans( docProps.locale, "s78-section-question-1" )} {values.caseRef} 3. Site address/grid ref: {values.siteAddress} 4. Case Type: { getFormCollectionByID(values.appealType) .value } Comments 5. Other Comments {CleanHTML( values.representationComments )} Supporting documents 11. List of attached files {values.hasOwnProperty("filesList") && filterFilesList.map(function (p) { return ( {p.name} -{" "} {bytesToSize(p.size)}{" "} {"\n"} ); })} Declaration Signed: {values.firstname} {values.lastname} Date: {signedDate} {isLPA && ( On behalf of: {values.representationCapacity} )} `${pageNumber} / ${totalPages}` } fixed /> ); };