@contentstack/live-preview-utils 1.3.1 → 1.4.0
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 +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mustache.d.ts +2 -0
- package/dist/mustache.d.ts.map +1 -0
- package/dist/src/contentstack-live-preview-HOC.d.ts +14 -0
- package/dist/src/contentstack-live-preview-HOC.d.ts.map +1 -1
- package/dist/src/live-preview.d.ts +11 -0
- package/dist/src/live-preview.d.ts.map +1 -1
- package/dist/src/utils/types.d.ts +1 -0
- package/dist/src/utils/types.d.ts.map +1 -1
- package/package.json +3 -1
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
|
|
18
|
+
<script src="https://unpkg.com/@contentstack/live-preview-utils@1.3.2/dist/index.js"></script>
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
# Initializing the SDK
|
|
@@ -35,7 +35,7 @@ ContentstackLivePreview.init({
|
|
|
35
35
|
});
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Alternatively, if you want to initialize the SDK directly inside the HTML tag, use the ContentstackLivePreview.init() method as follows:
|
|
39
39
|
|
|
40
40
|
```html
|
|
41
41
|
<script>
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ContentstackLivePreview=t():e.ContentstackLivePreview=t()}(this,(function(){return(()=>{var e={704:e=>{e.exports=function(e,a){for(var l=e.split(t),s=l.length,c=new Array(s),u=0;u<s;u++){var d=l[u];if(""!==d){var p=n.test(d)&&!r.test(d);p&&(d=d.replace(i,(function(e,t,n){return o(e,d.length-n-e.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 t=/[\s\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]+/,n=/^[a-z\u00E0-\u00FCA-Z\u00C0-\u00DC][\d|a-z\u00E0-\u00FCA-Z\u00C0-\u00DC]*$/,i=/([A-Z\u00C0-\u00DC]{4,})/g,r=/^[A-Z\u00C0-\u00DC]+$/;function o(e,t){var n=e.split(""),i=n.shift().toUpperCase(),r=t?n.pop().toLowerCase():n.pop();return i+n.join("").toLowerCase()+r}},279:(e,t,n)=>{"use strict";n.r(t)},492:(e,t,n)=>{"use strict";var i;n.r(t),n.d(t,{default:()=>p});var r="undefined"==typeof document?void 0:document,o=!!r&&"content"in r.createElement("template"),a=!!r&&r.createRange&&"createContextualFragment"in r.createRange();function l(e,t){var n,i,r=e.nodeName,o=t.nodeName;return r===o||(n=r.charCodeAt(0),i=o.charCodeAt(0),n<=90&&i>=97?r===o.toUpperCase():i<=90&&n>=97&&o===r.toUpperCase())}function s(e,t,n){e[n]!==t[n]&&(e[n]=t[n],e[n]?e.setAttribute(n,""):e.removeAttribute(n))}var c={OPTION:function(e,t){var n=e.parentNode;if(n){var i=n.nodeName.toUpperCase();"OPTGROUP"===i&&(i=(n=n.parentNode)&&n.nodeName.toUpperCase()),"SELECT"!==i||n.hasAttribute("multiple")||(e.hasAttribute("selected")&&!t.selected&&(e.setAttribute("selected","selected"),e.removeAttribute("selected")),n.selectedIndex=-1)}s(e,t,"selected")},INPUT:function(e,t){s(e,t,"checked"),s(e,t,"disabled"),e.value!==t.value&&(e.value=t.value),t.hasAttribute("value")||e.removeAttribute("value")},TEXTAREA:function(e,t){var n=t.value;e.value!==n&&(e.value=n);var i=e.firstChild;if(i){var r=i.nodeValue;if(r==n||!n&&r==e.placeholder)return;i.nodeValue=n}},SELECT:function(e,t){if(!t.hasAttribute("multiple")){for(var n,i,r=-1,o=0,a=e.firstChild;a;)if("OPTGROUP"===(i=a.nodeName&&a.nodeName.toUpperCase()))a=(n=a).firstChild;else{if("OPTION"===i){if(a.hasAttribute("selected")){r=o;break}o++}!(a=a.nextSibling)&&n&&(a=n.nextSibling,n=null)}e.selectedIndex=r}}};function u(){}function d(e){if(e)return e.getAttribute&&e.getAttribute("id")||e.id}const p=function(e,t,n){if(n||(n={}),"string"==typeof t)if("#document"===e.nodeName||"HTML"===e.nodeName||"BODY"===e.nodeName){var s=t;(t=r.createElement("html")).innerHTML=s}else p=(p=t).trim(),t=o?function(e){var t=r.createElement("template");return t.innerHTML=e,t.content.childNodes[0]}(p):a?function(e){return i||(i=r.createRange()).selectNode(r.body),i.createContextualFragment(e).childNodes[0]}(p):function(e){var t=r.createElement("body");return t.innerHTML=e,t.childNodes[0]}(p);var p,v=n.getNodeKey||d,f=n.onBeforeNodeAdded||u,h=n.onNodeAdded||u,g=n.onBeforeElUpdated||u,m=n.onElUpdated||u,y=n.onBeforeNodeDiscarded||u,b=n.onNodeDiscarded||u,w=n.onBeforeElChildrenUpdated||u,C=!0===n.childrenOnly,P=Object.create(null),k=[];function L(e){k.push(e)}function B(e,t){if(1===e.nodeType)for(var n=e.firstChild;n;){var i=void 0;t&&(i=v(n))?L(i):(b(n),n.firstChild&&B(n,t)),n=n.nextSibling}}function S(e,t,n){!1!==y(e)&&(t&&t.removeChild(e),b(e),B(e,n))}function T(e){h(e);for(var t=e.firstChild;t;){var n=t.nextSibling,i=v(t);if(i){var r=P[i];r&&l(t,r)?(t.parentNode.replaceChild(r,t),_(r,t)):T(t)}else T(t);t=n}}function _(e,t,n){var i=v(t);if(i&&delete P[i],!n){if(!1===g(e,t))return;if(function(e,t){var n,i,r,o,a=t.attributes;if(11!==t.nodeType&&11!==e.nodeType){for(var l=a.length-1;l>=0;l--)i=(n=a[l]).name,r=n.namespaceURI,o=n.value,r?(i=n.localName||i,e.getAttributeNS(r,i)!==o&&("xmlns"===n.prefix&&(i=n.name),e.setAttributeNS(r,i,o))):e.getAttribute(i)!==o&&e.setAttribute(i,o);for(var s=e.attributes,c=s.length-1;c>=0;c--)i=(n=s[c]).name,(r=n.namespaceURI)?(i=n.localName||i,t.hasAttributeNS(r,i)||e.removeAttributeNS(r,i)):t.hasAttribute(i)||e.removeAttribute(i)}}(e,t),m(e),!1===w(e,t))return}"TEXTAREA"!==e.nodeName?function(e,t){var n,i,o,a,s,u=t.firstChild,d=e.firstChild;e:for(;u;){for(a=u.nextSibling,n=v(u);d;){if(o=d.nextSibling,u.isSameNode&&u.isSameNode(d)){u=a,d=o;continue e}i=v(d);var p=d.nodeType,h=void 0;if(p===u.nodeType&&(1===p?(n?n!==i&&((s=P[n])?o===s?h=!1:(e.insertBefore(s,d),i?L(i):S(d,e,!0),d=s):h=!1):i&&(h=!1),(h=!1!==h&&l(d,u))&&_(d,u)):3!==p&&8!=p||(h=!0,d.nodeValue!==u.nodeValue&&(d.nodeValue=u.nodeValue))),h){u=a,d=o;continue e}i?L(i):S(d,e,!0),d=o}if(n&&(s=P[n])&&l(s,u))e.appendChild(s),_(s,u);else{var g=f(u);!1!==g&&(g&&(u=g),u.actualize&&(u=u.actualize(e.ownerDocument||r)),e.appendChild(u),T(u))}u=a,d=o}!function(e,t,n){for(;t;){var i=t.nextSibling;(n=v(t))?L(n):S(t,e,!0),t=i}}(e,d,i);var m=c[e.nodeName];m&&m(e,t)}(e,t):c.TEXTAREA(e,t)}!function e(t){if(1===t.nodeType||11===t.nodeType)for(var n=t.firstChild;n;){var i=v(n);i&&(P[i]=n),e(n),n=n.nextSibling}}(e);var E,O,U=e,x=U.nodeType,A=t.nodeType;if(!C)if(1===x)1===A?l(e,t)||(b(e),U=function(e,t){for(var n=e.firstChild;n;){var i=n.nextSibling;t.appendChild(n),n=i}return t}(e,(E=t.nodeName,(O=t.namespaceURI)&&"http://www.w3.org/1999/xhtml"!==O?r.createElementNS(O,E):r.createElement(E)))):U=t;else if(3===x||8===x){if(A===x)return U.nodeValue!==t.nodeValue&&(U.nodeValue=t.nodeValue),U;U=t}if(U===t)b(e);else{if(t.isSameNode&&t.isSameNode(U))return;if(_(U,t,C),k)for(var D=0,M=k.length;D<M;D++){var I=P[k[D]];I&&S(I,I.parentNode,!1)}}return!C&&U!==e&&e.parentNode&&(U.actualize&&(U=U.actualize(e.ownerDocument||r)),e.parentNode.replaceChild(U,e)),U}},135:function(e,t,n){"use strict";var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{s(i.next(e))}catch(e){o(e)}}function l(e){try{s(i.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,l)}s((i=i.apply(e,t||[])).next())}))},r=this&&this.__generator||function(e,t){var n,i,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(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(a=0)),a;)try{if(n=1,i&&(r=2&l[0]?i.return:l[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,l[1])).done)return r;switch(i=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++,i=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=t.call(e,a)}catch(e){l=[6,e],i=0}finally{n=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(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ContentstackLivePreview=void 0;var a=n(614),l=o(n(704)),s=o(n(147)),c=o(n(922)),u=n(334),d=n(895),p=function(){function e(){}return e.init=function(t){if(void 0===t&&(t=u.userInitData),"undefined"!=typeof window)return e.livePreview?(d.PublicLogger.warn("You have already initialized the Live Preview SDK. So, any subsequent initialization returns the existing SDK instance."),Promise.resolve(e.livePreview)):(e.livePreview=new c.default(t),e.livePreview.setOnChangeCallback(e.publish),Promise.resolve(e.livePreview));e.userConfig=t},e.publish=function(){Object.values(e.subscribers).forEach((function(e){e()}))},e.subscribe=function(t){var n=(0,a.v4)();return e.subscribers[n]=t,n},e.onEntryChange=function(t,n){var i=(n||{}).skipInitialRender,r=void 0!==i&&i;e.userConfig&&(e.livePreview=new c.default(e.userConfig),e.livePreview.setOnChangeCallback(e.publish),e.userConfig=null);var o=e.subscribe(t);return r||t(),o},e.onLiveEdit=function(t){return e.onEntryChange(t,{skipInitialRender:!0})},e.unsubscribeOnEntryChange=function(t){"string"==typeof t?(e.subscribers[t]||d.PublicLogger.warn("No subscriber found with the given id."),delete e.subscribers[t]):"function"==typeof t&&(Object.entries(e.subscribers).some((function(n){var i=n[0];return n[1]===t&&(delete e.subscribers[i],!0)}))||d.PublicLogger.warn("No subscriber found with the given callback."))},e.getGatsbyDataFormat=function(e,t){return i(this,void 0,void 0,(function(){return r(this,(function(n){return"function"==typeof e.find?[2,e.toJSON().find().then((function(n){return n.map((function(n){return n.map((function(n){var i;return(i={})[(0,l.default)("".concat(t,"_").concat(e.content_type_uid))]=n,i}))}))})).catch((function(e){console.error(e)}))]:"function"==typeof e.fetch?[2,e.toJSON().fetch().then((function(n){var i;return(i={})[(0,l.default)("".concat(t,"_").concat(e.content_type_uid))]=n,i})).catch((function(e){console.error(e)}))]:[2]}))}))},e.getSdkVersion=function(){return s.default.version},e.livePreview=null,e.userConfig=null,e.subscribers={},e}();t.ContentstackLivePreview=p,t.default=p,e.exports=p},607:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ContentstackLivePreview=void 0;var r=i(n(135));n(279),t.ContentstackLivePreview=r.default,t.default=t.ContentstackLivePreview,e.exports=t.ContentstackLivePreview},922:function(e,t,n){"use strict";var i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},i.apply(this,arguments)},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=n(928),a=n(895),l=n(383),s=n(334),c=r(n(147)),u=n(63),d=function(){function e(e){void 0===e&&(e=s.userInitData);var t=this;this.config={ssr:!0,enable:!0,runScriptsOnUpdate:!1,cleanCslpOnProduction:!0,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.tooltipChild={singular:null,multiple:null},this.tooltipCurrentChild="singular",this.createCslpTooltip=function(){if(!document.getElementById("cslp-tooltip")&&t.config.editButton.enable){var e=document.createElement("button");e.classList.add("cslp-tooltip"),e.setAttribute("data-test-id","cs-cslp-tooltip"),e.id="cslp-tooltip",window.document.body.insertAdjacentElement("beforeend",e),t.tooltipChild.singular=(0,o.createSingularEditButton)(t.scrollHandler),t.tooltipChild.multiple=(0,o.createMultipleEditButton)(t.scrollHandler,t.linkClickHandler),e.innerHTML="",e.appendChild(t.tooltipChild.singular),t.tooltip=e}t.updateTooltipPosition()},(0,l.handleInitData)(e,this.config),this.addEditStyleOnHover=this.addEditStyleOnHover.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),e.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(e){document.querySelectorAll("a").forEach((function(e){var t=document.location.origin;if(e.href&&e.href.includes(t)){var n=(0,o.addLivePreviewQueryTags)(e.href);e.href=n}}))})),window.addEventListener("click",(function(e){var t=e.target,n=t.href,i=document.location.origin;if(n&&n.includes(i)&&!n.includes("live_preview")){var r=(0,o.addLivePreviewQueryTags)(t.href);e.target.href=r||t.href}})))):this.config.cleanCslpOnProduction&&this.removeDataCslp()}return e.prototype.addEditStyleOnHover=function(e){for(var t,n,i,r=!0,o=0,a=e.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.currentElementBesideTooltip&&this.currentElementBesideTooltip.classList.remove("cslp-edit-mode"),l.classList.add("cslp-edit-mode"),this.currentElementBesideTooltip=l,this.updateTooltipPosition()&&(null===(t=this.tooltip)||void 0===t||t.setAttribute("current-data-cslp",s),null===(n=this.tooltip)||void 0===n||n.setAttribute("current-href",null!==(i=l.getAttribute("href"))&&void 0!==i?i:"")),r=!1):r||l.classList.remove("cslp-edit-mode")}}},e.prototype.generateRedirectUrl=function(e,t,n,i){if(void 0===t&&(t="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="!/stack/".concat(this.config.stackDetails.apiKey,"/content-type/").concat(e,"/").concat(null!=t?t:"en-us","/entry/").concat(n,"/edit"),c=new URL("".concat(r,"://").concat(o));return c.port=a,c.hash=s,c.searchParams.append("preview-field",i),c.searchParams.append("preview-locale",null!=t?t:"en-us"),c.searchParams.append("preview-environment",l),"".concat(c.origin,"/").concat(c.hash).concat(c.search)},e.prototype.scrollHandler=function(){if(this.tooltip){var e=this.tooltip.getAttribute("current-data-cslp");if(e){var t=e.split("."),n=t[0],i=t[1],r=t[2],o=t.slice(3);if(window.location!==window.parent.location)window.parent.postMessage({from:"live-preview",type:"scroll",data:{field:o.join("."),content_type_uid:n,entry_uid:i,locale:r}},"*");else try{var l=this.generateRedirectUrl(n,r,i,o.join("."));window.open(l,"_blank")}catch(e){a.PublicLogger.error(e)}}}},e.prototype.linkClickHandler=function(){if(this.tooltip){var e=this.tooltip.getAttribute("current-href");e&&window.location.assign(e)}},e.prototype.handleUserChange=function(e){this.config.stackSdk.live_preview=i(i(i({},this.config.stackSdk.live_preview),e),{live_preview:e.hash}),this.config.onChange()},e.prototype.setOnChangeCallback=function(e){this.config.onChange=e},e.prototype.resolveIncomingMessage=function(e){var t=this;if("object"==typeof e.data&&"live-preview"===e.data.from)switch(e.data.type){case"client-data-send":var n=this.config.stackDetails,i=n.contentTypeUid,r=n.entryUid,o=e.data.data.hash;if(this.config.ssr){var a=new URL(window.location.href);a.searchParams.append("live_preview",o),a.searchParams.append("content_type_uid",i),a.searchParams.append("entry_uid",r),fetch(a.toString(),{method:"GET"}).then((function(e){return e.text()})).then((function(e){(0,u.updateDocumentBody)(document,e,{onPostOperation:t.createCslpTooltip,shouldReRunScripts:t.config.runScriptsOnUpdate})}))}else this.handleUserChange({content_type_uid:i,entry_uid:r,hash:o});break;case"init-ack":var l=e.data.data;i=l.contentTypeUid,r=l.entryUid,this.config.stackDetails.contentTypeUid=i,this.config.stackDetails.entryUid=r;break;case"history":switch(e.data.data.type){case"forward":window.history.forward();break;case"backward":window.history.back();break;case"reload":window.history.go()}break;case"document-body-post-scripts-loaded":var s=e.data.data.body;(0,u.replaceDocumentBody)(s,this.createCslpTooltip)}},e.prototype.requestDataSync=function(){this.handleUserChange({live_preview:"init"}),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)},e.prototype.updateTooltipPosition=function(){var e;if(!this.currentElementBesideTooltip||!this.tooltip)return!1;var t=this.currentElementBesideTooltip.getBoundingClientRect(),n=null===(e=this.tooltip.parentElement)||void 0===e?void 0:e.getBoundingClientRect();if(t&&n){var i=(0,o.getEditButtonPosition)(this.currentElementBesideTooltip,this.config.editButton.position),r=i.upperBoundOfTooltip,a=i.leftBoundOfTooltip;return r<0&&(r=t.top<0?t.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&&(this.currentElementBesideTooltip.hasAttribute("href")?"multiple"!==this.tooltipCurrentChild&&(this.tooltip.innerHTML="",this.tooltip.appendChild(this.tooltipChild.multiple),this.tooltipCurrentChild="multiple"):"singular"!==this.tooltipCurrentChild&&(this.tooltip.innerHTML="",this.tooltip.appendChild(this.tooltipChild.singular),this.tooltipCurrentChild="singular")),!0}return!1},e.prototype.removeDataCslp=function(){document.querySelectorAll("[data-cslp]").forEach((function(e){e.removeAttribute("data-cslp")}))},e}();t.default=d},334:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.userInitData=void 0,t.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:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handleUserConfig=t.handleInitData=void 0;var i=n(928),r=n(895),o=function(e,t){var n,i,r;if(e.clientUrlParams.host=null!==(n=t.host)&&void 0!==n?n:e.clientUrlParams.host,e.clientUrlParams.protocol=null!==(i=t.protocol)&&void 0!==i?i:e.clientUrlParams.protocol,e.clientUrlParams.port=null!==(r=t.port)&&void 0!==r?r:e.clientUrlParams.port,void 0!==t.protocol&&void 0===t.port)switch(t.protocol){case"http":e.clientUrlParams.port=80;break;case"https":e.clientUrlParams.port=443}var o=e.clientUrlParams.host;o.endsWith("/")&&(o=o.slice(0,-1),e.clientUrlParams.host=o),e.clientUrlParams.url="".concat(e.clientUrlParams.protocol,"://").concat(e.clientUrlParams.host,":").concat(e.clientUrlParams.port)};function a(e){return Object.prototype.hasOwnProperty.call(e,"cachePolicy")}t.handleInitData=function(e,t){var n,l,s,c,u,d,p,v,f,h,g,m,y,b,w,C,P,k,L,B,S,T,_,E,O,U,x,A,D,M,I,N,H,R,j,V,K,Z,q,Q,z,F,W,G,Y,$,J,X,ee,te,ne,ie,re,oe,ae,le,se,ce;if(a(e)){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 ue=(null==e?void 0:e.live_preview)||{};t.ssr=!1,t.runScriptsOnUpdate=null!==(n=ue.runScriptsOnUpdate)&&void 0!==n?n:t.runScriptsOnUpdate,t.enable=null!==(l=ue.enable)&&void 0!==l?l:t.enable,t.cleanCslpOnProduction=null!==(s=ue.cleanCslpOnProduction)&&void 0!==s?s:t.cleanCslpOnProduction,t.editButton={enable:(0,i.shouldRenderEditButton)(null!==(c=ue.editButton)&&void 0!==c?c:t.editButton),exclude:Array.isArray(null===(u=ue.editButton)||void 0===u?void 0:u.exclude)&&(null===(d=ue.editButton)||void 0===d?void 0:d.exclude)?null===(p=ue.editButton)||void 0===p?void 0:p.exclude:null!==(v=t.editButton.exclude)&&void 0!==v?v:[],position:null!==(g=null!==(h=null===(f=ue.editButton)||void 0===f?void 0:f.position)&&void 0!==h?h:t.editButton.position)&&void 0!==g?g:"top",includeByQueryParameter:null===(b=null!==(y=null===(m=ue.editButton)||void 0===m?void 0:m.includeByQueryParameter)&&void 0!==y?y:t.editButton.includeByQueryParameter)||void 0===b||b},t.stackSdk=e,Object.prototype.hasOwnProperty.call(e.headers,"api_key")&&e.headers.api_key&&(t.stackDetails.apiKey=e.headers.api_key),Object.prototype.hasOwnProperty.call(e,"environment")&&(t.stackDetails.environment=e.environment),o(t,null!==(w=ue.clientUrlParams)&&void 0!==w?w:t.clientUrlParams)}else if(!a(e)){var de=e.stackSdk||t.stackSdk;t.enable=null!==(k=null!==(C=e.enable)&&void 0!==C?C:null===(P=de.live_preview)||void 0===P?void 0:P.enable)&&void 0!==k?k:t.enable,t.ssr=null===(T=null!==(S=null!==(L=e.ssr)&&void 0!==L?L:null===(B=de.live_preview)||void 0===B?void 0:B.ssr)&&void 0!==S?S:"object"!=typeof e.stackSdk)||void 0===T||T,t.runScriptsOnUpdate=null!==(O=null!==(_=e.runScriptsOnUpdate)&&void 0!==_?_:null===(E=de.live_preview)||void 0===E?void 0:E.runScriptsOnUpdate)&&void 0!==O?O:t.runScriptsOnUpdate,t.stackSdk=de,t.cleanCslpOnProduction=null!==(A=null!==(U=e.cleanCslpOnProduction)&&void 0!==U?U:null===(x=de.live_preview)||void 0===x?void 0:x.cleanCslpOnProduction)&&void 0!==A?A:t.cleanCslpOnProduction,t.editButton={enable:(0,i.shouldRenderEditButton)(null!==(I=null!==(D=e.editButton)&&void 0!==D?D:null===(M=de.live_preview)||void 0===M?void 0:M.editButton)&&void 0!==I?I:t.editButton),exclude:Array.isArray(null===(N=e.editButton)||void 0===N?void 0:N.exclude)&&(null===(H=e.editButton)||void 0===H?void 0:H.exclude)?null===(R=e.editButton)||void 0===R?void 0:R.exclude:Array.isArray(null===(j=de.live_preview)||void 0===j?void 0:j.exclude)&&(null===(V=de.live_preview)||void 0===V?void 0:V.exclude)?null===(K=de.live_preview)||void 0===K?void 0:K.exclude:null!==(Z=t.editButton.exclude)&&void 0!==Z?Z:[],position:null!==(W=null!==(F=null!==(Q=null===(q=e.editButton)||void 0===q?void 0:q.position)&&void 0!==Q?Q:null===(z=de.live_preview)||void 0===z?void 0:z.position)&&void 0!==F?F:t.editButton.position)&&void 0!==W?W:"top",includeByQueryParameter:null===(X=null!==(J=null!==(Y=null===(G=e.editButton)||void 0===G?void 0:G.includeByQueryParameter)&&void 0!==Y?Y:null===($=de.live_preview)||void 0===$?void 0:$.includeByQueryParameter)&&void 0!==J?J:t.editButton.includeByQueryParameter)||void 0===X||X},t.stackDetails.apiKey=null!==(ie=null!==(te=null===(ee=e.stackDetails)||void 0===ee?void 0:ee.apiKey)&&void 0!==te?te:null===(ne=de.headers)||void 0===ne?void 0:ne.api_key)&&void 0!==ie?ie:t.stackDetails.apiKey,t.stackDetails.environment=null!==(ae=null!==(oe=null===(re=e.stackDetails)||void 0===re?void 0:re.environment)&&void 0!==oe?oe:de.environment)&&void 0!==ae?ae:t.stackDetails.environment,o(t,null!==(ce=null!==(le=e.clientUrlParams)&&void 0!==le?le:null===(se=de.live_preview)||void 0===se?void 0:se.clientUrlParams)&&void 0!==ce?ce:t.clientUrlParams)}},t.handleUserConfig={clientUrlParams:o}},928:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getEditButtonPosition=t.shouldRenderEditButton=t.addLivePreviewQueryTags=t.createMultipleEditButton=t.createSingularEditButton=t.tooltipMultipleInnerHtml=t.tooltipSingularInnerHtml=t.hasWindow=void 0;var i=n(895);function r(){return window.location!==window.parent.location}t.hasWindow=function(){return"undefined"!=typeof window},t.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>',t.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>',t.createSingularEditButton=function(e){var t=document.createElement("div");return t.classList.add("cslp-tooltip-child","singular"),t.setAttribute("data-test-id","cslp-singular-edit-button"),t.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',t.addEventListener("click",e),t},t.createMultipleEditButton=function(e,t){var n=document.createElement("div");n.classList.add("cslp-tooltip-child"),n.setAttribute("data-title","Edit"),n.setAttribute("data-test-id","cslp-multiple-edit-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="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.addEventListener("click",e);var i=document.createElement("div");i.classList.add("cslp-tooltip-child"),i.setAttribute("data-title","Go to link"),i.setAttribute("data-test-id","cslp-multiple-external-link-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="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>',i.addEventListener("click",t);var r=document.createDocumentFragment();r.appendChild(n),r.appendChild(i);var o=document.createElement("div");return o.appendChild(r),o.classList.add("multiple"),o},t.addLivePreviewQueryTags=function(e){try{var t=new URL(document.location.href),n=new URL(e),r=t.searchParams.get("live_preview"),o=t.searchParams.get("content_type_uid"),a=t.searchParams.get("entry_uid");return r&&o&&a&&(n.searchParams.set("live_preview",r),n.searchParams.set("content_type_uid",o),n.searchParams.set("entry_uid",a)),n.href}catch(t){return i.PublicLogger.error("Error while adding live preview to URL"),e}},t.shouldRenderEditButton=function(e){var t,n;if(!e.enable)return void 0===e.enable&&i.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!==e.includeByQueryParameter)return"false"!==o}catch(e){i.PublicLogger.error(e)}return!(r()&&(null===(t=e.exclude)||void 0===t?void 0:t.find((function(e){return"insideLivePreviewPortal"===e})))||!r()&&(null===(n=e.exclude)||void 0===n?void 0:n.find((function(e){return"outsideLivePreviewPortal"===e}))))},t.getEditButtonPosition=function(e,t){if(!e)return{upperBoundOfTooltip:0,leftBoundOfTooltip:0};var n=e.getAttribute("data-cslp-button-position");return function(e,t){var n={upperBoundOfTooltip:0,leftBoundOfTooltip:0},r=e.getBoundingClientRect();try{var o={width:72,halfWidth:36,height:40,basicMargin:5,widthWithMargin:77};switch(t){case"top-center":n.upperBoundOfTooltip=r.top-o.height,n.leftBoundOfTooltip=r.width/2-o.halfWidth+r.left;break;case"top-right":n.upperBoundOfTooltip=r.top-o.height,n.leftBoundOfTooltip=r.right-o.width;break;case"right":n.upperBoundOfTooltip=r.top-o.basicMargin,n.leftBoundOfTooltip=r.right+o.basicMargin;break;case"bottom":case"bottom-left":n.upperBoundOfTooltip=r.bottom+o.basicMargin,n.leftBoundOfTooltip=r.left-o.basicMargin;break;case"bottom-center":n.upperBoundOfTooltip=r.bottom+o.basicMargin,n.leftBoundOfTooltip=r.width/2-o.halfWidth+r.left;break;case"bottom-right":n.upperBoundOfTooltip=r.bottom+o.basicMargin,n.leftBoundOfTooltip=r.right-o.width;break;case"left":n.upperBoundOfTooltip=r.top-o.basicMargin,n.leftBoundOfTooltip=r.left-o.widthWithMargin;break;default:n.upperBoundOfTooltip=r.top-o.height,n.leftBoundOfTooltip=r.left-o.basicMargin}return n}catch(e){return i.PublicLogger.error(e),n}}(e,n||t||"top")}},895:function(e,t){"use strict";var n=this&&this.__spreadArray||function(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))};Object.defineProperty(t,"__esModule",{value:!0}),t.PublicLogger=void 0;var i=function(){function e(){}return e.logEvent=function(e,t){e.apply(void 0,n(["Live_Preview_SDK:"],t,!1))},e.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logEvent(console.error,e)},e.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logEvent(console.warn,e)},e.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logEvent(console.debug,e)},e}();t.PublicLogger=i},63:function(e,t,n){"use strict";var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{s(i.next(e))}catch(e){o(e)}}function l(e){try{s(i.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,l)}s((i=i.apply(e,t||[])).next())}))},r=this&&this.__generator||function(e,t){var n,i,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(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(a=0)),a;)try{if(n=1,i&&(r=2&l[0]?i.return:l[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,l[1])).done)return r;switch(i=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++,i=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=t.call(e,a)}catch(e){l=[6,e],i=0}finally{n=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(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.replaceDocumentBody=t.updateDocumentBody=t.rerunScriptsInDocument=void 0;var a=o(n(492));function l(){var e=document.querySelectorAll("script"),t=e.length,n=0;function i(){n++,0==--t&&window.parent.postMessage({from:"live-preview",type:"document-body-post-scripts-loaded",data:{body:document.body.outerHTML}},"*"),r()}function r(){if(n<e.length){var t=e[n],r=t.parentNode,o=document.createElement("script");t.src?(o.onerror=i,o.onload=i,o.src=t.src):(o.text=t.text,i()),null==r||r.replaceChild(o,t)}}e.length&&r()}function s(e,t){var n=(new DOMParser).parseFromString(e,"text/html");(0,a.default)(document.body,n.body),t&&t()}t.rerunScriptsInDocument=l,t.updateDocumentBody=function(e,t,n){return i(this,void 0,void 0,(function(){var i,o,a,c,u;return r(this,(function(r){return i=n.shouldReRunScripts,o=n.onPostOperation,i?(e.querySelectorAll("iframe#contentstack-live-preview-iframe").forEach((function(e){e.remove()})),(a=e.createElement("iframe")).style.display="none",a.id="contentstack-live-preview-iframe",c=/(<\s*\/\s*script\s*>)|(`)/gm,u=t.replace(c,(function(e,t,n){return n?"\\`":"<\\/script>"})),a.srcdoc="\n <head>\n <script>\n function prepareIframeForScriptRerun() {\n const responseHTML = `".concat(u,'`;\n\n const html = document.getElementsByTagName("html").item(0);\n\n const rerunScriptsInDocument = ').concat(l,"\n\n if (html) {\n html.innerHTML = responseHTML;\n rerunScriptsInDocument();\n }\n }\n prepareIframeForScriptRerun()\n <\/script>\n </head>"),e.body.appendChild(a)):s(t,o),[2]}))}))},t.replaceDocumentBody=s},614:(e,t,n)=>{"use strict";var i;n.r(t),n.d(t,{NIL:()=>O,parse:()=>g,stringify:()=>u,v1:()=>h,v3:()=>B,v4:()=>S,v5:()=>E,validate:()=>l,version:()=>U});var r=new Uint8Array(16);function o(){if(!i&&!(i="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 i(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(e){return"string"==typeof e&&a.test(e)};for(var s=[],c=0;c<256;++c)s.push((c+256).toString(16).substr(1));const u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase();if(!l(n))throw TypeError("Stringified UUID is invalid");return n};var d,p,v=0,f=0;const h=function(e,t,n){var i=t&&n||0,r=t||new Array(16),a=(e=e||{}).node||d,l=void 0!==e.clockseq?e.clockseq:p;if(null==a||null==l){var s=e.random||(e.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!==e.msecs?e.msecs:Date.now(),h=void 0!==e.nsecs?e.nsecs:f+1,g=c-v+(h-f)/1e4;if(g<0&&void 0===e.clockseq&&(l=l+1&16383),(g<0||c>v)&&void 0===e.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=c,f=h,p=l;var m=(1e4*(268435455&(c+=122192928e5))+h)%4294967296;r[i++]=m>>>24&255,r[i++]=m>>>16&255,r[i++]=m>>>8&255,r[i++]=255&m;var y=c/4294967296*1e4&268435455;r[i++]=y>>>8&255,r[i++]=255&y,r[i++]=y>>>24&15|16,r[i++]=y>>>16&255,r[i++]=l>>>8|128,r[i++]=255&l;for(var b=0;b<6;++b)r[i+b]=a[b];return t||u(r)},g=function(e){if(!l(e))throw TypeError("Invalid UUID");var t,n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n};function m(e,t,n){function i(e,i,r,o){if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var t=[],n=0;n<e.length;++n)t.push(e.charCodeAt(n));return t}(e)),"string"==typeof i&&(i=g(i)),16!==i.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var a=new Uint8Array(16+e.length);if(a.set(i),a.set(e,i.length),(a=n(a))[6]=15&a[6]|t,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{i.name=e}catch(e){}return i.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",i.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",i}function y(e){return 14+(e+64>>>9<<4)+1}function b(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function w(e,t,n,i,r,o){return b((a=b(b(t,e),b(i,o)))<<(l=r)|a>>>32-l,n);var a,l}function C(e,t,n,i,r,o,a){return w(t&n|~t&i,e,t,r,o,a)}function P(e,t,n,i,r,o,a){return w(t&i|n&~i,e,t,r,o,a)}function k(e,t,n,i,r,o,a){return w(t^n^i,e,t,r,o,a)}function L(e,t,n,i,r,o,a){return w(n^(t|~i),e,t,r,o,a)}const B=m("v3",48,(function(e){if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(var n=0;n<t.length;++n)e[n]=t.charCodeAt(n)}return function(e){for(var t=[],n=32*e.length,i="0123456789abcdef",r=0;r<n;r+=8){var o=e[r>>5]>>>r%32&255,a=parseInt(i.charAt(o>>>4&15)+i.charAt(15&o),16);t.push(a)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[y(t)-1]=t;for(var n=1732584193,i=-271733879,r=-1732584194,o=271733878,a=0;a<e.length;a+=16){var l=n,s=i,c=r,u=o;n=C(n,i,r,o,e[a],7,-680876936),o=C(o,n,i,r,e[a+1],12,-389564586),r=C(r,o,n,i,e[a+2],17,606105819),i=C(i,r,o,n,e[a+3],22,-1044525330),n=C(n,i,r,o,e[a+4],7,-176418897),o=C(o,n,i,r,e[a+5],12,1200080426),r=C(r,o,n,i,e[a+6],17,-1473231341),i=C(i,r,o,n,e[a+7],22,-45705983),n=C(n,i,r,o,e[a+8],7,1770035416),o=C(o,n,i,r,e[a+9],12,-1958414417),r=C(r,o,n,i,e[a+10],17,-42063),i=C(i,r,o,n,e[a+11],22,-1990404162),n=C(n,i,r,o,e[a+12],7,1804603682),o=C(o,n,i,r,e[a+13],12,-40341101),r=C(r,o,n,i,e[a+14],17,-1502002290),n=P(n,i=C(i,r,o,n,e[a+15],22,1236535329),r,o,e[a+1],5,-165796510),o=P(o,n,i,r,e[a+6],9,-1069501632),r=P(r,o,n,i,e[a+11],14,643717713),i=P(i,r,o,n,e[a],20,-373897302),n=P(n,i,r,o,e[a+5],5,-701558691),o=P(o,n,i,r,e[a+10],9,38016083),r=P(r,o,n,i,e[a+15],14,-660478335),i=P(i,r,o,n,e[a+4],20,-405537848),n=P(n,i,r,o,e[a+9],5,568446438),o=P(o,n,i,r,e[a+14],9,-1019803690),r=P(r,o,n,i,e[a+3],14,-187363961),i=P(i,r,o,n,e[a+8],20,1163531501),n=P(n,i,r,o,e[a+13],5,-1444681467),o=P(o,n,i,r,e[a+2],9,-51403784),r=P(r,o,n,i,e[a+7],14,1735328473),n=k(n,i=P(i,r,o,n,e[a+12],20,-1926607734),r,o,e[a+5],4,-378558),o=k(o,n,i,r,e[a+8],11,-2022574463),r=k(r,o,n,i,e[a+11],16,1839030562),i=k(i,r,o,n,e[a+14],23,-35309556),n=k(n,i,r,o,e[a+1],4,-1530992060),o=k(o,n,i,r,e[a+4],11,1272893353),r=k(r,o,n,i,e[a+7],16,-155497632),i=k(i,r,o,n,e[a+10],23,-1094730640),n=k(n,i,r,o,e[a+13],4,681279174),o=k(o,n,i,r,e[a],11,-358537222),r=k(r,o,n,i,e[a+3],16,-722521979),i=k(i,r,o,n,e[a+6],23,76029189),n=k(n,i,r,o,e[a+9],4,-640364487),o=k(o,n,i,r,e[a+12],11,-421815835),r=k(r,o,n,i,e[a+15],16,530742520),n=L(n,i=k(i,r,o,n,e[a+2],23,-995338651),r,o,e[a],6,-198630844),o=L(o,n,i,r,e[a+7],10,1126891415),r=L(r,o,n,i,e[a+14],15,-1416354905),i=L(i,r,o,n,e[a+5],21,-57434055),n=L(n,i,r,o,e[a+12],6,1700485571),o=L(o,n,i,r,e[a+3],10,-1894986606),r=L(r,o,n,i,e[a+10],15,-1051523),i=L(i,r,o,n,e[a+1],21,-2054922799),n=L(n,i,r,o,e[a+8],6,1873313359),o=L(o,n,i,r,e[a+15],10,-30611744),r=L(r,o,n,i,e[a+6],15,-1560198380),i=L(i,r,o,n,e[a+13],21,1309151649),n=L(n,i,r,o,e[a+4],6,-145523070),o=L(o,n,i,r,e[a+11],10,-1120210379),r=L(r,o,n,i,e[a+2],15,718787259),i=L(i,r,o,n,e[a+9],21,-343485551),n=b(n,l),i=b(i,s),r=b(r,c),o=b(o,u)}return[n,i,r,o]}(function(e){if(0===e.length)return[];for(var t=8*e.length,n=new Uint32Array(y(t)),i=0;i<t;i+=8)n[i>>5]|=(255&e[i/8])<<i%32;return n}(e),8*e.length))})),S=function(e,t,n){var i=(e=e||{}).random||(e.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t){n=n||0;for(var r=0;r<16;++r)t[n+r]=i[r];return t}return u(i)};function T(e,t,n,i){switch(e){case 0:return t&n^~t&i;case 1:case 3:return t^n^i;case 2:return t&n^t&i^n&i}}function _(e,t){return e<<t|e>>>32-t}const E=m("v5",80,(function(e){var t=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var i=unescape(encodeURIComponent(e));e=[];for(var r=0;r<i.length;++r)e.push(i.charCodeAt(r))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);for(var o=e.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]=e[64*s+4*u]<<24|e[64*s+4*u+1]<<16|e[64*s+4*u+2]<<8|e[64*s+4*u+3];l[s]=c}l[a-1][14]=8*(e.length-1)/Math.pow(2,32),l[a-1][14]=Math.floor(l[a-1][14]),l[a-1][15]=8*(e.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 f=16;f<80;++f)p[f]=_(p[f-3]^p[f-8]^p[f-14]^p[f-16],1);for(var h=n[0],g=n[1],m=n[2],y=n[3],b=n[4],w=0;w<80;++w){var C=Math.floor(w/20),P=_(h,5)+T(C,g,m,y)+b+t[C]+p[w]>>>0;b=y,y=m,m=_(g,30)>>>0,g=h,h=P}n[0]=n[0]+h>>>0,n[1]=n[1]+g>>>0,n[2]=n[2]+m>>>0,n[3]=n[3]+y>>>0,n[4]=n[4]+b>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]})),O="00000000-0000-0000-0000-000000000000",U=function(e){if(!l(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}},147:e=>{"use strict";e.exports=JSON.parse('{"name":"@contentstack/live-preview-utils","version":"1.3.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/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","uuid":"^8.3.2"},"lint-staged":{"src/**/*.{ts,css,md}":["npm run prettier:fix"]}}')}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,n),o.exports}return n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(607)})()}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ContentstackLivePreview=t():e.ContentstackLivePreview=t()}(this,(()=>(()=>{var e={704:e=>{e.exports=function(e,a){for(var l=e.split(t),s=l.length,c=new Array(s),u=0;u<s;u++){var d=l[u];if(""!==d){var p=n.test(d)&&!r.test(d);p&&(d=d.replace(i,(function(e,t,n){return o(e,d.length-n-e.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 t=/[\s\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]+/,n=/^[a-z\u00E0-\u00FCA-Z\u00C0-\u00DC][\d|a-z\u00E0-\u00FCA-Z\u00C0-\u00DC]*$/,i=/([A-Z\u00C0-\u00DC]{4,})/g,r=/^[A-Z\u00C0-\u00DC]+$/;function o(e,t){var n=e.split(""),i=n.shift().toUpperCase(),r=t?n.pop().toLowerCase():n.pop();return i+n.join("").toLowerCase()+r}},279:(e,t,n)=>{"use strict";n.r(t)},492:(e,t,n)=>{"use strict";var i;n.r(t),n.d(t,{default:()=>p});var r="undefined"==typeof document?void 0:document,o=!!r&&"content"in r.createElement("template"),a=!!r&&r.createRange&&"createContextualFragment"in r.createRange();function l(e,t){var n,i,r=e.nodeName,o=t.nodeName;return r===o||(n=r.charCodeAt(0),i=o.charCodeAt(0),n<=90&&i>=97?r===o.toUpperCase():i<=90&&n>=97&&o===r.toUpperCase())}function s(e,t,n){e[n]!==t[n]&&(e[n]=t[n],e[n]?e.setAttribute(n,""):e.removeAttribute(n))}var c={OPTION:function(e,t){var n=e.parentNode;if(n){var i=n.nodeName.toUpperCase();"OPTGROUP"===i&&(i=(n=n.parentNode)&&n.nodeName.toUpperCase()),"SELECT"!==i||n.hasAttribute("multiple")||(e.hasAttribute("selected")&&!t.selected&&(e.setAttribute("selected","selected"),e.removeAttribute("selected")),n.selectedIndex=-1)}s(e,t,"selected")},INPUT:function(e,t){s(e,t,"checked"),s(e,t,"disabled"),e.value!==t.value&&(e.value=t.value),t.hasAttribute("value")||e.removeAttribute("value")},TEXTAREA:function(e,t){var n=t.value;e.value!==n&&(e.value=n);var i=e.firstChild;if(i){var r=i.nodeValue;if(r==n||!n&&r==e.placeholder)return;i.nodeValue=n}},SELECT:function(e,t){if(!t.hasAttribute("multiple")){for(var n,i,r=-1,o=0,a=e.firstChild;a;)if("OPTGROUP"===(i=a.nodeName&&a.nodeName.toUpperCase()))a=(n=a).firstChild;else{if("OPTION"===i){if(a.hasAttribute("selected")){r=o;break}o++}!(a=a.nextSibling)&&n&&(a=n.nextSibling,n=null)}e.selectedIndex=r}}};function u(){}function d(e){if(e)return e.getAttribute&&e.getAttribute("id")||e.id}const p=function(e,t,n){if(n||(n={}),"string"==typeof t)if("#document"===e.nodeName||"HTML"===e.nodeName||"BODY"===e.nodeName){var s=t;(t=r.createElement("html")).innerHTML=s}else p=(p=t).trim(),t=o?function(e){var t=r.createElement("template");return t.innerHTML=e,t.content.childNodes[0]}(p):a?function(e){return i||(i=r.createRange()).selectNode(r.body),i.createContextualFragment(e).childNodes[0]}(p):function(e){var t=r.createElement("body");return t.innerHTML=e,t.childNodes[0]}(p);var p,v=n.getNodeKey||d,f=n.onBeforeNodeAdded||u,h=n.onNodeAdded||u,g=n.onBeforeElUpdated||u,m=n.onElUpdated||u,y=n.onBeforeNodeDiscarded||u,b=n.onNodeDiscarded||u,w=n.onBeforeElChildrenUpdated||u,C=!0===n.childrenOnly,P=Object.create(null),k=[];function L(e){k.push(e)}function B(e,t){if(1===e.nodeType)for(var n=e.firstChild;n;){var i=void 0;t&&(i=v(n))?L(i):(b(n),n.firstChild&&B(n,t)),n=n.nextSibling}}function S(e,t,n){!1!==y(e)&&(t&&t.removeChild(e),b(e),B(e,n))}function _(e){h(e);for(var t=e.firstChild;t;){var n=t.nextSibling,i=v(t);if(i){var r=P[i];r&&l(t,r)?(t.parentNode.replaceChild(r,t),T(r,t)):_(t)}else _(t);t=n}}function T(e,t,n){var i=v(t);if(i&&delete P[i],!n){if(!1===g(e,t))return;if(function(e,t){var n,i,r,o,a=t.attributes;if(11!==t.nodeType&&11!==e.nodeType){for(var l=a.length-1;l>=0;l--)i=(n=a[l]).name,r=n.namespaceURI,o=n.value,r?(i=n.localName||i,e.getAttributeNS(r,i)!==o&&("xmlns"===n.prefix&&(i=n.name),e.setAttributeNS(r,i,o))):e.getAttribute(i)!==o&&e.setAttribute(i,o);for(var s=e.attributes,c=s.length-1;c>=0;c--)i=(n=s[c]).name,(r=n.namespaceURI)?(i=n.localName||i,t.hasAttributeNS(r,i)||e.removeAttributeNS(r,i)):t.hasAttribute(i)||e.removeAttribute(i)}}(e,t),m(e),!1===w(e,t))return}"TEXTAREA"!==e.nodeName?function(e,t){var n,i,o,a,s,u=t.firstChild,d=e.firstChild;e:for(;u;){for(a=u.nextSibling,n=v(u);d;){if(o=d.nextSibling,u.isSameNode&&u.isSameNode(d)){u=a,d=o;continue e}i=v(d);var p=d.nodeType,h=void 0;if(p===u.nodeType&&(1===p?(n?n!==i&&((s=P[n])?o===s?h=!1:(e.insertBefore(s,d),i?L(i):S(d,e,!0),d=s):h=!1):i&&(h=!1),(h=!1!==h&&l(d,u))&&T(d,u)):3!==p&&8!=p||(h=!0,d.nodeValue!==u.nodeValue&&(d.nodeValue=u.nodeValue))),h){u=a,d=o;continue e}i?L(i):S(d,e,!0),d=o}if(n&&(s=P[n])&&l(s,u))e.appendChild(s),T(s,u);else{var g=f(u);!1!==g&&(g&&(u=g),u.actualize&&(u=u.actualize(e.ownerDocument||r)),e.appendChild(u),_(u))}u=a,d=o}!function(e,t,n){for(;t;){var i=t.nextSibling;(n=v(t))?L(n):S(t,e,!0),t=i}}(e,d,i);var m=c[e.nodeName];m&&m(e,t)}(e,t):c.TEXTAREA(e,t)}!function e(t){if(1===t.nodeType||11===t.nodeType)for(var n=t.firstChild;n;){var i=v(n);i&&(P[i]=n),e(n),n=n.nextSibling}}(e);var O,E,U=e,x=U.nodeType,A=t.nodeType;if(!C)if(1===x)1===A?l(e,t)||(b(e),U=function(e,t){for(var n=e.firstChild;n;){var i=n.nextSibling;t.appendChild(n),n=i}return t}(e,(O=t.nodeName,(E=t.namespaceURI)&&"http://www.w3.org/1999/xhtml"!==E?r.createElementNS(E,O):r.createElement(O)))):U=t;else if(3===x||8===x){if(A===x)return U.nodeValue!==t.nodeValue&&(U.nodeValue=t.nodeValue),U;U=t}if(U===t)b(e);else{if(t.isSameNode&&t.isSameNode(U))return;if(T(U,t,C),k)for(var D=0,M=k.length;D<M;D++){var I=P[k[D]];I&&S(I,I.parentNode,!1)}}return!C&&U!==e&&e.parentNode&&(U.actualize&&(U=U.actualize(e.ownerDocument||r)),e.parentNode.replaceChild(U,e)),U}},135:function(e,t,n){"use strict";var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{s(i.next(e))}catch(e){o(e)}}function l(e){try{s(i.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,l)}s((i=i.apply(e,t||[])).next())}))},r=this&&this.__generator||function(e,t){var n,i,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(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(a=0)),a;)try{if(n=1,i&&(r=2&l[0]?i.return:l[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,l[1])).done)return r;switch(i=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++,i=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=t.call(e,a)}catch(e){l=[6,e],i=0}finally{n=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(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ContentstackLivePreview=void 0;var a=n(614),l=o(n(704)),s=o(n(147)),c=o(n(922)),u=n(334),d=n(895),p=function(){function e(){}return e.init=function(t){if(void 0===t&&(t=u.userInitData),"undefined"!=typeof window)return e.livePreview?(d.PublicLogger.warn("You have already initialized the Live Preview SDK. So, any subsequent initialization returns the existing SDK instance."),Promise.resolve(e.livePreview)):(e.livePreview=new c.default(t),e.livePreview.setOnChangeCallback(e.publish),e.livePreview.setConfigFromParams(this.configs.params),this.configs.params={},Promise.resolve(e.livePreview));e.userConfig=t},Object.defineProperty(e,"hash",{get:function(){var e;return this.livePreview?this.livePreview.hash:null!==(e=new URLSearchParams(this.configs.params).get("live_preview"))&&void 0!==e?e:""},enumerable:!1,configurable:!0}),e.setConfigFromParams=function(e){void 0===e&&(e={}),this.livePreview?this.livePreview.setConfigFromParams(e):this.configs.params=e},e.publish=function(){Object.values(e.subscribers).forEach((function(e){e()}))},e.subscribe=function(t){var n=(0,a.v4)();return e.subscribers[n]=t,n},e.onEntryChange=function(t,n){var i=(n||{}).skipInitialRender,r=void 0!==i&&i;e.userConfig&&(e.livePreview=new c.default(e.userConfig),e.livePreview.setOnChangeCallback(e.publish),e.livePreview.setConfigFromParams(this.configs.params),this.configs.params={},e.userConfig=null);var o=e.subscribe(t);return r||t(),o},e.onLiveEdit=function(t){return e.onEntryChange(t,{skipInitialRender:!0})},e.unsubscribeOnEntryChange=function(t){"string"==typeof t?(e.subscribers[t]||d.PublicLogger.warn("No subscriber found with the given id."),delete e.subscribers[t]):"function"==typeof t&&(Object.entries(e.subscribers).some((function(n){var i=n[0];return n[1]===t&&(delete e.subscribers[i],!0)}))||d.PublicLogger.warn("No subscriber found with the given callback."))},e.getGatsbyDataFormat=function(e,t){return i(this,void 0,void 0,(function(){return r(this,(function(n){return"function"==typeof e.find?[2,e.toJSON().find().then((function(n){return n.map((function(n){return n.map((function(n){var i;return(i={})[(0,l.default)("".concat(t,"_").concat(e.content_type_uid))]=n,i}))}))})).catch((function(e){console.error(e)}))]:"function"==typeof e.fetch?[2,e.toJSON().fetch().then((function(n){var i;return(i={})[(0,l.default)("".concat(t,"_").concat(e.content_type_uid))]=n,i})).catch((function(e){console.error(e)}))]:[2]}))}))},e.getSdkVersion=function(){return s.default.version},e.livePreview=null,e.userConfig=null,e.subscribers={},e.configs={params:{}},e}();t.ContentstackLivePreview=p,t.default=p,e.exports=p},607:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ContentstackLivePreview=void 0;var r=i(n(135));n(279),t.ContentstackLivePreview=r.default,t.default=t.ContentstackLivePreview,e.exports=t.ContentstackLivePreview},922:function(e,t,n){"use strict";var i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},i.apply(this,arguments)},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=n(928),a=n(895),l=n(383),s=n(334),c=r(n(147)),u=n(63),d=function(){function e(e){void 0===e&&(e=s.userInitData);var t=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.tooltipChild={singular:null,multiple:null},this.tooltipCurrentChild="singular",this.createCslpTooltip=function(){if(!document.getElementById("cslp-tooltip")&&t.config.editButton.enable){var e=document.createElement("button");e.classList.add("cslp-tooltip"),e.setAttribute("data-test-id","cs-cslp-tooltip"),e.id="cslp-tooltip",window.document.body.insertAdjacentElement("beforeend",e),t.tooltipChild.singular=(0,o.createSingularEditButton)(t.scrollHandler),t.tooltipChild.multiple=(0,o.createMultipleEditButton)(t.scrollHandler,t.linkClickHandler),e.innerHTML="",e.appendChild(t.tooltipChild.singular),t.tooltip=e}t.updateTooltipPosition()},(0,l.handleInitData)(e,this.config),this.addEditStyleOnHover=this.addEditStyleOnHover.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),e.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(e){document.querySelectorAll("a").forEach((function(e){var t=document.location.origin;if(e.href&&e.href.includes(t)){var n=(0,o.addLivePreviewQueryTags)(e.href);e.href=n}}))})),window.addEventListener("click",(function(e){var t=e.target,n=t.href,i=document.location.origin;if(n&&n.includes(i)&&!n.includes("live_preview")){var r=(0,o.addLivePreviewQueryTags)(t.href);e.target.href=r||t.href}})))):this.config.cleanCslpOnProduction&&this.removeDataCslp()}return e.prototype.addEditStyleOnHover=function(e){for(var t,n,i,r=!0,o=0,a=e.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.currentElementBesideTooltip&&this.currentElementBesideTooltip.classList.remove("cslp-edit-mode"),l.classList.add("cslp-edit-mode"),this.currentElementBesideTooltip=l,this.updateTooltipPosition()&&(null===(t=this.tooltip)||void 0===t||t.setAttribute("current-data-cslp",s),null===(n=this.tooltip)||void 0===n||n.setAttribute("current-href",null!==(i=l.getAttribute("href"))&&void 0!==i?i:"")),r=!1):r||l.classList.remove("cslp-edit-mode")}}},e.prototype.generateRedirectUrl=function(e,t,n,i){if(void 0===t&&(t="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="!/stack/".concat(this.config.stackDetails.apiKey,"/content-type/").concat(e,"/").concat(null!=t?t:"en-us","/entry/").concat(n,"/edit"),c=new URL("".concat(r,"://").concat(o));return c.port=a,c.hash=s,c.searchParams.append("preview-field",i),c.searchParams.append("preview-locale",null!=t?t:"en-us"),c.searchParams.append("preview-environment",l),"".concat(c.origin,"/").concat(c.hash).concat(c.search)},e.prototype.scrollHandler=function(){if(this.tooltip){var e=this.tooltip.getAttribute("current-data-cslp");if(e){var t=e.split("."),n=t[0],i=t[1],r=t[2],o=t.slice(3);if(window.location!==window.parent.location)window.parent.postMessage({from:"live-preview",type:"scroll",data:{field:o.join("."),content_type_uid:n,entry_uid:i,locale:r}},"*");else try{var l=this.generateRedirectUrl(n,r,i,o.join("."));window.open(l,"_blank")}catch(e){a.PublicLogger.error(e)}}}},e.prototype.linkClickHandler=function(){if(this.tooltip){var e=this.tooltip.getAttribute("current-href");e&&window.location.assign(e)}},e.prototype.handleUserChange=function(e){this.config.stackSdk.live_preview=i(i(i({},this.config.stackSdk.live_preview),e),{live_preview:e.hash}),this.config.onChange()},e.prototype.setOnChangeCallback=function(e){this.config.onChange=e},Object.defineProperty(e.prototype,"hash",{get:function(){return this.config.hash},enumerable:!1,configurable:!0}),e.prototype.setConfigFromParams=function(e){if(void 0===e&&(e={}),"object"!=typeof e)throw new TypeError("Live preview SDK: query param must be an object");var t=new URLSearchParams(e).get("live_preview");t&&(this.config.hash=t)},e.prototype.resolveIncomingMessage=function(e){var t=this;if("object"==typeof e.data&&"live-preview"===e.data.from)switch(e.data.type){case"client-data-send":var n=this.config.stackDetails,i=n.contentTypeUid,r=n.entryUid,o=e.data.data.hash;if(this.setConfigFromParams({live_preview:o}),this.config.ssr){var a=new URL(window.location.href);a.searchParams.append("live_preview",o),a.searchParams.append("content_type_uid",i),a.searchParams.append("entry_uid",r),fetch(a.toString(),{method:"GET"}).then((function(e){return e.text()})).then((function(e){(0,u.updateDocumentBody)(document,e,{onPostOperation:t.createCslpTooltip,shouldReRunScripts:t.config.runScriptsOnUpdate})}))}else this.handleUserChange({content_type_uid:i,entry_uid:r,hash:o});break;case"init-ack":var l=e.data.data;i=l.contentTypeUid,r=l.entryUid,this.config.stackDetails.contentTypeUid=i,this.config.stackDetails.entryUid=r;break;case"history":switch(e.data.data.type){case"forward":window.history.forward();break;case"backward":window.history.back();break;case"reload":window.history.go()}break;case"document-body-post-scripts-loaded":var s=e.data.data.body;(0,u.replaceDocumentBody)(s,this.createCslpTooltip)}},e.prototype.requestDataSync=function(){this.handleUserChange({live_preview:"init"}),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)},e.prototype.updateTooltipPosition=function(){var e;if(!this.currentElementBesideTooltip||!this.tooltip)return!1;var t=this.currentElementBesideTooltip.getBoundingClientRect(),n=null===(e=this.tooltip.parentElement)||void 0===e?void 0:e.getBoundingClientRect();if(t&&n){var i=(0,o.getEditButtonPosition)(this.currentElementBesideTooltip,this.config.editButton.position),r=i.upperBoundOfTooltip,a=i.leftBoundOfTooltip;return r<0&&(r=t.top<0?t.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&&(this.currentElementBesideTooltip.hasAttribute("href")?"multiple"!==this.tooltipCurrentChild&&(this.tooltip.innerHTML="",this.tooltip.appendChild(this.tooltipChild.multiple),this.tooltipCurrentChild="multiple"):"singular"!==this.tooltipCurrentChild&&(this.tooltip.innerHTML="",this.tooltip.appendChild(this.tooltipChild.singular),this.tooltipCurrentChild="singular")),!0}return!1},e.prototype.removeDataCslp=function(){document.querySelectorAll("[data-cslp]").forEach((function(e){e.removeAttribute("data-cslp"),e.removeAttribute("data-cslp-button-position")}))},e}();t.default=d},334:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.userInitData=void 0,t.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:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handleUserConfig=t.handleInitData=void 0;var i=n(928),r=n(895),o=function(e,t){var n,i,r;if(e.clientUrlParams.host=null!==(n=t.host)&&void 0!==n?n:e.clientUrlParams.host,e.clientUrlParams.protocol=null!==(i=t.protocol)&&void 0!==i?i:e.clientUrlParams.protocol,e.clientUrlParams.port=null!==(r=t.port)&&void 0!==r?r:e.clientUrlParams.port,void 0!==t.protocol&&void 0===t.port)switch(t.protocol){case"http":e.clientUrlParams.port=80;break;case"https":e.clientUrlParams.port=443}var o=e.clientUrlParams.host;o.endsWith("/")&&(o=o.slice(0,-1),e.clientUrlParams.host=o),e.clientUrlParams.url="".concat(e.clientUrlParams.protocol,"://").concat(e.clientUrlParams.host,":").concat(e.clientUrlParams.port)};function a(e){return Object.prototype.hasOwnProperty.call(e,"cachePolicy")}t.handleInitData=function(e,t){var n,l,s,c,u,d,p,v,f,h,g,m,y,b,w,C,P,k,L,B,S,_,T,O,E,U,x,A,D,M,I,N,j,R,H,V,K,F,Z,q,Q,z,W,G,Y,$,J,X,ee,te,ne,ie,re,oe,ae,le,se,ce;if(a(e)){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 ue=(null==e?void 0:e.live_preview)||{};t.ssr=!1,t.runScriptsOnUpdate=null!==(n=ue.runScriptsOnUpdate)&&void 0!==n?n:t.runScriptsOnUpdate,t.enable=null!==(l=ue.enable)&&void 0!==l?l:t.enable,t.cleanCslpOnProduction=null!==(s=ue.cleanCslpOnProduction)&&void 0!==s?s:t.cleanCslpOnProduction,t.editButton={enable:(0,i.shouldRenderEditButton)(null!==(c=ue.editButton)&&void 0!==c?c:t.editButton),exclude:Array.isArray(null===(u=ue.editButton)||void 0===u?void 0:u.exclude)&&(null===(d=ue.editButton)||void 0===d?void 0:d.exclude)?null===(p=ue.editButton)||void 0===p?void 0:p.exclude:null!==(v=t.editButton.exclude)&&void 0!==v?v:[],position:null!==(g=null!==(h=null===(f=ue.editButton)||void 0===f?void 0:f.position)&&void 0!==h?h:t.editButton.position)&&void 0!==g?g:"top",includeByQueryParameter:null===(b=null!==(y=null===(m=ue.editButton)||void 0===m?void 0:m.includeByQueryParameter)&&void 0!==y?y:t.editButton.includeByQueryParameter)||void 0===b||b},t.stackSdk=e,Object.prototype.hasOwnProperty.call(e.headers,"api_key")&&e.headers.api_key&&(t.stackDetails.apiKey=e.headers.api_key),Object.prototype.hasOwnProperty.call(e,"environment")&&(t.stackDetails.environment=e.environment),o(t,null!==(w=ue.clientUrlParams)&&void 0!==w?w:t.clientUrlParams)}else if(!a(e)){var de=e.stackSdk||t.stackSdk;t.enable=null!==(k=null!==(C=e.enable)&&void 0!==C?C:null===(P=de.live_preview)||void 0===P?void 0:P.enable)&&void 0!==k?k:t.enable,t.ssr=null===(_=null!==(S=null!==(L=e.ssr)&&void 0!==L?L:null===(B=de.live_preview)||void 0===B?void 0:B.ssr)&&void 0!==S?S:"object"!=typeof e.stackSdk)||void 0===_||_,t.runScriptsOnUpdate=null!==(E=null!==(T=e.runScriptsOnUpdate)&&void 0!==T?T:null===(O=de.live_preview)||void 0===O?void 0:O.runScriptsOnUpdate)&&void 0!==E?E:t.runScriptsOnUpdate,t.stackSdk=de,t.cleanCslpOnProduction=null!==(A=null!==(U=e.cleanCslpOnProduction)&&void 0!==U?U:null===(x=de.live_preview)||void 0===x?void 0:x.cleanCslpOnProduction)&&void 0!==A?A:t.cleanCslpOnProduction,t.editButton={enable:(0,i.shouldRenderEditButton)(null!==(I=null!==(D=e.editButton)&&void 0!==D?D:null===(M=de.live_preview)||void 0===M?void 0:M.editButton)&&void 0!==I?I:t.editButton),exclude:Array.isArray(null===(N=e.editButton)||void 0===N?void 0:N.exclude)&&(null===(j=e.editButton)||void 0===j?void 0:j.exclude)?null===(R=e.editButton)||void 0===R?void 0:R.exclude:Array.isArray(null===(H=de.live_preview)||void 0===H?void 0:H.exclude)&&(null===(V=de.live_preview)||void 0===V?void 0:V.exclude)?null===(K=de.live_preview)||void 0===K?void 0:K.exclude:null!==(F=t.editButton.exclude)&&void 0!==F?F:[],position:null!==(W=null!==(z=null!==(q=null===(Z=e.editButton)||void 0===Z?void 0:Z.position)&&void 0!==q?q:null===(Q=de.live_preview)||void 0===Q?void 0:Q.position)&&void 0!==z?z:t.editButton.position)&&void 0!==W?W:"top",includeByQueryParameter:null===(X=null!==(J=null!==(Y=null===(G=e.editButton)||void 0===G?void 0:G.includeByQueryParameter)&&void 0!==Y?Y:null===($=de.live_preview)||void 0===$?void 0:$.includeByQueryParameter)&&void 0!==J?J:t.editButton.includeByQueryParameter)||void 0===X||X},t.stackDetails.apiKey=null!==(ie=null!==(te=null===(ee=e.stackDetails)||void 0===ee?void 0:ee.apiKey)&&void 0!==te?te:null===(ne=de.headers)||void 0===ne?void 0:ne.api_key)&&void 0!==ie?ie:t.stackDetails.apiKey,t.stackDetails.environment=null!==(ae=null!==(oe=null===(re=e.stackDetails)||void 0===re?void 0:re.environment)&&void 0!==oe?oe:de.environment)&&void 0!==ae?ae:t.stackDetails.environment,o(t,null!==(ce=null!==(le=e.clientUrlParams)&&void 0!==le?le:null===(se=de.live_preview)||void 0===se?void 0:se.clientUrlParams)&&void 0!==ce?ce:t.clientUrlParams)}},t.handleUserConfig={clientUrlParams:o}},928:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getEditButtonPosition=t.shouldRenderEditButton=t.addLivePreviewQueryTags=t.createMultipleEditButton=t.createSingularEditButton=t.tooltipMultipleInnerHtml=t.tooltipSingularInnerHtml=t.hasWindow=void 0;var i=n(895);function r(){return window.location!==window.parent.location}t.hasWindow=function(){return"undefined"!=typeof window},t.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>',t.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>',t.createSingularEditButton=function(e){var t=document.createElement("div");return t.classList.add("cslp-tooltip-child","singular"),t.setAttribute("data-test-id","cslp-singular-edit-button"),t.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',t.addEventListener("click",e),t},t.createMultipleEditButton=function(e,t){var n=document.createElement("div");n.classList.add("cslp-tooltip-child"),n.setAttribute("data-title","Edit"),n.setAttribute("data-test-id","cslp-multiple-edit-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="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.addEventListener("click",e);var i=document.createElement("div");i.classList.add("cslp-tooltip-child"),i.setAttribute("data-title","Go to link"),i.setAttribute("data-test-id","cslp-multiple-external-link-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="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>',i.addEventListener("click",t);var r=document.createDocumentFragment();r.appendChild(n),r.appendChild(i);var o=document.createElement("div");return o.appendChild(r),o.classList.add("multiple"),o},t.addLivePreviewQueryTags=function(e){try{var t=new URL(document.location.href),n=new URL(e),r=t.searchParams.get("live_preview"),o=t.searchParams.get("content_type_uid"),a=t.searchParams.get("entry_uid");return r&&o&&a&&(n.searchParams.set("live_preview",r),n.searchParams.set("content_type_uid",o),n.searchParams.set("entry_uid",a)),n.href}catch(t){return i.PublicLogger.error("Error while adding live preview to URL"),e}},t.shouldRenderEditButton=function(e){var t,n;if(!e.enable)return void 0===e.enable&&i.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!==e.includeByQueryParameter)return"false"!==o}catch(e){i.PublicLogger.error(e)}return!(r()&&(null===(t=e.exclude)||void 0===t?void 0:t.find((function(e){return"insideLivePreviewPortal"===e})))||!r()&&(null===(n=e.exclude)||void 0===n?void 0:n.find((function(e){return"outsideLivePreviewPortal"===e}))))},t.getEditButtonPosition=function(e,t){if(!e)return{upperBoundOfTooltip:0,leftBoundOfTooltip:0};var n=e.getAttribute("data-cslp-button-position");return function(e,t){var n={upperBoundOfTooltip:0,leftBoundOfTooltip:0},r=e.getBoundingClientRect();try{var o={width:72,halfWidth:36,height:40,basicMargin:5,widthWithMargin:77};switch(t){case"top-center":n.upperBoundOfTooltip=r.top-o.height,n.leftBoundOfTooltip=r.width/2-o.halfWidth+r.left;break;case"top-right":n.upperBoundOfTooltip=r.top-o.height,n.leftBoundOfTooltip=r.right-o.width;break;case"right":n.upperBoundOfTooltip=r.top-o.basicMargin,n.leftBoundOfTooltip=r.right+o.basicMargin;break;case"bottom":case"bottom-left":n.upperBoundOfTooltip=r.bottom+o.basicMargin,n.leftBoundOfTooltip=r.left-o.basicMargin;break;case"bottom-center":n.upperBoundOfTooltip=r.bottom+o.basicMargin,n.leftBoundOfTooltip=r.width/2-o.halfWidth+r.left;break;case"bottom-right":n.upperBoundOfTooltip=r.bottom+o.basicMargin,n.leftBoundOfTooltip=r.right-o.width;break;case"left":n.upperBoundOfTooltip=r.top-o.basicMargin,n.leftBoundOfTooltip=r.left-o.widthWithMargin;break;default:n.upperBoundOfTooltip=r.top-o.height,n.leftBoundOfTooltip=r.left-o.basicMargin}return n}catch(e){return i.PublicLogger.error(e),n}}(e,n||t||"top")}},895:function(e,t){"use strict";var n=this&&this.__spreadArray||function(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))};Object.defineProperty(t,"__esModule",{value:!0}),t.PublicLogger=void 0;var i=function(){function e(){}return e.logEvent=function(e,t){e.apply(void 0,n(["Live_Preview_SDK:"],t,!1))},e.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logEvent(console.error,e)},e.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logEvent(console.warn,e)},e.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logEvent(console.debug,e)},e}();t.PublicLogger=i},63:function(e,t,n){"use strict";var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{s(i.next(e))}catch(e){o(e)}}function l(e){try{s(i.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,l)}s((i=i.apply(e,t||[])).next())}))},r=this&&this.__generator||function(e,t){var n,i,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(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(a=0)),a;)try{if(n=1,i&&(r=2&l[0]?i.return:l[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,l[1])).done)return r;switch(i=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++,i=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=t.call(e,a)}catch(e){l=[6,e],i=0}finally{n=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(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.replaceDocumentBody=t.updateDocumentBody=t.rerunScriptsInDocument=void 0;var a=o(n(492));function l(){var e=document.querySelectorAll("script"),t=e.length,n=0;function i(){n++,0==--t&&window.parent.postMessage({from:"live-preview",type:"document-body-post-scripts-loaded",data:{body:document.body.outerHTML}},"*"),r()}function r(){if(n<e.length){var t=e[n],r=t.parentNode,o=document.createElement("script");t.src?(o.onerror=i,o.onload=i,o.src=t.src):(o.text=t.text,i()),null==r||r.replaceChild(o,t)}}e.length&&r()}function s(e,t){var n=(new DOMParser).parseFromString(e,"text/html");(0,a.default)(document.body,n.body),t&&t()}t.rerunScriptsInDocument=l,t.updateDocumentBody=function(e,t,n){return i(this,void 0,void 0,(function(){var i,o,a,c,u;return r(this,(function(r){return i=n.shouldReRunScripts,o=n.onPostOperation,i?(e.querySelectorAll("iframe#contentstack-live-preview-iframe").forEach((function(e){e.remove()})),(a=e.createElement("iframe")).style.display="none",a.id="contentstack-live-preview-iframe",c=/(<\s*\/\s*script\s*>)|(`)/gm,u=t.replace(c,(function(e,t,n){return n?"\\`":"<\\/script>"})),a.srcdoc="\n <head>\n <script>\n function prepareIframeForScriptRerun() {\n const responseHTML = `".concat(u,'`;\n\n const html = document.getElementsByTagName("html").item(0);\n\n const rerunScriptsInDocument = ').concat(l,"\n\n if (html) {\n html.innerHTML = responseHTML;\n rerunScriptsInDocument();\n }\n }\n prepareIframeForScriptRerun()\n <\/script>\n </head>"),e.body.appendChild(a)):s(t,o),[2]}))}))},t.replaceDocumentBody=s},614:(e,t,n)=>{"use strict";var i;n.r(t),n.d(t,{NIL:()=>E,parse:()=>g,stringify:()=>u,v1:()=>h,v3:()=>B,v4:()=>S,v5:()=>O,validate:()=>l,version:()=>U});var r=new Uint8Array(16);function o(){if(!i&&!(i="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 i(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(e){return"string"==typeof e&&a.test(e)};for(var s=[],c=0;c<256;++c)s.push((c+256).toString(16).substr(1));const u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase();if(!l(n))throw TypeError("Stringified UUID is invalid");return n};var d,p,v=0,f=0;const h=function(e,t,n){var i=t&&n||0,r=t||new Array(16),a=(e=e||{}).node||d,l=void 0!==e.clockseq?e.clockseq:p;if(null==a||null==l){var s=e.random||(e.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!==e.msecs?e.msecs:Date.now(),h=void 0!==e.nsecs?e.nsecs:f+1,g=c-v+(h-f)/1e4;if(g<0&&void 0===e.clockseq&&(l=l+1&16383),(g<0||c>v)&&void 0===e.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=c,f=h,p=l;var m=(1e4*(268435455&(c+=122192928e5))+h)%4294967296;r[i++]=m>>>24&255,r[i++]=m>>>16&255,r[i++]=m>>>8&255,r[i++]=255&m;var y=c/4294967296*1e4&268435455;r[i++]=y>>>8&255,r[i++]=255&y,r[i++]=y>>>24&15|16,r[i++]=y>>>16&255,r[i++]=l>>>8|128,r[i++]=255&l;for(var b=0;b<6;++b)r[i+b]=a[b];return t||u(r)},g=function(e){if(!l(e))throw TypeError("Invalid UUID");var t,n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n};function m(e,t,n){function i(e,i,r,o){if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var t=[],n=0;n<e.length;++n)t.push(e.charCodeAt(n));return t}(e)),"string"==typeof i&&(i=g(i)),16!==i.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var a=new Uint8Array(16+e.length);if(a.set(i),a.set(e,i.length),(a=n(a))[6]=15&a[6]|t,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{i.name=e}catch(e){}return i.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",i.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",i}function y(e){return 14+(e+64>>>9<<4)+1}function b(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function w(e,t,n,i,r,o){return b((a=b(b(t,e),b(i,o)))<<(l=r)|a>>>32-l,n);var a,l}function C(e,t,n,i,r,o,a){return w(t&n|~t&i,e,t,r,o,a)}function P(e,t,n,i,r,o,a){return w(t&i|n&~i,e,t,r,o,a)}function k(e,t,n,i,r,o,a){return w(t^n^i,e,t,r,o,a)}function L(e,t,n,i,r,o,a){return w(n^(t|~i),e,t,r,o,a)}const B=m("v3",48,(function(e){if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(var n=0;n<t.length;++n)e[n]=t.charCodeAt(n)}return function(e){for(var t=[],n=32*e.length,i="0123456789abcdef",r=0;r<n;r+=8){var o=e[r>>5]>>>r%32&255,a=parseInt(i.charAt(o>>>4&15)+i.charAt(15&o),16);t.push(a)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[y(t)-1]=t;for(var n=1732584193,i=-271733879,r=-1732584194,o=271733878,a=0;a<e.length;a+=16){var l=n,s=i,c=r,u=o;n=C(n,i,r,o,e[a],7,-680876936),o=C(o,n,i,r,e[a+1],12,-389564586),r=C(r,o,n,i,e[a+2],17,606105819),i=C(i,r,o,n,e[a+3],22,-1044525330),n=C(n,i,r,o,e[a+4],7,-176418897),o=C(o,n,i,r,e[a+5],12,1200080426),r=C(r,o,n,i,e[a+6],17,-1473231341),i=C(i,r,o,n,e[a+7],22,-45705983),n=C(n,i,r,o,e[a+8],7,1770035416),o=C(o,n,i,r,e[a+9],12,-1958414417),r=C(r,o,n,i,e[a+10],17,-42063),i=C(i,r,o,n,e[a+11],22,-1990404162),n=C(n,i,r,o,e[a+12],7,1804603682),o=C(o,n,i,r,e[a+13],12,-40341101),r=C(r,o,n,i,e[a+14],17,-1502002290),n=P(n,i=C(i,r,o,n,e[a+15],22,1236535329),r,o,e[a+1],5,-165796510),o=P(o,n,i,r,e[a+6],9,-1069501632),r=P(r,o,n,i,e[a+11],14,643717713),i=P(i,r,o,n,e[a],20,-373897302),n=P(n,i,r,o,e[a+5],5,-701558691),o=P(o,n,i,r,e[a+10],9,38016083),r=P(r,o,n,i,e[a+15],14,-660478335),i=P(i,r,o,n,e[a+4],20,-405537848),n=P(n,i,r,o,e[a+9],5,568446438),o=P(o,n,i,r,e[a+14],9,-1019803690),r=P(r,o,n,i,e[a+3],14,-187363961),i=P(i,r,o,n,e[a+8],20,1163531501),n=P(n,i,r,o,e[a+13],5,-1444681467),o=P(o,n,i,r,e[a+2],9,-51403784),r=P(r,o,n,i,e[a+7],14,1735328473),n=k(n,i=P(i,r,o,n,e[a+12],20,-1926607734),r,o,e[a+5],4,-378558),o=k(o,n,i,r,e[a+8],11,-2022574463),r=k(r,o,n,i,e[a+11],16,1839030562),i=k(i,r,o,n,e[a+14],23,-35309556),n=k(n,i,r,o,e[a+1],4,-1530992060),o=k(o,n,i,r,e[a+4],11,1272893353),r=k(r,o,n,i,e[a+7],16,-155497632),i=k(i,r,o,n,e[a+10],23,-1094730640),n=k(n,i,r,o,e[a+13],4,681279174),o=k(o,n,i,r,e[a],11,-358537222),r=k(r,o,n,i,e[a+3],16,-722521979),i=k(i,r,o,n,e[a+6],23,76029189),n=k(n,i,r,o,e[a+9],4,-640364487),o=k(o,n,i,r,e[a+12],11,-421815835),r=k(r,o,n,i,e[a+15],16,530742520),n=L(n,i=k(i,r,o,n,e[a+2],23,-995338651),r,o,e[a],6,-198630844),o=L(o,n,i,r,e[a+7],10,1126891415),r=L(r,o,n,i,e[a+14],15,-1416354905),i=L(i,r,o,n,e[a+5],21,-57434055),n=L(n,i,r,o,e[a+12],6,1700485571),o=L(o,n,i,r,e[a+3],10,-1894986606),r=L(r,o,n,i,e[a+10],15,-1051523),i=L(i,r,o,n,e[a+1],21,-2054922799),n=L(n,i,r,o,e[a+8],6,1873313359),o=L(o,n,i,r,e[a+15],10,-30611744),r=L(r,o,n,i,e[a+6],15,-1560198380),i=L(i,r,o,n,e[a+13],21,1309151649),n=L(n,i,r,o,e[a+4],6,-145523070),o=L(o,n,i,r,e[a+11],10,-1120210379),r=L(r,o,n,i,e[a+2],15,718787259),i=L(i,r,o,n,e[a+9],21,-343485551),n=b(n,l),i=b(i,s),r=b(r,c),o=b(o,u)}return[n,i,r,o]}(function(e){if(0===e.length)return[];for(var t=8*e.length,n=new Uint32Array(y(t)),i=0;i<t;i+=8)n[i>>5]|=(255&e[i/8])<<i%32;return n}(e),8*e.length))})),S=function(e,t,n){var i=(e=e||{}).random||(e.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t){n=n||0;for(var r=0;r<16;++r)t[n+r]=i[r];return t}return u(i)};function _(e,t,n,i){switch(e){case 0:return t&n^~t&i;case 1:case 3:return t^n^i;case 2:return t&n^t&i^n&i}}function T(e,t){return e<<t|e>>>32-t}const O=m("v5",80,(function(e){var t=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var i=unescape(encodeURIComponent(e));e=[];for(var r=0;r<i.length;++r)e.push(i.charCodeAt(r))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);for(var o=e.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]=e[64*s+4*u]<<24|e[64*s+4*u+1]<<16|e[64*s+4*u+2]<<8|e[64*s+4*u+3];l[s]=c}l[a-1][14]=8*(e.length-1)/Math.pow(2,32),l[a-1][14]=Math.floor(l[a-1][14]),l[a-1][15]=8*(e.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 f=16;f<80;++f)p[f]=T(p[f-3]^p[f-8]^p[f-14]^p[f-16],1);for(var h=n[0],g=n[1],m=n[2],y=n[3],b=n[4],w=0;w<80;++w){var C=Math.floor(w/20),P=T(h,5)+_(C,g,m,y)+b+t[C]+p[w]>>>0;b=y,y=m,m=T(g,30)>>>0,g=h,h=P}n[0]=n[0]+h>>>0,n[1]=n[1]+g>>>0,n[2]=n[2]+m>>>0,n[3]=n[3]+y>>>0,n[4]=n[4]+b>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]})),E="00000000-0000-0000-0000-000000000000",U=function(e){if(!l(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}},147:e=>{"use strict";e.exports=JSON.parse('{"name":"@contentstack/live-preview-utils","version":"1.4.0","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"]}}')}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,n),o.exports}return n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(607)})()));
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAiC,wBAAID,IAErCD,EAA8B,wBAAIC,GACnC,CATD,CASGK,MAAM,WACT,M,qBCVAH,EAAOD,QAUP,SAAmBK,EAAKC,GAItB,IAHA,IAAIC,EAAQF,EAAIG,MAAMC,GAClBC,EAAMH,EAAMI,OACZC,EAAc,IAAIC,MAAMH,GACnBI,EAAI,EAAGA,EAAIJ,EAAKI,IAAK,CAC5B,IAAIC,EAAOR,EAAMO,GACjB,GAAa,KAATC,EAAJ,CAGA,IAAIC,EAAcC,EAAgBC,KAAKH,KAAUI,EAAaD,KAAKH,GAC/DC,IACFD,EAAOA,EAAKK,QAAQC,GAAgC,SAASC,EAAOC,EAAIC,GACtE,OAAOC,EAAMH,EAAOP,EAAKJ,OAASa,EAASF,EAAMX,QAAU,EAC7D,KAEF,IAAIe,EAAcX,EAAK,GACvBW,EAAcZ,EAAI,EAAIY,EAAYC,cAAgBD,EAAYE,cAC9DhB,EAAYE,GAAKY,GAAgBV,EAA4CD,EAAKc,MAAM,GAAzCd,EAAKc,MAAM,GAAGD,cAT7D,CAUF,CACA,OAAOhB,EAAYkB,KAAK,GAC1B,EA1BA,IAAIrB,EAAsB,uEAEtBQ,EAAkB,6EAClBI,EAAiC,4BACjCF,EAAe,wBAwBnB,SAASM,EAAMH,EAAOS,GACpB,IAAIC,EAAMV,EAAMd,MAAM,IAClByB,EAAQD,EAAIE,QAAQP,cACpBQ,EAAOJ,EAAYC,EAAII,MAAMR,cAAgBI,EAAII,MACrD,OAAOH,EAAQD,EAAIF,KAAK,IAAIF,cAAgBO,CAC9C,C,gECrCA,IAgEIE,E,8BACJ,IAEIC,EAA0B,oBAAbC,cAA2BC,EAAYD,SACpDE,IAAyBH,GAAO,YAAaA,EAAII,cAAc,YAC/DC,IAAsBL,GAAOA,EAAIM,aAAe,6BAA8BN,EAAIM,cAwDtF,SAASC,EAAiBC,EAAQC,GAC9B,IAEIC,EAAeC,EAFfC,EAAeJ,EAAOK,SACtBC,EAAaL,EAAKI,SAGtB,OAAID,IAAiBE,IAIrBJ,EAAgBE,EAAaG,WAAW,GACxCJ,EAAcG,EAAWC,WAAW,GAMhCL,GAAiB,IAAMC,GAAe,GAC/BC,IAAiBE,EAAWzB,cAC5BsB,GAAe,IAAMD,GAAiB,IACtCI,IAAeF,EAAavB,cAI3C,CA8BA,SAAS2B,EAAoBR,EAAQC,EAAMQ,GACnCT,EAAOS,KAAUR,EAAKQ,KACtBT,EAAOS,GAAQR,EAAKQ,GAChBT,EAAOS,GACPT,EAAOU,aAAaD,EAAM,IAE1BT,EAAOW,gBAAgBF,GAGnC,CAEA,IAAIG,EAAoB,CACpBC,OAAQ,SAASb,EAAQC,GACrB,IAAIa,EAAad,EAAOc,WACxB,GAAIA,EAAY,CACZ,IAAIC,EAAaD,EAAWT,SAASxB,cAClB,aAAfkC,IAEAA,GADAD,EAAaA,EAAWA,aACGA,EAAWT,SAASxB,eAEhC,WAAfkC,GAA4BD,EAAWE,aAAa,cAChDhB,EAAOgB,aAAa,cAAgBf,EAAKgB,WAIzCjB,EAAOU,aAAa,WAAY,YAChCV,EAAOW,gBAAgB,aAK3BG,EAAWI,eAAiB,EAEpC,CACAV,EAAoBR,EAAQC,EAAM,WACtC,EAOAkB,MAAO,SAASnB,EAAQC,GACpBO,EAAoBR,EAAQC,EAAM,WAClCO,EAAoBR,EAAQC,EAAM,YAE9BD,EAAOoB,QAAUnB,EAAKmB,QACtBpB,EAAOoB,MAAQnB,EAAKmB,OAGnBnB,EAAKe,aAAa,UACnBhB,EAAOW,gBAAgB,QAE/B,EAEAU,SAAU,SAASrB,EAAQC,GACvB,IAAIqB,EAAWrB,EAAKmB,MAChBpB,EAAOoB,QAAUE,IACjBtB,EAAOoB,MAAQE,GAGnB,IAAIC,EAAavB,EAAOuB,WACxB,GAAIA,EAAY,CAGZ,IAAIC,EAAWD,EAAWE,UAE1B,GAAID,GAAYF,IAAcA,GAAYE,GAAYxB,EAAO0B,YACzD,OAGJH,EAAWE,UAAYH,CAC3B,CACJ,EACAK,OAAQ,SAAS3B,EAAQC,GACrB,IAAKA,EAAKe,aAAa,YAAa,CAUhC,IATA,IAOIY,EACAvB,EARAa,GAAiB,EACjBlD,EAAI,EAKJ6D,EAAW7B,EAAOuB,WAGhBM,GAEF,GAAiB,cADjBxB,EAAWwB,EAASxB,UAAYwB,EAASxB,SAASxB,eAG9CgD,GADAD,EAAWC,GACSN,eACjB,CACH,GAAiB,WAAblB,EAAuB,CACvB,GAAIwB,EAASb,aAAa,YAAa,CACnCE,EAAgBlD,EAChB,KACJ,CACAA,GACJ,GACA6D,EAAWA,EAASC,cACHF,IACbC,EAAWD,EAASE,YACpBF,EAAW,KAEnB,CAGJ5B,EAAOkB,cAAgBA,CAC3B,CACJ,GAQJ,SAASa,IAAQ,CAEjB,SAASC,EAAkBC,GACzB,GAAIA,EACA,OAAQA,EAAKC,cAAgBD,EAAKC,aAAa,OAAUD,EAAKE,EAEpE,CAscA,QAlcW,SAAkBC,EAAUC,EAAQ7E,GAKvC,GAJKA,IACDA,EAAU,CAAC,GAGO,iBAAX6E,EACP,GAA0B,cAAtBD,EAAS/B,UAAkD,SAAtB+B,EAAS/B,UAA6C,SAAtB+B,EAAS/B,SAAqB,CACnG,IAAIiC,EAAaD,GACjBA,EAAS7C,EAAII,cAAc,SACpB2C,UAAYD,CACvB,MApNR/E,GADeA,EAsNgB8E,GArNrBG,OAqNEH,EApNR1C,EAhCR,SAAoCpC,GAChC,IAAIkF,EAAWjD,EAAII,cAAc,YAEjC,OADA6C,EAASF,UAAYhF,EACdkF,EAASC,QAAQC,WAAW,EACvC,CAgCaC,CAA2BrF,GACzBsC,EA/Bf,SAAiCtC,GAO7B,OANKgC,IACDA,EAAQC,EAAIM,eACN+C,WAAWrD,EAAIsD,MAGVvD,EAAMwD,yBAAyBxF,GAC9BoF,WAAW,EAC/B,CAwBaK,CAAwBzF,GAtBrC,SAAgCA,GAC5B,IAAI0F,EAAWzD,EAAII,cAAc,QAEjC,OADAqD,EAASV,UAAYhF,EACd0F,EAASN,WAAW,EAC/B,CAqBWO,CAAuB3F,GAXlC,IAAmBA,EA0NP4F,EAAa3F,EAAQ2F,YAAcnB,EACnCoB,EAAoB5F,EAAQ4F,mBAAqBrB,EACjDsB,EAAc7F,EAAQ6F,aAAetB,EACrCuB,EAAoB9F,EAAQ8F,mBAAqBvB,EACjDwB,EAAc/F,EAAQ+F,aAAexB,EACrCyB,EAAwBhG,EAAQgG,uBAAyBzB,EACzD0B,EAAkBjG,EAAQiG,iBAAmB1B,EAC7C2B,EAA4BlG,EAAQkG,2BAA6B3B,EACjE4B,GAAwC,IAAzBnG,EAAQmG,aAGvBC,EAAkBC,OAAOC,OAAO,MAChCC,EAAmB,GAEvB,SAASC,EAAgBC,GACrBF,EAAiBG,KAAKD,EAC1B,CAEA,SAASE,EAAwBlC,EAAMmC,GACnC,GAjDO,IAiDHnC,EAAKoC,SAEL,IADA,IAAIxC,EAAWI,EAAKV,WACbM,GAAU,CAEb,IAAIoC,OAAMvE,EAEN0E,IAAmBH,EAAMd,EAAWtB,IAGpCmC,EAAgBC,IAKhBR,EAAgB5B,GACZA,EAASN,YACT4C,EAAwBtC,EAAUuC,IAI1CvC,EAAWA,EAASC,WACxB,CAER,CAUA,SAASwC,EAAWrC,EAAMnB,EAAYsD,IACE,IAAhCZ,EAAsBvB,KAItBnB,GACAA,EAAWyD,YAAYtC,GAG3BwB,EAAgBxB,GAChBkC,EAAwBlC,EAAMmC,GAClC,CAiDA,SAASI,EAAgBC,GACrBpB,EAAYoB,GAGZ,IADA,IAAI5C,EAAW4C,EAAGlD,WACXM,GAAU,CACb,IAAIC,EAAcD,EAASC,YAEvBmC,EAAMd,EAAWtB,GACrB,GAAIoC,EAAK,CACL,IAAIS,EAAkBd,EAAgBK,GAGlCS,GAAmB3E,EAAiB8B,EAAU6C,IAC9C7C,EAASf,WAAW6D,aAAaD,EAAiB7C,GAClD+C,EAAQF,EAAiB7C,IAE3B2C,EAAgB3C,EAEtB,MAGE2C,EAAgB3C,GAGlBA,EAAWC,CACf,CACJ,CAqBA,SAAS8C,EAAQ5E,EAAQC,EAAM0D,GAC3B,IAAIkB,EAAU1B,EAAWlD,GAQzB,GANI4E,UAGOjB,EAAgBiB,IAGtBlB,EAAc,CAEf,IAAwC,IAApCL,EAAkBtD,EAAQC,GAC1B,OAQJ,GAhfhB,SAAoBmC,EAAUC,GAC1B,IACIyC,EACAC,EACAC,EACAC,EAJAC,EAAc7C,EAAO8C,WAQzB,GAXyB,KAWrB9C,EAAOgC,UAXc,KAWyBjC,EAASiC,SAA3D,CAKA,IAAK,IAAIrG,EAAIkH,EAAYrH,OAAS,EAAGG,GAAK,EAAGA,IAEzC+G,GADAD,EAAOI,EAAYlH,IACHyC,KAChBuE,EAAmBF,EAAKM,aACxBH,EAAYH,EAAK1D,MAEb4D,GACAD,EAAWD,EAAKO,WAAaN,EACjB3C,EAASkD,eAAeN,EAAkBD,KAEpCE,IACM,UAAhBH,EAAKS,SACLR,EAAWD,EAAKrE,MAEpB2B,EAASoD,eAAeR,EAAkBD,EAAUE,KAG5C7C,EAASF,aAAa6C,KAEhBE,GACd7C,EAAS1B,aAAaqE,EAAUE,GAS5C,IAFA,IAAIQ,EAAgBrD,EAAS+C,WAEpBO,EAAID,EAAc5H,OAAS,EAAG6H,GAAK,EAAGA,IAE3CX,GADAD,EAAOW,EAAcC,IACLjF,MAChBuE,EAAmBF,EAAKM,eAGpBL,EAAWD,EAAKO,WAAaN,EAExB1C,EAAOsD,eAAeX,EAAkBD,IACzC3C,EAASwD,kBAAkBZ,EAAkBD,IAG5C1C,EAAOrB,aAAa+D,IACrB3C,EAASzB,gBAAgBoE,EA7CrC,CAiDJ,CAgbgBc,CAAW7F,EAAQC,GAEnBsD,EAAYvD,IAEoC,IAA5C0D,EAA0B1D,EAAQC,GAClC,MAER,CAEwB,aAApBD,EAAOK,SAOf,SAAuBL,EAAQC,GAC3B,IAEI6F,EACAC,EAEAC,EACAC,EACAC,EAPAC,EAAiBlG,EAAKsB,WACtB6E,EAAmBpG,EAAOuB,WAS9B8E,EAAO,KAAOF,GAAgB,CAK1B,IAJAF,EAAgBE,EAAerE,YAC/BgE,EAAe3C,EAAWgD,GAGnBC,GAAkB,CAGrB,GAFAJ,EAAkBI,EAAiBtE,YAE/BqE,EAAeG,YAAcH,EAAeG,WAAWF,GAAmB,CAC1ED,EAAiBF,EACjBG,EAAmBJ,EACnB,SAASK,CACb,CAEAN,EAAiB5C,EAAWiD,GAE5B,IAAIG,EAAkBH,EAAiB/B,SAGnCmC,OAAe9G,EA6EnB,GA3EI6G,IAAoBJ,EAAe9B,WA7PxC,IA8PSkC,GAGIT,EAGIA,IAAiBC,KAIZG,EAAiBtC,EAAgBkC,IAC9BE,IAAoBE,EAMpBM,GAAe,GASfxG,EAAOyG,aAAaP,EAAgBE,GAIhCL,EAGA/B,EAAgB+B,GAIhBzB,EAAW8B,EAAkBpG,GAAQ,GAGzCoG,EAAmBF,GAKvBM,GAAe,GAGhBT,IAEPS,GAAe,IAGnBA,GAAgC,IAAjBA,GAA0BzG,EAAiBqG,EAAkBD,KAMxEvB,EAAQwB,EAAkBD,IAvT1C,IA0TmBI,GAzThB,GAyTiDA,IAExCC,GAAe,EAGXJ,EAAiB3E,YAAc0E,EAAe1E,YAC9C2E,EAAiB3E,UAAY0E,EAAe1E,aAMpD+E,EAAc,CAGdL,EAAiBF,EACjBG,EAAmBJ,EACnB,SAASK,CACb,CAQIN,EAGA/B,EAAgB+B,GAIhBzB,EAAW8B,EAAkBpG,GAAQ,GAGzCoG,EAAmBJ,CACvB,CAMA,GAAIF,IAAiBI,EAAiBtC,EAAgBkC,KAAkB/F,EAAiBmG,EAAgBC,GACrGnG,EAAO0G,YAAYR,GAEnBtB,EAAQsB,EAAgBC,OACrB,CACH,IAAIQ,EAA0BvD,EAAkB+C,IAChB,IAA5BQ,IACIA,IACAR,EAAiBQ,GAGjBR,EAAeS,YACfT,EAAiBA,EAAeS,UAAU5G,EAAO6G,eAAiBrH,IAEtEQ,EAAO0G,YAAYP,GACnB3B,EAAgB2B,GAExB,CAEAA,EAAiBF,EACjBG,EAAmBJ,CACvB,EAlNJ,SAAuBhG,EAAQoG,EAAkBL,GAI7C,KAAOK,GAAkB,CACrB,IAAIJ,EAAkBI,EAAiBtE,aAClCiE,EAAiB5C,EAAWiD,IAG7BpC,EAAgB+B,GAIhBzB,EAAW8B,EAAkBpG,GAAQ,GAEzCoG,EAAmBJ,CACvB,CACJ,CAmMIc,CAAc9G,EAAQoG,EAAkBL,GAExC,IAAIgB,EAAmBnG,EAAkBZ,EAAOK,UAC5C0G,GACAA,EAAiB/G,EAAQC,EAEjC,CA7KM+G,CAAchH,EAAQC,GAEtBW,EAAkBS,SAASrB,EAAQC,EAEzC,EAhGA,SAASgH,EAAUhF,GACf,GA5HO,IA4HHA,EAAKoC,UA3HU,KA2HmBpC,EAAKoC,SAEvC,IADA,IAAIxC,EAAWI,EAAKV,WACbM,GAAU,CACb,IAAIoC,EAAMd,EAAWtB,GACjBoC,IACAL,EAAgBK,GAAOpC,GAI3BoF,EAAUpF,GAEVA,EAAWA,EAASC,WACxB,CAER,CAEAmF,CAAU7E,GA0PV,IAxgBiB3B,EAAM2E,EAwgBnB8B,EAAc9E,EACd+E,EAAkBD,EAAY7C,SAC9B+C,EAAa/E,EAAOgC,SAExB,IAAKV,EAGD,GA7YO,IA6YHwD,EA7YG,IA8YCC,EACKrH,EAAiBqC,EAAUC,KAC5BoB,EAAgBrB,GAChB8E,EA1gBxB,SAAsBlH,EAAQC,GAE1B,IADA,IAAI4B,EAAW7B,EAAOuB,WACfM,GAAU,CACb,IAAIwF,EAAYxF,EAASC,YACzB7B,EAAKyG,YAAY7E,GACjBA,EAAWwF,CACf,CACA,OAAOpH,CACX,CAkgBsCqH,CAAalF,GAnhB1B3B,EAmhBoD4B,EAAOhC,UAnhBrD+E,EAmhB+D/C,EAAO+C,eAjnBtF,iCA+FaA,EAEpB5F,EAAI+H,gBAAgBnC,EAAc3E,GADlCjB,EAAII,cAAca,MAqhBNyG,EAAc7E,OAEf,GArZH,IAqZO8E,GApZJ,IAoZqCA,EAAkC,CAC1E,GAAIC,IAAeD,EAKf,OAJID,EAAYzF,YAAcY,EAAOZ,YACjCyF,EAAYzF,UAAYY,EAAOZ,WAG5ByF,EAGPA,EAAc7E,CAEtB,CAGJ,GAAI6E,IAAgB7E,EAGhBoB,EAAgBrB,OACb,CACH,GAAIC,EAAOiE,YAAcjE,EAAOiE,WAAWY,GACvC,OAUJ,GAPAtC,EAAQsC,EAAa7E,EAAQsB,GAOzBI,EACA,IAAK,IAAI/F,EAAE,EAAGJ,EAAImG,EAAiBlG,OAAQG,EAAEJ,EAAKI,IAAK,CACnD,IAAIwJ,EAAa5D,EAAgBG,EAAiB/F,IAC9CwJ,GACAlD,EAAWkD,EAAYA,EAAW1G,YAAY,EAEtD,CAER,CAcA,OAZK6C,GAAgBuD,IAAgB9E,GAAYA,EAAStB,aAClDoG,EAAYN,YACZM,EAAcA,EAAYN,UAAUxE,EAASyE,eAAiBrH,IAOlE4C,EAAStB,WAAW6D,aAAauC,EAAa9E,IAG3C8E,CACX,C,ylDC7uBJ,aACA,YACA,YASA,YACA,SACA,SAEA,0BAwJA,QAnJW,EAAAO,KAAP,SACIC,GAEA,QAFA,IAAAA,IAAAA,EAAiC,EAAAC,cAEX,oBAAXC,OACP,OAAIC,EAAwBC,aACxB,EAAAC,aAAaC,KACT,2HAEGC,QAAQC,QAAQL,EAAwBC,eAE/CD,EAAwBC,YAAc,IAAI,UACtCJ,GAEJG,EAAwBC,YAAYK,oBAChCN,EAAwBO,SAErBH,QAAQC,QAAQL,EAAwBC,cAGnDD,EAAwBH,WAAaA,CAE7C,EAEe,EAAAU,QAAf,WACIvE,OAAOwE,OACHR,EAAwBS,aAC1BC,SAAQ,SAACC,GACPA,GACJ,GACJ,EAEe,EAAAC,UAAf,SACIC,GAEA,IAAMC,GAAc,UAEpB,OADAd,EAAwBS,YAAYK,GAAeD,EAC5CC,CACX,EAOO,EAAAC,cAAP,SACIC,EACAC,GAEQ,OAA8BA,GAAU,CAAC,GAAC,kBAA1CC,OAAiB,IAAG,GAAK,EAC7BlB,EAAwBH,aACxBG,EAAwBC,YAAc,IAAI,UACtCD,EAAwBH,YAE5BG,EAAwBC,YAAYK,oBAChCN,EAAwBO,SAE5BP,EAAwBH,WAAa,MAEzC,IAAMiB,EAAcd,EAAwBY,UAAUI,GAItD,OAHKE,GACDF,IAEGF,CACX,EAOO,EAAAK,WAAP,SACIH,GAEA,OAAOhB,EAAwBe,cAAcC,EAAkB,CAC3DE,mBAAmB,GAE3B,EAEO,EAAAE,yBAAP,SACIP,GAEwB,iBAAbA,GACFb,EAAwBS,YAAYI,IACrC,EAAAX,aAAaC,KAAK,iDAEfH,EAAwBS,YAAYI,IAChB,mBAAbA,IACY7E,OAAOqF,QAC7BrB,EAAwBS,aAC1Ba,MAAK,SAAC,G,IAACC,EAAG,KACR,OADc,OACDV,WACFb,EAAwBS,YAAYc,IACpC,EAGf,KAGI,EAAArB,aAAaC,KACT,gDAIhB,EAEa,EAAAqB,oBAAb,SACIC,EACA/D,G,mEAEA,MAA6B,mBAAlB+D,EAASC,KACT,CAAP,EAAOD,EACFE,SACAD,OACAE,MAAK,SAACC,GACH,OAAOA,EAAOC,KAAI,SAACC,GACf,OAAOA,EAAID,KAAI,SAACE,G,MAIZ,OAAO,EAAP,KAHkB,aACd,UAAGtE,EAAM,YAAI+D,EAASQ,oBAEJD,EAAK,CAC/B,GACJ,GACJ,IACCE,OAAM,SAACC,GACJC,QAAQC,MAAMF,EAClB,KAC6B,mBAAnBV,EAASa,MAChB,CAAP,EAAOb,EACFE,SACAW,QACAV,MAAK,SAACW,G,MAMH,OAFW,OAHO,aACd,UAAG7E,EAAM,YAAI+D,EAASQ,oBAEGM,EAAG,CAGpC,IACCL,OAAM,SAACC,GACJC,QAAQC,MAAMF,EAClB,K,WAIL,EAAAK,cAAP,WACI,OAAO,UAAYC,OACvB,EAtJO,EAAAxC,YAAkC,KAClC,EAAAJ,WAAwC,KACxC,EAAAY,YAAwD,CAAC,EAqJpE,C,CAxJA,GAAa,EAAAT,wBAAAA,EA0Jb,UAAeA,EAEf1K,EAAOD,QAAU2K,C,yMC3KjB,gBACA,OAEa,EAAAA,wBAA0B,UAEvC,UAAe,EAAAA,wBACf1K,EAAOD,QAAU,EAAA2K,uB,6YCNjB,aAOA,SAQA,SACA,SACA,YACA,QAEA,aAsDI,WAAY0C,QAAA,IAAAA,IAAAA,EAA+B,EAAA5C,cAA3C,WAjDQ,KAAAmB,OAAkB,CACtB0B,KAAK,EACLC,QAAQ,EACRC,oBAAoB,EACpBC,uBAAuB,EACvBC,WAAY,CACRH,QAAQ,EACRI,QAAS,GACTC,SAAU,MACVC,yBAAyB,GAE7BC,aAAc,CACVC,OAAQ,GACRC,YAAa,GACbC,eAAgB,GAChBC,SAAU,IAGdC,gBAAiB,CACbC,SAAU,QACVC,KAAM,uBACNC,KAAM,IACNC,IAAK,oCAETC,SAAU,CACNC,aAAc,CAAC,EACfC,QAAS,CACLC,QAAS,IAEbX,YAAa,IAGjBY,SAAU,WAEV,GAGI,KAAAC,QAAoC,KACpC,KAAAC,4BAAkD,KAElD,KAAAC,aAGJ,CACAC,SAAU,KACVC,SAAU,MAEN,KAAAC,oBAA+C,WAwS/C,KAAAC,kBAAoB,WACxB,IACK5M,SAAS6M,eAAe,iBACzB,EAAKxD,OAAO8B,WAAWH,OACzB,CACE,IAAMsB,EAAUtM,SAASG,cAAc,UACvCmM,EAAQQ,UAAUC,IAAI,gBACtBT,EAAQrL,aAAa,eAAgB,mBACrCqL,EAAQ5J,GAAK,eACbyF,OAAOnI,SAASqD,KAAK2J,sBAAsB,YAAaV,GACxD,EAAKE,aAAaC,UAAW,IAAAQ,0BACzB,EAAKC,eAET,EAAKV,aAAaE,UAAW,IAAAS,0BACzB,EAAKD,cACL,EAAKE,kBAGTd,EAAQxJ,UAAY,GACpBwJ,EAAQrF,YAAY,EAAKuF,aAAaC,UACtC,EAAKH,QAAUA,C,CAEnB,EAAKe,uBACT,GA5TI,IAAAC,gBAAexC,EAAUjN,KAAKwL,QAE9BxL,KAAK0P,oBAAsB1P,KAAK0P,oBAAoBC,KAAK3P,MACzDA,KAAK4P,oBAAsB5P,KAAK4P,oBAAoBD,KAAK3P,MACzDA,KAAKqP,cAAgBrP,KAAKqP,cAAcM,KAAK3P,MAC7CA,KAAKuP,iBAAmBvP,KAAKuP,iBAAiBI,KAAK3P,MACnDA,KAAK6P,iBAAmB7P,KAAK6P,iBAAiBF,KAAK3P,MACnDA,KAAK6K,oBAAsB7K,KAAK6K,oBAAoB8E,KAAK3P,MACzDA,KAAK8P,uBAAyB9P,KAAK8P,uBAAuBH,KAAK3P,MAC/DA,KAAK+O,kBAAoB/O,KAAK+O,kBAAkBY,KAAK3P,MACrDA,KAAK+P,gBAAkB/P,KAAK+P,gBAAgBJ,KAAK3P,MACjDA,KAAKwP,sBAAwBxP,KAAKwP,sBAAsBG,KAAK3P,MAC7DA,KAAKgQ,eAAiBhQ,KAAKgQ,eAAeL,KAAK3P,MAG3CiN,EAASgD,OACT,EAAAxF,aAAawF,MACT,sDACAjQ,KAAKwL,QAITxL,KAAKwL,OAAO2B,aAEY/K,WAAbD,UACiB,aAAxBA,SAAS+N,WAETlQ,KAAK+P,kBAELzF,OAAO6F,iBAAiB,OAAQnQ,KAAK+P,iBAEzCzF,OAAO6F,iBAAiB,UAAWnQ,KAAK8P,wBACxCxF,OAAO6F,iBAAiB,SAAUnQ,KAAKwP,uBAEnCxP,KAAKwL,OAAO8B,WAAWH,QACvB7C,OAAO6F,iBAAiB,YAAanQ,KAAK0P,qBAG1C1P,KAAKwL,OAAO0B,MACZ5C,OAAO6F,iBAAiB,QAAQ,SAACC,GACZjO,SAASkO,iBAAiB,KAClCpF,SAAQ,SAACqF,GACd,IAAMC,EAAoBpO,SAASqO,SAASC,OAC5C,GAAIH,EAAII,MAAQJ,EAAII,KAAKC,SAASJ,GAAY,CAC1C,IAAMK,GAAS,IAAAC,yBAAwBP,EAAII,MAC3CJ,EAAII,KAAOE,C,CAEnB,GACJ,IAGAtG,OAAO6F,iBAAiB,SAAS,SAACW,GAC9B,IAAMC,EAAcD,EAAMC,OACpBC,EAA2BD,EAAOL,KAClCH,EAAoBpO,SAASqO,SAASC,OAC5C,GACIO,GACAA,EAAWL,SAASJ,KACnBS,EAAWL,SAAS,gBACvB,CACE,IAAMC,GAAS,IAAAC,yBAAwBE,EAAOL,MAC9CI,EAAMC,OAAOL,KAAOE,GAAUG,EAAOL,I,CAE7C,MAEG1Q,KAAKwL,OAAO6B,uBACnBrN,KAAKgQ,gBAEb,CA4VJ,OA1VY,YAAAN,oBAAR,SAA4BU,GAIxB,I,UAHIa,GAAU,EAGY,MAFLb,EAAEc,eAEG,eAAc,CAAnC,IACKC,EADY,KAElB,GAAyB,SAArBA,EAAQpO,SAAqB,MACjC,GAAqC,mBAA1BoO,aAAO,EAAPA,EAASvM,cAApB,CAEA,IAAMwM,EAAUD,EAAQvM,aAAa,aAEjCqM,GAAWG,GACPpR,KAAK0O,6BACL1O,KAAK0O,4BAA4BO,UAAUoC,OACvC,kBAERF,EAAQlC,UAAUC,IAAI,kBACtBlP,KAAK0O,4BAA8ByC,EAE/BnR,KAAKwP,0BACO,QAAZ,EAAAxP,KAAKyO,eAAO,SAAErL,aAAa,oBAAqBgO,GACpC,QAAZ,EAAApR,KAAKyO,eAAO,SAAErL,aACV,eAC4B,QAA5B,EAAA+N,EAAQvM,aAAa,eAAO,QAAI,KAIxCqM,GAAU,GACFA,GACRE,EAAQlC,UAAUoC,OAAO,iBAtB4B,C,CAyBjE,EAEQ,YAAAzB,oBAAR,SACIpD,EACA8E,EACAC,EACAC,GAEA,QAJA,IAAAF,IAAAA,EAAA,UAIKtR,KAAKwL,OAAOkC,aAAaC,OAC1B,KAAM,2VAWV,IAAK3N,KAAKwL,OAAOkC,aAAaE,YAC1B,KAAM,sXAWV,IAAMI,EAAWyD,OAAOzR,KAAKwL,OAAOuC,gBAAgBC,UAC9CC,EAAOwD,OAAOzR,KAAKwL,OAAOuC,gBAAgBE,MAC1CC,EAAOuD,OAAOzR,KAAKwL,OAAOuC,gBAAgBG,MAC1CN,EAAc6D,OAAOzR,KAAKwL,OAAOkC,aAAaE,aAE9C8D,EAAU,kBACZ1R,KAAKwL,OAAOkC,aAAaC,OAAM,yBAClBnB,EAAgB,YAC7B8E,QAAAA,EAAU,QAAO,kBACXC,EAAS,SAEbpD,EAAM,IAAIwD,IAAI,UAAG3D,EAAQ,cAAMC,IAOrC,OANAE,EAAID,KAAOA,EACXC,EAAIyD,KAAOF,EACXvD,EAAI0D,aAAaC,OAAO,gBAAiBN,GACzCrD,EAAI0D,aAAaC,OAAO,iBAAkBR,QAAAA,EAAU,SACpDnD,EAAI0D,aAAaC,OAAO,sBAAuBlE,GAExC,UAAGO,EAAIsC,OAAM,YAAItC,EAAIyD,MAAI,OAAGzD,EAAI4D,OAC3C,EAEQ,YAAA1C,cAAR,WACI,GAAKrP,KAAKyO,QAAV,CAEA,IAAM2C,EAAUpR,KAAKyO,QAAQ7J,aAAa,qBAE1C,GAAIwM,EAAS,CACH,MACFA,EAAQhR,MAAM,KADXoM,EAAgB,KAAE+E,EAAS,KAAED,EAAM,KAAKU,EAAK,WAIpD,GAAI1H,OAAOkG,WAAalG,OAAO2H,OAAOzB,SAClClG,OAAO2H,OAAOC,YACV,CACIC,KAAM,eACNC,KAAM,SACNC,KAAM,CACFL,MAAOA,EAAMtQ,KAAK,KAClB8K,iBAAgB,EAChB+E,UAAS,EACTD,OAAM,IAGd,UAGJ,IACI,IAAMgB,EAActS,KAAK4P,oBACrBpD,EACA8E,EACAC,EACAS,EAAMtQ,KAAK,MAGf4I,OAAOiI,KAAKD,EAAa,S,CAC3B,MAAO1F,GACL,EAAAnC,aAAamC,MAAMA,E,EAlCN,CAsC7B,EAEQ,YAAA2C,iBAAR,WACI,GAAKvP,KAAKyO,QAAV,CACA,IAAM+D,EAAgBxS,KAAKyO,QAAQ7J,aAAa,gBAE5C4N,GACAlI,OAAOkG,SAASiC,OAAOD,EAJF,CAM7B,EAEQ,YAAA3C,iBAAR,SAAyB6C,GAErB1S,KAAKwL,OAAO4C,SAASC,aAAe,EAAH,OAC1BrO,KAAKwL,OAAO4C,SAASC,cACrBqE,GAAqB,CACxBrE,aAAcqE,EAAsBd,OAExC5R,KAAKwL,OAAOgD,UAChB,EAEA,YAAA3D,oBAAA,SAAoBU,GAChBvL,KAAKwL,OAAOgD,SAAWjD,CAC3B,EAEQ,YAAAuE,uBAAR,SACIM,GADJ,WAGI,GAAsB,iBAAXA,EAAEiC,MAEO,iBAAhBjC,EAAEiC,KAAKF,KAEX,OAAQ/B,EAAEiC,KAAKD,MACX,IAAK,mBACK,MAA+BpS,KAAKwL,OAAOkC,aAAzCG,EAAc,iBAAEC,EAAQ,WACxB8D,EAASxB,EAAEiC,KAAKA,KAAI,KAE5B,GAAIrS,KAAKwL,OAAO0B,IAAK,CAGjB,IAAMyF,EAAY,IAAIhB,IAAIrH,OAAOkG,SAASE,MAE1CiC,EAAUd,aAAaC,OAAO,eAAgBF,GAC9Ce,EAAUd,aAAaC,OACnB,mBACAjE,GAEJ8E,EAAUd,aAAaC,OAAO,YAAahE,GAE3CjB,MAAM8F,EAAUC,WAAY,CACxBC,OAAQ,QAEP1G,MAAK,SAACG,GAAQ,OAAAA,EAAIwG,MAAJ,IACd3G,MAAK,SAACG,IACH,IAAAyG,oBAAmB5Q,SAAUmK,EAAK,CAC9B0G,gBAAiB,EAAKjE,kBACtBkE,mBACI,EAAKzH,OAAO4B,oBAExB,G,MAEJpN,KAAK6P,iBAAiB,CAClBrD,iBAAkBqB,EAClB0D,UAAWzD,EACX8D,KAAMA,IAGd,MAEJ,IAAK,WACK,MAA+BxB,EAAEiC,KAAKA,KAApCxE,EAAc,iBAAEC,EAAQ,WAEhC9N,KAAKwL,OAAOkC,aAAaG,eAAiBA,EAC1C7N,KAAKwL,OAAOkC,aAAaI,SAAWA,EACpC,MAEJ,IAAK,UACD,OAAQsC,EAAEiC,KAAKA,KAAKD,MAChB,IAAK,UACD9H,OAAO4I,QAAQC,UACf,MAEJ,IAAK,WACD7I,OAAO4I,QAAQE,OACf,MAEJ,IAAK,SACD9I,OAAO4I,QAAQG,KAGvB,MAEJ,IAAK,oCACO,IAAA7N,EAAS4K,EAAEiC,KAAKA,KAAI,MAC5B,IAAAiB,qBAAoB9N,EAAMxF,KAAK+O,mBAG3C,EA4BQ,YAAAgB,gBAAR,WACI/P,KAAK6P,iBAAiB,CAClBxB,aAAc,SAIlBrO,KAAK+O,oBAELzE,OAAO2H,OAAOC,YACV,CACIC,KAAM,eACNC,KAAM,OACNC,KAAM,CACF7G,OAAQ,CACJ+H,aAAcvT,KAAKwL,OAAO0B,IAC1BwD,KAAMpG,OAAOkG,SAASE,KACtB8C,WAAY,UAAYxG,WAIpC,KAIChN,KAAKwL,OAAO0B,KACbuG,aAAY,WACRnJ,OAAO2H,OAAOC,YACV,CACIC,KAAM,eACNC,KAAM,mBACNC,KAAM,CACF3B,KAAMpG,OAAOkG,SAASE,OAG9B,IAER,GAAG,KAEX,EAEQ,YAAAlB,sBAAR,W,MACI,IAAKxP,KAAK0O,8BAAgC1O,KAAKyO,QAAS,OAAO,EAE/D,IAAMiF,EACF1T,KAAK0O,4BAA4BiF,wBAC/BC,EACwB,QAA1B,EAAA5T,KAAKyO,QAAQoF,qBAAa,eAAEF,wBAEhC,GAAID,GAAwBE,EAA8B,CAClD,OAIqB,IAAAE,uBACrB9T,KAAK0O,4BACL1O,KAAKwL,OAAO8B,WAAWE,UALvBuG,EAAmB,sBAEnBC,EAAkB,qBA+BtB,OAxBID,EAAsB,IAElBA,EADAL,EAAqBO,IAAM,EACLP,EAAqBO,IACpB,GAG/BjU,KAAKyO,QAAQyF,MAAMD,IAAMF,EAAsB,KAC/C/T,KAAKyO,QAAQyF,MAAMC,OACfnU,KAAK0O,4BAA4BwF,MAAMC,QAAU,MACrDnU,KAAKyO,QAAQyF,MAAME,KAAOJ,EAAqB,KAE3ChU,KAAK2O,aAAaC,UAAY5O,KAAK2O,aAAaE,WAC5C7O,KAAK0O,4BAA4BhL,aAAa,QACb,aAA7B1D,KAAK8O,sBACL9O,KAAKyO,QAAQxJ,UAAY,GACzBjF,KAAKyO,QAAQrF,YAAYpJ,KAAK2O,aAAaE,UAC3C7O,KAAK8O,oBAAsB,YAEK,aAA7B9O,KAAK8O,sBACZ9O,KAAKyO,QAAQxJ,UAAY,GACzBjF,KAAKyO,QAAQrF,YAAYpJ,KAAK2O,aAAaC,UAC3C5O,KAAK8O,oBAAsB,cAG5B,C,CAGX,OAAO,CACX,EAGQ,YAAAkB,eAAR,WACkB7N,SAASkO,iBAAiB,eAElCpF,SAAQ,SAACtG,GACXA,EAAKtB,gBAAgB,YACzB,GACJ,EACJ,EAvdA,G,6GClBa,EAAAgH,aAA0B,CACnC6C,KAAK,EACLC,QAAQ,EACRE,uBAAuB,EACvBC,WAAY,CACRH,QAAQ,EACRI,QAAS,GACTC,SAAU,MACVC,yBAAyB,GAG7BC,aAAc,CACVC,OAAQ,GACRC,YAAa,IAGjBG,gBAAiB,CACbC,SAAU,QACVC,KAAM,uBACNC,KAAM,KAEVE,SAAU,CACNC,aAAc,CAAC,EACfC,QAAS,CACLC,QAAS,IAEbX,YAAa,IAEjBR,oBAAoB,E,yHC9BxB,aACA,SAGMiH,EAAwB,SAC1BC,EACAlK,G,UASA,GAPAkK,EAAevG,gBAAgBE,KACZ,QAAf,EAAA7D,EAAW6D,YAAI,QAAIqG,EAAevG,gBAAgBE,KACtDqG,EAAevG,gBAAgBC,SACR,QAAnB,EAAA5D,EAAW4D,gBAAQ,QAAIsG,EAAevG,gBAAgBC,SAC1DsG,EAAevG,gBAAgBG,KACZ,QAAf,EAAA9D,EAAW8D,YAAI,QAAIoG,EAAevG,gBAAgBG,UAE1B9L,IAAxBgI,EAAW4D,eAA8C5L,IAApBgI,EAAW8D,KAChD,OAAQ9D,EAAW4D,UACf,IAAK,OACDsG,EAAevG,gBAAgBG,KAAO,GACtC,MAEJ,IAAK,QACDoG,EAAevG,gBAAgBG,KAAO,IAOlD,IAAID,EAAOqG,EAAevG,gBAAgBE,KAEtCA,EAAKsG,SAAS,OACdtG,EAAOA,EAAKxM,MAAM,GAAI,GACtB6S,EAAevG,gBAAgBE,KAAOA,GAG1CqG,EAAevG,gBAAgBI,IAAM,UAAGmG,EAAevG,gBAAgBC,SAAQ,cAAMsG,EAAevG,gBAAgBE,KAAI,YAAIqG,EAAevG,gBAAgBG,KAC/J,EAEA,SAASsG,EACLC,GAEA,OAAOlO,OAAOmO,UAAUC,eAAeC,KAAKH,EAAS,cACzD,CAQa,EAAAhF,eAAiB,SAC1BxC,EACAzB,G,kIAGA,GAAIgJ,EAAmBvH,GAAW,CAC9B,EAAAxC,aAAaC,KACT,+HAGJ,IAAMmK,IAAoB5H,aAAQ,EAARA,EAAUoB,eAAgB,CAAC,EAGrD7C,EAAO0B,KAAM,EAEb1B,EAAO4B,mBACiC,QAApC,EAAAyH,GAAkBzH,0BAAkB,QAAI5B,EAAO4B,mBAEnD5B,EAAO2B,OAAiC,QAAxB,EAAA0H,GAAkB1H,cAAM,QAAI3B,EAAO2B,OAEnD3B,EAAO6B,sBACoC,QAAvC,EAAAwH,GAAkBxH,6BAAqB,QACvC7B,EAAO6B,sBAEX7B,EAAO8B,WAAa,CAChBH,QAAQ,IAAA2H,wBACwB,QAA5B,EAAAD,GAAkBvH,kBAAU,QAAI9B,EAAO8B,YAG3CC,QACI9M,MAAMsU,QAAoC,QAA5B,EAAAF,GAAkBvH,kBAAU,eAAEC,WAChB,QAA5B,EAAAsH,GAAkBvH,kBAAU,eAAEC,SACI,QAA5B,EAAAsH,GAAkBvH,kBAAU,eAAEC,QACL,QAAzB,EAAA/B,EAAO8B,WAAWC,eAAO,QAAI,GACvCC,SAE8B,QAD1B,EAAsC,QAAtC,EAA4B,QAA5B,EAAAqH,GAAkBvH,kBAAU,eAAEE,gBAAQ,QACtChC,EAAO8B,WAAWE,gBAAQ,QAC1B,MAEJC,wBAE6C,QADzC,EAAqD,QAArD,EAA4B,QAA5B,EAAAoH,GAAkBvH,kBAAU,eAAEG,+BAAuB,QACrDjC,EAAO8B,WAAWG,+BAAuB,UAIjDjC,EAAO4C,SAAWnB,EAId1G,OAAOmO,UAAUC,eAAeC,KAAK3H,EAASqB,QAAS,YACvDrB,EAASqB,QAAQC,UAEjB/C,EAAOkC,aAAaC,OAASV,EAASqB,QAAQC,SAE9ChI,OAAOmO,UAAUC,eAAeC,KAAK3H,EAAU,iBAC/CzB,EAAOkC,aAAaE,YAAcX,EAASW,aAI/CyG,EACI7I,EACiC,QAAjC,EAAAqJ,GAAkB9G,uBAAe,QAAIvC,EAAOuC,gB,MAE7C,IAlECyG,EAkEoBvH,GAAW,CACnC,IAAMmB,GACFnB,EAASmB,UAAY5C,EAAO4C,SAEhC5C,EAAO2B,OAC6C,QAAhD,EAAe,QAAf,EAAAF,EAASE,cAAM,QAAyB,QAArB,EAAAiB,GAASC,oBAAY,eAAElB,cAAM,QAAI3B,EAAO2B,OAE/D3B,EAAO0B,IAGmD,QAFtD,EAC0B,QAD1B,EAAY,QAAZ,EAAAD,EAASC,WAAG,QACS,QAArB,EAAAkB,GAASC,oBAAY,eAAEnB,WAAG,QACI,iBAAtBD,EAASmB,gBAAqC,SAG1D5C,EAAO4B,mBAEsC,QADzC,EAA2B,QAA3B,EAAAH,EAASG,0BAAkB,QACN,QAArB,EAAAgB,GAASC,oBAAY,eAAEjB,0BAAkB,QACzC5B,EAAO4B,mBAEX5B,EAAO4C,SAAWA,GAElB5C,EAAO6B,sBAEyC,QAD5C,EAA8B,QAA9B,EAAAJ,EAASI,6BAAqB,QACT,QAArB,EAAAe,GAASC,oBAAY,eAAEhB,6BAAqB,QAC5C7B,EAAO6B,sBAEX7B,EAAO8B,WAAa,CAChBH,QAAQ,IAAA2H,wBAEiC,QADrC,EAAmB,QAAnB,EAAA7H,EAASK,kBAAU,QACM,QAArB,EAAAc,GAASC,oBAAY,eAAEf,kBAAU,QACjC9B,EAAO8B,YAGfC,QACI9M,MAAMsU,QAA2B,QAAnB,EAAA9H,EAASK,kBAAU,eAAEC,WAChB,QAAnB,EAAAN,EAASK,kBAAU,eAAEC,SACI,QAAnB,EAAAN,EAASK,kBAAU,eAAEC,QACrB9M,MAAMsU,QAA6B,QAArB,EAAA3G,GAASC,oBAAY,eAAEd,WAChB,QAArB,EAAAa,GAASC,oBAAY,eAAEd,SACF,QAArB,EAAAa,GAASC,oBAAY,eAAEd,QACE,QAAzB,EAAA/B,EAAO8B,WAAWC,eAAO,QAAI,GACvCC,SAG8B,QAF1B,EAC+B,QAD/B,EAA6B,QAA7B,EAAmB,QAAnB,EAAAP,EAASK,kBAAU,eAAEE,gBAAQ,QACR,QAArB,EAAAY,GAASC,oBAAY,eAAEb,gBAAQ,QAC/BhC,EAAO8B,WAAWE,gBAAQ,QAC1B,MAEJC,wBAG6C,QAFzC,EAC8C,QAD9C,EAA4C,QAA5C,EAAmB,QAAnB,EAAAR,EAASK,kBAAU,eAAEG,+BAAuB,QACvB,QAArB,EAAAW,GAASC,oBAAY,eAAEZ,+BAAuB,QAC9CjC,EAAO8B,WAAWG,+BAAuB,UAIjDjC,EAAOkC,aAAaC,OAES,QADzB,GAA6B,QAA7B,GAAqB,QAArB,GAAAV,EAASS,oBAAY,iBAAEC,cAAM,UACb,QAAhB,GAAAS,GAASE,eAAO,iBAAEC,eAAO,UACzB/C,EAAOkC,aAAaC,OAExBnC,EAAOkC,aAAaE,YAEI,QADpB,GAAkC,QAAlC,GAAqB,QAArB,GAAAX,EAASS,oBAAY,iBAAEE,mBAAW,UAClCQ,GAASR,mBAAW,UACpBpC,EAAOkC,aAAaE,YAGxByG,EACI7I,EAE0C,QAD1C,GAAwB,QAAxB,GAAAyB,EAASc,uBAAe,UACC,QAArB,GAAAK,GAASC,oBAAY,iBAAEN,uBAAe,UACtCvC,EAAOuC,gB,CAGvB,EAEa,EAAAiH,iBAAmB,CAC5BjH,gBAAiBsG,E,wRC5LrB,aA8GA,SAASY,IACL,OAAO3K,OAAOkG,WAAalG,OAAO2H,OAAOzB,QAC7C,CA7GA,uBACI,MAAyB,oBAAXlG,MAClB,EAEa,EAAA4K,yBAA2B,ocAO3B,EAAAC,yBAA2B,msCAa3B,EAAA/F,yBAA2B,SACpCgG,GAEA,IAAMC,EAAqBlT,SAASG,cAAc,OAalD,OAZA+S,EAAmBpG,UAAUC,IAAI,qBAAsB,YACvDmG,EAAmBjS,aACf,eACA,6BAEJiS,EAAmBpQ,UAAY,kZAK/BoQ,EAAmBlF,iBAAiB,QAASiF,GAEtCC,CACX,EAEa,EAAA/F,yBAA2B,SACpC8F,EACAE,GAEA,IAAMC,EAAqBpT,SAASG,cAAc,OAClDiT,EAAmBtG,UAAUC,IAAI,sBACjCqG,EAAmBnS,aAAa,aAAc,QAC9CmS,EAAmBnS,aACf,eACA,6BAEJmS,EAAmBtQ,UAAY,+YAK/BsQ,EAAmBpF,iBAAiB,QAASiF,GAE7C,IAAMI,EAA6BrT,SAASG,cAAc,OAC1DkT,EAA2BvG,UAAUC,IAAI,sBACzCsG,EAA2BpS,aAAa,aAAc,cACtDoS,EAA2BpS,aACvB,eACA,sCAEJoS,EAA2BvQ,UAAY,urBAKvCuQ,EAA2BrF,iBAAiB,QAASmF,GAErD,IAAMG,EAAuBtT,SAASuT,yBACtCD,EAAqBrM,YAAYmM,GACjCE,EAAqBrM,YAAYoM,GAEjC,IAAMG,EAAcxT,SAASG,cAAc,OAI3C,OAHAqT,EAAYvM,YAAYqM,GACxBE,EAAY1G,UAAUC,IAAI,YAEnByG,CACX,EAEA,mCAAwCC,GACpC,IACI,IAAMC,EAAc,IAAIlE,IAAIxP,SAASqO,SAASE,MACxCE,EAAc,IAAIe,IAAIiE,GACtBE,EACFD,EAAOhE,aAAakE,IAAI,gBACtBC,EACFH,EAAOhE,aAAakE,IAAI,oBACtBjI,EAA0B+H,EAAOhE,aAAakE,IAAI,aAMxD,OALID,GAAmBE,GAASlI,IAC5B8C,EAAOiB,aAAaoE,IAAI,eAAgBH,GACxClF,EAAOiB,aAAaoE,IAAI,mBAAoBD,GAC5CpF,EAAOiB,aAAaoE,IAAI,YAAanI,IAElC8C,EAAOF,I,CAChB,MAAO9D,GAEL,OADA,EAAAnC,aAAamC,MAAM,0CACZgJ,C,CAEf,EAMA,kCAAuCtI,G,QACnC,IAAKA,EAAWH,OAKZ,YAJ0B/K,IAAtBkL,EAAWH,QACX,EAAA1C,aAAamC,MACT,oDAED,EAIX,IACI,IACMsJ,EADkB,IAAIvE,IAAIrH,OAAOkG,SAASE,MAE5BmB,aAAakE,IAAI,gBACrC,GAC6B,OAAzBG,IACuC,IAAvC5I,EAAWG,wBAEX,MAAgC,UAAzByI,C,CACb,MAAOtJ,GACL,EAAAnC,aAAamC,MAAMA,E,CAIvB,QACIqI,MACkB,QAAlB,EAAA3H,EAAWC,eAAO,eAAEtB,MAChB,SAACsB,GAAY,MAAY,4BAAZA,CAAA,OAIV0H,MAMW,QAAlB,EAAA3H,EAAWC,eAAO,eAAEtB,MAChB,SAACsB,GAAY,MAAY,6BAAZA,CAAA,KAQzB,EAEA,iCACI4I,EACAC,GAEA,IAAKD,EACD,MAAO,CAAEpC,oBAAqB,EAAGC,mBAAoB,GAEzD,IAAMqC,EAAqBF,EAAsBvR,aAC7C,6BAEJ,OAcJ,SACIuR,EACAE,GAEA,IAAMC,EAA0C,CAC5CvC,oBAAqB,EACrBC,mBAAoB,GAElBN,EAAuByC,EAAsBxC,wBACnD,IACI,IAAM4C,EAA0B,CAC5BC,MAAO,GACPC,UAAW,GACXC,OAAQ,GACRC,YAAa,EACbC,gBAAiB,IAGrB,OAAQP,GACJ,IAAK,aACDC,EAAmBvC,oBACfL,EAAqBO,IAAMsC,EAAwBG,OACvDJ,EAAmBtC,mBACfN,EAAqB8C,MAAQ,EAC7BD,EAAwBE,UACxB/C,EAAqBU,KACzB,MACJ,IAAK,YACDkC,EAAmBvC,oBACfL,EAAqBO,IAAMsC,EAAwBG,OACvDJ,EAAmBtC,mBACfN,EAAqBmD,MAAQN,EAAwBC,MACzD,MACJ,IAAK,QACDF,EAAmBvC,oBACfL,EAAqBO,IACrBsC,EAAwBI,YAC5BL,EAAmBtC,mBACfN,EAAqBmD,MACrBN,EAAwBI,YAC5B,MACJ,IAAK,SAQL,IAAK,cACDL,EAAmBvC,oBACfL,EAAqBoD,OACrBP,EAAwBI,YAC5BL,EAAmBtC,mBACfN,EAAqBU,KACrBmC,EAAwBI,YAC5B,MACJ,IAAK,gBACDL,EAAmBvC,oBACfL,EAAqBoD,OACrBP,EAAwBI,YAC5BL,EAAmBtC,mBACfN,EAAqB8C,MAAQ,EAC7BD,EAAwBE,UACxB/C,EAAqBU,KACzB,MACJ,IAAK,eACDkC,EAAmBvC,oBACfL,EAAqBoD,OACrBP,EAAwBI,YAC5BL,EAAmBtC,mBACfN,EAAqBmD,MAAQN,EAAwBC,MACzD,MACJ,IAAK,OACDF,EAAmBvC,oBACfL,EAAqBO,IACrBsC,EAAwBI,YAC5BL,EAAmBtC,mBACfN,EAAqBU,KACrBmC,EAAwBK,gBAC5B,MAEJ,QACIN,EAAmBvC,oBACfL,EAAqBO,IAAMsC,EAAwBG,OACvDJ,EAAmBtC,mBACfN,EAAqBU,KACrBmC,EAAwBI,YAGpC,OAAOL,C,CACT,MAAO1J,GAEL,OADA,EAAAnC,aAAamC,MAAMA,GACZ0J,C,CAEf,CA5GeS,CACHZ,EAFJE,GAUAD,GAAmB,MAE3B,C,wUCxLA,8BA0BA,QAzBmB,EAAAY,SAAf,SACIC,EAMAC,GAGID,EAAW,gBAAC,qBAAwBC,GAAO,GAEnD,EAEc,EAAAtK,MAAd,W,IAAoB,sDAChB5M,KAAKgX,SAASrK,QAAQC,MAAOyF,EACjC,EAEc,EAAA3H,KAAd,W,IAAmB,sDACf1K,KAAKgX,SAASrK,QAAQjC,KAAM2H,EAChC,EAEc,EAAApC,MAAd,W,IAAoB,sDAChBjQ,KAAKgX,SAASrK,QAAQsD,MAAOoC,EACjC,EACJ,EA1BA,GAAa,EAAA5H,aAAAA,C,koDCEb,gBAEA,SAAgB0M,IACZ,IAAMC,EAAkBjV,SAASkO,iBAAiB,UAC9CgH,EAAuBD,EAAgB7W,OAEvC+W,EAAc,EAuBlB,SAASC,IACLD,IAf6B,KAF7BD,GAGI/M,OAAO2H,OAAOC,YACV,CACIC,KAAM,eACNC,KAAM,oCACNC,KAAM,CACF7M,KAAMrD,SAASqD,KAAKgS,YAG5B,KAQRC,GACJ,CACA,SAASA,IACL,GA1BOH,EAAcF,EAAgB7W,OA0BZ,CACrB,IAAMmX,EAAgBN,EAAgBE,GAEhC,EAASI,EAAclU,WACvBmU,EAAYxV,SAASG,cAAc,UAErCoV,EAAcE,KACdD,EAAUE,QAAUN,EACpBI,EAAUG,OAASP,EACnBI,EAAUC,IAAMF,EAAcE,MAE9BD,EAAU7E,KAAO4E,EAAc5E,KAC/ByE,KAEJ,WAAQlQ,aAAasQ,EAAWD,E,CAExC,CAEIN,EAAgB7W,QAChBkX,GAER,CAgEA,SAAgBnE,EACZyE,EACA/E,GAEA,IACM9Q,GADS,IAAI8V,WACAC,gBAAgBF,EAAS,cAE5C,aAAS5V,SAASqD,KAAMtD,EAAIsD,MACxBwN,GACAA,GAER,CAjIA,2BAwDA,8BACI7Q,EACA+V,EACAhY,G,wFAKQ+S,EAAwC/S,EAAO,mBAA3B8S,EAAoB9S,EAAO,gBAElD+S,GAGuB9Q,EAASkO,iBAC7B,2CAGYpF,SAAQ,SAACkN,GACrBA,EAAc9G,QAClB,KAEM+G,EAASjW,EAASG,cAAc,WAC/B4R,MAAMmE,QAAU,OACvBD,EAAOvT,GAAK,mCAGNyT,EAAuB,8BAEvBC,EAAcL,EAAalX,QAC7BsX,GACA,SAACE,EAAYC,EAAYC,GACrB,OAAIA,EACO,MAEA,aAEf,IAGJN,EAAOO,OAAS,0IAIiBJ,EAAW,+IAIHpB,EAAsB,wPAW/DhV,EAASqD,KAAK4D,YAAYgP,IA/C1B9E,EAAoB4E,EAAclF,G,WAmD1C,uB,6BCvHA,IAAI4F,E,uHACJ,IAAIC,EAAQ,IAAIC,WAAW,IACZ,SAASC,IAEtB,IAAKH,KAGHA,EAAoC,oBAAXI,QAA0BA,OAAOJ,iBAAmBI,OAAOJ,gBAAgBjJ,KAAKqJ,SAA+B,oBAAbC,UAAgE,mBAA7BA,SAASL,iBAAkCK,SAASL,gBAAgBjJ,KAAKsJ,WAGrO,MAAM,IAAIC,MAAM,4GAIpB,OAAON,EAAgBC,EACzB,CClBA,8HCMA,EAJA,SAAkBM,GAChB,MAAuB,iBAATA,GAAqB,OAAWA,EAChD,ECIA,IAFA,IAAIC,EAAY,GAEP1Y,EAAI,EAAGA,EAAI,MAAOA,EACzB0Y,EAAUxS,MAAMlG,EAAI,KAAOkS,SAAS,IAAIyG,OAAO,IAoBjD,QAjBA,SAAmBzX,GACjB,IAAIR,EAASkY,UAAU/Y,OAAS,QAAsB6B,IAAjBkX,UAAU,GAAmBA,UAAU,GAAK,EAG7EH,GAAQC,EAAUxX,EAAIR,EAAS,IAAMgY,EAAUxX,EAAIR,EAAS,IAAMgY,EAAUxX,EAAIR,EAAS,IAAMgY,EAAUxX,EAAIR,EAAS,IAAM,IAAMgY,EAAUxX,EAAIR,EAAS,IAAMgY,EAAUxX,EAAIR,EAAS,IAAM,IAAMgY,EAAUxX,EAAIR,EAAS,IAAMgY,EAAUxX,EAAIR,EAAS,IAAM,IAAMgY,EAAUxX,EAAIR,EAAS,IAAMgY,EAAUxX,EAAIR,EAAS,IAAM,IAAMgY,EAAUxX,EAAIR,EAAS,KAAOgY,EAAUxX,EAAIR,EAAS,KAAOgY,EAAUxX,EAAIR,EAAS,KAAOgY,EAAUxX,EAAIR,EAAS,KAAOgY,EAAUxX,EAAIR,EAAS,KAAOgY,EAAUxX,EAAIR,EAAS,MAAMI,cAMzf,IAAK,EAAS2X,GACZ,MAAMI,UAAU,+BAGlB,OAAOJ,CACT,ECrBA,IAAIK,EAEAC,EAGAC,EAAa,EACbC,EAAa,EAkFjB,QAhFA,SAAYzZ,EAAS0Z,EAAKxY,GACxB,IAAIV,EAAIkZ,GAAOxY,GAAU,EACrByY,EAAID,GAAO,IAAInZ,MAAM,IAErBkE,GADJzE,EAAUA,GAAW,CAAC,GACHyE,MAAQ6U,EACvBM,OAAgC1X,IAArBlC,EAAQ4Z,SAAyB5Z,EAAQ4Z,SAAWL,EAInE,GAAY,MAAR9U,GAA4B,MAAZmV,EAAkB,CACpC,IAAIC,EAAY7Z,EAAQ8Z,SAAW9Z,EAAQ6Y,KAAOA,KAEtC,MAARpU,IAEFA,EAAO6U,EAAU,CAAgB,EAAfO,EAAU,GAAWA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,KAG3F,MAAZD,IAEFA,EAAWL,EAAiD,OAApCM,EAAU,IAAM,EAAIA,EAAU,IAE1D,CAMA,IAAIE,OAA0B7X,IAAlBlC,EAAQ+Z,MAAsB/Z,EAAQ+Z,MAAQC,KAAKC,MAG3DC,OAA0BhY,IAAlBlC,EAAQka,MAAsBla,EAAQka,MAAQT,EAAa,EAEnEU,EAAKJ,EAAQP,GAAcU,EAAQT,GAAc,IAarD,GAXIU,EAAK,QAA0BjY,IAArBlC,EAAQ4Z,WACpBA,EAAWA,EAAW,EAAI,QAKvBO,EAAK,GAAKJ,EAAQP,SAAiCtX,IAAlBlC,EAAQka,QAC5CA,EAAQ,GAINA,GAAS,IACX,MAAM,IAAIlB,MAAM,mDAGlBQ,EAAaO,EACbN,EAAaS,EACbX,EAAYK,EAIZ,IAAIQ,GAA4B,KAAb,WAFnBL,GAAS,cAE+BG,GAAS,WACjDP,EAAEnZ,KAAO4Z,IAAO,GAAK,IACrBT,EAAEnZ,KAAO4Z,IAAO,GAAK,IACrBT,EAAEnZ,KAAO4Z,IAAO,EAAI,IACpBT,EAAEnZ,KAAY,IAAL4Z,EAET,IAAIC,EAAMN,EAAQ,WAAc,IAAQ,UACxCJ,EAAEnZ,KAAO6Z,IAAQ,EAAI,IACrBV,EAAEnZ,KAAa,IAAN6Z,EAETV,EAAEnZ,KAAO6Z,IAAQ,GAAK,GAAM,GAE5BV,EAAEnZ,KAAO6Z,IAAQ,GAAK,IAEtBV,EAAEnZ,KAAOoZ,IAAa,EAAI,IAE1BD,EAAEnZ,KAAkB,IAAXoZ,EAET,IAAK,IAAIU,EAAI,EAAGA,EAAI,IAAKA,EACvBX,EAAEnZ,EAAI8Z,GAAK7V,EAAK6V,GAGlB,OAAOZ,GAAO,EAAUC,EAC1B,EC1DA,EAhCA,SAAeV,GACb,IAAK,EAASA,GACZ,MAAMI,UAAU,gBAGlB,IAAIkB,EACA7Y,EAAM,IAAIkX,WAAW,IAuBzB,OArBAlX,EAAI,IAAM6Y,EAAIC,SAASvB,EAAK1X,MAAM,EAAG,GAAI,OAAS,GAClDG,EAAI,GAAK6Y,IAAM,GAAK,IACpB7Y,EAAI,GAAK6Y,IAAM,EAAI,IACnB7Y,EAAI,GAAS,IAAJ6Y,EAET7Y,EAAI,IAAM6Y,EAAIC,SAASvB,EAAK1X,MAAM,EAAG,IAAK,OAAS,EACnDG,EAAI,GAAS,IAAJ6Y,EAET7Y,EAAI,IAAM6Y,EAAIC,SAASvB,EAAK1X,MAAM,GAAI,IAAK,OAAS,EACpDG,EAAI,GAAS,IAAJ6Y,EAET7Y,EAAI,IAAM6Y,EAAIC,SAASvB,EAAK1X,MAAM,GAAI,IAAK,OAAS,EACpDG,EAAI,GAAS,IAAJ6Y,EAGT7Y,EAAI,KAAO6Y,EAAIC,SAASvB,EAAK1X,MAAM,GAAI,IAAK,KAAO,cAAgB,IACnEG,EAAI,IAAM6Y,EAAI,WAAc,IAC5B7Y,EAAI,IAAM6Y,IAAM,GAAK,IACrB7Y,EAAI,IAAM6Y,IAAM,GAAK,IACrB7Y,EAAI,IAAM6Y,IAAM,EAAI,IACpB7Y,EAAI,IAAU,IAAJ6Y,EACH7Y,CACT,ECfe,SAAS,EAACuB,EAAM6J,EAAS2N,GACtC,SAASC,EAAa9W,EAAO+W,EAAWjB,EAAKxY,GAS3C,GARqB,iBAAV0C,IACTA,EAjBN,SAAuB7D,GACrBA,EAAM6a,SAASC,mBAAmB9a,IAIlC,IAFA,IAAI+a,EAAQ,GAEHta,EAAI,EAAGA,EAAIT,EAAIM,SAAUG,EAChCsa,EAAMpU,KAAK3G,EAAIgD,WAAWvC,IAG5B,OAAOsa,CACT,CAOcC,CAAcnX,IAGC,iBAAd+W,IACTA,EAAY,EAAMA,IAGK,KAArBA,EAAUta,OACZ,MAAMgZ,UAAU,oEAMlB,IAAIyB,EAAQ,IAAIlC,WAAW,GAAKhV,EAAMvD,QAOtC,GANAya,EAAM/E,IAAI4E,GACVG,EAAM/E,IAAInS,EAAO+W,EAAUta,SAC3Bya,EAAQL,EAASK,IACX,GAAgB,GAAXA,EAAM,GAAYhO,EAC7BgO,EAAM,GAAgB,GAAXA,EAAM,GAAY,IAEzBpB,EAAK,CACPxY,EAASA,GAAU,EAEnB,IAAK,IAAIV,EAAI,EAAGA,EAAI,KAAMA,EACxBkZ,EAAIxY,EAASV,GAAKsa,EAAMta,GAG1B,OAAOkZ,CACT,CAEA,OAAO,EAAUoB,EACnB,CAGA,IACEJ,EAAazX,KAAOA,CACP,CAAb,MAAOuJ,GAAM,CAKf,OAFAkO,EAAaM,IA7CE,uCA8CfN,EAAajJ,IA7CE,uCA8CRiJ,CACT,CCPA,SAASO,EAAgBC,GACvB,OAAwC,IAAhCA,EAAe,KAAO,GAAK,GAAU,CAC/C,CAsHA,SAASC,EAAQC,EAAGC,GAClB,IAAIC,GAAW,MAAJF,IAAmB,MAAJC,GAE1B,OADWD,GAAK,KAAOC,GAAK,KAAOC,GAAO,KAC5B,GAAW,MAANA,CACrB,CAcA,SAASC,EAAOC,EAAGC,EAAG9B,EAAGyB,EAAGM,EAAGC,GAC7B,OAAOR,GATcS,EASQT,EAAQA,EAAQM,EAAGD,GAAIL,EAAQC,EAAGO,OATrCE,EAS0CH,GARhDE,IAAQ,GAAKC,EAQuClC,GAT1E,IAAuBiC,EAAKC,CAU5B,CAEA,SAASC,EAAML,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAGM,EAAGC,GAC/B,OAAOJ,EAAO5B,EAAIoC,GAAKpC,EAAIzR,EAAGuT,EAAG9B,EAAGyB,EAAGM,EAAGC,EAC5C,CAEA,SAASK,EAAMP,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAGM,EAAGC,GAC/B,OAAOJ,EAAO5B,EAAIzR,EAAI6T,GAAK7T,EAAGuT,EAAG9B,EAAGyB,EAAGM,EAAGC,EAC5C,CAEA,SAASM,EAAMR,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAGM,EAAGC,GAC/B,OAAOJ,EAAO5B,EAAIoC,EAAI7T,EAAGuT,EAAG9B,EAAGyB,EAAGM,EAAGC,EACvC,CAEA,SAASO,EAAMT,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAGM,EAAGC,GAC/B,OAAOJ,EAAOQ,GAAKpC,GAAKzR,GAAIuT,EAAG9B,EAAGyB,EAAGM,EAAGC,EAC1C,CAEA,MCnNA,EADSQ,EAAI,KAAM,IDkBnB,SAAarB,GACX,GAAqB,iBAAVA,EAAoB,CAC7B,IAAIsB,EAAMxB,SAASC,mBAAmBC,IAEtCA,EAAQ,IAAIlC,WAAWwD,EAAI/b,QAE3B,IAAK,IAAIG,EAAI,EAAGA,EAAI4b,EAAI/b,SAAUG,EAChCsa,EAAMta,GAAK4b,EAAIrZ,WAAWvC,EAE9B,CAEA,OAOF,SAA8B6b,GAK5B,IAJA,IAAIC,EAAS,GACTC,EAA0B,GAAfF,EAAMhc,OACjBmc,EAAS,mBAEJhc,EAAI,EAAGA,EAAI+b,EAAU/b,GAAK,EAAG,CACpC,IAAI4a,EAAIiB,EAAM7b,GAAK,KAAOA,EAAI,GAAK,IAC/Bic,EAAMjC,SAASgC,EAAOE,OAAOtB,IAAM,EAAI,IAAQoB,EAAOE,OAAW,GAAJtB,GAAW,IAC5EkB,EAAO5V,KAAK+V,EACd,CAEA,OAAOH,CACT,CAnBSK,CAiCT,SAAoBvB,EAAGhb,GAErBgb,EAAEhb,GAAO,IAAM,KAAQA,EAAM,GAC7Bgb,EAAEH,EAAgB7a,GAAO,GAAKA,EAM9B,IALA,IAAIqb,EAAI,WACJ9B,GAAK,UACLoC,GAAK,WACL7T,EAAI,UAEC1H,EAAI,EAAGA,EAAI4a,EAAE/a,OAAQG,GAAK,GAAI,CACrC,IAAIoc,EAAOnB,EACPoB,EAAOlD,EACPmD,EAAOf,EACPgB,EAAO7U,EACXuT,EAAIK,EAAML,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,GAAI,GAAI,WAChC0H,EAAI4T,EAAM5T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,GAAI,IAAK,WACrCub,EAAID,EAAMC,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,GAAI,GAAI,WACpCmZ,EAAImC,EAAMnC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,GAAI,IAAK,YACrCib,EAAIK,EAAML,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,GAAI,GAAI,WACpC0H,EAAI4T,EAAM5T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,GAAI,GAAI,YACpCub,EAAID,EAAMC,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,GAAI,IAAK,YACrCmZ,EAAImC,EAAMnC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,GAAI,IAAK,UACrCib,EAAIK,EAAML,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,GAAI,EAAG,YACnC0H,EAAI4T,EAAM5T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,GAAI,IAAK,YACrCub,EAAID,EAAMC,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,IAAK,IAAK,OACtCmZ,EAAImC,EAAMnC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,IAAK,IAAK,YACtCib,EAAIK,EAAML,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,IAAK,EAAG,YACpC0H,EAAI4T,EAAM5T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,IAAK,IAAK,UACtCub,EAAID,EAAMC,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,IAAK,IAAK,YAEtCib,EAAIO,EAAMP,EADV9B,EAAImC,EAAMnC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,IAAK,GAAI,YACrBub,EAAG7T,EAAGkT,EAAE5a,EAAI,GAAI,GAAI,WACpC0H,EAAI8T,EAAM9T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,GAAI,GAAI,YACpCub,EAAIC,EAAMD,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,IAAK,GAAI,WACrCmZ,EAAIqC,EAAMrC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,GAAI,IAAK,WACjCib,EAAIO,EAAMP,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,GAAI,GAAI,WACpC0H,EAAI8T,EAAM9T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,IAAK,EAAG,UACpCub,EAAIC,EAAMD,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,IAAK,IAAK,WACtCmZ,EAAIqC,EAAMrC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,GAAI,IAAK,WACrCib,EAAIO,EAAMP,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,GAAI,EAAG,WACnC0H,EAAI8T,EAAM9T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,IAAK,GAAI,YACrCub,EAAIC,EAAMD,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,GAAI,IAAK,WACrCmZ,EAAIqC,EAAMrC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,GAAI,GAAI,YACpCib,EAAIO,EAAMP,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,IAAK,GAAI,YACrC0H,EAAI8T,EAAM9T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,GAAI,GAAI,UACpCub,EAAIC,EAAMD,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,GAAI,GAAI,YAEpCib,EAAIQ,EAAMR,EADV9B,EAAIqC,EAAMrC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,IAAK,IAAK,YACtBub,EAAG7T,EAAGkT,EAAE5a,EAAI,GAAI,GAAI,QACpC0H,EAAI+T,EAAM/T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,GAAI,IAAK,YACrCub,EAAIE,EAAMF,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,IAAK,GAAI,YACrCmZ,EAAIsC,EAAMtC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,IAAK,IAAK,UACtCib,EAAIQ,EAAMR,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,GAAI,GAAI,YACpC0H,EAAI+T,EAAM/T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,GAAI,GAAI,YACpCub,EAAIE,EAAMF,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,GAAI,IAAK,WACrCmZ,EAAIsC,EAAMtC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,IAAK,IAAK,YACtCib,EAAIQ,EAAMR,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,IAAK,EAAG,WACpC0H,EAAI+T,EAAM/T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,GAAI,IAAK,WACjCub,EAAIE,EAAMF,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,GAAI,IAAK,WACrCmZ,EAAIsC,EAAMtC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,GAAI,GAAI,UACpCib,EAAIQ,EAAMR,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,GAAI,GAAI,WACpC0H,EAAI+T,EAAM/T,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,IAAK,IAAK,WACtCub,EAAIE,EAAMF,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,IAAK,GAAI,WAErCib,EAAIS,EAAMT,EADV9B,EAAIsC,EAAMtC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,GAAI,IAAK,WACrBub,EAAG7T,EAAGkT,EAAE5a,GAAI,GAAI,WAChC0H,EAAIgU,EAAMhU,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,GAAI,GAAI,YACpCub,EAAIG,EAAMH,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,IAAK,IAAK,YACtCmZ,EAAIuC,EAAMvC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,GAAI,IAAK,UACrCib,EAAIS,EAAMT,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,IAAK,EAAG,YACpC0H,EAAIgU,EAAMhU,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,GAAI,IAAK,YACrCub,EAAIG,EAAMH,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,IAAK,IAAK,SACtCmZ,EAAIuC,EAAMvC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,GAAI,IAAK,YACrCib,EAAIS,EAAMT,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,GAAI,EAAG,YACnC0H,EAAIgU,EAAMhU,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,IAAK,IAAK,UACtCub,EAAIG,EAAMH,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,GAAI,IAAK,YACrCmZ,EAAIuC,EAAMvC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,IAAK,GAAI,YACrCib,EAAIS,EAAMT,EAAG9B,EAAGoC,EAAG7T,EAAGkT,EAAE5a,EAAI,GAAI,GAAI,WACpC0H,EAAIgU,EAAMhU,EAAGuT,EAAG9B,EAAGoC,EAAGX,EAAE5a,EAAI,IAAK,IAAK,YACtCub,EAAIG,EAAMH,EAAG7T,EAAGuT,EAAG9B,EAAGyB,EAAE5a,EAAI,GAAI,GAAI,WACpCmZ,EAAIuC,EAAMvC,EAAGoC,EAAG7T,EAAGuT,EAAGL,EAAE5a,EAAI,GAAI,IAAK,WACrCib,EAAIN,EAAQM,EAAGmB,GACfjD,EAAIwB,EAAQxB,EAAGkD,GACfd,EAAIZ,EAAQY,EAAGe,GACf5U,EAAIiT,EAAQjT,EAAG6U,EACjB,CAEA,MAAO,CAACtB,EAAG9B,EAAGoC,EAAG7T,EACnB,CAtH8B8U,CA6H9B,SAAsBX,GACpB,GAAqB,IAAjBA,EAAMhc,OACR,MAAO,GAMT,IAHA,IAAI4c,EAAyB,EAAfZ,EAAMhc,OAChBic,EAAS,IAAIY,YAAYjC,EAAgBgC,IAEpCzc,EAAI,EAAGA,EAAIyc,EAASzc,GAAK,EAChC8b,EAAO9b,GAAK,KAAsB,IAAf6b,EAAM7b,EAAI,KAAcA,EAAI,GAGjD,OAAO8b,CACT,CA1IyCa,CAAarC,GAAuB,EAAfA,EAAMza,QACpE,IETA,EApBA,SAAYL,EAAS0Z,EAAKxY,GAExB,IAAIkc,GADJpd,EAAUA,GAAW,CAAC,GACH8Z,SAAW9Z,EAAQ6Y,KAAOA,KAK7C,GAHAuE,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvB1D,EAAK,CACPxY,EAASA,GAAU,EAEnB,IAAK,IAAIV,EAAI,EAAGA,EAAI,KAAMA,EACxBkZ,EAAIxY,EAASV,GAAK4c,EAAK5c,GAGzB,OAAOkZ,CACT,CAEA,OAAO,EAAU0D,EACnB,ECnBA,SAASC,EAAE3B,EAAGN,EAAGC,EAAGiC,GAClB,OAAQ5B,GACN,KAAK,EACH,OAAON,EAAIC,GAAKD,EAAIkC,EAEtB,KAAK,EAML,KAAK,EACH,OAAOlC,EAAIC,EAAIiC,EAJjB,KAAK,EACH,OAAOlC,EAAIC,EAAID,EAAIkC,EAAIjC,EAAIiC,EAKjC,CAEA,SAASC,EAAKnC,EAAGd,GACf,OAAOc,GAAKd,EAAIc,IAAM,GAAKd,CAC7B,CA2EA,MC5FA,EADS6B,EAAI,KAAM,IDoBnB,SAAcrB,GACZ,IAAI0C,EAAI,CAAC,WAAY,WAAY,WAAY,YACzCC,EAAI,CAAC,WAAY,WAAY,WAAY,UAAY,YAEzD,GAAqB,iBAAV3C,EAAoB,CAC7B,IAAIsB,EAAMxB,SAASC,mBAAmBC,IAEtCA,EAAQ,GAER,IAAK,IAAIta,EAAI,EAAGA,EAAI4b,EAAI/b,SAAUG,EAChCsa,EAAMpU,KAAK0V,EAAIrZ,WAAWvC,GAE9B,MAAYD,MAAMsU,QAAQiG,KAExBA,EAAQva,MAAMiU,UAAUjT,MAAMmT,KAAKoG,IAGrCA,EAAMpU,KAAK,KAKX,IAJA,IAAIgX,EAAI5C,EAAMza,OAAS,EAAI,EACvBsd,EAAIC,KAAKC,KAAKH,EAAI,IAClBI,EAAI,IAAIvd,MAAMod,GAETI,EAAK,EAAGA,EAAKJ,IAAKI,EAAI,CAG7B,IAFA,IAAIrc,EAAM,IAAIwb,YAAY,IAEjBc,EAAI,EAAGA,EAAI,KAAMA,EACxBtc,EAAIsc,GAAKlD,EAAW,GAALiD,EAAc,EAAJC,IAAU,GAAKlD,EAAW,GAALiD,EAAc,EAAJC,EAAQ,IAAM,GAAKlD,EAAW,GAALiD,EAAc,EAAJC,EAAQ,IAAM,EAAIlD,EAAW,GAALiD,EAAc,EAAJC,EAAQ,GAGvIF,EAAEC,GAAMrc,CACV,CAEAoc,EAAEH,EAAI,GAAG,IAA2B,GAApB7C,EAAMza,OAAS,GAASud,KAAKK,IAAI,EAAG,IACpDH,EAAEH,EAAI,GAAG,IAAMC,KAAKM,MAAMJ,EAAEH,EAAI,GAAG,KACnCG,EAAEH,EAAI,GAAG,IAA2B,GAApB7C,EAAMza,OAAS,GAAS,WAExC,IAAK,IAAI8d,EAAM,EAAGA,EAAMR,IAAKQ,EAAK,CAGhC,IAFA,IAAIC,EAAI,IAAIlB,YAAY,IAEfvB,EAAI,EAAGA,EAAI,KAAMA,EACxByC,EAAEzC,GAAKmC,EAAEK,GAAKxC,GAGhB,IAAK,IAAI0C,EAAK,GAAIA,EAAK,KAAMA,EAC3BD,EAAEC,GAAMd,EAAKa,EAAEC,EAAK,GAAKD,EAAEC,EAAK,GAAKD,EAAEC,EAAK,IAAMD,EAAEC,EAAK,IAAK,GAShE,IANA,IAAI5C,EAAIgC,EAAE,GACN9D,EAAI8D,EAAE,GACN1B,EAAI0B,EAAE,GACNvV,EAAIuV,EAAE,GACNvN,EAAIuN,EAAE,GAEDa,EAAM,EAAGA,EAAM,KAAMA,EAAK,CACjC,IAAI5C,EAAIkC,KAAKM,MAAMI,EAAM,IACrBC,EAAIhB,EAAK9B,EAAG,GAAK4B,EAAE3B,EAAG/B,EAAGoC,EAAG7T,GAAKgI,EAAIsN,EAAE9B,GAAK0C,EAAEE,KAAS,EAC3DpO,EAAIhI,EACJA,EAAI6T,EACJA,EAAIwB,EAAK5D,EAAG,MAAQ,EACpBA,EAAI8B,EACJA,EAAI8C,CACN,CAEAd,EAAE,GAAKA,EAAE,GAAKhC,IAAM,EACpBgC,EAAE,GAAKA,EAAE,GAAK9D,IAAM,EACpB8D,EAAE,GAAKA,EAAE,GAAK1B,IAAM,EACpB0B,EAAE,GAAKA,EAAE,GAAKvV,IAAM,EACpBuV,EAAE,GAAKA,EAAE,GAAKvN,IAAM,CACtB,CAEA,MAAO,CAACuN,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GACxV,IE7FA,yCCUA,EARA,SAAiBxE,GACf,IAAK,EAASA,GACZ,MAAMI,UAAU,gBAGlB,OAAOmB,SAASvB,EAAKE,OAAO,GAAI,GAAI,GACtC,C,+yDCPIqF,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBxc,IAAjByc,EACH,OAAOA,EAAajf,QAGrB,IAAIC,EAAS6e,EAAyBE,GAAY,CAGjDhf,QAAS,CAAC,GAOX,OAHAkf,EAAoBF,GAAUhK,KAAK/U,EAAOD,QAASC,EAAQA,EAAOD,QAAS+e,GAGpE9e,EAAOD,OACf,C,OCrBA+e,EAAoBvW,EAAI,CAACxI,EAASmf,KACjC,IAAI,IAAIpY,KAAOoY,EACXJ,EAAoBK,EAAED,EAAYpY,KAASgY,EAAoBK,EAAEpf,EAAS+G,IAC5EJ,OAAO0Y,eAAerf,EAAS+G,EAAK,CAAEuY,YAAY,EAAMnJ,IAAKgJ,EAAWpY,IAE1E,ECNDgY,EAAoBK,EAAI,CAACG,EAAKC,IAAU7Y,OAAOmO,UAAUC,eAAeC,KAAKuK,EAAKC,GCClFT,EAAoBU,EAAKzf,IACH,oBAAX0f,QAA0BA,OAAOC,aAC1ChZ,OAAO0Y,eAAerf,EAAS0f,OAAOC,YAAa,CAAEzb,MAAO,WAE7DyC,OAAO0Y,eAAerf,EAAS,aAAc,CAAEkE,OAAO,GAAO,ECFpC6a,EAAoB,I","sources":["webpack://ContentstackLivePreview/webpack/universalModuleDefinition","webpack://ContentstackLivePreview/./node_modules/just-camel-case/index.js","webpack://ContentstackLivePreview/./node_modules/morphdom/dist/morphdom-esm.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/./src/utils/replaceHtml.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, function() {\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","var DOCUMENT_FRAGMENT_NODE = 11;\n\nfunction morphAttrs(fromNode, toNode) {\n var toNodeAttrs = toNode.attributes;\n var attr;\n var attrName;\n var attrNamespaceURI;\n var attrValue;\n var fromValue;\n\n // document-fragments dont have attributes so lets not do anything\n if (toNode.nodeType === DOCUMENT_FRAGMENT_NODE || fromNode.nodeType === DOCUMENT_FRAGMENT_NODE) {\n return;\n }\n\n // update attributes on original DOM element\n for (var i = toNodeAttrs.length - 1; i >= 0; i--) {\n attr = toNodeAttrs[i];\n attrName = attr.name;\n attrNamespaceURI = attr.namespaceURI;\n attrValue = attr.value;\n\n if (attrNamespaceURI) {\n attrName = attr.localName || attrName;\n fromValue = fromNode.getAttributeNS(attrNamespaceURI, attrName);\n\n if (fromValue !== attrValue) {\n if (attr.prefix === 'xmlns'){\n attrName = attr.name; // It's not allowed to set an attribute with the XMLNS namespace without specifying the `xmlns` prefix\n }\n fromNode.setAttributeNS(attrNamespaceURI, attrName, attrValue);\n }\n } else {\n fromValue = fromNode.getAttribute(attrName);\n\n if (fromValue !== attrValue) {\n fromNode.setAttribute(attrName, attrValue);\n }\n }\n }\n\n // Remove any extra attributes found on the original DOM element that\n // weren't found on the target element.\n var fromNodeAttrs = fromNode.attributes;\n\n for (var d = fromNodeAttrs.length - 1; d >= 0; d--) {\n attr = fromNodeAttrs[d];\n attrName = attr.name;\n attrNamespaceURI = attr.namespaceURI;\n\n if (attrNamespaceURI) {\n attrName = attr.localName || attrName;\n\n if (!toNode.hasAttributeNS(attrNamespaceURI, attrName)) {\n fromNode.removeAttributeNS(attrNamespaceURI, attrName);\n }\n } else {\n if (!toNode.hasAttribute(attrName)) {\n fromNode.removeAttribute(attrName);\n }\n }\n }\n}\n\nvar range; // Create a range object for efficently rendering strings to elements.\nvar NS_XHTML = 'http://www.w3.org/1999/xhtml';\n\nvar doc = typeof document === 'undefined' ? undefined : document;\nvar HAS_TEMPLATE_SUPPORT = !!doc && 'content' in doc.createElement('template');\nvar HAS_RANGE_SUPPORT = !!doc && doc.createRange && 'createContextualFragment' in doc.createRange();\n\nfunction createFragmentFromTemplate(str) {\n var template = doc.createElement('template');\n template.innerHTML = str;\n return template.content.childNodes[0];\n}\n\nfunction createFragmentFromRange(str) {\n if (!range) {\n range = doc.createRange();\n range.selectNode(doc.body);\n }\n\n var fragment = range.createContextualFragment(str);\n return fragment.childNodes[0];\n}\n\nfunction createFragmentFromWrap(str) {\n var fragment = doc.createElement('body');\n fragment.innerHTML = str;\n return fragment.childNodes[0];\n}\n\n/**\n * This is about the same\n * var html = new DOMParser().parseFromString(str, 'text/html');\n * return html.body.firstChild;\n *\n * @method toElement\n * @param {String} str\n */\nfunction toElement(str) {\n str = str.trim();\n if (HAS_TEMPLATE_SUPPORT) {\n // avoid restrictions on content for things like `<tr><th>Hi</th></tr>` which\n // createContextualFragment doesn't support\n // <template> support not available in IE\n return createFragmentFromTemplate(str);\n } else if (HAS_RANGE_SUPPORT) {\n return createFragmentFromRange(str);\n }\n\n return createFragmentFromWrap(str);\n}\n\n/**\n * Returns true if two node's names are the same.\n *\n * NOTE: We don't bother checking `namespaceURI` because you will never find two HTML elements with the same\n * nodeName and different namespace URIs.\n *\n * @param {Element} a\n * @param {Element} b The target element\n * @return {boolean}\n */\nfunction compareNodeNames(fromEl, toEl) {\n var fromNodeName = fromEl.nodeName;\n var toNodeName = toEl.nodeName;\n var fromCodeStart, toCodeStart;\n\n if (fromNodeName === toNodeName) {\n return true;\n }\n\n fromCodeStart = fromNodeName.charCodeAt(0);\n toCodeStart = toNodeName.charCodeAt(0);\n\n // If the target element is a virtual DOM node or SVG node then we may\n // need to normalize the tag name before comparing. Normal HTML elements that are\n // in the \"http://www.w3.org/1999/xhtml\"\n // are converted to upper case\n if (fromCodeStart <= 90 && toCodeStart >= 97) { // from is upper and to is lower\n return fromNodeName === toNodeName.toUpperCase();\n } else if (toCodeStart <= 90 && fromCodeStart >= 97) { // to is upper and from is lower\n return toNodeName === fromNodeName.toUpperCase();\n } else {\n return false;\n }\n}\n\n/**\n * Create an element, optionally with a known namespace URI.\n *\n * @param {string} name the element name, e.g. 'div' or 'svg'\n * @param {string} [namespaceURI] the element's namespace URI, i.e. the value of\n * its `xmlns` attribute or its inferred namespace.\n *\n * @return {Element}\n */\nfunction createElementNS(name, namespaceURI) {\n return !namespaceURI || namespaceURI === NS_XHTML ?\n doc.createElement(name) :\n doc.createElementNS(namespaceURI, name);\n}\n\n/**\n * Copies the children of one DOM element to another DOM element\n */\nfunction moveChildren(fromEl, toEl) {\n var curChild = fromEl.firstChild;\n while (curChild) {\n var nextChild = curChild.nextSibling;\n toEl.appendChild(curChild);\n curChild = nextChild;\n }\n return toEl;\n}\n\nfunction syncBooleanAttrProp(fromEl, toEl, name) {\n if (fromEl[name] !== toEl[name]) {\n fromEl[name] = toEl[name];\n if (fromEl[name]) {\n fromEl.setAttribute(name, '');\n } else {\n fromEl.removeAttribute(name);\n }\n }\n}\n\nvar specialElHandlers = {\n OPTION: function(fromEl, toEl) {\n var parentNode = fromEl.parentNode;\n if (parentNode) {\n var parentName = parentNode.nodeName.toUpperCase();\n if (parentName === 'OPTGROUP') {\n parentNode = parentNode.parentNode;\n parentName = parentNode && parentNode.nodeName.toUpperCase();\n }\n if (parentName === 'SELECT' && !parentNode.hasAttribute('multiple')) {\n if (fromEl.hasAttribute('selected') && !toEl.selected) {\n // Workaround for MS Edge bug where the 'selected' attribute can only be\n // removed if set to a non-empty value:\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12087679/\n fromEl.setAttribute('selected', 'selected');\n fromEl.removeAttribute('selected');\n }\n // We have to reset select element's selectedIndex to -1, otherwise setting\n // fromEl.selected using the syncBooleanAttrProp below has no effect.\n // The correct selectedIndex will be set in the SELECT special handler below.\n parentNode.selectedIndex = -1;\n }\n }\n syncBooleanAttrProp(fromEl, toEl, 'selected');\n },\n /**\n * The \"value\" attribute is special for the <input> element since it sets\n * the initial value. Changing the \"value\" attribute without changing the\n * \"value\" property will have no effect since it is only used to the set the\n * initial value. Similar for the \"checked\" attribute, and \"disabled\".\n */\n INPUT: function(fromEl, toEl) {\n syncBooleanAttrProp(fromEl, toEl, 'checked');\n syncBooleanAttrProp(fromEl, toEl, 'disabled');\n\n if (fromEl.value !== toEl.value) {\n fromEl.value = toEl.value;\n }\n\n if (!toEl.hasAttribute('value')) {\n fromEl.removeAttribute('value');\n }\n },\n\n TEXTAREA: function(fromEl, toEl) {\n var newValue = toEl.value;\n if (fromEl.value !== newValue) {\n fromEl.value = newValue;\n }\n\n var firstChild = fromEl.firstChild;\n if (firstChild) {\n // Needed for IE. Apparently IE sets the placeholder as the\n // node value and vise versa. This ignores an empty update.\n var oldValue = firstChild.nodeValue;\n\n if (oldValue == newValue || (!newValue && oldValue == fromEl.placeholder)) {\n return;\n }\n\n firstChild.nodeValue = newValue;\n }\n },\n SELECT: function(fromEl, toEl) {\n if (!toEl.hasAttribute('multiple')) {\n var selectedIndex = -1;\n var i = 0;\n // We have to loop through children of fromEl, not toEl since nodes can be moved\n // from toEl to fromEl directly when morphing.\n // At the time this special handler is invoked, all children have already been morphed\n // and appended to / removed from fromEl, so using fromEl here is safe and correct.\n var curChild = fromEl.firstChild;\n var optgroup;\n var nodeName;\n while(curChild) {\n nodeName = curChild.nodeName && curChild.nodeName.toUpperCase();\n if (nodeName === 'OPTGROUP') {\n optgroup = curChild;\n curChild = optgroup.firstChild;\n } else {\n if (nodeName === 'OPTION') {\n if (curChild.hasAttribute('selected')) {\n selectedIndex = i;\n break;\n }\n i++;\n }\n curChild = curChild.nextSibling;\n if (!curChild && optgroup) {\n curChild = optgroup.nextSibling;\n optgroup = null;\n }\n }\n }\n\n fromEl.selectedIndex = selectedIndex;\n }\n }\n};\n\nvar ELEMENT_NODE = 1;\nvar DOCUMENT_FRAGMENT_NODE$1 = 11;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\n\nfunction noop() {}\n\nfunction defaultGetNodeKey(node) {\n if (node) {\n return (node.getAttribute && node.getAttribute('id')) || node.id;\n }\n}\n\nfunction morphdomFactory(morphAttrs) {\n\n return function morphdom(fromNode, toNode, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof toNode === 'string') {\n if (fromNode.nodeName === '#document' || fromNode.nodeName === 'HTML' || fromNode.nodeName === 'BODY') {\n var toNodeHtml = toNode;\n toNode = doc.createElement('html');\n toNode.innerHTML = toNodeHtml;\n } else {\n toNode = toElement(toNode);\n }\n }\n\n var getNodeKey = options.getNodeKey || defaultGetNodeKey;\n var onBeforeNodeAdded = options.onBeforeNodeAdded || noop;\n var onNodeAdded = options.onNodeAdded || noop;\n var onBeforeElUpdated = options.onBeforeElUpdated || noop;\n var onElUpdated = options.onElUpdated || noop;\n var onBeforeNodeDiscarded = options.onBeforeNodeDiscarded || noop;\n var onNodeDiscarded = options.onNodeDiscarded || noop;\n var onBeforeElChildrenUpdated = options.onBeforeElChildrenUpdated || noop;\n var childrenOnly = options.childrenOnly === true;\n\n // This object is used as a lookup to quickly find all keyed elements in the original DOM tree.\n var fromNodesLookup = Object.create(null);\n var keyedRemovalList = [];\n\n function addKeyedRemoval(key) {\n keyedRemovalList.push(key);\n }\n\n function walkDiscardedChildNodes(node, skipKeyedNodes) {\n if (node.nodeType === ELEMENT_NODE) {\n var curChild = node.firstChild;\n while (curChild) {\n\n var key = undefined;\n\n if (skipKeyedNodes && (key = getNodeKey(curChild))) {\n // If we are skipping keyed nodes then we add the key\n // to a list so that it can be handled at the very end.\n addKeyedRemoval(key);\n } else {\n // Only report the node as discarded if it is not keyed. We do this because\n // at the end we loop through all keyed elements that were unmatched\n // and then discard them in one final pass.\n onNodeDiscarded(curChild);\n if (curChild.firstChild) {\n walkDiscardedChildNodes(curChild, skipKeyedNodes);\n }\n }\n\n curChild = curChild.nextSibling;\n }\n }\n }\n\n /**\n * Removes a DOM node out of the original DOM\n *\n * @param {Node} node The node to remove\n * @param {Node} parentNode The nodes parent\n * @param {Boolean} skipKeyedNodes If true then elements with keys will be skipped and not discarded.\n * @return {undefined}\n */\n function removeNode(node, parentNode, skipKeyedNodes) {\n if (onBeforeNodeDiscarded(node) === false) {\n return;\n }\n\n if (parentNode) {\n parentNode.removeChild(node);\n }\n\n onNodeDiscarded(node);\n walkDiscardedChildNodes(node, skipKeyedNodes);\n }\n\n // // TreeWalker implementation is no faster, but keeping this around in case this changes in the future\n // function indexTree(root) {\n // var treeWalker = document.createTreeWalker(\n // root,\n // NodeFilter.SHOW_ELEMENT);\n //\n // var el;\n // while((el = treeWalker.nextNode())) {\n // var key = getNodeKey(el);\n // if (key) {\n // fromNodesLookup[key] = el;\n // }\n // }\n // }\n\n // // NodeIterator implementation is no faster, but keeping this around in case this changes in the future\n //\n // function indexTree(node) {\n // var nodeIterator = document.createNodeIterator(node, NodeFilter.SHOW_ELEMENT);\n // var el;\n // while((el = nodeIterator.nextNode())) {\n // var key = getNodeKey(el);\n // if (key) {\n // fromNodesLookup[key] = el;\n // }\n // }\n // }\n\n function indexTree(node) {\n if (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE$1) {\n var curChild = node.firstChild;\n while (curChild) {\n var key = getNodeKey(curChild);\n if (key) {\n fromNodesLookup[key] = curChild;\n }\n\n // Walk recursively\n indexTree(curChild);\n\n curChild = curChild.nextSibling;\n }\n }\n }\n\n indexTree(fromNode);\n\n function handleNodeAdded(el) {\n onNodeAdded(el);\n\n var curChild = el.firstChild;\n while (curChild) {\n var nextSibling = curChild.nextSibling;\n\n var key = getNodeKey(curChild);\n if (key) {\n var unmatchedFromEl = fromNodesLookup[key];\n // if we find a duplicate #id node in cache, replace `el` with cache value\n // and morph it to the child node.\n if (unmatchedFromEl && compareNodeNames(curChild, unmatchedFromEl)) {\n curChild.parentNode.replaceChild(unmatchedFromEl, curChild);\n morphEl(unmatchedFromEl, curChild);\n } else {\n handleNodeAdded(curChild);\n }\n } else {\n // recursively call for curChild and it's children to see if we find something in\n // fromNodesLookup\n handleNodeAdded(curChild);\n }\n\n curChild = nextSibling;\n }\n }\n\n function cleanupFromEl(fromEl, curFromNodeChild, curFromNodeKey) {\n // We have processed all of the \"to nodes\". If curFromNodeChild is\n // non-null then we still have some from nodes left over that need\n // to be removed\n while (curFromNodeChild) {\n var fromNextSibling = curFromNodeChild.nextSibling;\n if ((curFromNodeKey = getNodeKey(curFromNodeChild))) {\n // Since the node is keyed it might be matched up later so we defer\n // the actual removal to later\n addKeyedRemoval(curFromNodeKey);\n } else {\n // NOTE: we skip nested keyed nodes from being removed since there is\n // still a chance they will be matched up later\n removeNode(curFromNodeChild, fromEl, true /* skip keyed nodes */);\n }\n curFromNodeChild = fromNextSibling;\n }\n }\n\n function morphEl(fromEl, toEl, childrenOnly) {\n var toElKey = getNodeKey(toEl);\n\n if (toElKey) {\n // If an element with an ID is being morphed then it will be in the final\n // DOM so clear it out of the saved elements collection\n delete fromNodesLookup[toElKey];\n }\n\n if (!childrenOnly) {\n // optional\n if (onBeforeElUpdated(fromEl, toEl) === false) {\n return;\n }\n\n // update attributes on original DOM element first\n morphAttrs(fromEl, toEl);\n // optional\n onElUpdated(fromEl);\n\n if (onBeforeElChildrenUpdated(fromEl, toEl) === false) {\n return;\n }\n }\n\n if (fromEl.nodeName !== 'TEXTAREA') {\n morphChildren(fromEl, toEl);\n } else {\n specialElHandlers.TEXTAREA(fromEl, toEl);\n }\n }\n\n function morphChildren(fromEl, toEl) {\n var curToNodeChild = toEl.firstChild;\n var curFromNodeChild = fromEl.firstChild;\n var curToNodeKey;\n var curFromNodeKey;\n\n var fromNextSibling;\n var toNextSibling;\n var matchingFromEl;\n\n // walk the children\n outer: while (curToNodeChild) {\n toNextSibling = curToNodeChild.nextSibling;\n curToNodeKey = getNodeKey(curToNodeChild);\n\n // walk the fromNode children all the way through\n while (curFromNodeChild) {\n fromNextSibling = curFromNodeChild.nextSibling;\n\n if (curToNodeChild.isSameNode && curToNodeChild.isSameNode(curFromNodeChild)) {\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n continue outer;\n }\n\n curFromNodeKey = getNodeKey(curFromNodeChild);\n\n var curFromNodeType = curFromNodeChild.nodeType;\n\n // this means if the curFromNodeChild doesnt have a match with the curToNodeChild\n var isCompatible = undefined;\n\n if (curFromNodeType === curToNodeChild.nodeType) {\n if (curFromNodeType === ELEMENT_NODE) {\n // Both nodes being compared are Element nodes\n\n if (curToNodeKey) {\n // The target node has a key so we want to match it up with the correct element\n // in the original DOM tree\n if (curToNodeKey !== curFromNodeKey) {\n // The current element in the original DOM tree does not have a matching key so\n // let's check our lookup to see if there is a matching element in the original\n // DOM tree\n if ((matchingFromEl = fromNodesLookup[curToNodeKey])) {\n if (fromNextSibling === matchingFromEl) {\n // Special case for single element removals. To avoid removing the original\n // DOM node out of the tree (since that can break CSS transitions, etc.),\n // we will instead discard the current node and wait until the next\n // iteration to properly match up the keyed target element with its matching\n // element in the original tree\n isCompatible = false;\n } else {\n // We found a matching keyed element somewhere in the original DOM tree.\n // Let's move the original DOM node into the current position and morph\n // it.\n\n // NOTE: We use insertBefore instead of replaceChild because we want to go through\n // the `removeNode()` function for the node that is being discarded so that\n // all lifecycle hooks are correctly invoked\n fromEl.insertBefore(matchingFromEl, curFromNodeChild);\n\n // fromNextSibling = curFromNodeChild.nextSibling;\n\n if (curFromNodeKey) {\n // Since the node is keyed it might be matched up later so we defer\n // the actual removal to later\n addKeyedRemoval(curFromNodeKey);\n } else {\n // NOTE: we skip nested keyed nodes from being removed since there is\n // still a chance they will be matched up later\n removeNode(curFromNodeChild, fromEl, true /* skip keyed nodes */);\n }\n\n curFromNodeChild = matchingFromEl;\n }\n } else {\n // The nodes are not compatible since the \"to\" node has a key and there\n // is no matching keyed node in the source tree\n isCompatible = false;\n }\n }\n } else if (curFromNodeKey) {\n // The original has a key\n isCompatible = false;\n }\n\n isCompatible = isCompatible !== false && compareNodeNames(curFromNodeChild, curToNodeChild);\n if (isCompatible) {\n // We found compatible DOM elements so transform\n // the current \"from\" node to match the current\n // target DOM node.\n // MORPH\n morphEl(curFromNodeChild, curToNodeChild);\n }\n\n } else if (curFromNodeType === TEXT_NODE || curFromNodeType == COMMENT_NODE) {\n // Both nodes being compared are Text or Comment nodes\n isCompatible = true;\n // Simply update nodeValue on the original node to\n // change the text value\n if (curFromNodeChild.nodeValue !== curToNodeChild.nodeValue) {\n curFromNodeChild.nodeValue = curToNodeChild.nodeValue;\n }\n\n }\n }\n\n if (isCompatible) {\n // Advance both the \"to\" child and the \"from\" child since we found a match\n // Nothing else to do as we already recursively called morphChildren above\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n continue outer;\n }\n\n // No compatible match so remove the old node from the DOM and continue trying to find a\n // match in the original DOM. However, we only do this if the from node is not keyed\n // since it is possible that a keyed node might match up with a node somewhere else in the\n // target tree and we don't want to discard it just yet since it still might find a\n // home in the final DOM tree. After everything is done we will remove any keyed nodes\n // that didn't find a home\n if (curFromNodeKey) {\n // Since the node is keyed it might be matched up later so we defer\n // the actual removal to later\n addKeyedRemoval(curFromNodeKey);\n } else {\n // NOTE: we skip nested keyed nodes from being removed since there is\n // still a chance they will be matched up later\n removeNode(curFromNodeChild, fromEl, true /* skip keyed nodes */);\n }\n\n curFromNodeChild = fromNextSibling;\n } // END: while(curFromNodeChild) {}\n\n // If we got this far then we did not find a candidate match for\n // our \"to node\" and we exhausted all of the children \"from\"\n // nodes. Therefore, we will just append the current \"to\" node\n // to the end\n if (curToNodeKey && (matchingFromEl = fromNodesLookup[curToNodeKey]) && compareNodeNames(matchingFromEl, curToNodeChild)) {\n fromEl.appendChild(matchingFromEl);\n // MORPH\n morphEl(matchingFromEl, curToNodeChild);\n } else {\n var onBeforeNodeAddedResult = onBeforeNodeAdded(curToNodeChild);\n if (onBeforeNodeAddedResult !== false) {\n if (onBeforeNodeAddedResult) {\n curToNodeChild = onBeforeNodeAddedResult;\n }\n\n if (curToNodeChild.actualize) {\n curToNodeChild = curToNodeChild.actualize(fromEl.ownerDocument || doc);\n }\n fromEl.appendChild(curToNodeChild);\n handleNodeAdded(curToNodeChild);\n }\n }\n\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n }\n\n cleanupFromEl(fromEl, curFromNodeChild, curFromNodeKey);\n\n var specialElHandler = specialElHandlers[fromEl.nodeName];\n if (specialElHandler) {\n specialElHandler(fromEl, toEl);\n }\n } // END: morphChildren(...)\n\n var morphedNode = fromNode;\n var morphedNodeType = morphedNode.nodeType;\n var toNodeType = toNode.nodeType;\n\n if (!childrenOnly) {\n // Handle the case where we are given two DOM nodes that are not\n // compatible (e.g. <div> --> <span> or <div> --> TEXT)\n if (morphedNodeType === ELEMENT_NODE) {\n if (toNodeType === ELEMENT_NODE) {\n if (!compareNodeNames(fromNode, toNode)) {\n onNodeDiscarded(fromNode);\n morphedNode = moveChildren(fromNode, createElementNS(toNode.nodeName, toNode.namespaceURI));\n }\n } else {\n // Going from an element node to a text node\n morphedNode = toNode;\n }\n } else if (morphedNodeType === TEXT_NODE || morphedNodeType === COMMENT_NODE) { // Text or comment node\n if (toNodeType === morphedNodeType) {\n if (morphedNode.nodeValue !== toNode.nodeValue) {\n morphedNode.nodeValue = toNode.nodeValue;\n }\n\n return morphedNode;\n } else {\n // Text node to something else\n morphedNode = toNode;\n }\n }\n }\n\n if (morphedNode === toNode) {\n // The \"to node\" was not compatible with the \"from node\" so we had to\n // toss out the \"from node\" and use the \"to node\"\n onNodeDiscarded(fromNode);\n } else {\n if (toNode.isSameNode && toNode.isSameNode(morphedNode)) {\n return;\n }\n\n morphEl(morphedNode, toNode, childrenOnly);\n\n // We now need to loop over any keyed nodes that might need to be\n // removed. We only do the removal if we know that the keyed node\n // never found a match. When a keyed node is matched up we remove\n // it out of fromNodesLookup and we use fromNodesLookup to determine\n // if a keyed node has been matched up or not\n if (keyedRemovalList) {\n for (var i=0, len=keyedRemovalList.length; i<len; i++) {\n var elToRemove = fromNodesLookup[keyedRemovalList[i]];\n if (elToRemove) {\n removeNode(elToRemove, elToRemove.parentNode, false);\n }\n }\n }\n }\n\n if (!childrenOnly && morphedNode !== fromNode && fromNode.parentNode) {\n if (morphedNode.actualize) {\n morphedNode = morphedNode.actualize(fromNode.ownerDocument || doc);\n }\n // If we had to swap out the from node with a new node because the old\n // node was not compatible with the target node then we need to\n // replace the old DOM node in the original DOM tree. This is only\n // possible if the original DOM node was part of a DOM tree which\n // we know is the case if it has a parent node.\n fromNode.parentNode.replaceChild(morphedNode, fromNode);\n }\n\n return morphedNode;\n };\n}\n\nvar morphdom = morphdomFactory(morphAttrs);\n\nexport default morphdom;\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\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 return Promise.resolve(ContentstackLivePreview.livePreview);\n }\n } else {\n ContentstackLivePreview.userConfig = userConfig;\n }\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 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\";\nimport { replaceDocumentBody, updateDocumentBody } from \"./utils/replaceHtml\";\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 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\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.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\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.currentElementBesideTooltip)\n this.currentElementBesideTooltip.classList.remove(\n \"cslp-edit-mode\"\n );\n element.classList.add(\"cslp-edit-mode\");\n this.currentElementBesideTooltip = element;\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 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 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 if (this.config.ssr) {\n // Get the content from the server and replace the body\n\n const fetch_url = new URL(window.location.href);\n\n fetch_url.searchParams.append(\"live_preview\", hash);\n fetch_url.searchParams.append(\n \"content_type_uid\",\n contentTypeUid\n );\n fetch_url.searchParams.append(\"entry_uid\", entryUid);\n\n fetch(fetch_url.toString(), {\n method: \"GET\",\n })\n .then((res) => res.text())\n .then((res) => {\n updateDocumentBody(document, res, {\n onPostOperation: this.createCslpTooltip,\n shouldReRunScripts:\n this.config.runScriptsOnUpdate,\n });\n });\n } else {\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 case \"document-body-post-scripts-loaded\": {\n const { body } = e.data.data;\n replaceDocumentBody(body, this.createCslpTooltip);\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 tooltip.classList.add(\"cslp-tooltip\");\n tooltip.setAttribute(\"data-test-id\", \"cs-cslp-tooltip\");\n tooltip.id = \"cslp-tooltip\";\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 tooltip.innerHTML = \"\";\n tooltip.appendChild(this.tooltipChild.singular);\n this.tooltip = tooltip;\n }\n this.updateTooltipPosition();\n };\n\n // Request parent for data sync when document loads\n private requestDataSync() {\n this.handleUserChange({\n live_preview: \"init\", // this is the hash of the live previewd\n });\n\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 this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.multiple);\n this.tooltipCurrentChild = \"multiple\";\n }\n } else if (this.tooltipCurrentChild !== \"singular\") {\n this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.singular);\n this.tooltipCurrentChild = \"singular\";\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 });\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","/* eslint-disable no-useless-escape */\n\nimport morphdom from \"morphdom\";\n\nexport function rerunScriptsInDocument(): void {\n const scriptsInTheDOM = document.querySelectorAll(\"script\");\n let scriptsLeftToExecute = scriptsInTheDOM.length;\n\n let scriptIndex = 0;\n\n function isScriptRemaining() {\n return scriptIndex < scriptsInTheDOM.length;\n }\n\n function decrementNumberOfScriptsLeft() {\n scriptsLeftToExecute--;\n\n if (scriptsLeftToExecute === 0) {\n window.parent.postMessage(\n {\n from: \"live-preview\",\n type: \"document-body-post-scripts-loaded\",\n data: {\n body: document.body.outerHTML,\n },\n },\n \"*\"\n );\n }\n }\n\n function postScriptExecute() {\n scriptIndex++;\n decrementNumberOfScriptsLeft();\n executeNextScript();\n }\n function executeNextScript() {\n if (isScriptRemaining()) {\n const currentScript = scriptsInTheDOM[scriptIndex];\n\n const parent = currentScript.parentNode;\n const newScript = document.createElement(\"script\");\n\n if (currentScript.src) {\n newScript.onerror = postScriptExecute;\n newScript.onload = postScriptExecute;\n newScript.src = currentScript.src;\n } else {\n newScript.text = currentScript.text;\n postScriptExecute();\n }\n parent?.replaceChild(newScript, currentScript);\n }\n }\n\n if (scriptsInTheDOM.length) {\n executeNextScript();\n }\n}\n\nexport async function updateDocumentBody(\n document: Document,\n receivedHTML: string,\n options: {\n shouldReRunScripts: boolean;\n onPostOperation: () => void;\n }\n): Promise<void> {\n const { shouldReRunScripts, onPostOperation } = options;\n\n if (!shouldReRunScripts) {\n replaceDocumentBody(receivedHTML, onPostOperation);\n } else {\n const existingIframes = document.querySelectorAll(\n \"iframe#contentstack-live-preview-iframe\"\n );\n\n existingIframes.forEach((existingFrame) => {\n existingFrame.remove();\n });\n\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.id = \"contentstack-live-preview-iframe\";\n\n // escape backticks and script tags\n const SCRIPT_AND_BACKTICKS = /(<\\s*\\/\\s*script\\s*>)|(`)/gm;\n\n const escapedHTML = receivedHTML.replace(\n SCRIPT_AND_BACKTICKS,\n (_substring, _scriptTag, backTick) => {\n if (backTick) {\n return \"\\\\`\";\n } else {\n return \"<\\\\/script>\";\n }\n }\n );\n\n iframe.srcdoc = `\n <head>\n <script>\n function prepareIframeForScriptRerun() {\n const responseHTML = \\`${escapedHTML}\\`;\n\n const html = document.getElementsByTagName(\"html\").item(0);\n\n const rerunScriptsInDocument = ${rerunScriptsInDocument}\n\n if (html) {\n html.innerHTML = responseHTML;\n rerunScriptsInDocument();\n }\n }\n prepareIframeForScriptRerun()\n <\\/script>\n </head>`;\n\n document.body.appendChild(iframe);\n }\n}\n\nexport function replaceDocumentBody(\n newBody: string,\n onPostOperation?: () => void\n): void {\n const parser = new DOMParser();\n const doc = parser.parseFromString(newBody, \"text/html\");\n\n morphdom(document.body, doc.body);\n if (onPostOperation) {\n onPostOperation();\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","range","doc","document","undefined","HAS_TEMPLATE_SUPPORT","createElement","HAS_RANGE_SUPPORT","createRange","compareNodeNames","fromEl","toEl","fromCodeStart","toCodeStart","fromNodeName","nodeName","toNodeName","charCodeAt","syncBooleanAttrProp","name","setAttribute","removeAttribute","specialElHandlers","OPTION","parentNode","parentName","hasAttribute","selected","selectedIndex","INPUT","value","TEXTAREA","newValue","firstChild","oldValue","nodeValue","placeholder","SELECT","optgroup","curChild","nextSibling","noop","defaultGetNodeKey","node","getAttribute","id","fromNode","toNode","toNodeHtml","innerHTML","trim","template","content","childNodes","createFragmentFromTemplate","selectNode","body","createContextualFragment","createFragmentFromRange","fragment","createFragmentFromWrap","getNodeKey","onBeforeNodeAdded","onNodeAdded","onBeforeElUpdated","onElUpdated","onBeforeNodeDiscarded","onNodeDiscarded","onBeforeElChildrenUpdated","childrenOnly","fromNodesLookup","Object","create","keyedRemovalList","addKeyedRemoval","key","push","walkDiscardedChildNodes","skipKeyedNodes","nodeType","removeNode","removeChild","handleNodeAdded","el","unmatchedFromEl","replaceChild","morphEl","toElKey","attr","attrName","attrNamespaceURI","attrValue","toNodeAttrs","attributes","namespaceURI","localName","getAttributeNS","prefix","setAttributeNS","fromNodeAttrs","d","hasAttributeNS","removeAttributeNS","morphAttrs","curToNodeKey","curFromNodeKey","fromNextSibling","toNextSibling","matchingFromEl","curToNodeChild","curFromNodeChild","outer","isSameNode","curFromNodeType","isCompatible","insertBefore","appendChild","onBeforeNodeAddedResult","actualize","ownerDocument","cleanupFromEl","specialElHandler","morphChildren","indexTree","morphedNode","morphedNodeType","toNodeType","nextChild","moveChildren","createElementNS","elToRemove","init","userConfig","userInitData","window","ContentstackLivePreview","livePreview","PublicLogger","warn","Promise","resolve","setOnChangeCallback","publish","values","subscribers","forEach","func","subscribe","callback","callbackUid","onEntryChange","onChangeCallback","config","skipInitialRender","onLiveEdit","unsubscribeOnEntryChange","entries","some","uid","getGatsbyDataFormat","sdkQuery","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","tooltipChild","singular","multiple","tooltipCurrentChild","createCslpTooltip","getElementById","classList","add","insertAdjacentElement","createSingularEditButton","scrollHandler","createMultipleEditButton","linkClickHandler","updateTooltipPosition","handleInitData","addEditStyleOnHover","bind","generateRedirectUrl","handleUserChange","resolveIncomingMessage","requestDataSync","removeDataCslp","debug","readyState","addEventListener","e","querySelectorAll","tag","docOrigin","location","origin","href","includes","newUrl","addLivePreviewQueryTags","event","target","targetHref","trigger","composedPath","element","cslpTag","remove","locale","entry_uid","preview_field","String","urlHash","URL","hash","searchParams","append","search","field","parent","postMessage","from","type","data","redirectUrl","open","hrefAttribute","assign","editEntrySearchParams","fetch_url","toString","method","text","updateDocumentBody","onPostOperation","shouldReRunScripts","history","forward","back","go","replaceDocumentBody","shouldReload","sdkVersion","setInterval","currentRectOfElement","getBoundingClientRect","currentRectOfParentOfElement","parentElement","getEditButtonPosition","upperBoundOfTooltip","leftBoundOfTooltip","top","style","zIndex","left","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","get","ctUid","set","cslpButtonQueryValue","currentHoveredElement","defaultPosition","cslpButtonPosition","editButtonPosition","buttonMeasurementValues","width","halfWidth","height","basicMargin","widthWithMargin","right","bottom","calculateEditButtonPosition","logEvent","logCallback","message","rerunScriptsInDocument","scriptsInTheDOM","scriptsLeftToExecute","scriptIndex","postScriptExecute","outerHTML","executeNextScript","currentScript","newScript","src","onerror","onload","newBody","DOMParser","parseFromString","receivedHTML","existingFrame","iframe","display","SCRIPT_AND_BACKTICKS","escapedHTML","_substring","_scriptTag","backTick","srcdoc","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","Error","uuid","byteToHex","substr","arguments","TypeError","_nodeId","_clockseq","_lastMSecs","_lastNSecs","buf","b","clockseq","seedBytes","random","msecs","Date","now","nsecs","dt","tl","tmh","n","v","parseInt","hashfunc","generateUUID","namespace","unescape","encodeURIComponent","bytes","stringToBytes","DNS","getOutputLength","inputLength8","safeAdd","x","y","lsw","md5cmn","q","a","s","t","num","cnt","md5ff","c","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","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/./node_modules/morphdom/dist/morphdom-esm.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/./src/utils/replaceHtml.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","var DOCUMENT_FRAGMENT_NODE = 11;\n\nfunction morphAttrs(fromNode, toNode) {\n var toNodeAttrs = toNode.attributes;\n var attr;\n var attrName;\n var attrNamespaceURI;\n var attrValue;\n var fromValue;\n\n // document-fragments dont have attributes so lets not do anything\n if (toNode.nodeType === DOCUMENT_FRAGMENT_NODE || fromNode.nodeType === DOCUMENT_FRAGMENT_NODE) {\n return;\n }\n\n // update attributes on original DOM element\n for (var i = toNodeAttrs.length - 1; i >= 0; i--) {\n attr = toNodeAttrs[i];\n attrName = attr.name;\n attrNamespaceURI = attr.namespaceURI;\n attrValue = attr.value;\n\n if (attrNamespaceURI) {\n attrName = attr.localName || attrName;\n fromValue = fromNode.getAttributeNS(attrNamespaceURI, attrName);\n\n if (fromValue !== attrValue) {\n if (attr.prefix === 'xmlns'){\n attrName = attr.name; // It's not allowed to set an attribute with the XMLNS namespace without specifying the `xmlns` prefix\n }\n fromNode.setAttributeNS(attrNamespaceURI, attrName, attrValue);\n }\n } else {\n fromValue = fromNode.getAttribute(attrName);\n\n if (fromValue !== attrValue) {\n fromNode.setAttribute(attrName, attrValue);\n }\n }\n }\n\n // Remove any extra attributes found on the original DOM element that\n // weren't found on the target element.\n var fromNodeAttrs = fromNode.attributes;\n\n for (var d = fromNodeAttrs.length - 1; d >= 0; d--) {\n attr = fromNodeAttrs[d];\n attrName = attr.name;\n attrNamespaceURI = attr.namespaceURI;\n\n if (attrNamespaceURI) {\n attrName = attr.localName || attrName;\n\n if (!toNode.hasAttributeNS(attrNamespaceURI, attrName)) {\n fromNode.removeAttributeNS(attrNamespaceURI, attrName);\n }\n } else {\n if (!toNode.hasAttribute(attrName)) {\n fromNode.removeAttribute(attrName);\n }\n }\n }\n}\n\nvar range; // Create a range object for efficently rendering strings to elements.\nvar NS_XHTML = 'http://www.w3.org/1999/xhtml';\n\nvar doc = typeof document === 'undefined' ? undefined : document;\nvar HAS_TEMPLATE_SUPPORT = !!doc && 'content' in doc.createElement('template');\nvar HAS_RANGE_SUPPORT = !!doc && doc.createRange && 'createContextualFragment' in doc.createRange();\n\nfunction createFragmentFromTemplate(str) {\n var template = doc.createElement('template');\n template.innerHTML = str;\n return template.content.childNodes[0];\n}\n\nfunction createFragmentFromRange(str) {\n if (!range) {\n range = doc.createRange();\n range.selectNode(doc.body);\n }\n\n var fragment = range.createContextualFragment(str);\n return fragment.childNodes[0];\n}\n\nfunction createFragmentFromWrap(str) {\n var fragment = doc.createElement('body');\n fragment.innerHTML = str;\n return fragment.childNodes[0];\n}\n\n/**\n * This is about the same\n * var html = new DOMParser().parseFromString(str, 'text/html');\n * return html.body.firstChild;\n *\n * @method toElement\n * @param {String} str\n */\nfunction toElement(str) {\n str = str.trim();\n if (HAS_TEMPLATE_SUPPORT) {\n // avoid restrictions on content for things like `<tr><th>Hi</th></tr>` which\n // createContextualFragment doesn't support\n // <template> support not available in IE\n return createFragmentFromTemplate(str);\n } else if (HAS_RANGE_SUPPORT) {\n return createFragmentFromRange(str);\n }\n\n return createFragmentFromWrap(str);\n}\n\n/**\n * Returns true if two node's names are the same.\n *\n * NOTE: We don't bother checking `namespaceURI` because you will never find two HTML elements with the same\n * nodeName and different namespace URIs.\n *\n * @param {Element} a\n * @param {Element} b The target element\n * @return {boolean}\n */\nfunction compareNodeNames(fromEl, toEl) {\n var fromNodeName = fromEl.nodeName;\n var toNodeName = toEl.nodeName;\n var fromCodeStart, toCodeStart;\n\n if (fromNodeName === toNodeName) {\n return true;\n }\n\n fromCodeStart = fromNodeName.charCodeAt(0);\n toCodeStart = toNodeName.charCodeAt(0);\n\n // If the target element is a virtual DOM node or SVG node then we may\n // need to normalize the tag name before comparing. Normal HTML elements that are\n // in the \"http://www.w3.org/1999/xhtml\"\n // are converted to upper case\n if (fromCodeStart <= 90 && toCodeStart >= 97) { // from is upper and to is lower\n return fromNodeName === toNodeName.toUpperCase();\n } else if (toCodeStart <= 90 && fromCodeStart >= 97) { // to is upper and from is lower\n return toNodeName === fromNodeName.toUpperCase();\n } else {\n return false;\n }\n}\n\n/**\n * Create an element, optionally with a known namespace URI.\n *\n * @param {string} name the element name, e.g. 'div' or 'svg'\n * @param {string} [namespaceURI] the element's namespace URI, i.e. the value of\n * its `xmlns` attribute or its inferred namespace.\n *\n * @return {Element}\n */\nfunction createElementNS(name, namespaceURI) {\n return !namespaceURI || namespaceURI === NS_XHTML ?\n doc.createElement(name) :\n doc.createElementNS(namespaceURI, name);\n}\n\n/**\n * Copies the children of one DOM element to another DOM element\n */\nfunction moveChildren(fromEl, toEl) {\n var curChild = fromEl.firstChild;\n while (curChild) {\n var nextChild = curChild.nextSibling;\n toEl.appendChild(curChild);\n curChild = nextChild;\n }\n return toEl;\n}\n\nfunction syncBooleanAttrProp(fromEl, toEl, name) {\n if (fromEl[name] !== toEl[name]) {\n fromEl[name] = toEl[name];\n if (fromEl[name]) {\n fromEl.setAttribute(name, '');\n } else {\n fromEl.removeAttribute(name);\n }\n }\n}\n\nvar specialElHandlers = {\n OPTION: function(fromEl, toEl) {\n var parentNode = fromEl.parentNode;\n if (parentNode) {\n var parentName = parentNode.nodeName.toUpperCase();\n if (parentName === 'OPTGROUP') {\n parentNode = parentNode.parentNode;\n parentName = parentNode && parentNode.nodeName.toUpperCase();\n }\n if (parentName === 'SELECT' && !parentNode.hasAttribute('multiple')) {\n if (fromEl.hasAttribute('selected') && !toEl.selected) {\n // Workaround for MS Edge bug where the 'selected' attribute can only be\n // removed if set to a non-empty value:\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12087679/\n fromEl.setAttribute('selected', 'selected');\n fromEl.removeAttribute('selected');\n }\n // We have to reset select element's selectedIndex to -1, otherwise setting\n // fromEl.selected using the syncBooleanAttrProp below has no effect.\n // The correct selectedIndex will be set in the SELECT special handler below.\n parentNode.selectedIndex = -1;\n }\n }\n syncBooleanAttrProp(fromEl, toEl, 'selected');\n },\n /**\n * The \"value\" attribute is special for the <input> element since it sets\n * the initial value. Changing the \"value\" attribute without changing the\n * \"value\" property will have no effect since it is only used to the set the\n * initial value. Similar for the \"checked\" attribute, and \"disabled\".\n */\n INPUT: function(fromEl, toEl) {\n syncBooleanAttrProp(fromEl, toEl, 'checked');\n syncBooleanAttrProp(fromEl, toEl, 'disabled');\n\n if (fromEl.value !== toEl.value) {\n fromEl.value = toEl.value;\n }\n\n if (!toEl.hasAttribute('value')) {\n fromEl.removeAttribute('value');\n }\n },\n\n TEXTAREA: function(fromEl, toEl) {\n var newValue = toEl.value;\n if (fromEl.value !== newValue) {\n fromEl.value = newValue;\n }\n\n var firstChild = fromEl.firstChild;\n if (firstChild) {\n // Needed for IE. Apparently IE sets the placeholder as the\n // node value and vise versa. This ignores an empty update.\n var oldValue = firstChild.nodeValue;\n\n if (oldValue == newValue || (!newValue && oldValue == fromEl.placeholder)) {\n return;\n }\n\n firstChild.nodeValue = newValue;\n }\n },\n SELECT: function(fromEl, toEl) {\n if (!toEl.hasAttribute('multiple')) {\n var selectedIndex = -1;\n var i = 0;\n // We have to loop through children of fromEl, not toEl since nodes can be moved\n // from toEl to fromEl directly when morphing.\n // At the time this special handler is invoked, all children have already been morphed\n // and appended to / removed from fromEl, so using fromEl here is safe and correct.\n var curChild = fromEl.firstChild;\n var optgroup;\n var nodeName;\n while(curChild) {\n nodeName = curChild.nodeName && curChild.nodeName.toUpperCase();\n if (nodeName === 'OPTGROUP') {\n optgroup = curChild;\n curChild = optgroup.firstChild;\n } else {\n if (nodeName === 'OPTION') {\n if (curChild.hasAttribute('selected')) {\n selectedIndex = i;\n break;\n }\n i++;\n }\n curChild = curChild.nextSibling;\n if (!curChild && optgroup) {\n curChild = optgroup.nextSibling;\n optgroup = null;\n }\n }\n }\n\n fromEl.selectedIndex = selectedIndex;\n }\n }\n};\n\nvar ELEMENT_NODE = 1;\nvar DOCUMENT_FRAGMENT_NODE$1 = 11;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\n\nfunction noop() {}\n\nfunction defaultGetNodeKey(node) {\n if (node) {\n return (node.getAttribute && node.getAttribute('id')) || node.id;\n }\n}\n\nfunction morphdomFactory(morphAttrs) {\n\n return function morphdom(fromNode, toNode, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof toNode === 'string') {\n if (fromNode.nodeName === '#document' || fromNode.nodeName === 'HTML' || fromNode.nodeName === 'BODY') {\n var toNodeHtml = toNode;\n toNode = doc.createElement('html');\n toNode.innerHTML = toNodeHtml;\n } else {\n toNode = toElement(toNode);\n }\n }\n\n var getNodeKey = options.getNodeKey || defaultGetNodeKey;\n var onBeforeNodeAdded = options.onBeforeNodeAdded || noop;\n var onNodeAdded = options.onNodeAdded || noop;\n var onBeforeElUpdated = options.onBeforeElUpdated || noop;\n var onElUpdated = options.onElUpdated || noop;\n var onBeforeNodeDiscarded = options.onBeforeNodeDiscarded || noop;\n var onNodeDiscarded = options.onNodeDiscarded || noop;\n var onBeforeElChildrenUpdated = options.onBeforeElChildrenUpdated || noop;\n var childrenOnly = options.childrenOnly === true;\n\n // This object is used as a lookup to quickly find all keyed elements in the original DOM tree.\n var fromNodesLookup = Object.create(null);\n var keyedRemovalList = [];\n\n function addKeyedRemoval(key) {\n keyedRemovalList.push(key);\n }\n\n function walkDiscardedChildNodes(node, skipKeyedNodes) {\n if (node.nodeType === ELEMENT_NODE) {\n var curChild = node.firstChild;\n while (curChild) {\n\n var key = undefined;\n\n if (skipKeyedNodes && (key = getNodeKey(curChild))) {\n // If we are skipping keyed nodes then we add the key\n // to a list so that it can be handled at the very end.\n addKeyedRemoval(key);\n } else {\n // Only report the node as discarded if it is not keyed. We do this because\n // at the end we loop through all keyed elements that were unmatched\n // and then discard them in one final pass.\n onNodeDiscarded(curChild);\n if (curChild.firstChild) {\n walkDiscardedChildNodes(curChild, skipKeyedNodes);\n }\n }\n\n curChild = curChild.nextSibling;\n }\n }\n }\n\n /**\n * Removes a DOM node out of the original DOM\n *\n * @param {Node} node The node to remove\n * @param {Node} parentNode The nodes parent\n * @param {Boolean} skipKeyedNodes If true then elements with keys will be skipped and not discarded.\n * @return {undefined}\n */\n function removeNode(node, parentNode, skipKeyedNodes) {\n if (onBeforeNodeDiscarded(node) === false) {\n return;\n }\n\n if (parentNode) {\n parentNode.removeChild(node);\n }\n\n onNodeDiscarded(node);\n walkDiscardedChildNodes(node, skipKeyedNodes);\n }\n\n // // TreeWalker implementation is no faster, but keeping this around in case this changes in the future\n // function indexTree(root) {\n // var treeWalker = document.createTreeWalker(\n // root,\n // NodeFilter.SHOW_ELEMENT);\n //\n // var el;\n // while((el = treeWalker.nextNode())) {\n // var key = getNodeKey(el);\n // if (key) {\n // fromNodesLookup[key] = el;\n // }\n // }\n // }\n\n // // NodeIterator implementation is no faster, but keeping this around in case this changes in the future\n //\n // function indexTree(node) {\n // var nodeIterator = document.createNodeIterator(node, NodeFilter.SHOW_ELEMENT);\n // var el;\n // while((el = nodeIterator.nextNode())) {\n // var key = getNodeKey(el);\n // if (key) {\n // fromNodesLookup[key] = el;\n // }\n // }\n // }\n\n function indexTree(node) {\n if (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE$1) {\n var curChild = node.firstChild;\n while (curChild) {\n var key = getNodeKey(curChild);\n if (key) {\n fromNodesLookup[key] = curChild;\n }\n\n // Walk recursively\n indexTree(curChild);\n\n curChild = curChild.nextSibling;\n }\n }\n }\n\n indexTree(fromNode);\n\n function handleNodeAdded(el) {\n onNodeAdded(el);\n\n var curChild = el.firstChild;\n while (curChild) {\n var nextSibling = curChild.nextSibling;\n\n var key = getNodeKey(curChild);\n if (key) {\n var unmatchedFromEl = fromNodesLookup[key];\n // if we find a duplicate #id node in cache, replace `el` with cache value\n // and morph it to the child node.\n if (unmatchedFromEl && compareNodeNames(curChild, unmatchedFromEl)) {\n curChild.parentNode.replaceChild(unmatchedFromEl, curChild);\n morphEl(unmatchedFromEl, curChild);\n } else {\n handleNodeAdded(curChild);\n }\n } else {\n // recursively call for curChild and it's children to see if we find something in\n // fromNodesLookup\n handleNodeAdded(curChild);\n }\n\n curChild = nextSibling;\n }\n }\n\n function cleanupFromEl(fromEl, curFromNodeChild, curFromNodeKey) {\n // We have processed all of the \"to nodes\". If curFromNodeChild is\n // non-null then we still have some from nodes left over that need\n // to be removed\n while (curFromNodeChild) {\n var fromNextSibling = curFromNodeChild.nextSibling;\n if ((curFromNodeKey = getNodeKey(curFromNodeChild))) {\n // Since the node is keyed it might be matched up later so we defer\n // the actual removal to later\n addKeyedRemoval(curFromNodeKey);\n } else {\n // NOTE: we skip nested keyed nodes from being removed since there is\n // still a chance they will be matched up later\n removeNode(curFromNodeChild, fromEl, true /* skip keyed nodes */);\n }\n curFromNodeChild = fromNextSibling;\n }\n }\n\n function morphEl(fromEl, toEl, childrenOnly) {\n var toElKey = getNodeKey(toEl);\n\n if (toElKey) {\n // If an element with an ID is being morphed then it will be in the final\n // DOM so clear it out of the saved elements collection\n delete fromNodesLookup[toElKey];\n }\n\n if (!childrenOnly) {\n // optional\n if (onBeforeElUpdated(fromEl, toEl) === false) {\n return;\n }\n\n // update attributes on original DOM element first\n morphAttrs(fromEl, toEl);\n // optional\n onElUpdated(fromEl);\n\n if (onBeforeElChildrenUpdated(fromEl, toEl) === false) {\n return;\n }\n }\n\n if (fromEl.nodeName !== 'TEXTAREA') {\n morphChildren(fromEl, toEl);\n } else {\n specialElHandlers.TEXTAREA(fromEl, toEl);\n }\n }\n\n function morphChildren(fromEl, toEl) {\n var curToNodeChild = toEl.firstChild;\n var curFromNodeChild = fromEl.firstChild;\n var curToNodeKey;\n var curFromNodeKey;\n\n var fromNextSibling;\n var toNextSibling;\n var matchingFromEl;\n\n // walk the children\n outer: while (curToNodeChild) {\n toNextSibling = curToNodeChild.nextSibling;\n curToNodeKey = getNodeKey(curToNodeChild);\n\n // walk the fromNode children all the way through\n while (curFromNodeChild) {\n fromNextSibling = curFromNodeChild.nextSibling;\n\n if (curToNodeChild.isSameNode && curToNodeChild.isSameNode(curFromNodeChild)) {\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n continue outer;\n }\n\n curFromNodeKey = getNodeKey(curFromNodeChild);\n\n var curFromNodeType = curFromNodeChild.nodeType;\n\n // this means if the curFromNodeChild doesnt have a match with the curToNodeChild\n var isCompatible = undefined;\n\n if (curFromNodeType === curToNodeChild.nodeType) {\n if (curFromNodeType === ELEMENT_NODE) {\n // Both nodes being compared are Element nodes\n\n if (curToNodeKey) {\n // The target node has a key so we want to match it up with the correct element\n // in the original DOM tree\n if (curToNodeKey !== curFromNodeKey) {\n // The current element in the original DOM tree does not have a matching key so\n // let's check our lookup to see if there is a matching element in the original\n // DOM tree\n if ((matchingFromEl = fromNodesLookup[curToNodeKey])) {\n if (fromNextSibling === matchingFromEl) {\n // Special case for single element removals. To avoid removing the original\n // DOM node out of the tree (since that can break CSS transitions, etc.),\n // we will instead discard the current node and wait until the next\n // iteration to properly match up the keyed target element with its matching\n // element in the original tree\n isCompatible = false;\n } else {\n // We found a matching keyed element somewhere in the original DOM tree.\n // Let's move the original DOM node into the current position and morph\n // it.\n\n // NOTE: We use insertBefore instead of replaceChild because we want to go through\n // the `removeNode()` function for the node that is being discarded so that\n // all lifecycle hooks are correctly invoked\n fromEl.insertBefore(matchingFromEl, curFromNodeChild);\n\n // fromNextSibling = curFromNodeChild.nextSibling;\n\n if (curFromNodeKey) {\n // Since the node is keyed it might be matched up later so we defer\n // the actual removal to later\n addKeyedRemoval(curFromNodeKey);\n } else {\n // NOTE: we skip nested keyed nodes from being removed since there is\n // still a chance they will be matched up later\n removeNode(curFromNodeChild, fromEl, true /* skip keyed nodes */);\n }\n\n curFromNodeChild = matchingFromEl;\n }\n } else {\n // The nodes are not compatible since the \"to\" node has a key and there\n // is no matching keyed node in the source tree\n isCompatible = false;\n }\n }\n } else if (curFromNodeKey) {\n // The original has a key\n isCompatible = false;\n }\n\n isCompatible = isCompatible !== false && compareNodeNames(curFromNodeChild, curToNodeChild);\n if (isCompatible) {\n // We found compatible DOM elements so transform\n // the current \"from\" node to match the current\n // target DOM node.\n // MORPH\n morphEl(curFromNodeChild, curToNodeChild);\n }\n\n } else if (curFromNodeType === TEXT_NODE || curFromNodeType == COMMENT_NODE) {\n // Both nodes being compared are Text or Comment nodes\n isCompatible = true;\n // Simply update nodeValue on the original node to\n // change the text value\n if (curFromNodeChild.nodeValue !== curToNodeChild.nodeValue) {\n curFromNodeChild.nodeValue = curToNodeChild.nodeValue;\n }\n\n }\n }\n\n if (isCompatible) {\n // Advance both the \"to\" child and the \"from\" child since we found a match\n // Nothing else to do as we already recursively called morphChildren above\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n continue outer;\n }\n\n // No compatible match so remove the old node from the DOM and continue trying to find a\n // match in the original DOM. However, we only do this if the from node is not keyed\n // since it is possible that a keyed node might match up with a node somewhere else in the\n // target tree and we don't want to discard it just yet since it still might find a\n // home in the final DOM tree. After everything is done we will remove any keyed nodes\n // that didn't find a home\n if (curFromNodeKey) {\n // Since the node is keyed it might be matched up later so we defer\n // the actual removal to later\n addKeyedRemoval(curFromNodeKey);\n } else {\n // NOTE: we skip nested keyed nodes from being removed since there is\n // still a chance they will be matched up later\n removeNode(curFromNodeChild, fromEl, true /* skip keyed nodes */);\n }\n\n curFromNodeChild = fromNextSibling;\n } // END: while(curFromNodeChild) {}\n\n // If we got this far then we did not find a candidate match for\n // our \"to node\" and we exhausted all of the children \"from\"\n // nodes. Therefore, we will just append the current \"to\" node\n // to the end\n if (curToNodeKey && (matchingFromEl = fromNodesLookup[curToNodeKey]) && compareNodeNames(matchingFromEl, curToNodeChild)) {\n fromEl.appendChild(matchingFromEl);\n // MORPH\n morphEl(matchingFromEl, curToNodeChild);\n } else {\n var onBeforeNodeAddedResult = onBeforeNodeAdded(curToNodeChild);\n if (onBeforeNodeAddedResult !== false) {\n if (onBeforeNodeAddedResult) {\n curToNodeChild = onBeforeNodeAddedResult;\n }\n\n if (curToNodeChild.actualize) {\n curToNodeChild = curToNodeChild.actualize(fromEl.ownerDocument || doc);\n }\n fromEl.appendChild(curToNodeChild);\n handleNodeAdded(curToNodeChild);\n }\n }\n\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n }\n\n cleanupFromEl(fromEl, curFromNodeChild, curFromNodeKey);\n\n var specialElHandler = specialElHandlers[fromEl.nodeName];\n if (specialElHandler) {\n specialElHandler(fromEl, toEl);\n }\n } // END: morphChildren(...)\n\n var morphedNode = fromNode;\n var morphedNodeType = morphedNode.nodeType;\n var toNodeType = toNode.nodeType;\n\n if (!childrenOnly) {\n // Handle the case where we are given two DOM nodes that are not\n // compatible (e.g. <div> --> <span> or <div> --> TEXT)\n if (morphedNodeType === ELEMENT_NODE) {\n if (toNodeType === ELEMENT_NODE) {\n if (!compareNodeNames(fromNode, toNode)) {\n onNodeDiscarded(fromNode);\n morphedNode = moveChildren(fromNode, createElementNS(toNode.nodeName, toNode.namespaceURI));\n }\n } else {\n // Going from an element node to a text node\n morphedNode = toNode;\n }\n } else if (morphedNodeType === TEXT_NODE || morphedNodeType === COMMENT_NODE) { // Text or comment node\n if (toNodeType === morphedNodeType) {\n if (morphedNode.nodeValue !== toNode.nodeValue) {\n morphedNode.nodeValue = toNode.nodeValue;\n }\n\n return morphedNode;\n } else {\n // Text node to something else\n morphedNode = toNode;\n }\n }\n }\n\n if (morphedNode === toNode) {\n // The \"to node\" was not compatible with the \"from node\" so we had to\n // toss out the \"from node\" and use the \"to node\"\n onNodeDiscarded(fromNode);\n } else {\n if (toNode.isSameNode && toNode.isSameNode(morphedNode)) {\n return;\n }\n\n morphEl(morphedNode, toNode, childrenOnly);\n\n // We now need to loop over any keyed nodes that might need to be\n // removed. We only do the removal if we know that the keyed node\n // never found a match. When a keyed node is matched up we remove\n // it out of fromNodesLookup and we use fromNodesLookup to determine\n // if a keyed node has been matched up or not\n if (keyedRemovalList) {\n for (var i=0, len=keyedRemovalList.length; i<len; i++) {\n var elToRemove = fromNodesLookup[keyedRemovalList[i]];\n if (elToRemove) {\n removeNode(elToRemove, elToRemove.parentNode, false);\n }\n }\n }\n }\n\n if (!childrenOnly && morphedNode !== fromNode && fromNode.parentNode) {\n if (morphedNode.actualize) {\n morphedNode = morphedNode.actualize(fromNode.ownerDocument || doc);\n }\n // If we had to swap out the from node with a new node because the old\n // node was not compatible with the target node then we need to\n // replace the old DOM node in the original DOM tree. This is only\n // possible if the original DOM node was part of a DOM tree which\n // we know is the case if it has a parent node.\n fromNode.parentNode.replaceChild(morphedNode, fromNode);\n }\n\n return morphedNode;\n };\n}\n\nvar morphdom = morphdomFactory(morphAttrs);\n\nexport default morphdom;\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\";\nimport { replaceDocumentBody, updateDocumentBody } from \"./utils/replaceHtml\";\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\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.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\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.currentElementBesideTooltip)\n this.currentElementBesideTooltip.classList.remove(\n \"cslp-edit-mode\"\n );\n element.classList.add(\"cslp-edit-mode\");\n this.currentElementBesideTooltip = element;\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 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 // Get the content from the server and replace the body\n\n const fetch_url = new URL(window.location.href);\n\n fetch_url.searchParams.append(\"live_preview\", hash);\n fetch_url.searchParams.append(\n \"content_type_uid\",\n contentTypeUid\n );\n fetch_url.searchParams.append(\"entry_uid\", entryUid);\n\n fetch(fetch_url.toString(), {\n method: \"GET\",\n })\n .then((res) => res.text())\n .then((res) => {\n updateDocumentBody(document, res, {\n onPostOperation: this.createCslpTooltip,\n shouldReRunScripts:\n this.config.runScriptsOnUpdate,\n });\n });\n } else {\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 case \"document-body-post-scripts-loaded\": {\n const { body } = e.data.data;\n replaceDocumentBody(body, this.createCslpTooltip);\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 tooltip.classList.add(\"cslp-tooltip\");\n tooltip.setAttribute(\"data-test-id\", \"cs-cslp-tooltip\");\n tooltip.id = \"cslp-tooltip\";\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 tooltip.innerHTML = \"\";\n tooltip.appendChild(this.tooltipChild.singular);\n this.tooltip = tooltip;\n }\n this.updateTooltipPosition();\n };\n\n // Request parent for data sync when document loads\n private requestDataSync() {\n this.handleUserChange({\n live_preview: \"init\", // this is the hash of the live previewd\n });\n\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 this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.multiple);\n this.tooltipCurrentChild = \"multiple\";\n }\n } else if (this.tooltipCurrentChild !== \"singular\") {\n this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.singular);\n this.tooltipCurrentChild = \"singular\";\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","/* eslint-disable no-useless-escape */\n\nimport morphdom from \"morphdom\";\n\nexport function rerunScriptsInDocument(): void {\n const scriptsInTheDOM = document.querySelectorAll(\"script\");\n let scriptsLeftToExecute = scriptsInTheDOM.length;\n\n let scriptIndex = 0;\n\n function isScriptRemaining() {\n return scriptIndex < scriptsInTheDOM.length;\n }\n\n function decrementNumberOfScriptsLeft() {\n scriptsLeftToExecute--;\n\n if (scriptsLeftToExecute === 0) {\n window.parent.postMessage(\n {\n from: \"live-preview\",\n type: \"document-body-post-scripts-loaded\",\n data: {\n body: document.body.outerHTML,\n },\n },\n \"*\"\n );\n }\n }\n\n function postScriptExecute() {\n scriptIndex++;\n decrementNumberOfScriptsLeft();\n executeNextScript();\n }\n function executeNextScript() {\n if (isScriptRemaining()) {\n const currentScript = scriptsInTheDOM[scriptIndex];\n\n const parent = currentScript.parentNode;\n const newScript = document.createElement(\"script\");\n\n if (currentScript.src) {\n newScript.onerror = postScriptExecute;\n newScript.onload = postScriptExecute;\n newScript.src = currentScript.src;\n } else {\n newScript.text = currentScript.text;\n postScriptExecute();\n }\n parent?.replaceChild(newScript, currentScript);\n }\n }\n\n if (scriptsInTheDOM.length) {\n executeNextScript();\n }\n}\n\nexport async function updateDocumentBody(\n document: Document,\n receivedHTML: string,\n options: {\n shouldReRunScripts: boolean;\n onPostOperation: () => void;\n }\n): Promise<void> {\n const { shouldReRunScripts, onPostOperation } = options;\n\n if (!shouldReRunScripts) {\n replaceDocumentBody(receivedHTML, onPostOperation);\n } else {\n const existingIframes = document.querySelectorAll(\n \"iframe#contentstack-live-preview-iframe\"\n );\n\n existingIframes.forEach((existingFrame) => {\n existingFrame.remove();\n });\n\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.id = \"contentstack-live-preview-iframe\";\n\n // escape backticks and script tags\n const SCRIPT_AND_BACKTICKS = /(<\\s*\\/\\s*script\\s*>)|(`)/gm;\n\n const escapedHTML = receivedHTML.replace(\n SCRIPT_AND_BACKTICKS,\n (_substring, _scriptTag, backTick) => {\n if (backTick) {\n return \"\\\\`\";\n } else {\n return \"<\\\\/script>\";\n }\n }\n );\n\n iframe.srcdoc = `\n <head>\n <script>\n function prepareIframeForScriptRerun() {\n const responseHTML = \\`${escapedHTML}\\`;\n\n const html = document.getElementsByTagName(\"html\").item(0);\n\n const rerunScriptsInDocument = ${rerunScriptsInDocument}\n\n if (html) {\n html.innerHTML = responseHTML;\n rerunScriptsInDocument();\n }\n }\n prepareIframeForScriptRerun()\n <\\/script>\n </head>`;\n\n document.body.appendChild(iframe);\n }\n}\n\nexport function replaceDocumentBody(\n newBody: string,\n onPostOperation?: () => void\n): void {\n const parser = new DOMParser();\n const doc = parser.parseFromString(newBody, \"text/html\");\n\n morphdom(document.body, doc.body);\n if (onPostOperation) {\n onPostOperation();\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","range","doc","document","undefined","HAS_TEMPLATE_SUPPORT","createElement","HAS_RANGE_SUPPORT","createRange","compareNodeNames","fromEl","toEl","fromCodeStart","toCodeStart","fromNodeName","nodeName","toNodeName","charCodeAt","syncBooleanAttrProp","name","setAttribute","removeAttribute","specialElHandlers","OPTION","parentNode","parentName","hasAttribute","selected","selectedIndex","INPUT","value","TEXTAREA","newValue","firstChild","oldValue","nodeValue","placeholder","SELECT","optgroup","curChild","nextSibling","noop","defaultGetNodeKey","node","getAttribute","id","fromNode","toNode","toNodeHtml","innerHTML","trim","template","content","childNodes","createFragmentFromTemplate","selectNode","body","createContextualFragment","createFragmentFromRange","fragment","createFragmentFromWrap","getNodeKey","onBeforeNodeAdded","onNodeAdded","onBeforeElUpdated","onElUpdated","onBeforeNodeDiscarded","onNodeDiscarded","onBeforeElChildrenUpdated","childrenOnly","fromNodesLookup","Object","create","keyedRemovalList","addKeyedRemoval","key","push","walkDiscardedChildNodes","skipKeyedNodes","nodeType","removeNode","removeChild","handleNodeAdded","el","unmatchedFromEl","replaceChild","morphEl","toElKey","attr","attrName","attrNamespaceURI","attrValue","toNodeAttrs","attributes","namespaceURI","localName","getAttributeNS","prefix","setAttributeNS","fromNodeAttrs","d","hasAttributeNS","removeAttributeNS","morphAttrs","curToNodeKey","curFromNodeKey","fromNextSibling","toNextSibling","matchingFromEl","curToNodeChild","curFromNodeChild","outer","isSameNode","curFromNodeType","isCompatible","insertBefore","appendChild","onBeforeNodeAddedResult","actualize","ownerDocument","cleanupFromEl","specialElHandler","morphChildren","indexTree","morphedNode","morphedNodeType","toNodeType","nextChild","moveChildren","createElementNS","elToRemove","init","userConfig","userInitData","window","ContentstackLivePreview","livePreview","PublicLogger","warn","Promise","resolve","setOnChangeCallback","publish","setConfigFromParams","configs","params","hash","URLSearchParams","get","values","subscribers","forEach","func","subscribe","callback","callbackUid","onEntryChange","onChangeCallback","config","skipInitialRender","onLiveEdit","unsubscribeOnEntryChange","entries","some","uid","getGatsbyDataFormat","sdkQuery","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","tooltipChild","singular","multiple","tooltipCurrentChild","createCslpTooltip","getElementById","classList","add","insertAdjacentElement","createSingularEditButton","scrollHandler","createMultipleEditButton","linkClickHandler","updateTooltipPosition","handleInitData","addEditStyleOnHover","bind","generateRedirectUrl","handleUserChange","resolveIncomingMessage","requestDataSync","removeDataCslp","debug","readyState","addEventListener","e","querySelectorAll","tag","docOrigin","location","origin","href","includes","newUrl","addLivePreviewQueryTags","event","target","targetHref","trigger","composedPath","element","cslpTag","remove","locale","entry_uid","preview_field","String","urlHash","URL","searchParams","append","search","field","parent","postMessage","from","type","data","redirectUrl","open","hrefAttribute","assign","editEntrySearchParams","TypeError","fetch_url","toString","method","text","updateDocumentBody","onPostOperation","shouldReRunScripts","history","forward","back","go","replaceDocumentBody","shouldReload","sdkVersion","setInterval","currentRectOfElement","getBoundingClientRect","currentRectOfParentOfElement","parentElement","getEditButtonPosition","upperBoundOfTooltip","leftBoundOfTooltip","top","style","zIndex","left","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","rerunScriptsInDocument","scriptsInTheDOM","scriptsLeftToExecute","scriptIndex","postScriptExecute","outerHTML","executeNextScript","currentScript","newScript","src","onerror","onload","newBody","DOMParser","parseFromString","receivedHTML","existingFrame","iframe","display","SCRIPT_AND_BACKTICKS","escapedHTML","_substring","_scriptTag","backTick","srcdoc","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","Error","uuid","byteToHex","substr","arguments","_nodeId","_clockseq","_lastMSecs","_lastNSecs","buf","b","clockseq","seedBytes","random","msecs","Date","now","nsecs","dt","tl","tmh","n","v","parseInt","hashfunc","generateUUID","namespace","unescape","encodeURIComponent","bytes","stringToBytes","DNS","getOutputLength","inputLength8","safeAdd","x","y","lsw","md5cmn","q","a","s","t","num","cnt","md5ff","c","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","o","defineProperty","enumerable","obj","prop","r","Symbol","toStringTag"],"sourceRoot":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mustache.d.ts","sourceRoot":"","sources":["../mustache.ts"],"names":[],"mappings":""}
|
|
@@ -6,7 +6,21 @@ export declare class ContentstackLivePreview {
|
|
|
6
6
|
static subscribers: {
|
|
7
7
|
[uid: string]: OnEntryChangeCallback;
|
|
8
8
|
};
|
|
9
|
+
static configs: {
|
|
10
|
+
params: ConstructorParameters<typeof URLSearchParams>[0];
|
|
11
|
+
};
|
|
9
12
|
static init(userConfig?: Partial<IInitData>): Promise<LivePreview> | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* It is the live preview hash.
|
|
15
|
+
* This hash could be used when data is fetched manually.
|
|
16
|
+
*/
|
|
17
|
+
static get hash(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Sets the live preview hash from the query param which is
|
|
20
|
+
* accessible via `hash` property.
|
|
21
|
+
* @param params query param in an object form
|
|
22
|
+
*/
|
|
23
|
+
static setConfigFromParams(params?: ConstructorParameters<typeof URLSearchParams>[0]): void;
|
|
10
24
|
private static publish;
|
|
11
25
|
private static subscribe;
|
|
12
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentstack-live-preview-HOC.d.ts","sourceRoot":"","sources":["../../src/contentstack-live-preview-HOC.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAIzC,qBAAa,uBAAuB;IAChC,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAQ;IAC9C,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAQ;IACpD,MAAM,CAAC,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAM;
|
|
1
|
+
{"version":3,"file":"contentstack-live-preview-HOC.d.ts","sourceRoot":"","sources":["../../src/contentstack-live-preview-HOC.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAIzC,qBAAa,uBAAuB;IAChC,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAQ;IAC9C,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAQ;IACpD,MAAM,CAAC,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAM;IAClE,MAAM,CAAC,OAAO,EAAE;QACZ,MAAM,EAAE,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5D,CAEC;IAEF,MAAM,CAAC,IAAI,CACP,UAAU,GAAE,OAAO,CAAC,SAAS,CAAgB,GAC9C,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS;IA2BnC;;;OAGG;IACH,MAAM,KAAK,IAAI,IAAI,MAAM,CAOxB;IAED;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CACtB,MAAM,GAAE,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAM,GAC9D,IAAI;IASP,OAAO,CAAC,MAAM,CAAC,OAAO;IAQtB,OAAO,CAAC,MAAM,CAAC,SAAS;IAOxB;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAChB,gBAAgB,EAAE,qBAAqB,EACvC,MAAM,CAAC,EAAE,mBAAmB,GAC7B,wBAAwB;IAyB3B;;;;OAIG;IACH,MAAM,CAAC,UAAU,CACb,gBAAgB,EAAE,qBAAqB,GACxC,wBAAwB;IAM3B,MAAM,CAAC,wBAAwB,CAC3B,QAAQ,EAAE,MAAM,GAAG,qBAAqB,GACzC,IAAI;WAyBM,mBAAmB,CAC5B,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,GAAG,CAAC;IAoCf,MAAM,CAAC,aAAa,IAAI,MAAM;CAGjC;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -15,6 +15,17 @@ export default class LivePreview {
|
|
|
15
15
|
private linkClickHandler;
|
|
16
16
|
private handleUserChange;
|
|
17
17
|
setOnChangeCallback(onChangeCallback: () => void): void;
|
|
18
|
+
/**
|
|
19
|
+
* It is the live preview hash.
|
|
20
|
+
* This hash could be used when data is fetched manually.
|
|
21
|
+
*/
|
|
22
|
+
get hash(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Sets the live preview hash from the query param which is
|
|
25
|
+
* accessible via `hash` property.
|
|
26
|
+
* @param params query param in an object form
|
|
27
|
+
*/
|
|
28
|
+
setConfigFromParams(params?: ConstructorParameters<typeof URLSearchParams>[0]): void;
|
|
18
29
|
private resolveIncomingMessage;
|
|
19
30
|
private createCslpTooltip;
|
|
20
31
|
private requestDataSync;
|
|
@@ -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;AAMvB,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B;;OAEG;IAEH,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"live-preview.d.ts","sourceRoot":"","sources":["../../src/live-preview.ts"],"names":[],"mappings":"AAQA,OAAO,EAIH,SAAS,EAEZ,MAAM,eAAe,CAAC;AAMvB,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B;;OAEG;IAEH,OAAO,CAAC,MAAM,CAqCZ;IAEF,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,2BAA2B,CAA4B;IAE/D,OAAO,CAAC,YAAY,CAMlB;IACF,OAAO,CAAC,mBAAmB,CAAuC;gBAEtD,QAAQ,GAAE,OAAO,CAAC,SAAS,CAAgB;IAuEvD,OAAO,CAAC,mBAAmB;IAkC3B,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;IA4E9B,OAAO,CAAC,iBAAiB,CAuBvB;IAGF,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,qBAAqB;IAkD7B,OAAO,CAAC,cAAc;CAQzB"}
|
|
@@ -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.
|
|
3
|
+
"version": "1.4.0",
|
|
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",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"@babel/preset-env": "^7.3.1",
|
|
31
31
|
"@testing-library/jest-dom": "^5.14.1",
|
|
32
32
|
"@types/jest": "^27.0.1",
|
|
33
|
+
"@types/mustache": "^4.2.2",
|
|
33
34
|
"@types/uuid": "^8.3.1",
|
|
34
35
|
"@typescript-eslint/eslint-plugin": "^4.31.1",
|
|
35
36
|
"@typescript-eslint/parser": "^4.31.1",
|
|
@@ -60,6 +61,7 @@
|
|
|
60
61
|
"dependencies": {
|
|
61
62
|
"just-camel-case": "^4.0.2",
|
|
62
63
|
"morphdom": "^2.6.1",
|
|
64
|
+
"mustache": "^4.2.0",
|
|
63
65
|
"uuid": "^8.3.2"
|
|
64
66
|
},
|
|
65
67
|
"lint-staged": {
|