@usercentrics/react-native-sdk 2.23.2 → 2.24.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 +5 -5
- package/android/build-legacy.gradle +11 -1
- package/android/build.gradle.kts +44 -14
- package/android/gradle.properties +2 -0
- package/android/settings.gradle.kts +1 -1
- package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/RNUsercentricsModuleTest.kt +5 -5
- package/android/src/androidTest/java/com/usercentrics/reactnative/fake/FakePromise.kt +73 -0
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/RNUsercentricsModule.kt +3 -3
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/RNUsercentricsModuleSpec.kt +1 -1
- package/android/src/main/java/com/usercentrics/reactnative/RNUsercentricsPackage.kt +51 -0
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/ReactContextProvider.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/ReactContextProviderImpl.kt +1 -1
- package/android/src/main/java/com/usercentrics/reactnative/UCRNFlag.kt +4 -0
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/api/UsercentricsProxy.kt +2 -2
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/BannerFontExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/BannerSettingsExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/CCPADataExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/ConsentDisclosureSerializer.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/ReadableMapExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/TCFDataExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UserDecisionExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UserOptionsExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsCMPDataExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsConsentUserResponseExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsReadyStatusExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsServiceConsentExtensions.kt +1 -1
- package/android/src/main/jni/CMakeLists.txt +85 -0
- package/android/src/main/jni/RNUsercentricsModule.cpp +21 -0
- package/android/src/main/jni/rn_usercentrics.cpp +22 -0
- package/android/src/test/java/com/usercentrics/reactnative/RNUsercentricsModuleTest.kt +159 -0
- package/android/src/test/java/com/usercentrics/reactnative/fake/FakePromise.kt +73 -0
- package/ios/Extensions/BannerSettings+Dict.swift +1 -0
- package/ios/Extensions/UIColor+Extensions.swift +1 -1
- package/ios/Extensions/UIImage+UsercentricsLogoDict.swift +1 -0
- package/ios/RNUsercentricsModule.swift +1 -0
- package/lib/NativeUsercentrics.d.ts +1 -1
- package/lib/NativeUsercentrics.js +10 -2
- package/lib/NativeUsercentrics.js.map +1 -1
- package/lib/fabric/NativeUsercentricsModule.d.ts +30 -0
- package/lib/fabric/NativeUsercentricsModule.js +3 -0
- package/lib/fabric/NativeUsercentricsModule.js.map +1 -0
- package/package.json +108 -96
- package/react-native.config.js +15 -0
- package/src/NativeUsercentrics.ts +75 -0
- package/src/Usercentrics.tsx +145 -0
- package/src/__tests__/index.test.ts +476 -0
- package/src/__tests__/mocks.ts +402 -0
- package/src/fabric/NativeUsercentricsModule.ts +51 -0
- package/src/index.tsx +2 -0
- package/src/models/AdditionalConsentModeData.tsx +33 -0
- package/src/models/BannerSettings.tsx +117 -0
- package/src/models/CCPAData.tsx +32 -0
- package/src/models/CCPASettings.tsx +49 -0
- package/src/models/ConsentDisclosureObject.tsx +47 -0
- package/src/models/FirstLayerSettings.tsx +185 -0
- package/src/models/GeolocationRuleset.tsx +10 -0
- package/src/models/LegalBasisLocalization.tsx +100 -0
- package/src/models/NetworkMode.tsx +5 -0
- package/src/models/SecondLayerSettings.tsx +12 -0
- package/src/models/TCF2Settings.tsx +209 -0
- package/src/models/TCFData.tsx +297 -0
- package/src/models/TCFDecisionUILayer.tsx +5 -0
- package/src/models/TCFUserDecisions.tsx +73 -0
- package/src/models/UserDecision.tsx +10 -0
- package/src/models/UsercentricsAnalyticsEventType.tsx +15 -0
- package/src/models/UsercentricsCMPData.tsx +38 -0
- package/src/models/UsercentricsCategory.tsx +26 -0
- package/src/models/UsercentricsConsentType.tsx +5 -0
- package/src/models/UsercentricsConsentUserResponse.tsx +14 -0
- package/src/models/UsercentricsLabels.tsx +276 -0
- package/src/models/UsercentricsLocation.tsx +32 -0
- package/src/models/UsercentricsLoggerLevel.tsx +7 -0
- package/src/models/UsercentricsOptions.tsx +45 -0
- package/src/models/UsercentricsReadyStatus.tsx +20 -0
- package/src/models/UsercentricsService.tsx +134 -0
- package/src/models/UsercentricsServiceConsent.tsx +37 -0
- package/src/models/UsercentricsSettings.tsx +177 -0
- package/src/models/UsercentricsUserInteraction.tsx +7 -0
- package/src/models/UsercentricsVariant.tsx +6 -0
- package/src/models/index.tsx +29 -0
- package/android/src/androidTest/java/com/usercentrics/reactnativemodule/fake/FakePromise.kt +0 -67
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/RNUsercentricsPackage.kt +0 -22
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/UCRNFlag.kt +0 -4
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/api/FakeUsercentricsProxy.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetCMPDataMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetConsentsMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetTCFDataMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetUSPDataMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetUserSessionDataMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/ReactContextProviderMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/SaveDecisionsForTCFMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/SaveDecisionsMock.kt +0 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
export class TCFData {
|
|
2
|
+
/// A list of all the TCF features that need to be disclosed to the end-user if TCF is enabled.
|
|
3
|
+
features: TCFFeature[]
|
|
4
|
+
|
|
5
|
+
/// A list of all the TCF purposes that need to be disclosed to the end-user if TCF is enabled.
|
|
6
|
+
purposes: TCFPurpose[]
|
|
7
|
+
|
|
8
|
+
/// A list of all the TCF special features that need to be disclosed to the end-user if TCF is enabled
|
|
9
|
+
specialFeatures: TCFSpecialFeature[]
|
|
10
|
+
|
|
11
|
+
/// A list of all the TCF special purposes that need to be disclosed to the end-user if TCF is enabled
|
|
12
|
+
specialPurposes: TCFSpecialPurpose[]
|
|
13
|
+
|
|
14
|
+
/// A list of all TCF stacks that need to be disclosed to the end-user if TCF is enabled. On the first layer of a
|
|
15
|
+
/// TCF UI, stacks may be shown as alternative its comprising purposes and special features. However, on the second
|
|
16
|
+
/// layer, this is not allowed according to the IAB TCF v.2.0 guidelines. Also on the first layer, a purpose or special
|
|
17
|
+
/// feature may not be shown if a stack containing this purpose or special feature is already displayed. Note, that all
|
|
18
|
+
/// purposes and special features that are part of stacks will still be listed in the TCFData purposes and special
|
|
19
|
+
/// features fields, but they will be flagged with isPartOfASelectedStack = true and include a non-null stackId.
|
|
20
|
+
stacks: TCFStack[]
|
|
21
|
+
|
|
22
|
+
/// A list of all TCF vendors that need to be disclosed to the end-user if TCF is enabled */
|
|
23
|
+
vendors: TCFVendor[]
|
|
24
|
+
|
|
25
|
+
/// The TCF string
|
|
26
|
+
tcString: String
|
|
27
|
+
|
|
28
|
+
/// The total of vendors and services
|
|
29
|
+
thirdPartyCount: number
|
|
30
|
+
|
|
31
|
+
constructor(
|
|
32
|
+
features: TCFFeature[],
|
|
33
|
+
purposes: TCFPurpose[],
|
|
34
|
+
specialFeatures: TCFSpecialFeature[],
|
|
35
|
+
specialPurposes: TCFSpecialPurpose[],
|
|
36
|
+
stacks: TCFStack[],
|
|
37
|
+
vendors: TCFVendor[],
|
|
38
|
+
tcString: String,
|
|
39
|
+
thirdPartyCount: number
|
|
40
|
+
) {
|
|
41
|
+
this.features = features
|
|
42
|
+
this.purposes = purposes
|
|
43
|
+
this.specialFeatures = specialFeatures
|
|
44
|
+
this.specialPurposes = specialPurposes
|
|
45
|
+
this.stacks = stacks
|
|
46
|
+
this.vendors = vendors
|
|
47
|
+
this.tcString = tcString
|
|
48
|
+
this.thirdPartyCount = thirdPartyCount
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export class TCFFeature {
|
|
53
|
+
purposeDescription: string
|
|
54
|
+
illustrations: [string]
|
|
55
|
+
id: number
|
|
56
|
+
name: string
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
constructor(
|
|
60
|
+
purposeDescription: string,
|
|
61
|
+
illustrations: [string],
|
|
62
|
+
id: number,
|
|
63
|
+
name: string
|
|
64
|
+
) {
|
|
65
|
+
this.purposeDescription = purposeDescription
|
|
66
|
+
this.illustrations = illustrations
|
|
67
|
+
this.id = id
|
|
68
|
+
this.name = name
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export class TCFPurpose {
|
|
73
|
+
purposeDescription: string
|
|
74
|
+
illustrations: [string]
|
|
75
|
+
id: number
|
|
76
|
+
name: string
|
|
77
|
+
consent?: boolean
|
|
78
|
+
isPartOfASelectedStack: boolean
|
|
79
|
+
legitimateInterestConsent?: boolean
|
|
80
|
+
showConsentToggle: boolean
|
|
81
|
+
showLegitimateInterestToggle: boolean
|
|
82
|
+
stackId?: number
|
|
83
|
+
numberOfVendors?: number
|
|
84
|
+
|
|
85
|
+
constructor(
|
|
86
|
+
purposeDescription: string,
|
|
87
|
+
illustrations: [string],
|
|
88
|
+
id: number,
|
|
89
|
+
name: string,
|
|
90
|
+
isPartOfASelectedStack: boolean,
|
|
91
|
+
showConsentToggle: boolean,
|
|
92
|
+
showLegitimateInterestToggle: boolean,
|
|
93
|
+
legitimateInterestConsent?: boolean,
|
|
94
|
+
consent?: boolean,
|
|
95
|
+
stackId?: number,
|
|
96
|
+
numberOfVendors?: number,
|
|
97
|
+
) {
|
|
98
|
+
this.purposeDescription = purposeDescription
|
|
99
|
+
this.illustrations = illustrations
|
|
100
|
+
this.id = id
|
|
101
|
+
this.name = name
|
|
102
|
+
this.consent = consent
|
|
103
|
+
this.isPartOfASelectedStack = isPartOfASelectedStack
|
|
104
|
+
this.legitimateInterestConsent = legitimateInterestConsent
|
|
105
|
+
this.showConsentToggle = showConsentToggle
|
|
106
|
+
this.showLegitimateInterestToggle = showLegitimateInterestToggle
|
|
107
|
+
this.stackId = stackId
|
|
108
|
+
this.numberOfVendors = numberOfVendors
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export class TCFSpecialFeature {
|
|
113
|
+
purposeDescription: string
|
|
114
|
+
illustrations: [string]
|
|
115
|
+
id: number
|
|
116
|
+
name: string
|
|
117
|
+
consent?: boolean
|
|
118
|
+
isPartOfASelectedStack: boolean
|
|
119
|
+
stackId?: number
|
|
120
|
+
showConsentToggle: boolean
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
constructor(
|
|
124
|
+
purposeDescription: string,
|
|
125
|
+
illustrations: [string],
|
|
126
|
+
id: number,
|
|
127
|
+
isPartOfASelectedStack: boolean,
|
|
128
|
+
showConsentToggle: boolean,
|
|
129
|
+
name: string,
|
|
130
|
+
consent?: boolean,
|
|
131
|
+
stackId?: number
|
|
132
|
+
) {
|
|
133
|
+
this.purposeDescription = purposeDescription
|
|
134
|
+
this.illustrations = illustrations
|
|
135
|
+
this.id = id
|
|
136
|
+
this.name = name
|
|
137
|
+
this.consent = consent
|
|
138
|
+
this.isPartOfASelectedStack = isPartOfASelectedStack
|
|
139
|
+
this.stackId = stackId
|
|
140
|
+
this.showConsentToggle = showConsentToggle
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export class TCFSpecialPurpose {
|
|
146
|
+
purposeDescription: string
|
|
147
|
+
illustrations: [string]
|
|
148
|
+
id: number
|
|
149
|
+
name: string
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
constructor(
|
|
153
|
+
purposeDescription: string,
|
|
154
|
+
illustrations: [string],
|
|
155
|
+
id: number,
|
|
156
|
+
name: string
|
|
157
|
+
) {
|
|
158
|
+
this.purposeDescription = purposeDescription
|
|
159
|
+
this.illustrations = illustrations
|
|
160
|
+
this.id = id
|
|
161
|
+
this.name = name
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export class TCFStack {
|
|
166
|
+
description: string
|
|
167
|
+
id: number
|
|
168
|
+
name: string
|
|
169
|
+
purposeIds: [number]
|
|
170
|
+
specialFeatureIds: [number]
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
constructor(
|
|
174
|
+
description: string,
|
|
175
|
+
id: number,
|
|
176
|
+
name: string,
|
|
177
|
+
purposeIds: [number],
|
|
178
|
+
specialFeatureIds: [number]
|
|
179
|
+
) {
|
|
180
|
+
this.description = description
|
|
181
|
+
this.id = id
|
|
182
|
+
this.name = name
|
|
183
|
+
this.purposeIds = purposeIds
|
|
184
|
+
this.specialFeatureIds = specialFeatureIds
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export class TCFVendor {
|
|
190
|
+
consent?: boolean
|
|
191
|
+
features: [number]
|
|
192
|
+
flexiblePurposes: [number]
|
|
193
|
+
id: number
|
|
194
|
+
legitimateInterestConsent?: boolean
|
|
195
|
+
legitimateInterestPurposes: [number]
|
|
196
|
+
name: string
|
|
197
|
+
policyUrl: string
|
|
198
|
+
purposes: [number]
|
|
199
|
+
specialFeatures: [number]
|
|
200
|
+
specialPurposes: [number]
|
|
201
|
+
showConsentToggle: boolean
|
|
202
|
+
showLegitimateInterestToggle: boolean
|
|
203
|
+
cookieMaxAgeSeconds: number
|
|
204
|
+
usesNonCookieAccess: boolean
|
|
205
|
+
deviceStorageDisclosureUrl?: string
|
|
206
|
+
usesCookies: boolean
|
|
207
|
+
cookieRefresh?: boolean
|
|
208
|
+
dataSharedOutsideEU: boolean
|
|
209
|
+
dataCategories: [number]
|
|
210
|
+
vendorUrls: VendorUrl[]
|
|
211
|
+
restrictions: TCFVendorRestriction[]
|
|
212
|
+
|
|
213
|
+
constructor(
|
|
214
|
+
features: [number],
|
|
215
|
+
flexiblePurposes: [number],
|
|
216
|
+
id: number,
|
|
217
|
+
legitimateInterestPurposes: [number],
|
|
218
|
+
name: string,
|
|
219
|
+
policyUrl: string,
|
|
220
|
+
purposes: [number],
|
|
221
|
+
specialFeatures: [number],
|
|
222
|
+
specialPurposes: [number],
|
|
223
|
+
showConsentToggle: boolean,
|
|
224
|
+
showLegitimateInterestToggle: boolean,
|
|
225
|
+
cookieMaxAgeSeconds: number,
|
|
226
|
+
usesNonCookieAccess: boolean,
|
|
227
|
+
usesCookies: boolean,
|
|
228
|
+
dataSharedOutsideEU: boolean,
|
|
229
|
+
dataCategories: [number],
|
|
230
|
+
vendorUrls: VendorUrl[],
|
|
231
|
+
restrictions: TCFVendorRestriction[],
|
|
232
|
+
deviceStorageDisclosureUrl?: string,
|
|
233
|
+
legitimateInterestConsent?: boolean,
|
|
234
|
+
consent?: boolean,
|
|
235
|
+
cookieRefresh?: boolean,
|
|
236
|
+
) {
|
|
237
|
+
this.consent = consent
|
|
238
|
+
this.features = features
|
|
239
|
+
this.flexiblePurposes = flexiblePurposes
|
|
240
|
+
this.id = id
|
|
241
|
+
this.legitimateInterestConsent = legitimateInterestConsent
|
|
242
|
+
this.legitimateInterestPurposes = legitimateInterestPurposes
|
|
243
|
+
this.name = name
|
|
244
|
+
this.policyUrl = policyUrl
|
|
245
|
+
this.purposes = purposes
|
|
246
|
+
this.specialFeatures = specialFeatures
|
|
247
|
+
this.specialPurposes = specialPurposes
|
|
248
|
+
this.showConsentToggle = showConsentToggle
|
|
249
|
+
this.showLegitimateInterestToggle = showLegitimateInterestToggle
|
|
250
|
+
this.cookieMaxAgeSeconds = cookieMaxAgeSeconds
|
|
251
|
+
this.usesNonCookieAccess = usesNonCookieAccess
|
|
252
|
+
this.deviceStorageDisclosureUrl = deviceStorageDisclosureUrl
|
|
253
|
+
this.usesCookies = usesCookies
|
|
254
|
+
this.cookieRefresh = cookieRefresh
|
|
255
|
+
this.dataSharedOutsideEU = dataSharedOutsideEU
|
|
256
|
+
this.dataCategories = dataCategories
|
|
257
|
+
this.vendorUrls = vendorUrls
|
|
258
|
+
this.restrictions = restrictions
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export class VendorUrl {
|
|
263
|
+
langId?: string
|
|
264
|
+
privacy?: string
|
|
265
|
+
legIntClaim?: string
|
|
266
|
+
|
|
267
|
+
constructor(
|
|
268
|
+
langId: string,
|
|
269
|
+
privacy: string,
|
|
270
|
+
legIntClaim: string
|
|
271
|
+
) {
|
|
272
|
+
this.langId = langId
|
|
273
|
+
this.privacy = privacy
|
|
274
|
+
this.legIntClaim = legIntClaim
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export class TCFVendorRestriction {
|
|
280
|
+
|
|
281
|
+
purposeId: number
|
|
282
|
+
restrictionType: RestrictionType
|
|
283
|
+
|
|
284
|
+
constructor(
|
|
285
|
+
purposeId: number,
|
|
286
|
+
restrictionType: RestrictionType
|
|
287
|
+
) {
|
|
288
|
+
this.purposeId = purposeId
|
|
289
|
+
this.restrictionType = restrictionType
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
export enum RestrictionType {
|
|
294
|
+
notAllowed = 0,
|
|
295
|
+
requireConsent = 1,
|
|
296
|
+
requireLi = 2,
|
|
297
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export class TCFUserDecisions {
|
|
2
|
+
|
|
3
|
+
/// A user's consent decision on TCF purposes.
|
|
4
|
+
purposes: TCFUserDecisionOnPurpose[]
|
|
5
|
+
|
|
6
|
+
/// A user's consent decision on TCF special features.
|
|
7
|
+
specialFeatures: TCFUserDecisionOnSpecialFeature[]
|
|
8
|
+
|
|
9
|
+
/// A user's consent decision on TCF vendors.
|
|
10
|
+
vendors: TCFUserDecisionOnVendor[]
|
|
11
|
+
|
|
12
|
+
/// A user's consent decision on Google Ad Tech Providers
|
|
13
|
+
adTechProviders: AdTechProviderDecision[]
|
|
14
|
+
|
|
15
|
+
constructor(purposes: TCFUserDecisionOnPurpose[],
|
|
16
|
+
specialFeatures: TCFUserDecisionOnSpecialFeature[],
|
|
17
|
+
vendors: TCFUserDecisionOnVendor[],
|
|
18
|
+
adTechProviders: AdTechProviderDecision[]) {
|
|
19
|
+
this.purposes = purposes
|
|
20
|
+
this.specialFeatures = specialFeatures
|
|
21
|
+
this.vendors = vendors
|
|
22
|
+
this.adTechProviders = adTechProviders
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export class TCFUserDecisionOnPurpose {
|
|
27
|
+
|
|
28
|
+
id: number
|
|
29
|
+
consent?: boolean
|
|
30
|
+
legitimateInterestConsent?: boolean
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
constructor(id: number, consent?: boolean, legitimateInterestConsent?: boolean) {
|
|
34
|
+
this.id = id
|
|
35
|
+
this.consent = consent
|
|
36
|
+
this.legitimateInterestConsent = legitimateInterestConsent
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export class TCFUserDecisionOnSpecialFeature {
|
|
41
|
+
|
|
42
|
+
id: number
|
|
43
|
+
consent?: boolean
|
|
44
|
+
|
|
45
|
+
constructor(id: number, consent?: boolean) {
|
|
46
|
+
this.id = id
|
|
47
|
+
this.consent = consent
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export class TCFUserDecisionOnVendor {
|
|
52
|
+
|
|
53
|
+
id: number
|
|
54
|
+
consent?: boolean
|
|
55
|
+
legitimateInterestConsent?: boolean
|
|
56
|
+
|
|
57
|
+
constructor(id: number, consent?: boolean, legitimateInterestConsent?: boolean) {
|
|
58
|
+
this.id = id
|
|
59
|
+
this.consent = consent
|
|
60
|
+
this.legitimateInterestConsent = legitimateInterestConsent
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export class AdTechProviderDecision {
|
|
65
|
+
|
|
66
|
+
id: number
|
|
67
|
+
consent: boolean
|
|
68
|
+
|
|
69
|
+
constructor(id: number, consent: boolean) {
|
|
70
|
+
this.id = id
|
|
71
|
+
this.consent = consent
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export enum UsercentricsAnalyticsEventType {
|
|
2
|
+
|
|
3
|
+
cmpShown = 0,
|
|
4
|
+
acceptAllFirstLayer = 1,
|
|
5
|
+
denyAllFirstLayer = 2,
|
|
6
|
+
saveFirstLayer = 3,
|
|
7
|
+
acceptAllSecondLayer = 4,
|
|
8
|
+
denyAllSecondLayer = 5,
|
|
9
|
+
saveSecondLayer = 6,
|
|
10
|
+
imprintLink = 7,
|
|
11
|
+
moreInformationLink = 8,
|
|
12
|
+
privacyPolicyLink = 9,
|
|
13
|
+
ccpaTogglesOn = 10,
|
|
14
|
+
ccpaTogglesOff = 11,
|
|
15
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {UsercentricsCategory} from "./UsercentricsCategory";
|
|
2
|
+
import {UsercentricsLocation} from "./UsercentricsLocation";
|
|
3
|
+
import {UsercentricsService} from "./UsercentricsService";
|
|
4
|
+
import {UsercentricsSettings} from "./UsercentricsSettings";
|
|
5
|
+
import {UsercentricsVariant} from "./UsercentricsVariant";
|
|
6
|
+
import { LegalBasisLocalization } from "./LegalBasisLocalization";
|
|
7
|
+
|
|
8
|
+
export class UsercentricsCMPData {
|
|
9
|
+
|
|
10
|
+
/// The general settings defined for the settingsId.
|
|
11
|
+
settings: UsercentricsSettings
|
|
12
|
+
/// The services defined for the settingsId.
|
|
13
|
+
services: [UsercentricsService]
|
|
14
|
+
/// The categories defined for the settingsId.
|
|
15
|
+
categories: [UsercentricsCategory]
|
|
16
|
+
/// The active variant.
|
|
17
|
+
activeVariant: UsercentricsVariant
|
|
18
|
+
/// The current user location.
|
|
19
|
+
userLocation: UsercentricsLocation
|
|
20
|
+
// The current legal basis localization
|
|
21
|
+
legalBasis: LegalBasisLocalization
|
|
22
|
+
|
|
23
|
+
constructor(
|
|
24
|
+
settings: UsercentricsSettings,
|
|
25
|
+
services: [UsercentricsService],
|
|
26
|
+
categories: [UsercentricsCategory],
|
|
27
|
+
activeVariant: UsercentricsVariant,
|
|
28
|
+
userLocation: UsercentricsLocation,
|
|
29
|
+
legalBasis: LegalBasisLocalization
|
|
30
|
+
) {
|
|
31
|
+
this.settings = settings
|
|
32
|
+
this.services = services
|
|
33
|
+
this.categories = categories
|
|
34
|
+
this.activeVariant = activeVariant
|
|
35
|
+
this.userLocation = userLocation
|
|
36
|
+
this.legalBasis = legalBasis
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export class UsercentricsCategory {
|
|
2
|
+
|
|
3
|
+
/// The category slug identifier.
|
|
4
|
+
categorySlug: string
|
|
5
|
+
|
|
6
|
+
/// The label of the category if any.
|
|
7
|
+
label: string
|
|
8
|
+
|
|
9
|
+
/// The description of the category if any.
|
|
10
|
+
description: string
|
|
11
|
+
|
|
12
|
+
/// True, if it is an essential category. False, if not.
|
|
13
|
+
isEssential: boolean
|
|
14
|
+
|
|
15
|
+
constructor(
|
|
16
|
+
categorySlug: string,
|
|
17
|
+
label: string,
|
|
18
|
+
description: string,
|
|
19
|
+
isEssential: boolean
|
|
20
|
+
) {
|
|
21
|
+
this.categorySlug = categorySlug
|
|
22
|
+
this.label = label
|
|
23
|
+
this.description = description
|
|
24
|
+
this.isEssential = isEssential
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {UsercentricsServiceConsent, UsercentricsUserInteraction} from "."
|
|
2
|
+
|
|
3
|
+
export class UsercentricsConsentUserResponse {
|
|
4
|
+
|
|
5
|
+
controllerId: string
|
|
6
|
+
userInteraction: UsercentricsUserInteraction
|
|
7
|
+
consents: [UsercentricsServiceConsent]
|
|
8
|
+
|
|
9
|
+
constructor(controllerId: string, userIntaction: UsercentricsUserInteraction, consents: [UsercentricsServiceConsent]) {
|
|
10
|
+
this.controllerId = controllerId;
|
|
11
|
+
this.userInteraction = userIntaction
|
|
12
|
+
this.consents = consents
|
|
13
|
+
}
|
|
14
|
+
}
|