govuk_frontend_toolkit 4.18.3 → 4.18.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/.gitignore +1 -0
  3. data/app/assets/CHANGELOG.md +5 -0
  4. data/app/assets/Gruntfile.js +21 -22
  5. data/app/assets/README.md +4 -0
  6. data/app/assets/VERSION.txt +1 -1
  7. data/app/assets/docs/javascript.md +29 -28
  8. data/app/assets/javascripts/govuk/analytics/analytics.js +37 -37
  9. data/app/assets/javascripts/govuk/analytics/download-link-tracker.js +21 -21
  10. data/app/assets/javascripts/govuk/analytics/error-tracking.js +19 -19
  11. data/app/assets/javascripts/govuk/analytics/external-link-tracker.js +23 -24
  12. data/app/assets/javascripts/govuk/analytics/google-analytics-universal-tracker.js +71 -70
  13. data/app/assets/javascripts/govuk/analytics/mailto-link-tracker.js +20 -21
  14. data/app/assets/javascripts/govuk/analytics/print-intent.js +19 -20
  15. data/app/assets/javascripts/govuk/modules.js +33 -32
  16. data/app/assets/javascripts/govuk/modules/auto-track-event.js +18 -18
  17. data/app/assets/javascripts/govuk/multivariate-test.js +83 -85
  18. data/app/assets/javascripts/govuk/primary-links.js +39 -38
  19. data/app/assets/javascripts/govuk/selection-buttons.js +57 -58
  20. data/app/assets/javascripts/govuk/shim-links-with-button-role.js +14 -15
  21. data/app/assets/javascripts/govuk/stick-at-top-when-scrolling.js +70 -70
  22. data/app/assets/javascripts/govuk/stop-scrolling-at-footer.js +74 -75
  23. data/app/assets/javascripts/govuk_toolkit.js +1 -1
  24. data/app/assets/javascripts/stageprompt.js +24 -25
  25. data/app/assets/javascripts/vendor/jquery/jquery.player.min.js +1 -1
  26. data/app/assets/package.json +10 -3
  27. data/app/assets/spec/manifest.js +2 -0
  28. data/app/assets/spec/support/console-runner.js +0 -1
  29. data/app/assets/spec/unit/analytics/analytics.spec.js +51 -47
  30. data/app/assets/spec/unit/analytics/download-link-tracker.spec.js +59 -51
  31. data/app/assets/spec/unit/analytics/error-tracking.spec.js +35 -30
  32. data/app/assets/spec/unit/analytics/external-link-tracker.spec.js +69 -61
  33. data/app/assets/spec/unit/analytics/google-analytics-universal-tracker.spec.js +129 -122
  34. data/app/assets/spec/unit/analytics/mailto-link-tracker.spec.js +55 -47
  35. data/app/assets/spec/unit/modules.spec.js +82 -78
  36. data/app/assets/spec/unit/modules/auto-track-event.spec.js +45 -40
  37. data/app/assets/spec/unit/multivariate-test.spec.js +150 -145
  38. data/app/assets/spec/unit/primary-links.spec.js +53 -47
  39. data/app/assets/spec/unit/selection-button.spec.js +701 -693
  40. data/app/assets/spec/unit/shim-links-with-button-role.spec.js +33 -28
  41. data/app/assets/spec/unit/show-hide-content.spec.js +5 -1
  42. data/app/assets/spec/unit/stick-at-top-when-scrolling.spec.js +104 -107
  43. metadata +2 -2
@@ -1,30 +1,30 @@
1
- (function(global) {
2
- "use strict";
1
+ ;(function (global) {
2
+ 'use strict'
3
3
 
4
- var GOVUK = global.GOVUK || {};
5
- GOVUK.Modules = GOVUK.Modules || {};
4
+ var GOVUK = global.GOVUK || {}
5
+ GOVUK.Modules = GOVUK.Modules || {}
6
6
 
7
- GOVUK.Modules.AutoTrackEvent = function() {
8
- this.start = function(element) {
9
- var options = {nonInteraction: 1}, // automatic events shouldn't affect bounce rate
10
- category = element.data('track-category'),
11
- action = element.data('track-action'),
12
- label = element.data('track-label'),
13
- value = element.data('track-value');
7
+ GOVUK.Modules.AutoTrackEvent = function () {
8
+ this.start = function (element) {
9
+ var options = { nonInteraction: 1 } // automatic events shouldn't affect bounce rate
10
+ var category = element.data('track-category')
11
+ var action = element.data('track-action')
12
+ var label = element.data('track-label')
13
+ var value = element.data('track-value')
14
14
 
15
- if (typeof label === "string") {
16
- options.label = label;
15
+ if (typeof label === 'string') {
16
+ options.label = label
17
17
  }
18
18
 
19
19
  if (value || value === 0) {
20
- options.value = value;
20
+ options.value = value
21
21
  }
22
22
 
23
23
  if (GOVUK.analytics && GOVUK.analytics.trackEvent) {
24
- GOVUK.analytics.trackEvent(category, action, options);
24
+ GOVUK.analytics.trackEvent(category, action, options)
25
25
  }
26
26
  }
27
- };
27
+ }
28
28
 
29
- global.GOVUK = GOVUK;
30
- })(window);
29
+ global.GOVUK = GOVUK
30
+ })(window)
@@ -1,8 +1,8 @@
1
- (function(global) {
2
- "use strict";
1
+ ;(function (global) {
2
+ 'use strict'
3
3
 
4
- var $ = global.jQuery;
5
- var GOVUK = global.GOVUK || {};
4
+ var $ = global.jQuery
5
+ var GOVUK = global.GOVUK || {}
6
6
 
7
7
  // A multivariate test framework
8
8
  //
@@ -10,72 +10,70 @@
10
10
  //
11
11
  // Full documentation is in README.md.
12
12
  //
13
- function MultivariateTest(options) {
14
- this.$el = $(options.el);
15
- this._loadOption(options, 'name');
16
- this._loadOption(options, 'customDimensionIndex', null);
17
- this._loadOption(options, 'cohorts');
18
- this._loadOption(options, 'runImmediately', true);
19
- this._loadOption(options, 'defaultWeight', 1);
20
- this._loadOption(options, 'contentExperimentId', null);
21
- this._loadOption(options, 'cookieDuration', 30);
13
+ function MultivariateTest (options) {
14
+ this.$el = $(options.el)
15
+ this._loadOption(options, 'name')
16
+ this._loadOption(options, 'customDimensionIndex', null)
17
+ this._loadOption(options, 'cohorts')
18
+ this._loadOption(options, 'runImmediately', true)
19
+ this._loadOption(options, 'defaultWeight', 1)
20
+ this._loadOption(options, 'contentExperimentId', null)
21
+ this._loadOption(options, 'cookieDuration', 30)
22
22
 
23
23
  if (this.runImmediately) {
24
- this.run();
24
+ this.run()
25
25
  }
26
26
  }
27
27
 
28
- MultivariateTest.prototype._loadOption = function(options, key, defaultValue) {
28
+ MultivariateTest.prototype._loadOption = function (options, key, defaultValue) {
29
29
  if (options[key] !== undefined) {
30
- this[key] = options[key];
30
+ this[key] = options[key]
31
31
  }
32
32
  if (this[key] === undefined) {
33
33
  if (defaultValue === undefined) {
34
- throw new Error(key+" option is required for a multivariate test");
35
- }
36
- else {
37
- this[key] = defaultValue;
34
+ throw new Error(key + ' option is required for a multivariate test')
35
+ } else {
36
+ this[key] = defaultValue
38
37
  }
39
38
  }
40
- };
39
+ }
41
40
 
42
- MultivariateTest.prototype.run = function() {
43
- var cohort = this.getCohort();
41
+ MultivariateTest.prototype.run = function () {
42
+ var cohort = this.getCohort()
44
43
  if (cohort) {
45
- this.setUpContentExperiment(cohort);
46
- this.setCustomVar(cohort);
47
- this.executeCohort(cohort);
48
- this.createDummyEvent(cohort);
44
+ this.setUpContentExperiment(cohort)
45
+ this.setCustomVar(cohort)
46
+ this.executeCohort(cohort)
47
+ this.createDummyEvent(cohort)
49
48
  }
50
- };
49
+ }
51
50
 
52
- MultivariateTest.prototype.executeCohort = function(cohort) {
53
- var cohortObj = this.cohorts[cohort];
51
+ MultivariateTest.prototype.executeCohort = function (cohort) {
52
+ var cohortObj = this.cohorts[cohort]
54
53
  if (cohortObj.callback) {
55
- if (typeof cohortObj.callback === "string") {
56
- this[cohortObj.callback]();
57
- }
58
- else {
59
- cohortObj.callback();
54
+ if (typeof cohortObj.callback === 'string') {
55
+ this[cohortObj.callback]()
56
+ } else {
57
+ cohortObj.callback()
60
58
  }
61
59
  }
62
60
  if (cohortObj.html) {
63
- this.$el.html(cohortObj.html);
64
- this.$el.show();
61
+ this.$el.html(cohortObj.html)
62
+ this.$el.show()
65
63
  }
66
- };
64
+ }
67
65
 
68
66
  // Get the current cohort or assign one if it has not been already
69
- MultivariateTest.prototype.getCohort = function() {
70
- var cohort = GOVUK.cookie(this.cookieName());
67
+ MultivariateTest.prototype.getCohort = function () {
68
+ var cohort = GOVUK.cookie(this.cookieName())
71
69
  if (!cohort || !this.cohorts[cohort]) {
72
- cohort = this.chooseRandomCohort();
73
- GOVUK.cookie(this.cookieName(), cohort, {days: this.cookieDuration});
70
+ cohort = this.chooseRandomCohort()
71
+ GOVUK.cookie(this.cookieName(), cohort, {days: this.cookieDuration})
74
72
  }
75
- return cohort;
76
- };
73
+ return cohort
74
+ }
77
75
 
78
- MultivariateTest.prototype.setCustomVar = function(cohort) {
76
+ MultivariateTest.prototype.setCustomVar = function (cohort) {
79
77
  if (this.customDimensionIndex &&
80
78
  this.customDimensionIndex.constructor === Array) {
81
79
  for (var index = 0; index < this.customDimensionIndex.length; index++) {
@@ -84,64 +82,64 @@
84
82
  } else if (this.customDimensionIndex) {
85
83
  this.setDimension(cohort, this.customDimensionIndex)
86
84
  }
87
- };
85
+ }
88
86
 
89
- MultivariateTest.prototype.setDimension = function(cohort, dimension) {
87
+ MultivariateTest.prototype.setDimension = function (cohort, dimension) {
90
88
  GOVUK.analytics.setDimension(
91
89
  dimension,
92
- this.cookieName() + "__" + cohort
93
- );
94
- };
95
-
96
- MultivariateTest.prototype.setUpContentExperiment = function(cohort) {
97
- var contentExperimentId = this.contentExperimentId;
98
- var cohortVariantId = this.cohorts[cohort]['variantId'];
99
- if(typeof contentExperimentId !== 'undefined' &&
90
+ this.cookieName() + '__' + cohort
91
+ )
92
+ }
93
+
94
+ MultivariateTest.prototype.setUpContentExperiment = function (cohort) {
95
+ var contentExperimentId = this.contentExperimentId
96
+ var cohortVariantId = this.cohorts[cohort]['variantId']
97
+ if (typeof contentExperimentId !== 'undefined' &&
100
98
  typeof cohortVariantId !== 'undefined' &&
101
- typeof window.ga === "function"){
102
- window.ga('set', 'expId', contentExperimentId);
103
- window.ga('set', 'expVar', cohortVariantId);
99
+ typeof window.ga === 'function') {
100
+ window.ga('set', 'expId', contentExperimentId)
101
+ window.ga('set', 'expVar', cohortVariantId)
104
102
  };
105
- };
103
+ }
106
104
 
107
- MultivariateTest.prototype.createDummyEvent = function(cohort) {
105
+ MultivariateTest.prototype.createDummyEvent = function (cohort) {
108
106
  // Fire off a dummy event to set the custom var and the content experiment on the page.
109
107
  // Ideally we'd be able to call setCustomVar before trackPageview,
110
108
  // but would need reordering the existing GA code.
111
- GOVUK.analytics.trackEvent(this.cookieName(), 'run', {nonInteraction:true});
112
- };
109
+ GOVUK.analytics.trackEvent(this.cookieName(), 'run', {nonInteraction: true})
110
+ }
113
111
 
114
- MultivariateTest.prototype.weightedCohortNames = function() {
115
- var names = [],
116
- defaultWeight = this.defaultWeight;
112
+ MultivariateTest.prototype.weightedCohortNames = function () {
113
+ var names = []
114
+ var defaultWeight = this.defaultWeight
117
115
 
118
- $.each(this.cohorts, function(key, cohortSettings) {
119
- var numberForCohort, i;
116
+ $.each(this.cohorts, function (key, cohortSettings) {
117
+ var numberForCohort, i
120
118
 
121
- if (typeof cohortSettings.weight === 'undefined'){
122
- numberForCohort = defaultWeight;
119
+ if (typeof cohortSettings.weight === 'undefined') {
120
+ numberForCohort = defaultWeight
123
121
  } else {
124
- numberForCohort = cohortSettings.weight;
122
+ numberForCohort = cohortSettings.weight
125
123
  }
126
124
 
127
- for(i=0; i<numberForCohort; i++){
128
- names.push(key);
125
+ for (i = 0; i < numberForCohort; i++) {
126
+ names.push(key)
129
127
  }
130
- });
128
+ })
131
129
 
132
- return names;
133
- };
130
+ return names
131
+ }
134
132
 
135
- MultivariateTest.prototype.chooseRandomCohort = function() {
136
- var names = this.weightedCohortNames();
137
- return names[Math.floor(Math.random() * names.length)];
138
- };
133
+ MultivariateTest.prototype.chooseRandomCohort = function () {
134
+ var names = this.weightedCohortNames()
135
+ return names[Math.floor(Math.random() * names.length)]
136
+ }
139
137
 
140
- MultivariateTest.prototype.cookieName = function() {
141
- return "multivariatetest_cohort_" + this.name;
142
- };
138
+ MultivariateTest.prototype.cookieName = function () {
139
+ return 'multivariatetest_cohort_' + this.name
140
+ }
143
141
 
144
- GOVUK.MultivariateTest = MultivariateTest;
142
+ GOVUK.MultivariateTest = MultivariateTest
145
143
 
146
- global.GOVUK = GOVUK;
147
- })(window);
144
+ global.GOVUK = GOVUK
145
+ })(window)
@@ -1,56 +1,57 @@
1
- (function(global) {
2
- "use strict";
1
+ ;(function (global) {
2
+ 'use strict'
3
3
 
4
- var $ = global.jQuery;
5
- var GOVUK = global.GOVUK || {};
4
+ var $ = global.jQuery
5
+ var GOVUK = global.GOVUK || {}
6
6
 
7
7
  // Only show the first {n} items in a list, documentation is in the README.md
8
- var PrimaryList = function(el, selector){
9
- this.$el = $(el);
10
- this.$extraLinks = this.$el.find('li:not('+selector+')');
8
+ var PrimaryList = function (el, selector) {
9
+ this.$el = $(el)
10
+ this.$extraLinks = this.$el.find('li:not(' + selector + ')')
11
11
  // only hide more than one extra link
12
- if(this.$extraLinks.length > 1){
13
- this.addToggleLink();
14
- this.hideExtraLinks();
12
+ if (this.$extraLinks.length > 1) {
13
+ this.addToggleLink()
14
+ this.hideExtraLinks()
15
15
  }
16
- };
16
+ }
17
+
17
18
  PrimaryList.prototype = {
18
- toggleText: function(){
19
- if(this.$extraLinks.length > 1){
20
- return '+'+ this.$extraLinks.length +' others';
19
+ toggleText: function () {
20
+ if (this.$extraLinks.length > 1) {
21
+ return '+' + this.$extraLinks.length + ' others'
21
22
  } else {
22
- return '+'+ this.$extraLinks.length +' other';
23
+ return '+' + this.$extraLinks.length + ' other'
23
24
  }
24
25
  },
25
- addToggleLink: function(){
26
- this.$toggleLink = $('<a href="#">'+ this.toggleText() + '</a>');
27
- this.$toggleLink.click($.proxy(this.toggleLinks, this));
28
- this.$toggleLink.insertAfter(this.$el);
26
+ addToggleLink: function () {
27
+ this.$toggleLink = $('<a href="#">' + this.toggleText() + '</a>')
28
+ this.$toggleLink.click($.proxy(this.toggleLinks, this))
29
+ this.$toggleLink.insertAfter(this.$el)
29
30
  },
30
- toggleLinks: function(e){
31
- e.preventDefault();
32
- this.$toggleLink.remove();
33
- this.showExtraLinks();
31
+ toggleLinks: function (e) {
32
+ e.preventDefault()
33
+ this.$toggleLink.remove()
34
+ this.showExtraLinks()
34
35
  },
35
- hideExtraLinks: function(){
36
- this.$extraLinks.addClass('visuallyhidden');
37
- $(window).trigger('govuk.pageSizeChanged');
36
+ hideExtraLinks: function () {
37
+ this.$extraLinks.addClass('visuallyhidden')
38
+ $(window).trigger('govuk.pageSizeChanged')
38
39
  },
39
- showExtraLinks: function(){
40
- this.$extraLinks.removeClass('visuallyhidden');
41
- $(window).trigger('govuk.pageSizeChanged');
40
+ showExtraLinks: function () {
41
+ this.$extraLinks.removeClass('visuallyhidden')
42
+ $(window).trigger('govuk.pageSizeChanged')
42
43
  }
43
- };
44
+ }
44
45
 
45
- GOVUK.PrimaryList = PrimaryList;
46
+ GOVUK.PrimaryList = PrimaryList
46
47
 
47
48
  GOVUK.primaryLinks = {
48
- init: function(selector){
49
- $(selector).parent().each(function(i, el){
50
- new GOVUK.PrimaryList(el, selector);
51
- });
49
+ init: function (selector) {
50
+ $(selector).parent().each(function (i, el) {
51
+ new GOVUK.PrimaryList(el, selector) // eslint-disable-line no-new
52
+ })
52
53
  }
53
- };
54
+ }
54
55
 
55
- global.GOVUK = GOVUK;
56
- })(window);
56
+ global.GOVUK = GOVUK
57
+ })(window)
@@ -1,113 +1,112 @@
1
- (function (global) {
2
- "use strict";
1
+ ;(function (global) {
2
+ 'use strict'
3
3
 
4
- var $ = global.jQuery;
5
- var GOVUK = global.GOVUK || {};
4
+ var $ = global.jQuery
5
+ var GOVUK = global.GOVUK || {}
6
6
 
7
7
  var SelectionButtons = function (elmsOrSelector, opts) {
8
-
9
- this.selectedClass = 'selected';
10
- this.focusedClass = 'focused';
11
- this.radioClass = 'selection-button-radio';
12
- this.checkboxClass = 'selection-button-checkbox';
8
+ this.selectedClass = 'selected'
9
+ this.focusedClass = 'focused'
10
+ this.radioClass = 'selection-button-radio'
11
+ this.checkboxClass = 'selection-button-checkbox'
13
12
  if (opts !== undefined) {
14
13
  $.each(opts, function (optionName, optionObj) {
15
- this[optionName] = optionObj;
16
- }.bind(this));
14
+ this[optionName] = optionObj
15
+ }.bind(this))
17
16
  }
18
17
  if (typeof elmsOrSelector === 'string') {
19
- this.selector = elmsOrSelector;
20
- this.setInitialState($(this.selector));
18
+ this.selector = elmsOrSelector
19
+ this.setInitialState($(this.selector))
21
20
  } else if (elmsOrSelector !== undefined) {
22
- this.$elms = elmsOrSelector;
23
- this.setInitialState(this.$elms);
21
+ this.$elms = elmsOrSelector
22
+ this.setInitialState(this.$elms)
24
23
  }
25
- this.addEvents();
26
- };
24
+ this.addEvents()
25
+ }
27
26
  SelectionButtons.prototype.addEvents = function () {
28
27
  if (typeof this.$elms !== 'undefined') {
29
- this.addElementLevelEvents();
28
+ this.addElementLevelEvents()
30
29
  } else {
31
- this.addDocumentLevelEvents();
30
+ this.addDocumentLevelEvents()
32
31
  }
33
- };
32
+ }
34
33
  SelectionButtons.prototype.setInitialState = function ($elms) {
35
34
  $elms.each(function (idx, elm) {
36
- var $elm = $(elm);
35
+ var $elm = $(elm)
37
36
 
38
- var labelClass = $elm.attr('type') === 'radio' ? this.radioClass : this.checkboxClass;
39
- $elm.parent('label').addClass(labelClass);
37
+ var labelClass = $elm.attr('type') === 'radio' ? this.radioClass : this.checkboxClass
38
+ $elm.parent('label').addClass(labelClass)
40
39
  if ($elm.is(':checked')) {
41
- this.markSelected($elm);
40
+ this.markSelected($elm)
42
41
  }
43
- }.bind(this));
44
- };
42
+ }.bind(this))
43
+ }
45
44
  SelectionButtons.prototype.markFocused = function ($elm, state) {
46
45
  if (state === 'focused') {
47
- $elm.parent('label').addClass(this.focusedClass);
46
+ $elm.parent('label').addClass(this.focusedClass)
48
47
  } else {
49
- $elm.parent('label').removeClass(this.focusedClass);
48
+ $elm.parent('label').removeClass(this.focusedClass)
50
49
  }
51
- };
50
+ }
52
51
  SelectionButtons.prototype.markSelected = function ($elm) {
53
- var radioName;
52
+ var radioName
54
53
 
55
54
  if ($elm.attr('type') === 'radio') {
56
- radioName = $elm.attr('name');
55
+ radioName = $elm.attr('name')
57
56
  $($elm[0].form).find('input[name="' + radioName + '"]')
58
57
  .parent('label')
59
- .removeClass(this.selectedClass);
60
- $elm.parent('label').addClass(this.selectedClass);
58
+ .removeClass(this.selectedClass)
59
+ $elm.parent('label').addClass(this.selectedClass)
61
60
  } else { // checkbox
62
61
  if ($elm.is(':checked')) {
63
- $elm.parent('label').addClass(this.selectedClass);
62
+ $elm.parent('label').addClass(this.selectedClass)
64
63
  } else {
65
- $elm.parent('label').removeClass(this.selectedClass);
64
+ $elm.parent('label').removeClass(this.selectedClass)
66
65
  }
67
66
  }
68
- };
67
+ }
69
68
  SelectionButtons.prototype.addElementLevelEvents = function () {
70
- this.clickHandler = this.getClickHandler();
71
- this.focusHandler = this.getFocusHandler({ 'level' : 'element' });
69
+ this.clickHandler = this.getClickHandler()
70
+ this.focusHandler = this.getFocusHandler({ 'level': 'element' })
72
71
 
73
72
  this.$elms
74
73
  .on('click', this.clickHandler)
75
- .on('focus blur', this.focusHandler);
76
- };
74
+ .on('focus blur', this.focusHandler)
75
+ }
77
76
  SelectionButtons.prototype.addDocumentLevelEvents = function () {
78
- this.clickHandler = this.getClickHandler();
79
- this.focusHandler = this.getFocusHandler({ 'level' : 'document' });
77
+ this.clickHandler = this.getClickHandler()
78
+ this.focusHandler = this.getFocusHandler({ 'level': 'document' })
80
79
 
81
80
  $(document)
82
81
  .on('click', this.selector, this.clickHandler)
83
- .on('focus blur', this.selector, this.focusHandler);
84
- };
82
+ .on('focus blur', this.selector, this.focusHandler)
83
+ }
85
84
  SelectionButtons.prototype.getClickHandler = function () {
86
85
  return function (e) {
87
- this.markSelected($(e.target));
88
- }.bind(this);
89
- };
86
+ this.markSelected($(e.target))
87
+ }.bind(this)
88
+ }
90
89
  SelectionButtons.prototype.getFocusHandler = function (opts) {
91
- var focusEvent = (opts.level === 'document') ? 'focusin' : 'focus';
90
+ var focusEvent = (opts.level === 'document') ? 'focusin' : 'focus'
92
91
 
93
92
  return function (e) {
94
- var state = (e.type === focusEvent) ? 'focused' : 'blurred';
93
+ var state = (e.type === focusEvent) ? 'focused' : 'blurred'
95
94
 
96
- this.markFocused($(e.target), state);
97
- }.bind(this);
98
- };
95
+ this.markFocused($(e.target), state)
96
+ }.bind(this)
97
+ }
99
98
  SelectionButtons.prototype.destroy = function () {
100
99
  if (typeof this.selector !== 'undefined') {
101
100
  $(document)
102
101
  .off('click', this.selector, this.clickHandler)
103
- .off('focus blur', this.selector, this.focusHandler);
102
+ .off('focus blur', this.selector, this.focusHandler)
104
103
  } else {
105
104
  this.$elms
106
105
  .off('click', this.clickHandler)
107
- .off('focus blur', this.focusHandler);
106
+ .off('focus blur', this.focusHandler)
108
107
  }
109
- };
108
+ }
110
109
 
111
- GOVUK.SelectionButtons = SelectionButtons;
112
- global.GOVUK = GOVUK;
113
- })(window);
110
+ GOVUK.SelectionButtons = SelectionButtons
111
+ global.GOVUK = GOVUK
112
+ })(window)