import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { IconButtonComponent } from './buttons/icon-button/icon-button.component'; import { MatIconModule, MatIconRegistry } from '@angular/material/icon'; import { MatButtonModule } from '@angular/material/button'; import { ChevronButtonComponent } from './buttons/chevron-button/chevron-button.component'; import { DomSanitizer } from '@angular/platform-browser'; import { CircleButtonComponent } from './buttons/circle-button/circle-button.component'; import { MatTooltipModule } from '@angular/material/tooltip'; import { RoundCheckboxComponent } from './inputs/round-checkbox/round-checkbox.component'; import { SortByPipe } from './sorting/sort-by.pipe'; import { HumanizePipe } from './utils/pipes/humanize.pipe'; import { TableColumnNameComponent } from './tables/table-column-name/table-column-name.component'; import { QuickFiltersComponent } from './filtering/quick-filters/quick-filters.component'; import { TableHeaderComponent } from './tables/table-header/table-header.component'; import { TranslateModule } from '@ngx-translate/core'; import { SyncWidthDirective } from './tables/sync-width.directive'; const buttons = [IconButtonComponent, ChevronButtonComponent, CircleButtonComponent]; const inputs = [RoundCheckboxComponent]; const matModules = [MatIconModule, MatButtonModule, MatTooltipModule]; const modules = [...matModules, TranslateModule]; const components = [...buttons, ...inputs, TableColumnNameComponent, QuickFiltersComponent, TableHeaderComponent]; const utils = [SortByPipe, HumanizePipe, SyncWidthDirective]; @NgModule({ declarations: [...components, ...utils], imports: [CommonModule, ...modules], exports: [...components, ...utils, ...modules] }) export class CommonUiModule { constructor(private readonly _iconRegistry: MatIconRegistry, private readonly _sanitizer: DomSanitizer) { const icons = ['arrow-down', 'sort-asc', 'sort-desc']; for (const icon of icons) { _iconRegistry.addSvgIconInNamespace('iqser', icon, _sanitizer.bypassSecurityTrustResourceUrl(`/assets/icons/${icon}.svg`)); } } }