45 lines
2.1 KiB
TypeScript
45 lines
2.1 KiB
TypeScript
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`));
|
|
}
|
|
}
|
|
}
|