PageSourceSearch

https://louisvillechamberchoir.org/wp-content/cache/breeze-minific…st-core-data-631af5e9b3bd.js?ver=1791312773

js louisvillechamberchoir.org collected 2026-10-06 18:55:27 UTC 408,215 bytes, 1,985 lines download raw bytes

1(function(){"use strict";var wp;(wp||={}).coreData=(()=>{var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __commonJS=(cb,mod)=>function __require(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all2)=>{for(var name in all2)
2__defProp(target,name,{get:all2[name],enumerable:!0})};var __copyProps=(to,from2,except,desc)=>{if(from2&&typeof from2==="object"||typeof from2==="function"){for(let key of __getOwnPropNames(from2))
3if(!__hasOwnProp.call(to,key)&&key!==except)
4__defProp(to,key,{get:()=>from2[key],enumerable:!(desc=__getOwnPropDesc(from2,key))||desc.enumerable})}
5return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var __toCommonJS=(mod)=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var require_data=__commonJS({"package-external:@wordpress/data"(exports,module){module.exports=window.wp.data}});var require_es6=__commonJS({"node_modules/fast-deep-equal/es6/index.js"(exports,module){"use strict";module.exports=function equal(a,b){if(a===b)return!0;if(a&&b&&typeof a=="object"&&typeof b=="object"){if(a.constructor!==b.constructor)return!1;var length2,i,keys2;if(Array.isArray(a)){length2=a.length;if(length2!=b.length)return!1;for(i=length2;i--!==0;)
6if(!equal(a[i],b[i]))return!1;return!0}
7if(a instanceof Map&&b instanceof Map){if(a.size!==b.size)return!1;for(i of a.entries())
8if(!b.has(i[0]))return!1;for(i of a.entries())
9if(!equal(i[1],b.get(i[0])))return!1;return!0}
10if(a instanceof Set&&b instanceof Set){if(a.size!==b.size)return!1;for(i of a.entries())
11if(!b.has(i[0]))return!1;return!0}
12if(ArrayBuffer.isView(a)&&ArrayBuffer.isView(b)){length2=a.length;if(length2!=b.length)return!1;for(i=length2;i--!==0;)
13if(a[i]!==b[i])return!1;return!0}
14if(a.constructor===RegExp)return a.source===b.source&&a.flags===b.flags;if(a.valueOf!==Object.prototype.valueOf)return a.valueOf()===b.valueOf();if(a.toString!==Object.prototype.toString)return a.toString()===b.toString();keys2=Object.keys(a);length2=keys2.length;if(length2!==Object.keys(b).length)return!1;for(i=length2;i--!==0;)
15if(!Object.prototype.hasOwnProperty.call(b,keys2[i]))return!1;for(i=length2;i--!==0;){var key=keys2[i];if(!equal(a[key],b[key]))return!1}
16return!0}
17return a!==a&&b!==b}}});var require_compose=__commonJS({"package-external:@wordpress/compose"(exports,module){module.exports=window.wp.compose}});var require_undo_manager=__commonJS({"package-external:@wordpress/undo-manager"(exports,module){module.exports=window.wp.undoManager}});var require_api_fetch=__commonJS({"package-external:@wordpress/api-fetch"(exports,module){module.exports=window.wp.apiFetch}});var require_private_apis=__commonJS({"package-external:@wordpress/private-apis"(exports,module){module.exports=window.wp.privateApis}});var require_hooks=__commonJS({"package-external:@wordpress/hooks"(exports,module){module.exports=window.wp.hooks}});var require_equivalent_key_map=__commonJS({"node_modules/equivalent-key-map/equivalent-key-map.js"(exports,module){"use strict";function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function(obj2){return typeof obj2}}else{_typeof=function(obj2){return obj2&&typeof Symbol==="function"&&obj2.constructor===Symbol&&obj2!==Symbol.prototype?"symbol":typeof obj2}}
18return _typeof(obj)}
19function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}
20function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1;descriptor.configurable=!0;if("value" in descriptor)descriptor.writable=!0;Object.defineProperty(target,descriptor.key,descriptor)}}
21function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}
22function getValuePair(instance,key){var _map=instance._map,_arrayTreeMap=instance._arrayTreeMap,_objectTreeMap=instance._objectTreeMap;if(_map.has(key)){return _map.get(key)}
23var properties=Object.keys(key).sort();var map2=Array.isArray(key)?_arrayTreeMap:_objectTreeMap;for(var i=0;i<properties.length;i++){var property=properties[i];map2=map2.get(property);if(map2===void 0){return}
24var propertyValue=key[property];map2=map2.get(propertyValue);if(map2===void 0){return}}
25var valuePair=map2.get("_ekm_value");if(!valuePair){return}
26_map.delete(valuePair[0]);valuePair[0]=key;map2.set("_ekm_value",valuePair);_map.set(key,valuePair);return valuePair}
27var EquivalentKeyMap2=(function(){function EquivalentKeyMap3(iterable){_classCallCheck(this,EquivalentKeyMap3);this.clear();if(iterable instanceof EquivalentKeyMap3){var iterablePairs=[];iterable.forEach(function(value,key){iterablePairs.push([key,value])});iterable=iterablePairs}
28if(iterable!=null){for(var i=0;i<iterable.length;i++){this.set(iterable[i][0],iterable[i][1])}}}
29_createClass(EquivalentKeyMap3,[{key:"set",value:function set(key,value){if(key===null||_typeof(key
29)!=="object"){this._map.set(key,value);return this}
30var properties=Object.keys(key).sort();var valuePair=[key,value];var map2=Array.isArray(key)?this._arrayTreeMap:this._objectTreeMap;for(var i=0;i<properties.length;i++){var property=properties[i];if(!map2.has(property)){map2.set(property,new EquivalentKeyMap3())}
31map2=map2.get(property);var propertyValue=key[property];if(!map2.has(propertyValue)){map2.set(propertyValue,new EquivalentKeyMap3())}
32map2=map2.get(propertyValue)}
33var previousValuePair=map2.get("_ekm_value");if(previousValuePair){this._map.delete(previousValuePair[0])}
34map2.set("_ekm_value",valuePair);this._map.set(key,valuePair);return this}},{key:"get",value:function get(key){if(key===null||_typeof(key)!=="object"){return this._map.get(key)}
35var valuePair=getValuePair(this,key);if(valuePair){return valuePair[1]}}},{key:"has",value:function has(key){if(key===null||_typeof(key)!=="object"){return this._map.has(key)}
36return getValuePair(this,key)!==void 0}},{key:"delete",value:function _delete(key){if(!this.has(key)){return!1}
37this.set(key,void 0);return!0}},{key:"forEach",value:function forEach2(callback){var _this=this;var thisArg=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this;this._map.forEach(function(value,key){if(key!==null&&_typeof(key)==="object"){value=value[1]}
38callback.call(thisArg,value,key,_this)})}},{key:"clear",value:function clear(){this._map=new Map();this._arrayTreeMap=new Map();this._objectTreeMap=new Map()}},{key:"size",get:function get(){return this._map.size}}]);return EquivalentKeyMap3})();module.exports=EquivalentKeyMap2}});var require_url=__commonJS({"package-external:@wordpress/url"(exports,module){module.exports=window.wp.url}});var require_blocks=__commonJS({"package-external:@wordpress/blocks"(exports,module){module.exports=window.wp.blocks}});var require_i18n=__commonJS({"package-external:@wordpress/i18n"(exports,module){module.exports=window.wp.i18n}});var require_block_editor=__commonJS({"package-external:@wordpress/block-editor"(exports,module){module.exports=window.wp.blockEditor}});var require_rich_text=__commonJS({"package-external:@wordpress/rich-text"(exports,module){module.exports=window.wp.richText}});var require_deprecated=__commonJS({"package-external:@wordpress/deprecated"(exports,module){module.exports=window.wp.deprecated}});var require_html_entities=__commonJS({"package-external:@wordpress/html-entities"(exports,module){module.exports=window.wp.htmlEntities}});var require_element=__commonJS({"package-external:@wordpress/element"(exports,module){module.exports=window.wp.element}});var require_jsx_runtime=__commonJS({"vendor-external:react/jsx-runtime"(exports,module){module.exports=window.ReactJSXRuntime}});var require_warning=__commonJS({"package-external:@wordpress/warning"(exports,module){module.exports=window.wp.warning}});var index_exports={};__export(index_exports,{EntityProvider:()=>EntityProvider,__experimentalFetchLinkSuggestions:()=>fetchLinkSuggestions,__experimentalFetchUrlData:()=>experimental_fetch_url_data_default,__experimentalUseEntityRecord:()=>useDeprecatedEntityRecord,__experimentalUseEntityRecords:()=>useDeprecatedEntityRecords,__experimentalUseResourcePermissions:()=>useDeprecatedResourcePermissions,fetchBlockPatterns:()=>fetchBlockPatterns,privateApis:()=>privateApis2,store:()=>store,useEntityBlockEditor:()=>useEntityBlockEditor,useEntityId:()=>useEntityId,useEntityProp:()=>useEntityProp,useEntityRecord:()=>useEntityRecord,useEntityRecords:()=>useEntityRecords,useResourcePermissions:()=>use_resource_permissions_default});var import_data15=__toESM(require_data(),1);var import_es67=__toESM(require_es6(),1);var import_compose2=__toESM(require_compose(),1);var import_data7=__toESM(require_data(),1);var import_undo_manager2=__toESM(require_undo_manager(),1);var import_es6=__toESM(require_es6(),1);function clearUnchangedEdits(edits,persistedRecord){if(!persistedRecord){return edits}
39return Object.fromEntries(Object.entries(edits).map(([key,value])=>{const persisted=persistedRecord[key]?.raw??persistedRecord[key];return[key,(0,import_es6.default)(value,persisted)?void 0:value]}))}
40var import_es62=__toESM(require_es6(),1);function conservativeMapItem(item,nextItem){if(!item){return nextItem}
41let hasChanges=!1;const result={};for(const key in nextItem){if((0,import_es62.default)(item[key],nextItem[key])){result[key]=item[key]}else{hasChanges=!0;result[key]=nextItem[key]}}
42if(!hasChanges){return item}
43for(const key in item){if(!result.hasOwnProperty(key)){result[key]=item[key]}}
44return result}
45function getNormalizedCommaSeparable(value){if(typeof value==="string"){return value.split(",")}else if(Array.isArray(value)){return value}
46return null}
47var get_normalized_comma_separable_default=getNormalizedCommaSeparable;var ifMatchingAction=(isMatch)=>(reducer)=>(state,action)=>{if(state===void 0||isMatch(action)){return reducer(state,action)}
48return state};var if_matching_action_default=ifMatchingAction;var forwardResolver=(resolverName)=>(...args2)=>async({resolveSelect:resolveSelect2})=>{await resolveSelect2[resolverName](...args2)};var forward_resolver_default=forwardResolver;var replaceAction=(replacer)=>(reducer)=>(state,action)=>{return reducer(state,replacer(action))};var replace_action_default=replaceAction;function withWeakMapCache(fn){const cache3=new WeakMap();return(key)=>{let value;if(cache3.has(key)){value=cache3.get(key)}else{value=fn(key);if(key!==null&&typeof key==="object"){cache3.set(key,value)}}
49return value}}
50var with_weak_map_cache_default=withWeakMapCache;function setNestedValue(object,path,value){if(!object||typeof object!=="object"){return object}
51const normalizedPath=Array.isArray(path)?path:path.split(".");normalizedPath.reduce((acc,key,idx)=>{if(acc[key]===void 0){if(Number.isInteger(normalizedPath[idx+1])){acc[key]=[]}else{acc[key]={}}}
52if(idx===normalizedPath.length-1){acc[key]=value}
53return acc[key]},object);return object}
54function getNestedValue(object,path,defaultValue){if(!object||typeof object!=="object"||typeof path!=="string"&&!Array.isArray(path)){return object}
55const normalizedPath=Array.isArray(path)?path:path.split(".");let value=object;normalizedPath.forEach((fieldName)=>{value=value?.[fieldName]});return value!==void 0?value:defaultValue}
56function isNumericID(id2){return/^\s*\d+\s*$/.test(id2)}
57var ALLOWED_RESOURCE_ACTIONS=["create","read","update","delete"];function getUserPermissionsFromAllowHeader(allowedMethods){const permissions={};const methods={create:"POST",read:"GET",update:"PUT",delete:"DELETE"};for(const[actionName,methodName]of Object.entries(methods)){permissions[actionName]=allowedMethods?allowedMethods.includes(methodName):!1}
58return permissions}
59function getUserPermissionCacheKey(action,resource,id2){const key=(typeof resource==="object"?[action,resource.kind,resource.name,resource.id]:[action,resource,id2]).filter(Boolean).join("/");return key}
60var RECEIVE_INTERMEDIATE_RESULTS=Symbol("RECEIVE_INTERMEDIATE_RESULTS");function normalizeQueryForResolution(query){if(!query){return void 0}
61const entries=Object.entries(query).filter(([k,v])=>(k==="context"||k==="_fields")&&v!==void 0&&v!==null);return entries.length>0?Object.fromEntries(entries):void 0}
62var import_api_fetch2=__toESM(require_api_fetch(),1);var yjs_exports={};__export(yjs_exports,{AbsolutePosition:()=>AbsolutePosition,AbstractConnector:()=>AbstractConnector,AbstractStruct:()=>AbstractStruct,AbstractType:()=>AbstractType,Array:()=>YArray,ContentAny:()=>ContentAny,ContentBinary:()=>ContentBinary,ContentDeleted:()=>ContentDeleted,ContentDoc:()=>ContentDoc,ContentEmbed:()=>ContentEmbed,ContentFormat:()=>ContentFormat,ContentJSON:()=>ContentJSON,ContentString:()=>ContentString,ContentType:()=>ContentType,Doc:()=>Doc,GC:()=>GC,ID:()=>ID,Item:()=>Item,Map:()=>YMap,PermanentUserData:()=>PermanentUserData,RelativePosition:()=>RelativePosition,Skip:()=>Skip,Snapshot:()=>Snapshot,Text:()=>YText,Transaction:()=>Transaction,UndoManager:()=>UndoManager,UpdateDecoderV1:()=>UpdateDecoderV1,UpdateDecoderV2:()=>UpdateDecoderV2,UpdateEncoderV1:()=>UpdateEncoderV1,UpdateEncoderV2:()=>UpdateEncoderV2,XmlElement:()=>YXmlElement,XmlFragment:()=>YXmlFragment,XmlHook:()=>YXmlHook,XmlText:()=>YXmlText,YArrayEvent:()=>YArrayEvent,YEvent:()=>YEvent,YMapEvent:()=>YMapEvent,YTextEvent:()=>YTextEvent,YXmlEvent:()=>YXmlEvent,applyUpdate:()=>applyUpdate,applyUpdateV2:()=>applyUpdateV2,cleanupYTextFormatting:()=>cleanupYTextFormatting,compareIDs:()=>compareIDs,compareRelativePositions:()=>compareRelativePositions,convertUpdateFormatV1ToV2:()=>convertUpdateFormatV1ToV2,convertUpdateFormatV2ToV1:()=>convertUpdateFormatV2ToV1,createAbsolutePositionFromRelativePosition:()=>createAbsolutePositionFromRelativePosition,createDeleteSet:()=>createDeleteSet,createDeleteSetFromStructStore:()=>createDeleteSetFromStructStore,createDocFromSnapshot:()=>createDocFromSnapshot,createID:()=>createID,createRelativePositionFromJSON:()=>createRelativePositionFromJSON,createRelativePositionFromTypeIndex:()=>createRelativePositionFromTypeIndex,createSnapshot:()=>createSnapshot,decodeRelativePosition:()=>decodeRelativePosition,decodeSnapshot:()=>decodeSnapshot,decodeSnapshotV2:()=>decodeSnapshotV2,decodeStateVector:()=>
62decodeStateVector,decodeUpdate:()=>decodeUpdate,decodeUpdateV2:()=>decodeUpdateV2,diffUpdate:()=>diffUpdate,diffUpdateV2:()=>diffUpdateV2,emptySnapshot:()=>emptySnapshot,encodeRelativePosition:()=>encodeRelativePosition,encodeSnapshot:()=>encodeSnapshot,encodeSnapshotV2:()=>encodeSnapshotV2,encodeStateAsUpdate:()=>encodeStateAsUpdate,encodeStateAsUpdateV2:()=>encodeStateAsUpdateV2,encodeStateVector:()=>encodeStateVector,encodeStateVectorFromUpdate:()=>encodeStateVectorFromUpdate,encodeStateVectorFromUpdateV2:()=>encodeStateVectorFromUpdateV2,equalDeleteSets:()=>equalDeleteSets,equalSnapshots:()=>equalSnapshots,findIndexSS:()=>findIndexSS,findRootTypeKey:()=>findRootTypeKey,getItem:()=>getItem,getItemCleanEnd:()=>getItemCleanEnd,getItemCleanStart:()=>getItemCleanStart,getState:()=>getState,getTypeChildren:()=>getTypeChildren,isDeleted:()=>isDeleted,isParentOf:()=>isParentOf,iterateDeletedStructs:()=>iterateDeletedStructs,logType:()=>logType,logUpdate:()=>logUpdate,logUpdateV2:()=>logUpdateV2,mergeDeleteSets:()=>mergeDeleteSets,mergeUpdates:()=>mergeUpdates,mergeUpdatesV2:()=>mergeUpdatesV2,obfuscateUpdate:()=>obfuscateUpdate,obfuscateUpdateV2:()=>obfuscateUpdateV2,parseUpdateMeta:()=>parseUpdateMeta,parseUpdateMetaV2:()=>parseUpdateMetaV2,readUpdate:()=>readUpdate,readUpdateV2:()=>readUpdateV2,relativePositionToJSON:()=>relativePositionToJSON,snapshot:()=>snapshot,snapshotContainsUpdate:()=>snapshotContainsUpdate,transact:()=>transact,tryGc:()=>tryGc,typeListToArraySnapshot:()=>typeListToArraySnapshot,typeMapGetAllSnapshot:()=>typeMapGetAllSnapshot,typeMapGetSnapshot:()=>typeMapGetSnapshot});var create=()=>new Map();var copy=(m)=>{const r=create();m.forEach((v,k)=>{r.set(k,v)});return r};var setIfUndefined=(map2,key,createT)=>{let set=map2.get(key);if(set===void 0){map2.set(key,set=createT())}
63return set};var map=(m,f)=>{const res=[];for(const[key,value]of m){res.push(f(value,key))}
64return res};var any=(m,f)=>{for(const[key,value]of m){if(f(value,key)){return!0}}
65return!1};var create2=()=>new Set();var last=(arr)=>arr[arr.length-1];var appendTo=(dest,src)=>{for(let i=0;i<src.length;i++){dest.push(src[i])}};var from=Array.from;var every=(arr,f)=>{for(let i=0;i<arr.length;i++){if(!f(arr[i],i,arr)){return!1}}
66return!0};var some=(arr,f)=>{for(let i=0;i<arr.length;i++){if(f(arr[i],i,arr)){return!0}}
67return!1};var unfold=(len,f)=>{const array=new Array(len);for(let i=0;i<len;i++){array[i]=f(i,array)}
68return array};var isArray=Array.isArray;var ObservableV2=class{constructor(){this._observers=create()}
69on(name,f){setIfUndefined(this._observers,name,create2).add(f);return f}
70once(name,f){const _f=(...args2)=>{this.off(name,_f);f(...args2)};this.on(name,_f)}
71off(name,f){const observers=this._observers.get(name);if(observers!==void 0){observers.delete(f);if(observers.size===0){this._observers.delete(name)}}}
72emit(name,args2){return from((this._observers.get(name)||create()).values()).forEach((f)=>f(...args2))}
73destroy(){this._observers=create()}};
73var Observable=class{constructor(){this._observers=create()}
74on(name,f){setIfUndefined(this._observers,name,create2).add(f)}
75once(name,f){const _f=(...args2)=>{this.off(name,_f);f(...args2)};this.on(name,_f)}
76off(name,f){const observers=this._observers.get(name);if(observers!==void 0){observers.delete(f);if(observers.size===0){this._observers.delete(name)}}}
77emit(name,args2){return from((this._observers.get(name)||create()).values()).forEach((f)=>f(...args2))}
78destroy(){this._observers=create()}};var floor=Math.floor;var abs=Math.abs;var min=(a,b)=>a<b?a:b;var max=(a,b)=>a>b?a:b;var isNaN2=Number.isNaN;var isNegativeZero=(n)=>n!==0?n<0:1/n<0;var BIT1=1;var BIT2=2;var BIT3=4;var BIT4=8;var BIT6=32;var BIT7=64;var BIT8=128;var BIT18=1<<17;var BIT19=1<<18;var BIT20=1<<19;var BIT21=1<<20;var BIT22=1<<21;var BIT23=1<<22;var BIT24=1<<23;var BIT25=1<<24;var BIT26=1<<25;var BIT27=1<<26;var BIT28=1<<27;var BIT29=1<<28;var BIT30=1<<29;var BIT31=1<<30;var BIT32=1<<31;var BITS5=31;var BITS6=63;var BITS7=127;var BITS17=BIT18-1;var BITS18=BIT19-1;var BITS19=BIT20-1;var BITS20=BIT21-1;var BITS21=BIT22-1;var BITS22=BIT23-1;var BITS23=BIT24-1;var BITS24=BIT25-1;var BITS25=BIT26-1;var BITS26=BIT27-1;var BITS27=BIT28-1;var BITS28=BIT29-1;var BITS29=BIT30-1;var BITS30=BIT31-1;var BITS31=2147483647;var MAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER;var MIN_SAFE_INTEGER=Number.MIN_SAFE_INTEGER;var LOWEST_INT32=1<<31;var isInteger=Number.isInteger||((num)=>typeof num==="number"&&isFinite(num)&&floor(num)===num);var isNaN3=Number.isNaN;var parseInt2=Number.parseInt;var fromCharCode=String.fromCharCode;var fromCodePoint=String.fromCodePoint;var MAX_UTF16_CHARACTER=fromCharCode(65535);var toLowerCase=(s)=>s.toLowerCase();var trimLeftRegex=/^\s*/g;var trimLeft=(s)=>s.replace(trimLeftRegex,"");var fromCamelCaseRegex=/([A-Z])/g;var fromCamelCase=(s,separator)=>trimLeft(s.replace(fromCamelCaseRegex,(match2)=>`${separator}${toLowerCase(match2)}`));var _encodeUtf8Polyfill=(str)=>{const encodedString=unescape(encodeURIComponent(str));const len=encodedString.length;const buf=new Uint8Array(len);for(let i=0;i<len;i++){buf[i]=encodedString.codePointAt(i)}
79return buf};var utf8TextEncoder=(typeof TextEncoder!=="undefined"?new TextEncoder():null);var _encodeUtf8Native=(str)=>utf8TextEncoder.encode(str);var encodeUtf8=utf8TextEncoder?_encodeUtf8Native:_encodeUtf8Polyfill;var utf8TextDecoder=typeof TextDecoder==="undefined"?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});if(utf8TextDecoder&&utf8TextDecoder.decode(new Uint8Array()).length===1){utf8TextDecoder=null}
80var repeat=(source,n)=>unfold(n,()=>source).join("");var Encoder=class{constructor(){this.cpos=0;this.cbuf=new Uint8Array(100);this.bufs=[]}};var createEncoder=()=>new Encoder();var length=(encoder)=>{let len=encoder.cpos;for(let i=0;i<encoder.bufs.length;i++){len+=encoder.bufs[i].length}
81return len};var toUint8Array=(encoder)=>{const uint8arr=new Uint8Array(length(encoder));let curPos=0;for(let i=0;i<encoder.bufs.length;i++){const d=encoder.bufs[i];uint8arr.set(d,curPos);curPos+=d.length}
82uint8arr.set(new Uint8Array(encoder.cbuf.buffer,0,encoder.cpos),curPos);return uint8arr};var verifyLen=(encoder,len)=>{const bufferLen=encoder.cbuf.length;if(bufferLen-encoder.cpos<len){encoder.bufs.push(new Uint8Array(encoder.cbuf.buffer,0,encoder.cpos));encoder.cbuf=new Uint8Array(max(bufferLen,len)*2);encoder.cpos=0}};var write=(encoder,num)=>{const bufferLen=encoder.cbuf.length;if(encoder.cpos===bufferLen){encoder.bufs.push(encoder.cbuf);encoder.cbuf=new Uint8Array(bufferLen*2);encoder.cpos=0}
83encoder.cbuf[encoder.cpos++]=num};var writeUint8=write;var writeVarUint=(encoder,num)=>{while(num>BITS7){write(encoder,BIT8|BITS7&num);num=floor(num/128)}
84write(encoder,BITS7&num)};var writeVarInt=(encoder,num)=>{const isNegative=isNegativeZero(num);if(isNegative){num=-num}
85write(encoder,(num>BITS6?BIT8:0)|(isNegative?BIT7:0)|BITS6&num);num=floor(num/64);while(num>0){write(encoder,(num>BITS7?BIT8:0)|BITS7&num);num=floor(num/128)}};var _strBuffer=new Uint8Array(3e4);var _maxStrBSize=_strBuffer.length/3;var _writeVarStringNative=(encoder,str)=>{if(str.length<_maxStrBSize){const written=utf8TextEncoder.encodeInto(str,_strBuffer).written||0;writeVarUint(encoder,written);for(let i=0;i<written;i++){write(encoder,_strBuffer[i])}}else{writeVarUint8Array(encoder,encodeUtf8(str))}};var _writeVarStringPolyfill=(encoder,str)=>{const encodedString=unescape(encodeURIComponent(str));const len=encodedString.length;writeVarUint(encoder,len);for(let i=0;i<len;i++){write(encoder,encodedString.codePointAt(i))}};var writeVarString=utf8TextEncoder&&utf8TextEncoder.encodeInto?_writeVarStringNative:_writeVarStringPolyfill;var writeBinaryEncoder=(encoder,append2)=>writeUint8Array(encoder,toUint8Array(append2));var writeUint8Array=(encoder,uint8Array)=>{const bufferLen=encoder.cbuf.length;const cpos=encoder.cpos;const leftCopyLen=min(bufferLen-cpos,uint8Array.length);const rightCopyLen=uint8Array.length-leftCopyLen;encoder.cbuf.set(uint8Array.subarray(0,leftCopyLen),cpos);encoder.cpos+=leftCopyLen;if(rightCopyLen>0){encoder.bufs.push(encoder.cbuf);encoder.cbuf=new Uint8Array(max(bufferLen*2,rightCopyLen));encoder.cbuf.set(uint8Array.subarray(leftCopyLen));encoder.cpos=rightCopyLen}};var writeVarUint8Array=(encoder,uint8Array)=>{writeVarUint(encoder,uint8Array.byteLength);writeUint8Array(encoder,uint8Array)};var writeOnDataView=(encoder,len)=>{verifyLen(encoder,len);const dview=new DataView(encoder.cbuf.buffer,encoder.cpos,len);encoder.cpos+=len;return dview};var writeFloat32=(encoder,num)=>writeOnDataView(encoder,4).setFloat32(0,num,!1);var writeFloat64=(encoder,num)=>writeOnDataView(encoder,8).setFloat64(0,num,!1);var writeBigInt64=(encoder,num)=>(writeOnDataView(encoder,8).setBigInt64(0,num,!1));var floatTestBed=new DataView(new ArrayBuffer(4));var isFloat32=(num)=>{floatTestBed.setFloat32(0,num);return floatTestBed.getFloat32(0)===num};var writeAny=(encoder,data)=>{switch(typeof data){case "string":write(encoder,119);writeVarString(encoder,data);break;case "number":if(isInteger(data)&&abs(data)<=BITS31){write(encoder,125);writeVarInt(encoder,data)}else if(isFloat32(data)){write(encoder,124);writeFloat32(encoder,data)}else{write(encoder,123);writeFloat64(encoder,data)}
86break;case "bigint":write(encoder,122);writeBigInt64(encoder,data);break;case "object":if(data===null){write(encoder,126)}else if(isArray(data)){write(encoder,117);writeVarUint(encoder,data.length);for(let i=0;i<data.length;i++){writeAny(encoder,data[i])}}else if(data instanceof Uint8Array){write(encoder,116);writeVarUint8Array(encoder,data)}else{write(encoder,118);const keys2=Object.keys(data);writeVarUint(encoder,keys2.length);for(let i=0;i<keys2.length;i++){const key=keys2[i];writeVarString(encoder,key);writeAny(encoder,data[key])}}
87break;case "boolean":write(encoder,data?120:121);break;default:write(encoder,127)}};
87var RleEncoder=class extends Encoder{constructor(writer){super();this.w=writer;this.s=null;this.count=0}
88write(v){if(this.s===v){this.count++}else{if(this.count>0){writeVarUint(this,this.count-1)}
89this.count=1;this.w(this,v);this.s=v}}};var flushUintOptRleEncoder=(encoder)=>{if(encoder.count>0){writeVarInt(encoder.encoder,encoder.count===1?encoder.s:-encoder.s);if(encoder.count>1){writeVarUint(encoder.encoder,encoder.count-2)}}};var UintOptRleEncoder=class{constructor(){this.encoder=new Encoder();this.s=0;this.count=0}
90write(v){if(this.s===v){this.count++}else{flushUintOptRleEncoder(this);this.count=1;this.s=v}}
91toUint8Array(){flushUintOptRleEncoder(this);return toUint8Array(this.encoder)}};var flushIntDiffOptRleEncoder=(encoder)=>{if(encoder.count>0){const encodedDiff=encoder.diff*2+(encoder.count===1?0:1);writeVarInt(encoder.encoder,encodedDiff);if(encoder.count>1){writeVarUint(encoder.encoder,encoder.count-2)}}};var IntDiffOptRleEncoder=class{constructor(){this.encoder=new Encoder();this.s=0;this.count=0;this.diff=0}
92write(v){if(this.diff===v-this.s){this.s=v;this.count++}else{flushIntDiffOptRleEncoder(this);this.count=1;this.diff=v-this.s;this.s=v}}
93toUint8Array(){flushIntDiffOptRleEncoder(this);return toUint8Array(this.encoder)}};var StringEncoder=class{constructor(){this.sarr=[];this.s="";this.lensE=new UintOptRleEncoder()}
94write(string){this.s+=string;if(this.s.length>19){this.sarr.push(this.s);this.s=""}
95this.lensE.write(string.length)}
96toUint8Array(){const encoder=new Encoder();this.sarr.push(this.s);this.s="";writeVarString(encoder,this.sarr.join(""));writeUint8Array(encoder,this.lensE.toUint8Array());return toUint8Array(encoder)}};var create3=(s)=>new Error(s);var methodUnimplemented=()=>{throw create3("Method unimplemented")};var unexpectedCase=()=>{throw create3("Unexpected case")};var errorUnexpectedEndOfArray=create3("Unexpected end of array");var errorIntegerOutOfRange=create3("Integer out of Range");var Decoder=class{constructor(uint8Array){this.arr=uint8Array;this.pos=0}};var createDecoder=(uint8Array)=>new Decoder(uint8Array);var hasContent=(decoder)=>decoder.pos!==decoder.arr.length;var readUint8Array=(decoder,len)=>{const view=new Uint8Array(decoder.arr.buffer,decoder.pos+decoder.arr.byteOffset,len);decoder.pos+=len;return view};var readVarUint8Array=(decoder)=>readUint8Array(decoder,readVarUint(decoder));var readUint8=(decoder)=>decoder.arr[decoder.pos++];var readVarUint=(decoder)=>{let num=0;let mult=1;const len=decoder.arr.length;while(decoder.pos<len){const r=decoder.arr[decoder.pos++];num=num+(r&BITS7)*mult;mult*=128;if(r<BIT8){return num}
97if(num>MAX_SAFE_INTEGER){throw errorIntegerOutOfRange}}
98throw errorUnexpectedEndOfArray};var readVarInt=(decoder)=>{let r=decoder.arr[decoder.pos++];let num=r&BITS6;let mult=64;const sign=(r&BIT7)>0?-1:1;if((r&BIT8)===0){return sign*num}
99const len=decoder.arr.length;while(decoder.pos<len){r=decoder.arr[decoder.pos++];num=num+(r&BITS7)*mult;mult*=128;if(r<BIT8){return sign*num}
100if(num>MAX_SAFE_INTEGER){throw errorIntegerOutOfRange}}
101throw errorUnexpectedEndOfArray};var _readVarStringPolyfill=(decoder)=>{let remainingLen=readVarUint(decoder);if(remainingLen===0){return""}else{let encodedString=String.fromCodePoint(readUint8(decoder));if(--remainingLen<100){while(remainingLen--){encodedString+=String.fromCodePoint(readUint8(decoder))}}else{while(remainingLen>0){const nextLen=remainingLen<1e4?remainingLen:1e4;const bytes=decoder.arr.subarray(decoder.pos,decoder.pos+nextLen);decoder.pos+=nextLen;encodedString+=String.fromCodePoint.apply(null,bytes);remainingLen-=nextLen}}
102return decodeURIComponent(escape(encodedString))}};var _readVarStringNative=(decoder)=>(utf8TextDecoder.decode(readVarUint8Array(decoder)));var readVarString=utf8TextDecoder?_readVarStringNative:_readVarStringPolyfill;var readFromDataView=(decoder,len)=>{const dv=new DataView(decoder.arr.buffer,decoder.arr.byteOffset+decoder.pos,len);decoder.pos+=len;return dv};var readFloat32=(decoder)=>readFromDataView(decoder,4).getFloat32(0,!1);var readFloat64=(decoder)=>readFromDataView(decoder,8).getFloat64(0,!1);var readBigInt64=(decoder)=>(readFromDataView(decoder,8).getBigInt64(0,!1));var readAnyLookupTable=[(decoder)=>void 0,(decoder)=>null,readVarInt,readFloat32,readFloat64,readBigInt64,(decoder)=>!1,(decoder)=>!0,readVarString,(decoder)=>{const len=readVarUint(decoder);const obj={};for(let i=0;i<len;i++){const key=readVarString(decoder);obj[key]=readAny(decoder)}
103return obj},(decoder)=>{const len=readVarUint(decoder);const arr=[];for(let i=0;i<len;i++){arr.push(readAny(decoder))}
104return arr},readVarUint8Array];var readAny=(decoder)=>readAnyLookupTable[127-readUint8(decoder)](decoder);var RleDecoder=class extends Decoder{constructor(uint8Array,reader){super(uint8Array);this.reader=reader;this.s=null;this.count=0}
105read(){if(this.count===0){this.s=this.reader(this);if(hasContent(this)){this.count=readVarUint(this)+1}else{this.count=-1}}
106this.count--;return(this.s)}};var UintOptRleDecoder=class extends Decoder{constructor(uint8Array){super(uint8Array);this.s=0;this.count=0}
107read(){if(this.count===0){this.s=readVarInt(this);const isNegative=isNegativeZero(this.s);this.count=1;if(isNegative){this.s=-this.s;this.count=readVarUint(this)+2}}
108this.count--;return(this.s)}};var IntDiffOptRleDecoder=class extends Decoder{constructor(uint8Array){super(uint8Array);this.s=0;this.count=0;this.diff=0}
109read(){if(this.count===0){const diff=readVarInt(this);const hasCount=diff&1;this.diff=floor(diff/2);this.count=1;if(hasCount){this.count=readVarUint(this)+2}}
110this.s+=this.diff;this.count--;return this.s}};var StringDecoder=class{constructor(uint8Array){this.decoder=new UintOptRleDecoder(uint8Array);this.str=readVarString(this.decoder);this.spos=0}
111read(){const end=this.spos+this.decoder.read();const res=this.str.slice(this.spos,end);this.spos=end;return res}};var subtle=crypto.subtle;var getRandomValues=crypto.getRandomValues.bind(crypto);var uint32=()=>getRandomValues(new Uint32Array(1))[0];var uuidv4Template="10000000-1000-4000-8000"+ -1e11;var uuidv4=()=>uuidv4Template.replace(/[018]/g,(c)=>(c^uint32()&15>>c/4).toString(16));var getUnixTime=Date.now;var create4=(f)=>(new Promise(f));
111var all=Promise.all.bind(Promise);var undefinedToNull=(v)=>v===void 0?null:v;var VarStoragePolyfill=class{constructor(){this.map=new Map()}
112setItem(key,newValue){this.map.set(key,newValue)}
113getItem(key){return this.map.get(key)}};var _localStorage=new VarStoragePolyfill();var usePolyfill=!0;try{if(typeof localStorage!=="undefined"&&localStorage){_localStorage=localStorage;usePolyfill=!1}}catch(e){}
114var varStorage=_localStorage;var EqualityTraitSymbol=Symbol("Equality");var equals=(a,b)=>a===b||!!a?.[EqualityTraitSymbol]?.(b)||!1;var isObject=(o)=>typeof o==="object";var assign=Object.assign;var keys=Object.keys;var forEach=(obj,f)=>{for(const key in obj){f(obj[key],key)}};var size=(obj)=>keys(obj).length;var isEmpty=(obj)=>{for(const _k in obj){return!1}
115return!0};var every2=(obj,f)=>{for(const key in obj){if(!f(obj[key],key)){return!1}}
116return!0};var hasProperty=(obj,key)=>Object.prototype.hasOwnProperty.call(obj,key);var equalFlat=(a,b)=>a===b||size(a)===size(b)&&every2(a,(val,key)=>(val!==void 0||hasProperty(b,key))&&equals(b[key],val));var freeze=Object.freeze;var deepFreeze=(o)=>{for(const key in o){const c=o[key];if(typeof c==="object"||typeof c==="function"){deepFreeze(o[key])}}
117return freeze(o)};var callAll=(fs,args2,i=0)=>{try{for(;i<fs.length;i++){fs[i](...args2)}}finally{if(i<fs.length){callAll(fs,args2,i+1)}}};var id=(a)=>a;var equalityDeep=(a,b)=>{if(a===b){return!0}
118if(a==null||b==null||a.constructor!==b.constructor&&(a.constructor||Object)!==(b.constructor||Object)){return!1}
119if(a[EqualityTraitSymbol]!=null){return a[EqualityTraitSymbol](b)}
120switch(a.constructor){case ArrayBuffer:a=new Uint8Array(a);b=new Uint8Array(b);case Uint8Array:{if(a.byteLength!==b.byteLength){return!1}
121for(let i=0;i<a.length;i++){if(a[i]!==b[i]){return!1}}
122break}
123case Set:{if(a.size!==b.size){return!1}
124for(const value of a){if(!b.has(value)){return!1}}
125break}
126case Map:{if(a.size!==b.size){return!1}
127for(const key of a.keys()){if(!b.has(key)||!equalityDeep(a.get(key),b.get(key))){return!1}}
128break}
129case void 0:case Object:if(size(a)!==size(b)){return!1}
130for(const key in a){if(!hasProperty(a,key)||!equalityDeep(a[key],b[key])){return!1}}
131break;case Array:if(a.length!==b.length){return!1}
132for(let i=0;i<a.length;i++){if(!equalityDeep(a[i],b[i])){return!1}}
133break;default:return!1}
134return!0};var isOneOf=(value,options)=>options.includes(value);var isNode=typeof process!=="undefined"&&process.release&&/node|io\.js/.test(process.release.name)&&Object.prototype.toString.call(typeof process!=="undefined"?process:0)==="[object process]";var isBrowser=typeof window!=="undefined"&&typeof document!=="undefined"&&!isNode;var isMac=typeof navigator!=="undefined"?/Mac/.test(navigator.platform):!1;var params;var args=[];var computeParams=()=>{if(params===void 0){if(isNode){params=create();const pargs=process.argv;let currParamName=null;for(let i=0;i<pargs.length;i++){const parg=pargs[i];if(parg[0]==="-"){if(currParamName!==null){params.set(currParamName,"")}
135currParamName=parg}else{if(currParamName!==null){params.set(currParamName,parg);currParamName=null}else{args.push(parg)}}}
136if(currParamName!==null){params.set(currParamName,"")}}else if(typeof location==="object"){params=create();(location.search||"?").slice(1).split("&").forEach((kv)=>{if(kv.length!==0){const[key,value]=kv.split("=");params.set(`--${fromCamelCase(key, "-")}`,value);params.set(`-${fromCamelCase(key, "-")}`,value)}})}else{params=create()}}
137return params};var hasParam=(name)=>computeParams().has(name);var getVariable=(name)=>isNode?undefinedToNull(process.env[name.toUpperCase().replaceAll("-","_")]):undefinedToNull(varStorage.getItem(name));var hasConf=(name)=>hasParam("--"+name)||getVariable(name)!==null;var production=hasConf("production");var forceColor=isNode&&isOneOf(process.env.FORCE_COLOR,["true","1","2"]);var supportsColor=forceColor||!hasParam("--no-colors")&&!hasConf("no-color")&&(!isNode||process.stdout.isTTY)&&(!isNode||hasParam("--color")||getVariable("COLORTERM")!==null||(getVariable("TERM")||"").includes("color"));var createUint8ArrayFromLen=(len)=>new Uint8Array(len);var createUint8ArrayViewFromArrayBuffer=(buffer,byteOffset,length2)=>new Uint8Array(buffer,byteOffset,length2);var toBase64Browser=(bytes)=>{let s="";for(let i=0;i<bytes.byteLength;i++){s+=fromCharCode(bytes[i])}
138return btoa(s)};var toBase64Node=(bytes)=>Buffer.from(bytes.buffer,bytes.byteOffset,bytes.byteLength).toString("base64");var fromBase64Browser=(s)=>{const a=atob(s);const bytes=createUint8ArrayFromLen(a.length);for(let i=0;i<a.length;
138i++){bytes[i]=a.charCodeAt(i)}
139return bytes};var fromBase64Node=(s)=>{const buf=Buffer.from(s,"base64");return createUint8ArrayViewFromArrayBuffer(buf.buffer,buf.byteOffset,buf.byteLength)};var toBase64=isBrowser?toBase64Browser:toBase64Node;var fromBase64=isBrowser?fromBase64Browser:fromBase64Node;var copyUint8Array=(uint8Array)=>{const newBuf=createUint8ArrayFromLen(uint8Array.byteLength);newBuf.set(uint8Array);return newBuf};var Pair=class{constructor(left,right){this.left=left;this.right=right}};var create5=(left,right)=>new Pair(left,right);var bool=(gen)=>gen.next()>=0.5;var int53=(gen,min2,max2)=>floor(gen.next()*(max2+1-min2)+min2);var int32=(gen,min2,max2)=>floor(gen.next()*(max2+1-min2)+min2);var int31=(gen,min2,max2)=>int32(gen,min2,max2);var letter=(gen)=>fromCharCode(int31(gen,97,122));var word=(gen,minLen=0,maxLen=20)=>{const len=int31(gen,minLen,maxLen);let str="";for(let i=0;i<len;i++){str+=letter(gen)}
140return str};var oneOf=(gen,array)=>array[int31(gen,0,array.length-1)];var schemaSymbol=Symbol("0schema");var ValidationError=class{constructor(){this._rerrs=[]}
141extend(path,expected,has,message=null){this._rerrs.push({path,expected,has,message})}
142toString(){const s=[];for(let i=this._rerrs.length-1;i>0;i--){const r=this._rerrs[i];s.push(repeat(" ",(this._rerrs.length-i)*2)+`${r.path != null ? `[${r.path}]` : ""}${r.has} doesn't match ${r.expected}. ${r.message}`)}
143return s.join("\n")}};var shapeExtends=(a,b)=>{if(a===b)return!0;if(a==null||b==null||a.constructor!==b.constructor)return!1;if(a[EqualityTraitSymbol])return equals(a,b);if(isArray(a)){return every(a,(aitem)=>some(b,(bitem)=>shapeExtends(aitem,bitem)))}else if(isObject(a)){return every2(a,(aitem,akey)=>shapeExtends(aitem,b[akey]))}
144return!1};var Schema=class{static _dilutes=!1;extends(other){let[a,b]=[this.shape,other.shape];if(this.constructor._dilutes)[b,a]=[a,b];return shapeExtends(a,b)}
145equals(other){return this.constructor===other.constructor&&equalityDeep(this.shape,other.shape)}[schemaSymbol](){return!0}[EqualityTraitSymbol](other){return this.equals(other)}
146validate(o){return this.check(o)}
147check(_o,_err){methodUnimplemented()}
148get nullable(){return $union(this,$null)}
149get optional(){return new $Optional(this)}
150cast(o){assert(o,this);return(o)}
151expect(o){assert(o,this);return o}};var $ConstructedBy=class extends Schema{constructor(c,check){super();this.shape=c;this._c=check}
152check(o,err=void 0){const c=o?.constructor===this.shape&&(this._c==null||this._c(o));!c&&err?.extend(null,this.shape.name,o?.constructor.name,o?.constructor!==this.shape?"Constructor match failed":"Check failed");return c}};var $constructedBy=(c,check=null)=>new $ConstructedBy(c,check);var $$constructedBy=$constructedBy($ConstructedBy);var $Custom=class extends Schema{constructor(check){super();this.shape=check}
153check(o,err){const c=this.shape(o);!c&&err?.extend(null,"custom prop",o?.constructor.name,"failed to check custom prop");return c}};var $custom=(check)=>new $Custom(check);var $$custom=$constructedBy($Custom);var $Literal=class extends Schema{constructor(literals){super();this.shape=literals}
154check(o,err){const c=this.shape.some((a)=>a===o);!c&&err?.extend(null,this.shape.join(" | "),o.toString());return c}};var $literal=(...literals)=>
154new $Literal(literals);var $$literal=$constructedBy($Literal);var _regexEscape=(RegExp.escape||((str)=>str.replace(/[().|&,$^[\]]/g,(s)=>"\\"+s)));var _schemaStringTemplateToRegex=(s)=>{if($string.check(s)){return[_regexEscape(s)]}
155if($$literal.check(s)){return(s.shape.map((v)=>v+""))}
156if($$number.check(s)){return["[+-]?\\d+.?\\d*"]}
157if($$string.check(s)){return[".*"]}
158if($$union.check(s)){return s.shape.map(_schemaStringTemplateToRegex).flat(1)}
159unexpectedCase()};var $StringTemplate=class extends Schema{constructor(shape){super();this.shape=shape;this._r=new RegExp("^"+shape.map(_schemaStringTemplateToRegex).map((opts)=>`(${opts.join("|")})`).join("")+"$")}
160check(o,err){const c=this._r.exec(o)!=null;!c&&err?.extend(null,this._r.toString(),o.toString(),"String doesn't match string template.");return c}};var $$stringTemplate=$constructedBy($StringTemplate);var isOptionalSymbol=Symbol("optional");var $Optional=class extends Schema{constructor(shape){super();this.shape=shape}
161check(o,err){const c=o===void 0||this.shape.check(o);!c&&err?.extend(null,"undefined (optional)","()");return c}
162get[isOptionalSymbol](){return!0}};var $$optional=$constructedBy($Optional);var $Never=class extends Schema{check(_o,err){err?.extend(null,"never",typeof _o);return!1}};var $never=new $Never();var $$never=$constructedBy($Never);var $Object=class _$Object extends Schema{constructor(shape,partial=!1){super();this.shape=shape;this._isPartial=partial}
163static _dilutes=!0;get partial(){return new _$Object(this.shape,!0)}
164check(o,err){if(o==null){err?.extend(null,"object","null");return!1}
165return every2(this.shape,(vv,vk)=>{const c=this._isPartial&&!hasProperty(o,vk)||vv.check(o[vk],err);!c&&err?.extend(vk.toString(),vv.toString(),typeof o[vk],"Object property does not match");return c})}};var $object=(def)=>(new $Object(def));var $$object=$constructedBy($Object);var $objectAny=$custom((o)=>o!=null&&(o.constructor===Object||o.constructor==null));var $Record=class extends Schema{constructor(keys2,values){super();this.shape={keys:keys2,values}}
166check(o,err){return o!=null&&every2(o,(vv,vk)=>{const ck=this.shape.keys.check(vk,err);!ck&&err?.extend(vk+"","Record",typeof o,ck?"Key doesn't match schema":"Value doesn't match value");return ck&&this.shape.values.check(vv,err)})}};var $record=(keys2,values)=>new $Record(keys2,values);var $$record=$constructedBy($Record);var $Tuple=class extends Schema{constructor(shape){super();this.shape=shape}
167check(o,err){return o!=null&&every2(this.shape,(vv,vk)=>{const c=(vv.check(o[vk],err));!c&&err?.extend(vk.toString(),"Tuple",typeof vv);return c})}};var $tuple=(...def)=>new $Tuple(def);var $$tuple=$constructedBy($Tuple);var $Array=class extends Schema{constructor(v){super();this.shape=v.length===1?v[0]:new $Union(v)}
168check(o,err){const c=isArray(o)&&every(o,(oi)=>this.shape.check(oi));!c&&err?.extend(null,"Array","");return c}};var $array=(...def)=>new $Array(def);var $$array=$constructedBy($Array);var $arrayAny=$custom((o)=>isArray(o));var $InstanceOf=class extends Schema{constructor(constructor,check){super();this.shape=constructor;this._c=check}
169check(o,err){const c=o instanceof this.shape&&(this._c==null||this._c(o));!c&&err?.extend(null,this.shape.name,o?.constructor.name);return c}};var $instanceOf=(c,check=null)=>new $InstanceOf(c,check);var $$instanceOf=$constructedBy($InstanceOf);var $$schema=$instanceOf(Schema);var $Lambda=class extends Schema{constructor(args2){super();this.len=args2.length-1;this.args=$tuple(...args2.slice(-1));this.res=args2[this.len]}
170check(f,err){const c=f.constructor===Function&&f.length<=this.len;!c&&err?.extend(null,"function",typeof f);return c}};var $$lambda=$constructedBy($Lambda);var $function=$custom((o)=>typeof o==="function");var $Intersection=class extends Schema{constructor(v){super();this.shape=v}
171check(o,err){const c=every(this.shape,(check)=>check.check(o,err));!c&&err?.extend(null,"Intersectinon",typeof o);return c}};var $$intersect=$constructedBy($Intersection,(o)=>o.shape.length>0);var $Union=class extends Schema{static _dilutes=!0;constructor(v){super();this.shape=v}
172check(o,err){const c=some(this.shape,(vv)=>vv.check(o,err));err?.extend(null,"Union",typeof o);return c}};var $union=(...schemas)=>schemas.findIndex(($s)=>$$union.check($s))>=0?$union(...schemas.map(($s)=>$($s)).map(($s)=>$$union.check($s)?$s.shape:[$s]).flat(1)):schemas.length===1?schemas[0]:new $Union(schemas);var $$union=($constructedBy($Union));var _t=()=>!0;var $any=$custom(_t);var $$any=($constructedBy($Custom,(o)=>o.shape===_t));var $bigint=$custom((o)=>typeof o==="bigint");var $$bigint=($custom((o)=>o===$bigint));var $symbol=$custom((o)=>typeof o==="symbol");var $$symbol=($custom((o)=>o===$symbol));var $number=$custom((o)=>typeof o==="number");var $$number=($custom((o)=>o===$number));var $string=$custom((o)=>typeof o==="string");var $$string=($custom((o)=>o===$string));var $boolean=$custom((o)=>typeof o==="boolean");var $$boolean=($custom((o)=>o===$boolean));var $undefined=$literal(void 0);var $$undefined=($constructedBy($Literal,(o)=>o.shape.length===1&&o.shape[0]===void 0));var $void=$literal(void 0);var $null=$literal(null);var $$null=($constructedBy($Literal,(o)=>o.shape.length===1&&o.shape[0]===null));var $uint8Array=$constructedBy(Uint8Array);var $$uint8Array=($constructedBy($ConstructedBy,(o)=>o.shape===Uint8Array));var $primitive=$union($number,$string,$null,$undefined,$bigint,$boolean,$symbol);var $json=(()=>{const $jsonArr=($array($any));const $jsonRecord=($record($string,$any));const $json2=$union($number,$string,$null,$boolean,$jsonArr,$jsonRecord);
172$jsonArr.shape=$json2;$jsonRecord.shape.values=$json2;return $json2})();var $=(o)=>{if($$schema.check(o)){return(o)}else if($objectAny.check(o)){const o2={};for(const k in o){o2[k]=$(o[k])}
173return($object(o2))}else if($arrayAny.check(o)){return($union(...o.map($)))}else if($primitive.check(o)){return($literal(o))}else if($function.check(o)){return($constructedBy(o))}
174unexpectedCase()};var assert=production?()=>{}:(o,schema)=>{const err=new ValidationError();if(!schema.check(o,err)){throw create3(`Expected value to be of type ${schema.constructor.name}.
175${err.toString()}`)}};var PatternMatcher=class{constructor($state){this.patterns=[];this.$state=$state}
176if(pattern,handler){this.patterns.push({if:$(pattern),h:handler});return this}else(h){return this.if($any,h);}
177done(){return((o,s)=>{for(let i=0;i<this.patterns.length;i++){const p=this.patterns[i];if(p.if.check(o)){return p.h(o,s)}}
178throw create3("Unhandled pattern")})}};var match=(state)=>new PatternMatcher(state);var _random=(match($any).if($$number,(_o,gen)=>int53(gen,MIN_SAFE_INTEGER,MAX_SAFE_INTEGER)).if($$string,(_o,gen)=>word(gen)).if($$boolean,(_o,gen)=>bool(gen)).if($$bigint,(_o,gen)=>BigInt(int53(gen,MIN_SAFE_INTEGER,MAX_SAFE_INTEGER))).if($$union,(o,gen)=>random(gen,oneOf(gen,o.shape))).if($$object,(o,gen)=>{const res={};for(const k in o.shape){let prop=o.shape[k];if($$optional.check(prop)){if(bool(gen)){continue}
179prop=prop.shape}
180res[k]=_random(prop,gen)}
181return res}).if($$array,(o,gen)=>{const arr=[];const n=int32(gen,0,42);for(let i=0;i<n;i++){arr.push(random(gen,o.shape))}
182return arr}).if($$literal,(o,gen)=>{return oneOf(gen,o.shape)}).if($$null,(o,gen)=>{return null}).if($$lambda,(o,gen)=>{const res=random(gen,o.res);return()=>res}).if($$any,(o,gen)=>random(gen,oneOf(gen,[$number,$string,$null,$undefined,$bigint,$boolean,$array($number),$record($union("a","b","c"),$number)]))).if($$record,(o,gen)=>{const res={};const keysN=int53(gen,0,3);for(let i=0;i<keysN;i++){const key=random(gen,o.shape.keys);const val=random(gen,o.shape.values);res[key]=val}
183return res}).done());var random=(gen,schema)=>(_random($(schema),gen));var doc=(typeof document!=="undefined"?document:{});var $fragment=$custom((el)=>el.nodeType===DOCUMENT_FRAGMENT_NODE);var domParser=(typeof DOMParser!=="undefined"?new DOMParser():null);var $element=$custom((el)=>el.nodeType===ELEMENT_NODE);var $text=$custom((el)=>el.nodeType===TEXT_NODE);var mapToStyleString=(m)=>map(m,(value,key)=>`${key}:${value};`).join("");var ELEMENT_NODE=doc.ELEMENT_NODE;var TEXT_NODE=doc.TEXT_NODE;var CDATA_SECTION_NODE=doc.CDATA_SECTION_NODE;var COMMENT_NODE=doc.COMMENT_NODE;var DOCUMENT_NODE=doc.DOCUMENT_NODE;var DOCUMENT_TYPE_NODE=doc.DOCUMENT_TYPE_NODE;var DOCUMENT_FRAGMENT_NODE=doc.DOCUMENT_FRAGMENT_NODE;var $node=$custom((el)=>el.nodeType===DOCUMENT_NODE);var create6=Symbol;var BOLD=create6();var UNBOLD=create6();var BLUE=create6();var GREY=create6();var GREEN=create6();var RED=create6();var PURPLE=create6();var ORANGE=create6();var UNCOLOR=create6();var computeNoColorLoggingArgs=(args2)=>{if(args2.length===1&&args2[0]?.constructor===Function){args2=args2[0]()}
184const strBuilder=[];const logArgs=[];let i=0;for(;i<args2.length;i++){const arg=args2[i];if(arg===void 0){break}else if(arg.constructor===String||arg.constructor===Number){strBuilder.push(arg)}else if(arg.constructor===Object){break}}
185if(i>0){logArgs.push(strBuilder.join(""))}
186for(;i<args2.length;i++){const arg=args2[i];if(!(arg instanceof Symbol)){logArgs.push(arg)}}
187return logArgs};var lastLoggingTime=getUnixTime();var _browserStyleMap={[BOLD]:create5("font-weight","bold"),[UNBOLD]:create5("font-weight","normal"),[BLUE]:create5("color","blue"),[GREEN]:create5("color","green"),[GREY]:create5("color","grey"),[RED]:create5("color","red"),[PURPLE]:create5("color","purple"),[ORANGE]:create5("color","orange"),[UNCOLOR]:create5("color","black")};var computeBrowserLoggingArgs=(args2)=>{if(args2.length===1&&args2[0]?.constructor===Function){args2=args2[0]()}
188const strBuilder=[];const styles=[];const currentStyle=create();let logArgs=[];let i=0;for(;i<args2.length;i++){const arg=args2[i];const style=_browserStyleMap[arg];if(style!==void 0){currentStyle.set(style.left,style.right)}else{if(arg===void 0){break}
189if(arg.constructor===String||arg.constructor===Number){const style2=mapToStyleString(currentStyle);if(i>0||style2.length>
1890){strBuilder.push("%c"+arg);styles.push(style2)}else{strBuilder.push(arg)}}else{break}}}
190if(i>0){logArgs=styles;logArgs.unshift(strBuilder.join(""))}
191for(;i<args2.length;i++){const arg=args2[i];if(!(arg instanceof Symbol)){logArgs.push(arg)}}
192return logArgs};var computeLoggingArgs=supportsColor?computeBrowserLoggingArgs:computeNoColorLoggingArgs;var print=(...args2)=>{console.log(...computeLoggingArgs(args2));vconsoles.forEach((vc)=>vc.print(args2))};var warn=(...args2)=>{console.warn(...computeLoggingArgs(args2));args2.unshift(ORANGE);vconsoles.forEach((vc)=>vc.print(args2))};var vconsoles=create2();var createIterator=(next)=>({[Symbol.iterator](){return this},next});var iteratorFilter=(iterator,filter)=>createIterator(()=>{let res;do{res=iterator.next()}while(!res.done&&!filter(res.value));return res});var iteratorMap=(iterator,fmap)=>createIterator(()=>{const{done,value}=iterator.next();return{done,value:done?void 0:fmap(value)}});var AbstractConnector=class extends ObservableV2{constructor(ydoc,awareness){super();this.doc=ydoc;this.awareness=awareness}};var DeleteItem=class{constructor(clock,len){this.clock=clock;this.len=len}};var DeleteSet=class{constructor(){this.clients=new Map()}};var iterateDeletedStructs=(transaction,ds,f)=>ds.clients.forEach((deletes,clientid)=>{const structs=(transaction.doc.store.clients.get(clientid));if(structs!=null){const lastStruct=structs[structs.length-1];const clockState=lastStruct.id.clock+lastStruct.length;for(let i=0,del=deletes[i];i<deletes.length&&del.clock<clockState;del=deletes[++i]){iterateStructs(transaction,structs,del.clock,del.len,f)}}});var findIndexDS=(dis,clock)=>{let left=0;let right=dis.length-1;while(left<=right){const midindex=floor((left+right)/2);const mid=dis[midindex];const midclock=mid.clock;if(midclock<=clock){if(clock<midclock+mid.len){return midindex}
193left=midindex+1}else{right=midindex-1}}
194return null};var isDeleted=(ds,id2)=>{const dis=ds.clients.get(id2.client);return dis!==void 0&&findIndexDS(dis,id2.clock)!==null};var sortAndMergeDeleteSet=(ds)=>{ds.clients.forEach((dels)=>{dels.sort((a,b)=>a.clock-b.clock);let i,j;for(i=1,j=1;i<dels.length;i++){const left=dels[j-1];const right=dels[i];if(left.clock+left.len>=right.clock){left.len=max(left.len,right.clock+right.len-left.clock)}else{if(j<i){dels[j]=right}
195j++}}
196dels.length=j})};var mergeDeleteSets=(dss)=>{const merged=new DeleteSet();for(let dssI=0;dssI<dss.length;dssI++){dss[dssI].clients.forEach((delsLeft,client)=>{if(!merged.clients.has(client)){const dels=delsLeft.slice();for(let i=dssI+1;i<dss.length;i++){appendTo(dels,dss[i].clients.get(client)||[])}
197merged.clients.set(client,dels)}})}
198sortAndMergeDeleteSet(merged);return merged};var addToDeleteSet=(ds,client,clock,length2)=>{setIfUndefined(ds.clients,client,()=>([])).push(new DeleteItem(clock,length2))};var createDeleteSet=()=>new DeleteSet();var createDeleteSetFromStructStore=(ss)=>{const ds=createDeleteSet();ss.clients.forEach((structs,client)=>{const dsitems=[];for(let i=0;i<structs.length;i++){const struct=structs[i];if(struct.deleted){const clock=struct.id.clock;let len=struct.length;if(i+1<structs.length){for(let next=structs[i+1];i+1<structs.length&&next.deleted;next=structs[++i+1]){len+=next.length}}
199dsitems.push(new DeleteItem(clock,len))}}
200if(dsitems.length>0){ds.clients.set(client,dsitems)}});return ds};var writeDeleteSet=(encoder,ds)=>{writeVarUint(encoder.restEncoder,ds.clients.size);from(ds.clients.entries()).sort((a,b)=>b[0]-a[0]).forEach(([client,dsitems])=>{encoder.resetDsCurVal();writeVarUint(encoder.restEncoder,client);const len=dsitems.length;writeVarUint(encoder.restEncoder,len);for(let i=0;i<len;i++){const item=dsitems[i];encoder.writeDsClock(item.clock);encoder.writeDsLen(item.len)}})};var readDeleteSet=(decoder)=>{const ds=new DeleteSet();const numClients=readVarUint(decoder.restDecoder);for(let i=0;i<numClients;i++){decoder.resetDsCurVal();const client=readVarUint(decoder.restDecoder);const numberOfDeletes=readVarUint(decoder.restDecoder);if(numberOfDeletes>0){const dsField=setIfUndefined(ds.clients,client,()=>([]));for(let i2=0;i2<numberOfDeletes;i2++){dsField.push(new DeleteItem(decoder.readDsClock(),decoder.readDsLen()))}}}
201return ds};var readAndApplyDeleteSet=(decoder,transaction,store2)=>{const unappliedDS=new DeleteSet();const numClients=readVarUint(decoder.restDecoder);for(let i=0;i<numClients;i++){decoder.resetDsCurVal();const client=readVarUint(decoder.restDecoder);const numberOfDeletes=readVarUint(decoder.restDecoder);const structs=store2.clients.get(client)||[];const state=getState(store2,client);for(let i2=0;i2<numberOfDeletes;i2++){const clock=decoder.readDsClock();const clockEnd=clock+decoder.readDsLen();if(clock<state){if(state<clockEnd){addToDeleteSet(unappliedDS,client,state,clockEnd-state)}
202let index=findIndexSS(structs,clock);let struct=structs[index];if(!struct.deleted&&struct.id.clock<clock){structs.splice(index+1,0,splitItem(transaction,struct,clock-stru
202ct.id.clock));index++}
203while(index<structs.length){struct=structs[index++];if(struct.id.clock<clockEnd){if(!struct.deleted){if(clockEnd<struct.id.clock+struct.length){structs.splice(index,0,splitItem(transaction,struct,clockEnd-struct.id.clock))}
204struct.delete(transaction)}}else{break}}}else{addToDeleteSet(unappliedDS,client,clock,clockEnd-clock)}}}
205if(unappliedDS.clients.size>0){const ds=new UpdateEncoderV2();writeVarUint(ds.restEncoder,0);writeDeleteSet(ds,unappliedDS);return ds.toUint8Array()}
206return null};var equalDeleteSets=(ds1,ds2)=>{if(ds1.clients.size!==ds2.clients.size)return!1;for(const[client,deleteItems1]of ds1.clients.entries()){const deleteItems2=(ds2.clients.get(client));if(deleteItems2===void 0||deleteItems1.length!==deleteItems2.length)return!1;for(let i=0;i<deleteItems1.length;i++){const di1=deleteItems1[i];const di2=deleteItems2[i];if(di1.clock!==di2.clock||di1.len!==di2.len){return!1}}}
207return!0};var generateNewClientId=uint32;var Doc=class _Doc extends ObservableV2{constructor({guid=uuidv4(),collectionid=null,gc=!0,gcFilter=()=>!0,meta=null,autoLoad=!1,shouldLoad=!0}={}){super();this.gc=gc;this.gcFilter=gcFilter;this.clientID=generateNewClientId();this.guid=guid;this.collectionid=collectionid;this.share=new Map();this.store=new StructStore();this._transaction=null;this._transactionCleanups=[];this.subdocs=new Set();this._item=null;this.shouldLoad=shouldLoad;this.autoLoad=autoLoad;this.meta=meta;this.isLoaded=!1;this.isSynced=!1;this.isDestroyed=!1;this.whenLoaded=create4((resolve)=>{this.on("load",()=>{this.isLoaded=!0;resolve(this)})});const provideSyncedPromise=()=>create4((resolve)=>{const eventHandler=(isSynced)=>{if(isSynced===void 0||isSynced===!0){this.off("sync",eventHandler);resolve()}};this.on("sync",eventHandler)});this.on("sync",(isSynced)=>{if(isSynced===!1&&this.isSynced){this.whenSynced=provideSyncedPromise()}
208this.isSynced=isSynced===void 0||isSynced===!0;if(this.isSynced&&!this.isLoaded){this.emit("load",[this])}});this.whenSynced=provideSyncedPromise()}
209load(){const item=this._item;if(item!==null&&!this.shouldLoad){transact(item.parent.doc,(transaction)=>{transaction.subdocsLoaded.add(this)},null,!0)}
210this.shouldLoad=!0}
211getSubdocs(){return this.subdocs}
212getSubdocGuids(){return new Set(from(this.subdocs).map((doc2)=>doc2.guid))}
213transact(f,origin2=null){return transact(this,f,origin2)}
214get(name,TypeConstructor=(AbstractType)){const type=setIfUndefined(this.share,name,()=>{const t=new TypeConstructor();t._integrate(this,null);return t});const Constr=type.constructor;if(TypeConstructor!==AbstractType&&Constr!==TypeConstructor){if(Constr===AbstractType){const t=new TypeConstructor();t._map=type._map;type._map.forEach((n)=>{for(;n!==null;n=n.left){n.parent=t}});t._start=type._start;for(let n=t._start;n!==null;n=n.right){n.parent=t}
215t._length=type._length;this.share.set(name,t);t._integrate(this,null);return(t)}else{throw new Error(`Type with the name ${name} has already been defined with a different constructor`)}}
216return(type)}
217getArray(name=""){return(this.get(name,YArray))}
218getText(name=""){return this.get(name,YText)}
219getMap(name=""){return(this.get(name,YMap))}
220getXmlElement(name=""){return(this.get(name,YXmlElement))}
221getXmlFragment(name=""){return this.get(name,YXmlFragment)}
222toJSON(){const doc2={};this.share.forEach((value,key)=>{doc2[key]=value.toJSON()});return doc2}
223destroy(){this.isDestroyed=!0;from(this.subdocs).forEach((subdoc)=>subdoc.destroy());const item=this._item;if(item!==null){this._item=null;const content=(item.content);content.doc=new _Doc({guid:this.guid,...content.opts,shouldLoad:!1});content.doc._item=item;transact(item.parent.doc,(transaction)=>{const doc2=content.doc;if(!item.deleted){transaction.subdocsAdded.add(doc2)}
224transaction.subdocsRemoved.add(this)},null,!0)}
225this.emit("destroyed",[!0]);this.emit("destroy",[this]);super.destroy()}};var DSDecoderV1=class{constructor(decoder){this.restDecoder=decoder}
226resetDsCurVal(){}
227readDsClock(){return readVarUint(this.restDecoder)}
228readDsLen(){return readVarUint(this.restDecoder)}};var UpdateDecoderV1=class extends DSDecoderV1{readLeftID(){return createID(readVarUint(this.restDecoder),readVarUint(this.restDecoder))}
229readRightID(){return createID(readVarUint(this.restDecoder),readVarUint(this.restDecoder))}
230readClient(){return readVarUint(this.restDecoder)}
231readInfo(){return readUint8(this.restDecoder)}
232readString(){return readVarString(this.restDecoder)}
233readParentInfo(){return readVarUint(this.restDecoder)===1}
234readTypeRef(){return readVarUint(this.restDecoder)}
235readLen(){return readVarUint(this.restDecoder)}
236readAny(){return readAny(this.restDecoder)}
237readBuf(){return copyUint8Array(readVarUint8Array(this.restDecoder))}
238readJSON(){return JSON.parse(readVarString(this.restDecoder))}
239readKey(){return readVarString(this.restDecoder)}};var DSDecoderV2=class{constructor(decoder){this.dsCurrVal=0;this.restDecoder=decoder}
240resetDsCurVal(){this.dsCurrVal=0}
241readDsClock(){this.dsCurrVal+=readVarUint(this.restDecoder);return this.dsCurrVal}
242readDsLen(){const diff=readVarUint(this.restDecoder)+1;this.dsCurrVal+=diff;return diff}};var UpdateDecoderV2=class extends DSDecoderV2{constructor(decoder){super(decoder);this.keys=[];readVarUint(decoder);this.keyClockDecoder=new IntDiffOptRleDecoder(readVarUint8Array(decoder));this.clientDecoder=new UintOptRleDecoder(readVarUint8Array(decoder));this.leftClockDecoder=new IntDiffOptRleDecoder(readVarUint8Array(decoder));this.rightClockDecoder=new IntDiffOptRleDecoder(readVarUint8Array(decoder));this.infoDecoder=new RleDecoder(readVarUint8Array(decoder),readUint8);this.stringDecoder=new StringDecoder(readVarUint8Array(decoder));this.parentInfoDecoder=new RleDecoder(readVarUint8Array(decoder),readUint8);this.typeRefDecoder=new UintOptRleDecoder(readVarUint8Array(decoder));this.lenDecoder=new UintOptRleDecoder(readVarUint8Array(decoder))}
243readLeftID(){return new ID(this.clientDecoder.read(),this.leftClockDecoder.read())}
244readRightID(){return new ID(this.clientDecoder.read(),this.rightClockDecoder.read())}
245readClient(){return this.clientDecoder.read()}
246readInfo(){return(this.infoDecoder.read())}
247readString(){return this.stringDecoder.read()}
248readParentInfo(){return this.parentInfoDecoder.read()===1}
249readTypeRef(){return this.typeRefDecoder.read()}
250readLen(){return this.lenDecoder.read()}
251readAny(){return readAny(this.restDecoder)}
252readBuf(){return readVarUint8Array(this.restDecoder)}
253readJSON(){return readAny(this.restDecoder)}
254readKey(){const keyClock=this.keyClockDecoder.read();if(keyClock<this.keys.length){return this.keys[keyClock]}
254else{const key=this.stringDecoder.read();this.keys.push(key);return key}}};var DSEncoderV1=class{constructor(){this.restEncoder=createEncoder()}
255toUint8Array(){return toUint8Array(this.restEncoder)}
256resetDsCurVal(){}
257writeDsClock(clock){writeVarUint(this.restEncoder,clock)}
258writeDsLen(len){writeVarUint(this.restEncoder,len)}};var UpdateEncoderV1=class extends DSEncoderV1{writeLeftID(id2){writeVarUint(this.restEncoder,id2.client);writeVarUint(this.restEncoder,id2.clock)}
259writeRightID(id2){writeVarUint(this.restEncoder,id2.client);writeVarUint(this.restEncoder,id2.clock)}
260writeClient(client){writeVarUint(this.restEncoder,client)}
261writeInfo(info){writeUint8(this.restEncoder,info)}
262writeString(s){writeVarString(this.restEncoder,s)}
263writeParentInfo(isYKey){writeVarUint(this.restEncoder,isYKey?1:0)}
264writeTypeRef(info){writeVarUint(this.restEncoder,info)}
265writeLen(len){writeVarUint(this.restEncoder,len)}
266writeAny(any2){writeAny(this.restEncoder,any2)}
267writeBuf(buf){writeVarUint8Array(this.restEncoder,buf)}
268writeJSON(embed){writeVarString(this.restEncoder,JSON.stringify(embed))}
269writeKey(key){writeVarString(this.restEncoder,key)}};var DSEncoderV2=class{constructor(){this.restEncoder=createEncoder();this.dsCurrVal=0}
270toUint8Array(){return toUint8Array(this.restEncoder)}
271resetDsCurVal(){this.dsCurrVal=0}
272writeDsClock(clock){const diff=clock-this.dsCurrVal;this.dsCurrVal=clock;writeVarUint(this.restEncoder,diff)}
273writeDsLen(len){if(len===0){unexpectedCase()}
274writeVarUint(this.restEncoder,len-1);this.dsCurrVal+=len}};var UpdateEncoderV2=class extends DSEncoderV2{constructor(){super();this.keyMap=new Map();this.keyClock=0;this.keyClockEncoder=new IntDiffOptRleEncoder();this.clientEncoder=new UintOptRleEncoder();this.leftClockEncoder=new IntDiffOptRleEncoder();this.rightClockEncoder=new IntDiffOptRleEncoder();this.infoEncoder=new RleEncoder(writeUint8);this.stringEncoder=new StringEncoder();this.parentInfoEncoder=new RleEncoder(writeUint8);this.typeRefEncoder=new UintOptRleEncoder();this.lenEncoder=new UintOptRleEncoder()}
275toUint8Array(){const encoder=createEncoder();writeVarUint(encoder,0);writeVarUint8Array(encoder,this.keyClockEncoder.toUint8Array());writeVarUint8Array(encoder,this.clientEncoder.toUint8Array());writeVarUint8Array(encoder,this.leftClockEncoder.toUint8Array());writeVarUint8Array(encoder,this.rightClockEncoder.toUint8Array());writeVarUint8Array(encoder,toUint8Array(this.infoEncoder));writeVarUint8Array(encoder,this.stringEncoder.toUint8Array());writeVarUint8Array(encoder,toUint8Array(this.parentInfoEncoder));writeVarUint8Array(encoder,this.typeRefEncoder.toUint8Array());writeVarUint8Array(encoder,this.lenEncoder.toUint8Array());writeUint8Array(encoder,toUint8Array(this.restEncoder));return toUint8Array(encoder)}
276writeLeftID(id2){this.clientEncoder.write(id2.client);this.leftClockEncoder.write(id2.clock)}
277writeRightID(id2){this.clientEncoder.write(id2.client);this.rightClockEncoder.write(id2.clock)}
278writeClient(client){this.clientEncoder.write(client)}
279writeInfo(info){this.infoEncoder.write(info)}
280writeString(s){this.stringEncoder.write(s)}
281writeParentInfo(isYKey){this.parentInfoEncoder.write(isYKey?1:0)}
282writeTypeRef(info){this.typeRefEncoder.write(info)}
283writeLen(len){this.lenEncoder.write(len)}
284writeAny(any2){writeAny(this.restEncoder,any2)}
285writeBuf(buf){writeVarUint8Array(this.restEncoder,buf)}
286writeJSON(embed){writeAny(this.restEncoder,embed)}
287writeKey(key){const clock=this.keyMap.get(key);if(clock===void 0){this.keyClockEncoder.write(this.keyClock++);this.stringEncoder.write(key)}else{this.keyClockEncoder.write(clock)}}};var writeStructs=(encoder,structs,client,clock)=>{clock=max(clock,structs[0].id.clock);const startNewStructs=findIndexSS(structs,clock);writeVarUint(encoder.restEncoder,structs.length-startNewStructs);encoder.writeClient(client);writeVarUint(encoder.restEncoder,clock);const firstStruct=structs[startNewStructs];firstStruct.write(encoder,clock-firstStruct.id.clock);for(let i=startNewStructs+1;i<structs.length;i++){structs[i].write(encoder,0)}};var writeClientsStructs=(encoder,store2,_sm)=>{const sm=new Map();_sm.forEach((clock,client)=>{if(getState(store2,client)>clock){sm.set(client,clock)}});getStateVector(store2).forEach((_clock,client)=>{if(!_sm.has(client)){sm.set(client,0)}});writeVarUint(encoder.restEncoder,sm.size);from(sm.entries()).sort((a,b)=>
287b[0]-a[0]).forEach(([client,clock])=>{writeStructs(encoder,store2.clients.get(client),client,clock)})};var readClientsStructRefs=(decoder,doc2)=>{const clientRefs=create();const numOfStateUpdates=readVarUint(decoder.restDecoder);for(let i=0;i<numOfStateUpdates;i++){const numberOfStructs=readVarUint(decoder.restDecoder);const refs=new Array(numberOfStructs);const client=decoder.readClient();let clock=readVarUint(decoder.restDecoder);clientRefs.set(client,{i:0,refs});for(let i2=0;i2<numberOfStructs;i2++){const info=decoder.readInfo();switch(BITS5&info){case 0:{const len=decoder.readLen();refs[i2]=new GC(createID(client,clock),len);clock+=len;break}
288case 10:{const len=readVarUint(decoder.restDecoder);refs[i2]=new Skip(createID(client,clock),len);clock+=len;break}
289default:{const cantCopyParentInfo=(info&(BIT7|BIT8))===0;const struct=new Item(createID(client,clock),null,(info&BIT8)===BIT8?decoder.readLeftID():null,null,(info&BIT7)===BIT7?decoder.readRightID():null,cantCopyParentInfo?decoder.readParentInfo()?doc2.get(decoder.readString()):decoder.readLeftID():null,cantCopyParentInfo&&(info&BIT6)===BIT6?decoder.readString():null,readItemContent(decoder,info));refs[i2]=struct;clock+=struct.length}}}}
290return clientRefs};var integrateStructs=(transaction,store2,clientsStructRefs)=>{const stack=[];let clientsStructRefsIds=from(clientsStructRefs.keys()).sort((a,b)=>a-b);if(clientsStructRefsIds.length===0){return null}
291const getNextStructTarget=()=>{if(clientsStructRefsIds.length===0){return null}
292let nextStructsTarget=(clientsStructRefs.get(clientsStructRefsIds[clientsStructRefsIds.length-1]));while(nextStructsTarget.refs.length===nextStructsTarget.i){clientsStructRefsIds.pop();if(clientsStructRefsIds.length>0){nextStructsTarget=clientsStructRefs.get(clientsStructRefsIds[clientsStructRefsIds.length-1])}else{return null}}
293return nextStructsTarget};let curStructsTarget=getNextStructTarget();if(curStructsTarget===null){return null}
294const restStructs=new StructStore();const missingSV=new Map();const updateMissingSv=(client,clock)=>{const mclock=missingSV.get(client);if(mclock==null||mclock>clock){missingSV.set(client,clock)}};let stackHead=(curStructsTarget.refs[curStructsTarget.i++]);const state=new Map();const addStackToRestSS=()=>{for(const item of stack){const client=item.id.client;const inapplicableItems=clientsStructRefs.get(client);if(inapplicableItems){inapplicableItems.i--;restStructs.clients.set(client,inapplicableItems.refs.slice(inapplicableItems.i));clientsStructRefs.delete(client);inapplicableItems.i=0;inapplicableItems.refs=[]}else{restStructs.clients.set(client,[item])}
295clientsStructRefsIds=clientsStructRefsIds.filter((c)=>c!==client)}
296stack.length=0};while(!0){if(stackHead.constructor!==Skip){const localClock=setIfUndefined(state,stackHead.id.client,()=>getState(store2,stackHead.id.client));const offset=localClock-stackHead.id.clock;if(offset<0){stack.push(stackHead);updateMissingSv(stackHead.id.client,stackHead.id.clock-1);addStackToRestSS()}else{const missing=stackHead.getMissing(transaction,store2);if(missing!==null){stack.push(stackHead);const structRefs=clientsStructRefs.get(missing)||{refs:[],i:0};if(structRefs.refs.length===structRefs.i){updateMissingSv(missing,getState(store2,missing));addStackToRestSS()}else{stackHead=structRefs.refs[structRefs.i++];continue}}else if(offset===0||offset<stackHead.length){stackHead.integrate(transaction,offset);state.set(stackHead.id.client,stackHead.id.clock+stackHead.length)}}}
297if(stack.length>0){stackHead=stack.pop()}else if(curStructsTarget!==null&&curStructsTarget.i<curStructsTarget.refs.length){stackHead=curStructsTarget.refs[curStructsTarget.i++]}else{curStructsTarget=getNextStructTarget();if(curStructsTarget===null){break}else{stackHead=curStructsTarget.refs[curStructsTarget.i++]}}}
298if(restStructs.clients.size>0){const encoder=new UpdateEncoderV2();writeClientsStructs(encoder,restStructs,new Map());writeVarUint(encoder.restEncoder,0);return{missing:missingSV,update:encoder.toUint8Array()}}
299return null};var writeStructsFromTransaction=(encoder,transaction)=>writeClientsStructs(encoder,transaction.doc.store,transaction.beforeState);var readUpdateV2=(decoder,ydoc,transactionOrigin,structDecoder=new UpdateDecoderV2(decoder))=>transact(ydoc,(transaction)=>{transaction.local=!1;let retry=!1;const doc2=transaction.doc;const store2=doc2.store;const ss=readClientsStructRefs(structDecoder,doc2);const restStructs=integrateStructs(transaction,store2,ss);const pending=store2.pendingStructs;if(pending){for(const[client,clock]of pending.missing){if(clock<getState(store2,client)){retry=!0;break}}
300if(restStructs){for(const[client,clock]of restStructs.missing){const mclock=pending.missing.get(client);if(mclock==null||mclock>clock){pending.missing.set(client,clock)}}
301pending.update=mergeUpdatesV2([pending.update,restStructs.update])}}else{store2.pendingStructs=restStructs}
302const dsRest=readAndApplyDeleteSet(structDecoder,transaction,store2);
302if(store2.pendingDs){const pendingDSUpdate=new UpdateDecoderV2(createDecoder(store2.pendingDs));readVarUint(pendingDSUpdate.restDecoder);const dsRest2=readAndApplyDeleteSet(pendingDSUpdate,transaction,store2);if(dsRest&&dsRest2){store2.pendingDs=mergeUpdatesV2([dsRest,dsRest2])}else{store2.pendingDs=dsRest||dsRest2}}else{store2.pendingDs=dsRest}
303if(retry){const update=(store2.pendingStructs.update);store2.pendingStructs=null;applyUpdateV2(transaction.doc,update)}},transactionOrigin,!1);var readUpdate=(decoder,ydoc,transactionOrigin)=>readUpdateV2(decoder,ydoc,transactionOrigin,new UpdateDecoderV1(decoder));var applyUpdateV2=(ydoc,update,transactionOrigin,YDecoder=UpdateDecoderV2)=>{const decoder=createDecoder(update);readUpdateV2(decoder,ydoc,transactionOrigin,new YDecoder(decoder))};var applyUpdate=(ydoc,update,transactionOrigin)=>applyUpdateV2(ydoc,update,transactionOrigin,UpdateDecoderV1);var writeStateAsUpdate=(encoder,doc2,targetStateVector=new Map())=>{writeClientsStructs(encoder,doc2.store,targetStateVector);writeDeleteSet(encoder,createDeleteSetFromStructStore(doc2.store))};var encodeStateAsUpdateV2=(doc2,encodedTargetStateVector=new Uint8Array([0]),encoder=new UpdateEncoderV2())=>{const targetStateVector=decodeStateVector(encodedTargetStateVector);writeStateAsUpdate(encoder,doc2,targetStateVector);const updates=[encoder.toUint8Array()];if(doc2.store.pendingDs){updates.push(doc2.store.pendingDs)}
304if(doc2.store.pendingStructs){updates.push(diffUpdateV2(doc2.store.pendingStructs.update,encodedTargetStateVector))}
305if(updates.length>1){if(encoder.constructor===UpdateEncoderV1){return mergeUpdates(updates.map((update,i)=>i===0?update:convertUpdateFormatV2ToV1(update)))}else if(encoder.constructor===UpdateEncoderV2){return mergeUpdatesV2(updates)}}
306return updates[0]};var encodeStateAsUpdate=(doc2,encodedTargetStateVector)=>encodeStateAsUpdateV2(doc2,encodedTargetStateVector,new UpdateEncoderV1());var readStateVector=(decoder)=>{const ss=new Map();const ssLength=readVarUint(decoder.restDecoder);for(let i=0;i<ssLength;i++){const client=readVarUint(decoder.restDecoder);const clock=readVarUint(decoder.restDecoder);ss.set(client,clock)}
307return ss};var decodeStateVector=(decodedState)=>readStateVector(new DSDecoderV1(createDecoder(decodedState)));var writeStateVector=(encoder,sv)=>{writeVarUint(encoder.restEncoder,sv.size);from(sv.entries()).sort((a,b)=>b[0]-a[0]).forEach(([client,clock])=>{writeVarUint(encoder.restEncoder,client);writeVarUint(encoder.restEncoder,clock)});return encoder};var writeDocumentStateVector=(encoder,doc2)=>writeStateVector(encoder,getStateVector(doc2.store));var encodeStateVectorV2=(doc2,encoder=new DSEncoderV2())=>{if(doc2 instanceof Map){writeStateVector(encoder,doc2)}else{writeDocumentStateVector(encoder,doc2)}
308return encoder.toUint8Array()};var encodeStateVector=(doc2)=>encodeStateVectorV2(doc2,new DSEncoderV1());var EventHandler=class{constructor(){this.l=[]}};var createEventHandler=()=>new EventHandler();var addEventHandlerListener=(eventHandler,f)=>eventHandler.l.push(f);var removeEventHandlerListener=(eventHandler,f)=>{const l=eventHandler.l;const len=l.length;eventHandler.l=l.filter((g)=>f!==g);if(len===eventHandler.l.length){console.error("[yjs] Tried to remove event handler that doesn't exist.")}};var callEventHandlerListeners=(eventHandler,arg0,arg1)=>callAll(eventHandler.l,[arg0,arg1]);var ID=class{constructor(client,clock){this.client=client;this.clock=clock}};var compareIDs=(a,b)=>a===b||a!==null&&b!==null&&a.client===b.client&&a.clock===b.clock;var createID=(client,clock)=>new ID(client,clock);var writeID=(encoder,id2)=>{writeVarUint(encoder,id2.client);writeVarUint(encoder,id2.clock)};var readID=(decoder)=>createID(readVarUint(decoder),readVarUint(decoder));var findRootTypeKey=(type)=>{for(const[key,value]of type.doc.share.entries()){if(value===type){return key}}
309throw unexpectedCase()};var isParentOf=(parent,child)=>{while(child!==null){if(child.parent===parent){return!0}
310child=child.parent._item}
311return!1};var logType=(type)=>{const res=[];let n=type._start;while(n){res.push(n);n=n.right}
312console.log("Children: ",res);console.log("Children content: ",res.filter((m)=>!m.deleted).map((m)=>m.content))};var PermanentUserData=class{constructor(doc2,storeType=doc2.getMap("users")){const dss=new Map();this.yusers=storeType;this.doc=doc2;this.clients=new Map();this.dss=dss;const initUser=(user,userDescription)=>{const ds=user.get("ds");const ids=user.get("ids");
312const addClientId=((clientid)=>this.clients.set(clientid,userDescription));ds.observe((event)=>{event.changes.added.forEach((item)=>{item.content.getContent().forEach((encodedDs)=>{if(encodedDs instanceof Uint8Array){this.dss.set(userDescription,mergeDeleteSets([this.dss.get(userDescription)||createDeleteSet(),readDeleteSet(new DSDecoderV1(createDecoder(encodedDs)))]))}})})});this.dss.set(userDescription,mergeDeleteSets(ds.map((encodedDs)=>readDeleteSet(new DSDecoderV1(createDecoder(encodedDs))))));ids.observe((event)=>event.changes.added.forEach((item)=>item.content.getContent().forEach(addClientId)));ids.forEach(addClientId)};storeType.observe((event)=>{event.keysChanged.forEach((userDescription)=>initUser(storeType.get(userDescription),userDescription))});storeType.forEach(initUser)}
313setUserMapping(doc2,clientid,userDescription,{filter=()=>!0}={}){const users2=this.yusers;let user=users2.get(userDescription);if(!user){user=new YMap();user.set("ids",new YArray());user.set("ds",new YArray());users2.set(userDescription,user)}
314user.get("ids").push([clientid]);users2.observe((_event)=>{setTimeout(()=>{const userOverwrite=users2.get(userDescription);if(userOverwrite!==user){user=userOverwrite;this.clients.forEach((_userDescription,clientid2)=>{if(userDescription===_userDescription){user.get("ids").push([clientid2])}});const encoder=new DSEncoderV1();const ds=this.dss.get(userDescription);if(ds){writeDeleteSet(encoder,ds);user.get("ds").push([encoder.toUint8Array()])}}},0)});doc2.on("afterTransaction",(transaction)=>{setTimeout(()=>{const yds=user.get("ds");const ds=transaction.deleteSet;if(transaction.local&&ds.clients.size>0&&filter(transaction,ds)){const encoder=new DSEncoderV1();writeDeleteSet(encoder,ds);yds.push([encoder.toUint8Array()])}})})}
315getUserByClientId(clientid){return this.clients.get(clientid)||null}
316getUserByDeletedId(id2){for(const[userDescription,ds]of this.dss.entries()){if(isDeleted(ds,id2)){return userDescription}}
317return null}};var RelativePosition=class{constructor(type,tname,item,assoc=0){this.type=type;this.tname=tname;this.item=item;this.assoc=assoc}};var relativePositionToJSON=(rpos)=>{const json={};if(rpos.type){json.type=rpos.type}
318if(rpos.tname){json.tname=rpos.tname}
319if(rpos.item){json.item=rpos.item}
320if(rpos.assoc!=null){json.assoc=rpos.assoc}
321return json};var createRelativePositionFromJSON=(json)=>new RelativePosition(json.type==null?null:createID(json.type.client,json.type.clock),json.tname??null,json.item==null?null:createID(json.item.client,json.item.clock),json.assoc==null?0:json.assoc);var AbsolutePosition=class{constructor(type,index,assoc=0){this.type=type;this.index=index;this.assoc=assoc}};var createAbsolutePosition=(type,index,assoc=0)=>new AbsolutePosition(type,index,assoc);var createRelativePosition=(type,item,assoc)=>{let typeid=null;let tname=null;if(type._item===null){tname=findRootTypeKey(type)}else{typeid=createID(type._item.id.client,type._item.id.clock)}
322return new RelativePosition(typeid,tname,item,assoc)};var createRelativePositionFromTypeIndex=(type,index,assoc=0)=>{let t=type._start;if(assoc<0){if(index===0){return createRelativePosition(type,null,assoc)}
323index--}
324while(t!==null){if(!t.deleted&&t.countable){if(t.length>index){return createRelativePosition(type,createID(t.id.client,t.id.clock+index),assoc)}
325index-=t.length}
326if(t.right===null&&assoc<0){return createRelativePosition(type,t.lastId,assoc)}
327t=t.right}
328return createRelativePosition(type,null,assoc)};var writeRelativePosition=(encoder,rpos)=>{const{type,tname,item,assoc}=rpos;if(item!==null){writeVarUint(encoder,0);writeID(encoder,item)}else if(tname!==null){writeUint8(encoder,1);writeVarString(encoder,tname)}else if(type!==null){writeUint8(encoder,2);writeID(encoder,type)}else{throw unexpectedCase()}
329writeVarInt(encoder,assoc);return encoder};var encodeRelativePosition=(rpos)=>{const encoder=createEncoder();writeRelativePosition(encoder,rpos);return toUint8Array(encoder)};var readRelativePosition=(decoder)=>{let type=null;let tname=null;let itemID=null;switch(readVarUint(decoder)){case 0:itemID=readID(decoder);break;case 1:tname=readVarString(decoder);break;case 2:{type=readID(decoder)}}
330const assoc=hasContent(decoder)?readVarInt(decoder):0;return new RelativePosition(type,tname,itemID,assoc)};var decodeRelativePosition=(uint8Array)=>readRelativePosition(createDecoder(uint8Array));var getItemWithOffset=(store2,id2)=>{const item=getItem(store2,id2);const diff=id2.clock-item.id.clock;return{item,diff}};var createAbsolutePositionFromRelativePosition=(rpos,doc2,followUndoneDeletions=!0)=>{const store2=doc2.store;const rightID=rpos.item;const typeID=rpos.type;const tname=rpos.tname;const assoc=rpos.assoc;let type=null;let index=0;if(rightID!==null){if(getState(store2,rightID.client)<=rightID.clock){return null}
331const res=followUndoneDeletions?followRedone(store2,rightID):getItemWithOffset(store2,rightID);const right=res.item;if(!(right instanceof Item)){return null}
332type=right.parent;if(type._item===null||!type._item.deleted){index=right.deleted||!right.countable?0:res.diff+(assoc>=0?0:1);let n=right.left;while(n!==null){if(!n.deleted&&n.countable){index+=n.length}
333n=n.left}}}else{if(tname!==null){type=doc2.get(tname)}else if(typeID!==null){if(getState(store2,typeID.client)<=typeID.clock){return null}
334const{item}=followUndoneDeletions?followRedone(store2,typeID):{item:getItem(store2,typeID)};if(item instanceof Item&&item.content instanceof ContentType){type=item.content.type}else{return null}}else{throw unexpectedCase()}
335if(assoc>=0){index=type._length}else{index=0}}
336return createAbsolutePosition(type,index,rpos.assoc)};var compareRelativePositions=(a,b)=>a===b||a!==null&&b!==null&&a.tname===b.tname&&compareIDs(a.item,b.item)&&compareIDs(a.type,b.type)&&a.assoc===b.assoc;var Snapshot=class{constructor(ds,sv){this.ds=ds;this.sv=sv}};var equalSnapshots=(snap1,snap2)=>{const ds1=snap1.ds.clients;const ds2=snap2.ds.clients;const sv1=snap1.sv;const sv2=snap2.sv;if(sv1.size!==sv2.size||ds1.size!==ds2.size){return!1}
337for(const[key,value]of sv1.entries()){if(sv2.get(key)!==value){return!1}}
338for(const[client,dsitems1]of ds1.entries()){const dsitems2=ds2.get(client)||[];if(dsitems1.length!==dsitems2.length){return!1}
339for(let i=0;i<dsitems1.length;i++){const dsitem1=dsitems1[i];const dsitem2=dsitems2[i];if(dsitem1.clock!==dsitem2.clock||dsitem1.len!==dsitem2.len){return!1}}}
340return!0};var encodeSnapshotV2=(snapshot2,encoder=new DSEncoderV2())=>{writeDeleteSet(encoder,snapshot2.ds);writeStateVector(encoder,snapshot2.sv);return encoder.toUint8Array()};var encodeSnapshot=(snapshot2)=>encodeSnapshotV2(snapshot2,new DSEncoderV1());var decodeSnapshotV2=(buf,decoder=new DSDecoderV2(createDecoder(buf)))=>{return new Snapshot(readDeleteSet(decoder),readStateVector(decoder))};var decodeSnapshot=(buf)=>decodeSnapshotV2(buf,new DSDecoderV1(createDecoder(buf)));var createSnapshot=(ds,sm)=>new Snapshot(ds,sm);var emptySnapshot=createSnapshot(createDeleteSet(),new Map());var snapshot=(doc2)=>createSnapshot(createDeleteSetFromStructStore(doc2.store),getStateVector(doc2.store));var isVisible=(item,snapshot2)=>snapshot2===void 0?!item.deleted:snapshot2.sv.has(item.id.client)&&(snapshot2.sv.get(item.id.client)||0)>item.id.clock&&!isDeleted(snapshot2.ds,item.id);
340var splitSnapshotAffectedStructs=(transaction,snapshot2)=>{const meta=setIfUndefined(transaction.meta,splitSnapshotAffectedStructs,create2);const store2=transaction.doc.store;if(!meta.has(snapshot2)){snapshot2.sv.forEach((clock,client)=>{if(clock<getState(store2,client)){getItemCleanStart(transaction,createID(client,clock))}});iterateDeletedStructs(transaction,snapshot2.ds,(_item)=>{});meta.add(snapshot2)}};var createDocFromSnapshot=(originDoc,snapshot2,newDoc=new Doc())=>{if(originDoc.gc){throw new Error("Garbage-collection must be disabled in `originDoc`!")}
341const{sv,ds}=snapshot2;const encoder=new UpdateEncoderV2();originDoc.transact((transaction)=>{let size2=0;sv.forEach((clock)=>{if(clock>0){size2++}});writeVarUint(encoder.restEncoder,size2);for(const[client,clock]of sv){if(clock===0){continue}
342if(clock<getState(originDoc.store,client)){getItemCleanStart(transaction,createID(client,clock))}
343const structs=originDoc.store.clients.get(client)||[];const lastStructIndex=findIndexSS(structs,clock-1);writeVarUint(encoder.restEncoder,lastStructIndex+1);encoder.writeClient(client);writeVarUint(encoder.restEncoder,0);for(let i=0;i<=lastStructIndex;i++){structs[i].write(encoder,0)}}
344writeDeleteSet(encoder,ds)});applyUpdateV2(newDoc,encoder.toUint8Array(),"snapshot");return newDoc};var snapshotContainsUpdateV2=(snapshot2,update,YDecoder=UpdateDecoderV2)=>{const updateDecoder=new YDecoder(createDecoder(update));const lazyDecoder=new LazyStructReader(updateDecoder,!1);for(let curr=lazyDecoder.curr;curr!==null;curr=lazyDecoder.next()){if((snapshot2.sv.get(curr.id.client)||0)<curr.id.clock+curr.length){return!1}}
345const mergedDS=mergeDeleteSets([snapshot2.ds,readDeleteSet(updateDecoder)]);return equalDeleteSets(snapshot2.ds,mergedDS)};var snapshotContainsUpdate=(snapshot2,update)=>snapshotContainsUpdateV2(snapshot2,update,UpdateDecoderV1);var StructStore=class{constructor(){this.clients=new Map();this.pendingStructs=null;this.pendingDs=null}};var getStateVector=(store2)=>{const sm=new Map();store2.clients.forEach((structs,client)=>{const struct=structs[structs.length-1];sm.set(client,struct.id.clock+struct.length)});return sm};var getState=(store2,client)=>{const structs=store2.clients.get(client);if(structs===void 0){return 0}
346const lastStruct=structs[structs.length-1];return lastStruct.id.clock+lastStruct.length};var addStruct=(store2,struct)=>{let structs=store2.clients.get(struct.id.client);if(structs===void 0){structs=[];store2.clients.set(struct.id.client,structs)}else{const lastStruct=structs[structs.length-1];if(lastStruct.id.clock+lastStruct.length!==struct.id.clock){throw unexpectedCase()}}
347structs.push(struct)};var findIndexSS=(structs,clock)=>{let left=0;let right=structs.length-1;let mid=structs[right];let midclock=mid.id.clock;if(midclock===clock){return right}
348let midindex=floor(clock/(midclock+mid.length-1)*right);while(left<=right){mid=structs[midindex];midclock=mid.id.clock;if(midclock<=clock){if(clock<midclock+mid.length){return midindex}
349left=midindex+1}else{right=midindex-1}
350midindex=floor((left+right)/2)}
351throw unexpectedCase()};var find=(store2,id2)=>{const structs=store2.clients.get(id2.client);return structs[findIndexSS(structs,id2.clock)]};var getItem=(find);var findIndexCleanStart=(transaction,structs,clock)=>{const index=findIndexSS(structs,clock);const struct=structs[index];if(struct.id.clock<clock&&struct instanceof Item){structs.splice(index+1,0,splitItem(transaction,struct,clock-struct.id.clock));return index+1}
352return index};var getItemCleanStart=(transaction,id2)=>{const structs=(transaction.doc.store.clients.get(id2.client));return structs[findIndexCleanStart(transaction,structs,id2.clock)]};var getItemCleanEnd=(transaction,store2,id2)=>{const structs=store2.clients.get(id2.client);const index=findIndexSS(structs,id2.clock);const struct=structs[index];if(id2.clock!==struct.id.clock+struct.length-1&&struct.constructor!==GC){structs.splice(index+1,0,splitItem(transaction,struct,id2.clock-struct.id.clock+1))}
353return struct};var replaceStruct=(store2,struct,newStruct)=>{const structs=(store2.clients.get(struct.id.client));structs[findIndexSS(structs,struct.id.clock)]=newStruct};var iterateStructs=(transaction,structs,clockStart,len,f)=>{if(len===0){return}
354const clockEnd=clockStart+len;let index=findIndexCleanStart(transaction,structs,clockStart);let struct;do{struct=structs[index++];if(clockEnd<struct.id.clock+struct.length){findIndexCleanStart(transaction,structs,clockEnd)}
355f(struct)}while(index<structs.length&&structs[index].id.clock<clockEnd);};var Transaction=class{constructor(doc2,origin2,local){this.doc=doc2;this.deleteSet=new DeleteSet();this.beforeState=getStateVector(doc2.store);this.afterState=new Map();this.changed=new Map();this.changedParentTypes=new Map();this._mergeStructs=[];this.origin=origin2;this.meta=new Map();this.local=local;this.subdocsAdded=new Set();this.subdocsRemoved=new Set();this.subdocsLoaded=new Set();this._needFormattingCleanup=!1}};var writeUpdateMessageFromTransaction=(encoder,transaction)=>
355{if(transaction.deleteSet.clients.size===0&&!any(transaction.afterState,(clock,client)=>transaction.beforeState.get(client)!==clock)){return!1}
356sortAndMergeDeleteSet(transaction.deleteSet);writeStructsFromTransaction(encoder,transaction);writeDeleteSet(encoder,transaction.deleteSet);return!0};var addChangedTypeToTransaction=(transaction,type,parentSub)=>{const item=type._item;if(item===null||item.id.clock<(transaction.beforeState.get(item.id.client)||0)&&!item.deleted){setIfUndefined(transaction.changed,type,create2).add(parentSub)}};var tryToMergeWithLefts=(structs,pos)=>{let right=structs[pos];let left=structs[pos-1];let i=pos;for(;i>0;right=left,left=structs[--i-1]){if(left.deleted===right.deleted&&left.constructor===right.constructor){if(left.mergeWith(right)){if(right instanceof Item&&right.parentSub!==null&&right.parent._map.get(right.parentSub)===right){right.parent._map.set(right.parentSub,left)}
357continue}}
358break}
359const merged=pos-i;if(merged){structs.splice(pos+1-merged,merged)}
360return merged};var tryGcDeleteSet=(ds,store2,gcFilter)=>{for(const[client,deleteItems]of ds.clients.entries()){const structs=(store2.clients.get(client));for(let di=deleteItems.length-1;di>=0;di--){const deleteItem=deleteItems[di];const endDeleteItemClock=deleteItem.clock+deleteItem.len;for(let si=findIndexSS(structs,deleteItem.clock),struct=structs[si];si<structs.length&&struct.id.clock<endDeleteItemClock;struct=structs[++si]){const struct2=structs[si];if(deleteItem.clock+deleteItem.len<=struct2.id.clock){break}
361if(struct2 instanceof Item&&struct2.deleted&&!struct2.keep&&gcFilter(struct2)){struct2.gc(store2,!1)}}}}};var tryMergeDeleteSet=(ds,store2)=>{ds.clients.forEach((deleteItems,client)=>{const structs=(store2.clients.get(client));for(let di=deleteItems.length-1;di>=0;di--){const deleteItem=deleteItems[di];const mostRightIndexToCheck=min(structs.length-1,1+findIndexSS(structs,deleteItem.clock+deleteItem.len-1));for(let si=mostRightIndexToCheck,struct=structs[si];si>0&&struct.id.clock>=deleteItem.clock;struct=structs[si]){si-=1+tryToMergeWithLefts(structs,si)}}})};var tryGc=(ds,store2,gcFilter)=>{tryGcDeleteSet(ds,store2,gcFilter);tryMergeDeleteSet(ds,store2)};var cleanupTransactions=(transactionCleanups,i)=>{if(i<transactionCleanups.length){const transaction=transactionCleanups[i];const doc2=transaction.doc;const store2=doc2.store;const ds=transaction.deleteSet;const mergeStructs=transaction._mergeStructs;try{sortAndMergeDeleteSet(ds);transaction.afterState=getStateVector(transaction.doc.store);doc2.emit("beforeObserverCalls",[transaction,doc2]);const fs=[];transaction.changed.forEach((subs,itemtype)=>fs.push(()=>{if(itemtype._item===null||!itemtype._item.deleted){itemtype._callObserver(transaction,subs)}}));fs.push(()=>{transaction.changedParentTypes.forEach((events,type)=>{if(type._dEH.l.length>0&&(type._item===null||!type._item.deleted)){events=events.filter((event)=>event.target._item===null||!event.target._item.deleted);events.forEach((event)=>{event.currentTarget=type;event._path=null});events.sort((event1,event2)=>event1.path.length-event2.path.length);fs.push(()=>{callEventHandlerListeners(type._dEH,events,transaction)})}});fs.push(()=>doc2.emit("afterTransaction",[transaction,doc2]));fs.push(()=>{if(transaction._needFormattingCleanup){cleanupYTextAfterTransaction(transaction)}})});callAll(fs,[])}finally{if(doc2.gc){tryGcDeleteSet(ds,store2,doc2.gcFilter)}
362tryMergeDeleteSet(ds,store2);transaction.afterState.forEach((clock,client)=>{const beforeClock=transaction.beforeState.get(client)||0;if(beforeClock!==clock){const structs=(store2.clients.get(client));const firstChangePos=max(findIndexSS(structs,beforeClock),1);for(let i2=structs.length-1;i2>=firstChangePos;){i2-=1+tryToMergeWithLefts(structs,i2)}}});for(let i2=mergeStructs.length-1;i2>=0;i2--){const{client,clock}=mergeStructs[i2].id;const structs=(store2.clients.get(client));const replacedStructPos=findIndexSS(structs,clock);if(replacedStructPos+1<structs.length){if(tryToMergeWithLefts(structs,replacedStructPos+1)>1){continue}}
363if(replacedStructPos>0){tryToMergeWithLefts(structs,replacedStructPos)}}
364if(!transaction.local&&transaction.afterState.get(doc2.clientID)!==transaction.beforeState.get(doc2.clientID)){print(ORANGE,BOLD,"[yjs] ",UNBOLD,RED,"Changed the client-id because another client seems to be using it.");doc2.clientID=generateNewClientId()}
365doc2.emit("afterTransactionCleanup",[transaction,doc2]);if(doc2._observers.has("update")){const encoder=new UpdateEncoderV1();const hasContent2=writeUpdateMessageFromTransaction(encoder,transaction);if(hasContent2){doc2.emit("update",[encoder.toUint8Array(),transaction.origin,doc2,transaction])}}
366if(doc2._observers.has("updateV2")){const encoder=new UpdateEncoderV2();const hasContent2=writeUpdateMessageFromTransaction(encoder,transaction);if(hasContent2){doc2.emit("updateV2",[encoder.toUint8Array(),transaction.origin,doc2,transaction])}}
367const{subdocsAdded,subdocsLoaded,subdocsRemoved}=transaction;if(subdocsAdded.size>0||subdocsRemoved.size>0||subdocsLoaded.size>0){subdocsAdded.forEach((subdoc)=>
367{subdoc.clientID=doc2.clientID;if(subdoc.collectionid==null){subdoc.collectionid=doc2.collectionid}
368doc2.subdocs.add(subdoc)});subdocsRemoved.forEach((subdoc)=>doc2.subdocs.delete(subdoc));doc2.emit("subdocs",[{loaded:subdocsLoaded,added:subdocsAdded,removed:subdocsRemoved},doc2,transaction]);subdocsRemoved.forEach((subdoc)=>subdoc.destroy())}
369if(transactionCleanups.length<=i+1){doc2._transactionCleanups=[];doc2.emit("afterAllTransactions",[doc2,transactionCleanups])}else{cleanupTransactions(transactionCleanups,i+1)}}}};var transact=(doc2,f,origin2=null,local=!0)=>{const transactionCleanups=doc2._transactionCleanups;let initialCall=!1;let result=null;if(doc2._transaction===null){initialCall=!0;doc2._transaction=new Transaction(doc2,origin2,local);transactionCleanups.push(doc2._transaction);if(transactionCleanups.length===1){doc2.emit("beforeAllTransactions",[doc2])}
370doc2.emit("beforeTransaction",[doc2._transaction,doc2])}
371try{result=f(doc2._transaction)}finally{if(initialCall){const finishCleanup=doc2._transaction===transactionCleanups[0];doc2._transaction=null;if(finishCleanup){cleanupTransactions(transactionCleanups,0)}}}
372return result};var StackItem=class{constructor(deletions,insertions){this.insertions=insertions;this.deletions=deletions;this.meta=new Map()}};var clearUndoManagerStackItem=(tr,um,stackItem)=>{iterateDeletedStructs(tr,stackItem.deletions,(item)=>{if(item instanceof Item&&um.scope.some((type)=>type===tr.doc||isParentOf(type,item))){keepItem(item,!1)}})};var popStackItem=(undoManager2,stack,eventType)=>{let _tr=null;const doc2=undoManager2.doc;const scope=undoManager2.scope;transact(doc2,(transaction)=>{while(stack.length>0&&undoManager2.currStackItem===null){const store2=doc2.store;const stackItem=(stack.pop());const itemsToRedo=new Set();const itemsToDelete=[];let performedChange=!1;iterateDeletedStructs(transaction,stackItem.insertions,(struct)=>{if(struct instanceof Item){if(struct.redone!==null){let{item,diff}=followRedone(store2,struct.id);if(diff>0){item=getItemCleanStart(transaction,createID(item.id.client,item.id.clock+diff))}
373struct=item}
374if(!struct.deleted&&scope.some((type)=>type===transaction.doc||isParentOf(type,struct))){itemsToDelete.push(struct)}}});iterateDeletedStructs(transaction,stackItem.deletions,(struct)=>{if(struct instanceof Item&&scope.some((type)=>type===transaction.doc||isParentOf(type,struct))&&!isDeleted(stackItem.insertions,struct.id)){itemsToRedo.add(struct)}});itemsToRedo.forEach((struct)=>{performedChange=redoItem(transaction,struct,itemsToRedo,stackItem.insertions,undoManager2.ignoreRemoteMapChanges,undoManager2)!==null||performedChange});for(let i=itemsToDelete.length-1;i>=0;i--){const item=itemsToDelete[i];if(undoManager2.deleteFilter(item)){item.delete(transaction);performedChange=!0}}
375undoManager2.currStackItem=performedChange?stackItem:null}
376transaction.changed.forEach((subProps,type)=>{if(subProps.has(null)&&type._searchMarker){type._searchMarker.length=0}});_tr=transaction},undoManager2);const res=undoManager2.currStackItem;if(res!=null){const changedParentTypes=_tr.changedParentTypes;undoManager2.emit("stack-item-popped",[{stackItem:res,type:eventType,changedParentTypes,origin:undoManager2},undoManager2]);undoManager2.currStackItem=null}
377return res};var UndoManager=class extends ObservableV2{constructor(typeScope,{captureTimeout=500,captureTransaction=(_tr)=>!0,deleteFilter=()=>!0,trackedOrigins=new Set([null]),ignoreRemoteMapChanges=!1,doc:doc2=(isArray(typeScope)?typeScope[0].doc:typeScope instanceof Doc?typeScope:typeScope.doc)}={}){super();this.scope=[];this.doc=doc2;this.addToScope(typeScope);this.deleteFilter=deleteFilter;trackedOrigins.add(this);this.trackedOrigins=trackedOrigins;this.captureTransaction=captureTransaction;this.undoStack=[];this.redoStack=[];this.undoing=!1;this.redoing=!1;this.currStackItem=null;this.lastChange=0;this.ignoreRemoteMapChanges=ignoreRemoteMapChanges;this.captureTimeout=captureTimeout;this.afterTransactionHandler=(transaction)=>{if(!this.captureTransaction(transaction)||!this.scope.some((type)=>
377transaction.changedParentTypes.has(type)||type===this.doc)||!this.trackedOrigins.has(transaction.origin)&&(!transaction.origin||!this.trackedOrigins.has(transaction.origin.constructor))){return}
378const undoing=this.undoing;const redoing=this.redoing;const stack=undoing?this.redoStack:this.undoStack;if(undoing){this.stopCapturing()}else if(!redoing){this.clear(!1,!0)}
379const insertions=new DeleteSet();transaction.afterState.forEach((endClock,client)=>{const startClock=transaction.beforeState.get(client)||0;const len=endClock-startClock;if(len>0){addToDeleteSet(insertions,client,startClock,len)}});const now=getUnixTime();let didAdd=!1;if(this.lastChange>0&&now-this.lastChange<this.captureTimeout&&stack.length>0&&!undoing&&!redoing){const lastOp=stack[stack.length-1];lastOp.deletions=mergeDeleteSets([lastOp.deletions,transaction.deleteSet]);lastOp.insertions=mergeDeleteSets([lastOp.insertions,insertions])}else{stack.push(new StackItem(transaction.deleteSet,insertions));didAdd=!0}
380if(!undoing&&!redoing){this.lastChange=now}
381iterateDeletedStructs(transaction,transaction.deleteSet,(item)=>{if(item instanceof Item&&this.scope.some((type)=>type===transaction.doc||isParentOf(type,item))){keepItem(item,!0)}});const changeEvent=[{stackItem:stack[stack.length-1],origin:transaction.origin,type:undoing?"redo":"undo",changedParentTypes:transaction.changedParentTypes},this];if(didAdd){this.emit("stack-item-added",changeEvent)}else{this.emit("stack-item-updated",changeEvent)}};this.doc.on("afterTransaction",this.afterTransactionHandler);this.doc.on("destroy",()=>{this.destroy()})}
382addToScope(ytypes){const tmpSet=new Set(this.scope);ytypes=isArray(ytypes)?ytypes:[ytypes];ytypes.forEach((ytype)=>{if(!tmpSet.has(ytype)){tmpSet.add(ytype);if(ytype instanceof AbstractType?ytype.doc!==this.doc:ytype!==this.doc)warn("[yjs#509] Not same Y.Doc");this.scope.push(ytype)}})}
383addTrackedOrigin(origin2){this.trackedOrigins.add(origin2)}
384removeTrackedOrigin(origin2){this.trackedOrigins.delete(origin2)}
385clear(clearUndoStack=!0,clearRedoStack=!0){if(clearUndoStack&&this.canUndo()||clearRedoStack&&this.canRedo()){this.doc.transact((tr)=>{if(clearUndoStack){this.undoStack.forEach((item)=>clearUndoManagerStackItem(tr,this,item));this.undoStack=[]}
386if(clearRedoStack){this.redoStack.forEach((item)=>clearUndoManagerStackItem(tr,this,item));this.redoStack=[]}
387this.emit("stack-cleared",[{undoStackCleared:clearUndoStack,redoStackCleared:clearRedoStack}])})}}
388stopCapturing(){this.lastChange=0}
389undo(){this.undoing=!0;let res;try{res=popStackItem(this,this.undoStack,"undo")}finally{this.undoing=!1}
390return res}
391redo(){this.redoing=!0;let res;try{res=popStackItem(this,this.redoStack,"redo")}finally{this.redoing=!1}
392return res}
393canUndo(){return this.undoStack.length>0}
394canRedo(){return this.redoStack.length>0}
395destroy(){this.trackedOrigins.delete(this);this.doc.off("afterTransaction",this.afterTransactionHandler);super.destroy()}};function*lazyStructReaderGenerator(decoder){const numOfStateUpdates=readVarUint(decoder.restDecoder);for(let i=0;i<numOfStateUpdates;i++){const numberOfStructs=readVarUint(decoder.restDecoder);const client=decoder.readClient();let clock=readVarUint(decoder.restDecoder);for(let i2=0;i2<numberOfStructs;i2++){const info=decoder.readInfo();if(info===10){const len=readVarUint(decoder.restDecoder);yield new Skip(createID(client,clock),len);clock+=len}else if((BITS5&info)!==0){const cantCopyParentInfo=(info&(BIT7|BIT8))===0;const struct=new Item(createID(client,clock),null,(info&BIT8)===BIT8?decoder.readLeftID():null,null,(info&BIT7)===BIT7?decoder.readRightID():null,cantCopyParentInfo?decoder.readParentInfo()?decoder.readString():decoder.readLeftID():null,cantCopyParentInfo&&(info&BIT6)===BIT6?decoder.readString():null,readItemContent(decoder,info));yield struct;clock+=struct.length}else{const len=decoder.readLen();yield new GC(createID(client,clock),len);clock+=len}}}}
396var LazyStructReader=class{constructor(decoder,filterSkips){this.gen=lazyStructReaderGenerator(decoder);this.curr=null;this.done=!1;this.filterSkips=filterSkips;this.next()}
397next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&this.curr!==null&&this.curr.constructor===Skip);return this.curr}};var logUpdate=(update)=>logUpdateV2(update,UpdateDecoderV1);var logUpdateV2=(update,YDecoder=UpdateDecoderV2)=>{const structs=[];const updateDecoder=new YDecoder(createDecoder(update));const lazyDecoder=new LazyStructReader(updateDecoder,!1);for(let curr=lazyDecoder.curr;curr!==null;curr=lazyDecoder.next()){structs.push(curr)}
398print("Structs: ",structs);const ds=readDeleteSet(updateDecoder);print("DeleteSet: ",ds)};var decodeUpdate=(update)=>decodeUpdateV2(update,UpdateDecoderV1);var decodeUpdateV2=(update,YDecoder=UpdateDecoderV2)=>{const structs=[];const updateDecoder=new YDecoder(createDecoder(update));const lazyDecoder=new LazyStructReader(updateDecoder,!1);for(let curr=lazyDecoder.curr;curr!==null;curr=lazyDecoder.next()){structs.push(curr)}
399return{structs,ds:readDeleteSet(updateDecoder)}};var LazyStructWriter=class{constructor(encoder){this.currClient=0;this.startClock=0;this.written=0;this.encoder=encoder;this.clientStructs=[]}};var mergeUpdates=(updates)=>mergeUpdatesV2(updates,UpdateDecoderV1,UpdateEncoderV1);var encodeStateVectorFromUpdateV2=(update,YEncoder=DSEncoderV2,YDecoder=UpdateDecoderV2)=>{const encoder=new YEncoder();const updateDecoder=new LazyStructReader(new YDecoder(createDecoder(update)),!1);let curr=updateDecoder.curr;if(curr!==null){let size2=0;let currClient=curr.id.client;let stopCounting=curr.id.clock!==0;let currClock=stopCounting?0:curr.id.clock+curr.length;for(;curr!==null;curr=updateDecoder.next()){if(currClient!==curr.id.client){if(currClock!==0){size2++;writeVarUint(encoder.restEncoder,currClient);writeVarUint(encoder.restEncoder,currClock)}
400currClient=curr.id.client;currClock=0;stopCounting=curr.id.clock!==0}
401if(curr.constructor===Skip){stopCounting=!0}
402if(!stopCounting){currClock=curr.id.clock+curr.length}}
403if(currClock!==0){size2++;writeVarUint(encoder.restEncoder,currClient);writeVarUint(encoder.restEncoder,currClock)}
404const enc=createEncoder();writeVarUint(enc,size2);writeBinaryEncoder(enc,encoder.restEncoder);encoder.restEncoder=enc;return encoder.toUint8Array()}else{writeVarUint(encoder.restEncoder,0);return encoder.toUint8Array()}};var encodeStateVectorFromUpdate=(update)=>encodeStateVectorFromUpdateV2(update,DSEncoderV1,UpdateDecoderV1);var parseUpdateMetaV2=(update,YDecoder=UpdateDecoderV2)=>{const from2=new Map();const to=new Map();const updateDecoder=new LazyStructReader(new YDecoder(createDecoder(update)),!1);let curr=updateDecoder.curr;if(curr!==null){let currClient=curr.id.client;let currClock=curr.id.clock;from2.set(currClient,currClock);for(;curr!==null;curr=updateDecoder.next()){if(currClient!==curr.id.client){to.set(currClient,currClock);from2.set(curr.id.client,curr.id.clock);currClient=curr.id.client}
405currClock=curr.id.clock+curr.length}
406to.set(currClient,currClock)}
407return{from:from2,to}};var parseUpdateMeta=(update)=>parseUpdateMetaV2(update,UpdateDecoderV1);var sliceStruct=(left,diff)=>{if(left.constructor===GC){const{client,clock}=left.id;return new GC(createID(client,clock+diff),left.length-diff)}else if(left.constructor===Skip){const{client,clock}=left.id;return new Skip(createID(client,clock+diff),left.length-diff)}else{const leftItem=(left);const{client,clock}=leftItem.id;return new Item(createID(client,clock+diff),null,createID(client,clock+diff-1),null,leftItem.rightOrigin,leftItem.parent,leftItem.parentSub,leftItem.content.splice(diff))}};var mergeUpdatesV2=(updates,YDecoder=UpdateDecoderV2,YEncoder=UpdateEncoderV2)=>{if(updates.length===1){return updates[0]}
408const updateDecoders=updates.map((update)=>new YDecoder(createDecoder(update)));let lazyStructDecoders=updateDecoders.map((decoder)=>new LazyStructReader(decoder,!0));let currWrite=null;const updateEncoder=new YEncoder();const lazyStructEncoder=new LazyStructWriter(updateEncoder);while(!0){lazyStructDecoders=lazyStructDecoders.filter((dec)=>dec.curr!==null);lazyStructDecoders.sort((dec1,dec2)=>{if(dec1.curr.id.client===dec2.curr.id.client){const clockDiff=dec1.curr.id.clock-dec2.curr.id.clock;if(clockDiff===0){return dec1.curr.constructor===dec2.curr.constructor?0:dec1.curr.constructor===Skip?1:-1}else{return clockDiff}}else{return dec2.curr.id.client-dec1.curr.id.client}});if(lazyStructDecoders.length===0){break}
409const currDecoder=lazyStructDecoders[0];const firstClient=(currDecoder.curr.id.client);if(currWrite!==null){let curr=(currDecoder.curr);let iterated=!1;while(curr!==null&&curr.id.clock+curr.length<=currWrite.struct.id.clock+currWrite.struct.length&&curr.id.client>=currWrite.struct.id.client){curr=currDecoder.next();iterated=!0}
410if(curr===null||curr.id.client!==firstClient||iterated&&curr.id.clock>currWrite.struct.id.clock+currWrite.struct.length){continue}
411if(firstClient!==currWrite.struct.id.client){writeStructToLazyStructWriter(lazyStructEncoder,currWrite.struct,currWrite.offset);currWrite={struct:curr,offset:0};currDecoder.next()}else{if(currWrite.struct.id.clock+currWrite.struct.length<curr.id.clock){if(currWrite.struct.constructor===Skip){currWrite.struct.length=curr.id.clock+curr.length-currWrite.struct.id.clock}else{writeStructToLazyStructWriter(lazyStructEncoder,currWrite.struct,currWrite.offset);const diff=curr.id.clock-currWrite.struct.id.clock-currWrite.struct.length;const struct=new Skip(createID(firstClient,currWrite.struct.id.clock+currWrite.struct.length),diff);currWrite={struct,offset:0}}}else{const diff=currWrite.struct.id.clock+currWrite.struct.length-curr.id.clock;if(diff>0){if(currWrite.struct.constructor===Skip){currWrite.struct.length-=diff}else{curr=sliceStruct(curr,diff)}}
412if(!currWrite.struct.mergeWith(curr)){writeStructToLazyStructWriter(lazyStructEncoder,currWrite.struct,currWrite.offset);currWrite={struct:curr,offset:0};currDecoder.next()}}}}else{currWrite={struct:(currDecoder.curr),offset:0};currDecoder.next()}
413for(let next=currDecoder.curr;next!==null&&next.id.client===firstClient&&next.id.clock===currWrite.struct.id.clock+currWrite.struct.length&&next.constructor!==Skip;next=currDecoder.next()){writeStructToLazyStructWriter(lazyStructEncoder,currWrite.struct,currWrite.offset);currWrite={struct:next,offset:0}}}
414if(currWrite!==null){writeStructToLazyStructWriter(lazyStructEncoder,currWrite.struct,currWrite.offset);currWrite=null}
415finishLazyStructWriting(lazyStructEncoder);const dss=updateDecoders.map((decoder)=>readDeleteSet(decoder));const ds=mergeDeleteSets(dss);writeDeleteSet(updateEncoder,ds);return updateEncoder.toUint8Array()};
415var diffUpdateV2=(update,sv,YDecoder=UpdateDecoderV2,YEncoder=UpdateEncoderV2)=>{const state=decodeStateVector(sv);const encoder=new YEncoder();const lazyStructWriter=new LazyStructWriter(encoder);const decoder=new YDecoder(createDecoder(update));const reader=new LazyStructReader(decoder,!1);while(reader.curr){const curr=reader.curr;const currClient=curr.id.client;const svClock=state.get(currClient)||0;if(reader.curr.constructor===Skip){reader.next();continue}
416if(curr.id.clock+curr.length>svClock){writeStructToLazyStructWriter(lazyStructWriter,curr,max(svClock-curr.id.clock,0));reader.next();while(reader.curr&&reader.curr.id.client===currClient){writeStructToLazyStructWriter(lazyStructWriter,reader.curr,0);reader.next()}}else{while(reader.curr&&reader.curr.id.client===currClient&&reader.curr.id.clock+reader.curr.length<=svClock){reader.next()}}}
417finishLazyStructWriting(lazyStructWriter);const ds=readDeleteSet(decoder);writeDeleteSet(encoder,ds);return encoder.toUint8Array()};var diffUpdate=(update,sv)=>diffUpdateV2(update,sv,UpdateDecoderV1,UpdateEncoderV1);var flushLazyStructWriter=(lazyWriter)=>{if(lazyWriter.written>0){lazyWriter.clientStructs.push({written:lazyWriter.written,restEncoder:toUint8Array(lazyWriter.encoder.restEncoder)});lazyWriter.encoder.restEncoder=createEncoder();lazyWriter.written=0}};var writeStructToLazyStructWriter=(lazyWriter,struct,offset)=>{if(lazyWriter.written>0&&lazyWriter.currClient!==struct.id.client){flushLazyStructWriter(lazyWriter)}
418if(lazyWriter.written===0){lazyWriter.currClient=struct.id.client;lazyWriter.encoder.writeClient(struct.id.client);writeVarUint(lazyWriter.encoder.restEncoder,struct.id.clock+offset)}
419struct.write(lazyWriter.encoder,offset);lazyWriter.written++}
419;var finishLazyStructWriting=(lazyWriter)=>{flushLazyStructWriter(lazyWriter);const restEncoder=lazyWriter.encoder.restEncoder;writeVarUint(restEncoder,lazyWriter.clientStructs.length);for(let i=0;i<lazyWriter.clientStructs.length;i++){const partStructs=lazyWriter.clientStructs[i];writeVarUint(restEncoder,partStructs.written);writeUint8Array(restEncoder,partStructs.restEncoder)}};var convertUpdateFormat=(update,blockTransformer,YDecoder,YEncoder)=>{const updateDecoder=new YDecoder(createDecoder(update));const lazyDecoder=new LazyStructReader(updateDecoder,!1);const updateEncoder=new YEncoder();const lazyWriter=new LazyStructWriter(updateEncoder);for(let curr=lazyDecoder.curr;curr!==null;curr=lazyDecoder.next()){writeStructToLazyStructWriter(lazyWriter,blockTransformer(curr),0)}
420finishLazyStructWriting(lazyWriter);const ds=readDeleteSet(updateDecoder);writeDeleteSet(updateEncoder,ds);return updateEncoder.toUint8Array()};var createObfuscator=({formatting=!0,subdocs=!0,yxml=!0}={})=>{let i=0;const mapKeyCache=create();const nodeNameCache=create();const formattingKeyCache=create();const formattingValueCache=create();formattingValueCache.set(null,null);return(block)=>{switch(block.constructor){case GC:case Skip:return block;case Item:{const item=(block);const content=item.content;switch(content.constructor){case ContentDeleted:break;case ContentType:{if(yxml){const type=(content.type);if(type instanceof YXmlElement){type.nodeName=setIfUndefined(nodeNameCache,type.nodeName,()=>"node-"+i)}
421if(type instanceof YXmlHook){type.hookName=setIfUndefined(nodeNameCache,type.hookName,()=>"hook-"+i)}}
422break}
423case ContentAny:{const c=(content);c.arr=c.arr.map(()=>i);break}
424case ContentBinary:{const c=(content);c.content=new Uint8Array([i]);break}
425case ContentDoc:{const c=(content);if(subdocs){c.opts={};c.doc.guid=i+""}
426break}
427case ContentEmbed:{const c=(content);c.embed={};break}
428case ContentFormat:{const c=(content);if(formatting){c.key=setIfUndefined(formattingKeyCache,c.key,()=>i+"");c.value=setIfUndefined(formattingValueCache,c.value,()=>({i}))}
429break}
430case ContentJSON:{const c=(content);c.arr=c.arr.map(()=>i);break}
431case ContentString:{const c=(content);c.str=repeat(i%10+"",c.str.length);break}
432default:unexpectedCase()}
433if(item.parentSub){item.parentSub=setIfUndefined(mapKeyCache,item.parentSub,()=>i+"")}
434i++;return block}
435default:unexpectedCase()}}};var obfuscateUpdate=(update,opts)=>convertUpdateFormat(update,createObfuscator(opts),UpdateDecoderV1,UpdateEncoderV1);var obfuscateUpdateV2=(update,opts)=>convertUpdateFormat(update,createObfuscator(opts),UpdateDecoderV2,UpdateEncoderV2);var convertUpdateFormatV1ToV2=(update)=>convertUpdateFormat(update,id,UpdateDecoderV1,UpdateEncoderV2);var convertUpdateFormatV2ToV1=(update)=>convertUpdateFormat(update,id,UpdateDecoderV2,UpdateEncoderV1);var errorComputeChanges="You must not compute changes after the event-handler fired.";var YEvent=class{constructor(target,transaction){this.target=target;this.currentTarget=target;this.transaction=transaction;this._changes=null;this._keys=null;this._delta=null;this._path=null}
436get path(){return this._path||(this._path=getPathTo(this.currentTarget,this.target))}
437deletes(struct){return isDeleted(this.transaction.deleteSet,struct.id)}
438get keys(){if(this._keys===null){if(this.transaction.doc._transactionCleanups.length===0){throw create3(errorComputeChanges)}
439const keys2=new Map();const target=this.target;const changed=(this.transaction.changed.get(target));changed.forEach((key)=>{if(key!==null){const item=(target._map.get(key));let action;let oldValue;if(this.adds(item)){let prev=item.left;while(prev!==null&&this.adds(prev)){prev=prev.left}
440if(this.deletes(item)){if(prev!==null&&this.deletes(prev)){action="delete";oldValue=last(prev.content.getContent())}else{return}}else{if(prev!==null&&this.deletes(prev)){action="update";oldValue=last(prev.content.getContent())}else{action="add";oldValue=void 0}}}else{if(this.deletes(item)){action="delete";oldValue=last(item.content.getContent())}else{return}}
441keys2.set(key,{action,oldValue})}});this._keys=keys2}
442return this._keys}
443get delta(){return this.changes.delta}
444adds(struct){return struct.id.clock>=(this.transaction.beforeState.get(struct.id.client)||0)}
445get changes(){let changes=this._changes;if(changes===null){if(this.transaction.doc._transactionCleanups.length===0){throw create3(errorComputeChanges)}
446const target=this.target;const added=create2();const deleted=create2();const delta=[];changes={added,deleted,delta,keys:this.keys};const changed=(this.transaction.changed.get(target));if(changed.has(null)){let lastOp=null;const packOp=()=>
446{if(lastOp){delta.push(lastOp)}};for(let item=target._start;item!==null;item=item.right){if(item.deleted){if(this.deletes(item)&&!this.adds(item)){if(lastOp===null||lastOp.delete===void 0){packOp();lastOp={delete:0}}
447lastOp.delete+=item.length;deleted.add(item)}}else{if(this.adds(item)){if(lastOp===null||lastOp.insert===void 0){packOp();lastOp={insert:[]}}
448lastOp.insert=lastOp.insert.concat(item.content.getContent());added.add(item)}else{if(lastOp===null||lastOp.retain===void 0){packOp();lastOp={retain:0}}
449lastOp.retain+=item.length}}}
450if(lastOp!==null&&lastOp.retain===void 0){packOp()}}
451this._changes=changes}
452return(changes)}};var getPathTo=(parent,child)=>{const path=[];while(child._item!==null&&child!==parent){if(child._item.parentSub!==null){path.unshift(child._item.parentSub)}else{let i=0;let c=(child._item.parent._start);while(c!==child._item&&c!==null){if(!c.deleted&&c.countable){i+=c.length}
453c=c.right}
454path.unshift(i)}
455child=child._item.parent}
456return path};var warnPrematureAccess=()=>{warn("Invalid access: Add Yjs type to a document before reading data.")};var maxSearchMarker=80;var globalSearchMarkerTimestamp=0;var ArraySearchMarker=class{constructor(p,index){p.marker=!0;this.p=p;this.index=index;this.timestamp=globalSearchMarkerTimestamp++}};var refreshMarkerTimestamp=(marker)=>{marker.timestamp=globalSearchMarkerTimestamp++};var overwriteMarker=(marker,p,index)=>{marker.p.marker=!1;marker.p=p;p.marker=!0;marker.index=index;marker.timestamp=globalSearchMarkerTimestamp++};var markPosition=(searchMarker,p,index)=>{if(searchMarker.length>=maxSearchMarker){const marker=searchMarker.reduce((a,b)=>a.timestamp<b.timestamp?a:b);overwriteMarker(marker,p,index);return marker}else{const pm=new ArraySearchMarker(p,index);searchMarker.push(pm);return pm}};var findMarker=(yarray,index)=>{if(yarray._start===null||index===0||yarray._searchMarker===null){return null}
457const marker=yarray._searchMarker.length===0?null:yarray._searchMarker.reduce((a,b)=>abs(index-a.index)<abs(index-b.index)?a:b);let p=yarray._start;let pindex=0;if(marker!==null){p=marker.p;pindex=marker.index;refreshMarkerTimestamp(marker)}
458while(p.right!==null&&pindex<index){if(!p.deleted&&p.countable){if(index<pindex+p.length){break}
459pindex+=p.length}
460p=p.right}
461while(p.left!==null&&pindex>index){p=p.left;if(!p.deleted&&p.countable){pindex-=p.length}}
462while(p.left!==null&&p.left.id.client===p.id.client&&p.left.id.clock+p.left.length===p.id.clock){p=p.left;if(!p.deleted&&p.countable){pindex-=p.length}}
463if(marker!==null&&abs(marker.index-pindex)<p.parent.length/maxSearchMarker){overwriteMarker(marker,p,pindex);return marker}else{return markPosition(yarray._searchMarker,p,pindex)}};var updateMarkerChanges=(searchMarker,index,len)=>{for(let i=searchMarker.length-1;i>=0;i--){const m=searchMarker[i];if(len>0){let p=m.p;p.marker=!1;while(p&&(p.deleted||!p.countable)){p=p.left;if(p&&!p.deleted&&p.countable){m.index-=p.length}}
464if(p===null||p.marker===!0){searchMarker.splice(i,1);continue}
465m.p=p;p.marker=!0}
466if(index<m.index||len>0&&index===m.index){m.index=max(index,m.index+len)}}};var getTypeChildren=(t)=>{t.doc??warnPrematureAccess();let s=t._start;const arr=[];while(s){arr.push(s);s=s.right}
467return arr};var callTypeObservers=(type,transaction,event)=>{const changedType=type;const changedParentTypes=transaction.changedParentTypes;while(!0){setIfUndefined(changedParentTypes,type,()=>[]).push(event);if(type._item===null){break}
468type=type._item.parent}
469callEventHandlerListeners(changedType._eH,event,transaction)};var AbstractType=class{constructor(){this._item=null;this._map=new Map();this._start=null;this.doc=null;this._length=0;this._eH=createEventHandler();this._dEH=createEventHandler();this._searchMarker=null}
470get parent(){return this._item?(this._item.parent):null}
471_integrate(y,item){this.doc=y;this._item=item}
472_copy(){throw methodUnimplemented()}
473clone(){throw methodUnimplemented()}
474_write(_encoder){}
475get _first(){let n=this._start;while(n!==null&&n.deleted){n=n.right}
476return n}
477_callObserver(transaction,_parentSubs){if(!transaction.local&&this._searchMarker){this._searchMarker.length=0}}
478observe(f){addEventHandlerListener(this._eH,f)}
479observeDeep(f){addEventHandlerListener(this._dEH,f)}
480unobserve(f){removeEventHandlerListener(this._eH,f)}
481unobserveDeep(f){removeEventHandlerListener(this._dEH,f)}
482toJSON(){}};var typeListSlice=(type,start,end)=>{type.doc??warnPrematureAccess();if(start<0){start=type._length+start}
483if(end<0){end=type._length+end}
484let len=end-start;const cs=[];let n=type._start;while(n!==null&&len>0){if(n.countable&&!n.deleted){const c=n.content.getContent();if(c.length<=start){start-=c.length}else{for(let i=start;i<c.length&&len>0;i++){cs.push(c[i]);len--}
485start=0}}
486n=n.right}
487return cs};var typeListToArray=(type)=>{type.doc??warnPrematureAccess();const cs=[];let n=type._start;while(n!==null){if(n.countable&&!n.deleted){const c=n.content.getContent();for(let i=0;i<c.length;i++){cs.push(c[i])}}
488n=n.right}
489return cs};var typeListToArraySnapshot=(type,snapshot2)=>{const cs=[];let n=type._start;while(n!==null){if(n.countable&&isVisible(n,snapshot2)){const c=n.content.getContent();for(let i=0;i<c.length;i++){cs.push(c[i])}}
490n=n.right}
491return cs};var typeListForEach=(type,f)=>{let index=0;let n=type._start;
491type.doc??warnPrematureAccess();while(n!==null){if(n.countable&&!n.deleted){const c=n.content.getContent();for(let i=0;i<c.length;i++){f(c[i],index++,type)}}
492n=n.right}};var typeListMap=(type,f)=>{const result=[];typeListForEach(type,(c,i)=>{result.push(f(c,i,type))});return result};var typeListCreateIterator=(type)=>{let n=type._start;let currentContent=null;let currentContentIndex=0;return{[Symbol.iterator](){return this},next:()=>{if(currentContent===null){while(n!==null&&n.deleted){n=n.right}
493if(n===null){return{done:!0,value:void 0}}
494currentContent=n.content.getContent();currentContentIndex=0;n=n.right}
495const value=currentContent[currentContentIndex++];if(currentContent.length<=currentContentIndex){currentContent=null}
496return{done:!1,value}}}};var typeListGet=(type,index)=>{type.doc??warnPrematureAccess();const marker=findMarker(type,index);let n=type._start;if(marker!==null){n=marker.p;index-=marker.index}
497for(;n!==null;n=n.right){if(!n.deleted&&n.countable){if(index<n.length){return n.content.getContent()[index]}
498index-=n.length}}};var typeListInsertGenericsAfter=(transaction,parent,referenceItem,content)=>{let left=referenceItem;const doc2=transaction.doc;const ownClientId=doc2.clientID;const store2=doc2.store;const right=referenceItem===null?parent._start:referenceItem.right;let jsonContent=[];const packJsonContent=()=>{if(jsonContent.length>0){left=new Item(createID(ownClientId,getState(store2,ownClientId)),left,left&&left.lastId,right,right&&right.id,parent,null,new ContentAny(jsonContent));left.integrate(transaction,0);jsonContent=[]}};content.forEach((c)=>{if(c===null){jsonContent.push(c)}else{switch(c.constructor){case Number:case Object:case Boolean:case Array:case String:jsonContent.push(c);break;default:packJsonContent();switch(c.constructor){case Uint8Array:case ArrayBuffer:left=new Item(createID(ownClientId,getState(store2,ownClientId)),left,left&&left.lastId,right,right&&right.id,parent,null,new ContentBinary(new Uint8Array(c)));left.integrate(transaction,0);break;case Doc:left=new Item(createID(ownClientId,getState(store2,ownClientId)),left,left&&left.lastId,right,right&&right.id,parent,null,new ContentDoc(c));left.integrate(transaction,0);break;default:if(c instanceof AbstractType){left=new Item(createID(ownClientId,getState(store2,ownClientId)),left,left&&left.lastId,right,right&&right.id,parent,null,new ContentType(c));left.integrate(transaction,0)}else{throw new Error("Unexpected content type in insert operation")}}}}});packJsonContent()};var lengthExceeded=()=>create3("Length exceeded!");var typeListInsertGenerics=(transaction,parent,index,content)=>{if(index>parent._length){throw lengthExceeded()}
499if(index===0){if(parent._searchMarker){updateMarkerChanges(parent._searchMarker,index,content.length)}
500return typeListInsertGenericsAfter(transaction,parent,null,content)}
501const startIndex=index;const marker=findMarker(parent,index);let n=parent._start;if(marker!==null){n=marker.p;index-=marker.index;if(index===0){n=n.prev;index+=n&&n.countable&&!n.deleted?n.length:0}}
502for(;n!==null;n=n.right){if(!n.deleted&&n.countable){if(index<=n.length){if(index<n.length){getItemCleanStart(transaction,createID(n.id.client,n.id.clock+index))}
503break}
504index-=n.length}}
505if(parent._searchMarker){updateMarkerChanges(parent._searchMarker,startIndex,content.length)}
506return typeListInsertGenericsAfter(transaction,parent,n,content)};var typeListPushGenerics=(transaction,parent,content)=>{const marker=(parent._searchMarker||[]).reduce((maxMarker,currMarker)=>currMarker.index>maxMarker.index?currMarker:maxMarker,{index:0,p:parent._start});let n=marker.p;if(n){while(n.right){n=n.right}}
507return typeListInsertGenericsAfter(transaction,parent,n,content)};var typeListDelete=(transaction,parent,index,length2)=>{if(length2===0){return}
508const startIndex=index;const startLength=length2;const marker=findMarker(parent,index);let n=parent._start;if(marker!==null){n=marker.p;index-=marker.index}
509for(;n!==null&&index>0;n=n.right){if(!n.deleted&&n.countable){if(index<n.length){getItemCleanStart(transaction,createID(n.id.client,n.id.clock+index))}
510index-=n.length}}
511while(length2>0&&n!==null){if(!n.deleted){if(length2<n.length){getItemCleanStart(transaction,createID(n.id.client,n.id.clock+length2))}
512n.delete(transaction);length2-=n.length}
513n=n.right}
514if(length2>0){throw lengthExceeded()}
515if(parent._searchMarker){updateMarkerChanges(parent._searchMarker,startIndex,-startLength+length2)}};var typeMapDelete=(transaction,parent,key)=>{const c=parent._map.get(key);if(c!==void 0){c.delete(transaction)}};var typeMapSet=(transaction,parent,key,value)=>{const left=parent._map.get(key)||null;const doc2=transaction.doc;const ownClientId=doc2.clientID;let content;if(value==null){content=new ContentAny([value])}else{switch(value.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:content=new ContentAny([value]);break;case Uint8Array:content=new ContentBinary(value);break;case Doc:content=new ContentDoc(value);break;default:if(value instanceof AbstractType){content=new ContentType(value)}else{throw new Error("Unexpected content type")}}}
516new Item(createID(ownClientId,getState(doc2.store,ownClientId)),left,left&&left.lastId,null,null,parent,key,content).integrate(transaction,0)};var typeMapGet=(parent,key)=>{parent.doc??warnPrematureAccess();const val=parent._map.get(key);return val!==void 0&&!val.deleted?val.content.getContent()[val.length-1]:void 0};var typeMapGetAll=(parent)=>{const res={};parent.doc??warnPrematureAccess();
516parent._map.forEach((value,key)=>{if(!value.deleted){res[key]=value.content.getContent()[value.length-1]}});return res};var typeMapHas=(parent,key)=>{parent.doc??warnPrematureAccess();const val=parent._map.get(key);return val!==void 0&&!val.deleted};var typeMapGetSnapshot=(parent,key,snapshot2)=>{let v=parent._map.get(key)||null;while(v!==null&&(!snapshot2.sv.has(v.id.client)||v.id.clock>=(snapshot2.sv.get(v.id.client)||0))){v=v.left}
517return v!==null&&isVisible(v,snapshot2)?v.content.getContent()[v.length-1]:void 0};var typeMapGetAllSnapshot=(parent,snapshot2)=>{const res={};parent._map.forEach((value,key)=>{let v=value;while(v!==null&&(!snapshot2.sv.has(v.id.client)||v.id.clock>=(snapshot2.sv.get(v.id.client)||0))){v=v.left}
518if(v!==null&&isVisible(v,snapshot2)){res[key]=v.content.getContent()[v.length-1]}});return res};var createMapIterator=(type)=>{type.doc??warnPrematureAccess();return iteratorFilter(type._map.entries(),(entry)=>!entry[1].deleted)};var YArrayEvent=class extends YEvent{};var YArray=class _YArray extends AbstractType{constructor(){super();this._prelimContent=[];this._searchMarker=[]}
519static from(items2){const a=new _YArray();a.push(items2);return a}
520_integrate(y,item){super._integrate(y,item);this.insert(0,this._prelimContent);this._prelimContent=null}
521_copy(){return new _YArray()}
522clone(){const arr=new _YArray();arr.insert(0,this.toArray().map((el)=>el instanceof AbstractType?(el.clone()):el));return arr}
523get length(){this.doc??warnPrematureAccess();return this._length}
524_callObserver(transaction,parentSubs){super._callObserver(transaction,parentSubs);callTypeObservers(this,transaction,new YArrayEvent(this,transaction))}
525insert(index,content){if(this.doc!==null){transact(this.doc,(transaction)=>{typeListInsertGenerics(transaction,this,index,content)})}else{this._prelimContent.splice(index,0,...content)}}
526push(content){if(this.doc!==null){transact(this.doc,(transaction)=>{typeListPushGenerics(transaction,this,content)})}else{this._prelimContent.push(...content)}}
527unshift(content){this.insert(0,content)}
528delete(index,length2=1){if(this.doc!==null){transact(this.doc,(transaction)=>{typeListDelete(transaction,this,index,length2)})}else{this._prelimContent.splice(index,length2)}}
529get(index){return typeListGet(this,index)}
530toArray(){return typeListToArray(this)}
531slice(start=0,end=this.length){return typeListSlice(this,start,end)}
532toJSON(){return this.map((c)=>c instanceof AbstractType?c.toJSON():c)}
533map(f){return typeListMap(this,f)}
534forEach(f){typeListForEach(this,f)}[Symbol.iterator](){return typeListCreateIterator(this)}
535_write(encoder){encoder.writeTypeRef(YArrayRefID)}};var readYArray=(_decoder)=>new YArray();var YMapEvent=class extends YEvent{constructor(ymap,transaction,subs){super(ymap,transaction);this.keysChanged=subs}};var YMap=class _YMap extends AbstractType{constructor(entries){super();this._prelimContent=null;if(entries===void 0){this._prelimContent=new Map()}else{this._prelimContent=new Map(entries)}}
536_integrate(y,item){super._integrate(y,item);this._prelimContent.forEach((value,key)=>{this.set(key,value)});this._prelimContent=null}
537_copy(){return new _YMap()}
538clone(){const map2=new _YMap();this.forEach((value,key)=>{map2.set(key,value instanceof AbstractType?(value.clone()):value)});return map2}
539_callObserver(transaction,parentSubs){callTypeObservers(this,transaction,new YMapEvent(this,transaction,parentSubs))}
540toJSON(){this.doc??warnPrematureAccess();const map2={};this._map.forEach((item,key)=>{if(!item.deleted){const v=item.content.getContent()[item.length-1];map2[key]=v instanceof AbstractType?v.toJSON():v}});return map2}
541get size(){return[...createMapIterator(this)].length}
542keys(){return iteratorMap(createMapIterator(this),(v)=>v[0])}
543values(){return iteratorMap(createMapIterator(this),(v)=>v[1].content.getContent()[v[1].length-1])}
544entries(){return iteratorMap(createMapIterator(this),(v)=>([v[0],v[1].content.getContent()[v[1].length-1]]))}
545forEach(f){this.doc??warnPrematureAccess();this._map.forEach((item,key)=>{if(!item.deleted){f(item.content.getContent()[item.length-1],key,this)}})}[Symbol.iterator](){return this.entries()}
546delete(key){if(this.doc!==null){transact(this.doc,(transaction)=>{typeMapDelete(transaction,this,key)})}else{this._prelimContent.delete(key)}}
547set(key,value){if(this.doc!==null){transact(this.doc,(transaction)=>{typeMapSet(transaction,this,key,value)})}else{this._prelimContent.set(key,value)}
548return value}
549get(key){return(typeMapGet(this,key))}
550has(key){return typeMapHas(this,key)}
551clear(){if(this.doc!==null){transact(this.doc,(transaction)=>{this.forEach(function(_value,key,map2){typeMapDelete(transaction,map2,key)})})}else{this._prelimContent.clear()}}
552_write(encoder){encoder.writeTypeRef(YMapRefID)}};var readYMap=(_decoder)=>new YMap();var equalAttrs=(a,b)=>a===b||typeof a==="object"&&typeof b==="object"&&a&&b&&equalFlat(a,b);var ItemTextListPosition=class{constructor(left,right,index,currentAttributes){this.left=left;this.right=right;this.index=index;this.currentAttributes=currentAttributes}
553forward(){if(this.right===null){unexpectedCase()}
554switch(this.right.content.constructor){case ContentFormat:if(!this.right.deleted){updateCurrentAttributes(this.currentAttributes,this.right.content)}
555break;default:if(!this.right.deleted){this.index+=this.right.length}
556break}
557this.left=this.right;this.right=this.right.right}};var findNextPosition=(transaction,pos,count)=>{while(pos.right!==null&&count>0){switch(pos.right.content.constructor){case ContentFormat:if(!pos.right.deleted){updateCurrentAttributes(pos.currentAttributes,pos.right.content)}
558break;default:if(!pos.right.deleted){if(count<pos.right.length){getItemCleanStart(transaction,createID(pos.right.id.client,pos.right.id.clock+count))}
559pos.index+=pos.right.length;count-=pos.right.length}
560break}
561pos.left=pos.right;pos.right=pos.right.right}
562return pos};var findPosition=(transaction,parent,index,useSearchMarker)=>{const currentAttributes=new Map();const marker=useSearchMarker?findMarker(parent,index):null;if(marker){const pos=new ItemTextListPosition(marker.p.left,marker.p,marker.index,currentAttributes);return findNextPosition(transaction,pos,index-marker.index)}else{const pos=new ItemTextListPosition(null,parent._start,0,currentAttributes);return findNextPosition(transaction,pos,index)}};var insertNegatedAttributes=(transaction,parent,currPos,negatedAttributes)=>{while(currPos.right!==null&&(currPos.right.deleted===!0||currPos.right.content.constructor===ContentFormat&&equalAttrs(negatedAttributes.get(currPos.right.content.key),currPos.right.content.value))){if(!currPos.right.deleted){negatedAttributes.delete(currPos.right.content.key)}
563currPos.forward()}
564const doc2=transaction.doc;const ownClientId=doc2.clientID;negatedAttributes.forEach((val,key)=>{const left=currPos.left;const right=currPos.right;const nextFormat=new Item(createID(ownClientId,getState(doc2.store,ownClientId)),left,left&&left.lastId,right,right&&right.id,parent,null,new ContentFormat(key,val));nextFormat.integrate(transaction,0);currPos.right=nextFormat;currPos.forward()})};var updateCurrentAttributes=(currentAttributes,format)=>{const{key,value}=format;if(value===null){currentAttributes.delete(key)}else{currentAttributes.set(key,value)}};var minimizeAttributeChanges=(currPos,attributes)=>{while(!0){if(currPos.right===null){break}else if(currPos.right.deleted||currPos.right.content.constructor===ContentFormat&&equalAttrs(attributes[currPos.right.content.key]??null,currPos.right.content.value));else{break}
565currPos.forward()}};var insertAttributes=(transaction,parent,currPos,attributes)=>{const doc2=transaction.doc;const ownClientId=doc2.clientID;const negatedAttributes=new Map();for(const key in attributes){const val=attributes[key];const currentVal=currPos.currentAttributes.get(key)??null;if(!equalAttrs(currentVal,val)){negatedAttributes.set(key,currentVal);const{left,right}=currPos;currPos.right=new Item(createID(ownClientId,getState(doc2.store,ownClientId)),left,left&&left.lastId,right,right&&right.id,parent,null,new ContentFormat(key,val));currPos.right.integrate(transaction,0);currPos.forward()}}
566return negatedAttributes};var insertText=(transaction,parent,currPos,text2,attributes)=>{currPos.currentAttributes.forEach((_val,key)=>{if(attributes[key]===void 0){attributes[key]=null}});const doc2=transaction.doc;const ownClientId=doc2.clientID;minimizeAttributeChanges(currPos,attributes);const negatedAttributes=insertAttributes(transaction,parent,currPos,attributes);const content=text2.constructor===String?new ContentString(text2):text2 instanceof AbstractType?new ContentType(text2):new ContentEmbed(text2);let{left,right,index}=currPos;if(parent._searchMarker){updateMarkerChanges(parent._searchMarker,currPos.index,content.getLength())}
567right=new Item(createID(ownClientId,getState(doc2.store,ownClientId)),left,left&&left.lastId,right,right&&right.id,parent,null,content);right.integrate(transaction,0);currPos.right=right;currPos.index=index;currPos.forward();insertNegatedAttributes(transaction,parent,currPos,negatedAttributes)};var formatText=(transaction,parent,currPos,length2,attributes)=>{const doc2=transaction.doc;const ownClientId=doc2.clientID;minimizeAttributeChanges(currPos,attributes);const negatedAttributes=insertAttributes(transaction,parent,currPos,attributes);iterationLoop:while(currPos.right!==null&&(length2>0||negatedAttributes.size>0&&(currPos.right.deleted||currPos.right.content.constructor===ContentFormat))){if(!currPos.right.deleted){switch(currPos.right.content.constructor){case ContentFormat:{const{key,value}=(currPos.right.content);const attr=attributes[key];if(attr!==void 0){if(equalAttrs(attr,value)){negatedAttributes.delete(key)}else{if(length2===0){break iterationLoop}
568negatedAttributes.set(key,value)}
569currPos.right.delete(transaction)}else{currPos.currentAttributes.set(key,value)}
570break}
571default:if(length2<currPos.right.length){getItemCleanStart(transaction,createID(currPos.right.id.client,currPos.right.id.clock+length2))}
572length2-=currPos.right.length;break}}
573currPos.forward()}
574if(length2>0){let newlines="";for(;length2>0;length2--){newlines+="\n"}
575currPos.right=new Item(createID(ownClientId,getState(doc2.store,ownClientId)),currPos.left,currPos.left&&currPos.left.lastId,currPos.right,currPos.right&&currPos.right.id,parent,null,new ContentString(newlines));currPos.right.integrate(transaction,0);currPos.forward()}
576insertNegatedAttributes(transaction,parent,currPos,negatedAttributes)};var cleanupFormattingGap=(transaction,start,curr,startAttributes,currAttributes)=>{let end=start;const endFormats=create();
576while(end&&(!end.countable||end.deleted)){if(!end.deleted&&end.content.constructor===ContentFormat){const cf=(end.content);endFormats.set(cf.key,cf)}
577end=end.right}
578let cleanups=0;let reachedCurr=!1;while(start!==end){if(curr===start){reachedCurr=!0}
579if(!start.deleted){const content=start.content;switch(content.constructor){case ContentFormat:{const{key,value}=(content);const startAttrValue=startAttributes.get(key)??null;if(endFormats.get(key)!==content||startAttrValue===value){start.delete(transaction);cleanups++;if(!reachedCurr&&(currAttributes.get(key)??null)===value&&startAttrValue!==value){if(startAttrValue===null){currAttributes.delete(key)}else{currAttributes.set(key,startAttrValue)}}}
580if(!reachedCurr&&!start.deleted){updateCurrentAttributes(currAttributes,content)}
581break}}}
582start=start.right}
583return cleanups};var cleanupContextlessFormattingGap=(transaction,item)=>{while(item&&item.right&&(item.right.deleted||!item.right.countable)){item=item.right}
584const attrs=new Set();while(item&&(item.deleted||!item.countable)){if(!item.deleted&&item.content.constructor===ContentFormat){const key=(item.content.key);if(attrs.has(key)){item.delete(transaction)}else{attrs.add(key)}}
585item=item.left}};var cleanupYTextFormatting=(type)=>{let res=0;transact(type.doc,(transaction)=>{let start=(type._start);let end=type._start;let startAttributes=create();const currentAttributes=copy(startAttributes);while(end){if(end.deleted===!1){switch(end.content.constructor){case ContentFormat:updateCurrentAttributes(currentAttributes,end.content);break;default:res+=cleanupFormattingGap(transaction,start,end,startAttributes,currentAttributes);startAttributes=copy(currentAttributes);start=end;break}}
586end=end.right}});return res};var cleanupYTextAfterTransaction=(transaction)=>{const needFullCleanup=new Set();const doc2=transaction.doc;for(const[client,afterClock]of transaction.afterState.entries()){const clock=transaction.beforeState.get(client)||0;if(afterClock===clock){continue}
587iterateStructs(transaction,doc2.store.clients.get(client),clock,afterClock,(item)=>{if(!item.deleted&&item.content.constructor===ContentFormat&&item.constructor!==GC){needFullCleanup.add(item.parent)}})}
588transact(doc2,(t)=>{iterateDeletedStructs(transaction,transaction.deleteSet,(item)=>{if(item instanceof GC||!item.parent._hasFormatting||needFullCleanup.has(item.parent)){return}
589const parent=(item.parent);if(item.content.constructor===ContentFormat){needFullCleanup.add(parent)}else{cleanupContextlessFormattingGap(t,item)}});for(const yText of needFullCleanup){cleanupYTextFormatting(yText)}})};var deleteText=(transaction,currPos,length2)=>{const startLength=length2;const startAttrs=copy(currPos.currentAttributes);const start=currPos.right;while(length2>0&&currPos.right!==null){if(currPos.right.deleted===!1){switch(currPos.right.content.constructor){case ContentType:case ContentEmbed:case ContentString:if(length2<currPos.right.length){getItemCleanStart(transaction,createID(currPos.right.id.client,currPos.right.id.clock+length2))}
590length2-=currPos.right.length;currPos.right.delete(transaction);break}}
591currPos.forward()}
592if(start){cleanupFormattingGap(transaction,start,currPos.right,startAttrs,currPos.currentAttributes)}
593const parent=((currPos.left||currPos.right).parent);if(parent._searchMarker){updateMarkerChanges(parent._searchMarker,currPos.index,-startLength+length2)}
594return currPos};var YTextEvent=class extends YEvent{constructor(ytext,transaction,subs){super(ytext,transaction);this.childListChanged=!1;this.keysChanged=new Set();subs.forEach((sub)=>{if(sub===null){this.childListChanged=!0}else{this.keysChanged.add(sub)}})}
595get changes(){if(this._changes===null){const changes={keys:this.keys,delta:this.delta,added:new Set(),deleted:new Set()};this._changes=changes}
596return(this._changes)}
597get delta(){if(this._delta===null){const y=(this.target.doc);const delta=[];transact(y,(transaction)=>{const currentAttributes=new Map();const oldAttributes=new Map();let item=this.target._start;let action=null;const attributes={};let insert2="";let retain=0;let deleteLen=0;const addOp=()=>
597{if(action!==null){let op=null;switch(action){case "delete":if(deleteLen>0){op={delete:deleteLen}}
598deleteLen=0;break;case "insert":if(typeof insert2==="object"||insert2.length>0){op={insert:insert2};if(currentAttributes.size>0){op.attributes={};currentAttributes.forEach((value,key)=>{if(value!==null){op.attributes[key]=value}})}}
599insert2="";break;case "retain":if(retain>0){op={retain};if(!isEmpty(attributes)){op.attributes=assign({},attributes)}}
600retain=0;break}
601if(op)delta.push(op);action=null}};while(item!==null){switch(item.content.constructor){case ContentType:case ContentEmbed:if(this.adds(item)){if(!this.deletes(item)){addOp();action="insert";insert2=item.content.getContent()[0];addOp()}}else if(this.deletes(item)){if(action!=="delete"){addOp();action="delete"}
602deleteLen+=1}else if(!item.deleted){if(action!=="retain"){addOp();action="retain"}
603retain+=1}
604break;case ContentString:if(this.adds(item)){if(!this.deletes(item)){if(action!=="insert"){addOp();action="insert"}
605insert2+=item.content.str}}else if(this.deletes(item)){if(action!=="delete"){addOp();action="delete"}
606deleteLen+=item.length}else if(!item.deleted){if(action!=="retain"){addOp();action="retain"}
607retain+=item.length}
608break;case ContentFormat:{const{key,value}=(item.content);if(this.adds(item)){if(!this.deletes(item)){const curVal=currentAttributes.get(key)??null;if(!equalAttrs(curVal,value)){if(action==="retain"){addOp()}
609if(equalAttrs(value,oldAttributes.get(key)??null)){delete attributes[key]}else{attributes[key]=value}}else if(value!==null){item.delete(transaction)}}}else if(this.deletes(item)){oldAttributes.set(key,value);const curVal=currentAttributes.get(key)??null;if(!equalAttrs(curVal,value)){if(action==="retain"){addOp()}
610attributes[key]=curVal}}else if(!item.deleted){oldAttributes.set(key,value);const attr=attributes[key];if(attr!==void 0){if(!equalAttrs(attr,value)){if(action==="retain"){addOp()}
611if(value===null){delete attributes[key]}else{attributes[key]=value}}else if(attr!==null){item.delete(transaction)}}}
612if(!item.deleted){if(action==="insert"){addOp()}
613updateCurrentAttributes(currentAttributes,item.content)}
614break}}
615item=item.right}
616addOp();while(delta.length>0){const lastOp=delta[delta.length-1];if(lastOp.retain!==void 0&&lastOp.attributes===void 0){delta.pop()}else{break}}});this._delta=delta}
617return(this._delta)}};var YText=class _YText extends AbstractType{constructor(string){super();this._pending=string!==void 0?[()=>this.insert(0,string)]:[];this._searchMarker=[];this._hasFormatting=!1}
618get length(){this.doc??warnPrematureAccess();return this._length}
619_integrate(y,item){super._integrate(y,item);try{this._pending.forEach((f)=>f())}catch(e){console.error(e)}
620this._pending=null}
621_copy(){return new _YText()}
622clone(){const text2=new _YText();text2.applyDelta(this.toDelta());return text2}
623_callObserver(transaction,parentSubs){super._callObserver(transaction,parentSubs);const event=new YTextEvent(this,transaction,parentSubs);callTypeObservers(this,transaction,event);if(!transaction.local&&this._hasFormatting){transaction._needFormattingCleanup=!0}}
624toString(){this.doc??warnPrematureAccess();let str="";let n=this._start;while(n!==null){if(!n.deleted&&n.countable&&n.content.constructor===ContentString){str+=n.content.str}
625n=n.right}
626return str}
627toJSON(){return this.toString()}
628applyDelta(delta,{sanitize=!0}={}){if(this.doc!==null){transact(this.doc,(transaction)=>{const currPos=new ItemTextListPosition(null,this._start,0,new Map());for(let i=0;i<delta.length;i++){const op=delta[i];if(op.insert!==void 0){const ins=!sanitize&&typeof op.insert==="string"&&i===delta.length-1&&currPos.right===null&&op.insert.slice(-1)==="\n"?op.insert.slice(0,-1):op.insert;if(typeof ins!=="string"||ins.length>0){insertText(transaction,this,currPos,ins,op.attributes||{})}}else if(op.retain!==void 0){formatText(transaction,this,currPos,op.retain,op.attributes||{})}else if(op.delete!==void 0){deleteText(transaction,currPos,op.delete)}}})}else{this._pending.push(()=>this.applyDelta(delta))}}
629toDelta(snapshot2,prevSnapshot,computeYChange){this.doc??warnPrematureAccess();const ops=[];const currentAttributes=new Map();const doc2=(this.doc);let str="";let n=this._start;function packStr(){if(str.length>0){const attributes={};let addAttributes=!1;
629currentAttributes.forEach((value,key)=>{addAttributes=!0;attributes[key]=value});const op={insert:str};if(addAttributes){op.attributes=attributes}
630ops.push(op);str=""}}
631const computeDelta=()=>{while(n!==null){if(isVisible(n,snapshot2)||prevSnapshot!==void 0&&isVisible(n,prevSnapshot)){switch(n.content.constructor){case ContentString:{const cur=currentAttributes.get("ychange");if(snapshot2!==void 0&&!isVisible(n,snapshot2)){if(cur===void 0||cur.user!==n.id.client||cur.type!=="removed"){packStr();currentAttributes.set("ychange",computeYChange?computeYChange("removed",n.id):{type:"removed"})}}else if(prevSnapshot!==void 0&&!isVisible(n,prevSnapshot)){if(cur===void 0||cur.user!==n.id.client||cur.type!=="added"){packStr();currentAttributes.set("ychange",computeYChange?computeYChange("added",n.id):{type:"added"})}}else if(cur!==void 0){packStr();currentAttributes.delete("ychange")}
632str+=n.content.str;break}
633case ContentType:case ContentEmbed:{packStr();const op={insert:n.content.getContent()[0]};if(currentAttributes.size>0){const attrs=({});op.attributes=attrs;currentAttributes.forEach((value,key)=>{attrs[key]=value})}
634ops.push(op);break}
635case ContentFormat:if(isVisible(n,snapshot2)){packStr();updateCurrentAttributes(currentAttributes,n.content)}
636break}}
637n=n.right}
638packStr()};if(snapshot2||prevSnapshot){transact(doc2,(transaction)=>{if(snapshot2){splitSnapshotAffectedStructs(transaction,snapshot2)}
639if(prevSnapshot){splitSnapshotAffectedStructs(transaction,prevSnapshot)}
640computeDelta()},"cleanup")}else{computeDelta()}
641return ops}
642insert(index,text2,attributes){if(text2.length<=0){return}
643const y=this.doc;if(y!==null){transact(y,(transaction)=>{const pos=findPosition(transaction,this,index,!attributes);if(!attributes){attributes={};pos.currentAttributes.forEach((v,k)=>{attributes[k]=v})}
644insertText(transaction,this,pos,text2,attributes)})}else{this._pending.push(()=>this.insert(index,text2,attributes))}}
645insertEmbed(index,embed,attributes){const y=this.doc;if(y!==null){transact(y,(transaction)=>{const pos=findPosition(transaction,this,index,!attributes);insertText(transaction,this,pos,embed,attributes||{})})}else{this._pending.push(()=>this.insertEmbed(index,embed,attributes||{}))}}
646delete(index,length2){if(length2===0){return}
647const y=this.doc;if(y!==null){transact(y,(transaction)=>{deleteText(transaction,findPosition(transaction,this,index,!0),length2)})}else{this._pending.push(()=>this.delete(index,length2))}}
648format(index,length2,attributes){if(length2===0){return}
649const y=this.doc;if(y!==null){transact(y,(transaction)=>{const pos=findPosition(transaction,this,index,!1);if(pos.right===null){return}
650formatText(transaction,this,pos,length2,attributes)})}else{this._pending.push(()=>this.format(index,length2,attributes))}}
651removeAttribute(attributeName){if(this.doc!==null){transact(this.doc,(transaction)=>{typeMapDelete(transaction,this,attributeName)})}else{this._pending.push(()=>this.removeAttribute(attributeName))}}
652setAttribute(attributeName,attributeValue){if(this.doc!==null){transact(this.doc,(transaction)=>{typeMapSet(transaction,this,attributeName,attributeValue)})}else{this._pending.push(()=>this.setAttribute(attributeName,attributeValue))}}
653getAttribute(attributeName){return(typeMapGet(this,attributeName))}
654getAttributes(){return typeMapGetAll(this)}
655_write(encoder){encoder.writeTypeRef(YTextRefID)}};var readYText=(_decoder)=>new YText();var YXmlTreeWalker=class{constructor(root,f=()=>!0){this._filter=f;this._root=root;this._currentNode=root._start;this._firstCall=!0;root.doc??warnPrematureAccess()}[Symbol.iterator](){return this}
656next(){let n=this._currentNode;let type=n&&n.content&&n.content.type;if(n!==null&&(!this._firstCall||n.deleted||!this._filter(type))){do{type=n.content.type;if(!n.deleted&&(type.constructor===YXmlElement||type.constructor===YXmlFragment)&&type._start!==null){n=type._start}else{while(n!==null){const nxt=n.next;if(nxt!==null){n=nxt;break}else if(n.parent===this._root){n=null}else{n=n.parent._item}}}}while(n!==null&&(n.deleted||!this._filter(n.content.type)));}
657this._firstCall=!1;if(n===null){return{value:void 0,done:!0}}
658this._currentNode=n;return{value:(n.content.type),done:!1}}};var YXmlFragment=class _YXmlFragment extends AbstractType{constructor(){super();this._prelimContent=[]}
659get firstChild(){const first=this._first;return first?first.content.getContent()[0]:null}
660_integrate(y,item){super._integrate(y,item);this.insert(0,this._prelimContent);this._prelimContent=null}
661_copy(){return new _YXmlFragment()}
662clone(){const el=new _YXmlFragment();el.insert(0,this.toArray().map((item)=>item instanceof AbstractType?item.clone():item));return el}
663get length(){this.doc??warnPrematureAccess();return this._prelimContent===null?this._length:this._prelimContent.length}
664createTreeWalker(filter){return new YXmlTreeWalker(this,filter)}
665querySelector(query){query=query.toUpperCase();const iterator=new YXmlTreeWalker(this,(element2)=>element2.nodeName&&element2.nodeName.toUpperCase()===query);const next=iterator.next();if(next.done){return null}else{return next.value}}
666querySelectorAll(query){query=query.toUpperCase();return from(new YXmlTreeWalker(this,(element2)=>element2.nodeName&&element2.nodeName.toUpperCase()===query))}
667_callObserver(transaction,parentSubs){callTypeObservers(this,transaction,new YXmlEvent(this,parentSubs,transaction))}
668toString(){return typeListMap(this,(xml)=>xml.toString()).join("")}
669toJSON(){return this.toString()}
670toDOM(_document=document,hooks={},binding){const fragment=_document.createDocumentFragment();if(binding!==void 0){binding._createAssociation(fragment,this)}
671typeListForEach(this,(xmlType)=>{fragment.insertBefore(xmlType.toDOM(_document,hooks,binding),null)});return fragment}
672insert(index,content){if(this.doc!==null){transact(this.doc,(transaction)=>{typeListInsertGenerics(transaction,this,index,content)})}else{this._prelimContent.splice(index,0,...content)}}
673insertAfter(ref,content){if(this.doc!==null){transact(this.doc,(transaction)=>{const refItem=ref&&ref instanceof AbstractType?ref._item:ref;typeListInsertGenericsAfter(transaction,this,refItem,content)})}else{const pc=(this._prelimContent);const index=ref===null?0:pc.findIndex((el)=>el===ref)+1;if(index===0&&ref!==null){throw create3("Reference item not found")}
674pc.splice(index,0,...content)}}
675delete(index,length2=1){if(this.doc!==null){transact(this.doc,(transaction)=>{typeListDelete(transaction,this,index,length2)})}else{this._prelimContent.splice(index,length2)}}
676toArray(){return typeListToArray(this)}
677push(content){this.insert(this.length,content)}
678unshift(content){this.insert(0,content)}
679get(index){return typeListGet(this,index)}
680slice(start=0,end=this.length){return typeListSlice(this,start,end)}
681forEach(f){typeListForEach(this,f)}
682_write(encoder){encoder.writeTypeRef(YXmlFragmentRefID)}};var readYXmlFragment=(_decoder)=>new YXmlFragment();var YXmlElement=class _YXmlElement extends YXmlFragment{constructor(node
682Name="UNDEFINED"){super();this.nodeName=nodeName;this._prelimAttrs=new Map()}
683get nextSibling(){const n=this._item?this._item.next:null;return n?(n.content.type):null}
684get prevSibling(){const n=this._item?this._item.prev:null;return n?(n.content.type):null}
685_integrate(y,item){super._integrate(y,item);this._prelimAttrs.forEach((value,key)=>{this.setAttribute(key,value)});this._prelimAttrs=null}
686_copy(){return new _YXmlElement(this.nodeName)}
687clone(){const el=new _YXmlElement(this.nodeName);const attrs=this.getAttributes();forEach(attrs,(value,key)=>{el.setAttribute(key,value)});el.insert(0,this.toArray().map((v)=>v instanceof AbstractType?v.clone():v));return el}
688toString(){const attrs=this.getAttributes();const stringBuilder=[];const keys2=[];for(const key in attrs){keys2.push(key)}
689keys2.sort();const keysLen=keys2.length;for(let i=0;i<keysLen;i++){const key=keys2[i];stringBuilder.push(key+'="'+attrs[key]+'"')}
690const nodeName=this.nodeName.toLocaleLowerCase();const attrsString=stringBuilder.length>0?" "+stringBuilder.join(" "):"";return `<${nodeName}${attrsString}>${super.toString()}</${nodeName}>`}
691removeAttribute(attributeName){if(this.doc!==null){transact(this.doc,(transaction)=>{typeMapDelete(transaction,this,attributeName)})}else{this._prelimAttrs.delete(attributeName)}}
692setAttribute(attributeName,attributeValue){if(this.doc!==null){transact(this.doc,(transaction)=>{typeMapSet(transaction,this,attributeName,attributeValue)})}else{this._prelimAttrs.set(attributeName,attributeValue)}}
693getAttribute(attributeName){return(typeMapGet(this,attributeName))}
694hasAttribute(attributeName){return(typeMapHas(this,attributeName))}
695getAttributes(snapshot2){return(snapshot2?typeMapGetAllSnapshot(this,snapshot2):typeMapGetAll(this))}
696toDOM(_document=document,hooks={},binding){const dom=_document.createElement(this.nodeName);const attrs=this.getAttributes();for(const key in attrs){const value=attrs[key];if(typeof value==="string"){dom.setAttribute(key,value)}}
697typeListForEach(this,(yxml)=>{dom.appendChild(yxml.toDOM(_document,hooks,binding))});if(binding!==void 0){binding._createAssociation(dom,this)}
698return dom}
699_write(encoder){encoder.writeTypeRef(YXmlElementRefID);encoder.writeKey(this.nodeName)}};var readYXmlElement=(decoder)=>new YXmlElement(decoder.readKey());var YXmlEvent=class extends YEvent{constructor(target,subs,transaction){super(target,transaction);this.childListChanged=!1;this.attributesChanged=new Set();subs.forEach((sub)=>{if(sub===null){this.childListChanged=!0}else{this.attributesChanged.add(sub)}})}};var YXmlHook=class _YXmlHook extends YMap{constructor(hookName){super();this.hookName=hookName}
700_copy(){return new _YXmlHook(this.hookName)}
701clone(){const el=new _YXmlHook(this.hookName);this.forEach((value,key)=>{el.set(key,value)});return el}
702toDOM(_document=document,hooks={},binding){const hook=hooks[this.hookName];let dom;if(hook!==void 0){dom=hook.createDom(this)}else{dom=document.createElement(this.hookName)}
703dom.setAttribute("data-yjs-hook",this.hookName);if(binding!==void 0){binding._createAssociation(dom,this)}
704return dom}
705_write(encoder){encoder.writeTypeRef(YXmlHookRefID);encoder.writeKey(this.hookName)}};var readYXmlHook=(decoder)=>new YXmlHook(decoder.readKey());var YXmlText=class _YXmlText extends YText{get nextSibling(){const n=this._item?this._item.next:null;return n?(n.content.type):null}
706get prevSibling(){const n=this._item?this._item.prev:null;return n?(n.content.type):null}
707_copy(){return new _YXmlText()}
708clone(){const text2=new _YXmlText();text2.applyDelta(this.toDelta());return text2}
709toDOM(_document=document,hooks,binding){const dom=_document.createTextNode(this.toString());if(binding!==void 0){binding._createAssociation(dom,this)}
710return dom}
711toString(){return this.toDelta().map((delta)=>{const nestedNodes=[];for(const nodeName in delta.attributes){const attrs=[];for(const key in delta.attributes[nodeName]){attrs.push({key,value:delta.attributes[nodeName][key]})}
712attrs.sort((a,b)=>a.key<b.key?-1:1);nestedNodes.push({nodeName,attrs})}
713nestedNodes.sort((a,b)=>a.nodeName<b.nodeName?-1:1);let str="";for(let i=0;i<nestedNodes.length;i++){const node=nestedNodes[i];str+=`<${node.nodeName}`;for(let j=0;j<node.attrs.length;j++){const attr=node.attrs[j];str+=` ${attr.key}="${attr.value}"`}
714str+=">"}
715str+=delta.insert;for(let i=nestedNodes.length-1;i>=0;i--){str+=`</${nestedNodes[i].nodeName}>`}
716return str}).join("")}
717toJSON(){return this.toString()}
718_write(encoder){encoder.writeTypeRef(YXmlTextRefID)}};var readYXmlText=(decoder)=>new YXmlText();var AbstractStruct=class{constructor(id2,length2){this.id=id2;this.length=length2}
719get deleted(){throw methodUnimplemented()}
720mergeWith(right){return!1}
721write(encoder,offset,encodingRef){throw methodUnimplemented()}
722integrate(transaction,offset){throw methodUnimplemented()}};var structGCRefNumber=0;var GC=class extends AbstractStruct{get deleted(){return!0}
723delete(){}
724mergeWith(right){if(this.constructor!==right.constructor){return!1}
725this.length+=right.length;return!0}
726integrate(transaction,offset){if(offset>0){this.id.clock+=offset;this.length-=offset}
727addStruct(transaction.doc.store,this)}
728write(encoder,offset){encoder.writeInfo(structGCRefNumber);encoder.writeLen(this.length-offset)}
729getMissing(transaction,store2){return null}};var ContentBinary=class _ContentBinary{constructor(content){this.content=content}
730getLength(){return 1}
731getContent(){return[this.content]}
732isCountable(){return!0}
733copy(){return new _ContentBinary(this.content)}
734splice(offset){throw methodUnimplemented()}
735mergeWith(right){return!1}
736integrate(transaction,item){}
737delete(transaction){}
738gc(store2){}
739write(encoder,offset){encoder.writeBuf(this.content)}
740getRef(){return 3}};var readContentBinary=(decoder)=>new ContentBinary(decoder.readBuf());var ContentDeleted=class _ContentDeleted{constructor(len){this.len=len}
741getLength(){return this.len}
742getContent(){return[]}
743isCountable(){return!1}
744copy(){return new _ContentDeleted(this.len)}
745splice(offset){const right=new _ContentDeleted(this.len-offset);this.len=offset;return right}
746mergeWith(right){this.len+=right.len;return!0}
747integrate(transaction,item){addToDeleteSet(transaction.deleteSet,item.id.client,item.id.clock,this.len);item.markDeleted()}
748delete(transaction){}
749gc(store2){}
750write(encoder,offset){encoder.writeLen(this.len-offset)}
751getRef(){return 1}};var readContentDeleted=(decoder)=>new ContentDeleted(decoder.readLen());var createDocFromOpts=(guid,opts)=>new Doc({guid,...opts,shouldLoad:opts.shouldLoad||opts.autoLoad||!1});var ContentDoc=class _ContentDoc{constructor(doc2){if(doc2._item){console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid.")}
752this.doc=doc2;const opts={};this.opts=opts;if(!doc2.gc){opts.gc=!1}
753if(doc2.autoLoad){opts.autoLoad=!0}
754if(doc2.meta!==null){opts.meta=doc2.meta}}
755getLength(){return 1}
756getContent(){return[this.doc]}
757isCountable(){return!0}
758copy(){return new _ContentDoc(createDocFromOpts(this.doc.guid,this.opts))}
759splice(offset){throw methodUnimplemented()}
760mergeWith(right){return!1}
761integrate(transaction,item){this.doc._item=item;transaction.subdocsAdded.add(this.doc);if(this.doc.shouldLoad){transaction.subdocsLoaded.add(this.doc)}}
762delete(transaction){if(transaction.subdocsAdded.has(this.doc)){transaction.subdocsAdded.delete(this.doc)}else{transaction.subdocsRemoved.add(this.doc)}}
763gc(store2){}
764write(encoder,offset){encoder.writeString(this.doc.guid);encoder.writeAny(this.opts)}
765getRef(){return 9}};var readContentDoc=(decoder)=>new ContentDoc(createDocFromOpts(decoder.readString(),decoder.readAny()));var ContentEmbed=class _ContentEmbed{constructor(embed){this.embed=embed}
766getLength(){return 1}
767getContent(){return[this.embed]}
768isCountable(){return!0}
769copy(){return new _ContentEmbed(this.embed)}
770splice(offset){throw methodUnimplemented()}
771mergeWith(right){return!1}
772integrate(transaction,item){}
773delete(transaction){}
774gc(store2){}
775write(encoder,offset){encoder.writeJSON(this.embed)}
776getRef(){return 5}};var readContentEmbed=(decoder)=>new ContentEmbed(decoder.readJSON());var ContentFormat=class _ContentFormat{constructor(key,value){this.key=key;this.value=value}
777getLength(){return 1}
778getContent(){return[]}
779isCountable(){return!1}
780copy(){return new _ContentFormat(this.key,this.value)}
781splice(_offset){throw methodUnimplemented()}
782mergeWith(_right){return!1}
783integrate(_transaction,item){const p=(item.parent);p._searchMarker=null;p._hasFormatting=!0}
784delete(transaction){}
785gc(store2){}
786write(encoder,offset){encoder.writeKey(this.key);encoder.writeJSON(this.value)}
787getRef(){return 6}};var readContentFormat=(decoder)=>new ContentFormat(decoder.readKey(),decoder.readJSON());var ContentJSON=class _ContentJSON{constructor(arr){this.arr=arr}
788getLength(){return this.arr.length}
789getContent(){return this.arr}
790isCountable(){return!0}
791copy(){return new _ContentJSON(this.arr)}
792splice(offset){const right=new _ContentJSON(this.arr.slice(offset));this.arr=this.arr.slice(0,offset);return right}
793mergeWith(right){this.arr=this.arr.concat(right.arr);return!0}
794integrate(transaction,item){}
795delete(transaction){}
796gc(store2){}
797write(encoder,offset){const len=this.arr.length;encoder.writeLen(len-offset);for(let i=offset;i<len;i++){const c=this.arr[i];encoder.writeString(c===void 0?"undefined":JSON.stringify(c))}}
798getRef(){return 2}};var readContentJSON=(decoder)=>{const len=decoder.readLen();const cs=[];for(let i=0;i<len;i++){const c=decoder.readString();if(c==="undefined"){cs.push(void 0)}else{cs.push(JSON.parse(c))}}
799return new ContentJSON(cs)};var isDevMode=getVariable("node_env")==="development";var ContentAny=class _ContentAny{constructor(arr){this.arr=arr;isDevMode&&deepFreeze(arr)}
800getLength(){return this.arr.length}
801getContent(){return this.arr}
802isCountable(){return!0}
803copy(){return new _ContentAny(this.arr)}
804splice(offset){const right=new _ContentAny(this.arr.slice(offset));this.arr=this.arr.slice(0,offset);return right}
805mergeWith(right){this.arr=this.arr.concat(right.arr);return!0}
806integrate(transaction,item){}
807delete(transaction){}
808gc(store2){}
809write(encoder,offset){const len=this.arr.length;encoder.writeLen(len-offset);for(let i=offset;i<len;i++){const c=this.arr[i];encoder.writeAny(c)}}
810getRef(){return 8}};var readContentAny=(decoder)=>{const len=decoder.readLen();const cs=[];for(let i=0;i<len;i++){cs.push(decoder.readAny())}
811return new ContentAny(cs)};var ContentString=class _ContentString{constructor(str){this.str=str}
812getLength(){return this.str.length}
813getContent(){return this.str.split("")}
814isCountable(){return!0}
815copy(){return new _ContentString(this.str)}
816splice(offset){const right=new _ContentString(this.str.slice(offset));this.str=this.str.slice(0,offset);
816const firstCharCode=this.str.charCodeAt(offset-1);if(firstCharCode>=55296&&firstCharCode<=56319){this.str=this.str.slice(0,offset-1)+"\uFFFD";right.str="\uFFFD"+right.str.slice(1)}
817return right}
818mergeWith(right){this.str+=right.str;return!0}
819integrate(transaction,item){}
820delete(transaction){}
821gc(store2){}
822write(encoder,offset){encoder.writeString(offset===0?this.str:this.str.slice(offset))}
823getRef(){return 4}};var readContentString=(decoder)=>new ContentString(decoder.readString());var typeRefs=[readYArray,readYMap,readYText,readYXmlElement,readYXmlFragment,readYXmlHook,readYXmlText];var YArrayRefID=0;var YMapRefID=1;var YTextRefID=2;var YXmlElementRefID=3;var YXmlFragmentRefID=4;var YXmlHookRefID=5;var YXmlTextRefID=6;var ContentType=class _ContentType{constructor(type){this.type=type}
824getLength(){return 1}
825getContent(){return[this.type]}
826isCountable(){return!0}
827copy(){return new _ContentType(this.type._copy())}
828splice(offset){throw methodUnimplemented()}
829mergeWith(right){return!1}
830integrate(transaction,item){this.type._integrate(transaction.doc,item)}
831delete(transaction){let item=this.type._start;while(item!==null){if(!item.deleted){item.delete(transaction)}else if(item.id.clock<(transaction.beforeState.get(item.id.client)||0)){transaction._mergeStructs.push(item)}
832item=item.right}
833this.type._map.forEach((item2)=>{if(!item2.deleted){item2.delete(transaction)}else if(item2.id.clock<(transaction.beforeState.get(item2.id.client)||0)){transaction._mergeStructs.push(item2)}});transaction.changed.delete(this.type)}
834gc(store2){let item=this.type._start;while(item!==null){item.gc(store2,!0);item=item.right}
835this.type._start=null;this.type._map.forEach((item2)=>{while(item2!==null){item2.gc(store2,!0);item2=item2.left}});this.type._map=new Map()}
836write(encoder,offset){this.type._write(encoder)}
837getRef(){return 7}};var readContentType=(decoder)=>new ContentType(typeRefs[decoder.readTypeRef()](decoder));var followRedone=(store2,id2)=>{let nextID=id2;let diff=0;let item;do{if(diff>0){nextID=createID(nextID.client,nextID.clock+diff)}
838item=getItem(store2,nextID);diff=nextID.clock-item.id.clock;nextID=item.redone}while(nextID!==null&&item instanceof Item);return{item,diff}};var keepItem=(item,keep)=>{while(item!==null&&item.keep!==keep){item.keep=keep;item=item.parent._item}};var splitItem=(transaction,leftItem,diff)=>{const{client,clock}=leftItem.id;const rightItem=new Item(createID(client,clock+diff),leftItem,createID(client,clock+diff-1),leftItem.right,leftItem.rightOrigin,leftItem.parent,leftItem.parentSub,leftItem.content.splice(diff));if(leftItem.deleted){rightItem.markDeleted()}
839if(leftItem.keep){rightItem.keep=!0}
840if(leftItem.redone!==null){rightItem.redone=createID(leftItem.redone.client,leftItem.redone.clock+diff)}
841leftItem.right=rightItem;if(rightItem.right!==null){rightItem.right.left=rightItem}
842transaction._mergeStructs.push(rightItem);if(rightItem.parentSub!==null&&rightItem.right===null){rightItem.parent._map.set(rightItem.parentSub,rightItem)}
843leftItem.length=diff;return rightItem};var isDeletedByUndoStack=(stack,id2)=>some(stack,(s)=>isDeleted(s.deletions,id2));var redoItem=(transaction,item,redoitems,itemsToDelete,ignoreRemoteMapChanges,um)=>{const doc2=transaction.doc;const store2=doc2.store;const ownClientID=doc2.clientID;const redone=item.redone;if(redone!==null){return getItemCleanStart(transaction,redone)}
844let parentItem=(item.parent._item);let left=null;let right;if(parentItem!==null&&parentItem.deleted===!0){if(parentItem.redone===null&&(!redoitems.has(parentItem)||redoItem(transaction,parentItem,redoitems,itemsToDelete,ignoreRemoteMapChanges,um)===null)){return null}
845while(parentItem.redone!==null){parentItem=getItemCleanStart(transaction,parentItem.redone)}}
846const parentType=parentItem===null?(item.parent):(parentItem.content.type);if(item.parentSub===null){left=item.left;right=item;while(left!==null){let leftTrace=left;while(leftTrace!==null&&leftTrace.parent._item!==parentItem){leftTrace=leftTrace.redone===null?null:getItemCleanStart(transaction,leftTrace.redone)}
847if(leftTrace!==null&&leftTrace.parent._item===parentItem){left=leftTrace;break}
848left=left.left}
849while(right!==null){let rightTrace=right;while(rightTrace!==null&&rightTrace.parent._item!==parentItem){rightTrace=rightTrace.redone===null?null:getItemCleanStart(transaction,rightTrace.redone)}
850if(rightTrace!==null&&rightTrace.parent._item===parentItem){right=rightTrace;break}
851right=right.right}}else{right=null;if(item.right&&!ignoreRemoteMapChanges){left=item;while(left!==null&&left.right!==null&&(left.right.redone||isDeleted(itemsToDelete,left.right.id)||isDeletedByUndoStack(um.undoStack,left.right.id)||isDeletedByUndoStack(um.redoStack,left.right.id))){left=left.right;while(left.redone)left=getItemCleanStart(transaction,left.redone);}
852if(left&&left.right!==null){return null}}else{left=parentType._map.get(item.parentSub)||null}}
853const nextClock=getState(store2,ownClientID);const nextId=createID(ownClientID,nextClock);const redoneItem=new Item(nextId,left,left&&left.lastId,right,right&&right.id,parentType,item.parentSub,item.content.copy());item.redone=nextId;keepItem(redoneItem,!0);redoneItem.integrate(transaction,0);return redoneItem};var Item=class _Item extends AbstractStruct{constructor(id2,left,origin2,right,rightOrigin,parent,parentSub,content){super(id2,content.getLength());this.origin=origin2;this.left=left;this.right=right;this.rightOrigin=rightOrigin;this.parent=parent;this.parentSub=parentSub;this.redone=null;this.content=content;
853this.info=this.content.isCountable()?BIT2:0}
854set marker(isMarked){if((this.info&BIT4)>0!==isMarked){this.info^=BIT4}}
855get marker(){return(this.info&BIT4)>0}
856get keep(){return(this.info&BIT1)>0}
857set keep(doKeep){if(this.keep!==doKeep){this.info^=BIT1}}
858get countable(){return(this.info&BIT2)>0}
859get deleted(){return(this.info&BIT3)>0}
860set deleted(doDelete){if(this.deleted!==doDelete){this.info^=BIT3}}
861markDeleted(){this.info|=BIT3}
862getMissing(transaction,store2){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=getState(store2,this.origin.client)){return this.origin.client}
863if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=getState(store2,this.rightOrigin.client)){return this.rightOrigin.client}
864if(this.parent&&this.parent.constructor===ID&&this.id.client!==this.parent.client&&this.parent.clock>=getState(store2,this.parent.client)){return this.parent.client}
865if(this.origin){this.left=getItemCleanEnd(transaction,store2,this.origin);this.origin=this.left.lastId}
866if(this.rightOrigin){this.right=getItemCleanStart(transaction,this.rightOrigin);this.rightOrigin=this.right.id}
867if(this.left&&this.left.constructor===GC||this.right&&this.right.constructor===GC){this.parent=null}else if(!this.parent){if(this.left&&this.left.constructor===_Item){this.parent=this.left.parent;this.parentSub=this.left.parentSub}else if(this.right&&this.right.constructor===_Item){this.parent=this.right.parent;this.parentSub=this.right.parentSub}}else if(this.parent.constructor===ID){const parentItem=getItem(store2,this.parent);if(parentItem.constructor===GC){this.parent=null}else{this.parent=parentItem.content.type}}
868return null}
869integrate(transaction,offset){if(offset>0){this.id.clock+=offset;this.left=getItemCleanEnd(transaction,transaction.doc.store,createID(this.id.client,this.id.clock-1));this.origin=this.left.lastId;this.content=this.content.splice(offset);this.length-=offset}
870if(this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let left=this.left;let o;if(left!==null){o=left.right}else if(this.parentSub!==null){o=this.parent._map.get(this.parentSub)||null;while(o!==null&&o.left!==null){o=o.left}}else{o=this.parent._start}
871const conflictingItems=new Set();const itemsBeforeOrigin=new Set();while(o!==null&&o!==this.right){itemsBeforeOrigin.add(o);conflictingItems.add(o);if(compareIDs(this.origin,o.origin)){if(o.id.client<this.id.client){left=o;conflictingItems.clear()}else if(compareIDs(this.rightOrigin,o.rightOrigin)){break}}else if(o.origin!==null&&itemsBeforeOrigin.has(getItem(transaction.doc.store,o.origin))){if(!conflictingItems.has(getItem(transaction.doc.store,o.origin))){left=o;conflictingItems.clear()}}else{break}
872o=o.right}
873this.left=left}
874if(this.left!==null){const right=this.left.right;this.right=right;this.left.right=this}else{let r;if(this.parentSub!==null){r=this.parent._map.get(this.parentSub)||null;while(r!==null&&r.left!==null){r=r.left}}else{r=this.parent._start;this.parent._start=this}
875this.right=r}
876if(this.right!==null){this.right.left=this}else if(this.parentSub!==null){this.parent._map.set(this.parentSub,this);if(this.left!==null){this.left.delete(transaction)}}
877if(this.parentSub===null&&this.countable&&!this.deleted){this.parent._length+=this.length}
878addStruct(transaction.doc.store,this);this.content.integrate(transaction,this);addChangedTypeToTransaction(transaction,this.parent,this.parentSub);if(this.parent._item!==null&&this.parent._item.deleted||this.parentSub!==null&&this.right!==null){this.delete(transaction)}}else{new GC(this.id,this.length).integrate(transaction,0)}}
879get next(){let n=this.right;while(n!==null&&n.deleted){n=n.right}
880return n}
881get prev(){let n=this.left;while(n!==null&&n.deleted){n=n.left}
882return n}
883get lastId(){return this.length===1?this.id:createID(this.id.client,this.id.clock+this.length-1)}
884mergeWith(right){if(this.constructor===right.constructor&&compareIDs(right.origin,this.lastId)&&this.right===right&&compareIDs(this.rightOrigin,right.rightOrigin)&&this.id.client===right.id.client&&this.id.clock+this.length===right.id.clock&&this.deleted===right.deleted&&this.redone===null&&right.redone===null&&this.content.constructor===right.content.constructor&&this.content.mergeWith(right.content)){const searchMarker=(this.parent._searchMarker);if(searchMarker){searchMarker.forEach((marker)=>{if(marker.p===right){marker.p=this;if(!this.deleted&&this.countable){marker.index-=this.length}}})}
885if(right.keep){this.keep=!0}
886this.right=right.right;if(this.right!==null){this.right.left=this}
887this.length+=right.length;return!0}
888return!1}
889delete(transaction){if(!this.deleted){const parent=(this.parent);if(this.countable&&this.parentSub===null){parent._length-=this.length}
890this.markDeleted();addToDeleteSet(transaction.deleteSet,this.id.client,this.id.clock,this.length);addChangedTypeToTransaction(transaction,parent,this.parentSub);this.content.delete(transaction)}}
891gc(store2,parentGCd){if(!this.deleted){throw unexpectedCase()}
892this.content.gc(store2);
892if(parentGCd){replaceStruct(store2,this,new GC(this.id,this.length))}else{this.content=new ContentDeleted(this.length)}}
893write(encoder,offset){const origin2=offset>0?createID(this.id.client,this.id.clock+offset-1):this.origin;const rightOrigin=this.rightOrigin;const parentSub=this.parentSub;const info=this.content.getRef()&BITS5|(origin2===null?0:BIT8)|(rightOrigin===null?0:BIT7)|(parentSub===null?0:BIT6);encoder.writeInfo(info);if(origin2!==null){encoder.writeLeftID(origin2)}
894if(rightOrigin!==null){encoder.writeRightID(rightOrigin)}
895if(origin2===null&&rightOrigin===null){const parent=(this.parent);if(parent._item!==void 0){const parentItem=parent._item;if(parentItem===null){const ykey=findRootTypeKey(parent);encoder.writeParentInfo(!0);encoder.writeString(ykey)}else{encoder.writeParentInfo(!1);encoder.writeLeftID(parentItem.id)}}else if(parent.constructor===String){encoder.writeParentInfo(!0);encoder.writeString(parent)}else if(parent.constructor===ID){encoder.writeParentInfo(!1);encoder.writeLeftID(parent)}else{unexpectedCase()}
896if(parentSub!==null){encoder.writeString(parentSub)}}
897this.content.write(encoder,offset)}};var readItemContent=(decoder,info)=>contentRefs[info&BITS5](decoder);var contentRefs=[()=>{unexpectedCase()},readContentDeleted,readContentJSON,readContentBinary,readContentString,readContentEmbed,readContentFormat,readContentType,readContentAny,readContentDoc,()=>{unexpectedCase()}];var structSkipRefNumber=10;var Skip=class extends AbstractStruct{get deleted(){return!0}
898delete(){}
899mergeWith(right){if(this.constructor!==right.constructor){return!1}
900this.length+=right.length;return!0}
901integrate(transaction,offset){unexpectedCase()}
902write(encoder,offset){encoder.writeInfo(structSkipRefNumber);writeVarUint(encoder.restEncoder,this.length-offset)}
903getMissing(transaction,store2){return null}};var glo=(typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:{});var importIdentifier="__ $YJS$ __";if(glo[importIdentifier]===!0){console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438")}
904glo[importIdentifier]=!0;var outdatedTimeout=3e4;var Awareness=class extends Observable{constructor(doc2){super();this.doc=doc2;this.clientID=doc2.clientID;this.states=new Map();this.meta=new Map();this._checkInterval=setInterval(()=>{const now=getUnixTime();if(this.getLocalState()!==null&&outdatedTimeout/2<=now-this.meta.get(this.clientID).lastUpdated){this.setLocalState(this.getLocalState())}
905const remove=[];this.meta.forEach((meta,clientid)=>{if(clientid!==this.clientID&&outdatedTimeout<=now-meta.lastUpdated&&this.states.has(clientid)){remove.push(clientid
905)}});if(remove.length>0){removeAwarenessStates(this,remove,"timeout")}},floor(outdatedTimeout/10));doc2.on("destroy",()=>{this.destroy()});this.setLocalState({})}
906destroy(){this.emit("destroy",[this]);this.setLocalState(null);super.destroy();clearInterval(this._checkInterval)}
907getLocalState(){return this.states.get(this.clientID)||null}
908setLocalState(state){const clientID=this.clientID;const currLocalMeta=this.meta.get(clientID);const clock=currLocalMeta===void 0?0:currLocalMeta.clock+1;const prevState=this.states.get(clientID);if(state===null){this.states.delete(clientID)}else{this.states.set(clientID,state)}
909this.meta.set(clientID,{clock,lastUpdated:getUnixTime()});const added=[];const updated=[];const filteredUpdated=[];const removed=[];if(state===null){removed.push(clientID)}else if(prevState==null){if(state!=null){added.push(clientID)}}else{updated.push(clientID);if(!equalityDeep(prevState,state)){filteredUpdated.push(clientID)}}
910if(added.length>0||filteredUpdated.length>0||removed.length>0){this.emit("change",[{added,updated:filteredUpdated,removed},"local"])}
911this.emit("update",[{added,updated,removed},"local"])}
912setLocalStateField(field,value){const state=this.getLocalState();if(state!==null){this.setLocalState({...state,[field]:value})}}
913getStates(){return this.states}};var removeAwarenessStates=(awareness,clients,origin2)=>{const removed=[];for(let i=0;i<clients.length;i++){const clientID=clients[i];if(awareness.states.has(clientID)){awareness.states.delete(clientID);if(clientID===awareness.clientID){const curMeta=(awareness.meta.get(clientID));awareness.meta.set(clientID,{clock:curMeta.clock+1,lastUpdated:getUnixTime()})}
914removed.push(clientID)}}
915if(removed.length>0){awareness.emit("change",[{added:[],updated:[],removed},origin2]);awareness.emit("update",[{added:[],updated:[],removed},origin2])}};var CRDT_DOC_VERSION=1;var CRDT_DOC_META_PERSISTENCE_KEY="fromPersistence";var CRDT_RECORD_MAP_KEY="document";var CRDT_STATE_MAP_KEY="state";var CRDT_STATE_MAP_SAVED_AT_KEY="savedAt";var CRDT_STATE_MAP_SAVED_BY_KEY="savedBy";var CRDT_STATE_MAP_VERSION_KEY="version";var LOCAL_EDITOR_ORIGIN="gutenberg";var LOCAL_SYNC_MANAGER_ORIGIN="syncManager";var LOCAL_UNDO_IGNORED_ORIGIN="gutenberg-undo-ignored";var ConnectionErrorCode=((ConnectionErrorCode22)=>{ConnectionErrorCode22.AUTHENTICATION_FAILED="authentication-failed";ConnectionErrorCode22.CONNECTION_EXPIRED="connection-expired";ConnectionErrorCode22.CONNECTION_LIMIT_EXCEEDED="connection-limit-exceeded";ConnectionErrorCode22.DOCUMENT_SIZE_LIMIT_EXCEEDED="document-size-limit-exceeded";ConnectionErrorCode22.PROTOCOL_MISMATCH="protocol-mismatch";ConnectionErrorCode22.UNKNOWN_ERROR="unknown-error";return ConnectionErrorCode22})(ConnectionErrorCode||{});var ConnectionError=class extends Error{constructor(code="unknown-error",message){super(message);this.code=code;this.name="ConnectionError"}};var import_private_apis=__toESM(require_private_apis(),1);var{lock,unlock}=(0,import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.","@wordpress/sync");function logPerformanceTiming(fn){return function(...args2){const start=performance.now();const result=fn.apply(this,args2);const end=performance.now();console.log(`[SyncManager][performance]: ${fn.name} took ${(end - start).toFixed(2)} ms`);return result}}
916function passThru(fn){return((...args2)=>fn(...args2))}
917function yieldToEventLoop(fn){return function(...args2){setTimeout(()=>{fn.apply(this,args2)},0)}}
918var import_hooks3=__toESM(require_hooks(),1);var import_hooks2=__toESM(require_hooks(),1);var messageYjsSyncStep1=0;var messageYjsSyncStep2=1;var messageYjsUpdate=2;var writeSyncStep1=(encoder,doc2)=>{writeVarUint(encoder,messageYjsSyncStep1);const sv=encodeStateVector(doc2);writeVarUint8Array(encoder,sv)};var writeSyncStep2=(encoder,doc2,encodedStateVector)=>{writeVarUint(encoder,messageYjsSyncStep2);writeVarUint8Array(encoder,encodeStateAsUpdate(doc2,encodedStateVector))};var readSyncStep1=(decoder,encoder,doc2)=>writeSyncStep2(encoder,doc2,readVarUint8Array(decoder));var readSyncStep2=(decoder,doc2,transactionOrigin,errorHandler)=>{try{applyUpdate(doc2,readVarUint8Array(decoder),transactionOrigin)}catch(error){if(errorHandler!=null)errorHandler(error);console.error("Caught error while handling a Yjs update",error)}};var readUpdate2=readSyncStep2;var readSyncMessage=(decoder,encoder,doc2,transactionOrigin,errorHandler)=>{const messageType=readVarUint(decoder);switch(messageType){case messageYjsSyncStep1:readSyncStep1(decoder,encoder,doc2);break;case messageYjsSyncStep2:readSyncStep2(decoder,doc2,transactionOrigin,errorHandler);break;case messageYjsUpdate:readUpdate2(decoder,doc2,transactionOrigin,errorHandler);break;default:throw new Error("Unknown message type")}
919return messageType};var import_hooks=__toESM(require_hooks(),1);var DEFAULT_CLIENT_LIMIT_PER_ROOM=3;var ERROR_RETRY_DELAYS_SOLO_MS=[2e3,4e3,8e3,12e3];var ERROR_RETRY_DELAYS_WITH_COLLABORATORS_MS=[1e3,2e3,4e3,8e3];var DISCONNECT_DIALOG_RETRY_MS=3e4;var MANUAL_RETRY_INTERVAL_MS=15e3;var MAX_ENCODED_UPDATE_SIZE_IN_BYTES=1*1024*1024;var MAX_UPDATE_SIZE_IN_BYTES=Math.floor(MAX_ENCODED_UPDATE_SIZE_IN_BYTES/4)*3;var MAX_ROOMS_PER_REQUEST=50;var MAX_SYNC_REQUEST_BODY_SIZE_IN_BYTES=15*1024*1024;var MIN_SYNC_REQUEST_BODY_SIZE_LIMIT_IN_BYTES=2*1024*1024;var DEFAULT_POLLING_INTERVAL_IN_MS=4e3;var DEFAULT_POLLING_INTERVAL_WITH_COLLABORATORS_IN_MS=1e3;function getFilteredPollingInterval(hookName,defaultInterval){const filteredInterval=(0,import_hooks.applyFilters)(hookName,defaultInterval);if(typeof filteredInterval!=="number"||!Number.isFinite(filteredInterval)||filteredInterval<=0){return defaultInterval}
920return Math.min(filteredInterval,defaultInterval)}
921var POLLING_INTERVAL_IN_MS=getFilteredPollingInterval("sync.pollingManager.pollingInterval",DEFAULT_POLLING_INTERVAL_IN_MS);var POLLING_INTERVAL_WITH_COLLABORATORS_IN_MS=getFilteredPollingInterval("sync.pollingManager.pollingIntervalWithCollaborators",DEFAULT_POLLING_INTERVAL_WITH_COLLABORATORS_IN_MS);var POLLING_INTERVAL_BACKGROUND_TAB_IN_MS=25*1e3;var SyncUpdateType=((SyncUpdateType2)=>{SyncUpdateType2.COMPACTION="compaction";SyncUpdateType2.SYNC_STEP_1="sync_step1";SyncUpdateType2.SYNC_STEP_2="sync_step2";SyncUpdateType2.UPDATE="update";return SyncUpdateType2})(SyncUpdateType||{});var import_api_fetch=__toESM(require_api_fetch(),1);var SYNC_API_PATH="/wp-sync/v1/updates";function uint8ArrayToBase64(data){let binary="";const len=data.byteLength;for(let i=0;i<len;i++){binary+=String.fromCharCode(data[i])}
922return globalThis.btoa(binary)}
923function base64ToUint8Array(base64){const binaryString=globalThis.atob(base64);const len=binaryString.length;const bytes=new Uint8Array(len);for(let i=0;i<len;i++){bytes[i]=binaryString.charCodeAt(i)}
924return bytes}
925function createSyncUpdate(data,type){return{data:uint8ArrayToBase64(data),type}}
926function createUpdateQueue(initial=[],paused=!0){let isPaused=paused;const updates=[...initial];return{add(update){updates.push(update)},addBulk(bulkUpdates){if(0===bulkUpdates.length){return}
927updates.push(...bulkUpdates)},clear(){updates.splice(0,updates.length)}
927,get(){if(isPaused){return[]}
928return updates.splice(0,updates.length)},pause(){isPaused=!0},peek(){if(isPaused){return[]}
929return[...updates]},restore(restoredUpdates){const filtered=restoredUpdates.filter((u)=>u.type!==SyncUpdateType.COMPACTION);if(0===filtered.length){return}
930updates.unshift(...filtered)},restoreExact(restoredUpdates){if(0===restoredUpdates.length){return}
931updates.unshift(...restoredUpdates)},resume(){isPaused=!1},size(){return updates.length},take(count){if(isPaused||count<=0){return[]}
932return updates.splice(0,count)}}}
933function postSyncUpdate(payload){return(0,import_api_fetch.default)({method:"POST",path:SYNC_API_PATH,data:payload})}
934function postSyncUpdateNonBlocking(payload){if(payload.rooms.length===0){return}(0,import_api_fetch.default)({method:"POST",path:SYNC_API_PATH,data:payload,keepalive:!0}).catch(()=>{})}
935function intValueOrDefault(value,defaultValue){const intValue=parseInt(String(value),10);return isNaN(intValue)?defaultValue:intValue}
936function rotateWindow(items2,offset,size2){if(items2.length===0){return{window:[],nextOffset:0}}
937const start=(offset%items2.length+items2.length)%items2.length;const wrapped=[...items2.slice(start),...items2.slice(0,start)];return{window:wrapped.slice(0,Math.max(0,size2)),nextOffset:(start+Math.max(0,size2))%items2.length}}
938var POLLING_MANAGER_ORIGIN="polling-manager";function isForbiddenError(error){return error?.data?.status===403}
939function isRequestBodyTooLargeError(error){return error?.data?.status===413&&error?.code==="rest_sync_body_too_large"}
940function isProtocolMismatchError(error){return error?.code==="rest_sync_protocol_mismatch"}
941function handleForbiddenError(error,requestedRooms){const requestedRoomNames=new Set(requestedRooms.map((room)=>room.room));const forbiddenRooms=Array.isArray(error.data.rooms)?error.data.rooms.filter((room)=>requestedRoomNames.has(room)):[];if(forbiddenRooms.length>0){for(const room of forbiddenRooms){const state=roomStates.get(room);if(state){state.log("Permission denied, unregistering room",{error},"error",!0);unregisterRoom(room,{sendDisconnectSignal:!1})}}
942for(const room of requestedRooms){if(forbiddenRooms.includes(room.room)){continue}
943if(!roomStates.has(room.room)){continue}
944const remainingState=roomStates.get(room.room);if(room.updates.length>0){remainingState.updateQueue.restore(room.updates)}}}else{const rooms=[...roomStates.keys()];for(const room of rooms){const state=roomStates.get(room);if(state){state.log("Permission denied, unregistering room",{error},"error",!0);unregisterRoom(room,{sendDisconnectSignal:!1})}}}}
945var roomStates=new Map();function createDeprecatedCompactionUpdate(updates){const mergeable=updates.filter((u)=>[SyncUpdateType.COMPACTION,SyncUpdateType.UPDATE].includes(u.type)).map((u)=>base64ToUint8Array(u.data));return createSyncUpdate(mergeUpdatesV2(mergeable),SyncUpdateType.COMPACTION)}
946function createSyncStep1Update(doc2){const encoder=createEncoder();writeSyncStep1(encoder,doc2);return createSyncUpdate(toUint8Array(encoder),SyncUpdateType.SYNC_STEP_1)}
947function createSyncStep2Update(doc2,step1){const decoder=createDecoder(step1);const encoder=createEncoder();readSyncMessage(decoder,encoder,doc2,POLLING_MANAGER_ORIGIN);return createSyncUpdate(toUint8Array(encoder),SyncUpdateType.SYNC_STEP_2)}
948function processAwarenessUpdate(state,awareness){const currentStates=awareness.getStates();const added=new Set();const updated=new Set();const removed=new Set(Array.from(currentStates.keys()).filter((clientId)=>!state[clientId]));Object.entries(state).forEach(([clientIdString,awarenessState])=>{const clientId=Number(clientIdString);if(clientId===awareness.clientID){return}
949if(null===awarenessState){currentStates.delete(clientId);removed.add(clientId);return}
950if(!currentStates.has(clientId)){currentStates.set(clientId,awarenessState);added.add(clientId);return}
951const currentState=currentStates.get(clientId);if(JSON.stringify(currentState)!==JSON.stringify(awarenessState)){currentStates.set(clientId,awarenessState);updated.add(clientId)}});if(added.size+updated.size>0){awareness.emit("change",[{added:Array.from(added),updated:Array.from(updated),removed:[]}])}
952if(removed.size>0){removeAwarenessStates(awareness,Array.from(removed),POLLING_MANAGER_ORIGIN)}}
953function processDocUpdate(update,doc2,onSync){const data=base64ToUint8Array(update.data);switch(update.type){case SyncUpdateType.SYNC_STEP_1:{return createSyncStep2Update(doc2,data)}
954case SyncUpdateType.SYNC_STEP_2:{const decoder=createDecoder(data);const encoder=createEncoder();readSyncMessage(decoder,encoder,doc2,POLLING_MANAGER_ORIGIN);onSync();return}
955case SyncUpdateType.COMPACTION:case SyncUpdateType.UPDATE:{applyUpdateV2(
955doc2,data,POLLING_MANAGER_ORIGIN)}}}
956function checkConnectionLimit(awareness,roomState){if(!roomState.isPrimaryRoom||hasCheckedConnectionLimit){return!1}
957hasCheckedConnectionLimit=!0;const maxClientsPerRoom=(0,import_hooks2.applyFilters)("sync.pollingProvider.maxClientsPerRoom",DEFAULT_CLIENT_LIMIT_PER_ROOM,roomState.room);const clientCount=Object.keys(awareness).length;const validatedLimit=intValueOrDefault(maxClientsPerRoom,DEFAULT_CLIENT_LIMIT_PER_ROOM);if(clientCount>validatedLimit){roomState.log("Connection limit exceeded",{clientCount,maxClientsPerRoom:validatedLimit,room:roomState.room});return!0}
958return!1}
959var areListenersRegistered=!1;var consecutiveFailures=0;var hasCheckedConnectionLimit=!1;var isManualRetry=!1;var hasCollaborators=!1;var isActiveBrowser="visible"===document.visibilityState;var isPolling=!1;var isUnloadPending=!1;var pollInterval=POLLING_INTERVAL_IN_MS;var pollingTimeoutId=null;var syncRequestBodySizeLimit=MAX_SYNC_REQUEST_BODY_SIZE_IN_BYTES;var roomOverflowOffset=0;function handleBeforeUnload(){isUnloadPending=!0}
960function handlePageHide(){const rooms=Array.from(roomStates.entries()).map(([room,state])=>({after:0,awareness:null,client_id:state.clientId,room,updates:[]}));for(let i=0;i<rooms.length;i+=MAX_ROOMS_PER_REQUEST){postSyncUpdateNonBlocking({rooms:rooms.slice(i,i+MAX_ROOMS_PER_REQUEST)})}}
961function handleVisibilityChange(){const wasActive=isActiveBrowser;isActiveBrowser=document.visibilityState==="visible";if(isActiveBrowser&&!wasActive){if(pollingTimeoutId){clearTimeout(pollingTimeoutId);pollingTimeoutId=null;poll()}}}
962function selectRoomsForRequest(){const allRooms=Array.from(roomStates.values());if(allRooms.length<=MAX_ROOMS_PER_REQUEST){return allRooms}
963const primaryRoom=allRooms.find((state)=>state.isPrimaryRoom);const overflowRooms=allRooms.filter((state)=>state!==primaryRoom);const overflowSlotsPerRequest=MAX_ROOMS_PER_REQUEST-(primaryRoom?1:0);const{window:overflowSlice,nextOffset}=rotateWindow(overflowRooms,roomOverflowOffset,overflowSlotsPerRequest);roomOverflowOffset=nextOffset;if(primaryRoom){return[primaryRoom,...overflowSlice]}
964return overflowSlice}
965var textEncoder=new TextEncoder();function getJsonByteLength(value){return textEncoder.encode(JSON.stringify(value)).byteLength}
966function createPayloadRoom(state,updates=[]){return{after:state.endCursor??0,awareness:state.localAwarenessState,client_id:state.clientId,room:state.room,updates}}
967function getUpdatePayloadSizeDelta(existingUpdateCount,update){const commaSize=existingUpdateCount===0?0:1;return commaSize+getJsonByteLength(update)}
968function buildPayloadForRequest(selectedRoomStates){const payload={rooms:[]};const roomsInRequest=[];for(const state of selectedRoomStates){const room=createPayloadRoom(state);const candidate={rooms:[...payload.rooms,room]};if(payload.rooms.length>0&&getJsonByteLength(candidate)>syncRequestBodySizeLimit){break}
969payload.rooms.push(room);roomsInRequest.push(state)}
970const pendingUpdates=roomsInRequest.map((state)=>state.updateQueue.peek());const sentUpdateCounts=roomsInRequest.map(()=>0);let payloadSize=getJsonByteLength(payload);let addedUpdate=!0;while(addedUpdate){addedUpdate=!1;for(let i=0;i<roomsInRequest.length;i++){const update=pendingUpdates[i][sentUpdateCounts[i]];if(!update){continue}
971const sizeDelta=getUpdatePayloadSizeDelta(sentUpdateCounts[i],update);if(payloadSize+sizeDelta>syncRequestBodySizeLimit){continue}
972sentUpdateCounts[i]++;
972payloadSize+=sizeDelta;addedUpdate=!0}}
973for(let i=0;i<roomsInRequest.length;i++){payload.rooms[i].updates=roomsInRequest[i].updateQueue.take(sentUpdateCounts[i])}
974return{payload,roomsInRequest}}
975function restoreExactUpdates(payload){for(const room of payload.rooms){if(!roomStates.has(room.room)||room.updates.length===0){continue}
976roomStates.get(room.room).updateQueue.restoreExact(room.updates)}}
977function poll(){isPolling=!0;pollingTimeoutId=null;async function start(){if(0===roomStates.size){isPolling=!1;return}
978isUnloadPending=!1;const{payload,roomsInRequest}=buildPayloadForRequest(selectRoomsForRequest());roomsInRequest.forEach((state)=>{state.onStatusChange({status:"connecting"})});try{const{rooms}=await postSyncUpdate(payload);consecutiveFailures=0;isManualRetry=!1;syncRequestBodySizeLimit=MAX_SYNC_REQUEST_BODY_SIZE_IN_BYTES;roomsInRequest.forEach((state)=>{if(roomStates.get(state.room)!==state){return}
979state.onStatusChange({status:"connected"})});hasCollaborators=!1;rooms.forEach((room)=>{if(!roomStates.has(room.room)){return}
980const roomState=roomStates.get(room.room);roomState.endCursor=room.end_cursor;if(checkConnectionLimit(room.awareness,roomState)){roomState.onStatusChange({status:"disconnected",error:new ConnectionError(ConnectionErrorCode.CONNECTION_LIMIT_EXCEEDED,"Connection limit exceeded")});unregisterRoom(room.room);return}
981roomState.processAwarenessUpdate(room.awareness);if(roomState.isPrimaryRoom&&Object.keys(room.awareness).length>1){hasCollaborators=!0;roomStates.forEach((state)=>{state.updateQueue.resume()})}
982const responseUpdates=[];for(const update of room.updates){try{const response=roomState.processDocUpdate(update);if(response){responseUpdates.push(response)}}catch(error){roomState.log("Failed to apply sync update",{error,update},"error",!0)}}
983roomState.updateQueue.addBulk(responseUpdates);if(room.should_compact){roomState.log("Server requested compaction update");roomState.updateQueue.clear();roomState.updateQueue.add(roomState.createCompactionUpdate())}else if(room.compaction_request){roomState.log("Server requested (old) compaction update");roomState.updateQueue.add(createDeprecatedCompactionUpdate(room.compaction_request))}});if(isActiveBrowser&&hasCollaborators){pollInterval=POLLING_INTERVAL_WITH_COLLABORATORS_IN_MS}else if(isActiveBrowser){pollInterval=POLLING_INTERVAL_IN_MS}else{pollInterval=POLLING_INTERVAL_BACKGROUND_TAB_IN_MS}}catch(error){if(isForbiddenError(error)){handleForbiddenError(error,payload.rooms);if(roomStates.size===0){isPolling=!1;return}}else if(isRequestBodyTooLargeError(error)){syncRequestBodySizeLimit=Math.max(MIN_SYNC_REQUEST_BODY_SIZE_LIMIT_IN_BYTES,Math.floor(syncRequestBodySizeLimit/2));pollInterval=hasCollaborators?ERROR_RETRY_DELAYS_WITH_COLLABORATORS_MS[0]:ERROR_RETRY_DELAYS_SOLO_MS[0];restoreExactUpdates(payload);for(const room of payload.rooms){if(!roomStates.has(room.room)){continue}
984roomStates.get(room.room).log("Sync request body too large, retrying with smaller batches",{error,nextPoll:pollInterval,syncRequestBodySizeLimit},"error",!0)}}else if(isProtocolMismatchError(error)){const affectedRooms=[...roomStates.entries()];for(const[,state]of affectedRooms){state.onStatusChange({status:"disconnected",error:new ConnectionError(ConnectionErrorCode.PROTOCOL_MISMATCH,"Protocol mismatch between client and server")})}
985for(const[room]of affectedRooms){unregisterRoom(room,{sendDisconnectSignal:!1})}
986isPolling=!1;return}else{consecutiveFailures++;const retrySchedule=hasCollaborators?ERROR_RETRY_DELAYS_WITH_COLLABORATORS_MS:ERROR_RETRY_DELAYS_SOLO_MS;if(consecutiveFailures<=retrySchedule.length){pollInterval=retrySchedule[consecutiveFailures-1]}else{pollInterval=DISCONNECT_DIALOG_RETRY_MS}
987if(isManualRetry){pollInterval=MANUAL_RETRY_INTERVAL_MS;isManualRetry=!1}
988for(const room of payload.rooms){if(!roomStates.has(room.room)){continue}
989const state=roomStates.get(room.room);if(room.updates.length>0&&state.endCursor>0){state.updateQueue.clear();state.updateQueue.add(state.createCompactionUpdate())}else if(room.updates.length>0){state.updateQueue.restore(room.updates)}
990state.log("Error posting sync update, will retry with backoff",{error,nextPoll:pollInterval},"error",!0)}
991if(!isUnloadPending){const backgroundRetriesFailed=consecutiveFailures>
991retrySchedule.length;roomsInRequest.forEach((state)=>{if(roomStates.get(state.room)!==state){return}
992state.onStatusChange({status:"disconnected",canManuallyRetry:!0,consecutiveFailures,backgroundRetriesFailed,willAutoRetryInMs:pollInterval})})}}}
993pollingTimeoutId=setTimeout(poll,pollInterval)}
994void start()}
995function registerRoom({room,doc:doc2,awareness,log,onSync,onStatusChange}){if(roomStates.has(room)){return}
996const updateQueue=createUpdateQueue([createSyncStep1Update(doc2)]);const isPrimaryRoom=0===roomStates.size;function onAwarenessUpdate(){roomState.localAwarenessState=awareness.getLocalState()??{}}
997function onDocUpdate(update,origin2){if(POLLING_MANAGER_ORIGIN===origin2){return}
998if(update.byteLength>MAX_UPDATE_SIZE_IN_BYTES){const state=roomStates.get(room);if(!state){return}
999state.log("Document size limit exceeded",{maxUpdateSizeInBytes:MAX_UPDATE_SIZE_IN_BYTES,updateSizeInBytes:update.byteLength});state.onStatusChange({status:"disconnected",error:new ConnectionError(ConnectionErrorCode.DOCUMENT_SIZE_LIMIT_EXCEEDED,"Document size limit exceeded")});unregisterRoom(room);return}
1000updateQueue.add(createSyncUpdate(update,SyncUpdateType.UPDATE))}
1001function unregister(){doc2.off("updateV2",onDocUpdate);awareness.off("change",onAwarenessUpdate);updateQueue.clear()}
1002const roomState={clientId:doc2.clientID,createCompactionUpdate:()=>createSyncUpdate(encodeStateAsUpdateV2(doc2),SyncUpdateType.COMPACTION),endCursor:0,isPrimaryRoom,localAwarenessState:awareness.getL
1002ocalState()??{},log,onStatusChange,processAwarenessUpdate:(state)=>processAwarenessUpdate(state,awareness),processDocUpdate:(update)=>processDocUpdate(update,doc2,onSync),room,unregister,updateQueue};doc2.on("updateV2",onDocUpdate);awareness.on("change",onAwarenessUpdate);roomStates.set(room,roomState);if(!areListenersRegistered){window.addEventListener("beforeunload",handleBeforeUnload);window.addEventListener("pagehide",handlePageHide);document.addEventListener("visibilitychange",handleVisibilityChange);areListenersRegistered=!0}
1003if(!isPolling){poll()}}
1004function unregisterRoom(room,{sendDisconnectSignal=!0}={}){const state=roomStates.get(room);if(state){if(sendDisconnectSignal){const rooms=[{after:0,awareness:null,client_id:state.clientId,room,updates:[]}];postSyncUpdateNonBlocking({rooms})}
1005state.unregister();roomStates.delete(room)}
1006if(0===roomStates.size&&areListenersRegistered){window.removeEventListener("beforeunload",handleBeforeUnload);window.removeEventListener("pagehide",handlePageHide);document.removeEventListener("visibilitychange",handleVisibilityChange);areListenersRegistered=!1;hasCheckedConnectionLimit=!1;consecutiveFailures=0;roomOverflowOffset=0;syncRequestBodySizeLimit=MAX_SYNC_REQUEST_BODY_SIZE_IN_BYTES}}
1007function retryNow(){isManualRetry=!0;if(pollingTimeoutId){clearTimeout(pollingTimeoutId);pollingTimeoutId=null;poll()}}
1008var pollingManager={registerRoom,retryNow,unregisterRoom};var HttpPollingProvider=class extends ObservableV2{constructor(options){super();this.options=options;this.log("Initializing",{room:options.room});this.awareness=options.awareness??new Awareness(options.ydoc);this.connect()}
1009awareness;status="disconnected";synced=!1;connect(){this.log("Connecting");pollingManager.registerRoom({room:this.options.room,doc:this.options.ydoc,awareness:this.awareness,log:this.log,onStatusChange:this.emitStatus,onSync:this.onSync})}
1010destroy(){this.disconnect();super.destroy()}
1011disconnect(){this.log("Disconnecting");pollingManager.unregisterRoom(this.options.room);this.emitStatus({status:"disconnected"})}
1012emitStatus=(connectionStatus)=>{const{status}=connectionStatus;const error=status==="disconnected"?connectionStatus.error:void 0;if(this.status===status&&!error){return}
1013if(status==="connecting"&&this.status!=="disconnected"){return}
1014this.log("Status change",{status,error});this.status=status;this.emit("status",[connectionStatus])};log=(message,debug={},errorLevel="log",force=!1)=>{if(!this.options.debug&&!force){return}
1015const logFn=console[errorLevel]||console.log;logFn(`[${this.constructor.name}]: ${message}`,{room:this.options.room,...debug})};onSync=()=>{if(!this.synced){this.synced=!0;this.log("Synced")}}};function createHttpPollingProvider(){return async({awareness,objectType,objectId,ydoc})=>{const room=objectId?`${objectType}:${objectId}`:objectType;const provider=new HttpPollingProvider({awareness,room,ydoc});return{destroy:()=>provider.destroy(),on:(event,callback)=>{provider.on(event,callback)}}}}
1016var providerCreators=null;function getDefaultProviderCreators(){return[createHttpPollingProvider()]}
1017function isProviderCreator(creator){return"function"===typeof creator}
1018function getProviderCreators(){if(providerCreators){return providerCreators}
1019if(!window._wpCollaborationEnabled){return[]}
1020const filteredProviderCreators=(0,import_hooks3.applyFilters)("sync.providers",getDefaultProviderCreators());if(!Array.isArray(filteredProviderCreators)){providerCreators=[];return providerCreators}
1021providerCreators=filteredProviderCreators.filter(isProviderCreator);return providerCreators}
1022var popStackItem2=(mum,type)=>{const stack=type==="undo"?mum.undoStack:mum.redoStack;while(stack.length>0){const um=(stack.pop());const prevUmStack=type==="undo"?um.undoStack:um.redoStack;const stackItem=(prevUmStack.pop());let actionPerformed=!1;if(type==="undo"){um.undoStack=[stackItem];actionPerformed=um.undo()!==null;um.undoStack=prevUmStack}else{um.redoStack=[stackItem];actionPerformed=um.redo()!==null;um.redoStack=prevUmStack}
1023if(actionPerformed){return stackItem}}
1024return null};var YMultiDocUndoManager=class extends Observable{constructor(typeScope=[],opts={}){super();this.docs=new Map();this.trackedOrigins=opts.trackedOrigins||new Set([null]);opts.trackedOrigins=this.trackedOrigins;this._defaultOpts=opts;this.undoStack=[];this.redoStack=[];this.addToScope(typeScope)}
1025addToScope(ytypes){ytypes=isArray(ytypes)?ytypes:[ytypes];
1025ytypes.forEach((ytype)=>{const ydoc=(ytype.doc);const um=setIfUndefined(this.docs,ydoc,()=>{const um2=new UndoManager([ytype],this._defaultOpts);um2.on("stack-cleared",({undoStackCleared,redoStackCleared})=>{this.clear(undoStackCleared,redoStackCleared)});ydoc.on("destroy",()=>{this.docs.delete(ydoc);this.undoStack=this.undoStack.filter((um3)=>um3.doc!==ydoc);this.redoStack=this.redoStack.filter((um3)=>um3.doc!==ydoc)});um2.on("stack-item-added",(change)=>{const stack=change.type==="undo"?this.undoStack:this.redoStack;stack.push(um2);this.emit("stack-item-added",[{...change,ydoc},this])});um2.on("stack-item-updated",(change)=>{this.emit("stack-item-updated",[{...change,ydoc},this])});um2.on("stack-item-popped",(change)=>{this.emit("stack-item-popped",[{...change,ydoc},this])});return um2});if(um.scope.every((yt)=>yt!==ytype)){um.scope.push(ytype)}})}
1026addTrackedOrigin(origin2){this.trackedOrigins.add(origin2)}
1027removeTrackedOrigin(origin2){this.trackedOrigins.delete(origin2)}
1028undo(){return popStackItem2(this,"undo")}
1029redo(){return popStackItem2(this,"redo")}
1030clear(clearUndoStack=!0,clearRedoStack=!0){if(clearUndoStack&&this.canUndo()||clearRedoStack&&this.canRedo()){this.docs.forEach((um)=>{clearUndoStack&&(this.undoStack=[]);clearRedoStack&&(this.redoStack=[]);um.clear(clearUndoStack,clearRedoStack)});this.emit("stack-cleared",[{undoStackCleared:clearUndoStack,redoStackCleared:clearRedoStack}])}}
1031stopCapturing(){this.docs.forEach((um)=>{um.stopCapturing()})}
1032canUndo(){return this.undoStack.length>0}
1033canRedo(){return this.redoStack.length>0}
1034destroy(){this.docs.forEach((um)=>um.destroy());super.destroy()}};function createUndoManager(){const undoMetaHandlers=new Map();const yUndoManager=new YMultiDocUndoManager([],{captureTimeout:500,trackedOrigins:new Set([LOCAL_EDITOR_ORIGIN])});const getUndoStackState=()=>({hasRedo:yUndoManager.canRedo(),hasUndo:yUndoManager.canUndo()});const notifyUndoStackChange=(ydoc)=>{undoMetaHandlers.get(ydoc)?.onUndoStackChange?.(getUndoStackState())};yUndoManager.on("stack-item-added",(event)=>{const handlers=undoMetaHandlers.get(event.ydoc);if(!handlers){return}
1035handlers.addUndoMeta(event.ydoc,event.stackItem.meta);notifyUndoStackChange(event.ydoc)});yUndoManager.on("stack-item-updated",(event)=>{notifyUndoStackChange(event.ydoc)});yUndoManager.on("stack-item-popped",(event)=>{const handlers=undoMetaHandlers.get(event.ydoc);if(!handlers){return}
1036handlers.restoreUndoMeta(event.ydoc,event.stackItem.meta);notifyUndoStackChange(event.ydoc)});yUndoManager.on("stack-cleared",()=>{undoMetaHandlers.forEach((handlers)=>{handlers.onUndoStackChange?.(getUndoStackState())})});return{addRecord(_record,_isStaged=!1){},addToScope(ymap,handlers){if(ymap.doc===null){return}
1037const ydoc=ymap.doc;yUndoManager.addToScope(ymap);if(!undoMetaHandlers.has(ydoc)){ydoc.on("destroy",()=>undoMetaHandlers.delete(ydoc))}
1038undoMetaHandlers.set(ydoc,handlers)}
1038,undo(){if(!yUndoManager.canUndo()){return}
1039yUndoManager.undo();return[]},redo(){if(!yUndoManager.canRedo()){return}
1040yUndoManager.redo();return[]},hasUndo(){return yUndoManager.canUndo()},hasRedo(){return yUndoManager.canRedo()},stopCapturing(){yUndoManager.stopCapturing()}}}
1041function createYjsDoc(documentMeta={}){const metaMap=new Map(Object.entries(documentMeta));return new Doc({meta:metaMap})}
1042function initializeYjsDoc(ydoc){const stateMap=ydoc.getMap(CRDT_STATE_MAP_KEY);stateMap.set(CRDT_STATE_MAP_VERSION_KEY,CRDT_DOC_VERSION)}
1043function markEntityAsSaved(ydoc){const recordMeta=ydoc.getMap(CRDT_STATE_MAP_KEY);recordMeta.set(CRDT_STATE_MAP_SAVED_AT_KEY,Date.now());recordMeta.set(CRDT_STATE_MAP_SAVED_BY_KEY,ydoc.clientID)}
1044function pseudoRandomID(){return Math.floor(Math.random()*1e9)}
1045function serializeCrdtDoc(crdtDoc){return JSON.stringify({document:toBase64(encodeStateAsUpdateV2(crdtDoc)),updateId:pseudoRandomID()})}
1046function deserializeCrdtDoc(serializedCrdtDoc){try{const{document:document2}=JSON.parse(serializedCrdtDoc);const docMeta={[CRDT_DOC_META_PERSISTENCE_KEY]:!0};const ydoc=createYjsDoc(docMeta);const yupdate=fromBase64(document2);applyUpdateV2(ydoc,yupdate);ydoc.clientID=pseudoRandomID();return ydoc}catch{return null}}
1047function getEntityId(objectType,objectId){return `${objectType}_${objectId}`}
1048function createSyncManager(debug=!1){const debugWrap=debug?logPerformanceTiming:passThru;const collectionStates=new Map();const entityStates=new Map();let undoManager2;function log(component,message,entityId,context={}){if(!debug){return}
1049console.log(`[SyncManager][${component}]: ${message}`,{...context,entityId})}
1050async function loadEntity(syncConfig,objectType,objectId,record,handlers){const providerCreators2=getProviderCreators();const entityId=getEntityId(objectType,objectId);if(0===providerCreators2.length){log("loadEntity","no providers, skipping",entityId);return}
1051if(entityStates.has(entityId)){log("loadEntity","already loaded",entityId);return}
1052if(!1===syncConfig.shouldSync?.(objectType,objectId)){log("loadEntity","shouldSync false, skipping",entityId);return}
1053log("loadEntity","loading",entityId);handlers={addUndoMeta:debugWrap(handlers.addUndoMeta),editRecord:debugWrap(handlers.editRecord),getEditedRecord:debugWrap(handlers.getEditedRecord),onStatusChange:debugWrap(handlers.onStatusChange),persistCRDTDoc:debugWrap(handlers.persistCRDTDoc),refetchRecord:debugWrap(handlers.refetchRecord),restoreUndoMeta:debugWrap(handlers.restoreUndoMeta),onUndoStackChange:handlers.onUndoStackChange?debugWrap(handlers.onUndoStackChange):void 0};const ydoc=createYjsDoc({objectType});const recordMap=ydoc.getMap(CRDT_RECORD_MAP_KEY);const stateMap=ydoc.getMap(CRDT_STATE_MAP_KEY);const now=Date.now();let hasObserversAttached=!1;let isEntityUnloaded=!1;const unload=()=>{log("loadEntity","unloading",entityId);isEntityUnloaded=!0;providerResults?.forEach((result)=>result.destroy());handlers.onStatusChange(null);if(hasObserversAttached){recordMap.unobserveDeep(onRecordUpdate);stateMap.unobserve(onStateMapUpdate)}
1054ydoc.destroy();entityStates.delete(entityId)};const awareness=syncConfig.createAwareness?.(ydoc,objectId);const onRecordUpdate=(_events,transaction)=>{if(transaction.local&&!(transaction.origin instanceof UndoManager)){return}
1055void internal.updateEntityRecord(objectType,objectId)};const onStateMapUpdate=(event,transaction)=>{if(transaction.local){return}
1056event.keysChanged.forEach((key)=>{switch(key){case CRDT_STATE_MAP_SAVED_AT_KEY:const savedAt=stateMap.get(CRDT_STATE_MAP_SAVED_AT_KEY);if("number"===typeof savedAt&&savedAt>now){log("loadEntity","refetching record",entityId);void handlers.refetchRecord().catch(()=>{})}
1057break}})};if(!undoManager2){undoManager2=createUndoManager()}
1058const{addUndoMeta,onUndoStackChange,restoreUndoMeta}=handlers;undoManager2.addToScope(recordMap,{addUndoMeta,restoreUndoMeta,onUndoStackChange});let providerResults;const entityState={awareness,handlers,objectId,objectType,syncConfig,unload,ydoc};entityStates.set(entityId,entityState);log("loadEntity","connecting",entityId);providerResults=await Promise.all(providerCreators2.map(async(create9)=>{const provider=await create9({objectType,objectId,ydoc,awareness,Y:yjs_exports});provider.on("status",handlers.onStatusChange);return provider}));if(isEntityUnloaded){log("loadEntity","unloaded during connect, aborting",entityId);
1058providerResults.forEach((result)=>result.destroy());return}
1059initializeYjsDoc(ydoc);internal.applyPersistedCrdtDoc(objectType,objectId,record);recordMap.observeDeep(onRecordUpdate);stateMap.observe(onStateMapUpdate);hasObserversAttached=!0}
1060async function loadCollection(syncConfig,objectType,handlers){const providerCreators2=getProviderCreators();const entityId=getEntityId(objectType,null);if(0===providerCreators2.length){log("loadCollection","no providers, skipping",entityId);return}
1061if(collectionStates.has(objectType)){log("loadCollection","already loaded",entityId);return}
1062if(!1===syncConfig.shouldSync?.(objectType,null)){log("loadCollection","shouldSync false, skipping",entityId);return}
1063log("loadCollection","loading",entityId);const ydoc=createYjsDoc({collection:!0,objectType});const stateMap=ydoc.getMap(CRDT_STATE_MAP_KEY);const now=Date.now();let hasObserversAttached=!1;let isCollectionUnloaded=!1;const unload=()=>{log("loadCollection","unloading",entityId);isCollectionUnloaded=!0;providerResults?.forEach((result)=>result.destroy());handlers.onStatusChange(null);if(hasObserversAttached){stateMap.unobserve(onStateMapUpdate)}
1064ydoc.destroy();collectionStates.delete(objectType)};const onStateMapUpdate=(event,transaction)=>{if(transaction.local){return}
1065event.keysChanged.forEach((key)=>{switch(key){case CRDT_STATE_MAP_SAVED_AT_KEY:const newValue=stateMap.get(CRDT_STATE_MAP_SAVED_AT_KEY);if("number"===typeof newValue&&newValue>now){void handlers.refetchRecords().catch(()=>{})}
1066break}})};const awareness=syncConfig.createAwareness?.(ydoc);let providerResults;const collectionState={awareness,handlers,syncConfig,unload,ydoc};collectionStates.set(objectType,collectionState);log("loadCollection","connecting",entityId);providerResults=await Promise.all(providerCreators2.map(async(create9)=>{const provider=await create9({awareness,objectType,objectId:null,ydoc,Y:yjs_exports});provider.on("status",handlers.onStatusChange);return provider}));if(isCollectionUnloaded){log("loadCollection","unloaded during connect, aborting",entityId);providerResults.forEach((result)=>result.destroy());return}
1067stateMap.observe(onStateMapUpdate);hasObserversAttached=!0;initializeYjsDoc(ydoc)}
1068function unloadEntity(objectType,objectId){const entityId=getEntityId(objectType,objectId);log("unloadEntity","unloading",entityId);entityStates.get(entityId)?.unload();updateCRDTDoc(objectType,null,{},origin,{isSave:!0})}
1069function unloadAll(){log("unloadAll","unloading all entities","all");for(const[,entityState]of[...entityStates]){entityState.unload()}
1070entityStates.clear();undoManager2=void 0;for(const[,collectionState]of[...collectionStates]){collectionState.unload()}
1071collectionStates.clear()}
1072function getAwareness(objectType,objectId){const entityId=getEntityId(objectType,objectId);const entityState=entityStates.get(entityId);if(!entityState||!entityState.awareness){return void 0}
1073return entityState.awareness}
1074function _applyPersistedCrdtDoc(objectType,objectId,record){const entityId=getEntityId(objectType,objectId);const entityState=entityStates.get(entityId);if(!entityState){log("applyPersistedCrdtDoc","no entity state",entityId);return}
1075const{handlers,syncConfig:{applyChangesToCRDTDoc,getChangesFromCRDTDoc,getPersistedCRDTDoc},ydoc:targetDoc}=entityState;const serialized=getPersistedCRDTDoc?.(record);const tempDoc=serialized?deserializeCrdtDoc(serialized):null;if(!tempDoc){log("applyPersistedCrdtDoc","no persisted doc",entityId);targetDoc.transact(()=>{applyChangesToCRDTDoc(targetDoc,record);handlers.persistCRDTDoc()},LOCAL_SYNC_MANAGER_ORIGIN);return}
1076const update=encodeStateAsUpdateV2(tempDoc);applyUpdateV2(targetDoc,update);const invalidations=getChangesFromCRDTDoc(tempDoc,record);const invalidatedKeys=Object.keys(invalidations);tempDoc.destroy();if(0===invalidatedKeys.length){log("applyPersistedCrdtDoc","valid persisted doc",entityId);return}
1077log("applyPersistedCrdtDoc","invalidated keys",entityId,{invalidatedKeys});const changes=invalidatedKeys.reduce((acc,key)=>Object.assign(acc,{[key]:record[key]}),{});targetDoc.transact(()=>{applyChangesToCRDTDoc(targetDoc,changes);
1077handlers.persistCRDTDoc()},LOCAL_SYNC_MANAGER_ORIGIN)}
1078function updateCRDTDoc(objectType,objectId,changes,origin2,options={}){const{isSave=!1,isNewUndoLevel=!1}=options;const entityId=getEntityId(objectType,objectId);const entityState=entityStates.get(entityId);const collectionState=collectionStates.get(objectType);if(entityState){const{syncConfig,ydoc}=entityState;if(isNewUndoLevel&&undoManager2){undoManager2.stopCapturing?.()}
1079ydoc.transact(()=>{log("updateCRDTDoc","applying changes",entityId,{changedKeys:Object.keys(changes)});syncConfig.applyChangesToCRDTDoc(ydoc,changes);if(isSave){markEntityAsSaved(ydoc)}},origin2)}
1080if(collectionState&&isSave){collectionState.ydoc.transact(()=>{markEntityAsSaved(collectionState.ydoc)},origin2)}}
1081const deferUpdateCRDTDoc=yieldToEventLoop(updateCRDTDoc);function updateOrDefer(objectType,objectId,changes,origin2,options={}){const hasRemotePeers=(getAwareness(objectType,objectId)?.getStates().size??0)>1;const update=hasRemotePeers?updateCRDTDoc:deferUpdateCRDTDoc;update(objectType,objectId,changes,origin2,options)}
1082async function _updateEntityRecord(objectType,objectId){const entityId=getEntityId(objectType,objectId);const entityState=entityStates.get(entityId);if(!entityState){log("updateEntityRecord","no entity state",entityId);return}
1083const{handlers,syncConfig,ydoc}=entityState;const changes=syncConfig.getChangesFromCRDTDoc(ydoc,await handlers.getEditedRecord());const changedKeys=Object.keys(changes);if(0===changedKeys.length){return}
1084log("updateEntityRecord","changes",entityId,{changedKeys});handlers.editRecord(changes)}
1085async function createPersistedCRDTDoc(objectType,objectId){const entityId=getEntityId(objectType,objectId);const entityState=entityStates.get(entityId);if(!entityState?.ydoc){return null}
1086await new Promise((resolve)=>setTimeout(resolve,0));return serializeCrdtDoc(entityState.ydoc)}
1087const internal={applyPersistedCrdtDoc:debugWrap(_applyPersistedCrdtDoc),updateEntityRecord:debugWrap(_updateEntityRecord)};return{createPersistedCRDTDoc:debugWrap(createPersistedCRDTDoc),getAwareness,load:debugWrap(loadEntity),loadCollection:debugWrap(loadCollection),get undoManager(){return undoManager2},unload:debugWrap(unloadEntity),unloadAll:debugWrap(unloadAll),update:debugWrap(updateOrDefer)}}
1088var Diff=class{diff(oldStr,newStr,options={}){let callback;if(typeof options==="function"){callback=options;options={}}else if("callback" in options){callback=options.callback}
1089const oldString=this.castInput(oldStr,options);const newString=this.castInput(newStr,options);const oldTokens=this.removeEmpty(this.tokenize(oldString,options));const newTokens=this.removeEmpty(this.tokenize(newString,options));return this.diffWithOptionsObj(oldTokens,newTokens,options,callback)}
1090diffWithOptionsObj(oldTokens,newTokens,options,callback){var _a;const done=(value)=>{value=this.postProcess(value,options);if(callback){setTimeout(function(){callback(value)},0);return void 0}else{return value}};const newLen=newTokens.length,oldLen=oldTokens.length;let editLength=1;let maxEditLength=newLen+oldLen;if(options.maxEditLength!=null){maxEditLength=Math.min(maxEditLength,options.maxEditLength)}
1091const maxExecutionTime=(_a=options.timeout)!==null&&_a!==void 0?_a:Infinity;const abortAfterTimestamp=Date.now()+maxExecutionTime;const bestPath=[{oldPos:-1,lastComponent:void 0}];let newPos=this.extractCommon(bestPath[0],newTokens,oldTokens,0,options);if(bestPath[0].oldPos+1>=oldLen&&newPos+1>=newLen){return done(this.buildValues(bestPath[0].lastComponent,newTokens,oldTokens))}
1092let minDiagonalToConsider=-Infinity,maxDiagonalToConsider=Infinity;const execEditLength=()=>{for(let diagonalPath=Math.max(minDiagonalToConsider,-editLength);diagonalPath<=Math.min(maxDiagonalToConsider,editLength);diagonalPath+=2){let basePath;const removePath=bestPath[diagonalPath-1],addPath=bestPath[diagonalPath+1];if(removePath){bestPath[diagonalPath-1]=void 0}
1093let canAdd=!1;if(addPath){const addPathNewPos=addPath.oldPos-diagonalPath;canAdd=addPath&&0<=addPathNewPos&&addPathNewPos<newLen}
1094const canRemove=removePath&&removePath.oldPos+1<oldLen;if(!canAdd&&!canRemove){bestPath[diagonalPath]=void 0;continue}
1095if(!canRemove||canAdd&&removePath.oldPos<addPath.oldPos){basePath=this.addToPath(addPath,!0,!1,0,options)}else{basePath=this.addToPath(removePath,!1,!0,1,options)}
1096newPos=this.extractCommon(basePath,newTokens,oldTokens,diagonalPath,options);if(basePath.oldPos+1>=oldLen&&newPos+1>=newLen){return done(this.buildValues(basePath.lastComponent,newTokens,oldTokens))||!0}else{bestPath[diagonalPath]=basePath;if(basePath.oldPos+1>=oldLen){maxDiagonalToConsider=Math.min(maxDiagonalToConsider,diagonalPath-1)}
1097if(newPos+1>=newLen){minDiagonalToConsider=Math.max(minDiagonalToConsider,diagonalPath+1)}}}
1098editLength++};if(callback){(function exec(){setTimeout(function(){if(editLength>maxEditLength||Date.now()>abortAfterTimestamp){return callback(void 0)}
1099if(!execEditLength()){exec()}},0)})()}else{while(editLength<=maxEditLength&&Date.now()<=abortAfterTimestamp){const ret=execEditLength();if(ret){return ret}}}}
1100addToPath(path,added,removed,oldPosInc,options){const last2=path.lastComponent;if(last2&&!options.oneChangePerToken&&last2.added===added&&last2.removed===removed){return{oldPos:path.oldPos+oldPosInc,lastComponent:{count:last2.count+1,added,removed,previousComponent:last2.previousComponent}}}else{return{oldPos:path.oldPos+oldPosInc,lastComponent:{count:1,added,removed,previousComponent:last2}}}}
1101extractCommon(basePath,newTokens,oldTokens,diagonalPath,options){const newLen=newTokens.length,oldLen=oldTokens.length;let oldPos=basePath.oldPos,newPos=oldPos-diagonalPath,commonCount=0;while(newPos+1<newLen&&oldPos+1<oldLen&&this.equals(oldTokens[oldPos+1],newTokens[newPos+1],options)){newPos++;oldPos++;commonCount++;
1101if(options.oneChangePerToken){basePath.lastComponent={count:1,previousComponent:basePath.lastComponent,added:!1,removed:!1}}}
1102if(commonCount&&!options.oneChangePerToken){basePath.lastComponent={count:commonCount,previousComponent:basePath.lastComponent,added:!1,removed:!1}}
1103basePath.oldPos=oldPos;return newPos}
1104equals(left,right,options){if(options.comparator){return options.comparator(left,right)}else{return left===right||!!options.ignoreCase&&left.toLowerCase()===right.toLowerCase()}}
1105removeEmpty(array){const ret=[];for(let i=0;i<array.length;i++){if(array[i]){ret.push(array[i])}}
1106return ret}
1107castInput(value,options){return value}
1108tokenize(value,options){return Array.from(value)}
1109join(chars){return chars.join("")}
1110postProcess(changeObjects,options){return changeObjects}
1111get useLongestToken(){return!1}
1112buildValues(lastComponent,newTokens,oldTokens){const components=[];let nextComponent;while(lastComponent){components.push(lastComponent);nextComponent=lastComponent.previousComponent;delete lastComponent.previousComponent;lastComponent=nextComponent}
1113components.reverse();const componentLen=components.length;let componentPos=0,newPos=0,oldPos=0;for(;componentPos<componentLen;componentPos++){const component=components[componentPos];if(!component.removed){if(!component.added&&this.useLongestToken){let value=newTokens.slice(newPos,newPos+component.count);value=value.map(function(value2,i){const oldValue=oldTokens[oldPos+i];return oldValue.length>value2.length?oldValue:value2});component.value=this.join(value)}else{component.value=this.join(newTokens.slice(newPos,newPos+component.count))}
1114newPos+=component.count;if(!component.added){oldPos+=component.count}}else{component.value=this.join(oldTokens.slice(oldPos,oldPos+component.count));oldPos+=component.count}}
1115return components}};var CharacterDiff=class extends Diff{};var characterDiff=new CharacterDiff();function diffChars(oldStr,newStr,options){return characterDiff.diff(oldStr,newStr,options)}
1116var LineDiff=class extends Diff{constructor(){super(...arguments);this.tokenize=tokenize}
1117equals(left,right,options){if(options.ignoreWhitespace){if(!options.newlineIsToken||!left.includes("\n")){left=left.trim()}
1118if(!options.newlineIsToken||!right.includes("\n")){right=right.trim()}}else if(options.ignoreNewlineAtEof&&!options.newlineIsToken){if(left.endsWith("\n")){left=left.slice(0,-1)}
1119if(right.endsWith("\n")){right=right.slice(0,-1)}}
1120return super.equals(left,right,options)}};var lineDiff=new LineDiff();function diffLines(oldStr,newStr,options){return lineDiff.diff(oldStr,newStr,options)}
1121function tokenize(value,options){if(options.stripTrailingCr){value=value.replace(/\r\n/g,"\n")}
1122const retLines=[],linesAndNewlines=value.split(/(\n|\r\n)/);if(!linesAndNewlines[linesAndNewlines.length-1]){linesAndNewlines.pop()}
1123for(let i=0;i<linesAndNewlines.length;i++){const line=linesAndNewlines[i];if(i%2&&!options.newlineIsToken){retLines[retLines.length-1]+=line}else{retLines.push(line)}}
1124return retLines}
1125var import_es64=__toESM(require_es6(),1);var import_es63=__toESM(require_es6(),1);function cloneDeep(value){return JSON.parse(JSON.stringify(value))}
1126var AttributeMap;((AttributeMap2)=>{function compose3(a={},b={},keepNull=!1){if(typeof a!=="object"){a={}}
1127if(typeof b!=="object"){b={}}
1128let attributes=cloneDeep(b);if(!keepNull){attributes=Object.keys(attributes).reduce((copy2,key)=>{if(attributes[key]!==null||attributes[key]!==void 0){copy2[key]=attributes[key]}
1129return copy2},{})}
1130for(const key in a){if(a[key]!==void 0&&b[key]===void 0){attributes[key]=a[key]}}
1131return Object.keys(attributes).length>0?attributes:void 0}
1132AttributeMap2.compose=compose3;function diff(a={},b={}){if(typeof a!=="object"){a={}}
1133if(typeof b!=="object"){b={}}
1134const attributes=Object.keys(a).concat(Object.keys(b)).reduce((attrs,key)=>{if(!(0,import_es63.default)(a[key],b[key])){attrs[key]=b[key]===void 0?null:b[key]}
1135return attrs},{});return Object.keys(attributes).length>0?attributes:void 0}
1136AttributeMap2.diff=diff;function invert(attr={},base={}){attr=attr||{};const baseInverted=Object.keys(base).reduce((memo,key)=>{if(base[key]!==attr[key]&&attr[key]!==void 0){memo[key]=base[key]}
1137return memo},{});return Object.keys(attr).reduce((memo,key)=>{if(attr[key]!==base[key]&&base[key]===void 0){memo[key]=null}
1138return memo},baseInverted)}
1139AttributeMap2.invert=invert;function transform(a,b,priority=!1){if(typeof a!=="object"){return b}
1140if(typeof b!=="object"){return void 0}
1141if(!priority){return b}
1142const attributes=Object.keys(b).reduce((attrs,key)=>{if(a[key]===void 0){attrs[key]=b[key]}
1143return attrs},{});return Object.keys(attributes).length>0?attributes:void 0}
1144AttributeMap2.transform=transform})(AttributeMap||(AttributeMap={}));var AttributeMap_default=AttributeMap;var Op;((Op2)=>{function length2(op){if(typeof op.delete==="number"){return op.delete}else if(typeof op.retain==="number"){return op.retain}else if(typeof op.retain==="object"&&op.retain!==null){return 1}
1145return typeof op.insert==="string"?op.insert.length:1}
1146Op2.length=length2})(Op||(Op={}));var Op_default=Op;var Iterator2=class{ops;index;offset;constructor(ops){this.ops=ops;this.index=0;this.offset=0}
1147hasNext(){return this.peekLength()<Infinity}
1148next(length2){if(!length2){length2=Infinity}
1149const nextOp=this.ops[this.index];if(nextOp){const offset=this.offset;const opLength=Op_default.length(nextOp);if(length2>=opLength-offset){length2=opLength-offset;this.index+=1;this.offset=0}else{this.offset+=length2}
1150if(typeof nextOp.delete==="number"){return{delete:length2}}
1151const retOp={};if(nextOp.attributes){retOp.attributes=nextOp.attributes}
1152if(typeof nextOp.retain==="number"){retOp.retain=length2}else if(typeof nextOp.retain==="object"&&nextOp.retain!==null){retOp.retain=nextOp.retain}else if(typeof nextOp.insert==="string"){retOp.insert=nextOp.insert.substr(offset,length2)}else{retOp.insert=nextOp.insert}
1153return retOp}
1154return{retain:Infinity}}
1155peek(){return this.ops[this.index]}
1156peekLength(){if(this.ops[this.index]){return Op_default.length(this.ops[this.index])-this.offset}
1157return Infinity}
1158peekType(){const op=this.ops[this.index];if(op){if(typeof op.delete==="number"){return"delete"}else if(typeof op.retain==="number"||typeof op.retain==="object"&&op.retain!==null){return"retain"}
1159return"insert"}
1160return"retain"}
1161rest(){if(!this.hasNext()){return[]}else if(this.offset===0){return this.ops.slice(this.index)}
1162const offset=this.offset;const index=this.index;const next=this.next();const rest=this.ops.slice(this.index);this.offset=offset;this.index=index;return[next].concat(rest)}};function cloneDeep2(value){return JSON.parse(JSON.stringify(value))}
1163var NULL_CHARACTER=String.fromCharCode(0);var STRING_TOO_LARGE_THRESHOLD=1e4;function normalizeChangeCounts(changes){return changes.map((change)=>({...change,count:change.value.length}))}
1164var getEmbedTypeAndData=(a,b)=>{if(typeof a!=="object"||a===null){throw new Error(`cannot retain a ${typeof a}`)}
1165if(typeof b!=="object"||b===null){throw new Error(`cannot retain a ${typeof b}`)}
1166const embedType=Object.keys(a)[0];if(!embedType||embedType!==Object.keys(b)[0]){throw new Error(`embed types not matched: ${embedType} != ${Object.keys(b)[0]}`)}
1167return[embedType,a[embedType],b[embedType]]};var Delta=class _Delta{static Op=Op_default;static OpIterator=Iterator2;static AttributeMap=AttributeMap_default;static handlers={};static registerEmbed(embedType,handler){this.handlers[embedType]=handler}
1168static unregisterEmbed(embedType){delete this.handlers[embedType]}
1169static getHandler(embedType){const handler=this.handlers[embedType];if(!handler){throw new Error(`no handlers for embed type "${embedType}"`)}
1170return handler}
1171ops;constructor(ops){if(Array.isArray(ops)){this.ops=ops}else if(ops!==null&&ops!==void 0&&Array.isArray(ops.ops)){this.ops=ops.ops}else{this.ops=[]}}
1172insert(arg,attributes){const newOp={};if(typeof arg==="string"&&arg.length===0){return this}
1173newOp.insert=arg;if(attributes!==null&&attributes!==void 0&&typeof attributes==="object"&&Object.keys(attributes).length>0){newOp.attributes=attributes}
1174return this.push(newOp)}
1175delete(length2){if(length2<=0){return this}
1176return this.push({delete:length2})}
1177retain(length2,attributes){if(typeof length2==="number"&&length2<=0){return this}
1178const newOp={retain:length2};if(attributes!==null&&attributes!==void 0&&typeof attributes==="object"&&Object.keys(attributes).length>0){newOp.attributes=attributes}
1179return this.push(newOp)}
1180push(newOp){let index=this.ops.length;let lastOp=this.ops[index-1];newOp=cloneDeep2(newOp);if(typeof lastOp==="object"){if(typeof newOp.delete==="number"&&typeof lastOp.delete==="number"){this.ops[index-1]={delete:lastOp.delete+newOp.delete};return this}
1181if(typeof lastOp.delete==="number"&&newOp.insert!==null&&newOp.insert!==void 0){index-=1;lastOp=this.ops[index-1];if(typeof lastOp!=="object"){this.ops.unshift(newOp);return this}}
1182if((0,import_es64.default)(newOp.attributes,lastOp.attributes)){if(typeof newOp.insert==="string"&&typeof lastOp.insert==="string"){this.ops[index-1]={insert:lastOp.insert+newOp.insert};if(typeof newOp.attributes==="object"){this.ops[index-1].attributes=newOp.attributes}
1183return this}else if(typeof newOp.retain==="number"&&typeof lastOp.retain==="number"){this.ops[index-1]={retain:lastOp.retain+newOp.retain};if(typeof newOp.attributes==="object"){this.ops[index-1].attributes=newOp.attributes}
1184return this}}}
1185if(index===this.ops.length){this.ops.push(newOp)}else{this.ops.splice(index,0,newOp)}
1186return this}
1187chop(){const lastOp=this.ops[this.ops.length-1];if(lastOp&&typeof lastOp.retain==="number"&&!lastOp.attributes){this.ops.pop()}
1188return this}
1189filter(predicate){return this.ops.filter(predicate)}
1190forEach(predicate){this.ops.forEach(predicate)}
1191map(predicate){return this.ops.map(predicate)}
1192partition(predicate){const passed=[];const failed=[];this.forEach((op)=>{const target=predicate(op)?passed:failed;target.push(op)});return[passed,failed]}
1193reduce(predicate,initialValue){return this.ops.reduce(predicate,initialValue)}
1194changeLength(){return this.reduce((length2,elem)=>{if(elem.insert){return length2+Op_default.length(elem)}else if(elem.delete){return length2-elem.delete}
1195return length2},0)}
1196length(){return this.reduce((length2,elem)=>{return length2+Op_default.length(elem)},0)}
1197slice(start=0,end=Infinity){const ops=[];const iter=new Iterator2(this.ops);let index=0;while(index<end&&iter.hasNext()){let nextOp;if(index<start){nextOp=iter.next(start-index)}else{nextOp=iter.next(end-index);ops.push(nextOp)}
1198index+=Op_default.length(nextOp)}
1199return new _Delta(ops)}
1200compose(other){const thisIter=new Iterator2(this.ops);const otherIter=new Iterator2(other.ops);const ops=[];const firstOther=otherIter.peek();if(firstOther!==null&&firstOther!==void 0&&typeof firstOther.retain==="number"&&(firstOther.attributes===null||firstOther.attributes===void 0)){let firstLeft=firstOther.retain;while(thisIter.peekType()==="insert"&&thisIter.peekLength()<=firstLeft){firstLeft-=thisIter.peekLength();ops.push(thisIter.next())}
1201if(firstOther.retain-firstLeft>0){otherIter.next(firstOther.retain-firstLeft)}}
1202const delta=new _Delta(ops);while(thisIter.hasNext()||otherIter.hasNext()){if(otherIter.peekType()==="insert"){delta.push(otherIter.next())}else if(thisIter.peekType()==="delete"){delta.push(thisIter.next())}else{const length2=Math.min(thisIter.peekLength(),otherIter.peekLength());const thisOp=thisIter.next(length2);const otherOp=otherIter.next(length2);
1202if(otherOp.retain){const newOp={};if(typeof thisOp.retain==="number"){newOp.retain=typeof otherOp.retain==="number"?length2:otherOp.retain}else if(typeof otherOp.retain==="number"){if(thisOp.retain===null||thisOp.retain===void 0){newOp.insert=thisOp.insert}else{newOp.retain=thisOp.retain}}else{const action=thisOp.retain===null||thisOp.retain===void 0?"insert":"retain";const[embedType,thisData,otherData]=getEmbedTypeAndData(thisOp[action],otherOp.retain);const handler=_Delta.getHandler(embedType);newOp[action]={[embedType]:handler.compose(thisData,otherData,action==="retain")}}
1203const attributes=AttributeMap_default.compose(thisOp.attributes,otherOp.attributes,typeof thisOp.retain==="number");if(attributes){newOp.attributes=attributes}
1204delta.push(newOp);if(!otherIter.hasNext()&&(0,import_es64.default)(delta.ops[delta.ops.length-1],newOp)){const rest=new _Delta(thisIter.rest());return delta.concat(rest).chop()}}else if(typeof otherOp.delete==="number"&&(typeof thisOp.retain==="number"||typeof thisOp.retain==="object"&&thisOp.retain!==null)){delta.push(otherOp)}}}
1205return delta.chop()}
1206concat(other){const delta=new _Delta(this.ops.slice());if(other.ops.length>0){delta.push(other.ops[0]);delta.ops=delta.ops.concat(other.ops.slice(1))}
1207return delta}
1208diff(other){if(this.ops===other.ops){return new _Delta()}
1209const strings=this.deltasToStrings(other);const diffResult=normalizeChangeCounts(diffChars(strings[0],strings[1]));const thisIter=new Iterator2(this.ops);const otherIter=new Iterator2(other.ops);const retDelta=this.convertChangesToDelta(diffResult,thisIter,otherIter);return retDelta.chop()}
1210eachLine(predicate,newline="\n"){const iter=new Iterator2(this.ops);let line=new _Delta();let i=0;while(iter.hasNext()){if(iter.peekType()!=="insert"){return}
1211const thisOp=iter.peek();const start=Op_default.length(thisOp)-iter.peekLength();const index=typeof thisOp.insert==="string"?thisOp.insert.indexOf(newline,start)-start:-1;if(index<0){line.push(iter.next())}else if(index>0){line.push(iter.next(index))}else{if(predicate(line,iter.next(1).attributes||{},i)===!1){return}
1212i+=1;line=new _Delta()}}
1213if(line.length()>0){predicate(line,{},i)}}
1214invert(base){const inverted=new _Delta();this.reduce((baseIndex,op)=>{if(op.insert){inverted.delete(Op_default.length(op))}else if(typeof op.retain==="number"&&(op.attributes===null||op.attributes===void 0)){inverted.retain(op.retain);return baseIndex+op.retain}else if(op.delete||typeof op.retain==="number"){const length2=op.delete||op.retain;const slice=base.slice(baseIndex,baseIndex+length2);slice.forEach((baseOp)=>{if(op.delete){inverted.push(baseOp)}else if(op.retain&&op.attributes){inverted.retain(Op_default.length(baseOp),AttributeMap_default.invert(op.attributes,baseOp.attributes))}});return baseIndex+length2}else if(typeof op.retain==="object"&&op.retain!==null){const slice=base.slice(baseIndex,baseIndex+1);const baseOp=new Iterator2(slice.ops).next();const[embedType,opData,baseOpData]=getEmbedTypeAndData(op.retain,baseOp.insert);const handler=_Delta.getHandler(embedType);inverted.retain({[embedType]:handler.invert(opData,baseOpData)},AttributeMap_default.invert(op.attributes,baseOp.attributes));return baseIndex+1}
1215return baseIndex},0);return inverted.chop()}
1216transform(arg,priority=!1){priority=!!priority;if(typeof arg==="number"){return this.transformPosition(arg,priority)}
1217const other=arg;const thisIter=new Iterator2(this.ops);const otherIter=new Iterator2(other.ops);const delta=new _Delta();while(thisIter.hasNext()||otherIter.hasNext()){if(thisIter.peekType()==="insert"&&(priority||otherIter.peekType()!=="insert")){delta.retain(Op_default.length(thisIter.next()))}else if(otherIter.peekType()==="insert"){delta.push(otherIter.next())}else{const length2=Math.min(thisIter.peekLength(),otherIter.peekLength());const thisOp=thisIter.next(length2);const otherOp=otherIter.next(length2);if(thisOp.delete){continue}else if(otherOp.delete){delta.push(otherOp)}else{const thisData=thisOp.retain;const otherData=otherOp.retain;let transformedData=typeof otherData==="object"&&otherData!==null?otherData:length2;if(typeof thisData==="object"&&thisData!==null&&typeof otherData==="object"&&otherData!==null){const embedType=Object.keys(thisData)[0];if(embedType===Object.keys(otherData)[0]){const handler=_Delta.getHandler(embedType);if(handler){transformedData={[embedType]:handler.transform(thisData[embedType],otherData[embedType],priority)}}}}
1218delta.retain(transformedData,AttributeMap_default.transform(thisOp.attributes,otherOp.attributes,priority))}}}
1219return delta.chop()}
1220transformPosition(index,priority=!1){priority=!!priority;
1220const thisIter=new Iterator2(this.ops);let offset=0;while(thisIter.hasNext()&&offset<=index){const length2=thisIter.peekLength();const nextType=thisIter.peekType();thisIter.next();if(nextType==="delete"){index-=Math.min(length2,index-offset);continue}else if(nextType==="insert"&&(offset<index||!priority)){index+=length2}
1221offset+=length2}
1222return index}
1223diffWithCursor(other,cursorAfterChange){if(this.ops===other.ops){return new _Delta()}
1224const strings=this.deltasToStrings(other);const maxStringLength=Math.max(...strings.map((str)=>str.length));if(maxStringLength>STRING_TOO_LARGE_THRESHOLD){const diffResult=normalizeChangeCounts(diffLines(strings[0],strings[1]));const thisIterLarge=new Iterator2(this.ops);const otherIterLarge=new Iterator2(other.ops);return this.convertChangesToDelta(diffResult,thisIterLarge,otherIterLarge).chop()}else if(cursorAfterChange===null){return this.diff(other)}
1225let diffs=normalizeChangeCounts(diffChars(strings[0],strings[1]));let lastDiffPosition=0;const adjustedDiffs=[];for(let i=0;i<diffs.length;i++){const diff=diffs[i];const segmentStart=lastDiffPosition;const segmentEnd=lastDiffPosition+(diff.count??0);const isCursorInSegment=cursorAfterChange>segmentStart&&cursorAfterChange<=segmentEnd;const isUnchangedSegment=!diff.added&&!diff.removed;const isRemovalSegment=diff.removed&&!diff.added;const nextDiff=diffs[i+1];const isNextDiffAnInsert=nextDiff&&nextDiff.added&&!nextDiff.removed;if(isUnchangedSegment&&isCursorInSegment&&isNextDiffAnInsert){const movedSegments=this.tryMoveInsertionToCursor(diff,nextDiff,cursorAfterChange,segmentStart);if(movedSegments){adjustedDiffs.push(...movedSegments);i++;lastDiffPosition=segmentEnd;continue}}
1226if(isRemovalSegment){const movedSegments=this.tryMoveDeletionToCursor(diff,adjustedDiffs,cursorAfterChange,lastDiffPosition);if(movedSegments){adjustedDiffs.pop();adjustedDiffs.push(...movedSegments);lastDiffPosition+=diff.count??0;continue}}
1227adjustedDiffs.push(diff);if(!diff.added){lastDiffPosition+=diff.count??0}}
1228diffs=adjustedDiffs;const thisIter=new Iterator2(this.ops);const otherIter=new Iterator2(other.ops);const retDelta=this.convertChangesToDelta(diffs,thisIter,otherIter);return retDelta.chop()}
1229tryMoveInsertionToCursor(diff,nextDiff,cursorAfterChange,segmentStart){const nextDiffInsert=nextDiff.value;const insertLength=nextDiffInsert.length;const insertOffset=cursorAfterChange-segmentStart-insertLength;const textAtCursor=diff.value.substring(insertOffset,insertOffset+nextDiffInsert.length);const isInsertMoveable=textAtCursor===nextDiffInsert;if(!isInsertMoveable){return null}
1230const beforeCursor=diff.value.substring(0,insertOffset);const afterCursor=diff.value.substring(insertOffset);const result=[];if(beforeCursor.length>0){result.push({value:beforeCursor,count:beforeCursor.length,added:!1,removed:!1})}
1231result.push(nextDiff);if(afterCursor.length>0){result.push({value:afterCursor,count:afterCursor.length,added:!1,removed:!1})}
1232return result}
1233tryMoveDeletionToCursor(diff,adjustedDiffs,cursorAfterChange,lastDiffPosition){const prevDiff=adjustedDiffs[adjustedDiffs.length-1];if(!prevDiff||prevDiff.added||prevDiff.removed){return null}
1234const prevSegmentStart=lastDiffPosition-(prevDiff.count??0);const prevSegmentEnd=lastDiffPosition;if(cursorAfterChange<prevSegmentStart||cursorAfterChange>=prevSegmentEnd){return null}
1235const deletedChars=diff.value;const deleteOffset=cursorAfterChange-prevSegmentStart;const textAtCursor=prevDiff.value.substring(deleteOffset,deleteOffset+deletedChars.length);const canBePlacedHere=textAtCursor===deletedChars;if(!canBePlacedHere){return null}
1236const beforeCursor=prevDiff.value.substring(0,deleteOffset);const atAndAfterCursor=prevDiff.value.substring(deleteOffset);const deletionLength=diff.count??0;const afterDeletion=atAndAfterCursor.substring(deletionLength);const result=[];if(beforeCursor.length>0){result.push({value:beforeCursor,count:beforeCursor.length,added:!1,removed:!1})}
1237result.push(diff);if(afterDeletion.length>0){result.push({value:afterDeletion,count:afterDeletion.length,added:!1,removed:!1})}
1238return result}
1239deltasToStrings(other){return[this,other].map((delta)=>{return delta.map((op)=>{if(op.insert!==null||op.insert!==void 0){return typeof op.insert==="string"?op.insert:NULL_CHARACTER}
1240const prep=delta===other?"on":"with";throw new Error("diff() called "+prep+" non-document")}).join("")})}
1241convertChangesToDelta(changes,thisIter,otherIter){const retDelta=new _Delta();
1241changes.forEach((component)=>{let length2=component.count??0;while(length2>0){let opLength=0;if(component.added){opLength=Math.min(otherIter.peekLength(),length2);retDelta.push(otherIter.next(opLength))}else if(component.removed){opLength=Math.min(length2,thisIter.peekLength());thisIter.next(opLength);retDelta.delete(opLength)}else{opLength=Math.min(thisIter.peekLength(),otherIter.peekLength(),length2);const thisOp=thisIter.next(opLength);const otherOp=otherIter.next(opLength);if((0,import_es64.default)(thisOp.insert,otherOp.insert)){retDelta.retain(opLength,AttributeMap_default.diff(thisOp.attributes,otherOp.attributes))}else{retDelta.push(otherOp).delete(opLength)}}
1242length2-=opLength}});return retDelta}};var Delta_default=Delta;var privateApis={};lock(privateApis,{ConnectionErrorCode,createSyncManager,Delta:Delta_default,CRDT_DOC_META_PERSISTENCE_KEY,CRDT_RECORD_MAP_KEY,LOCAL_EDITOR_ORIGIN,LOCAL_UNDO_IGNORED_ORIGIN,retrySyncConnection:()=>pollingManager.retryNow()});var import_private_apis3=__toESM(require_private_apis(),1);var{lock:lock2,unlock:unlock2}=(0,import_private_apis3.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.","@wordpress/core-data");var{ConnectionErrorCode:ConnectionErrorCode2,createSyncManager:createSyncManager2,Delta:Delta2,CRDT_DOC_META_PERSISTENCE_KEY:CRDT_DOC_META_PERSISTENCE_KEY2,CRDT_RECORD_MAP_KEY:CRDT_RECORD_MAP_KEY2,LOCAL_EDITOR_ORIGIN:LOCAL_EDITOR_ORIGIN2,LOCAL_UNDO_IGNORED_ORIGIN:LOCAL_UNDO_IGNORED_ORIGIN2,retrySyncConnection}=unlock2(privateApis);var syncManager;function getSyncManager(){if(syncManager){return syncManager}
1243syncManager=createSyncManager2();return syncManager}
1244function hasSyncManager(){return Boolean(syncManager)}
1245var SYNC_SAVE_API_PATH="/wp-sync/v1/save";var saveCRDTDocQueues=new Map();async function serializeAndSaveCRDTDoc(objectType,objectId,room){const serializedDoc=await getSyncManager()?.createPersistedCRDTDoc(objectType,objectId);if(!serializedDoc){return}
1246await(0,import_api_fetch2.default)({path:SYNC_SAVE_API_PATH,method:"POST",data:{room,doc:serializedDoc}})}
1247async function saveCRDTDoc(objectType,objectId){const room=`${objectType}:${objectId}`;const previousSave=saveCRDTDocQueues.get(room)||Promise.resolve();const currentSave=previousSave.catch(()=>{}).then(()=>serializeAndSaveCRDTDoc(objectType,objectId,room));saveCRDTDocQueues.set(room,currentSave);try{await currentSave}finally{if(saveCRDTDocQueues.get(room)===currentSave){saveCRDTDocQueues.delete(room)}}}
1248function receiveItems(items2,edits,meta){return{type:"RECEIVE_ITEMS",items:items2,persistedEdits:edits,meta}}
1249function removeItems(kind,name,records,invalidateCache=!1){return{type:"REMOVE_ITEMS",itemIds:Array.isArray(records)?records:[records],kind,name,invalidateCache}}
1250function receiveQueriedItems(items2,query={},edits,meta){return{...receiveItems(items2,edits,meta),query}}
1251var import_equivalent_key_map=__toESM(require_equivalent_key_map(),1);var import_url=__toESM(require_url(),1);function getQueryParts(query){const parts={stableKey:"",page:1,perPage:10,offset:null,fields:null,include:null,context:"default"};const keys2=Object.keys(query).sort();for(let i=0;i<keys2.length;i++){const key=keys2[i];let value=query[key];switch(key){case "page":parts[key]=Number(value);break;case "per_page":parts.perPage=Number(value);break;case "offset":{const numericOffset=Number(value);if(Number.isFinite(numericOffset)){parts.offset=numericOffset}
1252break}
1253case "context":parts.context=value;break;default:if(key==="_fields"){parts.fields=get_normalized_comma_separable_default(value)??[];value=parts.fields.join()}
1254if(key==="include"){if(typeof value==="number"){value=value.toString()}
1255parts.include=(get_normalized_comma_separable_default(value)??[]).map(Number);value=parts.include.join()}
1256parts.stableKey+=(parts.stableKey?"&":"")+(0,import_url.addQueryArgs)("",{[key]:value}).slice(1)}}
1257return parts}
1258var get_query_parts_default=with_weak_map_cache_default(getQueryParts);var queriedItemsCacheByState=new WeakMap();function getQueriedItemsUncached(state,query,options={}){const{supportsPagination=!0}
1258=options;const{stableKey,page,perPage,offset:queryOffset,include,fields,context}=get_query_parts_default(query);const itemIds=state.queries?.[context]?.[stableKey]?.itemIds;if(!itemIds){return null}
1259const isPaginated=supportsPagination&&perPage!==-1;const startOffset=isPaginated?queryOffset??(page-1)*perPage:0;const endOffset=isPaginated?Math.min(startOffset+perPage,itemIds.length):itemIds.length;if(isPaginated&&itemIds.length<startOffset+perPage){const totalItems=state.queries[context][stableKey].meta?.totalItems;if(Number.isFinite(totalItems)&&itemIds.length<totalItems){return null}}
1260const items2=[];for(let i=startOffset;i<endOffset;i++){const itemId=itemIds[i];if(Array.isArray(include)&&!include.includes(itemId)){continue}
1261if(itemId===void 0){continue}
1262if(!state.items[context]?.hasOwnProperty(itemId)){return null}
1263const item=state.items[context][itemId];let filteredItem;if(Array.isArray(fields)){filteredItem={};for(let f=0;f<fields.length;f++){const field=fields[f].split(".");let value=item;field.forEach((fieldName)=>{value=value?.[fieldName]});setNestedValue(filteredItem,field,value)}}else{if(!state.itemIsComplete[context]?.[itemId]){return null}
1264filteredItem=item}
1265items2.push(filteredItem)}
1266return items2}
1267function getQueriedItems(state,query={},options={}){let queriedItemsCache=queriedItemsCacheByState.get(state);if(queriedItemsCache){const queriedItems=queriedItemsCache.get(query);if(queriedItems!==void 0){return queriedItems}}else{queriedItemsCache=new import_equivalent_key_map.default();queriedItemsCacheByState.set(state,queriedItemsCache)}
1268const items2=getQueriedItemsUncached(state,query,options);queriedItemsCache.set(query,items2);return items2}
1269function getQueriedTotalItems(state,query={}){const{stableKey,context}=get_query_parts_default(query);return state.queries?.[context]?.[stableKey]?.meta?.totalItems??null}
1270function getQueriedTotalPages(state,query={}){const{stableKey,context}=get_query_parts_default(query);return state.queries?.[context]?.[stableKey]?.meta?.totalPages??null}
1271var import_data6=__toESM(require_data(),1);var import_compose=__toESM(require_compose(),1);var __assign=function(){__assign=Object.assign||function __assign2(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}
1272return t};return __assign.apply(this,arguments)};function lowerCase(str){return str.toLowerCase()}
1273var DEFAULT_SPLIT_REGEXP=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g];var DEFAULT_STRIP_REGEXP=/[^A-Z0-9]+/gi;function noCase(input,options){if(options===void 0){options={}}
1274var _a=options.splitRegexp,splitRegexp=_a===void 0?DEFAULT_SPLIT_REGEXP:_a,_b=options.stripRegexp,stripRegexp=_b===void 0?DEFAULT_STRIP_REGEXP:_b,_c=options.transform,transform=_c===void 0?lowerCase:_c,_d=options.delimiter,delimiter=_d===void 0?" ":_d;var result=replace(replace(input,splitRegexp,"$1\0$2"),stripRegexp,"\0");var start=0;var end=result.length;while(result.charAt(start)==="\0")
1275start++;while(result.charAt(end-1)==="\0")
1276end--;return result.slice(start,end).split("\0").map(transform).join(delimiter)}
1277function replace(input,re,value){if(re instanceof RegExp)
1278return input.replace(re,value);return re.reduce(function(input2,re2){return input2.replace(re2,value)},input)}
1279function pascalCaseTransform(input,index){var firstChar=input.charAt(0);var lowerChars=input.substr(1).toLowerCase();if(index>0&&firstChar>="0"&&firstChar<="9"){return"_"+firstChar+lowerChars}
1280return""+firstChar.toUpperCase()+lowerChars}
1281function pascalCase(input,options){if(options===void 0){options={}}
1282return noCase(input,__assign({delimiter:"",transform:pascalCaseTransform},options))}
1283function camelCaseTransform(input,index){if(index===0)
1284return input.toLowerCase();return pascalCaseTransform(input,index)}
1285function camelCase(input,options){if(options===void 0){options={}}
1286return pascalCase(input,__assign({transform:camelCaseTransform},options))}
1287function upperCaseFirst(input){return input.charAt(0).toUpperCase()+input.substr(1)}
1288function capitalCaseTransform(input){return upperCaseFirst(input.toLowerCase())}
1289function capitalCase(input,options){if(options===void 0){options={}}
1290return noCase(input,__assign({delimiter:" ",transform:capitalCaseTransform},options))}
1291var import_api_fetch3=__toESM(require_api_fetch(),1);
1291var import_blocks4=__toESM(require_blocks(),1);var import_i18n=__toESM(require_i18n(),1);var import_data4=__toESM(require_data(),1);var import_block_editor3=__toESM(require_block_editor(),1);var import_data=__toESM(require_data(),1);var AWARENESS_CURSOR_UPDATE_THROTTLE_IN_MS=100;var LOCAL_CURSOR_UPDATE_DEBOUNCE_IN_MS=5;var REMOVAL_DELAY_IN_MS=5e3;function getBrowserName(){const userAgent=window.navigator.userAgent;let browserName="Unknown";if(userAgent.includes("Firefox")){browserName="Firefox"}else if(userAgent.includes("Edg")){browserName="Microsoft Edge"}else if(userAgent.includes("Chrome")&&!userAgent.includes("Edg")){browserName="Chrome"}else if(userAgent.includes("Safari")&&!userAgent.includes("Chrome")){browserName="Safari"}else if(userAgent.includes("MSIE")||userAgent.includes("Trident")){browserName="Internet Explorer"}else if(userAgent.includes("Opera")||userAgent.includes("OPR")){browserName="Opera"}
1292return browserName}
1293function areMapsEqual(map1,map2,comparatorFn){if(map1.size!==map2.size){return!1}
1294for(const[key,value1]of map1.entries()){if(!map2.has(key)){return!1}
1295if(!comparatorFn(value1,map2.get(key))){return!1}}
1296return!0}
1297function areCollaboratorInfosEqual(collaboratorInfo1,collaboratorInfo2){if(!collaboratorInfo1||!collaboratorInfo2){return collaboratorInfo1===collaboratorInfo2}
1298if(Object.keys(collaboratorInfo1).length!==Object.keys(collaboratorInfo2).length){return!1}
1299return Object.entries(collaboratorInfo1).every(([key,value])=>{return value===collaboratorInfo2[key]})}
1300function generateCollaboratorInfo(currentCollaborator){const{avatar_urls,id:id2,name,slug}=currentCollaborator;return{avatar_urls,browserType:getBrowserName(),enteredAt:Date.now(),id:id2,name,slug}}
1301function getRecordValue(obj,key){if("object"===typeof obj&&null!==obj&&key in obj){return obj[key]}
1302return null}
1303function getTypedKeys(obj){return Object.keys(obj)}
1304var TypedAwareness=class extends Awareness{getStates(){return super.getStates()}
1305getLocalStateField(field){const state=this.getLocalState();return getRecordValue(state,field)}
1306setLocalStateField(field,value){super.setLocalStateField(field,value)}};var AwarenessWithEqualityChecks=class extends TypedAwareness{setLocalStateField(field,value){if(this.isFieldEqual(field,value,this.getLocalStateField(field)??void 0)){return}
1307super.setLocalStateField(field,value)}
1308isFieldEqual(field,value1,value2){if(["clientId","isConnected","isMe"].includes(field)){return value1===value2}
1309if(field in this.equalityFieldChecks){const fn=this.equalityFieldChecks[field];return fn(value1,value2)}
1310throw new Error(`No equality check implemented for awareness state field "${field.toString()}".`)}
1311isStateEqual(state1,state2){return[...new Set([...getTypedKeys(state1),...getTypedKeys(state2)])].every((field)=>{const value1=state1[field];const value2=state2[field];return this.isFieldEqual(field,value1,value2)})}};var AwarenessState=class extends AwarenessWithEqualityChecks{hasSetupRun=!1;disconnectedCollaborators=new Set();seenStates=new Map();previousSnapshot=new Map();stateSubscriptions=[];myThrottledState={};throttleTimeouts=new Map();setUp=()=>{if(this.hasSetupRun){return}
1312this.hasSetupRun=!0;this.onSetUp();this.on("change",({added,removed,updated})=>{[...added,...updated].forEach((id2)=>{this.disconnectedCollaborators.delete(id2)});removed.forEach((id2)=>{this.disconnectedCollaborators.add(id2);setTimeout(()=>{this.disconnectedCollaborators.delete(id2);this.updateSubscribers(!0)},REMOVAL_DELAY_IN_MS)});this.updateSubscribers()})};getCurrentState(){return Array.from(this.previousSnapshot.values())}
1313getSeenStates(){return this.seenStates}
1314onStateChange(callback){this.stateSubscriptions.push(callback);return()=>{this.stateSubscriptions=this.stateSubscriptions.filter((cb)=>cb!==callback)}}
1315setThrottledLocalStateField(field,value,wait){this.setLocalStateField(field,value);this.throttleTimeouts.set(field,setTimeout(()=>{this.throttleTimeouts.delete(field);if(this.myThrottledState[field]){this.setLocalStateField(field,this.myThrottledState[field]);delete this.myThrottledState[field]}},wait))}
1316setConnectionStatus(isConnected){if(isConnected){this.disconnectedCollaborators.delete(this.clientID)}else{this.disconnectedCollaborators.add(this.clientID)}
1317this.updateSubscribers(!0)}
1318updateSubscribers(forceUpdate=!1){if(!this.stateSubscriptions.length){return}
1319const states=this.getStates();this.seenStates=new Map([...this.seenStates.entries(),...states.entries()]);const updatedStates=new Map([...this.disconnectedCollaborators,...states.keys()].filter((clientId)=>{return Object.keys(this.seenStates.get(clientId)??{}).length>0}).map((clientId)=>{const rawState=this.seenStates.get(clientId);const isConnected=!this.disconnectedCollaborators.has(clientId);const isMe=clientId===this.clientID;const myState=isMe?this.myThrottledState:{};const state={...rawState,...myState,clientId,isConnected,isMe};return[clientId,state]}));
1319if(!forceUpdate){if(areMapsEqual(this.previousSnapshot,updatedStates,this.isStateEqual.bind(this))){return}}
1320this.previousSnapshot=updatedStates;this.stateSubscriptions.forEach((callback)=>{callback(Array.from(updatedStates.values()))})}};var STORE_NAME="core";var BaseAwarenessState=class extends AwarenessState{onSetUp(){void this.setCurrentCollaboratorInfo()}
1321async setCurrentCollaboratorInfo(){const currentUser2=await(0,import_data.resolveSelect)(STORE_NAME).getCurrentUser();const collaboratorInfo=generateCollaboratorInfo(currentUser2);this.setLocalStateField("collaboratorInfo",collaboratorInfo)}};var baseEqualityFieldChecks={collaboratorInfo:areCollaboratorInfosEqual};var BaseAwareness=class extends BaseAwarenessState{equalityFieldChecks=baseEqualityFieldChecks};var import_data2=__toESM(require_data(),1);var import_block_editor=__toESM(require_block_editor(),1);function getContainingBlockYMap(yType){let current=yType;while(current){const parent=current.parent;if(parent instanceof yjs_exports.Map&&parent.parent instanceof yjs_exports.Array&&parent.get("clientId")!==void 0&&parent.get("innerBlocks")instanceof yjs_exports.Array){return parent}
1322current=parent instanceof yjs_exports.AbstractType?parent:null}
1323return null}
1324function getBlockPathInYdoc(yType){const path=[];let current=yType;while(current){const parentArray=current.parent;if(!parentArray||!(parentArray instanceof yjs_exports.Array)){return null}
1325let index=-1;for(let i=0;i<parentArray.length;i++){if(parentArray.get(i)===current){index=i;break}}
1326if(index===-1){return null}
1327path.unshift(index);const grandparent=parentArray.parent;if(grandparent instanceof yjs_exports.Map&&grandparent.get("clientId")!==void 0){current=grandparent}else{break}}
1328return path}
1329function resolveBlockClientIdByPath(path,blocks){if(path.length===0){return null}
1330for(let i=0;i<path.length;i++){const block=blocks[path[i]];if(!block){return null}
1331if(i===path.length-1){return block.clientId}
1332blocks=block.innerBlocks}
1333return null}
1334function usePostContentBlocks(){return(0,import_data2.useSelect)((select4)=>{const{getBlocksByName,getClientIdsTree}=unlock2(select4(import_block_editor.store));const[postContentClientId]=getBlocksByName("core/post-content");return getClientIdsTree(postContentClientId??"")},[])}
1335var import_rich_text=__toESM(require_rich_text(),1);function getRootMap(doc2,key){return doc2.getMap(key)}
1336function createYMap(partial={}){return new yjs_exports.Map(Object.entries(partial))}
1337function isYMap(value){return value instanceof yjs_exports.Map}
1338function asRichTextOffset(offset){return offset}
1339function asHtmlStringIndex(index){return index}
1340function getYTextByAttributeKey(attributes,attributeKey){const directValue=attributes.get(attributeKey);if(directValue instanceof yjs_exports.Text){return directValue}
1341let value=attributes;for(const pathPart of attributeKey.split(".")){if(value instanceof yjs_exports.Map){value=value.get(pathPart)}else if(value instanceof yjs_exports.Array){const index=Number.parseInt(pathPart,10);if(!Number.isSafeInteger(index)||index<0||index.toString()!==pathPart){return null}
1342value=value.get(index)}else{return null}}
1343return value instanceof yjs_exports.Text?value:null}
1344function findBlockByClientIdInDoc(blockId,ydoc){const ymap=getRootMap(ydoc,CRDT_RECORD_MAP_KEY2);const blocks=ymap.get("blocks");if(!(blocks instanceof yjs_exports.Array)){return null}
1345return findBlockByClientIdInBlocks(blockId,blocks)}
1346var MARKER_START=57344;function pickMarker(text2){const tryCount=16;for(let code=MARKER_START;code<MARKER_START+tryCount;code++){const candidate=String.fromCharCode(code);if(!text2.includes(candidate)){return candidate}}
1347return null}
1348function htmlIndexToRichTextOffset(html,htmlIndex){if(!html.includes("<")&&!html.includes("&")){return asRichTextOffset(htmlIndex)}
1349const marker=pickMarker(html);if(!marker){return asRichTextOffset(htmlIndex)}
1350const withMarker=html.slice(0,htmlIndex)+marker+html.slice(htmlIndex);const value=(0,import_rich_text.create)({html:withMarker});const markerPos=value.text.indexOf(marker);return asRichTextOffset(markerPos===-1?htmlIndex:markerPos)}
1351function richTextOffsetToHtmlIndex(html,richTextOffset){if(!html.includes("<")&&!html.includes("&")){return asHtmlStringIndex(richTextOffset)}
1352const marker=pickMarker(html);if(!marker){return asHtmlStringIndex(richTextOffset)}
1353const value=(0,import_rich_text.create)({html});const markerValue=(0,import_rich_text.create)({text:marker});if(value.formats[richTextOffset]){markerValue.formats[0]=value.formats[richTextOffset]}
1354const withMarker=(0,import_rich_text.insert)(value,markerValue,richTextOffset,richTextOffset);const htmlWithMarker=(0,import_rich_text.toHTMLString)({value:withMarker});const markerIndex=htmlWithMarker.indexOf(marker);return asHtmlStringIndex(markerIndex===-1?richTextOffset:markerIndex)}
1355function findBlockByClientIdInBlocks(blockId,blocks){for(const block of blocks){if(block.get("clientId")===blockId){return block}
1356const innerBlocks=block.get("innerBlocks");if(innerBlocks&&innerBlocks.length>0){const innerBlock=findBlockByClientIdInBlocks(blockId,innerBlocks);if(innerBlock){return innerBlock}}}
1357return null}
1358var import_data3=__toESM(require_data(),1);var import_block_editor2=__toESM(require_block_editor(),1);var SelectionType=((SelectionType2)=>
1358{SelectionType2.None="none";SelectionType2.Cursor="cursor";SelectionType2.SelectionInOneBlock="selection-in-one-block";SelectionType2.SelectionInMultipleBlocks="selection-in-multiple-blocks";SelectionType2.WholeBlock="whole-block";return SelectionType2})(SelectionType||{});var SelectionDirection=((SelectionDirection2)=>{SelectionDirection2.Forward="f";SelectionDirection2.Backward="b";return SelectionDirection2})(SelectionDirection||{});function getSelectionState(selectionStart,selectionEnd,yDoc,options){const{selectionDirection}=options??{};const ymap=getRootMap(yDoc,CRDT_RECORD_MAP_KEY2);const yBlocks=ymap.get("blocks");const isSelectionEmpty=Object.keys(selectionStart).length===0;const noSelection={type:"none"};if(isSelectionEmpty||!yBlocks){return noSelection}
1359const isSelectionInOneBlock=selectionStart.clientId===selectionEnd.clientId;const isCursorOnly=isSelectionInOneBlock&&selectionStart.offset===selectionEnd.offset;const isSelectionAWholeBlock=isSelectionInOneBlock&&selectionStart.offset===void 0&&selectionEnd.offset===void 0;if(isSelectionAWholeBlock){const path=getBlockPathForLocalClientId(selectionStart.clientId);const blockPosition=path?createRelativePositionForBlockPath(path,yBlocks):null;if(!blockPosition){return noSelection}
1360return{type:"whole-block",blockPosition}}else if(isCursorOnly){const cursorPosition=getCursorPosition(selectionStart,yBlocks);if(!cursorPosition){return noSelection}
1361return{type:"cursor",cursorPosition}}else if(isSelectionInOneBlock){const cursorStartPosition2=getCursorPosition(selectionStart,yBlocks);const cursorEndPosition2=getCursorPosition(selectionEnd,yBlocks);if(!cursorStartPosition2||!cursorEndPosition2){return noSelection}
1362return{type:"selection-in-one-block",cursorStartPosition:cursorStartPosition2,cursorEndPosition:cursorEndPosition2,selectionDirection}}
1363const cursorStartPosition=getCursorPosition(selectionStart,yBlocks);const cursorEndPosition=getCursorPosition(selectionEnd,yBlocks);if(!cursorStartPosition||!cursorEndPosition){return noSelection}
1364return{type:"selection-in-multiple-blocks",cursorStartPosition,cursorEndPosition,selectionDirection}}
1365function getCursorPosition(selection,blocks){const path=getBlockPathForLocalClientId(selection.clientId);const block=path?findBlockByPath(path,blocks):null;if(!block||!selection.attributeKey||void 0===selection.offset){return null}
1366const attributes=block.get("attributes");const currentYText=attributes?getYTextByAttributeKey(attributes,selection.attributeKey):null;if(!(currentYText instanceof yjs_exports.Text)){return null}
1367const relativePosition=yjs_exports.createRelativePositionFromTypeIndex(currentYText,richTextOffsetToHtmlIndex(currentYText.toString(),asRichTextOffset(selection.offset)));return{relativePosition,absoluteOffset:selection.offset,attributeKey:selection.attributeKey}}
1368function getBlockPathForLocalClientId(clientId){const{getBlockIndex,getBlockRootClientId,getBlockName}=(0,import_data3.select)(import_block_editor2.store);const path=[];let current=clientId;while(current){const index=getBlockIndex(current);if(index===-1){return null}
1369path.unshift(index);const parent=getBlockRootClientId(current);if(!parent){break}
1370const parentName=getBlockName(parent);if(parentName==="core/post-content"){break}
1371current=parent}
1372return path.length>0?path:null}
1373function findBlockByPath(path,blocks){let currentBlocks=blocks;for(let i=0;i<path.length;i++){if(path[i]>=currentBlocks.length){return null}
1374const block=currentBlocks.get(path[i]);if(!block){return null}
1375if(i===path.length-1){return block}
1376currentBlocks=block.get("innerBlocks")??new yjs_exports.Array()}
1377return null}
1378function createRelativePositionForBlockPath(path,blocks){let currentBlocks=blocks;for(let i=0;i<path.length;i++){if(path[i]>=currentBlocks.length){return null}
1379if(i===path.length-1){return yjs_exports.createRelativePositionFromTypeIndex(currentBlocks,path[i])}
1380const block=currentBlocks.get(path[i]);currentBlocks=block?.get("innerBlocks")??new yjs_exports.Array()}
1381return null}
1382function areSelectionsStatesEqual(selection1,selection2){if(selection1.type!==selection2.type){return!1}
1383switch(selection1.type){case "none":return!0;case "cursor":return areCursorPositionsEqual(selection1.cursorPosition,selection2.cursorPosition);case "selection-in-one-block":return areCursorPositionsEqual(selection1.cursorStartPosition,selection2.cursorStartPosition)&&areCursorPositionsEqual(selection1.cursorEndPosition,selection2.cursorEndPosition)&&selection1.selectionDirection===selection2.selectionDirection;case "selection-in-multiple-blocks":return areCursorPositionsEqual(selection1.cursorStartPosition,selection2.cursorStartPosition)&&areCursorPositionsEqual(selection1.cursorEndPosition,selection2.cursorEndPosition)&&selection1.selectionDirection===selection2.selectionDirection;case "whole-block":return yjs_exports.compareRelativePositions(selection1.blockPosition,selection2.blockPosition);default:return!1}}
1384function areCursorPositionsEqual(cursorPosition1,cursorPosition2){const isRelativePositionEqual=yjs_exports.compareRelativePositions(cursorPosition1.relativePosition,cursorPosition2.relativePosition);const isAbsoluteOffsetEqual=cursorPosition1.absoluteOffset===cursorPosition2.absoluteOffset;return isRelativePositionEqual&&isAbsoluteOffsetEqual}
1385var PostEditorAwareness=class extends BaseAwarenessState{constructor(doc2,kind,name,postId){super(doc2);this.kind=kind;this.name=name;this.postId=postId}
1386equalityFieldChecks={...baseEqualityFieldChecks,editorState:this.areEditorStatesEqual};onSetUp(){super.onSetUp();this.subscribeToCollaboratorSelectionChanges()}
1387subscribeToCollaboratorSelectionChanges(){const{getSelectionStart,getSelectionEnd,getSelectedBlocksInitialCaretPosition}=(0,import_data4.select)(import_block_editor3.store);let selectionStart=getSelectionStart();let selectionEnd=getSelectionEnd();let localCursorTimeout=null;let selectionBeforeDebounce=null;(0,import_data4.subscribe)(()=>{const newSelectionStart=getSelectionStart();const newSelectionEnd=getSelectionEnd();if(newSelectionStart===selectionStart&&newSelectionEnd===selectionEnd){return}
1388if(!selectionBeforeDebounce){selectionBeforeDebounce={start:selectionStart,end:selectionEnd}}
1389selectionStart=newSelectionStart;selectionEnd=newSelectionEnd;const initialPosition=getSelectedBlocksInitialCaretPosition();void this.updateSelectionInEntityRecord(selectionStart,selectionEnd,initialPosition);if(localCursorTimeout){clearTimeout(localCursorTimeout)}
1390localCursorTimeout=setTimeout(()=>{const selectionStateOptions={};if(selectionBeforeDebounce){selectionStateOptions.selectionDirection=detectSelectionDirection(selectionBeforeDebounce.start,selectionBeforeDebounce.end,selectionStart,selectionEnd);selectionBeforeDebounce=null}
1391const selectionState=getSelectionState(selectionStart,selectionEnd,this.doc,selectionStateOptions);this.setThrottledLocalStateField("editorState",{selection:selectionState},AWARENESS_CURSOR_UPDATE_THROTTLE_IN_MS)},LOCAL_CURSOR_UPDATE_DEBOUNCE_IN_MS)})}
1392async updateSelectionInEntityRecord(selectionStart,selectionEnd,initialPosition){const edits={selection:{selectionStart,selectionEnd,initialPosition}};const options={undoIgnore:!0};(0,import_data4.dispatch)(STORE_NAME).editEntityRecord(this.kind,this.name,this.postId,edits,options)}
1393areEditorStatesEqual(state1,state2){if(!state1||!state2){return state1===state2}
1394if(!state1.selection||!state2.selection){return state1.selection===state2.selection}
1395return areSelectionsStatesEqual(state1.selection,state2.selection)}
1396convertSelectionStateToAbsolute(selection,blocks){if(selection.type===SelectionType.None){return{richTextOffset:null,localClientId:null,attributeKey:null}}
1397if(selection.type===SelectionType.WholeBlock){const absolutePos=yjs_exports.createAbsolutePositionFromRelativePosition(selection.blockPosition,this.doc);let localClientId2=null;if(absolutePos&&absolutePos.type instanceof yjs_exports.Array){const parentArray=absolutePos.type;const block=parentArray.get(absolutePos.index);if(block instanceof yjs_exports.Map){const path2=getBlockPathInYdoc(block);localClientId2=path2?resolveBlockClientIdByPath(path2,blocks):null}}
1398return{richTextOffset:null,localClientId:localClientId2,attributeKey:null}}
1399const cursorPos="cursorPosition" in selection?selection.cursorPosition:selection.cursorStartPosition;const absolutePosition=yjs_exports.createAbsolutePositionFromRelativePosition(cursorPos.relativePosition,this.doc);if(!absolutePosition){return{richTextOffset:null,localClientId:null,attributeKey:null}}
1400const yType=getContainingBlockYMap(absolutePosition.type);const path=yType?getBlockPathInYdoc(yType):null;const localClientId=path?resolveBlockClientIdByPath(path,blocks):null;return{richTextOffset:htmlIndexToRichTextOffset(absolutePosition.type.toString(),asHtmlStringIndex(absolutePosition.index)),localClientId,attributeKey:cursorPos.attributeKey??null}}
1401isYItem(struct){return"content" in struct}
1402getDebugData(){const ydoc=this.doc;const docData=Object.fromEntries(Array.from(ydoc.share,([key,value])=>[key,value.toJSON()]));const collaboratorMapData=new Map(Array.from(this.getSeenStates().entries()).map(([clientId,collaboratorState])=>[String(clientId),{name:collaboratorState.collaboratorInfo.name,wpUserId:collaboratorState.collaboratorInfo.id}]));const serializableClientItems={};
1402ydoc.store.clients.forEach((structs,clientId)=>{const items2=structs.filter(this.isYItem);serializableClientItems[clientId]=items2.map((item)=>{const{left,right,...rest}=item;return{...rest,left:left?{id:left.id,length:left.length,origin:left.origin,content:left.content}:null,right:right?{id:right.id,length:right.length,origin:right.origin,content:right.content}:null}})});return{doc:docData,clients:serializableClientItems,collaboratorMap:Object.fromEntries(collaboratorMapData)}}};function detectSelectionDirection(prevStart,prevEnd,newStart,newEnd){const startMoved=!areBlockSelectionsEqual(prevStart,newStart);const endMoved=!areBlockSelectionsEqual(prevEnd,newEnd);if(startMoved&&!endMoved){return SelectionDirection.Backward}
1403return SelectionDirection.Forward}
1404function areBlockSelectionsEqual(a,b){return a.clientId===b.clientId&&a.attributeKey===b.attributeKey&&a.offset===b.offset}
1405var import_es66=__toESM(require_es6(),1);var import_blocks3=__toESM(require_blocks(),1);var byteToHex=[];for(let i=0;i<256;++i){byteToHex.push((i+256).toString(16).slice(1))}
1406function unsafeStringify(arr,offset=0){return(byteToHex[arr[offset+0]]+byteToHex[arr[offset+1]]+byteToHex[arr[offset+2]]+byteToHex[arr[offset+3]]+"-"+byteToHex[arr[offset+4]]+byteToHex[arr[offset+5]]+"-"+byteToHex[arr[offset+6]]+byteToHex[arr[offset+7]]+"-"+byteToHex[arr[offset+8]]+byteToHex[arr[offset+9]]+"-"+byteToHex[arr[offset+10]]+byteToHex[arr[offset+11]]+byteToHex[arr[offset+12]]+byteToHex[arr[offset+13]]+byteToHex[arr[offset+14]]+byteToHex[arr[offset+15]]).toLowerCase()}
1407var rnds8=new Uint8Array(16);function rng(){return crypto.getRandomValues(rnds8)}
1408function v4(options,buf,offset){if(!buf&&!options&&crypto.randomUUID){return crypto.randomUUID()}
1409return _v4(options,buf,offset)}
1410function _v4(options,buf,offset){options=options||{};const rnds=options.random??options.rng?.()??rng();if(rnds.length<16){throw new Error("Random bytes length must be >= 16")}
1411rnds[6]=rnds[6]&15|64;rnds[8]=rnds[8]&63|128;if(buf){offset=offset||0;if(offset<0||offset+16>buf.length){throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`)}
1412for(let i=0;i<16;++i){buf[offset+i]=rnds[i]}
1413return buf}
1414return unsafeStringify(rnds)}
1415var v4_default=v4;var import_es65=__toESM(require_es6(),1);var import_blocks=__toESM(require_blocks(),1);var import_rich_text3=__toESM(require_rich_text(),1);var import_rich_text2=__toESM(require_rich_text(),1);var RICH_TEXT_CACHE_MAX_SIZE=500;function createRichTextDataCache(maxSize){const cache3=new Map();return function(value){const cached=cache3.get(value);if(cached){return cached}
1416const result=import_rich_text2.RichTextData.fromHTMLString(value);if(cache3.size>=maxSize){cache3.delete(cache3.keys().next().value)}
1417cache3.set(value,result);return result}}
1418var getCachedRichTextData=createRichTextDataCache(RICH_TEXT_CACHE_MAX_SIZE);var serializableBlocksCache=new WeakMap();function serializeAttributeValue(value){if(value instanceof import_rich_text3.RichTextData){return value.valueOf()}
1419if(Array.isArray(value)){return value.map(serializeAttributeValue)}
1420if(value&&typeof value==="object"){const result={};for(const[k,v]of Object.entries(value)){result[k]=serializeAttributeValue(v)}
1421return result}
1422return value}
1423function makeBlockAttributesSerializable(blockName,attributes){const newAttributes={...attributes};for(const[key,value]of Object.entries(attributes)){if(isLocalAttribute(blockName,key)){delete newAttributes[key];continue}
1424newAttributes[key]=serializeAttributeValue(value)}
1425return newAttributes}
1426function makeBlocksSerializable(blocks){return blocks.map((block)=>{const{name,innerBlocks,attributes,validationIssues,...rest}=block;return{...rest,name,attributes:makeBlockAttributesSerializable(name,attributes),innerBlocks:makeBlocksSerializable(innerBlocks)}})}
1427function deserializeAttributeValue(schema,value){if(schema?.type==="rich-text"&&typeof value==="string"){return getCachedRichTextData(value)}
1428if(Array.isArray(value)){return value.map((item)=>deserializeAttributeValue(schema,item))}
1429if(value&&typeof value==="object"){const result={};for(const[key,innerValue]of Object.entries(value)){result[key]=deserializeAttributeValue(schema?.query?.[key],innerValue)}
1430return result}
1431return value}
1432function deserializeBlockAttributes(blocks){return blocks.map((block)=>{const{name,innerBlocks,attributes,...rest}=block;const newAttributes={...attributes};for(const[key,value]of Object.entries(attributes)){const schema=getBlockAttributeSchema(name,key);if(schema){newAttributes[key]=deserializeAttributeValue(schema,value)}}
1433return{...rest,name,attributes:newAttributes,innerBlocks:deserializeBlockAttributes(innerBlocks??[])}})}
1434function areBlocksEqual(gblock,yblock){const yblockAsJson=yblock.toJSON();const overwrites={innerBlocks:null,clientId:null};const res=(0,import_es65.default)(Object.assign({},gblock,overwrites),Object.assign({},yblockAsJson,overwrites));const inners=gblock.innerBlocks||[];const yinners=yblock.get("innerBlocks");return res&&inners.length===yinners?.length&&inners.every((block,i)=>areBlocksEqual(block,yinners.get(i)))}
1435function createNewYAttributeMap(blockName,attributes){return new yjs_exports.Map(Object.entries(attributes).map(([attributeName,attributeValue])=>{return[attributeName,createNewYAttributeValue(blockName,attributeName,attributeValue)]}))}
1436function createNewYAttributeValue(blockName,attributeName,attributeValue){const schema=getBlockAttributeSchema(blockName,attributeName);return createYValueFromSchema(schema,attributeValue)}
1437function createYValueFromSchema(schema,value){if(!schema){return value}
1438if(schema.type==="rich-text"){return new yjs_exports.Text(value?.toString()??"")}
1439if(schema.type==="array"&&schema.query&&Array.isArray(value)){const query=schema.query;const yArray=new yjs_exports.Array();yArray.insert(0,value.map((item)=>createYMapFromQuery(query,item)));return yArray}
1440if(schema.type==="object"&&schema.query&&isRecord(value)){return createYMapFromQuery(schema.query,value)}
1441return value}
1442function isRecord(value){return!!value&&typeof value==="object"&&!Array.isArray(value)}
1443function createYMapFromQuery(query,obj){if(!isRecord(obj)){return new yjs_exports.Map()}
1444const entries=Object.entries(obj).map(([key,val])=>{const subSchema=query[key];return[key,createYValueFromSchema(subSchema,val)]});return new yjs_exports.Map(entries)}
1445function createNewYBlock(block){return createYMap(Object.fromEntries(Object.entries(block).map(([key,value])=>{switch(key){case "attributes":{return[key,createNewYAttributeMap(block.name,value)]}
1446case "innerBlocks":{const innerBlocks=new yjs_exports.Array();if(!Array.isArray(value)){return[key,innerBlocks]}
1447innerBlocks.insert(0,value.map((innerBlock)=>createNewYBlock(innerBlock)));return[key,innerBlocks]}
1448default:return[key,value]}})))}
1449function mergeCrdtBlocks(yblocks,incomingBlocks,attributeCursor,options={}){if(!serializableBlocksCache.has(incomingBlocks)){serializableBlocksCache.set(incomingBlocks,makeBlocksSerializable(incomingBlocks))}
1450const incomingBlocksToSync=serializableBlocksCache.get(incomingBlocks)??[];const numOfCommonEntries=Math.min(incomingBlocksToSync.length??0,yblocks.length);let left=0;let right=0;for(;left<numOfCommonEntries&&areBlocksEqual(incomingBlocksToSync[left],yblocks.get(left));left++){}
1451for(;right<numOfCommonEntries-left&&areBlocksEqual(incomingBlocksToSync[incomingBlocksToSync.length-right-1],yblocks.get(yblocks.length-right-1));right++){}
1452const numOfUpdatesNeeded=numOfCommonEntries-left-right;const numOfInsertionsNeeded=Math.max(0,incomingBlocksToSync.length-yblocks.length);const numOfDeletionsNeeded=Math.max(0,yblocks.length-incomingBlocksToSync.length);for(let i=0;i<numOfUpdatesNeeded;i++,left++){const incomingYBlock=incomingBlocksToSync[left];const localYBlock=yblocks.get(left);Object.entries(incomingYBlock).forEach(([incomingBlockProperty,incomingBlockPropertyValue])=>{switch(incomingBlockProperty){case "attributes":{const localAttributes=localYBlock.get(incomingBlockProperty);const incomingAttributes=incomingBlockPropertyValue;if(!localAttributes){localYBlock.set(incomingBlockProperty,createNewYAttributeMap(incomingYBlock.name,incomingAttributes));break}
1453Object.entries(incomingAttributes).forEach(([incomingAttributeName,incomingAttributeValue])=>{const currentAttribute=localAttributes?.get(incomingAttributeName);const isExpectedType=isExpectedAttributeType(incomingYBlock.name,incomingAttributeName,currentAttribute);const isYType=currentAttribute instanceof yjs_exports.AbstractType;const isAttributeChanged=!isExpectedType||isYType||!(0,import_es65.default)(currentAttribute,incomingAttributeValue);if(isAttributeChanged){updateYBlockAttribute(incomingYBlock.name,incomingYBlock.clientId,incomingAttributeName,incomingAttributeValue,localAttributes,attributeCursor)}});
1453localAttributes.forEach((_attrValue,attrName)=>{if(!incomingBlockPropertyValue.hasOwnProperty(attrName)){localAttributes.delete(attrName)}});break}
1454case "innerBlocks":{let yInnerBlocks=localYBlock.get(incomingBlockProperty);if(!(yInnerBlocks instanceof yjs_exports.Array)){yInnerBlocks=new yjs_exports.Array();localYBlock.set(incomingBlockProperty,yInnerBlocks)}
1455mergeCrdtBlocks(yInnerBlocks,incomingBlockPropertyValue??[],attributeCursor,options);break}
1456case "clientId":{if(options.preserveClientIds){break}
1457if(incomingBlockPropertyValue!==localYBlock.get(incomingBlockProperty)){localYBlock.set(incomingBlockProperty,incomingBlockPropertyValue)}
1458break}
1459default:if(!(0,import_es65.default)(incomingYBlock[incomingBlockProperty],localYBlock.get(incomingBlockProperty))){localYBlock.set(incomingBlockProperty,incomingBlockPropertyValue)}}});localYBlock.forEach((_v,k)=>{if(!incomingYBlock.hasOwnProperty(k)){localYBlock.delete(k)}})}
1460yblocks.delete(left,numOfDeletionsNeeded);for(let i=0;i<numOfInsertionsNeeded;i++,left++){const newBlock=[createNewYBlock(incomingBlocksToSync[left])];yblocks.insert(left,newBlock)}
1461const knownClientIds=new Set();for(let j=0;j<yblocks.length;j++){const yblock=yblocks.get(j);let clientId=yblock.get("clientId");if(!clientId){continue}
1462if(knownClientIds.has(clientId)){clientId=v4_default();yblock.set("clientId",clientId)}
1463knownClientIds.add(clientId)}}
1464function areArrayElementsEqual(newElement,yElement){if(yElement instanceof yjs_exports.Map&&isRecord(newElement)){return(0,import_es65.default)(newElement,yElement.toJSON())}
1465return(0,import_es65.default)(newElement,yElement)}
1466function mergeYArray(yArray,newValue,schema,cursorPosition,cursorScope){if(!schema.query){return}
1467const query=schema.query;const numOfCommonEntries=Math.min(newValue.length,yArray.length);let left=0;let right=0;for(;left<numOfCommonEntries&&areArrayElementsEqual(newValue[left],yArray.get(left));left++){}
1468for(;right<numOfCommonEntries-left&&areArrayElementsEqual(newValue[newValue.length-right-1],yArray.get(yArray.length-right-1));right++){}
1469const numOfUpdatesNeeded=numOfCommonEntries-left-right;for(let i=0;i<numOfUpdatesNeeded;i++){const currentElement=yArray.get(left+i);const newElement=newValue[left+i];if(currentElement instanceof yjs_exports.Map&&isRecord(newElement)){mergeYMapValues(currentElement,newElement,query,cursorPosition,cursorScope)}else{yArray.delete(0,yArray.length);yArray.insert(0,newValue.map((item)=>createYMapFromQuery(query,item)));return}}
1470const numOfDeletionsNeeded=Math.max(0,yArray.length-newValue.length);if(numOfDeletionsNeeded>0){yArray.delete(left+numOfUpdatesNeeded,numOfDeletionsNeeded)}
1471const numOfInsertionsNeeded=Math.max(0,newValue.length-yArray.length);if(numOfInsertionsNeeded>0){const insertAt=left+numOfUpdatesNeeded;const itemsToInsert=new Array(numOfInsertionsNeeded);for(let i=0;i<numOfInsertionsNeeded;i++){itemsToInsert[i]=createYMapFromQuery(query,newValue[insertAt+i])}
1472yArray.insert(insertAt,itemsToInsert)}}
1473function mergeYValue(schema,newVal,yMap,key,cursorPosition,cursorScope){const currentVal=yMap.get(key);if(schema?.type==="rich-text"&&typeof newVal==="string"&&currentVal instanceof yjs_exports.Text){mergeRichTextUpdate(currentVal,newVal,resolveRichTextCursorPosition(cursorPosition,cursorScope,newVal))}else if(schema?.type==="array"&&schema.query&&Array.isArray(newVal)&&currentVal instanceof yjs_exports.Array){mergeYArray(currentVal,newVal,schema,cursorPosition,cursorScope)}else if(schema?.type==="object"&&schema.query&&isRecord(newVal)&&currentVal instanceof yjs_exports.Map){mergeYMapValues(currentVal,newVal,schema.query,cursorPosition,cursorScope)}else{const newYValue=createYValueFromSchema(schema,newVal);if(newYValue!==newVal||!(0,import_es65.default)(currentVal,newVal)){yMap.set(key,newYValue)}}}
1474function mergeYMapValues(yMap,newObj,query,cursorPosition,cursorScope){for(const[key,newVal]of Object.entries(newObj)){mergeYValue(query[key],newVal,yMap,key,cursorPosition,cursorScope)}
1475for(const key of yMap.keys()){if(!Object.hasOwn(newObj,key)){yMap.delete(key)}}}
1476function updateYBlockAttribute(blockName,clientId,attributeName,attributeValue,currentAttributes,newCursorPosition){const schema=getBlockAttributeSchema(blockName,attributeName);mergeYValue(schema,attributeValue,currentAttributes,attributeName,newCursorPosition,{attributeKey:attributeName,clientId})}
1477function resolveRichTextCursorPosition(cursorPosition,cursorScope,updatedValue){return cursorPosition&&cursorPosition.clientId===cursorScope.clientId&&cursorPosition.attributeKey===cursorScope.attributeKey&&"number"===typeof cursorPosition.offset&&Number.isInteger(cursorPosition.offset)?richTextOffsetToHtmlIndex(updatedValue,asRichTextOffset(cursorPosition.offset)):null}
1478var cachedBlockAttributeSchemas;function getBlockAttributeSchema(blockName,attributeName){if(!cachedBlockAttributeSchemas){cachedBlockAttributeSchemas=new Map();for(const blockType of(0,import_blocks.getBlockTypes)()){cachedBlockAttributeSchemas.set(blockType.n
1478ame,new Map(Object.entries(blockType.attributes??{}).map(([name,definition])=>{const{role,type,query}=definition;return[name,{role,type,query}]})))}}
1479return cachedBlockAttributeSchemas.get(blockName)?.get(attributeName)}
1480function isExpectedAttributeType(blockName,attributeName,attributeValue){const schema=getBlockAttributeSchema(blockName,attributeName);if(schema?.type==="rich-text"){return attributeValue instanceof yjs_exports.Text}
1481if(schema?.type==="string"){return typeof attributeValue==="string"}
1482if(schema?.type==="array"&&schema.query){return attributeValue instanceof yjs_exports.Array}
1483if(schema?.type==="object"&&schema.query){return attributeValue instanceof yjs_exports.Map}
1484return!0}
1485function isLocalAttribute(blockName,attributeName){return"local"===getBlockAttributeSchema(blockName,attributeName)?.role}
1486var localDoc;function mergeRichTextUpdate(blockYText,updatedValue,htmlCursorIndex=null){const currentValueAsDelta=new Delta2(blockYText.toDelta());const updatedValueAsDelta=new Delta2([{insert:updatedValue}]);const deltaDiff=currentValueAsDelta.diffWithCursor(updatedValueAsDelta,htmlCursorIndex);const safeDiff=htmlCursorIndex===null||isDeltaVerificationMatch(blockYText,deltaDiff,updatedValue)?deltaDiff:currentValueAsDelta.diff(updatedValueAsDelta);blockYText.applyDelta(safeDiff.ops)}
1487function isDeltaVerificationMatch(blockYText,delta,expectedValue){if(!localDoc){localDoc=new yjs_exports.Doc()}
1488const verificationYText=localDoc.getText("verification-text");verificationYText.delete(0,verificationYText.length);verificationYText.insert(0,blockYText.toString());verificationYText.applyDelta(delta.ops);return verificationYText.toString()===expectedValue}
1489var import_data5=__toESM(require_data(),1);var import_block_editor4=__toESM(require_block_editor(),1);var import_blocks2=__toESM(require_blocks(),1);var SELECTION_HISTORY_DEFAULT_SIZE=5;var YSelectionType=((YSelectionType2)=>{YSelectionType2.RelativeSelection="RelativeSelection";YSelectionType2.BlockSelection="BlockSelection";return YSelectionType2})(YSelectionType||{});function createBlockSelectionHistory(ydoc,historySize=SELECTION_HISTORY_DEFAULT_SIZE){let history=[];const getSelectionHistory2=()=>{return history.slice(0)};const updateSelection=(newSelection)=>
1489{if(!newSelection?.selectionStart?.clientId||!newSelection?.selectionEnd?.clientId){return}
1490const{selectionStart,selectionEnd}=newSelection;const start=convertWPBlockSelectionToSelection(selectionStart,ydoc);const end=convertWPBlockSelectionToSelection(selectionEnd,ydoc);addToHistory({start,end})};const addToHistory=(yFullSelection)=>{const startClientId=yFullSelection.start.clientId;const endClientId=yFullSelection.end.clientId;history=history.filter((entry)=>{const isSameBlockCombination=entry.start.clientId===startClientId&&entry.end.clientId===endClientId;return!isSameBlockCombination});history.unshift(yFullSelection);if(history.length>historySize+1){history=history.slice(0,historySize+1)}};return{getSelectionHistory:getSelectionHistory2,updateSelection}}
1491function convertWPBlockSelectionToSelection(selection,ydoc){const clientId=selection.clientId;const block=findBlockByClientIdInDoc(clientId,ydoc);const attributes=block?.get("attributes");const attributeKey=selection.attributeKey;let changedYText=null;if(attributeKey&&attributes){changedYText=getYTextByAttributeKey(attributes,attributeKey)}
1492if(!(changedYText instanceof yjs_exports.Text)||!attributeKey||!clientId){return{type:"BlockSelection",clientId}}
1493const offset=selection.offset??0;const relativePosition=yjs_exports.createRelativePositionFromTypeIndex(changedYText,richTextOffsetToHtmlIndex(changedYText.toString(),asRichTextOffset(offset)));return{type:"RelativeSelection",attributeKey,relativePosition,clientId,offset}}
1494var selectionHistoryMap=new WeakMap();function getBlockSelectionHistory(ydoc){let history=selectionHistoryMap.get(ydoc);if(!history){history=createBlockSelectionHistory(ydoc);selectionHistoryMap.set(ydoc,history)}
1495return history}
1496function getSelectionHistory(ydoc){return getBlockSelectionHistory(ydoc).getSelectionHistory()}
1497function updateSelectionHistory(ydoc,wpSelection){return getBlockSelectionHistory(ydoc).updateSelection(wpSelection)}
1498function convertYSelectionToBlockSelection(ySelection,ydoc){if(ySelection.type===YSelectionType.RelativeSelection){const{relativePosition,attributeKey,clientId}=ySelection;const absolutePosition=yjs_exports.createAbsolutePositionFromRelativePosition(relativePosition,ydoc);if(absolutePosition){return{clientId,attributeKey,offset:htmlIndexToRichTextOffset(absolutePosition.type.toString(),asHtmlStringIndex(absolutePosition.index))}}}else if(ySelection.type===YSelectionType.BlockSelection){return{clientId:ySelection.clientId,attributeKey:void 0,offset:void 0}}
1499return null}
1500function convertYFullSelectionToWPSelection(yFullSelection,ydoc){const{start,end}=yFullSelection;const startBlock=findBlockByClientIdInDoc(start.clientId,ydoc);const endBlock=findBlockByClientIdInDoc(end.clientId,ydoc);if(!startBlock||!endBlock){return null}
1501const startBlockSelection=convertYSelectionToBlockSelection(start,ydoc);const endBlockSelection=convertYSelectionToBlockSelection(end,ydoc);if(startBlockSelection===null||endBlockSelection===null){return null}
1502return{selectionStart:startBlockSelection,selectionEnd:endBlockSelection}}
1503function findSelectionFromHistory(ydoc,selectionHistory){for(const positionToTry of selectionHistory){const result=convertYFullSelectionToWPSelection(positionToTry,ydoc);if(result!==null){return result}}
1504return null}
1505function restoreSelection(selectionHistory,ydoc){const selectionToRestore=findSelectionFromHistory(ydoc,selectionHistory);if(selectionToRestore===null){return}
1506const{getBlock}=(0,import_data5.select)(import_block_editor4.store);const{resetSelection}=(0,import_data5.dispatch)(import_block_editor4.store);const{selectionStart,selectionEnd}=selectionToRestore;const isSelectionInSameBlock=selectionStart.clientId===selectionEnd.clientId;if(isSelectionInSameBlock){const block=getBlock(selectionStart.clientId);const isBlockEmpty=block&&(0,import_blocks2.isUnmodifiedBlock)(block);const isBeginningOfEmptyBlock=0===selectionStart.offset&&0===selectionEnd.offset&&isBlockEmpty&&!selectionStart.attributeKey&&!selectionEnd.attributeKey;if(isBeginningOfEmptyBlock){const selectionStartWithoutOffset={clientId:selectionStart.clientId};const selectionEndWithoutOffset={clientId:selectionEnd.clientId};resetSelection(selectionStartWithoutOffset,selectionEndWithoutOffset,0)}else{resetSelection(selectionStart,selectionEnd,0)}}else{resetSelection(selectionEnd,selectionEnd,0)}}
1507function getShiftedSelection(ydoc,selectionHistory){if(selectionHistory.length===0){return null}
1508const{start,end}=selectionHistory[0];if(start.type===YSelectionType.BlockSelection||end.type===YSelectionType.BlockSelection){return null}
1509const selectionStart=convertYSelectionToBlockSelection(start,ydoc);const selectionEnd=convertYSelectionToBlockSelection(end,ydoc);if(!selectionStart||!selectionEnd){return null}
1510const startShifted=selectionStart.offset!==start.offset;const endShifted=selectionEnd.offset!==end.offset;if(!startShifted&&!endShifted){return null}
1511return{selectionStart,selectionEnd}}
1512var POST_META_KEY_FOR_CRDT_DOC_PERSISTENCE="_crdt_document";var disallowedPostMetaKeys=new Set([POST_META_KEY_FOR_CRDT_DOC_PERSISTENCE]);function defaultApplyChangesToCRDTDoc(ydoc,changes){const ymap=getRootMap(ydoc,CRDT_RECORD_MAP_KEY2);
1512Object.entries(changes).forEach(([key,newValue])=>{if("function"===typeof newValue){return}
1513switch(key){default:{const currentValue=ymap.get(key);updateMapValue(ymap,key,currentValue,newValue)}}})}
1514function applyPostChangesToCRDTDoc(ydoc,changes,syncedProperties){const ymap=getRootMap(ydoc,CRDT_RECORD_MAP_KEY2);Object.keys(changes).forEach((key)=>{if(!syncedProperties.has(key)){return}
1515const newValue=changes[key];if("function"===typeof newValue){return}
1516switch(key){case "blocks":{const newCursorPosition=parseCursorSelection(changes.selection);const rawContent=getRawValue(changes.content);if(!newValue&&typeof rawContent==="string"){mergeContentWithoutBlocks(ymap,rawContent,newCursorPosition);break}else if(!newValue){ymap.set(key,void 0);break}
1517let currentBlocks=ymap.get(key);if(!(currentBlocks instanceof yjs_exports.Array)){currentBlocks=new yjs_exports.Array();ymap.set(key,currentBlocks)}
1518mergeCrdtBlocks(currentBlocks,newValue,newCursorPosition);break}
1519case "content":case "excerpt":case "title":{const currentValue=ymap.get(key);let rawValue=getRawValue(newValue);if(key==="title"&&!currentValue?.toString()&&"Auto Draft"===rawValue){rawValue=""}
1520if(currentValue instanceof yjs_exports.Text){mergeRichTextUpdate(currentValue,rawValue??"")}else{const newYText=new yjs_exports.Text(rawValue??"");ymap.set(key,newYText)}
1521break}
1522case "meta":{let metaMap=ymap.get("meta");if(!isYMap(metaMap)){metaMap=createYMap();ymap.set("meta",metaMap)}
1523Object.entries(newValue??{}).forEach(([metaKey,metaValue])=>{if(disallowedPostMetaKeys.has(metaKey)){return}
1524updateMapValue(metaMap,metaKey,metaMap.get(metaKey),metaValue)});break}
1525case "slug":{if(!newValue){break}
1526const currentValue=ymap.get(key);updateMapValue(ymap,key,currentValue,newValue);break}
1527default:{const currentValue=ymap.get(key);updateMapValue(ymap,key,currentValue,newValue)}}});if(changes.selection){const selection=changes.selection;setTimeout(()=>{updateSelectionHistory(ydoc,selection)},0)}}
1528function mergeContentWithoutBlocks(ymap,rawContent,cursorPosition){let currentBlocks=ymap.get("blocks");if(!(currentBlocks instanceof yjs_exports.Array)){currentBlocks=new yjs_exports.Array();ymap.set("blocks",currentBlocks)}
1529mergeCrdtBlocks(currentBlocks,(0,import_blocks3.parse)(rawContent),cursorPosition,{preserveClientIds:!0})}
1530function parseCursorSelection(selection){const selectionStart=selection?.selectionStart;return selectionStart?.clientId&&selectionStart.attributeKey&&"number"===typeof selectionStart.offset&&Number.isInteger(selectionStart.offset)?{attributeKey:selectionStart.attributeKey,clientId:selectionStart.clientId,offset:asRichTextOffset(selectionStart.offset)}:null}
1531function defaultGetChangesFromCRDTDoc(crdtDoc,editedRecord){const docRecord=getRootMap(crdtDoc,CRDT_RECORD_MAP_KEY2).toJSON();return Object.fromEntries(Object.entries(docRecord).filter(([key,newValue])=>haveValuesChanged(editedRecord?.[key],newValue)))}
1532function getPostChangesFromCRDTDoc(ydoc,editedRecord,syncedProperties){const ymap=getRootMap(ydoc,CRDT_RECORD_MAP_KEY2);let allowedMetaChanges={};const changes=Object.fromEntries(Object.entries(ymap.toJSON()).filter(([key,newValue])=>{if(!syncedProperties.has(key)){return!1}
1533const currentValue=editedRecord[key];switch(key){case "blocks":{if(ydoc.meta?.get(CRDT_DOC_META_PERSISTENCE_KEY2)&&editedRecord.content){const blocksJson=ymap.get("blocks")?.toJSON()??[];return(0,import_blocks3.__unstableSerializeAndClean)(blocksJson).trim()!==getRawValue(editedRecord.content)}
1534return!0}
1535case "date":{const currentDateIsFloating=null===currentValue||editedRecord.modified===currentValue;if(currentDateIsFloating){return!1}
1536return haveValuesChanged(currentValue,newValue)}
1537case "meta":{const currentMeta=currentValue??{};allowedMetaChanges=Object.fromEntries(Object.entries(newValue??{}).filter(([metaKey])=>{if(disallowedPostMetaKeys.has(metaKey)){return!1}
1538return metaKey in currentMeta}));const mergedValue={...currentMeta,...allowedMetaChanges};return haveValuesChanged(currentValue,mergedValue)}
1539case "status":{if("auto-draft"===newValue){return!1}
1540return haveValuesChanged(currentValue,newValue)}
1541case "content":case "excerpt":case "title":{return haveValuesChanged(getRawValue(currentValue),newValue)}
1542default:{return haveValuesChanged(currentValue,newValue)}}}));if(changes.blocks){changes.blocks=deserializeBlockAttributes(changes.blocks)}
1543if(changes.blocks&&!changes.content){const capturedBlocks=changes.blocks;changes.content=()=>
1543(0,import_blocks3.__unstableSerializeAndClean)(capturedBlocks)}
1544if("object"===typeof changes.meta){changes.meta={...editedRecord.meta,...allowedMetaChanges}}
1545const selectionHistory=getSelectionHistory(ydoc);const shiftedSelection=getShiftedSelection(ydoc,selectionHistory);if(shiftedSelection){changes.selection={...shiftedSelection,initialPosition:0}}
1546return changes}
1547var defaultSyncConfig={applyChangesToCRDTDoc:defaultApplyChangesToCRDTDoc,createAwareness:(ydoc)=>new BaseAwareness(ydoc),getChangesFromCRDTDoc:defaultGetChangesFromCRDTDoc};var defaultCollectionSyncConfig={applyChangesToCRDTDoc:()=>{},getChangesFromCRDTDoc:()=>({}),shouldSync:(_,objectId)=>null===objectId};function getRawValue(value){if("string"===typeof value){return value}
1548if(value&&"object"===typeof value&&"raw" in value&&"string"===typeof value.raw){return value.raw}
1549return void 0}
1550function haveValuesChanged(currentValue,newValue){return!(0,import_es66.default)(currentValue,newValue)}
1551function updateMapValue(map2,key,currentValue,newValue){if(void 0===newValue){map2.delete(key);return}
1552if(haveValuesChanged(currentValue,newValue)){map2.set(key,newValue)}}
1553var DEFAULT_ENTITY_KEY="id";var POST_RAW_ATTRIBUTES=["title","excerpt","content"];var blocksTransientEdits={blocks:{read:(record)=>(0,import_blocks4.parse)(record.content?.raw??""),write:(record)=>({content:(0,import_blocks4.__unstableSerializeAndClean)(record.blocks)})}};var rootEntitiesConfig=[{label:(0,import_i18n.__)("Base"),kind:"root",key:!1,name:"__unstableBase",baseURL:"/",baseURLParams:{_fields:["description","gmt_offset","home","image_max_bit_depth","image_sizes","image_size_threshold","image_strip_meta","name","site_icon","site_icon_url","site_logo","timezone_string","url","page_for_posts","page_on_front","show_on_front"].join(",")},plural:"__unstableBases",supportsPagination:!1},{label:(0,import_i18n.__)("Post Type"),name:"postType",kind:"root",key:"slug",baseURL:"/wp/v2/types",baseURLParams:{context:"edit"},plural:"postTypes",supportsPagination:!1},{name:"media",kind:"root",baseURL:"/wp/v2/media",baseURLParams:{context:"edit"},plural:"mediaItems",label:(0,import_i18n.__)("Media"),rawAttributes:["caption","title","description"],supportsPagination:!0},{name:"taxonomy",kind:"root",key:"slug",baseURL:"/wp/v2/taxonomies",baseURLParams:{context:"edit"},plural:"taxonomies",label:(0,import_i18n.__)("Taxonomy"),supportsPagination:!1},{name:"sidebar",kind:"root",baseURL:"/wp/v2/sidebars",baseURLParams:{context:"edit"},plural:"sidebars",transientEdits:{blocks:!0},label:(0,import_i18n.__)("Widget areas"),supportsPagination:!1},{name:"widget",kind:"root",baseURL:"/wp/v2/widgets",baseURLParams:{context:"edit"},plural:"widgets",transientEdits:{blocks:!0},label:(0,import_i18n.__)("Widgets"),supportsPagination:!1},{name:"widgetType",kind:"root",baseURL:"/wp/v2/widget-types",baseURLParams:{context:"edit"},plural:"widgetTypes",label:(0,import_i18n.__)("Widget types"),supportsPagination:!1},{label:(0,import_i18n.__)("User"),name:"user",kind:"root",baseURL:"/wp/v2/users",getTitle:(record)=>record?.name||record?.slug,baseURLParams:{context:"edit"},plural:"users",supportsPagination:!0},{name:"comment",kind:"root",baseURL:"/wp/v2/comments",baseURLParams:{context:"edit"},plural:"comments",label:(0,import_i18n.__)("Comment"),supportsPagination:!0,syncConfig:defaultCollectionSyncConfig},{name:"menu",kind:"root",baseURL:"/wp/v2/menus",baseURLParams:{context:"edit"},plural:"menus",label:(0,import_i18n.__)("Menu"),supportsPagination:!0},{name:"menuItem",kind:"root",baseURL:"/wp/v2/menu-items",baseURLParams:{context:"edit"},plural:"menuItems",label:(0,import_i18n.__)("Menu Item"),rawAttributes:["title"],supportsPagination:!0},{name:"menuLocation",kind:"root",baseURL:"/wp/v2/menu-locations",baseURLParams:{context:"edit"},plural:"menuLocations",label:(0,import_i18n.__)("Menu Location"),key:"name",supportsPagination:!1},{label:(0,import_i18n.__)("Global Styles"),name:"globalStyles",kind:"root",baseURL:"/wp/v2/global-styles",baseURLParams:{context:"edit"},plural:"globalStylesVariations",getTitle:()=>(0,import_i18n.__)("Custom Styles"),getRevisionsUrl:(parentId,revisionId)=>`/wp/v2/global-styles/${parentId}/revisions${revisionId ? "/" + revisionId : ""}`,supportsPagination:!0}
1553,{label:(0,import_i18n.__)("Themes"),name:"theme",kind:"root",baseURL:"/wp/v2/themes",baseURLParams:{context:"edit"},plural:"themes",key:"stylesheet",supportsPagination:!1},{label:(0,import_i18n.__)("Plugins"),name:"plugin",kind:"root",baseURL:"/wp/v2/plugins",baseURLParams:{context:"edit"},plural:"plugins",key:"plugin",supportsPagination:!1},{label:(0,import_i18n.__)("Status"),name:"status",kind:"root",baseURL:"/wp/v2/statuses",baseURLParams:{context:"edit"},plural:"statuses",key:"slug",supportsPagination:!1},{label:(0,import_i18n.__)("Registered Templates"),name:"registeredTemplate",kind:"root",baseURL:"/wp/v2/registered-templates",key:"id",supportsPagination:!1},{label:(0,import_i18n.__)("Font Collections"),name:"fontCollection",kind:"root",baseURL:"/wp/v2/font-collections",baseURLParams:{context:"view"},plural:"fontCollections",key:"slug",supportsPagination:!0},{label:(0,import_i18n.__)("Icons"),name:"icon",kind:"root",baseURL:"/wp/v2/icons",baseURLParams:{context:"view"},plural:"icons",key:"name",supportsPagination:!1},{label:(0,import_i18n.__)("Icon Collections"),name:"iconCollection",kind:"root",baseURL:"/wp/v2/icon-collections",baseURLParams:{context:"view"},plural:"iconCollections",key:"slug",supportsPagination:!1}];var deprecatedEntities={root:{media:{since:"6.9",alternative:{kind:"postType",name:"attachment"}}}};var additionalEntityConfigLoaders=[{kind:"postType",loadEntities:loadPostTypeEntities},{kind:"taxonomy",loadEntities:loadTaxonomyEntities},{kind:"root",name:"site",plural:"sites",loadEntities:loadSiteEntity}];var prePersistPostType=async(persistedRecord,edits,name,isTemplate)=>{const newEdits={};if(!isTemplate&&persistedRecord?.status==="auto-draft"){if(!edits.status&&!newEdits.status){newEdits.status="draft"}
1554if((!edits.title||edits.title==="Auto Draft")&&!newEdits.title&&(!persistedRecord?.title||persistedRecord?.title==="Auto Draft")){newEdits.title=""}}
1555if(persistedRecord){const objectType=`postType/${name}`;const objectId=persistedRecord.id;const serializedDoc=await getSyncManager()?.createPersistedCRDTDoc(objectType,objectId);if(serializedDoc){newEdits.meta={...edits.meta,[POST_META_KEY_FOR_CRDT_DOC_PERSISTENCE]:serializedDoc}}}
1556return newEdits};async function loadPostTypeEntities(){const postTypesPromise=(0,import_api_fetch3.default)({path:"/wp/v2/types?context=view"});const taxonomiesPromise=window._wpCollaborationEnabled?(0,import_api_fetch3.default)({path:"/wp/v2/taxonomies?context=view"}):Promise.resolve({});const[postTypes,taxonomies]=await Promise.all([postTypesPromise,taxonomiesPromise]);return Object.entries(postTypes??{}).map(([name,postType])=>{const isTemplate=["wp_template","wp_template_part"].includes(name);const namespace=postType?.rest_namespace??"wp/v2";const syncedProperties=new Set(["author","blocks","content","comment_status","date","excerpt","featured_media","format","meta","ping_status","slug","status","sticky","template","title",...postType.taxonomies?.map((taxonomy)=>taxonomies?.[taxonomy]?.rest_base)?.filter(Boolean)??[]]);const entity2={kind:"postType",baseURL:`/${namespace}/${postType.rest_base}`,baseURLParams:{context:"edit"},name,label:postType.name,transientEdits:{...blocksTransientEdits,selection:!0}
1556,mergedEdits:{meta:!0},rawAttributes:POST_RAW_ATTRIBUTES,getTitle:(record)=>record?.title?.rendered||record?.title||(isTemplate?capitalCase(record.slug??""):String(record.id)),__unstablePrePersist:(persistedRecord,edits)=>prePersistPostType(persistedRecord,edits,name,isTemplate),__unstable_rest_base:postType.rest_base,supportsPagination:!0,getRevisionsUrl:(parentId,revisionId)=>`/${namespace}/${postType.rest_base}/${parentId}/revisions${revisionId ? "/" + revisionId : ""}`,revisionKey:isTemplate&&!window?.__experimentalTemplateActivate?"wp_id":DEFAULT_ENTITY_KEY};entity2.syncConfig={supportsPersistence:!0,applyChangesToCRDTDoc:(crdtDoc,changes)=>applyPostChangesToCRDTDoc(crdtDoc,changes,syncedProperties),createAwareness:(ydoc,objectId)=>{const kind="postType";const id2=parseInt(objectId,10);return new PostEditorAwareness(ydoc,kind,name,id2)},getChangesFromCRDTDoc:(crdtDoc,editedRecord)=>getPostChangesFromCRDTDoc(crdtDoc,editedRecord,syncedProperties),getPersistedCRDTDoc:(record)=>{return record?.meta?.[POST_META_KEY_FOR_CRDT_DOC_PERSISTENCE]||null},shouldSync:()=>!(Array.isArray(window._wpCollaborationDisabledPostTypes)&&window._wpCollaborationDisabledPostTypes.includes(name))};return entity2})}
1557async function loadTaxonomyEntities(){const taxonomies=await(0,import_api_fetch3.default)({path:"/wp/v2/taxonomies?context=view"});return Object.entries(taxonomies??{}).map(([name,taxonomy])=>{const namespace=taxonomy?.rest_namespace??"wp/v2";const entity2={kind:"taxonomy",baseURL:`/${namespace}/${taxonomy.rest_base}`,baseURLParams:{context:"edit"},name,label:taxonomy.name,getTitle:(record)=>record?.name,supportsPagination:!0};entity2.syncConfig=defaultSyncConfig;return entity2})}
1558async function loadSiteEntity(){const entity2={label:(0,import_i18n.__)("Site"),name:"site",kind:"root",key:!1,baseURL:"/wp/v2/settings",supportsPagination:!1,meta:{}};const site=await(0,import_api_fetch3.default)({path:entity2.baseURL,method:"OPTIONS"});const labels={};Object.entries(site?.schema?.properties??{}).forEach(([key,value])=>{if(typeof value==="object"&&value.title){labels[key]=value.title}});return[{...entity2,meta:{labels}}]}
1559var getMethodName=(kind,name,prefix="get")=>{const kindPrefix=kind==="root"?"":pascalCase(kind);const suffix=pascalCase(name);return `${prefix}${kindPrefix}${suffix}`};function getContextFromAction(action){const{query}=action;if(!query){return"default"}
1560const queryParts=get_query_parts_default(query);return queryParts.context}
1561function getMergedItemIds(itemIds=[],nextItemIds,{page=1,offset,perPage=10}={}){if(perPage===-1){return nextItemIds}
1562const nextItemIdsStartIndex=offset??(page-1)*perPage;const nextItemIdsRange=Math.max(perPage,nextItemIds.length);const size2=Math.max(itemIds.length,nextItemIdsStartIndex+nextItemIds.length);const mergedItemIds=new Array(size2);for(let i=0;i<size2;i++){const isInNextItemsRange=i>=nextItemIdsStartIndex&&i<nextItemIdsStartIndex+nextItemIdsRange;if(isInNextItemsRange){mergedItemIds[i]=nextItemIds[i-nextItemIdsStartIndex]}else{mergedItemIds[i]=itemIds[i]}}
1563return mergedItemIds}
1564function removeEntitiesById(entities2,ids){return Object.fromEntries(Object.entries(entities2).filter(([id2])=>!ids.some((itemId)=>{if(Number.isInteger(itemId)){return itemId===+id2}
1565return itemId===id2})))}
1566function items(state={},action){switch(action.type){case "RECEIVE_ITEMS":{const context=getContextFromAction(action);const key=action.key||DEFAULT_ENTITY_KEY;const itemsList=Array.isArray(action.items)?action.items:[action.items];return{...state,[context]:{...state[context],...Object.fromEntries(itemsList.map((item)=>[item?.[key],conservativeMapItem(state?.[context]?.[item?.[key]],item)]))}}}
1567case "REMOVE_ITEMS":return Object.fromEntries(Object.entries(state).map(([itemId,contextState])=>[itemId,removeEntitiesById(contextState,action.itemIds)]))}
1568return state}
1569function itemIsComplete(state={},action){switch(action.type){case "RECEIVE_ITEMS":{const context=getContextFromAction(action);const{query,key=DEFAULT_ENTITY_KEY}=action;const itemsList=Array.isArray(action.items)?action.items:[action.items];const queryParts=query?get_query_parts_default(query):{};const isCompleteQuery=!query||!Array.isArray(queryParts.fields);return{...state,[context]:{...state[context],...itemsList.reduce((result,item)=>{const itemId=item?.[key];result[itemId]=state?.[context]?.[itemId]||isCompleteQuery;return result},{})}}}
1570case "REMOVE_ITEMS":return Object.fromEntries(Object.entries(state).map(([itemId,contextState])=>[itemId,removeEntitiesById(contextState,action.itemIds)]))}
1571return state}
1572var receiveQueries=(0,import_compose.compose)([if_matching_action_default((action)=>"query" in action),replace_action_default((action)=>
1572{if(action.query){return{...action,...get_query_parts_default(action.query)}}
1573return action}),(0,import_data6.keyedReducer)("context"),(0,import_data6.keyedReducer)("stableKey")])((state={},action)=>{if(action.type!=="RECEIVE_ITEMS"){return state}
1574if(!Array.isArray(action.items)){return state}
1575const key=action.key??DEFAULT_ENTITY_KEY;return{itemIds:getMergedItemIds(state.itemIds,action.items.map((item)=>item?.[key]).filter(Boolean),{page:action.page,offset:action.offset,perPage:action.perPage}),meta:action.meta}});var queries=(state={},action)=>{switch(action.type){case "RECEIVE_ITEMS":return receiveQueries(state,action);case "REMOVE_ITEMS":const removedItems=action.itemIds.reduce((result,itemId)=>{result[itemId]=!0;return result},{});return Object.fromEntries(Object.entries(state).map(([queryGroup,contextQueries])=>[queryGroup,Object.fromEntries(Object.entries(contextQueries).map(([query,queryItems])=>[query,{...queryItems,itemIds:queryItems.itemIds.filter((queryId)=>!removedItems[queryId])}]))]));default:return state}};var reducer_default=(0,import_data6.combineReducers)({items,itemIsComplete,queries});function users(state={byId:{},queries:{}},action){switch(action.type){case "RECEIVE_USER_QUERY":return{byId:{...state.byId,...action.users.reduce((newUsers,user)=>({...newUsers,[user.id]:user}),{})},queries:{...state.queries,[action.queryID]:action.users.map((user)=>user.id)}}}
1576return state}
1577function currentUser(state={},action){switch(action.type){case "RECEIVE_CURRENT_USER":return action.currentUser}
1578return state}
1579function currentTheme(state=void 0,action){switch(action.type){case "RECEIVE_CURRENT_THEME":return action.currentTheme.stylesheet}
1580return state}
1581function currentGlobalStylesId(state=void 0,action){switch(action.type){case "RECEIVE_CURRENT_GLOBAL_STYLES_ID":return action.id}
1582return state}
1583function themeBaseGlobalStyles(state={},action){switch(action.type){case "RECEIVE_THEME_GLOBAL_STYLES":return{...state,[action.stylesheet]:action.globalStyles}}
1584return state}
1585function themeGlobalStyleVariations(state={},action){switch(action.type){case "RECEIVE_THEME_GLOBAL_STYLE_VARIATIONS":return{...state,[action.stylesheet]:action.variations}}
1586return state}
1587var withMultiEntityRecordEdits=(reducer)=>(state,action)=>{if(action.type==="UNDO"||action.type==="REDO"){const{record}=action;let newState=state;record.forEach(({id:{kind,name,recordId},changes})=>{const persistedRecord=state?.queriedData?.items?.default?.[recordId];const edits=Object.fromEntries(Object.entries(changes).map(([key,value])=>[key,action.type==="UNDO"?value.from:value.to]));newState=reducer(newState,{type:"EDIT_ENTITY_RECORD",kind,name,recordId,edits:clearUnchangedEdits(edits,persistedRecord)})});return newState}
1588return reducer(state,action)};function entity(entityConfig){return(0,import_compose2.compose)([withMultiEntityRecordEdits,if_matching_action_default((action)=>action.name&&action.kind&&action.name===entityConfig.name&&action.kind===entityConfig.kind),replace_action_default((action)=>{return{key:entityConfig.key||DEFAULT_ENTITY_KEY,...action}})])((0,import_data7.combineReducers)({queriedData:reducer_default,edits:(state={},action)=>{switch(action.type){case "RECEIVE_ITEMS":const context=action?.query?.context??"default";if(context!=="default"){return state}
1589const nextState={...state};const itemsList=Array.isArray(action.items)?action.items:[action.items];for(const record of itemsList){const recordId=record?.[action.key];const edits=nextState[recordId];if(!edits){continue}
1590const nextEdits2=Object.keys(edits).reduce((acc,key)=>{if(!(0,import_es67.default)(edits[key],record[key]?.raw??record[key])&&(!action.persistedEdits||!(0,import_es67.default)(edits[key],action.persistedEdits[key]))){acc[key]=edits[key]}
1591return acc},{});if(Object.keys(nextEdits2).length){nextState[recordId]=nextEdits2}else{delete nextState[recordId]}}
1592return nextState;case "EDIT_ENTITY_RECORD":const nextEdits={...state[action.recordId],...action.edits};Object.keys(nextEdits).forEach((key)=>{if(nextEdits[key]===void 0){delete nextEdits[key]}});return{...state,[action.recordId]:nextEdits}}
1593return state},saving:(state={},action)=>{switch(action.type){case "SAVE_ENTITY_RECORD_START":case "SAVE_ENTITY_RECORD_FINISH":return{...state,[action.recordId]:{pending:action.type==="SAVE_ENTITY_RECORD_START",error:action.error,isAutosave:action.isAutosave}}}
1594return state},deleting:(state={},action)=>{switch(action.type){case "DELETE_ENTITY_RECORD_START":case "DELETE_ENTITY_RECORD_FINISH":return{...state,[action.recordId]:{pending:action.type==="DELETE_ENTITY_RECORD_START",error:action.error}}}
1595return state},revisions:(state={},action)=>
1595{if(action.type==="RECEIVE_ITEM_REVISIONS"){const recordKey=action.recordKey;delete action.recordKey;const newState=reducer_default(state[recordKey],{...action,type:"RECEIVE_ITEMS"});return{...state,[recordKey]:newState}}
1596if(action.type==="REMOVE_ITEMS"){return Object.fromEntries(Object.entries(state).filter(([id2])=>!action.itemIds.some((itemId)=>{if(Number.isInteger(itemId)){return itemId===+id2}
1597return itemId===id2})))}
1598return state}}))}
1599function entitiesConfig(state=rootEntitiesConfig,action){switch(action.type){case "ADD_ENTITIES":return[...state,...action.entities]}
1600return state}
1601var entities=(state={},action)=>{const newConfig=entitiesConfig(state.config,action);let entitiesDataReducer=state.reducer;if(!entitiesDataReducer||newConfig!==state.config){const entitiesByKind=newConfig.reduce((acc,record)=>{const{kind}=record;if(!acc[kind]){acc[kind]=[]}
1602acc[kind].push(record);return acc},{});entitiesDataReducer=(0,import_data7.combineReducers)(Object.fromEntries(Object.entries(entitiesByKind).map(([kind,subEntities])=>{const kindReducer=(0,import_data7.combineReducers)(Object.fromEntries(subEntities.map((entityConfig)=>[entityConfig.name,entity(entityConfig)])));return[kind,kindReducer]})))}
1603const newData=entitiesDataReducer(state.records,action);if(newData===state.records&&newConfig===state.config&&entitiesDataReducer===state.reducer){return state}
1604return{reducer:entitiesDataReducer,records:newData,config:newConfig}};function undoManager(state=(0,import_undo_manager2.createUndoManager)()){return state}
1605function syncUndoManagerState(state={hasRedo:!1,hasUndo:!1},action){switch(action.type){case "SYNC_UNDO_MANAGER_CHANGE":return{hasRedo:action.hasRedo,hasUndo:action.hasUndo}}
1606return state}
1607function editsReference(state={},action){switch(action.type){case "EDIT_ENTITY_RECORD":case "UNDO":case "REDO":return{}}
1608return state}
1609function embedPreviews(state={},action){switch(action.type){case "RECEIVE_EMBED_PREVIEW":const{url,preview}=action;return{...state,[url]:preview}}
1610return state}
1611function userPermissions(state={},action){switch(action.type){case "RECEIVE_USER_PERMISSION":return{...state,[action.key]:action.isAllowed};case "RECEIVE_USER_PERMISSIONS":return{...state,...action.permissions}}
1612return state}
1613function autosaves(state={},action){switch(action.type){case "RECEIVE_AUTOSAVES":const{postId,autosaves:autosavesData}=action;return{...state,[postId]:autosavesData}}
1614return state}
1615function blockPatterns(state=[],action){switch(action.type){case "RECEIVE_BLOCK_PATTERNS":return action.patterns}
1616return state}
1617function blockPatternCategories(state=[],action){switch(action.type){case "RECEIVE_BLOCK_PATTERN_CATEGORIES":return action.categories}
1618return state}
1619function userPatternCategories(state=[],action){switch(action.type){case "RECEIVE_USER_PATTERN_CATEGORIES":return action.patternCategories}
1620return state}
1621function navigationFallbackId(state=null,action){switch(action.type){case "RECEIVE_NAVIGATION_FALLBACK_ID":return action.fallbackId}
1622return state}
1623function themeGlobalStyleRevisions(state={},action){switch(action.type){case "RECEIVE_THEME_GLOBAL_STYLE_REVISIONS":return{...state,[action.currentId]:action.revisions}}
1624return state}
1625function defaultTemplates(state={},action){switch(action.type){case "RECEIVE_DEFAULT_TEMPLATE":return{...state,[JSON.stringify(action.query)]:action.templateId}}
1626return state}
1627function registeredPostMeta(state={},action){switch(action.type){case "RECEIVE_REGISTERED_POST_META":return{...state,[action.postType]:action.registeredPostMeta}}
1628return state}
1629function editorSettings(state=null,action){switch(action.type){case "RECEIVE_EDITOR_SETTINGS":return action.settings}
1630return state}
1631function editorAssets(state=null,action){switch(action.type){case "RECEIVE_EDITOR_ASSETS":return action.assets}
1632return state}
1633function syncConnectionStatuses(state={},action){switch(action.type){case "SET_SYNC_CONNECTION_STATUS":{const key=`${action.kind}/${action.name}:${action.key}`;return{...state,[key]:action.status}}
1634case "CLEAR_SYNC_CONNECTION_STATUS":{const key=`${action.kind}/${action.name}:${action.key}`;const{[key]:_,...rest}=state;return rest}}
1635return state}
1636function collaborationSupported(state=!0,action){switch(action.type){case "SET_COLLABORATION_SUPPORTED":return action.supported;case "SET_SYNC_CONNECTION_STATUS":if(ConnectionErrorCode2.DOCUMENT_SIZE_LIMIT_EXCEEDED===action.status?.error?.code){return!1}
1637return state}
1638return state}
1639function viewConfigs(state={},action){switch(action.type){case "RECEIVE_VIEW_CONFIG":{const key=`${action.kind}/${action.name}`;return{...state,[key]:{...state[key],...action.config}}}}
1640return state}
1641var reducer_default2=(0,import_data7.combineReducers)({users,currentTheme,currentGlobalStylesId,currentUser,themeGlobalStyleVariations,themeBaseGlobalStyles,themeGlobalStyleRevisions,entities,editsReference,syncUndoManagerState,undoManager,embedPreviews,userPermissions,autosaves,blockPatterns,blockPatternCategories,userPatternCategories,navigationFallbackId,defaultTemplates,registeredPostMeta,editorSettings,editorAssets,syncConnectionStatuses,collaborationSupported,viewConfigs});var selectors_exports={};__export(selectors_exports,{__experimentalGetCurrentGlobalStylesId:()=>__experimentalGetCurrentGlobalStylesId,__experimentalGetCurrentThemeBaseGlobalStyles:()=>__experimentalGetCurrentThemeBaseGlobalStyles,__experimentalGetCurrentThemeGlobalStylesVariations:()=>__experimentalGetCurrentThemeGlobalStylesVariations,__experimentalGetDirtyEntityRecords:()=>__experimentalGetDirtyEntityRecords,__experimentalGetEntitiesBeingSaved:()=>__experimentalGetEntitiesBeingSaved,__experimentalGetEntityRecordNoResolver:()=>__experimentalGetEntityRecordNoResolver,canUser:()=>canUser,canUserEditEntityRecord:()=>canUserEditEntityRecord,getAuthors:()=>getAuthors,getAutosave:()=>getAutosave,getAutosaves:()=>getAutosaves,getBlockPatternCategories:()=>getBlockPatternCategories,getBlockPatterns:()=>getBlockPatterns,getCurrentTheme:()=>getCurrentTheme,getCurrentThemeGlobalStylesRevisions:()=>getCurrentThemeGlobalStylesRevisions,getCurrentUser:()=>getCurrentUser,getDefaultTemplateId:()=>getDefaultTemplateId,getEditedEntityRecord:()=>getEditedEntityRecord,getEmbedPreview:()=>getEmbedPreview,getEntitiesByKind:()=>getEntitiesByKind,getEntitiesConfig:()=>getEntitiesConfig,getEntity:()=>getEntity,getEntityConfig:()=>getEntityConfig,getEntityRecord:()=>getEntityRecord,getEntityRecordEdits:()=>getEntityRecordEdits,getEntityRecordNonTransientEdits:()=>getEntityRecordNonTransientEdits,getEntityRecords:()=>getEntityRecords,getEntityRecordsTotalItems:()=>getEntityRecordsTotalItems,getEntityRecordsTotalPages:()=>getEntityRecordsTotalPages,getLastEntityDeleteError:()=>getLastEntityDeleteError,getLastEntitySaveError:()=>getLastEntitySaveError,getRawEntityRecord:()=>getRawEntityRecord,getRedoEdit:()=>getRedoEdit,getReferenceByDistinctEdits:()=>getReferenceByDistinctEdits,getRevision:()=>getRevision,getRevisions:()=>getRevisions,getThemeSupports:()=>getThemeSupports,getUndoEdit:()=>getUndoEdit,getUserPatternCategories:()=>getUserPatternCategories,getUserQueryResults:()=>getUserQueryResults,hasEditsForEntityRecord:()=>hasEditsForEntityRecord,hasEntityRecord:()=>hasEntityRecord,hasEntityRecords:()=>hasEntityRecords,hasFetchedAutosaves:()=>hasFetchedAutosaves,hasRedo:()=>hasRedo,hasRevision:()=>hasRevision,hasUndo:()=>hasUndo,isAutosavingEntityRecord:()=>isAutosavingEntityRecord,isDeletingEntityRecord:()=>isDeletingEntityRecord,isPreviewEmbedFallback:()=>isPreviewEmbedFallback,isRequestingEmbedPreview:()=>isRequestingEmbedPreview,isSavingEntityRecord:()=>isSavingEntityRecord});var import_data9=__toESM(require_data(),1);var import_url2=__toESM(require_url(),1);var import_deprecated2=__toESM(require_deprecated(),1);var private_selectors_exports={};
1641__export(private_selectors_exports,{getBlockPatternsForPostType:()=>getBlockPatternsForPostType,getEditorAssets:()=>getEditorAssets,getEditorSettings:()=>getEditorSettings,getEntityRecordPermissions:()=>getEntityRecordPermissions,getEntityRecordsPermissions:()=>getEntityRecordsPermissions,getHomePage:()=>getHomePage,getNavigationFallbackId:()=>getNavigationFallbackId,getPostsPageId:()=>getPostsPageId,getRegisteredPostMeta:()=>getRegisteredPostMeta,getSyncConnectionStatus:()=>getSyncConnectionStatus,getTemplateId:()=>getTemplateId,getUndoManager:()=>getUndoManager,getViewConfig:()=>getViewConfig,isCollaborationSupported:()=>isCollaborationSupported});var import_data8=__toESM(require_data(),1);var import_deprecated=__toESM(require_deprecated(),1);var loggedAlready=!1;function logEntityDeprecation(kind,name,functionName,{alternativeFunctionName,isShorthandSelector=!1}={}){const deprecation=deprecatedEntities[kind]?.[name];if(!deprecation){return}
1642if(!loggedAlready){const{alternative}=deprecation;const message=isShorthandSelector?`'${functionName}'`:`The '${kind}', '${name}' entity (used via '${functionName}')`;let alternativeMessage=`the '${alternative.kind}', '${alternative.name}' entity`;if(alternativeFunctionName){alternativeMessage+=` via the '${alternativeFunctionName}' function`}(0,import_deprecated.default)(message,{...deprecation,alternative:alternativeMessage})}
1643loggedAlready=!0;setTimeout(()=>{loggedAlready=!1},0)}
1644var EMPTY_OBJECT={};function getUndoManager(state){return getSyncManager()?.undoManager??state.undoManager}
1645function getNavigationFallbackId(state){return state.navigationFallbackId}
1646var getBlockPatternsForPostType=(0,import_data8.createRegistrySelector)((select4)=>(0,import_data8.createSelector)((state,postType)=>select4(STORE_NAME).getBlockPatterns().filter(({postTypes})=>!postTypes||Array.isArray(postTypes)&&postTypes.includes(postType)),()=>[select4(STORE_NAME).getBlockPatterns()]));var getEntityRecordsPermissions=(0,import_data8.createRegistrySelector)((select4)=>(0,import_data8.createSelector)((state,kind,name,ids)=>{const normalizedIds=Array.isArray(ids)?ids:[ids];return normalizedIds.map((id2)=>({delete:select4(STORE_NAME).canUser("delete",{kind,name,id:id2}),update:select4(STORE_NAME).canUser("update",{kind,name,id:id2})}))},(state)=>[state.userPermissions]));function getEntityRecordPermissions(state,kind,name,id2){logEntityDeprecation(kind,name,"getEntityRecordPermissions");return getEntityRecordsPermissions(state,kind,name,id2)[0]}
1647function getRegisteredPostMeta(state,postType){return state.registeredPostMeta?.[postType]??{}}
1648function normalizePageId(value){if(!value||!["number","string"].includes(typeof value)){return null}
1649if(Number(value)===0){return null}
1650return value.toString()}
1651var getHomePage=(0,import_data8.createRegistrySelector)((select4)=>(0,import_data8.createSelector)(()=>{const siteData=select4(STORE_NAME).getEntityRecord("root","__unstableBase");if(!siteData){return null}
1652const homepageId=siteData?.show_on_front==="page"?normalizePageId(siteData.page_on_front):null;if(homepageId){return{postType:"page",postId:homepageId}}
1653const frontPageTemplateId=select4(STORE_NAME).getDefaultTemplateId({slug:"front-page"});if(frontPageTemplateId){return{postType:"wp_template",postId:frontPageTemplateId}}
1654if(frontPageTemplateId===""){return EMPTY_OBJECT}
1655return null},(state)=>[getEntityRecord(state,"root","site"),getEntityRecord(state,"root","__unstableBase"),getDefaultTemplateId(state,{slug:"front-page"})]));var getPostsPageId=(0,import_data8.createRegistrySelector)((select4)=>()=>{const siteData=select4(STORE_NAME).getEntityRecord("root","__unstableBase");return siteData?.show_on_front==="page"?normalizePageId(siteData.page_for_posts):null});var getTemplateId=(0,import_data8.createRegistrySelector)((select4)=>(state,postType,postId)=>{const homepage=unlock2(select4(STORE_NAME)).getHomePage();if(!homepage){return}
1656if(postType==="page"&&postType===homepage?.postType&&postId.toString()===homepage?.postId){const templates=select4(STORE_NAME).getEntityRecords("postType","wp_template",{per_page:-1});if(!templates){return}
1657const id2=templates.find(({slug})=>slug==="front-page")?.id;if(id2){return id2}}
1658const editedEntity=select4(STORE_NAME).getEditedEntityRecord("postType",postType,postId);if(!editedEntity){return}
1659const postsPageId=unlock2(select4(STORE_NAME)).getPostsPageId();if(postType==="page"&&postsPageId===postId.toString()){return select4(STORE_NAME).getDefaultTemplateId({slug:"home"})}
1660const currentTemplateSlug=editedEntity.template;if(currentTemplateSlug){const currentTemplate=select4(STORE_NAME).getEntityRecords("postType","wp_template",{per_page:-1})?.find(({slug})=>slug===currentTemplateSlug);
1660if(currentTemplate){return currentTemplate.id}}
1661let slugToCheck;if(editedEntity.slug){slugToCheck=postType==="page"?`${postType}-${editedEntity.slug}`:`single-${postType}-${editedEntity.slug}`}else{slugToCheck=postType==="page"?"page":`single-${postType}`}
1662return select4(STORE_NAME).getDefaultTemplateId({slug:slugToCheck})});function getEditorSettings(state){return state.editorSettings}
1663function getEditorAssets(state){return state.editorAssets}
1664function isCollaborationSupported(state){return state.collaborationSupported}
1665function getViewConfig(state,kind,name){return state.viewConfigs?.[`${kind}/${name}`]??{default_view:void 0,default_layouts:void 0,view_list:void 0,form:void 0}}
1666function getSyncConnectionStatus(state){if(!state.syncConnectionStatuses){return void 0}
1667const PRIORITIZED_STATUSES=["disconnected","connecting","connected"];let coalesced;for(const status of Object.values(state.syncConnectionStatuses)){if(!coalesced||PRIORITIZED_STATUSES.indexOf(status.status)<PRIORITIZED_STATUSES.indexOf(coalesced.status)){coalesced=status}}
1668return coalesced}
1669var EMPTY_OBJECT2={};var isRequestingEmbedPreview=(0,import_data9.createRegistrySelector)((select4)=>(state,url)=>{return select4(STORE_NAME).isResolving("getEmbedPreview",[url])});function getAuthors(state,query){(0,import_deprecated2.default)("select( 'core' ).getAuthors()",{since:"5.9",alternative:"select( 'core' ).getUsers({ who: 'authors' })"});const path=(0,import_url2.addQueryArgs)("/wp/v2/users/?who=authors&per_page=100",query);return getUserQueryResults(state,path)}
1670function getCurrentUser(state){return state.currentUser}
1671var getUserQueryResults=(0,import_data9.createSelector)((state,queryID)=>{const queryResults=state.users.queries[queryID]??[];return queryResults.map((id2)=>state.users.byId[id2])},(state,queryID)=>[state.users.queries[queryID],state.users.byId]);function getEntitiesByKind(state,kind){(0,import_deprecated2.default)("wp.data.select( 'core' ).getEntitiesByKind()",{since:"6.0",alternative:"wp.data.select( 'core' ).getEntitiesConfig()"});return getEntitiesConfig(state,kind)}
1672var getEntitiesConfig=(0,import_data9.createSelector)((state,kind)=>state.entities.config.filter((entity2)=>entity2.kind===kind),(state,kind)=>state.entities.config);function getEntity(state,kind,name){(0,import_deprecated2.default)("wp.data.select( 'core' ).getEntity()",{since:"6.0",alternative:"wp.data.select( 'core' ).getEntityConfig()"});return getEntityConfig(state,kind,name)}
1673function getEntityConfig(state,kind,name){logEntityDeprecation(kind,name,"getEntityConfig");return state.entities.config?.find((config)=>config.kind===kind&&config.name===name)}
1674var getEntityRecord=(0,import_data9.createSelector)(((state,kind,name,key,query)=>{logEntityDeprecation(kind,name,"getEntityRecord");const queriedState=state.entities.records?.[kind]?.[name]?.queriedData;if(!queriedState){return void 0}
1675const context=query?.context??"default";if(!query||!query._fields){if(!queriedState.itemIsComplete[context]?.[key]){return void 0}
1676return queriedState.items[context][key]}
1677const item=queriedState.items[context]?.[key];if(!item){return item}
1678const filteredItem={};const fields=get_normalized_comma_separable_default(query._fields)??[];for(let f=0;f<fields.length;f++){const field=fields[f].split(".");let value=item;field.forEach((fieldName)=>{value=value?.[fieldName]});setNestedValue(filteredItem,field,value)}
1679return filteredItem}),(state,kind,name,recordId,query)=>{const context=query?.context??"default";const queriedState=state.entities.records?.[kind]?.[name]?.queriedData;return[queriedState?.items[context]?.[recordId],queriedState?.itemIsComplete[context]?.[recordId]]});getEntityRecord.__unstableNormalizeArgs=(args2)=>{const newArgs=[...args2];const recordKey=newArgs?.[2];newArgs[2]=isNumericID(recordKey)?Number(recordKey):recordKey;return newArgs};function hasEntityRecord(state,kind,name,key,query){const queriedState=state.entities.records?.[kind]?.[name]?.queriedData;if(!queriedState){return!1}
1680const context=query?.context??"default";if(!query||!query._fields){return!!queriedState.itemIsComplete[context]?.[key]}
1681const item=queriedState.items[context]?.[key];if(!item){return!1}
1682const fields=get_normalized_comma_separable_default(query._fields)??[];for(let i=0;i<fields.length;i++){const path=fields[i].split(".");let value=item;for(let p=0;p<path.length;p++){const part=path[p];if(!value||!Object.hasOwn(value,part)){return!1}
1683value=value[part]}}
1684return!0}
1685function __experimentalGetEntityRecordNoResolver(state,kind,name,key){return getEntityRecord(state,kind,name,key)}
1686var getRawEntityRecord=(0,import_data9.createSelector)((state,kind,name,key)=>{logEntityDeprecation(kind,name,"getRawEntityRecord");const record=getEntityRecord(state,kind,name,key);const config=getEntityConfig(state,kind,name);if(!record||!config?.rawAttributes?.length){return record}
1687return Object.fromEntries(Object.keys(record).map((_key)=>{if(config.rawAttributes.includes(_key)){const rawValue=record[_key]?.raw;return[_key,rawValue!==void 0?rawValue:record[_key]]}
1688return[_key,record[_key]]}))},(state,kind,name,recordId,query)=>{const context=query?.context??"default";return[state.entities.config,state.entities.records?.[kind]?.[name]?.queriedData?.items[context]?.[recordId],state.entities.records?.[kind]?.[name]?.queriedData?.itemIsComplete[context]?.[recordId]]});function hasEntityRecords(state,kind,name,query){logEntityDeprecation(kind,name,"hasEntityRecords");return Array.isArray(getEntityRecords(state,kind,name,query))}
1689var getEntityRecords=((state,kind,name,query)=>{logEntityDeprecation(kind,name,"getEntityRecords");const queriedState=state.entities.records?.[kind]?.[name]?.queriedData;if(!queriedState){return null}
1690return getQueriedItems(queriedState,query,{supportsPagination:!!getEntityConfig(state,kind,name)?.supportsPagination})});var getEntityRecordsTotalItems=(state,kind,name,query)=>{logEntityDeprecation(kind,name,"getEntityRecordsTotalItems");const queriedState=state.entities.records?.[kind]?.[name]?.queriedData;if(!queriedState){return null}
1691return getQueriedTotalItems(queriedState,query)};var getEntityRecordsTotalPages=(state,kind,name,query)=>{logEntityDeprecation(kind,name,"getEntityRecordsTotalPages");const queriedState=state.entities.records?.[kind]?.[name]?.queriedData;if(!queriedState){return null}
1692if(!getEntityConfig(state,kind,name)?.supportsPagination||query?.per_page===-1){return 1}
1693const totalItems=getQueriedTotalItems(queriedState,query);if(!totalItems){return totalItems}
1694if(!query?.per_page){return getQueriedTotalPages(queriedState,query)}
1695return Math.ceil(totalItems/query.per_page)};var __experimentalGetDirtyEntityRecords=(0,import_data9.createSelector)((state)=>{const{entities:{records}}=state;const dirtyRecords=[];
1695Object.keys(records).forEach((kind)=>{Object.keys(records[kind]).forEach((name)=>{const primaryKeys=Object.keys(records[kind][name].edits).filter((primaryKey)=>(getEntityRecord(state,kind,name,primaryKey)&&hasEditsForEntityRecord(state,kind,name,primaryKey)));if(primaryKeys.length){const entityConfig=getEntityConfig(state,kind,name);primaryKeys.forEach((primaryKey)=>{const entityRecord=getEditedEntityRecord(state,kind,name,primaryKey);dirtyRecords.push({key:entityRecord?entityRecord[entityConfig.key||DEFAULT_ENTITY_KEY]:void 0,title:entityConfig?.getTitle?.(entityRecord)||"",name,kind})})}})});return dirtyRecords},(state)=>[state.entities.records]);var __experimentalGetEntitiesBeingSaved=(0,import_data9.createSelector)((state)=>{const{entities:{records}}=state;const recordsBeingSaved=[];Object.keys(records).forEach((kind)=>{Object.keys(records[kind]).forEach((name)=>{const primaryKeys=Object.keys(records[kind][name].saving).filter((primaryKey)=>isSavingEntityRecord(state,kind,name,primaryKey));if(primaryKeys.length){const entityConfig=getEntityConfig(state,kind,name);primaryKeys.forEach((primaryKey)=>{const entityRecord=getEditedEntityRecord(state,kind,name,primaryKey);recordsBeingSaved.push({key:entityRecord?entityRecord[entityConfig.key||DEFAULT_ENTITY_KEY]:void 0,title:entityConfig?.getTitle?.(entityRecord)||"",name,kind})})}})});return recordsBeingSaved},(state)=>[state.entities.records]);function getEntityRecordEdits(state,kind,name,recordId){logEntityDeprecation(kind,name,"getEntityRecordEdits");return state.entities.records?.[kind]?.[name]?.edits?.[recordId]}
1696var getEntityRecordNonTransientEdits=(0,import_data9.createSelector)((state,kind,name,recordId)=>{logEntityDeprecation(kind,name,"getEntityRecordNonTransientEdits");const{transientEdits}=getEntityConfig(state,kind,name)||{};const edits=getEntityRecordEdits(state,kind,name,recordId)||{};if(!transientEdits){return edits}
1697return Object.keys(edits).reduce((acc,key)=>{if(!transientEdits[key]){acc[key]=edits[key]}
1698return acc},{})},(state,kind,name,recordId)=>[state.entities.config,state.entities.records?.[kind]?.[name]?.edits?.[recordId]]);function hasEditsForEntityRecord(state,kind,name,recordId){logEntityDeprecation(kind,name,"hasEditsForEntityRecord");return isSavingEntityRecord(state,kind,name,recordId)||Object.keys(getEntityRecordNonTransientEdits(state,kind,name,recordId)).length>0}
1699var getEditedEntityRecord=(0,import_data9.createSelector)((state,kind,name,recordId)=>{logEntityDeprecation(kind,name,"getEditedEntityRecord");const raw=getRawEntityRecord(state,kind,name,recordId);const edited=getEntityRecordEdits(state,kind,name,recordId);if(!raw&&!edited){return!1}
1700return{...raw,...edited}},(state,kind,name,recordId,query)=>{const context=query?.context??"default";return[state.entities.config,state.entities.records?.[kind]?.[name]?.queriedData.items[context]?.[recordId],state.entities.records?.[kind]?.[name]?.queriedData.itemIsComplete[context]?.[recordId],state.entities.records?.[kind]?.[name]?.edits?.[recordId]]});function isAutosavingEntityRecord(state,kind,name,recordId){logEntityDeprecation(kind,name,"isAutosavingEntityRecord");const{pending,isAutosave}=state.entities.records?.[kind]?.[name]?.saving?.[recordId]??{};return Boolean(pending&&isAutosave)}
1701function isSavingEntityRecord(state,kind,name,recordId){logEntityDeprecation(kind,name,"isSavingEntityRecord");return state.entities.records?.[kind]?.[name]?.saving?.[recordId]?.pending??!1}
1702function isDeletingEntityRecord(state,kind,name,recordId){logEntityDeprecation(kind,name,"isDeletingEntityRecord");return state.entities.records?.[kind]?.[name]?.deleting?.[recordId]?.pending??!1}
1703function getLastEntitySaveError(state,kind,name,recordId){logEntityDeprecation(kind,name,"getLastEntitySaveError");return state.entities.records?.[kind]?.[name]?.saving?.[recordId]?.error}
1704function getLastEntityDeleteError(state,kind,name,recordId){logEntityDeprecation(kind,name,"getLastEntityDeleteError");return state.entities.records?.[kind]?.[name]?.deleting?.[recordId]?.error}
1705function getUndoEdit(state){(0,import_deprecated2.default)("select( 'core' ).getUndoEdit()",{since:"6.3"});return void 0}
1706function getRedoEdit(state){(0,import_deprecated2.default)("select( 'core' ).getRedoEdit()",{since:"6.3"});return void 0}
1707function hasUndo(state){if(getSyncManager()?.undoManager){return state.syncUndoManagerState.hasUndo}
1708return getUndoManager(state).hasUndo()}
1709function hasRedo(state){if(getSyncManager()?.undoManager){return state.syncUndoManagerState.hasRedo}
1710return getUndoManager(state).hasRedo()}
1711function getCurrentTheme(state){if(!state.currentTheme){return null}
1712return getEntityRecord(state,"root","theme",state.currentTheme)}
1713function __experimentalGetCurrentGlobalStylesId(state){return state.currentGlobalStylesId}
1714function getThemeSupports(state){return getCurrentTheme(state)?.theme_supports??EMPTY_OBJECT2}
1715function getEmbedPreview(state,url){return state.embedPreviews[url]}
1716function isPreviewEmbedFallback(state,url){const preview=state.embedPreviews[url];const oEmbedLinkCheck='<a href="'+url+'">'+url+"</a>";if(!preview){return!1}
1717return preview.html===oEmbedLinkCheck}
1718function canUser(state,action,resource,id2){const isEntity=typeof resource==="object";if(isEntity&&(!resource.kind||!resource.name)){return!1}
1719if(isEntity){logEntityDeprecation(resource.kind,resource.name,"canUser")}
1720const key=getUserPermissionCacheKey(action,resource,id2);return state.userPermissions[key]}
1721function canUserEditEntityRecord(state,kind,name,recordId){(0,import_deprecated2.default)(`wp.data.select( 'core' ).canUserEditEntityRecord()`,{since:"6.7",alternative:`wp.data.select( 'core' ).canUser( 'update', { kind, name, id } )`});return canUser(state,"update",{kind,name,id:recordId})}
1722function getAutosaves(state,postType,postId){return state.autosaves[postId]}
1723function getAutosave(state,postType,postId,authorId){if(authorId===void 0){return}
1724const autosaves2=state.autosaves[postId];return autosaves2?.find((autosave)=>autosave.author===authorId)}
1725var hasFetchedAutosaves=(0,import_data9.createRegistrySelector)((select4)=>(state,postType,postId)=>{return select4(STORE_NAME).hasFinishedResolution("getAutosaves",[postType,postId])});function getReferenceByDistinctEdits(state){return state.editsReference}
1726function __experimentalGetCurrentThemeBaseGlobalStyles(state){const currentTheme2=getCurrentTheme(state);if(!currentTheme2){return null}
1727return state.themeBaseGlobalStyles[currentTheme2.stylesheet]}
1728function __experimentalGetCurrentThemeGlobalStylesVariations(state){const currentTheme2=getCurrentTheme(state);if(!currentTheme2){return null}
1729return state.themeGlobalStyleVariations[currentTheme2.stylesheet]}
1730function getBlockPatterns(state){return state.blockPatterns}
1731function getBlockPatternCategories(state){return state.blockPatternCategories}
1732function getUserPatternCategories(state){return state.userPatternCategories}
1733function getCurrentThemeGlobalStylesRevisions(state){(0,import_deprecated2.default)("select( 'core' ).getCurrentThemeGlobalStylesRevisions()",{since:"6.5.0",alternative:"select( 'core' ).getRevisions( 'root', 'globalStyles', ${ recordKey } )"});const currentGlobalStylesId2=__experimentalGetCurrentGlobalStylesId(state);if(!currentGlobalStylesId2){return null}
1734return state.themeGlobalStyleRevisions[currentGlobalStylesId2]}
1735function getDefaultTemplateId(state,query){return state.defaultTemplates[JSON.stringify(query)]}
1736var getRevisions=(state,kind,name,recordKey,query)=>{logEntityDeprecation(kind,name,"getRevisions");const queriedStateRevisions=state.entities.records?.[kind]?.[name]?.revisions?.[recordKey];if(!queriedStateRevisions){return null}
1737return getQueriedItems(queriedStateRevisions,query)};function hasRevision(state,kind,name,recordKey,revisionKey,query){const queriedState=state.entities.records?.[kind]?.[name]?.revisions?.[recordKey];if(!queriedState){return!1}
1738const context=query?.context??"default";if(!query||!query._fields){return!!queriedState.itemIsComplete[context]?.[revisionKey]}
1739const item=queriedState.items[context]?.[revisionKey];if(!item){return!1}
1740const fields=get_normalized_comma_separable_default(query._fields)??[];for(let i=0;i<fields.length;i++){const path=fields[i].split(".");let value=item;for(let p=0;p<path.length;p++){const part=path[p];if(!value||!Object.hasOwn(value,part)){return!1}
1741value=value[part]}}
1742return!0}
1743var getRevision=(0,import_data9.createSelector)((state,kind,name,recordKey,revisionKey,query)=>{logEntityDeprecation(kind,name,"getRevision");const queriedState=state.entities.records?.[kind]?.[name]?.revisions?.[recordKey];if(!queriedState){return void 0}
1744const context=query?.context??"default";if(!query||!query._fields){if(!queriedState.itemIsComplete[context]?.[revisionKey]){return void 0}
1745return queriedState.items[context][revisionKey]}
1746const item=queriedState.items[context]?.[revisionKey];if(!item){return item}
1747const filteredItem={};const fields=get_normalized_comma_separable_default(query._fields)??[];for(let f=0;f<fields.length;f++){const field=fields[f].split(".");let value=item;field.forEach((fieldName)=>{value=value?.[fieldName]});setNestedValue(filteredItem,field,value)}
1748return filteredItem},(state,kind,name,recordKey,revisionKey,query)=>{const context=query?.context??"default";const queriedState=state.entities.records?.[kind]?.[name]?.revisions?.[recordKey];return[queriedState?.items?.[context]?.[revisionKey],queriedState?.itemIsComplete?.[context]?.[revisionKey]]});var actions_exports={};__export(actions_exports,{__experimentalBatch:()=>__experimentalBatch,__experimentalReceiveCurrentGlobalStylesId:()=>__experimentalReceiveCurrentGlobalStylesId,__experimentalReceiveThemeBaseGlobalStyles:()=>__experimentalReceiveThemeBaseGlobalStyles,__experimentalReceiveThemeGlobalStyleVariations:()=>__experimentalReceiveThemeGlobalStyleVariations,__experimentalSaveSpecifiedEntityEdits:()=>__experimentalSaveSpecifiedEntityEdits,__unstableCreateUndoLevel:()=>__unstableCreateUndoLevel,addEntities:()=>addEntities,clearEntityRecordEdits:()=>clearEntityRecordEdits,deleteEntityRecord:()=>deleteEntityRecord,editEntityRecord:()=>editEntityRecord,receiveAutosaves:()=>receiveAutosaves,receiveCurrentTheme:()=>receiveCurrentTheme,receiveCurrentUser:()=>receiveCurrentUser,receiveDefaultTemplateId:()=>receiveDefaultTemplateId,receiveEmbedPreview:()=>receiveEmbedPreview,receiveEntityRecords:()=>receiveEntityRecords,receiveNavigationFallbackId:()=>receiveNavigationFallbackId,receiveRevisions:()=>receiveRevisions,receiveThemeGlobalStyleRevisions:()=>receiveThemeGlobalStyleRevisions,receiveThemeSupports:()=>receiveThemeSupports,receiveUploadPermissions:()=>receiveUploadPermissions,receiveUserPermission:()=>receiveUserPermission,receiveUserPermissions:()=>receiveUserPermissions,receiveUserQuery:()=>receiveUserQuery,redo:()=>redo,saveEditedEntityRecord:()=>saveEditedEntityRecord,saveEntityRecord:()=>saveEntityRecord,undo:()=>undo});var import_api_fetch5=__toESM(require_api_fetch(),1);var import_url3=__toESM(require_url(),1);var import_deprecated3=__toESM(require_deprecated(),1);var import_api_fetch4=__toESM(require_api_fetch(),1);var maxItems=null;function chunk(arr,chunkSize){const tmp=[...arr];const cache3=[];while(tmp.length){cache3.push(tmp.splice(0,chunkSize))}
1749return cache3}
1750async function defaultProcessor(requests){if(maxItems===null){const preflightResponse=await(0,import_api_fetch4.default)({path:"/batch/v1",method:"OPTIONS"});maxItems=preflightResponse.endpoints[0].args.requests.maxItems}
1751const results=[];for(const batchRequests of chunk(requests,maxItems)){const batchResponse=await(0,import_api_fetch4.default)({path:"/batch/v1",method:"POST",data:{validation:"require-all-validate",requests:batchRequests.map((request)=>({path:request.path,body:request.data,method:request.method,headers:request.headers}))}});let batchResults;if(batchResponse.failed){batchResults=batchResponse.responses.map((response)=>({error:response?.body}))}else{batchResults=batchResponse.responses.map((response)=>{const result={};if(response.status>=200&&response.status<300){result.output=response.body}else{result.error=response.body}
1752return result})}
1753results.push(...batchResults)}
1754return results}
1755function createBatch(processor=defaultProcessor){let lastId=0;let queue=[];const pending=new ObservableSet();return{add(inputOrThunk){const id2=++lastId;pending.add(id2);const add=(input)=>new Promise((resolve,reject)=>{queue.push({input,resolve,reject});pending.delete(id2)});if(typeof inputOrThunk==="function"){return Promise.resolve(inputOrThunk(add)).finally(()=>
1755{pending.delete(id2)})}
1756return add(inputOrThunk)},async run(){if(pending.size){await new Promise((resolve)=>{const unsubscribe=pending.subscribe(()=>{if(!pending.size){unsubscribe();resolve(void 0)}})})}
1757let results;try{results=await processor(queue.map(({input})=>input));if(results.length!==queue.length){throw new Error("run: Array returned by processor must be same size as input array.")}}catch(error){for(const{reject}of queue){reject(error)}
1758throw error}
1759let isSuccess=!0;results.forEach((result,key)=>{const queueItem=queue[key];if(result?.error){queueItem?.reject(result.error);isSuccess=!1}else{queueItem?.resolve(result?.output??result)}});queue=[];return isSuccess}}}
1760var ObservableSet=class{constructor(...args2){this.set=new Set(...args2);this.subscribers=new Set()}
1761get size(){return this.set.size}
1762add(value){this.set.add(value);this.subscribers.forEach((subscriber)=>subscriber());return this}
1763delete(value){const isSuccess=this.set.delete(value);this.subscribers.forEach((subscriber)=>subscriber());return isSuccess}
1764subscribe(subscriber){this.subscribers.add(subscriber);return()=>{this.subscribers.delete(subscriber)}}};function addTitleToAutoDraft(record){return record.status==="auto-draft"?{...record,title:""}:record}
1765function receiveUserQuery(queryID,users2){return{type:"RECEIVE_USER_QUERY",users:Array.isArray(users2)?users2:[users2],queryID}}
1766function receiveCurrentUser(currentUser2){return{type:"RECEIVE_CURRENT_USER",currentUser:currentUser2}}
1767function addEntities(entities2){return{type:"ADD_ENTITIES",entities:entities2}}
1768function receiveEntityRecords(kind,name,records,query=void 0,invalidateCache=!1,edits=void 0,meta=void 0){if(kind==="postType"){records=Array.isArray(records)?records.map(addTitleToAutoDraft):addTitleToAutoDraft(records)}
1769let action;if(query){action=receiveQueriedItems(records,query,edits,meta)}else{action=receiveItems(records,edits,meta)}
1770return{...action,kind,name,invalidateCache}}
1771function receiveCurrentTheme(currentTheme2){return{type:"RECEIVE_CURRENT_THEME",currentTheme:currentTheme2}}
1772function __experimentalReceiveCurrentGlobalStylesId(currentGlobalStylesId2){return{type:"RECEIVE_CURRENT_GLOBAL_STYLES_ID",id:currentGlobalStylesId2}}
1773function __experimentalReceiveThemeBaseGlobalStyles(stylesheet,globalStyles){return{type:"RECEIVE_THEME_GLOBAL_STYLES",stylesheet,globalStyles}}
1774function __experimentalReceiveThemeGlobalStyleVariations(stylesheet,variations){return{type:"RECEIVE_THEME_GLOBAL_STYLE_VARIATIONS",stylesheet,variations}}
1775function receiveThemeSupports(){(0,import_deprecated3.default)("wp.data.dispatch( 'core' ).receiveThemeSupports",{since:"5.9"});return{type:"DO_NOTHING"}}
1776function receiveThemeGlobalStyleRevisions(currentId,revisions){(0,import_deprecated3.default)("wp.data.dispatch( 'core' ).receiveThemeGlobalStyleRevisions()",{since:"6.5.0",alternative:"wp.data.dispatch( 'core' ).receiveRevisions"});return{type:"RECEIVE_THEME_GLOBAL_STYLE_REVISIONS",currentId,revisions}}
1777function receiveEmbedPreview(url,preview){return{type:"RECEIVE_EMBED_PREVIEW",url,preview}}
1778var deleteEntityRecord=(kind,name,recordId,query,{__unstableFetch=import_api_fetch5.default,throwOnError=!1}={})=>async({dispatch:dispatch3,resolveSelect:resolveSelect2})=>{logEntityDeprecation(kind,name,"deleteEntityRecord");const configs=await resolveSelect2.getEntitiesConfig(kind);const entityConfig=configs.find((config)=>config.kind===kind&&config.name===name);let error;let deletedRecord=!1;if(!entityConfig){return}
1779const lock3=await dispatch3.__unstableAcquireStoreLock(STORE_NAME,["entities","records",kind,name,recordId],{exclusive:!0});try{dispatch3({type:"DELETE_ENTITY_RECORD_START",kind,name,recordId});let hasError=!1;let{baseURL}=entityConfig;if(kind==="postType"&&name==="wp_template"&&(recordId&&typeof recordId==="string"&&!/^\d+$/.test(recordId)||!window?.__experimentalTemplateActivate)){baseURL=baseURL.slice(0,baseURL.lastIndexOf("/"))+"/templates"}
1780try{let path=`${baseURL}/${recordId}`;if(query){path=(0,import_url3.addQueryArgs)(path,query)}
1781deletedRecord=await __unstableFetch({path,method:"DELETE"});await dispatch3(removeItems(kind,name,recordId,!0));if(entityConfig.syncConfig){const objectType=`${kind}/${name}`;const objectId=recordId;getSyncManager()?.unload(objectType,objectId)}}catch(_error){hasError=!0;error=_error}
1782dispatch3({type:"DELETE_ENTITY_RECORD_FINISH",kind,name,recordId,error});if(hasError&&throwOnError){throw error}
1783return deletedRecord}finally{dispatch3.__unstableReleaseStoreLock(lock3)}};var editEntityRecord=(kind,name,recordId,edits,options={})=>({select:select4,dispatch:dispatch3})=>{logEntityDeprecation(kind,name,"editEntityRecord");const entityConfig=select4.getEntityConfig(kind,name);if(!entityConfig){throw new Error(`The entity being edited (${kind}, ${name}) does not have a loaded config.`)}
1784const{mergedEdits={}}=entityConfig;const record=select4.getRawEntityRecord(kind,name,recordId);const editedRecord=select4.getEditedEntityRecord(kind,name,recordId);const editsWithMerges=Object.keys(edits).reduce((acc,key)=>{acc[key]=mergedEdits[key]?{...editedRecord[key],...edits[key]}:edits[key];return acc},{});const edit={kind,name,recordId,edits:clearUnchangedEdits(editsWithMerges,record)};if(entityConfig.syncConfig){const objectType=`${kind}/${name}`;const objectId=recordId;const isNewUndoLevel=options.undoIgnore?!1:!options.isCached;const origin2=options.undoIgnore?LOCAL_UNDO_IGNORED_ORIGIN2:LOCAL_EDITOR_ORIGIN2;getSyncManager()?.update(objectType,objectId,editsWithMerges,origin2,{isNewUndoLevel})}
1785if(!options.undoIgnore){select4.getUndoManager().addRecord([{id:{kind,name,recordId},changes:Object.keys(edits).reduce((acc,key)=>{acc[key]={from:editedRecord[key],to:edits[key]};return acc},{})}],options.isCached)}
1786dispatch3({type:"EDIT_ENTITY_RECORD",...edit})};var clearEntityRecordEdits=(kind,name,recordId)=>({select:select4,dispatch:dispatch3})=>{const entityConfig=select4.getEntityConfig(kind,name);logEntityDeprecation(kind,name,"clearEntityRecordEdits");if(!entityConfig){throw new Error(`The entity being edited (${kind}, ${name}) does not have a loaded config.`)}
1787const currentEdits=select4.getEntityRecordEdits(kind,name,recordId);if(!currentEdits){return}
1788const clearedEdits=Object.keys(currentEdits).reduce((acc,key)=>{acc[key]=void 0;return acc},{});dispatch3({type:"EDIT_ENTITY_RECORD",kind,name,recordId,edits:clearedEdits})};var undo=()=>({select:select4,dispatch:dispatch3})=>{const undoRecord=select4.getUndoManager().undo();if(!undoRecord){return}
1789dispatch3({type:"UNDO",record:undoRecord})};var redo=()=>({select:select4,dispatch:dispatch3})=>{const redoRecord=select4.getUndoManager().redo();if(!redoRecord){return}
1790dispatch3({type:"REDO",record:redoRecord})};var __unstableCreateUndoLevel=()=>({select:select4})=>{select4.getUndoManager().addRecord()};var saveEntityRecord=(kind,name,record,options={})=>async({select:select4,resolveSelect:resolveSelect2,dispatch:dispatch3})=>{const{isAutosave=!1,__unstableFetch=import_api_fetch5.default,__unstableSkipSyncUpdate=!1,throwOnError=!1}=options;logEntityDeprecation(kind,name,"saveEntityRecord");const configs=await resolveSelect2.getEntitiesConfig(kind);const entityConfig=configs.find((config)=>config.kind===kind&&config.name===name);if(!entityConfig){return}
1791const entityIdKey=entityConfig.key??DEFAULT_ENTITY_KEY;const recordId=record[entityIdKey];const isNewRecord=!!entityIdKey&&!recordId;const lock3=await dispatch3.__unstableAcquireStoreLock(STORE_NAME,["entities","records",kind,name,recordId||v4_default()],{exclusive:!0});try{for(const[key,value]of Object.entries(record)){if(typeof value==="function"){const evaluatedValue=value(select4.getEditedEntityRecord(kind,name,recordId));
1791dispatch3.editEntityRecord(kind,name,recordId,{[key]:evaluatedValue},{undoIgnore:!0});record[key]=evaluatedValue}}
1792dispatch3({type:"SAVE_ENTITY_RECORD_START",kind,name,recordId,isAutosave});let updatedRecord;let error;let hasError=!1;let{baseURL}=entityConfig;if(kind==="postType"&&name==="wp_template"&&(recordId&&typeof recordId==="string"&&!/^\d+$/.test(recordId)||!window?.__experimentalTemplateActivate)){baseURL=baseURL.slice(0,baseURL.lastIndexOf("/"))+"/templates"}
1793try{const path=`${baseURL}${recordId ? "/" + recordId : ""}`;const persistedRecord=!isNewRecord?select4.getRawEntityRecord(kind,name,recordId):{};if(isAutosave){const merged={...persistedRecord,...record};const data=["title","excerpt","content","meta"].reduce((acc,key)=>{if(key in merged){acc[key]=merged[key]}
1794return acc},{status:merged.status==="auto-draft"?"draft":void 0});updatedRecord=await __unstableFetch({path:`${path}/autosaves`,method:"POST",data});if(persistedRecord.id===updatedRecord.id){let newRecord={...persistedRecord,...data,...updatedRecord};newRecord=Object.keys(newRecord).reduce((acc,key)=>{if(["title","excerpt","content","meta"].includes(key)){acc[key]=newRecord[key]}else if(key==="status"){acc[key]=persistedRecord.status==="auto-draft"&&newRecord.status==="draft"?newRecord.status:persistedRecord.status}else{acc[key]=persistedRecord[key]}
1795return acc},{});dispatch3.receiveEntityRecords(kind,name,newRecord,void 0,!0)}else{dispatch3.receiveAutosaves(persistedRecord.id,updatedRecord)}}else{let edits=record;if(entityConfig.__unstablePrePersist){edits={...edits,...await entityConfig.__unstablePrePersist(persistedRecord,edits)}}
1796updatedRecord=await __unstableFetch({path,method:recordId?"PUT":"POST",data:edits});dispatch3.receiveEntityRecords(kind,name,updatedRecord,void 0,!0,edits);if(entityConfig.syncConfig){getSyncManager()?.update(`${kind}/${name}`,recordId,__unstableSkipSyncUpdate?{}:updatedRecord,LOCAL_UNDO_IGNORED_ORIGIN2,{isSave:!0})}}}catch(_error){hasError=!0;error=_error}
1797dispatch3({type:"SAVE_ENTITY_RECORD_FINISH",kind,name,recordId,error,
1797isAutosave});if(hasError&&throwOnError){throw error}
1798return updatedRecord}finally{dispatch3.__unstableReleaseStoreLock(lock3)}};var __experimentalBatch=(requests)=>async({dispatch:dispatch3})=>{const batch=createBatch();const api={saveEntityRecord(kind,name,record,options){return batch.add((add)=>dispatch3.saveEntityRecord(kind,name,record,{...options,__unstableFetch:add}))},saveEditedEntityRecord(kind,name,recordId,options){return batch.add((add)=>dispatch3.saveEditedEntityRecord(kind,name,recordId,{...options,__unstableFetch:add}))},deleteEntityRecord(kind,name,recordId,query,options){return batch.add((add)=>dispatch3.deleteEntityRecord(kind,name,recordId,query,{...options,__unstableFetch:add}))}};const resultPromises=requests.map((request)=>request(api));const[,...results]=await Promise.all([batch.run(),...resultPromises]);return results};var saveEditedEntityRecord=(kind,name,recordId,options)=>async({select:select4,dispatch:dispatch3,resolveSelect:resolveSelect2})=>{logEntityDeprecation(kind,name,"saveEditedEntityRecord");if(!select4.hasEditsForEntityRecord(kind,name,recordId)){return}
1799const configs=await resolveSelect2.getEntitiesConfig(kind);const entityConfig=configs.find((config)=>config.kind===kind&&config.name===name);if(!entityConfig){return}
1800const entityIdKey=entityConfig.key||DEFAULT_ENTITY_KEY;const edits=select4.getEntityRecordNonTransientEdits(kind,name,recordId);const record={[entityIdKey]:recordId,...edits};return await dispatch3.saveEntityRecord(kind,name,record,options)};var __experimentalSaveSpecifiedEntityEdits=(kind,name,recordId,itemsToSave,options)=>async({select:select4,dispatch:dispatch3,resolveSelect:resolveSelect2})=>{logEntityDeprecation(kind,name,"__experimentalSaveSpecifiedEntityEdits");if(!select4.hasEditsForEntityRecord(kind,name,recordId)){return}
1801const edits=select4.getEntityRecordNonTransientEdits(kind,name,recordId);const editsToSave={};for(const item of itemsToSave){setNestedValue(editsToSave,item,getNestedValue(edits,item))}
1802const configs=await resolveSelect2.getEntitiesConfig(kind);const entityConfig=configs.find((config)=>config.kind===kind&&config.name===name);const entityIdKey=entityConfig?.key||DEFAULT_ENTITY_KEY;if(recordId){editsToSave[entityIdKey]=recordId}
1803return await dispatch3.saveEntityRecord(kind,name,editsToSave,options)};function receiveUploadPermissions(hasUploadPermissions){(0,import_deprecated3.default)("wp.data.dispatch( 'core' ).receiveUploadPermissions",{since:"5.9",alternative:"receiveUserPermission"});return receiveUserPermission("create/media",hasUploadPermissions)}
1804function receiveUserPermission(key,isAllowed){return{type:"RECEIVE_USER_PERMISSION",key,isAllowed}}
1805function receiveUserPermissions(permissions){return{type:"RECEIVE_USER_PERMISSIONS",permissions}}
1806function receiveAutosaves(postId,autosaves2){return{type:"RECEIVE_AUTOSAVES",postId,autosaves:Array.isArray(autosaves2)?autosaves2:[autosaves2]}}
1807function receiveNavigationFallbackId(fallbackId){return{type:"RECEIVE_NAVIGATION_FALLBACK_ID",fallbackId}}
1808function receiveDefaultTemplateId(query,templateId){return{type:"RECEIVE_DEFAULT_TEMPLATE",query,templateId}}
1809var receiveRevisions=(kind,name,recordKey,records,query,invalidateCache=!1,meta)=>async({dispatch:dispatch3,resolveSelect:resolveSelect2})=>{logEntityDeprecation(kind,name,"receiveRevisions");const configs=await resolveSelect2.getEntitiesConfig(kind);const entityConfig=configs.find((config)=>config.kind===kind&&config.name===name);const key=entityConfig?.revisionKey??DEFAULT_ENTITY_KEY;dispatch3({type:"RECEIVE_ITEM_REVISIONS",key,items:records,recordKey,meta,query,kind,name,invalidateCache})};var private_actions_exports={};__export(private_actions_exports,{__unstableNotifySyncUndoManagerChange:()=>__unstableNotifySyncUndoManagerChange,editMediaEntity:()=>editMediaEntity,receiveEditorAssets:()=>receiveEditorAssets,receiveEditorSettings:()=>receiveEditorSettings,receiveRegisteredPostMeta:()=>receiveRegisteredPostMeta,receiveViewConfig:()=>receiveViewConfig,setCollaborationSupported:()=>setCollaborationSupported,setSyncConnectionStatus:()=>setSyncConnectionStatus});var import_api_fetch6=__toESM(require_api_fetch(),1);function receiveRegisteredPostMeta(postType,registeredPostMeta2){return{type:"RECEIVE_REGIST
1809ERED_POST_META",postType,registeredPostMeta:registeredPostMeta2}}
1810var editMediaEntity=(recordId,edits={},{__unstableFetch=import_api_fetch6.default,throwOnError=!1}={})=>async({dispatch:dispatch3,resolveSelect:resolveSelect2})=>{if(!recordId){return}
1811const kind="postType";const name="attachment";const configs=await resolveSelect2.getEntitiesConfig(kind);const entityConfig=configs.find((config)=>config.kind===kind&&config.name===name);if(!entityConfig){return}
1812const lock3=await dispatch3.__unstableAcquireStoreLock(STORE_NAME,["entities","records",kind,name,recordId],{exclusive:!0});let updatedRecord;let error;let hasError=!1;try{dispatch3({type:"SAVE_ENTITY_RECORD_START",kind,name,recordId});try{const path=`${entityConfig.baseURL}/${recordId}/edit`;const newRecord=await __unstableFetch({path,method:"POST",data:{...edits}});if(newRecord){dispatch3.receiveEntityRecords(kind,name,newRecord,void 0,!0,void 0,void 0);updatedRecord=newRecord}}catch(e){error=e;hasError=!0}
1813dispatch3({type:"SAVE_ENTITY_RECORD_FINISH",kind,name,recordId,error});if(hasError&&throwOnError){throw error}
1814return updatedRecord}finally{dispatch3.__unstableReleaseStoreLock(lock3)}};function receiveEditorSettings(settings){return{type:"RECEIVE_EDITOR_SETTINGS",settings}}
1815function receiveEditorAssets(assets){return{type:"RECEIVE_EDITOR_ASSETS",assets}}
1816var setCollaborationSupported=(supported)=>({dispatch:dispatch3})=>{dispatch3({type:"SET_COLLABORATION_SUPPORTED",supported});if(!supported&&hasSyncManager()){getSyncManager().unloadAll();dispatch3.__unstableNotifySyncUndoManagerChange({hasUndo:!1,hasRedo:!1})}};function receiveViewConfig(kind,name,config){return{type:"RECEIVE_VIEW_CONFIG",kind,name,config}}
1817function __unstableNotifySyncUndoManagerChange(state){return{type:"SYNC_UNDO_MANAGER_CHANGE",...state}}
1818function setSyncConnectionStatus(kind,name,key,status){if(!status){return{type:"CLEAR_SYNC_CONNECTION_STATUS",kind,name,key}}
1819return{type:"SET_SYNC_CONNECTION_STATUS",kind,name,key,status}}
1820var resolvers_exports={};__export(resolvers_exports,{__experimentalGetCurrentGlobalStylesId:()=>__experimentalGetCurrentGlobalStylesId2,__experimentalGetCurrentThemeBaseGlobalStyles:()=>__experimentalGetCurrentThemeBaseGlobalStyles2,__experimentalGetCurrentThemeGlobalStylesVariations:()=>__experimentalGetCurrentThemeGlobalStylesVariations2,canUser:()=>canUser2,canUserEditEntityRecord:()=>canUserEditEntityRecord2,getAuthors:()=>getAuthors2,getAutosave:()=>getAutosave2,getAutosaves:()=>getAutosaves2,getBlockPatternCategories:()=>getBlockPatternCategories2,getBlockPatterns:()=>getBlockPatterns2,getCurrentTheme:()=>getCurrentTheme2,getCurrentThemeGlobalStylesRevisions:()=>getCurrentThemeGlobalStylesRevisions2,getCurrentUser:()=>getCurrentUser2,getDefaultTemplateId:()=>getDefaultTemplateId2,getEditedEntityRecord:()=>getEditedEntityRecord2,getEditorAssets:()=>getEditorAssets2,getEditorSettings:()=>getEditorSettings2,getEmbedPreview:()=>getEmbedPreview2,getEntitiesConfig:()=>getEntitiesConfig2,getEntityRecord:()=>getEntityRecord2,getEntityRecords:()=>getEntityRecords2,getEntityRecordsTotalItems:()=>getEntityRecordsTotalItems2,getEntityRecordsTotalPages:()=>getEntityRecordsTotalPages2,getNavigationFallbackId:()=>getNavigationFallbackId2,getRawEntityRecord:()=>getRawEntityRecord2,getRegisteredPostMeta:()=>getRegisteredPostMeta2,getRevision:()=>getRevision2,getRevisions:()=>getRevisions2,getThemeSupports:()=>getThemeSupports2,getUserPatternCategories:()=>getUserPatternCategories2,getViewConfig:()=>getViewConfig2});var import_url6=__toESM(require_url(),1);var import_html_entities2=__toESM(require_html_entities(),1);var import_api_fetch10=__toESM(require_api_fetch(),1);var import_api_fetch9=__toESM(require_api_fetch(),1);var import_api_fetch7=__toESM(require_api_fetch(),1);var import_url4=__toESM(require_url(),1);var import_html_entities=__toESM(require_html_entities(),1);var import_i18n2=__toESM(require_i18n(),1);async function fetchLinkSuggestions(search,searchOptions={},editorSettings2={}){const searchOptionsToUse=searchOptions.isInitialSuggestions&&searchOptions.initialSuggestionsSearchOptions?{...searchOptions,...searchOptions.initialSuggestionsSearchOptions}:searchOptions;const{type,subtype,page,perPage=searchOptions.isInitialSuggestions?3:20}=searchOptionsToUse;const{disablePostFormats=!1}=editorSettings2;const queries2=[];if(!type||type==="post"){queries2.push((0,import_api_fetch7.default)({path:(0,import_url4.addQueryArgs)("/wp/v2/search",{search,page,per_page:perPage,type:"post",subtype})}).then((results2)=>{return results2.map((result)=>{return{id:result.id,url:result.url,title:(0,import_html_entities.decodeEntities)(result.title||"")||(0,import_i18n2.__)("(no title)"),type:result.subtype||result.type,kind:"post-type"}})}).catch(()=>[]))}
1821if(!type||type==="term"){queries2.push((0,import_api_fetch7.default)({path:(0,import_url4.addQueryArgs)("/wp/v2/search",{search,page,per_page:perPage,type:"term",subtype})}).then((results2)=>{return results2.map((result)=>{return{id:result.id,url:result.url,title:(0,import_html_entities.decodeEntities)(result.title||"")||(0,import_i18n2.__)("(no title)"),type:result.subtype||result.type,kind:"taxonomy"}})}).catch(()=>[]))}
1822if(!disablePostFormats&&(!type||type==="post-format")){queries2.push((0,import_api_fetch7.default)({path:(0,import_url4.addQueryArgs)("/wp/v2/search",{search,page,per_page:perPage,type:"post-format",subtype})}).then((results2)=>{return results2.map((result)=>{return{id:result.id,url:result.url,title:(0,import_html_entities.decodeEntities)(result.title||"")||(0,import_i18n2.__)("(no title)"),type:result.subtype||result.type,kind:"taxonomy"}})}).catch(()=>[]))}
1823if(!type||type==="attachment"){queries2.push((0,import_api_fetch7.default)({path:(0,import_url4.addQueryArgs)("/wp/v2/media",{search,page,per_page:perPage})}).then((results2)=>{return results2.map((result)=>{return{id:result.id,url:result.source_url,title:(0,import_html_entities.decodeEntities)(result.title.rendered||"")||(0,import_i18n2.__)("(no title)"),type:result.type,kind:"media"}})}).catch(()=>[]))}
1824const responses=await Promise.all(queries2);let results=responses.flat();results=results.filter((result)=>!!result.id);results=sortResults(results,search);results=results.slice(0,perPage);return results}
1825function sortResults(results,search){const searchTokens=tokenize2(search);const scores={};for(const result of results){if(result.title){const titleTokens=tokenize2(result.title);const exactMatchingTokens=titleTokens.filter((titleToken)=>searchTokens.some((searchToken)=>titleToken===searchToken));const subMatchingTokens=titleTokens.filter((titleToken)=>searchTokens.some((searchToken)=>titleToken!==searchToken&&titleToken.includes(searchToken)));const exactMatchScore=exactMatchingTokens.length/titleTokens.length*10;const subMatchScore=subMatchingTokens.length/titleTokens.length;scores[result.id]=exactMatchScore+subMatchScore}else{scores[result.id]=0}}
1826return results.sort((a,b)=>scores[b.id]-scores[a.id])}
1827function tokenize2(text2){return text2.toLowerCase().match(/[\p{L}\p{N}]+/gu)||[]}
1828var import_api_fetch8=__toESM(require_api_fetch(),1);var import_url5=__toESM(require_url(),1);var CACHE=new Map();var fetchUrlData=async(url,options={})=>{const endpoint="/wp-block-editor/v1/url-details";const args2={url:(0,import_url5.prependHTTP)(url)};if(!(0,import_url5.isURL)(url)){return Promise.reject(`${url} is not a valid URL.`)}
1829const protocol=(0,import_url5.getProtocol)(url);if(!protocol||!(0,import_url5.isValidProtocol)(protocol)||!protocol.startsWith("http")||!/^https?:\/\/[^\/\s]/i.test(url)){return Promise.reject(`${url} does not have a valid protocol. URLs must be "http" based`)}
1830if(CACHE.has(url)){return CACHE.get(url)}
1831return(0,import_api_fetch8.default)({path:(0,import_url5.addQueryArgs)(endpoint,args2),...options}).then((res)=>{CACHE.set(url,res);return res})};var experimental_fetch_url_data_default=fetchUrlData;async function fetchBlockPatterns(){const restPatterns=await(0,import_api_fetch9.default)({path:"/wp/v2/block-patterns/patterns"});if(!restPatterns){return[]}
1832return restPatterns.map((pattern)=>Object.fromEntries(Object.entries(pattern).map(([key,value])=>
1832[camelCase(key),value])))}
1833var parsedBlocksCache=new Map();function getCacheKey(kind,name,id2){return `${kind}:${name}:${id2}`}
1834var getAuthors2=(query)=>async({dispatch:dispatch3})=>{const path=(0,import_url6.addQueryArgs)("/wp/v2/users/?who=authors&per_page=100",query);const users2=await(0,import_api_fetch10.default)({path});dispatch3.receiveUserQuery(path,users2)};var getCurrentUser2=()=>async({dispatch:dispatch3})=>{const currentUser2=await(0,import_api_fetch10.default)({path:"/wp/v2/users/me"});dispatch3.receiveCurrentUser(currentUser2)};var getEntityRecord2=(kind,name,key="",query)=>async({select:select4,dispatch:dispatch3,registry,resolveSelect:resolveSelect2})=>{const configs=await resolveSelect2.getEntitiesConfig(kind);const entityConfig=configs.find((config)=>config.name===name&&config.kind===kind);if(!entityConfig){return}
1835const lock3=await dispatch3.__unstableAcquireStoreLock(STORE_NAME,["entities","records",kind,name,key],{exclusive:!1});try{if(query!==void 0&&query._fields){query={...query,_fields:[...new Set([...get_normalized_comma_separable_default(query._fields)||[],entityConfig.key||DEFAULT_ENTITY_KEY])].join()}}
1836if(query!==void 0&&query._fields){const hasRecord=select4.hasEntityRecord(kind,name,key,query);if(hasRecord){return}}
1837let{baseURL}=entityConfig;if(kind==="postType"&&name==="wp_template"&&(key&&typeof key==="string"&&!/^\d+$/.test(key)||!window?.__experimentalTemplateActivate)){baseURL=baseURL.slice(0,baseURL.lastIndexOf("/"))+"/templates"}
1838const path=(0,import_url6.addQueryArgs)(baseURL+(key?"/"+key:""),{...entityConfig.baseURLParams,...query});const response=await(0,import_api_fetch10.default)({path,parse:!1});const record=await response.json();const permissions=getUserPermissionsFromAllowHeader(response.headers?.get("allow"));const canUserResolutionsArgs=[];const receiveUserPermissionArgs={};for(const action of ALLOWED_RESOURCE_ACTIONS){receiveUserPermissionArgs[getUserPermissionCacheKey(action,{kind,name,id:key})]=permissions[action];canUserResolutionsArgs.push([action,{kind,name,id:key}])}
1839if(entityConfig.syncConfig&&isNumericID(key)&&!query){const objectType=`${kind}/${name}`;const objectId=key;const recordWithTransients={...record};Object.entries(entityConfig.transientEdits??{}).filter(([propName,transientConfig])=>void 0===recordWithTransients[propName]&&transientConfig&&"object"===typeof transientConfig&&"read" in transientConfig&&"function"===typeof transientConfig.read).forEach(([propName,transientConfig])=>{recordWithTransients[propName]=transientConfig.read(recordWithTransients)});if(recordWithTransients.blocks&&typeof recordWithTransients.content?.raw==="string"){parsedBlocksCache.set(getCacheKey(kind,name,key),{content:recordWithTransients.content.raw,blocks:recordWithTransients.blocks}
1839)}
1840const syncManager2=select4?.isCollaborationSupported?.()===!1?void 0:getSyncManager();void syncManager2?.load(entityConfig.syncConfig,objectType,objectId,recordWithTransients,{editRecord:(edits,options={})=>{if(!Object.keys(edits).length){return}
1841dispatch3({type:"EDIT_ENTITY_RECORD",kind,name,recordId:key,edits,meta:{undo:void 0},options})},getEditedRecord:async()=>await resolveSelect2.getEditedEntityRecord(kind,name,key),onStatusChange:(status)=>{dispatch3.setSyncConnectionStatus(kind,name,key,status)},refetchRecord:async()=>{dispatch3.receiveEntityRecords(kind,name,await(0,import_api_fetch10.default)({path,parse:!0}),query)},persistCRDTDoc:()=>{if(!entityConfig.syncConfig?.supportsPersistence){return}
1842return resolveSelect2.getEditedEntityRecord(kind,name,key).then(async(editedRecord)=>{const{meta,status}=editedRecord;if("auto-draft"===status||!meta){return}
1843const entityIdKey=entityConfig.key||DEFAULT_ENTITY_KEY;const entityId=editedRecord[entityIdKey];await saveCRDTDoc(`${kind}/${name}`,entityId)})},addUndoMeta:(ydoc,meta)=>{const selectionHistory=getSelectionHistory(ydoc);if(selectionHistory){meta.set("selectionHistory",selectionHistory)}},onUndoStackChange:(undoState)=>{dispatch3.__unstableNotifySyncUndoManagerChange(undoState)},restoreUndoMeta:(ydoc,meta)=>{const selectionHistory=meta.get("selectionHistory");if(selectionHistory){setTimeout(()=>{restoreSelection(selectionHistory,ydoc)},0)}}})}
1844registry.batch(()=>{dispatch3.receiveEntityRecords(kind,name,record,query);dispatch3.receiveUserPermissions(receiveUserPermissionArgs);dispatch3.finishResolutions("canUser",canUserResolutionsArgs)})}finally{dispatch3.__unstableReleaseStoreLock(lock3)}};getEntityRecord2.shouldInvalidate=(action,kind,name)=>{return kind==="root"&&name==="site"&&(action.type==="RECEIVE_ITEMS"&&action.persistedEdits&&action.persistedEdits.status!=="auto-draft"||action.type==="REMOVE_ITEMS")&&action.kind==="postType"&&action.name==="wp_template"};var getRawEntityRecord2=forward_resolver_default("getEntityRecord");var getEditedEntityRecord2=forward_resolver_default("getEntityRecord");var getEntityRecords2=(kind,name,query={})=>async({dispatch:dispatch3,registry,resolveSelect:resolveSelect2})=>{const configs=await resolveSelect2.getEntitiesConfig(kind);const entityConfig=configs.find((config)=>config.name===name&&config.kind===kind);if(!entityConfig){return}
1845const lock3=await dispatch3.__unstableAcquireStoreLock(STORE_NAME,["entities","records",kind,name],{exclusive:!1});const rawQuery={...query};const key=entityConfig.key||DEFAULT_ENTITY_KEY;function getResolutionsArgs(records,recordsQuery){const normalizedQuery=normalizeQueryForResolution(recordsQuery);return records.filter((record)=>record?.[key]).map((record)=>[kind,name,record[key],normalizedQuery])}
1846try{if(query._fields){query={...query,_fields:[...new Set([...get_normalized_comma_separable_default(query._fields)||[],key])].join()}}
1847let{baseURL}=entityConfig;const{combinedTemplates=!0}=query;if(kind==="postType"&&name==="wp_template"&&combinedTemplates){baseURL=baseURL.slice(0,baseURL.lastIndexOf("/"))+"/templates"}
1848const path=(0,import_url6.addQueryArgs)(baseURL,{...entityConfig.baseURLParams,...query});let records=[],meta;if(entityConfig.supportsPagination&&query.per_page!==-1){const response=await(0,import_api_fetch10.default)({path,parse:!1});records=Object.values(await response.json());meta={totalItems:parseInt(response.headers.get("X-WP-Total")),totalPages:parseInt(response.headers.get("X-WP-TotalPages"))}}else if(query.per_page===-1&&query[RECEIVE_INTERMEDIATE_RESULTS]===!0){let page=1;let totalPages;do{const response=await(0,import_api_fetch10.default)({path:(0,import_url6.addQueryArgs)(path,{page,per_page:100}),parse:!1});const pageRecords=Object.values(await response.json());totalPages=parseInt(response.headers.get("X-WP-TotalPages"));if(!meta){meta={totalItems:parseInt(response.headers.get("X-WP-Total")),totalPages:1}}
1849records.push(...pageRecords);registry.batch(()=>{dispatch3.receiveEntityRecords(kind,name,records,query,!1,void 0,meta);dispatch3.finishResolutions("getEntityRecord",getResolutionsArgs(pageRecords,rawQuery))});page++}while(page<=totalPages);}else{records=Object.values(await(0,import_api_fetch10.default)({path}));meta={totalItems:records.length,totalPages:1}}
1850if(entityConfig.syncConfig&&-1===query.per_page){const objectType=`${kind}/${name}`;getSyncManager()?.loadCollection(entityConfig.syncConfig,objectType,{onStatusChange:(status)=>{dispatch3.setSyncConnectionStatus(kind,name,null,status)},refetchRecords:async()=>{dispatch3.receiveEntityRecords(kind,name,await(0,import_api_fetch10.default)({path,parse:!0}),query)}})}
1851if(query._fields){records=records.map((record)=>{query._fields.split(",").forEach((field)=>
1851{if(!record.hasOwnProperty(field)){record[field]=void 0}});return record})}
1852registry.batch(()=>{dispatch3.receiveEntityRecords(kind,name,records,query,!1,void 0,meta);const targetHints=records.filter((record)=>!!record?.[key]&&!!record?._links?.self?.[0]?.targetHints?.allow).map((record)=>({id:record[key],permissions:getUserPermissionsFromAllowHeader(record._links.self[0].targetHints.allow)}));const canUserResolutionsArgs=[];const receiveUserPermissionArgs={};for(const targetHint of targetHints){for(const action of ALLOWED_RESOURCE_ACTIONS){canUserResolutionsArgs.push([action,{kind,name,id:targetHint.id}]);receiveUserPermissionArgs[getUserPermissionCacheKey(action,{kind,name,id:targetHint.id})]=targetHint.permissions[action]}}
1853if(targetHints.length>0){dispatch3.receiveUserPermissions(receiveUserPermissionArgs);dispatch3.finishResolutions("canUser",canUserResolutionsArgs)}
1854dispatch3.finishResolutions("getEntityRecord",getResolutionsArgs(records,rawQuery));dispatch3.__unstableReleaseStoreLock(lock3)})}catch{dispatch3.__unstableReleaseStoreLock(lock3)}};getEntityRecords2.shouldInvalidate=(action,kind,name)=>{return(action.type==="RECEIVE_ITEMS"||action.type==="REMOVE_ITEMS")&&action.invalidateCache&&kind===action.kind&&name===action.name};var getEntityRecordsTotalItems2=forward_resolver_default("getEntityRecords");var getEntityRecordsTotalPages2=forward_resolver_default("getEntityRecords");var getCurrentTheme2=()=>async({dispatch:dispatch3,resolveSelect:resolveSelect2})=>{const activeThemes=await resolveSelect2.getEntityRecords("root","theme",{status:"active"});dispatch3.receiveCurrentTheme(activeThemes[0])};var getThemeSupports2=forward_resolver_default("getCurrentTheme");var getEmbedPreview2=(url)=>async({dispatch:dispatch3})=>{try{const embedProxyResponse=await(0,import_api_fetch10.default)({path:(0,import_url6.addQueryArgs)("/oembed/1.0/proxy",{url})});dispatch3.receiveEmbedPreview(url,embedProxyResponse)}catch{dispatch3.receiveEmbedPreview(url,!1)}};var canUser2=(requestedAction,resource,id2)=>async({dispatch:dispatch3,registry,resolveSelect:resolveSelect2})=>{if(!ALLOWED_RESOURCE_ACTIONS.includes(requestedAction)){throw new Error(`'${requestedAction}' is not a valid action.`)}
1855const{hasStartedResolution}=registry.select(STORE_NAME);for(const relatedAction of ALLOWED_RESOURCE_ACTIONS){if(relatedAction===requestedAction){continue}
1856const isAlreadyResolving=hasStartedResolution("canUser",[relatedAction,resource,id2]);if(isAlreadyResolving){return}}
1857let resourcePath=null;if(typeof resource==="object"){if(!resource.kind||!resource.name){throw new Error("The entity resource object is not valid.")}
1858const configs=await resolveSelect2.getEntitiesConfig(resource.kind);const entityConfig=configs.find((config)=>config.name===resource.name&&config.kind===resource.kind);if(!entityConfig){return}
1859resourcePath=entityConfig.baseURL+(resource.id?"/"+resource.id:"")}else{resourcePath=`/wp/v2/${resource}`+(id2?"/"+id2:"")}
1860let response;try{response=await(0,import_api_fetch10.default)({path:resourcePath,method:"OPTIONS",parse:!1})}catch{return}
1861const permissions=getUserPermissionsFromAllowHeader(response.headers?.get("allow"));const receiveUserPermissionArgs={};const canUserResolutionsArgs=[];for(const action of ALLOWED_RESOURCE_ACTIONS){receiveUserPermissionArgs[getUserPermissionCacheKey(action,resource,id2)]=permissions[action];if(action!==requestedAction){canUserResolutionsArgs.push([action,resource,id2])}}
1862registry.batch(()=>{dispatch3.receiveUserPermissions(receiveUserPermissionArgs);dispatch3.finishResolutions("canUser",canUserResolutionsArgs)})};var canUserEditEntityRecord2=(kind,name,recordId)=>async({dispatch:dispatch3})=>{await dispatch3(canUser2("update",{kind,name,id:recordId}))};var getAutosaves2=(postType,postId)=>async({dispatch:dispatch3,resolveSelect:resolveSelect2})=>{const{rest_base:restBase,rest_namespace:restNamespace="wp/v2",supports}=await resolveSelect2.getPostType(postType);if(!supports?.autosave){return}
1863const autosaves2=await(0,import_api_fetch10.default)({path:`/${restNamespace}/${restBase}/${postId}/autosaves?context=edit`});if(autosaves2&&autosaves2.length){dispatch3.receiveAutosaves(postId,autosaves2)}};var getAutosave2=(postType,postId)=>async({resolveSelect:resolveSelect2})=>{await resolveSelect2.getAutosaves(postType,postId)};var __experimentalGetCurrentGlobalStylesId2=()=>
1863async({dispatch:dispatch3,resolveSelect:resolveSelect2})=>{const activeThemes=await resolveSelect2.getEntityRecords("root","theme",{status:"active"});const globalStylesURL=activeThemes?.[0]?._links?.["wp:user-global-styles"]?.[0]?.href;if(!globalStylesURL){return}
1864const matches=globalStylesURL.match(/\/(\d+)(?:\?|$)/);const id2=matches?Number(matches[1]):null;if(id2){dispatch3.__experimentalReceiveCurrentGlobalStylesId(id2)}};var __experimentalGetCurrentThemeBaseGlobalStyles2=()=>async({resolveSelect:resolveSelect2,dispatch:dispatch3})=>{const currentTheme2=await resolveSelect2.getCurrentTheme();const themeGlobalStyles=await(0,import_api_fetch10.default)({path:`/wp/v2/global-styles/themes/${currentTheme2.stylesheet}?context=view`});dispatch3.__experimentalReceiveThemeBaseGlobalStyles(currentTheme2.stylesheet,themeGlobalStyles)};var __experimentalGetCurrentThemeGlobalStylesVariations2=()=>async({resolveSelect:resolveSelect2,dispatch:dispatch3})=>{const currentTheme2=await resolveSelect2.getCurrentTheme();const variations=await(0,import_api_fetch10.default)({path:`/wp/v2/global-styles/themes/${currentTheme2.stylesheet}/variations?context=view`});dispatch3.__experimentalReceiveThemeGlobalStyleVariations(currentTheme2.stylesheet,variations)};var getCurrentThemeGlobalStylesRevisions2=()=>async({resolveSelect:resolveSelect2,dispatch:dispatch3})=>{const globalStylesId=await resolveSelect2.__experimentalGetCurrentGlobalStylesId();const record=globalStylesId?await resolveSelect2.getEntityRecord("root","globalStyles",globalStylesId):void 0;const revisionsURL=record?._links?.["version-history"]?.[0]?.href;if(revisionsURL){const resetRevisions=await(0,import_api_fetch10.default)({url:revisionsURL});const revisions=resetRevisions?.map((revision)=>Object.fromEntries(Object.entries(revision).map(([key,value])=>[camelCase(key),value])));dispatch3.receiveThemeGlobalStyleRevisions(globalStylesId,revisions)}};getCurrentThemeGlobalStylesRevisions2.shouldInvalidate=(action)=>{return action.type==="SAVE_ENTITY_RECORD_FINISH"&&action.kind==="root"&&!action.error&&action.name==="globalStyles"};var getBlockPatterns2=()=>async({dispatch:dispatch3})=>{const patterns=await fetchBlockPatterns();dispatch3({type:"RECEIVE_BLOCK_PATTERNS",patterns})};var getBlockPatternCategories2=()=>async({dispatch:dispatch3})=>{const categories=await(0,import_api_fetch10.default)({path:"/wp/v2/block-patterns/categories"});dispatch3({type:"RECEIVE_BLOCK_PATTERN_CATEGORIES",categories})};var getUserPatternCategories2=()=>async({dispatch:dispatch3,resolveSelect:resolveSelect2})=>{const patternCategories=await resolveSelect2.getEntityRecords("taxonomy","wp_pattern_category",{per_page:-1,_fields:"id,name,description,slug",context:"view"});const mappedPatternCategories=patternCategories?.map((userCategory)=>({...userCategory,label:(0,import_html_entities2.decodeEntities)(userCategory.name),name:userCategory.slug}))||[];dispatch3({type:"RECEIVE_USER_PATTERN_CATEGORIES",patternCategories:mappedPatternCategories})};var getNavigationFallbackId2=()=>async({dispatch:dispatch3,select:select4,registry})=>{const fallback=await(0,import_api_fetch10.default)({path:(0,import_url6.addQueryArgs)("/wp-block-editor/v1/navigation-fallback",{_embed:!0})});const record=fallback?._embedded?.self;registry.batch(()=>{dispatch3.receiveNavigationFallbackId(fallback?.id);if(!record){return}
1865const existingFallbackEntityRecord=select4.getEntityRecord("postType","wp_navigation",fallback.id);const invalidateNavigationQueries=!existingFallbackEntityRecord;dispatch3.receiveEntityRecords("postType","wp_navigation",record,void 0,invalidateNavigationQueries);dispatch3.finishResolution("getEntityRecord",["postType","wp_navigation",fallback.id])})};var getDefaultTemplateId2=(query)=>async({dispatch:dispatch3,registry,resolveSelect:resolveSelect2})=>{const template=await(0,import_api_fetch10.default)({path:(0,import_url6.addQueryArgs)("/wp/v2/templates/lookup",query)});await resolveSelect2.getEntitiesConfig("postType");const id2=window?.__experimentalTemplateActivate?template?.wp_id||template?.id:template?.id;registry.batch(()=>{dispatch3.receiveDefaultTemplateId(query,id2||"");if(id2){template.id=id2;dispatch3.receiveEntityRecords("postType",template.type,template);dispatch3.finishResolution("getEntityRecord",["postType",template.type,id2])}})};getDefaultTemplateId2.shouldInvalidate=(action)=>{return action.type==="RECEIVE_ITEMS"&&action.kind==="root"&&action.name==="site"&&!!action.persistedEdits};var getRevisions2=(kind,name,recordKey,query={})=>
1865async({dispatch:dispatch3,resolveSelect:resolveSelect2})=>{const configs=await resolveSelect2.getEntitiesConfig(kind);const entityConfig=configs.find((config)=>config.name===name&&config.kind===kind);if(!entityConfig){return}
1866const rawQuery={...query};const lock3=await dispatch3.__unstableAcquireStoreLock(STORE_NAME,["entities","records",kind,name,recordKey,"revisions"],{exclusive:!1});try{if(query._fields){query={...query,_fields:[...new Set([...get_normalized_comma_separable_default(query._fields)||[],entityConfig.revisionKey||DEFAULT_ENTITY_KEY])].join()}}
1867const path=(0,import_url6.addQueryArgs)(entityConfig.getRevisionsUrl(recordKey),query);let records,response;const meta={};const isPaginated=entityConfig.supportsPagination&&query.per_page!==-1;try{response=await(0,import_api_fetch10.default)({path,parse:!isPaginated})}catch{return}
1868if(response){if(isPaginated){records=Object.values(await response.json());meta.totalItems=parseInt(response.headers.get("X-WP-Total"))}else{records=Object.values(response)}
1869if(query._fields){records=records.map((record)=>{query._fields.split(",").forEach((field)=>{if(!record.hasOwnProperty(field)){record[field]=void 0}});return record})}
1870await dispatch3.receiveRevisions(kind,name,recordKey,records,query,!1,meta);const key=entityConfig.revisionKey||DEFAULT_ENTITY_KEY;const normalizedQuery=normalizeQueryForResolution(rawQuery);const resolutionsArgs=records.filter((record)=>record[key]).map((record)=>
1870[kind,name,recordKey,record[key],normalizedQuery]);dispatch3.finishResolutions("getRevision",resolutionsArgs)}}finally{dispatch3.__unstableReleaseStoreLock(lock3)}};getRevisions2.shouldInvalidate=(action,kind,name,recordKey)=>action.type==="SAVE_ENTITY_RECORD_FINISH"&&name===action.name&&kind===action.kind&&!action.error&&recordKey===action.recordId;var getRevision2=(kind,name,recordKey,revisionKey,query)=>async({select:select4,dispatch:dispatch3,resolveSelect:resolveSelect2})=>{const configs=await resolveSelect2.getEntitiesConfig(kind);const entityConfig=configs.find((config)=>config.name===name&&config.kind===kind);if(!entityConfig){return}
1871if(query!==void 0&&query._fields){query={...query,_fields:[...new Set([...get_normalized_comma_separable_default(query._fields)||[],entityConfig.revisionKey||DEFAULT_ENTITY_KEY])].join()}}
1872const lock3=await dispatch3.__unstableAcquireStoreLock(STORE_NAME,["entities","records",kind,name,recordKey,"revisions",revisionKey],{exclusive:!1});try{if(select4.hasRevision(kind,name,recordKey,revisionKey,query)){return}
1873const path=(0,import_url6.addQueryArgs)(entityConfig.getRevisionsUrl(recordKey,revisionKey),query);let record;try{record=await(0,import_api_fetch10.default)({path})}catch{return}
1874if(record){await dispatch3.receiveRevisions(kind,name,recordKey,record,query)}}finally{dispatch3.__unstableReleaseStoreLock(lock3)}};var getRegisteredPostMeta2=(postType)=>async({dispatch:dispatch3,resolveSelect:resolveSelect2})=>{let options;try{const{rest_namespace:restNamespace="wp/v2",rest_base:restBase}=await resolveSelect2.getPostType(postType)||{};options=await(0,import_api_fetch10.default)({path:`${restNamespace}/${restBase}/?context=edit`,method:"OPTIONS"})}catch{return}
1875if(options){dispatch3.receiveRegisteredPostMeta(postType,options?.schema?.properties?.meta?.properties)}};var getEntitiesConfig2=(kind)=>async({dispatch:dispatch3})=>{const loader=additionalEntityConfigLoaders.find((l)=>l.kind===kind);if(!loader){return}
1876try{const configs=await loader.loadEntities();if(!configs.length){return}
1877dispatch3.addEntities(configs)}catch{}};var getEditorSettings2=()=>async({dispatch:dispatch3})=>{const settings=await(0,import_api_fetch10.default)({path:"/wp-block-editor/v1/settings"});dispatch3.receiveEditorSettings(settings)};var getEditorAssets2=()=>async({dispatch:dispatch3})=>{const assets=await(0,import_api_fetch10.default)({path:"/wp-block-editor/v1/assets"});dispatch3.receiveEditorAssets(assets)};var getViewConfig2=(kind,name,options={})=>async({dispatch:dispatch3})=>{const query={kind,name};const fields=get_normalized_comma_separable_default(options.fields);if(fields?.length){query._fields=fields.join(",")}
1878const config=await(0,import_api_fetch10.default)({path:(0,import_url6.addQueryArgs)("/wp/v2/view-config",query)});dispatch3.receiveViewConfig(kind,name,config)};function deepCopyLocksTreePath(tree,path){const newTree={...tree};let currentNode=newTree;for(const branchName of path){currentNode.children={...currentNode.children,[branchName]:{locks:[],children:{},...currentNode.children[branchName]}};currentNode=currentNode.children[branchName]}
1879return newTree}
1880function getNode(tree,path){let currentNode=tree;for(const branchName of path){const nextNode=currentNode.children[branchName];if(!nextNode){return null}
1881currentNode=nextNode}
1882return currentNode}
1883function*iteratePath(tree,path){let currentNode=tree;yield currentNode;for(const branchName of path){const nextNode=currentNode.children[branchName];if(!nextNode){break}
1884yield nextNode;currentNode=nextNode}}
1885function*iterateDescendants(node){const stack=Object.values(node.children);while(stack.length){const childNode=stack.pop();yield childNode;stack.push(...Object.values(childNode.children))}}
1886function hasConflictingLock({exclusive},locks2){if(exclusive&&locks2.length){return!0}
1887if(!exclusive&&locks2.filter((lock3)=>lock3.exclusive).length){return!0}
1888return!1}
1889var DEFAULT_STATE={requests:[],tree:{locks:[],children:{}}};function locks(state=DEFAULT_STATE,action){switch(action.type){case "ENQUEUE_LOCK_REQUEST":{const{request}=action;return{...state,requests:[request,...state.requests]}}
1890case "GRANT_LOCK_REQUEST":{const{lock:lock3,request}=action;const{store:store2,path}=request;const storePath=[store2,...path];const newTree=deepCopyLocksTreePath(state.tree,storePath);const node=getNode(newTree,storePath);node.locks=[...node.locks,lock3];return{...state,requests:state.requests.filter((r)=>r!==request),tree:newTree}}
1891case "RELEASE_LOCK":{const{lock:lock3}=action;const storePath=[lock3.store,...lock3.path];const newTree=deepCopyLocksTreePath(state.tree,storePath);const node=getNode(newTree,storePath);node.locks=node.locks.filter((l)=>l!==lock3);return{...state,tree:newTree}}}
1892return state}
1893function getPendingLockRequests(state){return state.requests}
1894function isLockAvailable(state,store2,path,{exclusive}){const storePath=[store2,...path];const locks2=state.tree;for(const node2 of iteratePath(locks2,storePath)){if(hasConflictingLock({exclusive},node2.locks)){return!1}}
1895const node=getNode(locks2,storePath);if(!node){return!0}
1896for(const descendant of iterateDescendants(node)){if(hasConflictingLock({exclusive},descendant.locks)){return!1}}
1897return!0}
1898function createLocks(){let state=locks(void 0,{type:"@@INIT"});function processPendingLockRequests(){for(const request of getPendingLockRequests(state)){const{store:store2,path,exclusive,notifyAcquired}=request;if(isLockAvailable(state,store2,path,{exclusive})){const lock3={store:store2,path,exclusive};state=locks(state,{type:"GRANT_LOCK_REQUEST",lock:lock3,request});notifyAcquired(lock3)}}}
1899function acquire(store2,path,exclusive){return new Promise((resolve)=>{state=locks(state,{type:"ENQUEUE_LOCK_REQUEST",request:{store:store2,path,exclusive,notifyAcquired:resolve}});processPendingLockRequests()})}
1900function release(lock3){state=locks(state,{type:"RELEASE_LOCK",lock:lock3});processPendingLockRequests()}
1901return{acquire,release}}
1902function createLocksActions(){const locks2=createLocks();function __unstableAcquireStoreLock(store2,path,{exclusive}){return()=>locks2.acquire(store2,path,exclusive)}
1903function __unstableReleaseStoreLock(lock3){return()=>locks2.release(lock3)}
1904return{__unstableAcquireStoreLock,__unstableReleaseStoreLock}}
1905var dynamicActions;var dynamicSelectors;var import_element2=__toESM(require_element(),1);var import_element=__toESM(require_element(),1);var EntityContext=(0,import_element.createContext)({});EntityContext.displayName="EntityContext";var import_jsx_runtime=__toESM(require_jsx_runtime(),1);function EntityProvider({kind,type:name,id:id2,revisionId,children}){const parent=(0,import_element2.useContext)(EntityContext);const childContext=(0,import_element2.useMemo)(()=>({...parent,...kind&&{[kind]:{...parent?.[kind],[name]:id2}},...revisionId!==void 0&&{revisionId}}),[parent,kind,name,id2,revisionId]);return(0,import_jsx_runtime.jsx)(EntityContext.Provider,{value:childContext,children})}
1906var import_data10=__toESM(require_data(),1);var import_deprecated4=__toESM(require_deprecated(),1);var import_element3=__toESM(require_element(),1);var Status=((Status2)=>{Status2.Idle="IDLE";Status2.Resolving="RESOLVING";Status2.Error="ERROR";Status2.Success="SUCCESS";return Status2})(Status||{});function getResolutionStatus(resolutionStatus){let status;switch(resolutionStatus){case "resolving":status=Status.Resolving;break;case "finished":status=Status.Success;break;case "error":status=Status.Error;break;default:status=Status.Idle}
1907return{status,isResolving:status===Status.Resolving,hasStarted:status!==Status.Idle,hasResolved:status===Status.Success||status===Status.Error}}
1908var EMPTY_OBJECT3={};function useEntityRecord(kind,name,recordId,options={enabled:!0}){const{editEntityRecord:editEntityRecord2,saveEditedEntityRecord:saveEditedEntityRecord2}=(0,import_data10.useDispatch)(store);const mutations=(0,import_element3.useMemo)(()=>({edit:(record2,editOptions={})=>editEntityRecord2(kind,name,recordId,record2,editOptions),save:(saveOptions={})=>saveEditedEntityRecord2(kind,name,recordId,{throwOnError:!0,...saveOptions})}),[editEntityRecord2,kind,name,recordId,saveEditedEntityRecord2]);const{record,editedRecord,hasEdits,edits,...resolution}=(0,import_data10.useSelect)((select4)=>{if(!options.enabled){return{record:null,editedRecord:EMPTY_OBJECT3,hasEdits:!1,edits:EMPTY_OBJECT3,...getResolutionStatus()}}
1909const storeSelectors=select4(store);const resolutionStatus=storeSelectors.getResolutionState("getEntityRecord",[kind,name,recordId])?.status;return{record:storeSelectors.getEntityRecord(kind,name,recordId)??null,editedRecord:storeSelectors.getEditedEntityRecord(kind,name,recordId),hasEdits:storeSelectors.hasEditsForEntityRecord(kind,name,recordId),edits:storeSelectors.getEntityRecordNonTransientEdits(kind,name,recordId),...getResolutionStatus(resolutionStatus)}},[kind,name,recordId,options.enabled]);return{record,editedRecord,hasEdits,edits,...resolution,...mutations}}
1910function useDeprecatedEntityRecord(kind,name,recordId,options){(0,import_deprecated4.default)(`wp.data.__experimentalUseEntityRecord`,{alternative:"wp.data.useEntityRecord",since:"6.1"});return useEntityRecord(kind,name,recordId,options)}
1911var import_url7=__toESM(require_url(),1);var import_deprecated5=__toESM(require_deprecated(),1);var import_data11=__toESM(require_data(),1);
1911var import_element4=__toESM(require_element(),1);var EMPTY_ARRAY=[];function useEntityRecords(kind,name,queryArgs={},options={enabled:!0}){const queryAsString=(0,import_url7.addQueryArgs)("",queryArgs);const{records,totalItems,totalPages,...rest}=(0,import_data11.useSelect)((select4)=>{if(!options.enabled){return{records:EMPTY_ARRAY,totalItems:null,totalPages:null,...getResolutionStatus()}}
1912const storeSelectors=select4(store);const resolutionStatus=storeSelectors.getResolutionState("getEntityRecords",[kind,name,queryArgs])?.status;return{records:storeSelectors.getEntityRecords(kind,name,queryArgs),totalItems:storeSelectors.getEntityRecordsTotalItems(kind,name,queryArgs),totalPages:storeSelectors.getEntityRecordsTotalPages(kind,name,queryArgs),...getResolutionStatus(resolutionStatus)}},[kind,name,queryAsString,options.enabled]);return{records,totalItems,totalPages,...rest}}
1913function useDeprecatedEntityRecords(kind,name,queryArgs,options){(0,import_deprecated5.default)(`wp.data.__experimentalUseEntityRecords`,{alternative:"wp.data.useEntityRecords",since:"6.1"});return useEntityRecords(kind,name,queryArgs,options)}
1914function useEntityRecordsWithPermissions(kind,name,queryArgs={},options={enabled:!0}){const entityConfig=(0,import_data11.useSelect)((select4)=>select4(store).getEntityConfig(kind,name),[kind,name]);const{records:data,...ret}=useEntityRecords(kind,name,{...queryArgs,...queryArgs._fields?{_fields:[...new Set([...get_normalized_comma_separable_default(queryArgs._fields)||[],"_links"])].join()}:{}},options);const ids=(0,import_element4.useMemo)(()=>data?.map((record)=>record[entityConfig?.key??"id"])??[],[data,entityConfig?.key]);const permissions=(0,import_data11.useSelect)((select4)=>{const{getEntityRecordsPermissions:getEntityRecordsPermissions2}=unlock2(select4(store));return getEntityRecordsPermissions2(kind,name,ids)},[ids,kind,name]);const dataWithPermissions=(0,import_element4.useMemo)(()=>data?.map((record,index)=>({...record,permissions:permissions[index]}))??[],[data,permissions]);return{records:dataWithPermissions,...ret}}
1915var import_deprecated6=__toESM(require_deprecated(),1);var import_warning=__toESM(require_warning(),1);var import_data12=__toESM(require_data(),1);function memize(fn,options){var size2=0;var head;var tail;options=options||{};function memoized(){var node=head,len=arguments.length,args2,i;searchCache:while(node){if(node.args.length!==arguments.length){node=node.next;continue}
1916for(i=0;i<len;i++){if(node.args[i]!==arguments[i]){node=node.next;continue searchCache}}
1917if(node!==head){if(node===tail){tail=node.prev}
1918node.prev.next=node.next;if(node.next){node.next.prev=node.prev}
1919node.next=head;node.prev=null;head.prev=node;head=node}
1920return node.val}
1921args2=new Array(len);for(i=0;i<len;i++){args2[i]=arguments[i]}
1922node={args:args2,val:fn.apply(null,args2)};if(head){head.prev=node;node.next=head}else{tail=node}
1923if(size2===options.maxSize){tail=tail.prev;tail.next=null}else{size2++}
1924head=node;return node.val}
1925memoized.clear=function(){head=null;tail=null;size2=0};return memoized}
1926var META_SELECTORS=["getIsResolving","hasStartedResolution","hasFinishedResolution","isResolving","getCachedResolvers"];function useQuerySelect(mapQuerySelect,deps){return(0,import_data12.useSelect)((select4,registry)=>{const resolve=(store2)=>enrichSelectors(select4(store2));return mapQuerySelect(resolve,registry)},deps)}
1927var enrichSelectors=memize(((selectors)=>{const resolvers={};for(const selectorName in selectors){if(META_SELECTORS.includes(selectorName)){continue}
1928Object.defineProperty(resolvers,selectorName,{get:()=>(...args2)=>{const data=selectors[selectorName](...args2);const resolutionStatus=selectors.getResolutionState(selectorName,args2)?.status;return{data,...getResolutionStatus(resolutionStatus)}}})}
1929return resolvers}));function useResourcePermissions(resource,id2){const isEntity=typeof resource==="object";const resourceAsString=isEntity?JSON.stringify(resource):resource;if(isEntity&&typeof id2!=="undefined"){(0,import_warning.default)(`When 'resource' is an entity object, passing 'id' as a separate argument isn't supported.`)}
1930return useQuerySelect((resolve)=>{const hasId=isEntity?!!resource.id:!!id2;const{canUser:canUser3}=resolve(store);const collectionResource=isEntity?{kind:resource.kind,name:resource.name}:resource;const create9=canUser3("create",collectionResource);if(!hasId){const read2=canUser3("read",collectionResource);const isResolving2=create9.isResolving||read2.isResolving;const hasResolved2=create9.hasResolved&&read2.hasResolved;let status2=Status.Idle;if(isResolving2){status2=Status.Resolving}else if(hasResolved2){status2=Status.Success}
1931return{status:status2,isResolving:isResolving2,hasResolved:hasResolved2,canCreate:create9.hasResolved&&
1931create9.data,canRead:read2.hasResolved&&read2.data}}
1932const read=canUser3("read",resource,id2);const update=canUser3("update",resource,id2);const _delete=canUser3("delete",resource,id2);const isResolving=read.isResolving||create9.isResolving||update.isResolving||_delete.isResolving;const hasResolved=read.hasResolved&&create9.hasResolved&&update.hasResolved&&_delete.hasResolved;let status=Status.Idle;if(isResolving){status=Status.Resolving}else if(hasResolved){status=Status.Success}
1933return{status,isResolving,hasResolved,canRead:hasResolved&&read.data,canCreate:hasResolved&&create9.data,canUpdate:hasResolved&&update.data,canDelete:hasResolved&&_delete.data}},[resourceAsString,id2])}
1934var use_resource_permissions_default=useResourcePermissions;function useDeprecatedResourcePermissions(resource,id2){(0,import_deprecated6.default)(`wp.data.__experimentalUseResourcePermissions`,{alternative:"wp.data.useResourcePermissions",since:"6.1"});return useResourcePermissions(resource,id2)}
1935var import_element6=__toESM(require_element(),1);var import_data13=__toESM(require_data(),1);var import_blocks5=__toESM(require_blocks(),1);var import_element5=__toESM(require_element(),1);function useEntityId(kind,name){const context=(0,import_element5.useContext)(EntityContext);return context?.[kind]?.[name]}
1936var import_rich_text4=__toESM(require_rich_text(),1);var import_block_editor5=__toESM(require_block_editor(),1);var unlockedApis;var cache=new WeakMap();function getRichTextValuesCached(block){if(!unlockedApis){unlockedApis=unlock2(import_block_editor5.privateApis)}
1937if(!cache.has(block)){const values=unlockedApis.getRichTextValues([block]);cache.set(block,values)}
1938return cache.get(block)}
1939var cache2=new WeakMap();function getBlockFootnotesOrder(block){if(!cache2.has(block)){const order=[];for(const value of getRichTextValuesCached(block)){if(!value){continue}
1940value.replacements.forEach(({type,attributes})=>{if(type==="core/footnote"){order.push(attributes["data-fn"])}})}
1941cache2.set(block,order)}
1942return cache2.get(block)}
1943function getFootnotesOrder(blocks){return blocks.flatMap(getBlockFootnotesOrder)}
1944var oldFootnotes={};function updateFootnotesFromMeta(blocks,meta){const output={blocks};if(!meta){return output}
1945if(meta.footnotes===void 0){return output}
1946const newOrder=getFootnotesOrder(blocks);const footnotes=meta.footnotes?JSON.parse(meta.footnotes):[];const currentOrder=footnotes.map((fn)=>fn.id);if(currentOrder.join("")===newOrder.join("")){return output}
1947const newFootnotes=newOrder.map((fnId)=>footnotes.find((fn)=>fn.id===fnId)||oldFootnotes[fnId]||{id:fnId,content:""});function updateAttributes(attributes){if(!attributes||Array.isArray(attributes)||typeof attributes!=="object"){return attributes}
1948attributes={...attributes};for(const key in attributes){const value=attributes[key];if(Array.isArray(value)){attributes[key]=value.map(updateAttributes);continue}
1949if(typeof value!=="string"&&!(value instanceof import_rich_text4.RichTextData)){continue}
1950const richTextValue=typeof value==="string"?import_rich_text4.RichTextData.fromHTMLString(value):new import_rich_text4.RichTextData(value);let hasFootnotes=!1;richTextValue.replacements.forEach((replacement)=>{if(replacement.type==="core/footnote"){const id2=replacement.attributes["data-fn"];const index=newOrder.indexOf(id2);const countValue=(0,import_rich_text4.create)({html:replacement.innerHTML});countValue.text=String(index+1);countValue.formats=Array.from({length:countValue.text.length},()=>countValue.formats[0]);countValue.replacements=Array.from({length:countValue.text.length},()=>countValue.replacements[0]);replacement.innerHTML=(0,import_rich_text4.toHTMLString)({value:countValue});hasFootnotes=!0}});if(hasFootnotes){attributes[key]=typeof value==="string"?richTextValue.toHTMLString():richTextValue}}
1951return attributes}
1952function updateBlocksAttributes(__blocks){return __blocks.map((block)=>{return{...block,attributes:updateAttributes(block.attributes),innerBlocks:updateBlocksAttributes(block.innerBlocks)}})}
1953const newBlocks=updateBlocksAttributes(blocks);oldFootnotes={...oldFootnotes,...footnotes.reduce((acc,fn)=>{if(!newOrder.includes(fn.id)){acc[fn.id]=fn}
1954return acc},{})};return{meta:{...meta,footnotes:JSON.stringify(newFootnotes)},blocks:newBlocks}}
1955var EMPTY_ARRAY2=[];function useEntityBlockEditor(kind,name,{id:_id}={}){const providerId=useEntityId(kind,name);const id2=_id??providerId;const{content,editedBlocks,meta}=(0,import_data13.useSelect)((select4)=>{if(!id2){return{}}
1956const{getEditedEntityRecord:getEditedEntityRecord3}=select4(STORE_NAME);const editedRecord=getEditedEntityRecord3(kind,name,id2);return{editedBlocks:editedRecord.blocks,content:editedRecord.content,meta:editedRecord.meta}},[kind,name,id2]);const{__unstableCreateUndoLevel:__unstableCreateUndoLevel2,editEntityRecord:editEntityRecord2}=(0,import_data13.useDispatch)(STORE_NAME);const blocks=(0,import_element6.useMemo)(()=>
1956{if(!id2){return void 0}
1957if(editedBlocks){return editedBlocks}
1958if(!content||typeof content!=="string"){return EMPTY_ARRAY2}
1959const cacheKey=getCacheKey(kind,name,id2);const cached=parsedBlocksCache.get(cacheKey);let _blocks;if(cached&&cached.content===content){_blocks=cached.blocks}else{_blocks=(0,import_blocks5.parse)(content);parsedBlocksCache.set(cacheKey,{content,blocks:_blocks})}
1960return _blocks},[kind,name,id2,editedBlocks,content]);const onChange=(0,import_element6.useCallback)((newBlocks,options)=>{const noChange=blocks===newBlocks;if(noChange){return __unstableCreateUndoLevel2(kind,name,id2)}
1961const{selection,...rest}=options;const edits={selection,content:({blocks:blocksForSerialization=[]})=>(0,import_blocks5.__unstableSerializeAndClean)(blocksForSerialization),...updateFootnotesFromMeta(newBlocks,meta)};editEntityRecord2(kind,name,id2,edits,{isCached:!1,...rest})},[kind,name,id2,blocks,meta,__unstableCreateUndoLevel2,editEntityRecord2]);const onInput=(0,import_element6.useCallback)((newBlocks,options)=>{const{selection,...rest}=options;const edits={selection,...updateFootnotesFromMeta(newBlocks,meta)};editEntityRecord2(kind,name,id2,edits,{isCached:!0,...rest})},[kind,name,id2,meta,editEntityRecord2]);return[blocks,onInput,onChange]}
1962var import_element7=__toESM(require_element(),1);var import_data14=__toESM(require_data(),1);function useEntityProp(kind,name,prop,_id){const providerId=useEntityId(kind,name);const id2=_id??providerId;const context=(0,import_element7.useContext)(EntityContext);const revisionId=context?.revisionId;const{value,fullValue}=(0,import_data14.useSelect)((select4)=>{if(revisionId){const revisions=select4(STORE_NAME).getRevisions(kind,name,id2,{per_page:-1,context:"edit",_fields:"id,date,author,meta,title.raw,excerpt.raw,content.raw"});const entityConfig=select4(STORE_NAME).getEntityConfig(kind,name);const revKey=entityConfig?.revisionKey||DEFAULT_ENTITY_KEY;const revision=revisions?.find((r)=>r[revKey]===revisionId);return revision?{value:revision[prop]?.raw??revision[prop],fullValue:revision[prop]}:{}}
1963const{getEntityRecord:getEntityRecord3,getEditedEntityRecord:getEditedEntityRecord3}=select4(STORE_NAME);const record=getEntityRecord3(kind,name,id2);const editedRecord=getEditedEntityRecord3(kind,name,id2);return record&&editedRecord?{value:editedRecord[prop],fullValue:record[prop]}:{}},[kind,name,id2,prop,revisionId]);const{editEntityRecord:editEntityRecord2}=(0,import_data14.useDispatch)(STORE_NAME);const setValue=(0,import_element7.useCallback)((newValue)=>{if(revisionId){return}
1964editEntityRecord2(kind,name,id2,{[prop]:newValue})},[editEntityRecord2,kind,name,id2,prop,revisionId]);return[value,setValue,fullValue]}
1965var import_compose3=__toESM(require_compose(),1);var import_element8=__toESM(require_element(),1);var defaultResolvedSelection={richTextOffset:null,localClientId:null,attributeKey:null};var defaultState={activeCollaborators:[],resolveSelection:()=>defaultResolvedSelection,getDebugData:()=>({doc:{},clients:{},collaboratorMap:{}}),isCurrentCollaboratorDisconnected:!1};function getAwarenessState(awareness,newState){const activeCollaborators=newState??awareness.getCurrentState();return{activeCollaborators,resolveSelection:(selection,blocks)=>awareness.convertSelectionStateToAbsolute(selection,blocks),getDebugData:()=>awareness.getDebugData(),isCurrentCollaboratorDisconnected:activeCollaborators.find((collaborator)=>collaborator.isMe)?.isConnected===!1}}
1966function usePostEditorAwarenessState(postId,postType){const[state,setState]=(0,import_element8.useState)(defaultState);(0,import_element8.useEffect)(()=>{if(null===postId||null===postType){setState(defaultState);return}
1967const objectType=`postType/${postType}`;const objectId=postId.toString();const awareness=getSyncManager()?.getAwareness(objectType,objectId);if(!awareness){setState(defaultState);return}
1968awareness.setUp();setState(getAwarenessState(awareness));const unsubscribe=awareness?.onStateChange((newState)=>{setState(getAwarenessState(awareness,newState))});return unsubscribe},[postId,postType]);return state}
1969function useActiveCollaborators(postId,postType){return usePostEditorAwarenessState(postId,postType).activeCollaborators}
1970function useResolvedSelection(postId,postType){const blocks=usePostContentBlocks();const awarenessState=usePostEditorAwarenessState(postId,postType);return(0,import_element8.useCallback)((selection)=>awarenessState.resolveSelection(selection,blocks),[blocks,awarenessState])}
1971function useLastPostSave(postId,postType){const[lastSave,setLastSave]=(0,import_element8.useState)(null);(0,import_element8.useEffect)(()=>
1971{if(null===postId||null===postType){setLastSave(null);return}
1972const awareness=getSyncManager()?.getAwareness(`postType/${postType}`,postId.toString());if(!awareness){setLastSave(null);return}
1973awareness.setUp();const stateMap=awareness.doc.getMap("state");const recordMap=awareness.doc.getMap("document");const setupTime=Date.now();const observer=(event)=>{if(event.keysChanged.has("savedAt")){const savedAt=stateMap.get("savedAt");const savedByClientId=stateMap.get("savedBy");if(typeof savedAt==="number"&&typeof savedByClientId==="number"&&savedAt>setupTime){const postStatus=recordMap.get("status");setLastSave({savedAt,savedByClientId,postStatus})}}};stateMap.observe(observer);return()=>{stateMap.unobserve(observer)}},[postId,postType]);return lastSave}
1974function useOnCollaboratorJoin(postId,postType,callback){const{activeCollaborators}=usePostEditorAwarenessState(postId,postType);const prevCollaborators=(0,import_compose3.usePrevious)(activeCollaborators);(0,import_element8.useEffect)(()=>{if(!prevCollaborators||prevCollaborators.length===0){return}
1975const prevMap=new Map(prevCollaborators.map((collaborator)=>[collaborator.clientId,collaborator]));const me=activeCollaborators.find((collaborator)=>collaborator.isMe);for(const collaborator of activeCollaborators){if(!prevMap.has(collaborator.clientId)&&!collaborator.isMe){callback(collaborator,me)}}},[activeCollaborators,prevCollaborators,callback])}
1976function useOnCollaboratorLeave(postId,postType,callback){const{activeCollaborators}=usePostEditorAwarenessState(postId,postType);const prevCollaborators=(0,import_compose3.usePrevious)(activeCollaborators);(0,import_element8.useEffect)(()=>{if(!prevCollaborators||prevCollaborators.length===0){return}
1977const newMap=new Map(activeCollaborators.map((collaborator)=>[collaborator.clientId,collaborator]));for(const prevCollab of prevCollaborators){if(prevCollab.isMe||!prevCollab.isConnected){continue}
1978const newCollab=newMap.get(prevCollab.clientId);if(!newCollab?.isConnected){callback(prevCollab)}}},[activeCollaborators,prevCollaborators,callback])}
1979function useOnPostSave(postId,postType,callback){const{activeCollaborators}=usePostEditorAwarenessState(postId,postType);const lastPostSave=useLastPostSave(postId,postType);const prevPostSave=(0,import_compose3.usePrevious)(lastPostSave);(0,import_element8.useEffect)(()=>{if(!lastPostSave){return}
1980if(prevPostSave&&lastPostSave.savedAt===prevPostSave.savedAt){return}
1981const saver=activeCollaborators.find((collaborator)=>collaborator.clientId===lastPostSave.savedByClientId&&!collaborator.isMe);if(!saver){return}
1982callback(lastPostSave,saver,prevPostSave??null)},[lastPostSave,prevPostSave,activeCollaborators,callback])}
1983var lockedApis={useEntityRecordsWithPermissions,RECEIVE_INTERMEDIATE_RESULTS,retrySyncConnection,useActiveCollaborators,useResolvedSelection,useOnCollaboratorJoin,useOnCollaboratorLeave,useOnPostSave,SelectionType,SelectionDirection};var privateApis2={};lock2(privateApis2,lockedApis);var entitiesConfig2=[...rootEntitiesConfig,...additionalEntityConfigLoaders.filter((config)=>!!config.name)];var entitySelectors=entitiesConfig2.reduce((result,entity2)=>{const{kind,name,plural}=entity2;const getEntityRecordMethodName=getMethodName(kind,name);result[getEntityRecordMethodName]=(state,key,query)=>{logEntityDeprecation(kind,name,getEntityRecordMethodName,{isShorthandSelector:!0,alternativeFunctionName:"getEntityRecord"});return getEntityRecord(state,kind,name,key,query)};if(plural){const getEntityRecordsMethodName=getMethodName(kind,plural,"get");result[getEntityRecordsMethodName]=(state,query)=>{logEntityDeprecation(kind,name,getEntityRecordsMethodName,{isShorthandSelector:!0,alternativeFunctionName:"getEntityRecords"});return getEntityRecords(state,kind,name,query)}}
1984return result},{});var entityResolvers=entitiesConfig2.reduce((result,entity2)=>{const{kind,name,plural}=entity2;const getEntityRecordMethodName=getMethodName(kind,name);result[getEntityRecordMethodName]=(key,query)=>{logEntityDeprecation(kind,name,getEntityRecordMethodName,{isShorthandSelector:!0,alternativeFunctionName:"getEntityRecord"});return getEntityRecord2(kind,name,key,query)};if(plural){const getEntityRecordsMethodName=getMethodName(kind,plural,"get");result[getEntityRecordsMethodName]=(...args2)=>{logEntityDeprecation(kind,plural,getEntityRecordsMethodName,{isShorthandSelector:!0,alternativeFunctionName:"getEntityRecords"});return getEntityRecords2(kind,name,...args2)};result[getEntityRecordsMethodName].shouldInvalidate=(action)=>getEntityRecords2.shouldInvalidate(action,kind,name)}
1985return result},{});var entityActions=entitiesConfig2.reduce((result,entity2)=>{const{kind,name}=entity2;const saveEntityRecordMethodName=getMethodName(kind,name,"save");result[saveEntityRecordMethodName]=(record,options)=>{logEntityDeprecation(kind,name,saveEntityRecordMethodName,{isShorthandSelector:!0,alternativeFunctionName:"saveEntityRecord"});return saveEntityRecord(kind,name,record,options)};const deleteEntityRecordMethodName=getMethodName(kind,name,"delete");result[deleteEntityRecordMethodName]=(key,query,options)=>{logEntityDeprecation(kind,name,deleteEntityRecordMethodName,{isShorthandSelector:!0,alternativeFunctionName:"deleteEntityRecord"});return deleteEntityRecord(kind,name,key,query,options)};return result},{});var storeConfig=()=>({reducer:reducer_default2,actions:{...dynamicActions,...actions_exports,...entityActions,...createLocksActions()},selectors:{...dynamicSelectors,...selectors_exports,...entitySelectors},resolvers:{...resolvers_exports,...entityResolvers}});var store=(0,import_data15.createReduxStore)(STORE_NAME,storeConfig());unlock2(store).registerPrivateSelectors(private_selectors_exports);unlock2(store).registerPrivateActions(private_actions_exports);(0,import_data15.register)(store);return __toCommonJS(index_exports)})();(window.wp||={}).coreData=wp.coreData})()

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.