@porscheinformatik/material-addons 14.0.1-beta.1 → 14.1.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/esm2020/lib/button/button.mjs +7 -0
- package/esm2020/lib/button/button.module.mjs +26 -0
- package/esm2020/lib/button/danger-button/danger-button.component.mjs +28 -0
- package/esm2020/lib/button/flat-button/link-button.component.mjs +28 -0
- package/esm2020/lib/button/icon-button/icon-button.component.mjs +28 -0
- package/esm2020/lib/button/mad-basic-button.mjs +39 -0
- package/esm2020/lib/button/outline-button/outline-button.component.mjs +28 -0
- package/esm2020/lib/button/primary-button/primary-button.component.mjs +28 -0
- package/esm2020/lib/card/card.component.mjs +129 -0
- package/esm2020/lib/card/card.mjs +2 -0
- package/esm2020/lib/card/card.module.mjs +23 -0
- package/esm2020/lib/content-panel/content-header/content-header.component.mjs +11 -0
- package/esm2020/lib/content-panel/content-panel-container/content-panel-container.component.mjs +11 -0
- package/esm2020/lib/content-panel/content-panel-container-content/content-panel-container-content.component.mjs +11 -0
- package/esm2020/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.mjs +11 -0
- package/esm2020/lib/content-panel/content-panel.module.mjs +42 -0
- package/esm2020/lib/content-panel/main-container/main-container.component.mjs +11 -0
- package/esm2020/lib/data-table/data-table-action-type.mjs +6 -0
- package/esm2020/lib/data-table/data-table-action.mjs +2 -0
- package/esm2020/lib/data-table/data-table-column-definition.mjs +2 -0
- package/esm2020/lib/data-table/data-table-column.mjs +2 -0
- package/esm2020/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.mjs +103 -0
- package/esm2020/lib/data-table/data-table.component.mjs +504 -0
- package/esm2020/lib/data-table/data-table.mjs +3 -0
- package/esm2020/lib/data-table/data-table.module.mjs +81 -0
- package/esm2020/lib/flowbar/flowbar.component.mjs +190 -0
- package/esm2020/lib/flowbar/flowbar.module.mjs +19 -0
- package/esm2020/lib/material-action-button/material-action-button.component.mjs +34 -0
- package/esm2020/lib/material-action-button/material-action-button.module.mjs +22 -0
- package/esm2020/lib/material-addons.module.mjs +45 -0
- package/esm2020/lib/numeric-field/number-format.service.mjs +139 -0
- package/esm2020/lib/numeric-field/numeric-field.directive.mjs +295 -0
- package/esm2020/lib/numeric-field/numeric-field.mjs +2 -0
- package/esm2020/lib/numeric-field/numeric-field.module.mjs +24 -0
- package/esm2020/lib/quick-list/base-quick-list.component.mjs +101 -0
- package/esm2020/lib/quick-list/quick-list-compact/quick-list-compact.component.mjs +20 -0
- package/esm2020/lib/quick-list/quick-list.component.mjs +21 -0
- package/esm2020/lib/quick-list/quick-list.mjs +4 -0
- package/esm2020/lib/quick-list/quick-list.module.mjs +23 -0
- package/esm2020/lib/readonly/readonly-form-field/readonly-form-field.component.mjs +155 -0
- package/esm2020/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.mjs +185 -0
- package/esm2020/lib/readonly/readonly-form-field.module.mjs +24 -0
- package/esm2020/lib/stepper/mad-stepper-animation.mjs +13 -0
- package/esm2020/lib/stepper/step-header/step-header.component.mjs +78 -0
- package/esm2020/lib/stepper/stepper.component.mjs +160 -0
- package/esm2020/lib/stepper/stepper.module.mjs +23 -0
- package/esm2020/lib/table/column-header.mjs +2 -0
- package/esm2020/lib/table/table-action.mjs +2 -0
- package/esm2020/lib/table/table.component.mjs +130 -0
- package/esm2020/lib/table/table.mjs +2 -0
- package/esm2020/lib/table/table.module.mjs +56 -0
- package/esm2020/lib/throttle-click/throttle-click.directive.mjs +38 -0
- package/esm2020/lib/throttle-click/throttle-click.module.mjs +18 -0
- package/esm2020/lib/toolbar/toolbar-action.interface.mjs +2 -0
- package/esm2020/lib/toolbar/toolbar.component.mjs +78 -0
- package/esm2020/lib/toolbar/toolbar.module.mjs +56 -0
- package/esm2020/lib/toolbar/toolbar.service.mjs +124 -0
- package/esm2020/porscheinformatik-material-addons.mjs +5 -0
- package/esm2020/public_api.mjs +41 -0
- package/fesm2015/porscheinformatik-material-addons.mjs +2984 -0
- package/fesm2015/porscheinformatik-material-addons.mjs.map +1 -0
- package/fesm2020/porscheinformatik-material-addons.mjs +2962 -0
- package/fesm2020/porscheinformatik-material-addons.mjs.map +1 -0
- package/package.json +5 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"porscheinformatik-material-addons.mjs","sources":["../../../projects/material-addons/src/lib/material-action-button/material-action-button.component.ts","../../../projects/material-addons/src/lib/material-action-button/material-action-button.component.html","../../../projects/material-addons/src/lib/material-action-button/material-action-button.module.ts","../../../projects/material-addons/src/lib/button/mad-basic-button.ts","../../../projects/material-addons/src/lib/button/danger-button/danger-button.component.ts","../../../projects/material-addons/src/lib/button/danger-button/danger-button.component.html","../../../projects/material-addons/src/lib/button/flat-button/link-button.component.ts","../../../projects/material-addons/src/lib/button/flat-button/link-button.component.html","../../../projects/material-addons/src/lib/button/icon-button/icon-button.component.ts","../../../projects/material-addons/src/lib/button/icon-button/icon-button.component.html","../../../projects/material-addons/src/lib/button/outline-button/outline-button.component.ts","../../../projects/material-addons/src/lib/button/outline-button/outline-button.component.html","../../../projects/material-addons/src/lib/button/primary-button/primary-button.component.ts","../../../projects/material-addons/src/lib/button/primary-button/primary-button.component.html","../../../projects/material-addons/src/lib/button/button.module.ts","../../../projects/material-addons/src/lib/numeric-field/number-format.service.ts","../../../projects/material-addons/src/lib/readonly/readonly-form-field/readonly-form-field.component.ts","../../../projects/material-addons/src/lib/readonly/readonly-form-field/readonly-form-field.component.html","../../../projects/material-addons/src/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.ts","../../../projects/material-addons/src/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.html","../../../projects/material-addons/src/lib/readonly/readonly-form-field.module.ts","../../../projects/material-addons/src/lib/toolbar/toolbar.service.ts","../../../projects/material-addons/src/lib/toolbar/toolbar.component.ts","../../../projects/material-addons/src/lib/toolbar/toolbar.component.html","../../../projects/material-addons/src/lib/toolbar/toolbar.module.ts","../../../projects/material-addons/src/lib/numeric-field/numeric-field.directive.ts","../../../projects/material-addons/src/lib/numeric-field/numeric-field.module.ts","../../../projects/material-addons/src/lib/throttle-click/throttle-click.directive.ts","../../../projects/material-addons/src/lib/card/card.component.ts","../../../projects/material-addons/src/lib/card/card.component.html","../../../projects/material-addons/src/lib/throttle-click/throttle-click.module.ts","../../../projects/material-addons/src/lib/card/card.module.ts","../../../projects/material-addons/src/lib/quick-list/base-quick-list.component.ts","../../../projects/material-addons/src/lib/quick-list/quick-list-compact/quick-list-compact.component.ts","../../../projects/material-addons/src/lib/quick-list/quick-list-compact/quick-list-compact.component.html","../../../projects/material-addons/src/lib/quick-list/quick-list.component.ts","../../../projects/material-addons/src/lib/quick-list/quick-list.component.html","../../../projects/material-addons/src/lib/quick-list/quick-list.module.ts","../../../projects/material-addons/src/lib/table/table.component.ts","../../../projects/material-addons/src/lib/table/table.component.html","../../../projects/material-addons/src/lib/table/table.module.ts","../../../projects/material-addons/src/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.ts","../../../projects/material-addons/src/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.html","../../../projects/material-addons/src/lib/data-table/data-table-action-type.ts","../../../projects/material-addons/src/lib/data-table/data-table.component.ts","../../../projects/material-addons/src/lib/data-table/data-table.component.html","../../../projects/material-addons/src/lib/data-table/data-table.module.ts","../../../projects/material-addons/src/lib/stepper/step-header/step-header.component.ts","../../../projects/material-addons/src/lib/stepper/step-header/step-header.component.html","../../../projects/material-addons/src/lib/stepper/mad-stepper-animation.ts","../../../projects/material-addons/src/lib/stepper/stepper.component.ts","../../../projects/material-addons/src/lib/stepper/step.component.html","../../../projects/material-addons/src/lib/stepper/stepper.component.html","../../../projects/material-addons/src/lib/stepper/stepper.module.ts","../../../projects/material-addons/src/lib/content-panel/content-header/content-header.component.ts","../../../projects/material-addons/src/lib/content-panel/content-header/content-header.component.html","../../../projects/material-addons/src/lib/content-panel/content-panel-container/content-panel-container.component.ts","../../../projects/material-addons/src/lib/content-panel/content-panel-container/content-panel-container.component.html","../../../projects/material-addons/src/lib/content-panel/content-panel-container-content/content-panel-container-content.component.ts","../../../projects/material-addons/src/lib/content-panel/content-panel-container-content/content-panel-container-content.component.html","../../../projects/material-addons/src/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.ts","../../../projects/material-addons/src/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.html","../../../projects/material-addons/src/lib/content-panel/main-container/main-container.component.ts","../../../projects/material-addons/src/lib/content-panel/main-container/main-container.component.html","../../../projects/material-addons/src/lib/content-panel/content-panel.module.ts","../../../projects/material-addons/src/lib/flowbar/flowbar.component.ts","../../../projects/material-addons/src/lib/flowbar/flowbar.component.html","../../../projects/material-addons/src/lib/flowbar/flowbar.module.ts","../../../projects/material-addons/src/lib/material-addons.module.ts","../../../projects/material-addons/src/public_api.ts","../../../projects/material-addons/src/porscheinformatik-material-addons.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mad-material-action-button',\n templateUrl: './material-action-button.component.html',\n styleUrls: ['./material-action-button.component.css'],\n})\nexport class MaterialActionButtonComponent {\n @Input()\n actionName: string;\n\n @Input()\n id: string;\n\n @Input()\n icon = 'add';\n\n @Input()\n routerLink: string;\n\n // Sets the lower padding higher providing some bottom space for a fixed paginator\n @Input()\n liftHigher = true;\n\n @Input()\n liftHigher2 = false;\n}\n","<div class=\"material-action-button {{ liftHigher ? 'lift-higher' : '' }} {{ liftHigher2 ? 'lift-higher-2' : '' }}\">\n <a [routerLink]=\"routerLink\">\n <button [id]=\"id\" mat-fab [matTooltipPosition]=\"'left'\" [matTooltip]=\"actionName\" color=\"primary\" *ngIf=\"!liftHigher2\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n <button [id]=\"id\" mat-mini-fab [matTooltipPosition]=\"'left'\" [matTooltip]=\"actionName\" color=\"accent\" *ngIf=\"liftHigher2\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n </a>\n</div>\n","import { NgModule } from '@angular/core';\nimport { MaterialActionButtonComponent } from './material-action-button.component';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [MaterialActionButtonComponent],\n imports: [CommonModule, RouterModule, MatButtonModule, MatIconModule, MatTooltipModule],\n exports: [MaterialActionButtonComponent],\n})\nexport class MaterialActionButtonModule {}\n","import {Component, ElementRef, HostBinding} from '@angular/core';\n\n@Component({\n template: ''\n})\nexport abstract class MadBasicButton {\n button: ElementRef;\n disabled: boolean;\n\n @HostBinding('style.pointer-events')\n get pointerEvent(): string {\n return this.disabled ? 'none' : 'auto';\n }\n\n @HostBinding('style.opacity')\n get opacity(): string {\n return this.disabled ? '0.35' : '1';\n }\n\n disableClick = (e: Event): any => e.stopPropagation();\n\n ngOnChanges(): void {\n this.disableButton();\n }\n\n disableButton(): void {\n if (this.disabled) {\n this.button.nativeElement.addEventListener('click', this.disableClick);\n } else {\n this.button.nativeElement.removeEventListener('click', this.disableClick);\n }\n }\n}\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { MadBasicButton } from '../mad-basic-button';\n\n@Component({\n selector: 'mad-danger-button',\n templateUrl: './danger-button.component.html',\n styleUrls: ['./danger-button.component.css'],\n})\nexport class DangerButtonComponent extends MadBasicButton {\n @Input()\n type: string;\n\n @Input()\n disabled: boolean;\n\n @Input()\n title = '';\n\n @ViewChild('btn', { read: ElementRef, static: true }) button: ElementRef;\n\n constructor() {\n super();\n super.button = this.button;\n super.disabled = this.disabled;\n }\n}\n","<button mat-raised-button color=\"warn\" [type]=\"type\" [title]=\"title\" #btn>\n <ng-content></ng-content>\n</button>\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { MadBasicButton } from '../mad-basic-button';\n@Component({\n selector: 'mad-link-button',\n templateUrl: './link-button.component.html',\n styleUrls: ['./link-button.component.css'],\n})\nexport class LinkButtonComponent extends MadBasicButton {\n @Input()\n type: string;\n\n @Input()\n disabled: boolean;\n\n @Input()\n title = '';\n\n @ViewChild('btn', { read: ElementRef, static: true }) button: ElementRef;\n\n constructor() {\n super();\n super.button = this.button;\n super.disabled = this.disabled;\n }\n}\n","<button [title]=\"title\" [type]=\"type\" color=\"primary\" #btn mat-button>\n <ng-content></ng-content>\n</button>\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { MadBasicButton } from '../mad-basic-button';\n\n@Component({\n selector: 'mad-icon-button',\n templateUrl: './icon-button.component.html',\n styleUrls: ['./icon-button.component.css'],\n})\nexport class IconButtonComponent extends MadBasicButton {\n @Input()\n type: string;\n\n @Input()\n disabled: boolean;\n\n @Input()\n title = '';\n\n @ViewChild('btn', { read: ElementRef, static: true }) button: ElementRef;\n\n constructor() {\n super();\n super.button = this.button;\n super.disabled = this.disabled;\n }\n}\n","<button mat-icon-button color=\"primary\" [type]=\"type\" [title]=\"title\" #btn>\n <ng-content></ng-content>\n</button>\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { MadBasicButton } from '../mad-basic-button';\n\n@Component({\n selector: 'mad-outline-button',\n templateUrl: './outline-button.component.html',\n styleUrls: ['./outline-button.component.css'],\n})\nexport class OutlineButtonComponent extends MadBasicButton {\n @Input()\n type: string;\n\n @Input()\n disabled: boolean;\n\n @Input()\n title = '';\n\n @ViewChild('btn', { read: ElementRef, static: true }) button: ElementRef;\n\n constructor() {\n super();\n super.button = this.button;\n super.disabled = this.disabled;\n }\n}\n","<button mat-stroked-button color=\"primary\" [type]=\"type\" [title]=\"title\" #btn>\n <ng-content></ng-content>\n</button>\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { MadBasicButton } from '../mad-basic-button';\n\n@Component({\n selector: 'mad-primary-button',\n templateUrl: './primary-button.component.html',\n styleUrls: ['./primary-button.component.css'],\n})\nexport class PrimaryButtonComponent extends MadBasicButton {\n @Input()\n type: string;\n\n @Input()\n disabled: boolean;\n\n @Input()\n title = '';\n\n @ViewChild('btn', { read: ElementRef, static: true }) button: ElementRef;\n\n constructor() {\n super();\n super.button = this.button;\n super.disabled = this.disabled;\n }\n}\n","<button mat-raised-button color=\"primary\" [type]=\"type\" [title]=\"title\" #btn>\n <ng-content></ng-content>\n</button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { PrimaryButtonComponent } from './primary-button/primary-button.component';\nimport { OutlineButtonComponent } from './outline-button/outline-button.component';\nimport { LinkButtonComponent } from './flat-button/link-button.component';\nimport { IconButtonComponent } from './icon-button/icon-button.component';\nimport { DangerButtonComponent } from './danger-button/danger-button.component';\n\n@NgModule({\n declarations: [PrimaryButtonComponent, OutlineButtonComponent, LinkButtonComponent, DangerButtonComponent, IconButtonComponent],\n imports: [CommonModule, RouterModule, MatButtonModule, MatIconModule, MatTooltipModule],\n exports: [PrimaryButtonComponent, OutlineButtonComponent, LinkButtonComponent, DangerButtonComponent, IconButtonComponent],\n})\nexport class ButtonModule {}\n","import { Inject, LOCALE_ID, Injectable } from '@angular/core';\n\nexport declare interface FormatOptions {\n decimalPlaces?: number;\n\n finalFormatting?: boolean;\n\n autofillDecimals?: boolean;\n}\n\nexport declare interface StripOptions {\n decimalPlaces?: number;\n\n removeLeadingZeros?: boolean;\n}\n\n@Injectable({\n providedIn: 'any',\n})\nexport class NumberFormatService {\n static readonly NEGATIVE = '-';\n static readonly NUMBERS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n static readonly DEFAULT_FINAL_FORMATTING = true;\n static readonly DEFAULT_DECIMAL_PLACES = 2;\n static readonly DEFAULT_AUTOFILL_DECIMALS = false;\n static readonly DEFAULT_REMOVE_LEADING_ZEROS = false;\n\n decimalSeparator: ',' | '.';\n groupingSeparator: ',' | '.';\n\n allowedKeys: string[] = [];\n\n constructor(@Inject(LOCALE_ID) locale: string) {\n // try to get the current formatting\n const localeDecimalSeparator = (1.1).toLocaleString(locale).charAt(1);\n this.decimalSeparator = localeDecimalSeparator === ',' ? ',' : '.';\n this.groupingSeparator = localeDecimalSeparator === ',' ? '.' : ',';\n\n this.allowedKeys = [...NumberFormatService.NUMBERS, NumberFormatService.NEGATIVE, this.decimalSeparator];\n }\n\n static valueIsSet(value: any): boolean {\n return typeof value !== 'undefined' && value !== null && (typeof value !== 'string' || value.length !== 0);\n }\n\n format(value: number, options?: Partial<FormatOptions>): string {\n return NumberFormatService.valueIsSet(value)\n ? this.formatNumber(value.toString().replace(new RegExp('[.]', 'g'), this.decimalSeparator), options)\n : '';\n }\n\n formatNumber(value: string, options?: Partial<FormatOptions>): string {\n const autofillDecimals = this.valueOrDefault(options?.autofillDecimals, NumberFormatService.DEFAULT_AUTOFILL_DECIMALS);\n const decimalPlaces = this.valueOrDefault(options?.decimalPlaces, NumberFormatService.DEFAULT_DECIMAL_PLACES);\n const finalFormatting = this.valueOrDefault(options?.finalFormatting, NumberFormatService.DEFAULT_FINAL_FORMATTING);\n\n let result = this.strip(value, { decimalPlaces, removeLeadingZeros: finalFormatting });\n\n /* add grouping separator */\n const decimalIndex = result.indexOf(this.decimalSeparator);\n const isNegative = result.startsWith(NumberFormatService.NEGATIVE);\n let i = decimalIndex > -1 ? decimalIndex : result.length;\n while (i > (isNegative ? 4 : 3)) {\n i -= 3;\n result = result.substring(0, i) + this.groupingSeparator + result.substring(i, result.length);\n }\n\n if (finalFormatting) {\n if (decimalPlaces > 0 && !!result) {\n /* autofill decimal places */\n let actualDecimalIndex = result.indexOf(this.decimalSeparator);\n if (autofillDecimals) {\n if (actualDecimalIndex === -1) {\n actualDecimalIndex = result.length;\n result += this.decimalSeparator;\n }\n\n result = this.addMissingLeadingZero(result, actualDecimalIndex);\n actualDecimalIndex = result.indexOf(this.decimalSeparator);\n\n const actualDecimalPlaces = result.length - actualDecimalIndex - 1;\n for (let j = 0; j < decimalPlaces - actualDecimalPlaces; j++) {\n result += '0';\n }\n } else {\n result = this.addMissingLeadingZero(result, actualDecimalIndex);\n }\n }\n }\n return result;\n }\n\n strip(value: string, options?: StripOptions): string {\n const decimalPlaces = this.valueOrDefault(options?.decimalPlaces, NumberFormatService.DEFAULT_DECIMAL_PLACES);\n const removeLeadingZeros = this.valueOrDefault(options?.removeLeadingZeros, NumberFormatService.DEFAULT_REMOVE_LEADING_ZEROS);\n\n let result = '';\n let indexDecimalSep = -1;\n let j = -1;\n let ignoredChars = 0;\n for (const char of value) {\n j++;\n if (this.allowedKeys.includes(char)) {\n if (char === this.decimalSeparator) {\n if (decimalPlaces === 0) {\n /* dismiss content after a decimal separator, when no places allowed */\n break;\n } else if (indexDecimalSep > -1) {\n /* ignore subsequent decimal separators */\n continue;\n }\n indexDecimalSep = j;\n }\n if (char === '0' && removeLeadingZeros) {\n /* remove leading zero only if it's not the only zero in the 'value' string */\n if ((result.length === 0 && j + 1 !== value.length) || result === NumberFormatService.NEGATIVE) {\n ignoredChars++;\n continue;\n }\n }\n if (char === NumberFormatService.NEGATIVE && j > 0) {\n /* dismiss content after a negative sign not on first position */\n break;\n }\n if (indexDecimalSep > -1 && result.length + ignoredChars > indexDecimalSep + decimalPlaces) {\n /* dismiss content after maximum decimal places reached */\n break;\n }\n result += char;\n } else if (char === this.groupingSeparator) {\n if (indexDecimalSep === -1) {\n ignoredChars++;\n }\n } else {\n /* dismiss content after a invalid character */\n break;\n }\n }\n return result;\n }\n\n private addMissingLeadingZero(result: string, actualDecimalIndex: number): string {\n const isNegative = result.startsWith(NumberFormatService.NEGATIVE);\n /* autoadd a zero before decimal separator, when it's missing */\n if (actualDecimalIndex === 0) {\n result = '0' + result;\n }\n /* autoadd a zero before decimal separator, when it's missing, for negative values */\n if (actualDecimalIndex === 1 && isNegative) {\n result = result[0] + '0' + result.substring(1, result.length);\n }\n return result;\n }\n\n private valueOrDefault(value: any, defaultValue: any): any {\n return NumberFormatService.valueIsSet(value) ? value : defaultValue;\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { NumberFormatService } from '../../numeric-field/number-format.service';\n\n/**\n * Read-only mat-form-field representation of provided value\n *\n * @author Stefan Laesser\n */\n\n@Component({\n selector: 'mad-readonly-form-field',\n templateUrl: './readonly-form-field.component.html',\n styleUrls: ['./readonly-form-field.component.css'],\n})\nexport class ReadOnlyFormFieldComponent implements OnChanges, AfterViewChecked {\n @Input('value') value: any;\n @Input('label') label: string;\n @Input('textAlign') textAlign: 'right' | 'left' = 'left';\n @Input('formatNumber') formatNumber = false;\n @Input('decimalPlaces') decimalPlaces = 2;\n @Input('roundDisplayValue') roundValue = false;\n @Input('autofillDecimals') autofillDecimals = false;\n @Input('unit') unit: string | null = null;\n @Input('unitPosition') unitPosition: 'right' | 'left' = 'left';\n @Input('errorMessage') errorMessage: string | null = null;\n @Input() multiline = false;\n @Input() rows = 3;\n @Input() id: string;\n /*\n * If shrinkIfEmpty is set to \"false\", nothing changes\n * If set to \"true\" and multiline is also \"true\", the textarea will\n * shrink to one row, if value is empty/null/undefined.\n * Otherwise, the defined rows-value will be used\n */\n @Input() shrinkIfEmpty = false;\n @ViewChild('inputEl') inputEl: ElementRef;\n errorMatcher: ErrorStateMatcher = {\n isErrorState: () => !!this.errorMessage,\n };\n\n private unitSpan: HTMLSpanElement;\n private textSpan: HTMLSpanElement;\n\n constructor(private changeDetector: ChangeDetectorRef, private renderer: Renderer2, private numberFormatService: NumberFormatService) {}\n\n ngOnChanges(_: SimpleChanges): void {\n if (!NumberFormatService.valueIsSet(this.value)) {\n this.value = '-';\n if (this.shrinkIfEmpty) {\n this.rows = 1;\n }\n } else if (this.formatNumber && typeof this.value === 'number') {\n this.value = this.numberFormatService.format(this.value, {\n decimalPlaces: this.decimalPlaces,\n finalFormatting: true,\n autofillDecimals: this.autofillDecimals,\n });\n }\n this.changeDetector.detectChanges();\n }\n\n // TODO direct copy from NumericFieldDirective\n ngAfterViewChecked(): void {\n this.injectUnitSymbol();\n }\n\n private injectUnitSymbol(): void {\n // Need to inject the unit symbol when the input element width is set to its actual value,\n // otherwise the icon wont show in the correct position\n if (!!this.unit && !this.unitSpan && this.inputEl.nativeElement.offsetWidth !== 0) {\n // Get the input wrapper and apply necessary styles\n const inputWrapper = this.inputEl.nativeElement.parentNode.parentNode;\n\n // Create the span with unit symbol and apply necessary styles\n this.unitSpan = this.renderer.createElement('span');\n\n if (this.unitPosition === 'left') {\n this.renderer.setAttribute(this.unitSpan, 'matPrefix', '');\n this.renderer.setStyle(this.unitSpan, 'padding-right', '5px');\n this.renderer.insertBefore(inputWrapper, this.unitSpan, inputWrapper.children[0]);\n } else {\n this.renderer.setAttribute(this.unitSpan, 'matSuffix', '');\n this.renderer.setStyle(this.unitSpan, 'padding-left', '5px');\n this.renderer.appendChild(inputWrapper, this.unitSpan);\n }\n }\n\n // special handling to move unit symbol along with display value\n if (!!this.unitSpan && this.textAlign === 'left' && this.unitPosition === 'right') {\n const inputStyles = window.getComputedStyle(this.inputEl.nativeElement.parentElement, null);\n this.unitSpan.style.position = 'absolute';\n this.unitSpan.style.marginTop = inputStyles.getPropertyValue('border-top-width');\n this.unitSpan.style.paddingTop = inputStyles.getPropertyValue('padding-top');\n this.unitSpan.style.paddingBottom = inputStyles.getPropertyValue('padding-bottom');\n\n if (!this.textSpan) {\n this.textSpan = document.createElement('span');\n document.body.appendChild(this.textSpan);\n this.textSpan.style.font = inputStyles.getPropertyValue('font');\n this.textSpan.style.fontSize = inputStyles.getPropertyValue('font-size');\n this.textSpan.style.height = 'auto';\n this.textSpan.style.width = 'auto';\n this.textSpan.style.position = 'absolute';\n this.textSpan.style.top = '0';\n this.textSpan.style.whiteSpace = 'no-wrap';\n this.textSpan.style.visibility = 'hidden';\n }\n this.textSpan.innerHTML = this.value;\n const width = Math.min(this.inputEl.nativeElement.clientWidth - this.unitSpan.clientWidth, Math.ceil(this.textSpan.clientWidth));\n this.unitSpan.style.left = width + 'px';\n }\n // always reset unit symbol\n if (!!this.unitSpan) {\n this.unitSpan.textContent = this.unit;\n }\n }\n}\n","<mat-form-field class=\"form-group\" appearance=\"none\">\n <mat-label>{{ label }}</mat-label>\n <input\n *ngIf=\"!multiline\"\n [ngModel]=\"value\"\n [ngClass]=\"'text-' + textAlign\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n matInput\n #inputEl\n />\n\n <textarea\n *ngIf=\"multiline\"\n [rows]=\"rows\"\n [ngModel]=\"value\"\n class=\"multiline\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n matInput\n ></textarea>\n <mat-error>{{ errorMessage }}</mat-error>\n</mat-form-field>\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\n\n/**\n * Wraps a mat-form-field to replace it by a readOnly representation if necessary\n *\n * @author Stefan Laesser\n */\n@Component({\n selector: 'mad-readonly-form-field-wrapper',\n templateUrl: './readonly-form-field-wrapper.component.html',\n styleUrls: ['./readonly-form-field-wrapper.component.css'],\n})\nexport class ReadOnlyFormFieldWrapperComponent implements OnInit, AfterViewInit, OnChanges, AfterViewChecked {\n @ViewChild('contentWrapper', { static: false })\n originalContent: ElementRef;\n @ViewChild('readOnlyContentWrapper', { static: false })\n readOnlyContentWrapper: ElementRef;\n\n /**\n * If set to \"false\", the contained mat-form-field is rendered in all it's glory.\n * If set to \"true\", a readonly representation of the value is shown using the mat-form-fields label.\n */\n @Input() readonly = true;\n\n /**\n * This input *MUST MATCH* the mat-form-field value to ensure correct data\n * binding and formatting of readOnly representation!\n */\n @Input('value') value: any;\n\n @Input('textAlign') textAlign: 'right' | 'left' = 'left';\n @Input('formatNumber') formatNumber = false;\n @Input('decimalPlaces') decimalPlaces = 2;\n @Input('roundDisplayValue') roundValue = false;\n @Input('autofillDecimals') autofillDecimals = false;\n @Input('unit') unit: string | null = null;\n @Input('unitPosition') unitPosition: 'right' | 'left' = 'left';\n @Input('errorMessage') errorMessage: string | null = null;\n @Input() id: string;\n /**\n * If set to \"false\", a readonly input will be rendered.\n * If set to \"true\", a readonly textarea will be rendered instead.\n */\n @Input() multiline = false;\n\n /**\n * Defines the rows for the readonly textarea.\n */\n @Input() rows = 3;\n\n /**\n * If shrinkIfEmpty is set to \"false\", nothing changes\n * If set to \"true\" and multiline is also \"true\", the textarea will\n * shrink to one row, if value is empty/null/undefined.\n * Otherwise, the defined rows-value will be used\n */\n @Input() shrinkIfEmpty = false;\n\n /**\n * Automatically taken from the contained <mat-label>\n */\n label: string;\n\n toolTipForInputEnabled = false;\n toolTipText: string;\n\n constructor(private changeDetector: ChangeDetectorRef, private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.doRendering();\n }\n\n ngAfterViewInit(): void {\n this.setReadonlyFieldStyle();\n this.doRendering();\n }\n\n ngAfterViewChecked(): void {\n this.setReadonlyFieldStyle();\n this.setTooltipForOverflownField();\n }\n\n ngOnChanges(_: SimpleChanges): void {\n this.doRendering();\n }\n\n getLabel(): string {\n if (!this.label) {\n this.extractLabel();\n }\n return this.label;\n }\n\n private doRendering(): void {\n if (!this.originalContent) {\n return;\n }\n if (!this.readonly) {\n this.correctWidth();\n return;\n }\n\n this.changeDetector.detectChanges();\n }\n\n private extractLabel(): void {\n if (!this.originalContent || !this.originalContent.nativeElement) {\n return null;\n }\n const labelElement = this.originalContent.nativeElement.querySelector('mat-label');\n this.label = labelElement ? labelElement.innerHTML : 'mat-label is missing!';\n }\n\n private correctWidth(): void {\n const formField = this.originalContent.nativeElement.querySelector('mat-form-field');\n if (formField) {\n formField.setAttribute('style', 'width:100%');\n }\n }\n\n private setReadonlyFieldStyle(): void {\n const input = this.readOnlyContentWrapper?.nativeElement?.querySelector('input');\n\n if (input) {\n const textOverFlowStyleValue = this.getTextOverFlowStyleValue();\n if (textOverFlowStyleValue) {\n input.setAttribute('style', 'text-overflow: ' + textOverFlowStyleValue);\n }\n }\n }\n\n // Ellipsis is enabled by default as text-overflow behaviour\n private getTextOverFlowStyleValue(): string {\n // it works only if the style is added to the component directly. Should find a way for get it from the calculated\n // style. Than it would be possible to define the text-overflow in css for the whole application\n const textOverflow = this.elementRef?.nativeElement?.style.textOverflow;\n if (!textOverflow) {\n return 'ellipsis';\n }\n\n return textOverflow;\n }\n\n private setTooltipForOverflownField(): void {\n if (this.isEllipsisForTextOverflowEnabled()) {\n const input = this.readOnlyContentWrapper?.nativeElement?.querySelector('input');\n\n if (input) {\n this.toolTipForInputEnabled = this.isTextOverflown(input);\n if (this.toolTipForInputEnabled) {\n this.toolTipText = this.calculateToolTipText();\n }\n this.changeDetector.detectChanges();\n }\n }\n }\n\n private isEllipsisForTextOverflowEnabled(): boolean {\n return this.getTextOverFlowStyleValue() === 'ellipsis';\n }\n\n private isTextOverflown(input: any): boolean {\n if (input) {\n return input.offsetWidth < input.scrollWidth;\n }\n return false;\n }\n\n private calculateToolTipText(): string {\n if (!this.unit) {\n return this.value;\n }\n\n return this.unitPosition === 'left' ? this.unit + ' ' + this.value : this.value + ' ' + this.unit;\n }\n}\n","<div #contentWrapper [hidden]=\"readonly\">\n <ng-content></ng-content>\n</div>\n\n<div #readOnlyContentWrapper>\n <ng-container *ngIf=\"!!readonly\">\n <mad-readonly-form-field\n [label]=\"getLabel()\"\n [value]=\"value\"\n [textAlign]=\"textAlign\"\n [formatNumber]=\"formatNumber\"\n [decimalPlaces]=\"decimalPlaces\"\n [roundDisplayValue]=\"roundValue\"\n [autofillDecimals]=\"autofillDecimals\"\n [unit]=\"unit\"\n [unitPosition]=\"unitPosition\"\n [errorMessage]=\"errorMessage\"\n [multiline]=\"multiline\"\n [rows]=\"rows\"\n [shrinkIfEmpty]=\"shrinkIfEmpty\"\n [id]=\"id\"\n matTooltip=\"{{toolTipText}}\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"custom-tooltip\"\n matTooltipDisabled=\"{{!toolTipForInputEnabled}}\">\n </mad-readonly-form-field>\n </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { ReadOnlyFormFieldWrapperComponent } from './readonly-form-field-wrapper/readonly-form-field-wrapper.component';\nimport { ReadOnlyFormFieldComponent } from './readonly-form-field/readonly-form-field.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormsModule } from '@angular/forms';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n declarations: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent],\n imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule],\n exports: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent],\n})\nexport class ReadOnlyFormFieldModule {}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BackAction, MainAction, ToolbarAction } from './toolbar-action.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToolbarService implements OnDestroy {\n backAction: BackAction;\n mainActions: MainAction[] = []; // shown on the left, next to title, as big buttons\n toolbarActions: ToolbarAction[] = []; // shown on the right as icons\n toolbarActionsAlwaysAsMenu = false; // show the mobile view (burger menu) for toolbar actions\n dataTitle: string;\n routerSubscription: Subscription;\n private title: string;\n private toolbarActionsMenuTitle = 'More'; // title of the burger menu\n\n private currentUrl: string;\n\n constructor(private router: Router, private translate: TranslateService) {\n this.routerSubscription = this.router.events.subscribe(routingEvent => {\n if (routingEvent instanceof NavigationEnd) {\n if (this.currentUrl !== routingEvent.urlAfterRedirects) {\n this.clearToolbarActions();\n this.clearMainActions();\n delete this.backAction;\n delete this.dataTitle;\n }\n this.currentUrl = router.url;\n }\n });\n }\n\n get toolbarTitle(): string {\n return this.title;\n }\n\n set toolbarTitle(toolbarTitle: string) {\n this.title = toolbarTitle;\n }\n\n ngOnDestroy(): void {\n if (this.routerSubscription) {\n this.routerSubscription.unsubscribe();\n }\n }\n\n getToolbarActions(): ToolbarAction[] {\n return this.toolbarActions;\n }\n\n addToolbarAction(action: ToolbarAction): void {\n this.translate\n .get(action.i18nActionKey)\n .toPromise()\n .then(translated => {\n action.actionName = translated;\n this.toolbarActions.push(action);\n });\n }\n\n setDataTitle(dataTitle: string): void {\n this.dataTitle = dataTitle;\n }\n\n setToolbarActionsAlwaysAsMenu(toolbarActionsAlwaysAsMenu: boolean): void {\n this.toolbarActionsAlwaysAsMenu = toolbarActionsAlwaysAsMenu;\n }\n\n getToolbarActionsAlwaysAsMenu(): boolean {\n return this.toolbarActionsAlwaysAsMenu;\n }\n\n getDataTitle(): string {\n return this.dataTitle;\n }\n\n clearToolbarActions(): void {\n this.toolbarActions = [];\n }\n\n getMainActions(): MainAction[] {\n return this.mainActions;\n }\n\n getBackAction(): BackAction {\n return this.backAction;\n }\n\n setToolbarActionsMenuTitle(toolbarActionsMenuTitle: string): void {\n this.toolbarActionsMenuTitle = toolbarActionsMenuTitle;\n }\n\n getToolbarActionsMenuTitle(): string {\n return this.toolbarActionsMenuTitle;\n }\n\n addMainAction(mainAction: MainAction): void {\n this.translate\n .get(mainAction.i18nActionKey)\n .toPromise()\n .then(translated => {\n mainAction.actionName = translated;\n this.mainActions.push(mainAction);\n });\n }\n\n /**\n * Per default the goBackRoute is a routerLink. But if a href should be used (for absolute browser routing) then isAbsoluteUrl can be set to true.\n */\n addBackAction(goBackRoute: string, isAbsoluteUrl = false): void {\n this.backAction = {\n matIcon: 'keyboard_backspace',\n i18nActionKey: '',\n };\n if (!isAbsoluteUrl) {\n this.backAction.routerLink = goBackRoute;\n } else {\n this.backAction.href = goBackRoute;\n }\n }\n\n addSimpleBackButton(overrideIfPresent = false): void {\n if (this.getBackAction() && !overrideIfPresent) {\n return;\n }\n\n this.backAction = {\n matIcon: 'keyboard_backspace',\n i18nActionKey: '',\n action(): void {\n window.history.back();\n },\n };\n }\n\n clearMainActions(): void {\n this.mainActions = [];\n }\n}\n","import { Component } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ToolbarService } from './toolbar.service';\nimport { Observable, of } from 'rxjs';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { map } from 'rxjs/operators';\nimport { Action, BackAction, MainAction, ToolbarAction } from './toolbar-action.interface';\n\n@Component({\n selector: 'mad-toolbar',\n templateUrl: './toolbar.component.html',\n styleUrls: ['./toolbar.component.css'],\n})\nexport class ToolbarComponent {\n isHandset$: Observable<boolean> = this.breakpointObserver.observe([Breakpoints.Handset]).pipe(map(result => result.matches));\n\n constructor(private breakpointObserver: BreakpointObserver, private titleService: Title, private toolbarService: ToolbarService) {}\n\n getTitle(): string {\n const dataTitle = this.toolbarService.getDataTitle();\n const toolbarTitle = this.toolbarService.toolbarTitle;\n const title = !toolbarTitle || toolbarTitle.length <= 0 ? this.titleService.getTitle() : toolbarTitle;\n return !dataTitle || dataTitle.length <= 0 ? title : title + ': ' + dataTitle;\n }\n\n getToolbarActions(): ToolbarAction[] {\n return this.toolbarService.getToolbarActions();\n }\n\n getMainActions(): MainAction[] {\n return this.toolbarService.getMainActions();\n }\n\n hasPermission(action: Action): Observable<boolean> {\n if (!action || !action.showIf) {\n return of(true);\n }\n return action.showIf;\n }\n\n isRouterLink(): boolean {\n return this.toolbarService.getBackAction() && !!this.toolbarService.getBackAction().routerLink;\n }\n\n isAbsoluteLink(): boolean {\n return this.toolbarService.getBackAction() && !!this.toolbarService.getBackAction().href;\n }\n\n isAction(): boolean {\n return this.toolbarService.getBackAction() && !!this.toolbarService.getBackAction().action;\n }\n\n getBackAction(): BackAction {\n return this.toolbarService.getBackAction();\n }\n\n getToolbarActionsAlwaysAsMenu(): boolean {\n return this.toolbarService.getToolbarActionsAlwaysAsMenu();\n }\n\n getToolbarActionsMenuTitle(): string {\n return this.toolbarService.getToolbarActionsMenuTitle();\n }\n\n showBadgeForMenu(): boolean {\n return (\n this.getToolbarActions()\n .slice(1) // the first icon is not shown in menu\n .filter(value => value.badge && value.badge.value).length > 0\n );\n }\n\n hasImportantToolbarActions(): boolean {\n return this.getToolbarActions().filter(value => !!value.importantAction).length > 0;\n }\n}\n","<mat-toolbar class=\"content-toolbar\">\n <a [routerLink]=\"getBackAction().routerLink\" *ngIf=\"isRouterLink()\">\n <button [id]=\"'go-back'\" color=\"primary\" mat-icon-button class=\"go-back-button\">\n <mat-icon>{{ getBackAction().matIcon }}</mat-icon>\n </button>\n </a>\n <a [href]=\"getBackAction().href\" *ngIf=\"isAbsoluteLink()\">\n <button [id]=\"'go-back'\" class=\"go-back-button\" color=\"primary\" mat-icon-button>\n <mat-icon>{{ getBackAction().matIcon }}</mat-icon>\n </button>\n </a>\n <a (click)=\"getBackAction().action()\" *ngIf=\"isAction()\">\n <button [id]=\"'go-back'\" color=\"primary\" mat-icon-button class=\"go-back-button\">\n <mat-icon>{{ getBackAction().matIcon }}</mat-icon>\n </button>\n </a>\n\n <span class=\"toolbar-title\">{{ getTitle() }}</span>\n\n <ng-container *ngFor=\"let mainAction of getMainActions(); let i = index\">\n <ng-container *ngIf=\"hasPermission(mainAction) | async\">\n <div *ngIf=\"!(isHandset$ | async)\">\n <a [routerLink]=\"mainAction.routerLink\">\n <mad-primary-button [id]=\"mainAction.matIcon\" style=\"margin-left: 56px\">\n <mat-icon>{{ mainAction.matIcon }}</mat-icon>\n {{ mainAction.actionName }}\n </mad-primary-button>\n </a>\n </div>\n <div *ngIf=\"isHandset$ | async\">\n <mad-material-action-button\n [actionName]=\"mainAction.actionName\"\n [icon]=\"mainAction.matIcon\"\n [liftHigher]=\"mainAction.liftHigherOnMobile\"\n [liftHigher2]=\"i > 0\"\n [routerLink]=\"mainAction.routerLink\"\n [id]=\"mainAction.matIcon\"\n >\n </mad-material-action-button>\n </div>\n </ng-container>\n </ng-container>\n\n <div class=\"right-aligned no-print\">\n <ng-container *ngFor=\"let action of getToolbarActions(); let i = index\">\n <ng-container *ngIf=\"hasPermission(action) | async\">\n <mad-icon-button\n (click)=\"action.action()\"\n *ngIf=\"(!(isHandset$ | async) && !getToolbarActionsAlwaysAsMenu()) || i < (getToolbarActions().length > 2 ? (hasImportantToolbarActions() ? 0:1) : 2) || !!action.importantAction\"\n [id]=\"action.matIcon\"\n [matTooltip]=\"action.actionName\"\n type=\"button\">\n <mat-icon\n [matBadgeColor]=\"action.badge ? action.badge.color : 'primary'\"\n matBadgePosition=\"below after\"\n [matBadge]=\"action.badge ? action.badge.value : null\"\n >{{ action.matIcon }}</mat-icon>\n </mad-icon-button>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"(isHandset$ | async) || getToolbarActionsAlwaysAsMenu()\">\n <ng-container *ngIf=\"getToolbarActions().length > 2\">\n <mad-icon-button type=\"button\" [matMenuTriggerFor]=\"burgerMenu\" [matTooltip]=\"getToolbarActionsMenuTitle()\">\n <mat-icon\n matBadgeColor=\"warn\"\n [matBadge]=\"showBadgeForMenu() ? '⁠' : null\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n >more_vert\n </mat-icon>\n </mad-icon-button>\n <mat-menu #burgerMenu=\"matMenu\" class=\"no-print\">\n <ng-container *ngFor=\"let action of getToolbarActions(); let i = index\">\n <ng-container *ngIf=\"!action.importantAction\">\n <ng-container *ngIf=\"hasPermission(action) | async\">\n <button *ngIf=\"i >= (hasImportantToolbarActions() ? 0:1)\" mat-menu-item (click)=\"action.action()\">\n <mat-icon\n color=\"primary\"\n [matBadgeColor]=\"action.badge ? action.badge.color : 'primary'\"\n [matBadge]=\"action.badge ? action.badge.value : null\"\n matBadgePosition=\"below after\"\n >{{ action.matIcon }}</mat-icon\n >\n {{ action.actionName }}\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </mat-menu>\n </ng-container>\n </ng-container>\n </div>\n</mat-toolbar>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { ToolbarComponent } from './toolbar.component';\nimport { MaterialActionButtonModule } from '../material-action-button/material-action-button.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ButtonModule } from '../button/button.module';\nimport { MatBadgeModule } from '@angular/material/badge';\n\n@NgModule({\n declarations: [ToolbarComponent],\n imports: [\n CommonModule,\n RouterModule,\n MatMenuModule,\n MatButtonModule,\n MatToolbarModule,\n MatIconModule,\n MaterialActionButtonModule,\n MatTooltipModule,\n ButtonModule,\n MatBadgeModule,\n ],\n exports: [ToolbarComponent],\n})\nexport class ToolbarModule {}\n","/*\n * Copyright (c) 2018-2020 Porsche Informatik. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n AfterViewChecked,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NumberFormatService } from './number-format.service';\n\nconst BACK_KEYCODE = 8;\nconst SPACE_KEYCODE = 32;\nconst DEL_KEYCODE = 46;\nconst CONTROL_KEYCODES_UPPER_BORDER = 46;\nconst OTHER_CONTROL_KEYS = new Set([224, 91, 93]);\n\n@Directive({\n selector: '[madNumericField]',\n host: {\n '[class.text-right]': 'textAlign === \"right\"',\n '(change)': 'onChange(getValueForFormControl())',\n '(input)': 'onChange(getValueForFormControl())',\n '(blur)': 'onTouched()',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumericFieldDirective), // eslint-disable-line\n multi: true,\n },\n ],\n})\nexport class NumericFieldDirective implements OnInit, OnDestroy, AfterViewChecked, ControlValueAccessor {\n @Input('textAlign') textAlign: 'right' | 'left' = 'right';\n @Input('decimalPlaces') decimalPlaces = 2;\n @Input('roundDisplayValue') roundValue = false;\n @Input('autofillDecimals') autofillDecimals = false;\n @Input('unit') unit: string | null = null;\n @Input('unitPosition') unitPosition: 'right' | 'left' = 'right';\n @Output('numericValueChange') numericValueChanged = new EventEmitter<number>();\n\n private displayValue = '';\n private originalValue = NaN;\n private _numericValue: number;\n private inputChangeListener: () => void;\n private keyupListener: () => void;\n private keydownListener: () => void;\n\n @Input('numericValue')\n set numericValue(value: number) {\n if (this._numericValue !== value && !(isNaN(this._numericValue) && (isNaN(value) || value === null))) {\n this.originalValue = value;\n // Don't roundOrTruncate if value was set to empty otherwise input value will be set to 0 instead of empty\n // which happens when an input is being reset\n this._numericValue = value === null || value === undefined ? value : this.roundOrTruncate(value); // eslint-disable-line\n this.handleInputChanged();\n }\n }\n\n private unitSpan: HTMLSpanElement;\n private textSpan: HTMLSpanElement;\n\n constructor(private renderer: Renderer2, private inputEl: ElementRef, private numberFormatService: NumberFormatService) {}\n\n /* Control Values Accessor Stuff below */\n // eslint-disable-next-line\n onChange: any = () => {};\n // eslint-disable-next-line\n onTouched: any = () => {};\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(): void {\n // Dont need to implement since its just a directive\n }\n\n writeValue(value: number): void {\n this.numericValue = value;\n }\n\n ngOnInit(): void {\n /* needs to be parsed as number explicitly as it comes as string from user input */\n this.decimalPlaces = parseInt(this.decimalPlaces.toString(), 10);\n\n this.inputChangeListener = this.renderer.listen(this.inputEl.nativeElement, 'blur', event => {\n this.formatInput(event.target, true);\n });\n\n this.keyupListener = this.renderer.listen(this.inputEl.nativeElement, 'keyup', event => {\n if (event.keyCode === BACK_KEYCODE || (event.keyCode >= CONTROL_KEYCODES_UPPER_BORDER && !OTHER_CONTROL_KEYS.has(event.keyCode))) {\n this.formatInput(event.target, false);\n }\n });\n\n this.keydownListener = this.renderer.listen(this.inputEl.nativeElement, 'keydown', event => {\n const value: string = event.target.value;\n if (\n this.numberFormatService.allowedKeys.includes(event.key) ||\n (event.keyCode <= CONTROL_KEYCODES_UPPER_BORDER && event.keyCode > 0 && event.keyCode !== SPACE_KEYCODE) ||\n event.metaKey ||\n event.ctrlKey ||\n event.altKey\n ) {\n /* allow negative sign only as first character and none exists outside of text selection */\n const indexNegativeSign = value.indexOf(NumberFormatService.NEGATIVE);\n if (\n event.key === NumberFormatService.NEGATIVE &&\n (event.target.selectionStart > 0 || indexNegativeSign > -1) &&\n (event.target.selectionStart === event.target.selectionEnd ||\n !(indexNegativeSign >= event.target.selectionStart && indexNegativeSign <= event.target.selectionEnd))\n ) {\n return false;\n }\n\n /* no duplicate decimal separators */\n const indexDecimalSep = value.indexOf(this.numberFormatService.decimalSeparator);\n if (\n event.key === this.numberFormatService.decimalSeparator &&\n (indexDecimalSep > -1 || this.decimalPlaces === 0) &&\n (event.target.selectionStart === event.target.selectionEnd ||\n !(indexDecimalSep >= event.target.selectionStart && indexDecimalSep <= event.target.selectionEnd))\n ) {\n return false;\n }\n\n /* prevent too many decimal places */\n if (\n NumberFormatService.NUMBERS.includes(event.key) &&\n indexDecimalSep > -1 &&\n indexDecimalSep < event.target.selectionStart &&\n event.target.selectionStart === event.target.selectionEnd &&\n value.length > indexDecimalSep + this.decimalPlaces\n ) {\n return false;\n }\n\n /* when deleting thousand separator, remove the digit before or after it */\n const cursorStart = event.target.selectionStart;\n\n if (cursorStart === event.target.selectionEnd) {\n if (event.keyCode === BACK_KEYCODE && value.substr(cursorStart - 1, 1) === this.numberFormatService.groupingSeparator) {\n event.target.value = value.substring(0, cursorStart - 2) + value.substring(cursorStart - 1, value.length);\n event.target.selectionStart = event.target.selectionEnd = cursorStart - 1;\n return false;\n } else if (event.keyCode === DEL_KEYCODE && value.substr(cursorStart, 1) === this.numberFormatService.groupingSeparator) {\n event.target.value = value.substring(0, cursorStart + 1) + value.substring(cursorStart + 2, value.length);\n event.target.selectionStart = event.target.selectionEnd = cursorStart + 1;\n return false;\n }\n }\n this.originalValue = NaN;\n } else {\n return false;\n }\n return true;\n });\n }\n\n ngOnDestroy(): void {\n this.detachListener();\n }\n\n ngAfterViewChecked(): void {\n this.injectUnitSymbol();\n }\n\n handleInputChanged(): void {\n // Call in set timeout to avoid Expression has changed after it has been checked error.\n // Sometimes the value changes because we cut off decimal places\n setTimeout(() => {\n this.updateInput(\n this.numberFormatService.format(this._numericValue, {\n decimalPlaces: this.decimalPlaces,\n finalFormatting: false,\n autofillDecimals: this.autofillDecimals,\n }),\n );\n }, 1);\n }\n\n formatInput(element: HTMLInputElement, finalFormatting: boolean): void {\n const cursorPos = element.selectionStart;\n const length = element.value.length;\n const setCursor = this.displayValue !== element.value;\n const textFormatted = this.numberFormatService.formatNumber(element.value, {\n decimalPlaces: this.decimalPlaces,\n finalFormatting,\n autofillDecimals: this.autofillDecimals,\n });\n\n // special handling to move unit symbol along with display value\n if (this.textAlign === 'left' && this.unitPosition === 'right') {\n const inputStyles = window.getComputedStyle(this.inputEl.nativeElement.parentElement, null);\n this.unitSpan.style.position = 'absolute';\n this.unitSpan.style.marginTop = inputStyles.getPropertyValue('border-top-width');\n this.unitSpan.style.paddingTop = inputStyles.getPropertyValue('padding-top');\n this.unitSpan.style.paddingBottom = inputStyles.getPropertyValue('padding-bottom');\n\n if (!this.textSpan) {\n this.textSpan = document.createElement('span');\n document.body.appendChild(this.textSpan);\n this.textSpan.style.font = inputStyles.getPropertyValue('font');\n this.textSpan.style.fontSize = inputStyles.getPropertyValue('font-size');\n this.textSpan.style.height = 'auto';\n this.textSpan.style.width = 'auto';\n this.textSpan.style.position = 'absolute';\n this.textSpan.style.top = '0';\n this.textSpan.style.whiteSpace = 'no-wrap';\n this.textSpan.style.visibility = 'hidden';\n }\n this.textSpan.innerHTML = textFormatted;\n const width = Math.min(this.inputEl.nativeElement.clientWidth - this.unitSpan.clientWidth, Math.ceil(this.textSpan.clientWidth));\n this.unitSpan.style.left = width + 'px';\n }\n\n this.updateInput(textFormatted);\n if (setCursor) {\n element.selectionStart = element.selectionEnd = Math.max(cursorPos + element.value.length - length, 0);\n }\n }\n\n updateInput(value: string): void {\n this.displayValue = value;\n this.inputEl.nativeElement.value = value;\n this._numericValue = parseFloat(\n this.numberFormatService.strip(value, { decimalPlaces: this.decimalPlaces }).replace(this.numberFormatService.decimalSeparator, '.'),\n );\n if (this._numericValue !== this.roundOrTruncate(this.originalValue)) {\n this.originalValue = this._numericValue;\n this.numericValueChanged.emit(this._numericValue);\n }\n }\n\n getValueForFormControl(): number | undefined {\n this.formatInput(this.inputEl.nativeElement, false);\n if (isNaN(this._numericValue)) {\n // Return undefined instead of NaN to support the default required validator.\n return undefined; // eslint-disable-line\n }\n return this._numericValue;\n }\n\n private injectUnitSymbol(): void {\n // Need to inject the unit symbol when the input element width is set to its actual value,\n // otherwise the icon wont show in the correct position\n if (!!this.unit && !this.unitSpan && this.inputEl.nativeElement.offsetWidth !== 0) {\n // Get the input wrapper and apply necessary styles\n const inputWrapper = this.inputEl.nativeElement.parentNode.parentNode;\n\n // Create the span with unit symbol and apply necessary styles\n this.unitSpan = this.renderer.createElement('span');\n\n if (this.unitPosition === 'left') {\n this.renderer.setAttribute(this.unitSpan, 'matPrefix', '');\n this.renderer.setStyle(this.unitSpan, 'padding-right', '5px');\n this.renderer.insertBefore(inputWrapper, this.unitSpan, inputWrapper.children[0]);\n } else {\n this.renderer.setAttribute(this.unitSpan, 'matSuffix', '');\n this.renderer.setStyle(this.unitSpan, 'padding-left', '5px');\n this.renderer.appendChild(inputWrapper, this.unitSpan);\n }\n }\n\n // do not display unit symbol if the unit should move along display value\n if (!!this.unitSpan && this.textAlign === 'left' && this.unitPosition === 'right') {\n if (NumberFormatService.valueIsSet(this.displayValue)) {\n this.unitSpan.style.display = 'unset';\n } else {\n this.unitSpan.style.display = 'none';\n }\n }\n // always reset unit symbol\n if (!!this.unitSpan) {\n this.unitSpan.textContent = this.unit;\n }\n }\n\n private detachListener(): void {\n if (this.inputChangeListener) {\n this.inputChangeListener();\n delete this.inputChangeListener;\n }\n if (this.keydownListener) {\n this.keydownListener();\n delete this.keydownListener;\n }\n if (this.keyupListener) {\n this.keyupListener();\n delete this.keyupListener;\n }\n }\n\n private roundOrTruncate(value: number): number {\n const method = this.roundValue ? 'round' : value < 0 ? 'ceil' : 'floor';\n return Math[method](value * Math.pow(10, this.decimalPlaces)) / Math.pow(10, this.decimalPlaces);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { NumericFieldDirective } from './numeric-field.directive';\nimport { NumberFormatService } from './number-format.service';\n\n@NgModule({\n providers: [NumberFormatService],\n declarations: [NumericFieldDirective],\n exports: [NumericFieldDirective],\n})\nexport class NumericFieldModule {\n static forRoot(): ModuleWithProviders<NumericFieldModule> {\n return {\n ngModule: NumericFieldModule,\n providers: [NumberFormatService],\n };\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { throttleTime } from 'rxjs/operators';\n\n@Directive({\n selector: '[madThrottleClick]',\n})\nexport class ThrottleClickDirective implements OnInit, OnDestroy {\n @Input() throttleTime = 300;\n @Output() throttleClick = new EventEmitter();\n private clicks = new Subject();\n private subscription: Subscription;\n\n @HostListener('click', ['$event'])\n clickEvent(event: any): void {\n event.preventDefault();\n event.stopPropagation();\n this.clicks.next(event);\n }\n\n ngOnInit(): void {\n this.subscription = this.clicks.pipe(throttleTime(this.throttleTime)).subscribe(e => this.throttleClick.emit(e));\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'mad-card',\n templateUrl: './card.component.html',\n animations: [\n trigger('collapseExpandAnimation', [\n transition(':enter', [\n style({ opacity: 0, height: 0, overflow: 'hidden' }),\n animate(\n '100ms',\n style({\n opacity: 1,\n height: '*',\n }),\n ),\n ]),\n transition(':leave', [\n style({ opacity: 1, height: '*', overflow: 'hidden' }),\n animate(\n '100ms',\n style({\n opacity: 0,\n height: 0,\n }),\n ),\n ]),\n ]),\n trigger('rotateIcon', [\n state('true', style({ transform: 'rotate(0)' })),\n state('false', style({ transform: 'rotate(180deg)' })),\n transition('true => false', animate('100ms ease-out')),\n transition('false => true', animate('100ms ease-in')),\n ]),\n ],\n styleUrls: ['./card.component.css'],\n})\nexport class CardComponent {\n @Input() cancelDisabled = false;\n @Input() cancelText = 'NOT SET';\n @Input() readonly = true;\n @Input() editText = 'NOT SET';\n @Input() expandable = true;\n @Input() expanded = true;\n @Input() saveDisabled = false;\n @Input() saveText = 'NOT SET';\n @Input() title: string;\n @Input() editMode = false;\n @Input() additionalActionIcon: string;\n @Input() additionalActionText = '';\n @Output() edit = new EventEmitter();\n @Output() cancel = new EventEmitter();\n @Output() save = new EventEmitter();\n @Output() additionalAction = new EventEmitter();\n\n onCancel(): void {\n this.cancel.emit(undefined);\n }\n\n onEdit(): void {\n this.edit.emit(undefined);\n this.expanded = true;\n }\n\n onSave(): void {\n this.save.emit(undefined);\n }\n\n toggleCollapse(): void {\n this.expanded = !this.expanded;\n }\n\n additionalActionClicked(): void {\n this.additionalAction.emit(undefined);\n }\n}\n","<mat-card>\n <mat-card-header>\n <mat-card-title>\n {{ title }}\n <mad-icon-button (click)=\"toggleCollapse()\" *ngIf=\"expandable && !editMode\">\n <mat-icon [@rotateIcon]=\"!expanded\">keyboard_arrow_down</mat-icon>\n </mad-icon-button>\n </mat-card-title>\n <span>\n <mad-icon-button (click)=\"additionalActionClicked()\" *ngIf=\"additionalActionIcon\" [title]=\"additionalActionText\" type=\"button\">\n <mat-icon>{{additionalActionIcon}}</mat-icon>\n </mad-icon-button>\n <mad-icon-button [title]=\"editText\" (click)=\"onEdit()\" *ngIf=\"!readonly && !editMode\">\n <mat-icon>create</mat-icon>\n </mad-icon-button>\n </span>\n </mat-card-header>\n <mat-card-content [@collapseExpandAnimation] *ngIf=\"expanded\">\n <ng-content></ng-content>\n </mat-card-content>\n <mat-card-actions *ngIf=\"!readonly && editMode\">\n <mad-primary-button [title]=\"saveText\" [disabled]=\"saveDisabled\" (throttleClick)=\"onSave()\" madThrottleClick>\n {{ saveText }}\n </mad-primary-button>\n <mad-outline-button [title]=\"cancelText\" [disabled]=\"cancelDisabled\" (click)=\"onCancel()\">\n {{ cancelText }}\n </mad-outline-button>\n </mat-card-actions>\n</mat-card>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThrottleClickDirective } from './throttle-click.directive';\n\n@NgModule({\n declarations: [ThrottleClickDirective],\n imports: [CommonModule],\n exports: [ThrottleClickDirective],\n})\nexport class ThrottleClickModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CardComponent } from './card.component';\nimport { ButtonModule } from '../button/button.module';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ThrottleClickModule } from '../throttle-click/throttle-click.module';\n\n@NgModule({\n declarations: [CardComponent],\n imports: [CommonModule, MatCardModule, MatIconModule, ButtonModule, MatButtonModule, ThrottleClickModule],\n exports: [CardComponent],\n})\nexport class CardModule {}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\n\nexport interface QuickListItem {\n id: string;\n}\n\n@Component({\n selector: 'mad-base-quick-list',\n template: '',\n styleUrls: [],\n})\nexport class BaseQuickListComponent<T> implements OnInit, AfterViewInit {\n @Input() allItems = [] as T[];\n @Input() addLabel = 'NOT SET';\n @Input() addPossible = true;\n @Input() removePossible = true;\n @Input() blankItem = {} as any;\n @Input() readonly: boolean;\n @Input() maxItems: number;\n @Input() minItems: number;\n\n @Output() added = new EventEmitter<T>();\n @Output() removed = new EventEmitter<T>();\n @ContentChild(TemplateRef) itemTemplate: TemplateRef<any>;\n @ViewChildren('row') itemRows: QueryList<ElementRef>;\n\n rowCountFocus: number;\n addEventFunction: Function;\n\n constructor(public changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.addEventFunction = this.addItem.bind(this);\n if (this.minItems) {\n for (let n = this.allItems.length; n < this.minItems; n++) {\n this.interalAddItem();\n }\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.setFocusOnAdd(), 1);\n }\n\n addItem(): void {\n const newItem = this.interalAddItem();\n if (!!newItem) {\n this.added.emit(newItem);\n }\n }\n\n removeItem(item: T): void {\n if (this.isDeleteAllowed()) {\n this.allItems.splice(this.allItems.indexOf(item), 1);\n this.removed.emit(item);\n }\n }\n\n setFocusOnAdd(): void {\n this.rowCountFocus = this.itemRows.length;\n this.itemRows.changes.subscribe((els: QueryList<ElementRef>) => {\n if (els.length > this.rowCountFocus && !!els.last) {\n const firstFocusable = els.last.nativeElement.querySelector(\"button, a, input, select, textarea, [tabindex]:not([tabindex='-1'])\");\n if (firstFocusable) {\n firstFocusable.focus();\n }\n }\n this.rowCountFocus = els.length;\n });\n }\n\n isAddAllowed(): boolean {\n return this.addPossible && (!this.maxItems || this.allItems.length < this.maxItems);\n }\n\n isDeleteAllowed(): boolean {\n return this.removePossible && (!this.minItems || this.allItems.length > this.minItems);\n }\n\n private interalAddItem(): T {\n if (this.isAddAllowed()) {\n const newItem = { ...this.blankItem };\n // creates ids in the form of \"n5kdz1pljl8\"\n newItem.id = Math.random()\n .toString(36)\n .substring(2);\n this.allItems.push(newItem);\n this.changeDetectorRef.detectChanges();\n return newItem;\n }\n return null;\n }\n}\n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { BaseQuickListComponent, QuickListItem } from '../base-quick-list.component';\n\n@Component({\n selector: 'mad-quick-list-compact',\n templateUrl: './quick-list-compact.component.html',\n styleUrls: [],\n})\nexport class QuickListCompactComponent extends BaseQuickListComponent<QuickListItem> {\n constructor(public changeDetectorRef: ChangeDetectorRef) {\n super(changeDetectorRef);\n }\n}\n","<h3>\n <ng-content select=\"label\"></ng-content>\n</h3>\n<ng-container *ngFor=\"let item of allItems; let isLast = last;\">\n <div class=\"flex-container\" *ngIf=\"itemTemplate\" #row>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <mad-icon-button *ngIf=\"!readonly && isDeleteAllowed()\" (click)=\"removeItem(item)\">\n <mat-icon>delete</mat-icon>\n </mad-icon-button>\n <mad-icon-button *ngIf=\"!readonly && isLast\" [disabled]=\"!isAddAllowed()\" (click)=\"addItem()\">\n <mat-icon>add_circle_outline</mat-icon>\n </mad-icon-button>\n </div>\n</ng-container>\n<mad-link-button *ngIf=\"!readonly && !this.allItems.length\"\n (click)=\"addItem()\"\n [disabled]=\"!isAddAllowed()\">\n {{ addLabel }}\n</mad-link-button>\n","// Based on https://github.com/porscheinformatik/clarity-addons/blob/master/src/clr-addons/generic-quick-list/generic-quick-list.ts\n\nimport { ChangeDetectorRef, Component } from '@angular/core';\nimport { BaseQuickListComponent, QuickListItem } from './base-quick-list.component';\n\n@Component({\n selector: 'mad-quick-list',\n templateUrl: './quick-list.component.html',\n styleUrls: [],\n})\nexport class QuickListComponent extends BaseQuickListComponent<QuickListItem> {\n constructor(public changeDetectorRef: ChangeDetectorRef) {\n super(changeDetectorRef);\n }\n}\n","<h3>\n <ng-content select=\"label\"></ng-content>\n</h3>\n<ng-container *ngFor=\"let item of allItems\">\n <div *ngIf=\"itemTemplate\" #row>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <mad-icon-button *ngIf=\"!readonly && isDeleteAllowed()\" (click)=\"removeItem(item)\">\n <mat-icon>delete</mat-icon>\n </mad-icon-button>\n </div>\n</ng-container>\n<mad-link-button *ngIf=\"!readonly\" (click)=\"addItem()\"\n [disabled]=\"!addPossible || !isAddAllowed()\">\n {{ addLabel }}\n</mad-link-button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { QuickListComponent } from './quick-list.component';\nimport { ButtonModule } from '../button/button.module';\nimport { BaseQuickListComponent } from './base-quick-list.component';\nimport { QuickListCompactComponent } from './quick-list-compact/quick-list-compact.component';\n\n@NgModule({\n declarations: [QuickListComponent, BaseQuickListComponent, QuickListCompactComponent],\n imports: [CommonModule, MatButtonModule, MatIconModule, ButtonModule],\n exports: [QuickListComponent, QuickListCompactComponent, BaseQuickListComponent],\n})\nexport class QuickListModule {}\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { ColumnHeader } from './column-header';\nimport { TableAction } from './table-action';\n\n@Component({\n selector: 'mad-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n})\nexport class TableComponent implements OnInit, AfterViewInit {\n @Input() columns: ColumnHeader[] = [];\n @Input() filterLabel = 'NOT SET';\n @Input() filterPlaceholder = 'NOT SET';\n @Input() noDataText: string;\n @Input() pageSizeOptions = [5, 10, 15];\n @Input() defaultPageSize = this.pageSizeOptions?.[0] || 10;\n @Input() rowActions: TableAction[] = [];\n @Input() tableActions: TableAction[] = [];\n\n @Output() tableAction = new EventEmitter<TableAction>();\n @Output() rowAction = new EventEmitter<TableAction>();\n @Output() sortEvent = new EventEmitter<Sort>();\n\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n\n readonly ACTION_COLUMN_NAME = '__action__';\n dataSource: MatTableDataSource<any[]>;\n columnNames: string[];\n isRowClickable: boolean;\n defaultAction: TableAction;\n isFilterEnabled = false;\n isPaginationEnabled = false;\n\n @Input() set displayedData(data: any[]) {\n if (!this.dataSource) {\n this.dataSource = new MatTableDataSource<any>(data);\n } else {\n this.dataSource.data = data;\n }\n }\n\n @Input() set paginationEnabled(isPaginationEnabled: boolean) {\n this.isPaginationEnabled = isPaginationEnabled;\n // eslint-disable-next-line\n const pageSize = this.isPaginationEnabled ? this.defaultPageSize : Number.MAX_VALUE;\n if (this.dataSource.paginator) {\n this.dataSource.paginator._changePageSize(pageSize);\n }\n }\n\n @Input()\n set filterEnabled(isFilterEnabled: boolean) {\n this.isFilterEnabled = isFilterEnabled;\n this.setFilterValue(undefined);\n }\n\n ngOnInit(): void {\n this.columnNames = this.columns.map(column => column.label);\n this.isRowClickable = this.rowActions.length > 0;\n if (this.isRowClickable) {\n this.columnNames.unshift(this.ACTION_COLUMN_NAME);\n this.defaultAction = this.rowActions[0];\n }\n }\n\n ngAfterViewInit(): void {\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n // set custom filter predicate to enable search for multiple search strings:\n // e.g. \"one two three\"\n this.dataSource.filterPredicate = (data: any, filter: string): any =>\n !filter || filter.split(/\\s+/).every(term => !!Object.keys(data).find(key => data[key].includes(term)));\n }\n\n onFilter(value: string): void {\n this.setFilterValue(value);\n }\n\n onRowEvent(event: MouseEvent, row: any, action = this.defaultAction): void {\n if (!!action && !this.isClickOnRowMenuIcon(event)) {\n this.rowAction.emit({ ...action, outputRow: row });\n }\n }\n\n onSortingEvent(sortingParams: Sort): void {\n this.sortEvent.emit(sortingParams);\n }\n\n onTableAction(tableAction: TableAction): void {\n if (!!tableAction) {\n this.tableAction.emit(tableAction);\n }\n }\n\n private setFilterValue(value: string): void {\n this.dataSource.filter = value?.trim().toLowerCase();\n }\n\n private isClickOnRowMenuIcon(event: MouseEvent): boolean {\n return (event?.target as HTMLElement)?.classList.contains('mat-icon');\n }\n}\n","<!-- Table actions -->\n<div *ngIf=\"tableActions?.length\">\n <mad-primary-button class=\"table-action\" *ngFor=\"let tableAction of tableActions\" (click)=\"onTableAction(tableAction)\">\n {{ tableAction.label }}\n </mad-primary-button>\n</div>\n\n<!-- Row action buttons -->\n<mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent let-element=\"element\">\n <button *ngFor=\"let rowAction of rowActions\" mat-menu-item class=\"row-action\" (click)=\"onRowEvent($event, element, rowAction)\">\n {{ rowAction.label }}\n </button>\n </ng-template>\n</mat-menu>\n\n<!-- Table filter -->\n<mat-form-field *ngIf=\"isFilterEnabled\">\n <mat-label>{{ filterLabel }}</mat-label>\n <input matInput (keyup)=\"onFilter($event?.target?.value)\" placeholder=\"{{ filterPlaceholder }}\" />\n</mat-form-field>\n\n<!-- Table -->\n<div *ngIf=\"dataSource?.data?.length > 0; else noData\" class=\"mad-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSortingEvent($event)\">\n <!-- Row actions column -->\n <ng-container [matColumnDef]=\"ACTION_COLUMN_NAME\" *ngIf=\"rowActions?.length\" sticky>\n <th mat-header-cell *matHeaderCellDef class=\"row-action-button\"></th>\n <td mat-cell *matCellDef=\"let element\" class=\"row-action-button\">\n <mad-icon-button [matMenuTriggerData]=\"{ element: element }\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </mad-icon-button>\n </td>\n </ng-container>\n <!-- Columns with data -->\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.label\" [sticky]=\"column.isSticky\">\n <ng-container *ngIf=\"column.isSortable; else noSort\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header=\"{{ column.label }}\"\n [arrowPosition]=\"column.isRightAligned ? 'before' : 'after'\"\n [class.text-right]=\"column.isRightAligned\"\n >\n {{ column.label }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th mat-header-cell *matHeaderCellDef [class.text-right]=\"column.isRightAligned\">\n {{ column.label }}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" [class.text-right]=\"column.isRightAligned\">\n {{ element[column.dataPropertyName] }}\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnNames\"></tr>\n <tr\n mat-row\n [class.clickable-table-row]=\"isRowClickable\"\n (click)=\"onRowEvent($event, row)\"\n *matRowDef=\"let row; columns: columnNames\"\n ></tr>\n </table>\n</div>\n<!-- Pagination -->\n<mat-paginator\n [style.display]=\"isPaginationEnabled ? 'block' : 'none'\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n showFirstLastButtons\n>\n</mat-paginator>\n\n<!-- No data alert -->\n<ng-template #noData>\n <div class=\"noDataText\">\n {{ noDataText }}\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { TableComponent } from './table.component';\nimport { ButtonModule } from '../button/button.module';\n\n@NgModule({\n declarations: [TableComponent],\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatMenuModule,\n MatPaginatorModule,\n MatSortModule,\n MatTableModule,\n ButtonModule,\n ],\n exports: [TableComponent],\n})\nexport class TableModule {}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DataTableColumn } from '../data-table-column';\nimport { DataTableColumnDefinition, DataTableColumnDefinitionChange, DataTableDialogData } from '../data-table-column-definition';\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\n\n@Component({\n selector: 'mad-data-table-columns-modal.component',\n templateUrl: './data-table-columns-modal.component.html',\n styleUrls: ['./data-table-columns-modal.component.scss'],\n})\nexport class DataTableColumnsModalComponent implements OnInit {\n definition: DataTableColumnDefinition;\n searchFilter: string;\n selectedColumns: DataTableColumn[] = [];\n availableColumns: DataTableColumn[] = [];\n filteredAvailableColumns: DataTableColumn[] = [];\n\n constructor(\n public dialogRef: MatDialogRef<DataTableColumnsModalComponent>,\n @Inject(MAT_DIALOG_DATA)\n public data: DataTableDialogData,\n ) {}\n\n ngOnInit(): void {\n this.definition = this.data.definition;\n for (const column of this.data.allColumns) {\n const columnId = column.id;\n const selectedColumnIds: string[] = this.definition.displayedColumns.map(col => col.id);\n if (selectedColumnIds.includes(columnId)) {\n this.selectedColumns.push(column);\n } else {\n this.availableColumns.push(column);\n }\n }\n this.clearFilterValue();\n }\n\n onDrop(event: CdkDragDrop<DataTableColumn[]>): void {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n const itemIndex = this.findMatchingItemIndex(event.previousContainer, event.item);\n transferArrayItem(event.previousContainer.data, event.container.data, itemIndex, event.currentIndex);\n this.clearFilterValue();\n this.availableColumns.sort((a, b) => a.label.localeCompare(b.label));\n }\n }\n\n onSave(): void {\n this.definition.displayedColumns = this.selectedColumns;\n const saveChange: DataTableColumnDefinitionChange = {\n action: 'SAVE',\n definition: this.definition,\n };\n this.dialogRef.close(saveChange);\n }\n\n onDelete(): void {\n const deleteChange: DataTableColumnDefinitionChange = {\n action: 'DELETE',\n definition: this.definition,\n };\n this.dialogRef.close(deleteChange);\n }\n\n onCancel(): void {\n this.dialogRef.close();\n }\n\n updateFilterValue(): void {\n if (this.searchFilter?.length > 0) {\n this.filteredAvailableColumns = this.availableColumns.filter(c => c.label.toLowerCase().includes(this.searchFilter.toLowerCase()));\n } else {\n this.filteredAvailableColumns = [...this.availableColumns];\n }\n }\n\n findMatchingItemIndex(previousContainer: CdkDropList, item: CdkDrag): number {\n const itemId = item.element.nativeElement.id;\n const previousContainerItems = [...previousContainer.data] as DataTableColumn[];\n if (previousContainerItems?.length < 1) {\n return 0;\n }\n for (let itemIndex = 0; itemIndex < previousContainerItems.length; itemIndex++) {\n if (previousContainerItems[itemIndex].id === itemId) {\n return itemIndex;\n }\n }\n return 0;\n }\n\n clearFilterValue(): void {\n this.searchFilter = '';\n this.filteredAvailableColumns = [...this.availableColumns];\n }\n}\n","<h1 mat-dialog-title>{{ data?.titleLabel | translate }}</h1>\n<div mat-dialog-content>\n <div class=\"column-drag-main-content\">\n <div class=\"column-drag-container\">\n <div class=\"column-drag-info-area\">{{ data?.infoTextLabel | translate }}</div>\n <div class=\"column-drag-container-header\">{{ data?.selectedLabel | translate }}</div>\n <div\n cdkDropList\n #selectedList=\"cdkDropList\"\n [cdkDropListData]=\"selectedColumns\"\n [cdkDropListConnectedTo]=\"[availableList]\"\n class=\"column-drag-list selected-drag-list\"\n (cdkDropListDropped)=\"onDrop($event)\">\n <div class=\"column-drag-box\"\n *ngFor=\"let selectedColumn of selectedColumns; let i = index\"\n cdkDrag\n [id]=\"selectedColumn.id\"\n >\n {{i + 1}}. {{selectedColumn.label | translate }}\n </div>\n </div>\n </div>\n\n <div class=\"column-drag-container\">\n <div class=\"column-drag-info-area\">\n <!-- Table filter -->\n <mat-form-field>\n <mat-label>{{ data?.filterColumnsLabel | translate }}</mat-label>\n <input matInput autocomplete=\"off\" (keyup)=\"updateFilterValue()\"\n placeholder=\"{{ data?.filterColumnsPlaceHolder | translate }}\" [(ngModel)]=\"searchFilter\"/>\n <button *ngIf=\"searchFilter\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearFilterValue()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </div>\n <div class=\"column-drag-container-header\">{{ data?.availableLabel | translate }}</div>\n <div\n cdkDropList\n cdkDropListSortingDisabled\n #availableList=\"cdkDropList\"\n [cdkDropListData]=\"availableColumns\"\n [cdkDropListConnectedTo]=\"[selectedList]\"\n class=\"column-drag-list\"\n (cdkDropListDropped)=\"onDrop($event)\">\n <div *ngFor=\"let availableColumn of filteredAvailableColumns\" class=\"column-drag-box\" cdkDrag [id]=\"availableColumn.id\">\n {{availableColumn.label}}\n </div>\n </div>\n </div>\n </div>\n\n</div>\n<div mat-dialog-actions [align]=\"'end'\">\n <mad-outline-button (click)=\"onCancel()\">\n {{ data?.cancelLabel | translate }}\n </mad-outline-button>\n <mad-danger-button *ngIf=\"data?.deleteDefinitionAllowed\" (click)=\"onDelete()\">\n {{ data?.deleteLabel | translate }}\n </mad-danger-button>\n <mad-primary-button (click)=\"onSave()\" [disabled]=\"!(this.selectedColumns?.length > 0)\">\n {{ data?.saveLabel | translate }}\n </mad-primary-button>\n</div>\n","export class DataTableActionType {\n static SINGLE = 'SINGLE';\n static BATCH = 'BATCH';\n static NONE = 'NONE';\n}\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { DataTableColumn } from './data-table-column';\nimport { DataTableAction } from './data-table-action';\nimport { DataTableActionType } from './data-table-action-type';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { v4 as uuidV4 } from 'uuid';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DataTableColumnsModalComponent } from './data-table-columns-modal/data-table-columns-modal.component';\nimport { DataTableColumnDefinition, DataTableColumnDefinitionChange, DataTableDialogData } from './data-table-column-definition';\n\n@Component({\n selector: 'mad-data-table',\n templateUrl: './data-table.component.html',\n styleUrls: ['./data-table.component.scss'],\n})\nexport class DataTableComponent implements OnInit, AfterViewInit {\n // Translations\n @Input() filterLabel = 'Filter';\n @Input() filterPlaceholder = '';\n @Input() filterColumnsLabel = 'Filter';\n @Input() filterColumnsPlaceHolder = 'Filter available columns';\n @Input() noDataText = 'No matching data found';\n @Input() columnSettingsModalTitleLabel = 'Column settings';\n @Input() selectedLabel = 'Selected columns';\n @Input() availableLabel = 'Available columns';\n @Input() saveLabel = 'Save';\n @Input() deleteLabel = 'Delete';\n @Input() cancelLabel = 'Cancel';\n @Input() infoTextLabel = 'Drag and drop a column to select or reorder it.';\n @Input() tableClass: string;\n\n @Input() pageSizeOptions = [5, 10, 15];\n @Input() externalFilter: any;\n\n @Input() actions: DataTableAction[] = [];\n @Input() idGenerator: any;\n @Input() deleteDefinitionAllowed = false;\n\n @Input() useAsync = false;\n\n @Input() set displayedColumns(cols: DataTableColumn[]) {\n if (!this.displayedColumnDefinition) {\n this.columns = cols ? [...cols] : [];\n this.columnIds = this.columns.map(column => column.id);\n this.columnIds.unshift(this.ACTION_COLUMN_NAME);\n }\n }\n\n @Input() set displayedColumnDefinition(def: DataTableColumnDefinition) {\n this.selectedColumnDefinion = def;\n this.columns = def.displayedColumns;\n this.columnIds = this.columns.map(column => column.id);\n this.columnIds.unshift(this.ACTION_COLUMN_NAME);\n }\n\n @Input() set tableData(data: any[]) {\n if (!this.dataSource) {\n this.dataSource = new MatTableDataSource<any>(data);\n }\n this.createDataMapsAndSetDisplayedDataSourceData(data);\n }\n\n @Input() set page(page: PageEvent) {\n this.paginatorPageIndex = page.pageIndex;\n this.paginatorPageSize = page.pageSize;\n this.paginatorLength = page.length;\n }\n\n @Input() set columnDefinitions(definitions: DataTableColumnDefinition[]) {\n this.editableColumnDefinitions = [];\n this.viewableColumnDefinitions = [];\n this.allColumnDefinitions = [...definitions];\n for (const definition of definitions) {\n if (definition.editable) {\n this.editableColumnDefinitions.push(definition);\n }\n if (definition.displayedColumns?.length > 0) {\n this.viewableColumnDefinitions.push(definition);\n }\n }\n }\n\n @Input() set loading(isLoading: boolean) {\n this.isLoading = isLoading;\n }\n\n @Input() set defaultPageSize(defaultSize: number) {\n this.paginatorPageSize = defaultSize;\n }\n\n @Input() set externalPaginator(paginator: any) {\n this.extPaginator = paginator;\n }\n\n @Input() set paginationEnabled(isPaginationEnabled: boolean) {\n this.isPaginationEnabled = isPaginationEnabled;\n this.unsetPageSizeIfNecessary();\n }\n\n @Input() set allColumns(allColumns: DataTableColumn[]) {\n this.allAvailableColumns = allColumns;\n if (allColumns && this.showColumnModal) {\n this.openColumnModal();\n }\n }\n\n @Input()\n set filterEnabled(isFilterEnabled: boolean) {\n this.isFilterEnabled = !this.useAsync ? isFilterEnabled : false;\n this.setFilterValue(undefined);\n }\n\n @Input()\n set forceMode(mode: string) {\n if (mode === this.SINGLE || mode === this.BATCH || mode === this.NONE) {\n this._forceMode = mode;\n this.mode = mode;\n this.setActions();\n }\n }\n\n @Output() sortEvent = new EventEmitter<Sort>();\n @Output() actionEvent = new EventEmitter<DataTableAction>();\n @Output() pageEvent = new EventEmitter<PageEvent>();\n @Output() allColumnsEvent = new EventEmitter<void>();\n @Output() columnDefinitionChangeEvent = new EventEmitter<DataTableColumnDefinitionChange>();\n @Output() viewDefinitionChangeEvent = new EventEmitter<DataTableColumnDefinition>();\n\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n\n readonly ACTION_COLUMN_NAME = '__action__';\n readonly SINGLE = DataTableActionType.SINGLE;\n readonly BATCH = DataTableActionType.BATCH;\n readonly NONE = DataTableActionType.NONE;\n\n tableActions: DataTableAction[] = [];\n rowActions: DataTableAction[] = [];\n columns: DataTableColumn[] = [];\n allSelected = false;\n selected: [];\n _forceMode: string;\n displayedDataMap = new Map<string, any>();\n actualDataMap = new Map<string, any>();\n dataSource: MatTableDataSource<any[]>;\n selectionModel = new SelectionModel<string>(true);\n columnIds: string[];\n allColumnDefinitions: DataTableColumnDefinition[] = [];\n editableColumnDefinitions: DataTableColumnDefinition[];\n viewableColumnDefinitions: DataTableColumnDefinition[];\n selectedColumnDefinion: DataTableColumnDefinition;\n allAvailableColumns: DataTableColumn[];\n selectedDefinition: DataTableColumnDefinition;\n defaultAction: DataTableAction;\n isFilterEnabled = false;\n isPaginationEnabled = false;\n mode = this.NONE;\n isRowClickable = false;\n showColumnModal = false;\n isLoading = false;\n extPaginator: MatPaginator;\n\n paginatorLength = 0;\n paginatorPageIndex = 0;\n paginatorPageSize = 50;\n\n constructor(private matDialog: MatDialog) {}\n\n static compare(a: Record<string, any>, b: Record<string, any>, sort: Sort): number {\n const x = a[sort.active];\n const y = b[sort.active];\n const ascending = sort.direction === 'asc';\n switch (typeof x) {\n case 'number':\n return DataTableComponent.compareNumber(x, y, ascending);\n case 'string':\n return DataTableComponent.compareString(x, y, ascending);\n case 'boolean':\n return DataTableComponent.compareBoolean(x, y, ascending);\n default:\n // cannot compare -> return equal\n return 0;\n }\n }\n\n static compareNumber(x: number, y: number, ascending: boolean): number {\n return ascending ? x - y : y - x;\n }\n\n static compareString(x: string, y: string, ascending: boolean): number {\n return ascending ? x.localeCompare(y) : y.localeCompare(x);\n }\n\n static compareBoolean(x: boolean, y: boolean, ascending: boolean): number {\n if (x === y) {\n return 0;\n }\n if (ascending) {\n // true first\n return x ? -1 : 1;\n } else {\n // false first\n return x ? 1 : -1;\n }\n }\n\n static transformData(value: any, transformer: any, transformerParams: any): any {\n if (!transformer || !(transformer instanceof Function)) {\n return value;\n }\n return transformer(value, transformerParams);\n }\n\n static generateRowId(): string {\n return uuidV4();\n }\n\n static isClickOnRowMenuIcon(event: MouseEvent): boolean {\n return (event?.target as HTMLElement)?.classList.contains('mat-icon');\n }\n\n ngOnInit(): void {\n this.mode = this.getTableMode();\n this.setActions();\n if (this.mode !== this.NONE) {\n this.isRowClickable = true;\n this.defaultAction = this.rowActions[0];\n }\n }\n\n ngAfterViewInit(): void {\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n }\n\n onColumnSettings(definition?: DataTableColumnDefinition): void {\n this.showColumnModal = true;\n this.selectedDefinition = definition ? definition : this.allColumnDefinitions[0];\n if (this.allAvailableColumns) {\n this.openColumnModal();\n } else {\n // if no complete definitions have been loaded yet send an event so the app can load it\n this.allColumnsEvent.emit();\n }\n }\n\n onViewDefinition(definition: DataTableColumnDefinition): void {\n this.selectedDefinition = definition;\n this.viewDefinitionChangeEvent.emit(definition);\n }\n\n isCurrentDefinition(definition: DataTableColumnDefinition): boolean {\n return this.selectedDefinition && this.selectedDefinition.id === definition.id;\n }\n\n get selectedCount(): number {\n return this.selectionModel?.selected ? this.selectionModel.selected.length : 0;\n }\n\n get rowCount(): number {\n return this.getAllDataSourceRowsOfCurrentPage() ? this.getAllDataSourceRowsOfCurrentPage().length : 0;\n }\n\n getAllDataSourceRowsOfCurrentPage(): any[] {\n return this.dataSource?._pageData(this.dataSource.data);\n }\n\n getSelectedCount(actionType: string): string {\n const count = this.selectedCount;\n if (actionType !== this.BATCH || count < 2) {\n return '';\n }\n return ' (' + count + ')';\n }\n\n isDisabled(actionType: string): boolean {\n switch (actionType) {\n case this.SINGLE:\n return this.selectedCount !== 1;\n case this.BATCH:\n return this.selectedCount < 1;\n default:\n return false;\n }\n }\n\n onToggleSelectAll(): void {\n // clear all selection first\n this.selectionModel.clear();\n // toggle all checkbox\n this.allSelected = !this.allSelected;\n if (this.allSelected) {\n // select all rows of the current page\n this.getAllDataSourceRowsOfCurrentPage().forEach(row => {\n this.selectionModel.select('' + row.rowId);\n });\n }\n }\n\n isSelected(rowId: string): boolean {\n return this.selectionModel.isSelected(rowId);\n }\n\n setFilterValue(value: string): void {\n this.dataSource.filter = value?.trim().toLowerCase();\n }\n\n onRowCheckbox(event: MouseEvent, row: any): void {\n event.stopPropagation(); // no click event on row\n this.selectionModel.toggle(row.rowId);\n }\n\n onRowEvent(event: MouseEvent, row: any, action = this.defaultAction): void {\n switch (this.mode) {\n case this.BATCH:\n this.onRowCheckbox(event, row);\n break;\n case this.SINGLE:\n // emit the default action if the row (not the icon!) was clicked\n if (!!action && !DataTableComponent.isClickOnRowMenuIcon(event)) {\n const selected = [];\n // if ID-generator is provided, return the ID, else return the ACTUAL data\n selected.push(this.idGenerator ? row.rowId : this.actualDataMap.get(row.rowId));\n this.emitTableAction(action, selected);\n }\n break;\n default:\n // do nothing if mode is NONE (or null)\n return;\n }\n }\n\n onSortingEvent(sort: Sort): void {\n if (this.useAsync) {\n this.sortEvent.emit(sort);\n } else {\n this.internalSort(sort);\n }\n }\n\n onPageEvent(event: PageEvent): void {\n if (this.useAsync) {\n this.pageEvent.emit(event);\n }\n }\n\n onTableAction(tableAction: DataTableAction): void {\n if (!!tableAction) {\n const selection: any[] = [];\n for (const selected of this.selectionModel.selected) {\n selection.push(this.idGenerator ? selected : this.actualDataMap.get(selected));\n }\n tableAction.selected = selection;\n this.actionEvent.emit(tableAction);\n }\n }\n\n private emitTableAction(action: DataTableAction, selected: any[]): void {\n const emitAction = { ...action };\n if (action.type !== this.NONE) {\n emitAction.selected = [...selected];\n }\n this.actionEvent.emit(emitAction);\n }\n\n private generateDisplayedDataElement(rowId: string, actualDataElement: any): any {\n const displayedDataElement: { [key: string]: any } = {};\n displayedDataElement.rowId = rowId;\n for (const column of this.columns) {\n const actualValue = actualDataElement[column.dataPropertyName];\n displayedDataElement[column.dataPropertyName] = DataTableComponent.transformData(\n actualValue,\n column.transformer,\n column.transformerParams,\n );\n }\n return displayedDataElement;\n }\n\n private internalSort(sort: Sort) {\n const sortedData = [...this.dataSource.data].sort((a, b) => DataTableComponent.compare(a, b, sort));\n this.dataSource.data = [...sortedData];\n }\n\n private setActions(): void {\n this.rowActions = [];\n this.tableActions = [];\n for (const action of this.actions) {\n if (this.mode !== action.hiddenInMode) {\n switch (action.type) {\n case this.SINGLE:\n if (this.mode === this.SINGLE) {\n this.rowActions.push(action);\n } else {\n this.tableActions.push(action);\n }\n break;\n case this.BATCH:\n if (this.mode !== this.SINGLE) {\n this.tableActions.push(action);\n }\n break;\n default:\n this.tableActions.push(action);\n }\n }\n }\n }\n\n private createDataMapsAndSetDisplayedDataSourceData(data: any[]): void {\n const displayedDataList = [];\n this.actualDataMap.clear();\n this.displayedDataMap.clear();\n if (data?.length > 0) {\n for (const dataEntry of data) {\n const rowId = this.idGenerator ? this.idGenerator(dataEntry) : DataTableComponent.generateRowId();\n this.actualDataMap.set(rowId, dataEntry);\n const displayedDataElement = this.generateDisplayedDataElement(rowId, dataEntry);\n this.displayedDataMap.set(rowId, displayedDataElement);\n displayedDataList.push(displayedDataElement);\n }\n }\n this.dataSource.data = displayedDataList;\n this.unsetPageSizeIfNecessary();\n }\n\n private openColumnModal(): void {\n const dialogData: DataTableDialogData = {\n allColumns: this.allAvailableColumns,\n definition: this.selectedDefinition,\n deleteDefinitionAllowed: this.deleteDefinitionAllowed,\n filterColumnsLabel: this.filterColumnsLabel,\n filterColumnsPlaceHolder: this.filterColumnsPlaceHolder,\n noDataText: this.noDataText,\n titleLabel: this.columnSettingsModalTitleLabel,\n selectedLabel: this.selectedLabel,\n availableLabel: this.availableLabel,\n saveLabel: this.saveLabel,\n deleteLabel: this.deleteLabel,\n cancelLabel: this.cancelLabel,\n infoTextLabel: this.infoTextLabel,\n };\n const dialog = this.matDialog.open(DataTableColumnsModalComponent, { data: dialogData });\n dialog.afterClosed().subscribe(result => {\n // no event on CANCEL\n if (result) {\n this.columnDefinitionChangeEvent.emit(result);\n }\n });\n }\n\n private getTableMode(): string {\n if (this._forceMode) {\n return this._forceMode;\n }\n\n if (!this.actions) {\n return this.NONE;\n }\n const distinctActionTypes = new Set<string>();\n for (const rowAction of this.actions) {\n distinctActionTypes.add(rowAction.type);\n }\n if (distinctActionTypes.has(this.BATCH)) {\n return this.BATCH;\n }\n if (distinctActionTypes.has(this.SINGLE)) {\n return this.SINGLE;\n }\n return this.NONE;\n }\n\n private unsetPageSizeIfNecessary() {\n if (!this.useAsync && !this.isPaginationEnabled) {\n const dataCount = this.dataSource.data ? this.dataSource.data.length : 0;\n this.paginatorPageSize = dataCount;\n this.paginatorLength = dataCount;\n }\n }\n}\n","<div class=\"mad-datatable-action-bar\">\n <!-- Table actions: displayed before the table -->\n <div *ngIf=\"tableActions?.length\">\n <mad-outline-button\n [disabled]=\"isDisabled(tableAction.type)\"\n class=\"table-action\"\n *ngFor=\"let tableAction of tableActions\"\n (click)=\"onTableAction(tableAction)\">\n {{ tableAction.label | translate }} {{ getSelectedCount(tableAction.type) }}\n </mad-outline-button>\n </div>\n <!-- Table filter -->\n <mat-form-field *ngIf=\"isFilterEnabled\">\n <mat-label>{{ filterLabel | translate }}</mat-label>\n <input matInput autocomplete=\"off\" (keyup)=\"setFilterValue($event?.target?.value)\"\n placeholder=\"{{ filterPlaceholder }}\" />\n </mat-form-field>\n</div>\n\n\n<!-- Row action menu -->\n<mat-menu #rowActionMenu=\"matMenu\">\n <ng-template matMenuContent let-element=\"element\">\n <button *ngFor=\"let rowAction of rowActions\" mat-menu-item class=\"row-action\"\n (click)=\"onRowEvent($event, element, rowAction)\">\n {{ rowAction.label | translate }}\n </button>\n </ng-template>\n</mat-menu>\n\n<!-- editable definition menu -->\n<mat-menu #editableDefinitionMenu=\"matMenu\">\n <ng-template matMenuContent>\n <button *ngFor=\"let definition of editableColumnDefinitions\"\n mat-menu-item\n class=\"row-action\"\n (click)=\"onColumnSettings(definition)\"\n [ngClass]=\"{'active-column-definition': isCurrentDefinition(definition)}\"\n >\n {{ definition.label | translate }}\n </button>\n </ng-template>\n</mat-menu>\n\n<!-- viewable definition menu -->\n<mat-menu #viewableDefinitionMenu=\"matMenu\">\n <ng-template matMenuContent>\n <button *ngFor=\"let definition of viewableColumnDefinitions\"\n mat-menu-item\n class=\"row-action\"\n (click)=\"onViewDefinition(definition)\"\n [ngClass]=\"{'active-column-definition': isCurrentDefinition(definition)}\"\n >\n {{ definition.label | translate }}\n </button>\n </ng-template>\n</mat-menu>\n\n<!-- Table -->\n<div *ngIf=\"rowCount > 0; else noData\" class=\"datatable\" [class]=\"tableClass\">\n <div class=\"mad-datatable-spinner-wrapper\" *ngIf=\"isLoading\">\n <mat-spinner [diameter]=\"50\" [strokeWidth]=\"3\"></mat-spinner>\n </div>\n\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSortingEvent($event)\">\n <!-- Row actions column-->\n <ng-container [matColumnDef]=\"ACTION_COLUMN_NAME\">\n <th scope=\"col\" mat-header-cell *matHeaderCellDef class=\"row-action-button\">\n <!-- BATCH: master checkbox -->\n <div *ngIf=\"mode === BATCH\" class=\"mad-datatable-checkbox-container\">\n <mat-checkbox\n (change)=\"onToggleSelectAll()\"\n [checked]=\"allSelected\"\n >\n </mat-checkbox>\n </div>\n <!-- SINGLE / NONE: nothing in header row -->\n </th>\n <td mat-cell *matCellDef=\"let element\" class=\"row-action-button\">\n <!-- BATCH: row checkbox -->\n <div *ngIf=\"mode === BATCH\" class=\"mad-datatable-checkbox-container\">\n <mat-checkbox\n (click)=\"onRowCheckbox($event, element.rowId)\"\n [checked]=\"isSelected(element.rowId)\"\n >\n </mat-checkbox>\n </div>\n <!-- SINGLE: row action menu icon -->\n <mad-icon-button\n *ngIf=\"mode === SINGLE\"\n [matMenuTriggerData]=\"{ element: element }\" [matMenuTriggerFor]=\"rowActionMenu\"\n >\n <mat-icon>more_vert</mat-icon>\n </mad-icon-button>\n <!-- NONE: nothing -->\n </td>\n </ng-container>\n <!-- Columns with data -->\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.isSortable; else noSort\">\n <th\n scope=\"col\"\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header=\"{{ column.orderByName? column.orderByName : column.dataPropertyName }}\"\n [arrowPosition]=\"column.isRightAligned ? 'before' : 'after'\"\n [class.text-right]=\"column.isRightAligned\"\n >\n {{ column.label | translate }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th scope=\"col\" mat-header-cell *matHeaderCellDef [class.text-right]=\"column.isRightAligned\">\n {{ column.label | translate }}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" [class.text-right]=\"column.isRightAligned\" [ngSwitch]=\"column.transformer\">\n <span>\n {{ element[column.dataPropertyName] }}\n </span>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnIds\"></tr>\n <tr\n mat-row\n [class.clickable-table-row]=\"isRowClickable\"\n (click)=\"onRowEvent($event, row)\"\n *matRowDef=\"let row; columns: columnIds\"\n ></tr>\n </table>\n</div>\n<div class=\"mad-data-table-bottom-area\">\n <div class=\"mad-data-table-bottom-info-area\">\n <!-- column settings: 1 definition -->\n <mad-icon-button\n *ngIf=\"this.editableColumnDefinitions?.length == 1\"\n (click)=\"onColumnSettings()\"\n >\n <mat-icon class=\"material-icons-outlined\">view_column</mat-icon>\n </mad-icon-button>\n <!-- column settings: multiple definitions -->\n <mad-icon-button\n *ngIf=\"this.editableColumnDefinitions?.length > 0\" [matMenuTriggerFor]=\"editableDefinitionMenu\"\n >\n <mat-icon>view_column</mat-icon>\n </mad-icon-button>\n <!-- column view: multiple definitions -->\n <mad-icon-button\n *ngIf=\"this.viewableColumnDefinitions?.length > 0\" [matMenuTriggerFor]=\"viewableDefinitionMenu\"\n >\n <mat-icon>preview</mat-icon>\n </mad-icon-button>\n </div>\n\n <!-- Pagination -->\n <mat-paginator\n [style.display]=\"isPaginationEnabled ? 'block' : 'none'\"\n [length]=\"paginatorLength\"\n [pageIndex]=\"paginatorPageIndex\"\n [pageSize]=\"paginatorPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"onPageEvent($event)\"\n showFirstLastButtons\n >\n </mat-paginator>\n</div>\n\n<!-- No data alert -->\n<ng-template #noData>\n <div class=\"noDataText\">\n <div class=\"mad-datatable-spinner-wrapper\" *ngIf=\"isLoading\">\n <mat-spinner [diameter]=\"50\" [strokeWidth]=\"3\"></mat-spinner>\n </div>\n {{ noDataText }}\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { DataTableComponent } from './data-table.component';\nimport { ButtonModule } from '../button/button.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { DataTableColumnsModalComponent } from './data-table-columns-modal/data-table-columns-modal.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [DataTableComponent, DataTableColumnsModalComponent],\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatMenuModule,\n MatPaginatorModule,\n MatSortModule,\n MatTableModule,\n MatProgressSpinnerModule,\n ButtonModule,\n TranslateModule,\n MatCheckboxModule,\n MatBadgeModule,\n DragDropModule,\n FormsModule,\n ],\n exports: [DataTableComponent, DataTableColumnsModalComponent],\n})\nexport class DataTableModule {}\n","import { CdkStepHeader, STEP_STATE, StepState } from '@angular/cdk/stepper';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'mad-step-header',\n templateUrl: './step-header.component.html',\n styleUrls: ['./step-header.component.scss'],\n inputs: ['color'],\n host: {\n class: 'mad-step-header',\n role: 'tab',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepHeaderComponent extends CdkStepHeader implements AfterViewInit, OnDestroy {\n @Input()\n index: number;\n\n @Input()\n label: string;\n\n @Input() state: StepState;\n\n @Input() errorMessage: string;\n\n @Input() selected: boolean;\n\n @Input() active: boolean;\n\n @Input() optional: boolean;\n\n @Input() hasError: boolean;\n\n @Input() completed: boolean;\n\n @Input() closed: boolean;\n\n constructor(private _focusMonitor: FocusMonitor, _elementRef: ElementRef<HTMLElement>) {\n super(_elementRef);\n }\n\n ngAfterViewInit(): void {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n\n ngOnDestroy(): void {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Focuses the step header. */\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\n if (origin) {\n this._focusMonitor.focusVia(this._elementRef, origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n\n getCssForState(): string {\n if (this.state === STEP_STATE.NUMBER && !this.completed && !this.hasError) {\n return 'step-state-neutral'; //initiale state is 'number'\n } else if (this.completed) {\n return 'step-state-complete';\n } else if (this.hasError) {\n return 'step-state-error';\n }\n }\n\n getIcon(): string {\n if (this.completed) {\n return 'check_circle_outline';\n } else if (this.hasError) {\n return 'error_outline';\n }\n return '';\n }\n}\n","<div\n class=\"header\"\n fxLayout=\"row\"\n fxLayoutGap=\"1em\"\n [style.background]=\"this.selected && !this.closed ? '#d8e2e9' : '#ffffff'\"\n [ngClass]=\"this.hasError ? 'error-border' : 'check-border'\"\n>\n <div [ngClass]=\"this.getCssForState()\"></div>\n <div class=\"header-label\">\n <mat-icon class=\"material-icons-outlined\">\n {{ this.selected && !this.closed ? 'keyboard_arrow_down' : 'keyboard_arrow_right' }}\n </mat-icon>\n </div>\n <div *ngIf=\"this.completed || this.hasError\" class=\"header-label\">\n <mat-icon [ngClass]=\"this.completed ? 'green-check' : 'red-error'\">\n {{ getIcon() }}\n </mat-icon>\n </div>\n <span *ngIf=\"!this.hasError && !this.completed\" class=\"header-label\">{{ this.index + 1 + '.' }}</span>\n <div class=\"header-label\">{{ this.label }}</div>\n</div>\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\n/**\n * Animations used by the MAD stepper.\n */\nexport const madStepperAnimations: {\n readonly verticalStepTransition: AnimationTriggerMetadata;\n} = {\n verticalStepTransition: trigger('stepTransition', [\n state('previous', style({ height: '0px', visibility: 'hidden' })),\n state('next', style({ height: '0px', visibility: 'hidden' })),\n state('current', style({ height: '*', visibility: 'visible' })),\n transition('* <=> current', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n};\n","import {Directionality} from '@angular/cdk/bidi';\nimport {CdkStep, CdkStepper, STEP_STATE, StepContentPositionState} from '@angular/cdk/stepper';\nimport {AnimationEvent} from '@angular/animations';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Subject, Subscription} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, switchMap, takeUntil, tap} from 'rxjs/operators';\nimport {StepHeaderComponent} from './step-header/step-header.component';\nimport {madStepperAnimations} from './mad-stepper-animation';\n\n@Component({\n selector: 'mad-step',\n templateUrl: './step.component.html',\n styleUrls: ['./stepper.component.scss'],\n providers: [{provide: CdkStep, useExisting: StepComponent}],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepComponent extends CdkStep implements AfterContentInit, OnDestroy {\n /** Action event for the next button. If not set the StepComponent will handle the step navigation */\n @Output()\n onNext = new EventEmitter<any>();\n\n /** Action event for the done button. If not set the StepComponent will handle the step navigation */\n @Output()\n onDone = new EventEmitter<any>();\n\n /*** Action event when the header is clicked. If not set the StepComponent will handle the step navigation*/\n @Output()\n onHeaderClick = new EventEmitter<any>();\n\n stepClosed = false;\n\n private _isSelected = Subscription.EMPTY;\n\n constructor(@Inject(forwardRef(() => StepperComponent)) private stepper: StepperComponent, private _viewContainerRef: ViewContainerRef) {\n super(stepper);\n }\n\n ngAfterContentInit() {\n this._isSelected = this._stepper.steps.changes\n .pipe(\n switchMap(() =>\n this._stepper.selectionChange.pipe(\n map(event => event.selectedStep === this),\n tap(() => (this.stepClosed = false)),\n startWith(this._stepper.selected === this),\n ),\n ),\n )\n .subscribe();\n }\n\n ngOnDestroy() {\n this._isSelected.unsubscribe();\n }\n\n next(markFormAsTouched = true): void {\n this.stepValidation(markFormAsTouched);\n\n if (this.onNext.observers.length <= 0) {\n this.stepper.next();\n }\n this.onNext.emit();\n }\n\n selectAndMarkAsTouched(index: number): void {\n //Mark current selected step as touched before selecting to display errors in the from\n this._stepper.selected?.stepControl?.markAllAsTouched();\n this.stepClosed = false;\n if (this.onHeaderClick.observers.length <= 0) {\n this.select();\n }\n this.onHeaderClick.emit(index);\n }\n\n completeLast(): void {\n this.stepValidation(true);\n this.stepClosed = true;\n\n if (this.onDone.observers.length <= 0) {\n this.stepper.next();\n }\n\n this.onDone.emit();\n }\n\n resetValidations(): void {\n this.hasError = false;\n this.completed = true;\n this.state = STEP_STATE.DONE;\n }\n\n private stepValidation(markFormAsTouched: boolean): void {\n if (markFormAsTouched) {\n this.stepControl?.markAllAsTouched();\n }\n if (this.stepControl?.valid) {\n this.hasError = false;\n this.completed = true;\n this.state = STEP_STATE.DONE;\n } else {\n this.completed = false;\n this.hasError = true;\n this.state = STEP_STATE.ERROR;\n }\n }\n}\n\n@Component({\n selector: 'mad-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n host: {\n '[class.stepper-vertical]': 'true',\n '[attr.aria-orientation]': '\"vertical\"',\n role: 'tablist',\n },\n animations: [madStepperAnimations.verticalStepTransition],\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n providers: [{provide: CdkStepper, useExisting: StepperComponent}],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepperComponent extends CdkStepper implements OnInit, AfterContentInit {\n /** Event emitted when the current step is done transitioning in. */\n @Output() readonly animationDone: EventEmitter<void> = new EventEmitter<void>();\n\n @Input()\n nextButtonLabel: string;\n\n @Input()\n doneButtonLabel: string;\n /** Step headers of all steps inside the stepper */\n @ViewChildren(StepHeaderComponent) _stepHeader: QueryList<StepHeaderComponent>;\n\n /** Steps inside the Stepper */\n @ContentChildren(StepComponent, {descendants: true}) _steps: QueryList<StepComponent>;\n\n /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n steps: QueryList<StepComponent> = new QueryList<StepComponent>();\n\n readonly _animationDone = new Subject<AnimationEvent>();\n\n constructor(\n @Optional() dir: Directionality,\n changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef<HTMLElement>,\n ) {\n super(dir, changeDetectorRef, elementRef);\n this.orientation = 'vertical';\n }\n\n ngOnInit() {\n // Only linear stepper implementation is supported\n super.linear = true;\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._stateChanged();\n });\n\n this._animationDone\n .pipe(\n distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\n takeUntil(this._destroyed),\n )\n .subscribe(event => {\n if ((event.toState as StepContentPositionState) === 'current') {\n this.animationDone.emit();\n }\n });\n }\n\n /**\n * Method patched to enable the closing of the last step.\n */\n _getAnimationDirection(index: number): StepContentPositionState {\n const closeLastStep = this.selectedIndex === this.steps.length - 1 && this._steps.last?.completed && this._steps.last?.stepClosed;\n if (closeLastStep) {\n return 'next';\n }\n return super._getAnimationDirection(index);\n }\n\n _stepIsNavigable(index: number, step: StepComponent): boolean {\n return step.completed || this.selectedIndex === index || !this.linear;\n }\n}\n","<ng-template let-last=\"last\" let-nextBtnLbl=\"nextBtnLbl\" let-doneBtnLbl=\"doneBtnLbl\">\n <div class=\"step-container\" fxLayout=\"column\">\n <div class=\"step-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"step-buttons\">\n <div *ngIf=\"!last\">\n <button mat-stroked-button color=\"primary\" (click)=\"next()\">{{nextBtnLbl}}</button>\n </div>\n <div *ngIf=\"last\">\n <button mat-stroked-button color=\"primary\" (click)=\"completeLast()\">{{doneBtnLbl}}</button>\n </div>\n </div>\n </div>\n</ng-template>\n","<!-- Vertical stepper -->\n<ng-container>\n <div *ngFor=\"let step of steps; let i = index; let isLast = last; let isFirst = first\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n <div class=\"vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div class=\"vertical-stepper-content\" role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n (@stepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\">\n <div class=\"vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"\n [ngTemplateOutletContext]=\"{step: step, i: i, last: isLast, first: isFirst, nextBtnLbl: this.nextButtonLabel, doneBtnLbl: this.doneButtonLabel}\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mad-step-header\n class=\"mat-vertical-stepper-header\"\n (click)=\"step.selectAndMarkAsTouched(i)\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [completed]=\"step.completed\"\n [hasError]=\"step.hasError\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [closed]=\"step.stepClosed\"\n [errorMessage]=\"step.errorMessage\"></mad-step-header>\n</ng-template>\n","import { StepComponent, StepperComponent } from './stepper.component';\nimport { StepHeaderComponent } from './step-header/step-header.component';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgModule } from '@angular/core';\nimport { CdkStepperModule } from '@angular/cdk/stepper';\nimport { FlexModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [StepperComponent, StepHeaderComponent, StepComponent],\n imports: [CommonModule, MatButtonModule, MatIconModule, CdkStepperModule, FlexModule],\n exports: [StepperComponent, StepHeaderComponent, StepComponent],\n})\nexport class StepperModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mad-content-header',\n templateUrl: './content-header.component.html',\n styleUrls: ['./content-header.component.scss'],\n})\nexport class ContentHeaderComponent {}\n","<div class=\"content-header\">\n <ng-content></ng-content>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mad-content-panel-container',\n templateUrl: './content-panel-container.component.html',\n styleUrls: ['./content-panel-container.component.scss'],\n})\nexport class ContentPanelContainerComponent {}\n","<div class=\"content-panel-outer-wrapper\">\n <ng-content select=\"mad-content-panel-container-content\"></ng-content>\n <ng-content select=\"mad-content-panel-container-footer\"></ng-content>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mad-content-panel-container-content',\n templateUrl: './content-panel-container-content.component.html',\n styleUrls: ['./content-panel-container-content.component.scss'],\n})\nexport class ContentPanelContainerContentComponent {}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mad-content-panel-container-footer',\n templateUrl: './content-panel-container-footer.component.html',\n styleUrls: ['./content-panel-container-footer.component.scss'],\n})\nexport class ContentPanelContainerFooterComponent {}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mad-main-container',\n templateUrl: './main-container.component.html',\n styleUrls: ['./main-container.component.scss'],\n})\nexport class MainContainerComponent {}\n","<div class=\"main-container\">\n <ng-content select=\"mad-content-header\"></ng-content>\n <ng-content select=\"mad-flowbar\"></ng-content>\n <ng-content select=\"mad-content-panel-container\"></ng-content>\n</div>\n","import { ContentHeaderComponent } from './content-header/content-header.component';\nimport { ContentPanelContainerComponent } from './content-panel-container/content-panel-container.component';\nimport { ContentPanelContainerContentComponent } from './content-panel-container-content/content-panel-container-content.component';\nimport { ContentPanelContainerFooterComponent } from './content-panel-container-footer/content-panel-container-footer.component';\nimport { MainContainerComponent } from './main-container/main-container.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [\n ContentHeaderComponent,\n ContentPanelContainerComponent,\n ContentPanelContainerContentComponent,\n ContentPanelContainerFooterComponent,\n MainContainerComponent,\n ],\n imports: [CommonModule],\n exports: [\n ContentHeaderComponent,\n ContentPanelContainerComponent,\n ContentPanelContainerContentComponent,\n ContentPanelContainerFooterComponent,\n MainContainerComponent,\n ],\n})\nexport class ContentPanelModule {}\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatStepper } from '@angular/material/stepper';\n\nexport interface IStep {\n label: string;\n enabled?: boolean;\n subSteps?: IStep[];\n activeSubStep?: IStep;\n}\n\n@Component({\n selector: 'mad-flowbar',\n templateUrl: './flowbar.component.html',\n styleUrls: ['./flowbar.component.scss'],\n})\nexport class FlowbarComponent implements OnInit, AfterViewInit {\n @Input('steps') _steps: IStep[] = [];\n @Input('activeStep') _activeStep: IStep;\n @Output('activeStepChange') _activeStepChange: EventEmitter<IStep> = new EventEmitter<IStep>(true);\n /**\n * Event emitted when a step header is clicked.\n * When defined header navigation has to be implemented programmatically.\n * e.g. {@see changeActiveStepOnHeader}\n */\n @Output('headerClick') _headerClick: EventEmitter<IStep> = new EventEmitter<IStep>(true);\n @ViewChild('stepper') private stepper: MatStepper;\n\n get currentStepLabel(): string {\n return this._activeStep.label;\n }\n\n get currentSubStepLabel(): string {\n return this._activeStep.activeSubStep?.label;\n }\n\n ngOnInit(): void {\n // If no active step is set as input or the active step is not enabled, select the first enabled step\n if (!this._activeStep || !this._activeStep.enabled) {\n this._activeStep = this._steps.find(step => step.enabled);\n if (this._activeStep) {\n // If sub steps exist then set the first non disabled sub step per default\n if (this.activeTabHasSubSteps()) {\n this._activeStep.activeSubStep = this._activeStep.subSteps.find(step => step.enabled);\n }\n this._activeStepChange.emit(this._activeStep);\n }\n }\n }\n\n ngAfterViewInit(): void {\n this.stepper._getIndicatorType = (): any => 'number';\n }\n\n getIndexForActiveStep(): number {\n const selectedIndex = this._steps.indexOf(this._activeStep);\n return selectedIndex === -1 ? 0 : selectedIndex;\n }\n\n changeActiveStep(step: IStep): void {\n const previousIndex = this._steps.indexOf(this._activeStep);\n this._activeStep = step;\n if (this.activeTabHasSubSteps()) {\n if (previousIndex < this._steps.indexOf(this._activeStep)) {\n this._activeStep.activeSubStep = this._activeStep.subSteps[0];\n } else {\n this._activeStep.activeSubStep = this._activeStep.subSteps[this._activeStep.subSteps.length - 1];\n }\n }\n this._activeStepChange.emit(this._activeStep);\n }\n\n changeActiveStepOnHeader(step: IStep): void {\n const stepIndex = this._steps.indexOf(step);\n this._activeStep = step;\n this.stepper.selected = this.stepper._steps.find((_, i) => i === stepIndex);\n }\n\n changeActiveSubStep(subStep: IStep): void {\n this._activeStep.activeSubStep = subStep;\n }\n\n previous(): void {\n if (this.isPreviousAvailable()) {\n // If active step has no sub steps or first sub step is selected -> go to previous main step\n if (!this.activeTabHasSubSteps() || this.isFirstSubStep()) {\n const previousEnabledStep = this.findPreviousEnabledStep();\n this.changeActiveStep(previousEnabledStep);\n this.stepper.selectedIndex = this._steps.indexOf(previousEnabledStep);\n } else {\n const subStepIndex = this._activeStep.subSteps.indexOf(this._activeStep.activeSubStep);\n this._activeStep.activeSubStep = this._activeStep.subSteps[subStepIndex - 1];\n }\n }\n }\n\n next(): void {\n if (this.isNextAvailable()) {\n // If active step has no sub steps or last sub step is selected -> go to next main step\n if (!this.activeTabHasSubSteps() || this.isLastSubStep()) {\n const nextEnabledStep = this.findNextEnabledStep();\n this.changeActiveStep(nextEnabledStep);\n this.stepper.selectedIndex = this._steps.indexOf(nextEnabledStep);\n } else {\n const subStepIndex = this._activeStep.subSteps.indexOf(this._activeStep.activeSubStep);\n this._activeStep.activeSubStep = this._activeStep.subSteps[subStepIndex + 1];\n }\n }\n }\n\n isPreviousAvailable(): boolean {\n if (this._activeStep) {\n if (!this.activeTabHasSubSteps() || this.isFirstSubStep()) {\n const index = this.getCurrentIndex();\n return index > 0 && this.isAnyPreviousStepEnabled(index);\n } else {\n return true;\n }\n }\n return false;\n }\n\n isNextAvailable(): boolean {\n if (this._activeStep) {\n if (!this.activeTabHasSubSteps() || this.isLastSubStep()) {\n const index = this.getCurrentIndex();\n return index < this._steps.length - 1 && this.isAnyFollowingStepEnabled(index);\n } else {\n return true;\n }\n }\n return false;\n }\n\n isLastStep(): boolean {\n if (this.getCurrentIndex() === this._steps.length - 1) {\n if (this.activeTabHasSubSteps()) {\n return this.isLastSubStep();\n } else {\n return true;\n }\n }\n return false;\n }\n\n getCurrentIndex(): number {\n return this._steps.findIndex(value => value === this._activeStep);\n }\n\n getCurrentSubStepIndex(): number {\n return this._activeStep.subSteps.findIndex(value => value === this._activeStep.activeSubStep);\n }\n\n triggerClick(): void {\n const selectedStep = this._steps[this.stepper.selectedIndex];\n this.changeActiveStep(selectedStep);\n }\n\n headerClick(event: any, step: IStep): void {\n event.stopPropagation(); //stop processing current header click event\n this._headerClick.emit(step);\n }\n\n private activeTabHasSubSteps(): boolean {\n return this._activeStep.subSteps && this._activeStep.subSteps.length > 0;\n }\n\n private isFirstSubStep(): boolean {\n return this._activeStep.activeSubStep === this._activeStep.subSteps[0];\n }\n\n private isLastSubStep(): boolean {\n return this._activeStep.activeSubStep === this._activeStep.subSteps[this._activeStep.subSteps.length - 1];\n }\n\n private isAnyPreviousStepEnabled(index: number): boolean {\n // eslint-disable-next-line id-blacklist\n return this._steps.slice(0, index).find(step => step.enabled) !== undefined;\n }\n\n private isAnyFollowingStepEnabled(index: number): boolean {\n // eslint-disable-next-line id-blacklist\n return this._steps.slice(index + 1, this._steps.length).find(step => step.enabled) !== undefined;\n }\n\n private findPreviousEnabledStep(): IStep {\n const index = this.getCurrentIndex();\n return this._steps\n .slice(0, index)\n .reverse()\n .find(step => step.enabled);\n }\n\n private findNextEnabledStep(): IStep {\n const index = this.getCurrentIndex();\n return this._steps.slice(index + 1, this._steps.length).find(step => step.enabled);\n }\n}\n","<div class=\"stepper-container\">\n <mat-horizontal-stepper #stepper [selectedIndex]=\"this.getIndexForActiveStep()\" (click)=\"triggerClick()\">\n <mat-step *ngFor=\"let step of _steps\" [aria-labelledby]=\"!step.enabled ? 'disabled' : null\">\n <ng-template matStepLabel>\n <div class=\"step-header-overlay\" *ngIf=\"this._headerClick.observers.length > 0\" (click)=\"headerClick($event, step)\"></div>\n <span>{{step.label}}</span>\n </ng-template>\n </mat-step>\n </mat-horizontal-stepper>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { FlowbarComponent } from './flowbar.component';\n\n@NgModule({\n declarations: [FlowbarComponent],\n imports: [CommonModule, MatStepperModule],\n exports: [FlowbarComponent],\n})\nexport class FlowbarModule {}\n","import { NgModule } from '@angular/core';\nimport { ToolbarModule } from './toolbar/toolbar.module';\nimport { ReadOnlyFormFieldModule } from './readonly/readonly-form-field.module';\nimport { MaterialActionButtonModule } from './material-action-button/material-action-button.module';\nimport { NumericFieldModule } from './numeric-field/numeric-field.module';\nimport { CardModule } from './card/card.module';\nimport { QuickListModule } from './quick-list/quick-list.module';\nimport { ButtonModule } from './button/button.module';\nimport { ThrottleClickModule } from './throttle-click/throttle-click.module';\n\n@NgModule({\n exports: [\n ReadOnlyFormFieldModule,\n ButtonModule,\n ToolbarModule,\n MaterialActionButtonModule,\n NumericFieldModule,\n CardModule,\n QuickListModule,\n ThrottleClickModule,\n ],\n})\nexport class MaterialAddonsModule {}\n","/*\n * Public API Surface of material-addons\n */\nexport * from './lib/material-action-button/material-action-button.component';\nexport * from './lib/material-action-button/material-action-button.module';\nexport * from './lib/button/button';\nexport * from './lib/button/button.module';\nexport * from './lib/readonly/readonly-form-field.module';\nexport * from './lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component';\nexport * from './lib/readonly/readonly-form-field/readonly-form-field.component';\nexport * from './lib/toolbar/toolbar.module';\nexport * from './lib/toolbar/toolbar.component';\nexport * from './lib/toolbar/toolbar.service';\nexport * from './lib/toolbar/toolbar-action.interface';\nexport * from './lib/numeric-field/numeric-field';\nexport * from './lib/numeric-field/numeric-field.module';\nexport * from './lib/numeric-field/number-format.service';\nexport * from './lib/card/card';\nexport * from './lib/card/card.module';\nexport * from './lib/quick-list/quick-list';\nexport * from './lib/quick-list/quick-list.module';\nexport * from './lib/table/table';\nexport * from './lib/table/table.module';\nexport * from './lib/data-table/data-table';\nexport * from './lib/data-table/data-table.module';\nexport * from './lib/throttle-click/throttle-click.directive';\nexport * from './lib/throttle-click/throttle-click.module';\nexport * from './lib/stepper/stepper.component';\nexport * from './lib/stepper/step-header/step-header.component';\nexport * from './lib/stepper/mad-stepper-animation';\nexport * from './lib/stepper/stepper.module';\nexport * from './lib/content-panel/content-header/content-header.component';\nexport * from './lib/content-panel/content-panel-container/content-panel-container.component';\nexport * from './lib/content-panel/content-panel-container-content/content-panel-container-content.component';\nexport * from './lib/content-panel/content-panel-container-footer/content-panel-container-footer.component';\nexport * from './lib/content-panel/main-container/main-container.component';\nexport * from './lib/content-panel/content-panel.module';\nexport * from './lib/flowbar/flowbar.component';\nexport * from './lib/flowbar/flowbar.module';\nexport * from './lib/material-addons.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i3","i4","i1","i1.NumberFormatService","i5","i3.ReadOnlyFormFieldComponent","i3.ToolbarService","i7","i9","i10.MaterialActionButtonComponent","i11","i12.PrimaryButtonComponent","i13.IconButtonComponent","i4.PrimaryButtonComponent","i5.OutlineButtonComponent","i6.IconButtonComponent","i7.ThrottleClickDirective","i3.LinkButtonComponent","i4.IconButtonComponent","i6","i8","i9.PrimaryButtonComponent","i10.IconButtonComponent","i7.PrimaryButtonComponent","i8.OutlineButtonComponent","i9.DangerButtonComponent","i12","uuidV4","i10","i11.OutlineButtonComponent","i12.IconButtonComponent","i14"],"mappings":"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"}
|