From 38337ab489b2f0e7eb6a7556e39b9f133729a3d3 Mon Sep 17 00:00:00 2001 From: Yara Date: Fri, 6 May 2022 12:46:53 +0200 Subject: [PATCH 01/44] feat: add page for web view demos --- index.html | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 313 insertions(+) create mode 100644 index.html diff --git a/index.html b/index.html new file mode 100644 index 0000000..f07b567 --- /dev/null +++ b/index.html @@ -0,0 +1,313 @@ + + + + + + + + + + + + +

Adjust Web View Demo

+ + + +
+
+ + + + + From 95070db6833a748ed2fbdb5da7b256e7681ebbc3 Mon Sep 17 00:00:00 2001 From: Yara Date: Fri, 6 May 2022 12:56:03 +0200 Subject: [PATCH 02/44] fix: path to android js assets --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index f07b567..833980e 100644 --- a/index.html +++ b/index.html @@ -63,7 +63,7 @@ } function attachAndroidBridgeScripts() { - const path = 'https://github.com/adjust/android_sdk/blob/master/Adjust/sdk-plugin-webbridge/src/main/assets/' + const path = 'android-bridge/' const scriptSources = ['adjust_event.js', 'adjust_third_party_sharing.js', 'adjust_config.js', 'adjust.js'] for (let scriptSrc of scriptSources) { @@ -164,9 +164,9 @@ let adjustConfig = configureAdjust() if (platform === 'ios') { - Adjust.appDidLaunch(adjustConfig); //ios + Adjust.appDidLaunch(adjustConfig); } else if (platform === 'android') { - Adjust.onCreate(adjustConfig); // android + Adjust.onCreate(adjustConfig); } } From ca190eb21c00fe30b2e51d5205c536a2e44bb1f4 Mon Sep 17 00:00:00 2001 From: Yara Matkova Date: Fri, 6 May 2022 13:02:07 +0200 Subject: [PATCH 03/44] fix: add missing assets --- android-bridge/adjust.js | 256 +++++++++++++++++++ android-bridge/adjust_config.js | 250 ++++++++++++++++++ android-bridge/adjust_event.js | 32 +++ android-bridge/adjust_third_party_sharing.js | 10 + 4 files changed, 548 insertions(+) create mode 100644 android-bridge/adjust.js create mode 100644 android-bridge/adjust_config.js create mode 100644 android-bridge/adjust_event.js create mode 100644 android-bridge/adjust_third_party_sharing.js diff --git a/android-bridge/adjust.js b/android-bridge/adjust.js new file mode 100644 index 0000000..26bdca3 --- /dev/null +++ b/android-bridge/adjust.js @@ -0,0 +1,256 @@ +var Adjust = { + onCreate: function (adjustConfig) { + if (adjustConfig && !adjustConfig.getSdkPrefix()) { + adjustConfig.setSdkPrefix(this.getSdkPrefix()); + } + this.adjustConfig = adjustConfig; + if (AdjustBridge) { + console.log('AdjustBridge.onCreate called') + AdjustBridge.onCreate(JSON.stringify(adjustConfig)); + } + }, + + getConfig: function () { + return this.adjustConfig; + }, + + trackEvent: function (adjustEvent) { + if (AdjustBridge) { + console.log('AdjustBridge.trackEvent called') + AdjustBridge.trackEvent(JSON.stringify(adjustEvent)); + } + }, + + trackAdRevenue: function (source, payload) { + if (AdjustBridge) { + console.log('AdjustBridge.trackAdRevenue called') + AdjustBridge.trackAdRevenue(source, payload); + } + }, + + onResume: function () { + if (AdjustBridge) { + console.log('AdjustBridge.onResume called') + AdjustBridge.onResume(); + } + }, + + onPause: function () { + if (AdjustBridge) { + console.log('AdjustBridge.onPause called') + AdjustBridge.onPause(); + } + }, + + setEnabled: function (enabled) { + if (AdjustBridge) { + console.log('AdjustBridge.setEnabled called') + AdjustBridge.setEnabled(enabled); + } + }, + + isEnabled: function (callback) { + if (!AdjustBridge) { + return undefined; + } + // supports legacy return with callback + if (arguments.length === 1) { + // with manual string call + if (typeof callback === 'string' || callback instanceof String) { + this.isEnabledCallbackName = callback; + } else { + // or save callback and call later + this.isEnabledCallbackName = 'Adjust.adjust_isEnabledCallback'; + this.isEnabledCallbackFunction = callback; + } + AdjustBridge.isEnabled(this.isEnabledCallbackName); + } else { + return AdjustBridge.isEnabled(); + } + }, + + adjust_isEnabledCallback: function (isEnabled) { + if (AdjustBridge && this.isEnabledCallbackFunction) { + this.isEnabledCallbackFunction(isEnabled); + } + }, + + appWillOpenUrl: function (url) { + if (AdjustBridge) { + console.log('AdjustBridge.appWillOpenUrl called') + AdjustBridge.appWillOpenUrl(url); + } + }, + + setReferrer: function (referrer) { + if (AdjustBridge) { + console.log('AdjustBridge.setReferrer called') + AdjustBridge.setReferrer(referrer); + } + }, + + setOfflineMode: function (isOffline) { + if (AdjustBridge) { + console.log('AdjustBridge.setOfflineMode called') + AdjustBridge.setOfflineMode(isOffline); + } + }, + + sendFirstPackages: function () { + if (AdjustBridge) { + console.log('AdjustBridge.sendFirstPackages called') + AdjustBridge.sendFirstPackages(); + } + }, + + addSessionCallbackParameter: function (key, value) { + if (AdjustBridge) { + console.log('AdjustBridge.addSessionCallbackParameter called') + AdjustBridge.addSessionCallbackParameter(key, value); + } + }, + + addSessionPartnerParameter: function (key, value) { + if (AdjustBridge) { + console.log('AdjustBridge.addSessionPartnerParameter called') + AdjustBridge.addSessionPartnerParameter(key, value); + } + }, + + removeSessionCallbackParameter: function (key) { + if (AdjustBridge) { + console.log('AdjustBridge.removeSessionCallbackParameter called') + AdjustBridge.removeSessionCallbackParameter(key); + } + }, + + removeSessionPartnerParameter: function (key) { + if (AdjustBridge) { + console.log('AdjustBridge.removeSessionPartnerParameter called') + AdjustBridge.removeSessionPartnerParameter(key); + } + }, + + resetSessionCallbackParameters: function () { + if (AdjustBridge) { + console.log('AdjustBridge.resetSessionCallbackParameters called') + AdjustBridge.resetSessionCallbackParameters(); + } + }, + + resetSessionPartnerParameters: function () { + if (AdjustBridge) { + console.log('AdjustBridge.resetSessionPartnerParameters called') + AdjustBridge.resetSessionPartnerParameters(); + } + }, + + setPushToken: function (token) { + if (AdjustBridge) { + console.log('AdjustBridge.setPushToken called') + AdjustBridge.setPushToken(token); + } + }, + + gdprForgetMe: function () { + if (AdjustBridge) { + console.log('AdjustBridge.gdprForgetMe called') + AdjustBridge.gdprForgetMe(); + } + }, + + disableThirdPartySharing: function () { + if (AdjustBridge) { + console.log('AdjustBridge.disableThirdPartySharing called') + AdjustBridge.disableThirdPartySharing(); + } + }, + + trackThirdPartySharing: function (adjustThirdPartySharing) { + if (AdjustBridge) { + console.log('AdjustBridge.trackThirdPartySharing called') + AdjustBridge.trackThirdPartySharing(JSON.stringify(adjustThirdPartySharing)); + } + }, + + trackMeasurementConsent: function (consentMeasurement) { + if (AdjustBridge) { + console.log('AdjustBridge.trackMeasurementConsent called') + AdjustBridge.trackMeasurementConsent(consentMeasurement); + } + }, + + getGoogleAdId: function (callback) { + if (AdjustBridge) { + if (typeof callback === 'string' || callback instanceof String) { + this.getGoogleAdIdCallbackName = callback; + } else { + this.getGoogleAdIdCallbackName = 'Adjust.adjust_getGoogleAdIdCallback'; + this.getGoogleAdIdCallbackFunction = callback; + } + console.log('AdjustBridge.getGoogleAdId called') + AdjustBridge.getGoogleAdId(this.getGoogleAdIdCallbackName); + } + }, + + adjust_getGoogleAdIdCallback: function (googleAdId) { + if (AdjustBridge && this.getGoogleAdIdCallbackFunction) { + this.getGoogleAdIdCallbackFunction(googleAdId); + } + }, + + getAmazonAdId: function (callback) { + if (AdjustBridge) { + return AdjustBridge.getAmazonAdId(); + } else { + return undefined; + } + }, + + getAdid: function () { + if (AdjustBridge) { + return AdjustBridge.getAdid(); + } else { + return undefined; + } + }, + + getAttribution: function (callback) { + if (AdjustBridge) { + console.log('AdjustBridge.getAttribution called') + AdjustBridge.getAttribution(callback); + } + }, + + getSdkVersion: function () { + if (AdjustBridge) { + console.log('AdjustBridge.getSdkVersion called') + return this.getSdkPrefix() + '@' + AdjustBridge.getSdkVersion(); + } else { + return undefined; + } + }, + + getSdkPrefix: function () { + if (this.adjustConfig) { + console.log('AdjustBridge.getSdkPrefix called') + return this.adjustConfig.getSdkPrefix(); + } else { + return 'web-bridge4.29.1'; + } + }, + + teardown: function () { + if (AdjustBridge) { + console.log('AdjustBridge.teardown called') + AdjustBridge.teardown(); + } + this.adjustConfig = undefined; + this.isEnabledCallbackName = undefined; + this.isEnabledCallbackFunction = undefined; + this.getGoogleAdIdCallbackName = undefined; + this.getGoogleAdIdCallbackFunction = undefined; + }, +}; + +//window.Adjust = Adjust; \ No newline at end of file diff --git a/android-bridge/adjust_config.js b/android-bridge/adjust_config.js new file mode 100644 index 0000000..9c503a4 --- /dev/null +++ b/android-bridge/adjust_config.js @@ -0,0 +1,250 @@ +function AdjustConfig(appToken, environment, legacy) { + this.allowSuppressLogLevel = null; + + if (arguments.length === 2) { + // new format does not require bridge as first parameter + this.appToken = appToken; + this.environment = environment; + } else if (arguments.length === 3) { + // new format with allowSuppressLogLevel + if (typeof (legacy) == typeof (true)) { + this.appToken = appToken; + this.environment = environment; + this.allowSuppressLogLevel = legacy; + } else { + // old format with first argument being the bridge instance + this.bridge = appToken; + this.appToken = environment; + this.environment = legacy; + } + } + + this.eventBufferingEnabled = null; + this.sendInBackground = null; + this.logLevel = null; + this.sdkPrefix = null; + this.processName = null; + this.defaultTracker = null; + this.externalDeviceId = null; + this.attributionCallbackName = null; + this.attributionCallbackFunction = null; + this.deviceKnown = null; + this.needsCost = null; + this.eventSuccessCallbackName = null; + this.eventSuccessCallbackFunction = null; + this.eventFailureCallbackName = null; + this.eventFailureCallbackFunction = null; + this.sessionSuccessCallbackName = null; + this.sessionSuccessCallbackFunction = null; + this.sessionFailureCallbackName = null; + this.sessionFailureCallbackFunction = null; + this.openDeferredDeeplink = null; + this.deferredDeeplinkCallbackName = null; + this.deferredDeeplinkCallbackFunction = null; + this.delayStart = null; + this.userAgent = null; + this.secretId = null; + this.info1 = null; + this.info2 = null; + this.info3 = null; + this.info4 = null; + this.fbPixelDefaultEventToken = null; + this.fbPixelMapping = []; + this.urlStrategy = null; + this.preinstallTrackingEnabled = null; + this.preinstallFilePath = null; +} + +AdjustConfig.EnvironmentSandbox = 'sandbox'; +AdjustConfig.EnvironmentProduction = 'production'; + +AdjustConfig.UrlStrategyIndia = "url_strategy_india"; +AdjustConfig.UrlStrategyChina = "url_strategy_china"; +AdjustConfig.DataResidencyEU = "data_residency_eu"; +AdjustConfig.DataResidencyTR = "data_residency_tr"; +AdjustConfig.DataResidencyUS = "data_residency_us"; + +AdjustConfig.LogLevelVerbose = 'VERBOSE', + AdjustConfig.LogLevelDebug = 'DEBUG', + AdjustConfig.LogLevelInfo = 'INFO', + AdjustConfig.LogLevelWarn = 'WARN', + AdjustConfig.LogLevelError = 'ERROR', + AdjustConfig.LogLevelAssert = 'ASSERT', + AdjustConfig.LogLevelSuppress = 'SUPPRESS', + + AdjustConfig.prototype.getBridge = function () { + return this.bridge; + }; + +AdjustConfig.prototype.setEventBufferingEnabled = function (isEnabled) { + this.eventBufferingEnabled = isEnabled; +}; + +AdjustConfig.prototype.setSendInBackground = function (isEnabled) { + this.sendInBackground = isEnabled; +}; + +AdjustConfig.prototype.setLogLevel = function (logLevel) { + this.logLevel = logLevel; +}; + +AdjustConfig.prototype.getSdkPrefix = function () { + return this.sdkPrefix; +}; + +AdjustConfig.prototype.setSdkPrefix = function (sdkPrefix) { + this.sdkPrefix = sdkPrefix; +}; + +AdjustConfig.prototype.setProcessName = function (processName) { + this.processName = processName; +}; + +AdjustConfig.prototype.setDefaultTracker = function (defaultTracker) { + this.defaultTracker = defaultTracker; +}; + +AdjustConfig.prototype.setExternalDeviceId = function (externalDeviceId) { + this.externalDeviceId = externalDeviceId; +}; + +AdjustConfig.prototype.setAttributionCallback = function (callback) { + if (typeof callback === 'string' || callback instanceof String) { + this.attributionCallbackName = callback; + } else { + this.attributionCallbackName = 'Adjust.getConfig().adjust_attributionCallback'; + this.attributionCallbackFunction = callback; + } +}; + +AdjustConfig.prototype.adjust_attributionCallback = function (attribution) { + if (this.attributionCallbackFunction) { + this.attributionCallbackFunction(attribution); + } +}; + +AdjustConfig.prototype.setDeviceKnown = function (deviceKnown) { + this.deviceKnown = deviceKnown; +}; + +AdjustConfig.prototype.setNeedsCost = function (needsCost) { + this.needsCost = needsCost; +}; + +AdjustConfig.prototype.setEventSuccessCallback = function (callback) { + if (typeof callback === 'string' || callback instanceof String) { + this.eventSuccessCallbackName = callback; + } else { + this.eventSuccessCallbackName = 'Adjust.getConfig().adjust_eventSuccessCallback'; + this.eventSuccessCallbackFunction = callback; + } +}; + +AdjustConfig.prototype.adjust_eventSuccessCallback = function (eventSuccess) { + if (this.eventSuccessCallbackFunction) { + this.eventSuccessCallbackFunction(eventSuccess); + } +}; + +AdjustConfig.prototype.setEventFailureCallback = function (callback) { + if (typeof callback === 'string' || callback instanceof String) { + this.eventFailureCallbackName = callback; + } else { + this.eventFailureCallbackName = 'Adjust.getConfig().adjust_eventFailureCallback'; + this.eventFailureCallbackFunction = callback; + } +}; + +AdjustConfig.prototype.adjust_eventFailureCallback = function (eventFailure) { + if (this.eventFailureCallbackFunction) { + this.eventFailureCallbackFunction(eventFailure); + } +}; + +AdjustConfig.prototype.setSessionSuccessCallback = function (callback) { + if (typeof callback === 'string' || callback instanceof String) { + this.sessionSuccessCallbackName = callback; + } else { + this.sessionSuccessCallbackName = 'Adjust.getConfig().adjust_sessionSuccessCallback'; + this.sessionSuccessCallbackFunction = callback; + } +}; + +AdjustConfig.prototype.adjust_sessionSuccessCallback = function (sessionSuccess) { + if (this.sessionSuccessCallbackFunction) { + this.sessionSuccessCallbackFunction(sessionSuccess); + } +}; + +AdjustConfig.prototype.setSessionFailureCallback = function (callback) { + if (typeof callback === 'string' || callback instanceof String) { + this.sessionFailureCallbackName = callback; + } else { + this.sessionFailureCallbackName = 'Adjust.getConfig().adjust_sessionFailureCallback'; + this.sessionFailureCallbackFunction = callback; + } +}; + +AdjustConfig.prototype.adjust_sessionFailureCallback = function (sessionFailure) { + if (this.sessionFailureCallbackFunction) { + this.sessionFailureCallbackFunction(sessionFailure); + } +}; + +AdjustConfig.prototype.setOpenDeferredDeeplink = function (shouldOpen) { + this.openDeferredDeeplink = shouldOpen; +}; + +AdjustConfig.prototype.setDeferredDeeplinkCallback = function (callback) { + if (typeof callback === 'string' || callback instanceof String) { + this.deferredDeeplinkCallbackName = callback; + } else { + this.deferredDeeplinkCallbackName = 'Adjust.getConfig().adjust_deferredDeeplinkCallback'; + this.deferredDeeplinkCallbackFunction = callback; + } +}; + +AdjustConfig.prototype.adjust_deferredDeeplinkCallback = function (deeplink) { + if (this.deferredDeeplinkCallbackFunction) { + this.deferredDeeplinkCallbackFunction(deeplink); + } +}; + +AdjustConfig.prototype.setDelayStart = function (delayStart) { + this.delayStart = delayStart; +}; + +AdjustConfig.prototype.setUserAgent = function (userAgent) { + this.userAgent = userAgent; +}; + +AdjustConfig.prototype.setAppSecret = function (secretId, info1, info2, info3, info4) { + this.secretId = secretId; + this.info1 = info1; + this.info2 = info2; + this.info3 = info3; + this.info4 = info4; +}; + +AdjustConfig.prototype.setReadMobileEquipmentIdentity = function (readMobileEquipmentIdentity) { }; + +AdjustConfig.prototype.setFbPixelDefaultEventToken = function (fbPixelDefaultEventToken) { + this.fbPixelDefaultEventToken = fbPixelDefaultEventToken; +}; + +AdjustConfig.prototype.addFbPixelMapping = function (fbEventNameKey, adjEventTokenValue) { + this.fbPixelMapping.push(fbEventNameKey); + this.fbPixelMapping.push(adjEventTokenValue); +}; + +AdjustConfig.prototype.setUrlStrategy = function (urlStrategy) { + this.urlStrategy = urlStrategy; +}; + +AdjustConfig.prototype.setPreinstallTrackingEnabled = function (preinstallTrackingEnabled) { + this.preinstallTrackingEnabled = preinstallTrackingEnabled; +}; + +AdjustConfig.prototype.setPreinstallFilePath = function (preinstallFilePath) { + this.preinstallFilePath = preinstallFilePath; +}; diff --git a/android-bridge/adjust_event.js b/android-bridge/adjust_event.js new file mode 100644 index 0000000..576a1ee --- /dev/null +++ b/android-bridge/adjust_event.js @@ -0,0 +1,32 @@ +function AdjustEvent(eventToken) { + this.eventToken = eventToken; + this.revenue = null; + this.currency = null; + this.callbackParameters = []; + this.partnerParameters = []; + this.orderId = null; + this.callbackId = null; +} + +AdjustEvent.prototype.setRevenue = function(revenue, currency) { + this.revenue = revenue; + this.currency = currency; +}; + +AdjustEvent.prototype.addCallbackParameter = function(key, value) { + this.callbackParameters.push(key); + this.callbackParameters.push(value); +}; + +AdjustEvent.prototype.addPartnerParameter = function(key, value) { + this.partnerParameters.push(key); + this.partnerParameters.push(value); +}; + +AdjustEvent.prototype.setOrderId = function(orderId) { + this.orderId = orderId; +}; + +AdjustEvent.prototype.setCallbackId = function(callbackId) { + this.callbackId = callbackId; +}; diff --git a/android-bridge/adjust_third_party_sharing.js b/android-bridge/adjust_third_party_sharing.js new file mode 100644 index 0000000..7e71ba3 --- /dev/null +++ b/android-bridge/adjust_third_party_sharing.js @@ -0,0 +1,10 @@ +function AdjustThirdPartySharing(isEnabled) { + this.isEnabled = isEnabled; + this.granularOptions = []; +} + +AdjustThirdPartySharing.prototype.addGranularOption = function(partnerName, key, value) { + this.granularOptions.push(partnerName); + this.granularOptions.push(key); + this.granularOptions.push(value); +}; \ No newline at end of file From f4209d59fa1df336091caef9baff7804fc3454fb Mon Sep 17 00:00:00 2001 From: Yara Date: Fri, 6 May 2022 16:27:49 +0200 Subject: [PATCH 04/44] Revert "Add page for Adjust web bridge demo apps" --- android-bridge/adjust.js | 256 --------------- android-bridge/adjust_config.js | 250 --------------- android-bridge/adjust_event.js | 32 -- android-bridge/adjust_third_party_sharing.js | 10 - index.html | 313 ------------------- 5 files changed, 861 deletions(-) delete mode 100644 android-bridge/adjust.js delete mode 100644 android-bridge/adjust_config.js delete mode 100644 android-bridge/adjust_event.js delete mode 100644 android-bridge/adjust_third_party_sharing.js delete mode 100644 index.html diff --git a/android-bridge/adjust.js b/android-bridge/adjust.js deleted file mode 100644 index 26bdca3..0000000 --- a/android-bridge/adjust.js +++ /dev/null @@ -1,256 +0,0 @@ -var Adjust = { - onCreate: function (adjustConfig) { - if (adjustConfig && !adjustConfig.getSdkPrefix()) { - adjustConfig.setSdkPrefix(this.getSdkPrefix()); - } - this.adjustConfig = adjustConfig; - if (AdjustBridge) { - console.log('AdjustBridge.onCreate called') - AdjustBridge.onCreate(JSON.stringify(adjustConfig)); - } - }, - - getConfig: function () { - return this.adjustConfig; - }, - - trackEvent: function (adjustEvent) { - if (AdjustBridge) { - console.log('AdjustBridge.trackEvent called') - AdjustBridge.trackEvent(JSON.stringify(adjustEvent)); - } - }, - - trackAdRevenue: function (source, payload) { - if (AdjustBridge) { - console.log('AdjustBridge.trackAdRevenue called') - AdjustBridge.trackAdRevenue(source, payload); - } - }, - - onResume: function () { - if (AdjustBridge) { - console.log('AdjustBridge.onResume called') - AdjustBridge.onResume(); - } - }, - - onPause: function () { - if (AdjustBridge) { - console.log('AdjustBridge.onPause called') - AdjustBridge.onPause(); - } - }, - - setEnabled: function (enabled) { - if (AdjustBridge) { - console.log('AdjustBridge.setEnabled called') - AdjustBridge.setEnabled(enabled); - } - }, - - isEnabled: function (callback) { - if (!AdjustBridge) { - return undefined; - } - // supports legacy return with callback - if (arguments.length === 1) { - // with manual string call - if (typeof callback === 'string' || callback instanceof String) { - this.isEnabledCallbackName = callback; - } else { - // or save callback and call later - this.isEnabledCallbackName = 'Adjust.adjust_isEnabledCallback'; - this.isEnabledCallbackFunction = callback; - } - AdjustBridge.isEnabled(this.isEnabledCallbackName); - } else { - return AdjustBridge.isEnabled(); - } - }, - - adjust_isEnabledCallback: function (isEnabled) { - if (AdjustBridge && this.isEnabledCallbackFunction) { - this.isEnabledCallbackFunction(isEnabled); - } - }, - - appWillOpenUrl: function (url) { - if (AdjustBridge) { - console.log('AdjustBridge.appWillOpenUrl called') - AdjustBridge.appWillOpenUrl(url); - } - }, - - setReferrer: function (referrer) { - if (AdjustBridge) { - console.log('AdjustBridge.setReferrer called') - AdjustBridge.setReferrer(referrer); - } - }, - - setOfflineMode: function (isOffline) { - if (AdjustBridge) { - console.log('AdjustBridge.setOfflineMode called') - AdjustBridge.setOfflineMode(isOffline); - } - }, - - sendFirstPackages: function () { - if (AdjustBridge) { - console.log('AdjustBridge.sendFirstPackages called') - AdjustBridge.sendFirstPackages(); - } - }, - - addSessionCallbackParameter: function (key, value) { - if (AdjustBridge) { - console.log('AdjustBridge.addSessionCallbackParameter called') - AdjustBridge.addSessionCallbackParameter(key, value); - } - }, - - addSessionPartnerParameter: function (key, value) { - if (AdjustBridge) { - console.log('AdjustBridge.addSessionPartnerParameter called') - AdjustBridge.addSessionPartnerParameter(key, value); - } - }, - - removeSessionCallbackParameter: function (key) { - if (AdjustBridge) { - console.log('AdjustBridge.removeSessionCallbackParameter called') - AdjustBridge.removeSessionCallbackParameter(key); - } - }, - - removeSessionPartnerParameter: function (key) { - if (AdjustBridge) { - console.log('AdjustBridge.removeSessionPartnerParameter called') - AdjustBridge.removeSessionPartnerParameter(key); - } - }, - - resetSessionCallbackParameters: function () { - if (AdjustBridge) { - console.log('AdjustBridge.resetSessionCallbackParameters called') - AdjustBridge.resetSessionCallbackParameters(); - } - }, - - resetSessionPartnerParameters: function () { - if (AdjustBridge) { - console.log('AdjustBridge.resetSessionPartnerParameters called') - AdjustBridge.resetSessionPartnerParameters(); - } - }, - - setPushToken: function (token) { - if (AdjustBridge) { - console.log('AdjustBridge.setPushToken called') - AdjustBridge.setPushToken(token); - } - }, - - gdprForgetMe: function () { - if (AdjustBridge) { - console.log('AdjustBridge.gdprForgetMe called') - AdjustBridge.gdprForgetMe(); - } - }, - - disableThirdPartySharing: function () { - if (AdjustBridge) { - console.log('AdjustBridge.disableThirdPartySharing called') - AdjustBridge.disableThirdPartySharing(); - } - }, - - trackThirdPartySharing: function (adjustThirdPartySharing) { - if (AdjustBridge) { - console.log('AdjustBridge.trackThirdPartySharing called') - AdjustBridge.trackThirdPartySharing(JSON.stringify(adjustThirdPartySharing)); - } - }, - - trackMeasurementConsent: function (consentMeasurement) { - if (AdjustBridge) { - console.log('AdjustBridge.trackMeasurementConsent called') - AdjustBridge.trackMeasurementConsent(consentMeasurement); - } - }, - - getGoogleAdId: function (callback) { - if (AdjustBridge) { - if (typeof callback === 'string' || callback instanceof String) { - this.getGoogleAdIdCallbackName = callback; - } else { - this.getGoogleAdIdCallbackName = 'Adjust.adjust_getGoogleAdIdCallback'; - this.getGoogleAdIdCallbackFunction = callback; - } - console.log('AdjustBridge.getGoogleAdId called') - AdjustBridge.getGoogleAdId(this.getGoogleAdIdCallbackName); - } - }, - - adjust_getGoogleAdIdCallback: function (googleAdId) { - if (AdjustBridge && this.getGoogleAdIdCallbackFunction) { - this.getGoogleAdIdCallbackFunction(googleAdId); - } - }, - - getAmazonAdId: function (callback) { - if (AdjustBridge) { - return AdjustBridge.getAmazonAdId(); - } else { - return undefined; - } - }, - - getAdid: function () { - if (AdjustBridge) { - return AdjustBridge.getAdid(); - } else { - return undefined; - } - }, - - getAttribution: function (callback) { - if (AdjustBridge) { - console.log('AdjustBridge.getAttribution called') - AdjustBridge.getAttribution(callback); - } - }, - - getSdkVersion: function () { - if (AdjustBridge) { - console.log('AdjustBridge.getSdkVersion called') - return this.getSdkPrefix() + '@' + AdjustBridge.getSdkVersion(); - } else { - return undefined; - } - }, - - getSdkPrefix: function () { - if (this.adjustConfig) { - console.log('AdjustBridge.getSdkPrefix called') - return this.adjustConfig.getSdkPrefix(); - } else { - return 'web-bridge4.29.1'; - } - }, - - teardown: function () { - if (AdjustBridge) { - console.log('AdjustBridge.teardown called') - AdjustBridge.teardown(); - } - this.adjustConfig = undefined; - this.isEnabledCallbackName = undefined; - this.isEnabledCallbackFunction = undefined; - this.getGoogleAdIdCallbackName = undefined; - this.getGoogleAdIdCallbackFunction = undefined; - }, -}; - -//window.Adjust = Adjust; \ No newline at end of file diff --git a/android-bridge/adjust_config.js b/android-bridge/adjust_config.js deleted file mode 100644 index 9c503a4..0000000 --- a/android-bridge/adjust_config.js +++ /dev/null @@ -1,250 +0,0 @@ -function AdjustConfig(appToken, environment, legacy) { - this.allowSuppressLogLevel = null; - - if (arguments.length === 2) { - // new format does not require bridge as first parameter - this.appToken = appToken; - this.environment = environment; - } else if (arguments.length === 3) { - // new format with allowSuppressLogLevel - if (typeof (legacy) == typeof (true)) { - this.appToken = appToken; - this.environment = environment; - this.allowSuppressLogLevel = legacy; - } else { - // old format with first argument being the bridge instance - this.bridge = appToken; - this.appToken = environment; - this.environment = legacy; - } - } - - this.eventBufferingEnabled = null; - this.sendInBackground = null; - this.logLevel = null; - this.sdkPrefix = null; - this.processName = null; - this.defaultTracker = null; - this.externalDeviceId = null; - this.attributionCallbackName = null; - this.attributionCallbackFunction = null; - this.deviceKnown = null; - this.needsCost = null; - this.eventSuccessCallbackName = null; - this.eventSuccessCallbackFunction = null; - this.eventFailureCallbackName = null; - this.eventFailureCallbackFunction = null; - this.sessionSuccessCallbackName = null; - this.sessionSuccessCallbackFunction = null; - this.sessionFailureCallbackName = null; - this.sessionFailureCallbackFunction = null; - this.openDeferredDeeplink = null; - this.deferredDeeplinkCallbackName = null; - this.deferredDeeplinkCallbackFunction = null; - this.delayStart = null; - this.userAgent = null; - this.secretId = null; - this.info1 = null; - this.info2 = null; - this.info3 = null; - this.info4 = null; - this.fbPixelDefaultEventToken = null; - this.fbPixelMapping = []; - this.urlStrategy = null; - this.preinstallTrackingEnabled = null; - this.preinstallFilePath = null; -} - -AdjustConfig.EnvironmentSandbox = 'sandbox'; -AdjustConfig.EnvironmentProduction = 'production'; - -AdjustConfig.UrlStrategyIndia = "url_strategy_india"; -AdjustConfig.UrlStrategyChina = "url_strategy_china"; -AdjustConfig.DataResidencyEU = "data_residency_eu"; -AdjustConfig.DataResidencyTR = "data_residency_tr"; -AdjustConfig.DataResidencyUS = "data_residency_us"; - -AdjustConfig.LogLevelVerbose = 'VERBOSE', - AdjustConfig.LogLevelDebug = 'DEBUG', - AdjustConfig.LogLevelInfo = 'INFO', - AdjustConfig.LogLevelWarn = 'WARN', - AdjustConfig.LogLevelError = 'ERROR', - AdjustConfig.LogLevelAssert = 'ASSERT', - AdjustConfig.LogLevelSuppress = 'SUPPRESS', - - AdjustConfig.prototype.getBridge = function () { - return this.bridge; - }; - -AdjustConfig.prototype.setEventBufferingEnabled = function (isEnabled) { - this.eventBufferingEnabled = isEnabled; -}; - -AdjustConfig.prototype.setSendInBackground = function (isEnabled) { - this.sendInBackground = isEnabled; -}; - -AdjustConfig.prototype.setLogLevel = function (logLevel) { - this.logLevel = logLevel; -}; - -AdjustConfig.prototype.getSdkPrefix = function () { - return this.sdkPrefix; -}; - -AdjustConfig.prototype.setSdkPrefix = function (sdkPrefix) { - this.sdkPrefix = sdkPrefix; -}; - -AdjustConfig.prototype.setProcessName = function (processName) { - this.processName = processName; -}; - -AdjustConfig.prototype.setDefaultTracker = function (defaultTracker) { - this.defaultTracker = defaultTracker; -}; - -AdjustConfig.prototype.setExternalDeviceId = function (externalDeviceId) { - this.externalDeviceId = externalDeviceId; -}; - -AdjustConfig.prototype.setAttributionCallback = function (callback) { - if (typeof callback === 'string' || callback instanceof String) { - this.attributionCallbackName = callback; - } else { - this.attributionCallbackName = 'Adjust.getConfig().adjust_attributionCallback'; - this.attributionCallbackFunction = callback; - } -}; - -AdjustConfig.prototype.adjust_attributionCallback = function (attribution) { - if (this.attributionCallbackFunction) { - this.attributionCallbackFunction(attribution); - } -}; - -AdjustConfig.prototype.setDeviceKnown = function (deviceKnown) { - this.deviceKnown = deviceKnown; -}; - -AdjustConfig.prototype.setNeedsCost = function (needsCost) { - this.needsCost = needsCost; -}; - -AdjustConfig.prototype.setEventSuccessCallback = function (callback) { - if (typeof callback === 'string' || callback instanceof String) { - this.eventSuccessCallbackName = callback; - } else { - this.eventSuccessCallbackName = 'Adjust.getConfig().adjust_eventSuccessCallback'; - this.eventSuccessCallbackFunction = callback; - } -}; - -AdjustConfig.prototype.adjust_eventSuccessCallback = function (eventSuccess) { - if (this.eventSuccessCallbackFunction) { - this.eventSuccessCallbackFunction(eventSuccess); - } -}; - -AdjustConfig.prototype.setEventFailureCallback = function (callback) { - if (typeof callback === 'string' || callback instanceof String) { - this.eventFailureCallbackName = callback; - } else { - this.eventFailureCallbackName = 'Adjust.getConfig().adjust_eventFailureCallback'; - this.eventFailureCallbackFunction = callback; - } -}; - -AdjustConfig.prototype.adjust_eventFailureCallback = function (eventFailure) { - if (this.eventFailureCallbackFunction) { - this.eventFailureCallbackFunction(eventFailure); - } -}; - -AdjustConfig.prototype.setSessionSuccessCallback = function (callback) { - if (typeof callback === 'string' || callback instanceof String) { - this.sessionSuccessCallbackName = callback; - } else { - this.sessionSuccessCallbackName = 'Adjust.getConfig().adjust_sessionSuccessCallback'; - this.sessionSuccessCallbackFunction = callback; - } -}; - -AdjustConfig.prototype.adjust_sessionSuccessCallback = function (sessionSuccess) { - if (this.sessionSuccessCallbackFunction) { - this.sessionSuccessCallbackFunction(sessionSuccess); - } -}; - -AdjustConfig.prototype.setSessionFailureCallback = function (callback) { - if (typeof callback === 'string' || callback instanceof String) { - this.sessionFailureCallbackName = callback; - } else { - this.sessionFailureCallbackName = 'Adjust.getConfig().adjust_sessionFailureCallback'; - this.sessionFailureCallbackFunction = callback; - } -}; - -AdjustConfig.prototype.adjust_sessionFailureCallback = function (sessionFailure) { - if (this.sessionFailureCallbackFunction) { - this.sessionFailureCallbackFunction(sessionFailure); - } -}; - -AdjustConfig.prototype.setOpenDeferredDeeplink = function (shouldOpen) { - this.openDeferredDeeplink = shouldOpen; -}; - -AdjustConfig.prototype.setDeferredDeeplinkCallback = function (callback) { - if (typeof callback === 'string' || callback instanceof String) { - this.deferredDeeplinkCallbackName = callback; - } else { - this.deferredDeeplinkCallbackName = 'Adjust.getConfig().adjust_deferredDeeplinkCallback'; - this.deferredDeeplinkCallbackFunction = callback; - } -}; - -AdjustConfig.prototype.adjust_deferredDeeplinkCallback = function (deeplink) { - if (this.deferredDeeplinkCallbackFunction) { - this.deferredDeeplinkCallbackFunction(deeplink); - } -}; - -AdjustConfig.prototype.setDelayStart = function (delayStart) { - this.delayStart = delayStart; -}; - -AdjustConfig.prototype.setUserAgent = function (userAgent) { - this.userAgent = userAgent; -}; - -AdjustConfig.prototype.setAppSecret = function (secretId, info1, info2, info3, info4) { - this.secretId = secretId; - this.info1 = info1; - this.info2 = info2; - this.info3 = info3; - this.info4 = info4; -}; - -AdjustConfig.prototype.setReadMobileEquipmentIdentity = function (readMobileEquipmentIdentity) { }; - -AdjustConfig.prototype.setFbPixelDefaultEventToken = function (fbPixelDefaultEventToken) { - this.fbPixelDefaultEventToken = fbPixelDefaultEventToken; -}; - -AdjustConfig.prototype.addFbPixelMapping = function (fbEventNameKey, adjEventTokenValue) { - this.fbPixelMapping.push(fbEventNameKey); - this.fbPixelMapping.push(adjEventTokenValue); -}; - -AdjustConfig.prototype.setUrlStrategy = function (urlStrategy) { - this.urlStrategy = urlStrategy; -}; - -AdjustConfig.prototype.setPreinstallTrackingEnabled = function (preinstallTrackingEnabled) { - this.preinstallTrackingEnabled = preinstallTrackingEnabled; -}; - -AdjustConfig.prototype.setPreinstallFilePath = function (preinstallFilePath) { - this.preinstallFilePath = preinstallFilePath; -}; diff --git a/android-bridge/adjust_event.js b/android-bridge/adjust_event.js deleted file mode 100644 index 576a1ee..0000000 --- a/android-bridge/adjust_event.js +++ /dev/null @@ -1,32 +0,0 @@ -function AdjustEvent(eventToken) { - this.eventToken = eventToken; - this.revenue = null; - this.currency = null; - this.callbackParameters = []; - this.partnerParameters = []; - this.orderId = null; - this.callbackId = null; -} - -AdjustEvent.prototype.setRevenue = function(revenue, currency) { - this.revenue = revenue; - this.currency = currency; -}; - -AdjustEvent.prototype.addCallbackParameter = function(key, value) { - this.callbackParameters.push(key); - this.callbackParameters.push(value); -}; - -AdjustEvent.prototype.addPartnerParameter = function(key, value) { - this.partnerParameters.push(key); - this.partnerParameters.push(value); -}; - -AdjustEvent.prototype.setOrderId = function(orderId) { - this.orderId = orderId; -}; - -AdjustEvent.prototype.setCallbackId = function(callbackId) { - this.callbackId = callbackId; -}; diff --git a/android-bridge/adjust_third_party_sharing.js b/android-bridge/adjust_third_party_sharing.js deleted file mode 100644 index 7e71ba3..0000000 --- a/android-bridge/adjust_third_party_sharing.js +++ /dev/null @@ -1,10 +0,0 @@ -function AdjustThirdPartySharing(isEnabled) { - this.isEnabled = isEnabled; - this.granularOptions = []; -} - -AdjustThirdPartySharing.prototype.addGranularOption = function(partnerName, key, value) { - this.granularOptions.push(partnerName); - this.granularOptions.push(key); - this.granularOptions.push(value); -}; \ No newline at end of file diff --git a/index.html b/index.html deleted file mode 100644 index 833980e..0000000 --- a/index.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - - - - - - - - - -

Adjust Web View Demo

- - - -
-
- - - - - From 1ef3a0e0e4c1183cd7cb7a45be2b6fdb0bf02d28 Mon Sep 17 00:00:00 2001 From: Yara Matkova Date: Fri, 13 May 2022 16:47:39 +0200 Subject: [PATCH 05/44] feat: send deduplication_id within event package --- src/sdk/event.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sdk/event.js b/src/sdk/event.js index 661b0d4..b214c0a 100644 --- a/src/sdk/event.js +++ b/src/sdk/event.js @@ -70,6 +70,7 @@ function _prepareParams (params: EventParamsT, {callbackParams, partnerParams}: const globalParams = {} const baseParams = { eventToken: params.eventToken, + deduplicationId: params.deduplicationId, ..._getRevenue(params.revenue, params.currency) } From d8d4945a7acfed8c159e73b9b187b6e3a8e8bfe3 Mon Sep 17 00:00:00 2001 From: Yara Matkova Date: Fri, 13 May 2022 17:04:20 +0200 Subject: [PATCH 06/44] test: add deduplicationId to event package --- src/sdk/__tests__/event.spec.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/sdk/__tests__/event.spec.js b/src/sdk/__tests__/event.spec.js index 04ac74a..eee3d1f 100644 --- a/src/sdk/__tests__/event.spec.js +++ b/src/sdk/__tests__/event.spec.js @@ -369,7 +369,8 @@ describe('event tracking functionality', () => { url: '/event', method: 'POST', params: { - eventToken: '123abc' + eventToken: '123abc', + deduplicationId: '123-abc-456' } }) // + 2 assertions }) @@ -441,7 +442,8 @@ describe('event tracking functionality', () => { url: '/event', method: 'POST', params: { - eventToken: '123abc' + eventToken: '123abc', + deduplicationId: 'dedup-1240-abc' } }) // + 2 assertions }) @@ -520,7 +522,8 @@ describe('event tracking functionality', () => { url: '/event', method: 'POST', params: { - eventToken: '123abc' + eventToken: '123abc', + deduplicationId: 'dedup-1240-abc' } }) // + 2 assertions }) @@ -573,7 +576,8 @@ describe('event tracking functionality', () => { url: '/event', method: 'POST', params: { - eventToken: '123abc' + eventToken: '123abc', + deduplicationId: 'dedup-1240-abc' } }) // + 2 assertions }) From 3f5eadb33e4d9eb90dea5facddddcdc9f90126ff Mon Sep 17 00:00:00 2001 From: Yara Matkova Date: Tue, 28 Jun 2022 14:58:35 +0200 Subject: [PATCH 07/44] build: update dependencies --- .babelrc | 4 +- .eslintrc | 2 +- dist/adjust-latest.js | 3285 +- dist/adjust-latest.min.js | 10 +- dist/adjust-latest.min.js.LICENSE.txt | 7 + dist/sdk.snippet.min.js | 2 +- package-lock.json | 37941 ++++++++++-------------- package.json | 88 +- src/index.html | 32 +- webpack.demo.config.js | 30 +- webpack.sdk.config.js | 14 +- 11 files changed, 16507 insertions(+), 24908 deletions(-) create mode 100644 dist/adjust-latest.min.js.LICENSE.txt diff --git a/.babelrc b/.babelrc index af5c0ba..dbd8611 100644 --- a/.babelrc +++ b/.babelrc @@ -9,12 +9,12 @@ "es6-promise", "@babel/plugin-transform-flow-comments", ["@babel/plugin-transform-runtime", { - "version": "7.6.2" + "version": "7.18.6" }] ], "env": { "test": { - "plugins": ["transform-es2015-modules-commonjs"] + "plugins": ["@babel/plugin-transform-modules-commonjs"] } }, "overrides": [ diff --git a/.eslintrc b/.eslintrc index caa4858..1f8af7e 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,7 +4,7 @@ "node": true, "jest": true }, - "parser": "babel-eslint", + "parser": "@babel/eslint-parser", "parserOptions": { "ecmaVersion": 6, "sourceType": "module" diff --git a/dist/adjust-latest.js b/dist/adjust-latest.js index aa7f354..a37e50a 100644 --- a/dist/adjust-latest.js +++ b/dist/adjust-latest.js @@ -7,186 +7,214 @@ exports["Adjust"] = factory(); else root["Adjust"] = factory(); -})(window, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 25); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { +})(self, () => { +return /******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ -var defineProperty = __webpack_require__(1); +/***/ 841: +/***/ ((module, __webpack_exports__, __webpack_require__) => { -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(645); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(667); +/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__); +// Imports + + + +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(529), __webpack_require__.b); +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ".adjust-smart-banner__AEqYlWgPonspKfseFq2N{height:76px}@media(min-width: 428px){.adjust-smart-banner__AEqYlWgPonspKfseFq2N{height:0}}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq{position:fixed;left:0;right:0;z-index:10000000}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq.adjust-smart-banner__jOV7BvlxDT7ATfbLPh3j{top:0}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq.adjust-smart-banner__XmomYv1VVQYz0lEtn9Q2{bottom:0}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK{margin:0 auto;max-width:428px;background:#fff}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK .adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI{display:flex;align-items:center;padding:10px 8px 10px 4px}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK .adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI .adjust-smart-banner__VFuxsD_KzqNSxQecFmao{width:32px;height:32px;border:none;background:url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");background-repeat:no-repeat;background-position:center center;background-size:8px 8px,auto;cursor:pointer}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK .adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI .adjust-smart-banner__hqvH8Y5fwbegVLKnoYv_{width:56px;height:56px;overflow:hidden;background-color:#6e7492;border-radius:8px}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK .adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI .adjust-smart-banner__hqvH8Y5fwbegVLKnoYv_ .adjust-smart-banner__Ll9XMTDiX4Drgeydp0Oc{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#353a52;font-weight:bold;font-size:23px;font-family:ArialMt,Arial,sans-serif;line-height:32px;background-color:#e0e2ec}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK .adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI .adjust-smart-banner__hqvH8Y5fwbegVLKnoYv_ .adjust-smart-banner__VYRfEif2Ph2_984rXQy8{width:100%}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK .adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI .adjust-smart-banner__I8xX0C5dUcR53pY0aEys{flex:1 1 0%;min-height:0;min-width:0;margin:0 12px}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK .adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI .adjust-smart-banner__JJLdp2l7YvnsUXudojWA{overflow:hidden;text-overflow:ellipsis}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK .adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI h4{margin:5px 0 8px;color:#353a52;font-family:Arial-BoldMT,ArialMt,Arial,sans-serif;font-size:12px;font-weight:bold;line-height:16px;white-space:nowrap}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK .adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI p{margin:8px 0 7px;color:#353a52;font-family:ArialMt,Arial,sans-serif;font-size:9px;line-height:11px;max-height:22px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.adjust-smart-banner__NVk5vwju_4kdaKzGWJPq .adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK .adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI .adjust-smart-banner__risKVvV3T0vjKiSTR9l0{color:#6e7492;background:#f9fafc;border:1px solid #cdd0e0;border-radius:4px;border-color:#6e7492;box-shadow:inset 0px -1px 0px 0px #e0e2ec;padding:4px 6.5px;display:inline-block;vertical-align:middle;text-align:center;font-family:ArialMt,Arial,sans-serif;font-size:12px;font-weight:500;line-height:16px;cursor:pointer;text-decoration:none}", ""]); +// Exports +___CSS_LOADER_EXPORT___.locals = { + "bannerContainer": "adjust-smart-banner__AEqYlWgPonspKfseFq2N", + "banner": "adjust-smart-banner__NVk5vwju_4kdaKzGWJPq", + "stickyToTop": "adjust-smart-banner__jOV7BvlxDT7ATfbLPh3j", + "stickyToBottom": "adjust-smart-banner__XmomYv1VVQYz0lEtn9Q2", + "bannerBody": "adjust-smart-banner__eXKzWnRDn4RWUiSSeVYK", + "content": "adjust-smart-banner__r3JnN_RNhpzArrmKQ8jI", + "dismiss": "adjust-smart-banner__VFuxsD_KzqNSxQecFmao", + "appIcon": "adjust-smart-banner__hqvH8Y5fwbegVLKnoYv_", + "placeholder": "adjust-smart-banner__Ll9XMTDiX4Drgeydp0Oc", + "image": "adjust-smart-banner__VYRfEif2Ph2_984rXQy8", + "textContainer": "adjust-smart-banner__I8xX0C5dUcR53pY0aEys", + "bannerText": "adjust-smart-banner__JJLdp2l7YvnsUXudojWA", + "action": "adjust-smart-banner__risKVvV3T0vjKiSTR9l0" +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } +/***/ }), - keys.push.apply(keys, symbols); - } +/***/ 645: +/***/ ((module) => { - return keys; -} +"use strict"; -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +module.exports = function (cssWithMappingToString) { + var list = []; // return the list of modules as css string + + list.toString = function toString() { + return this.map(function (item) { + var content = ""; + var needLayer = typeof item[5] !== "undefined"; + + if (item[4]) { + content += "@supports (".concat(item[4], ") {"); + } + + if (item[2]) { + content += "@media ".concat(item[2], " {"); + } + + if (needLayer) { + content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); + } + + content += cssWithMappingToString(item); + + if (needLayer) { + content += "}"; + } + + if (item[2]) { + content += "}"; + } + + if (item[4]) { + content += "}"; + } + + return content; + }).join(""); + }; // import a list of modules into the list + + + list.i = function i(modules, media, dedupe, supports, layer) { + if (typeof modules === "string") { + modules = [[null, modules, undefined]]; } - } - return target; -} + var alreadyImportedModules = {}; -module.exports = _objectSpread2; -module.exports["default"] = module.exports, module.exports.__esModule = true; + if (dedupe) { + for (var k = 0; k < this.length; k++) { + var id = this[k][0]; + + if (id != null) { + alreadyImportedModules[id] = true; + } + } + } + + for (var _k = 0; _k < modules.length; _k++) { + var item = [].concat(modules[_k]); + + if (dedupe && alreadyImportedModules[item[0]]) { + continue; + } + + if (typeof layer !== "undefined") { + if (typeof item[5] === "undefined") { + item[5] = layer; + } else { + item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); + item[5] = layer; + } + } + + if (media) { + if (!item[2]) { + item[2] = media; + } else { + item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); + item[2] = media; + } + } + + if (supports) { + if (!item[4]) { + item[4] = "".concat(supports); + } else { + item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); + item[4] = supports; + } + } + + list.push(item); + } + }; + + return list; +}; /***/ }), -/* 1 */ -/***/ (function(module, exports) { -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; +/***/ 667: +/***/ ((module) => { + +"use strict"; + + +module.exports = function (url, options) { + if (!options) { + options = {}; } - return obj; -} + if (!url) { + return url; + } -module.exports = _defineProperty; -module.exports["default"] = module.exports, module.exports.__esModule = true; + url = String(url.__esModule ? url.default : url); // If url is already wrapped in quotes, remove them -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { + if (/^['"].*['"]$/.test(url)) { + url = url.slice(1, -1); + } -var arrayWithHoles = __webpack_require__(15); + if (options.hash) { + url += options.hash; + } // Should url be wrapped? + // See https://drafts.csswg.org/css-values-3/#urls -var iterableToArrayLimit = __webpack_require__(16); -var unsupportedIterableToArray = __webpack_require__(8); + if (/["'() \t\n]|(%20)/.test(url) || options.needQuotes) { + return "\"".concat(url.replace(/"/g, '\\"').replace(/\n/g, "\\n"), "\""); + } -var nonIterableRest = __webpack_require__(17); + return url; +}; + +/***/ }), + +/***/ 81: +/***/ ((module) => { + +"use strict"; -function _slicedToArray(arr, i) { - return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); -} -module.exports = _slicedToArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; +module.exports = function (i) { + return i[1]; +}; /***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(process, global) {/*! +/***/ 702: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/*! * @overview es6-promise - a tiny implementation of Promises/A+. * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) * @license Licensed under MIT license @@ -196,7 +224,7 @@ module.exports["default"] = module.exports, module.exports.__esModule = true; (function (global, factory) { true ? module.exports = factory() : - undefined; + 0; }(this, (function () { 'use strict'; function objectOrFunction(x) { @@ -1318,8 +1346,8 @@ Promise$1._asap = asap; function polyfill() { var local = void 0; - if (typeof global !== 'undefined') { - local = global; + if (typeof __webpack_require__.g !== 'undefined') { + local = __webpack_require__.g; } else if (typeof self !== 'undefined') { local = self; } else { @@ -1360,1144 +1388,591 @@ return Promise$1; //# sourceMappingURL=es6-promise.map -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(13), __webpack_require__(14))) /***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - - -var content = __webpack_require__(21); - -if(typeof content === 'string') content = [[module.i, content, '']]; -var transform; -var insertInto; +/***/ 379: +/***/ ((module) => { +"use strict"; -var options = {"hmr":true} - -options.transform = transform -options.insertInto = undefined; - -var update = __webpack_require__(23)(content, options); - -if(content.locals) module.exports = content.locals; - -if(false) {} +var stylesInDOM = []; -/***/ }), -/* 5 */ -/***/ (function(module, exports) { +function getIndexByIdentifier(identifier) { + var result = -1; -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); + for (var i = 0; i < stylesInDOM.length; i++) { + if (stylesInDOM[i].identifier === identifier) { + result = i; + break; + } } + + return result; } -module.exports = _classCallCheck; -module.exports["default"] = module.exports, module.exports.__esModule = true; +function modulesToDom(list, options) { + var idCountMap = {}; + var identifiers = []; + + for (var i = 0; i < list.length; i++) { + var item = list[i]; + var id = options.base ? item[0] + options.base : item[0]; + var count = idCountMap[id] || 0; + var identifier = "".concat(id, " ").concat(count); + idCountMap[id] = count + 1; + var indexByIdentifier = getIndexByIdentifier(identifier); + var obj = { + css: item[1], + media: item[2], + sourceMap: item[3], + supports: item[4], + layer: item[5] + }; -/***/ }), -/* 6 */ -/***/ (function(module, exports) { + if (indexByIdentifier !== -1) { + stylesInDOM[indexByIdentifier].references++; + stylesInDOM[indexByIdentifier].updater(obj); + } else { + var updater = addElementStyle(obj, options); + options.byIndex = i; + stylesInDOM.splice(i, 0, { + identifier: identifier, + updater: updater, + references: 1 + }); + } -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); + identifiers.push(identifier); } -} -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; + return identifiers; } -module.exports = _createClass; -module.exports["default"] = module.exports, module.exports.__esModule = true; - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -var arrayWithoutHoles = __webpack_require__(18); +function addElementStyle(obj, options) { + var api = options.domAPI(options); + api.update(obj); -var iterableToArray = __webpack_require__(19); - -var unsupportedIterableToArray = __webpack_require__(8); + var updater = function updater(newObj) { + if (newObj) { + if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) { + return; + } -var nonIterableSpread = __webpack_require__(20); + api.update(obj = newObj); + } else { + api.remove(); + } + }; -function _toConsumableArray(arr) { - return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); + return updater; } -module.exports = _toConsumableArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -var arrayLikeToArray = __webpack_require__(9); +module.exports = function (list, options) { + options = options || {}; + list = list || []; + var lastIdentifiers = modulesToDom(list, options); + return function update(newList) { + newList = newList || []; -function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); -} + for (var i = 0; i < lastIdentifiers.length; i++) { + var identifier = lastIdentifiers[i]; + var index = getIndexByIdentifier(identifier); + stylesInDOM[index].references--; + } -module.exports = _unsupportedIterableToArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; + var newLastIdentifiers = modulesToDom(newList, options); -/***/ }), -/* 9 */ -/***/ (function(module, exports) { + for (var _i = 0; _i < lastIdentifiers.length; _i++) { + var _identifier = lastIdentifiers[_i]; -function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; + var _index = getIndexByIdentifier(_identifier); - for (var i = 0, arr2 = new Array(len); i < len; i++) { - arr2[i] = arr[i]; - } + if (stylesInDOM[_index].references === 0) { + stylesInDOM[_index].updater(); - return arr2; -} + stylesInDOM.splice(_index, 1); + } + } -module.exports = _arrayLikeToArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; + lastIdentifiers = newLastIdentifiers; + }; +}; /***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -var objectWithoutPropertiesLoose = __webpack_require__(12); - -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = objectWithoutPropertiesLoose(source, excluded); - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - return target; -} +/***/ 569: +/***/ ((module) => { -module.exports = _objectWithoutProperties; -module.exports["default"] = module.exports, module.exports.__esModule = true; +"use strict"; -/***/ }), -/* 11 */ -/***/ (function(module, exports) { -function _typeof(obj) { - "@babel/helpers - typeof"; +var memo = {}; +/* istanbul ignore next */ - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - module.exports = _typeof = function _typeof(obj) { - return typeof obj; - }; +function getTarget(target) { + if (typeof memo[target] === "undefined") { + var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself - module.exports["default"] = module.exports, module.exports.__esModule = true; - } else { - module.exports = _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; + if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { + try { + // This will throw an exception if access to iframe is blocked + // due to cross-origin restrictions + styleTarget = styleTarget.contentDocument.head; + } catch (e) { + // istanbul ignore next + styleTarget = null; + } + } - module.exports["default"] = module.exports, module.exports.__esModule = true; + memo[target] = styleTarget; } - return _typeof(obj); + return memo[target]; } +/* istanbul ignore next */ -module.exports = _typeof; -module.exports["default"] = module.exports, module.exports.__esModule = true; - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; +function insertBySelector(insert, style) { + var target = getTarget(insert); - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; + if (!target) { + throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); } - return target; + target.appendChild(style); } -module.exports = _objectWithoutPropertiesLoose; -module.exports["default"] = module.exports, module.exports.__esModule = true; +module.exports = insertBySelector; /***/ }), -/* 13 */ -/***/ (function(module, exports) { -// shim for using process in browser -var process = module.exports = {}; +/***/ 216: +/***/ ((module) => { -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } +"use strict"; +/* istanbul ignore next */ +function insertStyleElement(options) { + var element = document.createElement("style"); + options.setAttributes(element, options.attributes); + options.insert(element, options.options); + return element; } -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } +module.exports = insertStyleElement; +/***/ }), -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; +/***/ 565: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} +"use strict"; -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; +/* istanbul ignore next */ +function setAttributesWithoutAttributes(styleElement) { + var nonce = true ? __webpack_require__.nc : 0; -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; + if (nonce) { + styleElement.setAttribute("nonce", nonce); + } } -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; +module.exports = setAttributesWithoutAttributes; /***/ }), -/* 14 */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); -try { - // This works if eval is allowed (see CSP) - g = g || new Function("return this")(); -} catch (e) { - // This works if the window reference is available - if (typeof window === "object") g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} +/***/ 795: +/***/ ((module) => { -module.exports = g; +"use strict"; -/***/ }), -/* 15 */ -/***/ (function(module, exports) { +/* istanbul ignore next */ +function apply(styleElement, options, obj) { + var css = ""; -function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; -} - -module.exports = _arrayWithHoles; -module.exports["default"] = module.exports, module.exports.__esModule = true; - -/***/ }), -/* 16 */ -/***/ (function(module, exports) { + if (obj.supports) { + css += "@supports (".concat(obj.supports, ") {"); + } -function _iterableToArrayLimit(arr, i) { - var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (obj.media) { + css += "@media ".concat(obj.media, " {"); + } - if (_i == null) return; - var _arr = []; - var _n = true; - var _d = false; + var needLayer = typeof obj.layer !== "undefined"; - var _s, _e; + if (needLayer) { + css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {"); + } - try { - for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); + css += obj.css; - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) _i["return"](); - } finally { - if (_d) throw _e; - } + if (needLayer) { + css += "}"; } - return _arr; -} - -module.exports = _iterableToArrayLimit; -module.exports["default"] = module.exports, module.exports.__esModule = true; + if (obj.media) { + css += "}"; + } -/***/ }), -/* 17 */ -/***/ (function(module, exports) { + if (obj.supports) { + css += "}"; + } -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} + var sourceMap = obj.sourceMap; -module.exports = _nonIterableRest; -module.exports["default"] = module.exports, module.exports.__esModule = true; + if (sourceMap && typeof btoa !== "undefined") { + css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); + } // For old IE -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { + /* istanbul ignore if */ -var arrayLikeToArray = __webpack_require__(9); -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return arrayLikeToArray(arr); + options.styleTagTransform(css, styleElement, options.options); } -module.exports = _arrayWithoutHoles; -module.exports["default"] = module.exports, module.exports.__esModule = true; - -/***/ }), -/* 19 */ -/***/ (function(module, exports) { +function removeStyleElement(styleElement) { + // istanbul ignore if + if (styleElement.parentNode === null) { + return false; + } -function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + styleElement.parentNode.removeChild(styleElement); } +/* istanbul ignore next */ -module.exports = _iterableToArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; - -/***/ }), -/* 20 */ -/***/ (function(module, exports) { -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +function domAPI(options) { + var styleElement = options.insertStyleElement(options); + return { + update: function update(obj) { + apply(styleElement, options, obj); + }, + remove: function remove() { + removeStyleElement(styleElement); + } + }; } -module.exports = _nonIterableSpread; -module.exports["default"] = module.exports, module.exports.__esModule = true; +module.exports = domAPI; /***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -exports = module.exports = __webpack_require__(22)(false); -// imports - - -// module -exports.push([module.i, ".adjust-smart-banner__1Xb2YvQsm_ZuqGpC3GYV1K{height:76px}@media (min-width: 428px){.adjust-smart-banner__1Xb2YvQsm_ZuqGpC3GYV1K{height:0}}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH{position:fixed;left:0;right:0;z-index:10000000}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH.adjust-smart-banner__1gDv13AgIJ63OmoMUWN6vd{top:0}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH.adjust-smart-banner__2Xpm01sHnZNYOOkNk05cAc{bottom:0}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5{margin:0 auto;max-width:428px;background:white}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5 .adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT{display:flex;align-items:center;padding:10px 8px 10px 4px}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5 .adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT .adjust-smart-banner__3PQ7z78EskytjOkrU199hE{width:32px;height:32px;border:none;background:url(\"data:image/svg+xml;utf8, \");background-repeat:no-repeat;background-position:center center;background-size:8px 8px, auto;cursor:pointer}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5 .adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT .adjust-smart-banner__L_BSzs7rJajVPX4zdt2R6{width:56px;height:56px;overflow:hidden;background-color:#6e7492;border-radius:8px}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5 .adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT .adjust-smart-banner__L_BSzs7rJajVPX4zdt2R6 .adjust-smart-banner__3Yj45mdOZKIOH2d6Z2UXXa{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#353a52;font-weight:bold;font-size:23px;font-family:ArialMt,Arial,sans-serif;line-height:32px;background-color:#e0e2ec}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5 .adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT .adjust-smart-banner__L_BSzs7rJajVPX4zdt2R6 .adjust-smart-banner__4hg0kzTWzWiGjzCDqbktp{width:100%}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5 .adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT .adjust-smart-banner__3mbKdOA0SmqrfOLvHomXyc{flex:1 1 0%;min-height:0;min-width:0;margin:0 12px}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5 .adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT .adjust-smart-banner__3DSKm9idx4dze89DWsCMXr{overflow:hidden;text-overflow:ellipsis}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5 .adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT h4{margin:5px 0 8px;color:#353a52;font-family:Arial-BoldMT,ArialMt,Arial,sans-serif;font-size:12px;font-weight:bold;line-height:16px;white-space:nowrap}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5 .adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT p{margin:8px 0 7px;color:#353a52;font-family:ArialMt,Arial,sans-serif;font-size:9px;line-height:11px;max-height:22px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH .adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5 .adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT .adjust-smart-banner__3_w6WNex3gOuKV8gztVNoI{color:#6e7492;background:#f9fafc;border:1px solid #cdd0e0;border-radius:4px;border-color:#6e7492;box-shadow:inset 0px -1px 0px 0px #e0e2ec;padding:4px 6.5px;display:inline-block;vertical-align:middle;text-align:center;font-family:ArialMt,Arial,sans-serif;font-size:12px;font-weight:500;line-height:16px;cursor:pointer;text-decoration:none}\n", ""]); - -// exports -exports.locals = { - "bannerContainer": "adjust-smart-banner__1Xb2YvQsm_ZuqGpC3GYV1K", - "banner": "adjust-smart-banner__Dw5N6VeDUP14gIEdMH7SH", - "stickyToTop": "adjust-smart-banner__1gDv13AgIJ63OmoMUWN6vd", - "stickyToBottom": "adjust-smart-banner__2Xpm01sHnZNYOOkNk05cAc", - "bannerBody": "adjust-smart-banner__YV2trFakzl9_mm1H-9Ht5", - "content": "adjust-smart-banner__31MvUOHjvsAEpS_14bUpGT", - "dismiss": "adjust-smart-banner__3PQ7z78EskytjOkrU199hE", - "appIcon": "adjust-smart-banner__L_BSzs7rJajVPX4zdt2R6", - "placeholder": "adjust-smart-banner__3Yj45mdOZKIOH2d6Z2UXXa", - "image": "adjust-smart-banner__4hg0kzTWzWiGjzCDqbktp", - "textContainer": "adjust-smart-banner__3mbKdOA0SmqrfOLvHomXyc", - "bannerText": "adjust-smart-banner__3DSKm9idx4dze89DWsCMXr", - "action": "adjust-smart-banner__3_w6WNex3gOuKV8gztVNoI" -}; -/***/ }), -/* 22 */ -/***/ (function(module, exports) { +/***/ 589: +/***/ ((module) => { -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -module.exports = function(useSourceMap) { - var list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map(function (item) { - var content = cssWithMappingToString(item, useSourceMap); - if(item[2]) { - return "@media " + item[2] + "{" + content + "}"; - } else { - return content; - } - }).join(""); - }; - - // import a list of modules into the list - list.i = function(modules, mediaQuery) { - if(typeof modules === "string") - modules = [[null, modules, ""]]; - var alreadyImportedModules = {}; - for(var i = 0; i < this.length; i++) { - var id = this[i][0]; - if(typeof id === "number") - alreadyImportedModules[id] = true; - } - for(i = 0; i < modules.length; i++) { - var item = modules[i]; - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { - if(mediaQuery && !item[2]) { - item[2] = mediaQuery; - } else if(mediaQuery) { - item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; - } - list.push(item); - } - } - }; - return list; -}; - -function cssWithMappingToString(item, useSourceMap) { - var content = item[1] || ''; - var cssMapping = item[3]; - if (!cssMapping) { - return content; - } - - if (useSourceMap && typeof btoa === 'function') { - var sourceMapping = toComment(cssMapping); - var sourceURLs = cssMapping.sources.map(function (source) { - return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' - }); - - return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); - } +"use strict"; - return [content].join('\n'); -} -// Adapted from convert-source-map (MIT) -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; +/* istanbul ignore next */ +function styleTagTransform(css, styleElement) { + if (styleElement.styleSheet) { + styleElement.styleSheet.cssText = css; + } else { + while (styleElement.firstChild) { + styleElement.removeChild(styleElement.firstChild); + } - return '/*# ' + data + ' */'; + styleElement.appendChild(document.createTextNode(css)); + } } +module.exports = styleTagTransform; /***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ +/***/ 529: +/***/ ((module) => { -var stylesInDom = {}; +"use strict"; +module.exports = "data:image/svg+xml;utf8, "; -var memoize = function (fn) { - var memo; +/***/ }) - return function () { - if (typeof memo === "undefined") memo = fn.apply(this, arguments); - return memo; - }; -}; +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ id: moduleId, +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ (() => { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ __webpack_require__.b = document.baseURI || self.location.href; +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ 91: 0, +/******/ 57: 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ // no on chunks loaded +/******/ +/******/ // no jsonp function +/******/ })(); +/******/ +/******/ /* webpack/runtime/nonce */ +/******/ (() => { +/******/ __webpack_require__.nc = undefined; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; -var isOldIE = memoize(function () { - // Test for IE <= 9 as proposed by Browserhacks - // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 - // Tests for existence of standard globals is to allow style-loader - // to operate correctly into non-standard environments - // @see https://github.com/webpack-contrib/style-loader/issues/177 - return window && document && document.all && !window.atob; +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": () => (/* binding */ main) }); -var getTarget = function (target, parent) { - if (parent){ - return parent.querySelector(target); +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; } - return document.querySelector(target); -}; - -var getElement = (function (fn) { - var memo = {}; - - return function(target, parent) { - // If passing function in options, then use it for resolve "head" element. - // Useful for Shadow Root style i.e - // { - // insertInto: function () { return document.querySelector("#foo").shadowRoot } - // } - if (typeof target === 'function') { - return target(); - } - if (typeof memo[target] === "undefined") { - var styleTarget = getTarget.call(this, target, parent); - // Special case to return head of iframe instead of iframe itself - if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { - try { - // This will throw an exception if access to iframe is blocked - // due to cross-origin restrictions - styleTarget = styleTarget.contentDocument.head; - } catch(e) { - styleTarget = null; - } - } - memo[target] = styleTarget; - } - return memo[target] - }; -})(); - -var singleton = null; -var singletonCounter = 0; -var stylesInsertedAtTop = []; - -var fixUrls = __webpack_require__(24); - -module.exports = function(list, options) { - if (typeof DEBUG !== "undefined" && DEBUG) { - if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment"); - } - - options = options || {}; - - options.attrs = typeof options.attrs === "object" ? options.attrs : {}; - - // Force single-tag solution on IE6-9, which has a hard limit on the # of