@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
66 lines • 2.29 kB
JavaScript
import { BaseEventObject } from "@aurigma/design-atoms-model/EventObject";
export class HoverHandler {
constructor(_eventManager) {
this._eventManager = _eventManager;
this._currentPermanentHandler = null;
this._currentHandler = null;
this._hoverChangedEvent = new BaseEventObject();
this._onItemRemoved = (e) => {
var _a;
if (((_a = this._currentHandler) === null || _a === void 0 ? void 0 : _a.item) === e.item)
this.hide();
};
this._eventManager.addItemRemoved(this._onItemRemoved);
}
get hoverChanged() {
return this._hoverChangedEvent;
}
hide() {
if (!this._currentHandler)
return;
this._currentHandler = null;
this._hoverChangedEvent.notify();
}
showPermanent(handler) {
if (this._currentPermanentHandler === handler)
return;
this._currentPermanentHandler = handler;
this._hoverChangedEvent.notify();
}
hidePermanent() {
if (!this._currentPermanentHandler)
return;
this._currentPermanentHandler = null;
this._hoverChangedEvent.notify();
}
show(handler) {
if (handler === this._currentHandler)
return;
this._currentHandler = handler;
this._hoverChangedEvent.notify();
}
get currentHandler() {
return this._currentHandler;
}
get label() {
if (!this._currentHandler)
return null;
return this._currentHandler.item.name;
}
get labelPermanent() {
if (!this._currentPermanentHandler)
return null;
if (this._currentPermanentHandler == this._currentHandler)
return null;
return this._currentPermanentHandler.item.name;
}
get rectanglePermanent() {
if (!this._currentPermanentHandler)
return null;
if (this._currentPermanentHandler === this._currentHandler)
return null;
const rectangles = this._currentPermanentHandler.getHighlightRectangles({ includeChildren: false, includeParent: true });
return rectangles[0];
}
}
//# sourceMappingURL=HoverHandler.js.map