From 9ed2d63d171ec2c449bc34bf508a42d349c6b3b7 Mon Sep 17 00:00:00 2001 From: Daniel Preda Date: Mon, 11 Mar 2024 16:55:35 +0000 Subject: [PATCH 1/4] Integrated database with backend --- .gitignore | 26 +++++++++++++++++++++++ Backend/backend.py | 40 +++++------------------------------ Backend/database.py | 41 ++++++++++++++++++++++++++++-------- Backend/test.db | Bin 12288 -> 12288 bytes Frontend/app/SPL/.gitignore | 24 --------------------- 5 files changed, 63 insertions(+), 68 deletions(-) create mode 100644 .gitignore delete mode 100644 Frontend/app/SPL/.gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..936694c --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +Backend/__pycache__/database.cpython-39.pyc + +# Logs +Frontend/app/SPL/logs +Frontend/app/SPL/*.log +Frontend/app/SPL/npm-debug.log* +Frontend/app/SPL/yarn-debug.log* +Frontend/app/SPL/yarn-error.log* +Frontend/app/SPL/pnpm-debug.log* +Frontend/app/SPL/lerna-debug.log* + +Frontend/app/SPL/node_modules +Frontend/app/SPL/dist +Frontend/app/SPL/dist-ssr +Frontend/app/SPL/*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/Backend/backend.py b/Backend/backend.py index 5e2838f..960070d 100644 --- a/Backend/backend.py +++ b/Backend/backend.py @@ -1,45 +1,14 @@ from flask import Flask, redirect, url_for, render_template, request, session, Response +from database import retrieve import flask_cors import requests import json import os -import sqlite3 - -link_lookup_table = {"Laptops and 2-in-1 PC": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sc/laptops", - "XPS": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/xps-laptops", - "Latitude": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/latitude-laptops", - "Inspiron": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/inspiron-laptops", - "Vostro": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/vostro-laptops", - "Alienware": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/alienware-laptops", - "Precision": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/precision-laptops", - "Desktops": "https://www.dell.com/en-ie/shop/desktop-computers/sc/desktops", - "OptiPlex": "https://www.dell.com/en-ie/shop/desktop-computers/sr/desktops/optiplex-desktops", - "Monitors": "https://www.dell.com/en-ie/shop/computer-monitors/ar/8605", - "Docking Stations": "https://www.dell.com/en-ie/shop/docks-and-stands/ar/5441/docking-stations?appliedRefinements=962", - "Audio": "https://www.dell.com/en-ie/shop/audio/ac/8310", - "Keyboards and Mice":"https://www.dell.com/en-ie/shop/keyboards-mice/ar/6591", - "Hard Drives, SSDs and Storage": "https://www.dell.com/en-ie/shop/hard-drives-storage/ar/8496", - "Webcams and Video Conferencing": "https://www.dell.com/en-ie/shop/web-cameras/ar/8332", - "Batteries, Chargers and Power Adapters": "https://www.dell.com/en-ie/shop/pc-accessories/ar/5436/batteries-chargers-power-adapters?appliedRefinements=44426", - "Cables and Adapters": "https://www.dell.com/en-ie/shop/cables/ar/8168/cables-adapters?appliedRefinements=44427", - "Security and Protection": "https://www.dell.com/en-ie/shop/security-protection/ar/7664", - "Parts, Batteries and Upgrades": "https://www.dell.com/en-ie/shop/parts-batteries-upgrades/ar/7566", - "Wi-Fi and Networking": "https://www.dell.com/en-ie/shop/wifi-and-networking/ar/4011", - "Gaming Accessories": "https://www.dell.com/en-ie/shop/gaming-gaming-accessories/ac/6488" - } app = Flask(__name__) -# after run create_db.py, the database is created -# conn = sqlite3.connect('eneities.db') -# cursor = conn.cursor() -# command = 'insert into entity (Entity_Name,URL,ImagePath) VALUES (Entity_Name,URLString,ImagePath_String)' -# cursor.execute(command) -# cursor.close() -# conn.close() api_key = os.environ.get("API_KEY") - - + headers = { "Content-Type": "application/json", "Ocp-Apim-Subscription-Key": api_key @@ -88,8 +57,9 @@ def get_task(): categories = set(categories) links = [] for category in categories: - if category in link_lookup_table.keys(): - links.append({"category":category,"link":link_lookup_table[category]}) + row = retrieve(category) + if (row != None): + links.append({"category":row[0],"link":row[1]}) return {"category_links":links} elif response.status_code == 200: return Response(status=202,response={"response-status":response_status}) diff --git a/Backend/database.py b/Backend/database.py index 58a54db..78afdc0 100644 --- a/Backend/database.py +++ b/Backend/database.py @@ -2,6 +2,29 @@ #Creates new database if one with the same name doesn't already exist def create_table(): + link_lookup_table = {"Laptops and 2-in-1 PC": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sc/laptops", + "XPS": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/xps-laptops", + "Latitude": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/latitude-laptops", + "Inspiron": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/inspiron-laptops", + "Vostro": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/vostro-laptops", + "Alienware": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/alienware-laptops", + "Precision": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/precision-laptops", + "Desktops": "https://www.dell.com/en-ie/shop/desktop-computers/sc/desktops", + "OptiPlex": "https://www.dell.com/en-ie/shop/desktop-computers/sr/desktops/optiplex-desktops", + "Monitors": "https://www.dell.com/en-ie/shop/computer-monitors/ar/8605", + "Docking Stations": "https://www.dell.com/en-ie/shop/docks-and-stands/ar/5441/docking-stations?appliedRefinements=962", + "Audio": "https://www.dell.com/en-ie/shop/audio/ac/8310", + "Keyboards and Mice":"https://www.dell.com/en-ie/shop/keyboards-mice/ar/6591", + "Hard Drives, SSDs and Storage": "https://www.dell.com/en-ie/shop/hard-drives-storage/ar/8496", + "Webcams and Video Conferencing": "https://www.dell.com/en-ie/shop/web-cameras/ar/8332", + "Batteries, Chargers and Power Adapters": "https://www.dell.com/en-ie/shop/pc-accessories/ar/5436/batteries-chargers-power-adapters?appliedRefinements=44426", + "Cables and Adapters": "https://www.dell.com/en-ie/shop/cables/ar/8168/cables-adapters?appliedRefinements=44427", + "Security and Protection": "https://www.dell.com/en-ie/shop/security-protection/ar/7664", + "Parts, Batteries and Upgrades": "https://www.dell.com/en-ie/shop/parts-batteries-upgrades/ar/7566", + "Wi-Fi and Networking": "https://www.dell.com/en-ie/shop/wifi-and-networking/ar/4011", + "Gaming Accessories": "https://www.dell.com/en-ie/shop/gaming-gaming-accessories/ac/6488" + } + conn = sqlite3.connect('test.db') cur = conn.cursor() @@ -14,6 +37,8 @@ def create_table(): ) ''' cur.execute(sql) + for key, item in link_lookup_table.items(): + insert(key,item,"","") conn.commit() conn.close() @@ -33,16 +58,14 @@ def retrieve(name): cur.execute('''SELECT * FROM TestTable WHERE name = ?''', (name,)) row = cur.fetchone() conn.close() - return row + if row == None : return None + res = [] + for element in row: + res.append(element) + return res +if __name__ == "__main__": + create_table() -create_table() -insert("Laptop", "https://examplelaptop.com", "/path/to/image.jpg", "this is a laptop") -insert("Monitor", "https://examplemonitor.com", "/path/to/image2.jpg", "this is a monitor") -insert("Adapter", "https://exampleadapter.com", "/path/to/image3.jpg", "this is an adapter") - -TestTable = retrieve("Adapter") -for entity in TestTable: - print(entity) \ No newline at end of file diff --git a/Backend/test.db b/Backend/test.db index eb7307ca0b5b53ce9ac255c51ec82b00165d87d6..0d282699ff7c4a495f2f28d43b139f44b136dd95 100644 GIT binary patch literal 12288 zcmeI0O>fjj7{@(!8)dXy{nXfS5-M6jiuf7c;@*(GrxIe z*7MZfU$T9qY`M5)_)39$lLLTzPf<7yyv1>xKtJgP=*=5xf&ND2jEicVyLSW1&p2Kd zI9ZUNW*D$)Mt~7u1Q-EEfDvE>7y(9r5nu!u0Y>0e5eP1U;aols!e!ssY@#|MetpLc zKfk(AtuH9`>g6T+oz^RFk1E~EFgu|3b7B2#ueyz!N$suMb>-Hb zrKNtA-7*?z!!!Kt7qzeuF|qCWw(IO{(vv@}^I~ox4>;Sg&?EAoNl)|}M%#De@Z69HxCYGva5{;PMYBEOAT%URZ;j-)4 zzFP^3L%9Zo)wX53Sssk2k!G0MTtT0ygj4^~@@jZ^sNVxjvfQR4Qd@DCG0_aH&6Q_L zAB5xLc%VbLwo=Oyc_|&7($OAyL`|9!Bitvx>e*NiPlM z(ugh8?vK$oj3%gDoSVB7o)k-g0O37by=up?bPM?%7vHCzvT$|mEnB7Gr#d~8hW~$dSiKWZsq8Cn!h2R2&^U+&+((S56R}Wn@S+Ztq z5(l7Op3{<|YILnH8J^d)k+q7pYzMWF*F-L+Nu}nW_GZAH&lie35^xBX&SAhOLuJxxyrojY$1#s zbC9S(n<_O&*htoBp)mVVn5WS~=kdCME#(TfA0iqvwc3@$N6mLJJ-}pPr=zh{D>hb1 zViM0m@qBqXJUXO5hVUkOyy?Tt%jp<6b7BYdWTbkjCnG!{P6ibS@4CdtnSX}^x_KCjr9MzN zL1%$(K8p_VY@EH34d})0%Ju#1Py8&=p!3_-{{^ktl}r7M()Wo8sl-WNNNe(jd{ufP z{~`S)e=U74|1AA3J(W!9fmD({l}}4w$)Cuw^vmn{ZpM1e2rvSS03*N%FanGKBftnS z0*nA7u#f)k@cj*pYlU~4OB#UOUSX0?PWIqHWS5@6!9-L_&&go_h%nC6j4~KM zBvk0*T~hI2Urx~Z=X18;)TB`2cgweelShOL{0nlK;P^qI!0(cc1k-1Pb$+mvAvkti hSma-xzXM7{{-v2XkdKD;d@>Cjoe)(1-#IaGHXN#WV$| zLN`WMNqa+GAE3kX3(y>v0~SOz3S<(hK@e43V1M6Z;J?TJjsF#pgA6t{H1ln2uwzu> WW|n4z1_CpP4fO*PC$l6c#0dcUd2lZP diff --git a/Frontend/app/SPL/.gitignore b/Frontend/app/SPL/.gitignore deleted file mode 100644 index a547bf3..0000000 --- a/Frontend/app/SPL/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? From 1fae92a52ac4764241990213dbd269420733a830 Mon Sep 17 00:00:00 2001 From: coraleaf0602 Date: Tue, 12 Mar 2024 10:11:19 +0000 Subject: [PATCH 2/4] added image paths to database --- Backend/database.py | 110 +++++++++++++++++++++++++++++++++++--------- Backend/test.db | Bin 12288 -> 20480 bytes 2 files changed, 87 insertions(+), 23 deletions(-) diff --git a/Backend/database.py b/Backend/database.py index 78afdc0..746c8b6 100644 --- a/Backend/database.py +++ b/Backend/database.py @@ -2,28 +2,92 @@ #Creates new database if one with the same name doesn't already exist def create_table(): - link_lookup_table = {"Laptops and 2-in-1 PC": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sc/laptops", - "XPS": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/xps-laptops", - "Latitude": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/latitude-laptops", - "Inspiron": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/inspiron-laptops", - "Vostro": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/vostro-laptops", - "Alienware": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/alienware-laptops", - "Precision": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/precision-laptops", - "Desktops": "https://www.dell.com/en-ie/shop/desktop-computers/sc/desktops", - "OptiPlex": "https://www.dell.com/en-ie/shop/desktop-computers/sr/desktops/optiplex-desktops", - "Monitors": "https://www.dell.com/en-ie/shop/computer-monitors/ar/8605", - "Docking Stations": "https://www.dell.com/en-ie/shop/docks-and-stands/ar/5441/docking-stations?appliedRefinements=962", - "Audio": "https://www.dell.com/en-ie/shop/audio/ac/8310", - "Keyboards and Mice":"https://www.dell.com/en-ie/shop/keyboards-mice/ar/6591", - "Hard Drives, SSDs and Storage": "https://www.dell.com/en-ie/shop/hard-drives-storage/ar/8496", - "Webcams and Video Conferencing": "https://www.dell.com/en-ie/shop/web-cameras/ar/8332", - "Batteries, Chargers and Power Adapters": "https://www.dell.com/en-ie/shop/pc-accessories/ar/5436/batteries-chargers-power-adapters?appliedRefinements=44426", - "Cables and Adapters": "https://www.dell.com/en-ie/shop/cables/ar/8168/cables-adapters?appliedRefinements=44427", - "Security and Protection": "https://www.dell.com/en-ie/shop/security-protection/ar/7664", - "Parts, Batteries and Upgrades": "https://www.dell.com/en-ie/shop/parts-batteries-upgrades/ar/7566", - "Wi-Fi and Networking": "https://www.dell.com/en-ie/shop/wifi-and-networking/ar/4011", - "Gaming Accessories": "https://www.dell.com/en-ie/shop/gaming-gaming-accessories/ac/6488" - } + link_lookup_table = { + "Laptops and 2-in-1 PC": { + "url" : "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sc/laptops", + "image_path" : "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/page/category/laptop/xps/fy24-family-launch/prod-312204-laptop-xps-16-9640-14-9440-13-9340-sl-800x620.png?fmt=png-alpha&wid=640&hei=496" + }, + "XPS": { + "url" : "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/xps-laptops", + "image_path" : "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/dell-client-products/notebooks/xps-notebooks/xps-13-9320/media-gallery/xs9320t-cnb-00005ff090-sl-oled.psd?qlt=90,0&op_usm=1.75,0.3,2,0&resMode=sharp&pscan=auto&fmt=png-alpha&hei=500" + }, + "Latitude": { + "url" : "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/latitude-laptops", + "image_path" : "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/dell-client-products/notebooks/latitude-notebooks/latitude-14-3440-laptop/media-gallery/notebook-latitude-14-3440-t-dgpu-ir-gray-gallery-12.psd?qlt=90,0&op_usm=1.75,0.3,2,0&resMode=sharp&pscan=auto&fmt=png-alpha&hei=500" + }, + "Inspiron": { + "url": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/inspiron-laptops", + "image_path": "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/dell-client-products/notebooks/inspiron-notebooks/16-7640/media-gallery-ai-key/fpr/laptop-inspiron-16-plus-7640nt-bl-dis-fpr-ai-key-gallery-2.psd?qlt=90,0&op_usm=1.75,0.3,2,0&resMode=sharp&pscan=auto&fmt=png-alpha&hei=500" + }, + "Vostro": { + "url": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/vostro-laptops", + "image_path": "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/dell-client-products/notebooks/vostro-notebooks/vostro-15-3520/media-gallery/black/notebook-vostro-15-3520-gallery-3.psd?qlt=90,0&op_usm=1.75,0.3,2,0&resMode=sharp&pscan=auto&fmt=png-alpha&hei=500" + }, + "Alienware": { + "url": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/alienware-laptops", + "image_path": "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/dell-client-products/notebooks/alienware-notebooks/alienware-m16-r2-intel/media-gallery/laptop-aw-m16r2-nt-bk-gallery-3.psd?qlt=90,0&op_usm=1.75,0.3,2,0&resMode=sharp&pscan=auto&fmt=png-alpha&hei=500" + }, + "Precision": { + "url": "https://www.dell.com/en-ie/shop/laptop-computers-2-in-1-pcs/sr/laptops/precision-laptops", + "image_path": "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/dell-client-products/workstations/mobile-workstations/precision/15-3581/media-gallery/workstation-notebook-precision-15-3581-gray-gallery-2.psd?qlt=90,0&op_usm=1.75,0.3,2,0&resMode=sharp&pscan=auto&fmt=png-alpha&hei=500" + }, + "Desktops": { + "url": "https://www.dell.com/en-ie/shop/desktop-computers/sc/desktops", + "image_path": "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/dell-client-products/desktops/optiplex-desktops/optiplex-d13-tower/spi/7010-tower-plus/prod/prod-275100-desktop-optiplex-7010-plus-mt-800x550.png?fmt=png-alpha&wid=800&hei=550" + }, + "OptiPlex": { + "url": "https://www.dell.com/en-ie/shop/desktop-computers/sr/desktops/optiplex-desktops", + "image_path": "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/page/banners/optiplex-d13-module-banner-desktop-1023x842.png?qlt=95&fit=constrain,1&hei=800&wid=620&fmt=png-alpha" + }, + "Monitors": { + "url": "https://www.dell.com/en-ie/shop/computer-monitors/ar/8605", + "image_path": "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/page/category/desktop/dbcs-255750-aio-desktop-optiplex-7410-keyboard-mouse-km7321w-inspiron-27-7710-km5221w-800x620.png?fmt=png-alpha&wid=640&hei=496" + }, + "Docking Stations": { + "url": "https://www.dell.com/en-ie/shop/docks-and-stands/ar/5441/docking-stations?appliedRefinements=962", + "image_path": "https://i.dell.com/is/image/DellContent//content/dam/images/products/electronics-and-accessories/dell/docks-and-stands/wd19s-130w/wd19s-130w-gnb-shot04-bk-singleusbc.psd?qlt=90,0&op_usm=1.75,0.3,2,0&resMode=sharp&pscan=auto&fmt=png-alpha&hei=500" + }, + "Audio": { + "url": "https://www.dell.com/en-ie/shop/audio/ac/8310", + "image_path": "https://i.dell.com/is/image/DellContent/bb2303g0045-676544-gl-bb-fy23q4-site-banner-wh5024-wl5024-800x620" + }, + "Keyboards and Mice": { + "url": "https://www.dell.com/en-ie/shop/keyboards-mice/ar/6591", + "image_path": "https://i.dell.com/is/image/DellContent//content/dam/ss2/product-images/peripherals/input-devices/dell/keyboards/km7321w/pdp/dell-keyboard-mouse-km7321w-pdp-campaign-hero-504x350.jpg?fmt=jpg&wid=504&hei=350" + }, + "Hard Drives, SSDs and Storage": { + "url": "https://www.dell.com/en-ie/shop/hard-drives-storage/ar/8496", + "image_path": "https://snpi.dell.com/snp/images/products/large/en-ie~400-BKFK_V1/400-BKFK_V1.jpg" + }, + "Webcams and Video Conferencing": { + "url": "https://www.dell.com/en-ie/shop/web-cameras/ar/8332", + "image_path": "https://i.dell.com/is/image/DellContent/content/dam/ss2/product-images/dell-client-products/peripherals/webcams/wb5023-dell-pro-webcam/media-gallery/webcam-wb5023-black-gallery-1-zoom.psd?qlt=90,0&op_usm=1.75,0.3,2,0&resMode=sharp&pscan=auto&fmt=png-alpha&hei=500" + }, + "Batteries, Chargers and Power Adapters": { + "url": "https://www.dell.com/en-ie/shop/pc-accessories/ar/5436/batteries-chargers-power-adapters?appliedRefinements=44426", + "image_path": "https://snpi.dell.com/snp/images/products/large/en-ie~492-BBSC_V3/492-BBSC_V3.jpg" + }, + "Cables and Adapters": { + "url": "https://www.dell.com/en-ie/shop/cables/ar/8168/cables-adapters?appliedRefinements=44427", + "image_path": "https://snpi.dell.com/snp/images/products/large/en-ie~470-AEGY/470-AEGY.jpg" + }, + "Security and Protection": { + "url": "https://www.dell.com/en-ie/shop/security-protection/ar/7664", + "image_path": "https://snpi.dell.com/snp/images/products/large/en-ie~461-AAFB_V2/461-AAFB_V2.jpg" + }, + "Parts, Batteries and Upgrades": { + "url": "https://www.dell.com/en-ie/shop/parts-batteries-upgrades/ar/7566", + "image_path": "https://snpi.dell.com/snp/images/products/large/en-ie~161-BBUS/161-BBUS.jpg" + }, + "Wi-Fi and Networking": { + "url": "https://www.dell.com/en-ie/shop/wifi-and-networking/ar/4011", + "image_path": "https://snpi.dell.com/snp/images/products/large/en-ie~470-AEUP/470-AEUP.jpg" + }, + "Gaming Accessories": { + "url": "https://www.dell.com/en-ie/shop/gaming-gaming-accessories/ac/6488", + "image_path": "https://i.dell.com/is/image/DellContent/content/dam/documents-and-videos/dv2/csbg/en/product-launch/alienware/alienware-pro-wireless-gaming-peripherals/site-banners/keyboard/black/cs2404g0010-680531-gl-cs-co-site-banner-aw-pro-keyboard-800x620-bk-right-transparent.png" + } + } conn = sqlite3.connect('test.db') cur = conn.cursor() @@ -38,7 +102,7 @@ def create_table(): ''' cur.execute(sql) for key, item in link_lookup_table.items(): - insert(key,item,"","") + insert(key,item['url'],item.get('image_path', ''), "") conn.commit() conn.close() diff --git a/Backend/test.db b/Backend/test.db index 0d282699ff7c4a495f2f28d43b139f44b136dd95..6d8f7ad8767a6197f5cb002f836c74f61541249b 100644 GIT binary patch literal 20480 zcmeHOPjB1E6&Iz%N}Nh6u-K;AZVa3ZNs*MS^%|)iJ86(O>%>krzSN+|k<6MR z84hLHE!u@>--@FB06pxj1$yYQK(ECfducB{^b_<8wCJgCh8$XQtZ3b64Rn_Z5_0~( z`MozYZ+?&2c>351aJl9B9X%*3nQvwUA@hTBIg=4S%49MZ;V=IQ@N$7C;7QYCe$Yo{ z`+A}D?@YFo%an4Z&&M=Ki&F$r1X2W21X2W21X2W21X2W21X2W21X2XPECl*@h5XeU zH-vC4(3>{i#3a}pddc2>@B8CAo?#PBUIuv}-jO49wToSnM5dPB%q zj*0ilD;sX~+j=)}S$aDWcw0_ha{%Tg3Mjqc3#I?C*XTiC(_e}}ia?4$ia?4$ia?4$ zia?4$ia?4$ia?4$iojO}feRs;hRM8J)H2226knFMOZSVPmi}4%SLqMMKbHPl{73Qg zqEUQR)QZ0>%@%)O`bDW!{M%P%_US}Y1X2W21X2W21X2W21X2W21X2W21isb?6#t$< z>$)G1xl$n`MQ`P09WarTMDV@bgY0oCz`lh^S$E9xbFb~|5U>^+)48kJrLJkYLbZ^) zo?UYtD{y@xNHp~^M6=gzyf26}wSviR;Ce);6mvJS>pnIt0>N$p(d3eCVW+42SeUz# zyOw?7lE8O`JG9+Hhj^9`6>rnjV?D5fu8D=&OSyNlFV{DOTkqxSknPdFnRHcTIY=(A z-xEH#nv=5+^p54U%S(oV332HhgoSH4E&GXu?pv(E6CCthe-~;AAHJVk$ZlYx>s!GA zD_r;802?$cFU)^Cr)2NZZw8`)mP{BG!))t!a$DJDJ%}KhE8pAE{WcUt9k@O0my^1+ zo4JSCPjJ)FJ5l)y%fxQ^p6j%*j~#tVFdp0ABc%Kv3z_ z9^r$g3)P~cHOs()@@@`gS6qY6ro0gVTCPI`xiJ0bOg{5j=JKyDDO10_crEw4Yz2~| z|D5ycIGheq{ziZC=xHIbjGZ9x$cLiX>-8!ow(W}Hc0}wT3yWmO^+cQL96_$vrD{Nt z;*n<%k@#^j5j}2cC~81>zt(ZD77^JO8sZ9!1F8tH6NpCqH1&>1NEJGA&8`t3R+ETS zBxF##4NzP}L~2JQMqTWLZ-c58kC=B~*}-B%nv-T+Z@Wu6i*lu|%}Etyt_pcRCTp&V7YSIVH{%gQ zcNXcVBQvc|u;@8$q}$$(KC^?ZMNN{zy>O0cW44eiOpe-HYD4D>{XDe60VLw_u&3p9 zICXRe3ypzAyuOHnkM0?iJ?Gk9iDu zoWX3kDxCnjY3s(W$Sb4ax?djPu<_i^U+*s*JumQsWbf z>^GdRHj+_~wUK1WDpFKciUm5c8hCvujr<+Ns|UzzdtGGt!)Jgzab1Kj!&~`x`ts4m z0=QWdQp3JS&Q}9;Kn^AmX-Za5LwRlc*(WqJK!(#q68yAQOKM1n*vPf9Iq_{?3O~r# z`_~R!7Nl7P!~;0VuWW7(2{I zLW*3iN@}cU#4xX+25dpph#S=AnGWCy@Xkxpeyu81zzMlK?2Pm*a}gRbr$lYk;3L+> zbM{Kp;Zg)r1X2Y4{}Cv_6pGm^nc|-cpMB%t%H?VE^2()O=POeS7k_%;FBjg+b)hi* zeH{=8Tj4@p?w5|fUwEAw<1WLfTYj67X>b9coEp-PIW0JW z2~gncaEAgG(+Q|Q)BkSxVP5O!`Zo)wk&PUxQCRn^mc?#=8~F$Q0top=u9puvN?MpUD6q*% zP}Ge%Vk&Z7tJQe>vxzL%WVF2ed;>1A(F+s#b~vA309?hw2&$G3HcD6$GrUxvF}us; ztkqQB^lWmfAl}l_{pIZ!RdL{*N&8V)&nx`}0QeN{m=8BfQiIXWRJeJ$HV_p@;+Tbjsn6LT&0HIr>iF%|!jU znf7oK0nZOR5HOISK}D(ZCIicMV&wDSeg{L-2!q&bYEo4}jI3sRB+Ea+Hbj+CT$gQ% z3CAO&pSW&k(ih;q6soZ6&?WrFI0uJolr4d!n8;*75=5fV2tyj~i@fO>mw+Up>6Y4Dux?psXGhv3L?3r?dvR+b8 zJbp!O;JF}*764BJ?h66&ZQLbIW6}#fyctSU*FQa6E%4azIGA}n4@@!&CbI=ylQiCN zoQ;f$+YQrM5XGiZY0+!~pjAz)YZ9>BE-WCHk6eghdl17$brrnB5z8fE&Z~7)uhV)R ztqSXmdx+!7t?*l+2*mfD@Mi@cHRsbEX^ydk94{91jKwBmA~(@TKAyF=VLzt0KjYAQN(8+pfceTi=MK0r|7U*%p2H)!$RvGV zyuW?6Pi+0vI^1&BQf7a#hwRPM?TD9U%0w+?^AO_i@gP2)n(y*C!xn@+2n)KVT6)T! z@PsxX-daq0Q%JZvbMvU%^DkxKOtufdU*?$yC_o471jN&mC00fq^ndNl8XBe(HV1KV z<{on&4bj(a3gW%lB3ng+bk2s3$y8jxGuhj084b{B=NjUe6v98VX{Let>7<>8_{H2N zYYV84UbA(G=jIQX5)wUm)5*S)dT}Y2WFDcY)8~{QF06SAsMnL&g}9Ku^x;vMipm{rV8OK)5(_2Z7fY@je5wWpobSjB-*6DG$ioQ%3? z-cCVS(oM_Iab`02cEaDTprF%~hA^+04b{*!_adxbLaZ(~oO)A1ofj#5dSm^Axa!{< zY@tGAW~Zj=K!B7$How3yLAOhH8@O~;v77eAUnyRjWu#1_xs%TGT zLjj>yiYJ?Lpv!%CWdwpQEz6c_?bH;|$xs2BEEiWm0Dp@|_>K^jAanATs%?mwYE>~! z-B1-13}a5>!4SSC^+X23RFa&PD|N*bWvwP=YR+DYquY-kOQWCxXyDeBfO hDZ3S2HfqguL9HsFH%P_EtX|!8=d4(cjjoxX=P$Kl(FFhi From d72a64fe38223120e06ccc4427b062a8135903ed Mon Sep 17 00:00:00 2001 From: Daniel Preda Date: Thu, 14 Mar 2024 17:29:26 +0000 Subject: [PATCH 3/4] Renders component on website, webscraping of text uses as task --- Frontend/app/SPL/package-lock.json | 778 +++++++++++++++++- Frontend/app/SPL/package.json | 8 +- .../app/SPL/public/assets/js/initializeUI.js | 11 + Frontend/app/SPL/public/manifest.json | 21 + Frontend/app/SPL/src/App.tsx | 54 +- Frontend/app/SPL/src/SideBar3.tsx | 41 +- Frontend/app/SPL/src/SideBar3Data.tsx | 29 +- Frontend/app/SPL/src/main.tsx | 18 +- Frontend/app/SPL/src/styles.css | 36 +- Frontend/app/SPL/vite.config.ts | 12 +- 10 files changed, 885 insertions(+), 123 deletions(-) create mode 100644 Frontend/app/SPL/public/assets/js/initializeUI.js create mode 100644 Frontend/app/SPL/public/manifest.json diff --git a/Frontend/app/SPL/package-lock.json b/Frontend/app/SPL/package-lock.json index 25c41fb..8cdcfdd 100644 --- a/Frontend/app/SPL/package-lock.json +++ b/Frontend/app/SPL/package-lock.json @@ -8,11 +8,17 @@ "name": "package", "version": "0.0.0", "dependencies": { + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.0", + "@mui/material": "^5.15.13", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-frame-component": "^5.2.6", "react-icons": "^5.0.1", + "react-loading-icons": "^1.1.0", "react-router-dom": "^6.22.2", - "styled-components": "^6.1.8" + "styled-components": "^6.1.8", + "vite-tsconfig-paths": "^4.3.1" }, "devDependencies": { "@types/react": "^18.2.56", @@ -53,7 +59,6 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -188,7 +193,6 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, "dependencies": { "@babel/types": "^7.22.15" }, @@ -252,7 +256,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -261,7 +264,6 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -293,7 +295,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -345,6 +346,17 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/template": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", @@ -384,7 +396,6 @@ "version": "7.24.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -394,6 +405,67 @@ "node": ">=6.9.0" } }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, "node_modules/@emotion/is-prop-valid": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", @@ -407,11 +479,96 @@ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, + "node_modules/@emotion/react": { + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", + "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/serialize/node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@emotion/unitless": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", @@ -873,6 +1030,40 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", + "dependencies": { + "@floating-ui/dom": "^1.6.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -976,6 +1167,236 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.39", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.39.tgz", + "integrity": "sha512-puyUptF7VJ+9/dMIRLF+DLR21cWfvejsA6OnatfJfqFp8aMhya7xQtvYLEfCch6ahvFZvNC9FFEGGR+qkgFjUg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.13", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.15.13", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.13.tgz", + "integrity": "sha512-ERsk9EWpiitSiKnmUdFJGshtFk647l4p7r+mjRWe/F1l5kT1NTTKkaeDLcK3/lsy0udXjMgcG0bNwzbYBdDdhQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/material": { + "version": "5.15.13", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.13.tgz", + "integrity": "sha512-E+QisOJcIzTTyeJ0o3lgYMcyrmCydb2S4cn9vTtGpIB9uR6fQ6La3dIGsXgYEGyeOB9YkWzQbNzYzvyODGEWKA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.39", + "@mui/core-downloads-tracker": "^5.15.13", + "@mui/system": "^5.15.13", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.13", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/private-theming": { + "version": "5.15.13", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.13.tgz", + "integrity": "sha512-j5Z2pRi6talCunIRIzpQERSaHwLd5EPdHMwIKDVCszro1RAzRZl7WmH68IMCgQmJMeglr+FalqNuq048qptGAg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.13", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.15.11", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.11.tgz", + "integrity": "sha512-So21AhAngqo07ces4S/JpX5UaMU2RHXpEA6hNzI6IQjd/1usMPxpgK8wkGgTe3JKmC2KDmH8cvoycq5H3Ii7/w==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.15.13", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.13.tgz", + "integrity": "sha512-eHaX3sniZXNWkxX0lmcLxROhQ5La0HkOuF7zxbSdAoHUOk07gboQYmF6hSJ/VBFx/GLanIw67FMTn88vc8niLg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.13", + "@mui/styled-engine": "^5.15.11", + "@mui/types": "^7.2.13", + "@mui/utils": "^5.15.13", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.13.tgz", + "integrity": "sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.13", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.13.tgz", + "integrity": "sha512-qNlR9FLEhORC4zVZ3fzF48213EhP/92N71AcFbhHN73lPJjAbq9lUv+71P7uEdRHdrrOlm8+1zE8/OBy6MUqdg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1011,6 +1432,15 @@ "node": ">= 8" } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@remix-run/router": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.2.tgz", @@ -1233,7 +1663,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "devOptional": true }, "node_modules/@types/json-schema": { "version": "7.0.15", @@ -1241,17 +1671,20 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, "node_modules/@types/prop-types": { "version": "15.7.11", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", - "dev": true + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/react": { "version": "18.2.61", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.61.tgz", "integrity": "sha512-NURTN0qNnJa7O/k4XUkEW2yfygA+NxS0V5h1+kp9jPwhzZy95q3ADoGMP0+JypMhrZBTTgjKAUlTctde1zzeQA==", - "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -1267,11 +1700,18 @@ "@types/react": "*" } }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/scheduler": { "version": "0.16.8", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", - "dev": true + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "node_modules/@types/semver": { "version": "7.5.8", @@ -1549,7 +1989,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -1572,6 +2011,20 @@ "node": ">=8" } }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1635,7 +2088,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -1672,7 +2124,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -1682,11 +2133,18 @@ "node": ">=4" } }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -1694,8 +2152,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/concat-map": { "version": "0.0.1", @@ -1709,6 +2166,21 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1744,14 +2216,12 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1794,17 +2264,34 @@ "node": ">=6.0.0" } }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.690", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.690.tgz", "integrity": "sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==", "dev": true }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, "node_modules/esbuild": { "version": "0.19.12", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", - "dev": true, + "devOptional": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -1851,7 +2338,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -2217,6 +2703,11 @@ "node": ">=8" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -2273,6 +2764,14 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -2365,6 +2864,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==" + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -2375,11 +2879,29 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "engines": { "node": ">=4" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -2393,7 +2915,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2430,6 +2951,22 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2510,6 +3047,11 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2556,6 +3098,11 @@ "node": ">= 0.8.0" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -2637,8 +3184,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nanoid": { "version": "3.3.7", @@ -2669,6 +3215,14 @@ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2729,7 +3283,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -2737,6 +3290,23 @@ "node": ">=6" } }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -2764,11 +3334,15 @@ "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "engines": { "node": ">=8" } @@ -2794,7 +3368,7 @@ "version": "8.4.35", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", - "dev": true, + "devOptional": true, "funding": [ { "type": "opencollective", @@ -2832,6 +3406,16 @@ "node": ">= 0.8.0" } }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -2884,6 +3468,16 @@ "react": "^18.2.0" } }, + "node_modules/react-frame-component": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/react-frame-component/-/react-frame-component-5.2.6.tgz", + "integrity": "sha512-CwkEM5VSt6nFwZ1Op8hi3JB5rPseZlmnp5CGiismVTauE6S4Jsc4TNMlT0O7Cts4WgIC3ZBAQ2p1Mm9XgLbj+w==", + "peerDependencies": { + "prop-types": "^15.5.9", + "react": ">= 16.3", + "react-dom": ">= 16.3" + } + }, "node_modules/react-icons": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz", @@ -2892,6 +3486,19 @@ "react": "*" } }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-loading-icons": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/react-loading-icons/-/react-loading-icons-1.1.0.tgz", + "integrity": "sha512-Y9eZ6HAufmUd8DIQd6rFrx5Bt/oDlTM9Nsjvf8YpajTa3dI8cLNU8jUN5z7KTANU+Yd6/KJuBjxVlrU2dMw33g==", + "engines": { + "node": ">= 12.0.0" + } + }, "node_modules/react-refresh": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", @@ -2931,11 +3538,46 @@ "react-dom": ">=16.8" } }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "engines": { "node": ">=4" } @@ -2969,7 +3611,7 @@ "version": "4.12.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", - "dev": true, + "devOptional": true, "dependencies": { "@types/estree": "1.0.5" }, @@ -3096,6 +3738,14 @@ "node": ">=8" } }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -3196,7 +3846,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -3204,6 +3853,17 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -3214,7 +3874,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, "engines": { "node": ">=4" } @@ -3243,6 +3902,25 @@ "typescript": ">=4.2.0" } }, + "node_modules/tsconfck": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.0.3.tgz", + "integrity": "sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -3276,7 +3954,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true, + "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3328,7 +4006,7 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.4.tgz", "integrity": "sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==", - "dev": true, + "devOptional": true, "dependencies": { "esbuild": "^0.19.3", "postcss": "^8.4.35", @@ -3379,6 +4057,24 @@ } } }, + "node_modules/vite-tsconfig-paths": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.1.tgz", + "integrity": "sha512-cfgJwcGOsIxXOLU/nELPny2/LUD/lcf1IbfyeKTv2bsupVbTH/xpFtdQlBmIP1GEK2CjjLxYhFfB+QODFAx5aw==", + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.1" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3406,6 +4102,14 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/Frontend/app/SPL/package.json b/Frontend/app/SPL/package.json index a8e866e..db57de7 100644 --- a/Frontend/app/SPL/package.json +++ b/Frontend/app/SPL/package.json @@ -10,11 +10,17 @@ "preview": "vite preview" }, "dependencies": { + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.0", + "@mui/material": "^5.15.13", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-frame-component": "^5.2.6", "react-icons": "^5.0.1", + "react-loading-icons": "^1.1.0", "react-router-dom": "^6.22.2", - "styled-components": "^6.1.8" + "styled-components": "^6.1.8", + "vite-tsconfig-paths": "^4.3.1" }, "devDependencies": { "@types/react": "^18.2.56", diff --git a/Frontend/app/SPL/public/assets/js/initializeUI.js b/Frontend/app/SPL/public/assets/js/initializeUI.js new file mode 100644 index 0000000..ae373a7 --- /dev/null +++ b/Frontend/app/SPL/public/assets/js/initializeUI.js @@ -0,0 +1,11 @@ + +;(async () => { + const app = document.createElement('div') + app.id = 'root' + app.className = "SideBarDesign"; + const side = document.getElementsByClassName("ul.dds__list dds__flex-column dds__pl-0 dds__text-right dds-link-tabs"); + side[0].appendChild(app); + const src = chrome?.runtime?.getURL('/react/index.js') + const event = new CustomEvent("pass-text",{text:"hello world"}); + await import(src) + })() \ No newline at end of file diff --git a/Frontend/app/SPL/public/manifest.json b/Frontend/app/SPL/public/manifest.json new file mode 100644 index 0000000..4e88ebe --- /dev/null +++ b/Frontend/app/SPL/public/manifest.json @@ -0,0 +1,21 @@ +{ + "manifest_version": 3, + "name": "Writesonic", + "description": "Writesonic Chrome Extension", + "version": "1.0.0", + "content_scripts": [ + { + "matches": ["https://www.dell.com/support/kbdoc/*"], + "js": ["/assets/js/initializeUI.js"], + "css":["/react/index.css"], + "run_at": "document_end", + "all_frames": true + } + ], + "web_accessible_resources": [ + { + "resources": ["./alienware.jpg","/react/index.js", "/react/vendor.js", "/react/index.css"], + "matches": [""] + } + ] +} \ No newline at end of file diff --git a/Frontend/app/SPL/src/App.tsx b/Frontend/app/SPL/src/App.tsx index 76bcf03..a064211 100644 --- a/Frontend/app/SPL/src/App.tsx +++ b/Frontend/app/SPL/src/App.tsx @@ -1,25 +1,25 @@ import "./App.css"; //import Sidebar from "./Components/SideBar"; //import Product from "./Components/ProductBar"; -import { useState, } from "react"; import "./styles.css" +import CircularProgress from "@mui/material/CircularProgress"; +import Box from "@mui/material/Box" import SideBar3 from "./SideBar3"; +import { useEffect, useState } from "react"; -function App() { - const [inputText, setInputText] = useState(""); +function App(data:any) { const [responseData,setResponseData] = useState([]); + const [finished,setFinished] = useState(false); - const handleChange = (event: React.ChangeEvent) => { - setInputText(event.target.value); - }; - - function handleTextSubmit (text:string) { - fetch("http://127.0.0.1:5000/start-task",{ + useEffect(() =>{ + if(data !== "") { + console.log(data.data); + fetch("http://127.0.0.1:5000/start-task",{ method:"POST", headers:{ "Content-Type":"application/json" }, - body:JSON.stringify({"text":text}) + body:JSON.stringify({"text":data.data}) }) .then((response) => {return response.json()}).then((data) => { return new Promise((resolve) => { @@ -36,36 +36,12 @@ function App() { }) }) .then((res:any) => {return res.json()}) - .then((data) => {console.log(data);setResponseData(data.category_links)}) + .then((data) => {setResponseData(data.category_links);setFinished(true)}) .catch(err => console.error(err)); - } - return ( - <> -
- - - -
-
- {/* Display the submitted text }*/} - {inputText &&
Submitted Text: {inputText}
} -
-
- -
- - ); + } + },[data]) + + return(!finished?:) } export default App; diff --git a/Frontend/app/SPL/src/SideBar3.tsx b/Frontend/app/SPL/src/SideBar3.tsx index c6d68f3..8fd011b 100644 --- a/Frontend/app/SPL/src/SideBar3.tsx +++ b/Frontend/app/SPL/src/SideBar3.tsx @@ -1,30 +1,31 @@ + import { Link } from "react-router-dom"; //import { SideBar3Data } from "./SideBar3Data"; import "./styles.css" -function SideBar3({ responseData }:any) { +function SideBar3({dataList}:any) { return ( -
-
    - {responseData.map((item:any, index:number) => - {return ( -
    - {item.category} - -
    - Image +
    + Suggested Products +
    + {dataList.map((item:any, index:number) => + {return ( +
    + {item.category} + +
    + -
    - -
    - )})} -
-
+ + + + )})} + ); } diff --git a/Frontend/app/SPL/src/SideBar3Data.tsx b/Frontend/app/SPL/src/SideBar3Data.tsx index 3772c09..b4a59cb 100644 --- a/Frontend/app/SPL/src/SideBar3Data.tsx +++ b/Frontend/app/SPL/src/SideBar3Data.tsx @@ -1,11 +1,7 @@ -import { useState } from "react"; -import * as FaIcons from "react-icons/fa"; -import * as AiIcons from "react-icons/ai"; -import * as IoIcons from "react-icons/io"; export const SideBar3Data = [ { - image1: "./xps2Standard.jpg", + image1: "./alienware.jpg", image2: ".xps2Dynamic.jpg", title: "Image1", path: "https://www.dell.com/en-ie", @@ -40,5 +36,26 @@ export const SideBar3Data = [ path: "https://www.dell.com/en-ie", price: "$300", className: "nav-text", - }, + }, { + image1: "./alienware.jpg", + image2: ".xps2Dynamic.jpg", + title: "Image1", + path: "https://www.dell.com/en-ie", + price: "$300", + className: "nav-text", + }, { + image1: "./alienware.jpg", + image2: ".xps2Dynamic.jpg", + title: "Image1", + path: "https://www.dell.com/en-ie", + price: "$300", + className: "nav-text", + }, { + image1: "./alienware.jpg", + image2: ".xps2Dynamic.jpg", + title: "Image1", + path: "https://www.dell.com/en-ie", + price: "$300", + className: "nav-text", + } ]; diff --git a/Frontend/app/SPL/src/main.tsx b/Frontend/app/SPL/src/main.tsx index 2512955..90da564 100644 --- a/Frontend/app/SPL/src/main.tsx +++ b/Frontend/app/SPL/src/main.tsx @@ -4,9 +4,23 @@ import ReactDOM from 'react-dom/client' import App from './App.tsx' import './index.css' +const e = document.getElementById("tabcontent"); +const potentialTexts = e?.getElementsByClassName("dds__mb-4 content-heading_details"); +let text = ""; +if(potentialTexts){ + for (let i = 0; i - + - ) diff --git a/Frontend/app/SPL/src/styles.css b/Frontend/app/SPL/src/styles.css index bb0fa13..be97d5d 100644 --- a/Frontend/app/SPL/src/styles.css +++ b/Frontend/app/SPL/src/styles.css @@ -1,32 +1,28 @@ .SideBarDesign { - background-color: fffff; - border-color: #66afe9; - outline: 0; + height: 90%; + overflow-y: scroll; + scrollbar-width: none; + max-height: 700px; + width: 90%; + border-radius: 12px; box-shadow: 0px 0px 50px rgba(15, 59, 252, 0.5); - width: 200px; - height: 100vh; /* Changed height to viewport height */ - display: flex; - flex-direction: column; /* Adjusted to column layout */ - align-items: center; /* Center horizontally */ - top: 150px; - overflow-y: auto; /* Added to enable vertical scrolling */ } .form-label{ padding: 0px 8px; } +.ElementDiv { + float: left; +} + .BarText { - padding: 8px 0px; list-style-type: none; text-decoration: none; color: white; font-size: 18px; width: 95%; height: 100%; - display: flex; - align-items: center; - padding: 0 16px; border-radius: 4px; } .BarTextA { @@ -42,14 +38,20 @@ } .nav-menu-items{ - margin-right: 50px; + padding-inline-start: 0px; + width: 100%; +} + +.text-heading{ + margin-bottom: 10px; } .BarItems { width: 100%; } .ImageContainer { - display: flex; - box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.5); + height: 100%; + width: 100%; + /* box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.5); */ margin-bottom: 10px; } \ No newline at end of file diff --git a/Frontend/app/SPL/vite.config.ts b/Frontend/app/SPL/vite.config.ts index 5a33944..ef7eb28 100644 --- a/Frontend/app/SPL/vite.config.ts +++ b/Frontend/app/SPL/vite.config.ts @@ -1,7 +1,17 @@ import { defineConfig } from 'vite' +import tsconfigPaths from 'vite-tsconfig-paths' import react from '@vitejs/plugin-react' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [react(), tsconfigPaths()], + build: { + rollupOptions: { + output: { + entryFileNames: `react/[name].js`, + chunkFileNames: `react/[name].js`, + assetFileNames: `react/[name].[ext]`, + }, + }, + }, }) From 312595bf57d2822eb20b8da83eb8fa0b461261ee Mon Sep 17 00:00:00 2001 From: Sanjanaa <91387643+adhyatms@users.noreply.github.com> Date: Fri, 15 Mar 2024 17:08:01 +0000 Subject: [PATCH 4/4] Create react-app.yml --- .github/workflows/react-app.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/react-app.yml diff --git a/.github/workflows/react-app.yml b/.github/workflows/react-app.yml new file mode 100644 index 0000000..2206e1a --- /dev/null +++ b/.github/workflows/react-app.yml @@ -0,0 +1,33 @@ +name: CI/CD for Frontend (React + CSS) + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install Node.js + uses: actions/setup-node@v2 + with: + node-version: '14' + + - name: Install dependencies + run: npm install react react-dom react-scripts + + - name: Build + run: npm run build + + #- name: Run tests + # run: npm test -- --coverage + + \ No newline at end of file