@usercentrics/react-native-sdk 2.27.0 → 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/main/java/com/usercentrics/reactnative/extensions/UsercentricsCMPDataExtensions.kt +9 -1
- package/ios/Extensions/UsercentricsCMPData+Dict.swift +12 -1
- package/lib/models/TCF2Settings.d.ts +10 -2
- package/lib/models/TCF2Settings.js +14 -2
- package/lib/models/TCF2Settings.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/mocks.ts +7 -2
- package/src/models/TCF2Settings.tsx +20 -0
package/android/build.gradle.kts
CHANGED
|
@@ -12,6 +12,7 @@ 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
|
|
15
16
|
import com.usercentrics.sdk.v2.settings.data.ConsentOrPaySettings
|
|
16
17
|
import com.usercentrics.sdk.v2.settings.data.TCF2ChangedPurposes
|
|
17
18
|
import com.usercentrics.sdk.v2.settings.data.TCF2Settings
|
|
@@ -249,6 +250,7 @@ private fun TCF2Settings.serialize(): WritableMap {
|
|
|
249
250
|
"selectedATPIds" to selectedATPIds,
|
|
250
251
|
"consentOrPay" to consentOrPay?.serialize(),
|
|
251
252
|
"mandatoryLabel" to mandatoryLabel,
|
|
253
|
+
"specialFeaturesConsentOrPay" to specialFeaturesConsentOrPay?.map { it.serialize() },
|
|
252
254
|
).toWritableMap()
|
|
253
255
|
}
|
|
254
256
|
|
|
@@ -447,10 +449,16 @@ private fun TCF2ChangedPurposes?.serialize(): Any? {
|
|
|
447
449
|
}
|
|
448
450
|
return mapOf(
|
|
449
451
|
"purposes" to purposes,
|
|
450
|
-
"legIntPurposes" to legIntPurposes
|
|
452
|
+
"legIntPurposes" to legIntPurposes,
|
|
453
|
+
"consentOrPay" to consentOrPay?.map { it.serialize() },
|
|
451
454
|
)
|
|
452
455
|
}
|
|
453
456
|
|
|
457
|
+
private fun ConsentOrPayRestriction.serialize(): Map<String, Any?> = mapOf(
|
|
458
|
+
"id" to id,
|
|
459
|
+
"value" to value,
|
|
460
|
+
)
|
|
461
|
+
|
|
454
462
|
internal fun AdditionalConsentModeData.serialize(): WritableMap {
|
|
455
463
|
return Arguments.createMap().apply {
|
|
456
464
|
putString("acString", acString)
|
|
@@ -238,6 +238,7 @@ extension TCF2Settings {
|
|
|
238
238
|
"resurfacePeriod": self.resurfacePeriod,
|
|
239
239
|
"consentOrPay": self.consentOrPay?.toDictionary() as Any,
|
|
240
240
|
"mandatoryLabel": self.mandatoryLabel,
|
|
241
|
+
"specialFeaturesConsentOrPay": self.specialFeaturesConsentOrPay?.map { $0.toDictionary() } as Any,
|
|
241
242
|
]
|
|
242
243
|
}
|
|
243
244
|
}
|
|
@@ -497,7 +498,17 @@ extension TCF2ChangedPurposes {
|
|
|
497
498
|
func toDictionary() -> Any {
|
|
498
499
|
return [
|
|
499
500
|
"purposes": purposes,
|
|
500
|
-
"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,
|
|
501
512
|
]
|
|
502
513
|
}
|
|
503
514
|
}
|
|
@@ -60,7 +60,8 @@ export declare class TCF2Settings {
|
|
|
60
60
|
selectedATPIds: number[];
|
|
61
61
|
consentOrPay?: TCF2ConsentOrPaySettings;
|
|
62
62
|
mandatoryLabel: string;
|
|
63
|
-
|
|
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[]);
|
|
64
65
|
}
|
|
65
66
|
export declare enum FirstLayerMobileVariant {
|
|
66
67
|
sheet = 0,
|
|
@@ -75,7 +76,14 @@ export declare enum TCF2Scope {
|
|
|
75
76
|
export declare class TCF2ChangedPurposes {
|
|
76
77
|
purposes: [number];
|
|
77
78
|
legIntPurposes: [number];
|
|
78
|
-
|
|
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;
|
|
79
87
|
}
|
|
80
88
|
export declare class TCF2ConsentOrPaySettings {
|
|
81
89
|
enableConsentOrPay: boolean;
|
|
@@ -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, consentOrPay, mandatoryLabel = 'Mandatory') {
|
|
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;
|
|
@@ -61,6 +61,7 @@ export class TCF2Settings {
|
|
|
61
61
|
this.selectedATPIds = selectedATPIds;
|
|
62
62
|
this.consentOrPay = consentOrPay;
|
|
63
63
|
this.mandatoryLabel = mandatoryLabel;
|
|
64
|
+
this.specialFeaturesConsentOrPay = specialFeaturesConsentOrPay;
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
export var FirstLayerMobileVariant;
|
|
@@ -76,9 +77,20 @@ export var TCF2Scope;
|
|
|
76
77
|
TCF2Scope[TCF2Scope["service"] = 1] = "service";
|
|
77
78
|
})(TCF2Scope || (TCF2Scope = {}));
|
|
78
79
|
export class TCF2ChangedPurposes {
|
|
79
|
-
constructor(purposes, legIntPurposes) {
|
|
80
|
+
constructor(purposes, legIntPurposes, consentOrPay) {
|
|
80
81
|
this.purposes = purposes;
|
|
81
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';
|
|
82
94
|
}
|
|
83
95
|
}
|
|
84
96
|
export class TCF2ConsentOrPaySettings {
|
|
@@ -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":"AAAA,MAAM,OAAO,YAAY;IAgErB,YACI,eAAuB,EACvB,gBAAwB,EACxB,gBAAwB,EACxB,gBAAwB,EACxB,cAAsB,EACtB,gBAAwB,EACxB,oBAA4B,EAC5B,mBAA2B,EAC3B,cAAsB,EACtB,cAAsB,EACtB,gCAAwC,EACxC,aAAqB,EACrB,qBAA6B,EAC7B,qBAA6B,EAC7B,yBAAiC,EACjC,wBAAgC,EAChC,qBAA6B,EAC7B,mBAA2B,EAC3B,gBAAwB,EACxB,wBAAgC,EAChC,wBAAgC,EAChC,KAAa,EACb,UAAkB,EAClB,qBAA8B,EAC9B,sBAA+B,EAC/B,6BAAsC,EACtC,yBAAkC,EAClC,oBAA4B,EAC5B,mBAA4B,EAC5B,iBAA2B,EAC3B,WAAoB,EACpB,cAAwB,EACxB,uBAAiC,EACjC,0BAAmC,EACnC,sBAA+B,EAC/B,eAAuB,EACvB,uBAAgC,EAChC,oBAA6B,EAC7B,qBAA6B,EAC7B,wBAAgC,EAChC,sBAA8B,EAC9B,8BAAsC,EACtC,+BAAuC,EACvC,qBAA6B,EAC7B,uBAA+B,EAC/B,qBAA6B,EAC7B,wBAAgC,EAChC,uBAA+B,EAC/B,OAAe,EACf,aAAqB,EACrB,2BAAoC,EACpC,sBAAgC,EAChC,KAAgB,EAChB,eAAoC,EACpC,YAAqB,EACrB,cAAwB,EACxB,wBAAkC,EAClC,uBAAiD,EACjD,uBAAgC,EAChC,YAAuC,EACvC,iBAAyB,WAAW,EACpC,2BAAuD;QAEvD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,gCAAgC,GAAG,gCAAgC,CAAA;QACxE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAClD,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAClD,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAA;QAC1D,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAA;QACxD,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAClD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAA;QACxD,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAA;QACxD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAClD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,6BAA6B,GAAG,6BAA6B,CAAA;QAClE,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAA;QACxD,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAA;QAC1D,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;QACtD,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAA;QAC5D,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;QACtD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAClD,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAA;QACxD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,8BAA8B,GAAG,8BAA8B,CAAA;QACpE,IAAI,CAAC,+BAA+B,GAAG,+BAA+B,CAAA;QACtE,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAClD,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;QACtD,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAClD,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAA;QACxD,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;QACtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;QACtD,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAA;QAC9D,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;QACtD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAA;IAClE,CAAC;CACJ;AAED,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IAC/B,uEAAS,CAAA;IACT,qEAAQ,CAAA;IACR,mFAAe,CAAA;IACf,mFAAe,CAAA;AACnB,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC;AAED,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,6CAAU,CAAA;IACV,+CAAW,CAAA;AACf,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,MAAM,OAAO,mBAAmB;IAM5B,YACI,QAAkB,EAClB,cAAwB,EACxB,YAAwC;QAExC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;CACJ;AAED,MAAM,OAAO,uBAAuB;IAIhC,YAAY,EAAU,EAAE,KAAa;QACjC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,UAAU;;QACN,OAAO,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE,MAAK,UAAU,CAAA;IACnD,CAAC;CACJ;AAED,MAAM,OAAO,wBAAwB;IASjC,YACI,kBAA2B,EAC3B,qBAA8B,EAC9B,qBAA6C,EAC7C,eAAuC;QAEvC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAClD,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAClD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usercentrics/react-native-sdk",
|
|
3
|
-
"version": "2.27.
|
|
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.27.
|
|
10
|
+
"iosPackageVersion": "2.27.1",
|
|
11
11
|
"license": "SEE LICENSE IN LICENSE",
|
|
12
12
|
"files": [
|
|
13
13
|
"android",
|
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 = {
|
|
@@ -60,6 +60,7 @@ export class TCF2Settings {
|
|
|
60
60
|
selectedATPIds: number[]
|
|
61
61
|
consentOrPay?: TCF2ConsentOrPaySettings
|
|
62
62
|
mandatoryLabel: string
|
|
63
|
+
specialFeaturesConsentOrPay?: ConsentOrPayRestriction[]
|
|
63
64
|
|
|
64
65
|
constructor(
|
|
65
66
|
firstLayerTitle: string,
|
|
@@ -123,6 +124,7 @@ export class TCF2Settings {
|
|
|
123
124
|
dataSharedOutsideEUText?: string,
|
|
124
125
|
consentOrPay?: TCF2ConsentOrPaySettings,
|
|
125
126
|
mandatoryLabel: string = 'Mandatory',
|
|
127
|
+
specialFeaturesConsentOrPay?: ConsentOrPayRestriction[],
|
|
126
128
|
) {
|
|
127
129
|
this.firstLayerTitle = firstLayerTitle
|
|
128
130
|
this.secondLayerTitle = secondLayerTitle
|
|
@@ -185,6 +187,7 @@ export class TCF2Settings {
|
|
|
185
187
|
this.selectedATPIds = selectedATPIds
|
|
186
188
|
this.consentOrPay = consentOrPay
|
|
187
189
|
this.mandatoryLabel = mandatoryLabel
|
|
190
|
+
this.specialFeaturesConsentOrPay = specialFeaturesConsentOrPay
|
|
188
191
|
}
|
|
189
192
|
}
|
|
190
193
|
|
|
@@ -204,13 +207,30 @@ export class TCF2ChangedPurposes {
|
|
|
204
207
|
|
|
205
208
|
purposes: [number]
|
|
206
209
|
legIntPurposes: [number]
|
|
210
|
+
consentOrPay?: ConsentOrPayRestriction[]
|
|
207
211
|
|
|
208
212
|
constructor(
|
|
209
213
|
purposes: [number],
|
|
210
214
|
legIntPurposes: [number],
|
|
215
|
+
consentOrPay?: ConsentOrPayRestriction[],
|
|
211
216
|
) {
|
|
212
217
|
this.purposes = purposes
|
|
213
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'
|
|
214
234
|
}
|
|
215
235
|
}
|
|
216
236
|
|