{"version":3,"file":"modern.widget.4BJ4nekM.js","names":["utils.text.numberToLocaleString","PropTypes","initApiRequester","require_react","__toESM","tn","t","require_client","CardTypeSelector","numberToLocaleString","require_prop_types","projectShape","getStatus","getShortCountdown","getProgress","import_client","initGTM","key","l","w","f","d","s","j","trackWidget","event","\"siteCategory\"","\"pageCategory\"","\"ululeProjectId\"","projectId","analytics","analytic","import_prop_types","import_jsx_runtime","require_jsx_runtime","Widget","progress","project","countdownText","rates","container","EXTRA_FIELDS","configure","renderWidget","api","projectSlug","data"],"sources":["../../src/modern/features/widget/utils.js","../../src/modern/features/widget/Widget.js","../../src/modern/features/widget/index.js"],"sourcesContent":["function initGTM(key) {\n if (!key) return\n\n ;(function(w, d, s, l, i) {\n w[l] = w[l] || []\n w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' })\n var f = d.getElementsByTagName(s)[0],\n j = d.createElement(s),\n dl = l != 'dataLayer' ? '&l=' + l : ''\n j.async = true\n j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl\n f.parentNode.insertBefore(j, f)\n })(window, document, 'script', 'dataLayer', key)\n}\n\nexport function trackWidget(projectId, analytics = []) {\n const event = {\n 'siteCategory': 'External widget',\n 'pageCategory': 'Project external reference',\n 'ululeProjectId': `${projectId}`\n }\n\n if (analytics && analytics.length > 0) {\n event.poTagIDs = {}\n\n analytics.forEach(analytic => {\n switch (analytic.type) {\n case 'google':\n event.poTagIDs.poGApropertyID = analytic.tag\n break\n case 'google_ads_remarketing':\n event.poTagIDs.poGAdsRemarketingConversionID = analytic.tag\n break\n case 'facebook':\n event.poTagIDs.poFBpixelID = analytic.tag\n break\n case 'twitter':\n event.poTagIDs.poTWpixelID = analytic.tag\n break\n }\n })\n }\n\n window.dataLayer.push(event)\n\n // NOTE: Google Tag Manager MUST be instanciated after first dataLayer push\n initGTM(window.UFE.gtmKey)\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport { t, tn } from '@owl-nest/localize'\nimport { CardTypeSelector } from '@ulule/duvet/CardTypeSelector.tsx'\nimport * as utils from '@owl-nest/utils'\n\nimport { getProgress, getShortCountdown, getStatus } from '$models/projects'\nimport { projectShape } from '$utils/prop-types'\n\nconst Widget = ({ project, rates }) => {\n const progress = getProgress(project)\n const countdownText = getShortCountdown(project)\n\n // TODO: Remove this once we have the spec for the archived version of the project card.\n if (project.is_cancelled) {\n return null\n }\n\n return (\n \n )\n}\n\nWidget.propTypes = {\n project: projectShape,\n rates: PropTypes.object,\n}\n\nexport default Widget\n","import * as React from 'react'\nimport * as ReactDOM from 'react-dom/client'\n\nimport { configure as initApiRequester, api } from '$utils/apiRequester'\nimport { trackWidget } from './utils'\nimport Widget from './Widget'\n\nconst { projectSlug } = window.WIDGET_DATA\nconst rates = window.CURRENCIES.RATES\nconst container = document.getElementById('react-ulule-widget')\n\nconst EXTRA_FIELDS = ['partnerships']\n\ninitApiRequester(window.UFE.api)\n\nfunction renderWidget(project) {\n const root = ReactDOM.createRoot(container)\n root.render()\n}\n\nwindow.addEventListener('js:location:loaded', async (event) => {\n api('ulule')\n .get(`/projects/${projectSlug}?extra_fields=${EXTRA_FIELDS.join(',')}`)\n .then((project) => {\n if (project.analytics_count) {\n api('ulule')\n .get(`/projects/${project.id}/analytics`)\n .then((data) => {\n const analytics = (data && data.analytics) || []\n trackWidget(project.id, analytics)\n })\n } else {\n trackWidget(project.id)\n }\n\n renderWidget(project)\n })\n})\n"],"mappings":"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"}