useblocks 1.1.85-dev.3 → 1.1.85-dev.4

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/useblocks.js CHANGED
@@ -1014,7 +1014,7 @@ var __amdEnv = window.__useblocks__ || (window.__useblocks__ = {});
1014
1014
 
1015
1015
 
1016
1016
  // Configure AMD loader
1017
- __amdEnv.require.config({ baseUrl: "./", paths: {"core":"useblocks-core.168aeeb1.js","monaco":"static/monaco/index.js","po":"useblocks-po.168aeeb1.js"} });
1017
+ __amdEnv.require.config({ baseUrl: "./", paths: {"core":"useblocks-core.fc97f6e8.js","monaco":"static/monaco/index.js","po":"useblocks-po.fc97f6e8.js"} });
1018
1018
 
1019
1019
  // PublicPath (script detection: entry script lookup → document.currentScript)
1020
1020
  if (!__useblocks__.publicPath) {
@@ -1362,7 +1362,7 @@ if (!ns.assetUrl) {
1362
1362
  }
1363
1363
 
1364
1364
  if (!ns.version) {
1365
- ns.version = "1.1.85-dev.3";
1365
+ ns.version = "1.1.85-dev.4";
1366
1366
  }
1367
1367
 
1368
1368
  var modules = ns.modules = Object.create(null);
@@ -2075,14 +2075,14 @@ if (typeof ns.define === 'function') {
2075
2075
  __useblocks__.define("static/umd/a6c87b84.js",["require","exports","module"],function(Sn,u,bn){var I=class ct{_inner;_isDisposed=!1;constructor(t=[]){this._inner=t}addDisposable(t){return this._inner.push(t),t instanceof ct&&t.addDispose(()=>{this.removeDisposable(t)}),t}addDispose(t){this.addDisposable({dispose:t})}removeDisposable(t){const r=this._inner.indexOf(t);r>=0&&this._inner.splice(r,1)}isDisposed(){return this._isDisposed}dispose(){if(!this._isDisposed){this._isDisposed=!0;for(const t of[...this._inner])t.dispose()}}};function M(e){return`service_container_${e}`}var y=new Set,H;function ut(){if(!H)return;const e=new Error("getInstanceAsync"),t=Error;return typeof t.captureStackTrace=="function"&&t.captureStackTrace(e,se.prototype.getInstanceAsync),e.stack}function V(e){y.delete(e)&&H?.end(e)}var se=class oe extends I{_parent;_injectCallbacks=[];_injections=Object.create(null);_runCallbacks(t){this._injectCallbacks.forEach(r=>r(t))}constructor(t=null){super(),this._parent=t,t&&this.addDisposable(t.onInject(r=>this._runCallbacks(r)))}onInject=t=>(this._injectCallbacks.push(t),{dispose:()=>{const r=this._injectCallbacks.indexOf(t);r>=0&&this._injectCallbacks.splice(r,1)}});inject(t,r){this._injections[t]=()=>r,this._runCallbacks(t)}injectFactory(t,r,n){const i=this._injections[t];let o=typeof i=="function"?i():i;const s=this._injections[t]=()=>(o=r(this,o),o);n&&s(),this._runCallbacks(t)}_find(t,r=!0){return this._injections[t]||r&&this._parent?._find(t)}_onInject(t,r,n=new I){return n.addDisposable(this.onInject(i=>{t===i&&(n.dispose(),r(this.getInstance(i)))})),this._parent&&n.addDisposable(this._parent._onInject(t,r,n)),this.addDisposable(n),n}getInstance(t,r=!0){const n=this._find(t,r);if(typeof n=="function")return n()}getOrCreateInstance(t,r){const n=this._find(t);if(typeof n=="function")return n();const i=r(this);return this.inject(t,i),i}getInstanceAsync(t){const r=this._find(t);if(typeof r=="function")return Promise.resolve(r());const n=ut();return new Promise((i,o)=>{const s={id:String(t),startedAt:Date.now(),origin:n,container:this,reject:o};y.add(s),H?.start(s),this._onInject(t,()=>{V(s),i(this.getInstance(t))})})}failPendingWaits(t){for(const r of Array.from(y))r.container===this&&(V(r),r.reject(t))}pendingWaits(){return[...y].filter(t=>t.container===this)}addService(t,r){const n=M(t);this.injectFactory(n,(o,s=[])=>s.indexOf(r)<0?[...s,r]:s);const i=new I;return i.addDispose(()=>{this.injectFactory(n,(o,s=[])=>s.filter(a=>a!==r))}),i}addServiceFactory(t,r,n){const i=M(t);let o;this.injectFactory(i,(a,c=[])=>(o=r(a,o),o===void 0?c:c.indexOf(o)<0?[...c,o]:c),n);const s=new I;return s.addDispose(()=>{this.injectFactory(i,(a,c=[])=>o===void 0?c:c.filter(_=>_!==o))}),s}getServices(t){const r=M(t);return[...this.getInstance(r,!1)||[],...this._parent?.getServices(t)||[]]}createChild(){return new oe(this)}getOrCreateIsolatedContainer(t){return this.getOrCreateInstance(t,()=>{const r=this._parent?.getOrCreateIsolatedContainer(t);return new oe(r)})}remove(t){const r=this._injections;delete r[String(t)]}injectListenerCount(){return this._injectCallbacks.length}dispose(){for(const t of Array.from(y))t.container===this&&V(t);this._injections=Object.create(null),this._injectCallbacks=[],super.dispose()}};function $(e){return e.startsWith("__")?e:`__${e}__`}function _t(e){if(typeof globalThis>"u")throw new Error("[di] globalThis is required for namespace container access.");const t=$(e),r=globalThis;return r[t]??={}}function lt(e){return e!=null&&typeof e=="object"&&typeof e.inject=="function"&&typeof e.getInstance=="function"}function dt(e){if(e)return $(e);const t="useblocks".trim();if(!t)throw new Error("[di] REACT_APP_NAME is required for resolveContainer().");return $(t)}function ae(e){const t=dt(e),r=_t(t);if(lt(r.container))return r.container;const n=new se(null);return r.container=n,n}function ft(e){return ae(e)}function Et(){let e=new Date().getTime(),t=typeof performance<"u"&&performance.now&&performance.now()*1e3||0;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(r){let n=Math.random()*16;return e>0?(n=(e+n)%16|0,e=Math.floor(e/16)):(n=(t+n)%16|0,t=Math.floor(t/16)),(r==="x"?n:n&3|8).toString(16)})}function ce(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Et()}function f(e=ce()){return e}function ue(){return"umd".trim()||"unknown"}function pt(e){if(typeof globalThis>"u")return;const t=ue(),r=globalThis[e]??{};globalThis[e]=r;const n=r.__diagnostics??={},i=n.diModuleEval??={evalCount:0,records:[]};i.records.push({buildSource:t,timestamp:Date.now(),stack:new Error().stack}),i.evalCount+=1}function ht(){const e="useblocks".trim();if(!e)throw new Error("[di] REACT_APP_NAME is required for DependencyResolver diagnostics.");return`__${e}__`}function Ot(e,t){if(pt(t),typeof globalThis>"u")return e;const r=ue(),n=globalThis,i=n[t]=n[t]||{},o=i.__diagnostics=i.__diagnostics||{},s=o.dependencyResolver=o.dependencyResolver||{entries:[]},a={container:e,source:"packages/runtime-core/di/index.ts",buildSource:r,timestamp:Date.now(),stack:new Error().stack};return s.entries.push(a),e}var j;function At(){if(j)return j;const e=ht();return j=Ot(ae(e),e),j}var W=new Proxy({},{get(e,t,r){const n=At(),i=Reflect.get(n,t,r);return typeof i=="function"?i.bind(n):i}});function gt(e,t="BackendError"){switch(e){case 400:return"ValidationError";case 401:return"AuthenticationFailed";case 403:return"AuthorizationFailed";case 404:return"FileNotFound";case 413:return"PayloadTooLarge";case 415:return"UnsupportedMediaType";case 429:return"RateLimitExceeded";case 500:return"BackendError";case 503:return"ServiceUnavailable";case 504:return"Timeout";default:return t}}function S(e){if(e instanceof DOMException&&e.name==="AbortError")return e;const t=e===void 0?"The operation was aborted.":typeof e=="string"?e:e instanceof Error?e.message:String(e);return new DOMException(t,"AbortError")}function q(e){if(e?.aborted)throw S(e.reason)}function It(e,t){return t?(q(t),new Promise((r,n)=>{const i=()=>{o(),n(S(t.reason))},o=()=>{t.removeEventListener("abort",i)};t.addEventListener("abort",i),e.then(s=>{o(),r(s)},s=>{o(),n(s)})})):e}var _e=class extends I{_options;_listeners=[];constructor(e={}){super(),this._options=e}getListeners(e){return this._listeners.flatMap(([t])=>typeof t=="function"?t:t.getListeners(e))}hasListeners(){for(const[e]of this._listeners){if(typeof e=="function")return!0;const t=e;if(typeof t.hasListeners=="function"){if(t.hasListeners())return!0;continue}return!0}return!1}_addListener(e,t=0,r){if(this.isDisposed())return{dispose:()=>{}};const n=this._listeners,i=this._options;r&&typeof e=="function"&&(e=e.bind(r));const o=n.findIndex(([,a])=>a<t),s=[e,t];return n.splice(o>=0?o:n.length,0,s),n.length===1&&i.onFirstListenerAdd&&i.onFirstListenerAdd(),{dispose:()=>{const a=n.indexOf(s);a>=0&&(n.splice(a,1),!n.length&&i.onLastListenerRemove&&i.onLastListenerRemove())}}}on=this._addListener.bind(this);event=this._addListener.bind(this);once=(e,t=0,r)=>{const n=this._addListener((...i)=>(n?.dispose(),r?e.call(r,...i):e(...i)),t);return n};un=e=>{const t=this._listeners.findIndex(([r])=>r===e);t>=0&&(this._listeners.splice(t,1),this._listeners.length===0&&this._options.onLastListenerRemove&&this._options.onLastListenerRemove())};dispose(){this._listeners.splice(0,this._listeners.length),this._options.onLastListenerRemove&&this._options.onLastListenerRemove(),super.dispose()}},b=class extends _e{execute(e,t){for(const r of t)try{r(...e)}catch{}}fire(...e){if(!this.isDisposed()){const t=this.execute(e,this.getListeners(e));return t===void 0?void 0:t}}},mt=class extends b{execute([e],t){for(const r of t)try{r(e)}catch{}}},Tt=class extends b{_suspendCounter=0;_wasFired=!1;execute([e],t){if(this._suspendCounter)this._wasFired=!0;else for(const r of t)try{r(e)}catch{}}suspend(){this._suspendCounter++}resume(){--this._suspendCounter===0&&this._wasFired&&(this.fire(),this._wasFired=!1)}},B=class extends b{async execute([e],t){const r=[];for(const n of t)try{r.push(await n(e))}catch{}return r}async fireSettled(e){const t={results:[],errors:[]};if(this.isDisposed())return t;for(const r of this.getListeners([e]))try{t.results.push(await r(e))}catch(n){t.errors.push(n)}return t}};function St(e,t=0){const r=new _e,n=e(r,t);return n&&r.addDisposable(n),r.event}function bt(e,t,r=0){const n=new b,i=e((...o)=>{if(t(...o))return n.fire(...o)},r);return i&&n.addDisposable(i),n.event}function Dt(e,t=0,r=0){const n=new b;let i,o;const s=e((...a)=>{o=a,i||(i=setTimeout(()=>{o&&n.fire(...o),i=void 0},t))},r);return s&&n.addDisposable(s),n.event}function Nt(e,t){return e.getOrCreateInstance(t,()=>new B)}function d(e){return f(e)}var K;(function(e){e.BEFORE_SAVE_EMAIL=d("events.BEFORE_SAVE_EMAIL"),e.ON_SAVEBUTTON_CLICK_ID=d("events.ON_SAVEBUTTON_CLICK_ID"),e.ON_NEXTBUTTON_CLICK_ID=d("events.ON_NEXTBUTTON_CLICK_ID"),e.ON_PREVIOUSBUTTON_CLICK_ID=d("events.ON_PREVIOUSBUTTON_CLICK_ID"),e.ON_DOCUMENT_SESSION_CHANGE=d("events.ON_DOCUMENT_SESSION_CHANGE"),e.WILL_EMAIL_INIT_ID=d("events.WILL_EMAIL_INIT_ID"),e.ON_EMAIL_INIT_ID=d("events.ON_EMAIL_INIT_ID"),e.ON_BLOCK_INIT_ID=d("events.ON_BLOCK_INIT_ID"),e.ON_CONTENT_CHANGED_ID=d("events.ON_CONTENT_CHANGED_ID"),e.ON_PREHEADER_CHANGED_ID=d("events.ON_PREHEADER_CHANGED_ID"),e.ON_SUBJECT_CHANGED_ID=d("events.ON_SUBJECT_CHANGED_ID"),e.ON_EMAIL_CHANGED_ID=d("events.ON_EMAIL_CHANGED_ID"),e.ON_HEADER_APPLIED_ID=d("events.ON_HEADER_APPLIED_ID"),e.ON_BLOCK_CHANGED_ID=d("events.ON_BLOCK_CHANGED_ID"),e.ON_CHUNKS_LOADED=d("events.ON_CHUNKS_LOADED"),e.ON_SEND_TESTEMAIL_ID=d("events.ON_SEND_TESTEMAIL_ID"),e.ON_SEND_LIVEPREVIEW_ID=d("events.ON_SEND_LIVEPREVIEW_ID"),e.ON_SHARE_ID=d("events.ON_SHARE_ID"),e.ON_SHOW_PREVIEW_ID=d("events.ON_SHOW_PREVIEW_ID"),e.ON_EMAIL_CLONE_ID=d("events.ON_EMAIL_CLONE_ID"),e.ON_SEND_EMAIL_MODAL_ID=d("events.ON_SEND_EMAIL_MODAL_ID"),e.ON_NOTIFICATION=d("events.ON_NOTIFICATION"),e.READ_LOCALE=d("events.READ_LOCALE"),e.ON_TRANSLATE_ID=d("events.ON_TRANSLATE_ID"),e.ON_CODE_VALIDATE_ID=d("events.ON_CODE_VALIDATE_ID"),e.UPLOAD_EVENT_ID=d("events.UPLOAD_EVENT_ID"),e.PROXY_URL_EVENT_ID=d("events.PROXY_URL_EVENT_ID"),e.FILE_PROXY_EVENT_ID=d("events.FILE_PROXY_EVENT_ID"),e.ON_LIMIT_ID=d("events.ON_LIMIT_ID"),e.ON_BROWSER_EXTENSION_DETECTED_ID=d("events.ON_BROWSER_EXTENSION_DETECTED_ID"),e.ON_LAYOUT_CONVERT_REQUEST_ID=d("events.ON_LAYOUT_CONVERT_REQUEST_ID"),e.ON_BROWSER_TRANSLATE_DETECTED_ID=d("events.ON_BROWSER_TRANSLATE_DETECTED_ID"),e.AI_TEXT_REQUEST_ID=d("events.AI_TEXT_REQUEST_ID"),e.AI_IMAGE_REQUEST_ID=d("events.AI_IMAGE_REQUEST_ID"),e.AI_TEXT_PROGRESS_ID=d("events.AI_TEXT_PROGRESS_ID"),e.AI_IMAGE_PROGRESS_ID=d("events.AI_IMAGE_PROGRESS_ID"),e.AI_TEXT_STREAM_ID=d("events.AI_TEXT_STREAM_ID")})(K||(K={}));function Pt(e,t){return e.getOrCreateInstance(t,()=>new B).event}function yt(e,t){return e.getOrCreateInstance(t,()=>new B)}var Ct=f("plugin.app"),Lt=f("plugin.disposable"),Rt=f("InitPipelineContext"),vt=f("plugin.instance"),le=f("plugin.optionsSource"),wt=f("plugin.store"),de=f("ConfigSource"),Mt=f("plugin.standalone.project"),fe=f("plugin.standalone.bootstrapToken"),Dn=f("plugin.element"),Ee=f("plugin.securityModule"),jt=f("plugin.standalone.activated"),Bt=f("plugin.standalone.fileProxyRegistered"),z=f("plugin.jwt.token"),C=f("plugin.jwt.error"),xt=f("PluginCollection"),Ft=d("APP_LOAD_EVENT"),kt=d("CONFIG_CHANGED_EVENT"),Ut=(function(e){return e.Json="application/json",e.FormData="multipart/form-data",e.UrlEncoded="application/x-www-form-urlencoded",e.Text="text/plain",e})({}),Gt=class{baseUrl="https://api.emailmaker.ru/wp-json";securityData=null;securityWorker;abortControllers=new Map;customFetch=(...e)=>fetch(...e);baseApiParams={credentials:"same-origin",headers:{},redirect:"follow",referrerPolicy:"no-referrer"};constructor(e={}){Object.assign(this,e)}setSecurityData=e=>{this.securityData=e};encodeQueryParam(e,t){return`${encodeURIComponent(e)}=${encodeURIComponent(typeof t=="number"?t:`${t}`)}`}addQueryParam(e,t){return this.encodeQueryParam(t,e[t])}addArrayQueryParam(e,t){return e[t].map(r=>this.encodeQueryParam(t,r)).join("&")}toQueryString(e){const t=e||{};return Object.keys(t).filter(r=>typeof t[r]<"u").map(r=>Array.isArray(t[r])?this.addArrayQueryParam(t,r):this.addQueryParam(t,r)).join("&")}addQueryParams(e){const t=this.toQueryString(e);return t?`?${t}`:""}contentFormatters={"application/json":e=>e!==null&&(typeof e=="object"||typeof e=="string")?JSON.stringify(e):e,"text/plain":e=>e!==null&&typeof e!="string"?JSON.stringify(e):e,"multipart/form-data":e=>Object.keys(e||{}).reduce((t,r)=>{const n=e[r];return t.append(r,n instanceof Blob?n:typeof n=="object"&&n!==null?JSON.stringify(n):`${n}`),t},new FormData),"application/x-www-form-urlencoded":e=>this.toQueryString(e)};mergeRequestParams(e,t){return{...this.baseApiParams,...e,...t||{},headers:{...this.baseApiParams.headers||{},...e.headers||{},...t&&t.headers||{}}}}createAbortSignal=e=>{if(this.abortControllers.has(e)){const r=this.abortControllers.get(e);return r?r.signal:void 0}const t=new AbortController;return this.abortControllers.set(e,t),t.signal};abortRequest=e=>{const t=this.abortControllers.get(e);t&&(t.abort(),this.abortControllers.delete(e))};async request({body:e,secure:t,path:r,type:n,query:i,format:o,baseUrl:s,cancelToken:a,extraQuery:c,proxyHandler:_,...l}){const E=(typeof t=="boolean"?t:this.baseApiParams.secure)&&this.securityWorker&&await this.securityWorker(this.securityData)||{},h=this.mergeRequestParams(l,E);c&&(i=i?{...i,...c}:c);const p=i&&this.toQueryString(i),g=this.contentFormatters[n||"application/json"],O=o||h.format,G=`${s||this.baseUrl||""}${r}${p?`?${p}`:""}`,mn=_?_(G,{body:e,secure:t,path:r,type:n,query:i,format:o,baseUrl:s,cancelToken:a,extraQuery:c,proxyHandler:_,...l}):G,st=new Request(mn,{...h,headers:{...h.headers||{},...n&&n!=="multipart/form-data"?{"Content-Type":n}:{}},signal:(a?this.createAbortSignal(a):h.signal)||null,body:typeof e>"u"||e===null?null:g(e)});return this.customFetch(st).then(async at=>{const m=at;m.data=null,m.error=null,m.meta={request:st,response:m};const Tn=O?await at[O]().then(X=>(m.ok?m.data=X:m.error={data:X},m)).catch(X=>(m.error=X,m)):m;return a&&this.abortControllers.delete(a),Tn})}},Xt=f("prewarm.networkActivity");function Ht(){let e=0;const t=new Set,r=()=>{t.forEach(n=>n())};return{begin(){e+=1,r();let n=!1;return()=>{n||(n=!0,e-=1,r())}},inFlight:()=>e,watch(n){return t.add(n),()=>t.delete(n)}}}function Vt(e){return e.getOrCreateInstance(Xt,()=>Ht())}var pe=Symbol("rest.publicRequest"),x=f("rest.requestHandler"),$t=f("rest.responseHandler"),J=f("rest.customFetch"),Y=f("rest_transport"),Wt=e=>{e.inject(J,{execute:async(t,r={})=>{const n=e.getServices(x),i={public:r[pe]===!0},o=Vt(e).begin();try{let s=t instanceof Request?t:new Request(t,r);for(const _ of n){const l=await _.execute(s,i);l instanceof Request&&(s=l)}let a=await fetch(s);const c=e.getServices($t);for(const _ of c)a=await _.execute(a);return a}finally{o()}}})};function qt(e,t){const r=e.getInstance(Y);if(!r)throw new Error("[restApi] транспорт не зарегистрирован в контейнере");return Object.assign({},...t.map(n=>new n(r)))}function Kt(e,t=window){return{peer:e,send(r){e.postMessage(r,"*")},subscribe(r){const n=i=>{r({data:i.data,source:i.source,ports:i.ports})};return t.addEventListener("message",n),{dispose:()=>t.removeEventListener("message",n)}},close(){}}}function zt(e){let t=!1;return{peer:e,send(r){e.postMessage(r)},subscribe(r){const n=i=>{r({data:i.data,source:e})};return e.addEventListener("message",n),t||(t=!0,e.start()),{dispose:()=>e.removeEventListener("message",n)}},close(){e.close()}}}function Jt(e){return e}function Yt(e){return e&&typeof e=="object"}function he(e,t){return e&&typeof e=="object"&&e.operationId===t}var T="INIT_MESSAGE",Oe="em:port-ready",Qt="em:window-drained",Q="";function Ae(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}var Zt=class extends I{_listeners=Object.create(null);addListenerAsync=(e,t,r=0,n)=>{const i=this._listeners[e]||(this._listeners[e]=[]);n&&typeof t=="function"&&(t=t.bind(n));const o=i.findIndex(([a,c])=>r<=c),s=[t,r];return this.isDisposed()||i.splice(o>=0?o:i.length,0,s),{dispose(){const a=i.indexOf(s);a>=0&&i.splice(a,1)}}};fireAsync=(e,t)=>{if(!this.isDisposed()){const r=this._listeners[e]||(this._listeners[e]=[]);let n;for(let i=0;i<r.length;i++){const o=r[i][0],s=n;n=a=>o(a,s)}if(n)return n(t)}};addListener=(e,t,r=0)=>this.addListenerAsync(e,(n,i)=>{try{t(n)}catch{}return i&&i(n)},r)},er=class extends I{_singleton;_target;_transport;_transportSubscription;_ports=new Map;_drained=new WeakSet;_inited=!1;_emitter=this.addDisposable(new Zt);_handshaken=new WeakSet;_greeted=new WeakSet;_outgoingFilter;constructor(e,t){super(),this._singleton=t,this._transport=Kt({postMessage:()=>{}},window),this._transportSubscription=this.addDisposable(this._transport.subscribe(this._onTransportMessage)),this.addListener(T,()=>{this._inited||(this._inited=!0,this._target&&this._handshaken.add(this._target),this.send(T))}),e&&this.setTarget(e)}_onTransportMessage=e=>{const t=e,r=t.data,n=t.source,i=r?.port===!0?t.ports?.[0]:void 0,o=!this._isPortSource(t.source);if(o&&n&&r?.operationId==="em:window-drained"){this._drained.add(n);return}if(!(o&&n&&this._drained.has(n))){if(n&&n!==this._target&&this._greeted.has(n)&&he(r,T)){this._greeted.delete(n),this._handshaken.add(n),this._postMessage(n,{operationId:T,data:{}}),i&&this.usePort(i,!0,n);return}if(Yt(r)&&(t.source===this.target||this._isCurrentPort(t.source))||this._singleton&&he(r,T)){if(i){const _=this._target;Promise.resolve().then(()=>this.usePort(i,!0,_))}const s=this._emitter.fireAsync(r.operationId||Q,r.operationId===void 0?t:r.data),a=r.result,c=r.error;a&&c&&Promise.resolve(s).then(_=>this._sendMessage(a,_),_=>this._sendMessage(c,_))}}};setTarget(e){if(this._target!==e){if(this._target=e,!e){this._inited=!1;return}if(this._handshaken.has(e)){this._inited=!0,this._emitter.fireAsync(T,void 0);return}this._inited=!1,this._postMessage(e,{operationId:T,data:{}})}}sendPort(e,t){this._postMessage(e,{operationId:T,data:{},port:!0},[t])}setOutgoingFilter(e){return this._outgoingFilter=e,()=>{this._outgoingFilter===e&&(this._outgoingFilter=void 0)}}greet(e){this._handshaken.has(e)||this._greeted.has(e)||this._target===e||(this._greeted.add(e),this._postMessage(e,{operationId:T,data:{}}))}forget(e){this._handshaken.delete(e),this._greeted.delete(e),this._closePort(e),this._drained.delete(e),this._target===e&&(this._inited=!1)}usePort(e,t=!1,r=this._target){if(!r||this._ports.has(r))return;const n=zt(e),i=n.subscribe(this._onTransportMessage);this._ports.set(r,{transport:n,subscription:i}),t&&(n.send({operationId:Oe,data:{}}),this.drainWindow(r))}useWindow(e=this._target){e&&(this._closePort(e),this._drained.delete(e))}get usesPort(){return this._target!==void 0&&this._ports.has(this._target)}hasPort(e){return this._ports.has(e)}_closePort(e){const t=this._ports.get(e);t&&(t.subscription.dispose(),t.transport.close(),this._ports.delete(e))}drainWindow(e){this._ports.has(e)&&e.postMessage({operationId:Qt,data:{}},"*")}isWindowDrained(e){return this._drained.has(e)}_isPortSource(e){for(const t of this._ports.values())if(t.transport.peer===e)return!0;return!1}_isCurrentPort(e){return this._target!==void 0&&this._ports.get(this._target)?.transport.peer===e}getTarget(){return this._target}get target(){return this._target}_postMessage(e,t,r){let n=t;this._outgoingFilter&&!r?.length&&(n="data"in t?{...t,data:this._outgoingFilter(t.data)}:this._outgoingFilter(t));try{const i=this._ports.get(e);if(i){i.transport.send(n);return}if(r?.length){e.postMessage(n,"*",r);return}e.postMessage(n,"*")}catch(i){if(i?.name==="DataCloneError"){const o=typeof n?.data=="object"&&n?.data!==null?n.data:void 0}throw i}}_sendMessage(e,t,r=!0){if(!r&&!this.isInited())return;const n=this.addDisposable(this.onInit(i=>{const o=e?{operationId:e,data:t}:t;try{this._postMessage(i,{...o})}finally{n.dispose()}}))}send(e,t,r){return typeof e=="string"?this._sendMessage(e,t,r):this._sendMessage(Q,e,t)}sendAsync(e,t,r=!0){if(!r&&!this.isInited())return Promise.resolve();const n=Ae(),i=Ae();return new Promise((o,s)=>{const a=this.addDisposable(new I);a.addDisposable(this.onInit(c=>{try{this._postMessage(c,{operationId:e,data:t,result:n,error:i})}catch(_){a.dispose(),s(_);return}a.addDisposable(this._onMessage(n,_=>{o(_),a.dispose()})),a.addDisposable(this._onMessage(i,_=>{s(_),a.dispose()}))}))})}_onMessage(e,t,r=0){return this._emitter.addListener(e,t,r)}addListener(e,t,r){return t?this._onMessage(e,t,r):this._onMessage(Q,e)}addListenerAsyncPipe(e,t,r=0){return this._emitter.addListenerAsync(e,t,r)}addListenerAsync(e,t,r=0){return this._emitter.addListenerAsync(e,async(n,i)=>{const o=await t(n);return i?i(n):o},r)}isInited(){return this._inited}get inited(){return this._inited}onInit(e,t=!0,r=0){const n=this.addDisposable(new I);return this._inited&&this._target?t&&Promise.resolve().then(()=>{!this._inited||!this._target?n.addDisposable(this.onInit(e,t,r)):e(this._target)}):n.addDisposable(this._onMessage(T,()=>{e(this._target)},r)),n}dispose(){for(const e of Array.from(this._ports.keys()))this._closePort(e);this._transport.close(),super.dispose()}};function L(e){return f(e)}var tr=f("extensions.atomsHandlers"),rr=L("HANDLE_ATOM_INSERT"),nr=f("extensions.sandboxExtensions"),ir="SANDBOX_EXTENSION_SCRIPT_STATUS",or=f("MESSAGE_SERVICE"),sr=L("SETTINGS_PANEL_EVENT"),ar="advanced",cr=L("MODAL_SHOW_EVENT"),ur=L("MODAL_CLOSE_EVENT"),_r=L("MODAL_UPDATE_EVENT"),Nn=f("client"),Pn=f("v2_client"),yn=f("ai_client"),lr=f("app.cookieManager"),Cn=f("app.storageProvider"),Ln=f("image-blob-resolver"),dr=f("template-directives"),fr="INJECTION";function Er(e){return e.getState}function pr(e){if(!Er(e)){e.dispose();return}const t=e.getState()[fr];t&&(W.getInstance(t)?.dispose(),W.remove(t))}function ge(e){return Object.assign({},...e)}var Ie=["generic","stockImages","emFiles","cdn"];function Z(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function me(e){return!Z(e)||"match"in e||"rewrite"in e||"proxyBase"in e?!1:Object.keys(e).some(t=>Ie.includes(t))}function Te(e){return e.length===0?[]:e.length===1?e[0]:e}function Se(e){let t=!1,r=[];for(const n of e)if(n!==void 0){if(t=!0,Array.isArray(n)){r=[...n,...r];continue}r=[n,...r]}if(t)return Te(r)}function hr(e){return Z(e)&&("value"in e||"replace"in e)}function be(e,t){return t===void 0?e:Array.isArray(t)?[...t,...e]:[t,...e]}function Or(e){let t=!1,r=[],n=!1;for(const o of e)if(o!==void 0){if(hr(o)){t=!0,o.replace&&(r=[],n=!0),o.value!==void 0&&(r=be(r,o.value),n=!0);continue}r=be(r,o),n=!0}const i=n?Te(r):void 0;if(!t)return i;if(i!==void 0)return{value:i}}function Ar(e){const t=e.filter(n=>n!==void 0);if(t.length===0)return;if(!t.some(n=>me(n)))return Se(t);const r={};for(const n of Ie){const i=Or(e.map(o=>{if(o!==void 0)return me(o)?o[n]:n==="generic"?o:void 0}));i!==void 0&&(r[n]=i)}return Object.keys(r).length>0?r:void 0}function gr(e){return Se(e)}function Ir(e){if(e!==void 0){if(Array.isArray(e))return{replace:!1,hosts:e};if(Z(e)&&Array.isArray(e.value))return{replace:!!e.replace,hosts:e.value}}}function mr(e,t){const r=[...e],n=new Set(r.map(i=>i.toLowerCase()));for(const i of t){const o=i.trim().replace(/:\d+$/,"");if(!o)continue;const s=o.toLowerCase();n.has(s)||(n.add(s),r.push(o))}return r}function Tr(e){let t=[],r=!1;for(const n of e){const i=Ir(n);i&&(r=!0,i.replace&&(t=[]),t=mr(t,i.hosts))}return r?t:void 0}function Sr(e){const t=e.filter(i=>i!==void 0);if(t.length===0)return;const r=ge(t.map(({directHosts:i,...o})=>o)),n=Tr(t.map(i=>i?.directHosts));return n!==void 0&&(r.directHosts=n),r}function ee(e){return e?.backendProxy}function R(e){return e.replace(/\/$/,"")}function De(e){return/^https?:\/\//i.test(e)}function Ne(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function br(e){const t=new Set;return e.filter(r=>!r.url||t.has(r.url)?!1:(t.add(r.url),!0))}function Dr(e){const t=ee(e);return t?[t]:[]}function Nr(e){return{proxyEmFiles:!0,proxyAi:!1}}function Pr(e,t){const r=Nr(t),n=t?.backendProxyPolicy;switch(e){case"emFiles":return n?.proxyEmFiles??r.proxyEmFiles;case"ai":return n?.proxyAi??r.proxyAi;default:return!0}}var yr={url:".+",url_encoded:".+",origin:"https?:\\/\\/[^\\/?#]+",origin_encoded:".+",proxy_url:"https?:\\/\\/[^\\/?#]+",proxy_url_encoded:".+",path:"[^?#]*",pathname:"[^?#]*",path_with_slash:"\\/[^?#]*",pathname_with_slash:"\\/[^?#]*",query:"[^#]*",search:"\\?[^#]*",hash:"#.*",fragment:".*",pathname_after_wp_json:"[^?#]*",pathname_after_wp_json_with_slash:"\\/[^?#]*",rest_namespace:"[^/?#]*",rest_version:"[^/?#]*",rest_route:"[^?#]*",rest_route_with_slash:"\\/[^?#]*"};function Cr(e){const t=[],r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\\\{([a-z_]+)\\\}/gi,(n,i)=>(t.push(i),`(${yr[i]||".+"})`));return{regex:new RegExp(`^${r}$`,"i"),tokens:t}}function Lr(e){return/[?#]/.test(e)||/\{(?:url|url_encoded|query|search|hash|fragment)\}/i.test(e)}function Rr(e,t){if(Lr(t))return e;try{const r=new URL(e);return`${r.origin}${r.pathname}`}catch{return e.split(/[?#]/)[0]||e}}function vr(e,t,r){if(r.endsWith("_encoded"))return!0;const n=e.slice(0,t),i=n.lastIndexOf("#"),o=n.lastIndexOf("?"),s=n.lastIndexOf("&"),a=n.lastIndexOf("=");return a>Math.max(o,s)&&a>i}function wr(e){try{const t=new URL(e),r=t.pathname.replace(/^\/+/,""),n=t.search.replace(/^\?/,""),i=t.hash.replace(/^#/,""),o=r.replace(/^wp-json\/?/i,""),s=o?`/${o}`:"/",a=o.match(/^([^/]+)(?:\/([^/]+))?(?:\/(.*))?$/),c=a?.[1]||"",_=a?.[2]||"",l=a?.[3]||"";return{url:e,url_encoded:encodeURIComponent(e),origin:t.origin,origin_encoded:encodeURIComponent(t.origin),proxy_url:t.origin,proxy_url_encoded:encodeURIComponent(t.origin),path:r,pathname:r,path_with_slash:t.pathname||"/",pathname_with_slash:t.pathname||"/",query:n,search:t.search,hash:t.hash,fragment:i,pathname_after_wp_json:o,pathname_after_wp_json_with_slash:s,rest_namespace:c,rest_version:_,rest_route:l,rest_route_with_slash:l?`/${l}`:"/"}}catch{return}}function te(e,t){if(!e)return{};if(Array.isArray(e)){for(const a of e){const c=te(a,t);if(c!==void 0)return c}return}if(e==="*")return{};const r=Rr(t,e),{regex:n,tokens:i}=Cr(e),o=n.exec(r);if(!o)return;const s={};return i.forEach((a,c)=>{s[`matched_${a}`]=o[c+1]||""}),s}function F(e,t,r={}){const n=wr(t);if(!n)return t;const i={...n,...r};let o="",s=0;const a=/\{([a-z_]+)\}/gi;let c;for(;c=a.exec(e);){o+=e.slice(s,c.index);const _=i[c[1]]??"",l=vr(e,c.index,c[1])?encodeURIComponent(_):_;o+=l,s=c.index+c[0].length}o+=e.slice(s);try{const _=new URL(o),l=new URL(t);return!o.includes("{search}")&&!o.includes("{query}")&&l.search&&l.searchParams.forEach((E,h)=>{_.searchParams.has(h)||_.searchParams.append(h,E)}),!o.includes("{hash}")&&!o.includes("{fragment}")&&l.hash&&!_.hash&&(_.hash=l.hash),_.toString()}catch{return o}}function Pe(e,t){try{const r=new URL(t);return`${R(e)}/${r.pathname.replace(/^\//,"")}${r.search}${r.hash}`}catch{return t}}function ye(e,t){const r=R(e);return t?De(t)?t:t.startsWith("?")||t.startsWith("#")?`${r}${t}`:`${r}${t.startsWith("/")?"":"/"}${t}`:r}function Ce(e,t,r,n){const i=e.match;return i?Array.isArray(i)?i.some(o=>Ce({...e,match:o},t,r,n)):typeof i=="function"?!!i({url:t,method:n,requestType:r}):i==="*"?!0:te(i,t)!==void 0:!0}function Mr(e,t,r,n="generic"){if(e==null)return[];const i=Array.isArray(e)?e:[e],o=[];return i.forEach((s,a)=>{if(!s)return;if(typeof s=="string"){const E=s.includes("{")&&s.includes("}")?F(s,t):Pe(s,t);o.push({key:`backend:${a}`,url:E,source:"resource"});return}if(!Ne(s)||!("rewrite"in s))return;const c=s;if(!Ce(c,t,n,r))return;const _=typeof c.match=="string"||Array.isArray(c.match)?te(c.match,t)||{}:{},l=typeof c.proxyBase=="string"&&c.proxyBase.trim()?c.proxyBase.trim():void 0;(Array.isArray(c.rewrite)?c.rewrite:[c.rewrite]).filter(Boolean).forEach((E,h)=>{const p=typeof E=="function"?(()=>{const g=E({url:t,proxyBase:l,method:r,requestType:n,..._}),O=l&&!De(g)?ye(l,g):g;return O.includes("{")&&O.includes("}")?F(O,t,_):O})():l?F(ye(l,E),t,_):E.includes("{")&&E.includes("}")?F(E,t,_):Pe(E,t);o.push({key:`backend:${c.id||"rule"}:${a}:${h}`,url:p,source:"resource"})})}),br(o)}function jr(e){try{const t=new URL(e);return/(?:^|\/)wp-json\/em-files\/v\d+(?:\/|$)/i.test(t.pathname)?"emFiles":/(?:^|\/)wp-json\/ai-generator\/v\d+(?:\/|$)/i.test(t.pathname)?"ai":"generic"}catch{return"generic"}}function Br(e,t=[]){return e==null||(Array.isArray(e)?e:[e]).forEach(r=>{if(r){if(typeof r=="string"){const n=r.split("{")[0]?.trim();n&&t.push(R(n));return}!Ne(r)||!("rewrite"in r)||(typeof r.proxyBase=="string"&&r.proxyBase.trim()&&t.push(R(r.proxyBase.trim())),(Array.isArray(r.rewrite)?r.rewrite:[r.rewrite]).forEach(n=>{if(typeof n!="string")return;const i=n.split("{")[0]?.trim();i&&t.push(R(i))}))}}),t}function xr(e,t){return Dr(t).flatMap(r=>Br(r)).filter(Boolean).some(r=>r&&e.startsWith(r))}function Fr(e,t){return!!ee(t)&&Pr(e,t)}function kr(e,t={}){const r=t.requestType||jr(e);return Fr(r,t.config)?Mr(ee(t.config),e,t.method,r):[]}function Ur(e,t={}){return xr(e,t.config)?[e]:kr(e,t).map(r=>r.url)}function D(e){for(;e.endsWith("/");)e=e.slice(0,e.length-1);return/\/wp-json$/i.test(e)?e:`${e}/wp-json`}function Le(...e){const t=e.filter(o=>o!=null);if(t.length===0)return;if(t.length===1)return t[0];const r=t.find(o=>o.aborted);if(r)return r;if(typeof AbortSignal<"u"&&typeof AbortSignal.any=="function")return AbortSignal.any(t);const n=new AbortController,i=o=>{n.signal.aborted||n.abort(o.reason)};for(const o of t)o.addEventListener("abort",()=>i(o),{once:!0});return n.signal}var Re=3e5,ve=15e3,A=null,we=!1;function Gr(){return!0}function Xr(){const e=String({}.REACT_APP_OPENAPI_FAILOVER_TTL_MS||"").trim();if(!e)return Re;const t=Number(e);return Number.isFinite(t)&&t>0?t:Re}function Hr(){const e=String({}.REACT_APP_OPENAPI_FAILOVER_ATTEMPT_TIMEOUT_MS||"").trim();if(!e)return ve;const t=Number(e);return Number.isFinite(t)&&t>0?t:ve}function Vr(){const e="https://app.useblocks.io/api".trim();return e?D(e):void 0}function $r(e){const t=e.trim();if(!t)return[];if(t.startsWith("["))try{const r=JSON.parse(t);if(!Array.isArray(r))throw new Error("expected JSON array");return r.map(n=>String(n).trim()).filter(Boolean)}catch{return we||(we=!0),[]}return t.split(",").map(r=>r.trim()).filter(Boolean)}function Wr(e){const t=new Set,r=[];for(const n of e){const i=D(n);t.has(i)||(t.add(i),r.push(i))}return r}function Me(e){const t=String(e||"").trim();return t?D(t):Vr()}function je(e,t=[]){return e?Wr([e,...t]).slice(0,3):[]}function Be(){return $r(String({}.REACT_APP_OPENAPI_FAILOVER_BASE_URLS||"").trim())}function qr(e=Date.now()){return A?e-A.switchedAt>=Xr():!0}function xe(e=Date.now()){A&&qr(e)&&(A=null)}function N(e){if(!Gr())return!1;const t=Me(e);if(!t)return!1;const r=Be();return r.length===0?!1:je(t,r).length>1}function v(e){const t=Me(e);if(!t)return[];const r=Be();return r.length===0?[t]:je(t,r)}function k(e){const t=v(e);if(t.length===0)return"";if(xe(),A){const r=t.indexOf(A.activeUrl);if(r>=0)return t[r]}return t[0]}function Fe(e){const t=v(e);if(t.length<=1||(xe(),!A||!t.includes(A.activeUrl)))return t;const r=A.activeUrl;return[r,...t.filter(n=>n!==r)]}function ke(e){return k(e)||void 0}function Ue(e){const t=e||void 0;if(typeof AbortController>"u")return{signal:t,timeoutError:()=>{},done:()=>{}};const r=Hr(),n=new AbortController;let i;const o=setTimeout(()=>{i=Kr(r),n.abort(i)},r);return{signal:Le(t,n.signal),timeoutError:()=>i,done:()=>clearTimeout(o)}}function Kr(e){const t=`[apiOriginFailover] origin attempt timed out after ${e}ms`;if(typeof DOMException=="function")return new DOMException(t,"TimeoutError");const r=new Error(t);return r.name="TimeoutError",r}function Ge(e){return e===502||e===503||e===504}function Xe(e){return!(e instanceof Error)&&!(e instanceof DOMException)?!1:e.name==="TimeoutError"?!0:e instanceof TypeError}var He;function zr(e){He=e}function U(e,t){if(!N(t))return;const r=v(t);if(r.length<=1)return;const n=r.indexOf(D(e));if(n<0)return;const i=n+1;if(i>=r.length)return;const o=r[i],s=A?.activeUrl;A={activeUrl:o,switchedAt:Date.now()},s!==o&&He?.()}function Ve(e,t){if(!N(t))return;const r=D(e),n=v(t);if(n.includes(r)){if(r===n[0]){A=null;return}A?.activeUrl!==r&&(A={activeUrl:r,switchedAt:Date.now()})}}function $e(){A=null}var Jr=e=>{const t=new FormData,r=(n,i,o)=>{if(i!=null){if(i instanceof Blob){n.append(o,i);return}if(Array.isArray(i)){i.forEach((s,a)=>{const c=o?`${o}[${a}]`:`${a}`;r(n,s,c)});return}if(typeof i=="object"){Object.keys(i).forEach(s=>{const a=i[s],c=o?`${o}[${s}]`:s;r(n,a,c)});return}n.append(o,String(i))}};return r(t,e),t},Yr={baseUrl:D("https://app.useblocks.io/api"),baseApiParams:{secure:!0,credentials:"same-origin",format:"json"},securityWorker:()=>({credentials:"same-origin"})},P=new Map;function Qr(e){const t=e?.getInstance(de);return t?t.get()??t.bootstrap():void 0}var Zr=class extends Gt{container;constructor(e={},t){super(e),this.container=t}buildRequestUrl(e){const{path:t,baseUrl:r,extraQuery:n}=e;let{query:i}=e;n&&(i=i?{...i,...n}:n);const o=i&&this.toQueryString(i);return`${r||this.baseUrl||""}${t}${o?`?${o}`:""}`}buildRequestKey(e,t){return`${t.toUpperCase()} ${e}`}getBackendProxyCandidates(e,t){const r=Qr(this.container),n=this.container?.getInstance(Ee)!==void 0,i=Ur(e,{config:r,method:t,standalone:n}),o=i.length>0?i:[e],s=this.buildRequestKey(e,t),a=P.get(s);return!a||!o.includes(a)?o:[a,...o.filter(c=>c!==a)]}shouldRetryResponse(e){return e.status===502||e.status===503||e.status===504}resolveFailoverBaseUrl(){return String(this.baseUrl||"").trim()||void 0}async requestOnOrigin(e,t,r=!1){const n={...e,baseUrl:t},i=this.buildRequestUrl(n),o=n.method||"GET",s=this.buildRequestKey(i,o),a=this.getBackendProxyCandidates(i,o);let c,_;for(const l of a){const E=p=>p===i?l:p,h=r?Ue(e.signal):void 0;try{const p=await super.request({...n,proxyHandler:E,...h?{signal:h.signal}:{}});if(!p.ok&&this.shouldRetryResponse(p)&&l!==a[a.length-1]){_=p,P.get(s)===l&&P.delete(s);continue}return P.set(s,l),p}catch(p){P.get(s)===l&&P.delete(s);const g=h?.timeoutError();if(g)throw g;if(c=p,(p instanceof DOMException||p instanceof Error)&&p.name==="AbortError")throw p}finally{h?.done()}}if(_)return _;throw c instanceof Error?c:new Error("Backend proxy chain failed")}async request(e){const t=String(e.baseUrl||"").trim();if(t)return this.requestOnOrigin(e,t);const r=this.resolveFailoverBaseUrl(),n=N(r),i=e.failoverAttemptTimeout??n,o=n?Fe(r):r?[k(r)]:[this.baseUrl].filter(Boolean);if(o.length===0)return this.requestOnOrigin(e,this.baseUrl);let s,a;for(let c=0;c<o.length;c++){const _=o[c],l=c===o.length-1;try{const E=await this.requestOnOrigin(e,_,i);if(!E.ok&&Ge(E.status)){if(a=E,!l){U(_,r);continue}break}return E.ok&&Ve(_,r),E}catch(E){if(!Xe(E))throw E;s=E,l||U(_,r)}}if(n&&$e(),a)return a;throw s instanceof Error?s:new Error("API origin failover chain failed")}};function We(e={},t){const r=new Zr({...Yr,...e},t);return r.contentFormatters["multipart/form-data"]=Jr,r}var qe=f("rest.clientFactory"),en=e=>{Wt(e);const t=We({customFetch:e.getInstance(J)?.execute||fetch},e);e.inject(Y,t)},Ke;(function(e){const t="https://racs.rest/v3";function r(i,o){const s={method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(o)};return fetch(`${t}?resource=${i}&dataset=${document.location.hostname}`,s)}e.post=r;async function n(i,o=0){const s={method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:`{"filter":{},"limit":${o}}`};return await(await fetch(`${t}/get?resource=${i}&dataset=${document.location.hostname}`,s)).json()}e.getAll=n})(Ke||(Ke={}));function w(e,t){if(e!==t){if(!e||!t||typeof e!="object"||typeof t!="object")return!1;const r=Array.isArray(e),n=Array.isArray(t);if(r){if(!n)return!1;const a=e.length;if(t.length!==a)return!1;for(let c=0;c<a;c++)if(!w(e[c],t[c]))return!1}else if(n)return!1;const i=Object.keys(e),o=Object.keys(t),s=i.length;if(s!==o.length)return!1;for(let a=0;a<s;a++){const c=i[a];if(!t.hasOwnProperty(c)||!w(e[c],t[c]))return!1}}return!0}function tn(e){const t=e.replace(/-/g,"+").replace(/_/g,"/").padEnd(e.length+(4-e.length%4)%4,"="),r=atob(t),n=new Uint8Array(r.length);for(let i=0;i<r.length;i++)n[i]=r.charCodeAt(i);return new TextDecoder().decode(n)}function ze(e){const[t,r,n]=e.split("."),i=JSON.parse(tn(r));return{exp:i.exp,createdAt:i.iat,data:i}}var re=f("plugin.auth.token"),Je=new WeakMap,rn=3e4;function nn(e){let t;try{t=ze(e).exp}catch{return!0}return typeof t!="number"||!Number.isFinite(t)?!0:t*1e3<=Date.now()+rn}function on(e,t,r,n){const i=Je.get(e);i&&(i.stale=!0);const o={stale:!1};Je.set(e,o),e.injectFactory(re,async(s,a)=>{if(o.stale)return"";try{let c=await a||void 0;if(!c){const _=e.getInstance(fe);_&&(c=await _)}return t?!c||nn(c)?await t(r,n,c):c:""}catch{return""}},!0)}var Ye=f("auth.oauthProvided"),Qe=new WeakMap;function Ze(e,t){const r=Qe.get(e)??{applied:!1};(!r.applied||r.getAuthToken!==t.getAuthToken||!w(r.user,t.user)||r.project!==t.project)&&(Qe.set(e,{applied:!0,getAuthToken:t.getAuthToken,user:t.user,project:t.project}),on(e,t.getAuthToken,t.user,t.project))}function et(e){if(e.getInstance(Ye))return;e.inject(Ye,!0);let t;e.getInstance(le)?.watch(r=>{t=r}),e.addService(x,{execute:async(r,n)=>{if(n?.public||!t?.getAuthToken)return;e.getInstance(re)===void 0&&Ze(e,t);const i=await e.getInstanceAsync(re);i&&r.headers.set("authorization",`Bearer ${i}`)}})}var sn={text:{fontFamily:["Google Fonts","Sans Serif","Mulish","Regular"],fontSize:16,fontSizeDim:"px",lineHeight:24,lineHeightDim:"px",color:"#595959",contrastColor:"#FFFFFF",textAlign:"left",paddingBottom:10,paddingBottomDim:"px"},headings:{fontFamily:["Google Fonts","Sans Serif","Mulish","Bold"],fontSize:28,fontSizeDim:"px",lineHeight:34,lineHeightDim:"px",color:"#000000",contrastColor:"#FFFFFF",textAlign:"left",paddingTop:20,paddingTopDim:"px",paddingBottom:20,paddingBottomDim:"px",letterSpacing:0,letterSpacingDim:"px",bold:!0,italic:!1},links:{color:"#1890ff",contrastColor:"#FFFFFF",underline:!0},buttons:{fontFamily:["Google Fonts","Sans Serif","Mulish","Medium"],fontSize:16,fontSizeDim:"px",letterSpacing:0,letterSpacingDim:"px",color:"#FFFFFF",contrastColor:"#1890ff",bold:!1,italic:!1,backgroundColor:"#1890ff",contrastBackgroundColor:"#FFFFFF",marginTop:10,marginTopDim:"px",marginBottom:10,marginBottomDim:"px",border:{all:null,top:null,right:null,bottom:null,left:null},borderRadius:{all:6,topLeft:null,topRight:null,bottomRight:null,bottomLeft:null},textAlign:"center",padding:{all:null,top:null,right:null,bottom:null,left:null}},block:{backgroundColor:"#FFFFFF",contrastBackgroundColor:"#1890ff",padding:{all:null,top:null,right:null,bottom:null,left:null}},cards:{contrastBackgroundColor:"#1890ff",contrastTextColor:"#ffffff",baseBackgroundColor:"#f8f8f8",baseTextColor:"#333333",border:{all:null,top:null,right:null,bottom:null,left:null},borderRadius:{all:10,topLeft:null,topRight:null,bottomRight:null,bottomLeft:null}}},tt="ERROR",an="useblocks",cn={em_color_scheme:"em_color_scheme",em_code_mode_pane_sizes:"em_code_mode_pane_sizes",em_preview_pane_sizes:"em_preview_pane_sizes",em_default_sizes:"em_default_sizes",em_pane_sizes:"em_pane_sizes",em_test_emails:"em_test_emails",em_menu_is_locked:"em_menu_is_locked",em_code_mode_settings:"em_code_mode_settings",em_folder_is_open:"em_folder_is_open",em_active_tab:"em_active_tab",em_ai_settings:"em_ai_settings",em_last_active_page:"em_last_active_page",em_layout_convert_never_suggest:"em_layout_convert_never_suggest",em_filemanager_v2:"em_filemanager_v2",em_projects_v2:"em_projects_v2",em_translations_v2:"em_translations_v2",em_defer_chrome:"em_defer_chrome",em_stripo_import:"em_stripo_import",em_guest_locale:"em_guest_locale"},un="light",_n="dark",ln="(prefers-color-scheme: dark)",dn={MESSAGE:"message",INIT_PREVIEW:"init_preview",UPDATE_PREVIEW:"update_preview",UPDATE_EDITOR:"update_editor",UPDATE_EDITOR_POSITION:"update_editor_position",UPDATE_SIDE_MENU_EDITOR:"update_side_menu_editor",SAVE_EMAIL:"saveEmail",SANDBOX_ELEMENT_SETTINGS_SET:"sandbox_element_settings_set",SANDBOX_IMAGE_RESET:"sandbox_image_reset",SANDBOX_NATIVE_IMAGE_DROP_CLEAR:"sandbox_native-image-drop-clear",SANDBOX_EMAIL_SETTINGS_SET:"sandbox_email_settings_set",SANDBOX_BLOCK_SETTINGS_SET:"sandbox_block_settings_set",SANDBOX_ELEMENT_PARENT_GET:"sandbox_element_parent_get",SANDBOX_ELEMENT_PARENT_TABLE_GET:"sandbox_element_parent_table_get",SANDBOX_ELEMENT_PREV_GET:"sandbox_element_prev_get",SANDBOX_ELEMENT_NEXT_GET:"sandbox_element_next_get",SANDBOX_ELEMENT_REMOVE:"sandbox_element_remove",SANDBOX_ELEMENT_ACTIVE_RESET:"sandbox_element_active_reset",SANDBOX_ELEMENT_ACTIVE_SET:"sandbox_element_active_set",SANDBOX_ELEMENT_HOVER_SET:"sandbox_element_hover_set",SANDBOX_ELEMENT_IMG_LINK:"sandbox_element_img_link",SANDBOX_ELEMENT_TEXT:"sandbox_element_text",SANDBOX_EMAIL_CONTENT_GET:"sandbox_email_content_get",SANDBOX_SET_POSITION_TO_IMG:"sandbox_set_position_to_img",SANDBOX_SET_POSITION_TO_LINK:"sandbox_set_position_to_link",SANDBOX_ACCORDION_ADD_SECTION:"sandbox_accordion_add_section",SANDBOX_ACCORDION_REMOVE_SECTION:"sandbox_accordion_remove_section",APPLICATION_FOCUS_IN_IFRAME:"application_focus_in_iframe",APPLICATION_EMAIL_SETTINGS_SET:"application_email_settings_set",APPLICATION_BLOCK_SETTINGS_SET:"application_block_settings_set",APPLICATION_ELEMENT_SETTINGS_SET:"application_element_settings_set",_APPLICATION_ELEMENT_SETTINGS_SET:"application_element_settings_set",APPLICATION_ELEMENT_SETTINGS_CLOSE:"application_element_settings_close",APPLICATION_ACTION:"application_action",APPLICATION_EBLOCK_ADD:"application_eblock_add",SANDBOX_EBLOCK_SET_EM_BLOCK_ID:"sandbox_eblock_set_em_block_id",SANDBOX_GLOBAL_BLOCK_REPLACE:"sandbox_global_block_replace",APPLICATION_SCROLL_TO:"application_scroll-to",APPLICATION_SCROLL_BLOCK_SHOW:"application_scroll-block-show",APPLICATION_SCROLL_BLOCK_HIDE:"application_scroll-block-hide",APPLICATION_DISCUSS_SET_ID:"application_discuss_set_id",APPLICATION_DISCUSS_GET_COMMENT:"application_discuss_get_comment",APPLICATION_DISCUSS_NO_COMMENT:"application_discuss_no_comment",APPLICATION_DISCUSS_SAVE_TARGET:"application_discuss_save_target",APPLICATION_IFRAME_SET_HEIGHT:"application_iframe_set_height",APPLICATION_COMMON_STYLES_UPDATE:"application_commonStyles_update",APPLICATION_EMAIL_CONTENT_GET:"application_email_content_get",APPLICATION_OPEN_IMAGE_AI_POPUP:"application_open-image-ai-popup",APPLICATION_OPEN_IMAGE_UPLOAD_POPUP:"application_open-image-upload-popup",APPLICATION_OPEN_IMAGE_EDIT_POPUP:"application_open-image-edit-popup",APPLICATION_OPEN_IMAGE_GIF_POPUP:"application_open-image-gif-popup",APPLICATION_OPEN_IMAGE_STOCK_POPUP:"application_open-image-stock-popup",APPLICATION_CLOSE_IMAGE_EDIT_POPUP:"application_close-image-edit-popup",APPLICATION_NATIVE_IMAGE_DROP:"application_native-image-drop",APPLICATION_SUBJECT_UPDATE:"application_subject_update",APPLICATION_PREHEADER_UPDATE:"application_preheader_update",APPLICATION_DOMPARSER_ERROR:"application_domparser_error",APPLICATION_UPDATE_ENTITY:"application_update_entity",APPLICATION_IFRAME_DRAG_EVENT:"application_iframe_drag_event",APPLICATION_HAS_AMP:"application_has_amp",APPLICATION_CANVAS_IMAGE_GET:"application_canvas_image_get",APPLICATION_PREVIEW_ALERT_SHOW:"application_preview_alert_show",APPLICATION_ATOM_INSERTED:"application_atom_inserted",APPLICATION_TEMPLATE_NOT_EM_ALERT_SHOW:"application_template_not_em_alert_show",SANDBOX_WINDOW_CHARACTERISTIC:"sandbox_window-characteristic",SANDBOX_IFRAME_SETSIZE:"sandbox_iframe-setsize",SANDBOX_BLOCK_INSERT:"sandbox_block-insert",SANDBOX_ATOM_INSERT:"sandbox_atom-insert",SANDBOX_DRAG_CANCEL:"sandbox_drag-cancel",UPDATE_EDITOR_POSITION_FROM_EDITOR:"update_position_from_editor",UPDATE_EDITOR_POSITION_FROM_IFRAME:"update_position_from_iframe",SANDBOX_CHANGE_PREVIEW:"sandbox_change_preview",APPLICATION_CHANGE_PREVIEW:"application_change_preview",SANDBOX_LOCK_EDIT:"sandbox_lock_edit",SANDBOX_FLOATBLOCK_ADD:"sandbox_floatBlock_add",SANDBOX_FLOATBLOCK_REMOVE:"sandbox_floatBlock_remove",SANDBOX_FLOATBLOCK_COPY:"sandbox_floatBlock_copy",SANDBOX_FLOATBLOCK_SWAP:"sandbox_floatBlock_swap",EDITOR_CHANGE_FOCUS:"editor_change_focus",SANDBOX_RESIZED:"sandbox_resized",SANDBOX_LOCK_DISCUSS:"sandbox_lock_discuss",SANDBOX_DISCUSS_SET_TARGET:"sandbox_discuss_set_target",SANDBOX_DISCUSS_REMOVE_TARGET:"sandbox_discuss_remove_target",SANDBOX_DISCUSS_RESET:"sandbox_discuss_reset",SANDBOX_DISCUSS_GET_TARGET:"sandbox_discuss_get_target",SANDBOX_READY:"SANDBOX_READY",SANDBOX_FLOATBLOCK_WRAP:"sandbox_floatblock_wrap",SANDBOX_FLOATBLOCK_DIR:"sandbox_floatblock_dir",SANDBOX_SUBJECT_UPDATE:"sandbox_subject_update",SANDBOX_PREHEADER_UPDATE:"sandbox_preheader_update",SANDBOX_DRAG_EVENT:"sandbox_drag_event",SANDBOX_WHEEL:"sandbox_wheel",SANDBOX_ADD_MERGETAG:"sandbox_add_mergetag",SANDBOX_TRANSLATIONS:"sandbox_send_translations",SANDBOX_SET_THEME_VARIABLES:"sandbox_send_theme_variables",SANDBOX_SET_PROJECT_FONTS:"sandbox_set_project_fonts",SANDBOX_CANVAS_IMAGE_CACHE_SETUP:"sandbox_canvas_image_cache_setup",SANDBOX_SET_ENTITY:"sandbox_set_entity",SANDBOX_INIT_START:"sandbox_init_start",SANDBOX_INITED:"sandbox_inited",SANDBOX_UPDATE_ENTITY:"sandbox_update_entity",RELOAD:"reload",SANDBOX_ADD_EXTENSIONS:"sandbox_add_extensions",SANDBOX_REMOVE_EXTENSIONS:"sandbox_remove_extensions",SANDBOX_ADD_SCRIPT:"sandbox_add_script",SANDBOX_IS_EMAIL_EMPTY:"sandbox_is_email_empty",SANDBOX_SWITCH_THEME:"sandbox_switch_theme"},rt=e=>{const t={current:Promise.resolve(),state:e,decorate:(r,n)=>(n&&(r=r.bind(n)),function(...i){const o=t.current.then(()=>r(...i));return t.current=o.then(s=>{t.state=s},s=>{}),o})};return t};function ne(e){return function(t){return{setOptions:()=>{},instance:{},dispose:()=>{},...e(t)||{}}}}function fn(e){return t=>{const r={},n=[];for(const s of e)n.push(s(t));for(const s of n)Object.assign(r,s.instance);return{instance:r,setOptions:async s=>{for(const a of n)await a.setOptions(s)},dispose:()=>{for(const s of n)s.dispose()}}}}function En(e=tt){const t=new Error(e);return t.name="AuthPipelineError",t}async function pn(e,t,r,n){const i=n?.attemptTimeout??N(r),o=N(r)?Fe(r):v(r).length>0?[k(r)]:[];if(o.length===0)throw new Error("[apiOriginFailover] no API base URL configured");const s=e.startsWith("/")?e:`/${e}`;let a,c;for(let _=0;_<o.length;_++){const l=o[_],E=_===o.length-1,h=i?Ue(t.signal):void 0;try{const p=await fetch(`${l}${s}`,{...t,...h?{signal:h.signal}:{}});if(!p.ok&&Ge(p.status)){if(a=p,!E){U(l,r);continue}break}return p.ok&&Ve(l,r),p}catch(p){const g=h?.timeoutError();if(!g&&!Xe(p))throw p;c=g||p,E||U(l,r)}finally{h?.done()}}if(N(r)&&$e(),a)return a;throw c instanceof Error?c:new Error("[apiOriginFailover] fetch chain failed")}function nt(e){e.inject(C,void 0),e.inject(z,void 0)}var hn=ne(e=>{let t,r;const n=rt();return e.addService(x,{execute:n.decorate(async(i,o)=>{if(o?.public||!t)return;const s=String(e.getInstance(z)||"").trim();if(s){i.headers.append("authorization",`Bearer ${s}`);return}if(!e.getInstance(C))try{const a=e.getInstance(qe),c=String(a?.getOptions()?.baseUrl||"").trim(),_=ke(r||c||void 0);if(!_)throw new Error("JWT auth requires baseUrl");const l=await pn("/jwt-auth/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)},_);if(!l.ok)throw new Error(`JWT auth failed: ${l.status}`);const E=await l.json(),h=String(E.token||"").trim();if(!h)throw new Error("JWT auth failed: empty token");e.inject(C,void 0),e.inject(z,h),i.headers.append("authorization",`Bearer ${h}`)}catch{throw e.inject(C,tt),En()}})}),{setOptions(i){const o=i.jwtAuth,s=String(i.baseUrl||"").trim()||void 0,a=!w(o,t),c=s!==r;if(t=o,r=s,!o){nt(e);return}a||c?nt(e):e.inject(C,void 0)}}}),On=ne(e=>(et(e),{setOptions(t){Ze(e,t)}}));function An(e){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/([^a-zA-Z0-9_-])/g,"\\$1")}function ie(e,t=document){try{const n=t.querySelector(e);if(n)return n}catch{return null}const r=t.querySelectorAll("*");for(let n=0;n<r.length;n++){const i=r[n]?.shadowRoot;if(!i)continue;const o=ie(e,i);if(o)return o}return null}function it(e,t=[]){const r=e.querySelectorAll("*");for(let n=0;n<r.length;n++){const i=r[n]?.shadowRoot;i&&(t.push(i),it(i,t))}return t}function gn(e,t,r){if(e.isConnected)return e;const n=e.id?.trim();return n?ot(`#${An(n)}`,t,r):Promise.reject(S("Editor mount element was disconnected and has no id — pass a CSS selector or call init() again after the host remounts the container."))}function ot(e,t,r){if(q(r),typeof e<"u"){if(typeof e=="string"){const n=e,i=ie(n);if(i)return i;const o=t.addDisposable(new I);return new Promise((s,a)=>{const c=O=>{o.dispose(),O()},_=()=>{c(()=>a(S(r?.reason)))};if(r?.aborted){_();return}r?.addEventListener("abort",_),o.addDispose(()=>r?.removeEventListener("abort",_));const l=document.body??document.documentElement;if(!l){c(()=>a(S("Document is not ready to observe mount element")));return}const E=new Set,h=new MutationObserver(()=>{const O=ie(n);if(O){c(()=>s(O));return}g()}),p=O=>{E.has(O)||(E.add(O),h.observe(O,{attributes:!0,childList:!0,subtree:!0}))},g=()=>{const O=document.documentElement;if(O)for(const G of it(O))p(G)};p(l),g(),o.addDispose(()=>h.disconnect())})}return e instanceof Element?gn(e,t,r):e}return e}var In=new Map;Object.defineProperty(u,"ADVANCED_SETTINGS_PANEL",{enumerable:!0,get:function(){return ar}}),Object.defineProperty(u,"APP_ID",{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(u,"APP_LOAD_EVENT_ID",{enumerable:!0,get:function(){return Ft}}),Object.defineProperty(u,"ATOMS_HANDLERS_ID",{enumerable:!0,get:function(){return tr}}),Object.defineProperty(u,"AsyncEmitter",{enumerable:!0,get:function(){return B}}),Object.defineProperty(u,"BaseEmitter",{enumerable:!0,get:function(){return b}}),Object.defineProperty(u,"COMMON_STYLES",{enumerable:!0,get:function(){return sn}}),Object.defineProperty(u,"CONFIG_CHANGED_EVENT_ID",{enumerable:!0,get:function(){return kt}}),Object.defineProperty(u,"CONFIG_SOURCE_ID",{enumerable:!0,get:function(){return de}}),Object.defineProperty(u,"COOKIE_MANAGER_ID",{enumerable:!0,get:function(){return lr}}),Object.defineProperty(u,"CUSTOM_FETCH_ID",{enumerable:!0,get:function(){return J}}),Object.defineProperty(u,"ContentType",{enumerable:!0,get:function(){return Ut}}),Object.defineProperty(u,"DARK",{enumerable:!0,get:function(){return _n}}),Object.defineProperty(u,"DISPOSABLE_ID",{enumerable:!0,get:function(){return Lt}}),Object.defineProperty(u,"DependencyResolver",{enumerable:!0,get:function(){return W}}),Object.defineProperty(u,"Disposable",{enumerable:!0,get:function(){return I}}),Object.defineProperty(u,"ELEMENT_MAP",{enumerable:!0,get:function(){return In}}),Object.defineProperty(u,"EVENT_TYPES",{enumerable:!0,get:function(){return dn}}),Object.defineProperty(u,"Emitter",{enumerable:!0,get:function(){return mt}}),Object.defineProperty(u,"HANDLE_ATOM_INSERT_ID",{enumerable:!0,get:function(){return rr}}),Object.defineProperty(u,"INIT_PIPELINE_ID",{enumerable:!0,get:function(){return Rt}}),Object.defineProperty(u,"INSTANCE_ID",{enumerable:!0,get:function(){return vt}}),Object.defineProperty(u,"JWTMixin",{enumerable:!0,get:function(){return hn}}),Object.defineProperty(u,"LIGHT",{enumerable:!0,get:function(){return un}}),Object.defineProperty(u,"LOCAL_STORAGE_ITEMS",{enumerable:!0,get:function(){return cn}}),Object.defineProperty(u,"MESSAGE_SERVICE_ID",{enumerable:!0,get:function(){return or}}),Object.defineProperty(u,"MODAL_CLOSE_EVENT",{enumerable:!0,get:function(){return ur}}),Object.defineProperty(u,"MODAL_SHOW_EVENT",{enumerable:!0,get:function(){return cr}}),Object.defineProperty(u,"MODAL_UPDATE_EVENT",{enumerable:!0,get:function(){return _r}}),Object.defineProperty(u,"MessageService",{enumerable:!0,get:function(){return er}}),Object.defineProperty(u,"OAuthMixin",{enumerable:!0,get:function(){return On}}),Object.defineProperty(u,"OPTIONS_SOURCE_ID",{enumerable:!0,get:function(){return le}}),Object.defineProperty(u,"PLUGIN_COLLECTION_ID",{enumerable:!0,get:function(){return xt}}),Object.defineProperty(u,"PORT_READY",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(u,"PREFERS_COLOR_SCHEME_DARK",{enumerable:!0,get:function(){return ln}}),Object.defineProperty(u,"PUBLIC_REQUEST",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(u,"REQUEST_HANDLER_ID",{enumerable:!0,get:function(){return x}}),Object.defineProperty(u,"REST_CLIENT_FACTORY_ID",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(u,"REST_TRANSPORT_ID",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(u,"SANDBOX_EXTENSIONS_ID",{enumerable:!0,get:function(){return nr}}),Object.defineProperty(u,"SANDBOX_EXTENSION_SCRIPT_STATUS_ID",{enumerable:!0,get:function(){return ir}}),Object.defineProperty(u,"SECURITY_MODULE_ID",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(u,"SETTINGS_PANEL_EVENT",{enumerable:!0,get:function(){return sr}}),Object.defineProperty(u,"STANDALONE_ACTIVATED_ID",{enumerable:!0,get:function(){return jt}}),Object.defineProperty(u,"STANDALONE_BOOTSTRAP_TOKEN_ID",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(u,"STANDALONE_FILE_PROXY_REGISTERED_ID",{enumerable:!0,get:function(){return Bt}}),Object.defineProperty(u,"STANDALONE_PROJECT_ID",{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(u,"STORE_ID",{enumerable:!0,get:function(){return wt}}),Object.defineProperty(u,"Signal",{enumerable:!0,get:function(){return Tt}}),Object.defineProperty(u,"TEMPLATE_DIRECTIVES_ID",{enumerable:!0,get:function(){return dr}}),Object.defineProperty(u,"USEBLOCKS",{enumerable:!0,get:function(){return an}}),Object.defineProperty(u,"combineMixins",{enumerable:!0,get:function(){return fn}}),Object.defineProperty(u,"composeAbortSignals",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(u,"createAbortError",{enumerable:!0,get:function(){return S}}),Object.defineProperty(u,"createIdentifier",{enumerable:!0,get:function(){return Jt}}),Object.defineProperty(u,"createIdentifier$1",{enumerable:!0,get:function(){return f}}),Object.defineProperty(u,"createQueue",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(u,"createTransport",{enumerable:!0,get:function(){return We}}),Object.defineProperty(u,"debounce",{enumerable:!0,get:function(){return Dt}}),Object.defineProperty(u,"decodeJwt",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(u,"deepEqual",{enumerable:!0,get:function(){return w}}),Object.defineProperty(u,"defineMixin",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(u,"events",{enumerable:!0,get:function(){return K}}),Object.defineProperty(u,"filter",{enumerable:!0,get:function(){return bt}}),Object.defineProperty(u,"generateUUID",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(u,"getActiveBaseUrl",{enumerable:!0,get:function(){return k}}),Object.defineProperty(u,"getApi",{enumerable:!0,get:function(){return qt}}),Object.defineProperty(u,"getEmitter",{enumerable:!0,get:function(){return yt}}),Object.defineProperty(u,"getEmitter$1",{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(u,"getEvent",{enumerable:!0,get:function(){return Pt}}),Object.defineProperty(u,"getServiceContainerId",{enumerable:!0,get:function(){return M}}),Object.defineProperty(u,"mapHttpStatusToErrorCode",{enumerable:!0,get:function(){return gt}}),Object.defineProperty(u,"mergeBackendProxyLayers",{enumerable:!0,get:function(){return gr}}),Object.defineProperty(u,"mergeResourceProxyLayers",{enumerable:!0,get:function(){return Ar}}),Object.defineProperty(u,"mergeResourceProxyPolicyLayers",{enumerable:!0,get:function(){return Sr}}),Object.defineProperty(u,"mergeShallowConfigLayers",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(u,"provideOAuth",{enumerable:!0,get:function(){return et}}),Object.defineProperty(u,"raceWithAbortSignal",{enumerable:!0,get:function(){return It}}),Object.defineProperty(u,"registerRestTransport",{enumerable:!0,get:function(){return en}}),Object.defineProperty(u,"releaseContainer",{enumerable:!0,get:function(){return pr}}),Object.defineProperty(u,"resolveContainer",{enumerable:!0,get:function(){return ft}}),Object.defineProperty(u,"resolveExplicitApiBaseUrl",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(u,"setApiOriginFailoverHook",{enumerable:!0,get:function(){return zr}}),Object.defineProperty(u,"snapshot",{enumerable:!0,get:function(){return St}}),Object.defineProperty(u,"throwIfAborted",{enumerable:!0,get:function(){return q}}),Object.defineProperty(u,"waitForElement",{enumerable:!0,get:function(){return ot}})});
2076
2076
 
2077
2077
 
2078
- __useblocks__.define("useblocks.js",["require","exports","module","static/umd/a6c87b84.js"],function(ao,K,Bp){Object.defineProperties(K,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var hn=Object.defineProperty,gn=(e,t)=>{let n={};for(var r in e)hn(n,r,{get:e[r],enumerable:!0});return t||hn(n,Symbol.toStringTag,{value:"Module"}),n};const a=ao("./static/umd/a6c87b84.js");var lo=new Function("url","return import(url)");function co(e){if(typeof e!="function")return!1;try{return Reflect.construct(String,[],e),!0}catch{return!1}}function uo(e){return typeof e=="object"&&e!==null&&"type"in e&&"url"in e}function fo(e){return e.type==="umd"||e.resolve==="registry"}function jp(e){return e}var po=class{_context;_pluginRegistry;_options;_map=new Map;_optionsMap=new Map;_readyMap=new Map;_resolveMap=new Map;_initializingPlugins=new Map;_creatingPlugins=new Set;_initializedPlugins=new Set;_creationOrder=[];_lifecycleListeners=new Set;_activated=!1;constructor(e,t,n={}){this._context=e,this._pluginRegistry=t,this._options=n}activate(){return this._activated=!0,this._startPluginsBatch(Array.from(this._map.values()))}activateSync(){this._activated=!0,this._startPluginsBatch(Array.from(this._map.values()))}onLifecycle(e){return this._lifecycleListeners.add(e),{dispose:()=>this._lifecycleListeners.delete(e)}}_emitLifecycle(e){for(const t of Array.from(this._lifecycleListeners))try{t(e)}catch{}}async _resolveEntry(e){if(typeof e=="string"||typeof e=="symbol"){const t=await this._pluginRegistry.getAsync(e);if(!t)throw new Error(`Plugin "${String(e)}" not registered.`);return{ctor:t}}if(typeof e=="function")return e.length===0?{ctor:await e()}:{ctor:e};if(Array.isArray(e)){const[t,n]=e;if(typeof t=="function")return{ctor:t,options:n};const r=await this._pluginRegistry.getAsync(t);if(!r)throw new Error(`Plugin "${String(t)}" not registered.`);return{ctor:r,options:n}}if(uo(e))return this._resolveDescriptor(e);throw new Error(`Unknown plugin entry format: ${JSON.stringify(e)}`)}async _resolveDescriptor(e){const t=e.resolve??(e.type==="umd"?"window":"module");if(fo(e)&&await this._options.ensureHostRuntimeReady?.(e),e.type==="esm"){const n=await lo(e.url);if(t==="module")return{ctor:n.default??n};if(t==="registry"&&e.name){const r=await this._pluginRegistry.getAsync(e.name);if(!r)throw new Error(`Plugin "${e.name}" not found in registry after ESM load`);return{ctor:r}}}if(e.type==="umd"){if(await this._loadScript(e.url),t==="window"&&e.name){const n=globalThis[e.name];if(!n)throw new Error(`Plugin "${e.name}" not found on window after script load`);return{ctor:n}}if(t==="registry"&&e.name){const n=await this._pluginRegistry.getAsync(e.name);if(!n)throw new Error(`Plugin "${e.name}" not found in registry after script load`);return{ctor:n}}}throw new Error(`Cannot resolve descriptor: type=${e.type}, resolve=${t}, name=${e.name??"none"}`)}_loadScript(e){return new Promise((t,n)=>{if(typeof document>"u"){n(new Error("Cannot load UMD script in non-browser environment"));return}const r=document.createElement("script");r.src=e,r.onload=()=>t(),r.onerror=()=>n(new Error(`Failed to load script: ${e}`)),document.head.appendChild(r)})}initSync(e){const t=[];for(const n of e){const r=this._getOrCreate(n,void 0);t.push(r)}this._activated=!0,this._startPluginsBatch(t)}async init(e){const t=[],n=new Set;for(const r of e){const{ctor:s,options:o}=await this._resolveEntry(r),i=this._getOrCreate(s,o);n.has(i)||(n.add(i),t.push(i))}this._activated=!0,await this._startPluginsBatch(t)}async setPlugins(e){const t=new Set,n=[];for(const i of e){const c=await this._resolveEntry(i);t.add(c.ctor),n.push(c)}const r=[];this._map.forEach((i,c)=>{t.has(c)||r.push({key:c,plugin:i})});for(let i=r.length-1;i>=0;i--){const{key:c,plugin:l}=r[i];await this._initializingPlugins.get(l),await this._disposePlugin(l,l.constructor.name),this._map.delete(c),this._optionsMap.delete(c),this._readyMap.delete(l),this._resolveMap.delete(l),this._initializingPlugins.delete(l),this._initializedPlugins.delete(l);const u=this._creationOrder.indexOf(l);u>=0&&this._creationOrder.splice(u,1)}const s=[],o=new Set;for(const{ctor:i,options:c}of n){const l=this._getOrCreate(i,c);o.has(l)||(o.add(l),s.push(l))}this._activated&&await this._startPluginsBatch(s)}isReady(e){return this._initializedPlugins.has(e)}ready(e){return this._initializingPlugins.get(e)??this._readyMap.get(e)??Promise.resolve()}async waitFor(e,t){if(this._pluginRegistry.has(e))return this.useByKeyAsync(e);const{timeout:n}=t??{};return await new Promise((r,s)=>{let o,i=!1;const c=()=>{i||(i=!0,o&&clearTimeout(o),this._pluginRegistry.off(e,c),r())};this._pluginRegistry.on(e,c),n!==void 0&&n>0&&(o=setTimeout(()=>{i||(i=!0,this._pluginRegistry.off(e,c),s(new Error(`waitFor("${String(e)}") timed out after ${n}ms`)))},n))}),this.useByKeyAsync(e)}useByKey(e){const t=this._pluginRegistry.get(e);if(!t)throw new Error(`Plugin "${String(e)}" not registered or not loaded yet. Use useByKeyAsync() for async plugins.`);const n=this._getOrCreate(t);return this._activated&&this._startPluginsBatch([n]),n}async useByKeyAsync(e){const t=await this._pluginRegistry.getAsync(e);if(!t)throw new Error(`Plugin "${String(e)}" not registered.`);const n=this._getOrCreate(t);return this._activated&&await this._startPluginsBatch([n]),n}useByCtor(e,t){const n=this._getOrCreate(e,t);return this._activated&&this._startPluginsBatch([n]),n}use(e){return typeof e=="function"?this.useByCtor(e):this.useByKey(e)}async useAsync(e){const{ctor:t,options:n}=await this._resolveEntry(e),r=this._getOrCreate(t,n);return this._activated&&await this._startPluginsBatch([r]),r}_getOrCreate(e,t){const n=e;if(!this._map.has(n)){t!==void 0&&this._optionsMap.set(n,t);const r=this._optionsMap.get(n),s=this._createPluginInstance(e,r),o=s.constructor.name;this._emitLifecycle({type:"created",plugin:s,name:o}),s.required?.(),this._map.set(n,s),this._creationOrder.push(s),this._setupReadyPromise(s)}return this._map.get(n)}_createPluginInstance(e,t){const n=e;if(this._creatingPlugins.has(n))throw new Error(`Cyclic dependency for plugin ${e.name}`);this._creatingPlugins.add(n);try{return co(e)?new e(this._context,t):e(this._context,t)||{}}finally{this._creatingPlugins.delete(n)}}_setupReadyPromise(e){const t=new Promise(n=>{this._resolveMap.set(e,n)});this._readyMap.set(e,t)}async _startPluginsBatch(e){const t=Array.from(new Set(e)),n=new Set,r=[];for(const s of t){if(this._initializedPlugins.has(s))continue;const o=this._initializingPlugins.get(s);if(o){n.add(o);continue}r.push(s)}if(r.length>0){const s=this._runBatchLifecycle(r);for(const o of r)this._initializingPlugins.set(o,s);n.add(s),s.finally(()=>{for(const o of r)this._initializingPlugins.get(o)===s&&this._initializingPlugins.delete(o)})}await Promise.all(n)}async _runBatchLifecycle(e){const t=[];for(const n of e){const r=n.constructor.name;this._emitLifecycle({type:"init:start",plugin:n,name:r});try{await n.init?.(),this._emitLifecycle({type:"init:success",plugin:n,name:r}),t.push(n)}catch(s){this._emitLifecycle({type:"init:error",plugin:n,name:r,error:s})}}for(const n of t){const r=n.constructor.name;this._emitLifecycle({type:"afterInit:start",plugin:n,name:r});try{await n.afterInit?.(),this._emitLifecycle({type:"afterInit:success",plugin:n,name:r})}catch(s){this._emitLifecycle({type:"afterInit:error",plugin:n,name:r,error:s})}}for(const n of e)this._initializedPlugins.add(n),this._resolveMap.get(n)?.(),this._resolveMap.delete(n)}async _disposePlugin(e,t){this._emitLifecycle({type:"dispose:start",plugin:e,name:t});try{await e.dispose?.(),this._emitLifecycle({type:"dispose:success",plugin:e,name:t})}catch(n){this._emitLifecycle({type:"dispose:error",plugin:e,name:t,error:n})}}async dispose(){for(let e=this._creationOrder.length-1;e>=0;e--){const t=this._creationOrder[e];await this._initializingPlugins.get(t),await this._disposePlugin(t,t.constructor.name)}this._map.clear(),this._optionsMap.clear(),this._readyMap.clear(),this._resolveMap.clear(),this._initializingPlugins.clear(),this._initializedPlugins.clear(),this._creationOrder.length=0,this._lifecycleListeners.clear()}getStatus(){return Array.from(this._map.values()).map(e=>({name:e.constructor.name,initialized:this._initializedPlugins.has(e)}))}},mo=class{_plugins=new Map;_listeners=new Map;_getOrCreateEntry(e){let t=this._plugins.get(e);return t||(t={overrides:[]},this._plugins.set(e,t)),t}_applyOverrides(e,t){const n=this._plugins.get(e);if(n?.overrides)for(const r of n.overrides)t=r(t)||t;return t}_notifyListeners(e,t){const n=this._listeners.get(e);if(!n||n.length===0)return;for(const s of n)try{s.callback(t)}catch{}const r=n.filter(s=>!s.once);r.length>0?this._listeners.set(e,r):this._listeners.delete(e)}get(e){const t=this._plugins.get(e);if(t?.ctor)return this._applyOverrides(e,t.ctor)}async getAsync(e){const t=this._plugins.get(e);if(t?.ctor)return this._applyOverrides(e,t.ctor);if(t?.loading){const n=await t.loading;return this._applyOverrides(e,n)}if(t?.factory){const n=Promise.resolve(t.factory()).then(s=>(t.ctor=s,t.loading=void 0,this._notifyListeners(e,s),s));t.loading=n;const r=await n;return this._applyOverrides(e,r)}return new Promise(n=>{this.on(e,r=>n(this._applyOverrides(e,r)))})}add(e,t){const n=this._getOrCreateEntry(e);n.ctor=t,this._notifyListeners(e,t)}addAll(e){for(const t of Object.keys(e)){const n=e[t];n!==void 0&&this.add(t,n)}}addAsync(e,t){const n=this._getOrCreateEntry(e);return n.factory=t,{dispose:()=>{n.ctor||(n.factory=void 0)}}}has(e){const t=this._plugins.get(e);return!!(t?.ctor||t?.factory)}isLoaded(e){return!!this._plugins.get(e)?.ctor}override(e,t){const n=this._getOrCreateEntry(e);return n.overrides.push(t),{dispose:()=>{const r=n.overrides.indexOf(t);r>=0&&n.overrides.splice(r,1)}}}on(e,t){const n=this.get(e);n&&t(n);let r=this._listeners.get(e);r||(r=[],this._listeners.set(e,r));const s={callback:t,once:!1};return r.push(s),{dispose:()=>this._removeListener(e,t)}}once(e,t){const n=this.get(e);if(n)return t(n),{dispose:()=>{}};let r=this._listeners.get(e);r||(r=[],this._listeners.set(e,r));const s={callback:t,once:!0};return r.push(s),{dispose:()=>this._removeListener(e,t)}}off(e,t){this._removeListener(e,t)}_removeListener(e,t){const n=this._listeners.get(e);if(n){const r=n.findIndex(s=>s.callback===t);r>=0&&n.splice(r,1),n.length===0&&this._listeners.delete(e)}}keys(){return Array.from(this._plugins.keys())}forContext(){const e=this;return{add(t,n){e.add(t,n)}}}},ho=class{resolveRegistry;constructor(e){this.resolveRegistry=e}target(){return this.resolveRegistry()}get(e){return this.target().get(e)}getAsync(e){return this.target().getAsync(e)}add(e,t){return this.target().add(e,t)}addAll(e){return this.target().addAll(e)}addAsync(e,t){return this.target().addAsync(e,t)}has(e){return this.target().has(e)}isLoaded(e){return this.target().isLoaded(e)}override(e,t){return this.target().override(e,t)}on(e,t){return this.target().on(e,t)}once(e,t){return this.target().once(e,t)}off(e,t){return this.target().off(e,t)}keys(){return this.target().keys()}forContext(){return this.target().forContext()}},En=class{capacity;items=[];constructor(e){this.capacity=e}push(e){this.items.length>=this.capacity&&this.items.shift(),this.items.push(e)}snapshot(){return this.items.slice()}size(){return this.items.length}clear(){this.items=[]}};function go(e,t){return t+e}function Eo(){return typeof performance>"u"?Date.now():go(performance.now(),performance.timeOrigin)}var bo="emailmaker:diagnostics",_o="diagnostics",vo="diagnostics";function bn(e,t){return t?`${e}${e.includes("?")?"&":"?"}${vo}=1`:e}var nt;function yo(){try{const e=new URLSearchParams(window.location.search).get(_o);return e===null?void 0:e!=="0"}catch{return}}function So(){const e=window.__DIAGNOSTICS__;return typeof e=="boolean"?e:void 0}function Io(){try{const e=window.localStorage.getItem(bo);return e===null?void 0:e==="1"}catch{return}}function ve(){return nt===void 0&&(nt=typeof window>"u"?!1:yo()??So()??Io()??!1),nt}function wo(e){return`__${(e||"useblocks").toLowerCase().replaceAll("-","")}__`}var z={initStart:"loader:init:start",coreReady:"loader:core:ready",initEnd:"loader:init:end",chunksLoaded:"app:chunks:loaded",showStart:"show:start",showEnd:"show:end",canvasCreated:"canvas:created",canvasLoaded:"canvas:loaded",canvasPainted:"canvas:painted",appVisible:"app:visible",editorVisible:"editor:visible",canvasSettled:"canvas:settled"},Up=Object.values(z),Hp=[z.canvasPainted,z.canvasSettled,z.appVisible,z.editorVisible],To=5e3,Ao=3e3,_n="diagnosticsStore",xe,ye;function vn(){return{marks:new En(To),resources:new En(Ao)}}function yn(){if(ye)return ye;const e=rt();return e?(ye=e[_n]??xe??vn(),e[_n]=ye,xe=void 0,ye):(xe??=vn(),xe)}function j(e,t){ve()&&yn().marks.push({phase:e,at:Eo(),...t})}function rt(){if(typeof __useblocks__<"u"&&__useblocks__)return __useblocks__;if(typeof window>"u")return;const e=window[wo()];return e!==null&&typeof e=="object"?e:void 0}function Co(e){const t=e.length,n=yn();return e.forEach(r=>n.marks.push(r)),e.length=0,t}function Po(){const e=rt();return!e||!Array.isArray(e.diagnosticsBuffer)?0:Co(e.diagnosticsBuffer)}var Do="Editor instance was destroyed and cannot be reused. A fresh instance will be created instead.";function Sn(){const e=new Error(Do);return e.name="DestroyedInstanceError",e}function st(e,t){if(e===t)return!0;if(!e||!t||typeof e!="object"||typeof t!="object")return!1;const n=Array.isArray(e);if(n!==Array.isArray(t))return!1;if(n){const o=e,i=t;return o.length===i.length&&o.every((c,l)=>st(c,i[l]))}const r=Object.keys(e),s=Object.keys(t);return r.length!==s.length?!1:r.every(o=>Object.prototype.hasOwnProperty.call(t,o)&&st(e[o],t[o]))}function In(e,t){const n={watch(r){let s,o=!1;return e.watch(i=>{const c=t(i);o&&st(s,c)||(s=c,o=!0,r(c))})},select(r){return In(n,r)}};return n}function pe(...e){let t=e[0],n=e.length>0;const r=new Set,s={get(){return n?t:void 0},set(o){t=o,n=!0;for(const i of Array.from(r))i(o)},watch(o){return r.add(o),n&&o(t),{dispose:()=>r.delete(o)}},select(o){return In(s,o)}};return s}var wn=class{http;constructor(e){this.http=e}app_init_create=(e,t={})=>this.http.request({path:"/app/v1/app_init",method:"POST",body:e,type:a.ContentType.UrlEncoded,...t})},Tn=class{http;constructor(e){this.http=e}get_translations2=({file:e,...t},n={})=>this.http.request({path:`/translations/v1/${e}`,method:"GET",...n});get_translations3=({id:e,file:t,...n},r={})=>this.http.request({path:`/translations/v1/${t}/${e}`,method:"GET",...r})};function Ro(e){return String(e||"").trim()||void 0}var Oo=class extends a.Disposable{deps;_app;_baseUrl;_appInit;_restBaseUrl;_prevApp;constructor(e){super(),this.deps=e,this.addDisposable(e.options.select(t=>this._slice(t)).watch(t=>this._start(t)))}get app(){return this._app}_slice(e){return Object.prototype.hasOwnProperty.call(e,"baseUrl")&&(this._baseUrl=Ro(e.baseUrl)),Object.prototype.hasOwnProperty.call(e,"appInit")&&(this._appInit=e.appInit),{appInit:this._appInit,user:e.user,project:e.project,baseUrl:this._baseUrl,restBaseUrl:this.deps.resolveRestBaseUrl(this._baseUrl),standalone:this.deps.isStandalone()}}_start(e){if(this._restBaseUrl!==e.restBaseUrl&&(this._restBaseUrl=e.restBaseUrl,this.deps.setRestBaseUrl(e.restBaseUrl)),e.standalone)return;const t=e.appInit||this.deps.fallbackAppInit,n=Promise.resolve(t({baseUrl:e.baseUrl,user:e.user,project:e.project,prevApp:this._prevApp}));this._app=n,n.then(r=>{this._app===n&&(this._prevApp=r)},()=>{}),this.deps.publish(n)}},ot=a.createIdentifier$1("AppInitService");function Lo(e){return async()=>{const t=await e();return(await new wn(t).app_init_create({})).data}}function No(e){e.injectFactory(ot,()=>{const t=new Oo({options:e.getInstance(a.OPTIONS_SOURCE_ID),isStandalone:()=>!!e.getInstance(a.SECURITY_MODULE_ID),resolveRestBaseUrl:n=>n?a.getActiveBaseUrl(n):a.getActiveBaseUrl()||void 0,setRestBaseUrl:n=>{e.getInstance(a.REST_CLIENT_FACTORY_ID)?.setOptions(n?{baseUrl:n}:{})},fallbackAppInit:Lo(()=>e.getInstanceAsync(a.REST_TRANSPORT_ID)),publish:n=>{e.inject(a.APP_ID,n)}});return e.getInstance(a.DISPOSABLE_ID)?.addDisposable(t),t},!0)}var it=a.createIdentifier$1("documentSession.emailDocuments");function at(e){return e?.getInstance(it)}var xo=a.createIdentifier$1("RevisionServiceFlag");function Mo(e){return e.getOrCreateInstance(xo,()=>{let t=!1;return{isEnabled:()=>t,set:n=>{t=n}}})}function An(e){return Mo(e).isEnabled()}var Fo=a.createIdentifier$1("EmailRightsResolver");function ko(e,t){const n=e.getInstance(Fo);return n?n(t):!0}var Cn=a.createIdentifier$1("EmailHistoryAvailabilityResolver");function Bo(e){return e.getInstance(Cn)!==void 0}async function jo(e){const t=e.getInstance(Cn);if(!t)return!0;try{return await t()}catch{return!1}}var lt={INIT_START:5e3,SET_ENTITY:12e3,PREHEADER:5e3,SUBJECT:5e3,INITED:5e3,UPDATE_ENTITY:5e3},Pn=["INIT_START","SET_ENTITY","PREHEADER","SUBJECT","INITED"],Dn=2e4,Uo=Pn.reduce((e,t)=>e+lt[t],0),Rn=Dn+Uo+3e3;function Ho(e){return Pn.reduce((t,n)=>t+On(n,e),0)}function On(e,t){const n=t?.[e];return typeof n=="number"&&n>0?n:lt[e]}function Ln(e){const t=e?.contentReady;return typeof t=="number"&&t>0?t:Rn}function Nn(e){const t=e?.sandboxReady;return typeof t=="number"&&t>0?t:Dn}function xn(e=Rn){return e+3e3}var $p="[show-pipeline]";function Gp(e,t){}var $o=()=>xn();function Go(e,t){let n;return Promise.race([e,new Promise(r=>{n=setTimeout(()=>{r()},t)})]).finally(()=>{n!==void 0&&clearTimeout(n)})}function Vo(e){return t=>Go(e.getOrCreateInstance(a.events.BEFORE_SAVE_EMAIL,()=>new a.AsyncEmitter).fire(t),$o())}function Yo(e){return e!=null&&e!==""}var zo;function Me(e,t){return zo?.capture(e,t)}function qo(e=""){let t=e;return{read:()=>t,write:n=>{t=n},dispose:()=>{t=""}}}function Fe(e){return e.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}var J=class{oldPosition;oldText;newPosition;newText;get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(e,t,n,r){this.oldPosition=e,this.oldText=t,this.newPosition=n,this.newText=r}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${Fe(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${Fe(this.oldText)}")`:`(replace@${this.oldPosition} "${Fe(this.oldText)}" with "${Fe(this.newText)}")`}};function Mn(e,t){return e===null||e.length===0?t:new Ko(e,t).compress()}var Ko=class te{_prevEdits;_currEdits;_result;_resultLen;_prevLen;_prevDeltaOffset;_currLen;_currDeltaOffset;constructor(t,n){this._prevEdits=t,this._currEdits=n,this._result=[],this._resultLen=0,this._prevLen=this._prevEdits.length,this._prevDeltaOffset=0,this._currLen=this._currEdits.length,this._currDeltaOffset=0}compress(){let t=0,n=0,r=this._getPrev(t),s=this._getCurr(n);for(;t<this._prevLen||n<this._currLen;){if(r===null){if(s===null)break;this._acceptCurr(s),s=this._getCurr(++n);continue}if(s===null){this._acceptPrev(r),r=this._getPrev(++t);continue}if(s.oldEnd<=r.newPosition){this._acceptCurr(s),s=this._getCurr(++n);continue}if(r.newEnd<=s.oldPosition){this._acceptPrev(r),r=this._getPrev(++t);continue}if(s.oldPosition<r.newPosition){const[l,u]=te._splitCurr(s,r.newPosition-s.oldPosition);this._acceptCurr(l),s=u;continue}if(r.newPosition<s.oldPosition){const[l,u]=te._splitPrev(r,s.oldPosition-r.newPosition);this._acceptPrev(l),r=u;continue}let i,c;if(s.oldEnd===r.newEnd)i=r,c=s,r=this._getPrev(++t),s=this._getCurr(++n);else if(s.oldEnd<r.newEnd){const[l,u]=te._splitPrev(r,s.oldLength);i=l,c=s,r=u,s=this._getCurr(++n)}else{const[l,u]=te._splitCurr(s,r.newLength);i=r,c=l,r=this._getPrev(++t),s=u}this._result[this._resultLen++]=new J(i.oldPosition,i.oldText,c.newPosition,c.newText),this._prevDeltaOffset+=i.newLength-i.oldLength,this._currDeltaOffset+=c.newLength-c.oldLength}const o=te._merge(this._result);return te._removeNoOps(o)}_acceptCurr(t){this._result[this._resultLen++]=te._rebaseCurr(this._prevDeltaOffset,t),this._currDeltaOffset+=t.newLength-t.oldLength}_getCurr(t){return t<this._currLen?this._currEdits[t]:null}_acceptPrev(t){this._result[this._resultLen++]=te._rebasePrev(this._currDeltaOffset,t),this._prevDeltaOffset+=t.newLength-t.oldLength}_getPrev(t){return t<this._prevLen?this._prevEdits[t]:null}static _rebaseCurr(t,n){return new J(n.oldPosition-t,n.oldText,n.newPosition,n.newText)}static _rebasePrev(t,n){return new J(n.oldPosition,n.oldText,n.newPosition+t,n.newText)}static _splitPrev(t,n){const r=t.newText.substr(0,n),s=t.newText.substr(n);return[new J(t.oldPosition,t.oldText,t.newPosition,r),new J(t.oldEnd,"",t.newPosition+n,s)]}static _splitCurr(t,n){const r=t.oldText.substr(0,n),s=t.oldText.substr(n);return[new J(t.oldPosition,r,t.newPosition,t.newText),new J(t.oldPosition+n,s,t.newEnd,"")]}static _merge(t){if(t.length===0)return t;const n=[];let r=0,s=t[0];for(let o=1;o<t.length;o++){const i=t[o];s.oldEnd===i.oldPosition?s=new J(s.oldPosition,s.oldText+i.oldText,s.newPosition,s.newText+i.newText):(n[r++]=s,s=i)}return n[r++]=s,n}static _removeNoOps(t){if(t.length===0)return t;const n=[];let r=0;for(let s=0;s<t.length;s++){const o=t[s];o.oldText!==o.newText&&(n[r++]=o)}return n}};function Wo(e){return new J(e.newPosition,e.newText,e.oldPosition,e.oldText)}function Xo(e){return e.map(Wo)}function Fn(e,t){return t.every(n=>e.slice(n.oldPosition,n.oldEnd)===n.oldText)}function Jo(e,t){let n=e;for(let r=t.length-1;r>=0;r-=1){const s=t[r];n=n.slice(0,s.oldPosition)+s.newText+n.slice(s.oldEnd)}return n}function Qo(e,t,n){let r=0;const s=e.start===e.end;for(const o of t){const i=o.newLength-o.oldLength;if(o.oldLength===0){const c=o.oldPosition;if(s&&c===e.start)r+=n==="after"?i:0;else{if(e.start<c&&c<e.end)return null;c<=e.start&&(r+=i)}continue}if(s){if(e.start>=o.oldEnd)r+=i;else if(e.start>o.oldPosition)return null;continue}if(e.start>=o.oldEnd)r+=i;else if(e.end>o.oldPosition)return null}return{start:e.start+r,end:e.end+r}}var ke=class extends Error{reason;constructor(e){super("Открытие документа не удалось"),this.reason=e,this.name="DocumentOpenFailedError"}},kn=0,Zo=Math.random().toString(36).slice(2,8);function ei(){return kn+=1,`doc-${Zo}-${kn}`}function ti(e){const t=e.createBuffer(),n=e.docId??ei();let r=e.serverId??null,s=0,o=null,i=e.attributes??{};const c=new Set;let l=!1,u=!1,d;const p=new Set;let m=null;const b=()=>(m?.version!==s&&(m={version:s,value:t.read()}),m.value),S=E=>Object.entries(E).some(([g,_])=>i[g]!==_);return{get:()=>({docId:n,serverId:r,version:s,savedVersion:o,attributes:i}),getContent:b,mutate(E,{source:g}){if(l)return s;const _=E.changes?.length?E.changes:void 0,v=_?Jo(b(),_):E.content!==void 0?E.content:void 0,I=v!==void 0&&v!==b(),A=E.attributes!==void 0&&S(E.attributes);if(!I&&!A)return s;const P=!(s>(o??-1));return I&&t.write(v),A&&(i={...i,...E.attributes}),s+=1,g!=="user"&&P&&(o=s),c.forEach(h=>h({source:g,version:s,changes:_})),s},markSaved(E,g){const _={serverId:r,savedVersion:o};g!==void 0&&(r=g),(o===null||E>o)&&(o=E),(_.serverId!==r||_.savedVersion!==o)&&c.forEach(v=>v({source:"system",version:s}))},markReady(){u||d!==void 0||(u=!0,p.forEach(E=>E.resolve()),p.clear(),c.forEach(E=>E({source:"system",version:s})))},isReady:()=>u,markFailed(E){u||d!==void 0||l||(d=E,p.forEach(g=>g.reject(new ke(E))),p.clear(),c.forEach(g=>g({source:"system",version:s})))},failure:()=>d,whenReady(){return u?Promise.resolve():d!==void 0?Promise.reject(new ke(d)):l?Promise.reject(new Error("Документ закрыт до того, как наполнение закончилось")):new Promise((E,g)=>{p.add({resolve:E,reject:g})})},subscribe(E){return c.add(E),()=>c.delete(E)},isNew:()=>r===null,isDirty:()=>s>(o??-1),isDisposed:()=>l,dispose(){l=!0,p.forEach(E=>E.reject(new Error("Документ закрыт до того, как наполнение закончилось"))),p.clear(),c.clear(),t.dispose()}}}var ni=500,ri=100,ct=0;function si(e,t={}){const n=t.groupIntervalMs??ni,r=t.maxSteps??ri,s=t.now??(()=>0);let o=[],i=0,c=ct+=1,l=null,u=!1,d=!1,p=!1;const m=new Set,b=()=>m.forEach(h=>h()),S=(h,w)=>{if(h.length){d=!0;try{e.mutate({changes:h},{source:w})}finally{d=!1}}},E=h=>S(h,"user"),g=h=>{const w=s();u&&l!==null&&w-l<n?o[i-1]=Mn(o[i-1],h):(o=o.slice(0,i),o.push(h),i=o.length,u=!0,o.length>r&&(o=o.slice(o.length-r),i=o.length,c=ct+=1)),l=w,b()},_=()=>{u=!1,l=null},v=h=>{if(!h.length)return;const w=o.length>i;w&&(o=o.slice(0,i)),i>0&&(o[i-1]=Mn(o[i-1],h)),_(),w&&b()},I=e.subscribe(({source:h,changes:w})=>{if(!(p||d||!w?.length)){if(h==="remote"){A();return}if(h!=="user"){v(w);return}g(w)}}),A=()=>{o=[],i=0,_(),c=ct+=1,b()},P=()=>{if(i===0)return!1;const h=Xo(o[i-1]);return Fn(e.getContent(),h)?(E(h),i-=1,_(),!0):(o=o.slice(0,i-1),i=o.length,_(),b(),!1)};return{canUndo:()=>i>0,canRedo:()=>i<o.length,undo(){P()&&b()},redo(){if(!(i>=o.length)){if(!Fn(e.getContent(),o[i])){o=o.slice(0,i),_(),b();return}E(o[i]),i+=1,_(),b()}},clear:A,applyWithoutHistory(h){const w=e.get().version;if(S(h,"system"),e.get().version===w){_();return}v(h)},getPast:h=>o.slice(0,i).reverse().slice(0,h),getFuture:h=>o.slice(i).reverse().slice(0,h),createSnapshot:()=>({stackId:c,index:i}),restoreSnapshot(h){if(h.stackId!==c||h.index>i)return!1;for(;i>h.index;)if(!P())return b(),!1;return b(),!0},subscribe(h){return m.add(h),()=>m.delete(h)},dispose(){p=!0,I(),m.clear(),o=[],i=0}}}var oi=["edit","move","resize","insert"];function dt(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}function ii(e){return typeof e=="string"?e:null}function ai(e){return!Array.isArray(e)||!e.every(t=>typeof t=="string")?null:e}function li(e){return oi.includes(e)?e:null}function ci(e){const t=typeof e=="object"&&e!==null?e:{},n={originId:ii(t.originId),changeId:dt(t.changeId),rev:dt(t.rev),baseRev:dt(t.baseRev),expected:ai(t.expected),intent:li(t.intent)};return{...n,legacy:Object.values(n).every(r=>r===null)}}var Bn=class extends Error{reason;constructor(e){super(`сохранение не состоялось: ${e}`),this.name="SaveRefusedError",this.reason=e}},jn="draft";function Se(e){return e==null||e===""?jn:String(e)}function di(e){return e==null||e===""?`${ut}${jn}`:`${ut}${String(e)}`}var ut="block:";function ne(e){return e?.startsWith(ut)===!0}function Ie(e){return ne(e.sessionKey())?void 0:e.current()}function Vp(e,t){}function we(e,t,n){const r=typeof performance<"u"?performance.now():Date.now();return j(`show:gate:${e}`,{kind:"wait"}),t.then(s=>(j(`show:gate:${e}:end`,{kind:"wait"}),s),s=>{const o=Math.round((typeof performance<"u"?performance.now():Date.now())-r);throw`${e}`,{error:String(s),...n},s})}var Yp=5e3;function Un(e){return e?.length?[...e].sort((t,n)=>Date.parse(n.modified)-Date.parse(t.modified))[0]:null}function Hn(e,{freshSince:t}={}){return!(!e?.slug?.includes("autosave")||!e?.html?.trim()||t!==void 0&&Date.parse(e.modified)<t-5e3)}function ui(e,t={}){const n=Un((e??[]).filter(r=>r?.html?.trim()));return Hn(n,t)?n:null}function fi(e){const t=Date.parse(Un(e)?.modified??"");return{autosave:ui(e),...Number.isFinite(t)?{latestAt:t}:{}}}function pi({hasUnsavedUserEdit:e}){return e?"skip":"apply"}var $n=e=>e.replace(/\r\n?/g,`
2079
- `),Gn=["recovery","plugin","rest"],mi=["subject","preheader"];function hi(e){let t={},n;for(let s=Gn.length-1;s>=0;s--){const o=e.get(Gn[s]);o&&(o.attributes&&(t={...t,...o.attributes}),o.content!==void 0&&(n=o.content))}const r=e.get("plugin")?.attributes;for(const s of mi){const o=r?.[s];typeof o=="string"&&o!==""&&(t={...t,[s]:o})}return n!==void 0?{content:n,attributes:t}:{attributes:t}}function Vn(e,t){if(!e||!t)return;const n=e.getContent(),r=t.content!==void 0?$n(t.content):void 0,s=r!==void 0&&r!==n;e.get().docId,Object.keys(t.attributes??{}),e.mutate({attributes:t.attributes??{},...s?{changes:[new J(0,n,0,r)]}:{}},{source:"remote"})}var Yn=e=>typeof e=="string"?e.trim():"";function gi(e,t,n){const{version:r,attributes:s}=e.get(),o=s,i=Yn(o.title)||Yn(o.subject);return{version:r,payload:{html:e.getContent(),title:i,subject:o.subject,preheader:o.preheader,description:o.description,common_styles:o.common_styles||"",meta:o.meta,utm_parameters:o.utm_parameters,parent_email:o.parent_email,is_template:o.is_template||!1,is_inited:o.is_inited,tags:o.tags,emailtags:o.emailtags,group:o.group,renderGuid:e.get().docId,project:t.project??o.project,folder:t.folder,...n?.emailtags?{emailtags:n.emailtags}:{},...n?.group?{group:n.group}:{},source:t.source}}}async function Ei(e,t,n,r,s){if(n==="materialize"||n==="publish"&&r==null)return e.createEmail(s);if(r==null)throw new Error("Письмо ещё не создано на сервере");return n==="publish"?e.updateEmail(r,s):t.saveAutosave(r,s)}function re(e,t=!1){const n={};for(const r of Object.keys(e)){let s=e[r];s!==void 0&&!(typeof s=="number"&&Number.isNaN(s))&&(t&&typeof s=="object"&&s!==null&&(s=re(s)),n[r]=s)}return n}var bi=new Set(["html","id","renderGuid","showToken","showId","isNew"]);function zn(e){return e?Object.fromEntries(Object.entries(e).filter(([t])=>!bi.has(t))):{}}function Be(e,t,n={}){e&&e.mutate({attributes:_i(e.get().attributes,t)},{source:n.source??"user"})}function _i(e,t){return t.subject===void 0||t.title!==void 0?t:(e.title??"")===(e.subject??"")?{...t,title:t.subject}:t}function ft(e,t){return e===void 0&&Object.keys(t).length===0?null:{...e!==void 0?{content:e}:{},attributes:t}}function vi(e){return typeof e=="string"&&e.startsWith("{")?e:"{}"}function qn(e){if(!e)return null;const t=zn(e);return e.common_styles!==void 0&&(t.common_styles=vi(e.common_styles)),ft(e.html,t)}function Kn(e){return e?ft(e.html,re(zn(e))):null}var yi=["common_styles","subject","preheader","meta"];function Wn(e){if(!e?.html?.trim())return null;const t={};for(const n of yi)Si(n,e[n])&&(t[n]=e[n]);return ft(e.html,t)}function Si(e,t){return e==="common_styles"?typeof t=="string"&&t.startsWith("{"):e==="meta"?typeof t=="object"&&t!==null&&!Array.isArray(t):typeof t=="string"}var Ii=10,wi=(e,t)=>e.key===t.key&&Ti(e.serverId,t.serverId),Ti=(e,t)=>e==null||e===t;function Ai(e){return typeof e?.then=="function"}var Xn=e=>{e.timer!==void 0&&(clearTimeout(e.timer),e.timer=void 0)},Jn=e=>{e.request.serverId!=null&&e.document.markSaved(e.document.get().version)},Ci=e=>{Vn(e.document,hi(e.reports)),Jn(e)},pt=(e,t)=>{if(!e.ready){Ci(e);return}Vn(e.document,t)},Pi=e=>{const{attributes:t,serverId:n,docId:r}=e.document.get();return{...t,html:e.document.getContent(),id:n??void 0,isNew:n==null,renderGuid:r}};function Di(e){const{resolveAdapters:t,timeoutMs:n,resolveWritePort:r,resolveHistoryPort:s,resolveTerms:o,canEdit:i,notifyBeforeSave:c,onAdapterError:l,onTimeout:u}=e;let d;const p=new Set,m=new Set,b=()=>p.forEach(f=>f()),S=(f,y)=>{if(!(f.closed||f.ready)){if(f.error!==void 0){f.document.markFailed(f.error),f.document.get().docId;return}Jn(f),f.ready=!0,f.document.markReady(),f.document.get().docId,[...f.reports.keys()]}},E=(f,y,T)=>{l?.(y.id,T),!(!y.required||f.closed)&&(f.error=T,f.document.get().docId,y.id,b())},g=(f,y)=>{const T=new Set(y.map(D=>D.id));y.forEach(D=>{D.watch&&f.watchers.push(D.watch(R=>f.closed?!1:f.ready&&R?.content!==void 0&&pi({hasUnsavedUserEdit:f.document.isDirty()})==="skip"?(f.document.get().docId,D.id,!1):(R&&f.reports.set(D.id,R),pt(f,R),!0)))});const O=(D,R)=>{f.closed||(R&&f.reports.set(D.id,R),pt(f,R))},x=()=>{T.size>0||f.closed||(Xn(f),S(f,[]))},q=[];if(y.forEach(D=>{let R;try{R=D.load()}catch(U){E(f,D,U),T.delete(D.id);return}if(Ai(R)){q.push({id:D.id,required:D.required,load:()=>R});return}O(D,R),T.delete(D.id)}),q.length===0){x();return}f.timer=setTimeout(()=>{f.timer=void 0,u?.([...T]),f.document.get().docId,[...T],S(f,[...T])},n),f.timer.unref?.(),q.forEach(D=>{D.load().then(R=>O(D,R)).catch(R=>{E(f,D,R)}).finally(()=>{T.delete(D.id),x()})})},_=async(f,y,T)=>{if(T==="snapshot"||T==="anchor")return;const O=o?.();if(O)return O.resolve({project:y.project??f.project,tags:(f.tags??[]).map(x=>({name:x}))})},v=f=>{if(f.lock===!0&&i?.(f)===!1)return new Bn("locked");const y=f.tags?.length??0,T=f.emailtags?.length??0;if(Math.max(y,T)>Ii)return new Bn("too-many-tags")},I=async(f,y,T)=>{try{await f.document.whenReady()}catch(R){return f.saveError=R,f.saveFailures+=1,f.saveFailures,!1}if(f.closed)return!1;const O=v(f.document.get().attributes);if(O)return f.saveError=O,f.saveFailures+=1,O.reason,b(),!1;if(c&&(await c(Pi(f)).catch(()=>{}),f.closed))return!1;let x;try{x=await _(f.document.get().attributes,T,y)}catch(R){return f.saveError=R,f.saveFailures+=1,f.saveFailures,b(),!1}if(f.closed)return!1;const{payload:q,version:D}=gi(f.document,T,x);f.document.get().docId;try{const R=f.document.get().serverId!=null,U=await Ei(r(),s(f.request.key),y,f.document.get().serverId,q);if(f.closed)return!0;let M;if(y==="snapshot"||y==="anchor"){const L=U?.modified!=null?Date.parse(U.modified):NaN;M=Number.isFinite(L)?L:Date.now(),f.snapshotVersion=D,f.lastRevisionAt=M}else f.document.markSaved(D,U?.id!=null?String(U.id):void 0);const G=f.document.get().serverId;!R&&G!=null&&(f.recoveryFacts={emailId:G,historyLoaded:!0,isRecovering:!1}),f.saveError=void 0,f.saveFailures=0,f.document.get().serverId,b();const ae={intent:y,serverId:f.document.get().serverId,created:!R,...M!==void 0?{revisionAt:M}:{}};return m.forEach(L=>L(ae)),!0}catch(R){return f.saveError=R,f.saveFailures+=1,f.saveFailures,b(),!1}},A=()=>{d&&(d.closed=!0,d.watchers.forEach(f=>f()),d.watchers=[],Xn(d),d.history.dispose(),d.document.dispose(),d=void 0)},P=(f,y,T)=>{let O=!1;y.show&&(f.show?.id!==y.show.id||f.show.token!==y.show.token)&&(f.show=y.show,O=!0,{docId:f.document.get().docId,...y.show});const x=T==="show"?Kn(y.patch):null;x&&(f.reports.set("plugin",x),pt(f,x)),O&&b()},h=(f,y={})=>{const T=d;return!T||T.closed?Promise.resolve(!1):T.saving?f==="snapshot"?Promise.resolve(!1):(T.inFlight??Promise.resolve(!1)).then(()=>h(f,y)):(T.saving=!0,T.inFlight=I(T,f,y).finally(()=>{T.saving=!1,T.inFlight=void 0}),T.inFlight)},w=(f,y="open")=>{if(d&&!d.closed&&y!=="new"&&wi(d.request,f))return P(d,f,y),d.document;A();const T=ti({createBuffer:()=>qo(""),serverId:f.serverId??null}),O={request:f,show:f.show,document:T,history:si(T,{now:Date.now}),watchers:[],saveFailures:0,saving:!1,reports:new Map,ready:!1,closed:!1};return d=O,T.get().docId,f.serverId,g(O,t(f,{publishRecoveryFacts(x){O.closed||(O.recoveryFacts=x,b())},readShownContent:()=>O.closed?null:O.document.getContent()})),b(),T};return{openWith:w,open:(f,y={})=>w({key:Se(f),serverId:f,email:y.email,patch:y.patch,show:y.show},"open"),openDraft:(f,y={})=>w({key:Se(void 0),serverId:null,email:f,patch:y.patch,show:y.show},"open"),startNewDraft:(f,y={})=>w({key:Se(void 0),serverId:null,email:f,patch:y.patch,show:y.show},"new"),reload:(f,y={})=>w({key:Se(f),serverId:f,email:y.email,patch:y.patch,show:y.show},"new"),openBlock:(f,y)=>w({key:ne(f)?f:di(f),serverId:y?.id!=null?String(y.id):null,email:y},"open"),show:(f,y)=>{const T=d;if(!(!T||T.closed))return w({...T.request,patch:f,show:y},"show")},current:()=>d?.document,save:h,saveState:()=>({error:d?.saveError,failures:d?.saveFailures??0,saving:d?.saving===!0}),revisionFacts(){if(!d)return;const f=d.revisionFactsSnapshot;return f&&f.snapshotVersion===d.snapshotVersion&&f.lastRevisionAt===d.lastRevisionAt?f:(d.revisionFactsSnapshot={snapshotVersion:d.snapshotVersion,lastRevisionAt:d.lastRevisionAt},d.revisionFactsSnapshot)},recoveryFacts:()=>d?.recoveryFacts,history:()=>d?.history,forcedHeaders:()=>d?.forcedHeaders,beginForcedHeaders(f){d&&!d.closed&&(d.forcedHeaders=f)},endForcedHeaders(){d&&(d.forcedHeaders=void 0)},onSaved(f){return m.add(f),()=>m.delete(f)},showFacts:()=>d?.show,sessionKey:()=>d?.request.key,openError:()=>d?.error,subscribe(f){return p.add(f),()=>p.delete(f)},close(){d&&(A(),b())}}}var Qn=class extends Error{reason;constructor(e,t){super(`письмо не открылось: ${e}`),this.name="EmailOpenFailedError",this.reason=e,this.cause=t}};function Zn(e){if(e instanceof Qn)return e.reason;if(e instanceof ke)return Zn(e.reason)}function Ri(e,t){return{id:"rest",required:!0,load:async()=>{const n=await e.readEmail(t);if(!n)throw new Qn("not-found");return qn(n)}}}var er=a.createIdentifier$1("EmailPort");function Oi(e){return e.getInstance(er)}function Li(e,t){e.inject(er,t)}var tr=a.createIdentifier$1("documentSession.restEmailPortFactories");function nr(e){return e.getInstance(tr)!==void 0}function le(e){const t=e.getInstance(tr);if(!t)throw new Error("[documentSession] порты поверх REST ещё не загружены — работа с сервером начинается с init()");return t}var Ni=a.createIdentifier$1("EmailTermsResolver");function xi(e){return e.getInstance(Ni)}var rr=a.createIdentifier$1("EmailHistoryPort"),Mi=a.createIdentifier$1("BlockHistoryPort");function sr(e){return e.getInstance(Mi)}function or(e){return e.getInstance(rr)}function Fi(e,t){e.inject(rr,t)}var ki="em_autosave_pending",zp=6e4;function je(e){return`${ki}_${e}`}function Bi(e,t){try{sessionStorage.setItem(je(e),JSON.stringify(t))}catch{}}function ji(e){try{const t=sessionStorage.getItem(je(e));if(!t)return null;const n=JSON.parse(t);return Date.now()-n.sentAt>6e4?(sessionStorage.removeItem(je(e)),null):n}catch{return null}}function Ue(e){try{sessionStorage.removeItem(je(e))}catch{}}var Ui=2e3,Hi=5e3,$i=5,Gi=5e3,Vi=4;function Yi(){return typeof performance<"u"&&typeof performance.timeOrigin=="number"?performance.timeOrigin:Date.now()}function zi(e,t){return e==null||t==null?!1:e.replaceAll(`\r
2078
+ __useblocks__.define("useblocks.js",["require","exports","module","static/umd/a6c87b84.js"],function(co,K,Up){Object.defineProperties(K,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var gn=Object.defineProperty,En=(e,t)=>{let n={};for(var r in e)gn(n,r,{get:e[r],enumerable:!0});return t||gn(n,Symbol.toStringTag,{value:"Module"}),n};const a=co("./static/umd/a6c87b84.js");var uo=new Function("url","return import(url)");function fo(e){if(typeof e!="function")return!1;try{return Reflect.construct(String,[],e),!0}catch{return!1}}function po(e){return typeof e=="object"&&e!==null&&"type"in e&&"url"in e}function mo(e){return e.type==="umd"||e.resolve==="registry"}function Hp(e){return e}var ho=class{_context;_pluginRegistry;_options;_map=new Map;_optionsMap=new Map;_readyMap=new Map;_resolveMap=new Map;_initializingPlugins=new Map;_creatingPlugins=new Set;_initializedPlugins=new Set;_creationOrder=[];_lifecycleListeners=new Set;_activated=!1;constructor(e,t,n={}){this._context=e,this._pluginRegistry=t,this._options=n}activate(){return this._activated=!0,this._startPluginsBatch(Array.from(this._map.values()))}activateSync(){this._activated=!0,this._startPluginsBatch(Array.from(this._map.values()))}onLifecycle(e){return this._lifecycleListeners.add(e),{dispose:()=>this._lifecycleListeners.delete(e)}}_emitLifecycle(e){for(const t of Array.from(this._lifecycleListeners))try{t(e)}catch{}}async _resolveEntry(e){if(typeof e=="string"||typeof e=="symbol"){const t=await this._pluginRegistry.getAsync(e);if(!t)throw new Error(`Plugin "${String(e)}" not registered.`);return{ctor:t}}if(typeof e=="function")return e.length===0?{ctor:await e()}:{ctor:e};if(Array.isArray(e)){const[t,n]=e;if(typeof t=="function")return{ctor:t,options:n};const r=await this._pluginRegistry.getAsync(t);if(!r)throw new Error(`Plugin "${String(t)}" not registered.`);return{ctor:r,options:n}}if(po(e))return this._resolveDescriptor(e);throw new Error(`Unknown plugin entry format: ${JSON.stringify(e)}`)}async _resolveDescriptor(e){const t=e.resolve??(e.type==="umd"?"window":"module");if(mo(e)&&await this._options.ensureHostRuntimeReady?.(e),e.type==="esm"){const n=await uo(e.url);if(t==="module")return{ctor:n.default??n};if(t==="registry"&&e.name){const r=await this._pluginRegistry.getAsync(e.name);if(!r)throw new Error(`Plugin "${e.name}" not found in registry after ESM load`);return{ctor:r}}}if(e.type==="umd"){if(await this._loadScript(e.url),t==="window"&&e.name){const n=globalThis[e.name];if(!n)throw new Error(`Plugin "${e.name}" not found on window after script load`);return{ctor:n}}if(t==="registry"&&e.name){const n=await this._pluginRegistry.getAsync(e.name);if(!n)throw new Error(`Plugin "${e.name}" not found in registry after script load`);return{ctor:n}}}throw new Error(`Cannot resolve descriptor: type=${e.type}, resolve=${t}, name=${e.name??"none"}`)}_loadScript(e){return new Promise((t,n)=>{if(typeof document>"u"){n(new Error("Cannot load UMD script in non-browser environment"));return}const r=document.createElement("script");r.src=e,r.onload=()=>t(),r.onerror=()=>n(new Error(`Failed to load script: ${e}`)),document.head.appendChild(r)})}initSync(e){const t=[];for(const n of e){const r=this._getOrCreate(n,void 0);t.push(r)}this._activated=!0,this._startPluginsBatch(t)}async init(e){const t=[],n=new Set;for(const r of e){const{ctor:s,options:o}=await this._resolveEntry(r),i=this._getOrCreate(s,o);n.has(i)||(n.add(i),t.push(i))}this._activated=!0,await this._startPluginsBatch(t)}async setPlugins(e){const t=new Set,n=[];for(const i of e){const c=await this._resolveEntry(i);t.add(c.ctor),n.push(c)}const r=[];this._map.forEach((i,c)=>{t.has(c)||r.push({key:c,plugin:i})});for(let i=r.length-1;i>=0;i--){const{key:c,plugin:l}=r[i];await this._initializingPlugins.get(l),await this._disposePlugin(l,l.constructor.name),this._map.delete(c),this._optionsMap.delete(c),this._readyMap.delete(l),this._resolveMap.delete(l),this._initializingPlugins.delete(l),this._initializedPlugins.delete(l);const u=this._creationOrder.indexOf(l);u>=0&&this._creationOrder.splice(u,1)}const s=[],o=new Set;for(const{ctor:i,options:c}of n){const l=this._getOrCreate(i,c);o.has(l)||(o.add(l),s.push(l))}this._activated&&await this._startPluginsBatch(s)}isReady(e){return this._initializedPlugins.has(e)}ready(e){return this._initializingPlugins.get(e)??this._readyMap.get(e)??Promise.resolve()}async waitFor(e,t){if(this._pluginRegistry.has(e))return this.useByKeyAsync(e);const{timeout:n}=t??{};return await new Promise((r,s)=>{let o,i=!1;const c=()=>{i||(i=!0,o&&clearTimeout(o),this._pluginRegistry.off(e,c),r())};this._pluginRegistry.on(e,c),n!==void 0&&n>0&&(o=setTimeout(()=>{i||(i=!0,this._pluginRegistry.off(e,c),s(new Error(`waitFor("${String(e)}") timed out after ${n}ms`)))},n))}),this.useByKeyAsync(e)}useByKey(e){const t=this._pluginRegistry.get(e);if(!t)throw new Error(`Plugin "${String(e)}" not registered or not loaded yet. Use useByKeyAsync() for async plugins.`);const n=this._getOrCreate(t);return this._activated&&this._startPluginsBatch([n]),n}async useByKeyAsync(e){const t=await this._pluginRegistry.getAsync(e);if(!t)throw new Error(`Plugin "${String(e)}" not registered.`);const n=this._getOrCreate(t);return this._activated&&await this._startPluginsBatch([n]),n}useByCtor(e,t){const n=this._getOrCreate(e,t);return this._activated&&this._startPluginsBatch([n]),n}use(e){return typeof e=="function"?this.useByCtor(e):this.useByKey(e)}async useAsync(e){const{ctor:t,options:n}=await this._resolveEntry(e),r=this._getOrCreate(t,n);return this._activated&&await this._startPluginsBatch([r]),r}_getOrCreate(e,t){const n=e;if(!this._map.has(n)){t!==void 0&&this._optionsMap.set(n,t);const r=this._optionsMap.get(n),s=this._createPluginInstance(e,r),o=s.constructor.name;this._emitLifecycle({type:"created",plugin:s,name:o}),s.required?.(),this._map.set(n,s),this._creationOrder.push(s),this._setupReadyPromise(s)}return this._map.get(n)}_createPluginInstance(e,t){const n=e;if(this._creatingPlugins.has(n))throw new Error(`Cyclic dependency for plugin ${e.name}`);this._creatingPlugins.add(n);try{return fo(e)?new e(this._context,t):e(this._context,t)||{}}finally{this._creatingPlugins.delete(n)}}_setupReadyPromise(e){const t=new Promise(n=>{this._resolveMap.set(e,n)});this._readyMap.set(e,t)}async _startPluginsBatch(e){const t=Array.from(new Set(e)),n=new Set,r=[];for(const s of t){if(this._initializedPlugins.has(s))continue;const o=this._initializingPlugins.get(s);if(o){n.add(o);continue}r.push(s)}if(r.length>0){const s=this._runBatchLifecycle(r);for(const o of r)this._initializingPlugins.set(o,s);n.add(s),s.finally(()=>{for(const o of r)this._initializingPlugins.get(o)===s&&this._initializingPlugins.delete(o)})}await Promise.all(n)}async _runBatchLifecycle(e){const t=[];for(const n of e){const r=n.constructor.name;this._emitLifecycle({type:"init:start",plugin:n,name:r});try{await n.init?.(),this._emitLifecycle({type:"init:success",plugin:n,name:r}),t.push(n)}catch(s){this._emitLifecycle({type:"init:error",plugin:n,name:r,error:s})}}for(const n of t){const r=n.constructor.name;this._emitLifecycle({type:"afterInit:start",plugin:n,name:r});try{await n.afterInit?.(),this._emitLifecycle({type:"afterInit:success",plugin:n,name:r})}catch(s){this._emitLifecycle({type:"afterInit:error",plugin:n,name:r,error:s})}}for(const n of e)this._initializedPlugins.add(n),this._resolveMap.get(n)?.(),this._resolveMap.delete(n)}async _disposePlugin(e,t){this._emitLifecycle({type:"dispose:start",plugin:e,name:t});try{await e.dispose?.(),this._emitLifecycle({type:"dispose:success",plugin:e,name:t})}catch(n){this._emitLifecycle({type:"dispose:error",plugin:e,name:t,error:n})}}async dispose(){for(let e=this._creationOrder.length-1;e>=0;e--){const t=this._creationOrder[e];await this._initializingPlugins.get(t),await this._disposePlugin(t,t.constructor.name)}this._map.clear(),this._optionsMap.clear(),this._readyMap.clear(),this._resolveMap.clear(),this._initializingPlugins.clear(),this._initializedPlugins.clear(),this._creationOrder.length=0,this._lifecycleListeners.clear()}getStatus(){return Array.from(this._map.values()).map(e=>({name:e.constructor.name,initialized:this._initializedPlugins.has(e)}))}},go=class{_plugins=new Map;_listeners=new Map;_getOrCreateEntry(e){let t=this._plugins.get(e);return t||(t={overrides:[]},this._plugins.set(e,t)),t}_applyOverrides(e,t){const n=this._plugins.get(e);if(n?.overrides)for(const r of n.overrides)t=r(t)||t;return t}_notifyListeners(e,t){const n=this._listeners.get(e);if(!n||n.length===0)return;for(const s of n)try{s.callback(t)}catch{}const r=n.filter(s=>!s.once);r.length>0?this._listeners.set(e,r):this._listeners.delete(e)}get(e){const t=this._plugins.get(e);if(t?.ctor)return this._applyOverrides(e,t.ctor)}async getAsync(e){const t=this._plugins.get(e);if(t?.ctor)return this._applyOverrides(e,t.ctor);if(t?.loading){const n=await t.loading;return this._applyOverrides(e,n)}if(t?.factory){const n=Promise.resolve(t.factory()).then(s=>(t.ctor=s,t.loading=void 0,this._notifyListeners(e,s),s));t.loading=n;const r=await n;return this._applyOverrides(e,r)}return new Promise(n=>{this.on(e,r=>n(this._applyOverrides(e,r)))})}add(e,t){const n=this._getOrCreateEntry(e);n.ctor=t,this._notifyListeners(e,t)}addAll(e){for(const t of Object.keys(e)){const n=e[t];n!==void 0&&this.add(t,n)}}addAsync(e,t){const n=this._getOrCreateEntry(e);return n.factory=t,{dispose:()=>{n.ctor||(n.factory=void 0)}}}has(e){const t=this._plugins.get(e);return!!(t?.ctor||t?.factory)}isLoaded(e){return!!this._plugins.get(e)?.ctor}override(e,t){const n=this._getOrCreateEntry(e);return n.overrides.push(t),{dispose:()=>{const r=n.overrides.indexOf(t);r>=0&&n.overrides.splice(r,1)}}}on(e,t){const n=this.get(e);n&&t(n);let r=this._listeners.get(e);r||(r=[],this._listeners.set(e,r));const s={callback:t,once:!1};return r.push(s),{dispose:()=>this._removeListener(e,t)}}once(e,t){const n=this.get(e);if(n)return t(n),{dispose:()=>{}};let r=this._listeners.get(e);r||(r=[],this._listeners.set(e,r));const s={callback:t,once:!0};return r.push(s),{dispose:()=>this._removeListener(e,t)}}off(e,t){this._removeListener(e,t)}_removeListener(e,t){const n=this._listeners.get(e);if(n){const r=n.findIndex(s=>s.callback===t);r>=0&&n.splice(r,1),n.length===0&&this._listeners.delete(e)}}keys(){return Array.from(this._plugins.keys())}forContext(){const e=this;return{add(t,n){e.add(t,n)}}}},Eo=class{resolveRegistry;constructor(e){this.resolveRegistry=e}target(){return this.resolveRegistry()}get(e){return this.target().get(e)}getAsync(e){return this.target().getAsync(e)}add(e,t){return this.target().add(e,t)}addAll(e){return this.target().addAll(e)}addAsync(e,t){return this.target().addAsync(e,t)}has(e){return this.target().has(e)}isLoaded(e){return this.target().isLoaded(e)}override(e,t){return this.target().override(e,t)}on(e,t){return this.target().on(e,t)}once(e,t){return this.target().once(e,t)}off(e,t){return this.target().off(e,t)}keys(){return this.target().keys()}forContext(){return this.target().forContext()}},bn=class{capacity;items=[];constructor(e){this.capacity=e}push(e){this.items.length>=this.capacity&&this.items.shift(),this.items.push(e)}snapshot(){return this.items.slice()}size(){return this.items.length}clear(){this.items=[]}};function bo(e,t){return t+e}function vo(){return typeof performance>"u"?Date.now():bo(performance.now(),performance.timeOrigin)}var _o="emailmaker:diagnostics",yo="diagnostics",So="diagnostics";function vn(e,t){return t?`${e}${e.includes("?")?"&":"?"}${So}=1`:e}var nt;function Io(){try{const e=new URLSearchParams(window.location.search).get(yo);return e===null?void 0:e!=="0"}catch{return}}function wo(){const e=window.__DIAGNOSTICS__;return typeof e=="boolean"?e:void 0}function To(){try{const e=window.localStorage.getItem(_o);return e===null?void 0:e==="1"}catch{return}}function _e(){return nt===void 0&&(nt=typeof window>"u"?!1:Io()??wo()??To()??!1),nt}function Ao(e){return`__${(e||"useblocks").toLowerCase().replaceAll("-","")}__`}var q={initStart:"loader:init:start",coreReady:"loader:core:ready",initEnd:"loader:init:end",chunksLoaded:"app:chunks:loaded",showStart:"show:start",showEnd:"show:end",canvasCreated:"canvas:created",canvasLoaded:"canvas:loaded",canvasPainted:"canvas:painted",appVisible:"app:visible",editorVisible:"editor:visible",canvasSettled:"canvas:settled"},$p=Object.values(q),Gp=[q.canvasPainted,q.canvasSettled,q.appVisible,q.editorVisible],Co=5e3,Po=3e3,_n="diagnosticsStore",xe,ye;function yn(){return{marks:new bn(Co),resources:new bn(Po)}}function Sn(){if(ye)return ye;const e=rt();return e?(ye=e[_n]??xe??yn(),e[_n]=ye,xe=void 0,ye):(xe??=yn(),xe)}function j(e,t){_e()&&Sn().marks.push({phase:e,at:vo(),...t})}function rt(){if(typeof __useblocks__<"u"&&__useblocks__)return __useblocks__;if(typeof window>"u")return;const e=window[Ao()];return e!==null&&typeof e=="object"?e:void 0}function Do(e){const t=e.length,n=Sn();return e.forEach(r=>n.marks.push(r)),e.length=0,t}function Ro(){const e=rt();return!e||!Array.isArray(e.diagnosticsBuffer)?0:Do(e.diagnosticsBuffer)}var Oo="Editor instance was destroyed and cannot be reused. A fresh instance will be created instead.";function In(){const e=new Error(Oo);return e.name="DestroyedInstanceError",e}function st(e,t){if(e===t)return!0;if(!e||!t||typeof e!="object"||typeof t!="object")return!1;const n=Array.isArray(e);if(n!==Array.isArray(t))return!1;if(n){const o=e,i=t;return o.length===i.length&&o.every((c,l)=>st(c,i[l]))}const r=Object.keys(e),s=Object.keys(t);return r.length!==s.length?!1:r.every(o=>Object.prototype.hasOwnProperty.call(t,o)&&st(e[o],t[o]))}function wn(e,t){const n={watch(r){let s,o=!1;return e.watch(i=>{const c=t(i);o&&st(s,c)||(s=c,o=!0,r(c))})},select(r){return wn(n,r)}};return n}function pe(...e){let t=e[0],n=e.length>0;const r=new Set,s={get(){return n?t:void 0},set(o){t=o,n=!0;for(const i of Array.from(r))i(o)},watch(o){return r.add(o),n&&o(t),{dispose:()=>r.delete(o)}},select(o){return wn(s,o)}};return s}var Tn=class{http;constructor(e){this.http=e}app_init_create=(e,t={})=>this.http.request({path:"/app/v1/app_init",method:"POST",body:e,type:a.ContentType.UrlEncoded,...t})},An=class{http;constructor(e){this.http=e}get_translations2=({file:e,...t},n={})=>this.http.request({path:`/translations/v1/${e}`,method:"GET",...n});get_translations3=({id:e,file:t,...n},r={})=>this.http.request({path:`/translations/v1/${t}/${e}`,method:"GET",...r})};function Lo(e){return String(e||"").trim()||void 0}var No=class extends a.Disposable{deps;_app;_baseUrl;_appInit;_restBaseUrl;_prevApp;constructor(e){super(),this.deps=e,this.addDisposable(e.options.select(t=>this._slice(t)).watch(t=>this._start(t)))}get app(){return this._app}_slice(e){return Object.prototype.hasOwnProperty.call(e,"baseUrl")&&(this._baseUrl=Lo(e.baseUrl)),Object.prototype.hasOwnProperty.call(e,"appInit")&&(this._appInit=e.appInit),{appInit:this._appInit,user:e.user,project:e.project,baseUrl:this._baseUrl,restBaseUrl:this.deps.resolveRestBaseUrl(this._baseUrl),standalone:this.deps.isStandalone()}}_start(e){if(this._restBaseUrl!==e.restBaseUrl&&(this._restBaseUrl=e.restBaseUrl,this.deps.setRestBaseUrl(e.restBaseUrl)),e.standalone)return;const t=e.appInit||this.deps.fallbackAppInit,n=Promise.resolve(t({baseUrl:e.baseUrl,user:e.user,project:e.project,prevApp:this._prevApp}));this._app=n,n.then(r=>{this._app===n&&(this._prevApp=r)},()=>{}),this.deps.publish(n)}},ot=a.createIdentifier$1("AppInitService");function xo(e){return async()=>{const t=await e();return(await new Tn(t).app_init_create({})).data}}function Mo(e){e.injectFactory(ot,()=>{const t=new No({options:e.getInstance(a.OPTIONS_SOURCE_ID),isStandalone:()=>!!e.getInstance(a.SECURITY_MODULE_ID),resolveRestBaseUrl:n=>n?a.getActiveBaseUrl(n):a.getActiveBaseUrl()||void 0,setRestBaseUrl:n=>{e.getInstance(a.REST_CLIENT_FACTORY_ID)?.setOptions(n?{baseUrl:n}:{})},fallbackAppInit:xo(()=>e.getInstanceAsync(a.REST_TRANSPORT_ID)),publish:n=>{e.inject(a.APP_ID,n)}});return e.getInstance(a.DISPOSABLE_ID)?.addDisposable(t),t},!0)}var it=a.createIdentifier$1("documentSession.emailDocuments");function at(e){return e?.getInstance(it)}var ko=a.createIdentifier$1("RevisionServiceFlag");function Fo(e){return e.getOrCreateInstance(ko,()=>{let t=!1;return{isEnabled:()=>t,set:n=>{t=n}}})}function Cn(e){return Fo(e).isEnabled()}var Bo=a.createIdentifier$1("EmailRightsResolver");function jo(e,t){const n=e.getInstance(Bo);return n?n(t):!0}var Pn=a.createIdentifier$1("EmailHistoryAvailabilityResolver");function Uo(e){return e.getInstance(Pn)!==void 0}async function Ho(e){const t=e.getInstance(Pn);if(!t)return!0;try{return await t()}catch{return!1}}var lt={INIT_START:5e3,SET_ENTITY:12e3,PREHEADER:5e3,SUBJECT:5e3,INITED:5e3,UPDATE_ENTITY:5e3},Dn=["INIT_START","SET_ENTITY","PREHEADER","SUBJECT","INITED"],Rn=2e4,$o=Dn.reduce((e,t)=>e+lt[t],0),On=Rn+$o+3e3;function Go(e){return Dn.reduce((t,n)=>t+Ln(n,e),0)}function Ln(e,t){const n=t?.[e];return typeof n=="number"&&n>0?n:lt[e]}function Nn(e){const t=e?.contentReady;return typeof t=="number"&&t>0?t:On}function xn(e){const t=e?.sandboxReady;return typeof t=="number"&&t>0?t:Rn}function Mn(e=On){return e+3e3}var Vp="[show-pipeline]";function Yp(e,t){}var Vo=()=>Mn();function Yo(e,t){let n;return Promise.race([e,new Promise(r=>{n=setTimeout(()=>{r()},t)})]).finally(()=>{n!==void 0&&clearTimeout(n)})}function qo(e){return t=>Yo(e.getOrCreateInstance(a.events.BEFORE_SAVE_EMAIL,()=>new a.AsyncEmitter).fire(t),Vo())}function zo(e){return e!=null&&e!==""}var Ko;function Me(e,t){return Ko?.capture(e,t)}function Wo(e=""){let t=e;return{read:()=>t,write:n=>{t=n},dispose:()=>{t=""}}}function ke(e){return e.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}var J=class{oldPosition;oldText;newPosition;newText;get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(e,t,n,r){this.oldPosition=e,this.oldText=t,this.newPosition=n,this.newText=r}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${ke(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${ke(this.oldText)}")`:`(replace@${this.oldPosition} "${ke(this.oldText)}" with "${ke(this.newText)}")`}};function kn(e,t){return e===null||e.length===0?t:new Xo(e,t).compress()}var Xo=class te{_prevEdits;_currEdits;_result;_resultLen;_prevLen;_prevDeltaOffset;_currLen;_currDeltaOffset;constructor(t,n){this._prevEdits=t,this._currEdits=n,this._result=[],this._resultLen=0,this._prevLen=this._prevEdits.length,this._prevDeltaOffset=0,this._currLen=this._currEdits.length,this._currDeltaOffset=0}compress(){let t=0,n=0,r=this._getPrev(t),s=this._getCurr(n);for(;t<this._prevLen||n<this._currLen;){if(r===null){if(s===null)break;this._acceptCurr(s),s=this._getCurr(++n);continue}if(s===null){this._acceptPrev(r),r=this._getPrev(++t);continue}if(s.oldEnd<=r.newPosition){this._acceptCurr(s),s=this._getCurr(++n);continue}if(r.newEnd<=s.oldPosition){this._acceptPrev(r),r=this._getPrev(++t);continue}if(s.oldPosition<r.newPosition){const[l,u]=te._splitCurr(s,r.newPosition-s.oldPosition);this._acceptCurr(l),s=u;continue}if(r.newPosition<s.oldPosition){const[l,u]=te._splitPrev(r,s.oldPosition-r.newPosition);this._acceptPrev(l),r=u;continue}let i,c;if(s.oldEnd===r.newEnd)i=r,c=s,r=this._getPrev(++t),s=this._getCurr(++n);else if(s.oldEnd<r.newEnd){const[l,u]=te._splitPrev(r,s.oldLength);i=l,c=s,r=u,s=this._getCurr(++n)}else{const[l,u]=te._splitCurr(s,r.newLength);i=r,c=l,r=this._getPrev(++t),s=u}this._result[this._resultLen++]=new J(i.oldPosition,i.oldText,c.newPosition,c.newText),this._prevDeltaOffset+=i.newLength-i.oldLength,this._currDeltaOffset+=c.newLength-c.oldLength}const o=te._merge(this._result);return te._removeNoOps(o)}_acceptCurr(t){this._result[this._resultLen++]=te._rebaseCurr(this._prevDeltaOffset,t),this._currDeltaOffset+=t.newLength-t.oldLength}_getCurr(t){return t<this._currLen?this._currEdits[t]:null}_acceptPrev(t){this._result[this._resultLen++]=te._rebasePrev(this._currDeltaOffset,t),this._prevDeltaOffset+=t.newLength-t.oldLength}_getPrev(t){return t<this._prevLen?this._prevEdits[t]:null}static _rebaseCurr(t,n){return new J(n.oldPosition-t,n.oldText,n.newPosition,n.newText)}static _rebasePrev(t,n){return new J(n.oldPosition,n.oldText,n.newPosition+t,n.newText)}static _splitPrev(t,n){const r=t.newText.substr(0,n),s=t.newText.substr(n);return[new J(t.oldPosition,t.oldText,t.newPosition,r),new J(t.oldEnd,"",t.newPosition+n,s)]}static _splitCurr(t,n){const r=t.oldText.substr(0,n),s=t.oldText.substr(n);return[new J(t.oldPosition,r,t.newPosition,t.newText),new J(t.oldPosition+n,s,t.newEnd,"")]}static _merge(t){if(t.length===0)return t;const n=[];let r=0,s=t[0];for(let o=1;o<t.length;o++){const i=t[o];s.oldEnd===i.oldPosition?s=new J(s.oldPosition,s.oldText+i.oldText,s.newPosition,s.newText+i.newText):(n[r++]=s,s=i)}return n[r++]=s,n}static _removeNoOps(t){if(t.length===0)return t;const n=[];let r=0;for(let s=0;s<t.length;s++){const o=t[s];o.oldText!==o.newText&&(n[r++]=o)}return n}};function Jo(e){return new J(e.newPosition,e.newText,e.oldPosition,e.oldText)}function Qo(e){return e.map(Jo)}function Fn(e,t){return t.every(n=>e.slice(n.oldPosition,n.oldEnd)===n.oldText)}function Zo(e,t){let n=e;for(let r=t.length-1;r>=0;r-=1){const s=t[r];n=n.slice(0,s.oldPosition)+s.newText+n.slice(s.oldEnd)}return n}function ei(e,t,n){let r=0;const s=e.start===e.end;for(const o of t){const i=o.newLength-o.oldLength;if(o.oldLength===0){const c=o.oldPosition;if(s&&c===e.start)r+=n==="after"?i:0;else{if(e.start<c&&c<e.end)return null;c<=e.start&&(r+=i)}continue}if(s){if(e.start>=o.oldEnd)r+=i;else if(e.start>o.oldPosition)return null;continue}if(e.start>=o.oldEnd)r+=i;else if(e.end>o.oldPosition)return null}return{start:e.start+r,end:e.end+r}}var Fe=class extends Error{reason;constructor(e){super("Открытие документа не удалось"),this.reason=e,this.name="DocumentOpenFailedError"}},Bn=0,ti=Math.random().toString(36).slice(2,8);function ni(){return Bn+=1,`doc-${ti}-${Bn}`}function ri(e){const t=e.createBuffer(),n=e.docId??ni();let r=e.serverId??null,s=0,o=null,i=e.attributes??{};const c=new Set;let l=!1,u=!1,d;const p=new Set;let m=null;const b=()=>(m?.version!==s&&(m={version:s,value:t.read()}),m.value),S=E=>Object.entries(E).some(([g,v])=>i[g]!==v);return{get:()=>({docId:n,serverId:r,version:s,savedVersion:o,attributes:i}),getContent:b,mutate(E,{source:g}){if(l)return s;const v=E.changes?.length?E.changes:void 0,_=v?Zo(b(),v):E.content!==void 0?E.content:void 0,I=_!==void 0&&_!==b(),A=E.attributes!==void 0&&S(E.attributes);if(!I&&!A)return s;const P=!(s>(o??-1));return I&&t.write(_),A&&(i={...i,...E.attributes}),s+=1,g!=="user"&&P&&(o=s),c.forEach(h=>h({source:g,version:s,changes:v})),s},markSaved(E,g){const v={serverId:r,savedVersion:o};g!==void 0&&(r=g),(o===null||E>o)&&(o=E),(v.serverId!==r||v.savedVersion!==o)&&c.forEach(_=>_({source:"system",version:s}))},markReady(){u||d!==void 0||(u=!0,p.forEach(E=>E.resolve()),p.clear(),c.forEach(E=>E({source:"system",version:s})))},isReady:()=>u,markFailed(E){u||d!==void 0||l||(d=E,p.forEach(g=>g.reject(new Fe(E))),p.clear(),c.forEach(g=>g({source:"system",version:s})))},failure:()=>d,whenReady(){return u?Promise.resolve():d!==void 0?Promise.reject(new Fe(d)):l?Promise.reject(new Error("Документ закрыт до того, как наполнение закончилось")):new Promise((E,g)=>{p.add({resolve:E,reject:g})})},subscribe(E){return c.add(E),()=>c.delete(E)},isNew:()=>r===null,isDirty:()=>s>(o??-1),isDisposed:()=>l,dispose(){l=!0,p.forEach(E=>E.reject(new Error("Документ закрыт до того, как наполнение закончилось"))),p.clear(),c.clear(),t.dispose()}}}var si=500,oi=100,ct=0;function ii(e,t={}){const n=t.groupIntervalMs??si,r=t.maxSteps??oi,s=t.now??(()=>0);let o=[],i=0,c=ct+=1,l=null,u=!1,d=!1,p=!1;const m=new Set,b=()=>m.forEach(h=>h()),S=(h,w)=>{if(h.length){d=!0;try{e.mutate({changes:h},{source:w})}finally{d=!1}}},E=h=>S(h,"user"),g=h=>{const w=s();u&&l!==null&&w-l<n?o[i-1]=kn(o[i-1],h):(o=o.slice(0,i),o.push(h),i=o.length,u=!0,o.length>r&&(o=o.slice(o.length-r),i=o.length,c=ct+=1)),l=w,b()},v=()=>{u=!1,l=null},_=h=>{if(!h.length)return;const w=o.length>i;w&&(o=o.slice(0,i)),i>0&&(o[i-1]=kn(o[i-1],h)),v(),w&&b()},I=e.subscribe(({source:h,changes:w})=>{if(!(p||d||!w?.length)){if(h==="remote"){A();return}if(h!=="user"){_(w);return}g(w)}}),A=()=>{o=[],i=0,v(),c=ct+=1,b()},P=()=>{if(i===0)return!1;const h=Qo(o[i-1]);return Fn(e.getContent(),h)?(E(h),i-=1,v(),!0):(o=o.slice(0,i-1),i=o.length,v(),b(),!1)};return{canUndo:()=>i>0,canRedo:()=>i<o.length,undo(){P()&&b()},redo(){if(!(i>=o.length)){if(!Fn(e.getContent(),o[i])){o=o.slice(0,i),v(),b();return}E(o[i]),i+=1,v(),b()}},clear:A,applyWithoutHistory(h){const w=e.get().version;if(S(h,"system"),e.get().version===w){v();return}_(h)},getPast:h=>o.slice(0,i).reverse().slice(0,h),getFuture:h=>o.slice(i).reverse().slice(0,h),createSnapshot:()=>({stackId:c,index:i}),restoreSnapshot(h){if(h.stackId!==c||h.index>i)return!1;for(;i>h.index;)if(!P())return b(),!1;return b(),!0},subscribe(h){return m.add(h),()=>m.delete(h)},dispose(){p=!0,I(),m.clear(),o=[],i=0}}}var ai=["edit","move","resize","insert"];function dt(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}function li(e){return typeof e=="string"?e:null}function ci(e){return!Array.isArray(e)||!e.every(t=>typeof t=="string")?null:e}function di(e){return ai.includes(e)?e:null}function ui(e){const t=typeof e=="object"&&e!==null?e:{},n={originId:li(t.originId),changeId:dt(t.changeId),rev:dt(t.rev),baseRev:dt(t.baseRev),expected:ci(t.expected),intent:di(t.intent)};return{...n,legacy:Object.values(n).every(r=>r===null)}}var jn=class extends Error{reason;constructor(e){super(`сохранение не состоялось: ${e}`),this.name="SaveRefusedError",this.reason=e}},Un="draft";function Se(e){return e==null||e===""?Un:String(e)}function fi(e){return e==null||e===""?`${ut}${Un}`:`${ut}${String(e)}`}var ut="block:";function ne(e){return e?.startsWith(ut)===!0}function Ie(e){return ne(e.sessionKey())?void 0:e.current()}function qp(e,t){}function we(e,t,n){const r=typeof performance<"u"?performance.now():Date.now();return j(`show:gate:${e}`,{kind:"wait"}),t.then(s=>(j(`show:gate:${e}:end`,{kind:"wait"}),s),s=>{const o=Math.round((typeof performance<"u"?performance.now():Date.now())-r);throw`${e}`,{error:String(s),...n},s})}var zp=5e3;function Hn(e){return e?.length?[...e].sort((t,n)=>Date.parse(n.modified)-Date.parse(t.modified))[0]:null}function $n(e,{freshSince:t}={}){return!(!e?.slug?.includes("autosave")||!e?.html?.trim()||t!==void 0&&Date.parse(e.modified)<t-5e3)}function pi(e,t={}){const n=Hn((e??[]).filter(r=>r?.html?.trim()));return $n(n,t)?n:null}function mi(e){const t=Date.parse(Hn(e)?.modified??"");return{autosave:pi(e),...Number.isFinite(t)?{latestAt:t}:{}}}function hi({hasUnsavedUserEdit:e}){return e?"skip":"apply"}var Gn=e=>e.replace(/\r\n?/g,`
2079
+ `),Vn=["recovery","plugin","rest"],gi=["subject","preheader"];function Ei(e){let t={},n;for(let s=Vn.length-1;s>=0;s--){const o=e.get(Vn[s]);o&&(o.attributes&&(t={...t,...o.attributes}),o.content!==void 0&&(n=o.content))}const r=e.get("plugin")?.attributes;for(const s of gi){const o=r?.[s];typeof o=="string"&&o!==""&&(t={...t,[s]:o})}return n!==void 0?{content:n,attributes:t}:{attributes:t}}function Yn(e,t){if(!e||!t)return;const n=e.getContent(),r=t.content!==void 0?Gn(t.content):void 0,s=r!==void 0&&r!==n;e.get().docId,Object.keys(t.attributes??{}),e.mutate({attributes:t.attributes??{},...s?{changes:[new J(0,n,0,r)]}:{}},{source:"remote"})}var qn=e=>typeof e=="string"?e.trim():"";function bi(e,t,n){const{version:r,attributes:s}=e.get(),o=s,i=qn(o.title)||qn(o.subject);return{version:r,payload:{html:e.getContent(),title:i,subject:o.subject,preheader:o.preheader,description:o.description,common_styles:o.common_styles||"",meta:o.meta,utm_parameters:o.utm_parameters,parent_email:o.parent_email,is_template:o.is_template||!1,is_inited:o.is_inited,tags:o.tags,emailtags:o.emailtags,group:o.group,renderGuid:e.get().docId,project:t.project??o.project,folder:t.folder,...n?.emailtags?{emailtags:n.emailtags}:{},...n?.group?{group:n.group}:{},source:t.source}}}async function vi(e,t,n,r,s){if(n==="materialize"||n==="publish"&&r==null)return e.createEmail(s);if(r==null)throw new Error("Письмо ещё не создано на сервере");return n==="publish"?e.updateEmail(r,s):t.saveAutosave(r,s)}function re(e,t=!1){const n={};for(const r of Object.keys(e)){let s=e[r];s!==void 0&&!(typeof s=="number"&&Number.isNaN(s))&&(t&&typeof s=="object"&&s!==null&&(s=re(s)),n[r]=s)}return n}var _i=new Set(["html","id","renderGuid","showToken","showId","isNew"]);function zn(e){return e?Object.fromEntries(Object.entries(e).filter(([t])=>!_i.has(t))):{}}function Be(e,t,n={}){e&&e.mutate({attributes:yi(e.get().attributes,t)},{source:n.source??"user"})}function yi(e,t){return t.subject===void 0||t.title!==void 0?t:(e.title??"")===(e.subject??"")?{...t,title:t.subject}:t}function ft(e,t){return e===void 0&&Object.keys(t).length===0?null:{...e!==void 0?{content:e}:{},attributes:t}}function Si(e){return typeof e=="string"&&e.startsWith("{")?e:"{}"}function Kn(e){if(!e)return null;const t=zn(e);return e.common_styles!==void 0&&(t.common_styles=Si(e.common_styles)),ft(e.html,t)}function Wn(e){return e?ft(e.html,re(zn(e))):null}var Ii=["common_styles","subject","preheader","meta"];function Xn(e){if(!e?.html?.trim())return null;const t={};for(const n of Ii)wi(n,e[n])&&(t[n]=e[n]);return ft(e.html,t)}function wi(e,t){return e==="common_styles"?typeof t=="string"&&t.startsWith("{"):e==="meta"?typeof t=="object"&&t!==null&&!Array.isArray(t):typeof t=="string"}var Ti=10,Ai=(e,t)=>e.key===t.key&&Ci(e.serverId,t.serverId),Ci=(e,t)=>e==null||e===t;function Pi(e){return typeof e?.then=="function"}var Jn=e=>{e.timer!==void 0&&(clearTimeout(e.timer),e.timer=void 0)},Qn=e=>{e.request.serverId!=null&&e.document.markSaved(e.document.get().version)},Di=e=>{Yn(e.document,Ei(e.reports)),Qn(e)},pt=(e,t)=>{if(!e.ready){Di(e);return}Yn(e.document,t)},Ri=e=>{const{attributes:t,serverId:n,docId:r}=e.document.get();return{...t,html:e.document.getContent(),id:n??void 0,isNew:n==null,renderGuid:r}};function Oi(e){const{resolveAdapters:t,timeoutMs:n,resolveWritePort:r,resolveHistoryPort:s,resolveTerms:o,canEdit:i,notifyBeforeSave:c,onAdapterError:l,onTimeout:u}=e;let d;const p=new Set,m=new Set,b=()=>p.forEach(f=>f()),S=(f,y)=>{if(!(f.closed||f.ready)){if(f.error!==void 0){f.document.markFailed(f.error),f.document.get().docId;return}Qn(f),f.ready=!0,f.document.markReady(),f.document.get().docId,[...f.reports.keys()]}},E=(f,y,T)=>{l?.(y.id,T),!(!y.required||f.closed)&&(f.error=T,f.document.get().docId,y.id,b())},g=(f,y)=>{const T=new Set(y.map(D=>D.id));y.forEach(D=>{D.watch&&f.watchers.push(D.watch(R=>f.closed?!1:f.ready&&R?.content!==void 0&&hi({hasUnsavedUserEdit:f.document.isDirty()})==="skip"?(f.document.get().docId,D.id,!1):(R&&f.reports.set(D.id,R),pt(f,R),!0)))});const O=(D,R)=>{f.closed||(R&&f.reports.set(D.id,R),pt(f,R))},x=()=>{T.size>0||f.closed||(Jn(f),S(f,[]))},z=[];if(y.forEach(D=>{let R;try{R=D.load()}catch(U){E(f,D,U),T.delete(D.id);return}if(Pi(R)){z.push({id:D.id,required:D.required,load:()=>R});return}O(D,R),T.delete(D.id)}),z.length===0){x();return}f.timer=setTimeout(()=>{f.timer=void 0,u?.([...T]),f.document.get().docId,[...T],S(f,[...T])},n),f.timer.unref?.(),z.forEach(D=>{D.load().then(R=>O(D,R)).catch(R=>{E(f,D,R)}).finally(()=>{T.delete(D.id),x()})})},v=async(f,y,T)=>{if(T==="snapshot"||T==="anchor")return;const O=o?.();if(O)return O.resolve({project:y.project??f.project,tags:(f.tags??[]).map(x=>({name:x}))})},_=f=>{if(f.lock===!0&&i?.(f)===!1)return new jn("locked");const y=f.tags?.length??0,T=f.emailtags?.length??0;if(Math.max(y,T)>Ti)return new jn("too-many-tags")},I=async(f,y,T)=>{try{await f.document.whenReady()}catch(R){return f.saveError=R,f.saveFailures+=1,f.saveFailures,!1}if(f.closed)return!1;const O=_(f.document.get().attributes);if(O)return f.saveError=O,f.saveFailures+=1,O.reason,b(),!1;if(c&&(await c(Ri(f)).catch(()=>{}),f.closed))return!1;let x;try{x=await v(f.document.get().attributes,T,y)}catch(R){return f.saveError=R,f.saveFailures+=1,f.saveFailures,b(),!1}if(f.closed)return!1;const{payload:z,version:D}=bi(f.document,T,x);f.document.get().docId;try{const R=f.document.get().serverId!=null,U=await vi(r(),s(f.request.key),y,f.document.get().serverId,z);if(f.closed)return!0;let M;if(y==="snapshot"||y==="anchor"){const L=U?.modified!=null?Date.parse(U.modified):NaN;M=Number.isFinite(L)?L:Date.now(),f.snapshotVersion=D,f.lastRevisionAt=M}else f.document.markSaved(D,U?.id!=null?String(U.id):void 0);const G=f.document.get().serverId;!R&&G!=null&&(f.recoveryFacts={emailId:G,historyLoaded:!0,isRecovering:!1}),f.saveError=void 0,f.saveFailures=0,f.document.get().serverId,b();const ae={intent:y,serverId:f.document.get().serverId,created:!R,...M!==void 0?{revisionAt:M}:{}};return m.forEach(L=>L(ae)),!0}catch(R){return f.saveError=R,f.saveFailures+=1,f.saveFailures,b(),!1}},A=()=>{d&&(d.closed=!0,d.watchers.forEach(f=>f()),d.watchers=[],Jn(d),d.history.dispose(),d.document.dispose(),d=void 0)},P=(f,y,T)=>{let O=!1;y.show&&(f.show?.id!==y.show.id||f.show.token!==y.show.token)&&(f.show=y.show,O=!0,{docId:f.document.get().docId,...y.show});const x=T==="show"?Wn(y.patch):null;x&&(f.reports.set("plugin",x),pt(f,x)),O&&b()},h=(f,y={})=>{const T=d;return!T||T.closed?Promise.resolve(!1):T.saving?f==="snapshot"?Promise.resolve(!1):(T.inFlight??Promise.resolve(!1)).then(()=>h(f,y)):(T.saving=!0,T.inFlight=I(T,f,y).finally(()=>{T.saving=!1,T.inFlight=void 0}),T.inFlight)},w=(f,y="open")=>{if(d&&!d.closed&&y!=="new"&&Ai(d.request,f))return P(d,f,y),d.document;A();const T=ri({createBuffer:()=>Wo(""),serverId:f.serverId??null}),O={request:f,show:f.show,document:T,history:ii(T,{now:Date.now}),watchers:[],saveFailures:0,saving:!1,reports:new Map,ready:!1,closed:!1};return d=O,T.get().docId,f.serverId,g(O,t(f,{publishRecoveryFacts(x){O.closed||(O.recoveryFacts=x,b())},readShownContent:()=>O.closed?null:O.document.getContent()})),b(),T};return{openWith:w,open:(f,y={})=>w({key:Se(f),serverId:f,email:y.email,patch:y.patch,show:y.show},"open"),openDraft:(f,y={})=>w({key:Se(void 0),serverId:null,email:f,patch:y.patch,show:y.show},"open"),startNewDraft:(f,y={})=>w({key:Se(void 0),serverId:null,email:f,patch:y.patch,show:y.show},"new"),reload:(f,y={})=>w({key:Se(f),serverId:f,email:y.email,patch:y.patch,show:y.show},"new"),openBlock:(f,y)=>w({key:ne(f)?f:fi(f),serverId:y?.id!=null?String(y.id):null,email:y},"open"),show:(f,y)=>{const T=d;if(!(!T||T.closed))return w({...T.request,patch:f,show:y},"show")},current:()=>d?.document,save:h,saveState:()=>({error:d?.saveError,failures:d?.saveFailures??0,saving:d?.saving===!0}),revisionFacts(){if(!d)return;const f=d.revisionFactsSnapshot;return f&&f.snapshotVersion===d.snapshotVersion&&f.lastRevisionAt===d.lastRevisionAt?f:(d.revisionFactsSnapshot={snapshotVersion:d.snapshotVersion,lastRevisionAt:d.lastRevisionAt},d.revisionFactsSnapshot)},recoveryFacts:()=>d?.recoveryFacts,history:()=>d?.history,forcedHeaders:()=>d?.forcedHeaders,beginForcedHeaders(f){d&&!d.closed&&(d.forcedHeaders=f)},endForcedHeaders(){d&&(d.forcedHeaders=void 0)},onSaved(f){return m.add(f),()=>m.delete(f)},showFacts:()=>d?.show,sessionKey:()=>d?.request.key,openError:()=>d?.error,subscribe(f){return p.add(f),()=>p.delete(f)},close(){d&&(A(),b())}}}var Zn=class extends Error{reason;constructor(e,t){super(`письмо не открылось: ${e}`),this.name="EmailOpenFailedError",this.reason=e,this.cause=t}};function er(e){if(e instanceof Zn)return e.reason;if(e instanceof Fe)return er(e.reason)}function Li(e,t){return{id:"rest",required:!0,load:async()=>{const n=await e.readEmail(t);if(!n)throw new Zn("not-found");return Kn(n)}}}var tr=a.createIdentifier$1("EmailPort");function Ni(e){return e.getInstance(tr)}function xi(e,t){e.inject(tr,t)}var nr=a.createIdentifier$1("documentSession.restEmailPortFactories");function rr(e){return e.getInstance(nr)!==void 0}function le(e){const t=e.getInstance(nr);if(!t)throw new Error("[documentSession] порты поверх REST ещё не загружены — работа с сервером начинается с init()");return t}var Mi=a.createIdentifier$1("EmailTermsResolver");function ki(e){return e.getInstance(Mi)}var sr=a.createIdentifier$1("EmailHistoryPort"),Fi=a.createIdentifier$1("BlockHistoryPort");function or(e){return e.getInstance(Fi)}function ir(e){return e.getInstance(sr)}function Bi(e,t){e.inject(sr,t)}var ji="em_autosave_pending",Kp=6e4;function je(e){return`${ji}_${e}`}function Ui(e,t){try{sessionStorage.setItem(je(e),JSON.stringify(t))}catch{}}function Hi(e){try{const t=sessionStorage.getItem(je(e));if(!t)return null;const n=JSON.parse(t);return Date.now()-n.sentAt>6e4?(sessionStorage.removeItem(je(e)),null):n}catch{return null}}function Ue(e){try{sessionStorage.removeItem(je(e))}catch{}}var $i=2e3,Gi=5e3,Vi=5,Yi=5e3,qi=4;function zi(){return typeof performance<"u"&&typeof performance.timeOrigin=="number"?performance.timeOrigin:Date.now()}function Ki(e,t){return e==null||t==null?!1:e.replaceAll(`\r
2080
2080
  `,`
2081
2081
  `)===t.replaceAll(`\r
2082
2082
  `,`
2083
- `)}function qi({emailId:e,readAutosave:t,revisionServiceEnabled:n,isHistoryAvailable:r,readShownContent:s,onFacts:o,onLate:i,onError:c,pageLoadTs:l=Yi()}){let u=null,d=!1,p=!1,m=0,b={emailId:e,historyLoaded:!1,isRecovering:!1},S=null;const E=new Promise(D=>{S=D}),g=D=>{b={...b,...D},o(b)},_=D=>{m+=1,g({applied:{phase:D,seq:m}})},v=()=>{u?.timer&&clearTimeout(u.timer),u=null},I=D=>{if(!p){if(S){const R=S;S=null,R(D),D.revision&&_(D.phase);return}i(D)&&D.revision&&_(D.phase)}},A=()=>{if(!u||p)return;const D=u.phase==="fast",R=D?Ui:Gi,U=D?$i:Vi;u.timer=setTimeout(()=>{const M=u;if(!(!M||p)){if(M.attempts+=1,y(),D&&M.attempts>=U){const{pending:G}=M;Ue(e),g({isRecovering:!1}),I({revision:{html:G.html,common_styles:G.common_styles,subject:G.subject,preheader:G.preheader},phase:"timeout"}),d=!0,M.phase="bg",M.attempts=0,A();return}if(!D&&M.attempts>=U){Ue(e),v(),g({isRecovering:!1}),d=!0;return}A()}},R),u.timer.unref?.()},P=D=>{u={phase:"fast",attempts:0,pending:D,timer:null},g({isRecovering:!0}),A()},h=(D,R)=>Hn(D.autosave,R===void 0?{}:{freshSince:R})?D.autosave:null,w=D=>{if(p)return;if(g({historyLoaded:!0,latestRevisionAt:D.latestAt!==void 0&&Number.isFinite(D.latestAt)?D.latestAt:void 0}),n&&u){const M=h(D,u.pending.sentAt);if(!M)return;const G=u.phase==="fast"?"found":"bg";Ue(e),v(),g({isRecovering:!1}),d=!0,I({revision:M,phase:G});return}if(d)return;const R=n?ji(e):null,U=R&&(R.sentAt<l||!zi(R.html,s()))?R:null;if(U){const M=h(D,U.sentAt);if(M){Ue(e),d=!0,I({revision:M,phase:"found"});return}P(U);return}d=!0,I({revision:h(D),phase:"normal"})},f=D=>{p||(c?.(D),b.historyLoaded||(g({historyLoaded:!1,latestRevisionAt:void 0}),x()),!u&&I({revision:null,phase:"normal"}))},y=()=>t(e).then(w).catch(f);let T,O=!1;const x=()=>{O||u||p||(O=!0,T=setTimeout(()=>{T=void 0,!p&&!b.historyLoaded&&y()},Hi))},q=()=>{p||(g({historyLoaded:!1,latestRevisionAt:void 0}),I({revision:null,phase:"normal"}))};return r?r().then(D=>D?y():q()):y(),{verdict:()=>E,dispose(){p=!0,T!==void 0&&(clearTimeout(T),T=void 0),v()}}}function Ki({port:e,revisionServiceEnabled:t,isHistoryAvailable:n,emailId:r,readShownContent:s,onFacts:o}){let i=null;const c=qi({emailId:r,readAutosave:l=>e.readAutosave(l),revisionServiceEnabled:t,...n?{isHistoryAvailable:n}:{},readShownContent:s,onFacts:o,onLate:({revision:l,phase:u})=>{const d=Wn(l);return i?.(d)??!1},onError:l=>{l instanceof Error&&l.message}});return{id:"recovery",load:()=>c.verdict().then(({revision:l})=>Wn(l)),watch(l){return i=l,()=>{i=null,c.dispose()}}}}function ir(e,t){return{readRevisions:(n,r)=>t.readRevisions(n,r),readAutosave:n=>t.readAutosave(n),async saveAutosave(n,r){Bi(n,{sentAt:Date.now(),html:r.html??"",common_styles:r.common_styles??"",subject:r.subject,preheader:r.preheader});const s=await t.saveAutosave(n,r);return await e.saveAutosave(n,r),s}}}function Wi(e,t){return{readEmail:n=>e.readEmail(n),createEmail:n=>e.createEmail(n),async updateEmail(n,r){const s=await t.updateEmail(n,r);return await e.updateEmail(n,r),s}}}var ar=a.createIdentifier$1("CurrentUser"),lr={};function cr(e){return e.getOrCreateInstance(ar,()=>pe(lr))}function dr(e){return e?.getInstance(ar)?.get()??lr}function ur(e){return e?.getInstance(a.CONFIG_SOURCE_ID)?.get()??{}}var Xi=1.5;function Ji(e){return!e.isEnabled||e.isUserBusy||!e.isReady||!e.isInited?"none":e.isNew?"create":!e.isDirty||e.isSnapshotSent||!e.isHistoryLoaded||e.latestRevisionAgeMs!==void 0&&e.latestRevisionAgeMs<=Xi*e.autosaveTimeoutMs?"none":"revision"}var Qi=4;function Zi(e){const{readDocument:t,readEnvironment:n,onCreate:r,onRevision:s}=e,o=e.readFailures??(()=>0),i=()=>n().autosaveTimeoutMs*2**Math.min(o(),Qi),c=()=>{const _=t();if(!_||_.isDisposed())return"none";const{latestRevisionAt:v,snapshotVersion:I,...A}=n();return Ji({...A,isDirty:_.isDirty(),isNew:_.isNew(),isReady:_.isReady(),latestRevisionAgeMs:v!=null?Date.now()-v:void 0,isSnapshotSent:I!=null&&I===_.get().version})},l=()=>{const _=t();if(!_||_.isDisposed())return!1;if(!_.isDirty())return _.isNew();const{snapshotVersion:v}=n();return!(v!=null&&v===_.get().version)};let u,d,p,m,b=!1;const S=()=>{d=void 0;const _=t();if(!_||_.isDisposed())return;if(_.get().docId!==u){E();return}const v=c();v==="create"?r():v==="revision"?s():l()&&(u=_.get().docId,d=setTimeout(S,i()))},E=()=>{const _=t();b||!_||d!==void 0||c()==="none"&&!l()||(u=_.get().docId,d=setTimeout(S,i()))},g=()=>{const _=t();_!==p&&(m?.(),p=_,m=_?.subscribe(E),d!==void 0&&(clearTimeout(d),d=void 0))};return g(),E(),{refresh:()=>{b||(g(),E())},stop:()=>{b=!0,m?.(),m=void 0,p=void 0,d!==void 0&&(clearTimeout(d),d=void 0)}}}var fr=a.createIdentifier$1("documentSession.autosaveUiFacts"),pr={isUserBusy:!1,saveContext:{}};function ea(e){return e.getOrCreateInstance(fr,()=>pe(pr))}function mr(e){return e?.getInstance(fr)?.get()??pr}var ta=1e4;function na(e,t){const n=()=>{const l=t.current(),u=l?.get().serverId??void 0,d=ne(t.sessionKey()),p=t.recoveryFacts(),m=p?.emailId===u?p:void 0,b=t.revisionFacts(),S=m?.latestRevisionAt,E=b?.lastRevisionAt,g=dr(e).profile;return{isInited:d||l?.get().attributes.is_inited===!0,isEnabled:!!g?.autosaves,isHistoryLoaded:m?.historyLoaded===!0,isUserBusy:mr(e).isUserBusy,autosaveTimeoutMs:ur(e).autosaveTimeout||ta,latestRevisionAt:S!==void 0||E!==void 0?Math.max(S??0,E??0):void 0,snapshotVersion:b?.snapshotVersion}},r=()=>{const l=mr(e).saveContext;return{...l,project:l.project??t.current()?.get().attributes.project}},s=Zi({readDocument:()=>t.current(),readEnvironment:n,readFailures:()=>t.saveState().failures,onCreate:()=>{ne(t.sessionKey())||t.save("materialize",r())},onRevision:()=>{t.save("snapshot",{project:r().project})}}),o=t.subscribe(s.refresh),i=cr(e).watch(()=>s.refresh()),c=ea(e).watch(()=>s.refresh());return()=>{o(),i.dispose(),c.dispose(),s.stop()}}var hr=12e3;function se(e){return e.getOrCreateInstance(it,()=>{const t=Di({resolveAdapters:(r,s)=>oa(r,e,s),resolveWritePort:()=>gr(e),resolveHistoryPort:r=>ne(r)?br(e):Er(e),resolveTerms:()=>xi(e),canEdit:r=>ko(e,r),notifyBeforeSave:Vo(e),timeoutMs:hr,onAdapterError:(r,s)=>{s instanceof Error&&s.message,Me(s,{origin:"email-source-adapter",tags:{source:r}})},onTimeout:r=>{}}),n=na(e,t);return e.getInstance(a.DISPOSABLE_ID)?.addDispose(n),t})}function mt(e){return e?.getInstance(it)}function gr(e){const t=Oi(e);return t?ht(e)?Wi(t,le(e).email(e)):t:le(e).email(e)}function ra(e){return or(e)!==void 0||nr(e)}function Er(e){const t=or(e);return t?ht(e)?(j("port:history:server-backed"),ir(t,le(e).history(e))):(j("port:history:integrator"),t):(j("port:history:rest (порт не зарегистрирован)"),le(e).history(e))}function br(e){const t=sr(e);return t?ht(e)?(j("port:block-history:server-backed"),ir(t,le(e).blockHistory(e))):(j("port:block-history:integrator"),t):(j("port:block-history:rest (порт не зарегистрирован)"),le(e).blockHistory(e))}function sa(e){return sr(e)!==void 0||nr(e)}function ht(e){return An(e)}function oa({email:e,patch:t,serverId:n,key:r},s,o){const i=[];e?i.push({id:"rest",load:()=>qn(e),required:!0}):n&&i.push(Ri(gr(s),n)),t&&i.push({id:"plugin",load:()=>Kn(t)});const c=ne(r);return Yo(n)&&(c?sa(s):ra(s))&&i.push(Ki({port:c?br(s):Er(s),revisionServiceEnabled:An(s),...!c&&Bo(s)?{isHistoryAvailable:()=>jo(s)}:{},emailId:n,readShownContent:()=>o.readShownContent(),onFacts:l=>o.publishRecoveryFacts(l)})),i}function Y(e){return e.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService)}var _r=new WeakMap,gt=new WeakMap;function oe(e){return _r.get(e)??0}function vr(e,t){let n=gt.get(e);return n||(n=new Set,gt.set(e,n)),n.add(t),()=>{n?.delete(t)}}function ia(e){_r.set(e,oe(e)+1),gt.get(e)?.forEach(t=>t())}function aa(e){const t=se(e),n=Y(e).addListener(a.EVENT_TYPES.APPLICATION_HAS_AMP,r=>{Ie(t)?.mutate({attributes:{isAmp:r}},{source:"remote"})});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>n.dispose())}function la(e){return e.size>0&&(e.type===""||e.type.startsWith("image/"))}function ca(e){const t=e.fetchImpl??((o,i)=>fetch(o,i)),n=e.pageHost??(()=>window.location.hostname),r=new Set,s=o=>{try{const i=new URL(o,window.location.href);return i.protocol!=="https:"&&i.protocol!=="http:"?!1:i.hostname===n()||e.sourceHosts().includes(i.hostname)}catch{return!1}};return{accepts:s,async load(o){if(!s(o))return;const i=!r.has(o);r.add(o);try{const c=await t(o,{mode:"cors",credentials:"omit",cache:i?"no-cache":"default"});if(!c.ok)return;const l=await c.blob();return la(l)?l:void 0}catch{return}}}}var ce={maxBytes:67108864,maxImageBytes:4194304,ttlMs:18e5};function da(e){const t={maxBytes:e.maxBytes??ce.maxBytes,maxImageBytes:e.maxImageBytes??ce.maxImageBytes,ttlMs:e.ttlMs??ce.ttlMs},n=e.now??(()=>Date.now()),r=new Map,s=new Map,o={hits:0,loads:0,failures:0};let i=0;const c=p=>{const m=r.get(p);m&&(i-=m.bytes,r.delete(p))},l=p=>t.ttlMs<=0||n()-p.storedAt<t.ttlMs,u=()=>{if(i<=t.maxBytes)return;const p=[...r.entries()].sort((m,b)=>m[1].usedAt-b[1].usedAt);for(const[m]of p){if(i<=t.maxBytes)return;c(m)}},d=(p,m)=>{m.size>t.maxImageBytes||(r.set(p,{blob:m,bytes:m.size,storedAt:n(),usedAt:n()}),i+=m.size,u())};return{async get(p){const m=r.get(p);if(m&&l(m))return m.usedAt=n(),o.hits+=1,m.blob;m&&c(p);const b=s.get(p);if(b!==void 0)return b;o.loads+=1;const S=(async()=>{try{const E=await e.load(p);return E?d(p,E):o.failures+=1,E}catch{o.failures+=1;return}finally{s.delete(p)}})();return s.set(p,S),S},forget(p){c(p),s.delete(p)},clear(){r.clear(),s.clear(),i=0},stats(){return{entries:r.size,bytes:i,...o}}}}var ua=["emcdn.ru","scr.emcdn.ru"];function fa(e){const t=String(e??"").trim();if(!t)return"";try{return new URL(t.includes("//")?t:`https://${t}`).hostname}catch{return t.split("/")[0].split(":")[0]}}function pa(e,t){const n=(r,s)=>{const o=new Set(s?t:[]);for(const i of r){const c=fa(i);c&&o.add(c)}return[...o]};return e?Array.isArray(e)?n(e,!0):n(e.value??[],e.replace!==!0):[...t]}function yr(e){const t=e??{},n=t.isPlugin!==!0?ua:[],r=t.canvasImageCache;if(r===!1)return{enabled:!1,sourceHosts:[],...ce};const s=r===!0||r===void 0?{}:r;return{enabled:s.enabled!==!1,sourceHosts:pa(s.sourceHosts,n),maxBytes:s.maxBytes??ce.maxBytes,maxImageBytes:s.maxImageBytes??ce.maxImageBytes,ttlMs:s.ttlMs??ce.ttlMs}}function ma(e){const t=Y(e),n=e.getInstance(a.CONFIG_SOURCE_ID);let r=yr(n?.get());const s=ca({sourceHosts:()=>r.sourceHosts}),o=da({load:S=>s.load(S),maxBytes:r.maxBytes,maxImageBytes:r.maxImageBytes,ttlMs:r.ttlMs}),i=()=>{t.send(a.EVENT_TYPES.SANDBOX_CANVAS_IMAGE_CACHE_SETUP,{enabled:r.enabled,sourceHosts:[...r.sourceHosts]})},c=t.onInit(()=>i()),l=n?.watch(()=>{const S=yr(n.get()),E=JSON.stringify(S)!==JSON.stringify(r);r=S,S.enabled||o.clear(),E&&t.isInited()&&i()}),u={asked:0,served:0,refused:0},d=[],p=(S,E)=>(u.refused+=1,d.push({url:S,reason:E}),d.length>20&&d.shift(),{refused:!0}),m=Object.assign(globalThis,{__emmCanvasImages__:()=>({settings:r,counters:{...u},refusals:[...d],store:o.stats()})}),b=t.addListenerAsync(a.EVENT_TYPES.APPLICATION_CANVAS_IMAGE_GET,async S=>{const E=S?.url??"";if(u.asked+=1,!r.enabled||!E)return p(E,"disabled");if(!s.accepts(E))return p(E,"host");S.fresh&&o.forget(E);const g=await o.get(E);return g?(u.served+=1,{blob:g}):p(E,"load-failed")});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{c.dispose(),l?.dispose(),b.dispose(),o.clear(),delete m.__emmCanvasImages__})}var ha=2e3;function ga(e){const t=Y(e),n=new Set,r=()=>{const i=t.getTarget();if(!i||t.hasPort(i))return;const c=new MessageChannel;let l=!1;const u=p=>{p.data?.operationId==="em:port-ready"&&(l=!0,c.port1.removeEventListener("message",u),t.drainWindow(i))};c.port1.addEventListener("message",u),t.sendPort(i,c.port2),t.usePort(c.port1,!1,i);const d=setTimeout(()=>{n.delete(d),!l&&(Me(new Error("canvas port did not come up, staying on window messaging"),{origin:"canvas-channel"}),c.port1.removeEventListener("message",u),t.useWindow(i))},ha);n.add(d)},s=Object.assign(globalThis,{__emmCanvasPort__:()=>{const i=t.getTarget();return{usesPort:t.usesPort,windowDrained:i?t.isWindowDrained(i):!1}}}),o=t.onInit(()=>r());e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{for(const i of n)clearTimeout(i);o.dispose(),delete s.__emmCanvasPort__})}var Ea=/^[a-zA-Z][a-zA-Z\d+\-.]*:/;function ba(e){return Ea.test(e)||e.indexOf("//")===0}function He(e){return e&&(e.endsWith("/")?e:`${e}/`)}function _a(){return typeof document<"u"&&document.baseURI?document.baseURI:typeof window<"u"&&window.location?window.location.href:""}function Sr(e,t){const n=e==null||e===""?"./":String(e);if(ba(n))return He(n);const r=t??_a();if(!r)return He(n);try{return He(new URL(n,r).href)}catch{return He(n)}}function va(){return typeof __useblocks__<"u"&&__useblocks__?.publicPath?Sr(__useblocks__.publicPath):Sr("/")}var ya=()=>"",Sa=()=>"168aeeb1";function Ir(e){const t=e?"iframe-eblock":"iframe",n=ya();if(n){const o=n.replace(/\/?$/,"/");return bn(`${o}${t}.html`,ve())}const r=Sa(),s=`${va().replace(/\/?$/,"/")}iframe/`;return bn(`${s}${t}${r?`.${r}`:""}.html`,ve())}var wr="allow-top-navigation allow-scripts allow-popups allow-popups-to-escape-sandbox";function Et(e){return/^file:/i.test(String(e||"").trim())}function Ia(e){return Et(e)?`${wr} allow-same-origin`:wr}var qp="em:module-body",wa="em:module-body-ack";function Ta(e,t,n){try{const r=new URL("./",new URL(t,n)).href,s=new URL(e,r).href;return s.startsWith(r)?s:void 0}catch{return}}function bt(e){const t=e.split(/[?#]/)[0].split("/").pop()??"",n=/^(.+?)(?:\.[0-9a-f]{6,})?\.html$/.exec(t);return n?`js/${n[1]}.body.js`:void 0}function Aa(e,t){const n=bt(t)?.replace(/^js\/|\.body\.js$/g,""),r=n?e[`${n}.html`]:void 0;return r?(r.imports??[]).map(s=>e[s]?.file).filter(s=>!!s):[]}function Ca(e,t){const n=bt(t)?.replace(/\.body\.js$/,".js");if(!n||!(n in e))return[];const r=new Set([n]),s=[n],o=[];for(;s.length>0;)for(const i of e[s.shift()]??[])r.has(i)||(r.add(i),o.push(i),s.push(i));return o}async function Pa(e){try{const t=await fetch(e);return t.ok?await t.blob():void 0}catch{return}}function Da(e){const t=new Map,n=r=>{const s=Ta(r,e.canvasSrc,e.origin);if(!s)return;const o=t.get(s);if(o!==void 0)return o;const i=e.fetchBody(s);return t.set(s,i),i};return{take(r){return n(r)??Promise.resolve(void 0)},warm(r){for(const s of r)n(s)},reset(){t.clear()},get size(){return t.size}}}async function Ra(e,t,n){try{const r=new URL(".vite/manifest.json",new URL("./",new URL(e,t))).href,s=await fetch(r);if(!s.ok)return;const o=await s.json();n(Aa(o,e))}catch{}}function Oa(e){try{return Et(new URL(e,window.location.href).href)}catch{return Et(window.location.href)}}function La(e){Y(e);const t=Ir(!1);if(Oa(t))return;const n=Da({canvasSrc:t,origin:window.location.href,fetchBody:Pa}),r=bt(t);r&&n.warm([r]);const s={"js/iframe-eblock.js":["js/discussHandlers.BxlCsZ-4.js","js/typograf.all.BbXdyfMT.js"],"js/iframe.js":["js/rolldown-runtime.BRlIiq3h.js","js/discussHandlers.BxlCsZ-4.js"],"js/darkreader.CyLMh7_H.js":[],"js/discussHandlers.BxlCsZ-4.js":["js/rolldown-runtime.BRlIiq3h.js"],"js/rolldown-runtime.BRlIiq3h.js":[],"js/rules.CL_BitCE.js":[],"js/typograf.all.BbXdyfMT.js":["js/rolldown-runtime.BRlIiq3h.js"]};s?n.warm(Ca(s,t)):Ra(t,window.location.href,i=>n.warm(i));const o=i=>{const c=i.data;if(!c||c.operationId!=="em:module-body"||!c.result)return;const l=i.source;l&&(l.postMessage({operationId:wa,for:c.result},"*"),n.take(c.data?.url??"").then(u=>{l.postMessage({operationId:c.result,data:u??null},"*")}))};window.addEventListener("message",o),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{window.removeEventListener("message",o),n.reset()})}var me=/<script\b(?=[^>]*(?:\bbis_use(?:=|\s)|\bdata-bis-config(?:=|\s)|\bdata-dynamic-id(?:=|\s)|local\.adguard\.org|(?:chrome-extension|moz-extension|safari-extension):\/\/))[^>]*>[\s\S]*?<\/script>/gi,Na=/\s(?:bis_[a-z0-9_-]+|data-bis-config|data-dynamic-id)=(["'])(?:(?!\1).)*\1/gi,he=/<style\b[^>]*>[\s\S]*?<\/style>/gi,Tr=/display:\s*none\s*!important/gi,xa=/((?:html\s*,\s*body|body\s*,\s*html)\s*\{)([^}]*)(\})/gi,Ma=/\s*height\s*:\s*100%\s*!important\s*;?/gi,Fa=/height\s*:\s*100%\s*!important/i,ka=[".socialshare,",".advertisment,",".adHolder,",".adsbygoogle-noablate","#ab_adblock","#popmechanic-snippet","filter_ads_by_classname","clever-core-ads","--gn-ov-ad-height","pub_728x90.text-ad.textAd","html-load.com/player","content-loader.com/player",".adblock","#advblock","body { overflow: visible!important; }"];function Ba(e){return Tr.lastIndex=0,(e.match(Tr)||[]).length}function Ar(e){const t=e.trim(),n=Ba(t);if(n===0)return!1;if(t.includes(".advertisment,")&&t.includes(".adHolder,")&&(t.includes(".socialshare,")||n>=3||t.length>2e3))return!0;const r=ka.filter(s=>t.includes(s)).length;return r>=1&&(n>=3||t.length>2e3)||n>=5&&r>=1?!0:n>=20&&/\b(?:\.ad(?:s|vert|vertisment|Holder|banner|box|Container|Wrapper)?[,{]|#ad[-_]|ins\.adsbygoogle)/i.test(t)}function ja(e){he.lastIndex=0;for(const t of e.matchAll(he))if(Ar(t[0].replace(/^<style\b[^>]*>/i,"").replace(/<\/style>$/i,"")))return!0;return!1}function Ua(e){let t=!1;return he.lastIndex=0,{html:e.replace(he,n=>Ar(n.replace(/^<style\b[^>]*>/i,"").replace(/<\/style>$/i,""))?(t=!0,""):n),found:t}}function Ha(e){return me.lastIndex=0,me.test(e)||/\sbis_[a-z0-9_-]+\s*=/.test(e)||/\sdata-bis-config\s*=/.test(e)||ja(e)}function $a(e){if(!Ha(e))return{html:e,found:!1};let t=!1,n=e;me.lastIndex=0,me.test(n)&&(me.lastIndex=0,n=n.replace(me,""),t=!0),(/\sbis_[a-z0-9_-]+\s*=/.test(n)||/\sdata-bis-config\s*=/.test(n))&&(n=n.replace(Na,""),t=!0);const r=Ua(n);return n=r.html,t=t||r.found,{html:n,found:t}}function Ga(e){return!e||!Fa.test(e)?e:(he.lastIndex=0,e.replace(he,t=>t.replace(xa,(n,r,s,o)=>`${r}${s.replace(Ma,"")}${o}`)))}function Cr(e){const t=$a(e.replaceAll(`\r
2083
+ `)}function Wi({emailId:e,readAutosave:t,revisionServiceEnabled:n,isHistoryAvailable:r,readShownContent:s,onFacts:o,onLate:i,onError:c,pageLoadTs:l=zi()}){let u=null,d=!1,p=!1,m=0,b={emailId:e,historyLoaded:!1,isRecovering:!1},S=null;const E=new Promise(D=>{S=D}),g=D=>{b={...b,...D},o(b)},v=D=>{m+=1,g({applied:{phase:D,seq:m}})},_=()=>{u?.timer&&clearTimeout(u.timer),u=null},I=D=>{if(!p){if(S){const R=S;S=null,R(D),D.revision&&v(D.phase);return}i(D)&&D.revision&&v(D.phase)}},A=()=>{if(!u||p)return;const D=u.phase==="fast",R=D?$i:Yi,U=D?Vi:qi;u.timer=setTimeout(()=>{const M=u;if(!(!M||p)){if(M.attempts+=1,y(),D&&M.attempts>=U){const{pending:G}=M;Ue(e),g({isRecovering:!1}),I({revision:{html:G.html,common_styles:G.common_styles,subject:G.subject,preheader:G.preheader},phase:"timeout"}),d=!0,M.phase="bg",M.attempts=0,A();return}if(!D&&M.attempts>=U){Ue(e),_(),g({isRecovering:!1}),d=!0;return}A()}},R),u.timer.unref?.()},P=D=>{u={phase:"fast",attempts:0,pending:D,timer:null},g({isRecovering:!0}),A()},h=(D,R)=>$n(D.autosave,R===void 0?{}:{freshSince:R})?D.autosave:null,w=D=>{if(p)return;if(g({historyLoaded:!0,latestRevisionAt:D.latestAt!==void 0&&Number.isFinite(D.latestAt)?D.latestAt:void 0}),n&&u){const M=h(D,u.pending.sentAt);if(!M)return;const G=u.phase==="fast"?"found":"bg";Ue(e),_(),g({isRecovering:!1}),d=!0,I({revision:M,phase:G});return}if(d)return;const R=n?Hi(e):null,U=R&&(R.sentAt<l||!Ki(R.html,s()))?R:null;if(U){const M=h(D,U.sentAt);if(M){Ue(e),d=!0,I({revision:M,phase:"found"});return}P(U);return}d=!0,I({revision:h(D),phase:"normal"})},f=D=>{p||(c?.(D),b.historyLoaded||(g({historyLoaded:!1,latestRevisionAt:void 0}),x()),!u&&I({revision:null,phase:"normal"}))},y=()=>t(e).then(w).catch(f);let T,O=!1;const x=()=>{O||u||p||(O=!0,T=setTimeout(()=>{T=void 0,!p&&!b.historyLoaded&&y()},Gi))},z=()=>{p||(g({historyLoaded:!1,latestRevisionAt:void 0}),I({revision:null,phase:"normal"}))};return r?r().then(D=>D?y():z()):y(),{verdict:()=>E,dispose(){p=!0,T!==void 0&&(clearTimeout(T),T=void 0),_()}}}function Xi({port:e,revisionServiceEnabled:t,isHistoryAvailable:n,emailId:r,readShownContent:s,onFacts:o}){let i=null;const c=Wi({emailId:r,readAutosave:l=>e.readAutosave(l),revisionServiceEnabled:t,...n?{isHistoryAvailable:n}:{},readShownContent:s,onFacts:o,onLate:({revision:l,phase:u})=>{const d=Xn(l);return i?.(d)??!1},onError:l=>{l instanceof Error&&l.message}});return{id:"recovery",load:()=>c.verdict().then(({revision:l})=>Xn(l)),watch(l){return i=l,()=>{i=null,c.dispose()}}}}function ar(e,t){return{readRevisions:(n,r)=>t.readRevisions(n,r),readAutosave:n=>t.readAutosave(n),async saveAutosave(n,r){Ui(n,{sentAt:Date.now(),html:r.html??"",common_styles:r.common_styles??"",subject:r.subject,preheader:r.preheader});const s=await t.saveAutosave(n,r);return await e.saveAutosave(n,r),s}}}function Ji(e,t){return{readEmail:n=>e.readEmail(n),createEmail:n=>e.createEmail(n),async updateEmail(n,r){const s=await t.updateEmail(n,r);return await e.updateEmail(n,r),s}}}var lr=a.createIdentifier$1("CurrentUser"),cr={};function dr(e){return e.getOrCreateInstance(lr,()=>pe(cr))}function ur(e){return e?.getInstance(lr)?.get()??cr}function fr(e){return e?.getInstance(a.CONFIG_SOURCE_ID)?.get()??{}}var Qi=1.5;function Zi(e){return!e.isEnabled||e.isUserBusy||!e.isReady||!e.isInited?"none":e.isNew?"create":!e.isDirty||e.isSnapshotSent||!e.isHistoryLoaded||e.latestRevisionAgeMs!==void 0&&e.latestRevisionAgeMs<=Qi*e.autosaveTimeoutMs?"none":"revision"}var ea=4;function ta(e){const{readDocument:t,readEnvironment:n,onCreate:r,onRevision:s}=e,o=e.readFailures??(()=>0),i=()=>n().autosaveTimeoutMs*2**Math.min(o(),ea),c=()=>{const v=t();if(!v||v.isDisposed())return"none";const{latestRevisionAt:_,snapshotVersion:I,...A}=n();return Zi({...A,isDirty:v.isDirty(),isNew:v.isNew(),isReady:v.isReady(),latestRevisionAgeMs:_!=null?Date.now()-_:void 0,isSnapshotSent:I!=null&&I===v.get().version})},l=()=>{const v=t();if(!v||v.isDisposed())return!1;if(!v.isDirty())return v.isNew();const{snapshotVersion:_}=n();return!(_!=null&&_===v.get().version)};let u,d,p,m,b=!1;const S=()=>{d=void 0;const v=t();if(!v||v.isDisposed())return;if(v.get().docId!==u){E();return}const _=c();_==="create"?r():_==="revision"?s():l()&&(u=v.get().docId,d=setTimeout(S,i()))},E=()=>{const v=t();b||!v||d!==void 0||c()==="none"&&!l()||(u=v.get().docId,d=setTimeout(S,i()))},g=()=>{const v=t();v!==p&&(m?.(),p=v,m=v?.subscribe(E),d!==void 0&&(clearTimeout(d),d=void 0))};return g(),E(),{refresh:()=>{b||(g(),E())},stop:()=>{b=!0,m?.(),m=void 0,p=void 0,d!==void 0&&(clearTimeout(d),d=void 0)}}}var pr=a.createIdentifier$1("documentSession.autosaveUiFacts"),mr={isUserBusy:!1,saveContext:{}};function na(e){return e.getOrCreateInstance(pr,()=>pe(mr))}function hr(e){return e?.getInstance(pr)?.get()??mr}var ra=1e4;function sa(e,t){const n=()=>{const l=t.current(),u=l?.get().serverId??void 0,d=ne(t.sessionKey()),p=t.recoveryFacts(),m=p?.emailId===u?p:void 0,b=t.revisionFacts(),S=m?.latestRevisionAt,E=b?.lastRevisionAt,g=ur(e).profile;return{isInited:d||l?.get().attributes.is_inited===!0,isEnabled:!!g?.autosaves,isHistoryLoaded:m?.historyLoaded===!0,isUserBusy:hr(e).isUserBusy,autosaveTimeoutMs:fr(e).autosaveTimeout||ra,latestRevisionAt:S!==void 0||E!==void 0?Math.max(S??0,E??0):void 0,snapshotVersion:b?.snapshotVersion}},r=()=>{const l=hr(e).saveContext;return{...l,project:l.project??t.current()?.get().attributes.project}},s=ta({readDocument:()=>t.current(),readEnvironment:n,readFailures:()=>t.saveState().failures,onCreate:()=>{ne(t.sessionKey())||t.save("materialize",r())},onRevision:()=>{t.save("snapshot",{project:r().project})}}),o=t.subscribe(s.refresh),i=dr(e).watch(()=>s.refresh()),c=na(e).watch(()=>s.refresh());return()=>{o(),i.dispose(),c.dispose(),s.stop()}}var gr=12e3;function se(e){return e.getOrCreateInstance(it,()=>{const t=Oi({resolveAdapters:(r,s)=>aa(r,e,s),resolveWritePort:()=>Er(e),resolveHistoryPort:r=>ne(r)?vr(e):br(e),resolveTerms:()=>ki(e),canEdit:r=>jo(e,r),notifyBeforeSave:qo(e),timeoutMs:gr,onAdapterError:(r,s)=>{s instanceof Error&&s.message,Me(s,{origin:"email-source-adapter",tags:{source:r}})},onTimeout:r=>{}}),n=sa(e,t);return e.getInstance(a.DISPOSABLE_ID)?.addDispose(n),t})}function mt(e){return e?.getInstance(it)}function Er(e){const t=Ni(e);return t?ht(e)?Ji(t,le(e).email(e)):t:le(e).email(e)}function oa(e){return ir(e)!==void 0||rr(e)}function br(e){const t=ir(e);return t?ht(e)?(j("port:history:server-backed"),ar(t,le(e).history(e))):(j("port:history:integrator"),t):(j("port:history:rest (порт не зарегистрирован)"),le(e).history(e))}function vr(e){const t=or(e);return t?ht(e)?(j("port:block-history:server-backed"),ar(t,le(e).blockHistory(e))):(j("port:block-history:integrator"),t):(j("port:block-history:rest (порт не зарегистрирован)"),le(e).blockHistory(e))}function ia(e){return or(e)!==void 0||rr(e)}function ht(e){return Cn(e)}function aa({email:e,patch:t,serverId:n,key:r},s,o){const i=[];e?i.push({id:"rest",load:()=>Kn(e),required:!0}):n&&i.push(Li(Er(s),n)),t&&i.push({id:"plugin",load:()=>Wn(t)});const c=ne(r);return zo(n)&&(c?ia(s):oa(s))&&i.push(Xi({port:c?vr(s):br(s),revisionServiceEnabled:Cn(s),...!c&&Uo(s)?{isHistoryAvailable:()=>Ho(s)}:{},emailId:n,readShownContent:()=>o.readShownContent(),onFacts:l=>o.publishRecoveryFacts(l)})),i}function Y(e){return e.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService)}var _r=new WeakMap,gt=new WeakMap;function oe(e){return _r.get(e)??0}function yr(e,t){let n=gt.get(e);return n||(n=new Set,gt.set(e,n)),n.add(t),()=>{n?.delete(t)}}function la(e){_r.set(e,oe(e)+1),gt.get(e)?.forEach(t=>t())}function ca(e){const t=se(e),n=Y(e).addListener(a.EVENT_TYPES.APPLICATION_HAS_AMP,r=>{Ie(t)?.mutate({attributes:{isAmp:r}},{source:"remote"})});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>n.dispose())}function da(e){return e.size>0&&(e.type===""||e.type.startsWith("image/"))}function ua(e){const t=e.fetchImpl??((o,i)=>fetch(o,i)),n=e.pageHost??(()=>window.location.hostname),r=new Set,s=o=>{try{const i=new URL(o,window.location.href);return i.protocol!=="https:"&&i.protocol!=="http:"?!1:i.hostname===n()||e.sourceHosts().includes(i.hostname)}catch{return!1}};return{accepts:s,async load(o){if(!s(o))return;const i=!r.has(o);r.add(o);try{const c=await t(o,{mode:"cors",credentials:"omit",cache:i?"no-cache":"default"});if(!c.ok)return;const l=await c.blob();return da(l)?l:void 0}catch{return}}}}var ce={maxBytes:67108864,maxImageBytes:4194304,ttlMs:18e5};function fa(e){const t={maxBytes:e.maxBytes??ce.maxBytes,maxImageBytes:e.maxImageBytes??ce.maxImageBytes,ttlMs:e.ttlMs??ce.ttlMs},n=e.now??(()=>Date.now()),r=new Map,s=new Map,o={hits:0,loads:0,failures:0};let i=0;const c=p=>{const m=r.get(p);m&&(i-=m.bytes,r.delete(p))},l=p=>t.ttlMs<=0||n()-p.storedAt<t.ttlMs,u=()=>{if(i<=t.maxBytes)return;const p=[...r.entries()].sort((m,b)=>m[1].usedAt-b[1].usedAt);for(const[m]of p){if(i<=t.maxBytes)return;c(m)}},d=(p,m)=>{m.size>t.maxImageBytes||(r.set(p,{blob:m,bytes:m.size,storedAt:n(),usedAt:n()}),i+=m.size,u())};return{async get(p){const m=r.get(p);if(m&&l(m))return m.usedAt=n(),o.hits+=1,m.blob;m&&c(p);const b=s.get(p);if(b!==void 0)return b;o.loads+=1;const S=(async()=>{try{const E=await e.load(p);return E?d(p,E):o.failures+=1,E}catch{o.failures+=1;return}finally{s.delete(p)}})();return s.set(p,S),S},forget(p){c(p),s.delete(p)},clear(){r.clear(),s.clear(),i=0},stats(){return{entries:r.size,bytes:i,...o}}}}var pa=["emcdn.ru","scr.emcdn.ru"];function ma(e){const t=String(e??"").trim();if(!t)return"";try{return new URL(t.includes("//")?t:`https://${t}`).hostname}catch{return t.split("/")[0].split(":")[0]}}function ha(e,t){const n=(r,s)=>{const o=new Set(s?t:[]);for(const i of r){const c=ma(i);c&&o.add(c)}return[...o]};return e?Array.isArray(e)?n(e,!0):n(e.value??[],e.replace!==!0):[...t]}function Sr(e){const t=e??{},n=t.isPlugin!==!0?pa:[],r=t.canvasImageCache;if(r===!1)return{enabled:!1,sourceHosts:[],...ce};const s=r===!0||r===void 0?{}:r;return{enabled:s.enabled!==!1,sourceHosts:ha(s.sourceHosts,n),maxBytes:s.maxBytes??ce.maxBytes,maxImageBytes:s.maxImageBytes??ce.maxImageBytes,ttlMs:s.ttlMs??ce.ttlMs}}function ga(e){const t=Y(e),n=e.getInstance(a.CONFIG_SOURCE_ID);let r=Sr(n?.get());const s=ua({sourceHosts:()=>r.sourceHosts}),o=fa({load:S=>s.load(S),maxBytes:r.maxBytes,maxImageBytes:r.maxImageBytes,ttlMs:r.ttlMs}),i=()=>{t.send(a.EVENT_TYPES.SANDBOX_CANVAS_IMAGE_CACHE_SETUP,{enabled:r.enabled,sourceHosts:[...r.sourceHosts]})},c=t.onInit(()=>i()),l=n?.watch(()=>{const S=Sr(n.get()),E=JSON.stringify(S)!==JSON.stringify(r);r=S,S.enabled||o.clear(),E&&t.isInited()&&i()}),u={asked:0,served:0,refused:0},d=[],p=(S,E)=>(u.refused+=1,d.push({url:S,reason:E}),d.length>20&&d.shift(),{refused:!0}),m=Object.assign(globalThis,{__emmCanvasImages__:()=>({settings:r,counters:{...u},refusals:[...d],store:o.stats()})}),b=t.addListenerAsync(a.EVENT_TYPES.APPLICATION_CANVAS_IMAGE_GET,async S=>{const E=S?.url??"";if(u.asked+=1,!r.enabled||!E)return p(E,"disabled");if(!s.accepts(E))return p(E,"host");S.fresh&&o.forget(E);const g=await o.get(E);return g?(u.served+=1,{blob:g}):p(E,"load-failed")});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{c.dispose(),l?.dispose(),b.dispose(),o.clear(),delete m.__emmCanvasImages__})}var Ea=2e3;function ba(e){const t=Y(e),n=new Set,r=()=>{const i=t.getTarget();if(!i||t.hasPort(i))return;const c=new MessageChannel;let l=!1;const u=p=>{p.data?.operationId==="em:port-ready"&&(l=!0,c.port1.removeEventListener("message",u),t.drainWindow(i))};c.port1.addEventListener("message",u),t.sendPort(i,c.port2),t.usePort(c.port1,!1,i);const d=setTimeout(()=>{n.delete(d),!l&&(Me(new Error("canvas port did not come up, staying on window messaging"),{origin:"canvas-channel"}),c.port1.removeEventListener("message",u),t.useWindow(i))},Ea);n.add(d)},s=Object.assign(globalThis,{__emmCanvasPort__:()=>{const i=t.getTarget();return{usesPort:t.usesPort,windowDrained:i?t.isWindowDrained(i):!1}}}),o=t.onInit(()=>r());e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{for(const i of n)clearTimeout(i);o.dispose(),delete s.__emmCanvasPort__})}var va=/^[a-zA-Z][a-zA-Z\d+\-.]*:/;function _a(e){return va.test(e)||e.indexOf("//")===0}function He(e){return e&&(e.endsWith("/")?e:`${e}/`)}function ya(){return typeof document<"u"&&document.baseURI?document.baseURI:typeof window<"u"&&window.location?window.location.href:""}function Ir(e,t){const n=e==null||e===""?"./":String(e);if(_a(n))return He(n);const r=t??ya();if(!r)return He(n);try{return He(new URL(n,r).href)}catch{return He(n)}}function Sa(){return typeof __useblocks__<"u"&&__useblocks__?.publicPath?Ir(__useblocks__.publicPath):Ir("/")}var Ia=()=>"",wa=()=>"fc97f6e8";function wr(e){const t=e?"iframe-eblock":"iframe",n=Ia();if(n){const o=n.replace(/\/?$/,"/");return vn(`${o}${t}.html`,_e())}const r=wa(),s=`${Sa().replace(/\/?$/,"/")}iframe/`;return vn(`${s}${t}${r?`.${r}`:""}.html`,_e())}var Tr="allow-top-navigation allow-scripts allow-popups allow-popups-to-escape-sandbox";function Et(e){return/^file:/i.test(String(e||"").trim())}function Ta(e){return Et(e)?`${Tr} allow-same-origin`:Tr}var Wp="em:module-body",Aa="em:module-body-ack";function Ca(e,t,n){try{const r=new URL("./",new URL(t,n)).href,s=new URL(e,r).href;return s.startsWith(r)?s:void 0}catch{return}}function bt(e){const t=e.split(/[?#]/)[0].split("/").pop()??"",n=/^(.+?)(?:\.[0-9a-f]{6,})?\.html$/.exec(t);return n?`js/${n[1]}.body.js`:void 0}function Pa(e,t){const n=bt(t)?.replace(/^js\/|\.body\.js$/g,""),r=n?e[`${n}.html`]:void 0;return r?(r.imports??[]).map(s=>e[s]?.file).filter(s=>!!s):[]}function Da(e,t){const n=bt(t)?.replace(/\.body\.js$/,".js");if(!n||!(n in e))return[];const r=new Set([n]),s=[n],o=[];for(;s.length>0;)for(const i of e[s.shift()]??[])r.has(i)||(r.add(i),o.push(i),s.push(i));return o}async function Ra(e){try{const t=await fetch(e);return t.ok?await t.blob():void 0}catch{return}}function Oa(e){const t=new Map,n=r=>{const s=Ca(r,e.canvasSrc,e.origin);if(!s)return;const o=t.get(s);if(o!==void 0)return o;const i=e.fetchBody(s);return t.set(s,i),i};return{take(r){return n(r)??Promise.resolve(void 0)},warm(r){for(const s of r)n(s)},reset(){t.clear()},get size(){return t.size}}}async function La(e,t,n){try{const r=new URL(".vite/manifest.json",new URL("./",new URL(e,t))).href,s=await fetch(r);if(!s.ok)return;const o=await s.json();n(Pa(o,e))}catch{}}function Na(e){try{return Et(new URL(e,window.location.href).href)}catch{return Et(window.location.href)}}function xa(e){Y(e);const t=wr(!1);if(Na(t))return;const n=Oa({canvasSrc:t,origin:window.location.href,fetchBody:Ra}),r=bt(t);r&&n.warm([r]);const s={"js/iframe-eblock.js":["js/discussHandlers.Cyqpdj2X.js","js/typograf.all.BbXdyfMT.js"],"js/iframe.js":["js/rolldown-runtime.BRlIiq3h.js","js/discussHandlers.Cyqpdj2X.js"],"js/darkreader.CyLMh7_H.js":[],"js/discussHandlers.Cyqpdj2X.js":["js/rolldown-runtime.BRlIiq3h.js"],"js/rolldown-runtime.BRlIiq3h.js":[],"js/rules.CL_BitCE.js":[],"js/typograf.all.BbXdyfMT.js":["js/rolldown-runtime.BRlIiq3h.js"]};s?n.warm(Da(s,t)):La(t,window.location.href,i=>n.warm(i));const o=i=>{const c=i.data;if(!c||c.operationId!=="em:module-body"||!c.result)return;const l=i.source;l&&(l.postMessage({operationId:Aa,for:c.result},"*"),n.take(c.data?.url??"").then(u=>{l.postMessage({operationId:c.result,data:u??null},"*")}))};window.addEventListener("message",o),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{window.removeEventListener("message",o),n.reset()})}var me=/<script\b(?=[^>]*(?:\bbis_use(?:=|\s)|\bdata-bis-config(?:=|\s)|\bdata-dynamic-id(?:=|\s)|local\.adguard\.org|(?:chrome-extension|moz-extension|safari-extension):\/\/))[^>]*>[\s\S]*?<\/script>/gi,Ma=/\s(?:bis_[a-z0-9_-]+|data-bis-config|data-dynamic-id)=(["'])(?:(?!\1).)*\1/gi,he=/<style\b[^>]*>[\s\S]*?<\/style>/gi,Ar=/display:\s*none\s*!important/gi,ka=/((?:html\s*,\s*body|body\s*,\s*html)\s*\{)([^}]*)(\})/gi,Fa=/\s*height\s*:\s*100%\s*!important\s*;?/gi,Ba=/height\s*:\s*100%\s*!important/i,ja=[".socialshare,",".advertisment,",".adHolder,",".adsbygoogle-noablate","#ab_adblock","#popmechanic-snippet","filter_ads_by_classname","clever-core-ads","--gn-ov-ad-height","pub_728x90.text-ad.textAd","html-load.com/player","content-loader.com/player",".adblock","#advblock","body { overflow: visible!important; }"];function Ua(e){return Ar.lastIndex=0,(e.match(Ar)||[]).length}function Cr(e){const t=e.trim(),n=Ua(t);if(n===0)return!1;if(t.includes(".advertisment,")&&t.includes(".adHolder,")&&(t.includes(".socialshare,")||n>=3||t.length>2e3))return!0;const r=ja.filter(s=>t.includes(s)).length;return r>=1&&(n>=3||t.length>2e3)||n>=5&&r>=1?!0:n>=20&&/\b(?:\.ad(?:s|vert|vertisment|Holder|banner|box|Container|Wrapper)?[,{]|#ad[-_]|ins\.adsbygoogle)/i.test(t)}function Ha(e){he.lastIndex=0;for(const t of e.matchAll(he))if(Cr(t[0].replace(/^<style\b[^>]*>/i,"").replace(/<\/style>$/i,"")))return!0;return!1}function $a(e){let t=!1;return he.lastIndex=0,{html:e.replace(he,n=>Cr(n.replace(/^<style\b[^>]*>/i,"").replace(/<\/style>$/i,""))?(t=!0,""):n),found:t}}function Ga(e){return me.lastIndex=0,me.test(e)||/\sbis_[a-z0-9_-]+\s*=/.test(e)||/\sdata-bis-config\s*=/.test(e)||Ha(e)}function Va(e){if(!Ga(e))return{html:e,found:!1};let t=!1,n=e;me.lastIndex=0,me.test(n)&&(me.lastIndex=0,n=n.replace(me,""),t=!0),(/\sbis_[a-z0-9_-]+\s*=/.test(n)||/\sdata-bis-config\s*=/.test(n))&&(n=n.replace(Ma,""),t=!0);const r=$a(n);return n=r.html,t=t||r.found,{html:n,found:t}}function Ya(e){return!e||!Ba.test(e)?e:(he.lastIndex=0,e.replace(he,t=>t.replace(ka,(n,r,s,o)=>`${r}${s.replace(Fa,"")}${o}`)))}function Pr(e){const t=Va(e.replaceAll(`\r
2084
2084
  `,`
2085
- `));return{html:Ga(t.html),hasBrowserExtensionArtifacts:t.found}}function _t(e){return e?.getContent()??""}function Pr(e,t){e?.mutate({content:$n(t)},{source:"remote"})}function Dr(e){return a.createIdentifier$1(e)}function Q(e,t){return e.getOrCreateInstance(t,()=>new a.AsyncEmitter)}function H(e,t){return e.getOrCreateInstance(t,()=>new a.AsyncEmitter).event}function vt(e,t,n,r){return{html:e,guid:t,...Object.keys(n).length>0?{templateDirectivesPolicy:n}:{},...r!==void 0?{rev:r}:{}}}var Va=class extends Error{showId;constructor(e,t){super(`[useblocks] show() timed out after ${t}ms waiting for editor init (showId=${e}). Check earlier console errors: wrong host-plugin publicPath (chunks return HTML), mount element removed without destroy(), or sandbox init never completed. Search for [show-pipeline] and [AMD] messages.`),this.name="ShowPipelineTimeoutError",this.showId=e}},Ya=class{_activeRequest=null;_pending=new Map;_listeners=new Set;getActiveShowRequest(){return this._activeRequest}onShowRequested(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}requestShow(e,t,n){return this._rejectPending(a.createAbortError("Superseded by newer show()")),n.aborted?Promise.reject(a.createAbortError(n.reason)):(this._activeRequest=e,new Promise((r,s)=>{const o=setTimeout(()=>{this._settle(e.showId,()=>{s(new Va(e.showId,t))})},t);o.unref?.();const i=()=>{this._settle(e.showId,()=>{s(a.createAbortError(n.reason))})};n.addEventListener("abort",i,{once:!0});const c=()=>{clearTimeout(o),n.removeEventListener("abort",i)};this._pending.set(e.showId,{request:e,resolve:r,reject:s,timeoutId:o,dispose:c});for(const l of this._listeners)l(e)}))}completeShow(e){this._settle(e,t=>{t.resolve()})}hasPendingShow(e){return this._pending.has(e)}failShow(e,t){this._settle(e,n=>{n.reject(t)})}rejectAll(e){this._rejectPending(e),this._activeRequest=null}_settle(e,t){const n=this._pending.get(e);n&&(n.dispose(),this._pending.delete(e),this._activeRequest?.showId===e&&(this._activeRequest=null),t(n))}_rejectPending(e){for(const[,t]of this._pending)t.dispose(),t.reject(e);this._pending.clear()}};function za(e,t){return{contentReady:t.contentReady??e?.contentReady,sandboxReady:t.sandboxReady??e?.sandboxReady,sandbox:t.sandbox?{...e?.sandbox,...t.sandbox}:e?.sandbox}}function qa(e){if(!e||!(e.contentReady!==void 0||e.sandboxReady!==void 0||e.sandbox!==void 0))return;const t=Ln(e),n=Nn(e),r=Ho(e.sandbox);t<n+r}var Rr=class{_controller=new AbortController;_externalSignalDisposable=new a.Disposable;_sessionChangeListeners=new Set;_showRegistry=new Ya;_timeouts;_generation=0;_sessionStarted=!1;get signal(){return this._controller.signal}get generation(){return this._generation}get contentReadyTimeoutMs(){return Ln(this._timeouts)}getSandboxTimeoutMs(e){return On(e,this._timeouts?.sandbox)}getSandboxReadyTimeoutMs(){return Nn(this._timeouts)}bumpGeneration(){this._generation+=1}getActiveShowRequest(){return this._showRegistry.getActiveShowRequest()}onShowRequested(e){return this._showRegistry.onShowRequested(e)}requestShow(e){return this._showRegistry.requestShow(e,this.contentReadyTimeoutMs,this._controller.signal)}completeShow(e){this._showRegistry.completeShow(e)}hasPendingShow(e){return this._showRegistry.hasPendingShow(e)}failShow(e,t){this._showRegistry.failShow(e,t)}rejectAllPendingShows(e){this._showRegistry.rejectAll(e)}onSessionReplaced(e){return this._sessionChangeListeners.add(e),()=>{this._sessionChangeListeners.delete(e)}}configure(e){e.timeouts!==void 0&&(this._timeouts=za(this._timeouts,e.timeouts),qa(this._timeouts));const t=e.replaceSession===!0||!this._sessionStarted||e.timeouts!==void 0||e.signal!==void 0;this._sessionStarted=!0,t&&(this._replaceSessionController(),this.bumpGeneration()),(e.signal!==void 0||t)&&this._linkExternalSignal(e.signal)}abort(e){const t=e??a.createAbortError("Editor instance destroyed");this._showRegistry.rejectAll(t),this._controller.signal.aborted||(this._controller.abort(t),this.bumpGeneration()),this._externalSignalDisposable.dispose(),this._externalSignalDisposable=new a.Disposable}_replaceSessionController(){this._externalSignalDisposable.dispose(),this._externalSignalDisposable=new a.Disposable,this._showRegistry.rejectAll(a.createAbortError("Init session replaced")),this._controller.signal.aborted||this._controller.abort(a.createAbortError("Init session replaced")),this._controller=new AbortController,this._emitSessionReplaced()}_emitSessionReplaced(){for(const e of this._sessionChangeListeners)e()}_linkExternalSignal(e){if(!e)return;if(e.aborted){this._controller.signal.aborted||(this._controller.abort(e.reason??a.createAbortError()),this.bumpGeneration());return}const t=()=>{this._controller.signal.aborted||(this._controller.abort(e.reason??a.createAbortError()),this.bumpGeneration())};e.addEventListener("abort",t),this._externalSignalDisposable.addDispose(()=>{e.removeEventListener("abort",t)})}},yt=(()=>{const e=new Rr;return e.configure({}),e})(),Ka=class extends Error{label;timeoutMs;constructor(e){super(`[sandbox:ready] iframe handshake timed out after ${e}ms`),this.name="SandboxReadyTimeoutError",this.label="sandbox:ready",this.timeoutMs=e}};function Wa(e){if(!e||typeof e!="object")return!1;const t=e;return typeof t.isInited=="function"&&typeof t.getTarget=="function"&&typeof t.onInit=="function"}function Xa(e,t,n){return e.isInited()&&e.getTarget()?Promise.resolve():(a.throwIfAborted(n),new Promise((r,s)=>{let o=!1,i,c;const l=d=>{o||(o=!0,i!==void 0&&(clearTimeout(i),i=void 0),c?.dispose(),n?.removeEventListener("abort",u),d())},u=()=>{l(()=>s(a.createAbortError(n?.reason)))};if(c=e.onInit(()=>{e.isInited()&&e.getTarget()&&l(()=>r())}),e.isInited()&&e.getTarget()){l(()=>r());return}t>0&&(i=setTimeout(()=>{l(()=>s(new Ka(t)))},t)),n?.addEventListener("abort",u)}))}var Ja=class extends Error{label;timeoutMs;constructor(e,t){super(`[${e}] timed out after ${t}ms`),this.name="OperationTimeoutError",this.label=e,this.timeoutMs=t}};function Qa(e,t,n){return t<=0?e:new Promise((r,s)=>{let o=!1,i;const c=l=>{o||(o=!0,i!==void 0&&(clearTimeout(i),i=void 0),l())};i=setTimeout(()=>{c(()=>s(new Ja(n,t)))},t),e.then(l=>{c(()=>r(l))},l=>{c(()=>s(l))})})}var Za=2,$e=Symbol("sandbox:frame-replaced");function ee(e,t,n,r,s,o,i){const c=`sandbox:${t}`,l=o?.getSandboxTimeoutMs(t)??lt[t],u=()=>{let S=Qa(e.sendAsync(n,r),l,c);return S=a.raceWithAbortSignal(S,o?.signal),we(c,S,s)};if(t==="INIT_START"&&Wa(e)){const S=o?.getSandboxReadyTimeoutMs()??2e4,E=e,g=_=>{const v=Xa(E,S,o?.signal);return we("sandbox:INIT_START:ready-wait",v,s).then(()=>{if(!i||_<=0)return u();const I=i.getGeneration();let A;const P=new Promise((w,f)=>{A=i.onChange(()=>{i.getGeneration()!==I&&f($e)})}),h=u();return h.catch(()=>{}),Promise.race([h,P]).finally(()=>A?.()).catch(w=>{if(w!==$e)throw w;return{...s},g(_-1)})})};return g(Za)}if(!i)return u();const d=i.getGeneration();let p;const m=new Promise((S,E)=>{p=i.onChange(()=>{i.getGeneration()!==d&&E($e)})}),b=u();return b.catch(()=>{}),Promise.race([b,m]).finally(()=>p?.()).catch(S=>{throw S===$e&&{...s},S})}var el=[["brace-percent",/<!--\{%/],["brace-hash",/<!--\{#/],["proscript",/<!--\[%/],["getresponse",/<!--\[\[(?:if|else\]\]|endif\]\])/i],["mailchimp",/<!--\*\|/],["expert-sender",/<!--<\/?(?:if|else|var)/i]],tl=200;function nl(e=new Set){const t=new Set;return(n,r)=>{if(!el.some(([o,i])=>!e.has(o)&&i.test(n)))return;const s=r??`new:${n.length}:${n.slice(0,200)}`;t.has(s)||(t.size>=tl&&t.clear(),t.add(s))}}function rl(){return{isConfigured:()=>!1,toEditorForm:e=>e,toOutputForm:e=>e,keepWrappedOnOutput:new Set,editorPolicy:{},warnAboutUnconfiguredInput:nl()}}var sl=rl();function ge(e){return e?.getInstance(a.TEMPLATE_DIRECTIVES_ID)??sl}function ol(e){const t=se(e),n=Y(e),r=()=>e.getInstance(a.INIT_PIPELINE_ID)??yt;let s,o,i=!1,c=!1;const l=async(v,I,A)=>{const P=A.generation,h=()=>A.generation!==P||A.signal.aborted||t.current()!==v||c,w=oe(n);i=!0;try{if(await ee(n,"INIT_START",a.EVENT_TYPES.SANDBOX_INIT_START,{guid:I},void 0,A),h())return;const{html:f,hasBrowserExtensionArtifacts:y}=Cr(_t(v));if(y&&Q(e,a.events.ON_BROWSER_EXTENSION_DETECTED_ID).fire(),Pr(v,f),await ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,vt(_t(v),I,ge(e).editorPolicy,v.get().version),void 0,A),h())return;await ee(n,"INITED",a.EVENT_TYPES.SANDBOX_INITED,{guid:I},void 0,A),s=I,o=w}finally{i=!1}},u=()=>ne(t.sessionKey())?t.current():void 0,d=()=>{if(c||i)return;const v=u(),I=v?.get().docId;if(!v||!I||s===I&&o===oe(n)||!v.isReady())return;const A=r();A.signal.aborted||l(v,I,A).catch(()=>{})};let p=!1;const m=()=>{p||c||(p=!0,queueMicrotask(()=>{p=!1,d()}))};let b,S;const E=()=>{const v=u(),I=v?.get().docId;I!==S&&(b?.(),S=I,b=v?.subscribe(m)),m()},g=t.subscribe(E),_=vr(n,m);E(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{c=!0,_(),b?.(),g()})}var il=200;function al({startVersion:e,limit:t=il}){let n=[],r=e;const s=o=>{n=n.filter(i=>i.version>o),r=Math.max(r,o)};return{record(o){!o.changes?.length&&!o.contentReplaced||(n.push(o),n.length>t&&s(n[n.length-t-1].version))},rebase(o,i){if(i<r)return null;const c=n.filter(u=>u.version>i);s(i);let l=o;for(const u of c){if(u.fromCanvas||u.contentReplaced||!u.changes)return null;const d=u.changes,p=[];for(const m of l){const b=Qo(m.range,d,"after");if(!b)return null;p.push({range:b,text:m.text})}l=p}return l}}}function ll(e,t){let n=0;return e.map(({start:r,end:s,text:o})=>{const i=new J(r,t.slice(r,s),r+n,o);return n+=o.length-(s-r),i})}function cl(e,t){const n=[...e].sort((r,s)=>r.range.start-s.range.start);return ll(n.map(({range:r,text:s})=>({start:r.start,end:r.end,text:s})),t)}function dl(e){return[...e].sort((t,n)=>n.oldPosition-t.oldPosition).map(t=>({range:{start:t.oldPosition,end:t.oldEnd},text:t.newText}))}var St=a.createIdentifier$1("canvas.sandboxFill");function Or(e){return e.getInstance(St)?.pipeline.isEventsLocked()===!0}function It(e){Me(e,{origin:"canvas-channel"})}function ul(e){const t=se(e),n=Y(e);let r;const s=(l,u)=>{const d=l.get().docId;let p=!1,m=null,b=null;const S=al({startVersion:l.get().version});let E=l.getContent();const g=async(P,h)=>{if(b){b.push({edits:P,rev:h});return}b=[{edits:P,rev:h}];try{do{const w=b.splice(0,b.length);await n.sendAsync(a.EVENT_TYPES.SANDBOX_UPDATE_ENTITY,{edits:w.map(f=>f.edits),guid:d,rev:w[w.length-1].rev})}while(b.length)}finally{b=null}},_=(P,h)=>{const w=b?.splice(0,b.length)??[];w.length&&n.sendAsync(a.EVENT_TYPES.SANDBOX_UPDATE_ENTITY,{edits:w.map(f=>f.edits),guid:d,rev:w[w.length-1].rev}).catch(It),n.sendAsync(a.EVENT_TYPES.SANDBOX_UPDATE_ENTITY,{edits:[P],guid:d,rev:l.get().version,...h!==null?{changeId:h}:{}}).catch(It)},v=P=>{const{guid:h,pushUndoStop:w}=P;if(h!==d)return;const f=ci(P);let{edits:y}=P;if(f.baseRev!==null){const O=S.rebase(y,f.baseRev);if(!O){Me(new Error("canvas batch conflicts with newer document changes"),{origin:"canvas-channel"}),_([],f.changeId);return}y=O}const T=l.get().version;try{p=!0,m=f.changeId;const O=cl(y,l.getContent());w===!1?u.applyWithoutHistory(O):l.mutate({changes:O},{source:Or(e)?"system":"user"})}finally{p=!1,m=null}l.get().version===T&&f.baseRev!==null&&_([],f.changeId)},I=l.subscribe(({changes:P,version:h})=>{const w=l.getContent(),f=!P?.length&&w!==E;if(E=w,S.record({version:h,changes:P,contentReplaced:f,fromCanvas:p}),!P?.length)return;const y=dl(P);p?_(y,m):g(y,h).catch(It)}),A=n.addListener(a.EVENT_TYPES.APPLICATION_UPDATE_ENTITY,v);return()=>{I(),A.dispose()}};let o;const i=()=>{const l=t.current(),u=t.history(),d=l?.get().docId;d!==o&&(r?.(),r=void 0,o=d,l&&u&&(r=s(l,u)))},c=t.subscribe(i);i(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r?.(),c()})}var fl=300,pl=15e3,Lr="em-canvas-busy-style";function ml(){if(document.getElementById(Lr))return;const e=document.createElement("style");e.id=Lr,e.textContent="@keyframes em-canvas-busy-spin{to{transform:rotate(360deg)}}",document.head.appendChild(e)}function hl(e){const t=e.getBoundingClientRect(),n=document.createElement("div");return n.setAttribute("aria-busy","true"),Object.assign(n.style,{position:"fixed",left:`${t.left}px`,top:`${t.top}px`,width:`${t.width}px`,height:`${t.height}px`,cursor:"progress",display:"flex",alignItems:"center",justifyContent:"center"}),e.appendChild(n),{showSpinner(){ml(),n.style.background="rgba(128, 128, 128, 0.15)";const r=document.createElement("div");Object.assign(r.style,{width:"32px",height:"32px",borderRadius:"50%",border:"3px solid rgba(128, 128, 128, 0.35)",borderTopColor:"rgba(80, 80, 80, 0.9)",animation:"em-canvas-busy-spin 0.8s linear infinite"}),n.appendChild(r)},remove:()=>n.remove()}}var gl=8e3;function El(){return{element:document.createElement("iframe"),ready:()=>Promise.reject(new Error("[canvas] нет элемента монтирования")),reload:()=>Promise.resolve(),reloadQuietly:()=>Promise.resolve(),scrollBy:()=>{},shown:!1,whenShown:()=>Promise.resolve(),alignTo:()=>{},resize:()=>{},dispose:()=>{}}}var bl=e=>{for(let t=e?.parentElement??null;t;t=t.parentElement){const n=getComputedStyle(t).overflowY;if(n==="auto"||n==="scroll"||n==="hidden")return t}return null};function _l(e,t,n,r,s){const o=n.readyTimeoutMs??gl,i=document.createElement("div");i.dataset.canvasHost=e,r&&(i.dataset.canvasPlace=r),i.style.position="fixed",i.style.overflow="hidden",i.style.visibility="hidden";const c=n.resolveSrc(e),l=document.createElement("iframe");l.setAttribute("sandbox",n.resolveSandbox(c)),l.setAttribute("allow","clipboard-read; clipboard-write"),l.setAttribute("title","Email content"),l.style.width="100%",l.style.border="0",l.style.display="block",l.style.minHeight="600px",l.src=c,i.appendChild(l),t.appendChild(i),n.mark?.("created"),s||n.onCreated?.(l);const u=new a.Disposable;let d=!1,p=!1,m,b,S,E;const g=()=>{clearTimeout(E),E=setTimeout(()=>{p||(p=!0,b?.(new Error(`[canvas] ${e}: документ не загрузился за ${o} мс`)))},o)},_=()=>d?(S=Promise.resolve(),p=!0,S):(p=!1,S=new Promise((L,k)=>{m=L,b=k}),g(),S),v=()=>{if(clearTimeout(E),d=!0,p){S=Promise.resolve();return}p=!0,n.mark?.("loaded"),m?.()};l.addEventListener("load",v),u.addDispose(()=>{clearTimeout(E),l.removeEventListener("load",v)});let I;const A=()=>{I??=n.bindResizer?.(l)};let P=null,h=null,w;const f=()=>{if(!P){i.style.visibility="hidden",l.removeAttribute("id");return}n.elementId&&(l.id=n.elementId);const L=P.getBoundingClientRect(),k=h?.isConnected?h:bl(P),F=k?k.getBoundingClientRect():null,V=F?Math.max(L.top,F.top):L.top,de=F?Math.min(L.bottom,F.bottom):L.bottom,tt=Math.max(0,de-V);i.style.visibility=tt>0?"visible":"hidden",i.style.left=`${L.left}px`,i.style.top=`${V}px`,i.style.width=`${L.width}px`,i.style.height=`${tt}px`,l.style.transform=`translateY(${L.top-V}px)`};let y="",T="",O=0,x;const q=()=>{if(!P){x=void 0;return}x=window.requestAnimationFrame(q);const L=P.getBoundingClientRect(),k=h?.isConnected?h.getBoundingClientRect():void 0,F=`${Math.round(L.left)}:${Math.round(L.top)}:${Math.round(L.width)}:${Math.round(L.height)}:${k?`${Math.round(k.top)}:${Math.round(k.height)}`:"-"}`;F!==y&&(y=F,f());const V=l.getBoundingClientRect().height;V>0&&V!==O&&(O=V,P.style.height=`${V}px`);const de=getComputedStyle(P).pointerEvents;de!==T&&(T=de,i.style.pointerEvents=de)},D=()=>{x===void 0&&P&&(x=window.requestAnimationFrame(q))},R=()=>{x!==void 0&&(window.cancelAnimationFrame(x),x=void 0)},U=()=>f();let M=[];const G=(L,k)=>{if(h=k,L&&M.length>0){const F=M;M=[],F.forEach(V=>V())}if(L===P){f();return}if(w?.disconnect(),w=void 0,P&&P.style.removeProperty("height"),y="",O=0,T="",P=L,!L){R(),f();return}n.onShown?.(l);try{if(typeof ResizeObserver=="function"){const F=new ResizeObserver(f);typeof F.observe=="function"&&(w=F,w.observe(L))}}catch{w=void 0}f(),A(),D()};window.addEventListener("scroll",U,!0),window.addEventListener("resize",U),u.addDispose(()=>{w?.disconnect(),x!==void 0&&window.cancelAnimationFrame(x),window.removeEventListener("scroll",U,!0),window.removeEventListener("resize",U)});const ae=L=>{d=!1,L&&n.onReload?.(l);let k;p||S===void 0?k=_():(g(),k=S);try{l.contentWindow?.location.reload()}catch{l.src=c}return k};return{element:l,ready(){return S??_()},reload:()=>ae(!0),reloadQuietly:()=>ae(!1),get shown(){return P!==null},whenShown(){return P!==null?Promise.resolve():new Promise(L=>{M.push(L)})},alignTo(L,k){G(L,k??null)},scrollBy(L,k){for(let F=P?.parentElement??null;F;F=F.parentElement){const V=getComputedStyle(F);if((V.overflowY==="auto"||V.overflowY==="scroll")&&F.scrollHeight>F.clientHeight){F.scrollTop+=k,F.scrollLeft+=L;return}}window.scrollBy(L,k)},resize(){I?.resize()},dispose(){G(null,null),I?.dispose(),u.dispose(),i.remove()}}}function vl(e){const t=new Map;let n="a";const r=()=>n==="a"?"b":"a",s=(d,p)=>d==="email"?`email:${p??n}`:d;let o,i=[];const c=()=>{i.forEach(d=>clearTimeout(d)),i=[],o?.remove(),o=void 0},l=new Map,u=(d,p,m)=>{const b=s(d,p),S=t.get(b);if(S)return S;const E=e.resolveMount();if(!E)return El();const g=_l(d,E,e,d==="email"?p??n:void 0,m);return t.set(b,g),g};return{get:d=>u(d),current:d=>u(d),peek:d=>t.get(s(d)),spare:()=>t.get(s("email",r())),ensureSpare:()=>u("email",r(),!0),promote(){const d=t.get(s("email",r()));if(!d)return;const p=t.get(s("email"));n=r();const m=l.get("email");d.alignTo(m?.slot??null,m?.clip??null),p?.alignTo(null)},alignSurface(d,p,m){l.set(d,{slot:p,clip:m??null}),(p?u(d):t.get(s(d)))?.alignTo(p,m??null)},visible(){for(const d of t.values())if(d.shown)return d},byWindow(d){if(d){for(const p of t.values())if(p.element.contentWindow===d)return p}},busy(d){c();const p=d?e.resolveMount():void 0;if(!p)return;const m=hl(p);o=m,i=[setTimeout(()=>m.showSpinner(),fl),setTimeout(c,pl)]},dispose(){c(),t.forEach(d=>d.dispose()),t.clear(),l.clear(),n="a"}}}var yl=a.createIdentifier$1("canvas.resizerBinder"),wt=a.createIdentifier$1("canvas.service"),Sl={created:z.canvasCreated,loaded:z.canvasLoaded};function Il(e,t){if(e.getInstance(wt))return;const n=vl({resolveMount:()=>t.resolveMount(),resolveSrc:s=>t.resolveSrc(s),resolveSandbox:Ia,elementId:t.elementId,bindResizer:s=>e.getInstance(yl)?.(s),onCreated:s=>Ge(e,s,"fresh"),onReload:s=>Ge(e,s,"fresh"),onShown:s=>Ge(e,s,"switch"),mark:s=>t.mark?.(Sl[s])}),r=Y(e).addListener(a.EVENT_TYPES.SANDBOX_WHEEL,s=>{n.visible()?.scrollBy(s?.deltaX??0,s?.deltaY??0)});e.inject(wt,n),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r.dispose(),n.dispose()})}function Ge(e,t,n){const r=Y(e),s=t.contentWindow;if(!s)return;const o=r.getTarget()===s;o&&n==="switch"||(n==="fresh"&&(r.forget(s),o&&r.setTarget(void 0)),r.setTarget(s),ia(r))}function wl(e,t){Ge(e,t,"promote")}function Tl(e,t){const n=t.contentWindow;n&&Y(e).greet(n)}function Al(e,t){const n=t.contentWindow;n&&Y(e).forget(n)}function ie(e){return e.getInstance(wt)}function Cl(e){const t=Y(e),n=()=>ie(e)?.byWindow(t.getTarget()),r=t.addListenerAsync(a.EVENT_TYPES.RELOAD,async()=>{await n()?.reload()}),s=t.addListener(i=>{i.data?.operation===a.EVENT_TYPES.SANDBOX_RESIZED&&n()?.resize()}),o=H(e,a.events.ON_EMAIL_INIT_ID)(()=>{n()?.resize()});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r.dispose(),s.dispose(),o.dispose()})}var Kp=a.createIdentifier$1("HeadlessMode"),Pl=a.createIdentifier$1("HiddenMount");function Dl(e){return e.getOrCreateInstance(Pl,()=>pe(!1))}function Nr(){const e=document.createElement("div");return e.dataset.canvasOffscreen="true",e.style.position="absolute",e.style.left="-10000px",e.style.top="-10000px",e.style.width="1600px",e.style.height="1000px",document.body.appendChild(e),e}function Rl(e){const t=e.getInstance(a.OPTIONS_SOURCE_ID);let n,r;e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r?.remove(),r=void 0}),Il(e,{resolveMount:()=>n,resolveSrc:o=>Ir(o==="block"),elementId:"email_iframe",mark:o=>j(o)}),t?.watch(o=>{if(n)return;const i=o?.element;if(i instanceof HTMLElement)n=i;else if(o!==void 0)n=r??=Nr();else return;ie(e)?.get("email")});let s;e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{s?.remove(),s=void 0}),Dl(e).watch(o=>{const i=ie(e);if(i){if(o){s??=Nr(),i.alignSurface("email",s,s);return}s&&(i.alignSurface("email",null),s.remove(),s=void 0)}})}var xr=a.createIdentifier$1("canvas.headerFlow"),Mr=["subject","preheader"],Ol=3e3,Ll={subject:a.EVENT_TYPES.SANDBOX_SUBJECT_UPDATE,preheader:a.EVENT_TYPES.SANDBOX_PREHEADER_UPDATE};function Nl(e){const t=se(e),n=Y(e),r=E=>E?"remote":Or(e)?"system":"user",s=(E,{guid:g,value:_,forced:v})=>{const I=Ie(t);if(!I||typeof _!="string"||g&&g!==I.get().docId)return;const A=t.forcedHeaders();if(A?.[E]&&!v&&_!==A[E])return;v&&t.endForcedHeaders();const P=I.get().attributes[E]??"";c=!0;try{Be(I,{[E]:_},{source:r(v)})}finally{c=!1}o[E]=_,Q(e,a.events.ON_HEADER_APPLIED_ID).fire({field:E,value:_,forced:!!v,isGenerated:_!==P&&!!_})};let o={},i,c=!1,l=Promise.resolve();const u=(E,g,_)=>{l=n.sendAsync(Ll[E],{value:g,guid:Ie(t)?.get().docId,..._?{force:!0,echo:!0}:{}}).catch(v=>{})};let d;e.inject(xr,{whenDelivered:async()=>{await l},reassert:E=>{const g=Ie(t),_=Mr.filter(v=>E[v]);if(!(!g||_.length===0)){c=!0;try{Be(g,Object.fromEntries(_.map(v=>[v,E[v]])),{source:"system"})}finally{c=!1}t.beginForcedHeaders({subject:E.subject??"",preheader:E.preheader??""}),clearTimeout(d),d=setTimeout(()=>t.endForcedHeaders(),Ol);for(const v of _)o[v]=E[v],u(v,E[v],!0)}}});const p=()=>{i?.(),i=void 0;const E=Ie(t);if(!E){o={};return}const g=E.get().attributes;o={subject:g.subject,preheader:g.preheader},i=E.subscribe(({source:_})=>{if(c)return;const v=E.get().attributes,I=t.forcedHeaders();for(const A of Mr){const P=v[A];P!==o[A]&&(o[A]=P,u(A,P??"",_==="system"&&I?.[A]!==void 0))}})};p();const m=t.subscribe(p),b=n.addListenerAsync(a.EVENT_TYPES.APPLICATION_SUBJECT_UPDATE,E=>s("subject",E)),S=n.addListenerAsync(a.EVENT_TYPES.APPLICATION_PREHEADER_UPDATE,E=>s("preheader",E));e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{b.dispose(),S.dispose(),m(),i?.(),clearTimeout(d)})}function Fr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Tt(e,t){const n={...e};for(const r of Object.keys(t)){const s=t[r],o=e[r];Fr(s)&&Fr(o)?n[r]=Tt(o,s):s!==void 0&&(n[r]=s)}return n}function xl(e,t){const n=a.COMMON_STYLES;if(typeof e=="string"){const r=e.trim();if(r.startsWith("{"))try{const s=JSON.parse(r);if(s&&typeof s=="object"&&!Array.isArray(s)&&Object.keys(s).length>0)return Tt(n,s)}catch{}}return t&&typeof t=="object"&&!Array.isArray(t)?Tt(n,t):n}function Ml(){const e=window.localStorage.getItem(a.LOCAL_STORAGE_ITEMS.em_color_scheme),t=matchMedia("(prefers-color-scheme: dark)").matches?a.DARK:a.LIGHT;return e&&e!=="system"?e:t}function Fl(){const e=window.localStorage.getItem(a.LOCAL_STORAGE_ITEMS.em_code_mode_settings);if(!e)return!1;try{const t=JSON.parse(e);return!!(t?.isCodeMode&&(t.codeModeDirection==="left"||t.codeModeDirection==="right"))}catch{return!1}}function kl(e){const{config:t}=e;return{operation:a.EVENT_TYPES.UPDATE_PREVIEW,theme:e.theme,commonStyles:xl(e.emailCommonStyles,e.defaultCommonStyles),pathEnabled:t.pathEnabled,copyPasteEnabled:t.copyPasteEnabled,saveBlockEnabled:t.saveBlockEnabled,editImageControlEnabled:t.editImageControlEnabled,codeMode:e.codeMode,elementAIimageEnabled:t.elementAIimageEnabled,imageCenterStockEnabled:t.imageCenterStockEnabled,imageCenterGifEnabled:t.imageCenterGifEnabled,imageCenterEditorEnabled:t.imageCenterEditorEnabled,blocksAddPanelEnabled:t.blocksAddPanelEnabled!==!1&&t.blocksSectionsShow!==!1,lockEditor:t.lockEditor,appName:e.appName}}function Bl(e){const t=Y(e),n=e.getInstance(a.CONFIG_SOURCE_ID),r=e.getInstance(a.OPTIONS_SOURCE_ID),s=se(e);let o,i="";const c=()=>{const _=n?.get()??{},v=kl({config:_,emailCommonStyles:s.current()?.get().attributes?.common_styles,defaultCommonStyles:o,theme:Ml(),codeMode:Fl(),appName:"useblocks"}),I=JSON.stringify(v);I!==i&&(i=I,t.send(v))},l=t.onInit(()=>{i="",c()}),u=()=>{t.isInited()&&c()},d=n?.watch(u),p=r?.watch(_=>{o=_?.commonStyles,u()});let m;const b=()=>{m?.(),m=s.current()?.subscribe(u),u()};b();const S=s.subscribe(b),E=matchMedia(a.PREFERS_COLOR_SCHEME_DARK),g=()=>u();E.addEventListener("change",g),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{l.dispose(),d?.dispose(),p?.dispose(),m?.(),S(),E.removeEventListener("change",g)})}var At;(function(e){function t(s,o,i=(c,l)=>c===l){if(s===o)return!0;if(s.length!==o.length)return!1;for(let c=0;c<s.length;c++)if(!i(s[c],o[c]))return!1;return!0}e.isEqual=t;function n(s,o=i=>i){const i=new Set;return s.filter(c=>{const l=o(c);return i.has(l)?!1:(i.add(l),!0)})}e.unique=n;function r(s=[],o=[],i=(c,l)=>c===l){const c=[],l=[],u=[];for(const d of s){const p=o.find(m=>i(d,m));p?u.push({prev:d,next:p}):l.push(d)}for(const d of o)s.find(p=>i(d,p))||c.push(d);return{added:c,removed:l,exists:u}}e.diff=r})(At||(At={}));function jl(e,t){return e.type===t.type&&e.key===t.key}function Ul(e){const t=Y(e),n=()=>e.getServices(a.SANDBOX_EXTENSIONS_ID)??[];let r=[];const s=t.onInit(()=>{r=n(),t.send(a.EVENT_TYPES.SANDBOX_ADD_EXTENSIONS,r)}),o=a.getServiceContainerId(a.SANDBOX_EXTENSIONS_ID),i=e.onInject(c=>{if(c!==o)return;const l=n();if(!t.isInited()){r=l;return}const{added:u,removed:d}=At.diff(r,l,jl);if(r=l,d.length){if(d.some(p=>p.type==="script")){t.send(a.EVENT_TYPES.RELOAD);return}t.send(a.EVENT_TYPES.SANDBOX_REMOVE_EXTENSIONS,d.map(p=>p.key))}u.length&&t.send(a.EVENT_TYPES.SANDBOX_ADD_EXTENSIONS,u)});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{s.dispose(),i?.dispose()})}var Hl=a.createIdentifier$1("prewarm.editorVisible");function $l(e){if(typeof requestAnimationFrame!="function"){setTimeout(e,0);return}requestAnimationFrame(()=>requestAnimationFrame(e))}function Gl(e={}){const t=e.paint??$l;let n=!1,r=!1,s=!1,o=!1,i=!1;const c=[],l=()=>{i||o||!n||!r||!s||(o=!0,t(()=>{i=!0,j(z.editorVisible);for(const u of c.splice(0))u()}))};return{noteShellVisible(){n=!0,l()},notePagePainted(){r=!0,l()},noteContentShown(){s=!0,l()},whenVisible(u){if(i){u();return}c.push(u)},contentShown:()=>s}}function Vl(e){return e.getOrCreateInstance(Hl,()=>Gl())}var Yl=500,zl=500,ql=5e3;function Kl(e){const t=e.quietMs??Yl,n=e.floorMs??zl,r=e.ceilingMs??ql;let s,o,i=0;const c=()=>{clearTimeout(s),clearTimeout(o),s=void 0,o=void 0},l=()=>{c(),e.run()},u=()=>{clearTimeout(s);const d=n-(Date.now()-i);s=setTimeout(l,Math.max(t,d))};return{start(){c(),i=Date.now(),o=setTimeout(l,r),u()},notify(){s!==void 0&&u()},cancel:c}}function Wl({attributes:e,readContent:t,docId:n,hasSession:r,serverId:s,show:o}){if(!r)return;const i={id:s??void 0,renderGuid:n,showId:o?.id,isNew:s==null,showToken:o?.token},c={...e,...i};return Object.defineProperty(c,"html",{get:()=>t()??"",enumerable:!0,configurable:!0}),c}var kr="self-init:";function Xl(e){return e.startsWith(kr)}function Br(e,t){const n=e.getActiveShowRequest();return Xl(t)?n===null:n?.showId===t&&e.hasPendingShow(t)}function Jl(e){const t=()=>e.initPipeline(),n=e.messageService,r=()=>e.waitScope?.()??t();let s="";const o=()=>e.readDocument()?_t(e.readDocument()):s,i=()=>ge(e.container).editorPolicy,c=()=>e.readEmail(),l=()=>{const u=c();return{...u,id:e.isTemplate()||u.isNew?void 0:u.id,html:o()}};return{readContent:o,publicEmail:l,sendInitStart:()=>ee(n,"INIT_START",a.EVENT_TYPES.SANDBOX_INIT_START,{guid:c().renderGuid},void 0,r()),sendInited:()=>ee(n,"INITED",a.EVENT_TYPES.SANDBOX_INITED,{guid:c().renderGuid},void 0,r()),async sendContent(){const u=c(),{html:d,hasBrowserExtensionArtifacts:p}=Cr(u?.html||"");p&&e.events.browserExtensionDetected(),Pr(e.readDocument(),d),s=d,await ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,vt(o(),u.renderGuid,i(),e.readDocument()?.get().version),{guid:u.renderGuid,emailId:u.id??null},r())},refreshContent:()=>ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,vt(o(),c().renderGuid,i(),e.readDocument()?.get().version),void 0,r()),sendPreheader:async()=>{const u=c();if(u.preheader!==void 0)return ee(n,"PREHEADER",a.EVENT_TYPES.SANDBOX_PREHEADER_UPDATE,{value:u.preheader,guid:u.renderGuid,force:!0},void 0,r())},sendSubject:async()=>{const u=c();if(u.subject!==void 0)return ee(n,"SUBJECT",a.EVENT_TYPES.SANDBOX_SUBJECT_UPDATE,{value:u.subject,guid:u.renderGuid,force:!0},void 0,r())},revealFilled:()=>e.revealFilled?.()??Promise.resolve(),showFilled:u=>e.showFilled?.(u),readTarget:()=>e.readTarget?.(),fireWillInit:()=>e.events.willInit(l()),fireInit(u,d){if(!Br(t(),u)){t().getActiveShowRequest()?.showId;return}const p=c();p.id,p.renderGuid,t().completeShow(u),Be(e.readDocument(),{is_inited:!0},{source:"system"});const m=l();return d&&(m.reset=!0),e.events.inited(m)},fireEmailChanged(){e.events.emailChanged(l())},fireContentChanged(){e.events.contentChanged(o())}}}function Ql(e){const t=()=>e.initPipeline();let n=!1,r,s,o,i=0,c;const l=Jl({...e,waitScope:()=>({getSandboxTimeoutMs:g=>t().getSandboxTimeoutMs(g),getSandboxReadyTimeoutMs:()=>t().getSandboxReadyTimeoutMs(),signal:c?.signal??t().signal})});let u;const d=(g,_)=>{if(u===g)return;u=g;const v=i;setTimeout(()=>{i!==v||t().signal.aborted||S(g,_).catch(()=>{})},0)},p=()=>{c?.abort(),c=void 0};let m;const b=()=>{const g=t().signal;g!==m&&(m?.removeEventListener("abort",p),m=g,g.addEventListener("abort",p))};async function S(g,_){const v=++i;p(),c=new AbortController,b();const I=()=>i!==v,A=l.readTarget(),P=t().generation,h=()=>P===t().generation&&!t().signal.aborted,w=_?"init:reset-":"init:";if(!_){const T=l.publicEmail();T?.id,T?.renderGuid,T?.preheader}let f=!1,y=!1;try{n=!0,await l.sendInitStart(),l.fireWillInit(),await(_?l.refreshContent():l.sendContent()),f=!0,_||l.publicEmail()?.id;try{await l.sendPreheader()}catch(T){`${w}`,String(T)}try{await l.sendSubject()}catch(T){`${w}`,String(T)}if(I()||l.showFilled(A),await l.sendInited(),y=!0,s===g){const T=e.readSandboxGeneration?.()??o;T!==void 0&&(r=T)}await l.revealFilled()}catch(T){throw I()||(`${w}`,{...e.describeSurface?.(),error:String(T)},void 0),!I()&&Br(t(),g)&&t().failShow(g,T),T}finally{E(g,_,w,{superseded:I(),sessionGeneration:P,contentApplied:f,sandboxInitedAcked:y,commit:h()})}}function E(g,_,v,I){const{superseded:A,contentApplied:P,sandboxInitedAcked:h}=I;if(A){`${v}`;return}h&&I.commit?l.fireInit(g,_||void 0):h?(`${v}`,I.sessionGeneration,t().generation,t().signal.aborted,void 0):P?(`${v}`,void 0):(`${v}`,void 0),n=!1,c=void 0,!h&&s===g&&(s=void 0,r===o&&(r=void 0)),!h&&P&&d(g,_)}return{channel:l,isEventsLocked:()=>n,filledGeneration:()=>r,markFilled:g=>{r=g},lastCorrelation:()=>s,markCorrelation:g=>{s=g},bumpRunSeq:()=>{i+=1},noteSandboxGeneration:g=>{o=g},fill:g=>S(g,!1),refill:g=>S(g,!0),stop:()=>{i+=1,p(),n=!1,m?.removeEventListener("abort",p),m=void 0}}}function Zl(e,t,n){if(!e?.renderGuid||!e.showId||e.showId!==t.showId)return!1;if(t.isNew)return e.id==null;const r=t.emailId??t.navId;return r!=null&&String(e.id??"")!==String(r)?!1:jr(e,n)}function jr(e,t){return t?e?.id==null?!1:String(e.id)===String(t):!0}function ec(e){const{pipeline:t,readEmail:n,readDocument:r,readRouteEmailId:s,readSandboxGeneration:o}=e,i=d=>{const p=n(),m=s();if(!Zl(p,d,m)){d.showId,d.navId,d.emailId,p?.id,p?.showId,p?.renderGuid;return}d.showId,p?.id,p?.renderGuid,t.markFilled(o()),t.markCorrelation(d.showId),t.fill(d.showId).catch(()=>{})};return{showRequested:d=>{i(d)},showRequestIdentityChanged:()=>{const d=e.initPipeline().getActiveShowRequest();d&&i(d)},selfInitChanged:()=>{if(e.initPipeline().getActiveShowRequest())return;const d=o();if(t.filledGeneration()===d)return;const p=n(),m=s();if(!p?.renderGuid||!jr(p,m))return;const b=`${kr}${p.renderGuid}`;t.markFilled(d),t.markCorrelation(b);const S=r()?.isReady()===!0;p.id,p.renderGuid,(S?E=>t.refill(E):E=>t.fill(E))(b).catch(()=>{t.lastCorrelation()===b&&t.markFilled(void 0)})},saasChanged:()=>{const d=n();d?.renderGuid,d?.showToken,d?.id}}}function tc(e){return e??""}function nc(e,t,n,r){return[e??"",t??"",n==null?"":String(n),r??""].join("|")}function rc(e){const t=se(e),n=Y(e),r=()=>ne(t.sessionKey())?void 0:t.current(),s=()=>{const C=r();return Wl({attributes:C?.get().attributes??{},readContent:()=>C?.getContent(),docId:C?.get().docId,hasSession:!!C,serverId:C?.get().serverId,show:t.showFacts()})},o=()=>e.getInstance(a.INIT_PIPELINE_ID)??yt;let i={},c=!1;const l=e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(C=>{c=!!C?.element});let u=!1,d=!1,p=!1,m=0;const b=()=>{const C=ie(e);if(!C)return;const $=++m,B=C.spare();return B&&Al(e,B.element),(B?B.reloadQuietly():C.ensureSpare()?.ready())?.then(()=>{if($!==m)return;u=!0;const Z=C.spare();Z&&Tl(e,Z.element),p&&(p=!1,T(),G())})},S=Kl({run:()=>{p||b()?.catch(()=>{})}}),E=()=>{Vl(e).noteContentShown(),!u&&!p&&S.start()};let g=!1;const I=Ql({container:e,messageService:n,initPipeline:o,readDocument:r,readEmail:s,revealFilled:()=>{const C=ie(e);return g&&C&&(g=!1,S.start()),c?C?.current("email").whenShown()??Promise.resolve():Promise.resolve()},showFilled:C=>{const $=ie(e),B=$?.spare()?.element.contentWindow;d&&$&&B&&C===B&&(d=!1,$.promote(),$.busy(!1),g=!0)},readTarget:()=>n.getTarget(),isTemplate:()=>!!i.isTemplate,readSandboxGeneration:()=>oe(n),describeSurface:()=>({canvasPath:y,promoted:d,spareClean:u,handshake:n.isInited(),generation:oe(n)}),events:{willInit:C=>{Q(e,a.events.WILL_EMAIL_INIT_ID).fire(C)},inited:C=>{E(),Q(e,a.events.ON_EMAIL_INIT_ID).fire(C)},contentChanged:C=>{Q(e,a.events.ON_CONTENT_CHANGED_ID).fire(C)},emailChanged:C=>{Q(e,a.events.ON_EMAIL_CHANGED_ID).fire(C)},browserExtensionDetected:()=>{Q(e,a.events.ON_BROWSER_EXTENSION_DETECTED_ID).fire()}}}),A=ec({pipeline:I,initPipeline:o,readEmail:s,readDocument:r,readRouteEmailId:()=>i.emailId,readSandboxGeneration:()=>oe(n)});let P="",h="",w="";const f=C=>C.length>0;let y="none";const T=()=>{const C=ie(e)?.spare();C&&(n.send({operation:a.EVENT_TYPES.SANDBOX_LOCK_EDIT,data:!0}),u=!1,d=!0,wl(e,C.element))},O=(C,$)=>{const B=ie(e);if(!B)return!0;const Z=B.spare(),ue=Z&&u?"spare":"prepare";if(y=ue,B.busy(!0),Z&&u)return T(),!0;S.cancel(),n.send({operation:a.EVENT_TYPES.SANDBOX_LOCK_EDIT,data:!0});const fe=b();if(fe===void 0)return y="reload",B.busy(!1),B.peek("email")?.reload(),!0;p=!0;const mn=m;return fe.catch(()=>{!p||mn!==m||(p=!1,y="reload",B.busy(!1),B.peek("email")?.reload())}),!1},x=()=>{de(),I.noteSandboxGeneration(oe(n));const C=s(),$=nc(C?.renderGuid,C?.showId,C?.id,i.emailId),B=tc(C?.renderGuid);if(B!==h){const fe=f(h),mn=h;h=B,fe&&O(mn,B)}if(p)return;$!==P&&(P=$,A.showRequestIdentityChanged());const Z=r(),ue=`${$}|${Z?.get().docId??""}|${oe(n)}`;ue!==w&&Z?.isReady()===!0&&(w=ue,A.selfInitChanged()),A.saasChanged(),U()};let q=!1,D="",R="";const U=()=>{const C=s();if(!C?.renderGuid)return;const $=I.channel.readContent(),B=JSON.stringify([C.preheader,C.common_styles,C.meta,C.subject,C.utm_parameters?.utm_campaign??"",C.utm_parameters?.utm_content??"",C.utm_parameters?.utm_medium??"",C.utm_parameters?.utm_source??"",C.utm_parameters?.utm_term??""]),Z=q&&$!==R,ue=q&&B!==D;if(q=!0,R=$,D=B,I.isEventsLocked())return;const fe={...C,id:i.isTemplate||C.isNew?void 0:C.id,html:$};if(Z){Q(e,a.events.ON_CONTENT_CHANGED_ID).fire($),Q(e,a.events.ON_EMAIL_CHANGED_ID).fire(fe);return}ue&&C.is_inited&&Q(e,a.events.ON_EMAIL_CHANGED_ID).fire(fe)};let M=!1;const G=()=>{M||(M=!0,queueMicrotask(()=>{M=!1,x()}))};e.inject(St,{pipeline:I,setRoute:C=>{C.emailId===i.emailId&&!!C.isTemplate==!!i.isTemplate||(i=C,G())}});let ae,L;const k=()=>{const C=r()?.get().docId;C!==L&&(ae?.(),L=C,ae=r()?.subscribe(G)),G()};let F,V;const de=()=>{const C=e.getInstance(a.INIT_PIPELINE_ID);!C||C===F||(V?.(),F=C,V=C.onShowRequested($=>A.showRequested($)))},tt=n.addListener(C=>{C.data?.operation===a.EVENT_TYPES.SANDBOX_RESIZED&&S.notify()}),Fp=t.subscribe(k),kp=vr(n,G);k(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{l?.dispose(),V?.(),kp(),Fp(),ae?.(),tt.dispose(),S.cancel(),I.stop()})}function sc(){return a.USEBLOCKS!=="useblocks"}var Ct={config:{mode:"freeUserBlocks",autosaveTimeout:5e3,autosaveRetryMaxAttempts:5,autosaveRetryIntervalMs:3e4,theme:"",themes:{},mergeTagsShow:!0,styles:"",revisionService:!1,headerShow:!0,headerTitleVisible:!0,headerPreheaderVisible:!0,headerArrowBackVisible:!0,historyEnabled:!0,codeEnabled:!0,codeSideEnabled:!0,previewIconEnabled:!0,previewModeEnabled:!0,livePreviewEnabled:!0,sendTestEnabled:!0,sharePreviewEnabled:!0,webversionEnabled:!0,commonStylesEnabled:!0,emailResponsiveControlEnabled:!0,templateNotEmAlertShow:!1,beeFreeConverterEnabled:!1,stripoConverterEnabled:!0,aiLayoutConverterEnabled:!1,emailDropdownMenuEnabled:!0,emailDropdownMenuClone:!0,emailDropdownMenuImport:!0,emailDropdownMenuConvert:!0,emailDropdownMenuLock:!0,emailDropdownMenuRemove:!0,emailExportEnabled:!0,exportHtmlEnabled:!0,exportZipEnabled:!0,exportTextEnabled:!0,exportMarkdownEnabled:!0,exportClipboardEnabled:!0,exportWebHookEnabled:!0,exportOutlookEnabled:!0,exportPdfEnabled:!0,exportPngEnabled:!0,nextButtonEnabled:!1,nextButtonText:"",saveButtonEnabled:!0,saveButtonText:"",commandButtonsEnabled:!0,emailIdShow:!1,sidePanelFloating:!0,desktopMobileSwitchRule:!0,desktopMobileSwitchPanel:!1,onlyCodeModeInMobile:!1,pathEnabled:!0,copyPasteEnabled:!0,saveBlockEnabled:!0,globalBlockCheckboxEnabled:!0,editImageControlEnabled:!0,lockEditor:!1,lockPreheaderAndTitle:!1,disableSideMenu:!1,menuDirection:"right",defaultBuildPanel:"",commentsEnabled:!0,aiAssistentEnabled:!0,optimizeEnabled:!0,optimizeLinksEnabled:!0,optimizeImagesEnabled:!0,optimizeSpamAssassinEnabled:!0,optimizeCheckCodeEnabled:!0,settingsEnabled:!0,settingsTabEnabled:!0,UTMEnabled:!0,annotationsEnabled:!1,subjectEnabled:!0,preheaderEnabled:!0,descriptionEnabled:!0,tagsEnabled:!0,isTemplateEnabled:!0,switchDesktopMobilePropsEnabled:!0,stepToOtherElementEnabled:!0,deleteButtonEnabled:!0,toggleSidePanel:!0,blocksSectionsShow:!0,blocksEmptyEnabled:!0,blocksSavedEnabled:!0,blocksCommonEnabled:!0,blocksTemplateEnabled:!0,blocksSearchEnabled:!0,blocksAddPanelEnabled:!0,imagePathDropdownEnabled:!0,formFieldImageTitleEnabled:!0,formFieldBorderEnabled:!0,formFieldBorderRadiusEnabled:!0,formFieldBoxShadowEnabled:!0,formFieldVisibilityEnabled:!0,formFieldExportAsPictureEnabled:!0,emailPaneDesktopSize:0,formButtonFieldInsertImageEnabled:!0,formButtonFieldVerticalAlignEnabled:!0,formButtonFieldTextAlignEnabled:!0,formButtonFieldBackgroundImageEnabled:!0,formButtonFieldPaddingsEnabled:!0,formCellFieldVerticalAlignEnabled:!0,formCellFieldBackgroundImageEnabled:!0,formCellFieldPaddingsEnabled:!0,formCellFieldSizeEnabled:!0,formButtonFieldReplacerEnabled:!0,formLinkFieldInsertImageEnabled:!0,formTableFieldBackgroundImageEnabled:!0,formDivFieldBackgroundImageEnabled:!0,formImageFieldVerticalAlignEnabled:!0,formImageFieldReplacerEnabled:!0,formImageFieldHeightEnabled:!0,formTextFieldTypografEnabled:!0,formTextFieldReplacerEnabled:!0,formEmailFieldBackgroundImageEnabled:!0,elementImageEnabled:!0,elementTextEnabled:!0,elementHeaderEnabled:!0,elementButtonEnabled:!0,elementListULEnabled:!0,elementListOLEnabled:!0,elementDividerEnabled:!0,elementSpacerEnabled:!0,elementSocialEnabled:!0,elementTableEnabled:!1,elementCountdownEnabled:!0,elementVideoEnabled:!0,elementAIimageEnabled:!0,elementAItextEnabled:!0,elementCarouselEnabled:!0,elementAccordionEnabled:!0,elementFormEnabled:!1,preventSendDataToEM:!1,imageInfoToolUrl:"",resourceProxy:void 0,resourceProxyPolicy:void 0,imageCenterFileManagerView:!1,imageCenterLocalUploadEnabled:!0,imageCenterStockEnabled:!0,imageCenterGifEnabled:!0,imageCenterIconStockEnabled:!0,imageCenterEditorEnabled:!0,compressMaxSize:1,compressMaxWidthOrHeight:2e3,ampExportEnabled:!0,formFieldAmpVisibilityEnabled:!0,testEmails:[],pushToGTM:!0,activeNextButton:!0,iconStrokeWidth:1.4},project:void 0},oc={config:{mode:"pro",autosaveTimeout:5e3,autosaveRetryMaxAttempts:5,autosaveRetryIntervalMs:3e4,theme:"",themes:{},mergeTagsShow:!0,styles:"",revisionService:!1,headerShow:!0,headerTitleVisible:!0,headerPreheaderVisible:!0,headerArrowBackVisible:!0,historyEnabled:!0,codeEnabled:!0,codeSideEnabled:!0,previewIconEnabled:!0,previewModeEnabled:!0,livePreviewEnabled:!0,sendTestEnabled:!0,sharePreviewEnabled:!0,webversionEnabled:!0,commonStylesEnabled:!0,emailResponsiveControlEnabled:!0,templateNotEmAlertShow:!1,beeFreeConverterEnabled:!0,stripoConverterEnabled:!0,aiLayoutConverterEnabled:!1,emailDropdownMenuEnabled:!0,emailDropdownMenuClone:!0,emailDropdownMenuImport:!0,emailDropdownMenuImportButton:!1,emailDropdownMenuConvert:!0,emailDropdownMenuLock:!0,emailDropdownMenuRemove:!0,emailExportEnabled:!0,exportHtmlEnabled:!0,exportZipEnabled:!0,exportTextEnabled:!0,exportMarkdownEnabled:!0,exportClipboardEnabled:!0,exportWebHookEnabled:!0,exportOutlookEnabled:!0,exportPdfEnabled:!0,exportPngEnabled:!0,nextButtonEnabled:!1,nextButtonText:"",saveButtonEnabled:!0,saveButtonText:"",commandButtonsEnabled:!0,emailIdShow:!1,sidePanelFloating:!0,desktopMobileSwitchRule:!0,desktopMobileSwitchPanel:!1,onlyCodeModeInMobile:!1,pathEnabled:!0,copyPasteEnabled:!0,saveBlockEnabled:!0,globalBlockCheckboxEnabled:!0,editImageControlEnabled:!0,lockEditor:!1,lockPreheaderAndTitle:!1,disableSideMenu:!1,menuDirection:"right",defaultBuildPanel:"",commentsEnabled:!0,aiAssistentEnabled:!0,optimizeEnabled:!0,optimizeLinksEnabled:!0,optimizeImagesEnabled:!0,optimizeSpamAssassinEnabled:!0,optimizeCheckCodeEnabled:!0,settingsEnabled:!0,settingsTabEnabled:!0,UTMEnabled:!0,annotationsEnabled:!0,subjectEnabled:!0,preheaderEnabled:!0,descriptionEnabled:!0,tagsEnabled:!0,isTemplateEnabled:!0,switchDesktopMobilePropsEnabled:!0,stepToOtherElementEnabled:!0,deleteButtonEnabled:!0,toggleSidePanel:!0,blocksSectionsShow:!0,blocksEmptyEnabled:!0,blocksSavedEnabled:!0,blocksCommonEnabled:!0,blocksTemplateEnabled:!0,blocksSearchEnabled:!0,blocksAddPanelEnabled:!0,imagePathDropdownEnabled:!0,formFieldImageTitleEnabled:!0,formFieldBorderEnabled:!0,formFieldBorderRadiusEnabled:!0,formFieldBoxShadowEnabled:!0,formFieldVisibilityEnabled:!0,formFieldExportAsPictureEnabled:!0,emailPaneDesktopSize:0,formButtonFieldInsertImageEnabled:!0,formButtonFieldVerticalAlignEnabled:!0,formButtonFieldTextAlignEnabled:!0,formButtonFieldBackgroundImageEnabled:!0,formButtonFieldPaddingsEnabled:!0,formButtonFieldReplacerEnabled:!0,formCellFieldVerticalAlignEnabled:!0,formCellFieldBackgroundImageEnabled:!0,formCellFieldPaddingsEnabled:!0,formCellFieldSizeEnabled:!0,formLinkFieldInsertImageEnabled:!0,formTableFieldBackgroundImageEnabled:!0,formDivFieldBackgroundImageEnabled:!0,formImageFieldVerticalAlignEnabled:!0,formImageFieldReplacerEnabled:!0,formImageFieldHeightEnabled:!0,formTextFieldTypografEnabled:!0,formTextFieldReplacerEnabled:!0,formEmailFieldBackgroundImageEnabled:!0,elementImageEnabled:!0,elementTextEnabled:!0,elementHeaderEnabled:!0,elementButtonEnabled:!0,elementListULEnabled:!0,elementListOLEnabled:!0,elementDividerEnabled:!0,elementSpacerEnabled:!0,elementSocialEnabled:!0,elementTableEnabled:!0,elementCountdownEnabled:!0,elementVideoEnabled:!0,elementAIimageEnabled:!0,elementAItextEnabled:!0,elementCarouselEnabled:!0,elementAccordionEnabled:!0,elementFormEnabled:!1,preventSendDataToEM:!1,imageInfoToolUrl:"",resourceProxy:void 0,resourceProxyPolicy:void 0,imageCenterFileManagerView:!0,imageCenterLocalUploadEnabled:!0,imageCenterStockEnabled:!0,imageCenterGifEnabled:!0,imageCenterIconStockEnabled:!0,imageCenterEditorEnabled:!0,compressMaxSize:1,compressMaxWidthOrHeight:2e3,ampExportEnabled:!0,formFieldAmpVisibilityEnabled:!0,testEmails:[],pushToGTM:!0,activeNextButton:!0,iconStrokeWidth:1.4,fileManager:{defaultFolderName:"",enableMoveFolder:!0,enableEdit:!0,enableTrash:!0,enableCopyFile:!0}},project:void 0,page:{isNew:!0,type:"email",project:0,id:"",showToken:0}},Ur=Ct,ic=["freeUserBlocks","blocks"],Hr={};function ac(e){Hr=e}var $r=e=>ic.includes(e)?Ur:Hr[e]??Ur,Pt={config:{mode:"simple",autosaveTimeout:5e3,autosaveRetryMaxAttempts:5,autosaveRetryIntervalMs:3e4,theme:"",themes:{},mergeTagsShow:!1,styles:"",headerShow:!0,headerTitleVisible:!0,headerPreheaderVisible:!0,headerArrowBackVisible:!0,historyEnabled:!0,codeEnabled:!0,codeSideEnabled:!0,previewIconEnabled:!0,previewModeEnabled:!0,livePreviewEnabled:!0,sendTestEnabled:!0,sharePreviewEnabled:!0,webversionEnabled:!1,commonStylesEnabled:!1,emailResponsiveControlEnabled:!1,templateNotEmAlertShow:!1,beeFreeConverterEnabled:!1,stripoConverterEnabled:!0,aiLayoutConverterEnabled:!1,emailDropdownMenuEnabled:!0,emailDropdownMenuClone:!0,emailDropdownMenuImport:!0,emailDropdownMenuImportButton:!1,emailDropdownMenuConvert:!0,emailDropdownMenuLock:!0,emailDropdownMenuRemove:!0,emailExportEnabled:!0,exportHtmlEnabled:!0,exportZipEnabled:!0,exportTextEnabled:!0,exportMarkdownEnabled:!0,exportClipboardEnabled:!0,exportWebHookEnabled:!0,exportOutlookEnabled:!1,exportPdfEnabled:!0,exportPngEnabled:!0,nextButtonEnabled:!1,nextButtonText:"",saveButtonEnabled:!0,saveButtonText:"",commandButtonsEnabled:!0,emailIdShow:!1,sidePanelFloating:!0,desktopMobileSwitchRule:!0,desktopMobileSwitchPanel:!1,onlyCodeModeInMobile:!1,pathEnabled:!0,copyPasteEnabled:!0,saveBlockEnabled:!0,globalBlockCheckboxEnabled:!0,editImageControlEnabled:!0,lockEditor:!1,lockPreheaderAndTitle:!1,disableSideMenu:!1,menuDirection:"right",defaultBuildPanel:"",commentsEnabled:!0,aiAssistentEnabled:!0,optimizeEnabled:!0,optimizeLinksEnabled:!0,optimizeImagesEnabled:!0,optimizeSpamAssassinEnabled:!0,optimizeCheckCodeEnabled:!0,settingsEnabled:!0,settingsTabEnabled:!0,UTMEnabled:!1,annotationsEnabled:!1,subjectEnabled:!0,preheaderEnabled:!0,descriptionEnabled:!0,tagsEnabled:!0,isTemplateEnabled:!0,switchDesktopMobilePropsEnabled:!0,stepToOtherElementEnabled:!0,deleteButtonEnabled:!0,toggleSidePanel:!0,blocksSectionsShow:!0,blocksEmptyEnabled:!0,blocksSavedEnabled:!0,blocksCommonEnabled:!0,blocksTemplateEnabled:!0,blocksSearchEnabled:!0,blocksAddPanelEnabled:!0,imagePathDropdownEnabled:!0,formFieldImageTitleEnabled:!0,formFieldBorderEnabled:!1,formFieldBorderRadiusEnabled:!1,formFieldBoxShadowEnabled:!1,formFieldVisibilityEnabled:!1,formFieldExportAsPictureEnabled:!1,emailPaneDesktopSize:0,formButtonFieldInsertImageEnabled:!0,formButtonFieldVerticalAlignEnabled:!0,formButtonFieldTextAlignEnabled:!0,formButtonFieldBackgroundImageEnabled:!0,formButtonFieldPaddingsEnabled:!0,formButtonFieldReplacerEnabled:!1,formCellFieldVerticalAlignEnabled:!0,formCellFieldBackgroundImageEnabled:!0,formCellFieldPaddingsEnabled:!0,formCellFieldSizeEnabled:!1,formLinkFieldInsertImageEnabled:!0,formTableFieldBackgroundImageEnabled:!0,formDivFieldBackgroundImageEnabled:!0,formImageFieldVerticalAlignEnabled:!1,formImageFieldReplacerEnabled:!1,formImageFieldHeightEnabled:!1,formTextFieldTypografEnabled:!1,formTextFieldReplacerEnabled:!1,formEmailFieldBackgroundImageEnabled:!0,elementImageEnabled:!0,elementTextEnabled:!0,elementHeaderEnabled:!0,elementButtonEnabled:!0,elementListULEnabled:!0,elementListOLEnabled:!0,elementDividerEnabled:!0,elementSpacerEnabled:!0,elementSocialEnabled:!0,elementTableEnabled:!1,elementCountdownEnabled:!1,elementVideoEnabled:!1,elementAIimageEnabled:!0,elementAItextEnabled:!1,elementCarouselEnabled:!1,elementAccordionEnabled:!1,elementFormEnabled:!1,preventSendDataToEM:!1,imageInfoToolUrl:"",resourceProxy:void 0,resourceProxyPolicy:void 0,imageCenterFileManagerView:!0,imageCenterLocalUploadEnabled:!0,imageCenterStockEnabled:!0,imageCenterGifEnabled:!0,imageCenterIconStockEnabled:!0,imageCenterEditorEnabled:!0,compressMaxSize:1,compressMaxWidthOrHeight:2e3,ampExportEnabled:!1,formFieldAmpVisibilityEnabled:!1,testEmails:[],pushToGTM:!0,activeNextButton:!0,iconStrokeWidth:1.4,fileManager:{defaultFolderName:"",enableMoveFolder:!0,enableEdit:!0,enableTrash:!0}},project:void 0},lc={config:{mode:"editor",autosaveTimeout:5e3,autosaveRetryMaxAttempts:5,autosaveRetryIntervalMs:3e4,theme:"",themes:{},mergeTagsShow:!1,styles:"",headerShow:!0,headerTitleVisible:!0,headerPreheaderVisible:!0,headerArrowBackVisible:!0,historyEnabled:!0,codeEnabled:!1,codeSideEnabled:!0,previewIconEnabled:!0,previewModeEnabled:!0,livePreviewEnabled:!0,sendTestEnabled:!0,sharePreviewEnabled:!1,webversionEnabled:!1,commonStylesEnabled:!1,emailResponsiveControlEnabled:!1,templateNotEmAlertShow:!1,beeFreeConverterEnabled:!0,stripoConverterEnabled:!0,aiLayoutConverterEnabled:!1,emailDropdownMenuEnabled:!1,emailDropdownMenuClone:!0,emailDropdownMenuImport:!1,emailDropdownMenuImportButton:!1,emailDropdownMenuConvert:!0,emailDropdownMenuLock:!0,emailDropdownMenuRemove:!0,emailExportEnabled:!0,exportHtmlEnabled:!0,exportTextEnabled:!1,exportMarkdownEnabled:!1,exportZipEnabled:!0,exportClipboardEnabled:!1,exportWebHookEnabled:!1,exportOutlookEnabled:!0,exportPdfEnabled:!0,exportPngEnabled:!0,nextButtonEnabled:!1,nextButtonText:"",saveButtonEnabled:!0,saveButtonText:"",commandButtonsEnabled:!0,emailIdShow:!1,sidePanelFloating:!0,desktopMobileSwitchRule:!0,desktopMobileSwitchPanel:!1,onlyCodeModeInMobile:!1,pathEnabled:!0,copyPasteEnabled:!1,saveBlockEnabled:!0,globalBlockCheckboxEnabled:!0,editImageControlEnabled:!0,lockEditor:!1,lockPreheaderAndTitle:!1,disableSideMenu:!1,menuDirection:"right",defaultBuildPanel:"",commentsEnabled:!1,aiAssistentEnabled:!1,optimizeEnabled:!1,optimizeLinksEnabled:!0,optimizeImagesEnabled:!0,optimizeSpamAssassinEnabled:!0,optimizeCheckCodeEnabled:!0,settingsEnabled:!0,settingsTabEnabled:!0,UTMEnabled:!1,annotationsEnabled:!1,subjectEnabled:!0,preheaderEnabled:!0,descriptionEnabled:!1,tagsEnabled:!0,isTemplateEnabled:!1,switchDesktopMobilePropsEnabled:!0,stepToOtherElementEnabled:!1,deleteButtonEnabled:!0,toggleSidePanel:!1,blocksSectionsShow:!0,blocksEmptyEnabled:!0,blocksSavedEnabled:!0,blocksCommonEnabled:!0,blocksTemplateEnabled:!0,blocksSearchEnabled:!0,blocksAddPanelEnabled:!0,imagePathDropdownEnabled:!1,formFieldImageTitleEnabled:!1,formFieldBorderEnabled:!1,formFieldBorderRadiusEnabled:!1,formFieldBoxShadowEnabled:!1,formFieldVisibilityEnabled:!1,formFieldExportAsPictureEnabled:!1,emailPaneDesktopSize:0,formButtonFieldInsertImageEnabled:!1,formButtonFieldVerticalAlignEnabled:!0,formButtonFieldTextAlignEnabled:!1,formButtonFieldBackgroundImageEnabled:!0,formButtonFieldPaddingsEnabled:!1,formButtonFieldReplacerEnabled:!1,formCellFieldVerticalAlignEnabled:!1,formCellFieldBackgroundImageEnabled:!0,formCellFieldPaddingsEnabled:!0,formCellFieldSizeEnabled:!1,formLinkFieldInsertImageEnabled:!0,formTableFieldBackgroundImageEnabled:!0,formDivFieldBackgroundImageEnabled:!0,formImageFieldVerticalAlignEnabled:!1,formImageFieldReplacerEnabled:!1,formImageFieldHeightEnabled:!1,formTextFieldTypografEnabled:!1,formTextFieldReplacerEnabled:!1,formEmailFieldBackgroundImageEnabled:!0,elementImageEnabled:!0,elementTextEnabled:!0,elementHeaderEnabled:!0,elementButtonEnabled:!0,elementListULEnabled:!0,elementListOLEnabled:!0,elementDividerEnabled:!0,elementSpacerEnabled:!0,elementSocialEnabled:!0,elementTableEnabled:!0,elementCountdownEnabled:!0,elementVideoEnabled:!1,elementAIimageEnabled:!0,elementAItextEnabled:!1,elementCarouselEnabled:!1,elementAccordionEnabled:!1,elementFormEnabled:!1,preventSendDataToEM:!1,imageInfoToolUrl:"",resourceProxy:void 0,resourceProxyPolicy:void 0,imageCenterFileManagerView:!0,imageCenterLocalUploadEnabled:!0,imageCenterStockEnabled:!0,imageCenterGifEnabled:!0,imageCenterIconStockEnabled:!0,imageCenterEditorEnabled:!0,compressMaxSize:1,compressMaxWidthOrHeight:2e3,ampExportEnabled:!1,formFieldAmpVisibilityEnabled:!1,testEmails:[],pushToGTM:!0,activeNextButton:!0,iconStrokeWidth:1.4},project:void 0},cc={...Pt,config:{...Pt.config,imageCenterFileManagerView:!1}};ac({pro:oc,editor:lc,simple:sc()?Pt:cc,freeUserBlocks:Ct,blocks:Ct});var Gr=new Set;function dc(){return window.localStorage.getItem(a.LOCAL_STORAGE_ITEMS.em_color_scheme)??void 0}function uc(e){return Gr.add(e),e(dc()),{dispose(){Gr.delete(e)}}}function Dt(e,t){return e.user.mode||e.serverSide.mode||t||"pro"}function fc(e,t){return t.modeDefaults(Dt(e,t.fallbackMode))}function pc(e,t){const n=Dt(e,t);return e.serverSide.advancedConfigs?.[n]||{}}function mc(e,t){const n=Dt(e,t),r=e.user?.advancedConfigs?.[n],s=r!==void 0?r:e.user?.advancedConfigs?.pro;return{...e.advancedConfigs?.[n],...s}}function hc(e){let t;for(const n of e)n?.fileManager&&(t={...t,...n.fileManager});return t}function gc(e){return a.mergeResourceProxyLayers(e.map(t=>t?.resourceProxy))}function Ec(e){return a.mergeResourceProxyPolicyLayers(e.map(t=>t?.resourceProxyPolicy))}function bc(e){return a.mergeBackendProxyLayers(e.map(t=>t?.backendProxy))}function _c(e){return a.mergeShallowConfigLayers(e.map(t=>t?.backendProxyPolicy||{}).filter(Boolean))}function vc(e,t){return[e.base,fc(e,t),e.profile,e.serverSide,pc(e,t.fallbackMode),e.user,mc(e,t.fallbackMode),e.local]}function Rt(e,t){const n=vc(e,t),r=a.mergeShallowConfigLayers(n),s=hc(n);s!==void 0&&(r.fileManager=s);const o=gc(n);o!==void 0&&(r.resourceProxy=o);const i=Ec(n);i&&Object.keys(i).length>0&&(r.resourceProxyPolicy=i);const c=bc(n);c!==void 0&&(r.backendProxy=c);const l=_c(n);return l&&Object.keys(l).length>0&&(r.backendProxyPolicy=l),r}var yc=["backendProxy","backendProxyPolicy","resourceProxy","resourceProxyPolicy"];function Vr(e){return e==="server"?"serverSide":e}function Sc({env:e,base:t={},budgetMs:n}){const r={base:t,profile:{},serverSide:{},user:{},local:{},advancedConfigs:{}},s=pe();let o={kind:"pending"},i;const c=new Promise(m=>{i=m}),l=n===void 0?void 0:setTimeout(()=>{d({kind:"absent",reason:`серверный слой не пришёл за ${n} мс`})},n);function u(){o.kind!=="pending"&&s.set(Rt(r,e))}function d(m){if(o.kind!=="pending")return;clearTimeout(l),o=m;const b=Rt(r,e);s.set(b),i(b)}function p(m,b){r[Vr(m)]=b,m==="server"&&o.kind==="pending"?d({kind:"applied"}):u()}return{watch:m=>s.watch(m),select:m=>s.select(m),get:()=>s.get(),ready:()=>c,state:()=>o,layers:()=>({...r}),bootstrap(){const m=Rt(r,e);return Object.fromEntries(yc.map(b=>[b,m[b]]))},merge(m,b){p(b,{...r[Vr(b)],...m})},replace(m,b){p(b,m)},setMode(m){r.user={...r.user,mode:m},u()},setAdvancedConfigs(m){r.advancedConfigs=m,u()},serverAbsent(m){d({kind:"absent",reason:m})},applyServerResponse(m){o.kind==="pending"&&p("server",{...r.serverSide,...m})},dispose(){clearTimeout(l)}}}var Ic=5e3,wc="blocks";function Tc(){return{...$r(wc)?.config,mergeTags:void 0}}function Ac(e,t){e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(n=>{t.setAdvancedConfigs({...n.advancedConfigs,...n.config?.advancedConfigs}),t.replace(n.config??{},"user")})}function Cc(e,t){let n;cr(e).watch(({profile:r})=>{const s=`${r?.theme??""}|${r?.locale??""}`;if(s===n)return;n=s;const o={};r?.theme&&(o.theme=r.theme),r?.locale&&(o.locale=r.locale),t.replace(o,"profile")})}function Pc(e,t){let n=null;const r=uc(s=>{const o=typeof s=="string"&&s?s:void 0;o!==n&&(n=o,t.replace(o?{theme:o}:{},"local"))});e.getInstance(a.DISPOSABLE_ID)?.addDisposable(r)}async function Dc(e,t){if(e.getInstance(ot)===void 0){t.serverAbsent("app_init не зарегистрирован");return}try{const n=await e.getInstanceAsync(a.APP_ID);t.applyServerResponse(n?.app_config??{})}catch(n){t.serverAbsent(`app_init не выполнился: ${String(n)}`)}}function Rc(e){e.injectFactory(a.CONFIG_SOURCE_ID,(t,n)=>{if(n)return n;const r=Sc({base:Tc(),env:{modeDefaults:s=>$r(s)?.config||{},fallbackMode:localStorage.getItem("configSwither")||void 0},budgetMs:Ic});return Ac(e,r),Cc(e,r),Pc(e,r),Dc(e,r),e.getInstance(a.DISPOSABLE_ID)?.addDisposable(r),r},!0)}var Ee=class extends a.Disposable{_event;_listener;_disposeEvent;constructor(e){super(),this._event=e}setListener(e){this._listener!==e&&(this._listener=e,this._disposeEvent&&this._disposeEvent(),e?this._disposeEvent=this._event(e):this._disposeEvent=void 0)}dispose(){this._disposeEvent&&this._disposeEvent(),super.dispose()}};function N(e,t,n){const r=a.snapshot(e);return(s,o,i)=>{const c=r(async l=>{const u=t?t(l):l;i&&s.bind(i);const d=await s(u);return n?n(d):d},o,i);return()=>c.dispose()}}var Oc=class{deps;handleDestroy;constructor(e){this.deps=e;const t=new a.Emitter;this.handleDestroy=N(t.event),e.lifetime.addDispose(()=>t.fire(e.getInstance()));const n=e.lifetime.addDisposable(new Ee(this.handleDestroy));e.lifetime.addDisposable(t),e.lifetime.addDisposable(e.options.watch(({handleDestroy:r})=>n.setListener(r))),e.lifetime.addDispose(()=>e.release())}destroy(){if(!this.deps.lifetime.isDisposed())try{this.deps.lifetime.dispose()}catch{}}},Ot=a.createIdentifier$1("DestroyableService");function Lc(e){e.injectFactory(Ot,()=>{const t=e.getInstance(a.DISPOSABLE_ID);if(!t)throw new Error("[plugin] время жизни экземпляра не зарегистрировано");return new Oc({lifetime:t,options:e.getInstance(a.OPTIONS_SOURCE_ID),getInstance:()=>e.getInstance(a.INSTANCE_ID),release:()=>a.releaseContainer(e.getInstance(a.STORE_ID)??e)})},!0)}function Nc(e){const t=e.getInstance(Ot);if(!t)throw new Error("[plugin] provideDestroyable не выполнен до сборки поверхности");return{handleDestroy:t.handleDestroy,destroy:()=>t.destroy()}}var xc=1e3;function Yr(e,t,n=xc,r=0){if(r>n||e===t)return!0;if(typeof e!=typeof t||e===null||t===null)return!1;if(typeof e=="object"&&typeof t=="object"){if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;const s=Object.keys(e),o=Object.keys(t);if(s.length!==o.length)return!1;for(const i of s)if(!Yr(e[i],t[i],n,r+1))return!1;return!0}return!1}function Te(e,t){if(!e||typeof e!="object")return t;if(!t||typeof t!="object")return{};const n={};for(const r of Object.keys(t)){const s=t[r],o=e[r];Yr(s,o)||(n[r]=s)}return n}var Mc=class extends Error{timeoutMs;constructor(e){super(`[useblocks] handleSaveEmail не ответил за ${e}ms — письмо не сохранено`),this.timeoutMs=e,this.name="IntegratorSaveTimeoutError"}},Fc=({source:e,emailtags:t,group:n,tags:r,...s})=>s,kc=()=>xn();async function Bc({emails:e},t){const n=kc();let r;try{return await Promise.race([e.notifySave(t),new Promise((s,o)=>{r=setTimeout(()=>{const i=new Mc(n);t.value.id,o(i)},n)})])}finally{r!==void 0&&clearTimeout(r)}}function jc(e){const{emails:t}=e,n=async(r,s)=>{const o=Fc(s),i=r===void 0?void 0:await t.cache.getIfPresent(r),c=i?{...i,...o}:o,l=await Bc(e,{prev:i,patch:i?Te(i,o):o,value:c,source:s.source??""}),u=String(l.id??r??a.generateUUID()),d=l.id===void 0?{...l,id:u}:l;return await t.cache.addOrUpdate(u,()=>d)};return{async readEmail(r){return await t.get(r)??null},async createEmail(r){const s=await n(void 0,r);return s?.renderGuid?s:{...s,renderGuid:a.generateUUID()}},async updateEmail(r,s){return await n(r,s)}}}var Lt=20,Uc=({source:e,emailtags:t,group:n,tags:r,...s})=>s;function Hc({revisions:e,revisionsByEmail:t}){const n=async(r,s)=>(t.clear(),await t.get(r,{page:s}),(await e.cache.values()??[]).filter(o=>String(o?.parent)===String(r)));return{async readRevisions(r,s=1){const o=await n(r,s);return{revisions:o.slice(Lt*(s-1),Lt*s),page:s,hasMore:o.length>Lt*s}},async readAutosave(r){return fi(await n(r,1))},async saveAutosave(r,s){const o=Uc(s);return await e.create({...o,parent:r,modified:new Date().toString()})}}}var $c=class extends a.BaseEmitter{async execute([e],t){for(const n of t){const r=await n(e);r&&(r.id===void 0&&(r.id=e.value.id),e.value=r)}return e.value}},Gc=class extends a.AsyncEmitter{};function Wp(e){return e}var zr=class extends a.Disposable{_items=new Map;_onChangeEmitter=new a.Signal;async _getOrCreate(e,t){const n=this._items;let r;if(n.has(e))try{r=await n.get(e)}catch{t&&(r=await t())}else t&&(r=await t(),r&&this._onChangeEmitter.fire());return r}async _addOrUpdate(e,t){let n;const r=this._items;if(r.has(e))try{n=await r.get(e)}catch{}const s=await t(n);return a.deepEqual(n,s)||this._onChangeEmitter.fire(),s}entries(){return Promise.all([...this._items.entries()].map(([e,t])=>t.then(n=>[e,n]))).then(e=>e.filter(([t,n])=>!!n))}values(){return Promise.all([...this._items.values()].map(e=>e).filter(e=>!!e))}getOrCreate(e,t){const n=this._getOrCreate(e,()=>t(e));return this._items.set(e,n),n}addOrUpdate(e,t){const n=this._addOrUpdate(e,t);return this._items.set(e,n),n}async getIfPresent(e){if(this._items.has(e))try{return await this._items.get(e)}catch{return}}add(e,t){const n=Promise.resolve(t);return this._items.set(e,n),n}remove(e){if(this._items.has(e)){const t=this._items.get(e);return this._items.delete(e),this._onChangeEmitter.fire(),t}return Promise.resolve(void 0)}async setAll(e){try{this.suspendChange();const t=[],n=new Set(Array.from(e).map(([s,o])=>s)),r=(await this.entries()).filter(([s,o])=>!n.has(s));for(const[s,o]of e)t.push(this.addOrUpdate(s,()=>o)),n.add(s);for(const[s]of r)t.push(this.remove(s));return await Promise.all(t),r}finally{this.resumeChange()}}clear(){this._items.clear(),this._onChangeEmitter.fire()}suspendChange(){this._onChangeEmitter.suspend()}resumeChange(){this._onChangeEmitter.resume()}onChange=this._onChangeEmitter.event};function Vc(e,{filter:t,order:n="asc",orderBy:r,page:s,pageSize:o=20}={}){const i=e.length;let c=e.length;if(t!==void 0){const l=Object.keys(t);e=e.filter(u=>{for(const d of l){const p=u[d],m=t[d];return d==="id"||typeof p!="string"?p===m:typeof m=="string"&&p.startsWith(m)}return!0}),c=e.length}return r&&(e=e.sort((l,u)=>(l[r]>u[r]?1:u[r]>l[r]?-1:0)*(n==="asc"?1:-1))),s!==void 0&&(e=e.slice(o*(s-1),o*s)),{data:e,filteredTotal:c,total:i,totalPages:Math.ceil(c/o)}}function Yc(e=[]){if(e=e.filter(n=>n),e.length<=1)return e[0];const t=new Map;for(const n of e)for(const r of n)if(r.id!==void 0){const s=t.get(r.id)||{};t.set(r.id,{...s,...r})}return[...t].map(([n,r])=>r)}function zc(e,t){return qr(e)&&qr(t)?String(e)===String(t):e===t}function qr(e){return typeof e=="string"||typeof e=="number"}var qc=class extends a.Disposable{_cache=new zr;_readEmitter=new a.AsyncEmitter;_saveEmitter=this.addDisposable(new $c);_removeEmitter=this.addDisposable(new Gc);_foreignCache=Object.create(null);async get(e){return this._cache.getOrCreate(e,async t=>Object.assign({id:e},...(await this._readEmitter.fire(e)).filter(n=>!!n)))}get cache(){return this._cache}byForeignKey(e){let t=this._foreignCache[e];if(!t){const n=this.addDisposable(new a.Disposable);n.addDispose(()=>delete this._foreignCache[e]);const r=n.addDisposable(new zr),s=n.addDisposable(new a.AsyncEmitter);t=this._foreignCache[e]={get:async(o,i={})=>{await r.getOrCreate(o,async()=>{try{const l=Yc(await s.fire(o))||[];for(const u of l)u[e]=o,await this._cache.add(u.id,u);return l}catch{return[]}});const c=(await this._cache.values()||[]).filter(l=>{const u=l[e];return u==null||zc(u,o)});return Vc(c,i)},first(o,i={}){return t.get(o,{...i,page:1,pageSize:1}).then(({data:c})=>c[0])},handleRead:s.event,clear(){r.clear()},dispose(){n.dispose()}}}return t}async create(e,{source:t="",silent:n}={}){let r=e;return n||(r=await this._saveEmitter.fire({prev:void 0,patch:e,value:r,source:t})),r.id===void 0&&(r.id=a.generateUUID()),await this._cache.addOrUpdate(r.id,()=>r)}notifySave(e){return this._saveEmitter.fire(e)}async update(e,t,{source:n="",silent:r}={}){return this._cache.addOrUpdate(e,async s=>{const o=s?{...s,...t}:t;if(!r)return t=s?Te(s,t):t,await this._saveEmitter.fire({prev:s,patch:t,value:o,source:n})})}async remove(e,{source:t="",silent:n}={}){const r=await this._cache.remove(e);return n||await this._removeEmitter.fire({value:r,source:t}),r}refresh(){this._cache.clear();for(const e of Object.values(this._foreignCache))e.clear()}suspendChange(){this._cache.suspendChange()}resumeChange(){this._cache.resumeChange()}handlerRead=this._readEmitter.event;onSave=this._saveEmitter.event;onRemove=this._removeEmitter.event;onChange=this._cache.onChange};function Ae(e){const t=a.createIdentifier$1(e);return n=>n.getOrCreateInstance(t,()=>new qc)}function Kc(e){const t=e.getInstance(a.DISPOSABLE_ID);if(!t)throw new Error("Failed");return t}function Kr(e){return Object.prototype.hasOwnProperty.call(e,"meta")}function Wc(e,t,n){return e&&!Kr(t)&&Kr(e)?{...n,meta:e.meta}:n}var Wr=Ae("plugin.dataSource.emails"),Xr=Ae("plugin.dataSource.emailRevisions"),Jr=a.createIdentifier$1("emailDocuments.provided");function Xc(e){const t=Wr(e),n=Xr(e),r=n.byForeignKey("parent");return e.getInstance(Jr)?{emails:t,emailRevisions:n}:(e.inject(Jr,!0),Li(e,jc({emails:t})),Fi(e,Hc({revisions:n,revisionsByEmail:r})),Kc(e).addDisposable(t.onSave(({prev:s,patch:o,value:i})=>Wc(s,o,i),Number.MIN_VALUE)),{emails:t,emailRevisions:n})}function Qr(e,t){return!e?.data||!t||e.id!==t.locale?!1:t.contentHash?e.hash===t.contentHash:t.updatedAt>0&&t.updatedAt<=e.time}function Jc(e){try{return localStorage.getItem(e)===null?!1:(localStorage.removeItem(e),!0)}catch{return!1}}var Qc="po",Ve=null;function Zc(){const e=typeof __useblocks__<"u"?__useblocks__?.require:void 0;return typeof e!="function"?Promise.reject(new Error("[loadPoParser] AMD loader is unavailable")):new Promise((t,n)=>{e([Qc],r=>t(r),r=>n(r instanceof Error?r:new Error("[loadPoParser] Failed to require po module")))})}function ed(){return Ve===null&&(Ve=Zc().catch(e=>{throw Ve=null,e})),Ve}async function Zr(e){if(typeof e=="object")return Nt(e);if(typeof e!="string")return;const t=e.trim();if(t)return t.startsWith("{")||t.startsWith("[")?td(t):nd(t)}function Nt(e){if(!(e==null||typeof e!="object"||Array.isArray(e)))return e}function td(e){try{return Nt(JSON.parse(e))}catch{return}}var es=!1;async function nd(e){try{return Nt((await ed()).parsePoCatalog(e))}catch{es||(es=!0);return}}var rd="em_locale",sd="em_ant_locale",od="locale",id="ant_locale";function xt(e){try{return JSON.parse(localStorage.getItem(e)||"")}catch{return null}}function ts(e,t){const n=xt(e);if(!n)return null;try{localStorage.removeItem(e),localStorage.setItem(t,JSON.stringify(n))}catch{}return n}function ad(){return xt("em_locale")??ts(od,"em_locale")}function ns(e){try{localStorage.setItem(rd,JSON.stringify(e))}catch{}}function ld(){return xt("em_ant_locale")??ts(id,"em_ant_locale")}function cd(e,t){try{localStorage.setItem(sd,JSON.stringify({id:e,data:t}))}catch{}}var Xp="en_US",dd=8e3;function ud(e,t){const n=e,r=t,s=Object.keys(n).filter(o=>o!=="");return s.length!==Object.keys(r).filter(o=>o!=="").length?!1:s.every(o=>JSON.stringify(n[o])===JSON.stringify(r[o]))}function fd(e){const t=ad(),n=ld();let r={ready:!1},s;const o=pe(r);let i=0;const c=g=>{r={...r,...g},o.set(r)},l=()=>{r.ready||c({ready:!0})},u=setTimeout(l,e.unlockAfterMs??dd),d=g=>g!==i;let p;async function m(g,_){if(n?.id===g&&n.data&&c({antd:n.data}),!p)return;const v=await p(g).catch(()=>{});!v||d(_)||(c({antd:v}),cd(g,v))}async function b(g,_){const v=await e.askHost(g).catch(()=>null);if(d(_))return!0;if(v==null)return!1;const I=await Zr(v);return d(_)||(I&&c({catalog:I}),l()),!0}async function S(g,_){const v=await e.readList();if(d(_))return;if("error"in v){c({failure:{kind:"GET_LOCALES_ERROR",error:v.error}}),l();return}const I=v.data.find(P=>P.locale===g);if(!I){Jc("em_locale")&&c({catalog:void 0}),l();return}if(Qr(t,I)&&(!s||s.catalog===t?.data)){l();return}if(s?.entry&&r.catalog===s.catalog&&Qr(s.entry,I)){ns(s.entry),l();return}const A=await e.readCatalog(g);if(!d(_)){if("error"in A){c({failure:{kind:"GET_LOCALE_ERROR",error:A.error}}),l();return}A.data&&(s?.id===g&&r.catalog===s.catalog&&ud(s.catalog,A.data)||c({catalog:A.data}),ns({id:g,time:I.updatedAt||Math.floor(Date.now()/1e3),hash:I.contentHash,data:A.data})),l()}}async function E(g,_){if(!await b(g,_)){if(!d(_)&&(s?.id===g&&r.catalog===s.catalog||g==="en_US")&&l(),e.canUseNetwork&&!e.canUseNetwork()){l();return}await S(g,_)}}return{set(g){if(!g||g===r.id)return;const _=i+=1;c({id:g,failure:void 0});const v=s?.id===g&&r.catalog===s.catalog;(s&&!v&&r.catalog===s.catalog||g==="en_US"&&r.catalog)&&c({catalog:void 0}),t?.id===g&&t.data&&(c({catalog:t.data}),l()),m(g,_),E(g,_)},prime(g,_,v){r.id||r.catalog||!_||(s=t?.id===g&&t.data&&(!v||t.time>=v.time)?{id:g,catalog:t.data}:{id:g,catalog:_,entry:v?{id:g,time:v.time,hash:v.hash,data:_}:void 0},c({catalog:s.catalog}))},useAntdLoader(g){p=g,r.id&&m(r.id,i)},state:o,snapshot:()=>r,dispose:()=>clearTimeout(u)}}var pd=class{http;constructor(e){this.http=e}jsonList=({locale:e},t={})=>this.http.request({path:`/translations/${e}.json`,method:"GET",format:"json",...t});getTranslations=({locale:e},t={})=>this.http.request({path:`/translations/${e}.po`,method:"GET",...t});localesList=(e={})=>this.http.request({path:"/translations/locales",method:"GET",format:"json",...e})},md=class{baseUrl="/api/v2";securityData=null;securityWorker;abortControllers=new Map;customFetch=(...e)=>fetch(...e);baseApiParams={credentials:"same-origin",headers:{},redirect:"follow",referrerPolicy:"no-referrer"};constructor(e={}){Object.assign(this,e)}setSecurityData=e=>{this.securityData=e};encodeQueryParam(e,t){return`${encodeURIComponent(e)}=${encodeURIComponent(typeof t=="number"?t:`${t}`)}`}addQueryParam(e,t){return this.encodeQueryParam(t,e[t])}addArrayQueryParam(e,t){return e[t].map(n=>this.encodeQueryParam(t,n)).join("&")}toQueryString(e){const t=e||{};return Object.keys(t).filter(n=>typeof t[n]<"u").map(n=>Array.isArray(t[n])?this.addArrayQueryParam(t,n):this.addQueryParam(t,n)).join("&")}addQueryParams(e){const t=this.toQueryString(e);return t?`?${t}`:""}contentFormatters={"application/json":e=>e!==null&&(typeof e=="object"||typeof e=="string")?JSON.stringify(e):e,"application/vnd.api+json":e=>e!==null&&(typeof e=="object"||typeof e=="string")?JSON.stringify(e):e,"text/plain":e=>e!==null&&typeof e!="string"?JSON.stringify(e):e,"multipart/form-data":e=>e instanceof FormData?e:Object.keys(e||{}).reduce((t,n)=>{const r=e[n];return t.append(n,r instanceof Blob?r:typeof r=="object"&&r!==null?JSON.stringify(r):`${r}`),t},new FormData),"application/x-www-form-urlencoded":e=>this.toQueryString(e)};mergeRequestParams(e,t){return{...this.baseApiParams,...e,...t||{},headers:{...this.baseApiParams.headers||{},...e.headers||{},...t&&t.headers||{}}}}createAbortSignal=e=>{if(this.abortControllers.has(e)){const n=this.abortControllers.get(e);return n?n.signal:void 0}const t=new AbortController;return this.abortControllers.set(e,t),t.signal};abortRequest=e=>{const t=this.abortControllers.get(e);t&&(t.abort(),this.abortControllers.delete(e))};request=async({body:e,secure:t,path:n,type:r,query:s,format:o,baseUrl:i,cancelToken:c,...l})=>{const u=(typeof t=="boolean"?t:this.baseApiParams.secure)&&this.securityWorker&&await this.securityWorker(this.securityData)||{},d=this.mergeRequestParams(l,u),p=s&&this.toQueryString(s),m=this.contentFormatters[r||"application/json"],b=o||d.format;return this.customFetch(`${i||this.baseUrl||""}${n}${p?`?${p}`:""}`,{...d,headers:{...d.headers||{},...r&&r!=="multipart/form-data"?{"Content-Type":r}:{}},signal:(c?this.createAbortSignal(c):d.signal)||null,body:typeof e>"u"||e===null?null:m(e)}).then(async S=>{const E=S;E.data=null,E.error=null;const g=b?S.clone():S,_=b?await g[b]().then(v=>(E.ok?E.data=v:E.error=v,E)).catch(v=>(E.error=v,E)):E;return c&&this.abortControllers.delete(c),_})}},hd=a.createIdentifier$1("rest.v2.transport"),rs=Symbol("rest.v2.secureRequest");function gd(e){return e.getOrCreateInstance(hd,()=>{const t=e.getInstance(a.CUSTOM_FETCH_ID)?.execute||fetch;return new md({baseUrl:"https://app.useblocks.io/api/v2",securityWorker:()=>({[rs]:!0}),customFetch:(n,r={})=>{const{[rs]:s,...o}=r;return t(n,{...o,[a.PUBLIC_REQUEST]:s!==!0})}})})}function Ed(e,t){const n=gd(e);return Object.assign({},...t.map(r=>new r(n)))}function ss(e,t){if(e!=null&&typeof e=="object"){const n=e[t];if(typeof n=="string"&&n!=="")return n}}function os(e){const t=e.error,n=t?.error;return n&&typeof n=="object"?{status:e.status,data:{code:ss(n.details,"wp_code")??n.code,message:ss(n.details,"wp_message")??n.message,details:n.details}}:t&&typeof t=="object"?{status:e.status,data:t}:{status:e.status,data:{message:e.statusText||"request failed"}}}function is(e){return!e.ok||!!e.error}function bd(e){try{const t=localStorage.getItem(e);if(t==="true")return!0;if(t==="false")return!1}catch{}}function as(){return bd(a.LOCAL_STORAGE_ITEMS.em_translations_v2)??!0}function _d(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function vd(e){const t=e?Date.parse(e):NaN;return Number.isNaN(t)?0:Math.floor(t/1e3)}function yd(e){return Array.isArray(e)?e.reduce((t,n)=>{const r=Array.isArray(n)?n:[],s=r[0];return typeof s=="string"&&s!==""&&t.push({locale:s,updatedAt:_d(r[1])}),t},[]):[]}function Sd(e){return(e?.items??[]).reduce((t,n)=>(n.locale&&t.push({locale:n.locale,updatedAt:vd(n.updated_at),contentHash:n.content_hash}),t),[])}function ls(e){return Ed(e,[pd])}function Ye(e){return{error:{status:"FETCH_ERROR",error:e instanceof Error?e.message:"locale request failed"}}}function Mt(e){return!e.ok||e.error!=null}function Ft(e){const t=e.error;return{error:{status:e.status,data:t?.data??e.error}}}async function kt(e){return{data:await Zr(e)??null}}async function Id(e){if(as())try{const n=await ls(e).localesList();return is(n)?{error:os(n)}:{data:Sd(n.data)}}catch(n){return Ye(n)}const t=a.getApi(e,[Tn]);try{const n=await t.get_translations2({file:"react_app"});return Mt(n)?Ft(n):{data:yd(n.data)}}catch(n){return Ye(n)}}async function wd(e,t){if(as())try{const r=await ls(e).jsonList({locale:t});return is(r)?{error:os(r)}:kt(r.data)}catch(r){return Ye(r)}const n=a.getApi(e,[Tn]);try{const r=await n.get_translations3({id:t,file:"react_app"});return Mt(r)?Ft(r):kt(r.data)}catch{try{const r=await n.get_translations3({id:"en_US",file:"react_app"});return Mt(r)?Ft(r):kt(r.data)}catch(r){return Ye(r)}}}var Ce=a.createIdentifier$1("locale.service");function Td(e){if(e.getInstance(Ce))return;const t=fd({readList:()=>Id(e),readCatalog:n=>wd(e,n),askHost:async n=>(await Q(e,a.events.READ_LOCALE).fire(n))[0],canUseNetwork:()=>!e.getInstance(a.SECURITY_MODULE_ID)});e.inject(Ce,t),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>t.dispose())}function Ad(e){const t=e.getInstance(a.CONFIG_SOURCE_ID);if(!t)return;const n=e.getInstance(Ce);if(!n)return;const r=t.select(s=>s.locale).watch(s=>n.set(s));e.getInstance(a.DISPOSABLE_ID)?.addDisposable(r)}var Cd="user_id",Pd="project_id",cs=a.createIdentifier$1("rest.identityHeadersProvided");function Dd(e){if(e.getInstance(cs))return;e.inject(cs,!0);let t;e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(n=>{t=n}),e.addService(a.REQUEST_HANDLER_ID,{execute(n,r){if(r?.public)return;const s=t?.user?.id??dr(e).profile?.id;s!=null&&s!==""&&n.headers.set(Cd,String(s));const o=t?.project;o!=null&&o!==""&&n.headers.set(Pd,String(o))}})}function Rd(e){if(!e)return!1;try{return e.getInstance(a.SECURITY_MODULE_ID)!==void 0}catch{return!1}}var Od="Invalid standaloneKey.",Jp=a.createIdentifier$1("StandaloneMockGuard");function Ld(){const e=new Error(Od);return e.name="InvalidStandaloneKeyError",e}function Nd(e){e.addService(a.REQUEST_HANDLER_ID,{execute:()=>{if(Rd(e))throw Ld()}})}function xd(e){a.registerRestTransport(e),Nd(e)}function Md(e){const t=new Rr;e.inject(a.INIT_PIPELINE_ID,t);let n;const r=e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(o=>{o&&(o.signal!==void 0&&(n=o.signal),t.configure({replaceSession:!0,...o.timeouts!==void 0?{timeouts:o.timeouts}:{},...n!==void 0?{signal:n}:{}}))}),s=e.getInstance(a.DISPOSABLE_ID);r&&s?.addDisposable(r),s?.addDispose(()=>{t.abort()})}var Fd=Ae("plugin.dataSource.blocks"),kd=Ae("plugin.dataSource.blockRevisions"),Bd=Ae("plugin.dataSource.comments"),jd=Dr(),Ud=Dr(),ds=`<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2085
+ `));return{html:Ya(t.html),hasBrowserExtensionArtifacts:t.found}}function vt(e){return e?.getContent()??""}function Dr(e,t){e?.mutate({content:Gn(t)},{source:"remote"})}function Rr(e){return a.createIdentifier$1(e)}function Q(e,t){return e.getOrCreateInstance(t,()=>new a.AsyncEmitter)}function H(e,t){return e.getOrCreateInstance(t,()=>new a.AsyncEmitter).event}function _t(e,t,n,r){return{html:e,guid:t,...Object.keys(n).length>0?{templateDirectivesPolicy:n}:{},...r!==void 0?{rev:r}:{}}}var qa=class extends Error{showId;constructor(e,t){super(`[useblocks] show() timed out after ${t}ms waiting for editor init (showId=${e}). Check earlier console errors: wrong host-plugin publicPath (chunks return HTML), mount element removed without destroy(), or sandbox init never completed. Search for [show-pipeline] and [AMD] messages.`),this.name="ShowPipelineTimeoutError",this.showId=e}},za=class{_activeRequest=null;_pending=new Map;_listeners=new Set;getActiveShowRequest(){return this._activeRequest}onShowRequested(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}requestShow(e,t,n){return this._rejectPending(a.createAbortError("Superseded by newer show()")),n.aborted?Promise.reject(a.createAbortError(n.reason)):(this._activeRequest=e,new Promise((r,s)=>{const o=setTimeout(()=>{this._settle(e.showId,()=>{s(new qa(e.showId,t))})},t);o.unref?.();const i=()=>{this._settle(e.showId,()=>{s(a.createAbortError(n.reason))})};n.addEventListener("abort",i,{once:!0});const c=()=>{clearTimeout(o),n.removeEventListener("abort",i)};this._pending.set(e.showId,{request:e,resolve:r,reject:s,timeoutId:o,dispose:c});for(const l of this._listeners)l(e)}))}completeShow(e){this._settle(e,t=>{t.resolve()})}hasPendingShow(e){return this._pending.has(e)}failShow(e,t){this._settle(e,n=>{n.reject(t)})}rejectAll(e){this._rejectPending(e),this._activeRequest=null}_settle(e,t){const n=this._pending.get(e);n&&(n.dispose(),this._pending.delete(e),this._activeRequest?.showId===e&&(this._activeRequest=null),t(n))}_rejectPending(e){for(const[,t]of this._pending)t.dispose(),t.reject(e);this._pending.clear()}};function Ka(e,t){return{contentReady:t.contentReady??e?.contentReady,sandboxReady:t.sandboxReady??e?.sandboxReady,sandbox:t.sandbox?{...e?.sandbox,...t.sandbox}:e?.sandbox}}function Wa(e){if(!e||!(e.contentReady!==void 0||e.sandboxReady!==void 0||e.sandbox!==void 0))return;const t=Nn(e),n=xn(e),r=Go(e.sandbox);t<n+r}var Or=class{_controller=new AbortController;_externalSignalDisposable=new a.Disposable;_sessionChangeListeners=new Set;_showRegistry=new za;_timeouts;_generation=0;_sessionStarted=!1;get signal(){return this._controller.signal}get generation(){return this._generation}get contentReadyTimeoutMs(){return Nn(this._timeouts)}getSandboxTimeoutMs(e){return Ln(e,this._timeouts?.sandbox)}getSandboxReadyTimeoutMs(){return xn(this._timeouts)}bumpGeneration(){this._generation+=1}getActiveShowRequest(){return this._showRegistry.getActiveShowRequest()}onShowRequested(e){return this._showRegistry.onShowRequested(e)}requestShow(e){return this._showRegistry.requestShow(e,this.contentReadyTimeoutMs,this._controller.signal)}completeShow(e){this._showRegistry.completeShow(e)}hasPendingShow(e){return this._showRegistry.hasPendingShow(e)}failShow(e,t){this._showRegistry.failShow(e,t)}rejectAllPendingShows(e){this._showRegistry.rejectAll(e)}onSessionReplaced(e){return this._sessionChangeListeners.add(e),()=>{this._sessionChangeListeners.delete(e)}}configure(e){e.timeouts!==void 0&&(this._timeouts=Ka(this._timeouts,e.timeouts),Wa(this._timeouts));const t=e.replaceSession===!0||!this._sessionStarted||e.timeouts!==void 0||e.signal!==void 0;this._sessionStarted=!0,t&&(this._replaceSessionController(),this.bumpGeneration()),(e.signal!==void 0||t)&&this._linkExternalSignal(e.signal)}abort(e){const t=e??a.createAbortError("Editor instance destroyed");this._showRegistry.rejectAll(t),this._controller.signal.aborted||(this._controller.abort(t),this.bumpGeneration()),this._externalSignalDisposable.dispose(),this._externalSignalDisposable=new a.Disposable}_replaceSessionController(){this._externalSignalDisposable.dispose(),this._externalSignalDisposable=new a.Disposable,this._showRegistry.rejectAll(a.createAbortError("Init session replaced")),this._controller.signal.aborted||this._controller.abort(a.createAbortError("Init session replaced")),this._controller=new AbortController,this._emitSessionReplaced()}_emitSessionReplaced(){for(const e of this._sessionChangeListeners)e()}_linkExternalSignal(e){if(!e)return;if(e.aborted){this._controller.signal.aborted||(this._controller.abort(e.reason??a.createAbortError()),this.bumpGeneration());return}const t=()=>{this._controller.signal.aborted||(this._controller.abort(e.reason??a.createAbortError()),this.bumpGeneration())};e.addEventListener("abort",t),this._externalSignalDisposable.addDispose(()=>{e.removeEventListener("abort",t)})}},yt=(()=>{const e=new Or;return e.configure({}),e})(),Xa=class extends Error{label;timeoutMs;constructor(e){super(`[sandbox:ready] iframe handshake timed out after ${e}ms`),this.name="SandboxReadyTimeoutError",this.label="sandbox:ready",this.timeoutMs=e}};function Ja(e){if(!e||typeof e!="object")return!1;const t=e;return typeof t.isInited=="function"&&typeof t.getTarget=="function"&&typeof t.onInit=="function"}function Qa(e,t,n){return e.isInited()&&e.getTarget()?Promise.resolve():(a.throwIfAborted(n),new Promise((r,s)=>{let o=!1,i,c;const l=d=>{o||(o=!0,i!==void 0&&(clearTimeout(i),i=void 0),c?.dispose(),n?.removeEventListener("abort",u),d())},u=()=>{l(()=>s(a.createAbortError(n?.reason)))};if(c=e.onInit(()=>{e.isInited()&&e.getTarget()&&l(()=>r())}),e.isInited()&&e.getTarget()){l(()=>r());return}t>0&&(i=setTimeout(()=>{l(()=>s(new Xa(t)))},t)),n?.addEventListener("abort",u)}))}var Za=class extends Error{label;timeoutMs;constructor(e,t){super(`[${e}] timed out after ${t}ms`),this.name="OperationTimeoutError",this.label=e,this.timeoutMs=t}};function el(e,t,n){return t<=0?e:new Promise((r,s)=>{let o=!1,i;const c=l=>{o||(o=!0,i!==void 0&&(clearTimeout(i),i=void 0),l())};i=setTimeout(()=>{c(()=>s(new Za(n,t)))},t),e.then(l=>{c(()=>r(l))},l=>{c(()=>s(l))})})}var tl=2,$e=Symbol("sandbox:frame-replaced");function ee(e,t,n,r,s,o,i){const c=`sandbox:${t}`,l=o?.getSandboxTimeoutMs(t)??lt[t],u=()=>{let S=el(e.sendAsync(n,r),l,c);return S=a.raceWithAbortSignal(S,o?.signal),we(c,S,s)};if(t==="INIT_START"&&Ja(e)){const S=o?.getSandboxReadyTimeoutMs()??2e4,E=e,g=v=>{const _=Qa(E,S,o?.signal);return we("sandbox:INIT_START:ready-wait",_,s).then(()=>{if(!i||v<=0)return u();const I=i.getGeneration();let A;const P=new Promise((w,f)=>{A=i.onChange(()=>{i.getGeneration()!==I&&f($e)})}),h=u();return h.catch(()=>{}),Promise.race([h,P]).finally(()=>A?.()).catch(w=>{if(w!==$e)throw w;return{...s},g(v-1)})})};return g(tl)}if(!i)return u();const d=i.getGeneration();let p;const m=new Promise((S,E)=>{p=i.onChange(()=>{i.getGeneration()!==d&&E($e)})}),b=u();return b.catch(()=>{}),Promise.race([b,m]).finally(()=>p?.()).catch(S=>{throw S===$e&&{...s},S})}var nl=[["brace-percent",/<!--\{%/],["brace-hash",/<!--\{#/],["proscript",/<!--\[%/],["getresponse",/<!--\[\[(?:if|else\]\]|endif\]\])/i],["mailchimp",/<!--\*\|/],["expert-sender",/<!--<\/?(?:if|else|var)/i]],rl=200;function sl(e=new Set){const t=new Set;return(n,r)=>{if(!nl.some(([o,i])=>!e.has(o)&&i.test(n)))return;const s=r??`new:${n.length}:${n.slice(0,200)}`;t.has(s)||(t.size>=rl&&t.clear(),t.add(s))}}function ol(){return{isConfigured:()=>!1,toEditorForm:e=>e,toOutputForm:e=>e,keepWrappedOnOutput:new Set,editorPolicy:{},warnAboutUnconfiguredInput:sl()}}var il=ol();function ge(e){return e?.getInstance(a.TEMPLATE_DIRECTIVES_ID)??il}function al(e){const t=se(e),n=Y(e),r=()=>e.getInstance(a.INIT_PIPELINE_ID)??yt;let s,o,i=!1,c=!1;const l=async(_,I,A)=>{const P=A.generation,h=()=>A.generation!==P||A.signal.aborted||t.current()!==_||c,w=oe(n);i=!0;try{if(await ee(n,"INIT_START",a.EVENT_TYPES.SANDBOX_INIT_START,{guid:I},void 0,A),h())return;const{html:f,hasBrowserExtensionArtifacts:y}=Pr(vt(_));if(y&&Q(e,a.events.ON_BROWSER_EXTENSION_DETECTED_ID).fire(),Dr(_,f),await ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,_t(vt(_),I,ge(e).editorPolicy,_.get().version),void 0,A),h())return;await ee(n,"INITED",a.EVENT_TYPES.SANDBOX_INITED,{guid:I},void 0,A),s=I,o=w}finally{i=!1}},u=()=>ne(t.sessionKey())?t.current():void 0,d=()=>{if(c||i)return;const _=u(),I=_?.get().docId;if(!_||!I||s===I&&o===oe(n)||!_.isReady())return;const A=r();A.signal.aborted||l(_,I,A).catch(()=>{})};let p=!1;const m=()=>{p||c||(p=!0,queueMicrotask(()=>{p=!1,d()}))};let b,S;const E=()=>{const _=u(),I=_?.get().docId;I!==S&&(b?.(),S=I,b=_?.subscribe(m)),m()},g=t.subscribe(E),v=yr(n,m);E(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{c=!0,v(),b?.(),g()})}var ll=200;function cl({startVersion:e,limit:t=ll}){let n=[],r=e;const s=o=>{n=n.filter(i=>i.version>o),r=Math.max(r,o)};return{record(o){!o.changes?.length&&!o.contentReplaced||(n.push(o),n.length>t&&s(n[n.length-t-1].version))},rebase(o,i){if(i<r)return null;const c=n.filter(u=>u.version>i);s(i);let l=o;for(const u of c){if(u.fromCanvas||u.contentReplaced||!u.changes)return null;const d=u.changes,p=[];for(const m of l){const b=ei(m.range,d,"after");if(!b)return null;p.push({range:b,text:m.text})}l=p}return l}}}function dl(e,t){let n=0;return e.map(({start:r,end:s,text:o})=>{const i=new J(r,t.slice(r,s),r+n,o);return n+=o.length-(s-r),i})}function ul(e,t){const n=[...e].sort((r,s)=>r.range.start-s.range.start);return dl(n.map(({range:r,text:s})=>({start:r.start,end:r.end,text:s})),t)}function fl(e){return[...e].sort((t,n)=>n.oldPosition-t.oldPosition).map(t=>({range:{start:t.oldPosition,end:t.oldEnd},text:t.newText}))}var St=a.createIdentifier$1("canvas.sandboxFill");function Lr(e){return e.getInstance(St)?.pipeline.isEventsLocked()===!0}function It(e){Me(e,{origin:"canvas-channel"})}function pl(e){const t=se(e),n=Y(e);let r;const s=(l,u)=>{const d=l.get().docId;let p=!1,m=null,b=null;const S=cl({startVersion:l.get().version});let E=l.getContent();const g=async(P,h)=>{if(b){b.push({edits:P,rev:h});return}b=[{edits:P,rev:h}];try{do{const w=b.splice(0,b.length);await n.sendAsync(a.EVENT_TYPES.SANDBOX_UPDATE_ENTITY,{edits:w.map(f=>f.edits),guid:d,rev:w[w.length-1].rev})}while(b.length)}finally{b=null}},v=(P,h)=>{const w=b?.splice(0,b.length)??[];w.length&&n.sendAsync(a.EVENT_TYPES.SANDBOX_UPDATE_ENTITY,{edits:w.map(f=>f.edits),guid:d,rev:w[w.length-1].rev}).catch(It),n.sendAsync(a.EVENT_TYPES.SANDBOX_UPDATE_ENTITY,{edits:[P],guid:d,rev:l.get().version,...h!==null?{changeId:h}:{}}).catch(It)},_=P=>{const{guid:h,pushUndoStop:w}=P;if(h!==d)return;const f=ui(P);let{edits:y}=P;if(f.baseRev!==null){const O=S.rebase(y,f.baseRev);if(!O){Me(new Error("canvas batch conflicts with newer document changes"),{origin:"canvas-channel"}),v([],f.changeId);return}y=O}const T=l.get().version;try{p=!0,m=f.changeId;const O=ul(y,l.getContent());w===!1?u.applyWithoutHistory(O):l.mutate({changes:O},{source:Lr(e)?"system":"user"})}finally{p=!1,m=null}l.get().version===T&&f.baseRev!==null&&v([],f.changeId)},I=l.subscribe(({changes:P,version:h})=>{const w=l.getContent(),f=!P?.length&&w!==E;if(E=w,S.record({version:h,changes:P,contentReplaced:f,fromCanvas:p}),!P?.length)return;const y=fl(P);p?v(y,m):g(y,h).catch(It)}),A=n.addListener(a.EVENT_TYPES.APPLICATION_UPDATE_ENTITY,_);return()=>{I(),A.dispose()}};let o;const i=()=>{const l=t.current(),u=t.history(),d=l?.get().docId;d!==o&&(r?.(),r=void 0,o=d,l&&u&&(r=s(l,u)))},c=t.subscribe(i);i(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r?.(),c()})}var ml=300,hl=15e3,Nr="em-canvas-busy-style";function gl(){if(document.getElementById(Nr))return;const e=document.createElement("style");e.id=Nr,e.textContent="@keyframes em-canvas-busy-spin{to{transform:rotate(360deg)}}",document.head.appendChild(e)}function El(e){const t=e.getBoundingClientRect(),n=document.createElement("div");return n.setAttribute("aria-busy","true"),Object.assign(n.style,{position:"fixed",left:`${t.left}px`,top:`${t.top}px`,width:`${t.width}px`,height:`${t.height}px`,cursor:"progress",display:"flex",alignItems:"center",justifyContent:"center"}),e.appendChild(n),{showSpinner(){gl(),n.style.background="rgba(128, 128, 128, 0.15)";const r=document.createElement("div");Object.assign(r.style,{width:"32px",height:"32px",borderRadius:"50%",border:"3px solid rgba(128, 128, 128, 0.35)",borderTopColor:"rgba(80, 80, 80, 0.9)",animation:"em-canvas-busy-spin 0.8s linear infinite"}),n.appendChild(r)},remove:()=>n.remove()}}var bl=8e3;function vl(){return{element:document.createElement("iframe"),ready:()=>Promise.reject(new Error("[canvas] нет элемента монтирования")),reload:()=>Promise.resolve(),reloadQuietly:()=>Promise.resolve(),scrollBy:()=>{},shown:!1,whenShown:()=>Promise.resolve(),alignTo:()=>{},resize:()=>{},dispose:()=>{}}}var _l=e=>{for(let t=e?.parentElement??null;t;t=t.parentElement){const n=getComputedStyle(t).overflowY;if(n==="auto"||n==="scroll"||n==="hidden")return t}return null};function yl(e,t,n,r,s){const o=n.readyTimeoutMs??bl,i=document.createElement("div");i.dataset.canvasHost=e,r&&(i.dataset.canvasPlace=r),i.style.position="fixed",i.style.overflow="hidden",i.style.visibility="hidden";const c=n.resolveSrc(e),l=document.createElement("iframe");l.setAttribute("sandbox",n.resolveSandbox(c)),l.setAttribute("allow","clipboard-read; clipboard-write"),l.setAttribute("title","Email content"),l.style.width="100%",l.style.border="0",l.style.display="block",l.style.minHeight="600px",l.src=c,i.appendChild(l),t.appendChild(i),n.mark?.("created"),s||n.onCreated?.(l);const u=new a.Disposable;let d=!1,p=!1,m,b,S,E;const g=()=>{clearTimeout(E),E=setTimeout(()=>{p||(p=!0,b?.(new Error(`[canvas] ${e}: документ не загрузился за ${o} мс`)))},o)},v=()=>d?(S=Promise.resolve(),p=!0,S):(p=!1,S=new Promise((L,F)=>{m=L,b=F}),g(),S),_=()=>{if(clearTimeout(E),d=!0,p){S=Promise.resolve();return}p=!0,n.mark?.("loaded"),m?.()};l.addEventListener("load",_),u.addDispose(()=>{clearTimeout(E),l.removeEventListener("load",_)});let I;const A=()=>{I??=n.bindResizer?.(l)};let P=null,h=null,w;const f=()=>{if(!P){i.style.visibility="hidden",l.removeAttribute("id");return}n.elementId&&(l.id=n.elementId);const L=P.getBoundingClientRect(),F=h?.isConnected?h:_l(P),k=F?F.getBoundingClientRect():null,V=k?Math.max(L.top,k.top):L.top,de=k?Math.min(L.bottom,k.bottom):L.bottom,tt=Math.max(0,de-V);i.style.visibility=tt>0?"visible":"hidden",i.style.left=`${L.left}px`,i.style.top=`${V}px`,i.style.width=`${L.width}px`,i.style.height=`${tt}px`,l.style.transform=`translateY(${L.top-V}px)`};let y="",T="",O=0,x;const z=()=>{if(!P){x=void 0;return}x=window.requestAnimationFrame(z);const L=P.getBoundingClientRect(),F=h?.isConnected?h.getBoundingClientRect():void 0,k=`${Math.round(L.left)}:${Math.round(L.top)}:${Math.round(L.width)}:${Math.round(L.height)}:${F?`${Math.round(F.top)}:${Math.round(F.height)}`:"-"}`;k!==y&&(y=k,f());const V=l.getBoundingClientRect().height;V>0&&V!==O&&(O=V,P.style.height=`${V}px`);const de=getComputedStyle(P).pointerEvents;de!==T&&(T=de,i.style.pointerEvents=de)},D=()=>{x===void 0&&P&&(x=window.requestAnimationFrame(z))},R=()=>{x!==void 0&&(window.cancelAnimationFrame(x),x=void 0)},U=()=>f();let M=[];const G=(L,F)=>{if(h=F,L&&M.length>0){const k=M;M=[],k.forEach(V=>V())}if(L===P){f();return}if(w?.disconnect(),w=void 0,P&&P.style.removeProperty("height"),y="",O=0,T="",P=L,!L){R(),f();return}n.onShown?.(l);try{if(typeof ResizeObserver=="function"){const k=new ResizeObserver(f);typeof k.observe=="function"&&(w=k,w.observe(L))}}catch{w=void 0}f(),A(),D()};window.addEventListener("scroll",U,!0),window.addEventListener("resize",U),u.addDispose(()=>{w?.disconnect(),x!==void 0&&window.cancelAnimationFrame(x),window.removeEventListener("scroll",U,!0),window.removeEventListener("resize",U)});const ae=L=>{d=!1,L&&n.onReload?.(l);let F;p||S===void 0?F=v():(g(),F=S);try{l.contentWindow?.location.reload()}catch{l.src=c}return F};return{element:l,ready(){return S??v()},reload:()=>ae(!0),reloadQuietly:()=>ae(!1),get shown(){return P!==null},whenShown(){return P!==null?Promise.resolve():new Promise(L=>{M.push(L)})},alignTo(L,F){G(L,F??null)},scrollBy(L,F){for(let k=P?.parentElement??null;k;k=k.parentElement){const V=getComputedStyle(k);if((V.overflowY==="auto"||V.overflowY==="scroll")&&k.scrollHeight>k.clientHeight){k.scrollTop+=F,k.scrollLeft+=L;return}}window.scrollBy(L,F)},resize(){I?.resize()},dispose(){G(null,null),I?.dispose(),u.dispose(),i.remove()}}}function Sl(e){const t=new Map;let n="a";const r=()=>n==="a"?"b":"a",s=(d,p)=>d==="email"?`email:${p??n}`:d;let o,i=[];const c=()=>{i.forEach(d=>clearTimeout(d)),i=[],o?.remove(),o=void 0},l=new Map,u=(d,p,m)=>{const b=s(d,p),S=t.get(b);if(S)return S;const E=e.resolveMount();if(!E)return vl();const g=yl(d,E,e,d==="email"?p??n:void 0,m);return t.set(b,g),g};return{get:d=>u(d),current:d=>u(d),peek:d=>t.get(s(d)),spare:()=>t.get(s("email",r())),ensureSpare:()=>u("email",r(),!0),promote(){const d=t.get(s("email",r()));if(!d)return;const p=t.get(s("email"));n=r();const m=l.get("email");d.alignTo(m?.slot??null,m?.clip??null),p?.alignTo(null)},alignSurface(d,p,m){l.set(d,{slot:p,clip:m??null}),(p?u(d):t.get(s(d)))?.alignTo(p,m??null)},visible(){for(const d of t.values())if(d.shown)return d},byWindow(d){if(d){for(const p of t.values())if(p.element.contentWindow===d)return p}},busy(d){c();const p=d?e.resolveMount():void 0;if(!p)return;const m=El(p);o=m,i=[setTimeout(()=>m.showSpinner(),ml),setTimeout(c,hl)]},dispose(){c(),t.forEach(d=>d.dispose()),t.clear(),l.clear(),n="a"}}}var Il=a.createIdentifier$1("canvas.resizerBinder"),wt=a.createIdentifier$1("canvas.service"),wl={created:q.canvasCreated,loaded:q.canvasLoaded};function Tl(e,t){if(e.getInstance(wt))return;const n=Sl({resolveMount:()=>t.resolveMount(),resolveSrc:s=>t.resolveSrc(s),resolveSandbox:Ta,elementId:t.elementId,bindResizer:s=>e.getInstance(Il)?.(s),onCreated:s=>Ge(e,s,"fresh"),onReload:s=>Ge(e,s,"fresh"),onShown:s=>Ge(e,s,"switch"),mark:s=>t.mark?.(wl[s])}),r=Y(e).addListener(a.EVENT_TYPES.SANDBOX_WHEEL,s=>{n.visible()?.scrollBy(s?.deltaX??0,s?.deltaY??0)});e.inject(wt,n),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r.dispose(),n.dispose()})}function Ge(e,t,n){const r=Y(e),s=t.contentWindow;if(!s)return;const o=r.getTarget()===s;o&&n==="switch"||(n==="fresh"&&(r.forget(s),o&&r.setTarget(void 0)),r.setTarget(s),la(r))}function Al(e,t){Ge(e,t,"promote")}function Cl(e,t){const n=t.contentWindow;n&&Y(e).greet(n)}function Pl(e,t){const n=t.contentWindow;n&&Y(e).forget(n)}function ie(e){return e.getInstance(wt)}function Dl(e){const t=Y(e),n=()=>ie(e)?.byWindow(t.getTarget()),r=t.addListenerAsync(a.EVENT_TYPES.RELOAD,async()=>{await n()?.reload()}),s=t.addListener(i=>{i.data?.operation===a.EVENT_TYPES.SANDBOX_RESIZED&&n()?.resize()}),o=H(e,a.events.ON_EMAIL_INIT_ID)(()=>{n()?.resize()});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r.dispose(),s.dispose(),o.dispose()})}var Xp=a.createIdentifier$1("HeadlessMode"),Rl=a.createIdentifier$1("HiddenMount");function Ol(e){return e.getOrCreateInstance(Rl,()=>pe(!1))}function xr(){const e=document.createElement("div");return e.dataset.canvasOffscreen="true",e.style.position="absolute",e.style.left="-10000px",e.style.top="-10000px",e.style.width="1600px",e.style.height="1000px",document.body.appendChild(e),e}function Ll(e){const t=e.getInstance(a.OPTIONS_SOURCE_ID);let n,r;e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r?.remove(),r=void 0}),Tl(e,{resolveMount:()=>n,resolveSrc:o=>wr(o==="block"),elementId:"email_iframe",mark:o=>j(o)}),t?.watch(o=>{if(n)return;const i=o?.element;if(i instanceof HTMLElement)n=i;else if(o!==void 0)n=r??=xr();else return;ie(e)?.get("email")});let s;e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{s?.remove(),s=void 0}),Ol(e).watch(o=>{const i=ie(e);if(i){if(o){s??=xr(),i.alignSurface("email",s,s);return}s&&(i.alignSurface("email",null),s.remove(),s=void 0)}})}var Mr=a.createIdentifier$1("canvas.headerFlow"),kr=["subject","preheader"],Nl=3e3,xl={subject:a.EVENT_TYPES.SANDBOX_SUBJECT_UPDATE,preheader:a.EVENT_TYPES.SANDBOX_PREHEADER_UPDATE};function Ml(e){const t=se(e),n=Y(e),r=E=>E?"remote":Lr(e)?"system":"user",s=(E,{guid:g,value:v,forced:_})=>{const I=Ie(t);if(!I||typeof v!="string"||g&&g!==I.get().docId)return;const A=t.forcedHeaders();if(A?.[E]&&!_&&v!==A[E])return;_&&t.endForcedHeaders();const P=I.get().attributes[E]??"";c=!0;try{Be(I,{[E]:v},{source:r(_)})}finally{c=!1}o[E]=v,Q(e,a.events.ON_HEADER_APPLIED_ID).fire({field:E,value:v,forced:!!_,isGenerated:v!==P&&!!v})};let o={},i,c=!1,l=Promise.resolve();const u=(E,g,v)=>{l=n.sendAsync(xl[E],{value:g,guid:Ie(t)?.get().docId,...v?{force:!0,echo:!0}:{}}).catch(_=>{})};let d;e.inject(Mr,{whenDelivered:async()=>{await l},reassert:E=>{const g=Ie(t),v=kr.filter(_=>E[_]);if(!(!g||v.length===0)){c=!0;try{Be(g,Object.fromEntries(v.map(_=>[_,E[_]])),{source:"system"})}finally{c=!1}t.beginForcedHeaders({subject:E.subject??"",preheader:E.preheader??""}),clearTimeout(d),d=setTimeout(()=>t.endForcedHeaders(),Nl);for(const _ of v)o[_]=E[_],u(_,E[_],!0)}}});const p=()=>{i?.(),i=void 0;const E=Ie(t);if(!E){o={};return}const g=E.get().attributes;o={subject:g.subject,preheader:g.preheader},i=E.subscribe(({source:v})=>{if(c)return;const _=E.get().attributes,I=t.forcedHeaders();for(const A of kr){const P=_[A];P!==o[A]&&(o[A]=P,u(A,P??"",v==="system"&&I?.[A]!==void 0))}})};p();const m=t.subscribe(p),b=n.addListenerAsync(a.EVENT_TYPES.APPLICATION_SUBJECT_UPDATE,E=>s("subject",E)),S=n.addListenerAsync(a.EVENT_TYPES.APPLICATION_PREHEADER_UPDATE,E=>s("preheader",E));e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{b.dispose(),S.dispose(),m(),i?.(),clearTimeout(d)})}function Fr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Tt(e,t){const n={...e};for(const r of Object.keys(t)){const s=t[r],o=e[r];Fr(s)&&Fr(o)?n[r]=Tt(o,s):s!==void 0&&(n[r]=s)}return n}function kl(e,t){const n=a.COMMON_STYLES;if(typeof e=="string"){const r=e.trim();if(r.startsWith("{"))try{const s=JSON.parse(r);if(s&&typeof s=="object"&&!Array.isArray(s)&&Object.keys(s).length>0)return Tt(n,s)}catch{}}return t&&typeof t=="object"&&!Array.isArray(t)?Tt(n,t):n}function Fl(){const e=window.localStorage.getItem(a.LOCAL_STORAGE_ITEMS.em_color_scheme),t=matchMedia("(prefers-color-scheme: dark)").matches?a.DARK:a.LIGHT;return e&&e!=="system"?e:t}function Bl(){const e=window.localStorage.getItem(a.LOCAL_STORAGE_ITEMS.em_code_mode_settings);if(!e)return!1;try{const t=JSON.parse(e);return!!(t?.isCodeMode&&(t.codeModeDirection==="left"||t.codeModeDirection==="right"))}catch{return!1}}function jl(e){const{config:t}=e;return{operation:a.EVENT_TYPES.UPDATE_PREVIEW,theme:e.theme,commonStyles:kl(e.emailCommonStyles,e.defaultCommonStyles),pathEnabled:t.pathEnabled,copyPasteEnabled:t.copyPasteEnabled,saveBlockEnabled:t.saveBlockEnabled,editImageControlEnabled:t.editImageControlEnabled,codeMode:e.codeMode,elementAIimageEnabled:t.elementAIimageEnabled,imageCenterStockEnabled:t.imageCenterStockEnabled,imageCenterGifEnabled:t.imageCenterGifEnabled,imageCenterEditorEnabled:t.imageCenterEditorEnabled,blocksAddPanelEnabled:t.blocksAddPanelEnabled!==!1&&t.blocksSectionsShow!==!1,lockEditor:t.lockEditor,appName:e.appName}}function Ul(e){const t=Y(e),n=e.getInstance(a.CONFIG_SOURCE_ID),r=e.getInstance(a.OPTIONS_SOURCE_ID),s=se(e);let o,i="";const c=()=>{const v=n?.get()??{},_=jl({config:v,emailCommonStyles:s.current()?.get().attributes?.common_styles,defaultCommonStyles:o,theme:Fl(),codeMode:Bl(),appName:"useblocks"}),I=JSON.stringify(_);I!==i&&(i=I,t.send(_))},l=t.onInit(()=>{i="",c()}),u=()=>{t.isInited()&&c()},d=n?.watch(u),p=r?.watch(v=>{o=v?.commonStyles,u()});let m;const b=()=>{m?.(),m=s.current()?.subscribe(u),u()};b();const S=s.subscribe(b),E=matchMedia(a.PREFERS_COLOR_SCHEME_DARK),g=()=>u();E.addEventListener("change",g),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{l.dispose(),d?.dispose(),p?.dispose(),m?.(),S(),E.removeEventListener("change",g)})}var At;(function(e){function t(s,o,i=(c,l)=>c===l){if(s===o)return!0;if(s.length!==o.length)return!1;for(let c=0;c<s.length;c++)if(!i(s[c],o[c]))return!1;return!0}e.isEqual=t;function n(s,o=i=>i){const i=new Set;return s.filter(c=>{const l=o(c);return i.has(l)?!1:(i.add(l),!0)})}e.unique=n;function r(s=[],o=[],i=(c,l)=>c===l){const c=[],l=[],u=[];for(const d of s){const p=o.find(m=>i(d,m));p?u.push({prev:d,next:p}):l.push(d)}for(const d of o)s.find(p=>i(d,p))||c.push(d);return{added:c,removed:l,exists:u}}e.diff=r})(At||(At={}));function Hl(e,t){return e.type===t.type&&e.key===t.key}function $l(e){const t=Y(e),n=()=>e.getServices(a.SANDBOX_EXTENSIONS_ID)??[];let r=[];const s=t.onInit(()=>{r=n(),t.send(a.EVENT_TYPES.SANDBOX_ADD_EXTENSIONS,r)}),o=a.getServiceContainerId(a.SANDBOX_EXTENSIONS_ID),i=e.onInject(c=>{if(c!==o)return;const l=n();if(!t.isInited()){r=l;return}const{added:u,removed:d}=At.diff(r,l,Hl);if(r=l,d.length){if(d.some(p=>p.type==="script")){t.send(a.EVENT_TYPES.RELOAD);return}t.send(a.EVENT_TYPES.SANDBOX_REMOVE_EXTENSIONS,d.map(p=>p.key))}u.length&&t.send(a.EVENT_TYPES.SANDBOX_ADD_EXTENSIONS,u)});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{s.dispose(),i?.dispose()})}var Gl=a.createIdentifier$1("prewarm.editorVisible");function Vl(e){if(typeof requestAnimationFrame!="function"){setTimeout(e,0);return}requestAnimationFrame(()=>requestAnimationFrame(e))}function Yl(e={}){const t=e.paint??Vl;let n=!1,r=!1,s=!1,o=!1,i=!1;const c=[],l=()=>{i||o||!n||!r||!s||(o=!0,t(()=>{i=!0,j(q.editorVisible);for(const u of c.splice(0))u()}))};return{noteShellVisible(){n=!0,l()},notePagePainted(){r=!0,l()},noteContentShown(){s=!0,l()},whenVisible(u){if(i){u();return}c.push(u)},contentShown:()=>s}}function ql(e){return e.getOrCreateInstance(Gl,()=>Yl())}var zl=500,Kl=500,Wl=5e3;function Xl(e){const t=e.quietMs??zl,n=e.floorMs??Kl,r=e.ceilingMs??Wl;let s,o,i=0;const c=()=>{clearTimeout(s),clearTimeout(o),s=void 0,o=void 0},l=()=>{c(),e.run()},u=()=>{clearTimeout(s);const d=n-(Date.now()-i);s=setTimeout(l,Math.max(t,d))};return{start(){c(),i=Date.now(),o=setTimeout(l,r),u()},notify(){s!==void 0&&u()},cancel:c}}function Jl({attributes:e,readContent:t,docId:n,hasSession:r,serverId:s,show:o}){if(!r)return;const i={id:s??void 0,renderGuid:n,showId:o?.id,isNew:s==null,showToken:o?.token},c={...e,...i};return Object.defineProperty(c,"html",{get:()=>t()??"",enumerable:!0,configurable:!0}),c}var Br="self-init:";function Ql(e){return e.startsWith(Br)}function jr(e,t){const n=e.getActiveShowRequest();return Ql(t)?n===null:n?.showId===t&&e.hasPendingShow(t)}function Zl(e){const t=()=>e.initPipeline(),n=e.messageService,r=()=>e.waitScope?.()??t();let s="";const o=()=>e.readDocument()?vt(e.readDocument()):s,i=()=>ge(e.container).editorPolicy,c=()=>e.readEmail(),l=()=>{const u=c();return{...u,id:e.isTemplate()||u.isNew?void 0:u.id,html:o()}};return{readContent:o,publicEmail:l,sendInitStart:()=>ee(n,"INIT_START",a.EVENT_TYPES.SANDBOX_INIT_START,{guid:c().renderGuid},void 0,r()),sendInited:()=>ee(n,"INITED",a.EVENT_TYPES.SANDBOX_INITED,{guid:c().renderGuid},void 0,r()),async sendContent(){const u=c(),{html:d,hasBrowserExtensionArtifacts:p}=Pr(u?.html||"");p&&e.events.browserExtensionDetected(),Dr(e.readDocument(),d),s=d,await ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,_t(o(),u.renderGuid,i(),e.readDocument()?.get().version),{guid:u.renderGuid,emailId:u.id??null},r())},refreshContent:()=>ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,_t(o(),c().renderGuid,i(),e.readDocument()?.get().version),void 0,r()),sendPreheader:async()=>{const u=c();if(u.preheader!==void 0)return ee(n,"PREHEADER",a.EVENT_TYPES.SANDBOX_PREHEADER_UPDATE,{value:u.preheader,guid:u.renderGuid,force:!0},void 0,r())},sendSubject:async()=>{const u=c();if(u.subject!==void 0)return ee(n,"SUBJECT",a.EVENT_TYPES.SANDBOX_SUBJECT_UPDATE,{value:u.subject,guid:u.renderGuid,force:!0},void 0,r())},revealFilled:()=>e.revealFilled?.()??Promise.resolve(),showFilled:u=>e.showFilled?.(u),readTarget:()=>e.readTarget?.(),fireWillInit:()=>e.events.willInit(l()),fireInit(u,d){if(!jr(t(),u)){t().getActiveShowRequest()?.showId;return}const p=c();p.id,p.renderGuid,t().completeShow(u),Be(e.readDocument(),{is_inited:!0},{source:"system"});const m=l();return d&&(m.reset=!0),e.events.inited(m)},fireEmailChanged(){e.events.emailChanged(l())},fireContentChanged(){e.events.contentChanged(o())}}}function ec(e){const t=()=>e.initPipeline();let n=!1,r,s,o,i=0,c;const l=Zl({...e,waitScope:()=>({getSandboxTimeoutMs:g=>t().getSandboxTimeoutMs(g),getSandboxReadyTimeoutMs:()=>t().getSandboxReadyTimeoutMs(),signal:c?.signal??t().signal})});let u;const d=(g,v)=>{if(u===g)return;u=g;const _=i;setTimeout(()=>{i!==_||t().signal.aborted||S(g,v).catch(()=>{})},0)},p=()=>{c?.abort(),c=void 0};let m;const b=()=>{const g=t().signal;g!==m&&(m?.removeEventListener("abort",p),m=g,g.addEventListener("abort",p))};async function S(g,v){const _=++i;p(),c=new AbortController,b();const I=()=>i!==_,A=l.readTarget(),P=t().generation,h=()=>P===t().generation&&!t().signal.aborted,w=v?"init:reset-":"init:";if(!v){const T=l.publicEmail();T?.id,T?.renderGuid,T?.preheader}let f=!1,y=!1;try{n=!0,await l.sendInitStart(),l.fireWillInit(),await(v?l.refreshContent():l.sendContent()),f=!0,v||l.publicEmail()?.id;try{await l.sendPreheader()}catch(T){`${w}`,String(T)}try{await l.sendSubject()}catch(T){`${w}`,String(T)}if(I()||l.showFilled(A),await l.sendInited(),y=!0,s===g){const T=e.readSandboxGeneration?.()??o;T!==void 0&&(r=T)}await l.revealFilled()}catch(T){throw I()||(`${w}`,{...e.describeSurface?.(),error:String(T)},void 0),!I()&&jr(t(),g)&&t().failShow(g,T),T}finally{E(g,v,w,{superseded:I(),sessionGeneration:P,contentApplied:f,sandboxInitedAcked:y,commit:h()})}}function E(g,v,_,I){const{superseded:A,contentApplied:P,sandboxInitedAcked:h}=I;if(A){`${_}`;return}h&&I.commit?l.fireInit(g,v||void 0):h?(`${_}`,I.sessionGeneration,t().generation,t().signal.aborted,void 0):P?(`${_}`,void 0):(`${_}`,void 0),n=!1,c=void 0,!h&&s===g&&(s=void 0,r===o&&(r=void 0)),!h&&P&&d(g,v)}return{channel:l,isEventsLocked:()=>n,filledGeneration:()=>r,markFilled:g=>{r=g},lastCorrelation:()=>s,markCorrelation:g=>{s=g},bumpRunSeq:()=>{i+=1},noteSandboxGeneration:g=>{o=g},fill:g=>S(g,!1),refill:g=>S(g,!0),stop:()=>{i+=1,p(),n=!1,m?.removeEventListener("abort",p),m=void 0}}}function tc(e,t,n){if(!e?.renderGuid||!e.showId||e.showId!==t.showId)return!1;if(t.isNew)return e.id==null;const r=t.emailId??t.navId;return r!=null&&String(e.id??"")!==String(r)?!1:Ur(e,n)}function Ur(e,t){return t?e?.id==null?!1:String(e.id)===String(t):!0}function nc(e){const{pipeline:t,readEmail:n,readDocument:r,readRouteEmailId:s,readSandboxGeneration:o}=e,i=d=>{const p=n(),m=s();if(!tc(p,d,m)){d.showId,d.navId,d.emailId,p?.id,p?.showId,p?.renderGuid;return}d.showId,p?.id,p?.renderGuid,t.markFilled(o()),t.markCorrelation(d.showId),t.fill(d.showId).catch(()=>{})};return{showRequested:d=>{i(d)},showRequestIdentityChanged:()=>{const d=e.initPipeline().getActiveShowRequest();d&&i(d)},selfInitChanged:()=>{if(e.initPipeline().getActiveShowRequest())return;const d=o();if(t.filledGeneration()===d)return;const p=n(),m=s();if(!p?.renderGuid||!Ur(p,m))return;const b=`${Br}${p.renderGuid}`;t.markFilled(d),t.markCorrelation(b);const S=r()?.isReady()===!0;p.id,p.renderGuid,(S?E=>t.refill(E):E=>t.fill(E))(b).catch(()=>{t.lastCorrelation()===b&&t.markFilled(void 0)})},saasChanged:()=>{const d=n();d?.renderGuid,d?.showToken,d?.id}}}function rc(e){return e??""}function sc(e,t,n,r){return[e??"",t??"",n==null?"":String(n),r??""].join("|")}function oc(e){const t=se(e),n=Y(e),r=()=>ne(t.sessionKey())?void 0:t.current(),s=()=>{const C=r();return Jl({attributes:C?.get().attributes??{},readContent:()=>C?.getContent(),docId:C?.get().docId,hasSession:!!C,serverId:C?.get().serverId,show:t.showFacts()})},o=()=>e.getInstance(a.INIT_PIPELINE_ID)??yt;let i={},c=!1;const l=e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(C=>{c=!!C?.element});let u=!1,d=!1,p=!1,m=0;const b=()=>{const C=ie(e);if(!C)return;const $=++m,B=C.spare();return B&&Pl(e,B.element),(B?B.reloadQuietly():C.ensureSpare()?.ready())?.then(()=>{if($!==m)return;u=!0;const Z=C.spare();Z&&Cl(e,Z.element),p&&(p=!1,T(),G())})},S=Xl({run:()=>{p||b()?.catch(()=>{})}}),E=()=>{ql(e).noteContentShown(),!u&&!p&&S.start()};let g=!1;const I=ec({container:e,messageService:n,initPipeline:o,readDocument:r,readEmail:s,revealFilled:()=>{const C=ie(e);return g&&C&&(g=!1,S.start()),c?C?.current("email").whenShown()??Promise.resolve():Promise.resolve()},showFilled:C=>{const $=ie(e),B=$?.spare()?.element.contentWindow;d&&$&&B&&C===B&&(d=!1,$.promote(),$.busy(!1),g=!0)},readTarget:()=>n.getTarget(),isTemplate:()=>!!i.isTemplate,readSandboxGeneration:()=>oe(n),describeSurface:()=>({canvasPath:y,promoted:d,spareClean:u,handshake:n.isInited(),generation:oe(n)}),events:{willInit:C=>{Q(e,a.events.WILL_EMAIL_INIT_ID).fire(C)},inited:C=>{E(),Q(e,a.events.ON_EMAIL_INIT_ID).fire(C)},contentChanged:C=>{Q(e,a.events.ON_CONTENT_CHANGED_ID).fire(C)},emailChanged:C=>{Q(e,a.events.ON_EMAIL_CHANGED_ID).fire(C)},browserExtensionDetected:()=>{Q(e,a.events.ON_BROWSER_EXTENSION_DETECTED_ID).fire()}}}),A=nc({pipeline:I,initPipeline:o,readEmail:s,readDocument:r,readRouteEmailId:()=>i.emailId,readSandboxGeneration:()=>oe(n)});let P="",h="",w="";const f=C=>C.length>0;let y="none";const T=()=>{const C=ie(e)?.spare();C&&(n.send({operation:a.EVENT_TYPES.SANDBOX_LOCK_EDIT,data:!0}),u=!1,d=!0,Al(e,C.element))},O=(C,$)=>{const B=ie(e);if(!B)return!0;const Z=B.spare(),ue=Z&&u?"spare":"prepare";if(y=ue,B.busy(!0),Z&&u)return T(),!0;S.cancel(),n.send({operation:a.EVENT_TYPES.SANDBOX_LOCK_EDIT,data:!0});const fe=b();if(fe===void 0)return y="reload",B.busy(!1),B.peek("email")?.reload(),!0;p=!0;const hn=m;return fe.catch(()=>{!p||hn!==m||(p=!1,y="reload",B.busy(!1),B.peek("email")?.reload())}),!1},x=()=>{de(),I.noteSandboxGeneration(oe(n));const C=s(),$=sc(C?.renderGuid,C?.showId,C?.id,i.emailId),B=rc(C?.renderGuid);if(B!==h){const fe=f(h),hn=h;h=B,fe&&O(hn,B)}if(p)return;$!==P&&(P=$,A.showRequestIdentityChanged());const Z=r(),ue=`${$}|${Z?.get().docId??""}|${oe(n)}`;ue!==w&&Z?.isReady()===!0&&(w=ue,A.selfInitChanged()),A.saasChanged(),U()};let z=!1,D="",R="";const U=()=>{const C=s();if(!C?.renderGuid)return;const $=I.channel.readContent(),B=JSON.stringify([C.preheader,C.common_styles,C.meta,C.subject,C.utm_parameters?.utm_campaign??"",C.utm_parameters?.utm_content??"",C.utm_parameters?.utm_medium??"",C.utm_parameters?.utm_source??"",C.utm_parameters?.utm_term??""]),Z=z&&$!==R,ue=z&&B!==D;if(z=!0,R=$,D=B,I.isEventsLocked())return;const fe={...C,id:i.isTemplate||C.isNew?void 0:C.id,html:$};if(Z){Q(e,a.events.ON_CONTENT_CHANGED_ID).fire($),Q(e,a.events.ON_EMAIL_CHANGED_ID).fire(fe);return}ue&&C.is_inited&&Q(e,a.events.ON_EMAIL_CHANGED_ID).fire(fe)};let M=!1;const G=()=>{M||(M=!0,queueMicrotask(()=>{M=!1,x()}))};e.inject(St,{pipeline:I,setRoute:C=>{C.emailId===i.emailId&&!!C.isTemplate==!!i.isTemplate||(i=C,G())}});let ae,L;const F=()=>{const C=r()?.get().docId;C!==L&&(ae?.(),L=C,ae=r()?.subscribe(G)),G()};let k,V;const de=()=>{const C=e.getInstance(a.INIT_PIPELINE_ID);!C||C===k||(V?.(),k=C,V=C.onShowRequested($=>A.showRequested($)))},tt=n.addListener(C=>{C.data?.operation===a.EVENT_TYPES.SANDBOX_RESIZED&&S.notify()}),Bp=t.subscribe(F),jp=yr(n,G);F(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{l?.dispose(),V?.(),jp(),Bp(),ae?.(),tt.dispose(),S.cancel(),I.stop()})}function ic(){return a.USEBLOCKS!=="useblocks"}var Ct={config:{mode:"freeUserBlocks",autosaveTimeout:5e3,autosaveRetryMaxAttempts:5,autosaveRetryIntervalMs:3e4,theme:"",themes:{},mergeTagsShow:!0,styles:"",revisionService:!1,headerShow:!0,headerTitleVisible:!0,headerPreheaderVisible:!0,headerArrowBackVisible:!0,historyEnabled:!0,codeEnabled:!0,codeSideEnabled:!0,previewIconEnabled:!0,previewModeEnabled:!0,livePreviewEnabled:!0,sendTestEnabled:!0,sharePreviewEnabled:!0,webversionEnabled:!0,commonStylesEnabled:!0,emailResponsiveControlEnabled:!0,templateNotEmAlertShow:!1,beeFreeConverterEnabled:!1,stripoConverterEnabled:!0,aiLayoutConverterEnabled:!1,emailDropdownMenuEnabled:!0,emailDropdownMenuClone:!0,emailDropdownMenuImport:!0,emailDropdownMenuConvert:!0,emailDropdownMenuLock:!0,emailDropdownMenuRemove:!0,emailExportEnabled:!0,exportHtmlEnabled:!0,exportZipEnabled:!0,exportTextEnabled:!0,exportMarkdownEnabled:!0,exportClipboardEnabled:!0,exportWebHookEnabled:!0,exportOutlookEnabled:!0,exportPdfEnabled:!0,exportPngEnabled:!0,nextButtonEnabled:!1,nextButtonText:"",saveButtonEnabled:!0,saveButtonText:"",commandButtonsEnabled:!0,emailIdShow:!1,sidePanelFloating:!0,desktopMobileSwitchRule:!0,desktopMobileSwitchPanel:!1,onlyCodeModeInMobile:!1,pathEnabled:!0,copyPasteEnabled:!0,saveBlockEnabled:!0,globalBlockCheckboxEnabled:!0,editImageControlEnabled:!0,lockEditor:!1,lockPreheaderAndTitle:!1,disableSideMenu:!1,menuDirection:"right",defaultBuildPanel:"",commentsEnabled:!0,aiAssistentEnabled:!0,optimizeEnabled:!0,optimizeLinksEnabled:!0,optimizeImagesEnabled:!0,optimizeSpamAssassinEnabled:!0,optimizeCheckCodeEnabled:!0,settingsEnabled:!0,settingsTabEnabled:!0,UTMEnabled:!0,annotationsEnabled:!1,subjectEnabled:!0,preheaderEnabled:!0,descriptionEnabled:!0,tagsEnabled:!0,isTemplateEnabled:!0,switchDesktopMobilePropsEnabled:!0,stepToOtherElementEnabled:!0,deleteButtonEnabled:!0,toggleSidePanel:!0,blocksSectionsShow:!0,blocksEmptyEnabled:!0,blocksSavedEnabled:!0,blocksCommonEnabled:!0,blocksTemplateEnabled:!0,blocksSearchEnabled:!0,blocksAddPanelEnabled:!0,imagePathDropdownEnabled:!0,formFieldImageTitleEnabled:!0,formFieldBorderEnabled:!0,formFieldBorderRadiusEnabled:!0,formFieldBoxShadowEnabled:!0,formFieldVisibilityEnabled:!0,formFieldExportAsPictureEnabled:!0,emailPaneDesktopSize:0,formButtonFieldInsertImageEnabled:!0,formButtonFieldVerticalAlignEnabled:!0,formButtonFieldTextAlignEnabled:!0,formButtonFieldBackgroundImageEnabled:!0,formButtonFieldPaddingsEnabled:!0,formCellFieldVerticalAlignEnabled:!0,formCellFieldBackgroundImageEnabled:!0,formCellFieldPaddingsEnabled:!0,formCellFieldSizeEnabled:!0,formButtonFieldReplacerEnabled:!0,formLinkFieldInsertImageEnabled:!0,formTableFieldBackgroundImageEnabled:!0,formDivFieldBackgroundImageEnabled:!0,formImageFieldVerticalAlignEnabled:!0,formImageFieldReplacerEnabled:!0,formImageFieldHeightEnabled:!0,formTextFieldTypografEnabled:!0,formTextFieldReplacerEnabled:!0,formEmailFieldBackgroundImageEnabled:!0,elementImageEnabled:!0,elementTextEnabled:!0,elementHeaderEnabled:!0,elementButtonEnabled:!0,elementListULEnabled:!0,elementListOLEnabled:!0,elementDividerEnabled:!0,elementSpacerEnabled:!0,elementSocialEnabled:!0,elementTableEnabled:!1,elementCountdownEnabled:!0,elementVideoEnabled:!0,elementAIimageEnabled:!0,elementAItextEnabled:!0,elementCarouselEnabled:!0,elementAccordionEnabled:!0,elementFormEnabled:!1,preventSendDataToEM:!1,imageInfoToolUrl:"",resourceProxy:void 0,resourceProxyPolicy:void 0,imageCenterFileManagerView:!1,imageCenterLocalUploadEnabled:!0,imageCenterStockEnabled:!0,imageCenterGifEnabled:!0,imageCenterIconStockEnabled:!0,imageCenterEditorEnabled:!0,compressMaxSize:1,compressMaxWidthOrHeight:2e3,ampExportEnabled:!0,formFieldAmpVisibilityEnabled:!0,testEmails:[],pushToGTM:!0,activeNextButton:!0,iconStrokeWidth:1.4},project:void 0},ac={config:{mode:"pro",autosaveTimeout:5e3,autosaveRetryMaxAttempts:5,autosaveRetryIntervalMs:3e4,theme:"",themes:{},mergeTagsShow:!0,styles:"",revisionService:!1,headerShow:!0,headerTitleVisible:!0,headerPreheaderVisible:!0,headerArrowBackVisible:!0,historyEnabled:!0,codeEnabled:!0,codeSideEnabled:!0,previewIconEnabled:!0,previewModeEnabled:!0,livePreviewEnabled:!0,sendTestEnabled:!0,sharePreviewEnabled:!0,webversionEnabled:!0,commonStylesEnabled:!0,emailResponsiveControlEnabled:!0,templateNotEmAlertShow:!1,beeFreeConverterEnabled:!0,stripoConverterEnabled:!0,aiLayoutConverterEnabled:!1,emailDropdownMenuEnabled:!0,emailDropdownMenuClone:!0,emailDropdownMenuImport:!0,emailDropdownMenuImportButton:!1,emailDropdownMenuConvert:!0,emailDropdownMenuLock:!0,emailDropdownMenuRemove:!0,emailExportEnabled:!0,exportHtmlEnabled:!0,exportZipEnabled:!0,exportTextEnabled:!0,exportMarkdownEnabled:!0,exportClipboardEnabled:!0,exportWebHookEnabled:!0,exportOutlookEnabled:!0,exportPdfEnabled:!0,exportPngEnabled:!0,nextButtonEnabled:!1,nextButtonText:"",saveButtonEnabled:!0,saveButtonText:"",commandButtonsEnabled:!0,emailIdShow:!1,sidePanelFloating:!0,desktopMobileSwitchRule:!0,desktopMobileSwitchPanel:!1,onlyCodeModeInMobile:!1,pathEnabled:!0,copyPasteEnabled:!0,saveBlockEnabled:!0,globalBlockCheckboxEnabled:!0,editImageControlEnabled:!0,lockEditor:!1,lockPreheaderAndTitle:!1,disableSideMenu:!1,menuDirection:"right",defaultBuildPanel:"",commentsEnabled:!0,aiAssistentEnabled:!0,optimizeEnabled:!0,optimizeLinksEnabled:!0,optimizeImagesEnabled:!0,optimizeSpamAssassinEnabled:!0,optimizeCheckCodeEnabled:!0,settingsEnabled:!0,settingsTabEnabled:!0,UTMEnabled:!0,annotationsEnabled:!0,subjectEnabled:!0,preheaderEnabled:!0,descriptionEnabled:!0,tagsEnabled:!0,isTemplateEnabled:!0,switchDesktopMobilePropsEnabled:!0,stepToOtherElementEnabled:!0,deleteButtonEnabled:!0,toggleSidePanel:!0,blocksSectionsShow:!0,blocksEmptyEnabled:!0,blocksSavedEnabled:!0,blocksCommonEnabled:!0,blocksTemplateEnabled:!0,blocksSearchEnabled:!0,blocksAddPanelEnabled:!0,imagePathDropdownEnabled:!0,formFieldImageTitleEnabled:!0,formFieldBorderEnabled:!0,formFieldBorderRadiusEnabled:!0,formFieldBoxShadowEnabled:!0,formFieldVisibilityEnabled:!0,formFieldExportAsPictureEnabled:!0,emailPaneDesktopSize:0,formButtonFieldInsertImageEnabled:!0,formButtonFieldVerticalAlignEnabled:!0,formButtonFieldTextAlignEnabled:!0,formButtonFieldBackgroundImageEnabled:!0,formButtonFieldPaddingsEnabled:!0,formButtonFieldReplacerEnabled:!0,formCellFieldVerticalAlignEnabled:!0,formCellFieldBackgroundImageEnabled:!0,formCellFieldPaddingsEnabled:!0,formCellFieldSizeEnabled:!0,formLinkFieldInsertImageEnabled:!0,formTableFieldBackgroundImageEnabled:!0,formDivFieldBackgroundImageEnabled:!0,formImageFieldVerticalAlignEnabled:!0,formImageFieldReplacerEnabled:!0,formImageFieldHeightEnabled:!0,formTextFieldTypografEnabled:!0,formTextFieldReplacerEnabled:!0,formEmailFieldBackgroundImageEnabled:!0,elementImageEnabled:!0,elementTextEnabled:!0,elementHeaderEnabled:!0,elementButtonEnabled:!0,elementListULEnabled:!0,elementListOLEnabled:!0,elementDividerEnabled:!0,elementSpacerEnabled:!0,elementSocialEnabled:!0,elementTableEnabled:!0,elementCountdownEnabled:!0,elementVideoEnabled:!0,elementAIimageEnabled:!0,elementAItextEnabled:!0,elementCarouselEnabled:!0,elementAccordionEnabled:!0,elementFormEnabled:!1,preventSendDataToEM:!1,imageInfoToolUrl:"",resourceProxy:void 0,resourceProxyPolicy:void 0,imageCenterFileManagerView:!0,imageCenterLocalUploadEnabled:!0,imageCenterStockEnabled:!0,imageCenterGifEnabled:!0,imageCenterIconStockEnabled:!0,imageCenterEditorEnabled:!0,compressMaxSize:1,compressMaxWidthOrHeight:2e3,ampExportEnabled:!0,formFieldAmpVisibilityEnabled:!0,testEmails:[],pushToGTM:!0,activeNextButton:!0,iconStrokeWidth:1.4,fileManager:{defaultFolderName:"",enableMoveFolder:!0,enableEdit:!0,enableTrash:!0,enableCopyFile:!0}},project:void 0,page:{isNew:!0,type:"email",project:0,id:"",showToken:0}},Hr=Ct,lc=["freeUserBlocks","blocks"],$r={};function cc(e){$r=e}var Gr=e=>lc.includes(e)?Hr:$r[e]??Hr,Pt={config:{mode:"simple",autosaveTimeout:5e3,autosaveRetryMaxAttempts:5,autosaveRetryIntervalMs:3e4,theme:"",themes:{},mergeTagsShow:!1,styles:"",headerShow:!0,headerTitleVisible:!0,headerPreheaderVisible:!0,headerArrowBackVisible:!0,historyEnabled:!0,codeEnabled:!0,codeSideEnabled:!0,previewIconEnabled:!0,previewModeEnabled:!0,livePreviewEnabled:!0,sendTestEnabled:!0,sharePreviewEnabled:!0,webversionEnabled:!1,commonStylesEnabled:!1,emailResponsiveControlEnabled:!1,templateNotEmAlertShow:!1,beeFreeConverterEnabled:!1,stripoConverterEnabled:!0,aiLayoutConverterEnabled:!1,emailDropdownMenuEnabled:!0,emailDropdownMenuClone:!0,emailDropdownMenuImport:!0,emailDropdownMenuImportButton:!1,emailDropdownMenuConvert:!0,emailDropdownMenuLock:!0,emailDropdownMenuRemove:!0,emailExportEnabled:!0,exportHtmlEnabled:!0,exportZipEnabled:!0,exportTextEnabled:!0,exportMarkdownEnabled:!0,exportClipboardEnabled:!0,exportWebHookEnabled:!0,exportOutlookEnabled:!1,exportPdfEnabled:!0,exportPngEnabled:!0,nextButtonEnabled:!1,nextButtonText:"",saveButtonEnabled:!0,saveButtonText:"",commandButtonsEnabled:!0,emailIdShow:!1,sidePanelFloating:!0,desktopMobileSwitchRule:!0,desktopMobileSwitchPanel:!1,onlyCodeModeInMobile:!1,pathEnabled:!0,copyPasteEnabled:!0,saveBlockEnabled:!0,globalBlockCheckboxEnabled:!0,editImageControlEnabled:!0,lockEditor:!1,lockPreheaderAndTitle:!1,disableSideMenu:!1,menuDirection:"right",defaultBuildPanel:"",commentsEnabled:!0,aiAssistentEnabled:!0,optimizeEnabled:!0,optimizeLinksEnabled:!0,optimizeImagesEnabled:!0,optimizeSpamAssassinEnabled:!0,optimizeCheckCodeEnabled:!0,settingsEnabled:!0,settingsTabEnabled:!0,UTMEnabled:!1,annotationsEnabled:!1,subjectEnabled:!0,preheaderEnabled:!0,descriptionEnabled:!0,tagsEnabled:!0,isTemplateEnabled:!0,switchDesktopMobilePropsEnabled:!0,stepToOtherElementEnabled:!0,deleteButtonEnabled:!0,toggleSidePanel:!0,blocksSectionsShow:!0,blocksEmptyEnabled:!0,blocksSavedEnabled:!0,blocksCommonEnabled:!0,blocksTemplateEnabled:!0,blocksSearchEnabled:!0,blocksAddPanelEnabled:!0,imagePathDropdownEnabled:!0,formFieldImageTitleEnabled:!0,formFieldBorderEnabled:!1,formFieldBorderRadiusEnabled:!1,formFieldBoxShadowEnabled:!1,formFieldVisibilityEnabled:!1,formFieldExportAsPictureEnabled:!1,emailPaneDesktopSize:0,formButtonFieldInsertImageEnabled:!0,formButtonFieldVerticalAlignEnabled:!0,formButtonFieldTextAlignEnabled:!0,formButtonFieldBackgroundImageEnabled:!0,formButtonFieldPaddingsEnabled:!0,formButtonFieldReplacerEnabled:!1,formCellFieldVerticalAlignEnabled:!0,formCellFieldBackgroundImageEnabled:!0,formCellFieldPaddingsEnabled:!0,formCellFieldSizeEnabled:!1,formLinkFieldInsertImageEnabled:!0,formTableFieldBackgroundImageEnabled:!0,formDivFieldBackgroundImageEnabled:!0,formImageFieldVerticalAlignEnabled:!1,formImageFieldReplacerEnabled:!1,formImageFieldHeightEnabled:!1,formTextFieldTypografEnabled:!1,formTextFieldReplacerEnabled:!1,formEmailFieldBackgroundImageEnabled:!0,elementImageEnabled:!0,elementTextEnabled:!0,elementHeaderEnabled:!0,elementButtonEnabled:!0,elementListULEnabled:!0,elementListOLEnabled:!0,elementDividerEnabled:!0,elementSpacerEnabled:!0,elementSocialEnabled:!0,elementTableEnabled:!1,elementCountdownEnabled:!1,elementVideoEnabled:!1,elementAIimageEnabled:!0,elementAItextEnabled:!1,elementCarouselEnabled:!1,elementAccordionEnabled:!1,elementFormEnabled:!1,preventSendDataToEM:!1,imageInfoToolUrl:"",resourceProxy:void 0,resourceProxyPolicy:void 0,imageCenterFileManagerView:!0,imageCenterLocalUploadEnabled:!0,imageCenterStockEnabled:!0,imageCenterGifEnabled:!0,imageCenterIconStockEnabled:!0,imageCenterEditorEnabled:!0,compressMaxSize:1,compressMaxWidthOrHeight:2e3,ampExportEnabled:!1,formFieldAmpVisibilityEnabled:!1,testEmails:[],pushToGTM:!0,activeNextButton:!0,iconStrokeWidth:1.4,fileManager:{defaultFolderName:"",enableMoveFolder:!0,enableEdit:!0,enableTrash:!0}},project:void 0},dc={config:{mode:"editor",autosaveTimeout:5e3,autosaveRetryMaxAttempts:5,autosaveRetryIntervalMs:3e4,theme:"",themes:{},mergeTagsShow:!1,styles:"",headerShow:!0,headerTitleVisible:!0,headerPreheaderVisible:!0,headerArrowBackVisible:!0,historyEnabled:!0,codeEnabled:!1,codeSideEnabled:!0,previewIconEnabled:!0,previewModeEnabled:!0,livePreviewEnabled:!0,sendTestEnabled:!0,sharePreviewEnabled:!1,webversionEnabled:!1,commonStylesEnabled:!1,emailResponsiveControlEnabled:!1,templateNotEmAlertShow:!1,beeFreeConverterEnabled:!0,stripoConverterEnabled:!0,aiLayoutConverterEnabled:!1,emailDropdownMenuEnabled:!1,emailDropdownMenuClone:!0,emailDropdownMenuImport:!1,emailDropdownMenuImportButton:!1,emailDropdownMenuConvert:!0,emailDropdownMenuLock:!0,emailDropdownMenuRemove:!0,emailExportEnabled:!0,exportHtmlEnabled:!0,exportTextEnabled:!1,exportMarkdownEnabled:!1,exportZipEnabled:!0,exportClipboardEnabled:!1,exportWebHookEnabled:!1,exportOutlookEnabled:!0,exportPdfEnabled:!0,exportPngEnabled:!0,nextButtonEnabled:!1,nextButtonText:"",saveButtonEnabled:!0,saveButtonText:"",commandButtonsEnabled:!0,emailIdShow:!1,sidePanelFloating:!0,desktopMobileSwitchRule:!0,desktopMobileSwitchPanel:!1,onlyCodeModeInMobile:!1,pathEnabled:!0,copyPasteEnabled:!1,saveBlockEnabled:!0,globalBlockCheckboxEnabled:!0,editImageControlEnabled:!0,lockEditor:!1,lockPreheaderAndTitle:!1,disableSideMenu:!1,menuDirection:"right",defaultBuildPanel:"",commentsEnabled:!1,aiAssistentEnabled:!1,optimizeEnabled:!1,optimizeLinksEnabled:!0,optimizeImagesEnabled:!0,optimizeSpamAssassinEnabled:!0,optimizeCheckCodeEnabled:!0,settingsEnabled:!0,settingsTabEnabled:!0,UTMEnabled:!1,annotationsEnabled:!1,subjectEnabled:!0,preheaderEnabled:!0,descriptionEnabled:!1,tagsEnabled:!0,isTemplateEnabled:!1,switchDesktopMobilePropsEnabled:!0,stepToOtherElementEnabled:!1,deleteButtonEnabled:!0,toggleSidePanel:!1,blocksSectionsShow:!0,blocksEmptyEnabled:!0,blocksSavedEnabled:!0,blocksCommonEnabled:!0,blocksTemplateEnabled:!0,blocksSearchEnabled:!0,blocksAddPanelEnabled:!0,imagePathDropdownEnabled:!1,formFieldImageTitleEnabled:!1,formFieldBorderEnabled:!1,formFieldBorderRadiusEnabled:!1,formFieldBoxShadowEnabled:!1,formFieldVisibilityEnabled:!1,formFieldExportAsPictureEnabled:!1,emailPaneDesktopSize:0,formButtonFieldInsertImageEnabled:!1,formButtonFieldVerticalAlignEnabled:!0,formButtonFieldTextAlignEnabled:!1,formButtonFieldBackgroundImageEnabled:!0,formButtonFieldPaddingsEnabled:!1,formButtonFieldReplacerEnabled:!1,formCellFieldVerticalAlignEnabled:!1,formCellFieldBackgroundImageEnabled:!0,formCellFieldPaddingsEnabled:!0,formCellFieldSizeEnabled:!1,formLinkFieldInsertImageEnabled:!0,formTableFieldBackgroundImageEnabled:!0,formDivFieldBackgroundImageEnabled:!0,formImageFieldVerticalAlignEnabled:!1,formImageFieldReplacerEnabled:!1,formImageFieldHeightEnabled:!1,formTextFieldTypografEnabled:!1,formTextFieldReplacerEnabled:!1,formEmailFieldBackgroundImageEnabled:!0,elementImageEnabled:!0,elementTextEnabled:!0,elementHeaderEnabled:!0,elementButtonEnabled:!0,elementListULEnabled:!0,elementListOLEnabled:!0,elementDividerEnabled:!0,elementSpacerEnabled:!0,elementSocialEnabled:!0,elementTableEnabled:!0,elementCountdownEnabled:!0,elementVideoEnabled:!1,elementAIimageEnabled:!0,elementAItextEnabled:!1,elementCarouselEnabled:!1,elementAccordionEnabled:!1,elementFormEnabled:!1,preventSendDataToEM:!1,imageInfoToolUrl:"",resourceProxy:void 0,resourceProxyPolicy:void 0,imageCenterFileManagerView:!0,imageCenterLocalUploadEnabled:!0,imageCenterStockEnabled:!0,imageCenterGifEnabled:!0,imageCenterIconStockEnabled:!0,imageCenterEditorEnabled:!0,compressMaxSize:1,compressMaxWidthOrHeight:2e3,ampExportEnabled:!1,formFieldAmpVisibilityEnabled:!1,testEmails:[],pushToGTM:!0,activeNextButton:!0,iconStrokeWidth:1.4},project:void 0},uc={...Pt,config:{...Pt.config,imageCenterFileManagerView:!1}};cc({pro:ac,editor:dc,simple:ic()?Pt:uc,freeUserBlocks:Ct,blocks:Ct});var Vr=new Set;function fc(){return window.localStorage.getItem(a.LOCAL_STORAGE_ITEMS.em_color_scheme)??void 0}function pc(e){return Vr.add(e),e(fc()),{dispose(){Vr.delete(e)}}}function Dt(e,t){return e.user.mode||e.serverSide.mode||t||"pro"}function mc(e,t){return t.modeDefaults(Dt(e,t.fallbackMode))}function hc(e,t){const n=Dt(e,t);return e.serverSide.advancedConfigs?.[n]||{}}function gc(e,t){const n=Dt(e,t),r=e.user?.advancedConfigs?.[n],s=r!==void 0?r:e.user?.advancedConfigs?.pro;return{...e.advancedConfigs?.[n],...s}}function Ec(e){let t;for(const n of e)n?.fileManager&&(t={...t,...n.fileManager});return t}function bc(e){return a.mergeResourceProxyLayers(e.map(t=>t?.resourceProxy))}function vc(e){return a.mergeResourceProxyPolicyLayers(e.map(t=>t?.resourceProxyPolicy))}function _c(e){return a.mergeBackendProxyLayers(e.map(t=>t?.backendProxy))}function yc(e){return a.mergeShallowConfigLayers(e.map(t=>t?.backendProxyPolicy||{}).filter(Boolean))}function Sc(e,t){return[e.base,mc(e,t),e.profile,e.serverSide,hc(e,t.fallbackMode),e.user,gc(e,t.fallbackMode),e.local]}function Rt(e,t){const n=Sc(e,t),r=a.mergeShallowConfigLayers(n),s=Ec(n);s!==void 0&&(r.fileManager=s);const o=bc(n);o!==void 0&&(r.resourceProxy=o);const i=vc(n);i&&Object.keys(i).length>0&&(r.resourceProxyPolicy=i);const c=_c(n);c!==void 0&&(r.backendProxy=c);const l=yc(n);return l&&Object.keys(l).length>0&&(r.backendProxyPolicy=l),r}var Ic=["backendProxy","backendProxyPolicy","resourceProxy","resourceProxyPolicy"];function Yr(e){return e==="server"?"serverSide":e}function wc({env:e,base:t={},budgetMs:n}){const r={base:t,profile:{},serverSide:{},user:{},local:{},advancedConfigs:{}},s=pe();let o={kind:"pending"},i;const c=new Promise(m=>{i=m}),l=n===void 0?void 0:setTimeout(()=>{d({kind:"absent",reason:`серверный слой не пришёл за ${n} мс`})},n);function u(){o.kind!=="pending"&&s.set(Rt(r,e))}function d(m){if(o.kind!=="pending")return;clearTimeout(l),o=m;const b=Rt(r,e);s.set(b),i(b)}function p(m,b){r[Yr(m)]=b,m==="server"&&o.kind==="pending"?d({kind:"applied"}):u()}return{watch:m=>s.watch(m),select:m=>s.select(m),get:()=>s.get(),ready:()=>c,state:()=>o,layers:()=>({...r}),bootstrap(){const m=Rt(r,e);return Object.fromEntries(Ic.map(b=>[b,m[b]]))},merge(m,b){p(b,{...r[Yr(b)],...m})},replace(m,b){p(b,m)},setMode(m){r.user={...r.user,mode:m},u()},setAdvancedConfigs(m){r.advancedConfigs=m,u()},serverAbsent(m){d({kind:"absent",reason:m})},applyServerResponse(m){o.kind==="pending"&&p("server",{...r.serverSide,...m})},dispose(){clearTimeout(l)}}}var Tc=5e3,Ac="blocks";function Cc(){return{...Gr(Ac)?.config,mergeTags:void 0}}function Pc(e,t){e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(n=>{t.setAdvancedConfigs({...n.advancedConfigs,...n.config?.advancedConfigs}),t.replace(n.config??{},"user")})}function Dc(e,t){let n;dr(e).watch(({profile:r})=>{const s=`${r?.theme??""}|${r?.locale??""}`;if(s===n)return;n=s;const o={};r?.theme&&(o.theme=r.theme),r?.locale&&(o.locale=r.locale),t.replace(o,"profile")})}function Rc(e,t){let n=null;const r=pc(s=>{const o=typeof s=="string"&&s?s:void 0;o!==n&&(n=o,t.replace(o?{theme:o}:{},"local"))});e.getInstance(a.DISPOSABLE_ID)?.addDisposable(r)}async function Oc(e,t){if(e.getInstance(ot)===void 0){t.serverAbsent("app_init не зарегистрирован");return}try{const n=await e.getInstanceAsync(a.APP_ID);t.applyServerResponse(n?.app_config??{})}catch(n){t.serverAbsent(`app_init не выполнился: ${String(n)}`)}}function Lc(e){e.injectFactory(a.CONFIG_SOURCE_ID,(t,n)=>{if(n)return n;const r=wc({base:Cc(),env:{modeDefaults:s=>Gr(s)?.config||{},fallbackMode:localStorage.getItem("configSwither")||void 0},budgetMs:Tc});return Pc(e,r),Dc(e,r),Rc(e,r),Oc(e,r),e.getInstance(a.DISPOSABLE_ID)?.addDisposable(r),r},!0)}var Ee=class extends a.Disposable{_event;_listener;_disposeEvent;constructor(e){super(),this._event=e}setListener(e){this._listener!==e&&(this._listener=e,this._disposeEvent&&this._disposeEvent(),e?this._disposeEvent=this._event(e):this._disposeEvent=void 0)}dispose(){this._disposeEvent&&this._disposeEvent(),super.dispose()}};function N(e,t,n){const r=a.snapshot(e);return(s,o,i)=>{const c=r(async l=>{const u=t?t(l):l;i&&s.bind(i);const d=await s(u);return n?n(d):d},o,i);return()=>c.dispose()}}var Nc=class{deps;handleDestroy;constructor(e){this.deps=e;const t=new a.Emitter;this.handleDestroy=N(t.event),e.lifetime.addDispose(()=>t.fire(e.getInstance()));const n=e.lifetime.addDisposable(new Ee(this.handleDestroy));e.lifetime.addDisposable(t),e.lifetime.addDisposable(e.options.watch(({handleDestroy:r})=>n.setListener(r))),e.lifetime.addDispose(()=>e.release())}destroy(){if(!this.deps.lifetime.isDisposed())try{this.deps.lifetime.dispose()}catch{}}},Ot=a.createIdentifier$1("DestroyableService");function xc(e){e.injectFactory(Ot,()=>{const t=e.getInstance(a.DISPOSABLE_ID);if(!t)throw new Error("[plugin] время жизни экземпляра не зарегистрировано");return new Nc({lifetime:t,options:e.getInstance(a.OPTIONS_SOURCE_ID),getInstance:()=>e.getInstance(a.INSTANCE_ID),release:()=>a.releaseContainer(e.getInstance(a.STORE_ID)??e)})},!0)}function Mc(e){const t=e.getInstance(Ot);if(!t)throw new Error("[plugin] provideDestroyable не выполнен до сборки поверхности");return{handleDestroy:t.handleDestroy,destroy:()=>t.destroy()}}var kc=1e3;function qr(e,t,n=kc,r=0){if(r>n||e===t)return!0;if(typeof e!=typeof t||e===null||t===null)return!1;if(typeof e=="object"&&typeof t=="object"){if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;const s=Object.keys(e),o=Object.keys(t);if(s.length!==o.length)return!1;for(const i of s)if(!qr(e[i],t[i],n,r+1))return!1;return!0}return!1}function Te(e,t){if(!e||typeof e!="object")return t;if(!t||typeof t!="object")return{};const n={};for(const r of Object.keys(t)){const s=t[r],o=e[r];qr(s,o)||(n[r]=s)}return n}var Fc=class extends Error{timeoutMs;constructor(e){super(`[useblocks] handleSaveEmail не ответил за ${e}ms — письмо не сохранено`),this.timeoutMs=e,this.name="IntegratorSaveTimeoutError"}},Bc=({source:e,emailtags:t,group:n,tags:r,...s})=>s,jc=()=>Mn();async function Uc({emails:e},t){const n=jc();let r;try{return await Promise.race([e.notifySave(t),new Promise((s,o)=>{r=setTimeout(()=>{const i=new Fc(n);t.value.id,o(i)},n)})])}finally{r!==void 0&&clearTimeout(r)}}function Hc(e){const{emails:t}=e,n=async(r,s)=>{const o=Bc(s),i=r===void 0?void 0:await t.cache.getIfPresent(r),c=i?{...i,...o}:o,l=await Uc(e,{prev:i,patch:i?Te(i,o):o,value:c,source:s.source??""}),u=String(l.id??r??a.generateUUID()),d=l.id===void 0?{...l,id:u}:l;return await t.cache.addOrUpdate(u,()=>d)};return{async readEmail(r){return await t.get(r)??null},async createEmail(r){const s=await n(void 0,r);return s?.renderGuid?s:{...s,renderGuid:a.generateUUID()}},async updateEmail(r,s){return await n(r,s)}}}var Lt=20,$c=({source:e,emailtags:t,group:n,tags:r,...s})=>s;function Gc({revisions:e,revisionsByEmail:t}){const n=async(r,s)=>(t.clear(),await t.get(r,{page:s}),(await e.cache.values()??[]).filter(o=>String(o?.parent)===String(r)));return{async readRevisions(r,s=1){const o=await n(r,s);return{revisions:o.slice(Lt*(s-1),Lt*s),page:s,hasMore:o.length>Lt*s}},async readAutosave(r){return mi(await n(r,1))},async saveAutosave(r,s){const o=$c(s);return await e.create({...o,parent:r,modified:new Date().toString()})}}}var Vc=class extends a.BaseEmitter{async execute([e],t){for(const n of t){const r=await n(e);r&&(r.id===void 0&&(r.id=e.value.id),e.value=r)}return e.value}},Yc=class extends a.AsyncEmitter{};function Jp(e){return e}var zr=class extends a.Disposable{_items=new Map;_onChangeEmitter=new a.Signal;async _getOrCreate(e,t){const n=this._items;let r;if(n.has(e))try{r=await n.get(e)}catch{t&&(r=await t())}else t&&(r=await t(),r&&this._onChangeEmitter.fire());return r}async _addOrUpdate(e,t){let n;const r=this._items;if(r.has(e))try{n=await r.get(e)}catch{}const s=await t(n);return a.deepEqual(n,s)||this._onChangeEmitter.fire(),s}entries(){return Promise.all([...this._items.entries()].map(([e,t])=>t.then(n=>[e,n]))).then(e=>e.filter(([t,n])=>!!n))}values(){return Promise.all([...this._items.values()].map(e=>e).filter(e=>!!e))}getOrCreate(e,t){const n=this._getOrCreate(e,()=>t(e));return this._items.set(e,n),n}addOrUpdate(e,t){const n=this._addOrUpdate(e,t);return this._items.set(e,n),n}async getIfPresent(e){if(this._items.has(e))try{return await this._items.get(e)}catch{return}}add(e,t){const n=Promise.resolve(t);return this._items.set(e,n),n}remove(e){if(this._items.has(e)){const t=this._items.get(e);return this._items.delete(e),this._onChangeEmitter.fire(),t}return Promise.resolve(void 0)}async setAll(e){try{this.suspendChange();const t=[],n=new Set(Array.from(e).map(([s,o])=>s)),r=(await this.entries()).filter(([s,o])=>!n.has(s));for(const[s,o]of e)t.push(this.addOrUpdate(s,()=>o)),n.add(s);for(const[s]of r)t.push(this.remove(s));return await Promise.all(t),r}finally{this.resumeChange()}}clear(){this._items.clear(),this._onChangeEmitter.fire()}suspendChange(){this._onChangeEmitter.suspend()}resumeChange(){this._onChangeEmitter.resume()}onChange=this._onChangeEmitter.event};function qc(e,{filter:t,order:n="asc",orderBy:r,page:s,pageSize:o=20}={}){const i=e.length;let c=e.length;if(t!==void 0){const l=Object.keys(t);e=e.filter(u=>{for(const d of l){const p=u[d],m=t[d];return d==="id"||typeof p!="string"?p===m:typeof m=="string"&&p.startsWith(m)}return!0}),c=e.length}return r&&(e=e.sort((l,u)=>(l[r]>u[r]?1:u[r]>l[r]?-1:0)*(n==="asc"?1:-1))),s!==void 0&&(e=e.slice(o*(s-1),o*s)),{data:e,filteredTotal:c,total:i,totalPages:Math.ceil(c/o)}}function zc(e=[]){if(e=e.filter(n=>n),e.length<=1)return e[0];const t=new Map;for(const n of e)for(const r of n)if(r.id!==void 0){const s=t.get(r.id)||{};t.set(r.id,{...s,...r})}return[...t].map(([n,r])=>r)}function Kc(e,t){return Kr(e)&&Kr(t)?String(e)===String(t):e===t}function Kr(e){return typeof e=="string"||typeof e=="number"}var Wc=class extends a.Disposable{_cache=new zr;_readEmitter=new a.AsyncEmitter;_saveEmitter=this.addDisposable(new Vc);_removeEmitter=this.addDisposable(new Yc);_foreignCache=Object.create(null);async get(e){return this._cache.getOrCreate(e,async t=>Object.assign({id:e},...(await this._readEmitter.fire(e)).filter(n=>!!n)))}get cache(){return this._cache}byForeignKey(e){let t=this._foreignCache[e];if(!t){const n=this.addDisposable(new a.Disposable);n.addDispose(()=>delete this._foreignCache[e]);const r=n.addDisposable(new zr),s=n.addDisposable(new a.AsyncEmitter);t=this._foreignCache[e]={get:async(o,i={})=>{await r.getOrCreate(o,async()=>{try{const l=zc(await s.fire(o))||[];for(const u of l)u[e]=o,await this._cache.add(u.id,u);return l}catch{return[]}});const c=(await this._cache.values()||[]).filter(l=>{const u=l[e];return u==null||Kc(u,o)});return qc(c,i)},first(o,i={}){return t.get(o,{...i,page:1,pageSize:1}).then(({data:c})=>c[0])},handleRead:s.event,clear(){r.clear()},dispose(){n.dispose()}}}return t}async create(e,{source:t="",silent:n}={}){let r=e;return n||(r=await this._saveEmitter.fire({prev:void 0,patch:e,value:r,source:t})),r.id===void 0&&(r.id=a.generateUUID()),await this._cache.addOrUpdate(r.id,()=>r)}notifySave(e){return this._saveEmitter.fire(e)}async update(e,t,{source:n="",silent:r}={}){return this._cache.addOrUpdate(e,async s=>{const o=s?{...s,...t}:t;if(!r)return t=s?Te(s,t):t,await this._saveEmitter.fire({prev:s,patch:t,value:o,source:n})})}async remove(e,{source:t="",silent:n}={}){const r=await this._cache.remove(e);return n||await this._removeEmitter.fire({value:r,source:t}),r}refresh(){this._cache.clear();for(const e of Object.values(this._foreignCache))e.clear()}suspendChange(){this._cache.suspendChange()}resumeChange(){this._cache.resumeChange()}handlerRead=this._readEmitter.event;onSave=this._saveEmitter.event;onRemove=this._removeEmitter.event;onChange=this._cache.onChange};function Ae(e){const t=a.createIdentifier$1(e);return n=>n.getOrCreateInstance(t,()=>new Wc)}function Xc(e){const t=e.getInstance(a.DISPOSABLE_ID);if(!t)throw new Error("Failed");return t}function Wr(e){return Object.prototype.hasOwnProperty.call(e,"meta")}function Jc(e,t,n){return e&&!Wr(t)&&Wr(e)?{...n,meta:e.meta}:n}var Xr=Ae("plugin.dataSource.emails"),Jr=Ae("plugin.dataSource.emailRevisions"),Qr=a.createIdentifier$1("emailDocuments.provided");function Qc(e){const t=Xr(e),n=Jr(e),r=n.byForeignKey("parent");return e.getInstance(Qr)?{emails:t,emailRevisions:n}:(e.inject(Qr,!0),xi(e,Hc({emails:t})),Bi(e,Gc({revisions:n,revisionsByEmail:r})),Xc(e).addDisposable(t.onSave(({prev:s,patch:o,value:i})=>Jc(s,o,i),Number.MIN_VALUE)),{emails:t,emailRevisions:n})}function Zr(e,t){return!e?.data||!t||e.id!==t.locale?!1:t.contentHash?e.hash===t.contentHash:t.updatedAt>0&&t.updatedAt<=e.time}function Zc(e){try{return localStorage.getItem(e)===null?!1:(localStorage.removeItem(e),!0)}catch{return!1}}var ed="po",Ve=null;function td(){const e=typeof __useblocks__<"u"?__useblocks__?.require:void 0;return typeof e!="function"?Promise.reject(new Error("[loadPoParser] AMD loader is unavailable")):new Promise((t,n)=>{e([ed],r=>t(r),r=>n(r instanceof Error?r:new Error("[loadPoParser] Failed to require po module")))})}function nd(){return Ve===null&&(Ve=td().catch(e=>{throw Ve=null,e})),Ve}async function es(e){if(typeof e=="object")return Nt(e);if(typeof e!="string")return;const t=e.trim();if(t)return t.startsWith("{")||t.startsWith("[")?rd(t):sd(t)}function Nt(e){if(!(e==null||typeof e!="object"||Array.isArray(e)))return e}function rd(e){try{return Nt(JSON.parse(e))}catch{return}}var ts=!1;async function sd(e){try{return Nt((await nd()).parsePoCatalog(e))}catch{ts||(ts=!0);return}}var od="em_locale",id="em_ant_locale",ad="locale",ld="ant_locale";function xt(e){try{return JSON.parse(localStorage.getItem(e)||"")}catch{return null}}function ns(e,t){const n=xt(e);if(!n)return null;try{localStorage.removeItem(e),localStorage.setItem(t,JSON.stringify(n))}catch{}return n}function cd(){return xt("em_locale")??ns(ad,"em_locale")}function rs(e){try{localStorage.setItem(od,JSON.stringify(e))}catch{}}function dd(){return xt("em_ant_locale")??ns(ld,"em_ant_locale")}function ud(e,t){try{localStorage.setItem(id,JSON.stringify({id:e,data:t}))}catch{}}var Qp="en_US",fd=8e3;function pd(e,t){const n=e,r=t,s=Object.keys(n).filter(o=>o!=="");return s.length!==Object.keys(r).filter(o=>o!=="").length?!1:s.every(o=>JSON.stringify(n[o])===JSON.stringify(r[o]))}function md(e){const t=cd(),n=dd();let r={ready:!1},s;const o=pe(r);let i=0;const c=g=>{r={...r,...g},o.set(r)},l=()=>{r.ready||c({ready:!0})},u=setTimeout(l,e.unlockAfterMs??fd),d=g=>g!==i;let p;async function m(g,v){if(n?.id===g&&n.data&&c({antd:n.data}),!p)return;const _=await p(g).catch(()=>{});!_||d(v)||(c({antd:_}),ud(g,_))}async function b(g,v){const _=await e.askHost(g).catch(()=>null);if(d(v))return!0;if(_==null)return!1;const I=await es(_);return d(v)||(I&&c({catalog:I}),l()),!0}async function S(g,v){const _=await e.readList();if(d(v))return;if("error"in _){c({failure:{kind:"GET_LOCALES_ERROR",error:_.error}}),l();return}const I=_.data.find(P=>P.locale===g);if(!I){Zc("em_locale")&&c({catalog:void 0}),l();return}if(Zr(t,I)&&(!s||s.catalog===t?.data)){l();return}if(s?.entry&&r.catalog===s.catalog&&Zr(s.entry,I)){rs(s.entry),l();return}const A=await e.readCatalog(g);if(!d(v)){if("error"in A){c({failure:{kind:"GET_LOCALE_ERROR",error:A.error}}),l();return}A.data&&(s?.id===g&&r.catalog===s.catalog&&pd(s.catalog,A.data)||c({catalog:A.data}),rs({id:g,time:I.updatedAt||Math.floor(Date.now()/1e3),hash:I.contentHash,data:A.data})),l()}}async function E(g,v){if(!await b(g,v)){if(!d(v)&&(s?.id===g&&r.catalog===s.catalog||g==="en_US")&&l(),e.canUseNetwork&&!e.canUseNetwork()){l();return}await S(g,v)}}return{set(g){if(!g||g===r.id)return;const v=i+=1;c({id:g,failure:void 0});const _=s?.id===g&&r.catalog===s.catalog;(s&&!_&&r.catalog===s.catalog||g==="en_US"&&r.catalog)&&c({catalog:void 0}),t?.id===g&&t.data&&(c({catalog:t.data}),l()),m(g,v),E(g,v)},prime(g,v,_){r.id||r.catalog||!v||(s=t?.id===g&&t.data&&(!_||t.time>=_.time)?{id:g,catalog:t.data}:{id:g,catalog:v,entry:_?{id:g,time:_.time,hash:_.hash,data:v}:void 0},c({catalog:s.catalog}))},useAntdLoader(g){p=g,r.id&&m(r.id,i)},state:o,snapshot:()=>r,dispose:()=>clearTimeout(u)}}var hd=class{http;constructor(e){this.http=e}jsonList=({locale:e},t={})=>this.http.request({path:`/translations/${e}.json`,method:"GET",format:"json",...t});getTranslations=({locale:e},t={})=>this.http.request({path:`/translations/${e}.po`,method:"GET",...t});localesList=(e={})=>this.http.request({path:"/translations/locales",method:"GET",format:"json",...e})},gd=class{baseUrl="/api/v2";securityData=null;securityWorker;abortControllers=new Map;customFetch=(...e)=>fetch(...e);baseApiParams={credentials:"same-origin",headers:{},redirect:"follow",referrerPolicy:"no-referrer"};constructor(e={}){Object.assign(this,e)}setSecurityData=e=>{this.securityData=e};encodeQueryParam(e,t){return`${encodeURIComponent(e)}=${encodeURIComponent(typeof t=="number"?t:`${t}`)}`}addQueryParam(e,t){return this.encodeQueryParam(t,e[t])}addArrayQueryParam(e,t){return e[t].map(n=>this.encodeQueryParam(t,n)).join("&")}toQueryString(e){const t=e||{};return Object.keys(t).filter(n=>typeof t[n]<"u").map(n=>Array.isArray(t[n])?this.addArrayQueryParam(t,n):this.addQueryParam(t,n)).join("&")}addQueryParams(e){const t=this.toQueryString(e);return t?`?${t}`:""}contentFormatters={"application/json":e=>e!==null&&(typeof e=="object"||typeof e=="string")?JSON.stringify(e):e,"application/vnd.api+json":e=>e!==null&&(typeof e=="object"||typeof e=="string")?JSON.stringify(e):e,"text/plain":e=>e!==null&&typeof e!="string"?JSON.stringify(e):e,"multipart/form-data":e=>e instanceof FormData?e:Object.keys(e||{}).reduce((t,n)=>{const r=e[n];return t.append(n,r instanceof Blob?r:typeof r=="object"&&r!==null?JSON.stringify(r):`${r}`),t},new FormData),"application/x-www-form-urlencoded":e=>this.toQueryString(e)};mergeRequestParams(e,t){return{...this.baseApiParams,...e,...t||{},headers:{...this.baseApiParams.headers||{},...e.headers||{},...t&&t.headers||{}}}}createAbortSignal=e=>{if(this.abortControllers.has(e)){const n=this.abortControllers.get(e);return n?n.signal:void 0}const t=new AbortController;return this.abortControllers.set(e,t),t.signal};abortRequest=e=>{const t=this.abortControllers.get(e);t&&(t.abort(),this.abortControllers.delete(e))};request=async({body:e,secure:t,path:n,type:r,query:s,format:o,baseUrl:i,cancelToken:c,...l})=>{const u=(typeof t=="boolean"?t:this.baseApiParams.secure)&&this.securityWorker&&await this.securityWorker(this.securityData)||{},d=this.mergeRequestParams(l,u),p=s&&this.toQueryString(s),m=this.contentFormatters[r||"application/json"],b=o||d.format;return this.customFetch(`${i||this.baseUrl||""}${n}${p?`?${p}`:""}`,{...d,headers:{...d.headers||{},...r&&r!=="multipart/form-data"?{"Content-Type":r}:{}},signal:(c?this.createAbortSignal(c):d.signal)||null,body:typeof e>"u"||e===null?null:m(e)}).then(async S=>{const E=S;E.data=null,E.error=null;const g=b?S.clone():S,v=b?await g[b]().then(_=>(E.ok?E.data=_:E.error=_,E)).catch(_=>(E.error=_,E)):E;return c&&this.abortControllers.delete(c),v})}},Ed=a.createIdentifier$1("rest.v2.transport"),ss=Symbol("rest.v2.secureRequest");function bd(e){return e.getOrCreateInstance(Ed,()=>{const t=e.getInstance(a.CUSTOM_FETCH_ID)?.execute||fetch;return new gd({baseUrl:"https://app.useblocks.io/api/v2",securityWorker:()=>({[ss]:!0}),customFetch:(n,r={})=>{const{[ss]:s,...o}=r;return t(n,{...o,[a.PUBLIC_REQUEST]:s!==!0})}})})}function vd(e,t){const n=bd(e);return Object.assign({},...t.map(r=>new r(n)))}function os(e,t){if(e!=null&&typeof e=="object"){const n=e[t];if(typeof n=="string"&&n!=="")return n}}function is(e){const t=e.error,n=t?.error;return n&&typeof n=="object"?{status:e.status,data:{code:os(n.details,"wp_code")??n.code,message:os(n.details,"wp_message")??n.message,details:n.details}}:t&&typeof t=="object"?{status:e.status,data:t}:{status:e.status,data:{message:e.statusText||"request failed"}}}function as(e){return!e.ok||!!e.error}function _d(e){try{const t=localStorage.getItem(e);if(t==="true")return!0;if(t==="false")return!1}catch{}}function ls(){return _d(a.LOCAL_STORAGE_ITEMS.em_translations_v2)??!0}function yd(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function Sd(e){const t=e?Date.parse(e):NaN;return Number.isNaN(t)?0:Math.floor(t/1e3)}function Id(e){return Array.isArray(e)?e.reduce((t,n)=>{const r=Array.isArray(n)?n:[],s=r[0];return typeof s=="string"&&s!==""&&t.push({locale:s,updatedAt:yd(r[1])}),t},[]):[]}function wd(e){return(e?.items??[]).reduce((t,n)=>(n.locale&&t.push({locale:n.locale,updatedAt:Sd(n.updated_at),contentHash:n.content_hash}),t),[])}function cs(e){return vd(e,[hd])}function Ye(e){return{error:{status:"FETCH_ERROR",error:e instanceof Error?e.message:"locale request failed"}}}function Mt(e){return!e.ok||e.error!=null}function kt(e){const t=e.error;return{error:{status:e.status,data:t?.data??e.error}}}async function Ft(e){return{data:await es(e)??null}}async function Td(e){if(ls())try{const n=await cs(e).localesList();return as(n)?{error:is(n)}:{data:wd(n.data)}}catch(n){return Ye(n)}const t=a.getApi(e,[An]);try{const n=await t.get_translations2({file:"react_app"});return Mt(n)?kt(n):{data:Id(n.data)}}catch(n){return Ye(n)}}async function Ad(e,t){if(ls())try{const r=await cs(e).jsonList({locale:t});return as(r)?{error:is(r)}:Ft(r.data)}catch(r){return Ye(r)}const n=a.getApi(e,[An]);try{const r=await n.get_translations3({id:t,file:"react_app"});return Mt(r)?kt(r):Ft(r.data)}catch{try{const r=await n.get_translations3({id:"en_US",file:"react_app"});return Mt(r)?kt(r):Ft(r.data)}catch(r){return Ye(r)}}}var Ce=a.createIdentifier$1("locale.service");function Cd(e){if(e.getInstance(Ce))return;const t=md({readList:()=>Td(e),readCatalog:n=>Ad(e,n),askHost:async n=>(await Q(e,a.events.READ_LOCALE).fire(n))[0],canUseNetwork:()=>!e.getInstance(a.SECURITY_MODULE_ID)});e.inject(Ce,t),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>t.dispose())}function Pd(e){const t=e.getInstance(a.CONFIG_SOURCE_ID);if(!t)return;const n=e.getInstance(Ce);if(!n)return;const r=t.select(s=>s.locale).watch(s=>n.set(s));e.getInstance(a.DISPOSABLE_ID)?.addDisposable(r)}var Dd="user_id",Rd="project_id",ds=a.createIdentifier$1("rest.identityHeadersProvided");function Od(e){if(e.getInstance(ds))return;e.inject(ds,!0);let t;e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(n=>{t=n}),e.addService(a.REQUEST_HANDLER_ID,{execute(n,r){if(r?.public)return;const s=t?.user?.id??ur(e).profile?.id;s!=null&&s!==""&&n.headers.set(Dd,String(s));const o=t?.project;o!=null&&o!==""&&n.headers.set(Rd,String(o))}})}function Ld(e){if(!e)return!1;try{return e.getInstance(a.SECURITY_MODULE_ID)!==void 0}catch{return!1}}var Nd="Invalid standaloneKey.",Zp=a.createIdentifier$1("StandaloneMockGuard");function xd(){const e=new Error(Nd);return e.name="InvalidStandaloneKeyError",e}function Md(e){e.addService(a.REQUEST_HANDLER_ID,{execute:()=>{if(Ld(e))throw xd()}})}function kd(e){a.registerRestTransport(e),Md(e)}function Fd(e){const t=new Or;e.inject(a.INIT_PIPELINE_ID,t);let n;const r=e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(o=>{o&&(o.signal!==void 0&&(n=o.signal),t.configure({replaceSession:!0,...o.timeouts!==void 0?{timeouts:o.timeouts}:{},...n!==void 0?{signal:n}:{}}))}),s=e.getInstance(a.DISPOSABLE_ID);r&&s?.addDisposable(r),s?.addDispose(()=>{t.abort()})}var Bd=Ae("plugin.dataSource.blocks"),jd=Ae("plugin.dataSource.blockRevisions"),Ud=Ae("plugin.dataSource.comments"),Hd=Rr(),$d=Rr(),us=`<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2086
2086
  <html>
2087
2087
  <head>
2088
2088
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
@@ -2123,10 +2123,10 @@ __useblocks__.define("useblocks.js",["require","exports","module","static/umd/a6
2123
2123
  </tr>
2124
2124
  </table>
2125
2125
  </body>
2126
- </html>`;function Hd(e){return{isNew:!0,is_inited:!1,subject:void 0,preheader:void 0,description:"",html:ds,project:e?.id,project_title:e?.title??"",tags:[],utm_parameters:{utm_source:"",utm_medium:"",utm_campaign:"",utm_term:"",utm_content:""},parent_email:null,common_styles:"{}",title:"",emailtags:[],isAmp:!1}}var $d=a.createIdentifier$1("CurrentProject"),Gd={};function ze(e){return e?.getInstance($d)?.get()??Gd}function us(e){const t=ze(e).card?.id,n=Number(t);return t!=null&&t!==""&&Number.isFinite(n)?n:void 0}var fs=new Set(["email","block","blocks","autosaves","revisions","comments","templateId","reload"]);function Vd(e){return!Object.keys(e).some(t=>fs.has(t))}function Yd(e){const t={},n={};for(const[r,s]of Object.entries(e))fs.has(r)?t[r]=s:n[r]=s;return{showOptions:t,misplacedEmailFields:n}}function ps(e){const t=e.id;if(!(t===null||typeof t=="string"&&t.trim()===""))return e;const n={...e};return delete n.id,n}function Qp(e){}function qe(e){return{emails:Wr(e),blocks:Fd(e),emailRevisions:Xr(e),blocksRevision:kd(e),comments:Bd(e)}}function zd(e){const t=Object.values(qe(e));return{suspendChange(){t.forEach(n=>n.suspendChange())},resumeChange(){t.forEach(n=>n.resumeChange())}}}function Bt(e,t=!0){if(typeof e=="string")return{email:{code:e}};if(Vd(e))return{email:ps(e)};{const{showOptions:n,misplacedEmailFields:r}=Yd(e),s=Object.keys(r);t&&s.length>0&&void 0;const o=typeof e.email=="string"?{code:e.email}:e.email;return{...n,email:ps({...r,...o})}}}function ms(e){return mt(e)?.current()}function Ke(e){return ms(e)?.getContent()}function qd(e,t){const n=t??Hd(),r=ms(e)?.get();return r?{...n,...r.attributes,id:r.serverId??void 0,isNew:r.serverId===null,html:Ke(e)??n.html}:n}async function jt(e){return(await e.getInstanceAsync(a.APP_ID))?.project}function be({code:e,project:t,...n},r){const s=re(n),o=us(r),i=ge(r);return e&&i.warnAboutUnconfiguredInput(e,n.id),{...s,...e?{html:i.toEditorForm(e)}:{},...o===void 0?{}:{project:o},utm_parameters:s.utm_parameters||{},_embedded:void 0}}function W({html:e,renderGuid:t,showToken:n,showId:r,...s},o){const{requested:i}=ze(o),c=ur(o);return re({...s,code:ge(o).toOutputForm(e),project:i===void 0?s.project:i,utm_parameters:c.UTMEnabled?s.utm_parameters:void 0,tags:void 0,template:void 0,guid:void 0,emailtags:void 0,project_title:void 0,project_author:void 0,is_template:void 0,is_inited:void 0})}function Ut(e){return e==null?"":e.replaceAll(`\r
2126
+ </html>`;function Gd(e){return{isNew:!0,is_inited:!1,subject:void 0,preheader:void 0,description:"",html:us,project:e?.id,project_title:e?.title??"",tags:[],utm_parameters:{utm_source:"",utm_medium:"",utm_campaign:"",utm_term:"",utm_content:""},parent_email:null,common_styles:"{}",title:"",emailtags:[],isAmp:!1}}var Vd=a.createIdentifier$1("CurrentProject"),Yd={};function qe(e){return e?.getInstance(Vd)?.get()??Yd}function fs(e){const t=qe(e).card?.id,n=Number(t);return t!=null&&t!==""&&Number.isFinite(n)?n:void 0}var ps=new Set(["email","block","blocks","autosaves","revisions","comments","templateId","reload"]);function qd(e){return!Object.keys(e).some(t=>ps.has(t))}function zd(e){const t={},n={};for(const[r,s]of Object.entries(e))ps.has(r)?t[r]=s:n[r]=s;return{showOptions:t,misplacedEmailFields:n}}function ms(e){const t=e.id;if(!(t===null||typeof t=="string"&&t.trim()===""))return e;const n={...e};return delete n.id,n}function em(e){}function ze(e){return{emails:Xr(e),blocks:Bd(e),emailRevisions:Jr(e),blocksRevision:jd(e),comments:Ud(e)}}function Kd(e){const t=Object.values(ze(e));return{suspendChange(){t.forEach(n=>n.suspendChange())},resumeChange(){t.forEach(n=>n.resumeChange())}}}function Bt(e,t=!0){if(typeof e=="string")return{email:{code:e}};if(qd(e))return{email:ms(e)};{const{showOptions:n,misplacedEmailFields:r}=zd(e),s=Object.keys(r);t&&s.length>0&&void 0;const o=typeof e.email=="string"?{code:e.email}:e.email;return{...n,email:ms({...r,...o})}}}function hs(e){return mt(e)?.current()}function Ke(e){return hs(e)?.getContent()}function Wd(e,t){const n=t??Gd(),r=hs(e)?.get();return r?{...n,...r.attributes,id:r.serverId??void 0,isNew:r.serverId===null,html:Ke(e)??n.html}:n}async function jt(e){return(await e.getInstanceAsync(a.APP_ID))?.project}function be({code:e,project:t,...n},r){const s=re(n),o=fs(r),i=ge(r);return e&&i.warnAboutUnconfiguredInput(e,n.id),{...s,...e?{html:i.toEditorForm(e)}:{},...o===void 0?{}:{project:o},utm_parameters:s.utm_parameters||{},_embedded:void 0}}function W({html:e,renderGuid:t,showToken:n,showId:r,...s},o){const{requested:i}=qe(o),c=fr(o);return re({...s,code:ge(o).toOutputForm(e),project:i===void 0?s.project:i,utm_parameters:c.UTMEnabled?s.utm_parameters:void 0,tags:void 0,template:void 0,guid:void 0,emailtags:void 0,project_title:void 0,project_author:void 0,is_template:void 0,is_inited:void 0})}function Ut(e){return e==null?"":e.replaceAll(`\r
2127
2127
  `,`
2128
- `)}function hs(e){return e.replace(/<title[^>]*>[\s\S]*?<\/title>/gi,"")}function Kd(e,t,n,r){const s=Wd(e,t,n,r);return s===void 0}function Wd(e,t,n,r){const{email:s}=Bt(t,!1),o=be(s,e),i=o.id;if(i===void 0)return"no-id";if(r!==void 0&&r!==i)return"other-id-shown";const c=mt(e)?.current();if(!c)return"no-session";const l=c.get(),u=l.attributes;if(l.serverId!==i)return"document-id";if(u.is_inited!==!0)return"not-inited";const d=hs(Ut(n??c.getContent()));if(o.html!==void 0&&hs(Ut(o.html))!==d)return"html";if(o.subject!==void 0&&o.subject!==u.subject)return"subject";if(o.preheader!==void 0&&o.preheader!==u.preheader)return"preheader";if(o.common_styles!==void 0&&o.common_styles!==u.common_styles)return"common_styles"}function gs(e,t){const{email:n}=Bt(t,!1),r=be(n,e);if(r.id!==void 0)return JSON.stringify([r.id,r.html===void 0?null:Ut(r.html),r.subject??null,r.preheader??null,r.common_styles??null])}function Xd(e,t){const n={...e};return delete n.id,{...n,...t}}function Jd(e){return e.html?e:{...e,html:ds}}function Pe({code:e,project:t,...n},r,s){const o=s??us(r);return{...n,...e?{html:ge(r).toEditorForm(e)}:{},renderGuid:a.generateUUID(),...o===void 0?{}:{project:o}}}function We({html:e,renderGuid:t,...n},r){const{requested:s}=ze(r);return re({...n,code:ge(r).toOutputForm(e),project:s===void 0?n.project:s,guid:void 0,link:void 0,status:void 0,slug:void 0,password:void 0,comment_status:void 0,template:void 0,blocktags:void 0,project_title:void 0,ping_status:void 0,lock:void 0,tag:void 0,is_template:void 0})}function Es(e){return mt(e)?.current()?.get().serverId??void 0}function Ht(e,t,n){return n===void 0&&(n=e.post===void 0?Es(t):e.post),{...e,content:e.content?`<p>${e.content}</p>`:"",post:n}}function Xe(e,t){return re({...e,link:void 0,comment_status:void 0})}function $t({code:e,...t},n,r){return r===void 0&&(r=t.parent===void 0?Es(n):t.parent),{...t,...e?{html:e}:{},parent:r}}function bs({html:e,...t},n){return re({...t,code:e,guid:void 0,compiled:re({html:e,ampHtml:e&&""})})}var Qd=a.createIdentifier$1("emailTemplate.reads");async function Zd(e,t){try{return await le(e).email(e).readEmail(t)??void 0}catch(n){n instanceof Error&&n.message;return}}function eu(e,t){const n=e.getOrCreateInstance(Qd,()=>new Map),r=n.get(t);if(r!==void 0)return r;const s=Zd(e,t).then(o=>(o===void 0&&n.delete(t),o));return n.set(t,s),s}var tu="EXTERNAL";function nu(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"сохранение не состоялось")}var ru="email_id",su=class extends a.Disposable{_container;_prevCommand;_lastShow;_showToken=0;_showRequests=0;_dataSources;_eventLock;_queue=a.createQueue();_currentEmail;constructor(e){super(),this._container=e;const t=e;this._dataSources=qe(t),this._eventLock=zd(t);const n=H(e,a.events.ON_EMAIL_CHANGED_ID);this.addDisposable(n(r=>{this._currentEmail=r})),this.addDisposable(e.addService(a.REQUEST_HANDLER_ID,{execute:(r,s)=>{!s?.public&&this._currentEmail?.id&&!this._currentEmail.isNew&&r.headers.append(ru,this._currentEmail.id)}}))}_getInitPipeline(){return this._container?.getInstance(a.INIT_PIPELINE_ID)??yt}_throwIfDestroyed(){if(this.isDisposed())throw Sn()}async getTemplateEmail(e){const t=await eu(this._container,String(e));if(!t)return;const n={...t,lock:!1,parent_email:String(e)};return delete n.id,n}async setBlocks(e=[]){const{cache:t}=this._dataSources.blocks,n=await jt(this._container);await t.setAll(e.filter(r=>r.id!==void 0).map(r=>[r.id,Pe(r,this._container,n)]))}async setEmailRevisions(e,t){if(e===void 0)return;const{cache:n}=this._dataSources.emailRevisions,r=e.filter(s=>s.id!==void 0).map(s=>[s.id,$t(s,this._container,t)]);await n.setAll(r)}async setComments(e=[],t){const{cache:n}=this._dataSources.comments,r=e.filter(s=>s.id!==void 0).map(s=>[s.id,Ht(s,this._container,t)]);await n.setAll(r)}async setEmail(e,t,n,r,s){const o=this._dataSources.emails,i=o.cache,c=await jt(this._container),l=r??this._showToken;e=typeof e=="string"?{code:e}:{...e};let u=be(e,this._container);const d=u.id;let p=d;if(d!==void 0){const m=await o.get(d);u={...m??{},...u,renderGuid:m?.renderGuid??a.generateUUID(),...l>0?{showToken:l}:{},...s?{showId:s}:{},project:c}}else{p=n??a.generateUUID();const m=await o.get(p);u={...u,renderGuid:m?.renderGuid??a.generateUUID(),...l>0?{showToken:l}:{},...s?{showId:s}:{},project:c},delete u.project}if(t){const m=await this.getTemplateEmail(String(t));m&&(u=Xd(m,u))}return d===void 0&&(u=Jd(u)),await i.addOrUpdate(p,()=>u),u}_rememberShow(e){this._prevCommand=e}_isRepeatOfLastShow(e){const t=this._lastShow;if(!t||t.signature!==gs(this._container,e))return!1;const n=Ke(this._container);return n===void 0||n===t.html}_rememberShownContent(e){const t=gs(this._container,e);this._lastShow=t===void 0?void 0:{signature:t,html:Ke(this._container)??""}}async _show(e,t){if(this._throwIfDestroyed(),t!==void 0&&t!==this._showRequests){this._showRequests;return}if(!e)return;const n=this._getInitPipeline();if(a.throwIfAborted(n.signal),Kd(this._container,e,Ke(this._container),this._prevCommand?.id)||this._isRepeatOfLastShow(e))return;const r=Bt(e);r.email.id,this._prevCommand?.id;let s,o="",i=0,c=!1,l,u=Promise.resolve(),d,p=!1;try{this._eventLock.suspendChange();const{email:m,blocks:b,autosaves:S,comments:E,templateId:g,reload:_}=r;s=m.id;const v=be(m,this._container),I=v.id,A=I??a.generateUUID(),P=await we("getProject",jt(this._container));a.throwIfAborted(n.signal),o=a.generateUUID();const h={isNew:I===void 0,id:String(A),project:P},w=_===!0&&I!==void 0;w&&(await this._dataSources.emails.remove(String(I),{silent:!0}),String(I)),i=++this._showToken,String(A);const f=[];f.push(this.setBlocks(b)),m.id!==void 0&&(f.push(this.setComments(E)),f.push(this.setEmailRevisions(S,String(m.id)))),f.push(this.setEmail(m,Number(g),I===void 0?String(A):void 0,i,o)),await we("setEmail+blocks+revisions",Promise.all(f),{emailId:I??String(A),showId:o,targetShowToken:i}),a.throwIfAborted(n.signal);const y=await this._dataSources.emails.get(String(A)),T=se(this._container),O={id:o,token:i};I===void 0?d=T.startNewDraft(y??v,{patch:v,show:O}):w?d=T.reload(I,{email:y??v,patch:v,show:O}):T.sessionKey()===Se(I)?d=T.show(v,O):d=T.open(I,{email:y??v,patch:v,show:O});const x=!!this._prevCommand&&a.deepEqual(this._prevCommand,h);h.id,!this._prevCommand||a.deepEqual(this._prevCommand,h),this._prevCommand?.id,this._rememberShow(h),u=n.requestShow({showId:o,navId:String(A),emailId:I,isNew:I===void 0}),p=!0,String(A),c=!0}catch(m){l=m,p&&o&&n.failShow(o,m),String(m)}finally{this._eventLock.resumeChange()}if(!c)throw l instanceof Error?l:new Error(`[useblocks] show() setup failed: ${String(l??"unknown error")}`);return we("show-init-deferred",Promise.all([u,d?.whenReady().catch(m=>{if(m instanceof ke){const b=Zn(m);throw b?new Error(`[useblocks] show(): email open failed (${b})`,{cause:m}):m}})??Promise.resolve()]).then(()=>{}),{showId:o,emailId:s??null}).then(()=>{this._rememberShownContent(e)})}async _save(){this._throwIfDestroyed();const e=this._getInitPipeline();a.throwIfAborted(e.signal);const t=se(this._container),n=await t.save("publish",{source:tu});if(a.throwIfAborted(e.signal),!n)throw nu(t.saveState().error);return W(qd(this._container,this._currentEmail),this._container)}_queuedShow=this._queue.decorate((e,t)=>this._show(e,t),this);show=e=>{const t=this._showRequests+=1;return this._queuedShow(e,t)};save=this._queue.decorate(this._save,this)};function ou(e){return String(e).replace(/"/g,"&quot;")}function iu(e=new Date){const t=n=>String(n).padStart(2,"0");return String(e.getFullYear())+t(e.getMonth()+1)+t(e.getDate())+t(e.getHours())+t(e.getMinutes())+t(e.getSeconds())}function au(e){const t=/<(table|tr|div)(\s[^>]*)>/gi;let n;for(;(n=t.exec(e))!==null;){const r=n[2]??"";if(/\bem\s*=\s*["']block["']/i.test(r))return{full:n[0],index:n.index}}return null}function _s(e,t,n){const r=new RegExp(`\\b${t}\\s*=\\s*["'][^"']*["']`,"i"),s=ou(n);return r.test(e)?e.replace(r,`${t}="${s}"`):e.replace(/>$/,` ${t}="${s}">`)}function lu(e,t,n){if(!e?.trim()||!t)return e;const r=au(e);if(!r)return e;const s=String(t),o=iu(n??new Date);let{full:i,index:c}=r;const l=i.length;return/\bem-block-id\s*=/.test(i)||(i=_s(i,"em-block-id",s)),i=_s(i,"em-block-version",o),e.slice(0,c)+i+e.slice(c+l)}function cu(e){if(e.meta!==void 0&&e.meta!==null&&typeof e.meta=="object")return e.meta;const t=e.catalogExtra?.meta;if(t!=null&&typeof t=="object")return t}function du(e,t){const n=e.insertFrom??t?.type,r=t?.blockId??(e.id!=null&&e.id!==""?String(e.id):void 0),s=t?.project??(e.project!==void 0&&e.project!==null?String(e.project):void 0);return{type:t?.type??n,insertFrom:n,name:t?.name??e.name,blockId:r,project:s,fragmentRole:e.fragmentRole,id:r,title:e.title??void 0,blockType:e.type,meta:cu(e)}}function Gt(e,t){return t?du(t,e):{type:e.type,name:e.name,blockId:e.blockId,project:e.project,insertFrom:e.type}}var vs=["title","slug","type","tags","blocktags","modified","author","lock","subject","description","excerpt","status","is_template","link","renderGuid","date","date_gmt","modified_gmt","comment_status","ping_status","template","related_email","project_title","project_author","isAmp","meta"],uu=[...vs,"html","id","project","password"],Zp=new Set(["html",...vs,"global_block","project"]);function fu(e){if(!e||typeof e!="object")return{};const t={};e.id!=null&&e.id!==""&&(t.id=String(e.id)),e.title!=null&&e.title!==""&&(t.title=e.title),e.slug!=null&&e.slug!==""&&(t.slug=e.slug),e.type!=null&&e.type!==""&&(t.type=e.type),e.tags!=null&&(t.tags=e.tags),e.blocktags!=null&&(t.blocktags=e.blocktags),e.modified!=null&&e.modified!==""&&(t.modified=e.modified),e.author!=null&&e.author!==""&&(t.author=String(e.author)),e.lock!=null&&(t.lock=e.lock),e.subject!=null&&e.subject!==""&&(t.subject=e.subject),e.description!=null&&e.description!==""&&(t.description=e.description),e.excerpt!=null&&e.excerpt!==""&&(t.excerpt=e.excerpt),e.status!=null&&e.status!==""&&(t.status=e.status),e.is_template!=null&&(t.is_template=e.is_template),e.link!=null&&e.link!==""&&(t.link=e.link),e.renderGuid!=null&&e.renderGuid!==""&&(t.renderGuid=e.renderGuid),e.date!=null&&e.date!==""&&(t.date=e.date),e.date_gmt!=null&&e.date_gmt!==""&&(t.date_gmt=e.date_gmt),e.modified_gmt!=null&&e.modified_gmt!==""&&(t.modified_gmt=e.modified_gmt),e.comment_status!=null&&e.comment_status!==""&&(t.comment_status=e.comment_status),e.ping_status!=null&&e.ping_status!==""&&(t.ping_status=e.ping_status),e.template!=null&&e.template!==""&&(t.template=e.template),e.related_email!=null&&e.related_email!==""&&(t.related_email=e.related_email),e.project_title!=null&&e.project_title!==""&&(t.project_title=e.project_title),e.project_author!=null&&e.project_author!==""&&(t.project_author=e.project_author),e.isAmp!=null&&(t.isAmp=e.isAmp),e.meta!==void 0&&e.meta!==null&&typeof e.meta=="object"&&(t.meta=e.meta);const n=new Set(uu),r={};for(const s of Object.keys(e))n.has(s)||(r[s]=e[s]);return Object.keys(r).length>0&&(t.catalogExtra=r),t}function pu(e,t={}){return!e||typeof e!="object"?{html:"",insertFrom:t.type,name:t.name,project:t.project,id:t.blockId}:{...fu(e),html:typeof e.html=="string"?e.html:"",insertFrom:t.type,name:t.name,project:t.project??e.project,id:e.id!=null&&e.id!==""?String(e.id):t.blockId}}var Vt=new WeakMap;function mu(e){let t=Vt.get(e);return t||(t={byId:new Map,fallback:[]},Vt.set(e,t)),t}function hu(e){Vt.delete(e)}function gu(e,t){const{byId:n,fallback:r}=mu(t);if(e.blockId){const s=n.get(e.blockId);if(s){n.delete(e.blockId);const o=r.indexOf(s);return o>=0&&r.splice(o,1),s}return}for(let s=r.length-1;s>=0;s--){const o=r[s],i=e.name!=null&&e.name!==""&&o.name!=null&&o.name!==""&&o.name===e.name,c=e.type!=null&&e.type!==""&&o.insertFrom===e.type;if(i&&c)return r.splice(s,1),o.id!=null&&o.id!==""&&n.delete(String(o.id)),o}}async function Eu(e,t){const{blocks:n}=qe(e);return await n.cache.getIfPresent(t)??void 0}async function bu(e,t){if(!t.blockId)return;const n=await Eu(e,t.blockId);if(n)return pu(n,t)}async function _u(e,t){const n=gu(e,t);if(n)return Gt(e,n);const r=await bu(t,e);return r?Gt(e,r):Gt(e,void 0)}var vu=a.createIdentifier("application_block_inserted"),yu=-1e3,ys=new WeakSet;function Su(e){if(e===null||typeof e!="object")return!1;const t=e;return typeof t.type=="string"||typeof t.name=="string"||typeof t.blockId=="string"||typeof t.project=="string"||typeof t.project=="number"}function Iu(e){if(!e||ys.has(e))return;ys.add(e);const t=new a.Disposable,n=Y(e);return t.addDisposable(n.addListenerAsyncPipe(vu,async(r,s)=>{const o=Su(r)?await _u(r,e):r;return s?s(o):o},yu)),t.addDisposable({dispose:()=>{hu(e)}}),t}var Ss=100,wu=class extends a.Disposable{_container;_events;constructor(e){super(),this._container=e;const t=Iu(e);t&&this.addDisposable(t)}_get(){const e=this._container,{blocks:t,emails:n,comments:r,emailRevisions:s}=qe(e),o=H(e,a.events.ON_SHARE_ID),i=H(e,a.events.ON_SHOW_PREVIEW_ID),c=H(e,a.events.ON_EMAIL_CLONE_ID),l=H(e,a.events.ON_CODE_VALIDATE_ID),u=H(e,a.events.ON_SUBJECT_CHANGED_ID),d=H(e,a.events.ON_EMAIL_CHANGED_ID),p=H(e,a.events.ON_PREHEADER_CHANGED_ID),m=H(e,a.events.ON_SAVEBUTTON_CLICK_ID),b=H(e,a.events.ON_NEXTBUTTON_CLICK_ID),S=H(e,a.events.ON_SEND_LIVEPREVIEW_ID),E=H(e,a.events.ON_SEND_TESTEMAIL_ID),g=H(e,Ud),_=H(e,a.events.ON_CONTENT_CHANGED_ID),v=H(e,jd),I=H(e,a.events.ON_PREVIOUSBUTTON_CLICK_ID),A=H(e,a.events.ON_SEND_EMAIL_MODAL_ID),P=a.filter(H(e,a.events.ON_EMAIL_INIT_ID),h=>!h.reset);return{handlePreheaderChanged:N(p),handleSubjectChanged:N(u),handleValidate:N(l),handleReadEmail:N(n.handlerRead,h=>h,h=>h&&be(h,e)),handleSaveEmail:N(n.onSave,function({prev:h,patch:w,value:f,source:y}){const T=h?W(h,e):void 0;return{prev:T,patch:Te(T,W(w,e)),value:W(f,e),source:y}},h=>h?be(h,e):void 0),handleRemoveEmail:N(n.onRemove,({value:h,source:w})=>({value:W(h,e),source:w}),()=>{}),handleReadCommonBlocks:N(g,h=>h.project,h=>h?.map(w=>Pe(w,e))),handleReadTemplateBlocks:N(v,h=>h,h=>h?.map(w=>Pe(w,e))),handleReadBlocks:N(t.byForeignKey("project").handleRead,h=>ze(e).requested||String(h),h=>h?.map(w=>Pe(w,e))),handleSaveBlock:N(t.onSave,function({prev:h,patch:w,value:f,source:y}){const T=f.global_block===!0&&f.id&&typeof f.html=="string"?{...f,html:lu(f.html,String(f.id))}:f,O=h?We(h,e):void 0;return{prev:O,patch:Te(O,We(w,e)),value:We(T,e),source:y}},h=>h?Pe(h,e):void 0),handleRemoveBlock:N(t.onRemove,({value:h,source:w})=>({value:We(h,e),source:w}),()=>{}),handleReadComments:N(r.byForeignKey("post").handleRead,h=>h,h=>h?.map(w=>Ht(w,e))),handleSaveComment:N(r.onSave,function({prev:h,patch:w,value:f,source:y}){const T=h?Xe(h,e):void 0;return{prev:T,patch:Te(T,Xe(w,e)),value:Xe(f,e),source:y}},h=>h?Ht(h,e):void 0),handleRemoveComment:N(r.onRemove,({value:h,source:w})=>({value:Xe(h,e),source:w}),()=>{}),handleReadEmailRevisions:N(s.byForeignKey("parent").handleRead,h=>h,h=>h?.map(w=>$t(w,e))),handleEmailAutosave:N(s.onSave,function({prev:h,patch:w,value:f,source:y}){return{value:bs(f,e),source:y}},h=>h?$t(h,e):void 0),handleRemoveEmailAutoSave:N(s.onRemove,({value:h,source:w})=>({value:bs(h,e),source:w}),()=>{}),handleEmailChanged:N(a.debounce(d,Ss),h=>W(h,e)),handleEmailInit:N(P,h=>W(h,e)),handlePreviousButtonClick:N(I,h=>W(h,e)),handleNextButtonClick:N(b,h=>W(h,e)),handleSaveButtonClick:N(m,h=>W(h,e)),handleHtmlChanged:N(a.debounce(_,Ss)),handleTestEmailSend:N(E,({html:h,...w})=>({...w,code:h,compiled:{html:h,ampHtml:""}})),handleTestEmailModal:N(A,h=>W(h,e)),handleCloneEmail:N(c,h=>W(h,e)),handleShareEmail:N(o),handlePreviewEmail:N(i),handleLivePreviewEmail:N(S)}}get(){return this._events||(this._events=this._get())}_listenersUpdaters;setOptions(e={}){const t=this.get();let n=this._listenersUpdaters;if(!n){n=this._listenersUpdaters={};for(const r of Object.keys(t))n[r]=this.addDisposable(new Ee(t[r]))}for(const r of Object.keys(t))n[r].setListener(e[r])}},Tu=a.createIdentifier$1("DataController"),Au=a.createIdentifier$1("DataEvents");function Is(e){return e.getOrCreateInstance(Tu,()=>{const t=new su(e);return e.getInstance(a.DISPOSABLE_ID)?.addDisposable(t),t})}function ws(e){return e.getOrCreateInstance(Au,()=>new wu(e))}var Cu=a.createIdentifier$1("plugin.startupShow");function Pu(e){const t=Is(e),n=ws(e),r=e.getInstance(a.OPTIONS_SOURCE_ID),s=e.getInstance(a.DISPOSABLE_ID),o={current:Promise.resolve()};e.inject(Cu,o);const i=r?.watch(l=>{l&&n.setOptions(l)}),c=r?.select(l=>l?.content).watch(l=>{l!==void 0&&(j(z.showStart),o.current=(async()=>{try{await t.show(l)}catch{}finally{j(z.showEnd)}})())});i&&s?.addDisposable(i),c&&s?.addDisposable(c)}function Du(e){const t=Is(e);return{...ws(e).get(),show(n){return j(z.showStart),t.show(n).finally(()=>j(z.showEnd))},save(){return t.save()}}}function em(e){return e}var Ru=[{name:"rest.client",setup:xd},{name:"auth.oauth",setup:a.provideOAuth},{name:"rest.identityHeaders",setup:Dd},{name:"lifetime.destroyable",provides:[Ot],setup:Lc},{name:"appInit",provides:[a.APP_ID,ot],setup:No},{name:"config",provides:[a.CONFIG_SOURCE_ID],setup:Rc},{name:"email.documents",setup:Xc},{name:"show.initPipeline",provides:[a.INIT_PIPELINE_ID],setup:Md},{name:"show",setup:Pu},{name:"locale.service",provides:[Ce],setup:Td},{name:"locale.fromConfig",awaits:{services:[a.CONFIG_SOURCE_ID,Ce]},setup:Ad},{name:"canvas.early",setup:Rl},{name:"canvas.previewSettings",setup:Bl},{name:"canvas.sandboxExtensions",setup:Ul},{name:"canvas.headerSync",provides:[xr],setup:Nl},{name:"canvas.ampSync",setup:aa},{name:"canvas.moduleBridge",setup:La},{name:"canvas.port",setup:ga},{name:"canvas.images",setup:ma},{name:"canvas.edits",setup:ul},{name:"canvas.blockContent",setup:ol},{name:"canvas.sandboxFill",provides:[St],setup:rc},{name:"canvas.reactions",setup:Cl}],Ou=class extends Error{cycle;constructor(e){super(`[units] цикл в зависимостях: ${e.join(" → ")}`),this.cycle=e}};function Lu(e){const t=new Map;for(const n of e)for(const r of n.provides??[]){const s=t.get(r)??[];s.push(n),t.set(r,s)}return t}function Nu(e,t){const n=[];for(const r of e.awaits?.services??[])for(const s of t.get(r)??[])s!==e&&n.push(s);return n}function Ts(e){const t=Lu(e),n=[],r=new Set,s=[],o=new Set,i=c=>{if(!r.has(c)){if(o.has(c)){const l=s.indexOf(c);throw new Ou([...s.slice(l),c].map(u=>u.name))}o.add(c),s.push(c);for(const l of Nu(c,t))i(l);s.pop(),o.delete(c),r.add(c),n.push(c)}};for(const c of e)i(c);return n}var As;function Yt(e){const t=e.getInstance(a.OPTIONS_SOURCE_ID);if(t)return t;e.getInstance(a.DISPOSABLE_ID)||e.inject(a.DISPOSABLE_ID,new a.Disposable);const n=pe();e.inject(a.OPTIONS_SOURCE_ID,n),As??=Ts(Ru);for(const r of As)r.setup(e);return n}function xu(e){}var Mu=[{name:"save.previewFollow",setup:xu}],Cs=a.createIdentifier$1("plugin.lateUnitsInstalled");function Fu(e){if(!e.getInstance(Cs)){e.inject(Cs,!0);for(const t of Ts(Mu))t.setup(e)}}function ku(e,t){return{project:Number(e),app_id:t?.app_id||0,app_config:t?.app_config||{},user:t?.user}}function Bu(e){if(!e)return;const t=a.decodeJwt(e)?.data,n=t?.data?.scope??t?.scope;return(Array.isArray(n)?n.flatMap(r=>typeof r=="string"?r.split(/\s+/):[]):typeof n=="string"?n.split(/\s+/):[]).find(r=>/^project_\d+$/.test(r))?.replace(/^project_/,"")||void 0}var ju=a.defineMixin(e=>{let t,n,r;return{async setOptions(s){const o=r!==s.getAuthToken,i=!a.deepEqual(t,s.user),c=n!==s.project;if(r=s.getAuthToken,t=s.user,n=s.project,!(!e.getInstance(a.SECURITY_MODULE_ID)||!s.getAuthToken)&&!(!o&&!i&&!c))try{const l=await s.getAuthToken(s.user,s.project);e.inject(a.STANDALONE_BOOTSTRAP_TOKEN_ID,Promise.resolve(l||""));const u=Bu(l);if(!u)return;e.inject(a.STANDALONE_PROJECT_ID,u);const d=e.getInstance(a.APP_ID),p=d?await d.catch(()=>{}):void 0;e.inject(a.APP_ID,Promise.resolve(ku(u,p)))}catch{}}}});function Uu(e,t){if(e.getInstance(a.STANDALONE_FILE_PROXY_REGISTERED_ID))return;e.inject(a.STANDALONE_FILE_PROXY_REGISTERED_ID,!0);const n=a.getEvent(e,a.events.FILE_PROXY_EVENT_ID);t.addDisposable(n(async({url:r})=>(await fetch(r)).blob(),Number.MIN_VALUE))}function Hu(e){e.getInstance(a.STANDALONE_ACTIVATED_ID)||e.inject(a.SECURITY_MODULE_ID,void 0)}function Je(e){return String(e.standaloneKey||"").trim()||void 0}function $u(e){return e.standaloneOnAuthFailure===!0?!0:e.config?.standaloneOnAuthFailure===!0}function zt(e){return $u(e)?!!Je(e):!1}function Qe(e){return!!Je(e)&&!zt(e)}var Gu=a.defineMixin(e=>{let t,n=!1;return{setOptions(r){const s=n;if(n=!0,!Qe(r)){t&&(Hu(e),zt(r)),t=void 0;return}const o=Je(r);if(!o||t===o&&e.getInstance(a.SECURITY_MODULE_ID))return;t=o,e.inject(a.SECURITY_MODULE_ID,o);const i=e.getInstance(a.DISPOSABLE_ID);i&&Uu(e,i)}}}),Vu=a.defineMixin(e=>{const t=e.getInstance(a.DISPOSABLE_ID),n=a.getEvent(e,a.APP_LOAD_EVENT_ID),r=N(n),s=t.addDisposable(new Ee(r));return{setOptions({handleLoad:o}){s.setListener(o)},instance:{handleLoad:r},dispose:()=>t.dispose()}}),Yu=a.defineMixin(e=>{const t=e.getInstance(a.DISPOSABLE_ID),n=t.addDisposable(new a.AsyncEmitter),r=t.addDisposable(new a.AsyncEmitter),s=a.getEmitter(e,a.CONFIG_CHANGED_EVENT_ID),o=N(n.event),i=N(r.event),c=N(s.event),l=t.addDisposable(new Ee(o)),u=t.addDisposable(new Ee(i)),d=t.addDisposable(new Ee(c));return{instance:{handleSetOptions:o,handleOptionsChanged:i,handleConfigChanged:c},async setOptions(p){l.setListener(p.handleSetOptions),u.setListener(p.handleOptionsChanged),d.setListener(p.handleConfigChanged),await n.fire(p),await r.fire(p)},dispose(){}}}),qt,Ps="core";function zu(){const e=__useblocks__?.require;return typeof e!="function"?Promise.reject(new Error("[loadCore] AMD loader is unavailable")):new Promise((t,n)=>{e([Ps],r=>t(r),r=>n(r instanceof Error?r:new Error("[loadCore] Failed to require core module")))})}function qu(e){const t=__useblocks__?.require?.warm;return typeof t!="function"?De().then(()=>{}):t([Ps],e)}function De(){return qt===void 0&&(qt=zu().then(e=>(ve()&&e.installDiagnostics().catch(t=>{}),e))),qt}var Kt=null,Wt=null;async function Ku(e){typeof e?.prefetch=="function"&&await e.prefetch()}function Xt(){return Kt||(Kt=De().then(()=>{})),Kt}function Ds(e){return Wt||(Wt=Ku(e)),Wt}function Wu(){return Ds(typeof __useblocks__<"u"?__useblocks__:void 0)}function Xu(e){return Promise.all([Xt(),Ds(e)]).then(()=>{})}function Ju(e){const t=e?.preload?.start??e?.startupPrefetchMode;return t==="eager"||t==="idle"||t==="manual"||t==="off"?t:"idle"}function Rs(e,t){const n=e?.preload?.execute!==!1;Promise.resolve().then(()=>qu(t?{priority:t}:void 0)).then(()=>n?Xt():void 0).catch(()=>{})}function Qu(e){const t=Ju(e);if(t==="eager")Rs(e);else if(t==="idle"){const n=()=>Rs(e,"low");document.readyState==="complete"?n():window.addEventListener("load",n,{once:!0})}}var Os="PluginRegistry";function Zu(e=a.resolveContainer()){return e.getOrCreateInstance(Os,()=>new mo)}var Ls=new ho(()=>Zu()),ef=a.defineMixin(e=>{let t;function n(){if(!t)throw new Error("PluginCollection not initialized. Call init() first.");return t}return{async setOptions(r){const s=e.getInstance(a.INSTANCE_ID),o=e.getInstance(Os);t||(t=new po(s,o,{ensureHostRuntimeReady:Wu}),e.inject(a.PLUGIN_COLLECTION_ID,t));const i=r?.plugins||[];s&&await t.setPlugins(i)},instance:{use(r){return typeof r=="function"?n().useByCtor(r):n().useByKey(r)},useAsync(r){return n().useAsync(r)},waitPlugin(r){return n().waitFor(r)}},dispose(){t?.dispose(),t=void 0}}}),Ns=class{_listeners=[];add(e,t=0,n){const r={fn:n?e.bind(n):e,priority:t};return this._listeners.push(r),{dispose:()=>{const s=this._listeners.indexOf(r);s>=0&&this._listeners.splice(s,1)}}}async run(e){const t=[...this._listeners].sort((n,r)=>r.priority-n.priority);for(const{fn:n}of t){const r=await n(e);r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof Date)&&!(r instanceof RegExp)&&Object.assign(e,r)}return e}},tf=a.createIdentifier$1("ELEMENT_INSERT_HTML_PIPELINE"),nf=a.createIdentifier$1("BLOCK_INSERT_HTML_PIPELINE"),rf="application_block_inserted",sf=class{_context;constructor(e){this._context=e}get _container(){return this._context.container}handleBeforeInject(e,t,n){return this._container.getOrCreateInstance(nf,()=>new Ns).add(e,t??0,n)}handleInject(e,t,n){const r=this._container.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService),s=n?e.bind(n):e;return r.addListener(rf,s,t)}},of=a.createIdentifier$1("ComponentRegistry"),xs;function Re(e,t=of){const n=a.DependencyResolver.getInstance(t);if(n)return n;if(!xs)throw new Error("[extensions] component registry is not loaded yet — UI work starts at init()");return a.DependencyResolver.getOrCreateInstance(t,xs)}var af=class{_context;constructor(e){this._context=e}get _container(){return this._context.container}getNames(){return new Promise(e=>{const t=this._container.addService(a.ATOMS_HANDLERS_ID,{execute:n=>{t.dispose(),e(n.value.map(r=>({name:r.name,html:r.html})))}})})}update(e,t){const n=this._container,r=Re(n);return n.addService(a.ATOMS_HANDLERS_ID,{execute:s=>{const o=s.value.find(i=>i.name===e);if(o){const{icon:i,title:c,fallbackTooltip:l,...u}=t;i&&(o.icon=r.getReactNode(i)),c&&(o.title=r.getReactNode(c)),l&&(o.fallbackTooltip=r.getReactNode(l)),Object.assign(o,u)}}})}delete(e){this._container.addService(a.ATOMS_HANDLERS_ID,{execute:t=>{const n=t.value.findIndex(r=>r.name===e);n>=0&&t.value.splice(n,1)}})}insert(e,t){const n=this._container,r=Re(n);return n.addService(a.ATOMS_HANDLERS_ID,{execute:s=>{s.value.splice(t??s.value.length,0,{...e,title:r.getReactNode(e.title),icon:r.getReactNode(e.icon),fallbackTooltip:r.getReactNode(e.fallbackTooltip)})}})}handleBeforeInject(e,t,n){return this._container.getOrCreateInstance(tf,()=>new Ns).add(e,t??0,n)}handleInject(e,t,n){return a.getEmitter$1(this._container,a.HANDLE_ATOM_INSERT_ID).event(r=>{e({name:r.name,className:r.className||"",html:r.html})},t,n)}},lf=class{_messageService;constructor(e){this._messageService=e.container.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService)}send(e,t,n){this._messageService.send(e,t,n)}sendAsync(e,t,n=!0){return this._messageService.sendAsync(e,t,n)}addListener(e,t,n){return this._messageService.addListener(e,t,n)}addListenerAsync(e,t,n=0){return this._messageService.addListenerAsync(e,t,n)}onInit(e,t=!0,n=0){return this._messageService.onInit(e,t,n)}isInited(){return this._messageService.isInited()}};function cf(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>n!==void 0))}var df=class{_context;_showModalEmitter;_closeModalEmitter;_updateModalEmitter;constructor(e){this._context=e;const t=e.container;this._showModalEmitter=a.getEmitter$1(t,a.MODAL_SHOW_EVENT),this._closeModalEmitter=a.getEmitter$1(t,a.MODAL_CLOSE_EVENT),this._updateModalEmitter=a.getEmitter$1(t,a.MODAL_UPDATE_EVENT)}get _container(){return this._context.container}show(e){const t=Re(this._container),n=`modal_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,r=e.modalProps;return this._showModalEmitter.fire({...e,content:t.getReactNode(e.content),title:t.getReactNode(e.title),id:n,modalProps:r?{...r,footer:t.getReactNode(r.footer),okText:t.getReactNode(r.okText),cancelText:t.getReactNode(r.cancelText),closeIcon:t.getReactNode(r.closeIcon)}:void 0}),n}close(e){this._closeModalEmitter.fire(e)}closeAll(){this._closeModalEmitter.fire()}update(e,t){const n=Re(this._container),r=t.modalProps;this._updateModalEmitter.fire(cf({...t,content:n.getReactNode(t.content),title:n.getReactNode(t.title),id:e,modalProps:r?{...r,footer:n.getReactNode(r.footer),okText:n.getReactNode(r.okText),cancelText:n.getReactNode(r.cancelText),closeIcon:n.getReactNode(r.closeIcon)}:void 0}))}},uf=class{_registration;_loadedDisposable;loaded;ready;_loadedSettled=!1;_readySettled=!1;constructor(e,t){this._registration=e,this._loadedDisposable=t,this.loaded=new Promise((n,r)=>{const s=()=>this._loadedDisposable.dispose(),o=()=>{this._loadedSettled||(this._loadedSettled=!0,this._readySettled&&s(),n())},i=c=>{this._loadedSettled||(this._loadedSettled=!0,this._readySettled&&s(),r(c))};this._resolveLoaded=o,this._rejectLoaded=i}),this.ready=new Promise((n,r)=>{const s=()=>this._loadedDisposable.dispose(),o=()=>{this._readySettled||(this._readySettled=!0,this._loadedSettled&&s(),n())},i=c=>{this._readySettled||(this._readySettled=!0,this._loadedSettled&&s(),r(c))};this._resolveReady=o,this._rejectReady=i})}_resolveLoaded=()=>{};_rejectLoaded=()=>{};_resolveReady=()=>{};_rejectReady=()=>{};resolveLoaded(){this._resolveLoaded()}resolveReady(){this._resolveReady()}rejectLoad(e){this._rejectLoaded(e),this._rejectReady(e)}rejectReady(e){this._rejectReady(e)}dispose(){this._registration.dispose();const e=new Error("Sandbox script registration disposed before completion.");this.rejectLoad(e),this.rejectReady(e)}},ff=class{_context;constructor(e){this._context=e}get _container(){return this._context.container}get _messageService(){return this._container.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService)}_createScriptHandle(e,t){const n=this._messageService.addListener(a.SANDBOX_EXTENSION_SCRIPT_STATUS_ID,s=>{if(s.key===e){if(s.phase==="load"&&s.status==="success"){r.resolveLoaded();return}if(s.phase==="ready"&&s.status==="success"){r.resolveReady();return}if(s.phase==="load"){r.rejectLoad(new Error(s.error||`Sandbox script "${e}" failed to load.`));return}r.rejectReady(new Error(s.error||`Sandbox script "${e}" failed to initialize.`))}}),r=new uf(t,n);return r}registerSandboxCSS(e){return this._container.addService(a.SANDBOX_EXTENSIONS_ID,{type:"link",key:e,parent:"head",attributes:{rel:"stylesheet",type:"text/css",href:e}})}registerSandboxCSSCode(e,t){return this._container.addService(a.SANDBOX_EXTENSIONS_ID,{type:"style",key:e,parent:"head",attributes:{type:"text/css"},innerHTML:t})}registerSandboxScript(e){const t=this._container.addService(a.SANDBOX_EXTENSIONS_ID,{type:"script",key:e,parent:"head",attributes:{src:e,type:"text/javascript"}});return this._createScriptHandle(e,t)}registerSandboxScriptCode(e,t){const n=this._container.addService(a.SANDBOX_EXTENSIONS_ID,{type:"script",key:e,parent:"head",attributes:{type:"text/javascript"},innerHTML:t});return this._createScriptHandle(e,n)}},pf=new Set([Symbol.for("react.element"),Symbol.for("react.transitional.element")]);function Jt(e){if(typeof e!="object"||e===null)return!1;const t=e.$$typeof;return typeof t=="symbol"&&pf.has(t)}function Ms(){const e=globalThis.crypto;if(e&&typeof e.randomUUID=="function")return e.randomUUID();if(e&&typeof e.getRandomValues=="function"){const t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,n=>n.toString(16).padStart(2,"0")).join("")}return`nohwcrypto-${Date.now()}`}function Qt(){return`__settingsPanel:${Ms()}`}function Zt(e,t){return{type:e,props:t}}function mf(e){return typeof e=="object"&&e!==null&&"type"in e&&"props"in e&&!Jt(e)}function Fs(e,t,n){if(t==null||typeof t=="number"||typeof t=="boolean"||typeof t=="string")return t;if(Jt(t)){const r=Qt();return n(e.add(r,t)),Zt(r,{})}if(typeof t=="function"){const r=Qt();return n(e.add(r,t)),Zt(r,{})}if(mf(t)){const r=t.type;if(typeof r=="string")return t;if(Jt(r)||typeof r=="function"){const s=Qt();return n(e.add(s,r)),Zt(s,t.props)}return t}return t}var hf=class{_context;_panelRegistrationDisposables=[];constructor(e){this._context=e}get _container(){return this._context.container}_clearPanelRegistrations(){for(const e of this._panelRegistrationDisposables)e.dispose();this._panelRegistrationDisposables.length=0}_trackRegistration(e){this._panelRegistrationDisposables.push(e)}showSettingsPanel(e){this._clearPanelRegistrations();const t=Re(this._container),n=i=>this._trackRegistration(i),r=Fs(t,e.content,n),s=e.advancedTabs?.map(i=>({...i,content:Fs(t,i.content,n)})),o=e.instanceKey??Ms();a.getEmitter$1(this._container,a.SETTINGS_PANEL_EVENT).fire({...e,content:r,advancedTabs:s,instanceKey:o,type:a.ADVANCED_SETTINGS_PANEL})}closeSettingsPanel(){this._clearPanelRegistrations(),a.getEmitter$1(this._container,a.SETTINGS_PANEL_EVENT).fire(null)}},ks={SandboxScriptApi:ff,ElementsApi:af,BlocksApi:sf,MessageService:lf,SettingsPanelApi:hf,ModalApi:df};function en(e,t,n,r={}){const s=Object.assign({},e);for(const[o,i]of Object.entries(t))if(i!==void 0)if(n.includes(o)&&typeof i=="object"&&i!==null){const c=s[o],l=r[o]??{};s[o]=Object.assign({},typeof c=="object"&&c!==null?c:l,i)}else s[o]=i;return s}var X={border:{all:null,top:null,right:null,bottom:null,left:null},borderRadius:{all:5,topLeft:null,topRight:null,bottomRight:null,bottomLeft:null},borderRadiusCards:{all:10,topLeft:null,topRight:null,bottomRight:null,bottomLeft:null},padding:{all:null,top:null,right:null,bottom:null,left:null}},gf={fontFamily:["Safe Fonts","-apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif"],fontSize:16,fontSizeDim:"px",lineHeight:21,lineHeightDim:"px",color:"#5a5a5a",contrastColor:"#FFFFFF",textAlign:"left",paddingBottom:10,paddingBottomDim:"px"},tn={fontFamily:["Safe Fonts","-apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif"],fontSize:24,fontSizeDim:"px",lineHeight:32,lineHeightDim:"px",color:"#333333",contrastColor:"#FFFFFF",textAlign:"left",paddingTop:20,paddingTopDim:"px",paddingBottom:20,paddingBottomDim:"px",letterSpacing:0,letterSpacingDim:"px",bold:!0,italic:!1},Bs={color:"#1C52DC",contrastColor:"#FFFFFF",underline:!0},_e={fontFamily:["Safe Fonts","-apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif"],fontSize:16,fontSizeDim:"px",letterSpacing:0,letterSpacingDim:"px",color:"#FFFFFF",contrastColor:"#1C52DC",bold:!1,italic:!1,backgroundColor:"#1C52DC",contrastBackgroundColor:"#FFFFFF",marginTop:10,marginTopDim:"px",marginBottom:10,marginBottomDim:"px",border:X.border,borderRadius:X.borderRadius,textAlign:"center",padding:X.padding},js={backgroundColor:"#FFFFFF",contrastBackgroundColor:"#1C52DC",padding:X.padding},nn={contrastBackgroundColor:"#1C52DC",contrastTextColor:"#FFFFFF",baseBackgroundColor:"#F8F8F8",baseTextColor:"#333333",border:X.border,borderRadius:X.borderRadiusCards};function Ef(e){return{...gf,...e}}function bf(e){return{...tn,...e,bold:e?.bold??tn.bold,italic:e?.italic??tn.italic}}function _f(e){return{...Bs,...e,underline:e?.underline??Bs.underline}}function vf(e){return{..._e,...e,bold:e?.bold??_e.bold,italic:e?.italic??_e.italic,border:{..._e.border,...e?.border},borderRadius:{..._e.borderRadius,...e?.borderRadius},padding:{..._e.padding,...e?.padding}}}function yf(e){return{...js,...e,padding:{...js.padding,...e?.padding}}}function Sf(e){return{...nn,...e,border:{...nn.border,...e?.border},borderRadius:{...nn.borderRadius,...e?.borderRadius}}}function rn(e={}){return{backgroundColor:e.backgroundColor||"",backgroundImage:(e.backgroundImage||[]).map(t=>({type:"url",value:t?.value||""})),backgroundPositionX:e.backgroundPositionX||"",backgroundPositionY:e.backgroundPositionY||"",backgroundRepeat:e.backgroundRepeat||"",backgroundSize:e.backgroundSize||"",backgroundColorContent:e.backgroundColorContent||"",textStrong:e.textStrong||!1,textItalic:e.textItalic||!1,textUnderline:e.textUnderline||!1,width:e.width,responsive:e.responsive}}function Us(e){let t={...a.COMMON_STYLES};try{e&&e!=="{}"&&(t=JSON.parse(e))}catch{}return t}function sn(e){return{text:Ef(e.text),headings:bf(e.headings),links:_f(e.links),buttons:vf(e.buttons),block:yf(e.block),cards:Sf(e.cards)}}var Hs=a.createIdentifier$1("EmailSettingsPort"),If=1e4,$s=class{_editor;_layoutSettingsChanged=new a.Emitter;_contentStylesChanged=new a.Emitter;_messageSubscription;_messageSubscriptionPromise;_prevLayoutSnapshot;_prevContentSnapshot;constructor(e){this._editor=e}onChangeEmailLayoutSettings(e){const t=this._layoutSettingsChanged.event(e);return this._ensureMessageSubscription(),{dispose:()=>{t.dispose(),this._disposeMessageSubscriptionIfUnused()}}}onChangeEmailContentStyles(e){const t=this._contentStylesChanged.event(e);return this._ensureMessageSubscription(),{dispose:()=>{t.dispose(),this._disposeMessageSubscriptionIfUnused()}}}_disposeMessageSubscriptionIfUnused(){this._layoutSettingsChanged.hasListeners()||this._contentStylesChanged.hasListeners()||(this._messageSubscription?.dispose(),this._messageSubscription=void 0)}_settings(e=this._editor.container){const t=e.getInstance(Hs);if(!t)throw new Error("[extensions] настройки письма ещё не загружены — работа с UI начинается с init()");return t}_getCurrentLayoutSettings(){return rn(this._settings().read())}_getCurrentContentStyles(){const e=at(this._editor.container)?.current()?.get().attributes.common_styles;return sn(Us(e))}_getLayoutSnapshot(e){return JSON.stringify(e)}_getContentSnapshot(e){return JSON.stringify(e)}async _ensureMessageSubscription(){if(!this._messageSubscription){if(this._messageSubscriptionPromise)return this._messageSubscriptionPromise;this._messageSubscriptionPromise=(async()=>{if(await this._editor.container.getInstanceAsync(Hs),this._messageSubscription)return;const e=this._editor.container.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService),t=this._getCurrentLayoutSettings(),n=this._getCurrentContentStyles();this._prevLayoutSnapshot=this._getLayoutSnapshot(t),this._prevContentSnapshot=this._getContentSnapshot(n),this._messageSubscription=e.addListener(r=>{const s=r?.data,o=s?.operation;if(o===a.EVENT_TYPES.APPLICATION_EMAIL_SETTINGS_SET){const l=rn(s?.settings),u=this._getLayoutSnapshot(l);u!==this._prevLayoutSnapshot&&(this._prevLayoutSnapshot=u,this._layoutSettingsChanged.fire(l));return}if(o!==a.EVENT_TYPES.APPLICATION_COMMON_STYLES_UPDATE)return;const i=sn(r.data?.settings?.commonStyles??{...a.COMMON_STYLES}),c=this._getContentSnapshot(i);c!==this._prevContentSnapshot&&(this._prevContentSnapshot=c,this._contentStylesChanged.fire(i))})})();try{await this._messageSubscriptionPromise}finally{this._messageSubscriptionPromise=void 0}}}async getEmailLayoutSettings(){return await this._waitForEmailSettingsFromIframe(),this._getCurrentLayoutSettings()}async setEmailLayoutSettings(e){await this._waitForEmailSettingsFromIframe();const t=this._settings(),n={...t.read(),...e};t.write(n);const r=rn(n);this._prevLayoutSnapshot=this._getLayoutSnapshot(r),this._layoutSettingsChanged.fire(r)}async _waitForEmailSettingsFromIframe(e=If){const t=at(this._editor.container)?.current()?.get().attributes.is_inited,n=this._settings().read();if(t&&n&&Object.keys(n).length>0&&(n.backgroundColor||n.backgroundImage?.[0]?.value||n.width?.value||n.responsive!==void 0)||t)return;const r=this._editor.container,s=a.getEvent(r,a.events.ON_EMAIL_INIT_ID);return new Promise(o=>{let i=!1,c;const l=()=>{c&&(clearTimeout(c),c=void 0)},u=s(()=>{i||(i=!0,l(),u.dispose(),o())});c=setTimeout(()=>{i||(i=!0,u.dispose(),o())},e)})}async getEmailContentStyles(){return this._getCurrentContentStyles()}async setEmailContentStyles(e){const t=at(this._editor.container)?.current();if(!t)return;const n=Us(t.get().attributes.common_styles);e.text!==void 0&&(n.text={...n.text||{},...e.text}),e.headings!==void 0&&(n.headings={...n.headings||{},...e.headings}),e.links!==void 0&&(n.links={...n.links||{},...e.links}),e.buttons!==void 0&&(n.buttons=en(n.buttons||{},e.buttons,["border","borderRadius","padding"],{border:X.border,borderRadius:X.borderRadius,padding:X.padding})),e.block!==void 0&&(n.block=en(n.block||{},e.block,["padding"],{padding:X.padding})),e.cards!==void 0&&(n.cards=en(n.cards||{},e.cards,["border","borderRadius"],{border:X.border,borderRadius:X.borderRadiusCards}));const r=JSON.stringify(n);Be(t,{common_styles:r}),this._settings().markAppearanceChanged();const s=sn(n);this._prevContentSnapshot=this._getContentSnapshot(s),this._contentStylesChanged.fire(s)}},wf={...ks,EmailSettingsApi:$s},Tf={...ks},tm={...Tf,EmailSettingsApi:$s},Af={...wf};function Cf(){Ls.addAll(Af)}var Pf=[a.defineMixin(()=>{Cf()}),Vu,Yu,Gu,a.JWTMixin,ju,a.OAuthMixin];async function Df(){return(await De()).asyncMixins}var Rf=ef,Of=e=>{let t=null,n=!1;return{instance:{},async setOptions(r){if(!t&&!n){let s;try{s=await Df()}catch(i){throw e.failPendingWaits(i),i}t=s(e);const o=await e.getInstanceAsync(a.INSTANCE_ID);Object.assign(o,t.instance||{})}t&&await t.setOptions(r)},dispose(){t?.dispose(),n=!0}}},Lf=a.combineMixins([...Pf]);function on(){let e,t=!1;const n=new Map,r=new Map;function s(){for(const o of r.values())o();r.clear()}return{event(o,i,c){const l=Symbol("subscription");return t||(n.set(l,{listener:o,priority:i,thisArg:c}),e&&r.set(l,e(o,i,c))),()=>{n.delete(l),r.get(l)?.(),r.delete(l)}},attach(o){s(),e=o;for(const[i,{listener:c,priority:l,thisArg:u}]of n)r.set(i,o(c,l,u))},dispose(){t=!0,s(),n.clear(),e=void 0}}}var Gs=a.createIdentifier$1("NotificationService");function Nf(e){const t=on(),n=on(),r=on();return e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{t.dispose(),n.dispose(),r.dispose()}),e.getInstanceAsync(Gs).then(s=>{t.attach(s.onNotify),n.attach(s.onError),r.attach(s.onSuccess)},()=>{}),{handleNotify:t.event,handleError:n.event,handleSuccess:r.event,notify(s){const o=e.getInstance(Gs);if(!o)throw new Error("[plugin] notify() вызван до загрузки редактора");o.notify(s)}}}var xf=[Nc,Du,Nf];function Mf(e,t=xf){const n=Yt(e);Fu(e);const r=Lf(e),s=Rf(e),o=Of(e),i={...r.instance,...s.instance,...o.instance};for(const l of t)Object.assign(i,l(e));let c=!0;return{instance:i,async setOptions(l){await r.setOptions(l);const u=c&&n.get()===l;c=!1,u||n.set(l),await s.setOptions(l),await o.setOptions(l)}}}var Ff=class{_storage=Object.create(null);get(e){const t=this._storage[e];return t&&(!t.expires||t.expires<Date.now())?t.value:""}set(e,t,n){this._storage[e]={value:t,expires:n.expires?n.expires*1e3+Date.now():void 0}}remove(e){delete this._storage[e]}},kf="editor-runtime.react.copies",an=8;function Oe(e){return e&&typeof e=="object"?e:void 0}function Vs(e){const t=Oe(e);if(!t)return;if(typeof t.useState=="function")return t.useState;const n=Oe(t.default);return n&&typeof n.useState=="function"?n.useState:void 0}function Bf(e){const t=Oe(e),n=t&&typeof t.version=="string"?t.version:void 0,r=Oe(t?.default),s=r&&typeof r.version=="string"?r.version:void 0;return n??s??"unknown"}function jf(e,t,n){return e.package===t&&e.version===n}function Uf({ourReact:e,entries:t,packageName:n,version:r}){const s=Vs(e);if(!s||!Array.isArray(t))return[];const o=[],i=new Set;for(const c of t){const l=Oe(c);if(!l||!jf(l,n,r))continue;const u=Vs(l.react);!u||u===s||i.has(u)||(i.add(u),o.push({package:n,version:r,reactVersion:Bf(l.react),react:l.react}))}return o}function Hf({packageName:e,copies:t}){const n=[`[${e}] A second copy of React is on this page (singleton invariant broken).`,`The editor runs on its own React, the plugin got another one from ${e}/runtime/react.`,`This shows up as "Cannot read properties of null (reading 'useState')" and takes down the whole`,"editor, not just the plugin panel: plugin components render inside the editor tree.","","Found:"];for(const r of t.slice(0,an))n.push(` • React ${r.reactVersion}, loaded through ${r.package}@${r.version}/runtime/react`);return t.length>an&&n.push(` …and ${t.length-an} more`),n.push("","Likely root cause: the editor is loaded from its UMD entry (a <script> on the page), while the","plugin was built as an ESM package by the host bundler. Those two never share a React.","","Fix it either way:"," • build the plugin on globals — it then takes React from the page registry, or"," • load the editor from its ESM entry and build both with the same bundler."),n.join(`
2129
- `)}var Ys=new Set;function $f({packageName:e="useblocks",version:t="1.1.85-dev.3",log:n=r=>{}}={}){const r=s=>{try{const o=globalThis[Symbol.for(kf)],i=Uf({ourReact:s,entries:o,packageName:e,version:t}).filter(c=>!Ys.has(c.react));if(!i.length)return;i.forEach(c=>Ys.add(c.react)),n(Hf({packageName:e,copies:i}))}catch{}};try{const s=rt()?.modules?.React;if(s&&typeof s.then=="function"){s.then(r,()=>{});return}r(s)}catch{}}async function Gf(e,t){a.throwIfAborted(e.signal);const n=t??a.DependencyResolver.createChild();Yt(n);const r=n.getInstance(a.DISPOSABLE_ID);async function s(){n.inject(a.COOKIE_MANAGER_ID,new Ff),$f();const o=Mf(n),i={...o.instance,container:n,async reset(c){if(a.throwIfAborted(c.signal),r.isDisposed())throw Sn();return await o.setOptions(c),i}};n.inject(a.INSTANCE_ID,i);try{if(await o.setOptions(e),a.throwIfAborted(e.signal),r.isDisposed()||await n.getInstance(a.PLUGIN_COLLECTION_ID)?.activate(),e.devTools)try{const c=n.getInstance(a.PLUGIN_COLLECTION_ID);c&&await(await De()).initDevTools(n,c)}catch{}return a.throwIfAborted(e.signal),a.getEmitter(n,a.APP_LOAD_EVENT_ID).fire(i),i}catch(c){throw r.dispose(),c}}try{return await a.raceWithAbortSignal(s(),e.signal)}catch(o){throw r.isDisposed()||r.dispose(),o}}var Le=new WeakMap;function Vf(e){return e?Le.get(e):void 0}function zs(e){try{e.getInstance(a.DISPOSABLE_ID)?.dispose()}catch{}try{e.dispose()}catch{}}function Yf(e,t){if(!e)return;const n=Le.get(e);n&&n!==t&&zs(n),Le.set(e,t)}function zf(e,t){e&&Le.get(e)===t&&Le.delete(e)}function qf(e){const t=a.DependencyResolver.createChild();return Qe(e)&&t.inject(a.SECURITY_MODULE_ID,Je(e)),t}var Ne=new WeakMap,Kf="data-useblocks-config-styles";function Wf(e){return typeof e=="string"?e.trim():""}function qs(e,t){if(e.firstChild){e.insertBefore(t,e.firstChild);return}e.appendChild(t)}function Xf(e,t,n){if(!e||typeof document>"u")return null;const r=Wf(t),s=Ne.get(e),o=n||e;if(!r)return s&&(s.remove(),Ne.delete(e)),null;if(s)return s.textContent!==r&&(s.textContent=r),(s.parentNode!==o||s!==o.firstChild)&&qs(o,s),s;const i=document.createElement("style");return i.setAttribute(Kf,"true"),i.textContent=r,qs(o,i),Ne.set(e,i),i}function Jf(e){if(!e)return;const t=Ne.get(e);t&&(t.remove(),Ne.delete(e))}var nm=!1;function Ks(){return!1}var rm=28,Qf=`
2128
+ `)}function gs(e){return e.replace(/<title[^>]*>[\s\S]*?<\/title>/gi,"")}function Xd(e,t,n,r){const s=Jd(e,t,n,r);return s===void 0}function Jd(e,t,n,r){const{email:s}=Bt(t,!1),o=be(s,e),i=o.id;if(i===void 0)return"no-id";if(r!==void 0&&r!==i)return"other-id-shown";const c=mt(e)?.current();if(!c)return"no-session";const l=c.get(),u=l.attributes;if(l.serverId!==i)return"document-id";if(u.is_inited!==!0)return"not-inited";const d=gs(Ut(n??c.getContent()));if(o.html!==void 0&&gs(Ut(o.html))!==d)return"html";if(o.subject!==void 0&&o.subject!==u.subject)return"subject";if(o.preheader!==void 0&&o.preheader!==u.preheader)return"preheader";if(o.common_styles!==void 0&&o.common_styles!==u.common_styles)return"common_styles"}function Es(e,t){const{email:n}=Bt(t,!1),r=be(n,e);if(r.id!==void 0)return JSON.stringify([r.id,r.html===void 0?null:Ut(r.html),r.subject??null,r.preheader??null,r.common_styles??null])}function Qd(e,t){const n={...e};return delete n.id,{...n,...t}}function Zd(e){return e.html?e:{...e,html:us}}function Pe({code:e,project:t,...n},r,s){const o=s??fs(r);return{...n,...e?{html:ge(r).toEditorForm(e)}:{},renderGuid:a.generateUUID(),...o===void 0?{}:{project:o}}}function We({html:e,renderGuid:t,...n},r){const{requested:s}=qe(r);return re({...n,code:ge(r).toOutputForm(e),project:s===void 0?n.project:s,guid:void 0,link:void 0,status:void 0,slug:void 0,password:void 0,comment_status:void 0,template:void 0,blocktags:void 0,project_title:void 0,ping_status:void 0,lock:void 0,tag:void 0,is_template:void 0})}function bs(e){return mt(e)?.current()?.get().serverId??void 0}function Ht(e,t,n){return n===void 0&&(n=e.post===void 0?bs(t):e.post),{...e,content:e.content?`<p>${e.content}</p>`:"",post:n}}function Xe(e,t){return re({...e,link:void 0,comment_status:void 0})}function $t({code:e,...t},n,r){return r===void 0&&(r=t.parent===void 0?bs(n):t.parent),{...t,...e?{html:e}:{},parent:r}}function vs({html:e,...t},n){return re({...t,code:e,guid:void 0,compiled:re({html:e,ampHtml:e&&""})})}var eu=a.createIdentifier$1("emailTemplate.reads");async function tu(e,t){try{return await le(e).email(e).readEmail(t)??void 0}catch(n){n instanceof Error&&n.message;return}}function nu(e,t){const n=e.getOrCreateInstance(eu,()=>new Map),r=n.get(t);if(r!==void 0)return r;const s=tu(e,t).then(o=>(o===void 0&&n.delete(t),o));return n.set(t,s),s}var ru="EXTERNAL";function su(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"сохранение не состоялось")}var ou="email_id",iu=class extends a.Disposable{_container;_prevCommand;_lastShow;_showToken=0;_showRequests=0;_dataSources;_eventLock;_queue=a.createQueue();_currentEmail;constructor(e){super(),this._container=e;const t=e;this._dataSources=ze(t),this._eventLock=Kd(t);const n=H(e,a.events.ON_EMAIL_CHANGED_ID);this.addDisposable(n(r=>{this._currentEmail=r})),this.addDisposable(e.addService(a.REQUEST_HANDLER_ID,{execute:(r,s)=>{!s?.public&&this._currentEmail?.id&&!this._currentEmail.isNew&&r.headers.append(ou,this._currentEmail.id)}}))}_getInitPipeline(){return this._container?.getInstance(a.INIT_PIPELINE_ID)??yt}_throwIfDestroyed(){if(this.isDisposed())throw In()}async getTemplateEmail(e){const t=await nu(this._container,String(e));if(!t)return;const n={...t,lock:!1,parent_email:String(e)};return delete n.id,n}async setBlocks(e=[]){const{cache:t}=this._dataSources.blocks,n=await jt(this._container);await t.setAll(e.filter(r=>r.id!==void 0).map(r=>[r.id,Pe(r,this._container,n)]))}async setEmailRevisions(e,t){if(e===void 0)return;const{cache:n}=this._dataSources.emailRevisions,r=e.filter(s=>s.id!==void 0).map(s=>[s.id,$t(s,this._container,t)]);await n.setAll(r)}async setComments(e=[],t){const{cache:n}=this._dataSources.comments,r=e.filter(s=>s.id!==void 0).map(s=>[s.id,Ht(s,this._container,t)]);await n.setAll(r)}async setEmail(e,t,n,r,s){const o=this._dataSources.emails,i=o.cache,c=await jt(this._container),l=r??this._showToken;e=typeof e=="string"?{code:e}:{...e};let u=be(e,this._container);const d=u.id;let p=d;if(d!==void 0){const m=await o.get(d);u={...m??{},...u,renderGuid:m?.renderGuid??a.generateUUID(),...l>0?{showToken:l}:{},...s?{showId:s}:{},project:c}}else{p=n??a.generateUUID();const m=await o.get(p);u={...u,renderGuid:m?.renderGuid??a.generateUUID(),...l>0?{showToken:l}:{},...s?{showId:s}:{},project:c},delete u.project}if(t){const m=await this.getTemplateEmail(String(t));m&&(u=Qd(m,u))}return d===void 0&&(u=Zd(u)),await i.addOrUpdate(p,()=>u),u}_rememberShow(e){this._prevCommand=e}_isRepeatOfLastShow(e){const t=this._lastShow;if(!t||t.signature!==Es(this._container,e))return!1;const n=Ke(this._container);return n===void 0||n===t.html}_rememberShownContent(e){const t=Es(this._container,e);this._lastShow=t===void 0?void 0:{signature:t,html:Ke(this._container)??""}}async _show(e,t){if(this._throwIfDestroyed(),t!==void 0&&t!==this._showRequests){this._showRequests;return}if(!e)return;const n=this._getInitPipeline();if(a.throwIfAborted(n.signal),Xd(this._container,e,Ke(this._container),this._prevCommand?.id)||this._isRepeatOfLastShow(e))return;const r=Bt(e);r.email.id,this._prevCommand?.id;let s,o="",i=0,c=!1,l,u=Promise.resolve(),d,p=!1;try{this._eventLock.suspendChange();const{email:m,blocks:b,autosaves:S,comments:E,templateId:g,reload:v}=r;s=m.id;const _=be(m,this._container),I=_.id,A=I??a.generateUUID(),P=await we("getProject",jt(this._container));a.throwIfAborted(n.signal),o=a.generateUUID();const h={isNew:I===void 0,id:String(A),project:P},w=v===!0&&I!==void 0;w&&(await this._dataSources.emails.remove(String(I),{silent:!0}),String(I)),i=++this._showToken,String(A);const f=[];f.push(this.setBlocks(b)),m.id!==void 0&&(f.push(this.setComments(E)),f.push(this.setEmailRevisions(S,String(m.id)))),f.push(this.setEmail(m,Number(g),I===void 0?String(A):void 0,i,o)),await we("setEmail+blocks+revisions",Promise.all(f),{emailId:I??String(A),showId:o,targetShowToken:i}),a.throwIfAborted(n.signal);const y=await this._dataSources.emails.get(String(A)),T=se(this._container),O={id:o,token:i};I===void 0?d=T.startNewDraft(y??_,{patch:_,show:O}):w?d=T.reload(I,{email:y??_,patch:_,show:O}):T.sessionKey()===Se(I)?d=T.show(_,O):d=T.open(I,{email:y??_,patch:_,show:O});const x=!!this._prevCommand&&a.deepEqual(this._prevCommand,h);h.id,!this._prevCommand||a.deepEqual(this._prevCommand,h),this._prevCommand?.id,this._rememberShow(h),u=n.requestShow({showId:o,navId:String(A),emailId:I,isNew:I===void 0}),p=!0,String(A),c=!0}catch(m){l=m,p&&o&&n.failShow(o,m),String(m)}finally{this._eventLock.resumeChange()}if(!c)throw l instanceof Error?l:new Error(`[useblocks] show() setup failed: ${String(l??"unknown error")}`);return we("show-init-deferred",Promise.all([u,d?.whenReady().catch(m=>{if(m instanceof Fe){const b=er(m);throw b?new Error(`[useblocks] show(): email open failed (${b})`,{cause:m}):m}})??Promise.resolve()]).then(()=>{}),{showId:o,emailId:s??null}).then(()=>{this._rememberShownContent(e)})}async _save(){this._throwIfDestroyed();const e=this._getInitPipeline();a.throwIfAborted(e.signal);const t=se(this._container),n=await t.save("publish",{source:ru});if(a.throwIfAborted(e.signal),!n)throw su(t.saveState().error);return W(Wd(this._container,this._currentEmail),this._container)}_queuedShow=this._queue.decorate((e,t)=>this._show(e,t),this);show=e=>{const t=this._showRequests+=1;return this._queuedShow(e,t)};save=this._queue.decorate(this._save,this)};function au(e){return String(e).replace(/"/g,"&quot;")}function lu(e=new Date){const t=n=>String(n).padStart(2,"0");return String(e.getFullYear())+t(e.getMonth()+1)+t(e.getDate())+t(e.getHours())+t(e.getMinutes())+t(e.getSeconds())}function cu(e){const t=/<(table|tr|div)(\s[^>]*)>/gi;let n;for(;(n=t.exec(e))!==null;){const r=n[2]??"";if(/\bem\s*=\s*["']block["']/i.test(r))return{full:n[0],index:n.index}}return null}function _s(e,t,n){const r=new RegExp(`\\b${t}\\s*=\\s*["'][^"']*["']`,"i"),s=au(n);return r.test(e)?e.replace(r,`${t}="${s}"`):e.replace(/>$/,` ${t}="${s}">`)}function du(e,t,n){if(!e?.trim()||!t)return e;const r=cu(e);if(!r)return e;const s=String(t),o=lu(n??new Date);let{full:i,index:c}=r;const l=i.length;return/\bem-block-id\s*=/.test(i)||(i=_s(i,"em-block-id",s)),i=_s(i,"em-block-version",o),e.slice(0,c)+i+e.slice(c+l)}function uu(e){if(e.meta!==void 0&&e.meta!==null&&typeof e.meta=="object")return e.meta;const t=e.catalogExtra?.meta;if(t!=null&&typeof t=="object")return t}function fu(e,t){const n=e.insertFrom??t?.type,r=t?.blockId??(e.id!=null&&e.id!==""?String(e.id):void 0),s=t?.project??(e.project!==void 0&&e.project!==null?String(e.project):void 0);return{type:t?.type??n,insertFrom:n,name:t?.name??e.name,blockId:r,project:s,fragmentRole:e.fragmentRole,id:r,title:e.title??void 0,blockType:e.type,meta:uu(e)}}function Gt(e,t){return t?fu(t,e):{type:e.type,name:e.name,blockId:e.blockId,project:e.project,insertFrom:e.type}}var ys=["title","slug","type","tags","blocktags","modified","author","lock","subject","description","excerpt","status","is_template","link","renderGuid","date","date_gmt","modified_gmt","comment_status","ping_status","template","related_email","project_title","project_author","isAmp","meta"],pu=[...ys,"html","id","project","password"],tm=new Set(["html",...ys,"global_block","project"]);function mu(e){if(!e||typeof e!="object")return{};const t={};e.id!=null&&e.id!==""&&(t.id=String(e.id)),e.title!=null&&e.title!==""&&(t.title=e.title),e.slug!=null&&e.slug!==""&&(t.slug=e.slug),e.type!=null&&e.type!==""&&(t.type=e.type),e.tags!=null&&(t.tags=e.tags),e.blocktags!=null&&(t.blocktags=e.blocktags),e.modified!=null&&e.modified!==""&&(t.modified=e.modified),e.author!=null&&e.author!==""&&(t.author=String(e.author)),e.lock!=null&&(t.lock=e.lock),e.subject!=null&&e.subject!==""&&(t.subject=e.subject),e.description!=null&&e.description!==""&&(t.description=e.description),e.excerpt!=null&&e.excerpt!==""&&(t.excerpt=e.excerpt),e.status!=null&&e.status!==""&&(t.status=e.status),e.is_template!=null&&(t.is_template=e.is_template),e.link!=null&&e.link!==""&&(t.link=e.link),e.renderGuid!=null&&e.renderGuid!==""&&(t.renderGuid=e.renderGuid),e.date!=null&&e.date!==""&&(t.date=e.date),e.date_gmt!=null&&e.date_gmt!==""&&(t.date_gmt=e.date_gmt),e.modified_gmt!=null&&e.modified_gmt!==""&&(t.modified_gmt=e.modified_gmt),e.comment_status!=null&&e.comment_status!==""&&(t.comment_status=e.comment_status),e.ping_status!=null&&e.ping_status!==""&&(t.ping_status=e.ping_status),e.template!=null&&e.template!==""&&(t.template=e.template),e.related_email!=null&&e.related_email!==""&&(t.related_email=e.related_email),e.project_title!=null&&e.project_title!==""&&(t.project_title=e.project_title),e.project_author!=null&&e.project_author!==""&&(t.project_author=e.project_author),e.isAmp!=null&&(t.isAmp=e.isAmp),e.meta!==void 0&&e.meta!==null&&typeof e.meta=="object"&&(t.meta=e.meta);const n=new Set(pu),r={};for(const s of Object.keys(e))n.has(s)||(r[s]=e[s]);return Object.keys(r).length>0&&(t.catalogExtra=r),t}function hu(e,t={}){return!e||typeof e!="object"?{html:"",insertFrom:t.type,name:t.name,project:t.project,id:t.blockId}:{...mu(e),html:typeof e.html=="string"?e.html:"",insertFrom:t.type,name:t.name,project:t.project??e.project,id:e.id!=null&&e.id!==""?String(e.id):t.blockId}}var Vt=new WeakMap;function gu(e){let t=Vt.get(e);return t||(t={byId:new Map,fallback:[]},Vt.set(e,t)),t}function Eu(e){Vt.delete(e)}function bu(e,t){const{byId:n,fallback:r}=gu(t);if(e.blockId){const s=n.get(e.blockId);if(s){n.delete(e.blockId);const o=r.indexOf(s);return o>=0&&r.splice(o,1),s}return}for(let s=r.length-1;s>=0;s--){const o=r[s],i=e.name!=null&&e.name!==""&&o.name!=null&&o.name!==""&&o.name===e.name,c=e.type!=null&&e.type!==""&&o.insertFrom===e.type;if(i&&c)return r.splice(s,1),o.id!=null&&o.id!==""&&n.delete(String(o.id)),o}}async function vu(e,t){const{blocks:n}=ze(e);return await n.cache.getIfPresent(t)??void 0}async function _u(e,t){if(!t.blockId)return;const n=await vu(e,t.blockId);if(n)return hu(n,t)}async function yu(e,t){const n=bu(e,t);if(n)return Gt(e,n);const r=await _u(t,e);return r?Gt(e,r):Gt(e,void 0)}var Su=a.createIdentifier("application_block_inserted"),Iu=-1e3,Ss=new WeakSet;function wu(e){if(e===null||typeof e!="object")return!1;const t=e;return typeof t.type=="string"||typeof t.name=="string"||typeof t.blockId=="string"||typeof t.project=="string"||typeof t.project=="number"}function Tu(e){if(!e||Ss.has(e))return;Ss.add(e);const t=new a.Disposable,n=Y(e);return t.addDisposable(n.addListenerAsyncPipe(Su,async(r,s)=>{const o=wu(r)?await yu(r,e):r;return s?s(o):o},Iu)),t.addDisposable({dispose:()=>{Eu(e)}}),t}var Is=100,Au=class extends a.Disposable{_container;_events;constructor(e){super(),this._container=e;const t=Tu(e);t&&this.addDisposable(t)}_get(){const e=this._container,{blocks:t,emails:n,comments:r,emailRevisions:s}=ze(e),o=H(e,a.events.ON_SHARE_ID),i=H(e,a.events.ON_SHOW_PREVIEW_ID),c=H(e,a.events.ON_EMAIL_CLONE_ID),l=H(e,a.events.ON_CODE_VALIDATE_ID),u=H(e,a.events.ON_SUBJECT_CHANGED_ID),d=H(e,a.events.ON_EMAIL_CHANGED_ID),p=H(e,a.events.ON_PREHEADER_CHANGED_ID),m=H(e,a.events.ON_SAVEBUTTON_CLICK_ID),b=H(e,a.events.ON_NEXTBUTTON_CLICK_ID),S=H(e,a.events.ON_SEND_LIVEPREVIEW_ID),E=H(e,a.events.ON_SEND_TESTEMAIL_ID),g=H(e,$d),v=H(e,a.events.ON_CONTENT_CHANGED_ID),_=H(e,Hd),I=H(e,a.events.ON_PREVIOUSBUTTON_CLICK_ID),A=H(e,a.events.ON_SEND_EMAIL_MODAL_ID),P=a.filter(H(e,a.events.ON_EMAIL_INIT_ID),h=>!h.reset);return{handlePreheaderChanged:N(p),handleSubjectChanged:N(u),handleValidate:N(l),handleReadEmail:N(n.handlerRead,h=>h,h=>h&&be(h,e)),handleSaveEmail:N(n.onSave,function({prev:h,patch:w,value:f,source:y}){const T=h?W(h,e):void 0;return{prev:T,patch:Te(T,W(w,e)),value:W(f,e),source:y}},h=>h?be(h,e):void 0),handleRemoveEmail:N(n.onRemove,({value:h,source:w})=>({value:W(h,e),source:w}),()=>{}),handleReadCommonBlocks:N(g,h=>h.project,h=>h?.map(w=>Pe(w,e))),handleReadTemplateBlocks:N(_,h=>h,h=>h?.map(w=>Pe(w,e))),handleReadBlocks:N(t.byForeignKey("project").handleRead,h=>qe(e).requested||String(h),h=>h?.map(w=>Pe(w,e))),handleSaveBlock:N(t.onSave,function({prev:h,patch:w,value:f,source:y}){const T=f.global_block===!0&&f.id&&typeof f.html=="string"?{...f,html:du(f.html,String(f.id))}:f,O=h?We(h,e):void 0;return{prev:O,patch:Te(O,We(w,e)),value:We(T,e),source:y}},h=>h?Pe(h,e):void 0),handleRemoveBlock:N(t.onRemove,({value:h,source:w})=>({value:We(h,e),source:w}),()=>{}),handleReadComments:N(r.byForeignKey("post").handleRead,h=>h,h=>h?.map(w=>Ht(w,e))),handleSaveComment:N(r.onSave,function({prev:h,patch:w,value:f,source:y}){const T=h?Xe(h,e):void 0;return{prev:T,patch:Te(T,Xe(w,e)),value:Xe(f,e),source:y}},h=>h?Ht(h,e):void 0),handleRemoveComment:N(r.onRemove,({value:h,source:w})=>({value:Xe(h,e),source:w}),()=>{}),handleReadEmailRevisions:N(s.byForeignKey("parent").handleRead,h=>h,h=>h?.map(w=>$t(w,e))),handleEmailAutosave:N(s.onSave,function({prev:h,patch:w,value:f,source:y}){return{value:vs(f,e),source:y}},h=>h?$t(h,e):void 0),handleRemoveEmailAutoSave:N(s.onRemove,({value:h,source:w})=>({value:vs(h,e),source:w}),()=>{}),handleEmailChanged:N(a.debounce(d,Is),h=>W(h,e)),handleEmailInit:N(P,h=>W(h,e)),handlePreviousButtonClick:N(I,h=>W(h,e)),handleNextButtonClick:N(b,h=>W(h,e)),handleSaveButtonClick:N(m,h=>W(h,e)),handleHtmlChanged:N(a.debounce(v,Is)),handleTestEmailSend:N(E,({html:h,...w})=>({...w,code:h,compiled:{html:h,ampHtml:""}})),handleTestEmailModal:N(A,h=>W(h,e)),handleCloneEmail:N(c,h=>W(h,e)),handleShareEmail:N(o),handlePreviewEmail:N(i),handleLivePreviewEmail:N(S)}}get(){return this._events||(this._events=this._get())}_listenersUpdaters;setOptions(e={}){const t=this.get();let n=this._listenersUpdaters;if(!n){n=this._listenersUpdaters={};for(const r of Object.keys(t))n[r]=this.addDisposable(new Ee(t[r]))}for(const r of Object.keys(t))n[r].setListener(e[r])}},Cu=a.createIdentifier$1("DataController"),Pu=a.createIdentifier$1("DataEvents");function ws(e){return e.getOrCreateInstance(Cu,()=>{const t=new iu(e);return e.getInstance(a.DISPOSABLE_ID)?.addDisposable(t),t})}function Ts(e){return e.getOrCreateInstance(Pu,()=>new Au(e))}var Du=a.createIdentifier$1("plugin.startupShow");function Ru(e){const t=ws(e),n=Ts(e),r=e.getInstance(a.OPTIONS_SOURCE_ID),s=e.getInstance(a.DISPOSABLE_ID),o={current:Promise.resolve()};e.inject(Du,o);const i=r?.watch(l=>{l&&n.setOptions(l)}),c=r?.select(l=>l?.content).watch(l=>{l!==void 0&&(j(q.showStart),o.current=(async()=>{try{await t.show(l)}catch{}finally{j(q.showEnd)}})())});i&&s?.addDisposable(i),c&&s?.addDisposable(c)}function Ou(e){const t=ws(e);return{...Ts(e).get(),show(n){return j(q.showStart),t.show(n).finally(()=>j(q.showEnd))},save(){return t.save()}}}function nm(e){return e}var Lu=[{name:"rest.client",setup:kd},{name:"auth.oauth",setup:a.provideOAuth},{name:"rest.identityHeaders",setup:Od},{name:"lifetime.destroyable",provides:[Ot],setup:xc},{name:"appInit",provides:[a.APP_ID,ot],setup:Mo},{name:"config",provides:[a.CONFIG_SOURCE_ID],setup:Lc},{name:"email.documents",setup:Qc},{name:"show.initPipeline",provides:[a.INIT_PIPELINE_ID],setup:Fd},{name:"show",setup:Ru},{name:"locale.service",provides:[Ce],setup:Cd},{name:"locale.fromConfig",awaits:{services:[a.CONFIG_SOURCE_ID,Ce]},setup:Pd},{name:"canvas.early",setup:Ll},{name:"canvas.previewSettings",setup:Ul},{name:"canvas.sandboxExtensions",setup:$l},{name:"canvas.headerSync",provides:[Mr],setup:Ml},{name:"canvas.ampSync",setup:ca},{name:"canvas.moduleBridge",setup:xa},{name:"canvas.port",setup:ba},{name:"canvas.images",setup:ga},{name:"canvas.edits",setup:pl},{name:"canvas.blockContent",setup:al},{name:"canvas.sandboxFill",provides:[St],setup:oc},{name:"canvas.reactions",setup:Dl}],Nu=class extends Error{cycle;constructor(e){super(`[units] цикл в зависимостях: ${e.join(" → ")}`),this.cycle=e}};function xu(e){const t=new Map;for(const n of e)for(const r of n.provides??[]){const s=t.get(r)??[];s.push(n),t.set(r,s)}return t}function Mu(e,t){const n=[];for(const r of e.awaits?.services??[])for(const s of t.get(r)??[])s!==e&&n.push(s);return n}function As(e){const t=xu(e),n=[],r=new Set,s=[],o=new Set,i=c=>{if(!r.has(c)){if(o.has(c)){const l=s.indexOf(c);throw new Nu([...s.slice(l),c].map(u=>u.name))}o.add(c),s.push(c);for(const l of Mu(c,t))i(l);s.pop(),o.delete(c),r.add(c),n.push(c)}};for(const c of e)i(c);return n}var Cs;function Yt(e){const t=e.getInstance(a.OPTIONS_SOURCE_ID);if(t)return t;e.getInstance(a.DISPOSABLE_ID)||e.inject(a.DISPOSABLE_ID,new a.Disposable);const n=pe();e.inject(a.OPTIONS_SOURCE_ID,n),Cs??=As(Lu);for(const r of Cs)r.setup(e);return n}function ku(e){}var Fu=[{name:"save.previewFollow",setup:ku}],Ps=a.createIdentifier$1("plugin.lateUnitsInstalled");function Bu(e){if(!e.getInstance(Ps)){e.inject(Ps,!0);for(const t of As(Fu))t.setup(e)}}function ju(e,t){return{project:Number(e),app_id:t?.app_id||0,app_config:t?.app_config||{},user:t?.user}}function Uu(e){if(!e)return;const t=a.decodeJwt(e)?.data,n=t?.data?.scope??t?.scope;return(Array.isArray(n)?n.flatMap(r=>typeof r=="string"?r.split(/\s+/):[]):typeof n=="string"?n.split(/\s+/):[]).find(r=>/^project_\d+$/.test(r))?.replace(/^project_/,"")||void 0}var Hu=a.defineMixin(e=>{let t,n,r;return{async setOptions(s){const o=r!==s.getAuthToken,i=!a.deepEqual(t,s.user),c=n!==s.project;if(r=s.getAuthToken,t=s.user,n=s.project,!(!e.getInstance(a.SECURITY_MODULE_ID)||!s.getAuthToken)&&!(!o&&!i&&!c))try{const l=await s.getAuthToken(s.user,s.project);e.inject(a.STANDALONE_BOOTSTRAP_TOKEN_ID,Promise.resolve(l||""));const u=Uu(l);if(!u)return;e.inject(a.STANDALONE_PROJECT_ID,u);const d=e.getInstance(a.APP_ID),p=d?await d.catch(()=>{}):void 0;e.inject(a.APP_ID,Promise.resolve(ju(u,p)))}catch{}}}});function $u(e,t){if(e.getInstance(a.STANDALONE_FILE_PROXY_REGISTERED_ID))return;e.inject(a.STANDALONE_FILE_PROXY_REGISTERED_ID,!0);const n=a.getEvent(e,a.events.FILE_PROXY_EVENT_ID);t.addDisposable(n(async({url:r})=>(await fetch(r)).blob(),Number.MIN_VALUE))}function Gu(e){e.getInstance(a.STANDALONE_ACTIVATED_ID)||e.inject(a.SECURITY_MODULE_ID,void 0)}function Je(e){return String(e.standaloneKey||"").trim()||void 0}function Vu(e){return e.standaloneOnAuthFailure===!0?!0:e.config?.standaloneOnAuthFailure===!0}function qt(e){return Vu(e)?!!Je(e):!1}function Qe(e){return!!Je(e)&&!qt(e)}var Yu=a.defineMixin(e=>{let t,n=!1;return{setOptions(r){const s=n;if(n=!0,!Qe(r)){t&&(Gu(e),qt(r)),t=void 0;return}const o=Je(r);if(!o||t===o&&e.getInstance(a.SECURITY_MODULE_ID))return;t=o,e.inject(a.SECURITY_MODULE_ID,o);const i=e.getInstance(a.DISPOSABLE_ID);i&&$u(e,i)}}}),qu=a.defineMixin(e=>{const t=e.getInstance(a.DISPOSABLE_ID),n=a.getEvent(e,a.APP_LOAD_EVENT_ID),r=N(n),s=t.addDisposable(new Ee(r));return{setOptions({handleLoad:o}){s.setListener(o)},instance:{handleLoad:r},dispose:()=>t.dispose()}}),zu=a.defineMixin(e=>{const t=e.getInstance(a.DISPOSABLE_ID),n=t.addDisposable(new a.AsyncEmitter),r=t.addDisposable(new a.AsyncEmitter),s=a.getEmitter(e,a.CONFIG_CHANGED_EVENT_ID),o=N(n.event),i=N(r.event),c=N(s.event),l=t.addDisposable(new Ee(o)),u=t.addDisposable(new Ee(i)),d=t.addDisposable(new Ee(c));return{instance:{handleSetOptions:o,handleOptionsChanged:i,handleConfigChanged:c},async setOptions(p){l.setListener(p.handleSetOptions),u.setListener(p.handleOptionsChanged),d.setListener(p.handleConfigChanged),await n.fire(p),await r.fire(p)},dispose(){}}}),zt,Ds="core";function Ku(){const e=__useblocks__?.require;return typeof e!="function"?Promise.reject(new Error("[loadCore] AMD loader is unavailable")):new Promise((t,n)=>{e([Ds],r=>t(r),r=>n(r instanceof Error?r:new Error("[loadCore] Failed to require core module")))})}function Wu(e){const t=__useblocks__?.require?.warm;return typeof t!="function"?De().then(()=>{}):t([Ds],e)}function De(){return zt===void 0&&(zt=Ku().then(e=>(_e()&&e.installDiagnostics().catch(t=>{}),e))),zt}var Kt=null,Wt=null;async function Xu(e){typeof e?.prefetch=="function"&&await e.prefetch()}function Xt(){return Kt||(Kt=De().then(()=>{})),Kt}function Rs(e){return Wt||(Wt=Xu(e)),Wt}function Ju(){return Rs(typeof __useblocks__<"u"?__useblocks__:void 0)}function Qu(e){return Promise.all([Xt(),Rs(e)]).then(()=>{})}function Zu(e){const t=e?.preload?.start??e?.startupPrefetchMode;return t==="eager"||t==="idle"||t==="manual"||t==="off"?t:"idle"}function Os(e,t){const n=e?.preload?.execute!==!1;Promise.resolve().then(()=>Wu(t?{priority:t}:void 0)).then(()=>n?Xt():void 0).catch(()=>{})}function ef(e){const t=Zu(e);if(t==="eager")Os(e);else if(t==="idle"){const n=()=>Os(e,"low");document.readyState==="complete"?n():window.addEventListener("load",n,{once:!0})}}var Ls="PluginRegistry";function tf(e=a.resolveContainer()){return e.getOrCreateInstance(Ls,()=>new go)}var Ns=new Eo(()=>tf()),nf=a.defineMixin(e=>{let t;function n(){if(!t)throw new Error("PluginCollection not initialized. Call init() first.");return t}return{async setOptions(r){const s=e.getInstance(a.INSTANCE_ID),o=e.getInstance(Ls);t||(t=new ho(s,o,{ensureHostRuntimeReady:Ju}),e.inject(a.PLUGIN_COLLECTION_ID,t));const i=r?.plugins||[];s&&await t.setPlugins(i)},instance:{use(r){return typeof r=="function"?n().useByCtor(r):n().useByKey(r)},useAsync(r){return n().useAsync(r)},waitPlugin(r){return n().waitFor(r)}},dispose(){t?.dispose(),t=void 0}}}),xs=class{_listeners=[];add(e,t=0,n){const r={fn:n?e.bind(n):e,priority:t};return this._listeners.push(r),{dispose:()=>{const s=this._listeners.indexOf(r);s>=0&&this._listeners.splice(s,1)}}}async run(e){const t=[...this._listeners].sort((n,r)=>r.priority-n.priority);for(const{fn:n}of t){const r=await n(e);r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof Date)&&!(r instanceof RegExp)&&Object.assign(e,r)}return e}},rf=a.createIdentifier$1("ELEMENT_INSERT_HTML_PIPELINE"),sf=a.createIdentifier$1("BLOCK_INSERT_HTML_PIPELINE"),of="application_block_inserted",af=class{_context;constructor(e){this._context=e}get _container(){return this._context.container}handleBeforeInject(e,t,n){return this._container.getOrCreateInstance(sf,()=>new xs).add(e,t??0,n)}handleInject(e,t,n){const r=this._container.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService),s=n?e.bind(n):e;return r.addListener(of,s,t)}},lf=a.createIdentifier$1("ComponentRegistry"),Ms;function Re(e,t=lf){const n=a.DependencyResolver.getInstance(t);if(n)return n;if(!Ms)throw new Error("[extensions] component registry is not loaded yet — UI work starts at init()");return a.DependencyResolver.getOrCreateInstance(t,Ms)}var cf=class{_context;constructor(e){this._context=e}get _container(){return this._context.container}getNames(){return new Promise(e=>{const t=this._container.addService(a.ATOMS_HANDLERS_ID,{execute:n=>{t.dispose(),e(n.value.map(r=>({name:r.name,html:r.html})))}})})}update(e,t){const n=this._container,r=Re(n);return n.addService(a.ATOMS_HANDLERS_ID,{execute:s=>{const o=s.value.find(i=>i.name===e);if(o){const{icon:i,title:c,fallbackTooltip:l,...u}=t;i&&(o.icon=r.getReactNode(i)),c&&(o.title=r.getReactNode(c)),l&&(o.fallbackTooltip=r.getReactNode(l)),Object.assign(o,u)}}})}delete(e){this._container.addService(a.ATOMS_HANDLERS_ID,{execute:t=>{const n=t.value.findIndex(r=>r.name===e);n>=0&&t.value.splice(n,1)}})}insert(e,t){const n=this._container,r=Re(n);return n.addService(a.ATOMS_HANDLERS_ID,{execute:s=>{s.value.splice(t??s.value.length,0,{...e,title:r.getReactNode(e.title),icon:r.getReactNode(e.icon),fallbackTooltip:r.getReactNode(e.fallbackTooltip)})}})}handleBeforeInject(e,t,n){return this._container.getOrCreateInstance(rf,()=>new xs).add(e,t??0,n)}handleInject(e,t,n){return a.getEmitter$1(this._container,a.HANDLE_ATOM_INSERT_ID).event(r=>{e({name:r.name,className:r.className||"",html:r.html})},t,n)}},df=class{_messageService;constructor(e){this._messageService=e.container.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService)}send(e,t,n){this._messageService.send(e,t,n)}sendAsync(e,t,n=!0){return this._messageService.sendAsync(e,t,n)}addListener(e,t,n){return this._messageService.addListener(e,t,n)}addListenerAsync(e,t,n=0){return this._messageService.addListenerAsync(e,t,n)}onInit(e,t=!0,n=0){return this._messageService.onInit(e,t,n)}isInited(){return this._messageService.isInited()}};function uf(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>n!==void 0))}var ff=class{_context;_showModalEmitter;_closeModalEmitter;_updateModalEmitter;constructor(e){this._context=e;const t=e.container;this._showModalEmitter=a.getEmitter$1(t,a.MODAL_SHOW_EVENT),this._closeModalEmitter=a.getEmitter$1(t,a.MODAL_CLOSE_EVENT),this._updateModalEmitter=a.getEmitter$1(t,a.MODAL_UPDATE_EVENT)}get _container(){return this._context.container}show(e){const t=Re(this._container),n=`modal_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,r=e.modalProps;return this._showModalEmitter.fire({...e,content:t.getReactNode(e.content),title:t.getReactNode(e.title),id:n,modalProps:r?{...r,footer:t.getReactNode(r.footer),okText:t.getReactNode(r.okText),cancelText:t.getReactNode(r.cancelText),closeIcon:t.getReactNode(r.closeIcon)}:void 0}),n}close(e){this._closeModalEmitter.fire(e)}closeAll(){this._closeModalEmitter.fire()}update(e,t){const n=Re(this._container),r=t.modalProps;this._updateModalEmitter.fire(uf({...t,content:n.getReactNode(t.content),title:n.getReactNode(t.title),id:e,modalProps:r?{...r,footer:n.getReactNode(r.footer),okText:n.getReactNode(r.okText),cancelText:n.getReactNode(r.cancelText),closeIcon:n.getReactNode(r.closeIcon)}:void 0}))}},pf=class{_registration;_loadedDisposable;loaded;ready;_loadedSettled=!1;_readySettled=!1;constructor(e,t){this._registration=e,this._loadedDisposable=t,this.loaded=new Promise((n,r)=>{const s=()=>this._loadedDisposable.dispose(),o=()=>{this._loadedSettled||(this._loadedSettled=!0,this._readySettled&&s(),n())},i=c=>{this._loadedSettled||(this._loadedSettled=!0,this._readySettled&&s(),r(c))};this._resolveLoaded=o,this._rejectLoaded=i}),this.ready=new Promise((n,r)=>{const s=()=>this._loadedDisposable.dispose(),o=()=>{this._readySettled||(this._readySettled=!0,this._loadedSettled&&s(),n())},i=c=>{this._readySettled||(this._readySettled=!0,this._loadedSettled&&s(),r(c))};this._resolveReady=o,this._rejectReady=i})}_resolveLoaded=()=>{};_rejectLoaded=()=>{};_resolveReady=()=>{};_rejectReady=()=>{};resolveLoaded(){this._resolveLoaded()}resolveReady(){this._resolveReady()}rejectLoad(e){this._rejectLoaded(e),this._rejectReady(e)}rejectReady(e){this._rejectReady(e)}dispose(){this._registration.dispose();const e=new Error("Sandbox script registration disposed before completion.");this.rejectLoad(e),this.rejectReady(e)}},mf=class{_context;constructor(e){this._context=e}get _container(){return this._context.container}get _messageService(){return this._container.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService)}_createScriptHandle(e,t){const n=this._messageService.addListener(a.SANDBOX_EXTENSION_SCRIPT_STATUS_ID,s=>{if(s.key===e){if(s.phase==="load"&&s.status==="success"){r.resolveLoaded();return}if(s.phase==="ready"&&s.status==="success"){r.resolveReady();return}if(s.phase==="load"){r.rejectLoad(new Error(s.error||`Sandbox script "${e}" failed to load.`));return}r.rejectReady(new Error(s.error||`Sandbox script "${e}" failed to initialize.`))}}),r=new pf(t,n);return r}registerSandboxCSS(e){return this._container.addService(a.SANDBOX_EXTENSIONS_ID,{type:"link",key:e,parent:"head",attributes:{rel:"stylesheet",type:"text/css",href:e}})}registerSandboxCSSCode(e,t){return this._container.addService(a.SANDBOX_EXTENSIONS_ID,{type:"style",key:e,parent:"head",attributes:{type:"text/css"},innerHTML:t})}registerSandboxScript(e){const t=this._container.addService(a.SANDBOX_EXTENSIONS_ID,{type:"script",key:e,parent:"head",attributes:{src:e,type:"text/javascript"}});return this._createScriptHandle(e,t)}registerSandboxScriptCode(e,t){const n=this._container.addService(a.SANDBOX_EXTENSIONS_ID,{type:"script",key:e,parent:"head",attributes:{type:"text/javascript"},innerHTML:t});return this._createScriptHandle(e,n)}},hf=new Set([Symbol.for("react.element"),Symbol.for("react.transitional.element")]);function Jt(e){if(typeof e!="object"||e===null)return!1;const t=e.$$typeof;return typeof t=="symbol"&&hf.has(t)}function ks(){const e=globalThis.crypto;if(e&&typeof e.randomUUID=="function")return e.randomUUID();if(e&&typeof e.getRandomValues=="function"){const t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,n=>n.toString(16).padStart(2,"0")).join("")}return`nohwcrypto-${Date.now()}`}function Qt(){return`__settingsPanel:${ks()}`}function Zt(e,t){return{type:e,props:t}}function gf(e){return typeof e=="object"&&e!==null&&"type"in e&&"props"in e&&!Jt(e)}function Fs(e,t,n){if(t==null||typeof t=="number"||typeof t=="boolean"||typeof t=="string")return t;if(Jt(t)){const r=Qt();return n(e.add(r,t)),Zt(r,{})}if(typeof t=="function"){const r=Qt();return n(e.add(r,t)),Zt(r,{})}if(gf(t)){const r=t.type;if(typeof r=="string")return t;if(Jt(r)||typeof r=="function"){const s=Qt();return n(e.add(s,r)),Zt(s,t.props)}return t}return t}var Ef=class{_context;_panelRegistrationDisposables=[];constructor(e){this._context=e}get _container(){return this._context.container}_clearPanelRegistrations(){for(const e of this._panelRegistrationDisposables)e.dispose();this._panelRegistrationDisposables.length=0}_trackRegistration(e){this._panelRegistrationDisposables.push(e)}showSettingsPanel(e){this._clearPanelRegistrations();const t=Re(this._container),n=i=>this._trackRegistration(i),r=Fs(t,e.content,n),s=e.advancedTabs?.map(i=>({...i,content:Fs(t,i.content,n)})),o=e.instanceKey??ks();a.getEmitter$1(this._container,a.SETTINGS_PANEL_EVENT).fire({...e,content:r,advancedTabs:s,instanceKey:o,type:a.ADVANCED_SETTINGS_PANEL})}closeSettingsPanel(){this._clearPanelRegistrations(),a.getEmitter$1(this._container,a.SETTINGS_PANEL_EVENT).fire(null)}},Bs={SandboxScriptApi:mf,ElementsApi:cf,BlocksApi:af,MessageService:df,SettingsPanelApi:Ef,ModalApi:ff};function en(e,t,n,r={}){const s=Object.assign({},e);for(const[o,i]of Object.entries(t))if(i!==void 0)if(n.includes(o)&&typeof i=="object"&&i!==null){const c=s[o],l=r[o]??{};s[o]=Object.assign({},typeof c=="object"&&c!==null?c:l,i)}else s[o]=i;return s}var X={border:{all:null,top:null,right:null,bottom:null,left:null},borderRadius:{all:5,topLeft:null,topRight:null,bottomRight:null,bottomLeft:null},borderRadiusCards:{all:10,topLeft:null,topRight:null,bottomRight:null,bottomLeft:null},padding:{all:null,top:null,right:null,bottom:null,left:null}},bf={fontFamily:["Safe Fonts","-apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif"],fontSize:16,fontSizeDim:"px",lineHeight:21,lineHeightDim:"px",color:"#5a5a5a",contrastColor:"#FFFFFF",textAlign:"left",paddingBottom:10,paddingBottomDim:"px"},tn={fontFamily:["Safe Fonts","-apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif"],fontSize:24,fontSizeDim:"px",lineHeight:32,lineHeightDim:"px",color:"#333333",contrastColor:"#FFFFFF",textAlign:"left",paddingTop:20,paddingTopDim:"px",paddingBottom:20,paddingBottomDim:"px",letterSpacing:0,letterSpacingDim:"px",bold:!0,italic:!1},js={color:"#1C52DC",contrastColor:"#FFFFFF",underline:!0},ve={fontFamily:["Safe Fonts","-apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif"],fontSize:16,fontSizeDim:"px",letterSpacing:0,letterSpacingDim:"px",color:"#FFFFFF",contrastColor:"#1C52DC",bold:!1,italic:!1,backgroundColor:"#1C52DC",contrastBackgroundColor:"#FFFFFF",marginTop:10,marginTopDim:"px",marginBottom:10,marginBottomDim:"px",border:X.border,borderRadius:X.borderRadius,textAlign:"center",padding:X.padding},Us={backgroundColor:"#FFFFFF",contrastBackgroundColor:"#1C52DC",padding:X.padding},nn={contrastBackgroundColor:"#1C52DC",contrastTextColor:"#FFFFFF",baseBackgroundColor:"#F8F8F8",baseTextColor:"#333333",border:X.border,borderRadius:X.borderRadiusCards};function vf(e){return{...bf,...e}}function _f(e){return{...tn,...e,bold:e?.bold??tn.bold,italic:e?.italic??tn.italic}}function yf(e){return{...js,...e,underline:e?.underline??js.underline}}function Sf(e){return{...ve,...e,bold:e?.bold??ve.bold,italic:e?.italic??ve.italic,border:{...ve.border,...e?.border},borderRadius:{...ve.borderRadius,...e?.borderRadius},padding:{...ve.padding,...e?.padding}}}function If(e){return{...Us,...e,padding:{...Us.padding,...e?.padding}}}function wf(e){return{...nn,...e,border:{...nn.border,...e?.border},borderRadius:{...nn.borderRadius,...e?.borderRadius}}}function rn(e={}){return{backgroundColor:e.backgroundColor||"",backgroundImage:(e.backgroundImage||[]).map(t=>({type:"url",value:t?.value||""})),backgroundPositionX:e.backgroundPositionX||"",backgroundPositionY:e.backgroundPositionY||"",backgroundRepeat:e.backgroundRepeat||"",backgroundSize:e.backgroundSize||"",backgroundColorContent:e.backgroundColorContent||"",textStrong:e.textStrong||!1,textItalic:e.textItalic||!1,textUnderline:e.textUnderline||!1,width:e.width,responsive:e.responsive}}function Hs(e){let t={...a.COMMON_STYLES};try{e&&e!=="{}"&&(t=JSON.parse(e))}catch{}return t}function sn(e){return{text:vf(e.text),headings:_f(e.headings),links:yf(e.links),buttons:Sf(e.buttons),block:If(e.block),cards:wf(e.cards)}}var $s=a.createIdentifier$1("EmailSettingsPort"),Tf=1e4,Gs=class{_editor;_layoutSettingsChanged=new a.Emitter;_contentStylesChanged=new a.Emitter;_messageSubscription;_messageSubscriptionPromise;_prevLayoutSnapshot;_prevContentSnapshot;constructor(e){this._editor=e}onChangeEmailLayoutSettings(e){const t=this._layoutSettingsChanged.event(e);return this._ensureMessageSubscription(),{dispose:()=>{t.dispose(),this._disposeMessageSubscriptionIfUnused()}}}onChangeEmailContentStyles(e){const t=this._contentStylesChanged.event(e);return this._ensureMessageSubscription(),{dispose:()=>{t.dispose(),this._disposeMessageSubscriptionIfUnused()}}}_disposeMessageSubscriptionIfUnused(){this._layoutSettingsChanged.hasListeners()||this._contentStylesChanged.hasListeners()||(this._messageSubscription?.dispose(),this._messageSubscription=void 0)}_settings(e=this._editor.container){const t=e.getInstance($s);if(!t)throw new Error("[extensions] настройки письма ещё не загружены — работа с UI начинается с init()");return t}_getCurrentLayoutSettings(){return rn(this._settings().read())}_getCurrentContentStyles(){const e=at(this._editor.container)?.current()?.get().attributes.common_styles;return sn(Hs(e))}_getLayoutSnapshot(e){return JSON.stringify(e)}_getContentSnapshot(e){return JSON.stringify(e)}async _ensureMessageSubscription(){if(!this._messageSubscription){if(this._messageSubscriptionPromise)return this._messageSubscriptionPromise;this._messageSubscriptionPromise=(async()=>{if(await this._editor.container.getInstanceAsync($s),this._messageSubscription)return;const e=this._editor.container.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService),t=this._getCurrentLayoutSettings(),n=this._getCurrentContentStyles();this._prevLayoutSnapshot=this._getLayoutSnapshot(t),this._prevContentSnapshot=this._getContentSnapshot(n),this._messageSubscription=e.addListener(r=>{const s=r?.data,o=s?.operation;if(o===a.EVENT_TYPES.APPLICATION_EMAIL_SETTINGS_SET){const l=rn(s?.settings),u=this._getLayoutSnapshot(l);u!==this._prevLayoutSnapshot&&(this._prevLayoutSnapshot=u,this._layoutSettingsChanged.fire(l));return}if(o!==a.EVENT_TYPES.APPLICATION_COMMON_STYLES_UPDATE)return;const i=sn(r.data?.settings?.commonStyles??{...a.COMMON_STYLES}),c=this._getContentSnapshot(i);c!==this._prevContentSnapshot&&(this._prevContentSnapshot=c,this._contentStylesChanged.fire(i))})})();try{await this._messageSubscriptionPromise}finally{this._messageSubscriptionPromise=void 0}}}async getEmailLayoutSettings(){return await this._waitForEmailSettingsFromIframe(),this._getCurrentLayoutSettings()}async setEmailLayoutSettings(e){await this._waitForEmailSettingsFromIframe();const t=this._settings(),n={...t.read(),...e};t.write(n);const r=rn(n);this._prevLayoutSnapshot=this._getLayoutSnapshot(r),this._layoutSettingsChanged.fire(r)}async _waitForEmailSettingsFromIframe(e=Tf){const t=at(this._editor.container)?.current()?.get().attributes.is_inited,n=this._settings().read();if(t&&n&&Object.keys(n).length>0&&(n.backgroundColor||n.backgroundImage?.[0]?.value||n.width?.value||n.responsive!==void 0)||t)return;const r=this._editor.container,s=a.getEvent(r,a.events.ON_EMAIL_INIT_ID);return new Promise(o=>{let i=!1,c;const l=()=>{c&&(clearTimeout(c),c=void 0)},u=s(()=>{i||(i=!0,l(),u.dispose(),o())});c=setTimeout(()=>{i||(i=!0,u.dispose(),o())},e)})}async getEmailContentStyles(){return this._getCurrentContentStyles()}async setEmailContentStyles(e){const t=at(this._editor.container)?.current();if(!t)return;const n=Hs(t.get().attributes.common_styles);e.text!==void 0&&(n.text={...n.text||{},...e.text}),e.headings!==void 0&&(n.headings={...n.headings||{},...e.headings}),e.links!==void 0&&(n.links={...n.links||{},...e.links}),e.buttons!==void 0&&(n.buttons=en(n.buttons||{},e.buttons,["border","borderRadius","padding"],{border:X.border,borderRadius:X.borderRadius,padding:X.padding})),e.block!==void 0&&(n.block=en(n.block||{},e.block,["padding"],{padding:X.padding})),e.cards!==void 0&&(n.cards=en(n.cards||{},e.cards,["border","borderRadius"],{border:X.border,borderRadius:X.borderRadiusCards}));const r=JSON.stringify(n);Be(t,{common_styles:r}),this._settings().markAppearanceChanged();const s=sn(n);this._prevContentSnapshot=this._getContentSnapshot(s),this._contentStylesChanged.fire(s)}},Af={...Bs,EmailSettingsApi:Gs},Cf={...Bs},rm={...Cf,EmailSettingsApi:Gs},Pf={...Af};function Df(){Ns.addAll(Pf)}var Rf=[a.defineMixin(()=>{Df()}),qu,zu,Yu,a.JWTMixin,Hu,a.OAuthMixin];async function Of(){return(await De()).asyncMixins}var Lf=nf,Nf=e=>{let t=null,n=!1;return{instance:{},async setOptions(r){if(!t&&!n){let s;try{s=await Of()}catch(i){throw e.failPendingWaits(i),i}t=s(e);const o=await e.getInstanceAsync(a.INSTANCE_ID);Object.assign(o,t.instance||{})}t&&await t.setOptions(r)},dispose(){t?.dispose(),n=!0}}},xf=a.combineMixins([...Rf]);function on(){let e,t=!1;const n=new Map,r=new Map;function s(){for(const o of r.values())o();r.clear()}return{event(o,i,c){const l=Symbol("subscription");return t||(n.set(l,{listener:o,priority:i,thisArg:c}),e&&r.set(l,e(o,i,c))),()=>{n.delete(l),r.get(l)?.(),r.delete(l)}},attach(o){s(),e=o;for(const[i,{listener:c,priority:l,thisArg:u}]of n)r.set(i,o(c,l,u))},dispose(){t=!0,s(),n.clear(),e=void 0}}}var Vs=a.createIdentifier$1("NotificationService");function Mf(e){const t=on(),n=on(),r=on();return e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{t.dispose(),n.dispose(),r.dispose()}),e.getInstanceAsync(Vs).then(s=>{t.attach(s.onNotify),n.attach(s.onError),r.attach(s.onSuccess)},()=>{}),{handleNotify:t.event,handleError:n.event,handleSuccess:r.event,notify(s){const o=e.getInstance(Vs);if(!o)throw new Error("[plugin] notify() вызван до загрузки редактора");o.notify(s)}}}var kf=[Mc,Ou,Mf];function Ff(e,t=kf){const n=Yt(e);Bu(e);const r=xf(e),s=Lf(e),o=Nf(e),i={...r.instance,...s.instance,...o.instance};for(const l of t)Object.assign(i,l(e));let c=!0;return{instance:i,async setOptions(l){await r.setOptions(l);const u=c&&n.get()===l;c=!1,u||n.set(l),await s.setOptions(l),await o.setOptions(l)}}}var Bf=class{_storage=Object.create(null);get(e){const t=this._storage[e];return t&&(!t.expires||t.expires<Date.now())?t.value:""}set(e,t,n){this._storage[e]={value:t,expires:n.expires?n.expires*1e3+Date.now():void 0}}remove(e){delete this._storage[e]}},jf="editor-runtime.react.copies",an=8;function Oe(e){return e&&typeof e=="object"?e:void 0}function Ys(e){const t=Oe(e);if(!t)return;if(typeof t.useState=="function")return t.useState;const n=Oe(t.default);return n&&typeof n.useState=="function"?n.useState:void 0}function Uf(e){const t=Oe(e),n=t&&typeof t.version=="string"?t.version:void 0,r=Oe(t?.default),s=r&&typeof r.version=="string"?r.version:void 0;return n??s??"unknown"}function Hf(e,t,n){return e.package===t&&e.version===n}function $f({ourReact:e,entries:t,packageName:n,version:r}){const s=Ys(e);if(!s||!Array.isArray(t))return[];const o=[],i=new Set;for(const c of t){const l=Oe(c);if(!l||!Hf(l,n,r))continue;const u=Ys(l.react);!u||u===s||i.has(u)||(i.add(u),o.push({package:n,version:r,reactVersion:Uf(l.react),react:l.react}))}return o}function Gf({packageName:e,copies:t}){const n=[`[${e}] A second copy of React is on this page (singleton invariant broken).`,`The editor runs on its own React, the plugin got another one from ${e}/runtime/react.`,`This shows up as "Cannot read properties of null (reading 'useState')" and takes down the whole`,"editor, not just the plugin panel: plugin components render inside the editor tree.","","Found:"];for(const r of t.slice(0,an))n.push(` • React ${r.reactVersion}, loaded through ${r.package}@${r.version}/runtime/react`);return t.length>an&&n.push(` …and ${t.length-an} more`),n.push("","Likely root cause: the editor is loaded from its UMD entry (a <script> on the page), while the","plugin was built as an ESM package by the host bundler. Those two never share a React.","","Fix it either way:"," • build the plugin on globals — it then takes React from the page registry, or"," • load the editor from its ESM entry and build both with the same bundler."),n.join(`
2129
+ `)}var qs=new Set;function Vf({packageName:e="useblocks",version:t="1.1.85-dev.4",log:n=r=>{}}={}){const r=s=>{try{const o=globalThis[Symbol.for(jf)],i=$f({ourReact:s,entries:o,packageName:e,version:t}).filter(c=>!qs.has(c.react));if(!i.length)return;i.forEach(c=>qs.add(c.react)),n(Gf({packageName:e,copies:i}))}catch{}};try{const s=rt()?.modules?.React;if(s&&typeof s.then=="function"){s.then(r,()=>{});return}r(s)}catch{}}async function Yf(e,t){a.throwIfAborted(e.signal);const n=t??a.DependencyResolver.createChild();Yt(n);const r=n.getInstance(a.DISPOSABLE_ID);async function s(){n.inject(a.COOKIE_MANAGER_ID,new Bf),Vf();const o=Ff(n),i={...o.instance,container:n,async reset(c){if(a.throwIfAborted(c.signal),r.isDisposed())throw In();return await o.setOptions(c),i}};n.inject(a.INSTANCE_ID,i);try{if(await o.setOptions(e),a.throwIfAborted(e.signal),r.isDisposed()||await n.getInstance(a.PLUGIN_COLLECTION_ID)?.activate(),e.devTools)try{const c=n.getInstance(a.PLUGIN_COLLECTION_ID);c&&await(await De()).initDevTools(n,c)}catch{}return a.throwIfAborted(e.signal),a.getEmitter(n,a.APP_LOAD_EVENT_ID).fire(i),i}catch(c){throw r.dispose(),c}}try{return await a.raceWithAbortSignal(s(),e.signal)}catch(o){throw r.isDisposed()||r.dispose(),o}}var Le=new WeakMap;function qf(e){return e?Le.get(e):void 0}function zs(e){try{e.getInstance(a.DISPOSABLE_ID)?.dispose()}catch{}try{e.dispose()}catch{}}function zf(e,t){if(!e)return;const n=Le.get(e);n&&n!==t&&zs(n),Le.set(e,t)}function Kf(e,t){e&&Le.get(e)===t&&Le.delete(e)}function Wf(e){const t=a.DependencyResolver.createChild();return Qe(e)&&t.inject(a.SECURITY_MODULE_ID,Je(e)),t}var Ne=new WeakMap,Xf="data-useblocks-config-styles";function Jf(e){return typeof e=="string"?e.trim():""}function Ks(e,t){if(e.firstChild){e.insertBefore(t,e.firstChild);return}e.appendChild(t)}function Qf(e,t,n){if(!e||typeof document>"u")return null;const r=Jf(t),s=Ne.get(e),o=n||e;if(!r)return s&&(s.remove(),Ne.delete(e)),null;if(s)return s.textContent!==r&&(s.textContent=r),(s.parentNode!==o||s!==o.firstChild)&&Ks(o,s),s;const i=document.createElement("style");return i.setAttribute(Xf,"true"),i.textContent=r,Ks(o,i),Ne.set(e,i),i}function Zf(e){if(!e)return;const t=Ne.get(e);t&&(t.remove(),Ne.delete(e))}var ln=new WeakMap;function Ws(e){const t=(ln.get(e)??0)+1;ln.set(e,t);const n=Object.create(e);return n.destroy=()=>{ln.get(e)===t&&e.destroy()},n}var sm=!1;function Xs(){return!1}var om=28,ep=`
2130
2130
  .blocks-app-initial-spinner-wrapper {
2131
2131
  width: 100%;
2132
2132
  height: 100%;
@@ -2155,7 +2155,7 @@ __useblocks__.define("useblocks.js",["require","exports","module","static/umd/a6
2155
2155
  100% {
2156
2156
  transform: rotate(360deg);
2157
2157
  }
2158
- }`;function Zf(){return()=>{}}function ep(e,t){if(!Ks()||!e||typeof document>"u")return Zf();e.querySelectorAll(".blocks-app-initial-spinner-wrapper").forEach(i=>{i.remove()});const n=document.createElement("div");n.classList.add("blocks-app-initial-spinner-wrapper");const r=document.createElement("div");r.classList.add("blocks-app-initial-spinner"),n.appendChild(r);const s=document.createElement("style");s.setAttribute(t,"true"),s.textContent=Qf,document.head?.appendChild(s),e.appendChild(n);let o=!1;return()=>{o||(o=!0,n.remove(),s.remove())}}function tp(e){if(!(e instanceof Error))return!1;const t=e;return t.terminal===!0||t.status===403||t.status===404}function np({report:e}={}){const t=new Map,n=new Set,r=e??(s=>{});return{run(s,o){const i=t.get(s);if(i!==void 0)return i;const c=o().catch(l=>{throw n.has(s)||(n.add(s),r(l)),tp(l)||t.delete(s),l});return t.set(s,c),c},clear(){t.clear(),n.clear()},size(){return t.size}}}var ln=np();function Ws(){ln.clear()}a.setApiOriginFailoverHook(()=>ln.clear());var Xs=new WeakMap,Js=new WeakMap;function rp(e,t){let n=Js.get(t);n||(n=new Map,Js.set(t,n));const r=n.get(e);if(r!==void 0)return r;const s=t.getInstance(a.CUSTOM_FETCH_ID),o=a.createTransport({baseUrl:e,customFetch:s?.execute??fetch},t);return n.set(e,o),o}function cn(e){return a.resolveExplicitApiBaseUrl(e)}function sp(e,t){const n=new Error(`[Loader] appInit request failed: ${e} ${t}`);return n.status=e,n}function op(){const e=new Error("[Loader] appInit skipped: empty auth token");return e.terminal=!0,e}async function ip(e){if(!e.getAuthToken)return;const t=await e.getAuthToken(e.user,e.project,void 0),n=String(t||"").trim();return n?`Bearer ${n}`:void 0}function ap(e,t){return async({baseUrl:n})=>{const r=cn(n);if(!r)throw new Error("[Loader] appInit requires baseUrl or REACT_APP_OPENAPI_BASE_URL");const s=new Headers({Accept:"application/json"});if(e.getAuthToken&&!await ip(e))throw op();const o=t();if(!o)throw new Error("[Loader] appInit requires the instance container");const i=new wn(rp(r,o)),c={headers:Object.fromEntries(s.entries()),credentials:"same-origin",failoverAttemptTimeout:zt(e)||void 0},l=await i.app_init_create({},c);if(!l.ok)throw sp(l.status,l.statusText);return l.data}}function lp(e){return JSON.stringify({baseUrl:cn(e.baseUrl)||"",project:e.project??"",userId:e.user?.id??""})}function cp(e){return e.appInit?!0:!(e.jwtAuth&&!e.getAuthToken)}function dp(e){return t=>ln.run(lp(t),()=>(j("appInit:start",{kind:"network"}),Promise.resolve(e(t)).finally(()=>j("appInit:end",{kind:"network"}))))}function up(e,t){if(Qe(e)||!e.appInit&&!cn(e.baseUrl)||!cp(e))return e;const n=e.appInit??ap(e,t);let r=Xs.get(n);return r||(r=dp(n),Xs.set(n,r)),{...e,appInit:r}}var Qs=0;function fp(){return Qs}function pp(){Qs+=1,Ws()}var Zs=new WeakMap,eo=new WeakMap,mp=3e4;function hp(e,t){return JSON.stringify({userId:e?.id??"",project:t??""})}function gp(e,t){try{const n=a.decodeJwt(e)?.exp;if(typeof n=="number"&&Number.isFinite(n)&&n>0)return n*1e3}catch{}return t+mp}function Ep(e){const t=new Map,n=new Map;return async(r,s,o)=>{const i=hp(r,s);if(o)return n.delete(i),t.delete(i),Ws(),e(r,s,o);const c=n.get(i);if(c&&!t.has(i)){if(c.expiresAtMs>Date.now())return c.token;n.delete(i)}let l=t.get(i);return l===void 0&&(j("authToken:start",{kind:"network"}),l=Promise.resolve(e(r,s,o)).then(u=>{const d=String(u||"").trim();return d&&n.set(i,{token:u,expiresAtMs:gp(d,Date.now())}),u}).finally(()=>{j("authToken:end",{kind:"network"}),t.delete(i)}),t.set(i,l)),l}}function bp(e){if(Qe(e))return e;const t=e.getAuthToken;if(!t)return e;let n=Zs.get(t);const r=fp();return(!n||eo.get(t)!==r)&&(n=Ep(t),Zs.set(t,n),eo.set(t,r)),Promise.resolve(n(e.user,e.project,void 0)).catch(s=>{}),{...e,getAuthToken:n}}var dn="Editor mount element was removed from the document. Call instance.destroy() on host unmount.";function _p(){return a.createAbortError(dn)}function to(e){return!(e instanceof DOMException)||e.name!=="AbortError"?!1:e.message===dn}function vp(e,t,n){if(typeof document>"u")return;let r=!1,s;const o=()=>{r=!0,s?.disconnect(),s=void 0},i=()=>{r||(o(),t())};if(n.addDispose(o),!e.isConnected){queueMicrotask(i);return}s=new MutationObserver(()=>{e.isConnected||i()});let c=e.parentNode;for(;c;)s.observe(c,{childList:!0}),c=c.parentNode}function yp(e){const{hostElementOption:t,resolvedElement:n,externalSignal:r,disposable:s}=e;if(t===void 0||!(n instanceof Element))return r;const o=new AbortController;return vp(n,()=>{n.id,o.abort(_p())},s),a.composeAbortSignals(r,o.signal)}var un="Superseded by newer init() on the same mount element";function no(){return a.createAbortError(un)}function ro(e){return!(e instanceof DOMException)||e.name!=="AbortError"?!1:e.message===un}var Ze=new Map,et=new WeakMap;function Sp(e){if(e instanceof Element){const t=e.id?.trim();if(t)return`#${t}`}}function Ip(e){if(!e)return{release:()=>{}};const t=Sp(e);et.get(e)?.abort(no()),t&&Ze.get(t)?.abort(no());const n=new AbortController;return et.set(e,n),t&&Ze.set(t,n),{signal:n.signal,release:()=>{et.get(e)===n&&et.delete(e),t&&Ze.get(t)===n&&Ze.delete(t)}}}var wp=gn({FileManagerApiError:()=>Tp}),Tp=class io extends Error{code;status;details;get httpStatus(){return this.status}constructor(t,n,r,s){super(t),this.name="FileManagerApiError",this.code=n,this.status=r,this.details=s,Error.captureStackTrace&&Error.captureStackTrace(this,io)}},Ap=gn({mapHttpStatusToErrorCode:()=>a.mapHttpStatusToErrorCode});function Cp(e,t){return{...e,element:t}}function fn(){return()=>{}}function Pp(e){const t=e.element;return!t||typeof t=="string"||typeof document>"u"?fn():(Xf(t,e.config?.styles,t),()=>{Jf(t)})}function Dp(e){if(!Ks()||e.initialSpinner===!1||typeof document>"u")return{options:e,cleanup:fn()};const t=e.element;if(!t||typeof t=="string")return{options:e,cleanup:fn()};t.querySelectorAll(".blocks-app-initial-spinner-wrapper").forEach(s=>{s.remove()});const n=ep(t,"data-useblocks"),r=e.handleChunkLoaded;return{options:{...e,handleChunkLoaded:()=>{n(),r?.()}},cleanup:n}}function so(e){return e instanceof DOMException&&e.name==="AbortError"}function oo(e){try{e.destroy()}catch{}}function pn(e,...t){const n=a.ELEMENT_MAP.get(e);t.some(r=>r!==void 0&&r===n)&&a.ELEMENT_MAP.delete(e)}var Rp="1.1.85-dev.3";async function Op(e){await Xu(typeof __useblocks__<"u"?__useblocks__:void 0)}async function Lp(e){j(z.initStart);const t=await Np(e);return j(z.initEnd),t}async function Np(e){a.throwIfAborted(e.signal);const t=new a.Disposable;let n;try{const r=await a.waitForElement(e.element,t,e.signal),s=yp({hostElementOption:e.element,resolvedElement:r,externalSignal:e.signal,disposable:t}),o=Ip(r);n=o.release;const i=a.composeAbortSignals(s,o.signal);return await a.raceWithAbortSignal(xp(e,r,i),i)}finally{n?.(),t.dispose()}}async function xp(e,t,n){a.throwIfAborted(n),pp();const r=Cp(e,t),s=bp(r);let o;const i=up(s,()=>o),c=n!=null?{...i,signal:n}:i;if(t){const m=a.ELEMENT_MAP.get(t);if(m){let b;try{b=await m,a.throwIfAborted(n)}catch(S){if(a.throwIfAborted(n),pn(t,m),so(S))throw S;b=void 0}if(b)if(b.getElement()===t)try{return o=Vf(t),await b.reset(c)}catch(S){if(a.throwIfAborted(n),ro(S)||to(S)||so(S)&&n?.aborted)throw S;pn(t,m,b),oo(b)}else pn(t,m,b),oo(b)}}a.throwIfAborted(n);const l=Pp(i),u=Dp(i),d=n!=null?{...u.options,signal:n}:u.options;let p;try{o=qf(d),Yf(t,o),Yt(o).set(d),await Xt(),j(z.coreReady),a.throwIfAborted(n),a.throwIfAborted(n),p=Gf(d,o),t&&a.ELEMENT_MAP.set(t,p);const m=await p;if(n?.aborted&&(m.destroy(),a.throwIfAborted(n)),t)if(a.ELEMENT_MAP.get(t)===p)a.ELEMENT_MAP.set(t,m);else throw m.destroy(),a.throwIfAborted(n),a.createAbortError(n?.reason);return m}catch(m){throw l(),u.cleanup(),o&&(zs(o),zf(t,o)),t&&p&&a.ELEMENT_MAP.get(t)===p&&a.ELEMENT_MAP.delete(t),m}}async function Mp(e){return(await De()).parseAMP(e)}typeof window<"u"&&(ve()&&Po(),Qu(typeof __useblocks__<"u"?__useblocks__:void 0)),K.ELEMENT_DETACHED_ABORT_MESSAGE=dn,K.SUPERSEDED_INIT_ABORT_MESSAGE=un,Object.defineProperty(K,"errors",{enumerable:!0,get:function(){return wp}}),Object.defineProperty(K,"helpers",{enumerable:!0,get:function(){return Ap}}),K.init=Lp,K.isElementDetachedError=to,K.isSupersededInitError=ro,K.parseAMP=Mp,K.pluginRegistry=Ls,K.preload=Op,K.version=Rp});
2158
+ }`;function tp(){return()=>{}}function np(e,t){if(!Xs()||!e||typeof document>"u")return tp();e.querySelectorAll(".blocks-app-initial-spinner-wrapper").forEach(i=>{i.remove()});const n=document.createElement("div");n.classList.add("blocks-app-initial-spinner-wrapper");const r=document.createElement("div");r.classList.add("blocks-app-initial-spinner"),n.appendChild(r);const s=document.createElement("style");s.setAttribute(t,"true"),s.textContent=ep,document.head?.appendChild(s),e.appendChild(n);let o=!1;return()=>{o||(o=!0,n.remove(),s.remove())}}function rp(e){if(!(e instanceof Error))return!1;const t=e;return t.terminal===!0||t.status===403||t.status===404}function sp({report:e}={}){const t=new Map,n=new Set,r=e??(s=>{});return{run(s,o){const i=t.get(s);if(i!==void 0)return i;const c=o().catch(l=>{throw n.has(s)||(n.add(s),r(l)),rp(l)||t.delete(s),l});return t.set(s,c),c},clear(){t.clear(),n.clear()},size(){return t.size}}}var cn=sp();function Js(){cn.clear()}a.setApiOriginFailoverHook(()=>cn.clear());var Qs=new WeakMap,Zs=new WeakMap;function op(e,t){let n=Zs.get(t);n||(n=new Map,Zs.set(t,n));const r=n.get(e);if(r!==void 0)return r;const s=t.getInstance(a.CUSTOM_FETCH_ID),o=a.createTransport({baseUrl:e,customFetch:s?.execute??fetch},t);return n.set(e,o),o}function dn(e){return a.resolveExplicitApiBaseUrl(e)}function ip(e,t){const n=new Error(`[Loader] appInit request failed: ${e} ${t}`);return n.status=e,n}function ap(){const e=new Error("[Loader] appInit skipped: empty auth token");return e.terminal=!0,e}async function lp(e){if(!e.getAuthToken)return;const t=await e.getAuthToken(e.user,e.project,void 0),n=String(t||"").trim();return n?`Bearer ${n}`:void 0}function cp(e,t){return async({baseUrl:n})=>{const r=dn(n);if(!r)throw new Error("[Loader] appInit requires baseUrl or REACT_APP_OPENAPI_BASE_URL");const s=new Headers({Accept:"application/json"});if(e.getAuthToken&&!await lp(e))throw ap();const o=t();if(!o)throw new Error("[Loader] appInit requires the instance container");const i=new Tn(op(r,o)),c={headers:Object.fromEntries(s.entries()),credentials:"same-origin",failoverAttemptTimeout:qt(e)||void 0},l=await i.app_init_create({},c);if(!l.ok)throw ip(l.status,l.statusText);return l.data}}function dp(e){return JSON.stringify({baseUrl:dn(e.baseUrl)||"",project:e.project??"",userId:e.user?.id??""})}function up(e){return e.appInit?!0:!(e.jwtAuth&&!e.getAuthToken)}function fp(e){return t=>cn.run(dp(t),()=>(j("appInit:start",{kind:"network"}),Promise.resolve(e(t)).finally(()=>j("appInit:end",{kind:"network"}))))}function pp(e,t){if(Qe(e)||!e.appInit&&!dn(e.baseUrl)||!up(e))return e;const n=e.appInit??cp(e,t);let r=Qs.get(n);return r||(r=fp(n),Qs.set(n,r)),{...e,appInit:r}}var eo=0;function mp(){return eo}function hp(){eo+=1,Js()}var to=new WeakMap,no=new WeakMap,gp=3e4;function Ep(e,t){return JSON.stringify({userId:e?.id??"",project:t??""})}function bp(e,t){try{const n=a.decodeJwt(e)?.exp;if(typeof n=="number"&&Number.isFinite(n)&&n>0)return n*1e3}catch{}return t+gp}function vp(e){const t=new Map,n=new Map;return async(r,s,o)=>{const i=Ep(r,s);if(o)return n.delete(i),t.delete(i),Js(),e(r,s,o);const c=n.get(i);if(c&&!t.has(i)){if(c.expiresAtMs>Date.now())return c.token;n.delete(i)}let l=t.get(i);return l===void 0&&(j("authToken:start",{kind:"network"}),l=Promise.resolve(e(r,s,o)).then(u=>{const d=String(u||"").trim();return d&&n.set(i,{token:u,expiresAtMs:bp(d,Date.now())}),u}).finally(()=>{j("authToken:end",{kind:"network"}),t.delete(i)}),t.set(i,l)),l}}function _p(e){if(Qe(e))return e;const t=e.getAuthToken;if(!t)return e;let n=to.get(t);const r=mp();return(!n||no.get(t)!==r)&&(n=vp(t),to.set(t,n),no.set(t,r)),Promise.resolve(n(e.user,e.project,void 0)).catch(s=>{}),{...e,getAuthToken:n}}var un="Editor mount element was removed from the document. Call instance.destroy() on host unmount.";function yp(){return a.createAbortError(un)}function ro(e){return!(e instanceof DOMException)||e.name!=="AbortError"?!1:e.message===un}function Sp(e,t,n){if(typeof document>"u")return;let r=!1,s;const o=()=>{r=!0,s?.disconnect(),s=void 0},i=()=>{r||(o(),t())};if(n.addDispose(o),!e.isConnected){queueMicrotask(i);return}s=new MutationObserver(()=>{e.isConnected||i()});let c=e.parentNode;for(;c;)s.observe(c,{childList:!0}),c=c.parentNode}function Ip(e){const{hostElementOption:t,resolvedElement:n,externalSignal:r,disposable:s}=e;if(t===void 0||!(n instanceof Element))return r;const o=new AbortController;return Sp(n,()=>{n.id,o.abort(yp())},s),a.composeAbortSignals(r,o.signal)}var fn="Superseded by newer init() on the same mount element";function so(){return a.createAbortError(fn)}function oo(e){return!(e instanceof DOMException)||e.name!=="AbortError"?!1:e.message===fn}var Ze=new Map,et=new WeakMap;function wp(e){if(e instanceof Element){const t=e.id?.trim();if(t)return`#${t}`}}function Tp(e){if(!e)return{release:()=>{}};const t=wp(e);et.get(e)?.abort(so()),t&&Ze.get(t)?.abort(so());const n=new AbortController;return et.set(e,n),t&&Ze.set(t,n),{signal:n.signal,release:()=>{et.get(e)===n&&et.delete(e),t&&Ze.get(t)===n&&Ze.delete(t)}}}var Ap=En({FileManagerApiError:()=>Cp}),Cp=class lo extends Error{code;status;details;get httpStatus(){return this.status}constructor(t,n,r,s){super(t),this.name="FileManagerApiError",this.code=n,this.status=r,this.details=s,Error.captureStackTrace&&Error.captureStackTrace(this,lo)}},Pp=En({mapHttpStatusToErrorCode:()=>a.mapHttpStatusToErrorCode});function Dp(e,t){return{...e,element:t}}function pn(){return()=>{}}function Rp(e){const t=e.element;return!t||typeof t=="string"||typeof document>"u"?pn():(Qf(t,e.config?.styles,t),()=>{Zf(t)})}function Op(e){if(!Xs()||e.initialSpinner===!1||typeof document>"u")return{options:e,cleanup:pn()};const t=e.element;if(!t||typeof t=="string")return{options:e,cleanup:pn()};t.querySelectorAll(".blocks-app-initial-spinner-wrapper").forEach(s=>{s.remove()});const n=np(t,"data-useblocks"),r=e.handleChunkLoaded;return{options:{...e,handleChunkLoaded:()=>{n(),r?.()}},cleanup:n}}function io(e){return e instanceof DOMException&&e.name==="AbortError"}function ao(e){try{e.destroy()}catch{}}function mn(e,...t){const n=a.ELEMENT_MAP.get(e);t.some(r=>r!==void 0&&r===n)&&a.ELEMENT_MAP.delete(e)}var Lp="1.1.85-dev.4";async function Np(e){await Qu(typeof __useblocks__<"u"?__useblocks__:void 0)}async function xp(e){j(q.initStart);const t=await Mp(e);return j(q.initEnd),t}async function Mp(e){a.throwIfAborted(e.signal);const t=new a.Disposable;let n;try{const r=await a.waitForElement(e.element,t,e.signal),s=Ip({hostElementOption:e.element,resolvedElement:r,externalSignal:e.signal,disposable:t}),o=Tp(r);n=o.release;const i=a.composeAbortSignals(s,o.signal);return await a.raceWithAbortSignal(kp(e,r,i),i)}finally{n?.(),t.dispose()}}async function kp(e,t,n){a.throwIfAborted(n),hp();const r=Dp(e,t),s=_p(r);let o;const i=pp(s,()=>o),c=n!=null?{...i,signal:n}:i;if(t){const m=a.ELEMENT_MAP.get(t);if(m){let b;try{b=await m,a.throwIfAborted(n)}catch(S){if(a.throwIfAborted(n),mn(t,m),io(S))throw S;b=void 0}if(b)if(b.getElement()===t)try{return o=qf(t),Ws(await b.reset(c))}catch(S){if(a.throwIfAborted(n),oo(S)||ro(S)||io(S)&&n?.aborted)throw S;mn(t,m,b),ao(b)}else mn(t,m,b),ao(b)}}a.throwIfAborted(n);const l=Rp(i),u=Op(i),d=n!=null?{...u.options,signal:n}:u.options;let p;try{o=Wf(d),zf(t,o),Yt(o).set(d),await Xt(),j(q.coreReady),a.throwIfAborted(n),a.throwIfAborted(n),p=Yf(d,o),t&&a.ELEMENT_MAP.set(t,p);const m=await p;if(n?.aborted&&(m.destroy(),a.throwIfAborted(n)),t)if(a.ELEMENT_MAP.get(t)===p)a.ELEMENT_MAP.set(t,m);else throw m.destroy(),a.throwIfAborted(n),a.createAbortError(n?.reason);return Ws(m)}catch(m){throw l(),u.cleanup(),o&&(zs(o),Kf(t,o)),t&&p&&a.ELEMENT_MAP.get(t)===p&&a.ELEMENT_MAP.delete(t),m}}async function Fp(e){return(await De()).parseAMP(e)}typeof window<"u"&&(_e()&&Ro(),ef(typeof __useblocks__<"u"?__useblocks__:void 0)),K.ELEMENT_DETACHED_ABORT_MESSAGE=un,K.SUPERSEDED_INIT_ABORT_MESSAGE=fn,Object.defineProperty(K,"errors",{enumerable:!0,get:function(){return Ap}}),Object.defineProperty(K,"helpers",{enumerable:!0,get:function(){return Pp}}),K.init=xp,K.isElementDetachedError=ro,K.isSupersededInitError=oo,K.parseAMP=Fp,K.pluginRegistry=Ns,K.preload=Np,K.version=Lp});
2159
2159
 
2160
2160
 
2161
2161
  // Возвращаем API из entry модуля