"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const isString_1 = __importDefault(require("vanillajs-helpers/isString")); const ensureHTML_1 = __importDefault(require("./ensureHTML")); const inDOM_1 = __importDefault(require("./inDOM")); const isDOMElement_1 = __importDefault(require("./isDOMElement")); /** * Inserts DOM element or plain HTML before a given DOM element * * @param elm - The DOM element to insert elements before * @param insertElm - DOM element or HTML (or selector) to insert * @return The inserted element */ function insertBefore(elm, insertElm) { if (!inDOM_1.default(elm) || isDOMElement_1.default(elm, 'html')) { return null; } if (isString_1.default(insertElm)) { elm.insertAdjacentHTML('beforebegin', ensureHTML_1.default(insertElm)); } else { elm.insertAdjacentElement('beforebegin', insertElm); } return elm.previousElementSibling; } exports.default = insertBefore;