UNPKG

carbon-components-angular

Version:
56 lines 7.88 kB
import { Directive } from "@angular/core"; import { PopoverContainer } from "carbon-components-angular/popover"; import * as i0 from "@angular/core"; /** * Popover/toggletip behavior for `cds-ai-label`, applied to an inner wrapper so * `cds--popover-*` classes are not merged onto the `cds--ai-label` host. */ export class AILabelPopoverDirective extends PopoverContainer { constructor(elementRef, ngZone, renderer, changeDetectorRef) { super(elementRef, ngZone, renderer, changeDetectorRef); this.elementRef = elementRef; this.ngZone = ngZone; this.renderer = renderer; this.changeDetectorRef = changeDetectorRef; this.highContrast = true; this.dropShadow = false; } initializeReferences() { this.updateAlignmentClass(this._align); this.bindPopoverRefs(); this.handleChange(this.isOpen); } ngOnChanges(changes) { const originalState = this.isOpen; this.handleChange(false); if (changes.autoAlign && !changes.autoAlign.firstChange) { this.popoverContentRef?.setAttribute("style", ""); this.bindPopoverRefs(); } this.handleChange(originalState); } bindPopoverRefs() { const host = this.elementRef.nativeElement; const panel = host.querySelector(":scope > span.cds--popover"); if (!panel) { return; } this.popoverContentRef = panel.querySelector(":scope > span.cds--popover-content"); this.caretRef = this.resolveCaretRef(panel); } resolveCaretRef(panel) { if (this.autoAlign) { return panel.querySelector("span.cds--popover-content > span.cds--popover-caret.cds--popover--auto-align"); } return panel.querySelector(":scope > span.cds--popover-caret"); } } AILabelPopoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AILabelPopoverDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); AILabelPopoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: AILabelPopoverDirective, selector: "[cdsAILabelPopover]", usesInheritance: true, usesOnChanges: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AILabelPopoverDirective, decorators: [{ type: Directive, args: [{ selector: "[cdsAILabelPopover]" }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktbGFiZWwtcG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWktbGFiZWwvYWktbGFiZWwtcG9wb3Zlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVOLFNBQVMsRUFNVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFFckU7OztHQUdHO0FBSUgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGdCQUFnQjtJQUM1RCxZQUNXLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZCxRQUFtQixFQUNuQixpQkFBb0M7UUFFOUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFMN0MsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBRzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFUSxvQkFBb0I7UUFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVRLFdBQVcsQ0FBQyxPQUFzQjtRQUMxQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekIsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDeEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sZUFBZTtRQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNYLE9BQU87U0FDUDtRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBa0I7UUFDekMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FDekIsOEVBQThFLENBQzlFLENBQUM7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7O29IQS9DVyx1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHREaXJlY3RpdmUsXHJcblx0RWxlbWVudFJlZixcclxuXHROZ1pvbmUsXHJcblx0T25DaGFuZ2VzLFxyXG5cdFJlbmRlcmVyMixcclxuXHRTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IFBvcG92ZXJDb250YWluZXIgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9wb3BvdmVyXCI7XHJcblxyXG4vKipcclxuICogUG9wb3Zlci90b2dnbGV0aXAgYmVoYXZpb3IgZm9yIGBjZHMtYWktbGFiZWxgLCBhcHBsaWVkIHRvIGFuIGlubmVyIHdyYXBwZXIgc29cclxuICogYGNkcy0tcG9wb3Zlci0qYCBjbGFzc2VzIGFyZSBub3QgbWVyZ2VkIG9udG8gdGhlIGBjZHMtLWFpLWxhYmVsYCBob3N0LlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcblx0c2VsZWN0b3I6IFwiW2Nkc0FJTGFiZWxQb3BvdmVyXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBSUxhYmVsUG9wb3ZlckRpcmVjdGl2ZSBleHRlbmRzIFBvcG92ZXJDb250YWluZXIgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcblx0XHRwcm90ZWN0ZWQgbmdab25lOiBOZ1pvbmUsXHJcblx0XHRwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHRcdHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHtcclxuXHRcdHN1cGVyKGVsZW1lbnRSZWYsIG5nWm9uZSwgcmVuZGVyZXIsIGNoYW5nZURldGVjdG9yUmVmKTtcclxuXHRcdHRoaXMuaGlnaENvbnRyYXN0ID0gdHJ1ZTtcclxuXHRcdHRoaXMuZHJvcFNoYWRvdyA9IGZhbHNlO1xyXG5cdH1cclxuXHJcblx0b3ZlcnJpZGUgaW5pdGlhbGl6ZVJlZmVyZW5jZXMoKTogdm9pZCB7XHJcblx0XHR0aGlzLnVwZGF0ZUFsaWdubWVudENsYXNzKHRoaXMuX2FsaWduKTtcclxuXHRcdHRoaXMuYmluZFBvcG92ZXJSZWZzKCk7XHJcblx0XHR0aGlzLmhhbmRsZUNoYW5nZSh0aGlzLmlzT3Blbik7XHJcblx0fVxyXG5cclxuXHRvdmVycmlkZSBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRjb25zdCBvcmlnaW5hbFN0YXRlID0gdGhpcy5pc09wZW47XHJcblx0XHR0aGlzLmhhbmRsZUNoYW5nZShmYWxzZSk7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMuYXV0b0FsaWduICYmICFjaGFuZ2VzLmF1dG9BbGlnbi5maXJzdENoYW5nZSkge1xyXG5cdFx0XHR0aGlzLnBvcG92ZXJDb250ZW50UmVmPy5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBcIlwiKTtcclxuXHRcdFx0dGhpcy5iaW5kUG9wb3ZlclJlZnMoKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmhhbmRsZUNoYW5nZShvcmlnaW5hbFN0YXRlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYmluZFBvcG92ZXJSZWZzKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG5cdFx0Y29uc3QgcGFuZWwgPSBob3N0LnF1ZXJ5U2VsZWN0b3IoXCI6c2NvcGUgPiBzcGFuLmNkcy0tcG9wb3ZlclwiKTtcclxuXHRcdGlmICghcGFuZWwpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wb3BvdmVyQ29udGVudFJlZiA9IHBhbmVsLnF1ZXJ5U2VsZWN0b3IoXCI6c2NvcGUgPiBzcGFuLmNkcy0tcG9wb3Zlci1jb250ZW50XCIpO1xyXG5cdFx0dGhpcy5jYXJldFJlZiA9IHRoaXMucmVzb2x2ZUNhcmV0UmVmKHBhbmVsKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVzb2x2ZUNhcmV0UmVmKHBhbmVsOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XHJcblx0XHRpZiAodGhpcy5hdXRvQWxpZ24pIHtcclxuXHRcdFx0cmV0dXJuIHBhbmVsLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XCJzcGFuLmNkcy0tcG9wb3Zlci1jb250ZW50ID4gc3Bhbi5jZHMtLXBvcG92ZXItY2FyZXQuY2RzLS1wb3BvdmVyLS1hdXRvLWFsaWduXCJcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBwYW5lbC5xdWVyeVNlbGVjdG9yKFwiOnNjb3BlID4gc3Bhbi5jZHMtLXBvcG92ZXItY2FyZXRcIik7XHJcblx0fVxyXG59XHJcbiJdfQ==