{"_id":"@cadai/pxs-ng-core","_rev":"2-9117438d7dda2bfe772ae9b5058deb79","name":"@cadai/pxs-ng-core","dist-tags":{"latest":"1.9.27"},"versions":{"1.9.26":{"name":"@cadai/pxs-ng-core","version":"1.9.26","_id":"@cadai/pxs-ng-core@1.9.26","maintainers":[{"name":"tarikhdd","email":"t.thaddadi@gmail.com"}],"dist":{"shasum":"52baf35a57dde080ba777cd85e63a67efb0e63c7","tarball":"https://registry.npmjs.org/@cadai/pxs-ng-core/-/pxs-ng-core-1.9.26.tgz","fileCount":63,"integrity":"sha512-8mmg9FgM2OLdRBk8pUvZ8Fdc6kKCwPQIa9+oSDcOpnZ1axt1l6+69ObSGJxX8gk1VaD+szp+w3KbH5S6cxMMaw==","signatures":[{"sig":"MEUCIAmNEfRyOOAs9ZNUKui0iXdfZruKgFZdCFpf7OmNH1A/AiEA5yZl5dneZn/wYSvB5anPqCHGKji+eoXdWD7DdFSbpIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1063083},"module":"fesm2022/cadai-pxs-ng-core.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/cadai-pxs-ng-core.mjs"},"./core":{"types":"./core/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-core.mjs"},"./enums":{"types":"./enums/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-enums.mjs"},"./store":{"types":"./store/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-store.mjs"},"./utils":{"types":"./utils/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-utils.mjs"},"./guards":{"types":"./guards/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-guards.mjs"},"./shared":{"types":"./shared/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-shared.mjs"},"./tokens":{"types":"./tokens/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-tokens.mjs"},"./realtime":{"types":"./realtime/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-realtime.mjs"},"./services":{"types":"./services/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-services.mjs"},"./factories":{"types":"./factories/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-factories.mjs"},"./providers":{"types":"./providers/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-providers.mjs"},"./directives":{"types":"./directives/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-directives.mjs"},"./interfaces":{"types":"./interfaces/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-interfaces.mjs"},"./interceptors":{"types":"./interceptors/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-interceptors.mjs"},"./package.json":{"default":"./package.json"}},"typings":"index.d.ts","_npmUser":{"name":"tarikhdd","email":"t.thaddadi@gmail.com"},"_npmVersion":"10.8.2","description":"This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.1.0.","directories":{},"sideEffects":true,"_nodeVersion":"20.19.6","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"registry":"https://pkgs.dev.azure.com/cadai/Socle/_packaging/PXS-NG-CORE/npm/registry/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"~7.8.0","luxon":"^3.7.1","chart.js":"^4.5.0","@ngrx/store":"^18.0.0 || ^19.0.0 || ^20.0.0","keycloak-js":">=23.0.0 <27.0.0","@angular/cdk":">=19.0.0 <21.0.0","@angular/core":">=19.0.0 <21.0.0","@ngrx/effects":"^18.0.0 || ^19.0.0 || ^20.0.0","@angular/forms":">=19.0.0 <21.0.0","@angular/common":">=19.0.0 <21.0.0","@angular/router":">=19.0.0 <21.0.0","@angular/material":">=19.0.0 <21.0.0","@ng-draw-flow/core":"^0.17.0","@angular/animations":">=19.0.0 <21.0.0","@ngx-translate/core":"^16.0.0 || ^17.0.0","chartjs-adapter-luxon":"^1.0.0","ngrx-store-localstorage":"^18.0.0 || ^19.0.0 || ^20.0.0","@angular/platform-browser":">=19.0.0 <21.0.0","@ngx-translate/http-loader":"^16.0.0 || ^17.0.0"},"peerDependenciesMeta":{"@swimlane/ngx-graph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pxs-ng-core_1.9.26_1764862416065_0.6664503576482006","host":"s3://npm-registry-packages-npm-production"}},"1.9.27":{"name":"@cadai/pxs-ng-core","version":"1.9.27","publishConfig":{"registry":"https://pkgs.dev.azure.com/cadai/Socle/_packaging/PXS-NG-CORE/npm/registry/"},"peerDependencies":{"@angular/platform-browser":">=19.0.0 <21.0.0","@angular/animations":">=19.0.0 <21.0.0","@angular/common":">=19.0.0 <21.0.0","@angular/core":">=19.0.0 <21.0.0","@angular/forms":">=19.0.0 <21.0.0","@angular/router":">=19.0.0 <21.0.0","@angular/cdk":">=19.0.0 <21.0.0","@angular/material":">=19.0.0 <21.0.0","@ngx-translate/core":"^16.0.0 || ^17.0.0","@ngx-translate/http-loader":"^16.0.0 || ^17.0.0","@ngrx/store":"^18.0.0 || ^19.0.0 || ^20.0.0","@ngrx/effects":"^18.0.0 || ^19.0.0 || ^20.0.0","ngrx-store-localstorage":"^18.0.0 || ^19.0.0 || ^20.0.0","keycloak-js":">=23.0.0 <27.0.0","rxjs":"~7.8.0","chartjs-adapter-luxon":"^1.0.0","chart.js":"^4.5.0","luxon":"^3.7.1","@ng-draw-flow/core":"^0.17.0"},"peerDependenciesMeta":{"@swimlane/ngx-graph":{"optional":true}},"dependencies":{"tslib":"^2.3.0"},"sideEffects":true,"module":"fesm2022/cadai-pxs-ng-core.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","default":"./fesm2022/cadai-pxs-ng-core.mjs"},"./core":{"types":"./core/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-core.mjs"},"./directives":{"types":"./directives/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-directives.mjs"},"./enums":{"types":"./enums/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-enums.mjs"},"./factories":{"types":"./factories/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-factories.mjs"},"./guards":{"types":"./guards/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-guards.mjs"},"./interceptors":{"types":"./interceptors/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-interceptors.mjs"},"./interfaces":{"types":"./interfaces/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-interfaces.mjs"},"./providers":{"types":"./providers/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-providers.mjs"},"./realtime":{"types":"./realtime/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-realtime.mjs"},"./services":{"types":"./services/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-services.mjs"},"./shared":{"types":"./shared/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-shared.mjs"},"./store":{"types":"./store/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-store.mjs"},"./tokens":{"types":"./tokens/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-tokens.mjs"},"./utils":{"types":"./utils/index.d.ts","default":"./fesm2022/cadai-pxs-ng-core-utils.mjs"}},"_id":"@cadai/pxs-ng-core@1.9.27","description":"> _Last updated: 2025-12-04_","_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-unGGp0O8zRzoRyTZkr4xzKix5iQDfR/O/3Jzm3kb/SdlyNlLRdcsP5aPLVvuWkn3h1M4cPa9EQvKsyTuWyFuUw==","shasum":"39b321e088d910cfeb1b0cad8418578fa36965b2","tarball":"https://registry.npmjs.org/@cadai/pxs-ng-core/-/pxs-ng-core-1.9.27.tgz","fileCount":63,"unpackedSize":1082044,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCzXraNoeGRLulwKA2snOtzqEwBHxVUoUkdkA5t5JJVkgIgIn9uqZI/8rndWH688f9CV1ntxNn+3vIcI2BDLFlvuf4="}]},"_npmUser":{"name":"tarikhdd","email":"t.thaddadi@gmail.com"},"directories":{},"maintainers":[{"name":"tarikhdd","email":"t.thaddadi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pxs-ng-core_1.9.27_1765361893152_0.8853428807389168"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-04T15:33:35.995Z","modified":"2025-12-10T10:18:13.598Z","1.9.26":"2025-12-04T15:33:36.272Z","1.9.27":"2025-12-10T10:18:13.387Z"},"description":"> _Last updated: 2025-12-04_","maintainers":[{"name":"tarikhdd","email":"t.thaddadi@gmail.com"}],"readme":"# BOLT-CORE – Angular 19 CORE (@cadai/psx-ng-core)\n\n> _Last updated: 2025-12-04_\n\n> 🚀 Modern Angular 19 project (Proximus core Angular SDK) with runtime environment configs, standalone components, NgRx state management, dynamic forms, internationalization, and full CI/CD support.\n\n# PxsNgCore\n\nThis project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.1.6.\n\n---\n\n## 🧭 Quick Start for Developers\n\n1. Set up a Keycloak client (Public + PKCE S256) and brokered IdPs if needed.\n2. Update `public/assets/config.dev.json` (`auth.url/realm/clientId`).\n3. `npm start` → app redirects to Keycloak and back.\n4. Verify API calls include Bearer token.\n5. For CSP, start with Report‑Only and review DevTools for violations.\n\n---\n\n## 🧱 Project Overview\n\nThis repository provides a scalable, production-ready **Angular 19** setup using best practices including:\n\n- ✅ **Standalone component architecture**\n- 🌐 **Runtime environment configuration** via `public/assets/config.json`\n- 🔐 **Authentication with Keycloak (Broker, PKCE, iframe‑free)**\n- 🔒 **Strict Content Security Policy (CSP)** compatible with Keycloak (no iframes)\n- 🔄 **NgRx** for reactive global state (Store + Effects + Actions + Selectors + Models)\n- 🧩 **Dynamic Forms** via reusable `FieldConfig` pattern\n- 🌍 **Internationalization** with `@ngx-translate`\n- 🎨 **Angular Material + CDK** UI framework\n- 🐳 **Docker + Nginx** with runtime-templated CSP\n- 🦾 **CI/CD** examples (Azure Pipelines & GitLab CI)\n\n---\n\n## 📐 Features Used\n\n- ✅ **Angular 19 Standalone APIs**\n- ✅ **NgRx** for scalable and reactive global state\n- ✅ **Reactive Forms** with dynamic schema rendering\n- ✅ **Internationalization (i18n)** via `@ngx-translate`\n- ✅ **Angular Material** UI with responsive layout\n- ✅ **Signal-based ThemeService** Theming\n- ✅ Integrated **Toasts**, **Dialogs**, and **Tooltips**\n- ✅ Integrated Custom **Forms** Builder and custom reusable **Fields**\n- ✅ Strict **TypeScript** config (`strict: true`) with ESLint\n- ✅ **CI/CD-ready** with Azure Pipelines & GitLab CI support\n\n## 6. 📥 Consuming the Library in Apps\n\nIn any Angular app:\n\n```bash\nnpm install @cadai/pxs-ng-core\n```\n\nSince `.npmrc` is already configured, npm resolves it via the Azure feed.\n\n---\n\n## 📦 Dependencies\n\n### Framework & Core\n\n- **Angular 19** (`@angular/core`, `@angular/common`, etc.)\n- **Standalone APIs** (`bootstrapApplication`, `ApplicationConfig`)\n- **RxJS 7.8**\n\n### UI & Layout\n\n- `@angular/material` – Material Design UI components\n- `@angular/cdk` – Layout utilities\n- `@angular/flex-layout` – Responsive layout engine\n\n### State Management\n\n- `@ngrx/store`, `@ngrx/effects`, `@ngrx/store-devtools`\n- `ngrx-store-localstorage` – persistent global state\n\n### Forms & UX\n\n- **Reactive Forms**\n- **Custom DynamicFormComponent**\n- `FieldConfigService` for reusable, schema-based field configuration\n\n### Internationalization (i18n)\n\n- `@ngx-translate/core`\n- `@ngx-translate/http-loader`\n\n## 📁 Project Structure Highlights\n\nThis library follows an opinionated but consistent structure to keep features isolated and exports predictable.  \nBelow is an overview of the main directories and their responsibilities:\n\n---\n\n### Root\n\n- **ng-package.json** – Configuration for `ng-packagr`, defines build output for the library.\n- **package.json** – Library metadata, dependencies, scripts, version (used for CI/CD tagging).\n- **tsconfig.\\*.json** – TypeScript configs for library, production build, and tests.\n- **README.md** – Project overview and contributor guide.\n\n---\n\n### `core/`\n\n- **core.ts** – Core entry point logic and root exports.\n- **index.ts** – Barrel file re-exporting everything in `core`.\n- **public-api.ts** – Public surface of the `core` module.\n- **ng-package.json** – Packaging config for this submodule.\n\n---\n\n### `enums/`\n\n- **roles.enum.ts** – Application role definitions (e.g., `ROLE_admin`, `ROLE_user`).\n- **index.ts / public-api.ts** – Barrels to make enums available via `@cadai/pxs-ng-core/enums`.\n\n---\n\n### `guards/`\n\n- **auth.guard.ts** – Route guard for authentication and role-based access.\n- **index.ts / public-api.ts** – Export guard(s) to consumers.\n\n---\n\n### `interceptors/`\n\n- **auth.interceptor.ts** – Injects tokens into HTTP requests.\n- **http-error.interceptor.ts** – Global HTTP error handling.\n- **index.ts / public-api.ts** – Exports interceptors.\n\n---\n\n### `interfaces/`\n\n- **field-config.model.ts** – Schema used by the dynamic forms system.\n- **auth.model.ts, user.model.ts, team-management.model.ts** – Domain models.\n- **app.model.ts, core.interface.ts, keycloak.model.ts** – Core interface definitions.\n- **index.ts / public-api.ts** – Export all interfaces.\n\n---\n\n### `services/`\n\n- **config.service.ts** – Runtime environment configuration loader.\n- **date-formats.ts** – Date adapters and format providers for Angular Material.\n- **field-config.service.ts** – Utilities for dynamic form configuration.\n- **http.service.ts** – Abstraction on top of Angular HttpClient.\n- **keycloak.service.ts** – Keycloak auth integration (login, refresh, logout).\n- **layout.service.ts** – State/control for global layout (side nav, theme, etc.).\n- **theme.service.ts** – Dark/light theme switching.\n- **toast.service.ts** – UI notifications.\n- **user.service.ts** – User API integration.\n- **index.ts / public-api.ts** – Barrel exports.\n\n---\n\n### `shared/`\n\n- **index.ts / public-api.ts** – Shared exports (UI and utilities).\n- **CONTRIBUTING.md** – Contribution guide for shared components.\n- **README-FORMS.md** – Documentation for the dynamic form system.\n\n#### Subfolders:\n\n- **forms/** – Dynamic form engine\n  - `dynamic-form.component.ts/html/scss` – Main dynamic form container.\n  - `field-host/field-host.component.ts` – Resolves a field config to its UI component dynamically.\n  - `fields/` – Library of input components (`text-input`, `chips`, `select`, `datepicker`, `toggle`, etc.).\n- **dialog/** – Reusable dialog component.\n- **layout/** – Application layout wrapper (header, sidenav, content).\n- **seo/** – SEO meta component for setting `<title>` and meta tags.\n\n---\n\n### `store/`\n\n- **app.actions.ts / app.reducer.ts / app.effects.ts / app.selectors.ts** – Root NgRx store setup.\n- **features/** – Feature-based state slices:\n  - `auth/` – Auth-related actions, reducer, effects, selectors.\n  - `user/` – User-related store logic.\n  - `team-management/` – Team management state slice.\n- **index.ts / public-api.ts** – Export NgRx store setup.\n\n---\n\n### `tokens/`\n\n- **core-options.token.ts** – Angular `InjectionToken` for providing global core options.\n- **index.ts / public-api.ts** – Token exports.\n\n---\n\n### `utils/`\n\n- **form-validators.ts** – Reusable validators for dynamic forms.\n- **index.ts / public-api.ts** – Utility exports.\n\n---\n\n### `src/`\n\n- **public-api.ts** – Global entry point of the SDK.\n- **CONTRIBUTING.md** – Contribution guide at the library root.\n\n---\n\n## 🧭 Conventions\n\n- **Barrels (`index.ts` / `public-api.ts`)**  \n  Every folder has an `index.ts` and/or `public-api.ts` that re-exports symbols. Always import from the SDK root (`@cadai/pxs-ng-core/...`) instead of deep paths.\n- **Ng-Packagr configs**  \n  Each subfolder is its own entry-point with its own `ng-package.json`. This ensures consumers can tree-shake and only import what they need.\n- **Dynamic Form system**  \n  New form fields must be declared inside `shared/forms/fields`, exported in its local `index.ts`, and mapped inside `field-host.component.ts`.\n\n## 🎯 Project Roadmap – Ordered Checklist (Angular 19 + NgRx + Keycloak)\n\n> _Last updated: 2025-08-22_\n\nLegend: **✅ Done** · **🟡 In progress** · **❌ To do**  \nSeverity: **P0 Critical**, **P1 High**, **P2 Medium**, **P3 Low**  \nWorkload (est.): **S ≤1d**, **M 2–3d**, **L 4–7d**, **XL >1wk**\n\n> Update **Status**, **Owner**, and **Next Actions** as you progress. Add links to PRs or wiki when relevant.\n\n## ✅ Summary Table (Done → In Progress → To Do)\n\n| Category | Item                                                                                 | Status | Severity | Workload | Summary                                                                                                                        | Key Files / Paths                                                                                      | Next Actions                                              | Owner |\n| -------- | ------------------------------------------------------------------------------------ | -----: | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- | ----- |\n| Core     | Barrels and config                                                                   |     ✅ | P1       | XL       | App uses standalone components, strict TS/ESLint. Also imports are done via barels `@cadai/pxs-ng-core/*`                      | `See core repository on Azure actifacts https://dev.azure.com/cadai/Socle/_artifacts/feed/PXS-NG-CORE` | —                                                         | FE    |\n| Core     | Theming                                                                              |     ✅ | P2       | XL       | Customize app theming by providing primary, secondary, error, success, infor, danger,etc.. colors `*.scss*`                    | `See theming docs`                                                                                     | to be implement                                           | FE    |\n| Core     | CI/CD                                                                                |     ✅ | P1       | M        | Automatic builds and deployments + Bumping versions                                                                            | `azure-pipelines.ylm`                                                                                  | -------                                                   | FE    |\n| Core     | TS linter                                                                            |     ✅ | P1       | S        | Lint implementation to prevent from committing unsecure scripts + lint bfrore commit                                           | `husky`                                                                                                | --                                                        | FE    |\n| Core     | Pre-commit Lints all over the project                                                |     ✅ | P1       | S        | use ling before commit                                                                                                         | `husky`                                                                                                | -----                                                     | FE    |\n| Core     | Versionning                                                                          |     ✅ | P1       | S        | Auto upgrade version by bumping a Tag and pushing it when commiting a new release + creating a release note + CI/CD            | ---                                                                                                    |                                                           | FE    |\n| Core     | Storybook                                                                            |     ❌ | P2       | XL       | Storybook implementation for every custom component in the app                                                                 | `projects/core/shared/*`                                                                               | TO BE IMPLEMENTED                                         | FE    |\n| Core     | Theme , Ai Selectors and LangSwitchers should be persisted                           |     ✅ | P2       | s        | Persist data in the Store NGRX                                                                                                 | `projects/core/store/*`                                                                                | TO BE IMPLEMENTED                                         | FE    |\n| Core     | Dynamic Workflow Builder                                                             |     ✅ | P2       | M        | Build flows using Swimlane charts or similar                                                                                   | `projects/core/shared/charts/*`                                                                        | TO BE IMPLEMENTED                                         | FE    |\n| Core     | Smart Tables                                                                         |     ✅ | P1       | M        | Display Tables with different types and fully customizable + includes HTTP requests for paginationg or querying data on search | `projects/core/shared/smart-table/*`                                                                   | TO BE IMPLEMENTED                                         | FE    |\n| Core     | Charts                                                                               |     ✅ | P1       | M        | Display charts using D3 js or chartsJs or similar                                                                              | `projects/core/shared/*`                                                                               | TO BE IMPLEMENTED                                         | FE    |\n| Core     | Typings `<any>` to be correctly typed + Linter enhanced also                         |     ✅ | P2       | M        | ------                                                                                                                         | see `REAMD-ENV-CONFIG-UPGRADE-V2-BFF`                                                                  | TO BE IMPLEMENTED                                         | FE    |\n| Core     | ngFor and ngIf to be removed and replaced with the new implementations of Angular 19 |     ✅ | P2       | M        | -------                                                                                                                        | see `REAMD-ENV-CONFIG-UPGRADE-V2-BFF`                                                                  | TO BE IMPLEMENTED                                         | FE    |\n| Core     | Env Vars                                                                             |     ✅ | P1       | XL       | Adapt the ENV configuration multitenant and multi feature                                                                      | `REAMD-ENV-CONFIG-ASIS`                                                                                | ---                                                       | FE    |\n| Core     | Docs                                                                                 |     ✅ | P1       | M        | ---                                                                                                                            | ---                                                                                                    | Inprogress                                                | FE    |\n| Forms    | Validators (custom + built-in)                                                       |     ✅ | P2       | M        | Email TLD, password strength, phone digits, etc.                                                                               | `projects/core/utils/form-validators.ts`                                                               | —                                                         | FE    |\n| Forms    | Dynamic Forms system                                                                 |     ✅ | P2       | L        | `FieldConfigService`, `DynamicFormComponent`, `FieldHostComponent`,`field-config.service.ts`.                                  | `projects/core/shared/forms/**` (Barrels system)                                                       | Need to customize the inputs of different field generator | FE    |\n| Core     | Responsiveness                                                                       |     ❌ | P3       | M        | Make all components responsive and flexible.                                                                                   | `styles`                                                                                               | Enable Responsive mode for menus, etc...                  | FE    |\n| Core     | PWA Mode (optional)                                                                  |     ❌ | P3       | M        | Offline shell + asset caching.                                                                                                 | `ngsw-config.json`, `manifest.webmanifest`                                                             | Enable PWA; exclude auth routes from cache                | FE    |\n| Core     | RuntimeConfig                                                                        |     ✅ | P2       | M        | Make modules Optional and only run if provided by the RUntime cofnog.                                                          | `projects/core/core/core.ts`                                                                           | Enable custom config                                      | FE    |\n| UI       | Luxon Date formatting                                                                |     ✅ | P2       | s        | Include Luxon to manage all dates                                                                                              | `utils/**`                                                                                             | customize dates display and management                    | FE    |\n\n## 📃 Documentation Index\n\nLegend: **✅ Done** · **🟡 Ongoing** · **❌ To do**\n\n- [[✅] - Global Readme](./README.md)\n- [[✅] - App Layout component](./docs/README-LAYOUT.md)\n- [[✅] - Theming, Assets and translattions](./docs/README-ASSETS-TRANSLATIONS.md)\n- [[✅] - Theming colors ](./docs/README-THEMING.md)\n- [[✅] - Contribution Guide](./CONTRIBUTING.md)\n- [[✅] - Custom Form Builder and custom fields](projects/core/shared/README.md)\n- [[✅] - Contributing on Forms Core](projects/core/shared/CONTRIBUTING.md)\n- [[✅] - Workflow Builder and Flow charts](./docs/README-WORKFLOWBUILDER.md)\n- [[✅] - SmartTables](./docs/README-SmartTables.md)\n- [[✅] - Graphs and Charts](./docs/ChartsJs.md)\n- [[✅] - Authentication and NGRX state management](./projects/core/store/README.md)\n- [[✅] - Authentication Flow](./docs/README-CURRENT-AUTH.md)\n- [[✅] - Security Posture & Migration Plan – SPA](./docs/README-SECURITY.md)\n- [[✅] - Environment Config Custom AS IS](./docs/README-ENV-CONFIG-ASIS.md)\n- [[🟡] - Content Security Policy CSP](./docs/README-CSP.md)\n\n## 🧑‍💻 Author\n\n**Angular Product Skeleton**  \nBuilt by **Tarik Haddadi** using Angular 19+and modern best practices (2025).\n","readmeFilename":"README.md"}