diff --git a/src/index.ts b/src/index.ts index 7935743..eb1440a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -27,3 +27,5 @@ export * from './lib/tables/listing-component.directive'; export * from './lib/tables/models/table-column-config.model'; export * from './lib/tables/table-column-name/table-column-name.component'; export * from './lib/tables/table-header/table-header.component'; +export * from './lib/misc/status-bar/status-bar.component'; +export * from './lib/misc/status-bar/status-bar-config.model'; diff --git a/src/lib/common-ui.module.ts b/src/lib/common-ui.module.ts index 2c7bdb6..6151362 100644 --- a/src/lib/common-ui.module.ts +++ b/src/lib/common-ui.module.ts @@ -15,6 +15,7 @@ import { QuickFiltersComponent } from './filtering/quick-filters/quick-filters.c import { TableHeaderComponent } from './tables/table-header/table-header.component'; import { TranslateModule } from '@ngx-translate/core'; import { SyncWidthDirective } from './tables/sync-width.directive'; +import { StatusBarComponent } from './misc/status-bar/status-bar.component'; const buttons = [IconButtonComponent, ChevronButtonComponent, CircleButtonComponent]; @@ -24,7 +25,7 @@ const matModules = [MatIconModule, MatButtonModule, MatTooltipModule]; const modules = [...matModules, TranslateModule]; -const components = [...buttons, ...inputs, TableColumnNameComponent, QuickFiltersComponent, TableHeaderComponent]; +const components = [...buttons, ...inputs, TableColumnNameComponent, QuickFiltersComponent, TableHeaderComponent, StatusBarComponent]; const utils = [SortByPipe, HumanizePipe, SyncWidthDirective]; diff --git a/src/lib/misc/status-bar/status-bar-config.model.ts b/src/lib/misc/status-bar/status-bar-config.model.ts new file mode 100644 index 0000000..97d05cc --- /dev/null +++ b/src/lib/misc/status-bar/status-bar-config.model.ts @@ -0,0 +1,6 @@ +export interface StatusBarConfig { + readonly length: number; + readonly color: T; + readonly label?: string; + readonly cssClass?: string; +} diff --git a/src/lib/misc/status-bar/status-bar.component.html b/src/lib/misc/status-bar/status-bar.component.html new file mode 100644 index 0000000..a63036c --- /dev/null +++ b/src/lib/misc/status-bar/status-bar.component.html @@ -0,0 +1,11 @@ +
+
+
+
{{ config.label }}
+
+
diff --git a/src/lib/misc/status-bar/status-bar.component.scss b/src/lib/misc/status-bar/status-bar.component.scss new file mode 100644 index 0000000..e1c08b4 --- /dev/null +++ b/src/lib/misc/status-bar/status-bar.component.scss @@ -0,0 +1,44 @@ +.rectangle-container { + flex: 1; + display: flex; + width: 100%; + min-width: 12px; + + &.small { + .rectangle { + width: 12px; + min-width: 12px; + } + + .section-wrapper { + display: flex; + align-items: center; + + > *:not(:last-child) { + margin-right: 10px; + } + } + } + + .section-wrapper:first-child { + .rectangle { + border-radius: 6px 0 0 6px; + } + } + + .section-wrapper:last-child { + .rectangle { + border-radius: 0 6px 6px 0; + } + + &:first-child { + .rectangle { + border-radius: 6px; + } + } + } + + .rectangle { + height: 6px; + } +} diff --git a/src/lib/misc/status-bar/status-bar.component.ts b/src/lib/misc/status-bar/status-bar.component.ts new file mode 100644 index 0000000..80001ee --- /dev/null +++ b/src/lib/misc/status-bar/status-bar.component.ts @@ -0,0 +1,14 @@ +import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core'; +import { StatusBarConfig } from './status-bar-config.model'; + +@Component({ + selector: 'iqser-status-bar', + templateUrl: './status-bar.component.html', + styleUrls: ['./status-bar.component.scss'], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class StatusBarComponent { + @Input() configs: readonly StatusBarConfig[] = []; + @Input() small = false; +}