@capytale/activity.js 3.0.10 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/activity/activityType/activityType.d.ts +1 -0
- package/activity/activityType/activityType.d.ts.map +1 -1
- package/backend/capytale/activityType.d.ts +2 -2
- package/backend/capytale/activityType.d.ts.map +1 -1
- package/backend/capytale/nuxt.d.ts +8 -0
- package/backend/capytale/nuxt.d.ts.map +1 -0
- package/backend/capytale/nuxt.js +13 -0
- package/backend/capytale/nuxt.js.map +1 -0
- package/backend/capytale/ui.d.ts +16 -0
- package/backend/capytale/ui.d.ts.map +1 -0
- package/backend/capytale/ui.js +13 -0
- package/backend/capytale/ui.js.map +1 -0
- package/package.json +5 -5
- package/tracker/index.d.ts +5 -0
- package/tracker/index.d.ts.map +1 -1
- package/tracker/index.js +59 -23
- package/tracker/index.js.map +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"activityType.d.ts","sourceRoot":"","sources":["../../src/activity/activityType/activityType.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5B,IAAI,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;IACF,SAAS,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE;YAAE,KAAK,CAAC,EAAE,GAAG,CAAC;YAAC,IAAI,CAAC,EAAE,GAAG,CAAA;SAAE,CAAC;KACtC,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"activityType.d.ts","sourceRoot":"","sources":["../../src/activity/activityType/activityType.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5B,IAAI,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;IACF,SAAS,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE;YAAE,KAAK,CAAC,EAAE,GAAG,CAAC;YAAC,IAAI,CAAC,EAAE,GAAG,CAAA;SAAE,CAAC;KACtC,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC/B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,GAAG,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC/B,OAAO,EAAE;QACL,CAAC,GAAG,EAAE,MAAM,GAAG;YACX,KAAK,EAAE,MAAM,CAAC;YACd,UAAU,EAAE;gBAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;aAAE,CAAA;SACxC,CAAA;KACJ,CAAC;IACF,MAAM,EAAE,cAAc,CAAC;CAC1B,CAAC"}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import type { ActivityType,
|
1
|
+
import type { ActivityType, ActivityGroup } from "../../activity/activityType/activityType";
|
2
2
|
import type { ActivityTypeBackend } from "../../activity/activityType/backend";
|
3
|
-
export type { ActivityType,
|
3
|
+
export type { ActivityType, ActivityGroup };
|
4
4
|
declare const _default: ActivityTypeBackend;
|
5
5
|
export default _default;
|
6
6
|
//# sourceMappingURL=activityType.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"activityType.d.ts","sourceRoot":"","sources":["../../src/backend/capytale/activityType.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,
|
1
|
+
{"version":3,"file":"activityType.d.ts","sourceRoot":"","sources":["../../src/backend/capytale/activityType.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;wBAEoB,mBAAmB;AAAnF,wBAAoF"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"nuxt.d.ts","sourceRoot":"","sources":["../../src/backend/capytale/nuxt.ts"],"names":[],"mappings":"AAAA,iBAAS,aAAa,IAAI,OAAO,CAEhC;AAED,iBAAS,cAAc,IAAI,IAAI,CAG9B;;;;;AAED,wBAGC"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
function isInNuxtModal() {
|
2
|
+
return (window.parent !== window) && (window.parent.$drupalCloseModal != null);
|
3
|
+
}
|
4
|
+
function closeNuxtModal() {
|
5
|
+
if (!isInNuxtModal())
|
6
|
+
throw new Error('Not in Nuxt modal');
|
7
|
+
window.parent.$drupalCloseModal();
|
8
|
+
}
|
9
|
+
export default {
|
10
|
+
isInNuxtModal,
|
11
|
+
closeNuxtModal,
|
12
|
+
};
|
13
|
+
//# sourceMappingURL=nuxt.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"nuxt.js","sourceRoot":"","sources":["../../src/backend/capytale/nuxt.ts"],"names":[],"mappings":"AAAA,SAAS,aAAa;IAClB,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAE,MAAM,CAAC,MAAc,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,cAAc;IACnB,IAAI,CAAC,aAAa,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC1D,MAAM,CAAC,MAAc,CAAC,iBAAiB,EAAE,CAAC;AAC/C,CAAC;AAED,eAAe;IACX,aAAa;IACb,cAAc;CACjB,CAAA"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
type CapytaleUi = {
|
2
|
+
/**
|
3
|
+
* Détermine si la page est affichée dans un iframe de Nuxt.
|
4
|
+
*
|
5
|
+
* @returns true si la page est affichée dans un iframe de Nuxt.
|
6
|
+
*/
|
7
|
+
isInCapytaletIframe: () => boolean;
|
8
|
+
/**
|
9
|
+
* Envoie la commande de fermerture de la fenêtre Nuxt.
|
10
|
+
* Déclenche une erreur si la page n'est pas affichée dans un iframe de Nuxt.
|
11
|
+
*/
|
12
|
+
closeCapytaleIframe: () => void;
|
13
|
+
};
|
14
|
+
declare const _default: CapytaleUi;
|
15
|
+
export default _default;
|
16
|
+
//# sourceMappingURL=ui.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/backend/capytale/ui.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG;IACd;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,OAAO,CAAC;IAEnC;;;OAGG;IACH,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACnC,CAAA;wBAcI,UAAU;AAHf,wBAGgB"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
function isInCapytaletIframe() {
|
2
|
+
return (window.parent !== window) && (window.parent.$drupalCloseModal != null);
|
3
|
+
}
|
4
|
+
function closeCapytaleIframe() {
|
5
|
+
if (!isInCapytaletIframe())
|
6
|
+
throw new Error('Not in Nuxt modal');
|
7
|
+
window.parent.$drupalCloseModal();
|
8
|
+
}
|
9
|
+
export default {
|
10
|
+
isInCapytaletIframe,
|
11
|
+
closeCapytaleIframe,
|
12
|
+
};
|
13
|
+
//# sourceMappingURL=ui.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/backend/capytale/ui.ts"],"names":[],"mappings":"AAeA,SAAS,mBAAmB;IACxB,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAE,MAAM,CAAC,MAAc,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,mBAAmB;IACxB,IAAI,CAAC,mBAAmB,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAChE,MAAM,CAAC,MAAc,CAAC,iBAAiB,EAAE,CAAC;AAC/C,CAAC;AAED,eAAe;IACX,mBAAmB;IACnB,mBAAmB;CACR,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@capytale/activity.js",
|
3
|
-
"version": "3.0
|
3
|
+
"version": "3.1.0",
|
4
4
|
"bin": {
|
5
5
|
"cactjs": "./bin/cactjs.js"
|
6
6
|
},
|
@@ -16,14 +16,14 @@
|
|
16
16
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
17
17
|
"@rollup/plugin-typescript": "^11.1.6",
|
18
18
|
"@types/js-cookie": "^3.0.6",
|
19
|
-
"@types/node": "^20.
|
19
|
+
"@types/node": "^20.16.5",
|
20
20
|
"commander": "^12.1.0",
|
21
|
-
"rollup": "^4.
|
21
|
+
"rollup": "^4.21.3",
|
22
22
|
"tsc-alias": "^1.8.10",
|
23
|
-
"typescript": "^5.
|
23
|
+
"typescript": "^5.6.2"
|
24
24
|
},
|
25
25
|
"dependencies": {
|
26
26
|
"js-cookie": "^3.0.5",
|
27
|
-
"tslib": "^2.
|
27
|
+
"tslib": "^2.7.0"
|
28
28
|
}
|
29
29
|
}
|
package/tracker/index.d.ts
CHANGED
@@ -5,5 +5,10 @@ export type Tracker = {
|
|
5
5
|
trackActivity: (data: ActivitySession) => void;
|
6
6
|
trackPageView: () => void;
|
7
7
|
};
|
8
|
+
/**
|
9
|
+
* @param trackerHost nom de domaine du serveur de tracking
|
10
|
+
* @param siteId id du site à tracker. Si null, le tracking est désactivé.
|
11
|
+
* @returns l'objet Tracker permettant d'envoyer des événements de tracking.
|
12
|
+
*/
|
8
13
|
export default function (trackerHost: string, siteId: number | null | Promise<number | null>): Tracker;
|
9
14
|
//# sourceMappingURL=index.d.ts.map
|
package/tracker/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/tracker/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAE/D,MAAM,MAAM,OAAO,GAAG;IAClB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/tracker/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAE/D,MAAM,MAAM,OAAO,GAAG;IAClB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AA6CF;;;;GAIG;AACH,MAAM,CAAC,OAAO,WAAW,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAgHrG"}
|
package/tracker/index.js
CHANGED
@@ -7,17 +7,42 @@ const voidTracker = {
|
|
7
7
|
trackActivity() { },
|
8
8
|
trackPageView() { },
|
9
9
|
};
|
10
|
-
|
10
|
+
/**
|
11
|
+
* Indique si le chargement du script de tracking a échoué.
|
12
|
+
* Dans ce cas, le tracking est désactivé.
|
13
|
+
*/
|
14
|
+
let loadFailed = false;
|
15
|
+
/**
|
16
|
+
* Charge le script de tracking Matomo.
|
17
|
+
* Cette fonction est appelée une seule fois dès que le siteId est connu.
|
18
|
+
*
|
19
|
+
* @param matomoUrl url du script de tracking
|
20
|
+
* @param siteId id du site à tracker
|
21
|
+
* @returns
|
22
|
+
*/
|
11
23
|
function loadTracker(matomoUrl, siteId) {
|
12
|
-
if (
|
24
|
+
if ((loadFailed) || (globalThis._paq != null))
|
13
25
|
return;
|
14
26
|
globalThis._paq = globalThis._paq || [];
|
15
27
|
globalThis._paq.push(['setTrackerUrl', matomoUrl + phpFile]);
|
16
28
|
globalThis._paq.push(['setSiteId', siteId]);
|
17
|
-
loadScript(matomoUrl + jsFile)
|
18
|
-
|
29
|
+
loadScript(matomoUrl + jsFile).catch(() => {
|
30
|
+
// retry once after 30s
|
31
|
+
setTimeout(() => {
|
32
|
+
loadScript(matomoUrl + jsFile)
|
33
|
+
.catch(() => {
|
34
|
+
loadFailed = true;
|
35
|
+
delete globalThis._paq;
|
36
|
+
});
|
37
|
+
}, 30000);
|
38
|
+
});
|
19
39
|
}
|
20
40
|
let instantiated = false;
|
41
|
+
/**
|
42
|
+
* @param trackerHost nom de domaine du serveur de tracking
|
43
|
+
* @param siteId id du site à tracker. Si null, le tracking est désactivé.
|
44
|
+
* @returns l'objet Tracker permettant d'envoyer des événements de tracking.
|
45
|
+
*/
|
21
46
|
export default function (trackerHost, siteId) {
|
22
47
|
if (instantiated) {
|
23
48
|
console.warn("Tracker already instantiated");
|
@@ -25,16 +50,30 @@ export default function (trackerHost, siteId) {
|
|
25
50
|
}
|
26
51
|
instantiated = true;
|
27
52
|
const matomoUrl = "//" + trackerHost + "/";
|
53
|
+
/**
|
54
|
+
* sauvegarde des appels à push avant l'initialisation du tracker
|
55
|
+
* c'est à dire tant que le siteId et le userId ne sont pas connus.
|
56
|
+
*/
|
28
57
|
let tempPaq = [];
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
58
|
+
/**
|
59
|
+
* true si le tracking doit être effectué.
|
60
|
+
* Reste à true tant que le siteId n'est pas connu.
|
61
|
+
* Si le siteId est null, le tracking est désactivé et tracking est mis à false.
|
62
|
+
*/
|
63
|
+
let tracking = true;
|
64
|
+
/**
|
65
|
+
* sauvegarde du userId pour initialiser le tracker quand le siteId sera connu.
|
66
|
+
*/
|
67
|
+
let userIdSave = null;
|
68
|
+
/**
|
69
|
+
* true si le userId a été donné et sauvegardé.
|
70
|
+
*/
|
71
|
+
let userIdSaved = false;
|
33
72
|
const tracker = {
|
34
73
|
push(args) {
|
35
|
-
if (!tracking)
|
74
|
+
if (loadFailed || !tracking)
|
36
75
|
return;
|
37
|
-
if (
|
76
|
+
if (tempPaq == null) {
|
38
77
|
globalThis._paq.push(args);
|
39
78
|
}
|
40
79
|
else {
|
@@ -42,22 +81,21 @@ export default function (trackerHost, siteId) {
|
|
42
81
|
}
|
43
82
|
},
|
44
83
|
setUserId(userId) {
|
45
|
-
|
46
|
-
if (!tracking)
|
84
|
+
if (loadFailed || !tracking)
|
47
85
|
return;
|
48
|
-
if (
|
86
|
+
if (globalThis._paq != null) {
|
49
87
|
if (null == userId) {
|
50
88
|
globalThis._paq.push(['resetUserId']);
|
51
89
|
}
|
52
90
|
else {
|
53
91
|
globalThis._paq.push(['setUserId', userId]);
|
54
92
|
}
|
55
|
-
if (
|
93
|
+
if (tempPaq != null) {
|
94
|
+
// On pousse les appels en attente
|
56
95
|
tempPaq.forEach((args) => {
|
57
96
|
globalThis._paq.push(args);
|
58
97
|
});
|
59
|
-
tempPaq =
|
60
|
-
initialized = true;
|
98
|
+
tempPaq = undefined;
|
61
99
|
}
|
62
100
|
}
|
63
101
|
else {
|
@@ -66,7 +104,7 @@ export default function (trackerHost, siteId) {
|
|
66
104
|
}
|
67
105
|
},
|
68
106
|
trackActivity(data) {
|
69
|
-
if (!tracking)
|
107
|
+
if (loadFailed || !tracking)
|
70
108
|
return;
|
71
109
|
let action = false;
|
72
110
|
if (data.isAssignment) {
|
@@ -90,24 +128,23 @@ export default function (trackerHost, siteId) {
|
|
90
128
|
}
|
91
129
|
},
|
92
130
|
trackPageView() {
|
93
|
-
if (!tracking)
|
131
|
+
if (loadFailed || !tracking)
|
94
132
|
return;
|
95
133
|
this.push(['trackPageView']);
|
96
134
|
}
|
97
135
|
};
|
98
136
|
if (siteId == null) {
|
99
137
|
tracking = false;
|
100
|
-
tempPaq =
|
138
|
+
tempPaq = undefined;
|
101
139
|
}
|
102
140
|
else if (siteId instanceof Promise) {
|
103
141
|
siteId.then((sId) => {
|
104
142
|
if (sId == null) {
|
105
143
|
tracking = false;
|
106
|
-
tempPaq =
|
144
|
+
tempPaq = undefined;
|
107
145
|
}
|
108
146
|
else {
|
109
147
|
loadTracker(matomoUrl, sId);
|
110
|
-
loaded = true;
|
111
148
|
if (userIdSaved) {
|
112
149
|
tracker.setUserId(userIdSave);
|
113
150
|
userIdSaved = false;
|
@@ -116,13 +153,12 @@ export default function (trackerHost, siteId) {
|
|
116
153
|
}
|
117
154
|
}, () => {
|
118
155
|
tracking = false;
|
119
|
-
tempPaq =
|
156
|
+
tempPaq = undefined;
|
120
157
|
userIdSave = null;
|
121
158
|
});
|
122
159
|
}
|
123
160
|
else {
|
124
161
|
loadTracker(matomoUrl, siteId);
|
125
|
-
loaded = true;
|
126
162
|
}
|
127
163
|
return tracker;
|
128
164
|
}
|
package/tracker/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/tracker/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAW9C,MAAM,MAAM,GAAG,WAAW,CAAC;AAC3B,MAAM,OAAO,GAAG,YAAY,CAAC;AAE7B,MAAM,WAAW,GAAY;IACzB,IAAI,KAAK,CAAC;IACV,SAAS,KAAK,CAAC;IACf,aAAa,KAAK,CAAC;IACnB,aAAa,KAAK,CAAC;CACtB,CAAA;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/tracker/index.ts"],"names":[],"mappings":"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"}
|