Commit 65736c13 by ramdayalmunda

genereate PDF fixes

parent 6681a6d0
let isModule = (typeof module != 'undefined') ? true : false
const { createCanvas } = require('canvas')
var ADocEditor = function (customConfig) {
var counter = 7
var screen = { width: 1366, height: 720 }
var defaultConfig = {
element: "",
pageSetup: {
width: 210,
height: 110,
},
format: {
background: "#fff",
margin: 20,
border: "",
fontSize: 10,
tabWidth: 20,
},
style: {
fontSize: 30,
fontFamily: 'Arial',
bold: false,
italic: false,
fontColor: "#001"
},
}
var config = JSON.parse(JSON.stringify(defaultConfig));
var canvasList = []
const dataTypes = [
"paragraph", // simple text filled line by line
"list", // sequence of line that preserves indentation
]
var dataSet = [
{
id: ++counter,
type: 0,
formatedText: [],
plainContent: "",
tabCount: 0,
style: { ...config.style }
},
]
// // paragraphs // this line is added only for testing please remove this on completion
dataSet = JSON.parse('[{"id":1,"type":0,"formatedText":[],"plainContent":"Rendering text in HTML canvas involves using the CanvasRenderingContext2D interface to display text content within a canvas element. This process allows for dynamic text display, enabling the creation of custom text effects, labels, captions, or textual elements within the canvas.","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#001"}},{"id":2,"type":0,"plainContent":"To render text on a canvas, developers typically use the fillText() method provided by the Canvas API. This method allows the specification of text content, font styles, position, and color. Additionally, the measureText() method helps in determining the width of text, facilitating accurate positioning and layout arrangements.","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#001"}},{"id":3,"type":0,"plainContent":"Text in canvas can be customized by setting various font properties like font family, font size, style (bold, italic), alignment, and color. However, canvas text rendering lacks the text reflow and responsive layout capabilities inherent in HTML and CSS.","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#001"}},{"id":4,"type":0,"plainContent":"Despite its intricacies, canvas text rendering offers unparalleled creative freedom, enabling the development of immersive graphical experiences, custom typography, and visually stunning representations that enhance user engagement and interactivity within web-based applications and games.","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#001"}},{"id":5,"type":0,"plainContent":"Developers often use canvas text rendering to create graphical representations of text-based information, such as game interfaces, data visualizations, charts, and diagrams. Despite its flexibility in text manipulation and artistic possibilities, rendering text in canvas may require additional manual adjustments for formatting, spacing, and alignment compared to traditional HTML text rendering.","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#001"}}]')
// // lists // this line is added only for testing please remove this on completion
dataSet = JSON.parse('[{"id":1,"type":0,"plainContent":"Here is a list of household items you need to buy if you are relocating and don\'t have anything with you","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#003"},"formatedText":[]},{"id":2,"type":1,"tabCount":0,"plainContent":"Recipie book for vegetarian noodles","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#003"},"formatedText":[]},{"id":3,"type":1,"tabCount":0,"plainContent":"Noodles","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#003"},"formatedText":[]},{"id":5,"type":1,"tabCount":0,"plainContent":"Garlic","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#003"},"formatedText":[]},{"id":6,"type":1,"tabCount":0,"plainContent":"Some School stationaries for Arvind","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#003"},"formatedText":[]},{"id":7,"type":1,"tabCount":1,"plainContent":"Full pack of pen","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#003"},"formatedText":[]},{"id":8,"type":1,"tabCount":1,"plainContent":"Drawing kit","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#003"},"formatedText":[]},{"id":9,"type":1,"tabCount":1,"plainContent":"2 register size notebook","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#003"},"formatedText":[]},{"id":10,"type":1,"tabCount":0,"plainContent":"Window shields","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#003"},"formatedText":[]},{"id":11,"type":1,"tabCount":0,"plainContent":"Mosquito repelant","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#003"},"formatedText":[]}]')
var lines = []
var caretData = {
activeData: dataSet[0],
index: 0,
interval: null,
intervalDuration: 800,
blink: false,
canvasIndex: 0,
caretSize: config.style.fontSize,
x: config.format.margin,
y: config.format.margin + (3 * config.style.fontSize / 4),
previousCaret: null,
}
var renderInProgress = false;
function inititalize(customConfig) {
config = { ...defaultConfig, ...customConfig }
config.pageSetup.canvasMultiplier = Math.round(screen.width / config.pageSetup.width)
config.pageSetup.canvasWidth = config.pageSetup.canvasMultiplier * config.pageSetup.width
config.pageSetup.canvasHeight = config.pageSetup.canvasMultiplier * config.pageSetup.height
reRenderPages(dataSet)
}
function reRenderPages(dataList, option) {
if (renderInProgress) return
renderInProgress = true
let canvasIndex = 0
if (!canvasList.length) canvasList[0] = { el: createNewCanvas(), dataIndex: 0 }
// to clear the canvases
for (let i = 0; i < canvasList.length; i++) {
let ctx = canvasList[i].el.getContext('2d', { willReadFrequently: true })
ctx.save()
ctx.clearRect(0, 0, canvasList[i].el.width, canvasList[i].el.height); // clears the canvas
ctx.fillStyle = config.format.background
ctx.fillRect(0, 0, canvasList[i].el.width, canvasList[i].el.height)
ctx.restore()
}
lines = []
for (let i = 0; i < dataList.length; i++) {
calculateTextSizeAndPosition(canvasIndex, i)
}
renderTheLines()
if (!caretData.blink && caretData.activeData) renderCaret()
function calculateTextSizeAndPosition(canvasIndex, dataSetIndex) {
let dataBlock = dataList[dataSetIndex]
let canvas = canvasList[canvasIndex].el
let ctx = canvas.getContext('2d', { willReadFrequently: true })
ctx.save()
// to calculate the lines
let dataLineArr = []
function getLineObj() {
return {
x: 0, // this is the starting point x; it will change based on the tabNumber
y: 0, // this is the starting y coordinate; it will change based on the max font size
plainContent: "",
fontSize: 30,
maxFontSize: 30,
dataSetIndex: dataSetIndex,
charStartIndex: 0, // index from where to check
charEndIndex: 0, // index till where to check// not including this index.
}
}
if (!dataBlock.formatedText) dataBlock.formatedText = []
let lineObj = new getLineObj()
dataLineArr.push(lineObj)
lineObj.type = dataBlock.type
lineObj.blockStart = true
let wordEndIndex = 0; // this stores the index of the word which can fit in the line;
let tempLineWidth = 0;
let maxLineWidth = config.pageSetup.canvasWidth - (config.format.margin * 2 * config.pageSetup.canvasMultiplier)
if (dataBlock.tabCount || dataBlock.type == 1) {
let finalTabCount = dataBlock.tabCount
if (dataBlock.type == 1) {
finalTabCount++
}
let tabDistance = finalTabCount * config.format.tabWidth * config.pageSetup.canvasMultiplier
if (tabDistance > maxLineWidth * 5 / 6) { tabDistance = 0 }
maxLineWidth = maxLineWidth - tabDistance
}
lineObj.maxLineWidth = maxLineWidth
lineObj.tabCount = dataBlock.tabCount
// // for checking the listIndex
if (dataBlock.type == 1) {
for (let i = dataSetIndex - 1; i >= 0; i--) {
if (dataList[i].type != 1) {
dataBlock.listIndex = 0
break;
} else if (dataList[i].tabCount == dataBlock.tabCount) {
dataBlock.listIndex = dataList[i].listIndex + 1
break
} else if (dataList[i].tabCount < dataBlock.tabCount) {
dataBlock.listIndex = 0
break;
}
}
}
lineObj.listIndex = dataBlock.listIndex
let i = 0
for (i = 0; i < dataBlock.plainContent.length; i++) {
let style = dataBlock?.formatedText?.[i]
if (!style) style = JSON.parse(JSON.stringify(config.style))
if (/\s/.test(dataBlock.plainContent[i])) {
wordEndIndex = i
lineObj.charEndIndex = wordEndIndex;
}
let charWidth = getCharacterWidth(canvasIndex, dataBlock.plainContent[i], style)
dataBlock.formatedText[i] = {
...config.style,
width: charWidth
}
lineObj.maxFontSize = style.fontSize
// lineObj.fontSize = style.fontSize
tempLineWidth += charWidth
if (tempLineWidth <= maxLineWidth) {
// can be added to the line //
} else {
// cannot add this// new line should be added//
i = wordEndIndex;
lineObj.plainContent = dataBlock.plainContent.slice(lineObj.charStartIndex, lineObj.charEndIndex + 1)
lineObj = new getLineObj()
lineObj.listIndex = dataBlock.listIndex
lineObj.maxLineWidth = maxLineWidth
lineObj.tabCount = dataBlock.tabCount
lineObj.charStartIndex = i
lineObj.charEndIndex = i
dataLineArr.push(lineObj)
tempLineWidth = 0
}
}
lineObj.plainContent = dataBlock.plainContent.slice(lineObj.charStartIndex, lineObj.charEndIndex + 1)
// there is chance that the last line is not at the width// so we need to handle the last line separately
if (lineObj.charEndIndex <= dataBlock.plainContent.length) {
lineObj.charEndIndex = dataBlock.plainContent.length - 1
}
lineObj.plainContent = dataBlock.plainContent.slice(lineObj.charStartIndex, lineObj.charEndIndex)
lines.push(...dataLineArr)
ctx.restore()
return true
}
function renderTheLines() {
let canvasIndex = 0
let ctx = canvasList[canvasIndex].el.getContext('2d', { willReadFrequently: true })
let x = 0
let y = (config.format.margin * config.pageSetup.canvasMultiplier)
let maxVericalWidth = (config.pageSetup.canvasHeight - config.format.margin * config.pageSetup.canvasMultiplier * 2)
for (let l = 0; l < lines.length; l++) {
x = (config.format.margin * config.pageSetup.canvasMultiplier);
y += lines[l].maxFontSize
if (lines[l].blockStart && l != 0) y += lines[l].maxFontSize
if ((maxVericalWidth + lines[l].maxFontSize) < (y - lines[l].maxFontSize)) {
canvasIndex++
if (!canvasList[canvasIndex]) {
canvasList[canvasIndex] = { id: ++counter, el: createNewCanvas(), dataIndex: lines[l].dataSetIndex, lineIndex: l }
}
ctx = canvasList[canvasIndex].el.getContext('2d', { willReadFrequently: true })
y = lines[l].maxFontSize + (config.format.margin * config.pageSetup.canvasMultiplier)
}
let setData = dataSet[lines[l].dataSetIndex]
lines[l].y = y
if (lines[l].listIndex >= 0) {
let totalTabDistance = config.format.tabWidth * config.pageSetup.canvasMultiplier * (lines[l].tabCount + 1)
x += totalTabDistance;
let numberX = x - config.format.tabWidth * config.pageSetup.canvasMultiplier / 2
if (lines[l].blockStart) {
let style = {
...config.style,
...setData.style
}
ctx.save()
ctx.fillStyle = `${style.fontColor}`
ctx.font = `${style.bold ? 'bold ' : ''}${style.italic ? 'italic ' : ''} ${style.fontSize}px ${style.fontFamily}`
ctx.fillText(`${lines[l].listIndex + 1}.`, numberX, y)
ctx.restore()
}
}
lines[l].x = x
lines[l].canvasIndex = canvasIndex
for (let c = lines[l].charStartIndex; c <= lines[l].charEndIndex; c++) {
let char = setData?.plainContent[c]
if (char) {
let style = setData.formatedText[c]
ctx.save()
ctx.font = `${style?.bold ? 'bold ' : ''}${style?.italic ? 'italic ' : ''} ${style.fontSize}px ${style.fontFamily}`
ctx.fillStyle = `${style?.fontColor}`
ctx.fillText(char, x, y)
setData.formatedText[c].x = x
setData.formatedText[c].y = y
ctx.restore()
if (setData.formatedText[c]?.width) {
x += setData.formatedText[c]?.width
}
}
}
}
}
// to render caret
function renderCaret() {
let ctx = canvasList[caretData.canvasIndex].el.getContext('2d', { willReadFrequently: true })
ctx.save()
let activeDataIndex = dataSet.findIndex(item => item.id == caretData.activeData.id)
let activeLine = lines.find((item, i) => {
if (item.dataSetIndex == activeDataIndex) {
if (item.charEndIndex == -1) return true
if (item.charEndIndex >= caretData.index) return true
if (!(lines[i + 1]?.dataSetIndex == activeDataIndex)) return true
else false
} else return false
})
// handle left right on multiple pages
if (activeLine) {
caretData.canvasIndex = activeLine.canvasIndex
ctx.restore()
ctx = canvasList[activeLine.canvasIndex].el.getContext('2d', { willReadFrequently: true })
ctx.save()
}
let characterData = dataSet[activeDataIndex].formatedText[caretData.index]
let rectX = characterData?.x,
rectY = activeLine.y - activeLine.maxFontSize,
rectWidth = 2,
rectHeight = 5 * activeLine.maxFontSize / 4;
if (!characterData && dataSet[activeDataIndex].formatedText?.[caretData.index - 1]) {
rectX = dataSet[activeDataIndex].formatedText?.[caretData.index - 1]?.x + dataSet[activeDataIndex].formatedText?.[caretData.index - 1]?.width
}
if (activeLine.charEndIndex == caretData.index) {
rectX = dataSet[activeDataIndex].formatedText?.[caretData.index - 1]?.x + dataSet[activeDataIndex].formatedText?.[caretData.index - 1]?.width
}
if (!(rectX > 0 || rectX == 0)) { rectX = activeLine.x }
const imageData = ctx.getImageData(rectX, rectY, rectWidth, rectHeight);
const data = imageData.data;
// Invert the color of the rectangular region
for (let i = 0; i < data.length; i += 4) {
data[i] = 255 - data[i]; // Red
data[i + 1] = 255 - data[i + 1]; // Green
data[i + 2] = 255 - data[i + 2]; // Blue
// Alpha channel remains unchanged (data[i + 3])
ctx.putImageData(imageData, rectX, rectY);
}
ctx.restore()
}
function getCharacterWidth(canvasIndex, char, style) {
let canvas = canvasList[canvasIndex].el
let ctx = canvas.getContext('2d', { willReadFrequently: true })
ctx.save()
ctx.font = `${style?.bold ? 'bold ' : ''}${style?.italic ? 'italic ' : ''} ${style.fontSize}px ${style.fontFamily}`
ctx.fillStyle = `${style?.fontColor}`
let width = ctx.measureText(char).width
ctx.restore()
return width
}
function createNewCanvas() {
let canvas = createCanvas(config.pageSetup.canvasWidth, config.pageSetup.canvasHeight)
let ctx = canvas.getContext('2d', { willReadFrequently: true })
ctx.fillStyle = config.format.background
ctx.fillRect(0, 0, canvas.width, canvas.height)
return canvas
}
renderInProgress = false
}
function generatePDF(e){
if (isModule){
console.log('to generate PDF on Server side')
}else{
console.log('to generate PDF on browser')
}
}
inititalize(customConfig)
function destory() {
clearInterval(caretData.interval)
}
var returnObj = {
destory,
loadContent: function (data) {
dataSet = JSON.parse(JSON.stringify(data))
reRenderPages(dataSet)
caretData.activeData = null
caretData.activeData = dataSet[0]
caretData.index = 0
},
getContent: function () {
return JSON.parse(JSON.stringify(dataSet))
},
generatePDF,
}
return returnObj
}
if (isModule) module.exports = ADocEditor
\ No newline at end of file
...@@ -89,6 +89,7 @@ var ADocEditor = function (customConfig) { ...@@ -89,6 +89,7 @@ var ADocEditor = function (customConfig) {
<span class="option">Edit</span> <span class="option">Edit</span>
<span class="option">Insert</span> <span class="option">Insert</span>
<span class="option">Help</span> <span class="option">Help</span>
<span class="option" a-doc-editor-action="generate-pdf">PDF</span>
</div> </div>
<div class="option-bar"> <div class="option-bar">
<span class="option">Search</span> <span class="option">Search</span>
...@@ -145,6 +146,9 @@ var ADocEditor = function (customConfig) { ...@@ -145,6 +146,9 @@ var ADocEditor = function (customConfig) {
rightSidebar.classList.toggle('hide') rightSidebar.classList.toggle('hide')
}) })
let generatePDFBtn = document.querySelector('[a-doc-editor-action]')
generatePDFBtn.addEventListener( 'click', generatePDF)
reRenderPages(dataSet) reRenderPages(dataSet)
} }
...@@ -606,6 +610,14 @@ var ADocEditor = function (customConfig) { ...@@ -606,6 +610,14 @@ var ADocEditor = function (customConfig) {
} }
} }
function generatePDF(e){
if (isModule){
console.log('to generate PDF on Server side')
}else{
console.log('to generate PDF on browser')
}
}
inititalize(customConfig) inititalize(customConfig)
...@@ -620,10 +632,12 @@ var ADocEditor = function (customConfig) { ...@@ -620,10 +632,12 @@ var ADocEditor = function (customConfig) {
reRenderPages(dataSet) reRenderPages(dataSet)
caretData.activeData = null caretData.activeData = null
caretData.activeData = dataSet[0] caretData.activeData = dataSet[0]
caretData.index = 0
}, },
getContent: function () { getContent: function () {
return JSON.parse(JSON.stringify(dataSet)) return JSON.parse(JSON.stringify(dataSet))
} },
generatePDF,
} }
return returnObj return returnObj
} }
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
<p>Click on the canvas and start typing <p>Click on the canvas and start typing
<button onclick="extractData()">Extract</button> <button onclick="extractData()">Extract</button>
<button onclick="setData()">Set Data</button> <button onclick="setData()">Set Data</button>
<button onclick="generatePDF()">Generate PDF</button>
</p> </p>
<div id="user-container-for-editor"></div> <div id="user-container-for-editor"></div>
......
var tempDocData = [] var tempDocData = []
var editor = new ADocEditor({ element: document.getElementById("user-container-for-editor") }) var editor = new ADocEditor({ element: document.getElementById("user-container-for-editor") })
var extractedData = null
function extractData() { function extractData() {
let data = editor.getContent() let data = editor.getContent()
extractedData = data
console.log(data) console.log(data)
} }
function setData() { function setData() {
editor.loadContent(tempDocData) editor.loadContent(extractedData)
}
function generatePDF(){
let url = `${window.origin}/generate-pdf`
let options = {
method: 'POST',
body: JSON.stringify( editor.getContent() ),
headers: {
'Content-Type': 'application/json',
},
};
fetch( url, options )
.then( async (res)=>{
let parsedJson = await res.json()
console.log('res', parsedJson)
} )
.catch(err=>{
console.log(err)
})
} }
tempDocData = JSON.parse('[{"id":1,"type":0,"plainContent":"Hey there buddy! Can you bring these items from the groceries please. It will be really helpfull.","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":2,"type":1,"tabCount":0,"plainContent":"Recipie book for vegetarian noodles","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":3,"type":1,"tabCount":0,"plainContent":"Noodles","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":4,"type":1,"tabCount":0,"plainContent":"Onion","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":5,"type":1,"tabCount":0,"plainContent":"Garlic","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":6,"type":1,"tabCount":0,"plainContent":"Some School stationaries for Arvind","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":7,"type":1,"tabCount":1,"plainContent":"Full pack of pen","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":8,"type":1,"tabCount":1,"plainContent":"Drawing kit","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":9,"type":1,"tabCount":1,"plainContent":"2 register size notebook","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":10,"type":1,"tabCount":0,"plainContent":"Window shields","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":11,"type":1,"tabCount":0,"plainContent":"Mosquito repelant","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]}]') tempDocData = JSON.parse('[{"id":1,"type":0,"plainContent":"Hey there buddy! Can you bring these items from the groceries please. It will be really helpfull.","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":2,"type":1,"tabCount":0,"plainContent":"Recipie book for vegetarian noodles","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":3,"type":1,"tabCount":0,"plainContent":"Noodles","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":4,"type":1,"tabCount":0,"plainContent":"Onion","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":5,"type":1,"tabCount":0,"plainContent":"Garlic","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":6,"type":1,"tabCount":0,"plainContent":"Some School stationaries for Arvind","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":7,"type":1,"tabCount":1,"plainContent":"Full pack of pen","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":8,"type":1,"tabCount":1,"plainContent":"Drawing kit","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":9,"type":1,"tabCount":1,"plainContent":"2 register size notebook","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":10,"type":1,"tabCount":0,"plainContent":"Window shields","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]},{"id":11,"type":1,"tabCount":0,"plainContent":"Mosquito repelant","style":{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},"formatedText":[{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"},{"fontSize":30,"fontFamily":"Arial","bold":false,"italic":false,"fontColor":"#0004"}]}]')
// end of file
\ No newline at end of file
let ADocEditor = require("./a-doc-editor-node.js")
module.exports = async function(req, res){
try{
console.log('reaching server', )
let editor = new ADocEditor()
console.log('editor', editor)
res.status(200).json( { success: true, message: "Successfull" } )
}catch(err){
console.log(err)
res.status(200).json({ message: "Failed" })
}
}
\ No newline at end of file
const express = require("express") const express = require("express")
const port = 3910; const port = 3910;
const path = require("path") const path = require("path");
const app = express() const app = express()
app.use( express.json() )
app.post( '/generate-pdf', require("./generate-pdf") )
app.use( express.static( path.join( __dirname, 'dist' ) ) ) app.use( express.static( path.join( __dirname, 'dist' ) ) )
app.listen( port, ()=>{ app.listen( port, ()=>{
console.log(`Doc Editor on http://localhost:${port}`) console.log(`Doc Editor on http://localhost:${port}`)
} ) } )
......
...@@ -9,9 +9,52 @@ ...@@ -9,9 +9,52 @@
"version": "1.0.0", "version": "1.0.0",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"express": "^4.18.2" "canvas": "^2.11.2",
"express": "^4.18.2",
"jspdf": "^2.5.1"
} }
}, },
"node_modules/@babel/runtime": {
"version": "7.23.6",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz",
"integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@mapbox/node-pre-gyp": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
"integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
"dependencies": {
"detect-libc": "^2.0.0",
"https-proxy-agent": "^5.0.0",
"make-dir": "^3.1.0",
"node-fetch": "^2.6.7",
"nopt": "^5.0.0",
"npmlog": "^5.0.1",
"rimraf": "^3.0.2",
"semver": "^7.3.5",
"tar": "^6.1.11"
},
"bin": {
"node-pre-gyp": "bin/node-pre-gyp"
}
},
"node_modules/@types/raf": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.3.tgz",
"integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==",
"optional": true
},
"node_modules/abbrev": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"node_modules/accepts": { "node_modules/accepts": {
"version": "1.3.8", "version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
...@@ -24,11 +67,93 @@ ...@@ -24,11 +67,93 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/agent-base": {
"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"
},
"engines": {
"node": ">= 6.0.0"
}
},
"node_modules/agent-base/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/agent-base/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/aproba": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
"integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
},
"node_modules/are-we-there-yet": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
"integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
"dependencies": {
"delegates": "^1.0.0",
"readable-stream": "^3.6.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/array-flatten": { "node_modules/array-flatten": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
}, },
"node_modules/atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"bin": {
"atob": "bin/atob.js"
},
"engines": {
"node": ">= 4.5.0"
}
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/base64-arraybuffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
"integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==",
"optional": true,
"engines": {
"node": ">= 0.6.0"
}
},
"node_modules/body-parser": { "node_modules/body-parser": {
"version": "1.20.1", "version": "1.20.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
...@@ -52,6 +177,26 @@ ...@@ -52,6 +177,26 @@
"npm": "1.2.8000 || >= 1.4.16" "npm": "1.2.8000 || >= 1.4.16"
} }
}, },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/btoa": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
"integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==",
"bin": {
"btoa": "bin/btoa.js"
},
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/bytes": { "node_modules/bytes": {
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
...@@ -73,6 +218,71 @@ ...@@ -73,6 +218,71 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/canvas": {
"version": "2.11.2",
"resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz",
"integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==",
"hasInstallScript": true,
"dependencies": {
"@mapbox/node-pre-gyp": "^1.0.0",
"nan": "^2.17.0",
"simple-get": "^3.0.3"
},
"engines": {
"node": ">=6"
}
},
"node_modules/canvg": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.10.tgz",
"integrity": "sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==",
"optional": true,
"dependencies": {
"@babel/runtime": "^7.12.5",
"@types/raf": "^3.4.0",
"core-js": "^3.8.3",
"raf": "^3.4.1",
"regenerator-runtime": "^0.13.7",
"rgbcolor": "^1.0.1",
"stackblur-canvas": "^2.0.0",
"svg-pathdata": "^6.0.3"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/canvg/node_modules/regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
"optional": true
},
"node_modules/chownr": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"engines": {
"node": ">=10"
}
},
"node_modules/color-support": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
"bin": {
"color-support": "bin.js"
}
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
},
"node_modules/content-disposition": { "node_modules/content-disposition": {
"version": "0.5.4", "version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
...@@ -105,6 +315,26 @@ ...@@ -105,6 +315,26 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
}, },
"node_modules/core-js": {
"version": "3.34.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.34.0.tgz",
"integrity": "sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==",
"hasInstallScript": true,
"optional": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
}
},
"node_modules/css-line-break": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz",
"integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
"optional": true,
"dependencies": {
"utrie": "^1.0.2"
}
},
"node_modules/debug": { "node_modules/debug": {
"version": "2.6.9", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
...@@ -113,6 +343,17 @@ ...@@ -113,6 +343,17 @@
"ms": "2.0.0" "ms": "2.0.0"
} }
}, },
"node_modules/decompress-response": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
"integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
"dependencies": {
"mimic-response": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/define-data-property": { "node_modules/define-data-property": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
...@@ -126,6 +367,11 @@ ...@@ -126,6 +367,11 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"node_modules/delegates": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
"integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
},
"node_modules/depd": { "node_modules/depd": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
...@@ -143,11 +389,30 @@ ...@@ -143,11 +389,30 @@
"npm": "1.2.8000 || >= 1.4.16" "npm": "1.2.8000 || >= 1.4.16"
} }
}, },
"node_modules/detect-libc": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
"integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
"engines": {
"node": ">=8"
}
},
"node_modules/dompurify": {
"version": "2.4.7",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.7.tgz",
"integrity": "sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==",
"optional": true
},
"node_modules/ee-first": { "node_modules/ee-first": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
}, },
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/encodeurl": { "node_modules/encodeurl": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
...@@ -210,6 +475,11 @@ ...@@ -210,6 +475,11 @@
"node": ">= 0.10.0" "node": ">= 0.10.0"
} }
}, },
"node_modules/fflate": {
"version": "0.4.8",
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz",
"integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA=="
},
"node_modules/finalhandler": { "node_modules/finalhandler": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
...@@ -243,6 +513,33 @@ ...@@ -243,6 +513,33 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/fs-minipass": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
"integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"dependencies": {
"minipass": "^3.0.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/fs-minipass/node_modules/minipass": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/function-bind": { "node_modules/function-bind": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
...@@ -251,6 +548,25 @@ ...@@ -251,6 +548,25 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/gauge": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
"integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
"dependencies": {
"aproba": "^1.0.3 || ^2.0.0",
"color-support": "^1.1.2",
"console-control-strings": "^1.0.0",
"has-unicode": "^2.0.1",
"object-assign": "^4.1.1",
"signal-exit": "^3.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"wide-align": "^1.1.2"
},
"engines": {
"node": ">=10"
}
},
"node_modules/get-intrinsic": { "node_modules/get-intrinsic": {
"version": "1.2.2", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
...@@ -265,6 +581,25 @@ ...@@ -265,6 +581,25 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/gopd": { "node_modules/gopd": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
...@@ -309,6 +644,11 @@ ...@@ -309,6 +644,11 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/has-unicode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
"integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
},
"node_modules/hasown": { "node_modules/hasown": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
...@@ -320,6 +660,19 @@ ...@@ -320,6 +660,19 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"node_modules/html2canvas": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz",
"integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
"optional": true,
"dependencies": {
"css-line-break": "^2.1.0",
"text-segmentation": "^1.0.3"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/http-errors": { "node_modules/http-errors": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
...@@ -335,6 +688,39 @@ ...@@ -335,6 +688,39 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/https-proxy-agent": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
"integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dependencies": {
"agent-base": "6",
"debug": "4"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/https-proxy-agent/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/https-proxy-agent/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/iconv-lite": { "node_modules/iconv-lite": {
"version": "0.4.24", "version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
...@@ -346,6 +732,15 @@ ...@@ -346,6 +732,15 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/inherits": { "node_modules/inherits": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
...@@ -359,6 +754,64 @@ ...@@ -359,6 +754,64 @@
"node": ">= 0.10" "node": ">= 0.10"
} }
}, },
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"engines": {
"node": ">=8"
}
},
"node_modules/jspdf": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.5.1.tgz",
"integrity": "sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA==",
"dependencies": {
"@babel/runtime": "^7.14.0",
"atob": "^2.1.2",
"btoa": "^1.2.1",
"fflate": "^0.4.8"
},
"optionalDependencies": {
"canvg": "^3.0.6",
"core-js": "^3.6.0",
"dompurify": "^2.2.0",
"html2canvas": "^1.0.0-rc.5"
}
},
"node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dependencies": {
"semver": "^6.0.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/make-dir/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/media-typer": { "node_modules/media-typer": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
...@@ -410,11 +863,80 @@ ...@@ -410,11 +863,80 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/mimic-response": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
"integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/minipass": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/minizlib": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
"integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
"dependencies": {
"minipass": "^3.0.0",
"yallist": "^4.0.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/minizlib/node_modules/minipass": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"bin": {
"mkdirp": "bin/cmd.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/ms": { "node_modules/ms": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}, },
"node_modules/nan": {
"version": "2.18.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz",
"integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w=="
},
"node_modules/negotiator": { "node_modules/negotiator": {
"version": "0.6.3", "version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
...@@ -423,6 +945,58 @@ ...@@ -423,6 +945,58 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/node-fetch": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dependencies": {
"whatwg-url": "^5.0.0"
},
"engines": {
"node": "4.x || >=6.0.0"
},
"peerDependencies": {
"encoding": "^0.1.0"
},
"peerDependenciesMeta": {
"encoding": {
"optional": true
}
}
},
"node_modules/nopt": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
"integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
"dependencies": {
"abbrev": "1"
},
"bin": {
"nopt": "bin/nopt.js"
},
"engines": {
"node": ">=6"
}
},
"node_modules/npmlog": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
"integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
"dependencies": {
"are-we-there-yet": "^2.0.0",
"console-control-strings": "^1.1.0",
"gauge": "^3.0.0",
"set-blocking": "^2.0.0"
}
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-inspect": { "node_modules/object-inspect": {
"version": "1.13.1", "version": "1.13.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
...@@ -442,6 +1016,14 @@ ...@@ -442,6 +1016,14 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/parseurl": { "node_modules/parseurl": {
"version": "1.3.3", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
...@@ -450,11 +1032,25 @@ ...@@ -450,11 +1032,25 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/path-to-regexp": { "node_modules/path-to-regexp": {
"version": "0.1.7", "version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
}, },
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
"optional": true
},
"node_modules/proxy-addr": { "node_modules/proxy-addr": {
"version": "2.0.7", "version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
...@@ -481,6 +1077,15 @@ ...@@ -481,6 +1077,15 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/raf": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
"integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
"optional": true,
"dependencies": {
"performance-now": "^2.1.0"
}
},
"node_modules/range-parser": { "node_modules/range-parser": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
...@@ -503,6 +1108,47 @@ ...@@ -503,6 +1108,47 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/readable-stream": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/regenerator-runtime": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
"integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
},
"node_modules/rgbcolor": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz",
"integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==",
"optional": true,
"engines": {
"node": ">= 0.8.15"
}
},
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/safe-buffer": { "node_modules/safe-buffer": {
"version": "5.2.1", "version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
...@@ -527,6 +1173,20 @@ ...@@ -527,6 +1173,20 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/send": { "node_modules/send": {
"version": "0.18.0", "version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
...@@ -569,6 +1229,11 @@ ...@@ -569,6 +1229,11 @@
"node": ">= 0.8.0" "node": ">= 0.8.0"
} }
}, },
"node_modules/set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
},
"node_modules/set-function-length": { "node_modules/set-function-length": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
...@@ -601,6 +1266,49 @@ ...@@ -601,6 +1266,49 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/signal-exit": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"node_modules/simple-concat": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/simple-get": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
"integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
"dependencies": {
"decompress-response": "^4.2.0",
"once": "^1.3.1",
"simple-concat": "^1.0.0"
}
},
"node_modules/stackblur-canvas": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.6.0.tgz",
"integrity": "sha512-8S1aIA+UoF6erJYnglGPug6MaHYGo1Ot7h5fuXx4fUPvcvQfcdw2o/ppCse63+eZf8PPidSu4v1JnmEVtEDnpg==",
"optional": true,
"engines": {
"node": ">=0.1.14"
}
},
"node_modules/statuses": { "node_modules/statuses": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
...@@ -609,6 +1317,72 @@ ...@@ -609,6 +1317,72 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/svg-pathdata": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz",
"integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==",
"optional": true,
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/tar": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
"integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
"dependencies": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
"minipass": "^5.0.0",
"minizlib": "^2.1.1",
"mkdirp": "^1.0.3",
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/text-segmentation": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz",
"integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
"optional": true,
"dependencies": {
"utrie": "^1.0.2"
}
},
"node_modules/toidentifier": { "node_modules/toidentifier": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
...@@ -617,6 +1391,11 @@ ...@@ -617,6 +1391,11 @@
"node": ">=0.6" "node": ">=0.6"
} }
}, },
"node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/type-is": { "node_modules/type-is": {
"version": "1.6.18", "version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
...@@ -637,6 +1416,11 @@ ...@@ -637,6 +1416,11 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/utils-merge": { "node_modules/utils-merge": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
...@@ -645,6 +1429,15 @@ ...@@ -645,6 +1429,15 @@
"node": ">= 0.4.0" "node": ">= 0.4.0"
} }
}, },
"node_modules/utrie": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz",
"integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
"optional": true,
"dependencies": {
"base64-arraybuffer": "^1.0.2"
}
},
"node_modules/vary": { "node_modules/vary": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
...@@ -652,6 +1445,38 @@ ...@@ -652,6 +1445,38 @@
"engines": { "engines": {
"node": ">= 0.8" "node": ">= 0.8"
} }
},
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
}
},
"node_modules/wide-align": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
"integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
"dependencies": {
"string-width": "^1.0.2 || 2 || 3 || 4"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
} }
} }
} }
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"express": "^4.18.2" "canvas": "^2.11.2",
"express": "^4.18.2",
"jspdf": "^2.5.1"
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment