|
|
@ -30,7 +30,7 @@ import { EntityId } from '@shared/models/id/entity-id'; |
|
|
import { EventService } from '@app/core/http/event.service'; |
|
|
import { EventService } from '@app/core/http/event.service'; |
|
|
import { EventTableHeaderComponent } from '@home/components/event/event-table-header.component'; |
|
|
import { EventTableHeaderComponent } from '@home/components/event/event-table-header.component'; |
|
|
import { EntityTypeResource } from '@shared/models/entity-type.models'; |
|
|
import { EntityTypeResource } from '@shared/models/entity-type.models'; |
|
|
import { Observable } from 'rxjs'; |
|
|
import { fromEvent, Observable } from 'rxjs'; |
|
|
import { PageData } from '@shared/models/page/page-data'; |
|
|
import { PageData } from '@shared/models/page/page-data'; |
|
|
import { Direction } from '@shared/models/page/sort-order'; |
|
|
import { Direction } from '@shared/models/page/sort-order'; |
|
|
import { DialogService } from '@core/services/dialog.service'; |
|
|
import { DialogService } from '@core/services/dialog.service'; |
|
|
@ -50,6 +50,7 @@ import { |
|
|
EventFilterPanelData, |
|
|
EventFilterPanelData, |
|
|
FilterEntityColumn |
|
|
FilterEntityColumn |
|
|
} from '@home/components/event/event-filter-panel.component'; |
|
|
} from '@home/components/event/event-filter-panel.component'; |
|
|
|
|
|
import { DEFAULT_OVERLAY_POSITIONS } from '@shared/models/overlay.models'; |
|
|
|
|
|
|
|
|
export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> { |
|
|
export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> { |
|
|
|
|
|
|
|
|
@ -457,19 +458,16 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> { |
|
|
$event.stopPropagation(); |
|
|
$event.stopPropagation(); |
|
|
} |
|
|
} |
|
|
const target = $event.target || $event.srcElement || $event.currentTarget; |
|
|
const target = $event.target || $event.srcElement || $event.currentTarget; |
|
|
const config = new OverlayConfig(); |
|
|
const config = new OverlayConfig({ |
|
|
config.backdropClass = 'cdk-overlay-transparent-backdrop'; |
|
|
panelClass: 'tb-panel-container', |
|
|
config.hasBackdrop = true; |
|
|
backdropClass: 'cdk-overlay-transparent-backdrop', |
|
|
const connectedPosition: ConnectedPosition = { |
|
|
hasBackdrop: true, |
|
|
originX: 'end', |
|
|
height: 'fit-content', |
|
|
originY: 'bottom', |
|
|
maxHeight: '65vh' |
|
|
overlayX: 'end', |
|
|
}); |
|
|
overlayY: 'top' |
|
|
config.positionStrategy = this.overlay.position() |
|
|
}; |
|
|
.flexibleConnectedTo(target as HTMLElement) |
|
|
config.positionStrategy = this.overlay.position().flexibleConnectedTo(target as HTMLElement) |
|
|
.withPositions(DEFAULT_OVERLAY_POSITIONS); |
|
|
.withPositions([connectedPosition]); |
|
|
|
|
|
config.maxHeight = '70vh'; |
|
|
|
|
|
config.height = 'min-content'; |
|
|
|
|
|
|
|
|
|
|
|
const overlayRef = this.overlay.create(config); |
|
|
const overlayRef = this.overlay.create(config); |
|
|
overlayRef.backdropClick().subscribe(() => { |
|
|
overlayRef.backdropClick().subscribe(() => { |
|
|
@ -491,7 +489,11 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> { |
|
|
const injector = Injector.create({parent: this.viewContainerRef.injector, providers}); |
|
|
const injector = Injector.create({parent: this.viewContainerRef.injector, providers}); |
|
|
const componentRef = overlayRef.attach(new ComponentPortal(EventFilterPanelComponent, |
|
|
const componentRef = overlayRef.attach(new ComponentPortal(EventFilterPanelComponent, |
|
|
this.viewContainerRef, injector)); |
|
|
this.viewContainerRef, injector)); |
|
|
|
|
|
const resizeWindows$ = fromEvent(window, 'resize').subscribe(() => { |
|
|
|
|
|
overlayRef.updatePosition(); |
|
|
|
|
|
}); |
|
|
componentRef.onDestroy(() => { |
|
|
componentRef.onDestroy(() => { |
|
|
|
|
|
resizeWindows$.unsubscribe(); |
|
|
if (componentRef.instance.result && !isEqual(this.filterParams, componentRef.instance.result.filterParams)) { |
|
|
if (componentRef.instance.result && !isEqual(this.filterParams, componentRef.instance.result.filterParams)) { |
|
|
this.filterParams = componentRef.instance.result.filterParams; |
|
|
this.filterParams = componentRef.instance.result.filterParams; |
|
|
this.getTable().paginator.pageIndex = 0; |
|
|
this.getTable().paginator.pageIndex = 0; |
|
|
|