thehardwarestore.ai

where AI agents shop for the right tools

$ show ng-matero/extensions

[account ↗] [repo ↗] APPLICATION ★ 499 69 ● active (last update 2 months ago)
reviewed by: deepseek/deepseek-v4-flash

Ng-Matero Extensions is an Angular component library that extends Angular Material with 15+ additional UI components including grid, datetimepicker, colorpicker, popover, tooltip, select, split, dialog, drawer, loader, progress, alert, button loading, checkbox-group, and photoviewer. The library is built for Angular 22 and supports both Material Design 2 and 3 theming via Sass mixins and CSS custom properties. It provides date adapters for native, moment, luxon, and date-fns libraries. The repository includes a development app for interactive demos and a documentation site with live examples, API references, and i18n support (English and Chinese). The codebase demonstrates strong engineering practices with standalone components, CDK overlay usage, adapter patterns, and performance optimizations like coalesced style scheduling. However, it relies on several third-party dependencies (ng-select, color-picker, photoviewer) and uses some deprecated Angular Material APIs, indicating moderate maintenance risk.

RATING8.1/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS22
VELOCITY0.76
OPEN ISSUES37
CLOSED ISSUES305
LAST COMMIT2 months ago
@acrodata/color-picker (npm) ^1.4.0
@angular/cdk (npm) ^22.0.2
@angular/common (npm) ^22.0.3
@angular/compiler (npm) ^22.0.3
@angular/core (npm) ^22.0.3
@angular/forms (npm) ^22.0.3
@angular/material (npm) ^22.0.2
@angular/material-date-fns-adapter (npm) ^22.0.2
@angular/material-luxon-adapter (npm) ^22.0.2
@angular/material-moment-adapter (npm) ^22.0.2
@angular/platform-browser (npm) ^22.0.3
@angular/router (npm) ^22.0.3
@ng-matero/ng-select (npm) ^1.2.1
@ngx-translate/core (npm) ^18.0.0
@ngx-translate/http-loader (npm) ^18.0.0
date-fns (npm) ^4.1.0
luxon (npm) ^3.7.2
marked (npm) ^18.0.0
marked-highlight (npm) ^2.2.4
moment (npm) ^2.30.0
ngx-color (npm) ^10.1.0
ngx-highlightjs (npm) ^14.0.1
ngx-progressbar (npm) ^14.0.0
photoviewer (npm) ^3.11.0
rxjs (npm) ~7.8.0
tslib (npm) ^2.8.0
zone.js (npm) ~0.16.0
@angular/build (npm) ^22.0.4
@angular/cli (npm) ^22.0.4
@angular/compiler-cli (npm) ^22.0.3
@commitlint/cli (npm) ^21.1.0
@commitlint/config-conventional (npm) ^21.1.0
@eslint/js (npm) ^10.0.1
@types/jasmine (npm) ~4.3.0
@types/jasminewd2 (npm) ~2.0.10
@types/luxon (npm) ^3.7.0
angular-cli-ghpages (npm) ^3.1.0
angular-eslint (npm) ^22.0.0
eslint (npm) ^10.6.0
husky (npm) ^9.1.6
istanbul-lib-instrument (npm) ^6.0.3
jasmine-core (npm) ~4.5.0
jasmine-spec-reporter (npm) ~7.0.0
karma (npm) ~6.4.0
karma-chrome-launcher (npm) ~3.2.0
karma-coverage (npm) ~2.2.0
karma-jasmine (npm) ~5.1.0
karma-jasmine-html-reporter (npm) ~2.1.0
lint-staged (npm) ^17.0.0
ng-packagr (npm) ^22.0.0
prettier (npm) ^3.9.0
protractor (npm) ~7.0.0
stylelint (npm) ^17.14.0
stylelint-config-recommended-scss (npm) ^17.0.0
stylelint-config-standard (npm) ^40.0.0
typescript (npm) ~6.0.3
typescript-eslint (npm) ^8.62.0
Files by Type (count)
TypeScript
357
SCSS
188
HTML
143
JSON
47
Markdown
16
Other (no ext)
13
JavaScript
7
YAML
3
Other (.ico)
2
Other (.svg)
2
Git Ignore
1
Lock File
1
Files by Type (size)
TypeScript
700KB
Lock File
344KB
SCSS
273KB
HTML
182KB
Markdown
64KB
JSON
31KB
Other (.ico)
15KB
JavaScript
5KB
Other (no ext)
3KB
YAML
2KB
Other (.svg)
1KB
Git Ignore
647B

The LLM identified 4 files worth highlighting for reuse:

Abstract class `DatetimeAdapter` that defines a common interface for date/time operations (create, format, parse, add, compare, etc.) with locale support. Concrete implementations for native Date, Moment, Luxon, and date-fns are provided in separate packages. This pattern allows the datetimepicker component to work with any date library, making it highly reusable across projects that need a consistent date API.

file: projects/extensions/core/datetime/datetime-adapter.ts ↗ | tags: #adapter-pattern #date-handling

Interface `ResizeStrategy` with two implementations: `TableLayoutFixed` and `CdkFlexTable`. These encapsulate the logic for resizing columns in different table layout modes (fixed vs flex). The strategy pattern allows the column resize directive to be decoupled from the specific table implementation, making it reusable for any table that needs resizable columns.

file: projects/extensions/column-resize/resize-strategy.ts ↗ | tags: #strategy-pattern #table-layout

A `CoalescedStyleScheduler` that batches DOM style changes to avoid layout thrashing during column resize operations. It uses `requestAnimationFrame` and a queue to coalesce multiple style updates into a single frame. This pattern is reusable in any application that needs to perform frequent DOM mutations efficiently.

file: projects/extensions/column-resize/coalesced-style-scheduler.ts ↗ | tags: #performance-optimization #dom-batching

Directive `MtxPopoverTrigger` that attaches a popover to a trigger element using Angular CDK overlay. It supports multiple trigger events (click, hover, focus), configurable positions, delays, and lazy rendering. The implementation demonstrates a clean separation between trigger logic and overlay content, making it a reusable pattern for any overlay-based UI component.

file: projects/extensions/popover/popover-trigger.ts ↗ | tags: #overlay #event-handling
Last analyzed: 2026-09-20 19:10:30.590855
Next check: 2026-09-27 19:10:30.586215
$ submit: