Sha256: b4b0df1ce1ab1adc9abca6d22520438783048dd36447ddf8c1ddcfd1c3e756da

Contents?: true

Size: 1.14 KB

Versions: 28

Compression:

Stored size: 1.14 KB

Contents

function morph(from, to) {
  Alpine.morph(from, to, {
    key(el) {
      return el.getAttribute("key") ? el.getAttribute("key") : el.id;
    },
    lookahead: true,
    updating(el, toEl, childrenOnly, skip) {
      if (!el.getAttribute) return;
      if (el.getAttribute("data-morph-strategy") === "replace") {
        el.innerHTML = toEl.innerHTML;
        return skip();
      } else if (el.getAttribute("data-morph-strategy") === "skip") {
        return skip();
      }
    },
  });
}

function getElementSize(el, opts = {}) {
  const style = window.getComputedStyle(el, null);
  return {
    width: opts.includeMargins
      ? el.offsetWidth +
        parseInt(style.getPropertyValue("margin-left")) +
        parseInt(style.getPropertyValue("margin-right"))
      : el.offsetWidth,
    height: opts.includeMargins
      ? el.offsetHeight +
        parseInt(style.getPropertyValue("margin-top")) +
        parseInt(style.getPropertyValue("margin-bottom"))
      : el.offsetHeight,
  };
}

function isExternalLink(link) {
  if (link.href) {
    return link.host !== window.location.host;
  }
  return false;
}

export { morph, getElementSize, isExternalLink };

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
lookbook-2.3.5 assets/js/helpers/dom.js
lookbook-2.3.4 assets/js/helpers/dom.js
lookbook-2.3.3 assets/js/helpers/dom.js
lookbook-2.3.2 assets/js/helpers/dom.js
lookbook-2.3.0 assets/js/helpers/dom.js
lookbook-2.2.2 assets/js/helpers/dom.js
lookbook-2.2.1 assets/js/helpers/dom.js
lookbook-2.2.0 assets/js/helpers/dom.js
lookbook-2.1.1 assets/js/helpers/dom.js
lookbook-2.1.0 assets/js/helpers/dom.js
lookbook-2.0.5 assets/js/helpers/dom.js
lookbook-2.0.4 assets/js/helpers/dom.js
lookbook-2.0.3 assets/js/helpers/dom.js
lookbook-2.0.2 assets/js/helpers/dom.js
lookbook-2.0.1 assets/js/helpers/dom.js
lookbook-2.0.0 assets/js/helpers/dom.js
lookbook-2.0.0.rc.3 assets/js/helpers/dom.js
lookbook-2.0.0.rc.2 assets/js/helpers/dom.js
lookbook-2.0.0.rc.1 assets/js/helpers/dom.js
lookbook-2.0.0.beta.9 assets/js/helpers/dom.js