From eb7be97443f7e4e620b66b13cdc5ad867632a9f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexa=20Valentov=C3=A1?= <git@imaniti.org> Date: Fri, 13 Jun 2025 00:00:28 +0200 Subject: [PATCH] add new templates --- .pre-commit-config.yaml | 2 +- Makefile | 2 +- VERSION | 2 +- frontend/package-lock.json | 729 ++++++++++-------- frontend/package.json | 2 +- frontend/src/assets/badges/default-dark.png | Bin 0 -> 49503 bytes frontend/src/assets/badges/default-light.png | Bin 0 -> 55968 bytes .../previews/nakopneme_basic_photo_banner.png | Bin 0 -> 51993 bytes .../nakopneme_quote_left.png | Bin 0 -> 5291 bytes .../nakopneme_quote_right.png | Bin 0 -> 5094 bytes frontend/src/components/canvas/Canvas.vue | 11 +- frontend/src/components/canvas/textbox.js | 2 +- frontend/src/components/canvas/utils.js | 12 +- frontend/src/logos.js | 32 +- frontend/src/templates.js | 38 +- frontend/src/views/angle_event_left/canvas.js | 2 +- .../src/views/angle_event_right/canvas.js | 2 +- .../views/angle_person_event_left/canvas.js | 2 +- .../views/angle_person_event_right/canvas.js | 2 +- frontend/src/views/avatar/canvas.js | 12 +- .../views/back_in_full_force_banner/canvas.js | 15 +- .../back_in_full_force_tour_social/canvas.js | 99 ++- .../canvas.js | 99 ++- .../canvas.js | 66 +- frontend/src/views/base_event/canvas.js | 2 +- .../src/views/base_person_event/canvas.js | 2 +- .../basic_photo_banner/BasicPhotoBannerIG.vue | 256 ++++++ .../src/views/basic_photo_banner/canvas.js | 2 +- frontend/src/views/event_poster/canvas.js | 2 +- frontend/src/views/facebook_survey/canvas.js | 2 +- .../src/views/make_a_wish_banner/canvas.js | 33 +- .../views/make_a_wish_tour_social/canvas.js | 81 +- .../make_a_wish_tour_social_A2/canvas.js | 83 +- .../make_a_wish_tour_social_wide/canvas.js | 42 +- .../NakopnemeBasicPhotoBanner.vue | 254 ++++++ .../nakopneme_basic_photo_banner/canvas.js | 359 +++++++++ .../views/newspaper_quote_bottom/canvas.js | 2 +- .../views/newspaper_quote_middle/canvas.js | 2 +- .../people_banner_with_custom_text/canvas.js | 2 +- .../canvas.js | 2 +- frontend/src/views/poster/canvas.js | 2 +- frontend/src/views/reel/canvas.js | 2 +- frontend/src/views/regional_success/canvas.js | 2 +- frontend/src/views/right_event/canvas.js | 2 +- .../src/views/right_person_event/canvas.js | 2 +- .../views/social_cover_large_text/canvas.js | 2 +- frontend/src/views/text_banner/canvas.js | 2 +- frontend/src/views/twitter_banner/canvas.js | 2 +- .../src/views/urgent_text_banner/canvas.js | 2 +- 49 files changed, 1729 insertions(+), 546 deletions(-) create mode 100644 frontend/src/assets/badges/default-dark.png create mode 100644 frontend/src/assets/badges/default-light.png create mode 100644 frontend/src/assets/previews/nakopneme_basic_photo_banner.png create mode 100644 frontend/src/assets/template/nakopneme_basic_photo_banner/nakopneme_quote_left.png create mode 100644 frontend/src/assets/template/nakopneme_basic_photo_banner/nakopneme_quote_right.png create mode 100644 frontend/src/views/basic_photo_banner/BasicPhotoBannerIG.vue create mode 100644 frontend/src/views/nakopneme_basic_photo_banner/NakopnemeBasicPhotoBanner.vue create mode 100644 frontend/src/views/nakopneme_basic_photo_banner/canvas.js diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ec049d38..ed7d9fe4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,5 +1,5 @@ default_language_version: - python: python3.11 + python: python3.12 repos: - repo: https://github.com/pre-commit/pre-commit-hooks diff --git a/Makefile b/Makefile index f1f4b3cb..fa312029 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ #!/usr/bin/make -f -PYTHON = python3.11 +PYTHON = python3.12 VENV = .venv PORT = 8016 diff --git a/VERSION b/VERSION index 971e119a..f48f82fa 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.21.0 \ No newline at end of file +2.22.0 diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 25683bf3..aedc3d51 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "dependencies": { "alertifyjs": "^1.13.1", - "fabric": "^5.3.0", + "fabric": "^6.7.0", "vite-plugin-top-level-await": "^1.4.1", "vue": "^3.2.47", "vue-meta": "^3.0.0-alpha.2", @@ -989,9 +989,10 @@ "dev": true }, "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "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==", + "license": "BSD-3-Clause", "optional": true, "dependencies": { "detect-libc": "^2.0.0", @@ -1008,39 +1009,6 @@ "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@mapbox/node-pre-gyp/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==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, "node_modules/@nicolo-ribaudo/semver-v6": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", @@ -1336,6 +1304,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "license": "MIT", "optional": true, "engines": { "node": ">= 10" @@ -1520,19 +1489,23 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "license": "BSD-3-Clause", "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==", + "license": "ISC", "optional": true }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "devOptional": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1541,25 +1514,14 @@ } }, "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "license": "MIT", "optional": true, "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "optional": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" } }, "node_modules/acorn-jsx": { @@ -1572,10 +1534,14 @@ } }, "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "license": "MIT", "optional": true, + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -1584,6 +1550,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", "optional": true, "dependencies": { "debug": "4" @@ -1657,12 +1624,15 @@ "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==", + "license": "ISC", "optional": true }, "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==", + "deprecated": "This package is no longer supported.", + "license": "ISC", "optional": true, "dependencies": { "delegates": "^1.0.0", @@ -1688,6 +1658,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT", "optional": true }, "node_modules/autoprefixer": { @@ -1766,12 +1737,6 @@ "node": ">=8" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "optional": true - }, "node_modules/browserslist": { "version": "4.21.9", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", @@ -1804,6 +1769,20 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1860,6 +1839,7 @@ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "dependencies": { "@mapbox/node-pre-gyp": "^1.0.0", @@ -1927,6 +1907,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", "optional": true, "engines": { "node": ">=10" @@ -1951,6 +1932,7 @@ "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==", + "license": "ISC", "optional": true, "bin": { "color-support": "bin.js" @@ -1960,6 +1942,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "optional": true, "dependencies": { "delayed-stream": "~1.0.0" @@ -1987,6 +1970,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "license": "ISC", "optional": true }, "node_modules/convert-source-map": { @@ -2025,12 +2009,14 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "license": "MIT", "optional": true }, "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "license": "MIT", "optional": true, "dependencies": { "cssom": "~0.3.6" @@ -2043,6 +2029,7 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "license": "MIT", "optional": true }, "node_modules/csstype": { @@ -2054,6 +2041,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "license": "MIT", "optional": true, "dependencies": { "abab": "^2.0.6", @@ -2064,19 +2052,6 @@ "node": ">=12" } }, - "node_modules/data-urls/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "optional": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -2095,15 +2070,17 @@ } }, "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "license": "MIT", "optional": true }, "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==", + "license": "MIT", "optional": true, "dependencies": { "mimic-response": "^2.0.0" @@ -2116,12 +2093,13 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "devOptional": true + "dev": true }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.4.0" @@ -2131,12 +2109,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT", "optional": true }, "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", "optional": true, "engines": { "node": ">=8" @@ -2170,6 +2150,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "license": "MIT", "optional": true, "dependencies": { "webidl-conversions": "^7.0.0" @@ -2178,6 +2160,21 @@ "node": ">=12" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "optional": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.449", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.449.tgz", @@ -2188,8 +2185,71 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT", "optional": true }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "optional": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "optional": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "optional": true, + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/esbuild": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", @@ -2245,15 +2305,15 @@ } }, "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", "optional": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" + "esutils": "^2.0.2" }, "bin": { "escodegen": "bin/escodegen.js", @@ -2266,57 +2326,6 @@ "source-map": "~0.6.1" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "optional": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "optional": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "optional": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "optional": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/eslint": { "version": "8.40.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", @@ -2428,39 +2437,6 @@ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/eslint-plugin-vue/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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-vue/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-vue/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/eslint-scope": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", @@ -2607,6 +2583,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "optional": true, "bin": { "esparse": "bin/esparse.js", @@ -2664,15 +2641,16 @@ } }, "node_modules/fabric": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/fabric/-/fabric-5.3.0.tgz", - "integrity": "sha512-AVayKuzWoXM5cTn7iD3yNWBlfEa8r1tHaOe2g8NsZrmWKAHjryTxT/j6f9ncRfOWOF0I1Ci1AId3y78cC+GExQ==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/fabric/-/fabric-6.7.0.tgz", + "integrity": "sha512-+yKumsh1MvJ44Um2eOhb4Q6CyZ6e2XKBV3IfQvzuGKhl2UkRFQtIKPUi6f06m3gd0r5zspgMUl5iwxtT1dmFAQ==", + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=16.20.0" }, "optionalDependencies": { - "canvas": "^2.8.0", - "jsdom": "^19.0.0" + "canvas": "^2.11.2", + "jsdom": "^20.0.1" } }, "node_modules/fast-deep-equal": { @@ -2725,7 +2703,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "devOptional": true + "dev": true }, "node_modules/fastq": { "version": "1.15.0", @@ -2796,13 +2774,16 @@ "dev": true }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", + "license": "MIT", "optional": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -2826,6 +2807,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", "optional": true, "dependencies": { "minipass": "^3.0.0" @@ -2838,6 +2820,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "optional": true, "dependencies": { "yallist": "^4.0.0" @@ -2850,6 +2833,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC", "optional": true }, "node_modules/fs.realpath": { @@ -2872,15 +2856,21 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "devOptional": true, + "license": "MIT", + "funding": { + "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==", + "deprecated": "This package is no longer supported.", + "license": "ISC", "optional": true, "dependencies": { "aproba": "^1.0.3 || ^2.0.0", @@ -2906,6 +2896,45 @@ "node": ">=6.9.0" } }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "optional": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -2947,6 +2976,19 @@ "node": ">=4" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/grapheme-splitter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", @@ -2974,16 +3016,60 @@ "node": ">=4" } }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "optional": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "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==", + "license": "ISC", "optional": true }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "license": "MIT", "optional": true, "dependencies": { "whatwg-encoding": "^2.0.0" @@ -3008,6 +3094,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "license": "MIT", "optional": true, "dependencies": { "@tootallnate/once": "2", @@ -3022,6 +3109,7 @@ "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==", + "license": "MIT", "optional": true, "dependencies": { "agent-base": "6", @@ -3035,6 +3123,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -3130,6 +3219,7 @@ "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==", + "license": "MIT", "optional": true, "engines": { "node": ">=8" @@ -3169,6 +3259,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT", "optional": true }, "node_modules/isexe": { @@ -3215,41 +3306,41 @@ } }, "node_modules/jsdom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", - "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "license": "MIT", "optional": true, "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.5.0", - "acorn-globals": "^6.0.0", + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", "cssom": "^0.5.0", "cssstyle": "^2.3.0", - "data-urls": "^3.0.1", - "decimal.js": "^10.3.1", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", "html-encoding-sniffer": "^3.0.0", "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^3.0.0", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^10.0.0", - "ws": "^8.2.3", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" }, "peerDependencies": { "canvas": "^2.5.0" @@ -3384,6 +3475,7 @@ "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==", + "license": "MIT", "optional": true, "dependencies": { "semver": "^6.0.0" @@ -3395,6 +3487,26 @@ "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==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3421,6 +3533,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "optional": true, "engines": { "node": ">= 0.6" @@ -3430,6 +3543,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "optional": true, "dependencies": { "mime-db": "1.52.0" @@ -3442,6 +3556,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "license": "MIT", "optional": true, "engines": { "node": ">=8" @@ -3466,6 +3581,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", "optional": true, "engines": { "node": ">=8" @@ -3475,6 +3591,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", "optional": true, "dependencies": { "minipass": "^3.0.0", @@ -3488,6 +3605,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "optional": true, "dependencies": { "yallist": "^4.0.0" @@ -3500,12 +3618,14 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC", "optional": true }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", "optional": true, "bin": { "mkdirp": "bin/cmd.js" @@ -3532,9 +3652,10 @@ } }, "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz", + "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==", + "license": "MIT", "optional": true }, "node_modules/nanoid": { @@ -3561,9 +3682,10 @@ "dev": true }, "node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "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==", + "license": "MIT", "optional": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -3584,18 +3706,21 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT", "optional": true }, "node_modules/node-fetch/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==", + "license": "BSD-2-Clause", "optional": true }, "node_modules/node-fetch/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==", + "license": "MIT", "optional": true, "dependencies": { "tr46": "~0.0.3", @@ -3612,6 +3737,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", "optional": true, "dependencies": { "abbrev": "1" @@ -3645,6 +3771,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", + "license": "ISC", "optional": true, "dependencies": { "are-we-there-yet": "^2.0.0", @@ -3666,9 +3794,10 @@ } }, "node_modules/nwsapi": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.4.tgz", - "integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==", + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", + "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", + "license": "MIT", "optional": true }, "node_modules/object-assign": { @@ -3758,10 +3887,17 @@ } }, "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "optional": true + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "optional": true, + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, "node_modules/path-exists": { "version": "4.0.0", @@ -3998,16 +4134,24 @@ } }, "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "optional": true + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "optional": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "devOptional": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -4016,6 +4160,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT", "optional": true }, "node_modules/queue-microtask": { @@ -4051,6 +4196,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "optional": true, "dependencies": { "inherits": "^2.0.3", @@ -4077,6 +4223,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT", "optional": true }, "node_modules/resolve": { @@ -4186,39 +4333,47 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "optional": true }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT", "optional": true }, "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", "optional": true, "dependencies": { "xmlchars": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=v12.22.7" } }, "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "optional": true, + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "devOptional": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "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==", + "license": "ISC", "optional": true }, "node_modules/shebang-command": { @@ -4246,6 +4401,7 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC", "optional": true }, "node_modules/simple-concat": { @@ -4266,12 +4422,14 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "optional": true }, "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==", + "license": "MIT", "optional": true, "dependencies": { "decompress-response": "^4.2.0", @@ -4305,6 +4463,7 @@ "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==", + "license": "MIT", "optional": true, "dependencies": { "safe-buffer": "~5.2.0" @@ -4314,6 +4473,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "optional": true, "dependencies": { "emoji-regex": "^8.0.0", @@ -4424,6 +4584,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT", "optional": true }, "node_modules/tailwindcss": { @@ -4465,9 +4626,10 @@ } }, "node_modules/tar": { - "version": "6.1.14", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", - "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", "optional": true, "dependencies": { "chownr": "^2.0.0", @@ -4485,6 +4647,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC", "optional": true }, "node_modules/text-table": { @@ -4536,9 +4699,10 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", "optional": true, "dependencies": { "psl": "^1.1.33", @@ -4554,6 +4718,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "license": "MIT", "optional": true, "dependencies": { "punycode": "^2.1.1" @@ -4596,6 +4761,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", "optional": true, "engines": { "node": ">= 4.0.0" @@ -4644,6 +4810,7 @@ "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", "optional": true, "dependencies": { "querystringify": "^2.1.1", @@ -4771,39 +4938,6 @@ "eslint": ">=6.0.0" } }, - "node_modules/vue-eslint-parser/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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vue-eslint-parser/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/vue-meta": { "version": "3.0.0-alpha.2", "resolved": "https://registry.npmjs.org/vue-meta/-/vue-meta-3.0.0-alpha.2.tgz", @@ -4835,32 +4969,24 @@ "vue": "3.x" } }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "optional": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, "node_modules/w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "license": "MIT", "optional": true, "dependencies": { "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", "optional": true, "engines": { "node": ">=12" @@ -4870,6 +4996,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "0.6.3" @@ -4882,15 +5009,17 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "license": "MIT", "optional": true, "engines": { "node": ">=12" } }, "node_modules/whatwg-url": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", - "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "license": "MIT", "optional": true, "dependencies": { "tr46": "^3.0.0", @@ -4919,20 +5048,12 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", "optional": true, "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -4940,9 +5061,10 @@ "devOptional": true }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "license": "MIT", "optional": true, "engines": { "node": ">=10.0.0" @@ -4973,6 +5095,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT", "optional": true }, "node_modules/yallist": { diff --git a/frontend/package.json b/frontend/package.json index 9df00f5b..239db316 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "alertifyjs": "^1.13.1", - "fabric": "^5.3.0", + "fabric": "^6.7.0", "vite-plugin-top-level-await": "^1.4.1", "vue": "^3.2.47", "vue-meta": "^3.0.0-alpha.2", diff --git a/frontend/src/assets/badges/default-dark.png b/frontend/src/assets/badges/default-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..42a16370621580402d567090822a9c667f06ce15 GIT binary patch literal 49503 zcmeAS@N?(olHy`uVBq!ia0y~yU@>E0U@_%jV_;zLbN7G5z`(dDHNrE^(^HFqgMop8 zn}LCmg@KWQfx(Q0fq@aqHf3R8U}9uuU}j)on8d)qz{kkMAjH7HFoS`CL5h(TtbP>( z1A{b_y@`Q=L4%PQEDq9R$jAgTnPC?L1A`GG6N3l?1H&-}28PUbh+Xd(7#Nr*K*Vn` zKmZ2=2s#&~CYGe8D3oWGWGJ|M`UWtZV`5+sW?+ERAVCFVJp(-x1_mPoBU38_Gb=+Q z1tViCV?!$gBXltXD`Nu&cDQXGj0_AcP@7{I85jg6Ffp(*FfbG_GB5~2*%gco3_?(L z10w@N+az`dNd^Xn4n_tB#sv^xf<g@BZZsEwZNny}ZD3?&V8FnDPJ_$<VN8FopA!C- zfq}6l)7d$|)7e>}peR2rGbfdSp<+($L|c!;4l+mMgSRS)vTJvBq^$5O3luya)v6T2 zvDIlcpW5^~$H{FfM~?;;=vw^P7*SeKc<t)JPyrTuhdZq5uHu>>>pd5`u3<m^x1#)g z;defPEY)R^vVjhlbB!hYJ71nzB~jrj-Xw8AgDo{pvUt)Ihua@Z`Q_u^E7`36yVKr% z{j9AL4}?1xpE1aN#QSKb@9hVB{AH3@BUSCx=NY_gI?^8#Zd3PoPI=^mnTp0!=cw}u zcK;L$i<%+o(_1miVojFSQ|`?E&~wpqwg$DDzB?H&apslw>6qn~O%`GsSvZwMLIPYk z&6KvhS`y)Lscubg{f)2QPl8T_vM3*CI(0!|cijj3A9vSIojvQzq$a}!pN|&W9cwtC z7qH&y-1m)-ulO_kH!fIe{`aYr!Eev1tt(sm8}{Wsc(iM!X7z!md<I`qPAq%lRX58? zkA2Vli{_~f|DqS9pMAY{WB+A#1=m>ByoP4y1RMXGuXFF+y?g8S{&cCoe;L};iq@Sd zU$T>df%kZ3NJL45ua8x7ey(0(N`6wRUPW#JC<+;D>?;Zqle1Gx6p~WYGxKbf-tXS8 zq>!0ns}yePYv5bpoSKp8QB{;0T;&&%T$P<{nWAKG$7NGtRgqhen_7~nP?4LHS8P>b zs{}UJDzDfIB&@Hb09I0xZL1XF8=&BvUzDm~qGzIKpzB(ZS!SeU$E9FXl#*r@<l+W3 zq9`TJRw<*Tq`*pFzr4I$uiRKKzbIYb(9+UU-@r)U$Vj&+B~7=uGOr}DLN~8i8Ds>+ z442g6<f6=ilFa-(1(2DEN%^HEwn|D|3JMBP!z*$Ne0|}@=M_UkAvr%+zap_f-%!s$ zKQ~t&Sx0e+Ygq|?9mOG)1*!T$sm1xFMaikIWvO{3%E(5fB*XO=losWHy_1rxpPG}J zo0?ZrtZ%4ih+-wElz{611wnddZUI<VMQ#C#%7TpilKkR~`~tXg6feQ0!5%|)QbjHf zEwE4kD+Y&_l}mndDafIoF1AV_msq9bCugQufti-6#s-E)sph)LDQ1?sCgx_Ax|S*C zmbyk}sVOEYW@g5z=H^I7dFB<DB<3Zjf{d!jEzrx%OtDHbHcB)|HBQw{GcYjGHAzZJ z)3r!3G}leGG&M6ZFi5m8NHat-!oMgpJu@#c2ia91qf#<ctPE08Q;bbgEp*LI%t1yO zrRXLZC7J0a873tgC7PI+q!?L%jY>(ja?3BuO)Rlh%FInnPt`BTO9xAUg5Jt8z|&UA zSkC|<5|EQvl9peTYpdjwnO9nYkO;}lO${zd1cj!dxrwE@nX!eLiK(HXp{Wr<QCMnG zab|uV*i1bWusA$stXvXHQlSN?trDX24FS~&pb{BU=z=v><Q7;#l!7!7tvbIbBtJjL zRte-cxH-P5C5b7CC5c!~0@X!m_WI_hWTsUTQf&vyYBrE$<B?fhl3!E_7J}r@;M770 z55mpK1gTa~PylB!tHfkb#<f){PAp4J0lO0}m7I~7m!6tps{~E_FfEx_l2b}rs!^Ir zYO-#siLr&QNs76NZjxDQs&0x=vaz|PWr~5ZaT2QO#rbI^<%vb9j_Ij+C6Hi()X@qW z;MmqgRbHNvng<DcT>~>+LnClZ8Cn^bKtoI);zt{OP!R<4vW-4Qpg<HLm05ON3J|d% z7dJaD8+~xW2`WS(27(GPT4HEq(9#M8g;7gL3g6M-8VxRzLVzU2qp52&xJU{Ck`#}o zE~*6=7ovBTnwMg$RIX%iS9hJEh=GBDv%n*=n1O-sFbFdq&tH+kz@Wh3>EaktG3U+Q z%00`A|Nj4Yd}i&j9?9JsC#$MNPce0JZ8<ebX;Y1N>m-$~UtYIb;yZtQ<Mq6l)|qlL zO5|qyiG4k_Y=_^Z*VXSi_j8`%Ys>kcf7ZlZ|Fq+N-ul~?n;*Q~mA3BnuRZI&UusnG z42lqu;Lu^?VRB=1ZWN3)E!lS8`g#9u-D}<d&%Hj-V_BD{_Tg5J{X3R8)@6+O43ir* z52z$mU0+}N?a_W!&q-SAl&u?7JYP*uJn&+jl=1EBhQ)vG%(>tH>Q{O@b2o$YE!jPs zX^g_1YA0X2Jbrw2-7JgS*E=`=tvDB7zxDO}sVbhTsmachmOPT=>tUUy?B;Oh-`_d* zaboYE|1}k@V4ZOx^gPq!=O6#FJkY#nwaI0Yit1-ak4a0uN%F1X(7FG$wAFH-JhzUk z4|`zYUN#$N6We)g^X44?uD^8YWR;a^IXNDauGpMrTFscx9Hux+O#8y+GZ9L<GjHV@ z8SZ*~bKQD>!QOuN2KPqwj;&5Ao<a6EZ%j~G`JGMJx9jS&z-)o;e6PKxjTuEf%<ta+ z`WLw9r=g+YbQRB~NgyZhT+6XXHe&bcYYMZ(wI7-YZase5rTMYo1I7mj*RAIlv_9%F zX^EbhnTltrX-7uL8n!juYc78+wUwz{_-K~nn#YE}J^Bj|*zQ=dQf1{bkV9W3geLr5 z7d2g?b)(wTJC8zU&0pRzQTA?c-|oiW9kKB$o~v}Er6(=XlJqgrF<X|-a%^|!T(>1w zujC#Y^6gl>`X8swbV;vCOVT!NRP@wZeYBCck@tmU??$tWcP4B}IL}lrxY+95t5xld zkuw*ncxJWq@_GhImh>OF!E|Gi#Kete_l_?~tC~CG&?VbVkJTP*yy7xR<!cjv%cLbr zQN8onjvYI&yJ6wV&Lve+{{D*}^F0uIFcqZa?7?GgDw?;0j(GH(ZSd`MJGSDA%cN(^ zCr2#!B7Y$Fz}X|`bo>%0sw~~OQPDGN`_mUQgEp~l5WLsF#Hf01M$sK76RSM7WlPj1 zsa);ipEPMnSTygAc^N4=tZOFCatm7RtA6d(j<$Je$6KzrOj_c#8Dz+^#v@e{w=Wqh zCHrJ4dEQJD+P&@$&mD%C{$4)MAYo7hehvTL(eo}!$GmSz(`%M@OVVAAe?3wn<~d0U z6mM6;PcuXd`}XiNX+J$SF{H@2VRxt7anmC!`d+T=gvRX_gKoy#0=+$N8@2{r_E@zm zyfaYddfC+-S4<`?IRtXWtm#)9VjJc*erIYfe(bSo<MYP-4AU9I8P`8OHc>^ix0lyb z=m1AT@uHa<tv4j)$#~9ME_vkIrs;y0!`_|fRrb_kl9rwn5`VY5?j6$`2A;FM%AU2~ zG;FhrV>o?I^(uRwN=SB|^eUNSW7sjh1AZ>a&XZO>;(cKCfa^ifgPV6OCM_ugh38eX zITBMhvR}L)F<IJu(ycU^0>cl|4;r87Oj;raN(5IoTWoys{M>=Q11IiSOq%j8@Ild{ zi-p_<+U9*KD`)29cm$cQVX2uQG4&(koue+3o;~+`aNcF{<MRi;fUNijGUDl0wGHYU zyHC2Ej8s|K6Q^|T@ekdN3@d&4Jhc=-UeMEKl2^QT=7!Ar$CIw;2)~%Qu1Iy`)-@_C zS!xufEqN5p^h02S{s!5&-Ks0E#<A70&*{%D@(6nPvp~o5s0rH-14E<7%?B3Tv6vJR z?ax@R;8t{J&K%cCCj4e*Dl0AAn07N(Gg~t_7d`fv^z4Je#@aWn2lh|i>@jKAjT;k| z#4vYkHTuT-?cmx-)s;H$6qc>}!&PBu*{yPQRxhvTsf}tEPuviX(6#JVSy>p|xVrIk zgZ-m(T9dAnfef#8W8VEpX~CqB(Dee*$N%+6TvYVTVwPW}x^gQU!+Yj$%ywKopqR>< zTzEvIFP`E2bGM00vOrP4b|YJXfuU9MO;9-7TyC^yPG=5hFfM-V5%d-0tY?x=KBkr| z%V&8^dS*6H;%K4Thl)HA&sBW#yHr>H4`b(J;$xWRcTUMuYoFf(t0dh%dj{j8#~wjD zZ{C=&<d}t(^Q0?0eUBzAsr%#@GwIi{i;|O;gcXRitC*fR)~2F+han;T!RG_tD&9^} z*?KMb2uI)MM)Ap;!C|WB`FXp>2J;WD58j@PRPp?3%)5i-hv0|rPjn`QM3|YWWaecv z&1dFg5%WB!<SBGO_Q1;ntw+Q*K}so29)^4DGJG{0>-#4yNvh(r5dTqsz!((m0yPEG zL(2WkC#p=HcsWF6Wp^*HXX#e952^|AbMlltwYEn$1UJ|V?OyE>wD!i02_fdvjP4A- z8JIy4b;YM&=ykyy-aRwtxK6rt>{#0ps}~B}vTb{AtP7pAM5|iRqB)}d@zW<dldcq* znW=={6iE8pv$(Nz(q@lISMq`zyBmZX+b3=I2s#Zi*|nRAogtnr%;TJrXV5mk2V9E| z7Dg9|d1hHjOHW#r;+pigr@1lkWaN@nGx>a8{rYE`@JwdE-PE1Wzno`M6XO2DH}mmz zHfH7LAMZ;#+sx--b^D^ceo5tSu^)B?p=AP|Sz;h#5=<XRB-lUu_d(_A)s#gm4ffAs z*u%BQ&qP=4(&arfczhJ4B#d{}>7Mpj#A(DP;nH(Lij8Of<Lho^wQtuQefHy{L{5d* z=G}884i;)&Y?-p;(x#1yE6-eG+UNGBz(~Wg`%2d2hUX2>J6jo#GwYxE_}AOzaFUW? zlT*Iwgn4SmgJQRu7?jD~*Jsw5C>)%%dUs<!^ZvtYlT@cp>E-oI{lfPkBEdhwp-61y z{xpH!PW8s+4a;}$vvV{t+%;Qr@@A%MHxjC5$s~80R);Z!sV&>L_QKcFh%kqhoyQo} z8TY5XTbVW~B*V;1W$H<{1BD0jD*gsl`mp_Dw(&C2o~JTP+`s&9g-u<D#_pvrGfURo z`C6))H0#c*BU>a^>d2`{$%qSFzO1tH!=D6&l{{uD*Dm~!h}$0G6Wo~I@$9I@gMaJZ z%d^TIe|WcayTrvOGs4$)T{jiIEPSB9VRMIRxys57dnS5mZPIPbXRuCTpV)EqtK9PC zg&!3@rhQIKTGer-<KmGOeODW|HkR(n@=em}netZiLG^)~JIeZ(G=ajf;~MimzBdzP zUACIe%ZTfl{q}Y2mz;8~t+y1CtWNK8S-kl7YpWxD20^=RUEeJFRGgHn;HkwUEj_6# zCH6t|fp-<PLDfDi@7}E1-NAN@`M~U%3zx7;xb(b>5RaHYW7T%W4K-;RS5G+~;5?9D zFl+9TrVq`{OOzsJ-q`llA<5cprKp-fZ?|>YYW5EYW3C#s-7w60eDl@Y9mP|k(q%3_ z_@QeU>ObkyjT;lDWU?lmI>~4;J?89JlLF}v`c-ZzHq&Q$WbJo-DS36H;08`J>nk<? z70PsWTUmE3`L$`IqUPaA2c|b3E?BqYSH4vNe*w24*W<J#b0N=SX;%~LZ3<!;b><sF zvXnxP-tS;L9>2NSW0kzL^rTyvJOv^bFG$Rs<NDO3d&d3R=<vH<CZ;hb{Ic#y9jNY5 zJ6_#T{z${h^qtp(h@>TRRJOME@_N2CVELi*Q7!%C6CJJTFAuyu&>LH-{lP0sY2~jr z;p~!}yP?qu#!<DGIb$5|e4p=gPH81uPL4;`*4T#Nj?h0#TW2!f;f-<j(cLLnVQM;Y zN#g;wBUh&CHoR>(8Z5k0XBlHU({bV50iHqLH*QS0qV=9_AAinNS(nytYKAdC)2e1k zP7W6KjGDoC;Fine<mv?JnB~sg-?%>5J_t$3DiZS)O-XhR+Ps!?4$qr;vM#MAlOr7e zzgoAecSfGl$~{&MrH!(?UhO^5am7Vz)qjTL4Eqo3CaIcE?B(@5yNP9^!3*(DQ`04R z{X&ZkcV#=}$$09Tb=;^-t*&w_;W@>#<j_y{k7o*!%LF_psdQ{FI?l9SFh5@Bb?Sqp z2LcJ9Dp&7LIuLij@__J@_{D1;U3uRzao!{qPfe?ay`5LjZI<s@bLSPyJBEFnIbJ#@ z8lImwixsdKHf2lwyl$YqeHo)YgP7|im6g3_40#Iw6HlC4ZQf~W#K#`yGD&JP$HwYw zkq0(EiNC#OPgUoR<u_!et9a^ewJ4C<sG9zbdBW9yRdN>mH<%?lRZOolBqTpzc~F*Q z67j9{d{+Hk$2U8aJttiWX>K^&@%Gjx`HD5)uGu#}Zs47`<XaT$519f{zsQx*rA*J6 zk|(NoW;NwDR-dRpvGG>0ai{rGb%tyO&!YxxH~4pO%y9X)^-`9<uhKjB!xL0Ivkr6} z+0y)`U264LQ{f#mXWZUnGbtoTxuewb++o?BuY&l6FDs~ePO3_^_;CL~$|w1hHP^0& zJn(vukf5oua*i8=Jfj{%oa+BuSzEWQJ8-dOl1ipx8Izpi|AR-fe0|ktN&aT+R`k4T zB=SR`!0v<9&+9R(O-&^&_Pwt0o}}`3{zi+pOHP&A7np3&nH0i*xZ|akxS;ZtP3sSb zeSU3!fPI3B=T`HMi133CcVAsyxPxJZiepc}ZT=mzB7!x3|H?7luE!kaFiGX=CAS0i zC+Zb8&I<QuUd|Y;<T-1)Xh++>vrpnTuYGp)$hyx~0-lpXxVstck8TeOU3tCnKkGei z9*0R+qF*zqGoPPSue*I#@ODONCC^D(x%>|-Kgrvy`FH*80mTCvDxQB08E(j3f4su$ zEXz42Q0#`DdUasy6Z@QqzpIxwPHr%rsIv9YqyvHn?mmhCy!PLH<8t>&DpT(<JX-rt z<&(U@nqyg78x3yB9Z6b0Y00-2^HzOQ`uUw{^~YU25qzGLLcCr-e6%2SU3KH(2GwUa z8z(K<CdKx~_06hFp8x(Hd{w=d<&E|8&Z#P%M@=Oxq-Hq%Yi_x^eU{gmkN4zW%=mo7 zYtp5)eTywl#e_3ypDhhj^$c2=!|<p34?Fwn{I4PfOdGz$q=!rjadGa{Yzm)T&%g0k z*m|Mp!@DNWQ1N6no>S3m()@>=ZFRZn<O+p*%n}ygHK(dfJ#y=a?GMpU?{&l8zfMb7 zTRF$ybJCOq?+1>b<OSB;yIS#xv0`fF9B<E{%3dY0H~S|4sqVeHyK3@`eXqIMJSR=+ zVLErD^~|ZD?M&6e*$X@-t;)@QP;N14lTNAhM(#cp&#c8~8{1FT3v3XJG49NLwr&3R z%qc3NcUB$I*gO5?e)UN1btf&VoF^^WCgEnIa8~6%<AGWAzAS!+r(Rd}OjI%SO_lli zT_gM8SM#Lr(w>v9FuiAar}n=s|LlG_rLd^@6uajElS1;DI|6H_KMc8~bY1$$-#crs zt9oWlI(Q^(!R3?tFGd%KtA9v;!2E+j#q-tPa;E1D!6)`lkNmvubYtrCawb*Jp!aKd z|4jZPz1y_Bbp8B~>weC&^_(P@m-&db?e<Zz&1wwu=iEOzS;h17b;mPDYn%T_@A`Ue z7SkN|HJ0}`t9u6B?^Rl6Z{z!K@3~pK^_Zs3cz<)Uif8^tqXOBV<^`|Ue%0Ej@Z!eL z`Bt8je&up(kpH0Y^Sj;awWe}6D*r9_o224sb7GI%zuw!gRxWQ;?ljMwq_Xw2LxTSU zzEAI4!~9E`mJ3^7^_;ZirVdw(!@sk)Uae$r^cT)Qr{a0)OWlL0Pw#uf{O`K1X;t%_ z)Zp9DesaHKbl~HTiN?(0C6`n@y*5a0EGYf9_fpp^pEcb|o<X^#0_KNTKDj?bcZa;R z)TAXv8x97p`DMG|2h;f(DxRWScs`_m%0DuVm)A3>a&LP^LCK_g`?b}!oH=_RTvqiA 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	+Ac&bC_Idp&pSZ$?p(lHHbI?H_mA$$u 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 G5}E+1+dyLg literal 0 HcmV?d00001 diff --git a/frontend/src/assets/badges/default-light.png b/frontend/src/assets/badges/default-light.png new file mode 100644 index 0000000000000000000000000000000000000000..bf8a12cb47a921043a482f2a780a8554ea9cdbf2 GIT binary patch literal 55968 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 D1SrnJ literal 0 HcmV?d00001 diff --git a/frontend/src/assets/previews/nakopneme_basic_photo_banner.png b/frontend/src/assets/previews/nakopneme_basic_photo_banner.png new file mode 100644 index 0000000000000000000000000000000000000000..61b8ea1bf62e8c477db02517b7a07df660dbebf1 GIT binary patch literal 51993 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 Hl+XkKOSgF% literal 0 HcmV?d00001 diff --git a/frontend/src/assets/template/nakopneme_basic_photo_banner/nakopneme_quote_left.png b/frontend/src/assets/template/nakopneme_basic_photo_banner/nakopneme_quote_left.png new file mode 100644 index 0000000000000000000000000000000000000000..e157c389667fa7e8aa65378d4bbd540023f38b34 GIT binary patch literal 5291 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 N5>Hn@mvv4FO#rM$IIREx literal 0 HcmV?d00001 diff --git a/frontend/src/assets/template/nakopneme_basic_photo_banner/nakopneme_quote_right.png b/frontend/src/assets/template/nakopneme_basic_photo_banner/nakopneme_quote_right.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1a7b9599a3bc01a30415b6c192750d91349354 GIT binary patch literal 5094 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 literal 0 HcmV?d00001 diff --git a/frontend/src/components/canvas/Canvas.vue b/frontend/src/components/canvas/Canvas.vue index de68381c..5abd7816 100644 --- a/frontend/src/components/canvas/Canvas.vue +++ b/frontend/src/components/canvas/Canvas.vue @@ -1,5 +1,5 @@ <script> -import { fabric } from "fabric"; +import * as fabric from "fabric"; export default { props: ["width", "height", "redrawFunction"], @@ -48,12 +48,9 @@ export default { window.fileName instanceof String) && window.fileName.length >= 1 ) { - window.fileName = ( - window. - fileName. - replace(/\r\n|\n/, ' _ '). - replace(/\./, '_') - ); + window.fileName = window.fileName + .replace(/\r\n|\n/, " _ ") + .replace(/\./, "_"); link.download = window.fileName; } else { diff --git a/frontend/src/components/canvas/textbox.js b/frontend/src/components/canvas/textbox.js index 6584210b..2b98839e 100644 --- a/frontend/src/components/canvas/textbox.js +++ b/frontend/src/components/canvas/textbox.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; class PaddedHighlightingTextbox extends fabric.Textbox { _renderTextLinesBackground(ctx) { diff --git a/frontend/src/components/canvas/utils.js b/frontend/src/components/canvas/utils.js index c06b758c..e9a067e7 100644 --- a/frontend/src/components/canvas/utils.js +++ b/frontend/src/components/canvas/utils.js @@ -1,7 +1,7 @@ import alertifyjs from "alertifyjs"; import "alertifyjs/build/css/alertify.css"; -import { fabric } from "fabric"; +import * as fabric from "fabric"; const setCharAt = (str, index, chr) => { if (index > str.length - 1) return str; @@ -35,7 +35,7 @@ const getSingleLineTextBoxWidth = (text, fontSize, fontFamily) => { // hacky browser font shit anymore. const maxWidth = 999999999999999; let currentWidth = 0; - + for (let wordPosition = 0; wordPosition < splitWords.length; wordPosition++) { let currentWord = splitWords[wordPosition]; let skipNewLineGeneration = false; @@ -101,7 +101,7 @@ const getSingleLineTextBoxWidth = (text, fontSize, fontFamily) => { } return currentWidth; -} +}; const sortObjects = (canvas) => { canvas._objects.sort((a, b) => (a.zIndex > b.zIndex ? 1 : -1)); @@ -119,8 +119,10 @@ const transformTextLineBreaks = ( options = {}; } - text = text.replace(/[^\S\r\n]+/g, " "); - text = text.replace(/\r\n/g, "\n"); + if (!options.skipWhitespaceNormalization) { + text = text.replace(/[^\S\r\n]+/g, " "); + text = text.replace(/\r\n/g, "\n"); + } let positionWithinString = -1; let currentWidth = 0; diff --git a/frontend/src/logos.js b/frontend/src/logos.js index f3fb2da5..6837a9d9 100644 --- a/frontend/src/logos.js +++ b/frontend/src/logos.js @@ -1,6 +1,9 @@ import defaultLogoLight from "./assets/logos/default-light.png"; import defaultLogoDark from "./assets/logos/default-dark.png"; +import defaultBadgeLight from "./assets/badges/default-light.png"; +import defaultBadgeDark from "./assets/badges/default-dark.png"; + const LOGOS = { defaultLight: { name: "Základní - světlé", @@ -12,6 +15,17 @@ const LOGOS = { }, }; +const BADGES = { + defaultLight: { + name: "Základní - světlé", + src: defaultBadgeLight, + }, + defaultDark: { + name: "Základní - tmavé", + src: defaultBadgeDark, + }, +}; + const LOGO_POSITIONS = { top_left: { id: "top-left", @@ -45,6 +59,16 @@ const generateLogoPositions = (identifiers) => { return logoPositionsList; }; +const generateDefaultBadges = (identifier) => { + let badgesCopy = BADGES; + + for (const [badgeIdentifier, badge] of Object.entries(badgesCopy)) { + badge.defaultSelected = badgeIdentifier === identifier; + } + + return Object.values(badgesCopy); +}; + const generateDefaultLogos = (identifier) => { let logosCopy = LOGOS; @@ -55,4 +79,10 @@ const generateDefaultLogos = (identifier) => { return Object.values(logosCopy); }; -export { LOGOS, generateDefaultLogos, LOGO_POSITIONS, generateLogoPositions }; +export { + LOGOS, + generateDefaultLogos, + generateDefaultBadges, + LOGO_POSITIONS, + generateLogoPositions, +}; diff --git a/frontend/src/templates.js b/frontend/src/templates.js index 6fc44dc1..019b318f 100644 --- a/frontend/src/templates.js +++ b/frontend/src/templates.js @@ -1,9 +1,8 @@ import basicPhotoBannerImage from "./assets/previews/basic_photo_banner.png"; +import nakopnemeBasicPhotoBannerImage from "./assets/previews/nakopneme_basic_photo_banner.png"; import urgentBasicPhotoBannerImage from "./assets/previews/urgent_basic_photo_banner.png"; import makeawishPhotoBannerImage from "./assets/previews/make_a_wish_photo_banner.png"; import makeawishTourSocialImage from "./assets/previews/make_a_wish_tour_social.png"; -import backInFullForcePhotoBannerImage from "./assets/previews/back_in_full_force_photo_banner.png"; -import backInFullForceTourSocialImage from "./assets/previews/back_in_full_force_tour_social.png" import urgentTextBannerImage from "./assets/previews/urgent_text_banner.png"; import textBannerImage from "./assets/previews/text_banner.png"; import newspaperQuoteBottomImage from "./assets/previews/newspaper_quote_bottom.png"; @@ -39,6 +38,16 @@ const TEMPLATES = { title: "Základní banner s fotkou", }, }, + basic_photo_banner_ig: { + name: "Základní banner s fotkou (IG 5:4)", + image: basicPhotoBannerImage, + path: "/basic-photo-banner-id", + component: () => + import("./views/basic_photo_banner/BasicPhotoBannerIG.vue"), + meta: { + title: "Základní banner s fotkou (IG 5:4)", + }, + }, urgent_basic_photo_banner: { name: "Urgentní banner s fotkou", image: urgentBasicPhotoBannerImage, @@ -49,6 +58,18 @@ const TEMPLATES = { title: "Urgentní banner s fotkou", }, }, + nakopneme_basic_photo_banner: { + name: "Nakopneme to! - Základní banner s fotkou", + image: nakopnemeBasicPhotoBannerImage, + path: "/nakopneme-basic-photo-banner", + component: () => + import( + "./views/nakopneme_basic_photo_banner/NakopnemeBasicPhotoBanner.vue" + ), + meta: { + title: "Nakopneme to! Základní banner s fotkou", + }, + }, make_a_wish_banner: { name: "Máte přání banner", image: makeawishPhotoBannerImage, @@ -62,7 +83,8 @@ const TEMPLATES = { name: "Máte přání tour banner na soc. sítě", image: makeawishTourSocialImage, path: "/make-a-wish-tour-social", - component: () => import("./views/make_a_wish_tour_social/MakeAWishTourSocial.vue"), + component: () => + import("./views/make_a_wish_tour_social/MakeAWishTourSocial.vue"), meta: { title: "Máte přání tour banner na soc. sítě", }, @@ -71,7 +93,8 @@ const TEMPLATES = { name: "A2 - Máte přání tour plakát", image: makeawishTourSocialImage, path: "/make-a-wish-tour-social-a2", - component: () => import("./views/make_a_wish_tour_social_A2/MakeAWishTourSocialA2.vue"), + component: () => + import("./views/make_a_wish_tour_social_A2/MakeAWishTourSocialA2.vue"), meta: { title: "A2 - Máte přání tour plakát", }, @@ -80,12 +103,15 @@ const TEMPLATES = { name: "Široký banner - Máte přání tour", image: makeawishTourSocialImage, path: "/make-a-wish-tour-social-wide", - component: () => import("./views/make_a_wish_tour_social_wide/MakeAWishTourSocialWide.vue"), + component: () => + import( + "./views/make_a_wish_tour_social_wide/MakeAWishTourSocialWide.vue" + ), meta: { title: "Široký banner - Máte přání tour", }, }, - + /* back_in_full_force_banner: { name: "Zpátky v plné síle banner", diff --git a/frontend/src/views/angle_event_left/canvas.js b/frontend/src/views/angle_event_left/canvas.js index 3e326891..dab73a0c 100644 --- a/frontend/src/views/angle_event_left/canvas.js +++ b/frontend/src/views/angle_event_left/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/angle_event_right/canvas.js b/frontend/src/views/angle_event_right/canvas.js index c4eba342..054352c8 100644 --- a/frontend/src/views/angle_event_right/canvas.js +++ b/frontend/src/views/angle_event_right/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/angle_person_event_left/canvas.js b/frontend/src/views/angle_person_event_left/canvas.js index c2d01936..c11b991e 100644 --- a/frontend/src/views/angle_person_event_left/canvas.js +++ b/frontend/src/views/angle_person_event_left/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/angle_person_event_right/canvas.js b/frontend/src/views/angle_person_event_right/canvas.js index df263990..e9328356 100644 --- a/frontend/src/views/angle_person_event_right/canvas.js +++ b/frontend/src/views/angle_person_event_right/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/avatar/canvas.js b/frontend/src/views/avatar/canvas.js index c9f9d183..b9e5a14a 100644 --- a/frontend/src/views/avatar/canvas.js +++ b/frontend/src/views/avatar/canvas.js @@ -120,14 +120,14 @@ const redraw = async (canvas, options) => { } const clipCircle = new fabric.Circle({ - left: canvas.width/2, - top: canvas.height/2, - originX: 'center', - originY: 'center', + left: canvas.width / 2, + top: canvas.height / 2, + originX: "center", + originY: "center", radius: canvas.width / 2, - absolutePositioned: true // clip relative to canvas + absolutePositioned: true, // clip relative to canvas }); - + // assign it to the canvas canvas.clipPath = clipCircle; canvas.renderAll(); diff --git a/frontend/src/views/back_in_full_force_banner/canvas.js b/frontend/src/views/back_in_full_force_banner/canvas.js index c13cbccc..25c7bff3 100644 --- a/frontend/src/views/back_in_full_force_banner/canvas.js +++ b/frontend/src/views/back_in_full_force_banner/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, @@ -25,12 +25,7 @@ let mainImageSource = null; const redraw = async (canvas, options) => { clearObjects( - [ - mainTextBox, - personNameText, - personPositionText, - contractedByTextbox, - ], + [mainTextBox, personNameText, personPositionText, contractedByTextbox], canvas, ); @@ -63,7 +58,10 @@ const redraw = async (canvas, options) => { if (options.mainText !== null) { /* BEGIN Background render */ - if (backgroundImage === null || options.colors.background.value != previousBackgroundImageColor.value) { + if ( + backgroundImage === null || + options.colors.background.value != previousBackgroundImageColor.value + ) { backgroundImage = new Image(); await new Promise((resolve) => { @@ -93,7 +91,6 @@ const redraw = async (canvas, options) => { /* END Background render */ - /* BEGIN Name text render */ if (options.personName !== null) { diff --git a/frontend/src/views/back_in_full_force_tour_social/canvas.js b/frontend/src/views/back_in_full_force_tour_social/canvas.js index 50862e73..1389ea9b 100644 --- a/frontend/src/views/back_in_full_force_tour_social/canvas.js +++ b/frontend/src/views/back_in_full_force_tour_social/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, @@ -43,7 +43,7 @@ const redraw = async (canvas, options) => { attendeesTextBox, dateTextBox, timeTextBox, - locationTextBox + locationTextBox, ], canvas, ); @@ -63,11 +63,16 @@ const redraw = async (canvas, options) => { const textMarginLeft = Math.ceil(canvas.width * 0.1); const textMarginRight = Math.ceil(canvas.width * 0.078); - let mainTextMarginBottom = Math.ceil(canvas.height * 0.35) + Math.ceil(canvas.height * 0.15); - const dateTextMarginBottom = Math.ceil(canvas.height * 0.63) + Math.ceil(canvas.height * 0.25); - const timeTextBoxMarginBottom = Math.ceil(canvas.height * 0.565) + Math.ceil(canvas.height * 0.235); - const locationTextBoxMarginBottom = Math.ceil(canvas.height * 0.32) + Math.ceil(canvas.height * 0.14); - const attendeesTextBoxMarginBottom = Math.ceil(canvas.height * 0.1) + Math.ceil(canvas.height * 0.11); + let mainTextMarginBottom = + Math.ceil(canvas.height * 0.35) + Math.ceil(canvas.height * 0.15); + const dateTextMarginBottom = + Math.ceil(canvas.height * 0.63) + Math.ceil(canvas.height * 0.25); + const timeTextBoxMarginBottom = + Math.ceil(canvas.height * 0.565) + Math.ceil(canvas.height * 0.235); + const locationTextBoxMarginBottom = + Math.ceil(canvas.height * 0.32) + Math.ceil(canvas.height * 0.14); + const attendeesTextBoxMarginBottom = + Math.ceil(canvas.height * 0.1) + Math.ceil(canvas.height * 0.11); const mainTextSize = Math.ceil(canvas.height * 0.185); const mainTextLineHeight = 0.8; @@ -121,12 +126,11 @@ const redraw = async (canvas, options) => { const dateTextBoxTop = canvas.height - dateTextBox.height - dateTextMarginBottom; - dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; + dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; - const dateTextBoxLeft = - canvas.width - dateTextBox.width - textMarginRight; + const dateTextBoxLeft = canvas.width - dateTextBox.width - textMarginRight; - dateTextBox.left = dateTextBoxLeft; + dateTextBox.left = dateTextBoxLeft; canvas.renderAll(); @@ -170,8 +174,7 @@ const redraw = async (canvas, options) => { timeTextBox.top = timeTextBoxTop - highlightedData.paddingBottom; - const timeTextBoxLeft = - canvas.width - timeTextBox.width - textMarginRight; + const timeTextBoxLeft = canvas.width - timeTextBox.width - textMarginRight; timeTextBox.left = timeTextBoxLeft; @@ -213,14 +216,22 @@ const redraw = async (canvas, options) => { canvas.add(attendeesTextBox); const attendeesTextBoxTop = - canvas.height - attendeesTextBox.height - attendeesTextBoxMarginBottom + (attendeesTextSize * attendeesTextLineHeight * (attendeesTextBox.textLines.length - 1)) + ((3 - attendeesTextBox.textLines.length - 1) * attendeesTextSize * attendeesTextLineHeight); + canvas.height - + attendeesTextBox.height - + attendeesTextBoxMarginBottom + + attendeesTextSize * + attendeesTextLineHeight * + (attendeesTextBox.textLines.length - 1) + + (3 - attendeesTextBox.textLines.length - 1) * + attendeesTextSize * + attendeesTextLineHeight; attendeesTextBox.top = attendeesTextBoxTop - highlightedData.paddingBottom; const attendeesTextBoxLeft = canvas.width - attendeesTextBox.width - textMarginRight; - attendeesTextBox.left = attendeesTextBoxLeft; + attendeesTextBox.left = attendeesTextBoxLeft; canvas.renderAll(); @@ -230,7 +241,11 @@ const redraw = async (canvas, options) => { if (options.mainText !== null) { /* BEGIN Background render */ - if (backgroundImage === null || options.colors.background.value != previousBackgroundImageColor.value || !canvas.getObjects().includes(backgroundImage)) { + if ( + backgroundImage === null || + options.colors.background.value != previousBackgroundImageColor.value || + !canvas.getObjects().includes(backgroundImage) + ) { backgroundImage = new Image(); await new Promise((resolve) => { @@ -260,7 +275,6 @@ const redraw = async (canvas, options) => { /* END Background render */ - /* BEGIN Main text render */ const mainTextWidth = canvas.width - textMarginLeft - textMarginRight; @@ -294,12 +308,17 @@ const redraw = async (canvas, options) => { canvas.add(mainTextBox); const mainTextBoxTop = - canvas.height - mainTextBox.height - mainTextMarginBottom + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight); + canvas.height - + mainTextBox.height - + mainTextMarginBottom + + mainTextSize * + (mainTextBox._textLines.length - 1) * + 0.9 * + mainTextLineHeight; mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom; - const mainTextBoxLeft = - canvas.width - mainTextBox.width - textMarginRight; + const mainTextBoxLeft = canvas.width - mainTextBox.width - textMarginRight; mainTextBox.left = mainTextBoxLeft; @@ -309,9 +328,9 @@ const redraw = async (canvas, options) => { if (options.locationText !== null) { /* BEGIN Location text render */ - + const locationTextWidth = canvas.width - textMarginLeft - textMarginRight; - + const highlightedData = transformHighlightedText( options.locationText, locationTextSize, @@ -321,7 +340,7 @@ const redraw = async (canvas, options) => { options.colors.highlight.value, { padWhenDiacritics: false, invertHighlight: true }, ); - + locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, { width: canvas.width, left: 0, @@ -335,26 +354,34 @@ const redraw = async (canvas, options) => { highlightPadding: canvas.height * 0.003, zIndex: 20, }); - + checkTextBoxHeight(locationTextBox, 2); - + canvas.add(locationTextBox); - + canvas.renderAll(); - + const locationTextBoxTop = - canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1)) - + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight); - + canvas.height - + locationTextBox.height - + locationTextBoxMarginBottom + + locationTextSize * + locationTextLineHeight * + (locationTextBox.textLines.length - 1) + + mainTextSize * + (mainTextBox._textLines.length - 1) * + 0.9 * + mainTextLineHeight; + locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom; - + const locationTextBoxLeft = canvas.width - locationTextBox.width - textMarginRight; - + locationTextBox.left = locationTextBoxLeft; - + canvas.renderAll(); - + /* END Location text render */ } } @@ -444,10 +471,10 @@ const redraw = async (canvas, options) => { pointerDownEventAssigned = true; } - const colors = {...options.colors}; + const colors = { ...options.colors }; upEventFunction = (event) => { - redraw(canvas, {...options, colors: colors}); + redraw(canvas, { ...options, colors: colors }); }; document diff --git a/frontend/src/views/back_in_full_force_tour_social_A2/canvas.js b/frontend/src/views/back_in_full_force_tour_social_A2/canvas.js index cc5fe2db..be375fc7 100644 --- a/frontend/src/views/back_in_full_force_tour_social_A2/canvas.js +++ b/frontend/src/views/back_in_full_force_tour_social_A2/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, @@ -43,7 +43,7 @@ const redraw = async (canvas, options) => { attendeesTextBox, dateTextBox, timeTextBox, - locationTextBox + locationTextBox, ], canvas, ); @@ -63,11 +63,16 @@ const redraw = async (canvas, options) => { const textMarginLeft = Math.ceil(canvas.width * 0.1); const textMarginRight = Math.ceil(canvas.width * 0.078); - let mainTextMarginBottom = Math.ceil(canvas.height * 0.3) + Math.ceil(canvas.height * 0.13); - const dateTextMarginBottom = Math.ceil(canvas.height * 0.605) + Math.ceil(canvas.height * 0.305); - const timeTextBoxMarginBottom = Math.ceil(canvas.height * 0.535) + Math.ceil(canvas.height * 0.312); - const locationTextBoxMarginBottom = Math.ceil(canvas.height * 0.27) + Math.ceil(canvas.height * 0.12); - const attendeesTextBoxMarginBottom = Math.ceil(canvas.height * 0.09) + Math.ceil(canvas.height * 0.075); + let mainTextMarginBottom = + Math.ceil(canvas.height * 0.3) + Math.ceil(canvas.height * 0.13); + const dateTextMarginBottom = + Math.ceil(canvas.height * 0.605) + Math.ceil(canvas.height * 0.305); + const timeTextBoxMarginBottom = + Math.ceil(canvas.height * 0.535) + Math.ceil(canvas.height * 0.312); + const locationTextBoxMarginBottom = + Math.ceil(canvas.height * 0.27) + Math.ceil(canvas.height * 0.12); + const attendeesTextBoxMarginBottom = + Math.ceil(canvas.height * 0.09) + Math.ceil(canvas.height * 0.075); const mainTextSize = Math.ceil(canvas.height * 0.175); const mainTextLineHeight = 0.8; @@ -121,12 +126,11 @@ const redraw = async (canvas, options) => { const dateTextBoxTop = canvas.height - dateTextBox.height - dateTextMarginBottom; - dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; + dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; - const dateTextBoxLeft = - canvas.width - dateTextBox.width - textMarginRight; + const dateTextBoxLeft = canvas.width - dateTextBox.width - textMarginRight; - dateTextBox.left = dateTextBoxLeft; + dateTextBox.left = dateTextBoxLeft; canvas.renderAll(); @@ -170,8 +174,7 @@ const redraw = async (canvas, options) => { timeTextBox.top = timeTextBoxTop - highlightedData.paddingBottom; - const timeTextBoxLeft = - canvas.width - timeTextBox.width - textMarginRight; + const timeTextBoxLeft = canvas.width - timeTextBox.width - textMarginRight; timeTextBox.left = timeTextBoxLeft; @@ -213,14 +216,22 @@ const redraw = async (canvas, options) => { canvas.add(attendeesTextBox); const attendeesTextBoxTop = - canvas.height - attendeesTextBox.height - attendeesTextBoxMarginBottom + (attendeesTextSize * attendeesTextLineHeight * (attendeesTextBox.textLines.length - 1)) + ((3 - attendeesTextBox.textLines.length - 1) * attendeesTextSize * attendeesTextLineHeight); + canvas.height - + attendeesTextBox.height - + attendeesTextBoxMarginBottom + + attendeesTextSize * + attendeesTextLineHeight * + (attendeesTextBox.textLines.length - 1) + + (3 - attendeesTextBox.textLines.length - 1) * + attendeesTextSize * + attendeesTextLineHeight; attendeesTextBox.top = attendeesTextBoxTop - highlightedData.paddingBottom; const attendeesTextBoxLeft = canvas.width - attendeesTextBox.width - textMarginRight; - attendeesTextBox.left = attendeesTextBoxLeft; + attendeesTextBox.left = attendeesTextBoxLeft; canvas.renderAll(); @@ -230,7 +241,11 @@ const redraw = async (canvas, options) => { if (options.mainText !== null) { /* BEGIN Background render */ - if (backgroundImage === null || options.colors.background.value != previousBackgroundImageColor.value || !canvas.getObjects().includes(backgroundImage)) { + if ( + backgroundImage === null || + options.colors.background.value != previousBackgroundImageColor.value || + !canvas.getObjects().includes(backgroundImage) + ) { backgroundImage = new Image(); await new Promise((resolve) => { @@ -260,7 +275,6 @@ const redraw = async (canvas, options) => { /* END Background render */ - /* BEGIN Main text render */ const mainTextWidth = canvas.width - textMarginLeft - textMarginRight; @@ -294,12 +308,17 @@ const redraw = async (canvas, options) => { canvas.add(mainTextBox); const mainTextBoxTop = - canvas.height - mainTextBox.height - mainTextMarginBottom + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight); + canvas.height - + mainTextBox.height - + mainTextMarginBottom + + mainTextSize * + (mainTextBox._textLines.length - 1) * + 0.9 * + mainTextLineHeight; mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom; - const mainTextBoxLeft = - canvas.width - mainTextBox.width - textMarginRight; + const mainTextBoxLeft = canvas.width - mainTextBox.width - textMarginRight; mainTextBox.left = mainTextBoxLeft; @@ -309,9 +328,9 @@ const redraw = async (canvas, options) => { if (options.locationText !== null) { /* BEGIN Location text render */ - + const locationTextWidth = canvas.width - textMarginLeft - textMarginRight; - + const highlightedData = transformHighlightedText( options.locationText, locationTextSize, @@ -321,7 +340,7 @@ const redraw = async (canvas, options) => { options.colors.highlight.value, { padWhenDiacritics: false, invertHighlight: true }, ); - + locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, { width: canvas.width, left: 0, @@ -335,26 +354,34 @@ const redraw = async (canvas, options) => { highlightPadding: canvas.height * 0.003, zIndex: 20, }); - + checkTextBoxHeight(locationTextBox, 2); - + canvas.add(locationTextBox); - + canvas.renderAll(); - + const locationTextBoxTop = - canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1)) - + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight); - + canvas.height - + locationTextBox.height - + locationTextBoxMarginBottom + + locationTextSize * + locationTextLineHeight * + (locationTextBox.textLines.length - 1) + + mainTextSize * + (mainTextBox._textLines.length - 1) * + 0.9 * + mainTextLineHeight; + locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom; - + const locationTextBoxLeft = canvas.width - locationTextBox.width - textMarginRight; - + locationTextBox.left = locationTextBoxLeft; - + canvas.renderAll(); - + /* END Location text render */ } } @@ -444,10 +471,10 @@ const redraw = async (canvas, options) => { pointerDownEventAssigned = true; } - const colors = {...options.colors}; + const colors = { ...options.colors }; upEventFunction = (event) => { - redraw(canvas, {...options, colors: colors}); + redraw(canvas, { ...options, colors: colors }); }; document diff --git a/frontend/src/views/back_in_full_force_tour_social_wide/canvas.js b/frontend/src/views/back_in_full_force_tour_social_wide/canvas.js index f9aa91b6..f28b57c1 100644 --- a/frontend/src/views/back_in_full_force_tour_social_wide/canvas.js +++ b/frontend/src/views/back_in_full_force_tour_social_wide/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, @@ -43,7 +43,7 @@ const redraw = async (canvas, options) => { attendeesTextBox, dateTextBox, timeTextBox, - locationTextBox + locationTextBox, ], canvas, ); @@ -63,13 +63,18 @@ const redraw = async (canvas, options) => { const textMarginLeft = Math.ceil(canvas.width * 0.1); const textMarginRight = Math.ceil(canvas.width * 0.04); - let mainTextMarginBottom = Math.ceil(canvas.height * 0.47) + Math.ceil(canvas.height * 0.02); - const dateTextMarginBottom = Math.ceil(canvas.height * 0.8) + Math.ceil(canvas.height * 0.069); - const timeTextBoxMarginBottom = Math.ceil(canvas.height * 0.715) + Math.ceil(canvas.height * 0.075); - const locationTextBoxMarginBottom = Math.ceil(canvas.height * 0.43) + Math.ceil(canvas.height * 0.02); - const attendeesTextBoxMarginBottom = Math.ceil(canvas.height * 0.11) + Math.ceil(canvas.height * 0.12); - - const mainTextSize = Math.ceil(canvas.height * 0.210); + let mainTextMarginBottom = + Math.ceil(canvas.height * 0.47) + Math.ceil(canvas.height * 0.02); + const dateTextMarginBottom = + Math.ceil(canvas.height * 0.8) + Math.ceil(canvas.height * 0.069); + const timeTextBoxMarginBottom = + Math.ceil(canvas.height * 0.715) + Math.ceil(canvas.height * 0.075); + const locationTextBoxMarginBottom = + Math.ceil(canvas.height * 0.43) + Math.ceil(canvas.height * 0.02); + const attendeesTextBoxMarginBottom = + Math.ceil(canvas.height * 0.11) + Math.ceil(canvas.height * 0.12); + + const mainTextSize = Math.ceil(canvas.height * 0.21); const mainTextLineHeight = 1; const dateTextSize = Math.ceil(canvas.height * 0.062); @@ -121,12 +126,11 @@ const redraw = async (canvas, options) => { const dateTextBoxTop = canvas.height - dateTextBox.height - dateTextMarginBottom; - dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; + dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; - const dateTextBoxLeft = - canvas.width - dateTextBox.width - textMarginRight; + const dateTextBoxLeft = canvas.width - dateTextBox.width - textMarginRight; - dateTextBox.left = dateTextBoxLeft; + dateTextBox.left = dateTextBoxLeft; canvas.renderAll(); @@ -170,8 +174,7 @@ const redraw = async (canvas, options) => { timeTextBox.top = timeTextBoxTop - highlightedData.paddingBottom; - const timeTextBoxLeft = - canvas.width - timeTextBox.width - textMarginRight; + const timeTextBoxLeft = canvas.width - timeTextBox.width - textMarginRight; timeTextBox.left = timeTextBoxLeft; @@ -216,7 +219,12 @@ const redraw = async (canvas, options) => { canvas.renderAll(); const locationTextBoxTop = - canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1)); + canvas.height - + locationTextBox.height - + locationTextBoxMarginBottom + + locationTextSize * + locationTextLineHeight * + (locationTextBox.textLines.length - 1); locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom; @@ -263,14 +271,22 @@ const redraw = async (canvas, options) => { canvas.add(attendeesTextBox); const attendeesTextBoxTop = - canvas.height - attendeesTextBox.height - attendeesTextBoxMarginBottom + (attendeesTextSize * attendeesTextLineHeight * (attendeesTextBox.textLines.length - 1)) + ((3 - attendeesTextBox.textLines.length - 1) * attendeesTextSize * attendeesTextLineHeight); + canvas.height - + attendeesTextBox.height - + attendeesTextBoxMarginBottom + + attendeesTextSize * + attendeesTextLineHeight * + (attendeesTextBox.textLines.length - 1) + + (3 - attendeesTextBox.textLines.length - 1) * + attendeesTextSize * + attendeesTextLineHeight; attendeesTextBox.top = attendeesTextBoxTop - highlightedData.paddingBottom; const attendeesTextBoxLeft = canvas.width - attendeesTextBox.width - textMarginRight; - attendeesTextBox.left = attendeesTextBoxLeft; + attendeesTextBox.left = attendeesTextBoxLeft; canvas.renderAll(); @@ -280,7 +296,11 @@ const redraw = async (canvas, options) => { if (options.mainText !== null) { /* BEGIN Background render */ - if (backgroundImage === null || options.colors.background.value != previousBackgroundImageColor.value || !canvas.getObjects().includes(backgroundImage)) { + if ( + backgroundImage === null || + options.colors.background.value != previousBackgroundImageColor.value || + !canvas.getObjects().includes(backgroundImage) + ) { backgroundImage = new Image(); await new Promise((resolve) => { @@ -310,7 +330,6 @@ const redraw = async (canvas, options) => { /* END Background render */ - /* BEGIN Main text render */ const mainTextWidth = canvas.width - textMarginLeft - textMarginRight; @@ -348,8 +367,7 @@ const redraw = async (canvas, options) => { mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom; - const mainTextBoxLeft = - canvas.width - mainTextBox.width - textMarginRight; + const mainTextBoxLeft = canvas.width - mainTextBox.width - textMarginRight; mainTextBox.left = mainTextBoxLeft; @@ -443,10 +461,10 @@ const redraw = async (canvas, options) => { pointerDownEventAssigned = true; } - const colors = {...options.colors}; + const colors = { ...options.colors }; upEventFunction = (event) => { - redraw(canvas, {...options, colors: colors}); + redraw(canvas, { ...options, colors: colors }); }; document diff --git a/frontend/src/views/base_event/canvas.js b/frontend/src/views/base_event/canvas.js index b6adcaa6..d10487b9 100644 --- a/frontend/src/views/base_event/canvas.js +++ b/frontend/src/views/base_event/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/base_person_event/canvas.js b/frontend/src/views/base_person_event/canvas.js index 72f3aba7..679f5fb2 100644 --- a/frontend/src/views/base_person_event/canvas.js +++ b/frontend/src/views/base_person_event/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/basic_photo_banner/BasicPhotoBannerIG.vue b/frontend/src/views/basic_photo_banner/BasicPhotoBannerIG.vue new file mode 100644 index 00000000..9fc9bc15 --- /dev/null +++ b/frontend/src/views/basic_photo_banner/BasicPhotoBannerIG.vue @@ -0,0 +1,256 @@ +<script setup> +import { watch, ref } from "vue"; + +import COLORS from "../../colors"; +import PEOPLE from "../../people"; +import TEMPLATES from "../../templates"; +import DEFAULT_CONTRACTOR from "../../contractors"; +import { + generateDefaultLogos, + LOGO_POSITIONS, + generateLogoPositions, +} from "../../logos"; +import { + loadFonts, + loadCanvasStorage, + setCanvasStorage, + updateAutoRedrawStorage, +} from "../../utils"; + +import Canvas from "../../components/canvas/Canvas.vue"; +import redraw from "./canvas"; + +import Navbar from "../../components/Navbar.vue"; +import MainContainer from "../../components/MainContainer.vue"; +import ImageInput from "../../components/inputs/ImageInput.vue"; +import LongTextInput from "../../components/inputs/text/LongTextInput.vue"; +import ShortTextInput from "../../components/inputs/text/ShortTextInput.vue"; +import RangeInput from "../../components/inputs/RangeInput.vue"; +import InputSeparator from "../../components/inputs/InputSeparator.vue"; +import SelectInput from "../../components/inputs/SelectInput.vue"; +import MultipleColorPicker from "../../components/inputs/colors/MultipleColorPicker.vue"; +import ReloadButton from "../../components/reload/ReloadButton.vue"; +import AutoReloadCheckbox from "../../components/reload/AutoReloadCheckbox.vue"; +</script> + +<script> +await loadFonts([ + "12px Bebas Neue", + "12px Roboto Condensed", + "bold 12px Roboto Condensed", +]); + +export default { + components: { + Canvas, + Navbar, + MainContainer, + ImageInput, + LongTextInput, + ShortTextInput, + RangeInput, + SelectInput, + InputSeparator, + MultipleColorPicker, + }, + data() { + const predefinedColors = { + base: { + name: "Základní barvy", + colors: { + background: COLORS.black, + highlight: COLORS.yellow1, + arrow: COLORS.yellow1, + baseText: COLORS.white, + highlightedText: COLORS.black, + contractedByText: COLORS.gray1, + }, + }, + }; + + return { + mainImage: null, + mainText: null, + personName: null, + personPosition: null, + contractedBy: DEFAULT_CONTRACTOR, + logoImage: null, + logoPosition: LOGO_POSITIONS.top_right, + logoOptions: generateLogoPositions(["top_right", "top_left"]), + gradientHeightMultiplier: 1, + colorLabels: { + background: "Pozadí", + highlight: "Zvýraznění", + arrow: "Šipka", + baseText: "Text", + highlightedText: "Zvýrazněný text", + }, + predefinedColors: predefinedColors, + colors: predefinedColors.base.colors, + predefinedLogoImages: generateDefaultLogos("defaultLight"), + autoRedraw: false, + }; + }, + async created() { + await loadCanvasStorage(this); + }, + methods: { + async reloadCanvasProperties() { + const canvasProperties = { + mainImage: this.mainImage, + mainText: this.mainText, + logoPosition: this.logoPosition, + personName: this.personName, + personPosition: this.personPosition, + contractedBy: this.contractedBy, + logoImage: this.logoImage, + gradientHeightMultiplier: this.gradientHeightMultiplier, + colors: this.colors, + }; + + if (canvasProperties.mainText) { + window.fileName = canvasProperties.mainText; + } + + await this.$refs.canvas.redraw(canvasProperties); + + delete canvasProperties.colors; + setCanvasStorage(canvasProperties); + }, + }, + mounted() { + this.$watch( + (vm) => [ + vm.mainImage, + vm.mainText, + vm.logoPosition, + vm.personName, + vm.personPosition, + vm.contractedBy, + vm.logoImage, + vm.gradientHeightMultiplier, + vm.colors, + ], + async (value) => { + if (this.autoRedraw) { + await this.reloadCanvasProperties(); + } + }, + { + immediate: true, + deep: true, + }, + ); + + this.$watch( + (vm) => [vm.autoRedraw], + async (value) => { + updateAutoRedrawStorage(this.autoRedraw); + + if (this.autoRedraw) { + await this.reloadCanvasProperties(); + } + }, + ); + }, +}; +</script> + +<template> + <header> + <Navbar :defaultTemplate="TEMPLATES.basic_photo_banner"></Navbar> + </header> + <main> + <MainContainer> + <template v-slot:left> + <Canvas + ref="canvas" + :redrawFunction="redraw" + width="1080" + height="1350" + /> + </template> + + <template v-slot:right> + <ReloadButton :parentRefs="$refs" @click="reloadCanvasProperties" /> + <AutoReloadCheckbox v-model="autoRedraw" /> + <ImageInput + name="Obrázek" + v-model="mainImage" + :important="true" + zIndex="10" + /> + <LongTextInput + name="Hlavní text" + v-model="mainText" + :important="true" + :highlightable="true" + zIndex="9" + /> + <ShortTextInput + name="Jméno osoby" + v-model="personName" + v-model:relatedModel="personPosition" + :predefinedValues="PEOPLE" + :important="true" + zIndex="8" + /> + <LongTextInput + ref="refPersonPosition" + name="Pozice osoby" + v-model="personPosition" + :important="false" + zIndex="7" + /> + + <InputSeparator /> + + <ImageInput + name="Obrázek loga" + v-model="logoImage" + :important="false" + :predefinedImages="predefinedLogoImages" + :mustSelectPredefinedImage="true" + :disableImageInput="true" + zIndex="7" + /> + + <SelectInput + name="Pozice loga" + :options="logoOptions" + v-model="logoPosition" + zIndex="6" + /> + + <RangeInput + name="Výška gradientu" + v-model="gradientHeightMultiplier" + min="0" + max="3" + /> + + <MultipleColorPicker + name="Barvy" + v-model="colors" + :important="false" + :colorLabels="colorLabels" + :predefinedColors="predefinedColors" + :defaultPredefinedColors="predefinedColors.base" + zIndex="5" + ></MultipleColorPicker> + + <ShortTextInput + name="Zadavatel a zpracovatel" + v-model="contractedBy" + :defaultValue="DEFAULT_CONTRACTOR" + :important="false" + zIndex="4" + /> + </template> + </MainContainer> + </main> +</template> + +<style> +@import "vue-select/dist/vue-select.css"; +</style> diff --git a/frontend/src/views/basic_photo_banner/canvas.js b/frontend/src/views/basic_photo_banner/canvas.js index 305a61e6..80788a89 100644 --- a/frontend/src/views/basic_photo_banner/canvas.js +++ b/frontend/src/views/basic_photo_banner/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/event_poster/canvas.js b/frontend/src/views/event_poster/canvas.js index 96259ebe..e3113dc9 100644 --- a/frontend/src/views/event_poster/canvas.js +++ b/frontend/src/views/event_poster/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/facebook_survey/canvas.js b/frontend/src/views/facebook_survey/canvas.js index 652c0026..12dbb51f 100644 --- a/frontend/src/views/facebook_survey/canvas.js +++ b/frontend/src/views/facebook_survey/canvas.js @@ -1,7 +1,7 @@ import alertifyjs from "alertifyjs"; import "alertifyjs/build/css/alertify.css"; -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/make_a_wish_banner/canvas.js b/frontend/src/views/make_a_wish_banner/canvas.js index 883243c9..39230366 100644 --- a/frontend/src/views/make_a_wish_banner/canvas.js +++ b/frontend/src/views/make_a_wish_banner/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, @@ -71,7 +71,10 @@ const redraw = async (canvas, options) => { if (options.mainText !== null) { /* BEGIN Background render */ - if (backgroundImage === null || options.colors.background.value != previousBackgroundImageColor.value) { + if ( + backgroundImage === null || + options.colors.background.value != previousBackgroundImageColor.value + ) { backgroundImage = new Image(); await new Promise((resolve) => { @@ -101,7 +104,6 @@ const redraw = async (canvas, options) => { /* END Background render */ - /* BEGIN Name text render */ if (options.personName !== null) { @@ -169,11 +171,17 @@ const redraw = async (canvas, options) => { const mainTextWidth = canvas.width - textMarginLeft - textMarginRight; let mainTextLeft = textMarginLeft; - + if (personNameText !== null) { mainTextLeft = Math.max( - personNameText.left + getSingleLineTextBoxWidth(options.personName, bottomTextSize, "Roboto Condensed") + 150, - mainTextLeft + personNameText.left + + getSingleLineTextBoxWidth( + options.personName, + bottomTextSize, + "Roboto Condensed", + ) + + 150, + mainTextLeft, ); } @@ -206,7 +214,13 @@ const redraw = async (canvas, options) => { canvas.add(mainTextBox); const mainTextBoxTop = - canvas.height - mainTextBox.height - mainTextMarginBottom + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.5 * mainTextLineHeight); + canvas.height - + mainTextBox.height - + mainTextMarginBottom + + mainTextSize * + (mainTextBox._textLines.length - 1) * + 0.5 * + mainTextLineHeight; mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom; @@ -216,7 +230,10 @@ const redraw = async (canvas, options) => { /* BEGIN Line render */ - if (lineImage === null || options.colors.background.value != previousBackgroundImageColor.value) { + if ( + lineImage === null || + options.colors.background.value != previousBackgroundImageColor.value + ) { lineImage = new Image(); await new Promise((resolve) => { diff --git a/frontend/src/views/make_a_wish_tour_social/canvas.js b/frontend/src/views/make_a_wish_tour_social/canvas.js index 32a5bb4c..9299de08 100644 --- a/frontend/src/views/make_a_wish_tour_social/canvas.js +++ b/frontend/src/views/make_a_wish_tour_social/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, @@ -43,7 +43,7 @@ const redraw = async (canvas, options) => { attendeesTextBox, dateTextBox, timeTextBox, - locationTextBox + locationTextBox, ], canvas, ); @@ -121,12 +121,11 @@ const redraw = async (canvas, options) => { const dateTextBoxTop = canvas.height - dateTextBox.height - dateTextMarginBottom; - dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; + dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; - const dateTextBoxLeft = - canvas.width - dateTextBox.width - textMarginRight; + const dateTextBoxLeft = canvas.width - dateTextBox.width - textMarginRight; - dateTextBox.left = dateTextBoxLeft; + dateTextBox.left = dateTextBoxLeft; canvas.renderAll(); @@ -170,8 +169,7 @@ const redraw = async (canvas, options) => { timeTextBox.top = timeTextBoxTop - highlightedData.paddingBottom; - const timeTextBoxLeft = - canvas.width - timeTextBox.width - textMarginRight; + const timeTextBoxLeft = canvas.width - timeTextBox.width - textMarginRight; timeTextBox.left = timeTextBoxLeft; @@ -213,14 +211,19 @@ const redraw = async (canvas, options) => { canvas.add(attendeesTextBox); const attendeesTextBoxTop = - canvas.height - attendeesTextBox.height - attendeesTextBoxMarginBottom + (attendeesTextSize * attendeesTextLineHeight * (attendeesTextBox.textLines.length - 1)); + canvas.height - + attendeesTextBox.height - + attendeesTextBoxMarginBottom + + attendeesTextSize * + attendeesTextLineHeight * + (attendeesTextBox.textLines.length - 1); attendeesTextBox.top = attendeesTextBoxTop - highlightedData.paddingBottom; const attendeesTextBoxLeft = canvas.width - attendeesTextBox.width - textMarginRight; - attendeesTextBox.left = attendeesTextBoxLeft; + attendeesTextBox.left = attendeesTextBoxLeft; canvas.renderAll(); @@ -230,7 +233,11 @@ const redraw = async (canvas, options) => { if (options.mainText !== null) { /* BEGIN Background render */ - if (backgroundImage === null || options.colors.background.value != previousBackgroundImageColor.value || !canvas.getObjects().includes(backgroundImage)) { + if ( + backgroundImage === null || + options.colors.background.value != previousBackgroundImageColor.value || + !canvas.getObjects().includes(backgroundImage) + ) { backgroundImage = new Image(); await new Promise((resolve) => { @@ -260,7 +267,6 @@ const redraw = async (canvas, options) => { /* END Background render */ - /* BEGIN Main text render */ const mainTextWidth = canvas.width - textMarginLeft - textMarginRight; @@ -294,12 +300,17 @@ const redraw = async (canvas, options) => { canvas.add(mainTextBox); const mainTextBoxTop = - canvas.height - mainTextBox.height - mainTextMarginBottom + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight); + canvas.height - + mainTextBox.height - + mainTextMarginBottom + + mainTextSize * + (mainTextBox._textLines.length - 1) * + 0.9 * + mainTextLineHeight; mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom; - const mainTextBoxLeft = - canvas.width - mainTextBox.width - textMarginRight; + const mainTextBoxLeft = canvas.width - mainTextBox.width - textMarginRight; mainTextBox.left = mainTextBoxLeft; @@ -309,9 +320,9 @@ const redraw = async (canvas, options) => { if (options.locationText !== null) { /* BEGIN Location text render */ - + const locationTextWidth = canvas.width - textMarginLeft - textMarginRight; - + const highlightedData = transformHighlightedText( options.locationText, locationTextSize, @@ -321,7 +332,7 @@ const redraw = async (canvas, options) => { options.colors.highlight.value, { padWhenDiacritics: false, invertHighlight: true }, ); - + locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, { width: canvas.width, left: 0, @@ -335,26 +346,34 @@ const redraw = async (canvas, options) => { highlightPadding: canvas.height * 0.003, zIndex: 20, }); - + checkTextBoxHeight(locationTextBox, 2); - + canvas.add(locationTextBox); - + canvas.renderAll(); - + const locationTextBoxTop = - canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1)) - + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight); - + canvas.height - + locationTextBox.height - + locationTextBoxMarginBottom + + locationTextSize * + locationTextLineHeight * + (locationTextBox.textLines.length - 1) + + mainTextSize * + (mainTextBox._textLines.length - 1) * + 0.9 * + mainTextLineHeight; + locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom; - + const locationTextBoxLeft = canvas.width - locationTextBox.width - textMarginRight; - + locationTextBox.left = locationTextBoxLeft; - + canvas.renderAll(); - + /* END Location text render */ } } @@ -444,10 +463,10 @@ const redraw = async (canvas, options) => { pointerDownEventAssigned = true; } - const colors = {...options.colors}; + const colors = { ...options.colors }; upEventFunction = (event) => { - redraw(canvas, {...options, colors: colors}); + redraw(canvas, { ...options, colors: colors }); }; document diff --git a/frontend/src/views/make_a_wish_tour_social_A2/canvas.js b/frontend/src/views/make_a_wish_tour_social_A2/canvas.js index 968d4909..41983aca 100644 --- a/frontend/src/views/make_a_wish_tour_social_A2/canvas.js +++ b/frontend/src/views/make_a_wish_tour_social_A2/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, @@ -43,7 +43,7 @@ const redraw = async (canvas, options) => { attendeesTextBox, dateTextBox, timeTextBox, - locationTextBox + locationTextBox, ], canvas, ); @@ -87,7 +87,7 @@ const redraw = async (canvas, options) => { if (options.dateText !== null) { /* BEGIN Date text render */ - const dateTextWidth = canvas.width * 5; // IDFK + const dateTextWidth = canvas.width * 5; // IDFK console.log(options); @@ -121,12 +121,11 @@ const redraw = async (canvas, options) => { const dateTextBoxTop = canvas.height - dateTextBox.height - dateTextMarginBottom; - dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; + dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; - const dateTextBoxLeft = - canvas.width - dateTextBox.width - textMarginRight; + const dateTextBoxLeft = canvas.width - dateTextBox.width - textMarginRight; - dateTextBox.left = dateTextBoxLeft; + dateTextBox.left = dateTextBoxLeft; canvas.renderAll(); @@ -170,8 +169,7 @@ const redraw = async (canvas, options) => { timeTextBox.top = timeTextBoxTop - highlightedData.paddingBottom; - const timeTextBoxLeft = - canvas.width - timeTextBox.width - textMarginRight; + const timeTextBoxLeft = canvas.width - timeTextBox.width - textMarginRight; timeTextBox.left = timeTextBoxLeft; @@ -213,14 +211,19 @@ const redraw = async (canvas, options) => { canvas.add(attendeesTextBox); const attendeesTextBoxTop = - canvas.height - attendeesTextBox.height - attendeesTextBoxMarginBottom + (attendeesTextSize * attendeesTextLineHeight * (attendeesTextBox.textLines.length - 1)); + canvas.height - + attendeesTextBox.height - + attendeesTextBoxMarginBottom + + attendeesTextSize * + attendeesTextLineHeight * + (attendeesTextBox.textLines.length - 1); attendeesTextBox.top = attendeesTextBoxTop - highlightedData.paddingBottom; const attendeesTextBoxLeft = canvas.width - attendeesTextBox.width - textMarginRight; - attendeesTextBox.left = attendeesTextBoxLeft; + attendeesTextBox.left = attendeesTextBoxLeft; canvas.renderAll(); @@ -230,7 +233,11 @@ const redraw = async (canvas, options) => { if (options.mainText !== null) { /* BEGIN Background render */ - if (backgroundImage === null || options.colors.background.value != previousBackgroundImageColor.value || !canvas.getObjects().includes(backgroundImage)) { + if ( + backgroundImage === null || + options.colors.background.value != previousBackgroundImageColor.value || + !canvas.getObjects().includes(backgroundImage) + ) { backgroundImage = new Image(); await new Promise((resolve) => { @@ -260,7 +267,6 @@ const redraw = async (canvas, options) => { /* END Background render */ - /* BEGIN Main text render */ const mainTextWidth = canvas.width - textMarginLeft - textMarginRight; @@ -316,14 +322,19 @@ const redraw = async (canvas, options) => { canvas.add(mainTextBox); } - + const mainTextBoxTop = - canvas.height - mainTextBox.height - mainTextMarginBottom + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight); + canvas.height - + mainTextBox.height - + mainTextMarginBottom + + mainTextSize * + (mainTextBox._textLines.length - 1) * + 0.9 * + mainTextLineHeight; mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom; - const mainTextBoxLeft = - canvas.width - mainTextBox.width - textMarginRight; + const mainTextBoxLeft = canvas.width - mainTextBox.width - textMarginRight; mainTextBox.left = mainTextBoxLeft; @@ -333,9 +344,9 @@ const redraw = async (canvas, options) => { if (options.locationText !== null) { /* BEGIN Location text render */ - + const locationTextWidth = canvas.width - textMarginLeft - textMarginRight; - + const highlightedData = transformHighlightedText( options.locationText, locationTextSize, @@ -345,7 +356,7 @@ const redraw = async (canvas, options) => { options.colors.highlight.value, { padWhenDiacritics: false, invertHighlight: true }, ); - + locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, { width: canvas.width, left: 0, @@ -359,26 +370,34 @@ const redraw = async (canvas, options) => { highlightPadding: canvas.height * 0.003, zIndex: 20, }); - + checkTextBoxHeight(locationTextBox, 2); - + canvas.add(locationTextBox); - + canvas.renderAll(); - + const locationTextBoxTop = - canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1)) - + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight); + canvas.height - + locationTextBox.height - + locationTextBoxMarginBottom + + locationTextSize * + locationTextLineHeight * + (locationTextBox.textLines.length - 1) + + mainTextSize * + (mainTextBox._textLines.length - 1) * + 0.9 * + mainTextLineHeight; locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom; - + const locationTextBoxLeft = canvas.width - locationTextBox.width - textMarginRight; - + locationTextBox.left = locationTextBoxLeft; - + canvas.renderAll(); - + /* END Location text render */ } } @@ -468,10 +487,10 @@ const redraw = async (canvas, options) => { pointerDownEventAssigned = true; } - const colors = {...options.colors}; + const colors = { ...options.colors }; upEventFunction = (event) => { - redraw(canvas, {...options, colors: colors}); + redraw(canvas, { ...options, colors: colors }); }; document diff --git a/frontend/src/views/make_a_wish_tour_social_wide/canvas.js b/frontend/src/views/make_a_wish_tour_social_wide/canvas.js index 98fe9b0f..2548ba9d 100644 --- a/frontend/src/views/make_a_wish_tour_social_wide/canvas.js +++ b/frontend/src/views/make_a_wish_tour_social_wide/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, @@ -43,7 +43,7 @@ const redraw = async (canvas, options) => { attendeesTextBox, dateTextBox, timeTextBox, - locationTextBox + locationTextBox, ], canvas, ); @@ -71,7 +71,7 @@ const redraw = async (canvas, options) => { const locationTextBoxMarginBottom = Math.ceil(canvas.height * 0.43); const attendeesTextBoxMarginBottom = Math.ceil(canvas.height * 0.11); - const mainTextSize = Math.ceil(canvas.height * 0.210); + const mainTextSize = Math.ceil(canvas.height * 0.21); const mainTextLineHeight = 1; const dateTextSize = Math.ceil(canvas.height * 0.062); @@ -89,7 +89,7 @@ const redraw = async (canvas, options) => { if (options.dateText !== null) { /* BEGIN Date text render */ - const dateTextWidth = canvas.width * 5; // IDFK + const dateTextWidth = canvas.width * 5; // IDFK console.log(options); @@ -123,12 +123,12 @@ const redraw = async (canvas, options) => { const dateTextBoxTop = canvas.height - dateTextBox.height - dateTextMarginBottom; - dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; + dateTextBox.top = dateTextBoxTop - highlightedData.paddingBottom; const dateTextBoxLeft = canvas.width - dateTextBox.width - topTextMarginRight; - dateTextBox.left = dateTextBoxLeft; + dateTextBox.left = dateTextBoxLeft; canvas.renderAll(); @@ -218,7 +218,12 @@ const redraw = async (canvas, options) => { canvas.renderAll(); const locationTextBoxTop = - canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1)); + canvas.height - + locationTextBox.height - + locationTextBoxMarginBottom + + locationTextSize * + locationTextLineHeight * + (locationTextBox.textLines.length - 1); locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom; @@ -265,14 +270,19 @@ const redraw = async (canvas, options) => { canvas.add(attendeesTextBox); const attendeesTextBoxTop = - canvas.height - attendeesTextBox.height - attendeesTextBoxMarginBottom + (attendeesTextSize * attendeesTextLineHeight * (attendeesTextBox.textLines.length - 1)); + canvas.height - + attendeesTextBox.height - + attendeesTextBoxMarginBottom + + attendeesTextSize * + attendeesTextLineHeight * + (attendeesTextBox.textLines.length - 1); attendeesTextBox.top = attendeesTextBoxTop - highlightedData.paddingBottom; const attendeesTextBoxLeft = canvas.width - attendeesTextBox.width - textMarginRight; - attendeesTextBox.left = attendeesTextBoxLeft; + attendeesTextBox.left = attendeesTextBoxLeft; canvas.renderAll(); @@ -282,7 +292,11 @@ const redraw = async (canvas, options) => { if (options.mainText !== null) { /* BEGIN Background render */ - if (backgroundImage === null || options.colors.background.value != previousBackgroundImageColor.value || !canvas.getObjects().includes(backgroundImage)) { + if ( + backgroundImage === null || + options.colors.background.value != previousBackgroundImageColor.value || + !canvas.getObjects().includes(backgroundImage) + ) { backgroundImage = new Image(); await new Promise((resolve) => { @@ -312,7 +326,6 @@ const redraw = async (canvas, options) => { /* END Background render */ - /* BEGIN Main text render */ const mainTextWidth = canvas.width - textMarginLeft - textMarginRight; @@ -350,8 +363,7 @@ const redraw = async (canvas, options) => { mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom; - const mainTextBoxLeft = - canvas.width - mainTextBox.width - textMarginRight; + const mainTextBoxLeft = canvas.width - mainTextBox.width - textMarginRight; mainTextBox.left = mainTextBoxLeft; @@ -445,10 +457,10 @@ const redraw = async (canvas, options) => { pointerDownEventAssigned = true; } - const colors = {...options.colors}; + const colors = { ...options.colors }; upEventFunction = (event) => { - redraw(canvas, {...options, colors: colors}); + redraw(canvas, { ...options, colors: colors }); }; document diff --git a/frontend/src/views/nakopneme_basic_photo_banner/NakopnemeBasicPhotoBanner.vue b/frontend/src/views/nakopneme_basic_photo_banner/NakopnemeBasicPhotoBanner.vue new file mode 100644 index 00000000..c6a9a684 --- /dev/null +++ b/frontend/src/views/nakopneme_basic_photo_banner/NakopnemeBasicPhotoBanner.vue @@ -0,0 +1,254 @@ +<script setup> +import { watch, ref } from "vue"; + +import COLORS from "../../colors"; +import PEOPLE from "../../people"; +import TEMPLATES from "../../templates"; +import DEFAULT_CONTRACTOR from "../../contractors"; +import { + generateDefaultBadges, + LOGO_POSITIONS, + generateLogoPositions, +} from "../../logos"; +import { + loadFonts, + loadCanvasStorage, + setCanvasStorage, + updateAutoRedrawStorage, +} from "../../utils"; + +import Canvas from "../../components/canvas/Canvas.vue"; +import redraw from "./canvas"; + +import Navbar from "../../components/Navbar.vue"; +import MainContainer from "../../components/MainContainer.vue"; +import ImageInput from "../../components/inputs/ImageInput.vue"; +import LongTextInput from "../../components/inputs/text/LongTextInput.vue"; +import ShortTextInput from "../../components/inputs/text/ShortTextInput.vue"; +import RangeInput from "../../components/inputs/RangeInput.vue"; +import InputSeparator from "../../components/inputs/InputSeparator.vue"; +import SelectInput from "../../components/inputs/SelectInput.vue"; +import MultipleColorPicker from "../../components/inputs/colors/MultipleColorPicker.vue"; +import ReloadButton from "../../components/reload/ReloadButton.vue"; +import AutoReloadCheckbox from "../../components/reload/AutoReloadCheckbox.vue"; +</script> + +<script> +await loadFonts([ + "12px Bebas Neue", + "12px Roboto Condensed", + "bold 12px Roboto Condensed", +]); + +export default { + components: { + Canvas, + Navbar, + MainContainer, + ImageInput, + LongTextInput, + ShortTextInput, + RangeInput, + SelectInput, + InputSeparator, + MultipleColorPicker, + }, + data() { + const predefinedColors = { + base: { + name: "Základní barvy", + colors: { + background: COLORS.black, + highlight: COLORS.yellow1, + baseText: COLORS.white, + highlightedText: COLORS.black, + contractedByText: COLORS.gray1, + }, + }, + }; + + return { + mainImage: null, + mainText: null, + personName: null, + personPosition: null, + contractedBy: DEFAULT_CONTRACTOR, + logoImage: null, + logoPosition: LOGO_POSITIONS.top_right, + logoOptions: generateLogoPositions(["top_right", "top_left"]), + gradientHeightMultiplier: 1, + colorLabels: { + background: "Pozadí", + highlight: "Zvýraznění", + baseText: "Text", + highlightedText: "Zvýrazněný text", + }, + predefinedColors: predefinedColors, + colors: predefinedColors.base.colors, + predefinedBadgeImages: generateDefaultBadges("defaultDark"), + autoRedraw: false, + }; + }, + async created() { + await loadCanvasStorage(this); + }, + methods: { + async reloadCanvasProperties() { + const canvasProperties = { + mainImage: this.mainImage, + mainText: this.mainText, + logoPosition: this.logoPosition, + personName: this.personName, + personPosition: this.personPosition, + contractedBy: this.contractedBy, + logoImage: this.logoImage, + gradientHeightMultiplier: this.gradientHeightMultiplier, + colors: this.colors, + }; + + if (canvasProperties.mainText) { + window.fileName = canvasProperties.mainText; + } + + await this.$refs.canvas.redraw(canvasProperties); + + delete canvasProperties.colors; + setCanvasStorage(canvasProperties); + }, + }, + mounted() { + this.$watch( + (vm) => [ + vm.mainImage, + vm.mainText, + vm.logoPosition, + vm.personName, + vm.personPosition, + vm.contractedBy, + vm.logoImage, + vm.gradientHeightMultiplier, + vm.colors, + ], + async (value) => { + if (this.autoRedraw) { + await this.reloadCanvasProperties(); + } + }, + { + immediate: true, + deep: true, + }, + ); + + this.$watch( + (vm) => [vm.autoRedraw], + async (value) => { + updateAutoRedrawStorage(this.autoRedraw); + + if (this.autoRedraw) { + await this.reloadCanvasProperties(); + } + }, + ); + }, +}; +</script> + +<template> + <header> + <Navbar :defaultTemplate="TEMPLATES.basic_photo_banner"></Navbar> + </header> + <main> + <MainContainer> + <template v-slot:left> + <Canvas + ref="canvas" + :redrawFunction="redraw" + width="1080" + height="1350" + /> + </template> + + <template v-slot:right> + <ReloadButton :parentRefs="$refs" @click="reloadCanvasProperties" /> + <AutoReloadCheckbox v-model="autoRedraw" /> + <ImageInput + name="Obrázek" + v-model="mainImage" + :important="true" + zIndex="10" + /> + <LongTextInput + name="Hlavní text" + v-model="mainText" + :important="true" + :highlightable="true" + zIndex="9" + /> + <ShortTextInput + name="Jméno osoby" + v-model="personName" + v-model:relatedModel="personPosition" + :predefinedValues="PEOPLE" + :important="true" + zIndex="8" + /> + <LongTextInput + ref="refPersonPosition" + name="Pozice osoby" + v-model="personPosition" + :important="false" + zIndex="7" + /> + + <InputSeparator /> + + <ImageInput + name="Obrázek loga" + v-model="logoImage" + :important="false" + :predefinedImages="predefinedBadgeImages" + :mustSelectPredefinedImage="true" + :disableImageInput="true" + zIndex="7" + /> + + <SelectInput + name="Pozice loga" + :options="logoOptions" + v-model="logoPosition" + zIndex="6" + /> + + <RangeInput + name="Výška gradientu" + v-model="gradientHeightMultiplier" + min="0" + max="3" + /> + + <MultipleColorPicker + name="Barvy" + v-model="colors" + :important="false" + :colorLabels="colorLabels" + :predefinedColors="predefinedColors" + :defaultPredefinedColors="predefinedColors.base" + zIndex="5" + ></MultipleColorPicker> + + <ShortTextInput + name="Zadavatel a zpracovatel" + v-model="contractedBy" + :defaultValue="DEFAULT_CONTRACTOR" + :important="false" + zIndex="4" + /> + </template> + </MainContainer> + </main> +</template> + +<style> +@import "vue-select/dist/vue-select.css"; +</style> diff --git a/frontend/src/views/nakopneme_basic_photo_banner/canvas.js b/frontend/src/views/nakopneme_basic_photo_banner/canvas.js new file mode 100644 index 00000000..c0703dcc --- /dev/null +++ b/frontend/src/views/nakopneme_basic_photo_banner/canvas.js @@ -0,0 +1,359 @@ +import * as fabric from "fabric"; +import { + clearObjects, + sortObjects, + transformHighlightedText, + checkTextBoxHeight, + getSingleLineTextBoxWidth, +} from "../../components/canvas/utils"; +import { PaddedHighlightingTextbox } from "../../components/canvas/textbox"; +import leftQuoteImage from '../../assets/template/nakopneme_basic_photo_banner/nakopneme_quote_left.png'; +import rightQuoteImage from '../../assets/template/nakopneme_basic_photo_banner/nakopneme_quote_right.png'; + +let mainTextBox = null; +let mainTextBoxBackground = null; + +let personNameText = null; +let personInfoSeparator = null; +let personPositionText = null; + +let mainImage = null; +let logoImage = null; + +let contractedByTextbox = null; + +let mainImageSource = null; +let previousLogoPosition = null; + +let leftQuote = null; +let rightQuote = null; + +const redraw = async (canvas, options) => { + canvas.controlsAboveOverlay = true; + + clearObjects( + [ + mainTextBox, + mainTextBoxBackground, + personNameText, + personInfoSeparator, + personPositionText, + contractedByTextbox, + leftQuote, + rightQuote, + ], + canvas, + ); + + canvas.preserveObjectStacking = true; + + const textMarginLeft = Math.ceil(canvas.width * 0.14); + const textMarginRight = Math.ceil(canvas.width * 0.075); + + let mainTextMarginBottom = Math.ceil(canvas.height * 0.06); + const mainTextBackgroundMarginTop = Math.ceil(canvas.height * 0.1); + const mainTextSize = Math.ceil(canvas.height * 0.0725); + const mainTextHeightLimit = Math.ceil(mainTextSize * 3.3); + const mainTextLineHeight = 0.9; + + const bottomTextSize = Math.ceil(canvas.height * 0.055); + const nameTextMarginBottom = Math.ceil(canvas.height * 0.065); + const positionTextSideGap = Math.ceil(canvas.width * 0.01); + const positionTextSeparatorWidth = Math.ceil(canvas.width * 0.0035); + const positionTextMaxWidth = Math.ceil(canvas.width * 0.4); + + const contractedByTextSize = Math.ceil(canvas.height * 0.02); + const contractedByTextMaxWidth = Math.ceil(canvas.width * 0.9); + const contractedByTextSidesMargin = Math.ceil(canvas.width * 0.03); + + const logoWidth = Math.ceil(canvas.width * 0.13); + const logoSideMargin = Math.ceil(canvas.width * 0.07); + + if (options.mainText !== null) { + /* BEGIN Main text render */ + + const mainText = ` ${options.mainText}`; + const mainTextWidth = canvas.width - textMarginLeft - textMarginRight; + + const highlightedData = transformHighlightedText( + mainText, + mainTextSize, + mainTextWidth, + "Bebas Neue", + options.colors.highlight.value, + options.colors.highlightedText.value, + { padWhenDiacritics: true, skipWhitespaceNormalization: true }, + ); + + mainTextBox = new PaddedHighlightingTextbox(highlightedData.text, { + width: canvas.width, + left: textMarginLeft, + textAlign: "left", + fontFamily: "Bebas Neue", + fontSize: mainTextSize, + lineHeight: mainTextLineHeight, + fill: options.colors.baseText.value, + styles: highlightedData.styles, + selectable: false, + highlightPadding: canvas.height * 0.003, + zIndex: 10, + }); + + checkTextBoxHeight(mainTextBox, 4); + + canvas.add(mainTextBox); + + const mainTextBoxTop = + canvas.height - mainTextBox.height - mainTextMarginBottom; + + mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom; + + canvas.renderAll(); + + /* END Main text render */ + + /* BEGIN Quotes render */ + + // Left quote + leftQuote = new Image(); + + const imageLoadPromiseL = new Promise((resolve) => { + leftQuote.onload = () => { + resolve(); + }; + + leftQuote.src = leftQuoteImage; + }); + await imageLoadPromiseL; + + leftQuote = new fabric.Image(leftQuote, { + left: 157, + top: mainTextBox.top + 17, + zIndex: 10, + selectable: false, + }); + + canvas.add(leftQuote); + + // Right quote + + rightQuote = new Image(); + + const imageLoadPromiseR = new Promise((resolve) => { + rightQuote.onload = () => { + resolve(); + }; + + rightQuote.src = rightQuoteImage; + }); + await imageLoadPromiseR; + + rightQuote = new fabric.Image(rightQuote, { + left: getSingleLineTextBoxWidth( + mainTextBox.textLines[mainTextBox.textLines.length - 1], + mainTextSize, + "Bebas Neue" + ) + ( + (mainTextBox.textLines.length == 1) ? + 260 : 170 + ), + top: mainTextBox.top + mainTextBox.height - mainTextSize + 6, + zIndex: 20, + selectable: false, + }); + + canvas.add(rightQuote); + + /* END Quotes render */ + + /* BEGIN Name text render */ + + if (options.personName !== null) { + let styles = { + 0: {}, + }; + + for (let position = 0; position < options.personName.length; position++) { + styles[0][position] = { + fontStyle: "italic bold", + }; + } + + personNameText = new fabric.Text(options.personName, { + left: textMarginLeft, + top: mainTextBox.top - nameTextMarginBottom, + fontFamily: "Roboto Condensed", + fontSize: bottomTextSize, + styles: styles, + selectable: false, + zIndex: 10, + }); + + personNameText.set('fill', new fabric.Gradient({ + type: 'linear', + coords: { + x1: 0, + y1: 0, + x2: canvas.width * 0.3, + y2: 0 + }, + colorStops: [ + { offset: 0, color: '#CF7BCC' }, + { offset: 1, color: '#FDC801' } + ] + })); + + canvas.add(personNameText); + } + + /* END Name text render */ + + /* BEGIN Main text background render */ + + const backgroundHeight = + canvas.height - mainTextBoxTop + mainTextBackgroundMarginTop; + + mainTextBoxBackground = new fabric.Rect({ + width: canvas.width + 30, // FIXME: Whhhhyyyyyy???? + height: backgroundHeight * options.gradientHeightMultiplier, + left: -20, + top: + mainTextBoxTop - + mainTextBackgroundMarginTop - + backgroundHeight * (options.gradientHeightMultiplier - 1), + fill: new fabric.Gradient({ + type: "linear", + gradientUnits: "pixels", + coords: { + x1: 0, + y1: 0, + x2: 0, + y2: backgroundHeight * options.gradientHeightMultiplier, + }, + colorStops: [ + { + offset: 1, + color: options.colors.background.value, + }, + { + offset: 0.2, + color: `${options.colors.background.value}00`, + }, + ], + }), + selectable: false, + zIndex: 9, + }); + + canvas.add(mainTextBoxBackground); + + /* END Main text background render */ + } + + /* BEGIN Logo render */ + + // A logo is provided, and it either hasn't been rendered yet or is a new one. + const createNewLogo = + (options.logoImage !== null && + (logoImage === null || + (options.logoImage !== null && + options.logoImage !== logoImage._element))) || + previousLogoPosition != options.logoPosition.id; + + previousLogoPosition = options.logoPosition.id; + + if (createNewLogo) { + canvas.remove(logoImage); + + logoImage = new fabric.Image(options.logoImage, { selectable: false }); + logoImage.scaleToWidth(logoWidth); + + if (options.logoPosition.id == "top-right") { + logoImage.set({ + left: canvas.width - logoWidth - logoSideMargin, + top: logoSideMargin, + zIndex: 11, + }); + } else { + logoImage.set({ + left: logoSideMargin, + top: logoSideMargin, + zIndex: 11, + }); + } + + canvas.add(logoImage); + } + + /* END Logo render */ + + /* BEGIN Contracted by render */ + + if (options.contractedBy !== null) { + contractedByTextbox = new fabric.Textbox(options.contractedBy, { + left: + canvas.width - contractedByTextMaxWidth - contractedByTextSidesMargin, + top: canvas.height - contractedByTextSidesMargin - contractedByTextSize, + width: contractedByTextMaxWidth, + fontFamily: "Roboto Condensed", + fontSize: contractedByTextSize, + textAlign: "right", + fill: options.colors.contractedByText.value, + selectable: false, + zIndex: 10, + }); + + checkTextBoxHeight(contractedByTextbox, 1); + + canvas.add(contractedByTextbox); + } + + /* END Contracted by render */ + + /* BEGIN Main image render */ + + if ( + options.mainImage !== null && + (!canvas.contains(mainImage) || + mainImage === null || + options.mainImage.src !== mainImageSource) + ) { + if (mainImage !== null) { + canvas.remove(mainImage); + } + + mainImage = new fabric.Image(options.mainImage, { + left: 0, + top: 0, + zIndex: 0, + }); + + mainImage.setControlsVisibility({ + // corners (uniform scale) + tl: true, tr: true, bl: true, br: true, + // mids (scale X/Y independently) + ml: true, mr: true, mt: true, mb: true, + // rotation + mtr: false, + }); + + + if (mainImage.width >= mainImage.height) { + mainImage.scaleToHeight(canvas.height); + } else { + mainImage.scaleToWidth(canvas.width); + } + + canvas.add(mainImage); + mainImageSource = options.mainImage.src; + // canvas.centerObject(mainImage) + } else if (mainImage !== null && options.mainImage === null) { + canvas.remove(mainImage); + } + + /* END Main image render */ + + sortObjects(canvas); +}; + +export default redraw; diff --git a/frontend/src/views/newspaper_quote_bottom/canvas.js b/frontend/src/views/newspaper_quote_bottom/canvas.js index 7cd01cf7..b4e55d26 100644 --- a/frontend/src/views/newspaper_quote_bottom/canvas.js +++ b/frontend/src/views/newspaper_quote_bottom/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/newspaper_quote_middle/canvas.js b/frontend/src/views/newspaper_quote_middle/canvas.js index c33bf9d2..521c015f 100644 --- a/frontend/src/views/newspaper_quote_middle/canvas.js +++ b/frontend/src/views/newspaper_quote_middle/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/people_banner_with_custom_text/canvas.js b/frontend/src/views/people_banner_with_custom_text/canvas.js index 1b84b7dc..f9b3946e 100644 --- a/frontend/src/views/people_banner_with_custom_text/canvas.js +++ b/frontend/src/views/people_banner_with_custom_text/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/people_banner_with_predefined_text/canvas.js b/frontend/src/views/people_banner_with_predefined_text/canvas.js index 076178e6..dda2677d 100644 --- a/frontend/src/views/people_banner_with_predefined_text/canvas.js +++ b/frontend/src/views/people_banner_with_predefined_text/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/poster/canvas.js b/frontend/src/views/poster/canvas.js index e92293e6..3de73499 100644 --- a/frontend/src/views/poster/canvas.js +++ b/frontend/src/views/poster/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/reel/canvas.js b/frontend/src/views/reel/canvas.js index 6aabd092..9b5941eb 100644 --- a/frontend/src/views/reel/canvas.js +++ b/frontend/src/views/reel/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/regional_success/canvas.js b/frontend/src/views/regional_success/canvas.js index 6ffb4e91..2c8a6165 100644 --- a/frontend/src/views/regional_success/canvas.js +++ b/frontend/src/views/regional_success/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/right_event/canvas.js b/frontend/src/views/right_event/canvas.js index d6c6998e..6a6125fb 100644 --- a/frontend/src/views/right_event/canvas.js +++ b/frontend/src/views/right_event/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/right_person_event/canvas.js b/frontend/src/views/right_person_event/canvas.js index 0a6704f3..6b3dcdda 100644 --- a/frontend/src/views/right_person_event/canvas.js +++ b/frontend/src/views/right_person_event/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/social_cover_large_text/canvas.js b/frontend/src/views/social_cover_large_text/canvas.js index cd7812ae..eee3fdb7 100644 --- a/frontend/src/views/social_cover_large_text/canvas.js +++ b/frontend/src/views/social_cover_large_text/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/text_banner/canvas.js b/frontend/src/views/text_banner/canvas.js index 442785f6..bbfa1668 100644 --- a/frontend/src/views/text_banner/canvas.js +++ b/frontend/src/views/text_banner/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/twitter_banner/canvas.js b/frontend/src/views/twitter_banner/canvas.js index 56ce082d..7eb999a3 100644 --- a/frontend/src/views/twitter_banner/canvas.js +++ b/frontend/src/views/twitter_banner/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, diff --git a/frontend/src/views/urgent_text_banner/canvas.js b/frontend/src/views/urgent_text_banner/canvas.js index 6fa99763..1f0d19d6 100644 --- a/frontend/src/views/urgent_text_banner/canvas.js +++ b/frontend/src/views/urgent_text_banner/canvas.js @@ -1,4 +1,4 @@ -import { fabric } from "fabric"; +import * as fabric from "fabric"; import { clearObjects, sortObjects, -- GitLab