@phantomstudios/ft-lib 0.2.0 → 0.3.0-rc1
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/lib/gaTracker/index.d.ts +1 -1
- package/lib/gaTracker/index.d.ts.map +1 -1
- package/lib/gaTracker/index.js +4 -5
- package/lib/gaTracker/index.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/utils/yupValidator.d.ts +0 -11
- package/lib/utils/yupValidator.d.ts.map +1 -1
- package/lib/utils/yupValidator.js +1 -35
- package/lib/utils/yupValidator.js.map +1 -1
- package/package.json +2 -6
- package/src/gaTracker/index.ts +3 -6
- package/src/index.ts +1 -5
- package/src/utils/yupValidator.ts +0 -36
package/lib/gaTracker/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { TrackingOptions } from "../FTTracking";
|
|
|
2
2
|
export declare class gaTracker {
|
|
3
3
|
options: TrackingOptions;
|
|
4
4
|
constructor(options: TrackingOptions);
|
|
5
|
-
GTMEventDispatcher(category: string, action
|
|
5
|
+
GTMEventDispatcher(category: string, action?: string, label?: string): void;
|
|
6
6
|
GTMVirtualPageView(pageUrl: string, pageTitle: string): void;
|
|
7
7
|
GtagEventDispatcher(category: string, action: string, label: string): void;
|
|
8
8
|
addDataAttributesListener(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gaTracker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gaTracker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIhD,qBAAa,SAAS;IACpB,OAAO,kBAAC;gBACI,OAAO,EAAE,eAAe;IAU7B,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,KAAK,SAAK;IAa5D,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAQrD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAO1E,yBAAyB;IA0BzB,8BAA8B;IAc9B,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAmChE,wBAAwB;CAazB"}
|
package/lib/gaTracker/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.gaTracker = void 0;
|
|
4
|
-
var yupValidator_1 = require("../utils/yupValidator");
|
|
5
4
|
var HEADER_CATEGORY = "Header";
|
|
6
5
|
var HEADER_SEARCH_ACTION = "Engagement - Search";
|
|
7
6
|
var gaTracker = /** @class */ (function () {
|
|
@@ -12,8 +11,11 @@ var gaTracker = /** @class */ (function () {
|
|
|
12
11
|
this.setUpFTNavigationSearchTracking(HEADER_CATEGORY, HEADER_SEARCH_ACTION);
|
|
13
12
|
this.setupFooterLinksTracking();
|
|
14
13
|
}
|
|
14
|
+
/*Dhia - Nov 2023 - For new FT GA4 implementations, customEvents typically only need a single property name (i.e category as the GA4 'event name')
|
|
15
|
+
so the other properties are now optional */
|
|
15
16
|
gaTracker.prototype.GTMEventDispatcher = function (category, action, label) {
|
|
16
|
-
|
|
17
|
+
if (action === void 0) { action = ""; }
|
|
18
|
+
if (label === void 0) { label = ""; }
|
|
17
19
|
//from channels - sets event categories on window on certain pages..replace?
|
|
18
20
|
if (category === "<category>" && window.gtmCategory) {
|
|
19
21
|
category = window.gtmCategory;
|
|
@@ -33,7 +35,6 @@ var gaTracker = /** @class */ (function () {
|
|
|
33
35
|
});
|
|
34
36
|
};
|
|
35
37
|
gaTracker.prototype.GtagEventDispatcher = function (category, action, label) {
|
|
36
|
-
(0, yupValidator_1.validateGTMCustomEvent)({ category: category, action: action, label: label });
|
|
37
38
|
window.gtag("event", action, {
|
|
38
39
|
event_category: category,
|
|
39
40
|
event_label: label,
|
|
@@ -48,9 +49,7 @@ var gaTracker = /** @class */ (function () {
|
|
|
48
49
|
if (!gaEventString)
|
|
49
50
|
return;
|
|
50
51
|
var _a = gaEventString.split("|"), category = _a[0], action = _a[1], label = _a[2];
|
|
51
|
-
//TODO validate event fields
|
|
52
52
|
if (typeof window !== "undefined") {
|
|
53
|
-
//TBC - GTM customEvent tag vs standard UA event push?
|
|
54
53
|
if (_this.options.isCustomGTMEvent) {
|
|
55
54
|
_this.GTMEventDispatcher(category, action, label || window.location.pathname //use pathname if label section has not been defined
|
|
56
55
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gaTracker/index.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gaTracker/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -5,5 +5,5 @@ export { gaTracker } from "./gaTracker";
|
|
|
5
5
|
export { oTracker } from "./oTracker";
|
|
6
6
|
export { ytIframeTracking } from "./ytIframeTracking";
|
|
7
7
|
export { FTTracking, TrackingOptions } from "./FTTracking";
|
|
8
|
-
export { ConfigType, OrigamiEventType
|
|
8
|
+
export { ConfigType, OrigamiEventType } from "./utils/yupValidator";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -48,15 +48,6 @@ declare const configSchema: import("yup").ObjectSchema<{
|
|
|
48
48
|
wordCount: undefined;
|
|
49
49
|
commercial_product: "ft";
|
|
50
50
|
}, "">;
|
|
51
|
-
declare const gtmCustomEventSchema: import("yup").ObjectSchema<{
|
|
52
|
-
category: string;
|
|
53
|
-
action: string;
|
|
54
|
-
label: string;
|
|
55
|
-
}, import("yup").AnyObject, {
|
|
56
|
-
category: undefined;
|
|
57
|
-
action: undefined;
|
|
58
|
-
label: undefined;
|
|
59
|
-
}, "">;
|
|
60
51
|
declare const origamiEventSchema: import("yup").ObjectSchema<{
|
|
61
52
|
category: string;
|
|
62
53
|
action: string;
|
|
@@ -77,11 +68,9 @@ declare const origamiEventSchema: import("yup").ObjectSchema<{
|
|
|
77
68
|
progress: undefined;
|
|
78
69
|
}, "">;
|
|
79
70
|
export type ConfigType = InferType<typeof configSchema>;
|
|
80
|
-
export type GTMCustomEventType = InferType<typeof gtmCustomEventSchema>;
|
|
81
71
|
export type OrigamiEventType = InferType<typeof origamiEventSchema>;
|
|
82
72
|
export declare const parseConfig: (config: ConfigType) => ConfigType;
|
|
83
73
|
export declare const validateConfig: (config: ConfigType) => ValidationError[] | undefined;
|
|
84
|
-
export declare const validateGTMCustomEvent: (event: GTMCustomEventType) => ValidationError[] | undefined;
|
|
85
74
|
export declare const validateOrigamiEvent: (config: OrigamiEventType) => ValidationError[] | undefined;
|
|
86
75
|
export {};
|
|
87
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;AAqBb,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA8ChB,CAAC;AAEH,QAAA,MAAM,
|
|
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;AAqBb,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA8ChB,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,WAAY,UAAU,KAAG,UAmBhD,CAAC;AAEF,eAAO,MAAM,cAAc,WACjB,UAAU,KACjB,eAAe,EAAE,GAAG,SAYtB,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,gBAAgB,KACvB,eAAe,EAAE,GAAG,SAatB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateOrigamiEvent = exports.
|
|
3
|
+
exports.validateOrigamiEvent = exports.validateConfig = exports.parseConfig = void 0;
|
|
4
4
|
var yup_1 = require("yup");
|
|
5
5
|
//transform passed values to first character uppercase and replace spaces with underscores
|
|
6
6
|
var unifyValuesTransform = function (value) {
|
|
@@ -62,24 +62,6 @@ var configSchema = (0, yup_1.object)({
|
|
|
62
62
|
wordCount: (0, yup_1.number)().optional(),
|
|
63
63
|
commercial_product: (0, yup_1.string)().optional().default("ft"),
|
|
64
64
|
});
|
|
65
|
-
var gtmCustomEventSchema = (0, yup_1.object)({
|
|
66
|
-
category: (0, yup_1.string)()
|
|
67
|
-
.required()
|
|
68
|
-
.oneOf([
|
|
69
|
-
"Internal click",
|
|
70
|
-
"External click",
|
|
71
|
-
"Video",
|
|
72
|
-
"Video:fallback",
|
|
73
|
-
"Audio",
|
|
74
|
-
"Scroll",
|
|
75
|
-
"Share",
|
|
76
|
-
"Form",
|
|
77
|
-
"Header",
|
|
78
|
-
"Footer",
|
|
79
|
-
]),
|
|
80
|
-
action: (0, yup_1.string)().required(),
|
|
81
|
-
label: (0, yup_1.string)().required(),
|
|
82
|
-
});
|
|
83
65
|
var origamiEventSchema = (0, yup_1.object)({
|
|
84
66
|
category: (0, yup_1.string)()
|
|
85
67
|
.required()
|
|
@@ -153,22 +135,6 @@ var validateConfig = function (config) {
|
|
|
153
135
|
return undefined;
|
|
154
136
|
};
|
|
155
137
|
exports.validateConfig = validateConfig;
|
|
156
|
-
var validateGTMCustomEvent = function (event) {
|
|
157
|
-
var _a;
|
|
158
|
-
try {
|
|
159
|
-
gtmCustomEventSchema.validateSync(event, {
|
|
160
|
-
strict: true,
|
|
161
|
-
abortEarly: false,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
catch (err) {
|
|
165
|
-
(_a = err.errors) === null || _a === void 0 ? void 0 : _a.map(function (err) {
|
|
166
|
-
console.error("FTTracker - GTM custom event validation error: " + err);
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
return undefined;
|
|
170
|
-
};
|
|
171
|
-
exports.validateGTMCustomEvent = validateGTMCustomEvent;
|
|
172
138
|
var validateOrigamiEvent = function (config) {
|
|
173
139
|
var _a;
|
|
174
140
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yupValidator.js","sourceRoot":"","sources":["../../src/utils/yupValidator.ts"],"names":[],"mappings":"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
|
|
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.
|
|
4
|
+
"version": "0.3.0-rc1",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"homepage": "https://github.com/phantomstudios/ft-lib#readme",
|
|
@@ -40,7 +40,6 @@
|
|
|
40
40
|
"@babel/preset-typescript": "^7.13.0",
|
|
41
41
|
"@types/debug": "^4.1.7",
|
|
42
42
|
"@types/jest": "^26.0.23",
|
|
43
|
-
"@types/react": "^17.0.6",
|
|
44
43
|
"@types/youtube": "^0.0.46",
|
|
45
44
|
"@types/yup": "^0.32.0",
|
|
46
45
|
"@typescript-eslint/eslint-plugin": "^4.24.0",
|
|
@@ -58,9 +57,6 @@
|
|
|
58
57
|
"jest": "^26.0.1",
|
|
59
58
|
"npm-run-all": "^4.1.5",
|
|
60
59
|
"prettier": "^2.3.0",
|
|
61
|
-
"react": "^17.0.2",
|
|
62
|
-
"react-dom": "^17.0.2",
|
|
63
|
-
"react-test-renderer": "^17.0.2",
|
|
64
60
|
"set-value": ">=4.0.1",
|
|
65
61
|
"ts-jest": "^26.5.6",
|
|
66
62
|
"typescript": "^4.2.4"
|
|
@@ -69,7 +65,7 @@
|
|
|
69
65
|
"yup": "^1.0.2"
|
|
70
66
|
},
|
|
71
67
|
"peerDependencies": {
|
|
72
|
-
"@financial-times/o-tracking": "^
|
|
68
|
+
"@financial-times/o-tracking": "^4.5.1",
|
|
73
69
|
"@financial-times/o-viewport": "^4.0.5"
|
|
74
70
|
}
|
|
75
71
|
}
|
package/src/gaTracker/index.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { TrackingOptions } from "../FTTracking";
|
|
2
|
-
import { validateGTMCustomEvent } from "../utils/yupValidator";
|
|
3
2
|
const HEADER_CATEGORY = "Header";
|
|
4
3
|
const HEADER_SEARCH_ACTION = "Engagement - Search";
|
|
5
4
|
|
|
@@ -13,8 +12,9 @@ export class gaTracker {
|
|
|
13
12
|
this.setupFooterLinksTracking();
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
/*Dhia - Nov 2023 - For new FT GA4 implementations, customEvents typically only need a single property name (i.e category as the GA4 'event name')
|
|
16
|
+
so the other properties are now optional */
|
|
17
|
+
public GTMEventDispatcher(category: string, action = "", label = "") {
|
|
18
18
|
//from channels - sets event categories on window on certain pages..replace?
|
|
19
19
|
if (category === "<category>" && window.gtmCategory) {
|
|
20
20
|
category = window.gtmCategory;
|
|
@@ -36,7 +36,6 @@ export class gaTracker {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
public GtagEventDispatcher(category: string, action: string, label: string) {
|
|
39
|
-
validateGTMCustomEvent({ category, action, label });
|
|
40
39
|
window.gtag("event", action, {
|
|
41
40
|
event_category: category,
|
|
42
41
|
event_label: label,
|
|
@@ -51,9 +50,7 @@ export class gaTracker {
|
|
|
51
50
|
if (!gaEventString) return;
|
|
52
51
|
const [category, action, label] = gaEventString.split("|");
|
|
53
52
|
|
|
54
|
-
//TODO validate event fields
|
|
55
53
|
if (typeof window !== "undefined") {
|
|
56
|
-
//TBC - GTM customEvent tag vs standard UA event push?
|
|
57
54
|
if (this.options.isCustomGTMEvent) {
|
|
58
55
|
this.GTMEventDispatcher(
|
|
59
56
|
category,
|
package/src/index.ts
CHANGED
|
@@ -5,8 +5,4 @@ export { gaTracker } from "./gaTracker";
|
|
|
5
5
|
export { oTracker } from "./oTracker";
|
|
6
6
|
export { ytIframeTracking } from "./ytIframeTracking";
|
|
7
7
|
export { FTTracking, TrackingOptions } from "./FTTracking";
|
|
8
|
-
export {
|
|
9
|
-
ConfigType,
|
|
10
|
-
OrigamiEventType,
|
|
11
|
-
GTMCustomEventType,
|
|
12
|
-
} from "./utils/yupValidator";
|
|
8
|
+
export { ConfigType, OrigamiEventType } from "./utils/yupValidator";
|
|
@@ -75,25 +75,6 @@ const configSchema = object({
|
|
|
75
75
|
commercial_product: string().optional().default("ft"),
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
-
const gtmCustomEventSchema = object({
|
|
79
|
-
category: string()
|
|
80
|
-
.required()
|
|
81
|
-
.oneOf([
|
|
82
|
-
"Internal click",
|
|
83
|
-
"External click",
|
|
84
|
-
"Video",
|
|
85
|
-
"Video:fallback",
|
|
86
|
-
"Audio",
|
|
87
|
-
"Scroll",
|
|
88
|
-
"Share",
|
|
89
|
-
"Form",
|
|
90
|
-
"Header",
|
|
91
|
-
"Footer",
|
|
92
|
-
]),
|
|
93
|
-
action: string().required(),
|
|
94
|
-
label: string().required(),
|
|
95
|
-
});
|
|
96
|
-
|
|
97
78
|
const origamiEventSchema = object({
|
|
98
79
|
category: string()
|
|
99
80
|
.required()
|
|
@@ -131,7 +112,6 @@ const origamiEventSchema = object({
|
|
|
131
112
|
});
|
|
132
113
|
|
|
133
114
|
export type ConfigType = InferType<typeof configSchema>;
|
|
134
|
-
export type GTMCustomEventType = InferType<typeof gtmCustomEventSchema>;
|
|
135
115
|
export type OrigamiEventType = InferType<typeof origamiEventSchema>;
|
|
136
116
|
|
|
137
117
|
export const parseConfig = (config: ConfigType): ConfigType => {
|
|
@@ -171,22 +151,6 @@ export const validateConfig = (
|
|
|
171
151
|
return undefined;
|
|
172
152
|
};
|
|
173
153
|
|
|
174
|
-
export const validateGTMCustomEvent = (
|
|
175
|
-
event: GTMCustomEventType
|
|
176
|
-
): ValidationError[] | undefined => {
|
|
177
|
-
try {
|
|
178
|
-
gtmCustomEventSchema.validateSync(event, {
|
|
179
|
-
strict: true,
|
|
180
|
-
abortEarly: false,
|
|
181
|
-
});
|
|
182
|
-
} catch (err: any) {
|
|
183
|
-
err.errors?.map((err: ValidationError) => {
|
|
184
|
-
console.error("FTTracker - GTM custom event validation error: " + err);
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
return undefined;
|
|
188
|
-
};
|
|
189
|
-
|
|
190
154
|
export const validateOrigamiEvent = (
|
|
191
155
|
config: OrigamiEventType
|
|
192
156
|
): ValidationError[] | undefined => {
|