{ "version": 3, "sources": ["../../../../../../owl-nest/common/shadow/src/ga/TrackingProvider.tsx", "../../../../../../owl-nest/common/shadow/src/ga/analyticsTags.ts", "../../../../../../owl-nest/common/shadow/src/ga/context.ts", "../../../../../../owl-nest/common/shadow/src/ga/base/tracking.ts", "../../../../../../owl-nest/common/shadow/src/ga/brand/tracking.ts", "../../../../../../owl-nest/common/shadow/src/ga/social/tracking.ts", "../../../../../../owl-nest/common/shadow/src/ga/project/tracking.ts", "../../../../../../owl-nest/common/shadow/src/ga/transaction/tracking.ts", "../../../../../../owl-nest/common/shadow/src/ga/ecommerce/tracking.ts", "../../../../../../owl-nest/common/shadow/index.ts", "../../../../../../owl-nest/common/shadow/src/ga/useTracking.ts", "../../../../../../owl-nest/common/shadow/src/ga/useFormTracking.ts", "../../../../../../owl-nest/common/shadow/src/ga/usePartnershipTracker.ts", "../../../../../../owl-nest/common/shadow/plausible.ts", "../../../../../../owl-nest/common/shadow/src/plausible/useTracking.ts", "../../../../../../owl-nest/common/shadow/src/plausible/context.ts", "../../../../../../owl-nest/common/shadow/src/plausible/safePush.ts", "../../../../../../owl-nest/common/shadow/src/plausible/useAddressSelectTracking.ts", "../../../../../../owl-nest/common/shadow/src/plausible/TrackingProvider.tsx"], "sourcesContent": ["import * as React from 'react'\n\nimport * as api from '@owl-nest/api-client/latest'\nimport * as env from '@owl-nest/config'\n\nimport { getAnalyticsTags } from './analyticsTags'\nimport { trackingContext, TrackingContext } from './context'\nimport { safePusher } from './safePush'\nimport { AnalyticsTags, SITE } from './types'\n\nimport { tracking } from './base/tracking'\nimport { tracking as brandTracking } from './brand/tracking'\nimport { tracking as projectTracking } from './project/tracking'\nimport { tracking as socialTracking } from './social/tracking'\nimport { tracking as transactionTracking } from './transaction/tracking'\nimport { tracking as ecommerceTracking } from './ecommerce/tracking'\n\ndeclare global {\n interface Window {\n dataLayer?: any[]\n google_tag_manager?: any\n ga?: {\n loaded?: boolean\n }\n UFE: any\n }\n}\n\ntype TrackingProviderProps = {\n children: React.ReactNode\n getUserId?: () => number | undefined\n gtmContainerId: string\n pageCategory?: string\n project?: api.Project<'analytics'>\n siteCategory?: SITE\n userLocale?: api.Lang\n}\n\nexport function TrackingProvider({\n children,\n getUserId = () => undefined,\n gtmContainerId,\n pageCategory,\n project,\n siteCategory,\n userLocale,\n}: TrackingProviderProps): React.ReactElement {\n const userConfig = env.useUserEnv()\n\n userLocale = userLocale || userConfig.lang\n\n // If GTM is not initialized, inject the script and push the first event\n // along with useful information (custom analytics tags, project ID, etc.) when available.\n // 2021-04-29 We need the optimize variable to launch GTM when Optimize was previously loaded\n // @ts-ignore\n if (typeof window !== 'undefined' && (window.dataLayer === undefined || window?.UFE?.optimize === true)) {\n // @ts-ignore\n window.UFE = window.UFE || {}\n window.UFE.optimize = false\n const analyticsTags = getAnalyticsTags(project)\n const projectCategory = project?.main_tag?.id\n const ululeProjectId = project?.id\n const ululeUserId = getUserId()\n\n initialize(gtmContainerId, userLocale, {\n analyticsTags,\n pageCategory,\n projectCategory,\n siteCategory,\n ululeProjectId,\n ululeUserId,\n })\n }\n\n const value: TrackingContext = {\n ...tracking(safePusher(gtmContainerId)),\n brand: brandTracking(safePusher(gtmContainerId), project),\n social: socialTracking(safePusher(gtmContainerId), project),\n project: projectTracking(safePusher(gtmContainerId), project, getUserId),\n transaction: transactionTracking(safePusher(gtmContainerId), project),\n ecommerce: ecommerceTracking(safePusher(gtmContainerId), project),\n }\n\n return {children}\n}\n\ntype InitOptions = {\n analyticsTags: AnalyticsTags | undefined\n pageCategory: string | undefined\n projectCategory: number | undefined\n siteCategory: SITE | undefined\n ululeProjectId: number | undefined\n ululeUserId: number | undefined\n}\n\nfunction initialize(gtmContainerId: string, userLocale: api.Lang, options: InitOptions): void {\n if (!gtmContainerId) return\n\n const { analyticsTags, pageCategory, projectCategory, siteCategory, ululeProjectId, ululeUserId } = options\n\n window.dataLayer = window.dataLayer || []\n window.dataLayer.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js',\n userLocale: userLocale,\n ...(analyticsTags !== undefined && { poTagIDs: analyticsTags }),\n ...(pageCategory !== undefined && { pageCategory }),\n ...(projectCategory !== undefined && { projectCategory: String(projectCategory) }),\n ...(siteCategory !== undefined && { siteCategory }),\n ...(ululeProjectId !== undefined && { ululeProjectId: String(ululeProjectId) }),\n ...(ululeUserId !== undefined && { ululeUserId: String(ululeUserId) }),\n })\n\n const firstScript = document.getElementsByTagName('script')[0]\n const newScript = document.createElement('script')\n newScript.async = true\n newScript.src = `https://www.googletagmanager.com/gtm.js?id=${gtmContainerId}`\n\n if (firstScript.parentNode !== null) {\n firstScript.parentNode.insertBefore(newScript, firstScript)\n }\n}\n", "import { Project } from '@owl-nest/api-client/latest'\n\nimport { AnalyticsTags, apiTagTypeToGTM } from './types'\n\nexport function getAnalyticsTags(project?: Project<'analytics'>): AnalyticsTags | undefined {\n const analyticsTags: AnalyticsTags = {}\n\n if (project === undefined || project.analytics === undefined) {\n return undefined\n }\n\n for (const { type, tag } of project.analytics) {\n analyticsTags[apiTagTypeToGTM[type]] = tag\n }\n\n return analyticsTags\n}\n", "import * as React from 'react'\nimport { BrandTracking } from './brand/types'\nimport { ProjectTracking } from './project/types'\nimport { SocialTracking } from './social/types'\nimport { TransactionTracking } from './transaction/types'\nimport { EcommerceTracking } from './ecommerce/types'\nimport { tracking } from './base/tracking'\nimport { tracking as brandTracking } from './brand/tracking'\nimport { tracking as socialTracking } from './social/tracking'\nimport { tracking as projectTracking } from './project/tracking'\nimport { tracking as transactionTracking } from './transaction/tracking'\nimport { tracking as ecommerceTracking } from './ecommerce/tracking'\n\nimport { Tracking } from './base/types'\nimport { safePusher } from './safePush'\n\nexport type TrackingContext = Tracking & {\n brand: BrandTracking\n project: ProjectTracking\n social: SocialTracking\n transaction: TransactionTracking\n ecommerce: EcommerceTracking\n}\n\nexport const trackingContext = React.createContext({\n ...tracking(safePusher()),\n brand: brandTracking(safePusher()),\n social: socialTracking(safePusher()),\n project: projectTracking(safePusher()),\n transaction: transactionTracking(safePusher()),\n ecommerce: ecommerceTracking(safePusher()),\n})\n", "import { SafePush } from '../safePush'\nimport { Tracking } from './types'\n\nexport function tracking(safePush: SafePush): Tracking {\n return {\n track: ({\n eventAction = undefined,\n eventLabel = undefined,\n eventCategory = undefined,\n eventValue = undefined,\n ...params\n }) => {\n safePush({\n eventAction,\n eventLabel,\n eventCategory,\n eventValue,\n ...params,\n })\n },\n }\n}\n", "import { Project } from '@owl-nest/api-client/latest'\n\nimport { getAnalyticsTags } from '../analyticsTags'\nimport { SafePush } from '../safePush'\nimport { BrandTracking } from './types'\nimport { EVENT_TYPE } from '../types'\n\nexport function tracking(safePush: SafePush, project?: Project<'analytics'>): BrandTracking {\n const analyticsTags = getAnalyticsTags(project)\n\n return {\n track: ({ eventAction, eventLabel, eventValue = undefined, ...params }) => {\n safePush({\n ...params,\n event: EVENT_TYPE.BRAND,\n eventCategory: 'Brand visibility',\n eventAction,\n eventLabel,\n eventValue,\n ...(analyticsTags !== undefined && { poTagIDs: analyticsTags }),\n })\n },\n }\n}\n", "import { Project } from '@owl-nest/api-client/latest'\n\nimport { getAnalyticsTags } from '../analyticsTags'\nimport { SafePush } from '../safePush'\nimport { SocialTracking } from './types'\nimport { EVENT_TYPE, SocialEvent } from '../types'\n\nexport function tracking(safePush: SafePush, project?: Project<'analytics'>): SocialTracking {\n const analyticsTags = getAnalyticsTags(project)\n\n return {\n track: ({\n eventAction = undefined,\n eventLabel = undefined,\n eventCategory = undefined,\n eventValue = undefined,\n ...params\n }) => {\n const socialEvent: SocialEvent = {\n ...params,\n event: EVENT_TYPE.SOCIAL,\n eventAction,\n eventLabel,\n eventCategory,\n eventValue,\n ...(analyticsTags !== undefined && { poTagIDs: analyticsTags }),\n }\n\n if (params.socialNetwork === 'Ulule') {\n if (project === undefined) {\n console.error('[shadow]\u00A0social tracking was not initialized (need project)')\n return\n }\n socialEvent.ululeProjectId = project.id\n }\n\n safePush(socialEvent)\n },\n }\n}\n", "import { Project } from '@owl-nest/api-client/latest'\nimport * as logger from '@owl-nest/logger'\n\nimport { getAnalyticsTags } from '../analyticsTags'\nimport { SafePush } from '../safePush'\nimport { ProjectTracking, ProjectTrackingEvent, ProjectTrackingEventPartial } from './types'\nimport { EVENT_TYPE } from '../types'\n\nconst triggered = new Set()\n\nexport function tracking(\n safePush: SafePush,\n project?: Project<'analytics'>,\n getUserId?: () => number | undefined,\n): ProjectTracking {\n const analyticsTags = getAnalyticsTags(project)\n\n function track({\n eventAction,\n eventLabel = undefined,\n eventCategory,\n eventValue = undefined,\n ...params\n }: ProjectTrackingEventPartial): void {\n if (project === undefined) {\n console.error('[shadow] project tracking was not initialized (need project)')\n return\n }\n\n if (getUserId === undefined) {\n logger.err('[shadow] project tracking was not initialized (need getUserId)')\n return\n }\n\n const userId = getUserId()\n\n safePush({\n ...params,\n event: EVENT_TYPE.GENERIC,\n ululeProjectId: String(project.id),\n ululeUserId: String(userId),\n eventAction,\n eventLabel,\n eventCategory,\n eventValue,\n ...(analyticsTags !== undefined && { poTagIDs: analyticsTags }),\n })\n }\n\n return {\n track,\n trackOnce: ({\n eventAction,\n eventLabel = undefined,\n eventCategory,\n eventValue = undefined,\n ...params\n }: ProjectTrackingEventPartial) => {\n if (triggered.has(eventAction)) {\n return\n }\n triggered.add(eventAction)\n track({ eventAction, eventLabel, eventCategory, eventValue, ...params })\n },\n }\n}\n", "import { Project } from '@owl-nest/api-client/latest'\n\nimport { getAnalyticsTags } from '../analyticsTags'\nimport { SafePush } from '../safePush'\nimport { TransactionTracking, TransactionTrackingEvent, TransactionTrackingEventPartial } from './types'\nimport { EVENT_TYPE } from '../types'\n\nexport function tracking(safePush: SafePush, project?: Project<'analytics'>): TransactionTracking {\n const analyticsTags = getAnalyticsTags(project)\n\n function track(event: TransactionTrackingEventPartial): void {\n if (project === undefined) {\n console.error('[shadow] transaction tracking was not initialized (need project)')\n return\n }\n\n safePush({\n ...event,\n event: EVENT_TYPE.TRANSACTION,\n ululeProjectId: project.id,\n transactionCurrencyCode: project.currency ?? '',\n ...(analyticsTags !== undefined && { poTagIDs: analyticsTags }),\n })\n }\n\n return { track }\n}\n", "import { Project } from '@owl-nest/api-client/latest'\n\nimport { SafePush } from '../safePush'\nimport { getAnalyticsTags } from '../analyticsTags'\n\nimport { EcommerceEvent, EcommerceEventType, EcommerceTracking, PartialEcommerceEvent } from './types'\n\nconst VIEW_ITEM_BATCH_TIMEOUT = 500\n\nexport function tracking(safePush: SafePush, project?: Project<'analytics'>): EcommerceTracking {\n const viewItemBatch: PartialEcommerceEvent<'view_item'>[] = []\n let pushViewItemBatchTimeout: ReturnType | undefined = undefined\n const analyticsTags = getAnalyticsTags(project)\n\n function track(type: TYPE, event: PartialEcommerceEvent): void {\n if (type === 'view_item') {\n viewItemBatch.push(event)\n\n if (pushViewItemBatchTimeout === undefined) {\n pushViewItemBatchTimeout = setTimeout(() => {\n safePush>({\n event: type,\n fired_from: 'ulule',\n ululeProjectId: project?.id,\n ecommerce: viewItemBatch.reduce(\n (aggregatedEvent, event) => {\n aggregatedEvent.items.push(...event.items)\n return aggregatedEvent\n },\n { items: [] },\n ),\n ...(analyticsTags !== undefined && { poTagIDs: analyticsTags }),\n })\n viewItemBatch.length = 0\n pushViewItemBatchTimeout = undefined\n }, VIEW_ITEM_BATCH_TIMEOUT)\n }\n } else {\n safePush>({\n event: type,\n fired_from: 'ulule',\n ululeProjectId: project?.id,\n ecommerce: event,\n ...(analyticsTags !== undefined && { poTagIDs: analyticsTags }),\n })\n }\n }\n\n return { track }\n}\n", "export { TrackingProvider } from './src/ga/TrackingProvider'\n\nexport { useTracking, type TrackingContext } from './src/ga/useTracking'\n\nexport { useFormTracking, type FormTracker, type TrackedFields } from './src/ga/useFormTracking'\n\nexport { usePartnershipTracker } from './src/ga/usePartnershipTracker'\n\nexport { BRAND_ACTION, CATEGORY, EVENT_TYPE, SITE, SOCIAL_NETWORK } from './src/ga/types'\n\nexport * as plausible from './plausible'\n", "import * as React from 'react'\nimport { trackingContext, TrackingContext } from './context'\n\nexport { type TrackingContext } from './context'\n\nexport function useTracking(): TrackingContext {\n const context = React.useContext(trackingContext)\n return context\n}\n", "import * as React from 'react'\nimport * as formik from 'formik'\n\nimport { safePusher } from './safePush'\nimport { CATEGORY, EVENT_TYPE, GenericEvent } from './types'\n\nexport type TrackedFields = {\n [field: string]: {\n value: string\n error: string\n }\n}\n\ntype Setter = {\n setValue: (value: string) => void\n markFilled: () => void\n markEmpty: () => void\n}\n\ntype FieldSetters = {\n [K in keyof TRACKED_FIELDS]: Setter\n}\n\ntype FormEvent = Pick\n\nexport type FormTracker = FieldSetters & {\n pushErrorEvent(event: string, error: formik.FormikErrors): void\n pushFormEvent(formEvent: FormEvent): void\n}\n\nexport function useFormTracking(\n eventCategory: CATEGORY,\n trackedFields: TRACKED_FIELDS,\n gtmContainerId?: string | undefined,\n): FormTracker {\n // We don't keep the state in a state, because we don't need a rerender on\n // state update. We juste need a persistent object we can update.\n const trackingState = React.useRef>({})\n\n const safePush = React.useMemo(() => safePusher(gtmContainerId), [])\n\n // On mount, send the list of value/error for tracked field. On mount the form\n // is necessarly empty and without error\n React.useEffect(() => {\n const [stateVariables, errorVariables] = Object.entries(trackedFields).reduce<\n [Record, Record]\n >(\n (accumulator, [_, { value, error }]) => {\n const [stateVariables, errorVariables] = accumulator\n stateVariables[value] = 'empty'\n errorVariables[error] = 'none'\n return accumulator\n },\n [{}, {}],\n )\n\n // Naked push on datalayer. Not risky since we don't need to use any\n // callback. If ga is blocked and the push is simply a noop.\n window.dataLayer?.push(stateVariables)\n window.dataLayer?.push(errorVariables)\n }, [])\n\n const setters = (Object.keys(trackedFields) as (keyof TRACKED_FIELDS & string)[]).reduce<\n FieldSetters\n >((accumulator, key) => {\n accumulator[key] = {\n setValue: (value: string) => setState(key, value),\n markFilled: () => setState(key, 'filled'),\n markEmpty: () => setState(key, 'empty'),\n }\n\n return accumulator\n }, {} as any)\n\n return { ...setters, pushErrorEvent, pushFormEvent }\n\n function pushErrorEvent(event: string, errors: formik.FormikErrors): void {\n const messages: Record = {}\n for (const [field, message] of Object.entries(errors)) {\n if (message && trackedFields[field]) {\n messages[trackedFields[field].error] = String(message)\n }\n }\n if (Object.keys(messages).length !== 0) {\n window.dataLayer?.push({ event, ...messages })\n }\n }\n\n function pushFormEvent(formEvent: FormEvent): void {\n const event = {\n event: EVENT_TYPE.GENERIC,\n eventCategory,\n ...formEvent,\n } as GenericEvent\n\n if (event.eventCallback && !event.eventTimeout) {\n event.eventTimeout = 500\n }\n\n safePush(event)\n }\n\n function setState(field: string, value: string): void {\n // noop value has not changed\n if (trackingState.current[field] === value) {\n return\n }\n\n trackingState.current[field] = value\n window.dataLayer?.push({\n event: EVENT_TYPE.GENERIC,\n eventCategory,\n [trackedFields[field].value]: value,\n })\n }\n}\n", "import * as React from 'react'\nimport 'intersection-observer'\n\nimport { useDramaticallyInefficientLocation } from '@owl-nest/hooks/src/useDramaticallyInefficientLocation'\n\nimport { SimpleBrandEvent } from './brand/types'\nimport { BRAND_ACTION } from './types'\nimport { useTracking } from './useTracking'\n\ndeclare global {\n interface Window {\n BRANDS_ON_PAGE: string[]\n }\n}\n\nif (typeof window !== 'undefined') {\n window.BRANDS_ON_PAGE = []\n}\n\ntype Config = {\n click?: {\n enabled?: boolean\n once?: boolean\n }\n eventPosition?: string\n /**\n * If falsy, limits unique (once = true) events to one Location, and re-tracks them when Location changes.\n * Enabling this allows ignoring Location change when keeping record of already tracked events. Defaults to `false`.\n */\n ignoreLocationChange?: boolean\n impression?: {\n enabled?: boolean\n once?: boolean\n }\n}\n\ntype PartnershipTracker = {\n sendBrandsOnPage: () => void\n}\n\nexport function usePartnershipTracker(\n partnershipUserId: number | undefined,\n ref: React.RefObject,\n config: Config,\n): PartnershipTracker {\n const { brand } = useTracking()\n const location = useDramaticallyInefficientLocation()\n\n if (partnershipUserId === undefined) {\n return { sendBrandsOnPage }\n }\n\n const ignoreLocationChange = config.ignoreLocationChange ?? false\n\n const trackClickEnabled = config?.click?.enabled ?? true\n const trackClickOnce = config?.click?.once ?? true\n\n const trackImpressionEnabled = config?.impression?.enabled ?? true\n const trackImpressionOnce = config?.impression?.once ?? true\n\n const brandId = `_${partnershipUserId}_`\n\n React.useEffect(() => {\n if (!window.BRANDS_ON_PAGE.includes(brandId)) {\n window.BRANDS_ON_PAGE.push(brandId)\n }\n if (trackClickEnabled && ref.current) {\n ref.current.addEventListener('click', trackClick)\n }\n if (trackImpressionEnabled && ref.current) {\n const observer = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n trackImpression()\n }\n }\n })\n observer.observe(ref.current)\n }\n }, [])\n\n const triggered = React.useRef(new Set())\n\n React.useEffect(() => {\n if (!ignoreLocationChange) {\n triggered.current.clear()\n }\n }, [ignoreLocationChange, location])\n\n return { sendBrandsOnPage }\n\n // TODO: Improve this behaviour to ensure sending the event once initially visible brands are ready.\n // To achieve that, this should probably live as a HoC/hook on its own.\n function sendBrandsOnPage(): void {\n if (window.BRANDS_ON_PAGE && window.BRANDS_ON_PAGE.length > 0) {\n const brandEvent: SimpleBrandEvent = {\n eventAction: BRAND_ACTION.ON_PAGE,\n eventLabel: window.BRANDS_ON_PAGE.join(','),\n nonInteractionEvent: true,\n }\n\n brand.track(brandEvent)\n }\n }\n\n function trackClick(event?: MouseEvent): void {\n const brandEvent: SimpleBrandEvent = {\n eventAction: BRAND_ACTION.CLICK,\n eventLabel: brandId,\n linkUrl: (event?.target as any).href,\n ...(config.eventPosition && { logoId: config.eventPosition }),\n }\n\n if (trackClickOnce && triggered.current.has(brandEvent.eventAction)) {\n return\n }\n triggered.current.add(brandEvent.eventAction)\n\n brand.track(brandEvent)\n }\n\n function trackImpression(): void {\n const brandEvent: SimpleBrandEvent = {\n eventAction: BRAND_ACTION.IMPRESSION,\n eventLabel: brandId,\n ...(config.eventPosition && { logoId: config.eventPosition }),\n nonInteractionEvent: true,\n }\n\n if (trackClickEnabled) {\n brandEvent.eventAction = BRAND_ACTION.IMPRESSION_CLICKABLE\n }\n\n if (trackImpressionOnce && triggered.current.has(brandEvent.eventAction)) {\n return\n }\n triggered.current.add(brandEvent.eventAction)\n\n brand.track(brandEvent)\n }\n}\n", "export * from './src/plausible/useTracking'\nexport * from './src/plausible/useAddressSelectTracking'\nexport * from './src/plausible/TrackingProvider'\nexport * from './src/plausible/types'\n", "import * as React from 'react'\nimport { trackingContext } from './context'\nimport { Track } from './types'\n\nexport function useTracking(): Track {\n return React.useContext(trackingContext)\n}\n", "import * as React from 'react'\nimport * as logger from '@owl-nest/logger'\nimport { PlausibleEvent, Track } from './types'\nimport { fakePush } from './safePush'\n\nexport function simulateTrack({ type, props, callback }: PlausibleEvent): void {\n logger.warn('[shadow:plausible] plausible tracking context was not initialized')\n fakePush(type, { props, callback })\n}\n\nexport const trackingContext = React.createContext(simulateTrack)\n", "import * as logger from '@owl-nest/logger'\n\nexport function safePush(...[event, options]: Parameters>): void {\n const plausible = window.plausible\n if (plausible === undefined) {\n logger.warn('[shadow:plausible] plausible was not initialized')\n return fakePush(event, options)\n }\n return purePush(plausible, event, options)\n}\n\nexport function fakePush(...[_, options]: Parameters>): void {\n const callback = options?.callback\n setTimeout(() => {\n if (callback) {\n callback()\n }\n }, 0)\n}\n\nfunction purePush(\n plausible: NonNullable,\n ...[event, options]: Parameters>\n): void {\n const callback = options?.callback\n setTimeout(() => {\n if (callback) {\n callback()\n }\n }, 0)\n plausible(event, { props: options?.props })\n}\n", "import { useTracking } from './useTracking'\nimport { BasePlausibleEvent } from './types'\n\ntype AddressSelectTrackingEvent = Omit & {\n interaction: 'Manual' | 'Autocomplete'\n}\n\ntype AddressSelectTrack = (event: AddressSelectTrackingEvent) => void\n\nexport function useAddressSelectTracking(): AddressSelectTrack {\n const track = useTracking()\n\n return (event) => {\n track({\n type: 'Address_Selection',\n props: {\n interaction: event.interaction,\n },\n callback: event.callback,\n })\n }\n}\n", "import * as React from 'react'\n\nimport * as logger from '@owl-nest/logger'\n\nimport { trackingContext } from './context'\nimport { Context, PlausibleEvent, Track } from './types'\nimport { safePush } from './safePush'\n\ntype TrackingProviderProps = {\n context?: Context\n children: React.ReactNode\n}\n\nexport function TrackingProvider({\n children,\n context,\n}: TrackingProviderProps): React.ReactElement {\n if (!context) {\n logger.warn('[shadow:plausible] No context provided')\n }\n\n return {children}\n}\n\nfunction getTrack(context?: string): Track {\n return (event: PlausibleEvent) => {\n const props = { ...event.props }\n if (context && !props.context) {\n props.context = context\n }\n\n safePush(event.type, { props, callback: event.callback })\n }\n}\n\n// define temporary plausible function queuing events before plausible script\n// init.\nif (typeof window !== 'undefined' && (window as any).plausible === undefined) {\n window.plausible = (...args) => {\n // we know `window.plausible` is defined, we are currently defining it.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const queue = (window.plausible!.q = window.plausible!.q ?? [])\n queue.push(args)\n }\n}\n"], "mappings": "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", "names": ["init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "getAnalyticsTags", "project", "analyticsTags", "type", "tag", "apiTagTypeToGTM", "init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "tracking", "safePush", "_a", "_b", "eventAction", "eventLabel", "eventCategory", "eventValue", "params", "__objRest", "__spreadValues", "init_define_process_env", "init_sentry_release_injection_stub", "tracking", "safePush", "project", "analyticsTags", "getAnalyticsTags", "_a", "_b", "eventAction", "eventLabel", "eventValue", "params", "__objRest", "__spreadValues", "__spreadProps", "init_define_process_env", "init_sentry_release_injection_stub", "tracking", "safePush", "project", "analyticsTags", "getAnalyticsTags", "_a", "_b", "eventAction", "eventLabel", "eventCategory", "eventValue", "params", "__objRest", "socialEvent", "__spreadValues", "__spreadProps", "init_define_process_env", "init_sentry_release_injection_stub", "triggered", "tracking", "safePush", "project", "getUserId", "analyticsTags", "getAnalyticsTags", "track", "_a", "_b", "eventAction", "eventLabel", "eventCategory", "eventValue", "params", "__objRest", "err", "userId", "__spreadValues", "__spreadProps", "_c", "_d", "init_define_process_env", "init_sentry_release_injection_stub", "tracking", "safePush", "project", "analyticsTags", "getAnalyticsTags", "track", "event", "_a", "__spreadValues", "__spreadProps", "init_define_process_env", "init_sentry_release_injection_stub", "VIEW_ITEM_BATCH_TIMEOUT", "tracking", "safePush", "project", "viewItemBatch", "pushViewItemBatchTimeout", "analyticsTags", "getAnalyticsTags", "track", "type", "event", "__spreadValues", "aggregatedEvent", "trackingContext", "__spreadProps", "__spreadValues", "tracking", "safePusher", "TrackingProvider", "children", "getUserId", "gtmContainerId", "pageCategory", "project", "siteCategory", "userLocale", "_a", "_b", "userConfig", "useUserEnv", "analyticsTags", "getAnalyticsTags", "projectCategory", "ululeProjectId", "ululeUserId", "initialize", "value", "__spreadProps", "__spreadValues", "tracking", "safePusher", "trackingContext", "options", "firstScript", "newScript", "init_define_process_env", "init_sentry_release_injection_stub", "init_define_process_env", "init_sentry_release_injection_stub", "React", "useTracking", "trackingContext", "init_define_process_env", "init_sentry_release_injection_stub", "React", "useFormTracking", "eventCategory", "trackedFields", "gtmContainerId", "trackingState", "safePush", "safePusher", "_a", "_b", "stateVariables", "errorVariables", "accumulator", "_", "value", "error", "setters", "key", "setState", "__spreadProps", "__spreadValues", "pushErrorEvent", "pushFormEvent", "event", "errors", "messages", "field", "message", "formEvent", "init_define_process_env", "init_sentry_release_injection_stub", "React", "usePartnershipTracker", "partnershipUserId", "ref", "config", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_i", "brand", "useTracking", "location", "useDramaticallyInefficientLocation", "sendBrandsOnPage", "ignoreLocationChange", "trackClickEnabled", "trackClickOnce", "trackImpressionEnabled", "trackImpressionOnce", "brandId", "trackClick", "entries", "entry", "trackImpression", "triggered", "brandEvent", "event", "__spreadValues", "__spreadProps", "plausible_exports", "__export", "TrackingProvider", "useAddressSelectTracking", "useTracking", "init_define_process_env", "init_sentry_release_injection_stub", "init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "safePush", "event", "options", "plausible", "warn", "fakePush", "purePush", "_", "callback", "simulateTrack", "type", "props", "callback", "warn", "fakePush", "trackingContext", "useTracking", "trackingContext", "init_define_process_env", "init_sentry_release_injection_stub", "useAddressSelectTracking", "track", "useTracking", "event", "init_define_process_env", "init_sentry_release_injection_stub", "React", "TrackingProvider", "children", "context", "warn", "trackingContext", "getTrack", "event", "props", "__spreadValues", "safePush", "args", "_a"] }