Sha256: 834897d44f25b524744cbb00ee702e5df618ce92d7b8e7389bd5a75e1b3082c3
Contents?: true
Size: 1.99 KB
Versions: 19
Compression:
Stored size: 1.99 KB
Contents
import "alchemy_admin/components/link_buttons/link_button" import "alchemy_admin/components/link_buttons/unlink_button" class LinkButtons extends HTMLElement { constructor() { super() this.addEventListener("alchemy:link", this) this.addEventListener("alchemy:unlink", this) } handleEvent(event) { switch (event.type) { case "alchemy:link": this.setLink(event.detail) break case "alchemy:unlink": this.removeLink() } event.stopPropagation() } setLink(data) { this.linkUrlField.value = data.url this.linkUrlField.dispatchEvent(new Event("change")) this.linkTitleField.value = data.title this.linkClassField.value = data.type this.linkTargetField.value = data.target this.unlinkButton.linked = true this.elementEditor.setDirty() } removeLink() { this.linkUrlField.value = "" this.linkUrlField.dispatchEvent(new Event("change")) this.linkTitleField.value = "" this.linkClassField.value = "" this.linkTargetField.value = "" this.linkButton.classList.remove("linked") this.unlinkButton.linked = false this.elementEditor.setDirty() } get linkButton() { return this.querySelector('[is="alchemy-link-button"]') } get unlinkButton() { return this.querySelector('[is="alchemy-unlink-button"]') } get ingredientEditor() { const ingredientId = this.dataset.ingredientId return this.parentElement.closest(`[data-ingredient-id='${ingredientId}']`) } get elementEditor() { return this.closest("alchemy-element-editor") } get linkUrlField() { return this.ingredientEditor.querySelector("[data-link-value]") } get linkTitleField() { return this.ingredientEditor.querySelector("[data-link-title]") } get linkTargetField() { return this.ingredientEditor.querySelector("[data-link-target]") } get linkClassField() { return this.ingredientEditor.querySelector("[data-link-class]") } } customElements.define("alchemy-link-buttons", LinkButtons)
Version data entries
19 entries across 19 versions & 1 rubygems