govuk_publishing_components 59.0.1 → 59.1.0
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-form-tracker.js +7 -5
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +2 -1
- data/app/assets/javascripts/govuk_publishing_components/vendor/lux/lux-reporter.js +135 -194
- data/app/assets/stylesheets/govuk_publishing_components/components/_select-with-search.scss +4 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_contact.scss +5 -0
- data/lib/govuk_publishing_components/presenters/single_page_notification_button_helper.rb +1 -1
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46378e005f9b8e1f68f50cae8d843ebc5b06512b3fa8e5900aa8c20d191ea619
|
4
|
+
data.tar.gz: 2bf23af67bcb32305135083c2a94f46f707cfcbfbcfc865611585c8dd1a5ec68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19e615ae1f19be0f1df33f0a39aa0c31db45270c058f1afced9270eb3371e641a6b5a7799c48ab10dfa5383a64fb13eaa03619790456f2cba40d4e611f06b85c
|
7
|
+
data.tar.gz: a581d2ae494882e79f08cf6ad62a56a40705ada55f6084af67a37999e3db81eaf895ef578bdf87f2c1f4750ec0f7a62427e7f54e7f88d193f317e3a04c018307
|
@@ -86,7 +86,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
86
86
|
var inputNodename = elem.nodeName
|
87
87
|
var inputTypes = ['text', 'search', 'email', 'number']
|
88
88
|
|
89
|
-
input.section = labelText
|
89
|
+
input.section = labelText.replace(/\r?\n|\r/g, '')
|
90
90
|
|
91
91
|
var isTextField = inputTypes.indexOf(inputType) !== -1 || inputNodename === 'TEXTAREA'
|
92
92
|
var conditionalField = elem.closest('.govuk-checkboxes__conditional')
|
@@ -119,8 +119,8 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
119
119
|
input.section = legend.innerText
|
120
120
|
}
|
121
121
|
}
|
122
|
-
} else if (inputNodename === 'SELECT' && elem.
|
123
|
-
input.answer =
|
122
|
+
} else if (inputNodename === 'SELECT' && elem.querySelectorAll('option:checked')) {
|
123
|
+
input.answer = Array.from(elem.querySelectorAll('option:checked')).map(function (element) { return element.text }).join(',')
|
124
124
|
} else if (isTextField && elem.value) {
|
125
125
|
if (this.includeTextInputValues || elem.hasAttribute('data-ga4-form-include-input')) {
|
126
126
|
if (this.useTextCount) {
|
@@ -160,9 +160,11 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
160
160
|
if (fieldSection) {
|
161
161
|
if (parentFieldSection) {
|
162
162
|
answers[parentFieldSection] = answers[parentFieldSection] || {}
|
163
|
-
answers[parentFieldSection][fieldSection] =
|
163
|
+
answers[parentFieldSection][fieldSection] = answers[parentFieldSection][fieldSection] || ''
|
164
|
+
answers[parentFieldSection][fieldSection] += ((answers[parentFieldSection][fieldSection] ? ',' : '') + answer)
|
164
165
|
} else {
|
165
|
-
answers[fieldSection] =
|
166
|
+
answers[fieldSection] = answers[fieldSection] || ''
|
167
|
+
answers[fieldSection] += ((answers[fieldSection] ? ',' : '') + answer)
|
166
168
|
}
|
167
169
|
}
|
168
170
|
} else {
|
@@ -71,7 +71,8 @@ window.GOVUK.analyticsGa4.analyticsModules = window.GOVUK.analyticsGa4.analytics
|
|
71
71
|
|
72
72
|
user_created_at: this.getMetaContent('user-created-at'),
|
73
73
|
user_organisation_name: this.getMetaContent('user-organisation-name'),
|
74
|
-
user_role: this.getMetaContent('user-role')
|
74
|
+
user_role: this.getMetaContent('user-role'),
|
75
|
+
user_id: this.getMetaContent('user-id')
|
75
76
|
}
|
76
77
|
}
|
77
78
|
window.GOVUK.analyticsGa4.core.sendData(data)
|
@@ -169,21 +169,6 @@
|
|
169
169
|
return getNavigationEntry().redirectCount > 0 || timing.redirectEnd > 0;
|
170
170
|
}
|
171
171
|
|
172
|
-
var Flags = {
|
173
|
-
InitCalled: 1 << 0,
|
174
|
-
NavTimingNotSupported: 1 << 1,
|
175
|
-
UserTimingNotSupported: 1 << 2,
|
176
|
-
VisibilityStateNotVisible: 1 << 3,
|
177
|
-
BeaconSentFromUnloadHandler: 1 << 4,
|
178
|
-
BeaconSentAfterTimeout: 1 << 5,
|
179
|
-
PageLabelFromDocumentTitle: 1 << 6,
|
180
|
-
PageLabelFromLabelProp: 1 << 7,
|
181
|
-
PageLabelFromGlobalVariable: 1 << 8,
|
182
|
-
PageLabelFromUrlPattern: 1 << 9,
|
183
|
-
PageWasPrerendered: 1 << 10,
|
184
|
-
PageWasBfCacheRestored: 1 << 11,
|
185
|
-
BeaconBlockedByCsp: 1 << 12,
|
186
|
-
};
|
187
172
|
function addFlag(flags, flag) {
|
188
173
|
return flags | flag;
|
189
174
|
}
|
@@ -211,72 +196,6 @@
|
|
211
196
|
}
|
212
197
|
}
|
213
198
|
|
214
|
-
var LogEvent = {
|
215
|
-
// Internal events
|
216
|
-
EvaluationStart: 1,
|
217
|
-
EvaluationEnd: 2,
|
218
|
-
InitCalled: 3,
|
219
|
-
MarkCalled: 4,
|
220
|
-
MeasureCalled: 5,
|
221
|
-
AddDataCalled: 6,
|
222
|
-
SendCalled: 7,
|
223
|
-
ForceSampleCalled: 8,
|
224
|
-
DataCollectionStart: 9,
|
225
|
-
UnloadHandlerTriggered: 10,
|
226
|
-
OnloadHandlerTriggered: 11,
|
227
|
-
MarkLoadTimeCalled: 12,
|
228
|
-
SendCancelledPageHidden: 13,
|
229
|
-
// Data collection events
|
230
|
-
SessionIsSampled: 21,
|
231
|
-
SessionIsNotSampled: 22,
|
232
|
-
MainBeaconSent: 23,
|
233
|
-
UserTimingBeaconSent: 24,
|
234
|
-
InteractionBeaconSent: 25,
|
235
|
-
CustomDataBeaconSent: 26,
|
236
|
-
// Metric information
|
237
|
-
NavigationStart: 41,
|
238
|
-
PerformanceEntryReceived: 42,
|
239
|
-
PerformanceEntryProcessed: 43,
|
240
|
-
TrackingParamAdded: 44,
|
241
|
-
// Errors
|
242
|
-
PerformanceObserverError: 51,
|
243
|
-
InputEventPermissionError: 52,
|
244
|
-
InnerHtmlAccessError: 53,
|
245
|
-
EventTargetAccessError: 54,
|
246
|
-
CookieReadError: 55,
|
247
|
-
CookieSetError: 56,
|
248
|
-
PageLabelEvaluationError: 57,
|
249
|
-
// Browser support messages
|
250
|
-
NavTimingNotSupported: 71,
|
251
|
-
PaintTimingNotSupported: 72,
|
252
|
-
// POST beacon events
|
253
|
-
PostBeaconInitialised: 80,
|
254
|
-
PostBeaconSendCalled: 81,
|
255
|
-
PostBeaconTimeoutReached: 82,
|
256
|
-
PostBeaconSent: 83,
|
257
|
-
PostBeaconAlreadySent: 84,
|
258
|
-
PostBeaconCancelled: 85,
|
259
|
-
PostBeaconStopRecording: 86,
|
260
|
-
PostBeaconMetricRejected: 87,
|
261
|
-
// PostBeaconDisabled: 88, // Not used
|
262
|
-
PostBeaconSendFailed: 89,
|
263
|
-
PostBeaconCSPViolation: 90,
|
264
|
-
PostBeaconCollector: 91,
|
265
|
-
};
|
266
|
-
var Logger = /** @class */ (function () {
|
267
|
-
function Logger() {
|
268
|
-
this.events = [];
|
269
|
-
}
|
270
|
-
Logger.prototype.logEvent = function (event, args) {
|
271
|
-
if (args === void 0) { args = []; }
|
272
|
-
this.events.push([now(), event, args]);
|
273
|
-
};
|
274
|
-
Logger.prototype.getEvents = function () {
|
275
|
-
return this.events;
|
276
|
-
};
|
277
|
-
return Logger;
|
278
|
-
}());
|
279
|
-
|
280
199
|
var START_MARK = "LUX_start";
|
281
200
|
var END_MARK = "LUX_end";
|
282
201
|
var BOOLEAN_TRUE = "true";
|
@@ -336,7 +255,7 @@
|
|
336
255
|
return str;
|
337
256
|
}
|
338
257
|
|
339
|
-
var VERSION = "4.
|
258
|
+
var VERSION = "4.2.0";
|
340
259
|
/**
|
341
260
|
* Returns the version of the script as a float to be stored in legacy systems that do not support
|
342
261
|
* string versions.
|
@@ -398,7 +317,7 @@
|
|
398
317
|
this.sessionId = opts.sessionId;
|
399
318
|
this.pageId = opts.pageId;
|
400
319
|
this.maxMeasureTimeout = window.setTimeout(function () {
|
401
|
-
_this.logger.logEvent(LogEvent.PostBeaconTimeoutReached);
|
320
|
+
_this.logger.logEvent(82 /* LogEvent.PostBeaconTimeoutReached */);
|
402
321
|
_this.stopRecording();
|
403
322
|
_this.send();
|
404
323
|
}, this.config.maxMeasureTime - msSincePageInit());
|
@@ -416,8 +335,8 @@
|
|
416
335
|
}
|
417
336
|
// Update the V2 beacon URL
|
418
337
|
_this.config.beaconUrlV2 = _this.config.beaconUrlFallback;
|
419
|
-
_this.logger.logEvent(LogEvent.PostBeaconCSPViolation
|
420
|
-
_this.addFlag(Flags.BeaconBlockedByCsp);
|
338
|
+
_this.logger.logEvent(90 /* LogEvent.PostBeaconCSPViolation */, [_this.config.beaconUrlV2]);
|
339
|
+
_this.addFlag(4096 /* Flags.BeaconBlockedByCsp */);
|
421
340
|
// Not all browsers return false if sendBeacon fails. In this case, `this.isSent` will be
|
422
341
|
// true, even though the beacon wasn't sent. We need to reset this flag to ensure we can
|
423
342
|
// retry sending the beacon.
|
@@ -429,7 +348,7 @@
|
|
429
348
|
}
|
430
349
|
}
|
431
350
|
});
|
432
|
-
this.logger.logEvent(LogEvent.PostBeaconInitialised);
|
351
|
+
this.logger.logEvent(80 /* LogEvent.PostBeaconInitialised */);
|
433
352
|
}
|
434
353
|
Beacon.prototype.isBeingSampled = function () {
|
435
354
|
var bucket = parseInt(String(this.sessionId).slice(-2));
|
@@ -437,7 +356,7 @@
|
|
437
356
|
};
|
438
357
|
Beacon.prototype.stopRecording = function () {
|
439
358
|
this.isRecording = false;
|
440
|
-
this.logger.logEvent(LogEvent.PostBeaconStopRecording);
|
359
|
+
this.logger.logEvent(86 /* LogEvent.PostBeaconStopRecording */);
|
441
360
|
};
|
442
361
|
Beacon.prototype.addCollector = function (metric, collector) {
|
443
362
|
this.metricCollectors[metric] = collector;
|
@@ -452,7 +371,7 @@
|
|
452
371
|
this.onBeforeSendCbs.push(cb);
|
453
372
|
};
|
454
373
|
Beacon.prototype.send = function () {
|
455
|
-
this.logger.logEvent(LogEvent.PostBeaconSendCalled);
|
374
|
+
this.logger.logEvent(81 /* LogEvent.PostBeaconSendCalled */);
|
456
375
|
for (var _i = 0, _a = this.onBeforeSendCbs; _i < _a.length; _i++) {
|
457
376
|
var cb = _a[_i];
|
458
377
|
cb();
|
@@ -463,8 +382,8 @@
|
|
463
382
|
var collectionStart = now();
|
464
383
|
var metricData = {};
|
465
384
|
for (var metric in this.metricCollectors) {
|
466
|
-
var data = this.metricCollectors[metric]();
|
467
|
-
this.logger.logEvent(LogEvent.PostBeaconCollector
|
385
|
+
var data = this.metricCollectors[metric](this.config);
|
386
|
+
this.logger.logEvent(91 /* LogEvent.PostBeaconCollector */, [metric, !!data]);
|
468
387
|
if (data) {
|
469
388
|
metricData[metric] = data;
|
470
389
|
}
|
@@ -472,11 +391,11 @@
|
|
472
391
|
if (!Object.keys(metricData).length && !this.config.allowEmptyPostBeacon) {
|
473
392
|
// TODO: This is only required while the new beacon is supplementary. Once it's the primary
|
474
393
|
// beacon, we should send it regardless of how much metric data it has.
|
475
|
-
this.logger.logEvent(LogEvent.PostBeaconCancelled);
|
394
|
+
this.logger.logEvent(85 /* LogEvent.PostBeaconCancelled */);
|
476
395
|
return;
|
477
396
|
}
|
478
397
|
if (this.isSent) {
|
479
|
-
this.logger.logEvent(LogEvent.PostBeaconAlreadySent);
|
398
|
+
this.logger.logEvent(84 /* LogEvent.PostBeaconAlreadySent */);
|
480
399
|
return;
|
481
400
|
}
|
482
401
|
// Only clear the max measure timeout if there's data to send.
|
@@ -495,14 +414,14 @@
|
|
495
414
|
try {
|
496
415
|
if (sendBeacon(beaconUrl, JSON.stringify(payload))) {
|
497
416
|
this.isSent = true;
|
498
|
-
this.logger.logEvent(LogEvent.PostBeaconSent
|
417
|
+
this.logger.logEvent(83 /* LogEvent.PostBeaconSent */, [beaconUrl, payload]);
|
499
418
|
}
|
500
419
|
}
|
501
420
|
catch (e) {
|
502
421
|
// Intentionally empty; handled below
|
503
422
|
}
|
504
423
|
if (!this.isSent) {
|
505
|
-
this.logger.logEvent(LogEvent.PostBeaconSendFailed
|
424
|
+
this.logger.logEvent(89 /* LogEvent.PostBeaconSendFailed */, [beaconUrl, payload]);
|
506
425
|
}
|
507
426
|
};
|
508
427
|
return Beacon;
|
@@ -545,6 +464,7 @@
|
|
545
464
|
interactionBeaconDelay: getProperty(obj, "interactionBeaconDelay", 200),
|
546
465
|
jspagelabel: getProperty(obj, "jspagelabel"),
|
547
466
|
label: getProperty(obj, "label"),
|
467
|
+
maxAttributionEntries: getProperty(obj, "maxAttributionEntries", 25),
|
548
468
|
maxBeaconUrlLength: getProperty(obj, "maxBeaconUrlLength", 8190),
|
549
469
|
maxBeaconUTEntries: getProperty(obj, "maxBeaconUTEntries", 20),
|
550
470
|
maxErrors: getProperty(obj, "maxErrors", 5),
|
@@ -703,12 +623,25 @@
|
|
703
623
|
return trackingParams;
|
704
624
|
}
|
705
625
|
|
626
|
+
var Logger = /** @class */ (function () {
|
627
|
+
function Logger() {
|
628
|
+
this.events = [];
|
629
|
+
}
|
630
|
+
Logger.prototype.logEvent = function (event, args) {
|
631
|
+
if (args === void 0) { args = []; }
|
632
|
+
this.events.push([now(), event, args]);
|
633
|
+
};
|
634
|
+
Logger.prototype.getEvents = function () {
|
635
|
+
return this.events;
|
636
|
+
};
|
637
|
+
return Logger;
|
638
|
+
}());
|
639
|
+
|
706
640
|
var sessionValue = 0;
|
707
641
|
var sessionEntries = [];
|
708
642
|
var sessionAttributions = [];
|
709
643
|
var largestEntry;
|
710
644
|
var maximumSessionValue = 0;
|
711
|
-
var MAX_CLS_SOURCES = 50;
|
712
645
|
function processEntry$3(entry) {
|
713
646
|
if (!entry.hadRecentInput) {
|
714
647
|
var firstEntry = sessionEntries[0];
|
@@ -748,7 +681,10 @@
|
|
748
681
|
maximumSessionValue = 0;
|
749
682
|
largestEntry = undefined;
|
750
683
|
}
|
751
|
-
function getData$3() {
|
684
|
+
function getData$3(config) {
|
685
|
+
if (!("LayoutShift" in self)) {
|
686
|
+
return undefined;
|
687
|
+
}
|
752
688
|
return {
|
753
689
|
value: maximumSessionValue,
|
754
690
|
startTime: sessionEntries[0] ? processTimeMetric(sessionEntries[0].startTime) : null,
|
@@ -758,7 +694,7 @@
|
|
758
694
|
startTime: processTimeMetric(largestEntry.startTime),
|
759
695
|
}
|
760
696
|
: null,
|
761
|
-
sources: sessionAttributions.length ? sessionAttributions.slice(0,
|
697
|
+
sources: sessionAttributions.length ? sessionAttributions.slice(0, config.maxAttributionEntries) : null,
|
762
698
|
};
|
763
699
|
}
|
764
700
|
|
@@ -795,8 +731,6 @@
|
|
795
731
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
796
732
|
};
|
797
733
|
|
798
|
-
var MAX_LOAF_ENTRIES = 50;
|
799
|
-
var MAX_LOAF_SCRIPTS = 50;
|
800
734
|
var entries = [];
|
801
735
|
function processEntry$2(entry) {
|
802
736
|
entries.push(entry);
|
@@ -807,7 +741,7 @@
|
|
807
741
|
function getEntries$1() {
|
808
742
|
return entries;
|
809
743
|
}
|
810
|
-
function getData$2() {
|
744
|
+
function getData$2(config) {
|
811
745
|
var summarizedEntries = [];
|
812
746
|
var totalDuration = 0;
|
813
747
|
var totalBlockingDuration = 0;
|
@@ -835,34 +769,42 @@
|
|
835
769
|
totalEntries: entries.length,
|
836
770
|
totalStyleAndLayoutDuration: floor(totalStyleAndLayoutDuration),
|
837
771
|
totalWorkDuration: floor(totalWorkDuration),
|
838
|
-
|
839
|
-
|
840
|
-
|
772
|
+
scripts: summarizeLoAFScripts(entries.flatMap(function (entry) { return entry.scripts; }), config),
|
773
|
+
// Only keep the slowest LoAF entries
|
774
|
+
entries: summarizedEntries
|
775
|
+
.sort(function (a, b) { return b.duration - a.duration; })
|
776
|
+
.slice(0, config.maxAttributionEntries)
|
777
|
+
.sort(function (a, b) { return a.startTime - b.startTime; }),
|
778
|
+
};
|
841
779
|
}
|
842
|
-
function summarizeLoAFScripts(scripts) {
|
780
|
+
function summarizeLoAFScripts(scripts, config) {
|
843
781
|
var summary = {};
|
844
782
|
scripts.forEach(function (script) {
|
845
|
-
var key = script.
|
783
|
+
var key = script.sourceURL;
|
846
784
|
if (!summary[key]) {
|
847
785
|
summary[key] = {
|
848
786
|
sourceUrl: script.sourceURL,
|
849
|
-
sourceFunctionName:
|
787
|
+
sourceFunctionName: "",
|
850
788
|
timings: [],
|
851
789
|
totalEntries: 0,
|
852
790
|
totalDuration: 0,
|
791
|
+
totalBlockingDuration: 0,
|
853
792
|
totalPauseDuration: 0,
|
854
793
|
totalForcedStyleAndLayoutDuration: 0,
|
855
|
-
invoker:
|
794
|
+
invoker: "",
|
856
795
|
inpPhase: script.inpPhase,
|
857
796
|
};
|
858
797
|
}
|
859
798
|
summary[key].totalEntries++;
|
860
799
|
summary[key].totalDuration += script.duration;
|
800
|
+
summary[key].totalBlockingDuration += max(0, script.duration - 50);
|
861
801
|
summary[key].totalPauseDuration += script.pauseDuration;
|
862
802
|
summary[key].totalForcedStyleAndLayoutDuration += script.forcedStyleAndLayoutDuration;
|
863
803
|
summary[key].timings.push([floor(script.startTime), floor(script.duration)]);
|
864
804
|
});
|
865
|
-
return Object.values(summary).map(function (script) { return (__assign(__assign({}, script), { totalDuration: floor(script.totalDuration), totalPauseDuration: floor(script.totalPauseDuration), totalForcedStyleAndLayoutDuration: floor(script.totalForcedStyleAndLayoutDuration) })); })
|
805
|
+
return Object.values(summary).map(function (script) { return (__assign(__assign({}, script), { totalDuration: floor(script.totalDuration), totalPauseDuration: floor(script.totalPauseDuration), totalForcedStyleAndLayoutDuration: floor(script.totalForcedStyleAndLayoutDuration) })); })
|
806
|
+
.sort(function (a, b) { return b.totalDuration - a.totalDuration; })
|
807
|
+
.slice(0, config.maxAttributionEntries);
|
866
808
|
}
|
867
809
|
|
868
810
|
/**
|
@@ -947,7 +889,7 @@
|
|
947
889
|
var index = Math.min(slowestEntries.length - 1, Math.floor(getInteractionCount() / 50));
|
948
890
|
return slowestEntries[index];
|
949
891
|
}
|
950
|
-
function getData$1() {
|
892
|
+
function getData$1(config) {
|
951
893
|
var _a;
|
952
894
|
var interaction = getHighPercentileInteraction();
|
953
895
|
if (!interaction) {
|
@@ -967,7 +909,7 @@
|
|
967
909
|
script.inpPhase = getINPPhase(script, interaction);
|
968
910
|
return script;
|
969
911
|
});
|
970
|
-
var loafScripts = summarizeLoAFScripts(inpScripts);
|
912
|
+
var loafScripts = summarizeLoAFScripts(inpScripts, config);
|
971
913
|
return {
|
972
914
|
value: interaction.duration,
|
973
915
|
startTime: processTimeMetric(startTime),
|
@@ -1162,7 +1104,7 @@
|
|
1162
1104
|
// -------------------------------------------------------------------------
|
1163
1105
|
var logger = new Logger();
|
1164
1106
|
var globalConfig = fromObject(LUX);
|
1165
|
-
logger.logEvent(LogEvent.EvaluationStart
|
1107
|
+
logger.logEvent(1 /* LogEvent.EvaluationStart */, [VERSION, JSON.stringify(globalConfig)]);
|
1166
1108
|
// Variable aliases that allow the minifier to reduce file size.
|
1167
1109
|
var document = window.document;
|
1168
1110
|
var addEventListener = window.addEventListener;
|
@@ -1226,18 +1168,9 @@
|
|
1226
1168
|
// Storing the customer ID in a local variable makes it possible to run multiple instances of lux.js
|
1227
1169
|
// on the same page.
|
1228
1170
|
var _thisCustomerId = LUX.customerid;
|
1229
|
-
var
|
1230
|
-
return new Beacon({
|
1231
|
-
config: globalConfig,
|
1232
|
-
logger: logger,
|
1233
|
-
customerId: getCustomerId(),
|
1234
|
-
sessionId: gUid,
|
1235
|
-
pageId: gSyncId,
|
1236
|
-
});
|
1237
|
-
};
|
1238
|
-
var beacon = initPostBeacon();
|
1171
|
+
var beaconCollectors = [];
|
1239
1172
|
var logEntry = function (entry) {
|
1240
|
-
logger.logEvent(LogEvent.PerformanceEntryReceived
|
1173
|
+
logger.logEvent(42 /* LogEvent.PerformanceEntryReceived */, [entry]);
|
1241
1174
|
};
|
1242
1175
|
// Most PerformanceEntry types we log an event for and add it to the global entry store.
|
1243
1176
|
var processAndLogEntry = function (entry) {
|
@@ -1254,19 +1187,19 @@
|
|
1254
1187
|
// Process the LCP entry for the new beacon
|
1255
1188
|
processEntry(entry);
|
1256
1189
|
})) {
|
1257
|
-
|
1190
|
+
beaconCollectors.push([BeaconMetricKey.LCP, getData]);
|
1258
1191
|
}
|
1259
1192
|
if (observe("layout-shift", function (entry) {
|
1260
1193
|
processEntry$3(entry);
|
1261
1194
|
logEntry(entry);
|
1262
1195
|
})) {
|
1263
|
-
|
1196
|
+
beaconCollectors.push([BeaconMetricKey.CLS, getData$3]);
|
1264
1197
|
}
|
1265
1198
|
if (observe("long-animation-frame", function (entry) {
|
1266
1199
|
processEntry$2(entry);
|
1267
1200
|
logEntry(entry);
|
1268
1201
|
})) {
|
1269
|
-
|
1202
|
+
beaconCollectors.push([BeaconMetricKey.LoAF, getData$2]);
|
1270
1203
|
}
|
1271
1204
|
var handleINPEntry_1 = function (entry) {
|
1272
1205
|
processEntry$1(entry);
|
@@ -1298,25 +1231,40 @@
|
|
1298
1231
|
processingEnd: entry.processingEnd,
|
1299
1232
|
});
|
1300
1233
|
}, { durationThreshold: 0 })) {
|
1301
|
-
|
1234
|
+
beaconCollectors.push([BeaconMetricKey.INP, getData$1]);
|
1302
1235
|
}
|
1303
1236
|
}
|
1304
1237
|
catch (e) {
|
1305
|
-
logger.logEvent(LogEvent.PerformanceObserverError
|
1238
|
+
logger.logEvent(51 /* LogEvent.PerformanceObserverError */, [e]);
|
1306
1239
|
}
|
1240
|
+
var initPostBeacon = function () {
|
1241
|
+
var b = new Beacon({
|
1242
|
+
config: globalConfig,
|
1243
|
+
logger: logger,
|
1244
|
+
customerId: getCustomerId(),
|
1245
|
+
sessionId: gUid,
|
1246
|
+
pageId: gSyncId,
|
1247
|
+
});
|
1248
|
+
beaconCollectors.forEach(function (_a) {
|
1249
|
+
var metric = _a[0], collector = _a[1];
|
1250
|
+
b.addCollector(metric, collector);
|
1251
|
+
});
|
1252
|
+
return b;
|
1253
|
+
};
|
1254
|
+
var beacon = initPostBeacon();
|
1307
1255
|
if (_sample()) {
|
1308
|
-
logger.logEvent(LogEvent.SessionIsSampled
|
1256
|
+
logger.logEvent(21 /* LogEvent.SessionIsSampled */, [globalConfig.samplerate]);
|
1309
1257
|
}
|
1310
1258
|
else {
|
1311
|
-
logger.logEvent(LogEvent.SessionIsNotSampled
|
1259
|
+
logger.logEvent(22 /* LogEvent.SessionIsNotSampled */, [globalConfig.samplerate]);
|
1312
1260
|
}
|
1313
1261
|
var gLuxSnippetStart = LUX.ns ? LUX.ns - timing.navigationStart : 0;
|
1314
1262
|
if (!performance.timing) {
|
1315
|
-
logger.logEvent(LogEvent.NavTimingNotSupported);
|
1316
|
-
gFlags = addFlag(gFlags, Flags.NavTimingNotSupported);
|
1317
|
-
beacon.addFlag(Flags.NavTimingNotSupported);
|
1263
|
+
logger.logEvent(71 /* LogEvent.NavTimingNotSupported */);
|
1264
|
+
gFlags = addFlag(gFlags, 2 /* Flags.NavTimingNotSupported */);
|
1265
|
+
beacon.addFlag(2 /* Flags.NavTimingNotSupported */);
|
1318
1266
|
}
|
1319
|
-
logger.logEvent(LogEvent.NavigationStart
|
1267
|
+
logger.logEvent(41 /* LogEvent.NavigationStart */, [timing.navigationStart]);
|
1320
1268
|
////////////////////// FID BEGIN
|
1321
1269
|
// FIRST INPUT DELAY (FID)
|
1322
1270
|
// The basic idea behind FID is to attach various input event listeners and measure the time
|
@@ -1362,7 +1310,7 @@
|
|
1362
1310
|
}
|
1363
1311
|
catch (e) {
|
1364
1312
|
// bail - no need to return anything
|
1365
|
-
logger.logEvent(LogEvent.InputEventPermissionError);
|
1313
|
+
logger.logEvent(52 /* LogEvent.InputEventPermissionError */);
|
1366
1314
|
return;
|
1367
1315
|
}
|
1368
1316
|
if (bCancelable) {
|
@@ -1401,7 +1349,7 @@
|
|
1401
1349
|
for (var _i = 0; _i < arguments.length; _i++) {
|
1402
1350
|
args[_i] = arguments[_i];
|
1403
1351
|
}
|
1404
|
-
logger.logEvent(LogEvent.MarkCalled
|
1352
|
+
logger.logEvent(4 /* LogEvent.MarkCalled */, args);
|
1405
1353
|
if (performance.mark) {
|
1406
1354
|
// Use the native performance.mark where possible...
|
1407
1355
|
return performance.mark.apply(performance, args);
|
@@ -1419,8 +1367,8 @@
|
|
1419
1367
|
startTime: startTime,
|
1420
1368
|
};
|
1421
1369
|
gaMarks.push(entry);
|
1422
|
-
gFlags = addFlag(gFlags, Flags.UserTimingNotSupported);
|
1423
|
-
beacon.addFlag(Flags.UserTimingNotSupported);
|
1370
|
+
gFlags = addFlag(gFlags, 4 /* Flags.UserTimingNotSupported */);
|
1371
|
+
beacon.addFlag(4 /* Flags.UserTimingNotSupported */);
|
1424
1372
|
return entry;
|
1425
1373
|
}
|
1426
1374
|
}
|
@@ -1431,7 +1379,7 @@
|
|
1431
1379
|
for (var _i = 0; _i < arguments.length; _i++) {
|
1432
1380
|
args[_i] = arguments[_i];
|
1433
1381
|
}
|
1434
|
-
logger.logEvent(LogEvent.MeasureCalled
|
1382
|
+
logger.logEvent(5 /* LogEvent.MeasureCalled */, args);
|
1435
1383
|
var name = args[0];
|
1436
1384
|
var startMarkName = args[1];
|
1437
1385
|
var endMarkName = args[2];
|
@@ -1522,8 +1470,8 @@
|
|
1522
1470
|
duration: duration,
|
1523
1471
|
};
|
1524
1472
|
gaMeasures.push(entry);
|
1525
|
-
gFlags = addFlag(gFlags, Flags.UserTimingNotSupported);
|
1526
|
-
beacon.addFlag(Flags.UserTimingNotSupported);
|
1473
|
+
gFlags = addFlag(gFlags, 4 /* Flags.UserTimingNotSupported */);
|
1474
|
+
beacon.addFlag(4 /* Flags.UserTimingNotSupported */);
|
1527
1475
|
return entry;
|
1528
1476
|
}
|
1529
1477
|
}
|
@@ -1620,7 +1568,7 @@
|
|
1620
1568
|
if (entry.identifier && entry.startTime) {
|
1621
1569
|
var value = processTimeMetric(entry.startTime);
|
1622
1570
|
if (shouldReportValue(value)) {
|
1623
|
-
logger.logEvent(LogEvent.PerformanceEntryProcessed
|
1571
|
+
logger.logEvent(43 /* LogEvent.PerformanceEntryProcessed */, [entry]);
|
1624
1572
|
aET.push(entry.identifier + "|" + value);
|
1625
1573
|
}
|
1626
1574
|
}
|
@@ -1649,7 +1597,7 @@
|
|
1649
1597
|
}
|
1650
1598
|
// Only process entries that we calculated to have a valid duration
|
1651
1599
|
if (dur > 0) {
|
1652
|
-
logger.logEvent(LogEvent.PerformanceEntryProcessed
|
1600
|
+
logger.logEvent(43 /* LogEvent.PerformanceEntryProcessed */, [entry]);
|
1653
1601
|
var type = entry.attribution[0].name;
|
1654
1602
|
if (!hCPU[type]) {
|
1655
1603
|
hCPU[type] = 0;
|
@@ -1719,13 +1667,6 @@
|
|
1719
1667
|
var median = arrayMedian(aValues);
|
1720
1668
|
return { count: count, median: median, max: max, fci: fci };
|
1721
1669
|
}
|
1722
|
-
function getCLS() {
|
1723
|
-
if (!("LayoutShift" in self)) {
|
1724
|
-
return undefined;
|
1725
|
-
}
|
1726
|
-
var clsData = getData$3();
|
1727
|
-
return clsData.value.toFixed(6);
|
1728
|
-
}
|
1729
1670
|
// Return the median value from an array of integers.
|
1730
1671
|
function arrayMedian(aValues) {
|
1731
1672
|
if (0 === aValues.length) {
|
@@ -1799,7 +1740,7 @@
|
|
1799
1740
|
return aIx.join(",");
|
1800
1741
|
}
|
1801
1742
|
function _addData(name, value) {
|
1802
|
-
logger.logEvent(LogEvent.AddDataCalled
|
1743
|
+
logger.logEvent(6 /* LogEvent.AddDataCalled */, [name, value]);
|
1803
1744
|
if (typeof name === "string") {
|
1804
1745
|
addCustomDataValue(name, value);
|
1805
1746
|
}
|
@@ -1847,7 +1788,7 @@
|
|
1847
1788
|
else {
|
1848
1789
|
_mark(START_MARK);
|
1849
1790
|
}
|
1850
|
-
logger.logEvent(LogEvent.InitCalled);
|
1791
|
+
logger.logEvent(3 /* LogEvent.InitCalled */);
|
1851
1792
|
// This is an edge case where LUX.auto = true but LUX.init() has been called. In this case, the
|
1852
1793
|
// POST beacon will not be sent automatically, so we need to send it here.
|
1853
1794
|
if (globalConfig.auto && !beacon.isSent) {
|
@@ -1875,8 +1816,8 @@
|
|
1875
1816
|
// Clear flags then set the flag that init was called (ie, this is a SPA).
|
1876
1817
|
if (clearFlags) {
|
1877
1818
|
gFlags = 0;
|
1878
|
-
gFlags = addFlag(gFlags, Flags.InitCalled);
|
1879
|
-
beacon.addFlag(Flags.InitCalled);
|
1819
|
+
gFlags = addFlag(gFlags, 1 /* Flags.InitCalled */);
|
1820
|
+
beacon.addFlag(1 /* Flags.InitCalled */);
|
1880
1821
|
}
|
1881
1822
|
// Reset the maximum measure timeout
|
1882
1823
|
createMaxMeasureTimeout();
|
@@ -1973,7 +1914,7 @@
|
|
1973
1914
|
}
|
1974
1915
|
catch (e) {
|
1975
1916
|
// It seems like IE throws an error when accessing the innerHTML property
|
1976
|
-
logger.logEvent(LogEvent.InnerHtmlAccessError);
|
1917
|
+
logger.logEvent(53 /* LogEvent.InnerHtmlAccessError */);
|
1977
1918
|
return -1;
|
1978
1919
|
}
|
1979
1920
|
}
|
@@ -2092,7 +2033,7 @@
|
|
2092
2033
|
var lastEntry = lcpEntries[lcpEntries.length - 1];
|
2093
2034
|
var value = processTimeMetric(lastEntry.startTime);
|
2094
2035
|
if (shouldReportValue(value)) {
|
2095
|
-
logger.logEvent(LogEvent.PerformanceEntryProcessed
|
2036
|
+
logger.logEvent(43 /* LogEvent.PerformanceEntryProcessed */, [lastEntry]);
|
2096
2037
|
return value;
|
2097
2038
|
}
|
2098
2039
|
}
|
@@ -2119,7 +2060,7 @@
|
|
2119
2060
|
// If IE/Edge, use the prefixed `msFirstPaint` property (see http://msdn.microsoft.com/ff974719).
|
2120
2061
|
return floor(timing.msFirstPaint - timing.navigationStart);
|
2121
2062
|
}
|
2122
|
-
logger.logEvent(LogEvent.PaintTimingNotSupported);
|
2063
|
+
logger.logEvent(72 /* LogEvent.PaintTimingNotSupported */);
|
2123
2064
|
return undefined;
|
2124
2065
|
}
|
2125
2066
|
function getINPDetails() {
|
@@ -2285,7 +2226,7 @@
|
|
2285
2226
|
// Mark the load time of the current page. Intended to be used in SPAs where it is not desirable to
|
2286
2227
|
// send the beacon as soon as the page has finished loading.
|
2287
2228
|
function _markLoadTime(time) {
|
2288
|
-
logger.logEvent(LogEvent.MarkLoadTimeCalled
|
2229
|
+
logger.logEvent(12 /* LogEvent.MarkLoadTimeCalled */, [time]);
|
2289
2230
|
if (time) {
|
2290
2231
|
_mark(END_MARK, { startTime: time });
|
2291
2232
|
}
|
@@ -2296,8 +2237,8 @@
|
|
2296
2237
|
function createMaxMeasureTimeout() {
|
2297
2238
|
clearMaxMeasureTimeout();
|
2298
2239
|
gMaxMeasureTimeout = setTimeout(function () {
|
2299
|
-
gFlags = addFlag(gFlags, Flags.BeaconSentAfterTimeout);
|
2300
|
-
beacon.addFlag(Flags.BeaconSentAfterTimeout);
|
2240
|
+
gFlags = addFlag(gFlags, 32 /* Flags.BeaconSentAfterTimeout */);
|
2241
|
+
beacon.addFlag(32 /* Flags.BeaconSentAfterTimeout */);
|
2301
2242
|
_sendLux();
|
2302
2243
|
}, globalConfig.maxMeasureTime - msSincePageInit());
|
2303
2244
|
}
|
@@ -2330,7 +2271,7 @@
|
|
2330
2271
|
function _sendLux() {
|
2331
2272
|
var _a;
|
2332
2273
|
if (!isVisible() && !globalConfig.trackHiddenPages) {
|
2333
|
-
logger.logEvent(LogEvent.SendCancelledPageHidden);
|
2274
|
+
logger.logEvent(13 /* LogEvent.SendCancelledPageHidden */);
|
2334
2275
|
return;
|
2335
2276
|
}
|
2336
2277
|
clearMaxMeasureTimeout();
|
@@ -2342,7 +2283,7 @@
|
|
2342
2283
|
) {
|
2343
2284
|
return;
|
2344
2285
|
}
|
2345
|
-
logger.logEvent(LogEvent.DataCollectionStart);
|
2286
|
+
logger.logEvent(9 /* LogEvent.DataCollectionStart */);
|
2346
2287
|
var startMark = _getMark(START_MARK);
|
2347
2288
|
var endMark = _getMark(END_MARK);
|
2348
2289
|
if (!startMark || (endMark && endMark.startTime < startMark.startTime)) {
|
@@ -2353,7 +2294,7 @@
|
|
2353
2294
|
// Store any tracking parameters as custom data
|
2354
2295
|
var trackingParams = getTrackingParams();
|
2355
2296
|
for (var key in trackingParams) {
|
2356
|
-
logger.logEvent(LogEvent.TrackingParamAdded
|
2297
|
+
logger.logEvent(44 /* LogEvent.TrackingParamAdded */, [key, trackingParams[key]]);
|
2357
2298
|
addCustomDataValue("_" + key, trackingParams[key]);
|
2358
2299
|
}
|
2359
2300
|
var sIx = "";
|
@@ -2370,15 +2311,15 @@
|
|
2370
2311
|
}
|
2371
2312
|
var sET = elementTimingValues(); // Element Timing data
|
2372
2313
|
var sCPU = cpuTimes();
|
2373
|
-
var
|
2314
|
+
var clsData = getData$3(globalConfig);
|
2374
2315
|
var sLuxjs = selfLoading();
|
2375
2316
|
if (!isVisible()) {
|
2376
|
-
gFlags = addFlag(gFlags, Flags.VisibilityStateNotVisible);
|
2377
|
-
beacon.addFlag(Flags.VisibilityStateNotVisible);
|
2317
|
+
gFlags = addFlag(gFlags, 8 /* Flags.VisibilityStateNotVisible */);
|
2318
|
+
beacon.addFlag(8 /* Flags.VisibilityStateNotVisible */);
|
2378
2319
|
}
|
2379
2320
|
if (wasPrerendered()) {
|
2380
|
-
gFlags = addFlag(gFlags, Flags.PageWasPrerendered);
|
2381
|
-
beacon.addFlag(Flags.PageWasPrerendered);
|
2321
|
+
gFlags = addFlag(gFlags, 1024 /* Flags.PageWasPrerendered */);
|
2322
|
+
beacon.addFlag(1024 /* Flags.PageWasPrerendered */);
|
2382
2323
|
}
|
2383
2324
|
if (globalConfig.serverTiming) {
|
2384
2325
|
var navEntry = getNavigationEntry();
|
@@ -2449,9 +2390,9 @@
|
|
2449
2390
|
(typeof gFirstInputDelay !== "undefined" ? "&FID=" + gFirstInputDelay : "") +
|
2450
2391
|
(sCPU ? "&CPU=" + sCPU : "") +
|
2451
2392
|
(sET ? "&ET=" + sET : "") + // element timing
|
2452
|
-
(
|
2393
|
+
(clsData ? "&CLS=" + clsData.value.toFixed(6) : "") +
|
2453
2394
|
// INP and sub-parts
|
2454
|
-
(
|
2395
|
+
(INP ? getINPString(INP) : "");
|
2455
2396
|
// We add the user timing entries last so that we can split them to reduce the URL size if necessary.
|
2456
2397
|
var utValues = userTimingValues();
|
2457
2398
|
var _b = fitUserTimingEntries(utValues, globalConfig, baseUrl + metricsQueryString), beaconUtValues = _b[0], remainingUtValues = _b[1];
|
@@ -2459,7 +2400,7 @@
|
|
2459
2400
|
var mainBeaconUrl = baseUrl +
|
2460
2401
|
metricsQueryString +
|
2461
2402
|
(beaconUtValues.length > 0 ? "&UT=" + beaconUtValues.join(",") : "");
|
2462
|
-
logger.logEvent(LogEvent.MainBeaconSent
|
2403
|
+
logger.logEvent(23 /* LogEvent.MainBeaconSent */, [mainBeaconUrl]);
|
2463
2404
|
_sendBeacon(mainBeaconUrl);
|
2464
2405
|
// Set some states.
|
2465
2406
|
gbLuxSent = 1;
|
@@ -2469,7 +2410,7 @@
|
|
2469
2410
|
while (remainingUtValues.length) {
|
2470
2411
|
_a = fitUserTimingEntries(remainingUtValues, globalConfig, baseUrl), beaconUtValues = _a[0], remainingUtValues = _a[1];
|
2471
2412
|
var utBeaconUrl = baseUrl + "&UT=" + beaconUtValues.join(",");
|
2472
|
-
logger.logEvent(LogEvent.UserTimingBeaconSent
|
2413
|
+
logger.logEvent(24 /* LogEvent.UserTimingBeaconSent */, [utBeaconUrl]);
|
2473
2414
|
_sendBeacon(utBeaconUrl);
|
2474
2415
|
}
|
2475
2416
|
}
|
@@ -2497,7 +2438,7 @@
|
|
2497
2438
|
sIx +
|
2498
2439
|
(typeof gFirstInputDelay !== "undefined" ? "&FID=" + gFirstInputDelay : "") +
|
2499
2440
|
(typeof INP !== "undefined" ? getINPString(INP) : "");
|
2500
|
-
logger.logEvent(LogEvent.InteractionBeaconSent
|
2441
|
+
logger.logEvent(25 /* LogEvent.InteractionBeaconSent */, [beaconUrl]);
|
2501
2442
|
_sendBeacon(beaconUrl);
|
2502
2443
|
gbIxSent = 1;
|
2503
2444
|
}
|
@@ -2516,7 +2457,7 @@
|
|
2516
2457
|
var customDataValues = valuesToString(getUpdatedCustomData());
|
2517
2458
|
if (customDataValues) {
|
2518
2459
|
var beaconUrl = _getBeaconUrl(getUpdatedCustomData());
|
2519
|
-
logger.logEvent(LogEvent.CustomDataBeaconSent
|
2460
|
+
logger.logEvent(26 /* LogEvent.CustomDataBeaconSent */, [beaconUrl]);
|
2520
2461
|
_sendBeacon(beaconUrl);
|
2521
2462
|
}
|
2522
2463
|
}
|
@@ -2580,7 +2521,7 @@
|
|
2580
2521
|
}
|
2581
2522
|
}
|
2582
2523
|
catch (e) {
|
2583
|
-
logger.logEvent(LogEvent.EventTargetAccessError);
|
2524
|
+
logger.logEvent(54 /* LogEvent.EventTargetAccessError */);
|
2584
2525
|
}
|
2585
2526
|
if (target) {
|
2586
2527
|
if (e.clientX) {
|
@@ -2599,9 +2540,9 @@
|
|
2599
2540
|
}
|
2600
2541
|
function _addUnloadHandlers() {
|
2601
2542
|
var onunload = function () {
|
2602
|
-
gFlags = addFlag(gFlags, Flags.BeaconSentFromUnloadHandler);
|
2603
|
-
beacon.addFlag(Flags.BeaconSentFromUnloadHandler);
|
2604
|
-
logger.logEvent(LogEvent.UnloadHandlerTriggered);
|
2543
|
+
gFlags = addFlag(gFlags, 16 /* Flags.BeaconSentFromUnloadHandler */);
|
2544
|
+
beacon.addFlag(16 /* Flags.BeaconSentFromUnloadHandler */);
|
2545
|
+
logger.logEvent(10 /* LogEvent.UnloadHandlerTriggered */);
|
2605
2546
|
_sendLux();
|
2606
2547
|
_sendIx();
|
2607
2548
|
beacon.send();
|
@@ -2677,15 +2618,15 @@
|
|
2677
2618
|
// Return the current page label.
|
2678
2619
|
function _getPageLabel() {
|
2679
2620
|
if (LUX.label) {
|
2680
|
-
gFlags = addFlag(gFlags, Flags.PageLabelFromLabelProp);
|
2681
|
-
beacon.addFlag(Flags.PageLabelFromLabelProp);
|
2621
|
+
gFlags = addFlag(gFlags, 128 /* Flags.PageLabelFromLabelProp */);
|
2622
|
+
beacon.addFlag(128 /* Flags.PageLabelFromLabelProp */);
|
2682
2623
|
return LUX.label;
|
2683
2624
|
}
|
2684
2625
|
if (typeof LUX.pagegroups !== "undefined") {
|
2685
2626
|
var label = getMatchesFromPatternMap(LUX.pagegroups, location.hostname, location.pathname, true);
|
2686
2627
|
if (label) {
|
2687
|
-
gFlags = addFlag(gFlags, Flags.PageLabelFromUrlPattern);
|
2688
|
-
beacon.addFlag(Flags.PageLabelFromUrlPattern);
|
2628
|
+
gFlags = addFlag(gFlags, 512 /* Flags.PageLabelFromUrlPattern */);
|
2629
|
+
beacon.addFlag(512 /* Flags.PageLabelFromUrlPattern */);
|
2689
2630
|
return label;
|
2690
2631
|
}
|
2691
2632
|
}
|
@@ -2694,18 +2635,18 @@
|
|
2694
2635
|
try {
|
2695
2636
|
var label = evaluateJsPageLabel();
|
2696
2637
|
if (label) {
|
2697
|
-
gFlags = addFlag(gFlags, Flags.PageLabelFromGlobalVariable);
|
2698
|
-
beacon.addFlag(Flags.PageLabelFromGlobalVariable);
|
2638
|
+
gFlags = addFlag(gFlags, 256 /* Flags.PageLabelFromGlobalVariable */);
|
2639
|
+
beacon.addFlag(256 /* Flags.PageLabelFromGlobalVariable */);
|
2699
2640
|
return label;
|
2700
2641
|
}
|
2701
2642
|
}
|
2702
2643
|
catch (e) {
|
2703
|
-
logger.logEvent(LogEvent.PageLabelEvaluationError
|
2644
|
+
logger.logEvent(57 /* LogEvent.PageLabelEvaluationError */, [LUX.jspagelabel, e]);
|
2704
2645
|
}
|
2705
2646
|
}
|
2706
2647
|
// default to document.title
|
2707
|
-
gFlags = addFlag(gFlags, Flags.PageLabelFromDocumentTitle);
|
2708
|
-
beacon.addFlag(Flags.PageLabelFromDocumentTitle);
|
2648
|
+
gFlags = addFlag(gFlags, 64 /* Flags.PageLabelFromDocumentTitle */);
|
2649
|
+
beacon.addFlag(64 /* Flags.PageLabelFromDocumentTitle */);
|
2709
2650
|
return document.title;
|
2710
2651
|
}
|
2711
2652
|
function _getCookie(name) {
|
@@ -2721,7 +2662,7 @@
|
|
2721
2662
|
}
|
2722
2663
|
}
|
2723
2664
|
catch (e) {
|
2724
|
-
logger.logEvent(LogEvent.CookieReadError);
|
2665
|
+
logger.logEvent(55 /* LogEvent.CookieReadError */);
|
2725
2666
|
}
|
2726
2667
|
return undefined;
|
2727
2668
|
}
|
@@ -2736,7 +2677,7 @@
|
|
2736
2677
|
"; path=/; SameSite=Lax";
|
2737
2678
|
}
|
2738
2679
|
catch (e) {
|
2739
|
-
logger.logEvent(LogEvent.CookieSetError);
|
2680
|
+
logger.logEvent(56 /* LogEvent.CookieSetError */);
|
2740
2681
|
}
|
2741
2682
|
}
|
2742
2683
|
// Set "LUX.auto=false" to disable send results automatically and
|
@@ -2754,7 +2695,7 @@
|
|
2754
2695
|
var elapsedTime = msSincePageInit();
|
2755
2696
|
var timeRemaining = globalConfig.minMeasureTime - elapsedTime;
|
2756
2697
|
if (timeRemaining <= 0) {
|
2757
|
-
logger.logEvent(LogEvent.OnloadHandlerTriggered
|
2698
|
+
logger.logEvent(11 /* LogEvent.OnloadHandlerTriggered */, [
|
2758
2699
|
elapsedTime,
|
2759
2700
|
globalConfig.minMeasureTime,
|
2760
2701
|
]);
|
@@ -2789,8 +2730,8 @@
|
|
2789
2730
|
_markLoadTime();
|
2790
2731
|
}
|
2791
2732
|
// Flag the current page as a bfcache restore
|
2792
|
-
gFlags = addFlag(gFlags, Flags.PageWasBfCacheRestored);
|
2793
|
-
beacon.addFlag(Flags.PageWasBfCacheRestored);
|
2733
|
+
gFlags = addFlag(gFlags, 2048 /* Flags.PageWasBfCacheRestored */);
|
2734
|
+
beacon.addFlag(2048 /* Flags.PageWasBfCacheRestored */);
|
2794
2735
|
}, 0);
|
2795
2736
|
}
|
2796
2737
|
});
|
@@ -2814,7 +2755,7 @@
|
|
2814
2755
|
globalLux.init = _init;
|
2815
2756
|
globalLux.markLoadTime = _markLoadTime;
|
2816
2757
|
globalLux.send = function () {
|
2817
|
-
logger.logEvent(LogEvent.SendCalled);
|
2758
|
+
logger.logEvent(7 /* LogEvent.SendCalled */);
|
2818
2759
|
beacon.send();
|
2819
2760
|
_sendLux();
|
2820
2761
|
};
|
@@ -2825,7 +2766,7 @@
|
|
2825
2766
|
return logger.getEvents();
|
2826
2767
|
};
|
2827
2768
|
globalLux.forceSample = function () {
|
2828
|
-
logger.logEvent(LogEvent.ForceSampleCalled);
|
2769
|
+
logger.logEvent(8 /* LogEvent.ForceSampleCalled */);
|
2829
2770
|
setUniqueId(createSyncId(true));
|
2830
2771
|
};
|
2831
2772
|
globalLux.doUpdate = function () {
|
@@ -2852,7 +2793,7 @@
|
|
2852
2793
|
if (typeof window.LUX_ae !== "undefined") {
|
2853
2794
|
window.LUX_ae.forEach(errorHandler);
|
2854
2795
|
}
|
2855
|
-
logger.logEvent(LogEvent.EvaluationEnd);
|
2796
|
+
logger.logEvent(2 /* LogEvent.EvaluationEnd */);
|
2856
2797
|
return globalLux;
|
2857
2798
|
})();
|
2858
2799
|
window.LUX = LUX;
|
@@ -27,6 +27,10 @@ $choices-button-dimension: 12px !default;
|
|
27
27
|
font-family: $govuk-font-family;
|
28
28
|
}
|
29
29
|
|
30
|
+
.choices[data-type="select-one"] .choices__list--dropdown .choices__list .choices__placeholder {
|
31
|
+
opacity: 1;
|
32
|
+
}
|
33
|
+
|
30
34
|
.choices[data-type*="select-one"]::after {
|
31
35
|
@include govuk-shape-arrow($direction: down, $base: 10px, $display: inline-block);
|
32
36
|
@include prefixed-transform($translateY: -50%);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_publishing_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 59.0
|
4
|
+
version: 59.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
@@ -2186,7 +2186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2186
2186
|
- !ruby/object:Gem::Version
|
2187
2187
|
version: '0'
|
2188
2188
|
requirements: []
|
2189
|
-
rubygems_version: 3.7.
|
2189
|
+
rubygems_version: 3.7.1
|
2190
2190
|
specification_version: 4
|
2191
2191
|
summary: A gem to document components in GOV.UK frontend applications
|
2192
2192
|
test_files: []
|