"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3547],{23547:function(e,t,i){let n;i.d(t,{C:function(){return eR},c:function(){return X}});var r,a,s,o,l,d,c,u,E,p,f,y,h,L,S,_,v,m,T=Object.defineProperty,A=(e,t,i)=>t in e?T(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,D=(e,t,i)=>(A(e,"symbol"!=typeof t?t+"":t,i),i);let O=!1,I=e=>(...t)=>{O&&console[e](...t)},N={error:I("error"),warn:I("warn"),log:I("log")},C=new Set(["Symbol","Text","Integer","Number","Boolean","Date","Location","Object"]);function g({dataFromPreviewApp:e,updateFromEntryEditor:t,name:i,locale:n}){var r,a;e[i]=(null==(a=null==(r=t.fields)?void 0:r[i])?void 0:a[n])??null}function w(e){var t;return!!(C.has(e.type)||"Array"===e.type&&(null==(t=e.items)?void 0:t.type)==="Symbol")}function B(e,t){var i;let n={...t,method:e,from:"live-preview",source:"live-preview-sdk",location:window.location.href,version:"2.5.3"};N.log("Send message",n),null==(i=window.top)||i.postMessage(n,"*")}class R{constructor(e,t){D(this,"storageKey"),D(this,"value"),this.storageKey=e,this.value=this.restoreSessionData()||t}restoreSessionData(){try{let e=window.sessionStorage.getItem(this.storageKey),t=e?JSON.parse(e):null;return Array.isArray(t)?new Map(t):null}catch{return null}}get(e){return this.value.get(e)}set(e,t){this.value.set(e,t);try{window.sessionStorage.setItem(this.storageKey,JSON.stringify(Array.from(this.value.entries())))}catch{N.warn(`StorageMap: Failed to set data for key "${e}" in sessionStorage`)}}clear(){this.value.clear();try{window.sessionStorage.removeItem(this.storageKey)}catch{N.warn("StorageMap: Failed to clear data from sessionStorage")}}}function b(e){if("function"==typeof structuredClone)return structuredClone(e);try{return JSON.parse(JSON.stringify(e))}catch(t){return N.warn("Failed to clone data, updates are done on the original one",e,t),e}}function M(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class P{get entities(){return[...this.entitiesMap.values()]}updateEntity(e){this.entitiesMap.set(e.sys.id,e)}getValue(e,t){let i=this.entitiesMap.get(e.sys.id);if(!i||i.sys.type!==e.sys.linkType){console.warn(`Unresolved entity reference: ${e}`);return}return function e(t,i){if(!i.length)return t;try{let[n,...r]=i;return e(t[n],r)}catch{return}}(i,t)}getEntitiesFromMap(e){let t=[],i=[];for(let n of e){let e=this.entitiesMap.get(n);e?t.push(e):i.push(n)}if(i.length)throw Error(`Missing entity in the store (${i.join(",")})`);return t}async fetchAsset(e){try{return this.getEntitiesFromMap([e])[0]}catch{console.warn(`Asset "${e}" is not in the store`);return}}async fetchAssets(e){return this.getEntitiesFromMap(e)}async fetchEntry(e){try{return this.getEntitiesFromMap([e])[0]}catch{console.warn(`Entry "${e}" is not in the store`);return}}async fetchEntries(e){return this.getEntitiesFromMap(e)}constructor({entities:e,locale:t}){M(this,"locale",void 0),M(this,"entitiesMap",void 0),this.entitiesMap=new Map(e.map(e=>[e.sys.id,e])),this.locale=t}}function K(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}(r=v||(v={})).REQUEST_ENTITIES="REQUEST_ENTITIES",r.REQUESTED_ENTITIES="REQUESTED_ENTITIES";class F extends P{cleanupPromise(e){setTimeout(()=>{this.requestCache.delete(e)},300)}getCacheId(e){return 1===e.length?e[0]:e.join(this.cacheIdSeperator)}findMissingEntites(e){let t=[];for(let i of e)this.entitiesMap.get(i)||t.push(i);return t}async fetchEntity(e,t){let i=this.findMissingEntites(e);if(0===i.length)return e.map(e=>this.entitiesMap.get(e));let n=this.getCacheId(i),r=this.requestCache.get(n);if(r)return r;let a=new Promise((r,a)=>{let s=this.subscribe(v.REQUESTED_ENTITIES,t=>{i.every(e=>t.entities.find(t=>t.sys.id===e))&&(clearTimeout(o),r(t.entities),this.cleanupPromise(n),e.forEach(e=>this.cleanupPromise(e)),s())}),o=setTimeout(()=>{a(Error("Request for entities timed out")),s()},this.timeoutDuration);this.sendMessage(v.REQUEST_ENTITIES,{entityIds:i,entityType:t?"Asset":"Entry",locale:this.locale})});return this.requestCache.set(n,a),e.forEach(e=>{this.requestCache.set(e,a)}),(await a).forEach(e=>{this.entitiesMap.set(e.sys.id,e)}),e.map(e=>this.entitiesMap.get(e))}async fetchAsset(e){try{return(await this.fetchAssets([e]))[0]}catch{console.warn(`Failed to request asset ${e}`);return}}fetchAssets(e){return this.fetchEntity(e,!0)}async fetchEntry(e){try{return(await this.fetchEntries([e]))[0]}catch(t){console.warn(`Failed to request entry ${e}`,t);return}}fetchEntries(e){return this.fetchEntity(e)}constructor({entities:e,locale:t,sendMessage:i,subscribe:n,timeoutDuration:r=3e3}){super({entities:e,locale:t}),K(this,"requestCache",new Map),K(this,"sendMessage",void 0),K(this,"subscribe",void 0),K(this,"timeoutDuration",void 0),K(this,"cacheIdSeperator",","),this.sendMessage=i,this.subscribe=n,this.timeoutDuration=r}}let H="Asset";var k=((a=k||{}).FIELD_ID="data-contentful-field-id",a.ENTRY_ID="data-contentful-entry-id",a.LOCALE="data-contentful-locale",a);function U(e){return!!(e&&"object"==typeof e&&"sys"in e&&e.sys.id)}var G=((s=G||{}).IFRAME_CONNECTED="IFRAME_CONNECTED",s.TAGGED_FIELD_CLICKED="TAGGED_FIELD_CLICKED",s.URL_CHANGED="URL_CHANGED",s.SUBSCRIBED="SUBSCRIBED",s.ENTRY_UPDATED="ENTRY_UPDATED",s.INSPECTOR_MODE_CHANGED="INSPECTOR_MODE_CHANGED",s.DEBUG_MODE_ENABLED="DEBUG_MODE_ENABLED",s.ENTITY_NOT_KNOWN="ENTITY_NOT_KNOWN",s.UNKNOWN_REFERENCE_LOADED="UNKNOWN_REFERENCE_LOADED",s);function Y(e){return"linkType"in e.sys&&e.sys.linkType===H}function j(e){return e.charAt(0).toUpperCase()+e.slice(1)}function q(){return n||(n=new F({entities:[],sendMessage:B,subscribe:(e,t)=>{let i=i=>{"object"==typeof i.data&&i.data&&"live-preview"===i.data.from&&i.data.method===e&&t(i.data)};return window.addEventListener("message",i),()=>window.removeEventListener("message",i)},locale:eR.locale})),n}function $(e,t){let i=b(e);for(let e in i.fields)i.fields[e]={[t]:i.fields[e]};return i}async function Q({entityReferenceMap:e,referenceId:t,isAsset:i,locale:n}){var r,a;let s=e.get(t);if(s)return{reference:s,typeName:null!=(a=null==(r=s.sys.contentType)?void 0:r.sys)&&a.id?j(s.sys.contentType.sys.id):H};if(i){let e=await q().fetchAsset(t);if(!e)throw Error(`Unknown reference ${t}`);return{reference:$(e,n),typeName:H}}let o=await q().fetchEntry(t);if(!o)throw Error(`Unknown reference ${t}`);return{reference:$(o,n),typeName:j(o.sys.contentType.sys.id)}}let x=`current-${k.FIELD_ID}`,V=`current-${k.ENTRY_ID}`,W=`current-${k.LOCALE}`,z="contentful-tooltip";class J{constructor({locale:e}){D(this,"tooltip",null),D(this,"currentElementBesideTooltip",null),D(this,"defaultLocale"),this.tooltip=null,this.currentElementBesideTooltip=null,this.defaultLocale=e,this.updateTooltipPosition=this.updateTooltipPosition.bind(this),this.addTooltipOnHover=this.addTooltipOnHover.bind(this),this.createTooltip=this.createTooltip.bind(this),this.clickHandler=this.clickHandler.bind(this),this.createTooltip(),window.addEventListener("scroll",this.updateTooltipPosition),window.addEventListener("mouseover",this.addTooltipOnHover)}receiveMessage(e){("action"in e&&"INSPECTOR_MODE_CHANGED"===e.action||e.method===G.INSPECTOR_MODE_CHANGED)&&document.body.classList.toggle("contentful-inspector--active",e.isInspectorActive)}updateTooltipPosition(){var e;if(!this.currentElementBesideTooltip||!this.tooltip)return!1;let t=this.currentElementBesideTooltip.getBoundingClientRect(),i=null==(e=this.tooltip.parentElement)?void 0:e.getBoundingClientRect();if(t&&i){let e=t.top-32,i=t.left-5;return e<0&&(e=t.top<0?t.top:0),this.tooltip.style.top=e+"px",this.tooltip.style.left=i+"px",!0}return!1}addTooltipOnHover(e){var t,i,n;for(let r of e.composedPath()){if("BODY"===r.nodeName)break;if("function"!=typeof(null==r?void 0:r.getAttribute))continue;let e=r.getAttribute(k.FIELD_ID),a=r.getAttribute(k.ENTRY_ID),s=r.getAttribute(k.LOCALE)??this.defaultLocale;if(e&&a&&s){this.currentElementBesideTooltip=r,this.updateTooltipPosition()&&(null==(t=this.tooltip)||t.setAttribute(x,e),null==(i=this.tooltip)||i.setAttribute(V,a),null==(n=this.tooltip)||n.setAttribute(W,s));break}}}createTooltip(){if(!document.querySelector(`.${z}`)){let e=document.createElement("button");e.classList.add(z),e.innerHTML=`<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
      <path fill-rule="evenodd" clip-rule="evenodd" d="M13.5325 2.22242C13.825 2.51492 13.825 2.98742 13.5325 3.27992L12.16 4.65242L9.3475 1.83992L10.72 0.467422C11.0125 0.174922 11.485 0.174922 11.7775 0.467422L13.5325 2.22242ZM0.25 13.7499V10.9374L8.545 2.64243L11.3575 5.45493L3.0625 13.7499H0.25Z" fill="white"/>
      </svg>Edit`,window.document.body.insertAdjacentElement("beforeend",e),e.addEventListener("click",this.clickHandler),this.tooltip=e}this.updateTooltipPosition()}clickHandler(){if(!this.tooltip)return;let e=this.tooltip.getAttribute(x),t=this.tooltip.getAttribute(V),i=this.tooltip.getAttribute(W);e&&t&&i&&B(G.TAGGED_FIELD_CLICKED,{action:G.TAGGED_FIELD_CLICKED,fieldId:e,entryId:t,locale:i})}}var X="u">typeof globalThis?globalThis:"u">typeof window?window:"u">typeof global?global:"u">typeof self?self:{},Z={},ee={};Object.defineProperty(ee,"__esModule",{value:!0}),ee.BLOCKS=void 0,(o=ee.BLOCKS||(ee.BLOCKS={})).DOCUMENT="document",o.PARAGRAPH="paragraph",o.HEADING_1="heading-1",o.HEADING_2="heading-2",o.HEADING_3="heading-3",o.HEADING_4="heading-4",o.HEADING_5="heading-5",o.HEADING_6="heading-6",o.OL_LIST="ordered-list",o.UL_LIST="unordered-list",o.LIST_ITEM="list-item",o.HR="hr",o.QUOTE="blockquote",o.EMBEDDED_ENTRY="embedded-entry-block",o.EMBEDDED_ASSET="embedded-asset-block",o.EMBEDDED_RESOURCE="embedded-resource-block",o.TABLE="table",o.TABLE_ROW="table-row",o.TABLE_CELL="table-cell",o.TABLE_HEADER_CELL="table-header-cell";var et={};Object.defineProperty(et,"__esModule",{value:!0}),et.INLINES=void 0,(l=et.INLINES||(et.INLINES={})).HYPERLINK="hyperlink",l.ENTRY_HYPERLINK="entry-hyperlink",l.ASSET_HYPERLINK="asset-hyperlink",l.EMBEDDED_ENTRY="embedded-entry-inline";var ei={};Object.defineProperty(ei,"__esModule",{value:!0}),(d=m||(m={})).BOLD="bold",d.ITALIC="italic",d.UNDERLINE="underline",d.CODE="code",d.SUPERSCRIPT="superscript",d.SUBSCRIPT="subscript",ei.default=m;var en={};u=X&&X.__spreadArray||function(e,t,i){if(i||2==arguments.length)for(var n,r=0,a=t.length;r<a;r++)!n&&r in t||(n||(n=Array.prototype.slice.call(t,0,r)),n[r]=t[r]);return e.concat(n||Array.prototype.slice.call(t))},E=X&&X.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},Object.defineProperty(en,"__esModule",{value:!0}),en.V1_MARKS=en.V1_NODE_TYPES=en.TEXT_CONTAINERS=en.HEADINGS=en.CONTAINERS=en.VOID_BLOCKS=en.TABLE_BLOCKS=en.LIST_ITEM_BLOCKS=en.TOP_LEVEL_BLOCKS=void 0,p=E(ei),en.TOP_LEVEL_BLOCKS=[ee.BLOCKS.PARAGRAPH,ee.BLOCKS.HEADING_1,ee.BLOCKS.HEADING_2,ee.BLOCKS.HEADING_3,ee.BLOCKS.HEADING_4,ee.BLOCKS.HEADING_5,ee.BLOCKS.HEADING_6,ee.BLOCKS.OL_LIST,ee.BLOCKS.UL_LIST,ee.BLOCKS.HR,ee.BLOCKS.QUOTE,ee.BLOCKS.EMBEDDED_ENTRY,ee.BLOCKS.EMBEDDED_ASSET,ee.BLOCKS.EMBEDDED_RESOURCE,ee.BLOCKS.TABLE],en.LIST_ITEM_BLOCKS=[ee.BLOCKS.PARAGRAPH,ee.BLOCKS.HEADING_1,ee.BLOCKS.HEADING_2,ee.BLOCKS.HEADING_3,ee.BLOCKS.HEADING_4,ee.BLOCKS.HEADING_5,ee.BLOCKS.HEADING_6,ee.BLOCKS.OL_LIST,ee.BLOCKS.UL_LIST,ee.BLOCKS.HR,ee.BLOCKS.QUOTE,ee.BLOCKS.EMBEDDED_ENTRY,ee.BLOCKS.EMBEDDED_ASSET,ee.BLOCKS.EMBEDDED_RESOURCE],en.TABLE_BLOCKS=[ee.BLOCKS.TABLE,ee.BLOCKS.TABLE_ROW,ee.BLOCKS.TABLE_CELL,ee.BLOCKS.TABLE_HEADER_CELL],en.VOID_BLOCKS=[ee.BLOCKS.HR,ee.BLOCKS.EMBEDDED_ENTRY,ee.BLOCKS.EMBEDDED_ASSET,ee.BLOCKS.EMBEDDED_RESOURCE],en.CONTAINERS=((c={})[ee.BLOCKS.OL_LIST]=[ee.BLOCKS.LIST_ITEM],c[ee.BLOCKS.UL_LIST]=[ee.BLOCKS.LIST_ITEM],c[ee.BLOCKS.LIST_ITEM]=en.LIST_ITEM_BLOCKS,c[ee.BLOCKS.QUOTE]=[ee.BLOCKS.PARAGRAPH],c[ee.BLOCKS.TABLE]=[ee.BLOCKS.TABLE_ROW],c[ee.BLOCKS.TABLE_ROW]=[ee.BLOCKS.TABLE_CELL,ee.BLOCKS.TABLE_HEADER_CELL],c[ee.BLOCKS.TABLE_CELL]=[ee.BLOCKS.PARAGRAPH],c[ee.BLOCKS.TABLE_HEADER_CELL]=[ee.BLOCKS.PARAGRAPH],c),en.HEADINGS=[ee.BLOCKS.HEADING_1,ee.BLOCKS.HEADING_2,ee.BLOCKS.HEADING_3,ee.BLOCKS.HEADING_4,ee.BLOCKS.HEADING_5,ee.BLOCKS.HEADING_6],en.TEXT_CONTAINERS=u([ee.BLOCKS.PARAGRAPH],en.HEADINGS,!0),en.V1_NODE_TYPES=[ee.BLOCKS.DOCUMENT,ee.BLOCKS.PARAGRAPH,ee.BLOCKS.HEADING_1,ee.BLOCKS.HEADING_2,ee.BLOCKS.HEADING_3,ee.BLOCKS.HEADING_4,ee.BLOCKS.HEADING_5,ee.BLOCKS.HEADING_6,ee.BLOCKS.OL_LIST,ee.BLOCKS.UL_LIST,ee.BLOCKS.LIST_ITEM,ee.BLOCKS.HR,ee.BLOCKS.QUOTE,ee.BLOCKS.EMBEDDED_ENTRY,ee.BLOCKS.EMBEDDED_ASSET,et.INLINES.HYPERLINK,et.INLINES.ENTRY_HYPERLINK,et.INLINES.ASSET_HYPERLINK,et.INLINES.EMBEDDED_ENTRY,"text"],en.V1_MARKS=[p.default.BOLD,p.default.CODE,p.default.ITALIC,p.default.UNDERLINE];var er={};Object.defineProperty(er,"__esModule",{value:!0});var ea={};Object.defineProperty(ea,"__esModule",{value:!0});var es={};Object.defineProperty(es,"__esModule",{value:!0});var eo={nodeType:ee.BLOCKS.DOCUMENT,data:{},content:[{nodeType:ee.BLOCKS.PARAGRAPH,data:{},content:[{nodeType:"text",value:"",marks:[],data:{}}]}]};es.default=eo;var el={};function ed(e,t){for(var i=0,n=Object.keys(e);i<n.length;i++)if(t===e[n[i]])return!0;return!1}function ec(e){return`${e}Collection`}function eu(e,t,i){if(!i)return!0;let n=i.get(t);return!!n&&(n.fields.has(e)||n.fields.has(ec(e)))}function eE(e,t,i){var n;let r=null==(n=null==i?void 0:i.get(t))?void 0:n.alias;if(!r)return e;for(let t in e){let i=null==r?void 0:r.get(t);i!==t&&(e[i]=e[t])}return e}function ep(e,t,i,n){var r,a,s,o,l;try{let d=t.fields.file[i],c={...e,title:t.fields.title[i],description:null==(r=t.fields.description)?void 0:r[i],contentType:d.contentType,url:function(e){if(!e)return e;try{let t=new URL(e,"https://images.ctfassets.net");return t.protocol="https:",t.href}catch(t){return N.error(`Recevied invalid asset url "${e}"`,t),e}}(d.url),width:null==(s=null==(a=d.details)?void 0:a.image)?void 0:s.width,height:null==(l=null==(o=d.details)?void 0:o.image)?void 0:l.height};return eE(c,H,n)}catch(n){return N.warn("Failed update asset",{dataFromPreviewApp:e,updateFromEntryEditor:t,locale:i},n),e}}async function ef({contentType:e,dataFromPreviewApp:t,updateFromEntryEditor:i,locale:n,entityReferenceMap:r,gqlParams:a}){var s;if(t.sys.id!==i.sys.id)return t;let o=b(t),l=j(e.sys.id);for(let t of e.fields){let e=t.apiName??t.name;eu(e,l,a)&&(w(t)?g({dataFromPreviewApp:o,updateFromEntryEditor:i,name:e,locale:n}):"RichText"===t.type?await eS({dataFromPreviewApp:o,updateFromEntryEditor:i,entityReferenceMap:r,name:e,locale:n,gqlParams:a}):"Link"===t.type?await eT({dataFromPreviewApp:o,updateFromEntryEditor:i,name:e,locale:n,entityReferenceMap:r,gqlParams:a}):"Array"===t.type&&(null==(s=t.items)?void 0:s.type)==="Link"&&await eA({dataFromPreviewApp:o,updateFromEntryEditor:i,name:e,locale:n,entityReferenceMap:r,gqlParams:a}))}return eE(o,l,a)}function ey(e){return Object.values(e).every(e=>0===e.length)}async function eh(e,t,i,n,r,a){var s;if(e.nodeType===Z.BLOCKS.EMBEDDED_ENTRY||e.nodeType===Z.BLOCKS.EMBEDDED_ASSET||e.nodeType===Z.INLINES.EMBEDDED_ENTRY||e.nodeType===Z.INLINES.ENTRY_HYPERLINK||e.nodeType===Z.INLINES.ASSET_HYPERLINK){if(e.data&&e.data.target&&e.data.target.sys){let o;let l={sys:{id:(null==(s=e.data.target)?void 0:s.sys.id)||"",type:"Link",linkType:e.data.target.sys.type}};if("Entry"===e.data.target.sys.linkType?o=await ev({referenceFromPreviewApp:null,updatedReference:l,entityReferenceMap:n,locale:r,gqlParams:a}):"Asset"===e.data.target.sys.linkType&&(o=await e_({referenceFromPreviewApp:null,updatedReference:l,entityReferenceMap:n,locale:r,gqlParams:a})),o)switch(e.nodeType){case Z.BLOCKS.EMBEDDED_ENTRY:t.block.push(o);break;case Z.BLOCKS.EMBEDDED_ASSET:i.block.push(o);break;case Z.INLINES.EMBEDDED_ENTRY:t.inline.push(o);break;case Z.INLINES.ENTRY_HYPERLINK:t.hyperlink.push(o);break;case Z.INLINES.ASSET_HYPERLINK:i.hyperlink.push(o);break;default:N.warn("Unhandled nodeType in embedded entries in rich text",{nodeType:e.nodeType,ref:o})}}}else if(e.content)for(let s of e.content)await eh(s,t,i,n,r,a)}async function eL(e,t,i,n){let r={block:[],inline:[],hyperlink:[]},a={block:[],inline:[],hyperlink:[]};if(e)for(let s of e.content)await eh(s,r,a,t,i,n);return{entries:ey(r)?{block:[],inline:[],hyperlink:[]}:r,assets:ey(a)?{block:[],inline:[],hyperlink:[]}:a}}async function eS({dataFromPreviewApp:e,updateFromEntryEditor:t,name:i,locale:n,entityReferenceMap:r,gqlParams:a}){var s,o;e[i]||(e[i]={}),e[i].json=(null==(o=null==(s=null==t?void 0:t.fields)?void 0:s[i])?void 0:o[n])??null,e[i].links=await eL(e[i].json,r,n,a)}async function e_({referenceFromPreviewApp:e,updatedReference:t,entityReferenceMap:i,locale:n,gqlParams:r}){let{reference:a}=await Q({entityReferenceMap:i,referenceId:t.sys.id,isAsset:!0,locale:n});return ep({...e,...t,__typename:H},a,n,r)}async function ev({referenceFromPreviewApp:e,updatedReference:t,entityReferenceMap:i,locale:n,gqlParams:r}){var a;let{reference:s,typeName:o}=await Q({entityReferenceMap:i,referenceId:t.sys.id,locale:n}),l={...e,...t,__typename:o};for(let e in s.fields){if(!eu(e,o,r))continue;let t=s.fields[e][n];t&&"object"==typeof t?("document"===t.nodeType&&(l[e]={json:t},l[e].links=await eL(t,i,n)),t.sys&&(l[e]=t,await eT({dataFromPreviewApp:l,updateFromEntryEditor:s,locale:n,entityReferenceMap:i,name:e,gqlParams:r}))):Array.isArray(t)&&null!=(a=t[0])&&a.sys?(l[ec(e)]={items:t},await eA({dataFromPreviewApp:l,updateFromEntryEditor:s,locale:n,entityReferenceMap:i,name:e,gqlParams:r})):l[e]=t}return eE(l,o,r)}async function em({referenceFromPreviewApp:e,updatedReference:t,entityReferenceMap:i,locale:n,gqlParams:r}){return t?e&&e.__typename?e:t.__typename?t:Y(t)?e_({referenceFromPreviewApp:e,updatedReference:t,entityReferenceMap:i,locale:n,gqlParams:r}):ev({referenceFromPreviewApp:e,updatedReference:t,entityReferenceMap:i,locale:n,gqlParams:r}):null}async function eT({dataFromPreviewApp:e,updateFromEntryEditor:t,name:i,locale:n,entityReferenceMap:r,gqlParams:a}){var s,o;e[i]=await em({referenceFromPreviewApp:e[i],updatedReference:null==(o=null==(s=null==t?void 0:t.fields)?void 0:s[i])?void 0:o[n],entityReferenceMap:r,locale:n,gqlParams:a})}async function eA({dataFromPreviewApp:e,updateFromEntryEditor:t,name:i,locale:n,entityReferenceMap:r,gqlParams:a}){var s,o;let l=ec(i),d=(null==(o=null==(s=null==t?void 0:t.fields)?void 0:s[i])?void 0:o[n])??[],c=await Promise.all(d.map(async t=>{var i,s;let o=null==(s=null==(i=e[l])?void 0:i.items)?void 0:s.find(e=>e.sys.id===t.sys.id);return await em({referenceFromPreviewApp:o,updatedReference:t,entityReferenceMap:r,locale:n,gqlParams:a})}));e[l]||(e[l]={items:[]}),e[l].items=c.filter(Boolean)}async function eD(e,t,i,n,r,a){var s,o;let l;if(a.has(t.sys.id))N.warn("Detected a circular reference, stopping recursion"),l=n.get("urn"in t.sys?t.sys.urn:t.sys.id);else{a.add("urn"in t.sys?t.sys.urn:t.sys.id);let{reference:e}=await Q({entityReferenceMap:n,referenceId:t.sys.id,...Y(t)?{isAsset:!0}:void 0,locale:i});l=e}if(!l)return e;let d=b(l);for(let e in l.fields){let t=l.fields[e][i];if("object"==typeof t&&null!=t&&t.sys&&"ResourceLink"!==t.sys.type&&r<5)await eI(d,l,i,e,n,r+1,a);else if(Array.isArray(t)&&null!=(s=t[0])&&s.sys&&"ResourceLink"!==t[0].sys.type&&r<5)await eO(d,l,i,e,n,r+1,a);else if(t.content&&"document"===t.nodeType)await eC(d,l,e,i,n,r+1,a);else{if("object"==typeof t&&null!=t&&t.sys&&"ResourceLink"===t.sys.type||Array.isArray(t)&&null!=(o=t[0])&&o.sys&&"ResourceLink"===t[0].sys.type)return N.warn("Detected a resource link, support is still under development."),d;g({dataFromPreviewApp:d.fields,updateFromEntryEditor:l,name:e,locale:i})}}return d}async function eO(e,t,i,n,r,a,s){var o,l;if(!(null!=(l=null==(o=t.fields)?void 0:o[n])&&l[i])){delete e.fields[n];return}return e.fields[n]=await Promise.all(t.fields[n][i].map((t,o)=>{var l;return eD(null==(l=e.fields[n])?void 0:l[o],t,i,r,a+1,s)})).then(e=>e.filter(Boolean)),e}async function eI(e,t,i,n,r,a,s){var o,l;let d=null==(l=null==(o=null==t?void 0:t.fields)?void 0:o[n])?void 0:l[i];if(!d){delete e.fields[n];return}return e.fields[n]=await eD(e.fields[n],d,i,r,a+1,s),e}async function eN(e,t,i,n,r){var a;if((e.nodeType===Z.BLOCKS.EMBEDDED_ENTRY||e.nodeType===Z.BLOCKS.EMBEDDED_ASSET||e.nodeType===Z.INLINES.EMBEDDED_ENTRY||e.nodeType===Z.INLINES.ENTRY_HYPERLINK||e.nodeType===Z.INLINES.ASSET_HYPERLINK)&&e.data&&e.data.target&&e.data.target.sys){let s={sys:{id:(null==(a=e.data.target)?void 0:a.sys.id)||"",type:"Link",linkType:e.data.target.sys.linkType}};("Entry"===e.data.target.sys.linkType||"Asset"===e.data.target.sys.linkType)&&(e.data.target=await eD(void 0,s,i,t,n+1,r))}if(e.content)for(let a of e.content)await eN(a,t,i,n+1,r)}async function eC(e,t,i,n,r,a,s){var o,l;let d=null==(l=null==(o=t.fields)?void 0:o[i])?void 0:l[n];if(d&&"document"===d.nodeType)for(let t of(e.fields[i]=d,d.content))await eN(t,r,n,a,s)}async function eg(e,t,i,n,r,a,s){var o;if(t.sys.id!==i.sys.id)return t;for(let l of e.fields){let d="Asset"===e.name?l.id:l.apiName||l.name;if(w(l)||"File"===l.type)g({dataFromPreviewApp:t.fields,updateFromEntryEditor:i,name:d,locale:n});else if("Link"===l.type&&a<5)await eI(t,i,n,d,r,a+1,s);else if("Array"===l.type&&(null==(o=l.items)?void 0:o.type)==="Link"&&a<5)await eO(t,i,n,d,r,a+1,s);else if("RichText"===l.type)await eC(t,i,d,n,r,a,s);else if("ResourceLink"===l.type)return N.warn("Detected a resource link, support is still under development."),t}return t}Object.defineProperty(el,"__esModule",{value:!0}),el.isText=el.isBlock=el.isInline=void 0,el.isInline=function(e){return ed(et.INLINES,e.nodeType)},el.isBlock=function(e){return ed(ee.BLOCKS,e.nodeType)},el.isText=function(e){return"text"===e.nodeType},f=X&&X.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),y=X&&X.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),h=X&&X.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||f(t,e,i)},L=X&&X.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&f(t,e,i);return y(t,e),t},S=X&&X.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},Object.defineProperty(Z,"__esModule",{value:!0}),Z.helpers=Z.EMPTY_DOCUMENT=Z.MARKS=Z.INLINES=Z.BLOCKS=void 0,Object.defineProperty(Z,"BLOCKS",{enumerable:!0,get:function(){return ee.BLOCKS}}),Object.defineProperty(Z,"INLINES",{enumerable:!0,get:function(){return et.INLINES}}),Object.defineProperty(Z,"MARKS",{enumerable:!0,get:function(){return S(ei).default}}),h(en,Z),h(er,Z),h(ea,Z),Object.defineProperty(Z,"EMPTY_DOCUMENT",{enumerable:!0,get:function(){return S(es).default}}),_=L(el),Z.helpers=_;class ew{constructor({locale:e}){D(this,"subscriptions",new Map),D(this,"storage"),D(this,"defaultLocale"),this.defaultLocale=e,this.storage=new R("live-updates",new Map),window.addEventListener("beforeunload",()=>this.clearStorage())}async mergeEntity({contentType:e,dataFromPreviewApp:t,entityReferenceMap:i,locale:n,updateFromEntryEditor:r,gqlParams:a,visitedReferences:s}){return"__typename"in t?{data:await ("Asset"===t.__typename?ep(t,r,n):ef({contentType:e,dataFromPreviewApp:t,updateFromEntryEditor:r,locale:n,entityReferenceMap:i,gqlParams:a})),updated:!0}:this.isCfEntity(t)?{data:await eg(e,t,r,n,i,0,s),updated:!0}:{updated:!1,data:t}}async mergeNestedReference({dataFromPreviewApp:e,...t},i){let n=U(e)&&e.sys.id,r=i&&n,a=!1,s=(r?this.storage.get(n):void 0)||e;if(U(s)&&n===t.updateFromEntryEditor.sys.id){let e=await this.mergeEntity({...t,dataFromPreviewApp:s});s=e.data,a=e.updated}else for(let e in s)if(s[e]&&"object"==typeof s[e]){let i=await this.merge({...t,dataFromPreviewApp:s[e]},!1);s[e]=i.data,a=a||i.updated}return r&&this.storage.set(n,s),{data:s,updated:a}}async merge({dataFromPreviewApp:e,...t},i=!0){if(Array.isArray(e)){let n=[],r=!1;for(let a of e){let e=await this.mergeNestedReference({...t,dataFromPreviewApp:a},i);n.push(e.data),r=r||e.updated}return{data:n,updated:r}}return this.mergeNestedReference({...t,dataFromPreviewApp:e},i)}isCfEntity(e){return U(e)&&"fields"in e}async receiveMessage(e){if("action"in e&&"ENTRY_UPDATED"===e.action||e.method===G.ENTRY_UPDATED){let{entity:t,contentType:i,entityReferenceMap:n}=e;await Promise.all([...this.subscriptions].map(async([,e])=>{try{let r=new Set,{updated:a,data:s}=await this.merge({dataFromPreviewApp:b(e.data),locale:e.locale||this.defaultLocale,updateFromEntryEditor:t,contentType:i,entityReferenceMap:n,gqlParams:e.gqlParams,visitedReferences:r});a&&e.callback(s)}catch(i){N.error("Failed to apply live update",{error:i,subscribedData:e.data,updateFromEditor:t})}}))}}async restore(e,t){let i;if(!e)return;let n=e=>{if(U(e)){let t=this.storage.get(e.sys.id);if(t)return t}return e};if(Array.isArray(e))i=e.map(n);else{let t=n(e);t!==e&&(i=t)}let r=this.subscriptions.get(t);r&&i&&r.callback(i)}clearStorage(){this.storage.clear()}subscribe(e){let{isGQL:t,isValid:i}=function(e){let t=!0,{isGQL:i,hasSys:n,isREST:r}=function e(t){if(Array.isArray(t)){for(let i of t){let t=e(i);if(Object.values(t).includes(!0))return t}return{isGQL:!1,hasSys:!1,isREST:!1}}{let i=Object.hasOwn(t,"__typename"),n=Object.hasOwn(t,"sys"),r=Object.hasOwn(t,"fields");return i||n||r?{isGQL:i,hasSys:n,isREST:r}:e(Object.values(t))}}(e);return n||(t=!1,N.error('Live Updates requires the "sys.id" to be present on the provided data',e)),i||r||(t=!1,N.error('For live updates as a basic requirement the provided data must include the "fields" property for REST or "__typename" for Graphql, otherwise the data will be treated as invalid and live updates are not applied.',e)),{isGQL:i,isREST:r,hasSys:n,isValid:t}}(e.data);if(!i)return()=>{};let n=`${performance.now()}-${Math.random().toString(36).slice(2)}`;return this.subscriptions.set(n,{...e,gqlParams:e.query?function(e){var t;let i=[];for(let n of e.definitions)if("OperationDefinition"===n.kind||"FragmentDefinition"===n.kind){let e="typeCondition"in n?n.typeCondition.name.value:null==(t=n.name)?void 0:t.value;if(!e){N.warn("Could not generate __typename for query definition",n);continue}for(let t of n.selectionSet.selections)"Field"===t.kind&&i.push(...function e(t,i){var n,r;let a=[];for(let s of t)"Field"===s.kind&&(a.push({name:s.name.value,alias:null==(n=s.alias)?void 0:n.value,__typename:i}),null!=(r=s.selectionSet)&&r.selections&&a.push(...e(s.selectionSet.selections,s.name.value)));return a}(n.selectionSet.selections,e))}let n=new Map;for(let{__typename:e,alias:t,name:r}of i){let i=n.get(e)||{alias:new Map,fields:new Set};i.fields.add(r),t&&i.alias.set(r,t),n.set(e,i)}return n}(e.query):void 0}),setTimeout(()=>{this.restore(e.data,n)},0),B(G.SUBSCRIBED,{action:G.SUBSCRIBED,type:t?"GQL":"REST",locale:e.locale||this.defaultLocale}),()=>{this.subscriptions.delete(n)}}}let eB=class e{static init(t){if("object"!=typeof t||!(null!=t&&t.locale))throw Error("Init function have to be called with a locale configuration (for example: `ContentfulLivePreview.init({ locale: 'en-US'})`)");let{debugMode:i,enableInspectorMode:n,enableLiveUpdates:r,locale:a}=t;if("u">typeof window)return!function(){var e;try{return(null==(e=window.top)?void 0:e.location.href)!==window.location.href}catch{return!0}}()?(this.liveUpdatesEnabled=!1,Promise.resolve(null)):(i&&(O=i),"boolean"==typeof n&&(this.inspectorModeEnabled=n),"boolean"==typeof r&&(this.liveUpdatesEnabled=r),this.locale=a,e.initialized?N.log("You have already initialized the Live Preview SDK."):(this.inspectorModeEnabled&&(e.inspectorMode=new J({locale:a})),this.liveUpdatesEnabled&&(e.liveUpdates=new ew({locale:a})),window.addEventListener("message",t=>{var i,n;if(!("object"!=typeof t.data||!t.data)&&"live-preview"===t.data.from){if(N.log("Received message",t.data),"action"in t.data&&"DEBUG_MODE_ENABLED"===t.data.action||t.data.method===G.DEBUG_MODE_ENABLED){O=!0;return}this.inspectorModeEnabled&&(null==(i=e.inspectorMode)||i.receiveMessage(t.data)),this.liveUpdatesEnabled&&(null==(n=e.liveUpdates)||n.receiveMessage(t.data))}}),function(e,t=500){let i=window.location.href;setInterval(()=>{let t=window.location.href;t!==i&&(i=t,e(t))},t)}(()=>{B(G.URL_CHANGED,{action:G.URL_CHANGED})}),B(G.IFRAME_CONNECTED,{action:G.IFRAME_CONNECTED,connected:!0,tags:document.querySelectorAll(`[${k.ENTRY_ID}]`).length,locale:this.locale}),this.initialized=!0),Promise.resolve(e.inspectorMode))}static subscribe(e){if(!this.liveUpdatesEnabled)return()=>{};if(!this.liveUpdates)throw Error("Live Updates are not initialized, please call `ContentfulLivePreview.init()` first.");return this.liveUpdates.subscribe(e)}static getProps({fieldId:e,entryId:t,locale:i}){return this.inspectorModeEnabled?e&&t?{[k.FIELD_ID]:e,[k.ENTRY_ID]:t,[k.LOCALE]:i}:(N.warn("Missing property for inspector mode",{fieldId:e,entryId:t}),null):null}static toggleInspectorMode(){return this.inspectorModeEnabled=!this.inspectorModeEnabled,this.inspectorModeEnabled}static toggleLiveUpdatesMode(){return this.liveUpdatesEnabled=!this.liveUpdatesEnabled,this.liveUpdatesEnabled}};D(eB,"initialized",!1),D(eB,"inspectorMode",null),D(eB,"liveUpdates",null),D(eB,"inspectorModeEnabled",!0),D(eB,"liveUpdatesEnabled",!0),D(eB,"locale");let eR=eB}}]);
//# sourceMappingURL=3547-f264eda5248fc1a6.js.map