diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..c01ca15 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,38 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "FRONT: DEBUG(Edge)", + "request": "launch", + "type": "msedge", + "url": "http://localhost:4200", + "webRoot": "${workspaceFolder}/front", + "preLaunchTask": "Start Node server with nvs latest", + }, + { + "name": "Attach Edge", + "type": "msedge", + "request": "attach", + "url": "http://localhost:4200/#", + "webRoot": "${workspaceFolder}" + }, + { + "name": "Launch Edge (Test)", + "type": "msedge", + "request": "launch", + "url": "http://localhost:9876/debug.html", + "webRoot": "${workspaceFolder}" + }, + { + "name": "Launch Edge (E2E)", + "type": "node", + "request": "launch", + "program": "${workspaceFolder}/node_modules/protractor/bin/protractor", + "protocol": "inspector", + "args": ["${workspaceFolder}/protractor.conf.js"] + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..8abcc00 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,21 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Start Node server with nvs latest", + "type": "shell", + "command": "nvs use latest && npm run start", + "options": { + "cwd": "${workspaceFolder}/front" + }, + "isBackground": true, + "problemMatcher": [], + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared" + } + } + ] +} \ No newline at end of file diff --git a/front/.editorconfig b/front/.editorconfig index f166060..d92628d 100644 --- a/front/.editorconfig +++ b/front/.editorconfig @@ -3,8 +3,8 @@ root = true [*] charset = utf-8 -indent_style = space -indent_size = 2 +indent_style = tab +indent_size = 4 insert_final_newline = true trim_trailing_whitespace = true diff --git a/front/.gitkeep b/front/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/front/public/assets/fotosPrueba/1.jpg b/front/public/assets/fotosPrueba/1.jpg new file mode 100644 index 0000000..33f9dd3 Binary files /dev/null and b/front/public/assets/fotosPrueba/1.jpg differ diff --git a/front/public/assets/fotosPrueba/10.jpg b/front/public/assets/fotosPrueba/10.jpg new file mode 100644 index 0000000..f734031 Binary files /dev/null and b/front/public/assets/fotosPrueba/10.jpg differ diff --git a/front/public/assets/fotosPrueba/11.jpg b/front/public/assets/fotosPrueba/11.jpg new file mode 100644 index 0000000..e248cab Binary files /dev/null and b/front/public/assets/fotosPrueba/11.jpg differ diff --git a/front/public/assets/fotosPrueba/12.jpg b/front/public/assets/fotosPrueba/12.jpg new file mode 100644 index 0000000..552bd45 Binary files /dev/null and b/front/public/assets/fotosPrueba/12.jpg differ diff --git a/front/public/assets/fotosPrueba/13.jpg b/front/public/assets/fotosPrueba/13.jpg new file mode 100644 index 0000000..5351963 Binary files /dev/null and b/front/public/assets/fotosPrueba/13.jpg differ diff --git a/front/public/assets/fotosPrueba/14.jpg b/front/public/assets/fotosPrueba/14.jpg new file mode 100644 index 0000000..fb1f157 Binary files /dev/null and b/front/public/assets/fotosPrueba/14.jpg differ diff --git a/front/public/assets/fotosPrueba/15.jpg b/front/public/assets/fotosPrueba/15.jpg new file mode 100644 index 0000000..6e8da57 Binary files /dev/null and b/front/public/assets/fotosPrueba/15.jpg differ diff --git a/front/public/assets/fotosPrueba/16.jpg b/front/public/assets/fotosPrueba/16.jpg new file mode 100644 index 0000000..12b916f Binary files /dev/null and b/front/public/assets/fotosPrueba/16.jpg differ diff --git a/front/public/assets/fotosPrueba/17.jpg b/front/public/assets/fotosPrueba/17.jpg new file mode 100644 index 0000000..7504e85 Binary files /dev/null and b/front/public/assets/fotosPrueba/17.jpg differ diff --git a/front/public/assets/fotosPrueba/18.jpg b/front/public/assets/fotosPrueba/18.jpg new file mode 100644 index 0000000..56f9aa0 Binary files /dev/null and b/front/public/assets/fotosPrueba/18.jpg differ diff --git a/front/public/assets/fotosPrueba/19.jpg b/front/public/assets/fotosPrueba/19.jpg new file mode 100644 index 0000000..e14cbbb Binary files /dev/null and b/front/public/assets/fotosPrueba/19.jpg differ diff --git a/front/public/assets/fotosPrueba/2.jpg b/front/public/assets/fotosPrueba/2.jpg new file mode 100644 index 0000000..37534e0 Binary files /dev/null and b/front/public/assets/fotosPrueba/2.jpg differ diff --git a/front/public/assets/fotosPrueba/20.jpg b/front/public/assets/fotosPrueba/20.jpg new file mode 100644 index 0000000..22e7c15 Binary files /dev/null and b/front/public/assets/fotosPrueba/20.jpg differ diff --git a/front/public/assets/fotosPrueba/21.jpg b/front/public/assets/fotosPrueba/21.jpg new file mode 100644 index 0000000..fd38e0c Binary files /dev/null and b/front/public/assets/fotosPrueba/21.jpg differ diff --git a/front/public/assets/fotosPrueba/22.jpg b/front/public/assets/fotosPrueba/22.jpg new file mode 100644 index 0000000..3d8686e Binary files /dev/null and b/front/public/assets/fotosPrueba/22.jpg differ diff --git a/front/public/assets/fotosPrueba/23.jpg b/front/public/assets/fotosPrueba/23.jpg new file mode 100644 index 0000000..495b6a9 Binary files /dev/null and b/front/public/assets/fotosPrueba/23.jpg differ diff --git a/front/public/assets/fotosPrueba/24.jpg b/front/public/assets/fotosPrueba/24.jpg new file mode 100644 index 0000000..be83906 Binary files /dev/null and b/front/public/assets/fotosPrueba/24.jpg differ diff --git a/front/public/assets/fotosPrueba/25.jpg b/front/public/assets/fotosPrueba/25.jpg new file mode 100644 index 0000000..4e975a2 Binary files /dev/null and b/front/public/assets/fotosPrueba/25.jpg differ diff --git a/front/public/assets/fotosPrueba/26.jpg b/front/public/assets/fotosPrueba/26.jpg new file mode 100644 index 0000000..8e3e421 Binary files /dev/null and b/front/public/assets/fotosPrueba/26.jpg differ diff --git a/front/public/assets/fotosPrueba/27.jpg b/front/public/assets/fotosPrueba/27.jpg new file mode 100644 index 0000000..607c33c Binary files /dev/null and b/front/public/assets/fotosPrueba/27.jpg differ diff --git a/front/public/assets/fotosPrueba/28.jpg b/front/public/assets/fotosPrueba/28.jpg new file mode 100644 index 0000000..99b2247 Binary files /dev/null and b/front/public/assets/fotosPrueba/28.jpg differ diff --git a/front/public/assets/fotosPrueba/29.jpg b/front/public/assets/fotosPrueba/29.jpg new file mode 100644 index 0000000..ff62356 Binary files /dev/null and b/front/public/assets/fotosPrueba/29.jpg differ diff --git a/front/public/assets/fotosPrueba/3.jpg b/front/public/assets/fotosPrueba/3.jpg new file mode 100644 index 0000000..0278945 Binary files /dev/null and b/front/public/assets/fotosPrueba/3.jpg differ diff --git a/front/public/assets/fotosPrueba/30.jpg b/front/public/assets/fotosPrueba/30.jpg new file mode 100644 index 0000000..c4a2bbe Binary files /dev/null and b/front/public/assets/fotosPrueba/30.jpg differ diff --git a/front/public/assets/fotosPrueba/31.jpg b/front/public/assets/fotosPrueba/31.jpg new file mode 100644 index 0000000..faf129e Binary files /dev/null and b/front/public/assets/fotosPrueba/31.jpg differ diff --git a/front/public/assets/fotosPrueba/32.jpg b/front/public/assets/fotosPrueba/32.jpg new file mode 100644 index 0000000..833121c Binary files /dev/null and b/front/public/assets/fotosPrueba/32.jpg differ diff --git a/front/public/assets/fotosPrueba/33.jpg b/front/public/assets/fotosPrueba/33.jpg new file mode 100644 index 0000000..f9e03c4 Binary files /dev/null and b/front/public/assets/fotosPrueba/33.jpg differ diff --git a/front/public/assets/fotosPrueba/4.jpg b/front/public/assets/fotosPrueba/4.jpg new file mode 100644 index 0000000..002d9d3 Binary files /dev/null and b/front/public/assets/fotosPrueba/4.jpg differ diff --git a/front/public/assets/fotosPrueba/5.jpg b/front/public/assets/fotosPrueba/5.jpg new file mode 100644 index 0000000..1e78ffb Binary files /dev/null and b/front/public/assets/fotosPrueba/5.jpg differ diff --git a/front/public/assets/fotosPrueba/6.jpg b/front/public/assets/fotosPrueba/6.jpg new file mode 100644 index 0000000..5216342 Binary files /dev/null and b/front/public/assets/fotosPrueba/6.jpg differ diff --git a/front/public/assets/fotosPrueba/7.jpg b/front/public/assets/fotosPrueba/7.jpg new file mode 100644 index 0000000..df333b7 Binary files /dev/null and b/front/public/assets/fotosPrueba/7.jpg differ diff --git a/front/public/assets/fotosPrueba/8.jpg b/front/public/assets/fotosPrueba/8.jpg new file mode 100644 index 0000000..d90c75d Binary files /dev/null and b/front/public/assets/fotosPrueba/8.jpg differ diff --git a/front/public/assets/fotosPrueba/9.jpg b/front/public/assets/fotosPrueba/9.jpg new file mode 100644 index 0000000..8ad3851 Binary files /dev/null and b/front/public/assets/fotosPrueba/9.jpg differ diff --git a/front/public/assets/icons/_fix-svg-stroke.js b/front/public/assets/icons/_fix-svg-stroke.js new file mode 100644 index 0000000..9267d71 --- /dev/null +++ b/front/public/assets/icons/_fix-svg-stroke.js @@ -0,0 +1,12 @@ +const fs = require('fs'); +const path = require('path'); + +const iconsDir = path.join(__dirname, 'public', 'assets', 'icons'); +fs.readdirSync(iconsDir).forEach(file => { + if (file.endsWith('.svg')) { + const filePath = path.join(iconsDir, file); + let content = fs.readFileSync(filePath, 'utf8'); + content = content.replace(/stroke="#[0-9a-fA-F]{3,6}"/g, 'stroke="currentColor"'); + fs.writeFileSync(filePath, content, 'utf8'); + } +}); \ No newline at end of file diff --git a/front/public/assets/icons/add-square-svgrepo-com.svg b/front/public/assets/icons/add-square-svgrepo-com.svg new file mode 100644 index 0000000..730bddd --- /dev/null +++ b/front/public/assets/icons/add-square-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/add-svgrepo-com.svg b/front/public/assets/icons/add-svgrepo-com.svg new file mode 100644 index 0000000..50d7f77 --- /dev/null +++ b/front/public/assets/icons/add-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/alert-square-svgrepo-com.svg b/front/public/assets/icons/alert-square-svgrepo-com.svg new file mode 100644 index 0000000..275cc48 --- /dev/null +++ b/front/public/assets/icons/alert-square-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/align-justify-svgrepo-com.svg b/front/public/assets/icons/align-justify-svgrepo-com.svg new file mode 100644 index 0000000..c713ed6 --- /dev/null +++ b/front/public/assets/icons/align-justify-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/align-left-svgrepo-com.svg b/front/public/assets/icons/align-left-svgrepo-com.svg new file mode 100644 index 0000000..8e15fcb --- /dev/null +++ b/front/public/assets/icons/align-left-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/align-right-svgrepo-com.svg b/front/public/assets/icons/align-right-svgrepo-com.svg new file mode 100644 index 0000000..6a7381b --- /dev/null +++ b/front/public/assets/icons/align-right-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/arrow-down-left-svgrepo-com.svg b/front/public/assets/icons/arrow-down-left-svgrepo-com.svg new file mode 100644 index 0000000..7353a12 --- /dev/null +++ b/front/public/assets/icons/arrow-down-left-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/arrow-down-right-svgrepo-com.svg b/front/public/assets/icons/arrow-down-right-svgrepo-com.svg new file mode 100644 index 0000000..773b811 --- /dev/null +++ b/front/public/assets/icons/arrow-down-right-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/arrow-down-svgrepo-com.svg b/front/public/assets/icons/arrow-down-svgrepo-com.svg new file mode 100644 index 0000000..3da6fb4 --- /dev/null +++ b/front/public/assets/icons/arrow-down-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/arrow-left-svgrepo-com.svg b/front/public/assets/icons/arrow-left-svgrepo-com.svg new file mode 100644 index 0000000..228f51e --- /dev/null +++ b/front/public/assets/icons/arrow-left-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/arrow-right-svgrepo-com.svg b/front/public/assets/icons/arrow-right-svgrepo-com.svg new file mode 100644 index 0000000..cdf0f9e --- /dev/null +++ b/front/public/assets/icons/arrow-right-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/arrow-up-left-svgrepo-com.svg b/front/public/assets/icons/arrow-up-left-svgrepo-com.svg new file mode 100644 index 0000000..504cab3 --- /dev/null +++ b/front/public/assets/icons/arrow-up-left-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/arrow-up-right-svgrepo-com.svg b/front/public/assets/icons/arrow-up-right-svgrepo-com.svg new file mode 100644 index 0000000..0e052fe --- /dev/null +++ b/front/public/assets/icons/arrow-up-right-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/arrow-up-svgrepo-com.svg b/front/public/assets/icons/arrow-up-svgrepo-com.svg new file mode 100644 index 0000000..508e049 --- /dev/null +++ b/front/public/assets/icons/arrow-up-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/bell-svgrepo-com.svg b/front/public/assets/icons/bell-svgrepo-com.svg new file mode 100644 index 0000000..47fbee0 --- /dev/null +++ b/front/public/assets/icons/bell-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/browsers-svgrepo-com.svg b/front/public/assets/icons/browsers-svgrepo-com.svg new file mode 100644 index 0000000..11c023a --- /dev/null +++ b/front/public/assets/icons/browsers-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/bubble-square-svgrepo-com.svg b/front/public/assets/icons/bubble-square-svgrepo-com.svg new file mode 100644 index 0000000..1ca2129 --- /dev/null +++ b/front/public/assets/icons/bubble-square-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/cart-minus-svgrepo-com.svg b/front/public/assets/icons/cart-minus-svgrepo-com.svg new file mode 100644 index 0000000..b7ddca6 --- /dev/null +++ b/front/public/assets/icons/cart-minus-svgrepo-com.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/front/public/assets/icons/cart-plus-svgrepo-com.svg b/front/public/assets/icons/cart-plus-svgrepo-com.svg new file mode 100644 index 0000000..2581f42 --- /dev/null +++ b/front/public/assets/icons/cart-plus-svgrepo-com.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/front/public/assets/icons/cart-shopping-fast-svgrepo-com.svg b/front/public/assets/icons/cart-shopping-fast-svgrepo-com.svg new file mode 100644 index 0000000..2e31c63 --- /dev/null +++ b/front/public/assets/icons/cart-shopping-fast-svgrepo-com.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/front/public/assets/icons/cart-xmark-svgrepo-com.svg b/front/public/assets/icons/cart-xmark-svgrepo-com.svg new file mode 100644 index 0000000..2c78ac5 --- /dev/null +++ b/front/public/assets/icons/cart-xmark-svgrepo-com.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/front/public/assets/icons/chevron-down-svgrepo-com.svg b/front/public/assets/icons/chevron-down-svgrepo-com.svg new file mode 100644 index 0000000..580d077 --- /dev/null +++ b/front/public/assets/icons/chevron-down-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/chevron-left-svgrepo-com.svg b/front/public/assets/icons/chevron-left-svgrepo-com.svg new file mode 100644 index 0000000..a7f46ec --- /dev/null +++ b/front/public/assets/icons/chevron-left-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/chevron-right-svgrepo-com.svg b/front/public/assets/icons/chevron-right-svgrepo-com.svg new file mode 100644 index 0000000..2976c18 --- /dev/null +++ b/front/public/assets/icons/chevron-right-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/circle-svgrepo-com.svg b/front/public/assets/icons/circle-svgrepo-com.svg new file mode 100644 index 0000000..d30042d --- /dev/null +++ b/front/public/assets/icons/circle-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/clock-svgrepo-com.svg b/front/public/assets/icons/clock-svgrepo-com.svg new file mode 100644 index 0000000..15e1107 --- /dev/null +++ b/front/public/assets/icons/clock-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/code-svgrepo-com.svg b/front/public/assets/icons/code-svgrepo-com.svg new file mode 100644 index 0000000..d8695a9 --- /dev/null +++ b/front/public/assets/icons/code-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/disc-svgrepo-com.svg b/front/public/assets/icons/disc-svgrepo-com.svg new file mode 100644 index 0000000..16d1a51 --- /dev/null +++ b/front/public/assets/icons/disc-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/download-svgrepo-com.svg b/front/public/assets/icons/download-svgrepo-com.svg new file mode 100644 index 0000000..24468d5 --- /dev/null +++ b/front/public/assets/icons/download-svgrepo-com.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/edit-svgrepo-com.svg b/front/public/assets/icons/edit-svgrepo-com.svg new file mode 100644 index 0000000..fda12e4 --- /dev/null +++ b/front/public/assets/icons/edit-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/expand-svgrepo-com.svg b/front/public/assets/icons/expand-svgrepo-com.svg new file mode 100644 index 0000000..ef6637a --- /dev/null +++ b/front/public/assets/icons/expand-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/file-add-svgrepo-com.svg b/front/public/assets/icons/file-add-svgrepo-com.svg new file mode 100644 index 0000000..d371510 --- /dev/null +++ b/front/public/assets/icons/file-add-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/file-remove-svgrepo-com.svg b/front/public/assets/icons/file-remove-svgrepo-com.svg new file mode 100644 index 0000000..f0508e9 --- /dev/null +++ b/front/public/assets/icons/file-remove-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/file-text-svgrepo-com.svg b/front/public/assets/icons/file-text-svgrepo-com.svg new file mode 100644 index 0000000..a3cf826 --- /dev/null +++ b/front/public/assets/icons/file-text-svgrepo-com.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/fingerprint-svgrepo-com.svg b/front/public/assets/icons/fingerprint-svgrepo-com.svg new file mode 100644 index 0000000..abeb87f --- /dev/null +++ b/front/public/assets/icons/fingerprint-svgrepo-com.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/front/public/assets/icons/folder-svgrepo-com.svg b/front/public/assets/icons/folder-svgrepo-com.svg new file mode 100644 index 0000000..249e720 --- /dev/null +++ b/front/public/assets/icons/folder-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/grid-svgrepo-com.svg b/front/public/assets/icons/grid-svgrepo-com.svg new file mode 100644 index 0000000..d65943b --- /dev/null +++ b/front/public/assets/icons/grid-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/id-badge-svgrepo-com.svg b/front/public/assets/icons/id-badge-svgrepo-com.svg new file mode 100644 index 0000000..a224340 --- /dev/null +++ b/front/public/assets/icons/id-badge-svgrepo-com.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/front/public/assets/icons/info-circle-svgrepo-com.svg b/front/public/assets/icons/info-circle-svgrepo-com.svg new file mode 100644 index 0000000..185cd40 --- /dev/null +++ b/front/public/assets/icons/info-circle-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/info-square-svgrepo-com.svg b/front/public/assets/icons/info-square-svgrepo-com.svg new file mode 100644 index 0000000..ed6b4d4 --- /dev/null +++ b/front/public/assets/icons/info-square-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/lock-svgrepo-com.svg b/front/public/assets/icons/lock-svgrepo-com.svg new file mode 100644 index 0000000..36569f6 --- /dev/null +++ b/front/public/assets/icons/lock-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/mail-read-svgrepo-com.svg b/front/public/assets/icons/mail-read-svgrepo-com.svg new file mode 100644 index 0000000..e0c8751 --- /dev/null +++ b/front/public/assets/icons/mail-read-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/mail-svgrepo-com.svg b/front/public/assets/icons/mail-svgrepo-com.svg new file mode 100644 index 0000000..2c1b649 --- /dev/null +++ b/front/public/assets/icons/mail-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/maximize-svgrepo-com.svg b/front/public/assets/icons/maximize-svgrepo-com.svg new file mode 100644 index 0000000..7084297 --- /dev/null +++ b/front/public/assets/icons/maximize-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/minimize-svgrepo-com.svg b/front/public/assets/icons/minimize-svgrepo-com.svg new file mode 100644 index 0000000..ed75d69 --- /dev/null +++ b/front/public/assets/icons/minimize-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/minus-svgrepo-com.svg b/front/public/assets/icons/minus-svgrepo-com.svg new file mode 100644 index 0000000..60a043e --- /dev/null +++ b/front/public/assets/icons/minus-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/more-horizontal-svgrepo-com.svg b/front/public/assets/icons/more-horizontal-svgrepo-com.svg new file mode 100644 index 0000000..3b963ca --- /dev/null +++ b/front/public/assets/icons/more-horizontal-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/more-vertical-svgrepo-com.svg b/front/public/assets/icons/more-vertical-svgrepo-com.svg new file mode 100644 index 0000000..d2c8d68 --- /dev/null +++ b/front/public/assets/icons/more-vertical-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/navigation-ne-svgrepo-com.svg b/front/public/assets/icons/navigation-ne-svgrepo-com.svg new file mode 100644 index 0000000..eebee53 --- /dev/null +++ b/front/public/assets/icons/navigation-ne-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/navigation-nw-svgrepo-com.svg b/front/public/assets/icons/navigation-nw-svgrepo-com.svg new file mode 100644 index 0000000..3dd88c7 --- /dev/null +++ b/front/public/assets/icons/navigation-nw-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/navigation-svgrepo-com.svg b/front/public/assets/icons/navigation-svgrepo-com.svg new file mode 100644 index 0000000..8d49891 --- /dev/null +++ b/front/public/assets/icons/navigation-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/optimized_svg/share_social.svg b/front/public/assets/icons/optimized_svg/share_social.svg new file mode 100644 index 0000000..0749518 --- /dev/null +++ b/front/public/assets/icons/optimized_svg/share_social.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/front/public/assets/icons/push-down-svgrepo-com.svg b/front/public/assets/icons/push-down-svgrepo-com.svg new file mode 100644 index 0000000..4c0e30f --- /dev/null +++ b/front/public/assets/icons/push-down-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/push-left-svgrepo-com.svg b/front/public/assets/icons/push-left-svgrepo-com.svg new file mode 100644 index 0000000..58d6d79 --- /dev/null +++ b/front/public/assets/icons/push-left-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/push-right-svgrepo-com.svg b/front/public/assets/icons/push-right-svgrepo-com.svg new file mode 100644 index 0000000..c3d3b9d --- /dev/null +++ b/front/public/assets/icons/push-right-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/push-up-svgrepo-com.svg b/front/public/assets/icons/push-up-svgrepo-com.svg new file mode 100644 index 0000000..60c3d7e --- /dev/null +++ b/front/public/assets/icons/push-up-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/send-alt-2-svgrepo-com.svg b/front/public/assets/icons/send-alt-2-svgrepo-com.svg new file mode 100644 index 0000000..c9d2b4a --- /dev/null +++ b/front/public/assets/icons/send-alt-2-svgrepo-com.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/front/public/assets/icons/sidebar-bottom-svgrepo-com.svg b/front/public/assets/icons/sidebar-bottom-svgrepo-com.svg new file mode 100644 index 0000000..2cecc8c --- /dev/null +++ b/front/public/assets/icons/sidebar-bottom-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/sidebar-left-svgrepo-com.svg b/front/public/assets/icons/sidebar-left-svgrepo-com.svg new file mode 100644 index 0000000..996fade --- /dev/null +++ b/front/public/assets/icons/sidebar-left-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/sidebar-right-svgrepo-com.svg b/front/public/assets/icons/sidebar-right-svgrepo-com.svg new file mode 100644 index 0000000..fc98443 --- /dev/null +++ b/front/public/assets/icons/sidebar-right-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/sidebar-top-svgrepo-com.svg b/front/public/assets/icons/sidebar-top-svgrepo-com.svg new file mode 100644 index 0000000..6c26079 --- /dev/null +++ b/front/public/assets/icons/sidebar-top-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/signal-svgrepo-com.svg b/front/public/assets/icons/signal-svgrepo-com.svg new file mode 100644 index 0000000..d50754c --- /dev/null +++ b/front/public/assets/icons/signal-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/stopwatch-svgrepo-com.svg b/front/public/assets/icons/stopwatch-svgrepo-com.svg new file mode 100644 index 0000000..f6b4404 --- /dev/null +++ b/front/public/assets/icons/stopwatch-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/support-svgrepo-com.svg b/front/public/assets/icons/support-svgrepo-com.svg new file mode 100644 index 0000000..a6b6c0d --- /dev/null +++ b/front/public/assets/icons/support-svgrepo-com.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/thumbs-down-svgrepo-com.svg b/front/public/assets/icons/thumbs-down-svgrepo-com.svg new file mode 100644 index 0000000..f250926 --- /dev/null +++ b/front/public/assets/icons/thumbs-down-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/thumbs-up-svgrepo-com.svg b/front/public/assets/icons/thumbs-up-svgrepo-com.svg new file mode 100644 index 0000000..1b12318 --- /dev/null +++ b/front/public/assets/icons/thumbs-up-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/tick-svgrepo-com.svg b/front/public/assets/icons/tick-svgrepo-com.svg new file mode 100644 index 0000000..d5717c3 --- /dev/null +++ b/front/public/assets/icons/tick-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/unlock-svgrepo-com.svg b/front/public/assets/icons/unlock-svgrepo-com.svg new file mode 100644 index 0000000..0ea4b61 --- /dev/null +++ b/front/public/assets/icons/unlock-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/upload-svgrepo-com.svg b/front/public/assets/icons/upload-svgrepo-com.svg new file mode 100644 index 0000000..dbf1256 --- /dev/null +++ b/front/public/assets/icons/upload-svgrepo-com.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/user-add-svgrepo-com.svg b/front/public/assets/icons/user-add-svgrepo-com.svg new file mode 100644 index 0000000..ca2d2c1 --- /dev/null +++ b/front/public/assets/icons/user-add-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/user-remove-svgrepo-com.svg b/front/public/assets/icons/user-remove-svgrepo-com.svg new file mode 100644 index 0000000..2655365 --- /dev/null +++ b/front/public/assets/icons/user-remove-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/user-svgrepo-com.svg b/front/public/assets/icons/user-svgrepo-com.svg new file mode 100644 index 0000000..2d447eb --- /dev/null +++ b/front/public/assets/icons/user-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/user-x-svgrepo-com.svg b/front/public/assets/icons/user-x-svgrepo-com.svg new file mode 100644 index 0000000..b9d36ae --- /dev/null +++ b/front/public/assets/icons/user-x-svgrepo-com.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/volume-down-svgrepo-com.svg b/front/public/assets/icons/volume-down-svgrepo-com.svg new file mode 100644 index 0000000..72d6c48 --- /dev/null +++ b/front/public/assets/icons/volume-down-svgrepo-com.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/volume-mute-svgrepo-com.svg b/front/public/assets/icons/volume-mute-svgrepo-com.svg new file mode 100644 index 0000000..e723faa --- /dev/null +++ b/front/public/assets/icons/volume-mute-svgrepo-com.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/volume-off-svgrepo-com.svg b/front/public/assets/icons/volume-off-svgrepo-com.svg new file mode 100644 index 0000000..b60b034 --- /dev/null +++ b/front/public/assets/icons/volume-off-svgrepo-com.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/volume-up-svgrepo-com.svg b/front/public/assets/icons/volume-up-svgrepo-com.svg new file mode 100644 index 0000000..9915cf1 --- /dev/null +++ b/front/public/assets/icons/volume-up-svgrepo-com.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/x-circle-svgrepo-com.svg b/front/public/assets/icons/x-circle-svgrepo-com.svg new file mode 100644 index 0000000..9507347 --- /dev/null +++ b/front/public/assets/icons/x-circle-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/x-square-svgrepo-com.svg b/front/public/assets/icons/x-square-svgrepo-com.svg new file mode 100644 index 0000000..67bac7e --- /dev/null +++ b/front/public/assets/icons/x-square-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/icons/xmark-svgrepo-com.svg b/front/public/assets/icons/xmark-svgrepo-com.svg new file mode 100644 index 0000000..84e4f19 --- /dev/null +++ b/front/public/assets/icons/xmark-svgrepo-com.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/front/public/assets/icons/zoom-out-svgrepo-com.svg b/front/public/assets/icons/zoom-out-svgrepo-com.svg new file mode 100644 index 0000000..cde5b67 --- /dev/null +++ b/front/public/assets/icons/zoom-out-svgrepo-com.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/src/app/_index.scss b/front/src/app/_index.scss new file mode 100644 index 0000000..78d6f7b --- /dev/null +++ b/front/src/app/_index.scss @@ -0,0 +1,4 @@ +@import 'variables'; +@import 'app'; +@import '../styles.scss'; + diff --git a/front/src/app/_variables.scss b/front/src/app/_variables.scss new file mode 100644 index 0000000..8afe48b --- /dev/null +++ b/front/src/app/_variables.scss @@ -0,0 +1,12 @@ +// Variables para el lenguaje visual (SCSS) +$primary-white: #fefcf8; // Blanco ahuevado gentil +$border-grey: #e0ddd8; // Gris suave para bordes +$text-dark: #2a2926; // Texto principal +$text-muted: #706b63; // Texto secundario + +// Colores de énfasis para cada acción +$edit-color: #4a90e2; // Azul suave +$delete-color: #e74c3c; // Rojo coral +$download-color: #27ae60; // Verde esmeralda +$share-color: #9b59b6; // Púrpura +$buy-color: #f39c12; // Naranja dorado \ No newline at end of file diff --git a/front/src/app/app.html b/front/src/app/app.html index 36093e1..85af663 100644 --- a/front/src/app/app.html +++ b/front/src/app/app.html @@ -1,336 +1 @@ - - - - - - - - - - - -
-
-
- -

Hello, {{ title }}

-

Congratulations! Your app is running. 🎉

-
- -
-
- @for (item of [ - { title: 'Explore the Docs', link: 'https://angular.dev' }, - { title: 'Learn with Tutorials', link: 'https://angular.dev/tutorials' }, - { title: 'CLI Docs', link: 'https://angular.dev/tools/cli' }, - { title: 'Angular Language Service', link: 'https://angular.dev/tools/language-service' }, - { title: 'Angular DevTools', link: 'https://angular.dev/tools/devtools' }, - ]; track item.title) { - - {{ item.title }} - - - - - } -
- -
-
-
- - - - - - - - - - - + \ No newline at end of file diff --git a/front/src/app/app.ts b/front/src/app/app.ts index aa7c623..ce5c024 100644 --- a/front/src/app/app.ts +++ b/front/src/app/app.ts @@ -1,12 +1,19 @@ import { Component } from '@angular/core'; import { RouterOutlet } from '@angular/router'; +import { Gallery } from './gallery/gallery'; @Component({ selector: 'app-root', - imports: [RouterOutlet], + imports: [ Gallery ], templateUrl: './app.html', styleUrl: './app.scss' }) export class App { - protected title = 'front'; + protected title = 'mmorales.photo'; + protected description = 'Portfolio of Manuel Morales, a photographer based in La Vila Joiosa, Alicante, Spain.'; + protected keywords = 'photography, portfolio, Manuel Morales, La Vila Joiosa, Alicante, Spain'; + protected author = 'Manuel Morales'; + protected copyright = '© ' + new Date().getFullYear() + ' Manuel Morales. All rights reserved.'; + + protected gallery: Gallery = new Gallery(); } diff --git a/front/src/app/button/button.html b/front/src/app/button/button.html new file mode 100644 index 0000000..f5a7e49 --- /dev/null +++ b/front/src/app/button/button.html @@ -0,0 +1,14 @@ + diff --git a/front/src/app/button/button.scss b/front/src/app/button/button.scss new file mode 100644 index 0000000..226923c --- /dev/null +++ b/front/src/app/button/button.scss @@ -0,0 +1,106 @@ +@use "../variables"; + +button { + background: variables.$primary-white; + border: 2px solid variables.$border-grey; + border-radius: 12px; + overflow: hidden; + cursor: pointer; + transition: all 0.3s ease; + width: 3.2rem; + height: 3.2rem; + margin: 0; + padding: 0; + flex-shrink: 1; + + &:hover { + color: variables.$primary-white; + transform: translateY(-2px); + box-shadow: 0 6px 16px rgba(42, 41, 38, 0.1); + } + + &:active { + transform: translateY(0); + } + + &:disabled { + background: variables.$primary-white; + color: variables.$text-muted; + } + + svg-loader { + box-sizing: border-box; + pointer-events: none; + display: block; + height: 100%; + width: 100%; + margin: 0; + padding: 13%; + } + + &:hover { + svg-loader { + fill: variables.$primary-white; + } + } + + // Edit button - Pencil icon + &.edit-button { + color: variables.$edit-color; + border-color: variables.$edit-color; + &:hover { + background: variables.$edit-color; + } + svg-loader { + fill: variables.$edit-color; + } + } + + // Delete button - Trash icon + &.delete-button { + color: variables.$delete-color; + border-color: variables.$delete-color; + &:hover { + background: variables.$delete-color; + } + svg-loader { + fill: variables.$delete-color; + } + } + + // Download button - Download arrow + &.download-button { + color: variables.$download-color; + border-color: variables.$download-color; + &:hover { + background: variables.$download-color; + } + svg-loader { + fill: variables.$download-color; + } + } + + // Share button - Share icon + &.share-button { + color: variables.$share-color; + border-color: variables.$share-color; + &:hover { + background: variables.$share-color; + } + svg-loader { + fill: variables.$share-color; + } + } + + // Buy button - Shopping cart + &.buy-button { + color: variables.$buy-color; + border-color: variables.$buy-color; + &:hover { + background: variables.$buy-color; + } + svg-loader { + fill: variables.$buy-color; + } + } +} diff --git a/front/src/app/button/button.spec.ts b/front/src/app/button/button.spec.ts new file mode 100644 index 0000000..411f8f2 --- /dev/null +++ b/front/src/app/button/button.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { Button } from './button'; + +describe('Button', () => { + let component: Button; + let fixture: ComponentFixture + +
+

Comments

+
+
+ + + diff --git a/front/src/app/mid-res-image/mid-res-image.scss b/front/src/app/mid-res-image/mid-res-image.scss new file mode 100644 index 0000000..3e7eb4b --- /dev/null +++ b/front/src/app/mid-res-image/mid-res-image.scss @@ -0,0 +1,203 @@ +@use "../variables"; + +.mid-res-image-container { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: rgba(42, 41, 38, 0.95); + display: flex; + z-index: 1000; + -webkit-backdrop-filter: blur(5px); + backdrop-filter: blur(5px); + + // Image section + .img { + width: 70%; + height: 100vh; + object-fit: contain; + cursor: zoom-in; + transition: transform 0.3s ease; + } + + // Panel section + .panel { + width: 30%; + height: 100vh; + background: variables.$primary-white; + overflow-y: auto; + display: flex; + flex-direction: column; + box-shadow: -4px 0 20px rgba(42, 41, 38, 0.2); + border-left: 1px solid variables.$border-grey; + + div.content { + box-sizing: content-box; + height: 25%; + padding-top: 4rem; + padding-bottom: 4rem; + padding-left: 2rem; + padding-right: 2rem; + text-align: left; + vertical-align: middle; + align-content: center; + + h3 { + margin: 0 0 1rem 0; + font-size: 2rem; + font-weight: 600; + color: variables.$text-dark; + line-height: 2; + } + + p { + margin: 0; + padding: 0; + font-size: 1.2rem; + color: variables.$text-muted; + line-height: 1.6; + text-align: left; + text-indent: 0.1rem; + text-rendering: optimizeLegibility; + } + } + + .buttons { + padding: 2rem 2rem; + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + border-bottom: 1px solid variables.$border-grey; + justify-content: space-evenly; + } + + .comment-section { + flex: 1; + display: flex; + flex-direction: column; + + .header { + padding: 1.5rem 2rem; + border-bottom: 1px solid variables.$border-grey; + + h4 { + margin: 0 0 1rem 0; + font-size: 1.25rem; + font-weight: 600; + color: variables.$text-dark; + } + + textarea { + width: 100%; + min-height: 80px; + padding: 0.75rem; + background: variables.$primary-white; + border: 2px solid variables.$border-grey; + border-radius: 8px; + font-family: inherit; + font-size: 0.9rem; + color: variables.$text-dark; + resize: vertical; + transition: border-color 0.2s ease; + box-sizing: border-box; + + &:focus { + outline: none; + border-color: variables.$edit-color; + box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.1); + } + + &::placeholder { + color: variables.$text-muted; + } + } + + button { + margin-top: 1rem; + width: 100%; + padding: 0.75rem; + background: variables.$primary-white; + color: variables.$edit-color; + border: 2px solid variables.$edit-color; + border-radius: 8px; + font-size: 0.9rem; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + + &:hover { + background: variables.$edit-color; + color: variables.$primary-white; + transform: translateY(-1px); + box-shadow: 0 4px 8px rgba(74, 144, 226, 0.2); + } + } + } + + .content { + flex: 1; + padding: 1.5rem 2rem; + + h4 { + margin: 0 0 1rem 0; + font-size: 1.1rem; + font-weight: 600; + color: variables.$text-dark; + } + + .list { + min-height: 100px; + padding: 1rem; + background: variables.$primary-white; + border-radius: 8px; + border: 1px dashed variables.$border-grey; + display: flex; + align-items: center; + justify-content: center; + color: variables.$text-muted; + font-style: italic; + + &:empty::after { + content: "No hay comentarios aún"; + } + } + } + } + } + + // Responsive design + @media (max-width: 768px) { + flex-direction: column; + + .img { + width: 100%; + height: 60vh; + } + + .panel { + width: 100%; + height: 40vh; + + .buttons button { + min-width: 100%; + } + } + } + + @media (max-width: 480px) { + .img { + height: 50vh; + } + + .panel { + height: 50vh; + + .content, + .buttons, + .comment-section .header { + padding: 1rem; + } + } + } +} diff --git a/front/src/app/mid-res-image/mid-res-image.spec.ts b/front/src/app/mid-res-image/mid-res-image.spec.ts new file mode 100644 index 0000000..39439c2 --- /dev/null +++ b/front/src/app/mid-res-image/mid-res-image.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MidResImage } from './mid-res-image'; + +describe('MidResImage', () => { + let component: MidResImage; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [MidResImage] + }) + .compileComponents(); + + fixture = TestBed.createComponent(MidResImage); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/front/src/app/mid-res-image/mid-res-image.ts b/front/src/app/mid-res-image/mid-res-image.ts new file mode 100644 index 0000000..bd4fa86 --- /dev/null +++ b/front/src/app/mid-res-image/mid-res-image.ts @@ -0,0 +1,52 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { SvgLoader } from '../svg/svg'; +import { Button } from "../button/button"; + +@Component({ + selector: 'mid-res-image', + imports: [SvgLoader, Button], + templateUrl: './mid-res-image.html', + styleUrl: './mid-res-image.scss', +}) +export class MidResImage { + @Input({ required: true }) src: string = ''; + @Input({ required: true }) alt: string = ''; + @Input() title: string = 'Title'; + @Input() description: string = + 'A short description of the image that must be at least 20 characters long. Then it should be edited.'; + @Output() closed = new EventEmitter(); + + comments: string[] = []; + + openFullscreen(event: MouseEvent): void { + event.stopPropagation(); + } + + editImage(event: MouseEvent): void { + event.stopPropagation(); + } + + deleteImage(event: MouseEvent): void { + event.stopPropagation(); + } + + downloadImage(event: MouseEvent): void { + event.stopPropagation(); + } + + shareImage(event: MouseEvent): void { + event.stopPropagation(); + } + + buyImage(event: MouseEvent): void { + event.stopPropagation(); + } + + toggleCommentForm(event: MouseEvent): void { + event.stopPropagation(); + } + + close() { + this.closed.emit(); + } +} diff --git a/front/src/app/svg/svg.ts b/front/src/app/svg/svg.ts new file mode 100644 index 0000000..c99b897 --- /dev/null +++ b/front/src/app/svg/svg.ts @@ -0,0 +1,43 @@ +import { Component, Input, OnInit, ViewChild, ElementRef } from '@angular/core'; + +@Component({ + selector: 'svg-loader', + template: ``, +}) +export class SvgLoader implements OnInit { + @Input() + path: string = ''; + + static elementCache: { [key: string]: HTMLElement } = {}; + + @ViewChild('svgContainer', { static: true }) + svgContainer!: ElementRef; + + ngOnInit() { + if (this.path) { + if (SvgLoader.elementCache[this.path]) { + this.svgContainer.nativeElement.outerHTML = + SvgLoader.elementCache[this.path].outerHTML; + return; + } + + fetch(this.path) + .then((response) => response.text()) + .then((data) => { + const parser = new DOMParser(); + const svgDoc = parser.parseFromString( + data, + 'image/svg+xml' + ); + + svgDoc.documentElement.style.width = '100%'; + svgDoc.documentElement.style.height = '100%'; + + this.svgContainer.nativeElement.outerHTML = + svgDoc.documentElement.outerHTML; + + SvgLoader.elementCache[this.path] = svgDoc.documentElement; + }); + } + } +} diff --git a/front/src/styles.scss b/front/src/styles.scss index 90d4ee0..e50a47e 100644 --- a/front/src/styles.scss +++ b/front/src/styles.scss @@ -1 +1 @@ -/* You can add global styles to this file, and also import other style files */ +/* You can add global styles to this file, and also import other style files */ \ No newline at end of file