govuk_frontend_toolkit 3.2.0 → 3.2.1

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.
@@ -1,3 +1,7 @@
1
+ # 3.2.1
2
+
3
+ - Fix: Analytics - don't run error and print plugins on load
4
+
1
5
  # 3.2.0
2
6
 
3
7
  - Add: Analytics API https://github.com/alphagov/govuk_frontend_toolkit/pull/162 https://github.com/alphagov/govuk_frontend_toolkit/blob/master/docs/analytics.md
@@ -1 +1 @@
1
- 3.2.0
1
+ 3.2.1
@@ -45,6 +45,10 @@ The minimum you need to use the analytics function is:
45
45
  // Set custom dimensions before tracking pageviews
46
46
  // GOVUK.analytics.setDimension(…)
47
47
 
48
+ // Activate any event plugins eg. print intent, error tracking
49
+ // GOVUK.analyticsPlugins.error();
50
+ // GOVUK.analyticsPlugins.printIntent();
51
+
48
52
  // Track initial pageview
49
53
  GOVUK.analytics.trackPageview();
50
54
  })();
@@ -151,8 +155,8 @@ function setPixelDensityDimension(pixelDensity) {
151
155
 
152
156
  ## Print tracking
153
157
 
154
- Pull `print-intent.js` into your project, after analytics has been initialised, to track when users are attempting to print content.
158
+ Pull `print-intent.js` into your project, and initialise it after analytics (see [Create an analytics tracker, above](#create-an-analytics-tracker)), to track when users are attempting to print content.
155
159
 
156
160
  ## Error tracking
157
161
 
158
- Pull `error-tracking.js` into your project, after analytics has been initialised, to track JavaScript errors.
162
+ Pull `error-tracking.js` into your project, and initialise it after analytics (see [Create an analytics tracker, above](#create-an-analytics-tracker)), to track JavaScript errors.
@@ -2,21 +2,26 @@
2
2
  (function() {
3
3
 
4
4
  "use strict";
5
- var trackJavaScriptError = function (e) {
6
- var errorSource = e.filename + ': ' + e.lineno;
7
- GOVUK.analytics.trackEvent('JavaScript Error', e.message, {
8
- label: errorSource,
9
- value: 1,
10
- nonInteraction: true
11
- });
12
- };
13
5
 
14
- if (window.addEventListener) {
15
- window.addEventListener('error', trackJavaScriptError, false);
16
- } else if (window.attachEvent) {
17
- window.attachEvent('onerror', trackJavaScriptError);
18
- } else {
19
- window.onerror = trackJavaScriptError;
6
+ GOVUK.analyticsPlugins = GOVUK.analyticsPlugins || {};
7
+
8
+ GOVUK.analyticsPlugins.error = function () {
9
+ var trackJavaScriptError = function (e) {
10
+ var errorSource = e.filename + ': ' + e.lineno;
11
+ GOVUK.analytics.trackEvent('JavaScript Error', e.message, {
12
+ label: errorSource,
13
+ value: 1,
14
+ nonInteraction: true
15
+ });
16
+ };
17
+
18
+ if (window.addEventListener) {
19
+ window.addEventListener('error', trackJavaScriptError, false);
20
+ } else if (window.attachEvent) {
21
+ window.attachEvent('onerror', trackJavaScriptError);
22
+ } else {
23
+ window.onerror = trackJavaScriptError;
24
+ }
20
25
  }
21
26
 
22
27
  }());
@@ -1,31 +1,36 @@
1
1
  // Extension to monitor attempts to print pages.
2
2
  (function () {
3
-
4
3
  "use strict";
5
- var printAttempt = (function () {
6
- GOVUK.analytics.trackEvent('Print Intent', document.location.pathname);
7
- });
8
4
 
9
- // Most browsers
10
- if (window.matchMedia) {
11
- var mediaQueryList = window.matchMedia('print'),
12
- mqlListenerCount = 0;
13
- mediaQueryList.addListener(function (mql) {
14
- if (!mql.matches && mqlListenerCount === 0) {
15
- printAttempt();
16
- mqlListenerCount++;
17
- // If we try and print again in 3 seconds, don't log it
18
- window.setTimeout(function () {
19
- mqlListenerCount = 0;
20
- // printing will be tracked again now
21
- }, 1e3);
22
- }
5
+ GOVUK.analyticsPlugins = GOVUK.analyticsPlugins || {};
6
+
7
+ GOVUK.analyticsPlugins.printIntent = function () {
8
+ var printAttempt = (function () {
9
+ GOVUK.analytics.trackEvent('Print Intent', document.location.pathname);
23
10
  });
24
- }
25
11
 
26
- // IE < 10
27
- if (window.onafterprint) {
28
- window.onafterprint = printAttempt;
29
- }
12
+ // Most browsers
13
+ if (window.matchMedia) {
14
+ var mediaQueryList = window.matchMedia('print'),
15
+ mqlListenerCount = 0;
16
+ mediaQueryList.addListener(function (mql) {
17
+ if (!mql.matches && mqlListenerCount === 0) {
18
+ printAttempt();
19
+ mqlListenerCount++;
20
+ // If we try and print again in 3 seconds, don't log it
21
+ window.setTimeout(function () {
22
+ mqlListenerCount = 0;
23
+ // printing will be tracked again now
24
+ }, 1e3);
25
+ }
26
+ });
27
+ }
28
+
29
+ // IE < 10
30
+ if (window.onafterprint) {
31
+ window.onafterprint = printAttempt;
32
+ }
33
+
34
+ };
30
35
 
31
36
  }());
@@ -20,13 +20,17 @@
20
20
  box-shadow: $shadow;
21
21
  }
22
22
 
23
- @mixin scale($x, $y) {
23
+ @mixin scale($x, $y, $transform-origin: 50% 50% 0) {
24
24
  // $x and $y should be numeric values without units
25
25
  -webkit-transform: scale($x, $y); // Still in use now, started at: Chrome 4.0, Safari 3.1, Mobile Safari 3.2, Android 2.1
26
26
  -moz-transform: scale($x, $y); // Firefox 3.5 to 15.0
27
27
  -ms-transform: scale($x, $y); // IE9 only
28
- -o-transform: scale($x, $y); // Opera 10.5 to 12.0
29
28
  transform: scale($x, $y);
29
+
30
+ -webkit-transform-origin: $transform-origin; // Chrome, Safari 3.1
31
+ -moz-transform-origin: $transform-origin; // Firefox 10 to 15.0
32
+ -ms-transform-origin: $transform-origin; // IE9
33
+ transform-origin: $transform-origin;
30
34
  }
31
35
 
32
36
  @mixin translate($x, $y) {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_frontend_toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -288,7 +288,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
288
288
  version: '0'
289
289
  segments:
290
290
  - 0
291
- hash: -1949845834061421958
291
+ hash: 3608935864278764479
292
292
  required_rubygems_version: !ruby/object:Gem::Requirement
293
293
  none: false
294
294
  requirements:
@@ -297,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
297
297
  version: '0'
298
298
  segments:
299
299
  - 0
300
- hash: -1949845834061421958
300
+ hash: 3608935864278764479
301
301
  requirements: []
302
302
  rubyforge_project:
303
303
  rubygems_version: 1.8.23