@kontent-ai/smart-link
Version:
Kontent.ai Smart Link SDK allowing to automatically inject [smart links](https://docs.kontent.ai/tutorials/develop-apps/build-strong-foundation/set-up-editing-from-preview#a-using-smart-links) to Kontent.ai according to manually specified [HTML data attri
85 lines • 3.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.KSLPositionedElement = exports.ElementPositionOffset = void 0;
const KSLCustomElement_1 = require("./KSLCustomElement");
var ElementPositionOffset;
(function (ElementPositionOffset) {
ElementPositionOffset["Bottom"] = "bottom";
ElementPositionOffset["BottomEnd"] = "bottom-end";
ElementPositionOffset["BottomStart"] = "bottom-start";
ElementPositionOffset["Left"] = "left";
ElementPositionOffset["LeftEnd"] = "left-end";
ElementPositionOffset["LeftStart"] = "left-start";
ElementPositionOffset["None"] = "";
ElementPositionOffset["Right"] = "right";
ElementPositionOffset["RightEnd"] = "right-end";
ElementPositionOffset["RightStart"] = "right-start";
ElementPositionOffset["Top"] = "top";
ElementPositionOffset["TopEnd"] = "top-end";
ElementPositionOffset["TopStart"] = "top-start";
})(ElementPositionOffset || (exports.ElementPositionOffset = ElementPositionOffset = {}));
class KSLPositionedElement extends KSLCustomElement_1.KSLCustomElement {
get position() {
return ElementPositionOffset.None;
}
targetRef = null;
connectedCallback() {
if (!this.hasAttribute('tabindex')) {
this.setAttribute('tabindex', '-1');
}
}
disconnectedCallback() {
this.targetRef = null;
}
attachTo(element) {
this.targetRef = element;
}
calculateTopOffset(thisRect, targetRect) {
switch (this.position) {
case ElementPositionOffset.TopStart:
case ElementPositionOffset.Top:
case ElementPositionOffset.TopEnd:
return -thisRect.height;
case ElementPositionOffset.BottomStart:
case ElementPositionOffset.Bottom:
case ElementPositionOffset.BottomEnd:
return targetRect.height;
case ElementPositionOffset.Left:
case ElementPositionOffset.Right:
return (targetRect.height - thisRect.height) / 2;
case ElementPositionOffset.LeftEnd:
case ElementPositionOffset.RightEnd:
return targetRect.height - thisRect.height;
case ElementPositionOffset.LeftStart:
case ElementPositionOffset.RightStart:
case ElementPositionOffset.None:
default:
return 0;
}
}
calculateLeftOffset(thisRect, targetRect) {
switch (this.position) {
case ElementPositionOffset.Top:
case ElementPositionOffset.Bottom:
return (targetRect.width - thisRect.width) / 2;
case ElementPositionOffset.TopEnd:
case ElementPositionOffset.BottomEnd:
return targetRect.width - thisRect.width;
case ElementPositionOffset.LeftStart:
case ElementPositionOffset.Left:
case ElementPositionOffset.LeftEnd:
return -thisRect.width;
case ElementPositionOffset.RightStart:
case ElementPositionOffset.Right:
case ElementPositionOffset.RightEnd:
return targetRect.width;
case ElementPositionOffset.TopStart:
case ElementPositionOffset.BottomStart:
case ElementPositionOffset.None:
default:
return 0;
}
}
}
exports.KSLPositionedElement = KSLPositionedElement;
//# sourceMappingURL=KSLPositionedElement.js.map