@emailmaker/emailmaker 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/emailmaker.js CHANGED
@@ -1014,7 +1014,7 @@ var __amdEnv = window.__emailmaker__ || (window.__emailmaker__ = {});
1014
1014
 
1015
1015
 
1016
1016
  // Configure AMD loader
1017
- __amdEnv.require.config({ baseUrl: "./", paths: {"core":"emailmaker-core.fc1d4d9a.js","monaco":"static/monaco/index.js","po":"emailmaker-po.fc1d4d9a.js"} });
1017
+ __amdEnv.require.config({ baseUrl: "./", paths: {"core":"emailmaker-core.273a13d0.js","monaco":"static/monaco/index.js","po":"emailmaker-po.273a13d0.js"} });
1018
1018
 
1019
1019
  // PublicPath (script detection: entry script lookup → document.currentScript)
1020
1020
  if (!__emailmaker__.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
  __emailmaker__.define("static/umd/9a127b86.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 P=new Set,X;function ut(){if(!X)return;const e=new Error("getInstanceAsync"),t=Error;return typeof t.captureStackTrace=="function"&&t.captureStackTrace(e,se.prototype.getInstanceAsync),e.stack}function V(e){P.delete(e)&&X?.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};P.add(s),X?.start(s),this._onInject(t,()=>{V(s),i(this.getInstance(t))})})}failPendingWaits(t){for(const r of Array.from(P))r.container===this&&(V(r),r.reject(t))}pendingWaits(){return[...P].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(P))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="emailmaker".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="emailmaker".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 yt(e,t){return e.getOrCreateInstance(t,()=>new B).event}function Pt(e,t){return e.getOrCreateInstance(t,()=>new B)}var Ct=f("plugin.app"),Lt=f("plugin.disposable"),vt=f("InitPipelineContext"),Rt=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(H=>(m.ok?m.data=H:m.error={data:H},m)).catch(H=>(m.error=H,m)):m;return a&&this.abortControllers.delete(a),Tn})}},Ht=f("prewarm.networkActivity");function Xt(){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(Ht,()=>Xt())}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"),yn=f("v2_client"),Pn=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 v(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 yr(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 Pr={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),`(${Pr[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 vr(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 Rr(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=vr(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=Rr(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 ye(e,t){try{const r=new URL(t);return`${v(e)}/${r.pathname.replace(/^\//,"")}${r.search}${r.hash}`}catch{return t}}function Pe(e,t){const r=v(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):ye(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)?Pe(l,g):g;return O.includes("{")&&O.includes("}")?F(O,t,_):O})():l?F(Pe(l,E),t,_):E.includes("{")&&E.includes("}")?F(E,t,_):ye(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(v(n));return}!Ne(r)||!("rewrite"in r)||(typeof r.proxyBase=="string"&&r.proxyBase.trim()&&t.push(v(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(v(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)&&yr(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 ve=3e5,Re=15e3,A=null,we=!1;function Gr(){return!0}function Hr(){const e=String({}.REACT_APP_OPENAPI_FAILOVER_TTL_MS||"").trim();if(!e)return ve;const t=Number(e);return Number.isFinite(t)&&t>0?t:ve}function Xr(){const e=String({}.REACT_APP_OPENAPI_FAILOVER_ATTEMPT_TIMEOUT_MS||"").trim();if(!e)return Re;const t=Number(e);return Number.isFinite(t)&&t>0?t:Re}function Vr(){const e="https://app.emailmaker.ru/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>=Hr():!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 R(e){const t=Me(e);if(!t)return[];const r=Be();return r.length===0?[t]:je(t,r)}function k(e){const t=R(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=R(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=Xr(),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 He(e){return!(e instanceof Error)&&!(e instanceof DOMException)?!1:e.name==="TimeoutError"?!0:e instanceof TypeError}var Xe;function zr(e){Xe=e}function U(e,t){if(!N(t))return;const r=R(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&&Xe?.()}function Ve(e,t){if(!N(t))return;const r=D(e),n=R(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.emailmaker.ru/api/"),baseApiParams:{secure:!0,credentials:"same-origin",format:"json"},securityWorker:()=>({credentials:"same-origin"})},y=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=y.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,y.get(s)===l&&y.delete(s);continue}return y.set(s,l),p}catch(p){y.get(s)===l&&y.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(!He(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.emcdn.ru/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:["Safe Fonts","-apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Arial, sans-serif"],fontSize:16,fontSizeDim:"px",lineHeight:21,lineHeightDim:"px",color:"#5a5a5a",contrastColor:"#FFFFFF",textAlign:"left",paddingBottom:10,paddingBottomDim:"px"},headings:{fontFamily:["Safe Fonts","-apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, 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},links:{color:"#1C52DC",contrastColor:"#FFFFFF",underline:!0},buttons:{fontFamily:["Safe Fonts","-apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, 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:{all:null,top:null,right:null,bottom:null,left:null},borderRadius:{all:5,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:"#1C52DC",padding:{all:null,top:null,right:null,bottom:null,left:null}},cards:{contrastBackgroundColor:"#1C52DC",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):R(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&&!He(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 vt}}),Object.defineProperty(u,"INSTANCE_ID",{enumerable:!0,get:function(){return Rt}}),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 Pt}}),Object.defineProperty(u,"getEmitter$1",{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(u,"getEvent",{enumerable:!0,get:function(){return yt}}),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
- __emailmaker__.define("emailmaker.js",["require","exports","module","static/umd/9a127b86.js"],function(li,K,kp){Object.defineProperties(K,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var mn=Object.defineProperty,hn=(e,t)=>{let n={};for(var r in e)mn(n,r,{get:e[r],enumerable:!0});return t||mn(n,Symbol.toStringTag,{value:"Module"}),n};const a=li("./static/umd/9a127b86.js");var ci=new Function("url","return import(url)");function di(e){if(typeof e!="function")return!1;try{return Reflect.construct(String,[],e),!0}catch{return!1}}function ui(e){return typeof e=="object"&&e!==null&&"type"in e&&"url"in e}function fi(e){return e.type==="umd"||e.resolve==="registry"}function Bp(e){return e}var pi=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(ui(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(fi(e)&&await this._options.ensureHostRuntimeReady?.(e),e.type==="esm"){const n=await ci(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:i}=await this._resolveEntry(r),o=this._getOrCreate(s,i);n.has(o)||(n.add(o),t.push(o))}this._activated=!0,await this._startPluginsBatch(t)}async setPlugins(e){const t=new Set,n=[];for(const o of e){const c=await this._resolveEntry(o);t.add(c.ctor),n.push(c)}const r=[];this._map.forEach((o,c)=>{t.has(c)||r.push({key:c,plugin:o})});for(let o=r.length-1;o>=0;o--){const{key:c,plugin:l}=r[o];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=[],i=new Set;for(const{ctor:o,options:c}of n){const l=this._getOrCreate(o,c);i.has(l)||(i.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 i,o=!1;const c=()=>{o||(o=!0,i&&clearTimeout(i),this._pluginRegistry.off(e,c),r())};this._pluginRegistry.on(e,c),n!==void 0&&n>0&&(i=setTimeout(()=>{o||(o=!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),i=s.constructor.name;this._emitLifecycle({type:"created",plugin:s,name:i}),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 di(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 i=this._initializingPlugins.get(s);if(i){n.add(i);continue}r.push(s)}if(r.length>0){const s=this._runBatchLifecycle(r);for(const i of r)this._initializingPlugins.set(i,s);n.add(s),s.finally(()=>{for(const i of r)this._initializingPlugins.get(i)===s&&this._initializingPlugins.delete(i)})}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)}))}},mi=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)}}}},hi=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()}},gn=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 gi(e,t){return t+e}function Ei(){return typeof performance>"u"?Date.now():gi(performance.now(),performance.timeOrigin)}var vi="emailmaker:diagnostics",_i="diagnostics",bi="diagnostics";function En(e,t){return t?`${e}${e.includes("?")?"&":"?"}${bi}=1`:e}var nt;function yi(){try{const e=new URLSearchParams(window.location.search).get(_i);return e===null?void 0:e!=="0"}catch{return}}function Si(){const e=window.__DIAGNOSTICS__;return typeof e=="boolean"?e:void 0}function Ii(){try{const e=window.localStorage.getItem(vi);return e===null?void 0:e==="1"}catch{return}}function be(){return nt===void 0&&(nt=typeof window>"u"?!1:yi()??Si()??Ii()??!1),nt}function wi(e){return`__${(e||"emailmaker").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"},jp=Object.values(z),Up=[z.canvasPainted,z.canvasSettled,z.appVisible,z.editorVisible],Ti=5e3,Ai=3e3,vn="diagnosticsStore",xe,ye;function _n(){return{marks:new gn(Ti),resources:new gn(Ai)}}function bn(){if(ye)return ye;const e=rt();return e?(ye=e[vn]??xe??_n(),e[vn]=ye,xe=void 0,ye):(xe??=_n(),xe)}function j(e,t){be()&&bn().marks.push({phase:e,at:Ei(),...t})}function rt(){if(typeof __emailmaker__<"u"&&__emailmaker__)return __emailmaker__;if(typeof window>"u")return;const e=window[wi()];return e!==null&&typeof e=="object"?e:void 0}function Ci(e){const t=e.length,n=bn();return e.forEach(r=>n.marks.push(r)),e.length=0,t}function Pi(){const e=rt();return!e||!Array.isArray(e.diagnosticsBuffer)?0:Ci(e.diagnosticsBuffer)}var Di="Editor instance was destroyed and cannot be reused. A fresh instance will be created instead.";function yn(){const e=new Error(Di);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 i=e,o=t;return i.length===o.length&&i.every((c,l)=>st(c,o[l]))}const r=Object.keys(e),s=Object.keys(t);return r.length!==s.length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(t,i)&&st(e[i],t[i]))}function Sn(e,t){const n={watch(r){let s,i=!1;return e.watch(o=>{const c=t(o);i&&st(s,c)||(s=c,i=!0,r(c))})},select(r){return Sn(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(i){t=i,n=!0;for(const o of Array.from(r))o(i)},watch(i){return r.add(i),n&&i(t),{dispose:()=>r.delete(i)}},select(i){return Sn(s,i)}};return s}var In=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})},wn=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 Ri(e){return String(e||"").trim()||void 0}var Oi=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=Ri(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)}},it=a.createIdentifier$1("AppInitService");function Li(e){return async()=>{const t=await e();return(await new In(t).app_init_create({})).data}}function Ni(e){e.injectFactory(it,()=>{const t=new Oi({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:Li(()=>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 ot=a.createIdentifier$1("documentSession.emailDocuments");function at(e){return e?.getInstance(ot)}var xi=a.createIdentifier$1("RevisionServiceFlag");function Mi(e){return e.getOrCreateInstance(xi,()=>{let t=!1;return{isEnabled:()=>t,set:n=>{t=n}}})}function Tn(e){return Mi(e).isEnabled()}var Fi=a.createIdentifier$1("EmailRightsResolver");function ki(e,t){const n=e.getInstance(Fi);return n?n(t):!0}var An=a.createIdentifier$1("EmailHistoryAvailabilityResolver");function Bi(e){return e.getInstance(An)!==void 0}async function ji(e){const t=e.getInstance(An);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},Cn=["INIT_START","SET_ENTITY","PREHEADER","SUBJECT","INITED"],Pn=2e4,Ui=Cn.reduce((e,t)=>e+lt[t],0),Dn=Pn+Ui+3e3;function Hi(e){return Cn.reduce((t,n)=>t+Rn(n,e),0)}function Rn(e,t){const n=t?.[e];return typeof n=="number"&&n>0?n:lt[e]}function On(e){const t=e?.contentReady;return typeof t=="number"&&t>0?t:Dn}function Ln(e){const t=e?.sandboxReady;return typeof t=="number"&&t>0?t:Pn}function Nn(e=Dn){return e+3e3}var Hp="[show-pipeline]";function $p(e,t){}var $i=()=>Nn();function Gi(e,t){let n;return Promise.race([e,new Promise(r=>{n=setTimeout(()=>{r()},t)})]).finally(()=>{n!==void 0&&clearTimeout(n)})}function Vi(e){return t=>Gi(e.getOrCreateInstance(a.events.BEFORE_SAVE_EMAIL,()=>new a.AsyncEmitter).fire(t),$i())}function Yi(e){return e!=null&&e!==""}var zi;function Me(e,t){return zi?.capture(e,t)}function qi(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 xn(e,t){return e===null||e.length===0?t:new Ki(e,t).compress()}var Ki=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 o,c;if(s.oldEnd===r.newEnd)o=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);o=l,c=s,r=u,s=this._getCurr(++n)}else{const[l,u]=te._splitCurr(s,r.newLength);o=r,c=l,r=this._getPrev(++t),s=u}this._result[this._resultLen++]=new J(o.oldPosition,o.oldText,c.newPosition,c.newText),this._prevDeltaOffset+=o.newLength-o.oldLength,this._currDeltaOffset+=c.newLength-c.oldLength}const i=te._merge(this._result);return te._removeNoOps(i)}_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 i=1;i<t.length;i++){const o=t[i];s.oldEnd===o.oldPosition?s=new J(s.oldPosition,s.oldText+o.oldText,s.newPosition,s.newText+o.newText):(n[r++]=s,s=o)}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 i=t[s];i.oldText!==i.newText&&(n[r++]=i)}return n}};function Wi(e){return new J(e.newPosition,e.newText,e.oldPosition,e.oldText)}function Xi(e){return e.map(Wi)}function Mn(e,t){return t.every(n=>e.slice(n.oldPosition,n.oldEnd)===n.oldText)}function Ji(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 Qi(e,t,n){let r=0;const s=e.start===e.end;for(const i of t){const o=i.newLength-i.oldLength;if(i.oldLength===0){const c=i.oldPosition;if(s&&c===e.start)r+=n==="after"?o:0;else{if(e.start<c&&c<e.end)return null;c<=e.start&&(r+=o)}continue}if(s){if(e.start>=i.oldEnd)r+=o;else if(e.start>i.oldPosition)return null;continue}if(e.start>=i.oldEnd)r+=o;else if(e.end>i.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"}},Fn=0,Zi=Math.random().toString(36).slice(2,8);function eo(){return Fn+=1,`doc-${Zi}-${Fn}`}function to(e){const t=e.createBuffer(),n=e.docId??eo();let r=e.serverId??null,s=0,i=null,o=e.attributes??{};const c=new Set;let l=!1,u=!1,d;const p=new Set;let m=null;const v=()=>(m?.version!==s&&(m={version:s,value:t.read()}),m.value),S=E=>Object.entries(E).some(([g,_])=>o[g]!==_);return{get:()=>({docId:n,serverId:r,version:s,savedVersion:i,attributes:o}),getContent:v,mutate(E,{source:g}){if(l)return s;const _=E.changes?.length?E.changes:void 0,b=_?Ji(v(),_):E.content!==void 0?E.content:void 0,I=b!==void 0&&b!==v(),A=E.attributes!==void 0&&S(E.attributes);if(!I&&!A)return s;const P=!(s>(i??-1));return I&&t.write(b),A&&(o={...o,...E.attributes}),s+=1,g!=="user"&&P&&(i=s),c.forEach(h=>h({source:g,version:s,changes:_})),s},markSaved(E,g){const _={serverId:r,savedVersion:i};g!==void 0&&(r=g),(i===null||E>i)&&(i=E),(_.serverId!==r||_.savedVersion!==i)&&c.forEach(b=>b({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>(i??-1),isDisposed:()=>l,dispose(){l=!0,p.forEach(E=>E.reject(new Error("Документ закрыт до того, как наполнение закончилось"))),p.clear(),c.clear(),t.dispose()}}}var no=500,ro=100,ct=0;function so(e,t={}){const n=t.groupIntervalMs??no,r=t.maxSteps??ro,s=t.now??(()=>0);let i=[],o=0,c=ct+=1,l=null,u=!1,d=!1,p=!1;const m=new Set,v=()=>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?i[o-1]=xn(i[o-1],h):(i=i.slice(0,o),i.push(h),o=i.length,u=!0,i.length>r&&(i=i.slice(i.length-r),o=i.length,c=ct+=1)),l=w,v()},_=()=>{u=!1,l=null},b=h=>{if(!h.length)return;const w=i.length>o;w&&(i=i.slice(0,o)),o>0&&(i[o-1]=xn(i[o-1],h)),_(),w&&v()},I=e.subscribe(({source:h,changes:w})=>{if(!(p||d||!w?.length)){if(h==="remote"){A();return}if(h!=="user"){b(w);return}g(w)}}),A=()=>{i=[],o=0,_(),c=ct+=1,v()},P=()=>{if(o===0)return!1;const h=Xi(i[o-1]);return Mn(e.getContent(),h)?(E(h),o-=1,_(),!0):(i=i.slice(0,o-1),o=i.length,_(),v(),!1)};return{canUndo:()=>o>0,canRedo:()=>o<i.length,undo(){P()&&v()},redo(){if(!(o>=i.length)){if(!Mn(e.getContent(),i[o])){i=i.slice(0,o),_(),v();return}E(i[o]),o+=1,_(),v()}},clear:A,applyWithoutHistory(h){const w=e.get().version;if(S(h,"system"),e.get().version===w){_();return}b(h)},getPast:h=>i.slice(0,o).reverse().slice(0,h),getFuture:h=>i.slice(o).reverse().slice(0,h),createSnapshot:()=>({stackId:c,index:o}),restoreSnapshot(h){if(h.stackId!==c||h.index>o)return!1;for(;o>h.index;)if(!P())return v(),!1;return v(),!0},subscribe(h){return m.add(h),()=>m.delete(h)},dispose(){p=!0,I(),m.clear(),i=[],o=0}}}var io=["edit","move","resize","insert"];function dt(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}function oo(e){return typeof e=="string"?e:null}function ao(e){return!Array.isArray(e)||!e.every(t=>typeof t=="string")?null:e}function lo(e){return io.includes(e)?e:null}function co(e){const t=typeof e=="object"&&e!==null?e:{},n={originId:oo(t.originId),changeId:dt(t.changeId),rev:dt(t.rev),baseRev:dt(t.baseRev),expected:ao(t.expected),intent:lo(t.intent)};return{...n,legacy:Object.values(n).every(r=>r===null)}}var kn=class extends Error{reason;constructor(e){super(`сохранение не состоялось: ${e}`),this.name="SaveRefusedError",this.reason=e}},Bn="draft";function Se(e){return e==null||e===""?Bn:String(e)}function uo(e){return e==null||e===""?`${ut}${Bn}`:`${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 Gp(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 i=Math.round((typeof performance<"u"?performance.now():Date.now())-r);throw`${e}`,{error:String(s),...n},s})}var Vp=5e3;function jn(e){return e?.length?[...e].sort((t,n)=>Date.parse(n.modified)-Date.parse(t.modified))[0]:null}function Un(e,{freshSince:t}={}){return!(!e?.slug?.includes("autosave")||!e?.html?.trim()||t!==void 0&&Date.parse(e.modified)<t-5e3)}function fo(e,t={}){const n=jn((e??[]).filter(r=>r?.html?.trim()));return Un(n,t)?n:null}function po(e){const t=Date.parse(jn(e)?.modified??"");return{autosave:fo(e),...Number.isFinite(t)?{latestAt:t}:{}}}function mo({hasUnsavedUserEdit:e}){return e?"skip":"apply"}var Hn=e=>e.replace(/\r\n?/g,`
2079
- `),$n=["recovery","plugin","rest"],ho=["subject","preheader"];function go(e){let t={},n;for(let s=$n.length-1;s>=0;s--){const i=e.get($n[s]);i&&(i.attributes&&(t={...t,...i.attributes}),i.content!==void 0&&(n=i.content))}const r=e.get("plugin")?.attributes;for(const s of ho){const i=r?.[s];typeof i=="string"&&i!==""&&(t={...t,[s]:i})}return n!==void 0?{content:n,attributes:t}:{attributes:t}}function Gn(e,t){if(!e||!t)return;const n=e.getContent(),r=t.content!==void 0?Hn(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 Vn=e=>typeof e=="string"?e.trim():"";function Eo(e,t,n){const{version:r,attributes:s}=e.get(),i=s,o=Vn(i.title)||Vn(i.subject);return{version:r,payload:{html:e.getContent(),title:o,subject:i.subject,preheader:i.preheader,description:i.description,common_styles:i.common_styles||"",meta:i.meta,utm_parameters:i.utm_parameters,parent_email:i.parent_email,is_template:i.is_template||!1,is_inited:i.is_inited,tags:i.tags,emailtags:i.emailtags,group:i.group,renderGuid:e.get().docId,project:t.project??i.project,folder:t.folder,...n?.emailtags?{emailtags:n.emailtags}:{},...n?.group?{group:n.group}:{},source:t.source}}}async function vo(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 _o=new Set(["html","id","renderGuid","showToken","showId","isNew"]);function Yn(e){return e?Object.fromEntries(Object.entries(e).filter(([t])=>!_o.has(t))):{}}function Be(e,t,n={}){e&&e.mutate({attributes:bo(e.get().attributes,t)},{source:n.source??"user"})}function bo(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 yo(e){return typeof e=="string"&&e.startsWith("{")?e:"{}"}function zn(e){if(!e)return null;const t=Yn(e);return e.common_styles!==void 0&&(t.common_styles=yo(e.common_styles)),ft(e.html,t)}function qn(e){return e?ft(e.html,re(Yn(e))):null}var So=["common_styles","subject","preheader","meta"];function Kn(e){if(!e?.html?.trim())return null;const t={};for(const n of So)Io(n,e[n])&&(t[n]=e[n]);return ft(e.html,t)}function Io(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 wo=10,To=(e,t)=>e.key===t.key&&Ao(e.serverId,t.serverId),Ao=(e,t)=>e==null||e===t;function Co(e){return typeof e?.then=="function"}var Wn=e=>{e.timer!==void 0&&(clearTimeout(e.timer),e.timer=void 0)},Xn=e=>{e.request.serverId!=null&&e.document.markSaved(e.document.get().version)},Po=e=>{Gn(e.document,go(e.reports)),Xn(e)},pt=(e,t)=>{if(!e.ready){Po(e);return}Gn(e.document,t)},Do=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 Ro(e){const{resolveAdapters:t,timeoutMs:n,resolveWritePort:r,resolveHistoryPort:s,resolveTerms:i,canEdit:o,notifyBeforeSave:c,onAdapterError:l,onTimeout:u}=e;let d;const p=new Set,m=new Set,v=()=>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}Xn(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,v())},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&&mo({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||(Wn(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(Co(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=i?.();if(O)return O.resolve({project:y.project??f.project,tags:(f.tags??[]).map(x=>({name:x}))})},b=f=>{if(f.lock===!0&&o?.(f)===!1)return new kn("locked");const y=f.tags?.length??0,T=f.emailtags?.length??0;if(Math.max(y,T)>wo)return new kn("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=b(f.document.get().attributes);if(O)return f.saveError=O,f.saveFailures+=1,O.reason,v(),!1;if(c&&(await c(Do(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,v(),!1}if(f.closed)return!1;const{payload:q,version:D}=Eo(f.document,T,x);f.document.get().docId;try{const R=f.document.get().serverId!=null,U=await vo(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,v();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,v(),!1}},A=()=>{d&&(d.closed=!0,d.watchers.forEach(f=>f()),d.watchers=[],Wn(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"?qn(y.patch):null;x&&(f.reports.set("plugin",x),pt(f,x)),O&&v()},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"&&To(d.request,f))return P(d,f,y),d.document;A();const T=to({createBuffer:()=>qi(""),serverId:f.serverId??null}),O={request:f,show:f.show,document:T,history:so(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,v())},readShownContent:()=>O.closed?null:O.document.getContent()})),v(),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:uo(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(),v())}}}var Jn=class extends Error{reason;constructor(e,t){super(`письмо не открылось: ${e}`),this.name="EmailOpenFailedError",this.reason=e,this.cause=t}};function Qn(e){if(e instanceof Jn)return e.reason;if(e instanceof ke)return Qn(e.reason)}function Oo(e,t){return{id:"rest",required:!0,load:async()=>{const n=await e.readEmail(t);if(!n)throw new Jn("not-found");return zn(n)}}}var Zn=a.createIdentifier$1("EmailPort");function Lo(e){return e.getInstance(Zn)}function No(e,t){e.inject(Zn,t)}var er=a.createIdentifier$1("documentSession.restEmailPortFactories");function tr(e){return e.getInstance(er)!==void 0}function le(e){const t=e.getInstance(er);if(!t)throw new Error("[documentSession] порты поверх REST ещё не загружены — работа с сервером начинается с init()");return t}var xo=a.createIdentifier$1("EmailTermsResolver");function Mo(e){return e.getInstance(xo)}var nr=a.createIdentifier$1("EmailHistoryPort"),Fo=a.createIdentifier$1("BlockHistoryPort");function rr(e){return e.getInstance(Fo)}function sr(e){return e.getInstance(nr)}function ko(e,t){e.inject(nr,t)}var Bo="em_autosave_pending",Yp=6e4;function je(e){return`${Bo}_${e}`}function jo(e,t){try{sessionStorage.setItem(je(e),JSON.stringify(t))}catch{}}function Uo(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 Ho=2e3,$o=5e3,Go=5,Vo=5e3,Yo=4;function zo(){return typeof performance<"u"&&typeof performance.timeOrigin=="number"?performance.timeOrigin:Date.now()}function qo(e,t){return e==null||t==null?!1:e.replaceAll(`\r
2078
+ __emailmaker__.define("emailmaker.js",["require","exports","module","static/umd/9a127b86.js"],function(di,K,jp){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=di("./static/umd/9a127b86.js");var ui=new Function("url","return import(url)");function fi(e){if(typeof e!="function")return!1;try{return Reflect.construct(String,[],e),!0}catch{return!1}}function pi(e){return typeof e=="object"&&e!==null&&"type"in e&&"url"in e}function mi(e){return e.type==="umd"||e.resolve==="registry"}function Up(e){return e}var hi=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(pi(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(mi(e)&&await this._options.ensureHostRuntimeReady?.(e),e.type==="esm"){const n=await ui(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:i}=await this._resolveEntry(r),o=this._getOrCreate(s,i);n.has(o)||(n.add(o),t.push(o))}this._activated=!0,await this._startPluginsBatch(t)}async setPlugins(e){const t=new Set,n=[];for(const o of e){const c=await this._resolveEntry(o);t.add(c.ctor),n.push(c)}const r=[];this._map.forEach((o,c)=>{t.has(c)||r.push({key:c,plugin:o})});for(let o=r.length-1;o>=0;o--){const{key:c,plugin:l}=r[o];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=[],i=new Set;for(const{ctor:o,options:c}of n){const l=this._getOrCreate(o,c);i.has(l)||(i.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 i,o=!1;const c=()=>{o||(o=!0,i&&clearTimeout(i),this._pluginRegistry.off(e,c),r())};this._pluginRegistry.on(e,c),n!==void 0&&n>0&&(i=setTimeout(()=>{o||(o=!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),i=s.constructor.name;this._emitLifecycle({type:"created",plugin:s,name:i}),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 fi(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 i=this._initializingPlugins.get(s);if(i){n.add(i);continue}r.push(s)}if(r.length>0){const s=this._runBatchLifecycle(r);for(const i of r)this._initializingPlugins.set(i,s);n.add(s),s.finally(()=>{for(const i of r)this._initializingPlugins.get(i)===s&&this._initializingPlugins.delete(i)})}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)}))}},gi=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)}}}},Ei=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 vi(e,t){return t+e}function _i(){return typeof performance>"u"?Date.now():vi(performance.now(),performance.timeOrigin)}var bi="emailmaker:diagnostics",yi="diagnostics",Si="diagnostics";function vn(e,t){return t?`${e}${e.includes("?")?"&":"?"}${Si}=1`:e}var nt;function Ii(){try{const e=new URLSearchParams(window.location.search).get(yi);return e===null?void 0:e!=="0"}catch{return}}function wi(){const e=window.__DIAGNOSTICS__;return typeof e=="boolean"?e:void 0}function Ti(){try{const e=window.localStorage.getItem(bi);return e===null?void 0:e==="1"}catch{return}}function be(){return nt===void 0&&(nt=typeof window>"u"?!1:Ii()??wi()??Ti()??!1),nt}function Ai(e){return`__${(e||"emailmaker").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"},Hp=Object.values(z),$p=[z.canvasPainted,z.canvasSettled,z.appVisible,z.editorVisible],Ci=5e3,Pi=3e3,_n="diagnosticsStore",xe,ye;function bn(){return{marks:new En(Ci),resources:new En(Pi)}}function yn(){if(ye)return ye;const e=rt();return e?(ye=e[_n]??xe??bn(),e[_n]=ye,xe=void 0,ye):(xe??=bn(),xe)}function j(e,t){be()&&yn().marks.push({phase:e,at:_i(),...t})}function rt(){if(typeof __emailmaker__<"u"&&__emailmaker__)return __emailmaker__;if(typeof window>"u")return;const e=window[Ai()];return e!==null&&typeof e=="object"?e:void 0}function Di(e){const t=e.length,n=yn();return e.forEach(r=>n.marks.push(r)),e.length=0,t}function Ri(){const e=rt();return!e||!Array.isArray(e.diagnosticsBuffer)?0:Di(e.diagnosticsBuffer)}var Oi="Editor instance was destroyed and cannot be reused. A fresh instance will be created instead.";function Sn(){const e=new Error(Oi);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 i=e,o=t;return i.length===o.length&&i.every((c,l)=>st(c,o[l]))}const r=Object.keys(e),s=Object.keys(t);return r.length!==s.length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(t,i)&&st(e[i],t[i]))}function In(e,t){const n={watch(r){let s,i=!1;return e.watch(o=>{const c=t(o);i&&st(s,c)||(s=c,i=!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(i){t=i,n=!0;for(const o of Array.from(r))o(i)},watch(i){return r.add(i),n&&i(t),{dispose:()=>r.delete(i)}},select(i){return In(s,i)}};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 Li(e){return String(e||"").trim()||void 0}var Ni=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=Li(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)}},it=a.createIdentifier$1("AppInitService");function xi(e){return async()=>{const t=await e();return(await new wn(t).app_init_create({})).data}}function Mi(e){e.injectFactory(it,()=>{const t=new Ni({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:xi(()=>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 ot=a.createIdentifier$1("documentSession.emailDocuments");function at(e){return e?.getInstance(ot)}var Fi=a.createIdentifier$1("RevisionServiceFlag");function ki(e){return e.getOrCreateInstance(Fi,()=>{let t=!1;return{isEnabled:()=>t,set:n=>{t=n}}})}function An(e){return ki(e).isEnabled()}var Bi=a.createIdentifier$1("EmailRightsResolver");function ji(e,t){const n=e.getInstance(Bi);return n?n(t):!0}var Cn=a.createIdentifier$1("EmailHistoryAvailabilityResolver");function Ui(e){return e.getInstance(Cn)!==void 0}async function Hi(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,$i=Pn.reduce((e,t)=>e+lt[t],0),Rn=Dn+$i+3e3;function Gi(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 Gp="[show-pipeline]";function Vp(e,t){}var Vi=()=>xn();function Yi(e,t){let n;return Promise.race([e,new Promise(r=>{n=setTimeout(()=>{r()},t)})]).finally(()=>{n!==void 0&&clearTimeout(n)})}function zi(e){return t=>Yi(e.getOrCreateInstance(a.events.BEFORE_SAVE_EMAIL,()=>new a.AsyncEmitter).fire(t),Vi())}function qi(e){return e!=null&&e!==""}var Ki;function Me(e,t){return Ki?.capture(e,t)}function Wi(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 Xi(e,t).compress()}var Xi=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 o,c;if(s.oldEnd===r.newEnd)o=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);o=l,c=s,r=u,s=this._getCurr(++n)}else{const[l,u]=te._splitCurr(s,r.newLength);o=r,c=l,r=this._getPrev(++t),s=u}this._result[this._resultLen++]=new J(o.oldPosition,o.oldText,c.newPosition,c.newText),this._prevDeltaOffset+=o.newLength-o.oldLength,this._currDeltaOffset+=c.newLength-c.oldLength}const i=te._merge(this._result);return te._removeNoOps(i)}_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 i=1;i<t.length;i++){const o=t[i];s.oldEnd===o.oldPosition?s=new J(s.oldPosition,s.oldText+o.oldText,s.newPosition,s.newText+o.newText):(n[r++]=s,s=o)}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 i=t[s];i.oldText!==i.newText&&(n[r++]=i)}return n}};function Ji(e){return new J(e.newPosition,e.newText,e.oldPosition,e.oldText)}function Qi(e){return e.map(Ji)}function Fn(e,t){return t.every(n=>e.slice(n.oldPosition,n.oldEnd)===n.oldText)}function Zi(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 eo(e,t,n){let r=0;const s=e.start===e.end;for(const i of t){const o=i.newLength-i.oldLength;if(i.oldLength===0){const c=i.oldPosition;if(s&&c===e.start)r+=n==="after"?o:0;else{if(e.start<c&&c<e.end)return null;c<=e.start&&(r+=o)}continue}if(s){if(e.start>=i.oldEnd)r+=o;else if(e.start>i.oldPosition)return null;continue}if(e.start>=i.oldEnd)r+=o;else if(e.end>i.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,to=Math.random().toString(36).slice(2,8);function no(){return kn+=1,`doc-${to}-${kn}`}function ro(e){const t=e.createBuffer(),n=e.docId??no();let r=e.serverId??null,s=0,i=null,o=e.attributes??{};const c=new Set;let l=!1,u=!1,d;const p=new Set;let m=null;const v=()=>(m?.version!==s&&(m={version:s,value:t.read()}),m.value),S=E=>Object.entries(E).some(([g,_])=>o[g]!==_);return{get:()=>({docId:n,serverId:r,version:s,savedVersion:i,attributes:o}),getContent:v,mutate(E,{source:g}){if(l)return s;const _=E.changes?.length?E.changes:void 0,b=_?Zi(v(),_):E.content!==void 0?E.content:void 0,I=b!==void 0&&b!==v(),A=E.attributes!==void 0&&S(E.attributes);if(!I&&!A)return s;const P=!(s>(i??-1));return I&&t.write(b),A&&(o={...o,...E.attributes}),s+=1,g!=="user"&&P&&(i=s),c.forEach(h=>h({source:g,version:s,changes:_})),s},markSaved(E,g){const _={serverId:r,savedVersion:i};g!==void 0&&(r=g),(i===null||E>i)&&(i=E),(_.serverId!==r||_.savedVersion!==i)&&c.forEach(b=>b({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>(i??-1),isDisposed:()=>l,dispose(){l=!0,p.forEach(E=>E.reject(new Error("Документ закрыт до того, как наполнение закончилось"))),p.clear(),c.clear(),t.dispose()}}}var so=500,io=100,ct=0;function oo(e,t={}){const n=t.groupIntervalMs??so,r=t.maxSteps??io,s=t.now??(()=>0);let i=[],o=0,c=ct+=1,l=null,u=!1,d=!1,p=!1;const m=new Set,v=()=>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?i[o-1]=Mn(i[o-1],h):(i=i.slice(0,o),i.push(h),o=i.length,u=!0,i.length>r&&(i=i.slice(i.length-r),o=i.length,c=ct+=1)),l=w,v()},_=()=>{u=!1,l=null},b=h=>{if(!h.length)return;const w=i.length>o;w&&(i=i.slice(0,o)),o>0&&(i[o-1]=Mn(i[o-1],h)),_(),w&&v()},I=e.subscribe(({source:h,changes:w})=>{if(!(p||d||!w?.length)){if(h==="remote"){A();return}if(h!=="user"){b(w);return}g(w)}}),A=()=>{i=[],o=0,_(),c=ct+=1,v()},P=()=>{if(o===0)return!1;const h=Qi(i[o-1]);return Fn(e.getContent(),h)?(E(h),o-=1,_(),!0):(i=i.slice(0,o-1),o=i.length,_(),v(),!1)};return{canUndo:()=>o>0,canRedo:()=>o<i.length,undo(){P()&&v()},redo(){if(!(o>=i.length)){if(!Fn(e.getContent(),i[o])){i=i.slice(0,o),_(),v();return}E(i[o]),o+=1,_(),v()}},clear:A,applyWithoutHistory(h){const w=e.get().version;if(S(h,"system"),e.get().version===w){_();return}b(h)},getPast:h=>i.slice(0,o).reverse().slice(0,h),getFuture:h=>i.slice(o).reverse().slice(0,h),createSnapshot:()=>({stackId:c,index:o}),restoreSnapshot(h){if(h.stackId!==c||h.index>o)return!1;for(;o>h.index;)if(!P())return v(),!1;return v(),!0},subscribe(h){return m.add(h),()=>m.delete(h)},dispose(){p=!0,I(),m.clear(),i=[],o=0}}}var ao=["edit","move","resize","insert"];function dt(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}function lo(e){return typeof e=="string"?e:null}function co(e){return!Array.isArray(e)||!e.every(t=>typeof t=="string")?null:e}function uo(e){return ao.includes(e)?e:null}function fo(e){const t=typeof e=="object"&&e!==null?e:{},n={originId:lo(t.originId),changeId:dt(t.changeId),rev:dt(t.rev),baseRev:dt(t.baseRev),expected:co(t.expected),intent:uo(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 po(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 Yp(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 i=Math.round((typeof performance<"u"?performance.now():Date.now())-r);throw`${e}`,{error:String(s),...n},s})}var zp=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 mo(e,t={}){const n=Un((e??[]).filter(r=>r?.html?.trim()));return Hn(n,t)?n:null}function ho(e){const t=Date.parse(Un(e)?.modified??"");return{autosave:mo(e),...Number.isFinite(t)?{latestAt:t}:{}}}function go({hasUnsavedUserEdit:e}){return e?"skip":"apply"}var $n=e=>e.replace(/\r\n?/g,`
2079
+ `),Gn=["recovery","plugin","rest"],Eo=["subject","preheader"];function vo(e){let t={},n;for(let s=Gn.length-1;s>=0;s--){const i=e.get(Gn[s]);i&&(i.attributes&&(t={...t,...i.attributes}),i.content!==void 0&&(n=i.content))}const r=e.get("plugin")?.attributes;for(const s of Eo){const i=r?.[s];typeof i=="string"&&i!==""&&(t={...t,[s]:i})}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 _o(e,t,n){const{version:r,attributes:s}=e.get(),i=s,o=Yn(i.title)||Yn(i.subject);return{version:r,payload:{html:e.getContent(),title:o,subject:i.subject,preheader:i.preheader,description:i.description,common_styles:i.common_styles||"",meta:i.meta,utm_parameters:i.utm_parameters,parent_email:i.parent_email,is_template:i.is_template||!1,is_inited:i.is_inited,tags:i.tags,emailtags:i.emailtags,group:i.group,renderGuid:e.get().docId,project:t.project??i.project,folder:t.folder,...n?.emailtags?{emailtags:n.emailtags}:{},...n?.group?{group:n.group}:{},source:t.source}}}async function bo(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 yo=new Set(["html","id","renderGuid","showToken","showId","isNew"]);function zn(e){return e?Object.fromEntries(Object.entries(e).filter(([t])=>!yo.has(t))):{}}function Be(e,t,n={}){e&&e.mutate({attributes:So(e.get().attributes,t)},{source:n.source??"user"})}function So(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 Io(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=Io(e.common_styles)),ft(e.html,t)}function Kn(e){return e?ft(e.html,re(zn(e))):null}var wo=["common_styles","subject","preheader","meta"];function Wn(e){if(!e?.html?.trim())return null;const t={};for(const n of wo)To(n,e[n])&&(t[n]=e[n]);return ft(e.html,t)}function To(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 Ao=10,Co=(e,t)=>e.key===t.key&&Po(e.serverId,t.serverId),Po=(e,t)=>e==null||e===t;function Do(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)},Ro=e=>{Vn(e.document,vo(e.reports)),Jn(e)},pt=(e,t)=>{if(!e.ready){Ro(e);return}Vn(e.document,t)},Oo=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 Lo(e){const{resolveAdapters:t,timeoutMs:n,resolveWritePort:r,resolveHistoryPort:s,resolveTerms:i,canEdit:o,notifyBeforeSave:c,onAdapterError:l,onTimeout:u}=e;let d;const p=new Set,m=new Set,v=()=>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,v())},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&&go({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(Do(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=i?.();if(O)return O.resolve({project:y.project??f.project,tags:(f.tags??[]).map(x=>({name:x}))})},b=f=>{if(f.lock===!0&&o?.(f)===!1)return new Bn("locked");const y=f.tags?.length??0,T=f.emailtags?.length??0;if(Math.max(y,T)>Ao)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=b(f.document.get().attributes);if(O)return f.saveError=O,f.saveFailures+=1,O.reason,v(),!1;if(c&&(await c(Oo(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,v(),!1}if(f.closed)return!1;const{payload:q,version:D}=_o(f.document,T,x);f.document.get().docId;try{const R=f.document.get().serverId!=null,U=await bo(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,v();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,v(),!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&&v()},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"&&Co(d.request,f))return P(d,f,y),d.document;A();const T=ro({createBuffer:()=>Wi(""),serverId:f.serverId??null}),O={request:f,show:f.show,document:T,history:oo(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,v())},readShownContent:()=>O.closed?null:O.document.getContent()})),v(),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:po(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(),v())}}}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 No(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 xo(e){return e.getInstance(er)}function Mo(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 Fo=a.createIdentifier$1("EmailTermsResolver");function ko(e){return e.getInstance(Fo)}var rr=a.createIdentifier$1("EmailHistoryPort"),Bo=a.createIdentifier$1("BlockHistoryPort");function sr(e){return e.getInstance(Bo)}function ir(e){return e.getInstance(rr)}function jo(e,t){e.inject(rr,t)}var Uo="em_autosave_pending",qp=6e4;function je(e){return`${Uo}_${e}`}function Ho(e,t){try{sessionStorage.setItem(je(e),JSON.stringify(t))}catch{}}function $o(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 Go=2e3,Vo=5e3,Yo=5,zo=5e3,qo=4;function Ko(){return typeof performance<"u"&&typeof performance.timeOrigin=="number"?performance.timeOrigin:Date.now()}function Wo(e,t){return e==null||t==null?!1:e.replaceAll(`\r
2080
2080
  `,`
2081
2081
  `)===t.replaceAll(`\r
2082
2082
  `,`
2083
- `)}function Ko({emailId:e,readAutosave:t,revisionServiceEnabled:n,isHistoryAvailable:r,readShownContent:s,onFacts:i,onLate:o,onError:c,pageLoadTs:l=zo()}){let u=null,d=!1,p=!1,m=0,v={emailId:e,historyLoaded:!1,isRecovering:!1},S=null;const E=new Promise(D=>{S=D}),g=D=>{v={...v,...D},i(v)},_=D=>{m+=1,g({applied:{phase:D,seq:m}})},b=()=>{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}o(D)&&D.revision&&_(D.phase)}},A=()=>{if(!u||p)return;const D=u.phase==="fast",R=D?Ho:Vo,U=D?Go:Yo;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),b(),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)=>Un(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),b(),g({isRecovering:!1}),d=!0,I({revision:M,phase:G});return}if(d)return;const R=n?Uo(e):null,U=R&&(R.sentAt<l||!qo(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),v.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&&!v.historyLoaded&&y()},$o))},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),b()}}}function Wo({port:e,revisionServiceEnabled:t,isHistoryAvailable:n,emailId:r,readShownContent:s,onFacts:i}){let o=null;const c=Ko({emailId:r,readAutosave:l=>e.readAutosave(l),revisionServiceEnabled:t,...n?{isHistoryAvailable:n}:{},readShownContent:s,onFacts:i,onLate:({revision:l,phase:u})=>{const d=Kn(l);return o?.(d)??!1},onError:l=>{l instanceof Error&&l.message}});return{id:"recovery",load:()=>c.verdict().then(({revision:l})=>Kn(l)),watch(l){return o=l,()=>{o=null,c.dispose()}}}}function ir(e,t){return{readRevisions:(n,r)=>t.readRevisions(n,r),readAutosave:n=>t.readAutosave(n),async saveAutosave(n,r){jo(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 Xo(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 or=a.createIdentifier$1("CurrentUser"),ar={};function lr(e){return e.getOrCreateInstance(or,()=>pe(ar))}function cr(e){return e?.getInstance(or)?.get()??ar}function dr(e){return e?.getInstance(a.CONFIG_SOURCE_ID)?.get()??{}}var Jo=1.5;function Qo(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<=Jo*e.autosaveTimeoutMs?"none":"revision"}var Zo=4;function ea(e){const{readDocument:t,readEnvironment:n,onCreate:r,onRevision:s}=e,i=e.readFailures??(()=>0),o=()=>n().autosaveTimeoutMs*2**Math.min(i(),Zo),c=()=>{const _=t();if(!_||_.isDisposed())return"none";const{latestRevisionAt:b,snapshotVersion:I,...A}=n();return Qo({...A,isDirty:_.isDirty(),isNew:_.isNew(),isReady:_.isReady(),latestRevisionAgeMs:b!=null?Date.now()-b:void 0,isSnapshotSent:I!=null&&I===_.get().version})},l=()=>{const _=t();if(!_||_.isDisposed())return!1;if(!_.isDirty())return _.isNew();const{snapshotVersion:b}=n();return!(b!=null&&b===_.get().version)};let u,d,p,m,v=!1;const S=()=>{d=void 0;const _=t();if(!_||_.isDisposed())return;if(_.get().docId!==u){E();return}const b=c();b==="create"?r():b==="revision"?s():l()&&(u=_.get().docId,d=setTimeout(S,o()))},E=()=>{const _=t();v||!_||d!==void 0||c()==="none"&&!l()||(u=_.get().docId,d=setTimeout(S,o()))},g=()=>{const _=t();_!==p&&(m?.(),p=_,m=_?.subscribe(E),d!==void 0&&(clearTimeout(d),d=void 0))};return g(),E(),{refresh:()=>{v||(g(),E())},stop:()=>{v=!0,m?.(),m=void 0,p=void 0,d!==void 0&&(clearTimeout(d),d=void 0)}}}var ur=a.createIdentifier$1("documentSession.autosaveUiFacts"),fr={isUserBusy:!1,saveContext:{}};function ta(e){return e.getOrCreateInstance(ur,()=>pe(fr))}function pr(e){return e?.getInstance(ur)?.get()??fr}var na=1e4;function ra(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,v=t.revisionFacts(),S=m?.latestRevisionAt,E=v?.lastRevisionAt,g=cr(e).profile;return{isInited:d||l?.get().attributes.is_inited===!0,isEnabled:!!g?.autosaves,isHistoryLoaded:m?.historyLoaded===!0,isUserBusy:pr(e).isUserBusy,autosaveTimeoutMs:dr(e).autosaveTimeout||na,latestRevisionAt:S!==void 0||E!==void 0?Math.max(S??0,E??0):void 0,snapshotVersion:v?.snapshotVersion}},r=()=>{const l=pr(e).saveContext;return{...l,project:l.project??t.current()?.get().attributes.project}},s=ea({readDocument:()=>t.current(),readEnvironment:n,readFailures:()=>t.saveState().failures,onCreate:()=>{ne(t.sessionKey())||t.save("materialize",r())},onRevision:()=>{t.save("snapshot",{project:r().project})}}),i=t.subscribe(s.refresh),o=lr(e).watch(()=>s.refresh()),c=ta(e).watch(()=>s.refresh());return()=>{i(),o.dispose(),c.dispose(),s.stop()}}var mr=12e3;function se(e){return e.getOrCreateInstance(ot,()=>{const t=Ro({resolveAdapters:(r,s)=>oa(r,e,s),resolveWritePort:()=>hr(e),resolveHistoryPort:r=>ne(r)?Er(e):gr(e),resolveTerms:()=>Mo(e),canEdit:r=>ki(e,r),notifyBeforeSave:Vi(e),timeoutMs:mr,onAdapterError:(r,s)=>{s instanceof Error&&s.message,Me(s,{origin:"email-source-adapter",tags:{source:r}})},onTimeout:r=>{}}),n=ra(e,t);return e.getInstance(a.DISPOSABLE_ID)?.addDispose(n),t})}function mt(e){return e?.getInstance(ot)}function hr(e){const t=Lo(e);return t?ht(e)?Xo(t,le(e).email(e)):t:le(e).email(e)}function sa(e){return sr(e)!==void 0||tr(e)}function gr(e){const t=sr(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 Er(e){const t=rr(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 ia(e){return rr(e)!==void 0||tr(e)}function ht(e){return Tn(e)}function oa({email:e,patch:t,serverId:n,key:r},s,i){const o=[];e?o.push({id:"rest",load:()=>zn(e),required:!0}):n&&o.push(Oo(hr(s),n)),t&&o.push({id:"plugin",load:()=>qn(t)});const c=ne(r);return Yi(n)&&(c?ia(s):sa(s))&&o.push(Wo({port:c?Er(s):gr(s),revisionServiceEnabled:Tn(s),...!c&&Bi(s)?{isHistoryAvailable:()=>ji(s)}:{},emailId:n,readShownContent:()=>i.readShownContent(),onFacts:l=>i.publishRecoveryFacts(l)})),o}function Y(e){return e.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService)}var vr=new WeakMap,gt=new WeakMap;function ie(e){return vr.get(e)??0}function _r(e,t){let n=gt.get(e);return n||(n=new Set,gt.set(e,n)),n.add(t),()=>{n?.delete(t)}}function aa(e){vr.set(e,ie(e)+1),gt.get(e)?.forEach(t=>t())}function la(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 ca(e){return e.size>0&&(e.type===""||e.type.startsWith("image/"))}function da(e){const t=e.fetchImpl??((i,o)=>fetch(i,o)),n=e.pageHost??(()=>window.location.hostname),r=new Set,s=i=>{try{const o=new URL(i,window.location.href);return o.protocol!=="https:"&&o.protocol!=="http:"?!1:o.hostname===n()||e.sourceHosts().includes(o.hostname)}catch{return!1}};return{accepts:s,async load(i){if(!s(i))return;const o=!r.has(i);r.add(i);try{const c=await t(i,{mode:"cors",credentials:"omit",cache:o?"no-cache":"default"});if(!c.ok)return;const l=await c.blob();return ca(l)?l:void 0}catch{return}}}}var ce={maxBytes:67108864,maxImageBytes:4194304,ttlMs:18e5};function ua(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,i={hits:0,loads:0,failures:0};let o=0;const c=p=>{const m=r.get(p);m&&(o-=m.bytes,r.delete(p))},l=p=>t.ttlMs<=0||n()-p.storedAt<t.ttlMs,u=()=>{if(o<=t.maxBytes)return;const p=[...r.entries()].sort((m,v)=>m[1].usedAt-v[1].usedAt);for(const[m]of p){if(o<=t.maxBytes)return;c(m)}},d=(p,m)=>{m.size>t.maxImageBytes||(r.set(p,{blob:m,bytes:m.size,storedAt:n(),usedAt:n()}),o+=m.size,u())};return{async get(p){const m=r.get(p);if(m&&l(m))return m.usedAt=n(),i.hits+=1,m.blob;m&&c(p);const v=s.get(p);if(v!==void 0)return v;i.loads+=1;const S=(async()=>{try{const E=await e.load(p);return E?d(p,E):i.failures+=1,E}catch{i.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(),o=0},stats(){return{entries:r.size,bytes:o,...i}}}}var fa=["emcdn.ru","scr.emcdn.ru"];function pa(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 ma(e,t){const n=(r,s)=>{const i=new Set(s?t:[]);for(const o of r){const c=pa(o);c&&i.add(c)}return[...i]};return e?Array.isArray(e)?n(e,!0):n(e.value??[],e.replace!==!0):[...t]}function br(e){const t=e??{},n=t.isPlugin!==!0?fa:[],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:ma(s.sourceHosts,n),maxBytes:s.maxBytes??ce.maxBytes,maxImageBytes:s.maxImageBytes??ce.maxImageBytes,ttlMs:s.ttlMs??ce.ttlMs}}function ha(e){const t=Y(e),n=e.getInstance(a.CONFIG_SOURCE_ID);let r=br(n?.get());const s=da({sourceHosts:()=>r.sourceHosts}),i=ua({load:S=>s.load(S),maxBytes:r.maxBytes,maxImageBytes:r.maxImageBytes,ttlMs:r.ttlMs}),o=()=>{t.send(a.EVENT_TYPES.SANDBOX_CANVAS_IMAGE_CACHE_SETUP,{enabled:r.enabled,sourceHosts:[...r.sourceHosts]})},c=t.onInit(()=>o()),l=n?.watch(()=>{const S=br(n.get()),E=JSON.stringify(S)!==JSON.stringify(r);r=S,S.enabled||i.clear(),E&&t.isInited()&&o()}),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:i.stats()})}),v=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&&i.forget(E);const g=await i.get(E);return g?(u.served+=1,{blob:g}):p(E,"load-failed")});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{c.dispose(),l?.dispose(),v.dispose(),i.clear(),delete m.__emmCanvasImages__})}var ga=2e3;function Ea(e){const t=Y(e),n=new Set,r=()=>{const o=t.getTarget();if(!o||t.hasPort(o))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(o))};c.port1.addEventListener("message",u),t.sendPort(o,c.port2),t.usePort(c.port1,!1,o);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(o))},ga);n.add(d)},s=Object.assign(globalThis,{__emmCanvasPort__:()=>{const o=t.getTarget();return{usesPort:t.usesPort,windowDrained:o?t.isWindowDrained(o):!1}}}),i=t.onInit(()=>r());e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{for(const o of n)clearTimeout(o);i.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 ba(){return typeof document<"u"&&document.baseURI?document.baseURI:typeof window<"u"&&window.location?window.location.href:""}function yr(e,t){const n=e==null||e===""?"./":String(e);if(_a(n))return He(n);const r=t??ba();if(!r)return He(n);try{return He(new URL(n,r).href)}catch{return He(n)}}function ya(){return typeof __emailmaker__<"u"&&__emailmaker__?.publicPath?yr(__emailmaker__.publicPath):yr("/")}var Sa=()=>"",Ia=()=>"fc1d4d9a";function Sr(e){const t=e?"iframe-eblock":"iframe",n=Sa();if(n){const i=n.replace(/\/?$/,"/");return En(`${i}${t}.html`,be())}const r=Ia(),s=`${ya().replace(/\/?$/,"/")}iframe/`;return En(`${s}${t}${r?`.${r}`:""}.html`,be())}var Ir="allow-top-navigation allow-scripts allow-popups allow-popups-to-escape-sandbox";function Et(e){return/^file:/i.test(String(e||"").trim())}function wa(e){return Et(e)?`${Ir} allow-same-origin`:Ir}var zp="em:module-body",Ta="em:module-body-ack";function Aa(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 vt(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 Ca(e,t){const n=vt(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 Pa(e,t){const n=vt(t)?.replace(/\.body\.js$/,".js");if(!n||!(n in e))return[];const r=new Set([n]),s=[n],i=[];for(;s.length>0;)for(const o of e[s.shift()]??[])r.has(o)||(r.add(o),i.push(o),s.push(o));return i}async function Da(e){try{const t=await fetch(e);return t.ok?await t.blob():void 0}catch{return}}function Ra(e){const t=new Map,n=r=>{const s=Aa(r,e.canvasSrc,e.origin);if(!s)return;const i=t.get(s);if(i!==void 0)return i;const o=e.fetchBody(s);return t.set(s,o),o};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 Oa(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 i=await s.json();n(Ca(i,e))}catch{}}function La(e){try{return Et(new URL(e,window.location.href).href)}catch{return Et(window.location.href)}}function Na(e){Y(e);const t=Sr(!1);if(La(t))return;const n=Ra({canvasSrc:t,origin:window.location.href,fetchBody:Da}),r=vt(t);r&&n.warm([r]);const s={"js/iframe-eblock.js":["js/discussHandlers.DPWv0hV2.js","js/typograf.all.B0pVhMV_.js"],"js/iframe.js":["js/rolldown-runtime.qcwTIabA.js","js/discussHandlers.DPWv0hV2.js"],"js/darkreader.CLd5EML2.js":[],"js/discussHandlers.DPWv0hV2.js":["js/rolldown-runtime.qcwTIabA.js"],"js/rolldown-runtime.qcwTIabA.js":[],"js/rules.CnnzdMsj.js":[],"js/typograf.all.B0pVhMV_.js":["js/rolldown-runtime.qcwTIabA.js"]};s?n.warm(Pa(s,t)):Oa(t,window.location.href,o=>n.warm(o));const i=o=>{const c=o.data;if(!c||c.operationId!=="em:module-body"||!c.result)return;const l=o.source;l&&(l.postMessage({operationId:Ta,for:c.result},"*"),n.take(c.data?.url??"").then(u=>{l.postMessage({operationId:c.result,data:u??null},"*")}))};window.addEventListener("message",i),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{window.removeEventListener("message",i),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,xa=/\s(?:bis_[a-z0-9_-]+|data-bis-config|data-dynamic-id)=(["'])(?:(?!\1).)*\1/gi,he=/<style\b[^>]*>[\s\S]*?<\/style>/gi,wr=/display:\s*none\s*!important/gi,Ma=/((?:html\s*,\s*body|body\s*,\s*html)\s*\{)([^}]*)(\})/gi,Fa=/\s*height\s*:\s*100%\s*!important\s*;?/gi,ka=/height\s*:\s*100%\s*!important/i,Ba=[".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 ja(e){return wr.lastIndex=0,(e.match(wr)||[]).length}function Tr(e){const t=e.trim(),n=ja(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=Ba.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 Ua(e){he.lastIndex=0;for(const t of e.matchAll(he))if(Tr(t[0].replace(/^<style\b[^>]*>/i,"").replace(/<\/style>$/i,"")))return!0;return!1}function Ha(e){let t=!1;return he.lastIndex=0,{html:e.replace(he,n=>Tr(n.replace(/^<style\b[^>]*>/i,"").replace(/<\/style>$/i,""))?(t=!0,""):n),found:t}}function $a(e){return me.lastIndex=0,me.test(e)||/\sbis_[a-z0-9_-]+\s*=/.test(e)||/\sdata-bis-config\s*=/.test(e)||Ua(e)}function Ga(e){if(!$a(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(xa,""),t=!0);const r=Ha(n);return n=r.html,t=t||r.found,{html:n,found:t}}function Va(e){return!e||!ka.test(e)?e:(he.lastIndex=0,e.replace(he,t=>t.replace(Ma,(n,r,s,i)=>`${r}${s.replace(Fa,"")}${i}`)))}function Ar(e){const t=Ga(e.replaceAll(`\r
2083
+ `)}function Xo({emailId:e,readAutosave:t,revisionServiceEnabled:n,isHistoryAvailable:r,readShownContent:s,onFacts:i,onLate:o,onError:c,pageLoadTs:l=Ko()}){let u=null,d=!1,p=!1,m=0,v={emailId:e,historyLoaded:!1,isRecovering:!1},S=null;const E=new Promise(D=>{S=D}),g=D=>{v={...v,...D},i(v)},_=D=>{m+=1,g({applied:{phase:D,seq:m}})},b=()=>{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}o(D)&&D.revision&&_(D.phase)}},A=()=>{if(!u||p)return;const D=u.phase==="fast",R=D?Go:zo,U=D?Yo:qo;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),b(),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),b(),g({isRecovering:!1}),d=!0,I({revision:M,phase:G});return}if(d)return;const R=n?$o(e):null,U=R&&(R.sentAt<l||!Wo(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),v.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&&!v.historyLoaded&&y()},Vo))},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),b()}}}function Jo({port:e,revisionServiceEnabled:t,isHistoryAvailable:n,emailId:r,readShownContent:s,onFacts:i}){let o=null;const c=Xo({emailId:r,readAutosave:l=>e.readAutosave(l),revisionServiceEnabled:t,...n?{isHistoryAvailable:n}:{},readShownContent:s,onFacts:i,onLate:({revision:l,phase:u})=>{const d=Wn(l);return o?.(d)??!1},onError:l=>{l instanceof Error&&l.message}});return{id:"recovery",load:()=>c.verdict().then(({revision:l})=>Wn(l)),watch(l){return o=l,()=>{o=null,c.dispose()}}}}function or(e,t){return{readRevisions:(n,r)=>t.readRevisions(n,r),readAutosave:n=>t.readAutosave(n),async saveAutosave(n,r){Ho(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 Qo(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 Zo=1.5;function ea(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<=Zo*e.autosaveTimeoutMs?"none":"revision"}var ta=4;function na(e){const{readDocument:t,readEnvironment:n,onCreate:r,onRevision:s}=e,i=e.readFailures??(()=>0),o=()=>n().autosaveTimeoutMs*2**Math.min(i(),ta),c=()=>{const _=t();if(!_||_.isDisposed())return"none";const{latestRevisionAt:b,snapshotVersion:I,...A}=n();return ea({...A,isDirty:_.isDirty(),isNew:_.isNew(),isReady:_.isReady(),latestRevisionAgeMs:b!=null?Date.now()-b:void 0,isSnapshotSent:I!=null&&I===_.get().version})},l=()=>{const _=t();if(!_||_.isDisposed())return!1;if(!_.isDirty())return _.isNew();const{snapshotVersion:b}=n();return!(b!=null&&b===_.get().version)};let u,d,p,m,v=!1;const S=()=>{d=void 0;const _=t();if(!_||_.isDisposed())return;if(_.get().docId!==u){E();return}const b=c();b==="create"?r():b==="revision"?s():l()&&(u=_.get().docId,d=setTimeout(S,o()))},E=()=>{const _=t();v||!_||d!==void 0||c()==="none"&&!l()||(u=_.get().docId,d=setTimeout(S,o()))},g=()=>{const _=t();_!==p&&(m?.(),p=_,m=_?.subscribe(E),d!==void 0&&(clearTimeout(d),d=void 0))};return g(),E(),{refresh:()=>{v||(g(),E())},stop:()=>{v=!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 ra(e){return e.getOrCreateInstance(fr,()=>pe(pr))}function mr(e){return e?.getInstance(fr)?.get()??pr}var sa=1e4;function ia(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,v=t.revisionFacts(),S=m?.latestRevisionAt,E=v?.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||sa,latestRevisionAt:S!==void 0||E!==void 0?Math.max(S??0,E??0):void 0,snapshotVersion:v?.snapshotVersion}},r=()=>{const l=mr(e).saveContext;return{...l,project:l.project??t.current()?.get().attributes.project}},s=na({readDocument:()=>t.current(),readEnvironment:n,readFailures:()=>t.saveState().failures,onCreate:()=>{ne(t.sessionKey())||t.save("materialize",r())},onRevision:()=>{t.save("snapshot",{project:r().project})}}),i=t.subscribe(s.refresh),o=cr(e).watch(()=>s.refresh()),c=ra(e).watch(()=>s.refresh());return()=>{i(),o.dispose(),c.dispose(),s.stop()}}var hr=12e3;function se(e){return e.getOrCreateInstance(ot,()=>{const t=Lo({resolveAdapters:(r,s)=>la(r,e,s),resolveWritePort:()=>gr(e),resolveHistoryPort:r=>ne(r)?vr(e):Er(e),resolveTerms:()=>ko(e),canEdit:r=>ji(e,r),notifyBeforeSave:zi(e),timeoutMs:hr,onAdapterError:(r,s)=>{s instanceof Error&&s.message,Me(s,{origin:"email-source-adapter",tags:{source:r}})},onTimeout:r=>{}}),n=ia(e,t);return e.getInstance(a.DISPOSABLE_ID)?.addDispose(n),t})}function mt(e){return e?.getInstance(ot)}function gr(e){const t=xo(e);return t?ht(e)?Qo(t,le(e).email(e)):t:le(e).email(e)}function oa(e){return ir(e)!==void 0||nr(e)}function Er(e){const t=ir(e);return t?ht(e)?(j("port:history:server-backed"),or(t,le(e).history(e))):(j("port:history:integrator"),t):(j("port:history:rest (порт не зарегистрирован)"),le(e).history(e))}function vr(e){const t=sr(e);return t?ht(e)?(j("port:block-history:server-backed"),or(t,le(e).blockHistory(e))):(j("port:block-history:integrator"),t):(j("port:block-history:rest (порт не зарегистрирован)"),le(e).blockHistory(e))}function aa(e){return sr(e)!==void 0||nr(e)}function ht(e){return An(e)}function la({email:e,patch:t,serverId:n,key:r},s,i){const o=[];e?o.push({id:"rest",load:()=>qn(e),required:!0}):n&&o.push(No(gr(s),n)),t&&o.push({id:"plugin",load:()=>Kn(t)});const c=ne(r);return qi(n)&&(c?aa(s):oa(s))&&o.push(Jo({port:c?vr(s):Er(s),revisionServiceEnabled:An(s),...!c&&Ui(s)?{isHistoryAvailable:()=>Hi(s)}:{},emailId:n,readShownContent:()=>i.readShownContent(),onFacts:l=>i.publishRecoveryFacts(l)})),o}function Y(e){return e.getOrCreateInstance(a.MESSAGE_SERVICE_ID,()=>new a.MessageService)}var _r=new WeakMap,gt=new WeakMap;function ie(e){return _r.get(e)??0}function br(e,t){let n=gt.get(e);return n||(n=new Set,gt.set(e,n)),n.add(t),()=>{n?.delete(t)}}function ca(e){_r.set(e,ie(e)+1),gt.get(e)?.forEach(t=>t())}function da(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 ua(e){return e.size>0&&(e.type===""||e.type.startsWith("image/"))}function fa(e){const t=e.fetchImpl??((i,o)=>fetch(i,o)),n=e.pageHost??(()=>window.location.hostname),r=new Set,s=i=>{try{const o=new URL(i,window.location.href);return o.protocol!=="https:"&&o.protocol!=="http:"?!1:o.hostname===n()||e.sourceHosts().includes(o.hostname)}catch{return!1}};return{accepts:s,async load(i){if(!s(i))return;const o=!r.has(i);r.add(i);try{const c=await t(i,{mode:"cors",credentials:"omit",cache:o?"no-cache":"default"});if(!c.ok)return;const l=await c.blob();return ua(l)?l:void 0}catch{return}}}}var ce={maxBytes:67108864,maxImageBytes:4194304,ttlMs:18e5};function pa(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,i={hits:0,loads:0,failures:0};let o=0;const c=p=>{const m=r.get(p);m&&(o-=m.bytes,r.delete(p))},l=p=>t.ttlMs<=0||n()-p.storedAt<t.ttlMs,u=()=>{if(o<=t.maxBytes)return;const p=[...r.entries()].sort((m,v)=>m[1].usedAt-v[1].usedAt);for(const[m]of p){if(o<=t.maxBytes)return;c(m)}},d=(p,m)=>{m.size>t.maxImageBytes||(r.set(p,{blob:m,bytes:m.size,storedAt:n(),usedAt:n()}),o+=m.size,u())};return{async get(p){const m=r.get(p);if(m&&l(m))return m.usedAt=n(),i.hits+=1,m.blob;m&&c(p);const v=s.get(p);if(v!==void 0)return v;i.loads+=1;const S=(async()=>{try{const E=await e.load(p);return E?d(p,E):i.failures+=1,E}catch{i.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(),o=0},stats(){return{entries:r.size,bytes:o,...i}}}}var ma=["emcdn.ru","scr.emcdn.ru"];function ha(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 ga(e,t){const n=(r,s)=>{const i=new Set(s?t:[]);for(const o of r){const c=ha(o);c&&i.add(c)}return[...i]};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?ma:[],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:ga(s.sourceHosts,n),maxBytes:s.maxBytes??ce.maxBytes,maxImageBytes:s.maxImageBytes??ce.maxImageBytes,ttlMs:s.ttlMs??ce.ttlMs}}function Ea(e){const t=Y(e),n=e.getInstance(a.CONFIG_SOURCE_ID);let r=yr(n?.get());const s=fa({sourceHosts:()=>r.sourceHosts}),i=pa({load:S=>s.load(S),maxBytes:r.maxBytes,maxImageBytes:r.maxImageBytes,ttlMs:r.ttlMs}),o=()=>{t.send(a.EVENT_TYPES.SANDBOX_CANVAS_IMAGE_CACHE_SETUP,{enabled:r.enabled,sourceHosts:[...r.sourceHosts]})},c=t.onInit(()=>o()),l=n?.watch(()=>{const S=yr(n.get()),E=JSON.stringify(S)!==JSON.stringify(r);r=S,S.enabled||i.clear(),E&&t.isInited()&&o()}),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:i.stats()})}),v=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&&i.forget(E);const g=await i.get(E);return g?(u.served+=1,{blob:g}):p(E,"load-failed")});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{c.dispose(),l?.dispose(),v.dispose(),i.clear(),delete m.__emmCanvasImages__})}var va=2e3;function _a(e){const t=Y(e),n=new Set,r=()=>{const o=t.getTarget();if(!o||t.hasPort(o))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(o))};c.port1.addEventListener("message",u),t.sendPort(o,c.port2),t.usePort(c.port1,!1,o);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(o))},va);n.add(d)},s=Object.assign(globalThis,{__emmCanvasPort__:()=>{const o=t.getTarget();return{usesPort:t.usesPort,windowDrained:o?t.isWindowDrained(o):!1}}}),i=t.onInit(()=>r());e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{for(const o of n)clearTimeout(o);i.dispose(),delete s.__emmCanvasPort__})}var ba=/^[a-zA-Z][a-zA-Z\d+\-.]*:/;function ya(e){return ba.test(e)||e.indexOf("//")===0}function He(e){return e&&(e.endsWith("/")?e:`${e}/`)}function Sa(){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(ya(n))return He(n);const r=t??Sa();if(!r)return He(n);try{return He(new URL(n,r).href)}catch{return He(n)}}function Ia(){return typeof __emailmaker__<"u"&&__emailmaker__?.publicPath?Sr(__emailmaker__.publicPath):Sr("/")}var wa=()=>"",Ta=()=>"273a13d0";function Ir(e){const t=e?"iframe-eblock":"iframe",n=wa();if(n){const i=n.replace(/\/?$/,"/");return vn(`${i}${t}.html`,be())}const r=Ta(),s=`${Ia().replace(/\/?$/,"/")}iframe/`;return vn(`${s}${t}${r?`.${r}`:""}.html`,be())}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 Aa(e){return Et(e)?`${wr} allow-same-origin`:wr}var Kp="em:module-body",Ca="em:module-body-ack";function Pa(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 vt(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 Da(e,t){const n=vt(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 Ra(e,t){const n=vt(t)?.replace(/\.body\.js$/,".js");if(!n||!(n in e))return[];const r=new Set([n]),s=[n],i=[];for(;s.length>0;)for(const o of e[s.shift()]??[])r.has(o)||(r.add(o),i.push(o),s.push(o));return i}async function Oa(e){try{const t=await fetch(e);return t.ok?await t.blob():void 0}catch{return}}function La(e){const t=new Map,n=r=>{const s=Pa(r,e.canvasSrc,e.origin);if(!s)return;const i=t.get(s);if(i!==void 0)return i;const o=e.fetchBody(s);return t.set(s,o),o};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 Na(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 i=await s.json();n(Da(i,e))}catch{}}function xa(e){try{return Et(new URL(e,window.location.href).href)}catch{return Et(window.location.href)}}function Ma(e){Y(e);const t=Ir(!1);if(xa(t))return;const n=La({canvasSrc:t,origin:window.location.href,fetchBody:Oa}),r=vt(t);r&&n.warm([r]);const s={"js/iframe-eblock.js":["js/discussHandlers.Cn70h-Yt.js","js/typograf.all.B0pVhMV_.js"],"js/iframe.js":["js/rolldown-runtime.qcwTIabA.js","js/discussHandlers.Cn70h-Yt.js"],"js/darkreader.CLd5EML2.js":[],"js/discussHandlers.Cn70h-Yt.js":["js/rolldown-runtime.qcwTIabA.js"],"js/rolldown-runtime.qcwTIabA.js":[],"js/rules.CnnzdMsj.js":[],"js/typograf.all.B0pVhMV_.js":["js/rolldown-runtime.qcwTIabA.js"]};s?n.warm(Ra(s,t)):Na(t,window.location.href,o=>n.warm(o));const i=o=>{const c=o.data;if(!c||c.operationId!=="em:module-body"||!c.result)return;const l=o.source;l&&(l.postMessage({operationId:Ca,for:c.result},"*"),n.take(c.data?.url??"").then(u=>{l.postMessage({operationId:c.result,data:u??null},"*")}))};window.addEventListener("message",i),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{window.removeEventListener("message",i),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,Fa=/\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,ka=/((?:html\s*,\s*body|body\s*,\s*html)\s*\{)([^}]*)(\})/gi,Ba=/\s*height\s*:\s*100%\s*!important\s*;?/gi,ja=/height\s*:\s*100%\s*!important/i,Ua=[".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 Ha(e){return Tr.lastIndex=0,(e.match(Tr)||[]).length}function Ar(e){const t=e.trim(),n=Ha(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=Ua.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 $a(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 Ga(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 Va(e){return me.lastIndex=0,me.test(e)||/\sbis_[a-z0-9_-]+\s*=/.test(e)||/\sdata-bis-config\s*=/.test(e)||$a(e)}function Ya(e){if(!Va(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(Fa,""),t=!0);const r=Ga(n);return n=r.html,t=t||r.found,{html:n,found:t}}function za(e){return!e||!ja.test(e)?e:(he.lastIndex=0,e.replace(he,t=>t.replace(ka,(n,r,s,i)=>`${r}${s.replace(Ba,"")}${i}`)))}function Cr(e){const t=Ya(e.replaceAll(`\r
2084
2084
  `,`
2085
- `));return{html:Va(t.html),hasBrowserExtensionArtifacts:t.found}}function _t(e){return e?.getContent()??""}function Cr(e,t){e?.mutate({content:Hn(t)},{source:"remote"})}function Pr(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 bt(e,t,n,r){return{html:e,guid:t,...Object.keys(n).length>0?{templateDirectivesPolicy:n}:{},...r!==void 0?{rev:r}:{}}}var Ya=class extends Error{showId;constructor(e,t){super(`[emailmaker] 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 i=setTimeout(()=>{this._settle(e.showId,()=>{s(new Ya(e.showId,t))})},t);i.unref?.();const o=()=>{this._settle(e.showId,()=>{s(a.createAbortError(n.reason))})};n.addEventListener("abort",o,{once:!0});const c=()=>{clearTimeout(i),n.removeEventListener("abort",o)};this._pending.set(e.showId,{request:e,resolve:r,reject:s,timeoutId:i,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 qa(e,t){return{contentReady:t.contentReady??e?.contentReady,sandboxReady:t.sandboxReady??e?.sandboxReady,sandbox:t.sandbox?{...e?.sandbox,...t.sandbox}:e?.sandbox}}function Ka(e){if(!e||!(e.contentReady!==void 0||e.sandboxReady!==void 0||e.sandbox!==void 0))return;const t=On(e),n=Ln(e),r=Hi(e.sandbox);t<n+r}var Dr=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 On(this._timeouts)}getSandboxTimeoutMs(e){return Rn(e,this._timeouts?.sandbox)}getSandboxReadyTimeoutMs(){return Ln(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=qa(this._timeouts,e.timeouts),Ka(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 Dr;return e.configure({}),e})(),Wa=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 Xa(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 Ja(e,t,n){return e.isInited()&&e.getTarget()?Promise.resolve():(a.throwIfAborted(n),new Promise((r,s)=>{let i=!1,o,c;const l=d=>{i||(i=!0,o!==void 0&&(clearTimeout(o),o=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&&(o=setTimeout(()=>{l(()=>s(new Wa(t)))},t)),n?.addEventListener("abort",u)}))}var Qa=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 Za(e,t,n){return t<=0?e:new Promise((r,s)=>{let i=!1,o;const c=l=>{i||(i=!0,o!==void 0&&(clearTimeout(o),o=void 0),l())};o=setTimeout(()=>{c(()=>s(new Qa(n,t)))},t),e.then(l=>{c(()=>r(l))},l=>{c(()=>s(l))})})}var el=2,$e=Symbol("sandbox:frame-replaced");function ee(e,t,n,r,s,i,o){const c=`sandbox:${t}`,l=i?.getSandboxTimeoutMs(t)??lt[t],u=()=>{let S=Za(e.sendAsync(n,r),l,c);return S=a.raceWithAbortSignal(S,i?.signal),we(c,S,s)};if(t==="INIT_START"&&Xa(e)){const S=i?.getSandboxReadyTimeoutMs()??2e4,E=e,g=_=>{const b=Ja(E,S,i?.signal);return we("sandbox:INIT_START:ready-wait",b,s).then(()=>{if(!o||_<=0)return u();const I=o.getGeneration();let A;const P=new Promise((w,f)=>{A=o.onChange(()=>{o.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(el)}if(!o)return u();const d=o.getGeneration();let p;const m=new Promise((S,E)=>{p=o.onChange(()=>{o.getGeneration()!==d&&E($e)})}),v=u();return v.catch(()=>{}),Promise.race([v,m]).finally(()=>p?.()).catch(S=>{throw S===$e&&{...s},S})}var tl=[["brace-percent",/<!--\{%/],["brace-hash",/<!--\{#/],["proscript",/<!--\[%/],["getresponse",/<!--\[\[(?:if|else\]\]|endif\]\])/i],["mailchimp",/<!--\*\|/],["expert-sender",/<!--<\/?(?:if|else|var)/i]],nl=200;function rl(e=new Set){const t=new Set;return(n,r)=>{if(!tl.some(([i,o])=>!e.has(i)&&o.test(n)))return;const s=r??`new:${n.length}:${n.slice(0,200)}`;t.has(s)||(t.size>=nl&&t.clear(),t.add(s))}}function sl(){return{isConfigured:()=>!1,toEditorForm:e=>e,toOutputForm:e=>e,keepWrappedOnOutput:new Set,editorPolicy:{},warnAboutUnconfiguredInput:rl()}}var il=sl();function ge(e){return e?.getInstance(a.TEMPLATE_DIRECTIVES_ID)??il}function ol(e){const t=se(e),n=Y(e),r=()=>e.getInstance(a.INIT_PIPELINE_ID)??yt;let s,i,o=!1,c=!1;const l=async(b,I,A)=>{const P=A.generation,h=()=>A.generation!==P||A.signal.aborted||t.current()!==b||c,w=ie(n);o=!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}=Ar(_t(b));if(y&&Q(e,a.events.ON_BROWSER_EXTENSION_DETECTED_ID).fire(),Cr(b,f),await ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,bt(_t(b),I,ge(e).editorPolicy,b.get().version),void 0,A),h())return;await ee(n,"INITED",a.EVENT_TYPES.SANDBOX_INITED,{guid:I},void 0,A),s=I,i=w}finally{o=!1}},u=()=>ne(t.sessionKey())?t.current():void 0,d=()=>{if(c||o)return;const b=u(),I=b?.get().docId;if(!b||!I||s===I&&i===ie(n)||!b.isReady())return;const A=r();A.signal.aborted||l(b,I,A).catch(()=>{})};let p=!1;const m=()=>{p||c||(p=!0,queueMicrotask(()=>{p=!1,d()}))};let v,S;const E=()=>{const b=u(),I=b?.get().docId;I!==S&&(v?.(),S=I,v=b?.subscribe(m)),m()},g=t.subscribe(E),_=_r(n,m);E(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{c=!0,_(),v?.(),g()})}var al=200;function ll({startVersion:e,limit:t=al}){let n=[],r=e;const s=i=>{n=n.filter(o=>o.version>i),r=Math.max(r,i)};return{record(i){!i.changes?.length&&!i.contentReplaced||(n.push(i),n.length>t&&s(n[n.length-t-1].version))},rebase(i,o){if(o<r)return null;const c=n.filter(u=>u.version>o);s(o);let l=i;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 v=Qi(m.range,d,"after");if(!v)return null;p.push({range:v,text:m.text})}l=p}return l}}}function cl(e,t){let n=0;return e.map(({start:r,end:s,text:i})=>{const o=new J(r,t.slice(r,s),r+n,i);return n+=i.length-(s-r),o})}function dl(e,t){const n=[...e].sort((r,s)=>r.range.start-s.range.start);return cl(n.map(({range:r,text:s})=>({start:r.start,end:r.end,text:s})),t)}function ul(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 Rr(e){return e.getInstance(St)?.pipeline.isEventsLocked()===!0}function It(e){Me(e,{origin:"canvas-channel"})}function fl(e){const t=se(e),n=Y(e);let r;const s=(l,u)=>{const d=l.get().docId;let p=!1,m=null,v=null;const S=ll({startVersion:l.get().version});let E=l.getContent();const g=async(P,h)=>{if(v){v.push({edits:P,rev:h});return}v=[{edits:P,rev:h}];try{do{const w=v.splice(0,v.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(v.length)}finally{v=null}},_=(P,h)=>{const w=v?.splice(0,v.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)},b=P=>{const{guid:h,pushUndoStop:w}=P;if(h!==d)return;const f=co(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=dl(y,l.getContent());w===!1?u.applyWithoutHistory(O):l.mutate({changes:O},{source:Rr(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=ul(P);p?_(y,m):g(y,h).catch(It)}),A=n.addListener(a.EVENT_TYPES.APPLICATION_UPDATE_ENTITY,b);return()=>{I(),A.dispose()}};let i;const o=()=>{const l=t.current(),u=t.history(),d=l?.get().docId;d!==i&&(r?.(),r=void 0,i=d,l&&u&&(r=s(l,u)))},c=t.subscribe(o);o(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r?.(),c()})}var pl=300,ml=15e3,Or="em-canvas-busy-style";function hl(){if(document.getElementById(Or))return;const e=document.createElement("style");e.id=Or,e.textContent="@keyframes em-canvas-busy-spin{to{transform:rotate(360deg)}}",document.head.appendChild(e)}function gl(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(){hl(),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 El=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 bl(e,t,n,r,s){const i=n.readyTimeoutMs??El,o=document.createElement("div");o.dataset.canvasHost=e,r&&(o.dataset.canvasPlace=r),o.style.position="fixed",o.style.overflow="hidden",o.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,o.appendChild(l),t.appendChild(o),n.mark?.("created"),s||n.onCreated?.(l);const u=new a.Disposable;let d=!1,p=!1,m,v,S,E;const g=()=>{clearTimeout(E),E=setTimeout(()=>{p||(p=!0,v?.(new Error(`[canvas] ${e}: документ не загрузился за ${i} мс`)))},i)},_=()=>d?(S=Promise.resolve(),p=!0,S):(p=!1,S=new Promise((L,k)=>{m=L,v=k}),g(),S),b=()=>{if(clearTimeout(E),d=!0,p){S=Promise.resolve();return}p=!0,n.mark?.("loaded"),m?.()};l.addEventListener("load",b),u.addDispose(()=>{clearTimeout(E),l.removeEventListener("load",b)});let I;const A=()=>{I??=n.bindResizer?.(l)};let P=null,h=null,w;const f=()=>{if(!P){o.style.visibility="hidden",l.removeAttribute("id");return}n.elementId&&(l.id=n.elementId);const L=P.getBoundingClientRect(),k=h?.isConnected?h:_l(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);o.style.visibility=tt>0?"visible":"hidden",o.style.left=`${L.left}px`,o.style.top=`${V}px`,o.style.width=`${L.width}px`,o.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,o.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(),o.remove()}}}function yl(e){const t=new Map;let n="a";const r=()=>n==="a"?"b":"a",s=(d,p)=>d==="email"?`email:${p??n}`:d;let i,o=[];const c=()=>{o.forEach(d=>clearTimeout(d)),o=[],i?.remove(),i=void 0},l=new Map,u=(d,p,m)=>{const v=s(d,p),S=t.get(v);if(S)return S;const E=e.resolveMount();if(!E)return vl();const g=bl(d,E,e,d==="email"?p??n:void 0,m);return t.set(v,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=gl(p);i=m,o=[setTimeout(()=>m.showSpinner(),pl),setTimeout(c,ml)]},dispose(){c(),t.forEach(d=>d.dispose()),t.clear(),l.clear(),n="a"}}}var Sl=a.createIdentifier$1("canvas.resizerBinder"),wt=a.createIdentifier$1("canvas.service"),Il={created:z.canvasCreated,loaded:z.canvasLoaded};function wl(e,t){if(e.getInstance(wt))return;const n=yl({resolveMount:()=>t.resolveMount(),resolveSrc:s=>t.resolveSrc(s),resolveSandbox:wa,elementId:t.elementId,bindResizer:s=>e.getInstance(Sl)?.(s),onCreated:s=>Ge(e,s,"fresh"),onReload:s=>Ge(e,s,"fresh"),onShown:s=>Ge(e,s,"switch"),mark:s=>t.mark?.(Il[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 i=r.getTarget()===s;i&&n==="switch"||(n==="fresh"&&(r.forget(s),i&&r.setTarget(void 0)),r.setTarget(s),aa(r))}function Tl(e,t){Ge(e,t,"promote")}function Al(e,t){const n=t.contentWindow;n&&Y(e).greet(n)}function Cl(e,t){const n=t.contentWindow;n&&Y(e).forget(n)}function oe(e){return e.getInstance(wt)}function Pl(e){const t=Y(e),n=()=>oe(e)?.byWindow(t.getTarget()),r=t.addListenerAsync(a.EVENT_TYPES.RELOAD,async()=>{await n()?.reload()}),s=t.addListener(o=>{o.data?.operation===a.EVENT_TYPES.SANDBOX_RESIZED&&n()?.resize()}),i=H(e,a.events.ON_EMAIL_INIT_ID)(()=>{n()?.resize()});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r.dispose(),s.dispose(),i.dispose()})}var qp=a.createIdentifier$1("HeadlessMode"),Dl=a.createIdentifier$1("HiddenMount");function Rl(e){return e.getOrCreateInstance(Dl,()=>pe(!1))}function Lr(){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 Ol(e){const t=e.getInstance(a.OPTIONS_SOURCE_ID);let n,r;e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r?.remove(),r=void 0}),wl(e,{resolveMount:()=>n,resolveSrc:i=>Sr(i==="block"),elementId:"email_iframe",mark:i=>j(i)}),t?.watch(i=>{if(n)return;const o=i?.element;if(o instanceof HTMLElement)n=o;else if(i!==void 0)n=r??=Lr();else return;oe(e)?.get("email")});let s;e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{s?.remove(),s=void 0}),Rl(e).watch(i=>{const o=oe(e);if(o){if(i){s??=Lr(),o.alignSurface("email",s,s);return}s&&(o.alignSurface("email",null),s.remove(),s=void 0)}})}var Nr=a.createIdentifier$1("canvas.headerFlow"),xr=["subject","preheader"],Ll=3e3,Nl={subject:a.EVENT_TYPES.SANDBOX_SUBJECT_UPDATE,preheader:a.EVENT_TYPES.SANDBOX_PREHEADER_UPDATE};function xl(e){const t=se(e),n=Y(e),r=E=>E?"remote":Rr(e)?"system":"user",s=(E,{guid:g,value:_,forced:b})=>{const I=Ie(t);if(!I||typeof _!="string"||g&&g!==I.get().docId)return;const A=t.forcedHeaders();if(A?.[E]&&!b&&_!==A[E])return;b&&t.endForcedHeaders();const P=I.get().attributes[E]??"";c=!0;try{Be(I,{[E]:_},{source:r(b)})}finally{c=!1}i[E]=_,Q(e,a.events.ON_HEADER_APPLIED_ID).fire({field:E,value:_,forced:!!b,isGenerated:_!==P&&!!_})};let i={},o,c=!1,l=Promise.resolve();const u=(E,g,_)=>{l=n.sendAsync(Nl[E],{value:g,guid:Ie(t)?.get().docId,..._?{force:!0,echo:!0}:{}}).catch(b=>{})};let d;e.inject(Nr,{whenDelivered:async()=>{await l},reassert:E=>{const g=Ie(t),_=xr.filter(b=>E[b]);if(!(!g||_.length===0)){c=!0;try{Be(g,Object.fromEntries(_.map(b=>[b,E[b]])),{source:"system"})}finally{c=!1}t.beginForcedHeaders({subject:E.subject??"",preheader:E.preheader??""}),clearTimeout(d),d=setTimeout(()=>t.endForcedHeaders(),Ll);for(const b of _)i[b]=E[b],u(b,E[b],!0)}}});const p=()=>{o?.(),o=void 0;const E=Ie(t);if(!E){i={};return}const g=E.get().attributes;i={subject:g.subject,preheader:g.preheader},o=E.subscribe(({source:_})=>{if(c)return;const b=E.get().attributes,I=t.forcedHeaders();for(const A of xr){const P=b[A];P!==i[A]&&(i[A]=P,u(A,P??"",_==="system"&&I?.[A]!==void 0))}})};p();const m=t.subscribe(p),v=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(()=>{v.dispose(),S.dispose(),m(),o?.(),clearTimeout(d)})}function Mr(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],i=e[r];Mr(s)&&Mr(i)?n[r]=Tt(i,s):s!==void 0&&(n[r]=s)}return n}function Ml(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 kl(){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 Bl(e){const{config:t}=e;return{operation:a.EVENT_TYPES.UPDATE_PREVIEW,theme:e.theme,commonStyles:Ml(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 jl(e){const t=Y(e),n=e.getInstance(a.CONFIG_SOURCE_ID),r=e.getInstance(a.OPTIONS_SOURCE_ID),s=se(e);let i,o="";const c=()=>{const _=n?.get()??{},b=Bl({config:_,emailCommonStyles:s.current()?.get().attributes?.common_styles,defaultCommonStyles:i,theme:Fl(),codeMode:kl(),appName:"emailmaker"}),I=JSON.stringify(b);I!==o&&(o=I,t.send(b))},l=t.onInit(()=>{o="",c()}),u=()=>{t.isInited()&&c()},d=n?.watch(u),p=r?.watch(_=>{i=_?.commonStyles,u()});let m;const v=()=>{m?.(),m=s.current()?.subscribe(u),u()};v();const S=s.subscribe(v),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,i,o=(c,l)=>c===l){if(s===i)return!0;if(s.length!==i.length)return!1;for(let c=0;c<s.length;c++)if(!o(s[c],i[c]))return!1;return!0}e.isEqual=t;function n(s,i=o=>o){const o=new Set;return s.filter(c=>{const l=i(c);return o.has(l)?!1:(o.add(l),!0)})}e.unique=n;function r(s=[],i=[],o=(c,l)=>c===l){const c=[],l=[],u=[];for(const d of s){const p=i.find(m=>o(d,m));p?u.push({prev:d,next:p}):l.push(d)}for(const d of i)s.find(p=>o(d,p))||c.push(d);return{added:c,removed:l,exists:u}}e.diff=r})(At||(At={}));function Ul(e,t){return e.type===t.type&&e.key===t.key}function Hl(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)}),i=a.getServiceContainerId(a.SANDBOX_EXTENSIONS_ID),o=e.onInject(c=>{if(c!==i)return;const l=n();if(!t.isInited()){r=l;return}const{added:u,removed:d}=At.diff(r,l,Ul);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(),o?.dispose()})}var $l=a.createIdentifier$1("prewarm.editorVisible");function Gl(e){if(typeof requestAnimationFrame!="function"){setTimeout(e,0);return}requestAnimationFrame(()=>requestAnimationFrame(e))}function Vl(e={}){const t=e.paint??Gl;let n=!1,r=!1,s=!1,i=!1,o=!1;const c=[],l=()=>{o||i||!n||!r||!s||(i=!0,t(()=>{o=!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(o){u();return}c.push(u)},contentShown:()=>s}}function Yl(e){return e.getOrCreateInstance($l,()=>Vl())}var zl=500,ql=500,Kl=5e3;function Wl(e){const t=e.quietMs??zl,n=e.floorMs??ql,r=e.ceilingMs??Kl;let s,i,o=0;const c=()=>{clearTimeout(s),clearTimeout(i),s=void 0,i=void 0},l=()=>{c(),e.run()},u=()=>{clearTimeout(s);const d=n-(Date.now()-o);s=setTimeout(l,Math.max(t,d))};return{start(){c(),o=Date.now(),i=setTimeout(l,r),u()},notify(){s!==void 0&&u()},cancel:c}}function Xl({attributes:e,readContent:t,docId:n,hasSession:r,serverId:s,show:i}){if(!r)return;const o={id:s??void 0,renderGuid:n,showId:i?.id,isNew:s==null,showToken:i?.token},c={...e,...o};return Object.defineProperty(c,"html",{get:()=>t()??"",enumerable:!0,configurable:!0}),c}var Fr="self-init:";function Jl(e){return e.startsWith(Fr)}function kr(e,t){const n=e.getActiveShowRequest();return Jl(t)?n===null:n?.showId===t&&e.hasPendingShow(t)}function Ql(e){const t=()=>e.initPipeline(),n=e.messageService,r=()=>e.waitScope?.()??t();let s="";const i=()=>e.readDocument()?_t(e.readDocument()):s,o=()=>ge(e.container).editorPolicy,c=()=>e.readEmail(),l=()=>{const u=c();return{...u,id:e.isTemplate()||u.isNew?void 0:u.id,html:i()}};return{readContent:i,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}=Ar(u?.html||"");p&&e.events.browserExtensionDetected(),Cr(e.readDocument(),d),s=d,await ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,bt(i(),u.renderGuid,o(),e.readDocument()?.get().version),{guid:u.renderGuid,emailId:u.id??null},r())},refreshContent:()=>ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,bt(i(),c().renderGuid,o(),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(!kr(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(i())}}}function Zl(e){const t=()=>e.initPipeline();let n=!1,r,s,i,o=0,c;const l=Ql({...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 b=o;setTimeout(()=>{o!==b||t().signal.aborted||S(g,_).catch(()=>{})},0)},p=()=>{c?.abort(),c=void 0};let m;const v=()=>{const g=t().signal;g!==m&&(m?.removeEventListener("abort",p),m=g,g.addEventListener("abort",p))};async function S(g,_){const b=++o;p(),c=new AbortController,v();const I=()=>o!==b,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?.()??i;T!==void 0&&(r=T)}await l.revealFilled()}catch(T){throw I()||(`${w}`,{...e.describeSurface?.(),error:String(T)},void 0),!I()&&kr(t(),g)&&t().failShow(g,T),T}finally{E(g,_,w,{superseded:I(),sessionGeneration:P,contentApplied:f,sandboxInitedAcked:y,commit:h()})}}function E(g,_,b,I){const{superseded:A,contentApplied:P,sandboxInitedAcked:h}=I;if(A){`${b}`;return}h&&I.commit?l.fireInit(g,_||void 0):h?(`${b}`,I.sessionGeneration,t().generation,t().signal.aborted,void 0):P?(`${b}`,void 0):(`${b}`,void 0),n=!1,c=void 0,!h&&s===g&&(s=void 0,r===i&&(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:()=>{o+=1},noteSandboxGeneration:g=>{i=g},fill:g=>S(g,!1),refill:g=>S(g,!0),stop:()=>{o+=1,p(),n=!1,m?.removeEventListener("abort",p),m=void 0}}}function ec(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:Br(e,n)}function Br(e,t){return t?e?.id==null?!1:String(e.id)===String(t):!0}function tc(e){const{pipeline:t,readEmail:n,readDocument:r,readRouteEmailId:s,readSandboxGeneration:i}=e,o=d=>{const p=n(),m=s();if(!ec(p,d,m)){d.showId,d.navId,d.emailId,p?.id,p?.showId,p?.renderGuid;return}d.showId,p?.id,p?.renderGuid,t.markFilled(i()),t.markCorrelation(d.showId),t.fill(d.showId).catch(()=>{})};return{showRequested:d=>{o(d)},showRequestIdentityChanged:()=>{const d=e.initPipeline().getActiveShowRequest();d&&o(d)},selfInitChanged:()=>{if(e.initPipeline().getActiveShowRequest())return;const d=i();if(t.filledGeneration()===d)return;const p=n(),m=s();if(!p?.renderGuid||!Br(p,m))return;const v=`${Fr}${p.renderGuid}`;t.markFilled(d),t.markCorrelation(v);const S=r()?.isReady()===!0;p.id,p.renderGuid,(S?E=>t.refill(E):E=>t.fill(E))(v).catch(()=>{t.lastCorrelation()===v&&t.markFilled(void 0)})},saasChanged:()=>{const d=n();d?.renderGuid,d?.showToken,d?.id}}}function nc(e){return e??""}function rc(e,t,n,r){return[e??"",t??"",n==null?"":String(n),r??""].join("|")}function sc(e){const t=se(e),n=Y(e),r=()=>ne(t.sessionKey())?void 0:t.current(),s=()=>{const C=r();return Xl({attributes:C?.get().attributes??{},readContent:()=>C?.getContent(),docId:C?.get().docId,hasSession:!!C,serverId:C?.get().serverId,show:t.showFacts()})},i=()=>e.getInstance(a.INIT_PIPELINE_ID)??yt;let o={},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 v=()=>{const C=oe(e);if(!C)return;const $=++m,B=C.spare();return B&&Cl(e,B.element),(B?B.reloadQuietly():C.ensureSpare()?.ready())?.then(()=>{if($!==m)return;u=!0;const Z=C.spare();Z&&Al(e,Z.element),p&&(p=!1,T(),G())})},S=Wl({run:()=>{p||v()?.catch(()=>{})}}),E=()=>{Yl(e).noteContentShown(),!u&&!p&&S.start()};let g=!1;const I=Zl({container:e,messageService:n,initPipeline:i,readDocument:r,readEmail:s,revealFilled:()=>{const C=oe(e);return g&&C&&(g=!1,S.start()),c?C?.current("email").whenShown()??Promise.resolve():Promise.resolve()},showFilled:C=>{const $=oe(e),B=$?.spare()?.element.contentWindow;d&&$&&B&&C===B&&(d=!1,$.promote(),$.busy(!1),g=!0)},readTarget:()=>n.getTarget(),isTemplate:()=>!!o.isTemplate,readSandboxGeneration:()=>ie(n),describeSurface:()=>({canvasPath:y,promoted:d,spareClean:u,handshake:n.isInited(),generation:ie(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=tc({pipeline:I,initPipeline:i,readEmail:s,readDocument:r,readRouteEmailId:()=>o.emailId,readSandboxGeneration:()=>ie(n)});let P="",h="",w="";const f=C=>C.length>0;let y="none";const T=()=>{const C=oe(e)?.spare();C&&(n.send({operation:a.EVENT_TYPES.SANDBOX_LOCK_EDIT,data:!0}),u=!1,d=!0,Tl(e,C.element))},O=(C,$)=>{const B=oe(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=v();if(fe===void 0)return y="reload",B.busy(!1),B.peek("email")?.reload(),!0;p=!0;const pn=m;return fe.catch(()=>{!p||pn!==m||(p=!1,y="reload",B.busy(!1),B.peek("email")?.reload())}),!1},x=()=>{de(),I.noteSandboxGeneration(ie(n));const C=s(),$=rc(C?.renderGuid,C?.showId,C?.id,o.emailId),B=nc(C?.renderGuid);if(B!==h){const fe=f(h),pn=h;h=B,fe&&O(pn,B)}if(p)return;$!==P&&(P=$,A.showRequestIdentityChanged());const Z=r(),ue=`${$}|${Z?.get().docId??""}|${ie(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:o.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===o.emailId&&!!C.isTemplate==!!o.isTemplate||(o=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()}),Mp=t.subscribe(k),Fp=_r(n,G);k(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{l?.dispose(),V?.(),Fp(),Mp(),ae?.(),tt.dispose(),S.cancel(),I.stop()})}function ic(){return a.USEBLOCKS!=="emailmaker"}var jr={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},Ur={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=Ur,oc=["pro"],$r={};function ac(e){$r=e}var Gr=e=>oc.includes(e)?Hr:$r[e]??Hr,Ct={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={...Ct,config:{...Ct.config,imageCenterFileManagerView:!1}};ac({pro:Ur,editor:lc,simple:ic()?Ct:cc,freeUserBlocks:jr,blocks:jr});var Vr=new Set;function dc(){return window.localStorage.getItem(a.LOCAL_STORAGE_ITEMS.em_color_scheme)??void 0}function uc(e){return Vr.add(e),e(dc()),{dispose(){Vr.delete(e)}}}function Pt(e,t){return e.user.mode||e.serverSide.mode||t||"pro"}function fc(e,t){return t.modeDefaults(Pt(e,t.fallbackMode))}function pc(e,t){const n=Pt(e,t);return e.serverSide.advancedConfigs?.[n]||{}}function mc(e,t){const n=Pt(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 vc(e){return a.mergeBackendProxyLayers(e.map(t=>t?.backendProxy))}function _c(e){return a.mergeShallowConfigLayers(e.map(t=>t?.backendProxyPolicy||{}).filter(Boolean))}function bc(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 Dt(e,t){const n=bc(e,t),r=a.mergeShallowConfigLayers(n),s=hc(n);s!==void 0&&(r.fileManager=s);const i=gc(n);i!==void 0&&(r.resourceProxy=i);const o=Ec(n);o&&Object.keys(o).length>0&&(r.resourceProxyPolicy=o);const c=vc(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 Yr(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 i={kind:"pending"},o;const c=new Promise(m=>{o=m}),l=n===void 0?void 0:setTimeout(()=>{d({kind:"absent",reason:`серверный слой не пришёл за ${n} мс`})},n);function u(){i.kind!=="pending"&&s.set(Dt(r,e))}function d(m){if(i.kind!=="pending")return;clearTimeout(l),i=m;const v=Dt(r,e);s.set(v),o(v)}function p(m,v){r[Yr(m)]=v,m==="server"&&i.kind==="pending"?d({kind:"applied"}):u()}return{watch:m=>s.watch(m),select:m=>s.select(m),get:()=>s.get(),ready:()=>c,state:()=>i,layers:()=>({...r}),bootstrap(){const m=Dt(r,e);return Object.fromEntries(yc.map(v=>[v,m[v]]))},merge(m,v){p(v,{...r[Yr(v)],...m})},replace(m,v){p(v,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){i.kind==="pending"&&p("server",{...r.serverSide,...m})},dispose(){clearTimeout(l)}}}var Ic=5e3,Kp="pro";function wc(){return{...Gr("pro")?.config,mergeTags:void 0}}function Tc(e,t){e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(n=>{t.setAdvancedConfigs({...n.advancedConfigs,...n.config?.advancedConfigs}),t.replace(n.config??{},"user")})}function Ac(e,t){let n;lr(e).watch(({profile:r})=>{const s=`${r?.theme??""}|${r?.locale??""}`;if(s===n)return;n=s;const i={};r?.theme&&(i.theme=r.theme),r?.locale&&(i.locale=r.locale),t.replace(i,"profile")})}function Cc(e,t){let n=null;const r=uc(s=>{const i=typeof s=="string"&&s?s:void 0;i!==n&&(n=i,t.replace(i?{theme:i}:{},"local"))});e.getInstance(a.DISPOSABLE_ID)?.addDisposable(r)}async function Pc(e,t){if(e.getInstance(it)===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 Dc(e){e.injectFactory(a.CONFIG_SOURCE_ID,(t,n)=>{if(n)return n;const r=Sc({base:wc(),env:{modeDefaults:s=>Gr(s)?.config||{},fallbackMode:localStorage.getItem("configSwither")||void 0},budgetMs:Ic});return Tc(e,r),Ac(e,r),Cc(e,r),Pc(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,i,o)=>{const c=r(async l=>{const u=t?t(l):l;o&&s.bind(o);const d=await s(u);return n?n(d):d},i,o);return()=>c.dispose()}}var Rc=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{}}},Rt=a.createIdentifier$1("DestroyableService");function Oc(e){e.injectFactory(Rt,()=>{const t=e.getInstance(a.DISPOSABLE_ID);if(!t)throw new Error("[plugin] время жизни экземпляра не зарегистрировано");return new Rc({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 Lc(e){const t=e.getInstance(Rt);if(!t)throw new Error("[plugin] provideDestroyable не выполнен до сборки поверхности");return{handleDestroy:t.handleDestroy,destroy:()=>t.destroy()}}var Nc=1e3;function zr(e,t,n=Nc,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),i=Object.keys(t);if(s.length!==i.length)return!1;for(const o of s)if(!zr(e[o],t[o],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],i=e[r];zr(s,i)||(n[r]=s)}return n}var xc=class extends Error{timeoutMs;constructor(e){super(`[emailmaker] handleSaveEmail не ответил за ${e}ms — письмо не сохранено`),this.timeoutMs=e,this.name="IntegratorSaveTimeoutError"}},Mc=({source:e,emailtags:t,group:n,tags:r,...s})=>s,Fc=()=>Nn();async function kc({emails:e},t){const n=Fc();let r;try{return await Promise.race([e.notifySave(t),new Promise((s,i)=>{r=setTimeout(()=>{const o=new xc(n);t.value.id,i(o)},n)})])}finally{r!==void 0&&clearTimeout(r)}}function Bc(e){const{emails:t}=e,n=async(r,s)=>{const i=Mc(s),o=r===void 0?void 0:await t.cache.getIfPresent(r),c=o?{...o,...i}:i,l=await kc(e,{prev:o,patch:o?Te(o,i):i,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 Ot=20,jc=({source:e,emailtags:t,group:n,tags:r,...s})=>s;function Uc({revisions:e,revisionsByEmail:t}){const n=async(r,s)=>(t.clear(),await t.get(r,{page:s}),(await e.cache.values()??[]).filter(i=>String(i?.parent)===String(r)));return{async readRevisions(r,s=1){const i=await n(r,s);return{revisions:i.slice(Ot*(s-1),Ot*s),page:s,hasMore:i.length>Ot*s}},async readAutosave(r){return po(await n(r,1))},async saveAutosave(r,s){const i=jc(s);return await e.create({...i,parent:r,modified:new Date().toString()})}}}var Hc=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}},$c=class extends a.AsyncEmitter{};function Wp(e){return e}var qr=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,i])=>s)),r=(await this.entries()).filter(([s,i])=>!n.has(s));for(const[s,i]of e)t.push(this.addOrUpdate(s,()=>i)),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 Gc(e,{filter:t,order:n="asc",orderBy:r,page:s,pageSize:i=20}={}){const o=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(i*(s-1),i*s)),{data:e,filteredTotal:c,total:o,totalPages:Math.ceil(c/i)}}function Vc(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 Yc(e,t){return Kr(e)&&Kr(t)?String(e)===String(t):e===t}function Kr(e){return typeof e=="string"||typeof e=="number"}var zc=class extends a.Disposable{_cache=new qr;_readEmitter=new a.AsyncEmitter;_saveEmitter=this.addDisposable(new Hc);_removeEmitter=this.addDisposable(new $c);_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 qr),s=n.addDisposable(new a.AsyncEmitter);t=this._foreignCache[e]={get:async(i,o={})=>{await r.getOrCreate(i,async()=>{try{const l=Vc(await s.fire(i))||[];for(const u of l)u[e]=i,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||Yc(u,i)});return Gc(c,o)},first(i,o={}){return t.get(i,{...o,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 i=s?{...s,...t}:t;if(!r)return t=s?Te(s,t):t,await this._saveEmitter.fire({prev:s,patch:t,value:i,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 zc)}function qc(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 Kc(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 Wc(e){const t=Xr(e),n=Jr(e),r=n.byForeignKey("parent");return e.getInstance(Qr)?{emails:t,emailRevisions:n}:(e.inject(Qr,!0),No(e,Bc({emails:t})),ko(e,Uc({revisions:n,revisionsByEmail:r})),qc(e).addDisposable(t.onSave(({prev:s,patch:i,value:o})=>Kc(s,i,o),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 Xc(e){try{return localStorage.getItem(e)===null?!1:(localStorage.removeItem(e),!0)}catch{return!1}}var Jc="po",Ve=null;function Qc(){const e=typeof __emailmaker__<"u"?__emailmaker__?.require:void 0;return typeof e!="function"?Promise.reject(new Error("[loadPoParser] AMD loader is unavailable")):new Promise((t,n)=>{e([Jc],r=>t(r),r=>n(r instanceof Error?r:new Error("[loadPoParser] Failed to require po module")))})}function Zc(){return Ve===null&&(Ve=Qc().catch(e=>{throw Ve=null,e})),Ve}async function es(e){if(typeof e=="object")return Lt(e);if(typeof e!="string")return;const t=e.trim();if(t)return t.startsWith("{")||t.startsWith("[")?ed(t):td(t)}function Lt(e){if(!(e==null||typeof e!="object"||Array.isArray(e)))return e}function ed(e){try{return Lt(JSON.parse(e))}catch{return}}var ts=!1;async function td(e){try{return Lt((await Zc()).parsePoCatalog(e))}catch{ts||(ts=!0);return}}var nd="em_locale",rd="em_ant_locale",sd="locale",id="ant_locale";function Nt(e){try{return JSON.parse(localStorage.getItem(e)||"")}catch{return null}}function ns(e,t){const n=Nt(e);if(!n)return null;try{localStorage.removeItem(e),localStorage.setItem(t,JSON.stringify(n))}catch{}return n}function od(){return Nt("em_locale")??ns(sd,"em_locale")}function rs(e){try{localStorage.setItem(nd,JSON.stringify(e))}catch{}}function ad(){return Nt("em_ant_locale")??ns(id,"em_ant_locale")}function ld(e,t){try{localStorage.setItem(rd,JSON.stringify({id:e,data:t}))}catch{}}var Xp="en_US",cd=8e3;function dd(e,t){const n=e,r=t,s=Object.keys(n).filter(i=>i!=="");return s.length!==Object.keys(r).filter(i=>i!=="").length?!1:s.every(i=>JSON.stringify(n[i])===JSON.stringify(r[i]))}function ud(e){const t=od(),n=ad();let r={ready:!1},s;const i=pe(r);let o=0;const c=g=>{r={...r,...g},i.set(r)},l=()=>{r.ready||c({ready:!0})},u=setTimeout(l,e.unlockAfterMs??cd),d=g=>g!==o;let p;async function m(g,_){if(n?.id===g&&n.data&&c({antd:n.data}),!p)return;const b=await p(g).catch(()=>{});!b||d(_)||(c({antd:b}),ld(g,b))}async function v(g,_){const b=await e.askHost(g).catch(()=>null);if(d(_))return!0;if(b==null)return!1;const I=await es(b);return d(_)||(I&&c({catalog:I}),l()),!0}async function S(g,_){const b=await e.readList();if(d(_))return;if("error"in b){c({failure:{kind:"GET_LOCALES_ERROR",error:b.error}}),l();return}const I=b.data.find(P=>P.locale===g);if(!I){Xc("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(_)){if("error"in A){c({failure:{kind:"GET_LOCALE_ERROR",error:A.error}}),l();return}A.data&&(s?.id===g&&r.catalog===s.catalog&&dd(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,_){if(!await v(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 _=o+=1;c({id:g,failure:void 0});const b=s?.id===g&&r.catalog===s.catalog;(s&&!b&&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,_,b){r.id||r.catalog||!_||(s=t?.id===g&&t.data&&(!b||t.time>=b.time)?{id:g,catalog:t.data}:{id:g,catalog:_,entry:b?{id:g,time:b.time,hash:b.hash,data:_}:void 0},c({catalog:s.catalog}))},useAntdLoader(g){p=g,r.id&&m(r.id,o)},state:i,snapshot:()=>r,dispose:()=>clearTimeout(u)}}var fd=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})},pd=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:i,baseUrl:o,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"],v=i||d.format;return this.customFetch(`${o||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=v?S.clone():S,_=v?await g[v]().then(b=>(E.ok?E.data=b:E.error=b,E)).catch(b=>(E.error=b,E)):E;return c&&this.abortControllers.delete(c),_})}},md=a.createIdentifier$1("rest.v2.transport"),ss=Symbol("rest.v2.secureRequest");function hd(e){return e.getOrCreateInstance(md,()=>{const t=e.getInstance(a.CUSTOM_FETCH_ID)?.execute||fetch;return new pd({baseUrl:"https://app.emailmaker.ru/api/v2",securityWorker:()=>({[ss]:!0}),customFetch:(n,r={})=>{const{[ss]:s,...i}=r;return t(n,{...i,[a.PUBLIC_REQUEST]:s!==!0})}})})}function gd(e,t){const n=hd(e);return Object.assign({},...t.map(r=>new r(n)))}function is(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:is(n.details,"wp_code")??n.code,message:is(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 Ed(e){try{const t=localStorage.getItem(e);if(t==="true")return!0;if(t==="false")return!1}catch{}}function ls(){return Ed(a.LOCAL_STORAGE_ITEMS.em_translations_v2)??!0}function vd(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function _d(e){const t=e?Date.parse(e):NaN;return Number.isNaN(t)?0:Math.floor(t/1e3)}function bd(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:vd(r[1])}),t},[]):[]}function yd(e){return(e?.items??[]).reduce((t,n)=>(n.locale&&t.push({locale:n.locale,updatedAt:_d(n.updated_at),contentHash:n.content_hash}),t),[])}function cs(e){return gd(e,[fd])}function Ye(e){return{error:{status:"FETCH_ERROR",error:e instanceof Error?e.message:"locale request failed"}}}function xt(e){return!e.ok||e.error!=null}function Mt(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 Sd(e){if(ls())try{const n=await cs(e).localesList();return as(n)?{error:os(n)}:{data:yd(n.data)}}catch(n){return Ye(n)}const t=a.getApi(e,[wn]);try{const n=await t.get_translations2({file:"react_app"});return xt(n)?Mt(n):{data:bd(n.data)}}catch(n){return Ye(n)}}async function Id(e,t){if(ls())try{const r=await cs(e).jsonList({locale:t});return as(r)?{error:os(r)}:Ft(r.data)}catch(r){return Ye(r)}const n=a.getApi(e,[wn]);try{const r=await n.get_translations3({id:t,file:"react_app"});return xt(r)?Mt(r):Ft(r.data)}catch{try{const r=await n.get_translations3({id:"en_US",file:"react_app"});return xt(r)?Mt(r):Ft(r.data)}catch(r){return Ye(r)}}}var Ce=a.createIdentifier$1("locale.service");function wd(e){if(e.getInstance(Ce))return;const t=ud({readList:()=>Sd(e),readCatalog:n=>Id(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 Td(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 Ad="user_id",Cd="project_id",ds=a.createIdentifier$1("rest.identityHeadersProvided");function Pd(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??cr(e).profile?.id;s!=null&&s!==""&&n.headers.set(Ad,String(s));const i=t?.project;i!=null&&i!==""&&n.headers.set(Cd,String(i))}})}function Dd(e){if(!e)return!1;try{return e.getInstance(a.SECURITY_MODULE_ID)!==void 0}catch{return!1}}var Rd="Invalid standaloneKey.",Jp=a.createIdentifier$1("StandaloneMockGuard");function Od(){const e=new Error(Rd);return e.name="InvalidStandaloneKeyError",e}function Ld(e){e.addService(a.REQUEST_HANDLER_ID,{execute:()=>{if(Dd(e))throw Od()}})}function Nd(e){a.registerRestTransport(e),Ld(e)}function xd(e){const t=new Dr;e.inject(a.INIT_PIPELINE_ID,t);let n;const r=e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(i=>{i&&(i.signal!==void 0&&(n=i.signal),t.configure({replaceSession:!0,...i.timeouts!==void 0?{timeouts:i.timeouts}:{},...n!==void 0?{signal:n}:{}}))}),s=e.getInstance(a.DISPOSABLE_ID);r&&s?.addDisposable(r),s?.addDispose(()=>{t.abort()})}var Md=Ae("plugin.dataSource.blocks"),Fd=Ae("plugin.dataSource.blockRevisions"),kd=Ae("plugin.dataSource.comments"),Bd=Pr(),jd=Pr(),us=`<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2085
+ `));return{html:za(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 bt(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(`[emailmaker] 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}},Ka=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 i=setTimeout(()=>{this._settle(e.showId,()=>{s(new qa(e.showId,t))})},t);i.unref?.();const o=()=>{this._settle(e.showId,()=>{s(a.createAbortError(n.reason))})};n.addEventListener("abort",o,{once:!0});const c=()=>{clearTimeout(i),n.removeEventListener("abort",o)};this._pending.set(e.showId,{request:e,resolve:r,reject:s,timeoutId:i,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 Wa(e,t){return{contentReady:t.contentReady??e?.contentReady,sandboxReady:t.sandboxReady??e?.sandboxReady,sandbox:t.sandbox?{...e?.sandbox,...t.sandbox}:e?.sandbox}}function Xa(e){if(!e||!(e.contentReady!==void 0||e.sandboxReady!==void 0||e.sandbox!==void 0))return;const t=Ln(e),n=Nn(e),r=Gi(e.sandbox);t<n+r}var Rr=class{_controller=new AbortController;_externalSignalDisposable=new a.Disposable;_sessionChangeListeners=new Set;_showRegistry=new Ka;_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=Wa(this._timeouts,e.timeouts),Xa(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})(),Ja=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 Qa(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 Za(e,t,n){return e.isInited()&&e.getTarget()?Promise.resolve():(a.throwIfAborted(n),new Promise((r,s)=>{let i=!1,o,c;const l=d=>{i||(i=!0,o!==void 0&&(clearTimeout(o),o=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&&(o=setTimeout(()=>{l(()=>s(new Ja(t)))},t)),n?.addEventListener("abort",u)}))}var el=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 tl(e,t,n){return t<=0?e:new Promise((r,s)=>{let i=!1,o;const c=l=>{i||(i=!0,o!==void 0&&(clearTimeout(o),o=void 0),l())};o=setTimeout(()=>{c(()=>s(new el(n,t)))},t),e.then(l=>{c(()=>r(l))},l=>{c(()=>s(l))})})}var nl=2,$e=Symbol("sandbox:frame-replaced");function ee(e,t,n,r,s,i,o){const c=`sandbox:${t}`,l=i?.getSandboxTimeoutMs(t)??lt[t],u=()=>{let S=tl(e.sendAsync(n,r),l,c);return S=a.raceWithAbortSignal(S,i?.signal),we(c,S,s)};if(t==="INIT_START"&&Qa(e)){const S=i?.getSandboxReadyTimeoutMs()??2e4,E=e,g=_=>{const b=Za(E,S,i?.signal);return we("sandbox:INIT_START:ready-wait",b,s).then(()=>{if(!o||_<=0)return u();const I=o.getGeneration();let A;const P=new Promise((w,f)=>{A=o.onChange(()=>{o.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(nl)}if(!o)return u();const d=o.getGeneration();let p;const m=new Promise((S,E)=>{p=o.onChange(()=>{o.getGeneration()!==d&&E($e)})}),v=u();return v.catch(()=>{}),Promise.race([v,m]).finally(()=>p?.()).catch(S=>{throw S===$e&&{...s},S})}var rl=[["brace-percent",/<!--\{%/],["brace-hash",/<!--\{#/],["proscript",/<!--\[%/],["getresponse",/<!--\[\[(?:if|else\]\]|endif\]\])/i],["mailchimp",/<!--\*\|/],["expert-sender",/<!--<\/?(?:if|else|var)/i]],sl=200;function il(e=new Set){const t=new Set;return(n,r)=>{if(!rl.some(([i,o])=>!e.has(i)&&o.test(n)))return;const s=r??`new:${n.length}:${n.slice(0,200)}`;t.has(s)||(t.size>=sl&&t.clear(),t.add(s))}}function ol(){return{isConfigured:()=>!1,toEditorForm:e=>e,toOutputForm:e=>e,keepWrappedOnOutput:new Set,editorPolicy:{},warnAboutUnconfiguredInput:il()}}var al=ol();function ge(e){return e?.getInstance(a.TEMPLATE_DIRECTIVES_ID)??al}function ll(e){const t=se(e),n=Y(e),r=()=>e.getInstance(a.INIT_PIPELINE_ID)??yt;let s,i,o=!1,c=!1;const l=async(b,I,A)=>{const P=A.generation,h=()=>A.generation!==P||A.signal.aborted||t.current()!==b||c,w=ie(n);o=!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(b));if(y&&Q(e,a.events.ON_BROWSER_EXTENSION_DETECTED_ID).fire(),Pr(b,f),await ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,bt(_t(b),I,ge(e).editorPolicy,b.get().version),void 0,A),h())return;await ee(n,"INITED",a.EVENT_TYPES.SANDBOX_INITED,{guid:I},void 0,A),s=I,i=w}finally{o=!1}},u=()=>ne(t.sessionKey())?t.current():void 0,d=()=>{if(c||o)return;const b=u(),I=b?.get().docId;if(!b||!I||s===I&&i===ie(n)||!b.isReady())return;const A=r();A.signal.aborted||l(b,I,A).catch(()=>{})};let p=!1;const m=()=>{p||c||(p=!0,queueMicrotask(()=>{p=!1,d()}))};let v,S;const E=()=>{const b=u(),I=b?.get().docId;I!==S&&(v?.(),S=I,v=b?.subscribe(m)),m()},g=t.subscribe(E),_=br(n,m);E(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{c=!0,_(),v?.(),g()})}var cl=200;function dl({startVersion:e,limit:t=cl}){let n=[],r=e;const s=i=>{n=n.filter(o=>o.version>i),r=Math.max(r,i)};return{record(i){!i.changes?.length&&!i.contentReplaced||(n.push(i),n.length>t&&s(n[n.length-t-1].version))},rebase(i,o){if(o<r)return null;const c=n.filter(u=>u.version>o);s(o);let l=i;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 v=eo(m.range,d,"after");if(!v)return null;p.push({range:v,text:m.text})}l=p}return l}}}function ul(e,t){let n=0;return e.map(({start:r,end:s,text:i})=>{const o=new J(r,t.slice(r,s),r+n,i);return n+=i.length-(s-r),o})}function fl(e,t){const n=[...e].sort((r,s)=>r.range.start-s.range.start);return ul(n.map(({range:r,text:s})=>({start:r.start,end:r.end,text:s})),t)}function pl(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 ml(e){const t=se(e),n=Y(e);let r;const s=(l,u)=>{const d=l.get().docId;let p=!1,m=null,v=null;const S=dl({startVersion:l.get().version});let E=l.getContent();const g=async(P,h)=>{if(v){v.push({edits:P,rev:h});return}v=[{edits:P,rev:h}];try{do{const w=v.splice(0,v.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(v.length)}finally{v=null}},_=(P,h)=>{const w=v?.splice(0,v.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)},b=P=>{const{guid:h,pushUndoStop:w}=P;if(h!==d)return;const f=fo(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=fl(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=pl(P);p?_(y,m):g(y,h).catch(It)}),A=n.addListener(a.EVENT_TYPES.APPLICATION_UPDATE_ENTITY,b);return()=>{I(),A.dispose()}};let i;const o=()=>{const l=t.current(),u=t.history(),d=l?.get().docId;d!==i&&(r?.(),r=void 0,i=d,l&&u&&(r=s(l,u)))},c=t.subscribe(o);o(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r?.(),c()})}var hl=300,gl=15e3,Lr="em-canvas-busy-style";function El(){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 vl(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(){El(),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 _l=8e3;function bl(){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 yl=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 Sl(e,t,n,r,s){const i=n.readyTimeoutMs??_l,o=document.createElement("div");o.dataset.canvasHost=e,r&&(o.dataset.canvasPlace=r),o.style.position="fixed",o.style.overflow="hidden",o.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,o.appendChild(l),t.appendChild(o),n.mark?.("created"),s||n.onCreated?.(l);const u=new a.Disposable;let d=!1,p=!1,m,v,S,E;const g=()=>{clearTimeout(E),E=setTimeout(()=>{p||(p=!0,v?.(new Error(`[canvas] ${e}: документ не загрузился за ${i} мс`)))},i)},_=()=>d?(S=Promise.resolve(),p=!0,S):(p=!1,S=new Promise((L,k)=>{m=L,v=k}),g(),S),b=()=>{if(clearTimeout(E),d=!0,p){S=Promise.resolve();return}p=!0,n.mark?.("loaded"),m?.()};l.addEventListener("load",b),u.addDispose(()=>{clearTimeout(E),l.removeEventListener("load",b)});let I;const A=()=>{I??=n.bindResizer?.(l)};let P=null,h=null,w;const f=()=>{if(!P){o.style.visibility="hidden",l.removeAttribute("id");return}n.elementId&&(l.id=n.elementId);const L=P.getBoundingClientRect(),k=h?.isConnected?h:yl(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);o.style.visibility=tt>0?"visible":"hidden",o.style.left=`${L.left}px`,o.style.top=`${V}px`,o.style.width=`${L.width}px`,o.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,o.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(),o.remove()}}}function Il(e){const t=new Map;let n="a";const r=()=>n==="a"?"b":"a",s=(d,p)=>d==="email"?`email:${p??n}`:d;let i,o=[];const c=()=>{o.forEach(d=>clearTimeout(d)),o=[],i?.remove(),i=void 0},l=new Map,u=(d,p,m)=>{const v=s(d,p),S=t.get(v);if(S)return S;const E=e.resolveMount();if(!E)return bl();const g=Sl(d,E,e,d==="email"?p??n:void 0,m);return t.set(v,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=vl(p);i=m,o=[setTimeout(()=>m.showSpinner(),hl),setTimeout(c,gl)]},dispose(){c(),t.forEach(d=>d.dispose()),t.clear(),l.clear(),n="a"}}}var wl=a.createIdentifier$1("canvas.resizerBinder"),wt=a.createIdentifier$1("canvas.service"),Tl={created:z.canvasCreated,loaded:z.canvasLoaded};function Al(e,t){if(e.getInstance(wt))return;const n=Il({resolveMount:()=>t.resolveMount(),resolveSrc:s=>t.resolveSrc(s),resolveSandbox:Aa,elementId:t.elementId,bindResizer:s=>e.getInstance(wl)?.(s),onCreated:s=>Ge(e,s,"fresh"),onReload:s=>Ge(e,s,"fresh"),onShown:s=>Ge(e,s,"switch"),mark:s=>t.mark?.(Tl[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 i=r.getTarget()===s;i&&n==="switch"||(n==="fresh"&&(r.forget(s),i&&r.setTarget(void 0)),r.setTarget(s),ca(r))}function Cl(e,t){Ge(e,t,"promote")}function Pl(e,t){const n=t.contentWindow;n&&Y(e).greet(n)}function Dl(e,t){const n=t.contentWindow;n&&Y(e).forget(n)}function oe(e){return e.getInstance(wt)}function Rl(e){const t=Y(e),n=()=>oe(e)?.byWindow(t.getTarget()),r=t.addListenerAsync(a.EVENT_TYPES.RELOAD,async()=>{await n()?.reload()}),s=t.addListener(o=>{o.data?.operation===a.EVENT_TYPES.SANDBOX_RESIZED&&n()?.resize()}),i=H(e,a.events.ON_EMAIL_INIT_ID)(()=>{n()?.resize()});e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r.dispose(),s.dispose(),i.dispose()})}var Wp=a.createIdentifier$1("HeadlessMode"),Ol=a.createIdentifier$1("HiddenMount");function Ll(e){return e.getOrCreateInstance(Ol,()=>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 Nl(e){const t=e.getInstance(a.OPTIONS_SOURCE_ID);let n,r;e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{r?.remove(),r=void 0}),Al(e,{resolveMount:()=>n,resolveSrc:i=>Ir(i==="block"),elementId:"email_iframe",mark:i=>j(i)}),t?.watch(i=>{if(n)return;const o=i?.element;if(o instanceof HTMLElement)n=o;else if(i!==void 0)n=r??=Nr();else return;oe(e)?.get("email")});let s;e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{s?.remove(),s=void 0}),Ll(e).watch(i=>{const o=oe(e);if(o){if(i){s??=Nr(),o.alignSurface("email",s,s);return}s&&(o.alignSurface("email",null),s.remove(),s=void 0)}})}var xr=a.createIdentifier$1("canvas.headerFlow"),Mr=["subject","preheader"],xl=3e3,Ml={subject:a.EVENT_TYPES.SANDBOX_SUBJECT_UPDATE,preheader:a.EVENT_TYPES.SANDBOX_PREHEADER_UPDATE};function Fl(e){const t=se(e),n=Y(e),r=E=>E?"remote":Or(e)?"system":"user",s=(E,{guid:g,value:_,forced:b})=>{const I=Ie(t);if(!I||typeof _!="string"||g&&g!==I.get().docId)return;const A=t.forcedHeaders();if(A?.[E]&&!b&&_!==A[E])return;b&&t.endForcedHeaders();const P=I.get().attributes[E]??"";c=!0;try{Be(I,{[E]:_},{source:r(b)})}finally{c=!1}i[E]=_,Q(e,a.events.ON_HEADER_APPLIED_ID).fire({field:E,value:_,forced:!!b,isGenerated:_!==P&&!!_})};let i={},o,c=!1,l=Promise.resolve();const u=(E,g,_)=>{l=n.sendAsync(Ml[E],{value:g,guid:Ie(t)?.get().docId,..._?{force:!0,echo:!0}:{}}).catch(b=>{})};let d;e.inject(xr,{whenDelivered:async()=>{await l},reassert:E=>{const g=Ie(t),_=Mr.filter(b=>E[b]);if(!(!g||_.length===0)){c=!0;try{Be(g,Object.fromEntries(_.map(b=>[b,E[b]])),{source:"system"})}finally{c=!1}t.beginForcedHeaders({subject:E.subject??"",preheader:E.preheader??""}),clearTimeout(d),d=setTimeout(()=>t.endForcedHeaders(),xl);for(const b of _)i[b]=E[b],u(b,E[b],!0)}}});const p=()=>{o?.(),o=void 0;const E=Ie(t);if(!E){i={};return}const g=E.get().attributes;i={subject:g.subject,preheader:g.preheader},o=E.subscribe(({source:_})=>{if(c)return;const b=E.get().attributes,I=t.forcedHeaders();for(const A of Mr){const P=b[A];P!==i[A]&&(i[A]=P,u(A,P??"",_==="system"&&I?.[A]!==void 0))}})};p();const m=t.subscribe(p),v=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(()=>{v.dispose(),S.dispose(),m(),o?.(),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],i=e[r];Fr(s)&&Fr(i)?n[r]=Tt(i,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 Bl(){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 jl(){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 Ul(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 Hl(e){const t=Y(e),n=e.getInstance(a.CONFIG_SOURCE_ID),r=e.getInstance(a.OPTIONS_SOURCE_ID),s=se(e);let i,o="";const c=()=>{const _=n?.get()??{},b=Ul({config:_,emailCommonStyles:s.current()?.get().attributes?.common_styles,defaultCommonStyles:i,theme:Bl(),codeMode:jl(),appName:"emailmaker"}),I=JSON.stringify(b);I!==o&&(o=I,t.send(b))},l=t.onInit(()=>{o="",c()}),u=()=>{t.isInited()&&c()},d=n?.watch(u),p=r?.watch(_=>{i=_?.commonStyles,u()});let m;const v=()=>{m?.(),m=s.current()?.subscribe(u),u()};v();const S=s.subscribe(v),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,i,o=(c,l)=>c===l){if(s===i)return!0;if(s.length!==i.length)return!1;for(let c=0;c<s.length;c++)if(!o(s[c],i[c]))return!1;return!0}e.isEqual=t;function n(s,i=o=>o){const o=new Set;return s.filter(c=>{const l=i(c);return o.has(l)?!1:(o.add(l),!0)})}e.unique=n;function r(s=[],i=[],o=(c,l)=>c===l){const c=[],l=[],u=[];for(const d of s){const p=i.find(m=>o(d,m));p?u.push({prev:d,next:p}):l.push(d)}for(const d of i)s.find(p=>o(d,p))||c.push(d);return{added:c,removed:l,exists:u}}e.diff=r})(At||(At={}));function $l(e,t){return e.type===t.type&&e.key===t.key}function Gl(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)}),i=a.getServiceContainerId(a.SANDBOX_EXTENSIONS_ID),o=e.onInject(c=>{if(c!==i)return;const l=n();if(!t.isInited()){r=l;return}const{added:u,removed:d}=At.diff(r,l,$l);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(),o?.dispose()})}var Vl=a.createIdentifier$1("prewarm.editorVisible");function Yl(e){if(typeof requestAnimationFrame!="function"){setTimeout(e,0);return}requestAnimationFrame(()=>requestAnimationFrame(e))}function zl(e={}){const t=e.paint??Yl;let n=!1,r=!1,s=!1,i=!1,o=!1;const c=[],l=()=>{o||i||!n||!r||!s||(i=!0,t(()=>{o=!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(o){u();return}c.push(u)},contentShown:()=>s}}function ql(e){return e.getOrCreateInstance(Vl,()=>zl())}var Kl=500,Wl=500,Xl=5e3;function Jl(e){const t=e.quietMs??Kl,n=e.floorMs??Wl,r=e.ceilingMs??Xl;let s,i,o=0;const c=()=>{clearTimeout(s),clearTimeout(i),s=void 0,i=void 0},l=()=>{c(),e.run()},u=()=>{clearTimeout(s);const d=n-(Date.now()-o);s=setTimeout(l,Math.max(t,d))};return{start(){c(),o=Date.now(),i=setTimeout(l,r),u()},notify(){s!==void 0&&u()},cancel:c}}function Ql({attributes:e,readContent:t,docId:n,hasSession:r,serverId:s,show:i}){if(!r)return;const o={id:s??void 0,renderGuid:n,showId:i?.id,isNew:s==null,showToken:i?.token},c={...e,...o};return Object.defineProperty(c,"html",{get:()=>t()??"",enumerable:!0,configurable:!0}),c}var kr="self-init:";function Zl(e){return e.startsWith(kr)}function Br(e,t){const n=e.getActiveShowRequest();return Zl(t)?n===null:n?.showId===t&&e.hasPendingShow(t)}function ec(e){const t=()=>e.initPipeline(),n=e.messageService,r=()=>e.waitScope?.()??t();let s="";const i=()=>e.readDocument()?_t(e.readDocument()):s,o=()=>ge(e.container).editorPolicy,c=()=>e.readEmail(),l=()=>{const u=c();return{...u,id:e.isTemplate()||u.isNew?void 0:u.id,html:i()}};return{readContent:i,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,bt(i(),u.renderGuid,o(),e.readDocument()?.get().version),{guid:u.renderGuid,emailId:u.id??null},r())},refreshContent:()=>ee(n,"SET_ENTITY",a.EVENT_TYPES.SANDBOX_SET_ENTITY,bt(i(),c().renderGuid,o(),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(i())}}}function tc(e){const t=()=>e.initPipeline();let n=!1,r,s,i,o=0,c;const l=ec({...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 b=o;setTimeout(()=>{o!==b||t().signal.aborted||S(g,_).catch(()=>{})},0)},p=()=>{c?.abort(),c=void 0};let m;const v=()=>{const g=t().signal;g!==m&&(m?.removeEventListener("abort",p),m=g,g.addEventListener("abort",p))};async function S(g,_){const b=++o;p(),c=new AbortController,v();const I=()=>o!==b,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?.()??i;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,_,b,I){const{superseded:A,contentApplied:P,sandboxInitedAcked:h}=I;if(A){`${b}`;return}h&&I.commit?l.fireInit(g,_||void 0):h?(`${b}`,I.sessionGeneration,t().generation,t().signal.aborted,void 0):P?(`${b}`,void 0):(`${b}`,void 0),n=!1,c=void 0,!h&&s===g&&(s=void 0,r===i&&(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:()=>{o+=1},noteSandboxGeneration:g=>{i=g},fill:g=>S(g,!1),refill:g=>S(g,!0),stop:()=>{o+=1,p(),n=!1,m?.removeEventListener("abort",p),m=void 0}}}function nc(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 rc(e){const{pipeline:t,readEmail:n,readDocument:r,readRouteEmailId:s,readSandboxGeneration:i}=e,o=d=>{const p=n(),m=s();if(!nc(p,d,m)){d.showId,d.navId,d.emailId,p?.id,p?.showId,p?.renderGuid;return}d.showId,p?.id,p?.renderGuid,t.markFilled(i()),t.markCorrelation(d.showId),t.fill(d.showId).catch(()=>{})};return{showRequested:d=>{o(d)},showRequestIdentityChanged:()=>{const d=e.initPipeline().getActiveShowRequest();d&&o(d)},selfInitChanged:()=>{if(e.initPipeline().getActiveShowRequest())return;const d=i();if(t.filledGeneration()===d)return;const p=n(),m=s();if(!p?.renderGuid||!jr(p,m))return;const v=`${kr}${p.renderGuid}`;t.markFilled(d),t.markCorrelation(v);const S=r()?.isReady()===!0;p.id,p.renderGuid,(S?E=>t.refill(E):E=>t.fill(E))(v).catch(()=>{t.lastCorrelation()===v&&t.markFilled(void 0)})},saasChanged:()=>{const d=n();d?.renderGuid,d?.showToken,d?.id}}}function sc(e){return e??""}function ic(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 Ql({attributes:C?.get().attributes??{},readContent:()=>C?.getContent(),docId:C?.get().docId,hasSession:!!C,serverId:C?.get().serverId,show:t.showFacts()})},i=()=>e.getInstance(a.INIT_PIPELINE_ID)??yt;let o={},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 v=()=>{const C=oe(e);if(!C)return;const $=++m,B=C.spare();return B&&Dl(e,B.element),(B?B.reloadQuietly():C.ensureSpare()?.ready())?.then(()=>{if($!==m)return;u=!0;const Z=C.spare();Z&&Pl(e,Z.element),p&&(p=!1,T(),G())})},S=Jl({run:()=>{p||v()?.catch(()=>{})}}),E=()=>{ql(e).noteContentShown(),!u&&!p&&S.start()};let g=!1;const I=tc({container:e,messageService:n,initPipeline:i,readDocument:r,readEmail:s,revealFilled:()=>{const C=oe(e);return g&&C&&(g=!1,S.start()),c?C?.current("email").whenShown()??Promise.resolve():Promise.resolve()},showFilled:C=>{const $=oe(e),B=$?.spare()?.element.contentWindow;d&&$&&B&&C===B&&(d=!1,$.promote(),$.busy(!1),g=!0)},readTarget:()=>n.getTarget(),isTemplate:()=>!!o.isTemplate,readSandboxGeneration:()=>ie(n),describeSurface:()=>({canvasPath:y,promoted:d,spareClean:u,handshake:n.isInited(),generation:ie(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=rc({pipeline:I,initPipeline:i,readEmail:s,readDocument:r,readRouteEmailId:()=>o.emailId,readSandboxGeneration:()=>ie(n)});let P="",h="",w="";const f=C=>C.length>0;let y="none";const T=()=>{const C=oe(e)?.spare();C&&(n.send({operation:a.EVENT_TYPES.SANDBOX_LOCK_EDIT,data:!0}),u=!1,d=!0,Cl(e,C.element))},O=(C,$)=>{const B=oe(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=v();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(ie(n));const C=s(),$=ic(C?.renderGuid,C?.showId,C?.id,o.emailId),B=sc(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??""}|${ie(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:o.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===o.emailId&&!!C.isTemplate==!!o.isTemplate||(o=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()}),kp=t.subscribe(k),Bp=br(n,G);k(),e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{l?.dispose(),V?.(),Bp(),kp(),ae?.(),tt.dispose(),S.cancel(),I.stop()})}function ac(){return a.USEBLOCKS!=="emailmaker"}var Ur={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},Hr={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}},$r=Hr,lc=["pro"],Gr={};function cc(e){Gr=e}var Vr=e=>lc.includes(e)?$r:Gr[e]??$r,Ct={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={...Ct,config:{...Ct.config,imageCenterFileManagerView:!1}};cc({pro:Hr,editor:dc,simple:ac()?Ct:uc,freeUserBlocks:Ur,blocks:Ur});var Yr=new Set;function fc(){return window.localStorage.getItem(a.LOCAL_STORAGE_ITEMS.em_color_scheme)??void 0}function pc(e){return Yr.add(e),e(fc()),{dispose(){Yr.delete(e)}}}function Pt(e,t){return e.user.mode||e.serverSide.mode||t||"pro"}function mc(e,t){return t.modeDefaults(Pt(e,t.fallbackMode))}function hc(e,t){const n=Pt(e,t);return e.serverSide.advancedConfigs?.[n]||{}}function gc(e,t){const n=Pt(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 vc(e){return a.mergeResourceProxyLayers(e.map(t=>t?.resourceProxy))}function _c(e){return a.mergeResourceProxyPolicyLayers(e.map(t=>t?.resourceProxyPolicy))}function bc(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 Dt(e,t){const n=Sc(e,t),r=a.mergeShallowConfigLayers(n),s=Ec(n);s!==void 0&&(r.fileManager=s);const i=vc(n);i!==void 0&&(r.resourceProxy=i);const o=_c(n);o&&Object.keys(o).length>0&&(r.resourceProxyPolicy=o);const c=bc(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 zr(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 i={kind:"pending"},o;const c=new Promise(m=>{o=m}),l=n===void 0?void 0:setTimeout(()=>{d({kind:"absent",reason:`серверный слой не пришёл за ${n} мс`})},n);function u(){i.kind!=="pending"&&s.set(Dt(r,e))}function d(m){if(i.kind!=="pending")return;clearTimeout(l),i=m;const v=Dt(r,e);s.set(v),o(v)}function p(m,v){r[zr(m)]=v,m==="server"&&i.kind==="pending"?d({kind:"applied"}):u()}return{watch:m=>s.watch(m),select:m=>s.select(m),get:()=>s.get(),ready:()=>c,state:()=>i,layers:()=>({...r}),bootstrap(){const m=Dt(r,e);return Object.fromEntries(Ic.map(v=>[v,m[v]]))},merge(m,v){p(v,{...r[zr(v)],...m})},replace(m,v){p(v,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){i.kind==="pending"&&p("server",{...r.serverSide,...m})},dispose(){clearTimeout(l)}}}var Tc=5e3,Xp="pro";function Ac(){return{...Vr("pro")?.config,mergeTags:void 0}}function Cc(e,t){e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(n=>{t.setAdvancedConfigs({...n.advancedConfigs,...n.config?.advancedConfigs}),t.replace(n.config??{},"user")})}function Pc(e,t){let n;cr(e).watch(({profile:r})=>{const s=`${r?.theme??""}|${r?.locale??""}`;if(s===n)return;n=s;const i={};r?.theme&&(i.theme=r.theme),r?.locale&&(i.locale=r.locale),t.replace(i,"profile")})}function Dc(e,t){let n=null;const r=pc(s=>{const i=typeof s=="string"&&s?s:void 0;i!==n&&(n=i,t.replace(i?{theme:i}:{},"local"))});e.getInstance(a.DISPOSABLE_ID)?.addDisposable(r)}async function Rc(e,t){if(e.getInstance(it)===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 Oc(e){e.injectFactory(a.CONFIG_SOURCE_ID,(t,n)=>{if(n)return n;const r=wc({base:Ac(),env:{modeDefaults:s=>Vr(s)?.config||{},fallbackMode:localStorage.getItem("configSwither")||void 0},budgetMs:Tc});return Cc(e,r),Pc(e,r),Dc(e,r),Rc(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,i,o)=>{const c=r(async l=>{const u=t?t(l):l;o&&s.bind(o);const d=await s(u);return n?n(d):d},i,o);return()=>c.dispose()}}var Lc=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{}}},Rt=a.createIdentifier$1("DestroyableService");function Nc(e){e.injectFactory(Rt,()=>{const t=e.getInstance(a.DISPOSABLE_ID);if(!t)throw new Error("[plugin] время жизни экземпляра не зарегистрировано");return new Lc({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 xc(e){const t=e.getInstance(Rt);if(!t)throw new Error("[plugin] provideDestroyable не выполнен до сборки поверхности");return{handleDestroy:t.handleDestroy,destroy:()=>t.destroy()}}var Mc=1e3;function qr(e,t,n=Mc,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),i=Object.keys(t);if(s.length!==i.length)return!1;for(const o of s)if(!qr(e[o],t[o],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],i=e[r];qr(s,i)||(n[r]=s)}return n}var Fc=class extends Error{timeoutMs;constructor(e){super(`[emailmaker] handleSaveEmail не ответил за ${e}ms — письмо не сохранено`),this.timeoutMs=e,this.name="IntegratorSaveTimeoutError"}},kc=({source:e,emailtags:t,group:n,tags:r,...s})=>s,Bc=()=>xn();async function jc({emails:e},t){const n=Bc();let r;try{return await Promise.race([e.notifySave(t),new Promise((s,i)=>{r=setTimeout(()=>{const o=new Fc(n);t.value.id,i(o)},n)})])}finally{r!==void 0&&clearTimeout(r)}}function Uc(e){const{emails:t}=e,n=async(r,s)=>{const i=kc(s),o=r===void 0?void 0:await t.cache.getIfPresent(r),c=o?{...o,...i}:i,l=await jc(e,{prev:o,patch:o?Te(o,i):i,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 Ot=20,Hc=({source:e,emailtags:t,group:n,tags:r,...s})=>s;function $c({revisions:e,revisionsByEmail:t}){const n=async(r,s)=>(t.clear(),await t.get(r,{page:s}),(await e.cache.values()??[]).filter(i=>String(i?.parent)===String(r)));return{async readRevisions(r,s=1){const i=await n(r,s);return{revisions:i.slice(Ot*(s-1),Ot*s),page:s,hasMore:i.length>Ot*s}},async readAutosave(r){return ho(await n(r,1))},async saveAutosave(r,s){const i=Hc(s);return await e.create({...i,parent:r,modified:new Date().toString()})}}}var Gc=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}},Vc=class extends a.AsyncEmitter{};function Jp(e){return e}var Kr=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,i])=>s)),r=(await this.entries()).filter(([s,i])=>!n.has(s));for(const[s,i]of e)t.push(this.addOrUpdate(s,()=>i)),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 Yc(e,{filter:t,order:n="asc",orderBy:r,page:s,pageSize:i=20}={}){const o=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(i*(s-1),i*s)),{data:e,filteredTotal:c,total:o,totalPages:Math.ceil(c/i)}}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 qc(e,t){return Wr(e)&&Wr(t)?String(e)===String(t):e===t}function Wr(e){return typeof e=="string"||typeof e=="number"}var Kc=class extends a.Disposable{_cache=new Kr;_readEmitter=new a.AsyncEmitter;_saveEmitter=this.addDisposable(new Gc);_removeEmitter=this.addDisposable(new Vc);_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 Kr),s=n.addDisposable(new a.AsyncEmitter);t=this._foreignCache[e]={get:async(i,o={})=>{await r.getOrCreate(i,async()=>{try{const l=zc(await s.fire(i))||[];for(const u of l)u[e]=i,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||qc(u,i)});return Yc(c,o)},first(i,o={}){return t.get(i,{...o,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 i=s?{...s,...t}:t;if(!r)return t=s?Te(s,t):t,await this._saveEmitter.fire({prev:s,patch:t,value:i,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 Kc)}function Wc(e){const t=e.getInstance(a.DISPOSABLE_ID);if(!t)throw new Error("Failed");return t}function Xr(e){return Object.prototype.hasOwnProperty.call(e,"meta")}function Xc(e,t,n){return e&&!Xr(t)&&Xr(e)?{...n,meta:e.meta}:n}var Jr=Ae("plugin.dataSource.emails"),Qr=Ae("plugin.dataSource.emailRevisions"),Zr=a.createIdentifier$1("emailDocuments.provided");function Jc(e){const t=Jr(e),n=Qr(e),r=n.byForeignKey("parent");return e.getInstance(Zr)?{emails:t,emailRevisions:n}:(e.inject(Zr,!0),Mo(e,Uc({emails:t})),jo(e,$c({revisions:n,revisionsByEmail:r})),Wc(e).addDisposable(t.onSave(({prev:s,patch:i,value:o})=>Xc(s,i,o),Number.MIN_VALUE)),{emails:t,emailRevisions:n})}function es(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 Qc(e){try{return localStorage.getItem(e)===null?!1:(localStorage.removeItem(e),!0)}catch{return!1}}var Zc="po",Ve=null;function ed(){const e=typeof __emailmaker__<"u"?__emailmaker__?.require:void 0;return typeof e!="function"?Promise.reject(new Error("[loadPoParser] AMD loader is unavailable")):new Promise((t,n)=>{e([Zc],r=>t(r),r=>n(r instanceof Error?r:new Error("[loadPoParser] Failed to require po module")))})}function td(){return Ve===null&&(Ve=ed().catch(e=>{throw Ve=null,e})),Ve}async function ts(e){if(typeof e=="object")return Lt(e);if(typeof e!="string")return;const t=e.trim();if(t)return t.startsWith("{")||t.startsWith("[")?nd(t):rd(t)}function Lt(e){if(!(e==null||typeof e!="object"||Array.isArray(e)))return e}function nd(e){try{return Lt(JSON.parse(e))}catch{return}}var ns=!1;async function rd(e){try{return Lt((await td()).parsePoCatalog(e))}catch{ns||(ns=!0);return}}var sd="em_locale",id="em_ant_locale",od="locale",ad="ant_locale";function Nt(e){try{return JSON.parse(localStorage.getItem(e)||"")}catch{return null}}function rs(e,t){const n=Nt(e);if(!n)return null;try{localStorage.removeItem(e),localStorage.setItem(t,JSON.stringify(n))}catch{}return n}function ld(){return Nt("em_locale")??rs(od,"em_locale")}function ss(e){try{localStorage.setItem(sd,JSON.stringify(e))}catch{}}function cd(){return Nt("em_ant_locale")??rs(ad,"em_ant_locale")}function dd(e,t){try{localStorage.setItem(id,JSON.stringify({id:e,data:t}))}catch{}}var Qp="en_US",ud=8e3;function fd(e,t){const n=e,r=t,s=Object.keys(n).filter(i=>i!=="");return s.length!==Object.keys(r).filter(i=>i!=="").length?!1:s.every(i=>JSON.stringify(n[i])===JSON.stringify(r[i]))}function pd(e){const t=ld(),n=cd();let r={ready:!1},s;const i=pe(r);let o=0;const c=g=>{r={...r,...g},i.set(r)},l=()=>{r.ready||c({ready:!0})},u=setTimeout(l,e.unlockAfterMs??ud),d=g=>g!==o;let p;async function m(g,_){if(n?.id===g&&n.data&&c({antd:n.data}),!p)return;const b=await p(g).catch(()=>{});!b||d(_)||(c({antd:b}),dd(g,b))}async function v(g,_){const b=await e.askHost(g).catch(()=>null);if(d(_))return!0;if(b==null)return!1;const I=await ts(b);return d(_)||(I&&c({catalog:I}),l()),!0}async function S(g,_){const b=await e.readList();if(d(_))return;if("error"in b){c({failure:{kind:"GET_LOCALES_ERROR",error:b.error}}),l();return}const I=b.data.find(P=>P.locale===g);if(!I){Qc("em_locale")&&c({catalog:void 0}),l();return}if(es(t,I)&&(!s||s.catalog===t?.data)){l();return}if(s?.entry&&r.catalog===s.catalog&&es(s.entry,I)){ss(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&&fd(s.catalog,A.data)||c({catalog:A.data}),ss({id:g,time:I.updatedAt||Math.floor(Date.now()/1e3),hash:I.contentHash,data:A.data})),l()}}async function E(g,_){if(!await v(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 _=o+=1;c({id:g,failure:void 0});const b=s?.id===g&&r.catalog===s.catalog;(s&&!b&&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,_,b){r.id||r.catalog||!_||(s=t?.id===g&&t.data&&(!b||t.time>=b.time)?{id:g,catalog:t.data}:{id:g,catalog:_,entry:b?{id:g,time:b.time,hash:b.hash,data:_}:void 0},c({catalog:s.catalog}))},useAntdLoader(g){p=g,r.id&&m(r.id,o)},state:i,snapshot:()=>r,dispose:()=>clearTimeout(u)}}var md=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})},hd=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:i,baseUrl:o,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"],v=i||d.format;return this.customFetch(`${o||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=v?S.clone():S,_=v?await g[v]().then(b=>(E.ok?E.data=b:E.error=b,E)).catch(b=>(E.error=b,E)):E;return c&&this.abortControllers.delete(c),_})}},gd=a.createIdentifier$1("rest.v2.transport"),is=Symbol("rest.v2.secureRequest");function Ed(e){return e.getOrCreateInstance(gd,()=>{const t=e.getInstance(a.CUSTOM_FETCH_ID)?.execute||fetch;return new hd({baseUrl:"https://app.emailmaker.ru/api/v2",securityWorker:()=>({[is]:!0}),customFetch:(n,r={})=>{const{[is]:s,...i}=r;return t(n,{...i,[a.PUBLIC_REQUEST]:s!==!0})}})})}function vd(e,t){const n=Ed(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 as(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 ls(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 cs(){return _d(a.LOCAL_STORAGE_ITEMS.em_translations_v2)??!0}function bd(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function yd(e){const t=e?Date.parse(e):NaN;return Number.isNaN(t)?0:Math.floor(t/1e3)}function Sd(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:bd(r[1])}),t},[]):[]}function Id(e){return(e?.items??[]).reduce((t,n)=>(n.locale&&t.push({locale:n.locale,updatedAt:yd(n.updated_at),contentHash:n.content_hash}),t),[])}function ds(e){return vd(e,[md])}function Ye(e){return{error:{status:"FETCH_ERROR",error:e instanceof Error?e.message:"locale request failed"}}}function xt(e){return!e.ok||e.error!=null}function Mt(e){const t=e.error;return{error:{status:e.status,data:t?.data??e.error}}}async function Ft(e){return{data:await ts(e)??null}}async function wd(e){if(cs())try{const n=await ds(e).localesList();return ls(n)?{error:as(n)}:{data:Id(n.data)}}catch(n){return Ye(n)}const t=a.getApi(e,[Tn]);try{const n=await t.get_translations2({file:"react_app"});return xt(n)?Mt(n):{data:Sd(n.data)}}catch(n){return Ye(n)}}async function Td(e,t){if(cs())try{const r=await ds(e).jsonList({locale:t});return ls(r)?{error:as(r)}:Ft(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 xt(r)?Mt(r):Ft(r.data)}catch{try{const r=await n.get_translations3({id:"en_US",file:"react_app"});return xt(r)?Mt(r):Ft(r.data)}catch(r){return Ye(r)}}}var Ce=a.createIdentifier$1("locale.service");function Ad(e){if(e.getInstance(Ce))return;const t=pd({readList:()=>wd(e),readCatalog:n=>Td(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 Cd(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 Pd="user_id",Dd="project_id",us=a.createIdentifier$1("rest.identityHeadersProvided");function Rd(e){if(e.getInstance(us))return;e.inject(us,!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(Pd,String(s));const i=t?.project;i!=null&&i!==""&&n.headers.set(Dd,String(i))}})}function Od(e){if(!e)return!1;try{return e.getInstance(a.SECURITY_MODULE_ID)!==void 0}catch{return!1}}var Ld="Invalid standaloneKey.",Zp=a.createIdentifier$1("StandaloneMockGuard");function Nd(){const e=new Error(Ld);return e.name="InvalidStandaloneKeyError",e}function xd(e){e.addService(a.REQUEST_HANDLER_ID,{execute:()=>{if(Od(e))throw Nd()}})}function Md(e){a.registerRestTransport(e),xd(e)}function Fd(e){const t=new Rr;e.inject(a.INIT_PIPELINE_ID,t);let n;const r=e.getInstance(a.OPTIONS_SOURCE_ID)?.watch(i=>{i&&(i.signal!==void 0&&(n=i.signal),t.configure({replaceSession:!0,...i.timeouts!==void 0?{timeouts:i.timeouts}:{},...n!==void 0?{signal:n}:{}}))}),s=e.getInstance(a.DISPOSABLE_ID);r&&s?.addDisposable(r),s?.addDispose(()=>{t.abort()})}var kd=Ae("plugin.dataSource.blocks"),Bd=Ae("plugin.dataSource.blockRevisions"),jd=Ae("plugin.dataSource.comments"),Ud=Dr(),Hd=Dr(),fs=`<!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 @@ __emailmaker__.define("emailmaker.js",["require","exports","module","static/umd/
2123
2123
  </tr>
2124
2124
  </table>
2125
2125
  </body>
2126
- </html>`;function Ud(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 Hd=a.createIdentifier$1("CurrentProject"),$d={};function ze(e){return e?.getInstance(Hd)?.get()??$d}function fs(e){const t=ze(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 Gd(e){return!Object.keys(e).some(t=>ps.has(t))}function Vd(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 Qp(e){}function qe(e){return{emails:Xr(e),blocks:Md(e),emailRevisions:Jr(e),blocksRevision:Fd(e),comments:kd(e)}}function Yd(e){const t=Object.values(qe(e));return{suspendChange(){t.forEach(n=>n.suspendChange())},resumeChange(){t.forEach(n=>n.resumeChange())}}}function kt(e,t=!0){if(typeof e=="string")return{email:{code:e}};if(Gd(e))return{email:ms(e)};{const{showOptions:n,misplacedEmailFields:r}=Vd(e),s=Object.keys(r);t&&s.length>0&&void 0;const i=typeof e.email=="string"?{code:e.email}:e.email;return{...n,email:ms({...r,...i})}}}function hs(e){return mt(e)?.current()}function Ke(e){return hs(e)?.getContent()}function zd(e,t){const n=t??Ud(),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 Bt(e){return(await e.getInstanceAsync(a.APP_ID))?.project}function ve({code:e,project:t,...n},r){const s=re(n),i=fs(r),o=ge(r);return e&&o.warnAboutUnconfiguredInput(e,n.id),{...s,...e?{html:o.toEditorForm(e)}:{},...i===void 0?{}:{project:i},utm_parameters:s.utm_parameters||{},_embedded:void 0}}function W({html:e,renderGuid:t,showToken:n,showId:r,...s},i){const{requested:o}=ze(i),c=dr(i);return re({...s,code:ge(i).toOutputForm(e),project:o===void 0?s.project:o,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 jt(e){return e==null?"":e.replaceAll(`\r
2126
+ </html>`;function $d(e){return{isNew:!0,is_inited:!1,subject:void 0,preheader:void 0,description:"",html:fs,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 Gd=a.createIdentifier$1("CurrentProject"),Vd={};function ze(e){return e?.getInstance(Gd)?.get()??Vd}function ps(e){const t=ze(e).card?.id,n=Number(t);return t!=null&&t!==""&&Number.isFinite(n)?n:void 0}var ms=new Set(["email","block","blocks","autosaves","revisions","comments","templateId","reload"]);function Yd(e){return!Object.keys(e).some(t=>ms.has(t))}function zd(e){const t={},n={};for(const[r,s]of Object.entries(e))ms.has(r)?t[r]=s:n[r]=s;return{showOptions:t,misplacedEmailFields:n}}function hs(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 qe(e){return{emails:Jr(e),blocks:kd(e),emailRevisions:Qr(e),blocksRevision:Bd(e),comments:jd(e)}}function qd(e){const t=Object.values(qe(e));return{suspendChange(){t.forEach(n=>n.suspendChange())},resumeChange(){t.forEach(n=>n.resumeChange())}}}function kt(e,t=!0){if(typeof e=="string")return{email:{code:e}};if(Yd(e))return{email:hs(e)};{const{showOptions:n,misplacedEmailFields:r}=zd(e),s=Object.keys(r);t&&s.length>0&&void 0;const i=typeof e.email=="string"?{code:e.email}:e.email;return{...n,email:hs({...r,...i})}}}function gs(e){return mt(e)?.current()}function Ke(e){return gs(e)?.getContent()}function Kd(e,t){const n=t??$d(),r=gs(e)?.get();return r?{...n,...r.attributes,id:r.serverId??void 0,isNew:r.serverId===null,html:Ke(e)??n.html}:n}async function Bt(e){return(await e.getInstanceAsync(a.APP_ID))?.project}function ve({code:e,project:t,...n},r){const s=re(n),i=ps(r),o=ge(r);return e&&o.warnAboutUnconfiguredInput(e,n.id),{...s,...e?{html:o.toEditorForm(e)}:{},...i===void 0?{}:{project:i},utm_parameters:s.utm_parameters||{},_embedded:void 0}}function W({html:e,renderGuid:t,showToken:n,showId:r,...s},i){const{requested:o}=ze(i),c=ur(i);return re({...s,code:ge(i).toOutputForm(e),project:o===void 0?s.project:o,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 jt(e){return e==null?"":e.replaceAll(`\r
2127
2127
  `,`
2128
- `)}function gs(e){return e.replace(/<title[^>]*>[\s\S]*?<\/title>/gi,"")}function qd(e,t,n,r){const s=Kd(e,t,n,r);return s===void 0}function Kd(e,t,n,r){const{email:s}=kt(t,!1),i=ve(s,e),o=i.id;if(o===void 0)return"no-id";if(r!==void 0&&r!==o)return"other-id-shown";const c=mt(e)?.current();if(!c)return"no-session";const l=c.get(),u=l.attributes;if(l.serverId!==o)return"document-id";if(u.is_inited!==!0)return"not-inited";const d=gs(jt(n??c.getContent()));if(i.html!==void 0&&gs(jt(i.html))!==d)return"html";if(i.subject!==void 0&&i.subject!==u.subject)return"subject";if(i.preheader!==void 0&&i.preheader!==u.preheader)return"preheader";if(i.common_styles!==void 0&&i.common_styles!==u.common_styles)return"common_styles"}function Es(e,t){const{email:n}=kt(t,!1),r=ve(n,e);if(r.id!==void 0)return JSON.stringify([r.id,r.html===void 0?null:jt(r.html),r.subject??null,r.preheader??null,r.common_styles??null])}function Wd(e,t){const n={...e};return delete n.id,{...n,...t}}function Xd(e){return e.html?e:{...e,html:us}}function Pe({code:e,project:t,...n},r,s){const i=s??fs(r);return{...n,...e?{html:ge(r).toEditorForm(e)}:{},renderGuid:a.generateUUID(),...i===void 0?{}:{project:i}}}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 vs(e){return mt(e)?.current()?.get().serverId??void 0}function Ut(e,t,n){return n===void 0&&(n=e.post===void 0?vs(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 Ht({code:e,...t},n,r){return r===void 0&&(r=t.parent===void 0?vs(n):t.parent),{...t,...e?{html:e}:{},parent:r}}function _s({html:e,...t},n){return re({...t,code:e,guid:void 0,compiled:re({html:e,ampHtml:e&&""})})}var Jd=a.createIdentifier$1("emailTemplate.reads");async function Qd(e,t){try{return await le(e).email(e).readEmail(t)??void 0}catch(n){n instanceof Error&&n.message;return}}function Zd(e,t){const n=e.getOrCreateInstance(Jd,()=>new Map),r=n.get(t);if(r!==void 0)return r;const s=Qd(e,t).then(i=>(i===void 0&&n.delete(t),i));return n.set(t,s),s}var eu="EXTERNAL";function tu(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"сохранение не состоялось")}var nu="email_id",ru=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=Yd(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(nu,this._currentEmail.id)}}))}_getInitPipeline(){return this._container?.getInstance(a.INIT_PIPELINE_ID)??yt}_throwIfDestroyed(){if(this.isDisposed())throw yn()}async getTemplateEmail(e){const t=await Zd(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 Bt(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,Ht(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,Ut(s,this._container,t)]);await n.setAll(r)}async setEmail(e,t,n,r,s){const i=this._dataSources.emails,o=i.cache,c=await Bt(this._container),l=r??this._showToken;e=typeof e=="string"?{code:e}:{...e};let u=ve(e,this._container);const d=u.id;let p=d;if(d!==void 0){const m=await i.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 i.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=Wd(m,u))}return d===void 0&&(u=Xd(u)),await o.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),qd(this._container,e,Ke(this._container),this._prevCommand?.id)||this._isRepeatOfLastShow(e))return;const r=kt(e);r.email.id,this._prevCommand?.id;let s,i="",o=0,c=!1,l,u=Promise.resolve(),d,p=!1;try{this._eventLock.suspendChange();const{email:m,blocks:v,autosaves:S,comments:E,templateId:g,reload:_}=r;s=m.id;const b=ve(m,this._container),I=b.id,A=I??a.generateUUID(),P=await we("getProject",Bt(this._container));a.throwIfAborted(n.signal),i=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)),o=++this._showToken,String(A);const f=[];f.push(this.setBlocks(v)),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,o,i)),await we("setEmail+blocks+revisions",Promise.all(f),{emailId:I??String(A),showId:i,targetShowToken:o}),a.throwIfAborted(n.signal);const y=await this._dataSources.emails.get(String(A)),T=se(this._container),O={id:i,token:o};I===void 0?d=T.startNewDraft(y??b,{patch:b,show:O}):w?d=T.reload(I,{email:y??b,patch:b,show:O}):T.sessionKey()===Se(I)?d=T.show(b,O):d=T.open(I,{email:y??b,patch:b,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:i,navId:String(A),emailId:I,isNew:I===void 0}),p=!0,String(A),c=!0}catch(m){l=m,p&&i&&n.failShow(i,m),String(m)}finally{this._eventLock.resumeChange()}if(!c)throw l instanceof Error?l:new Error(`[emailmaker] show() setup failed: ${String(l??"unknown error")}`);return we("show-init-deferred",Promise.all([u,d?.whenReady().catch(m=>{if(m instanceof ke){const v=Qn(m);throw v?new Error(`[emailmaker] show(): email open failed (${v})`,{cause:m}):m}})??Promise.resolve()]).then(()=>{}),{showId:i,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:eu});if(a.throwIfAborted(e.signal),!n)throw tu(t.saveState().error);return W(zd(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 su(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 ou(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 bs(e,t,n){const r=new RegExp(`\\b${t}\\s*=\\s*["'][^"']*["']`,"i"),s=su(n);return r.test(e)?e.replace(r,`${t}="${s}"`):e.replace(/>$/,` ${t}="${s}">`)}function au(e,t,n){if(!e?.trim()||!t)return e;const r=ou(e);if(!r)return e;const s=String(t),i=iu(n??new Date);let{full:o,index:c}=r;const l=o.length;return/\bem-block-id\s*=/.test(o)||(o=bs(o,"em-block-id",s)),o=bs(o,"em-block-version",i),e.slice(0,c)+o+e.slice(c+l)}function lu(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 cu(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:lu(e)}}function $t(e,t){return t?cu(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"],du=[...ys,"html","id","project","password"],Zp=new Set(["html",...ys,"global_block","project"]);function uu(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(du),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 fu(e,t={}){return!e||typeof e!="object"?{html:"",insertFrom:t.type,name:t.name,project:t.project,id:t.blockId}:{...uu(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 Gt=new WeakMap;function pu(e){let t=Gt.get(e);return t||(t={byId:new Map,fallback:[]},Gt.set(e,t)),t}function mu(e){Gt.delete(e)}function hu(e,t){const{byId:n,fallback:r}=pu(t);if(e.blockId){const s=n.get(e.blockId);if(s){n.delete(e.blockId);const i=r.indexOf(s);return i>=0&&r.splice(i,1),s}return}for(let s=r.length-1;s>=0;s--){const i=r[s],o=e.name!=null&&e.name!==""&&i.name!=null&&i.name!==""&&i.name===e.name,c=e.type!=null&&e.type!==""&&i.insertFrom===e.type;if(o&&c)return r.splice(s,1),i.id!=null&&i.id!==""&&n.delete(String(i.id)),i}}async function gu(e,t){const{blocks:n}=qe(e);return await n.cache.getIfPresent(t)??void 0}async function Eu(e,t){if(!t.blockId)return;const n=await gu(e,t.blockId);if(n)return fu(n,t)}async function vu(e,t){const n=hu(e,t);if(n)return $t(e,n);const r=await Eu(t,e);return r?$t(e,r):$t(e,void 0)}var _u=a.createIdentifier("application_block_inserted"),bu=-1e3,Ss=new WeakSet;function yu(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 Su(e){if(!e||Ss.has(e))return;Ss.add(e);const t=new a.Disposable,n=Y(e);return t.addDisposable(n.addListenerAsyncPipe(_u,async(r,s)=>{const i=yu(r)?await vu(r,e):r;return s?s(i):i},bu)),t.addDisposable({dispose:()=>{mu(e)}}),t}var Is=100,Iu=class extends a.Disposable{_container;_events;constructor(e){super(),this._container=e;const t=Su(e);t&&this.addDisposable(t)}_get(){const e=this._container,{blocks:t,emails:n,comments:r,emailRevisions:s}=qe(e),i=H(e,a.events.ON_SHARE_ID),o=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),v=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,jd),_=H(e,a.events.ON_CONTENT_CHANGED_ID),b=H(e,Bd),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&&ve(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?ve(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(b,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:au(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=>Ut(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?Ut(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=>Ht(w,e))),handleEmailAutosave:N(s.onSave,function({prev:h,patch:w,value:f,source:y}){return{value:_s(f,e),source:y}},h=>h?Ht(h,e):void 0),handleRemoveEmailAutoSave:N(s.onRemove,({value:h,source:w})=>({value:_s(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(v,h=>W(h,e)),handleSaveButtonClick:N(m,h=>W(h,e)),handleHtmlChanged:N(a.debounce(_,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(i),handlePreviewEmail:N(o),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])}},wu=a.createIdentifier$1("DataController"),Tu=a.createIdentifier$1("DataEvents");function ws(e){return e.getOrCreateInstance(wu,()=>{const t=new ru(e);return e.getInstance(a.DISPOSABLE_ID)?.addDisposable(t),t})}function Ts(e){return e.getOrCreateInstance(Tu,()=>new Iu(e))}var Au=a.createIdentifier$1("plugin.startupShow");function Cu(e){const t=ws(e),n=Ts(e),r=e.getInstance(a.OPTIONS_SOURCE_ID),s=e.getInstance(a.DISPOSABLE_ID),i={current:Promise.resolve()};e.inject(Au,i);const o=r?.watch(l=>{l&&n.setOptions(l)}),c=r?.select(l=>l?.content).watch(l=>{l!==void 0&&(j(z.showStart),i.current=(async()=>{try{await t.show(l)}catch{}finally{j(z.showEnd)}})())});o&&s?.addDisposable(o),c&&s?.addDisposable(c)}function Pu(e){const t=ws(e);return{...Ts(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 Du=[{name:"rest.client",setup:Nd},{name:"auth.oauth",setup:a.provideOAuth},{name:"rest.identityHeaders",setup:Pd},{name:"lifetime.destroyable",provides:[Rt],setup:Oc},{name:"appInit",provides:[a.APP_ID,it],setup:Ni},{name:"config",provides:[a.CONFIG_SOURCE_ID],setup:Dc},{name:"email.documents",setup:Wc},{name:"show.initPipeline",provides:[a.INIT_PIPELINE_ID],setup:xd},{name:"show",setup:Cu},{name:"locale.service",provides:[Ce],setup:wd},{name:"locale.fromConfig",awaits:{services:[a.CONFIG_SOURCE_ID,Ce]},setup:Td},{name:"canvas.early",setup:Ol},{name:"canvas.previewSettings",setup:jl},{name:"canvas.sandboxExtensions",setup:Hl},{name:"canvas.headerSync",provides:[Nr],setup:xl},{name:"canvas.ampSync",setup:la},{name:"canvas.moduleBridge",setup:Na},{name:"canvas.port",setup:Ea},{name:"canvas.images",setup:ha},{name:"canvas.edits",setup:fl},{name:"canvas.blockContent",setup:ol},{name:"canvas.sandboxFill",provides:[St],setup:sc},{name:"canvas.reactions",setup:Pl}],Ru=class extends Error{cycle;constructor(e){super(`[units] цикл в зависимостях: ${e.join(" → ")}`),this.cycle=e}};function Ou(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 Lu(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=Ou(e),n=[],r=new Set,s=[],i=new Set,o=c=>{if(!r.has(c)){if(i.has(c)){const l=s.indexOf(c);throw new Ru([...s.slice(l),c].map(u=>u.name))}i.add(c),s.push(c);for(const l of Lu(c,t))o(l);s.pop(),i.delete(c),r.add(c),n.push(c)}};for(const c of e)o(c);return n}var Cs;function Vt(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(Du);for(const r of Cs)r.setup(e);return n}function Nu(e){}var xu=[{name:"save.previewFollow",setup:Nu}],Ps=a.createIdentifier$1("plugin.lateUnitsInstalled");function Mu(e){if(!e.getInstance(Ps)){e.inject(Ps,!0);for(const t of As(xu))t.setup(e)}}function Fu(e,t){return{project:Number(e),app_id:t?.app_id||0,app_config:t?.app_config||{},user:t?.user}}function ku(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 Bu=a.defineMixin(e=>{let t,n,r;return{async setOptions(s){const i=r!==s.getAuthToken,o=!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)&&!(!i&&!o&&!c))try{const l=await s.getAuthToken(s.user,s.project);e.inject(a.STANDALONE_BOOTSTRAP_TOKEN_ID,Promise.resolve(l||""));const u=ku(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(Fu(u,p)))}catch{}}}});function ju(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 Uu(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 Hu(e){return e.standaloneOnAuthFailure===!0?!0:e.config?.standaloneOnAuthFailure===!0}function Yt(e){return Hu(e)?!!Je(e):!1}function Qe(e){return!!Je(e)&&!Yt(e)}var $u=a.defineMixin(e=>{let t,n=!1;return{setOptions(r){const s=n;if(n=!0,!Qe(r)){t&&(Uu(e),Yt(r)),t=void 0;return}const i=Je(r);if(!i||t===i&&e.getInstance(a.SECURITY_MODULE_ID))return;t=i,e.inject(a.SECURITY_MODULE_ID,i);const o=e.getInstance(a.DISPOSABLE_ID);o&&ju(e,o)}}}),Gu=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:i}){s.setListener(i)},instance:{handleLoad:r},dispose:()=>t.dispose()}}),Vu=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),i=N(n.event),o=N(r.event),c=N(s.event),l=t.addDisposable(new Ee(i)),u=t.addDisposable(new Ee(o)),d=t.addDisposable(new Ee(c));return{instance:{handleSetOptions:i,handleOptionsChanged:o,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 Yu(){const e=__emailmaker__?.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 zu(e){const t=__emailmaker__?.require?.warm;return typeof t!="function"?De().then(()=>{}):t([Ds],e)}function De(){return zt===void 0&&(zt=Yu().then(e=>(be()&&e.installDiagnostics().catch(t=>{}),e))),zt}var qt=null,Kt=null;async function qu(e){typeof e?.prefetch=="function"&&await e.prefetch()}function Wt(){return qt||(qt=De().then(()=>{})),qt}function Rs(e){return Kt||(Kt=qu(e)),Kt}function Ku(){return Rs(typeof __emailmaker__<"u"?__emailmaker__:void 0)}function Wu(e){return Promise.all([Wt(),Rs(e)]).then(()=>{})}function Xu(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(()=>zu(t?{priority:t}:void 0)).then(()=>n?Wt():void 0).catch(()=>{})}function Ju(e){const t=Xu(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 Qu(e=a.resolveContainer()){return e.getOrCreateInstance(Ls,()=>new mi)}var Ns=new hi(()=>Qu()),Zu=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),i=e.getInstance(Ls);t||(t=new pi(s,i,{ensureHostRuntimeReady:Ku}),e.inject(a.PLUGIN_COLLECTION_ID,t));const o=r?.plugins||[];s&&await t.setPlugins(o)},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}},ef=a.createIdentifier$1("ELEMENT_INSERT_HTML_PIPELINE"),tf=a.createIdentifier$1("BLOCK_INSERT_HTML_PIPELINE"),nf="application_block_inserted",rf=class{_context;constructor(e){this._context=e}get _container(){return this._context.container}handleBeforeInject(e,t,n){return this._container.getOrCreateInstance(tf,()=>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(nf,s,t)}},sf=a.createIdentifier$1("ComponentRegistry"),Ms;function Re(e,t=sf){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 of=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 i=s.value.find(o=>o.name===e);if(i){const{icon:o,title:c,fallbackTooltip:l,...u}=t;o&&(i.icon=r.getReactNode(o)),c&&(i.title=r.getReactNode(c)),l&&(i.fallbackTooltip=r.getReactNode(l)),Object.assign(i,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(ef,()=>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)}},af=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 lf(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>n!==void 0))}var cf=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(lf({...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}))}},df=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(),i=()=>{this._loadedSettled||(this._loadedSettled=!0,this._readySettled&&s(),n())},o=c=>{this._loadedSettled||(this._loadedSettled=!0,this._readySettled&&s(),r(c))};this._resolveLoaded=i,this._rejectLoaded=o}),this.ready=new Promise((n,r)=>{const s=()=>this._loadedDisposable.dispose(),i=()=>{this._readySettled||(this._readySettled=!0,this._loadedSettled&&s(),n())},o=c=>{this._readySettled||(this._readySettled=!0,this._loadedSettled&&s(),r(c))};this._resolveReady=i,this._rejectReady=o})}_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)}},uf=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 df(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)}},ff=new Set([Symbol.for("react.element"),Symbol.for("react.transitional.element")]);function Xt(e){if(typeof e!="object"||e===null)return!1;const t=e.$$typeof;return typeof t=="symbol"&&ff.has(t)}function Fs(){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 Jt(){return`__settingsPanel:${Fs()}`}function Qt(e,t){return{type:e,props:t}}function pf(e){return typeof e=="object"&&e!==null&&"type"in e&&"props"in e&&!Xt(e)}function ks(e,t,n){if(t==null||typeof t=="number"||typeof t=="boolean"||typeof t=="string")return t;if(Xt(t)){const r=Jt();return n(e.add(r,t)),Qt(r,{})}if(typeof t=="function"){const r=Jt();return n(e.add(r,t)),Qt(r,{})}if(pf(t)){const r=t.type;if(typeof r=="string")return t;if(Xt(r)||typeof r=="function"){const s=Jt();return n(e.add(s,r)),Qt(s,t.props)}return t}return t}var mf=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=o=>this._trackRegistration(o),r=ks(t,e.content,n),s=e.advancedTabs?.map(o=>({...o,content:ks(t,o.content,n)})),i=e.instanceKey??Fs();a.getEmitter$1(this._container,a.SETTINGS_PANEL_EVENT).fire({...e,content:r,advancedTabs:s,instanceKey:i,type:a.ADVANCED_SETTINGS_PANEL})}closeSettingsPanel(){this._clearPanelRegistrations(),a.getEmitter$1(this._container,a.SETTINGS_PANEL_EVENT).fire(null)}},Bs={SandboxScriptApi:uf,ElementsApi:of,BlocksApi:rf,MessageService:af,SettingsPanelApi:mf,ModalApi:cf};function Zt(e,t,n,r={}){const s=Object.assign({},e);for(const[i,o]of Object.entries(t))if(o!==void 0)if(n.includes(i)&&typeof o=="object"&&o!==null){const c=s[i],l=r[i]??{};s[i]=Object.assign({},typeof c=="object"&&c!==null?c:l,o)}else s[i]=o;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}},hf={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"},en={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},_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},Us={backgroundColor:"#FFFFFF",contrastBackgroundColor:"#1C52DC",padding:X.padding},tn={contrastBackgroundColor:"#1C52DC",contrastTextColor:"#FFFFFF",baseBackgroundColor:"#F8F8F8",baseTextColor:"#333333",border:X.border,borderRadius:X.borderRadiusCards};function gf(e){return{...hf,...e}}function Ef(e){return{...en,...e,bold:e?.bold??en.bold,italic:e?.italic??en.italic}}function vf(e){return{...js,...e,underline:e?.underline??js.underline}}function _f(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 bf(e){return{...Us,...e,padding:{...Us.padding,...e?.padding}}}function yf(e){return{...tn,...e,border:{...tn.border,...e?.border},borderRadius:{...tn.borderRadius,...e?.borderRadius}}}function nn(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 rn(e){return{text:gf(e.text),headings:Ef(e.headings),links:vf(e.links),buttons:_f(e.buttons),block:bf(e.block),cards:yf(e.cards)}}var $s=a.createIdentifier$1("EmailSettingsPort"),Sf=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 nn(this._settings().read())}_getCurrentContentStyles(){const e=at(this._editor.container)?.current()?.get().attributes.common_styles;return rn(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,i=s?.operation;if(i===a.EVENT_TYPES.APPLICATION_EMAIL_SETTINGS_SET){const l=nn(s?.settings),u=this._getLayoutSnapshot(l);u!==this._prevLayoutSnapshot&&(this._prevLayoutSnapshot=u,this._layoutSettingsChanged.fire(l));return}if(i!==a.EVENT_TYPES.APPLICATION_COMMON_STYLES_UPDATE)return;const o=rn(r.data?.settings?.commonStyles??{...a.COMMON_STYLES}),c=this._getContentSnapshot(o);c!==this._prevContentSnapshot&&(this._prevContentSnapshot=c,this._contentStylesChanged.fire(o))})})();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=nn(n);this._prevLayoutSnapshot=this._getLayoutSnapshot(r),this._layoutSettingsChanged.fire(r)}async _waitForEmailSettingsFromIframe(e=Sf){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(i=>{let o=!1,c;const l=()=>{c&&(clearTimeout(c),c=void 0)},u=s(()=>{o||(o=!0,l(),u.dispose(),i())});c=setTimeout(()=>{o||(o=!0,u.dispose(),i())},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=Zt(n.buttons||{},e.buttons,["border","borderRadius","padding"],{border:X.border,borderRadius:X.borderRadius,padding:X.padding})),e.block!==void 0&&(n.block=Zt(n.block||{},e.block,["padding"],{padding:X.padding})),e.cards!==void 0&&(n.cards=Zt(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=rn(n);this._prevContentSnapshot=this._getContentSnapshot(s),this._contentStylesChanged.fire(s)}},If={...Bs,EmailSettingsApi:Gs},wf={...Bs},tm={...wf,EmailSettingsApi:Gs},Tf={...If};function Af(){Ns.addAll(Tf)}var Cf=[a.defineMixin(()=>{Af()}),Gu,Vu,$u,a.JWTMixin,Bu,a.OAuthMixin];async function Pf(){return(await De()).asyncMixins}var Df=Zu,Rf=e=>{let t=null,n=!1;return{instance:{},async setOptions(r){if(!t&&!n){let s;try{s=await Pf()}catch(o){throw e.failPendingWaits(o),o}t=s(e);const i=await e.getInstanceAsync(a.INSTANCE_ID);Object.assign(i,t.instance||{})}t&&await t.setOptions(r)},dispose(){t?.dispose(),n=!0}}},Of=a.combineMixins([...Cf]);function sn(){let e,t=!1;const n=new Map,r=new Map;function s(){for(const i of r.values())i();r.clear()}return{event(i,o,c){const l=Symbol("subscription");return t||(n.set(l,{listener:i,priority:o,thisArg:c}),e&&r.set(l,e(i,o,c))),()=>{n.delete(l),r.get(l)?.(),r.delete(l)}},attach(i){s(),e=i;for(const[o,{listener:c,priority:l,thisArg:u}]of n)r.set(o,i(c,l,u))},dispose(){t=!0,s(),n.clear(),e=void 0}}}var Vs=a.createIdentifier$1("NotificationService");function Lf(e){const t=sn(),n=sn(),r=sn();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 i=e.getInstance(Vs);if(!i)throw new Error("[plugin] notify() вызван до загрузки редактора");i.notify(s)}}}var Nf=[Lc,Pu,Lf];function xf(e,t=Nf){const n=Vt(e);Mu(e);const r=Of(e),s=Df(e),i=Rf(e),o={...r.instance,...s.instance,...i.instance};for(const l of t)Object.assign(o,l(e));let c=!0;return{instance:o,async setOptions(l){await r.setOptions(l);const u=c&&n.get()===l;c=!1,u||n.set(l),await s.setOptions(l),await i.setOptions(l)}}}var Mf=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]}},Ff="editor-runtime.react.copies",on=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 kf(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 Bf(e,t,n){return e.package===t&&e.version===n}function jf({ourReact:e,entries:t,packageName:n,version:r}){const s=Ys(e);if(!s||!Array.isArray(t))return[];const i=[],o=new Set;for(const c of t){const l=Oe(c);if(!l||!Bf(l,n,r))continue;const u=Ys(l.react);!u||u===s||o.has(u)||(o.add(u),i.push({package:n,version:r,reactVersion:kf(l.react),react:l.react}))}return i}function Uf({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,on))n.push(` • React ${r.reactVersion}, loaded through ${r.package}@${r.version}/runtime/react`);return t.length>on&&n.push(` …and ${t.length-on} 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 zs=new Set;function Hf({packageName:e="@emailmaker/emailmaker",version:t="1.1.85-dev.3",log:n=r=>{}}={}){const r=s=>{try{const i=globalThis[Symbol.for(Ff)],o=jf({ourReact:s,entries:i,packageName:e,version:t}).filter(c=>!zs.has(c.react));if(!o.length)return;o.forEach(c=>zs.add(c.react)),n(Uf({packageName:e,copies:o}))}catch{}};try{const s=rt()?.modules?.React;if(s&&typeof s.then=="function"){s.then(r,()=>{});return}r(s)}catch{}}async function $f(e,t){a.throwIfAborted(e.signal);const n=t??a.DependencyResolver.createChild();Vt(n);const r=n.getInstance(a.DISPOSABLE_ID);async function s(){n.inject(a.COOKIE_MANAGER_ID,new Mf),Hf();const i=xf(n),o={...i.instance,container:n,async reset(c){if(a.throwIfAborted(c.signal),r.isDisposed())throw yn();return await i.setOptions(c),o}};n.inject(a.INSTANCE_ID,o);try{if(await i.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(o),o}catch(c){throw r.dispose(),c}}try{return await a.raceWithAbortSignal(s(),e.signal)}catch(i){throw r.isDisposed()||r.dispose(),i}}var Le=new WeakMap;function Gf(e){return e?Le.get(e):void 0}function qs(e){try{e.getInstance(a.DISPOSABLE_ID)?.dispose()}catch{}try{e.dispose()}catch{}}function Vf(e,t){if(!e)return;const n=Le.get(e);n&&n!==t&&qs(n),Le.set(e,t)}function Yf(e,t){e&&Le.get(e)===t&&Le.delete(e)}function zf(e){const t=a.DependencyResolver.createChild();return Qe(e)&&t.inject(a.SECURITY_MODULE_ID,Je(e)),t}var Ne=new WeakMap,qf="data-emailmaker-config-styles";function Kf(e){return typeof e=="string"?e.trim():""}function Ks(e,t){if(e.firstChild){e.insertBefore(t,e.firstChild);return}e.appendChild(t)}function Wf(e,t,n){if(!e||typeof document>"u")return null;const r=Kf(t),s=Ne.get(e),i=n||e;if(!r)return s&&(s.remove(),Ne.delete(e)),null;if(s)return s.textContent!==r&&(s.textContent=r),(s.parentNode!==i||s!==i.firstChild)&&Ks(i,s),s;const o=document.createElement("style");return o.setAttribute(qf,"true"),o.textContent=r,Ks(i,o),Ne.set(e,o),o}function Xf(e){if(!e)return;const t=Ne.get(e);t&&(t.remove(),Ne.delete(e))}var nm=!1;function Ws(){return!1}var rm=28,Jf=`
2128
+ `)}function Es(e){return e.replace(/<title[^>]*>[\s\S]*?<\/title>/gi,"")}function Wd(e,t,n,r){const s=Xd(e,t,n,r);return s===void 0}function Xd(e,t,n,r){const{email:s}=kt(t,!1),i=ve(s,e),o=i.id;if(o===void 0)return"no-id";if(r!==void 0&&r!==o)return"other-id-shown";const c=mt(e)?.current();if(!c)return"no-session";const l=c.get(),u=l.attributes;if(l.serverId!==o)return"document-id";if(u.is_inited!==!0)return"not-inited";const d=Es(jt(n??c.getContent()));if(i.html!==void 0&&Es(jt(i.html))!==d)return"html";if(i.subject!==void 0&&i.subject!==u.subject)return"subject";if(i.preheader!==void 0&&i.preheader!==u.preheader)return"preheader";if(i.common_styles!==void 0&&i.common_styles!==u.common_styles)return"common_styles"}function vs(e,t){const{email:n}=kt(t,!1),r=ve(n,e);if(r.id!==void 0)return JSON.stringify([r.id,r.html===void 0?null:jt(r.html),r.subject??null,r.preheader??null,r.common_styles??null])}function Jd(e,t){const n={...e};return delete n.id,{...n,...t}}function Qd(e){return e.html?e:{...e,html:fs}}function Pe({code:e,project:t,...n},r,s){const i=s??ps(r);return{...n,...e?{html:ge(r).toEditorForm(e)}:{},renderGuid:a.generateUUID(),...i===void 0?{}:{project:i}}}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 _s(e){return mt(e)?.current()?.get().serverId??void 0}function Ut(e,t,n){return n===void 0&&(n=e.post===void 0?_s(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 Ht({code:e,...t},n,r){return r===void 0&&(r=t.parent===void 0?_s(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 Zd=a.createIdentifier$1("emailTemplate.reads");async function eu(e,t){try{return await le(e).email(e).readEmail(t)??void 0}catch(n){n instanceof Error&&n.message;return}}function tu(e,t){const n=e.getOrCreateInstance(Zd,()=>new Map),r=n.get(t);if(r!==void 0)return r;const s=eu(e,t).then(i=>(i===void 0&&n.delete(t),i));return n.set(t,s),s}var nu="EXTERNAL";function ru(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"сохранение не состоялось")}var su="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=qe(t),this._eventLock=qd(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(su,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 tu(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 Bt(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,Ht(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,Ut(s,this._container,t)]);await n.setAll(r)}async setEmail(e,t,n,r,s){const i=this._dataSources.emails,o=i.cache,c=await Bt(this._container),l=r??this._showToken;e=typeof e=="string"?{code:e}:{...e};let u=ve(e,this._container);const d=u.id;let p=d;if(d!==void 0){const m=await i.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 i.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=Jd(m,u))}return d===void 0&&(u=Qd(u)),await o.addOrUpdate(p,()=>u),u}_rememberShow(e){this._prevCommand=e}_isRepeatOfLastShow(e){const t=this._lastShow;if(!t||t.signature!==vs(this._container,e))return!1;const n=Ke(this._container);return n===void 0||n===t.html}_rememberShownContent(e){const t=vs(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),Wd(this._container,e,Ke(this._container),this._prevCommand?.id)||this._isRepeatOfLastShow(e))return;const r=kt(e);r.email.id,this._prevCommand?.id;let s,i="",o=0,c=!1,l,u=Promise.resolve(),d,p=!1;try{this._eventLock.suspendChange();const{email:m,blocks:v,autosaves:S,comments:E,templateId:g,reload:_}=r;s=m.id;const b=ve(m,this._container),I=b.id,A=I??a.generateUUID(),P=await we("getProject",Bt(this._container));a.throwIfAborted(n.signal),i=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)),o=++this._showToken,String(A);const f=[];f.push(this.setBlocks(v)),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,o,i)),await we("setEmail+blocks+revisions",Promise.all(f),{emailId:I??String(A),showId:i,targetShowToken:o}),a.throwIfAborted(n.signal);const y=await this._dataSources.emails.get(String(A)),T=se(this._container),O={id:i,token:o};I===void 0?d=T.startNewDraft(y??b,{patch:b,show:O}):w?d=T.reload(I,{email:y??b,patch:b,show:O}):T.sessionKey()===Se(I)?d=T.show(b,O):d=T.open(I,{email:y??b,patch:b,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:i,navId:String(A),emailId:I,isNew:I===void 0}),p=!0,String(A),c=!0}catch(m){l=m,p&&i&&n.failShow(i,m),String(m)}finally{this._eventLock.resumeChange()}if(!c)throw l instanceof Error?l:new Error(`[emailmaker] show() setup failed: ${String(l??"unknown error")}`);return we("show-init-deferred",Promise.all([u,d?.whenReady().catch(m=>{if(m instanceof ke){const v=Zn(m);throw v?new Error(`[emailmaker] show(): email open failed (${v})`,{cause:m}):m}})??Promise.resolve()]).then(()=>{}),{showId:i,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:nu});if(a.throwIfAborted(e.signal),!n)throw ru(t.saveState().error);return W(Kd(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 au(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 lu(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 ys(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 cu(e,t,n){if(!e?.trim()||!t)return e;const r=lu(e);if(!r)return e;const s=String(t),i=au(n??new Date);let{full:o,index:c}=r;const l=o.length;return/\bem-block-id\s*=/.test(o)||(o=ys(o,"em-block-id",s)),o=ys(o,"em-block-version",i),e.slice(0,c)+o+e.slice(c+l)}function du(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 uu(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:du(e)}}function $t(e,t){return t?uu(t,e):{type:e.type,name:e.name,blockId:e.blockId,project:e.project,insertFrom:e.type}}var Ss=["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"],fu=[...Ss,"html","id","project","password"],tm=new Set(["html",...Ss,"global_block","project"]);function pu(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(fu),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 mu(e,t={}){return!e||typeof e!="object"?{html:"",insertFrom:t.type,name:t.name,project:t.project,id:t.blockId}:{...pu(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 Gt=new WeakMap;function hu(e){let t=Gt.get(e);return t||(t={byId:new Map,fallback:[]},Gt.set(e,t)),t}function gu(e){Gt.delete(e)}function Eu(e,t){const{byId:n,fallback:r}=hu(t);if(e.blockId){const s=n.get(e.blockId);if(s){n.delete(e.blockId);const i=r.indexOf(s);return i>=0&&r.splice(i,1),s}return}for(let s=r.length-1;s>=0;s--){const i=r[s],o=e.name!=null&&e.name!==""&&i.name!=null&&i.name!==""&&i.name===e.name,c=e.type!=null&&e.type!==""&&i.insertFrom===e.type;if(o&&c)return r.splice(s,1),i.id!=null&&i.id!==""&&n.delete(String(i.id)),i}}async function vu(e,t){const{blocks:n}=qe(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 mu(n,t)}async function bu(e,t){const n=Eu(e,t);if(n)return $t(e,n);const r=await _u(t,e);return r?$t(e,r):$t(e,void 0)}var yu=a.createIdentifier("application_block_inserted"),Su=-1e3,Is=new WeakSet;function Iu(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 wu(e){if(!e||Is.has(e))return;Is.add(e);const t=new a.Disposable,n=Y(e);return t.addDisposable(n.addListenerAsyncPipe(yu,async(r,s)=>{const i=Iu(r)?await bu(r,e):r;return s?s(i):i},Su)),t.addDisposable({dispose:()=>{gu(e)}}),t}var ws=100,Tu=class extends a.Disposable{_container;_events;constructor(e){super(),this._container=e;const t=wu(e);t&&this.addDisposable(t)}_get(){const e=this._container,{blocks:t,emails:n,comments:r,emailRevisions:s}=qe(e),i=H(e,a.events.ON_SHARE_ID),o=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),v=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,Hd),_=H(e,a.events.ON_CONTENT_CHANGED_ID),b=H(e,Ud),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&&ve(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?ve(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(b,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:cu(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=>Ut(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?Ut(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=>Ht(w,e))),handleEmailAutosave:N(s.onSave,function({prev:h,patch:w,value:f,source:y}){return{value:bs(f,e),source:y}},h=>h?Ht(h,e):void 0),handleRemoveEmailAutoSave:N(s.onRemove,({value:h,source:w})=>({value:bs(h,e),source:w}),()=>{}),handleEmailChanged:N(a.debounce(d,ws),h=>W(h,e)),handleEmailInit:N(P,h=>W(h,e)),handlePreviousButtonClick:N(I,h=>W(h,e)),handleNextButtonClick:N(v,h=>W(h,e)),handleSaveButtonClick:N(m,h=>W(h,e)),handleHtmlChanged:N(a.debounce(_,ws)),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(i),handlePreviewEmail:N(o),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])}},Au=a.createIdentifier$1("DataController"),Cu=a.createIdentifier$1("DataEvents");function Ts(e){return e.getOrCreateInstance(Au,()=>{const t=new iu(e);return e.getInstance(a.DISPOSABLE_ID)?.addDisposable(t),t})}function As(e){return e.getOrCreateInstance(Cu,()=>new Tu(e))}var Pu=a.createIdentifier$1("plugin.startupShow");function Du(e){const t=Ts(e),n=As(e),r=e.getInstance(a.OPTIONS_SOURCE_ID),s=e.getInstance(a.DISPOSABLE_ID),i={current:Promise.resolve()};e.inject(Pu,i);const o=r?.watch(l=>{l&&n.setOptions(l)}),c=r?.select(l=>l?.content).watch(l=>{l!==void 0&&(j(z.showStart),i.current=(async()=>{try{await t.show(l)}catch{}finally{j(z.showEnd)}})())});o&&s?.addDisposable(o),c&&s?.addDisposable(c)}function Ru(e){const t=Ts(e);return{...As(e).get(),show(n){return j(z.showStart),t.show(n).finally(()=>j(z.showEnd))},save(){return t.save()}}}function nm(e){return e}var Ou=[{name:"rest.client",setup:Md},{name:"auth.oauth",setup:a.provideOAuth},{name:"rest.identityHeaders",setup:Rd},{name:"lifetime.destroyable",provides:[Rt],setup:Nc},{name:"appInit",provides:[a.APP_ID,it],setup:Mi},{name:"config",provides:[a.CONFIG_SOURCE_ID],setup:Oc},{name:"email.documents",setup:Jc},{name:"show.initPipeline",provides:[a.INIT_PIPELINE_ID],setup:Fd},{name:"show",setup:Du},{name:"locale.service",provides:[Ce],setup:Ad},{name:"locale.fromConfig",awaits:{services:[a.CONFIG_SOURCE_ID,Ce]},setup:Cd},{name:"canvas.early",setup:Nl},{name:"canvas.previewSettings",setup:Hl},{name:"canvas.sandboxExtensions",setup:Gl},{name:"canvas.headerSync",provides:[xr],setup:Fl},{name:"canvas.ampSync",setup:da},{name:"canvas.moduleBridge",setup:Ma},{name:"canvas.port",setup:_a},{name:"canvas.images",setup:Ea},{name:"canvas.edits",setup:ml},{name:"canvas.blockContent",setup:ll},{name:"canvas.sandboxFill",provides:[St],setup:oc},{name:"canvas.reactions",setup:Rl}],Lu=class extends Error{cycle;constructor(e){super(`[units] цикл в зависимостях: ${e.join(" → ")}`),this.cycle=e}};function Nu(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 xu(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 Cs(e){const t=Nu(e),n=[],r=new Set,s=[],i=new Set,o=c=>{if(!r.has(c)){if(i.has(c)){const l=s.indexOf(c);throw new Lu([...s.slice(l),c].map(u=>u.name))}i.add(c),s.push(c);for(const l of xu(c,t))o(l);s.pop(),i.delete(c),r.add(c),n.push(c)}};for(const c of e)o(c);return n}var Ps;function Vt(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),Ps??=Cs(Ou);for(const r of Ps)r.setup(e);return n}function Mu(e){}var Fu=[{name:"save.previewFollow",setup:Mu}],Ds=a.createIdentifier$1("plugin.lateUnitsInstalled");function ku(e){if(!e.getInstance(Ds)){e.inject(Ds,!0);for(const t of Cs(Fu))t.setup(e)}}function Bu(e,t){return{project:Number(e),app_id:t?.app_id||0,app_config:t?.app_config||{},user:t?.user}}function ju(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 Uu=a.defineMixin(e=>{let t,n,r;return{async setOptions(s){const i=r!==s.getAuthToken,o=!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)&&!(!i&&!o&&!c))try{const l=await s.getAuthToken(s.user,s.project);e.inject(a.STANDALONE_BOOTSTRAP_TOKEN_ID,Promise.resolve(l||""));const u=ju(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(Bu(u,p)))}catch{}}}});function Hu(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 $u(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 Gu(e){return e.standaloneOnAuthFailure===!0?!0:e.config?.standaloneOnAuthFailure===!0}function Yt(e){return Gu(e)?!!Je(e):!1}function Qe(e){return!!Je(e)&&!Yt(e)}var Vu=a.defineMixin(e=>{let t,n=!1;return{setOptions(r){const s=n;if(n=!0,!Qe(r)){t&&($u(e),Yt(r)),t=void 0;return}const i=Je(r);if(!i||t===i&&e.getInstance(a.SECURITY_MODULE_ID))return;t=i,e.inject(a.SECURITY_MODULE_ID,i);const o=e.getInstance(a.DISPOSABLE_ID);o&&Hu(e,o)}}}),Yu=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:i}){s.setListener(i)},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),i=N(n.event),o=N(r.event),c=N(s.event),l=t.addDisposable(new Ee(i)),u=t.addDisposable(new Ee(o)),d=t.addDisposable(new Ee(c));return{instance:{handleSetOptions:i,handleOptionsChanged:o,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,Rs="core";function qu(){const e=__emailmaker__?.require;return typeof e!="function"?Promise.reject(new Error("[loadCore] AMD loader is unavailable")):new Promise((t,n)=>{e([Rs],r=>t(r),r=>n(r instanceof Error?r:new Error("[loadCore] Failed to require core module")))})}function Ku(e){const t=__emailmaker__?.require?.warm;return typeof t!="function"?De().then(()=>{}):t([Rs],e)}function De(){return zt===void 0&&(zt=qu().then(e=>(be()&&e.installDiagnostics().catch(t=>{}),e))),zt}var qt=null,Kt=null;async function Wu(e){typeof e?.prefetch=="function"&&await e.prefetch()}function Wt(){return qt||(qt=De().then(()=>{})),qt}function Os(e){return Kt||(Kt=Wu(e)),Kt}function Xu(){return Os(typeof __emailmaker__<"u"?__emailmaker__:void 0)}function Ju(e){return Promise.all([Wt(),Os(e)]).then(()=>{})}function Qu(e){const t=e?.preload?.start??e?.startupPrefetchMode;return t==="eager"||t==="idle"||t==="manual"||t==="off"?t:"idle"}function Ls(e,t){const n=e?.preload?.execute!==!1;Promise.resolve().then(()=>Ku(t?{priority:t}:void 0)).then(()=>n?Wt():void 0).catch(()=>{})}function Zu(e){const t=Qu(e);if(t==="eager")Ls(e);else if(t==="idle"){const n=()=>Ls(e,"low");document.readyState==="complete"?n():window.addEventListener("load",n,{once:!0})}}var Ns="PluginRegistry";function ef(e=a.resolveContainer()){return e.getOrCreateInstance(Ns,()=>new gi)}var xs=new Ei(()=>ef()),tf=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),i=e.getInstance(Ns);t||(t=new hi(s,i,{ensureHostRuntimeReady:Xu}),e.inject(a.PLUGIN_COLLECTION_ID,t));const o=r?.plugins||[];s&&await t.setPlugins(o)},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}}}),Ms=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}},nf=a.createIdentifier$1("ELEMENT_INSERT_HTML_PIPELINE"),rf=a.createIdentifier$1("BLOCK_INSERT_HTML_PIPELINE"),sf="application_block_inserted",of=class{_context;constructor(e){this._context=e}get _container(){return this._context.container}handleBeforeInject(e,t,n){return this._container.getOrCreateInstance(rf,()=>new Ms).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(sf,s,t)}},af=a.createIdentifier$1("ComponentRegistry"),Fs;function Re(e,t=af){const n=a.DependencyResolver.getInstance(t);if(n)return n;if(!Fs)throw new Error("[extensions] component registry is not loaded yet — UI work starts at init()");return a.DependencyResolver.getOrCreateInstance(t,Fs)}var lf=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 i=s.value.find(o=>o.name===e);if(i){const{icon:o,title:c,fallbackTooltip:l,...u}=t;o&&(i.icon=r.getReactNode(o)),c&&(i.title=r.getReactNode(c)),l&&(i.fallbackTooltip=r.getReactNode(l)),Object.assign(i,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(nf,()=>new Ms).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)}},cf=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 df(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>n!==void 0))}var uf=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(df({...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}))}},ff=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(),i=()=>{this._loadedSettled||(this._loadedSettled=!0,this._readySettled&&s(),n())},o=c=>{this._loadedSettled||(this._loadedSettled=!0,this._readySettled&&s(),r(c))};this._resolveLoaded=i,this._rejectLoaded=o}),this.ready=new Promise((n,r)=>{const s=()=>this._loadedDisposable.dispose(),i=()=>{this._readySettled||(this._readySettled=!0,this._loadedSettled&&s(),n())},o=c=>{this._readySettled||(this._readySettled=!0,this._loadedSettled&&s(),r(c))};this._resolveReady=i,this._rejectReady=o})}_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)}},pf=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 ff(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)}},mf=new Set([Symbol.for("react.element"),Symbol.for("react.transitional.element")]);function Xt(e){if(typeof e!="object"||e===null)return!1;const t=e.$$typeof;return typeof t=="symbol"&&mf.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 Jt(){return`__settingsPanel:${ks()}`}function Qt(e,t){return{type:e,props:t}}function hf(e){return typeof e=="object"&&e!==null&&"type"in e&&"props"in e&&!Xt(e)}function Bs(e,t,n){if(t==null||typeof t=="number"||typeof t=="boolean"||typeof t=="string")return t;if(Xt(t)){const r=Jt();return n(e.add(r,t)),Qt(r,{})}if(typeof t=="function"){const r=Jt();return n(e.add(r,t)),Qt(r,{})}if(hf(t)){const r=t.type;if(typeof r=="string")return t;if(Xt(r)||typeof r=="function"){const s=Jt();return n(e.add(s,r)),Qt(s,t.props)}return t}return t}var gf=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=o=>this._trackRegistration(o),r=Bs(t,e.content,n),s=e.advancedTabs?.map(o=>({...o,content:Bs(t,o.content,n)})),i=e.instanceKey??ks();a.getEmitter$1(this._container,a.SETTINGS_PANEL_EVENT).fire({...e,content:r,advancedTabs:s,instanceKey:i,type:a.ADVANCED_SETTINGS_PANEL})}closeSettingsPanel(){this._clearPanelRegistrations(),a.getEmitter$1(this._container,a.SETTINGS_PANEL_EVENT).fire(null)}},js={SandboxScriptApi:pf,ElementsApi:lf,BlocksApi:of,MessageService:cf,SettingsPanelApi:gf,ModalApi:uf};function Zt(e,t,n,r={}){const s=Object.assign({},e);for(const[i,o]of Object.entries(t))if(o!==void 0)if(n.includes(i)&&typeof o=="object"&&o!==null){const c=s[i],l=r[i]??{};s[i]=Object.assign({},typeof c=="object"&&c!==null?c:l,o)}else s[i]=o;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}},Ef={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"},en={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},Us={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},Hs={backgroundColor:"#FFFFFF",contrastBackgroundColor:"#1C52DC",padding:X.padding},tn={contrastBackgroundColor:"#1C52DC",contrastTextColor:"#FFFFFF",baseBackgroundColor:"#F8F8F8",baseTextColor:"#333333",border:X.border,borderRadius:X.borderRadiusCards};function vf(e){return{...Ef,...e}}function _f(e){return{...en,...e,bold:e?.bold??en.bold,italic:e?.italic??en.italic}}function bf(e){return{...Us,...e,underline:e?.underline??Us.underline}}function yf(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 Sf(e){return{...Hs,...e,padding:{...Hs.padding,...e?.padding}}}function If(e){return{...tn,...e,border:{...tn.border,...e?.border},borderRadius:{...tn.borderRadius,...e?.borderRadius}}}function nn(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 $s(e){let t={...a.COMMON_STYLES};try{e&&e!=="{}"&&(t=JSON.parse(e))}catch{}return t}function rn(e){return{text:vf(e.text),headings:_f(e.headings),links:bf(e.links),buttons:yf(e.buttons),block:Sf(e.block),cards:If(e.cards)}}var Gs=a.createIdentifier$1("EmailSettingsPort"),wf=1e4,Vs=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(Gs);if(!t)throw new Error("[extensions] настройки письма ещё не загружены — работа с UI начинается с init()");return t}_getCurrentLayoutSettings(){return nn(this._settings().read())}_getCurrentContentStyles(){const e=at(this._editor.container)?.current()?.get().attributes.common_styles;return rn($s(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(Gs),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,i=s?.operation;if(i===a.EVENT_TYPES.APPLICATION_EMAIL_SETTINGS_SET){const l=nn(s?.settings),u=this._getLayoutSnapshot(l);u!==this._prevLayoutSnapshot&&(this._prevLayoutSnapshot=u,this._layoutSettingsChanged.fire(l));return}if(i!==a.EVENT_TYPES.APPLICATION_COMMON_STYLES_UPDATE)return;const o=rn(r.data?.settings?.commonStyles??{...a.COMMON_STYLES}),c=this._getContentSnapshot(o);c!==this._prevContentSnapshot&&(this._prevContentSnapshot=c,this._contentStylesChanged.fire(o))})})();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=nn(n);this._prevLayoutSnapshot=this._getLayoutSnapshot(r),this._layoutSettingsChanged.fire(r)}async _waitForEmailSettingsFromIframe(e=wf){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(i=>{let o=!1,c;const l=()=>{c&&(clearTimeout(c),c=void 0)},u=s(()=>{o||(o=!0,l(),u.dispose(),i())});c=setTimeout(()=>{o||(o=!0,u.dispose(),i())},e)})}async getEmailContentStyles(){return this._getCurrentContentStyles()}async setEmailContentStyles(e){const t=at(this._editor.container)?.current();if(!t)return;const n=$s(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=Zt(n.buttons||{},e.buttons,["border","borderRadius","padding"],{border:X.border,borderRadius:X.borderRadius,padding:X.padding})),e.block!==void 0&&(n.block=Zt(n.block||{},e.block,["padding"],{padding:X.padding})),e.cards!==void 0&&(n.cards=Zt(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=rn(n);this._prevContentSnapshot=this._getContentSnapshot(s),this._contentStylesChanged.fire(s)}},Tf={...js,EmailSettingsApi:Vs},Af={...js},rm={...Af,EmailSettingsApi:Vs},Cf={...Tf};function Pf(){xs.addAll(Cf)}var Df=[a.defineMixin(()=>{Pf()}),Yu,zu,Vu,a.JWTMixin,Uu,a.OAuthMixin];async function Rf(){return(await De()).asyncMixins}var Of=tf,Lf=e=>{let t=null,n=!1;return{instance:{},async setOptions(r){if(!t&&!n){let s;try{s=await Rf()}catch(o){throw e.failPendingWaits(o),o}t=s(e);const i=await e.getInstanceAsync(a.INSTANCE_ID);Object.assign(i,t.instance||{})}t&&await t.setOptions(r)},dispose(){t?.dispose(),n=!0}}},Nf=a.combineMixins([...Df]);function sn(){let e,t=!1;const n=new Map,r=new Map;function s(){for(const i of r.values())i();r.clear()}return{event(i,o,c){const l=Symbol("subscription");return t||(n.set(l,{listener:i,priority:o,thisArg:c}),e&&r.set(l,e(i,o,c))),()=>{n.delete(l),r.get(l)?.(),r.delete(l)}},attach(i){s(),e=i;for(const[o,{listener:c,priority:l,thisArg:u}]of n)r.set(o,i(c,l,u))},dispose(){t=!0,s(),n.clear(),e=void 0}}}var Ys=a.createIdentifier$1("NotificationService");function xf(e){const t=sn(),n=sn(),r=sn();return e.getInstance(a.DISPOSABLE_ID)?.addDispose(()=>{t.dispose(),n.dispose(),r.dispose()}),e.getInstanceAsync(Ys).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 i=e.getInstance(Ys);if(!i)throw new Error("[plugin] notify() вызван до загрузки редактора");i.notify(s)}}}var Mf=[xc,Ru,xf];function Ff(e,t=Mf){const n=Vt(e);ku(e);const r=Nf(e),s=Of(e),i=Lf(e),o={...r.instance,...s.instance,...i.instance};for(const l of t)Object.assign(o,l(e));let c=!0;return{instance:o,async setOptions(l){await r.setOptions(l);const u=c&&n.get()===l;c=!1,u||n.set(l),await s.setOptions(l),await i.setOptions(l)}}}var kf=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]}},Bf="editor-runtime.react.copies",on=8;function Oe(e){return e&&typeof e=="object"?e:void 0}function zs(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 jf(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 Uf(e,t,n){return e.package===t&&e.version===n}function Hf({ourReact:e,entries:t,packageName:n,version:r}){const s=zs(e);if(!s||!Array.isArray(t))return[];const i=[],o=new Set;for(const c of t){const l=Oe(c);if(!l||!Uf(l,n,r))continue;const u=zs(l.react);!u||u===s||o.has(u)||(o.add(u),i.push({package:n,version:r,reactVersion:jf(l.react),react:l.react}))}return i}function $f({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,on))n.push(` • React ${r.reactVersion}, loaded through ${r.package}@${r.version}/runtime/react`);return t.length>on&&n.push(` …and ${t.length-on} 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 Gf({packageName:e="@emailmaker/emailmaker",version:t="1.1.85-dev.4",log:n=r=>{}}={}){const r=s=>{try{const i=globalThis[Symbol.for(Bf)],o=Hf({ourReact:s,entries:i,packageName:e,version:t}).filter(c=>!qs.has(c.react));if(!o.length)return;o.forEach(c=>qs.add(c.react)),n($f({packageName:e,copies:o}))}catch{}};try{const s=rt()?.modules?.React;if(s&&typeof s.then=="function"){s.then(r,()=>{});return}r(s)}catch{}}async function Vf(e,t){a.throwIfAborted(e.signal);const n=t??a.DependencyResolver.createChild();Vt(n);const r=n.getInstance(a.DISPOSABLE_ID);async function s(){n.inject(a.COOKIE_MANAGER_ID,new kf),Gf();const i=Ff(n),o={...i.instance,container:n,async reset(c){if(a.throwIfAborted(c.signal),r.isDisposed())throw Sn();return await i.setOptions(c),o}};n.inject(a.INSTANCE_ID,o);try{if(await i.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(o),o}catch(c){throw r.dispose(),c}}try{return await a.raceWithAbortSignal(s(),e.signal)}catch(i){throw r.isDisposed()||r.dispose(),i}}var Le=new WeakMap;function Yf(e){return e?Le.get(e):void 0}function Ks(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&&Ks(n),Le.set(e,t)}function qf(e,t){e&&Le.get(e)===t&&Le.delete(e)}function Kf(e){const t=a.DependencyResolver.createChild();return Qe(e)&&t.inject(a.SECURITY_MODULE_ID,Je(e)),t}var Ne=new WeakMap,Wf="data-emailmaker-config-styles";function Xf(e){return typeof e=="string"?e.trim():""}function Ws(e,t){if(e.firstChild){e.insertBefore(t,e.firstChild);return}e.appendChild(t)}function Jf(e,t,n){if(!e||typeof document>"u")return null;const r=Xf(t),s=Ne.get(e),i=n||e;if(!r)return s&&(s.remove(),Ne.delete(e)),null;if(s)return s.textContent!==r&&(s.textContent=r),(s.parentNode!==i||s!==i.firstChild)&&Ws(i,s),s;const o=document.createElement("style");return o.setAttribute(Wf,"true"),o.textContent=r,Ws(i,o),Ne.set(e,o),o}function Qf(e){if(!e)return;const t=Ne.get(e);t&&(t.remove(),Ne.delete(e))}var an=new WeakMap;function Xs(e){const t=(an.get(e)??0)+1;an.set(e,t);const n=Object.create(e);return n.destroy=()=>{an.get(e)===t&&e.destroy()},n}var sm=!1;function Js(){return!1}var im=28,Zf=`
2130
2130
  .blocks-app-initial-spinner-wrapper {
2131
2131
  width: 100%;
2132
2132
  height: 100%;
@@ -2155,7 +2155,7 @@ __emailmaker__.define("emailmaker.js",["require","exports","module","static/umd/
2155
2155
  100% {
2156
2156
  transform: rotate(360deg);
2157
2157
  }
2158
- }`;function Qf(){return()=>{}}function Zf(e,t){if(!Ws()||!e||typeof document>"u")return Qf();e.querySelectorAll(".blocks-app-initial-spinner-wrapper").forEach(o=>{o.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=Jf,document.head?.appendChild(s),e.appendChild(n);let i=!1;return()=>{i||(i=!0,n.remove(),s.remove())}}function ep(e){if(!(e instanceof Error))return!1;const t=e;return t.terminal===!0||t.status===403||t.status===404}function tp({report:e}={}){const t=new Map,n=new Set,r=e??(s=>{});return{run(s,i){const o=t.get(s);if(o!==void 0)return o;const c=i().catch(l=>{throw n.has(s)||(n.add(s),r(l)),ep(l)||t.delete(s),l});return t.set(s,c),c},clear(){t.clear(),n.clear()},size(){return t.size}}}var an=tp();function Xs(){an.clear()}a.setApiOriginFailoverHook(()=>an.clear());var Js=new WeakMap,Qs=new WeakMap;function np(e,t){let n=Qs.get(t);n||(n=new Map,Qs.set(t,n));const r=n.get(e);if(r!==void 0)return r;const s=t.getInstance(a.CUSTOM_FETCH_ID),i=a.createTransport({baseUrl:e,customFetch:s?.execute??fetch},t);return n.set(e,i),i}function ln(e){return a.resolveExplicitApiBaseUrl(e)}function rp(e,t){const n=new Error(`[Loader] appInit request failed: ${e} ${t}`);return n.status=e,n}function sp(){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 op(e,t){return async({baseUrl:n})=>{const r=ln(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 sp();const i=t();if(!i)throw new Error("[Loader] appInit requires the instance container");const o=new In(np(r,i)),c={headers:Object.fromEntries(s.entries()),credentials:"same-origin",failoverAttemptTimeout:Yt(e)||void 0},l=await o.app_init_create({},c);if(!l.ok)throw rp(l.status,l.statusText);return l.data}}function ap(e){return JSON.stringify({baseUrl:ln(e.baseUrl)||"",project:e.project??"",userId:e.user?.id??""})}function lp(e){return e.appInit?!0:!(e.jwtAuth&&!e.getAuthToken)}function cp(e){return t=>an.run(ap(t),()=>(j("appInit:start",{kind:"network"}),Promise.resolve(e(t)).finally(()=>j("appInit:end",{kind:"network"}))))}function dp(e,t){if(Qe(e)||!e.appInit&&!ln(e.baseUrl)||!lp(e))return e;const n=e.appInit??op(e,t);let r=Js.get(n);return r||(r=cp(n),Js.set(n,r)),{...e,appInit:r}}var Zs=0;function up(){return Zs}function fp(){Zs+=1,Xs()}var ei=new WeakMap,ti=new WeakMap,pp=3e4;function mp(e,t){return JSON.stringify({userId:e?.id??"",project:t??""})}function hp(e,t){try{const n=a.decodeJwt(e)?.exp;if(typeof n=="number"&&Number.isFinite(n)&&n>0)return n*1e3}catch{}return t+pp}function gp(e){const t=new Map,n=new Map;return async(r,s,i)=>{const o=mp(r,s);if(i)return n.delete(o),t.delete(o),Xs(),e(r,s,i);const c=n.get(o);if(c&&!t.has(o)){if(c.expiresAtMs>Date.now())return c.token;n.delete(o)}let l=t.get(o);return l===void 0&&(j("authToken:start",{kind:"network"}),l=Promise.resolve(e(r,s,i)).then(u=>{const d=String(u||"").trim();return d&&n.set(o,{token:u,expiresAtMs:hp(d,Date.now())}),u}).finally(()=>{j("authToken:end",{kind:"network"}),t.delete(o)}),t.set(o,l)),l}}function Ep(e){if(Qe(e))return e;const t=e.getAuthToken;if(!t)return e;let n=ei.get(t);const r=up();return(!n||ti.get(t)!==r)&&(n=gp(t),ei.set(t,n),ti.set(t,r)),Promise.resolve(n(e.user,e.project,void 0)).catch(s=>{}),{...e,getAuthToken:n}}var cn="Editor mount element was removed from the document. Call instance.destroy() on host unmount.";function vp(){return a.createAbortError(cn)}function ni(e){return!(e instanceof DOMException)||e.name!=="AbortError"?!1:e.message===cn}function _p(e,t,n){if(typeof document>"u")return;let r=!1,s;const i=()=>{r=!0,s?.disconnect(),s=void 0},o=()=>{r||(i(),t())};if(n.addDispose(i),!e.isConnected){queueMicrotask(o);return}s=new MutationObserver(()=>{e.isConnected||o()});let c=e.parentNode;for(;c;)s.observe(c,{childList:!0}),c=c.parentNode}function bp(e){const{hostElementOption:t,resolvedElement:n,externalSignal:r,disposable:s}=e;if(t===void 0||!(n instanceof Element))return r;const i=new AbortController;return _p(n,()=>{n.id,i.abort(vp())},s),a.composeAbortSignals(r,i.signal)}var dn="Superseded by newer init() on the same mount element";function ri(){return a.createAbortError(dn)}function si(e){return!(e instanceof DOMException)||e.name!=="AbortError"?!1:e.message===dn}var Ze=new Map,et=new WeakMap;function yp(e){if(e instanceof Element){const t=e.id?.trim();if(t)return`#${t}`}}function Sp(e){if(!e)return{release:()=>{}};const t=yp(e);et.get(e)?.abort(ri()),t&&Ze.get(t)?.abort(ri());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 Ip=hn({FileManagerApiError:()=>wp}),wp=class ai 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,ai)}},Tp=hn({mapHttpStatusToErrorCode:()=>a.mapHttpStatusToErrorCode});function Ap(e,t){return{...e,element:t}}function un(){return()=>{}}function Cp(e){const t=e.element;return!t||typeof t=="string"||typeof document>"u"?un():(Wf(t,e.config?.styles,t),()=>{Xf(t)})}function Pp(e){if(!Ws()||e.initialSpinner===!1||typeof document>"u")return{options:e,cleanup:un()};const t=e.element;if(!t||typeof t=="string")return{options:e,cleanup:un()};t.querySelectorAll(".blocks-app-initial-spinner-wrapper").forEach(s=>{s.remove()});const n=Zf(t,"data-emailmaker"),r=e.handleChunkLoaded;return{options:{...e,handleChunkLoaded:()=>{n(),r?.()}},cleanup:n}}function ii(e){return e instanceof DOMException&&e.name==="AbortError"}function oi(e){try{e.destroy()}catch{}}function fn(e,...t){const n=a.ELEMENT_MAP.get(e);t.some(r=>r!==void 0&&r===n)&&a.ELEMENT_MAP.delete(e)}var Dp="1.1.85-dev.3";async function Rp(e){await Wu(typeof __emailmaker__<"u"?__emailmaker__:void 0)}async function Op(e){j(z.initStart);const t=await Lp(e);return j(z.initEnd),t}async function Lp(e){a.throwIfAborted(e.signal);const t=new a.Disposable;let n;try{const r=await a.waitForElement(e.element,t,e.signal),s=bp({hostElementOption:e.element,resolvedElement:r,externalSignal:e.signal,disposable:t}),i=Sp(r);n=i.release;const o=a.composeAbortSignals(s,i.signal);return await a.raceWithAbortSignal(Np(e,r,o),o)}finally{n?.(),t.dispose()}}async function Np(e,t,n){a.throwIfAborted(n),fp();const r=Ap(e,t),s=Ep(r);let i;const o=dp(s,()=>i),c=n!=null?{...o,signal:n}:o;if(t){const m=a.ELEMENT_MAP.get(t);if(m){let v;try{v=await m,a.throwIfAborted(n)}catch(S){if(a.throwIfAborted(n),fn(t,m),ii(S))throw S;v=void 0}if(v)if(v.getElement()===t)try{return i=Gf(t),await v.reset(c)}catch(S){if(a.throwIfAborted(n),si(S)||ni(S)||ii(S)&&n?.aborted)throw S;fn(t,m,v),oi(v)}else fn(t,m,v),oi(v)}}a.throwIfAborted(n);const l=Cp(o),u=Pp(o),d=n!=null?{...u.options,signal:n}:u.options;let p;try{i=zf(d),Vf(t,i),Vt(i).set(d),await Wt(),j(z.coreReady),a.throwIfAborted(n),a.throwIfAborted(n),p=$f(d,i),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(),i&&(qs(i),Yf(t,i)),t&&p&&a.ELEMENT_MAP.get(t)===p&&a.ELEMENT_MAP.delete(t),m}}async function xp(e){return(await De()).parseAMP(e)}typeof window<"u"&&(be()&&Pi(),Ju(typeof __emailmaker__<"u"?__emailmaker__:void 0)),K.ELEMENT_DETACHED_ABORT_MESSAGE=cn,K.SUPERSEDED_INIT_ABORT_MESSAGE=dn,Object.defineProperty(K,"errors",{enumerable:!0,get:function(){return Ip}}),Object.defineProperty(K,"helpers",{enumerable:!0,get:function(){return Tp}}),K.init=Op,K.isElementDetachedError=ni,K.isSupersededInitError=si,K.parseAMP=xp,K.pluginRegistry=Ns,K.preload=Rp,K.version=Dp});
2158
+ }`;function ep(){return()=>{}}function tp(e,t){if(!Js()||!e||typeof document>"u")return ep();e.querySelectorAll(".blocks-app-initial-spinner-wrapper").forEach(o=>{o.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=Zf,document.head?.appendChild(s),e.appendChild(n);let i=!1;return()=>{i||(i=!0,n.remove(),s.remove())}}function np(e){if(!(e instanceof Error))return!1;const t=e;return t.terminal===!0||t.status===403||t.status===404}function rp({report:e}={}){const t=new Map,n=new Set,r=e??(s=>{});return{run(s,i){const o=t.get(s);if(o!==void 0)return o;const c=i().catch(l=>{throw n.has(s)||(n.add(s),r(l)),np(l)||t.delete(s),l});return t.set(s,c),c},clear(){t.clear(),n.clear()},size(){return t.size}}}var ln=rp();function Qs(){ln.clear()}a.setApiOriginFailoverHook(()=>ln.clear());var Zs=new WeakMap,ei=new WeakMap;function sp(e,t){let n=ei.get(t);n||(n=new Map,ei.set(t,n));const r=n.get(e);if(r!==void 0)return r;const s=t.getInstance(a.CUSTOM_FETCH_ID),i=a.createTransport({baseUrl:e,customFetch:s?.execute??fetch},t);return n.set(e,i),i}function cn(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 op(){const e=new Error("[Loader] appInit skipped: empty auth token");return e.terminal=!0,e}async function ap(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 lp(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 ap(e))throw op();const i=t();if(!i)throw new Error("[Loader] appInit requires the instance container");const o=new wn(sp(r,i)),c={headers:Object.fromEntries(s.entries()),credentials:"same-origin",failoverAttemptTimeout:Yt(e)||void 0},l=await o.app_init_create({},c);if(!l.ok)throw ip(l.status,l.statusText);return l.data}}function cp(e){return JSON.stringify({baseUrl:cn(e.baseUrl)||"",project:e.project??"",userId:e.user?.id??""})}function dp(e){return e.appInit?!0:!(e.jwtAuth&&!e.getAuthToken)}function up(e){return t=>ln.run(cp(t),()=>(j("appInit:start",{kind:"network"}),Promise.resolve(e(t)).finally(()=>j("appInit:end",{kind:"network"}))))}function fp(e,t){if(Qe(e)||!e.appInit&&!cn(e.baseUrl)||!dp(e))return e;const n=e.appInit??lp(e,t);let r=Zs.get(n);return r||(r=up(n),Zs.set(n,r)),{...e,appInit:r}}var ti=0;function pp(){return ti}function mp(){ti+=1,Qs()}var ni=new WeakMap,ri=new WeakMap,hp=3e4;function gp(e,t){return JSON.stringify({userId:e?.id??"",project:t??""})}function Ep(e,t){try{const n=a.decodeJwt(e)?.exp;if(typeof n=="number"&&Number.isFinite(n)&&n>0)return n*1e3}catch{}return t+hp}function vp(e){const t=new Map,n=new Map;return async(r,s,i)=>{const o=gp(r,s);if(i)return n.delete(o),t.delete(o),Qs(),e(r,s,i);const c=n.get(o);if(c&&!t.has(o)){if(c.expiresAtMs>Date.now())return c.token;n.delete(o)}let l=t.get(o);return l===void 0&&(j("authToken:start",{kind:"network"}),l=Promise.resolve(e(r,s,i)).then(u=>{const d=String(u||"").trim();return d&&n.set(o,{token:u,expiresAtMs:Ep(d,Date.now())}),u}).finally(()=>{j("authToken:end",{kind:"network"}),t.delete(o)}),t.set(o,l)),l}}function _p(e){if(Qe(e))return e;const t=e.getAuthToken;if(!t)return e;let n=ni.get(t);const r=pp();return(!n||ri.get(t)!==r)&&(n=vp(t),ni.set(t,n),ri.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 bp(){return a.createAbortError(dn)}function si(e){return!(e instanceof DOMException)||e.name!=="AbortError"?!1:e.message===dn}function yp(e,t,n){if(typeof document>"u")return;let r=!1,s;const i=()=>{r=!0,s?.disconnect(),s=void 0},o=()=>{r||(i(),t())};if(n.addDispose(i),!e.isConnected){queueMicrotask(o);return}s=new MutationObserver(()=>{e.isConnected||o()});let c=e.parentNode;for(;c;)s.observe(c,{childList:!0}),c=c.parentNode}function Sp(e){const{hostElementOption:t,resolvedElement:n,externalSignal:r,disposable:s}=e;if(t===void 0||!(n instanceof Element))return r;const i=new AbortController;return yp(n,()=>{n.id,i.abort(bp())},s),a.composeAbortSignals(r,i.signal)}var un="Superseded by newer init() on the same mount element";function ii(){return a.createAbortError(un)}function oi(e){return!(e instanceof DOMException)||e.name!=="AbortError"?!1:e.message===un}var Ze=new Map,et=new WeakMap;function Ip(e){if(e instanceof Element){const t=e.id?.trim();if(t)return`#${t}`}}function wp(e){if(!e)return{release:()=>{}};const t=Ip(e);et.get(e)?.abort(ii()),t&&Ze.get(t)?.abort(ii());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 Tp=gn({FileManagerApiError:()=>Ap}),Ap=class ci 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,ci)}},Cp=gn({mapHttpStatusToErrorCode:()=>a.mapHttpStatusToErrorCode});function Pp(e,t){return{...e,element:t}}function fn(){return()=>{}}function Dp(e){const t=e.element;return!t||typeof t=="string"||typeof document>"u"?fn():(Jf(t,e.config?.styles,t),()=>{Qf(t)})}function Rp(e){if(!Js()||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=tp(t,"data-emailmaker"),r=e.handleChunkLoaded;return{options:{...e,handleChunkLoaded:()=>{n(),r?.()}},cleanup:n}}function ai(e){return e instanceof DOMException&&e.name==="AbortError"}function li(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 Op="1.1.85-dev.4";async function Lp(e){await Ju(typeof __emailmaker__<"u"?__emailmaker__:void 0)}async function Np(e){j(z.initStart);const t=await xp(e);return j(z.initEnd),t}async function xp(e){a.throwIfAborted(e.signal);const t=new a.Disposable;let n;try{const r=await a.waitForElement(e.element,t,e.signal),s=Sp({hostElementOption:e.element,resolvedElement:r,externalSignal:e.signal,disposable:t}),i=wp(r);n=i.release;const o=a.composeAbortSignals(s,i.signal);return await a.raceWithAbortSignal(Mp(e,r,o),o)}finally{n?.(),t.dispose()}}async function Mp(e,t,n){a.throwIfAborted(n),mp();const r=Pp(e,t),s=_p(r);let i;const o=fp(s,()=>i),c=n!=null?{...o,signal:n}:o;if(t){const m=a.ELEMENT_MAP.get(t);if(m){let v;try{v=await m,a.throwIfAborted(n)}catch(S){if(a.throwIfAborted(n),pn(t,m),ai(S))throw S;v=void 0}if(v)if(v.getElement()===t)try{return i=Yf(t),Xs(await v.reset(c))}catch(S){if(a.throwIfAborted(n),oi(S)||si(S)||ai(S)&&n?.aborted)throw S;pn(t,m,v),li(v)}else pn(t,m,v),li(v)}}a.throwIfAborted(n);const l=Dp(o),u=Rp(o),d=n!=null?{...u.options,signal:n}:u.options;let p;try{i=Kf(d),zf(t,i),Vt(i).set(d),await Wt(),j(z.coreReady),a.throwIfAborted(n),a.throwIfAborted(n),p=Vf(d,i),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 Xs(m)}catch(m){throw l(),u.cleanup(),i&&(Ks(i),qf(t,i)),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"&&(be()&&Ri(),Zu(typeof __emailmaker__<"u"?__emailmaker__:void 0)),K.ELEMENT_DETACHED_ABORT_MESSAGE=dn,K.SUPERSEDED_INIT_ABORT_MESSAGE=un,Object.defineProperty(K,"errors",{enumerable:!0,get:function(){return Tp}}),Object.defineProperty(K,"helpers",{enumerable:!0,get:function(){return Cp}}),K.init=Np,K.isElementDetachedError=si,K.isSupersededInitError=oi,K.parseAMP=Fp,K.pluginRegistry=xs,K.preload=Lp,K.version=Op});
2159
2159
 
2160
2160
 
2161
2161
  // Возвращаем API из entry модуля