{"id":51820517,"url":"https://github.com/VaggelisKa/angular-advanced-table","last_synced_at":"2026-07-24T14:00:36.954Z","repository":{"id":351410767,"uuid":"1210864884","full_name":"VaggelisKa/angular-advanced-table","owner":"VaggelisKa","description":null,"archived":false,"fork":false,"pushed_at":"2026-07-14T19:56:18.000Z","size":2661,"stargazers_count":0,"open_issues_count":6,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-14T21:28:06.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://angular-advanced-table.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VaggelisKa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-14T20:46:12.000Z","updated_at":"2026-07-14T19:56:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/VaggelisKa/angular-advanced-table","commit_stats":null,"previous_names":["vaggeliska/angular-advanced-table"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/VaggelisKa/angular-advanced-table","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VaggelisKa%2Fangular-advanced-table","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VaggelisKa%2Fangular-advanced-table/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VaggelisKa%2Fangular-advanced-table/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VaggelisKa%2Fangular-advanced-table/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VaggelisKa","download_url":"https://codeload.github.com/VaggelisKa/angular-advanced-table/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VaggelisKa%2Fangular-advanced-table/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35844578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-24T02:00:07.870Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-22T05:00:25.535Z","updated_at":"2026-07-24T14:00:36.939Z","avatar_url":"https://github.com/VaggelisKa.png","language":"TypeScript","funding_links":[],"categories":["Third Party Components"],"sub_categories":["Data Grids"],"readme":"# Angular Advanced Table\n\nA monorepo containing `ng-advanced-table`, a signals-first, accessible data table library for Angular, plus its showcase/documentation site.\n\n## What is ng-advanced-table?\n\n`ng-advanced-table` is a production-ready Angular table built on [TanStack Table](https://tanstack.com/table/latest/docs/framework/angular/angular-table). It provides:\n\n- Core primitives (`NatTable`, `NatTableService`, state management, keyboard/a11y, resizing, reordering, etc.)\n- Composable companion UI via subpath imports (`ng-advanced-table/components`)\n- Optional render metrics, filtering, and synthetic columns (`ng-advanced-table/render-metrics`)\n- Full i18n and locale customization (`ng-advanced-table/locale`)\n\nEverything ships in **one package** using secondary entry points (same pattern as Angular CDK). The library emphasizes accessibility (WCAG AA + axe), theming via CSS custom properties, and clear ownership boundaries between the table and consuming applications.\n\nSee the package's own `libs/ng-advanced-table/README.md` for install and API details. Full usage guides and live demos live in the showcase documentation.\n\n## Project Structure\n\n```\n.\n├── AGENTS.md                 # Mandatory reading for contributors (rules, layering, release process)\n├── CONTEXT.md                # Project terminology and domain language\n├── apps/\n│   └── showcase/             # The documentation site + gallery + live examples\n│       ├── public/docs/      # Markdown source for all Documentation Topics\n│       └── src/app/docs/     # Angular components that render docs + embedded demos\n├── libs/\n│   └── ng-advanced-table/    # The published library (single package, multiple entry points)\n│       ├── src/              # Core: table component, state, services, utils, a11y, hotkeys\n│       ├── components/       # Composable UI (surface, toolbar, pagination, selection, etc.)\n│       ├── render-metrics/   # Metrics store + filter/panel components\n│       ├── locale/           # Locale data + provide*Locales() helpers\n│       └── testing/          # Internal test-only type mirror (never published)\n├── e2e/                      # Playwright end-to-end + keyboard/a11y specs\n├── docs/\n│   ├── adr/                  # Architecture decision records\n│   └── specs/                # Design specs for upcoming or complex features\n├── tools/                    # Build-time generators (docs, discovery, packaging)\n├── package.json              # Root scripts (all use pnpm + Nx)\n└── pnpm-workspace.yaml       # Dependency catalogs + workspace configuration\n```\n\n### Layering Notes (high level)\n\n- The library enforces strict entry-point boundaries (`core` → companions → `locale` is a leaf). Cross-entry imports are linted and will break the build.\n- Inside the library, code is organized by \"element layers\" (`feature`, `domain-logic`, `ui`, `utils`, `common`) with directional import rules enforced by `eslint-plugin-boundaries`.\n- Read the full rules in **AGENTS.md** (sections: Entry-Point Layering, Element Layering).\n\n## Common Commands\n\nAll commands run from the repository root:\n\n| Command                   | Description                                                            |\n| ------------------------- | ---------------------------------------------------------------------- |\n| `pnpm install`            | Install dependencies (uses pnpm + Corepack)                            |\n| `pnpm start`              | Serve the showcase docs site for local development                     |\n| `pnpm run build:packages` | Build the `ng-advanced-table` library                                  |\n| `pnpm run build:showcase` | Build the showcase (runs doc generators)                               |\n| `pnpm test`               | Run all unit tests (library + showcase)                                |\n| `pnpm run e2e`            | Run Playwright e2e + a11y tests                                        |\n| `pnpm run lint`           | Lint everything                                                        |\n| `pnpm run format:check`   | Check Prettier formatting (required before merge)                      |\n| `pnpm run verify`         | Full verification (MCP security + builds + prerender + release + pack) |\n\n## Working on the Project\n\n- **Library source changes**: Edit under `libs/ng-advanced-table/`. Pay attention to which entry point a file belongs to.\n- **Documentation**: Edit Markdown under `apps/showcase/public/docs/`. After changes, the showcase build runs `generate-docs`. Do not edit generated files directly.\n- **Examples and gallery**: Live demos live in `apps/showcase/src/app/docs/demos/` and `apps/showcase/src/app/gallery/`.\n- **Tests**: Co-located `*.spec.ts` for units. E2E specs live in `e2e/\u003cfeature\u003e/` (include `.a11y.e2e.ts` for keyboard coverage).\n- **Release plans**: Most changes that touch library behavior, public API, docs, or tests require a new file in `.nx/version-plans/`. See AGENTS.md.\n\n## Guidelines\n\n**Read `AGENTS.md` first.** It is the authoritative source for:\n\n- Release workflow and when to create version plans\n- Workspace tooling (pnpm only, catalog versions, format/lint before merge)\n- Strict architectural rules (entry points, element layers, package boundaries)\n- Documentation ownership (showcase docs are the source of truth)\n- Angular conventions, accessibility requirements, testing style, and browser support targets\n\nOther useful files:\n\n- `CONTEXT.md` — canonical terminology used across the project and docs.\n- `skills/nat-best-practises/` — guidance for AI/agent usage of the library.\n\nLicensed under [MIT](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVaggelisKa%2Fangular-advanced-table","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVaggelisKa%2Fangular-advanced-table","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVaggelisKa%2Fangular-advanced-table/lists"}