diff --git a/README.md b/README.md index 7014750..3fc440d 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,6 @@ -# AngularVite3 +# Questions -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.0.6. - -## Development server - -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. - -## Code scaffolding - -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. - -## Build - -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. - -## Running unit tests - -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. +* faut il se principiter sur le framework à la mode ? +* vaut il mieux avoir une mélange de technologies un peu original et rapide qu'un mix standard ? +* quels sont les avantages de vite ? +* est-il possible de faire du lazy load de modules avec Angular ? \ No newline at end of file diff --git a/angular.json b/angular.json index 6f5062f..68f4bf3 100644 --- a/angular.json +++ b/angular.json @@ -101,4 +101,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/favicon.ico b/favicon.ico similarity index 100% rename from src/favicon.ico rename to favicon.ico diff --git a/src/index.html b/index.html similarity index 84% rename from src/index.html rename to index.html index 61d993d..5662ef8 100644 --- a/src/index.html +++ b/index.html @@ -9,5 +9,6 @@ + diff --git a/package.json b/package.json index 7225884..7882842 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "angular-vite3", "version": "0.0.0", + "type": "module", "scripts": { "ng": "ng", "start": "ng serve", @@ -33,6 +34,8 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "typescript": "~5.2.2" + "typescript": "~5.2.2", + "@nitedani/vite-plugin-angular": "*", + "vite": "^5.0.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 76b22b0..60ae37a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,13 +42,16 @@ dependencies: devDependencies: '@angular-devkit/build-angular': specifier: ^17.0.6 - version: 17.0.7(@angular/compiler-cli@17.0.7)(karma@6.4.2)(typescript@5.2.2) + version: 17.0.7(@angular/compiler-cli@17.0.7)(@swc/core@1.3.3)(karma@6.4.2)(typescript@5.2.2) '@angular/cli': specifier: ^17.0.6 version: 17.0.7 '@angular/compiler-cli': specifier: ^17.0.0 version: 17.0.7(@angular/compiler@17.0.7)(typescript@5.2.2) + '@nitedani/vite-plugin-angular': + specifier: '*' + version: 17.0.11(@angular/core@17.0.7)(karma@6.4.2)(typescript@5.2.2)(vite@5.0.8)(webpack@5.89.0) '@types/jasmine': specifier: ~5.1.0 version: 5.1.4 @@ -73,6 +76,9 @@ devDependencies: typescript: specifier: ~5.2.2 version: 5.2.2 + vite: + specifier: ^5.0.0 + version: 5.0.8(less@4.2.0) packages: @@ -94,7 +100,7 @@ packages: - chokidar dev: true - /@angular-devkit/build-angular@17.0.7(@angular/compiler-cli@17.0.7)(karma@6.4.2)(typescript@5.2.2): + /@angular-devkit/build-angular@17.0.7(@angular/compiler-cli@17.0.7)(@swc/core@1.3.3)(karma@6.4.2)(typescript@5.2.2): resolution: {integrity: sha512-AtEzLk6n6BXqQzk0Bsupe6GV0IgUe7RbpBfqROi+NZqMA7OUAHCX3xA6M68Qu+5KxBtW7T5lHeZZ7iP/y39wtQ==} engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: @@ -192,7 +198,7 @@ packages: typescript: 5.2.2 undici: 5.27.2 vite: 4.5.1(less@4.2.0)(sass@1.69.5)(terser@5.24.0) - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) webpack-dev-middleware: 6.1.1(webpack@5.89.0) webpack-dev-server: 4.15.1(webpack@5.89.0) webpack-merge: 5.10.0 @@ -227,7 +233,7 @@ packages: dependencies: '@angular-devkit/architect': 0.1700.7(chokidar@3.5.3) rxjs: 7.8.1 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) webpack-dev-server: 4.15.1(webpack@5.89.0) transitivePeerDependencies: - chokidar @@ -425,6 +431,10 @@ packages: tslib: 2.6.2 dev: false + /@angularclass/hmr@3.0.0: + resolution: {integrity: sha512-4A/DKmSafWUcffv7f536oY6RbpXEAD7f0NCGVLlRj9Gna8dkGc9JOHSr3NCWHd/NRc4ey8x+V0itsBqlPxEJ/A==} + dev: true + /@assemblyscript/loader@0.10.1: resolution: {integrity: sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==} dev: true @@ -448,7 +458,7 @@ packages: dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.0 + '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.2) '@babel/helpers': 7.23.6 @@ -2145,7 +2155,59 @@ packages: dependencies: '@angular/compiler-cli': 17.0.7(@angular/compiler@17.0.7)(typescript@5.2.2) typescript: 5.2.2 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) + dev: true + + /@nitedani/angular-renderer-core@17.0.11: + resolution: {integrity: sha512-6NvdrdhjG6/gJ9PhRV0tWsNGC66OxkL+acUQdpWVqjn3XTHHF/msiGazzoN0Anav+a4jfsyUOnAfYb5Y4yB74g==} + dependencies: + rxjs: 7.8.1 + dev: true + + /@nitedani/vite-plugin-angular@17.0.11(@angular/core@17.0.7)(karma@6.4.2)(typescript@5.2.2)(vite@5.0.8)(webpack@5.89.0): + resolution: {integrity: sha512-6AGq9TnJXg9xbPrhB1Km5vHxQjn9SVmN2O9lD6uMgiBSzrPY8Ed0pEuYY+2cbMKAd2NClEiB8qMZaPvExYu6XQ==} + peerDependencies: + vite: '*' + dependencies: + '@angular-devkit/build-angular': 17.0.7(@angular/compiler-cli@17.0.7)(@swc/core@1.3.3)(karma@6.4.2)(typescript@5.2.2) + '@angular/compiler': 17.0.7(@angular/core@17.0.7) + '@angular/compiler-cli': 17.0.7(@angular/compiler@17.0.7)(typescript@5.2.2) + '@angularclass/hmr': 3.0.0 + '@babel/core': 7.23.6 + '@ngtools/webpack': 17.0.7(@angular/compiler-cli@17.0.7)(typescript@5.2.2)(webpack@5.89.0) + '@nitedani/angular-renderer-core': 17.0.11 + '@swc/core': 1.3.3 + defu: 6.1.3 + swc-ast-helpers: 0.2.2(@swc/core@1.3.3) + vite: 5.0.8(less@4.2.0) + transitivePeerDependencies: + - '@angular/core' + - '@angular/localize' + - '@angular/platform-server' + - '@angular/service-worker' + - '@types/express' + - '@types/node' + - bufferutil + - debug + - fibers + - html-webpack-plugin + - jest + - jest-environment-jsdom + - karma + - lightningcss + - ng-packagr + - node-sass + - protractor + - sass-embedded + - stylus + - sugarss + - supports-color + - tailwindcss + - typescript + - uglify-js + - utf-8-validate + - webpack + - webpack-cli dev: true /@nodelib/fs.scandir@2.1.5: @@ -2246,6 +2308,110 @@ packages: dev: true optional: true + /@rollup/rollup-android-arm-eabi@4.9.0: + resolution: {integrity: sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.9.0: + resolution: {integrity: sha512-im6hUEyQ7ZfoZdNvtwgEJvBWZYauC9KVKq1w58LG2Zfz6zMd8gRrbN+xCVoqA2hv/v6fm9lp5LFGJ3za8EQH3A==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.0: + resolution: {integrity: sha512-u7aTMskN6Dmg1lCT0QJ+tINRt+ntUrvVkhbPfFz4bCwRZvjItx2nJtwJnJRlKMMaQCHRjrNqHRDYvE4mBm3DlQ==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.0: + resolution: {integrity: sha512-8FvEl3w2ExmpcOmX5RJD0yqXcVSOqAJJUJ29Lca29Ik+3zPS1yFimr2fr5JSZ4Z5gt8/d7WqycpgkX9nocijSw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.0: + resolution: {integrity: sha512-lHoKYaRwd4gge+IpqJHCY+8Vc3hhdJfU6ukFnnrJasEBUvVlydP8PuwndbWfGkdgSvZhHfSEw6urrlBj0TSSfg==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.0: + resolution: {integrity: sha512-JbEPfhndYeWHfOSeh4DOFvNXrj7ls9S/2omijVsao+LBPTPayT1uKcK3dHW3MwDJ7KO11t9m2cVTqXnTKpeaiw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.0: + resolution: {integrity: sha512-ahqcSXLlcV2XUBM3/f/C6cRoh7NxYA/W7Yzuv4bDU1YscTFw7ay4LmD7l6OS8EMhTNvcrWGkEettL1Bhjf+B+w==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.0: + resolution: {integrity: sha512-uwvOYNtLw8gVtrExKhdFsYHA/kotURUmZYlinH2VcQxNCQJeJXnkmWgw2hI9Xgzhgu7J9QvWiq9TtTVwWMDa+w==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.0: + resolution: {integrity: sha512-m6pkSwcZZD2LCFHZX/zW2aLIISyzWLU3hrLLzQKMI12+OLEzgruTovAxY5sCZJkipklaZqPy/2bEEBNjp+Y7xg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.0: + resolution: {integrity: sha512-VFAC1RDRSbU3iOF98X42KaVicAfKf0m0OvIu8dbnqhTe26Kh6Ym9JrDulz7Hbk7/9zGc41JkV02g+p3BivOdAg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.0: + resolution: {integrity: sha512-9jPgMvTKXARz4inw6jezMLA2ihDBvgIU9Ml01hjdVpOcMKyxFBJrn83KVQINnbeqDv0+HdO1c09hgZ8N0s820Q==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.0: + resolution: {integrity: sha512-WE4pT2kTXQN2bAv40Uog0AsV7/s9nT9HBWXAou8+++MBCnY51QS02KYtm6dQxxosKi1VIz/wZIrTQO5UP2EW+Q==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.0: + resolution: {integrity: sha512-aPP5Q5AqNGuT0tnuEkK/g4mnt3ZhheiXrDIiSVIHN9mcN21OyXDVbEMqmXPE7e2OplNLDkcvV+ZoGJa2ZImFgw==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@schematics/angular@17.0.7: resolution: {integrity: sha512-d7QKmcKrM4owb/2bR7Ipf23roiNbvbD/x7reNhQAtKAPLSHJ3Ulkf1+Yv+dj+9f+K7y9SBviEUSrD27BQ9WaxQ==} engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -2294,6 +2460,168 @@ packages: resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} dev: true + /@swc/core-android-arm-eabi@1.3.3: + resolution: {integrity: sha512-R6MpKXvNx/T/8a0wUTiX1THxfRbURSCmYlSi/JnUaqLYUclQK1N8aCMWz7EYSz6FE0VZBREJYDJcdnfP88E/1Q==} + engines: {node: '>=10'} + cpu: [arm] + os: [android] + requiresBuild: true + dependencies: + '@swc/wasm': 1.2.122 + dev: true + optional: true + + /@swc/core-android-arm64@1.3.3: + resolution: {integrity: sha512-yZlku4ypVKykwHTS8CETxw2PH23UBeM6VhNB8efF4A4gVWtRZjv1PfjsSqh/X0vjgVTrs2zSaQ+eF6GLVbWrgA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [android] + requiresBuild: true + dependencies: + '@swc/wasm': 1.2.130 + dev: true + optional: true + + /@swc/core-darwin-arm64@1.3.3: + resolution: {integrity: sha512-/T8vyikY7t/be6bHd1D9J/bmXYMDMkBo9NA3auDT/hmouzawhJ6E7OqRE4HLuLTflnRw8WmEWgpeRIzMHvNjBQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.3.3: + resolution: {integrity: sha512-hw4o1If986In5m3y3/OimgiBKJh49kbTG9MRWo8msqTic2aBlrtfHjSecMn1g+oP7pdaUUCTkovmT7OpvvQ/Tw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-freebsd-x64@1.3.3: + resolution: {integrity: sha512-JFDu3uLa0WMw77o+QNR5D1uErQ5s18HmEwJr5ndOQoDlS+XO2qUG6AxU5LdwLEl5qMf2C99t7gkfzcCZG1PRsw==} + engines: {node: '>=10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dependencies: + '@swc/wasm': 1.2.130 + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf@1.3.3: + resolution: {integrity: sha512-kJoyNP/ury9KmZnjhpj0QApY6VxC9S4hkgsycm8yTJ23O8WrUbgeDOlgAgFJNyHszhR5CnlssDv7ErCwMZtkgw==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dependencies: + '@swc/wasm': 1.2.130 + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.3.3: + resolution: {integrity: sha512-Y+10o78O2snKnrNTbasT9S3Out0wlOyAkLZvq5zqzW1cz2K2Yzm04zQdKQOCRHlfTF0XSmZ++qRWVNol49WsNA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.3.3: + resolution: {integrity: sha512-y6ErPP6Sk0f8exoanUxXeFALvPraTjyoVr8pitpfTqoUd9YcxwOTpPbR5WXI3FWnQ7GS86iH0LvaFDCgHQ1fjg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.3.3: + resolution: {integrity: sha512-sqyvNJkPHKHlK/XLIoMNLiux8YxsCJpAk3UreS0NO+sRNRru2AMyrRwX6wxmnJybhEek9SPKF0pXi+GfcaFKYA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.3.3: + resolution: {integrity: sha512-5fjwHdMv+DOgEp7sdNVmvS4Hr2rDaewa0BpDW8RefcjHoJnDpFVButLDMkwv/Yd+v4YN+99kyX/lOI+/OTD99w==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.3.3: + resolution: {integrity: sha512-JxcfG89GieqCFXkRl/mtFds/ME6ncEtLRIQ0+RBIREIGisA9ZgJ8EryBzGZyPu5+7kE0vXGVB6A2cfrv4SNW4A==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dependencies: + '@swc/wasm': 1.2.130 + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.3.3: + resolution: {integrity: sha512-yqZjTn5V7wYCxMCC5Rg8u87SmGeRSlqYAafHL3IgiFe8hSxOykc2dR1MYNc4WZumYiMlU15VSa6mW8A0pj37FA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dependencies: + '@swc/wasm': 1.2.130 + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.3.3: + resolution: {integrity: sha512-CIuxz9wiHkgG7m3kjgptgO3iHOmrybvLf0rUNGbVTTHwTcrpjznAnS/MnMPiaIQPlxz70KSXAR2QJjw7fGtfbA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.3.3: + resolution: {integrity: sha512-OGx3Qpw+czNSaea1ojP2X2wxrGtYicQxH1QnzX4F3rXGEcSUFIllmrae6iJHW91zS4SNcOocnQoRz1IYnrILYw==} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@swc/core-android-arm-eabi': 1.3.3 + '@swc/core-android-arm64': 1.3.3 + '@swc/core-darwin-arm64': 1.3.3 + '@swc/core-darwin-x64': 1.3.3 + '@swc/core-freebsd-x64': 1.3.3 + '@swc/core-linux-arm-gnueabihf': 1.3.3 + '@swc/core-linux-arm64-gnu': 1.3.3 + '@swc/core-linux-arm64-musl': 1.3.3 + '@swc/core-linux-x64-gnu': 1.3.3 + '@swc/core-linux-x64-musl': 1.3.3 + '@swc/core-win32-arm64-msvc': 1.3.3 + '@swc/core-win32-ia32-msvc': 1.3.3 + '@swc/core-win32-x64-msvc': 1.3.3 + dev: true + + /@swc/wasm@1.2.122: + resolution: {integrity: sha512-sM1VCWQxmNhFtdxME+8UXNyPNhxNu7zdb6ikWpz0YKAQQFRGT5ThZgJrubEpah335SUToNg8pkdDF7ibVCjxbQ==} + requiresBuild: true + dev: true + optional: true + + /@swc/wasm@1.2.130: + resolution: {integrity: sha512-rNcJsBxS70+pv8YUWwf5fRlWX6JoY/HJc25HD/F8m6Kv7XhJdqPPMhyX6TKkUBPAG7TWlZYoxa+rHAjPy4Cj3Q==} + requiresBuild: true + dev: true + optional: true + /@tufjs/canonical-json@2.0.0: resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -2810,7 +3138,7 @@ packages: '@babel/core': 7.23.2 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true /babel-plugin-istanbul@6.1.1: @@ -2916,26 +3244,6 @@ packages: - supports-color dev: true - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /bonjour-service@1.1.1: resolution: {integrity: sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==} dependencies: @@ -3366,7 +3674,7 @@ packages: normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.1 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true /core-js-compat@3.34.0: @@ -3411,7 +3719,7 @@ packages: dom-serializer: 2.0.0 domhandler: 5.0.3 htmlparser2: 8.0.2 - postcss: 8.4.31 + postcss: 8.4.32 pretty-bytes: 5.6.0 dev: true @@ -3430,15 +3738,15 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.31) - postcss: 8.4.31 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.31) - postcss-modules-scope: 3.0.0(postcss@8.4.31) - postcss-modules-values: 4.0.0(postcss@8.4.31) + icss-utils: 5.1.0(postcss@8.4.32) + postcss: 8.4.32 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.32) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.32) + postcss-modules-scope: 3.0.0(postcss@8.4.32) + postcss-modules-values: 4.0.0(postcss@8.4.32) postcss-value-parser: 4.2.0 semver: 7.5.4 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true /css-select@5.1.0: @@ -3533,6 +3841,10 @@ packages: engines: {node: '>=8'} dev: true + /defu@6.1.3: + resolution: {integrity: sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==} + dev: true + /depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} @@ -4456,13 +4768,13 @@ packages: safer-buffer: 2.1.2 dev: true - /icss-utils@5.1.0(postcss@8.4.31): + /icss-utils@5.1.0(postcss@8.4.32): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 dev: true /ieee754@1.2.1: @@ -4902,7 +5214,7 @@ packages: hasBin: true dependencies: '@colors/colors': 1.5.0 - body-parser: 1.20.2 + body-parser: 1.20.1 braces: 3.0.2 chokidar: 3.5.3 connect: 3.7.0 @@ -4958,7 +5270,7 @@ packages: dependencies: klona: 2.0.6 less: 4.2.0 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true /less@4.2.0: @@ -4989,7 +5301,7 @@ packages: webpack-sources: optional: true dependencies: - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) webpack-sources: 3.2.3 dev: true @@ -5220,7 +5532,7 @@ packages: webpack: ^5.0.0 dependencies: schema-utils: 4.2.0 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true /minimalistic-assert@1.0.1: @@ -5851,50 +6163,50 @@ packages: jiti: 1.21.0 postcss: 8.4.31 semver: 7.5.4 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) transitivePeerDependencies: - typescript dev: true - /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.32): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 dev: true - /postcss-modules-local-by-default@4.0.3(postcss@8.4.31): + /postcss-modules-local-by-default@4.0.3(postcss@8.4.32): resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.31) - postcss: 8.4.31 + icss-utils: 5.1.0(postcss@8.4.32) + postcss: 8.4.32 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope@3.0.0(postcss@8.4.31): + /postcss-modules-scope@3.0.0(postcss@8.4.32): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.31 + postcss: 8.4.32 postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.31): + /postcss-modules-values@4.0.0(postcss@8.4.32): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.31) - postcss: 8.4.31 + icss-utils: 5.1.0(postcss@8.4.32) + postcss: 8.4.32 dev: true /postcss-selector-parser@6.0.13: @@ -5918,6 +6230,15 @@ packages: source-map-js: 1.0.2 dev: true + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} @@ -6140,7 +6461,7 @@ packages: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.4.31 + postcss: 8.4.32 source-map: 0.6.1 dev: true @@ -6205,6 +6526,27 @@ packages: fsevents: 2.3.3 dev: true + /rollup@4.9.0: + resolution: {integrity: sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.0 + '@rollup/rollup-android-arm64': 4.9.0 + '@rollup/rollup-darwin-arm64': 4.9.0 + '@rollup/rollup-darwin-x64': 4.9.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.0 + '@rollup/rollup-linux-arm64-gnu': 4.9.0 + '@rollup/rollup-linux-arm64-musl': 4.9.0 + '@rollup/rollup-linux-riscv64-gnu': 4.9.0 + '@rollup/rollup-linux-x64-gnu': 4.9.0 + '@rollup/rollup-linux-x64-musl': 4.9.0 + '@rollup/rollup-win32-arm64-msvc': 4.9.0 + '@rollup/rollup-win32-ia32-msvc': 4.9.0 + '@rollup/rollup-win32-x64-msvc': 4.9.0 + fsevents: 2.3.3 + dev: true + /run-async@3.0.0: resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} engines: {node: '>=0.12.0'} @@ -6258,7 +6600,7 @@ packages: dependencies: neo-async: 2.6.2 sass: 1.69.5 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true /sass@1.69.5: @@ -6590,7 +6932,7 @@ packages: abab: 2.0.6 iconv-lite: 0.6.3 source-map-js: 1.0.2 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true /source-map-support@0.5.21: @@ -6784,6 +7126,14 @@ packages: engines: {node: '>= 0.4'} dev: true + /swc-ast-helpers@0.2.2(@swc/core@1.3.3): + resolution: {integrity: sha512-sqyEN0uKXQO+vVayFerCo23LQgZuzFjjchBR5gVDnceJmZ0ils91lYlT00wyGqzppPHmFGD2WVwfZS8hEGtgOQ==} + peerDependencies: + '@swc/core': ^1.2.208 + dependencies: + '@swc/core': 1.3.3 + dev: true + /symbol-observable@4.0.0: resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} engines: {node: '>=0.10'} @@ -6806,7 +7156,7 @@ packages: yallist: 4.0.0 dev: true - /terser-webpack-plugin@5.3.9(esbuild@0.19.5)(webpack@5.89.0): + /terser-webpack-plugin@5.3.9(@swc/core@1.3.3)(esbuild@0.19.5)(webpack@5.89.0): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -6823,12 +7173,13 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.20 + '@swc/core': 1.3.3 esbuild: 0.19.5 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.24.0 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true /terser@5.24.0: @@ -7078,7 +7429,7 @@ packages: dependencies: esbuild: 0.18.20 less: 4.2.0 - postcss: 8.4.31 + postcss: 8.4.32 rollup: 3.29.4 sass: 1.69.5 terser: 5.24.0 @@ -7086,6 +7437,42 @@ packages: fsevents: 2.3.3 dev: true + /vite@5.0.8(less@4.2.0): + resolution: {integrity: sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.19.5 + less: 4.2.0 + postcss: 8.4.32 + rollup: 4.9.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /void-elements@2.0.1: resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==} engines: {node: '>=0.10.0'} @@ -7122,7 +7509,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true /webpack-dev-middleware@6.1.1(webpack@5.89.0): @@ -7139,7 +7526,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true /webpack-dev-server@4.15.1(webpack@5.89.0): @@ -7183,7 +7570,7 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) webpack-dev-middleware: 5.3.3(webpack@5.89.0) ws: 8.15.1 transitivePeerDependencies: @@ -7218,10 +7605,10 @@ packages: optional: true dependencies: typed-assert: 1.0.9 - webpack: 5.89.0(esbuild@0.19.5) + webpack: 5.89.0(@swc/core@1.3.3)(esbuild@0.19.5) dev: true - /webpack@5.89.0(esbuild@0.19.5): + /webpack@5.89.0(@swc/core@1.3.3)(esbuild@0.19.5): resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} engines: {node: '>=10.13.0'} hasBin: true @@ -7252,7 +7639,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(esbuild@0.19.5)(webpack@5.89.0) + terser-webpack-plugin: 5.3.9(@swc/core@1.3.3)(esbuild@0.19.5)(webpack@5.89.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: diff --git a/src/app/app.component.html b/src/app/app.component.html deleted file mode 100644 index 1b7f2c3..0000000 --- a/src/app/app.component.html +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - - - - - -
-
-
- -

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 d0dddb9..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 'angular-vite3' title`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app.title).toEqual('angular-vite3'); - }); - - it('should render title', () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector('h1')?.textContent).toContain('Hello, angular-vite3'); - }); -}); diff --git a/src/app/app.component.ts b/src/app/app.component.ts deleted file mode 100644 index c5ff5d7..0000000 --- a/src/app/app.component.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Component } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { RouterOutlet } from '@angular/router'; - -@Component({ - selector: 'app-root', - standalone: true, - imports: [CommonModule, RouterOutlet], - templateUrl: './app.component.html', - styleUrl: './app.component.scss' -}) -export class AppComponent { - title = 'angular-vite3'; -} diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index dc39edb..975ae68 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,3 +1,21 @@ import { Routes } from '@angular/router'; +import { HomePage } from './pages/home/home.page'; -export const routes: Routes = []; +export const routes: Routes = [ + { + path: 'home', + component: HomePage + }, + { + path: 'pages', + loadChildren: () => import('./pages/pages.module').then(m => m.PagesModule) + }, + { + path: 'admin', + loadChildren: () => import('./pages/admin/admin.module').then(m => m.AdminModule) + }, + { + path: '**', + redirectTo: 'home' + } +]; diff --git a/src/app/app.service.ts b/src/app/app.service.ts new file mode 100644 index 0000000..7eb7e5f --- /dev/null +++ b/src/app/app.service.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'any' +}) +export class AppService { + getHello(): string { + return 'Hello World!'; + } +} diff --git a/src/app/pages/admin/admin.module.ts b/src/app/pages/admin/admin.module.ts new file mode 100644 index 0000000..6fdb02d --- /dev/null +++ b/src/app/pages/admin/admin.module.ts @@ -0,0 +1,32 @@ +import { CommonModule } from "@angular/common"; +import { NgModule } from "@angular/core"; +import { Routes, RouterModule } from "@angular/router"; +import { UsersComponent } from "./users/users.component"; + +export const appRouteList: Routes = [ + + { + path: 'users', + component: UsersComponent + }, + { + path: '**', + redirectTo: 'users' + } +]; + +@NgModule({ + declarations: [ + UsersComponent + ], + imports: [ + CommonModule, + RouterModule.forChild(appRouteList) + ], + bootstrap: [ + ], + exports: [ + UsersComponent + ] +}) +export class AdminModule { } diff --git a/src/app/pages/admin/users/users.component.html b/src/app/pages/admin/users/users.component.html new file mode 100644 index 0000000..065c5c6 --- /dev/null +++ b/src/app/pages/admin/users/users.component.html @@ -0,0 +1 @@ +

users works!

diff --git a/src/app/app.component.scss b/src/app/pages/admin/users/users.component.scss similarity index 100% rename from src/app/app.component.scss rename to src/app/pages/admin/users/users.component.scss diff --git a/src/app/pages/admin/users/users.component.spec.ts b/src/app/pages/admin/users/users.component.spec.ts new file mode 100644 index 0000000..fff471e --- /dev/null +++ b/src/app/pages/admin/users/users.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UsersComponent } from './users.component'; + +describe('UsersComponent', () => { + let component: UsersComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [UsersComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(UsersComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/admin/users/users.component.ts b/src/app/pages/admin/users/users.component.ts new file mode 100644 index 0000000..5f7ae7d --- /dev/null +++ b/src/app/pages/admin/users/users.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-users', + templateUrl: './users.component.html', + styleUrls: ['./users.component.scss'] +}) +export class UsersComponent { + +} diff --git a/src/app/pages/home/home.page.ts b/src/app/pages/home/home.page.ts new file mode 100644 index 0000000..dac5e7f --- /dev/null +++ b/src/app/pages/home/home.page.ts @@ -0,0 +1,8 @@ +import { Component } from '@angular/core'; + +@Component({ + standalone: true, + selector: 'index-page', + template: `Bienvenue sur ce site bourré de fonctionnalités. Il y en sous le capot`, +}) +export class HomePage {} diff --git a/src/app/pages/layout.ts b/src/app/pages/layout.ts new file mode 100644 index 0000000..e404e32 --- /dev/null +++ b/src/app/pages/layout.ts @@ -0,0 +1,46 @@ +import { Component } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { AppService } from '../app.service'; + +@Component({ + standalone: true, + selector: 'app-root', + imports: [RouterModule], + template: `

Angular Router App

+ + + + `, +}) +export class RootComponent { + constructor(private appService: AppService) { + console.log(appService.getHello()); + } +} diff --git a/src/app/pages/movies/movies.component.html b/src/app/pages/movies/movies.component.html new file mode 100644 index 0000000..4880908 --- /dev/null +++ b/src/app/pages/movies/movies.component.html @@ -0,0 +1,5 @@ +

Tous les films avec Chuck Norris

+ +
+

Et c'est tout !

+
\ No newline at end of file diff --git a/src/app/pages/movies/movies.component.scss b/src/app/pages/movies/movies.component.scss new file mode 100644 index 0000000..d3ee7c5 --- /dev/null +++ b/src/app/pages/movies/movies.component.scss @@ -0,0 +1,63 @@ +p.main + { + font-weight: bold; + color: red; + text-align: center; +} + +.bounce { + height: 50px; + width: 50%; + margin: 0 auto; + overflow: hidden; + position: relative; + background: #fefefe; + color: #333; + border: 1px solid #4a4a4a; +} + +.bounce p { + position: absolute; + width: 100%; + height: 100%; + margin: 0; + line-height: 50px; + text-align: center; + -moz-transform: translateX(50%); + -webkit-transform: translateX(50%); + transform: translateX(50%); + -moz-animation: bouncing-text 2s linear infinite alternate; + -webkit-animation: bouncing-text 2s linear infinite alternate; + animation: bouncing-text 2s linear infinite alternate; +} + +@-moz-keyframes bouncing-text { + 0% { + -moz-transform: translateX(50%); + } + 100% { + -moz-transform: translateX(-50%); + } +} + +@-webkit-keyframes bouncing-text { + 0% { + -webkit-transform: translateX(50%); + } + 100% { + -webkit-transform: translateX(-50%); + } +} + +@keyframes bouncing-text { + 0% { + -moz-transform: translateX(50%); + -webkit-transform: translateX(50%); + transform: translateX(50%); + } + 100% { + -moz-transform: translateX(-50%); + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + } +} \ No newline at end of file diff --git a/src/app/pages/movies/movies.component.spec.ts b/src/app/pages/movies/movies.component.spec.ts new file mode 100644 index 0000000..32c9432 --- /dev/null +++ b/src/app/pages/movies/movies.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MoviesComponent } from './movies.component'; + +describe('MoviesComponent', () => { + let component: MoviesComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [MoviesComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(MoviesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/movies/movies.component.ts b/src/app/pages/movies/movies.component.ts new file mode 100644 index 0000000..9435802 --- /dev/null +++ b/src/app/pages/movies/movies.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-movies', + templateUrl: './movies.component.html', + styleUrls: ['./movies.component.scss'] +}) +export class MoviesComponent { + +} diff --git a/src/app/pages/pages.module.ts b/src/app/pages/pages.module.ts new file mode 100644 index 0000000..b4c8657 --- /dev/null +++ b/src/app/pages/pages.module.ts @@ -0,0 +1,32 @@ +import { CommonModule } from "@angular/common"; +import { NgModule } from "@angular/core"; +import { Routes, RouterModule } from "@angular/router"; +import { MoviesComponent } from "./movies/movies.component"; + +export const appRouteList: Routes = [ + + { + path: 'movies', + component: MoviesComponent + }, + { + path: '**', + redirectTo: 'types' + } +]; + +@NgModule({ + declarations: [ + MoviesComponent + ], + imports: [ + CommonModule, + RouterModule.forChild(appRouteList) + ], + bootstrap: [ + ], + exports: [ + MoviesComponent + ] +}) +export class PagesModule { } diff --git a/src/main.ts b/src/main.ts index 35b00f3..e578fc5 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,9 @@ +import "@angular/compiler"; +import 'zone.js'; + import { bootstrapApplication } from '@angular/platform-browser'; import { appConfig } from './app/app.config'; -import { AppComponent } from './app/app.component'; +import { RootComponent } from './app/pages/layout'; -bootstrapApplication(AppComponent, appConfig) +bootstrapApplication(RootComponent, appConfig) .catch((err) => console.error(err)); diff --git a/tsconfig.json b/tsconfig.json index f37b67f..0c4af9b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,7 +22,11 @@ "lib": [ "ES2022", "dom" - ] + ], + "baseUrl": "./", + "types": [ + "vite/client" + ], }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false, @@ -30,4 +34,4 @@ "strictInputAccessModifiers": true, "strictTemplates": true } -} +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..e716338 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from 'vite'; +import { angular } from '@nitedani/vite-plugin-angular/plugin'; + +export default defineConfig({ + plugins: [angular()], +}); \ No newline at end of file