Sha256: 8d306d1a83282425625016e6e8d6d6e168e5d3014d065b584d7ddf0568ee999d

Contents?: true

Size: 928 Bytes

Versions: 20

Compression:

Stored size: 928 Bytes

Contents

import Combobox from "models/combobox/base"

Combobox.Validity = Base => class extends Base {
  _markValid() {
    if (this._valueIsInvalid) return

    if (this.hasInvalidClass) {
      this.comboboxTarget.classList.remove(this.invalidClass)
    }

    this.comboboxTarget.removeAttribute("aria-invalid")
    this.comboboxTarget.removeAttribute("aria-errormessage")
  }

  _markInvalid() {
    if (this._valueIsValid) return

    if (this.hasInvalidClass) {
      this.comboboxTarget.classList.add(this.invalidClass)
    }

    this.comboboxTarget.setAttribute("aria-invalid", true)
    this.comboboxTarget.setAttribute("aria-errormessage", `Please select a valid option for ${this.comboboxTarget.name}`)
  }

  get _valueIsValid() {
    return !this._valueIsInvalid
  }

  get _valueIsInvalid() {
    const isRequiredAndEmpty = this.comboboxTarget.required && !this.hiddenFieldTarget.value
    return isRequiredAndEmpty
  }
}

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
hotwire_combobox-0.1.32 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.31 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.30 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.29 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.28 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.27 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.25 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.24 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.23 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.22 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.21 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.20 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.19 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.18 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.17 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.16 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.15 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.14 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.13 app/assets/javascripts/models/combobox/validity.js
hotwire_combobox-0.1.12 app/assets/javascripts/models/combobox/validity.js