Sha256: 75a1021a57db2cd72f952bb631d182433f233320160a1900fc3f4c95e3178821

Contents?: true

Size: 1.66 KB

Versions: 113

Compression:

Stored size: 1.66 KB

Contents

;(function (global) {
  'use strict'

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

  GOVUK.modules = {
    find: function (container) {
      container = container || $('body')

      var modules
      var moduleSelector = '[data-module]'

      modules = container.find(moduleSelector)

      // Container could be a module too
      if (container.is(moduleSelector)) {
        modules = modules.add(container)
      }

      return modules
    },

    start: function (container) {
      var modules = this.find(container)

      for (var i = 0, l = modules.length; i < l; i++) {
        var module
        var element = $(modules[i])
        var type = camelCaseAndCapitalise(element.data('module'))
        var started = element.data('module-started')

        if (typeof GOVUK.Modules[type] === 'function' && !started) {
          module = new GOVUK.Modules[type]()
          module.start(element)
          element.data('module-started', true)
        }
      }

      // eg selectable-table to SelectableTable
      function camelCaseAndCapitalise (string) {
        return capitaliseFirstLetter(camelCase(string))
      }

      // http://stackoverflow.com/questions/6660977/convert-hyphens-to-camel-case-camelcase
      function camelCase (string) {
        return string.replace(/-([a-z])/g, function (g) {
          return g.charAt(1).toUpperCase()
        })
      }

      // http://stackoverflow.com/questions/1026069/capitalize-the-first-letter-of-string-in-javascript
      function capitaliseFirstLetter (string) {
        return string.charAt(0).toUpperCase() + string.slice(1)
      }
    }
  }

  global.GOVUK = GOVUK
})(window)

Version data entries

113 entries across 113 versions & 3 rubygems

Version Path
govuk_frontend_toolkit-9.0.1 app/assets/javascripts/govuk/modules.js
govuk_publishing_components-21.50.1 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.50.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.49.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.48.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.47.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.46.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.45.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.44.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.43.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.42.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.41.4 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.41.3 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.41.2 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.41.1 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.41.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.40.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.39.0 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.38.5 app/assets/javascripts/govuk_publishing_components/modules.js
govuk_publishing_components-21.38.4 app/assets/javascripts/govuk_publishing_components/modules.js