Forráskód Böngészése

change:from ngModule to Standalone

202226701053 7 hónapja
szülő
commit
77a007993d
84 módosított fájl, 384 hozzáadás és 551 törlés
  1. 0 0
      E-Cover-app/.browserslistrc
  2. 0 0
      E-Cover-app/.editorconfig
  3. 0 0
      E-Cover-app/.eslintrc.json
  4. 0 0
      E-Cover-app/.gitignore
  5. 0 0
      E-Cover-app/.vscode/extensions.json
  6. 1 1
      E-Cover-app/.vscode/settings.json
  7. 14 19
      E-Cover-app/angular.json
  8. 1 1
      E-Cover-app/capacitor.config.ts
  9. 7 0
      E-Cover-app/ionic.config.json
  10. 0 0
      E-Cover-app/karma.conf.js
  11. 114 111
      E-Cover-app/package-lock.json
  12. 2 2
      E-Cover-app/package.json
  13. 0 0
      E-Cover-app/src/app/app.component.html
  14. 0 0
      E-Cover-app/src/app/app.component.scss
  15. 5 10
      E-Cover-app/src/app/app.component.spec.ts
  16. 3 1
      E-Cover-app/src/app/app.component.ts
  17. 8 0
      E-Cover-app/src/app/app.routes.ts
  18. 12 0
      E-Cover-app/src/app/explore-container/explore-container.component.html
  19. 0 0
      E-Cover-app/src/app/explore-container/explore-container.component.scss
  20. 0 6
      E-Cover-app/src/app/explore-container/explore-container.component.spec.ts
  21. 1 2
      E-Cover-app/src/app/explore-container/explore-container.component.ts
  22. 1 1
      E-Cover-app/src/app/generate-option/generate-option.component.html
  23. 0 0
      E-Cover-app/src/app/generate-option/generate-option.component.scss
  24. 0 0
      E-Cover-app/src/app/generate-option/generate-option.component.spec.ts
  25. 0 0
      E-Cover-app/src/app/generate-option/generate-option.component.ts
  26. 0 0
      E-Cover-app/src/app/tab1/style-img/banner1.png
  27. 57 0
      E-Cover-app/src/app/tab1/tab1.page.html
  28. 0 0
      E-Cover-app/src/app/tab1/tab1.page.scss
  29. 0 8
      E-Cover-app/src/app/tab1/tab1.page.spec.ts
  30. 22 0
      E-Cover-app/src/app/tab1/tab1.page.ts
  31. 0 0
      E-Cover-app/src/app/tab2/tab2.page.html
  32. 0 0
      E-Cover-app/src/app/tab2/tab2.page.scss
  33. 0 8
      E-Cover-app/src/app/tab2/tab2.page.spec.ts
  34. 16 0
      E-Cover-app/src/app/tab2/tab2.page.ts
  35. 0 0
      E-Cover-app/src/app/tab3/tab3.page.html
  36. 0 0
      E-Cover-app/src/app/tab3/tab3.page.scss
  37. 0 8
      E-Cover-app/src/app/tab3/tab3.page.spec.ts
  38. 14 0
      E-Cover-app/src/app/tab3/tab3.page.ts
  39. 0 0
      E-Cover-app/src/app/tabs/style-img/footer-bg.png
  40. 0 0
      E-Cover-app/src/app/tabs/style-img/footer-font.OTF
  41. 0 0
      E-Cover-app/src/app/tabs/tabs.page.html
  42. 26 0
      E-Cover-app/src/app/tabs/tabs.page.scss
  43. 3 3
      E-Cover-app/src/app/tabs/tabs.page.spec.ts
  44. 19 0
      E-Cover-app/src/app/tabs/tabs.page.ts
  45. 41 0
      E-Cover-app/src/app/tabs/tabs.routes.ts
  46. 0 0
      E-Cover-app/src/assets/icon/favicon.png
  47. 0 0
      E-Cover-app/src/assets/shapes.svg
  48. 0 0
      E-Cover-app/src/environments/environment.prod.ts
  49. 0 0
      E-Cover-app/src/environments/environment.ts
  50. 1 1
      E-Cover-app/src/global.scss
  51. 0 0
      E-Cover-app/src/index.html
  52. 14 0
      E-Cover-app/src/main.ts
  53. 1 1
      E-Cover-app/src/polyfills.ts
  54. 0 0
      E-Cover-app/src/test.ts
  55. 0 0
      E-Cover-app/src/theme/variables.scss
  56. 0 0
      E-Cover-app/src/zone-flags.ts
  57. 0 0
      E-Cover-app/tsconfig.app.json
  58. 1 4
      E-Cover-app/tsconfig.json
  59. 0 0
      E-Cover-app/tsconfig.spec.json
  60. 0 0
      E-Cover-prod/README.md
  61. 0 0
      E-Cover-prod/img/1.jpg
  62. 0 0
      E-Cover-prod/img/2.jpg
  63. 0 0
      E-Cover-prod/img/3.png
  64. 0 0
      E-Cover-prod/img/4.jpg
  65. 0 7
      Ecover-app/ionic.config.json
  66. 0 16
      Ecover-app/src/app/app-routing.module.ts
  67. 0 16
      Ecover-app/src/app/app.module.ts
  68. 0 4
      Ecover-app/src/app/explore-container/explore-container.component.html
  69. 0 14
      Ecover-app/src/app/explore-container/explore-container.module.ts
  70. 0 16
      Ecover-app/src/app/tab1/tab1-routing.module.ts
  71. 0 20
      Ecover-app/src/app/tab1/tab1.module.ts
  72. 0 57
      Ecover-app/src/app/tab1/tab1.page.html
  73. 0 12
      Ecover-app/src/app/tab1/tab1.page.ts
  74. 0 16
      Ecover-app/src/app/tab2/tab2-routing.module.ts
  75. 0 20
      Ecover-app/src/app/tab2/tab2.module.ts
  76. 0 12
      Ecover-app/src/app/tab2/tab2.page.ts
  77. 0 16
      Ecover-app/src/app/tab3/tab3-routing.module.ts
  78. 0 20
      Ecover-app/src/app/tab3/tab3.module.ts
  79. 0 12
      Ecover-app/src/app/tab3/tab3.page.ts
  80. 0 43
      Ecover-app/src/app/tabs/tabs-routing.module.ts
  81. 0 19
      Ecover-app/src/app/tabs/tabs.module.ts
  82. 0 26
      Ecover-app/src/app/tabs/tabs.page.scss
  83. 0 12
      Ecover-app/src/app/tabs/tabs.page.ts
  84. 0 6
      Ecover-app/src/main.ts

+ 0 - 0
Ecover-app/.browserslistrc → E-Cover-app/.browserslistrc


+ 0 - 0
Ecover-app/.editorconfig → E-Cover-app/.editorconfig


+ 0 - 0
Ecover-app/.eslintrc.json → E-Cover-app/.eslintrc.json


+ 0 - 0
Ecover-app/.gitignore → E-Cover-app/.gitignore


+ 0 - 0
Ecover-app/.vscode/extensions.json → E-Cover-app/.vscode/extensions.json


+ 1 - 1
Ecover-app/.vscode/settings.json → E-Cover-app/.vscode/settings.json

@@ -1,3 +1,3 @@
 {
-  "typescript.preferences.autoImportFileExcludePatterns": ["@ionic/angular/common", "@ionic/angular/standalone"]
+  "typescript.preferences.autoImportFileExcludePatterns": ["@ionic/angular/common", "@ionic/angular"]
 }

+ 14 - 19
Ecover-app/angular.json → E-Cover-app/angular.json

@@ -5,7 +5,12 @@
   "projects": {
     "app": {
       "projectType": "application",
-      "schematics": {},
+      "schematics": {
+        "@ionic/angular-toolkit:page": {
+          "styleext": "scss",
+          "standalone": true
+        }
+      },
       "root": "",
       "sourceRoot": "src",
       "prefix": "app",
@@ -24,11 +29,6 @@
                 "glob": "**/*",
                 "input": "src/assets",
                 "output": "assets"
-              },
-              {
-                "glob": "**/*.svg",
-                "input": "node_modules/ionicons/dist/ionicons/svg",
-                "output": "./svg"
               }
             ],
             "styles": ["src/global.scss", "src/theme/variables.scss"],
@@ -104,11 +104,6 @@
                 "glob": "**/*",
                 "input": "src/assets",
                 "output": "assets"
-              },
-              {
-                "glob": "**/*.svg",
-                "input": "node_modules/ionicons/dist/ionicons/svg",
-                "output": "./svg"
               }
             ],
             "styles": ["src/global.scss", "src/theme/variables.scss"],
@@ -124,20 +119,14 @@
         "lint": {
           "builder": "@angular-eslint/builder:lint",
           "options": {
-            "lintFilePatterns": [
-              "src/**/*.ts",
-              "src/**/*.html"
-            ]
+            "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
           }
         }
       }
     }
   },
   "cli": {
-    "schematicCollections": [
-      "@ionic/angular-toolkit"
-    ],
-    "analytics": false
+    "schematicCollections": ["@ionic/angular-toolkit"]
   },
   "schematics": {
     "@ionic/angular-toolkit:component": {
@@ -145,6 +134,12 @@
     },
     "@ionic/angular-toolkit:page": {
       "styleext": "scss"
+    },
+    "@angular-eslint/schematics:application": {
+      "setParserOptionsProject": true
+    },
+    "@angular-eslint/schematics:library": {
+      "setParserOptionsProject": true
     }
   }
 }

+ 1 - 1
Ecover-app/capacitor.config.ts → E-Cover-app/capacitor.config.ts

@@ -2,7 +2,7 @@ import type { CapacitorConfig } from '@capacitor/cli';
 
 const config: CapacitorConfig = {
   appId: 'io.ionic.starter',
-  appName: 'Ecover-app',
+  appName: 'E-Cover-app',
   webDir: 'www'
 };
 

+ 7 - 0
E-Cover-app/ionic.config.json

@@ -0,0 +1,7 @@
+{
+  "name": "E-Cover-app",
+  "integrations": {
+    "capacitor": {}
+  },
+  "type": "angular-standalone"
+}

+ 0 - 0
Ecover-app/karma.conf.js → E-Cover-app/karma.conf.js


+ 114 - 111
Ecover-app/package-lock.json → E-Cover-app/package-lock.json

@@ -1,11 +1,11 @@
 {
-  "name": "Ecover-app",
+  "name": "E-Cover-app",
   "version": "0.0.1",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
-      "name": "Ecover-app",
+      "name": "E-Cover-app",
       "version": "0.0.1",
       "dependencies": {
         "@angular/animations": "^18.0.0",
@@ -22,7 +22,7 @@
         "@capacitor/keyboard": "6.0.3",
         "@capacitor/status-bar": "6.0.2",
         "@ionic/angular": "^8.0.0",
-        "ionicons": "^7.0.0",
+        "ionicons": "^7.2.1",
         "rxjs": "~7.8.0",
         "tslib": "^2.3.0",
         "zone.js": "~0.14.2"
@@ -391,9 +391,9 @@
       }
     },
     "node_modules/@angular/animations": {
-      "version": "18.2.12",
-      "resolved": "https://registry.npmmirror.com/@angular/animations/-/animations-18.2.12.tgz",
-      "integrity": "sha512-XcWH/VFQ1Rddhdqi/iU8lW3Qg96yVx1NPfrO5lhcSSvVUzYWTZ5r+jh3GqYqUgPWyEp1Kpw3FLsOgVcGcBWQkQ==",
+      "version": "18.2.13",
+      "resolved": "https://registry.npmmirror.com/@angular/animations/-/animations-18.2.13.tgz",
+      "integrity": "sha512-rG5J5Ek5Hg+Tz2NjkNOaG6PupiNK/lPfophXpsR1t/nWujqnMWX2krahD/i6kgD+jNWNKCJCYSOVvCx/BHOtKA==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -402,7 +402,7 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/core": "18.2.12"
+        "@angular/core": "18.2.13"
       }
     },
     "node_modules/@angular/build": {
@@ -509,9 +509,9 @@
       }
     },
     "node_modules/@angular/common": {
-      "version": "18.2.12",
-      "resolved": "https://registry.npmmirror.com/@angular/common/-/common-18.2.12.tgz",
-      "integrity": "sha512-gI5o8Bccsi8ow8Wk2vG4Tw/Rw9LoHEA9j8+qHKNR/55SCBsz68Syg310dSyxy+sApJO2WiqIadr5VP36dlSUFw==",
+      "version": "18.2.13",
+      "resolved": "https://registry.npmmirror.com/@angular/common/-/common-18.2.13.tgz",
+      "integrity": "sha512-4ZqrNp1PoZo7VNvW+sbSc2CB2axP1sCH2wXl8B0wdjsj8JY1hF1OhuugwhpAHtGxqewed2kCXayE+ZJqSTV4jw==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -520,14 +520,14 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/core": "18.2.12",
+        "@angular/core": "18.2.13",
         "rxjs": "^6.5.3 || ^7.4.0"
       }
     },
     "node_modules/@angular/compiler": {
-      "version": "18.2.12",
-      "resolved": "https://registry.npmmirror.com/@angular/compiler/-/compiler-18.2.12.tgz",
-      "integrity": "sha512-D5d5dLrjQal5DbAXJJNSsCC3UxzjOI2wbc+Iv+LOpRM1gpNwuYfZMX5W7cj62Ce4G2++78CJSppdKBp8D4HErQ==",
+      "version": "18.2.13",
+      "resolved": "https://registry.npmmirror.com/@angular/compiler/-/compiler-18.2.13.tgz",
+      "integrity": "sha512-TzWcrkopyjFF+WeDr2cRe8CcHjU72KfYV3Sm2TkBkcXrkYX5sDjGWrBGrG3hRB4e4okqchrOCvm1MiTdy2vKMA==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -536,7 +536,7 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/core": "18.2.12"
+        "@angular/core": "18.2.13"
       },
       "peerDependenciesMeta": {
         "@angular/core": {
@@ -545,9 +545,9 @@
       }
     },
     "node_modules/@angular/compiler-cli": {
-      "version": "18.2.12",
-      "resolved": "https://registry.npmmirror.com/@angular/compiler-cli/-/compiler-cli-18.2.12.tgz",
-      "integrity": "sha512-IWimTNq5Q+i2Wxev6HLqnN4iYbPvLz04W1BBycT1LfGUsHcjFYLuUqbeUzHbk2snmBAzXkixgVpo8SF6P4Y5Pg==",
+      "version": "18.2.13",
+      "resolved": "https://registry.npmmirror.com/@angular/compiler-cli/-/compiler-cli-18.2.13.tgz",
+      "integrity": "sha512-DBSh4AQwkiJDSiVvJATRmjxf6wyUs9pwQLgaFdSlfuTRO+sdb0J2z1r3BYm8t0IqdoyXzdZq2YCH43EmyvD71g==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -569,7 +569,7 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/compiler": "18.2.12",
+        "@angular/compiler": "18.2.13",
         "typescript": ">=5.4 <5.6"
       }
     },
@@ -604,9 +604,9 @@
       }
     },
     "node_modules/@angular/core": {
-      "version": "18.2.12",
-      "resolved": "https://registry.npmmirror.com/@angular/core/-/core-18.2.12.tgz",
-      "integrity": "sha512-wCf/OObwS6bpM60rk6bpMpCRGp0DlMLB1WNAMtfcaPNyqimVV5Bm98mWRhkOuRyvU3fU7iHhM/10ePVaoyu9+A==",
+      "version": "18.2.13",
+      "resolved": "https://registry.npmmirror.com/@angular/core/-/core-18.2.13.tgz",
+      "integrity": "sha512-8mbWHMgO95OuFV1Ejy4oKmbe9NOJ3WazQf/f7wks8Bck7pcihd0IKhlPBNjFllbF5o+04EYSwFhEtvEgjMDClA==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -620,9 +620,9 @@
       }
     },
     "node_modules/@angular/forms": {
-      "version": "18.2.12",
-      "resolved": "https://registry.npmmirror.com/@angular/forms/-/forms-18.2.12.tgz",
-      "integrity": "sha512-FsukBJEU6jfAmht7TrODTkct/o4iwCZvGozuThOp0tYUPD/E1rZZzuKjEyTnT5Azpfkf0Wqx1nmpz80cczELOQ==",
+      "version": "18.2.13",
+      "resolved": "https://registry.npmmirror.com/@angular/forms/-/forms-18.2.13.tgz",
+      "integrity": "sha512-A67D867fu3DSBhdLWWZl/F5pr7v2+dRM2u3U7ZJ0ewh4a+sv+0yqWdJW+a8xIoiHxS+btGEJL2qAKJiH+MCFfg==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -631,16 +631,16 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/common": "18.2.12",
-        "@angular/core": "18.2.12",
-        "@angular/platform-browser": "18.2.12",
+        "@angular/common": "18.2.13",
+        "@angular/core": "18.2.13",
+        "@angular/platform-browser": "18.2.13",
         "rxjs": "^6.5.3 || ^7.4.0"
       }
     },
     "node_modules/@angular/language-service": {
-      "version": "18.2.12",
-      "resolved": "https://registry.npmmirror.com/@angular/language-service/-/language-service-18.2.12.tgz",
-      "integrity": "sha512-oaiVAnGzmPZvrXdGh8XnosaqfEPbZxO2225MxbbrD49XTqUgpaS2zrz1Uf5j42e8qytA2kj8tckLq7PAMm0D1w==",
+      "version": "18.2.13",
+      "resolved": "https://registry.npmmirror.com/@angular/language-service/-/language-service-18.2.13.tgz",
+      "integrity": "sha512-4E4VJDrbOAxS69F9C1twQPbR9AjY47Qlz8+lwg5lJOyUJ4GoEThLbXKfadt/vIeYBwMJ7fIsYWXD0Dlmxh4k+w==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -648,9 +648,9 @@
       }
     },
     "node_modules/@angular/platform-browser": {
-      "version": "18.2.12",
-      "resolved": "https://registry.npmmirror.com/@angular/platform-browser/-/platform-browser-18.2.12.tgz",
-      "integrity": "sha512-DRSMznuxuecrs+v5BRyd60/R4vjkQtuYUEPfzdo+rqxM83Dmr3PGtnqPRgd5oAFUbATxf02hQXijRD27K7rZRg==",
+      "version": "18.2.13",
+      "resolved": "https://registry.npmmirror.com/@angular/platform-browser/-/platform-browser-18.2.13.tgz",
+      "integrity": "sha512-tu7ZzY6qD3ATdWFzcTcsAKe7M6cJeWbT/4/bF9unyGO3XBPcNYDKoiz10+7ap2PUd0fmPwvuvTvSNJiFEBnB8Q==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -659,9 +659,9 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/animations": "18.2.12",
-        "@angular/common": "18.2.12",
-        "@angular/core": "18.2.12"
+        "@angular/animations": "18.2.13",
+        "@angular/common": "18.2.13",
+        "@angular/core": "18.2.13"
       },
       "peerDependenciesMeta": {
         "@angular/animations": {
@@ -670,9 +670,9 @@
       }
     },
     "node_modules/@angular/platform-browser-dynamic": {
-      "version": "18.2.12",
-      "resolved": "https://registry.npmmirror.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.12.tgz",
-      "integrity": "sha512-dv1QEjYpcFno6+oUeGEDRWpB5g2Ufb0XkUbLJQIgrOk1Qbyzb8tmpDpTjok8jcKdquigMRWolr6Y1EOicfRlLw==",
+      "version": "18.2.13",
+      "resolved": "https://registry.npmmirror.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.13.tgz",
+      "integrity": "sha512-kbQCf9+8EpuJC7buBxhSiwBtXvjAwAKh6MznD6zd2pyCYqfY6gfRCZQRtK59IfgVtKmEONWI9grEyNIRoTmqJg==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -681,16 +681,16 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/common": "18.2.12",
-        "@angular/compiler": "18.2.12",
-        "@angular/core": "18.2.12",
-        "@angular/platform-browser": "18.2.12"
+        "@angular/common": "18.2.13",
+        "@angular/compiler": "18.2.13",
+        "@angular/core": "18.2.13",
+        "@angular/platform-browser": "18.2.13"
       }
     },
     "node_modules/@angular/router": {
-      "version": "18.2.12",
-      "resolved": "https://registry.npmmirror.com/@angular/router/-/router-18.2.12.tgz",
-      "integrity": "sha512-cz/1YWOZadAT35PPPYmpK3HSzKOE56nlUHue5bFkw73VSZr2iBn03ALLpd9YKzWgRmx3y7DqnlQtCkDu9JPGKQ==",
+      "version": "18.2.13",
+      "resolved": "https://registry.npmmirror.com/@angular/router/-/router-18.2.13.tgz",
+      "integrity": "sha512-VKmfgi/r/CkyBq9nChQ/ptmfu0JT/8ONnLVJ5H+SkFLRYJcIRyHLKjRihMCyVm6xM5yktOdCaW73NTQrFz7+bg==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -699,9 +699,9 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/common": "18.2.12",
-        "@angular/core": "18.2.12",
-        "@angular/platform-browser": "18.2.12",
+        "@angular/common": "18.2.13",
+        "@angular/core": "18.2.13",
+        "@angular/platform-browser": "18.2.13",
         "rxjs": "^6.5.3 || ^7.4.0"
       }
     },
@@ -3728,12 +3728,12 @@
       }
     },
     "node_modules/@ionic/angular": {
-      "version": "8.4.0",
-      "resolved": "https://registry.npmmirror.com/@ionic/angular/-/angular-8.4.0.tgz",
-      "integrity": "sha512-ivgHk76zpu6EZZlxXj5+FUqGwFKotWhDDA9YRltd2QCnQN+7kwacQk7KFInQ5Sd8RJT98mKFG3oOpyx5gFrBdA==",
+      "version": "8.4.1",
+      "resolved": "https://registry.npmmirror.com/@ionic/angular/-/angular-8.4.1.tgz",
+      "integrity": "sha512-22ghlHeIJjHDizns/huYp1sQ3Y9qYyUY9hEueIB0e8jsNhCOwhRijMIoOCZ/sfMKTbNaKX7EJ25NpVetF7mZXQ==",
       "license": "MIT",
       "dependencies": {
-        "@ionic/core": "8.4.0",
+        "@ionic/core": "8.4.1",
         "ionicons": "^7.0.0",
         "jsonc-parser": "^3.0.0",
         "tslib": "^2.3.0"
@@ -3906,9 +3906,9 @@
       }
     },
     "node_modules/@ionic/core": {
-      "version": "8.4.0",
-      "resolved": "https://registry.npmmirror.com/@ionic/core/-/core-8.4.0.tgz",
-      "integrity": "sha512-mZ2Ni9QByFGWBNr5W/F/nyPV+cXLhK+6W5BRziy7QPX6YIS57KH8FpY+CjE7BEcpE78anyY49bZt3eOWcES02g==",
+      "version": "8.4.1",
+      "resolved": "https://registry.npmmirror.com/@ionic/core/-/core-8.4.1.tgz",
+      "integrity": "sha512-D5xpw5TF2wldpAWE0rHq3L+5T79EjR6d++QFpprjp+q+cFjjhOnfGD+2k7gLlWepAod9LUUigeL0JF02C2wgRQ==",
       "license": "MIT",
       "dependencies": {
         "@stencil/core": "4.20.0",
@@ -5699,9 +5699,9 @@
       }
     },
     "node_modules/@types/jasmine": {
-      "version": "5.1.4",
-      "resolved": "https://registry.npmmirror.com/@types/jasmine/-/jasmine-5.1.4.tgz",
-      "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==",
+      "version": "5.1.5",
+      "resolved": "https://registry.npmmirror.com/@types/jasmine/-/jasmine-5.1.5.tgz",
+      "integrity": "sha512-SaCZ3kM5NjOiJqMRYwHpLbTfUC2Dyk1KS3QanNFsUYPGTk70CWVK/J9ueun6zNhw/UkgV7xl8V4ZLQZNRbfnNw==",
       "dev": true,
       "license": "MIT"
     },
@@ -5737,13 +5737,13 @@
       }
     },
     "node_modules/@types/node": {
-      "version": "22.9.3",
-      "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.9.3.tgz",
-      "integrity": "sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==",
+      "version": "22.10.1",
+      "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.10.1.tgz",
+      "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "undici-types": "~6.19.8"
+        "undici-types": "~6.20.0"
       }
     },
     "node_modules/@types/node-forge": {
@@ -6081,9 +6081,9 @@
       }
     },
     "node_modules/@typescript-eslint/types": {
-      "version": "8.15.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.15.0.tgz",
-      "integrity": "sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==",
+      "version": "8.16.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.16.0.tgz",
+      "integrity": "sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==",
       "dev": true,
       "license": "MIT",
       "peer": true,
@@ -6139,17 +6139,17 @@
       }
     },
     "node_modules/@typescript-eslint/utils": {
-      "version": "8.15.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.15.0.tgz",
-      "integrity": "sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==",
+      "version": "8.16.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.16.0.tgz",
+      "integrity": "sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==",
       "dev": true,
       "license": "MIT",
       "peer": true,
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.4.0",
-        "@typescript-eslint/scope-manager": "8.15.0",
-        "@typescript-eslint/types": "8.15.0",
-        "@typescript-eslint/typescript-estree": "8.15.0"
+        "@typescript-eslint/scope-manager": "8.16.0",
+        "@typescript-eslint/types": "8.16.0",
+        "@typescript-eslint/typescript-estree": "8.16.0"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -6168,15 +6168,15 @@
       }
     },
     "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": {
-      "version": "8.15.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.15.0.tgz",
-      "integrity": "sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==",
+      "version": "8.16.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz",
+      "integrity": "sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==",
       "dev": true,
       "license": "MIT",
       "peer": true,
       "dependencies": {
-        "@typescript-eslint/types": "8.15.0",
-        "@typescript-eslint/visitor-keys": "8.15.0"
+        "@typescript-eslint/types": "8.16.0",
+        "@typescript-eslint/visitor-keys": "8.16.0"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -6187,15 +6187,15 @@
       }
     },
     "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": {
-      "version": "8.15.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.15.0.tgz",
-      "integrity": "sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==",
+      "version": "8.16.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz",
+      "integrity": "sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==",
       "dev": true,
       "license": "BSD-2-Clause",
       "peer": true,
       "dependencies": {
-        "@typescript-eslint/types": "8.15.0",
-        "@typescript-eslint/visitor-keys": "8.15.0",
+        "@typescript-eslint/types": "8.16.0",
+        "@typescript-eslint/visitor-keys": "8.16.0",
         "debug": "^4.3.4",
         "fast-glob": "^3.3.2",
         "is-glob": "^4.0.3",
@@ -6217,14 +6217,14 @@
       }
     },
     "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": {
-      "version": "8.15.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.15.0.tgz",
-      "integrity": "sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==",
+      "version": "8.16.0",
+      "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz",
+      "integrity": "sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==",
       "dev": true,
       "license": "MIT",
       "peer": true,
       "dependencies": {
-        "@typescript-eslint/types": "8.15.0",
+        "@typescript-eslint/types": "8.16.0",
         "eslint-visitor-keys": "^4.2.0"
       },
       "engines": {
@@ -8595,9 +8595,9 @@
       "license": "MIT"
     },
     "node_modules/electron-to-chromium": {
-      "version": "1.5.64",
-      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.64.tgz",
-      "integrity": "sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==",
+      "version": "1.5.67",
+      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz",
+      "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==",
       "dev": true,
       "license": "ISC"
     },
@@ -8929,15 +8929,15 @@
       }
     },
     "node_modules/es-to-primitive": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
-      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+      "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "is-callable": "^1.1.4",
-        "is-date-object": "^1.0.1",
-        "is-symbol": "^1.0.2"
+        "is-callable": "^1.2.7",
+        "is-date-object": "^1.0.5",
+        "is-symbol": "^1.0.4"
       },
       "engines": {
         "node": ">= 0.4"
@@ -13104,9 +13104,9 @@
       }
     },
     "node_modules/nanoid": {
-      "version": "3.3.7",
-      "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
-      "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+      "version": "3.3.8",
+      "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz",
+      "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
       "dev": true,
       "funding": [
         {
@@ -15547,11 +15547,14 @@
       }
     },
     "node_modules/shell-quote": {
-      "version": "1.8.1",
-      "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.1.tgz",
-      "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+      "version": "1.8.2",
+      "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.2.tgz",
+      "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==",
       "dev": true,
       "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
       "funding": {
         "url": "https://github.com/sponsors/ljharb"
       }
@@ -16513,9 +16516,9 @@
       }
     },
     "node_modules/ts-api-utils": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.4.1.tgz",
-      "integrity": "sha512-5RU2/lxTA3YUZxju61HO2U6EoZLvBLtmV2mbTvqyu4a/7s7RmJPT+1YekhMVsQhznRWk/czIwDUg+V8Q9ZuG4w==",
+      "version": "1.4.3",
+      "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz",
+      "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -16755,9 +16758,9 @@
       }
     },
     "node_modules/undici-types": {
-      "version": "6.19.8",
-      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz",
-      "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+      "version": "6.20.0",
+      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.20.0.tgz",
+      "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
       "dev": true,
       "license": "MIT"
     },
@@ -18016,9 +18019,9 @@
       }
     },
     "node_modules/which-typed-array": {
-      "version": "1.1.15",
-      "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.15.tgz",
-      "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
+      "version": "1.1.16",
+      "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.16.tgz",
+      "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {

+ 2 - 2
Ecover-app/package.json → E-Cover-app/package.json

@@ -1,5 +1,5 @@
 {
-  "name": "Ecover-app",
+  "name": "E-Cover-app",
   "version": "0.0.1",
   "author": "Ionic Framework",
   "homepage": "https://ionicframework.com/",
@@ -27,7 +27,7 @@
     "@capacitor/keyboard": "6.0.3",
     "@capacitor/status-bar": "6.0.2",
     "@ionic/angular": "^8.0.0",
-    "ionicons": "^7.0.0",
+    "ionicons": "^7.2.1",
     "rxjs": "~7.8.0",
     "tslib": "^2.3.0",
     "zone.js": "~0.14.2"

+ 0 - 0
Ecover-app/src/app/app.component.html → E-Cover-app/src/app/app.component.html


+ 0 - 0
Ecover-app/src/app/app.component.scss → E-Cover-app/src/app/app.component.scss


+ 5 - 10
Ecover-app/src/app/app.component.spec.ts → E-Cover-app/src/app/app.component.spec.ts

@@ -1,21 +1,16 @@
-import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
 import { TestBed } from '@angular/core/testing';
-
+import { provideRouter } from '@angular/router';
 import { AppComponent } from './app.component';
 
 describe('AppComponent', () => {
-
-  beforeEach(async () => {
+  it('should create the app', async () => {
     await TestBed.configureTestingModule({
-      declarations: [AppComponent],
-      schemas: [CUSTOM_ELEMENTS_SCHEMA],
+      imports: [AppComponent],
+      providers: [provideRouter([])]
     }).compileComponents();
-  });
-
-  it('should create the app', () => {
+    
     const fixture = TestBed.createComponent(AppComponent);
     const app = fixture.componentInstance;
     expect(app).toBeTruthy();
   });
-
 });

+ 3 - 1
Ecover-app/src/app/app.component.ts → E-Cover-app/src/app/app.component.ts

@@ -1,9 +1,11 @@
 import { Component } from '@angular/core';
+import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
 
 @Component({
   selector: 'app-root',
   templateUrl: 'app.component.html',
-  styleUrls: ['app.component.scss'],
+  standalone: true,
+  imports: [IonApp, IonRouterOutlet],
 })
 export class AppComponent {
   constructor() {}

+ 8 - 0
E-Cover-app/src/app/app.routes.ts

@@ -0,0 +1,8 @@
+import { Routes } from '@angular/router';
+
+export const routes: Routes = [
+  {
+    path: '',
+    loadChildren: () => import('./tabs/tabs.routes').then((m) => m.routes),
+  },
+];

+ 12 - 0
E-Cover-app/src/app/explore-container/explore-container.component.html

@@ -0,0 +1,12 @@
+<div id="container">
+  <strong>{{ name }}</strong>
+  <p>
+    Explore
+    <a
+      target="_blank"
+      rel="noopener noreferrer"
+      href="https://ionicframework.com/docs/components"
+      >UI Components</a
+    >
+  </p>
+</div>

+ 0 - 0
Ecover-app/src/app/explore-container/explore-container.component.scss → E-Cover-app/src/app/explore-container/explore-container.component.scss


+ 0 - 6
Ecover-app/src/app/explore-container/explore-container.component.spec.ts → E-Cover-app/src/app/explore-container/explore-container.component.spec.ts

@@ -1,5 +1,4 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { IonicModule } from '@ionic/angular';
 
 import { ExploreContainerComponent } from './explore-container.component';
 
@@ -8,11 +7,6 @@ describe('ExploreContainerComponent', () => {
   let fixture: ComponentFixture<ExploreContainerComponent>;
 
   beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [ExploreContainerComponent],
-      imports: [IonicModule.forRoot()]
-    }).compileComponents();
-
     fixture = TestBed.createComponent(ExploreContainerComponent);
     component = fixture.componentInstance;
     fixture.detectChanges();

+ 1 - 2
Ecover-app/src/app/explore-container/explore-container.component.ts → E-Cover-app/src/app/explore-container/explore-container.component.ts

@@ -4,9 +4,8 @@ import { Component, Input } from '@angular/core';
   selector: 'app-explore-container',
   templateUrl: './explore-container.component.html',
   styleUrls: ['./explore-container.component.scss'],
+  standalone: true,
 })
 export class ExploreContainerComponent {
-
   @Input() name?: string;
-
 }

+ 1 - 1
Ecover-app/src/app/generate-option/generate-option.component.html → E-Cover-app/src/app/generate-option/generate-option.component.html

@@ -1,3 +1,3 @@
-<p style="color: red;">
+<p>
   generate-option works!
 </p>

+ 0 - 0
Ecover-app/src/app/generate-option/generate-option.component.scss → E-Cover-app/src/app/generate-option/generate-option.component.scss


+ 0 - 0
Ecover-app/src/app/generate-option/generate-option.component.spec.ts → E-Cover-app/src/app/generate-option/generate-option.component.spec.ts


+ 0 - 0
Ecover-app/src/app/generate-option/generate-option.component.ts → E-Cover-app/src/app/generate-option/generate-option.component.ts


+ 0 - 0
Ecover-app/src/app/tab1/style-img/banner1.png → E-Cover-app/src/app/tab1/style-img/banner1.png


+ 57 - 0
E-Cover-app/src/app/tab1/tab1.page.html

@@ -0,0 +1,57 @@
+<div id="banner">
+  <div id="header">
+      <div id="header-left">
+          <ion-icon name="location-outline" size="large" aria-hidden="true"></ion-icon>
+          位置信息
+      </div>
+
+      <div id="header-right">
+          <ion-icon name="notifications-outline" size="large" aria-label="Favorite"></ion-icon>
+      </div>
+  </div>
+
+  <div style="background:none;">
+      <ion-card>
+          <ion-button fill="clear" (click)="goGenerateOption()">
+              <img src="https://s1.imagehub.cc/images/2024/11/30/65240adeb8e5429ad600c181ab66d62e.png"
+                  alt="button tab">
+          </ion-button>
+          <p>
+              测试
+          </p>
+      </ion-card>
+
+      <ion-card>
+          <ion-button fill="clear">
+              <img src="https://s1.imagehub.cc/images/2024/11/30/65240adeb8e5429ad600c181ab66d62e.png"
+                  alt="button tab">
+          </ion-button>
+          <p>
+              未设置
+          </p>
+      </ion-card>
+
+      <ion-card>
+          <ion-button fill="clear">
+              <img src="https://s1.imagehub.cc/images/2024/11/30/65240adeb8e5429ad600c181ab66d62e.png"
+                  alt="button tab">
+          </ion-button>
+          <p>
+              未设置
+          </p>
+      </ion-card>
+
+      <ion-card>
+          <ion-button fill="clear">
+              <img src="https://s1.imagehub.cc/images/2024/11/30/65240adeb8e5429ad600c181ab66d62e.png"
+                  alt="button tab">
+          </ion-button>
+          <p>
+              未设置
+          </p>
+      </ion-card>
+
+  </div>
+</div>
+<ion-content>
+</ion-content>

+ 0 - 0
Ecover-app/src/app/tab1/tab1.page.scss → E-Cover-app/src/app/tab1/tab1.page.scss


+ 0 - 8
Ecover-app/src/app/tab1/tab1.page.spec.ts → E-Cover-app/src/app/tab1/tab1.page.spec.ts

@@ -1,7 +1,4 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { IonicModule } from '@ionic/angular';
-
-import { ExploreContainerComponentModule } from '../explore-container/explore-container.module';
 
 import { Tab1Page } from './tab1.page';
 
@@ -10,11 +7,6 @@ describe('Tab1Page', () => {
   let fixture: ComponentFixture<Tab1Page>;
 
   beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [Tab1Page],
-      imports: [IonicModule.forRoot(), ExploreContainerComponentModule]
-    }).compileComponents();
-
     fixture = TestBed.createComponent(Tab1Page);
     component = fixture.componentInstance;
     fixture.detectChanges();

+ 22 - 0
E-Cover-app/src/app/tab1/tab1.page.ts

@@ -0,0 +1,22 @@
+import { Component } from '@angular/core';
+import { ExploreContainerComponent } from '../explore-container/explore-container.component';
+import { IonicModule } from '@ionic/angular';
+import { addIcons } from 'ionicons';
+import { notificationsOutline, locationOutline } from 'ionicons/icons';
+import { Router } from '@angular/router';
+addIcons({ 'location-outline': locationOutline, 'notifications-outline': notificationsOutline })
+@Component({
+  selector: 'app-tab1',
+  templateUrl: 'tab1.page.html',
+  styleUrls: ['tab1.page.scss'],
+  standalone: true,
+  imports: [ExploreContainerComponent, IonicModule],
+})
+export class Tab1Page {
+  constructor(private router: Router) { }
+  //
+  goGenerateOption() {
+    this.router.navigate(['/tabs/generate-option']);
+  }
+}
+

+ 0 - 0
Ecover-app/src/app/tab2/tab2.page.html → E-Cover-app/src/app/tab2/tab2.page.html


+ 0 - 0
Ecover-app/src/app/tab2/tab2.page.scss → E-Cover-app/src/app/tab2/tab2.page.scss


+ 0 - 8
Ecover-app/src/app/tab2/tab2.page.spec.ts → E-Cover-app/src/app/tab2/tab2.page.spec.ts

@@ -1,7 +1,4 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { IonicModule } from '@ionic/angular';
-
-import { ExploreContainerComponentModule } from '../explore-container/explore-container.module';
 
 import { Tab2Page } from './tab2.page';
 
@@ -10,11 +7,6 @@ describe('Tab2Page', () => {
   let fixture: ComponentFixture<Tab2Page>;
 
   beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [Tab2Page],
-      imports: [IonicModule.forRoot(), ExploreContainerComponentModule]
-    }).compileComponents();
-
     fixture = TestBed.createComponent(Tab2Page);
     component = fixture.componentInstance;
     fixture.detectChanges();

+ 16 - 0
E-Cover-app/src/app/tab2/tab2.page.ts

@@ -0,0 +1,16 @@
+import { Component } from '@angular/core';
+import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone';
+import { ExploreContainerComponent } from '../explore-container/explore-container.component';
+
+@Component({
+  selector: 'app-tab2',
+  templateUrl: 'tab2.page.html',
+  styleUrls: ['tab2.page.scss'],
+  standalone: true,
+  imports: [IonHeader, IonToolbar, IonTitle, IonContent, ExploreContainerComponent]
+})
+export class Tab2Page {
+
+  constructor() {}
+
+}

+ 0 - 0
Ecover-app/src/app/tab3/tab3.page.html → E-Cover-app/src/app/tab3/tab3.page.html


+ 0 - 0
Ecover-app/src/app/tab3/tab3.page.scss → E-Cover-app/src/app/tab3/tab3.page.scss


+ 0 - 8
Ecover-app/src/app/tab3/tab3.page.spec.ts → E-Cover-app/src/app/tab3/tab3.page.spec.ts

@@ -1,7 +1,4 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { IonicModule } from '@ionic/angular';
-
-import { ExploreContainerComponentModule } from '../explore-container/explore-container.module';
 
 import { Tab3Page } from './tab3.page';
 
@@ -10,11 +7,6 @@ describe('Tab3Page', () => {
   let fixture: ComponentFixture<Tab3Page>;
 
   beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [Tab3Page],
-      imports: [IonicModule.forRoot(), ExploreContainerComponentModule]
-    }).compileComponents();
-
     fixture = TestBed.createComponent(Tab3Page);
     component = fixture.componentInstance;
     fixture.detectChanges();

+ 14 - 0
E-Cover-app/src/app/tab3/tab3.page.ts

@@ -0,0 +1,14 @@
+import { Component } from '@angular/core';
+import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone';
+import { ExploreContainerComponent } from '../explore-container/explore-container.component';
+
+@Component({
+  selector: 'app-tab3',
+  templateUrl: 'tab3.page.html',
+  styleUrls: ['tab3.page.scss'],
+  standalone: true,
+  imports: [IonHeader, IonToolbar, IonTitle, IonContent, ExploreContainerComponent],
+})
+export class Tab3Page {
+  constructor() {}
+}

+ 0 - 0
Ecover-app/src/app/tabs/style-img/footer-bg.png → E-Cover-app/src/app/tabs/style-img/footer-bg.png


+ 0 - 0
Ecover-app/src/app/tabs/style-img/footer-font.OTF → E-Cover-app/src/app/tabs/style-img/footer-font.OTF


+ 0 - 0
Ecover-app/src/app/tabs/tabs.page.html → E-Cover-app/src/app/tabs/tabs.page.html


+ 26 - 0
E-Cover-app/src/app/tabs/tabs.page.scss

@@ -0,0 +1,26 @@
+ion-tab-bar {
+    background-image: url(style-img/footer-bg.png);
+    background-color: #f8f8f8;
+    background-size: cover;
+    background-repeat: no-repeat;
+    border: 0;
+    height: 13%;
+  
+    ion-tab-button {
+      background-color: hsla(0, 0, 0, 0);
+  
+      ion-label {
+        color: white;
+        font-size: 15px;
+        -webkit-text-stroke: 0.5px black;
+  
+        @font-face {
+          font-family: "footer-font";
+          src: url("style-img/footer-font.otf");
+        }
+  
+        font-family: "footer-font";
+        font-weight: 1000;
+      }
+    }
+  }

+ 3 - 3
Ecover-app/src/app/tabs/tabs.page.spec.ts → E-Cover-app/src/app/tabs/tabs.page.spec.ts

@@ -1,5 +1,5 @@
-import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { provideRouter } from '@angular/router';
 
 import { TabsPage } from './tabs.page';
 
@@ -9,8 +9,8 @@ describe('TabsPage', () => {
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      declarations: [TabsPage],
-      schemas: [CUSTOM_ELEMENTS_SCHEMA],
+      imports: [TabsPage],
+      providers: [provideRouter([])]
     }).compileComponents();
   });
 

+ 19 - 0
E-Cover-app/src/app/tabs/tabs.page.ts

@@ -0,0 +1,19 @@
+import { Component, EnvironmentInjector, inject } from '@angular/core';
+import { IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel } from '@ionic/angular/standalone';
+import { addIcons } from 'ionicons';
+import { triangle, ellipse, square } from 'ionicons/icons';
+
+@Component({
+  selector: 'app-tabs',
+  templateUrl: 'tabs.page.html',
+  styleUrls: ['tabs.page.scss'],
+  standalone: true,
+  imports: [IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel],
+})
+export class TabsPage {
+  public environmentInjector = inject(EnvironmentInjector);
+
+  constructor() {
+    addIcons({ triangle, ellipse, square });
+  }
+}

+ 41 - 0
E-Cover-app/src/app/tabs/tabs.routes.ts

@@ -0,0 +1,41 @@
+import { Routes } from '@angular/router';
+import { TabsPage } from './tabs.page';
+
+export const routes: Routes = [
+  {
+    path: 'tabs',
+    component: TabsPage,
+    children: [
+      {
+        path: 'tab1',
+        loadComponent: () =>
+          import('../tab1/tab1.page').then((m) => m.Tab1Page),
+      },
+      {
+        path: 'tab2',
+        loadComponent: () =>
+          import('../tab2/tab2.page').then((m) => m.Tab2Page),
+      },
+      {
+        path: 'tab3',
+        loadComponent: () =>
+          import('../tab3/tab3.page').then((m) => m.Tab3Page),
+      },
+      {
+        path: 'generate-option',
+        loadComponent: () =>
+          import('../generate-option/generate-option.component').then((m) => m.GenerateOptionComponent),
+      },
+      {
+        path: '',
+        redirectTo: '/tabs/tab1',
+        pathMatch: 'full',
+      },
+    ],
+  },
+  {
+    path: '',
+    redirectTo: '/tabs/tab1',
+    pathMatch: 'full',
+  },
+];

+ 0 - 0
Ecover-app/src/assets/icon/favicon.png → E-Cover-app/src/assets/icon/favicon.png


+ 0 - 0
Ecover-app/src/assets/shapes.svg → E-Cover-app/src/assets/shapes.svg


+ 0 - 0
Ecover-app/src/environments/environment.prod.ts → E-Cover-app/src/environments/environment.prod.ts


+ 0 - 0
Ecover-app/src/environments/environment.ts → E-Cover-app/src/environments/environment.ts


+ 1 - 1
Ecover-app/src/global.scss → E-Cover-app/src/global.scss

@@ -34,4 +34,4 @@
 
 /* @import "@ionic/angular/css/palettes/dark.always.css"; */
 /* @import "@ionic/angular/css/palettes/dark.class.css"; */
-@import "@ionic/angular/css/palettes/dark.system.css";
+@import '@ionic/angular/css/palettes/dark.system.css';

+ 0 - 0
Ecover-app/src/index.html → E-Cover-app/src/index.html


+ 14 - 0
E-Cover-app/src/main.ts

@@ -0,0 +1,14 @@
+import { bootstrapApplication } from '@angular/platform-browser';
+import { RouteReuseStrategy, provideRouter, withPreloading, PreloadAllModules } from '@angular/router';
+import { IonicRouteStrategy, provideIonicAngular } from '@ionic/angular/standalone';
+
+import { routes } from './app/app.routes';
+import { AppComponent } from './app/app.component';
+
+bootstrapApplication(AppComponent, {
+  providers: [
+    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
+    provideIonicAngular(),
+    provideRouter(routes, withPreloading(PreloadAllModules)),
+  ],
+});

+ 1 - 1
Ecover-app/src/polyfills.ts → E-Cover-app/src/polyfills.ts

@@ -41,7 +41,7 @@
  *  (window as any).__Zone_enable_cross_context_check = true;
  *
  */
- 
+
 import './zone-flags';
 
 /***************************************************************************************************

+ 0 - 0
Ecover-app/src/test.ts → E-Cover-app/src/test.ts


+ 0 - 0
Ecover-app/src/theme/variables.scss → E-Cover-app/src/theme/variables.scss


+ 0 - 0
Ecover-app/src/zone-flags.ts → E-Cover-app/src/zone-flags.ts


+ 0 - 0
Ecover-app/tsconfig.app.json → E-Cover-app/tsconfig.app.json


+ 1 - 4
Ecover-app/tsconfig.json → E-Cover-app/tsconfig.json

@@ -18,10 +18,7 @@
     "importHelpers": true,
     "target": "es2022",
     "module": "es2020",
-    "lib": [
-      "es2018", 
-      "dom"
-    ],
+    "lib": ["es2018", "dom"],
     "useDefineForClassFields": false
   },
   "angularCompilerOptions": {

+ 0 - 0
Ecover-app/tsconfig.spec.json → E-Cover-app/tsconfig.spec.json


+ 0 - 0
Ecover-prod/README.md → E-Cover-prod/README.md


+ 0 - 0
Ecover-prod/img/1.jpg → E-Cover-prod/img/1.jpg


+ 0 - 0
Ecover-prod/img/2.jpg → E-Cover-prod/img/2.jpg


+ 0 - 0
Ecover-prod/img/3.png → E-Cover-prod/img/3.png


+ 0 - 0
Ecover-prod/img/4.jpg → E-Cover-prod/img/4.jpg


+ 0 - 7
Ecover-app/ionic.config.json

@@ -1,7 +0,0 @@
-{
-  "name": "Ecover-app",
-  "integrations": {
-    "capacitor": {}
-  },
-  "type": "angular"
-}

+ 0 - 16
Ecover-app/src/app/app-routing.module.ts

@@ -1,16 +0,0 @@
-import { NgModule } from '@angular/core';
-import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
-
-const routes: Routes = [
-  {
-    path: '',
-    loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule)
-  }
-];
-@NgModule({
-  imports: [
-    RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
-  ],
-  exports: [RouterModule]
-})
-export class AppRoutingModule {}

+ 0 - 16
Ecover-app/src/app/app.module.ts

@@ -1,16 +0,0 @@
-import { NgModule } from '@angular/core';
-import { BrowserModule } from '@angular/platform-browser';
-import { RouteReuseStrategy } from '@angular/router';
-
-import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
-
-import { AppRoutingModule } from './app-routing.module';
-import { AppComponent } from './app.component';
-
-@NgModule({
-  declarations: [AppComponent],
-  imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
-  providers: [{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }],
-  bootstrap: [AppComponent],
-})
-export class AppModule {}

+ 0 - 4
Ecover-app/src/app/explore-container/explore-container.component.html

@@ -1,4 +0,0 @@
-<div id="container">
-  <strong>{{ name }}</strong>
-  <p>Explore <a target="_blank" rel="noopener noreferrer" href="https://ionicframework.com/docs/components">UI Components</a></p>
-</div>

+ 0 - 14
Ecover-app/src/app/explore-container/explore-container.module.ts

@@ -1,14 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
-
-import { IonicModule } from '@ionic/angular';
-
-import { ExploreContainerComponent } from './explore-container.component';
-
-@NgModule({
-  imports: [ CommonModule, FormsModule, IonicModule],
-  declarations: [ExploreContainerComponent],
-  exports: [ExploreContainerComponent]
-})
-export class ExploreContainerComponentModule {}

+ 0 - 16
Ecover-app/src/app/tab1/tab1-routing.module.ts

@@ -1,16 +0,0 @@
-import { NgModule } from '@angular/core';
-import { RouterModule, Routes } from '@angular/router';
-import { Tab1Page } from './tab1.page';
-
-const routes: Routes = [
-  {
-    path: '',
-    component: Tab1Page,
-  }
-];
-
-@NgModule({
-  imports: [RouterModule.forChild(routes)],
-  exports: [RouterModule]
-})
-export class Tab1PageRoutingModule {}

+ 0 - 20
Ecover-app/src/app/tab1/tab1.module.ts

@@ -1,20 +0,0 @@
-import { IonicModule } from '@ionic/angular';
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
-import { Tab1Page } from './tab1.page';
-import { ExploreContainerComponentModule } from '../explore-container/explore-container.module';
-
-import { Tab1PageRoutingModule } from './tab1-routing.module';
-
-@NgModule({
-  imports: [
-    IonicModule,
-    CommonModule,
-    FormsModule,
-    ExploreContainerComponentModule,
-    Tab1PageRoutingModule
-  ],
-  declarations: [Tab1Page]
-})
-export class Tab1PageModule {}

+ 0 - 57
Ecover-app/src/app/tab1/tab1.page.html

@@ -1,57 +0,0 @@
-<div id="banner">
-    <div id="header">
-        <div id="header-left">
-            <ion-icon name="location-outline" size="large" aria-hidden="true"></ion-icon>
-            位置信息
-        </div>
-
-        <div id="header-right">
-            <ion-icon name="notifications-outline" size="large" aria-label="Favorite"></ion-icon>
-        </div>
-    </div>
-
-    <div style="background:none;">
-        <ion-card>
-            <ion-button fill="clear">
-                <img src="https://s1.imagehub.cc/images/2024/11/30/65240adeb8e5429ad600c181ab66d62e.png"
-                    alt="button tab">
-            </ion-button>
-            <p>
-                测试
-            </p>
-        </ion-card>
-
-        <ion-card>
-            <ion-button fill="clear">
-                <img src="https://s1.imagehub.cc/images/2024/11/30/65240adeb8e5429ad600c181ab66d62e.png"
-                    alt="button tab">
-            </ion-button>
-            <p>
-                未设置
-            </p>
-        </ion-card>
-
-        <ion-card>
-            <ion-button fill="clear">
-                <img src="https://s1.imagehub.cc/images/2024/11/30/65240adeb8e5429ad600c181ab66d62e.png"
-                    alt="button tab">
-            </ion-button>
-            <p>
-                未设置
-            </p>
-        </ion-card>
-
-        <ion-card>
-            <ion-button fill="clear">
-                <img src="https://s1.imagehub.cc/images/2024/11/30/65240adeb8e5429ad600c181ab66d62e.png"
-                    alt="button tab">
-            </ion-button>
-            <p>
-                未设置
-            </p>
-        </ion-card>
-
-    </div>
-</div>
-<ion-content>
-</ion-content>

+ 0 - 12
Ecover-app/src/app/tab1/tab1.page.ts

@@ -1,12 +0,0 @@
-import { Component } from '@angular/core';
-
-@Component({
-  selector: 'app-tab1',
-  templateUrl: 'tab1.page.html',
-  styleUrls: ['tab1.page.scss']
-})
-export class Tab1Page {
-
-  constructor() {}
-
-}

+ 0 - 16
Ecover-app/src/app/tab2/tab2-routing.module.ts

@@ -1,16 +0,0 @@
-import { NgModule } from '@angular/core';
-import { RouterModule, Routes } from '@angular/router';
-import { Tab2Page } from './tab2.page';
-
-const routes: Routes = [
-  {
-    path: '',
-    component: Tab2Page,
-  }
-];
-
-@NgModule({
-  imports: [RouterModule.forChild(routes)],
-  exports: [RouterModule]
-})
-export class Tab2PageRoutingModule {}

+ 0 - 20
Ecover-app/src/app/tab2/tab2.module.ts

@@ -1,20 +0,0 @@
-import { IonicModule } from '@ionic/angular';
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
-import { Tab2Page } from './tab2.page';
-import { ExploreContainerComponentModule } from '../explore-container/explore-container.module';
-
-import { Tab2PageRoutingModule } from './tab2-routing.module';
-
-@NgModule({
-  imports: [
-    IonicModule,
-    CommonModule,
-    FormsModule,
-    ExploreContainerComponentModule,
-    Tab2PageRoutingModule
-  ],
-  declarations: [Tab2Page]
-})
-export class Tab2PageModule {}

+ 0 - 12
Ecover-app/src/app/tab2/tab2.page.ts

@@ -1,12 +0,0 @@
-import { Component } from '@angular/core';
-
-@Component({
-  selector: 'app-tab2',
-  templateUrl: 'tab2.page.html',
-  styleUrls: ['tab2.page.scss']
-})
-export class Tab2Page {
-
-  constructor() {}
-
-}

+ 0 - 16
Ecover-app/src/app/tab3/tab3-routing.module.ts

@@ -1,16 +0,0 @@
-import { NgModule } from '@angular/core';
-import { RouterModule, Routes } from '@angular/router';
-import { Tab3Page } from './tab3.page';
-
-const routes: Routes = [
-  {
-    path: '',
-    component: Tab3Page,
-  }
-];
-
-@NgModule({
-  imports: [RouterModule.forChild(routes)],
-  exports: [RouterModule]
-})
-export class Tab3PageRoutingModule {}

+ 0 - 20
Ecover-app/src/app/tab3/tab3.module.ts

@@ -1,20 +0,0 @@
-import { IonicModule } from '@ionic/angular';
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
-import { Tab3Page } from './tab3.page';
-import { ExploreContainerComponentModule } from '../explore-container/explore-container.module';
-
-import { Tab3PageRoutingModule } from './tab3-routing.module';
-
-@NgModule({
-  imports: [
-    IonicModule,
-    CommonModule,
-    FormsModule,
-    ExploreContainerComponentModule,
-    Tab3PageRoutingModule
-  ],
-  declarations: [Tab3Page]
-})
-export class Tab3PageModule {}

+ 0 - 12
Ecover-app/src/app/tab3/tab3.page.ts

@@ -1,12 +0,0 @@
-import { Component } from '@angular/core';
-
-@Component({
-  selector: 'app-tab3',
-  templateUrl: 'tab3.page.html',
-  styleUrls: ['tab3.page.scss']
-})
-export class Tab3Page {
-
-  constructor() {}
-
-}

+ 0 - 43
Ecover-app/src/app/tabs/tabs-routing.module.ts

@@ -1,43 +0,0 @@
-import { NgModule } from '@angular/core';
-import { RouterModule, Routes } from '@angular/router';
-import { TabsPage } from './tabs.page';
-
-const routes: Routes = [
-  {
-    path: 'tabs',
-    component: TabsPage,
-    children: [
-      {
-        path: 'tab1',
-        loadChildren: () => import('../tab1/tab1.module').then(m => m.Tab1PageModule)
-      },
-      {
-        path: 'tab2',
-        loadChildren: () => import('../tab2/tab2.module').then(m => m.Tab2PageModule)
-      },
-      {
-        path: 'tab3',
-        loadChildren: () => import('../tab3/tab3.module').then(m => m.Tab3PageModule)
-      },
-      {
-        path: 'generate-option',
-        loadChildren: () => import('../generate-option/generate-option.component').then(m => m.GenerateOptionComponent)
-      },
-      {
-        path: '',
-        redirectTo: '/tabs/tab1',
-        pathMatch: 'full'
-      }
-    ]
-  },
-  {
-    path: '',
-    redirectTo: '/tabs/tab1',
-    pathMatch: 'full'
-  }
-];
-
-@NgModule({
-  imports: [RouterModule.forChild(routes)],
-})
-export class TabsPageRoutingModule {}

+ 0 - 19
Ecover-app/src/app/tabs/tabs.module.ts

@@ -1,19 +0,0 @@
-import { IonicModule } from '@ionic/angular';
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
-
-import { TabsPageRoutingModule } from './tabs-routing.module';
-
-import { TabsPage } from './tabs.page';
-
-@NgModule({
-  imports: [
-    IonicModule,
-    CommonModule,
-    FormsModule,
-    TabsPageRoutingModule
-  ],
-  declarations: [TabsPage]
-})
-export class TabsPageModule {}

+ 0 - 26
Ecover-app/src/app/tabs/tabs.page.scss

@@ -1,26 +0,0 @@
-ion-tab-bar {
-  background-image: url(style-img/footer-bg.png);
-  background-color: #f8f8f8;
-  background-size: cover;
-  background-repeat: no-repeat;
-  border: 0;
-  height: 13%;
-
-  ion-tab-button {
-    background-color: hsla(0, 0, 0, 0);
-
-    ion-label {
-      color: white;
-      font-size: 15px;
-      -webkit-text-stroke: 0.5px black;
-
-      @font-face {
-        font-family: "footer-font";
-        src: url("style-img/footer-font.otf");
-      }
-
-      font-family: "footer-font";
-      font-weight: 1000;
-    }
-  }
-}

+ 0 - 12
Ecover-app/src/app/tabs/tabs.page.ts

@@ -1,12 +0,0 @@
-import { Component } from '@angular/core';
-@Component({
-  selector: 'app-tabs',
-  templateUrl: 'tabs.page.html',
-  styleUrls: ['tabs.page.scss']
-})
-
-export class TabsPage {
-
-  constructor() {}
-
-}

+ 0 - 6
Ecover-app/src/main.ts

@@ -1,6 +0,0 @@
-import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
-
-import { AppModule } from './app/app.module';
-
-platformBrowserDynamic().bootstrapModule(AppModule)
-  .catch(err => console.log(err));