From f944b991724e21ce3576892f50c9cd6b8fd4210b Mon Sep 17 00:00:00 2001 From: jleroy Date: Mon, 10 Mar 2025 16:26:46 +0100 Subject: [PATCH] sidbar --- .postcssrc.json | 5 + package-lock.json | 584 +++++++++++++++--- package.json | 3 + public/favicon.ico | Bin 15086 -> 268286 bytes .../_component/sidbar/sidbar.component.css | 0 .../_component/sidbar/sidbar.component.html | 107 ++++ src/app/_component/sidbar/sidbar.component.ts | 11 + src/app/app.component.html | 336 +--------- src/app/app.component.spec.ts | 29 - src/app/app.component.ts | 3 +- src/app/app.routes.ts | 8 +- src/app/public/pages/home/home.component.css | 0 src/app/public/pages/home/home.component.html | 0 src/app/public/pages/home/home.component.ts | 11 + .../pages/not-found/not-found.component.css | 0 .../pages/not-found/not-found.component.html | 1 + .../pages/not-found/not-found.component.ts | 11 + .../public-layout/public-layout.component.css | 0 .../public-layout.component.html | 1 + .../public-layout/public-layout.component.ts | 14 + src/app/public/public-routing.module.ts | 19 + src/app/public/public.module.ts | 14 + src/index.html | 4 +- src/styles.css | 2 +- 24 files changed, 723 insertions(+), 440 deletions(-) create mode 100644 .postcssrc.json create mode 100644 src/app/_component/sidbar/sidbar.component.css create mode 100644 src/app/_component/sidbar/sidbar.component.html create mode 100644 src/app/_component/sidbar/sidbar.component.ts delete mode 100644 src/app/app.component.spec.ts create mode 100644 src/app/public/pages/home/home.component.css create mode 100644 src/app/public/pages/home/home.component.html create mode 100644 src/app/public/pages/home/home.component.ts create mode 100644 src/app/public/pages/not-found/not-found.component.css create mode 100644 src/app/public/pages/not-found/not-found.component.html create mode 100644 src/app/public/pages/not-found/not-found.component.ts create mode 100644 src/app/public/public-layout/public-layout.component.css create mode 100644 src/app/public/public-layout/public-layout.component.html create mode 100644 src/app/public/public-layout/public-layout.component.ts create mode 100644 src/app/public/public-routing.module.ts create mode 100644 src/app/public/public.module.ts diff --git a/.postcssrc.json b/.postcssrc.json new file mode 100644 index 0000000..e092dc7 --- /dev/null +++ b/.postcssrc.json @@ -0,0 +1,5 @@ +{ + "plugins": { + "@tailwindcss/postcss": {} + } +} diff --git a/package-lock.json b/package-lock.json index ab9e53f..f60d572 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,10 @@ "@angular/platform-browser": "^19.2.0", "@angular/platform-browser-dynamic": "^19.2.0", "@angular/router": "^19.2.0", + "@tailwindcss/postcss": "^4.0.12", + "postcss": "^8.5.3", "rxjs": "~7.8.0", + "tailwindcss": "^4.0.12", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, @@ -33,6 +36,18 @@ "typescript": "~5.7.2" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -199,6 +214,35 @@ } } }, + "node_modules/@angular-devkit/build-angular/node_modules/postcss": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -464,35 +508,6 @@ } } }, - "node_modules/@angular/build/node_modules/vite/node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/@angular/cli": { "version": "19.2.1", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.2.1.tgz", @@ -4853,6 +4868,238 @@ "dev": true, "license": "MIT" }, + "node_modules/@tailwindcss/node": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.12.tgz", + "integrity": "sha512-a6J11K1Ztdln9OrGfoM75/hChYPcHYGNYimqciMrvKXRmmPaS8XZTHhdvb5a3glz4Kd4ZxE1MnuFE2c0fGGmtg==", + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "tailwindcss": "4.0.12" + } + }, + "node_modules/@tailwindcss/node/node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.12.tgz", + "integrity": "sha512-DWb+myvJB9xJwelwT9GHaMc1qJj6MDXRDR0CS+T8IdkejAtu8ctJAgV4r1drQJLPeS7mNwq2UHW2GWrudTf63A==", + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.0.12", + "@tailwindcss/oxide-darwin-arm64": "4.0.12", + "@tailwindcss/oxide-darwin-x64": "4.0.12", + "@tailwindcss/oxide-freebsd-x64": "4.0.12", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.12", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.12", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.12", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.12", + "@tailwindcss/oxide-linux-x64-musl": "4.0.12", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.12", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.12" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.12.tgz", + "integrity": "sha512-dAXCaemu3mHLXcA5GwGlQynX8n7tTdvn5i1zAxRvZ5iC9fWLl5bGnjZnzrQqT7ttxCvRwdVf3IHUnMVdDBO/kQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.12.tgz", + "integrity": "sha512-vPNI+TpJQ7sizselDXIJdYkx9Cu6JBdtmRWujw9pVIxW8uz3O2PjgGGzL/7A0sXI8XDjSyRChrUnEW9rQygmJQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.12.tgz", + "integrity": "sha512-RL/9jM41Fdq4Efr35C5wgLx98BirnrfwuD+zgMFK6Ir68HeOSqBhW9jsEeC7Y/JcGyPd3MEoJVIU4fAb7YLg7A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.12.tgz", + "integrity": "sha512-7WzWiax+LguJcMEimY0Q4sBLlFXu1tYxVka3+G2M9KmU/3m84J3jAIV4KZWnockbHsbb2XgrEjtlJKVwHQCoRA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.12.tgz", + "integrity": "sha512-X9LRC7jjE1QlfIaBbXjY0PGeQP87lz5mEfLSVs2J1yRc9PSg1tEPS9NBqY4BU9v5toZgJgzKeaNltORyTs22TQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.12.tgz", + "integrity": "sha512-i24IFNq2402zfDdoWKypXz0ZNS2G4NKaA82tgBlE2OhHIE+4mg2JDb5wVfyP6R+MCm5grgXvurcIcKWvo44QiQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.12.tgz", + "integrity": "sha512-LmOdshJBfAGIBG0DdBWhI0n5LTMurnGGJCHcsm9F//ISfsHtCnnYIKgYQui5oOz1SUCkqsMGfkAzWyNKZqbGNw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.12.tgz", + "integrity": "sha512-OSK667qZRH30ep8RiHbZDQfqkXjnzKxdn0oRwWzgCO8CoTxV+MvIkd0BWdQbYtYuM1wrakARV/Hwp0eA/qzdbw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.12.tgz", + "integrity": "sha512-uylhWq6OWQ8krV8Jk+v0H/3AZKJW6xYMgNMyNnUbbYXWi7hIVdxRKNUB5UvrlC3RxtgsK5EAV2i1CWTRsNcAnA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.12.tgz", + "integrity": "sha512-XDLnhMoXZEEOir1LK43/gHHwK84V1GlV8+pAncUAIN2wloeD+nNciI9WRIY/BeFTqES22DhTIGoilSO39xDb2g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.12.tgz", + "integrity": "sha512-I/BbjCLpKDQucvtn6rFuYLst1nfFwSMYyPzkx/095RE+tuzk5+fwXuzQh7T3fIBTcbn82qH/sFka7yPGA50tLw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.0.12.tgz", + "integrity": "sha512-r59Sdr8djCW4dL3kvc4aWU8PHdUAVM3O3te2nbYzXsWwKLlHPCuUoZAc9FafXb/YyNDZOMI7sTbKTKFmwOrMjw==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.0.12", + "@tailwindcss/oxide": "4.0.12", + "lightningcss": "^1.29.1", + "postcss": "^8.4.41", + "tailwindcss": "4.0.12" + } + }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", @@ -6935,9 +7182,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "dev": true, "license": "Apache-2.0", - "optional": true, "engines": { "node": ">=8" } @@ -7182,7 +7427,6 @@ "version": "5.18.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", - "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -8096,7 +8340,6 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/handle-thing": { @@ -9545,6 +9788,234 @@ } } }, + "node_modules/lightningcss": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", + "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.29.2", + "lightningcss-darwin-x64": "1.29.2", + "lightningcss-freebsd-x64": "1.29.2", + "lightningcss-linux-arm-gnueabihf": "1.29.2", + "lightningcss-linux-arm64-gnu": "1.29.2", + "lightningcss-linux-arm64-musl": "1.29.2", + "lightningcss-linux-x64-gnu": "1.29.2", + "lightningcss-linux-x64-musl": "1.29.2", + "lightningcss-win32-arm64-msvc": "1.29.2", + "lightningcss-win32-x64-msvc": "1.29.2" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", + "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", + "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", + "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", + "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", + "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", + "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", + "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", + "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", + "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", + "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -10401,7 +10872,6 @@ "version": "3.3.9", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz", "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==", - "dev": true, "funding": [ { "type": "github", @@ -11318,7 +11788,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, "license": "ISC" }, "node_modules/picomatch": { @@ -11372,10 +11841,9 @@ } }, "node_modules/postcss": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", - "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", - "dev": true, + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "funding": [ { "type": "opencollective", @@ -12790,7 +13258,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -13124,11 +13591,16 @@ "node": ">=0.10" } }, + "node_modules/tailwindcss": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.12.tgz", + "integrity": "sha512-bT0hJo91FtncsAMSsMzUkoo/iEU0Xs5xgFgVC9XmdM9bw5MhZuQFjPNl6wxAE0SiQF/YTZJa+PndGWYSDtuxAg==", + "license": "MIT" + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -13740,36 +14212,6 @@ } } }, - "node_modules/vite/node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", diff --git a/package.json b/package.json index 37c4a44..13eb373 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,10 @@ "@angular/platform-browser": "^19.2.0", "@angular/platform-browser-dynamic": "^19.2.0", "@angular/router": "^19.2.0", + "@tailwindcss/postcss": "^4.0.12", + "postcss": "^8.5.3", "rxjs": "~7.8.0", + "tailwindcss": "^4.0.12", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, diff --git a/public/favicon.ico b/public/favicon.ico index 57614f9c967596fad0a3989bec2b1deff33034f6..4b41af74692e46ea3bd19d3e66bd37d24a90cca4 100644 GIT binary patch literal 268286 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 Nr__JTFzvMr^FKp4S3v*( diff --git a/src/app/_component/sidbar/sidbar.component.css b/src/app/_component/sidbar/sidbar.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/_component/sidbar/sidbar.component.html b/src/app/_component/sidbar/sidbar.component.html new file mode 100644 index 0000000..ea40355 --- /dev/null +++ b/src/app/_component/sidbar/sidbar.component.html @@ -0,0 +1,107 @@ +
+
+
+ YouVideo +
+
+ +
diff --git a/src/app/_component/sidbar/sidbar.component.ts b/src/app/_component/sidbar/sidbar.component.ts new file mode 100644 index 0000000..31a6099 --- /dev/null +++ b/src/app/_component/sidbar/sidbar.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-sidbar', + imports: [], + templateUrl: './sidbar.component.html', + styleUrl: './sidbar.component.css' +}) +export class SidbarComponent { + +} diff --git a/src/app/app.component.html b/src/app/app.component.html index 36093e1..27d893b 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,336 +1,2 @@ - - - - - - - - - - - -
-
-
- -

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 }} - - - - - } -
- -
-
-
- - - - - - - - - - + diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts deleted file mode 100644 index 4f16193..0000000 --- a/src/app/app.component.spec.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { TestBed } from '@angular/core/testing'; -import { AppComponent } from './app.component'; - -describe('AppComponent', () => { - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [AppComponent], - }).compileComponents(); - }); - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app).toBeTruthy(); - }); - - it(`should have the 'ENI-Angular' title`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app.title).toEqual('ENI-Angular'); - }); - - it('should render title', () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector('h1')?.textContent).toContain('Hello, ENI-Angular'); - }); -}); diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 10b8f49..28c114c 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,9 +1,10 @@ import { Component } from '@angular/core'; import { RouterOutlet } from '@angular/router'; +import {SidbarComponent} from './_component/sidbar/sidbar.component'; @Component({ selector: 'app-root', - imports: [RouterOutlet], + imports: [RouterOutlet, SidbarComponent], templateUrl: './app.component.html', styleUrl: './app.component.css' }) diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index dc39edb..20da696 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,3 +1,9 @@ import { Routes } from '@angular/router'; +import {NotFoundComponent} from './public/pages/not-found/not-found.component'; -export const routes: Routes = []; +export const routes: Routes = [ + { path: '', loadChildren: () => import('./public/public.module') + .then(m => m.PublicModule) + }, + { path: '**', component: NotFoundComponent } +]; diff --git a/src/app/public/pages/home/home.component.css b/src/app/public/pages/home/home.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/public/pages/home/home.component.html b/src/app/public/pages/home/home.component.html new file mode 100644 index 0000000..e69de29 diff --git a/src/app/public/pages/home/home.component.ts b/src/app/public/pages/home/home.component.ts new file mode 100644 index 0000000..35c8e26 --- /dev/null +++ b/src/app/public/pages/home/home.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-home', + imports: [], + templateUrl: './home.component.html', + styleUrl: './home.component.css' +}) +export class HomeComponent { + +} diff --git a/src/app/public/pages/not-found/not-found.component.css b/src/app/public/pages/not-found/not-found.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/public/pages/not-found/not-found.component.html b/src/app/public/pages/not-found/not-found.component.html new file mode 100644 index 0000000..8071020 --- /dev/null +++ b/src/app/public/pages/not-found/not-found.component.html @@ -0,0 +1 @@ +

not-found works!

diff --git a/src/app/public/pages/not-found/not-found.component.ts b/src/app/public/pages/not-found/not-found.component.ts new file mode 100644 index 0000000..8e7b578 --- /dev/null +++ b/src/app/public/pages/not-found/not-found.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-not-found', + imports: [], + templateUrl: './not-found.component.html', + styleUrl: './not-found.component.css' +}) +export class NotFoundComponent { + +} diff --git a/src/app/public/public-layout/public-layout.component.css b/src/app/public/public-layout/public-layout.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/public/public-layout/public-layout.component.html b/src/app/public/public-layout/public-layout.component.html new file mode 100644 index 0000000..67e7bd4 --- /dev/null +++ b/src/app/public/public-layout/public-layout.component.html @@ -0,0 +1 @@ + diff --git a/src/app/public/public-layout/public-layout.component.ts b/src/app/public/public-layout/public-layout.component.ts new file mode 100644 index 0000000..97b3ec7 --- /dev/null +++ b/src/app/public/public-layout/public-layout.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; +import {RouterOutlet} from '@angular/router'; + +@Component({ + selector: 'app-public-layout', + imports: [ + RouterOutlet + ], + templateUrl: './public-layout.component.html', + styleUrl: './public-layout.component.css' +}) +export class PublicLayoutComponent { + +} diff --git a/src/app/public/public-routing.module.ts b/src/app/public/public-routing.module.ts new file mode 100644 index 0000000..45634d1 --- /dev/null +++ b/src/app/public/public-routing.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import {NotFoundComponent} from './pages/not-found/not-found.component'; +import {PublicLayoutComponent} from './public-layout/public-layout.component'; +import {HomeComponent} from './pages/home/home.component'; + +const routes: Routes = [ + { path: '', component: PublicLayoutComponent, children: [ + { path: '', component: HomeComponent }, + ] + }, + { path: '**', component: NotFoundComponent }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class PublicRoutingModule { } diff --git a/src/app/public/public.module.ts b/src/app/public/public.module.ts new file mode 100644 index 0000000..a9f917e --- /dev/null +++ b/src/app/public/public.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { PublicRoutingModule } from './public-routing.module'; + + +@NgModule({ + declarations: [], + imports: [ + CommonModule, + PublicRoutingModule + ] +}) +export class PublicModule { } diff --git a/src/index.html b/src/index.html index e90650b..408ace3 100644 --- a/src/index.html +++ b/src/index.html @@ -1,8 +1,8 @@ - + - ENIAngular + ENI YouVideo diff --git a/src/styles.css b/src/styles.css index 90d4ee0..f1d8c73 100644 --- a/src/styles.css +++ b/src/styles.css @@ -1 +1 @@ -/* You can add global styles to this file, and also import other style files */ +@import "tailwindcss";