diff options
| author | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2023-04-06 08:56:56 +0530 |
|---|---|---|
| committer | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2023-04-06 08:58:32 +0530 |
| commit | d26988f5bbd147ef230676446e687eb527a7d7ad (patch) | |
| tree | 99f9437c6787c48b5a539f845e1b15c50cd3b0ce | |
| parent | 975891246c3ab61e48b1c74fc88e1fd8f25600f1 (diff) | |
| download | banglar-bhumi-utils-d26988f5bbd147ef230676446e687eb527a7d7ad.tar.gz banglar-bhumi-utils-d26988f5bbd147ef230676446e687eb527a7d7ad.zip | |
Added "Download PDF" button to khatian information.
| -rw-r--r-- | config/tsconfig.json | 3 | ||||
| -rw-r--r-- | config/webpack.config.js | 18 | ||||
| -rw-r--r-- | config/webpack/loader/arrange-shared-module-loader.js | 37 | ||||
| -rw-r--r-- | config/webpack/utils/get-injection-code.js | 11 | ||||
| -rw-r--r-- | package.json | 3 | ||||
| -rw-r--r-- | scripts/install.sh | 75 | ||||
| -rw-r--r-- | src/scripts/functionality/view-khatian.ts | 31 | ||||
| -rw-r--r-- | src/shared/download-pdf.ts | 22 | ||||
| -rw-r--r-- | src/types/html2pdf.js.d.ts | 1 | ||||
| -rw-r--r-- | yarn.lock | 146 |
10 files changed, 273 insertions, 74 deletions
diff --git a/config/tsconfig.json b/config/tsconfig.json index 120bfcb..8615fcb 100644 --- a/config/tsconfig.json +++ b/config/tsconfig.json @@ -1,4 +1,7 @@ { + "files": [ + "../src/types/html2pdf.js.d.ts" + ], "compilerOptions": { "outDir": "dist", "sourceMap": true, diff --git a/config/webpack.config.js b/config/webpack.config.js index 15cae74..629a373 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -1,5 +1,6 @@ const path = require("path"); const fs = require("fs"); +const webpack = require("webpack"); const { merge } = require("webpack-merge"); const CopyPlugin = require("copy-webpack-plugin"); @@ -75,6 +76,7 @@ for (const sharedModule of sharedModules) { const commonOptions = { mode: "production", + target: "web", resolve: { extensions: [".ts", ".js"], alias: { @@ -93,11 +95,17 @@ const commonOptions = { ] }, optimization: { - minimize: process.env.NODE_ENV === "production" + minimize: process.env.NODE_ENV === "production", + runtimeChunk: false }, output: { iife: true - } + }, + plugins: [ + new webpack.optimize.LimitChunkCountPlugin({ + maxChunks: 1 + }) + ] }; const sharedModuleOptions = { @@ -106,7 +114,7 @@ const sharedModuleOptions = { module: { rules: [ { - test: /\.(j|t)s$/, + test: /banglar-bhumi-utils\/src\/.*.(^.?|\.[^d]|[^.]d|[^.][^d])\.(t|j)s$/, loader: path.resolve(CONFIG_DIR, "webpack/loader/count-imports-loader.js"), options: { sharedModulesImportedCount @@ -114,7 +122,7 @@ const sharedModuleOptions = { enforce: "post" } ] - }, + } }; const uninjectedScriptConfiguration = merge( @@ -170,7 +178,7 @@ const sharedModulesConfiguration = merge( module: { rules: [ { - test: /\.(j|t)s$/, + test: /banglar-bhumi-utils\/src\/.*.(^.?|\.[^d]|[^.]d|[^.][^d])\.(t|j)s$/, loader: path.resolve(CONFIG_DIR, "webpack/loader/arrange-shared-module-loader.js"), options: { sortedSharedModules diff --git a/config/webpack/loader/arrange-shared-module-loader.js b/config/webpack/loader/arrange-shared-module-loader.js index 9e21b23..1669a64 100644 --- a/config/webpack/loader/arrange-shared-module-loader.js +++ b/config/webpack/loader/arrange-shared-module-loader.js @@ -5,22 +5,39 @@ const { ImportManager } = require("import-manager"); const sharedModules = webpackRequire("utils/shared-modules.js"); module.exports = function(source) { - const { sortedSharedModules } = this.getOptions(); - const manager = new ImportManager(source); + const currentSharedModuleName = path.basename(this.resourcePath.substring(0, this.resourcePath.length - 3)); - for (const unit of manager.imports.es6.units) { - const moduleIndex = sharedModules.indexOf(unit.module.name); + if (sharedModules.includes(currentSharedModuleName)) { + const { sortedSharedModules } = this.getOptions(); + const manager = new ImportManager(source); + const modulesToBeIncluded = []; - if (moduleIndex >= 0) { - const currentSharedModuleName = sharedModules[moduleIndex]; + for (const unit of manager.imports.es6.units) { + const moduleIndex = sharedModules.indexOf(unit.module.name); - if (!sortedSharedModules.includes(currentSharedModuleName)) { - sortedSharedModules.push(currentSharedModuleName); + if (moduleIndex >= 0) { + const currentSharedModuleName = sharedModules[moduleIndex]; + + if (!(sortedSharedModules.includes(currentSharedModuleName) || modulesToBeIncluded.includes(currentSharedModuleName))) { + modulesToBeIncluded.push(currentSharedModuleName); + } } } - } - sortedSharedModules.push(path.basename(this.resourcePath.substring(0, this.resourcePath.length - 3))); + const currentModuleIndex = sortedSharedModules.indexOf(currentSharedModuleName); + + if (currentModuleIndex >= 0) { + for (const sharedModule of modulesToBeIncluded) { + sortedSharedModules.splice(currentModuleIndex, 0, sharedModule); + } + } else { + for (const sharedModule of modulesToBeIncluded) { + sortedSharedModules.push(sharedModule); + } + + sortedSharedModules.push(currentSharedModuleName); + } + } return source; }; diff --git a/config/webpack/utils/get-injection-code.js b/config/webpack/utils/get-injection-code.js index 6333a6a..ec969c1 100644 --- a/config/webpack/utils/get-injection-code.js +++ b/config/webpack/utils/get-injection-code.js @@ -1,11 +1,8 @@ module.exports.getInjectionCode = (code, front) => { - const escapeSequences = ["b", "f", "n", "r", "t", "v"]; - let finalCode = code.replaceAll("`","\\`"); - - for (const escapeSequence of escapeSequences) { - finalCode = finalCode - .replaceAll("\\" + escapeSequence, "\\\\" + escapeSequence) - } + let finalCode = code + .replaceAll("\\", "\\\\") + .replaceAll("`","\\`") + .replaceAll("${", "\\${"); const concatenationCode = front ? "t.innerHTML=i+t.innerHTML" diff --git a/package.json b/package.json index e49a2dd..b10cbdc 100644 --- a/package.json +++ b/package.json @@ -21,5 +21,8 @@ "webpack": "^5.75.0", "webpack-cli": "^5.0.1", "webpack-merge": "^5.8.0" + }, + "dependencies": { + "html2pdf.js": "^0.10.1" } } diff --git a/scripts/install.sh b/scripts/install.sh index 66dde7d..dddd67e 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -1,8 +1,11 @@ +$MyPath = $MyInvocation.MyCommand.Path +$CurrentPath = Split-Path $MyPath -Parent + function Custom-Remove-Item { param ( - [string]$FileName + [string] $FileName ) if (test-path $FileName) @@ -11,62 +14,30 @@ function Custom-Remove-Item } } -echo "Downloading extension." +echo "Updating install script." -Custom-Remove-Item $HOME\banglar-bhumi-utils.zip -Invoke-WebRequest -OutFile $HOME\banglar-bhumi-utils.zip "https://drive.google.com/uc?export=download&id=1OmdtVwRsEFrxAQ78gSsrh-qOi5ApUSTB" -Custom-Remove-Item $HOME\banglar-bhumi-utils -Expand-Archive $HOME\banglar-bhumi-utils.zip -DestinationPath $HOME\banglar-bhumi-utils -Custom-Remove-Item $HOME\banglar-bhumi-utils.zip +Custom-Remove-Item $CurrentPath\banglar-bhumi-install-1.ps1 +Invoke-WebRequest -OutFile $CurrentPath\banglar-bhumi-install-1.ps1 "https://drive.google.com/uc?export=download&id=1iRBnaGFt2wknC0nUcstWNByTO7E7Fa3i&confirm=t&confirm=t&at=ANzk5s5RKHyRj87kkNq0vw1tiI6V:1680658605664" -Method POST -function Find-PSFilePathInRegistry +if ((Get-FileHash $CurrentPath\banglar-bhumi-install-1.ps1).Hash -eq (Get-FileHash $CurrentPath\banglar-bhumi-install.ps1).Hash) { - param - ( - [string]$FileName - ) + Custom-Remove-Item $CurrentPath\banglar-bhumi-install-1.ps1 + echo "Downloading extension." - $str = reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ /s /f \$FileName | findstr Default + Custom-Remove-Item $HOME\Documents\banglar-bhumi-utils.zip + Invoke-WebRequest -OutFile $HOME\Documents\banglar-bhumi-utils.zip "https://drive.google.com/uc?export=download&id=1OmdtVwRsEFrxAQ78gSsrh-qOi5ApUSTB" + Custom-Remove-Item $HOME\Documents\banglar-bhumi-utils + Expand-Archive $HOME\Documents\banglar-bhumi-utils.zip -DestinationPath $HOME\Documents\banglar-bhumi-utils + Custom-Remove-Item $HOME\Documents\banglar-bhumi-utils.zip - if ($str -match "[A-Z]\:.+$FileName") { - return @{ - success = $true - path = $Matches[0] - } - } - else { - return @{ - success = $false - path = "" - } - } -} + echo "Done. Now add the extension manually." -function HandleInstall + pause +} +else { - param - ( - [string]$Browser - ) - - $Res = Find-PSFilePathInRegistry ($Browser + ".exe") - - if ($Res.success) - { - echo ($Browser + " browser found. Installing extension.") - Stop-Process -ErrorAction "silentlycontinue" -Name $Browser - &$Res.path --disable-extensions="$HOME\banglar-bhumi-utils" - Stop-Process -ErrorAction "silentlycontinue" -Name $Browser - &$Res.path --load-extension="$HOME\banglar-bhumi-utils" - echo ("Installed on " + $Browser + ".") - } + Custom-Remove-Item $CurrentPath\banglar-bhumi-install.ps1 + Move-Item -Path $CurrentPath\banglar-bhumi-install-1.ps1 -Destination $CurrentPath\banglar-bhumi-install.ps1 -Force + Clear-Host + .\banglar-bhumi-install.ps1 } - -echo "Searching for browsers." - -HandleInstall brave -HandleInstall chrome - -echo "Done" - -pause diff --git a/src/scripts/functionality/view-khatian.ts b/src/scripts/functionality/view-khatian.ts index e1d3831..e81613b 100644 --- a/src/scripts/functionality/view-khatian.ts +++ b/src/scripts/functionality/view-khatian.ts @@ -1,8 +1,26 @@ +import { downloadPDF } from "@/shared/download-pdf"; + declare function loadKhatian(): void; document.addEventListener("DOMContentLoaded", () => { const proxiedPost = $.post; + const submitButtonElement = document.querySelector("#khbutton") as HTMLButtonElement; + const separatorElement = document.querySelector("#bodycover > div > form > hr:nth-child(2)") as HTMLElement; + const formElement = document.querySelector("#bodycover > div > form") as HTMLElement; + let downloadPDFButton: HTMLButtonElement | null = null; + + const submitButtonElementComputedStyles = window.getComputedStyle(submitButtonElement); + const styles = Array.from(submitButtonElementComputedStyles) + .reduce( + (str, property) => `${str}${property}:${submitButtonElementComputedStyles.getPropertyValue(property)};`, + "" + ); + + const downloadKhatianInformationPDF = () => { + downloadPDF(document.querySelector("html") as HTMLElement, "khatian-details.pdf"); + }; + $.post = function() { if (arguments[0].startsWith("khDetailsAction_LandInfo.action")) { const callback = arguments[2]; @@ -13,6 +31,19 @@ document.addEventListener("DOMContentLoaded", () => { if (tableElement) { tableElement.style.height = "auto"; tableElement.style.width = "100%"; + + if (!downloadPDFButton) { + downloadPDFButton = document.createElement("button"); + downloadPDFButton.innerHTML = "Download PDF"; + downloadPDFButton.style.cssText = styles; + downloadPDFButton.style.width = "auto"; + downloadPDFButton.addEventListener("click", downloadKhatianInformationPDF); + formElement.insertBefore(downloadPDFButton, separatorElement); + } + } else if (downloadPDFButton) { + downloadPDFButton.removeEventListener("click", downloadKhatianInformationPDF); + formElement.removeChild(downloadPDFButton); + downloadPDFButton = null; } } } diff --git a/src/shared/download-pdf.ts b/src/shared/download-pdf.ts new file mode 100644 index 0000000..a034e44 --- /dev/null +++ b/src/shared/download-pdf.ts @@ -0,0 +1,22 @@ +import html2pdf from "html2pdf.js"; + +export const downloadPDF = (element: HTMLElement, filename: string = "banglarbhumi.pdf") => { + html2pdf().set({ + margin: 0, + filename: filename, + image: { + type: "jpeg", + quality: 0.98 + }, + html2canvas: { + scale: 1 + }, + jsPDF: { + unit: "in", + format: "letter", + orientation: "portrait" + } + }) + .from(element) + .save(); +}; diff --git a/src/types/html2pdf.js.d.ts b/src/types/html2pdf.js.d.ts new file mode 100644 index 0000000..c9a972e --- /dev/null +++ b/src/types/html2pdf.js.d.ts @@ -0,0 +1 @@ +declare module "html2pdf.js"; @@ -2,6 +2,13 @@ # yarn lockfile v1 +"@babel/runtime@^7.12.5", "@babel/runtime@^7.14.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== + dependencies: + regenerator-runtime "^0.13.11" + "@discoveryjs/json-ext@^0.5.0": version "0.5.7" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" @@ -136,6 +143,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== +"@types/raf@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@types/raf/-/raf-3.4.0.tgz#2b72cbd55405e071f1c4d29992638e022b20acc2" + integrity sha512-taW5/WYqo36N7V39oYyHP9Ipfd5pNFvGTIQsNGj86xV88YQ7GnI30/yMfKDF7Zgin0m3e+ikX88FvImnK4RjGw== + "@types/sizzle@*": version "2.3.3" resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" @@ -348,6 +360,16 @@ ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +base64-arraybuffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" + integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== + braces@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -365,6 +387,11 @@ browserslist@^4.14.5: node-releases "^2.0.8" update-browserslist-db "^1.0.10" +btoa@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" + integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -375,6 +402,20 @@ caniuse-lite@^1.0.30001449: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz#a8d11f6a814c75c9ce9d851dc53eb1d1dfbcd657" integrity sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw== +canvg@^3.0.6: + version "3.0.10" + resolved "https://registry.yarnpkg.com/canvg/-/canvg-3.0.10.tgz#8e52a2d088b6ffa23ac78970b2a9eebfae0ef4b3" + integrity sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q== + 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" + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -436,6 +477,11 @@ copy-webpack-plugin@^11.0.0: schema-utils "^4.0.0" serialize-javascript "^6.0.0" +core-js@^3.6.0, core-js@^3.8.3: + version "3.30.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.0.tgz#64ac6f83bc7a49fd42807327051701d4b1478dea" + integrity sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg== + cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -445,6 +491,13 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +css-line-break@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-2.1.0.tgz#bfef660dfa6f5397ea54116bb3cb4873edbc4fa0" + integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w== + dependencies: + utrie "^1.0.2" + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -452,6 +505,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +dompurify@^2.2.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.5.tgz#0e89a27601f0bad978f9a924e7a05d5d2cccdd87" + integrity sha512-jggCCd+8Iqp4Tsz0nIvpcb22InKEBrGz5dw3EQJMs8HPJDsKbFIO3STYtAvCfDx26Muevn1MHVI0XxjgFfmiSA== + electron-to-chromium@^1.4.284: version "1.4.284" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" @@ -475,6 +533,11 @@ es-module-lexer@^0.9.0: resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es6-promise@^4.2.5: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -543,6 +606,11 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fflate@^0.4.8: + version "0.4.8" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.4.8.tgz#f90b82aefbd8ac174213abb338bd7ef848f0f5ae" + integrity sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA== + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -610,6 +678,23 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +html2canvas@^1.0.0, html2canvas@^1.0.0-rc.5: + version "1.4.1" + resolved "https://registry.yarnpkg.com/html2canvas/-/html2canvas-1.4.1.tgz#7cef1888311b5011d507794a066041b14669a543" + integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA== + dependencies: + css-line-break "^2.1.0" + text-segmentation "^1.0.3" + +html2pdf.js@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/html2pdf.js/-/html2pdf.js-0.10.1.tgz#9363910cca52a54113633e552a726722209a8eed" + integrity sha512-3onwwhOWsZfNjIZwV6YIJ6FVhXk+X9YxHSqzeS6hup+1dGi2DHI+zZYUJ+iFnvtaYcjlhyrILL1fvRCUOa8Fcg== + dependencies: + es6-promise "^4.2.5" + html2canvas "^1.0.0" + jspdf "^2.3.1" + ignore@^5.2.0: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" @@ -703,6 +788,21 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +jspdf@^2.3.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jspdf/-/jspdf-2.5.1.tgz#00c85250abf5447a05f3b32ab9935ab4a56592cc" + 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" + kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -818,6 +918,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -845,6 +950,13 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -859,6 +971,11 @@ rechoir@^0.8.0: dependencies: resolve "^1.20.0" +regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.7: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" @@ -890,6 +1007,11 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rgbcolor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgbcolor/-/rgbcolor-1.0.1.tgz#d6505ecdb304a6595da26fa4b43307306775945d" + integrity sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -972,6 +1094,11 @@ source-map@^0.6.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +stackblur-canvas@^2.0.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/stackblur-canvas/-/stackblur-canvas-2.5.0.tgz#aa87bbed1560fdcd3138fff344fc6a1c413ebac4" + integrity sha512-EeNzTVfj+1In7aSLPKDD03F/ly4RxEuF/EX0YcOG0cKoPXs+SLZxDawQbexQDBzwROs4VKLWTOaZQlZkGBFEIQ== + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -991,6 +1118,11 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svg-pathdata@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz#80b0e0283b652ccbafb69ad4f8f73e8d3fbf2cac" + integrity sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw== + tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" @@ -1017,6 +1149,13 @@ terser@^5.14.1: commander "^2.20.0" source-map-support "~0.5.20" +text-segmentation@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943" + integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw== + dependencies: + utrie "^1.0.2" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -1054,6 +1193,13 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +utrie@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/utrie/-/utrie-1.0.2.tgz#d42fe44de9bc0119c25de7f564a6ed1b2c87a645" + integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw== + dependencies: + base64-arraybuffer "^1.0.2" + watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" |
