18 lines
408 B
JavaScript
18 lines
408 B
JavaScript
import { Controller } from "@hotwired/stimulus"
|
|
|
|
export default class extends Controller {
|
|
click(event) {
|
|
if (this.#isClickable && !this.#shouldIgnore(event)) {
|
|
this.element.click()
|
|
}
|
|
}
|
|
|
|
#shouldIgnore(event) {
|
|
return event.defaultPrevented || event.target.closest("input, textarea")
|
|
}
|
|
|
|
get #isClickable() {
|
|
return getComputedStyle(this.element).pointerEvents !== "none"
|
|
}
|
|
}
|