Sha256: 346033f61f7a2bd4e4eac730ad07fee928b9909243d540ed33ce79bbb6c528db

Contents?: true

Size: 894 Bytes

Versions: 16

Compression:

Stored size: 894 Bytes

Contents

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

export class DialogLink extends HTMLAnchorElement {
  constructor() {
    super()
    this.addEventListener("click", this)
  }

  handleEvent(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

16 entries across 16 versions & 1 rubygems

Version Path
alchemy_cms-7.3.6 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.2.9 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.3.5 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.2.8 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.3.4 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.3.3 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.3.2 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.2.7 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.3.1 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.3.0 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.2.6 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.2.5 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.2.4 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.2.3 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.2.2 app/javascript/alchemy_admin/components/dialog_link.js
alchemy_cms-7.2.1 app/javascript/alchemy_admin/components/dialog_link.js