From acc91152ba92fd0ca68eb0ec77f04c2e79b8c393 Mon Sep 17 00:00:00 2001 From: Aldemylla Date: Wed, 18 Sep 2024 16:22:08 -0300 Subject: [PATCH 01/64] feat: Added Firebase and created request to add new ai review --- package.json | 1 + src/main.js | 1 + src/services/api/resources/GPT.js | 14 + src/utils/plugins/Firebase.js | 8 + yarn.lock | 612 ++++++++++++++++++++++++++++-- 5 files changed, 602 insertions(+), 34 deletions(-) create mode 100644 src/utils/plugins/Firebase.js diff --git a/package.json b/package.json index 0aaa88df..dc2f9438 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "chart.js": "^4.4.2", "chartjs-plugin-datalabels": "^2.2.0", "emoji-mart": "^5.6.0", + "firebase": "^10.13.1", "moment": "^2.30.1", "vue": "^3.3.11", "vue-i18n": "9", diff --git a/src/main.js b/src/main.js index d1f96be8..9eff811e 100644 --- a/src/main.js +++ b/src/main.js @@ -6,6 +6,7 @@ import store from './store'; import Unnnic from './utils/plugins/UnnnicSystem'; import i18n from './utils/plugins/i18n'; import './utils/plugins/Hotjar.js'; +import './utils/plugins/Firebase.js'; import '@weni/unnnic-system/dist/style.css'; diff --git a/src/services/api/resources/GPT.js b/src/services/api/resources/GPT.js index c6972e67..69130b34 100644 --- a/src/services/api/resources/GPT.js +++ b/src/services/api/resources/GPT.js @@ -1,6 +1,9 @@ import axios from 'axios'; import env from '@/utils/env'; +import { db as firebaseDB } from '@/utils/plugins/Firebase.js'; +import { collection, addDoc } from 'firebase/firestore'; + const http = axios.create({ headers: { Authorization: env('VITE_GPT_AUTH'), @@ -21,4 +24,15 @@ export default { return response.data?.choices?.[0].message?.content; }, + + createReview({ user, helpful, comment }) { + addDoc(collection(firebaseDB, 'AI Reviews'), { + user, + helpful, + comment, + timestamp: new Date(), + }).catch((error) => { + console.error('Error writing AI Reviews document: ', error); + }); + }, }; diff --git a/src/utils/plugins/Firebase.js b/src/utils/plugins/Firebase.js new file mode 100644 index 00000000..dd053cde --- /dev/null +++ b/src/utils/plugins/Firebase.js @@ -0,0 +1,8 @@ +import { initializeApp } from 'firebase/app'; +import { getFirestore } from 'firebase/firestore'; +import env from '../env'; + +const app = initializeApp(JSON.parse(env('VITE_FIREBASE_CONFIG'))); +const db = getFirestore(app); + +export { db }; diff --git a/yarn.lock b/yarn.lock index 3e3c8ba7..a5ebe295 100644 --- a/yarn.lock +++ b/yarn.lock @@ -699,11 +699,413 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@firebase/analytics-compat@0.2.13": + version "0.2.13" + resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.2.13.tgz#de8858e578616c4b7a2e209ba14d21cef03e0f9d" + integrity sha512-aZ4wGfNDMsCxhKzDbK2g1aV0JKsdQ9FbeIsjpNJPzhahV0XYj+z36Y4RNLPpG/6hHU4gxnezxs+yn3HhHkNL8w== + dependencies: + "@firebase/analytics" "0.10.7" + "@firebase/analytics-types" "0.8.2" + "@firebase/component" "0.6.8" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/analytics-types@0.8.2": + version "0.8.2" + resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.8.2.tgz#947f85346e404332aac6c996d71fd4a89cd7f87a" + integrity sha512-EnzNNLh+9/sJsimsA/FGqzakmrAUKLeJvjRHlg8df1f97NLUlFidk9600y0ZgWOp3CAxn6Hjtk+08tixlUOWyw== + +"@firebase/analytics@0.10.7": + version "0.10.7" + resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.10.7.tgz#6b6e51002d7a4c8f87c0a8c933cc5c26b37b205a" + integrity sha512-GE29uTT6y/Jv2EP0OjpTezeTQZ5FTCTaZXKrrdVGjb/t35AU4u/jiU+hUwUPpuK8fqhhiHkS/AawE3a3ZK/a9Q== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/installations" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/app-check-compat@0.3.14": + version "0.3.14" + resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.3.14.tgz#503593a6cf23b7d318f64dfa1f48f759325602eb" + integrity sha512-kK3bPfojAfXE53W+20rxMqIxrloFswXG9vh4kEdYL6Wa2IB3sD5++2dPiK3yGxl8oQiqS8qL2wcKB5/xLpEVEg== + dependencies: + "@firebase/app-check" "0.8.7" + "@firebase/app-check-types" "0.5.2" + "@firebase/component" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/app-check-interop-types@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz#455b6562c7a3de3ef75ea51f72dfec5829ad6997" + integrity sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ== + +"@firebase/app-check-types@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@firebase/app-check-types/-/app-check-types-0.5.2.tgz#1221bd09b471e11bb149252f16640a0a51043cbc" + integrity sha512-FSOEzTzL5bLUbD2co3Zut46iyPWML6xc4x+78TeaXMSuJap5QObfb+rVvZJtla3asN4RwU7elaQaduP+HFizDA== + +"@firebase/app-check@0.8.7": + version "0.8.7" + resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.8.7.tgz#b5f01116b99eb7d12d57a1cb1595796f8196ca7f" + integrity sha512-EkOeJcMKVR0zZ6z/jqcFTqHb/xq+TVIRIuBNGHdpcIuFU1czhSlegvqv2+nC+nFrkD8M6Xvd3tAlUOkdbMeS6A== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/app-compat@0.2.40": + version "0.2.40" + resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.2.40.tgz#d8cc5d2e5a00e2d36b074b405c9472e84a27b750" + integrity sha512-2L5MW4MH2ya7Wvw0hzWy3ZWeB4SqC5gYXDAV5AS1lBTL4zL3k8dsqJmry/cFV00GgkCI01WJbcXvFMCXJvgyow== + dependencies: + "@firebase/app" "0.10.10" + "@firebase/component" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/app-types@0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.2.tgz#8cbcceba784753a7c0066a4809bc22f93adee080" + integrity sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ== + +"@firebase/app@0.10.10": + version "0.10.10" + resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.10.10.tgz#acdccd79b895cfa4d082d74d02594380444e2292" + integrity sha512-sDqkdeFdVn5uygQm5EuIKOQ6/wxTcX/qKfm0MR46AiwLRHGLCDUMrXBkc8GhkK3ca2d6mPUSfPmndggo43D6PQ== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/auth-compat@0.5.13": + version "0.5.13" + resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.5.13.tgz#59ec6d35c1efd4fb834c6130a8e1b76962c65c1c" + integrity sha512-rV6TMxUU6wBBZ2ouDMtjJsJXeewtvYvVzslzt3/P7O/kxiWlreHT/2M/1guMiXKo3zk52XK3GqP0uM2bN7fEow== + dependencies: + "@firebase/auth" "1.7.8" + "@firebase/auth-types" "0.12.2" + "@firebase/component" "0.6.8" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + undici "6.19.7" + +"@firebase/auth-interop-types@0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz#927f1f2139a680b55fef0bddbff2c982b08587e8" + integrity sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ== + +"@firebase/auth-types@0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.12.2.tgz#f12d890585866e53b6ab18b16fa4d425c52eee6e" + integrity sha512-qsEBaRMoGvHO10unlDJhaKSuPn4pyoTtlQuP1ghZfzB6rNQPuhp/N/DcFZxm9i4v0SogjCbf9reWupwIvfmH6w== + +"@firebase/auth@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-1.7.8.tgz#554e90620c2d6a8db332898879dbdab861f969b7" + integrity sha512-1KJlDrTrEEFTIBj9MxjAWjQ4skecBD4bmoayQ0l14QDbNc1a8qGbi+MFSJkH7O6VnGE6bTMcWSw6RrQNecqKaw== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + undici "6.19.7" + +"@firebase/component@0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.6.8.tgz#899b9318c0ce0586580e8cda7eaf61296f7fb43b" + integrity sha512-LcNvxGLLGjBwB0dJUsBGCej2fqAepWyBubs4jt1Tiuns7QLbXHuyObZ4aMeBjZjWx4m8g1LoVI9QFpSaq/k4/g== + dependencies: + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/database-compat@1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-1.0.7.tgz#5c761bea1a78daea76fecc4bf5de5d6915a1c3b4" + integrity sha512-R/3B+VVzEFN5YcHmfWns3eitA8fHLTL03io+FIoMcTYkajFnrBdS3A+g/KceN9omP7FYYYGTQWF9lvbEx6eMEg== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/database" "1.0.7" + "@firebase/database-types" "1.0.4" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/database-types@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-1.0.4.tgz#dc507f7838ed29ac3235c68ebae5fd42a562e3e8" + integrity sha512-mz9ZzbH6euFXbcBo+enuJ36I5dR5w+enJHHjy9Y5ThCdKUseqfDjW3vCp1YxE9zygFCSjJJ/z1cQ+zodvUcwPQ== + dependencies: + "@firebase/app-types" "0.9.2" + "@firebase/util" "1.9.7" + +"@firebase/database@1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-1.0.7.tgz#0794801ab1e63336eda69401131228bb85aa6776" + integrity sha512-wjXr5AO8RPxVVg7rRCYffT7FMtBjHRfJ9KMwi19MbOf0vBf0H9YqW3WCgcnLpXI6ehiUcU3z3qgPnnU0nK6SnA== + dependencies: + "@firebase/app-check-interop-types" "0.3.2" + "@firebase/auth-interop-types" "0.2.3" + "@firebase/component" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + faye-websocket "0.11.4" + tslib "^2.1.0" + +"@firebase/firestore-compat@0.3.36": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.3.36.tgz#a776d410942176babecfda096a47f5d12ceb3fb7" + integrity sha512-NtoIm7CT9f+SFB7cPMCtyCSxZReh/+SII5X4TQH394S3dwhru9HIfvEOKAMuAnXsSsLH72jXPUgdsEAUqg6Oug== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/firestore" "4.7.1" + "@firebase/firestore-types" "3.0.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/firestore-types@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-3.0.2.tgz#75c301acc5fa33943eaaa9570b963c55398cad2a" + integrity sha512-wp1A+t5rI2Qc/2q7r2ZpjUXkRVPtGMd6zCLsiWurjsQpqPgFin3AhNibKcIzoF2rnToNa/XYtyWXuifjOOwDgg== + +"@firebase/firestore@4.7.1": + version "4.7.1" + resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-4.7.1.tgz#43ef10038200e0fe96bbc31e095b3da2d0878aa9" + integrity sha512-WliQNa8GVcH6EWkH0NAf+uAnxNiBuH+G8Buzr2ZS1NznOhJDK/q6Hsjv5TzNrijLTAdEfj/wk9VEv994KDSjxg== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + "@firebase/webchannel-wrapper" "1.0.1" + "@grpc/grpc-js" "~1.9.0" + "@grpc/proto-loader" "^0.7.8" + tslib "^2.1.0" + undici "6.19.7" + +"@firebase/functions-compat@0.3.13": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.3.13.tgz#074c8311ee3b9d0af403115e6812042824635ce3" + integrity sha512-qcZvJO2ed6PAD+18DanVztw7WyQVQK43HoRhxusHAwDFvK/xY+mcGpj+IpfdxTNMBGCOIxKFp4Xqk/c2nubBlQ== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/functions" "0.11.7" + "@firebase/functions-types" "0.6.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/functions-types@0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.6.2.tgz#03b4ec9259d2f57548a3909d6a35ae35ad243552" + integrity sha512-0KiJ9lZ28nS2iJJvimpY4nNccV21rkQyor5Iheu/nq8aKXJqtJdeSlZDspjPSBBiHRzo7/GMUttegnsEITqR+w== + +"@firebase/functions@0.11.7": + version "0.11.7" + resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.11.7.tgz#0de6fe8c0445385e00b54a31fb2a68474e8fd777" + integrity sha512-xaUsGI2kYrI8zJXgrNB7SrJKB8v1vJqR16YYi6g6dFTgBz4+VzWJFqqVU60BbdAWm6fXnUrg9gjlJQeqomT2Vg== + dependencies: + "@firebase/app-check-interop-types" "0.3.2" + "@firebase/auth-interop-types" "0.2.3" + "@firebase/component" "0.6.8" + "@firebase/messaging-interop-types" "0.2.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + undici "6.19.7" + +"@firebase/installations-compat@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@firebase/installations-compat/-/installations-compat-0.2.8.tgz#ebc908afe84db2754b19a62f7655608911e13819" + integrity sha512-pI2q8JFHB7yIq/szmhzGSWXtOvtzl6tCUmyykv5C8vvfOVJUH6mP4M4iwjbK8S1JotKd/K70+JWyYlxgQ0Kpyw== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/installations" "0.6.8" + "@firebase/installations-types" "0.5.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/installations-types@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@firebase/installations-types/-/installations-types-0.5.2.tgz#4d4949e0e83ced7f36cbee009355cd305a36e158" + integrity sha512-que84TqGRZJpJKHBlF2pkvc1YcXrtEDOVGiDjovP/a3s6W4nlbohGXEsBJo0JCeeg/UG9A+DEZVDUV9GpklUzA== + +"@firebase/installations@0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.6.8.tgz#f9c9d493bce04b04ca28814e926ef3ed71f033d6" + integrity sha512-57V374qdb2+wT5v7+ntpLXBjZkO6WRgmAUbVkRfFTM/4t980p0FesbqTAcOIiM8U866UeuuuF8lYH70D3jM/jQ== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/util" "1.9.7" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/logger@0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.4.2.tgz#74dfcfeedee810deb8a7080d5b7eba56aa16ffa2" + integrity sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A== + dependencies: + tslib "^2.1.0" + +"@firebase/messaging-compat@0.2.10": + version "0.2.10" + resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.2.10.tgz#08711f75e2d517fd209bfbc65b1f754b09b2121c" + integrity sha512-FXQm7rcowkDm8kFLduHV35IRYCRo+Ng0PIp/t1+EBuEbyplaKkGjZ932pE+owf/XR+G/60ku2QRBptRGLXZydg== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/messaging" "0.12.10" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/messaging-interop-types@0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.2.tgz#81042f7e9739733fa4571d17f6eb6869522754d0" + integrity sha512-l68HXbuD2PPzDUOFb3aG+nZj5KA3INcPwlocwLZOzPp9rFM9yeuI9YLl6DQfguTX5eAGxO0doTR+rDLDvQb5tA== + +"@firebase/messaging@0.12.10": + version "0.12.10" + resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.12.10.tgz#29909f909b9588d44864732377d88de11f3b3ed3" + integrity sha512-fGbxJPKpl2DIKNJGhbk4mYPcM+qE2gl91r6xPoiol/mN88F5Ym6UeRdMVZah+pijh9WxM55alTYwXuW40r1Y2Q== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/installations" "0.6.8" + "@firebase/messaging-interop-types" "0.2.2" + "@firebase/util" "1.9.7" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/performance-compat@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.2.8.tgz#d97bab3fd0c147c7f796e9b8f78712bc0b83699c" + integrity sha512-o7TFClRVJd3VIBoY7KZQqtCeW0PC6v9uBzM6Lfw3Nc9D7hM6OonqecYvh7NwJ6R14k+xM27frLS4BcCvFHKw2A== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/performance" "0.6.8" + "@firebase/performance-types" "0.2.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/performance-types@0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.2.2.tgz#7b78cd2ab2310bac89a63348d93e67e01eb06dd7" + integrity sha512-gVq0/lAClVH5STrIdKnHnCo2UcPLjJlDUoEB/tB4KM+hAeHUxWKnpT0nemUPvxZ5nbdY/pybeyMe8Cs29gEcHA== + +"@firebase/performance@0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.6.8.tgz#668b0fc207389f7829fd3bfb6614fe819b7db124" + integrity sha512-F+alziiIZ6Yn8FG47mxwljq+4XkgkT2uJIFRlkyViUQRLzrogaUJW6u/+6ZrePXnouKlKIwzqos3PVJraPEcCA== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/installations" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/remote-config-compat@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.2.8.tgz#a6df065c1fd0a943e84ee0e76acfc6c1bede42f9" + integrity sha512-UxSFOp6dzFj2AHB8Bq/BYtbq5iFyizKx4Rd6WxAdaKYM8cnPMeK+l2v+Oogtjae+AeyHRI+MfL2acsfVe5cd2A== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/remote-config" "0.4.8" + "@firebase/remote-config-types" "0.3.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/remote-config-types@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.3.2.tgz#a5d1009c6fd08036c5cd4f28764e3cd694f966d5" + integrity sha512-0BC4+Ud7y2aPTyhXJTMTFfrGGLqdYXrUB9sJVAB8NiqJswDTc4/2qrE/yfUbnQJhbSi6ZaTTBKyG3n1nplssaA== + +"@firebase/remote-config@0.4.8": + version "0.4.8" + resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.4.8.tgz#b6a79acdf73554e0ee31c278162b85592fc8c1f3" + integrity sha512-AMLqe6wfIRnjc6FkCWOSUjhc1fSTEf8o+cv1NolFvbiJ/tU+TqN4pI7pT+MIKQzNiq5fxLehkOx+xtAQBxPJKQ== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/installations" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/storage-compat@0.3.11": + version "0.3.11" + resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.3.11.tgz#94ac4cf4c147dc9388744227740c9c97696cc837" + integrity sha512-EEa9jgm/aRVIGSD0ByYAsZ0tvEKfVwSp9uFoa/97BISGWGjSNPIWjenaDvpDZ7aL8OxaGIpwuk700aHy7/T0Ug== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/storage" "0.13.1" + "@firebase/storage-types" "0.8.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/storage-types@0.8.2": + version "0.8.2" + resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.8.2.tgz#edb321b8a3872a9f74e1f27de046f160021c8e1f" + integrity sha512-0vWu99rdey0g53lA7IShoA2Lol1jfnPovzLDUBuon65K7uKG9G+L5uO05brD9pMw+l4HRFw23ah3GwTGpEav6g== + +"@firebase/storage@0.13.1": + version "0.13.1" + resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.13.1.tgz#48e81a5b706a01d3fae6f1adeeec171ede2edee6" + integrity sha512-L6AJ5tWgHSi2g/gbc/2Pbm3qxmoEg9THmPIOpRsLwuz9LPeWbhyMQeGlqxWqtZGQO/z/LMjGYadNlupQj0HNfw== + dependencies: + "@firebase/component" "0.6.8" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + undici "6.19.7" + +"@firebase/util@1.9.7": + version "1.9.7" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.9.7.tgz#c03b0ae065b3bba22800da0bd5314ef030848038" + integrity sha512-fBVNH/8bRbYjqlbIhZ+lBtdAAS4WqZumx03K06/u7fJSpz1TGjEMm1ImvKD47w+xaFKIP2ori6z8BrbakRfjJA== + dependencies: + tslib "^2.1.0" + +"@firebase/vertexai-preview@0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@firebase/vertexai-preview/-/vertexai-preview-0.0.3.tgz#73dea839439ebdbb5ccd946f297ede5b57e6e7e9" + integrity sha512-KVtUWLp+ScgiwkDKAvNkVucAyhLVQp6C6lhnVEuIg4mWhWcS3oerjAeVhZT4uNofKwWxRsOaB2Yec7DMTXlQPQ== + dependencies: + "@firebase/app-check-interop-types" "0.3.2" + "@firebase/component" "0.6.8" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.7" + tslib "^2.1.0" + +"@firebase/webchannel-wrapper@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.1.tgz#0b62c9f47f557a5b4adc073bb0a47542ce6af4c4" + integrity sha512-jmEnr/pk0yVkA7mIlHNnxCi+wWzOFUg0WyIotgkKAb2u1J7fAeDBcVNSTjTihbAYNusCLQdW5s9IJ5qwnEufcQ== + "@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== +"@grpc/grpc-js@~1.9.0": + version "1.9.15" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.15.tgz#433d7ac19b1754af690ea650ab72190bd700739b" + integrity sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ== + dependencies: + "@grpc/proto-loader" "^0.7.8" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.7.8": + version "0.7.13" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf" + integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.5" + yargs "^17.7.2" + "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" @@ -886,6 +1288,59 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817" integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + "@rollup/rollup-android-arm-eabi@4.14.1": version "4.14.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.1.tgz#ca0501dd836894216cb9572848c5dde4bfca3bec" @@ -1017,6 +1472,13 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== +"@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "22.5.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.5.tgz#52f939dd0f65fc552a4ad0b392f3c466cc5d7a44" + integrity sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA== + dependencies: + undici-types "~6.19.2" + "@types/normalize-package-data@^2.4.0": version "2.4.4" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" @@ -2481,6 +2943,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +faye-websocket@0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + fflate@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea" @@ -2515,6 +2984,39 @@ find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +firebase@^10.13.1: + version "10.13.1" + resolved "https://registry.yarnpkg.com/firebase/-/firebase-10.13.1.tgz#c26d9e8d19cbeea6e6585c46a903a4a1175a3938" + integrity sha512-L5BSkmvB2dzCUMpr8i/O8WMJC3Nqj5Ld8Wj/qnak+tz2Ga+JH6/FO93xArg9IGhktCrPXVODoWp6t9ybdgmXCA== + dependencies: + "@firebase/analytics" "0.10.7" + "@firebase/analytics-compat" "0.2.13" + "@firebase/app" "0.10.10" + "@firebase/app-check" "0.8.7" + "@firebase/app-check-compat" "0.3.14" + "@firebase/app-compat" "0.2.40" + "@firebase/app-types" "0.9.2" + "@firebase/auth" "1.7.8" + "@firebase/auth-compat" "0.5.13" + "@firebase/database" "1.0.7" + "@firebase/database-compat" "1.0.7" + "@firebase/firestore" "4.7.1" + "@firebase/firestore-compat" "0.3.36" + "@firebase/functions" "0.11.7" + "@firebase/functions-compat" "0.3.13" + "@firebase/installations" "0.6.8" + "@firebase/installations-compat" "0.2.8" + "@firebase/messaging" "0.12.10" + "@firebase/messaging-compat" "0.2.10" + "@firebase/performance" "0.6.8" + "@firebase/performance-compat" "0.2.8" + "@firebase/remote-config" "0.4.8" + "@firebase/remote-config-compat" "0.2.8" + "@firebase/storage" "0.13.1" + "@firebase/storage-compat" "0.3.11" + "@firebase/util" "1.9.7" + "@firebase/vertexai-preview" "0.0.3" + flat-cache@^3.0.4: version "3.2.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" @@ -2823,6 +3325,11 @@ http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" @@ -2884,6 +3391,11 @@ iconv-lite@0.6.3, iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +idb@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" + integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== + ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -3230,6 +3742,11 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -3245,6 +3762,11 @@ lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +long@^5.0.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + longest-streak@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" @@ -4395,6 +4917,24 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== +protobufjs@^7.2.5: + version "7.4.0" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.4.0.tgz#7efe324ce9b3b61c82aae5de810d287bc08a248a" + integrity sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" @@ -4619,16 +5159,16 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +safe-buffer@>=5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -4874,16 +5414,7 @@ stdout-stream@^1.4.0: dependencies: readable-stream "^2.0.1" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -4915,14 +5446,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1, strip-ansi@^7.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1, strip-ansi@^7.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -5104,6 +5628,11 @@ ts-api-utils@^1.3.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== +tslib@^2.1.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -5148,6 +5677,16 @@ typescript@^5.4.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + +undici@6.19.7: + version "6.19.7" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.7.tgz#7d4cf26dc689838aa8b6753a3c5c4288fc1e0216" + integrity sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A== + unified-translations@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unified-translations/-/unified-translations-1.1.1.tgz#df48f84c9a0c0c25665b480e733d0ec59247317a" @@ -5455,6 +5994,20 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== +websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + whatwg-encoding@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" @@ -5505,16 +6058,7 @@ wide-align@^1.1.2, wide-align@^1.1.5: dependencies: string-width "^1.0.2 || 2 || 3 || 4" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -5597,7 +6141,7 @@ yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.2.1: +yargs@^17.2.1, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== From 2f9da6bc4b49fa519e9bde518d20ae02288f1e02 Mon Sep 17 00:00:00 2001 From: Aldemylla Date: Wed, 18 Sep 2024 16:52:00 -0300 Subject: [PATCH 02/64] feat: Created generate insight button --- src/assets/images/shine.svg | 8 +++++ src/components/insights/Layout/Header.vue | 10 +++--- .../HeaderGenerateInsightsButton.vue | 35 +++++++++++++++++++ src/locales/translations.json | 12 +++++++ 4 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 src/assets/images/shine.svg create mode 100644 src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue diff --git a/src/assets/images/shine.svg b/src/assets/images/shine.svg new file mode 100644 index 00000000..cceb36de --- /dev/null +++ b/src/assets/images/shine.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/components/insights/Layout/Header.vue b/src/components/insights/Layout/Header.vue index b2ccf3bf..f57c31bf 100644 --- a/src/components/insights/Layout/Header.vue +++ b/src/components/insights/Layout/Header.vue @@ -17,10 +17,11 @@ + @@ -33,6 +34,7 @@ import HeaderSelectDashboard from './HeaderSelectDashboard/index.vue'; import HeaderTagLive from './HeaderTagLive.vue'; import InsightsLayoutHeaderFilters from './HeaderFilters/index.vue'; import HeaderDashboardSettings from './HeaderDashboardSettings.vue'; +import HeaderGenerateInsightsButton from './HeaderGenerateInsights/HeaderGenerateInsightsButton.vue'; import moment from 'moment'; @@ -43,8 +45,8 @@ export default { HeaderSelectDashboard, HeaderTagLive, InsightsLayoutHeaderFilters, - HeaderDashboardSettings, + HeaderGenerateInsightsButton, }, computed: { ...mapState({ diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue new file mode 100644 index 00000000..7c6dada1 --- /dev/null +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/locales/translations.json b/src/locales/translations.json index 5e587f06..663bed95 100644 --- a/src/locales/translations.json +++ b/src/locales/translations.json @@ -506,6 +506,18 @@ "pt-br": "Falha ao definir o Dashboard {dashboard} como página inicial", "en": "Failure when defining the Dashboard {dashboard} as homepage", "es": "Falla al definir el Tablero {dashboard} como página de inicio" + }, + "generate_insight": { + "title": { + "pt-br": "Gerar insight", + "en": "Generate insight", + "es": "Generar insight" + }, + "generating_insights": { + "pt-br": "Gerando insights", + "en": "Generating insights", + "es": "Generando insights" + } } }, "new_dashboard": { From 9d6447383e842af72b45ffc6919828c5c735e7f0 Mon Sep 17 00:00:00 2001 From: Aldemylla Date: Thu, 19 Sep 2024 14:41:05 -0300 Subject: [PATCH 03/64] feat: Styled the generate insight button and started the generated insight modal, along with generation animations --- src/components/insights/Layout/Header.vue | 6 +- .../HeaderGenerateInsightButton.vue | 71 ++++++++ .../HeaderGenerateInsightModal.vue | 168 ++++++++++++++++++ .../HeaderGenerateInsightText.vue | 114 ++++++++++++ .../HeaderGenerateInsightsButton.vue | 35 ---- src/locales/translations.json | 5 + 6 files changed, 361 insertions(+), 38 deletions(-) create mode 100644 src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightButton.vue create mode 100644 src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue create mode 100644 src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue delete mode 100644 src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue diff --git a/src/components/insights/Layout/Header.vue b/src/components/insights/Layout/Header.vue index f57c31bf..8aef113d 100644 --- a/src/components/insights/Layout/Header.vue +++ b/src/components/insights/Layout/Header.vue @@ -21,7 +21,7 @@ iconCenter="ios_share" type="secondary" /> --> - + @@ -34,7 +34,7 @@ import HeaderSelectDashboard from './HeaderSelectDashboard/index.vue'; import HeaderTagLive from './HeaderTagLive.vue'; import InsightsLayoutHeaderFilters from './HeaderFilters/index.vue'; import HeaderDashboardSettings from './HeaderDashboardSettings.vue'; -import HeaderGenerateInsightsButton from './HeaderGenerateInsights/HeaderGenerateInsightsButton.vue'; +import HeaderGenerateInsightButton from './HeaderGenerateInsights/HeaderGenerateInsightButton.vue'; import moment from 'moment'; @@ -46,7 +46,7 @@ export default { HeaderTagLive, InsightsLayoutHeaderFilters, HeaderDashboardSettings, - HeaderGenerateInsightsButton, + HeaderGenerateInsightButton, }, computed: { ...mapState({ diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightButton.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightButton.vue new file mode 100644 index 00000000..a9a8129f --- /dev/null +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightButton.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue new file mode 100644 index 00000000..d18d4fd5 --- /dev/null +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue new file mode 100644 index 00000000..09f63803 --- /dev/null +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue @@ -0,0 +1,114 @@ + + + + + + diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue deleted file mode 100644 index 7c6dada1..00000000 --- a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - - diff --git a/src/locales/translations.json b/src/locales/translations.json index 663bed95..1a7465eb 100644 --- a/src/locales/translations.json +++ b/src/locales/translations.json @@ -517,6 +517,11 @@ "pt-br": "Gerando insights", "en": "Generating insights", "es": "Generando insights" + }, + "by_ai": { + "pt-br": "por GPT-4", + "en": "by GPT-4", + "es": "por GPT-4" } } }, From b3af7f3f42ea45389c68a7225c9eeea652d821cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Vin=C3=ADcius?= Date: Thu, 26 Sep 2024 10:40:46 -0300 Subject: [PATCH 04/64] adding initial gradient logic --- .../HeaderGenerateInsightModal.vue | 57 +++++++++++++++++-- 1 file changed, 53 insertions(+), 4 deletions(-) diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue index d18d4fd5..cb9461c0 100644 --- a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue @@ -22,9 +22,18 @@ -
+
+
+
{ + this.checkScroll(); + }); + } }, }, + mounted() { + this.$nextTick(() => { + this.checkScroll(); + }); + window.addEventListener('resize', this.checkScroll); + }, + + beforeUnmount() { + window.removeEventListener('resize', this.checkScroll); + }, + methods: { generateInsight() { //TODO: Remove this mock when text generation by AI is implemented setTimeout(() => { this.generatedInsight = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras dictum mauris volutpat, ornare quam vel, scelerisque est. Nulla nulla neque, scelerisque ac velit tincidunt, dapibus accumsan quam. Quisque aliquam nulla interdum arcu aliquet molestie. Curabitur lobortis maximus fringilla. Phasellus nec dolor efficitur, mattis ipsum eu, volutpat urna. In cursus, lacus nec semper sagittis, felis ante viverra ante, sit amet lacinia metus purus non diam. Vivamus quis fringilla leo. Proin mattis aliquet risus.

Vestibulum tincidunt, ipsum ut tempor luctus, sapien elit laoreet mi, quis ornare lacus urna quis erat. Duis et imperdiet massa. Nunc fringilla efficitur tellus, a cursus odio suscipit vel. Ut tempus metus elit, non lobortis nisi ultrices nec. Proin sem arcu, ultrices in rutrum ac, pulvinar sit amet magna. Pellentesque non lacus in lacus sollicitudin ultrices. Morbi commodo et lectus in scelerisque. Aliquam scelerisque nisi arcu, ut scelerisque tortor pulvinar vitae. Suspendisse tempor tincidunt turpis. Vestibulum vehicula ante at odio facilisis lacinia.

Integer ut diam feugiat, faucibus neque sit amet, pretium lectus. Quisque vel libero consequat est interdum lacinia. Proin volutpat, elit et lacinia tincidunt, est est ullamcorper neque, quis pharetra nisi lectus eu nisi. Donec diam urna, aliquam et pellentesque sed, congue sit amet ligula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras dictum mauris volutpat, ornare quam vel, scelerisque est. Nulla nulla neque, scelerisque ac velit tincidunt, dapibus accumsan quam. Quisque aliquam nulla interdum arcu aliquet molestie.'; + this.checkScroll(); }, 3000); }, + + checkScroll() { + const content = this.$refs.content; + const scrollHeight = content.scrollHeight; + const clientHeight = content.clientHeight; + + console.log('checkScroll', content, scrollHeight, clientHeight); + this.showGradient = scrollHeight > clientHeight; + }, }, }; @@ -101,9 +138,7 @@ export default { z-index: 999; box-shadow: $unnnic-shadow-level-far; - border-radius: $unnnic-border-radius-sm; - padding: $unnnic-spacing-md; width: 35vw; @@ -129,7 +164,6 @@ export default { gap: $unnnic-spacing-xs; color: $unnnic-color-weni-300; - font-family: $unnnic-font-family-secondary; font-size: $unnnic-font-size-title-sm; font-weight: $unnnic-font-weight-bold; @@ -164,5 +198,20 @@ export default { } } } + + .gradient-overlay { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 9rem; + background: linear-gradient( + 359deg, + #3b414d 0.54%, + rgba(59, 65, 77, 0.8) 62.61%, + rgba(59, 65, 77, 0) 91.82% + ); + pointer-events: none; + } } From 5a8740ae15df43ff65d8cfd087b0985f7258c70d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Vin=C3=ADcius?= Date: Thu, 26 Sep 2024 12:18:52 -0300 Subject: [PATCH 05/64] adding mitt package --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c184aa28..6a2e8082 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "chartjs-plugin-datalabels": "^2.2.0", "emoji-mart": "^5.6.0", "firebase": "^10.13.1", + "mitt": "^3.0.1", "moment": "^2.30.1", "vue": "^3.3.11", "vue-i18n": "9", @@ -57,4 +58,4 @@ "resolutions": { "strip-ansi": "6.0.1" } -} \ No newline at end of file +} From 9606a6ea55f96f68609941c9fadf1bfe42d6cc8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Vin=C3=ADcius?= Date: Thu, 26 Sep 2024 12:21:17 -0300 Subject: [PATCH 06/64] adding logic to render gradient in big texts --- .../HeaderGenerateInsightModal.vue | 62 ++++++++++++++++--- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue index cb9461c0..2a115559 100644 --- a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue @@ -25,7 +25,7 @@
@@ -49,6 +49,9 @@ + + diff --git a/src/locales/translations.json b/src/locales/translations.json index 601fe0ad..bc6c12fb 100644 --- a/src/locales/translations.json +++ b/src/locales/translations.json @@ -721,6 +721,18 @@ "pt-br": "Falha ao definir o Dashboard {dashboard} como página inicial", "en": "Failure when defining the Dashboard {dashboard} as homepage", "es": "Falla al definir el Tablero {dashboard} como página de inicio" + }, + "generate_insight": { + "title": { + "pt-br": "Gerar insight", + "en": "Generate insight", + "es": "Generar insight" + }, + "generating_insights": { + "pt-br": "Gerando insights", + "en": "Generating insights", + "es": "Generando insights" + } } }, "new_dashboard": { From 7a51d1e08e8e61fb533587c61c771800047da288 Mon Sep 17 00:00:00 2001 From: Aldemylla Date: Thu, 19 Sep 2024 14:41:05 -0300 Subject: [PATCH 17/64] feat: Styled the generate insight button and started the generated insight modal, along with generation animations --- src/components/insights/Layout/Header.vue | 6 +- .../HeaderGenerateInsightButton.vue | 71 ++++++++ .../HeaderGenerateInsightModal.vue | 168 ++++++++++++++++++ .../HeaderGenerateInsightText.vue | 114 ++++++++++++ .../HeaderGenerateInsightsButton.vue | 35 ---- src/locales/translations.json | 5 + 6 files changed, 361 insertions(+), 38 deletions(-) create mode 100644 src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightButton.vue create mode 100644 src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue create mode 100644 src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue delete mode 100644 src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue diff --git a/src/components/insights/Layout/Header.vue b/src/components/insights/Layout/Header.vue index 2417eaad..b18826df 100644 --- a/src/components/insights/Layout/Header.vue +++ b/src/components/insights/Layout/Header.vue @@ -21,7 +21,7 @@ iconCenter="ios_share" type="secondary" /> --> - +
@@ -34,7 +34,7 @@ import HeaderSelectDashboard from './HeaderSelectDashboard/index.vue'; import HeaderTagLive from './HeaderTagLive.vue'; import InsightsLayoutHeaderFilters from './HeaderFilters/index.vue'; import HeaderDashboardSettings from './HeaderDashboardSettings.vue'; -import HeaderGenerateInsightsButton from './HeaderGenerateInsights/HeaderGenerateInsightsButton.vue'; +import HeaderGenerateInsightButton from './HeaderGenerateInsights/HeaderGenerateInsightButton.vue'; import moment from 'moment'; @@ -46,7 +46,7 @@ export default { HeaderTagLive, InsightsLayoutHeaderFilters, HeaderDashboardSettings, - HeaderGenerateInsightsButton, + HeaderGenerateInsightButton, }, computed: { ...mapState({ diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightButton.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightButton.vue new file mode 100644 index 00000000..a9a8129f --- /dev/null +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightButton.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue new file mode 100644 index 00000000..d18d4fd5 --- /dev/null +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue new file mode 100644 index 00000000..09f63803 --- /dev/null +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue @@ -0,0 +1,114 @@ + + + + + + diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue deleted file mode 100644 index 7c6dada1..00000000 --- a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightsButton.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - - diff --git a/src/locales/translations.json b/src/locales/translations.json index bc6c12fb..9062e403 100644 --- a/src/locales/translations.json +++ b/src/locales/translations.json @@ -732,6 +732,11 @@ "pt-br": "Gerando insights", "en": "Generating insights", "es": "Generando insights" + }, + "by_ai": { + "pt-br": "por GPT-4", + "en": "by GPT-4", + "es": "por GPT-4" } } }, From 518e791814e784e139a10d38d63450569f95c855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Vin=C3=ADcius?= Date: Thu, 26 Sep 2024 10:40:46 -0300 Subject: [PATCH 18/64] adding initial gradient logic --- .../HeaderGenerateInsightModal.vue | 57 +++++++++++++++++-- 1 file changed, 53 insertions(+), 4 deletions(-) diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue index d18d4fd5..cb9461c0 100644 --- a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue @@ -22,9 +22,18 @@ -
+
+
+
{ + this.checkScroll(); + }); + } }, }, + mounted() { + this.$nextTick(() => { + this.checkScroll(); + }); + window.addEventListener('resize', this.checkScroll); + }, + + beforeUnmount() { + window.removeEventListener('resize', this.checkScroll); + }, + methods: { generateInsight() { //TODO: Remove this mock when text generation by AI is implemented setTimeout(() => { this.generatedInsight = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras dictum mauris volutpat, ornare quam vel, scelerisque est. Nulla nulla neque, scelerisque ac velit tincidunt, dapibus accumsan quam. Quisque aliquam nulla interdum arcu aliquet molestie. Curabitur lobortis maximus fringilla. Phasellus nec dolor efficitur, mattis ipsum eu, volutpat urna. In cursus, lacus nec semper sagittis, felis ante viverra ante, sit amet lacinia metus purus non diam. Vivamus quis fringilla leo. Proin mattis aliquet risus.

Vestibulum tincidunt, ipsum ut tempor luctus, sapien elit laoreet mi, quis ornare lacus urna quis erat. Duis et imperdiet massa. Nunc fringilla efficitur tellus, a cursus odio suscipit vel. Ut tempus metus elit, non lobortis nisi ultrices nec. Proin sem arcu, ultrices in rutrum ac, pulvinar sit amet magna. Pellentesque non lacus in lacus sollicitudin ultrices. Morbi commodo et lectus in scelerisque. Aliquam scelerisque nisi arcu, ut scelerisque tortor pulvinar vitae. Suspendisse tempor tincidunt turpis. Vestibulum vehicula ante at odio facilisis lacinia.

Integer ut diam feugiat, faucibus neque sit amet, pretium lectus. Quisque vel libero consequat est interdum lacinia. Proin volutpat, elit et lacinia tincidunt, est est ullamcorper neque, quis pharetra nisi lectus eu nisi. Donec diam urna, aliquam et pellentesque sed, congue sit amet ligula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras dictum mauris volutpat, ornare quam vel, scelerisque est. Nulla nulla neque, scelerisque ac velit tincidunt, dapibus accumsan quam. Quisque aliquam nulla interdum arcu aliquet molestie.'; + this.checkScroll(); }, 3000); }, + + checkScroll() { + const content = this.$refs.content; + const scrollHeight = content.scrollHeight; + const clientHeight = content.clientHeight; + + console.log('checkScroll', content, scrollHeight, clientHeight); + this.showGradient = scrollHeight > clientHeight; + }, }, }; @@ -101,9 +138,7 @@ export default { z-index: 999; box-shadow: $unnnic-shadow-level-far; - border-radius: $unnnic-border-radius-sm; - padding: $unnnic-spacing-md; width: 35vw; @@ -129,7 +164,6 @@ export default { gap: $unnnic-spacing-xs; color: $unnnic-color-weni-300; - font-family: $unnnic-font-family-secondary; font-size: $unnnic-font-size-title-sm; font-weight: $unnnic-font-weight-bold; @@ -164,5 +198,20 @@ export default { } } } + + .gradient-overlay { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 9rem; + background: linear-gradient( + 359deg, + #3b414d 0.54%, + rgba(59, 65, 77, 0.8) 62.61%, + rgba(59, 65, 77, 0) 91.82% + ); + pointer-events: none; + } } From 765cf30ac345968a72be071cd550e94b50e2f75c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Vin=C3=ADcius?= Date: Thu, 26 Sep 2024 12:18:52 -0300 Subject: [PATCH 19/64] adding mitt package --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c184aa28..6a2e8082 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "chartjs-plugin-datalabels": "^2.2.0", "emoji-mart": "^5.6.0", "firebase": "^10.13.1", + "mitt": "^3.0.1", "moment": "^2.30.1", "vue": "^3.3.11", "vue-i18n": "9", @@ -57,4 +58,4 @@ "resolutions": { "strip-ansi": "6.0.1" } -} \ No newline at end of file +} From 8dc5d53d6e2771eee2592afa1959f20bafc567c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Vin=C3=ADcius?= Date: Thu, 26 Sep 2024 12:21:17 -0300 Subject: [PATCH 20/64] adding logic to render gradient in big texts --- .../HeaderGenerateInsightModal.vue | 62 ++++++++++++++++--- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue index cb9461c0..2a115559 100644 --- a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue @@ -25,7 +25,7 @@
@@ -49,6 +49,9 @@ + + From e99fea64d6e5c795636b91255ae880187284a5e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Vin=C3=ADcius?= Date: Tue, 1 Oct 2024 17:48:41 -0300 Subject: [PATCH 45/64] adding markdown logic to headerGenerateInsightText --- .../HeaderGenerateInsights/HeaderGenerateInsightText.vue | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue index 09f63803..ae74b2d1 100644 --- a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightText.vue @@ -15,14 +15,20 @@ v-else class="header-generate-insight-text__generated" > -

+

+ + From d4bf205c82a74a06e9af1cb759d5b84c17e789bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Vin=C3=ADcius?= Date: Thu, 3 Oct 2024 11:15:56 -0300 Subject: [PATCH 52/64] adjusting HeaderGenerateInsightModal --- .../HeaderGenerateInsightModal.vue | 232 ++---------------- 1 file changed, 15 insertions(+), 217 deletions(-) diff --git a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue index 1e17e29e..da4dc5b3 100644 --- a/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue +++ b/src/components/insights/Layout/HeaderGenerateInsights/HeaderGenerateInsightModal.vue @@ -44,74 +44,18 @@ class="gradient-overlay" >
-