@phantomstudios/ft-lib 0.3.0-rc1 → 0.3.0-rc10
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.
- package/.github/workflows/pr.yml +1 -1
- package/.github/workflows/release.yml +1 -1
- package/.nvmrc +1 -1
- package/README.md +11 -10
- package/lib/FTTracking/index.d.ts +3 -0
- package/lib/FTTracking/index.d.ts.map +1 -1
- package/lib/FTTracking/index.js +7 -2
- package/lib/FTTracking/index.js.map +1 -1
- package/lib/oTracker/index.d.ts.map +1 -1
- package/lib/oTracker/index.js +5 -3
- package/lib/oTracker/index.js.map +1 -1
- package/lib/utils/attention.js +4 -24
- package/lib/utils/attention.js.map +1 -1
- package/lib/utils/scroll.d.ts +1 -1
- package/lib/utils/scroll.d.ts.map +1 -1
- package/lib/utils/scroll.js.map +1 -1
- package/lib/utils/yupValidator.d.ts +4 -4
- package/lib/utils/yupValidator.d.ts.map +1 -1
- package/lib/utils/yupValidator.js +22 -6
- package/lib/utils/yupValidator.js.map +1 -1
- package/package.json +3 -3
- package/src/FTTracking/index.ts +10 -2
- package/src/oTracker/index.ts +8 -3
- package/src/utils/attention.js +1 -1
- package/src/utils/scroll.ts +2 -2
- package/src/utils/yupValidator.ts +25 -6
package/.github/workflows/pr.yml
CHANGED
package/.nvmrc
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
v18.17.1
|
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ currently implemented:
|
|
|
21
21
|
Install this package with `npm`.
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
npm i @
|
|
24
|
+
npm i @phantomstudios/ft-lib
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
## Usage
|
|
@@ -39,6 +39,7 @@ The constructor requires the config JSON object (TODO - schema) and optionally a
|
|
|
39
39
|
```
|
|
40
40
|
scrollTrackerSelector: "#o_tracker_scroll", //top level DOM element selector for scroll tracking
|
|
41
41
|
isCustomGTMEvent: true, //selects between GTM and UA(GTAG) event formats - TODO - handle automatically by detecting loaded GTM/UA?
|
|
42
|
+
disableAppFormatTransform: false, //by default the config.app variable is formatted, ie: "app": "home-page" -> "app": "Home_page" - set to true to disable this formatting
|
|
42
43
|
|
|
43
44
|
```
|
|
44
45
|
|
|
@@ -49,7 +50,7 @@ The site config JSON object passed in the constructor and all events handled by
|
|
|
49
50
|
Typical usage:
|
|
50
51
|
|
|
51
52
|
```Javascript
|
|
52
|
-
import { FTTracking } from '@
|
|
53
|
+
import { FTTracking } from '@phantomstudios/ft-lib'
|
|
53
54
|
|
|
54
55
|
//For Wagtail sites, get server-rendered o-tracking-data
|
|
55
56
|
const config = JSON.parse(document.getElementById('o-tracking-data').textContent)
|
|
@@ -67,7 +68,7 @@ Adds an FT consent cookie poller to enable/disable Permutive consent (only usefu
|
|
|
67
68
|
There are optional constructor args for the hostname (defaults to window.location.hostname) and the dev environment host matches (defaults to ["localhost", "phq", "vercel.app"]) which are used to determine development environments in order to generate an FT banner event listener ((see [here](https://registry.origami.ft.com/components/o-cookie-message@6.0.1/readme?brand=master) for a list of banner DOM events) to set session-level cookies for development environments
|
|
68
69
|
|
|
69
70
|
```Javascript
|
|
70
|
-
import { consentMonitor } from "@
|
|
71
|
+
import { consentMonitor } from "@phantomstudios/ft-lib";
|
|
71
72
|
|
|
72
73
|
new consentMonitor("FT.staging.testsite.com". ["localhost", "phq", "staging"]);
|
|
73
74
|
```
|
|
@@ -78,7 +79,7 @@ emitPermutiveProgressEvents - used within a video player's progress event handle
|
|
|
78
79
|
Optional 3rd arg to pass a window.interval instance to be cleared once progress is complete.
|
|
79
80
|
|
|
80
81
|
```Javascript
|
|
81
|
-
import { permutiveVideoUtils } from "@
|
|
82
|
+
import { permutiveVideoUtils } from "@phantomstudios/ft-lib";
|
|
82
83
|
|
|
83
84
|
const permutivevideoTracker = new permutiveVideoUtils("<FT-CAMPAIGN>","<VIDEO-TITLE>","<VIDEO-ID/URL>") //Data will be site implementation specific
|
|
84
85
|
|
|
@@ -96,7 +97,7 @@ The constructor takes the parent site's FTTracking instance (typically set up as
|
|
|
96
97
|
Typical implementation:
|
|
97
98
|
|
|
98
99
|
```Javascript
|
|
99
|
-
import { reactPlayerTracking } from "@
|
|
100
|
+
import { reactPlayerTracking } from "@phantomstudios/ft-lib";
|
|
100
101
|
|
|
101
102
|
const [videoTracker] = useState(
|
|
102
103
|
new reactPlayerTracking(window.FTTracker, <VIDEO-TITLE>, <VIDEO-URL>),
|
|
@@ -123,7 +124,7 @@ NOTE: For Typescript usage as below, the @types/youtube NPM package should be ad
|
|
|
123
124
|
Typical implementation:
|
|
124
125
|
|
|
125
126
|
```Javascript
|
|
126
|
-
import { ytIframeTracking } from '@
|
|
127
|
+
import { ytIframeTracking } from '@phantomstudios/ft-lib';
|
|
127
128
|
|
|
128
129
|
const VIDEO_IFRAME_ID = 'video-iframe';
|
|
129
130
|
|
|
@@ -150,9 +151,9 @@ export class YoutubeIframeLoader {
|
|
|
150
151
|
}
|
|
151
152
|
```
|
|
152
153
|
|
|
153
|
-
[npm-image]: https://img.shields.io/npm/v/@
|
|
154
|
-
[npm-url]: https://npmjs.org/package/@
|
|
155
|
-
[npm-downloads-image]: https://img.shields.io/npm/dm/@
|
|
156
|
-
[npm-downloads-url]: https://npmcharts.com/compare/@
|
|
154
|
+
[npm-image]: https://img.shields.io/npm/v/@phantomstudios/ft-lib.svg?style=flat-square&logo=react
|
|
155
|
+
[npm-url]: https://npmjs.org/package/@phantomstudios/ft-lib
|
|
156
|
+
[npm-downloads-image]: https://img.shields.io/npm/dm/@phantomstudios/ft-lib.svg
|
|
157
|
+
[npm-downloads-url]: https://npmcharts.com/compare/@phantomstudios/ft-lib?minimal=true
|
|
157
158
|
[ci-image]: https://github.com/phantomstudios/ft-lib/workflows/test/badge.svg
|
|
158
159
|
[ci-url]: https://github.com/phantomstudios/ft-lib/actions
|
|
@@ -6,6 +6,8 @@ export interface TrackingOptions {
|
|
|
6
6
|
scrollTrackerSelector?: string;
|
|
7
7
|
isCustomGTMEvent?: boolean;
|
|
8
8
|
sendGTMPageViewYN?: boolean;
|
|
9
|
+
sendBrandedContent?: boolean;
|
|
10
|
+
disableAppFormatTransform?: boolean;
|
|
9
11
|
}
|
|
10
12
|
export declare class FTTracking {
|
|
11
13
|
private _config;
|
|
@@ -13,6 +15,7 @@ export declare class FTTracking {
|
|
|
13
15
|
oTracker: oTracker;
|
|
14
16
|
gaTracker: gaTracker;
|
|
15
17
|
scrollTracker: ScrollTracker;
|
|
18
|
+
disableAppFormatTransform: boolean;
|
|
16
19
|
oEvent: (detail: OrigamiEventType) => void;
|
|
17
20
|
gaEvent: (category: string, action: string, label: string) => void;
|
|
18
21
|
gtmEvent: (category: string, action: string, label: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/FTTracking/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAEL,UAAU,EACV,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,eAAe;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/FTTracking/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAEL,UAAU,EACV,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,eAAe;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AASD,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,yBAAyB,EAAE,OAAO,CAAC;IACnC,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;gBAExD,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe;IAuBzD,IAAI,MAAM,CAAC,CAAC,EAAE,UAAU,EAGvB;IACD,IAAI,MAAM,IAJI,UAAU,CAMvB;IAEM,WAAW,CAAC,MAAM,EAAE,UAAU;CActC"}
|
package/lib/FTTracking/index.js
CHANGED
|
@@ -21,12 +21,15 @@ var DEFAULT_OPTIONS = {
|
|
|
21
21
|
scrollTrackerSelector: "#o_tracker_scroll",
|
|
22
22
|
isCustomGTMEvent: true,
|
|
23
23
|
sendGTMPageViewYN: true,
|
|
24
|
+
sendBrandedContent: true,
|
|
24
25
|
};
|
|
25
26
|
var FTTracking = /** @class */ (function () {
|
|
26
27
|
function FTTracking(config, options) {
|
|
27
28
|
this.options = __assign(__assign({}, DEFAULT_OPTIONS), options);
|
|
28
29
|
this.oTracker = new oTracker_1.oTracker(config, this.options);
|
|
29
30
|
this.gaTracker = new gaTracker_1.gaTracker(this.options);
|
|
31
|
+
this.disableAppFormatTransform =
|
|
32
|
+
this.options.disableAppFormatTransform || false;
|
|
30
33
|
this.oEvent = this.oTracker.eventDispatcher;
|
|
31
34
|
this.gaEvent = this.options.isCustomGTMEvent
|
|
32
35
|
? this.gaTracker.GTMEventDispatcher
|
|
@@ -53,10 +56,12 @@ var FTTracking = /** @class */ (function () {
|
|
|
53
56
|
});
|
|
54
57
|
FTTracking.prototype.newPageView = function (config) {
|
|
55
58
|
//Update passed config to otracker,send pageview events and reset scrollTracker
|
|
56
|
-
(0, yupValidator_1.validateConfig)(config);
|
|
59
|
+
(0, yupValidator_1.validateConfig)(config, this.disableAppFormatTransform);
|
|
57
60
|
this.oTracker.config = config;
|
|
58
61
|
this.oTracker.broadcastPageView();
|
|
59
|
-
this.
|
|
62
|
+
if (this.options.sendBrandedContent) {
|
|
63
|
+
this.oTracker.broadcastBrandedContent();
|
|
64
|
+
}
|
|
60
65
|
this.scrollTracker.reset();
|
|
61
66
|
if (this.options.sendGTMPageViewYN) {
|
|
62
67
|
this.gaTracker.GTMVirtualPageView(this.config.url, this.config.title);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/FTTracking/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oDAAmD;AACnD,0CAAyC;AACzC,wCAAuC;AACvC,0CAAgD;AAChD,sDAI+B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/FTTracking/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oDAAmD;AACnD,0CAAyC;AACzC,wCAAuC;AACvC,0CAAgD;AAChD,sDAI+B;AAU/B,IAAM,eAAe,GAAG;IACtB,qBAAqB,EAAE,mBAAmB;IAC1C,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAEF;IAWE,oBAAY,MAAkB,EAAE,OAAyB;QACvD,IAAI,CAAC,OAAO,yBAAQ,eAAe,GAAK,OAAO,CAAE,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,yBAAyB;YAC5B,IAAI,CAAC,OAAO,CAAC,yBAAyB,IAAI,KAAK,CAAC;QAElD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB;YAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB;YACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,yBAAyB;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAa,CAAC,IAAI,CAAC,CAAC;QAE7C,+CAA+C;QAC/C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC9B,IAAI,+BAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,sBAAI,8BAAM;aAIV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;aAND,UAAW,CAAa;YACtB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC;;;OAAA;IAKM,gCAAW,GAAlB,UAAmB,MAAkB;QACnC,+EAA+E;QAC/E,IAAA,6BAAc,EAAC,MAAM,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC;SACzC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACvE;QACD,mDAAmD;IACrD,CAAC;IACH,iBAAC;AAAD,CAAC,AAxDD,IAwDC;AAxDY,gCAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/oTracker/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAIL,UAAU,EACV,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAK/B,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;gBAEb,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/oTracker/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAIL,UAAU,EACV,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAK/B,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;gBAEb,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe;IAiCxD,IAAI,MAAM,CAAC,CAAC,EAAE,UAAU,EAEvB;IACD,IAAI,MAAM,IAHI,UAAU,CAKvB;IAEM,eAAe,CAAC,MAAM,EAAE,gBAAgB;IAaxC,iBAAiB;IAQjB,uBAAuB;IAa9B,gBAAgB;CAgCjB"}
|
package/lib/oTracker/index.js
CHANGED
|
@@ -24,8 +24,8 @@ The config object is read from the server-rendered o-tracking-data element
|
|
|
24
24
|
*/
|
|
25
25
|
var oTracker = /** @class */ (function () {
|
|
26
26
|
function oTracker(config, options) {
|
|
27
|
-
this._config = (0, yupValidator_1.parseConfig)(config);
|
|
28
|
-
(0, yupValidator_1.validateConfig)(this._config);
|
|
27
|
+
this._config = (0, yupValidator_1.parseConfig)(config, options.disableAppFormatTransform || false);
|
|
28
|
+
(0, yupValidator_1.validateConfig)(this._config, options.disableAppFormatTransform || false);
|
|
29
29
|
this._config.source_id = o_tracking_1.default.getRootID();
|
|
30
30
|
this.options = options;
|
|
31
31
|
//init config data
|
|
@@ -43,7 +43,9 @@ var oTracker = /** @class */ (function () {
|
|
|
43
43
|
//document.dispatchEvent(new CustomEvent("o.DOMContentLoaded")); //TODO this isnt needed on next and breaks the cookie-message eventhandlers - is it needed for the server sites?
|
|
44
44
|
//send page hits
|
|
45
45
|
this.broadcastPageView();
|
|
46
|
-
|
|
46
|
+
if (options.sendBrandedContent) {
|
|
47
|
+
this.broadcastBrandedContent();
|
|
48
|
+
}
|
|
47
49
|
}
|
|
48
50
|
Object.defineProperty(oTracker.prototype, "config", {
|
|
49
51
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oTracker/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2EAAoD;AAGpD,4CAAsD;AACtD,+DAAyC;AACzC,sDAM+B;AAE/B;;EAEE;AACF;IAIE,kBAAY,MAAkB,EAAE,OAAwB;QACtD,IAAI,CAAC,OAAO,GAAG,IAAA,0BAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oTracker/index.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/attention.js
CHANGED
|
@@ -1,30 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
4
|
};
|
|
25
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
6
|
exports.Attention = void 0;
|
|
27
|
-
var
|
|
7
|
+
var o_viewport_1 = __importDefault(require("@financial-times/o-viewport"));
|
|
28
8
|
var ATTENTION_INTERVAL = 15000;
|
|
29
9
|
var ATTENTION_EVENTS = [
|
|
30
10
|
"load",
|
|
@@ -60,7 +40,7 @@ var Attention = /** @class */ (function () {
|
|
|
60
40
|
});
|
|
61
41
|
}
|
|
62
42
|
// Need to wait for this to be available
|
|
63
|
-
|
|
43
|
+
o_viewport_1.default.listenTo("visibility");
|
|
64
44
|
document.body.addEventListener("oViewport.visibility", function (ev) { return _this.handleVisibilityChange(ev); }, false);
|
|
65
45
|
this.addVideoEvents();
|
|
66
46
|
// Add event to send data on unload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attention.js","sourceRoot":"","sources":["../../src/utils/attention.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attention.js","sourceRoot":"","sources":["../../src/utils/attention.js"],"names":[],"mappings":"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"}
|
package/lib/utils/scroll.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { ConfigType } from "./yupValidator";
|
|
1
2
|
import { TrackingOptions } from "../FTTracking";
|
|
2
3
|
import { FTTracking } from "../FTTracking";
|
|
3
4
|
import { gaTracker } from "../gaTracker";
|
|
4
5
|
import { oTracker } from "../oTracker";
|
|
5
|
-
import { ConfigType } from "./yupValidator";
|
|
6
6
|
import "./intersectionObserverPolyfill";
|
|
7
7
|
export declare class ScrollTracker {
|
|
8
8
|
oTracker: oTracker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/utils/scroll.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/utils/scroll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAoB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,gCAAgC,CAAC;AAExC,qBAAa,aAAa;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;gBACP,SAAS,EAAE,UAAU;IAUjC,KAAK;IAQL,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,SAAK;IAuBpD,oBAAoB,CAClB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,yBAAyB,EAAE;CAmCvC"}
|
package/lib/utils/scroll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/utils/scroll.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/utils/scroll.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InferType, ValidationError } from "yup";
|
|
2
2
|
declare const configSchema: import("yup").ObjectSchema<{
|
|
3
|
-
product:
|
|
3
|
+
product: string | undefined;
|
|
4
4
|
url: string;
|
|
5
5
|
feature: string;
|
|
6
6
|
author: string;
|
|
@@ -24,7 +24,7 @@ declare const configSchema: import("yup").ObjectSchema<{
|
|
|
24
24
|
wordCount: number | undefined;
|
|
25
25
|
commercial_product: string;
|
|
26
26
|
}, import("yup").AnyObject, {
|
|
27
|
-
product:
|
|
27
|
+
product: undefined;
|
|
28
28
|
url: undefined;
|
|
29
29
|
feature: undefined;
|
|
30
30
|
author: "";
|
|
@@ -69,8 +69,8 @@ declare const origamiEventSchema: import("yup").ObjectSchema<{
|
|
|
69
69
|
}, "">;
|
|
70
70
|
export type ConfigType = InferType<typeof configSchema>;
|
|
71
71
|
export type OrigamiEventType = InferType<typeof origamiEventSchema>;
|
|
72
|
-
export declare const parseConfig: (config: ConfigType) => ConfigType;
|
|
73
|
-
export declare const validateConfig: (config: ConfigType) => ValidationError[] | undefined;
|
|
72
|
+
export declare const parseConfig: (config: ConfigType, disableAppFormatTransform: boolean) => ConfigType;
|
|
73
|
+
export declare const validateConfig: (config: ConfigType, disableAppFormatTransform: boolean) => ValidationError[] | undefined;
|
|
74
74
|
export declare const validateOrigamiEvent: (config: OrigamiEventType) => ValidationError[] | undefined;
|
|
75
75
|
export {};
|
|
76
76
|
//# sourceMappingURL=yupValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yupValidator.d.ts","sourceRoot":"","sources":["../../src/utils/yupValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,SAAS,EACT,eAAe,EAChB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"yupValidator.d.ts","sourceRoot":"","sources":["../../src/utils/yupValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,SAAS,EACT,eAAe,EAChB,MAAM,KAAK,CAAC;AAwBb,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwDhB,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;MAkCtB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,WAAW,WACd,UAAU,6BACS,OAAO,KACjC,UAoBF,CAAC;AAEF,eAAO,MAAM,cAAc,WACjB,UAAU,6BACS,OAAO,KACjC,eAAe,EAAE,GAAG,SAatB,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,gBAAgB,KACvB,eAAe,EAAE,GAAG,SAatB,CAAC"}
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateOrigamiEvent = exports.validateConfig = exports.parseConfig = void 0;
|
|
4
4
|
var yup_1 = require("yup");
|
|
5
|
+
var disableAppFormatTransformValue = false;
|
|
5
6
|
//transform passed values to first character uppercase and replace spaces with underscores
|
|
6
|
-
var unifyValuesTransform = function (value) {
|
|
7
|
+
var unifyValuesTransform = function (value, disableTransform) {
|
|
8
|
+
if (disableTransform === void 0) { disableTransform = false; }
|
|
9
|
+
if (disableTransform)
|
|
10
|
+
return value;
|
|
7
11
|
return (value.trim().charAt(0).toUpperCase() +
|
|
8
12
|
value.trim().slice(1).toLowerCase().replace(/ /g, "_").replace(/-/g, "_"));
|
|
9
13
|
};
|
|
@@ -16,9 +20,9 @@ var authorTransform = function (value) {
|
|
|
16
20
|
value.trim().slice(1).toLowerCase().replace(/ /g, "_").replace(/-/g, "_"));
|
|
17
21
|
};
|
|
18
22
|
var configSchema = (0, yup_1.object)({
|
|
19
|
-
product: (0, yup_1.string)().
|
|
23
|
+
product: (0, yup_1.string)().oneOf(["paid-post", "commercial-ft-com"]),
|
|
20
24
|
url: (0, yup_1.string)().required(),
|
|
21
|
-
feature: (0, yup_1.string)().required().oneOf(["channel", "microsite"]),
|
|
25
|
+
feature: (0, yup_1.string)().required().oneOf(["channel", "microsite", "commercial"]),
|
|
22
26
|
author: (0, yup_1.string)().defined().default("").transform(authorTransform),
|
|
23
27
|
sponsor: (0, yup_1.string)().defined().default(""),
|
|
24
28
|
articleName: (0, yup_1.string)().defined().default(""),
|
|
@@ -38,7 +42,9 @@ var configSchema = (0, yup_1.object)({
|
|
|
38
42
|
app: (0, yup_1.string)()
|
|
39
43
|
.required()
|
|
40
44
|
.defined()
|
|
41
|
-
.transform(
|
|
45
|
+
.transform(function (value) {
|
|
46
|
+
return unifyValuesTransform(value, disableAppFormatTransformValue);
|
|
47
|
+
})
|
|
42
48
|
.oneOf([
|
|
43
49
|
"Stream",
|
|
44
50
|
"Article",
|
|
@@ -50,6 +56,14 @@ var configSchema = (0, yup_1.object)({
|
|
|
50
56
|
"Infographic",
|
|
51
57
|
"Interactive_infographic",
|
|
52
58
|
"Photo_essay",
|
|
59
|
+
"home-page",
|
|
60
|
+
"capabilities",
|
|
61
|
+
"my-products",
|
|
62
|
+
"audience",
|
|
63
|
+
"case-studies",
|
|
64
|
+
"markets",
|
|
65
|
+
"news-and-insights",
|
|
66
|
+
"other",
|
|
53
67
|
]),
|
|
54
68
|
publishDate: (0, yup_1.string)().nullable().default(""),
|
|
55
69
|
isBranded: (0, yup_1.boolean)().defined(),
|
|
@@ -97,8 +111,9 @@ var origamiEventSchema = (0, yup_1.object)({
|
|
|
97
111
|
then: function () { return (0, yup_1.number)().required(); },
|
|
98
112
|
}),
|
|
99
113
|
});
|
|
100
|
-
var parseConfig = function (config) {
|
|
114
|
+
var parseConfig = function (config, disableAppFormatTransform) {
|
|
101
115
|
var _a;
|
|
116
|
+
disableAppFormatTransformValue = disableAppFormatTransform;
|
|
102
117
|
try {
|
|
103
118
|
//Replace app value based on deprecated hasVideo field and then remove hasVideo
|
|
104
119
|
if (config.hasVideo && config.app.toLowerCase() === "article") {
|
|
@@ -119,8 +134,9 @@ var parseConfig = function (config) {
|
|
|
119
134
|
}
|
|
120
135
|
};
|
|
121
136
|
exports.parseConfig = parseConfig;
|
|
122
|
-
var validateConfig = function (config) {
|
|
137
|
+
var validateConfig = function (config, disableAppFormatTransform) {
|
|
123
138
|
var _a;
|
|
139
|
+
disableAppFormatTransformValue = disableAppFormatTransform;
|
|
124
140
|
try {
|
|
125
141
|
configSchema.validateSync(config, {
|
|
126
142
|
strict: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yupValidator.js","sourceRoot":"","sources":["../../src/utils/yupValidator.ts"],"names":[],"mappings":";;;AAAA,2BAQa;AAEb,0FAA0F;AAC1F,IAAM,oBAAoB,GAAG,UAAC,KAAa;
|
|
1
|
+
{"version":3,"file":"yupValidator.js","sourceRoot":"","sources":["../../src/utils/yupValidator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phantomstudios/ft-lib",
|
|
3
3
|
"description": "A collection of Javascript UI & tracking utils for FT sites",
|
|
4
|
-
"version": "0.3.0-
|
|
4
|
+
"version": "0.3.0-rc10",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"homepage": "https://github.com/phantomstudios/ft-lib#readme",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@typescript-eslint/parser": "^4.24.0",
|
|
47
47
|
"babel-eslint": "^10.1.0",
|
|
48
48
|
"babel-jest": "^26.0.1",
|
|
49
|
-
"browser-env": "^
|
|
49
|
+
"browser-env": "^2.0.21",
|
|
50
50
|
"debug": "^4.3.2",
|
|
51
51
|
"eslint": "^7.26.0",
|
|
52
52
|
"eslint-config-prettier": "^8.3.0",
|
|
@@ -66,6 +66,6 @@
|
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"@financial-times/o-tracking": "^4.5.1",
|
|
69
|
-
"@financial-times/o-viewport": "^
|
|
69
|
+
"@financial-times/o-viewport": "^5.1.2"
|
|
70
70
|
}
|
|
71
71
|
}
|
package/src/FTTracking/index.ts
CHANGED
|
@@ -12,12 +12,15 @@ export interface TrackingOptions {
|
|
|
12
12
|
scrollTrackerSelector?: string;
|
|
13
13
|
isCustomGTMEvent?: boolean;
|
|
14
14
|
sendGTMPageViewYN?: boolean;
|
|
15
|
+
sendBrandedContent?: boolean;
|
|
16
|
+
disableAppFormatTransform?: boolean;
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
const DEFAULT_OPTIONS = {
|
|
18
20
|
scrollTrackerSelector: "#o_tracker_scroll",
|
|
19
21
|
isCustomGTMEvent: true,
|
|
20
22
|
sendGTMPageViewYN: true,
|
|
23
|
+
sendBrandedContent: true,
|
|
21
24
|
};
|
|
22
25
|
|
|
23
26
|
export class FTTracking {
|
|
@@ -26,6 +29,7 @@ export class FTTracking {
|
|
|
26
29
|
oTracker: oTracker;
|
|
27
30
|
gaTracker: gaTracker;
|
|
28
31
|
scrollTracker: ScrollTracker;
|
|
32
|
+
disableAppFormatTransform: boolean;
|
|
29
33
|
oEvent: (detail: OrigamiEventType) => void;
|
|
30
34
|
gaEvent: (category: string, action: string, label: string) => void;
|
|
31
35
|
gtmEvent: (category: string, action: string, label: string) => void;
|
|
@@ -34,6 +38,8 @@ export class FTTracking {
|
|
|
34
38
|
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
35
39
|
this.oTracker = new oTracker(config, this.options);
|
|
36
40
|
this.gaTracker = new gaTracker(this.options);
|
|
41
|
+
this.disableAppFormatTransform =
|
|
42
|
+
this.options.disableAppFormatTransform || false;
|
|
37
43
|
|
|
38
44
|
this.oEvent = this.oTracker.eventDispatcher;
|
|
39
45
|
this.gaEvent = this.options.isCustomGTMEvent
|
|
@@ -61,10 +67,12 @@ export class FTTracking {
|
|
|
61
67
|
|
|
62
68
|
public newPageView(config: ConfigType) {
|
|
63
69
|
//Update passed config to otracker,send pageview events and reset scrollTracker
|
|
64
|
-
validateConfig(config);
|
|
70
|
+
validateConfig(config, this.disableAppFormatTransform);
|
|
65
71
|
this.oTracker.config = config;
|
|
66
72
|
this.oTracker.broadcastPageView();
|
|
67
|
-
this.
|
|
73
|
+
if (this.options.sendBrandedContent) {
|
|
74
|
+
this.oTracker.broadcastBrandedContent();
|
|
75
|
+
}
|
|
68
76
|
this.scrollTracker.reset();
|
|
69
77
|
if (this.options.sendGTMPageViewYN) {
|
|
70
78
|
this.gaTracker.GTMVirtualPageView(this.config.url, this.config.title);
|
package/src/oTracker/index.ts
CHANGED
|
@@ -19,8 +19,11 @@ export class oTracker {
|
|
|
19
19
|
options: TrackingOptions;
|
|
20
20
|
|
|
21
21
|
constructor(config: ConfigType, options: TrackingOptions) {
|
|
22
|
-
this._config = parseConfig(
|
|
23
|
-
|
|
22
|
+
this._config = parseConfig(
|
|
23
|
+
config,
|
|
24
|
+
options.disableAppFormatTransform || false
|
|
25
|
+
);
|
|
26
|
+
validateConfig(this._config, options.disableAppFormatTransform || false);
|
|
24
27
|
this._config.source_id = oTracking.getRootID();
|
|
25
28
|
this.options = options;
|
|
26
29
|
|
|
@@ -43,7 +46,9 @@ export class oTracker {
|
|
|
43
46
|
//document.dispatchEvent(new CustomEvent("o.DOMContentLoaded")); //TODO this isnt needed on next and breaks the cookie-message eventhandlers - is it needed for the server sites?
|
|
44
47
|
//send page hits
|
|
45
48
|
this.broadcastPageView();
|
|
46
|
-
|
|
49
|
+
if (options.sendBrandedContent) {
|
|
50
|
+
this.broadcastBrandedContent();
|
|
51
|
+
}
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
set config(c: ConfigType) {
|
package/src/utils/attention.js
CHANGED
package/src/utils/scroll.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { Attention } from "./attention";
|
|
2
|
+
import { ConfigType, OrigamiEventType } from "./yupValidator";
|
|
1
3
|
import { TrackingOptions } from "../FTTracking";
|
|
2
4
|
import { FTTracking } from "../FTTracking";
|
|
3
5
|
import { gaTracker } from "../gaTracker";
|
|
4
6
|
import { oTracker } from "../oTracker";
|
|
5
|
-
import { Attention } from "./attention";
|
|
6
|
-
import { ConfigType, OrigamiEventType } from "./yupValidator";
|
|
7
7
|
|
|
8
8
|
import "./intersectionObserverPolyfill";
|
|
9
9
|
|
|
@@ -8,8 +8,11 @@ import {
|
|
|
8
8
|
ValidationError,
|
|
9
9
|
} from "yup";
|
|
10
10
|
|
|
11
|
+
let disableAppFormatTransformValue = false;
|
|
12
|
+
|
|
11
13
|
//transform passed values to first character uppercase and replace spaces with underscores
|
|
12
|
-
const unifyValuesTransform = (value: string) => {
|
|
14
|
+
const unifyValuesTransform = (value: string, disableTransform = false) => {
|
|
15
|
+
if (disableTransform) return value;
|
|
13
16
|
return (
|
|
14
17
|
value.trim().charAt(0).toUpperCase() +
|
|
15
18
|
value.trim().slice(1).toLowerCase().replace(/ /g, "_").replace(/-/g, "_")
|
|
@@ -28,9 +31,9 @@ const authorTransform = (value: string) => {
|
|
|
28
31
|
};
|
|
29
32
|
|
|
30
33
|
const configSchema = object({
|
|
31
|
-
product: string().
|
|
34
|
+
product: string().oneOf(["paid-post", "commercial-ft-com"]),
|
|
32
35
|
url: string().required(),
|
|
33
|
-
feature: string().required().oneOf(["channel", "microsite"]),
|
|
36
|
+
feature: string().required().oneOf(["channel", "microsite", "commercial"]),
|
|
34
37
|
author: string().defined().default("").transform(authorTransform),
|
|
35
38
|
sponsor: string().defined().default(""),
|
|
36
39
|
articleName: string().defined().default(""),
|
|
@@ -50,7 +53,9 @@ const configSchema = object({
|
|
|
50
53
|
app: string()
|
|
51
54
|
.required()
|
|
52
55
|
.defined()
|
|
53
|
-
.transform(
|
|
56
|
+
.transform((value) =>
|
|
57
|
+
unifyValuesTransform(value, disableAppFormatTransformValue)
|
|
58
|
+
)
|
|
54
59
|
.oneOf([
|
|
55
60
|
"Stream",
|
|
56
61
|
"Article",
|
|
@@ -62,6 +67,14 @@ const configSchema = object({
|
|
|
62
67
|
"Infographic",
|
|
63
68
|
"Interactive_infographic",
|
|
64
69
|
"Photo_essay",
|
|
70
|
+
"home-page",
|
|
71
|
+
"capabilities",
|
|
72
|
+
"my-products",
|
|
73
|
+
"audience",
|
|
74
|
+
"case-studies",
|
|
75
|
+
"markets",
|
|
76
|
+
"news-and-insights",
|
|
77
|
+
"other",
|
|
65
78
|
]),
|
|
66
79
|
publishDate: string().nullable().default(""),
|
|
67
80
|
isBranded: boolean().defined(),
|
|
@@ -114,7 +127,11 @@ const origamiEventSchema = object({
|
|
|
114
127
|
export type ConfigType = InferType<typeof configSchema>;
|
|
115
128
|
export type OrigamiEventType = InferType<typeof origamiEventSchema>;
|
|
116
129
|
|
|
117
|
-
export const parseConfig = (
|
|
130
|
+
export const parseConfig = (
|
|
131
|
+
config: ConfigType,
|
|
132
|
+
disableAppFormatTransform: boolean
|
|
133
|
+
): ConfigType => {
|
|
134
|
+
disableAppFormatTransformValue = disableAppFormatTransform;
|
|
118
135
|
try {
|
|
119
136
|
//Replace app value based on deprecated hasVideo field and then remove hasVideo
|
|
120
137
|
if (config.hasVideo && config.app.toLowerCase() === "article") {
|
|
@@ -136,8 +153,10 @@ export const parseConfig = (config: ConfigType): ConfigType => {
|
|
|
136
153
|
};
|
|
137
154
|
|
|
138
155
|
export const validateConfig = (
|
|
139
|
-
config: ConfigType
|
|
156
|
+
config: ConfigType,
|
|
157
|
+
disableAppFormatTransform: boolean
|
|
140
158
|
): ValidationError[] | undefined => {
|
|
159
|
+
disableAppFormatTransformValue = disableAppFormatTransform;
|
|
141
160
|
try {
|
|
142
161
|
configSchema.validateSync(config, {
|
|
143
162
|
strict: false,
|