@usercentrics/react-native-sdk 2.26.3 → 2.27.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/android/build-legacy.gradle +1 -1
- package/android/build.gradle.kts +1 -1
- package/android/src/androidTest/java/com/usercentrics/reactnative/mock/GetCMPDataMock.kt +2 -1
- package/android/src/main/java/com/usercentrics/reactnative/extensions/UsercentricsCMPDataExtensions.kt +19 -1
- package/ios/Extensions/UsercentricsCMPData+Dict.swift +24 -1
- package/lib/Usercentrics.js.map +1 -1
- package/lib/models/TCF2Settings.d.ts +21 -2
- package/lib/models/TCF2Settings.js +24 -2
- package/lib/models/TCF2Settings.js.map +1 -1
- package/package.json +10 -5
- package/src/Usercentrics.tsx +1 -1
- package/src/__tests__/mocks.ts +7 -2
- package/src/models/TCF2Settings.tsx +48 -0
package/android/build.gradle.kts
CHANGED
|
@@ -509,7 +509,8 @@ internal object GetCMPDataMock {
|
|
|
509
509
|
"legIntPurposes" to listOf(1, 2, 3),
|
|
510
510
|
),
|
|
511
511
|
"acmV2Enabled" to true,
|
|
512
|
-
"selectedATPIds" to listOf(43, 46, 55)
|
|
512
|
+
"selectedATPIds" to listOf(43, 46, 55),
|
|
513
|
+
"mandatoryLabel" to "Mandatory",
|
|
513
514
|
)
|
|
514
515
|
private val expectedCCPASettings = hashMapOf(
|
|
515
516
|
"optOutNoticeLabel" to "Do not sell my personal information",
|
|
@@ -12,6 +12,8 @@ import com.usercentrics.sdk.v2.settings.data.CustomizationFont
|
|
|
12
12
|
import com.usercentrics.sdk.v2.settings.data.FirstLayer
|
|
13
13
|
import com.usercentrics.sdk.v2.settings.data.PublishedApp
|
|
14
14
|
import com.usercentrics.sdk.v2.settings.data.SecondLayer
|
|
15
|
+
import com.usercentrics.sdk.v2.settings.data.ConsentOrPayRestriction
|
|
16
|
+
import com.usercentrics.sdk.v2.settings.data.ConsentOrPaySettings
|
|
15
17
|
import com.usercentrics.sdk.v2.settings.data.TCF2ChangedPurposes
|
|
16
18
|
import com.usercentrics.sdk.v2.settings.data.TCF2Settings
|
|
17
19
|
import com.usercentrics.sdk.v2.settings.data.UsercentricsCategory
|
|
@@ -246,9 +248,19 @@ private fun TCF2Settings.serialize(): WritableMap {
|
|
|
246
248
|
"changedPurposes" to changedPurposes?.serialize(),
|
|
247
249
|
"acmV2Enabled" to acmV2Enabled,
|
|
248
250
|
"selectedATPIds" to selectedATPIds,
|
|
251
|
+
"consentOrPay" to consentOrPay?.serialize(),
|
|
252
|
+
"mandatoryLabel" to mandatoryLabel,
|
|
253
|
+
"specialFeaturesConsentOrPay" to specialFeaturesConsentOrPay?.map { it.serialize() },
|
|
249
254
|
).toWritableMap()
|
|
250
255
|
}
|
|
251
256
|
|
|
257
|
+
private fun ConsentOrPaySettings.serialize(): Map<String, Any?> = mapOf(
|
|
258
|
+
"enableConsentOrPay" to enableConsentOrPay,
|
|
259
|
+
"showTogglesForVendors" to showTogglesForVendors,
|
|
260
|
+
"publisherRestrictions" to publisherRestrictions,
|
|
261
|
+
"specialFeatures" to specialFeatures
|
|
262
|
+
)
|
|
263
|
+
|
|
252
264
|
private fun TCF2Settings.getResurfacePeriodCompat(): Int {
|
|
253
265
|
val intValue = runCatching {
|
|
254
266
|
javaClass.getMethod("getResurfacePeriod").invoke(this) as? Int
|
|
@@ -437,10 +449,16 @@ private fun TCF2ChangedPurposes?.serialize(): Any? {
|
|
|
437
449
|
}
|
|
438
450
|
return mapOf(
|
|
439
451
|
"purposes" to purposes,
|
|
440
|
-
"legIntPurposes" to legIntPurposes
|
|
452
|
+
"legIntPurposes" to legIntPurposes,
|
|
453
|
+
"consentOrPay" to consentOrPay?.map { it.serialize() },
|
|
441
454
|
)
|
|
442
455
|
}
|
|
443
456
|
|
|
457
|
+
private fun ConsentOrPayRestriction.serialize(): Map<String, Any?> = mapOf(
|
|
458
|
+
"id" to id,
|
|
459
|
+
"value" to value,
|
|
460
|
+
)
|
|
461
|
+
|
|
444
462
|
internal fun AdditionalConsentModeData.serialize(): WritableMap {
|
|
445
463
|
return Arguments.createMap().apply {
|
|
446
464
|
putString("acString", acString)
|
|
@@ -236,10 +236,23 @@ extension TCF2Settings {
|
|
|
236
236
|
"acmV2Enabled": self.acmV2Enabled,
|
|
237
237
|
"selectedATPIds": self.selectedATPIds,
|
|
238
238
|
"resurfacePeriod": self.resurfacePeriod,
|
|
239
|
+
"consentOrPay": self.consentOrPay?.toDictionary() as Any,
|
|
240
|
+
"mandatoryLabel": self.mandatoryLabel,
|
|
241
|
+
"specialFeaturesConsentOrPay": self.specialFeaturesConsentOrPay?.map { $0.toDictionary() } as Any,
|
|
239
242
|
]
|
|
240
243
|
}
|
|
241
244
|
}
|
|
242
245
|
|
|
246
|
+
extension ConsentOrPaySettings {
|
|
247
|
+
func toDictionary() -> [String: Any] {
|
|
248
|
+
return [
|
|
249
|
+
"enableConsentOrPay": self.enableConsentOrPay,
|
|
250
|
+
"showTogglesForVendors": self.showTogglesForVendors,
|
|
251
|
+
"publisherRestrictions": self.publisherRestrictions,
|
|
252
|
+
"specialFeatures": self.specialFeatures
|
|
253
|
+
]
|
|
254
|
+
}
|
|
255
|
+
}
|
|
243
256
|
|
|
244
257
|
extension UsercentricsCustomization {
|
|
245
258
|
func toDictionary() -> NSDictionary {
|
|
@@ -485,7 +498,17 @@ extension TCF2ChangedPurposes {
|
|
|
485
498
|
func toDictionary() -> Any {
|
|
486
499
|
return [
|
|
487
500
|
"purposes": purposes,
|
|
488
|
-
"legIntPurposes": legIntPurposes
|
|
501
|
+
"legIntPurposes": legIntPurposes,
|
|
502
|
+
"consentOrPay": consentOrPay?.map { $0.toDictionary() } as Any,
|
|
503
|
+
]
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
extension ConsentOrPayRestriction {
|
|
508
|
+
func toDictionary() -> [String: Any] {
|
|
509
|
+
return [
|
|
510
|
+
"id": self.id,
|
|
511
|
+
"value": self.value,
|
|
489
512
|
]
|
|
490
513
|
}
|
|
491
514
|
}
|
package/lib/Usercentrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Usercentrics.js","sourceRoot":"","sources":["../src/Usercentrics.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,kBAAkB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"Usercentrics.js","sourceRoot":"","sources":["../src/Usercentrics.tsx"],"names":[],"mappings":"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"}
|
|
@@ -58,7 +58,10 @@ export declare class TCF2Settings {
|
|
|
58
58
|
changedPurposes: TCF2ChangedPurposes;
|
|
59
59
|
acmV2Enabled: boolean;
|
|
60
60
|
selectedATPIds: number[];
|
|
61
|
-
|
|
61
|
+
consentOrPay?: TCF2ConsentOrPaySettings;
|
|
62
|
+
mandatoryLabel: string;
|
|
63
|
+
specialFeaturesConsentOrPay?: ConsentOrPayRestriction[];
|
|
64
|
+
constructor(firstLayerTitle: string, secondLayerTitle: string, tabsPurposeLabel: string, tabsVendorsLabel: string, labelsFeatures: string, labelsIabVendors: string, labelsNonIabPurposes: string, labelsNonIabVendors: string, labelsPurposes: string, vendorFeatures: string, vendorLegitimateInterestPurposes: string, vendorPurpose: string, vendorSpecialFeatures: string, vendorSpecialPurposes: string, togglesConsentToggleLabel: string, togglesLegIntToggleLabel: string, buttonsAcceptAllLabel: string, buttonsDenyAllLabel: string, buttonsSaveLabel: string, linksManageSettingsLabel: string, linksVendorListLinkLabel: string, cmpId: number, cmpVersion: number, firstLayerHideToggles: boolean, secondLayerHideToggles: boolean, hideLegitimateInterestToggles: boolean, secondLayerHideButtonDeny: boolean, publisherCountryCode: string, purposeOneTreatment: boolean, selectedVendorIds: [number], gdprApplies: boolean, selectedStacks: [number], disabledSpecialFeatures: [number], firstLayerShowDescriptions: boolean, hideNonIabOnFirstLayer: boolean, resurfacePeriod: number, resurfacePurposeChanged: boolean, resurfaceVendorAdded: boolean, firstLayerDescription: string, firstLayerAdditionalInfo: string, secondLayerDescription: string, togglesSpecialFeaturesToggleOn: string, togglesSpecialFeaturesToggleOff: string, appLayerNoteResurface: string, firstLayerNoteResurface: string, categoriesOfDataLabel: string, dataRetentionPeriodLabel: string, legitimateInterestLabel: string, version: string, examplesLabel: string, showDataSharedOutsideEUText: boolean, vendorIdsOutsideEUList: [number], scope: TCF2Scope, changedPurposes: TCF2ChangedPurposes, acmV2Enabled: boolean, selectedATPIds: number[], firstLayerHideButtonDeny?: boolean, firstLayerMobileVariant?: FirstLayerMobileVariant, dataSharedOutsideEUText?: string, consentOrPay?: TCF2ConsentOrPaySettings, mandatoryLabel?: string, specialFeaturesConsentOrPay?: ConsentOrPayRestriction[]);
|
|
62
65
|
}
|
|
63
66
|
export declare enum FirstLayerMobileVariant {
|
|
64
67
|
sheet = 0,
|
|
@@ -73,5 +76,21 @@ export declare enum TCF2Scope {
|
|
|
73
76
|
export declare class TCF2ChangedPurposes {
|
|
74
77
|
purposes: [number];
|
|
75
78
|
legIntPurposes: [number];
|
|
76
|
-
|
|
79
|
+
consentOrPay?: ConsentOrPayRestriction[];
|
|
80
|
+
constructor(purposes: [number], legIntPurposes: [number], consentOrPay?: ConsentOrPayRestriction[]);
|
|
81
|
+
}
|
|
82
|
+
export declare class ConsentOrPayRestriction {
|
|
83
|
+
id: number;
|
|
84
|
+
value: string;
|
|
85
|
+
constructor(id: number, value: string);
|
|
86
|
+
isFlexible(): boolean;
|
|
87
|
+
}
|
|
88
|
+
export declare class TCF2ConsentOrPaySettings {
|
|
89
|
+
enableConsentOrPay: boolean;
|
|
90
|
+
showTogglesForVendors: boolean;
|
|
91
|
+
/** Maps TCF Purpose ID (as string) to "flexible". Absent entries are mandatory. */
|
|
92
|
+
publisherRestrictions: Record<string, string>;
|
|
93
|
+
/** Maps Special Feature ID (as string) to "flexible". Absent entries are mandatory. */
|
|
94
|
+
specialFeatures: Record<string, string>;
|
|
95
|
+
constructor(enableConsentOrPay: boolean, showTogglesForVendors: boolean, publisherRestrictions: Record<string, string>, specialFeatures: Record<string, string>);
|
|
77
96
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export class TCF2Settings {
|
|
2
|
-
constructor(firstLayerTitle, secondLayerTitle, tabsPurposeLabel, tabsVendorsLabel, labelsFeatures, labelsIabVendors, labelsNonIabPurposes, labelsNonIabVendors, labelsPurposes, vendorFeatures, vendorLegitimateInterestPurposes, vendorPurpose, vendorSpecialFeatures, vendorSpecialPurposes, togglesConsentToggleLabel, togglesLegIntToggleLabel, buttonsAcceptAllLabel, buttonsDenyAllLabel, buttonsSaveLabel, linksManageSettingsLabel, linksVendorListLinkLabel, cmpId, cmpVersion, firstLayerHideToggles, secondLayerHideToggles, hideLegitimateInterestToggles, secondLayerHideButtonDeny, publisherCountryCode, purposeOneTreatment, selectedVendorIds, gdprApplies, selectedStacks, disabledSpecialFeatures, firstLayerShowDescriptions, hideNonIabOnFirstLayer, resurfacePeriod, resurfacePurposeChanged, resurfaceVendorAdded, firstLayerDescription, firstLayerAdditionalInfo, secondLayerDescription, togglesSpecialFeaturesToggleOn, togglesSpecialFeaturesToggleOff, appLayerNoteResurface, firstLayerNoteResurface, categoriesOfDataLabel, dataRetentionPeriodLabel, legitimateInterestLabel, version, examplesLabel, showDataSharedOutsideEUText, vendorIdsOutsideEUList, scope, changedPurposes, acmV2Enabled, selectedATPIds, firstLayerHideButtonDeny, firstLayerMobileVariant, dataSharedOutsideEUText) {
|
|
2
|
+
constructor(firstLayerTitle, secondLayerTitle, tabsPurposeLabel, tabsVendorsLabel, labelsFeatures, labelsIabVendors, labelsNonIabPurposes, labelsNonIabVendors, labelsPurposes, vendorFeatures, vendorLegitimateInterestPurposes, vendorPurpose, vendorSpecialFeatures, vendorSpecialPurposes, togglesConsentToggleLabel, togglesLegIntToggleLabel, buttonsAcceptAllLabel, buttonsDenyAllLabel, buttonsSaveLabel, linksManageSettingsLabel, linksVendorListLinkLabel, cmpId, cmpVersion, firstLayerHideToggles, secondLayerHideToggles, hideLegitimateInterestToggles, secondLayerHideButtonDeny, publisherCountryCode, purposeOneTreatment, selectedVendorIds, gdprApplies, selectedStacks, disabledSpecialFeatures, firstLayerShowDescriptions, hideNonIabOnFirstLayer, resurfacePeriod, resurfacePurposeChanged, resurfaceVendorAdded, firstLayerDescription, firstLayerAdditionalInfo, secondLayerDescription, togglesSpecialFeaturesToggleOn, togglesSpecialFeaturesToggleOff, appLayerNoteResurface, firstLayerNoteResurface, categoriesOfDataLabel, dataRetentionPeriodLabel, legitimateInterestLabel, version, examplesLabel, showDataSharedOutsideEUText, vendorIdsOutsideEUList, scope, changedPurposes, acmV2Enabled, selectedATPIds, firstLayerHideButtonDeny, firstLayerMobileVariant, dataSharedOutsideEUText, consentOrPay, mandatoryLabel = 'Mandatory', specialFeaturesConsentOrPay) {
|
|
3
3
|
this.firstLayerTitle = firstLayerTitle;
|
|
4
4
|
this.secondLayerTitle = secondLayerTitle;
|
|
5
5
|
this.tabsPurposeLabel = tabsPurposeLabel;
|
|
@@ -59,6 +59,9 @@ export class TCF2Settings {
|
|
|
59
59
|
this.changedPurposes = changedPurposes;
|
|
60
60
|
this.acmV2Enabled = acmV2Enabled;
|
|
61
61
|
this.selectedATPIds = selectedATPIds;
|
|
62
|
+
this.consentOrPay = consentOrPay;
|
|
63
|
+
this.mandatoryLabel = mandatoryLabel;
|
|
64
|
+
this.specialFeaturesConsentOrPay = specialFeaturesConsentOrPay;
|
|
62
65
|
}
|
|
63
66
|
}
|
|
64
67
|
export var FirstLayerMobileVariant;
|
|
@@ -74,9 +77,28 @@ export var TCF2Scope;
|
|
|
74
77
|
TCF2Scope[TCF2Scope["service"] = 1] = "service";
|
|
75
78
|
})(TCF2Scope || (TCF2Scope = {}));
|
|
76
79
|
export class TCF2ChangedPurposes {
|
|
77
|
-
constructor(purposes, legIntPurposes) {
|
|
80
|
+
constructor(purposes, legIntPurposes, consentOrPay) {
|
|
78
81
|
this.purposes = purposes;
|
|
79
82
|
this.legIntPurposes = legIntPurposes;
|
|
83
|
+
this.consentOrPay = consentOrPay;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export class ConsentOrPayRestriction {
|
|
87
|
+
constructor(id, value) {
|
|
88
|
+
this.id = id;
|
|
89
|
+
this.value = value;
|
|
90
|
+
}
|
|
91
|
+
isFlexible() {
|
|
92
|
+
var _a;
|
|
93
|
+
return ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'FLEXIBLE';
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export class TCF2ConsentOrPaySettings {
|
|
97
|
+
constructor(enableConsentOrPay, showTogglesForVendors, publisherRestrictions, specialFeatures) {
|
|
98
|
+
this.enableConsentOrPay = enableConsentOrPay;
|
|
99
|
+
this.showTogglesForVendors = showTogglesForVendors;
|
|
100
|
+
this.publisherRestrictions = publisherRestrictions;
|
|
101
|
+
this.specialFeatures = specialFeatures;
|
|
80
102
|
}
|
|
81
103
|
}
|
|
82
104
|
//# sourceMappingURL=TCF2Settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TCF2Settings.js","sourceRoot":"","sources":["../../src/models/TCF2Settings.tsx"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"TCF2Settings.js","sourceRoot":"","sources":["../../src/models/TCF2Settings.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usercentrics/react-native-sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.27.1",
|
|
4
4
|
"description": "Usercentrics SDK",
|
|
5
5
|
"homepage": "https://usercentrics.com",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
8
8
|
"author": "Usercentrics <developer@usercentrics.com>",
|
|
9
9
|
"iosPackageName": "react-native-usercentrics",
|
|
10
|
-
"iosPackageVersion": "2.
|
|
10
|
+
"iosPackageVersion": "2.27.1",
|
|
11
11
|
"license": "SEE LICENSE IN LICENSE",
|
|
12
12
|
"files": [
|
|
13
13
|
"android",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
],
|
|
32
32
|
"scripts": {
|
|
33
33
|
"compile": "rm -rf lib && tsc -p .",
|
|
34
|
-
"lint": "eslint .
|
|
34
|
+
"lint": "eslint .",
|
|
35
35
|
"prepare": "yarn compile",
|
|
36
36
|
"test": "jest src/__tests__/index.test.ts",
|
|
37
37
|
"clean-all-caches": "./scripts/clean-all-caches.sh",
|
|
@@ -49,13 +49,18 @@
|
|
|
49
49
|
"@react-native-community/cli": "^20.1.3",
|
|
50
50
|
"@react-native-community/cli-platform-android": "^20.1.3",
|
|
51
51
|
"@react-native-community/cli-platform-ios": "^20.1.3",
|
|
52
|
-
"@
|
|
52
|
+
"@eslint/js": "^9.0.0",
|
|
53
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
54
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
55
|
+
"eslint-config-prettier": "^9.0.0",
|
|
56
|
+
"eslint-plugin-prettier": "^5.0.0",
|
|
53
57
|
"@react-native/babel-preset": "^0.81.1",
|
|
54
58
|
"@types/jest": "^29.5.2",
|
|
55
59
|
"@types/react-test-renderer": "^19.0.0",
|
|
56
60
|
"babel-jest": "^29.5.0",
|
|
57
|
-
"eslint": "^
|
|
61
|
+
"eslint": "^9.0.0",
|
|
58
62
|
"eslint-plugin-simple-import-sort": "^10.0.0",
|
|
63
|
+
"prettier": "^3.0.0",
|
|
59
64
|
"jest": "^29.5.0",
|
|
60
65
|
"react": "^19.1.0",
|
|
61
66
|
"react-native": "^0.79.6",
|
package/src/Usercentrics.tsx
CHANGED
package/src/__tests__/mocks.ts
CHANGED
|
@@ -172,7 +172,9 @@ const ccpaSettings: CCPASettings = {
|
|
|
172
172
|
|
|
173
173
|
const tcf2ChangedPurposes: TCF2ChangedPurposes = {
|
|
174
174
|
legIntPurposes: [1],
|
|
175
|
-
purposes: [2]
|
|
175
|
+
purposes: [2],
|
|
176
|
+
notAllowedPurposes: [],
|
|
177
|
+
consentOrPay: undefined
|
|
176
178
|
}
|
|
177
179
|
|
|
178
180
|
const tcf2Settings: TCF2Settings = {
|
|
@@ -234,7 +236,10 @@ const tcf2Settings: TCF2Settings = {
|
|
|
234
236
|
scope: TCF2Scope.global,
|
|
235
237
|
changedPurposes: tcf2ChangedPurposes,
|
|
236
238
|
acmV2Enabled: true,
|
|
237
|
-
selectedATPIds: [10, 20, 30]
|
|
239
|
+
selectedATPIds: [10, 20, 30],
|
|
240
|
+
mandatoryLabel: 'Mandatory',
|
|
241
|
+
consentOrPay: undefined,
|
|
242
|
+
specialFeaturesConsentOrPay: undefined
|
|
238
243
|
}
|
|
239
244
|
|
|
240
245
|
const firstLayer: FirstLayer = {
|
|
@@ -58,6 +58,9 @@ export class TCF2Settings {
|
|
|
58
58
|
changedPurposes: TCF2ChangedPurposes
|
|
59
59
|
acmV2Enabled: boolean
|
|
60
60
|
selectedATPIds: number[]
|
|
61
|
+
consentOrPay?: TCF2ConsentOrPaySettings
|
|
62
|
+
mandatoryLabel: string
|
|
63
|
+
specialFeaturesConsentOrPay?: ConsentOrPayRestriction[]
|
|
61
64
|
|
|
62
65
|
constructor(
|
|
63
66
|
firstLayerTitle: string,
|
|
@@ -119,6 +122,9 @@ export class TCF2Settings {
|
|
|
119
122
|
firstLayerHideButtonDeny?: boolean,
|
|
120
123
|
firstLayerMobileVariant?: FirstLayerMobileVariant,
|
|
121
124
|
dataSharedOutsideEUText?: string,
|
|
125
|
+
consentOrPay?: TCF2ConsentOrPaySettings,
|
|
126
|
+
mandatoryLabel: string = 'Mandatory',
|
|
127
|
+
specialFeaturesConsentOrPay?: ConsentOrPayRestriction[],
|
|
122
128
|
) {
|
|
123
129
|
this.firstLayerTitle = firstLayerTitle
|
|
124
130
|
this.secondLayerTitle = secondLayerTitle
|
|
@@ -179,6 +185,9 @@ export class TCF2Settings {
|
|
|
179
185
|
this.changedPurposes = changedPurposes
|
|
180
186
|
this.acmV2Enabled = acmV2Enabled
|
|
181
187
|
this.selectedATPIds = selectedATPIds
|
|
188
|
+
this.consentOrPay = consentOrPay
|
|
189
|
+
this.mandatoryLabel = mandatoryLabel
|
|
190
|
+
this.specialFeaturesConsentOrPay = specialFeaturesConsentOrPay
|
|
182
191
|
}
|
|
183
192
|
}
|
|
184
193
|
|
|
@@ -198,12 +207,51 @@ export class TCF2ChangedPurposes {
|
|
|
198
207
|
|
|
199
208
|
purposes: [number]
|
|
200
209
|
legIntPurposes: [number]
|
|
210
|
+
consentOrPay?: ConsentOrPayRestriction[]
|
|
201
211
|
|
|
202
212
|
constructor(
|
|
203
213
|
purposes: [number],
|
|
204
214
|
legIntPurposes: [number],
|
|
215
|
+
consentOrPay?: ConsentOrPayRestriction[],
|
|
205
216
|
) {
|
|
206
217
|
this.purposes = purposes
|
|
207
218
|
this.legIntPurposes = legIntPurposes
|
|
219
|
+
this.consentOrPay = consentOrPay
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
export class ConsentOrPayRestriction {
|
|
224
|
+
id: number
|
|
225
|
+
value: string
|
|
226
|
+
|
|
227
|
+
constructor(id: number, value: string) {
|
|
228
|
+
this.id = id
|
|
229
|
+
this.value = value
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
isFlexible(): boolean {
|
|
233
|
+
return this.value?.toUpperCase() === 'FLEXIBLE'
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export class TCF2ConsentOrPaySettings {
|
|
238
|
+
|
|
239
|
+
enableConsentOrPay: boolean
|
|
240
|
+
showTogglesForVendors: boolean
|
|
241
|
+
/** Maps TCF Purpose ID (as string) to "flexible". Absent entries are mandatory. */
|
|
242
|
+
publisherRestrictions: Record<string, string>
|
|
243
|
+
/** Maps Special Feature ID (as string) to "flexible". Absent entries are mandatory. */
|
|
244
|
+
specialFeatures: Record<string, string>
|
|
245
|
+
|
|
246
|
+
constructor(
|
|
247
|
+
enableConsentOrPay: boolean,
|
|
248
|
+
showTogglesForVendors: boolean,
|
|
249
|
+
publisherRestrictions: Record<string, string>,
|
|
250
|
+
specialFeatures: Record<string, string>,
|
|
251
|
+
) {
|
|
252
|
+
this.enableConsentOrPay = enableConsentOrPay
|
|
253
|
+
this.showTogglesForVendors = showTogglesForVendors
|
|
254
|
+
this.publisherRestrictions = publisherRestrictions
|
|
255
|
+
this.specialFeatures = specialFeatures
|
|
208
256
|
}
|
|
209
257
|
}
|