From 6723bb0de146fbd02ed1fb2102a58c6b8440f841 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:15:10 -0700 Subject: [PATCH 01/32] Added ts component dependencies and configs - added vue-property-decorator package - added vuex-class package --- .swcrc | 2 +- package-lock.json | 49 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 ++ tsconfig.json | 4 ++++ 4 files changed, 56 insertions(+), 1 deletion(-) diff --git a/.swcrc b/.swcrc index 8c6e070..24717ba 100644 --- a/.swcrc +++ b/.swcrc @@ -3,7 +3,7 @@ "parser": { "syntax": "typescript", "tsx": false, - "decorators": false, + "decorators": true, "dynamicImport": true }, "transform": null, diff --git a/package-lock.json b/package-lock.json index 3c38bdd..7784eba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,6 +50,7 @@ "vue-i18n": "^8.26.7", "vue-loader": "^15.9.8", "vue-markdown-loader": "^2.5.0", + "vue-property-decorator": "^9.1.2", "vue-router": "^3.5.3", "vue-style-loader": "^4.1.3", "vue-svg-loader": "^0.16.0", @@ -57,6 +58,7 @@ "vuetify": "^2.6.1", "vuetify-loader": "^1.7.3", "vuex": "^3.6.2", + "vuex-class": "^0.3.2", "webpack": "^5.64.4", "webpack-bundle-analyzer": "^4.5.0", "webpack-dev-server": "^4.6.0", @@ -7229,6 +7231,15 @@ "vue": "^2.6.6" } }, + "node_modules/vue-class-component": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-7.2.6.tgz", + "integrity": "sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w==", + "peer": true, + "peerDependencies": { + "vue": "^2.0.0" + } + }, "node_modules/vue-fragment": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.5.2.tgz", @@ -7285,6 +7296,15 @@ "vue-loader": ">=10.0.0" } }, + "node_modules/vue-property-decorator": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-9.1.2.tgz", + "integrity": "sha512-xYA8MkZynPBGd/w5QFJ2d/NM0z/YeegMqYTphy7NJQXbZcuU6FC6AOdUAcy4SXP+YnkerC6AfH+ldg7PDk9ESQ==", + "peerDependencies": { + "vue": "*", + "vue-class-component": "*" + } + }, "node_modules/vue-router": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz", @@ -7384,6 +7404,16 @@ "vue": "^2.0.0" } }, + "node_modules/vuex-class": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/vuex-class/-/vuex-class-0.3.2.tgz", + "integrity": "sha512-m0w7/FMsNcwJgunJeM+wcNaHzK2KX1K1rw2WUQf7Q16ndXHo7pflRyOV/E8795JO/7fstyjH3EgqBI4h4n4qXQ==", + "peerDependencies": { + "vue": "^2.5.0", + "vue-class-component": "^6.0.0 || ^7.0.0", + "vuex": "^3.0.0" + } + }, "node_modules/watchpack": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", @@ -13547,6 +13577,13 @@ "easy-bem": "^1.0.2" } }, + "vue-class-component": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-7.2.6.tgz", + "integrity": "sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w==", + "peer": true, + "requires": {} + }, "vue-fragment": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.5.2.tgz", @@ -13586,6 +13623,12 @@ "markdown-it": "^8.4.2" } }, + "vue-property-decorator": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-9.1.2.tgz", + "integrity": "sha512-xYA8MkZynPBGd/w5QFJ2d/NM0z/YeegMqYTphy7NJQXbZcuU6FC6AOdUAcy4SXP+YnkerC6AfH+ldg7PDk9ESQ==", + "requires": {} + }, "vue-router": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz", @@ -13662,6 +13705,12 @@ "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==", "requires": {} }, + "vuex-class": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/vuex-class/-/vuex-class-0.3.2.tgz", + "integrity": "sha512-m0w7/FMsNcwJgunJeM+wcNaHzK2KX1K1rw2WUQf7Q16ndXHo7pflRyOV/E8795JO/7fstyjH3EgqBI4h4n4qXQ==", + "requires": {} + }, "watchpack": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", diff --git a/package.json b/package.json index 50e5a53..aef18ac 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "vue-i18n": "^8.26.7", "vue-loader": "^15.9.8", "vue-markdown-loader": "^2.5.0", + "vue-property-decorator": "^9.1.2", "vue-router": "^3.5.3", "vue-style-loader": "^4.1.3", "vue-svg-loader": "^0.16.0", @@ -67,6 +68,7 @@ "vuetify": "^2.6.1", "vuetify-loader": "^1.7.3", "vuex": "^3.6.2", + "vuex-class": "^0.3.2", "webpack": "^5.64.4", "webpack-bundle-analyzer": "^4.5.0", "webpack-dev-server": "^4.6.0", diff --git a/tsconfig.json b/tsconfig.json index 5e7fecd..809eafc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,7 @@ "target": "ES5", "module": "ESNext", "moduleResolution": "node", + "experimentalDecorators": true, "strict": true, "allowJs": true, "allowSyntheticDefaultImports": true, @@ -24,5 +25,8 @@ "DOM", "ESNext", ] + }, + "vueCompilerOptions": { + "target": 2, } } \ No newline at end of file From 616a86cb04927aa73edefcb88017c5614100648d Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:23:30 -0700 Subject: [PATCH 02/32] Converted PatternItems components to ts --- src/components/PatternItems/Grid.vue | 259 ++++++++++-------- src/components/PatternItems/GridItem.vue | 48 ++-- .../PatternItems/GridItemSelector.vue | 26 +- src/components/PatternItems/MosaicPreview.vue | 142 +++++----- src/components/PatternItems/SinglePreview.vue | 36 +-- 5 files changed, 271 insertions(+), 240 deletions(-) diff --git a/src/components/PatternItems/Grid.vue b/src/components/PatternItems/Grid.vue index 3823185..1a8565e 100644 --- a/src/components/PatternItems/Grid.vue +++ b/src/components/PatternItems/Grid.vue @@ -21,7 +21,7 @@ - diff --git a/src/components/PatternItems/GridItem.vue b/src/components/PatternItems/GridItem.vue index 39e48d6..bd0a60e 100644 --- a/src/components/PatternItems/GridItem.vue +++ b/src/components/PatternItems/GridItem.vue @@ -25,43 +25,45 @@ - diff --git a/src/components/PatternItems/GridItemSelector.vue b/src/components/PatternItems/GridItemSelector.vue index dbc1c39..3d98e3e 100644 --- a/src/components/PatternItems/GridItemSelector.vue +++ b/src/components/PatternItems/GridItemSelector.vue @@ -14,25 +14,23 @@ - diff --git a/src/components/PatternItems/MosaicPreview.vue b/src/components/PatternItems/MosaicPreview.vue index 53bb99e..a8af156 100644 --- a/src/components/PatternItems/MosaicPreview.vue +++ b/src/components/PatternItems/MosaicPreview.vue @@ -21,85 +21,91 @@ - diff --git a/src/components/PatternItems/SinglePreview.vue b/src/components/PatternItems/SinglePreview.vue index b451e46..982df05 100644 --- a/src/components/PatternItems/SinglePreview.vue +++ b/src/components/PatternItems/SinglePreview.vue @@ -5,30 +5,30 @@ /> - From 8cb13bd022e637ac4d9e983320bbc620ea2d352d Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:23:57 -0700 Subject: [PATCH 03/32] Converted icon components to ts --- src/components/icons/IconColorBlob.vue | 18 ++++++++++-------- src/components/icons/IconStamp.vue | 18 +++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/components/icons/IconColorBlob.vue b/src/components/icons/IconColorBlob.vue index f0d959f..2207459 100644 --- a/src/components/icons/IconColorBlob.vue +++ b/src/components/icons/IconColorBlob.vue @@ -25,14 +25,16 @@ - diff --git a/src/components/icons/IconStamp.vue b/src/components/icons/IconStamp.vue index 46847a0..dd7562a 100644 --- a/src/components/icons/IconStamp.vue +++ b/src/components/icons/IconStamp.vue @@ -111,15 +111,15 @@ - From fa00a3bedcf50a91134fe40afc9c2c0140572c87 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:25:10 -0700 Subject: [PATCH 04/32] Converted modal components to ts --- src/components/modals/CancelButton.vue | 14 +- src/components/modals/Publish.vue | 201 ++++++++++++++----------- 2 files changed, 117 insertions(+), 98 deletions(-) diff --git a/src/components/modals/CancelButton.vue b/src/components/modals/CancelButton.vue index 1f7129c..cc4b675 100644 --- a/src/components/modals/CancelButton.vue +++ b/src/components/modals/CancelButton.vue @@ -12,7 +12,8 @@ - diff --git a/src/components/modals/Publish.vue b/src/components/modals/Publish.vue index f765da2..24da2a1 100644 --- a/src/components/modals/Publish.vue +++ b/src/components/modals/Publish.vue @@ -109,7 +109,8 @@ - From 57cbf7b8e2120efc5a7c92c7dd026784594e9a81 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:25:26 -0700 Subject: [PATCH 05/32] Converted positioned components to ts --- src/components/positioned/Banner.vue | 6 +- .../positioned/NavigationButton.vue | 13 ++- src/components/positioned/NavigationMenu.vue | 85 +++++++++---------- .../positioned/PatternContainer.vue | 61 ++++++------- src/components/positioned/UtilityBar.vue | 42 +++++---- 5 files changed, 98 insertions(+), 109 deletions(-) diff --git a/src/components/positioned/Banner.vue b/src/components/positioned/Banner.vue index 21a3ddb..e039138 100644 --- a/src/components/positioned/Banner.vue +++ b/src/components/positioned/Banner.vue @@ -8,13 +8,15 @@ diff --git a/src/components/positioned/NavigationButton.vue b/src/components/positioned/NavigationButton.vue index 29d7810..6f19e94 100644 --- a/src/components/positioned/NavigationButton.vue +++ b/src/components/positioned/NavigationButton.vue @@ -20,22 +20,21 @@ - diff --git a/src/components/positioned/NavigationMenu.vue b/src/components/positioned/NavigationMenu.vue index 4f9c59f..f5c49e1 100644 --- a/src/components/positioned/NavigationMenu.vue +++ b/src/components/positioned/NavigationMenu.vue @@ -111,14 +111,14 @@ - diff --git a/src/components/positioned/PatternContainer.vue b/src/components/positioned/PatternContainer.vue index 2108740..6712caa 100644 --- a/src/components/positioned/PatternContainer.vue +++ b/src/components/positioned/PatternContainer.vue @@ -91,7 +91,8 @@ - diff --git a/src/components/positioned/UtilityBar.vue b/src/components/positioned/UtilityBar.vue index 47ffdc3..f81b420 100644 --- a/src/components/positioned/UtilityBar.vue +++ b/src/components/positioned/UtilityBar.vue @@ -9,7 +9,7 @@ > - From 717d6486d2411caea8b6521e0a277e76370f09de Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:25:46 -0700 Subject: [PATCH 06/32] Converted wrapper components to ts --- src/components/wrapper/FileLoader.vue | 70 ++-- .../wrapper/FileLoaderCollection.vue | 354 +++++++++--------- 2 files changed, 218 insertions(+), 206 deletions(-) diff --git a/src/components/wrapper/FileLoader.vue b/src/components/wrapper/FileLoader.vue index 9a24ad8..05372a5 100644 --- a/src/components/wrapper/FileLoader.vue +++ b/src/components/wrapper/FileLoader.vue @@ -13,46 +13,50 @@ - \ No newline at end of file diff --git a/src/components/wrapper/FileLoaderCollection.vue b/src/components/wrapper/FileLoaderCollection.vue index 502474d..8bfaa3e 100644 --- a/src/components/wrapper/FileLoaderCollection.vue +++ b/src/components/wrapper/FileLoaderCollection.vue @@ -31,9 +31,10 @@ - From ed6c2968d8c5ef830dc22a068bf0d34377288ee9 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:27:19 -0700 Subject: [PATCH 07/32] Converted more shared components to ts --- src/components/ACNLQRGenerator.vue | 52 +++---- src/components/Banner.vue | 18 +-- src/components/IconGenerator.vue | 227 +++++++++++++++------------- src/components/MarkdownPage.vue | 8 +- src/components/MarkdownStyled.vue | 8 +- src/components/PreviewGenerator.vue | 80 +++++----- 6 files changed, 209 insertions(+), 184 deletions(-) diff --git a/src/components/ACNLQRGenerator.vue b/src/components/ACNLQRGenerator.vue index 2303955..56c9d07 100644 --- a/src/components/ACNLQRGenerator.vue +++ b/src/components/ACNLQRGenerator.vue @@ -2,38 +2,36 @@ - diff --git a/src/components/Banner.vue b/src/components/Banner.vue index 3a84cb9..549ea7c 100644 --- a/src/components/Banner.vue +++ b/src/components/Banner.vue @@ -4,15 +4,15 @@ - diff --git a/src/components/IconGenerator.vue b/src/components/IconGenerator.vue index f1796de..61e34c6 100644 --- a/src/components/IconGenerator.vue +++ b/src/components/IconGenerator.vue @@ -2,118 +2,143 @@ - diff --git a/src/components/MarkdownPage.vue b/src/components/MarkdownPage.vue index adde10d..18022e8 100644 --- a/src/components/MarkdownPage.vue +++ b/src/components/MarkdownPage.vue @@ -6,12 +6,14 @@ - diff --git a/src/components/MarkdownStyled.vue b/src/components/MarkdownStyled.vue index 5a4c096..2df5134 100644 --- a/src/components/MarkdownStyled.vue +++ b/src/components/MarkdownStyled.vue @@ -4,9 +4,11 @@ - diff --git a/src/components/PreviewGenerator.vue b/src/components/PreviewGenerator.vue index 9c747cc..a957015 100644 --- a/src/components/PreviewGenerator.vue +++ b/src/components/PreviewGenerator.vue @@ -3,51 +3,49 @@ - From cc54b843a7fe1b710846f7f332453647f9167824 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:27:35 -0700 Subject: [PATCH 08/32] Converted About page components to ts --- src/pages/About/About.vue | 279 ++++++++++++++++++----------------- src/pages/About/InfoItem.vue | 33 +++-- src/pages/About/Passport.vue | 115 ++++++++------- 3 files changed, 228 insertions(+), 199 deletions(-) diff --git a/src/pages/About/About.vue b/src/pages/About/About.vue index de2e113..8490ff5 100644 --- a/src/pages/About/About.vue +++ b/src/pages/About/About.vue @@ -23,149 +23,162 @@ - diff --git a/src/pages/About/InfoItem.vue b/src/pages/About/InfoItem.vue index fe7014d..f8385b0 100644 --- a/src/pages/About/InfoItem.vue +++ b/src/pages/About/InfoItem.vue @@ -21,26 +21,33 @@ - diff --git a/src/pages/About/Passport.vue b/src/pages/About/Passport.vue index 958d62d..77030e4 100644 --- a/src/pages/About/Passport.vue +++ b/src/pages/About/Passport.vue @@ -73,67 +73,76 @@ - From 13bdb449e8cce610d58c0c994ca9f0d20ab547b4 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:27:59 -0700 Subject: [PATCH 09/32] Converted FAQ page components to ts --- src/pages/FAQ/FAQ.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pages/FAQ/FAQ.vue b/src/pages/FAQ/FAQ.vue index dccf350..89068b4 100644 --- a/src/pages/FAQ/FAQ.vue +++ b/src/pages/FAQ/FAQ.vue @@ -5,15 +5,17 @@ - From 5d4bdbb6d8bb3f98b9330dea6534ca48389d2835 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:28:13 -0700 Subject: [PATCH 10/32] Updated DrawingTool interface types --- src/libs/DrawingTool.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libs/DrawingTool.js b/src/libs/DrawingTool.js index 43cb2d1..e2a834c 100644 --- a/src/libs/DrawingTool.js +++ b/src/libs/DrawingTool.js @@ -154,7 +154,7 @@ function toHex(n){return (n<16?"0":"")+n.toString(16);} class DrawingTool{ /** - * @param {string | Uint8Array} data + * @param {string | Uint8Array | DrawingTool} data */ constructor(data = null){ this.renderTargets = []; //TODO: Should this be a map, perhaps? How do maps work in JS? Can we de-duplicate..? @@ -282,13 +282,13 @@ class DrawingTool{ get fullHash(){return this.pattern.fullHash();} /** @type {string} */ get pixelHash(){return this.pattern.pixelHash();} - /** @type {number} */ + /** @type {string} The name of the pattern. */ get title(){return this.pattern.title;} set title(n){this.pattern.title = n;} - /** @type {string} */ + /** @type {[string, number]} Creator name and id. */ get creator(){return this.pattern.creator;} set creator(n){this.pattern.creator = n;} - /** @type {string} */ + /** @type {[string, number]} */ get town(){return this.pattern.town;} set town(n){this.pattern.town = n;} fixIssues(){this.pattern.fixIssues();} From 72b4cc88f7d15845d72061def966dde22a60e2f1 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 15 Oct 2022 14:12:18 -0700 Subject: [PATCH 11/32] Converted Passport component to ts --- src/pages/About/Passport.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/About/Passport.vue b/src/pages/About/Passport.vue index 77030e4..177686c 100644 --- a/src/pages/About/Passport.vue +++ b/src/pages/About/Passport.vue @@ -76,7 +76,7 @@ diff --git a/src/pages/Browse/PatternEntry.vue b/src/pages/Browse/PatternEntry.vue index e5a5f6a..253c22b 100644 --- a/src/pages/Browse/PatternEntry.vue +++ b/src/pages/Browse/PatternEntry.vue @@ -24,24 +24,21 @@ - From 81bc545d7e4d7aa216bcb7d5c51388495af3b710 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 15 Oct 2022 17:44:32 -0700 Subject: [PATCH 13/32] Converted ConvertImage component to ts --- .../Editor/ConvertImage/ConvertImage.vue | 194 ++++++++++-------- .../Editor/ConvertImage/Stages/Adjusting.vue | 164 ++++++++------- .../Editor/ConvertImage/Stages/Cropping.vue | 113 +++++----- .../ConvertImage/Stages/GridStencil.vue | 1 + .../Editor/ConvertImage/Stages/Saving.vue | 173 ++++++++-------- .../Editor/ConvertImage/Stages/Uploading.vue | 73 +++---- 6 files changed, 387 insertions(+), 331 deletions(-) diff --git a/src/pages/Editor/ConvertImage/ConvertImage.vue b/src/pages/Editor/ConvertImage/ConvertImage.vue index e91d895..08a8632 100644 --- a/src/pages/Editor/ConvertImage/ConvertImage.vue +++ b/src/pages/Editor/ConvertImage/ConvertImage.vue @@ -106,7 +106,8 @@ - diff --git a/src/pages/Editor/ConvertImage/Stages/Adjusting.vue b/src/pages/Editor/ConvertImage/Stages/Adjusting.vue index 2d9798f..396cecb 100644 --- a/src/pages/Editor/ConvertImage/Stages/Adjusting.vue +++ b/src/pages/Editor/ConvertImage/Stages/Adjusting.vue @@ -63,9 +63,9 @@ > @@ -79,9 +79,9 @@ > @@ -96,9 +96,9 @@ > @@ -107,10 +107,12 @@ - diff --git a/src/pages/Editor/ConvertImage/Stages/Cropping.vue b/src/pages/Editor/ConvertImage/Stages/Cropping.vue index 38b97c3..0af1f41 100644 --- a/src/pages/Editor/ConvertImage/Stages/Cropping.vue +++ b/src/pages/Editor/ConvertImage/Stages/Cropping.vue @@ -93,7 +93,8 @@ - diff --git a/src/pages/Editor/ConvertImage/Stages/GridStencil.vue b/src/pages/Editor/ConvertImage/Stages/GridStencil.vue index 38c5075..01a6a16 100644 --- a/src/pages/Editor/ConvertImage/Stages/GridStencil.vue +++ b/src/pages/Editor/ConvertImage/Stages/GridStencil.vue @@ -59,6 +59,7 @@ diff --git a/src/pages/Editor/ConvertImage/Stages/Uploading.vue b/src/pages/Editor/ConvertImage/Stages/Uploading.vue index 8309aae..1b78106 100644 --- a/src/pages/Editor/ConvertImage/Stages/Uploading.vue +++ b/src/pages/Editor/ConvertImage/Stages/Uploading.vue @@ -22,7 +22,8 @@ - \ No newline at end of file From 30aa4379f8d54a899496c0ed9c79c7c7dc3e37ec Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Tue, 25 Oct 2022 23:38:55 -0700 Subject: [PATCH 14/32] Converted Editor's ColorTools components to ts --- src/libs/ACNHFormat.js | 14 + src/libs/DrawingTool.js | 20 +- .../Editor/ColorTools/ACNHColorPicker.vue | 261 +++++++++--------- .../Editor/ColorTools/ACNLColorPicker.vue | 90 +++--- src/pages/Editor/ColorTools/ColorTools.vue | 113 ++++---- src/pages/Editor/ColorTools/Palette.vue | 95 +++---- 6 files changed, 311 insertions(+), 282 deletions(-) diff --git a/src/libs/ACNHFormat.js b/src/libs/ACNHFormat.js index 7c8be96..876af75 100644 --- a/src/libs/ACNHFormat.js +++ b/src/libs/ACNHFormat.js @@ -351,6 +351,13 @@ class ACNHFormat{ static bytesForType(t){ return ACNHFormat.texWidthForType(t) > 32 ? 2216 : 680; } + /** + * Converts slider positions to a css 6 digit hex color. + * @param {number} hIn + * @param {number} sIn + * @param {number} vIn + * @returns {string} + */ static slidersToColor(hIn, sIn, vIn){ const s = Sinc*sIn/100.0; const v = (Vstart+Vinc*vIn)/100.0; @@ -379,6 +386,13 @@ class ACNHFormat{ while(hex.length<6) hex = '0'+hex; return `#${hex.toUpperCase()}`; } + /** + * Converts a css 6 digit hex color or numeric rgb values to slider positions. + * @param {string | number} r A css 6 digit hex color or numeric red rgb value. + * @param {number} g Numeric green rgb value. + * @param {number} b Numeric blue rgb value. + * @returns {[number, number, number]} Red, green, blue values. + */ static colorToSliders(r,g,b){ if (typeof r == "string" && r.length == 7 && r.substr(0, 1) == '#'){r = r.substr(1);} if (typeof r == "string" && r.length == 6){ diff --git a/src/libs/DrawingTool.js b/src/libs/DrawingTool.js index e2a834c..e5d52b7 100644 --- a/src/libs/DrawingTool.js +++ b/src/libs/DrawingTool.js @@ -560,7 +560,11 @@ class DrawingTool{ this.render(); } - /// Returns the HTML color of the given palette index + /** + * Gets the css 6 digit hex color of the palette color at the index. + * @param {number} idx 0 - 14 only, #15 is the transparent ref + * @returns {string} + */ getPalette(idx){ if (idx < 0 || idx > 14){return "";}//abort for invalid indexes if (this.pattern instanceof ACNHFormat){ @@ -815,9 +819,12 @@ class DrawingTool{ } } - /// When called with a function as parameter, adds an event handler for color changes. - /// When called without parameter (or with null), calls all onColorChange event handlers in sequence. - /// Called automatically whenever colors in the palette change, or a new pattern is loaded. + /** + * When called with a function as parameter, adds an event handler for color changes. + * When called without parameter (or with null), calls all onColorChange event handlers in sequence. + * Called automatically whenever colors in the palette change, or a new pattern is loaded. + * @param {null | Function} f + */ onColorChange(f = null){ if (f === null){ for (let i in this.handleColorChange){ @@ -828,7 +835,10 @@ class DrawingTool{ } } - // removes a handler + /** + * Removes a handler. + * @param {null | Function} f + */ onColorChangeRemove(f = null) { if ((typeof f) === "function") { const idx = this.handleColorChange.indexOf(f); diff --git a/src/pages/Editor/ColorTools/ACNHColorPicker.vue b/src/pages/Editor/ColorTools/ACNHColorPicker.vue index e3afec9..67b6641 100644 --- a/src/pages/Editor/ColorTools/ACNHColorPicker.vue +++ b/src/pages/Editor/ColorTools/ACNHColorPicker.vue @@ -174,7 +174,8 @@ - diff --git a/src/pages/Editor/ColorTools/ACNLColorPicker.vue b/src/pages/Editor/ColorTools/ACNLColorPicker.vue index 7f5d1d2..200aa00 100644 --- a/src/pages/Editor/ColorTools/ACNLColorPicker.vue +++ b/src/pages/Editor/ColorTools/ACNLColorPicker.vue @@ -43,56 +43,58 @@ - diff --git a/src/pages/Editor/ColorTools/ColorTools.vue b/src/pages/Editor/ColorTools/ColorTools.vue index 9ac748e..7e3aad4 100644 --- a/src/pages/Editor/ColorTools/ColorTools.vue +++ b/src/pages/Editor/ColorTools/ColorTools.vue @@ -62,7 +62,8 @@ - diff --git a/src/pages/Editor/ColorTools/Palette.vue b/src/pages/Editor/ColorTools/Palette.vue index bcc5057..1b35705 100644 --- a/src/pages/Editor/ColorTools/Palette.vue +++ b/src/pages/Editor/ColorTools/Palette.vue @@ -44,67 +44,68 @@ - From 8cd1bf282e224c46145c91af3a82b90fa7e226ba Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Tue, 22 Nov 2022 23:13:31 -0800 Subject: [PATCH 15/32] Converted App component to ts --- src/App.vue | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/App.vue b/src/App.vue index 57a2836..514f747 100644 --- a/src/App.vue +++ b/src/App.vue @@ -10,7 +10,8 @@ - From f50978bb6bc23a20aef4db8dad0f7d0d73e904e3 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Tue, 22 Nov 2022 23:14:04 -0800 Subject: [PATCH 16/32] Converted Missing component to ts --- src/pages/Missing.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pages/Missing.vue b/src/pages/Missing.vue index a8b452f..5c6b6a4 100644 --- a/src/pages/Missing.vue +++ b/src/pages/Missing.vue @@ -3,9 +3,11 @@ - From 67954c21d35d8d9552197a27a3b82043566a7f25 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Tue, 22 Nov 2022 23:14:59 -0800 Subject: [PATCH 17/32] Converted Home component to ts --- src/pages/Home.vue | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/src/pages/Home.vue b/src/pages/Home.vue index d65f99e..7c5f062 100644 --- a/src/pages/Home.vue +++ b/src/pages/Home.vue @@ -98,7 +98,9 @@ - From 9257700bba5d8797672692fa59add929eba3c345 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Tue, 22 Nov 2022 23:17:00 -0800 Subject: [PATCH 18/32] Converted ImportMenuItem component to ts --- src/pages/Editor/ImportMenuItem.vue | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/pages/Editor/ImportMenuItem.vue b/src/pages/Editor/ImportMenuItem.vue index 49db633..1fe2656 100644 --- a/src/pages/Editor/ImportMenuItem.vue +++ b/src/pages/Editor/ImportMenuItem.vue @@ -46,26 +46,34 @@ - From 3f514a18b146fafe0658789d8053de8b5bc4a3d8 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 7 Jan 2023 18:02:31 -0800 Subject: [PATCH 19/32] Converted Updates page components to ts --- src/pages/Updates/Updates.vue | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/pages/Updates/Updates.vue b/src/pages/Updates/Updates.vue index f5bd3f5..4812be3 100644 --- a/src/pages/Updates/Updates.vue +++ b/src/pages/Updates/Updates.vue @@ -5,15 +5,17 @@ - \ No newline at end of file From 2d1171981bbdff45447cd741260422faebfa39d4 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 7 Jan 2023 18:03:42 -0800 Subject: [PATCH 20/32] Converted Moderator page components to ts --- src/pages/moderator/Dashboard.vue | 141 ++++++++++++++++++++---------- src/pages/moderator/Index.vue | 62 ++++++++----- src/pages/moderator/Login.vue | 133 ++++++++++++++++++---------- 3 files changed, 218 insertions(+), 118 deletions(-) diff --git a/src/pages/moderator/Dashboard.vue b/src/pages/moderator/Dashboard.vue index 740bb37..57eefb3 100644 --- a/src/pages/moderator/Dashboard.vue +++ b/src/pages/moderator/Dashboard.vue @@ -26,8 +26,8 @@
by {{ opt.author }} @@ -148,65 +148,115 @@
- diff --git a/src/pages/moderator/Index.vue b/src/pages/moderator/Index.vue index 48fb3a7..bffa658 100644 --- a/src/pages/moderator/Index.vue +++ b/src/pages/moderator/Index.vue @@ -2,35 +2,49 @@ - diff --git a/src/pages/moderator/Login.vue b/src/pages/moderator/Login.vue index 8c9136d..de77f08 100644 --- a/src/pages/moderator/Login.vue +++ b/src/pages/moderator/Login.vue @@ -46,59 +46,96 @@ - From 5913d335ca08e144e428a79bb409f173a427652e Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 7 Jan 2023 21:45:17 -0800 Subject: [PATCH 21/32] Converted IconRibbonTailLeft copmonent to ts --- src/components/icons/IconRibbonTailLeft.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/icons/IconRibbonTailLeft.vue b/src/components/icons/IconRibbonTailLeft.vue index ae1ee03..dc7dba7 100644 --- a/src/components/icons/IconRibbonTailLeft.vue +++ b/src/components/icons/IconRibbonTailLeft.vue @@ -19,9 +19,13 @@ - From 0609f864b5b08c14cf134f9e5c18249fb7febf73 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 7 Jan 2023 21:45:40 -0800 Subject: [PATCH 22/32] Converted Banner component to ts --- src/components/positioned/Banner.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/positioned/Banner.vue b/src/components/positioned/Banner.vue index e039138..17043e6 100644 --- a/src/components/positioned/Banner.vue +++ b/src/components/positioned/Banner.vue @@ -7,7 +7,7 @@ - From f2082bafcd0c7da104bd5ab87286d6322d52e616 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 7 Jan 2023 23:43:07 -0800 Subject: [PATCH 25/32] Converted Preview component to ts --- src/pages/Editor/PatternSettings.vue | 199 ++++++++++++++++----------- src/pages/Editor/Preview.vue | 93 ++++++++----- 2 files changed, 177 insertions(+), 115 deletions(-) diff --git a/src/pages/Editor/PatternSettings.vue b/src/pages/Editor/PatternSettings.vue index b903d4f..198f8d2 100644 --- a/src/pages/Editor/PatternSettings.vue +++ b/src/pages/Editor/PatternSettings.vue @@ -124,7 +124,8 @@ - diff --git a/src/pages/Editor/Preview.vue b/src/pages/Editor/Preview.vue index 2519d27..463345e 100644 --- a/src/pages/Editor/Preview.vue +++ b/src/pages/Editor/Preview.vue @@ -71,7 +71,9 @@ - From 516428a597dae1ea9b46aa0a1caa0b8596fc3246 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 7 Jan 2023 23:43:38 -0800 Subject: [PATCH 26/32] Converted Storage component to ts --- src/pages/Editor/Storage.vue | 297 ++++++++++++++++++----------------- 1 file changed, 150 insertions(+), 147 deletions(-) diff --git a/src/pages/Editor/Storage.vue b/src/pages/Editor/Storage.vue index 7305c21..3640ece 100644 --- a/src/pages/Editor/Storage.vue +++ b/src/pages/Editor/Storage.vue @@ -10,14 +10,13 @@ - From 2972441b7403f930023dbfb9ad24ef04044c4378 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 7 Jan 2023 23:45:20 -0800 Subject: [PATCH 28/32] Converted ThreeDRender component to ts - removed optimize three plugin b/c it's incompatible with type - updated files affected by plugin removal --- config/webpack.config.js | 2 - package-lock.json | 30 +- package.json | 5 +- src/components/ThreeDRender.vue | 475 ++++++++++++++++++-------------- src/libs/Preview3D.js | 2 +- 5 files changed, 276 insertions(+), 238 deletions(-) diff --git a/config/webpack.config.js b/config/webpack.config.js index df49944..ad84b31 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -8,7 +8,6 @@ const VueLoaderPlugin = require('vue-loader/lib/plugin'); const { VuetifyLoaderPlugin } = require('vuetify-loader'); const TerserPlugin = require('terser-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const OptimizeThreePlugin = require('@vxna/optimize-three-webpack-plugin'); const env = require('../etc/env'); // assume already loaded, checked const { pathToClientSrc, @@ -264,7 +263,6 @@ const htmlWebpackOptions = { const plugins = [ new VueLoaderPlugin(), new VuetifyLoaderPlugin(), - new OptimizeThreePlugin(), new webpack.DefinePlugin({ "env": JSON.stringify(clientEnv) }), ]; diff --git a/package-lock.json b/package-lock.json index 7784eba..180334f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,8 @@ "@types/lodash": "^4.14.178", "@types/lz-string": "^1.3.34", "@types/papaparse": "^5.3.1", - "@types/three": "^0.137.0", + "@types/three": "0.137.0", "@types/uuid": "^8.3.4", - "@vxna/optimize-three-webpack-plugin": "^5.1.3", "@zxing/library": "^0.17.1", "axios": "^0.24.0", "copy-webpack-plugin": "^11.0.0", @@ -42,7 +41,7 @@ "stream": "^0.0.2", "swc-loader": "^0.1.15", "terser-webpack-plugin": "^5.2.5", - "three": "^0.135.0", + "three": "0.137.0", "uuid": "^8.3.2", "vue": "^2.6.14", "vue-advanced-cropper": "^1.9.0", @@ -1028,14 +1027,6 @@ "prettier": "^1.18.2 || ^2.0.0" } }, - "node_modules/@vxna/optimize-three-webpack-plugin": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@vxna/optimize-three-webpack-plugin/-/optimize-three-webpack-plugin-5.1.3.tgz", - "integrity": "sha512-mPTJd5o+fSRb50dF1pSh4+K7iA0gFNyUSn9FdjYzch++axtq4LjlSDc8DYGFziebbpY3NRzvlF7iPRStjLv5fw==", - "engines": { - "node": ">=14" - } - }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -6889,9 +6880,9 @@ } }, "node_modules/three": { - "version": "0.135.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.135.0.tgz", - "integrity": "sha512-kuEpuuxRzLv0MDsXai9huCxOSQPZ4vje6y0gn80SRmQvgz6/+rI0NAvCRAw56zYaWKMGMfqKWsxF9Qa2Z9xymQ==" + "version": "0.137.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.137.0.tgz", + "integrity": "sha512-rzSDhia6cU35UCy6y+zEEws6vSgytfHqFMSaBvUcySgzwvDO6vETyswtSNi/+aVqJw8WLMwyT1mlQQ1T/dxxOA==" }, "node_modules/through2": { "version": "4.0.2", @@ -8867,11 +8858,6 @@ "vue-template-es2015-compiler": "^1.9.0" } }, - "@vxna/optimize-three-webpack-plugin": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@vxna/optimize-three-webpack-plugin/-/optimize-three-webpack-plugin-5.1.3.tgz", - "integrity": "sha512-mPTJd5o+fSRb50dF1pSh4+K7iA0gFNyUSn9FdjYzch++axtq4LjlSDc8DYGFziebbpY3NRzvlF7iPRStjLv5fw==" - }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -13302,9 +13288,9 @@ } }, "three": { - "version": "0.135.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.135.0.tgz", - "integrity": "sha512-kuEpuuxRzLv0MDsXai9huCxOSQPZ4vje6y0gn80SRmQvgz6/+rI0NAvCRAw56zYaWKMGMfqKWsxF9Qa2Z9xymQ==" + "version": "0.137.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.137.0.tgz", + "integrity": "sha512-rzSDhia6cU35UCy6y+zEEws6vSgytfHqFMSaBvUcySgzwvDO6vETyswtSNi/+aVqJw8WLMwyT1mlQQ1T/dxxOA==" }, "through2": { "version": "4.0.2", diff --git a/package.json b/package.json index aef18ac..dfa986d 100644 --- a/package.json +++ b/package.json @@ -26,9 +26,8 @@ "@types/lodash": "^4.14.178", "@types/lz-string": "^1.3.34", "@types/papaparse": "^5.3.1", - "@types/three": "^0.137.0", + "@types/three": "0.137.0", "@types/uuid": "^8.3.4", - "@vxna/optimize-three-webpack-plugin": "^5.1.3", "@zxing/library": "^0.17.1", "axios": "^0.24.0", "copy-webpack-plugin": "^11.0.0", @@ -52,7 +51,7 @@ "stream": "^0.0.2", "swc-loader": "^0.1.15", "terser-webpack-plugin": "^5.2.5", - "three": "^0.135.0", + "three": "0.137.0", "uuid": "^8.3.2", "vue": "^2.6.14", "vue-advanced-cropper": "^1.9.0", diff --git a/src/components/ThreeDRender.vue b/src/components/ThreeDRender.vue index 57dff1c..236f1dd 100644 --- a/src/components/ThreeDRender.vue +++ b/src/components/ThreeDRender.vue @@ -8,7 +8,7 @@ /> - diff --git a/src/libs/Preview3D.js b/src/libs/Preview3D.js index 6189410..bb97edf 100644 --- a/src/libs/Preview3D.js +++ b/src/libs/Preview3D.js @@ -22,7 +22,7 @@ import { TextureLoader, Vector3, } from "three"; -import { GLTFLoader } from '@three/loaders/GLTFLoader'; +import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; //Global canvas and renderer let threeCanvas = document.createElement("canvas"); From 64eaa58c7d98167b2af4460d004ed6ca1a0cef82 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 17 Jun 2023 17:47:28 -0700 Subject: [PATCH 29/32] Update package-lock --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 8086493..20214b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "ac-pattern-tool", - "version": "1.3.0", + "version": "1.4.0", "license": "WTFPL", "dependencies": { "@juggle/resize-observer": "^3.2.0", From 0447681149b69e18279ec11310eaf5e154229c24 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sat, 17 Jun 2023 17:47:57 -0700 Subject: [PATCH 30/32] Add container configs --- .dockerignore | 3 +++ Dockerfile | 8 ++++++++ 2 files changed, 11 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..5570e00 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +build +node_modules +stats \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a349f86 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM node:16-alpine +WORKDIR /app +COPY . . +ENV DEV_HOST=0.0.0.0 +ENV DEV_PORT=3000 +EXPOSE 3000 +RUN npm install +CMD ["npm", "run", "dev"] \ No newline at end of file From 03213ae6f45f5a6ba1dd8ccae67e5e9c925d6f64 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sun, 18 Jun 2023 04:18:44 -0700 Subject: [PATCH 31/32] Debounced auto search browse options --- src/pages/Browse/Browse.vue | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/pages/Browse/Browse.vue b/src/pages/Browse/Browse.vue index 2c7debf..e2830d8 100644 --- a/src/pages/Browse/Browse.vue +++ b/src/pages/Browse/Browse.vue @@ -4,14 +4,13 @@ @@ -26,7 +25,7 @@ :items="typeOptsList[i]" outlined hide-details - @keyup.enter.prevent="onSearch" + @input="onSearchDebounced" :menu-props="{ 'content-class': 'browse-tag--menu', }" @@ -42,7 +41,7 @@ :items="styleOptsList[i]" outlined hide-details - @keyup.enter.prevent="onSearch" + @input="onSearchDebounced" :menu-props="{ 'content-class': 'browse-tag--menu', }" @@ -54,7 +53,7 @@ import qs from "qs"; +import { debounce } from "lodash"; import { Sorting, StyleTag, @@ -481,6 +481,8 @@ export default class Browse extends Vue { this.nextOptions.titleFilter = this.nextOptions.titleFilter || ""; this.updateRoute(this.nextOptions, 0); } + + public onSearchDebounced = debounce(this.onSearch, 200); }; From dafc02835b7d3c9182195cdfffd357e87a7878b8 Mon Sep 17 00:00:00 2001 From: Viet <26016342+DamSenViet@users.noreply.github.com> Date: Sun, 18 Jun 2023 04:24:37 -0700 Subject: [PATCH 32/32] Fix standee modal loading race condition --- src/components/ThreeDRender.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/ThreeDRender.vue b/src/components/ThreeDRender.vue index 236f1dd..5c8b455 100644 --- a/src/components/ThreeDRender.vue +++ b/src/components/ThreeDRender.vue @@ -154,8 +154,10 @@ export default class ThreeDRender extends Vue { this.cleanUp(); //Get new model properties const modelType = typeInfoToModelType.get(this.drawingTool.typeInfo); - if (modelType === ModelType.Standee) + if (modelType === ModelType.Standee) { + this.loading = false; return; + } const modelUrlData = typeInfoToModelUrlData.get(this.drawingTool.typeInfo) as ModelUrlData; const modelOffset = { x: 0, y: -6, z: 0, rough: 1.5 }; (this.controls as OrbitControls).maxZoom = 2.0;