__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "ClickTracker": () => (/* binding */ ClickTracker) /* harmony export */ }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ "./node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs"); /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/.pnpm/@aws-amplify+core@5.8.14_react-native@0.79.2_@babel+core@7.27.1_react@19.1.0_/node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js"); /* harmony import */ var _BaseTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseTracker */ "./node_modules/.pnpm/@aws+clickstream-web@0.12.4_react-native@0.79.2_@babel+core@7.27.1_react@19.1.0_/node_modules/@aws/clickstream-web/lib-esm/tracker/BaseTracker.js"); /* harmony import */ var _PageViewTracker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PageViewTracker */ "./node_modules/.pnpm/@aws+clickstream-web@0.12.4_react-native@0.79.2_@babel+core@7.27.1_react@19.1.0_/node_modules/@aws/clickstream-web/lib-esm/tracker/PageViewTracker.js"); /* harmony import */ var _provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../provider */ "./node_modules/.pnpm/@aws+clickstream-web@0.12.4_react-native@0.79.2_@babel+core@7.27.1_react@19.1.0_/node_modules/@aws/clickstream-web/lib-esm/provider/index.js"); // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_3__.ConsoleLogger('ClickTracker'); var ClickTracker = /** @class */ (function (_super) { (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__extends)(ClickTracker, _super); function ClickTracker() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.processedElements = new WeakSet(); return _this; } ClickTracker.prototype.init = function () { this.trackClick = this.trackClick.bind(this); this.trackDocumentClick = this.trackDocumentClick.bind(this); document.addEventListener('click', this.trackDocumentClick); var currentDomain = window.location.host; var domainList = this.context.configuration.domainList; if (!domainList.includes(currentDomain)) { domainList.push(currentDomain); } this.addClickListenerForATag(); }; ClickTracker.prototype.trackDocumentClick = function (event) { _PageViewTracker__WEBPACK_IMPORTED_MODULE_1__.PageViewTracker.updateIdleDuration(); if (!this.context.configuration.isTrackClickEvents) return; var targetElement = event.target; var element = this.findATag(targetElement); if (!element || this.processedElements.has(element)) return; this.trackClick(event, element); }; ClickTracker.prototype.trackClick = function (event, documentElement) { var _a; if (documentElement === void 0) { documentElement = undefined; } if (!this.context.configuration.isTrackClickEvents) return; var element = documentElement; if (!element) { var targetElement = event.target; element = this.findATag(targetElement); } if (element !== null) { var linkUrl = element.getAttribute('href'); if (linkUrl === null || linkUrl.length === 0) return; var linkDomain = ''; try { var url = new URL(linkUrl); linkDomain = url.host; } catch (error) { logger.debug('parse link domain failed: ' + error); } if (linkDomain === '') return; var linkClasses = element.getAttribute('class'); var linkId = element.getAttribute('id'); var outbound = !this.context.configuration.domainList.includes(linkDomain); this.provider.record({ name: _provider__WEBPACK_IMPORTED_MODULE_2__.Event.PresetEvent.CLICK, attributes: (_a = {}, _a[_provider__WEBPACK_IMPORTED_MODULE_2__.Event.ReservedAttribute.LINK_URL] = linkUrl, _a[_provider__WEBPACK_IMPORTED_MODULE_2__.Event.ReservedAttribute.LINK_DOMAIN] = linkDomain, _a[_provider__WEBPACK_IMPORTED_MODULE_2__.Event.ReservedAttribute.LINK_CLASSES] = linkClasses, _a[_provider__WEBPACK_IMPORTED_MODULE_2__.Event.ReservedAttribute.LINK_ID] = linkId, _a[_provider__WEBPACK_IMPORTED_MODULE_2__.Event.ReservedAttribute.OUTBOUND] = outbound, _a), }); } }; ClickTracker.prototype.addClickListenerForATag = function () { var _this = this; var observer = new MutationObserver(function (mutationsList) { var e_1, _a; var _loop_1 = function (mutation) { if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { var target = mutation.target; if (target instanceof Element) { var aTags_1 = target.querySelectorAll('a'); aTags_1.forEach(function (aTag) { if (!_this.processedElements.has(aTags_1)) { aTag.addEventListener('click', _this.trackClick); _this.processedElements.add(aTag); } }); } } }; try { for (var mutationsList_1 = (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__values)(mutationsList), mutationsList_1_1 = mutationsList_1.next(); !mutationsList_1_1.done; mutationsList_1_1 = mutationsList_1.next()) { var mutation = mutationsList_1_1.value; _loop_1(mutation); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (mutationsList_1_1 && !mutationsList_1_1.done && (_a = mutationsList_1.return)) _a.call(mutationsList_1); } finally { if (e_1) throw e_1.error; } } }); observer.observe(document.documentElement, { childList: true, subtree: true, }); }; ClickTracker.prototype.findATag = function (element, depth) { if (depth === void 0) { depth = 0; } if (element && depth < 3) { if (element.tagName === 'A') { return element; } else { depth += 1; return this.findATag(element.parentElement, depth); } } return null; }; return ClickTracker; }(_BaseTracker__WEBPACK_IMPORTED_MODULE_0__.BaseTracker)); //# sourceURL=webpack://@pamperedchef/common-analytics/./node_modules/.pnpm/@aws+clickstream-web@0.12.4_react-native@0.79.2_@babel+core@7.27.1_react@19.1.0_/node_modules/@aws/clickstream-web/lib-esm/tracker/ClickTracker.js?