{"version":3,"file":"page_view-DbxJZqxt.js","sources":["../../../app/assets/javascripts/app/tracking/google/google_analytics_4/gtag.ts","../../../app/assets/javascripts/app/tracking/google/page_view.ts"],"sourcesContent":["\nfunction gtag(...args: any) {\n window.dataLayer!.push(args)\n}\n\nexport {\n gtag,\n}\n","\nimport _memoize from \"lodash/memoize\"\nimport log from \"plugins/loglevel/index\"\n\nimport WaitObjectByPathPromise from \"app/wait_object_by_path_promise\"\n\nimport DataRetriever from \"app/data_retriever\"\nimport { gtag } from \"app/tracking/google/google_analytics_4/gtag\"\n\nconst LOGGING_PREFIX = \"[App.Tracking.Google.PageView.track]\"\n// Doc might not be ready on JS execution\nconst getGoogleAnalyticsTrackerName = _memoize(() => {\n const name = DataRetriever.get(\"google-analytics-tracker-name\")\n\n if (typeof name !== \"string\" || name.length === 0){\n return null\n }\n return name\n})\n\n/*\n * @see https://developers.google.com/analytics/devguides/collection/analyticsjs/pages\n *\n * @param {string} path_path - Must start with slash\n * @param {object} options\n */\nconst track = (page_path: string, options = {}): void => {\n if ( ! /^\\//.test(page_path) ){\n log.warn(\"page_path does NOT start with slash\")\n return\n }\n\n const debug_message_fragments = [\n LOGGING_PREFIX,\n \"about to track PageView with:\",\n `page_path: [${page_path}]`,\n ]\n\n log.debug(debug_message_fragments.join(\" \"))\n\n // UA implementation\n WaitObjectByPathPromise(\"ga\")\n .then((ga) => {\n const final_options = Object.assign({}, {\n hitType: \"pageview\", // Required.\n page: page_path, // Required.\n }, options)\n const tracker_name = getGoogleAnalyticsTrackerName()\n\n if (tracker_name == null){\n ga(\"send\", final_options)\n }\n else{\n ga(`${tracker_name}.send`, final_options)\n }\n\n log.debug(`${LOGGING_PREFIX} PageView tracked`)\n log.debug(`page_path: ${page_path}`)\n })\n .catch(() => {\n log.warn(\"ga is undefined!\")\n })\n\n // GA4 implementation\n //\n // `page_view` doc:\n // https://developers.google.com/tag-platform/gtagjs/reference/events#page_view\n //\n // window.location should be used instead of following:\n // `${window.location.protocol}//${window.location.host}/${page_path}`\n gtag(\"event\", \"page_view\", {\n page_location: window.location,\n })\n}\n\nexport default { track }\nexport { track }\n"],"names":["gtag","args","LOGGING_PREFIX","getGoogleAnalyticsTrackerName","_memoize","name","DataRetriever","track","page_path","options","log","debug_message_fragments","WaitObjectByPathPromise","ga","final_options","tracker_name","Google_PageView"],"mappings":"8JACA,SAASA,KAAQC,EAAW,CACnB,OAAA,UAAW,KAAKA,CAAI,CAC7B,CCMA,MAAMC,EAAiB,uCAEjBC,EAAgCC,EAAS,IAAM,CAC7C,MAAAC,EAAOC,EAAc,IAAI,+BAA+B,EAE9D,OAAI,OAAOD,GAAS,UAAYA,EAAK,SAAW,EACvC,KAEFA,CACT,CAAC,EAQKE,EAAQ,CAACC,EAAmBC,EAAU,KAAa,CACvD,GAAK,CAAE,MAAM,KAAKD,CAAS,EAAG,CAC5BE,EAAI,KAAK,qCAAqC,EAC9C,MAAA,CAGF,MAAMC,EAA0B,CAC9BT,EACA,gCACA,eAAe,OAAAM,EAAS,IAC1B,EAEAE,EAAI,MAAMC,EAAwB,KAAK,GAAG,CAAC,EAG3CC,EAAwB,IAAI,EAC3B,KAAMC,GAAO,CACZ,MAAMC,EAAgB,OAAO,OAAO,GAAI,CACtC,QAAU,WACV,KAAUN,GACTC,CAAO,EACJM,EAAeZ,EAA8B,EAE/CY,GAAgB,KAClBF,EAAG,OAAQC,CAAa,EAGrBD,EAAA,GAAG,OAAAE,EAAY,SAASD,CAAa,EAGtCJ,EAAA,MAAM,GAAG,OAAAR,EAAc,oBAAmB,EAC1CQ,EAAA,MAAM,cAAc,OAAAF,EAAW,CAAA,CACpC,EACA,MAAM,IAAM,CACXE,EAAI,KAAK,kBAAkB,CAAA,CAC5B,EASDV,EAAK,QAAS,YAAa,CACzB,cAAe,OAAO,QAAA,CACvB,CACH,EAEegB,EAAA,CAAE,MAAAT,CAAM"}