Sha256: 313c792eccc23483cf68ed4075eb28f73ce513e729d125e40d31cad120f559dc

Contents?: true

Size: 882 Bytes

Versions: 17

Compression:

Stored size: 882 Bytes

Contents

export const DEFAULTS = {
  header_height: 36,
  size: "400x300",
  padding: true,
  title: "",
  modal: true,
  overflow: "visible",
  ready: () => {},
  closed: () => {}
}

export class DialogLink extends HTMLAnchorElement {
  connectedCallback() {
    this.addEventListener("click", (evt) => {
      if (!this.disabled) {
        this.openDialog()
      }
      evt.preventDefault()
    })
  }

  openDialog() {
    this.dialog = new Alchemy.Dialog(
      this.getAttribute("href"),
      this.dialogOptions
    )
    this.dialog.open()
  }

  get dialogOptions() {
    const options = this.dataset.dialogOptions
      ? JSON.parse(this.dataset.dialogOptions)
      : {}
    return {
      ...DEFAULTS,
      ...options
    }
  }

  get disabled() {
    return this.classList.contains("disabled")
  }
}

customElements.define("alchemy-dialog-link", DialogLink, { extends: "a" })

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
alchemy_cms-7.1.13 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.12 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.11 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.10 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.9 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.8 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.7 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.6 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.5 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.4 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.3 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.2 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.1 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.0 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.0.pre.rc1 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.0.pre.b2 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.1.0.pre.b1 app/javascript/alchemy_admin/components/dialog_link.js