@walkeros/web-destination-gtag 0.6.0 → 0.6.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.
- package/dist/dev.js +1 -1
- package/dist/dev.js.map +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/dev.mjs.map +1 -1
- package/dist/examples/index.js +19 -19
- package/dist/examples/index.mjs +19 -19
- package/dist/index.browser.js +1 -1
- package/dist/index.es5.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/examples/index.js
CHANGED
|
@@ -87,43 +87,43 @@ __export(events_exports, {
|
|
|
87
87
|
|
|
88
88
|
// ../../../core/dist/index.mjs
|
|
89
89
|
var e = Object.defineProperty;
|
|
90
|
-
var
|
|
90
|
+
var a = {};
|
|
91
91
|
((t, n) => {
|
|
92
92
|
for (var r in n) e(t, r, { get: n[r], enumerable: true });
|
|
93
|
-
})(
|
|
94
|
-
var
|
|
95
|
-
var
|
|
96
|
-
function
|
|
97
|
-
n = {
|
|
93
|
+
})(a, { Level: () => u });
|
|
94
|
+
var u = ((e2) => (e2[e2.ERROR = 0] = "ERROR", e2[e2.INFO = 1] = "INFO", e2[e2.DEBUG = 2] = "DEBUG", e2))(u || {});
|
|
95
|
+
var $ = { merge: true, shallow: true, extend: true };
|
|
96
|
+
function A(e2, t = {}, n = {}) {
|
|
97
|
+
n = { ...$, ...n };
|
|
98
98
|
const r = Object.entries(t).reduce((t2, [r2, o]) => {
|
|
99
99
|
const i = e2[r2];
|
|
100
100
|
return n.merge && Array.isArray(i) && Array.isArray(o) ? t2[r2] = o.reduce((e3, t3) => e3.includes(t3) ? e3 : [...e3, t3], [...i]) : (n.extend || r2 in e2) && (t2[r2] = o), t2;
|
|
101
101
|
}, {});
|
|
102
102
|
return n.shallow ? { ...e2, ...r } : (Object.assign(e2, r), e2);
|
|
103
103
|
}
|
|
104
|
-
function
|
|
104
|
+
function N(e2) {
|
|
105
105
|
return Array.isArray(e2);
|
|
106
106
|
}
|
|
107
|
-
function
|
|
108
|
-
return "object" == typeof e2 && null !== e2 && !
|
|
107
|
+
function D(e2) {
|
|
108
|
+
return "object" == typeof e2 && null !== e2 && !N(e2) && "[object Object]" === Object.prototype.toString.call(e2);
|
|
109
109
|
}
|
|
110
|
-
function
|
|
110
|
+
function H(e2 = {}) {
|
|
111
111
|
var _a;
|
|
112
|
-
const t = e2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), n = e2.group || "gr0up", r = e2.count || 1, o =
|
|
112
|
+
const t = e2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), n = e2.group || "gr0up", r = e2.count || 1, o = A({ name: "entity action", data: { string: "foo", number: 1, boolean: true, array: [0, "text", false], not: void 0 }, context: { dev: ["test", 1] }, globals: { lang: "elb" }, custom: { completely: "random" }, user: { id: "us3r", device: "c00k13", session: "s3ss10n" }, nested: [{ entity: "child", data: { is: "subordinated" }, nested: [], context: { element: ["child", 0] } }], consent: { functional: true }, id: `${t}-${n}-${r}`, trigger: "test", entity: "entity", action: "action", timestamp: t, timing: 3.14, group: n, count: r, version: { source: "0.6.0", tagging: 1 }, source: { type: "web", id: "https://localhost:80", previous_id: "http://remotehost:9001" } }, e2, { merge: false });
|
|
113
113
|
if (e2.name) {
|
|
114
114
|
const [t2, n2] = (_a = e2.name.split(" ")) != null ? _a : [];
|
|
115
115
|
t2 && n2 && (o.entity = t2, o.action = n2);
|
|
116
116
|
}
|
|
117
117
|
return o;
|
|
118
118
|
}
|
|
119
|
-
function
|
|
119
|
+
function q(e2 = "entity action", t = {}) {
|
|
120
120
|
const n = t.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), r = { data: { id: "ers", name: "Everyday Ruck Snack", color: "black", size: "l", price: 420 } }, o = { data: { id: "cc", name: "Cool Cap", size: "one size", price: 42 } };
|
|
121
|
-
return
|
|
121
|
+
return H({ ...{ "cart view": { data: { currency: "EUR", value: 2 * r.data.price }, context: { shopping: ["cart", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "product", data: { ...r.data, quantity: 2 }, context: { shopping: ["cart", 0] }, nested: [] }], trigger: "load" }, "checkout view": { data: { step: "payment", currency: "EUR", value: r.data.price + o.data.price }, context: { shopping: ["checkout", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "product", ...r, context: { shopping: ["checkout", 0] }, nested: [] }, { entity: "product", ...o, context: { shopping: ["checkout", 0] }, nested: [] }], trigger: "load" }, "order complete": { data: { id: "0rd3r1d", currency: "EUR", shipping: 5.22, taxes: 73.76, total: 555 }, context: { shopping: ["complete", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "product", ...r, context: { shopping: ["complete", 0] }, nested: [] }, { entity: "product", ...o, context: { shopping: ["complete", 0] }, nested: [] }, { entity: "gift", data: { name: "Surprise" }, context: { shopping: ["complete", 0] }, nested: [] }], trigger: "load" }, "page view": { data: { domain: "www.example.com", title: "walkerOS documentation", referrer: "https://www.walkeros.io/", search: "?foo=bar", hash: "#hash", id: "/docs/" }, globals: { pagegroup: "docs" }, trigger: "load" }, "product add": { ...r, context: { shopping: ["intent", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "click" }, "product view": { ...r, context: { shopping: ["detail", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "load" }, "product visible": { data: { ...r.data, position: 3, promo: true }, context: { shopping: ["discover", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "load" }, "promotion visible": { data: { name: "Setting up tracking easily", position: "hero" }, context: { ab_test: ["engagement", 0] }, globals: { pagegroup: "homepage" }, trigger: "visible" }, "session start": { data: { id: "s3ss10n", start: n, isNew: true, count: 1, runs: 1, isStart: true, storage: true, referrer: "", device: "c00k13" }, user: { id: "us3r", device: "c00k13", session: "s3ss10n", hash: "h4sh", address: "street number", email: "user@example.com", phone: "+49 123 456 789", userAgent: "Mozilla...", browser: "Chrome", browserVersion: "90", deviceType: "desktop", language: "de-DE", country: "DE", region: "HH", city: "Hamburg", zip: "20354", timezone: "Berlin", os: "walkerOS", osVersion: "1.0", screenSize: "1337x420", ip: "127.0.0.0", internal: true, custom: "value" } } }[e2], ...t, name: e2 });
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
// src/examples/events.ts
|
|
125
125
|
function ga4Purchase() {
|
|
126
|
-
const event =
|
|
126
|
+
const event = q("order complete");
|
|
127
127
|
return [
|
|
128
128
|
"event",
|
|
129
129
|
"purchase",
|
|
@@ -143,7 +143,7 @@ function ga4Purchase() {
|
|
|
143
143
|
];
|
|
144
144
|
}
|
|
145
145
|
function ga4AddToCart() {
|
|
146
|
-
const event =
|
|
146
|
+
const event = q("product add");
|
|
147
147
|
return [
|
|
148
148
|
"event",
|
|
149
149
|
"add_to_cart",
|
|
@@ -162,7 +162,7 @@ function ga4AddToCart() {
|
|
|
162
162
|
];
|
|
163
163
|
}
|
|
164
164
|
function adsConversion() {
|
|
165
|
-
const event =
|
|
165
|
+
const event = q("order complete");
|
|
166
166
|
return [
|
|
167
167
|
"event",
|
|
168
168
|
"conversion",
|
|
@@ -175,7 +175,7 @@ function adsConversion() {
|
|
|
175
175
|
];
|
|
176
176
|
}
|
|
177
177
|
function gtmEvent() {
|
|
178
|
-
const event =
|
|
178
|
+
const event = q("product view");
|
|
179
179
|
return {
|
|
180
180
|
event: "product_view",
|
|
181
181
|
product_id: event.data.id,
|
|
@@ -214,7 +214,7 @@ var ga4Purchase2 = {
|
|
|
214
214
|
loop: [
|
|
215
215
|
"nested",
|
|
216
216
|
{
|
|
217
|
-
condition: (entity) =>
|
|
217
|
+
condition: (entity) => D(entity) && entity.entity === "product",
|
|
218
218
|
map: {
|
|
219
219
|
item_id: "data.id",
|
|
220
220
|
item_name: "data.name",
|
|
@@ -301,7 +301,7 @@ var combinedPurchase = {
|
|
|
301
301
|
loop: [
|
|
302
302
|
"nested",
|
|
303
303
|
{
|
|
304
|
-
condition: (entity) =>
|
|
304
|
+
condition: (entity) => D(entity) && entity.entity === "product",
|
|
305
305
|
map: {
|
|
306
306
|
item_id: "data.id",
|
|
307
307
|
item_name: "data.name",
|
package/dist/examples/index.mjs
CHANGED
|
@@ -65,43 +65,43 @@ __export(events_exports, {
|
|
|
65
65
|
|
|
66
66
|
// ../../../core/dist/index.mjs
|
|
67
67
|
var e = Object.defineProperty;
|
|
68
|
-
var
|
|
68
|
+
var a = {};
|
|
69
69
|
((t, n) => {
|
|
70
70
|
for (var r in n) e(t, r, { get: n[r], enumerable: true });
|
|
71
|
-
})(
|
|
72
|
-
var
|
|
73
|
-
var
|
|
74
|
-
function
|
|
75
|
-
n = {
|
|
71
|
+
})(a, { Level: () => u });
|
|
72
|
+
var u = ((e2) => (e2[e2.ERROR = 0] = "ERROR", e2[e2.INFO = 1] = "INFO", e2[e2.DEBUG = 2] = "DEBUG", e2))(u || {});
|
|
73
|
+
var $ = { merge: true, shallow: true, extend: true };
|
|
74
|
+
function A(e2, t = {}, n = {}) {
|
|
75
|
+
n = { ...$, ...n };
|
|
76
76
|
const r = Object.entries(t).reduce((t2, [r2, o]) => {
|
|
77
77
|
const i = e2[r2];
|
|
78
78
|
return n.merge && Array.isArray(i) && Array.isArray(o) ? t2[r2] = o.reduce((e3, t3) => e3.includes(t3) ? e3 : [...e3, t3], [...i]) : (n.extend || r2 in e2) && (t2[r2] = o), t2;
|
|
79
79
|
}, {});
|
|
80
80
|
return n.shallow ? { ...e2, ...r } : (Object.assign(e2, r), e2);
|
|
81
81
|
}
|
|
82
|
-
function
|
|
82
|
+
function N(e2) {
|
|
83
83
|
return Array.isArray(e2);
|
|
84
84
|
}
|
|
85
|
-
function
|
|
86
|
-
return "object" == typeof e2 && null !== e2 && !
|
|
85
|
+
function D(e2) {
|
|
86
|
+
return "object" == typeof e2 && null !== e2 && !N(e2) && "[object Object]" === Object.prototype.toString.call(e2);
|
|
87
87
|
}
|
|
88
|
-
function
|
|
88
|
+
function H(e2 = {}) {
|
|
89
89
|
var _a;
|
|
90
|
-
const t = e2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), n = e2.group || "gr0up", r = e2.count || 1, o =
|
|
90
|
+
const t = e2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), n = e2.group || "gr0up", r = e2.count || 1, o = A({ name: "entity action", data: { string: "foo", number: 1, boolean: true, array: [0, "text", false], not: void 0 }, context: { dev: ["test", 1] }, globals: { lang: "elb" }, custom: { completely: "random" }, user: { id: "us3r", device: "c00k13", session: "s3ss10n" }, nested: [{ entity: "child", data: { is: "subordinated" }, nested: [], context: { element: ["child", 0] } }], consent: { functional: true }, id: `${t}-${n}-${r}`, trigger: "test", entity: "entity", action: "action", timestamp: t, timing: 3.14, group: n, count: r, version: { source: "0.6.0", tagging: 1 }, source: { type: "web", id: "https://localhost:80", previous_id: "http://remotehost:9001" } }, e2, { merge: false });
|
|
91
91
|
if (e2.name) {
|
|
92
92
|
const [t2, n2] = (_a = e2.name.split(" ")) != null ? _a : [];
|
|
93
93
|
t2 && n2 && (o.entity = t2, o.action = n2);
|
|
94
94
|
}
|
|
95
95
|
return o;
|
|
96
96
|
}
|
|
97
|
-
function
|
|
97
|
+
function q(e2 = "entity action", t = {}) {
|
|
98
98
|
const n = t.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), r = { data: { id: "ers", name: "Everyday Ruck Snack", color: "black", size: "l", price: 420 } }, o = { data: { id: "cc", name: "Cool Cap", size: "one size", price: 42 } };
|
|
99
|
-
return
|
|
99
|
+
return H({ ...{ "cart view": { data: { currency: "EUR", value: 2 * r.data.price }, context: { shopping: ["cart", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "product", data: { ...r.data, quantity: 2 }, context: { shopping: ["cart", 0] }, nested: [] }], trigger: "load" }, "checkout view": { data: { step: "payment", currency: "EUR", value: r.data.price + o.data.price }, context: { shopping: ["checkout", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "product", ...r, context: { shopping: ["checkout", 0] }, nested: [] }, { entity: "product", ...o, context: { shopping: ["checkout", 0] }, nested: [] }], trigger: "load" }, "order complete": { data: { id: "0rd3r1d", currency: "EUR", shipping: 5.22, taxes: 73.76, total: 555 }, context: { shopping: ["complete", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "product", ...r, context: { shopping: ["complete", 0] }, nested: [] }, { entity: "product", ...o, context: { shopping: ["complete", 0] }, nested: [] }, { entity: "gift", data: { name: "Surprise" }, context: { shopping: ["complete", 0] }, nested: [] }], trigger: "load" }, "page view": { data: { domain: "www.example.com", title: "walkerOS documentation", referrer: "https://www.walkeros.io/", search: "?foo=bar", hash: "#hash", id: "/docs/" }, globals: { pagegroup: "docs" }, trigger: "load" }, "product add": { ...r, context: { shopping: ["intent", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "click" }, "product view": { ...r, context: { shopping: ["detail", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "load" }, "product visible": { data: { ...r.data, position: 3, promo: true }, context: { shopping: ["discover", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "load" }, "promotion visible": { data: { name: "Setting up tracking easily", position: "hero" }, context: { ab_test: ["engagement", 0] }, globals: { pagegroup: "homepage" }, trigger: "visible" }, "session start": { data: { id: "s3ss10n", start: n, isNew: true, count: 1, runs: 1, isStart: true, storage: true, referrer: "", device: "c00k13" }, user: { id: "us3r", device: "c00k13", session: "s3ss10n", hash: "h4sh", address: "street number", email: "user@example.com", phone: "+49 123 456 789", userAgent: "Mozilla...", browser: "Chrome", browserVersion: "90", deviceType: "desktop", language: "de-DE", country: "DE", region: "HH", city: "Hamburg", zip: "20354", timezone: "Berlin", os: "walkerOS", osVersion: "1.0", screenSize: "1337x420", ip: "127.0.0.0", internal: true, custom: "value" } } }[e2], ...t, name: e2 });
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
// src/examples/events.ts
|
|
103
103
|
function ga4Purchase() {
|
|
104
|
-
const event =
|
|
104
|
+
const event = q("order complete");
|
|
105
105
|
return [
|
|
106
106
|
"event",
|
|
107
107
|
"purchase",
|
|
@@ -121,7 +121,7 @@ function ga4Purchase() {
|
|
|
121
121
|
];
|
|
122
122
|
}
|
|
123
123
|
function ga4AddToCart() {
|
|
124
|
-
const event =
|
|
124
|
+
const event = q("product add");
|
|
125
125
|
return [
|
|
126
126
|
"event",
|
|
127
127
|
"add_to_cart",
|
|
@@ -140,7 +140,7 @@ function ga4AddToCart() {
|
|
|
140
140
|
];
|
|
141
141
|
}
|
|
142
142
|
function adsConversion() {
|
|
143
|
-
const event =
|
|
143
|
+
const event = q("order complete");
|
|
144
144
|
return [
|
|
145
145
|
"event",
|
|
146
146
|
"conversion",
|
|
@@ -153,7 +153,7 @@ function adsConversion() {
|
|
|
153
153
|
];
|
|
154
154
|
}
|
|
155
155
|
function gtmEvent() {
|
|
156
|
-
const event =
|
|
156
|
+
const event = q("product view");
|
|
157
157
|
return {
|
|
158
158
|
event: "product_view",
|
|
159
159
|
product_id: event.data.id,
|
|
@@ -192,7 +192,7 @@ var ga4Purchase2 = {
|
|
|
192
192
|
loop: [
|
|
193
193
|
"nested",
|
|
194
194
|
{
|
|
195
|
-
condition: (entity) =>
|
|
195
|
+
condition: (entity) => D(entity) && entity.entity === "product",
|
|
196
196
|
map: {
|
|
197
197
|
item_id: "data.id",
|
|
198
198
|
item_name: "data.name",
|
|
@@ -279,7 +279,7 @@ var combinedPurchase = {
|
|
|
279
279
|
loop: [
|
|
280
280
|
"nested",
|
|
281
281
|
{
|
|
282
|
-
condition: (entity) =>
|
|
282
|
+
condition: (entity) => D(entity) && entity.entity === "product",
|
|
283
283
|
map: {
|
|
284
284
|
item_id: "data.id",
|
|
285
285
|
item_name: "data.name",
|
package/dist/index.browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Destination=(()=>{var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,e=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,r={};((n,e)=>{for(var o in e)t(n,o,{get:e[o],enumerable:!0})})(r,{DestinationGtag:()=>L,default:()=>S,destinationGtag:()=>N,resetConsentState:()=>k});var a=new Set;function i(t,n="https://www.googletagmanager.com/gtag/js?id=",e=globalThis.document){if(a.has(t))return;const o=e.createElement("script");o.src=n+t,e.head.appendChild(o),a.add(t)}function c(t){const n=t;return n.dataLayer=n.dataLayer||[],n.gtag||(n.gtag=function(){n.dataLayer.push(arguments)}),n.gtag}var s=Object.defineProperty;((t,n)=>{for(var e in n)s(t,e,{get:n[e],enumerable:!0})})({},{Level:()=>d});var u,d=((u=d||{})[u.ERROR=0]="ERROR",u[u.INFO=1]="INFO",u[u.DEBUG=2]="DEBUG",u),l={merge:!0,shallow:!0,extend:!0};function g(t,n={},e={}){e={...l,...e};const o=Object.entries(n).reduce((n,[o,r])=>{const a=t[o];return e.merge&&Array.isArray(a)&&Array.isArray(r)?n[o]=r.reduce((t,n)=>t.includes(n)?t:[...t,n],[...a]):(e.extend||o in t)&&(n[o]=r),n},{});return e.shallow?{...t,...o}:(Object.assign(t,o),t)}function f(t){return Array.isArray(t)}function m(t){return void 0!==t}function v(t){return"object"==typeof t&&null!==t&&!f(t)&&"[object Object]"===Object.prototype.toString.call(t)}function w(t){return"string"==typeof t}function y(t,n="",e){const o=n.split(".");let r=t;for(let t=0;t<o.length;t++){const n=o[t];if("*"===n&&f(r)){const n=o.slice(t+1).join("."),a=[];for(const t of r){const o=y(t,n,e);a.push(o)}return a}if(r=r instanceof Object?r[n]:void 0,!r)break}return m(r)?r:e}function p(t){return function(t){return"boolean"==typeof t}(t)||w(t)||function(t){return"number"==typeof t&&!Number.isNaN(t)}(t)||!m(t)||f(t)&&t.every(p)||v(t)&&Object.values(t).every(p)}function b(t){return p(t)?t:void 0}function h(t,n,e){return async function(...o){try{return await t(...o)}catch(t){if(!n)return;return await n(t)}finally{await(null==e?void 0:e())}}}async function j(t,n={},e={}){var o;if(!m(t))return;const r=v(t)&&t.consent||e.consent||(null==(o=e.collector)?void 0:o.consent),a=f(n)?n:[n];for(const n of a){const o=await h(O)(t,n,{...e,consent:r});if(m(o))return o}}async function O(t,n,e={}){const{collector:o,consent:r}=e;return(f(n)?n:[n]).reduce(async(n,a)=>{const i=await n;if(i)return i;const c=w(a)?{key:a}:a;if(!Object.keys(c).length)return;const{condition:s,consent:u,fn:d,key:l,loop:g,map:v,set:p,validate:I,value:_}=c;if(s&&!await h(s)(t,a,o))return;if(u&&!function(t,n={},e={}){const o={...n,...e},r={};let a=void 0===t;return Object.keys(o).forEach(n=>{o[n]&&(r[n]=!0,t&&t[n]&&(a=!0))}),!!a&&r}(u,r))return _;let E=m(_)?_:t;if(d&&(E=await h(d)(t,a,e)),l&&(E=y(t,l,_)),g){const[n,o]=g,r="this"===n?[t]:await j(t,n,e);f(r)&&(E=(await Promise.all(r.map(t=>j(t,o,e)))).filter(m))}else v?E=await Object.entries(v).reduce(async(n,[o,r])=>{const a=await n,i=await j(t,r,e);return m(i)&&(a[o]=i),a},Promise.resolve({})):p&&(E=await Promise.all(p.map(n=>O(t,n,e))));I&&!await h(I)(E)&&(E=void 0);const A=b(E);return m(A)?A:b(_)},Promise.resolve(void 0))}function I(t){return{window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document,...t}}async function _(t,n,e,o,r){const a=v(n)?n:{},i=e.data?await j(t,e.data,{collector:r}):{},c=(null==o?void 0:o.data)?await j(t,o.data,{collector:r}):{},s=v(i)?i:{},u=v(c)?c:{};return g(g(a,s),u)}function E(t,n,e={},o,r,a){const{window:i}=I(r);n.measurementId||a.throw("Config settings ga4.measurementId missing");const c=v(o)?o:{},s=function(t,n){const e={};return n.includes("all")&&(n=["context","data","event","globals","source","user","version"]),n.forEach(n=>{let o=t[n]||{};"event"==n&&(o={id:t.id,timing:t.timing,trigger:t.trigger,entity:t.entity,action:t.action,group:t.group,count:t.count}),Object.entries(o).forEach(([t,o])=>{"context"==n&&(o=o[0]),e[`${n}_${t}`]=o})}),e}(t,e.include||n.include||["data"]),u={...s,...c};let d=t.name;!1!==n.snakeCase&&(d=function(t,n=!0){return n?t.replace(/\s+/g,"_").toLowerCase():t}(d)),u.send_to=n.measurementId,n.debug&&(u.debug_mode=!0);(0,i.gtag)("event",d,u)}var A="dataLayer";function C(t,n,e,o){const{window:r,document:a}=I(e),{containerId:i,dataLayer:c,domain:s}=t,u=c||A;u===A?r.dataLayer=r.dataLayer||[]:r[u]=r[u]||[];r[u].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),n&&i&&function(t,n,e,o=globalThis.document){const r=e!=A?"&l="+e:"",a=o.createElement("script");a.src=n+t+r,o.head.appendChild(a)}(i,s||"https://www.googletagmanager.com/gtm.js?id=",u,a)}var L={},P=!1;function k(){P=!1}var D,R={marketing:["ad_storage","ad_user_data","ad_personalization"],functional:["analytics_storage"]},N={type:"google-gtag",config:{settings:{}},init({config:t,env:n,logger:e}){const{settings:o={},loadScript:r}=t,{ga4:a,ads:s,gtm:u}=o;return(null==a?void 0:a.measurementId)||(null==s?void 0:s.conversionId)||(null==u?void 0:u.containerId)||e.throw("Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId"),(null==a?void 0:a.measurementId)&&function(t,n,e,o){const{window:r,document:a}=I(e),{measurementId:s,transport_url:u,server_container_url:d,pageview:l}=t;s||o.throw("Config settings ga4.measurementId missing"),n&&i(s,void 0,a),c(r);const g={};u&&(g.transport_url=u),d&&(g.server_container_url=d),!1===l&&(g.send_page_view=!1);const f=r.gtag;f("js",new Date),f("config",s,g)}(a,r,n,e),(null==s?void 0:s.conversionId)&&function(t,n,e,o){const{window:r,document:a}=I(e),{conversionId:s}=t;s||o.throw("Config settings ads.conversionId missing"),t.currency||(t.currency="EUR"),n&&i(s,void 0,a),c(r);const u=r.gtag;u("js",new Date),u("config",s)}(s,r,n,e),(null==u?void 0:u.containerId)&&C(u,r,n),t},async push(t,{config:n,
|
|
1
|
+
"use strict";var Destination=(()=>{var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,e=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,r={};((n,e)=>{for(var o in e)t(n,o,{get:e[o],enumerable:!0})})(r,{DestinationGtag:()=>L,default:()=>S,destinationGtag:()=>N,resetConsentState:()=>k});var a=new Set;function i(t,n="https://www.googletagmanager.com/gtag/js?id=",e=globalThis.document){if(a.has(t))return;const o=e.createElement("script");o.src=n+t,e.head.appendChild(o),a.add(t)}function c(t){const n=t;return n.dataLayer=n.dataLayer||[],n.gtag||(n.gtag=function(){n.dataLayer.push(arguments)}),n.gtag}var s=Object.defineProperty;((t,n)=>{for(var e in n)s(t,e,{get:n[e],enumerable:!0})})({},{Level:()=>d});var u,d=((u=d||{})[u.ERROR=0]="ERROR",u[u.INFO=1]="INFO",u[u.DEBUG=2]="DEBUG",u),l={merge:!0,shallow:!0,extend:!0};function g(t,n={},e={}){e={...l,...e};const o=Object.entries(n).reduce((n,[o,r])=>{const a=t[o];return e.merge&&Array.isArray(a)&&Array.isArray(r)?n[o]=r.reduce((t,n)=>t.includes(n)?t:[...t,n],[...a]):(e.extend||o in t)&&(n[o]=r),n},{});return e.shallow?{...t,...o}:(Object.assign(t,o),t)}function f(t){return Array.isArray(t)}function m(t){return void 0!==t}function v(t){return"object"==typeof t&&null!==t&&!f(t)&&"[object Object]"===Object.prototype.toString.call(t)}function w(t){return"string"==typeof t}function y(t,n="",e){const o=n.split(".");let r=t;for(let t=0;t<o.length;t++){const n=o[t];if("*"===n&&f(r)){const n=o.slice(t+1).join("."),a=[];for(const t of r){const o=y(t,n,e);a.push(o)}return a}if(r=r instanceof Object?r[n]:void 0,!r)break}return m(r)?r:e}function p(t){return function(t){return"boolean"==typeof t}(t)||w(t)||function(t){return"number"==typeof t&&!Number.isNaN(t)}(t)||!m(t)||f(t)&&t.every(p)||v(t)&&Object.values(t).every(p)}function b(t){return p(t)?t:void 0}function h(t,n,e){return async function(...o){try{return await t(...o)}catch(t){if(!n)return;return await n(t)}finally{await(null==e?void 0:e())}}}async function j(t,n={},e={}){var o;if(!m(t))return;const r=v(t)&&t.consent||e.consent||(null==(o=e.collector)?void 0:o.consent),a=f(n)?n:[n];for(const n of a){const o=await h(O)(t,n,{...e,consent:r});if(m(o))return o}}async function O(t,n,e={}){const{collector:o,consent:r}=e;return(f(n)?n:[n]).reduce(async(n,a)=>{const i=await n;if(i)return i;const c=w(a)?{key:a}:a;if(!Object.keys(c).length)return;const{condition:s,consent:u,fn:d,key:l,loop:g,map:v,set:p,validate:I,value:_}=c;if(s&&!await h(s)(t,a,o))return;if(u&&!function(t,n={},e={}){const o={...n,...e},r={};let a=void 0===t;return Object.keys(o).forEach(n=>{o[n]&&(r[n]=!0,t&&t[n]&&(a=!0))}),!!a&&r}(u,r))return _;let E=m(_)?_:t;if(d&&(E=await h(d)(t,a,e)),l&&(E=y(t,l,_)),g){const[n,o]=g,r="this"===n?[t]:await j(t,n,e);f(r)&&(E=(await Promise.all(r.map(t=>j(t,o,e)))).filter(m))}else v?E=await Object.entries(v).reduce(async(n,[o,r])=>{const a=await n,i=await j(t,r,e);return m(i)&&(a[o]=i),a},Promise.resolve({})):p&&(E=await Promise.all(p.map(n=>O(t,n,e))));I&&!await h(I)(E)&&(E=void 0);const A=b(E);return m(A)?A:b(_)},Promise.resolve(void 0))}function I(t){return{window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document,...t}}async function _(t,n,e,o,r){const a=v(n)?n:{},i=e.data?await j(t,e.data,{collector:r}):{},c=(null==o?void 0:o.data)?await j(t,o.data,{collector:r}):{},s=v(i)?i:{},u=v(c)?c:{};return g(g(a,s),u)}function E(t,n,e={},o,r,a){const{window:i}=I(r);n.measurementId||a.throw("Config settings ga4.measurementId missing");const c=v(o)?o:{},s=function(t,n){const e={};return n.includes("all")&&(n=["context","data","event","globals","source","user","version"]),n.forEach(n=>{let o=t[n]||{};"event"==n&&(o={id:t.id,timing:t.timing,trigger:t.trigger,entity:t.entity,action:t.action,group:t.group,count:t.count}),Object.entries(o).forEach(([t,o])=>{"context"==n&&(o=o[0]),e[`${n}_${t}`]=o})}),e}(t,e.include||n.include||["data"]),u={...s,...c};let d=t.name;!1!==n.snakeCase&&(d=function(t,n=!0){return n?t.replace(/\s+/g,"_").toLowerCase():t}(d)),u.send_to=n.measurementId,n.debug&&(u.debug_mode=!0);(0,i.gtag)("event",d,u)}var A="dataLayer";function C(t,n,e,o){const{window:r,document:a}=I(e),{containerId:i,dataLayer:c,domain:s}=t,u=c||A;u===A?r.dataLayer=r.dataLayer||[]:r[u]=r[u]||[];r[u].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),n&&i&&function(t,n,e,o=globalThis.document){const r=e!=A?"&l="+e:"",a=o.createElement("script");a.src=n+t+r,o.head.appendChild(a)}(i,s||"https://www.googletagmanager.com/gtm.js?id=",u,a)}var L={},P=!1;function k(){P=!1}var D,R={marketing:["ad_storage","ad_user_data","ad_personalization"],functional:["analytics_storage"]},N={type:"google-gtag",config:{settings:{}},init({config:t,env:n,logger:e}){const{settings:o={},loadScript:r}=t,{ga4:a,ads:s,gtm:u}=o;return(null==a?void 0:a.measurementId)||(null==s?void 0:s.conversionId)||(null==u?void 0:u.containerId)||e.throw("Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId"),(null==a?void 0:a.measurementId)&&function(t,n,e,o){const{window:r,document:a}=I(e),{measurementId:s,transport_url:u,server_container_url:d,pageview:l}=t;s||o.throw("Config settings ga4.measurementId missing"),n&&i(s,void 0,a),c(r);const g={};u&&(g.transport_url=u),d&&(g.server_container_url=d),!1===l&&(g.send_page_view=!1);const f=r.gtag;f("js",new Date),f("config",s,g)}(a,r,n,e),(null==s?void 0:s.conversionId)&&function(t,n,e,o){const{window:r,document:a}=I(e),{conversionId:s}=t;s||o.throw("Config settings ads.conversionId missing"),t.currency||(t.currency="EUR"),n&&i(s,void 0,a),c(r);const u=r.gtag;u("js",new Date),u("config",s)}(s,r,n,e),(null==u?void 0:u.containerId)&&C(u,r,n),t},async push(t,{config:n,rule:e={},data:o,env:r,collector:a,logger:i}){const{settings:c={}}=n,{ga4:s,ads:u,gtm:d}=c,l=e.settings||{},g=await _(t,o,n,s,a),f=await _(t,o,n,u,a),m=await _(t,o,n,d,a);(null==s?void 0:s.measurementId)&&E(t,s,l.ga4,g,r,i),(null==u?void 0:u.conversionId)&&e.name&&function(t,n,e={},o,r,a,i){const{conversionId:c,currency:s}=n,u=v(o)?o:{},d=e.label||r;d||i.throw("Config mapping ads.label missing");const l={send_to:`${c}/${d}`,currency:s||"EUR",...u},{window:g}=I(a);(0,g.gtag)("event","conversion",l)}(0,u,l.ads,f,e.name,r,i),(null==d?void 0:d.containerId)&&function(t,n,e={},o,r){const{window:a}=I(r),i={event:t.name};a.dataLayer.push({...i,...v(o)?o:t})}(t,0,l.gtm,m,r)},on(t,n){var e;if("consent"!==t||!n.data)return;const o=n.data,r=(null==(e=n.config)?void 0:e.settings)||{},{como:a=!0}=r;if(!a)return;const{window:i}=I(n.env),s=c(i);if(!s)return;const u=!0===a?R:a;if(!P){const t=new Set;if(Object.values(u).forEach(n=>{(Array.isArray(n)?n:[n]).forEach(n=>t.add(n))}),t.size>0){const n={};t.forEach(t=>{n[t]="denied"}),s("consent","default",n)}P=!0}const d={};Object.entries(o).forEach(([t,n])=>{const e=u[t];if(!e)return;const o=Array.isArray(e)?e:[e],r=n?"granted":"denied";o.forEach(t=>{d[t]=r})}),0!==Object.keys(d).length&&s("consent","update",d)}},S=N;return D=r,((r,a,i,c)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let s of e(a))o.call(r,s)||s===i||t(r,s,{get:()=>a[s],enumerable:!(c=n(a,s))||c.enumerable});return r})(t({},"__esModule",{value:!0}),D)})();
|
package/dist/index.es5.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _array_like_to_array(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _array_with_holes(e){if(Array.isArray(e))return e}function _array_without_holes(e){if(Array.isArray(e))return _array_like_to_array(e)}function asyncGeneratorStep(e,t,n,r,o,a,i){try{var c=e[a](i),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function _async_to_generator(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){asyncGeneratorStep(a,r,o,i,c,"next",e)}function c(e){asyncGeneratorStep(a,r,o,i,c,"throw",e)}i(void 0)})}}function _define_property(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _instanceof(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function _iterable_to_array(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterable_to_array_limit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(c)throw o}}return a}}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){_define_property(e,t,n[t])})}return e}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _object_spread_props(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function _sliced_to_array(e,t){return _array_with_holes(e)||_iterable_to_array_limit(e,t)||_unsupported_iterable_to_array(e,t)||_non_iterable_rest()}function _to_consumable_array(e){return _array_without_holes(e)||_iterable_to_array(e)||_unsupported_iterable_to_array(e)||_non_iterable_spread()}function _type_of(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function _unsupported_iterable_to_array(e,t){if(e){if("string"==typeof e)return _array_like_to_array(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_array_like_to_array(e,t):void 0}}function _ts_generator(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(i,"next",{value:u(0)}),c(i,"throw",{value:u(1)}),c(i,"return",{value:u(2)}),"function"==typeof Symbol&&c(i,Symbol.iterator,{value:function(){return this}}),i;function u(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}var Destination=function(){var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"https://www.googletagmanager.com/gtag/js?id=",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:globalThis.document;if(!m.has(e)){var r=n.createElement("script");r.src=t+e,n.head.appendChild(r),m.add(e)}},t=function(e){var t=e;return t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)}),t.gtag},n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n=_object_spread({},I,n);var r=Object.entries(t).reduce(function(t,r){var o=_sliced_to_array(r,2),a=o[0],i=o[1],c=e[a];return n.merge&&Array.isArray(c)&&Array.isArray(i)?t[a]=i.reduce(function(e,t){return e.includes(t)?e:_to_consumable_array(e).concat([t])},_to_consumable_array(c)):(n.extend||a in e)&&(t[a]=i),t},{});return n.shallow?_object_spread({},e,r):(Object.assign(e,r),e)},r=function(e){return Array.isArray(e)},o=function(e){return void 0!==e},a=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!r(e)&&"[object Object]"===Object.prototype.toString.call(e)},i=function(e){return"string"==typeof e},c=function(e){return P(e)?e:void 0},u=function(e,t,n){return function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return _async_to_generator(function(){var r;return _ts_generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,4,6]),[4,e.apply(void 0,_to_consumable_array(o))];case 1:case 3:return[2,a.sent()];case 2:return r=a.sent(),t?[4,t(r)]:[2];case 4:return[4,null==n?void 0:n()];case 5:return a.sent(),[7];case 6:return[2]}})})()}},s=function(e){return _async_to_generator(function(e){var t,n,i,c,s,l,d,f,_,y,v,g,p,b=arguments;return _ts_generator(this,function(h){switch(h.label){case 0:if(t=b.length>1&&void 0!==b[1]?b[1]:{},n=b.length>2&&void 0!==b[2]?b[2]:{},!o(e))return[2];c=a(e)&&e.consent||n.consent||(null===(i=n.collector)||void 0===i?void 0:i.consent),s=r(t)?t:[t],l=!0,d=!1,f=void 0,h.label=1;case 1:h.trys.push([1,6,7,8]),_=s[Symbol.iterator](),h.label=2;case 2:return(l=(y=_.next()).done)?[3,5]:(v=y.value,[4,u(E)(e,v,_object_spread_props(_object_spread({},n),{consent:c}))]);case 3:if(g=h.sent(),o(g))return[2,g];h.label=4;case 4:return l=!0,[3,2];case 5:return[3,8];case 6:return p=h.sent(),d=!0,f=p,[3,8];case 7:try{l||null==_.return||_.return()}finally{if(d)throw f}return[7];case 8:return[2]}})}).apply(this,arguments)},l=function(e){return _object_spread({window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document},e)},d=function(e,t,r,o,i){return _async_to_generator(function(){var c,u,l,d,f,_,y;return _ts_generator(this,function(v){switch(v.label){case 0:return c=a(t)?t:{},r.data?[4,s(e,r.data,{collector:i})]:[3,2];case 1:return l=v.sent(),[3,3];case 2:l={},v.label=3;case 3:return u=l,(null==o?void 0:o.data)?[4,s(e,o.data,{collector:i})]:[3,5];case 4:return f=v.sent(),[3,6];case 5:f={},v.label=6;case 6:return d=f,_=a(u)?u:{},y=a(d)?d:{},[2,n(n(c,_),y)]}})})()},f=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0,o=arguments.length>5?arguments[5]:void 0,i=l(arguments.length>4?arguments[4]:void 0).window;t.measurementId||o.throw("Config settings ga4.measurementId missing");var c=a(r)?r:{},u=function(e,t){var n={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(function(t){var r=e[t]||{};"event"==t&&(r={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(r).forEach(function(e){var r=_sliced_to_array(e,2),o=r[0],a=r[1];"context"==t&&(a=a[0]),n["".concat(t,"_").concat(o)]=a})}),n}(e,n.include||t.include||["data"]),s=_object_spread({},u,c),d=e.name;!1!==t.snakeCase&&(d=function(e){return arguments.length>1&&void 0!==arguments[1]&&!arguments[1]?e:e.replace(/\s+/g,"_").toLowerCase()}(d)),s.send_to=t.measurementId,t.debug&&(s.debug_mode=!0),(0,i.gtag)("event",d,s)},_=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:globalThis.document,o=n!=k?"&l="+n:"",a=r.createElement("script");a.src=t+e+o,r.head.appendChild(a)},y=function(){C=!1},v=Object.defineProperty,g=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,b=Object.prototype.hasOwnProperty,h={};!function(e,t){for(var n in t)v(e,n,{get:t[n],enumerable:!0})}(h,{DestinationGtag:function(){return x},default:function(){return R},destinationGtag:function(){return G},resetConsentState:function(){return y}});var m=new Set,w=Object.defineProperty;!function(e,t){for(var n in t)w(e,n,{get:t[n],enumerable:!0})}({},{Level:function(){return O}});var j,O=((j=O||{})[j.ERROR=0]="ERROR",j[j.INFO=1]="INFO",j[j.DEBUG=2]="DEBUG",j),I={merge:!0,shallow:!0,extend:!0};function S(e){for(var t=arguments.length>2?arguments[2]:void 0,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),a=e,i=0;i<n.length;i++){var c=n[i];if("*"===c&&r(a)){var u=n.slice(i+1).join("."),s=[],l=!0,d=!1,f=void 0;try{for(var _,y=a[Symbol.iterator]();!(l=(_=y.next()).done);l=!0){var v=S(_.value,u,t);s.push(v)}}catch(e){d=!0,f=e}finally{try{l||null==y.return||y.return()}finally{if(d)throw f}}return s}if(!(a=_instanceof(a,Object)?a[c]:void 0))break}return o(a)?a:t}function P(e){return function(e){return"boolean"==typeof e}(e)||i(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!o(e)||r(e)&&e.every(P)||a(e)&&Object.values(e).every(P)}function E(e,t){return _async_to_generator(function(e,t){var n,a,l,d=arguments;return _ts_generator(this,function(f){return a=(n=d.length>2&&void 0!==d[2]?d[2]:{}).collector,l=n.consent,[2,(r(t)?t:[t]).reduce(function(t,d){return _async_to_generator(function(){var f,_,y,v,g,p,b,h,m,w,j,O,I,P,A,k,D,x,C,L,G;return _ts_generator(this,function(R){switch(R.label){case 0:return[4,t];case 1:return(f=R.sent())?[2,f]:(_=i(d)?{key:d}:d,Object.keys(_).length?(y=_.condition,v=_.consent,g=_.fn,p=_.key,b=_.loop,h=_.map,m=_.set,w=_.validate,j=_.value,(O=y)?[4,u(y)(e,d,a)]:[3,3]):[2]);case 2:O=!R.sent(),R.label=3;case 3:return O?[2]:v&&!function(e){var t=_object_spread({},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}),n={},r=void 0===e;return Object.keys(t).forEach(function(o){t[o]&&(n[o]=!0,e&&e[o]&&(r=!0))}),!!r&&n}(v,l)?[2,j]:(I=o(j)?j:e,g?[4,u(g)(e,d,n)]:[3,5]);case 4:I=R.sent(),R.label=5;case 5:return p&&(I=S(e,p,j)),b?(P=_sliced_to_array(b,2),A=P[0],k=P[1],"this"!==A?[3,6]:(x=[e],[3,8])):[3,11];case 6:return[4,s(e,A,n)];case 7:x=R.sent(),R.label=8;case 8:return r(D=x)?[4,Promise.all(D.map(function(e){return s(e,k,n)}))]:[3,10];case 9:I=R.sent().filter(o),R.label=10;case 10:return[3,17];case 11:return h?[4,Object.entries(h).reduce(function(t,r){var a=_sliced_to_array(r,2),i=a[0],c=a[1];return _async_to_generator(function(){var r,a;return _ts_generator(this,function(u){switch(u.label){case 0:return[4,t];case 1:return r=u.sent(),[4,s(e,c,n)];case 2:return a=u.sent(),[2,(o(a)&&(r[i]=a),r)]}})})()},Promise.resolve({}))]:[3,13];case 12:return I=R.sent(),[3,16];case 13:return(C=m)?[4,Promise.all(m.map(function(t){return E(e,t,n)}))]:[3,15];case 14:C=I=R.sent(),R.label=15;case 15:R.label=16;case 16:R.label=17;case 17:return(L=w)?[4,u(w)(I)]:[3,19];case 18:L=!R.sent(),R.label=19;case 19:return L&&(I=void 0),G=c(I),[2,o(G)?G:c(j)]}})})()},Promise.resolve(void 0))]})}).apply(this,arguments)}var A,k="dataLayer",D="https://www.googletagmanager.com/gtm.js?id=",x={},C=!1,L={marketing:["ad_storage","ad_user_data","ad_personalization"],functional:["analytics_storage"]},G={type:"google-gtag",config:{settings:{}},init:function(n){var r=n.config,o=n.env,a=n.logger,i=r.settings,c=void 0===i?{}:i,u=r.loadScript,s=c.ga4,d=c.ads,f=c.gtm;return(null==s?void 0:s.measurementId)||(null==d?void 0:d.conversionId)||(null==f?void 0:f.containerId)||a.throw("Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId"),(null==s?void 0:s.measurementId)&&function(n,r,o,a){var i=l(o),c=i.window,u=i.document,s=n.measurementId,d=n.transport_url,f=n.server_container_url,_=n.pageview;s||a.throw("Config settings ga4.measurementId missing"),r&&e(s,void 0,u),t(c);var y={};d&&(y.transport_url=d),f&&(y.server_container_url=f),!1===_&&(y.send_page_view=!1);var v=c.gtag;v("js",new Date),v("config",s,y)}(s,u,o,a),(null==d?void 0:d.conversionId)&&function(n,r,o,a){var i=l(o),c=i.window,u=i.document,s=n.conversionId;s||a.throw("Config settings ads.conversionId missing"),n.currency||(n.currency="EUR"),r&&e(s,void 0,u),t(c);var d=c.gtag;d("js",new Date),d("config",s)}(d,u,o,a),(null==f?void 0:f.containerId)&&function(e,t,n){var r=l(n),o=r.window,a=r.document,i=e.containerId,c=e.dataLayer,u=e.domain,s=c||k;s===k?o.dataLayer=o.dataLayer||[]:o[s]=o[s]||[],o[s].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&i&&_(i,u||D,s,a)}(f,u,o),r},push:function(e,t){return _async_to_generator(function(e,t){var n,r,o,i,c,u,s,_,y,v,g,p,b,h,m,w;return _ts_generator(this,function(j){switch(j.label){case 0:return n=t.config,r=t.mapping,o=void 0===r?{}:r,i=t.data,c=t.env,u=t.collector,s=t.logger,_=n.settings,v=(y=void 0===_?{}:_).ga4,g=y.ads,p=y.gtm,b=o.settings||{},[4,d(e,i,n,v,u)];case 1:return h=j.sent(),[4,d(e,i,n,g,u)];case 2:return m=j.sent(),[4,d(e,i,n,p,u)];case 3:return w=j.sent(),(null==v?void 0:v.measurementId)&&f(e,v,b.ga4,h,c,s),(null==g?void 0:g.conversionId)&&o.name&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0,c=arguments.length>6?arguments[6]:void 0,u=t.conversionId,s=t.currency,d=a(r)?r:{},f=n.label||o;f||c.throw("Config mapping ads.label missing");var _=_object_spread({send_to:"".concat(u,"/").concat(f),currency:s||"EUR"},d);(0,l(i).window.gtag)("event","conversion",_)}(e,g,b.ads,m,o.name,c,s),(null==p?void 0:p.containerId)&&function(e,t){var n=arguments.length>3?arguments[3]:void 0,r=l(arguments.length>4?arguments[4]:void 0).window,o={event:e.name};r.dataLayer.push(_object_spread({},o,a(n)?n:e))}(e,p,b.gtm,w,c,s),[2]}})}).apply(this,arguments)},on:function(e,n){var r;if("consent"===e&&n.data){var o=n.data,a=((null===(r=n.config)||void 0===r?void 0:r.settings)||{}).como,i=void 0===a||a;if(i){var c=l(n.env).window,u=t(c);if(u){var s=!0===i?L:i;if(!C){var d=new Set;if(Object.values(s).forEach(function(e){(Array.isArray(e)?e:[e]).forEach(function(e){return d.add(e)})}),d.size>0){var f={};d.forEach(function(e){f[e]="denied"}),u("consent","default",f)}C=!0}var _={};Object.entries(o).forEach(function(e){var t=_sliced_to_array(e,2),n=t[0],r=t[1],o=s[n];if(o){var a=Array.isArray(o)?o:[o],i=r?"granted":"denied";a.forEach(function(e){_[e]=i})}}),0!==Object.keys(_).length&&u("consent","update",_)}}}}},R=G;return A=h,function(e,t,n,r){if(t&&"object"===(void 0===t?"undefined":_type_of(t))||"function"==typeof t){var o=!0,a=!1,i=void 0;try{for(var c,u=function(){var o=c.value;b.call(e,o)||o===n||v(e,o,{get:function(){return t[o]},enumerable:!(r=g(t,o))||r.enumerable})},s=p(t)[Symbol.iterator]();!(o=(c=s.next()).done);o=!0)u()}catch(e){a=!0,i=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}}return e}(v({},"__esModule",{value:!0}),A)}();
|
|
1
|
+
"use strict";function _array_like_to_array(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _array_with_holes(e){if(Array.isArray(e))return e}function _array_without_holes(e){if(Array.isArray(e))return _array_like_to_array(e)}function asyncGeneratorStep(e,t,n,r,o,a,i){try{var c=e[a](i),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function _async_to_generator(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){asyncGeneratorStep(a,r,o,i,c,"next",e)}function c(e){asyncGeneratorStep(a,r,o,i,c,"throw",e)}i(void 0)})}}function _define_property(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _instanceof(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function _iterable_to_array(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterable_to_array_limit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(c)throw o}}return a}}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){_define_property(e,t,n[t])})}return e}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _object_spread_props(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function _sliced_to_array(e,t){return _array_with_holes(e)||_iterable_to_array_limit(e,t)||_unsupported_iterable_to_array(e,t)||_non_iterable_rest()}function _to_consumable_array(e){return _array_without_holes(e)||_iterable_to_array(e)||_unsupported_iterable_to_array(e)||_non_iterable_spread()}function _type_of(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function _unsupported_iterable_to_array(e,t){if(e){if("string"==typeof e)return _array_like_to_array(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_array_like_to_array(e,t):void 0}}function _ts_generator(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(i,"next",{value:u(0)}),c(i,"throw",{value:u(1)}),c(i,"return",{value:u(2)}),"function"==typeof Symbol&&c(i,Symbol.iterator,{value:function(){return this}}),i;function u(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}var Destination=function(){var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"https://www.googletagmanager.com/gtag/js?id=",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:globalThis.document;if(!m.has(e)){var r=n.createElement("script");r.src=t+e,n.head.appendChild(r),m.add(e)}},t=function(e){var t=e;return t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)}),t.gtag},n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n=_object_spread({},I,n);var r=Object.entries(t).reduce(function(t,r){var o=_sliced_to_array(r,2),a=o[0],i=o[1],c=e[a];return n.merge&&Array.isArray(c)&&Array.isArray(i)?t[a]=i.reduce(function(e,t){return e.includes(t)?e:_to_consumable_array(e).concat([t])},_to_consumable_array(c)):(n.extend||a in e)&&(t[a]=i),t},{});return n.shallow?_object_spread({},e,r):(Object.assign(e,r),e)},r=function(e){return Array.isArray(e)},o=function(e){return void 0!==e},a=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!r(e)&&"[object Object]"===Object.prototype.toString.call(e)},i=function(e){return"string"==typeof e},c=function(e){return P(e)?e:void 0},u=function(e,t,n){return function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return _async_to_generator(function(){var r;return _ts_generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,4,6]),[4,e.apply(void 0,_to_consumable_array(o))];case 1:case 3:return[2,a.sent()];case 2:return r=a.sent(),t?[4,t(r)]:[2];case 4:return[4,null==n?void 0:n()];case 5:return a.sent(),[7];case 6:return[2]}})})()}},s=function(e){return _async_to_generator(function(e){var t,n,i,c,s,l,d,f,_,y,v,g,b,p=arguments;return _ts_generator(this,function(h){switch(h.label){case 0:if(t=p.length>1&&void 0!==p[1]?p[1]:{},n=p.length>2&&void 0!==p[2]?p[2]:{},!o(e))return[2];c=a(e)&&e.consent||n.consent||(null===(i=n.collector)||void 0===i?void 0:i.consent),s=r(t)?t:[t],l=!0,d=!1,f=void 0,h.label=1;case 1:h.trys.push([1,6,7,8]),_=s[Symbol.iterator](),h.label=2;case 2:return(l=(y=_.next()).done)?[3,5]:(v=y.value,[4,u(E)(e,v,_object_spread_props(_object_spread({},n),{consent:c}))]);case 3:if(g=h.sent(),o(g))return[2,g];h.label=4;case 4:return l=!0,[3,2];case 5:return[3,8];case 6:return b=h.sent(),d=!0,f=b,[3,8];case 7:try{l||null==_.return||_.return()}finally{if(d)throw f}return[7];case 8:return[2]}})}).apply(this,arguments)},l=function(e){return _object_spread({window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document},e)},d=function(e,t,r,o,i){return _async_to_generator(function(){var c,u,l,d,f,_,y;return _ts_generator(this,function(v){switch(v.label){case 0:return c=a(t)?t:{},r.data?[4,s(e,r.data,{collector:i})]:[3,2];case 1:return l=v.sent(),[3,3];case 2:l={},v.label=3;case 3:return u=l,(null==o?void 0:o.data)?[4,s(e,o.data,{collector:i})]:[3,5];case 4:return f=v.sent(),[3,6];case 5:f={},v.label=6;case 6:return d=f,_=a(u)?u:{},y=a(d)?d:{},[2,n(n(c,_),y)]}})})()},f=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0,o=arguments.length>5?arguments[5]:void 0,i=l(arguments.length>4?arguments[4]:void 0).window;t.measurementId||o.throw("Config settings ga4.measurementId missing");var c=a(r)?r:{},u=function(e,t){var n={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(function(t){var r=e[t]||{};"event"==t&&(r={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(r).forEach(function(e){var r=_sliced_to_array(e,2),o=r[0],a=r[1];"context"==t&&(a=a[0]),n["".concat(t,"_").concat(o)]=a})}),n}(e,n.include||t.include||["data"]),s=_object_spread({},u,c),d=e.name;!1!==t.snakeCase&&(d=function(e){return arguments.length>1&&void 0!==arguments[1]&&!arguments[1]?e:e.replace(/\s+/g,"_").toLowerCase()}(d)),s.send_to=t.measurementId,t.debug&&(s.debug_mode=!0),(0,i.gtag)("event",d,s)},_=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:globalThis.document,o=n!=k?"&l="+n:"",a=r.createElement("script");a.src=t+e+o,r.head.appendChild(a)},y=function(){C=!1},v=Object.defineProperty,g=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,h={};!function(e,t){for(var n in t)v(e,n,{get:t[n],enumerable:!0})}(h,{DestinationGtag:function(){return x},default:function(){return R},destinationGtag:function(){return G},resetConsentState:function(){return y}});var m=new Set,w=Object.defineProperty;!function(e,t){for(var n in t)w(e,n,{get:t[n],enumerable:!0})}({},{Level:function(){return O}});var j,O=((j=O||{})[j.ERROR=0]="ERROR",j[j.INFO=1]="INFO",j[j.DEBUG=2]="DEBUG",j),I={merge:!0,shallow:!0,extend:!0};function S(e){for(var t=arguments.length>2?arguments[2]:void 0,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),a=e,i=0;i<n.length;i++){var c=n[i];if("*"===c&&r(a)){var u=n.slice(i+1).join("."),s=[],l=!0,d=!1,f=void 0;try{for(var _,y=a[Symbol.iterator]();!(l=(_=y.next()).done);l=!0){var v=S(_.value,u,t);s.push(v)}}catch(e){d=!0,f=e}finally{try{l||null==y.return||y.return()}finally{if(d)throw f}}return s}if(!(a=_instanceof(a,Object)?a[c]:void 0))break}return o(a)?a:t}function P(e){return function(e){return"boolean"==typeof e}(e)||i(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!o(e)||r(e)&&e.every(P)||a(e)&&Object.values(e).every(P)}function E(e,t){return _async_to_generator(function(e,t){var n,a,l,d=arguments;return _ts_generator(this,function(f){return a=(n=d.length>2&&void 0!==d[2]?d[2]:{}).collector,l=n.consent,[2,(r(t)?t:[t]).reduce(function(t,d){return _async_to_generator(function(){var f,_,y,v,g,b,p,h,m,w,j,O,I,P,A,k,D,x,C,L,G;return _ts_generator(this,function(R){switch(R.label){case 0:return[4,t];case 1:return(f=R.sent())?[2,f]:(_=i(d)?{key:d}:d,Object.keys(_).length?(y=_.condition,v=_.consent,g=_.fn,b=_.key,p=_.loop,h=_.map,m=_.set,w=_.validate,j=_.value,(O=y)?[4,u(y)(e,d,a)]:[3,3]):[2]);case 2:O=!R.sent(),R.label=3;case 3:return O?[2]:v&&!function(e){var t=_object_spread({},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}),n={},r=void 0===e;return Object.keys(t).forEach(function(o){t[o]&&(n[o]=!0,e&&e[o]&&(r=!0))}),!!r&&n}(v,l)?[2,j]:(I=o(j)?j:e,g?[4,u(g)(e,d,n)]:[3,5]);case 4:I=R.sent(),R.label=5;case 5:return b&&(I=S(e,b,j)),p?(P=_sliced_to_array(p,2),A=P[0],k=P[1],"this"!==A?[3,6]:(x=[e],[3,8])):[3,11];case 6:return[4,s(e,A,n)];case 7:x=R.sent(),R.label=8;case 8:return r(D=x)?[4,Promise.all(D.map(function(e){return s(e,k,n)}))]:[3,10];case 9:I=R.sent().filter(o),R.label=10;case 10:return[3,17];case 11:return h?[4,Object.entries(h).reduce(function(t,r){var a=_sliced_to_array(r,2),i=a[0],c=a[1];return _async_to_generator(function(){var r,a;return _ts_generator(this,function(u){switch(u.label){case 0:return[4,t];case 1:return r=u.sent(),[4,s(e,c,n)];case 2:return a=u.sent(),[2,(o(a)&&(r[i]=a),r)]}})})()},Promise.resolve({}))]:[3,13];case 12:return I=R.sent(),[3,16];case 13:return(C=m)?[4,Promise.all(m.map(function(t){return E(e,t,n)}))]:[3,15];case 14:C=I=R.sent(),R.label=15;case 15:R.label=16;case 16:R.label=17;case 17:return(L=w)?[4,u(w)(I)]:[3,19];case 18:L=!R.sent(),R.label=19;case 19:return L&&(I=void 0),G=c(I),[2,o(G)?G:c(j)]}})})()},Promise.resolve(void 0))]})}).apply(this,arguments)}var A,k="dataLayer",D="https://www.googletagmanager.com/gtm.js?id=",x={},C=!1,L={marketing:["ad_storage","ad_user_data","ad_personalization"],functional:["analytics_storage"]},G={type:"google-gtag",config:{settings:{}},init:function(n){var r=n.config,o=n.env,a=n.logger,i=r.settings,c=void 0===i?{}:i,u=r.loadScript,s=c.ga4,d=c.ads,f=c.gtm;return(null==s?void 0:s.measurementId)||(null==d?void 0:d.conversionId)||(null==f?void 0:f.containerId)||a.throw("Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId"),(null==s?void 0:s.measurementId)&&function(n,r,o,a){var i=l(o),c=i.window,u=i.document,s=n.measurementId,d=n.transport_url,f=n.server_container_url,_=n.pageview;s||a.throw("Config settings ga4.measurementId missing"),r&&e(s,void 0,u),t(c);var y={};d&&(y.transport_url=d),f&&(y.server_container_url=f),!1===_&&(y.send_page_view=!1);var v=c.gtag;v("js",new Date),v("config",s,y)}(s,u,o,a),(null==d?void 0:d.conversionId)&&function(n,r,o,a){var i=l(o),c=i.window,u=i.document,s=n.conversionId;s||a.throw("Config settings ads.conversionId missing"),n.currency||(n.currency="EUR"),r&&e(s,void 0,u),t(c);var d=c.gtag;d("js",new Date),d("config",s)}(d,u,o,a),(null==f?void 0:f.containerId)&&function(e,t,n){var r=l(n),o=r.window,a=r.document,i=e.containerId,c=e.dataLayer,u=e.domain,s=c||k;s===k?o.dataLayer=o.dataLayer||[]:o[s]=o[s]||[],o[s].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&i&&_(i,u||D,s,a)}(f,u,o),r},push:function(e,t){return _async_to_generator(function(e,t){var n,r,o,i,c,u,s,_,y,v,g,b,p,h,m,w;return _ts_generator(this,function(j){switch(j.label){case 0:return n=t.config,r=t.rule,o=void 0===r?{}:r,i=t.data,c=t.env,u=t.collector,s=t.logger,_=n.settings,v=(y=void 0===_?{}:_).ga4,g=y.ads,b=y.gtm,p=o.settings||{},[4,d(e,i,n,v,u)];case 1:return h=j.sent(),[4,d(e,i,n,g,u)];case 2:return m=j.sent(),[4,d(e,i,n,b,u)];case 3:return w=j.sent(),(null==v?void 0:v.measurementId)&&f(e,v,p.ga4,h,c,s),(null==g?void 0:g.conversionId)&&o.name&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0,c=arguments.length>6?arguments[6]:void 0,u=t.conversionId,s=t.currency,d=a(r)?r:{},f=n.label||o;f||c.throw("Config mapping ads.label missing");var _=_object_spread({send_to:"".concat(u,"/").concat(f),currency:s||"EUR"},d);(0,l(i).window.gtag)("event","conversion",_)}(e,g,p.ads,m,o.name,c,s),(null==b?void 0:b.containerId)&&function(e,t){var n=arguments.length>3?arguments[3]:void 0,r=l(arguments.length>4?arguments[4]:void 0).window,o={event:e.name};r.dataLayer.push(_object_spread({},o,a(n)?n:e))}(e,b,p.gtm,w,c,s),[2]}})}).apply(this,arguments)},on:function(e,n){var r;if("consent"===e&&n.data){var o=n.data,a=((null===(r=n.config)||void 0===r?void 0:r.settings)||{}).como,i=void 0===a||a;if(i){var c=l(n.env).window,u=t(c);if(u){var s=!0===i?L:i;if(!C){var d=new Set;if(Object.values(s).forEach(function(e){(Array.isArray(e)?e:[e]).forEach(function(e){return d.add(e)})}),d.size>0){var f={};d.forEach(function(e){f[e]="denied"}),u("consent","default",f)}C=!0}var _={};Object.entries(o).forEach(function(e){var t=_sliced_to_array(e,2),n=t[0],r=t[1],o=s[n];if(o){var a=Array.isArray(o)?o:[o],i=r?"granted":"denied";a.forEach(function(e){_[e]=i})}}),0!==Object.keys(_).length&&u("consent","update",_)}}}}},R=G;return A=h,function(e,t,n,r){if(t&&"object"===(void 0===t?"undefined":_type_of(t))||"function"==typeof t){var o=!0,a=!1,i=void 0;try{for(var c,u=function(){var o=c.value;p.call(e,o)||o===n||v(e,o,{get:function(){return t[o]},enumerable:!(r=g(t,o))||r.enumerable})},s=b(t)[Symbol.iterator]();!(o=(c=s.next()).done);o=!0)u()}catch(e){a=!0,i=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}}return e}(v({},"__esModule",{value:!0}),A)}();
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,a={};((e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})})(a,{DestinationGtag:()=>S,default:()=>T,destinationGtag:()=>$,resetConsentState:()=>G}),module.exports=(e=a,((e,a,i,c)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let s of r(a))o.call(e,s)||s===i||t(e,s,{get:()=>a[s],enumerable:!(c=n(a,s))||c.enumerable});return e})(t({},"__esModule",{value:!0}),e));var i=new Set;function c(e,t="https://www.googletagmanager.com/gtag/js?id=",n=globalThis.document){if(i.has(e))return;const r=n.createElement("script");r.src=t+e,n.head.appendChild(r),i.add(e)}function s(e){const t=e;return t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)}),t.gtag}var u=require("@walkeros/web-core");var d=Object.defineProperty;((e,t)=>{for(var n in t)d(e,n,{get:t[n],enumerable:!0})})({},{Level:()=>g});var l,g=((l=g||{})[l.ERROR=0]="ERROR",l[l.INFO=1]="INFO",l[l.DEBUG=2]="DEBUG",l),f={merge:!0,shallow:!0,extend:!0};function v(e,t={},n={}){n={...f,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const a=e[r];return n.merge&&Array.isArray(a)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...a]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function
|
|
1
|
+
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,a={};((e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})})(a,{DestinationGtag:()=>S,default:()=>T,destinationGtag:()=>$,resetConsentState:()=>G}),module.exports=(e=a,((e,a,i,c)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let s of r(a))o.call(e,s)||s===i||t(e,s,{get:()=>a[s],enumerable:!(c=n(a,s))||c.enumerable});return e})(t({},"__esModule",{value:!0}),e));var i=new Set;function c(e,t="https://www.googletagmanager.com/gtag/js?id=",n=globalThis.document){if(i.has(e))return;const r=n.createElement("script");r.src=t+e,n.head.appendChild(r),i.add(e)}function s(e){const t=e;return t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)}),t.gtag}var u=require("@walkeros/web-core");var d=Object.defineProperty;((e,t)=>{for(var n in t)d(e,n,{get:t[n],enumerable:!0})})({},{Level:()=>g});var l,g=((l=g||{})[l.ERROR=0]="ERROR",l[l.INFO=1]="INFO",l[l.DEBUG=2]="DEBUG",l),f={merge:!0,shallow:!0,extend:!0};function v(e,t={},n={}){n={...f,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const a=e[r];return n.merge&&Array.isArray(a)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...a]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function w(e){return Array.isArray(e)}function m(e){return void 0!==e}function y(e){return"object"==typeof e&&null!==e&&!w(e)&&"[object Object]"===Object.prototype.toString.call(e)}function p(e){return"string"==typeof e}function b(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&w(o)){const t=r.slice(e+1).join("."),a=[];for(const e of o){const r=b(e,t,n);a.push(r)}return a}if(o=o instanceof Object?o[t]:void 0,!o)break}return m(o)?o:n}function h(e){return function(e){return"boolean"==typeof e}(e)||p(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!m(e)||w(e)&&e.every(h)||y(e)&&Object.values(e).every(h)}function j(e){return h(e)?e:void 0}function O(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(null==n?void 0:n())}}}async function E(e,t={},n={}){var r;if(!m(e))return;const o=y(e)&&e.consent||n.consent||(null==(r=n.collector)?void 0:r.consent),a=w(t)?t:[t];for(const t of a){const r=await O(I)(e,t,{...n,consent:o});if(m(r))return r}}async function I(e,t,n={}){const{collector:r,consent:o}=n;return(w(t)?t:[t]).reduce(async(t,a)=>{const i=await t;if(i)return i;const c=p(a)?{key:a}:a;if(!Object.keys(c).length)return;const{condition:s,consent:u,fn:d,key:l,loop:g,map:f,set:v,validate:y,value:h}=c;if(s&&!await O(s)(e,a,r))return;if(u&&!function(e,t={},n={}){const r={...t,...n},o={};let a=void 0===e;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(a=!0))}),!!a&&o}(u,o))return h;let _=m(h)?h:e;if(d&&(_=await O(d)(e,a,n)),l&&(_=b(e,l,h)),g){const[t,r]=g,o="this"===t?[e]:await E(e,t,n);w(o)&&(_=(await Promise.all(o.map(e=>E(e,r,n)))).filter(m))}else f?_=await Object.entries(f).reduce(async(t,[r,o])=>{const a=await t,i=await E(e,o,n);return m(i)&&(a[r]=i),a},Promise.resolve({})):v&&(_=await Promise.all(v.map(t=>I(e,t,n))));y&&!await O(y)(_)&&(_=void 0);const k=j(_);return m(k)?k:j(h)},Promise.resolve(void 0))}async function _(e,t,n,r,o){const a=y(t)?t:{},i=n.data?await E(e,n.data,{collector:o}):{},c=(null==r?void 0:r.data)?await E(e,r.data,{collector:o}):{},s=y(i)?i:{},u=y(c)?c:{};return v(v(a,s),u)}var k=require("@walkeros/web-core");function A(e,t,n={},r,o,a){const{window:i}=(0,k.getEnv)(o);t.measurementId||a.throw("Config settings ga4.measurementId missing");const c=y(r)?r:{},s=function(e,t){const n={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(t=>{let r=e[t]||{};"event"==t&&(r={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(r).forEach(([e,r])=>{"context"==t&&(r=r[0]),n[`${t}_${e}`]=r})}),n}(e,n.include||t.include||["data"]),u={...s,...c};let d=e.name;!1!==t.snakeCase&&(d=function(e,t=!0){return t?e.replace(/\s+/g,"_").toLowerCase():e}(d)),u.send_to=t.measurementId,t.debug&&(u.debug_mode=!0);(0,i.gtag)("event",d,u)}var C=require("@walkeros/web-core");var L=require("@walkeros/web-core");var P=require("@walkeros/web-core"),R="dataLayer";function q(e,t,n,r){const{window:o,document:a}=(0,P.getEnv)(n),{containerId:i,dataLayer:c,domain:s}=e,u=c||R;u===R?o.dataLayer=o.dataLayer||[]:o[u]=o[u]||[];o[u].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&i&&function(e,t,n,r=globalThis.document){const o=n!=R?"&l="+n:"",a=r.createElement("script");a.src=t+e+o,r.head.appendChild(a)}(i,s||"https://www.googletagmanager.com/gtm.js?id=",u,a)}var D=require("@walkeros/web-core");var N=require("@walkeros/web-core"),S={},x=!1;function G(){x=!1}var U={marketing:["ad_storage","ad_user_data","ad_personalization"],functional:["analytics_storage"]},$={type:"google-gtag",config:{settings:{}},init({config:e,env:t,logger:n}){const{settings:r={},loadScript:o}=e,{ga4:a,ads:i,gtm:d}=r;return(null==a?void 0:a.measurementId)||(null==i?void 0:i.conversionId)||(null==d?void 0:d.containerId)||n.throw("Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId"),(null==a?void 0:a.measurementId)&&function(e,t,n,r){const{window:o,document:a}=(0,u.getEnv)(n),{measurementId:i,transport_url:d,server_container_url:l,pageview:g}=e;i||r.throw("Config settings ga4.measurementId missing"),t&&c(i,void 0,a),s(o);const f={};d&&(f.transport_url=d),l&&(f.server_container_url=l),!1===g&&(f.send_page_view=!1);const v=o.gtag;v("js",new Date),v("config",i,f)}(a,o,t,n),(null==i?void 0:i.conversionId)&&function(e,t,n,r){const{window:o,document:a}=(0,C.getEnv)(n),{conversionId:i}=e;i||r.throw("Config settings ads.conversionId missing"),e.currency||(e.currency="EUR"),t&&c(i,void 0,a),s(o);const u=o.gtag;u("js",new Date),u("config",i)}(i,o,t,n),(null==d?void 0:d.containerId)&&q(d,o,t),e},async push(e,{config:t,rule:n={},data:r,env:o,collector:a,logger:i}){const{settings:c={}}=t,{ga4:s,ads:u,gtm:d}=c,l=n.settings||{},g=await _(e,r,t,s,a),f=await _(e,r,t,u,a),v=await _(e,r,t,d,a);(null==s?void 0:s.measurementId)&&A(e,s,l.ga4,g,o,i),(null==u?void 0:u.conversionId)&&n.name&&function(e,t,n={},r,o,a,i){const{conversionId:c,currency:s}=t,u=y(r)?r:{},d=n.label||o;d||i.throw("Config mapping ads.label missing");const l={send_to:`${c}/${d}`,currency:s||"EUR",...u},{window:g}=(0,L.getEnv)(a);(0,g.gtag)("event","conversion",l)}(0,u,l.ads,f,n.name,o,i),(null==d?void 0:d.containerId)&&function(e,t,n={},r,o){const{window:a}=(0,D.getEnv)(o),i={event:e.name};a.dataLayer.push({...i,...y(r)?r:e})}(e,0,l.gtm,v,o)},on(e,t){var n;if("consent"!==e||!t.data)return;const r=t.data,o=(null==(n=t.config)?void 0:n.settings)||{},{como:a=!0}=o;if(!a)return;const{window:i}=(0,N.getEnv)(t.env),c=s(i);if(!c)return;const u=!0===a?U:a;if(!x){const e=new Set;if(Object.values(u).forEach(t=>{(Array.isArray(t)?t:[t]).forEach(t=>e.add(t))}),e.size>0){const t={};e.forEach(e=>{t[e]="denied"}),c("consent","default",t)}x=!0}const d={};Object.entries(r).forEach(([e,t])=>{const n=u[e];if(!n)return;const r=Array.isArray(n)?n:[n],o=t?"granted":"denied";r.forEach(e=>{d[e]=o})}),0!==Object.keys(d).length&&c("consent","update",d)}},T=$;//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/shared/gtag.ts","../src/ga4/config.ts","../src/shared/parameters.ts","../src/shared/mapping.ts","../src/ga4/push.ts","../src/ads/config.ts","../src/ads/push.ts","../src/gtm/config.ts","../src/gtm/push.ts","../src/types/index.ts"],"sourcesContent":["import type { WalkerOS, On, Collector, Logger } from '@walkeros/core';\nimport type { Settings, Destination, ConsentMapping } from './types';\nimport { initGA4, pushGA4Event } from './ga4';\nimport { initAds, pushAdsEvent } from './ads';\nimport { initGTM, pushGTMEvent } from './gtm';\nimport { getData } from './shared/mapping';\nimport { initializeGtag } from './shared/gtag';\nimport { getEnv } from '@walkeros/web-core';\n\n// Types\nexport * as DestinationGtag from './types';\n\n// Track whether default consent has been set\nlet defaultConsentSet = false;\n\n// For testing: allow resetting consent state\nexport function resetConsentState(): void {\n defaultConsentSet = false;\n}\n\n// Default consent mapping: walkerOS consent groups → gtag consent parameters\nconst DEFAULT_CONSENT_MAPPING: ConsentMapping = {\n marketing: ['ad_storage', 'ad_user_data', 'ad_personalization'],\n functional: ['analytics_storage'],\n};\n\nexport const destinationGtag: Destination = {\n type: 'google-gtag',\n\n config: { settings: {} },\n\n init({ config, env, logger }) {\n const { settings = {} as Partial<Settings>, loadScript } = config;\n const { ga4, ads, gtm } = settings;\n\n // Fail if no tools are configured\n if (!ga4?.measurementId && !ads?.conversionId && !gtm?.containerId) {\n logger.throw(\n 'Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId',\n );\n }\n\n // Initialize GA4 if configured\n if (ga4?.measurementId) {\n initGA4(ga4, loadScript, env, logger);\n }\n\n // Initialize Google Ads if configured\n if (ads?.conversionId) {\n initAds(ads, loadScript, env, logger);\n }\n\n // Initialize GTM if configured\n if (gtm?.containerId) {\n initGTM(gtm, loadScript, env, logger);\n }\n\n return config;\n },\n\n async push(event, { config, mapping = {}, data, env, collector, logger }) {\n const { settings = {} } = config;\n const { ga4, ads, gtm } = settings;\n const eventMapping = mapping.settings || {};\n\n // Resolve data for each tool with proper priority\n const ga4Data = await getData(\n event,\n data as WalkerOS.AnyObject,\n config,\n ga4,\n collector,\n );\n const adsData = await getData(\n event,\n data as WalkerOS.AnyObject,\n config,\n ads,\n collector,\n );\n const gtmData = await getData(\n event,\n data as WalkerOS.AnyObject,\n config,\n gtm,\n collector,\n );\n\n // Push to GA4 if configured\n if (ga4?.measurementId) {\n pushGA4Event(event, ga4, eventMapping.ga4, ga4Data, env, logger);\n }\n\n // @TODO: Fix condition - should check for mapping.settings?.ads?.label || mapping.name\n // Currently requires mapping.name even when label is provided via settings.ads.label\n if (ads?.conversionId && mapping.name) {\n pushAdsEvent(\n event,\n ads,\n eventMapping.ads,\n adsData,\n mapping.name,\n env,\n logger,\n );\n }\n\n // Push to GTM if configured\n if (gtm?.containerId) {\n pushGTMEvent(event, gtm, eventMapping.gtm, gtmData, env, logger);\n }\n },\n\n on(type, context) {\n // Only handle consent events\n if (type !== 'consent' || !context.data) return;\n\n const consent = context.data as WalkerOS.Consent;\n const settings = (context.config?.settings || {}) as Partial<Settings>;\n const { como = true } = settings;\n\n // Skip if consent mode is disabled\n if (!como) return;\n\n // Ensure gtag is available\n const { window } = getEnv(context.env);\n const gtag = initializeGtag(window as Window);\n if (!gtag) return;\n\n // Determine consent mapping to use\n const consentMapping: ConsentMapping =\n como === true ? DEFAULT_CONSENT_MAPPING : como;\n\n // If this is the first consent call, set default to denied for all parameters\n if (!defaultConsentSet) {\n // Get all possible gtag parameters from the mapping\n const allGtagParams = new Set<string>();\n Object.values(consentMapping).forEach((params) => {\n const paramArray = Array.isArray(params) ? params : [params];\n paramArray.forEach((param) => allGtagParams.add(param));\n });\n\n // Only call default if we have parameters to set\n if (allGtagParams.size > 0) {\n const defaultConsent: Record<string, 'denied'> = {};\n allGtagParams.forEach((param) => {\n defaultConsent[param] = 'denied';\n });\n\n // Call default with all denied\n gtag('consent', 'default', defaultConsent);\n }\n\n defaultConsentSet = true;\n }\n\n // Build gtag consent object for update\n const gtagConsent: Record<string, 'granted' | 'denied'> = {};\n\n // Map walkerOS consent to gtag consent parameters for update\n Object.entries(consent).forEach(([walkerOSGroup, granted]) => {\n const gtagParams = consentMapping[walkerOSGroup];\n if (!gtagParams) return;\n\n const params = Array.isArray(gtagParams) ? gtagParams : [gtagParams];\n const consentValue = granted ? 'granted' : 'denied';\n\n params.forEach((param) => {\n gtagConsent[param] = consentValue;\n });\n });\n\n // Only proceed if we have consent parameters to update\n if (Object.keys(gtagConsent).length === 0) return;\n\n // Always use update after the initial default\n gtag('consent', 'update', gtagConsent);\n },\n};\n\nexport default destinationGtag;\n","// Gtag script loading and initialization utilities\n\nconst loadedScripts = new Set<string>();\n\n// For testing: allow resetting loaded scripts\nexport function resetLoadedScripts(): void {\n loadedScripts.clear();\n}\n\nexport function addScript(\n id: string,\n src = 'https://www.googletagmanager.com/gtag/js?id=',\n document: Document = globalThis.document,\n): void {\n // Prevent loading the same script multiple times\n if (loadedScripts.has(id)) return;\n\n const script = document.createElement('script');\n script.src = src + id;\n document.head.appendChild(script);\n loadedScripts.add(id);\n}\n\nexport function initializeGtag(window: Window): Gtag.Gtag | undefined {\n const w = window;\n\n // Setup dataLayer if not exists\n w.dataLayer = w.dataLayer || [];\n\n // Setup gtag function if not exists\n if (!w.gtag) {\n w.gtag = function () {\n (w.dataLayer as unknown[]).push(arguments);\n };\n }\n\n return w.gtag;\n}\n","import type { WalkerOS, Logger } from '@walkeros/core';\nimport type { GA4Settings } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { addScript, initializeGtag } from '../shared/gtag';\nimport { getEnv } from '@walkeros/web-core';\n\nexport function initGA4(\n settings: GA4Settings,\n loadScript: boolean | undefined,\n env: DestinationWeb.Env | undefined,\n logger: Logger.Instance,\n): void {\n const { window, document } = getEnv(env);\n const { measurementId, transport_url, server_container_url, pageview } =\n settings;\n\n if (!measurementId) logger.throw('Config settings ga4.measurementId missing');\n\n // Load the gtag script\n if (loadScript) addScript(measurementId, undefined, document as Document);\n\n // Initialize gtag infrastructure\n initializeGtag(window as Window);\n\n const gtagSettings: WalkerOS.AnyObject = {};\n\n // custom transport_url\n if (transport_url) gtagSettings.transport_url = transport_url;\n\n // custom server_container_url\n if (server_container_url)\n gtagSettings.server_container_url = server_container_url;\n\n // disable pageviews\n if (pageview === false) gtagSettings.send_page_view = false;\n\n const gtag = window.gtag as Gtag.Gtag;\n gtag('js', new Date());\n\n // gtag init call\n gtag('config', measurementId, gtagSettings);\n}\n","import type { WalkerOS } from '@walkeros/core';\nimport type { Include, Parameters } from '../types';\n\nexport function getParamsInclude(\n event: WalkerOS.DeepPartialEvent,\n include: Include,\n): Parameters {\n const params: Parameters = {};\n\n // Check for the 'all' group to add each group\n if (include.includes('all'))\n include = [\n 'context',\n 'data',\n 'event',\n 'globals',\n 'source',\n 'user',\n 'version',\n ];\n\n include.forEach((groupName) => {\n let group = event[groupName as keyof Omit<WalkerOS.Event, 'all'>] || {};\n\n // Create a fake group for event properties\n if (groupName == 'event')\n group = {\n id: event.id,\n timing: event.timing,\n trigger: event.trigger,\n entity: event.entity,\n action: event.action,\n group: event.group,\n count: event.count,\n };\n\n Object.entries(group).forEach(([key, val]) => {\n // Different value access for context\n if (groupName == 'context') val = (val as WalkerOS.OrderedProperties)[0];\n\n params[`${groupName}_${key}`] = val;\n });\n });\n\n return params;\n}\n","// Shared mapping utilities for all Google tools\nimport type { WalkerOS, Collector } from '@walkeros/core';\nimport { getMappingValue, assign, isObject } from '@walkeros/core';\nimport type { BaseSettings, Config } from '../types';\n\nexport function normalizeEventName(\n eventName: string,\n snakeCase = true,\n): string {\n if (!snakeCase) return eventName;\n\n return eventName.replace(/\\s+/g, '_').toLowerCase();\n}\n\nexport async function getData(\n event: WalkerOS.Event,\n data: WalkerOS.AnyObject | undefined,\n config: Config,\n toolSettings: BaseSettings | undefined,\n collector: Collector.Instance,\n): Promise<WalkerOS.AnyObject> {\n const baseData = isObject(data) ? data : {};\n\n // Get config-level mapped data\n const configMappedData = config.data\n ? await getMappingValue(event, config.data, { collector })\n : {};\n\n // Get tool-specific mapped data\n const toolMappedData = toolSettings?.data\n ? await getMappingValue(event, toolSettings.data, { collector })\n : {};\n\n // Ensure all values are objects before merging\n const configData = isObject(configMappedData) ? configMappedData : {};\n const toolData = isObject(toolMappedData) ? toolMappedData : {};\n\n // Merge with proper priority: base <- config <- tool\n return assign(assign(baseData, configData), toolData);\n}\n","import type { WalkerOS, Logger } from '@walkeros/core';\nimport type { GA4Settings, GA4Mapping, Parameters } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { isObject } from '@walkeros/core';\nimport { getParamsInclude } from '../shared/parameters';\nimport { normalizeEventName } from '../shared/mapping';\nimport { getEnv } from '@walkeros/web-core';\n\nexport function pushGA4Event(\n event: WalkerOS.Event,\n settings: GA4Settings,\n mapping: GA4Mapping = {},\n data: WalkerOS.AnyObject,\n env: DestinationWeb.Env | undefined,\n logger: Logger.Instance,\n): void {\n const { window } = getEnv(env);\n\n if (!settings.measurementId)\n logger.throw('Config settings ga4.measurementId missing');\n\n const eventData = isObject(data) ? data : {};\n\n const paramsInclude = getParamsInclude(\n event,\n // Add data to include by default\n mapping.include || settings.include || ['data'],\n );\n\n const eventParams: Parameters = {\n ...paramsInclude,\n ...eventData,\n };\n\n // Event name (snake_case default)\n let eventName = event.name; // Assume custom mapped name\n if (settings.snakeCase !== false) {\n // Use snake case if not disabled\n eventName = normalizeEventName(eventName);\n }\n\n // Set the GA4 stream id\n eventParams.send_to = settings.measurementId;\n\n // Debug mode\n if (settings.debug) eventParams.debug_mode = true;\n\n const gtag = window.gtag as Gtag.Gtag;\n gtag('event', eventName, eventParams);\n}\n","import type { Logger } from '@walkeros/core';\nimport type { AdsSettings } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { addScript, initializeGtag } from '../shared/gtag';\nimport { getEnv } from '@walkeros/web-core';\n\nexport function initAds(\n settings: AdsSettings,\n loadScript: boolean | undefined,\n env: DestinationWeb.Env | undefined,\n logger: Logger.Instance,\n): void {\n const { window, document } = getEnv(env);\n const { conversionId } = settings;\n\n if (!conversionId) logger.throw('Config settings ads.conversionId missing');\n\n // Default currency value\n if (!settings.currency) settings.currency = 'EUR';\n\n if (loadScript) addScript(conversionId, undefined, document as Document);\n\n // Initialize gtag infrastructure\n initializeGtag(window as Window);\n\n const gtag = window.gtag as Gtag.Gtag;\n gtag('js', new Date());\n\n // gtag init call\n gtag('config', conversionId);\n}\n","import type { WalkerOS, Logger } from '@walkeros/core';\nimport type { AdsSettings, AdsMapping } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { isObject } from '@walkeros/core';\nimport { getEnv } from '@walkeros/web-core';\n\nexport function pushAdsEvent(\n event: WalkerOS.Event,\n settings: AdsSettings,\n mapping: AdsMapping = {},\n data: WalkerOS.AnyObject,\n mappingName: string | undefined,\n env: DestinationWeb.Env | undefined,\n logger: Logger.Instance,\n): void {\n const { conversionId, currency } = settings;\n const eventData = isObject(data) ? data : {};\n\n // Use label from mapping settings, fallback to mappingName for backward compatibility\n const conversionLabel = mapping.label || mappingName;\n if (!conversionLabel) logger.throw('Config mapping ads.label missing');\n\n const params: Gtag.CustomParams = {\n send_to: `${conversionId}/${conversionLabel}`,\n currency: currency || 'EUR',\n ...eventData,\n };\n\n const { window } = getEnv(env);\n const gtag = window.gtag as Gtag.Gtag;\n gtag('event', 'conversion', params);\n}\n","import type { Logger } from '@walkeros/core';\nimport type { GTMSettings } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { getEnv } from '@walkeros/web-core';\n\nconst defaultDataLayer = 'dataLayer';\nconst defaultDomain = 'https://www.googletagmanager.com/gtm.js?id=';\n\nexport function initGTM(\n settings: GTMSettings,\n loadScript?: boolean,\n env?: DestinationWeb.Env,\n _logger?: Logger.Instance,\n): void {\n const { window, document } = getEnv(env);\n const { containerId, dataLayer, domain } = settings;\n const dataLayerName = dataLayer || defaultDataLayer;\n\n // Initialize the dataLayer (default or custom name)\n if (dataLayerName === defaultDataLayer) {\n window.dataLayer = window.dataLayer || [];\n } else {\n window[dataLayerName] = (window[dataLayerName] as unknown[]) || [];\n }\n\n // Get the appropriate dataLayer array\n const dataLayerArray = window[dataLayerName] as unknown[];\n\n dataLayerArray.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js',\n });\n\n // Load the gtm script and container\n if (loadScript && containerId)\n addScript(\n containerId,\n domain || defaultDomain,\n dataLayerName,\n document as Document,\n );\n}\n\nfunction addScript(\n containerId: string,\n src: string,\n dataLayerName: string,\n document: Document = globalThis.document,\n) {\n const dl = dataLayerName != defaultDataLayer ? '&l=' + dataLayerName : '';\n const script = document.createElement('script');\n script.src = src + containerId + dl;\n document.head.appendChild(script);\n}\n","import type { WalkerOS, Logger } from '@walkeros/core';\nimport type { GTMSettings, GTMMapping } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { isObject } from '@walkeros/core';\nimport { getEnv } from '@walkeros/web-core';\n\nexport function pushGTMEvent(\n event: WalkerOS.Event,\n settings: GTMSettings,\n mapping: GTMMapping = {},\n data: WalkerOS.AnyObject,\n env?: DestinationWeb.Env,\n _logger?: Logger.Instance,\n): void {\n const { window } = getEnv(env);\n const obj = { event: event.name }; // Use the name mapping by default\n\n (window.dataLayer as unknown[]).push({\n ...obj,\n ...(isObject(data) ? data : event),\n });\n}\n","import type {\n Mapping as WalkerOSMapping,\n Destination as CoreDestination,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\n// Extend Window interface with specific dataLayer typing\ninterface WindowWithDataLayer extends Window {\n dataLayer: unknown[];\n gtag?: Gtag.Gtag;\n [key: string]: unknown; // For custom dataLayer names and other properties\n}\n\ndeclare global {\n interface Window {\n gtag?: Gtag.Gtag;\n [key: string]: unknown; // For custom dataLayer names and other properties\n }\n}\n\n// Gtag-specific environment interface\nexport interface Env extends DestinationWeb.Env {\n window: {\n gtag: Gtag.Gtag;\n dataLayer: unknown[];\n };\n document: {\n createElement: (tagName: string) => {\n src: string;\n async?: boolean;\n setAttribute: (name: string, value: string) => void;\n removeAttribute: (name: string) => void;\n };\n head: {\n appendChild: (node: unknown) => void;\n };\n };\n}\n\n// Consent mode configuration\nexport type ConsentMode =\n | false // Disable consent mode\n | true // Use default mapping\n | ConsentMapping; // Custom mapping\n\nexport interface ConsentMapping {\n [walkerOSConsentGroup: string]: string | string[];\n}\n\n// Type bundle\nexport type Types = CoreDestination.Types<Settings, Mapping, Env, InitSettings>;\n\nexport type Destination = DestinationWeb.Destination<Types>;\nexport type Config = DestinationWeb.Config<Types>;\n\n// Base settings interface with data field\nexport interface BaseSettings {\n data?: WalkerOSMapping.Value | WalkerOSMapping.Values;\n}\n\n// Unified settings for all Google tools\nexport interface Settings {\n // Consent mode configuration\n como?: ConsentMode;\n // GA4 settings\n ga4?: GA4Settings;\n // Google Ads settings\n ads?: AdsSettings;\n // GTM settings\n gtm?: GTMSettings;\n}\n\n// InitSettings: user input (all optional)\nexport type InitSettings = Partial<Settings>;\n\n// GA4-specific settings\nexport interface GA4Settings extends BaseSettings {\n measurementId: string;\n debug?: boolean;\n include?: Include;\n pageview?: boolean;\n server_container_url?: string;\n snakeCase?: boolean;\n transport_url?: string;\n}\n\n// Google Ads specific settings\nexport interface AdsSettings extends BaseSettings {\n conversionId: string;\n currency?: string;\n}\n\n// Google Ads specific mapping\nexport interface AdsMapping {\n label?: string; // Conversion label for this specific event\n}\n\n// GTM specific settings\nexport interface GTMSettings extends BaseSettings {\n containerId: string;\n dataLayer?: string;\n domain?: string;\n}\n\n// Unified mapping interface\nexport interface Mapping {\n ga4?: GA4Mapping;\n ads?: AdsMapping;\n gtm?: GTMMapping;\n}\n\n// GA4-specific mapping\nexport interface GA4Mapping {\n include?: Include;\n}\n\n// GTM specific mapping\nexport interface GTMMapping {}\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\nexport type Param = WalkerOSMapping.Value;\n\nexport type Include = Array<\n | 'all'\n | 'context'\n | 'data'\n | 'event'\n | 'globals'\n | 'source'\n | 'user'\n | 'version'\n>;\n\nexport type Parameters = Gtag.ControlParams &\n Gtag.EventParams &\n Gtag.CustomParams;\n"],"mappings":"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","names":["document","document","import_web_core","import_web_core","document","import_web_core","import_web_core","document","addScript","import_web_core","import_web_core"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/shared/gtag.ts","../src/ga4/config.ts","../src/shared/parameters.ts","../src/shared/mapping.ts","../src/ga4/push.ts","../src/ads/config.ts","../src/ads/push.ts","../src/gtm/config.ts","../src/gtm/push.ts","../src/types/index.ts"],"sourcesContent":["import type { WalkerOS, On, Collector, Logger } from '@walkeros/core';\nimport type { Settings, Destination, ConsentMapping } from './types';\nimport { initGA4, pushGA4Event } from './ga4';\nimport { initAds, pushAdsEvent } from './ads';\nimport { initGTM, pushGTMEvent } from './gtm';\nimport { getData } from './shared/mapping';\nimport { initializeGtag } from './shared/gtag';\nimport { getEnv } from '@walkeros/web-core';\n\n// Types\nexport * as DestinationGtag from './types';\n\n// Track whether default consent has been set\nlet defaultConsentSet = false;\n\n// For testing: allow resetting consent state\nexport function resetConsentState(): void {\n defaultConsentSet = false;\n}\n\n// Default consent mapping: walkerOS consent groups → gtag consent parameters\nconst DEFAULT_CONSENT_MAPPING: ConsentMapping = {\n marketing: ['ad_storage', 'ad_user_data', 'ad_personalization'],\n functional: ['analytics_storage'],\n};\n\nexport const destinationGtag: Destination = {\n type: 'google-gtag',\n\n config: { settings: {} },\n\n init({ config, env, logger }) {\n const { settings = {} as Partial<Settings>, loadScript } = config;\n const { ga4, ads, gtm } = settings;\n\n // Fail if no tools are configured\n if (!ga4?.measurementId && !ads?.conversionId && !gtm?.containerId) {\n logger.throw(\n 'Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId',\n );\n }\n\n // Initialize GA4 if configured\n if (ga4?.measurementId) {\n initGA4(ga4, loadScript, env, logger);\n }\n\n // Initialize Google Ads if configured\n if (ads?.conversionId) {\n initAds(ads, loadScript, env, logger);\n }\n\n // Initialize GTM if configured\n if (gtm?.containerId) {\n initGTM(gtm, loadScript, env, logger);\n }\n\n return config;\n },\n\n async push(event, { config, rule = {}, data, env, collector, logger }) {\n const { settings = {} } = config;\n const { ga4, ads, gtm } = settings;\n const eventMapping = rule.settings || {};\n\n // Resolve data for each tool with proper priority\n const ga4Data = await getData(\n event,\n data as WalkerOS.AnyObject,\n config,\n ga4,\n collector,\n );\n const adsData = await getData(\n event,\n data as WalkerOS.AnyObject,\n config,\n ads,\n collector,\n );\n const gtmData = await getData(\n event,\n data as WalkerOS.AnyObject,\n config,\n gtm,\n collector,\n );\n\n // Push to GA4 if configured\n if (ga4?.measurementId) {\n pushGA4Event(event, ga4, eventMapping.ga4, ga4Data, env, logger);\n }\n\n // @TODO: Fix condition - should check for rule.settings?.ads?.label || rule.name\n // Currently requires rule.name even when label is provided via settings.ads.label\n if (ads?.conversionId && rule.name) {\n pushAdsEvent(\n event,\n ads,\n eventMapping.ads,\n adsData,\n rule.name,\n env,\n logger,\n );\n }\n\n // Push to GTM if configured\n if (gtm?.containerId) {\n pushGTMEvent(event, gtm, eventMapping.gtm, gtmData, env, logger);\n }\n },\n\n on(type, context) {\n // Only handle consent events\n if (type !== 'consent' || !context.data) return;\n\n const consent = context.data as WalkerOS.Consent;\n const settings = (context.config?.settings || {}) as Partial<Settings>;\n const { como = true } = settings;\n\n // Skip if consent mode is disabled\n if (!como) return;\n\n // Ensure gtag is available\n const { window } = getEnv(context.env);\n const gtag = initializeGtag(window as Window);\n if (!gtag) return;\n\n // Determine consent mapping to use\n const consentMapping: ConsentMapping =\n como === true ? DEFAULT_CONSENT_MAPPING : como;\n\n // If this is the first consent call, set default to denied for all parameters\n if (!defaultConsentSet) {\n // Get all possible gtag parameters from the mapping\n const allGtagParams = new Set<string>();\n Object.values(consentMapping).forEach((params) => {\n const paramArray = Array.isArray(params) ? params : [params];\n paramArray.forEach((param) => allGtagParams.add(param));\n });\n\n // Only call default if we have parameters to set\n if (allGtagParams.size > 0) {\n const defaultConsent: Record<string, 'denied'> = {};\n allGtagParams.forEach((param) => {\n defaultConsent[param] = 'denied';\n });\n\n // Call default with all denied\n gtag('consent', 'default', defaultConsent);\n }\n\n defaultConsentSet = true;\n }\n\n // Build gtag consent object for update\n const gtagConsent: Record<string, 'granted' | 'denied'> = {};\n\n // Map walkerOS consent to gtag consent parameters for update\n Object.entries(consent).forEach(([walkerOSGroup, granted]) => {\n const gtagParams = consentMapping[walkerOSGroup];\n if (!gtagParams) return;\n\n const params = Array.isArray(gtagParams) ? gtagParams : [gtagParams];\n const consentValue = granted ? 'granted' : 'denied';\n\n params.forEach((param) => {\n gtagConsent[param] = consentValue;\n });\n });\n\n // Only proceed if we have consent parameters to update\n if (Object.keys(gtagConsent).length === 0) return;\n\n // Always use update after the initial default\n gtag('consent', 'update', gtagConsent);\n },\n};\n\nexport default destinationGtag;\n","// Gtag script loading and initialization utilities\n\nconst loadedScripts = new Set<string>();\n\n// For testing: allow resetting loaded scripts\nexport function resetLoadedScripts(): void {\n loadedScripts.clear();\n}\n\nexport function addScript(\n id: string,\n src = 'https://www.googletagmanager.com/gtag/js?id=',\n document: Document = globalThis.document,\n): void {\n // Prevent loading the same script multiple times\n if (loadedScripts.has(id)) return;\n\n const script = document.createElement('script');\n script.src = src + id;\n document.head.appendChild(script);\n loadedScripts.add(id);\n}\n\nexport function initializeGtag(window: Window): Gtag.Gtag | undefined {\n const w = window;\n\n // Setup dataLayer if not exists\n w.dataLayer = w.dataLayer || [];\n\n // Setup gtag function if not exists\n if (!w.gtag) {\n w.gtag = function () {\n (w.dataLayer as unknown[]).push(arguments);\n };\n }\n\n return w.gtag;\n}\n","import type { WalkerOS, Logger } from '@walkeros/core';\nimport type { GA4Settings } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { addScript, initializeGtag } from '../shared/gtag';\nimport { getEnv } from '@walkeros/web-core';\n\nexport function initGA4(\n settings: GA4Settings,\n loadScript: boolean | undefined,\n env: DestinationWeb.Env | undefined,\n logger: Logger.Instance,\n): void {\n const { window, document } = getEnv(env);\n const { measurementId, transport_url, server_container_url, pageview } =\n settings;\n\n if (!measurementId) logger.throw('Config settings ga4.measurementId missing');\n\n // Load the gtag script\n if (loadScript) addScript(measurementId, undefined, document as Document);\n\n // Initialize gtag infrastructure\n initializeGtag(window as Window);\n\n const gtagSettings: WalkerOS.AnyObject = {};\n\n // custom transport_url\n if (transport_url) gtagSettings.transport_url = transport_url;\n\n // custom server_container_url\n if (server_container_url)\n gtagSettings.server_container_url = server_container_url;\n\n // disable pageviews\n if (pageview === false) gtagSettings.send_page_view = false;\n\n const gtag = window.gtag as Gtag.Gtag;\n gtag('js', new Date());\n\n // gtag init call\n gtag('config', measurementId, gtagSettings);\n}\n","import type { WalkerOS } from '@walkeros/core';\nimport type { Include, Parameters } from '../types';\n\nexport function getParamsInclude(\n event: WalkerOS.DeepPartialEvent,\n include: Include,\n): Parameters {\n const params: Parameters = {};\n\n // Check for the 'all' group to add each group\n if (include.includes('all'))\n include = [\n 'context',\n 'data',\n 'event',\n 'globals',\n 'source',\n 'user',\n 'version',\n ];\n\n include.forEach((groupName) => {\n let group = event[groupName as keyof Omit<WalkerOS.Event, 'all'>] || {};\n\n // Create a fake group for event properties\n if (groupName == 'event')\n group = {\n id: event.id,\n timing: event.timing,\n trigger: event.trigger,\n entity: event.entity,\n action: event.action,\n group: event.group,\n count: event.count,\n };\n\n Object.entries(group).forEach(([key, val]) => {\n // Different value access for context\n if (groupName == 'context') val = (val as WalkerOS.OrderedProperties)[0];\n\n params[`${groupName}_${key}`] = val;\n });\n });\n\n return params;\n}\n","// Shared mapping utilities for all Google tools\nimport type { WalkerOS, Collector } from '@walkeros/core';\nimport { getMappingValue, assign, isObject } from '@walkeros/core';\nimport type { BaseSettings, Config } from '../types';\n\nexport function normalizeEventName(\n eventName: string,\n snakeCase = true,\n): string {\n if (!snakeCase) return eventName;\n\n return eventName.replace(/\\s+/g, '_').toLowerCase();\n}\n\nexport async function getData(\n event: WalkerOS.Event,\n data: WalkerOS.AnyObject | undefined,\n config: Config,\n toolSettings: BaseSettings | undefined,\n collector: Collector.Instance,\n): Promise<WalkerOS.AnyObject> {\n const baseData = isObject(data) ? data : {};\n\n // Get config-level mapped data\n const configMappedData = config.data\n ? await getMappingValue(event, config.data, { collector })\n : {};\n\n // Get tool-specific mapped data\n const toolMappedData = toolSettings?.data\n ? await getMappingValue(event, toolSettings.data, { collector })\n : {};\n\n // Ensure all values are objects before merging\n const configData = isObject(configMappedData) ? configMappedData : {};\n const toolData = isObject(toolMappedData) ? toolMappedData : {};\n\n // Merge with proper priority: base <- config <- tool\n return assign(assign(baseData, configData), toolData);\n}\n","import type { WalkerOS, Logger } from '@walkeros/core';\nimport type { GA4Settings, GA4Mapping, Parameters } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { isObject } from '@walkeros/core';\nimport { getParamsInclude } from '../shared/parameters';\nimport { normalizeEventName } from '../shared/mapping';\nimport { getEnv } from '@walkeros/web-core';\n\nexport function pushGA4Event(\n event: WalkerOS.Event,\n settings: GA4Settings,\n mapping: GA4Mapping = {},\n data: WalkerOS.AnyObject,\n env: DestinationWeb.Env | undefined,\n logger: Logger.Instance,\n): void {\n const { window } = getEnv(env);\n\n if (!settings.measurementId)\n logger.throw('Config settings ga4.measurementId missing');\n\n const eventData = isObject(data) ? data : {};\n\n const paramsInclude = getParamsInclude(\n event,\n // Add data to include by default\n mapping.include || settings.include || ['data'],\n );\n\n const eventParams: Parameters = {\n ...paramsInclude,\n ...eventData,\n };\n\n // Event name (snake_case default)\n let eventName = event.name; // Assume custom mapped name\n if (settings.snakeCase !== false) {\n // Use snake case if not disabled\n eventName = normalizeEventName(eventName);\n }\n\n // Set the GA4 stream id\n eventParams.send_to = settings.measurementId;\n\n // Debug mode\n if (settings.debug) eventParams.debug_mode = true;\n\n const gtag = window.gtag as Gtag.Gtag;\n gtag('event', eventName, eventParams);\n}\n","import type { Logger } from '@walkeros/core';\nimport type { AdsSettings } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { addScript, initializeGtag } from '../shared/gtag';\nimport { getEnv } from '@walkeros/web-core';\n\nexport function initAds(\n settings: AdsSettings,\n loadScript: boolean | undefined,\n env: DestinationWeb.Env | undefined,\n logger: Logger.Instance,\n): void {\n const { window, document } = getEnv(env);\n const { conversionId } = settings;\n\n if (!conversionId) logger.throw('Config settings ads.conversionId missing');\n\n // Default currency value\n if (!settings.currency) settings.currency = 'EUR';\n\n if (loadScript) addScript(conversionId, undefined, document as Document);\n\n // Initialize gtag infrastructure\n initializeGtag(window as Window);\n\n const gtag = window.gtag as Gtag.Gtag;\n gtag('js', new Date());\n\n // gtag init call\n gtag('config', conversionId);\n}\n","import type { WalkerOS, Logger } from '@walkeros/core';\nimport type { AdsSettings, AdsMapping } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { isObject } from '@walkeros/core';\nimport { getEnv } from '@walkeros/web-core';\n\nexport function pushAdsEvent(\n event: WalkerOS.Event,\n settings: AdsSettings,\n mapping: AdsMapping = {},\n data: WalkerOS.AnyObject,\n mappingName: string | undefined,\n env: DestinationWeb.Env | undefined,\n logger: Logger.Instance,\n): void {\n const { conversionId, currency } = settings;\n const eventData = isObject(data) ? data : {};\n\n // Use label from mapping settings, fallback to mappingName for backward compatibility\n const conversionLabel = mapping.label || mappingName;\n if (!conversionLabel) logger.throw('Config mapping ads.label missing');\n\n const params: Gtag.CustomParams = {\n send_to: `${conversionId}/${conversionLabel}`,\n currency: currency || 'EUR',\n ...eventData,\n };\n\n const { window } = getEnv(env);\n const gtag = window.gtag as Gtag.Gtag;\n gtag('event', 'conversion', params);\n}\n","import type { Logger } from '@walkeros/core';\nimport type { GTMSettings } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { getEnv } from '@walkeros/web-core';\n\nconst defaultDataLayer = 'dataLayer';\nconst defaultDomain = 'https://www.googletagmanager.com/gtm.js?id=';\n\nexport function initGTM(\n settings: GTMSettings,\n loadScript?: boolean,\n env?: DestinationWeb.Env,\n _logger?: Logger.Instance,\n): void {\n const { window, document } = getEnv(env);\n const { containerId, dataLayer, domain } = settings;\n const dataLayerName = dataLayer || defaultDataLayer;\n\n // Initialize the dataLayer (default or custom name)\n if (dataLayerName === defaultDataLayer) {\n window.dataLayer = window.dataLayer || [];\n } else {\n window[dataLayerName] = (window[dataLayerName] as unknown[]) || [];\n }\n\n // Get the appropriate dataLayer array\n const dataLayerArray = window[dataLayerName] as unknown[];\n\n dataLayerArray.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js',\n });\n\n // Load the gtm script and container\n if (loadScript && containerId)\n addScript(\n containerId,\n domain || defaultDomain,\n dataLayerName,\n document as Document,\n );\n}\n\nfunction addScript(\n containerId: string,\n src: string,\n dataLayerName: string,\n document: Document = globalThis.document,\n) {\n const dl = dataLayerName != defaultDataLayer ? '&l=' + dataLayerName : '';\n const script = document.createElement('script');\n script.src = src + containerId + dl;\n document.head.appendChild(script);\n}\n","import type { WalkerOS, Logger } from '@walkeros/core';\nimport type { GTMSettings, GTMMapping } from '../types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { isObject } from '@walkeros/core';\nimport { getEnv } from '@walkeros/web-core';\n\nexport function pushGTMEvent(\n event: WalkerOS.Event,\n settings: GTMSettings,\n mapping: GTMMapping = {},\n data: WalkerOS.AnyObject,\n env?: DestinationWeb.Env,\n _logger?: Logger.Instance,\n): void {\n const { window } = getEnv(env);\n const obj = { event: event.name }; // Use the name mapping by default\n\n (window.dataLayer as unknown[]).push({\n ...obj,\n ...(isObject(data) ? data : event),\n });\n}\n","import type {\n Mapping as WalkerOSMapping,\n Destination as CoreDestination,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\n// Extend Window interface with specific dataLayer typing\ninterface WindowWithDataLayer extends Window {\n dataLayer: unknown[];\n gtag?: Gtag.Gtag;\n [key: string]: unknown; // For custom dataLayer names and other properties\n}\n\ndeclare global {\n interface Window {\n gtag?: Gtag.Gtag;\n [key: string]: unknown; // For custom dataLayer names and other properties\n }\n}\n\n// Gtag-specific environment interface\nexport interface Env extends DestinationWeb.Env {\n window: {\n gtag: Gtag.Gtag;\n dataLayer: unknown[];\n };\n document: {\n createElement: (tagName: string) => {\n src: string;\n async?: boolean;\n setAttribute: (name: string, value: string) => void;\n removeAttribute: (name: string) => void;\n };\n head: {\n appendChild: (node: unknown) => void;\n };\n };\n}\n\n// Consent mode configuration\nexport type ConsentMode =\n | false // Disable consent mode\n | true // Use default mapping\n | ConsentMapping; // Custom mapping\n\nexport interface ConsentMapping {\n [walkerOSConsentGroup: string]: string | string[];\n}\n\n// Type bundle\nexport type Types = CoreDestination.Types<Settings, Mapping, Env, InitSettings>;\n\nexport type Destination = DestinationWeb.Destination<Types>;\nexport type Config = DestinationWeb.Config<Types>;\n\n// Base settings interface with data field\nexport interface BaseSettings {\n data?: WalkerOSMapping.Value | WalkerOSMapping.Values;\n}\n\n// Unified settings for all Google tools\nexport interface Settings {\n // Consent mode configuration\n como?: ConsentMode;\n // GA4 settings\n ga4?: GA4Settings;\n // Google Ads settings\n ads?: AdsSettings;\n // GTM settings\n gtm?: GTMSettings;\n}\n\n// InitSettings: user input (all optional)\nexport type InitSettings = Partial<Settings>;\n\n// GA4-specific settings\nexport interface GA4Settings extends BaseSettings {\n measurementId: string;\n debug?: boolean;\n include?: Include;\n pageview?: boolean;\n server_container_url?: string;\n snakeCase?: boolean;\n transport_url?: string;\n}\n\n// Google Ads specific settings\nexport interface AdsSettings extends BaseSettings {\n conversionId: string;\n currency?: string;\n}\n\n// Google Ads specific mapping\nexport interface AdsMapping {\n label?: string; // Conversion label for this specific event\n}\n\n// GTM specific settings\nexport interface GTMSettings extends BaseSettings {\n containerId: string;\n dataLayer?: string;\n domain?: string;\n}\n\n// Unified mapping interface\nexport interface Mapping {\n ga4?: GA4Mapping;\n ads?: AdsMapping;\n gtm?: GTMMapping;\n}\n\n// GA4-specific mapping\nexport interface GA4Mapping {\n include?: Include;\n}\n\n// GTM specific mapping\nexport interface GTMMapping {}\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\nexport type Param = WalkerOSMapping.Value;\n\nexport type Include = Array<\n | 'all'\n | 'context'\n | 'data'\n | 'event'\n | 'globals'\n | 'source'\n | 'user'\n | 'version'\n>;\n\nexport type Parameters = Gtag.ControlParams &\n Gtag.EventParams &\n Gtag.CustomParams;\n"],"mappings":"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","names":["document","document","import_web_core","import_web_core","document","import_web_core","import_web_core","document","addScript","import_web_core","import_web_core"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var t=new Set;function n(n,e="https://www.googletagmanager.com/gtag/js?id=",o=globalThis.document){if(t.has(n))return;const r=o.createElement("script");r.src=e+n,o.head.appendChild(r),t.add(n)}function e(t){const n=t;return n.dataLayer=n.dataLayer||[],n.gtag||(n.gtag=function(){n.dataLayer.push(arguments)}),n.gtag}import{getEnv as o}from"@walkeros/web-core";var r=Object.defineProperty;((t,n)=>{for(var e in n)r(t,e,{get:n[e],enumerable:!0})})({},{Level:()=>i});var a,i=((a=i||{})[a.ERROR=0]="ERROR",a[a.INFO=1]="INFO",a[a.DEBUG=2]="DEBUG",a),s={merge:!0,shallow:!0,extend:!0};function c(t,n={},e={}){e={...s,...e};const o=Object.entries(n).reduce((n,[o,r])=>{const a=t[o];return e.merge&&Array.isArray(a)&&Array.isArray(r)?n[o]=r.reduce((t,n)=>t.includes(n)?t:[...t,n],[...a]):(e.extend||o in t)&&(n[o]=r),n},{});return e.shallow?{...t,...o}:(Object.assign(t,o),t)}function u(t){return Array.isArray(t)}function d(t){return void 0!==t}function l(t){return"object"==typeof t&&null!==t&&!u(t)&&"[object Object]"===Object.prototype.toString.call(t)}function g(t){return"string"==typeof t}function f(t,n="",e){const o=n.split(".");let r=t;for(let t=0;t<o.length;t++){const n=o[t];if("*"===n&&u(r)){const n=o.slice(t+1).join("."),a=[];for(const t of r){const o=f(t,n,e);a.push(o)}return a}if(r=r instanceof Object?r[n]:void 0,!r)break}return d(r)?r:e}function m(t){return function(t){return"boolean"==typeof t}(t)||g(t)||function(t){return"number"==typeof t&&!Number.isNaN(t)}(t)||!d(t)||u(t)&&t.every(m)||l(t)&&Object.values(t).every(m)}function w(t){return m(t)?t:void 0}function v(t,n,e){return async function(...o){try{return await t(...o)}catch(t){if(!n)return;return await n(t)}finally{await(null==e?void 0:e())}}}async function
|
|
1
|
+
var t=new Set;function n(n,e="https://www.googletagmanager.com/gtag/js?id=",o=globalThis.document){if(t.has(n))return;const r=o.createElement("script");r.src=e+n,o.head.appendChild(r),t.add(n)}function e(t){const n=t;return n.dataLayer=n.dataLayer||[],n.gtag||(n.gtag=function(){n.dataLayer.push(arguments)}),n.gtag}import{getEnv as o}from"@walkeros/web-core";var r=Object.defineProperty;((t,n)=>{for(var e in n)r(t,e,{get:n[e],enumerable:!0})})({},{Level:()=>i});var a,i=((a=i||{})[a.ERROR=0]="ERROR",a[a.INFO=1]="INFO",a[a.DEBUG=2]="DEBUG",a),s={merge:!0,shallow:!0,extend:!0};function c(t,n={},e={}){e={...s,...e};const o=Object.entries(n).reduce((n,[o,r])=>{const a=t[o];return e.merge&&Array.isArray(a)&&Array.isArray(r)?n[o]=r.reduce((t,n)=>t.includes(n)?t:[...t,n],[...a]):(e.extend||o in t)&&(n[o]=r),n},{});return e.shallow?{...t,...o}:(Object.assign(t,o),t)}function u(t){return Array.isArray(t)}function d(t){return void 0!==t}function l(t){return"object"==typeof t&&null!==t&&!u(t)&&"[object Object]"===Object.prototype.toString.call(t)}function g(t){return"string"==typeof t}function f(t,n="",e){const o=n.split(".");let r=t;for(let t=0;t<o.length;t++){const n=o[t];if("*"===n&&u(r)){const n=o.slice(t+1).join("."),a=[];for(const t of r){const o=f(t,n,e);a.push(o)}return a}if(r=r instanceof Object?r[n]:void 0,!r)break}return d(r)?r:e}function m(t){return function(t){return"boolean"==typeof t}(t)||g(t)||function(t){return"number"==typeof t&&!Number.isNaN(t)}(t)||!d(t)||u(t)&&t.every(m)||l(t)&&Object.values(t).every(m)}function w(t){return m(t)?t:void 0}function v(t,n,e){return async function(...o){try{return await t(...o)}catch(t){if(!n)return;return await n(t)}finally{await(null==e?void 0:e())}}}async function y(t,n={},e={}){var o;if(!d(t))return;const r=l(t)&&t.consent||e.consent||(null==(o=e.collector)?void 0:o.consent),a=u(n)?n:[n];for(const n of a){const o=await v(p)(t,n,{...e,consent:r});if(d(o))return o}}async function p(t,n,e={}){const{collector:o,consent:r}=e;return(u(n)?n:[n]).reduce(async(n,a)=>{const i=await n;if(i)return i;const s=g(a)?{key:a}:a;if(!Object.keys(s).length)return;const{condition:c,consent:l,fn:m,key:b,loop:h,map:I,set:j,validate:E,value:O}=s;if(c&&!await v(c)(t,a,o))return;if(l&&!function(t,n={},e={}){const o={...n,...e},r={};let a=void 0===t;return Object.keys(o).forEach(n=>{o[n]&&(r[n]=!0,t&&t[n]&&(a=!0))}),!!a&&r}(l,r))return O;let _=d(O)?O:t;if(m&&(_=await v(m)(t,a,e)),b&&(_=f(t,b,O)),h){const[n,o]=h,r="this"===n?[t]:await y(t,n,e);u(r)&&(_=(await Promise.all(r.map(t=>y(t,o,e)))).filter(d))}else I?_=await Object.entries(I).reduce(async(n,[o,r])=>{const a=await n,i=await y(t,r,e);return d(i)&&(a[o]=i),a},Promise.resolve({})):j&&(_=await Promise.all(j.map(n=>p(t,n,e))));E&&!await v(E)(_)&&(_=void 0);const k=w(_);return d(k)?k:w(O)},Promise.resolve(void 0))}async function b(t,n,e,o,r){const a=l(n)?n:{},i=e.data?await y(t,e.data,{collector:r}):{},s=(null==o?void 0:o.data)?await y(t,o.data,{collector:r}):{},u=l(i)?i:{},d=l(s)?s:{};return c(c(a,u),d)}import{getEnv as h}from"@walkeros/web-core";function I(t,n,e={},o,r,a){const{window:i}=h(r);n.measurementId||a.throw("Config settings ga4.measurementId missing");const s=l(o)?o:{},c=function(t,n){const e={};return n.includes("all")&&(n=["context","data","event","globals","source","user","version"]),n.forEach(n=>{let o=t[n]||{};"event"==n&&(o={id:t.id,timing:t.timing,trigger:t.trigger,entity:t.entity,action:t.action,group:t.group,count:t.count}),Object.entries(o).forEach(([t,o])=>{"context"==n&&(o=o[0]),e[`${n}_${t}`]=o})}),e}(t,e.include||n.include||["data"]),u={...c,...s};let d=t.name;!1!==n.snakeCase&&(d=function(t,n=!0){return n?t.replace(/\s+/g,"_").toLowerCase():t}(d)),u.send_to=n.measurementId,n.debug&&(u.debug_mode=!0);(0,i.gtag)("event",d,u)}import{getEnv as j}from"@walkeros/web-core";import{getEnv as E}from"@walkeros/web-core";import{getEnv as O}from"@walkeros/web-core";var _="dataLayer";function k(t,n,e,o){const{window:r,document:a}=O(e),{containerId:i,dataLayer:s,domain:c}=t,u=s||_;u===_?r.dataLayer=r.dataLayer||[]:r[u]=r[u]||[];r[u].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),n&&i&&function(t,n,e,o=globalThis.document){const r=e!=_?"&l="+e:"",a=o.createElement("script");a.src=n+t+r,o.head.appendChild(a)}(i,c||"https://www.googletagmanager.com/gtm.js?id=",u,a)}import{getEnv as A}from"@walkeros/web-core";import{getEnv as L}from"@walkeros/web-core";var C={},R=!1;function D(){R=!1}var x={marketing:["ad_storage","ad_user_data","ad_personalization"],functional:["analytics_storage"]},N={type:"google-gtag",config:{settings:{}},init({config:t,env:r,logger:a}){const{settings:i={},loadScript:s}=t,{ga4:c,ads:u,gtm:d}=i;return(null==c?void 0:c.measurementId)||(null==u?void 0:u.conversionId)||(null==d?void 0:d.containerId)||a.throw("Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId"),(null==c?void 0:c.measurementId)&&function(t,r,a,i){const{window:s,document:c}=o(a),{measurementId:u,transport_url:d,server_container_url:l,pageview:g}=t;u||i.throw("Config settings ga4.measurementId missing"),r&&n(u,void 0,c),e(s);const f={};d&&(f.transport_url=d),l&&(f.server_container_url=l),!1===g&&(f.send_page_view=!1);const m=s.gtag;m("js",new Date),m("config",u,f)}(c,s,r,a),(null==u?void 0:u.conversionId)&&function(t,o,r,a){const{window:i,document:s}=j(r),{conversionId:c}=t;c||a.throw("Config settings ads.conversionId missing"),t.currency||(t.currency="EUR"),o&&n(c,void 0,s),e(i);const u=i.gtag;u("js",new Date),u("config",c)}(u,s,r,a),(null==d?void 0:d.containerId)&&k(d,s,r),t},async push(t,{config:n,rule:e={},data:o,env:r,collector:a,logger:i}){const{settings:s={}}=n,{ga4:c,ads:u,gtm:d}=s,g=e.settings||{},f=await b(t,o,n,c,a),m=await b(t,o,n,u,a),w=await b(t,o,n,d,a);(null==c?void 0:c.measurementId)&&I(t,c,g.ga4,f,r,i),(null==u?void 0:u.conversionId)&&e.name&&function(t,n,e={},o,r,a,i){const{conversionId:s,currency:c}=n,u=l(o)?o:{},d=e.label||r;d||i.throw("Config mapping ads.label missing");const g={send_to:`${s}/${d}`,currency:c||"EUR",...u},{window:f}=E(a);(0,f.gtag)("event","conversion",g)}(0,u,g.ads,m,e.name,r,i),(null==d?void 0:d.containerId)&&function(t,n,e={},o,r){const{window:a}=A(r),i={event:t.name};a.dataLayer.push({...i,...l(o)?o:t})}(t,0,g.gtm,w,r)},on(t,n){var o;if("consent"!==t||!n.data)return;const r=n.data,a=(null==(o=n.config)?void 0:o.settings)||{},{como:i=!0}=a;if(!i)return;const{window:s}=L(n.env),c=e(s);if(!c)return;const u=!0===i?x:i;if(!R){const t=new Set;if(Object.values(u).forEach(n=>{(Array.isArray(n)?n:[n]).forEach(n=>t.add(n))}),t.size>0){const n={};t.forEach(t=>{n[t]="denied"}),c("consent","default",n)}R=!0}const d={};Object.entries(r).forEach(([t,n])=>{const e=u[t];if(!e)return;const o=Array.isArray(e)?e:[e],r=n?"granted":"denied";o.forEach(t=>{d[t]=r})}),0!==Object.keys(d).length&&c("consent","update",d)}},P=N;export{C as DestinationGtag,P as default,N as destinationGtag,D as resetConsentState};//# sourceMappingURL=index.mjs.map
|