@contentstack/live-preview-utils 1.4.1 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -15,7 +15,7 @@ npm install @contentstack/live-preview-utils
15
15
  Alternatively, if you want to include the package directly in your website HTML code, use the following command:
16
16
 
17
17
  ```html
18
- <script src="https://unpkg.com/@contentstack/live-preview-utils@1.4.1/dist/index.js"></script>
18
+ <script src="https://unpkg.com/@contentstack/live-preview-utils@1.4.2/dist/index.js"></script>
19
19
  ```
20
20
 
21
21
  # Initializing the SDK
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ContentstackLivePreview=e():t.ContentstackLivePreview=e()}(this,(()=>(()=>{var t={704:t=>{t.exports=function(t,l){for(var a=t.split(e),s=a.length,c=new Array(s),u=0;u<s;u++){var d=a[u];if(""!==d){var p=i.test(d)&&!o.test(d);p&&(d=d.replace(n,(function(t,e,i){return r(t,d.length-i-t.length==0)})));var v=d[0];v=u>0?v.toUpperCase():v.toLowerCase(),c[u]=v+(p?d.slice(1):d.slice(1).toLowerCase())}}return c.join("")};var e=/[\s\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]+/,i=/^[a-z\u00E0-\u00FCA-Z\u00C0-\u00DC][\d|a-z\u00E0-\u00FCA-Z\u00C0-\u00DC]*$/,n=/([A-Z\u00C0-\u00DC]{4,})/g,o=/^[A-Z\u00C0-\u00DC]+$/;function r(t,e){var i=t.split(""),n=i.shift().toUpperCase(),o=e?i.pop().toLowerCase():i.pop();return n+i.join("").toLowerCase()+o}},279:(t,e,i)=>{"use strict";i.r(e)},135:function(t,e,i){"use strict";var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))((function(o,r){function l(t){try{s(n.next(t))}catch(t){r(t)}}function a(t){try{s(n.throw(t))}catch(t){r(t)}}function s(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(l,a)}s((n=n.apply(t,e||[])).next())}))},o=this&&this.__generator||function(t,e){var i,n,o,r,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return r={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function a(a){return function(s){return function(a){if(i)throw new TypeError("Generator is already executing.");for(;r&&(r=0,a[0]&&(l=0)),l;)try{if(i=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,n=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!((o=(o=l.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=e.call(t,l)}catch(t){a=[6,t],n=0}finally{i=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}},r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.ContentstackLivePreview=void 0;var l=i(614),a=r(i(704)),s=r(i(147)),c=r(i(922)),u=i(334),d=i(895),p=function(){function t(){}return t.init=function(e){if(void 0===e&&(e=u.userInitData),"undefined"!=typeof window)return t.livePreview?(d.PublicLogger.warn("You have already initialized the Live Preview SDK. So, any subsequent initialization returns the existing SDK instance."),Promise.resolve(t.livePreview)):(t.livePreview=new c.default(e),t.livePreview.setOnChangeCallback(t.publish),t.livePreview.setConfigFromParams(this.configs.params),this.configs.params={},Promise.resolve(t.livePreview));t.userConfig=e},Object.defineProperty(t,"hash",{get:function(){var t;return this.livePreview?this.livePreview.hash:null!==(t=new URLSearchParams(this.configs.params).get("live_preview"))&&void 0!==t?t:""},enumerable:!1,configurable:!0}),t.setConfigFromParams=function(t){void 0===t&&(t={}),this.livePreview?this.livePreview.setConfigFromParams(t):this.configs.params=t},t.publish=function(){Object.values(t.subscribers).forEach((function(t){t()}))},t.subscribe=function(e){var i=(0,l.v4)();return t.subscribers[i]=e,i},t.onEntryChange=function(e,i){var n=(i||{}).skipInitialRender,o=void 0!==n&&n;t.userConfig&&(t.livePreview=new c.default(t.userConfig),t.livePreview.setOnChangeCallback(t.publish),t.livePreview.setConfigFromParams(this.configs.params),this.configs.params={},t.userConfig=null);var r=t.subscribe(e);return o||e(),r},t.onLiveEdit=function(e){return t.onEntryChange(e,{skipInitialRender:!0})},t.unsubscribeOnEntryChange=function(e){"string"==typeof e?(t.subscribers[e]||d.PublicLogger.warn("No subscriber found with the given id."),delete t.subscribers[e]):"function"==typeof e&&(Object.entries(t.subscribers).some((function(i){var n=i[0];return i[1]===e&&(delete t.subscribers[n],!0)}))||d.PublicLogger.warn("No subscriber found with the given callback."))},t.getGatsbyDataFormat=function(t,e){return n(this,void 0,void 0,(function(){return o(this,(function(i){return"function"==typeof t.find?[2,t.toJSON().find().then((function(i){return i.map((function(i){return i.map((function(i){var n;return(n={})[(0,a.default)("".concat(e,"_").concat(t.content_type_uid))]=i,n}))}))})).catch((function(t){console.error(t)}))]:"function"==typeof t.fetch?[2,t.toJSON().fetch().then((function(i){var n;return(n={})[(0,a.default)("".concat(e,"_").concat(t.content_type_uid))]=i,n})).catch((function(t){console.error(t)}))]:[2]}))}))},t.getSdkVersion=function(){return s.default.version},t.livePreview=null,t.userConfig=null,t.subscribers={},t.configs={params:{}},t}();e.ContentstackLivePreview=p,e.default=p,t.exports=p},607:function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.ContentstackLivePreview=void 0;var o=n(i(135));i(279),e.ContentstackLivePreview=o.default,e.default=e.ContentstackLivePreview,t.exports=e.ContentstackLivePreview},922:function(t,e,i){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i<n;i++)for(var o in e=arguments[i])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},n.apply(this,arguments)},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var r=i(928),l=i(895),a=i(383),s=i(334),c=o(i(147)),u=function(){function t(t){void 0===t&&(t=s.userInitData);var e=this;this.config={ssr:!0,enable:!0,runScriptsOnUpdate:!1,cleanCslpOnProduction:!0,hash:"",editButton:{enable:!0,exclude:[],position:"top",includeByQueryParameter:!0},stackDetails:{apiKey:"",environment:"",contentTypeUid:"",entryUid:""},clientUrlParams:{protocol:"https",host:"app.contentstack.com",port:443,url:"https://app.contentstack.com:443"},stackSdk:{live_preview:{},headers:{api_key:""},environment:""},onChange:function(){}},this.tooltip=null,this.currentElementBesideTooltip=null,this.isHoveringOnTooltip=!1,this.hideInterval=null,this.tooltipChild={singular:null,multiple:null},this.tooltipCurrentChild="singular",this.createCslpTooltip=function(){if(!document.getElementById("cslp-tooltip")&&e.config.editButton.enable){var t=document.createElement("button"),i=document.createElement("div");i.classList.add("cslp-tooltip-inner-container"),t.classList.add("cslp-tooltip"),t.classList.add("cslp-tooltip"),t.setAttribute("data-test-id","cs-cslp-tooltip"),t.id="cslp-tooltip",i.id="cslp-tooltip-inner-container",t.addEventListener("mouseover",(function(){e.toggleHoveringOnEditButton(!0)})),t.addEventListener("mouseleave",(function(t){e.toggleHoveringOnEditButton(!1),e.removeEditButtonStyle(t)})),window.document.body.insertAdjacentElement("beforeend",t),e.tooltipChild.singular=(0,r.createSingularEditButton)(e.scrollHandler),e.tooltipChild.multiple=(0,r.createMultipleEditButton)(e.scrollHandler,e.linkClickHandler),i.innerHTML="",i.appendChild(e.tooltipChild.singular),t.appendChild(i),e.tooltip=t}e.updateTooltipPosition()},this.toggleHoveringOnEditButton=function(t){e.isHoveringOnTooltip=t},(0,a.handleInitData)(t,this.config),this.addEditStyleOnHover=this.addEditStyleOnHover.bind(this),this.removeEditButtonStyle=this.removeEditButtonStyle.bind(this),this.generateRedirectUrl=this.generateRedirectUrl.bind(this),this.scrollHandler=this.scrollHandler.bind(this),this.linkClickHandler=this.linkClickHandler.bind(this),this.handleUserChange=this.handleUserChange.bind(this),this.setOnChangeCallback=this.setOnChangeCallback.bind(this),this.resolveIncomingMessage=this.resolveIncomingMessage.bind(this),this.createCslpTooltip=this.createCslpTooltip.bind(this),this.requestDataSync=this.requestDataSync.bind(this),this.updateTooltipPosition=this.updateTooltipPosition.bind(this),this.removeDataCslp=this.removeDataCslp.bind(this),this.toggleHoveringOnEditButton=this.toggleHoveringOnEditButton.bind(this),this.hideTooltip=this.hideTooltip.bind(this),t.debug&&l.PublicLogger.debug("Contentstack Live Preview Debugging mode: config --",this.config),this.config.enable?(void 0!==typeof document&&"complete"===document.readyState?this.requestDataSync():window.addEventListener("load",this.requestDataSync),window.addEventListener("message",this.resolveIncomingMessage),window.addEventListener("scroll",this.updateTooltipPosition),this.config.editButton.enable&&window.addEventListener("mouseover",this.addEditStyleOnHover),this.config.ssr&&(window.addEventListener("load",(function(t){document.querySelectorAll("a").forEach((function(t){var e=document.location.origin;if(t.href&&t.href.includes(e)){var i=(0,r.addLivePreviewQueryTags)(t.href);t.href=i}}))})),window.addEventListener("click",(function(t){var e=t.target,i=e.href,n=document.location.origin;if(i&&i.includes(n)&&!i.includes("live_preview")){var o=(0,r.addLivePreviewQueryTags)(e.href);t.target.href=o||e.href}})))):this.config.cleanCslpOnProduction&&this.removeDataCslp()}return t.prototype.addEditStyleOnHover=function(t){for(var e,i,n,o=!0,r=0,l=t.composedPath();r<l.length;r++){var a=l[r];if("BODY"===a.nodeName)break;if("function"==typeof(null==a?void 0:a.getAttribute)){var s=a.getAttribute("data-cslp");o&&s?(this.hideInterval&&(clearInterval(this.hideInterval),this.hideInterval=null),this.currentElementBesideTooltip&&(this.currentElementBesideTooltip.classList.remove("cslp-edit-mode"),this.currentElementBesideTooltip.removeEventListener("mouseleave",this.removeEditButtonStyle)),a.classList.add("cslp-edit-mode"),this.currentElementBesideTooltip=a,this.currentElementBesideTooltip.addEventListener("mouseleave",this.removeEditButtonStyle),this.updateTooltipPosition()&&(null===(e=this.tooltip)||void 0===e||e.setAttribute("current-data-cslp",s),null===(i=this.tooltip)||void 0===i||i.setAttribute("current-href",null!==(n=a.getAttribute("href"))&&void 0!==n?n:"")),o=!1):o||a.classList.remove("cslp-edit-mode")}}},t.prototype.removeEditButtonStyle=function(t){if(!this.currentElementBesideTooltip||!this.tooltip)return!1;for(var e=!0,i=0,n=t.composedPath();i<n.length;i++){var o=n[i];if("BODY"===o.nodeName)break;if("function"==typeof(null==o?void 0:o.getAttribute)){var r=o.getAttribute("data-cslp");e&&r?(this.hideInterval=setInterval(this.hideTooltip,500),e=!1):e||o.classList.remove("cslp-edit-mode")}}},t.prototype.hideTooltip=function(){if(!this.currentElementBesideTooltip||!this.tooltip||this.isHoveringOnTooltip)return!1;this.currentElementBesideTooltip.classList.remove("cslp-edit-mode"),this.currentElementBesideTooltip.removeEventListener("mouseleave",this.removeEditButtonStyle),this.currentElementBesideTooltip=null,this.tooltip.style.top="-100%"},t.prototype.generateRedirectUrl=function(t,e,i,n){if(void 0===e&&(e="en-us"),!this.config.stackDetails.apiKey)throw"To use edit tags, you must provide the stack API key. Specify the API key while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n apiKey: 'your-api-key'\n },\n ...\n })";if(!this.config.stackDetails.environment)throw"To use edit tags, you must provide the preview environment. Specify the preview environment while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n environment: 'Your-environment'\n },\n ...\n })";var o=String(this.config.clientUrlParams.protocol),r=String(this.config.clientUrlParams.host),l=String(this.config.clientUrlParams.port),a=String(this.config.stackDetails.environment),s="!/stack/".concat(this.config.stackDetails.apiKey,"/content-type/").concat(t,"/").concat(null!=e?e:"en-us","/entry/").concat(i,"/edit"),c=new URL("".concat(o,"://").concat(r));return c.port=l,c.hash=s,c.searchParams.append("preview-field",n),c.searchParams.append("preview-locale",null!=e?e:"en-us"),c.searchParams.append("preview-environment",a),"".concat(c.origin,"/").concat(c.hash).concat(c.search)},t.prototype.scrollHandler=function(){if(this.tooltip){var t=this.tooltip.getAttribute("current-data-cslp");if(t){var e=t.split("."),i=e[0],n=e[1],o=e[2],r=e.slice(3);if(window.location!==window.parent.location)window.parent.postMessage({from:"live-preview",type:"scroll",data:{field:r.join("."),content_type_uid:i,entry_uid:n,locale:o}},"*");else try{var a=this.generateRedirectUrl(i,o,n,r.join("."));window.open(a,"_blank")}catch(t){l.PublicLogger.error(t)}}}},t.prototype.linkClickHandler=function(){if(this.tooltip){var t=this.tooltip.getAttribute("current-href");t&&window.location.assign(t)}},t.prototype.handleUserChange=function(t){this.config.stackSdk.live_preview=n(n(n({},this.config.stackSdk.live_preview),t),{live_preview:t.hash}),this.config.onChange()},t.prototype.setOnChangeCallback=function(t){this.config.onChange=t},Object.defineProperty(t.prototype,"hash",{get:function(){return this.config.hash},enumerable:!1,configurable:!0}),t.prototype.setConfigFromParams=function(t){if(void 0===t&&(t={}),"object"!=typeof t)throw new TypeError("Live preview SDK: query param must be an object");var e=new URLSearchParams(t).get("live_preview");e&&(this.config.hash=e)},t.prototype.resolveIncomingMessage=function(t){if("object"==typeof t.data&&"live-preview"===t.data.from)switch(t.data.type){case"client-data-send":var e=this.config.stackDetails,i=e.contentTypeUid,n=e.entryUid,o=t.data.data.hash;this.setConfigFromParams({live_preview:o}),this.config.ssr||this.handleUserChange({content_type_uid:i,entry_uid:n,hash:o});break;case"init-ack":var r=t.data.data;i=r.contentTypeUid,n=r.entryUid,this.config.stackDetails.contentTypeUid=i,this.config.stackDetails.entryUid=n;break;case"history":switch(t.data.data.type){case"forward":window.history.forward();break;case"backward":window.history.back();break;case"reload":window.history.go()}break;default:return t.data}},t.prototype.requestDataSync=function(){this.createCslpTooltip(),window.parent.postMessage({from:"live-preview",type:"init",data:{config:{shouldReload:this.config.ssr,href:window.location.href,sdkVersion:c.default.version}}},"*"),this.config.ssr||setInterval((function(){window.parent.postMessage({from:"live-preview",type:"check-entry-page",data:{href:window.location.href}},"*")}),1500)},t.prototype.updateTooltipPosition=function(){var t;if(!this.currentElementBesideTooltip||!this.tooltip)return!1;var e=this.currentElementBesideTooltip.getBoundingClientRect(),i=null===(t=this.tooltip.parentElement)||void 0===t?void 0:t.getBoundingClientRect();if(e&&i){var n=(0,r.getEditButtonPosition)(this.currentElementBesideTooltip,this.config.editButton.position),o=n.upperBoundOfTooltip,l=n.leftBoundOfTooltip;if(o<0&&(o=e.top<0?e.top:0),this.tooltip.style.top=o+"px",this.tooltip.style.zIndex=this.currentElementBesideTooltip.style.zIndex||"200",this.tooltip.style.left=l+"px",this.tooltipChild.singular&&this.tooltipChild.multiple)if(this.currentElementBesideTooltip.hasAttribute("href"))"multiple"!==this.tooltipCurrentChild&&(a=this.tooltip.querySelector("div.cslp-tooltip-inner-container"))&&(a.innerHTML="",a.appendChild(this.tooltipChild.multiple),this.tooltipCurrentChild="multiple");else if("singular"!==this.tooltipCurrentChild){var a;(a=this.tooltip.querySelector("div.cslp-tooltip-inner-container"))&&(a.innerHTML="",a.appendChild(this.tooltipChild.singular),this.tooltipCurrentChild="singular")}return!0}return!1},t.prototype.removeDataCslp=function(){document.querySelectorAll("[data-cslp]").forEach((function(t){t.removeAttribute("data-cslp"),t.removeAttribute("data-cslp-button-position")}))},t}();e.default=u},334:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.userInitData=void 0,e.userInitData={ssr:!0,enable:!0,cleanCslpOnProduction:!0,editButton:{enable:!0,exclude:[],position:"top",includeByQueryParameter:!0},stackDetails:{apiKey:"",environment:""},clientUrlParams:{protocol:"https",host:"app.contentstack.com",port:443},stackSdk:{live_preview:{},headers:{api_key:""},environment:""},runScriptsOnUpdate:!1}},383:(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.handleUserConfig=e.handleInitData=void 0;var n=i(928),o=i(895),r=function(t,e){var i,n,o;if(t.clientUrlParams.host=null!==(i=e.host)&&void 0!==i?i:t.clientUrlParams.host,t.clientUrlParams.protocol=null!==(n=e.protocol)&&void 0!==n?n:t.clientUrlParams.protocol,t.clientUrlParams.port=null!==(o=e.port)&&void 0!==o?o:t.clientUrlParams.port,void 0!==e.protocol&&void 0===e.port)switch(e.protocol){case"http":t.clientUrlParams.port=80;break;case"https":t.clientUrlParams.port=443}var r=t.clientUrlParams.host;r.endsWith("/")&&(r=r.slice(0,-1),t.clientUrlParams.host=r),t.clientUrlParams.url="".concat(t.clientUrlParams.protocol,"://").concat(t.clientUrlParams.host,":").concat(t.clientUrlParams.port)};function l(t){return Object.prototype.hasOwnProperty.call(t,"cachePolicy")}e.handleInitData=function(t,e){var i,a,s,c,u,d,p,v,h,f,g,m,y,w,b,C,P,k,L,B,E,O,_,S,T,U,D,x,M,A,j,H,I,R,V,K,Z,q,Q,F,N,z,W,Y,$,G,J,X,tt,et,it,nt,ot,rt,lt,at,st,ct;if(l(t)){o.PublicLogger.warn("Deprecated: Do not pass the Stack object directly to the Live Preview SDK. Pass it using the config.stackSDK config object.");var ut=(null==t?void 0:t.live_preview)||{};e.ssr=!1,e.runScriptsOnUpdate=null!==(i=ut.runScriptsOnUpdate)&&void 0!==i?i:e.runScriptsOnUpdate,e.enable=null!==(a=ut.enable)&&void 0!==a?a:e.enable,e.cleanCslpOnProduction=null!==(s=ut.cleanCslpOnProduction)&&void 0!==s?s:e.cleanCslpOnProduction,e.editButton={enable:(0,n.shouldRenderEditButton)(null!==(c=ut.editButton)&&void 0!==c?c:e.editButton),exclude:Array.isArray(null===(u=ut.editButton)||void 0===u?void 0:u.exclude)&&(null===(d=ut.editButton)||void 0===d?void 0:d.exclude)?null===(p=ut.editButton)||void 0===p?void 0:p.exclude:null!==(v=e.editButton.exclude)&&void 0!==v?v:[],position:null!==(g=null!==(f=null===(h=ut.editButton)||void 0===h?void 0:h.position)&&void 0!==f?f:e.editButton.position)&&void 0!==g?g:"top",includeByQueryParameter:null===(w=null!==(y=null===(m=ut.editButton)||void 0===m?void 0:m.includeByQueryParameter)&&void 0!==y?y:e.editButton.includeByQueryParameter)||void 0===w||w},e.stackSdk=t,Object.prototype.hasOwnProperty.call(t.headers,"api_key")&&t.headers.api_key&&(e.stackDetails.apiKey=t.headers.api_key),Object.prototype.hasOwnProperty.call(t,"environment")&&(e.stackDetails.environment=t.environment),r(e,null!==(b=ut.clientUrlParams)&&void 0!==b?b:e.clientUrlParams)}else if(!l(t)){var dt=t.stackSdk||e.stackSdk;e.enable=null!==(k=null!==(C=t.enable)&&void 0!==C?C:null===(P=dt.live_preview)||void 0===P?void 0:P.enable)&&void 0!==k?k:e.enable,e.ssr=null===(O=null!==(E=null!==(L=t.ssr)&&void 0!==L?L:null===(B=dt.live_preview)||void 0===B?void 0:B.ssr)&&void 0!==E?E:"object"!=typeof t.stackSdk)||void 0===O||O,e.runScriptsOnUpdate=null!==(T=null!==(_=t.runScriptsOnUpdate)&&void 0!==_?_:null===(S=dt.live_preview)||void 0===S?void 0:S.runScriptsOnUpdate)&&void 0!==T?T:e.runScriptsOnUpdate,e.stackSdk=dt,e.cleanCslpOnProduction=null!==(x=null!==(U=t.cleanCslpOnProduction)&&void 0!==U?U:null===(D=dt.live_preview)||void 0===D?void 0:D.cleanCslpOnProduction)&&void 0!==x?x:e.cleanCslpOnProduction,e.editButton={enable:(0,n.shouldRenderEditButton)(null!==(j=null!==(M=t.editButton)&&void 0!==M?M:null===(A=dt.live_preview)||void 0===A?void 0:A.editButton)&&void 0!==j?j:e.editButton),exclude:Array.isArray(null===(H=t.editButton)||void 0===H?void 0:H.exclude)&&(null===(I=t.editButton)||void 0===I?void 0:I.exclude)?null===(R=t.editButton)||void 0===R?void 0:R.exclude:Array.isArray(null===(V=dt.live_preview)||void 0===V?void 0:V.exclude)&&(null===(K=dt.live_preview)||void 0===K?void 0:K.exclude)?null===(Z=dt.live_preview)||void 0===Z?void 0:Z.exclude:null!==(q=e.editButton.exclude)&&void 0!==q?q:[],position:null!==(W=null!==(z=null!==(F=null===(Q=t.editButton)||void 0===Q?void 0:Q.position)&&void 0!==F?F:null===(N=dt.live_preview)||void 0===N?void 0:N.position)&&void 0!==z?z:e.editButton.position)&&void 0!==W?W:"top",includeByQueryParameter:null===(X=null!==(J=null!==($=null===(Y=t.editButton)||void 0===Y?void 0:Y.includeByQueryParameter)&&void 0!==$?$:null===(G=dt.live_preview)||void 0===G?void 0:G.includeByQueryParameter)&&void 0!==J?J:e.editButton.includeByQueryParameter)||void 0===X||X},e.stackDetails.apiKey=null!==(nt=null!==(et=null===(tt=t.stackDetails)||void 0===tt?void 0:tt.apiKey)&&void 0!==et?et:null===(it=dt.headers)||void 0===it?void 0:it.api_key)&&void 0!==nt?nt:e.stackDetails.apiKey,e.stackDetails.environment=null!==(lt=null!==(rt=null===(ot=t.stackDetails)||void 0===ot?void 0:ot.environment)&&void 0!==rt?rt:dt.environment)&&void 0!==lt?lt:e.stackDetails.environment,r(e,null!==(ct=null!==(at=t.clientUrlParams)&&void 0!==at?at:null===(st=dt.live_preview)||void 0===st?void 0:st.clientUrlParams)&&void 0!==ct?ct:e.clientUrlParams)}},e.handleUserConfig={clientUrlParams:r}},928:(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getEditButtonPosition=e.shouldRenderEditButton=e.addLivePreviewQueryTags=e.createMultipleEditButton=e.createSingularEditButton=e.tooltipMultipleInnerHtml=e.tooltipSingularInnerHtml=e.hasWindow=void 0;var n=i(895);function o(){return window.location!==window.parent.location}e.hasWindow=function(){return"undefined"!=typeof window},e.tooltipSingularInnerHtml='<div class="singular edit-button">\n <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z" fill="#718096"></path>\n <path d="M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z" fill="#718096"></path>\n </svg>Edit\n </div>',e.tooltipMultipleInnerHtml='<div class="edit-button" title="edit">\n <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z" fill="#718096"></path>\n <path d="M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z" fill="#718096"></path>\n </svg>\n </div>\n <div title="click element" class="external-link-button">\n <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z" fill="#718096" />\n <path d="M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z" fill="#718096" />\n </svg>\n </div>',e.createSingularEditButton=function(t){var e=document.createElement("div");return e.classList.add("cslp-tooltip-child","singular"),e.setAttribute("data-test-id","cslp-singular-edit-button"),e.innerHTML='<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z" fill="#718096"></path>\n <path d="M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z" fill="#718096"></path>\n </svg>Edit',e.addEventListener("click",t),e},e.createMultipleEditButton=function(t,e){var i=document.createElement("div");i.classList.add("cslp-tooltip-child"),i.setAttribute("data-title","Edit"),i.setAttribute("data-test-id","cslp-multiple-edit-button"),i.innerHTML=' <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z" fill="#718096"></path>\n <path d="M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z" fill="#718096"></path>\n </svg>',i.addEventListener("click",t);var n=document.createElement("div");n.classList.add("cslp-tooltip-child"),n.setAttribute("data-title","Go to link"),n.setAttribute("data-test-id","cslp-multiple-external-link-button"),n.innerHTML=' <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z" fill="#718096" />\n <path d="M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z" fill="#718096" />\n </svg>',n.addEventListener("click",e);var o=document.createDocumentFragment();o.appendChild(i),o.appendChild(n);var r=document.createElement("div");return r.appendChild(o),r.classList.add("multiple"),r},e.addLivePreviewQueryTags=function(t){try{var e=new URL(document.location.href),i=new URL(t),o=e.searchParams.get("live_preview"),r=e.searchParams.get("content_type_uid"),l=e.searchParams.get("entry_uid");return o&&r&&l&&(i.searchParams.set("live_preview",o),i.searchParams.set("content_type_uid",r),i.searchParams.set("entry_uid",l)),i.href}catch(e){return n.PublicLogger.error("Error while adding live preview to URL"),t}},e.shouldRenderEditButton=function(t){var e,i;if(!t.enable)return void 0===t.enable&&n.PublicLogger.error("enable key is required inside editButton object"),!1;try{var r=new URL(window.location.href).searchParams.get("cslp-buttons");if(null!==r&&!1!==t.includeByQueryParameter)return"false"!==r}catch(t){n.PublicLogger.error(t)}return!(o()&&(null===(e=t.exclude)||void 0===e?void 0:e.find((function(t){return"insideLivePreviewPortal"===t})))||!o()&&(null===(i=t.exclude)||void 0===i?void 0:i.find((function(t){return"outsideLivePreviewPortal"===t}))))},e.getEditButtonPosition=function(t,e){if(!t)return{upperBoundOfTooltip:0,leftBoundOfTooltip:0};var i=t.getAttribute("data-cslp-button-position");return function(t,e){var i={upperBoundOfTooltip:0,leftBoundOfTooltip:0},o=t.getBoundingClientRect();try{var r={width:72,halfWidth:36,height:40,basicMargin:5,widthWithMargin:77};switch(e){case"top-center":i.upperBoundOfTooltip=o.top-r.height,i.leftBoundOfTooltip=o.width/2-r.halfWidth+o.left;break;case"top-right":i.upperBoundOfTooltip=o.top-r.height,i.leftBoundOfTooltip=o.right-r.width;break;case"right":i.upperBoundOfTooltip=o.top-r.basicMargin,i.leftBoundOfTooltip=o.right+r.basicMargin;break;case"bottom":case"bottom-left":i.upperBoundOfTooltip=o.bottom+r.basicMargin,i.leftBoundOfTooltip=o.left-r.basicMargin;break;case"bottom-center":i.upperBoundOfTooltip=o.bottom+r.basicMargin,i.leftBoundOfTooltip=o.width/2-r.halfWidth+o.left;break;case"bottom-right":i.upperBoundOfTooltip=o.bottom+r.basicMargin,i.leftBoundOfTooltip=o.right-r.width;break;case"left":i.upperBoundOfTooltip=o.top-r.basicMargin,i.leftBoundOfTooltip=o.left-r.widthWithMargin;break;default:i.upperBoundOfTooltip=o.top-r.height,i.leftBoundOfTooltip=o.left-r.basicMargin}return i}catch(t){return n.PublicLogger.error(t),i}}(t,i||e||"top")}},895:function(t,e){"use strict";var i=this&&this.__spreadArray||function(t,e,i){if(i||2===arguments.length)for(var n,o=0,r=e.length;o<r;o++)!n&&o in e||(n||(n=Array.prototype.slice.call(e,0,o)),n[o]=e[o]);return t.concat(n||Array.prototype.slice.call(e))};Object.defineProperty(e,"__esModule",{value:!0}),e.PublicLogger=void 0;var n=function(){function t(){}return t.logEvent=function(t,e){t.apply(void 0,i(["Live_Preview_SDK:"],e,!1))},t.error=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.logEvent(console.error,t)},t.warn=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.logEvent(console.warn,t)},t.debug=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.logEvent(console.debug,t)},t}();e.PublicLogger=n},614:(t,e,i)=>{"use strict";var n;i.r(e),i.d(e,{NIL:()=>T,parse:()=>g,stringify:()=>u,v1:()=>f,v3:()=>B,v4:()=>E,v5:()=>S,validate:()=>a,version:()=>U});var o=new Uint8Array(16);function r(){if(!n&&!(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(o)}const l=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,a=function(t){return"string"==typeof t&&l.test(t)};for(var s=[],c=0;c<256;++c)s.push((c+256).toString(16).substr(1));const u=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=(s[t[e+0]]+s[t[e+1]]+s[t[e+2]]+s[t[e+3]]+"-"+s[t[e+4]]+s[t[e+5]]+"-"+s[t[e+6]]+s[t[e+7]]+"-"+s[t[e+8]]+s[t[e+9]]+"-"+s[t[e+10]]+s[t[e+11]]+s[t[e+12]]+s[t[e+13]]+s[t[e+14]]+s[t[e+15]]).toLowerCase();if(!a(i))throw TypeError("Stringified UUID is invalid");return i};var d,p,v=0,h=0;const f=function(t,e,i){var n=e&&i||0,o=e||new Array(16),l=(t=t||{}).node||d,a=void 0!==t.clockseq?t.clockseq:p;if(null==l||null==a){var s=t.random||(t.rng||r)();null==l&&(l=d=[1|s[0],s[1],s[2],s[3],s[4],s[5]]),null==a&&(a=p=16383&(s[6]<<8|s[7]))}var c=void 0!==t.msecs?t.msecs:Date.now(),f=void 0!==t.nsecs?t.nsecs:h+1,g=c-v+(f-h)/1e4;if(g<0&&void 0===t.clockseq&&(a=a+1&16383),(g<0||c>v)&&void 0===t.nsecs&&(f=0),f>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=c,h=f,p=a;var m=(1e4*(268435455&(c+=122192928e5))+f)%4294967296;o[n++]=m>>>24&255,o[n++]=m>>>16&255,o[n++]=m>>>8&255,o[n++]=255&m;var y=c/4294967296*1e4&268435455;o[n++]=y>>>8&255,o[n++]=255&y,o[n++]=y>>>24&15|16,o[n++]=y>>>16&255,o[n++]=a>>>8|128,o[n++]=255&a;for(var w=0;w<6;++w)o[n+w]=l[w];return e||u(o)},g=function(t){if(!a(t))throw TypeError("Invalid UUID");var e,i=new Uint8Array(16);return i[0]=(e=parseInt(t.slice(0,8),16))>>>24,i[1]=e>>>16&255,i[2]=e>>>8&255,i[3]=255&e,i[4]=(e=parseInt(t.slice(9,13),16))>>>8,i[5]=255&e,i[6]=(e=parseInt(t.slice(14,18),16))>>>8,i[7]=255&e,i[8]=(e=parseInt(t.slice(19,23),16))>>>8,i[9]=255&e,i[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,i[11]=e/4294967296&255,i[12]=e>>>24&255,i[13]=e>>>16&255,i[14]=e>>>8&255,i[15]=255&e,i};function m(t,e,i){function n(t,n,o,r){if("string"==typeof t&&(t=function(t){t=unescape(encodeURIComponent(t));for(var e=[],i=0;i<t.length;++i)e.push(t.charCodeAt(i));return e}(t)),"string"==typeof n&&(n=g(n)),16!==n.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var l=new Uint8Array(16+t.length);if(l.set(n),l.set(t,n.length),(l=i(l))[6]=15&l[6]|e,l[8]=63&l[8]|128,o){r=r||0;for(var a=0;a<16;++a)o[r+a]=l[a];return o}return u(l)}try{n.name=t}catch(t){}return n.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",n.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",n}function y(t){return 14+(t+64>>>9<<4)+1}function w(t,e){var i=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(i>>16)<<16|65535&i}function b(t,e,i,n,o,r){return w((l=w(w(e,t),w(n,r)))<<(a=o)|l>>>32-a,i);var l,a}function C(t,e,i,n,o,r,l){return b(e&i|~e&n,t,e,o,r,l)}function P(t,e,i,n,o,r,l){return b(e&n|i&~n,t,e,o,r,l)}function k(t,e,i,n,o,r,l){return b(e^i^n,t,e,o,r,l)}function L(t,e,i,n,o,r,l){return b(i^(e|~n),t,e,o,r,l)}const B=m("v3",48,(function(t){if("string"==typeof t){var e=unescape(encodeURIComponent(t));t=new Uint8Array(e.length);for(var i=0;i<e.length;++i)t[i]=e.charCodeAt(i)}return function(t){for(var e=[],i=32*t.length,n="0123456789abcdef",o=0;o<i;o+=8){var r=t[o>>5]>>>o%32&255,l=parseInt(n.charAt(r>>>4&15)+n.charAt(15&r),16);e.push(l)}return e}(function(t,e){t[e>>5]|=128<<e%32,t[y(e)-1]=e;for(var i=1732584193,n=-271733879,o=-1732584194,r=271733878,l=0;l<t.length;l+=16){var a=i,s=n,c=o,u=r;i=C(i,n,o,r,t[l],7,-680876936),r=C(r,i,n,o,t[l+1],12,-389564586),o=C(o,r,i,n,t[l+2],17,606105819),n=C(n,o,r,i,t[l+3],22,-1044525330),i=C(i,n,o,r,t[l+4],7,-176418897),r=C(r,i,n,o,t[l+5],12,1200080426),o=C(o,r,i,n,t[l+6],17,-1473231341),n=C(n,o,r,i,t[l+7],22,-45705983),i=C(i,n,o,r,t[l+8],7,1770035416),r=C(r,i,n,o,t[l+9],12,-1958414417),o=C(o,r,i,n,t[l+10],17,-42063),n=C(n,o,r,i,t[l+11],22,-1990404162),i=C(i,n,o,r,t[l+12],7,1804603682),r=C(r,i,n,o,t[l+13],12,-40341101),o=C(o,r,i,n,t[l+14],17,-1502002290),i=P(i,n=C(n,o,r,i,t[l+15],22,1236535329),o,r,t[l+1],5,-165796510),r=P(r,i,n,o,t[l+6],9,-1069501632),o=P(o,r,i,n,t[l+11],14,643717713),n=P(n,o,r,i,t[l],20,-373897302),i=P(i,n,o,r,t[l+5],5,-701558691),r=P(r,i,n,o,t[l+10],9,38016083),o=P(o,r,i,n,t[l+15],14,-660478335),n=P(n,o,r,i,t[l+4],20,-405537848),i=P(i,n,o,r,t[l+9],5,568446438),r=P(r,i,n,o,t[l+14],9,-1019803690),o=P(o,r,i,n,t[l+3],14,-187363961),n=P(n,o,r,i,t[l+8],20,1163531501),i=P(i,n,o,r,t[l+13],5,-1444681467),r=P(r,i,n,o,t[l+2],9,-51403784),o=P(o,r,i,n,t[l+7],14,1735328473),i=k(i,n=P(n,o,r,i,t[l+12],20,-1926607734),o,r,t[l+5],4,-378558),r=k(r,i,n,o,t[l+8],11,-2022574463),o=k(o,r,i,n,t[l+11],16,1839030562),n=k(n,o,r,i,t[l+14],23,-35309556),i=k(i,n,o,r,t[l+1],4,-1530992060),r=k(r,i,n,o,t[l+4],11,1272893353),o=k(o,r,i,n,t[l+7],16,-155497632),n=k(n,o,r,i,t[l+10],23,-1094730640),i=k(i,n,o,r,t[l+13],4,681279174),r=k(r,i,n,o,t[l],11,-358537222),o=k(o,r,i,n,t[l+3],16,-722521979),n=k(n,o,r,i,t[l+6],23,76029189),i=k(i,n,o,r,t[l+9],4,-640364487),r=k(r,i,n,o,t[l+12],11,-421815835),o=k(o,r,i,n,t[l+15],16,530742520),i=L(i,n=k(n,o,r,i,t[l+2],23,-995338651),o,r,t[l],6,-198630844),r=L(r,i,n,o,t[l+7],10,1126891415),o=L(o,r,i,n,t[l+14],15,-1416354905),n=L(n,o,r,i,t[l+5],21,-57434055),i=L(i,n,o,r,t[l+12],6,1700485571),r=L(r,i,n,o,t[l+3],10,-1894986606),o=L(o,r,i,n,t[l+10],15,-1051523),n=L(n,o,r,i,t[l+1],21,-2054922799),i=L(i,n,o,r,t[l+8],6,1873313359),r=L(r,i,n,o,t[l+15],10,-30611744),o=L(o,r,i,n,t[l+6],15,-1560198380),n=L(n,o,r,i,t[l+13],21,1309151649),i=L(i,n,o,r,t[l+4],6,-145523070),r=L(r,i,n,o,t[l+11],10,-1120210379),o=L(o,r,i,n,t[l+2],15,718787259),n=L(n,o,r,i,t[l+9],21,-343485551),i=w(i,a),n=w(n,s),o=w(o,c),r=w(r,u)}return[i,n,o,r]}(function(t){if(0===t.length)return[];for(var e=8*t.length,i=new Uint32Array(y(e)),n=0;n<e;n+=8)i[n>>5]|=(255&t[n/8])<<n%32;return i}(t),8*t.length))})),E=function(t,e,i){var n=(t=t||{}).random||(t.rng||r)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){i=i||0;for(var o=0;o<16;++o)e[i+o]=n[o];return e}return u(n)};function O(t,e,i,n){switch(t){case 0:return e&i^~e&n;case 1:case 3:return e^i^n;case 2:return e&i^e&n^i&n}}function _(t,e){return t<<e|t>>>32-e}const S=m("v5",80,(function(t){var e=[1518500249,1859775393,2400959708,3395469782],i=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){var n=unescape(encodeURIComponent(t));t=[];for(var o=0;o<n.length;++o)t.push(n.charCodeAt(o))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);for(var r=t.length/4+2,l=Math.ceil(r/16),a=new Array(l),s=0;s<l;++s){for(var c=new Uint32Array(16),u=0;u<16;++u)c[u]=t[64*s+4*u]<<24|t[64*s+4*u+1]<<16|t[64*s+4*u+2]<<8|t[64*s+4*u+3];a[s]=c}a[l-1][14]=8*(t.length-1)/Math.pow(2,32),a[l-1][14]=Math.floor(a[l-1][14]),a[l-1][15]=8*(t.length-1)&4294967295;for(var d=0;d<l;++d){for(var p=new Uint32Array(80),v=0;v<16;++v)p[v]=a[d][v];for(var h=16;h<80;++h)p[h]=_(p[h-3]^p[h-8]^p[h-14]^p[h-16],1);for(var f=i[0],g=i[1],m=i[2],y=i[3],w=i[4],b=0;b<80;++b){var C=Math.floor(b/20),P=_(f,5)+O(C,g,m,y)+w+e[C]+p[b]>>>0;w=y,y=m,m=_(g,30)>>>0,g=f,f=P}i[0]=i[0]+f>>>0,i[1]=i[1]+g>>>0,i[2]=i[2]+m>>>0,i[3]=i[3]+y>>>0,i[4]=i[4]+w>>>0}return[i[0]>>24&255,i[0]>>16&255,i[0]>>8&255,255&i[0],i[1]>>24&255,i[1]>>16&255,i[1]>>8&255,255&i[1],i[2]>>24&255,i[2]>>16&255,i[2]>>8&255,255&i[2],i[3]>>24&255,i[3]>>16&255,i[3]>>8&255,255&i[3],i[4]>>24&255,i[4]>>16&255,i[4]>>8&255,255&i[4]]})),T="00000000-0000-0000-0000-000000000000",U=function(t){if(!a(t))throw TypeError("Invalid UUID");return parseInt(t.substr(14,1),16)}},147:t=>{"use strict";t.exports=JSON.parse('{"name":"@contentstack/live-preview-utils","version":"1.4.1","types":"dist/src/index.d.ts","description":"Contentstack provides the Live Preview SDK to establish a communication channel between the various Contentstack SDKs and your website, transmitting live changes to the preview pane.","main":"dist/index.js","files":["dist"],"scripts":{"build":"webpack --config webpack.prod.js","test":"jest","test:coverage":"jest src --coverage --watchAll --coverageDirectory=\\"coverage\\"","dev":"webpack --config webpack.dev.js","prepare":"npm run build && husky install","lint":"eslint src","lint:fix":"eslint --fix","prettier":"prettier src --check","prettier:fix":"prettier src --write","format":"npm run prettier:fix && npm run lint:fix","docs":"typedoc --out docs --entryPointStrategy expand ./src"},"keywords":["live-preview"],"author":"Contentstack","license":"MIT","devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.3.1","@testing-library/jest-dom":"^5.14.1","@types/jest":"^27.0.1","@types/mustache":"^4.2.2","@types/uuid":"^8.3.1","@typescript-eslint/eslint-plugin":"^4.31.1","@typescript-eslint/parser":"^4.31.1","babel-loader":"^8.0.5","css-loader":"^5.2.2","eslint":"^7.32.0","eslint-config-prettier":"^8.6.0","husky":"^8.0.0","jest":"^27.2.0","jest-fetch-mock":"^3.0.3","mini-css-extract-plugin":"^2.3.0","prettier":"^2.8.4","prettier-eslint":"^15.0.1","style-loader":"^2.0.0","ts-jest":"^27.0.5","ts-loader":"^9.4.2","typedoc":"^0.23.25","typescript":"^4.4.3","webpack":"^5.53.0","webpack-cli":"^4.8.0","webpack-dev-server":"^4.7.4","webpack-merge":"^5.8.0"},"repository":{"type":"git","url":"https://github.com/contentstack/live-preview-sdk.git"},"dependencies":{"just-camel-case":"^4.0.2","morphdom":"^2.6.1","mustache":"^4.2.0","uuid":"^8.3.2"},"lint-staged":{"src/**/*.{ts,css,md}":["npm run prettier:fix"]}}')}},e={};function i(n){var o=e[n];if(void 0!==o)return o.exports;var r=e[n]={exports:{}};return t[n].call(r.exports,r,r.exports,i),r.exports}return i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i(607)})()));
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ContentstackLivePreview=e():t.ContentstackLivePreview=e()}(this,(()=>(()=>{var t={704:t=>{t.exports=function(t,a){for(var l=t.split(e),s=l.length,c=new Array(s),u=0;u<s;u++){var d=l[u];if(""!==d){var p=i.test(d)&&!r.test(d);p&&(d=d.replace(n,(function(t,e,i){return o(t,d.length-i-t.length==0)})));var v=d[0];v=u>0?v.toUpperCase():v.toLowerCase(),c[u]=v+(p?d.slice(1):d.slice(1).toLowerCase())}}return c.join("")};var e=/[\s\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]+/,i=/^[a-z\u00E0-\u00FCA-Z\u00C0-\u00DC][\d|a-z\u00E0-\u00FCA-Z\u00C0-\u00DC]*$/,n=/([A-Z\u00C0-\u00DC]{4,})/g,r=/^[A-Z\u00C0-\u00DC]+$/;function o(t,e){var i=t.split(""),n=i.shift().toUpperCase(),r=e?i.pop().toLowerCase():i.pop();return n+i.join("").toLowerCase()+r}},279:(t,e,i)=>{"use strict";i.r(e)},135:function(t,e,i){"use strict";var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))((function(r,o){function a(t){try{s(n.next(t))}catch(t){o(t)}}function l(t){try{s(n.throw(t))}catch(t){o(t)}}function s(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(a,l)}s((n=n.apply(t,e||[])).next())}))},r=this&&this.__generator||function(t,e){var i,n,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(l){return function(s){return function(l){if(i)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(a=0)),a;)try{if(i=1,n&&(r=2&l[0]?n.return:l[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,l[1])).done)return r;switch(n=0,r&&(l=[2&l[0],r.value]),l[0]){case 0:case 1:r=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,n=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!((r=(r=a.trys).length>0&&r[r.length-1])||6!==l[0]&&2!==l[0])){a=0;continue}if(3===l[0]&&(!r||l[1]>r[0]&&l[1]<r[3])){a.label=l[1];break}if(6===l[0]&&a.label<r[1]){a.label=r[1],r=l;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(l);break}r[2]&&a.ops.pop(),a.trys.pop();continue}l=e.call(t,a)}catch(t){l=[6,t],n=0}finally{i=r=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,s])}}},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.ContentstackLivePreview=void 0;var a=i(614),l=o(i(704)),s=o(i(147)),c=o(i(922)),u=i(334),d=i(895),p=function(){function t(){}return t.init=function(e){if(void 0===e&&(e=u.userInitData),"undefined"!=typeof window)return t.livePreview?(d.PublicLogger.warn("You have already initialized the Live Preview SDK. So, any subsequent initialization returns the existing SDK instance."),Promise.resolve(t.livePreview)):(t.livePreview=new c.default(e),t.livePreview.setOnChangeCallback(t.publish),t.livePreview.setConfigFromParams(this.configs.params),this.configs.params={},Promise.resolve(t.livePreview));t.userConfig=e},Object.defineProperty(t,"hash",{get:function(){var t;return this.livePreview?this.livePreview.hash:null!==(t=new URLSearchParams(this.configs.params).get("live_preview"))&&void 0!==t?t:""},enumerable:!1,configurable:!0}),t.setConfigFromParams=function(t){void 0===t&&(t={}),this.livePreview?this.livePreview.setConfigFromParams(t):this.configs.params=t},t.publish=function(){Object.values(t.subscribers).forEach((function(t){t()}))},t.subscribe=function(e){var i=(0,a.v4)();return t.subscribers[i]=e,i},t.onEntryChange=function(e,i){var n=(i||{}).skipInitialRender,r=void 0!==n&&n;t.userConfig&&(t.livePreview=new c.default(t.userConfig),t.livePreview.setOnChangeCallback(t.publish),t.livePreview.setConfigFromParams(this.configs.params),this.configs.params={},t.userConfig=null);var o=t.subscribe(e);return r||e(),o},t.onLiveEdit=function(e){return t.onEntryChange(e,{skipInitialRender:!0})},t.unsubscribeOnEntryChange=function(e){"string"==typeof e?(t.subscribers[e]||d.PublicLogger.warn("No subscriber found with the given id."),delete t.subscribers[e]):"function"==typeof e&&(Object.entries(t.subscribers).some((function(i){var n=i[0];return i[1]===e&&(delete t.subscribers[n],!0)}))||d.PublicLogger.warn("No subscriber found with the given callback."))},t.getGatsbyDataFormat=function(t,e){return n(this,void 0,void 0,(function(){return r(this,(function(i){return"function"==typeof t.find?[2,t.toJSON().find().then((function(i){return i.map((function(i){return i.map((function(i){var n;return(n={})[(0,l.default)("".concat(e,"_").concat(t.content_type_uid))]=i,n}))}))})).catch((function(t){console.error(t)}))]:"function"==typeof t.fetch?[2,t.toJSON().fetch().then((function(i){var n;return(n={})[(0,l.default)("".concat(e,"_").concat(t.content_type_uid))]=i,n})).catch((function(t){console.error(t)}))]:[2]}))}))},t.getSdkVersion=function(){return s.default.version},t.livePreview=null,t.userConfig=null,t.subscribers={},t.configs={params:{}},t}();e.ContentstackLivePreview=p,e.default=p,t.exports=p},607:function(t,e,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.ContentstackLivePreview=void 0;var r=n(i(135));i(279),e.ContentstackLivePreview=r.default,e.default=e.ContentstackLivePreview,t.exports=e.ContentstackLivePreview},922:function(t,e,i){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i<n;i++)for(var r in e=arguments[i])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t},n.apply(this,arguments)},r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o=i(928),a=i(895),l=i(383),s=i(334),c=r(i(147)),u=function(){function t(t){void 0===t&&(t=s.userInitData);var e=this;this.config={ssr:!0,enable:!0,runScriptsOnUpdate:!1,cleanCslpOnProduction:!0,hash:"",editButton:{enable:!0,exclude:[],position:"top",includeByQueryParameter:!0},stackDetails:{apiKey:"",environment:"",branch:"main",contentTypeUid:"",entryUid:""},clientUrlParams:{protocol:"https",host:"app.contentstack.com",port:443,url:"https://app.contentstack.com:443"},stackSdk:{live_preview:{},headers:{api_key:""},environment:""},onChange:function(){}},this.tooltip=null,this.currentElementBesideTooltip=null,this.isHoveringOnTooltip=!1,this.hideInterval=null,this.tooltipChild={singular:null,multiple:null},this.tooltipCurrentChild="singular",this.createCslpTooltip=function(){if(!document.getElementById("cslp-tooltip")&&e.config.editButton.enable){var t=document.createElement("button"),i=document.createElement("div");i.classList.add("cslp-tooltip-inner-container"),t.classList.add("cslp-tooltip"),t.classList.add("cslp-tooltip"),t.setAttribute("data-test-id","cs-cslp-tooltip"),t.id="cslp-tooltip",i.id="cslp-tooltip-inner-container",t.addEventListener("mouseover",(function(){e.toggleHoveringOnEditButton(!0)})),t.addEventListener("mouseleave",(function(t){e.toggleHoveringOnEditButton(!1),e.removeEditButtonStyle(t)})),window.document.body.insertAdjacentElement("beforeend",t),e.tooltipChild.singular=(0,o.createSingularEditButton)(e.scrollHandler),e.tooltipChild.multiple=(0,o.createMultipleEditButton)(e.scrollHandler,e.linkClickHandler),i.innerHTML="",i.appendChild(e.tooltipChild.singular),t.appendChild(i),e.tooltip=t}e.updateTooltipPosition()},this.toggleHoveringOnEditButton=function(t){e.isHoveringOnTooltip=t},(0,l.handleInitData)(t,this.config),this.addEditStyleOnHover=this.addEditStyleOnHover.bind(this),this.removeEditButtonStyle=this.removeEditButtonStyle.bind(this),this.generateRedirectUrl=this.generateRedirectUrl.bind(this),this.scrollHandler=this.scrollHandler.bind(this),this.linkClickHandler=this.linkClickHandler.bind(this),this.handleUserChange=this.handleUserChange.bind(this),this.setOnChangeCallback=this.setOnChangeCallback.bind(this),this.resolveIncomingMessage=this.resolveIncomingMessage.bind(this),this.createCslpTooltip=this.createCslpTooltip.bind(this),this.requestDataSync=this.requestDataSync.bind(this),this.updateTooltipPosition=this.updateTooltipPosition.bind(this),this.removeDataCslp=this.removeDataCslp.bind(this),this.toggleHoveringOnEditButton=this.toggleHoveringOnEditButton.bind(this),this.hideTooltip=this.hideTooltip.bind(this),t.debug&&a.PublicLogger.debug("Contentstack Live Preview Debugging mode: config --",this.config),this.config.enable?(void 0!==typeof document&&"complete"===document.readyState?this.requestDataSync():window.addEventListener("load",this.requestDataSync),window.addEventListener("message",this.resolveIncomingMessage),window.addEventListener("scroll",this.updateTooltipPosition),this.config.editButton.enable&&window.addEventListener("mouseover",this.addEditStyleOnHover),this.config.ssr&&(window.addEventListener("load",(function(t){document.querySelectorAll("a").forEach((function(t){var e=document.location.origin;if(t.href&&t.href.includes(e)){var i=(0,o.addLivePreviewQueryTags)(t.href);t.href=i}}))})),window.addEventListener("click",(function(t){var e=t.target,i=e.href,n=document.location.origin;if(i&&i.includes(n)&&!i.includes("live_preview")){var r=(0,o.addLivePreviewQueryTags)(e.href);t.target.href=r||e.href}})))):this.config.cleanCslpOnProduction&&this.removeDataCslp()}return t.prototype.addEditStyleOnHover=function(t){for(var e,i,n,r=!0,o=0,a=t.composedPath();o<a.length;o++){var l=a[o];if("BODY"===l.nodeName)break;if("function"==typeof(null==l?void 0:l.getAttribute)){var s=l.getAttribute("data-cslp");r&&s?(this.hideInterval&&(clearInterval(this.hideInterval),this.hideInterval=null),this.currentElementBesideTooltip&&(this.currentElementBesideTooltip.classList.remove("cslp-edit-mode"),this.currentElementBesideTooltip.removeEventListener("mouseleave",this.removeEditButtonStyle)),l.classList.add("cslp-edit-mode"),this.currentElementBesideTooltip=l,this.currentElementBesideTooltip.addEventListener("mouseleave",this.removeEditButtonStyle),this.updateTooltipPosition()&&(null===(e=this.tooltip)||void 0===e||e.setAttribute("current-data-cslp",s),null===(i=this.tooltip)||void 0===i||i.setAttribute("current-href",null!==(n=l.getAttribute("href"))&&void 0!==n?n:"")),r=!1):r||l.classList.remove("cslp-edit-mode")}}},t.prototype.removeEditButtonStyle=function(t){if(!this.currentElementBesideTooltip||!this.tooltip)return!1;for(var e=!0,i=0,n=t.composedPath();i<n.length;i++){var r=n[i];if("BODY"===r.nodeName)break;if("function"==typeof(null==r?void 0:r.getAttribute)){var o=r.getAttribute("data-cslp");e&&o?(this.hideInterval=setInterval(this.hideTooltip,500),e=!1):e||r.classList.remove("cslp-edit-mode")}}},t.prototype.hideTooltip=function(){if(!this.currentElementBesideTooltip||!this.tooltip||this.isHoveringOnTooltip)return!1;this.currentElementBesideTooltip.classList.remove("cslp-edit-mode"),this.currentElementBesideTooltip.removeEventListener("mouseleave",this.removeEditButtonStyle),this.currentElementBesideTooltip=null,this.tooltip.style.top="-100%"},t.prototype.generateRedirectUrl=function(t,e,i,n){if(void 0===e&&(e="en-us"),!this.config.stackDetails.apiKey)throw"To use edit tags, you must provide the stack API key. Specify the API key while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n apiKey: 'your-api-key'\n },\n ...\n })";if(!this.config.stackDetails.environment)throw"To use edit tags, you must provide the preview environment. Specify the preview environment while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n environment: 'Your-environment'\n },\n ...\n })";var r=String(this.config.clientUrlParams.protocol),o=String(this.config.clientUrlParams.host),a=String(this.config.clientUrlParams.port),l=String(this.config.stackDetails.environment),s=String(this.config.stackDetails.branch||"main"),c="!/stack/".concat(this.config.stackDetails.apiKey,"/content-type/").concat(t,"/").concat(null!=e?e:"en-us","/entry/").concat(i,"/edit"),u=new URL("".concat(r,"://").concat(o));return u.port=a,u.hash=c,u.searchParams.append("branch",s),u.searchParams.append("preview-field",n),u.searchParams.append("preview-locale",null!=e?e:"en-us"),u.searchParams.append("preview-environment",l),"".concat(u.origin,"/").concat(u.hash).concat(u.search)},t.prototype.scrollHandler=function(){if(this.tooltip){var t=this.tooltip.getAttribute("current-data-cslp");if(t){var e=t.split("."),i=e[0],n=e[1],r=e[2],o=e.slice(3);if(window.location!==window.parent.location)window.parent.postMessage({from:"live-preview",type:"scroll",data:{field:o.join("."),content_type_uid:i,entry_uid:n,locale:r}},"*");else try{var l=this.generateRedirectUrl(i,r,n,o.join("."));window.open(l,"_blank")}catch(t){a.PublicLogger.error(t)}}}},t.prototype.linkClickHandler=function(){if(this.tooltip){var t=this.tooltip.getAttribute("current-href");t&&window.location.assign(t)}},t.prototype.handleUserChange=function(t){this.config.stackSdk.live_preview=n(n(n({},this.config.stackSdk.live_preview),t),{live_preview:t.hash}),this.config.onChange()},t.prototype.setOnChangeCallback=function(t){this.config.onChange=t},Object.defineProperty(t.prototype,"hash",{get:function(){return this.config.hash},enumerable:!1,configurable:!0}),t.prototype.setConfigFromParams=function(t){if(void 0===t&&(t={}),"object"!=typeof t)throw new TypeError("Live preview SDK: query param must be an object");var e=new URLSearchParams(t).get("live_preview");e&&(this.config.hash=e)},t.prototype.resolveIncomingMessage=function(t){if("object"==typeof t.data&&"live-preview"===t.data.from)switch(t.data.type){case"client-data-send":var e=this.config.stackDetails,i=e.contentTypeUid,n=e.entryUid,r=t.data.data.hash;this.setConfigFromParams({live_preview:r}),this.config.ssr||this.handleUserChange({content_type_uid:i,entry_uid:n,hash:r});break;case"init-ack":var o=t.data.data;i=o.contentTypeUid,n=o.entryUid,this.config.stackDetails.contentTypeUid=i,this.config.stackDetails.entryUid=n;break;case"history":switch(t.data.data.type){case"forward":window.history.forward();break;case"backward":window.history.back();break;case"reload":window.history.go()}break;default:return t.data}},t.prototype.requestDataSync=function(){this.createCslpTooltip(),window.parent.postMessage({from:"live-preview",type:"init",data:{config:{shouldReload:this.config.ssr,href:window.location.href,sdkVersion:c.default.version}}},"*"),this.config.ssr||setInterval((function(){window.parent.postMessage({from:"live-preview",type:"check-entry-page",data:{href:window.location.href}},"*")}),1500)},t.prototype.updateTooltipPosition=function(){var t;if(!this.currentElementBesideTooltip||!this.tooltip)return!1;var e=this.currentElementBesideTooltip.getBoundingClientRect(),i=null===(t=this.tooltip.parentElement)||void 0===t?void 0:t.getBoundingClientRect();if(e&&i){var n=(0,o.getEditButtonPosition)(this.currentElementBesideTooltip,this.config.editButton.position),r=n.upperBoundOfTooltip,a=n.leftBoundOfTooltip;if(r<0&&(r=e.top<0?e.top:0),this.tooltip.style.top=r+"px",this.tooltip.style.zIndex=this.currentElementBesideTooltip.style.zIndex||"200",this.tooltip.style.left=a+"px",this.tooltipChild.singular&&this.tooltipChild.multiple)if(this.currentElementBesideTooltip.hasAttribute("href"))"multiple"!==this.tooltipCurrentChild&&(l=this.tooltip.querySelector("div.cslp-tooltip-inner-container"))&&(l.innerHTML="",l.appendChild(this.tooltipChild.multiple),this.tooltipCurrentChild="multiple");else if("singular"!==this.tooltipCurrentChild){var l;(l=this.tooltip.querySelector("div.cslp-tooltip-inner-container"))&&(l.innerHTML="",l.appendChild(this.tooltipChild.singular),this.tooltipCurrentChild="singular")}return!0}return!1},t.prototype.removeDataCslp=function(){document.querySelectorAll("[data-cslp]").forEach((function(t){t.removeAttribute("data-cslp"),t.removeAttribute("data-cslp-button-position")}))},t}();e.default=u},334:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.userInitData=void 0,e.userInitData={ssr:!0,enable:!0,cleanCslpOnProduction:!0,editButton:{enable:!0,exclude:[],position:"top",includeByQueryParameter:!0},stackDetails:{apiKey:"",environment:"",branch:"main"},clientUrlParams:{protocol:"https",host:"app.contentstack.com",port:443},stackSdk:{live_preview:{},headers:{api_key:""},environment:""},runScriptsOnUpdate:!1}},383:(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.handleUserConfig=e.handleInitData=void 0;var n=i(928),r=i(895),o=function(t,e){var i,n,r;if(t.clientUrlParams.host=null!==(i=e.host)&&void 0!==i?i:t.clientUrlParams.host,t.clientUrlParams.protocol=null!==(n=e.protocol)&&void 0!==n?n:t.clientUrlParams.protocol,t.clientUrlParams.port=null!==(r=e.port)&&void 0!==r?r:t.clientUrlParams.port,void 0!==e.protocol&&void 0===e.port)switch(e.protocol){case"http":t.clientUrlParams.port=80;break;case"https":t.clientUrlParams.port=443}var o=t.clientUrlParams.host;o.endsWith("/")&&(o=o.slice(0,-1),t.clientUrlParams.host=o),t.clientUrlParams.url="".concat(t.clientUrlParams.protocol,"://").concat(t.clientUrlParams.host,":").concat(t.clientUrlParams.port)};function a(t){return Object.prototype.hasOwnProperty.call(t,"cachePolicy")}e.handleInitData=function(t,e){var i,l,s,c,u,d,p,v,h,f,g,m,y,w,b,C,P,k,L,B,E,O,_,S,T,U,D,x,M,A,j,H,I,R,V,K,Z,q,Q,F,N,z,W,Y,$,G,J,X,tt,et,it,nt,rt,ot,at,lt,st,ct,ut,dt,pt;if(a(t)){r.PublicLogger.warn("Deprecated: Do not pass the Stack object directly to the Live Preview SDK. Pass it using the config.stackSDK config object.");var vt=(null==t?void 0:t.live_preview)||{};e.ssr=!1,e.runScriptsOnUpdate=null!==(i=vt.runScriptsOnUpdate)&&void 0!==i?i:e.runScriptsOnUpdate,e.enable=null!==(l=vt.enable)&&void 0!==l?l:e.enable,e.cleanCslpOnProduction=null!==(s=vt.cleanCslpOnProduction)&&void 0!==s?s:e.cleanCslpOnProduction,e.editButton={enable:(0,n.shouldRenderEditButton)(null!==(c=vt.editButton)&&void 0!==c?c:e.editButton),exclude:Array.isArray(null===(u=vt.editButton)||void 0===u?void 0:u.exclude)&&(null===(d=vt.editButton)||void 0===d?void 0:d.exclude)?null===(p=vt.editButton)||void 0===p?void 0:p.exclude:null!==(v=e.editButton.exclude)&&void 0!==v?v:[],position:null!==(g=null!==(f=null===(h=vt.editButton)||void 0===h?void 0:h.position)&&void 0!==f?f:e.editButton.position)&&void 0!==g?g:"top",includeByQueryParameter:null===(w=null!==(y=null===(m=vt.editButton)||void 0===m?void 0:m.includeByQueryParameter)&&void 0!==y?y:e.editButton.includeByQueryParameter)||void 0===w||w},e.stackSdk=t,Object.prototype.hasOwnProperty.call(t.headers,"api_key")&&t.headers.api_key&&(e.stackDetails.apiKey=t.headers.api_key),Object.prototype.hasOwnProperty.call(t,"environment")&&(e.stackDetails.environment=t.environment),Object.prototype.hasOwnProperty.call(t,"branch")&&(e.stackDetails.branch=t.branch),o(e,null!==(b=vt.clientUrlParams)&&void 0!==b?b:e.clientUrlParams)}else if(!a(t)){var ht=t.stackSdk||e.stackSdk;e.enable=null!==(k=null!==(C=t.enable)&&void 0!==C?C:null===(P=ht.live_preview)||void 0===P?void 0:P.enable)&&void 0!==k?k:e.enable,e.ssr=null===(O=null!==(E=null!==(L=t.ssr)&&void 0!==L?L:null===(B=ht.live_preview)||void 0===B?void 0:B.ssr)&&void 0!==E?E:"object"!=typeof t.stackSdk)||void 0===O||O,e.runScriptsOnUpdate=null!==(T=null!==(_=t.runScriptsOnUpdate)&&void 0!==_?_:null===(S=ht.live_preview)||void 0===S?void 0:S.runScriptsOnUpdate)&&void 0!==T?T:e.runScriptsOnUpdate,e.stackSdk=ht,e.cleanCslpOnProduction=null!==(x=null!==(U=t.cleanCslpOnProduction)&&void 0!==U?U:null===(D=ht.live_preview)||void 0===D?void 0:D.cleanCslpOnProduction)&&void 0!==x?x:e.cleanCslpOnProduction,e.editButton={enable:(0,n.shouldRenderEditButton)(null!==(j=null!==(M=t.editButton)&&void 0!==M?M:null===(A=ht.live_preview)||void 0===A?void 0:A.editButton)&&void 0!==j?j:e.editButton),exclude:Array.isArray(null===(H=t.editButton)||void 0===H?void 0:H.exclude)&&(null===(I=t.editButton)||void 0===I?void 0:I.exclude)?null===(R=t.editButton)||void 0===R?void 0:R.exclude:Array.isArray(null===(V=ht.live_preview)||void 0===V?void 0:V.exclude)&&(null===(K=ht.live_preview)||void 0===K?void 0:K.exclude)?null===(Z=ht.live_preview)||void 0===Z?void 0:Z.exclude:null!==(q=e.editButton.exclude)&&void 0!==q?q:[],position:null!==(W=null!==(z=null!==(F=null===(Q=t.editButton)||void 0===Q?void 0:Q.position)&&void 0!==F?F:null===(N=ht.live_preview)||void 0===N?void 0:N.position)&&void 0!==z?z:e.editButton.position)&&void 0!==W?W:"top",includeByQueryParameter:null===(X=null!==(J=null!==($=null===(Y=t.editButton)||void 0===Y?void 0:Y.includeByQueryParameter)&&void 0!==$?$:null===(G=ht.live_preview)||void 0===G?void 0:G.includeByQueryParameter)&&void 0!==J?J:e.editButton.includeByQueryParameter)||void 0===X||X},e.stackDetails.apiKey=null!==(nt=null!==(et=null===(tt=t.stackDetails)||void 0===tt?void 0:tt.apiKey)&&void 0!==et?et:null===(it=ht.headers)||void 0===it?void 0:it.api_key)&&void 0!==nt?nt:e.stackDetails.apiKey,e.stackDetails.environment=null!==(at=null!==(ot=null===(rt=t.stackDetails)||void 0===rt?void 0:rt.environment)&&void 0!==ot?ot:ht.environment)&&void 0!==at?at:e.stackDetails.environment,e.stackDetails.branch=null!==(ct=null!==(st=null===(lt=t.stackDetails)||void 0===lt?void 0:lt.branch)&&void 0!==st?st:e.stackDetails.branch)&&void 0!==ct?ct:"main",o(e,null!==(pt=null!==(ut=t.clientUrlParams)&&void 0!==ut?ut:null===(dt=ht.live_preview)||void 0===dt?void 0:dt.clientUrlParams)&&void 0!==pt?pt:e.clientUrlParams)}},e.handleUserConfig={clientUrlParams:o}},928:(t,e,i)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getEditButtonPosition=e.shouldRenderEditButton=e.addLivePreviewQueryTags=e.createMultipleEditButton=e.createSingularEditButton=e.tooltipMultipleInnerHtml=e.tooltipSingularInnerHtml=e.hasWindow=void 0;var n=i(895);function r(){return window.location!==window.parent.location}e.hasWindow=function(){return"undefined"!=typeof window},e.tooltipSingularInnerHtml='<div class="singular edit-button">\n <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z" fill="#718096"></path>\n <path d="M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z" fill="#718096"></path>\n </svg>Edit\n </div>',e.tooltipMultipleInnerHtml='<div class="edit-button" title="edit">\n <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z" fill="#718096"></path>\n <path d="M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z" fill="#718096"></path>\n </svg>\n </div>\n <div title="click element" class="external-link-button">\n <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z" fill="#718096" />\n <path d="M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z" fill="#718096" />\n </svg>\n </div>',e.createSingularEditButton=function(t){var e=document.createElement("div");return e.classList.add("cslp-tooltip-child","singular"),e.setAttribute("data-test-id","cslp-singular-edit-button"),e.innerHTML='<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z" fill="#718096"></path>\n <path d="M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z" fill="#718096"></path>\n </svg>Edit',e.addEventListener("click",t),e},e.createMultipleEditButton=function(t,e){var i=document.createElement("div");i.classList.add("cslp-tooltip-child"),i.setAttribute("data-title","Edit"),i.setAttribute("data-test-id","cslp-multiple-edit-button"),i.innerHTML=' <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z" fill="#718096"></path>\n <path d="M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z" fill="#718096"></path>\n </svg>',i.addEventListener("click",t);var n=document.createElement("div");n.classList.add("cslp-tooltip-child"),n.setAttribute("data-title","Go to link"),n.setAttribute("data-test-id","cslp-multiple-external-link-button"),n.innerHTML=' <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z" fill="#718096" />\n <path d="M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z" fill="#718096" />\n </svg>',n.addEventListener("click",e);var r=document.createDocumentFragment();r.appendChild(i),r.appendChild(n);var o=document.createElement("div");return o.appendChild(r),o.classList.add("multiple"),o},e.addLivePreviewQueryTags=function(t){try{var e=new URL(document.location.href),i=new URL(t),r=e.searchParams.get("live_preview"),o=e.searchParams.get("content_type_uid"),a=e.searchParams.get("entry_uid");return r&&o&&a&&(i.searchParams.set("live_preview",r),i.searchParams.set("content_type_uid",o),i.searchParams.set("entry_uid",a)),i.href}catch(e){return n.PublicLogger.error("Error while adding live preview to URL"),t}},e.shouldRenderEditButton=function(t){var e,i;if(!t.enable)return void 0===t.enable&&n.PublicLogger.error("enable key is required inside editButton object"),!1;try{var o=new URL(window.location.href).searchParams.get("cslp-buttons");if(null!==o&&!1!==t.includeByQueryParameter)return"false"!==o}catch(t){n.PublicLogger.error(t)}return!(r()&&(null===(e=t.exclude)||void 0===e?void 0:e.find((function(t){return"insideLivePreviewPortal"===t})))||!r()&&(null===(i=t.exclude)||void 0===i?void 0:i.find((function(t){return"outsideLivePreviewPortal"===t}))))},e.getEditButtonPosition=function(t,e){if(!t)return{upperBoundOfTooltip:0,leftBoundOfTooltip:0};var i=t.getAttribute("data-cslp-button-position");return function(t,e){var i={upperBoundOfTooltip:0,leftBoundOfTooltip:0},r=t.getBoundingClientRect();try{var o={width:72,halfWidth:36,height:40,basicMargin:5,widthWithMargin:77};switch(e){case"top-center":i.upperBoundOfTooltip=r.top-o.height,i.leftBoundOfTooltip=r.width/2-o.halfWidth+r.left;break;case"top-right":i.upperBoundOfTooltip=r.top-o.height,i.leftBoundOfTooltip=r.right-o.width;break;case"right":i.upperBoundOfTooltip=r.top-o.basicMargin,i.leftBoundOfTooltip=r.right+o.basicMargin;break;case"bottom":case"bottom-left":i.upperBoundOfTooltip=r.bottom+o.basicMargin,i.leftBoundOfTooltip=r.left-o.basicMargin;break;case"bottom-center":i.upperBoundOfTooltip=r.bottom+o.basicMargin,i.leftBoundOfTooltip=r.width/2-o.halfWidth+r.left;break;case"bottom-right":i.upperBoundOfTooltip=r.bottom+o.basicMargin,i.leftBoundOfTooltip=r.right-o.width;break;case"left":i.upperBoundOfTooltip=r.top-o.basicMargin,i.leftBoundOfTooltip=r.left-o.widthWithMargin;break;default:i.upperBoundOfTooltip=r.top-o.height,i.leftBoundOfTooltip=r.left-o.basicMargin}return i}catch(t){return n.PublicLogger.error(t),i}}(t,i||e||"top")}},895:function(t,e){"use strict";var i=this&&this.__spreadArray||function(t,e,i){if(i||2===arguments.length)for(var n,r=0,o=e.length;r<o;r++)!n&&r in e||(n||(n=Array.prototype.slice.call(e,0,r)),n[r]=e[r]);return t.concat(n||Array.prototype.slice.call(e))};Object.defineProperty(e,"__esModule",{value:!0}),e.PublicLogger=void 0;var n=function(){function t(){}return t.logEvent=function(t,e){t.apply(void 0,i(["Live_Preview_SDK:"],e,!1))},t.error=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.logEvent(console.error,t)},t.warn=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.logEvent(console.warn,t)},t.debug=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.logEvent(console.debug,t)},t}();e.PublicLogger=n},614:(t,e,i)=>{"use strict";var n;i.r(e),i.d(e,{NIL:()=>T,parse:()=>g,stringify:()=>u,v1:()=>f,v3:()=>B,v4:()=>E,v5:()=>S,validate:()=>l,version:()=>U});var r=new Uint8Array(16);function o(){if(!n&&!(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(r)}const a=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,l=function(t){return"string"==typeof t&&a.test(t)};for(var s=[],c=0;c<256;++c)s.push((c+256).toString(16).substr(1));const u=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=(s[t[e+0]]+s[t[e+1]]+s[t[e+2]]+s[t[e+3]]+"-"+s[t[e+4]]+s[t[e+5]]+"-"+s[t[e+6]]+s[t[e+7]]+"-"+s[t[e+8]]+s[t[e+9]]+"-"+s[t[e+10]]+s[t[e+11]]+s[t[e+12]]+s[t[e+13]]+s[t[e+14]]+s[t[e+15]]).toLowerCase();if(!l(i))throw TypeError("Stringified UUID is invalid");return i};var d,p,v=0,h=0;const f=function(t,e,i){var n=e&&i||0,r=e||new Array(16),a=(t=t||{}).node||d,l=void 0!==t.clockseq?t.clockseq:p;if(null==a||null==l){var s=t.random||(t.rng||o)();null==a&&(a=d=[1|s[0],s[1],s[2],s[3],s[4],s[5]]),null==l&&(l=p=16383&(s[6]<<8|s[7]))}var c=void 0!==t.msecs?t.msecs:Date.now(),f=void 0!==t.nsecs?t.nsecs:h+1,g=c-v+(f-h)/1e4;if(g<0&&void 0===t.clockseq&&(l=l+1&16383),(g<0||c>v)&&void 0===t.nsecs&&(f=0),f>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=c,h=f,p=l;var m=(1e4*(268435455&(c+=122192928e5))+f)%4294967296;r[n++]=m>>>24&255,r[n++]=m>>>16&255,r[n++]=m>>>8&255,r[n++]=255&m;var y=c/4294967296*1e4&268435455;r[n++]=y>>>8&255,r[n++]=255&y,r[n++]=y>>>24&15|16,r[n++]=y>>>16&255,r[n++]=l>>>8|128,r[n++]=255&l;for(var w=0;w<6;++w)r[n+w]=a[w];return e||u(r)},g=function(t){if(!l(t))throw TypeError("Invalid UUID");var e,i=new Uint8Array(16);return i[0]=(e=parseInt(t.slice(0,8),16))>>>24,i[1]=e>>>16&255,i[2]=e>>>8&255,i[3]=255&e,i[4]=(e=parseInt(t.slice(9,13),16))>>>8,i[5]=255&e,i[6]=(e=parseInt(t.slice(14,18),16))>>>8,i[7]=255&e,i[8]=(e=parseInt(t.slice(19,23),16))>>>8,i[9]=255&e,i[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,i[11]=e/4294967296&255,i[12]=e>>>24&255,i[13]=e>>>16&255,i[14]=e>>>8&255,i[15]=255&e,i};function m(t,e,i){function n(t,n,r,o){if("string"==typeof t&&(t=function(t){t=unescape(encodeURIComponent(t));for(var e=[],i=0;i<t.length;++i)e.push(t.charCodeAt(i));return e}(t)),"string"==typeof n&&(n=g(n)),16!==n.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var a=new Uint8Array(16+t.length);if(a.set(n),a.set(t,n.length),(a=i(a))[6]=15&a[6]|e,a[8]=63&a[8]|128,r){o=o||0;for(var l=0;l<16;++l)r[o+l]=a[l];return r}return u(a)}try{n.name=t}catch(t){}return n.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",n.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",n}function y(t){return 14+(t+64>>>9<<4)+1}function w(t,e){var i=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(i>>16)<<16|65535&i}function b(t,e,i,n,r,o){return w((a=w(w(e,t),w(n,o)))<<(l=r)|a>>>32-l,i);var a,l}function C(t,e,i,n,r,o,a){return b(e&i|~e&n,t,e,r,o,a)}function P(t,e,i,n,r,o,a){return b(e&n|i&~n,t,e,r,o,a)}function k(t,e,i,n,r,o,a){return b(e^i^n,t,e,r,o,a)}function L(t,e,i,n,r,o,a){return b(i^(e|~n),t,e,r,o,a)}const B=m("v3",48,(function(t){if("string"==typeof t){var e=unescape(encodeURIComponent(t));t=new Uint8Array(e.length);for(var i=0;i<e.length;++i)t[i]=e.charCodeAt(i)}return function(t){for(var e=[],i=32*t.length,n="0123456789abcdef",r=0;r<i;r+=8){var o=t[r>>5]>>>r%32&255,a=parseInt(n.charAt(o>>>4&15)+n.charAt(15&o),16);e.push(a)}return e}(function(t,e){t[e>>5]|=128<<e%32,t[y(e)-1]=e;for(var i=1732584193,n=-271733879,r=-1732584194,o=271733878,a=0;a<t.length;a+=16){var l=i,s=n,c=r,u=o;i=C(i,n,r,o,t[a],7,-680876936),o=C(o,i,n,r,t[a+1],12,-389564586),r=C(r,o,i,n,t[a+2],17,606105819),n=C(n,r,o,i,t[a+3],22,-1044525330),i=C(i,n,r,o,t[a+4],7,-176418897),o=C(o,i,n,r,t[a+5],12,1200080426),r=C(r,o,i,n,t[a+6],17,-1473231341),n=C(n,r,o,i,t[a+7],22,-45705983),i=C(i,n,r,o,t[a+8],7,1770035416),o=C(o,i,n,r,t[a+9],12,-1958414417),r=C(r,o,i,n,t[a+10],17,-42063),n=C(n,r,o,i,t[a+11],22,-1990404162),i=C(i,n,r,o,t[a+12],7,1804603682),o=C(o,i,n,r,t[a+13],12,-40341101),r=C(r,o,i,n,t[a+14],17,-1502002290),i=P(i,n=C(n,r,o,i,t[a+15],22,1236535329),r,o,t[a+1],5,-165796510),o=P(o,i,n,r,t[a+6],9,-1069501632),r=P(r,o,i,n,t[a+11],14,643717713),n=P(n,r,o,i,t[a],20,-373897302),i=P(i,n,r,o,t[a+5],5,-701558691),o=P(o,i,n,r,t[a+10],9,38016083),r=P(r,o,i,n,t[a+15],14,-660478335),n=P(n,r,o,i,t[a+4],20,-405537848),i=P(i,n,r,o,t[a+9],5,568446438),o=P(o,i,n,r,t[a+14],9,-1019803690),r=P(r,o,i,n,t[a+3],14,-187363961),n=P(n,r,o,i,t[a+8],20,1163531501),i=P(i,n,r,o,t[a+13],5,-1444681467),o=P(o,i,n,r,t[a+2],9,-51403784),r=P(r,o,i,n,t[a+7],14,1735328473),i=k(i,n=P(n,r,o,i,t[a+12],20,-1926607734),r,o,t[a+5],4,-378558),o=k(o,i,n,r,t[a+8],11,-2022574463),r=k(r,o,i,n,t[a+11],16,1839030562),n=k(n,r,o,i,t[a+14],23,-35309556),i=k(i,n,r,o,t[a+1],4,-1530992060),o=k(o,i,n,r,t[a+4],11,1272893353),r=k(r,o,i,n,t[a+7],16,-155497632),n=k(n,r,o,i,t[a+10],23,-1094730640),i=k(i,n,r,o,t[a+13],4,681279174),o=k(o,i,n,r,t[a],11,-358537222),r=k(r,o,i,n,t[a+3],16,-722521979),n=k(n,r,o,i,t[a+6],23,76029189),i=k(i,n,r,o,t[a+9],4,-640364487),o=k(o,i,n,r,t[a+12],11,-421815835),r=k(r,o,i,n,t[a+15],16,530742520),i=L(i,n=k(n,r,o,i,t[a+2],23,-995338651),r,o,t[a],6,-198630844),o=L(o,i,n,r,t[a+7],10,1126891415),r=L(r,o,i,n,t[a+14],15,-1416354905),n=L(n,r,o,i,t[a+5],21,-57434055),i=L(i,n,r,o,t[a+12],6,1700485571),o=L(o,i,n,r,t[a+3],10,-1894986606),r=L(r,o,i,n,t[a+10],15,-1051523),n=L(n,r,o,i,t[a+1],21,-2054922799),i=L(i,n,r,o,t[a+8],6,1873313359),o=L(o,i,n,r,t[a+15],10,-30611744),r=L(r,o,i,n,t[a+6],15,-1560198380),n=L(n,r,o,i,t[a+13],21,1309151649),i=L(i,n,r,o,t[a+4],6,-145523070),o=L(o,i,n,r,t[a+11],10,-1120210379),r=L(r,o,i,n,t[a+2],15,718787259),n=L(n,r,o,i,t[a+9],21,-343485551),i=w(i,l),n=w(n,s),r=w(r,c),o=w(o,u)}return[i,n,r,o]}(function(t){if(0===t.length)return[];for(var e=8*t.length,i=new Uint32Array(y(e)),n=0;n<e;n+=8)i[n>>5]|=(255&t[n/8])<<n%32;return i}(t),8*t.length))})),E=function(t,e,i){var n=(t=t||{}).random||(t.rng||o)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){i=i||0;for(var r=0;r<16;++r)e[i+r]=n[r];return e}return u(n)};function O(t,e,i,n){switch(t){case 0:return e&i^~e&n;case 1:case 3:return e^i^n;case 2:return e&i^e&n^i&n}}function _(t,e){return t<<e|t>>>32-e}const S=m("v5",80,(function(t){var e=[1518500249,1859775393,2400959708,3395469782],i=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){var n=unescape(encodeURIComponent(t));t=[];for(var r=0;r<n.length;++r)t.push(n.charCodeAt(r))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);for(var o=t.length/4+2,a=Math.ceil(o/16),l=new Array(a),s=0;s<a;++s){for(var c=new Uint32Array(16),u=0;u<16;++u)c[u]=t[64*s+4*u]<<24|t[64*s+4*u+1]<<16|t[64*s+4*u+2]<<8|t[64*s+4*u+3];l[s]=c}l[a-1][14]=8*(t.length-1)/Math.pow(2,32),l[a-1][14]=Math.floor(l[a-1][14]),l[a-1][15]=8*(t.length-1)&4294967295;for(var d=0;d<a;++d){for(var p=new Uint32Array(80),v=0;v<16;++v)p[v]=l[d][v];for(var h=16;h<80;++h)p[h]=_(p[h-3]^p[h-8]^p[h-14]^p[h-16],1);for(var f=i[0],g=i[1],m=i[2],y=i[3],w=i[4],b=0;b<80;++b){var C=Math.floor(b/20),P=_(f,5)+O(C,g,m,y)+w+e[C]+p[b]>>>0;w=y,y=m,m=_(g,30)>>>0,g=f,f=P}i[0]=i[0]+f>>>0,i[1]=i[1]+g>>>0,i[2]=i[2]+m>>>0,i[3]=i[3]+y>>>0,i[4]=i[4]+w>>>0}return[i[0]>>24&255,i[0]>>16&255,i[0]>>8&255,255&i[0],i[1]>>24&255,i[1]>>16&255,i[1]>>8&255,255&i[1],i[2]>>24&255,i[2]>>16&255,i[2]>>8&255,255&i[2],i[3]>>24&255,i[3]>>16&255,i[3]>>8&255,255&i[3],i[4]>>24&255,i[4]>>16&255,i[4]>>8&255,255&i[4]]})),T="00000000-0000-0000-0000-000000000000",U=function(t){if(!l(t))throw TypeError("Invalid UUID");return parseInt(t.substr(14,1),16)}},147:t=>{"use strict";t.exports=JSON.parse('{"name":"@contentstack/live-preview-utils","version":"1.4.2","types":"dist/src/index.d.ts","description":"Contentstack provides the Live Preview SDK to establish a communication channel between the various Contentstack SDKs and your website, transmitting live changes to the preview pane.","main":"dist/index.js","files":["dist"],"scripts":{"build":"webpack --config webpack.prod.js","test":"jest","test:coverage":"jest src --coverage --watchAll --coverageDirectory=\\"coverage\\"","dev":"webpack --config webpack.dev.js","prepare":"npm run build && husky install","lint":"eslint src","lint:fix":"eslint --fix","prettier":"prettier src --check","prettier:fix":"prettier src --write","format":"npm run prettier:fix && npm run lint:fix","docs":"typedoc --out docs --entryPointStrategy expand ./src"},"keywords":["live-preview"],"author":"Contentstack","license":"MIT","devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.3.1","@testing-library/jest-dom":"^5.14.1","@types/jest":"^27.0.1","@types/mustache":"^4.2.2","@types/uuid":"^8.3.1","@typescript-eslint/eslint-plugin":"^4.31.1","@typescript-eslint/parser":"^4.31.1","babel-loader":"^8.0.5","css-loader":"^5.2.2","eslint":"^7.32.0","eslint-config-prettier":"^8.6.0","husky":"^8.0.0","jest":"^27.2.0","jest-fetch-mock":"^3.0.3","mini-css-extract-plugin":"^2.3.0","prettier":"^2.8.4","prettier-eslint":"^15.0.1","style-loader":"^2.0.0","ts-jest":"^27.0.5","ts-loader":"^9.4.2","typedoc":"^0.23.25","typescript":"^4.4.3","webpack":"^5.53.0","webpack-cli":"^4.8.0","webpack-dev-server":"^4.7.4","webpack-merge":"^5.8.0"},"repository":{"type":"git","url":"https://github.com/contentstack/live-preview-sdk.git"},"dependencies":{"just-camel-case":"^4.0.2","morphdom":"^2.6.1","mustache":"^4.2.0","uuid":"^8.3.2"},"lint-staged":{"src/**/*.{ts,css,md}":["npm run prettier:fix"]}}')}},e={};function i(n){var r=e[n];if(void 0!==r)return r.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,i),o.exports}return i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i(607)})()));
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://ContentstackLivePreview/webpack/universalModuleDefinition","webpack://ContentstackLivePreview/./node_modules/just-camel-case/index.js","webpack://ContentstackLivePreview/./src/contentstack-live-preview-HOC.ts","webpack://ContentstackLivePreview/./src/index.ts","webpack://ContentstackLivePreview/./src/live-preview.ts","webpack://ContentstackLivePreview/./src/utils/defaults.ts","webpack://ContentstackLivePreview/./src/utils/handleUserConfig.ts","webpack://ContentstackLivePreview/./src/utils/index.ts","webpack://ContentstackLivePreview/./src/utils/public-logger.ts","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/rng.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/regex.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/validate.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/v1.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/parse.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/v35.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/md5.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/v3.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/v4.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/sha1.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/v5.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/nil.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/version.js","webpack://ContentstackLivePreview/webpack/bootstrap","webpack://ContentstackLivePreview/webpack/runtime/define property getters","webpack://ContentstackLivePreview/webpack/runtime/hasOwnProperty shorthand","webpack://ContentstackLivePreview/webpack/runtime/make namespace object","webpack://ContentstackLivePreview/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ContentstackLivePreview\"] = factory();\n\telse\n\t\troot[\"ContentstackLivePreview\"] = factory();\n})(this, () => {\nreturn ","module.exports = camelCase;\n\n// any combination of spaces and punctuation characters\n// thanks to http://stackoverflow.com/a/25575009\nvar wordSeparatorsRegEx = /[\\s\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,\\-.\\/:;<=>?@\\[\\]^_`{|}~]+/;\n\nvar basicCamelRegEx = /^[a-z\\u00E0-\\u00FCA-Z\\u00C0-\\u00DC][\\d|a-z\\u00E0-\\u00FCA-Z\\u00C0-\\u00DC]*$/;\nvar fourOrMoreConsecutiveCapsRegEx = /([A-Z\\u00C0-\\u00DC]{4,})/g;\nvar allCapsRegEx = /^[A-Z\\u00C0-\\u00DC]+$/;\n\nfunction camelCase(str, options) {\n var words = str.split(wordSeparatorsRegEx);\n var len = words.length;\n var mappedWords = new Array(len);\n for (var i = 0; i < len; i++) {\n var word = words[i];\n if (word === '') {\n continue;\n }\n var isCamelCase = basicCamelRegEx.test(word) && !allCapsRegEx.test(word);\n if (isCamelCase) {\n word = word.replace(fourOrMoreConsecutiveCapsRegEx, function(match, p1, offset) {\n return deCap(match, word.length - offset - match.length == 0);\n });\n }\n var firstLetter = word[0];\n firstLetter = i > 0 ? firstLetter.toUpperCase() : firstLetter.toLowerCase();\n mappedWords[i] = firstLetter + (!isCamelCase ? word.slice(1).toLowerCase() : word.slice(1));\n }\n return mappedWords.join('');\n}\n\nfunction deCap(match, endOfWord) {\n var arr = match.split('');\n var first = arr.shift().toUpperCase();\n var last = endOfWord ? arr.pop().toLowerCase() : arr.pop();\n return first + arr.join('').toLowerCase() + last;\n}\n","import { v4 as uuidv4 } from \"uuid\";\nimport camelCase from \"just-camel-case\";\nimport packageJson from \"../package.json\";\n\nimport {\n IInitData,\n IStackSdk,\n OnEntryChangeCallback,\n OnEntryChangeCallbackUID,\n OnEntryChangeConfig,\n} from \"./utils/types\";\nimport LivePreview from \"./live-preview\";\nimport { userInitData } from \"./utils/defaults\";\nimport { PublicLogger } from \"./utils/public-logger\";\n\nexport class ContentstackLivePreview {\n static livePreview: LivePreview | null = null;\n static userConfig: Partial<IInitData> | null = null;\n static subscribers: { [uid: string]: OnEntryChangeCallback } = {};\n static configs: {\n params: ConstructorParameters<typeof URLSearchParams>[0];\n } = {\n params: {},\n };\n\n static init(\n userConfig: Partial<IInitData> = userInitData\n ): Promise<LivePreview> | undefined {\n if (typeof window !== \"undefined\") {\n if (ContentstackLivePreview.livePreview) {\n PublicLogger.warn(\n \"You have already initialized the Live Preview SDK. So, any subsequent initialization returns the existing SDK instance.\"\n );\n return Promise.resolve(ContentstackLivePreview.livePreview);\n } else {\n ContentstackLivePreview.livePreview = new LivePreview(\n userConfig\n );\n ContentstackLivePreview.livePreview.setOnChangeCallback(\n ContentstackLivePreview.publish\n );\n\n ContentstackLivePreview.livePreview.setConfigFromParams(\n this.configs.params\n );\n this.configs.params = {};\n\n return Promise.resolve(ContentstackLivePreview.livePreview);\n }\n } else {\n ContentstackLivePreview.userConfig = userConfig;\n }\n }\n\n /**\n * It is the live preview hash.\n * This hash could be used when data is fetched manually.\n */\n static get hash(): string {\n if (!this.livePreview) {\n const urlParams = new URLSearchParams(this.configs.params);\n return urlParams.get(\"live_preview\") ?? \"\";\n }\n\n return this.livePreview.hash;\n }\n\n /**\n * Sets the live preview hash from the query param which is\n * accessible via `hash` property.\n * @param params query param in an object form\n */\n static setConfigFromParams(\n params: ConstructorParameters<typeof URLSearchParams>[0] = {}\n ): void {\n if (!this.livePreview) {\n this.configs.params = params;\n return;\n }\n\n this.livePreview.setConfigFromParams(params);\n }\n\n private static publish(): void {\n Object.values<OnEntryChangeCallback>(\n ContentstackLivePreview.subscribers\n ).forEach((func) => {\n func();\n });\n }\n\n private static subscribe(\n callback: OnEntryChangeCallback\n ): OnEntryChangeCallbackUID {\n const callbackUid = uuidv4();\n ContentstackLivePreview.subscribers[callbackUid] = callback;\n return callbackUid;\n }\n /**\n * @type {function}\n * @param onChangeCallback A function param to fetch the data from contentstack database\n * @param config An optional object param, pass {skipInitialRender:Boolean} to skip init call to onChangeCallback\n * @returns Subscribed Callback UID\n */\n static onEntryChange(\n onChangeCallback: OnEntryChangeCallback,\n config?: OnEntryChangeConfig\n ): OnEntryChangeCallbackUID {\n const { skipInitialRender = false } = config || {};\n if (ContentstackLivePreview.userConfig) {\n ContentstackLivePreview.livePreview = new LivePreview(\n ContentstackLivePreview.userConfig\n );\n ContentstackLivePreview.livePreview.setOnChangeCallback(\n ContentstackLivePreview.publish\n );\n\n ContentstackLivePreview.livePreview.setConfigFromParams(\n this.configs.params\n );\n\n this.configs.params = {};\n\n ContentstackLivePreview.userConfig = null;\n }\n const callbackUid = ContentstackLivePreview.subscribe(onChangeCallback);\n if (!skipInitialRender) {\n onChangeCallback();\n }\n return callbackUid;\n }\n\n /**\n * @type {function}\n * @param onChangeCallback A function param to fetch the data from contentstack database on content change.\n * @returns Subscribed Callback UID\n */\n static onLiveEdit(\n onChangeCallback: OnEntryChangeCallback\n ): OnEntryChangeCallbackUID {\n return ContentstackLivePreview.onEntryChange(onChangeCallback, {\n skipInitialRender: true,\n });\n }\n\n static unsubscribeOnEntryChange(\n callback: string | OnEntryChangeCallback\n ): void {\n if (typeof callback === \"string\") {\n if (!ContentstackLivePreview.subscribers[callback]) {\n PublicLogger.warn(\"No subscriber found with the given id.\");\n }\n delete ContentstackLivePreview.subscribers[callback];\n } else if (typeof callback === \"function\") {\n const isCallbackDeleted = Object.entries<() => void>(\n ContentstackLivePreview.subscribers\n ).some(([uid, func]) => {\n if (func === callback) {\n delete ContentstackLivePreview.subscribers[uid];\n return true;\n }\n return false;\n });\n\n if (!isCallbackDeleted) {\n PublicLogger.warn(\n \"No subscriber found with the given callback.\"\n );\n }\n }\n }\n\n static async getGatsbyDataFormat(\n sdkQuery: IStackSdk,\n prefix: string\n ): Promise<any> {\n if (typeof sdkQuery.find === \"function\") {\n return sdkQuery\n .toJSON()\n .find()\n .then((result: { [key: string]: any }) => {\n return result.map((res: { [key: string]: any }) => {\n return res.map((entry: { [key: string]: any }) => {\n const dataTitle = camelCase(\n `${prefix}_${sdkQuery.content_type_uid}`\n );\n return { [dataTitle]: entry };\n });\n });\n })\n .catch((err: any) => {\n console.error(err);\n });\n } else if (typeof sdkQuery.fetch === \"function\") {\n return sdkQuery\n .toJSON()\n .fetch()\n .then((ent: { [key: string]: any }) => {\n const dataTitle = camelCase(\n `${prefix}_${sdkQuery.content_type_uid}`\n );\n const entry = { [dataTitle]: ent };\n\n return entry;\n })\n .catch((err: unknown) => {\n console.error(err);\n });\n }\n }\n\n static getSdkVersion(): string {\n return packageJson.version;\n }\n}\n\nexport default ContentstackLivePreview;\n\nmodule.exports = ContentstackLivePreview;\n","import ContentstackLivePreviewHOC from \"./contentstack-live-preview-HOC\";\nimport \"./styles.css\";\n\nexport const ContentstackLivePreview = ContentstackLivePreviewHOC;\n\nexport default ContentstackLivePreview;\nmodule.exports = ContentstackLivePreview;\n","import {\n createSingularEditButton,\n createMultipleEditButton,\n addLivePreviewQueryTags,\n shouldRenderEditButton,\n getEditButtonPosition,\n} from \"./utils\";\nimport { PublicLogger } from \"./utils/public-logger\";\nimport {\n IConfig,\n IEditButtonPosition,\n IEditEntrySearchParams,\n IInitData,\n ILivePreviewReceivePostMessages,\n} from \"./utils/types\";\nimport { handleInitData } from \"./utils/handleUserConfig\";\nimport { userInitData } from \"./utils/defaults\";\nimport packageJson from \"../package.json\";\n\nexport default class LivePreview {\n /**\n * @hideconstructor\n */\n\n private config: IConfig = {\n ssr: true,\n enable: true,\n runScriptsOnUpdate: false,\n cleanCslpOnProduction: true,\n hash: \"\",\n\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n contentTypeUid: \"\",\n entryUid: \"\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n url: \"https://app.contentstack.com:443\",\n },\n stackSdk: {\n live_preview: {},\n headers: {\n api_key: \"\",\n },\n environment: \"\",\n },\n\n onChange: () => {\n // this is intentional\n },\n };\n\n private tooltip: HTMLButtonElement | null = null; // this tooltip is responsible to redirect user to Contentstack edit page\n private currentElementBesideTooltip: HTMLElement | null = null; // this element helps to move tooltip with the scroll\n private isHoveringOnTooltip = false;\n private hideInterval: ReturnType<typeof setInterval> | null = null;\n\n private tooltipChild: {\n singular: HTMLDivElement | null;\n multiple: HTMLDivElement | null;\n } = {\n singular: null,\n multiple: null,\n };\n private tooltipCurrentChild: \"multiple\" | \"singular\" = \"singular\";\n\n constructor(initData: Partial<IInitData> = userInitData) {\n handleInitData(initData, this.config);\n\n this.addEditStyleOnHover = this.addEditStyleOnHover.bind(this);\n this.removeEditButtonStyle = this.removeEditButtonStyle.bind(this);\n this.generateRedirectUrl = this.generateRedirectUrl.bind(this);\n this.scrollHandler = this.scrollHandler.bind(this);\n this.linkClickHandler = this.linkClickHandler.bind(this);\n this.handleUserChange = this.handleUserChange.bind(this);\n this.setOnChangeCallback = this.setOnChangeCallback.bind(this);\n this.resolveIncomingMessage = this.resolveIncomingMessage.bind(this);\n this.createCslpTooltip = this.createCslpTooltip.bind(this);\n this.requestDataSync = this.requestDataSync.bind(this);\n this.updateTooltipPosition = this.updateTooltipPosition.bind(this);\n this.removeDataCslp = this.removeDataCslp.bind(this);\n this.toggleHoveringOnEditButton =\n this.toggleHoveringOnEditButton.bind(this);\n this.hideTooltip = this.hideTooltip.bind(this);\n\n // @ts-ignore\n if (initData.debug) {\n PublicLogger.debug(\n \"Contentstack Live Preview Debugging mode: config --\",\n this.config\n );\n }\n\n if (this.config.enable) {\n if (\n typeof document !== undefined &&\n document.readyState === \"complete\"\n ) {\n this.requestDataSync();\n } else {\n window.addEventListener(\"load\", this.requestDataSync);\n }\n window.addEventListener(\"message\", this.resolveIncomingMessage);\n window.addEventListener(\"scroll\", this.updateTooltipPosition);\n // render the hover outline only when edit button enable\n if (this.config.editButton.enable) {\n window.addEventListener(\"mouseover\", this.addEditStyleOnHover);\n }\n\n if (this.config.ssr) {\n window.addEventListener(\"load\", (e) => {\n const allATags = document.querySelectorAll(\"a\");\n allATags.forEach((tag) => {\n const docOrigin: string = document.location.origin;\n if (tag.href && tag.href.includes(docOrigin)) {\n const newUrl = addLivePreviewQueryTags(tag.href);\n tag.href = newUrl;\n }\n });\n });\n\n // Setting the query params to all the click events related to current domain\n window.addEventListener(\"click\", (event: any) => {\n const target: any = event.target;\n const targetHref: string | any = target.href;\n const docOrigin: string = document.location.origin;\n if (\n targetHref &&\n targetHref.includes(docOrigin) &&\n !targetHref.includes(\"live_preview\")\n ) {\n const newUrl = addLivePreviewQueryTags(target.href);\n event.target.href = newUrl || target.href;\n }\n });\n }\n } else if (this.config.cleanCslpOnProduction) {\n this.removeDataCslp();\n }\n }\n\n private addEditStyleOnHover(e: MouseEvent) {\n let trigger = true;\n const eventTargets = e.composedPath();\n\n for (const eventTarget of eventTargets) {\n const element = eventTarget as HTMLElement;\n if (element.nodeName === \"BODY\") break;\n if (typeof element?.getAttribute !== \"function\") continue;\n\n const cslpTag = element.getAttribute(\"data-cslp\");\n\n if (trigger && cslpTag) {\n if (this.hideInterval) {\n clearInterval(this.hideInterval);\n this.hideInterval = null;\n }\n if (this.currentElementBesideTooltip) {\n this.currentElementBesideTooltip.classList.remove(\n \"cslp-edit-mode\"\n );\n this.currentElementBesideTooltip.removeEventListener(\n \"mouseleave\",\n this.removeEditButtonStyle\n );\n }\n element.classList.add(\"cslp-edit-mode\");\n this.currentElementBesideTooltip = element;\n this.currentElementBesideTooltip.addEventListener(\n \"mouseleave\",\n this.removeEditButtonStyle\n );\n\n if (this.updateTooltipPosition()) {\n this.tooltip?.setAttribute(\"current-data-cslp\", cslpTag);\n this.tooltip?.setAttribute(\n \"current-href\",\n element.getAttribute(\"href\") ?? \"\"\n );\n }\n\n trigger = false;\n } else if (!trigger) {\n element.classList.remove(\"cslp-edit-mode\");\n }\n }\n }\n\n private removeEditButtonStyle(e: MouseEvent) {\n if (!this.currentElementBesideTooltip || !this.tooltip) return false;\n let trigger = true;\n const eventTargets = e.composedPath();\n\n for (const eventTarget of eventTargets) {\n const element = eventTarget as HTMLElement;\n if (element.nodeName === \"BODY\") break;\n if (typeof element?.getAttribute !== \"function\") continue;\n\n const cslpTag = element.getAttribute(\"data-cslp\");\n\n if (trigger && cslpTag) {\n this.hideInterval = setInterval(this.hideTooltip, 500);\n trigger = false;\n } else if (!trigger) {\n element.classList.remove(\"cslp-edit-mode\");\n }\n }\n }\n\n private hideTooltip() {\n if (\n !this.currentElementBesideTooltip ||\n !this.tooltip ||\n this.isHoveringOnTooltip\n )\n return false;\n this.currentElementBesideTooltip.classList.remove(\"cslp-edit-mode\");\n this.currentElementBesideTooltip.removeEventListener(\n \"mouseleave\",\n this.removeEditButtonStyle\n );\n this.currentElementBesideTooltip = null;\n this.tooltip.style.top = \"-100%\";\n }\n\n private generateRedirectUrl(\n content_type_uid: string,\n locale = \"en-us\",\n entry_uid: string,\n preview_field: string\n ): string {\n if (!this.config.stackDetails.apiKey) {\n throw `To use edit tags, you must provide the stack API key. Specify the API key while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n apiKey: 'your-api-key'\n },\n ...\n })`;\n }\n\n if (!this.config.stackDetails.environment) {\n throw `To use edit tags, you must provide the preview environment. Specify the preview environment while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n environment: 'Your-environment'\n },\n ...\n })`;\n }\n\n const protocol = String(this.config.clientUrlParams.protocol);\n const host = String(this.config.clientUrlParams.host);\n const port = String(this.config.clientUrlParams.port);\n const environment = String(this.config.stackDetails.environment);\n\n const urlHash = `!/stack/${\n this.config.stackDetails.apiKey\n }/content-type/${content_type_uid}/${\n locale ?? \"en-us\"\n }/entry/${entry_uid}/edit`;\n\n const url = new URL(`${protocol}://${host}`);\n url.port = port;\n url.hash = urlHash;\n url.searchParams.append(\"preview-field\", preview_field);\n url.searchParams.append(\"preview-locale\", locale ?? \"en-us\");\n url.searchParams.append(\"preview-environment\", environment);\n\n return `${url.origin}/${url.hash}${url.search}`;\n }\n\n private scrollHandler() {\n if (!this.tooltip) return;\n\n const cslpTag = this.tooltip.getAttribute(\"current-data-cslp\");\n\n if (cslpTag) {\n const [content_type_uid, entry_uid, locale, ...field] =\n cslpTag.split(\".\");\n\n // check if opened inside an iframe\n if (window.location !== window.parent.location) {\n window.parent.postMessage(\n {\n from: \"live-preview\",\n type: \"scroll\",\n data: {\n field: field.join(\".\"),\n content_type_uid,\n entry_uid,\n locale,\n },\n },\n \"*\"\n );\n } else {\n try {\n const redirectUrl = this.generateRedirectUrl(\n content_type_uid,\n locale,\n entry_uid,\n field.join(\".\")\n );\n\n window.open(redirectUrl, \"_blank\");\n } catch (error) {\n PublicLogger.error(error);\n }\n }\n }\n }\n\n private linkClickHandler() {\n if (!this.tooltip) return;\n const hrefAttribute = this.tooltip.getAttribute(\"current-href\");\n\n if (hrefAttribute) {\n window.location.assign(hrefAttribute);\n }\n }\n\n private handleUserChange(editEntrySearchParams: IEditEntrySearchParams) {\n // here we provide contentTypeUid and EntryUid to the StackDelivery SDK.\n this.config.stackSdk.live_preview = {\n ...this.config.stackSdk.live_preview,\n ...editEntrySearchParams,\n live_preview: editEntrySearchParams.hash,\n };\n this.config.onChange();\n }\n\n setOnChangeCallback(onChangeCallback: () => void): void {\n this.config.onChange = onChangeCallback;\n }\n\n /**\n * It is the live preview hash.\n * This hash could be used when data is fetched manually.\n */\n get hash(): string {\n return this.config.hash;\n }\n\n /**\n * Sets the live preview hash from the query param which is\n * accessible via `hash` property.\n * @param params query param in an object form\n */\n setConfigFromParams(\n params: ConstructorParameters<typeof URLSearchParams>[0] = {}\n ): void {\n if (typeof params !== \"object\")\n throw new TypeError(\n \"Live preview SDK: query param must be an object\"\n );\n\n const urlParams = new URLSearchParams(params);\n const live_preview = urlParams.get(\"live_preview\");\n\n if (live_preview) {\n this.config.hash = live_preview;\n }\n }\n\n private resolveIncomingMessage(\n e: MessageEvent<ILivePreviewReceivePostMessages>\n ) {\n if (typeof e.data !== \"object\") return;\n\n if (e.data.from !== \"live-preview\") return;\n\n switch (e.data.type) {\n case \"client-data-send\": {\n const { contentTypeUid, entryUid } = this.config.stackDetails;\n const { hash } = e.data.data;\n\n this.setConfigFromParams({ live_preview: hash });\n\n if (!this.config.ssr) {\n this.handleUserChange({\n content_type_uid: contentTypeUid,\n entry_uid: entryUid,\n hash: hash,\n });\n }\n break;\n }\n case \"init-ack\": {\n const { contentTypeUid, entryUid } = e.data.data;\n\n this.config.stackDetails.contentTypeUid = contentTypeUid;\n this.config.stackDetails.entryUid = entryUid;\n break;\n }\n case \"history\": {\n switch (e.data.data.type) {\n case \"forward\": {\n window.history.forward();\n break;\n }\n case \"backward\": {\n window.history.back();\n break;\n }\n case \"reload\": {\n window.history.go();\n }\n }\n break;\n }\n default: {\n // ensure that the switch statement is exhaustive\n const exhaustiveCheck: never = e.data;\n return exhaustiveCheck; // TODO: add debug message while we are in development mode.\n }\n }\n }\n\n private createCslpTooltip = () => {\n if (\n !document.getElementById(\"cslp-tooltip\") &&\n this.config.editButton.enable\n ) {\n const tooltip = document.createElement(\"button\");\n const tooltipInnerContainer = document.createElement(\"div\");\n tooltipInnerContainer.classList.add(\"cslp-tooltip-inner-container\");\n tooltip.classList.add(\"cslp-tooltip\");\n tooltip.classList.add(\"cslp-tooltip\");\n tooltip.setAttribute(\"data-test-id\", \"cs-cslp-tooltip\");\n tooltip.id = \"cslp-tooltip\";\n tooltipInnerContainer.id = \"cslp-tooltip-inner-container\";\n tooltip.addEventListener(\"mouseover\", () => {\n this.toggleHoveringOnEditButton(true);\n });\n tooltip.addEventListener(\"mouseleave\", (e: MouseEvent) => {\n this.toggleHoveringOnEditButton(false);\n this.removeEditButtonStyle(e);\n });\n window.document.body.insertAdjacentElement(\"beforeend\", tooltip);\n this.tooltipChild.singular = createSingularEditButton(\n this.scrollHandler\n );\n this.tooltipChild.multiple = createMultipleEditButton(\n this.scrollHandler,\n this.linkClickHandler\n );\n\n tooltipInnerContainer.innerHTML = \"\";\n tooltipInnerContainer.appendChild(this.tooltipChild.singular);\n tooltip.appendChild(tooltipInnerContainer);\n this.tooltip = tooltip;\n }\n this.updateTooltipPosition();\n };\n\n private toggleHoveringOnEditButton = (isHoveringOnTooltip: boolean) => {\n this.isHoveringOnTooltip = isHoveringOnTooltip;\n };\n\n // Request parent for data sync when document loads\n private requestDataSync() {\n // add edit tooltip\n this.createCslpTooltip();\n\n window.parent.postMessage(\n {\n from: \"live-preview\",\n type: \"init\",\n data: {\n config: {\n shouldReload: this.config.ssr,\n href: window.location.href,\n sdkVersion: packageJson.version,\n },\n },\n },\n \"*\"\n );\n\n // set timeout for client side (use to show warning: You are not editing this page)\n if (!this.config.ssr) {\n setInterval(() => {\n window.parent.postMessage(\n {\n from: \"live-preview\",\n type: \"check-entry-page\",\n data: {\n href: window.location.href,\n },\n },\n \"*\"\n );\n }, 1500);\n }\n }\n\n private updateTooltipPosition() {\n if (!this.currentElementBesideTooltip || !this.tooltip) return false;\n\n const currentRectOfElement =\n this.currentElementBesideTooltip.getBoundingClientRect();\n const currentRectOfParentOfElement =\n this.tooltip.parentElement?.getBoundingClientRect();\n\n if (currentRectOfElement && currentRectOfParentOfElement) {\n let {\n upperBoundOfTooltip,\n // eslint-disable-next-line prefer-const\n leftBoundOfTooltip,\n }: IEditButtonPosition = getEditButtonPosition(\n this.currentElementBesideTooltip,\n this.config.editButton.position\n );\n\n // if scrolled and element is still visible, make sure tooltip is also visible\n if (upperBoundOfTooltip < 0) {\n if (currentRectOfElement.top < 0)\n upperBoundOfTooltip = currentRectOfElement.top;\n else upperBoundOfTooltip = 0;\n }\n\n this.tooltip.style.top = upperBoundOfTooltip + \"px\";\n this.tooltip.style.zIndex =\n this.currentElementBesideTooltip.style.zIndex || \"200\";\n this.tooltip.style.left = leftBoundOfTooltip + \"px\";\n\n if (this.tooltipChild.singular && this.tooltipChild.multiple) {\n if (this.currentElementBesideTooltip.hasAttribute(\"href\")) {\n if (this.tooltipCurrentChild !== \"multiple\") {\n const tooltipInnerContainer =\n this.tooltip.querySelector(\n \"div.cslp-tooltip-inner-container\"\n );\n if (tooltipInnerContainer) {\n tooltipInnerContainer.innerHTML = \"\";\n tooltipInnerContainer.appendChild(\n this.tooltipChild.multiple\n );\n this.tooltipCurrentChild = \"multiple\";\n }\n }\n } else if (this.tooltipCurrentChild !== \"singular\") {\n const tooltipInnerContainer = this.tooltip.querySelector(\n \"div.cslp-tooltip-inner-container\"\n );\n if (tooltipInnerContainer) {\n tooltipInnerContainer.innerHTML = \"\";\n tooltipInnerContainer.appendChild(\n this.tooltipChild.singular\n );\n this.tooltipCurrentChild = \"singular\";\n }\n }\n }\n return true;\n }\n\n return false;\n }\n\n // remove attributes when livePreview is false\n private removeDataCslp() {\n const nodes = document.querySelectorAll(\"[data-cslp]\");\n\n nodes.forEach((node) => {\n node.removeAttribute(\"data-cslp\");\n node.removeAttribute(\"data-cslp-button-position\");\n });\n }\n}\n","import { IInitData } from \"./types\";\n\nexport const userInitData: IInitData = {\n ssr: true,\n enable: true,\n cleanCslpOnProduction: true,\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n },\n stackSdk: {\n live_preview: {},\n headers: {\n api_key: \"\",\n },\n environment: \"\",\n },\n runScriptsOnUpdate: false,\n};\n","import { shouldRenderEditButton } from \".\";\nimport { PublicLogger } from \"./public-logger\";\nimport { IClientUrlParams, IConfig, IInitData, IStackSdk } from \"./types\";\n\nconst handleClientUrlParams = (\n existingConfig: IConfig,\n userConfig: Partial<IClientUrlParams>\n): void => {\n existingConfig.clientUrlParams.host =\n userConfig.host ?? existingConfig.clientUrlParams.host;\n existingConfig.clientUrlParams.protocol =\n userConfig.protocol ?? existingConfig.clientUrlParams.protocol;\n existingConfig.clientUrlParams.port =\n userConfig.port ?? existingConfig.clientUrlParams.port;\n\n if (userConfig.protocol !== undefined && userConfig.port === undefined) {\n switch (userConfig.protocol) {\n case \"http\": {\n existingConfig.clientUrlParams.port = 80;\n break;\n }\n case \"https\": {\n existingConfig.clientUrlParams.port = 443;\n break;\n }\n }\n }\n\n // build url\n let host = existingConfig.clientUrlParams.host;\n\n if (host.endsWith(\"/\")) {\n host = host.slice(0, -1);\n existingConfig.clientUrlParams.host = host;\n }\n\n existingConfig.clientUrlParams.url = `${existingConfig.clientUrlParams.protocol}://${existingConfig.clientUrlParams.host}:${existingConfig.clientUrlParams.port}`;\n};\n\nfunction isInitDataStackSdk(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IStackSdk {\n return Object.prototype.hasOwnProperty.call(initObj, \"cachePolicy\");\n}\n\nfunction isInitDataCommon(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IInitData {\n return !isInitDataStackSdk(initObj);\n}\n\nexport const handleInitData = (\n initData: Partial<IInitData> | Partial<IStackSdk>,\n config: IConfig\n): void => {\n // only have stack sdk\n if (isInitDataStackSdk(initData)) {\n PublicLogger.warn(\n \"Deprecated: Do not pass the Stack object directly to the Live Preview SDK. Pass it using the config.stackSDK config object.\"\n );\n\n const livePreviewObject = initData?.live_preview || {};\n\n // only stack indicates that user is running it on client side application\n config.ssr = false;\n\n config.runScriptsOnUpdate =\n livePreviewObject.runScriptsOnUpdate ?? config.runScriptsOnUpdate;\n\n config.enable = livePreviewObject.enable ?? config.enable;\n\n config.cleanCslpOnProduction =\n livePreviewObject.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n livePreviewObject.editButton ?? config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(livePreviewObject.editButton?.exclude) &&\n livePreviewObject.editButton?.exclude\n ? livePreviewObject.editButton?.exclude\n : config.editButton.exclude ?? [],\n position:\n livePreviewObject.editButton?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n livePreviewObject.editButton?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackSdk = initData;\n\n // stack details\n if (\n Object.prototype.hasOwnProperty.call(initData.headers, \"api_key\") &&\n initData.headers.api_key\n )\n config.stackDetails.apiKey = initData.headers.api_key;\n\n if (Object.prototype.hasOwnProperty.call(initData, \"environment\")) {\n config.stackDetails.environment = initData.environment;\n }\n\n // client URL params\n handleClientUrlParams(\n config,\n livePreviewObject.clientUrlParams ?? config.clientUrlParams\n );\n } else if (isInitDataCommon(initData)) {\n const stackSdk: Partial<IStackSdk> =\n initData.stackSdk || config.stackSdk;\n\n config.enable =\n initData.enable ?? stackSdk.live_preview?.enable ?? config.enable;\n\n config.ssr =\n initData.ssr ??\n stackSdk.live_preview?.ssr ??\n (typeof initData.stackSdk === \"object\" ? false : true) ??\n true;\n\n config.runScriptsOnUpdate =\n initData.runScriptsOnUpdate ??\n stackSdk.live_preview?.runScriptsOnUpdate ??\n config.runScriptsOnUpdate;\n\n config.stackSdk = stackSdk as IStackSdk;\n\n config.cleanCslpOnProduction =\n initData.cleanCslpOnProduction ??\n stackSdk.live_preview?.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n initData.editButton ??\n stackSdk.live_preview?.editButton ??\n config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(initData.editButton?.exclude) &&\n initData.editButton?.exclude\n ? initData.editButton?.exclude\n : Array.isArray(stackSdk.live_preview?.exclude) &&\n stackSdk.live_preview?.exclude\n ? stackSdk.live_preview?.exclude\n : config.editButton.exclude ?? [],\n position:\n initData.editButton?.position ??\n stackSdk.live_preview?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n initData.editButton?.includeByQueryParameter ??\n stackSdk.live_preview?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackDetails.apiKey =\n initData.stackDetails?.apiKey ??\n stackSdk.headers?.api_key ??\n config.stackDetails.apiKey;\n\n config.stackDetails.environment =\n initData.stackDetails?.environment ??\n stackSdk.environment ??\n config.stackDetails.environment;\n\n // client URL params\n handleClientUrlParams(\n config,\n initData.clientUrlParams ??\n stackSdk.live_preview?.clientUrlParams ??\n config.clientUrlParams\n );\n }\n};\n\nexport const handleUserConfig = {\n clientUrlParams: handleClientUrlParams,\n};\n","import { PublicLogger } from \"./public-logger\";\nimport { IConfigEditButton, IEditButtonPosition } from \"./types\";\n\nexport function hasWindow(): boolean {\n return typeof window !== \"undefined\";\n}\n\nexport const tooltipSingularInnerHtml = `<div class=\"singular edit-button\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>Edit\n </div>`;\n\nexport const tooltipMultipleInnerHtml = `<div class=\"edit-button\" title=\"edit\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>\n </div>\n <div title=\"click element\" class=\"external-link-button\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z\" fill=\"#718096\" />\n <path d=\"M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z\" fill=\"#718096\" />\n </svg>\n </div>`;\n\nexport const createSingularEditButton = (\n editCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const singularEditButton = document.createElement(\"div\");\n singularEditButton.classList.add(\"cslp-tooltip-child\", \"singular\");\n singularEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-singular-edit-button\"\n );\n singularEditButton.innerHTML = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>Edit`;\n\n singularEditButton.addEventListener(\"click\", editCallback);\n\n return singularEditButton;\n};\n\nexport const createMultipleEditButton = (\n editCallback: (e: MouseEvent) => void,\n linkCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const multipleEditButton = document.createElement(\"div\");\n multipleEditButton.classList.add(\"cslp-tooltip-child\");\n multipleEditButton.setAttribute(\"data-title\", \"Edit\");\n multipleEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-edit-button\"\n );\n multipleEditButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>`;\n\n multipleEditButton.addEventListener(\"click\", editCallback);\n\n const multipleExternalLinkButton = document.createElement(\"div\");\n multipleExternalLinkButton.classList.add(\"cslp-tooltip-child\");\n multipleExternalLinkButton.setAttribute(\"data-title\", \"Go to link\");\n multipleExternalLinkButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-external-link-button\"\n );\n multipleExternalLinkButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z\" fill=\"#718096\" />\n <path d=\"M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z\" fill=\"#718096\" />\n </svg>`;\n\n multipleExternalLinkButton.addEventListener(\"click\", linkCallback);\n\n const multipleEditFragment = document.createDocumentFragment();\n multipleEditFragment.appendChild(multipleEditButton);\n multipleEditFragment.appendChild(multipleExternalLinkButton);\n\n const multipleDiv = document.createElement(\"div\");\n multipleDiv.appendChild(multipleEditFragment);\n multipleDiv.classList.add(\"multiple\");\n\n return multipleDiv;\n};\n\nexport function addLivePreviewQueryTags(link: string): string {\n try {\n const docUrl: URL = new URL(document.location.href);\n const newUrl: URL = new URL(link);\n const livePreviewHash: string | null =\n docUrl.searchParams.get(\"live_preview\");\n const ctUid: string | null =\n docUrl.searchParams.get(\"content_type_uid\");\n const entryUid: string | null = docUrl.searchParams.get(\"entry_uid\");\n if (livePreviewHash && ctUid && entryUid) {\n newUrl.searchParams.set(\"live_preview\", livePreviewHash);\n newUrl.searchParams.set(\"content_type_uid\", ctUid);\n newUrl.searchParams.set(\"entry_uid\", entryUid);\n }\n return newUrl.href;\n } catch (error) {\n PublicLogger.error(\"Error while adding live preview to URL\");\n return link;\n }\n}\n\nfunction inIframe() {\n return window.location !== window.parent.location;\n}\n\nexport function shouldRenderEditButton(editButton: IConfigEditButton): boolean {\n if (!editButton.enable) {\n if (editButton.enable === undefined)\n PublicLogger.error(\n \"enable key is required inside editButton object\"\n );\n return false;\n }\n\n // return boolean in case of cslp-buttons query added in url\n try {\n const currentLocation = new URL(window.location.href);\n const cslpButtonQueryValue =\n currentLocation.searchParams.get(\"cslp-buttons\");\n if (\n cslpButtonQueryValue !== null &&\n editButton.includeByQueryParameter !== false\n )\n return cslpButtonQueryValue === \"false\" ? false : true;\n } catch (error) {\n PublicLogger.error(error);\n }\n\n // case if inside live preview\n if (\n inIframe() &&\n editButton.exclude?.find(\n (exclude) => exclude === \"insideLivePreviewPortal\"\n )\n ) {\n return false;\n } else if (inIframe()) {\n return true;\n }\n\n // case outside live preview\n if (\n editButton.exclude?.find(\n (exclude) => exclude === \"outsideLivePreviewPortal\"\n )\n ) {\n return false;\n }\n\n // Priority list => 1. cslpEditButton query value 2. Inside live preview 3. renderCslpButtonByDefault value selected by user\n return true;\n}\n\nexport function getEditButtonPosition(\n currentHoveredElement: HTMLElement | null,\n defaultPosition: string | undefined\n): IEditButtonPosition {\n if (!currentHoveredElement)\n return { upperBoundOfTooltip: 0, leftBoundOfTooltip: 0 };\n\n const cslpButtonPosition = currentHoveredElement.getAttribute(\n \"data-cslp-button-position\"\n );\n if (cslpButtonPosition) {\n return calculateEditButtonPosition(\n currentHoveredElement,\n cslpButtonPosition\n );\n }\n\n // NOTE: position \"top\" and \"top-left\" will be the position of edit button if no default position passed in config\n return calculateEditButtonPosition(\n currentHoveredElement,\n defaultPosition || \"top\"\n );\n}\n\nfunction calculateEditButtonPosition(\n currentHoveredElement: HTMLElement,\n cslpButtonPosition: string\n): IEditButtonPosition {\n const editButtonPosition: IEditButtonPosition = {\n upperBoundOfTooltip: 0,\n leftBoundOfTooltip: 0,\n };\n const currentRectOfElement = currentHoveredElement.getBoundingClientRect();\n try {\n const buttonMeasurementValues = {\n width: 72,\n halfWidth: 36,\n height: 40,\n basicMargin: 5,\n widthWithMargin: 77,\n };\n\n switch (cslpButtonPosition) {\n case \"top-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"top-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right +\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"bottom-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.widthWithMargin;\n break;\n // default position => top, top-left or any other string\n default:\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n }\n return editButtonPosition;\n } catch (error) {\n PublicLogger.error(error);\n return editButtonPosition;\n }\n}\n","export class PublicLogger {\n private static logEvent(\n logCallback:\n | Console[\"log\"]\n | Console[\"warn\"]\n | Console[\"error\"]\n | Console[\"debug\"]\n | Console[\"info\"],\n message: any[]\n ): void {\n if (process.env.NODE_ENV !== \"test\") {\n logCallback(\"Live_Preview_SDK:\", ...message);\n }\n }\n\n public static error(...data: any[]): void {\n this.logEvent(console.error, data);\n }\n\n public static warn(...data: any[]): void {\n this.logEvent(console.warn, data);\n }\n\n public static debug(...data: any[]): void {\n this.logEvent(console.debug, data);\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","export default '00000000-0000-0000-0000-000000000000';","import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(607);\n"],"names":["root","factory","exports","module","define","amd","this","str","options","words","split","wordSeparatorsRegEx","len","length","mappedWords","Array","i","word","isCamelCase","basicCamelRegEx","test","allCapsRegEx","replace","fourOrMoreConsecutiveCapsRegEx","match","p1","offset","deCap","firstLetter","toUpperCase","toLowerCase","slice","join","endOfWord","arr","first","shift","last","pop","init","userConfig","userInitData","window","ContentstackLivePreview","livePreview","PublicLogger","warn","Promise","resolve","setOnChangeCallback","publish","setConfigFromParams","configs","params","hash","URLSearchParams","get","Object","values","subscribers","forEach","func","subscribe","callback","callbackUid","onEntryChange","onChangeCallback","config","skipInitialRender","onLiveEdit","unsubscribeOnEntryChange","entries","some","uid","getGatsbyDataFormat","sdkQuery","prefix","find","toJSON","then","result","map","res","entry","content_type_uid","catch","err","console","error","fetch","ent","getSdkVersion","version","initData","ssr","enable","runScriptsOnUpdate","cleanCslpOnProduction","editButton","exclude","position","includeByQueryParameter","stackDetails","apiKey","environment","contentTypeUid","entryUid","clientUrlParams","protocol","host","port","url","stackSdk","live_preview","headers","api_key","onChange","tooltip","currentElementBesideTooltip","isHoveringOnTooltip","hideInterval","tooltipChild","singular","multiple","tooltipCurrentChild","createCslpTooltip","document","getElementById","createElement","tooltipInnerContainer","classList","add","setAttribute","id","addEventListener","toggleHoveringOnEditButton","e","removeEditButtonStyle","body","insertAdjacentElement","createSingularEditButton","scrollHandler","createMultipleEditButton","linkClickHandler","innerHTML","appendChild","updateTooltipPosition","handleInitData","addEditStyleOnHover","bind","generateRedirectUrl","handleUserChange","resolveIncomingMessage","requestDataSync","removeDataCslp","hideTooltip","debug","undefined","readyState","querySelectorAll","tag","docOrigin","location","origin","href","includes","newUrl","addLivePreviewQueryTags","event","target","targetHref","trigger","composedPath","element","nodeName","getAttribute","cslpTag","clearInterval","remove","removeEventListener","setInterval","style","top","locale","entry_uid","preview_field","String","urlHash","URL","searchParams","append","search","field","parent","postMessage","from","type","data","redirectUrl","open","hrefAttribute","assign","editEntrySearchParams","TypeError","history","forward","back","go","shouldReload","sdkVersion","currentRectOfElement","getBoundingClientRect","currentRectOfParentOfElement","parentElement","getEditButtonPosition","upperBoundOfTooltip","leftBoundOfTooltip","zIndex","left","hasAttribute","querySelector","node","removeAttribute","handleClientUrlParams","existingConfig","endsWith","isInitDataStackSdk","initObj","prototype","hasOwnProperty","call","livePreviewObject","shouldRenderEditButton","isArray","handleUserConfig","inIframe","tooltipSingularInnerHtml","tooltipMultipleInnerHtml","editCallback","singularEditButton","linkCallback","multipleEditButton","multipleExternalLinkButton","multipleEditFragment","createDocumentFragment","multipleDiv","link","docUrl","livePreviewHash","ctUid","set","cslpButtonQueryValue","currentHoveredElement","defaultPosition","cslpButtonPosition","editButtonPosition","buttonMeasurementValues","width","halfWidth","height","basicMargin","widthWithMargin","right","bottom","calculateEditButtonPosition","logEvent","logCallback","message","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","Error","uuid","byteToHex","push","toString","substr","arguments","_nodeId","_clockseq","_lastMSecs","_lastNSecs","buf","b","clockseq","seedBytes","random","msecs","Date","now","nsecs","dt","tl","tmh","n","v","parseInt","name","hashfunc","generateUUID","value","namespace","unescape","encodeURIComponent","bytes","charCodeAt","stringToBytes","DNS","getOutputLength","inputLength8","safeAdd","x","y","lsw","md5cmn","q","a","s","t","num","cnt","md5ff","c","d","md5gg","md5hh","md5ii","v35","msg","input","output","length32","hexTab","hex","charAt","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","Uint32Array","bytesToWords","rnds","f","z","ROTL","K","H","l","N","Math","ceil","M","_i","j","pow","floor","_i2","W","_t","_t2","T","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","key","o","defineProperty","enumerable","obj","prop","r","Symbol","toStringTag"],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"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","sources":["webpack://ContentstackLivePreview/webpack/universalModuleDefinition","webpack://ContentstackLivePreview/./node_modules/just-camel-case/index.js","webpack://ContentstackLivePreview/./src/contentstack-live-preview-HOC.ts","webpack://ContentstackLivePreview/./src/index.ts","webpack://ContentstackLivePreview/./src/live-preview.ts","webpack://ContentstackLivePreview/./src/utils/defaults.ts","webpack://ContentstackLivePreview/./src/utils/handleUserConfig.ts","webpack://ContentstackLivePreview/./src/utils/index.ts","webpack://ContentstackLivePreview/./src/utils/public-logger.ts","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/rng.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/regex.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/validate.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/v1.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/parse.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/v35.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/md5.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/v3.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/v4.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/sha1.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/v5.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/nil.js","webpack://ContentstackLivePreview/./node_modules/uuid/dist/esm-browser/version.js","webpack://ContentstackLivePreview/webpack/bootstrap","webpack://ContentstackLivePreview/webpack/runtime/define property getters","webpack://ContentstackLivePreview/webpack/runtime/hasOwnProperty shorthand","webpack://ContentstackLivePreview/webpack/runtime/make namespace object","webpack://ContentstackLivePreview/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ContentstackLivePreview\"] = factory();\n\telse\n\t\troot[\"ContentstackLivePreview\"] = factory();\n})(this, () => {\nreturn ","module.exports = camelCase;\n\n// any combination of spaces and punctuation characters\n// thanks to http://stackoverflow.com/a/25575009\nvar wordSeparatorsRegEx = /[\\s\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,\\-.\\/:;<=>?@\\[\\]^_`{|}~]+/;\n\nvar basicCamelRegEx = /^[a-z\\u00E0-\\u00FCA-Z\\u00C0-\\u00DC][\\d|a-z\\u00E0-\\u00FCA-Z\\u00C0-\\u00DC]*$/;\nvar fourOrMoreConsecutiveCapsRegEx = /([A-Z\\u00C0-\\u00DC]{4,})/g;\nvar allCapsRegEx = /^[A-Z\\u00C0-\\u00DC]+$/;\n\nfunction camelCase(str, options) {\n var words = str.split(wordSeparatorsRegEx);\n var len = words.length;\n var mappedWords = new Array(len);\n for (var i = 0; i < len; i++) {\n var word = words[i];\n if (word === '') {\n continue;\n }\n var isCamelCase = basicCamelRegEx.test(word) && !allCapsRegEx.test(word);\n if (isCamelCase) {\n word = word.replace(fourOrMoreConsecutiveCapsRegEx, function(match, p1, offset) {\n return deCap(match, word.length - offset - match.length == 0);\n });\n }\n var firstLetter = word[0];\n firstLetter = i > 0 ? firstLetter.toUpperCase() : firstLetter.toLowerCase();\n mappedWords[i] = firstLetter + (!isCamelCase ? word.slice(1).toLowerCase() : word.slice(1));\n }\n return mappedWords.join('');\n}\n\nfunction deCap(match, endOfWord) {\n var arr = match.split('');\n var first = arr.shift().toUpperCase();\n var last = endOfWord ? arr.pop().toLowerCase() : arr.pop();\n return first + arr.join('').toLowerCase() + last;\n}\n","import { v4 as uuidv4 } from \"uuid\";\nimport camelCase from \"just-camel-case\";\nimport packageJson from \"../package.json\";\n\nimport {\n IInitData,\n IStackSdk,\n OnEntryChangeCallback,\n OnEntryChangeCallbackUID,\n OnEntryChangeConfig,\n} from \"./utils/types\";\nimport LivePreview from \"./live-preview\";\nimport { userInitData } from \"./utils/defaults\";\nimport { PublicLogger } from \"./utils/public-logger\";\n\nexport class ContentstackLivePreview {\n static livePreview: LivePreview | null = null;\n static userConfig: Partial<IInitData> | null = null;\n static subscribers: { [uid: string]: OnEntryChangeCallback } = {};\n static configs: {\n params: ConstructorParameters<typeof URLSearchParams>[0];\n } = {\n params: {},\n };\n\n static init(\n userConfig: Partial<IInitData> = userInitData\n ): Promise<LivePreview> | undefined {\n if (typeof window !== \"undefined\") {\n if (ContentstackLivePreview.livePreview) {\n PublicLogger.warn(\n \"You have already initialized the Live Preview SDK. So, any subsequent initialization returns the existing SDK instance.\"\n );\n return Promise.resolve(ContentstackLivePreview.livePreview);\n } else {\n ContentstackLivePreview.livePreview = new LivePreview(\n userConfig\n );\n ContentstackLivePreview.livePreview.setOnChangeCallback(\n ContentstackLivePreview.publish\n );\n\n ContentstackLivePreview.livePreview.setConfigFromParams(\n this.configs.params\n );\n this.configs.params = {};\n\n return Promise.resolve(ContentstackLivePreview.livePreview);\n }\n } else {\n ContentstackLivePreview.userConfig = userConfig;\n }\n }\n\n /**\n * It is the live preview hash.\n * This hash could be used when data is fetched manually.\n */\n static get hash(): string {\n if (!this.livePreview) {\n const urlParams = new URLSearchParams(this.configs.params);\n return urlParams.get(\"live_preview\") ?? \"\";\n }\n\n return this.livePreview.hash;\n }\n\n /**\n * Sets the live preview hash from the query param which is\n * accessible via `hash` property.\n * @param params query param in an object form\n */\n static setConfigFromParams(\n params: ConstructorParameters<typeof URLSearchParams>[0] = {}\n ): void {\n if (!this.livePreview) {\n this.configs.params = params;\n return;\n }\n\n this.livePreview.setConfigFromParams(params);\n }\n\n private static publish(): void {\n Object.values<OnEntryChangeCallback>(\n ContentstackLivePreview.subscribers\n ).forEach((func) => {\n func();\n });\n }\n\n private static subscribe(\n callback: OnEntryChangeCallback\n ): OnEntryChangeCallbackUID {\n const callbackUid = uuidv4();\n ContentstackLivePreview.subscribers[callbackUid] = callback;\n return callbackUid;\n }\n /**\n * @type {function}\n * @param onChangeCallback A function param to fetch the data from contentstack database\n * @param config An optional object param, pass {skipInitialRender:Boolean} to skip init call to onChangeCallback\n * @returns Subscribed Callback UID\n */\n static onEntryChange(\n onChangeCallback: OnEntryChangeCallback,\n config?: OnEntryChangeConfig\n ): OnEntryChangeCallbackUID {\n const { skipInitialRender = false } = config || {};\n if (ContentstackLivePreview.userConfig) {\n ContentstackLivePreview.livePreview = new LivePreview(\n ContentstackLivePreview.userConfig\n );\n ContentstackLivePreview.livePreview.setOnChangeCallback(\n ContentstackLivePreview.publish\n );\n\n ContentstackLivePreview.livePreview.setConfigFromParams(\n this.configs.params\n );\n\n this.configs.params = {};\n\n ContentstackLivePreview.userConfig = null;\n }\n const callbackUid = ContentstackLivePreview.subscribe(onChangeCallback);\n if (!skipInitialRender) {\n onChangeCallback();\n }\n return callbackUid;\n }\n\n /**\n * @type {function}\n * @param onChangeCallback A function param to fetch the data from contentstack database on content change.\n * @returns Subscribed Callback UID\n */\n static onLiveEdit(\n onChangeCallback: OnEntryChangeCallback\n ): OnEntryChangeCallbackUID {\n return ContentstackLivePreview.onEntryChange(onChangeCallback, {\n skipInitialRender: true,\n });\n }\n\n static unsubscribeOnEntryChange(\n callback: string | OnEntryChangeCallback\n ): void {\n if (typeof callback === \"string\") {\n if (!ContentstackLivePreview.subscribers[callback]) {\n PublicLogger.warn(\"No subscriber found with the given id.\");\n }\n delete ContentstackLivePreview.subscribers[callback];\n } else if (typeof callback === \"function\") {\n const isCallbackDeleted = Object.entries<() => void>(\n ContentstackLivePreview.subscribers\n ).some(([uid, func]) => {\n if (func === callback) {\n delete ContentstackLivePreview.subscribers[uid];\n return true;\n }\n return false;\n });\n\n if (!isCallbackDeleted) {\n PublicLogger.warn(\n \"No subscriber found with the given callback.\"\n );\n }\n }\n }\n\n static async getGatsbyDataFormat(\n sdkQuery: IStackSdk,\n prefix: string\n ): Promise<any> {\n if (typeof sdkQuery.find === \"function\") {\n return sdkQuery\n .toJSON()\n .find()\n .then((result: { [key: string]: any }) => {\n return result.map((res: { [key: string]: any }) => {\n return res.map((entry: { [key: string]: any }) => {\n const dataTitle = camelCase(\n `${prefix}_${sdkQuery.content_type_uid}`\n );\n return { [dataTitle]: entry };\n });\n });\n })\n .catch((err: any) => {\n console.error(err);\n });\n } else if (typeof sdkQuery.fetch === \"function\") {\n return sdkQuery\n .toJSON()\n .fetch()\n .then((ent: { [key: string]: any }) => {\n const dataTitle = camelCase(\n `${prefix}_${sdkQuery.content_type_uid}`\n );\n const entry = { [dataTitle]: ent };\n\n return entry;\n })\n .catch((err: unknown) => {\n console.error(err);\n });\n }\n }\n\n static getSdkVersion(): string {\n return packageJson.version;\n }\n}\n\nexport default ContentstackLivePreview;\n\nmodule.exports = ContentstackLivePreview;\n","import ContentstackLivePreviewHOC from \"./contentstack-live-preview-HOC\";\nimport \"./styles.css\";\n\nexport const ContentstackLivePreview = ContentstackLivePreviewHOC;\n\nexport default ContentstackLivePreview;\nmodule.exports = ContentstackLivePreview;\n","import {\n createSingularEditButton,\n createMultipleEditButton,\n addLivePreviewQueryTags,\n shouldRenderEditButton,\n getEditButtonPosition,\n} from \"./utils\";\nimport { PublicLogger } from \"./utils/public-logger\";\nimport {\n IConfig,\n IEditButtonPosition,\n IEditEntrySearchParams,\n IInitData,\n ILivePreviewReceivePostMessages,\n} from \"./utils/types\";\nimport { handleInitData } from \"./utils/handleUserConfig\";\nimport { userInitData } from \"./utils/defaults\";\nimport packageJson from \"../package.json\";\n\nexport default class LivePreview {\n /**\n * @hideconstructor\n */\n\n private config: IConfig = {\n ssr: true,\n enable: true,\n runScriptsOnUpdate: false,\n cleanCslpOnProduction: true,\n hash: \"\",\n\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n branch: \"main\",\n contentTypeUid: \"\",\n entryUid: \"\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n url: \"https://app.contentstack.com:443\",\n },\n stackSdk: {\n live_preview: {},\n headers: {\n api_key: \"\",\n },\n environment: \"\",\n },\n\n onChange: () => {\n // this is intentional\n },\n };\n\n private tooltip: HTMLButtonElement | null = null; // this tooltip is responsible to redirect user to Contentstack edit page\n private currentElementBesideTooltip: HTMLElement | null = null; // this element helps to move tooltip with the scroll\n private isHoveringOnTooltip = false;\n private hideInterval: ReturnType<typeof setInterval> | null = null;\n\n private tooltipChild: {\n singular: HTMLDivElement | null;\n multiple: HTMLDivElement | null;\n } = {\n singular: null,\n multiple: null,\n };\n private tooltipCurrentChild: \"multiple\" | \"singular\" = \"singular\";\n\n constructor(initData: Partial<IInitData> = userInitData) {\n handleInitData(initData, this.config);\n\n this.addEditStyleOnHover = this.addEditStyleOnHover.bind(this);\n this.removeEditButtonStyle = this.removeEditButtonStyle.bind(this);\n this.generateRedirectUrl = this.generateRedirectUrl.bind(this);\n this.scrollHandler = this.scrollHandler.bind(this);\n this.linkClickHandler = this.linkClickHandler.bind(this);\n this.handleUserChange = this.handleUserChange.bind(this);\n this.setOnChangeCallback = this.setOnChangeCallback.bind(this);\n this.resolveIncomingMessage = this.resolveIncomingMessage.bind(this);\n this.createCslpTooltip = this.createCslpTooltip.bind(this);\n this.requestDataSync = this.requestDataSync.bind(this);\n this.updateTooltipPosition = this.updateTooltipPosition.bind(this);\n this.removeDataCslp = this.removeDataCslp.bind(this);\n this.toggleHoveringOnEditButton =\n this.toggleHoveringOnEditButton.bind(this);\n this.hideTooltip = this.hideTooltip.bind(this);\n\n // @ts-ignore\n if (initData.debug) {\n PublicLogger.debug(\n \"Contentstack Live Preview Debugging mode: config --\",\n this.config\n );\n }\n\n if (this.config.enable) {\n if (\n typeof document !== undefined &&\n document.readyState === \"complete\"\n ) {\n this.requestDataSync();\n } else {\n window.addEventListener(\"load\", this.requestDataSync);\n }\n window.addEventListener(\"message\", this.resolveIncomingMessage);\n window.addEventListener(\"scroll\", this.updateTooltipPosition);\n // render the hover outline only when edit button enable\n if (this.config.editButton.enable) {\n window.addEventListener(\"mouseover\", this.addEditStyleOnHover);\n }\n\n if (this.config.ssr) {\n window.addEventListener(\"load\", (e) => {\n const allATags = document.querySelectorAll(\"a\");\n allATags.forEach((tag) => {\n const docOrigin: string = document.location.origin;\n if (tag.href && tag.href.includes(docOrigin)) {\n const newUrl = addLivePreviewQueryTags(tag.href);\n tag.href = newUrl;\n }\n });\n });\n\n // Setting the query params to all the click events related to current domain\n window.addEventListener(\"click\", (event: any) => {\n const target: any = event.target;\n const targetHref: string | any = target.href;\n const docOrigin: string = document.location.origin;\n if (\n targetHref &&\n targetHref.includes(docOrigin) &&\n !targetHref.includes(\"live_preview\")\n ) {\n const newUrl = addLivePreviewQueryTags(target.href);\n event.target.href = newUrl || target.href;\n }\n });\n }\n } else if (this.config.cleanCslpOnProduction) {\n this.removeDataCslp();\n }\n }\n\n private addEditStyleOnHover(e: MouseEvent) {\n let trigger = true;\n const eventTargets = e.composedPath();\n\n for (const eventTarget of eventTargets) {\n const element = eventTarget as HTMLElement;\n if (element.nodeName === \"BODY\") break;\n if (typeof element?.getAttribute !== \"function\") continue;\n\n const cslpTag = element.getAttribute(\"data-cslp\");\n\n if (trigger && cslpTag) {\n if (this.hideInterval) {\n clearInterval(this.hideInterval);\n this.hideInterval = null;\n }\n if (this.currentElementBesideTooltip) {\n this.currentElementBesideTooltip.classList.remove(\n \"cslp-edit-mode\"\n );\n this.currentElementBesideTooltip.removeEventListener(\n \"mouseleave\",\n this.removeEditButtonStyle\n );\n }\n element.classList.add(\"cslp-edit-mode\");\n this.currentElementBesideTooltip = element;\n this.currentElementBesideTooltip.addEventListener(\n \"mouseleave\",\n this.removeEditButtonStyle\n );\n\n if (this.updateTooltipPosition()) {\n this.tooltip?.setAttribute(\"current-data-cslp\", cslpTag);\n this.tooltip?.setAttribute(\n \"current-href\",\n element.getAttribute(\"href\") ?? \"\"\n );\n }\n\n trigger = false;\n } else if (!trigger) {\n element.classList.remove(\"cslp-edit-mode\");\n }\n }\n }\n\n private removeEditButtonStyle(e: MouseEvent) {\n if (!this.currentElementBesideTooltip || !this.tooltip) return false;\n let trigger = true;\n const eventTargets = e.composedPath();\n\n for (const eventTarget of eventTargets) {\n const element = eventTarget as HTMLElement;\n if (element.nodeName === \"BODY\") break;\n if (typeof element?.getAttribute !== \"function\") continue;\n\n const cslpTag = element.getAttribute(\"data-cslp\");\n\n if (trigger && cslpTag) {\n this.hideInterval = setInterval(this.hideTooltip, 500);\n trigger = false;\n } else if (!trigger) {\n element.classList.remove(\"cslp-edit-mode\");\n }\n }\n }\n\n private hideTooltip() {\n if (\n !this.currentElementBesideTooltip ||\n !this.tooltip ||\n this.isHoveringOnTooltip\n )\n return false;\n this.currentElementBesideTooltip.classList.remove(\"cslp-edit-mode\");\n this.currentElementBesideTooltip.removeEventListener(\n \"mouseleave\",\n this.removeEditButtonStyle\n );\n this.currentElementBesideTooltip = null;\n this.tooltip.style.top = \"-100%\";\n }\n\n private generateRedirectUrl(\n content_type_uid: string,\n locale = \"en-us\",\n entry_uid: string,\n preview_field: string\n ): string {\n if (!this.config.stackDetails.apiKey) {\n throw `To use edit tags, you must provide the stack API key. Specify the API key while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n apiKey: 'your-api-key'\n },\n ...\n })`;\n }\n\n if (!this.config.stackDetails.environment) {\n throw `To use edit tags, you must provide the preview environment. Specify the preview environment while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n environment: 'Your-environment'\n },\n ...\n })`;\n }\n\n const protocol = String(this.config.clientUrlParams.protocol);\n const host = String(this.config.clientUrlParams.host);\n const port = String(this.config.clientUrlParams.port);\n const environment = String(this.config.stackDetails.environment);\n const branch = String(this.config.stackDetails.branch || \"main\");\n\n const urlHash = `!/stack/${\n this.config.stackDetails.apiKey\n }/content-type/${content_type_uid}/${\n locale ?? \"en-us\"\n }/entry/${entry_uid}/edit`;\n\n const url = new URL(`${protocol}://${host}`);\n url.port = port;\n url.hash = urlHash;\n url.searchParams.append(\"branch\", branch);\n url.searchParams.append(\"preview-field\", preview_field);\n url.searchParams.append(\"preview-locale\", locale ?? \"en-us\");\n url.searchParams.append(\"preview-environment\", environment);\n\n return `${url.origin}/${url.hash}${url.search}`;\n }\n\n private scrollHandler() {\n if (!this.tooltip) return;\n\n const cslpTag = this.tooltip.getAttribute(\"current-data-cslp\");\n\n if (cslpTag) {\n const [content_type_uid, entry_uid, locale, ...field] =\n cslpTag.split(\".\");\n\n // check if opened inside an iframe\n if (window.location !== window.parent.location) {\n window.parent.postMessage(\n {\n from: \"live-preview\",\n type: \"scroll\",\n data: {\n field: field.join(\".\"),\n content_type_uid,\n entry_uid,\n locale,\n },\n },\n \"*\"\n );\n } else {\n try {\n const redirectUrl = this.generateRedirectUrl(\n content_type_uid,\n locale,\n entry_uid,\n field.join(\".\")\n );\n\n window.open(redirectUrl, \"_blank\");\n } catch (error) {\n PublicLogger.error(error);\n }\n }\n }\n }\n\n private linkClickHandler() {\n if (!this.tooltip) return;\n const hrefAttribute = this.tooltip.getAttribute(\"current-href\");\n\n if (hrefAttribute) {\n window.location.assign(hrefAttribute);\n }\n }\n\n private handleUserChange(editEntrySearchParams: IEditEntrySearchParams) {\n // here we provide contentTypeUid and EntryUid to the StackDelivery SDK.\n this.config.stackSdk.live_preview = {\n ...this.config.stackSdk.live_preview,\n ...editEntrySearchParams,\n live_preview: editEntrySearchParams.hash,\n };\n this.config.onChange();\n }\n\n setOnChangeCallback(onChangeCallback: () => void): void {\n this.config.onChange = onChangeCallback;\n }\n\n /**\n * It is the live preview hash.\n * This hash could be used when data is fetched manually.\n */\n get hash(): string {\n return this.config.hash;\n }\n\n /**\n * Sets the live preview hash from the query param which is\n * accessible via `hash` property.\n * @param params query param in an object form\n */\n setConfigFromParams(\n params: ConstructorParameters<typeof URLSearchParams>[0] = {}\n ): void {\n if (typeof params !== \"object\")\n throw new TypeError(\n \"Live preview SDK: query param must be an object\"\n );\n\n const urlParams = new URLSearchParams(params);\n const live_preview = urlParams.get(\"live_preview\");\n\n if (live_preview) {\n this.config.hash = live_preview;\n }\n }\n\n private resolveIncomingMessage(\n e: MessageEvent<ILivePreviewReceivePostMessages>\n ) {\n if (typeof e.data !== \"object\") return;\n\n if (e.data.from !== \"live-preview\") return;\n\n switch (e.data.type) {\n case \"client-data-send\": {\n const { contentTypeUid, entryUid } = this.config.stackDetails;\n const { hash } = e.data.data;\n\n this.setConfigFromParams({ live_preview: hash });\n\n if (!this.config.ssr) {\n this.handleUserChange({\n content_type_uid: contentTypeUid,\n entry_uid: entryUid,\n hash: hash,\n });\n }\n break;\n }\n case \"init-ack\": {\n const { contentTypeUid, entryUid } = e.data.data;\n\n this.config.stackDetails.contentTypeUid = contentTypeUid;\n this.config.stackDetails.entryUid = entryUid;\n break;\n }\n case \"history\": {\n switch (e.data.data.type) {\n case \"forward\": {\n window.history.forward();\n break;\n }\n case \"backward\": {\n window.history.back();\n break;\n }\n case \"reload\": {\n window.history.go();\n }\n }\n break;\n }\n default: {\n // ensure that the switch statement is exhaustive\n const exhaustiveCheck: never = e.data;\n return exhaustiveCheck; // TODO: add debug message while we are in development mode.\n }\n }\n }\n\n private createCslpTooltip = () => {\n if (\n !document.getElementById(\"cslp-tooltip\") &&\n this.config.editButton.enable\n ) {\n const tooltip = document.createElement(\"button\");\n const tooltipInnerContainer = document.createElement(\"div\");\n tooltipInnerContainer.classList.add(\"cslp-tooltip-inner-container\");\n tooltip.classList.add(\"cslp-tooltip\");\n tooltip.classList.add(\"cslp-tooltip\");\n tooltip.setAttribute(\"data-test-id\", \"cs-cslp-tooltip\");\n tooltip.id = \"cslp-tooltip\";\n tooltipInnerContainer.id = \"cslp-tooltip-inner-container\";\n tooltip.addEventListener(\"mouseover\", () => {\n this.toggleHoveringOnEditButton(true);\n });\n tooltip.addEventListener(\"mouseleave\", (e: MouseEvent) => {\n this.toggleHoveringOnEditButton(false);\n this.removeEditButtonStyle(e);\n });\n window.document.body.insertAdjacentElement(\"beforeend\", tooltip);\n this.tooltipChild.singular = createSingularEditButton(\n this.scrollHandler\n );\n this.tooltipChild.multiple = createMultipleEditButton(\n this.scrollHandler,\n this.linkClickHandler\n );\n\n tooltipInnerContainer.innerHTML = \"\";\n tooltipInnerContainer.appendChild(this.tooltipChild.singular);\n tooltip.appendChild(tooltipInnerContainer);\n this.tooltip = tooltip;\n }\n this.updateTooltipPosition();\n };\n\n private toggleHoveringOnEditButton = (isHoveringOnTooltip: boolean) => {\n this.isHoveringOnTooltip = isHoveringOnTooltip;\n };\n\n // Request parent for data sync when document loads\n private requestDataSync() {\n // add edit tooltip\n this.createCslpTooltip();\n\n window.parent.postMessage(\n {\n from: \"live-preview\",\n type: \"init\",\n data: {\n config: {\n shouldReload: this.config.ssr,\n href: window.location.href,\n sdkVersion: packageJson.version,\n },\n },\n },\n \"*\"\n );\n\n // set timeout for client side (use to show warning: You are not editing this page)\n if (!this.config.ssr) {\n setInterval(() => {\n window.parent.postMessage(\n {\n from: \"live-preview\",\n type: \"check-entry-page\",\n data: {\n href: window.location.href,\n },\n },\n \"*\"\n );\n }, 1500);\n }\n }\n\n private updateTooltipPosition() {\n if (!this.currentElementBesideTooltip || !this.tooltip) return false;\n\n const currentRectOfElement =\n this.currentElementBesideTooltip.getBoundingClientRect();\n const currentRectOfParentOfElement =\n this.tooltip.parentElement?.getBoundingClientRect();\n\n if (currentRectOfElement && currentRectOfParentOfElement) {\n let {\n upperBoundOfTooltip,\n // eslint-disable-next-line prefer-const\n leftBoundOfTooltip,\n }: IEditButtonPosition = getEditButtonPosition(\n this.currentElementBesideTooltip,\n this.config.editButton.position\n );\n\n // if scrolled and element is still visible, make sure tooltip is also visible\n if (upperBoundOfTooltip < 0) {\n if (currentRectOfElement.top < 0)\n upperBoundOfTooltip = currentRectOfElement.top;\n else upperBoundOfTooltip = 0;\n }\n\n this.tooltip.style.top = upperBoundOfTooltip + \"px\";\n this.tooltip.style.zIndex =\n this.currentElementBesideTooltip.style.zIndex || \"200\";\n this.tooltip.style.left = leftBoundOfTooltip + \"px\";\n\n if (this.tooltipChild.singular && this.tooltipChild.multiple) {\n if (this.currentElementBesideTooltip.hasAttribute(\"href\")) {\n if (this.tooltipCurrentChild !== \"multiple\") {\n const tooltipInnerContainer =\n this.tooltip.querySelector(\n \"div.cslp-tooltip-inner-container\"\n );\n if (tooltipInnerContainer) {\n tooltipInnerContainer.innerHTML = \"\";\n tooltipInnerContainer.appendChild(\n this.tooltipChild.multiple\n );\n this.tooltipCurrentChild = \"multiple\";\n }\n }\n } else if (this.tooltipCurrentChild !== \"singular\") {\n const tooltipInnerContainer = this.tooltip.querySelector(\n \"div.cslp-tooltip-inner-container\"\n );\n if (tooltipInnerContainer) {\n tooltipInnerContainer.innerHTML = \"\";\n tooltipInnerContainer.appendChild(\n this.tooltipChild.singular\n );\n this.tooltipCurrentChild = \"singular\";\n }\n }\n }\n return true;\n }\n\n return false;\n }\n\n // remove attributes when livePreview is false\n private removeDataCslp() {\n const nodes = document.querySelectorAll(\"[data-cslp]\");\n\n nodes.forEach((node) => {\n node.removeAttribute(\"data-cslp\");\n node.removeAttribute(\"data-cslp-button-position\");\n });\n }\n}\n","import { IInitData } from \"./types\";\n\nexport const userInitData: IInitData = {\n ssr: true,\n enable: true,\n cleanCslpOnProduction: true,\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n branch: \"main\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n },\n stackSdk: {\n live_preview: {},\n headers: {\n api_key: \"\",\n },\n environment: \"\",\n },\n runScriptsOnUpdate: false,\n};\n","import { shouldRenderEditButton } from \".\";\nimport { PublicLogger } from \"./public-logger\";\nimport { IClientUrlParams, IConfig, IInitData, IStackSdk } from \"./types\";\n\nconst handleClientUrlParams = (\n existingConfig: IConfig,\n userConfig: Partial<IClientUrlParams>\n): void => {\n existingConfig.clientUrlParams.host =\n userConfig.host ?? existingConfig.clientUrlParams.host;\n existingConfig.clientUrlParams.protocol =\n userConfig.protocol ?? existingConfig.clientUrlParams.protocol;\n existingConfig.clientUrlParams.port =\n userConfig.port ?? existingConfig.clientUrlParams.port;\n\n if (userConfig.protocol !== undefined && userConfig.port === undefined) {\n switch (userConfig.protocol) {\n case \"http\": {\n existingConfig.clientUrlParams.port = 80;\n break;\n }\n case \"https\": {\n existingConfig.clientUrlParams.port = 443;\n break;\n }\n }\n }\n\n // build url\n let host = existingConfig.clientUrlParams.host;\n\n if (host.endsWith(\"/\")) {\n host = host.slice(0, -1);\n existingConfig.clientUrlParams.host = host;\n }\n\n existingConfig.clientUrlParams.url = `${existingConfig.clientUrlParams.protocol}://${existingConfig.clientUrlParams.host}:${existingConfig.clientUrlParams.port}`;\n};\n\nfunction isInitDataStackSdk(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IStackSdk {\n return Object.prototype.hasOwnProperty.call(initObj, \"cachePolicy\");\n}\n\nfunction isInitDataCommon(\n initObj: Partial<IConfig> | Partial<IStackSdk>\n): initObj is IInitData {\n return !isInitDataStackSdk(initObj);\n}\n\nexport const handleInitData = (\n initData: Partial<IInitData> | Partial<IStackSdk>,\n config: IConfig\n): void => {\n // only have stack sdk\n if (isInitDataStackSdk(initData)) {\n PublicLogger.warn(\n \"Deprecated: Do not pass the Stack object directly to the Live Preview SDK. Pass it using the config.stackSDK config object.\"\n );\n\n const livePreviewObject = initData?.live_preview || {};\n\n // only stack indicates that user is running it on client side application\n config.ssr = false;\n\n config.runScriptsOnUpdate =\n livePreviewObject.runScriptsOnUpdate ?? config.runScriptsOnUpdate;\n\n config.enable = livePreviewObject.enable ?? config.enable;\n\n config.cleanCslpOnProduction =\n livePreviewObject.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n livePreviewObject.editButton ?? config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(livePreviewObject.editButton?.exclude) &&\n livePreviewObject.editButton?.exclude\n ? livePreviewObject.editButton?.exclude\n : config.editButton.exclude ?? [],\n position:\n livePreviewObject.editButton?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n livePreviewObject.editButton?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackSdk = initData;\n\n // stack details\n if (\n Object.prototype.hasOwnProperty.call(initData.headers, \"api_key\") &&\n initData.headers.api_key\n )\n config.stackDetails.apiKey = initData.headers.api_key;\n\n if (Object.prototype.hasOwnProperty.call(initData, \"environment\")) {\n config.stackDetails.environment = initData.environment;\n }\n\n if (Object.prototype.hasOwnProperty.call(initData, \"branch\")) {\n config.stackDetails.branch = initData.branch;\n }\n\n // client URL params\n handleClientUrlParams(\n config,\n livePreviewObject.clientUrlParams ?? config.clientUrlParams\n );\n } else if (isInitDataCommon(initData)) {\n const stackSdk: Partial<IStackSdk> =\n initData.stackSdk || config.stackSdk;\n\n config.enable =\n initData.enable ?? stackSdk.live_preview?.enable ?? config.enable;\n\n config.ssr =\n initData.ssr ??\n stackSdk.live_preview?.ssr ??\n (typeof initData.stackSdk === \"object\" ? false : true) ??\n true;\n\n config.runScriptsOnUpdate =\n initData.runScriptsOnUpdate ??\n stackSdk.live_preview?.runScriptsOnUpdate ??\n config.runScriptsOnUpdate;\n\n config.stackSdk = stackSdk as IStackSdk;\n\n config.cleanCslpOnProduction =\n initData.cleanCslpOnProduction ??\n stackSdk.live_preview?.cleanCslpOnProduction ??\n config.cleanCslpOnProduction;\n\n config.editButton = {\n enable: shouldRenderEditButton(\n initData.editButton ??\n stackSdk.live_preview?.editButton ??\n config.editButton\n ),\n // added extra check if exclude data passed by user is array or not\n exclude:\n Array.isArray(initData.editButton?.exclude) &&\n initData.editButton?.exclude\n ? initData.editButton?.exclude\n : Array.isArray(stackSdk.live_preview?.exclude) &&\n stackSdk.live_preview?.exclude\n ? stackSdk.live_preview?.exclude\n : config.editButton.exclude ?? [],\n position:\n initData.editButton?.position ??\n stackSdk.live_preview?.position ??\n config.editButton.position ??\n \"top\",\n\n includeByQueryParameter:\n initData.editButton?.includeByQueryParameter ??\n stackSdk.live_preview?.includeByQueryParameter ??\n config.editButton.includeByQueryParameter ??\n true,\n };\n\n config.stackDetails.apiKey =\n initData.stackDetails?.apiKey ??\n stackSdk.headers?.api_key ??\n config.stackDetails.apiKey;\n\n config.stackDetails.environment =\n initData.stackDetails?.environment ??\n stackSdk.environment ??\n config.stackDetails.environment;\n\n config.stackDetails.branch =\n initData.stackDetails?.branch ??\n config.stackDetails.branch ??\n \"main\";\n\n // client URL params\n handleClientUrlParams(\n config,\n initData.clientUrlParams ??\n stackSdk.live_preview?.clientUrlParams ??\n config.clientUrlParams\n );\n }\n};\n\nexport const handleUserConfig = {\n clientUrlParams: handleClientUrlParams,\n};\n","import { PublicLogger } from \"./public-logger\";\nimport { IConfigEditButton, IEditButtonPosition } from \"./types\";\n\nexport function hasWindow(): boolean {\n return typeof window !== \"undefined\";\n}\n\nexport const tooltipSingularInnerHtml = `<div class=\"singular edit-button\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>Edit\n </div>`;\n\nexport const tooltipMultipleInnerHtml = `<div class=\"edit-button\" title=\"edit\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>\n </div>\n <div title=\"click element\" class=\"external-link-button\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z\" fill=\"#718096\" />\n <path d=\"M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z\" fill=\"#718096\" />\n </svg>\n </div>`;\n\nexport const createSingularEditButton = (\n editCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const singularEditButton = document.createElement(\"div\");\n singularEditButton.classList.add(\"cslp-tooltip-child\", \"singular\");\n singularEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-singular-edit-button\"\n );\n singularEditButton.innerHTML = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>Edit`;\n\n singularEditButton.addEventListener(\"click\", editCallback);\n\n return singularEditButton;\n};\n\nexport const createMultipleEditButton = (\n editCallback: (e: MouseEvent) => void,\n linkCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const multipleEditButton = document.createElement(\"div\");\n multipleEditButton.classList.add(\"cslp-tooltip-child\");\n multipleEditButton.setAttribute(\"data-title\", \"Edit\");\n multipleEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-edit-button\"\n );\n multipleEditButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>`;\n\n multipleEditButton.addEventListener(\"click\", editCallback);\n\n const multipleExternalLinkButton = document.createElement(\"div\");\n multipleExternalLinkButton.classList.add(\"cslp-tooltip-child\");\n multipleExternalLinkButton.setAttribute(\"data-title\", \"Go to link\");\n multipleExternalLinkButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-external-link-button\"\n );\n multipleExternalLinkButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z\" fill=\"#718096\" />\n <path d=\"M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z\" fill=\"#718096\" />\n </svg>`;\n\n multipleExternalLinkButton.addEventListener(\"click\", linkCallback);\n\n const multipleEditFragment = document.createDocumentFragment();\n multipleEditFragment.appendChild(multipleEditButton);\n multipleEditFragment.appendChild(multipleExternalLinkButton);\n\n const multipleDiv = document.createElement(\"div\");\n multipleDiv.appendChild(multipleEditFragment);\n multipleDiv.classList.add(\"multiple\");\n\n return multipleDiv;\n};\n\nexport function addLivePreviewQueryTags(link: string): string {\n try {\n const docUrl: URL = new URL(document.location.href);\n const newUrl: URL = new URL(link);\n const livePreviewHash: string | null =\n docUrl.searchParams.get(\"live_preview\");\n const ctUid: string | null =\n docUrl.searchParams.get(\"content_type_uid\");\n const entryUid: string | null = docUrl.searchParams.get(\"entry_uid\");\n if (livePreviewHash && ctUid && entryUid) {\n newUrl.searchParams.set(\"live_preview\", livePreviewHash);\n newUrl.searchParams.set(\"content_type_uid\", ctUid);\n newUrl.searchParams.set(\"entry_uid\", entryUid);\n }\n return newUrl.href;\n } catch (error) {\n PublicLogger.error(\"Error while adding live preview to URL\");\n return link;\n }\n}\n\nfunction inIframe() {\n return window.location !== window.parent.location;\n}\n\nexport function shouldRenderEditButton(editButton: IConfigEditButton): boolean {\n if (!editButton.enable) {\n if (editButton.enable === undefined)\n PublicLogger.error(\n \"enable key is required inside editButton object\"\n );\n return false;\n }\n\n // return boolean in case of cslp-buttons query added in url\n try {\n const currentLocation = new URL(window.location.href);\n const cslpButtonQueryValue =\n currentLocation.searchParams.get(\"cslp-buttons\");\n if (\n cslpButtonQueryValue !== null &&\n editButton.includeByQueryParameter !== false\n )\n return cslpButtonQueryValue === \"false\" ? false : true;\n } catch (error) {\n PublicLogger.error(error);\n }\n\n // case if inside live preview\n if (\n inIframe() &&\n editButton.exclude?.find(\n (exclude) => exclude === \"insideLivePreviewPortal\"\n )\n ) {\n return false;\n } else if (inIframe()) {\n return true;\n }\n\n // case outside live preview\n if (\n editButton.exclude?.find(\n (exclude) => exclude === \"outsideLivePreviewPortal\"\n )\n ) {\n return false;\n }\n\n // Priority list => 1. cslpEditButton query value 2. Inside live preview 3. renderCslpButtonByDefault value selected by user\n return true;\n}\n\nexport function getEditButtonPosition(\n currentHoveredElement: HTMLElement | null,\n defaultPosition: string | undefined\n): IEditButtonPosition {\n if (!currentHoveredElement)\n return { upperBoundOfTooltip: 0, leftBoundOfTooltip: 0 };\n\n const cslpButtonPosition = currentHoveredElement.getAttribute(\n \"data-cslp-button-position\"\n );\n if (cslpButtonPosition) {\n return calculateEditButtonPosition(\n currentHoveredElement,\n cslpButtonPosition\n );\n }\n\n // NOTE: position \"top\" and \"top-left\" will be the position of edit button if no default position passed in config\n return calculateEditButtonPosition(\n currentHoveredElement,\n defaultPosition || \"top\"\n );\n}\n\nfunction calculateEditButtonPosition(\n currentHoveredElement: HTMLElement,\n cslpButtonPosition: string\n): IEditButtonPosition {\n const editButtonPosition: IEditButtonPosition = {\n upperBoundOfTooltip: 0,\n leftBoundOfTooltip: 0,\n };\n const currentRectOfElement = currentHoveredElement.getBoundingClientRect();\n try {\n const buttonMeasurementValues = {\n width: 72,\n halfWidth: 36,\n height: 40,\n basicMargin: 5,\n widthWithMargin: 77,\n };\n\n switch (cslpButtonPosition) {\n case \"top-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"top-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right +\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"bottom-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.widthWithMargin;\n break;\n // default position => top, top-left or any other string\n default:\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n }\n return editButtonPosition;\n } catch (error) {\n PublicLogger.error(error);\n return editButtonPosition;\n }\n}\n","export class PublicLogger {\n private static logEvent(\n logCallback:\n | Console[\"log\"]\n | Console[\"warn\"]\n | Console[\"error\"]\n | Console[\"debug\"]\n | Console[\"info\"],\n message: any[]\n ): void {\n if (process.env.NODE_ENV !== \"test\") {\n logCallback(\"Live_Preview_SDK:\", ...message);\n }\n }\n\n public static error(...data: any[]): void {\n this.logEvent(console.error, data);\n }\n\n public static warn(...data: any[]): void {\n this.logEvent(console.warn, data);\n }\n\n public static debug(...data: any[]): void {\n this.logEvent(console.debug, data);\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","export default '00000000-0000-0000-0000-000000000000';","import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(607);\n"],"names":["root","factory","exports","module","define","amd","this","str","options","words","split","wordSeparatorsRegEx","len","length","mappedWords","Array","i","word","isCamelCase","basicCamelRegEx","test","allCapsRegEx","replace","fourOrMoreConsecutiveCapsRegEx","match","p1","offset","deCap","firstLetter","toUpperCase","toLowerCase","slice","join","endOfWord","arr","first","shift","last","pop","init","userConfig","userInitData","window","ContentstackLivePreview","livePreview","PublicLogger","warn","Promise","resolve","setOnChangeCallback","publish","setConfigFromParams","configs","params","hash","URLSearchParams","get","Object","values","subscribers","forEach","func","subscribe","callback","callbackUid","onEntryChange","onChangeCallback","config","skipInitialRender","onLiveEdit","unsubscribeOnEntryChange","entries","some","uid","getGatsbyDataFormat","sdkQuery","prefix","find","toJSON","then","result","map","res","entry","content_type_uid","catch","err","console","error","fetch","ent","getSdkVersion","version","initData","ssr","enable","runScriptsOnUpdate","cleanCslpOnProduction","editButton","exclude","position","includeByQueryParameter","stackDetails","apiKey","environment","branch","contentTypeUid","entryUid","clientUrlParams","protocol","host","port","url","stackSdk","live_preview","headers","api_key","onChange","tooltip","currentElementBesideTooltip","isHoveringOnTooltip","hideInterval","tooltipChild","singular","multiple","tooltipCurrentChild","createCslpTooltip","document","getElementById","createElement","tooltipInnerContainer","classList","add","setAttribute","id","addEventListener","toggleHoveringOnEditButton","e","removeEditButtonStyle","body","insertAdjacentElement","createSingularEditButton","scrollHandler","createMultipleEditButton","linkClickHandler","innerHTML","appendChild","updateTooltipPosition","handleInitData","addEditStyleOnHover","bind","generateRedirectUrl","handleUserChange","resolveIncomingMessage","requestDataSync","removeDataCslp","hideTooltip","debug","undefined","readyState","querySelectorAll","tag","docOrigin","location","origin","href","includes","newUrl","addLivePreviewQueryTags","event","target","targetHref","trigger","composedPath","element","nodeName","getAttribute","cslpTag","clearInterval","remove","removeEventListener","setInterval","style","top","locale","entry_uid","preview_field","String","urlHash","URL","searchParams","append","search","field","parent","postMessage","from","type","data","redirectUrl","open","hrefAttribute","assign","editEntrySearchParams","TypeError","history","forward","back","go","shouldReload","sdkVersion","currentRectOfElement","getBoundingClientRect","currentRectOfParentOfElement","parentElement","getEditButtonPosition","upperBoundOfTooltip","leftBoundOfTooltip","zIndex","left","hasAttribute","querySelector","node","removeAttribute","handleClientUrlParams","existingConfig","endsWith","isInitDataStackSdk","initObj","prototype","hasOwnProperty","call","livePreviewObject","shouldRenderEditButton","isArray","handleUserConfig","inIframe","tooltipSingularInnerHtml","tooltipMultipleInnerHtml","editCallback","singularEditButton","linkCallback","multipleEditButton","multipleExternalLinkButton","multipleEditFragment","createDocumentFragment","multipleDiv","link","docUrl","livePreviewHash","ctUid","set","cslpButtonQueryValue","currentHoveredElement","defaultPosition","cslpButtonPosition","editButtonPosition","buttonMeasurementValues","width","halfWidth","height","basicMargin","widthWithMargin","right","bottom","calculateEditButtonPosition","logEvent","logCallback","message","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","Error","uuid","byteToHex","push","toString","substr","arguments","_nodeId","_clockseq","_lastMSecs","_lastNSecs","buf","b","clockseq","seedBytes","random","msecs","Date","now","nsecs","dt","tl","tmh","n","v","parseInt","name","hashfunc","generateUUID","value","namespace","unescape","encodeURIComponent","bytes","charCodeAt","stringToBytes","DNS","getOutputLength","inputLength8","safeAdd","x","y","lsw","md5cmn","q","a","s","t","num","cnt","md5ff","c","d","md5gg","md5hh","md5ii","v35","msg","input","output","length32","hexTab","hex","charAt","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","Uint32Array","bytesToWords","rnds","f","z","ROTL","K","H","l","N","Math","ceil","M","_i","j","pow","floor","_i2","W","_t","_t2","T","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","key","o","defineProperty","enumerable","obj","prop","r","Symbol","toStringTag"],"sourceRoot":""}
@@ -1 +1 @@
1
- {"version":3,"file":"live-preview.d.ts","sourceRoot":"","sources":["../../src/live-preview.ts"],"names":[],"mappings":"AAQA,OAAO,EAIH,SAAS,EAEZ,MAAM,eAAe,CAAC;AAKvB,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B;;OAEG;IAEH,OAAO,CAAC,MAAM,CAqCZ;IAEF,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,2BAA2B,CAA4B;IAC/D,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,YAAY,CAA+C;IAEnE,OAAO,CAAC,YAAY,CAMlB;IACF,OAAO,CAAC,mBAAmB,CAAuC;gBAEtD,QAAQ,GAAE,OAAO,CAAC,SAAS,CAAgB;IA2EvD,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,mBAAmB;IAmD3B,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IAUxB,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvD;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,mBAAmB,CACf,MAAM,GAAE,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAM,GAC9D,IAAI;IAcP,OAAO,CAAC,sBAAsB;IAsD9B,OAAO,CAAC,iBAAiB,CAmCvB;IAEF,OAAO,CAAC,0BAA0B,CAEhC;IAGF,OAAO,CAAC,eAAe;IAoCvB,OAAO,CAAC,qBAAqB;IAiE7B,OAAO,CAAC,cAAc;CAQzB"}
1
+ {"version":3,"file":"live-preview.d.ts","sourceRoot":"","sources":["../../src/live-preview.ts"],"names":[],"mappings":"AAQA,OAAO,EAIH,SAAS,EAEZ,MAAM,eAAe,CAAC;AAKvB,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B;;OAEG;IAEH,OAAO,CAAC,MAAM,CAsCZ;IAEF,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,2BAA2B,CAA4B;IAC/D,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,YAAY,CAA+C;IAEnE,OAAO,CAAC,YAAY,CAMlB;IACF,OAAO,CAAC,mBAAmB,CAAuC;gBAEtD,QAAQ,GAAE,OAAO,CAAC,SAAS,CAAgB;IA2EvD,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,mBAAmB;IAqD3B,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IAUxB,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvD;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,mBAAmB,CACf,MAAM,GAAE,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAM,GAC9D,IAAI;IAcP,OAAO,CAAC,sBAAsB;IAsD9B,OAAO,CAAC,iBAAiB,CAmCvB;IAEF,OAAO,CAAC,0BAA0B,CAEhC;IAGF,OAAO,CAAC,eAAe;IAoCvB,OAAO,CAAC,qBAAqB;IAiE7B,OAAO,CAAC,cAAc;CAQzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/utils/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAO,MAAM,YAAY,EAAE,SA6B1B,CAAC"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/utils/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAO,MAAM,YAAY,EAAE,SA8B1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handleUserConfig.d.ts","sourceRoot":"","sources":["../../../src/utils/handleUserConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAiD1E,eAAO,MAAM,cAAc,aACb,QAAQ,SAAS,CAAC,GAAG,QAAQ,SAAS,CAAC,UACzC,OAAO,KAChB,IAmIF,CAAC;AAEF,eAAO,MAAM,gBAAgB;sCAtLT,OAAO,cACX,QAAQ,gBAAgB,CAAC,KACtC,IAAI;CAsLN,CAAC"}
1
+ {"version":3,"file":"handleUserConfig.d.ts","sourceRoot":"","sources":["../../../src/utils/handleUserConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAiD1E,eAAO,MAAM,cAAc,aACb,QAAQ,SAAS,CAAC,GAAG,QAAQ,SAAS,CAAC,UACzC,OAAO,KAChB,IA4IF,CAAC;AAEF,eAAO,MAAM,gBAAgB;sCA/LT,OAAO,cACX,QAAQ,gBAAgB,CAAC,KACtC,IAAI;CA+LN,CAAC"}
@@ -26,12 +26,14 @@ export declare interface IStackSdk {
26
26
  export declare interface IStackDetails {
27
27
  apiKey: string;
28
28
  environment: string;
29
+ branch: string;
29
30
  contentTypeUid: string;
30
31
  entryUid: string;
31
32
  }
32
33
  export declare interface IInitStackDetails {
33
34
  apiKey: string;
34
35
  environment: string;
36
+ branch: string;
35
37
  }
36
38
  export declare interface IConfig {
37
39
  ssr: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentstack/live-preview-utils",
3
- "version": "1.4.1",
3
+ "version": "1.4.2",
4
4
  "types": "dist/src/index.d.ts",
5
5
  "description": "Contentstack provides the Live Preview SDK to establish a communication channel between the various Contentstack SDKs and your website, transmitting live changes to the preview pane.",
6
6
  "main": "dist/index.js",