@team-codeme/crud-forge 0.0.0-stage → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/agents/generator-engineer.md +31 -0
- package/.cursor/agents/keycloak-engineer.md +33 -0
- package/.cursor/agents/qa-engineer.md +32 -0
- package/.cursor/agents/security-reviewer.md +30 -0
- package/.cursor/mcp.json +13 -0
- package/.cursor/rules/crudforge-precautions.mdc +16 -0
- package/.cursor/rules/playwright-browser.mdc +30 -0
- package/.cursor/rules/readme-todo-sync.mdc +13 -0
- package/.env.qa.example +19 -0
- package/.github/workflows/qa-live.yml +32 -0
- package/.github/workflows/qa.yml +27 -0
- package/.vscode/settings.json +32 -0
- package/QA/IAM-PLAN.md +25 -0
- package/QA/IAM-RESULTS.md +39 -0
- package/QA/IAM-TESTCASES.md +36 -0
- package/QA/IAM-TODO.md +7 -0
- package/QA/KEYCLOAK-BOOTSTRAP.md +105 -0
- package/QA/PLAN.md +43 -0
- package/QA/RESULTS.md +59 -0
- package/QA/TESTCASES.md +65 -0
- package/QA/TODO.md +14 -0
- package/QA/pmb-dev/README.md +49 -0
- package/QA/pmb-dev/config/config.yml +152 -0
- package/QA/pmb-dev/gdl/i.gdl +17 -0
- package/README.md +851 -2
- package/Todo.md +207 -0
- package/assets/branding/crudforge-logo.png +0 -0
- package/assets/branding/crudforge-mark.png +0 -0
- package/branding/poster-crudforge.jpg +0 -0
- package/chat/last-chat/Investigating Mock Data Configuration.md +428 -0
- package/cli.js +167 -0
- package/config/default-config.yml +245 -0
- package/docs/performance/README.md +217 -0
- package/docs/performance/after.json +111 -0
- package/docs/performance/before.json +111 -0
- package/docs/quality/README.md +276 -0
- package/e2e/crudforge.e2e.yml +47 -0
- package/e2e/crudforge.field-profile.yml +33 -0
- package/e2e/crudforge.iam-live.yml +124 -0
- package/e2e/crudforge.iam.yml +62 -0
- package/e2e/tests/field-profile.spec.js +152 -0
- package/e2e/tests/generated-crud.spec.js +251 -0
- package/e2e/tests/iam-live.spec.js +149 -0
- package/e2e/tests/iam-pack.spec.js +151 -0
- package/e2e/tests/list-state.spec.js +73 -0
- package/features.csv +27 -0
- package/fuse-starter-pack/branding/crudforge-mark-source.jpg +0 -0
- package/fuse-starter-pack/branding/crudforge-mark-source.png +0 -0
- package/fuse-starter-pack/branding/crudforge-mark.png +0 -0
- package/fuse-starter-pack/branding/crudforge-wordmark-source.jpg +0 -0
- package/fuse-starter-pack/branding/crudforge-wordmark-source.png +0 -0
- package/fuse-starter-pack/branding/crudforge-wordmark.png +0 -0
- package/fuse-starter-pack/fuse-v21.1/Dockerfile +14 -0
- package/fuse-starter-pack/fuse-v21.1/LICENSE.md +6 -0
- package/fuse-starter-pack/fuse-v21.1/README.md +59 -0
- package/fuse-starter-pack/fuse-v21.1/angular.json +113 -0
- package/fuse-starter-pack/fuse-v21.1/eslint.config.ts +150 -0
- package/fuse-starter-pack/fuse-v21.1/nginx.conf +23 -0
- package/fuse-starter-pack/fuse-v21.1/nginx.dev.conf +18 -0
- package/fuse-starter-pack/fuse-v21.1/package-lock.json +11513 -0
- package/fuse-starter-pack/fuse-v21.1/package.json +69 -0
- package/fuse-starter-pack/fuse-v21.1/postcss.config.json +5 -0
- package/fuse-starter-pack/fuse-v21.1/prettier.config.ts +15 -0
- package/fuse-starter-pack/fuse-v21.1/proxy.conf.json +8 -0
- package/fuse-starter-pack/fuse-v21.1/proxy.dev.conf.json +8 -0
- package/fuse-starter-pack/fuse-v21.1/public/favicon.png +0 -0
- package/fuse-starter-pack/fuse-v21.1/public/fonts/geist/Geist-Italic.woff2 +0 -0
- package/fuse-starter-pack/fuse-v21.1/public/fonts/geist/Geist.woff2 +0 -0
- package/fuse-starter-pack/fuse-v21.1/public/fonts/geist/GeistMono-Italic.woff2 +0 -0
- package/fuse-starter-pack/fuse-v21.1/public/fonts/geist/GeistMono.woff2 +0 -0
- package/fuse-starter-pack/fuse-v21.1/public/i18n/en.json +8 -0
- package/fuse-starter-pack/fuse-v21.1/public/i18n/es.json +8 -0
- package/fuse-starter-pack/fuse-v21.1/public/images/flags/ES.svg +79 -0
- package/fuse-starter-pack/fuse-v21.1/public/images/flags/US.svg +14 -0
- package/fuse-starter-pack/fuse-v21.1/public/images/flags/where-to-find-other-flags.txt +5 -0
- package/fuse-starter-pack/fuse-v21.1/public/images/logo/logo-mark.png +0 -0
- package/fuse-starter-pack/fuse-v21.1/public/images/logo/logo.png +0 -0
- package/fuse-starter-pack/fuse-v21.1/push.sh +27 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/app.config.server.ts +10 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/app.config.ts +64 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/app.routes.server.ts +8 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/app.routes.ts +39 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/app.ts +22 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/icons/index.ts +1 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/icons/lucide.ts +1 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/icons/provider.ts +23 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/local-storage/index.ts +2 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/local-storage/local-storage.ts +109 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/local-storage/provider.ts +15 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/media/index.ts +2 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/media/media.ts +64 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/media/provider.ts +15 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/theming/index.ts +3 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/theming/models/theming.ts +13 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/theming/palette.ts +209 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/theming/provider.ts +24 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/theming/theming.ts +129 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/core/transloco/transloco-http-loader.ts +12 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/layout/data/navigation.ts +176 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/layout/layout.ts +77 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/layout/ui/language-switcher.ts +91 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/layout/ui/navigation.ts +238 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/layout/ui/notifications.ts +252 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/layout/ui/scheme-switcher.ts +58 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/layout/ui/sidebar.ts +31 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/layout/ui/user.ts +132 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/academy/data/academy.ts +753 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/academy/data/model.ts +27 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/academy/features/course.ts +318 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/academy/features/courses.ts +228 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/academy/routes.ts +14 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/contacts/data/contacts.ts +4372 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/contacts/data/model.ts +34 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/contacts/features/contact.ts +239 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/contacts/features/contacts.ts +185 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/contacts/routes.ts +16 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/file-manager/data/file-manager.ts +261 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/file-manager/data/model.ts +12 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/file-manager/features/file-manager.ts +131 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/file-manager/routes.ts +15 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/file-manager/ui/list.ts +164 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/help-center/features/faq.ts +288 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/help-center/features/guide.ts +134 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/help-center/features/home.ts +219 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/help-center/features/support.ts +161 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/help-center/routes.ts +33 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/notes/data/model.ts +18 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/notes/data/notes.ts +324 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/notes/features/note.ts +152 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/notes/features/notes.ts +118 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/notes/routes.ts +16 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/tasks/data/model.ts +17 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/tasks/data/tasks.ts +562 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/tasks/features/task.ts +195 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/tasks/features/tasks.ts +271 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/apps/tasks/routes.ts +16 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/dashboards/data/analytics.ts +1620 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/dashboards/data/finance.ts +1065 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/dashboards/data/project.ts +376 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/dashboards/features/analytics/analytics.ts +1096 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/dashboards/features/finance/finance.ts +658 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/dashboards/features/project/budget-table.ts +188 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/dashboards/features/project/project.ts +565 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/dashboards/routes.ts +23 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/documentation/features/changelog/changelog.ts +932 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/documentation/features/getting-started/building.ts +33 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/documentation/features/getting-started/development.ts +42 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/documentation/features/getting-started/installation.ts +47 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/documentation/layout.ts +9 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/documentation/routes.ts +45 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/error/features/error-page.ts +70 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/error/routes.ts +21 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/notifications/features/notifications.ts +262 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/notifications/routes.ts +10 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/settings/features/account.ts +238 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/settings/features/notifications.ts +134 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/settings/features/plan-and-billing.ts +238 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/settings/features/security.ts +211 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/settings/features/team.ts +188 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/settings/layout.ts +109 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/settings/routes.ts +37 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/modules/extras/welcome/welcome.component.ts +22 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/admin/routes.ts +95 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/auth/features/forgot-password/forgot-password.html +54 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/auth/features/forgot-password/forgot-password.ts +51 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/auth/features/reset-password/reset-password.html +82 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/auth/features/reset-password/reset-password.ts +69 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/auth/features/sign-in/sign-in.html +132 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/auth/features/sign-in/sign-in.ts +54 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/auth/features/sign-up/sign-up.html +183 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/auth/features/sign-up/sign-up.ts +56 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/auth/layout.ts +9 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/auth/routes.ts +34 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/coming-soon/features/coming-soon.ts +156 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/coming-soon/layout.ts +9 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/coming-soon/routes.ts +16 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/website/layout/layout.ts +9 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/website/modules/home/features/home.ts +23 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/website/modules/home/routes.ts +10 -0
- package/fuse-starter-pack/fuse-v21.1/src/app/domains/website/routes.ts +30 -0
- package/fuse-starter-pack/fuse-v21.1/src/environments/environment.mock.ts +5 -0
- package/fuse-starter-pack/fuse-v21.1/src/environments/environment.prod.ts +5 -0
- package/fuse-starter-pack/fuse-v21.1/src/environments/environment.ts +5 -0
- package/fuse-starter-pack/fuse-v21.1/src/index.html +66 -0
- package/fuse-starter-pack/fuse-v21.1/src/main.server.ts +11 -0
- package/fuse-starter-pack/fuse-v21.1/src/main.ts +5 -0
- package/fuse-starter-pack/fuse-v21.1/src/server.ts +70 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/base/base.css +63 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/base/typography.css +54 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/components/a.css +18 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/components/input.css +22 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/components/kbd.css +55 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/components/material.css +1149 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/styles.css +31 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/tailwind/theme.css +147 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/tailwind/utilities.css +563 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/tailwind/variants.css +4 -0
- package/fuse-starter-pack/fuse-v21.1/src/styles/third-party/lucide-icons.css +12 -0
- package/fuse-starter-pack/fuse-v21.1/tsconfig.app.json +16 -0
- package/fuse-starter-pack/fuse-v21.1/tsconfig.json +37 -0
- package/fuse-starter-pack/fuse-v21.1/tsconfig.spec.json +10 -0
- package/generator/README.md +12 -0
- package/generator/issues/.gitkeep +0 -0
- package/package.json +56 -4
- package/playwright.config.js +29 -0
- package/playwright.field-profile.config.js +6 -0
- package/playwright.iam-live.config.js +31 -0
- package/playwright.iam.config.js +29 -0
- package/playwright.list-state.config.js +6 -0
- package/playwright.performance.config.js +1 -0
- package/run-config-tests.sh +5 -0
- package/scripts/e2e-paths.js +89 -0
- package/scripts/e2e-prepare-field-profile.js +17 -0
- package/scripts/e2e-prepare-iam-live.js +135 -0
- package/scripts/e2e-prepare-iam.js +65 -0
- package/scripts/e2e-prepare.js +72 -0
- package/scripts/e2e-serve-iam-live.js +28 -0
- package/scripts/e2e-serve-iam.js +28 -0
- package/scripts/e2e-serve.js +28 -0
- package/scripts/performance/generate.js +17 -0
- package/scripts/performance/measure.js +55 -0
- package/scripts/postinstall.js +9 -0
- package/scripts/prepare-quality-apps.js +34 -0
- package/scripts/run-config-tests.js +63 -0
- package/src/assets/logo-with-lable.jpeg +0 -0
- package/src/assets/logo.jpeg +0 -0
- package/src/commands/bootstrap.js +92 -0
- package/src/commands/doctor.js +403 -0
- package/src/commands/generate.js +301 -0
- package/src/commands/init-config.js +310 -0
- package/src/commands/keycloak-options.js +182 -0
- package/src/commands/validate.js +52 -0
- package/src/config/auth-config.js +183 -0
- package/src/config/default-values.js +235 -0
- package/src/config/env-refs.js +71 -0
- package/src/config/field-preferences.js +99 -0
- package/src/config/input-sources.js +104 -0
- package/src/config/load-config.js +166 -0
- package/src/config/proxy-routes.js +44 -0
- package/src/generator/access-control-tools.js +334 -0
- package/src/generator/ai-docs.js +691 -0
- package/src/generator/application-tests.js +252 -0
- package/src/generator/auth-pack.js +965 -0
- package/src/generator/embed-config.js +431 -0
- package/src/generator/entity-layout.js +30 -0
- package/src/generator/fuse-build.js +57 -0
- package/src/generator/fuse-runtime.js +344 -0
- package/src/generator/generated-banner.js +137 -0
- package/src/generator/index.js +874 -0
- package/src/generator/project-output.js +126 -0
- package/src/generator/team-pack.js +220 -0
- package/src/index.js +68 -0
- package/src/parser/gdl-parser.js +169 -0
- package/src/parser/jdl-parser.js +171 -0
- package/src/presets/pmb-test.js +139 -0
- package/src/presets/static-source.js +73 -0
- package/src/presets/store.js +96 -0
- package/src/provision/admin-service.js +148 -0
- package/src/provision/bootstrap.js +147 -0
- package/src/provision/http.js +123 -0
- package/src/provision/keycloak-admin-rest.js +335 -0
- package/src/provision/state.js +51 -0
- package/src/provision/token.js +52 -0
- package/src/templates/angular/auth/access-control.service.ts.ejs +179 -0
- package/src/templates/angular/auth/access-ctrl.pipe.ts.ejs +20 -0
- package/src/templates/angular/auth/auth.guard.ts.ejs +27 -0
- package/src/templates/angular/auth/auth.interceptor.ts.ejs +53 -0
- package/src/templates/angular/auth/auth.service.ts.ejs +594 -0
- package/src/templates/angular/auth/auth.utils.ts.ejs +28 -0
- package/src/templates/angular/auth/current-user.ts.ejs +24 -0
- package/src/templates/angular/auth/disabled-account-overlay.component.css.ejs +95 -0
- package/src/templates/angular/auth/disabled-account-overlay.component.html.ejs +33 -0
- package/src/templates/angular/auth/disabled-account-overlay.component.ts.ejs +23 -0
- package/src/templates/angular/auth/fuse-account.ts.ejs +234 -0
- package/src/templates/angular/auth/fuse-user.ts.ejs +264 -0
- package/src/templates/angular/auth/has-permission.directive.ts.ejs +51 -0
- package/src/templates/angular/auth/index.ts.ejs +24 -0
- package/src/templates/angular/auth/keycloak-admin.service.ts.ejs +670 -0
- package/src/templates/angular/auth/landing.guard.ts.ejs +61 -0
- package/src/templates/angular/auth/no-auth.guard.ts.ejs +19 -0
- package/src/templates/angular/auth/permission-attribute.util.ts.ejs +182 -0
- package/src/templates/angular/auth/sign-in.ts.ejs +60 -0
- package/src/templates/angular/entity/_entity_.model.ts.ejs +64 -0
- package/src/templates/angular/entity/_entity_.routes.ts.ejs +9 -0
- package/src/templates/angular/entity/components/forms/form/_entity_-form.component.html.ejs +168 -0
- package/src/templates/angular/entity/components/forms/form/_entity_-form.component.ts.ejs +175 -0
- package/src/templates/angular/entity/components/forms/form-page/_entity_-form-page.component.html.ejs +10 -0
- package/src/templates/angular/entity/components/forms/form-page/_entity_-form-page.component.ts.ejs +86 -0
- package/src/templates/angular/entity/components/forms/update/_entity_-form.service.ts.ejs +136 -0
- package/src/templates/angular/entity/components/interaction/actions/_entity_-actions.component.html.ejs +68 -0
- package/src/templates/angular/entity/components/interaction/actions/_entity_-actions.component.ts.ejs +69 -0
- package/src/templates/angular/entity/components/interaction/filter/_entity_-filter.component.html.ejs +111 -0
- package/src/templates/angular/entity/components/interaction/filter/_entity_-filter.component.ts.ejs +102 -0
- package/src/templates/angular/entity/components/presentation/card/_entity_-card.component.css.ejs +33 -0
- package/src/templates/angular/entity/components/presentation/card/_entity_-card.component.html.ejs +29 -0
- package/src/templates/angular/entity/components/presentation/card/_entity_-card.component.ts.ejs +93 -0
- package/src/templates/angular/entity/components/presentation/detail/_entity_-detail.component.css.ejs +54 -0
- package/src/templates/angular/entity/components/presentation/detail/_entity_-detail.component.html.ejs +58 -0
- package/src/templates/angular/entity/components/presentation/detail/_entity_-detail.component.ts.ejs +47 -0
- package/src/templates/angular/entity/components/presentation/list/_entity_-list.component.html.ejs +419 -0
- package/src/templates/angular/entity/components/presentation/list/_entity_-list.component.scss.ejs +48 -0
- package/src/templates/angular/entity/components/presentation/list/_entity_-list.component.ts.ejs +592 -0
- package/src/templates/angular/entity/service/_entity_.service.ts.ejs +153 -0
- package/src/templates/angular/entity/settings/_entity_.settings.ts.ejs +49 -0
- package/src/templates/angular/enums/_enum_.model.ts.ejs +11 -0
- package/src/templates/angular/iam/change-password.component.html.ejs +39 -0
- package/src/templates/angular/iam/change-password.component.ts.ejs +44 -0
- package/src/templates/angular/iam/no-access.component.ts.ejs +17 -0
- package/src/templates/angular/iam/role-list.component.html.ejs +331 -0
- package/src/templates/angular/iam/role-list.component.scss.ejs +107 -0
- package/src/templates/angular/iam/role-list.component.ts.ejs +597 -0
- package/src/templates/angular/iam/role-management/role-header.component.html.ejs +51 -0
- package/src/templates/angular/iam/role-management/role-header.component.ts.ejs +45 -0
- package/src/templates/angular/iam/role-management/role-inheritance.component.html.ejs +15 -0
- package/src/templates/angular/iam/role-management/role-inheritance.component.ts.ejs +19 -0
- package/src/templates/angular/iam/role-management/role-permissions-panel.component.css.ejs +24 -0
- package/src/templates/angular/iam/role-management/role-permissions-panel.component.html.ejs +108 -0
- package/src/templates/angular/iam/role-management/role-permissions-panel.component.ts.ejs +122 -0
- package/src/templates/angular/iam/role-management/role-users.component.html.ejs +104 -0
- package/src/templates/angular/iam/role-management/role-users.component.ts.ejs +53 -0
- package/src/templates/angular/iam/role-management/user-select-dialog.component.html.ejs +113 -0
- package/src/templates/angular/iam/role-management/user-select-dialog.component.ts.ejs +157 -0
- package/src/templates/angular/iam/role-permission-matrix.component.html.ejs +355 -0
- package/src/templates/angular/iam/role-permission-matrix.component.scss.ejs +217 -0
- package/src/templates/angular/iam/role-permission-matrix.component.ts.ejs +800 -0
- package/src/templates/angular/iam/screen-catalog.ts.ejs +147 -0
- package/src/templates/angular/iam/shared/confirm-dialog.component.ts.ejs +83 -0
- package/src/templates/angular/iam/shared/matrix-hierarchy.util.ts.ejs +196 -0
- package/src/templates/angular/iam/shared/permission-matrix-sound.ts.ejs +59 -0
- package/src/templates/angular/iam/shared/role-display.util.ts.ejs +43 -0
- package/src/templates/angular/iam/shared/role-permission-skeleton.component.ts.ejs +54 -0
- package/src/templates/angular/iam/shared/screen-matrix.util.ts.ejs +554 -0
- package/src/templates/angular/iam/shared/screen-navigation-map.ts.ejs +187 -0
- package/src/templates/angular/iam/shared/screen-navigation.registry.ts.ejs +64 -0
- package/src/templates/angular/iam/shared/text-highlight.pipe.ts.ejs +39 -0
- package/src/templates/angular/iam/user-access-matrix.component.html.ejs +212 -0
- package/src/templates/angular/iam/user-access-matrix.component.scss.ejs +34 -0
- package/src/templates/angular/iam/user-access-matrix.component.ts.ejs +239 -0
- package/src/templates/angular/iam/user-detail.component.html.ejs +143 -0
- package/src/templates/angular/iam/user-detail.component.ts.ejs +108 -0
- package/src/templates/angular/iam/user-form.component.html.ejs +63 -0
- package/src/templates/angular/iam/user-form.component.ts.ejs +100 -0
- package/src/templates/angular/iam/user-list.component.html.ejs +369 -0
- package/src/templates/angular/iam/user-list.component.scss.ejs +242 -0
- package/src/templates/angular/iam/user-list.component.ts.ejs +446 -0
- package/src/templates/angular/iam/user-management.routes.ts.ejs +47 -0
- package/src/templates/angular/iam/user-permission-matrix.component.html.ejs +231 -0
- package/src/templates/angular/iam/user-permission-matrix.component.scss.ejs +216 -0
- package/src/templates/angular/iam/user-permission-matrix.component.ts.ejs +516 -0
- package/src/templates/angular/shared/base/audit-user-name.pipe.ts.ejs +69 -0
- package/src/templates/angular/shared/base/base-filter.component.ts.ejs +245 -0
- package/src/templates/angular/shared/base/base-form.component.ts.ejs +109 -0
- package/src/templates/angular/shared/base/base-list.component.ts.ejs +507 -0
- package/src/templates/angular/shared/base/filter-types.ts.ejs +55 -0
- package/src/templates/angular/shared/base/input-format.directive.ts.ejs +47 -0
- package/src/templates/angular/shared/base/input-format.ts.ejs +15 -0
- package/src/templates/angular/shared/confirm-with-input-dialog.component.ts.ejs +91 -0
- package/src/templates/angular/shared/confirmation-dialog.component.ts.ejs +80 -0
- package/src/templates/angular/shared/list-styles.css.ejs +103 -0
- package/src/templates/angular/shared/loading-overlay.component.ts.ejs +24 -0
- package/src/templates/angular/shared/resizable.directive.ts.ejs +115 -0
- package/src/templates/angular/shared/snackbar-styles.css.ejs +11 -0
- package/src/templates/fuse-packs/access-control-tools/access-control-sync.js +819 -0
- package/src/templates/fuse-packs/access-control-tools/build-rename-map.js +67 -0
- package/src/templates/fuse-packs/access-control-tools/inject-qa-ids.js +14 -0
- package/src/templates/fuse-packs/access-control-tools/lib/hierarchy-scanner.js +628 -0
- package/src/templates/fuse-packs/access-control-tools/lib/hierarchy-scanner.test.js +323 -0
- package/src/templates/fuse-packs/access-control-tools/lib/html-scanner.js +362 -0
- package/src/templates/fuse-packs/access-control-tools/lib/id-rules.duplicate.test.js +136 -0
- package/src/templates/fuse-packs/access-control-tools/lib/id-rules.js +1095 -0
- package/src/templates/fuse-packs/access-control-tools/lib/ts-component-index.js +482 -0
- package/src/templates/fuse-packs/access-control-tools/output/.gitkeep +0 -0
- package/src/templates/fuse-packs/access-control-tools/run.sh +223 -0
- package/src/templates/fuse-packs/access-control-tools/scan-access-control.js +14 -0
- package/src/templates/fuse-packs/iam-assets/sound/apple-play.mp3 +0 -0
- package/src/templates/fuse-packs/iam-assets/sound/remove.mp3 +0 -0
- package/src/templates/generator/README.md +12 -0
- package/src/templates/testing/ci.cjs +45 -0
- package/src/templates/testing/mock.cjs +149 -0
- package/src/templates/testing/playwright.config.cjs +25 -0
- package/src/templates/testing/serve.cjs +22 -0
- package/src/templates/testing/smoke.spec.cjs +180 -0
- package/src/utils/branding.js +39 -0
- package/src/utils/colors.js +18 -0
- package/src/utils/diff.js +109 -0
- package/src/utils/merger.js +115 -0
- package/src/validator/backend-diagnostics.js +30 -0
- package/src/validator/blueprint-validator.js +276 -0
- package/src/validator/diagnostics.js +608 -0
- package/src/validator/pattern.js +28 -0
- package/test/auth-interceptor.js +84 -0
- package/test/auth-provision-checks.js +297 -0
- package/test/field-preferences.js +145 -0
- package/test/fixtures/field-profile.gdl +7 -0
- package/test/fixtures/mock.jdl +17 -0
- package/test/fixtures/mock.png +0 -0
- package/test/fixtures/performance/config.yml +33 -0
- package/test/fixtures/performance/large.gdl +199 -0
- package/test/fixtures/performance/small.gdl +7 -0
- package/test/fixtures/quality/custom.yml +22 -0
- package/test/fixtures/quality/go-duck.yml +22 -0
- package/test/fixtures/quality/jhipster.yml +30 -0
- package/test/fixtures/quality/representative.gdl +14 -0
- package/test/list-state.js +138 -0
- package/test/micro-functions-layout.js +95 -0
- package/test/performance-generation.js +32 -0
- package/test/pmb-preset.js +127 -0
- package/test/project-workflow.js +111 -0
- package/test/quality-features.js +250 -0
- package/test/verify-commands.js +83 -0
- package/test/verify.js +959 -0
- package/test-files/GDL/example.gdl +15 -0
- package/test-files/JDL/example.jdl +15 -0
- package/test-files/config/crudforge.config.yml +127 -0
- package/test-run.sh +272 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fuse-angular",
|
|
3
|
+
"version": "21.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "Fuse - Angular Admin Template and Starter Kit",
|
|
6
|
+
"license": "https://themeforest.net/licenses/standard",
|
|
7
|
+
"author": "Sercan Yemen <hi@srcn.dev> (https://themeforest.net/user/srcn)",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "ng build --configuration=production",
|
|
10
|
+
"build:dev": "ng build --configuration=development",
|
|
11
|
+
"build:mock": "ng build --configuration=mock",
|
|
12
|
+
"lint": "ng lint",
|
|
13
|
+
"ng": "ng",
|
|
14
|
+
"dev": "ng serve --configuration=development",
|
|
15
|
+
"start": "ng serve --configuration=development",
|
|
16
|
+
"start:mock": "ng serve --configuration=mock",
|
|
17
|
+
"test": "ng test",
|
|
18
|
+
"watch": "ng build --watch --configuration development",
|
|
19
|
+
"start:production": "ng serve --configuration=production"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@angular/aria": "21.2.4",
|
|
23
|
+
"@angular/cdk": "21.2.4",
|
|
24
|
+
"@angular/common": "21.2.6",
|
|
25
|
+
"@angular/compiler": "21.2.6",
|
|
26
|
+
"@angular/core": "21.2.6",
|
|
27
|
+
"@angular/forms": "21.2.6",
|
|
28
|
+
"@angular/material": "21.2.4",
|
|
29
|
+
"@angular/platform-browser": "21.2.6",
|
|
30
|
+
"@angular/router": "21.2.6",
|
|
31
|
+
"@jsverse/transloco": "8.2.1",
|
|
32
|
+
"apexcharts": "5.10.4",
|
|
33
|
+
"chroma-js": "3.2.0",
|
|
34
|
+
"date-fns": "4.1.0",
|
|
35
|
+
"dayjs": "^1.11.21",
|
|
36
|
+
"hsluv": "1.0.1",
|
|
37
|
+
"ng-apexcharts": "2.3.0",
|
|
38
|
+
"rxjs": "7.8.2",
|
|
39
|
+
"tslib": "2.8.1"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@angular/build": "21.2.5",
|
|
43
|
+
"@angular/cli": "21.2.5",
|
|
44
|
+
"@angular/compiler-cli": "21.2.6",
|
|
45
|
+
"@eslint/js": "10.0.1",
|
|
46
|
+
"@tailwindcss/postcss": "4.2.2",
|
|
47
|
+
"@types/chroma-js": "3.1.2",
|
|
48
|
+
"@types/node": "24.12.0",
|
|
49
|
+
"angular-eslint": "21.3.1",
|
|
50
|
+
"eslint": "10.1.0",
|
|
51
|
+
"eslint-import-resolver-typescript": "4.4.4",
|
|
52
|
+
"eslint-plugin-jsdoc": "62.8.1",
|
|
53
|
+
"eslint-plugin-perfectionist": "5.7.0",
|
|
54
|
+
"eslint-plugin-unused-imports": "4.4.1",
|
|
55
|
+
"globals": "17.4.0",
|
|
56
|
+
"jsdom": "29.0.1",
|
|
57
|
+
"postcss": "8.5.8",
|
|
58
|
+
"prettier": "3.8.1",
|
|
59
|
+
"prettier-plugin-packagejson": "3.0.2",
|
|
60
|
+
"prettier-plugin-tailwindcss": "0.7.2",
|
|
61
|
+
"tailwindcss": "4.2.2",
|
|
62
|
+
"typescript": "5.9.3",
|
|
63
|
+
"typescript-eslint": "8.58.0",
|
|
64
|
+
"vitest": "4.1.2"
|
|
65
|
+
},
|
|
66
|
+
"engines": {
|
|
67
|
+
"node": ">=24.0.0"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
trailingComma: 'es5',
|
|
3
|
+
singleQuote: true,
|
|
4
|
+
singleAttributePerLine: true,
|
|
5
|
+
overrides: [
|
|
6
|
+
{
|
|
7
|
+
files: '*.html',
|
|
8
|
+
options: {
|
|
9
|
+
parser: 'angular',
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
],
|
|
13
|
+
plugins: ['prettier-plugin-packagejson', 'prettier-plugin-tailwindcss'],
|
|
14
|
+
tailwindStylesheet: './src/styles/styles.css',
|
|
15
|
+
};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<svg width="20" height="15" viewBox="0 0 20 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_270_60959)">
|
|
3
|
+
<rect width="20" height="15" fill="white"/>
|
|
4
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0V15H20V0H0Z" fill="#FFB400"/>
|
|
5
|
+
<mask id="mask0_270_60959" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="15">
|
|
6
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0V15H20V0H0Z" fill="white"/>
|
|
7
|
+
</mask>
|
|
8
|
+
<g mask="url(#mask0_270_60959)">
|
|
9
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0V3.75H20V0H0Z" fill="#C51918"/>
|
|
10
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 11.25V15H20V11.25H0Z" fill="#C51918"/>
|
|
11
|
+
<rect x="3.13" y="6.41998" width="0.7" height="3.64" fill="#F1F9FF"/>
|
|
12
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.11001 5.79001H2.85001V6.14001H3.06001V6.42001H3.90001V6.14001H4.11001V5.79001Z" fill="#C88A02"/>
|
|
13
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.90001 10.27H4.11001V10.62H2.85001V10.27H3.06001V9.98999H3.90001V10.27Z" fill="#C88A02"/>
|
|
14
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.47999 5.86C3.63232 5.86 3.64781 5.80264 3.73768 5.71697C3.80746 5.65044 3.96999 5.56794 3.96999 5.475C3.96999 5.26237 3.75061 5.09 3.47999 5.09C3.20937 5.09 2.98999 5.26237 2.98999 5.475C2.98999 5.57854 3.10191 5.64777 3.18654 5.71697C3.2757 5.78986 3.34115 5.86 3.47999 5.86Z" fill="#AD1619"/>
|
|
15
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.85001 10.62H4.11001V11.18C4.11001 11.18 3.95251 11.11 3.79501 11.11C3.63751 11.11 3.48001 11.18 3.48001 11.18C3.48001 11.18 3.32251 11.11 3.16501 11.11C3.00751 11.11 2.85001 11.18 2.85001 11.18V10.62Z" fill="#005BBF"/>
|
|
16
|
+
<mask id="mask1_270_60959" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="2" y="10" width="3" height="2">
|
|
17
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.85001 10.62H4.11001V11.18C4.11001 11.18 3.95251 11.11 3.79501 11.11C3.63751 11.11 3.48001 11.18 3.48001 11.18C3.48001 11.18 3.32251 11.11 3.16501 11.11C3.00751 11.11 2.85001 11.18 2.85001 11.18V10.62Z" fill="white"/>
|
|
18
|
+
</mask>
|
|
19
|
+
<g mask="url(#mask1_270_60959)">
|
|
20
|
+
<path d="M2.83863 11.0699L2.81113 11.0029C2.92461 10.9524 3.0385 10.927 3.15257 10.927C3.22626 10.927 3.26474 10.9373 3.33016 10.9664C3.38763 10.992 3.41741 10.9999 3.48026 10.9999C3.5431 10.9999 3.57289 10.992 3.63035 10.9664C3.69577 10.9373 3.73425 10.927 3.80795 10.927C3.92201 10.927 4.0359 10.9524 4.14939 11.0029L4.12188 11.0699C4.01691 11.0232 3.91234 10.9999 3.80795 10.9999C3.7451 10.9999 3.71531 11.0079 3.65785 11.0335C3.59243 11.0626 3.55395 11.0729 3.48026 11.0729C3.40656 11.0729 3.36808 11.0626 3.30266 11.0335C3.2452 11.0079 3.21541 10.9999 3.15257 10.9999C3.04817 10.9999 2.9436 11.0232 2.83863 11.0699Z" fill="white"/>
|
|
21
|
+
<path d="M2.83863 10.8599L2.81113 10.7929C2.92461 10.7424 3.0385 10.717 3.15257 10.717C3.22626 10.717 3.26474 10.7273 3.33016 10.7564C3.38763 10.782 3.41741 10.79 3.48026 10.79C3.5431 10.79 3.57289 10.782 3.63035 10.7564C3.69577 10.7273 3.73425 10.717 3.80795 10.717C3.92201 10.717 4.0359 10.7424 4.14939 10.7929L4.12188 10.8599C4.01691 10.8132 3.91234 10.79 3.80795 10.79C3.7451 10.79 3.71531 10.7979 3.65785 10.8235C3.59243 10.8526 3.55395 10.8629 3.48026 10.8629C3.40656 10.8629 3.36808 10.8526 3.30266 10.8235C3.2452 10.7979 3.21541 10.79 3.15257 10.79C3.04817 10.79 2.9436 10.8132 2.83863 10.8599Z" fill="white"/>
|
|
22
|
+
</g>
|
|
23
|
+
<rect x="9.98999" y="6.41998" width="0.7" height="3.64" fill="#F1F9FF"/>
|
|
24
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.97 5.79001H9.70999V6.14001H9.91999V6.42001H10.76V6.14001H10.97V5.79001Z" fill="#C88A02"/>
|
|
25
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.76 10.27H10.97V10.62H9.70999V10.27H9.91999V9.98999H10.76V10.27Z" fill="#C88A02"/>
|
|
26
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.34 5.86C10.4923 5.86 10.5078 5.80264 10.5977 5.71697C10.6675 5.65044 10.83 5.56794 10.83 5.475C10.83 5.26237 10.6106 5.09 10.34 5.09C10.0694 5.09 9.85001 5.26237 9.85001 5.475C9.85001 5.57854 9.96193 5.64777 10.0466 5.71697C10.1357 5.78986 10.2012 5.86 10.34 5.86Z" fill="#AD1619"/>
|
|
27
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.70999 10.62H10.97V11.18C10.97 11.18 10.8125 11.11 10.655 11.11C10.4975 11.11 10.34 11.18 10.34 11.18C10.34 11.18 10.1825 11.11 10.025 11.11C9.86749 11.11 9.70999 11.18 9.70999 11.18V10.62Z" fill="#005BBF"/>
|
|
28
|
+
<mask id="mask2_270_60959" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="9" y="10" width="2" height="2">
|
|
29
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.70999 10.62H10.97V11.18C10.97 11.18 10.8125 11.11 10.655 11.11C10.4975 11.11 10.34 11.18 10.34 11.18C10.34 11.18 10.1825 11.11 10.025 11.11C9.86749 11.11 9.70999 11.18 9.70999 11.18V10.62Z" fill="white"/>
|
|
30
|
+
</mask>
|
|
31
|
+
<g mask="url(#mask2_270_60959)">
|
|
32
|
+
<path d="M9.69861 11.0699L9.67111 11.0029C9.7846 10.9524 9.89849 10.927 10.0126 10.927C10.0862 10.927 10.1247 10.9373 10.1901 10.9664C10.2476 10.992 10.2774 10.9999 10.3402 10.9999C10.4031 10.9999 10.4329 10.992 10.4903 10.9664C10.5558 10.9373 10.5942 10.927 10.6679 10.927C10.782 10.927 10.8959 10.9524 11.0094 11.0029L10.9819 11.0699C10.8769 11.0232 10.7723 10.9999 10.6679 10.9999C10.6051 10.9999 10.5753 11.0079 10.5178 11.0335C10.4524 11.0626 10.4139 11.0729 10.3402 11.0729C10.2665 11.0729 10.2281 11.0626 10.1626 11.0335C10.1052 11.0079 10.0754 10.9999 10.0126 10.9999C9.90816 10.9999 9.80359 11.0232 9.69861 11.0699Z" fill="white"/>
|
|
33
|
+
<path d="M9.69861 10.8599L9.67111 10.7929C9.7846 10.7424 9.89849 10.717 10.0126 10.717C10.0862 10.717 10.1247 10.7273 10.1901 10.7564C10.2476 10.782 10.2774 10.79 10.3402 10.79C10.4031 10.79 10.4329 10.782 10.4903 10.7564C10.5558 10.7273 10.5942 10.717 10.6679 10.717C10.782 10.717 10.8959 10.7424 11.0094 10.7929L10.9819 10.8599C10.8769 10.8132 10.7723 10.79 10.6679 10.79C10.6051 10.79 10.5753 10.7979 10.5178 10.8235C10.4524 10.8526 10.4139 10.8629 10.3402 10.8629C10.2665 10.8629 10.2281 10.8526 10.1626 10.8235C10.1052 10.7979 10.0754 10.79 10.0126 10.79C9.90816 10.79 9.80359 10.8132 9.69861 10.8599Z" fill="white"/>
|
|
34
|
+
</g>
|
|
35
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.11747 9.79996C3.24367 9.64695 3.31425 9.50776 3.31425 9.35992C3.31425 9.2667 3.28651 9.18619 3.23791 9.12042L3.24612 9.11672C3.24536 9.11707 3.38457 9.05639 3.43303 9.03315C3.52313 8.98995 3.6025 8.94419 3.67989 8.88791C3.7293 8.85198 3.7955 8.81285 3.89641 8.75866L3.99125 8.70822L4.01685 8.69463C4.06589 8.66846 4.10242 8.6484 4.13635 8.62872C4.24208 8.56739 4.31195 8.5167 4.36539 8.44894C4.49196 8.28843 4.46568 8.07085 4.28831 7.95009C4.20141 7.89093 4.08415 7.85698 3.91225 7.83025L3.87665 7.82474L3.6664 7.79215C3.58415 7.77923 3.51075 7.76718 3.44531 7.75575C3.87566 7.68413 4.49019 7.71045 4.7605 7.85002L5.01741 7.35242C4.46657 7.06802 3.21149 7.09706 2.74265 7.41993C2.39878 7.65675 2.44492 8.01473 2.80271 8.16888C2.95221 8.23329 3.1471 8.27603 3.50776 8.33397C3.44732 8.36903 3.39721 8.40106 3.35052 8.43501C3.30318 8.46945 3.25245 8.49869 3.19092 8.52819C3.16149 8.5423 3.07434 8.58057 3.0344 8.59811L3.01432 8.60695C2.72289 8.73946 2.58146 8.92277 2.62372 9.25369L2.6466 9.43282L2.68764 9.44544L3.11747 9.79996ZM2.75723 9.33703L2.75634 9.33961L2.75702 9.33778L2.75723 9.33703ZM10.4412 9.35992C10.4412 9.50776 10.5118 9.64695 10.638 9.79996L11.0678 9.44544L11.1089 9.43282L11.1317 9.25369C11.174 8.92277 11.0326 8.73946 10.7411 8.60695L10.7211 8.59811L10.721 8.59807C10.681 8.58052 10.594 8.5423 10.5645 8.52819C10.503 8.49869 10.4523 8.46945 10.4049 8.43501C10.3583 8.40106 10.3081 8.36903 10.2477 8.33397C10.6084 8.27603 10.8033 8.23329 10.9528 8.16888C11.3105 8.01473 11.3567 7.65675 11.0128 7.41993C10.544 7.09706 9.2889 7.06802 8.73806 7.35242L8.99497 7.85002C9.26528 7.71045 9.8798 7.68413 10.3102 7.75575C10.2447 7.76718 10.1713 7.77923 10.0891 7.79215L9.87879 7.82475L9.84321 7.83025C9.67132 7.85698 9.55405 7.89093 9.46715 7.95009C9.28978 8.07085 9.2635 8.28843 9.39008 8.44894C9.44352 8.5167 9.51339 8.56739 9.61912 8.62872C9.65305 8.6484 9.68957 8.66846 9.73862 8.69463L9.76429 8.70826L9.85905 8.75866C9.95997 8.81285 10.0262 8.85198 10.0756 8.88791C10.153 8.94419 10.2323 8.98995 10.3224 9.03315C10.3709 9.05639 10.5101 9.11707 10.5093 9.11672L10.5176 9.12042C10.469 9.18619 10.4412 9.2667 10.4412 9.35992Z" fill="#AD1619"/>
|
|
36
|
+
<path d="M3.7021 7.75L3.90872 7.79274V8.1007C3.68866 8.27629 3.13 8.57223 3.13 8.57223V7.75H3.7021Z" fill="#F1F9FF"/>
|
|
37
|
+
<path d="M10.1966 7.75L9.99 7.79274V8.1007C10.2101 8.27629 10.7687 8.57223 10.7687 8.57223V7.75H10.1966Z" fill="#F1F9FF"/>
|
|
38
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.235 4.50374V4.40125C8.87495 4.14284 8.4979 4.01364 8.10385 4.01364C7.72609 3.84647 7.34372 3.78158 6.95674 3.81897C6.95684 3.81777 6.9569 3.81717 6.9569 3.81717C6.37504 3.76023 5.78864 4.01364 5.78864 4.01364C5.19758 4.01364 4.6575 4.40125 4.6575 4.40125V4.50374L5.36352 5.21282C5.36352 5.21282 5.56225 5.89531 6.95402 5.73491V5.73664C6.95402 5.73664 7.87549 5.71149 7.94024 5.68995C7.96593 5.68141 7.99257 5.67363 8.0198 5.66568C8.20029 5.61299 8.40633 5.55283 8.52898 5.21282L9.235 4.50374ZM6.95402 3.85033C6.93393 4.0864 6.8192 5.50948 6.95402 5.73011V3.85033Z" fill="#AD1619"/>
|
|
39
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.19606 5.09349L5.19652 5.09133L4.69983 4.62403L4.7478 4.57304L5.21387 5.01154L5.2258 4.95668C5.30205 4.97326 5.35778 4.97936 5.39027 4.97591V4.88078L5.49358 4.9367C5.5444 4.9642 5.61718 4.97159 5.71303 4.956C5.78343 4.94454 5.83094 4.86278 5.84647 4.68855L5.87783 4.33682L5.98302 4.67391C6.03061 4.82645 6.10323 4.89369 6.2066 4.89369C6.30757 4.89369 6.34815 4.85668 6.35263 4.76338L6.36534 4.49877L6.485 4.73512C6.52811 4.82026 6.58757 4.85889 6.6721 4.85889C6.79301 4.85889 6.87377 4.7581 6.87377 4.59994H6.87606H7.01377H7.01606C7.01606 4.7581 7.09682 4.85889 7.21772 4.85889C7.30226 4.85889 7.36171 4.82026 7.40482 4.73512L7.52449 4.49877L7.53719 4.76338C7.54167 4.85668 7.58226 4.89369 7.68322 4.89369C7.7866 4.89369 7.85921 4.82645 7.90681 4.67391L8.012 4.33682L8.04336 4.68855C8.05889 4.86278 8.10639 4.94454 8.1768 4.956C8.27265 4.97159 8.34543 4.9642 8.39624 4.9367L8.49956 4.88078V4.97591C8.53204 4.97936 8.58778 4.97326 8.66403 4.95668L8.68616 5.05848L9.20212 4.57304L9.25009 4.62403L8.60802 5.2281C8.51435 5.40061 8.46717 5.51448 8.46717 5.56178C8.46717 5.63395 8.27943 5.67678 7.91302 5.72077C7.62596 5.75524 7.28719 5.77837 7.01009 5.78183V5.78228L6.97496 5.78216L6.93983 5.78228V5.78183C6.66272 5.77837 6.32395 5.75524 6.0369 5.72077C5.67048 5.67678 5.48274 5.63395 5.48274 5.56178C5.48274 5.55284 5.48105 5.54151 5.47768 5.52785C5.44073 5.48079 5.41476 5.40382 5.39747 5.33438C5.38125 5.30191 5.36272 5.26645 5.34189 5.2281L5.19964 5.09426L5.19606 5.09349ZM8.63696 5.10476C8.52232 5.12505 8.43954 5.123 8.39561 5.08724C8.32691 5.10723 8.24632 5.10915 8.15431 5.09418C8.05604 5.07819 7.9876 5.01282 7.94642 4.90438C7.89266 4.97287 7.82469 5.01515 7.74326 5.02883C8.19121 5.09235 8.505 5.18165 8.505 5.18165C8.505 5.18165 8.49726 5.24799 8.47845 5.32599C8.49836 5.28516 8.52195 5.23979 8.54922 5.18971L8.55597 5.18096L8.63696 5.10476ZM7.53188 5.00222C7.49292 4.98286 7.46181 4.95479 7.43932 4.91862C7.40592 4.94811 7.36794 4.96968 7.32575 4.98299C7.39618 4.98838 7.46505 4.99489 7.53188 5.00222ZM7.07864 4.96937C7.02411 4.94417 6.97877 4.90382 6.94491 4.85212C6.91129 4.90346 6.86636 4.9436 6.81235 4.96883C6.84434 4.96788 6.87653 4.96721 6.90886 4.96685V4.96653L6.93693 4.96661L6.965 4.96653V4.96685C7.00311 4.96727 7.04101 4.96813 7.07864 4.96937ZM5.38885 5.17617L5.32359 5.11476C5.40193 5.12253 5.45992 5.11516 5.49421 5.08724C5.56292 5.10723 5.6435 5.10915 5.73552 5.09418C5.83379 5.07819 5.90222 5.01282 5.9434 4.90438C5.99561 4.97089 6.06121 5.01268 6.13952 5.02757C5.75331 5.08183 5.46515 5.15565 5.38885 5.17617ZM6.56104 4.98202C6.49322 4.98706 6.42682 4.99315 6.36225 5.00002C6.3992 4.98076 6.42885 4.95345 6.45051 4.91862C6.4831 4.9474 6.52006 4.96864 6.56104 4.98202ZM8.28313 5.56315C8.33218 5.58611 8.37149 5.56321 8.40257 5.51926C8.39988 5.5314 8.3982 5.54237 8.39752 5.5522C8.39341 5.55489 8.38712 5.55813 8.37886 5.5616C8.3558 5.57129 8.32059 5.58162 8.27478 5.59207C8.18473 5.61261 8.05657 5.63303 7.90467 5.65127C7.60806 5.68689 7.25535 5.71032 6.97496 5.71216C6.69456 5.71032 6.34186 5.68689 6.04524 5.65127C5.89335 5.63303 5.76518 5.61261 5.67514 5.59207C5.63674 5.58331 5.60579 5.57464 5.5832 5.56635C5.58568 5.56541 5.5882 5.56434 5.59074 5.56315C5.74365 5.4916 6.75483 5.42445 6.93693 5.41287C7.11903 5.42445 8.13021 5.4916 8.28313 5.56315ZM8.47597 5.55033L8.4749 5.55156L8.47554 5.55067L8.47597 5.55033Z" fill="#C88A02"/>
|
|
40
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.94514 3.34194C7.06112 3.34194 7.15514 3.24792 7.15514 3.13194C7.15514 3.01596 7.06112 2.92194 6.94514 2.92194C6.82916 2.92194 6.73514 3.01596 6.73514 3.13194C6.73514 3.24792 6.82916 3.34194 6.94514 3.34194Z" fill="#005BBF"/>
|
|
41
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.80854 4.37302C6.81302 4.39607 6.82001 4.41753 6.82886 4.43665C6.80173 4.42629 6.76953 4.42029 6.735 4.42029C6.63835 4.42029 6.56 4.4673 6.56 4.52529C6.56 4.58328 6.63835 4.63029 6.735 4.63029C6.83165 4.63029 6.91 4.58328 6.91 4.52529C6.91 4.58328 6.98835 4.63029 7.085 4.63029C7.18165 4.63029 7.26 4.58328 7.26 4.52529C7.26 4.4673 7.18165 4.42029 7.085 4.42029C7.06067 4.42029 7.0375 4.42327 7.01645 4.42865C7.02152 4.39994 7.0213 4.36703 7.01468 4.33295C6.99624 4.23808 6.93514 4.17014 6.87821 4.1812C6.82129 4.19227 6.79009 4.27815 6.80854 4.37302ZM6.91 4.52529L6.90992 4.52208L6.91008 4.52214L6.91 4.52529ZM5.77886 4.50665C5.77001 4.48753 5.76302 4.46607 5.75854 4.44302C5.74009 4.34815 5.77129 4.26227 5.82821 4.2512C5.88514 4.24014 5.94624 4.30808 5.96468 4.40295C5.9713 4.43703 5.97152 4.46994 5.96645 4.49865C5.9875 4.49327 6.01067 4.49029 6.035 4.49029C6.13165 4.49029 6.21 4.5373 6.21 4.59529C6.21 4.65328 6.13165 4.70029 6.035 4.70029C5.93835 4.70029 5.86 4.65328 5.86 4.59529L5.86008 4.59214L5.85992 4.59208L5.86 4.59529C5.86 4.65328 5.78165 4.70029 5.685 4.70029C5.58835 4.70029 5.51 4.65328 5.51 4.59529C5.51 4.5373 5.58835 4.49029 5.685 4.49029C5.71953 4.49029 5.75173 4.49629 5.77886 4.50665ZM7.9712 4.57064C7.96313 4.62806 7.879 4.66371 7.78329 4.65026C7.68759 4.63681 7.61654 4.57935 7.62461 4.52193C7.63268 4.4645 7.71681 4.42885 7.81252 4.44231C7.84672 4.44711 7.87777 4.45754 7.90319 4.47157C7.89709 4.45141 7.89315 4.42918 7.89192 4.40574C7.88686 4.30922 7.92971 4.22851 7.98762 4.22548C8.04553 4.22244 8.09658 4.29823 8.10163 4.39474C8.10345 4.42941 8.09909 4.46204 8.09007 4.48976C8.11166 4.48735 8.13502 4.48763 8.15912 4.49102C8.25482 4.50447 8.32587 4.56192 8.3178 4.61935C8.30973 4.67677 8.2256 4.71242 8.12989 4.69897C8.03418 4.68552 7.96313 4.62806 7.9712 4.57064ZM7.9712 4.57064L7.97157 4.56745L7.97172 4.56753L7.9712 4.57064ZM8.63772 4.8483C8.72305 4.89367 8.8143 4.88895 8.84153 4.83775L8.84296 4.83488C8.85137 4.84378 8.86132 4.85025 8.87267 4.85372C8.92813 4.87068 8.99599 4.8095 9.02425 4.71707C9.05251 4.62464 9.03046 4.53597 8.975 4.51902C8.91954 4.50206 8.85168 4.56324 8.82342 4.65567C8.81656 4.67812 8.81266 4.70036 8.81149 4.72139C8.79241 4.69951 8.7668 4.67909 8.7363 4.66288C8.65097 4.6175 8.55972 4.62223 8.53249 4.67343C8.50527 4.72463 8.55238 4.80292 8.63772 4.8483ZM5.20301 4.86974C5.11767 4.91512 5.02642 4.91039 4.9992 4.85919C4.9987 4.85824 4.99822 4.85729 4.99776 4.85632C4.98936 4.86522 4.97941 4.8717 4.96805 4.87517C4.9126 4.89212 4.84473 4.83094 4.81648 4.73851C4.78822 4.64609 4.81027 4.55741 4.86572 4.54046C4.92118 4.5235 4.98904 4.58469 5.0173 4.67711C5.02417 4.69957 5.02806 4.7218 5.02923 4.74283C5.04831 4.72095 5.07393 4.70054 5.10442 4.68432C5.18976 4.63895 5.28101 4.64367 5.30823 4.69487C5.33545 4.74608 5.28835 4.82437 5.20301 4.86974Z" fill="#C88A02"/>
|
|
42
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.86676 2.54788H7.01259V2.64001H7.10788V2.78584H7.01259V3.07751H7.10788V3.22334H6.76999V3.07751H6.86676V2.78584H6.76999V2.64001H6.86676V2.54788Z" fill="#C88A02"/>
|
|
43
|
+
<rect x="6.84" y="3.34" width="0.28" height="0.91" fill="#C88A02"/>
|
|
44
|
+
<path d="M5.71286 3.49241L5.71164 3.5624C5.09095 3.55156 4.73492 3.64214 4.64454 3.82267C4.5511 4.00931 4.56848 4.2362 4.6994 4.50572L4.63644 4.5363C4.49675 4.24874 4.47767 3.99963 4.58194 3.79134C4.68928 3.57693 5.06591 3.48111 5.71286 3.49241Z" fill="white"/>
|
|
45
|
+
<path d="M5.83295 4.11312L5.79706 4.17322C5.66189 4.09252 5.59424 3.95478 5.59424 3.76497C5.59424 3.49217 5.73477 3.3322 6.04561 3.22272C6.244 3.15285 6.51501 3.1815 6.85939 3.30636L6.83553 3.37217C6.50493 3.25231 6.24912 3.22527 6.06886 3.28875C5.78375 3.38916 5.66424 3.52521 5.66424 3.76497C5.66424 3.93154 5.72043 4.04594 5.83295 4.11312Z" fill="white"/>
|
|
46
|
+
<path d="M4.7876 4.39836L4.65551 4.44475C4.51846 4.05454 4.5576 3.78953 4.79178 3.67521C4.99813 3.57448 5.29887 3.53349 5.6955 3.54956L5.68983 3.68945C5.31431 3.67423 5.03493 3.71231 4.85319 3.80102C4.69929 3.87615 4.67114 4.06677 4.7876 4.39836Z" fill="#C88A02"/>
|
|
47
|
+
<path d="M6.33079 3.39919C6.0107 3.39919 5.87926 3.47714 5.80416 3.70732C5.75631 3.85401 5.80272 3.97921 5.95322 4.09607L5.86735 4.20665C5.67251 4.05535 5.60381 3.87005 5.67107 3.6639C5.76677 3.37056 5.95456 3.25919 6.33079 3.25919C6.57739 3.25919 6.76949 3.32397 6.90324 3.45582L6.9241 3.47638V4.15136H6.7841V3.53622C6.67964 3.44549 6.52959 3.39919 6.33079 3.39919Z" fill="#C88A02"/>
|
|
48
|
+
<path d="M8.15561 3.56241L8.15683 3.6324C8.77752 3.62157 9.13355 3.71215 9.22393 3.89268C9.31737 4.07932 9.29999 4.30621 9.16907 4.57573L9.23203 4.60631C9.37172 4.31875 9.3908 4.06963 9.28653 3.86134C9.17919 3.64694 8.80255 3.55112 8.15561 3.56241Z" fill="white"/>
|
|
49
|
+
<path d="M7.93643 4.12768L7.97232 4.18778C8.10749 4.10707 8.17514 3.96934 8.17514 3.77953C8.17514 3.50673 8.03461 3.34675 7.72377 3.23728C7.52538 3.16741 7.25437 3.19606 6.90999 3.32092L6.93385 3.38673C7.26445 3.26686 7.52026 3.23982 7.70051 3.3033C7.98563 3.40372 8.10514 3.53976 8.10514 3.77953C8.10514 3.9461 8.04895 4.0605 7.93643 4.12768Z" fill="white"/>
|
|
50
|
+
<path d="M9.12451 4.46837L9.2566 4.51476C9.39365 4.12454 9.35451 3.85954 9.12033 3.74522C8.91398 3.64449 8.61324 3.6035 8.21661 3.61957L8.22228 3.75945C8.5978 3.74424 8.87718 3.78232 9.05892 3.87103C9.21282 3.94616 9.24097 4.13678 9.12451 4.46837Z" fill="#C88A02"/>
|
|
51
|
+
<path d="M7.57329 3.41002C7.89338 3.41002 8.02482 3.48798 8.09992 3.71816C8.14777 3.86485 8.10136 3.99004 7.95087 4.10691L8.03674 4.21748C8.23157 4.06618 8.30027 3.88088 8.23301 3.67474C8.13731 3.38139 7.94953 3.27002 7.57329 3.27002C7.32669 3.27002 7.1346 3.33481 7.00084 3.46666L6.97998 3.48722V4.1622H7.11998V3.54706C7.22445 3.45632 7.3745 3.41002 7.57329 3.41002Z" fill="#C88A02"/>
|
|
52
|
+
<path opacity="0.3" fill-rule="evenodd" clip-rule="evenodd" d="M4.66998 5.79001H9.21998V9.87803C9.21998 9.87803 8.882 11.25 6.94498 11.25C5.00797 11.25 4.66998 9.84185 4.66998 9.84185V5.79001Z" fill="#E1E5E8"/>
|
|
53
|
+
<mask id="mask3_270_60959" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="4" y="5" width="6" height="7">
|
|
54
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.66998 5.79001H9.21998V9.87803C9.21998 9.87803 8.882 11.25 6.94498 11.25C5.00797 11.25 4.66998 9.84185 4.66998 9.84185V5.79001Z" fill="white"/>
|
|
55
|
+
</mask>
|
|
56
|
+
<g mask="url(#mask3_270_60959)">
|
|
57
|
+
<rect x="4.66998" y="8.31" width="2.31" height="2.73" fill="#FFC034"/>
|
|
58
|
+
<rect x="4.94998" y="8.45001" width="0.28" height="2.59" fill="#AD1619"/>
|
|
59
|
+
<rect x="5.92999" y="8.45001" width="0.28" height="2.59" fill="#AD1619"/>
|
|
60
|
+
<rect x="5.43997" y="8.45001" width="0.28" height="2.59" fill="#AD1619"/>
|
|
61
|
+
<rect x="6.41998" y="8.45001" width="0.28" height="2.59" fill="#AD1619"/>
|
|
62
|
+
<rect x="4.66998" y="5.72" width="2.31" height="2.66" fill="#AD1619"/>
|
|
63
|
+
<rect x="6.90997" y="8.24002" width="2.31" height="2.66" fill="#AD1619"/>
|
|
64
|
+
<rect x="6.90997" y="5.79001" width="2.45" height="2.59" fill="#F1F9FF"/>
|
|
65
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.64997 6H5.85997V6.58074H5.99997V6.29037H6.20997V6.58074H6.41997V6.9437H6.20997V7.59704H6.41997V7.96H5.15997V7.59704H5.36997V6.9437H5.15997V6.58074H5.29997V6.29037H5.50997V6.58074H5.64997V6Z" fill="#C88A02"/>
|
|
66
|
+
<path d="M8.11176 6.1219L8.25511 5.96844L8.55607 6.24959L8.41272 6.40304L8.11176 6.1219Z" fill="#C88A02"/>
|
|
67
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.97498 10.0876V8.55502H7.22498V10.0747L7.22775 10.0866C7.31634 10.464 7.61803 10.655 8.09998 10.655C8.58146 10.655 8.88311 10.469 8.97206 10.0997L8.97498 10.0876ZM8.09998 10.445C7.71328 10.445 7.50211 10.3148 7.43498 10.05V8.76502H8.76498V10.0621C8.69801 10.3183 8.48682 10.445 8.09998 10.445Z" fill="#FFC034"/>
|
|
68
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.17223 8.68311H8.0264V9.3779L7.45151 8.75264L7.34845 8.84739L7.86836 9.41285H7.39729V9.62285H7.75915H7.87981L7.34845 10.2008L7.45151 10.2955L8.0264 9.67027V10.4824H8.17223V9.74335L8.67992 10.2955L8.78298 10.2008L8.25162 9.62285H8.84472V9.41285H8.26308L8.78298 8.84739L8.67992 8.75264L8.17223 9.30481V8.68311Z" fill="#FFC034"/>
|
|
69
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.42669 10.9017C8.42669 10.9017 6.94407 11.0183 6.94407 10.062C6.94407 10.062 6.92993 10.9017 5.38181 10.9017V11.6566H8.42669V10.9017Z" fill="#F1F9FF"/>
|
|
70
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.94498 8.87C7.23493 8.87 7.46998 8.61928 7.46998 8.31C7.46998 8.00072 7.23493 7.75 6.94498 7.75C6.65503 7.75 6.41998 8.00072 6.41998 8.31C6.41998 8.61928 6.65503 8.87 6.94498 8.87Z" fill="#005BBF" stroke="#AD1619" stroke-width="0.729167"/>
|
|
71
|
+
</g>
|
|
72
|
+
</g>
|
|
73
|
+
</g>
|
|
74
|
+
<defs>
|
|
75
|
+
<clipPath id="clip0_270_60959">
|
|
76
|
+
<rect width="20" height="15" fill="white"/>
|
|
77
|
+
</clipPath>
|
|
78
|
+
</defs>
|
|
79
|
+
</svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg width="20" height="15" viewBox="0 0 20 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_270_60787)">
|
|
3
|
+
<rect width="20" height="15" fill="white"/>
|
|
4
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H20V15H0V0Z" fill="#E31D1C"/>
|
|
5
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1.25V2.5H20V1.25H0ZM0 3.75V5H20V3.75H0ZM0 7.5V6.25H20V7.5H0ZM0 8.75V10H20V8.75H0ZM0 12.5V11.25H20V12.5H0ZM0 15V13.75H20V15H0Z" fill="#F7FCFF"/>
|
|
6
|
+
<rect width="11.25" height="8.75" fill="#2E42A5"/>
|
|
7
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.30002 2.71725L1.96242 2.25583L2.47624 2.62575H2.18532L2.77365 3.14612L2.57494 3.87575H2.2637L1.96149 3.20563L1.70376 3.87575H0.935318L1.52365 4.39612L1.30002 5.21725L1.96242 4.75583L2.47624 5.12575H2.18532L2.77365 5.64612L2.57494 6.37575H2.2637L1.96149 5.70563L1.70376 6.37575H0.935318L1.52365 6.89612L1.30002 7.71725L1.96242 7.25583L2.60334 7.71725L2.40407 6.89612L2.91878 6.37575H2.68137L3.21242 6.00583L3.72624 6.37575H3.43532L4.02365 6.89612L3.80002 7.71725L4.46242 7.25583L5.10334 7.71725L4.90407 6.89612L5.41878 6.37575H5.18137L5.71242 6.00583L6.22624 6.37575H5.93532L6.52365 6.89612L6.30002 7.71725L6.96242 7.25583L7.60334 7.71725L7.40407 6.89612L7.91878 6.37575H7.68137L8.21242 6.00583L8.72624 6.37575H8.43532L9.02365 6.89612L8.80002 7.71725L9.46242 7.25583L10.1033 7.71725L9.90407 6.89612L10.4188 6.37575H9.7637L9.46149 5.70563L9.20376 6.37575H8.83113L8.65407 5.64612L9.16878 5.12575H8.93137L9.46242 4.75583L10.1033 5.21725L9.90407 4.39612L10.4188 3.87575H9.7637L9.46149 3.20563L9.20376 3.87575H8.83113L8.65407 3.14612L9.16878 2.62575H8.93137L9.46242 2.25583L10.1033 2.71725L9.90407 1.89612L10.4188 1.37575H9.7637L9.46149 0.705627L9.20376 1.37575H8.43532L9.02365 1.89612L8.82494 2.62575H8.5137L8.21149 1.95563L7.95376 2.62575H7.58113L7.40407 1.89612L7.91878 1.37575H7.2637L6.96149 0.705627L6.70376 1.37575H5.93532L6.52365 1.89612L6.32494 2.62575H6.0137L5.71149 1.95563L5.45376 2.62575H5.08113L4.90407 1.89612L5.41878 1.37575H4.7637L4.46149 0.705627L4.20376 1.37575H3.43532L4.02365 1.89612L3.82494 2.62575H3.5137L3.21149 1.95563L2.95376 2.62575H2.58113L2.40407 1.89612L2.91878 1.37575H2.2637L1.96149 0.705627L1.70376 1.37575H0.935318L1.52365 1.89612L1.30002 2.71725ZM8.82494 5.12575L9.02365 4.39612L8.43532 3.87575H8.72624L8.21242 3.50583L7.68137 3.87575H7.91878L7.40407 4.39612L7.58113 5.12575H7.95376L8.21149 4.45563L8.5137 5.12575H8.82494ZM7.47624 5.12575L6.96242 4.75583L6.43137 5.12575H6.66878L6.15407 5.64612L6.33113 6.37575H6.70376L6.96149 5.70563L7.2637 6.37575H7.57494L7.77365 5.64612L7.18532 5.12575H7.47624ZM5.27365 5.64612L5.07494 6.37575H4.7637L4.46149 5.70563L4.20376 6.37575H3.83113L3.65407 5.64612L4.16878 5.12575H3.93137L4.46242 4.75583L4.97624 5.12575H4.68532L5.27365 5.64612ZM5.45376 5.12575H5.08113L4.90407 4.39612L5.41878 3.87575H5.18137L5.71242 3.50583L6.22624 3.87575H5.93532L6.52365 4.39612L6.32494 5.12575H6.0137L5.71149 4.45563L5.45376 5.12575ZM3.82494 5.12575L4.02365 4.39612L3.43532 3.87575H3.72624L3.21242 3.50583L2.68137 3.87575H2.91878L2.40407 4.39612L2.58113 5.12575H2.95376L3.21149 4.45563L3.5137 5.12575H3.82494ZM7.77365 3.14612L7.57494 3.87575H7.2637L6.96149 3.20563L6.70376 3.87575H6.33113L6.15407 3.14612L6.66878 2.62575H6.43137L6.96242 2.25583L7.47624 2.62575H7.18532L7.77365 3.14612ZM4.97624 2.62575L4.46242 2.25583L3.93137 2.62575H4.16878L3.65407 3.14612L3.83113 3.87575H4.20376L4.46149 3.20563L4.7637 3.87575H5.07494L5.27365 3.14612L4.68532 2.62575H4.97624Z" fill="#F7FCFF"/>
|
|
8
|
+
</g>
|
|
9
|
+
<defs>
|
|
10
|
+
<clipPath id="clip0_270_60787">
|
|
11
|
+
<rect width="20" height="15" fill="white"/>
|
|
12
|
+
</clipPath>
|
|
13
|
+
</defs>
|
|
14
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
# Default registry, image name, and tag if not passed
|
|
5
|
+
REGISTRY=${1:-"crudforge"}
|
|
6
|
+
IMAGE_NAME=${2:-"crudforge-app"}
|
|
7
|
+
TAG=${3:-"latest"}
|
|
8
|
+
|
|
9
|
+
echo "🚀 Building production application..."
|
|
10
|
+
npm run build
|
|
11
|
+
|
|
12
|
+
echo "🐳 Building Docker image: ${REGISTRY}/${IMAGE_NAME}:${TAG} ..."
|
|
13
|
+
docker build -t ${REGISTRY}/${IMAGE_NAME}:${TAG} .
|
|
14
|
+
|
|
15
|
+
if [ "$TAG" != "latest" ]; then
|
|
16
|
+
echo "🏷️ Tagging Docker image with 'latest'..."
|
|
17
|
+
docker tag ${REGISTRY}/${IMAGE_NAME}:${TAG} ${REGISTRY}/${IMAGE_NAME}:latest
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
echo "📤 Pushing Docker image: ${REGISTRY}/${IMAGE_NAME}:${TAG} ..."
|
|
21
|
+
docker push ${REGISTRY}/${IMAGE_NAME}:${TAG}
|
|
22
|
+
|
|
23
|
+
if [ "$TAG" != "latest" ]; then
|
|
24
|
+
docker push ${REGISTRY}/${IMAGE_NAME}:latest
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
echo "🎉 Docker image built and pushed successfully!"
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { mergeApplicationConfig, ApplicationConfig } from '@angular/core';
|
|
2
|
+
import { provideServerRendering, withRoutes } from '@angular/ssr';
|
|
3
|
+
import { appConfig } from '@/app/app.config';
|
|
4
|
+
import { serverRoutes } from '@/app/app.routes.server';
|
|
5
|
+
|
|
6
|
+
const serverConfig: ApplicationConfig = {
|
|
7
|
+
providers: [provideServerRendering(withRoutes(serverRoutes))],
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const config = mergeApplicationConfig(appConfig, serverConfig);
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { TranslocoHttpLoader } from '@/app/core/transloco/transloco-http-loader';
|
|
2
|
+
import { provideHttpClient, withFetch } from '@angular/common/http';
|
|
3
|
+
import {
|
|
4
|
+
ApplicationConfig,
|
|
5
|
+
isDevMode,
|
|
6
|
+
provideBrowserGlobalErrorListeners,
|
|
7
|
+
} from '@angular/core';
|
|
8
|
+
import { provideNativeDateAdapter } from '@angular/material/core';
|
|
9
|
+
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
|
|
10
|
+
import {
|
|
11
|
+
provideRouter,
|
|
12
|
+
withComponentInputBinding,
|
|
13
|
+
withInMemoryScrolling,
|
|
14
|
+
} from '@angular/router';
|
|
15
|
+
import { provideIcons } from '@/app/core/icons/provider';
|
|
16
|
+
import { provideTheming } from '@/app/core/theming';
|
|
17
|
+
import { provideTransloco } from '@jsverse/transloco';
|
|
18
|
+
import { fuseTheme } from './app';
|
|
19
|
+
import { routes } from './app.routes';
|
|
20
|
+
|
|
21
|
+
export const appConfig: ApplicationConfig = {
|
|
22
|
+
providers: [
|
|
23
|
+
provideBrowserGlobalErrorListeners(),
|
|
24
|
+
provideHttpClient(withFetch()),
|
|
25
|
+
provideRouter(
|
|
26
|
+
routes,
|
|
27
|
+
withComponentInputBinding(),
|
|
28
|
+
withInMemoryScrolling({ scrollPositionRestoration: 'enabled' })
|
|
29
|
+
),
|
|
30
|
+
|
|
31
|
+
// Material
|
|
32
|
+
{
|
|
33
|
+
provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
|
|
34
|
+
useValue: {
|
|
35
|
+
subscriptSizing: 'dynamic',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
provideNativeDateAdapter(),
|
|
39
|
+
|
|
40
|
+
// Core
|
|
41
|
+
provideIcons(),
|
|
42
|
+
provideTheming(fuseTheme),
|
|
43
|
+
|
|
44
|
+
// Third-party
|
|
45
|
+
provideTransloco({
|
|
46
|
+
config: {
|
|
47
|
+
availableLangs: [
|
|
48
|
+
{
|
|
49
|
+
id: 'en',
|
|
50
|
+
label: 'English',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'es',
|
|
54
|
+
label: 'Español',
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
defaultLang: 'en',
|
|
58
|
+
reRenderOnLangChange: true,
|
|
59
|
+
prodMode: !isDevMode(),
|
|
60
|
+
},
|
|
61
|
+
loader: TranslocoHttpLoader,
|
|
62
|
+
}),
|
|
63
|
+
],
|
|
64
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Route } from '@angular/router';
|
|
2
|
+
|
|
3
|
+
export const routes: Route[] = [
|
|
4
|
+
// Website routes
|
|
5
|
+
{
|
|
6
|
+
path: 'home',
|
|
7
|
+
loadChildren: () => import('./domains/website/routes'),
|
|
8
|
+
},
|
|
9
|
+
|
|
10
|
+
// Auth
|
|
11
|
+
{
|
|
12
|
+
path: 'auth',
|
|
13
|
+
loadChildren: () => import('./domains/auth/routes'),
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
// Admin
|
|
17
|
+
{
|
|
18
|
+
path: '',
|
|
19
|
+
pathMatch: 'full',
|
|
20
|
+
redirectTo: 'admin',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
path: 'admin',
|
|
24
|
+
loadChildren: () => import('./domains/admin/routes'),
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
// Coming soon
|
|
28
|
+
{
|
|
29
|
+
path: 'coming-soon',
|
|
30
|
+
loadChildren: () => import('./domains/coming-soon/routes'),
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
// Global Catch-all (404)
|
|
34
|
+
{
|
|
35
|
+
path: '**',
|
|
36
|
+
loadComponent: () => import('./domains/admin/modules/extras/error/features/error-page'),
|
|
37
|
+
data: { errorCode: 404, title: 'Page not found' }
|
|
38
|
+
}
|
|
39
|
+
];
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { RouterOutlet } from '@angular/router';
|
|
3
|
+
import { ThemeConfig } from '@/app/core/theming/models/theming';
|
|
4
|
+
|
|
5
|
+
/** Root Fuse theme. Change these values to recolor buttons, links, and Material accents. */
|
|
6
|
+
export const fuseTheme: ThemeConfig = {
|
|
7
|
+
scheme: 'system',
|
|
8
|
+
// Default navy — override via fuse.theme.primary in crudforge.config.yml.
|
|
9
|
+
primary: '#0D1E3A',
|
|
10
|
+
error: '#dc2626',
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
@Component({
|
|
14
|
+
selector: 'app-root',
|
|
15
|
+
imports: [RouterOutlet],
|
|
16
|
+
host: {
|
|
17
|
+
// Ensure root component fills the entire viewport
|
|
18
|
+
class: 'flex min-h-full w-full flex-auto flex-col',
|
|
19
|
+
},
|
|
20
|
+
template: `<router-outlet />`,
|
|
21
|
+
})
|
|
22
|
+
export class App {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { provideIcons } from './provider';
|