Sha256: a684097efec7bf66a00f3941a0d7f0205a0e3e58bef918a0af8b6739fc9f454a

Contents?: true

Size: 1.32 KB

Versions: 66

Compression:

Stored size: 1.32 KB

Contents

/*
  Toggle the class 'focus' on input boxes on element focus/blur
  Used by the search component but generic enough for reuse
*/
window.GOVUK = window.GOVUK || {}
window.GOVUK.Modules = window.GOVUK.Modules || {};

(function (Modules) {
  function GemToggleInputClassOnFocus ($module) {
    this.$module = $module
  }

  GemToggleInputClassOnFocus.prototype.init = function () {
    this.toggleTarget = this.$module.querySelector('.js-class-toggle')
    this.$module.addFocusClass = this.addFocusClass.bind(this)
    this.$module.removeFocusClassFromEmptyInput = this.removeFocusClassFromEmptyInput.bind(this)

    if (!this.inputIsEmpty()) {
      this.addFocusClass()
    }

    this.toggleTarget.addEventListener('focus', this.$module.addFocusClass)
    this.toggleTarget.addEventListener('blur', this.$module.removeFocusClassFromEmptyInput)
  }

  GemToggleInputClassOnFocus.prototype.inputIsEmpty = function () {
    return this.toggleTarget.value === ''
  }

  GemToggleInputClassOnFocus.prototype.addFocusClass = function () {
    this.toggleTarget.classList.add('focus')
  }

  GemToggleInputClassOnFocus.prototype.removeFocusClassFromEmptyInput = function () {
    if (this.inputIsEmpty()) {
      this.toggleTarget.classList.remove('focus')
    }
  }

  Modules.GemToggleInputClassOnFocus = GemToggleInputClassOnFocus
})(window.GOVUK.Modules)

Version data entries

66 entries across 66 versions & 1 rubygems

Version Path
govuk_publishing_components-55.1.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-55.0.1 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-55.0.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-54.0.1 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-54.0.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-53.0.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-52.1.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-52.0.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-51.2.1 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-51.2.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-51.1.1 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-51.1.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-51.0.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-50.0.1 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-50.0.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-49.1.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-49.0.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-48.0.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-47.0.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
govuk_publishing_components-46.4.0 app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js