@flywheel-io/vision 0.2.0 → 0.2.1
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/bundles/flywheel-io-vision.umd.js +6 -6
- package/bundles/flywheel-io-vision.umd.js.map +1 -1
- package/bundles/flywheel-io-vision.umd.min.js +1 -1
- package/bundles/flywheel-io-vision.umd.min.js.map +1 -1
- package/esm2015/components/notification/notification/notification.component.js +7 -7
- package/fesm2015/flywheel-io-vision.js +6 -6
- package/fesm2015/flywheel-io-vision.js.map +1 -1
- package/flywheel-io-vision.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flywheel-io-vision.js","sources":["../../../src/components/button-group/button-group.component.ts","../../../src/components/button-group/button-group.module.ts","../../../src/components/button/button.component.ts","../../../src/components/button/button.module.ts","../../../src/components/notification/notification.service.ts","../../../src/components/notification/notification-container/notification-container.component.ts","../../../src/components/notification/notification-timer.service.ts","../../../src/components/notification/notification/notification.model.ts","../../../src/components/notification/notification/notification.component.ts","../../../src/components/notification/notification.module.ts","../../../src/components/popover/popover-trigger.directive.ts","../../../src/components/popover/popover-trigger.component.ts","../../../src/components/popover/popover.component.ts","../../../src/components/popover/popover.module.ts","../../../src/components/table/table.component.ts","../../../src/components/table/table.module.ts","../../../src/flywheel-io-vision.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n host: {\n 'class': 'fw-button-group',\n '[class.small]': 'size === \"small\"',\n '[class.medium]': 'size === \"medium\"',\n '[class.large]': 'size === \"large\"',\n '[class.compact]': 'layout === \"compact\"',\n },\n selector: 'fw-button-group',\n styleUrls: [ './button-group.component.scss' ],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n})\nexport class FwButtonGroupComponent {\n @Input() layout?: 'basic' | 'compact' = 'basic'\n @Input() size?: 'small' | 'medium' | 'large' = 'medium'\n}\n","import { NgModule } from '@angular/core';\n\nimport { FwButtonGroupComponent } from './button-group.component';\n\n@NgModule({\n exports: [\n FwButtonGroupComponent,\n ],\n declarations: [\n FwButtonGroupComponent,\n ],\n entryComponents: [\n FwButtonGroupComponent,\n ]\n})\nexport class FwButtonGroupModule {}","import { Component, Input } from '@angular/core';\nimport type { ThemePalette } from '@angular/material/core';\n\n@Component({\n host: {\n 'class': 'fw-button',\n '[class.small]': 'size === \"small\"',\n '[class.medium]': 'size === \"medium\"',\n '[class.large]': 'size === \"large\"',\n '[class.compact]': 'layout === \"compact\"',\n },\n selector: 'fw-button',\n styleUrls: ['./button.component.scss'],\n templateUrl: './button.component.html',\n})\nexport class FwButtonComponent {\n @Input() color?: ThemePalette\n @Input() layout?: 'basic' | 'compact' = 'basic'\n @Input() size?: 'small' | 'medium' | 'large' = 'medium'\n @Input() type?: 'basic' | 'flat' | 'raised' | 'stroked' = 'basic'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { FwButtonComponent } from './button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n ],\n exports: [\n FwButtonComponent,\n ],\n declarations: [\n FwButtonComponent,\n ],\n entryComponents: [\n FwButtonComponent,\n ],\n})\nexport class FwButtonModule {}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Notification } from './notification/notification.model';\n\nexport function genId(): string {\n return String.prototype.padStart(24, Math.floor(Math.random() * Date.now()).toString(16));\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FwNotificationService {\n readonly notifications$ = new BehaviorSubject<Notification[]>([]);\n private notificationQueue: Notification[] = [];\n\n show(notification: Notification): void {\n if (!notification.id) {\n notification.id = genId();\n }\n\n this.notificationQueue.push(notification);\n this.notifications$.next(this.notificationQueue);\n }\n\n dismiss(notificationId: string): void {\n this.notificationQueue = this.notificationQueue.filter((v) => v.id !== notificationId);\n this.notifications$.next(this.notificationQueue);\n }\n\n dismissAll(): void {\n this.notificationQueue = [];\n this.notifications$.next(this.notificationQueue);\n }\n}\n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { FwNotificationService } from '../notification.service';\nimport { FwNotificationComponent } from '../notification/notification.component';\nimport { Notification } from '../notification/notification.model';\n\n@Component({\n host: {\n 'class': 'fw-notification-container',\n '[class.duo]': 'notifications.length === 2',\n '[class.triple]': 'notifications.length >= 3',\n },\n selector: 'fw-notification-container',\n templateUrl: './notification-container.component.html',\n styleUrls: ['./notification-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FwNotificationContainerComponent implements OnDestroy {\n limit = 3;\n notifications: Notification[] = [];\n showMore = false;\n showLess = false;\n\n private subscriptions = {\n notifications: Subscription.EMPTY\n }\n\n constructor(private cdr: ChangeDetectorRef, private notificationService: FwNotificationService) {\n this.subscriptions.notifications = this.notificationService.notifications$.subscribe((notifications: Notification[]) => {\n this.notifications = notifications;\n this.showMore = this.notifications.length > 1;\n this.showLess = false;\n this.cdr.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n for (const subscription of Object.values(this.subscriptions)) {\n subscription.unsubscribe();\n }\n }\n\n notificationClass(index: number): string {\n let cssClass: string;\n const level = this.notifications.length > this.limit\n ? index - (this.notifications.length - this.limit)\n : index;\n\n if (this.showLess) {\n cssClass = 'default';\n } else {\n cssClass = level >= 0 ? `level-${level}` : 'hidden';\n }\n\n return cssClass;\n }\n\n onReady(notification: FwNotificationComponent): void {\n const currentNotification = this.notifications[this.notifications.length - 1];\n currentNotification.ref = notification;\n notification.startTimer();\n }\n\n onDismiss(notificationId: string): void {\n const notification = this.notifications.find((currentNotification) => currentNotification.id === notificationId);\n if (notification) {\n notification.ref.stopTimer();\n }\n\n this.notificationService.dismiss(notification.id);\n this.cdr.markForCheck();\n }\n\n clearAll(): void {\n this.showMore = false;\n this.showLess = false;\n this.notificationService.dismissAll();\n this.cdr.markForCheck();\n }\n\n onShowMore(): void {\n this.showLess = true;\n this.showMore = false;\n this.cdr.markForCheck();\n }\n\n onShowLess(): void {\n this.showMore = true;\n this.showLess = false;\n this.cdr.markForCheck();\n }\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class FwNotificationTimerService {\n private timerId: number;\n private now = 0;\n private remainingDuration = 0;\n private resolver: () => void;\n\n start(duration: number): Promise<void> {\n return new Promise<void>((resolve) => {\n this.remainingDuration = duration;\n this.resolver = resolve;\n this.continue();\n });\n }\n\n stop(): void {\n clearTimeout(this.timerId);\n this.remainingDuration = 0;\n }\n\n pause(): void {\n clearTimeout(this.timerId);\n this.remainingDuration =\n this.remainingDuration - new Date().getTime() - this.now;\n }\n\n continue(): void {\n this.now = new Date().getTime();\n this.timerId = window.setTimeout(() => {\n this.resolver();\n }, this.remainingDuration);\n }\n}\n","import { FwNotificationComponent } from './notification.component';\n\nexport enum FwNotificationType {\n Error = 'error',\n Info = 'info',\n Success = 'success',\n Wait = 'wait',\n Warning = 'warning',\n}\n\nexport interface Notification {\n id?: string\n message: string\n type: FwNotificationType\n ref?: FwNotificationComponent\n}","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\nimport { FwNotificationTimerService } from '../notification-timer.service';\nimport { FwNotificationType, Notification } from './notification.model';\n\n@Component({\n host: {\n 'class': 'fw-notification',\n '[class.error]': `notification.type === '${FwNotificationType.Error}'`,\n '[class.info]': `notification.type === '${FwNotificationType.Info}'`,\n '[class.success]': `notification.type === '${FwNotificationType.Success}'`,\n '[class.wait]': `notification.type === '${FwNotificationType.Wait}'`,\n '[class.warning]': `notification.type === '${FwNotificationType.Warning}'`,\n '(click)': 'onClickDismiss()'\n },\n selector: 'fw-notification',\n styleUrls: [ './notification.component.scss' ],\n template: `<ng-container>{{ notification.message }}</ng-container>`,\n providers: [FwNotificationTimerService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class FwNotificationComponent implements AfterViewInit {\n @Input() notification: Notification\n @Input() notificationDuration: number = 9000;\n @Output() ready = new EventEmitter<FwNotificationComponent>()\n @Output() dismiss = new EventEmitter<string>()\n\n constructor(private cdr: ChangeDetectorRef, private timerService: FwNotificationTimerService) {}\n\n ngAfterViewInit(): void {\n this.ready.emit(this);\n this.cdr.markForCheck();\n }\n\n startTimer(): void {\n this.timerService.start(this.notificationDuration).then(() => {\n this.onClickDismiss();\n this.cdr.markForCheck();\n });\n }\n\n stopTimer(): void {\n this.timerService.stop();\n this.cdr.markForCheck();\n }\n\n onClickDismiss(): void {\n this.dismiss.emit(this.notification.id);\n this.cdr.markForCheck();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FwButtonGroupModule } from '../button-group/button-group.module';\nimport { FwButtonModule } from '../button/button.module';\nimport { FwNotificationContainerComponent } from './notification-container/notification-container.component';\nimport { FwNotificationService } from './notification.service';\nimport { FwNotificationComponent } from './notification/notification.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FwButtonModule,\n FwButtonGroupModule,\n MatButtonModule,\n MatIconModule,\n ],\n exports: [\n FwNotificationComponent,\n FwNotificationContainerComponent\n ],\n declarations: [\n FwNotificationComponent,\n FwNotificationContainerComponent,\n ],\n entryComponents: [\n FwNotificationComponent,\n ],\n providers: [\n FwNotificationService,\n ]\n})\nexport class FwNotificationModule {}","import { ConnectedOverlayPositionChange, ConnectedPosition, FlexibleConnectedPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy, SimpleChanges, ViewContainerRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { FwPopoverComponent } from './popover.component';\n\nexport type FwPopoverPosition = 'left' | 'right' | 'above' | 'below' | 'before' | 'after';\n\n@Directive({\n host: {\n 'class': 'fw-popover-trigger',\n '(mouseenter)': 'showPopover()',\n '(mouseleave)': 'hidePopover($event)',\n },\n selector: '[fwPopoverTriggerFor]',\n exportAs: 'fwPopoverTrigger',\n})\nexport class FwPopoverTriggerDirective implements OnChanges, OnDestroy {\n public popoverId: string\n private popoverMargin = 15\n private fallbackPosition: FwPopoverPosition\n private mainPosition: FwPopoverPosition\n private overlayRef: OverlayRef\n private positionMap: { [key: string]: ConnectedPosition } = {\n 'left': { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },\n 'right': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },\n 'above': { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },\n 'below': { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },\n }\n\n @Input('fwPopoverTriggerFor') popover: FwPopoverComponent\n @Input('fwPopoverPosition') position: FwPopoverPosition = 'below'\n\n private subscriptions = {\n positionChanges: Subscription.EMPTY,\n };\n\n constructor(\n public element: ElementRef,\n public overlay: Overlay,\n public viewContainerRef: ViewContainerRef,\n ) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.position && this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n ngOnDestroy(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n for (const subscription of Object.values(this.subscriptions)) {\n subscription.unsubscribe();\n }\n }\n\n showPopover(): void {\n if (this.popover?.templateRef) {\n this.getOverlay().attach(new TemplatePortal(this.popover.templateRef, this.viewContainerRef));\n }\n }\n\n hidePopover(e: MouseEvent): void {\n if (!(e.relatedTarget as HTMLElement)?.classList.contains('fw-popover-panel')) {\n this.getOverlay().detach();\n }\n }\n\n private setPopoverCaretPosition(position: FwPopoverPosition): void {\n const caret = this.overlayRef.overlayElement.querySelector('.fw-popover-caret') as HTMLElement;\n const caretRect = this.overlayRef.overlayElement.getBoundingClientRect();\n const triggerRect = this.element.nativeElement.getBoundingClientRect();\n (this.overlayRef.overlayElement.querySelector('.fw-popover-content-wrapper') as HTMLElement).style.margin = `${this.popoverMargin}px`;\n if (['left', 'right', 'before', 'after'].includes(position)) {\n caret.style.top = `${triggerRect.top - caretRect.top - this.popoverMargin + (triggerRect.height / 2)}px`;\n } else {\n caret.style.left = `${triggerRect.left - caretRect.left - this.popoverMargin + (triggerRect.width / 2)}px`;\n }\n }\n\n private setPopoverPosition(positionChange: ConnectedOverlayPositionChange): void {\n const position = this.positionMap[this.mainPosition] === positionChange.connectionPair\n ? this.mainPosition\n : this.positionMap[this.fallbackPosition] === positionChange.connectionPair\n ? this.fallbackPosition\n : this.mainPosition;\n this.overlayRef.removePanelClass(['fw-popover-above', 'fw-popover-below', 'fw-popover-left', 'fw-popover-right']);\n this.overlayRef.addPanelClass(`fw-popover-${position}`);\n this.setPopoverCaretPosition(position);\n }\n\n public getOverlay(): OverlayRef {\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(this.element)\n .withPositions(this.getPositions()),\n panelClass: 'fw-popover-panel',\n });\n this.overlayRef.overlayElement.addEventListener('mouseleave', e => this.hidePopover(e));\n this.subscriptions.positionChanges = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy).positionChanges\n .subscribe(positionChange => this.setPopoverPosition(positionChange));\n }\n return this.overlayRef;\n }\n\n private getMainPosition(): FwPopoverPosition {\n return this.mainPosition =\n ['left', 'before'].includes(this.position)\n ? 'left'\n : ['right', 'after'].includes(this.position)\n ? 'right'\n : this.position === 'above'\n ? 'above'\n : 'below';\n }\n\n private getFallbackPosition(): FwPopoverPosition {\n return this.fallbackPosition =\n ['left', 'before'].includes(this.position)\n ? 'right'\n : ['right', 'after'].includes(this.position)\n ? 'left'\n : this.position === 'above'\n ? 'below'\n : 'above';\n }\n\n private getPositions(): ConnectedPosition[] {\n return [\n // main position\n this.positionMap[this.getMainPosition()],\n // fallback position (inverse of main)\n this.positionMap[this.getFallbackPosition()],\n ];\n }\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { ElementRef, Input, ViewContainerRef } from '@angular/core';\n\nimport { FwPopoverPosition, FwPopoverTriggerDirective } from './popover-trigger.directive';\n\n@Component({\n host: {\n 'class': 'fw-popover-trigger',\n '(mouseenter)': 'showPopover()',\n '(mouseleave)': 'hidePopover($event)',\n },\n selector: 'fw-popover-trigger',\n template: `<ng-content></ng-content>\n <!-- for web component support -->\n <ng-template>\n <div [innerHTML]=\"popoverHTML\"></div>\n </ng-template>`,\n})\nexport class FwPopoverTriggerComponent extends FwPopoverTriggerDirective {\n @Input('trigger-for') popoverId: string\n @Input('position') position: FwPopoverPosition = 'below'\n\n // for web component support\n @ViewChild(TemplateRef) popoverTemplateRef: TemplateRef<any> // eslint-disable-line @typescript-eslint/no-explicit-any\n popoverHTML: string\n\n constructor(\n public element: ElementRef,\n public overlay: Overlay,\n public viewContainerRef: ViewContainerRef,\n ) {\n super(element, overlay, viewContainerRef);\n }\n\n showPopover(): void {\n const overlay = this.getOverlay();\n overlay.detach();\n if (this.popoverId) {\n // as a web component it is not possible to have a reference to this.popover\n this.popoverHTML = document.querySelector(`fw-popover#${this.popoverId}`).innerHTML;\n overlay.attach(new TemplatePortal(this.popoverTemplateRef, this.viewContainerRef));\n }\n }\n}\n","import { Component, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n host: { 'class': 'fw-popover' },\n selector: 'fw-popover',\n styleUrls: [ './popover.component.scss' ],\n template: `\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <ng-template #content>\n <div class=\"fw-popover-content-wrapper\">\n <ng-content></ng-content>\n <div class=\"fw-popover-caret\"></div>\n </div>\n </ng-template>`,\n encapsulation: ViewEncapsulation.None,\n})\nexport class FwPopoverComponent {\n // Used for TemplatePortal in ./popover-trigger.directive.ts\n @ViewChild('content') templateRef: TemplateRef<any> // eslint-disable-line @typescript-eslint/no-explicit-any\n}\n","import { CommonModule } from '@angular/common';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\n\nimport { FwPopoverTriggerComponent } from './popover-trigger.component';\nimport { FwPopoverTriggerDirective } from './popover-trigger.directive';\nimport { FwPopoverComponent } from './popover.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n FwPopoverComponent,\n FwPopoverTriggerComponent,\n FwPopoverTriggerDirective,\n ],\n declarations: [\n FwPopoverComponent,\n FwPopoverTriggerComponent,\n FwPopoverTriggerDirective,\n ],\n entryComponents: [\n FwPopoverComponent,\n FwPopoverTriggerComponent,\n ],\n providers: [\n Overlay,\n ],\n})\nexport class FwPopoverModule {}\n","import { ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { debounceTime } from 'rxjs/operators';\n\ntype SortOrder = 'asc' | 'desc'\n\ninterface ColumnFilter {\n control: 'input' | 'select' | 'multi-select',\n options?: string[],\n placeholder?: string,\n}\n\ninterface Column {\n label: string,\n key: string,\n filter?: ColumnFilter,\n}\n\n@Component({\n host: {\n 'class': 'fw-table',\n '[class.compact]': 'isCompact',\n },\n selector: 'fw-table',\n styleUrls: ['./table.component.scss'],\n templateUrl: './table.component.html',\n})\nexport class FwTableComponent implements OnInit, OnChanges {\n @Input() columns: Column[] = []\n @Input() dataSource: any[] = []\n @Input() layout?: 'basic' | 'compact' = 'basic'\n @Input() pageSize = null\n @Input('page-size') webCompPageSize = null\n @Input() sort = null\n\n private sortColumn = ''\n private sortOrder: SortOrder = 'asc'\n\n displayedColumns: string[] = []\n filters: FormGroup = new FormGroup({})\n matDataSource: MatTableDataSource<any>\n\n // to support updating column header labels\n trackByIndex: any = i => i\n\n @ViewChild(MatPaginator) matPaginator: MatPaginator\n @ViewChild(MatSort) matSort: MatSort\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n ) { }\n\n ngOnInit(): void {\n this.setDataSource();\n this.setColumns();\n this.addFilterControls();\n this.setFilter();\n this.matDataSource.filterPredicate = (row, filter) => {\n const filters = JSON.parse(filter);\n for (const filter in filters) {\n const filterValue = filters[filter];\n const rowValue = row[filter];\n // multi-select\n if (Array.isArray(filterValue) && filterValue.length > 0 && !filterValue.includes(rowValue)) {\n return false;\n }\n // input or select\n if (!Array.isArray(filterValue) && !String(rowValue).toLowerCase().includes(String(filterValue ?? '').toLowerCase())) {\n return false;\n }\n }\n return true;\n };\n this.filters.valueChanges.pipe(debounceTime(200)).subscribe(() => this.setFilter());\n }\n\n ngAfterViewInit(): void {\n this.setSort();\n this.setPaginator();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.columns) {\n this.setColumns();\n }\n if (changes.dataSource) {\n this.setDataSource();\n }\n if (changes.sort || changes.dataSource) {\n this.setSort();\n }\n if (changes.pageSize || changes['page-size']) {\n this.setPaginator();\n }\n }\n\n get isCompact(): boolean {\n return this.layout === 'compact';\n }\n\n get paginationSize(): number {\n return this.pageSize || this.webCompPageSize || 0;\n }\n\n get isSortEnabled(): boolean {\n return this.sort !== null;\n }\n\n addFilterControls(): void {\n for (const column of this.columns) {\n this.filters.addControl(column.key, new FormControl());\n }\n }\n\n setDataSource(): void {\n this.matDataSource = new MatTableDataSource(this.dataSource);\n }\n\n setColumns(): void {\n this.displayedColumns = this.columns.map(column => column.key);\n }\n\n setFilter(): void {\n this.matDataSource.filter = JSON.stringify(this.filters.value);\n }\n\n setSort(): void {\n if (!this.matSort || this.sort === null) {\n return;\n }\n const sortSplit = this.sort.split(' ');\n this.sortColumn = sortSplit[0];\n if (['asc', 'desc'].includes(sortSplit[1])) {\n this.sortOrder = sortSplit[1] as SortOrder;\n } else {\n console.warn(`Sort order '${sortSplit[1]}' is not 'asc' or 'desc', defaulting to 'asc'`);\n }\n if (this.sortColumn) {\n this.matSort.sort({ id: this.sortColumn, start: this.sortOrder, disableClear: false });\n const sortHeader = this.matSort.sortables.get(this.sortColumn) as MatSortHeader;\n if (sortHeader) {\n sortHeader._setAnimationTransitionState({ toState: 'active' });\n } else {\n console.warn(`Unable to find sort column '${this.sortColumn}'. Initial sort failed.`);\n }\n }\n this.matDataSource.sort = this.matSort;\n }\n\n setPaginator(): void {\n // ensures ui updates correctly when paginator options change\n this.changeDetectorRef.detectChanges();\n this.matDataSource.paginator = this.matPaginator;\n }\n\n // necessary for web component to trigger this.filter.valueChanges\n onInputFilter(event: KeyboardEvent, column: Column): void {\n // defer setting filter control as event.target.value is not set yet\n setTimeout(() => this.filters.get(column.key).setValue((event.target as HTMLInputElement).value));\n }\n\n // necessary for web component to trigger this.filter.valueChanges\n onSelectFilter(event: MouseEvent, column: Column): void {\n const innerText = (event.target as HTMLInputElement).innerText;\n this.filters.get(column.key).setValue(innerText === '- none -' ? null : innerText);\n }\n\n // necessary for web component to trigger this.filter.valueChanges\n onMultiSelectFilter(event: MouseEvent, column: Column): void {\n let value = this.filters.controls[column.key].value || [];\n const innerText = (event.target as HTMLInputElement).parentElement.innerText;\n if (value.includes(innerText)) {\n value = value.filter(v => v !== innerText);\n } else {\n value.push(innerText);\n }\n this.filters.get(column.key).setValue(\n value.length === 1 && innerText === ''\n ? null // when all checboxes have been deselected\n : value\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { FwTableComponent } from './table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatPaginatorModule,\n MatSelectModule,\n MatSortModule,\n MatTableModule,\n ],\n exports: [\n FwTableComponent,\n ],\n declarations: [\n FwTableComponent,\n ],\n entryComponents: [\n FwTableComponent,\n ]\n})\nexport class FwTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {FwNotificationTimerService as ɵa} from './components/notification/notification-timer.service';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flywheel-io-vision.js","sources":["../../../src/components/button-group/button-group.component.ts","../../../src/components/button-group/button-group.module.ts","../../../src/components/button/button.component.ts","../../../src/components/button/button.module.ts","../../../src/components/notification/notification.service.ts","../../../src/components/notification/notification-container/notification-container.component.ts","../../../src/components/notification/notification-timer.service.ts","../../../src/components/notification/notification/notification.model.ts","../../../src/components/notification/notification/notification.component.ts","../../../src/components/notification/notification.module.ts","../../../src/components/popover/popover-trigger.directive.ts","../../../src/components/popover/popover-trigger.component.ts","../../../src/components/popover/popover.component.ts","../../../src/components/popover/popover.module.ts","../../../src/components/table/table.component.ts","../../../src/components/table/table.module.ts","../../../src/flywheel-io-vision.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n host: {\n 'class': 'fw-button-group',\n '[class.small]': 'size === \"small\"',\n '[class.medium]': 'size === \"medium\"',\n '[class.large]': 'size === \"large\"',\n '[class.compact]': 'layout === \"compact\"',\n },\n selector: 'fw-button-group',\n styleUrls: [ './button-group.component.scss' ],\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n})\nexport class FwButtonGroupComponent {\n @Input() layout?: 'basic' | 'compact' = 'basic'\n @Input() size?: 'small' | 'medium' | 'large' = 'medium'\n}\n","import { NgModule } from '@angular/core';\n\nimport { FwButtonGroupComponent } from './button-group.component';\n\n@NgModule({\n exports: [\n FwButtonGroupComponent,\n ],\n declarations: [\n FwButtonGroupComponent,\n ],\n entryComponents: [\n FwButtonGroupComponent,\n ]\n})\nexport class FwButtonGroupModule {}","import { Component, Input } from '@angular/core';\nimport type { ThemePalette } from '@angular/material/core';\n\n@Component({\n host: {\n 'class': 'fw-button',\n '[class.small]': 'size === \"small\"',\n '[class.medium]': 'size === \"medium\"',\n '[class.large]': 'size === \"large\"',\n '[class.compact]': 'layout === \"compact\"',\n },\n selector: 'fw-button',\n styleUrls: ['./button.component.scss'],\n templateUrl: './button.component.html',\n})\nexport class FwButtonComponent {\n @Input() color?: ThemePalette\n @Input() layout?: 'basic' | 'compact' = 'basic'\n @Input() size?: 'small' | 'medium' | 'large' = 'medium'\n @Input() type?: 'basic' | 'flat' | 'raised' | 'stroked' = 'basic'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { FwButtonComponent } from './button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n ],\n exports: [\n FwButtonComponent,\n ],\n declarations: [\n FwButtonComponent,\n ],\n entryComponents: [\n FwButtonComponent,\n ],\n})\nexport class FwButtonModule {}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Notification } from './notification/notification.model';\n\nexport function genId(): string {\n return String.prototype.padStart(24, Math.floor(Math.random() * Date.now()).toString(16));\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FwNotificationService {\n readonly notifications$ = new BehaviorSubject<Notification[]>([]);\n private notificationQueue: Notification[] = [];\n\n show(notification: Notification): void {\n if (!notification.id) {\n notification.id = genId();\n }\n\n this.notificationQueue.push(notification);\n this.notifications$.next(this.notificationQueue);\n }\n\n dismiss(notificationId: string): void {\n this.notificationQueue = this.notificationQueue.filter((v) => v.id !== notificationId);\n this.notifications$.next(this.notificationQueue);\n }\n\n dismissAll(): void {\n this.notificationQueue = [];\n this.notifications$.next(this.notificationQueue);\n }\n}\n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { FwNotificationService } from '../notification.service';\nimport { FwNotificationComponent } from '../notification/notification.component';\nimport { Notification } from '../notification/notification.model';\n\n@Component({\n host: {\n 'class': 'fw-notification-container',\n '[class.duo]': 'notifications.length === 2',\n '[class.triple]': 'notifications.length >= 3',\n },\n selector: 'fw-notification-container',\n templateUrl: './notification-container.component.html',\n styleUrls: ['./notification-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FwNotificationContainerComponent implements OnDestroy {\n limit = 3;\n notifications: Notification[] = [];\n showMore = false;\n showLess = false;\n\n private subscriptions = {\n notifications: Subscription.EMPTY\n }\n\n constructor(private cdr: ChangeDetectorRef, private notificationService: FwNotificationService) {\n this.subscriptions.notifications = this.notificationService.notifications$.subscribe((notifications: Notification[]) => {\n this.notifications = notifications;\n this.showMore = this.notifications.length > 1;\n this.showLess = false;\n this.cdr.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n for (const subscription of Object.values(this.subscriptions)) {\n subscription.unsubscribe();\n }\n }\n\n notificationClass(index: number): string {\n let cssClass: string;\n const level = this.notifications.length > this.limit\n ? index - (this.notifications.length - this.limit)\n : index;\n\n if (this.showLess) {\n cssClass = 'default';\n } else {\n cssClass = level >= 0 ? `level-${level}` : 'hidden';\n }\n\n return cssClass;\n }\n\n onReady(notification: FwNotificationComponent): void {\n const currentNotification = this.notifications[this.notifications.length - 1];\n currentNotification.ref = notification;\n notification.startTimer();\n }\n\n onDismiss(notificationId: string): void {\n const notification = this.notifications.find((currentNotification) => currentNotification.id === notificationId);\n if (notification) {\n notification.ref.stopTimer();\n }\n\n this.notificationService.dismiss(notification.id);\n this.cdr.markForCheck();\n }\n\n clearAll(): void {\n this.showMore = false;\n this.showLess = false;\n this.notificationService.dismissAll();\n this.cdr.markForCheck();\n }\n\n onShowMore(): void {\n this.showLess = true;\n this.showMore = false;\n this.cdr.markForCheck();\n }\n\n onShowLess(): void {\n this.showMore = true;\n this.showLess = false;\n this.cdr.markForCheck();\n }\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class FwNotificationTimerService {\n private timerId: number;\n private now = 0;\n private remainingDuration = 0;\n private resolver: () => void;\n\n start(duration: number): Promise<void> {\n return new Promise<void>((resolve) => {\n this.remainingDuration = duration;\n this.resolver = resolve;\n this.continue();\n });\n }\n\n stop(): void {\n clearTimeout(this.timerId);\n this.remainingDuration = 0;\n }\n\n pause(): void {\n clearTimeout(this.timerId);\n this.remainingDuration =\n this.remainingDuration - new Date().getTime() - this.now;\n }\n\n continue(): void {\n this.now = new Date().getTime();\n this.timerId = window.setTimeout(() => {\n this.resolver();\n }, this.remainingDuration);\n }\n}\n","import { FwNotificationComponent } from './notification.component';\n\nexport enum FwNotificationType {\n Error = 'error',\n Info = 'info',\n Success = 'success',\n Wait = 'wait',\n Warning = 'warning',\n}\n\nexport interface Notification {\n id?: string\n message: string\n type: FwNotificationType\n ref?: FwNotificationComponent\n}","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\nimport { FwNotificationTimerService } from '../notification-timer.service';\nimport { FwNotificationType, Notification } from './notification.model';\n\n@Component({\n host: {\n 'class': 'fw-notification',\n '[class.error]': `notification?.type === '${FwNotificationType.Error}'`,\n '[class.info]': `notification?.type === '${FwNotificationType.Info}'`,\n '[class.success]': `notification?.type === '${FwNotificationType.Success}'`,\n '[class.wait]': `notification?.type === '${FwNotificationType.Wait}'`,\n '[class.warning]': `notification?.type === '${FwNotificationType.Warning}'`,\n '(click)': 'onClickDismiss()'\n },\n selector: 'fw-notification',\n styleUrls: [ './notification.component.scss' ],\n template: `<ng-container>{{ notification?.message }}</ng-container>`,\n providers: [FwNotificationTimerService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class FwNotificationComponent implements AfterViewInit {\n @Input() notification: Notification\n @Input() notificationDuration: number = 9000;\n @Output() ready = new EventEmitter<FwNotificationComponent>()\n @Output() dismiss = new EventEmitter<string>()\n\n constructor(private cdr: ChangeDetectorRef, private timerService: FwNotificationTimerService) {}\n\n ngAfterViewInit(): void {\n this.ready.emit(this);\n this.cdr.markForCheck();\n }\n\n startTimer(): void {\n this.timerService.start(this.notificationDuration).then(() => {\n this.onClickDismiss();\n this.cdr.markForCheck();\n });\n }\n\n stopTimer(): void {\n this.timerService.stop();\n this.cdr.markForCheck();\n }\n\n onClickDismiss(): void {\n this.dismiss.emit(this.notification.id);\n this.cdr.markForCheck();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FwButtonGroupModule } from '../button-group/button-group.module';\nimport { FwButtonModule } from '../button/button.module';\nimport { FwNotificationContainerComponent } from './notification-container/notification-container.component';\nimport { FwNotificationService } from './notification.service';\nimport { FwNotificationComponent } from './notification/notification.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FwButtonModule,\n FwButtonGroupModule,\n MatButtonModule,\n MatIconModule,\n ],\n exports: [\n FwNotificationComponent,\n FwNotificationContainerComponent\n ],\n declarations: [\n FwNotificationComponent,\n FwNotificationContainerComponent,\n ],\n entryComponents: [\n FwNotificationComponent,\n ],\n providers: [\n FwNotificationService,\n ]\n})\nexport class FwNotificationModule {}","import { ConnectedOverlayPositionChange, ConnectedPosition, FlexibleConnectedPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy, SimpleChanges, ViewContainerRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { FwPopoverComponent } from './popover.component';\n\nexport type FwPopoverPosition = 'left' | 'right' | 'above' | 'below' | 'before' | 'after';\n\n@Directive({\n host: {\n 'class': 'fw-popover-trigger',\n '(mouseenter)': 'showPopover()',\n '(mouseleave)': 'hidePopover($event)',\n },\n selector: '[fwPopoverTriggerFor]',\n exportAs: 'fwPopoverTrigger',\n})\nexport class FwPopoverTriggerDirective implements OnChanges, OnDestroy {\n public popoverId: string\n private popoverMargin = 15\n private fallbackPosition: FwPopoverPosition\n private mainPosition: FwPopoverPosition\n private overlayRef: OverlayRef\n private positionMap: { [key: string]: ConnectedPosition } = {\n 'left': { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },\n 'right': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },\n 'above': { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },\n 'below': { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },\n }\n\n @Input('fwPopoverTriggerFor') popover: FwPopoverComponent\n @Input('fwPopoverPosition') position: FwPopoverPosition = 'below'\n\n private subscriptions = {\n positionChanges: Subscription.EMPTY,\n };\n\n constructor(\n public element: ElementRef,\n public overlay: Overlay,\n public viewContainerRef: ViewContainerRef,\n ) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.position && this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n ngOnDestroy(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n for (const subscription of Object.values(this.subscriptions)) {\n subscription.unsubscribe();\n }\n }\n\n showPopover(): void {\n if (this.popover?.templateRef) {\n this.getOverlay().attach(new TemplatePortal(this.popover.templateRef, this.viewContainerRef));\n }\n }\n\n hidePopover(e: MouseEvent): void {\n if (!(e.relatedTarget as HTMLElement)?.classList.contains('fw-popover-panel')) {\n this.getOverlay().detach();\n }\n }\n\n private setPopoverCaretPosition(position: FwPopoverPosition): void {\n const caret = this.overlayRef.overlayElement.querySelector('.fw-popover-caret') as HTMLElement;\n const caretRect = this.overlayRef.overlayElement.getBoundingClientRect();\n const triggerRect = this.element.nativeElement.getBoundingClientRect();\n (this.overlayRef.overlayElement.querySelector('.fw-popover-content-wrapper') as HTMLElement).style.margin = `${this.popoverMargin}px`;\n if (['left', 'right', 'before', 'after'].includes(position)) {\n caret.style.top = `${triggerRect.top - caretRect.top - this.popoverMargin + (triggerRect.height / 2)}px`;\n } else {\n caret.style.left = `${triggerRect.left - caretRect.left - this.popoverMargin + (triggerRect.width / 2)}px`;\n }\n }\n\n private setPopoverPosition(positionChange: ConnectedOverlayPositionChange): void {\n const position = this.positionMap[this.mainPosition] === positionChange.connectionPair\n ? this.mainPosition\n : this.positionMap[this.fallbackPosition] === positionChange.connectionPair\n ? this.fallbackPosition\n : this.mainPosition;\n this.overlayRef.removePanelClass(['fw-popover-above', 'fw-popover-below', 'fw-popover-left', 'fw-popover-right']);\n this.overlayRef.addPanelClass(`fw-popover-${position}`);\n this.setPopoverCaretPosition(position);\n }\n\n public getOverlay(): OverlayRef {\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(this.element)\n .withPositions(this.getPositions()),\n panelClass: 'fw-popover-panel',\n });\n this.overlayRef.overlayElement.addEventListener('mouseleave', e => this.hidePopover(e));\n this.subscriptions.positionChanges = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy).positionChanges\n .subscribe(positionChange => this.setPopoverPosition(positionChange));\n }\n return this.overlayRef;\n }\n\n private getMainPosition(): FwPopoverPosition {\n return this.mainPosition =\n ['left', 'before'].includes(this.position)\n ? 'left'\n : ['right', 'after'].includes(this.position)\n ? 'right'\n : this.position === 'above'\n ? 'above'\n : 'below';\n }\n\n private getFallbackPosition(): FwPopoverPosition {\n return this.fallbackPosition =\n ['left', 'before'].includes(this.position)\n ? 'right'\n : ['right', 'after'].includes(this.position)\n ? 'left'\n : this.position === 'above'\n ? 'below'\n : 'above';\n }\n\n private getPositions(): ConnectedPosition[] {\n return [\n // main position\n this.positionMap[this.getMainPosition()],\n // fallback position (inverse of main)\n this.positionMap[this.getFallbackPosition()],\n ];\n }\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { ElementRef, Input, ViewContainerRef } from '@angular/core';\n\nimport { FwPopoverPosition, FwPopoverTriggerDirective } from './popover-trigger.directive';\n\n@Component({\n host: {\n 'class': 'fw-popover-trigger',\n '(mouseenter)': 'showPopover()',\n '(mouseleave)': 'hidePopover($event)',\n },\n selector: 'fw-popover-trigger',\n template: `<ng-content></ng-content>\n <!-- for web component support -->\n <ng-template>\n <div [innerHTML]=\"popoverHTML\"></div>\n </ng-template>`,\n})\nexport class FwPopoverTriggerComponent extends FwPopoverTriggerDirective {\n @Input('trigger-for') popoverId: string\n @Input('position') position: FwPopoverPosition = 'below'\n\n // for web component support\n @ViewChild(TemplateRef) popoverTemplateRef: TemplateRef<any> // eslint-disable-line @typescript-eslint/no-explicit-any\n popoverHTML: string\n\n constructor(\n public element: ElementRef,\n public overlay: Overlay,\n public viewContainerRef: ViewContainerRef,\n ) {\n super(element, overlay, viewContainerRef);\n }\n\n showPopover(): void {\n const overlay = this.getOverlay();\n overlay.detach();\n if (this.popoverId) {\n // as a web component it is not possible to have a reference to this.popover\n this.popoverHTML = document.querySelector(`fw-popover#${this.popoverId}`).innerHTML;\n overlay.attach(new TemplatePortal(this.popoverTemplateRef, this.viewContainerRef));\n }\n }\n}\n","import { Component, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n host: { 'class': 'fw-popover' },\n selector: 'fw-popover',\n styleUrls: [ './popover.component.scss' ],\n template: `\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <ng-template #content>\n <div class=\"fw-popover-content-wrapper\">\n <ng-content></ng-content>\n <div class=\"fw-popover-caret\"></div>\n </div>\n </ng-template>`,\n encapsulation: ViewEncapsulation.None,\n})\nexport class FwPopoverComponent {\n // Used for TemplatePortal in ./popover-trigger.directive.ts\n @ViewChild('content') templateRef: TemplateRef<any> // eslint-disable-line @typescript-eslint/no-explicit-any\n}\n","import { CommonModule } from '@angular/common';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\n\nimport { FwPopoverTriggerComponent } from './popover-trigger.component';\nimport { FwPopoverTriggerDirective } from './popover-trigger.directive';\nimport { FwPopoverComponent } from './popover.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n FwPopoverComponent,\n FwPopoverTriggerComponent,\n FwPopoverTriggerDirective,\n ],\n declarations: [\n FwPopoverComponent,\n FwPopoverTriggerComponent,\n FwPopoverTriggerDirective,\n ],\n entryComponents: [\n FwPopoverComponent,\n FwPopoverTriggerComponent,\n ],\n providers: [\n Overlay,\n ],\n})\nexport class FwPopoverModule {}\n","import { ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { debounceTime } from 'rxjs/operators';\n\ntype SortOrder = 'asc' | 'desc'\n\ninterface ColumnFilter {\n control: 'input' | 'select' | 'multi-select',\n options?: string[],\n placeholder?: string,\n}\n\ninterface Column {\n label: string,\n key: string,\n filter?: ColumnFilter,\n}\n\n@Component({\n host: {\n 'class': 'fw-table',\n '[class.compact]': 'isCompact',\n },\n selector: 'fw-table',\n styleUrls: ['./table.component.scss'],\n templateUrl: './table.component.html',\n})\nexport class FwTableComponent implements OnInit, OnChanges {\n @Input() columns: Column[] = []\n @Input() dataSource: any[] = []\n @Input() layout?: 'basic' | 'compact' = 'basic'\n @Input() pageSize = null\n @Input('page-size') webCompPageSize = null\n @Input() sort = null\n\n private sortColumn = ''\n private sortOrder: SortOrder = 'asc'\n\n displayedColumns: string[] = []\n filters: FormGroup = new FormGroup({})\n matDataSource: MatTableDataSource<any>\n\n // to support updating column header labels\n trackByIndex: any = i => i\n\n @ViewChild(MatPaginator) matPaginator: MatPaginator\n @ViewChild(MatSort) matSort: MatSort\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n ) { }\n\n ngOnInit(): void {\n this.setDataSource();\n this.setColumns();\n this.addFilterControls();\n this.setFilter();\n this.matDataSource.filterPredicate = (row, filter) => {\n const filters = JSON.parse(filter);\n for (const filter in filters) {\n const filterValue = filters[filter];\n const rowValue = row[filter];\n // multi-select\n if (Array.isArray(filterValue) && filterValue.length > 0 && !filterValue.includes(rowValue)) {\n return false;\n }\n // input or select\n if (!Array.isArray(filterValue) && !String(rowValue).toLowerCase().includes(String(filterValue ?? '').toLowerCase())) {\n return false;\n }\n }\n return true;\n };\n this.filters.valueChanges.pipe(debounceTime(200)).subscribe(() => this.setFilter());\n }\n\n ngAfterViewInit(): void {\n this.setSort();\n this.setPaginator();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.columns) {\n this.setColumns();\n }\n if (changes.dataSource) {\n this.setDataSource();\n }\n if (changes.sort || changes.dataSource) {\n this.setSort();\n }\n if (changes.pageSize || changes['page-size']) {\n this.setPaginator();\n }\n }\n\n get isCompact(): boolean {\n return this.layout === 'compact';\n }\n\n get paginationSize(): number {\n return this.pageSize || this.webCompPageSize || 0;\n }\n\n get isSortEnabled(): boolean {\n return this.sort !== null;\n }\n\n addFilterControls(): void {\n for (const column of this.columns) {\n this.filters.addControl(column.key, new FormControl());\n }\n }\n\n setDataSource(): void {\n this.matDataSource = new MatTableDataSource(this.dataSource);\n }\n\n setColumns(): void {\n this.displayedColumns = this.columns.map(column => column.key);\n }\n\n setFilter(): void {\n this.matDataSource.filter = JSON.stringify(this.filters.value);\n }\n\n setSort(): void {\n if (!this.matSort || this.sort === null) {\n return;\n }\n const sortSplit = this.sort.split(' ');\n this.sortColumn = sortSplit[0];\n if (['asc', 'desc'].includes(sortSplit[1])) {\n this.sortOrder = sortSplit[1] as SortOrder;\n } else {\n console.warn(`Sort order '${sortSplit[1]}' is not 'asc' or 'desc', defaulting to 'asc'`);\n }\n if (this.sortColumn) {\n this.matSort.sort({ id: this.sortColumn, start: this.sortOrder, disableClear: false });\n const sortHeader = this.matSort.sortables.get(this.sortColumn) as MatSortHeader;\n if (sortHeader) {\n sortHeader._setAnimationTransitionState({ toState: 'active' });\n } else {\n console.warn(`Unable to find sort column '${this.sortColumn}'. Initial sort failed.`);\n }\n }\n this.matDataSource.sort = this.matSort;\n }\n\n setPaginator(): void {\n // ensures ui updates correctly when paginator options change\n this.changeDetectorRef.detectChanges();\n this.matDataSource.paginator = this.matPaginator;\n }\n\n // necessary for web component to trigger this.filter.valueChanges\n onInputFilter(event: KeyboardEvent, column: Column): void {\n // defer setting filter control as event.target.value is not set yet\n setTimeout(() => this.filters.get(column.key).setValue((event.target as HTMLInputElement).value));\n }\n\n // necessary for web component to trigger this.filter.valueChanges\n onSelectFilter(event: MouseEvent, column: Column): void {\n const innerText = (event.target as HTMLInputElement).innerText;\n this.filters.get(column.key).setValue(innerText === '- none -' ? null : innerText);\n }\n\n // necessary for web component to trigger this.filter.valueChanges\n onMultiSelectFilter(event: MouseEvent, column: Column): void {\n let value = this.filters.controls[column.key].value || [];\n const innerText = (event.target as HTMLInputElement).parentElement.innerText;\n if (value.includes(innerText)) {\n value = value.filter(v => v !== innerText);\n } else {\n value.push(innerText);\n }\n this.filters.get(column.key).setValue(\n value.length === 1 && innerText === ''\n ? null // when all checboxes have been deselected\n : value\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { FwTableComponent } from './table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatPaginatorModule,\n MatSelectModule,\n MatSortModule,\n MatTableModule,\n ],\n exports: [\n FwTableComponent,\n ],\n declarations: [\n FwTableComponent,\n ],\n entryComponents: [\n FwTableComponent,\n ]\n})\nexport class FwTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {FwNotificationTimerService as ɵa} from './components/notification/notification-timer.service';"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"FwButtonGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"host":{"class":"fw-button-group","[class.small]":"size === \"small\"","[class.medium]":"size === \"medium\"","[class.large]":"size === \"large\"","[class.compact]":"layout === \"compact\"","$quoted$":["class","[class.small]","[class.medium]","[class.large]","[class.compact]"]},"selector":"fw-button-group","template":"<ng-content></ng-content>","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":13,"character":17},"member":"None"},"styles":["fw-button-group.fw-button-group{border-radius:4px;display:inline-flex;align-items:stretch}fw-button-group.fw-button-group.compact button{line-height:24px;height:24px}fw-button-group.fw-button-group.small button{font-size:12px}fw-button-group.fw-button-group.medium button{font-size:14px}fw-button-group.fw-button-group.large button{font-size:18px}fw-button-group.fw-button-group button{min-width:0;margin:0!important;border-radius:0}fw-button-group.fw-button-group>button:first-of-type,fw-button-group.fw-button-group>fw-button:first-of-type>button{border-top-left-radius:4px;border-bottom-left-radius:4px}fw-button-group.fw-button-group>button:last-of-type,fw-button-group.fw-button-group>fw-button:last-of-type>button{border-top-right-radius:4px;border-bottom-right-radius:4px}fw-button-group.fw-button-group>button.mat-stroked-button,fw-button-group.fw-button-group>button.mat-stroked-button+button.mat-stroke-button,fw-button-group.fw-button-group>fw-button[ng-reflect-type=stroked]+fw-button[ng-reflect-type=stroked]>button,fw-button-group.fw-button-group>fw-button[ng-reflect-type=stroked]>button,fw-button-group.fw-button-group>fw-button[type=stroked]+fw-button[type=stroked]>button,fw-button-group.fw-button-group>fw-button[type=stroked]>button{border-right-width:0}fw-button-group.fw-button-group>button.mat-stroked-button:last-of-type,fw-button-group.fw-button-group>fw-button[ng-reflect-type=stroked]:last-of-type>button,fw-button-group.fw-button-group>fw-button[type=stroked]:last-of-type>button{border-right-width:1px!important}fw-button-group.fw-button-group>button:not(.mat-stroked-button)+button.mat-stroked-button,fw-button-group.fw-button-group>fw-button:not([ng-reflect-type=stroked])+fw-button[ng-reflect-type=stroked]>button,fw-button-group.fw-button-group>fw-button:not([type=stroked])+fw-button[type=stroked]>button{border-left-width:0}"]}]}],"members":{"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}]}},"FwButtonGroupModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"FwButtonGroupComponent"}],"declarations":[{"__symbolic":"reference","name":"FwButtonGroupComponent"}],"entryComponents":[{"__symbolic":"reference","name":"FwButtonGroupComponent"}]}]}],"members":{}},"FwButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"host":{"class":"fw-button","[class.small]":"size === \"small\"","[class.medium]":"size === \"medium\"","[class.large]":"size === \"large\"","[class.compact]":"layout === \"compact\"","$quoted$":["class","[class.small]","[class.medium]","[class.large]","[class.compact]"]},"selector":"fw-button","template":"<ng-container [ngSwitch]=\"type\">\n <button *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchDefault mat-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n</ng-container>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","styles":[":host.compact>button{line-height:24px}:host.small{font-size:12px}:host.medium{font-size:14px}:host.large{font-size:18px}button{font-size:inherit}"]}]}],"members":{"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}]}},"FwButtonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":9,"character":4}],"exports":[{"__symbolic":"reference","name":"FwButtonComponent"}],"declarations":[{"__symbolic":"reference","name":"FwButtonComponent"}],"entryComponents":[{"__symbolic":"reference","name":"FwButtonComponent"}]}]}],"members":{}},"FwNotificationContainerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"host":{"class":"fw-notification-container","[class.duo]":"notifications.length === 2","[class.triple]":"notifications.length >= 3","$quoted$":["class","[class.duo]","[class.triple]"]},"selector":"fw-notification-container","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":16,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"<div role=\"list\">\n <fw-notification *ngFor=\"let notification of notifications; index as i\"\n (ready)=\"onReady($event)\"\n (dismiss)=\"onDismiss($event)\"\n [class]=\"notificationClass(i)\"\n [notification]=\"notification\"\n [attr.aria-label]=\"notification.type + ' : ' + notification.message\"\n role=\"listitem\"\n ></fw-notification>\n <div class=\"buttons\">\n <fw-button *ngIf=\"showLess\" (click)=\"onShowLess()\" mat-button aria-label=\"show less\" layout=\"compact\" size=\"small\">\n <mat-icon>expand_less</mat-icon>\n </fw-button>\n <fw-button *ngIf=\"showMore\" (click)=\"onShowMore()\" mat-button aria-label=\"show more\" layout=\"compact\" size=\"small\">\n <mat-icon>expand_more</mat-icon>\n </fw-button>\n <fw-button (click)=\"clearAll()\" mat-button class=\"clear-all\" aria-label=\"clear all\" layout=\"compact\" size=\"small\">\n Clear All\n </fw-button>\n </div>\n</div>\n","styles":["fw-notification-container{position:absolute;right:0;top:0;margin-top:20px;z-index:999999}fw-notification-container>div{display:flex;flex-direction:column-reverse}fw-notification-container .buttons{display:none;position:absolute;top:-5px;right:25px}fw-notification-container .buttons button{color:#fff;background-color:#919292;margin-left:2px}fw-notification-container .buttons button.mat-button{line-height:24px!important;margin:0 0 0 2px!important}fw-notification-container:hover .buttons{display:flex}fw-notification-container .hidden{display:none}fw-notification-container fw-notification:last-of-type{margin-top:24px}fw-notification-container.duo fw-notification.level-0,fw-notification-container.triple fw-notification.level-1{transform:scale(.95) translateY(-51px)}fw-notification-container.triple fw-notification.level-0{transform:scale(.9) translateY(-108px)}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":29,"character":27},{"__symbolic":"reference","name":"FwNotificationService"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"notificationClass":[{"__symbolic":"method"}],"onReady":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}],"clearAll":[{"__symbolic":"method"}],"onShowMore":[{"__symbolic":"method"}],"onShowLess":[{"__symbolic":"method"}]}},"FwNotificationModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":4},{"__symbolic":"reference","name":"FwButtonModule"},{"__symbolic":"reference","name":"FwButtonGroupModule"},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":17,"character":4}],"exports":[{"__symbolic":"reference","name":"FwNotificationComponent"},{"__symbolic":"reference","name":"FwNotificationContainerComponent"}],"declarations":[{"__symbolic":"reference","name":"FwNotificationComponent"},{"__symbolic":"reference","name":"FwNotificationContainerComponent"}],"entryComponents":[{"__symbolic":"reference","name":"FwNotificationComponent"}],"providers":[{"__symbolic":"reference","name":"FwNotificationService"}]}]}],"members":{}},"genId":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"String"},"member":"prototype"},"member":"padStart"},"arguments":[24,{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Math"},"member":"floor"},"arguments":[{"__symbolic":"binop","operator":"*","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Math"},"member":"random"}},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Date"},"member":"now"}}}]},"member":"toString"},"arguments":[16]}]}},"FwNotificationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"show":[{"__symbolic":"method"}],"dismiss":[{"__symbolic":"method"}],"dismissAll":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"FwNotificationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"host":{"class":"fw-notification","[class.error]":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"notification.type === '","right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FwNotificationType"},"member":"Error"}},"right":"'"},"[class.info]":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"notification.type === '","right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FwNotificationType"},"member":"Info"}},"right":"'"},"[class.success]":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"notification.type === '","right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FwNotificationType"},"member":"Success"}},"right":"'"},"[class.wait]":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"notification.type === '","right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FwNotificationType"},"member":"Wait"}},"right":"'"},"[class.warning]":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"notification.type === '","right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FwNotificationType"},"member":"Warning"}},"right":"'"},"(click)":"onClickDismiss()","$quoted$":["class","[class.error]","[class.info]","[class.success]","[class.wait]","[class.warning]","(click)"]},"selector":"fw-notification","template":"<ng-container>{{ notification.message }}</ng-container>","providers":[{"__symbolic":"reference","name":"ɵa"}],"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":19,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":20,"character":19},"member":"OnPush"},"styles":[":root{--shadow-level-1:0px 1px 2px rgba(0,0,0,0.1);--shadow-level-2:0px 2px 4px rgba(0,0,0,0.1);--shadow-level-3:0px 4px 8px rgba(0,0,0,0.1);--inset-shadow-level-1:inset 0px 1px 2px rgba(0,0,0,0.1);--inset-shadow-level-2:inset 0px 2px 4px rgba(0,0,0,0.1);--inset-shadow-level-3:inset 0px 4px 8px rgba(0,0,0,0.1);--font-primary:\"Inter\",system-ui,-apple-system,BlinkMacSystemFont,Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--font-secondary:\"Poppins\",system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--sidebar-width:55px;--menu-bar-width:180px;--page-layout-padding:235px;--radius:6px}*{font-family:var(--font-primary);box-sizing:border-box;text-shadow:1px 1px 1px rgba(0,0,0,.004);text-rendering:optimizeLegibility!important;-webkit-font-smoothing:antialiased!important}html{background:var(--color-gray)}body,html{height:100%}fw-notification{display:block;border-radius:4px;box-sizing:border-box;margin:5px 24px;max-width:33vw;min-width:344px;padding:14px 16px;height:48px;transform-origin:center;background-color:#2f96b4;border:1px solid hsla(0,0%,100%,.7019607843137254);box-shadow:0 0 12px #999;color:#fff;opacity:.99}fw-notification .notification{display:flex;justify-content:space-between;align-items:center}fw-notification.error{background-color:#bd362f}fw-notification.info{background-color:#2f96b4}fw-notification.success{background-color:#51a351}fw-notification.wait{background-color:#2f96b4}fw-notification.warning{background-color:#f89406}"]}]}],"members":{"notification":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"notificationDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"ready":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"dismiss":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":27,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":29,"character":27},{"__symbolic":"reference","name":"ɵa"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"startTimer":[{"__symbolic":"method"}],"stopTimer":[{"__symbolic":"method"}],"onClickDismiss":[{"__symbolic":"method"}]}},"FwNotificationType":{"Error":"error","Info":"info","Success":"success","Wait":"wait","Warning":"warning"},"Notification":{"__symbolic":"interface"},"FwPopoverTriggerComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"FwPopoverTriggerDirective"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"host":{"class":"fw-popover-trigger","(mouseenter)":"showPopover()","(mouseleave)":"hidePopover($event)","$quoted$":["class","(mouseenter)","(mouseleave)"]},"selector":"fw-popover-trigger","template":"<ng-content></ng-content>\n <!-- for web component support -->\n <ng-template>\n <div [innerHTML]=\"popoverHTML\"></div>\n </ng-template>"}]}],"members":{"popoverId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3},"arguments":["trigger-for"]}]}],"position":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["position"]}]}],"popoverTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":25,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":25,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":29,"character":20},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":30,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":31,"character":29}]}],"showPopover":[{"__symbolic":"method"}]}},"FwPopoverPosition":{"__symbolic":"interface"},"FwPopoverTriggerDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"host":{"class":"fw-popover-trigger","(mouseenter)":"showPopover()","(mouseleave)":"hidePopover($event)","$quoted$":["class","(mouseenter)","(mouseleave)"]},"selector":"[fwPopoverTriggerFor]","exportAs":"fwPopoverTrigger"}]}],"members":{"popover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3},"arguments":["fwPopoverTriggerFor"]}]}],"position":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3},"arguments":["fwPopoverPosition"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":39,"character":20},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":40,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":41,"character":29}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"showPopover":[{"__symbolic":"method"}],"hidePopover":[{"__symbolic":"method"}],"setPopoverCaretPosition":[{"__symbolic":"method"}],"setPopoverPosition":[{"__symbolic":"method"}],"getOverlay":[{"__symbolic":"method"}],"getMainPosition":[{"__symbolic":"method"}],"getFallbackPosition":[{"__symbolic":"method"}],"getPositions":[{"__symbolic":"method"}]}},"FwPopoverComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"host":{"class":"fw-popover","$quoted$":["class"]},"selector":"fw-popover","template":"\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <ng-template #content>\n <div class=\"fw-popover-content-wrapper\">\n <ng-content></ng-content>\n <div class=\"fw-popover-caret\"></div>\n </div>\n </ng-template>","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":14,"character":17},"member":"None"},"styles":[".white{color:#fff!important}.fill-white{background-color:#fff!important}.border-top-white,.border-white{border-color:#fff!important}.border-top-white{border-top:1px solid}.border-right-white{border-right:1px solid;border-color:#fff!important}.border-bottom-white{border-bottom:1px solid;border-color:#fff!important}.border-left-white{border-left:1px solid;border-color:#fff!important}.black{color:#000!important}.fill-black{background-color:#000!important}.border-black,.border-top-black{border-color:#000!important}.border-top-black{border-top:1px solid}.border-right-black{border-right:1px solid;border-color:#000!important}.border-bottom-black{border-bottom:1px solid;border-color:#000!important}.border-left-black{border-left:1px solid;border-color:#000!important}.green{color:#59b96b!important}.fill-green{background-color:#59b96b!important}.border-green,.border-top-green{border-color:#59b96b!important}.border-top-green{border-top:1px solid}.border-right-green{border-right:1px solid;border-color:#59b96b!important}.border-bottom-green{border-bottom:1px solid;border-color:#59b96b!important}.border-left-green{border-left:1px solid;border-color:#59b96b!important}.orange{color:#f7941d!important}.fill-orange{background-color:#f7941d!important}.border-orange,.border-top-orange{border-color:#f7941d!important}.border-top-orange{border-top:1px solid}.border-right-orange{border-right:1px solid;border-color:#f7941d!important}.border-bottom-orange{border-bottom:1px solid;border-color:#f7941d!important}.border-left-orange{border-left:1px solid;border-color:#f7941d!important}.red{color:#d22239!important}.fill-red{background-color:#d22239!important}.border-red,.border-top-red{border-color:#d22239!important}.border-top-red{border-top:1px solid}.border-right-red{border-right:1px solid;border-color:#d22239!important}.border-bottom-red{border-bottom:1px solid;border-color:#d22239!important}.border-left-red{border-left:1px solid;border-color:#d22239!important}.blue{color:#5871a2!important}.fill-blue{background-color:#5871a2!important}.border-blue,.border-top-blue{border-color:#5871a2!important}.border-top-blue{border-top:1px solid}.border-right-blue{border-right:1px solid;border-color:#5871a2!important}.border-bottom-blue{border-bottom:1px solid;border-color:#5871a2!important}.border-left-blue{border-left:1px solid;border-color:#5871a2!important}.focus-blue{color:#23527c!important}.fill-focus-blue{background-color:#23527c!important}.border-focus-blue,.border-top-focus-blue{border-color:#23527c!important}.border-top-focus-blue{border-top:1px solid}.border-right-focus-blue{border-right:1px solid;border-color:#23527c!important}.border-bottom-focus-blue{border-bottom:1px solid;border-color:#23527c!important}.border-left-focus-blue{border-left:1px solid;border-color:#23527c!important}.dark-blue{color:#394256!important}.fill-dark-blue{background-color:#394256!important}.border-dark-blue,.border-top-dark-blue{border-color:#394256!important}.border-top-dark-blue{border-top:1px solid}.border-right-dark-blue{border-right:1px solid;border-color:#394256!important}.border-bottom-dark-blue{border-bottom:1px solid;border-color:#394256!important}.border-left-dark-blue{border-left:1px solid;border-color:#394256!important}.light-blue{color:#e7f0fc!important}.fill-light-blue{background-color:#e7f0fc!important}.border-light-blue,.border-top-light-blue{border-color:#e7f0fc!important}.border-top-light-blue{border-top:1px solid}.border-right-light-blue{border-right:1px solid;border-color:#e7f0fc!important}.border-bottom-light-blue{border-bottom:1px solid;border-color:#e7f0fc!important}.border-left-light-blue{border-left:1px solid;border-color:#e7f0fc!important}.bright-blue{color:#2e72f6!important}.fill-bright-blue{background-color:#2e72f6!important}.border-bright-blue,.border-top-bright-blue{border-color:#2e72f6!important}.border-top-bright-blue{border-top:1px solid}.border-right-bright-blue{border-right:1px solid;border-color:#2e72f6!important}.border-bottom-bright-blue{border-bottom:1px solid;border-color:#2e72f6!important}.border-left-bright-blue{border-left:1px solid;border-color:#2e72f6!important}.grey{color:#58595b!important}.fill-grey{background-color:#58595b!important}.border-grey,.border-top-grey{border-color:#58595b!important}.border-top-grey{border-top:1px solid}.border-right-grey{border-right:1px solid;border-color:#58595b!important}.border-bottom-grey{border-bottom:1px solid;border-color:#58595b!important}.border-left-grey{border-left:1px solid;border-color:#58595b!important}.soft-grey{color:#dddede!important}.fill-soft-grey{background-color:#dddede!important}.border-soft-grey,.border-top-soft-grey{border-color:#dddede!important}.border-top-soft-grey{border-top:1px solid}.border-right-soft-grey{border-right:1px solid;border-color:#dddede!important}.border-bottom-soft-grey{border-bottom:1px solid;border-color:#dddede!important}.border-left-soft-grey{border-left:1px solid;border-color:#dddede!important}.light-grey{color:#eee!important}.fill-light-grey{background-color:#eee!important}.border-light-grey,.border-top-light-grey{border-color:#eee!important}.border-top-light-grey{border-top:1px solid}.border-right-light-grey{border-right:1px solid;border-color:#eee!important}.border-bottom-light-grey{border-bottom:1px solid;border-color:#eee!important}.border-left-light-grey{border-left:1px solid;border-color:#eee!important}.medium-grey{color:#ccc!important}.fill-medium-grey{background-color:#ccc!important}.border-medium-grey,.border-top-medium-grey{border-color:#ccc!important}.border-top-medium-grey{border-top:1px solid}.border-right-medium-grey{border-right:1px solid;border-color:#ccc!important}.border-bottom-medium-grey{border-bottom:1px solid;border-color:#ccc!important}.border-left-medium-grey{border-left:1px solid;border-color:#ccc!important}.medium-dark-grey{color:#999!important}.fill-medium-dark-grey{background-color:#999!important}.border-medium-dark-grey{border-color:#999!important}.border-top-medium-dark-grey{border-top:1px solid;border-color:#999!important}.border-right-medium-dark-grey{border-right:1px solid;border-color:#999!important}.border-bottom-medium-dark-grey{border-bottom:1px solid;border-color:#999!important}.border-left-medium-dark-grey{border-left:1px solid;border-color:#999!important}.dark-grey{color:#222!important}.fill-dark-grey{background-color:#222!important}.border-dark-grey,.border-top-dark-grey{border-color:#222!important}.border-top-dark-grey{border-top:1px solid}.border-right-dark-grey{border-right:1px solid;border-color:#222!important}.border-bottom-dark-grey{border-bottom:1px solid;border-color:#222!important}.border-left-dark-grey{border-left:1px solid;border-color:#222!important}.iron-grey{color:#d3d6db!important}.fill-iron-grey{background-color:#d3d6db!important}.border-iron-grey,.border-top-iron-grey{border-color:#d3d6db!important}.border-top-iron-grey{border-top:1px solid}.border-right-iron-grey{border-right:1px solid;border-color:#d3d6db!important}.border-bottom-iron-grey{border-bottom:1px solid;border-color:#d3d6db!important}.border-left-iron-grey{border-left:1px solid;border-color:#d3d6db!important}.bombay-grey{color:#aaacb0!important}.fill-bombay-grey{background-color:#aaacb0!important}.border-bombay-grey,.border-top-bombay-grey{border-color:#aaacb0!important}.border-top-bombay-grey{border-top:1px solid}.border-right-bombay-grey{border-right:1px solid;border-color:#aaacb0!important}.border-bottom-bombay-grey{border-bottom:1px solid;border-color:#aaacb0!important}.border-left-bombay-grey{border-left:1px solid;border-color:#aaacb0!important}.soft-blue{color:#eff1f5!important}.fill-soft-blue{background-color:#eff1f5!important}.border-soft-blue,.border-top-soft-blue{border-color:#eff1f5!important}.border-top-soft-blue{border-top:1px solid}.border-right-soft-blue{border-right:1px solid;border-color:#eff1f5!important}.border-bottom-soft-blue{border-bottom:1px solid;border-color:#eff1f5!important}.border-left-soft-blue{border-left:1px solid;border-color:#eff1f5!important}.darker-soft-blue{color:#e9ecf1!important}.fill-darker-soft-blue{background-color:#e9ecf1!important}.border-darker-soft-blue,.border-top-darker-soft-blue{border-color:#e9ecf1!important}.border-top-darker-soft-blue{border-top:1px solid}.border-right-darker-soft-blue{border-right:1px solid;border-color:#e9ecf1!important}.border-bottom-darker-soft-blue{border-bottom:1px solid;border-color:#e9ecf1!important}.border-left-darker-soft-blue{border-left:1px solid;border-color:#e9ecf1!important}.lighter-soft-blue{color:#f5f6f9!important}.fill-lighter-soft-blue{background-color:#f5f6f9!important}.border-lighter-soft-blue,.border-top-lighter-soft-blue{border-color:#f5f6f9!important}.border-top-lighter-soft-blue{border-top:1px solid}.border-right-lighter-soft-blue{border-right:1px solid;border-color:#f5f6f9!important}.border-bottom-lighter-soft-blue{border-bottom:1px solid;border-color:#f5f6f9!important}.border-left-lighter-soft-blue{border-left:1px solid;border-color:#f5f6f9!important}:root{--color-gray:var(--color-gray-100);--color-gray-50:#f6f7f8;--color-gray-100:#eff1f4;--color-gray-200:#e3e5e8;--color-gray-300:#d7d9dc;--color-gray-400:#cbcdcf;--color-gray-500:#bfc1c3;--color-primary:var(--color-primary-1000);--color-primary-100:#eaf1fe;--color-primary-200:#d5e3fd;--color-primary-300:#c0d5fc;--color-primary-400:#abc7fb;--color-primary-500:#97b9fb;--color-primary-600:#82aafa;--color-primary-700:#6da2ff;--color-primary-800:#588ef8;--color-primary-900:#4380f7;--color-primary-1000:#2e72f6;--color-primary-1100:#2967dd;--color-primary-1200:#255bc5;--color-primary-1300:#2050ac;--color-primary-1400:#1c4494;--color-primary-1500:#083076;--color-primary-1600:#122e62;--color-primary-1700:#0e224a;--color-primary-1800:#061734;--color-primary-1900:#050b19;--color-secondary:var(--color-secondary-900);--color-secondary-100:#ccf1e4;--color-secondary-200:#b3e9d7;--color-secondary-300:#99e2c9;--color-secondary-400:#80dbbc;--color-secondary-500:#66d4ae;--color-secondary-600:#4dcda1;--color-secondary-700:#33c593;--color-secondary-800:#1abe86;--color-secondary-900:#00b778;--color-secondary-1000:#00a56c;--color-secondary-1100:#009260;--color-secondary-1200:#008054;--color-secondary-1300:#006e48;--color-secondary-1400:#005c3c;--color-secondary-1500:#004930;--color-secondary-1600:#002518;--color-secondary-1700:#00120c;--shadow-level-1:0px 1px 2px rgba(0,0,0,0.1);--shadow-level-2:0px 2px 4px rgba(0,0,0,0.1);--shadow-level-3:0px 4px 8px rgba(0,0,0,0.1);--inset-shadow-level-1:inset 0px 1px 2px rgba(0,0,0,0.1);--inset-shadow-level-2:inset 0px 2px 4px rgba(0,0,0,0.1);--inset-shadow-level-3:inset 0px 4px 8px rgba(0,0,0,0.1);--font-primary:\"Inter\",system-ui,-apple-system,BlinkMacSystemFont,Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--font-secondary:\"Poppins\",system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--sidebar-width:55px;--menu-bar-width:180px;--page-layout-padding:235px;--radius:6px}*{font-family:var(--font-primary);box-sizing:border-box;text-shadow:1px 1px 1px rgba(0,0,0,.004);text-rendering:optimizeLegibility!important;-webkit-font-smoothing:antialiased!important}html{background:var(--color-gray)}body,html{height:100%}fw-popover{display:none}.fw-popover-panel .fw-popover-content-wrapper{position:relative;background:#fff;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.15)!important;border:1px solid #d6dbe5;padding:16px}.fw-popover-panel .fw-popover-content-wrapper .fw-popover-caret{position:absolute;overflow:hidden;width:25px;height:25px}.fw-popover-panel .fw-popover-content-wrapper .fw-popover-caret:after{display:block;content:\"\";width:16px;height:16px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.15)!important;border:1px solid #d6dbe5;transform:rotate(45deg);position:relative}.fw-popover-panel.fw-popover-above{margin-bottom:-20px;padding-bottom:20px}.fw-popover-panel.fw-popover-above .fw-popover-caret{left:0;bottom:-16px;height:16px}.fw-popover-panel.fw-popover-above .fw-popover-caret:after{margin:-8px auto}.fw-popover-panel.fw-popover-below{margin-top:-20px;padding-top:20px}.fw-popover-panel.fw-popover-below .fw-popover-caret{left:0;top:-16px;height:16px}.fw-popover-panel.fw-popover-below .fw-popover-caret:after{top:16px;margin:-8px auto}.fw-popover-panel.fw-popover-left{margin-right:-20px;padding-right:20px}.fw-popover-panel.fw-popover-left .fw-popover-caret{right:-16px;top:0;width:16px}.fw-popover-panel.fw-popover-left .fw-popover-caret:after{top:calc(50% - 8px);left:-8px}.fw-popover-panel.fw-popover-right{margin-left:-20px;padding-left:20px}.fw-popover-panel.fw-popover-right .fw-popover-caret{left:-16px;top:0;width:16px}.fw-popover-panel.fw-popover-right .fw-popover-caret:after{top:calc(50% - 8px);right:-8px}"]}]}],"members":{"templateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":18,"character":3},"arguments":["content"]}]}]}},"FwPopoverModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4}],"exports":[{"__symbolic":"reference","name":"FwPopoverComponent"},{"__symbolic":"reference","name":"FwPopoverTriggerComponent"},{"__symbolic":"reference","name":"FwPopoverTriggerDirective"}],"declarations":[{"__symbolic":"reference","name":"FwPopoverComponent"},{"__symbolic":"reference","name":"FwPopoverTriggerComponent"},{"__symbolic":"reference","name":"FwPopoverTriggerDirective"}],"entryComponents":[{"__symbolic":"reference","name":"FwPopoverComponent"},{"__symbolic":"reference","name":"FwPopoverTriggerComponent"}],"providers":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":27,"character":4}]}]}],"members":{}},"FwTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"host":{"class":"fw-table","[class.compact]":"isCompact","$quoted$":["class","[class.compact]"]},"selector":"fw-table","template":"<table mat-table [dataSource]=\"matDataSource\" matSort>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByIndex\">\n <ng-container [matColumnDef]=\"column.key\">\n\n <ng-template #tableHeaders>\n <ng-container [ngSwitch]=\"column.filter?.control\">\n <ng-container *ngSwitchCase=\"'input'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <input matInput [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\" (keydown)=\"$event.stopPropagation(); onInputFilter($event, column);\">\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'select'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <mat-select [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\">\n <mat-option (click)=\"onSelectFilter($event, column);\">- none -</mat-option>\n <mat-option *ngFor=\"let option of column.filter.options\" [value]=\"option\" (click)=\"onSelectFilter($event, column);\">{{ option }}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <mat-select [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\" multiple=\"true\">\n <mat-option *ngFor=\"let option of column.filter.options\" [value]=\"option\" (click)=\"onMultiSelectFilter($event, column);\">{{ option }}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchDefault>{{ column.label }}</ng-container>\n </ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"isSortEnabled\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container [ngTemplateOutlet]=\"tableHeaders\"></ng-container>\n </th>\n </ng-container>\n\n <ng-container *ngIf=\"!isSortEnabled\">\n <th mat-header-cell *matHeaderCellDef>\n <ng-container [ngTemplateOutlet]=\"tableHeaders\"></ng-container>\n </th>\n </ng-container>\n\n <td mat-cell *matCellDef=\"let element\"> {{ element[column.key] }} </td>\n </ng-container>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n<mat-paginator *ngIf=\"paginationSize > 0\" [pageSize]=\"paginationSize\"></mat-paginator>\n\n\n\n","styles":[":host{display:block;width:100%}:host:not(.compact) table.mat-table tr.mat-header-row,:host:not(.compact) table.mat-table tr.mat-row{height:56px}:host.compact table.mat-table tr.mat-header-row,:host.compact table.mat-table tr.mat-row{height:32px}:host.compact mat-paginator.mat-paginator{align-items:center;display:flex;height:32px;justify-content:flex-end}table.mat-table{width:100%}table.mat-table td,table.mat-table th{vertical-align:middle}table.mat-table td.mat-cell,table.mat-table td.mat-header-cell,table.mat-table th.mat-cell,table.mat-table th.mat-header-cell{border-bottom-color:var(--color-gray)}"]}]}],"members":{"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"dataSource":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"pageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"webCompPageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3},"arguments":["page-size"]}]}],"sort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"matPaginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":48,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginator","line":48,"character":13}]}]}],"matSort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":49,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/sort","name":"MatSort","line":49,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":52,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"addFilterControls":[{"__symbolic":"method"}],"setDataSource":[{"__symbolic":"method"}],"setColumns":[{"__symbolic":"method"}],"setFilter":[{"__symbolic":"method"}],"setSort":[{"__symbolic":"method"}],"setPaginator":[{"__symbolic":"method"}],"onInputFilter":[{"__symbolic":"method"}],"onSelectFilter":[{"__symbolic":"method"}],"onMultiSelectFilter":[{"__symbolic":"method"}]}},"FwTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginatorModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/sort","name":"MatSortModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/table","name":"MatTableModule","line":20,"character":4}],"exports":[{"__symbolic":"reference","name":"FwTableComponent"}],"declarations":[{"__symbolic":"reference","name":"FwTableComponent"}],"entryComponents":[{"__symbolic":"reference","name":"FwTableComponent"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":2,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"start":[{"__symbolic":"method"}],"stop":[{"__symbolic":"method"}],"pause":[{"__symbolic":"method"}],"continue":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}},"origins":{"FwButtonGroupComponent":"./components/button-group/button-group.component","FwButtonGroupModule":"./components/button-group/button-group.module","FwButtonComponent":"./components/button/button.component","FwButtonModule":"./components/button/button.module","FwNotificationContainerComponent":"./components/notification/notification-container/notification-container.component","FwNotificationModule":"./components/notification/notification.module","genId":"./components/notification/notification.service","FwNotificationService":"./components/notification/notification.service","FwNotificationComponent":"./components/notification/notification/notification.component","FwNotificationType":"./components/notification/notification/notification.model","Notification":"./components/notification/notification/notification.model","FwPopoverTriggerComponent":"./components/popover/popover-trigger.component","FwPopoverPosition":"./components/popover/popover-trigger.directive","FwPopoverTriggerDirective":"./components/popover/popover-trigger.directive","FwPopoverComponent":"./components/popover/popover.component","FwPopoverModule":"./components/popover/popover.module","FwTableComponent":"./components/table/table.component","FwTableModule":"./components/table/table.module","ɵa":"./components/notification/notification-timer.service"},"importAs":"@flywheel-io/vision"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"FwButtonGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"host":{"class":"fw-button-group","[class.small]":"size === \"small\"","[class.medium]":"size === \"medium\"","[class.large]":"size === \"large\"","[class.compact]":"layout === \"compact\"","$quoted$":["class","[class.small]","[class.medium]","[class.large]","[class.compact]"]},"selector":"fw-button-group","template":"<ng-content></ng-content>","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":13,"character":17},"member":"None"},"styles":["fw-button-group.fw-button-group{border-radius:4px;display:inline-flex;align-items:stretch}fw-button-group.fw-button-group.compact button{line-height:24px;height:24px}fw-button-group.fw-button-group.small button{font-size:12px}fw-button-group.fw-button-group.medium button{font-size:14px}fw-button-group.fw-button-group.large button{font-size:18px}fw-button-group.fw-button-group button{min-width:0;margin:0!important;border-radius:0}fw-button-group.fw-button-group>button:first-of-type,fw-button-group.fw-button-group>fw-button:first-of-type>button{border-top-left-radius:4px;border-bottom-left-radius:4px}fw-button-group.fw-button-group>button:last-of-type,fw-button-group.fw-button-group>fw-button:last-of-type>button{border-top-right-radius:4px;border-bottom-right-radius:4px}fw-button-group.fw-button-group>button.mat-stroked-button,fw-button-group.fw-button-group>button.mat-stroked-button+button.mat-stroke-button,fw-button-group.fw-button-group>fw-button[ng-reflect-type=stroked]+fw-button[ng-reflect-type=stroked]>button,fw-button-group.fw-button-group>fw-button[ng-reflect-type=stroked]>button,fw-button-group.fw-button-group>fw-button[type=stroked]+fw-button[type=stroked]>button,fw-button-group.fw-button-group>fw-button[type=stroked]>button{border-right-width:0}fw-button-group.fw-button-group>button.mat-stroked-button:last-of-type,fw-button-group.fw-button-group>fw-button[ng-reflect-type=stroked]:last-of-type>button,fw-button-group.fw-button-group>fw-button[type=stroked]:last-of-type>button{border-right-width:1px!important}fw-button-group.fw-button-group>button:not(.mat-stroked-button)+button.mat-stroked-button,fw-button-group.fw-button-group>fw-button:not([ng-reflect-type=stroked])+fw-button[ng-reflect-type=stroked]>button,fw-button-group.fw-button-group>fw-button:not([type=stroked])+fw-button[type=stroked]>button{border-left-width:0}"]}]}],"members":{"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}]}},"FwButtonGroupModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"FwButtonGroupComponent"}],"declarations":[{"__symbolic":"reference","name":"FwButtonGroupComponent"}],"entryComponents":[{"__symbolic":"reference","name":"FwButtonGroupComponent"}]}]}],"members":{}},"FwButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"host":{"class":"fw-button","[class.small]":"size === \"small\"","[class.medium]":"size === \"medium\"","[class.large]":"size === \"large\"","[class.compact]":"layout === \"compact\"","$quoted$":["class","[class.small]","[class.medium]","[class.large]","[class.compact]"]},"selector":"fw-button","template":"<ng-container [ngSwitch]=\"type\">\n <button *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchDefault mat-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n</ng-container>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","styles":[":host.compact>button{line-height:24px}:host.small{font-size:12px}:host.medium{font-size:14px}:host.large{font-size:18px}button{font-size:inherit}"]}]}],"members":{"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}]}},"FwButtonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":9,"character":4}],"exports":[{"__symbolic":"reference","name":"FwButtonComponent"}],"declarations":[{"__symbolic":"reference","name":"FwButtonComponent"}],"entryComponents":[{"__symbolic":"reference","name":"FwButtonComponent"}]}]}],"members":{}},"FwNotificationContainerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"host":{"class":"fw-notification-container","[class.duo]":"notifications.length === 2","[class.triple]":"notifications.length >= 3","$quoted$":["class","[class.duo]","[class.triple]"]},"selector":"fw-notification-container","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":16,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"<div role=\"list\">\n <fw-notification *ngFor=\"let notification of notifications; index as i\"\n (ready)=\"onReady($event)\"\n (dismiss)=\"onDismiss($event)\"\n [class]=\"notificationClass(i)\"\n [notification]=\"notification\"\n [attr.aria-label]=\"notification.type + ' : ' + notification.message\"\n role=\"listitem\"\n ></fw-notification>\n <div class=\"buttons\">\n <fw-button *ngIf=\"showLess\" (click)=\"onShowLess()\" mat-button aria-label=\"show less\" layout=\"compact\" size=\"small\">\n <mat-icon>expand_less</mat-icon>\n </fw-button>\n <fw-button *ngIf=\"showMore\" (click)=\"onShowMore()\" mat-button aria-label=\"show more\" layout=\"compact\" size=\"small\">\n <mat-icon>expand_more</mat-icon>\n </fw-button>\n <fw-button (click)=\"clearAll()\" mat-button class=\"clear-all\" aria-label=\"clear all\" layout=\"compact\" size=\"small\">\n Clear All\n </fw-button>\n </div>\n</div>\n","styles":["fw-notification-container{position:absolute;right:0;top:0;margin-top:20px;z-index:999999}fw-notification-container>div{display:flex;flex-direction:column-reverse}fw-notification-container .buttons{display:none;position:absolute;top:-5px;right:25px}fw-notification-container .buttons button{color:#fff;background-color:#919292;margin-left:2px}fw-notification-container .buttons button.mat-button{line-height:24px!important;margin:0 0 0 2px!important}fw-notification-container:hover .buttons{display:flex}fw-notification-container .hidden{display:none}fw-notification-container fw-notification:last-of-type{margin-top:24px}fw-notification-container.duo fw-notification.level-0,fw-notification-container.triple fw-notification.level-1{transform:scale(.95) translateY(-51px)}fw-notification-container.triple fw-notification.level-0{transform:scale(.9) translateY(-108px)}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":29,"character":27},{"__symbolic":"reference","name":"FwNotificationService"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"notificationClass":[{"__symbolic":"method"}],"onReady":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}],"clearAll":[{"__symbolic":"method"}],"onShowMore":[{"__symbolic":"method"}],"onShowLess":[{"__symbolic":"method"}]}},"FwNotificationModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":4},{"__symbolic":"reference","name":"FwButtonModule"},{"__symbolic":"reference","name":"FwButtonGroupModule"},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":17,"character":4}],"exports":[{"__symbolic":"reference","name":"FwNotificationComponent"},{"__symbolic":"reference","name":"FwNotificationContainerComponent"}],"declarations":[{"__symbolic":"reference","name":"FwNotificationComponent"},{"__symbolic":"reference","name":"FwNotificationContainerComponent"}],"entryComponents":[{"__symbolic":"reference","name":"FwNotificationComponent"}],"providers":[{"__symbolic":"reference","name":"FwNotificationService"}]}]}],"members":{}},"genId":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"String"},"member":"prototype"},"member":"padStart"},"arguments":[24,{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Math"},"member":"floor"},"arguments":[{"__symbolic":"binop","operator":"*","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Math"},"member":"random"}},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Date"},"member":"now"}}}]},"member":"toString"},"arguments":[16]}]}},"FwNotificationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"show":[{"__symbolic":"method"}],"dismiss":[{"__symbolic":"method"}],"dismissAll":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"FwNotificationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"host":{"class":"fw-notification","[class.error]":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"notification?.type === '","right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FwNotificationType"},"member":"Error"}},"right":"'"},"[class.info]":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"notification?.type === '","right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FwNotificationType"},"member":"Info"}},"right":"'"},"[class.success]":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"notification?.type === '","right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FwNotificationType"},"member":"Success"}},"right":"'"},"[class.wait]":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"notification?.type === '","right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FwNotificationType"},"member":"Wait"}},"right":"'"},"[class.warning]":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"binop","operator":"+","left":"notification?.type === '","right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FwNotificationType"},"member":"Warning"}},"right":"'"},"(click)":"onClickDismiss()","$quoted$":["class","[class.error]","[class.info]","[class.success]","[class.wait]","[class.warning]","(click)"]},"selector":"fw-notification","template":"<ng-container>{{ notification?.message }}</ng-container>","providers":[{"__symbolic":"reference","name":"ɵa"}],"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":19,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":20,"character":19},"member":"OnPush"},"styles":[":root{--shadow-level-1:0px 1px 2px rgba(0,0,0,0.1);--shadow-level-2:0px 2px 4px rgba(0,0,0,0.1);--shadow-level-3:0px 4px 8px rgba(0,0,0,0.1);--inset-shadow-level-1:inset 0px 1px 2px rgba(0,0,0,0.1);--inset-shadow-level-2:inset 0px 2px 4px rgba(0,0,0,0.1);--inset-shadow-level-3:inset 0px 4px 8px rgba(0,0,0,0.1);--font-primary:\"Inter\",system-ui,-apple-system,BlinkMacSystemFont,Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--font-secondary:\"Poppins\",system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--sidebar-width:55px;--menu-bar-width:180px;--page-layout-padding:235px;--radius:6px}*{font-family:var(--font-primary);box-sizing:border-box;text-shadow:1px 1px 1px rgba(0,0,0,.004);text-rendering:optimizeLegibility!important;-webkit-font-smoothing:antialiased!important}html{background:var(--color-gray)}body,html{height:100%}fw-notification{display:block;border-radius:4px;box-sizing:border-box;margin:5px 24px;max-width:33vw;min-width:344px;padding:14px 16px;height:48px;transform-origin:center;background-color:#2f96b4;border:1px solid hsla(0,0%,100%,.7019607843137254);box-shadow:0 0 12px #999;color:#fff;opacity:.99}fw-notification .notification{display:flex;justify-content:space-between;align-items:center}fw-notification.error{background-color:#bd362f}fw-notification.info{background-color:#2f96b4}fw-notification.success{background-color:#51a351}fw-notification.wait{background-color:#2f96b4}fw-notification.warning{background-color:#f89406}"]}]}],"members":{"notification":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"notificationDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"ready":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"dismiss":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":27,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":29,"character":27},{"__symbolic":"reference","name":"ɵa"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"startTimer":[{"__symbolic":"method"}],"stopTimer":[{"__symbolic":"method"}],"onClickDismiss":[{"__symbolic":"method"}]}},"FwNotificationType":{"Error":"error","Info":"info","Success":"success","Wait":"wait","Warning":"warning"},"Notification":{"__symbolic":"interface"},"FwPopoverTriggerComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"FwPopoverTriggerDirective"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"host":{"class":"fw-popover-trigger","(mouseenter)":"showPopover()","(mouseleave)":"hidePopover($event)","$quoted$":["class","(mouseenter)","(mouseleave)"]},"selector":"fw-popover-trigger","template":"<ng-content></ng-content>\n <!-- for web component support -->\n <ng-template>\n <div [innerHTML]=\"popoverHTML\"></div>\n </ng-template>"}]}],"members":{"popoverId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3},"arguments":["trigger-for"]}]}],"position":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["position"]}]}],"popoverTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":25,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":25,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":29,"character":20},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":30,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":31,"character":29}]}],"showPopover":[{"__symbolic":"method"}]}},"FwPopoverPosition":{"__symbolic":"interface"},"FwPopoverTriggerDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"host":{"class":"fw-popover-trigger","(mouseenter)":"showPopover()","(mouseleave)":"hidePopover($event)","$quoted$":["class","(mouseenter)","(mouseleave)"]},"selector":"[fwPopoverTriggerFor]","exportAs":"fwPopoverTrigger"}]}],"members":{"popover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3},"arguments":["fwPopoverTriggerFor"]}]}],"position":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3},"arguments":["fwPopoverPosition"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":39,"character":20},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":40,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":41,"character":29}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"showPopover":[{"__symbolic":"method"}],"hidePopover":[{"__symbolic":"method"}],"setPopoverCaretPosition":[{"__symbolic":"method"}],"setPopoverPosition":[{"__symbolic":"method"}],"getOverlay":[{"__symbolic":"method"}],"getMainPosition":[{"__symbolic":"method"}],"getFallbackPosition":[{"__symbolic":"method"}],"getPositions":[{"__symbolic":"method"}]}},"FwPopoverComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"host":{"class":"fw-popover","$quoted$":["class"]},"selector":"fw-popover","template":"\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <ng-template #content>\n <div class=\"fw-popover-content-wrapper\">\n <ng-content></ng-content>\n <div class=\"fw-popover-caret\"></div>\n </div>\n </ng-template>","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":14,"character":17},"member":"None"},"styles":[".white{color:#fff!important}.fill-white{background-color:#fff!important}.border-top-white,.border-white{border-color:#fff!important}.border-top-white{border-top:1px solid}.border-right-white{border-right:1px solid;border-color:#fff!important}.border-bottom-white{border-bottom:1px solid;border-color:#fff!important}.border-left-white{border-left:1px solid;border-color:#fff!important}.black{color:#000!important}.fill-black{background-color:#000!important}.border-black,.border-top-black{border-color:#000!important}.border-top-black{border-top:1px solid}.border-right-black{border-right:1px solid;border-color:#000!important}.border-bottom-black{border-bottom:1px solid;border-color:#000!important}.border-left-black{border-left:1px solid;border-color:#000!important}.green{color:#59b96b!important}.fill-green{background-color:#59b96b!important}.border-green,.border-top-green{border-color:#59b96b!important}.border-top-green{border-top:1px solid}.border-right-green{border-right:1px solid;border-color:#59b96b!important}.border-bottom-green{border-bottom:1px solid;border-color:#59b96b!important}.border-left-green{border-left:1px solid;border-color:#59b96b!important}.orange{color:#f7941d!important}.fill-orange{background-color:#f7941d!important}.border-orange,.border-top-orange{border-color:#f7941d!important}.border-top-orange{border-top:1px solid}.border-right-orange{border-right:1px solid;border-color:#f7941d!important}.border-bottom-orange{border-bottom:1px solid;border-color:#f7941d!important}.border-left-orange{border-left:1px solid;border-color:#f7941d!important}.red{color:#d22239!important}.fill-red{background-color:#d22239!important}.border-red,.border-top-red{border-color:#d22239!important}.border-top-red{border-top:1px solid}.border-right-red{border-right:1px solid;border-color:#d22239!important}.border-bottom-red{border-bottom:1px solid;border-color:#d22239!important}.border-left-red{border-left:1px solid;border-color:#d22239!important}.blue{color:#5871a2!important}.fill-blue{background-color:#5871a2!important}.border-blue,.border-top-blue{border-color:#5871a2!important}.border-top-blue{border-top:1px solid}.border-right-blue{border-right:1px solid;border-color:#5871a2!important}.border-bottom-blue{border-bottom:1px solid;border-color:#5871a2!important}.border-left-blue{border-left:1px solid;border-color:#5871a2!important}.focus-blue{color:#23527c!important}.fill-focus-blue{background-color:#23527c!important}.border-focus-blue,.border-top-focus-blue{border-color:#23527c!important}.border-top-focus-blue{border-top:1px solid}.border-right-focus-blue{border-right:1px solid;border-color:#23527c!important}.border-bottom-focus-blue{border-bottom:1px solid;border-color:#23527c!important}.border-left-focus-blue{border-left:1px solid;border-color:#23527c!important}.dark-blue{color:#394256!important}.fill-dark-blue{background-color:#394256!important}.border-dark-blue,.border-top-dark-blue{border-color:#394256!important}.border-top-dark-blue{border-top:1px solid}.border-right-dark-blue{border-right:1px solid;border-color:#394256!important}.border-bottom-dark-blue{border-bottom:1px solid;border-color:#394256!important}.border-left-dark-blue{border-left:1px solid;border-color:#394256!important}.light-blue{color:#e7f0fc!important}.fill-light-blue{background-color:#e7f0fc!important}.border-light-blue,.border-top-light-blue{border-color:#e7f0fc!important}.border-top-light-blue{border-top:1px solid}.border-right-light-blue{border-right:1px solid;border-color:#e7f0fc!important}.border-bottom-light-blue{border-bottom:1px solid;border-color:#e7f0fc!important}.border-left-light-blue{border-left:1px solid;border-color:#e7f0fc!important}.bright-blue{color:#2e72f6!important}.fill-bright-blue{background-color:#2e72f6!important}.border-bright-blue,.border-top-bright-blue{border-color:#2e72f6!important}.border-top-bright-blue{border-top:1px solid}.border-right-bright-blue{border-right:1px solid;border-color:#2e72f6!important}.border-bottom-bright-blue{border-bottom:1px solid;border-color:#2e72f6!important}.border-left-bright-blue{border-left:1px solid;border-color:#2e72f6!important}.grey{color:#58595b!important}.fill-grey{background-color:#58595b!important}.border-grey,.border-top-grey{border-color:#58595b!important}.border-top-grey{border-top:1px solid}.border-right-grey{border-right:1px solid;border-color:#58595b!important}.border-bottom-grey{border-bottom:1px solid;border-color:#58595b!important}.border-left-grey{border-left:1px solid;border-color:#58595b!important}.soft-grey{color:#dddede!important}.fill-soft-grey{background-color:#dddede!important}.border-soft-grey,.border-top-soft-grey{border-color:#dddede!important}.border-top-soft-grey{border-top:1px solid}.border-right-soft-grey{border-right:1px solid;border-color:#dddede!important}.border-bottom-soft-grey{border-bottom:1px solid;border-color:#dddede!important}.border-left-soft-grey{border-left:1px solid;border-color:#dddede!important}.light-grey{color:#eee!important}.fill-light-grey{background-color:#eee!important}.border-light-grey,.border-top-light-grey{border-color:#eee!important}.border-top-light-grey{border-top:1px solid}.border-right-light-grey{border-right:1px solid;border-color:#eee!important}.border-bottom-light-grey{border-bottom:1px solid;border-color:#eee!important}.border-left-light-grey{border-left:1px solid;border-color:#eee!important}.medium-grey{color:#ccc!important}.fill-medium-grey{background-color:#ccc!important}.border-medium-grey,.border-top-medium-grey{border-color:#ccc!important}.border-top-medium-grey{border-top:1px solid}.border-right-medium-grey{border-right:1px solid;border-color:#ccc!important}.border-bottom-medium-grey{border-bottom:1px solid;border-color:#ccc!important}.border-left-medium-grey{border-left:1px solid;border-color:#ccc!important}.medium-dark-grey{color:#999!important}.fill-medium-dark-grey{background-color:#999!important}.border-medium-dark-grey{border-color:#999!important}.border-top-medium-dark-grey{border-top:1px solid;border-color:#999!important}.border-right-medium-dark-grey{border-right:1px solid;border-color:#999!important}.border-bottom-medium-dark-grey{border-bottom:1px solid;border-color:#999!important}.border-left-medium-dark-grey{border-left:1px solid;border-color:#999!important}.dark-grey{color:#222!important}.fill-dark-grey{background-color:#222!important}.border-dark-grey,.border-top-dark-grey{border-color:#222!important}.border-top-dark-grey{border-top:1px solid}.border-right-dark-grey{border-right:1px solid;border-color:#222!important}.border-bottom-dark-grey{border-bottom:1px solid;border-color:#222!important}.border-left-dark-grey{border-left:1px solid;border-color:#222!important}.iron-grey{color:#d3d6db!important}.fill-iron-grey{background-color:#d3d6db!important}.border-iron-grey,.border-top-iron-grey{border-color:#d3d6db!important}.border-top-iron-grey{border-top:1px solid}.border-right-iron-grey{border-right:1px solid;border-color:#d3d6db!important}.border-bottom-iron-grey{border-bottom:1px solid;border-color:#d3d6db!important}.border-left-iron-grey{border-left:1px solid;border-color:#d3d6db!important}.bombay-grey{color:#aaacb0!important}.fill-bombay-grey{background-color:#aaacb0!important}.border-bombay-grey,.border-top-bombay-grey{border-color:#aaacb0!important}.border-top-bombay-grey{border-top:1px solid}.border-right-bombay-grey{border-right:1px solid;border-color:#aaacb0!important}.border-bottom-bombay-grey{border-bottom:1px solid;border-color:#aaacb0!important}.border-left-bombay-grey{border-left:1px solid;border-color:#aaacb0!important}.soft-blue{color:#eff1f5!important}.fill-soft-blue{background-color:#eff1f5!important}.border-soft-blue,.border-top-soft-blue{border-color:#eff1f5!important}.border-top-soft-blue{border-top:1px solid}.border-right-soft-blue{border-right:1px solid;border-color:#eff1f5!important}.border-bottom-soft-blue{border-bottom:1px solid;border-color:#eff1f5!important}.border-left-soft-blue{border-left:1px solid;border-color:#eff1f5!important}.darker-soft-blue{color:#e9ecf1!important}.fill-darker-soft-blue{background-color:#e9ecf1!important}.border-darker-soft-blue,.border-top-darker-soft-blue{border-color:#e9ecf1!important}.border-top-darker-soft-blue{border-top:1px solid}.border-right-darker-soft-blue{border-right:1px solid;border-color:#e9ecf1!important}.border-bottom-darker-soft-blue{border-bottom:1px solid;border-color:#e9ecf1!important}.border-left-darker-soft-blue{border-left:1px solid;border-color:#e9ecf1!important}.lighter-soft-blue{color:#f5f6f9!important}.fill-lighter-soft-blue{background-color:#f5f6f9!important}.border-lighter-soft-blue,.border-top-lighter-soft-blue{border-color:#f5f6f9!important}.border-top-lighter-soft-blue{border-top:1px solid}.border-right-lighter-soft-blue{border-right:1px solid;border-color:#f5f6f9!important}.border-bottom-lighter-soft-blue{border-bottom:1px solid;border-color:#f5f6f9!important}.border-left-lighter-soft-blue{border-left:1px solid;border-color:#f5f6f9!important}:root{--color-gray:var(--color-gray-100);--color-gray-50:#f6f7f8;--color-gray-100:#eff1f4;--color-gray-200:#e3e5e8;--color-gray-300:#d7d9dc;--color-gray-400:#cbcdcf;--color-gray-500:#bfc1c3;--color-primary:var(--color-primary-1000);--color-primary-100:#eaf1fe;--color-primary-200:#d5e3fd;--color-primary-300:#c0d5fc;--color-primary-400:#abc7fb;--color-primary-500:#97b9fb;--color-primary-600:#82aafa;--color-primary-700:#6da2ff;--color-primary-800:#588ef8;--color-primary-900:#4380f7;--color-primary-1000:#2e72f6;--color-primary-1100:#2967dd;--color-primary-1200:#255bc5;--color-primary-1300:#2050ac;--color-primary-1400:#1c4494;--color-primary-1500:#083076;--color-primary-1600:#122e62;--color-primary-1700:#0e224a;--color-primary-1800:#061734;--color-primary-1900:#050b19;--color-secondary:var(--color-secondary-900);--color-secondary-100:#ccf1e4;--color-secondary-200:#b3e9d7;--color-secondary-300:#99e2c9;--color-secondary-400:#80dbbc;--color-secondary-500:#66d4ae;--color-secondary-600:#4dcda1;--color-secondary-700:#33c593;--color-secondary-800:#1abe86;--color-secondary-900:#00b778;--color-secondary-1000:#00a56c;--color-secondary-1100:#009260;--color-secondary-1200:#008054;--color-secondary-1300:#006e48;--color-secondary-1400:#005c3c;--color-secondary-1500:#004930;--color-secondary-1600:#002518;--color-secondary-1700:#00120c;--shadow-level-1:0px 1px 2px rgba(0,0,0,0.1);--shadow-level-2:0px 2px 4px rgba(0,0,0,0.1);--shadow-level-3:0px 4px 8px rgba(0,0,0,0.1);--inset-shadow-level-1:inset 0px 1px 2px rgba(0,0,0,0.1);--inset-shadow-level-2:inset 0px 2px 4px rgba(0,0,0,0.1);--inset-shadow-level-3:inset 0px 4px 8px rgba(0,0,0,0.1);--font-primary:\"Inter\",system-ui,-apple-system,BlinkMacSystemFont,Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--font-secondary:\"Poppins\",system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--sidebar-width:55px;--menu-bar-width:180px;--page-layout-padding:235px;--radius:6px}*{font-family:var(--font-primary);box-sizing:border-box;text-shadow:1px 1px 1px rgba(0,0,0,.004);text-rendering:optimizeLegibility!important;-webkit-font-smoothing:antialiased!important}html{background:var(--color-gray)}body,html{height:100%}fw-popover{display:none}.fw-popover-panel .fw-popover-content-wrapper{position:relative;background:#fff;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.15)!important;border:1px solid #d6dbe5;padding:16px}.fw-popover-panel .fw-popover-content-wrapper .fw-popover-caret{position:absolute;overflow:hidden;width:25px;height:25px}.fw-popover-panel .fw-popover-content-wrapper .fw-popover-caret:after{display:block;content:\"\";width:16px;height:16px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.15)!important;border:1px solid #d6dbe5;transform:rotate(45deg);position:relative}.fw-popover-panel.fw-popover-above{margin-bottom:-20px;padding-bottom:20px}.fw-popover-panel.fw-popover-above .fw-popover-caret{left:0;bottom:-16px;height:16px}.fw-popover-panel.fw-popover-above .fw-popover-caret:after{margin:-8px auto}.fw-popover-panel.fw-popover-below{margin-top:-20px;padding-top:20px}.fw-popover-panel.fw-popover-below .fw-popover-caret{left:0;top:-16px;height:16px}.fw-popover-panel.fw-popover-below .fw-popover-caret:after{top:16px;margin:-8px auto}.fw-popover-panel.fw-popover-left{margin-right:-20px;padding-right:20px}.fw-popover-panel.fw-popover-left .fw-popover-caret{right:-16px;top:0;width:16px}.fw-popover-panel.fw-popover-left .fw-popover-caret:after{top:calc(50% - 8px);left:-8px}.fw-popover-panel.fw-popover-right{margin-left:-20px;padding-left:20px}.fw-popover-panel.fw-popover-right .fw-popover-caret{left:-16px;top:0;width:16px}.fw-popover-panel.fw-popover-right .fw-popover-caret:after{top:calc(50% - 8px);right:-8px}"]}]}],"members":{"templateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":18,"character":3},"arguments":["content"]}]}]}},"FwPopoverModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4}],"exports":[{"__symbolic":"reference","name":"FwPopoverComponent"},{"__symbolic":"reference","name":"FwPopoverTriggerComponent"},{"__symbolic":"reference","name":"FwPopoverTriggerDirective"}],"declarations":[{"__symbolic":"reference","name":"FwPopoverComponent"},{"__symbolic":"reference","name":"FwPopoverTriggerComponent"},{"__symbolic":"reference","name":"FwPopoverTriggerDirective"}],"entryComponents":[{"__symbolic":"reference","name":"FwPopoverComponent"},{"__symbolic":"reference","name":"FwPopoverTriggerComponent"}],"providers":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":27,"character":4}]}]}],"members":{}},"FwTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"host":{"class":"fw-table","[class.compact]":"isCompact","$quoted$":["class","[class.compact]"]},"selector":"fw-table","template":"<table mat-table [dataSource]=\"matDataSource\" matSort>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByIndex\">\n <ng-container [matColumnDef]=\"column.key\">\n\n <ng-template #tableHeaders>\n <ng-container [ngSwitch]=\"column.filter?.control\">\n <ng-container *ngSwitchCase=\"'input'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <input matInput [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\" (keydown)=\"$event.stopPropagation(); onInputFilter($event, column);\">\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'select'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <mat-select [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\">\n <mat-option (click)=\"onSelectFilter($event, column);\">- none -</mat-option>\n <mat-option *ngFor=\"let option of column.filter.options\" [value]=\"option\" (click)=\"onSelectFilter($event, column);\">{{ option }}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <mat-select [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\" multiple=\"true\">\n <mat-option *ngFor=\"let option of column.filter.options\" [value]=\"option\" (click)=\"onMultiSelectFilter($event, column);\">{{ option }}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchDefault>{{ column.label }}</ng-container>\n </ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"isSortEnabled\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container [ngTemplateOutlet]=\"tableHeaders\"></ng-container>\n </th>\n </ng-container>\n\n <ng-container *ngIf=\"!isSortEnabled\">\n <th mat-header-cell *matHeaderCellDef>\n <ng-container [ngTemplateOutlet]=\"tableHeaders\"></ng-container>\n </th>\n </ng-container>\n\n <td mat-cell *matCellDef=\"let element\"> {{ element[column.key] }} </td>\n </ng-container>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n<mat-paginator *ngIf=\"paginationSize > 0\" [pageSize]=\"paginationSize\"></mat-paginator>\n\n\n\n","styles":[":host{display:block;width:100%}:host:not(.compact) table.mat-table tr.mat-header-row,:host:not(.compact) table.mat-table tr.mat-row{height:56px}:host.compact table.mat-table tr.mat-header-row,:host.compact table.mat-table tr.mat-row{height:32px}:host.compact mat-paginator.mat-paginator{align-items:center;display:flex;height:32px;justify-content:flex-end}table.mat-table{width:100%}table.mat-table td,table.mat-table th{vertical-align:middle}table.mat-table td.mat-cell,table.mat-table td.mat-header-cell,table.mat-table th.mat-cell,table.mat-table th.mat-header-cell{border-bottom-color:var(--color-gray)}"]}]}],"members":{"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"dataSource":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"layout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"pageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"webCompPageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3},"arguments":["page-size"]}]}],"sort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"matPaginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":48,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginator","line":48,"character":13}]}]}],"matSort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":49,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/sort","name":"MatSort","line":49,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":52,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"addFilterControls":[{"__symbolic":"method"}],"setDataSource":[{"__symbolic":"method"}],"setColumns":[{"__symbolic":"method"}],"setFilter":[{"__symbolic":"method"}],"setSort":[{"__symbolic":"method"}],"setPaginator":[{"__symbolic":"method"}],"onInputFilter":[{"__symbolic":"method"}],"onSelectFilter":[{"__symbolic":"method"}],"onMultiSelectFilter":[{"__symbolic":"method"}]}},"FwTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginatorModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/sort","name":"MatSortModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/table","name":"MatTableModule","line":20,"character":4}],"exports":[{"__symbolic":"reference","name":"FwTableComponent"}],"declarations":[{"__symbolic":"reference","name":"FwTableComponent"}],"entryComponents":[{"__symbolic":"reference","name":"FwTableComponent"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":2,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"start":[{"__symbolic":"method"}],"stop":[{"__symbolic":"method"}],"pause":[{"__symbolic":"method"}],"continue":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}},"origins":{"FwButtonGroupComponent":"./components/button-group/button-group.component","FwButtonGroupModule":"./components/button-group/button-group.module","FwButtonComponent":"./components/button/button.component","FwButtonModule":"./components/button/button.module","FwNotificationContainerComponent":"./components/notification/notification-container/notification-container.component","FwNotificationModule":"./components/notification/notification.module","genId":"./components/notification/notification.service","FwNotificationService":"./components/notification/notification.service","FwNotificationComponent":"./components/notification/notification/notification.component","FwNotificationType":"./components/notification/notification/notification.model","Notification":"./components/notification/notification/notification.model","FwPopoverTriggerComponent":"./components/popover/popover-trigger.component","FwPopoverPosition":"./components/popover/popover-trigger.directive","FwPopoverTriggerDirective":"./components/popover/popover-trigger.directive","FwPopoverComponent":"./components/popover/popover.component","FwPopoverModule":"./components/popover/popover.module","FwTableComponent":"./components/table/table.component","FwTableModule":"./components/table/table.module","ɵa":"./components/notification/notification-timer.service"},"importAs":"@flywheel-io/vision"}
|
package/package.json
CHANGED