UNPKG

truly-ui

Version:

Web Components for Desktop Applications.

128 lines 14.4 kB
import { Component, ViewChild } from '@angular/core'; import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay'; import { OverlayAnimation } from '../../core/directives/overlay-animation'; import * as i0 from "@angular/core"; import * as i1 from "@angular/cdk/overlay"; import * as i2 from "../tooltip"; export class TlToolTipContainer { setOptions(options) { this.options = options; } setElement(element) { this.element = element; } ngAfterContentInit() { this.connectedOverlay.origin = new CdkOverlayOrigin(this.element); this.getPositionsByPlacement(); } getPositionsByPlacement() { const placements = { 'left-top': () => this.setLeftTop(), 'left-center': () => this.setLeftCenter(), 'left-bottom': () => this.setLeftBottom(), 'right-top': () => this.setRightTop(), 'right-center': () => this.setRightCenter(), 'right-bottom': () => this.setRightBottom(), 'top-center': () => this.setTopCenter(), 'bottom-center': () => this.setBottomCenter() }; if (placements[this.options.placement]) { placements[this.options.placement](); } } setBottomCenter() { this.connectedOverlay.positions = [{ originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' }]; } setTopCenter() { this.connectedOverlay.positions = [{ originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' }]; } setRightCenter() { this.connectedOverlay.positions = [{ originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' }]; } setRightTop() { this.connectedOverlay.positions = [{ originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' }]; } setRightBottom() { this.connectedOverlay.positions = [{ originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' }]; } setLeftBottom() { this.connectedOverlay.positions = [{ originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom' }]; } setLeftTop() { this.connectedOverlay.positions = [{ originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' }]; } setLeftCenter() { this.connectedOverlay.positions = [{ originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' }]; } } /** @nocollapse */ TlToolTipContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TlToolTipContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); /** @nocollapse */ TlToolTipContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TlToolTipContainer, selector: "tl-tooltip-container", viewQueries: [{ propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true, static: true }, { propertyName: "connectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, static: true }], ngImport: i0, template: ` <ng-template cdkConnectedOverlay [cdkConnectedOverlayHasBackdrop]="false" [cdkConnectedOverlayBackdropClass]="'cdk-overlay-transparent-backdrop'" [cdkConnectedOverlayOpen]="true"> <tl-tooltip @overlay [options]="options"></tl-tooltip> </ng-template> `, isInline: true, dependencies: [{ kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: i2.TlToolTip, selector: "tl-tooltip", inputs: ["options"] }], animations: [OverlayAnimation] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TlToolTipContainer, decorators: [{ type: Component, args: [{ selector: 'tl-tooltip-container', template: ` <ng-template cdkConnectedOverlay [cdkConnectedOverlayHasBackdrop]="false" [cdkConnectedOverlayBackdropClass]="'cdk-overlay-transparent-backdrop'" [cdkConnectedOverlayOpen]="true"> <tl-tooltip @overlay [options]="options"></tl-tooltip> </ng-template> `, animations: [OverlayAnimation], }] }], propDecorators: { tooltip: [{ type: ViewChild, args: ['tooltip', { static: true }] }], connectedOverlay: [{ type: ViewChild, args: [CdkConnectedOverlay, { static: true }] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnVseS11aS9zcmMvY29tcG9uZW50cy90b29sdGlwL3BhcnRzL3Rvb2x0aXAtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7OztBQWMzRSxNQUFNLE9BQU8sa0JBQWtCO0lBVTdCLFVBQVUsQ0FBRSxPQUF1QjtRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVSxDQUFFLE9BQU87UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLElBQUksZ0JBQWdCLENBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBRSxDQUFDO1FBQ3BFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsTUFBTSxVQUFVLEdBQUc7WUFDakIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkMsYUFBYSxFQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDMUMsYUFBYSxFQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDMUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckMsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElB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RCxVQUFVLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDL0I7OEJBR3lDLE9BQU87c0JBQTlDLFNBQVM7dUJBQUUsU0FBUyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFYSxnQkFBZ0I7c0JBQWpFLFNBQVM7dUJBQUUsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUb29sdGlwT3B0aW9ucyB9IGZyb20gJy4uL3Rvb2x0aXBPcHRpb25zJztcbmltcG9ydCB7IE92ZXJsYXlBbmltYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2RpcmVjdGl2ZXMvb3ZlcmxheS1hbmltYXRpb24nO1xuXG5AQ29tcG9uZW50KCB7XG4gIHNlbGVjdG9yOiAndGwtdG9vbHRpcC1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3NdPVwiJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJ1wiXG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJ0cnVlXCI+XG4gICAgICA8dGwtdG9vbHRpcCBAb3ZlcmxheSBbb3B0aW9uc109XCJvcHRpb25zXCI+PC90bC10b29sdGlwPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIGFuaW1hdGlvbnM6IFtPdmVybGF5QW5pbWF0aW9uXSxcbn0gKVxuZXhwb3J0IGNsYXNzIFRsVG9vbFRpcENvbnRhaW5lciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuXG4gIEBWaWV3Q2hpbGQoICd0b29sdGlwJywge3N0YXRpYzogdHJ1ZX0gKSB0b29sdGlwO1xuXG4gIEBWaWV3Q2hpbGQoIENka0Nvbm5lY3RlZE92ZXJsYXksIHtzdGF0aWM6IHRydWV9ICkgY29ubmVjdGVkT3ZlcmxheTogQ2RrQ29ubmVjdGVkT3ZlcmxheTtcblxuICBwdWJsaWMgb3B0aW9uczogVG9vbHRpcE9wdGlvbnM7XG5cbiAgcHJpdmF0ZSBlbGVtZW50O1xuXG4gIHNldE9wdGlvbnMoIG9wdGlvbnM6IFRvb2x0aXBPcHRpb25zICkge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICBzZXRFbGVtZW50KCBlbGVtZW50ICkge1xuICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm9yaWdpbiA9IG5ldyBDZGtPdmVybGF5T3JpZ2luKCB0aGlzLmVsZW1lbnQgKTtcbiAgICB0aGlzLmdldFBvc2l0aW9uc0J5UGxhY2VtZW50KCk7XG4gIH1cblxuICBnZXRQb3NpdGlvbnNCeVBsYWNlbWVudCgpIHtcbiAgICBjb25zdCBwbGFjZW1lbnRzID0ge1xuICAgICAgJ2xlZnQtdG9wJzogKCkgPT4gdGhpcy5zZXRMZWZ0VG9wKCksXG4gICAgICAnbGVmdC1jZW50ZXInIDogKCkgPT4gdGhpcy5zZXRMZWZ0Q2VudGVyKCksXG4gICAgICAnbGVmdC1ib3R0b20nIDogKCkgPT4gdGhpcy5zZXRMZWZ0Qm90dG9tKCksXG4gICAgICAncmlnaHQtdG9wJzogKCkgPT4gdGhpcy5zZXRSaWdodFRvcCgpLFxuICAgICAgJ3JpZ2h0LWNlbnRlcic6ICgpID0+IHRoaXMuc2V0UmlnaHRDZW50ZXIoKSxcbiAgICAgICdyaWdodC1ib3R0b20nOiAoKSA9PiB0aGlzLnNldFJpZ2h0Qm90dG9tKCksXG4gICAgICAndG9wLWNlbnRlcic6ICgpID0+IHRoaXMuc2V0VG9wQ2VudGVyKCksXG4gICAgICAnYm90dG9tLWNlbnRlcic6ICgpID0+IHRoaXMuc2V0Qm90dG9tQ2VudGVyKClcbiAgICB9O1xuICAgIGlmIChwbGFjZW1lbnRzW3RoaXMub3B0aW9ucy5wbGFjZW1lbnRdKSB7XG4gICAgICBwbGFjZW1lbnRzW3RoaXMub3B0aW9ucy5wbGFjZW1lbnRdKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0Qm90dG9tQ2VudGVyKCkge1xuICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5wb3NpdGlvbnMgPSBbIHtcbiAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICB9IF07XG4gIH1cblxuICBzZXRUb3BDZW50ZXIoKSB7XG4gICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5LnBvc2l0aW9ucyA9IFsge1xuICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xuICAgIH0gXTtcbiAgfVxuXG4gIHNldFJpZ2h0Q2VudGVyKCkge1xuICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5wb3NpdGlvbnMgPSBbIHtcbiAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgIG92ZXJsYXlZOiAnY2VudGVyJ1xuICAgIH0gXTtcbiAgfVxuXG4gIHNldFJpZ2h0VG9wKCkge1xuICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5wb3NpdGlvbnMgPSBbIHtcbiAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgIG92ZXJsYXlZOiAndG9wJ1xuICAgIH0gXTtcbiAgfVxuXG4gIHNldFJpZ2h0Qm90dG9tKCkge1xuICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5wb3NpdGlvbnMgPSBbIHtcbiAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xuICAgIH0gXTtcbiAgfVxuXG4gIHNldExlZnRCb3R0b20oKSB7XG4gICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5LnBvc2l0aW9ucyA9IFsge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nXG4gICAgfSBdO1xuICB9XG5cbiAgc2V0TGVmdFRvcCgpIHtcbiAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkucG9zaXRpb25zID0gWyB7XG4gICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICB9IF07XG4gIH1cblxuICBzZXRMZWZ0Q2VudGVyKCkge1xuICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5wb3NpdGlvbnMgPSBbIHtcbiAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgIG92ZXJsYXlZOiAnY2VudGVyJ1xuICAgIH0gXTtcbiAgfVxuXG59XG4iXX0=