@inaccess-fang/ui-components
Version:
The Inaccess UI Components Library for the Front-end projects
45 lines • 4.95 kB
JavaScript
import { Directive, ElementRef, Input } from '@angular/core';
import tippy from 'tippy.js';
tippy.setDefaultProps({
ignoreAttributes: true,
arrow: false,
maxWidth: '300px',
trigger: 'mouseenter',
zIndex: 99999,
});
export class FangPopoverDirective {
constructor(el) {
this.el = el;
}
ngOnChanges(changes) {
if (changes['options']) {
if (this.options && !this.instance) {
this.instance = tippy(this.el.nativeElement, this.options);
}
else if (this.options && this.instance) {
this.instance.setProps(this.options);
}
else if ((!this.options || !this.options.content) && this.instance) {
this.instance.destroy();
this.instance = undefined;
}
}
if (changes['content'] && this.instance) {
this.instance.setContent(this.content);
}
}
ngOnDestroy() {
this.instance && this.instance.destroy();
}
}
FangPopoverDirective.decorators = [
{ type: Directive, args: [{ selector: '[fang-popover]' },] }
];
FangPopoverDirective.ctorParameters = () => [
{ type: ElementRef }
];
FangPopoverDirective.propDecorators = {
options: [{ type: Input, args: ['fang-popover',] }],
content: [{ type: Input, args: ['content',] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFuZy1wb3BvdmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9pYXNvbmFzL0Rlc2t0b3AvY3VycmVudC9mYW5nLXVpLWNvbXBvbmVudHMtbGlicmFyeS9wcm9qZWN0cy9mYW5nLXVpLWNvbXBvbmVudHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvcG9wb3Zlci9mYW5nLXBvcG92ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBc0MsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxLQUFpQyxNQUFNLFVBQVUsQ0FBQztBQUV6RCxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3JCLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsS0FBSyxFQUFFLEtBQUs7SUFDWixRQUFRLEVBQUUsT0FBTztJQUNqQixPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsS0FBSztDQUNLLENBQUMsQ0FBQztBQUdyQixNQUFNLE9BQU8sb0JBQW9CO0lBS2hDLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQ2xDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDakMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBUSxDQUFDO2FBQ2xFO2lCQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7aUJBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7YUFDMUI7U0FDRDtRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0YsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUMsQ0FBQzs7O1lBNUJELFNBQVMsU0FBQyxFQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQzs7O1lBWHBCLFVBQVU7OztzQkFhM0IsS0FBSyxTQUFDLGNBQWM7c0JBQ3BCLEtBQUssU0FBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdGlwcHksIHtDb250ZW50LCBJbnN0YW5jZSwgUHJvcHN9IGZyb20gJ3RpcHB5LmpzJztcblxudGlwcHkuc2V0RGVmYXVsdFByb3BzKHtcblx0aWdub3JlQXR0cmlidXRlczogdHJ1ZSxcblx0YXJyb3c6IGZhbHNlLFxuXHRtYXhXaWR0aDogJzMwMHB4Jyxcblx0dHJpZ2dlcjogJ21vdXNlZW50ZXInLFxuXHR6SW5kZXg6IDk5OTk5LFxufSBhcyBQYXJ0aWFsPFByb3BzPik7XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2ZhbmctcG9wb3Zlcl0nfSlcbmV4cG9ydCBjbGFzcyBGYW5nUG9wb3ZlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblx0QElucHV0KCdmYW5nLXBvcG92ZXInKSBvcHRpb25zOiBQYXJ0aWFsPFByb3BzPjtcblx0QElucHV0KCdjb250ZW50JykgY29udGVudDogQ29udGVudDtcblx0cHVibGljIGluc3RhbmNlOiBJbnN0YW5jZTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0aWYgKGNoYW5nZXNbJ29wdGlvbnMnXSkge1xuXHRcdFx0aWYgKHRoaXMub3B0aW9ucyAmJiAhdGhpcy5pbnN0YW5jZSkge1xuXHRcdFx0XHR0aGlzLmluc3RhbmNlID0gdGlwcHkodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLm9wdGlvbnMpIGFzIGFueTtcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMuaW5zdGFuY2UpIHtcblx0XHRcdFx0dGhpcy5pbnN0YW5jZS5zZXRQcm9wcyh0aGlzLm9wdGlvbnMpO1xuXHRcdFx0fSBlbHNlIGlmICgoIXRoaXMub3B0aW9ucyB8fCAhdGhpcy5vcHRpb25zLmNvbnRlbnQpICYmIHRoaXMuaW5zdGFuY2UpIHtcblx0XHRcdFx0dGhpcy5pbnN0YW5jZS5kZXN0cm95KCk7XG5cdFx0XHRcdHRoaXMuaW5zdGFuY2UgPSB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGNoYW5nZXNbJ2NvbnRlbnQnXSAmJiB0aGlzLmluc3RhbmNlKSB7XG5cdFx0XHR0aGlzLmluc3RhbmNlLnNldENvbnRlbnQodGhpcy5jb250ZW50KTtcblx0XHR9XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLmluc3RhbmNlICYmIHRoaXMuaW5zdGFuY2UuZGVzdHJveSgpO1xuXHR9XG59XG4iXX0=