Sha256: 2c36f2175b9fae67bfd0c1a2ee9072de4fff52d34f80ba73a74fd6a747e54453

Contents?: true

Size: 1.56 KB

Versions: 33

Compression:

Stored size: 1.56 KB

Contents

;(function (global) {
  'use strict'

  var $ = global.jQuery
  var GOVUK = global.GOVUK || {}

  // Only show the first {n} items in a list, documentation is in the README.md
  var PrimaryList = function (el, selector) {
    this.$el = $(el)
    this.$extraLinks = this.$el.find('li:not(' + selector + ')')
    // only hide more than one extra link
    if (this.$extraLinks.length > 1) {
      this.addToggleLink()
      this.hideExtraLinks()
    }
  }

  PrimaryList.prototype = {
    toggleText: function () {
      if (this.$extraLinks.length > 1) {
        return '+' + this.$extraLinks.length + ' others'
      } else {
        return '+' + this.$extraLinks.length + ' other'
      }
    },
    addToggleLink: function () {
      this.$toggleLink = $('<a href="#">' + this.toggleText() + '</a>')
      this.$toggleLink.click($.proxy(this.toggleLinks, this))
      this.$toggleLink.insertAfter(this.$el)
    },
    toggleLinks: function (e) {
      e.preventDefault()
      this.$toggleLink.remove()
      this.showExtraLinks()
    },
    hideExtraLinks: function () {
      this.$extraLinks.addClass('visuallyhidden')
      $(window).trigger('govuk.pageSizeChanged')
    },
    showExtraLinks: function () {
      this.$extraLinks.removeClass('visuallyhidden')
      $(window).trigger('govuk.pageSizeChanged')
    }
  }

  GOVUK.PrimaryList = PrimaryList

  GOVUK.primaryLinks = {
    init: function (selector) {
      $(selector).parent().each(function (i, el) {
        new GOVUK.PrimaryList(el, selector) // eslint-disable-line no-new
      })
    }
  }

  global.GOVUK = GOVUK
})(window)

Version data entries

33 entries across 33 versions & 2 rubygems

Version Path
govuk_frontend_toolkit-9.0.1 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-9.0.0 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-8.2.0 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-8.1.0 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-8.0.0 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-7.6.0 app/assets/javascripts/govuk/primary-links.js
idsk_frontend_toolkit-8.4.4 app/assets/javascripts/govuk/primary-links.js
idsk_frontend_toolkit-7.4.3 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-7.5.0 app/assets/javascripts/govuk/primary-links.js
idsk_frontend_toolkit-7.4.2 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-7.4.2 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-7.4.1 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-7.4.0 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-7.3.0 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-7.2.0 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-7.1.0 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-7.0.1 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-7.0.0 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-6.0.4 app/assets/javascripts/govuk/primary-links.js
govuk_frontend_toolkit-6.0.3 app/assets/javascripts/govuk/primary-links.js