@becklyn/react-usercentrics 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/dist/cjs/context/index.js +15 -0
- package/dist/cjs/hook/index.js +94 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/types/index.js +2 -0
- package/dist/cjs/types/usercentrics.js +2 -0
- package/dist/es/context/index.js +8 -0
- package/dist/es/hook/index.js +89 -0
- package/dist/es/index.js +3 -0
- package/dist/es/types/index.js +1 -0
- package/dist/es/types/usercentrics.js +1 -0
- package/dist/types/context/index.d.ts +20 -0
- package/dist/types/context/index.d.ts.map +1 -0
- package/dist/types/hook/index.d.ts +3 -0
- package/dist/types/hook/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +44 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/usercentrics.d.ts +19 -0
- package/dist/types/types/usercentrics.d.ts.map +1 -0
- package/package.json +55 -0
package/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
React.js Usercentrics
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
Usage
|
|
6
|
+
-----
|
|
7
|
+
|
|
8
|
+
Install this library into your project:
|
|
9
|
+
|
|
10
|
+
```shell
|
|
11
|
+
npm i --save @mayd/react-usercentrics
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Wrap your application using the `UsercentricsProvider.tsx` or use the `useUsercentricsHook` directly.
|
|
15
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useUsercentrics = exports.UsercentricsProvider = exports.UsercentricsContext = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const hook_1 = require("../hook");
|
|
7
|
+
exports.UsercentricsContext = (0, react_1.createContext)({});
|
|
8
|
+
const UsercentricsProvider = (_a) => {
|
|
9
|
+
var { children } = _a, props = tslib_1.__rest(_a, ["children"]);
|
|
10
|
+
const data = (0, hook_1.useUsercentricsHook)(props);
|
|
11
|
+
return react_1.default.createElement(exports.UsercentricsContext.Provider, { value: data }, children);
|
|
12
|
+
};
|
|
13
|
+
exports.UsercentricsProvider = UsercentricsProvider;
|
|
14
|
+
const useUsercentrics = () => (0, react_1.useContext)(exports.UsercentricsContext);
|
|
15
|
+
exports.useUsercentrics = useUsercentrics;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useUsercentricsHook = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useUsercentricsHook = ({ windowEvent = "ucEvent", forceReload, debug, }) => {
|
|
6
|
+
var _a;
|
|
7
|
+
const [cmp, setCmp] = (0, react_1.useState)(null);
|
|
8
|
+
const [consentUpdate, setConsentUpdate] = (0, react_1.useState)(0);
|
|
9
|
+
const [serviceStates, setServiceStates] = (0, react_1.useState)({});
|
|
10
|
+
const incrementConsentUpdate = () => setConsentUpdate(prev => ++prev);
|
|
11
|
+
const isInitialized = !!((_a = cmp === null || cmp === void 0 ? void 0 : cmp.isInitialized) === null || _a === void 0 ? void 0 : _a.call(cmp));
|
|
12
|
+
(0, react_1.useEffect)(() => {
|
|
13
|
+
const onCmpEvent = (event) => {
|
|
14
|
+
if (["ACCEPT_ALL", "DENY_ALL", "SAVE"].includes(event.detail.type)) {
|
|
15
|
+
incrementConsentUpdate();
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
window.addEventListener("UC_UI_CMP_EVENT", onCmpEvent);
|
|
19
|
+
return () => window.removeEventListener("UC_UI_CMP_EVENT", onCmpEvent);
|
|
20
|
+
}, []);
|
|
21
|
+
(0, react_1.useEffect)(() => {
|
|
22
|
+
const onLoad = () => {
|
|
23
|
+
incrementConsentUpdate();
|
|
24
|
+
if (!window.UC_UI) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (debug) {
|
|
28
|
+
console.log(window.UC_UI);
|
|
29
|
+
}
|
|
30
|
+
setCmp(window.UC_UI);
|
|
31
|
+
};
|
|
32
|
+
window.addEventListener("UC_UI_INITIALIZED", onLoad);
|
|
33
|
+
return () => window.removeEventListener("UC_UI_INITIALIZED", onLoad);
|
|
34
|
+
}, [debug]);
|
|
35
|
+
(0, react_1.useEffect)(() => {
|
|
36
|
+
const handleCustomEvent = (e) => {
|
|
37
|
+
const details = e.detail;
|
|
38
|
+
if (debug) {
|
|
39
|
+
console.log(details);
|
|
40
|
+
}
|
|
41
|
+
if (details.action !== "onInitialPageLoad") {
|
|
42
|
+
for (const key in details) {
|
|
43
|
+
const value = details[key];
|
|
44
|
+
if (serviceStates[key] !== value && (forceReload === null || forceReload === void 0 ? void 0 : forceReload[key]) === value) {
|
|
45
|
+
window.location.reload();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
setServiceStates(details);
|
|
51
|
+
};
|
|
52
|
+
const onUcEvent = ((e) => handleCustomEvent(e));
|
|
53
|
+
window.addEventListener(windowEvent, onUcEvent);
|
|
54
|
+
return () => window.removeEventListener(windowEvent, onUcEvent);
|
|
55
|
+
}, [debug, windowEvent, forceReload, serviceStates]);
|
|
56
|
+
const showFirstLayer = (0, react_1.useCallback)(() => {
|
|
57
|
+
if (!cmp || !isInitialized) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
cmp.showFirstLayer();
|
|
61
|
+
}, [cmp, isInitialized]);
|
|
62
|
+
const showSecondLayer = (0, react_1.useCallback)((serviceId) => {
|
|
63
|
+
if (!cmp || !isInitialized) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
cmp.showSecondLayer(serviceId);
|
|
67
|
+
}, [cmp, isInitialized]);
|
|
68
|
+
const acceptService = (0, react_1.useCallback)((serviceId) => {
|
|
69
|
+
if (!cmp || !isInitialized) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
cmp.acceptService(serviceId);
|
|
73
|
+
}, [cmp, isInitialized]);
|
|
74
|
+
const isServiceAccepted = (0, react_1.useCallback)((serviceId) => {
|
|
75
|
+
if (debug) {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
if (!cmp || !isInitialized) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const service = cmp.getServicesBaseInfo().find(data => data.id === serviceId);
|
|
82
|
+
return !!service && service.consent.status;
|
|
83
|
+
}, [debug, cmp, isInitialized]);
|
|
84
|
+
return {
|
|
85
|
+
cmp,
|
|
86
|
+
consentUpdate,
|
|
87
|
+
isInitialized,
|
|
88
|
+
showFirstLayer,
|
|
89
|
+
showSecondLayer,
|
|
90
|
+
acceptService,
|
|
91
|
+
isServiceAccepted,
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
exports.useUsercentricsHook = useUsercentricsHook;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./context"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./hook"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React, { createContext, useContext } from "react";
|
|
2
|
+
import { useUsercentricsHook } from "../hook";
|
|
3
|
+
export const UsercentricsContext = createContext({});
|
|
4
|
+
export const UsercentricsProvider = ({ children, ...props }) => {
|
|
5
|
+
const data = useUsercentricsHook(props);
|
|
6
|
+
return React.createElement(UsercentricsContext.Provider, { value: data }, children);
|
|
7
|
+
};
|
|
8
|
+
export const useUsercentrics = () => useContext(UsercentricsContext);
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from "react";
|
|
2
|
+
export const useUsercentricsHook = ({ windowEvent = "ucEvent", forceReload, debug, }) => {
|
|
3
|
+
const [cmp, setCmp] = useState(null);
|
|
4
|
+
const [consentUpdate, setConsentUpdate] = useState(0);
|
|
5
|
+
const [serviceStates, setServiceStates] = useState({});
|
|
6
|
+
const incrementConsentUpdate = () => setConsentUpdate(prev => ++prev);
|
|
7
|
+
const isInitialized = !!cmp?.isInitialized?.();
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
const onCmpEvent = (event) => {
|
|
10
|
+
if (["ACCEPT_ALL", "DENY_ALL", "SAVE"].includes(event.detail.type)) {
|
|
11
|
+
incrementConsentUpdate();
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
window.addEventListener("UC_UI_CMP_EVENT", onCmpEvent);
|
|
15
|
+
return () => window.removeEventListener("UC_UI_CMP_EVENT", onCmpEvent);
|
|
16
|
+
}, []);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const onLoad = () => {
|
|
19
|
+
incrementConsentUpdate();
|
|
20
|
+
if (!window.UC_UI) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (debug) {
|
|
24
|
+
console.log(window.UC_UI);
|
|
25
|
+
}
|
|
26
|
+
setCmp(window.UC_UI);
|
|
27
|
+
};
|
|
28
|
+
window.addEventListener("UC_UI_INITIALIZED", onLoad);
|
|
29
|
+
return () => window.removeEventListener("UC_UI_INITIALIZED", onLoad);
|
|
30
|
+
}, [debug]);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
const handleCustomEvent = (e) => {
|
|
33
|
+
const details = e.detail;
|
|
34
|
+
if (debug) {
|
|
35
|
+
console.log(details);
|
|
36
|
+
}
|
|
37
|
+
if (details.action !== "onInitialPageLoad") {
|
|
38
|
+
for (const key in details) {
|
|
39
|
+
const value = details[key];
|
|
40
|
+
if (serviceStates[key] !== value && forceReload?.[key] === value) {
|
|
41
|
+
window.location.reload();
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
setServiceStates(details);
|
|
47
|
+
};
|
|
48
|
+
const onUcEvent = ((e) => handleCustomEvent(e));
|
|
49
|
+
window.addEventListener(windowEvent, onUcEvent);
|
|
50
|
+
return () => window.removeEventListener(windowEvent, onUcEvent);
|
|
51
|
+
}, [debug, windowEvent, forceReload, serviceStates]);
|
|
52
|
+
const showFirstLayer = useCallback(() => {
|
|
53
|
+
if (!cmp || !isInitialized) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
cmp.showFirstLayer();
|
|
57
|
+
}, [cmp, isInitialized]);
|
|
58
|
+
const showSecondLayer = useCallback((serviceId) => {
|
|
59
|
+
if (!cmp || !isInitialized) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
cmp.showSecondLayer(serviceId);
|
|
63
|
+
}, [cmp, isInitialized]);
|
|
64
|
+
const acceptService = useCallback((serviceId) => {
|
|
65
|
+
if (!cmp || !isInitialized) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
cmp.acceptService(serviceId);
|
|
69
|
+
}, [cmp, isInitialized]);
|
|
70
|
+
const isServiceAccepted = useCallback((serviceId) => {
|
|
71
|
+
if (debug) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
if (!cmp || !isInitialized) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
const service = cmp.getServicesBaseInfo().find(data => data.id === serviceId);
|
|
78
|
+
return !!service && service.consent.status;
|
|
79
|
+
}, [debug, cmp, isInitialized]);
|
|
80
|
+
return {
|
|
81
|
+
cmp,
|
|
82
|
+
consentUpdate,
|
|
83
|
+
isInitialized,
|
|
84
|
+
showFirstLayer,
|
|
85
|
+
showSecondLayer,
|
|
86
|
+
acceptService,
|
|
87
|
+
isServiceAccepted,
|
|
88
|
+
};
|
|
89
|
+
};
|
package/dist/es/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from "react";
|
|
2
|
+
import { ServiceStates, UC } from "../types";
|
|
3
|
+
export interface UsercentricsData {
|
|
4
|
+
cmp: UC | null;
|
|
5
|
+
consentUpdate: number;
|
|
6
|
+
isInitialized: boolean;
|
|
7
|
+
showFirstLayer: () => void;
|
|
8
|
+
showSecondLayer: (serviceId?: string) => void;
|
|
9
|
+
acceptService: (serviceId: string) => void;
|
|
10
|
+
isServiceAccepted: (serviceId: string) => boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const UsercentricsContext: React.Context<UsercentricsData>;
|
|
13
|
+
export interface UsercentricsProps {
|
|
14
|
+
windowEvent?: string;
|
|
15
|
+
forceReload?: ServiceStates;
|
|
16
|
+
debug?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare const UsercentricsProvider: React.FC<PropsWithChildren<UsercentricsProps>>;
|
|
19
|
+
export declare const useUsercentrics: () => UsercentricsData;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAA6B,MAAM,OAAO,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CACrD;AAED,eAAO,MAAM,mBAAmB,iCAA0D,CAAC;AAE3F,MAAM,WAAW,iBAAiB;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAO/E,CAAC;AAEF,eAAO,MAAM,eAAe,wBAAwC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hook/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGjE,eAAO,MAAM,mBAAmB,GAAI,sCAIjC,iBAAiB,KAAG,gBA2HtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface UCConsent {
|
|
2
|
+
status: boolean;
|
|
3
|
+
}
|
|
4
|
+
export interface UCService {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
consent: UCConsent;
|
|
8
|
+
}
|
|
9
|
+
export interface UC {
|
|
10
|
+
timeStamp: number;
|
|
11
|
+
isInitialized: () => boolean;
|
|
12
|
+
showFirstLayer: () => void;
|
|
13
|
+
showSecondLayer: (serviceId?: string) => void;
|
|
14
|
+
acceptService: (serviceId: string) => void;
|
|
15
|
+
getServicesBaseInfo: () => UCService[];
|
|
16
|
+
}
|
|
17
|
+
export type UCActionType = "onUcImprintClick" | "onUcPrivacyClick" | "onInitialPageLoad" | "onAcceptAllServices" | "onDenyAllServices" | "onUpdateServices" | "onSessionRestored";
|
|
18
|
+
export type ServiceStates = Record<string, string | boolean>;
|
|
19
|
+
export interface UCCustomEventBase<T = object> extends CustomEvent<{
|
|
20
|
+
action: UCActionType;
|
|
21
|
+
event: string;
|
|
22
|
+
type: string;
|
|
23
|
+
} & ServiceStates & T> {
|
|
24
|
+
type: string;
|
|
25
|
+
}
|
|
26
|
+
export interface UCCustomEvent extends UCCustomEventBase {
|
|
27
|
+
type: "ucEvent";
|
|
28
|
+
}
|
|
29
|
+
export interface UCInitializedEvent extends CustomEvent<null> {
|
|
30
|
+
type: "UC_UI_INITIALIZED";
|
|
31
|
+
}
|
|
32
|
+
export interface UCCMPEvent extends CustomEvent<{
|
|
33
|
+
source: "FIRST_LAYER" | "SECOND_LAYER";
|
|
34
|
+
type: "ACCEPT_ALL" | "DENY_ALL" | "SAVE" | "CMP_SHOWN" | "MORE_INFORMATION_LINK" | "IMPRINT_LINK" | "PRIVACY_POLICY_LINK";
|
|
35
|
+
}> {
|
|
36
|
+
type: "UC_UI_CMP_EVENT";
|
|
37
|
+
}
|
|
38
|
+
export interface UCViewChangedEvent extends CustomEvent<{
|
|
39
|
+
previousView: "NONE" | "FIRST_LAYER" | "SECOND_LAYER";
|
|
40
|
+
view: "NONE" | "FIRST_LAYER" | "SECOND_LAYER" | "PRIVACY_BUTTON";
|
|
41
|
+
}> {
|
|
42
|
+
type: "UC_UI_VIEW_CHANGED";
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,EAAE;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,mBAAmB,EAAE,MAAM,SAAS,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,YAAY,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,GAClB,mBAAmB,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AAE7D,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,MAAM,CACzC,SAAQ,WAAW,CACf;IACI,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG,aAAa,GACb,CAAC,CACR;IACD,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACpD,IAAI,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW,CAAC,IAAI,CAAC;IACzD,IAAI,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,UACb,SAAQ,WAAW,CAAC;IAChB,MAAM,EAAE,aAAa,GAAG,cAAc,CAAC;IACvC,IAAI,EACE,YAAY,GACZ,UAAU,GACV,MAAM,GACN,WAAW,GACX,uBAAuB,GACvB,cAAc,GACd,qBAAqB,CAAC;CAC/B,CAAC;IACF,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,kBACb,SAAQ,WAAW,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,CAAC;IACtD,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,GAAG,gBAAgB,CAAC;CACpE,CAAC;IACF,IAAI,EAAE,oBAAoB,CAAC;CAC9B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UC, UCCMPEvent, UCCustomEvent, UCInitializedEvent, UCViewChangedEvent } from "./index";
|
|
2
|
+
declare global {
|
|
3
|
+
interface Window {
|
|
4
|
+
UC_UI?: UC;
|
|
5
|
+
addEventListener(type: "ucEvent", listener: (event: UCCustomEvent) => void, options?: boolean | AddEventListenerOptions): void;
|
|
6
|
+
addEventListener(type: "UC_UI_INITIALIZED", listener: (event: UCInitializedEvent) => void, options?: boolean | AddEventListenerOptions): void;
|
|
7
|
+
addEventListener(type: "UC_UI_CMP_EVENT", listener: (event: UCCMPEvent) => void, options?: boolean | AddEventListenerOptions): void;
|
|
8
|
+
addEventListener(type: "UC_UI_VIEW_CHANGED", listener: (event: UCViewChangedEvent) => void, options?: boolean | AddEventListenerOptions): void;
|
|
9
|
+
removeEventListener(type: "ucEvent", listener: (event: UCCustomEvent) => any, options?: boolean | EventListenerOptions): void;
|
|
10
|
+
removeEventListener(type: "UC_UI_INITIALIZED", listener: (event: UCInitializedEvent) => any, options?: boolean | EventListenerOptions): void;
|
|
11
|
+
removeEventListener(type: "UC_UI_CMP_EVENT", listener: (event: UCCMPEvent) => any, options?: boolean | EventListenerOptions): void;
|
|
12
|
+
removeEventListener(type: "UC_UI_VIEW_CHANGED", listener: (event: UCViewChangedEvent) => any, options?: boolean | EventListenerOptions): void;
|
|
13
|
+
dispatchEvent<K extends keyof UCCustomEvent>(event: UCCustomEvent[K]): void;
|
|
14
|
+
dispatchEvent<K extends keyof UCInitializedEvent>(event: UCInitializedEvent[K]): void;
|
|
15
|
+
dispatchEvent<K extends keyof UCCMPEvent>(event: UCCMPEvent[K]): void;
|
|
16
|
+
dispatchEvent<K extends keyof UCViewChangedEvent>(event: UCViewChangedEvent[K]): void;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=usercentrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usercentrics.d.ts","sourceRoot":"","sources":["../../../src/types/usercentrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEhG,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,KAAK,CAAC,EAAE,EAAE,CAAC;QACX,gBAAgB,CACZ,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EACxC,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI,CAAC;QACR,gBAAgB,CACZ,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI,CAAC;QACR,gBAAgB,CACZ,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACrC,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI,CAAC;QACR,gBAAgB,CACZ,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI,CAAC;QACR,mBAAmB,CACf,IAAI,EAAE,SAAS,EAEf,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,EACvC,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI,CAAC;QACR,mBAAmB,CACf,IAAI,EAAE,mBAAmB,EAEzB,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,GAAG,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI,CAAC;QACR,mBAAmB,CACf,IAAI,EAAE,iBAAiB,EAEvB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,GAAG,EACpC,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI,CAAC;QACR,mBAAmB,CACf,IAAI,EAAE,oBAAoB,EAE1B,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,GAAG,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI,CAAC;QACR,aAAa,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5E,aAAa,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACtF,aAAa,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACtE,aAAa,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACzF;CACJ"}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@becklyn/react-usercentrics",
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"license": "UNLICENSED",
|
|
5
|
+
"homepage": "https://github.com/Becklyn-Studios/react-usercentrics",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/Becklyn-Studios/react-usercentrics.git"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"test": "echo \"Error: no test specified\" && exit 0",
|
|
12
|
+
"format": "eslint . --fix && prettier --write \"src/**/*.{ts,tsx}\"",
|
|
13
|
+
"lint": "eslint . --max-warnings 0 && prettier --check \"src/**/*.{ts,tsx}\"",
|
|
14
|
+
"build": "npm run clean && tsc -p tsconfig-es.json && tsc -p tsconfig-cjs.json",
|
|
15
|
+
"clean": "rm -rf dist",
|
|
16
|
+
"prepublishOnly": "npm test && npm run lint && npm run build",
|
|
17
|
+
"preversion": "npm run lint"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@becklyn/prettier": "*",
|
|
21
|
+
"@becklyn/eslint": "*",
|
|
22
|
+
"@becklyn/tsconfig": "*",
|
|
23
|
+
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
24
|
+
"@types/react": "^18.2.14",
|
|
25
|
+
"react": "^16.8.6",
|
|
26
|
+
"react-dom": "^16.8.6",
|
|
27
|
+
"typescript": "^5.8.3"
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
31
|
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
32
|
+
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
33
|
+
},
|
|
34
|
+
"peerDependenciesMeta": {
|
|
35
|
+
"@types/react": {
|
|
36
|
+
"optional": true
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"dist"
|
|
41
|
+
],
|
|
42
|
+
"main": "dist/cjs/index.js",
|
|
43
|
+
"module": "dist/es/index.js",
|
|
44
|
+
"exports": {
|
|
45
|
+
".": {
|
|
46
|
+
"require": "./dist/cjs/index.js",
|
|
47
|
+
"import": "./dist/es/index.js",
|
|
48
|
+
"default": "./dist/cjs/index.js",
|
|
49
|
+
"types": "./dist/types/index.d.ts"
|
|
50
|
+
},
|
|
51
|
+
"./package.json": "./package.json"
|
|
52
|
+
},
|
|
53
|
+
"sideEffects": false,
|
|
54
|
+
"prettier": "@becklyn/prettier"
|
|
55
|
+
}
|