var g=Object.defineProperty;var o=(e,s,t)=>s in e?g(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t;var n=(e,s,t)=>(o(e,typeof s!="symbol"?s+"":s,t),t);import{N as p,eE as c,ej as r}from"./jwt-decode.esm.54a1ea22.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="fe9d0fd9-2d32-43d0-baeb-6e34db5d7c37",e._sentryDebugIdIdentifier="sentry-dbid-fe9d0fd9-2d32-43d0-baeb-6e34db5d7c37")}catch{}})();class b{constructor(){n(this,"topics");n(this,"subUid");this.topics={},this.subUid=-1}subscribe(s,t){const i=(++this.subUid).toString();return this.topics[s]||(this.topics[s]=[]),this.topics[s].push({token:i,func:t}),i}async wait(s){return new Promise(t=>{const i=this.subscribe(s,a=>{this.unsubscribe(i),t(a)})})}async publish(s,...t){if(!this.topics[s])return!1;const i=this.topics[s];let a=i?i.length:0;for(;a--;)await i[a].func(t[0]);return!0}unsubscribe(s){for(const t in this.topics)if(this.topics[t]){for(let i=0,a=this.topics[t].length;i<a;i++)if(this.topics[t][i].token===s)return this.topics[t].splice(i,1),s}return!1}reset(){this.topics={},this.subUid=-1}}class h{constructor(s){n(this,"initialState");n(this,"pubsub");n(this,"_changes");this.initialState=s,this.pubsub=new b,this._changes=p({})}static from(s){return c(new h(s))}get changes(){return this._changes.value}get(s){var t;return(t=this.changes[s])!=null?t:this.initialState[s]}set(s,t){this._changes.value={...this.changes,[s]:t}}hasChanges(s){return s?s in this.changes:Object.keys(this.changes).length>0}hasChangesDeep(s){return s in this.changes&&!r.exports.isEqual(this.initialState[s],this.changes[s])}get state(){return{...this.initialState,...this.changes}}resetChanges(){const s={...this.changes};this._changes.value={},this.pubsub.publish("update",s)}onUpdate(s){this.pubsub.subscribe("update",s)}commit(){this.initialState=this.state,this._changes.value={}}toDTO(){return{...this.state,...this._changes.value}}update(s){this._changes.value={...this.changes,...s}}}class l extends h{constructor(t,i){super(i);n(this,"api");this.api=t}static create(t,i){return c(new l(t,i))}getInitialState(t){return this.initialState[t]}updateInitialState(t,i){this.initialState[t]=i,delete this._changes.value[t]}async save(t){if(Object.keys(this.changes).length===0||t&&!(t in this.changes))return;if(t){const a={[t]:this.changes[t]},u=await this.api.update(this.initialState.id,a);this.initialState={...this.initialState,...u},delete this._changes.value[t];return}this.initialState=await this.api.update(this.initialState.id,this.changes);const i={...this.changes};this._changes.value={},this.pubsub.publish("update",i)}}class d extends h{constructor(t,i){super(i);n(this,"api");n(this,"debouncedSave");this.api=t,this.debouncedSave=r.exports.debounce(()=>{this.save()},500)}static create(t,i){return c(new d(t,i))}getInitialState(t){return this.initialState[t]}updateInitialState(t,i){this.initialState[t]=i,delete this._changes.value[t]}set(t,i){super.set(t,i),this.debouncedSave()}async save(t){if(Object.keys(this.changes).length===0||t&&!(t in this.changes))return;if(t){const a={[t]:this.changes[t]},u=await this.api.update(this.initialState.id,a);this.initialState={...this.initialState,...u},delete this._changes.value[t];return}this.initialState=await this.api.update(this.initialState.id,this.changes);const i={...this.changes};this._changes.value={},this.pubsub.publish("update",i)}}export{d as A,h as E,b as P,l as a};
//# sourceMappingURL=record.e83a2eb2.js.map
