@hashicorp/design-system-components
Version:
Helios Design System Components
39 lines (36 loc) • 2.06 kB
JavaScript
import Component from '@glimmer/component';
import { hash } from '@ember/helper';
import { getElementId } from '../../../utils/hds-get-element-id.js';
import HdsRichTooltipToggle from './toggle.js';
import HdsRichTooltipBubble from './bubble.js';
import HdsPopoverPrimitive from '../popover-primitive/index.js';
import { precompileTemplate } from '@ember/template-compilation';
import { setComponentTemplate } from '@ember/component';
/**
* Copyright IBM Corp. 2021, 2025
* SPDX-License-Identifier: MPL-2.0
*/
class HdsRichTooltip extends Component {
_elementId = getElementId(this);
_arrowId = `arrow-${this._elementId}`;
_popoverId = `popover-${this._elementId}`;
get enableSoftEvents() {
return this.args.enableClickEvents !== true;
}
get enableClickEvents() {
return this.args.enableClickEvents ?? false;
}
static {
setComponentTemplate(precompileTemplate("{{!-- IMPORTANT: we need to add \"squishies\" here (~) because otherwise the whitespace added by Ember becomes visible in the underlined text (being an inline element) - See https://handlebarsjs.com/guide/expressions.html#whitespace-control --}}\n<HdsPopoverPrimitive @isOpen={{@isOpen}} @onOpen={{@onOpen}} @onClose={{@onClose}} @onFocusOut={{@onFocusOut}} @enableSoftEvents={{this.enableSoftEvents}} @enableClickEvents={{this.enableClickEvents}} as |PP|><div class=\"hds-rich-tooltip\" ...attributes {{PP.setupPrimitiveContainer}}>\n {{~yield (hash Toggle=(component HdsRichTooltipToggle popoverId=this._popoverId setupPrimitiveToggle=PP.setupPrimitiveToggle isOpen=PP.isOpen) Bubble=(component HdsRichTooltipBubble arrowId=this._arrowId popoverId=this._popoverId setupPrimitivePopover=PP.setupPrimitivePopover isOpen=PP.isOpen) isOpen=PP.isOpen close=PP.hidePopover)~}}\n </div></HdsPopoverPrimitive>", {
strictMode: true,
scope: () => ({
HdsPopoverPrimitive,
hash,
HdsRichTooltipToggle,
HdsRichTooltipBubble
})
}), this);
}
}
export { HdsRichTooltip as default };
//# sourceMappingURL=index.js.map