Sha256: 9fe5754999e6fa3e2b5df8159a23336739a74a5ac3244e545e782d649851b6f2
Contents?: true
Size: 1.96 KB
Versions: 17
Compression:
Stored size: 1.96 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.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
17 entries across 17 versions & 1 rubygems