@mosa-ng/material 20.1.1 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/mosa-ng-material.mjs +1046 -3
- package/fesm2022/mosa-ng-material.mjs.map +1 -1
- package/package.json +3 -3
- package/types/mosa-ng-material.d.ts +322 -0
- package/index.d.ts +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mosa-ng-material.mjs","sources":["../../../../projects/material/src/lib/provider.ts","../../../../projects/material/src/mosa-ng-material.ts"],"sourcesContent":["import { AssetsI18nLoaderService } from '@mosa-ng/core';\nimport { EnvironmentProviders, inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\n\nfunction initI18n(i18n: AssetsI18nLoaderService): Promise<void> {\n return i18n.init(undefined, 'mosa');\n}\n\nexport const provideMosaMaterial: () => EnvironmentProviders = () => makeEnvironmentProviders([\n provideAppInitializer(() => initI18n(inject(AssetsI18nLoaderService))),\n]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAGA,SAAS,QAAQ,CAAC,IAA6B,EAAA;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;AACvC;MAEa,mBAAmB,GAA+B,MAAM,wBAAwB,CAAC;IAC1F,qBAAqB,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACzE,CAAA;;ACTD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"mosa-ng-material.mjs","sources":["../../../../projects/material/src/lib/components/alert-widget/alert.widget.ts","../../../../projects/material/src/lib/components/alert-widget/alert.widget.html","../../../../projects/material/src/lib/models/confirm-dialog.model.ts","../../../../projects/material/src/lib/components/confirm-dialog/confirm.dialog.ts","../../../../projects/material/src/lib/components/confirm-dialog/confirm.dialog.html","../../../../projects/material/src/lib/components/base/cell-editor.base.component.ts","../../../../projects/material/src/lib/components/cell-editor/cell-editor.component.ts","../../../../projects/material/src/lib/components/cell-editor/cell-editor.component.html","../../../../projects/material/src/lib/components/loading-button/loading-button.component.ts","../../../../projects/material/src/lib/components/loading-button/loading-button.component.html","../../../../projects/material/src/lib/services/facades/logger.facade.ts","../../../../projects/material/src/lib/components/logger/logger.component.ts","../../../../projects/material/src/lib/components/logger/logger.component.html","../../../../projects/material/src/lib/models/skeleton.model.ts","../../../../projects/material/src/lib/components/skeleton-loader/skeleton/skeleton.component.ts","../../../../projects/material/src/lib/components/skeleton-loader/skeleton/skeleton.component.html","../../../../projects/material/src/lib/components/skeleton-loader/base.skeleton-loader.ts","../../../../projects/material/src/lib/components/skeleton-loader/list-skeleton-loader/list.skeleton-loader.ts","../../../../projects/material/src/lib/components/skeleton-loader/list-skeleton-loader/list.skeleton-loader.html","../../../../projects/material/src/lib/components/skeleton-loader/table-skeleton-loader/table.skeleton-loader.ts","../../../../projects/material/src/lib/components/skeleton-loader/table-skeleton-loader/table.skeleton-loader.html","../../../../projects/material/src/lib/components/update-dialog/mat-update-dialog/mat-update.dialog.ts","../../../../projects/material/src/lib/components/update-dialog/mat-update-dialog/mat-update.dialog.html","../../../../projects/material/src/lib/models/update-config.model.ts","../../../../projects/material/src/lib/components/update-dialog/update.dialog.ts","../../../../projects/material/src/lib/services/cell-editor.service.ts","../../../../projects/material/src/lib/directives/cell-editor.directive.ts","../../../../projects/material/src/lib/directives/click-outside.directive.ts","../../../../projects/material/src/lib/services/logger.service.ts","../../../../projects/material/src/lib/provider.ts","../../../../projects/material/src/mosa-ng-material.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'mosa-alert-widget',\n templateUrl: './alert.widget.html',\n styleUrls: [ './alert.widget.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ MatIcon ],\n})\nexport class AlertWidget implements OnInit, OnChanges {\n\n @Input()\n public icon: string | undefined;\n\n @Input()\n public title: string | undefined;\n\n @Input()\n public message: string | undefined;\n\n @Input()\n public type: 'warning' | 'error' | 'info' | 'success' | undefined;\n\n constructor() {\n }\n\n public ngOnInit(): void {\n this.updateData();\n }\n\n public ngOnChanges(_changes: SimpleChanges): void {\n this.updateData();\n }\n\n private updateData(): void {\n if (!this.title || !this.icon) {\n switch (this.type) {\n case 'error':\n this.icon ||= 'alert-circle-outline';\n this.title ||= 'Error';\n break;\n case 'info':\n this.icon ||= 'information-outline';\n this.title ||= 'Information';\n break;\n case 'success':\n this.icon ||= 'check';\n this.title ||= 'Success';\n break;\n case 'warning':\n this.icon ||= 'alert-outline';\n this.title ||= 'Warning';\n break;\n default:\n this.icon ||= 'information-outline';\n this.title ||= 'Alert';\n break;\n }\n }\n }\n\n}\n","<div [class]=\"'alert-' + type\" class=\"alert\">\n <div class=\"icon\">\n <mat-icon>icon</mat-icon>\n {{ title }}\n </div>\n <div>{{ message }}</div>\n</div>\n","// eslint-disable-next-line max-classes-per-file\nexport enum ConfirmDialogResult {\n confirmed,\n denied,\n cancelled,\n}\n\nexport class ConfirmDialogAction {\n\n public icon: string | undefined;\n public visible: boolean | undefined;\n public label: string;\n\n constructor(label: string, visible?: boolean) {\n this.label = label;\n this.visible = visible;\n }\n}\n\nexport class ConfirmDialogData {\n\n public title: string | undefined;\n public message: string | undefined;\n public cancel: ConfirmDialogAction | undefined;\n public confirm: ConfirmDialogAction | undefined;\n public deny: ConfirmDialogAction | undefined;\n\n constructor(title?: string, message?: string, cancel?: ConfirmDialogAction, confirm?: ConfirmDialogAction, deny?: ConfirmDialogAction) {\n this.title = title;\n this.message = message;\n this.cancel = cancel;\n this.confirm = confirm;\n this.deny = deny;\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { ConfirmDialogAction, ConfirmDialogData, ConfirmDialogResult } from '../../models/confirm-dialog.model';\nimport { MatButton } from '@angular/material/button';\nimport { UpperCasePipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'mosa-confirm-dialog',\n templateUrl: './confirm.dialog.html',\n styleUrls: [ './confirm.dialog.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatButton,\n UpperCasePipe,\n TranslateModule,\n ],\n})\nexport class ConfirmDialog implements OnInit {\n\n public dialogData: ConfirmDialogData;\n public result: typeof ConfirmDialogResult = ConfirmDialogResult;\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n private readonly myConfirmDialogData: ConfirmDialogData,\n private readonly myMatDialogRef: MatDialogRef<ConfirmDialog>,\n ) {\n const cancel: ConfirmDialogAction = new ConfirmDialogAction('mosa.commons.buttons.cancel', true);\n const deny: ConfirmDialogAction = new ConfirmDialogAction('mosa.commons.buttons.deny');\n const confirm: ConfirmDialogAction = new ConfirmDialogAction('mosa.commons.buttons.confirm', true);\n const title: string = 'mosa.components.confirmDialog.title';\n const message: string = 'mosa.components.confirmDialog.message';\n\n this.dialogData = myConfirmDialogData || new ConfirmDialogData(title, message, cancel, confirm, deny);\n\n if (!this.dialogData.title) {\n this.dialogData.title = title;\n }\n\n if (!this.dialogData.message) {\n this.dialogData.message = message;\n }\n\n if (!this.dialogData.cancel) {\n this.dialogData.cancel = cancel;\n }\n\n if (!this.dialogData.confirm) {\n this.dialogData.confirm = confirm;\n }\n\n if (!this.dialogData.deny) {\n this.dialogData.deny = deny;\n }\n }\n\n public ngOnInit(): void {\n //\n }\n\n public confirm(result: ConfirmDialogResult): void {\n this.myMatDialogRef.close(result);\n }\n\n}\n","<h1 class=\"active\" mat-dialog-title>{{ dialogData.title | translate }}</h1>\n<div mat-dialog-content>\n {{ dialogData.message | translate }}\n</div>\n<div mat-dialog-actions>\n @if (dialogData.cancel) {\n <button (click)=\"confirm(result.cancelled)\" color=\"primary\" mat-stroked-button>\n {{ 'mosa.commons.buttons.cancel' | translate | uppercase }}\n </button>\n }\n @if (dialogData.deny?.visible) {\n <button (click)=\"confirm(result.denied)\" color=\"primary\" mat-stroked-button>\n {{ dialogData.deny?.label | translate | uppercase }}\n </button>\n }\n @if (dialogData.confirm?.visible) {\n <button (click)=\"confirm(result.confirmed)\" color=\"primary\" mat-flat-button>\n {{ dialogData.confirm?.label | translate | uppercase }}\n </button>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, OnInit, Optional } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot } from '@angular/router';\nimport { ConfirmDialogData, ConfirmDialogResult } from '../../models/confirm-dialog.model';\nimport { TableItem } from '../../models/table-item.model';\nimport { ConfirmDialog } from '../confirm-dialog/confirm.dialog';\nimport { firstValueFrom } from 'rxjs';\n\n@Component({\n selector: 'mosa-cell-editor-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CellEditorBaseComponent<Model> implements OnInit, CanDeactivate<CellEditorBaseComponent<Model>> {\n\n public dataSource: MatTableDataSource<TableItem<Model>> = new MatTableDataSource<TableItem<Model>>();\n public displayedColumns: (keyof Model | string)[] = [];\n\n constructor(\n @Optional()\n protected readonly myMatDialog: MatDialog,\n ) {\n }\n\n public ngOnInit(): void {\n //\n }\n\n public get changedRows(): TableItem<Model>[] {\n return this.dataSource?.data?.filter((c: TableItem<Model>): boolean => !!c.changedRowKeys && c.changedRowKeys?.length > 0);\n }\n\n /**\n * Remove table item data\n * @param data\n */\n public serializeData(data: TableItem<Model>[]): Model[] {\n return data.map((val: TableItem<Model>): Model => {\n delete val.changedRowKeys;\n delete val.rowOriginalData;\n return val;\n });\n }\n\n public toTableItems(data: Model[]): TableItem<Model>[] {\n return data.map((val: Model): TableItem<Model> => ({\n ...val,\n rowOriginalData: val,\n changedRowKeys: [],\n }));\n }\n\n public async canDeactivate(_component: CellEditorBaseComponent<Model>,\n _currentRoute: ActivatedRouteSnapshot,\n _currentState: RouterStateSnapshot,\n _nextState?: RouterStateSnapshot): Promise<boolean> {\n if (!this.changedRows.length) {\n return true;\n }\n\n const result: ConfirmDialogResult = await firstValueFrom(\n this.myMatDialog\n .open(ConfirmDialog, {\n width: '600px',\n data: new ConfirmDialogData('mosa.components.cellEditorBase.discardChanges.label',\n 'mosa.components.cellEditorBase.discardChanges.message'),\n })\n .afterClosed(),\n );\n\n return result === ConfirmDialogResult.confirmed;\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { MatSelect } from '@angular/material/select';\nimport { TableItem } from '../../models/table-item.model';\n\n@Component({\n selector: 'mosa-cell-editor',\n templateUrl: './cell-editor.component.html',\n styleUrls: [ './cell-editor.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class CellEditorComponent<T = any> implements OnInit {\n\n @Input()\n public key: string = '';\n\n @Input()\n public rowItem!: TableItem<T>;\n\n @Input()\n public value: T | undefined;\n\n @Output()\n public valueChange: EventEmitter<T | undefined> = new EventEmitter<T | undefined>();\n\n @Output()\n public cellClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @Output()\n private readonly cellChange: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n private readonly cellCancel: EventEmitter<void> = new EventEmitter<void>();\n\n @ContentChild(MatSelect)\n private readonly select: MatSelect | undefined;\n\n public mode: 'input' | 'output' = 'output';\n\n private oldValue: T | undefined;\n\n private readonly myChangeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n private readonly myElementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n constructor() {\n }\n\n public get element(): HTMLElement {\n return this.myElementRef.nativeElement;\n }\n\n public ngOnInit(): void {\n this.oldValue = this.value;\n this.rowItem.rowOriginalData = this.rowItem;\n }\n\n public toOutput(save?: boolean): void {\n if (this.mode !== 'output') {\n this.mode = 'output';\n this.myChangeDetectorRef.markForCheck();\n this.element.classList.remove('focused');\n\n if (save) {\n if (!this.rowItem.changedRowKeys) {\n this.rowItem.changedRowKeys = [];\n }\n const index: number = this.rowItem.changedRowKeys.indexOf(this.key);\n if (this.value !== this.oldValue) {\n if (index === -1) {\n this.rowItem.changedRowKeys.push(this.key);\n this.element.classList.add('edited');\n }\n this.cellChange.emit();\n } else {\n if (index !== -1) {\n this.rowItem.changedRowKeys.splice(index, 1);\n this.element.classList.remove('edited');\n }\n }\n } else {\n this.value = this.oldValue;\n this.cellCancel.emit();\n }\n this.valueChange.next(this.value);\n }\n }\n\n public toInput(): void {\n this.mode = 'input';\n this.myChangeDetectorRef.markForCheck();\n this.element.classList.add('focused');\n setTimeout((): void => {\n const comp: HTMLElement | null = this.element.querySelector('.cell-input');\n\n if (comp instanceof HTMLInputElement) {\n comp.focus();\n } else if (this.select) {\n this.select.open();\n }\n });\n }\n\n}\n","@if (mode === 'input') {\n <div class=\"input-wrapper\">\n <ng-content select=\".cell-input\"></ng-content>\n </div>\n}\n@if (mode === 'output') {\n <div class=\"output-wrapper\">\n <ng-content select=\".cell-output\"></ng-content>\n </div>\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatButton, MatIconButton } from '@angular/material/button';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatProgressBar } from '@angular/material/progress-bar';\n\n@Component({\n selector: 'mosa-loading-button',\n templateUrl: './loading-button.component.html',\n styleUrls: [ './loading-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButton,\n NgTemplateOutlet,\n MatIconButton,\n MatProgressSpinner,\n MatIcon,\n MatProgressBar,\n ],\n})\nexport class LoadingButtonComponent {\n\n @Input()\n public mode: 'spinner' | 'progress-bar' = 'spinner';\n\n @Input()\n public loading: boolean = false;\n\n @Input()\n public disabled: boolean = false;\n\n @Input()\n public color: ThemePalette = 'primary';\n\n @Input()\n public buttonType: 'default' | 'raised' | 'stroked' | 'flat' | 'icon' = 'default';\n\n @Input()\n public icon: string | undefined;\n\n @Output()\n public click: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n constructor() {\n }\n\n public onClick(e: MouseEvent): void {\n e.stopPropagation();\n this.click.emit(e);\n }\n\n}\n","@switch (buttonType) {\n @default {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-button>\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n } @case ('raised') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-raised-button>\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n } @case ('stroked') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-stroked-button>\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n } @case ('flat') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-flat-button>\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n } @case ('icon') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-icon-button>\n @if (loading) {\n <mat-spinner class=\"icon-spinner\" [color]=\"color\" [diameter]=\"40\" [strokeWidth]=\"2\"></mat-spinner>\n } @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-content select=\".icon\"></ng-content>\n </button>\n }\n}\n\n<ng-template #buttonContent>\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n } @switch (mode) {\n @case ('spinner') {\n <div class=\"spinner-inner\">\n @if (loading) {\n <mat-spinner [color]=\"color\" [diameter]=\"20\"></mat-spinner>\n }\n <span [class.loading]=\"loading\" class=\"label\">\n <ng-content select=\".spinner-label\"></ng-content>\n </span>\n </div>\n } @case ('progress-bar') {\n <ng-content select=\".progress-bar-label\"></ng-content>\n @if (loading) {\n <mat-progress-bar [color]=\"color\" mode=\"indeterminate\"></mat-progress-bar>\n }\n }\n}\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport { ILog } from '@mosa-ng/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ILoggerState } from '../../models/states/logger-state.model';\n\nlet _state: ILoggerState = {\n logs: [],\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoggerFacade {\n\n protected store$: BehaviorSubject<ILoggerState>;\n\n constructor() {\n this.store$ = new BehaviorSubject<ILoggerState>(_state);\n }\n\n public get snapshot(): ILoggerState {\n return this.store$.value;\n }\n\n public subState(): Observable<ILoggerState> {\n return this.store$.asObservable();\n }\n\n public updateLogs(logs: ILog[]): void {\n this.updateState({ ..._state, logs });\n }\n\n private updateState(state: ILoggerState): void {\n this.store$.next(_state = state);\n }\n\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, inject, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { ILog, ILoggerConfig } from '@mosa-ng/core';\nimport { Observable } from 'rxjs';\nimport { ILoggerState } from '../../models/states/logger-state.model';\nimport { LoggerFacade } from '../../services/facades/logger.facade';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\nimport { AsyncPipe, UpperCasePipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'mosa-logger',\n templateUrl: './logger.component.html',\n styleUrls: [ './logger.component.scss' ],\n animations: [\n trigger('slide', [\n state('enter', style({ transform: 'translateX(0)' })),\n transition(':leave', [\n animate(200, style({ transform: 'translateX(120%)' })),\n ]),\n transition(':enter', [\n style({ transform: 'translateX(120%)' }),\n animate(200, style({ transform: 'translateX(0)' })),\n ]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatIcon,\n MatButton,\n AsyncPipe,\n UpperCasePipe,\n TranslateModule,\n ],\n})\nexport class LoggerComponent implements OnInit {\n\n @ViewChildren('loggerElement')\n public elements: QueryList<HTMLElement> | undefined;\n\n public loggerState$!: Observable<ILoggerState>;\n\n private readonly myLoggerFacade: LoggerFacade = inject(LoggerFacade);\n\n constructor() {\n }\n\n public ngOnInit(): void {\n this.loggerState$ = this.myLoggerFacade.subState();\n }\n\n public onClickLog(log: ILog): void {\n if (log.config.closeOnClick) {\n this.slideOut(log.id);\n }\n }\n\n /**\n * Shows the snackbar\n * @param title\n * @param message\n * @param type\n * @param config\n */\n public slideIn(title: string | undefined, message: string | undefined, type: string, config: ILoggerConfig): number {\n const logs: ILog[] = [ ...this.myLoggerFacade.snapshot.logs ];\n const i = logs.length;\n let icon: string;\n\n switch (type) {\n case 'error':\n icon = 'error';\n break;\n case 'warning':\n icon = 'warning';\n break;\n case 'info':\n icon = 'info';\n break;\n case 'success':\n icon = 'done';\n break;\n default:\n icon = 'notifications';\n break;\n }\n\n logs.push({ id: i, title, message, config, state: 'enter', icon });\n this.myLoggerFacade.updateLogs(logs);\n return i;\n }\n\n /**\n * Hides the log\n * @param id\n */\n public slideOut(id: number): void {\n let logs: ILog[] = [ ...this.myLoggerFacade.snapshot.logs ];\n if (logs.length > 0) {\n const item: ILog | undefined = logs.find((e: ILog): boolean => e.id === id);\n if (!item) {\n return;\n }\n\n item.state = 'leave';\n this.myLoggerFacade.updateLogs(logs);\n setTimeout((): void => {\n logs = [ ...this.myLoggerFacade.snapshot.logs ];\n const index = logs.findIndex((log: ILog): boolean => log.id === item.id);\n logs.splice(index, 1);\n this.myLoggerFacade.updateLogs(logs);\n }, 200);\n }\n }\n\n public callAction(log: ILog): void {\n log.config.action?.callback?.call(this);\n this.slideOut(log.id);\n }\n\n}\n","@if (loggerState$ | async; as state) {\n @for (log of state.logs; track log) {\n <div #loggerElement\n [@slide]=\"log.state\"\n [class.none]=\"!log.state\"\n [class]=\"log.config.className\"\n (click)=\"onClickLog(log)\"\n [class.touch]=\"log.config.closeOnClick\"\n class=\"logger-element\">\n <div class=\"content\">\n <mat-icon class=\"icon\">{{ log.icon }}</mat-icon>\n <div>\n @if (log.title) {\n <div class=\"title\">{{ log.title | translate }}</div>\n } @if (log.message) {\n <div [innerHTML]=\"log.message | translate\" class=\"message\"></div>\n }\n </div>\n </div>\n @if (log.config.action || log.config.showDismiss) {\n <div class=\"actions\">\n @if (log.config.showDismiss) {\n <button (click)=\"slideOut(log.id)\" class=\"dismiss\" mat-button>\n {{ 'mosa.commons.buttons.dismiss' | translate | uppercase }}\n </button>\n } @if (log.config.action && log.config.action.label && log.config.action.callback) {\n <button (click)=\"$event.stopPropagation(); callAction(log)\"\n class=\"action-btn\" mat-button>\n {{ log.config.action.label | translate | uppercase }}\n </button>\n }\n </div>\n }\n </div>\n }\n}\n\n","import { isNullOrEmpty, isNumber, isZeroOrHigher } from '@mosa-ng/core';\n\nexport class Skeleton {\n public width?: number | string;\n public height?: number | string;\n public borderRadius?: number | string;\n public randomizeOffset?: number;\n\n constructor(skeleton?: Skeleton) {\n this.width = isZeroOrHigher(skeleton?.width) ? skeleton?.width : 100;\n this.height = isZeroOrHigher(skeleton?.height) ? skeleton?.height : 15;\n if ((isNumber(skeleton?.borderRadius) && isZeroOrHigher(skeleton?.borderRadius)) ||\n (typeof skeleton?.borderRadius === 'string' && !isNullOrEmpty(skeleton?.borderRadius))) {\n this.borderRadius = skeleton!.borderRadius;\n }\n this.borderRadius = this.borderRadius || 4;\n this.randomizeOffset = skeleton?.randomizeOffset || 0;\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { Skeleton } from '../../../models/skeleton.model';\n\n@Component({\n selector: 'mosa-skeleton',\n templateUrl: './skeleton.component.html',\n styleUrls: [ './skeleton.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonComponent implements OnInit {\n\n @Input()\n public skeleton!: Skeleton;\n\n @Input()\n public width: number | string = 0;\n\n @Input()\n public height: number | string = 0;\n\n @Input()\n public randomizeOffset: number = 0;\n\n @Input()\n public borderRadius: number | string| undefined;\n\n private readonly element: HTMLElement;\n\n constructor(\n private readonly myElementRef: ElementRef,\n ) {\n this.element = this.myElementRef.nativeElement;\n }\n\n public ngOnInit(): void {\n if (!this.skeleton) {\n this.skeleton = new Skeleton({\n width: this.width,\n height: this.height,\n borderRadius: this.borderRadius,\n randomizeOffset: this.randomizeOffset,\n });\n }\n\n this.element.style.width = this.actualWidth;\n this.element.style.height = SkeletonComponent.value(this.skeleton.height);\n this.element.style.borderRadius = SkeletonComponent.value(this.skeleton.borderRadius);\n }\n\n private get actualWidth(): string {\n if (this.skeleton.randomizeOffset && this.skeleton.randomizeOffset > 0 && typeof this.skeleton.width === 'number') {\n return `${this.skeleton.width - Math.floor(Math.random() * this.skeleton.randomizeOffset)}px`;\n }\n\n return SkeletonComponent.value(this.skeleton.width);\n }\n\n private static value(val: number | string | undefined): string {\n if (typeof val === 'number') {\n return `${val}px`;\n }\n return val || '';\n }\n\n}\n","","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mosa-skeleton-loader',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class BaseSkeletonLoader {\n\n @Input()\n public itemCount: number | undefined;\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { BaseSkeletonLoader } from '../base.skeleton-loader';\nimport { MatList, MatListItem } from '@angular/material/list';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'mosa-list-skeleton-loader',\n templateUrl: './list.skeleton-loader.html',\n styleUrls: [ './list.skeleton-loader.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatList,\n MatListItem,\n NgTemplateOutlet,\n ],\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ListSkeletonLoader extends BaseSkeletonLoader implements OnInit {\n\n @Input()\n public content: TemplateRef<unknown> | undefined;\n\n public items: number[] = [];\n\n constructor() {\n super();\n }\n\n public ngOnInit(): void {\n this.items = Array(this.itemCount).fill(this.itemCount).map((x: number, i: number): number => i);\n }\n\n}\n","<mat-list>\n @for (item of items; track item) {\n <mat-list-item>\n <ng-container *ngTemplateOutlet=\"content, context: { $implicit: item }\"></ng-container>\n </mat-list-item>\n }\n</mat-list>\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { Skeleton } from '../../../models/skeleton.model';\nimport { BaseSkeletonLoader } from '../base.skeleton-loader';\nimport { MatCell, MatCellDef, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatTable } from '@angular/material/table';\nimport { SkeletonComponent } from '../skeleton/skeleton.component';\n\n@Component({\n selector: 'mosa-table-skeleton-loader',\n templateUrl: './table.skeleton-loader.html',\n styleUrls: [ './table.skeleton-loader.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatTable,\n MatColumnDef,\n MatHeaderCellDef,\n MatHeaderCell,\n SkeletonComponent,\n MatCellDef,\n MatCell,\n MatHeaderRowDef,\n MatHeaderRow,\n MatRowDef,\n MatRow,\n ],\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class TableSkeletonLoader extends BaseSkeletonLoader implements OnInit {\n\n @Input()\n public columns: Skeleton[][] = [];\n\n public items: Skeleton[][] = [];\n public displayedColumns: string[] = [];\n\n constructor() {\n super();\n }\n\n public ngOnInit(): void {\n for (let i = 0; i < this.columns.length; i++) {\n this.displayedColumns.push(`column-${i}`);\n }\n\n for (let i = 0; i < (this.itemCount || 0); i++) {\n const skeletons: Skeleton[] = [];\n for (let j = 0; j < this.displayedColumns.length; j++) {\n const skeleton = this.columns[ j ][ 1 ];\n skeletons.push(new Skeleton({\n width: skeleton.width,\n height: skeleton.height,\n borderRadius: skeleton.borderRadius,\n randomizeOffset: skeleton.randomizeOffset,\n }));\n }\n this.items.push(skeletons);\n }\n }\n\n}\n","<table [dataSource]=\"items\" mat-table>\n @for (column of columns; track column; let i = $index) {\n <ng-container [matColumnDef]=\"'column-' + i\">\n <th *matHeaderCellDef mat-header-cell>\n <mosa-skeleton [skeleton]=\"column[0]\"></mosa-skeleton>\n </th>\n <td *matCellDef=\"let row\" mat-cell>\n <mosa-skeleton [skeleton]=\"column[1]\"></mosa-skeleton>\n </td>\n </ng-container>\n }\n <tr *matHeaderRowDef=\"displayedColumns;sticky:true\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"row-hover\" mat-row></tr>\n</table>\n","import { Component, inject, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { IUpdateConfig, UpdateDialogResult } from '../../../models/update-config.model';\nimport { MatButton } from '@angular/material/button';\nimport { AsyncPipe, UpperCasePipe } from '@angular/common';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { MosaDurationPipe } from '@mosa-ng/core';\n\n@Component({\n selector: 'mosa-mat-update-dialog',\n templateUrl: './mat-update.dialog.html',\n styleUrls: [ './mat-update.dialog.scss' ],\n imports: [\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatButton,\n AsyncPipe,\n UpperCasePipe,\n TranslatePipe,\n MosaDurationPipe,\n ],\n})\nexport class MatUpdateDialog implements OnInit {\n\n private readonly myMatDialogRef: MatDialogRef<MatUpdateDialog> = inject(MatDialogRef<MatUpdateDialog>);\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public readonly config: IUpdateConfig,\n ) {\n }\n\n public ngOnInit(): void {\n //\n }\n\n public close(result: UpdateDialogResult): void {\n this.myMatDialogRef.close(result);\n }\n\n}\n","<h1 class=\"active\" mat-dialog-title>{{ config.title | translate }}</h1>\n<div mat-dialog-content>\n {{ config.message | translate }}\n</div>\n<div mat-dialog-actions>\n <button (click)=\"close(0)\" [class.cancel-btn]=\"config.showIgnore\" mat-stroked-button>\n {{ 'mosa.commons.buttons.cancel' | translate | uppercase }}\n </button>\n @if (config.showIgnore) {\n <button (click)=\"close(1)\" color=\"primary\" mat-stroked-button>\n {{\n 'mosa.commons.buttons.ignoreFor' | translate: {\n duration: config.ignoreTimeout | mosaDuration: 'auto' | async | uppercase\n } | uppercase\n }}\n </button>\n }\n <button mat-flat-button color=\"primary\" (click)=\"close(2)\">\n {{ 'mosa.commons.buttons.reloadNow' | translate | uppercase }}\n </button>\n</div>\n","export interface IUpdateConfig {\n refreshInterval?: number;\n ignoreTimeout?: number;\n localStorageKey?: string;\n versionPath: string;\n showIgnore?: boolean;\n title?: string;\n message?: string;\n}\n\nexport interface IVersion {\n version: string;\n timestamp: number;\n}\n\nexport enum UpdateDialogResult {\n cancel,\n ignore,\n reload,\n}\n","import { ChangeDetectionStrategy, Component, inject, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ApiService, isNullOrEmpty } from '@mosa-ng/core';\nimport { firstValueFrom, timer } from 'rxjs';\nimport { IUpdateConfig, IVersion, UpdateDialogResult } from '../../models/update-config.model';\nimport { MatUpdateDialog } from './mat-update-dialog/mat-update.dialog';\n\n@Component({\n selector: 'mosa-update-dialog[config]',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UpdateDialog {\n\n @Input('config')\n public set updateConfig(config: IUpdateConfig) {\n if (config) {\n if (!config.versionPath) {\n console.warn('LoggerService: No version path was provided. This field is required!');\n return;\n }\n\n if (!config.localStorageKey) {\n config.localStorageKey = 'mosaApplicationVersion';\n }\n\n if (!config.ignoreTimeout) {\n config.ignoreTimeout = 30000;\n }\n\n if (!config.refreshInterval) {\n config.refreshInterval = 15000;\n }\n\n if (!config.title) {\n config.title = 'mosa.components.updateDialog.title';\n }\n\n if (!config.message) {\n config.message = 'mosa.components.updateDialog.message';\n }\n\n this.config = config;\n this.end();\n this.start();\n } else {\n console.warn('LoggerService: Cannot check for version. No config was provided.');\n }\n }\n\n private firstLoad: boolean = true;\n\n private blocked: boolean = false;\n private interval: NodeJS.Timeout | undefined;\n private config!: IUpdateConfig;\n\n private readonly myApiService: ApiService = inject(ApiService);\n private readonly myMatDialog: MatDialog = inject(MatDialog);\n\n constructor() {\n }\n\n private start(): void {\n if (this.interval) {\n this.end();\n }\n void this.checkForUpdate();\n this.interval = setInterval((): Promise<void> => this.checkForUpdate(), this.config.refreshInterval);\n }\n\n private openDialog(version: IVersion): void {\n this.myMatDialog.open(MatUpdateDialog, {\n width: '600px',\n data: this.config,\n })\n .afterClosed()\n .subscribe((result: UpdateDialogResult): void => {\n switch (result) {\n case UpdateDialogResult.cancel:\n this.end();\n this.blocked = true;\n break;\n case UpdateDialogResult.ignore:\n timer(this.config.ignoreTimeout!).subscribe((): void => this.openDialog(version));\n break;\n case UpdateDialogResult.reload:\n window.location.reload();\n window.localStorage.setItem(this.config.localStorageKey!, JSON.stringify(version));\n break;\n }\n });\n }\n\n private async checkForUpdate(): Promise<void> {\n if (this.blocked) {\n return;\n }\n\n const localStorageVersion: string | null = window.localStorage.getItem(this.config.localStorageKey!);\n let localVersion: IVersion = { version: '0.0.0', timestamp: 0 };\n if (!isNullOrEmpty(localStorageVersion)) {\n localVersion = JSON.parse(localStorageVersion!);\n }\n const data: IVersion = await firstValueFrom(this.myApiService.get(this.config.versionPath));\n if (this.firstLoad) {\n window.localStorage.setItem(this.config.localStorageKey!, JSON.stringify(data));\n this.firstLoad = false;\n return;\n }\n if (data.version !== localVersion.version) {\n this.blocked = true;\n this.end();\n this.openDialog(data);\n }\n }\n\n private end(): void {\n clearInterval(this.interval);\n this.interval = undefined;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CellEditorComponent } from '../components/cell-editor/cell-editor.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CellEditorService {\n\n public cellEditor: CellEditorComponent | undefined;\n\n private documentEditListener: ((e: MouseEvent) => void | undefined) | undefined;\n\n constructor() {\n }\n\n public updateEditingCell(cellEditor: CellEditorComponent): void {\n if (cellEditor !== this.cellEditor) {\n this.cellEditor?.toOutput(true);\n }\n this.cellEditor = cellEditor;\n this.cellEditor.toInput();\n this.bindDocumentEditListener();\n }\n\n public bindDocumentEditListener(): void {\n if (!this.documentEditListener) {\n this.documentEditListener = (e: MouseEvent): void => {\n e.preventDefault();\n const target: HTMLElement = e.target as HTMLElement;\n const mosaCellEditor: HTMLElement | null = target.closest('mosa-cell-editor');\n if (this.cellEditor && mosaCellEditor !== this.cellEditor.element && !target.classList.contains('cell-output')) {\n document.removeEventListener('click', this.documentEditListener!);\n this.documentEditListener = undefined;\n this.cellEditor.toOutput(true);\n this.cellEditor = undefined;\n }\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n }\n\n public isEditingCellValid(): boolean {\n return this.cellEditor?.element != null && Array.from(this.cellEditor.element.querySelectorAll('.ng-invalid')).length === 0;\n }\n}\n","import { ContentChild, Directive, ElementRef, HostListener, inject, OnInit } from '@angular/core';\nimport { CellEditorComponent } from '../components/cell-editor/cell-editor.component';\nimport { CellEditorService } from '../services/cell-editor.service';\n\n@Directive({ selector: 'td[mosaCellEditor]' })\nexport class CellEditorDirective implements OnInit {\n\n @ContentChild(CellEditorComponent)\n private readonly cellEditor!: CellEditorComponent;\n\n private readonly myElementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n private readonly myCellEditorService: CellEditorService = inject(CellEditorService);\n\n constructor() {\n }\n\n @HostListener('keydown.escape', [ '$event' ])\n public onEscapeKeyDown(e: Event): void {\n e.preventDefault();\n this.cellEditor.toOutput();\n }\n\n @HostListener('keydown.tab', [ '$event' ])\n @HostListener('keydown.shift.tab', [ '$event' ])\n @HostListener('keydown.meta.tab', [ '$event' ])\n public onShiftKeyDown(e: Event): void {\n e.preventDefault();\n if ((e as KeyboardEvent).shiftKey) {\n this.moveToCell(e, false);\n } else {\n this.moveToCell(e, true);\n }\n }\n\n @HostListener('keydown.enter', [ '$event' ])\n public onEnterKeyDown(e: Event): void {\n e.preventDefault();\n if (this.myCellEditorService.isEditingCellValid()) {\n this.moveToNextRowCell(e);\n }\n }\n\n @HostListener('click', [ '$event' ])\n public onClick(e: Event): void {\n e.preventDefault();\n this.myCellEditorService.updateEditingCell(this.cellEditor);\n this.cellEditor.cellClick.emit();\n }\n\n public ngOnInit(): void {\n this.myElementRef.nativeElement.classList.add('editable-cell');\n }\n\n private moveToNextRowCell(e: Event): void {\n const currentCell: Element | null | undefined = this.cellEditor?.element?.parentElement;\n if (!currentCell) {\n return;\n }\n\n let columnDefClass: string = '';\n currentCell.classList.forEach((className: string): void => {\n const found: boolean = className.includes('mat-column-');\n if (found) {\n columnDefClass = className;\n }\n });\n\n const targetCell: ChildNode | null = this.findNextRowEditableColumn(currentCell, columnDefClass);\n this.cellEditor.toOutput(true);\n CellEditorDirective.executeMove(e, targetCell);\n }\n\n private findNextRowEditableColumn(row: Element, matColumnClassName: string): ChildNode | null {\n const nextRow: Element | null | undefined = row.parentElement?.nextElementSibling;\n if (!nextRow) {\n return null;\n }\n\n const column: Element = nextRow.getElementsByClassName(matColumnClassName)[ 0 ];\n return column?.classList.contains('editable-cell') ?\n column.firstChild :\n this.findNextRowEditableColumn(nextRow, matColumnClassName);\n }\n\n private findNextEditableColumn(cell: Element): ChildNode | null {\n let nextCell: Element | null | undefined = cell.parentElement?.nextElementSibling;\n\n if (!nextCell) {\n const nextRow: Element | null | undefined = cell.parentElement?.parentElement?.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n return nextCell.classList.contains('editable-cell')\n ? nextCell.firstChild\n : this.findNextEditableColumn(nextCell);\n }\n\n return null;\n }\n\n private findPreviousEditableColumn(cell: Element): ChildNode | null {\n let prevCell: Element | null = cell.previousElementSibling;\n\n if (!prevCell) {\n const previousRow: Element | null | undefined = cell.parentElement?.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n return prevCell.classList.contains('editable-cell') ?\n prevCell.firstChild :\n this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n }\n\n private moveToCell(event: Event, nextCell: boolean): void {\n const currentCell: HTMLElement = this.cellEditor.element;\n if (this.cellEditor.element != null) {\n const targetCell: ChildNode | null = nextCell\n ? this.findNextEditableColumn(currentCell)\n : this.findPreviousEditableColumn(currentCell);\n if (this.myCellEditorService.isEditingCellValid()) {\n this.cellEditor.toOutput(true);\n (targetCell as HTMLElement)?.click();\n }\n CellEditorDirective.executeMove(event, targetCell);\n }\n }\n\n private static invokeElementMethod(element: EventTarget | ChildNode | Element | null, methodName: string, args?: unknown[]): void {\n // eslint-disable-next-line @typescript-eslint/no-restricted-types,@typescript-eslint/no-unsafe-function-type,@typescript-eslint/no-explicit-any\n ((element as any)[ methodName ] as Function).apply(element, args);\n }\n\n private static executeMove(e: Event, targetCell: ChildNode | null): void {\n e.preventDefault();\n // If datepicker is opened, remove cdk-overlay from dom\n const element: Element = e.composedPath()[ 0 ] as Element;\n if (element.className.includes('td-input-date')) {\n const cdkOverlayContainer: Element = document.getElementsByClassName('cdk-overlay-container')[ 0 ];\n const cdkBackdrop: Element = cdkOverlayContainer.getElementsByClassName('cdk-overlay-backdrop')[ 0 ];\n if (cdkBackdrop != null) {\n CellEditorDirective.invokeElementMethod(cdkBackdrop, 'click');\n }\n cdkOverlayContainer.innerHTML = '';\n }\n\n CellEditorDirective.invokeElementMethod(e.target, 'blur');\n if (targetCell != null) {\n CellEditorDirective.invokeElementMethod(targetCell, 'click');\n }\n }\n\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[clickOutside]',\n})\nexport class ClickOutsideDirective {\n\n @Output()\n public clickOutside: EventEmitter<[ HTMLElement, HTMLElement ]> = new EventEmitter<[ HTMLElement, HTMLElement ]>();\n\n @Input()\n public enableWhiteListing: boolean = false;\n\n constructor(\n private readonly elementRef: ElementRef,\n ) {\n }\n\n @HostListener('document:click', [ '$event.target' ])\n public onClick(targetElement: EventTarget | null): void {\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n const whiteListedClass = 'whitelisted';\n if (clickedInside || !targetElement) {\n return;\n }\n\n const htmlElement: HTMLElement = targetElement as HTMLElement;\n if (this.enableWhiteListing) {\n const isWhiteListed = htmlElement.classList.contains(whiteListedClass)\n || ClickOutsideDirective.getClosest(htmlElement, whiteListedClass)\n || ClickOutsideDirective.getClosest(htmlElement, 'cdk-overlay-container');\n if (!isWhiteListed) {\n this.clickOutside.emit([ this.elementRef.nativeElement, htmlElement ]);\n }\n } else {\n this.clickOutside.emit([ this.elementRef.nativeElement, htmlElement ]);\n }\n }\n\n private static getClosest(el: HTMLElement | null, selector: string): HTMLElement | null {\n while (el) {\n if (el.classList.contains(selector)) {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CoreLoggerService, ILoggerConfig, ILoggerDefaultConfig, LogType } from '@mosa-ng/core';\nimport { LoggerComponent } from '../components/logger/logger.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoggerService extends CoreLoggerService {\n\n private loggerComp: LoggerComponent | undefined;\n\n /**\n * Default constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Setter for logger\n * @param component\n * @param defaultConfig\n */\n public logger(component: LoggerComponent, defaultConfig: ILoggerDefaultConfig): void {\n this.loggerComp = component;\n this.defaultConfig = defaultConfig;\n }\n\n /**\n * Shows the log\n * @param type\n * @param config\n */\n public override show(config: ILoggerConfig, type: LogType): void {\n super.show(config, type);\n if (this.loggerComp) {\n const i: number = this.loggerComp.slideIn(config.title, config.msg, type, config);\n\n if (config.duration !== -1) {\n setTimeout((): void => this.loggerComp?.slideOut(i), (config.duration || 1) * 1000);\n }\n }\n }\n\n}\n","import { AssetsI18nLoaderService } from '@mosa-ng/core';\nimport { EnvironmentProviders, inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\n\n// Components\nexport * from './components/alert-widget/alert.widget';\nexport * from './components/base/cell-editor.base.component';\nexport * from './components/cell-editor/cell-editor.component';\nexport * from './components/confirm-dialog/confirm.dialog';\nexport * from './components/loading-button/loading-button.component';\nexport * from './components/logger/logger.component';\nexport * from './components/skeleton-loader/skeleton/skeleton.component';\nexport * from './components/skeleton-loader/list-skeleton-loader/list.skeleton-loader';\nexport * from './components/skeleton-loader/table-skeleton-loader/table.skeleton-loader';\nexport * from './components/update-dialog/mat-update-dialog/mat-update.dialog';\nexport * from './components/update-dialog/update.dialog';\n\n// Directives\nexport * from './directives/cell-editor.directive';\nexport * from './directives/click-outside.directive';\n\n// States\nexport * from './models/states/logger-state.model';\nexport * from './models/states/cell-editor-base-state.model';\n\n// Models\nexport * from './models/skeleton.model';\nexport * from './models/confirm-dialog.model';\nexport * from './models/table-item.model';\nexport * from './models/update-config.model';\n\n// Services\nexport * from './services/cell-editor.service';\nexport * from './services/logger.service';\n\nexport * from './services/facades/logger.facade';\n\nfunction initI18n(i18n: AssetsI18nLoaderService): Promise<void> {\n return i18n.init(undefined, 'mosa');\n}\n\nexport const provideMosaMaterial: () => EnvironmentProviders = () => makeEnvironmentProviders([\n provideAppInitializer(() => initI18n(inject(AssetsI18nLoaderService))),\n]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mosa-ng/material",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "21.0.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=20.0.0 < 21.0.0",
|
|
6
6
|
"@angular/core": ">=20.0.0 < 21.0.0"
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
},
|
|
11
11
|
"sideEffects": false,
|
|
12
12
|
"module": "fesm2022/mosa-ng-material.mjs",
|
|
13
|
-
"typings": "
|
|
13
|
+
"typings": "types/mosa-ng-material.d.ts",
|
|
14
14
|
"exports": {
|
|
15
15
|
"./package.json": {
|
|
16
16
|
"default": "./package.json"
|
|
17
17
|
},
|
|
18
18
|
".": {
|
|
19
|
-
"types": "./
|
|
19
|
+
"types": "./types/mosa-ng-material.d.ts",
|
|
20
20
|
"default": "./fesm2022/mosa-ng-material.mjs"
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnInit, OnChanges, SimpleChanges, EventEmitter, QueryList, ElementRef, TemplateRef, EnvironmentProviders } from '@angular/core';
|
|
3
|
+
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
4
|
+
import { MatTableDataSource } from '@angular/material/table';
|
|
5
|
+
import { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
|
|
6
|
+
import { ThemePalette } from '@angular/material/core';
|
|
7
|
+
import { ILog, ILoggerConfig, CoreLoggerService, ILoggerDefaultConfig, LogType } from '@mosa-ng/core';
|
|
8
|
+
import { Observable, BehaviorSubject } from 'rxjs';
|
|
9
|
+
|
|
10
|
+
declare class AlertWidget implements OnInit, OnChanges {
|
|
11
|
+
icon: string | undefined;
|
|
12
|
+
title: string | undefined;
|
|
13
|
+
message: string | undefined;
|
|
14
|
+
type: 'warning' | 'error' | 'info' | 'success' | undefined;
|
|
15
|
+
constructor();
|
|
16
|
+
ngOnInit(): void;
|
|
17
|
+
ngOnChanges(_changes: SimpleChanges): void;
|
|
18
|
+
private updateData;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlertWidget, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlertWidget, "mosa-alert-widget", never, { "icon": { "alias": "icon"; "required": false; }; "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, never, true, never>;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface ITableItem<T> {
|
|
24
|
+
changedRowKeys?: string[];
|
|
25
|
+
rowOriginalData?: T;
|
|
26
|
+
}
|
|
27
|
+
type TableItem<T> = ITableItem<T> & T;
|
|
28
|
+
|
|
29
|
+
declare class CellEditorBaseComponent<Model> implements OnInit, CanDeactivate<CellEditorBaseComponent<Model>> {
|
|
30
|
+
protected readonly myMatDialog: MatDialog;
|
|
31
|
+
dataSource: MatTableDataSource<TableItem<Model>>;
|
|
32
|
+
displayedColumns: (keyof Model | string)[];
|
|
33
|
+
constructor(myMatDialog: MatDialog);
|
|
34
|
+
ngOnInit(): void;
|
|
35
|
+
get changedRows(): TableItem<Model>[];
|
|
36
|
+
/**
|
|
37
|
+
* Remove table item data
|
|
38
|
+
* @param data
|
|
39
|
+
*/
|
|
40
|
+
serializeData(data: TableItem<Model>[]): Model[];
|
|
41
|
+
toTableItems(data: Model[]): TableItem<Model>[];
|
|
42
|
+
canDeactivate(_component: CellEditorBaseComponent<Model>, _currentRoute: ActivatedRouteSnapshot, _currentState: RouterStateSnapshot, _nextState?: RouterStateSnapshot): Promise<boolean>;
|
|
43
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CellEditorBaseComponent<any>, [{ optional: true; }]>;
|
|
44
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CellEditorBaseComponent<any>, "mosa-cell-editor-base", never, {}, {}, never, never, true, never>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
declare class CellEditorComponent<T = any> implements OnInit {
|
|
48
|
+
key: string;
|
|
49
|
+
rowItem: TableItem<T>;
|
|
50
|
+
value: T | undefined;
|
|
51
|
+
valueChange: EventEmitter<T | undefined>;
|
|
52
|
+
cellClick: EventEmitter<MouseEvent>;
|
|
53
|
+
private readonly cellChange;
|
|
54
|
+
private readonly cellCancel;
|
|
55
|
+
private readonly select;
|
|
56
|
+
mode: 'input' | 'output';
|
|
57
|
+
private oldValue;
|
|
58
|
+
private readonly myChangeDetectorRef;
|
|
59
|
+
private readonly myElementRef;
|
|
60
|
+
constructor();
|
|
61
|
+
get element(): HTMLElement;
|
|
62
|
+
ngOnInit(): void;
|
|
63
|
+
toOutput(save?: boolean): void;
|
|
64
|
+
toInput(): void;
|
|
65
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CellEditorComponent<any>, never>;
|
|
66
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CellEditorComponent<any>, "mosa-cell-editor", never, { "key": { "alias": "key"; "required": false; }; "rowItem": { "alias": "rowItem"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "cellClick": "cellClick"; "cellChange": "cellChange"; "cellCancel": "cellCancel"; }, ["select"], [".cell-input", ".cell-output"], true, never>;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
declare enum ConfirmDialogResult {
|
|
70
|
+
confirmed = 0,
|
|
71
|
+
denied = 1,
|
|
72
|
+
cancelled = 2
|
|
73
|
+
}
|
|
74
|
+
declare class ConfirmDialogAction {
|
|
75
|
+
icon: string | undefined;
|
|
76
|
+
visible: boolean | undefined;
|
|
77
|
+
label: string;
|
|
78
|
+
constructor(label: string, visible?: boolean);
|
|
79
|
+
}
|
|
80
|
+
declare class ConfirmDialogData {
|
|
81
|
+
title: string | undefined;
|
|
82
|
+
message: string | undefined;
|
|
83
|
+
cancel: ConfirmDialogAction | undefined;
|
|
84
|
+
confirm: ConfirmDialogAction | undefined;
|
|
85
|
+
deny: ConfirmDialogAction | undefined;
|
|
86
|
+
constructor(title?: string, message?: string, cancel?: ConfirmDialogAction, confirm?: ConfirmDialogAction, deny?: ConfirmDialogAction);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
declare class ConfirmDialog implements OnInit {
|
|
90
|
+
private readonly myConfirmDialogData;
|
|
91
|
+
private readonly myMatDialogRef;
|
|
92
|
+
dialogData: ConfirmDialogData;
|
|
93
|
+
result: typeof ConfirmDialogResult;
|
|
94
|
+
constructor(myConfirmDialogData: ConfirmDialogData, myMatDialogRef: MatDialogRef<ConfirmDialog>);
|
|
95
|
+
ngOnInit(): void;
|
|
96
|
+
confirm(result: ConfirmDialogResult): void;
|
|
97
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDialog, never>;
|
|
98
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmDialog, "mosa-confirm-dialog", never, {}, {}, never, never, true, never>;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
declare class LoadingButtonComponent {
|
|
102
|
+
mode: 'spinner' | 'progress-bar';
|
|
103
|
+
loading: boolean;
|
|
104
|
+
disabled: boolean;
|
|
105
|
+
color: ThemePalette;
|
|
106
|
+
buttonType: 'default' | 'raised' | 'stroked' | 'flat' | 'icon';
|
|
107
|
+
icon: string | undefined;
|
|
108
|
+
click: EventEmitter<MouseEvent>;
|
|
109
|
+
constructor();
|
|
110
|
+
onClick(e: MouseEvent): void;
|
|
111
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoadingButtonComponent, never>;
|
|
112
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoadingButtonComponent, "mosa-loading-button", never, { "mode": { "alias": "mode"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "color": { "alias": "color"; "required": false; }; "buttonType": { "alias": "buttonType"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, { "click": "click"; }, never, [".icon", ".spinner-label", ".progress-bar-label"], true, never>;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
interface ILoggerState {
|
|
116
|
+
logs: ILog[];
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
declare class LoggerComponent implements OnInit {
|
|
120
|
+
elements: QueryList<HTMLElement> | undefined;
|
|
121
|
+
loggerState$: Observable<ILoggerState>;
|
|
122
|
+
private readonly myLoggerFacade;
|
|
123
|
+
constructor();
|
|
124
|
+
ngOnInit(): void;
|
|
125
|
+
onClickLog(log: ILog): void;
|
|
126
|
+
/**
|
|
127
|
+
* Shows the snackbar
|
|
128
|
+
* @param title
|
|
129
|
+
* @param message
|
|
130
|
+
* @param type
|
|
131
|
+
* @param config
|
|
132
|
+
*/
|
|
133
|
+
slideIn(title: string | undefined, message: string | undefined, type: string, config: ILoggerConfig): number;
|
|
134
|
+
/**
|
|
135
|
+
* Hides the log
|
|
136
|
+
* @param id
|
|
137
|
+
*/
|
|
138
|
+
slideOut(id: number): void;
|
|
139
|
+
callAction(log: ILog): void;
|
|
140
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoggerComponent, never>;
|
|
141
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoggerComponent, "mosa-logger", never, {}, {}, never, never, true, never>;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
declare class Skeleton {
|
|
145
|
+
width?: number | string;
|
|
146
|
+
height?: number | string;
|
|
147
|
+
borderRadius?: number | string;
|
|
148
|
+
randomizeOffset?: number;
|
|
149
|
+
constructor(skeleton?: Skeleton);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
declare class SkeletonComponent implements OnInit {
|
|
153
|
+
private readonly myElementRef;
|
|
154
|
+
skeleton: Skeleton;
|
|
155
|
+
width: number | string;
|
|
156
|
+
height: number | string;
|
|
157
|
+
randomizeOffset: number;
|
|
158
|
+
borderRadius: number | string | undefined;
|
|
159
|
+
private readonly element;
|
|
160
|
+
constructor(myElementRef: ElementRef);
|
|
161
|
+
ngOnInit(): void;
|
|
162
|
+
private get actualWidth();
|
|
163
|
+
private static value;
|
|
164
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SkeletonComponent, never>;
|
|
165
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SkeletonComponent, "mosa-skeleton", never, { "skeleton": { "alias": "skeleton"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "randomizeOffset": { "alias": "randomizeOffset"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; }, {}, never, never, true, never>;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
declare class BaseSkeletonLoader {
|
|
169
|
+
itemCount: number | undefined;
|
|
170
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseSkeletonLoader, never>;
|
|
171
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BaseSkeletonLoader, "mosa-skeleton-loader", never, { "itemCount": { "alias": "itemCount"; "required": false; }; }, {}, never, never, true, never>;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
declare class ListSkeletonLoader extends BaseSkeletonLoader implements OnInit {
|
|
175
|
+
content: TemplateRef<unknown> | undefined;
|
|
176
|
+
items: number[];
|
|
177
|
+
constructor();
|
|
178
|
+
ngOnInit(): void;
|
|
179
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ListSkeletonLoader, never>;
|
|
180
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListSkeletonLoader, "mosa-list-skeleton-loader", never, { "content": { "alias": "content"; "required": false; }; }, {}, never, never, true, never>;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
declare class TableSkeletonLoader extends BaseSkeletonLoader implements OnInit {
|
|
184
|
+
columns: Skeleton[][];
|
|
185
|
+
items: Skeleton[][];
|
|
186
|
+
displayedColumns: string[];
|
|
187
|
+
constructor();
|
|
188
|
+
ngOnInit(): void;
|
|
189
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TableSkeletonLoader, never>;
|
|
190
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableSkeletonLoader, "mosa-table-skeleton-loader", never, { "columns": { "alias": "columns"; "required": false; }; }, {}, never, never, true, never>;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
interface IUpdateConfig {
|
|
194
|
+
refreshInterval?: number;
|
|
195
|
+
ignoreTimeout?: number;
|
|
196
|
+
localStorageKey?: string;
|
|
197
|
+
versionPath: string;
|
|
198
|
+
showIgnore?: boolean;
|
|
199
|
+
title?: string;
|
|
200
|
+
message?: string;
|
|
201
|
+
}
|
|
202
|
+
interface IVersion {
|
|
203
|
+
version: string;
|
|
204
|
+
timestamp: number;
|
|
205
|
+
}
|
|
206
|
+
declare enum UpdateDialogResult {
|
|
207
|
+
cancel = 0,
|
|
208
|
+
ignore = 1,
|
|
209
|
+
reload = 2
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
declare class MatUpdateDialog implements OnInit {
|
|
213
|
+
readonly config: IUpdateConfig;
|
|
214
|
+
private readonly myMatDialogRef;
|
|
215
|
+
constructor(config: IUpdateConfig);
|
|
216
|
+
ngOnInit(): void;
|
|
217
|
+
close(result: UpdateDialogResult): void;
|
|
218
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MatUpdateDialog, never>;
|
|
219
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MatUpdateDialog, "mosa-mat-update-dialog", never, {}, {}, never, never, true, never>;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
declare class UpdateDialog {
|
|
223
|
+
set updateConfig(config: IUpdateConfig);
|
|
224
|
+
private firstLoad;
|
|
225
|
+
private blocked;
|
|
226
|
+
private interval;
|
|
227
|
+
private config;
|
|
228
|
+
private readonly myApiService;
|
|
229
|
+
private readonly myMatDialog;
|
|
230
|
+
constructor();
|
|
231
|
+
private start;
|
|
232
|
+
private openDialog;
|
|
233
|
+
private checkForUpdate;
|
|
234
|
+
private end;
|
|
235
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UpdateDialog, never>;
|
|
236
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UpdateDialog, "mosa-update-dialog[config]", never, { "updateConfig": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
declare class CellEditorDirective implements OnInit {
|
|
240
|
+
private readonly cellEditor;
|
|
241
|
+
private readonly myElementRef;
|
|
242
|
+
private readonly myCellEditorService;
|
|
243
|
+
constructor();
|
|
244
|
+
onEscapeKeyDown(e: Event): void;
|
|
245
|
+
onShiftKeyDown(e: Event): void;
|
|
246
|
+
onEnterKeyDown(e: Event): void;
|
|
247
|
+
onClick(e: Event): void;
|
|
248
|
+
ngOnInit(): void;
|
|
249
|
+
private moveToNextRowCell;
|
|
250
|
+
private findNextRowEditableColumn;
|
|
251
|
+
private findNextEditableColumn;
|
|
252
|
+
private findPreviousEditableColumn;
|
|
253
|
+
private moveToCell;
|
|
254
|
+
private static invokeElementMethod;
|
|
255
|
+
private static executeMove;
|
|
256
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CellEditorDirective, never>;
|
|
257
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CellEditorDirective, "td[mosaCellEditor]", never, {}, {}, ["cellEditor"], never, true, never>;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
declare class ClickOutsideDirective {
|
|
261
|
+
private readonly elementRef;
|
|
262
|
+
clickOutside: EventEmitter<[HTMLElement, HTMLElement]>;
|
|
263
|
+
enableWhiteListing: boolean;
|
|
264
|
+
constructor(elementRef: ElementRef);
|
|
265
|
+
onClick(targetElement: EventTarget | null): void;
|
|
266
|
+
private static getClosest;
|
|
267
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClickOutsideDirective, never>;
|
|
268
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ClickOutsideDirective, "[clickOutside]", never, { "enableWhiteListing": { "alias": "enableWhiteListing"; "required": false; }; }, { "clickOutside": "clickOutside"; }, never, never, true, never>;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
interface ICellEditorBaseState {
|
|
272
|
+
loading: boolean;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
declare class CellEditorService {
|
|
276
|
+
cellEditor: CellEditorComponent | undefined;
|
|
277
|
+
private documentEditListener;
|
|
278
|
+
constructor();
|
|
279
|
+
updateEditingCell(cellEditor: CellEditorComponent): void;
|
|
280
|
+
bindDocumentEditListener(): void;
|
|
281
|
+
isEditingCellValid(): boolean;
|
|
282
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CellEditorService, never>;
|
|
283
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CellEditorService>;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
declare class LoggerService extends CoreLoggerService {
|
|
287
|
+
private loggerComp;
|
|
288
|
+
/**
|
|
289
|
+
* Default constructor
|
|
290
|
+
*/
|
|
291
|
+
constructor();
|
|
292
|
+
/**
|
|
293
|
+
* Setter for logger
|
|
294
|
+
* @param component
|
|
295
|
+
* @param defaultConfig
|
|
296
|
+
*/
|
|
297
|
+
logger(component: LoggerComponent, defaultConfig: ILoggerDefaultConfig): void;
|
|
298
|
+
/**
|
|
299
|
+
* Shows the log
|
|
300
|
+
* @param type
|
|
301
|
+
* @param config
|
|
302
|
+
*/
|
|
303
|
+
show(config: ILoggerConfig, type: LogType): void;
|
|
304
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoggerService, never>;
|
|
305
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<LoggerService>;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
declare class LoggerFacade {
|
|
309
|
+
protected store$: BehaviorSubject<ILoggerState>;
|
|
310
|
+
constructor();
|
|
311
|
+
get snapshot(): ILoggerState;
|
|
312
|
+
subState(): Observable<ILoggerState>;
|
|
313
|
+
updateLogs(logs: ILog[]): void;
|
|
314
|
+
private updateState;
|
|
315
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoggerFacade, never>;
|
|
316
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<LoggerFacade>;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
declare const provideMosaMaterial: () => EnvironmentProviders;
|
|
320
|
+
|
|
321
|
+
export { AlertWidget, CellEditorBaseComponent, CellEditorComponent, CellEditorDirective, CellEditorService, ClickOutsideDirective, ConfirmDialog, ConfirmDialogAction, ConfirmDialogData, ConfirmDialogResult, ListSkeletonLoader, LoadingButtonComponent, LoggerComponent, LoggerFacade, LoggerService, MatUpdateDialog, Skeleton, SkeletonComponent, TableSkeletonLoader, UpdateDialog, UpdateDialogResult, provideMosaMaterial };
|
|
322
|
+
export type { ICellEditorBaseState, ILoggerState, ITableItem, IUpdateConfig, IVersion, TableItem };
|