{"version":3,"file":"embed.e93b9821.js","sources":["../../../frontend/features/common/utils/embed.js"],"sourcesContent":["import { featureFlagEnabled } from 'common/utils/helpers';\n\nfunction setStorageVariables() {\n  const params = new URLSearchParams(window.location.search);\n  if (!params.has('embed')) return;\n\n  sessionStorage.setItem('embed', '1');\n\n  if (params.has('origin') && params.has('iframe')) {\n    sessionStorage.setItem('embedOrigin', params.get('origin'));\n    sessionStorage.setItem('embedIframe', params.get('iframe'));\n  }\n}\n\nfunction setDocumentClass() {\n  if (sessionStorage.getItem('embed') === null) return;\n  document.documentElement.classList.add('embed');\n}\n\n/**\n * @param {boolean} once\n */\nfunction setupHeightUpdates(once) {\n  const origin = sessionStorage.getItem('embedOrigin');\n  const iframe = sessionStorage.getItem('embedIframe');\n  if (origin === null || iframe === null) return;\n\n  const defaultData = {\n    name: 'documentHeightChange',\n    documentHeight: 400,\n    iframe,\n  };\n\n  const sendHeight = () => {\n    const data = {\n      ...defaultData,\n      documentHeight: document.documentElement.getBoundingClientRect().height,\n    };\n\n    window.parent.postMessage(data, origin);\n  };\n\n  const observer = new ResizeObserver(sendHeight);\n\n  window.addEventListener('beforeunload', () => {\n    observer.disconnect();\n    window.parent.postMessage(defaultData, origin);\n  });\n\n  if (once) sendHeight();\n  else observer.observe(document.documentElement);\n}\n\n/**\n * @param {boolean} once\n */\nexport function setupEmbeddedContent(once) {\n  setStorageVariables();\n  setDocumentClass();\n  setupHeightUpdates(once);\n}\n\n/**\n * @param {string} url\n */\nexport function getEmbedSnippet(url) {\n  return `<div class=\"zencity-engage-embed\" data-embed-url=\"${url}\"></div>\n<script>\n  !function(e,t,r){if(!e.zcEngageEmbed){var i=e.zcEngageEmbed=t.createElement(r);\n  i.src=\"${window.location.origin}/packs/embed.js\",i.defer=!0;\n  var n=t.getElementsByTagName(r)[0];n.parentNode.insertBefore(i,n)}}\n  (window,document,\"script\");\n</script>`;\n}\n\n/**\n * Get the widget snippet\n * @param {string} dataName\n * @param {string | number} id\n * @param {object} data\n * @returns\n */\nexport function getWidgetSnippet(dataName, id, language = 'en', data = {}) {\n  const dataStr = Object.entries(data)\n    .map(([key, value]) => `data-${key}=\"${value}\"`)\n    .join(' ');\n\n  return `<div class='civilspace-widget editor' ${dataName}='${id}' data-language='${language}' ${dataStr}></div>\n<script>\ngon={};gon.featureFlagPublishUI=${featureFlagEnabled('publishing_ui')};\n</script>\n<script>\n  !function(e,t,r){if(!e.cswidget){var i=e.cswidget=t.createElement(r);\n  i.src=\"${window.location.origin}/packs/widget.js\",i.defer=!0;\n  var n=t.getElementsByTagName(r)[0];n.parentNode.insertBefore(i,n)}}\n  (window,document,\"script\");\n</script>`;\n}\n\n/**\n * Get the engagement widget snippet\n * @param {string | number} engagementId\n * @param {string} language\n * @param {object} data\n * @returns string\n */\nexport function getEngagementWidgetSnippet(engagementId, language, data) {\n  return getWidgetSnippet('data-engagement-id', engagementId, language, data);\n}\n"],"names":["setStorageVariables","params","setDocumentClass","setupHeightUpdates","once","origin","iframe","defaultData","sendHeight","data","observer","setupEmbeddedContent","getEmbedSnippet","url","getWidgetSnippet","dataName","id","language","dataStr","key","value","featureFlagEnabled","getEngagementWidgetSnippet","engagementId"],"mappings":"sZAEA,SAASA,GAAsB,CAC7B,MAAMC,EAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM,EACrD,CAACA,EAAO,IAAI,OAAO,IAER,eAAA,QAAQ,QAAS,GAAG,EAE/BA,EAAO,IAAI,QAAQ,GAAKA,EAAO,IAAI,QAAQ,IAC7C,eAAe,QAAQ,cAAeA,EAAO,IAAI,QAAQ,CAAC,EAC1D,eAAe,QAAQ,cAAeA,EAAO,IAAI,QAAQ,CAAC,GAE9D,CAEA,SAASC,GAAmB,CACtB,eAAe,QAAQ,OAAO,IAAM,MAC/B,SAAA,gBAAgB,UAAU,IAAI,OAAO,CAChD,CAKA,SAASC,EAAmBC,EAAM,CAC1B,MAAAC,EAAS,eAAe,QAAQ,aAAa,EAC7CC,EAAS,eAAe,QAAQ,aAAa,EAC/C,GAAAD,IAAW,MAAQC,IAAW,KAAM,OAExC,MAAMC,EAAc,CAClB,KAAM,uBACN,eAAgB,IAChB,OAAAD,CAAA,EAGIE,EAAa,IAAM,CACvB,MAAMC,EAAO,CACX,GAAGF,EACH,eAAgB,SAAS,gBAAgB,sBAAwB,EAAA,MAAA,EAG5D,OAAA,OAAO,YAAYE,EAAMJ,CAAM,CAAA,EAGlCK,EAAW,IAAI,eAAeF,CAAU,EAEvC,OAAA,iBAAiB,eAAgB,IAAM,CAC5CE,EAAS,WAAW,EACb,OAAA,OAAO,YAAYH,EAAaF,CAAM,CAAA,CAC9C,EAEGD,EAAiBI,IACPE,EAAA,QAAQ,SAAS,eAAe,CAChD,CAKO,SAASC,EAAqBP,EAAM,CACrBJ,IACHE,IACjBC,EAAmBC,CAAI,CACzB,CAKO,SAASQ,EAAgBC,EAAK,CACnC,MAAO,qDAAqDA;AAAA;AAAA;AAAA,WAGnD,OAAO,SAAS;AAAA;AAAA;AAAA,WAI3B,CASO,SAASC,EAAiBC,EAAUC,EAAIC,EAAW,KAAMR,EAAO,GAAI,CACzE,MAAMS,EAAU,OAAO,QAAQT,CAAI,EAChC,IAAI,CAAC,CAACU,EAAKC,CAAK,IAAM,QAAQD,MAAQC,IAAQ,EAC9C,KAAK,GAAG,EAEJ,MAAA,yCAAyCL,MAAaC,qBAAsBC,MAAaC;AAAA;AAAA,kCAEhEG,EAAmB,eAAe;AAAA;AAAA;AAAA;AAAA,WAIzD,OAAO,SAAS;AAAA;AAAA;AAAA,WAI3B,CASgB,SAAAC,EAA2BC,EAAcN,EAAUR,EAAM,CACvE,OAAOK,EAAiB,qBAAsBS,EAAcN,EAAUR,CAAI,CAC5E"}