@adobe/alloy 2.19.0-beta.0 → 2.19.0-beta.10
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/libEs5/baseCode/index.js +2 -12
- package/libEs5/components/ActivityCollector/attachClickActivityCollector.js +9 -12
- package/libEs5/components/ActivityCollector/configValidators.js +1 -4
- package/libEs5/components/ActivityCollector/createGetLinkDetails.js +7 -17
- package/libEs5/components/ActivityCollector/createLinkClick.js +3 -8
- package/libEs5/components/ActivityCollector/getLinkName.js +8 -26
- package/libEs5/components/ActivityCollector/getLinkRegion.js +2 -16
- package/libEs5/components/ActivityCollector/index.js +8 -18
- package/libEs5/components/ActivityCollector/utils.js +3 -40
- package/libEs5/components/Audiences/index.js +2 -8
- package/libEs5/components/Audiences/injectProcessDestinations.js +20 -19
- package/libEs5/components/Audiences/injectProcessResponse.js +0 -5
- package/libEs5/components/Context/createComponent.js +0 -4
- package/libEs5/components/Context/implementationDetails.js +0 -5
- package/libEs5/components/Context/index.js +12 -19
- package/libEs5/components/Context/injectDevice.js +3 -20
- package/libEs5/components/Context/injectEnvironment.js +1 -8
- package/libEs5/components/Context/injectHighEntropyUserAgentHints.js +14 -21
- package/libEs5/components/Context/injectPlaceContext.js +2 -8
- package/libEs5/components/Context/injectTimestamp.js +0 -3
- package/libEs5/components/Context/injectWeb.js +0 -3
- package/libEs5/components/DataCollector/index.js +24 -45
- package/libEs5/components/DataCollector/validateApplyResponse.js +2 -5
- package/libEs5/components/DataCollector/validateUserEventOptions.js +6 -9
- package/libEs5/components/EventMerge/createComponent.js +0 -2
- package/libEs5/components/EventMerge/createEventMergeId.js +0 -3
- package/libEs5/components/EventMerge/index.js +1 -4
- package/libEs5/components/Identity/addEcidQueryToPayload.js +0 -3
- package/libEs5/components/Identity/addEcidToPayload.js +0 -3
- package/libEs5/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +0 -5
- package/libEs5/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +5 -19
- package/libEs5/components/Identity/configValidators.js +1 -2
- package/libEs5/components/Identity/constants/authState.js +1 -1
- package/libEs5/components/Identity/constants/defaultIdSyncTtlMinutes.js +0 -2
- package/libEs5/components/Identity/createComponent.js +16 -22
- package/libEs5/components/Identity/createLegacyIdentity.js +5 -19
- package/libEs5/components/Identity/getEcidFromResponse.js +0 -4
- package/libEs5/components/Identity/getIdentity/createGetIdentity.js +5 -9
- package/libEs5/components/Identity/getIdentity/createIdentityRequest.js +1 -4
- package/libEs5/components/Identity/getIdentity/createIdentityRequestPayload.js +0 -3
- package/libEs5/components/Identity/getIdentity/getIdentityOptionsValidator.js +0 -5
- package/libEs5/components/Identity/index.js +8 -29
- package/libEs5/components/Identity/injectAddLegacyEcidToPayload.js +1 -5
- package/libEs5/components/Identity/injectAddQueryStringIdentityToPayload.js +22 -28
- package/libEs5/components/Identity/injectAwaitIdentityCookie.js +7 -8
- package/libEs5/components/Identity/injectEnsureSingleIdentity.js +17 -20
- package/libEs5/components/Identity/injectHandleResponseForIdSyncs.js +0 -2
- package/libEs5/components/Identity/injectProcessIdSyncs.js +2 -7
- package/libEs5/components/Identity/injectSetDomainForInitialIdentityPayload.js +1 -4
- package/libEs5/components/Identity/visitorService/awaitVisitorOptIn.js +0 -3
- package/libEs5/components/Identity/visitorService/getVisitor.js +0 -3
- package/libEs5/components/Identity/visitorService/injectGetEcidFromVisitor.js +2 -7
- package/libEs5/components/LibraryInfo/index.js +13 -21
- package/libEs5/components/MachineLearning/index.js +1 -3
- package/libEs5/components/MachineLearning/processResponse.js +0 -2
- package/libEs5/components/Personalization/constants/eventType.js +1 -1
- package/libEs5/components/Personalization/constants/loggerMessage.js +0 -1
- package/libEs5/components/Personalization/constants/propositionEventType.js +1 -1
- package/libEs5/components/Personalization/constants/schema.js +1 -1
- package/libEs5/components/Personalization/constants/scopeType.js +7 -3
- package/libEs5/components/Personalization/constants/surface.js +1 -1
- package/libEs5/components/Personalization/createApplyPropositions.js +29 -40
- package/libEs5/components/Personalization/createClickStorage.js +22 -23
- package/libEs5/components/Personalization/createCollect.js +5 -15
- package/libEs5/components/Personalization/createComponent.js +43 -42
- package/libEs5/components/Personalization/createFetchDataHandler.js +41 -50
- package/libEs5/components/Personalization/createGetPageLocation.js +0 -2
- package/libEs5/components/Personalization/createOnClickHandler.js +9 -20
- package/libEs5/components/Personalization/createPersonalizationDetails.js +23 -35
- package/libEs5/components/Personalization/createSetTargetMigration.js +0 -5
- package/libEs5/components/Personalization/createViewCacheManager.js +13 -26
- package/libEs5/components/Personalization/createViewChangeHandler.js +3 -15
- package/libEs5/components/Personalization/dom-actions/action.js +3 -19
- package/libEs5/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +1 -13
- package/libEs5/components/Personalization/dom-actions/appendHtml.js +0 -7
- package/libEs5/components/Personalization/dom-actions/clicks/collectClicks.js +46 -37
- package/libEs5/components/Personalization/dom-actions/createPreprocess.js +0 -4
- package/libEs5/components/Personalization/{utils/isPageWideScope.js → dom-actions/createRedirect.js} +10 -9
- package/libEs5/components/Personalization/dom-actions/dom/createFragment.js +0 -4
- package/libEs5/components/Personalization/dom-actions/dom/getAttribute.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/getChildNodes.js +0 -5
- package/libEs5/components/Personalization/dom-actions/dom/getChildren.js +0 -5
- package/libEs5/components/Personalization/dom-actions/dom/getElementById.js +0 -3
- package/libEs5/components/Personalization/dom-actions/dom/getFirstChild.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/getNextSibling.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/getNonce.js +4 -10
- package/libEs5/components/Personalization/dom-actions/dom/getParent.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/helperForEq.js +1 -6
- package/libEs5/components/Personalization/dom-actions/dom/index.js +0 -14
- package/libEs5/components/Personalization/dom-actions/dom/insertAfter.js +0 -6
- package/libEs5/components/Personalization/dom-actions/dom/insertBefore.js +0 -5
- package/libEs5/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +6 -11
- package/libEs5/components/Personalization/dom-actions/dom/removeAttribute.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/selectNodesWithEq.js +16 -36
- package/libEs5/components/Personalization/dom-actions/dom/setAttribute.js +0 -2
- package/libEs5/components/Personalization/dom-actions/dom/setStyle.js +0 -4
- package/libEs5/components/Personalization/dom-actions/images.js +1 -11
- package/libEs5/components/Personalization/dom-actions/index.js +0 -1
- package/libEs5/components/Personalization/dom-actions/initDomActionsModules.js +0 -4
- package/libEs5/components/Personalization/dom-actions/insertHtmlAfter.js +0 -6
- package/libEs5/components/Personalization/dom-actions/insertHtmlBefore.js +0 -6
- package/libEs5/components/Personalization/dom-actions/prependHtml.js +4 -12
- package/libEs5/components/Personalization/dom-actions/rearrangeChildren.js +1 -6
- package/libEs5/components/Personalization/dom-actions/remapCustomCodeOffers.js +2 -8
- package/libEs5/components/Personalization/dom-actions/remapHeadOffers.js +2 -16
- package/libEs5/components/Personalization/dom-actions/replaceHtml.js +0 -4
- package/libEs5/components/Personalization/dom-actions/scripts.js +13 -35
- package/libEs5/components/Personalization/dom-actions/setAttributes.js +0 -3
- package/libEs5/components/Personalization/dom-actions/setHtml.js +1 -6
- package/libEs5/components/Personalization/dom-actions/setStyles.js +12 -8
- package/libEs5/components/Personalization/dom-actions/setText.js +0 -2
- package/libEs5/components/Personalization/dom-actions/swapImage.js +6 -9
- package/libEs5/components/Personalization/event.js +2 -10
- package/libEs5/components/Personalization/flicker/index.js +17 -31
- package/libEs5/components/Personalization/handlers/createProcessDomAction.js +23 -15
- package/libEs5/components/Personalization/handlers/createProcessHtmlContent.js +11 -10
- package/libEs5/components/Personalization/handlers/createProcessPropositions.js +8 -53
- package/libEs5/components/Personalization/handlers/createProcessRedirect.js +10 -9
- package/libEs5/components/Personalization/handlers/injectCreateProposition.js +32 -40
- package/libEs5/components/Personalization/handlers/processDefaultContent.js +0 -2
- package/libEs5/components/Personalization/index.js +25 -55
- package/libEs5/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -4
- package/libEs5/components/Personalization/utils/createAsyncArray.js +0 -3
- package/libEs5/components/Personalization/utils/isAuthoringModeEnabled.js +0 -2
- package/libEs5/components/Personalization/utils/surfaceUtils.js +1 -27
- package/libEs5/components/Personalization/validateApplyPropositionsOptions.js +2 -6
- package/libEs5/components/Privacy/computeConsentHash.js +11 -8
- package/libEs5/components/Privacy/createComponent.js +24 -26
- package/libEs5/components/Privacy/createConsentHashStore.js +14 -15
- package/libEs5/components/Privacy/createConsentRequest.js +1 -4
- package/libEs5/components/Privacy/createConsentRequestPayload.js +0 -5
- package/libEs5/components/Privacy/createStoredConsent.js +2 -6
- package/libEs5/components/Privacy/index.js +5 -15
- package/libEs5/components/Privacy/injectSendSetConsentRequest.js +7 -12
- package/libEs5/components/Privacy/parseConsentCookie.js +3 -13
- package/libEs5/components/Privacy/validateSetConsentOptions.js +0 -4
- package/libEs5/constants/apiVersion.js +0 -1
- package/libEs5/constants/browser.js +1 -1
- package/libEs5/constants/consentPurpose.js +1 -1
- package/libEs5/constants/consentStatus.js +1 -1
- package/libEs5/constants/cookieNameKey.js +1 -1
- package/libEs5/constants/cookieNamePrefix.js +0 -1
- package/libEs5/constants/coreCommands.js +1 -1
- package/libEs5/constants/debugQueryParam.js +0 -1
- package/libEs5/constants/domain.js +1 -1
- package/libEs5/constants/ecidNamespace.js +0 -1
- package/libEs5/constants/edgeBasePath.js +0 -1
- package/libEs5/constants/elementAttribute.js +1 -1
- package/libEs5/constants/highEntropyUserAgentClientHints.js +0 -1
- package/libEs5/constants/httpHeaderNames.js +1 -1
- package/libEs5/constants/httpStatusCode.js +1 -1
- package/libEs5/constants/identityMapAuthenticatedState.js +0 -1
- package/libEs5/constants/legacyCookies.js +1 -1
- package/libEs5/constants/libraryName.js +0 -1
- package/libEs5/constants/libraryVersion.js +1 -2
- package/libEs5/constants/namespace.js +0 -1
- package/libEs5/constants/pageWideScope.js +0 -1
- package/libEs5/constants/queryStringIdentityParam.js +0 -1
- package/libEs5/constants/shadowSeparator.js +0 -1
- package/libEs5/constants/tagName.js +1 -1
- package/libEs5/core/buildAndValidateConfig.js +21 -32
- package/libEs5/core/componentCreators.js +0 -12
- package/libEs5/core/config/createConfig.js +1 -3
- package/libEs5/core/config/createCoreConfigs.js +0 -7
- package/libEs5/core/consent/createConsent.js +1 -11
- package/libEs5/core/consent/createConsentStateMachine.js +1 -18
- package/libEs5/core/createComponentRegistry.js +4 -14
- package/libEs5/core/createCookieTransfer.js +9 -18
- package/libEs5/core/createEvent.js +25 -34
- package/libEs5/core/createEventManager.js +39 -53
- package/libEs5/core/createInstanceFunction.js +0 -2
- package/libEs5/core/createLifecycle.js +14 -14
- package/libEs5/core/createLogController.js +5 -17
- package/libEs5/core/createLogger.js +3 -17
- package/libEs5/core/edgeNetwork/handleRequestFailure.js +0 -3
- package/libEs5/core/edgeNetwork/injectApplyResponse.js +12 -18
- package/libEs5/core/edgeNetwork/injectExtractEdgeInfo.js +4 -8
- package/libEs5/core/edgeNetwork/injectGetLocationHint.js +1 -11
- package/libEs5/core/edgeNetwork/injectProcessWarningsAndErrors.js +6 -11
- package/libEs5/core/edgeNetwork/injectSendEdgeNetworkRequest.js +18 -26
- package/libEs5/core/edgeNetwork/mergeLifecycleResponses.js +11 -10
- package/libEs5/core/index.js +12 -54
- package/libEs5/core/initializeComponents.js +5 -10
- package/libEs5/core/injectCreateResponse.js +8 -16
- package/libEs5/core/injectExecuteCommand.js +8 -19
- package/libEs5/core/injectHandleError.js +4 -8
- package/libEs5/core/injectShouldTransferCookie.js +1 -5
- package/libEs5/core/network/getRequestRetryDelay.js +10 -17
- package/libEs5/core/network/injectSendNetworkRequest.js +20 -22
- package/libEs5/core/network/isRequestRetryable.js +5 -7
- package/libEs5/core/network/requestMethods/injectSendBeaconRequest.js +5 -8
- package/libEs5/core/network/requestMethods/injectSendFetchRequest.js +0 -2
- package/libEs5/core/network/requestMethods/injectSendXhrRequest.js +0 -5
- package/libEs5/core/validateCommandOptions.js +5 -9
- package/libEs5/index.js +7 -15
- package/libEs5/utils/areThirdPartyCookiesSupportedByDefault.js +1 -5
- package/libEs5/utils/assign.js +0 -2
- package/libEs5/utils/assignIf.js +0 -4
- package/libEs5/utils/clone.js +0 -3
- package/libEs5/utils/cookieJar.js +0 -2
- package/libEs5/utils/crc32.js +0 -8
- package/libEs5/utils/createCallbackAggregator.js +0 -4
- package/libEs5/utils/createLoggingCookieJar.js +1 -6
- package/libEs5/utils/createMerger.js +0 -4
- package/libEs5/utils/createTaskQueue.js +0 -7
- package/libEs5/utils/deduplicateArray.js +0 -5
- package/libEs5/utils/deepAssign.js +2 -10
- package/libEs5/utils/defer.js +0 -3
- package/libEs5/utils/dom/appendNode.js +0 -2
- package/libEs5/utils/dom/awaitSelector.js +1 -29
- package/libEs5/utils/dom/createNode.js +1 -5
- package/libEs5/utils/dom/index.js +0 -8
- package/libEs5/utils/dom/isShadowSelector.js +0 -3
- package/libEs5/utils/dom/matchesSelector.js +2 -5
- package/libEs5/utils/dom/querySelectorAll.js +3 -6
- package/libEs5/utils/dom/removeNode.js +0 -4
- package/libEs5/utils/dom/selectNodes.js +0 -8
- package/libEs5/utils/dom/selectNodesWithShadow.js +6 -20
- package/libEs5/utils/endsWith.js +0 -3
- package/libEs5/utils/filterObject.js +13 -17
- package/libEs5/utils/find.js +0 -5
- package/libEs5/utils/fireImage.js +2 -7
- package/libEs5/utils/flatMap.js +0 -2
- package/libEs5/utils/getApexDomain.js +4 -8
- package/libEs5/utils/getBrowser.js +11 -11
- package/libEs5/utils/getLastArrayItems.js +0 -3
- package/libEs5/utils/getNamespacedCookieName.js +0 -4
- package/libEs5/utils/groupBy.js +0 -5
- package/libEs5/utils/includes.js +0 -3
- package/libEs5/utils/index.js +0 -56
- package/libEs5/utils/injectDoesIdentityCookieExist.js +0 -6
- package/libEs5/utils/injectFireReferrerHideableImage.js +21 -29
- package/libEs5/utils/injectStorage.js +1 -7
- package/libEs5/utils/intersection.js +0 -4
- package/libEs5/utils/isBlankString.js +0 -4
- package/libEs5/utils/isBoolean.js +0 -3
- package/libEs5/utils/isEmptyObject.js +0 -4
- package/libEs5/utils/isFunction.js +0 -3
- package/libEs5/utils/isInteger.js +0 -4
- package/libEs5/utils/isNamespacedCookieName.js +0 -5
- package/libEs5/utils/isNil.js +0 -3
- package/libEs5/utils/isNonEmptyArray.js +0 -3
- package/libEs5/utils/isNonEmptyString.js +0 -4
- package/libEs5/utils/isNumber.js +0 -3
- package/libEs5/utils/isObject.js +11 -5
- package/libEs5/utils/isString.js +0 -3
- package/libEs5/utils/isUnique.js +0 -7
- package/libEs5/utils/isValidRegExp.js +0 -3
- package/libEs5/utils/memoize.js +0 -5
- package/libEs5/utils/noop.js +0 -3
- package/libEs5/utils/padStart.js +0 -6
- package/libEs5/utils/prepareConfigOverridesForEdge.js +13 -21
- package/libEs5/utils/querystring.js +0 -2
- package/libEs5/utils/request/createAddIdentity.js +0 -2
- package/libEs5/utils/request/createDataCollectionRequest.js +1 -6
- package/libEs5/utils/request/createDataCollectionRequestPayload.js +0 -8
- package/libEs5/utils/request/createGetAssuranceValidationTokenParams.js +2 -11
- package/libEs5/utils/request/createHasIdentity.js +0 -2
- package/libEs5/utils/request/createRequest.js +3 -6
- package/libEs5/utils/request/createRequestParams.js +4 -12
- package/libEs5/utils/request/createRequestPayload.js +2 -7
- package/libEs5/utils/request/index.js +0 -8
- package/libEs5/utils/sanitizeOrgIdForCookieName.js +0 -2
- package/libEs5/utils/stackError.js +1 -6
- package/libEs5/utils/startsWith.js +0 -3
- package/libEs5/utils/stringToBoolean.js +0 -3
- package/libEs5/utils/toArray.js +0 -4
- package/libEs5/utils/toError.js +0 -3
- package/libEs5/utils/toISOStringLocal.js +3 -7
- package/libEs5/utils/toInteger.js +2 -8
- package/libEs5/utils/updateErrorMessage.js +3 -5
- package/libEs5/utils/uuid.js +0 -2
- package/libEs5/utils/validateConfigOverride.js +0 -3
- package/libEs5/utils/validateIdentityMap.js +0 -4
- package/libEs5/utils/validation/booleanValidator.js +0 -4
- package/libEs5/utils/validation/callbackValidator.js +0 -4
- package/libEs5/utils/validation/createAnyOfValidator.js +0 -5
- package/libEs5/utils/validation/createArrayOfValidator.js +0 -6
- package/libEs5/utils/validation/createDefaultValidator.js +0 -3
- package/libEs5/utils/validation/createDeprecatedValidator.js +13 -21
- package/libEs5/utils/validation/createLiteralValidator.js +0 -3
- package/libEs5/utils/validation/createMapOfValuesValidator.js +0 -9
- package/libEs5/utils/validation/createMinimumValidator.js +0 -3
- package/libEs5/utils/validation/createNoUnknownFieldsValidator.js +0 -4
- package/libEs5/utils/validation/createNonEmptyValidator.js +0 -6
- package/libEs5/utils/validation/createObjectOfValidator.js +2 -10
- package/libEs5/utils/validation/createUniqueItemsValidator.js +0 -4
- package/libEs5/utils/validation/createUniqueValidator.js +0 -3
- package/libEs5/utils/validation/domainValidator.js +1 -4
- package/libEs5/utils/validation/index.js +76 -59
- package/libEs5/utils/validation/integerValidator.js +0 -4
- package/libEs5/utils/validation/numberValidator.js +0 -4
- package/libEs5/utils/validation/regexpValidator.js +0 -4
- package/libEs5/utils/validation/requiredValidator.js +0 -3
- package/libEs5/utils/validation/stringValidator.js +0 -4
- package/libEs5/utils/validation/utils.js +7 -21
- package/libEs5/utils/values.js +0 -3
- package/libEs6/baseCode/index.js +3 -8
- package/libEs6/components/ActivityCollector/attachClickActivityCollector.js +5 -6
- package/libEs6/components/ActivityCollector/configValidators.js +1 -0
- package/libEs6/components/ActivityCollector/createGetLinkDetails.js +1 -8
- package/libEs6/components/ActivityCollector/createLinkClick.js +0 -3
- package/libEs6/components/ActivityCollector/getLinkName.js +8 -23
- package/libEs6/components/ActivityCollector/getLinkRegion.js +2 -12
- package/libEs6/components/ActivityCollector/index.js +3 -6
- package/libEs6/components/ActivityCollector/utils.js +2 -29
- package/libEs6/components/Audiences/index.js +1 -2
- package/libEs6/components/Audiences/injectProcessDestinations.js +3 -6
- package/libEs6/components/Audiences/injectProcessResponse.js +1 -2
- package/libEs6/components/Context/createComponent.js +1 -2
- package/libEs6/components/Context/index.js +3 -3
- package/libEs6/components/Context/injectDevice.js +1 -16
- package/libEs6/components/Context/injectEnvironment.js +1 -4
- package/libEs6/components/Context/injectHighEntropyUserAgentHints.js +2 -5
- package/libEs6/components/Context/injectPlaceContext.js +2 -5
- package/libEs6/components/Context/injectTimestamp.js +1 -0
- package/libEs6/components/Context/injectWeb.js +1 -0
- package/libEs6/components/DataCollector/index.js +8 -25
- package/libEs6/components/DataCollector/validateApplyResponse.js +2 -2
- package/libEs6/components/DataCollector/validateUserEventOptions.js +7 -5
- package/libEs6/components/EventMerge/createComponent.js +1 -0
- package/libEs6/components/EventMerge/createEventMergeId.js +1 -0
- package/libEs6/components/EventMerge/index.js +1 -2
- package/libEs6/components/Identity/addEcidQueryToPayload.js +1 -0
- package/libEs6/components/Identity/addEcidToPayload.js +1 -0
- package/libEs6/components/Identity/appendIdentityToUrl/appendIdentityToUrlOptionsValidator.js +1 -1
- package/libEs6/components/Identity/appendIdentityToUrl/injectAppendIdentityToUrl.js +0 -4
- package/libEs6/components/Identity/configValidators.js +1 -0
- package/libEs6/components/Identity/constants/authState.js +1 -0
- package/libEs6/components/Identity/constants/defaultIdSyncTtlMinutes.js +1 -0
- package/libEs6/components/Identity/createComponent.js +5 -7
- package/libEs6/components/Identity/createLegacyIdentity.js +0 -10
- package/libEs6/components/Identity/getEcidFromResponse.js +1 -0
- package/libEs6/components/Identity/getIdentity/createGetIdentity.js +1 -0
- package/libEs6/components/Identity/getIdentity/createIdentityRequest.js +1 -3
- package/libEs6/components/Identity/getIdentity/createIdentityRequestPayload.js +1 -0
- package/libEs6/components/Identity/getIdentity/getIdentityOptionsValidator.js +1 -1
- package/libEs6/components/Identity/index.js +1 -2
- package/libEs6/components/Identity/injectAddLegacyEcidToPayload.js +1 -1
- package/libEs6/components/Identity/injectAddQueryStringIdentityToPayload.js +5 -7
- package/libEs6/components/Identity/injectAwaitIdentityCookie.js +6 -3
- package/libEs6/components/Identity/injectEnsureSingleIdentity.js +12 -11
- package/libEs6/components/Identity/injectHandleResponseForIdSyncs.js +1 -0
- package/libEs6/components/Identity/injectProcessIdSyncs.js +0 -4
- package/libEs6/components/Identity/injectSetDomainForInitialIdentityPayload.js +1 -0
- package/libEs6/components/Identity/visitorService/awaitVisitorOptIn.js +1 -0
- package/libEs6/components/Identity/visitorService/getVisitor.js +1 -0
- package/libEs6/components/Identity/visitorService/injectGetEcidFromVisitor.js +1 -2
- package/libEs6/components/LibraryInfo/index.js +3 -6
- package/libEs6/components/MachineLearning/index.js +1 -2
- package/libEs6/components/MachineLearning/processResponse.js +1 -0
- package/libEs6/components/Personalization/constants/eventType.js +1 -0
- package/libEs6/components/Personalization/constants/propositionEventType.js +1 -0
- package/libEs6/components/Personalization/constants/schema.js +1 -0
- package/libEs6/components/Personalization/constants/scopeType.js +4 -1
- package/libEs6/components/Personalization/constants/surface.js +1 -0
- package/libEs6/components/Personalization/createApplyPropositions.js +14 -14
- package/libEs6/components/Personalization/createClickStorage.js +19 -18
- package/libEs6/components/Personalization/createCollect.js +0 -5
- package/libEs6/components/Personalization/createComponent.js +23 -20
- package/libEs6/components/Personalization/createFetchDataHandler.js +13 -17
- package/libEs6/components/Personalization/createGetPageLocation.js +1 -0
- package/libEs6/components/Personalization/createOnClickHandler.js +6 -10
- package/libEs6/components/Personalization/createPersonalizationDetails.js +7 -28
- package/libEs6/components/Personalization/createSetTargetMigration.js +1 -1
- package/libEs6/components/Personalization/createViewCacheManager.js +11 -22
- package/libEs6/components/Personalization/createViewChangeHandler.js +1 -7
- package/libEs6/components/Personalization/dom-actions/action.js +1 -2
- package/libEs6/components/Personalization/dom-actions/addNonceToInlineStyleElements.js +1 -8
- package/libEs6/components/Personalization/dom-actions/appendHtml.js +1 -0
- package/libEs6/components/Personalization/dom-actions/clicks/collectClicks.js +30 -26
- package/libEs6/components/Personalization/dom-actions/createPreprocess.js +0 -1
- package/libEs6/components/Personalization/{utils/isPageWideScope.js → dom-actions/createRedirect.js} +8 -4
- package/libEs6/components/Personalization/dom-actions/dom/createFragment.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/getAttribute.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/getChildNodes.js +1 -2
- package/libEs6/components/Personalization/dom-actions/dom/getChildren.js +1 -2
- package/libEs6/components/Personalization/dom-actions/dom/getFirstChild.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/getNextSibling.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/getNonce.js +6 -5
- package/libEs6/components/Personalization/dom-actions/dom/getParent.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/helperForEq.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/index.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/insertAfter.js +1 -2
- package/libEs6/components/Personalization/dom-actions/dom/insertBefore.js +1 -2
- package/libEs6/components/Personalization/dom-actions/dom/matchesSelectorWithEq.js +7 -6
- package/libEs6/components/Personalization/dom-actions/dom/removeAttribute.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/selectNodesWithEq.js +6 -18
- package/libEs6/components/Personalization/dom-actions/dom/setAttribute.js +1 -0
- package/libEs6/components/Personalization/dom-actions/dom/setStyle.js +1 -2
- package/libEs6/components/Personalization/dom-actions/images.js +1 -1
- package/libEs6/components/Personalization/dom-actions/index.js +1 -0
- package/libEs6/components/Personalization/dom-actions/initDomActionsModules.js +1 -0
- package/libEs6/components/Personalization/dom-actions/insertHtmlAfter.js +1 -0
- package/libEs6/components/Personalization/dom-actions/insertHtmlBefore.js +1 -0
- package/libEs6/components/Personalization/dom-actions/prependHtml.js +5 -5
- package/libEs6/components/Personalization/dom-actions/rearrangeChildren.js +1 -2
- package/libEs6/components/Personalization/dom-actions/remapCustomCodeOffers.js +0 -3
- package/libEs6/components/Personalization/dom-actions/remapHeadOffers.js +1 -7
- package/libEs6/components/Personalization/dom-actions/replaceHtml.js +1 -0
- package/libEs6/components/Personalization/dom-actions/scripts.js +5 -16
- package/libEs6/components/Personalization/dom-actions/setAttributes.js +1 -0
- package/libEs6/components/Personalization/dom-actions/setHtml.js +1 -2
- package/libEs6/components/Personalization/dom-actions/setStyles.js +1 -0
- package/libEs6/components/Personalization/dom-actions/setText.js +1 -0
- package/libEs6/components/Personalization/dom-actions/swapImage.js +7 -4
- package/libEs6/components/Personalization/event.js +4 -4
- package/libEs6/components/Personalization/flicker/index.js +9 -12
- package/libEs6/components/Personalization/handlers/createProcessDomAction.js +17 -9
- package/libEs6/components/Personalization/handlers/createProcessHtmlContent.js +8 -5
- package/libEs6/components/Personalization/handlers/createProcessPropositions.js +3 -30
- package/libEs6/components/Personalization/handlers/createProcessRedirect.js +7 -4
- package/libEs6/components/Personalization/handlers/injectCreateProposition.js +17 -36
- package/libEs6/components/Personalization/index.js +9 -13
- package/libEs6/components/Personalization/utils/addRenderAttemptedToDecisions.js +1 -0
- package/libEs6/components/Personalization/utils/createAsyncArray.js +0 -2
- package/libEs6/components/Personalization/utils/isAuthoringModeEnabled.js +1 -0
- package/libEs6/components/Personalization/utils/surfaceUtils.js +1 -20
- package/libEs6/components/Personalization/validateApplyPropositionsOptions.js +0 -1
- package/libEs6/components/Privacy/computeConsentHash.js +3 -4
- package/libEs6/components/Privacy/createComponent.js +5 -10
- package/libEs6/components/Privacy/createConsentHashStore.js +0 -10
- package/libEs6/components/Privacy/createConsentRequest.js +1 -3
- package/libEs6/components/Privacy/createConsentRequestPayload.js +1 -2
- package/libEs6/components/Privacy/createStoredConsent.js +1 -2
- package/libEs6/components/Privacy/index.js +1 -2
- package/libEs6/components/Privacy/injectSendSetConsentRequest.js +3 -3
- package/libEs6/constants/browser.js +1 -0
- package/libEs6/constants/consentPurpose.js +1 -0
- package/libEs6/constants/consentStatus.js +1 -0
- package/libEs6/constants/cookieNameKey.js +1 -0
- package/libEs6/constants/cookieNamePrefix.js +1 -0
- package/libEs6/constants/coreCommands.js +1 -0
- package/libEs6/constants/debugQueryParam.js +1 -0
- package/libEs6/constants/domain.js +1 -0
- package/libEs6/constants/ecidNamespace.js +1 -0
- package/libEs6/constants/elementAttribute.js +1 -0
- package/libEs6/constants/highEntropyUserAgentClientHints.js +1 -0
- package/libEs6/constants/httpHeaderNames.js +1 -0
- package/libEs6/constants/httpStatusCode.js +1 -0
- package/libEs6/constants/legacyCookies.js +1 -0
- package/libEs6/constants/libraryName.js +1 -0
- package/libEs6/constants/libraryVersion.js +3 -1
- package/libEs6/constants/namespace.js +1 -0
- package/libEs6/constants/pageWideScope.js +1 -0
- package/libEs6/constants/queryStringIdentityParam.js +1 -0
- package/libEs6/constants/shadowSeparator.js +1 -0
- package/libEs6/constants/tagName.js +1 -0
- package/libEs6/core/buildAndValidateConfig.js +4 -10
- package/libEs6/core/componentCreators.js +3 -3
- package/libEs6/core/config/createConfig.js +1 -2
- package/libEs6/core/config/createCoreConfigs.js +1 -0
- package/libEs6/core/consent/createConsent.js +1 -9
- package/libEs6/core/consent/createConsentStateMachine.js +1 -20
- package/libEs6/core/createComponentRegistry.js +3 -15
- package/libEs6/core/createCookieTransfer.js +6 -12
- package/libEs6/core/createEvent.js +15 -37
- package/libEs6/core/createEventManager.js +14 -27
- package/libEs6/core/createInstanceFunction.js +1 -0
- package/libEs6/core/createLifecycle.js +14 -10
- package/libEs6/core/createLogController.js +1 -7
- package/libEs6/core/createLogger.js +1 -17
- package/libEs6/core/edgeNetwork/handleRequestFailure.js +0 -1
- package/libEs6/core/edgeNetwork/injectApplyResponse.js +2 -3
- package/libEs6/core/edgeNetwork/injectExtractEdgeInfo.js +5 -6
- package/libEs6/core/edgeNetwork/injectGetLocationHint.js +1 -5
- package/libEs6/core/edgeNetwork/injectProcessWarningsAndErrors.js +1 -2
- package/libEs6/core/edgeNetwork/injectSendEdgeNetworkRequest.js +5 -5
- package/libEs6/core/index.js +4 -10
- package/libEs6/core/initializeComponents.js +3 -4
- package/libEs6/core/injectCreateResponse.js +3 -7
- package/libEs6/core/injectExecuteCommand.js +5 -11
- package/libEs6/core/injectHandleError.js +4 -3
- package/libEs6/core/injectShouldTransferCookie.js +1 -0
- package/libEs6/core/network/getRequestRetryDelay.js +11 -13
- package/libEs6/core/network/injectSendNetworkRequest.js +3 -7
- package/libEs6/core/network/isRequestRetryable.js +4 -2
- package/libEs6/core/network/requestMethods/injectSendBeaconRequest.js +4 -6
- package/libEs6/core/network/requestMethods/injectSendFetchRequest.js +1 -2
- package/libEs6/core/network/requestMethods/injectSendXhrRequest.js +1 -5
- package/libEs6/core/validateCommandOptions.js +1 -2
- package/libEs6/index.js +5 -3
- package/libEs6/utils/areThirdPartyCookiesSupportedByDefault.js +4 -2
- package/libEs6/utils/assign.js +1 -0
- package/libEs6/utils/assignIf.js +1 -1
- package/libEs6/utils/cookieJar.js +1 -0
- package/libEs6/utils/crc32.js +0 -7
- package/libEs6/utils/createCallbackAggregator.js +0 -2
- package/libEs6/utils/createLoggingCookieJar.js +3 -3
- package/libEs6/utils/createMerger.js +2 -1
- package/libEs6/utils/createTaskQueue.js +0 -4
- package/libEs6/utils/deduplicateArray.js +0 -3
- package/libEs6/utils/deepAssign.js +2 -5
- package/libEs6/utils/dom/appendNode.js +1 -0
- package/libEs6/utils/dom/awaitSelector.js +1 -14
- package/libEs6/utils/dom/createNode.js +1 -2
- package/libEs6/utils/dom/index.js +1 -0
- package/libEs6/utils/dom/isShadowSelector.js +1 -0
- package/libEs6/utils/dom/matchesSelector.js +2 -2
- package/libEs6/utils/dom/querySelectorAll.js +3 -2
- package/libEs6/utils/dom/removeNode.js +1 -2
- package/libEs6/utils/dom/selectNodes.js +2 -2
- package/libEs6/utils/dom/selectNodesWithShadow.js +6 -16
- package/libEs6/utils/filterObject.js +8 -12
- package/libEs6/utils/find.js +0 -2
- package/libEs6/utils/fireImage.js +2 -1
- package/libEs6/utils/getApexDomain.js +4 -4
- package/libEs6/utils/getBrowser.js +1 -7
- package/libEs6/utils/getNamespacedCookieName.js +1 -0
- package/libEs6/utils/groupBy.js +0 -2
- package/libEs6/utils/index.js +1 -0
- package/libEs6/utils/injectDoesIdentityCookieExist.js +1 -1
- package/libEs6/utils/injectFireReferrerHideableImage.js +1 -4
- package/libEs6/utils/injectStorage.js +1 -5
- package/libEs6/utils/intersection.js +2 -1
- package/libEs6/utils/isBlankString.js +2 -1
- package/libEs6/utils/isEmptyObject.js +2 -1
- package/libEs6/utils/isInteger.js +2 -1
- package/libEs6/utils/isNamespacedCookieName.js +2 -1
- package/libEs6/utils/isNonEmptyString.js +2 -1
- package/libEs6/utils/isObject.js +2 -1
- package/libEs6/utils/isUnique.js +0 -5
- package/libEs6/utils/memoize.js +0 -2
- package/libEs6/utils/padStart.js +1 -4
- package/libEs6/utils/prepareConfigOverridesForEdge.js +5 -12
- package/libEs6/utils/querystring.js +1 -0
- package/libEs6/utils/request/createDataCollectionRequest.js +1 -3
- package/libEs6/utils/request/createDataCollectionRequestPayload.js +0 -3
- package/libEs6/utils/request/createGetAssuranceValidationTokenParams.js +1 -6
- package/libEs6/utils/request/createHasIdentity.js +1 -0
- package/libEs6/utils/request/createRequest.js +3 -9
- package/libEs6/utils/request/createRequestParams.js +0 -3
- package/libEs6/utils/request/createRequestPayload.js +4 -4
- package/libEs6/utils/request/index.js +1 -0
- package/libEs6/utils/sanitizeOrgIdForCookieName.js +1 -0
- package/libEs6/utils/stackError.js +2 -1
- package/libEs6/utils/toArray.js +1 -2
- package/libEs6/utils/toISOStringLocal.js +4 -3
- package/libEs6/utils/toInteger.js +4 -4
- package/libEs6/utils/updateErrorMessage.js +3 -1
- package/libEs6/utils/uuid.js +1 -0
- package/libEs6/utils/validateConfigOverride.js +1 -0
- package/libEs6/utils/validateIdentityMap.js +1 -0
- package/libEs6/utils/validation/booleanValidator.js +1 -0
- package/libEs6/utils/validation/createArrayOfValidator.js +0 -2
- package/libEs6/utils/validation/createDefaultValidator.js +1 -1
- package/libEs6/utils/validation/createDeprecatedValidator.js +0 -4
- package/libEs6/utils/validation/createMapOfValuesValidator.js +1 -4
- package/libEs6/utils/validation/createNoUnknownFieldsValidator.js +1 -2
- package/libEs6/utils/validation/createNonEmptyValidator.js +1 -1
- package/libEs6/utils/validation/createObjectOfValidator.js +3 -5
- package/libEs6/utils/validation/createUniqueValidator.js +1 -0
- package/libEs6/utils/validation/index.js +14 -32
- package/libEs6/utils/validation/integerValidator.js +1 -0
- package/libEs6/utils/validation/numberValidator.js +1 -0
- package/libEs6/utils/validation/regexpValidator.js +1 -0
- package/libEs6/utils/validation/requiredValidator.js +1 -1
- package/libEs6/utils/validation/utils.js +8 -12
- package/package.json +3 -3
- package/libEs5/components/Personalization/createPendingNotificationsHandler.js +0 -29
- package/libEs6/components/Personalization/createPendingNotificationsHandler.js +0 -22
|
@@ -9,14 +9,13 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import getParent from "./getParent";
|
|
13
14
|
export default ((container, element) => {
|
|
14
15
|
if (!container) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
18
|
const parent = getParent(container);
|
|
19
|
-
|
|
20
19
|
if (parent) {
|
|
21
20
|
parent.insertBefore(element, container);
|
|
22
21
|
}
|
|
@@ -9,26 +9,27 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { matchesSelector } from "../../../../utils/dom";
|
|
13
14
|
import { isNotEqSelector } from "./helperForEq";
|
|
14
15
|
import { selectNodesWithEq } from "./selectNodesWithEq";
|
|
15
16
|
export default ((selector, element) => {
|
|
16
17
|
if (isNotEqSelector(selector)) {
|
|
17
18
|
return matchesSelector(selector, element);
|
|
18
|
-
}
|
|
19
|
-
// Find all nodes using document as context
|
|
20
|
-
|
|
19
|
+
}
|
|
21
20
|
|
|
21
|
+
// Using node selection vs matches selector, because of :eq()
|
|
22
|
+
// Find all nodes using document as context
|
|
22
23
|
const nodes = selectNodesWithEq(selector);
|
|
23
|
-
let result = false;
|
|
24
|
-
// and reference compare with element
|
|
24
|
+
let result = false;
|
|
25
25
|
|
|
26
|
+
// Iterate through all the identified elements
|
|
27
|
+
// and reference compare with element
|
|
26
28
|
for (let i = 0; i < nodes.length; i += 1) {
|
|
27
29
|
if (nodes[i] === element) {
|
|
28
30
|
result = true;
|
|
29
31
|
break;
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
|
-
|
|
33
34
|
return result;
|
|
34
35
|
});
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
export default ((element, name) => {
|
|
13
14
|
element.removeAttribute(name);
|
|
14
15
|
});
|
|
@@ -9,17 +9,18 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import escape from "css.escape";
|
|
13
14
|
import { selectNodes } from "../../../../utils/dom";
|
|
14
|
-
import { isNotEqSelector, splitWithEq } from "./helperForEq";
|
|
15
|
+
import { isNotEqSelector, splitWithEq } from "./helperForEq";
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
// Trying to match ID or CSS class
|
|
18
|
+
const CSS_IDENTIFIER_PATTERN = /(#|\.)(-?\w+)/g;
|
|
19
|
+
// Here we use CSS.escape() to make sure we get
|
|
17
20
|
// correct values for ID and CSS class
|
|
18
21
|
// Please check: https://www.w3.org/TR/css-syntax-3/#escaping
|
|
19
22
|
// CSS.escape() polyfill can be found here: https://github.com/mathiasbynens/CSS.escape
|
|
20
|
-
|
|
21
23
|
const replaceIdentifier = (_, $1, $2) => `${$1}${escape($2)}`;
|
|
22
|
-
|
|
23
24
|
export const escapeIdentifiersInSelector = selector => {
|
|
24
25
|
return selector.replace(CSS_IDENTIFIER_PATTERN, replaceIdentifier);
|
|
25
26
|
};
|
|
@@ -31,11 +32,9 @@ export const parseSelector = rawSelector => {
|
|
|
31
32
|
length
|
|
32
33
|
} = parts;
|
|
33
34
|
let i = 0;
|
|
34
|
-
|
|
35
35
|
while (i < length) {
|
|
36
36
|
const sel = parts[i];
|
|
37
37
|
const eq = parts[i + 1];
|
|
38
|
-
|
|
39
38
|
if (eq) {
|
|
40
39
|
result.push({
|
|
41
40
|
sel,
|
|
@@ -46,25 +45,21 @@ export const parseSelector = rawSelector => {
|
|
|
46
45
|
sel
|
|
47
46
|
});
|
|
48
47
|
}
|
|
49
|
-
|
|
50
48
|
i += 2;
|
|
51
49
|
}
|
|
52
|
-
|
|
53
50
|
return result;
|
|
54
51
|
};
|
|
52
|
+
|
|
55
53
|
/**
|
|
56
54
|
* Returns an array of matched DOM nodes.
|
|
57
55
|
* @param {String} selector that contains Sizzle "eq(...)" pseudo selector
|
|
58
56
|
* @returns {Array} an array of DOM nodes
|
|
59
57
|
*/
|
|
60
|
-
|
|
61
58
|
export const selectNodesWithEq = selector => {
|
|
62
59
|
const doc = document;
|
|
63
|
-
|
|
64
60
|
if (isNotEqSelector(selector)) {
|
|
65
61
|
return selectNodes(selector, doc);
|
|
66
62
|
}
|
|
67
|
-
|
|
68
63
|
const parts = parseSelector(selector);
|
|
69
64
|
const {
|
|
70
65
|
length
|
|
@@ -72,7 +67,6 @@ export const selectNodesWithEq = selector => {
|
|
|
72
67
|
let result = [];
|
|
73
68
|
let context = doc;
|
|
74
69
|
let i = 0;
|
|
75
|
-
|
|
76
70
|
while (i < length) {
|
|
77
71
|
const {
|
|
78
72
|
sel,
|
|
@@ -82,15 +76,12 @@ export const selectNodesWithEq = selector => {
|
|
|
82
76
|
const {
|
|
83
77
|
length: nodesCount
|
|
84
78
|
} = nodes;
|
|
85
|
-
|
|
86
79
|
if (nodesCount === 0) {
|
|
87
80
|
break;
|
|
88
81
|
}
|
|
89
|
-
|
|
90
82
|
if (eq != null && eq > nodesCount - 1) {
|
|
91
83
|
break;
|
|
92
84
|
}
|
|
93
|
-
|
|
94
85
|
if (i < length - 1) {
|
|
95
86
|
if (eq == null) {
|
|
96
87
|
[context] = nodes;
|
|
@@ -98,7 +89,6 @@ export const selectNodesWithEq = selector => {
|
|
|
98
89
|
context = nodes[eq];
|
|
99
90
|
}
|
|
100
91
|
}
|
|
101
|
-
|
|
102
92
|
if (i === length - 1) {
|
|
103
93
|
if (eq == null) {
|
|
104
94
|
result = nodes;
|
|
@@ -106,9 +96,7 @@ export const selectNodesWithEq = selector => {
|
|
|
106
96
|
result = [nodes[eq]];
|
|
107
97
|
}
|
|
108
98
|
}
|
|
109
|
-
|
|
110
99
|
i += 1;
|
|
111
100
|
}
|
|
112
|
-
|
|
113
101
|
return result;
|
|
114
102
|
};
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
export default ((element, name, value) => {
|
|
13
14
|
element.setAttribute(name, value);
|
|
14
15
|
});
|
|
@@ -9,14 +9,13 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
export default ((element, name, value, priority) => {
|
|
13
14
|
let css;
|
|
14
|
-
|
|
15
15
|
if (priority) {
|
|
16
16
|
css = `${name}:${value} !${priority};`;
|
|
17
17
|
} else {
|
|
18
18
|
css = `${name}:${value};`;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
20
|
element.style.cssText += `;${css}`;
|
|
22
21
|
});
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { createNode, selectNodes } from "../../../utils/dom";
|
|
13
14
|
import { IMG } from "../../../constants/tagName";
|
|
14
15
|
import { SRC } from "../../../constants/elementAttribute";
|
|
@@ -23,7 +24,6 @@ export const loadImages = fragment => {
|
|
|
23
24
|
const images = selectNodes(IMG, fragment);
|
|
24
25
|
images.forEach(image => {
|
|
25
26
|
const url = getAttribute(image, SRC);
|
|
26
|
-
|
|
27
27
|
if (url) {
|
|
28
28
|
loadImage(url);
|
|
29
29
|
}
|
|
@@ -9,4 +9,5 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
export { default as initDomActionsModules } from "./initDomActionsModules";
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { removeNode } from "../../../utils/dom";
|
|
13
14
|
import { createAction, setHtml, setText, setAttributes, swapImage, setStyles, rearrangeChildren, replaceHtml, appendHtml, prependHtml, insertHtmlAfter, insertHtmlBefore } from "./action";
|
|
14
15
|
export default (() => {
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { createFragment, getChildNodes, insertAfter } from "./dom";
|
|
13
14
|
import { loadImages } from "./images";
|
|
14
15
|
import addNonceToInlineStyleElements from "./addNonceToInlineStyleElements";
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { createFragment, getChildNodes, insertBefore } from "./dom";
|
|
13
14
|
import { loadImages } from "./images";
|
|
14
15
|
import addNonceToInlineStyleElements from "./addNonceToInlineStyleElements";
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { appendNode } from "../../../utils/dom";
|
|
13
14
|
import { createFragment, getChildNodes, getFirstChild, insertBefore } from "./dom";
|
|
14
15
|
import { loadImages } from "./images";
|
|
@@ -23,23 +24,22 @@ export default ((container, html) => {
|
|
|
23
24
|
const {
|
|
24
25
|
length
|
|
25
26
|
} = elements;
|
|
26
|
-
let i = length - 1;
|
|
27
|
+
let i = length - 1;
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
// We have to proactively load images to avoid flicker
|
|
30
|
+
loadImages(fragment);
|
|
29
31
|
|
|
32
|
+
// We are inserting elements in reverse order
|
|
30
33
|
while (i >= 0) {
|
|
31
34
|
const element = elements[i];
|
|
32
35
|
const firstChild = getFirstChild(container);
|
|
33
|
-
|
|
34
36
|
if (firstChild) {
|
|
35
37
|
insertBefore(firstChild, element);
|
|
36
38
|
} else {
|
|
37
39
|
appendNode(container, element);
|
|
38
40
|
}
|
|
39
|
-
|
|
40
41
|
i -= 1;
|
|
41
42
|
}
|
|
42
|
-
|
|
43
43
|
executeInlineScripts(container, scripts);
|
|
44
44
|
return executeRemoteScripts(scriptsUrls);
|
|
45
45
|
});
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { getChildren, insertAfter, insertBefore } from "./dom";
|
|
13
14
|
export default ((container, {
|
|
14
15
|
from,
|
|
@@ -17,13 +18,11 @@ export default ((container, {
|
|
|
17
18
|
const children = getChildren(container);
|
|
18
19
|
const elementFrom = children[from];
|
|
19
20
|
const elementTo = children[to];
|
|
20
|
-
|
|
21
21
|
if (!elementFrom || !elementTo) {
|
|
22
22
|
// TODO: We will need to add logging
|
|
23
23
|
// to ease troubleshooting
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
|
-
|
|
27
26
|
if (from < to) {
|
|
28
27
|
insertAfter(elementTo, elementFrom);
|
|
29
28
|
} else {
|
|
@@ -22,15 +22,12 @@ export default (action => {
|
|
|
22
22
|
selector,
|
|
23
23
|
type
|
|
24
24
|
} = action;
|
|
25
|
-
|
|
26
25
|
if (type !== ACTION_CUSTOM_CODE) {
|
|
27
26
|
return action;
|
|
28
27
|
}
|
|
29
|
-
|
|
30
28
|
if (selector !== TARGET_BODY_SELECTOR) {
|
|
31
29
|
return action;
|
|
32
30
|
}
|
|
33
|
-
|
|
34
31
|
return assign({}, action, {
|
|
35
32
|
selector: "BODY"
|
|
36
33
|
});
|
|
@@ -15,6 +15,7 @@ governing permissions and limitations under the License.
|
|
|
15
15
|
* to be applied to page HEAD, to align with the way it works in at.js.
|
|
16
16
|
* Offer content should also be filtered, so that only tags allowed in HEAD are preserved.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import { selectNodes } from "../../../utils/dom";
|
|
19
20
|
import { is } from "./scripts";
|
|
20
21
|
import { createFragment, selectNodesWithEq } from "./dom";
|
|
@@ -23,34 +24,27 @@ import isBlankString from "../../../utils/isBlankString";
|
|
|
23
24
|
import { HEAD } from "../../../constants/tagName";
|
|
24
25
|
const APPEND_HTML = "appendHtml";
|
|
25
26
|
const HEAD_TAGS_SELECTOR = "SCRIPT,LINK,STYLE";
|
|
26
|
-
|
|
27
27
|
const filterHeadContent = content => {
|
|
28
28
|
const container = createFragment(content);
|
|
29
29
|
const headNodes = selectNodes(HEAD_TAGS_SELECTOR, container);
|
|
30
30
|
return headNodes.map(node => node.outerHTML).join("");
|
|
31
31
|
};
|
|
32
|
-
|
|
33
32
|
export default (action => {
|
|
34
33
|
const result = assign({}, action);
|
|
35
34
|
const {
|
|
36
35
|
content,
|
|
37
36
|
selector
|
|
38
37
|
} = result;
|
|
39
|
-
|
|
40
38
|
if (isBlankString(content)) {
|
|
41
39
|
return result;
|
|
42
40
|
}
|
|
43
|
-
|
|
44
41
|
if (selector == null) {
|
|
45
42
|
return result;
|
|
46
43
|
}
|
|
47
|
-
|
|
48
44
|
const container = selectNodesWithEq(selector);
|
|
49
|
-
|
|
50
45
|
if (!is(container[0], HEAD)) {
|
|
51
46
|
return result;
|
|
52
47
|
}
|
|
53
|
-
|
|
54
48
|
result.type = APPEND_HTML;
|
|
55
49
|
result.content = filterHeadContent(content);
|
|
56
50
|
return result;
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { removeNode } from "../../../utils/dom";
|
|
13
14
|
import insertHtmlBefore from "./insertHtmlBefore";
|
|
14
15
|
export default ((container, html) => {
|
|
@@ -9,17 +9,15 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import loadScript from "@adobe/reactor-load-script";
|
|
13
14
|
import { selectNodes, createNode } from "../../../utils/dom";
|
|
14
15
|
import { SCRIPT } from "../../../constants/tagName";
|
|
15
16
|
import { SRC } from "../../../constants/elementAttribute";
|
|
16
17
|
import { getAttribute, getNonce } from "./dom";
|
|
17
18
|
export const is = (element, tagName) => !!element && element.tagName === tagName;
|
|
18
|
-
|
|
19
19
|
const isInlineScript = element => is(element, SCRIPT) && !getAttribute(element, SRC);
|
|
20
|
-
|
|
21
20
|
const isRemoteScript = element => is(element, SCRIPT) && getAttribute(element, SRC);
|
|
22
|
-
|
|
23
21
|
export const getInlineScripts = fragment => {
|
|
24
22
|
const scripts = selectNodes(SCRIPT, fragment);
|
|
25
23
|
const result = [];
|
|
@@ -27,34 +25,30 @@ export const getInlineScripts = fragment => {
|
|
|
27
25
|
length
|
|
28
26
|
} = scripts;
|
|
29
27
|
const nonce = getNonce();
|
|
30
|
-
const attributes = {
|
|
28
|
+
const attributes = {
|
|
29
|
+
...(nonce && {
|
|
31
30
|
nonce
|
|
32
31
|
})
|
|
33
32
|
};
|
|
34
|
-
/* eslint-disable no-continue */
|
|
35
33
|
|
|
34
|
+
/* eslint-disable no-continue */
|
|
36
35
|
for (let i = 0; i < length; i += 1) {
|
|
37
36
|
const element = scripts[i];
|
|
38
|
-
|
|
39
37
|
if (!isInlineScript(element)) {
|
|
40
38
|
continue;
|
|
41
39
|
}
|
|
42
|
-
|
|
43
40
|
const {
|
|
44
41
|
textContent
|
|
45
42
|
} = element;
|
|
46
|
-
|
|
47
43
|
if (!textContent) {
|
|
48
44
|
continue;
|
|
49
45
|
}
|
|
50
|
-
|
|
51
46
|
result.push(createNode(SCRIPT, attributes, {
|
|
52
47
|
textContent
|
|
53
48
|
}));
|
|
54
49
|
}
|
|
55
50
|
/* eslint-enable no-continue */
|
|
56
51
|
|
|
57
|
-
|
|
58
52
|
return result;
|
|
59
53
|
};
|
|
60
54
|
export const getRemoteScriptsUrls = fragment => {
|
|
@@ -63,26 +57,21 @@ export const getRemoteScriptsUrls = fragment => {
|
|
|
63
57
|
const {
|
|
64
58
|
length
|
|
65
59
|
} = scripts;
|
|
66
|
-
/* eslint-disable no-continue */
|
|
67
60
|
|
|
61
|
+
/* eslint-disable no-continue */
|
|
68
62
|
for (let i = 0; i < length; i += 1) {
|
|
69
63
|
const element = scripts[i];
|
|
70
|
-
|
|
71
64
|
if (!isRemoteScript(element)) {
|
|
72
65
|
continue;
|
|
73
66
|
}
|
|
74
|
-
|
|
75
67
|
const url = getAttribute(element, SRC);
|
|
76
|
-
|
|
77
68
|
if (!url) {
|
|
78
69
|
continue;
|
|
79
70
|
}
|
|
80
|
-
|
|
81
71
|
result.push(url);
|
|
82
72
|
}
|
|
83
73
|
/* eslint-enable no-continue */
|
|
84
74
|
|
|
85
|
-
|
|
86
75
|
return result;
|
|
87
76
|
};
|
|
88
77
|
export const executeInlineScripts = (parent, scripts) => {
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { setAttribute } from "./dom";
|
|
13
14
|
export default ((container, attributes) => {
|
|
14
15
|
Object.keys(attributes).forEach(key => {
|
|
@@ -9,16 +9,15 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { removeNode } from "../../../utils/dom";
|
|
13
14
|
import { getChildNodes } from "./dom";
|
|
14
15
|
import appendHtml from "./appendHtml";
|
|
15
|
-
|
|
16
16
|
const clear = container => {
|
|
17
17
|
// We want to remove ALL nodes, text, comments etc
|
|
18
18
|
const childNodes = getChildNodes(container);
|
|
19
19
|
childNodes.forEach(removeNode);
|
|
20
20
|
};
|
|
21
|
-
|
|
22
21
|
export default ((container, html) => {
|
|
23
22
|
clear(container);
|
|
24
23
|
appendHtml(container, html);
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { setStyle } from "./dom";
|
|
13
14
|
export default ((container, styles) => {
|
|
14
15
|
const {
|
|
@@ -9,6 +9,7 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
export default ((container, text) => {
|
|
13
14
|
container.textContent = text;
|
|
14
15
|
});
|
|
@@ -9,18 +9,21 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { SRC } from "../../../constants/elementAttribute";
|
|
13
14
|
import { setAttribute, removeAttribute } from "./dom";
|
|
14
15
|
import { isImage, loadImage } from "./images";
|
|
15
16
|
export default ((container, url) => {
|
|
16
17
|
if (!isImage(container)) {
|
|
17
18
|
return;
|
|
18
|
-
}
|
|
19
|
-
|
|
19
|
+
}
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
// Start downloading the image
|
|
22
|
+
loadImage(url);
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
// Remove "src" so there is no flicker
|
|
25
|
+
removeAttribute(container, SRC);
|
|
24
26
|
|
|
27
|
+
// Replace the image "src"
|
|
25
28
|
setAttribute(container, SRC, url);
|
|
26
29
|
});
|
|
@@ -9,9 +9,10 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
const EVENT_TYPE_TRUE = 1;
|
|
13
|
-
/* eslint-disable no-underscore-dangle */
|
|
14
14
|
|
|
15
|
+
/* eslint-disable no-underscore-dangle */
|
|
15
16
|
export const mergeDecisionsMeta = (event, decisionsMeta, eventType, eventLabel = "") => {
|
|
16
17
|
const xdm = {
|
|
17
18
|
_experience: {
|
|
@@ -23,18 +24,17 @@ export const mergeDecisionsMeta = (event, decisionsMeta, eventType, eventLabel =
|
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
};
|
|
26
|
-
|
|
27
27
|
if (eventLabel) {
|
|
28
28
|
xdm._experience.decisioning.propositionAction = {
|
|
29
29
|
label: eventLabel
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
-
|
|
33
32
|
event.mergeXdm(xdm);
|
|
34
33
|
};
|
|
35
34
|
export const mergeQuery = (event, details) => {
|
|
36
35
|
event.mergeQuery({
|
|
37
|
-
personalization: {
|
|
36
|
+
personalization: {
|
|
37
|
+
...details
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
40
|
};
|
|
@@ -9,13 +9,15 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
|
|
|
9
9
|
OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
10
|
governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
+
|
|
12
13
|
import { createNode, appendNode, removeNode } from "../../../utils/dom";
|
|
13
14
|
import { STYLE } from "../../../constants/tagName";
|
|
14
15
|
import { getElementById, getNonce } from "../dom-actions/dom";
|
|
15
16
|
const PREHIDING_ID = "alloy-prehiding";
|
|
16
|
-
const HIDING_STYLE_DEFINITION = "{ visibility: hidden }";
|
|
17
|
-
// so storing nodes even for multiple Alloy instances is fine
|
|
17
|
+
const HIDING_STYLE_DEFINITION = "{ visibility: hidden }";
|
|
18
18
|
|
|
19
|
+
// Using global is OK since we have a single DOM
|
|
20
|
+
// so storing nodes even for multiple Alloy instances is fine
|
|
19
21
|
const styleNodes = {};
|
|
20
22
|
export const hideElements = prehidingSelector => {
|
|
21
23
|
// if we have different events with the same
|
|
@@ -24,9 +26,9 @@ export const hideElements = prehidingSelector => {
|
|
|
24
26
|
if (styleNodes[prehidingSelector]) {
|
|
25
27
|
return;
|
|
26
28
|
}
|
|
27
|
-
|
|
28
29
|
const nonce = getNonce();
|
|
29
|
-
const attrs = {
|
|
30
|
+
const attrs = {
|
|
31
|
+
...(nonce && {
|
|
30
32
|
nonce
|
|
31
33
|
})
|
|
32
34
|
};
|
|
@@ -39,7 +41,6 @@ export const hideElements = prehidingSelector => {
|
|
|
39
41
|
};
|
|
40
42
|
export const showElements = prehidingSelector => {
|
|
41
43
|
const node = styleNodes[prehidingSelector];
|
|
42
|
-
|
|
43
44
|
if (node) {
|
|
44
45
|
removeNode(node);
|
|
45
46
|
delete styleNodes[prehidingSelector];
|
|
@@ -48,17 +49,15 @@ export const showElements = prehidingSelector => {
|
|
|
48
49
|
export const hideContainers = prehidingStyle => {
|
|
49
50
|
if (!prehidingStyle) {
|
|
50
51
|
return;
|
|
51
|
-
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// If containers prehiding style has been added
|
|
52
55
|
// by customer's prehiding snippet we don't
|
|
53
56
|
// want to add the same node
|
|
54
|
-
|
|
55
|
-
|
|
56
57
|
const node = getElementById(PREHIDING_ID);
|
|
57
|
-
|
|
58
58
|
if (node) {
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
-
|
|
62
61
|
const nonce = getNonce();
|
|
63
62
|
const attrs = {
|
|
64
63
|
id: PREHIDING_ID,
|
|
@@ -76,10 +75,8 @@ export const showContainers = () => {
|
|
|
76
75
|
// If containers prehiding style exists
|
|
77
76
|
// we will remove it
|
|
78
77
|
const node = getElementById(PREHIDING_ID);
|
|
79
|
-
|
|
80
78
|
if (!node) {
|
|
81
79
|
return;
|
|
82
80
|
}
|
|
83
|
-
|
|
84
81
|
removeNode(node);
|
|
85
82
|
};
|