@steedos-widgets/liveblocks 6.10.1-beta.41 → 6.10.1-beta.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,4 +4,4 @@
4
4
  *
5
5
  * Copyright (c) 2014-2017, Jon Schlinkert.
6
6
  * Released under the MIT License.
7
- */function isObject$4(e){return"[object Object]"===Object.prototype.toString.call(e)}function isPlainObject$1(e){var t,n;return!1!==isObject$4(e)&&(void 0===(t=e.constructor)||!1!==isObject$4(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf"))}var NOTHING=Symbol.for("immer-nothing"),DRAFTABLE=Symbol.for("immer-draftable"),DRAFT_STATE=Symbol.for("immer-state");function die(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var getPrototypeOf=Object.getPrototypeOf;function isDraft(e){return!!e&&!!e[DRAFT_STATE]}function isDraftable(e){return!!e&&(isPlainObject(e)||Array.isArray(e)||!!e[DRAFTABLE]||!!e.constructor?.[DRAFTABLE]||isMap(e)||isSet(e))}var objectCtorString=Object.prototype.constructor.toString();function isPlainObject(e){if(!e||"object"!=typeof e)return!1;const t=getPrototypeOf(e);if(null===t)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return n===Object||"function"==typeof n&&Function.toString.call(n)===objectCtorString}function each(e,t){0===getArchtype(e)?Reflect.ownKeys(e).forEach((n=>{t(n,e[n],e)})):e.forEach(((n,r)=>t(r,n,e)))}function getArchtype(e){const t=e[DRAFT_STATE];return t?t.type_:Array.isArray(e)?1:isMap(e)?2:isSet(e)?3:0}function has(e,t){return 2===getArchtype(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function set(e,t,n){const r=getArchtype(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n}function is(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function isMap(e){return e instanceof Map}function isSet(e){return e instanceof Set}function latest(e){return e.copy_||e.base_}function shallowCopy(e,t){if(isMap(e))return new Map(e);if(isSet(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=isPlainObject(e);if(!0===t||"class_only"===t&&!n){const t=Object.getOwnPropertyDescriptors(e);delete t[DRAFT_STATE];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){const o=n[r],a=t[o];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[o]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[o]})}return Object.create(getPrototypeOf(e),t)}{const t=getPrototypeOf(e);if(null!==t&&n)return{...e};const r=Object.create(t);return Object.assign(r,e)}}function freeze$1(e,t=!1){return isFrozen(e)||isDraft(e)||!isDraftable(e)||(getArchtype(e)>1&&(e.set=e.add=e.clear=e.delete=dontMutateFrozenCollections),Object.freeze(e),t&&Object.entries(e).forEach((([e,t])=>freeze$1(t,!0)))),e}function dontMutateFrozenCollections(){die(2)}function isFrozen(e){return Object.isFrozen(e)}var plugins={},currentScope;function getPlugin(e){const t=plugins[e];return t||die(0,e),t}function getCurrentScope(){return currentScope}function createScope(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function usePatchesInScope(e,t){t&&(getPlugin("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function revokeScope(e){leaveScope(e),e.drafts_.forEach(revokeDraft),e.drafts_=null}function leaveScope(e){e===currentScope&&(currentScope=e.parent_)}function enterScope(e){return currentScope=createScope(currentScope,e)}function revokeDraft(e){const t=e[DRAFT_STATE];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function processResult(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return void 0!==e&&e!==n?(n[DRAFT_STATE].modified_&&(revokeScope(t),die(4)),isDraftable(e)&&(e=finalize(t,e),t.parent_||maybeFreeze(t,e)),t.patches_&&getPlugin("Patches").generateReplacementPatches_(n[DRAFT_STATE].base_,e,t.patches_,t.inversePatches_)):e=finalize(t,n,[]),revokeScope(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==NOTHING?e:void 0}function finalize(e,t,n){if(isFrozen(t))return t;const r=t[DRAFT_STATE];if(!r)return each(t,((o,a)=>finalizeProperty(e,r,t,o,a,n))),t;if(r.scope_!==e)return t;if(!r.modified_)return maybeFreeze(e,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const t=r.copy_;let o=t,a=!1;3===r.type_&&(o=new Set(t),t.clear(),a=!0),each(o,((o,i)=>finalizeProperty(e,r,t,o,i,n,a))),maybeFreeze(e,t,!1),n&&e.patches_&&getPlugin("Patches").generatePatches_(r,n,e.patches_,e.inversePatches_)}return r.copy_}function finalizeProperty(e,t,n,r,o,a,i){if(isDraft(o)){const i=finalize(e,o,a&&t&&3!==t.type_&&!has(t.assigned_,r)?a.concat(r):void 0);if(set(n,r,i),!isDraft(i))return;e.canAutoFreeze_=!1}else i&&n.add(o);if(isDraftable(o)&&!isFrozen(o)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;finalize(e,o),t&&t.scope_.parent_||"symbol"==typeof r||!Object.prototype.propertyIsEnumerable.call(n,r)||maybeFreeze(e,o)}}function maybeFreeze(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&freeze$1(t,n)}function createProxyProxy(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:getCurrentScope(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let o=r,a=objectTraps;n&&(o=[r],a=arrayTraps);const{revoke:i,proxy:s}=Proxy.revocable(o,a);return r.draft_=s,r.revoke_=i,s}var objectTraps={get(e,t){if(t===DRAFT_STATE)return e;const n=latest(e);if(!has(n,t))return readPropFromProto(e,n,t);const r=n[t];return e.finalized_||!isDraftable(r)?r:r===peek(e.base_,t)?(prepareCopy(e),e.copy_[t]=createProxy(r,e)):r},has:(e,t)=>t in latest(e),ownKeys:e=>Reflect.ownKeys(latest(e)),set(e,t,n){const r=getDescriptorFromProto(latest(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const r=peek(latest(e),t),o=r?.[DRAFT_STATE];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(is(n,r)&&(void 0!==n||has(e.base_,t)))return!0;prepareCopy(e),markChanged(e)}return e.copy_[t]===n&&(void 0!==n||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty:(e,t)=>(void 0!==peek(e.base_,t)||t in e.base_?(e.assigned_[t]=!1,prepareCopy(e),markChanged(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const n=latest(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:r.enumerable,value:n[t]}:r},defineProperty(){die(11)},getPrototypeOf:e=>getPrototypeOf(e.base_),setPrototypeOf(){die(12)}},arrayTraps={};function peek(e,t){const n=e[DRAFT_STATE];return(n?latest(n):e)[t]}function readPropFromProto(e,t,n){const r=getDescriptorFromProto(t,n);return r?"value"in r?r.value:r.get?.call(e.draft_):void 0}function getDescriptorFromProto(e,t){if(!(t in e))return;let n=getPrototypeOf(e);for(;n;){const e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=getPrototypeOf(n)}}function markChanged(e){e.modified_||(e.modified_=!0,e.parent_&&markChanged(e.parent_))}function prepareCopy(e){e.copy_||(e.copy_=shallowCopy(e.base_,e.scope_.immer_.useStrictShallowCopy_))}each(objectTraps,((e,t)=>{arrayTraps[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),arrayTraps.deleteProperty=function(e,t){return arrayTraps.set.call(this,e,t,void 0)},arrayTraps.set=function(e,t,n){return objectTraps.set.call(this,e[0],t,n,e[0])};var Immer2=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(e,t,n)=>{if("function"==typeof e&&"function"!=typeof t){const n=t;t=e;const r=this;return function(e=n,...o){return r.produce(e,(e=>t.call(this,e,...o)))}}let r;if("function"!=typeof t&&die(6),void 0!==n&&"function"!=typeof n&&die(7),isDraftable(e)){const o=enterScope(this),a=createProxy(e,void 0);let i=!0;try{r=t(a),i=!1}finally{i?revokeScope(o):leaveScope(o)}return usePatchesInScope(o,n),processResult(r,o)}if(!e||"object"!=typeof e){if(r=t(e),void 0===r&&(r=e),r===NOTHING&&(r=void 0),this.autoFreeze_&&freeze$1(r,!0),n){const t=[],o=[];getPlugin("Patches").generateReplacementPatches_(e,r,t,o),n(t,o)}return r}die(1,e)},this.produceWithPatches=(e,t)=>{if("function"==typeof e)return(t,...n)=>this.produceWithPatches(t,(t=>e(t,...n)));let n,r;return[this.produce(e,t,((e,t)=>{n=e,r=t})),n,r]},"boolean"==typeof e?.autoFreeze&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof e?.useStrictShallowCopy&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){isDraftable(e)||die(8),isDraft(e)&&(e=current(e));const t=enterScope(this),n=createProxy(e,void 0);return n[DRAFT_STATE].isManual_=!0,leaveScope(t),n}finishDraft(e,t){const n=e&&e[DRAFT_STATE];n&&n.isManual_||die(9);const{scope_:r}=n;return usePatchesInScope(r,t),processResult(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));const r=getPlugin("Patches").applyPatches_;return isDraft(e)?r(e,t):this.produce(e,(e=>r(e,t)))}};function createProxy(e,t){const n=isMap(e)?getPlugin("MapSet").proxyMap_(e,t):isSet(e)?getPlugin("MapSet").proxySet_(e,t):createProxyProxy(e,t);return(t?t.scope_:getCurrentScope()).drafts_.push(n),n}function current(e){return isDraft(e)||die(10,e),currentImpl(e)}function currentImpl(e){if(!isDraftable(e)||isFrozen(e))return e;const t=e[DRAFT_STATE];let n;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=shallowCopy(e,t.scope_.immer_.useStrictShallowCopy_)}else n=shallowCopy(e,!0);return each(n,((e,t)=>{set(n,e,currentImpl(t))})),t&&(t.finalized_=!1),n}var immer=new Immer2,produce=immer.produce;immer.produceWithPatches.bind(immer),immer.setAutoFreeze.bind(immer),immer.setUseStrictShallowCopy.bind(immer),immer.applyPatches.bind(immer);var createDraft=immer.createDraft.bind(immer),finishDraft=immer.finishDraft.bind(immer),PathRef={transform(e,t){var{current:n,affinity:r}=e;if(null!=n){var o=Path.transform(n,t,{affinity:r});e.current=o,null==o&&e.unref()}}},PointRef={transform(e,t){var{current:n,affinity:r}=e;if(null!=n){var o=Point.transform(n,t,{affinity:r});e.current=o,null==o&&e.unref()}}},RangeRef={transform(e,t){var{current:n,affinity:r}=e;if(null!=n){var o=Range.transform(n,t,{affinity:r});e.current=o,null==o&&e.unref()}}},DIRTY_PATHS=new WeakMap,DIRTY_PATH_KEYS=new WeakMap,FLUSHING=new WeakMap,NORMALIZING=new WeakMap,PATH_REFS=new WeakMap,POINT_REFS=new WeakMap,RANGE_REFS=new WeakMap,Path={ancestors(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,r=Path.levels(e,t);return r=n?r.slice(1):r.slice(0,-1)},common(e,t){for(var n=[],r=0;r<e.length&&r<t.length;r++){var o=e[r];if(o!==t[r])break;n.push(o)}return n},compare(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return 0},endsAfter(e,t){var n=e.length-1,r=e.slice(0,n),o=t.slice(0,n),a=e[n],i=t[n];return Path.equals(r,o)&&a>i},endsAt(e,t){var n=e.length,r=e.slice(0,n),o=t.slice(0,n);return Path.equals(r,o)},endsBefore(e,t){var n=e.length-1,r=e.slice(0,n),o=t.slice(0,n),a=e[n],i=t[n];return Path.equals(r,o)&&a<i},equals:(e,t)=>e.length===t.length&&e.every(((e,n)=>e===t[n])),hasPrevious:e=>e[e.length-1]>0,isAfter:(e,t)=>1===Path.compare(e,t),isAncestor:(e,t)=>e.length<t.length&&0===Path.compare(e,t),isBefore:(e,t)=>-1===Path.compare(e,t),isChild:(e,t)=>e.length===t.length+1&&0===Path.compare(e,t),isCommon:(e,t)=>e.length<=t.length&&0===Path.compare(e,t),isDescendant:(e,t)=>e.length>t.length&&0===Path.compare(e,t),isParent:(e,t)=>e.length+1===t.length&&0===Path.compare(e,t),isPath:e=>Array.isArray(e)&&(0===e.length||"number"==typeof e[0]),isSibling(e,t){if(e.length!==t.length)return!1;var n=e.slice(0,-1),r=t.slice(0,-1);return e[e.length-1]!==t[t.length-1]&&Path.equals(n,r)},levels(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,r=[],o=0;o<=e.length;o++)r.push(e.slice(0,o));return n&&r.reverse(),r},next(e){if(0===e.length)throw new Error("Cannot get the next path of a root path [".concat(e,"], because it has no next index."));var t=e[e.length-1];return e.slice(0,-1).concat(t+1)},operationCanTransformPath(e){switch(e.type){case"insert_node":case"remove_node":case"merge_node":case"split_node":case"move_node":return!0;default:return!1}},parent(e){if(0===e.length)throw new Error("Cannot get the parent path of the root path [".concat(e,"]."));return e.slice(0,-1)},previous(e){if(0===e.length)throw new Error("Cannot get the previous path of a root path [".concat(e,"], because it has no previous index."));var t=e[e.length-1];if(t<=0)throw new Error("Cannot get the previous path of a first child path [".concat(e,"] because it would result in a negative index."));return e.slice(0,-1).concat(t-1)},relative(e,t){if(!Path.isAncestor(t,e)&&!Path.equals(e,t))throw new Error("Cannot get the relative path of [".concat(e,"] inside ancestor [").concat(t,"], because it is not above or equal to the path."));return e.slice(t.length)},transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e)return null;var r=[...e],{affinity:o="forward"}=n;if(0===e.length)return r;switch(t.type){case"insert_node":var{path:a}=t;(Path.equals(a,r)||Path.endsBefore(a,r)||Path.isAncestor(a,r))&&(r[a.length-1]+=1);break;case"remove_node":var{path:i}=t;if(Path.equals(i,r)||Path.isAncestor(i,r))return null;Path.endsBefore(i,r)&&(r[i.length-1]-=1);break;case"merge_node":var{path:s,position:l}=t;Path.equals(s,r)||Path.endsBefore(s,r)?r[s.length-1]-=1:Path.isAncestor(s,r)&&(r[s.length-1]-=1,r[s.length]+=l);break;case"split_node":var{path:c,position:u}=t;if(Path.equals(c,r)){if("forward"===o)r[r.length-1]+=1;else if("backward"!==o)return null}else Path.endsBefore(c,r)?r[c.length-1]+=1:Path.isAncestor(c,r)&&e[c.length]>=u&&(r[c.length-1]+=1,r[c.length]-=u);break;case"move_node":var{path:d,newPath:f}=t;if(Path.equals(d,f))return r;if(Path.isAncestor(d,r)||Path.equals(d,r)){var p=f.slice();return Path.endsBefore(d,f)&&d.length<f.length&&(p[d.length-1]-=1),p.concat(r.slice(d.length))}Path.isSibling(d,f)&&(Path.isAncestor(f,r)||Path.equals(f,r))?Path.endsBefore(d,r)?r[d.length-1]-=1:r[d.length-1]+=1:Path.endsBefore(f,r)||Path.equals(f,r)||Path.isAncestor(f,r)?(Path.endsBefore(d,r)&&(r[d.length-1]-=1),r[f.length-1]+=1):Path.endsBefore(d,r)&&(Path.equals(f,r)&&(r[f.length-1]+=1),r[d.length-1]-=1)}return r}};function _typeof$4(e){return _typeof$4="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$4(e)}function _toPrimitive$4(e,t){if("object"!==_typeof$4(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$4(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$4(e){var t=_toPrimitive$4(e,"string");return"symbol"===_typeof$4(t)?t:String(t)}function _defineProperty$4(e,t,n){return(t=_toPropertyKey$4(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys$e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$e(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$e(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var applyToDraft=(e,t,n)=>{switch(n.type){case"insert_node":var{path:r,node:o}=n,a=Node$1.parent(e,r),i=r[r.length-1];if(i>a.children.length)throw new Error('Cannot apply an "insert_node" operation at path ['.concat(r,"] because the destination is past the end of the node."));if(a.children.splice(i,0,o),t)for(var[s,l]of Range.points(t))t[l]=Point.transform(s,n);break;case"insert_text":var{path:c,offset:u,text:d}=n;if(0===d.length)break;var f=Node$1.leaf(e,c),p=f.text.slice(0,u),m=f.text.slice(u);if(f.text=p+d+m,t)for(var[h,_]of Range.points(t))t[_]=Point.transform(h,n);break;case"merge_node":var{path:g}=n,v=Node$1.get(e,g),E=Path.previous(g),y=Node$1.get(e,E),b=Node$1.parent(e,g),C=g[g.length-1];if(Text$1.isText(v)&&Text$1.isText(y))y.text+=v.text;else{if(Text$1.isText(v)||Text$1.isText(y))throw new Error('Cannot apply a "merge_node" operation at path ['.concat(g,"] to nodes of different interfaces: ").concat(Scrubber.stringify(v)," ").concat(Scrubber.stringify(y)));y.children.push(...v.children)}if(b.children.splice(C,1),t)for(var[R,w]of Range.points(t))t[w]=Point.transform(R,n);break;case"move_node":var{path:S,newPath:D}=n;if(Path.isAncestor(S,D))throw new Error("Cannot move a path [".concat(S,"] to new path [").concat(D,"] because the destination is inside itself."));var T=Node$1.get(e,S),O=Node$1.parent(e,S),A=S[S.length-1];O.children.splice(A,1);var I=Path.transform(S,n),x=Node$1.get(e,Path.parent(I)),N=I[I.length-1];if(x.children.splice(N,0,T),t)for(var[F,P]of Range.points(t))t[P]=Point.transform(F,n);break;case"remove_node":var{path:k}=n,$=k[k.length-1];if(Node$1.parent(e,k).children.splice($,1),t)for(var[M,B]of Range.points(t)){var L=Point.transform(M,n);if(null!=t&&null!=L)t[B]=L;else{var j=void 0,U=void 0;for(var[V,H]of Node$1.texts(e)){if(-1!==Path.compare(H,k)){U=[V,H];break}j=[V,H]}var z=!1;j&&U&&(z=Path.equals(U[1],k)?!Path.hasPrevious(U[1]):Path.common(j[1],k).length<Path.common(U[1],k).length),j&&!z?(M.path=j[1],M.offset=j[0].text.length):U?(M.path=U[1],M.offset=0):t=null}}break;case"remove_text":var{path:K,offset:W,text:G}=n;if(0===G.length)break;var q=Node$1.leaf(e,K),Y=q.text.slice(0,W),J=q.text.slice(W+G.length);if(q.text=Y+J,t)for(var[X,Z]of Range.points(t))t[Z]=Point.transform(X,n);break;case"set_node":var{path:Q,properties:ee,newProperties:te}=n;if(0===Q.length)throw new Error("Cannot set properties on the root node!");var ne=Node$1.get(e,Q);for(var re in te){if("children"===re||"text"===re)throw new Error('Cannot set the "'.concat(re,'" property of nodes!'));var oe=te[re];null==oe?delete ne[re]:ne[re]=oe}for(var ae in ee)te.hasOwnProperty(ae)||delete ne[ae];break;case"set_selection":var{newProperties:ie}=n;if(null==ie)t=ie;else{if(null==t){if(!Range.isRange(ie))throw new Error('Cannot apply an incomplete "set_selection" operation properties '.concat(Scrubber.stringify(ie)," when there is no current selection."));t=_objectSpread$e({},ie)}for(var se in ie){var le=ie[se];if(null==le){if("anchor"===se||"focus"===se)throw new Error('Cannot remove the "'.concat(se,'" selection property'));delete t[se]}else t[se]=le}}break;case"split_node":var{path:ce,position:ue,properties:de}=n;if(0===ce.length)throw new Error('Cannot apply a "split_node" operation at path ['.concat(ce,"] because the root node cannot be split."));var fe,pe=Node$1.get(e,ce),me=Node$1.parent(e,ce),he=ce[ce.length-1];if(Text$1.isText(pe)){var _e=pe.text.slice(0,ue),ge=pe.text.slice(ue);pe.text=_e,fe=_objectSpread$e(_objectSpread$e({},de),{},{text:ge})}else{var ve=pe.children.slice(0,ue),Ee=pe.children.slice(ue);pe.children=ve,fe=_objectSpread$e(_objectSpread$e({},de),{},{children:Ee})}if(me.children.splice(he+1,0,fe),t)for(var[ye,be]of Range.points(t))t[be]=Point.transform(ye,n)}return t},GeneralTransforms={transform(e,t){e.children=createDraft(e.children);var n=e.selection&&createDraft(e.selection);try{n=applyToDraft(e,n,t)}finally{e.children=finishDraft(e.children),e.selection=n?isDraft(n)?finishDraft(n):n:null}}},NodeTransforms={insertNodes(e,t,n){e.insertNodes(t,n)},liftNodes(e,t){e.liftNodes(t)},mergeNodes(e,t){e.mergeNodes(t)},moveNodes(e,t){e.moveNodes(t)},removeNodes(e,t){e.removeNodes(t)},setNodes(e,t,n){e.setNodes(t,n)},splitNodes(e,t){e.splitNodes(t)},unsetNodes(e,t,n){e.unsetNodes(t,n)},unwrapNodes(e,t){e.unwrapNodes(t)},wrapNodes(e,t,n){e.wrapNodes(t,n)}},SelectionTransforms={collapse(e,t){e.collapse(t)},deselect(e){e.deselect()},move(e,t){e.move(t)},select(e,t){e.select(t)},setPoint(e,t,n){e.setPoint(t,n)},setSelection(e,t){e.setSelection(t)}},isDeepEqual=(e,t)=>{for(var n in e){var r=e[n],o=t[n];if(isPlainObject$1(r)&&isPlainObject$1(o)){if(!isDeepEqual(r,o))return!1}else if(Array.isArray(r)&&Array.isArray(o)){if(r.length!==o.length)return!1;for(var a=0;a<r.length;a++)if(r[a]!==o[a])return!1}else if(r!==o)return!1}for(var i in t)if(void 0===e[i]&&void 0!==t[i])return!1;return!0};function _objectWithoutPropertiesLoose$1(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function _objectWithoutProperties$1(e,t){if(null==e)return{};var n,r,o=_objectWithoutPropertiesLoose$1(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var _excluded$4=["anchor","focus"];function ownKeys$d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$d(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Range={edges(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,{anchor:r,focus:o}=e;return Range.isBackward(e)===n?[r,o]:[o,r]},end(e){var[,t]=Range.edges(e);return t},equals:(e,t)=>Point.equals(e.anchor,t.anchor)&&Point.equals(e.focus,t.focus),surrounds(e,t){var n=Range.intersection(e,t);return!!n&&Range.equals(n,t)},includes(e,t){if(Range.isRange(t)){if(Range.includes(e,t.anchor)||Range.includes(e,t.focus))return!0;var[n,r]=Range.edges(e),[o,a]=Range.edges(t);return Point.isBefore(n,o)&&Point.isAfter(r,a)}var[i,s]=Range.edges(e),l=!1,c=!1;return Point.isPoint(t)?(l=Point.compare(t,i)>=0,c=Point.compare(t,s)<=0):(l=Path.compare(t,i.path)>=0,c=Path.compare(t,s.path)<=0),l&&c},intersection(e,t){var n=_objectWithoutProperties$1(e,_excluded$4),[r,o]=Range.edges(e),[a,i]=Range.edges(t),s=Point.isBefore(r,a)?a:r,l=Point.isBefore(o,i)?o:i;return Point.isBefore(l,s)?null:_objectSpread$d({anchor:s,focus:l},n)},isBackward(e){var{anchor:t,focus:n}=e;return Point.isAfter(t,n)},isCollapsed(e){var{anchor:t,focus:n}=e;return Point.equals(t,n)},isExpanded:e=>!Range.isCollapsed(e),isForward:e=>!Range.isBackward(e),isRange:e=>isPlainObject$1(e)&&Point.isPoint(e.anchor)&&Point.isPoint(e.focus),*points(e){yield[e.anchor,"anchor"],yield[e.focus,"focus"]},start(e){var[t]=Range.edges(e);return t},transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return produce(e,(e=>{if(null===e)return null;var r,o,{affinity:a="inward"}=n;if("inward"===a){var i=Range.isCollapsed(e);Range.isForward(e)?(r="forward",o=i?r:"backward"):(r="backward",o=i?r:"forward")}else"outward"===a?Range.isForward(e)?(r="backward",o="forward"):(r="forward",o="backward"):(r=a,o=a);var s=Point.transform(e.anchor,t,{affinity:r}),l=Point.transform(e.focus,t,{affinity:o});if(!s||!l)return null;e.anchor=s,e.focus=l}))}},isElement$2=e=>isPlainObject$1(e)&&Node$1.isNodeList(e.children)&&!Editor.isEditor(e),Element$2={isAncestor:e=>isPlainObject$1(e)&&Node$1.isNodeList(e.children),isElement:isElement$2,isElementList:e=>Array.isArray(e)&&e.every((e=>Element$2.isElement(e))),isElementProps:e=>void 0!==e.children,isElementType:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"type";return isElement$2(e)&&e[n]===t},matches(e,t){for(var n in t)if("children"!==n&&e[n]!==t[n])return!1;return!0}},_excluded$3$1=["children"],_excluded2$3=["text"],IS_NODE_LIST_CACHE=new WeakMap,Node$1={ancestor(e,t){var n=Node$1.get(e,t);if(Text$1.isText(n))throw new Error("Cannot get the ancestor node at path [".concat(t,"] because it refers to a text node instead: ").concat(Scrubber.stringify(n)));return n},ancestors(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var r of Path.ancestors(t,n)){var o=[Node$1.ancestor(e,r),r];yield o}}()},child(e,t){if(Text$1.isText(e))throw new Error("Cannot get the child of a text node: ".concat(Scrubber.stringify(e)));var n=e.children[t];if(null==n)throw new Error("Cannot get child at index `".concat(t,"` in node: ").concat(Scrubber.stringify(e)));return n},children(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var{reverse:r=!1}=n,o=Node$1.ancestor(e,t),{children:a}=o,i=r?a.length-1:0;r?i>=0:i<a.length;){var s=Node$1.child(o,i),l=t.concat(i);yield[s,l],i=r?i-1:i+1}}()},common(e,t,n){var r=Path.common(t,n);return[Node$1.get(e,r),r]},descendant(e,t){var n=Node$1.get(e,t);if(Editor.isEditor(n))throw new Error("Cannot get the descendant node at path [".concat(t,"] because it refers to the root editor node instead: ").concat(Scrubber.stringify(n)));return n},descendants(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,r]of Node$1.nodes(e,t))0!==r.length&&(yield[n,r])}()},elements(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,r]of Node$1.nodes(e,t))Element$2.isElement(n)&&(yield[n,r])}()},extractProps:e=>Element$2.isAncestor(e)?_objectWithoutProperties$1(e,_excluded$3$1):_objectWithoutProperties$1(e,_excluded2$3),first(e,t){for(var n=t.slice(),r=Node$1.get(e,n);r&&!Text$1.isText(r)&&0!==r.children.length;)r=r.children[0],n.push(0);return[r,n]},fragment(e,t){if(Text$1.isText(e))throw new Error("Cannot get a fragment starting from a root text node: ".concat(Scrubber.stringify(e)));var n=produce({children:e.children},(e=>{var[n,r]=Range.edges(t),o=Node$1.nodes(e,{reverse:!0,pass:e=>{var[,n]=e;return!Range.includes(t,n)}});for(var[,a]of o){if(!Range.includes(t,a)){var i=Node$1.parent(e,a),s=a[a.length-1];i.children.splice(s,1)}if(Path.equals(a,r.path)){var l=Node$1.leaf(e,a);l.text=l.text.slice(0,r.offset)}if(Path.equals(a,n.path)){var c=Node$1.leaf(e,a);c.text=c.text.slice(n.offset)}}Editor.isEditor(e)&&(e.selection=null)}));return n.children},get(e,t){var n=Node$1.getIf(e,t);if(void 0===n)throw new Error("Cannot find a descendant at path [".concat(t,"] in node: ").concat(Scrubber.stringify(e)));return n},getIf(e,t){for(var n=e,r=0;r<t.length;r++){var o=t[r];if(Text$1.isText(n)||!n.children[o])return;n=n.children[o]}return n},has(e,t){for(var n=e,r=0;r<t.length;r++){var o=t[r];if(Text$1.isText(n)||!n.children[o])return!1;n=n.children[o]}return!0},isNode:e=>Text$1.isText(e)||Element$2.isElement(e)||Editor.isEditor(e),isNodeList(e){if(!Array.isArray(e))return!1;var t=IS_NODE_LIST_CACHE.get(e);if(void 0!==t)return t;var n=e.every((e=>Node$1.isNode(e)));return IS_NODE_LIST_CACHE.set(e,n),n},last(e,t){for(var n=t.slice(),r=Node$1.get(e,n);r&&!Text$1.isText(r)&&0!==r.children.length;){var o=r.children.length-1;r=r.children[o],n.push(o)}return[r,n]},leaf(e,t){var n=Node$1.get(e,t);if(!Text$1.isText(n))throw new Error("Cannot get the leaf node at path [".concat(t,"] because it refers to a non-leaf node: ").concat(Scrubber.stringify(n)));return n},levels(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var r of Path.levels(t,n)){var o=Node$1.get(e,r);yield[o,r]}}()},matches:(e,t)=>Element$2.isElement(e)&&Element$2.isElementProps(t)&&Element$2.matches(e,t)||Text$1.isText(e)&&Text$1.isTextProps(t)&&Text$1.matches(e,t),nodes(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var{pass:n,reverse:r=!1}=t,{from:o=[],to:a}=t,i=new Set,s=[],l=e;!a||!(r?Path.isBefore(s,a):Path.isAfter(s,a));)if(i.has(l)||(yield[l,s]),i.has(l)||Text$1.isText(l)||0===l.children.length||null!=n&&!1!==n([l,s])){if(0===s.length)break;if(!r){var c=Path.next(s);if(Node$1.has(e,c)){s=c,l=Node$1.get(e,s);continue}}if(r&&0!==s[s.length-1])s=Path.previous(s),l=Node$1.get(e,s);else s=Path.parent(s),l=Node$1.get(e,s),i.add(l)}else{i.add(l);var u=r?l.children.length-1:0;Path.isAncestor(s,o)&&(u=o[s.length]),s=s.concat(u),l=Node$1.get(e,s)}}()},parent(e,t){var n=Path.parent(t),r=Node$1.get(e,n);if(Text$1.isText(r))throw new Error("Cannot get the parent of path [".concat(t,"] because it does not exist in the root."));return r},string:e=>Text$1.isText(e)?e.text:e.children.map(Node$1.string).join(""),texts(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,r]of Node$1.nodes(e,t))Text$1.isText(n)&&(yield[n,r])}()}};function ownKeys$c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$c(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Operation={isNodeOperation:e=>Operation.isOperation(e)&&e.type.endsWith("_node"),isOperation(e){if(!isPlainObject$1(e))return!1;switch(e.type){case"insert_node":case"remove_node":return Path.isPath(e.path)&&Node$1.isNode(e.node);case"insert_text":case"remove_text":return"number"==typeof e.offset&&"string"==typeof e.text&&Path.isPath(e.path);case"merge_node":return"number"==typeof e.position&&Path.isPath(e.path)&&isPlainObject$1(e.properties);case"move_node":return Path.isPath(e.path)&&Path.isPath(e.newPath);case"set_node":return Path.isPath(e.path)&&isPlainObject$1(e.properties)&&isPlainObject$1(e.newProperties);case"set_selection":return null===e.properties&&Range.isRange(e.newProperties)||null===e.newProperties&&Range.isRange(e.properties)||isPlainObject$1(e.properties)&&isPlainObject$1(e.newProperties);case"split_node":return Path.isPath(e.path)&&"number"==typeof e.position&&isPlainObject$1(e.properties);default:return!1}},isOperationList:e=>Array.isArray(e)&&e.every((e=>Operation.isOperation(e))),isSelectionOperation:e=>Operation.isOperation(e)&&e.type.endsWith("_selection"),isTextOperation:e=>Operation.isOperation(e)&&e.type.endsWith("_text"),inverse(e){switch(e.type){case"insert_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"remove_node"});case"insert_text":return _objectSpread$c(_objectSpread$c({},e),{},{type:"remove_text"});case"merge_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"split_node",path:Path.previous(e.path)});case"move_node":var{newPath:t,path:n}=e;if(Path.equals(t,n))return e;if(Path.isSibling(n,t))return _objectSpread$c(_objectSpread$c({},e),{},{path:t,newPath:n});var r=Path.transform(n,e),o=Path.transform(Path.next(n),e);return _objectSpread$c(_objectSpread$c({},e),{},{path:r,newPath:o});case"remove_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"insert_node"});case"remove_text":return _objectSpread$c(_objectSpread$c({},e),{},{type:"insert_text"});case"set_node":var{properties:a,newProperties:i}=e;return _objectSpread$c(_objectSpread$c({},e),{},{properties:i,newProperties:a});case"set_selection":var{properties:s,newProperties:l}=e;return _objectSpread$c(_objectSpread$c({},e),{},null==s?{properties:l,newProperties:null}:null==l?{properties:null,newProperties:s}:{properties:l,newProperties:s});case"split_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"merge_node",path:Path.next(e.path)})}}},IS_EDITOR_CACHE=new WeakMap,isEditor=e=>{var t=IS_EDITOR_CACHE.get(e);if(void 0!==t)return t;if(!isPlainObject$1(e))return!1;var n="function"==typeof e.addMark&&"function"==typeof e.apply&&"function"==typeof e.deleteFragment&&"function"==typeof e.insertBreak&&"function"==typeof e.insertSoftBreak&&"function"==typeof e.insertFragment&&"function"==typeof e.insertNode&&"function"==typeof e.insertText&&"function"==typeof e.isElementReadOnly&&"function"==typeof e.isInline&&"function"==typeof e.isSelectable&&"function"==typeof e.isVoid&&"function"==typeof e.normalizeNode&&"function"==typeof e.onChange&&"function"==typeof e.removeMark&&"function"==typeof e.getDirtyPaths&&(null===e.marks||isPlainObject$1(e.marks))&&(null===e.selection||Range.isRange(e.selection))&&Node$1.isNodeList(e.children)&&Operation.isOperationList(e.operations);return IS_EDITOR_CACHE.set(e,n),n},Editor={above:(e,t)=>e.above(t),addMark(e,t,n){e.addMark(t,n)},after:(e,t,n)=>e.after(t,n),before:(e,t,n)=>e.before(t,n),deleteBackward(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{unit:n="character"}=t;e.deleteBackward(n)},deleteForward(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{unit:n="character"}=t;e.deleteForward(n)},deleteFragment(e,t){e.deleteFragment(t)},edges:(e,t)=>e.edges(t),elementReadOnly(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.elementReadOnly(t)},end:(e,t)=>e.end(t),first:(e,t)=>e.first(t),fragment:(e,t)=>e.fragment(t),hasBlocks:(e,t)=>e.hasBlocks(t),hasInlines:(e,t)=>e.hasInlines(t),hasPath:(e,t)=>e.hasPath(t),hasTexts:(e,t)=>e.hasTexts(t),insertBreak(e){e.insertBreak()},insertFragment(e,t,n){e.insertFragment(t,n)},insertNode(e,t){e.insertNode(t)},insertSoftBreak(e){e.insertSoftBreak()},insertText(e,t){e.insertText(t)},isBlock:(e,t)=>e.isBlock(t),isEdge:(e,t,n)=>e.isEdge(t,n),isEditor:e=>isEditor(e),isElementReadOnly:(e,t)=>e.isElementReadOnly(t),isEmpty:(e,t)=>e.isEmpty(t),isEnd:(e,t,n)=>e.isEnd(t,n),isInline:(e,t)=>e.isInline(t),isNormalizing:e=>e.isNormalizing(),isSelectable:(e,t)=>e.isSelectable(t),isStart:(e,t,n)=>e.isStart(t,n),isVoid:(e,t)=>e.isVoid(t),last:(e,t)=>e.last(t),leaf:(e,t,n)=>e.leaf(t,n),levels:(e,t)=>e.levels(t),marks:e=>e.getMarks(),next:(e,t)=>e.next(t),node:(e,t,n)=>e.node(t,n),nodes:(e,t)=>e.nodes(t),normalize(e,t){e.normalize(t)},parent:(e,t,n)=>e.parent(t,n),path:(e,t,n)=>e.path(t,n),pathRef:(e,t,n)=>e.pathRef(t,n),pathRefs:e=>e.pathRefs(),point:(e,t,n)=>e.point(t,n),pointRef:(e,t,n)=>e.pointRef(t,n),pointRefs:e=>e.pointRefs(),positions:(e,t)=>e.positions(t),previous:(e,t)=>e.previous(t),range:(e,t,n)=>e.range(t,n),rangeRef:(e,t,n)=>e.rangeRef(t,n),rangeRefs:e=>e.rangeRefs(),removeMark(e,t){e.removeMark(t)},setNormalizing(e,t){e.setNormalizing(t)},start:(e,t)=>e.start(t),string:(e,t,n)=>e.string(t,n),unhangRange:(e,t,n)=>e.unhangRange(t,n),void:(e,t)=>e.void(t),withoutNormalizing(e,t){e.withoutNormalizing(t)},shouldMergeNodesRemovePrevNode:(e,t,n)=>e.shouldMergeNodesRemovePrevNode(t,n)},Span={isSpan:e=>Array.isArray(e)&&2===e.length&&e.every(Path.isPath)};function ownKeys$b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$b(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Point={compare(e,t){var n=Path.compare(e.path,t.path);return 0===n?e.offset<t.offset?-1:e.offset>t.offset?1:0:n},isAfter:(e,t)=>1===Point.compare(e,t),isBefore:(e,t)=>-1===Point.compare(e,t),equals:(e,t)=>e.offset===t.offset&&Path.equals(e.path,t.path),isPoint:e=>isPlainObject$1(e)&&"number"==typeof e.offset&&Path.isPath(e.path),transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return produce(e,(e=>{if(null===e)return null;var{affinity:r="forward"}=n,{path:o,offset:a}=e;switch(t.type){case"insert_node":case"move_node":e.path=Path.transform(o,t,n);break;case"insert_text":Path.equals(t.path,o)&&(t.offset<a||t.offset===a&&"forward"===r)&&(e.offset+=t.text.length);break;case"merge_node":Path.equals(t.path,o)&&(e.offset+=t.position),e.path=Path.transform(o,t,n);break;case"remove_text":Path.equals(t.path,o)&&t.offset<=a&&(e.offset-=Math.min(a-t.offset,t.text.length));break;case"remove_node":if(Path.equals(t.path,o)||Path.isAncestor(t.path,o))return null;e.path=Path.transform(o,t,n);break;case"split_node":if(Path.equals(t.path,o)){if(t.position===a&&null==r)return null;(t.position<a||t.position===a&&"forward"===r)&&(e.offset-=t.position,e.path=Path.transform(o,t,_objectSpread$b(_objectSpread$b({},n),{},{affinity:"forward"})))}else e.path=Path.transform(o,t,n)}}))}},_scrubber=void 0,Scrubber={setScrubber(e){_scrubber=e},stringify:e=>JSON.stringify(e,_scrubber)},_excluded$2$1=["text"],_excluded2$2=["anchor","focus"];function ownKeys$a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$a(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Text$1={equals(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{loose:r=!1}=n;function o(e){return _objectWithoutProperties$1(e,_excluded$2$1)}return isDeepEqual(r?o(e):e,r?o(t):t)},isText:e=>isPlainObject$1(e)&&"string"==typeof e.text,isTextList:e=>Array.isArray(e)&&e.every((e=>Text$1.isText(e))),isTextProps:e=>void 0!==e.text,matches(e,t){for(var n in t)if("text"!==n&&(!e.hasOwnProperty(n)||e[n]!==t[n]))return!1;return!0},decorations(e,t){var n=[_objectSpread$a({},e)];for(var r of t){var o=_objectWithoutProperties$1(r,_excluded2$2),[a,i]=Range.edges(r),s=[],l=0,c=a.offset,u=i.offset;for(var d of n){var{length:f}=d.text,p=l;if(l+=f,c<=p&&l<=u)Object.assign(d,o),s.push(d);else if(c!==u&&(c===l||u===p)||c>l||u<p||u===p&&0!==p)s.push(d);else{var m=d,h=void 0,_=void 0;if(u<l){var g=u-p;_=_objectSpread$a(_objectSpread$a({},m),{},{text:m.text.slice(g)}),m=_objectSpread$a(_objectSpread$a({},m),{},{text:m.text.slice(0,g)})}if(c>p){var v=c-p;h=_objectSpread$a(_objectSpread$a({},m),{},{text:m.text.slice(0,v)}),m=_objectSpread$a(_objectSpread$a({},m),{},{text:m.text.slice(v)})}Object.assign(m,o),h&&s.push(h),s.push(m),_&&s.push(_)}}n=s}return n}},getDefaultInsertLocation=e=>e.selection?e.selection:e.children.length>0?Editor.end(e,[]):[0],matchPath=(e,t)=>{var[n]=Editor.node(e,t);return e=>e===n},getCharacterDistance=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!t,r=t?codepointsIteratorRTL(e):e,o=CodepointType.None,a=CodepointType.None,i=0,s=null;for(var l of r){var c=l.codePointAt(0);if(!c)break;var u=getCodepointType(l,c);if([o,a]=n?[a,u]:[u,o],intersects(o,CodepointType.ZWJ)&&intersects(a,CodepointType.ExtPict)&&!endsWithEmojiZWJ(n?e.substring(0,i):e.substring(0,e.length-i)))break;if(intersects(o,CodepointType.RI)&&intersects(a,CodepointType.RI)&&!(s=null!==s?!s:!!n||endsWithOddNumberOfRIs(e.substring(0,e.length-i))))break;if(o!==CodepointType.None&&a!==CodepointType.None&&isBoundaryPair(o,a))break;i+=l.length}return i||1},SPACE=/\s/,PUNCTUATION=/[\u002B\u0021-\u0023\u0025-\u002A\u002C-\u002F\u003A\u003B\u003F\u0040\u005B-\u005D\u005F\u007B\u007D\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E3B\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/,CHAMELEON=/['\u2018\u2019]/,getWordDistance=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=0,r=!1;e.length>0;){var o=getCharacterDistance(e,t),[a,i]=splitByCharacterDistance(e,o,t);if(isWordCharacter(a,i,t))r=!0,n+=o;else{if(r)break;n+=o}e=i}return n},splitByCharacterDistance=(e,t,n)=>{if(n){var r=e.length-t;return[e.slice(r,e.length),e.slice(0,r)]}return[e.slice(0,t),e.slice(t)]},isWordCharacter=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(SPACE.test(t))return!1;if(CHAMELEON.test(t)){var o=getCharacterDistance(n,r),[a,i]=splitByCharacterDistance(n,o,r);if(e(a,i,r))return!0}return!PUNCTUATION.test(t)},codepointsIteratorRTL=function*(e){for(var t=e.length-1,n=0;n<e.length;n++){var r=e.charAt(t-n);if(isLowSurrogate(r.charCodeAt(0))){var o=e.charAt(t-n-1);if(isHighSurrogate(o.charCodeAt(0))){yield o+r,n++;continue}}yield r}},isHighSurrogate=e=>e>=55296&&e<=56319,isLowSurrogate=e=>e>=56320&&e<=57343,CodepointType;!function(e){e[e.None=0]="None",e[e.Extend=1]="Extend",e[e.ZWJ=2]="ZWJ",e[e.RI=4]="RI",e[e.Prepend=8]="Prepend",e[e.SpacingMark=16]="SpacingMark",e[e.L=32]="L",e[e.V=64]="V",e[e.T=128]="T",e[e.LV=256]="LV",e[e.LVT=512]="LVT",e[e.ExtPict=1024]="ExtPict",e[e.Any=2048]="Any"}(CodepointType||(CodepointType={}));var reExtend=/^(?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE\u09C1-\u09C4\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3E\u0B3F\u0B41-\u0B44\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BCD\u0BD7\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC2\u0CC6\u0CCC\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D3E\u0D41-\u0D44\u0D4D\u0D57\u0D62\u0D63\u0D81\u0DCA\u0DCF\u0DD2-\u0DD4\u0DD6\u0DDF\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDE41\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF3E\uDF40\uDF57\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB0\uDCB3-\uDCB8\uDCBA\uDCBD\uDCBF\uDCC0\uDCC2\uDCC3\uDDAF\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD30\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4\uDF00\uDF01\uDF36-\uDF3A\uDF40\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65\uDD67-\uDD69\uDD6E-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF])$/,rePrepend=/^(?:[\u0600-\u0605\u06DD\u070F\u0890\u0891\u08E2\u0D4E]|\uD804[\uDCBD\uDCCD\uDDC2\uDDC3]|\uD806[\uDD3F\uDD41\uDE3A\uDE84-\uDE89]|\uD807\uDD46)$/,reSpacingMark=/^(?:[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0D02\u0D03\u0D3F\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D82\u0D83\u0DD0\u0DD1\u0DD8-\u0DDE\u0DF2\u0DF3\u0E33\u0EB3\u0F3E\u0F3F\u0F7F\u1031\u103B\u103C\u1056\u1057\u1084\u1715\u1734\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A6D-\u1A72\u1B04\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC]|\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDDCE\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB1\uDCB2\uDCB9\uDCBB\uDCBC\uDCBE\uDCC1\uDDB0\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDD31-\uDD35\uDD37\uDD38\uDD3D\uDD40\uDD42\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87\uDFF0\uDFF1]|\uD834[\uDD66\uDD6D])$/,reL=/^[\u1100-\u115F\uA960-\uA97C]$/,reV=/^[\u1160-\u11A7\uD7B0-\uD7C6]$/,reT=/^[\u11A8-\u11FF\uD7CB-\uD7FB]$/,reLV=/^[\uAC00\uAC1C\uAC38\uAC54\uAC70\uAC8C\uACA8\uACC4\uACE0\uACFC\uAD18\uAD34\uAD50\uAD6C\uAD88\uADA4\uADC0\uADDC\uADF8\uAE14\uAE30\uAE4C\uAE68\uAE84\uAEA0\uAEBC\uAED8\uAEF4\uAF10\uAF2C\uAF48\uAF64\uAF80\uAF9C\uAFB8\uAFD4\uAFF0\uB00C\uB028\uB044\uB060\uB07C\uB098\uB0B4\uB0D0\uB0EC\uB108\uB124\uB140\uB15C\uB178\uB194\uB1B0\uB1CC\uB1E8\uB204\uB220\uB23C\uB258\uB274\uB290\uB2AC\uB2C8\uB2E4\uB300\uB31C\uB338\uB354\uB370\uB38C\uB3A8\uB3C4\uB3E0\uB3FC\uB418\uB434\uB450\uB46C\uB488\uB4A4\uB4C0\uB4DC\uB4F8\uB514\uB530\uB54C\uB568\uB584\uB5A0\uB5BC\uB5D8\uB5F4\uB610\uB62C\uB648\uB664\uB680\uB69C\uB6B8\uB6D4\uB6F0\uB70C\uB728\uB744\uB760\uB77C\uB798\uB7B4\uB7D0\uB7EC\uB808\uB824\uB840\uB85C\uB878\uB894\uB8B0\uB8CC\uB8E8\uB904\uB920\uB93C\uB958\uB974\uB990\uB9AC\uB9C8\uB9E4\uBA00\uBA1C\uBA38\uBA54\uBA70\uBA8C\uBAA8\uBAC4\uBAE0\uBAFC\uBB18\uBB34\uBB50\uBB6C\uBB88\uBBA4\uBBC0\uBBDC\uBBF8\uBC14\uBC30\uBC4C\uBC68\uBC84\uBCA0\uBCBC\uBCD8\uBCF4\uBD10\uBD2C\uBD48\uBD64\uBD80\uBD9C\uBDB8\uBDD4\uBDF0\uBE0C\uBE28\uBE44\uBE60\uBE7C\uBE98\uBEB4\uBED0\uBEEC\uBF08\uBF24\uBF40\uBF5C\uBF78\uBF94\uBFB0\uBFCC\uBFE8\uC004\uC020\uC03C\uC058\uC074\uC090\uC0AC\uC0C8\uC0E4\uC100\uC11C\uC138\uC154\uC170\uC18C\uC1A8\uC1C4\uC1E0\uC1FC\uC218\uC234\uC250\uC26C\uC288\uC2A4\uC2C0\uC2DC\uC2F8\uC314\uC330\uC34C\uC368\uC384\uC3A0\uC3BC\uC3D8\uC3F4\uC410\uC42C\uC448\uC464\uC480\uC49C\uC4B8\uC4D4\uC4F0\uC50C\uC528\uC544\uC560\uC57C\uC598\uC5B4\uC5D0\uC5EC\uC608\uC624\uC640\uC65C\uC678\uC694\uC6B0\uC6CC\uC6E8\uC704\uC720\uC73C\uC758\uC774\uC790\uC7AC\uC7C8\uC7E4\uC800\uC81C\uC838\uC854\uC870\uC88C\uC8A8\uC8C4\uC8E0\uC8FC\uC918\uC934\uC950\uC96C\uC988\uC9A4\uC9C0\uC9DC\uC9F8\uCA14\uCA30\uCA4C\uCA68\uCA84\uCAA0\uCABC\uCAD8\uCAF4\uCB10\uCB2C\uCB48\uCB64\uCB80\uCB9C\uCBB8\uCBD4\uCBF0\uCC0C\uCC28\uCC44\uCC60\uCC7C\uCC98\uCCB4\uCCD0\uCCEC\uCD08\uCD24\uCD40\uCD5C\uCD78\uCD94\uCDB0\uCDCC\uCDE8\uCE04\uCE20\uCE3C\uCE58\uCE74\uCE90\uCEAC\uCEC8\uCEE4\uCF00\uCF1C\uCF38\uCF54\uCF70\uCF8C\uCFA8\uCFC4\uCFE0\uCFFC\uD018\uD034\uD050\uD06C\uD088\uD0A4\uD0C0\uD0DC\uD0F8\uD114\uD130\uD14C\uD168\uD184\uD1A0\uD1BC\uD1D8\uD1F4\uD210\uD22C\uD248\uD264\uD280\uD29C\uD2B8\uD2D4\uD2F0\uD30C\uD328\uD344\uD360\uD37C\uD398\uD3B4\uD3D0\uD3EC\uD408\uD424\uD440\uD45C\uD478\uD494\uD4B0\uD4CC\uD4E8\uD504\uD520\uD53C\uD558\uD574\uD590\uD5AC\uD5C8\uD5E4\uD600\uD61C\uD638\uD654\uD670\uD68C\uD6A8\uD6C4\uD6E0\uD6FC\uD718\uD734\uD750\uD76C\uD788]$/,reLVT=/^[\uAC01-\uAC1B\uAC1D-\uAC37\uAC39-\uAC53\uAC55-\uAC6F\uAC71-\uAC8B\uAC8D-\uACA7\uACA9-\uACC3\uACC5-\uACDF\uACE1-\uACFB\uACFD-\uAD17\uAD19-\uAD33\uAD35-\uAD4F\uAD51-\uAD6B\uAD6D-\uAD87\uAD89-\uADA3\uADA5-\uADBF\uADC1-\uADDB\uADDD-\uADF7\uADF9-\uAE13\uAE15-\uAE2F\uAE31-\uAE4B\uAE4D-\uAE67\uAE69-\uAE83\uAE85-\uAE9F\uAEA1-\uAEBB\uAEBD-\uAED7\uAED9-\uAEF3\uAEF5-\uAF0F\uAF11-\uAF2B\uAF2D-\uAF47\uAF49-\uAF63\uAF65-\uAF7F\uAF81-\uAF9B\uAF9D-\uAFB7\uAFB9-\uAFD3\uAFD5-\uAFEF\uAFF1-\uB00B\uB00D-\uB027\uB029-\uB043\uB045-\uB05F\uB061-\uB07B\uB07D-\uB097\uB099-\uB0B3\uB0B5-\uB0CF\uB0D1-\uB0EB\uB0ED-\uB107\uB109-\uB123\uB125-\uB13F\uB141-\uB15B\uB15D-\uB177\uB179-\uB193\uB195-\uB1AF\uB1B1-\uB1CB\uB1CD-\uB1E7\uB1E9-\uB203\uB205-\uB21F\uB221-\uB23B\uB23D-\uB257\uB259-\uB273\uB275-\uB28F\uB291-\uB2AB\uB2AD-\uB2C7\uB2C9-\uB2E3\uB2E5-\uB2FF\uB301-\uB31B\uB31D-\uB337\uB339-\uB353\uB355-\uB36F\uB371-\uB38B\uB38D-\uB3A7\uB3A9-\uB3C3\uB3C5-\uB3DF\uB3E1-\uB3FB\uB3FD-\uB417\uB419-\uB433\uB435-\uB44F\uB451-\uB46B\uB46D-\uB487\uB489-\uB4A3\uB4A5-\uB4BF\uB4C1-\uB4DB\uB4DD-\uB4F7\uB4F9-\uB513\uB515-\uB52F\uB531-\uB54B\uB54D-\uB567\uB569-\uB583\uB585-\uB59F\uB5A1-\uB5BB\uB5BD-\uB5D7\uB5D9-\uB5F3\uB5F5-\uB60F\uB611-\uB62B\uB62D-\uB647\uB649-\uB663\uB665-\uB67F\uB681-\uB69B\uB69D-\uB6B7\uB6B9-\uB6D3\uB6D5-\uB6EF\uB6F1-\uB70B\uB70D-\uB727\uB729-\uB743\uB745-\uB75F\uB761-\uB77B\uB77D-\uB797\uB799-\uB7B3\uB7B5-\uB7CF\uB7D1-\uB7EB\uB7ED-\uB807\uB809-\uB823\uB825-\uB83F\uB841-\uB85B\uB85D-\uB877\uB879-\uB893\uB895-\uB8AF\uB8B1-\uB8CB\uB8CD-\uB8E7\uB8E9-\uB903\uB905-\uB91F\uB921-\uB93B\uB93D-\uB957\uB959-\uB973\uB975-\uB98F\uB991-\uB9AB\uB9AD-\uB9C7\uB9C9-\uB9E3\uB9E5-\uB9FF\uBA01-\uBA1B\uBA1D-\uBA37\uBA39-\uBA53\uBA55-\uBA6F\uBA71-\uBA8B\uBA8D-\uBAA7\uBAA9-\uBAC3\uBAC5-\uBADF\uBAE1-\uBAFB\uBAFD-\uBB17\uBB19-\uBB33\uBB35-\uBB4F\uBB51-\uBB6B\uBB6D-\uBB87\uBB89-\uBBA3\uBBA5-\uBBBF\uBBC1-\uBBDB\uBBDD-\uBBF7\uBBF9-\uBC13\uBC15-\uBC2F\uBC31-\uBC4B\uBC4D-\uBC67\uBC69-\uBC83\uBC85-\uBC9F\uBCA1-\uBCBB\uBCBD-\uBCD7\uBCD9-\uBCF3\uBCF5-\uBD0F\uBD11-\uBD2B\uBD2D-\uBD47\uBD49-\uBD63\uBD65-\uBD7F\uBD81-\uBD9B\uBD9D-\uBDB7\uBDB9-\uBDD3\uBDD5-\uBDEF\uBDF1-\uBE0B\uBE0D-\uBE27\uBE29-\uBE43\uBE45-\uBE5F\uBE61-\uBE7B\uBE7D-\uBE97\uBE99-\uBEB3\uBEB5-\uBECF\uBED1-\uBEEB\uBEED-\uBF07\uBF09-\uBF23\uBF25-\uBF3F\uBF41-\uBF5B\uBF5D-\uBF77\uBF79-\uBF93\uBF95-\uBFAF\uBFB1-\uBFCB\uBFCD-\uBFE7\uBFE9-\uC003\uC005-\uC01F\uC021-\uC03B\uC03D-\uC057\uC059-\uC073\uC075-\uC08F\uC091-\uC0AB\uC0AD-\uC0C7\uC0C9-\uC0E3\uC0E5-\uC0FF\uC101-\uC11B\uC11D-\uC137\uC139-\uC153\uC155-\uC16F\uC171-\uC18B\uC18D-\uC1A7\uC1A9-\uC1C3\uC1C5-\uC1DF\uC1E1-\uC1FB\uC1FD-\uC217\uC219-\uC233\uC235-\uC24F\uC251-\uC26B\uC26D-\uC287\uC289-\uC2A3\uC2A5-\uC2BF\uC2C1-\uC2DB\uC2DD-\uC2F7\uC2F9-\uC313\uC315-\uC32F\uC331-\uC34B\uC34D-\uC367\uC369-\uC383\uC385-\uC39F\uC3A1-\uC3BB\uC3BD-\uC3D7\uC3D9-\uC3F3\uC3F5-\uC40F\uC411-\uC42B\uC42D-\uC447\uC449-\uC463\uC465-\uC47F\uC481-\uC49B\uC49D-\uC4B7\uC4B9-\uC4D3\uC4D5-\uC4EF\uC4F1-\uC50B\uC50D-\uC527\uC529-\uC543\uC545-\uC55F\uC561-\uC57B\uC57D-\uC597\uC599-\uC5B3\uC5B5-\uC5CF\uC5D1-\uC5EB\uC5ED-\uC607\uC609-\uC623\uC625-\uC63F\uC641-\uC65B\uC65D-\uC677\uC679-\uC693\uC695-\uC6AF\uC6B1-\uC6CB\uC6CD-\uC6E7\uC6E9-\uC703\uC705-\uC71F\uC721-\uC73B\uC73D-\uC757\uC759-\uC773\uC775-\uC78F\uC791-\uC7AB\uC7AD-\uC7C7\uC7C9-\uC7E3\uC7E5-\uC7FF\uC801-\uC81B\uC81D-\uC837\uC839-\uC853\uC855-\uC86F\uC871-\uC88B\uC88D-\uC8A7\uC8A9-\uC8C3\uC8C5-\uC8DF\uC8E1-\uC8FB\uC8FD-\uC917\uC919-\uC933\uC935-\uC94F\uC951-\uC96B\uC96D-\uC987\uC989-\uC9A3\uC9A5-\uC9BF\uC9C1-\uC9DB\uC9DD-\uC9F7\uC9F9-\uCA13\uCA15-\uCA2F\uCA31-\uCA4B\uCA4D-\uCA67\uCA69-\uCA83\uCA85-\uCA9F\uCAA1-\uCABB\uCABD-\uCAD7\uCAD9-\uCAF3\uCAF5-\uCB0F\uCB11-\uCB2B\uCB2D-\uCB47\uCB49-\uCB63\uCB65-\uCB7F\uCB81-\uCB9B\uCB9D-\uCBB7\uCBB9-\uCBD3\uCBD5-\uCBEF\uCBF1-\uCC0B\uCC0D-\uCC27\uCC29-\uCC43\uCC45-\uCC5F\uCC61-\uCC7B\uCC7D-\uCC97\uCC99-\uCCB3\uCCB5-\uCCCF\uCCD1-\uCCEB\uCCED-\uCD07\uCD09-\uCD23\uCD25-\uCD3F\uCD41-\uCD5B\uCD5D-\uCD77\uCD79-\uCD93\uCD95-\uCDAF\uCDB1-\uCDCB\uCDCD-\uCDE7\uCDE9-\uCE03\uCE05-\uCE1F\uCE21-\uCE3B\uCE3D-\uCE57\uCE59-\uCE73\uCE75-\uCE8F\uCE91-\uCEAB\uCEAD-\uCEC7\uCEC9-\uCEE3\uCEE5-\uCEFF\uCF01-\uCF1B\uCF1D-\uCF37\uCF39-\uCF53\uCF55-\uCF6F\uCF71-\uCF8B\uCF8D-\uCFA7\uCFA9-\uCFC3\uCFC5-\uCFDF\uCFE1-\uCFFB\uCFFD-\uD017\uD019-\uD033\uD035-\uD04F\uD051-\uD06B\uD06D-\uD087\uD089-\uD0A3\uD0A5-\uD0BF\uD0C1-\uD0DB\uD0DD-\uD0F7\uD0F9-\uD113\uD115-\uD12F\uD131-\uD14B\uD14D-\uD167\uD169-\uD183\uD185-\uD19F\uD1A1-\uD1BB\uD1BD-\uD1D7\uD1D9-\uD1F3\uD1F5-\uD20F\uD211-\uD22B\uD22D-\uD247\uD249-\uD263\uD265-\uD27F\uD281-\uD29B\uD29D-\uD2B7\uD2B9-\uD2D3\uD2D5-\uD2EF\uD2F1-\uD30B\uD30D-\uD327\uD329-\uD343\uD345-\uD35F\uD361-\uD37B\uD37D-\uD397\uD399-\uD3B3\uD3B5-\uD3CF\uD3D1-\uD3EB\uD3ED-\uD407\uD409-\uD423\uD425-\uD43F\uD441-\uD45B\uD45D-\uD477\uD479-\uD493\uD495-\uD4AF\uD4B1-\uD4CB\uD4CD-\uD4E7\uD4E9-\uD503\uD505-\uD51F\uD521-\uD53B\uD53D-\uD557\uD559-\uD573\uD575-\uD58F\uD591-\uD5AB\uD5AD-\uD5C7\uD5C9-\uD5E3\uD5E5-\uD5FF\uD601-\uD61B\uD61D-\uD637\uD639-\uD653\uD655-\uD66F\uD671-\uD68B\uD68D-\uD6A7\uD6A9-\uD6C3\uD6C5-\uD6DF\uD6E1-\uD6FB\uD6FD-\uD717\uD719-\uD733\uD735-\uD74F\uD751-\uD76B\uD76D-\uD787\uD789-\uD7A3]$/,reExtPict=/^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFA]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])$/,getCodepointType=(e,t)=>{var n=CodepointType.Any;return-1!==e.search(reExtend)&&(n|=CodepointType.Extend),8205===t&&(n|=CodepointType.ZWJ),t>=127462&&t<=127487&&(n|=CodepointType.RI),-1!==e.search(rePrepend)&&(n|=CodepointType.Prepend),-1!==e.search(reSpacingMark)&&(n|=CodepointType.SpacingMark),-1!==e.search(reL)&&(n|=CodepointType.L),-1!==e.search(reV)&&(n|=CodepointType.V),-1!==e.search(reT)&&(n|=CodepointType.T),-1!==e.search(reLV)&&(n|=CodepointType.LV),-1!==e.search(reLVT)&&(n|=CodepointType.LVT),-1!==e.search(reExtPict)&&(n|=CodepointType.ExtPict),n};function intersects(e,t){return!!(e&t)}var NonBoundaryPairs=[[CodepointType.L,CodepointType.L|CodepointType.V|CodepointType.LV|CodepointType.LVT],[CodepointType.LV|CodepointType.V,CodepointType.V|CodepointType.T],[CodepointType.LVT|CodepointType.T,CodepointType.T],[CodepointType.Any,CodepointType.Extend|CodepointType.ZWJ],[CodepointType.Any,CodepointType.SpacingMark],[CodepointType.Prepend,CodepointType.Any],[CodepointType.ZWJ,CodepointType.ExtPict],[CodepointType.RI,CodepointType.RI]];function isBoundaryPair(e,t){return-1===NonBoundaryPairs.findIndex((n=>intersects(e,n[0])&&intersects(t,n[1])))}var endingEmojiZWJ=/(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFA]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])(?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE\u09C1-\u09C4\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3E\u0B3F\u0B41-\u0B44\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BCD\u0BD7\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC2\u0CC6\u0CCC\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D3E\u0D41-\u0D44\u0D4D\u0D57\u0D62\u0D63\u0D81\u0DCA\u0DCF\u0DD2-\u0DD4\u0DD6\u0DDF\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDE41\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF3E\uDF40\uDF57\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB0\uDCB3-\uDCB8\uDCBA\uDCBD\uDCBF\uDCC0\uDCC2\uDCC3\uDDAF\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD30\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4\uDF00\uDF01\uDF36-\uDF3A\uDF40\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65\uDD67-\uDD69\uDD6E-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF])*\u200D$/,endsWithEmojiZWJ=e=>-1!==e.search(endingEmojiZWJ),endingRIs=/(?:\uD83C[\uDDE6-\uDDFF])+$/g,endsWithOddNumberOfRIs=e=>{var t=e.match(endingRIs);return null!==t&&t[0].length/2%2==1},TextTransforms={delete(e,t){e.delete(t)},insertFragment(e,t,n){e.insertFragment(t,n)},insertText(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{voids:r=!1}=n,{at:o=getDefaultInsertLocation(e)}=n;if(Path.isPath(o)&&(o=Editor.range(e,o)),Range.isRange(o))if(Range.isCollapsed(o))o=o.anchor;else{var a=Range.end(o);if(!r&&Editor.void(e,{at:a}))return;var i=Range.start(o),s=Editor.pointRef(e,i),l=Editor.pointRef(e,a);Transforms.delete(e,{at:o,voids:r});var c=s.unref(),u=l.unref();o=c||u,Transforms.setSelection(e,{anchor:o,focus:o})}if(!(!r&&Editor.void(e,{at:o})||Editor.elementReadOnly(e,{at:o}))){var{path:d,offset:f}=o;t.length>0&&e.apply({type:"insert_text",path:d,offset:f,text:t})}}))}};function ownKeys$9$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$9$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$9$1(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$9$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Transforms=_objectSpread$9$1(_objectSpread$9$1(_objectSpread$9$1(_objectSpread$9$1({},GeneralTransforms),NodeTransforms),SelectionTransforms),TextTransforms),BATCHING_DIRTY_PATHS=new WeakMap,isBatchingDirtyPaths=e=>BATCHING_DIRTY_PATHS.get(e)||!1,batchDirtyPaths=(e,t,n)=>{var r=BATCHING_DIRTY_PATHS.get(e)||!1;BATCHING_DIRTY_PATHS.set(e,!0);try{t(),n()}finally{BATCHING_DIRTY_PATHS.set(e,r)}};function updateDirtyPaths(e,t,n){var r,o,a=DIRTY_PATHS.get(e)||[],i=DIRTY_PATH_KEYS.get(e)||new Set,s=e=>{if(e){var t=e.join(",");o.has(t)||(o.add(t),r.push(e))}};if(n)for(var l of(r=[],o=new Set,a)){s(n(l))}else r=a,o=i;for(var c of t)s(c);DIRTY_PATHS.set(e,r),DIRTY_PATH_KEYS.set(e,o)}var apply=(e,t)=>{for(var n of Editor.pathRefs(e))PathRef.transform(n,t);for(var r of Editor.pointRefs(e))PointRef.transform(r,t);for(var o of Editor.rangeRefs(e))RangeRef.transform(o,t);if(!isBatchingDirtyPaths(e)){var a=Path.operationCanTransformPath(t)?e=>Path.transform(e,t):void 0;updateDirtyPaths(e,e.getDirtyPaths(t),a)}Transforms.transform(e,t),e.operations.push(t),Editor.normalize(e,{operation:t}),"set_selection"===t.type&&(e.marks=null),FLUSHING.get(e)||(FLUSHING.set(e,!0),Promise.resolve().then((()=>{FLUSHING.set(e,!1),e.onChange({operation:t}),e.operations=[]})))},getDirtyPaths=(e,t)=>{switch(t.type){case"insert_text":case"remove_text":case"set_node":var{path:n}=t;return Path.levels(n);case"insert_node":var{node:r,path:o}=t,a=Path.levels(o),i=Text$1.isText(r)?[]:Array.from(Node$1.nodes(r),(e=>{var[,t]=e;return o.concat(t)}));return[...a,...i];case"merge_node":var{path:s}=t;return[...Path.ancestors(s),Path.previous(s)];case"move_node":var{path:l,newPath:c}=t;if(Path.equals(l,c))return[];var u=[],d=[];for(var f of Path.ancestors(l)){var p=Path.transform(f,t);u.push(p)}for(var m of Path.ancestors(c)){var h=Path.transform(m,t);d.push(h)}var _=d[d.length-1],g=c[c.length-1],v=_.concat(g);return[...u,...d,v];case"remove_node":var{path:E}=t;return[...Path.ancestors(E)];case"split_node":var{path:y}=t;return[...Path.levels(y),Path.next(y)];default:return[]}},getFragment=e=>{var{selection:t}=e;return t?Node$1.fragment(e,t):[]},normalizeNode=(e,t)=>{var[n,r]=t;if(!Text$1.isText(n))if(Element$2.isElement(n)&&0===n.children.length){Transforms.insertNodes(e,{text:""},{at:r.concat(0),voids:!0})}else for(var o=!Editor.isEditor(n)&&(Element$2.isElement(n)&&(e.isInline(n)||0===n.children.length||Text$1.isText(n.children[0])||e.isInline(n.children[0]))),a=0,i=0;i<n.children.length;i++,a++){var s=Node$1.get(e,r);if(!Text$1.isText(s)){var l=s.children[a],c=s.children[a-1],u=i===n.children.length-1;if((Text$1.isText(l)||Element$2.isElement(l)&&e.isInline(l))!==o)Transforms.removeNodes(e,{at:r.concat(a),voids:!0}),a--;else if(Element$2.isElement(l)){if(e.isInline(l))if(null!=c&&Text$1.isText(c)){if(u){Transforms.insertNodes(e,{text:""},{at:r.concat(a+1),voids:!0}),a++}}else{Transforms.insertNodes(e,{text:""},{at:r.concat(a),voids:!0}),a++}}else{if(!Text$1.isText(l)&&!("children"in l))l.children=[];null!=c&&Text$1.isText(c)&&(Text$1.equals(l,c,{loose:!0})?(Transforms.mergeNodes(e,{at:r.concat(a),voids:!0}),a--):""===c.text?(Transforms.removeNodes(e,{at:r.concat(a-1),voids:!0}),a--):""===l.text&&(Transforms.removeNodes(e,{at:r.concat(a),voids:!0}),a--))}}}},shouldNormalize=(e,t)=>{var{iteration:n,initialDirtyPathsLength:r}=t,o=42*r;if(n>o)throw new Error("Could not completely normalize the editor after ".concat(o," iterations! This is usually due to incorrect normalization logic that leaves a node in an invalid state."));return!0},above=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{voids:n=!1,mode:r="lowest",at:o=e.selection,match:a}=t;if(o){var i=Editor.path(e,o),s="lowest"===r;for(var[l,c]of Editor.levels(e,{at:i,voids:n,match:a,reverse:s}))if(!Text$1.isText(l))if(Range.isRange(o)){if(Path.isAncestor(c,o.anchor.path)&&Path.isAncestor(c,o.focus.path))return[l,c]}else if(!Path.equals(i,c))return[l,c]}};function ownKeys$8$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$8$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$8$1(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$8$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var addMark=(e,t,n)=>{var{selection:r}=e;if(r){var o=(t,n)=>{if(!Text$1.isText(t))return!1;var[r,o]=Editor.parent(e,n);return!e.isVoid(r)||e.markableVoid(r)},a=Range.isExpanded(r),i=!1;if(!a){var[s,l]=Editor.node(e,r);if(s&&o(s,l)){var[c]=Editor.parent(e,l);i=c&&e.markableVoid(c)}}if(a||i)Transforms.setNodes(e,{[t]:n},{match:o,split:!0,voids:!0});else{var u=_objectSpread$8$1(_objectSpread$8$1({},Editor.marks(e)||{}),{},{[t]:n});e.marks=u,FLUSHING.get(e)||e.onChange()}}};function ownKeys$7$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$7$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$7$1(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$7$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var after=function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o={anchor:Editor.point(e,t,{edge:"end"}),focus:Editor.end(e,[])},{distance:a=1}=r,i=0;for(var s of Editor.positions(e,_objectSpread$7$1(_objectSpread$7$1({},r),{},{at:o}))){if(i>a)break;0!==i&&(n=s),i++}return n};function ownKeys$6$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$6$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6$2(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var before=function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o={anchor:Editor.start(e,[]),focus:Editor.point(e,t,{edge:"start"})},{distance:a=1}=r,i=0;for(var s of Editor.positions(e,_objectSpread$6$2(_objectSpread$6$2({},r),{},{at:o,reverse:!0}))){if(i>a)break;0!==i&&(n=s),i++}return n},deleteBackward=(e,t)=>{var{selection:n}=e;n&&Range.isCollapsed(n)&&Transforms.delete(e,{unit:t,reverse:!0})},deleteForward=(e,t)=>{var{selection:n}=e;n&&Range.isCollapsed(n)&&Transforms.delete(e,{unit:t})},deleteFragment=function(e){var{direction:t="forward"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{selection:n}=e;n&&Range.isExpanded(n)&&Transforms.delete(e,{reverse:"backward"===t})},edges=(e,t)=>[Editor.start(e,t),Editor.end(e,t)];function ownKeys$5$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$5$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5$2(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var elementReadOnly=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Editor.above(e,_objectSpread$5$2(_objectSpread$5$2({},t),{},{match:t=>Element$2.isElement(t)&&Editor.isElementReadOnly(e,t)}))},end=(e,t)=>Editor.point(e,t,{edge:"end"}),first=(e,t)=>{var n=Editor.path(e,t,{edge:"start"});return Editor.node(e,n)},fragment=(e,t)=>{var n=Editor.range(e,t);return Node$1.fragment(e,n)};function ownKeys$4$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$4$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4$2(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var getVoid=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Editor.above(e,_objectSpread$4$2(_objectSpread$4$2({},t),{},{match:t=>Element$2.isElement(t)&&Editor.isVoid(e,t)}))},hasBlocks=(e,t)=>t.children.some((t=>Element$2.isElement(t)&&Editor.isBlock(e,t))),hasInlines=(e,t)=>t.children.some((t=>Text$1.isText(t)||Editor.isInline(e,t))),hasPath=(e,t)=>Node$1.has(e,t),hasTexts=(e,t)=>t.children.every((e=>Text$1.isText(e))),insertBreak=e=>{Transforms.splitNodes(e,{always:!0})},insertNode=(e,t,n)=>{Transforms.insertNodes(e,t,n)},insertSoftBreak=e=>{Transforms.splitNodes(e,{always:!0})};function ownKeys$3$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$3$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3$2(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var insertText=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{selection:r,marks:o}=e;if(r){if(o){var a=_objectSpread$3$2({text:t},o);Transforms.insertNodes(e,a,{at:n.at,voids:n.voids})}else Transforms.insertText(e,t,n);e.marks=null}},isBlock=(e,t)=>!e.isInline(t),isEdge=(e,t,n)=>Editor.isStart(e,t,n)||Editor.isEnd(e,t,n),isEmpty$1=(e,t)=>{var{children:n}=t,[r]=n;return 0===n.length||1===n.length&&Text$1.isText(r)&&""===r.text&&!e.isVoid(t)},isEnd=(e,t,n)=>{var r=Editor.end(e,n);return Point.equals(t,r)},isNormalizing=e=>{var t=NORMALIZING.get(e);return void 0===t||t},isStart=(e,t,n)=>{if(0!==t.offset)return!1;var r=Editor.start(e,n);return Point.equals(t,r)},last$1=(e,t)=>{var n=Editor.path(e,t,{edge:"end"});return Editor.node(e,n)},leaf=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Editor.path(e,t,n);return[Node$1.leaf(e,r),r]};function levels(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,reverse:r=!1,voids:o=!1}=t,{match:a}=t;if(null==a&&(a=()=>!0),n){var i=[],s=Editor.path(e,n);for(var[l,c]of Node$1.levels(e,s))if(a(l,c)&&(i.push([l,c]),!o&&Element$2.isElement(l)&&Editor.isVoid(e,l)))break;r&&i.reverse(),yield*i}}()}var _excluded$1$1=["text"],_excluded2$1$1=["text"],marks=function(e){var{marks:t,selection:n}=e;if(!n)return null;var{anchor:r,focus:o}=n;if(t)return t;if(Range.isExpanded(n)){if(Range.isBackward(n)&&([o,r]=[r,o]),Editor.isEnd(e,r,r.path)){var a=Editor.after(e,r);a&&(r=a)}var[i]=Editor.nodes(e,{match:Text$1.isText,at:{anchor:r,focus:o}});if(i){var[s]=i;return _objectWithoutProperties$1(s,_excluded$1$1)}return{}}var{path:l}=r,[c]=Editor.leaf(e,l);if(0===r.offset){var u=Editor.previous(e,{at:l,match:Text$1.isText}),d=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isVoid(e,t)&&e.markableVoid(t)});if(!d){var f=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t)});if(u&&f){var[p,m]=u,[,h]=f;Path.isAncestor(h,m)&&(c=p)}}}return _objectWithoutProperties$1(c,_excluded2$1$1)},next=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{mode:n="lowest",voids:r=!1}=t,{match:o,at:a=e.selection}=t;if(a){var i=Editor.after(e,a,{voids:r});if(i){var[,s]=Editor.last(e,[]),l=[i.path,s];if(Path.isPath(a)&&0===a.length)throw new Error("Cannot get the next node from the root node!");if(null==o)if(Path.isPath(a)){var[c]=Editor.parent(e,a);o=e=>c.children.includes(e)}else o=()=>!0;var[u]=Editor.nodes(e,{at:l,match:o,mode:n,voids:r});return u}}},node=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Editor.path(e,t,n),o=Node$1.get(e,r);return[o,r]};function nodes(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,mode:r="all",universal:o=!1,reverse:a=!1,voids:i=!1,ignoreNonSelectable:s=!1}=t,{match:l}=t;if(l||(l=()=>!0),n){var c,u;if(Span.isSpan(n))c=n[0],u=n[1];else{var d=Editor.path(e,n,{edge:"start"}),f=Editor.path(e,n,{edge:"end"});c=a?f:d,u=a?d:f}var p,m=Node$1.nodes(e,{reverse:a,from:c,to:u,pass:t=>{var[n]=t;return!!Element$2.isElement(n)&&(!(i||!Editor.isVoid(e,n)&&!Editor.isElementReadOnly(e,n))||!(!s||Editor.isSelectable(e,n)))}}),h=[];for(var[_,g]of m)if(!s||!Element$2.isElement(_)||Editor.isSelectable(e,_)){var v=p&&0===Path.compare(g,p[1]);if("highest"!==r||!v)if(l(_,g))if("lowest"===r&&v)p=[_,g];else{var E="lowest"===r?p:[_,g];E&&(o?h.push(E):yield E),p=[_,g]}else if(o&&!v&&Text$1.isText(_))return}"lowest"===r&&p&&(o?h.push(p):yield p),o&&(yield*h)}}()}var normalize=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{force:n=!1,operation:r}=t,o=e=>DIRTY_PATHS.get(e)||[],a=e=>{var t=o(e).pop(),n=t.join(",");return(e=>DIRTY_PATH_KEYS.get(e)||new Set)(e).delete(n),t};if(Editor.isNormalizing(e)){if(n){var i=Array.from(Node$1.nodes(e),(e=>{var[,t]=e;return t})),s=new Set(i.map((e=>e.join(","))));DIRTY_PATHS.set(e,i),DIRTY_PATH_KEYS.set(e,s)}0!==o(e).length&&Editor.withoutNormalizing(e,(()=>{for(var t of o(e))if(Node$1.has(e,t)){var n=Editor.node(e,t),[i,s]=n;Element$2.isElement(i)&&0===i.children.length&&e.normalizeNode(n,{operation:r})}for(var l=o(e),c=l.length,u=0;0!==l.length;){if(!e.shouldNormalize({dirtyPaths:l,iteration:u,initialDirtyPathsLength:c,operation:r}))return;var d=a(e);if(Node$1.has(e,d)){var f=Editor.node(e,d);e.normalizeNode(f,{operation:r})}u++,l=o(e)}}))}},parent=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Editor.path(e,t,n),o=Path.parent(r);return Editor.node(e,o)},pathRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:r="forward"}=n,o={current:t,affinity:r,unref(){var{current:t}=o;return Editor.pathRefs(e).delete(o),o.current=null,t}};return Editor.pathRefs(e).add(o),o},pathRefs=e=>{var t=PATH_REFS.get(e);return t||(t=new Set,PATH_REFS.set(e,t)),t},path=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{depth:r,edge:o}=n;if(Path.isPath(t))if("start"===o){var[,a]=Node$1.first(e,t);t=a}else if("end"===o){var[,i]=Node$1.last(e,t);t=i}return Range.isRange(t)&&(t="start"===o?Range.start(t):"end"===o?Range.end(t):Path.common(t.anchor.path,t.focus.path)),Point.isPoint(t)&&(t=t.path),null!=r&&(t=t.slice(0,r)),t},pointRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:r="forward"}=n,o={current:t,affinity:r,unref(){var{current:t}=o;return Editor.pointRefs(e).delete(o),o.current=null,t}};return Editor.pointRefs(e).add(o),o},pointRefs=e=>{var t=POINT_REFS.get(e);return t||(t=new Set,POINT_REFS.set(e,t)),t},point=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{edge:r="start"}=n;if(Path.isPath(t)){var o;if("end"===r){var[,a]=Node$1.last(e,t);o=a}else{var[,i]=Node$1.first(e,t);o=i}var s=Node$1.get(e,o);if(!Text$1.isText(s))throw new Error("Cannot get the ".concat(r," point in the node at path [").concat(t,"] because it has no ").concat(r," text node."));return{path:o,offset:"end"===r?s.text.length:0}}if(Range.isRange(t)){var[l,c]=Range.edges(t);return"start"===r?l:c}return t};function positions(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,unit:r="offset",reverse:o=!1,voids:a=!1,ignoreNonSelectable:i=!1}=t;if(n){var s=Editor.range(e,n),[l,c]=Range.edges(s),u=o?c:l,d=!1,f="",p=0,m=0,h=0;for(var[_,g]of Editor.nodes(e,{at:n,reverse:o,voids:a,ignoreNonSelectable:i})){if(Element$2.isElement(_)){if(!a&&(e.isVoid(_)||e.isElementReadOnly(_))){yield Editor.start(e,g);continue}if(e.isInline(_))continue;if(Editor.hasInlines(e,_)){var v=Path.isAncestor(g,c.path)?c:Editor.end(e,g),E=Path.isAncestor(g,l.path)?l:Editor.start(e,g);f=Editor.string(e,{anchor:E,focus:v},{voids:a}),d=!0}}if(Text$1.isText(_)){var y=Path.equals(g,u.path);for(y?(m=o?u.offset:_.text.length-u.offset,h=u.offset):(m=_.text.length,h=o?m:0),(y||d||"offset"===r)&&(yield{path:g,offset:h},d=!1);;){if(0===p){if(""===f)break;p=b(f,r,o),f=splitByCharacterDistance(f,p,o)[1]}if(h=o?h-p:h+p,(m-=p)<0){p=-m;break}p=0,yield{path:g,offset:h}}}}}function b(e,t,n){return"character"===t?getCharacterDistance(e,n):"word"===t?getWordDistance(e,n):"line"===t||"block"===t?e.length:1}}()}var previous=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{mode:n="lowest",voids:r=!1}=t,{match:o,at:a=e.selection}=t;if(a){var i=Editor.before(e,a,{voids:r});if(i){var[,s]=Editor.first(e,[]),l=[i.path,s];if(Path.isPath(a)&&0===a.length)throw new Error("Cannot get the previous node from the root node!");if(null==o)if(Path.isPath(a)){var[c]=Editor.parent(e,a);o=e=>c.children.includes(e)}else o=()=>!0;var[u]=Editor.nodes(e,{reverse:!0,at:l,match:o,mode:n,voids:r});return u}}},rangeRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:r="forward"}=n,o={current:t,affinity:r,unref(){var{current:t}=o;return Editor.rangeRefs(e).delete(o),o.current=null,t}};return Editor.rangeRefs(e).add(o),o},rangeRefs=e=>{var t=RANGE_REFS.get(e);return t||(t=new Set,RANGE_REFS.set(e,t)),t},range=(e,t,n)=>Range.isRange(t)&&!n?t:{anchor:Editor.start(e,t),focus:Editor.end(e,n||t)};function ownKeys$2$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$2$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2$2(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var removeMark=(e,t)=>{var{selection:n}=e;if(n){var r=(t,n)=>{if(!Text$1.isText(t))return!1;var[r,o]=Editor.parent(e,n);return!e.isVoid(r)||e.markableVoid(r)},o=Range.isExpanded(n),a=!1;if(!o){var[i,s]=Editor.node(e,n);if(i&&r(i,s)){var[l]=Editor.parent(e,s);a=l&&e.markableVoid(l)}}if(o||a)Transforms.unsetNodes(e,t,{match:r,split:!0,voids:!0});else{var c=_objectSpread$2$2({},Editor.marks(e)||{});delete c[t],e.marks=c,FLUSHING.get(e)||e.onChange()}}},setNormalizing=(e,t)=>{NORMALIZING.set(e,t)},start=(e,t)=>Editor.point(e,t,{edge:"start"}),string=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{voids:r=!1}=n,o=Editor.range(e,t),[a,i]=Range.edges(o),s="";for(var[l,c]of Editor.nodes(e,{at:o,match:Text$1.isText,voids:r})){var u=l.text;Path.equals(c,i.path)&&(u=u.slice(0,i.offset)),Path.equals(c,a.path)&&(u=u.slice(a.offset)),s+=u}return s},unhangRange=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{voids:r=!1}=n,[o,a]=Range.edges(t);if(0!==o.offset||0!==a.offset||Range.isCollapsed(t)||Path.hasPrevious(a.path))return t;var i=Editor.above(e,{at:a,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),voids:r}),s=i?i[1]:[],l={anchor:Editor.start(e,o),focus:a},c=!0;for(var[u,d]of Editor.nodes(e,{at:l,match:Text$1.isText,reverse:!0,voids:r}))if(c)c=!1;else if(""!==u.text||Path.isBefore(d,s)){a={path:d,offset:u.text.length};break}return{anchor:o,focus:a}},withoutNormalizing=(e,t)=>{var n=Editor.isNormalizing(e);Editor.setNormalizing(e,!1);try{t()}finally{Editor.setNormalizing(e,n)}Editor.normalize(e)},shouldMergeNodesRemovePrevNode=(e,t,n)=>{var[r,o]=t;return Element$2.isElement(r)&&Editor.isEmpty(e,r)||Text$1.isText(r)&&""===r.text&&0!==o[o.length-1]},deleteText=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var n,r,{reverse:o=!1,unit:a="character",distance:i=1,voids:s=!1}=t,{at:l=e.selection,hanging:c=!1}=t;if(l){var u=!1;if(Range.isRange(l)&&Range.isCollapsed(l)&&(u=!0,l=l.anchor),Point.isPoint(l)){var d=Editor.void(e,{at:l,mode:"highest"});if(!s&&d){var[,f]=d;l=f}else{var p={unit:a,distance:i};l={anchor:l,focus:o?Editor.before(e,l,p)||Editor.start(e,[]):Editor.after(e,l,p)||Editor.end(e,[])},c=!0}}if(Path.isPath(l))Transforms.removeNodes(e,{at:l,voids:s});else if(!Range.isCollapsed(l)){if(!c){var[,m]=Range.edges(l),h=Editor.end(e,[]);Point.equals(m,h)||(l=Editor.unhangRange(e,l,{voids:s}))}var[_,g]=Range.edges(l),v=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:_,voids:s}),E=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:g,voids:s}),y=v&&E&&!Path.equals(v[1],E[1]),b=Path.equals(_.path,g.path),C=s?null:null!==(n=Editor.void(e,{at:_,mode:"highest"}))&&void 0!==n?n:Editor.elementReadOnly(e,{at:_,mode:"highest"}),R=s?null:null!==(r=Editor.void(e,{at:g,mode:"highest"}))&&void 0!==r?r:Editor.elementReadOnly(e,{at:g,mode:"highest"});if(C){var w=Editor.before(e,_);w&&v&&Path.isAncestor(v[1],w.path)&&(_=w)}if(R){var S=Editor.after(e,g);S&&E&&Path.isAncestor(E[1],S.path)&&(g=S)}var D,T=[];for(var O of Editor.nodes(e,{at:l,voids:s})){var[A,I]=O;D&&0===Path.compare(I,D)||(!s&&Element$2.isElement(A)&&(Editor.isVoid(e,A)||Editor.isElementReadOnly(e,A))||!Path.isCommon(I,_.path)&&!Path.isCommon(I,g.path))&&(T.push(O),D=I)}var x=Array.from(T,(t=>{var[,n]=t;return Editor.pathRef(e,n)})),N=Editor.pointRef(e,_),F=Editor.pointRef(e,g),P="";if(!b&&!C){var k=N.current,[$]=Editor.leaf(e,k),{path:M}=k,{offset:B}=_,L=$.text.slice(B);L.length>0&&(e.apply({type:"remove_text",path:M,offset:B,text:L}),P=L)}if(x.reverse().map((e=>e.unref())).filter((e=>null!==e)).forEach((t=>Transforms.removeNodes(e,{at:t,voids:s}))),!R){var j=F.current,[U]=Editor.leaf(e,j),{path:V}=j,H=b?_.offset:0,z=U.text.slice(H,g.offset);z.length>0&&(e.apply({type:"remove_text",path:V,offset:H,text:z}),P=z)}!b&&y&&F.current&&N.current&&Transforms.mergeNodes(e,{at:F.current,hanging:!0,voids:s}),u&&o&&"character"===a&&P.length>1&&P.match(/[\u0E00-\u0E7F]+/)&&Transforms.insertText(e,P.slice(0,P.length-i));var K=N.unref(),W=F.unref(),G=o?K||W:W||K;null==t.at&&G&&Transforms.select(e,G)}}}))},insertFragment=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{hanging:r=!1,voids:o=!1}=n,{at:a=getDefaultInsertLocation(e),batchDirty:i=!0}=n;if(t.length){if(Range.isRange(a))if(r||(a=Editor.unhangRange(e,a,{voids:o})),Range.isCollapsed(a))a=a.anchor;else{var[,s]=Range.edges(a);if(!o&&Editor.void(e,{at:s}))return;var l=Editor.pointRef(e,s);Transforms.delete(e,{at:a}),a=l.unref()}else Path.isPath(a)&&(a=Editor.start(e,a));if(o||!Editor.void(e,{at:a})){var c=Editor.above(e,{at:a,match:t=>Element$2.isElement(t)&&Editor.isInline(e,t),mode:"highest",voids:o});if(c){var[,u]=c;if(Editor.isEnd(e,a,u))a=Editor.after(e,u);else if(Editor.isStart(e,a,u)){a=Editor.before(e,u)}}var d=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:a,voids:o}),[,f]=d,p=Editor.isStart(e,a,f),m=Editor.isEnd(e,a,f),h=p&&m,_=!p||p&&m,g=!m,[,v]=Node$1.first({children:t},[]),[,E]=Node$1.last({children:t},[]),y=[],b=t=>{var[n,r]=t;return!(0===r.length)&&(!!h||!(_&&Path.isAncestor(r,v)&&Element$2.isElement(n)&&!e.isVoid(n)&&!e.isInline(n))&&!(g&&Path.isAncestor(r,E)&&Element$2.isElement(n)&&!e.isVoid(n)&&!e.isInline(n)))};for(var C of Node$1.nodes({children:t},{pass:b}))b(C)&&y.push(C);var R=[],w=[],S=[],D=!0,T=!1;for(var[O]of y)Element$2.isElement(O)&&!e.isInline(O)?(D=!1,T=!0,w.push(O)):D?R.push(O):S.push(O);var[A]=Editor.nodes(e,{at:a,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:o}),[,I]=A,x=Editor.isStart(e,a,I),N=Editor.isEnd(e,a,I),F=Editor.pathRef(e,m&&!S.length?Path.next(f):f),P=Editor.pathRef(e,N?Path.next(I):I);Transforms.splitNodes(e,{at:a,match:t=>T?Element$2.isElement(t)&&Editor.isBlock(e,t):Text$1.isText(t)||Editor.isInline(e,t),mode:T?"lowest":"highest",always:T&&(!p||R.length>0)&&(!m||S.length>0),voids:o});var k,$=Editor.pathRef(e,!x||x&&N?Path.next(I):I);if(Transforms.insertNodes(e,R,{at:$.current,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:o,batchDirty:i}),h&&!R.length&&w.length&&!S.length&&Transforms.delete(e,{at:f,voids:o}),Transforms.insertNodes(e,w,{at:F.current,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),mode:"lowest",voids:o,batchDirty:i}),Transforms.insertNodes(e,S,{at:P.current,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:o,batchDirty:i}),!n.at)if(S.length>0&&P.current?k=Path.previous(P.current):w.length>0&&F.current?k=Path.previous(F.current):$.current&&(k=Path.previous($.current)),k){var M=Editor.end(e,k);Transforms.select(e,M)}$.unref(),F.unref(),P.unref()}}}))},collapse=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{edge:n="anchor"}=t,{selection:r}=e;if(r)if("anchor"===n)Transforms.select(e,r.anchor);else if("focus"===n)Transforms.select(e,r.focus);else if("start"===n){var[o]=Range.edges(r);Transforms.select(e,o)}else if("end"===n){var[,a]=Range.edges(r);Transforms.select(e,a)}},deselect=e=>{var{selection:t}=e;t&&e.apply({type:"set_selection",properties:t,newProperties:null})},move=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{selection:n}=e,{distance:r=1,unit:o="character",reverse:a=!1}=t,{edge:i=null}=t;if(n){"start"===i&&(i=Range.isBackward(n)?"focus":"anchor"),"end"===i&&(i=Range.isBackward(n)?"anchor":"focus");var{anchor:s,focus:l}=n,c={distance:r,unit:o,ignoreNonSelectable:!0},u={};if(null==i||"anchor"===i){var d=a?Editor.before(e,s,c):Editor.after(e,s,c);d&&(u.anchor=d)}if(null==i||"focus"===i){var f=a?Editor.before(e,l,c):Editor.after(e,l,c);f&&(u.focus=f)}Transforms.setSelection(e,u)}},select=(e,t)=>{var{selection:n}=e;if(t=Editor.range(e,t),n)Transforms.setSelection(e,t);else{if(!Range.isRange(t))throw new Error("When setting the selection and the current selection is `null` you must provide at least an `anchor` and `focus`, but you passed: ".concat(Scrubber.stringify(t)));e.apply({type:"set_selection",properties:n,newProperties:t})}};function ownKeys$1$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$1$4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$4(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$4(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var setPoint=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{selection:r}=e,{edge:o="both"}=n;if(r){"start"===o&&(o=Range.isBackward(r)?"focus":"anchor"),"end"===o&&(o=Range.isBackward(r)?"anchor":"focus");var{anchor:a,focus:i}=r,s="anchor"===o?a:i;Transforms.setSelection(e,{["anchor"===o?"anchor":"focus"]:_objectSpread$1$4(_objectSpread$1$4({},s),t)})}},setSelection=(e,t)=>{var{selection:n}=e,r={},o={};if(n){for(var a in t)("anchor"===a&&null!=t.anchor&&!Point.equals(t.anchor,n.anchor)||"focus"===a&&null!=t.focus&&!Point.equals(t.focus,n.focus)||"anchor"!==a&&"focus"!==a&&t[a]!==n[a])&&(r[a]=n[a],o[a]=t[a]);Object.keys(r).length>0&&e.apply({type:"set_selection",properties:r,newProperties:o})}},insertNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{hanging:r=!1,voids:o=!1,mode:a="lowest",batchDirty:i=!0}=n,{at:s,match:l,select:c}=n;if(Node$1.isNode(t)&&(t=[t]),0!==t.length){var[u]=t;if(s||(s=getDefaultInsertLocation(e),!1!==c&&(c=!0)),null==c&&(c=!1),Range.isRange(s))if(r||(s=Editor.unhangRange(e,s,{voids:o})),Range.isCollapsed(s))s=s.anchor;else{var[,d]=Range.edges(s),f=Editor.pointRef(e,d);Transforms.delete(e,{at:s}),s=f.unref()}if(Point.isPoint(s)){null==l&&(l=Text$1.isText(u)?e=>Text$1.isText(e):e.isInline(u)?t=>Text$1.isText(t)||Editor.isInline(e,t):t=>Element$2.isElement(t)&&Editor.isBlock(e,t));var[p]=Editor.nodes(e,{at:s.path,match:l,mode:a,voids:o});if(!p)return;var[,m]=p,h=Editor.pathRef(e,m),_=Editor.isEnd(e,s,m);Transforms.splitNodes(e,{at:s,match:l,mode:a,voids:o});var g=h.unref();s=_?Path.next(g):g}var v=Path.parent(s),E=s[s.length-1];if(o||!Editor.void(e,{at:v})){if(i){var y=[],b=Path.levels(v);batchDirtyPaths(e,(()=>{var n=function(){var t=v.concat(E);E++;var n={type:"insert_node",path:t,node:r};e.apply(n),s=Path.next(s),y.push(n),Text$1.isText?b.push(...Array.from(Node$1.nodes(r),(e=>{var[,n]=e;return t.concat(n)}))):b.push(t)};for(var r of t)n()}),(()=>{updateDirtyPaths(e,b,(e=>{var t=e;for(var n of y)if(Path.operationCanTransformPath(n)&&!(t=Path.transform(t,n)))return null;return t}))}))}else for(var C of t){var R=v.concat(E);E++,e.apply({type:"insert_node",path:R,node:C}),s=Path.next(s)}if(s=Path.previous(s),c){var w=Editor.end(e,s);w&&Transforms.select(e,w)}}}}))},liftNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{at:n=e.selection,mode:r="lowest",voids:o=!1}=t,{match:a}=t;if(null==a&&(a=Path.isPath(n)?matchPath(e,n):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),n){var i=Editor.nodes(e,{at:n,match:a,mode:r,voids:o}),s=Array.from(i,(t=>{var[,n]=t;return Editor.pathRef(e,n)}));for(var l of s){var c=l.unref();if(c.length<2)throw new Error("Cannot lift node at a path [".concat(c,"] because it has a depth of less than `2`."));var u=Editor.node(e,Path.parent(c)),[d,f]=u,p=c[c.length-1],{length:m}=d.children;if(1===m){var h=Path.next(f);Transforms.moveNodes(e,{at:c,to:h,voids:o}),Transforms.removeNodes(e,{at:f,voids:o})}else if(0===p)Transforms.moveNodes(e,{at:c,to:f,voids:o});else if(p===m-1){var _=Path.next(f);Transforms.moveNodes(e,{at:c,to:_,voids:o})}else{var g=Path.next(c),v=Path.next(f);Transforms.splitNodes(e,{at:g,voids:o}),Transforms.moveNodes(e,{at:c,to:v,voids:o})}}}}))},_excluded$5=["text"],_excluded2$4=["children"],hasSingleChildNest=(e,t)=>{if(Element$2.isElement(t)){var n=t;return!!Editor.isVoid(e,t)||1===n.children.length&&hasSingleChildNest(e,n.children[0])}return!Editor.isEditor(t)},mergeNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{match:n,at:r=e.selection}=t,{hanging:o=!1,voids:a=!1,mode:i="lowest"}=t;if(r){if(null==n)if(Path.isPath(r)){var[s]=Editor.parent(e,r);n=e=>s.children.includes(e)}else n=t=>Element$2.isElement(t)&&Editor.isBlock(e,t);if(!o&&Range.isRange(r)&&(r=Editor.unhangRange(e,r,{voids:a})),Range.isRange(r))if(Range.isCollapsed(r))r=r.anchor;else{var[,l]=Range.edges(r),c=Editor.pointRef(e,l);Transforms.delete(e,{at:r}),r=c.unref(),null==t.at&&Transforms.select(e,r)}var[u]=Editor.nodes(e,{at:r,match:n,voids:a,mode:i}),d=Editor.previous(e,{at:r,match:n,voids:a,mode:i});if(u&&d){var[f,p]=u,[m,h]=d;if(0!==p.length&&0!==h.length){var _,g,v=Path.next(h),E=Path.common(p,h),y=Path.isSibling(p,h),b=Array.from(Editor.levels(e,{at:p}),(e=>{var[t]=e;return t})).slice(E.length).slice(0,-1),C=Editor.above(e,{at:p,mode:"highest",match:t=>b.includes(t)&&hasSingleChildNest(e,t)}),R=C&&Editor.pathRef(e,C[1]);if(Text$1.isText(f)&&Text$1.isText(m)){var w=_objectWithoutProperties$1(f,_excluded$5);g=m.text.length,_=w}else{if(!Element$2.isElement(f)||!Element$2.isElement(m))throw new Error("Cannot merge the node at path [".concat(p,"] with the previous sibling because it is not the same kind: ").concat(Scrubber.stringify(f)," ").concat(Scrubber.stringify(m)));w=_objectWithoutProperties$1(f,_excluded2$4);g=m.children.length,_=w}y||Transforms.moveNodes(e,{at:p,to:v,voids:a}),R&&Transforms.removeNodes(e,{at:R.current,voids:a}),Editor.shouldMergeNodesRemovePrevNode(e,d,u)?Transforms.removeNodes(e,{at:h,voids:a}):e.apply({type:"merge_node",path:v,position:g,properties:_}),R&&R.unref()}}}}))},moveNodes=(e,t)=>{Editor.withoutNormalizing(e,(()=>{var{to:n,at:r=e.selection,mode:o="lowest",voids:a=!1}=t,{match:i}=t;if(r){null==i&&(i=Path.isPath(r)?matchPath(e,r):t=>Element$2.isElement(t)&&Editor.isBlock(e,t));var s=Editor.pathRef(e,n),l=Editor.nodes(e,{at:r,match:i,mode:o,voids:a}),c=Array.from(l,(t=>{var[,n]=t;return Editor.pathRef(e,n)}));for(var u of c){var d=u.unref(),f=s.current;0!==d.length&&e.apply({type:"move_node",path:d,newPath:f}),s.current&&Path.isSibling(f,d)&&Path.isAfter(f,d)&&(s.current=Path.next(s.current))}s.unref()}}))},removeNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{hanging:n=!1,voids:r=!1,mode:o="lowest"}=t,{at:a=e.selection,match:i}=t;if(a){null==i&&(i=Path.isPath(a)?matchPath(e,a):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),!n&&Range.isRange(a)&&(a=Editor.unhangRange(e,a,{voids:r}));var s=Editor.nodes(e,{at:a,match:i,mode:o,voids:r}),l=Array.from(s,(t=>{var[,n]=t;return Editor.pathRef(e,n)}));for(var c of l){var u=c.unref();if(u){var[d]=Editor.node(e,u);e.apply({type:"remove_node",path:u,node:d})}}}}))},setNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{match:r,at:o=e.selection,compare:a,merge:i}=n,{hanging:s=!1,mode:l="lowest",split:c=!1,voids:u=!1}=n;if(o){if(null==r&&(r=Path.isPath(o)?matchPath(e,o):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),!s&&Range.isRange(o)&&(o=Editor.unhangRange(e,o,{voids:u})),c&&Range.isRange(o)){if(Range.isCollapsed(o)&&Editor.leaf(e,o.anchor)[0].text.length>0)return;var d=Editor.rangeRef(e,o,{affinity:"inward"}),[f,p]=Range.edges(o),m="lowest"===l?"lowest":"highest",h=Editor.isEnd(e,p,p.path);Transforms.splitNodes(e,{at:p,match:r,mode:m,voids:u,always:!h});var _=Editor.isStart(e,f,f.path);Transforms.splitNodes(e,{at:f,match:r,mode:m,voids:u,always:!_}),o=d.unref(),null==n.at&&Transforms.select(e,o)}for(var[g,v]of(a||(a=(e,t)=>e!==t),Editor.nodes(e,{at:o,match:r,mode:l,voids:u}))){var E={},y={};if(0!==v.length){var b=!1;for(var C in t)"children"!==C&&"text"!==C&&a(t[C],g[C])&&(b=!0,g.hasOwnProperty(C)&&(E[C]=g[C]),i?null!=t[C]&&(y[C]=i(g[C],t[C])):null!=t[C]&&(y[C]=t[C]));b&&e.apply({type:"set_node",path:v,properties:E,newProperties:y})}}}}))},deleteRange=(e,t)=>{if(Range.isCollapsed(t))return t.anchor;var[,n]=Range.edges(t),r=Editor.pointRef(e,n);return Transforms.delete(e,{at:t}),r.unref()},splitNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{mode:n="lowest",voids:r=!1}=t,{match:o,at:a=e.selection,height:i=0,always:s=!1}=t;if(null==o&&(o=t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),Range.isRange(a)&&(a=deleteRange(e,a)),Path.isPath(a)){var l=a,c=Editor.point(e,l),[u]=Editor.parent(e,l);o=e=>e===u,i=c.path.length-l.length+1,a=c,s=!0}if(a){var d,f=Editor.pointRef(e,a,{affinity:"backward"});try{var[p]=Editor.nodes(e,{at:a,match:o,mode:n,voids:r});if(!p)return;var m=Editor.void(e,{at:a,mode:"highest"});if(!r&&m){var[h,_]=m;if(Element$2.isElement(h)&&e.isInline(h)){var g=Editor.after(e,_);if(!g){var v=Path.next(_);Transforms.insertNodes(e,{text:""},{at:v,voids:r}),g=Editor.point(e,v)}a=g,s=!0}i=a.path.length-_.length+1,s=!0}d=Editor.pointRef(e,a);var E=a.path.length-i,[,y]=p,b=a.path.slice(0,E),C=0===i?a.offset:a.path[E]+0;for(var[R,w]of Editor.levels(e,{at:b,reverse:!0,voids:r})){var S=!1;if(w.length<y.length||0===w.length||!r&&Element$2.isElement(R)&&Editor.isVoid(e,R))break;var D=f.current,T=Editor.isEnd(e,D,w);if(s||!f||!Editor.isEdge(e,D,w)){S=!0;var O=Node$1.extractProps(R);e.apply({type:"split_node",path:w,position:C,properties:O})}C=w[w.length-1]+(S||T?1:0)}if(null==t.at){var A=d.current||Editor.end(e,[]);Transforms.select(e,A)}}finally{var I;f.unref(),null===(I=d)||void 0===I||I.unref()}}}))},unsetNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Array.isArray(t)||(t=[t]);var r={};for(var o of t)r[o]=null;Transforms.setNodes(e,r,n)},unwrapNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{mode:n="lowest",split:r=!1,voids:o=!1}=t,{at:a=e.selection,match:i}=t;if(a){null==i&&(i=Path.isPath(a)?matchPath(e,a):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),Path.isPath(a)&&(a=Editor.range(e,a));var s=Range.isRange(a)?Editor.rangeRef(e,a):null,l=Editor.nodes(e,{at:a,match:i,mode:n,voids:o}),c=Array.from(l,(t=>{var[,n]=t;return Editor.pathRef(e,n)})).reverse(),u=function(){var t=d.unref(),[n]=Editor.node(e,t),a=Editor.range(e,t);r&&s&&(a=Range.intersection(s.current,a)),Transforms.liftNodes(e,{at:a,match:e=>Element$2.isAncestor(n)&&n.children.includes(e),voids:o})};for(var d of c)u();s&&s.unref()}}))};function ownKeys$f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$f(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var wrapNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{mode:r="lowest",split:o=!1,voids:a=!1}=n,{match:i,at:s=e.selection}=n;if(s){if(null==i&&(i=Path.isPath(s)?matchPath(e,s):e.isInline(t)?t=>Element$2.isElement(t)&&Editor.isInline(e,t)||Text$1.isText(t):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),o&&Range.isRange(s)){var[l,c]=Range.edges(s),u=Editor.rangeRef(e,s,{affinity:"inward"});Transforms.splitNodes(e,{at:c,match:i,voids:a}),Transforms.splitNodes(e,{at:l,match:i,voids:a}),s=u.unref(),null==n.at&&Transforms.select(e,s)}var d=Array.from(Editor.nodes(e,{at:s,match:e.isInline(t)?t=>Element$2.isElement(t)&&Editor.isBlock(e,t):e=>Editor.isEditor(e),mode:"lowest",voids:a})),f=function(){var n=Range.isRange(s)?Range.intersection(s,Editor.range(e,p)):s;if(!n)return 0;var o=Array.from(Editor.nodes(e,{at:n,match:i,mode:r,voids:a}));if(o.length>0){var[l]=o,c=o[o.length-1],[,u]=l,[,d]=c;if(0===u.length&&0===d.length)return 0;var f=Path.equals(u,d)?Path.parent(u):Path.common(u,d),m=Editor.range(e,u,d),h=Editor.node(e,f),[_]=h,g=f.length+1,v=Path.next(d.slice(0,g)),E=_objectSpread$f(_objectSpread$f({},t),{},{children:[]});Transforms.insertNodes(e,E,{at:v,voids:a}),Transforms.moveNodes(e,{at:m,match:e=>Element$2.isAncestor(_)&&_.children.includes(e),to:v.concat(0),voids:a})}};for(var[,p]of d)f()}}))},createEditor$1=()=>{var e={children:[],operations:[],selection:null,marks:null,isElementReadOnly:()=>!1,isInline:()=>!1,isSelectable:()=>!0,isVoid:()=>!1,markableVoid:()=>!1,onChange:()=>{},apply:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return apply(e,...n)},addMark:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return addMark(e,...n)},deleteBackward:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return deleteBackward(e,...n)},deleteForward:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return deleteForward(e,...n)},deleteFragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return deleteFragment(e,...n)},getFragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return getFragment(e,...n)},insertBreak:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertBreak(e,...n)},insertSoftBreak:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertSoftBreak(e,...n)},insertFragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertFragment(e,...n)},insertNode:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertNode(e,...n)},insertText:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertText(e,...n)},normalizeNode:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return normalizeNode(e,...n)},removeMark:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return removeMark(e,...n)},getDirtyPaths:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return getDirtyPaths(e,...n)},shouldNormalize:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return shouldNormalize(e,...n)},above:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return above(e,...n)},after:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return after(e,...n)},before:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return before(e,...n)},collapse:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return collapse(e,...n)},delete:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return deleteText(e,...n)},deselect:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return deselect(e,...n)},edges:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return edges(e,...n)},elementReadOnly:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return elementReadOnly(e,...n)},end:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return end(e,...n)},first:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return first(e,...n)},fragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return fragment(e,...n)},getMarks:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return marks(e,...n)},hasBlocks:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return hasBlocks(e,...n)},hasInlines:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return hasInlines(e,...n)},hasPath:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return hasPath(e,...n)},hasTexts:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return hasTexts(e,...n)},insertNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertNodes(e,...n)},isBlock:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isBlock(e,...n)},isEdge:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isEdge(e,...n)},isEmpty:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isEmpty$1(e,...n)},isEnd:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isEnd(e,...n)},isNormalizing:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isNormalizing(e,...n)},isStart:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isStart(e,...n)},last:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return last$1(e,...n)},leaf:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return leaf(e,...n)},levels:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return levels(e,...n)},liftNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return liftNodes(e,...n)},mergeNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return mergeNodes(e,...n)},move:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return move(e,...n)},moveNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return moveNodes(e,...n)},next:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return next(e,...n)},node:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return node(e,...n)},nodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return nodes(e,...n)},normalize:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return normalize(e,...n)},parent:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return parent(e,...n)},path:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return path(e,...n)},pathRef:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return pathRef(e,...n)},pathRefs:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return pathRefs(e,...n)},point:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return point(e,...n)},pointRef:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return pointRef(e,...n)},pointRefs:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return pointRefs(e,...n)},positions:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return positions(e,...n)},previous:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return previous(e,...n)},range:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return range(e,...n)},rangeRef:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return rangeRef(e,...n)},rangeRefs:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return rangeRefs(e,...n)},removeNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return removeNodes(e,...n)},select:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return select(e,...n)},setNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return setNodes(e,...n)},setNormalizing:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return setNormalizing(e,...n)},setPoint:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return setPoint(e,...n)},setSelection:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return setSelection(e,...n)},splitNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return splitNodes(e,...n)},start:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return start(e,...n)},string:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return string(e,...n)},unhangRange:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return unhangRange(e,...n)},unsetNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return unsetNodes(e,...n)},unwrapNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return unwrapNodes(e,...n)},void:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return getVoid(e,...n)},withoutNormalizing:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return withoutNormalizing(e,...n)},wrapNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return wrapNodes(e,...n)},shouldMergeNodesRemovePrevNode:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return shouldMergeNodesRemovePrevNode(e,...n)}};return e};function getCharacterBefore(e,t,n={}){const{filterVoids:r}=n,o=Editor.before(e,t,{unit:"character",voids:r});if(o){const n=Editor.range(e,o,Range.isRange(t)?Range.start(t):t),r=Editor.string(e,n);return{range:n,text:r,void:0===r.length}}}function getCharacterAfter(e,t,n={}){const{filterVoids:r}=n,o=Editor.after(e,t,{unit:"character",voids:r});if(o){const n=Editor.range(e,o,Range.isRange(t)?Range.end(t):t),r=Editor.string(e,n);return{range:n,text:r,void:0===r.length}}}const defaultOptions$2={direction:"before"};function getMatchRange(e,t,n=[" "],r=defaultOptions$2){const{include:o,direction:a}={...defaultOptions$2,...r};let[i,s]=Range.edges(t),l=i;function c(t){const r="after"===t?Editor.after(e,l,{unit:"character"}):Editor.before(e,l,{unit:"character"}),o=r&&Editor.string(e,"after"===t?{anchor:l,focus:r}:{anchor:r,focus:l}),a=o&&o["after"===t?0:o.length-1];return!(!r||!a||n.includes(a))&&(l=r,0!==l.offset)}if("before"!==a){for(l=s;c("after"););s=l}if("after"!==a){for(l=i;c("before"););i=l}return o?{anchor:Editor.before(e,i,{unit:"offset"})??i,focus:Editor.after(e,s,{unit:"offset"})??s}:{anchor:i,focus:s}}function isEmptyString(e){return!e.trim()}function isSelectionCollapsed(e){return null!==e&&Range.isCollapsed(e)}const MENTION_CHARACTER="@";function getMentionDraftAtSelection(e){const{selection:t}=e;if(!isSelectionCollapsed(t))return;const n=getMatchRange(e,t);if(!n)return;const r=Editor.string(e,n);return r.startsWith(MENTION_CHARACTER)?{range:n,text:r.substring(1)}:void 0}function isComposerBodyMention(e){return Element$2.isElement(e)&&"mention"===e.type}function insertMention(e,t){const n={type:"mention",id:t,children:[{text:""}]};Transforms.insertNodes(e,n),Transforms.move(e);const r=e.selection?getCharacterAfter(e,e.selection):void 0;!r||r.void?Transforms.insertText(e," "):isEmptyString(r.text)&&Transforms.move(e)}function insertMentionCharacter(e){if(!e.selection)return;const t=getCharacterBefore(e,e.selection,{filterVoids:!0}),n=getCharacterAfter(e,e.selection,{filterVoids:!0}),r=t&&!isEmptyString(t.text),o=n&&!isEmptyString(n.text);if(isSelectionCollapsed(e.selection)){const t=(r?" ":"")+MENTION_CHARACTER+(o?" ":"");e.insertText(t),o&&Transforms.move(e,{distance:1,unit:"character",reverse:!0})}else{const t=(r?" ":"")+MENTION_CHARACTER;e.insertText(t,{at:Range.start(e.selection)}),o&&e.insertText(" ",{at:Range.end(e.selection)}),Transforms.collapse(e,{edge:"end"})}}function withMentions(e){const{isInline:t,isVoid:n,markableVoid:r,deleteBackward:o}=e;return e.isInline=e=>isComposerBodyMention(e)||t(e),e.isVoid=e=>isComposerBodyMention(e)||n(e),e.markableVoid=e=>isComposerBodyMention(e)||r(e),e.deleteBackward=t=>{const{selection:n}=e;if(isSelectionCollapsed(n)){const[r]=Editor.nodes(e,{at:"character"===t?Editor.before(e,n,{unit:"character"}):n,match:isComposerBodyMention});o(t),r&&Transforms.insertText(e,MENTION_CHARACTER)}else o(t)},e}function isCommentBodyText(e){return!("type"in e)&&"text"in e&&"string"==typeof e.text}function isCommentBodyMention(e){return"type"in e&&"mention"===e.type}function isCommentBodyLink(e){return"type"in e&&"link"===e.type}function toAbsoluteUrl(e){return e.startsWith("http://")||e.startsWith("https://")?e:e.startsWith("www.")?"https://"+e:void 0}const CommentMention$1=React.forwardRef((({children:e,asChild:t,...n},r)=>{const o=t?Slot:"span";return React__default.default.createElement(o,{...n,ref:r},e)})),CommentLink$1=React.forwardRef((({children:e,asChild:t,...n},r)=>{const o=t?Slot:"a";return React__default.default.createElement(o,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:r},e)})),defaultBodyComponents={Mention:({userId:e})=>React__default.default.createElement(CommentMention$1,null,MENTION_CHARACTER,e),Link:({href:e,children:t})=>React__default.default.createElement(CommentLink$1,{href:e},t)},CommentBody=React.forwardRef((({body:e,components:t,style:n,asChild:r,...o},a)=>{const i=r?Slot:"div",{Mention:s,Link:l}=React.useMemo((()=>({...defaultBodyComponents,...t})),[t]);return e&&e?.content?React__default.default.createElement(i,{...o,style:{whiteSpace:"break-spaces",...n},ref:a},e.content.map(((e,t)=>"paragraph"===e.type?React__default.default.createElement("p",{key:t,style:{minHeight:"1lh"}},e.children.map(((e,t)=>{if(isCommentBodyMention(e))return e.id?React__default.default.createElement(s,{userId:e.id,key:t}):null;if(isCommentBodyLink(e)){const n=toAbsoluteUrl(e.url)??e.url;return React__default.default.createElement(l,{href:n,key:t},e.text??e.url)}let n=e.text;return e.bold&&(n=React__default.default.createElement("strong",{key:t},n)),e.italic&&(n=React__default.default.createElement("em",{key:t},n)),e.strikethrough&&(n=React__default.default.createElement("s",{key:t},n)),e.code&&(n=React__default.default.createElement("code",{key:t},n)),React__default.default.createElement("span",{key:t},n)}))):null))):null})),sides=["top","right","bottom","left"],alignments=["start","end"],placements=sides.reduce(((e,t)=>e.concat(t,t+"-"+alignments[0],t+"-"+alignments[1])),[]),min$1=Math.min,max$1=Math.max,round$1=Math.round,floor$1=Math.floor,createCoords=e=>({x:e,y:e}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp$1(e,t,n){return max$1(e,min$1(t,n))}function evaluate(e,t){return"function"==typeof e?e(t):e}function getSide(e){return e.split("-")[0]}function getAlignment(e){return e.split("-")[1]}function getOppositeAxis(e){return"x"===e?"y":"x"}function getAxisLength(e){return"y"===e?"height":"width"}function getSideAxis(e){return["top","bottom"].includes(getSide(e))?"y":"x"}function getAlignmentAxis(e){return getOppositeAxis(getSideAxis(e))}function getAlignmentSides(e,t,n){void 0===n&&(n=!1);const r=getAlignment(e),o=getAlignmentAxis(e),a=getAxisLength(o);let i="x"===o?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[a]>t.floating[a]&&(i=getOppositePlacement(i)),[i,getOppositePlacement(i)]}function getExpandedPlacements(e){const t=getOppositePlacement(e);return[getOppositeAlignmentPlacement(e),t,getOppositeAlignmentPlacement(t)]}function getOppositeAlignmentPlacement(e){return e.replace(/start|end/g,(e=>oppositeAlignmentMap[e]))}function getSideList(e,t,n){const r=["left","right"],o=["right","left"],a=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return n?t?o:r:t?r:o;case"left":case"right":return t?a:i;default:return[]}}function getOppositeAxisPlacements(e,t,n,r){const o=getAlignment(e);let a=getSideList(getSide(e),"start"===n,r);return o&&(a=a.map((e=>e+"-"+o)),t&&(a=a.concat(a.map(getOppositeAlignmentPlacement)))),a}function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,(e=>oppositeSideMap[e]))}function expandPaddingObject(e){return{top:0,right:0,bottom:0,left:0,...e}}function getPaddingObject(e){return"number"!=typeof e?expandPaddingObject(e):{top:e,right:e,bottom:e,left:e}}function rectToClientRect(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function computeCoordsFromPlacement(e,t,n){let{reference:r,floating:o}=e;const a=getSideAxis(t),i=getAlignmentAxis(t),s=getAxisLength(i),l=getSide(t),c="y"===a,u=r.x+r.width/2-o.width/2,d=r.y+r.height/2-o.height/2,f=r[s]/2-o[s]/2;let p;switch(l){case"top":p={x:u,y:r.y-o.height};break;case"bottom":p={x:u,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:d};break;case"left":p={x:r.x-o.width,y:d};break;default:p={x:r.x,y:r.y}}switch(getAlignment(t)){case"start":p[i]-=f*(n&&c?-1:1);break;case"end":p[i]+=f*(n&&c?-1:1)}return p}const computePosition$1=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:a=[],platform:i}=n,s=a.filter(Boolean),l=await(null==i.isRTL?void 0:i.isRTL(t));let c=await i.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:d}=computeCoordsFromPlacement(c,r,l),f=r,p={},m=0;for(let n=0;n<s.length;n++){const{name:a,fn:h}=s[n],{x:_,y:g,data:v,reset:E}=await h({x:u,y:d,initialPlacement:r,placement:f,strategy:o,middlewareData:p,rects:c,platform:i,elements:{reference:e,floating:t}});u=null!=_?_:u,d=null!=g?g:d,p={...p,[a]:{...p[a],...v}},E&&m<=50&&(m++,"object"==typeof E&&(E.placement&&(f=E.placement),E.rects&&(c=!0===E.rects?await i.getElementRects({reference:e,floating:t,strategy:o}):E.rects),({x:u,y:d}=computeCoordsFromPlacement(c,f,l))),n=-1)}return{x:u,y:d,placement:f,strategy:o,middlewareData:p}};async function detectOverflow(e,t){var n;void 0===t&&(t={});const{x:r,y:o,platform:a,rects:i,elements:s,strategy:l}=e,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:f=!1,padding:p=0}=evaluate(t,e),m=getPaddingObject(p),h=s[f?"floating"===d?"reference":"floating":d],_=rectToClientRect(await a.getClippingRect({element:null==(n=await(null==a.isElement?void 0:a.isElement(h)))||n?h:h.contextElement||await(null==a.getDocumentElement?void 0:a.getDocumentElement(s.floating)),boundary:c,rootBoundary:u,strategy:l})),g="floating"===d?{x:r,y:o,width:i.floating.width,height:i.floating.height}:i.reference,v=await(null==a.getOffsetParent?void 0:a.getOffsetParent(s.floating)),E=await(null==a.isElement?void 0:a.isElement(v))&&await(null==a.getScale?void 0:a.getScale(v))||{x:1,y:1},y=rectToClientRect(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:g,offsetParent:v,strategy:l}):g);return{top:(_.top-y.top+m.top)/E.y,bottom:(y.bottom-_.bottom+m.bottom)/E.y,left:(_.left-y.left+m.left)/E.x,right:(y.right-_.right+m.right)/E.x}}const arrow$3=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:a,platform:i,elements:s,middlewareData:l}=t,{element:c,padding:u=0}=evaluate(e,t)||{};if(null==c)return{};const d=getPaddingObject(u),f={x:n,y:r},p=getAlignmentAxis(o),m=getAxisLength(p),h=await i.getDimensions(c),_="y"===p,g=_?"top":"left",v=_?"bottom":"right",E=_?"clientHeight":"clientWidth",y=a.reference[m]+a.reference[p]-f[p]-a.floating[m],b=f[p]-a.reference[p],C=await(null==i.getOffsetParent?void 0:i.getOffsetParent(c));let R=C?C[E]:0;R&&await(null==i.isElement?void 0:i.isElement(C))||(R=s.floating[E]||a.floating[m]);const w=y/2-b/2,S=R/2-h[m]/2-1,D=min$1(d[g],S),T=min$1(d[v],S),O=D,A=R-h[m]-T,I=R/2-h[m]/2+w,x=clamp$1(O,I,A),N=!l.arrow&&null!=getAlignment(o)&&I!==x&&a.reference[m]/2-(I<O?D:T)-h[m]/2<0,F=N?I<O?I-O:I-A:0;return{[p]:f[p]+F,data:{[p]:x,centerOffset:I-x-F,...N&&{alignmentOffset:F}},reset:N}}});function getPlacementList(e,t,n){return(e?[...n.filter((t=>getAlignment(t)===e)),...n.filter((t=>getAlignment(t)!==e))]:n.filter((e=>getSide(e)===e))).filter((n=>!e||(getAlignment(n)===e||!!t&&getOppositeAlignmentPlacement(n)!==n)))}const autoPlacement=function(e){return void 0===e&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,r,o;const{rects:a,middlewareData:i,placement:s,platform:l,elements:c}=t,{crossAxis:u=!1,alignment:d,allowedPlacements:f=placements,autoAlignment:p=!0,...m}=evaluate(e,t),h=void 0!==d||f===placements?getPlacementList(d||null,p,f):f,_=await detectOverflow(t,m),g=(null==(n=i.autoPlacement)?void 0:n.index)||0,v=h[g];if(null==v)return{};const E=getAlignmentSides(v,a,await(null==l.isRTL?void 0:l.isRTL(c.floating)));if(s!==v)return{reset:{placement:h[0]}};const y=[_[getSide(v)],_[E[0]],_[E[1]]],b=[...(null==(r=i.autoPlacement)?void 0:r.overflows)||[],{placement:v,overflows:y}],C=h[g+1];if(C)return{data:{index:g+1,overflows:b},reset:{placement:C}};const R=b.map((e=>{const t=getAlignment(e.placement);return[e.placement,t&&u?e.overflows.slice(0,2).reduce(((e,t)=>e+t),0):e.overflows[0],e.overflows]})).sort(((e,t)=>e[1]-t[1])),w=(null==(o=R.filter((e=>e[2].slice(0,getAlignment(e[0])?2:3).every((e=>e<=0))))[0])?void 0:o[0])||R[0][0];return w!==s?{data:{index:g+1,overflows:b},reset:{placement:w}}:{}}}},flip$2=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:a,rects:i,initialPlacement:s,platform:l,elements:c}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:m="none",flipAlignment:h=!0,..._}=evaluate(e,t);if(null!=(n=a.arrow)&&n.alignmentOffset)return{};const g=getSide(o),v=getSideAxis(s),E=getSide(s)===s,y=await(null==l.isRTL?void 0:l.isRTL(c.floating)),b=f||(E||!h?[getOppositePlacement(s)]:getExpandedPlacements(s)),C="none"!==m;!f&&C&&b.push(...getOppositeAxisPlacements(s,h,m,y));const R=[s,...b],w=await detectOverflow(t,_),S=[];let D=(null==(r=a.flip)?void 0:r.overflows)||[];if(u&&S.push(w[g]),d){const e=getAlignmentSides(o,i,y);S.push(w[e[0]],w[e[1]])}if(D=[...D,{placement:o,overflows:S}],!S.every((e=>e<=0))){var T,O;const e=((null==(T=a.flip)?void 0:T.index)||0)+1,t=R[e];if(t)return{data:{index:e,overflows:D},reset:{placement:t}};let n=null==(O=D.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:O.placement;if(!n)switch(p){case"bestFit":{var A;const e=null==(A=D.filter((e=>{if(C){const t=getSideAxis(e.placement);return t===v||"y"===t}return!0})).map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:A[0];e&&(n=e);break}case"initialPlacement":n=s}if(o!==n)return{reset:{placement:n}}}return{}}}};function getSideOffsets(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function isAnySideFullyClipped(e){return sides.some((t=>e[t]>=0))}const hide$2=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=evaluate(e,t);switch(r){case"referenceHidden":{const e=getSideOffsets(await detectOverflow(t,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:isAnySideFullyClipped(e)}}}case"escaped":{const e=getSideOffsets(await detectOverflow(t,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:isAnySideFullyClipped(e)}}}default:return{}}}}};function getBoundingRect(e){const t=min$1(...e.map((e=>e.left))),n=min$1(...e.map((e=>e.top)));return{x:t,y:n,width:max$1(...e.map((e=>e.right)))-t,height:max$1(...e.map((e=>e.bottom)))-n}}function getRectsByLine(e){const t=e.slice().sort(((e,t)=>e.y-t.y)),n=[];let r=null;for(let e=0;e<t.length;e++){const o=t[e];!r||o.y-r.y>r.height/2?n.push([o]):n[n.length-1].push(o),r=o}return n.map((e=>rectToClientRect(getBoundingRect(e))))}const inline=function(e){return void 0===e&&(e={}),{name:"inline",options:e,async fn(t){const{placement:n,elements:r,rects:o,platform:a,strategy:i}=t,{padding:s=2,x:l,y:c}=evaluate(e,t),u=Array.from(await(null==a.getClientRects?void 0:a.getClientRects(r.reference))||[]),d=getRectsByLine(u),f=rectToClientRect(getBoundingRect(u)),p=getPaddingObject(s);const m=await a.getElementRects({reference:{getBoundingClientRect:function(){if(2===d.length&&d[0].left>d[1].right&&null!=l&&null!=c)return d.find((e=>l>e.left-p.left&&l<e.right+p.right&&c>e.top-p.top&&c<e.bottom+p.bottom))||f;if(d.length>=2){if("y"===getSideAxis(n)){const e=d[0],t=d[d.length-1],r="top"===getSide(n),o=e.top,a=t.bottom,i=r?e.left:t.left,s=r?e.right:t.right;return{top:o,bottom:a,left:i,right:s,width:s-i,height:a-o,x:i,y:o}}const e="left"===getSide(n),t=max$1(...d.map((e=>e.right))),r=min$1(...d.map((e=>e.left))),o=d.filter((n=>e?n.left===r:n.right===t)),a=o[0].top,i=o[o.length-1].bottom;return{top:a,bottom:i,left:r,right:t,width:t-r,height:i-a,x:r,y:a}}return f}},floating:r.floating,strategy:i});return o.reference.x!==m.reference.x||o.reference.y!==m.reference.y||o.reference.width!==m.reference.width||o.reference.height!==m.reference.height?{reset:{rects:m}}:{}}}};async function convertValueToCoords(e,t){const{placement:n,platform:r,elements:o}=e,a=await(null==r.isRTL?void 0:r.isRTL(o.floating)),i=getSide(n),s=getAlignment(n),l="y"===getSideAxis(n),c=["left","top"].includes(i)?-1:1,u=a&&l?-1:1,d=evaluate(t,e);let{mainAxis:f,crossAxis:p,alignmentAxis:m}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&"number"==typeof m&&(p="end"===s?-1*m:m),l?{x:p*u,y:f*c}:{x:f*c,y:p*u}}const offset$2=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:a,placement:i,middlewareData:s}=t,l=await convertValueToCoords(t,e);return i===(null==(n=s.offset)?void 0:n.placement)&&null!=(r=s.arrow)&&r.alignmentOffset?{}:{x:o+l.x,y:a+l.y,data:{...l,placement:i}}}}},shift$2=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:a=!0,crossAxis:i=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=evaluate(e,t),c={x:n,y:r},u=await detectOverflow(t,l),d=getSideAxis(getSide(o)),f=getOppositeAxis(d);let p=c[f],m=c[d];if(a){const e="y"===f?"bottom":"right";p=clamp$1(p+u["y"===f?"top":"left"],p,p-u[e])}if(i){const e="y"===d?"bottom":"right";m=clamp$1(m+u["y"===d?"top":"left"],m,m-u[e])}const h=s.fn({...t,[f]:p,[d]:m});return{...h,data:{x:h.x-n,y:h.y-r,enabled:{[f]:a,[d]:i}}}}}},limitShift$2=function(e){return void 0===e&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:a,middlewareData:i}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=evaluate(e,t),u={x:n,y:r},d=getSideAxis(o),f=getOppositeAxis(d);let p=u[f],m=u[d];const h=evaluate(s,t),_="number"==typeof h?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(l){const e="y"===f?"height":"width",t=a.reference[f]-a.floating[e]+_.mainAxis,n=a.reference[f]+a.reference[e]-_.mainAxis;p<t?p=t:p>n&&(p=n)}if(c){var g,v;const e="y"===f?"width":"height",t=["top","left"].includes(getSide(o)),n=a.reference[d]-a.floating[e]+(t&&(null==(g=i.offset)?void 0:g[d])||0)+(t?0:_.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:(null==(v=i.offset)?void 0:v[d])||0)-(t?_.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},size$3=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:a,platform:i,elements:s}=t,{apply:l=()=>{},...c}=evaluate(e,t),u=await detectOverflow(t,c),d=getSide(o),f=getAlignment(o),p="y"===getSideAxis(o),{width:m,height:h}=a.floating;let _,g;"top"===d||"bottom"===d?(_=d,g=f===(await(null==i.isRTL?void 0:i.isRTL(s.floating))?"start":"end")?"left":"right"):(g=d,_="end"===f?"top":"bottom");const v=h-u.top-u.bottom,E=m-u.left-u.right,y=min$1(h-u[_],v),b=min$1(m-u[g],E),C=!t.middlewareData.shift;let R=y,w=b;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(w=E),null!=(r=t.middlewareData.shift)&&r.enabled.y&&(R=v),C&&!f){const e=max$1(u.left,0),t=max$1(u.right,0),n=max$1(u.top,0),r=max$1(u.bottom,0);p?w=m-2*(0!==e||0!==t?e+t:max$1(u.left,u.right)):R=h-2*(0!==n||0!==r?n+r:max$1(u.top,u.bottom))}await l({...t,availableWidth:w,availableHeight:R});const S=await i.getDimensions(s.floating);return m!==S.width||h!==S.height?{reset:{rects:!0}}:{}}}};function hasWindow(){return"undefined"!=typeof window}function getNodeName(e){return isNode(e)?(e.nodeName||"").toLowerCase():"#document"}function getWindow(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function getDocumentElement(e){var t;return null==(t=(isNode(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function isNode(e){return!!hasWindow()&&(e instanceof Node||e instanceof getWindow(e).Node)}function isElement$1(e){return!!hasWindow()&&(e instanceof Element||e instanceof getWindow(e).Element)}function isHTMLElement(e){return!!hasWindow()&&(e instanceof HTMLElement||e instanceof getWindow(e).HTMLElement)}function isShadowRoot(e){return!(!hasWindow()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof getWindow(e).ShadowRoot)}function isOverflowElement(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=getComputedStyle$1(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function isTableElement(e){return["table","td","th"].includes(getNodeName(e))}function isTopLayer(e){return[":popover-open",":modal"].some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function isContainingBlock(e){const t=isWebKit(),n=isElement$1(e)?getComputedStyle$1(e):e;return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some((e=>(n.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(n.contain||"").includes(e)))}function getContainingBlock(e){let t=getParentNode(e);for(;isHTMLElement(t)&&!isLastTraversableNode(t);){if(isContainingBlock(t))return t;if(isTopLayer(t))return null;t=getParentNode(t)}return null}function isWebKit(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(e){return["html","body","#document"].includes(getNodeName(e))}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function getNodeScroll(e){return isElement$1(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function getParentNode(e){if("html"===getNodeName(e))return e;const t=e.assignedSlot||e.parentNode||isShadowRoot(e)&&e.host||getDocumentElement(e);return isShadowRoot(t)?t.host:t}function getNearestOverflowAncestor(e){const t=getParentNode(e);return isLastTraversableNode(t)?e.ownerDocument?e.ownerDocument.body:e.body:isHTMLElement(t)&&isOverflowElement(t)?t:getNearestOverflowAncestor(t)}function getOverflowAncestors(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);const o=getNearestOverflowAncestor(e),a=o===(null==(r=e.ownerDocument)?void 0:r.body),i=getWindow(o);if(a){const e=getFrameElement(i);return t.concat(i,i.visualViewport||[],isOverflowElement(o)?o:[],e&&n?getOverflowAncestors(e):[])}return t.concat(o,getOverflowAncestors(o,[],n))}function getFrameElement(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function getCssDimensions(e){const t=getComputedStyle$1(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=isHTMLElement(e),a=o?e.offsetWidth:n,i=o?e.offsetHeight:r,s=round$1(n)!==a||round$1(r)!==i;return s&&(n=a,r=i),{width:n,height:r,$:s}}function unwrapElement(e){return isElement$1(e)?e:e.contextElement}function getScale(e){const t=unwrapElement(e);if(!isHTMLElement(t))return createCoords(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:a}=getCssDimensions(t);let i=(a?round$1(n.width):n.width)/r,s=(a?round$1(n.height):n.height)/o;return i&&Number.isFinite(i)||(i=1),s&&Number.isFinite(s)||(s=1),{x:i,y:s}}const noOffsets=createCoords(0);function getVisualOffsets(e){const t=getWindow(e);return isWebKit()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:noOffsets}function shouldAddVisualOffsets(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==getWindow(e))&&t}function getBoundingClientRect(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=!1);const o=e.getBoundingClientRect(),a=unwrapElement(e);let i=createCoords(1);t&&(r?isElement$1(r)&&(i=getScale(r)):i=getScale(e));const s=shouldAddVisualOffsets(a,n,r)?getVisualOffsets(a):createCoords(0);let l=(o.left+s.x)/i.x,c=(o.top+s.y)/i.y,u=o.width/i.x,d=o.height/i.y;if(a){const e=getWindow(a),t=r&&isElement$1(r)?getWindow(r):r;let n=e,o=getFrameElement(n);for(;o&&r&&t!==n;){const e=getScale(o),t=o.getBoundingClientRect(),r=getComputedStyle$1(o),a=t.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,i=t.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;l*=e.x,c*=e.y,u*=e.x,d*=e.y,l+=a,c+=i,n=getWindow(o),o=getFrameElement(n)}}return rectToClientRect({width:u,height:d,x:l,y:c})}function getWindowScrollBarX(e,t){const n=getNodeScroll(e).scrollLeft;return t?t.left+n:getBoundingClientRect(getDocumentElement(e)).left+n}function getHTMLOffset(e,t,n){void 0===n&&(n=!1);const r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-(n?0:getWindowScrollBarX(e,r)),y:r.top+t.scrollTop}}function convertOffsetParentRelativeRectToViewportRelativeRect(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const a="fixed"===o,i=getDocumentElement(r),s=!!t&&isTopLayer(t.floating);if(r===i||s&&a)return n;let l={scrollLeft:0,scrollTop:0},c=createCoords(1);const u=createCoords(0),d=isHTMLElement(r);if((d||!d&&!a)&&(("body"!==getNodeName(r)||isOverflowElement(i))&&(l=getNodeScroll(r)),isHTMLElement(r))){const e=getBoundingClientRect(r);c=getScale(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}const f=!i||d||a?createCoords(0):getHTMLOffset(i,l,!0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+u.x+f.x,y:n.y*c.y-l.scrollTop*c.y+u.y+f.y}}function getClientRects(e){return Array.from(e.getClientRects())}function getDocumentRect(e){const t=getDocumentElement(e),n=getNodeScroll(e),r=e.ownerDocument.body,o=max$1(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=max$1(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+getWindowScrollBarX(e);const s=-n.scrollTop;return"rtl"===getComputedStyle$1(r).direction&&(i+=max$1(t.clientWidth,r.clientWidth)-o),{width:o,height:a,x:i,y:s}}function getViewportRect(e,t){const n=getWindow(e),r=getDocumentElement(e),o=n.visualViewport;let a=r.clientWidth,i=r.clientHeight,s=0,l=0;if(o){a=o.width,i=o.height;const e=isWebKit();(!e||e&&"fixed"===t)&&(s=o.offsetLeft,l=o.offsetTop)}return{width:a,height:i,x:s,y:l}}function getInnerBoundingClientRect(e,t){const n=getBoundingClientRect(e,!0,"fixed"===t),r=n.top+e.clientTop,o=n.left+e.clientLeft,a=isHTMLElement(e)?getScale(e):createCoords(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:o*a.x,y:r*a.y}}function getClientRectFromClippingAncestor(e,t,n){let r;if("viewport"===t)r=getViewportRect(e,n);else if("document"===t)r=getDocumentRect(getDocumentElement(e));else if(isElement$1(t))r=getInnerBoundingClientRect(t,n);else{const n=getVisualOffsets(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return rectToClientRect(r)}function hasFixedPositionAncestor(e,t){const n=getParentNode(e);return!(n===t||!isElement$1(n)||isLastTraversableNode(n))&&("fixed"===getComputedStyle$1(n).position||hasFixedPositionAncestor(n,t))}function getClippingElementAncestors(e,t){const n=t.get(e);if(n)return n;let r=getOverflowAncestors(e,[],!1).filter((e=>isElement$1(e)&&"body"!==getNodeName(e))),o=null;const a="fixed"===getComputedStyle$1(e).position;let i=a?getParentNode(e):e;for(;isElement$1(i)&&!isLastTraversableNode(i);){const t=getComputedStyle$1(i),n=isContainingBlock(i);n||"fixed"!==t.position||(o=null);(a?!n&&!o:!n&&"static"===t.position&&!!o&&["absolute","fixed"].includes(o.position)||isOverflowElement(i)&&!n&&hasFixedPositionAncestor(e,i))?r=r.filter((e=>e!==i)):o=t,i=getParentNode(i)}return t.set(e,r),r}function getClippingRect(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const a=[..."clippingAncestors"===n?isTopLayer(t)?[]:getClippingElementAncestors(t,this._c):[].concat(n),r],i=a[0],s=a.reduce(((e,n)=>{const r=getClientRectFromClippingAncestor(t,n,o);return e.top=max$1(r.top,e.top),e.right=min$1(r.right,e.right),e.bottom=min$1(r.bottom,e.bottom),e.left=max$1(r.left,e.left),e}),getClientRectFromClippingAncestor(t,i,o));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function getDimensions(e){const{width:t,height:n}=getCssDimensions(e);return{width:t,height:n}}function getRectRelativeToOffsetParent(e,t,n){const r=isHTMLElement(t),o=getDocumentElement(t),a="fixed"===n,i=getBoundingClientRect(e,!0,a,t);let s={scrollLeft:0,scrollTop:0};const l=createCoords(0);if(r||!r&&!a)if(("body"!==getNodeName(t)||isOverflowElement(o))&&(s=getNodeScroll(t)),r){const e=getBoundingClientRect(t,!0,a,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else o&&(l.x=getWindowScrollBarX(o));const c=!o||r||a?createCoords(0):getHTMLOffset(o,s);return{x:i.left+s.scrollLeft-l.x-c.x,y:i.top+s.scrollTop-l.y-c.y,width:i.width,height:i.height}}function isStaticPositioned(e){return"static"===getComputedStyle$1(e).position}function getTrueOffsetParent(e,t){if(!isHTMLElement(e)||"fixed"===getComputedStyle$1(e).position)return null;if(t)return t(e);let n=e.offsetParent;return getDocumentElement(e)===n&&(n=n.ownerDocument.body),n}function getOffsetParent(e,t){const n=getWindow(e);if(isTopLayer(e))return n;if(!isHTMLElement(e)){let t=getParentNode(e);for(;t&&!isLastTraversableNode(t);){if(isElement$1(t)&&!isStaticPositioned(t))return t;t=getParentNode(t)}return n}let r=getTrueOffsetParent(e,t);for(;r&&isTableElement(r)&&isStaticPositioned(r);)r=getTrueOffsetParent(r,t);return r&&isLastTraversableNode(r)&&isStaticPositioned(r)&&!isContainingBlock(r)?n:r||getContainingBlock(e)||n}const getElementRects=async function(e){const t=this.getOffsetParent||getOffsetParent,n=this.getDimensions,r=await n(e.floating);return{reference:getRectRelativeToOffsetParent(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function isRTL(e){return"rtl"===getComputedStyle$1(e).direction}const platform={convertOffsetParentRelativeRectToViewportRelativeRect:convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement:getDocumentElement,getClippingRect:getClippingRect,getOffsetParent:getOffsetParent,getElementRects:getElementRects,getClientRects:getClientRects,getDimensions:getDimensions,getScale:getScale,isElement:isElement$1,isRTL:isRTL};function observeMove(e,t){let n,r=null;const o=getDocumentElement(e);function a(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return function i(s,l){void 0===s&&(s=!1),void 0===l&&(l=1),a();const{left:c,top:u,width:d,height:f}=e.getBoundingClientRect();if(s||t(),!d||!f)return;const p={rootMargin:-floor$1(u)+"px "+-floor$1(o.clientWidth-(c+d))+"px "+-floor$1(o.clientHeight-(u+f))+"px "+-floor$1(c)+"px",threshold:max$1(0,min$1(1,l))||1};let m=!0;function h(e){const t=e[0].intersectionRatio;if(t!==l){if(!m)return i();t?i(!1,t):n=setTimeout((()=>{i(!1,1e-7)}),1e3)}m=!1}try{r=new IntersectionObserver(h,{...p,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(h,p)}r.observe(e)}(!0),a}function autoUpdate(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:o=!0,ancestorResize:a=!0,elementResize:i="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:l=!1}=r,c=unwrapElement(e),u=o||a?[...c?getOverflowAncestors(c):[],...getOverflowAncestors(t)]:[];u.forEach((e=>{o&&e.addEventListener("scroll",n,{passive:!0}),a&&e.addEventListener("resize",n)}));const d=c&&s?observeMove(c,n):null;let f,p=-1,m=null;i&&(m=new ResizeObserver((e=>{let[r]=e;r&&r.target===c&&m&&(m.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame((()=>{var e;null==(e=m)||e.observe(t)}))),n()})),c&&!l&&m.observe(c),m.observe(t));let h=l?getBoundingClientRect(e):null;return l&&function t(){const r=getBoundingClientRect(e);!h||r.x===h.x&&r.y===h.y&&r.width===h.width&&r.height===h.height||n();h=r,f=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach((e=>{o&&e.removeEventListener("scroll",n),a&&e.removeEventListener("resize",n)})),null==d||d(),null==(e=m)||e.disconnect(),m=null,l&&cancelAnimationFrame(f)}}const offset$1=offset$2,shift$1=shift$2,flip$1=flip$2,size$2=size$3,hide$1=hide$2,arrow$2=arrow$3,limitShift$1=limitShift$2,computePosition=(e,t,n)=>{const r=new Map,o={platform:platform,...n},a={...o.platform,_c:r};return computePosition$1(e,t,{...o,platform:a})};var index="undefined"!=typeof document?React.useLayoutEffect:React.useEffect;function deepEqual(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;0!=r--;)if(!deepEqual(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;0!=r--;){const n=o[r];if(("_owner"!==n||!e.$$typeof)&&!deepEqual(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function getDPR(e){if("undefined"==typeof window)return 1;return(e.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(e,t){const n=getDPR(e);return Math.round(t*n)/n}function useLatestRef(e){const t=React__namespace.useRef(e);return index((()=>{t.current=e})),t}function useFloating(e){void 0===e&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:a,floating:i}={},transform:s=!0,whileElementsMounted:l,open:c}=e,[u,d]=React__namespace.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=React__namespace.useState(r);deepEqual(f,r)||p(r);const[m,h]=React__namespace.useState(null),[_,g]=React__namespace.useState(null),v=React__namespace.useCallback((e=>{e!==C.current&&(C.current=e,h(e))}),[]),E=React__namespace.useCallback((e=>{e!==R.current&&(R.current=e,g(e))}),[]),y=a||m,b=i||_,C=React__namespace.useRef(null),R=React__namespace.useRef(null),w=React__namespace.useRef(u),S=null!=l,D=useLatestRef(l),T=useLatestRef(o),O=useLatestRef(c),A=React__namespace.useCallback((()=>{if(!C.current||!R.current)return;const e={placement:t,strategy:n,middleware:f};T.current&&(e.platform=T.current),computePosition(C.current,R.current,e).then((e=>{const t={...e,isPositioned:!1!==O.current};I.current&&!deepEqual(w.current,t)&&(w.current=t,ReactDOM__namespace.flushSync((()=>{d(t)})))}))}),[f,t,n,T,O]);index((()=>{!1===c&&w.current.isPositioned&&(w.current.isPositioned=!1,d((e=>({...e,isPositioned:!1}))))}),[c]);const I=React__namespace.useRef(!1);index((()=>(I.current=!0,()=>{I.current=!1})),[]),index((()=>{if(y&&(C.current=y),b&&(R.current=b),y&&b){if(D.current)return D.current(y,b,A);A()}}),[y,b,A,D,S]);const x=React__namespace.useMemo((()=>({reference:C,floating:R,setReference:v,setFloating:E})),[v,E]),N=React__namespace.useMemo((()=>({reference:y,floating:b})),[y,b]),F=React__namespace.useMemo((()=>{const e={position:n,left:0,top:0};if(!N.floating)return e;const t=roundByDPR(N.floating,u.x),r=roundByDPR(N.floating,u.y);return s?{...e,transform:"translate("+t+"px, "+r+"px)",...getDPR(N.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}}),[n,s,N.floating,u.x,u.y]);return React__namespace.useMemo((()=>({...u,update:A,refs:x,elements:N,floatingStyles:F})),[u,A,x,N,F])}const arrow$1=e=>({name:"arrow",options:e,fn(t){const{element:n,padding:r}="function"==typeof e?e(t):e;return n&&(o=n,{}.hasOwnProperty.call(o,"current"))?null!=n.current?arrow$2({element:n.current,padding:r}).fn(t):{}:n?arrow$2({element:n,padding:r}).fn(t):{};var o}}),offset=(e,t)=>({...offset$1(e),options:[e,t]}),shift=(e,t)=>({...shift$1(e),options:[e,t]}),limitShift=(e,t)=>({...limitShift$1(e),options:[e,t]}),flip=(e,t)=>({...flip$1(e),options:[e,t]}),size$1=(e,t)=>({...size$2(e),options:[e,t]}),hide=(e,t)=>({...hide$1(e),options:[e,t]}),arrow=(e,t)=>({...arrow$1(e),options:[e,t]});var MENTION_SUGGESTIONS_DEBOUNCE=500;function useMentionSuggestions(e){const t=useClient(),n=_useRoom(),[r,o]=React__default.default.useState(),a=React__default.default.useRef();return React__default.default.useEffect((()=>{const r=t[kInternal].mentionSuggestionsCache,i=t[kInternal].resolveMentionSuggestions;if(void 0===e||!i)return;const s={text:e,roomId:n.id},l=stringify(s);let c,u=!1;const d=async()=>{try{a.current=performance.now();const e=await i(s);u||(o(e),r.set(l,e))}catch(e){console.error(e?.message)}};return r.has(l)?o(r.get(l)):!a.current||Math.abs(performance.now()-a.current)>MENTION_SUGGESTIONS_DEBOUNCE?d():c=window.setTimeout((()=>{d()}),MENTION_SUGGESTIONS_DEBOUNCE),()=>{u=!0,window.clearTimeout(c)}}),[t,n.id,e]),r}function useSyncSource(){const e=useClient()[kInternal].createSyncSource,[t,n]=React__default.default.useState();return React__default.default.useEffect((()=>{const t=e();return n(t),()=>t.destroy()}),[e]),t}var History={isHistory:e=>isPlainObject$1(e)&&Array.isArray(e.redos)&&Array.isArray(e.undos)&&(0===e.redos.length||Operation.isOperationList(e.redos[0].operations))&&(0===e.undos.length||Operation.isOperationList(e.undos[0].operations))},SAVING=new WeakMap,MERGING=new WeakMap,SPLITTING_ONCE=new WeakMap,HistoryEditor={isHistoryEditor:e=>History.isHistory(e.history)&&Editor.isEditor(e),isMerging:e=>MERGING.get(e),isSplittingOnce:e=>SPLITTING_ONCE.get(e),setSplittingOnce(e,t){SPLITTING_ONCE.set(e,t)},isSaving:e=>SAVING.get(e),redo(e){e.redo()},undo(e){e.undo()},withMerging(e,t){var n=HistoryEditor.isMerging(e);MERGING.set(e,!0),t(),MERGING.set(e,n)},withNewBatch(e,t){var n=HistoryEditor.isMerging(e);MERGING.set(e,!0),SPLITTING_ONCE.set(e,!0),t(),MERGING.set(e,n),SPLITTING_ONCE.delete(e)},withoutMerging(e,t){var n=HistoryEditor.isMerging(e);MERGING.set(e,!1),t(),MERGING.set(e,n)},withoutSaving(e,t){var n=HistoryEditor.isSaving(e);SAVING.set(e,!1),t(),SAVING.set(e,n)}},withHistory=e=>{var t=e,{apply:n}=t;return t.history={undos:[],redos:[]},t.redo=()=>{var{history:e}=t,{redos:n}=e;if(n.length>0){var r=n[n.length-1];r.selectionBefore&&Transforms.setSelection(t,r.selectionBefore),HistoryEditor.withoutSaving(t,(()=>{Editor.withoutNormalizing(t,(()=>{for(var e of r.operations)t.apply(e)}))})),e.redos.pop(),t.writeHistory("undos",r)}},t.undo=()=>{var{history:e}=t,{undos:n}=e;if(n.length>0){var r=n[n.length-1];HistoryEditor.withoutSaving(t,(()=>{Editor.withoutNormalizing(t,(()=>{var e=r.operations.map(Operation.inverse).reverse();for(var n of e)t.apply(n);r.selectionBefore&&Transforms.setSelection(t,r.selectionBefore)}))})),t.writeHistory("redos",r),e.undos.pop()}},t.apply=e=>{var{operations:r,history:o}=t,{undos:a}=o,i=a[a.length-1],s=i&&i.operations[i.operations.length-1],l=HistoryEditor.isSaving(t),c=HistoryEditor.isMerging(t);if(null==l&&(l=shouldSave(e)),l){if(null==c&&(c=null!=i&&(0!==r.length||shouldMerge(e,s))),HistoryEditor.isSplittingOnce(t)&&(c=!1,HistoryEditor.setSplittingOnce(t,void 0)),i&&c)i.operations.push(e);else{var u={operations:[e],selectionBefore:t.selection};t.writeHistory("undos",u)}for(;a.length>100;)a.shift();o.redos=[]}n(e)},t.writeHistory=(e,n)=>{t.history[e].push(n)},t},shouldMerge=(e,t)=>!(!t||"insert_text"!==e.type||"insert_text"!==t.type||e.offset!==t.offset+t.text.length||!Path.equals(e.path,t.path))||!(!t||"remove_text"!==e.type||"remove_text"!==t.type||e.offset+e.text.length!==t.offset||!Path.equals(e.path,t.path)),shouldSave=(e,t)=>"set_selection"!==e.type,direction_1=direction,RTL="֑-߿יִ-﷽ﹰ-ﻼ",LTR="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ࠀ-῿‎Ⰰ-﬜︀-﹯﻽-￿",rtl=new RegExp("^[^"+LTR+"]*["+RTL+"]"),ltr=new RegExp("^[^"+RTL+"]*["+LTR+"]");function direction(e){return e=String(e||""),rtl.test(e)?"rtl":ltr.test(e)?"ltr":"neutral"}function isObject$3(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var isObject_1=isObject$3,freeGlobal$1="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,_freeGlobal=freeGlobal$1,freeGlobal=_freeGlobal,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root$2=freeGlobal||freeSelf||Function("return this")(),_root=root$2,root$1=_root,now$1=function(){return root$1.Date.now()},now_1=now$1,reWhitespace=/\s/;function trimmedEndIndex$1(e){for(var t=e.length;t--&&reWhitespace.test(e.charAt(t)););return t}var _trimmedEndIndex=trimmedEndIndex$1,trimmedEndIndex=_trimmedEndIndex,reTrimStart=/^\s+/;function baseTrim$1(e){return e?e.slice(0,trimmedEndIndex(e)+1).replace(reTrimStart,""):e}var _baseTrim=baseTrim$1,root=_root,Symbol$3=root.Symbol,_Symbol=Symbol$3,Symbol$2=_Symbol,objectProto$1=Object.prototype,hasOwnProperty=objectProto$1.hasOwnProperty,nativeObjectToString$1=objectProto$1.toString,symToStringTag$1=Symbol$2?Symbol$2.toStringTag:void 0;function getRawTag$1(e){var t=hasOwnProperty.call(e,symToStringTag$1),n=e[symToStringTag$1];try{e[symToStringTag$1]=void 0;var r=!0}catch(e){}var o=nativeObjectToString$1.call(e);return r&&(t?e[symToStringTag$1]=n:delete e[symToStringTag$1]),o}var _getRawTag=getRawTag$1,objectProto=Object.prototype,nativeObjectToString=objectProto.toString;function objectToString$1(e){return nativeObjectToString.call(e)}var _objectToString=objectToString$1,Symbol$1=_Symbol,getRawTag=_getRawTag,objectToString=_objectToString,nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol$1?Symbol$1.toStringTag:void 0;function baseGetTag$1(e){return null==e?void 0===e?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(e)?getRawTag(e):objectToString(e)}var _baseGetTag=baseGetTag$1;function isObjectLike$1(e){return null!=e&&"object"==typeof e}var isObjectLike_1=isObjectLike$1,baseGetTag=_baseGetTag,isObjectLike=isObjectLike_1,symbolTag="[object Symbol]";function isSymbol$1(e){return"symbol"==typeof e||isObjectLike(e)&&baseGetTag(e)==symbolTag}var isSymbol_1=isSymbol$1,baseTrim=_baseTrim,isObject$2=isObject_1,isSymbol=isSymbol_1,NAN=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;function toNumber$1(e){if("number"==typeof e)return e;if(isSymbol(e))return NAN;if(isObject$2(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=isObject$2(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=baseTrim(e);var n=reIsBinary.test(e);return n||reIsOctal.test(e)?freeParseInt(e.slice(2),n?2:8):reIsBadHex.test(e)?NAN:+e}var toNumber_1=toNumber$1,isObject$1=isObject_1,now=now_1,toNumber=toNumber_1,FUNC_ERROR_TEXT$1="Expected a function",nativeMax=Math.max,nativeMin=Math.min;function debounce$1(e,t,n){var r,o,a,i,s,l,c=0,u=!1,d=!1,f=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT$1);function p(t){var n=r,a=o;return r=o=void 0,c=t,i=e.apply(a,n)}function m(e){var n=e-l;return void 0===l||n>=t||n<0||d&&e-c>=a}function h(){var e=now();if(m(e))return _(e);s=setTimeout(h,function(e){var n=t-(e-l);return d?nativeMin(n,a-(e-c)):n}(e))}function _(e){return s=void 0,f&&r?p(e):(r=o=void 0,i)}function g(){var e=now(),n=m(e);if(r=arguments,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(h,t),u?p(e):i}(l);if(d)return clearTimeout(s),s=setTimeout(h,t),p(l)}return void 0===s&&(s=setTimeout(h,t)),i}return t=toNumber(t)||0,isObject$1(n)&&(u=!!n.leading,a=(d="maxWait"in n)?nativeMax(toNumber(n.maxWait)||0,t):a,f="trailing"in n?!!n.trailing:f),g.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=o=s=void 0},g.flush=function(){return void 0===s?i:_(now())},g}var debounce_1=debounce$1,debounce=debounce_1,isObject=isObject_1,FUNC_ERROR_TEXT="Expected a function";function throttle(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT);return isObject(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),debounce(e,t,{leading:r,maxWait:t,trailing:o})}var throttle_1=throttle;const t=e=>"object"==typeof e&&null!=e&&1===e.nodeType,e$1=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,n$1=(e,t)=>{if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){const n=getComputedStyle(e,null);return e$1(n.overflowY,t)||e$1(n.overflowX,t)||(e=>{const t=(e=>{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e);return!!t&&(t.clientHeight<e.scrollHeight||t.clientWidth<e.scrollWidth)})(e)}return!1},o$1=(e,t,n,r,o,a,i,s)=>a<e&&i>t||a>e&&i<t?0:a<=e&&s<=n||i>=t&&s>=n?a-e-r:i>t&&s<n||a<e&&s>n?i-t+o:0,l=e=>{const t=e.parentElement;return null==t?e.getRootNode().host||null:t},r$1=(e,n)=>{var r,o,a,i;if("undefined"==typeof document)return[];const{scrollMode:s,block:c,inline:u,boundary:d,skipOverflowHiddenElements:f}=n,p="function"==typeof d?d:e=>e!==d;if(!t(e))throw new TypeError("Invalid target");const m=document.scrollingElement||document.documentElement,h=[];let _=e;for(;t(_)&&p(_);){if(_=l(_),_===m){h.push(_);break}null!=_&&_===document.body&&n$1(_)&&!n$1(document.documentElement)||null!=_&&n$1(_,f)&&h.push(_)}const g=null!=(o=null==(r=window.visualViewport)?void 0:r.width)?o:innerWidth,v=null!=(i=null==(a=window.visualViewport)?void 0:a.height)?i:innerHeight,{scrollX:E,scrollY:y}=window,{height:b,width:C,top:R,right:w,bottom:S,left:D}=e.getBoundingClientRect(),{top:T,right:O,bottom:A,left:I}=(e=>{const t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);let x="start"===c||"nearest"===c?R-T:"end"===c?S+A:R+b/2-T+A,N="center"===u?D+C/2-I+O:"end"===u?w+O:D-I;const F=[];for(let e=0;e<h.length;e++){const t=h[e],{height:n,width:r,top:o,right:a,bottom:i,left:l}=t.getBoundingClientRect();if("if-needed"===s&&R>=0&&D>=0&&S<=v&&w<=g&&(t===m&&!n$1(t)||R>=o&&S<=i&&D>=l&&w<=a))return F;const d=getComputedStyle(t),f=parseInt(d.borderLeftWidth,10),p=parseInt(d.borderTopWidth,10),_=parseInt(d.borderRightWidth,10),T=parseInt(d.borderBottomWidth,10);let O=0,A=0;const I="offsetWidth"in t?t.offsetWidth-t.clientWidth-f-_:0,P="offsetHeight"in t?t.offsetHeight-t.clientHeight-p-T:0,k="offsetWidth"in t?0===t.offsetWidth?0:r/t.offsetWidth:0,$="offsetHeight"in t?0===t.offsetHeight?0:n/t.offsetHeight:0;if(m===t)O="start"===c?x:"end"===c?x-v:"nearest"===c?o$1(y,y+v,v,p,T,y+x,y+x+b,b):x-v/2,A="start"===u?N:"center"===u?N-g/2:"end"===u?N-g:o$1(E,E+g,g,f,_,E+N,E+N+C,C),O=Math.max(0,O+y),A=Math.max(0,A+E);else{O="start"===c?x-o-p:"end"===c?x-i+T+P:"nearest"===c?o$1(o,i,n,p,T+P,x,x+b,b):x-(o+n/2)+P/2,A="start"===u?N-l-f:"center"===u?N-(l+r/2)+I/2:"end"===u?N-a+_+I:o$1(l,a,r,f,_+I,N,N+C,C);const{scrollLeft:e,scrollTop:s}=t;O=0===$?0:Math.max(0,Math.min(s+O/$,t.scrollHeight-n/$+P)),A=0===k?0:Math.max(0,Math.min(e+A/k,t.scrollWidth-r/k+I)),x+=s-O,N+=e-A}F.push({el:t,top:O,left:A})}return F},o=e=>!1===e?{block:"end",inline:"nearest"}:(e=>e===Object(e)&&0!==Object.keys(e).length)(e)?e:{block:"start",inline:"nearest"};function e(e,t){if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;const n=(e=>{const t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);if((e=>"object"==typeof e&&"function"==typeof e.behavior)(t))return t.behavior(r$1(e,t));const r="boolean"==typeof t||null==t?void 0:t.behavior;for(const{el:a,top:i,left:s}of r$1(e,o(t))){const e=i-n.top+n.bottom,t=s-n.left+n.right;a.scroll({top:e,left:t,behavior:r})}}var resizeObservers=[],hasActiveObservations=function(){return resizeObservers.some((function(e){return e.activeTargets.length>0}))},hasSkippedObservations=function(){return resizeObservers.some((function(e){return e.skippedTargets.length>0}))},msg="ResizeObserver loop completed with undelivered notifications.",deliverResizeLoopError=function(){var e;"function"==typeof ErrorEvent?e=new ErrorEvent("error",{message:msg}):((e=document.createEvent("Event")).initEvent("error",!1,!1),e.message=msg),window.dispatchEvent(e)},ResizeObserverBoxOptions;!function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"}(ResizeObserverBoxOptions||(ResizeObserverBoxOptions={}));var freeze=function(e){return Object.freeze(e)},ResizeObserverSize=function(e,t){this.inlineSize=e,this.blockSize=t,freeze(this)},DOMRectReadOnly=function(){function e(e,t,n,r){return this.x=e,this.y=t,this.width=n,this.height=r,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,freeze(this)}return e.prototype.toJSON=function(){var e=this;return{x:e.x,y:e.y,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),isSVG=function(e){return e instanceof SVGElement&&"getBBox"in e},isHidden$1=function(e){if(isSVG(e)){var t=e.getBBox(),n=t.width,r=t.height;return!n&&!r}var o=e,a=o.offsetWidth,i=o.offsetHeight;return!(a||i||e.getClientRects().length)},isElement=function(e){var t;if(e instanceof Element)return!0;var n=null===(t=null==e?void 0:e.ownerDocument)||void 0===t?void 0:t.defaultView;return!!(n&&e instanceof n.Element)},isReplacedElement=function(e){switch(e.tagName){case"INPUT":if("image"!==e.type)break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},global$1="undefined"!=typeof window?window:{},cache=new WeakMap,scrollRegexp=/auto|scroll/,verticalRegexp=/^tb|vertical/,IE=/msie|trident/i.test(global$1.navigator&&global$1.navigator.userAgent),parseDimension=function(e){return parseFloat(e||"0")},size=function(e,t,n){return void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=!1),new ResizeObserverSize((n?t:e)||0,(n?e:t)||0)},zeroBoxes=freeze({devicePixelContentBoxSize:size(),borderBoxSize:size(),contentBoxSize:size(),contentRect:new DOMRectReadOnly(0,0,0,0)}),calculateBoxSizes=function(e,t){if(void 0===t&&(t=!1),cache.has(e)&&!t)return cache.get(e);if(isHidden$1(e))return cache.set(e,zeroBoxes),zeroBoxes;var n=getComputedStyle(e),r=isSVG(e)&&e.ownerSVGElement&&e.getBBox(),o=!IE&&"border-box"===n.boxSizing,a=verticalRegexp.test(n.writingMode||""),i=!r&&scrollRegexp.test(n.overflowY||""),s=!r&&scrollRegexp.test(n.overflowX||""),l=r?0:parseDimension(n.paddingTop),c=r?0:parseDimension(n.paddingRight),u=r?0:parseDimension(n.paddingBottom),d=r?0:parseDimension(n.paddingLeft),f=r?0:parseDimension(n.borderTopWidth),p=r?0:parseDimension(n.borderRightWidth),m=r?0:parseDimension(n.borderBottomWidth),h=d+c,_=l+u,g=(r?0:parseDimension(n.borderLeftWidth))+p,v=f+m,E=s?e.offsetHeight-v-e.clientHeight:0,y=i?e.offsetWidth-g-e.clientWidth:0,b=o?h+g:0,C=o?_+v:0,R=r?r.width:parseDimension(n.width)-b-y,w=r?r.height:parseDimension(n.height)-C-E,S=R+h+y+g,D=w+_+E+v,T=freeze({devicePixelContentBoxSize:size(Math.round(R*devicePixelRatio),Math.round(w*devicePixelRatio),a),borderBoxSize:size(S,D,a),contentBoxSize:size(R,w,a),contentRect:new DOMRectReadOnly(d,l,R,w)});return cache.set(e,T),T},calculateBoxSize=function(e,t,n){var r=calculateBoxSizes(e,n),o=r.borderBoxSize,a=r.contentBoxSize,i=r.devicePixelContentBoxSize;switch(t){case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:return i;case ResizeObserverBoxOptions.BORDER_BOX:return o;default:return a}},ResizeObserverEntry=function(e){var t=calculateBoxSizes(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=freeze([t.borderBoxSize]),this.contentBoxSize=freeze([t.contentBoxSize]),this.devicePixelContentBoxSize=freeze([t.devicePixelContentBoxSize])},calculateDepthForNode=function(e){if(isHidden$1(e))return 1/0;for(var t=0,n=e.parentNode;n;)t+=1,n=n.parentNode;return t},broadcastActiveObservations=function(){var e=1/0,t=[];resizeObservers.forEach((function(n){if(0!==n.activeTargets.length){var r=[];n.activeTargets.forEach((function(t){var n=new ResizeObserverEntry(t.target),o=calculateDepthForNode(t.target);r.push(n),t.lastReportedSize=calculateBoxSize(t.target,t.observedBox),o<e&&(e=o)})),t.push((function(){n.callback.call(n.observer,r,n.observer)})),n.activeTargets.splice(0,n.activeTargets.length)}}));for(var n=0,r=t;n<r.length;n++){(0,r[n])()}return e},gatherActiveObservationsAtDepth=function(e){resizeObservers.forEach((function(t){t.activeTargets.splice(0,t.activeTargets.length),t.skippedTargets.splice(0,t.skippedTargets.length),t.observationTargets.forEach((function(n){n.isActive()&&(calculateDepthForNode(n.target)>e?t.activeTargets.push(n):t.skippedTargets.push(n))}))}))},process$1=function(){var e=0;for(gatherActiveObservationsAtDepth(e);hasActiveObservations();)e=broadcastActiveObservations(),gatherActiveObservationsAtDepth(e);return hasSkippedObservations()&&deliverResizeLoopError(),e>0},trigger,callbacks=[],notify=function(){return callbacks.splice(0).forEach((function(e){return e()}))},queueMicroTask=function(e){if(!trigger){var t=0,n=document.createTextNode("");new MutationObserver((function(){return notify()})).observe(n,{characterData:!0}),trigger=function(){n.textContent="".concat(t?t--:t++)}}callbacks.push(e),trigger()},queueResizeObserver=function(e){queueMicroTask((function(){requestAnimationFrame(e)}))},watching=0,isWatching=function(){return!!watching},CATCH_PERIOD=250,observerConfig={attributes:!0,characterData:!0,childList:!0,subtree:!0},events=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],time=function(e){return void 0===e&&(e=0),Date.now()+e},scheduled=!1,Scheduler=function(){function e(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return e.prototype.run=function(e){var t=this;if(void 0===e&&(e=CATCH_PERIOD),!scheduled){scheduled=!0;var n=time(e);queueResizeObserver((function(){var r=!1;try{r=process$1()}finally{if(scheduled=!1,e=n-time(),!isWatching())return;r?t.run(1e3):e>0?t.run(e):t.start()}}))}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,observerConfig)};document.body?t():global$1.addEventListener("DOMContentLoaded",t)},e.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),events.forEach((function(t){return global$1.addEventListener(t,e.listener,!0)})))},e.prototype.stop=function(){var e=this;this.stopped||(this.observer&&this.observer.disconnect(),events.forEach((function(t){return global$1.removeEventListener(t,e.listener,!0)})),this.stopped=!0)},e}(),scheduler=new Scheduler,updateCount=function(e){!watching&&e>0&&scheduler.start(),!(watching+=e)&&scheduler.stop()},skipNotifyOnElement=function(e){return!isSVG(e)&&!isReplacedElement(e)&&"inline"===getComputedStyle(e).display},ResizeObservation=function(){function e(e,t){this.target=e,this.observedBox=t||ResizeObserverBoxOptions.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var e=calculateBoxSize(this.target,this.observedBox,!0);return skipNotifyOnElement(this.target)&&(this.lastReportedSize=e),this.lastReportedSize.inlineSize!==e.inlineSize||this.lastReportedSize.blockSize!==e.blockSize},e}(),ResizeObserverDetail=function(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t},observerMap=new WeakMap,getObservationIndex=function(e,t){for(var n=0;n<e.length;n+=1)if(e[n].target===t)return n;return-1},ResizeObserverController=function(){function e(){}return e.connect=function(e,t){var n=new ResizeObserverDetail(e,t);observerMap.set(e,n)},e.observe=function(e,t,n){var r=observerMap.get(e),o=0===r.observationTargets.length;getObservationIndex(r.observationTargets,t)<0&&(o&&resizeObservers.push(r),r.observationTargets.push(new ResizeObservation(t,n&&n.box)),updateCount(1),scheduler.schedule())},e.unobserve=function(e,t){var n=observerMap.get(e),r=getObservationIndex(n.observationTargets,t),o=1===n.observationTargets.length;r>=0&&(o&&resizeObservers.splice(resizeObservers.indexOf(n),1),n.observationTargets.splice(r,1),updateCount(-1))},e.disconnect=function(e){var t=this,n=observerMap.get(e);n.observationTargets.slice().forEach((function(n){return t.unobserve(e,n.target)})),n.activeTargets.splice(0,n.activeTargets.length)},e}(),ResizeObserver$1=function(){function e(e){if(0===arguments.length)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if("function"!=typeof e)throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");ResizeObserverController.connect(this,e)}return e.prototype.observe=function(e,t){if(0===arguments.length)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!isElement(e))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");ResizeObserverController.observe(this,e,t)},e.prototype.unobserve=function(e){if(0===arguments.length)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!isElement(e))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");ResizeObserverController.unobserve(this,e)},e.prototype.disconnect=function(){ResizeObserverController.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}(),lib={};Object.defineProperty(lib,"__esModule",{value:!0});for(var IS_MAC="undefined"!=typeof window&&/Mac|iPod|iPhone|iPad/.test(window.navigator.platform),MODIFIERS$1={alt:"altKey",control:"ctrlKey",meta:"metaKey",shift:"shiftKey"},ALIASES={add:"+",break:"pause",cmd:"meta",command:"meta",ctl:"control",ctrl:"control",del:"delete",down:"arrowdown",esc:"escape",ins:"insert",left:"arrowleft",mod:IS_MAC?"meta":"control",opt:"alt",option:"alt",return:"enter",right:"arrowright",space:" ",spacebar:" ",up:"arrowup",win:"meta",windows:"meta"},CODES={backspace:8,tab:9,enter:13,shift:16,control:17,alt:18,pause:19,capslock:20,escape:27," ":32,pageup:33,pagedown:34,end:35,home:36,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,insert:45,delete:46,meta:91,numlock:144,scrolllock:145,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},f=1;f<20;f++)CODES["f"+f]=111+f;function isHotkey(e,t,n){t&&!("byKey"in t)&&(n=t,t=null),Array.isArray(e)||(e=[e]);var r=e.map((function(e){return parseHotkey(e,t)})),o=function(e){return r.some((function(t){return compareHotkey(t,e)}))};return null==n?o:o(n)}function isCodeHotkey(e,t){return isHotkey(e,t)}function isKeyHotkey(e,t){return isHotkey(e,{byKey:!0},t)}function parseHotkey(e,t){var n=t&&t.byKey,r={},o=(e=e.replace("++","+add")).split("+"),a=o.length;for(var i in MODIFIERS$1)r[MODIFIERS$1[i]]=!1;var s=!0,l=!1,c=void 0;try{for(var u,d=o[Symbol.iterator]();!(s=(u=d.next()).done);s=!0){var f=u.value,p=f.endsWith("?")&&f.length>1;p&&(f=f.slice(0,-1));var m=toKeyName(f),h=MODIFIERS$1[m];if(f.length>1&&!h&&!ALIASES[f]&&!CODES[m])throw new TypeError('Unknown modifier: "'+f+'"');1!==a&&h||(n?r.key=m:r.which=toKeyCode(f)),h&&(r[h]=!p||null)}}catch(e){l=!0,c=e}finally{try{!s&&d.return&&d.return()}finally{if(l)throw c}}return r}function compareHotkey(e,t){for(var n in e){var r=e[n],o=void 0;if(null!=r&&((null!=(o="key"===n&&null!=t.key?t.key.toLowerCase():"which"===n?91===r&&93===t.which?91:t.which:t[n])||!1!==r)&&o!==r))return!1}return!0}function toKeyCode(e){return e=toKeyName(e),CODES[e]||e.toUpperCase().charCodeAt(0)}function toKeyName(e){return e=e.toLowerCase(),e=ALIASES[e]||e}lib.default=isHotkey;var isHotkey_1=lib.isHotkey=isHotkey;function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function _objectWithoutProperties(e,t){if(null==e)return{};var n,r,o=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function _typeof$3(e){return _typeof$3="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$3(e)}function _toPrimitive$3(e,t){if("object"!==_typeof$3(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$3(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$3(e){var t=_toPrimitive$3(e,"string");return"symbol"===_typeof$3(t)?t:String(t)}function _defineProperty$3(e,t,n){return(t=_toPropertyKey$3(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}lib.isCodeHotkey=isCodeHotkey,lib.isKeyHotkey=isKeyHotkey,lib.parseHotkey=parseHotkey,lib.compareHotkey=compareHotkey,lib.toKeyCode=toKeyCode,lib.toKeyName=toKeyName;var EditorContext=React.createContext(null),useSlateStatic=()=>{var e=React.useContext(EditorContext);if(!e)throw new Error("The `useSlateStatic` hook must be used inside the <Slate> component's context.");return e},_navigator$userAgent$,_navigator$userAgent$2,REACT_MAJOR_VERSION=parseInt(React__default.default.version.split(".")[0],10),IS_IOS=!1,IS_ANDROID="undefined"!=typeof navigator&&/Android/.test(navigator.userAgent),IS_FIREFOX="undefined"!=typeof navigator&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),IS_WEBKIT="undefined"!=typeof navigator&&/AppleWebKit(?!.*Chrome)/i.test(navigator.userAgent),IS_EDGE_LEGACY="undefined"!=typeof navigator&&/Edge?\/(?:[0-6][0-9]|[0-7][0-8])(?:\.)/i.test(navigator.userAgent),IS_CHROME="undefined"!=typeof navigator&&/Chrome/i.test(navigator.userAgent),IS_CHROME_LEGACY="undefined"!=typeof navigator&&/Chrome?\/(?:[0-7][0-5]|[0-6][0-9])(?:\.)/i.test(navigator.userAgent),IS_ANDROID_CHROME_LEGACY=IS_ANDROID&&"undefined"!=typeof navigator&&/Chrome?\/(?:[0-5]?\d)(?:\.)/i.test(navigator.userAgent),IS_FIREFOX_LEGACY="undefined"!=typeof navigator&&/^(?!.*Seamonkey)(?=.*Firefox\/(?:[0-7][0-9]|[0-8][0-6])(?:\.)).*/i.test(navigator.userAgent),IS_UC_MOBILE="undefined"!=typeof navigator&&/.*UCBrowser/.test(navigator.userAgent),IS_WECHATBROWSER="undefined"!=typeof navigator&&/.*Wechat/.test(navigator.userAgent)&&!/.*MacWechat/.test(navigator.userAgent),CAN_USE_DOM=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement);"undefined"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&null!==(_navigator$userAgent$=navigator.userAgent.match(/Version\/(\d+)/))&&void 0!==_navigator$userAgent$&&_navigator$userAgent$[1]&&parseInt(null===(_navigator$userAgent$2=navigator.userAgent.match(/Version\/(\d+)/))||void 0===_navigator$userAgent$2?void 0:_navigator$userAgent$2[1],10);var HAS_BEFORE_INPUT_SUPPORT=(!IS_CHROME_LEGACY||!IS_ANDROID_CHROME_LEGACY)&&!IS_EDGE_LEGACY&&"undefined"!=typeof globalThis&&globalThis.InputEvent&&"function"==typeof globalThis.InputEvent.prototype.getTargetRanges,IS_NODE_MAP_DIRTY=new WeakMap,NODE_TO_INDEX=new WeakMap,NODE_TO_PARENT=new WeakMap,EDITOR_TO_WINDOW=new WeakMap,EDITOR_TO_ELEMENT=new WeakMap,EDITOR_TO_PLACEHOLDER_ELEMENT=new WeakMap,ELEMENT_TO_NODE=new WeakMap,NODE_TO_ELEMENT=new WeakMap,NODE_TO_KEY=new WeakMap,EDITOR_TO_KEY_TO_ELEMENT=new WeakMap,IS_READ_ONLY=new WeakMap,IS_FOCUSED=new WeakMap,IS_COMPOSING=new WeakMap,EDITOR_TO_USER_SELECTION=new WeakMap,EDITOR_TO_ON_CHANGE=new WeakMap,EDITOR_TO_SCHEDULE_FLUSH=new WeakMap,EDITOR_TO_PENDING_INSERTION_MARKS=new WeakMap,EDITOR_TO_USER_MARKS=new WeakMap,EDITOR_TO_PENDING_DIFFS=new WeakMap,EDITOR_TO_PENDING_ACTION=new WeakMap,EDITOR_TO_PENDING_SELECTION=new WeakMap,EDITOR_TO_FORCE_RENDER=new WeakMap,PLACEHOLDER_SYMBOL=Symbol("placeholder"),MARK_PLACEHOLDER_SYMBOL=Symbol("mark-placeholder"),DOMNode=globalThis.Node,DOMText=globalThis.Text,getDefaultView=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView||null,isDOMComment=e=>isDOMNode(e)&&8===e.nodeType,isDOMElement=e=>isDOMNode(e)&&1===e.nodeType,isDOMNode=e=>{var t=getDefaultView(e);return!!t&&e instanceof t.Node},isDOMSelection=e=>{var t=e&&e.anchorNode&&getDefaultView(e.anchorNode);return!!t&&e instanceof t.Selection},isDOMText=e=>isDOMNode(e)&&3===e.nodeType,isPlainTextOnlyPaste=e=>e.clipboardData&&""!==e.clipboardData.getData("text/plain")&&1===e.clipboardData.types.length,normalizeDOMPoint=e=>{var[t,n]=e;if(isDOMElement(t)&&t.childNodes.length){var r=n===t.childNodes.length,o=r?n-1:n;for([t,o]=getEditableChildAndIndex(t,o,r?"backward":"forward"),r=o<n;isDOMElement(t)&&t.childNodes.length;){var a=r?t.childNodes.length-1:0;t=getEditableChild(t,a,r?"backward":"forward")}n=r&&null!=t.textContent?t.textContent.length:0}return[t,n]},hasShadowRoot=e=>{for(var t=e&&e.parentNode;t;){if("[object ShadowRoot]"===t.toString())return!0;t=t.parentNode}return!1},getEditableChildAndIndex=(e,t,n)=>{for(var{childNodes:r}=e,o=r[t],a=t,i=!1,s=!1;(isDOMComment(o)||isDOMElement(o)&&0===o.childNodes.length||isDOMElement(o)&&"false"===o.getAttribute("contenteditable"))&&(!i||!s);)a>=r.length?(i=!0,a=t-1,n="backward"):a<0?(s=!0,a=t+1,n="forward"):(o=r[a],t=a,a+="forward"===n?1:-1);return[o,t]},getEditableChild=(e,t,n)=>{var[r]=getEditableChildAndIndex(e,t,n);return r},getPlainText=e=>{var t="";if(isDOMText(e)&&e.nodeValue)return e.nodeValue;if(isDOMElement(e)){for(var n of Array.from(e.childNodes))t+=getPlainText(n);var r=getComputedStyle(e).getPropertyValue("display");"block"!==r&&"list"!==r&&"BR"!==e.tagName||(t+="\n")}return t},catchSlateFragment=/data-slate-fragment="(.+?)"/m,getSlateFragmentAttribute=e=>{var t=e.getData("text/html"),[,n]=t.match(catchSlateFragment)||[];return n},getSelection=e=>null!=e.getSelection?e.getSelection():document.getSelection(),isTrackedMutation=(e,t,n)=>{var{target:r}=t;if(isDOMElement(r)&&r.matches('[contentEditable="false"]'))return!1;var{document:o}=ReactEditor.getWindow(e);if(o.contains(r))return ReactEditor.hasDOMNode(e,r,{editable:!0});var a=n.find((e=>{var{addedNodes:t,removedNodes:n}=e;for(var o of t)if(o===r||o.contains(r))return!0;for(var a of n)if(a===r||a.contains(r))return!0}));return!(!a||a===t)&&isTrackedMutation(e,a,n)},getActiveElement=()=>{for(var e=document.activeElement;null!==(t=e)&&void 0!==t&&t.shadowRoot&&null!==(n=e.shadowRoot)&&void 0!==n&&n.activeElement;){var t,n,r;e=null===(r=e)||void 0===r||null===(r=r.shadowRoot)||void 0===r?void 0:r.activeElement}return e},isBefore=(e,t)=>Boolean(e.compareDocumentPosition(t)&DOMNode.DOCUMENT_POSITION_PRECEDING),isAfter=(e,t)=>Boolean(e.compareDocumentPosition(t)&DOMNode.DOCUMENT_POSITION_FOLLOWING),n=0;class Key{constructor(){_defineProperty$3(this,"id",void 0),this.id="".concat(n++)}}var ReactEditor={androidPendingDiffs:e=>EDITOR_TO_PENDING_DIFFS.get(e),androidScheduleFlush:e=>{var t;null===(t=EDITOR_TO_SCHEDULE_FLUSH.get(e))||void 0===t||t()},blur:e=>{var t=ReactEditor.toDOMNode(e,e),n=ReactEditor.findDocumentOrShadowRoot(e);IS_FOCUSED.set(e,!1),n.activeElement===t&&t.blur()},deselect:e=>{var{selection:t}=e,n=ReactEditor.findDocumentOrShadowRoot(e),r=getSelection(n);r&&r.rangeCount>0&&r.removeAllRanges(),t&&Transforms.deselect(e)},findDocumentOrShadowRoot:e=>{var t=ReactEditor.toDOMNode(e,e),n=t.getRootNode();return n instanceof Document||n instanceof ShadowRoot?n:t.ownerDocument},findEventRange:(e,t)=>{"nativeEvent"in t&&(t=t.nativeEvent);var{clientX:n,clientY:r,target:o}=t;if(null==n||null==r)throw new Error("Cannot resolve a Slate range from a DOM event: ".concat(t));var a,i=ReactEditor.toSlateNode(e,t.target),s=ReactEditor.findPath(e,i);if(Element$2.isElement(i)&&Editor.isVoid(e,i)){var l=o.getBoundingClientRect(),c=e.isInline(i)?n-l.left<l.left+l.width-n:r-l.top<l.top+l.height-r,u=Editor.point(e,s,{edge:c?"start":"end"}),d=c?Editor.before(e,u):Editor.after(e,u);if(d)return Editor.range(e,d)}var{document:f}=ReactEditor.getWindow(e);if(f.caretRangeFromPoint)a=f.caretRangeFromPoint(n,r);else{var p=f.caretPositionFromPoint(n,r);p&&((a=f.createRange()).setStart(p.offsetNode,p.offset),a.setEnd(p.offsetNode,p.offset))}if(!a)throw new Error("Cannot resolve a Slate range from a DOM event: ".concat(t));return ReactEditor.toSlateRange(e,a,{exactMatch:!1,suppressThrow:!1})},findKey:(e,t)=>{var n=NODE_TO_KEY.get(t);return n||(n=new Key,NODE_TO_KEY.set(t,n)),n},findPath:(e,t)=>{for(var n=[],r=t;;){var o=NODE_TO_PARENT.get(r);if(null==o){if(Editor.isEditor(r))return n;break}var a=NODE_TO_INDEX.get(r);if(null==a)break;n.unshift(a),r=o}throw new Error("Unable to find the path for Slate node: ".concat(Scrubber.stringify(t)))},focus:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{retries:5};if(!IS_FOCUSED.get(e)){if(t.retries<=0)throw new Error("Could not set focus, editor seems stuck with pending operations");if(e.operations.length>0)setTimeout((()=>{ReactEditor.focus(e,{retries:t.retries-1})}),10);else{var n=ReactEditor.toDOMNode(e,e),r=ReactEditor.findDocumentOrShadowRoot(e);if(r.activeElement!==n){if(e.selection&&r instanceof Document){var o=getSelection(r),a=ReactEditor.toDOMRange(e,e.selection);null==o||o.removeAllRanges(),null==o||o.addRange(a)}e.selection||Transforms.select(e,Editor.start(e,[])),IS_FOCUSED.set(e,!0),n.focus({preventScroll:!0})}}}},getWindow:e=>{var t=EDITOR_TO_WINDOW.get(e);if(!t)throw new Error("Unable to find a host window element for this editor");return t},hasDOMNode:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{editable:o=!1}=r,a=ReactEditor.toDOMNode(e,e);try{n=isDOMElement(t)?t:t.parentElement}catch(e){if(e instanceof Error&&!e.message.includes('Permission denied to access property "nodeType"'))throw e}return!!n&&!(n.closest("[data-slate-editor]")!==a||o&&!n.isContentEditable&&("boolean"!=typeof n.isContentEditable||n.closest('[contenteditable="false"]')!==a)&&!n.getAttribute("data-slate-zero-width"))},hasEditableTarget:(e,t)=>isDOMNode(t)&&ReactEditor.hasDOMNode(e,t,{editable:!0}),hasRange:(e,t)=>{var{anchor:n,focus:r}=t;return Editor.hasPath(e,n.path)&&Editor.hasPath(e,r.path)},hasSelectableTarget:(e,t)=>ReactEditor.hasEditableTarget(e,t)||ReactEditor.isTargetInsideNonReadonlyVoid(e,t),hasTarget:(e,t)=>isDOMNode(t)&&ReactEditor.hasDOMNode(e,t),insertData:(e,t)=>{e.insertData(t)},insertFragmentData:(e,t)=>e.insertFragmentData(t),insertTextData:(e,t)=>e.insertTextData(t),isComposing:e=>!!IS_COMPOSING.get(e),isFocused:e=>!!IS_FOCUSED.get(e),isReadOnly:e=>!!IS_READ_ONLY.get(e),isTargetInsideNonReadonlyVoid:(e,t)=>{if(IS_READ_ONLY.get(e))return!1;var n=ReactEditor.hasTarget(e,t)&&ReactEditor.toSlateNode(e,t);return Element$2.isElement(n)&&Editor.isVoid(e,n)},setFragmentData:(e,t,n)=>e.setFragmentData(t,n),toDOMNode:(e,t)=>{var n=EDITOR_TO_KEY_TO_ELEMENT.get(e),r=Editor.isEditor(t)?EDITOR_TO_ELEMENT.get(e):null==n?void 0:n.get(ReactEditor.findKey(e,t));if(!r)throw new Error("Cannot resolve a DOM node from Slate node: ".concat(Scrubber.stringify(t)));return r},toDOMPoint:(e,t)=>{var n,[r]=Editor.node(e,t.path),o=ReactEditor.toDOMNode(e,r);Editor.void(e,{at:t})&&(t={path:t.path,offset:0});for(var a=Array.from(o.querySelectorAll("[data-slate-string], [data-slate-zero-width]")),i=0,s=0;s<a.length;s++){var l=a[s],c=l.childNodes[0];if(null!=c&&null!=c.textContent){var{length:u}=c.textContent,d=l.getAttribute("data-slate-length"),f=i+(null==d?u:parseInt(d,10)),p=a[s+1];if(t.offset===f&&null!=p&&p.hasAttribute("data-slate-mark-placeholder")){var m,h=p.childNodes[0];n=[h instanceof DOMText?h:p,null!==(m=p.textContent)&&void 0!==m&&m.startsWith("\ufeff")?1:0];break}if(t.offset<=f){n=[c,Math.min(u,Math.max(0,t.offset-i))];break}i=f}}if(!n)throw new Error("Cannot resolve a DOM point from Slate point: ".concat(Scrubber.stringify(t)));return n},toDOMRange:(e,t)=>{var{anchor:n,focus:r}=t,o=Range.isBackward(t),a=ReactEditor.toDOMPoint(e,n),i=Range.isCollapsed(t)?a:ReactEditor.toDOMPoint(e,r),s=ReactEditor.getWindow(e).document.createRange(),[l,c]=o?i:a,[u,d]=o?a:i,f=!!(isDOMElement(l)?l:l.parentElement).getAttribute("data-slate-zero-width"),p=!!(isDOMElement(u)?u:u.parentElement).getAttribute("data-slate-zero-width");return s.setStart(l,f?1:c),s.setEnd(u,p?1:d),s},toSlateNode:(e,t)=>{var n=isDOMElement(t)?t:t.parentElement;n&&!n.hasAttribute("data-slate-node")&&(n=n.closest("[data-slate-node]"));var r=n?ELEMENT_TO_NODE.get(n):null;if(!r)throw new Error("Cannot resolve a Slate node from DOM node: ".concat(n));return r},toSlatePoint:(e,t,n)=>{var{exactMatch:r,suppressThrow:o,searchDirection:a="backward"}=n,[i,s]=r?t:normalizeDOMPoint(t),l=i.parentNode,c=null,u=0;if(l){var d,f,p=ReactEditor.toDOMNode(e,e),m=l.closest('[data-slate-void="true"]'),h=m&&p.contains(m)?m:null,_=l.closest('[contenteditable="false"]'),g=_&&p.contains(_)?_:null,v=l.closest("[data-slate-leaf]"),E=null;if(v){if(c=v.closest('[data-slate-node="text"]')){var y=ReactEditor.getWindow(e).document.createRange();y.setStart(c,0),y.setEnd(i,s);var b=y.cloneContents();[...Array.prototype.slice.call(b.querySelectorAll("[data-slate-zero-width]")),...Array.prototype.slice.call(b.querySelectorAll("[contenteditable=false]"))].forEach((e=>{IS_ANDROID&&!r&&e.hasAttribute("data-slate-zero-width")&&e.textContent.length>0&&"\ufeff"!==e.textContext?e.textContent.startsWith("\ufeff")&&(e.textContent=e.textContent.slice(1)):e.parentNode.removeChild(e)})),u=b.textContent.length,E=c}}else if(h){for(var C=h.querySelectorAll("[data-slate-leaf]"),R=0;R<C.length;R++){var w=C[R];if(ReactEditor.hasDOMNode(e,w)){v=w;break}}v?(c=v.closest('[data-slate-node="text"]'),u=(E=v).textContent.length,E.querySelectorAll("[data-slate-zero-width]").forEach((e=>{u-=e.textContent.length}))):u=1}else if(g){var S,D,T=e=>e?e.querySelectorAll("[data-slate-leaf]:not(:scope [data-slate-editor] [data-slate-leaf])"):[],O=g.closest('[data-slate-node="element"]');if("forward"===a)v=null!==(S=[...T(O),...T(null==O?void 0:O.nextElementSibling)].find((e=>isAfter(g,e))))&&void 0!==S?S:null;else v=null!==(D=[...T(null==O?void 0:O.previousElementSibling),...T(O)].findLast((e=>isBefore(g,e))))&&void 0!==D?D:null;v&&(c=v.closest('[data-slate-node="text"]'),E=v,"forward"===a?u=0:(u=E.textContent.length,E.querySelectorAll("[data-slate-zero-width]").forEach((e=>{u-=e.textContent.length}))))}E&&u===E.textContent.length&&IS_ANDROID&&"z"===E.getAttribute("data-slate-zero-width")&&null!==(d=E.textContent)&&void 0!==d&&d.startsWith("\ufeff")&&(l.hasAttribute("data-slate-zero-width")||IS_FIREFOX&&null!==(f=E.textContent)&&void 0!==f&&f.endsWith("\n\n"))&&u--}if(IS_ANDROID&&!c&&!r){var A=l.hasAttribute("data-slate-node")?l:l.closest("[data-slate-node]");if(A&&ReactEditor.hasDOMNode(e,A,{editable:!0})){var I=ReactEditor.toSlateNode(e,A),{path:x,offset:N}=Editor.start(e,ReactEditor.findPath(e,I));return A.querySelector("[data-slate-leaf]")||(N=s),{path:x,offset:N}}}if(!c){if(o)return null;throw new Error("Cannot resolve a Slate point from DOM point: ".concat(t))}var F=ReactEditor.toSlateNode(e,c);return{path:ReactEditor.findPath(e,F),offset:u}},toSlateRange:(e,t,n)=>{var r,o,a,i,s,l,{exactMatch:c,suppressThrow:u}=n;if(isDOMSelection(t)?t.anchorNode:t.startContainer)if(isDOMSelection(t)){if(IS_FIREFOX&&t.rangeCount>1){i=t.focusNode;var d=t.getRangeAt(0),f=t.getRangeAt(t.rangeCount-1);if(i instanceof HTMLTableRowElement&&d.startContainer instanceof HTMLTableRowElement&&f.startContainer instanceof HTMLTableRowElement){function p(e){return e.childElementCount>0?p(e.children[0]):e}var m=d.startContainer,h=f.startContainer,_=p(m.children[d.startOffset]),g=p(h.children[f.startOffset]);s=0,o=g.childNodes.length>0?g.childNodes[0]:g,i=_.childNodes.length>0?_.childNodes[0]:_,a=g instanceof HTMLElement?g.innerHTML.length:0}else d.startContainer===i?(o=f.endContainer,a=f.endOffset,s=d.startOffset):(o=d.startContainer,a=d.endOffset,s=f.startOffset)}else o=t.anchorNode,a=t.anchorOffset,i=t.focusNode,s=t.focusOffset;l=IS_CHROME&&hasShadowRoot(o)||IS_FIREFOX?t.anchorNode===t.focusNode&&t.anchorOffset===t.focusOffset:t.isCollapsed}else o=t.startContainer,a=t.startOffset,i=t.endContainer,s=t.endOffset,l=t.collapsed;if(null==o||null==i||null==a||null==s)throw new Error("Cannot resolve a Slate range from DOM range: ".concat(t));IS_FIREFOX&&null!==(r=i.textContent)&&void 0!==r&&r.endsWith("\n\n")&&s===i.textContent.length&&s--;var v=ReactEditor.toSlatePoint(e,[o,a],{exactMatch:c,suppressThrow:u});if(!v)return null;var E=isBefore(o,i)||o===i&&s<a,y=l?v:ReactEditor.toSlatePoint(e,[i,s],{exactMatch:c,suppressThrow:u,searchDirection:E?"forward":"backward"});if(!y)return null;var b={anchor:v,focus:y};return Range.isExpanded(b)&&Range.isForward(b)&&isDOMElement(i)&&Editor.void(e,{at:b.focus,mode:"highest"})&&(b=Editor.unhangRange(e,b,{voids:!0})),b}};function verifyDiffState(e,t){var{path:n,diff:r}=t;if(!Editor.hasPath(e,n))return!1;var o=Node$1.get(e,n);if(!Text$1.isText(o))return!1;if(r.start!==o.text.length||0===r.text.length)return o.text.slice(r.start,r.start+r.text.length)===r.text;var a=Path.next(n);if(!Editor.hasPath(e,a))return!1;var i=Node$1.get(e,a);return Text$1.isText(i)&&i.text.startsWith(r.text)}function applyStringDiff(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce(((e,t)=>e.slice(0,t.start)+t.text+e.slice(t.end)),e)}function longestCommonPrefixLength(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)if(e.charAt(r)!==t.charAt(r))return r;return n}function longestCommonSuffixLength(e,t,n){for(var r=Math.min(e.length,t.length,n),o=0;o<r;o++)if(e.charAt(e.length-o-1)!==t.charAt(t.length-o-1))return o;return r}function normalizeStringDiff(e,t){var{start:n,end:r,text:o}=t,a=e.slice(n,r),i=longestCommonPrefixLength(a,o),s=longestCommonSuffixLength(a,o,Math.min(a.length-i,o.length-i)),l={start:n+i,end:r-s,text:o.slice(i,o.length-s)};return l.start===l.end&&0===l.text.length?null:l}function mergeStringDiffs(e,t,n){var r=Math.min(t.start,n.start),o=Math.max(0,Math.min(t.start+t.text.length,n.end)-n.start),a=applyStringDiff(e,t,n),i=Math.max(n.start+n.text.length,t.start+t.text.length+(t.start+t.text.length>n.start?n.text.length:0)-o),s=a.slice(r,i);return normalizeStringDiff(e,{start:r,end:Math.max(t.end,n.end-t.text.length+(t.end-t.start)),text:s})}function targetRange(e){var{path:t,diff:n}=e;return{anchor:{path:t,offset:n.start},focus:{path:t,offset:n.end}}}function normalizePoint(e,t){var{path:n,offset:r}=t;if(!Editor.hasPath(e,n))return null;var o=Node$1.get(e,n);if(!Text$1.isText(o))return null;var a=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:n});if(!a)return null;for(;r>o.text.length;){var i=Editor.next(e,{at:n,match:Text$1.isText});if(!i||!Path.isDescendant(i[1],a[1]))return null;r-=o.text.length,o=i[0],n=i[1]}return{path:n,offset:r}}function normalizeRange(e,t){var n=normalizePoint(e,t.anchor);if(!n)return null;if(Range.isCollapsed(t))return{anchor:n,focus:n};var r=normalizePoint(e,t.focus);return r?{anchor:n,focus:r}:null}function transformPendingPoint(e,t,n){var r=EDITOR_TO_PENDING_DIFFS.get(e),o=null==r?void 0:r.find((e=>{var{path:n}=e;return Path.equals(n,t.path)}));if(!o||t.offset<=o.diff.start)return Point.transform(t,n,{affinity:"backward"});var{diff:a}=o;if(t.offset<=a.start+a.text.length){var i={path:t.path,offset:a.start},s=Point.transform(i,n,{affinity:"backward"});return s?{path:s.path,offset:s.offset+t.offset-a.start}:null}var l={path:t.path,offset:t.offset-a.text.length+a.end-a.start},c=Point.transform(l,n,{affinity:"backward"});return c?"split_node"===n.type&&Path.equals(n.path,t.path)&&l.offset<n.position&&a.start<n.position?c:{path:c.path,offset:c.offset+a.text.length-a.end+a.start}:null}function transformPendingRange(e,t,n){var r=transformPendingPoint(e,t.anchor,n);if(!r)return null;if(Range.isCollapsed(t))return{anchor:r,focus:r};var o=transformPendingPoint(e,t.focus,n);return o?{anchor:r,focus:o}:null}function transformTextDiff(e,t){var{path:n,diff:r,id:o}=e;switch(t.type){case"insert_text":return!Path.equals(t.path,n)||t.offset>=r.end?e:t.offset<=r.start?{diff:{start:t.text.length+r.start,end:t.text.length+r.end,text:r.text},id:o,path:n}:{diff:{start:r.start,end:r.end+t.text.length,text:r.text},id:o,path:n};case"remove_text":return!Path.equals(t.path,n)||t.offset>=r.end?e:t.offset+t.text.length<=r.start?{diff:{start:r.start-t.text.length,end:r.end-t.text.length,text:r.text},id:o,path:n}:{diff:{start:r.start,end:r.end-t.text.length,text:r.text},id:o,path:n};case"split_node":return!Path.equals(t.path,n)||t.position>=r.end?{diff:r,id:o,path:Path.transform(n,t,{affinity:"backward"})}:t.position>r.start?{diff:{start:r.start,end:Math.min(t.position,r.end),text:r.text},id:o,path:n}:{diff:{start:r.start-t.position,end:r.end-t.position,text:r.text},id:o,path:Path.transform(n,t,{affinity:"forward"})};case"merge_node":return Path.equals(t.path,n)?{diff:{start:r.start+t.position,end:r.end+t.position,text:r.text},id:o,path:Path.transform(n,t)}:{diff:r,id:o,path:Path.transform(n,t)}}var a=Path.transform(n,t);return a?{diff:r,path:a,id:o}:null}function ownKeys$6$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$6$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6$1(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var RESOLVE_DELAY=25,FLUSH_DELAY=200,debug=function(){},isDataTransfer=e=>"DataTransfer"===(null==e?void 0:e.constructor.name);function createAndroidInputManager(e){var{editor:t,scheduleOnDOMSelectionChange:n,onDOMSelectionChange:r}=e,o=!1,a=null,i=null,s=null,l=0,c=!1,u=()=>{var e=EDITOR_TO_PENDING_SELECTION.get(t);if(EDITOR_TO_PENDING_SELECTION.delete(t),e){var{selection:n}=t,r=normalizeRange(t,e);!r||n&&Range.equals(r,n)||Transforms.select(t,r)}},d=()=>{if(i&&(clearTimeout(i),i=null),s&&(clearTimeout(s),s=null),_()||h()){o||(o=!0,setTimeout((()=>o=!1))),h()&&(o="action");var e=t.selection&&Editor.rangeRef(t,t.selection,{affinity:"forward"});EDITOR_TO_USER_MARKS.set(t,t.marks),debug("flush",EDITOR_TO_PENDING_ACTION.get(t),EDITOR_TO_PENDING_DIFFS.get(t));for(var a,l=_();a=null===(d=EDITOR_TO_PENDING_DIFFS.get(t))||void 0===d?void 0:d[0];){var d,f,p=EDITOR_TO_PENDING_INSERTION_MARKS.get(t);void 0!==p&&(EDITOR_TO_PENDING_INSERTION_MARKS.delete(t),t.marks=p),p&&!1===c&&(c=null);var m=targetRange(a);t.selection&&Range.equals(t.selection,m)||Transforms.select(t,m),a.diff.text?Editor.insertText(t,a.diff.text):Editor.deleteFragment(t),EDITOR_TO_PENDING_DIFFS.set(t,null===(f=EDITOR_TO_PENDING_DIFFS.get(t))||void 0===f?void 0:f.filter((e=>{var{id:t}=e;return t!==a.id}))),verifyDiffState(t,a)||(l=!1,EDITOR_TO_PENDING_ACTION.delete(t),EDITOR_TO_USER_MARKS.delete(t),o="action",EDITOR_TO_PENDING_SELECTION.delete(t),n.cancel(),r.cancel(),null==e||e.unref())}var g=null==e?void 0:e.unref();if(!g||EDITOR_TO_PENDING_SELECTION.get(t)||t.selection&&Range.equals(g,t.selection)||Transforms.select(t,g),h())(()=>{var e=EDITOR_TO_PENDING_ACTION.get(t);if(EDITOR_TO_PENDING_ACTION.delete(t),e){if(e.at){var n=Point.isPoint(e.at)?normalizePoint(t,e.at):normalizeRange(t,e.at);if(!n)return;var r=Editor.range(t,n);t.selection&&Range.equals(t.selection,r)||Transforms.select(t,n)}e.run()}})();else{l&&n(),n.flush(),r.flush(),u();var v=EDITOR_TO_USER_MARKS.get(t);EDITOR_TO_USER_MARKS.delete(t),void 0!==v&&(t.marks=v,t.onChange())}}else u()},f=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=EDITOR_TO_PLACEHOLDER_ELEMENT.get(t);n&&(_()||e?n.style.display="none":n.style.removeProperty("display"))},p=(e,n)=>{var r,o=null!==(r=EDITOR_TO_PENDING_DIFFS.get(t))&&void 0!==r?r:[];EDITOR_TO_PENDING_DIFFS.set(t,o);var a=Node$1.leaf(t,e),i=o.findIndex((t=>Path.equals(t.path,e)));if(i<0)return normalizeStringDiff(a.text,n)&&o.push({path:e,diff:n,id:l++}),void f();var s=mergeStringDiffs(a.text,o[i].diff,n);if(!s)return o.splice(i,1),void f();o[i]=_objectSpread$6$1(_objectSpread$6$1({},o[i]),{},{diff:s})},m=function(e){var{at:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};c=!1,EDITOR_TO_PENDING_SELECTION.delete(t),n.cancel(),r.cancel(),h()&&d(),EDITOR_TO_PENDING_ACTION.set(t,{at:o,run:e}),s=setTimeout(d)},h=()=>!!EDITOR_TO_PENDING_ACTION.get(t),_=()=>{var e;return!(null===(e=EDITOR_TO_PENDING_DIFFS.get(t))||void 0===e||!e.length)},g=e=>{EDITOR_TO_PENDING_SELECTION.set(t,e),i&&(clearTimeout(i),i=null);var{selection:n}=t;if(e){var r=!n||!Path.equals(n.anchor.path,e.anchor.path),o=!n||!Path.equals(n.anchor.path.slice(0,-1),e.anchor.path.slice(0,-1));(r&&c||o)&&(c=!1),(r||_())&&(i=setTimeout(d,FLUSH_DELAY))}},v=()=>{h()||(s=setTimeout(d))};return{flush:d,scheduleFlush:v,hasPendingDiffs:_,hasPendingAction:h,hasPendingChanges:()=>h()||_(),isFlushing:()=>o,handleUserSelect:g,handleCompositionEnd:e=>{a&&clearTimeout(a),a=setTimeout((()=>{IS_COMPOSING.set(t,!1),d()}),RESOLVE_DELAY)},handleCompositionStart:e=>{IS_COMPOSING.set(t,!0),a&&(clearTimeout(a),a=null)},handleDOMBeforeInput:e=>{var n;if(i&&(clearTimeout(i),i=null),!IS_NODE_MAP_DIRTY.get(t)){var{inputType:r}=e,o=null,a=e.dataTransfer||e.data||void 0;!1!==c&&"insertText"!==r&&"insertCompositionText"!==r&&(c=!1);var[s]=e.getTargetRanges();s&&(o=ReactEditor.toSlateRange(t,s,{exactMatch:!1,suppressThrow:!0}));var l=ReactEditor.getWindow(t).getSelection();if(!o&&l&&(s=l,o=ReactEditor.toSlateRange(t,l,{exactMatch:!1,suppressThrow:!0})),o=null!==(n=o)&&void 0!==n?n:t.selection){var u=!0;if(r.startsWith("delete")){if(Range.isExpanded(o)){var[d,f]=Range.edges(o);if(Node$1.leaf(t,d.path).text.length===d.offset&&0===f.offset){var h=Editor.next(t,{at:d.path,match:Text$1.isText});h&&Path.equals(h[1],f.path)&&(o={anchor:f,focus:f})}}var _=r.endsWith("Backward")?"backward":"forward",[E,y]=Range.edges(o),[b,C]=Editor.leaf(t,E.path),R={text:"",start:E.offset,end:y.offset},w=EDITOR_TO_PENDING_DIFFS.get(t),S=null==w?void 0:w.find((e=>Path.equals(e.path,C))),D=S?[S.diff,R]:[R];if(0===applyStringDiff(b.text,...D).length&&(u=!1),Range.isExpanded(o)){if(u&&Path.equals(o.anchor.path,o.focus.path)){var T={path:o.anchor.path,offset:E.offset},O=Editor.range(t,T,T);return g(O),p(o.anchor.path,{text:"",end:y.offset,start:E.offset})}return m((()=>Editor.deleteFragment(t,{direction:_})),{at:o})}}switch(r){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":return m((()=>Editor.deleteFragment(t)),{at:o});case"deleteContent":case"deleteContentForward":var{anchor:A}=o;if(u&&Range.isCollapsed(o)){var I=Node$1.leaf(t,A.path);if(A.offset<I.text.length)return p(A.path,{text:"",start:A.offset,end:A.offset+1})}return m((()=>Editor.deleteForward(t)),{at:o});case"deleteContentBackward":var x,{anchor:N}=o,F=isDOMSelection(s)?s.isCollapsed:!(null===(x=s)||void 0===x||!x.collapsed);return u&&F&&Range.isCollapsed(o)&&N.offset>0?p(N.path,{text:"",start:N.offset-1,end:N.offset}):m((()=>Editor.deleteBackward(t)),{at:o});case"deleteEntireSoftLine":return m((()=>{Editor.deleteBackward(t,{unit:"line"}),Editor.deleteForward(t,{unit:"line"})}),{at:o});case"deleteHardLineBackward":return m((()=>Editor.deleteBackward(t,{unit:"block"})),{at:o});case"deleteSoftLineBackward":return m((()=>Editor.deleteBackward(t,{unit:"line"})),{at:o});case"deleteHardLineForward":return m((()=>Editor.deleteForward(t,{unit:"block"})),{at:o});case"deleteSoftLineForward":return m((()=>Editor.deleteForward(t,{unit:"line"})),{at:o});case"deleteWordBackward":return m((()=>Editor.deleteBackward(t,{unit:"word"})),{at:o});case"deleteWordForward":return m((()=>Editor.deleteForward(t,{unit:"word"})),{at:o});case"insertLineBreak":return m((()=>Editor.insertSoftBreak(t)),{at:o});case"insertParagraph":return m((()=>Editor.insertBreak(t)),{at:o});case"insertCompositionText":case"deleteCompositionText":case"insertFromComposition":case"insertFromDrop":case"insertFromPaste":case"insertFromYank":case"insertReplacementText":case"insertText":if(isDataTransfer(a))return m((()=>ReactEditor.insertData(t,a)),{at:o});var P=null!=a?a:"";if(EDITOR_TO_PENDING_INSERTION_MARKS.get(t)&&(P=P.replace("\ufeff","")),"insertText"===r&&/.*\n.*\n$/.test(P)&&(P=P.slice(0,-1)),P.includes("\n"))return m((()=>{var e=P.split("\n");e.forEach(((n,r)=>{n&&Editor.insertText(t,n),r!==e.length-1&&Editor.insertSoftBreak(t)}))}),{at:o});if(Path.equals(o.anchor.path,o.focus.path)){var[k,$]=Range.edges(o),M={start:k.offset,end:$.offset,text:P};if(P&&c&&"insertCompositionText"===r){var B=c.start+c.text.search(/\S|$/);M.start+M.text.search(/\S|$/)===B+1&&M.end===c.start+c.text.length?(M.start-=1,c=null,v()):c=!1}else c="insertText"===r&&(null===c?M:!(!c||!Range.isCollapsed(o)||c.end+c.text.length!==k.offset)&&_objectSpread$6$1(_objectSpread$6$1({},c),{},{text:c.text+P}));if(u)return void p(k.path,M)}return m((()=>Editor.insertText(t,P)),{at:o})}}}},handleKeyDown:e=>{_()||(f(!0),setTimeout(f))},handleDomMutations:e=>{var n;_()||h()||e.some((n=>isTrackedMutation(t,n,e)))&&(null===(n=EDITOR_TO_FORCE_RENDER.get(t))||void 0===n||n())},handleInput:()=>{!h()&&_()||d()}}}function useIsMounted(){var e=React.useRef(!1);return React.useEffect((()=>(e.current=!0,()=>{e.current=!1})),[]),e.current}var useIsomorphicLayoutEffect$3=CAN_USE_DOM?React.useLayoutEffect:React.useEffect;function useMutationObserver(e,t,n){var[r]=React.useState((()=>new MutationObserver(t)));useIsomorphicLayoutEffect$3((()=>{r.takeRecords()})),React.useEffect((()=>{if(!e.current)throw new Error("Failed to attach MutationObserver, `node` is undefined");return r.observe(e.current,n),()=>r.disconnect()}),[r,e,n])}var _excluded$3=["node"];function ownKeys$5$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$5$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5$1(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var MUTATION_OBSERVER_CONFIG$1={subtree:!0,childList:!0,characterData:!0},useAndroidInputManager=IS_ANDROID?e=>{var{node:t}=e,n=_objectWithoutProperties(e,_excluded$3);if(!IS_ANDROID)return null;var r=useSlateStatic(),o=useIsMounted(),[a]=React.useState((()=>createAndroidInputManager(_objectSpread$5$1({editor:r},n))));return useMutationObserver(t,a.handleDomMutations,MUTATION_OBSERVER_CONFIG$1),EDITOR_TO_SCHEDULE_FLUSH.set(r,a.scheduleFlush),o&&a.flush(),a}:()=>null,_excluded$2=["anchor","focus"],_excluded2$1=["anchor","focus"],shallowCompare=(e,t)=>Object.keys(e).length===Object.keys(t).length&&Object.keys(e).every((n=>t.hasOwnProperty(n)&&e[n]===t[n])),isDecorationFlagsEqual=(e,t)=>{var n=_objectWithoutProperties(e,_excluded$2),r=_objectWithoutProperties(t,_excluded2$1);return e[PLACEHOLDER_SYMBOL]===t[PLACEHOLDER_SYMBOL]&&shallowCompare(n,r)},isElementDecorationsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var r=e[n],o=t[n];if(!Range.equals(r,o)||!isDecorationFlagsEqual(r,o))return!1}return!0},isTextDecorationsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var r=e[n],o=t[n];if(r.anchor.offset!==o.anchor.offset||r.focus.offset!==o.focus.offset||!isDecorationFlagsEqual(r,o))return!1}return!0};function ownKeys$4$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$4$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4$1(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var String$1=e=>{var{isLast:t,leaf:n,parent:r,text:o}=e,a=useSlateStatic(),i=ReactEditor.findPath(a,o),s=Path.parent(i),l=Boolean(n[MARK_PLACEHOLDER_SYMBOL]);return a.isVoid(r)?React__default.default.createElement(ZeroWidthString,{length:Node$1.string(r).length}):""!==n.text||r.children[r.children.length-1]!==o||a.isInline(r)||""!==Editor.string(a,s)?""===n.text?React__default.default.createElement(ZeroWidthString,{isMarkPlaceholder:l}):t&&"\n"===n.text.slice(-1)?React__default.default.createElement(TextString,{isTrailing:!0,text:n.text}):React__default.default.createElement(TextString,{text:n.text}):React__default.default.createElement(ZeroWidthString,{isLineBreak:!0,isMarkPlaceholder:l})},TextString=e=>{var{text:t,isTrailing:n=!1}=e,r=React.useRef(null),o=()=>"".concat(null!=t?t:"").concat(n?"\n":""),[a]=React.useState(o);return useIsomorphicLayoutEffect$3((()=>{var e=o();r.current&&r.current.textContent!==e&&(r.current.textContent=e)})),React__default.default.createElement(MemoizedText$1,{ref:r},a)},MemoizedText$1=React.memo(React.forwardRef(((e,t)=>React__default.default.createElement("span",{"data-slate-string":!0,ref:t},e.children)))),ZeroWidthString=e=>{var{length:t=0,isLineBreak:n=!1,isMarkPlaceholder:r=!1}=e,o={"data-slate-zero-width":n?"n":"z","data-slate-length":t};return r&&(o["data-slate-mark-placeholder"]=!0),React__default.default.createElement("span",_objectSpread$4$1({},o),(IS_ANDROID||IS_IOS)&&n?null:"\ufeff",n?React__default.default.createElement("br",null):null)};function ownKeys$3$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$3$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3$1(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var PLACEHOLDER_DELAY=IS_ANDROID?300:0;function disconnectPlaceholderResizeObserver(e,t){e.current&&(e.current.disconnect(),t&&(e.current=null))}function clearTimeoutRef(e){e.current&&(clearTimeout(e.current),e.current=null)}var Leaf=e=>{var{leaf:t,isLast:n,text:r,parent:o,renderPlaceholder:a,renderLeaf:i=e=>React__default.default.createElement(DefaultLeaf,_objectSpread$3$1({},e))}=e,s=useSlateStatic(),l=React.useRef(null),c=React.useRef(null),[u,d]=React.useState(!1),f=React.useRef(null),p=React.useCallback((e=>{if(disconnectPlaceholderResizeObserver(l,null==e),null==e){var n;EDITOR_TO_PLACEHOLDER_ELEMENT.delete(s),null===(n=t.onPlaceholderResize)||void 0===n||n.call(t,null)}else{if(EDITOR_TO_PLACEHOLDER_ELEMENT.set(s,e),!l.current){var r=window.ResizeObserver||ResizeObserver$1;l.current=new r((()=>{var n;null===(n=t.onPlaceholderResize)||void 0===n||n.call(t,e)}))}l.current.observe(e),c.current=e}}),[c,t,s]),m=React__default.default.createElement(String$1,{isLast:n,leaf:t,parent:o,text:r}),h=Boolean(t[PLACEHOLDER_SYMBOL]);if(React.useEffect((()=>(h?f.current||(f.current=setTimeout((()=>{d(!0),f.current=null}),PLACEHOLDER_DELAY)):(clearTimeoutRef(f),d(!1)),()=>clearTimeoutRef(f))),[h,d]),h&&u){var _={children:t.placeholder,attributes:{"data-slate-placeholder":!0,style:{position:"absolute",top:0,pointerEvents:"none",width:"100%",maxWidth:"100%",display:"block",opacity:"0.333",userSelect:"none",textDecoration:"none",WebkitUserModify:IS_WEBKIT?"inherit":void 0},contentEditable:!1,ref:p}};m=React__default.default.createElement(React__default.default.Fragment,null,a(_),m)}return i({attributes:{"data-slate-leaf":!0},children:m,leaf:t,text:r})},MemoizedLeaf=React__default.default.memo(Leaf,((e,t)=>t.parent===e.parent&&t.isLast===e.isLast&&t.renderLeaf===e.renderLeaf&&t.renderPlaceholder===e.renderPlaceholder&&t.text===e.text&&Text$1.equals(t.leaf,e.leaf)&&t.leaf[PLACEHOLDER_SYMBOL]===e.leaf[PLACEHOLDER_SYMBOL])),DefaultLeaf=e=>{var{attributes:t,children:n}=e;return React__default.default.createElement("span",_objectSpread$3$1({},t),n)},Text=e=>{for(var{decorations:t,isLast:n,parent:r,renderPlaceholder:o,renderLeaf:a,text:i}=e,s=useSlateStatic(),l=React.useRef(null),c=Text$1.decorations(i,t),u=ReactEditor.findKey(s,i),d=[],f=0;f<c.length;f++){var p=c[f];d.push(React__default.default.createElement(MemoizedLeaf,{isLast:n&&f===c.length-1,key:"".concat(u.id,"-").concat(f),renderPlaceholder:o,leaf:p,text:i,parent:r,renderLeaf:a}))}var m=React.useCallback((e=>{var t=EDITOR_TO_KEY_TO_ELEMENT.get(s);e?(null==t||t.set(u,e),NODE_TO_ELEMENT.set(i,e),ELEMENT_TO_NODE.set(e,i)):(null==t||t.delete(u),NODE_TO_ELEMENT.delete(i),l.current&&ELEMENT_TO_NODE.delete(l.current)),l.current=e}),[l,s,u,i]);return React__default.default.createElement("span",{"data-slate-node":"text",ref:m},d)},MemoizedText=React__default.default.memo(Text,((e,t)=>t.parent===e.parent&&t.isLast===e.isLast&&t.renderLeaf===e.renderLeaf&&t.renderPlaceholder===e.renderPlaceholder&&t.text===e.text&&isTextDecorationsEqual(t.decorations,e.decorations)));function ownKeys$2$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$2$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2$1(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Element$1=e=>{var{decorations:t,element:n,renderElement:r=e=>React__default.default.createElement(DefaultElement,_objectSpread$2$1({},e)),renderPlaceholder:o,renderLeaf:a,selection:i}=e,s=useSlateStatic(),l=useReadOnly(),c=s.isInline(n),u=ReactEditor.findKey(s,n),d=React.useCallback((e=>{var t=EDITOR_TO_KEY_TO_ELEMENT.get(s);e?(null==t||t.set(u,e),NODE_TO_ELEMENT.set(n,e),ELEMENT_TO_NODE.set(e,n)):(null==t||t.delete(u),NODE_TO_ELEMENT.delete(n))}),[s,u,n]),f=useChildren({decorations:t,node:n,renderElement:r,renderPlaceholder:o,renderLeaf:a,selection:i}),p={"data-slate-node":"element",ref:d};if(c&&(p["data-slate-inline"]=!0),!c&&Editor.hasInlines(s,n)){var m=Node$1.string(n),h=direction_1(m);"rtl"===h&&(p.dir=h)}if(Editor.isVoid(s,n)){p["data-slate-void"]=!0,!l&&c&&(p.contentEditable=!1);var _=c?"span":"div",[[g]]=Node$1.texts(n);f=React__default.default.createElement(_,{"data-slate-spacer":!0,style:{height:"0",color:"transparent",outline:"none",position:"absolute"}},React__default.default.createElement(MemoizedText,{renderPlaceholder:o,decorations:[],isLast:!1,parent:n,text:g})),NODE_TO_INDEX.set(g,0),NODE_TO_PARENT.set(g,n)}return r({attributes:p,children:f,element:n})},MemoizedElement=React__default.default.memo(Element$1,((e,t)=>e.element===t.element&&e.renderElement===t.renderElement&&e.renderLeaf===t.renderLeaf&&e.renderPlaceholder===t.renderPlaceholder&&isElementDecorationsEqual(e.decorations,t.decorations)&&(e.selection===t.selection||!!e.selection&&!!t.selection&&Range.equals(e.selection,t.selection)))),DefaultElement=e=>{var{attributes:t,children:n,element:r}=e,o=useSlateStatic().isInline(r)?"span":"div";return React__default.default.createElement(o,_objectSpread$2$1(_objectSpread$2$1({},t),{},{style:{position:"relative"}}),n)},DecorateContext=React.createContext((()=>[])),useDecorate=()=>React.useContext(DecorateContext),SelectedContext=React.createContext(!1),useSelected=()=>React.useContext(SelectedContext),useChildren=e=>{var{decorations:t,node:n,renderElement:r,renderPlaceholder:o,renderLeaf:a,selection:i}=e,s=useDecorate(),l=useSlateStatic();IS_NODE_MAP_DIRTY.set(l,!1);for(var c=ReactEditor.findPath(l,n),u=[],d=Element$2.isElement(n)&&!l.isInline(n)&&Editor.hasInlines(l,n),f=0;f<n.children.length;f++){var p=c.concat(f),m=n.children[f],h=ReactEditor.findKey(l,m),_=Editor.range(l,p),g=i&&Range.intersection(_,i),v=s([m,p]);for(var E of t){var y=Range.intersection(E,_);y&&v.push(y)}Element$2.isElement(m)?u.push(React__default.default.createElement(SelectedContext.Provider,{key:"provider-".concat(h.id),value:!!g},React__default.default.createElement(MemoizedElement,{decorations:v,element:m,key:h.id,renderElement:r,renderPlaceholder:o,renderLeaf:a,selection:g}))):u.push(React__default.default.createElement(MemoizedText,{decorations:v,key:h.id,isLast:d&&f===n.children.length-1,parent:n,renderPlaceholder:o,renderLeaf:a,text:m})),NODE_TO_INDEX.set(m,f),NODE_TO_PARENT.set(m,n)}return u},ReadOnlyContext=React.createContext(!1),useReadOnly=()=>React.useContext(ReadOnlyContext),SlateContext=React.createContext(null),useSlate=()=>{var e=React.useContext(SlateContext);if(!e)throw new Error("The `useSlate` hook must be used inside the <Slate> component's context.");var{editor:t}=e;return t};function useTrackUserInput(){var e=useSlateStatic(),t=React.useRef(!1),n=React.useRef(0),r=React.useCallback((()=>{if(!t.current){t.current=!0;var r=ReactEditor.getWindow(e);r.cancelAnimationFrame(n.current),n.current=r.requestAnimationFrame((()=>{t.current=!1}))}}),[e]);return React.useEffect((()=>()=>cancelAnimationFrame(n.current)),[]),{receivedUserInput:t,onUserInput:r}}var TRIPLE_CLICK=3,HOTKEYS={bold:"mod+b",compose:["down","left","right","up","backspace","enter"],moveBackward:"left",moveForward:"right",moveWordBackward:"ctrl+left",moveWordForward:"ctrl+right",deleteBackward:"shift?+backspace",deleteForward:"shift?+delete",extendBackward:"shift+left",extendForward:"shift+right",italic:"mod+i",insertSoftBreak:"shift+enter",splitBlock:"enter",undo:"mod+z"},APPLE_HOTKEYS={moveLineBackward:"opt+up",moveLineForward:"opt+down",moveWordBackward:"opt+left",moveWordForward:"opt+right",deleteBackward:["ctrl+backspace","ctrl+h"],deleteForward:["ctrl+delete","ctrl+d"],deleteLineBackward:"cmd+shift?+backspace",deleteLineForward:["cmd+shift?+delete","ctrl+k"],deleteWordBackward:"opt+shift?+backspace",deleteWordForward:"opt+shift?+delete",extendLineBackward:"opt+shift+up",extendLineForward:"opt+shift+down",redo:"cmd+shift+z",transposeCharacter:"ctrl+t"},WINDOWS_HOTKEYS={deleteWordBackward:"ctrl+shift?+backspace",deleteWordForward:"ctrl+shift?+delete",redo:["ctrl+y","ctrl+shift+z"]},create=e=>{var t=HOTKEYS[e],n=APPLE_HOTKEYS[e],r=WINDOWS_HOTKEYS[e],o=t&&isHotkey_1(t);n&&isHotkey_1(n);var a=r&&isHotkey_1(r);return e=>!(!o||!o(e))||!(!a||!a(e))},Hotkeys={isBold:create("bold"),isCompose:create("compose"),isMoveBackward:create("moveBackward"),isMoveForward:create("moveForward"),isDeleteBackward:create("deleteBackward"),isDeleteForward:create("deleteForward"),isDeleteLineBackward:create("deleteLineBackward"),isDeleteLineForward:create("deleteLineForward"),isDeleteWordBackward:create("deleteWordBackward"),isDeleteWordForward:create("deleteWordForward"),isExtendBackward:create("extendBackward"),isExtendForward:create("extendForward"),isExtendLineBackward:create("extendLineBackward"),isExtendLineForward:create("extendLineForward"),isItalic:create("italic"),isMoveLineBackward:create("moveLineBackward"),isMoveLineForward:create("moveLineForward"),isMoveWordBackward:create("moveWordBackward"),isMoveWordForward:create("moveWordForward"),isRedo:create("redo"),isSoftBreak:create("insertSoftBreak"),isSplitBlock:create("splitBlock"),isTransposeCharacter:create("transposeCharacter"),isUndo:create("undo")},createRestoreDomManager=(e,t)=>{var n=[],r=()=>{n=[]};return{registerMutations:r=>{if(t.current){var o=r.filter((t=>isTrackedMutation(e,t,r)));n.push(...o)}},restoreDOM:function(){n.length>0&&(n.reverse().forEach((e=>{"characterData"!==e.type&&(e.removedNodes.forEach((t=>{e.target.insertBefore(t,e.nextSibling)})),e.addedNodes.forEach((t=>{e.target.removeChild(t)})))})),r())},clear:r}},MUTATION_OBSERVER_CONFIG={subtree:!0,childList:!0,characterData:!0,characterDataOldValue:!0};class RestoreDOMComponent extends React.Component{constructor(){super(...arguments),_defineProperty$3(this,"context",null),_defineProperty$3(this,"manager",null),_defineProperty$3(this,"mutationObserver",null)}observe(){var e,{node:t}=this.props;if(!t.current)throw new Error("Failed to attach MutationObserver, `node` is undefined");null===(e=this.mutationObserver)||void 0===e||e.observe(t.current,MUTATION_OBSERVER_CONFIG)}componentDidMount(){var{receivedUserInput:e}=this.props,t=this.context;this.manager=createRestoreDomManager(t,e),this.mutationObserver=new MutationObserver(this.manager.registerMutations),this.observe()}getSnapshotBeforeUpdate(){var e,t,n,r,o=null===(e=this.mutationObserver)||void 0===e?void 0:e.takeRecords();null!=o&&o.length&&(null===(r=this.manager)||void 0===r||r.registerMutations(o));return null===(t=this.mutationObserver)||void 0===t||t.disconnect(),null===(n=this.manager)||void 0===n||n.restoreDOM(),null}componentDidUpdate(){var e;null===(e=this.manager)||void 0===e||e.clear(),this.observe()}componentWillUnmount(){var e;null===(e=this.mutationObserver)||void 0===e||e.disconnect()}render(){return this.props.children}}_defineProperty$3(RestoreDOMComponent,"contextType",EditorContext);var RestoreDOM=IS_ANDROID?RestoreDOMComponent:e=>{var{children:t}=e;return React__default.default.createElement(React__default.default.Fragment,null,t)},ComposingContext=React.createContext(!1),_excluded$1=["autoFocus","decorate","onDOMBeforeInput","placeholder","readOnly","renderElement","renderLeaf","renderPlaceholder","scrollSelectionIntoView","style","as","disableDefaultStyles"],_excluded2=["text"];function ownKeys$1$3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$1$3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$3(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$3(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Children=e=>React__default.default.createElement(React__default.default.Fragment,null,useChildren(e)),Editable=React.forwardRef(((e,t)=>{var n=React.useCallback((e=>React__default.default.createElement(DefaultPlaceholder,_objectSpread$1$3({},e))),[]),{autoFocus:r,decorate:o=defaultDecorate,onDOMBeforeInput:a,placeholder:i,readOnly:s=!1,renderElement:l,renderLeaf:c,renderPlaceholder:u=n,scrollSelectionIntoView:d=defaultScrollSelectionIntoView,style:f={},as:p="div",disableDefaultStyles:m=!1}=e,h=_objectWithoutProperties(e,_excluded$1),_=useSlate(),[g,v]=React.useState(!1),E=React.useRef(null),y=React.useRef([]),[b,C]=React.useState(),R=React.useRef(!1),{onUserInput:w,receivedUserInput:S}=useTrackUserInput(),[,D]=React.useReducer((e=>e+1),0);EDITOR_TO_FORCE_RENDER.set(_,D),IS_READ_ONLY.set(_,s);var T=React.useMemo((()=>({isDraggingInternally:!1,isUpdatingSelection:!1,latestElement:null,hasMarkPlaceholder:!1})),[]);React.useEffect((()=>{E.current&&r&&E.current.focus()}),[r]);var O=React.useRef(),A=React.useMemo((()=>throttle_1((()=>{if(IS_NODE_MAP_DIRTY.get(_))A();else{var e=ReactEditor.toDOMNode(_,_).getRootNode();if(!R.current&&IS_WEBKIT&&e instanceof ShadowRoot)return R.current=!0,getActiveElement()?document.execCommand("indent"):Transforms.deselect(_),void(R.current=!1);var t=O.current;if((IS_ANDROID||!ReactEditor.isComposing(_))&&(!T.isUpdatingSelection||null!=t&&t.isFlushing())&&!T.isDraggingInternally){var n=ReactEditor.findDocumentOrShadowRoot(_),{activeElement:r}=n,o=ReactEditor.toDOMNode(_,_),a=getSelection(n);if(r===o?(T.latestElement=r,IS_FOCUSED.set(_,!0)):IS_FOCUSED.delete(_),!a)return Transforms.deselect(_);var{anchorNode:i,focusNode:l}=a,c=ReactEditor.hasEditableTarget(_,i)||ReactEditor.isTargetInsideNonReadonlyVoid(_,i),u=ReactEditor.hasTarget(_,l);if(c&&u){var d=ReactEditor.toSlateRange(_,a,{exactMatch:!1,suppressThrow:!0});d&&(ReactEditor.isComposing(_)||null!=t&&t.hasPendingChanges()||null!=t&&t.isFlushing()?null==t||t.handleUserSelect(d):Transforms.select(_,d))}!s||c&&u||Transforms.deselect(_)}}}),100)),[_,s,T]),I=React.useMemo((()=>debounce_1(A,0)),[A]);O.current=useAndroidInputManager({node:E,onDOMSelectionChange:A,scheduleOnDOMSelectionChange:I}),useIsomorphicLayoutEffect$3((()=>{var e,t,n;E.current&&(n=getDefaultView(E.current))?(EDITOR_TO_WINDOW.set(_,n),EDITOR_TO_ELEMENT.set(_,E.current),NODE_TO_ELEMENT.set(_,E.current),ELEMENT_TO_NODE.set(E.current,_)):NODE_TO_ELEMENT.delete(_);var{selection:r}=_,o=ReactEditor.findDocumentOrShadowRoot(_),a=getSelection(o);if(a&&ReactEditor.isFocused(_)&&(null===(e=O.current)||void 0===e||!e.hasPendingAction())){var i=e=>{var t="None"!==a.type;if(r||t){var n,o=a.focusNode;if(IS_FIREFOX&&a.rangeCount>1){var i=a.getRangeAt(0),s=a.getRangeAt(a.rangeCount-1);n=i.startContainer===o?s.endContainer:i.startContainer}else n=a.anchorNode;var l=EDITOR_TO_ELEMENT.get(_),c=!1;if(l.contains(n)&&l.contains(o)&&(c=!0),t&&c&&r&&!e){var u=ReactEditor.toSlateRange(_,a,{exactMatch:!0,suppressThrow:!0});if(u&&Range.equals(u,r)){var f;if(!T.hasMarkPlaceholder)return;if(null!==(f=n)&&void 0!==f&&null!==(f=f.parentElement)&&void 0!==f&&f.hasAttribute("data-slate-mark-placeholder"))return}}if(!r||ReactEditor.hasRange(_,r)){T.isUpdatingSelection=!0;var p=r&&ReactEditor.toDOMRange(_,r);return p?(ReactEditor.isComposing(_)&&!IS_ANDROID?a.collapseToEnd():Range.isBackward(r)?a.setBaseAndExtent(p.endContainer,p.endOffset,p.startContainer,p.startOffset):a.setBaseAndExtent(p.startContainer,p.startOffset,p.endContainer,p.endOffset),d(_,p)):a.removeAllRanges(),p}_.selection=ReactEditor.toSlateRange(_,a,{exactMatch:!1,suppressThrow:!0})}};a.rangeCount<=1&&i();var s="action"===(null===(t=O.current)||void 0===t?void 0:t.isFlushing());if(IS_ANDROID&&s){var l=null,c=requestAnimationFrame((()=>{if(s){var e=e=>{try{ReactEditor.toDOMNode(_,_).focus(),i(e)}catch(e){}};e(),l=setTimeout((()=>{e(!0),T.isUpdatingSelection=!1}))}}));return()=>{cancelAnimationFrame(c),l&&clearTimeout(l)}}setTimeout((()=>{T.isUpdatingSelection=!1}))}}));var x=React.useCallback((e=>{var t=ReactEditor.toDOMNode(_,_).getRootNode();if(null!=R&&R.current&&IS_WEBKIT&&t instanceof ShadowRoot){var n=e.getTargetRanges()[0],r=new window.Range;r.setStart(n.startContainer,n.startOffset),r.setEnd(n.endContainer,n.endOffset);var o=ReactEditor.toSlateRange(_,r,{exactMatch:!1,suppressThrow:!1});return Transforms.select(_,o),e.preventDefault(),void e.stopImmediatePropagation()}if(w(),!s&&ReactEditor.hasEditableTarget(_,e.target)&&!isDOMEventHandled(e,a)){var i;if(O.current)return O.current.handleDOMBeforeInput(e);I.flush(),A.flush();var{selection:l}=_,{inputType:c}=e,u=e.dataTransfer||e.data||void 0,d="insertCompositionText"===c||"deleteCompositionText"===c;if(d&&ReactEditor.isComposing(_))return;var f=!1;if("insertText"===c&&l&&Range.isCollapsed(l)&&e.data&&1===e.data.length&&/[a-z ]/i.test(e.data)&&0!==l.anchor.offset&&(f=!0,_.marks&&(f=!1),!IS_NODE_MAP_DIRTY.get(_))){var p,m,{anchor:h}=l,[g,E]=ReactEditor.toDOMPoint(_,h),b=null===(p=g.parentElement)||void 0===p?void 0:p.closest("a"),C=ReactEditor.getWindow(_);if(f&&b&&ReactEditor.hasDOMNode(_,b)){var S,D=null==C?void 0:C.document.createTreeWalker(b,NodeFilter.SHOW_TEXT).lastChild();D===g&&(null===(S=D.textContent)||void 0===S?void 0:S.length)===E&&(f=!1)}if(f&&g.parentElement&&"pre"===(null==C||null===(m=C.getComputedStyle(g.parentElement))||void 0===m?void 0:m.whiteSpace)){var T=Editor.above(_,{at:h.path,match:e=>Element$2.isElement(e)&&Editor.isBlock(_,e)});T&&Node$1.string(T[0]).includes("\t")&&(f=!1)}}if((!c.startsWith("delete")||c.startsWith("deleteBy"))&&!IS_NODE_MAP_DIRTY.get(_)){var[x]=e.getTargetRanges();if(x){var N=ReactEditor.toSlateRange(_,x,{exactMatch:!1,suppressThrow:!1});if(!l||!Range.equals(l,N)){f=!1;var F=!d&&_.selection&&Editor.rangeRef(_,_.selection);Transforms.select(_,N),F&&EDITOR_TO_USER_SELECTION.set(_,F)}}}if(d)return;if(f||e.preventDefault(),l&&Range.isExpanded(l)&&c.startsWith("delete")){var P=c.endsWith("Backward")?"backward":"forward";return void Editor.deleteFragment(_,{direction:P})}switch(c){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":Editor.deleteFragment(_);break;case"deleteContent":case"deleteContentForward":Editor.deleteForward(_);break;case"deleteContentBackward":Editor.deleteBackward(_);break;case"deleteEntireSoftLine":Editor.deleteBackward(_,{unit:"line"}),Editor.deleteForward(_,{unit:"line"});break;case"deleteHardLineBackward":Editor.deleteBackward(_,{unit:"block"});break;case"deleteSoftLineBackward":Editor.deleteBackward(_,{unit:"line"});break;case"deleteHardLineForward":Editor.deleteForward(_,{unit:"block"});break;case"deleteSoftLineForward":Editor.deleteForward(_,{unit:"line"});break;case"deleteWordBackward":Editor.deleteBackward(_,{unit:"word"});break;case"deleteWordForward":Editor.deleteForward(_,{unit:"word"});break;case"insertLineBreak":Editor.insertSoftBreak(_);break;case"insertParagraph":Editor.insertBreak(_);break;case"insertFromComposition":case"insertFromDrop":case"insertFromPaste":case"insertFromYank":case"insertReplacementText":case"insertText":"insertFromComposition"===c&&ReactEditor.isComposing(_)&&(v(!1),IS_COMPOSING.set(_,!1)),"DataTransfer"===(null==u?void 0:u.constructor.name)?ReactEditor.insertData(_,u):"string"==typeof u&&(f?y.current.push((()=>Editor.insertText(_,u))):Editor.insertText(_,u))}var k=null===(i=EDITOR_TO_USER_SELECTION.get(_))||void 0===i?void 0:i.unref();EDITOR_TO_USER_SELECTION.delete(_),!k||_.selection&&Range.equals(_.selection,k)||Transforms.select(_,k)}}),[_,A,w,a,s,I]),N=React.useCallback((e=>{null==e?(A.cancel(),I.cancel(),EDITOR_TO_ELEMENT.delete(_),NODE_TO_ELEMENT.delete(_),E.current&&HAS_BEFORE_INPUT_SUPPORT&&E.current.removeEventListener("beforeinput",x)):HAS_BEFORE_INPUT_SUPPORT&&e.addEventListener("beforeinput",x),E.current=e,"function"==typeof t?t(e):t&&(t.current=e)}),[A,I,_,x,t]);useIsomorphicLayoutEffect$3((()=>{var e=ReactEditor.getWindow(_);e.document.addEventListener("selectionchange",I);var t=()=>{T.isDraggingInternally=!1};return e.document.addEventListener("dragend",t),e.document.addEventListener("drop",t),()=>{e.document.removeEventListener("selectionchange",I),e.document.removeEventListener("dragend",t),e.document.removeEventListener("drop",t)}}),[I,T]);var F=o([_,[]]),P=i&&1===_.children.length&&1===Array.from(Node$1.texts(_)).length&&""===Node$1.string(_)&&!g,k=React.useCallback((e=>{var t;e&&P?C(null===(t=e.getBoundingClientRect())||void 0===t?void 0:t.height):C(void 0)}),[P]);if(P){var $=Editor.start(_,[]);F.push({[PLACEHOLDER_SYMBOL]:!0,placeholder:i,onPlaceholderResize:k,anchor:$,focus:$})}var{marks:M}=_;if(T.hasMarkPlaceholder=!1,_.selection&&Range.isCollapsed(_.selection)&&M){var{anchor:B}=_.selection,L=Node$1.leaf(_,B.path),j=_objectWithoutProperties(L,_excluded2);if(!Text$1.equals(L,M,{loose:!0})){T.hasMarkPlaceholder=!0;var U=Object.fromEntries(Object.keys(j).map((e=>[e,null])));F.push(_objectSpread$1$3(_objectSpread$1$3(_objectSpread$1$3({[MARK_PLACEHOLDER_SYMBOL]:!0},U),M),{},{anchor:B,focus:B}))}}return React.useEffect((()=>{setTimeout((()=>{var{selection:e}=_;if(e){var{anchor:t}=e,n=Node$1.leaf(_,t.path);if(M&&!Text$1.equals(n,M,{loose:!0}))return void EDITOR_TO_PENDING_INSERTION_MARKS.set(_,M)}EDITOR_TO_PENDING_INSERTION_MARKS.delete(_)}))})),React__default.default.createElement(ReadOnlyContext.Provider,{value:s},React__default.default.createElement(ComposingContext.Provider,{value:g},React__default.default.createElement(DecorateContext.Provider,{value:o},React__default.default.createElement(RestoreDOM,{node:E,receivedUserInput:S},React__default.default.createElement(p,_objectSpread$1$3(_objectSpread$1$3({role:s?void 0:"textbox","aria-multiline":!s||void 0},h),{},{spellCheck:!(!HAS_BEFORE_INPUT_SUPPORT&&CAN_USE_DOM)&&h.spellCheck,autoCorrect:HAS_BEFORE_INPUT_SUPPORT||!CAN_USE_DOM?h.autoCorrect:"false",autoCapitalize:HAS_BEFORE_INPUT_SUPPORT||!CAN_USE_DOM?h.autoCapitalize:"false","data-slate-editor":!0,"data-slate-node":"value",contentEditable:!s,zindex:-1,suppressContentEditableWarning:!0,ref:N,style:_objectSpread$1$3(_objectSpread$1$3({},m?{}:_objectSpread$1$3({position:"relative",whiteSpace:"pre-wrap",wordWrap:"break-word"},b?{minHeight:b}:{})),f),onBeforeInput:React.useCallback((e=>{if(!HAS_BEFORE_INPUT_SUPPORT&&!s&&!isEventHandled(e,h.onBeforeInput)&&ReactEditor.hasSelectableTarget(_,e.target)&&(e.preventDefault(),!ReactEditor.isComposing(_))){var t=e.data;Editor.insertText(_,t)}}),[h.onBeforeInput,_,s]),onInput:React.useCallback((e=>{if(!isEventHandled(e,h.onInput))if(O.current)O.current.handleInput();else{for(var t of y.current)t();if(y.current=[],!ReactEditor.isFocused(_)){var n=e.nativeEvent,r=_;if("historyUndo"===n.inputType&&"function"==typeof r.undo)return void r.undo();if("historyRedo"===n.inputType&&"function"==typeof r.redo)return void r.redo()}}}),[h.onInput,_]),onBlur:React.useCallback((e=>{if(!s&&!T.isUpdatingSelection&&ReactEditor.hasSelectableTarget(_,e.target)&&!isEventHandled(e,h.onBlur)){var t=ReactEditor.findDocumentOrShadowRoot(_);if(T.latestElement!==t.activeElement){var{relatedTarget:n}=e;if(!(n===ReactEditor.toDOMNode(_,_)||isDOMElement(n)&&n.hasAttribute("data-slate-spacer"))){if(null!=n&&isDOMNode(n)&&ReactEditor.hasDOMNode(_,n)){var r=ReactEditor.toSlateNode(_,n);if(Element$2.isElement(r)&&!_.isVoid(r))return}if(IS_WEBKIT){var o=getSelection(t);null==o||o.removeAllRanges()}IS_FOCUSED.delete(_)}}}}),[s,T.isUpdatingSelection,T.latestElement,_,h.onBlur]),onClick:React.useCallback((e=>{if(ReactEditor.hasTarget(_,e.target)&&!isEventHandled(e,h.onClick)&&isDOMNode(e.target)){var t=ReactEditor.toSlateNode(_,e.target),n=ReactEditor.findPath(_,t);if(!Editor.hasPath(_,n)||Node$1.get(_,n)!==t)return;if(e.detail===TRIPLE_CLICK&&n.length>=1){var r=n;if(!Element$2.isElement(t)||!Editor.isBlock(_,t)){var o,a=Editor.above(_,{match:e=>Element$2.isElement(e)&&Editor.isBlock(_,e),at:n});r=null!==(o=null==a?void 0:a[1])&&void 0!==o?o:n.slice(0,1)}var i=Editor.range(_,r);return void Transforms.select(_,i)}if(s)return;var l=Editor.start(_,n),c=Editor.end(_,n),u=Editor.void(_,{at:l}),d=Editor.void(_,{at:c});if(u&&d&&Path.equals(u[1],d[1])){var f=Editor.range(_,l);Transforms.select(_,f)}}}),[_,h.onClick,s]),onCompositionEnd:React.useCallback((e=>{if(ReactEditor.hasSelectableTarget(_,e.target)){var t;if(ReactEditor.isComposing(_)&&Promise.resolve().then((()=>{v(!1),IS_COMPOSING.set(_,!1)})),null===(t=O.current)||void 0===t||t.handleCompositionEnd(e),isEventHandled(e,h.onCompositionEnd)||IS_ANDROID)return;if(!IS_WEBKIT&&!IS_FIREFOX_LEGACY&&!IS_IOS&&!IS_WECHATBROWSER&&!IS_UC_MOBILE&&e.data){var n=EDITOR_TO_PENDING_INSERTION_MARKS.get(_);EDITOR_TO_PENDING_INSERTION_MARKS.delete(_),void 0!==n&&(EDITOR_TO_USER_MARKS.set(_,_.marks),_.marks=n),Editor.insertText(_,e.data);var r=EDITOR_TO_USER_MARKS.get(_);EDITOR_TO_USER_MARKS.delete(_),void 0!==r&&(_.marks=r)}}}),[h.onCompositionEnd,_]),onCompositionUpdate:React.useCallback((e=>{ReactEditor.hasSelectableTarget(_,e.target)&&!isEventHandled(e,h.onCompositionUpdate)&&(ReactEditor.isComposing(_)||(v(!0),IS_COMPOSING.set(_,!0)))}),[h.onCompositionUpdate,_]),onCompositionStart:React.useCallback((e=>{if(ReactEditor.hasSelectableTarget(_,e.target)){var t;if(null===(t=O.current)||void 0===t||t.handleCompositionStart(e),isEventHandled(e,h.onCompositionStart)||IS_ANDROID)return;v(!0);var{selection:n}=_;if(n&&Range.isExpanded(n))return void Editor.deleteFragment(_)}}),[h.onCompositionStart,_]),onCopy:React.useCallback((e=>{!ReactEditor.hasSelectableTarget(_,e.target)||isEventHandled(e,h.onCopy)||isDOMEventTargetInput(e)||(e.preventDefault(),ReactEditor.setFragmentData(_,e.clipboardData,"copy"))}),[h.onCopy,_]),onCut:React.useCallback((e=>{if(!s&&ReactEditor.hasSelectableTarget(_,e.target)&&!isEventHandled(e,h.onCut)&&!isDOMEventTargetInput(e)){e.preventDefault(),ReactEditor.setFragmentData(_,e.clipboardData,"cut");var{selection:t}=_;if(t)if(Range.isExpanded(t))Editor.deleteFragment(_);else{var n=Node$1.parent(_,t.anchor.path);Editor.isVoid(_,n)&&Transforms.delete(_)}}}),[s,_,h.onCut]),onDragOver:React.useCallback((e=>{if(ReactEditor.hasTarget(_,e.target)&&!isEventHandled(e,h.onDragOver)){var t=ReactEditor.toSlateNode(_,e.target);Element$2.isElement(t)&&Editor.isVoid(_,t)&&e.preventDefault()}}),[h.onDragOver,_]),onDragStart:React.useCallback((e=>{if(!s&&ReactEditor.hasTarget(_,e.target)&&!isEventHandled(e,h.onDragStart)){var t=ReactEditor.toSlateNode(_,e.target),n=ReactEditor.findPath(_,t);if(Element$2.isElement(t)&&Editor.isVoid(_,t)||Editor.void(_,{at:n,voids:!0})){var r=Editor.range(_,n);Transforms.select(_,r)}T.isDraggingInternally=!0,ReactEditor.setFragmentData(_,e.dataTransfer,"drag")}}),[s,_,h.onDragStart,T]),onDrop:React.useCallback((e=>{if(!s&&ReactEditor.hasTarget(_,e.target)&&!isEventHandled(e,h.onDrop)){e.preventDefault();var t=_.selection,n=ReactEditor.findEventRange(_,e),r=e.dataTransfer;Transforms.select(_,n),T.isDraggingInternally&&(!t||Range.equals(t,n)||Editor.void(_,{at:n,voids:!0})||Transforms.delete(_,{at:t})),ReactEditor.insertData(_,r),ReactEditor.isFocused(_)||ReactEditor.focus(_)}}),[s,_,h.onDrop,T]),onDragEnd:React.useCallback((e=>{!s&&T.isDraggingInternally&&h.onDragEnd&&ReactEditor.hasTarget(_,e.target)&&h.onDragEnd(e)}),[s,T,h,_]),onFocus:React.useCallback((e=>{if(!s&&!T.isUpdatingSelection&&ReactEditor.hasEditableTarget(_,e.target)&&!isEventHandled(e,h.onFocus)){var t=ReactEditor.toDOMNode(_,_),n=ReactEditor.findDocumentOrShadowRoot(_);if(T.latestElement=n.activeElement,IS_FIREFOX&&e.target!==t)return void t.focus();IS_FOCUSED.set(_,!0)}}),[s,T,_,h.onFocus]),onKeyDown:React.useCallback((e=>{if(!s&&ReactEditor.hasEditableTarget(_,e.target)){var t;null===(t=O.current)||void 0===t||t.handleKeyDown(e);var{nativeEvent:n}=e;if(ReactEditor.isComposing(_)&&!1===n.isComposing&&(IS_COMPOSING.set(_,!1),v(!1)),isEventHandled(e,h.onKeyDown)||ReactEditor.isComposing(_))return;var{selection:r}=_,o=_.children[null!==r?r.focus.path[0]:0],a="rtl"===direction_1(Node$1.string(o));if(Hotkeys.isRedo(n)){e.preventDefault();var i=_;return void("function"==typeof i.redo&&i.redo())}if(Hotkeys.isUndo(n)){e.preventDefault();var l=_;return void("function"==typeof l.undo&&l.undo())}if(Hotkeys.isMoveLineBackward(n))return e.preventDefault(),void Transforms.move(_,{unit:"line",reverse:!0});if(Hotkeys.isMoveLineForward(n))return e.preventDefault(),void Transforms.move(_,{unit:"line"});if(Hotkeys.isExtendLineBackward(n))return e.preventDefault(),void Transforms.move(_,{unit:"line",edge:"focus",reverse:!0});if(Hotkeys.isExtendLineForward(n))return e.preventDefault(),void Transforms.move(_,{unit:"line",edge:"focus"});if(Hotkeys.isMoveBackward(n))return e.preventDefault(),void(r&&Range.isCollapsed(r)?Transforms.move(_,{reverse:!a}):Transforms.collapse(_,{edge:a?"end":"start"}));if(Hotkeys.isMoveForward(n))return e.preventDefault(),void(r&&Range.isCollapsed(r)?Transforms.move(_,{reverse:a}):Transforms.collapse(_,{edge:a?"start":"end"}));if(Hotkeys.isMoveWordBackward(n))return e.preventDefault(),r&&Range.isExpanded(r)&&Transforms.collapse(_,{edge:"focus"}),void Transforms.move(_,{unit:"word",reverse:!a});if(Hotkeys.isMoveWordForward(n))return e.preventDefault(),r&&Range.isExpanded(r)&&Transforms.collapse(_,{edge:"focus"}),void Transforms.move(_,{unit:"word",reverse:a});if(HAS_BEFORE_INPUT_SUPPORT){if((IS_CHROME||IS_WEBKIT)&&r&&(Hotkeys.isDeleteBackward(n)||Hotkeys.isDeleteForward(n))&&Range.isCollapsed(r)){var c=Node$1.parent(_,r.anchor.path);if(Element$2.isElement(c)&&Editor.isVoid(_,c)&&(Editor.isInline(_,c)||Editor.isBlock(_,c)))return e.preventDefault(),void Editor.deleteBackward(_,{unit:"block"})}}else{if(Hotkeys.isBold(n)||Hotkeys.isItalic(n)||Hotkeys.isTransposeCharacter(n))return void e.preventDefault();if(Hotkeys.isSoftBreak(n))return e.preventDefault(),void Editor.insertSoftBreak(_);if(Hotkeys.isSplitBlock(n))return e.preventDefault(),void Editor.insertBreak(_);if(Hotkeys.isDeleteBackward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"backward"}):Editor.deleteBackward(_));if(Hotkeys.isDeleteForward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"forward"}):Editor.deleteForward(_));if(Hotkeys.isDeleteLineBackward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"backward"}):Editor.deleteBackward(_,{unit:"line"}));if(Hotkeys.isDeleteLineForward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"forward"}):Editor.deleteForward(_,{unit:"line"}));if(Hotkeys.isDeleteWordBackward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"backward"}):Editor.deleteBackward(_,{unit:"word"}));if(Hotkeys.isDeleteWordForward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"forward"}):Editor.deleteForward(_,{unit:"word"}))}}}),[s,_,h.onKeyDown]),onPaste:React.useCallback((e=>{s||!ReactEditor.hasEditableTarget(_,e.target)||isEventHandled(e,h.onPaste)||(!HAS_BEFORE_INPUT_SUPPORT||isPlainTextOnlyPaste(e.nativeEvent)||IS_WEBKIT)&&(e.preventDefault(),ReactEditor.insertData(_,e.clipboardData))}),[s,_,h.onPaste])}),React__default.default.createElement(Children,{decorations:F,node:_,renderElement:l,renderPlaceholder:u,renderLeaf:c,selection:_.selection}))))))})),DefaultPlaceholder=e=>{var{attributes:t,children:n}=e;return React__default.default.createElement("span",_objectSpread$1$3({},t),n,IS_ANDROID&&React__default.default.createElement("br",null))},defaultDecorate=()=>[],defaultScrollSelectionIntoView=(t,n)=>{if(n.getBoundingClientRect&&(!t.selection||t.selection&&Range.isCollapsed(t.selection))){var r=n.startContainer.parentElement;r.getBoundingClientRect=n.getBoundingClientRect.bind(n),e(r,{scrollMode:"if-needed"}),delete r.getBoundingClientRect}},isEventHandled=(e,t)=>{if(!t)return!1;var n=t(e);return null!=n?n:e.isDefaultPrevented()||e.isPropagationStopped()},isDOMEventTargetInput=e=>isDOMNode(e.target)&&(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement),isDOMEventHandled=(e,t)=>{if(!t)return!1;var n=t(e);return null!=n?n:e.defaultPrevented},FocusedContext=React.createContext(!1),SlateSelectorContext=React.createContext({});function useSelectorContext(e){var t=React.useRef([]).current,n=React.useRef({editor:e}).current,r=React.useCallback((e=>{n.editor=e,t.forEach((t=>t(e)))}),[t,n]);return{selectorContext:React.useMemo((()=>({getSlate:()=>n.editor,addEventListener:e=>(t.push(e),()=>{t.splice(t.indexOf(e),1)})})),[t,n]),onChange:r}}var _excluded=["editor","children","onChange","onSelectionChange","onValueChange","initialValue"],Slate=e=>{var{editor:t,children:n,onChange:r,onSelectionChange:o,onValueChange:a,initialValue:i}=e,s=_objectWithoutProperties(e,_excluded),[l,c]=React__default.default.useState((()=>{if(!Node$1.isNodeList(i))throw new Error("[Slate] initialValue is invalid! Expected a list of elements but got: ".concat(Scrubber.stringify(i)));if(!Editor.isEditor(t))throw new Error("[Slate] editor is invalid! You passed: ".concat(Scrubber.stringify(t)));return t.children=i,Object.assign(t,s),{v:0,editor:t}})),{selectorContext:u,onChange:d}=useSelectorContext(t),f=React.useCallback((e=>{var n;if(r&&r(t.children),"set_selection"===(null==e||null===(n=e.operation)||void 0===n?void 0:n.type))null==o||o(t.selection);else null==a||a(t.children);c((e=>({v:e.v+1,editor:t}))),d(t)}),[t,d,r,o,a]);React.useEffect((()=>(EDITOR_TO_ON_CHANGE.set(t,f),()=>{EDITOR_TO_ON_CHANGE.set(t,(()=>{}))})),[t,f]);var[p,m]=React.useState(ReactEditor.isFocused(t));return React.useEffect((()=>{m(ReactEditor.isFocused(t))}),[t]),useIsomorphicLayoutEffect$3((()=>{var e=()=>m(ReactEditor.isFocused(t));return REACT_MAJOR_VERSION>=17?(document.addEventListener("focusin",e),document.addEventListener("focusout",e),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",e)}):(document.addEventListener("focus",e,!0),document.addEventListener("blur",e,!0),()=>{document.removeEventListener("focus",e,!0),document.removeEventListener("blur",e,!0)})}),[]),React__default.default.createElement(SlateSelectorContext.Provider,{value:u},React__default.default.createElement(SlateContext.Provider,{value:l},React__default.default.createElement(EditorContext.Provider,{value:l.editor},React__default.default.createElement(FocusedContext.Provider,{value:p},n))))},doRectsIntersect=(e,t)=>{var n=(t.top+t.bottom)/2;return e.top<=n&&e.bottom>=n},areRangesSameLine=(e,t,n)=>{var r=ReactEditor.toDOMRange(e,t).getBoundingClientRect(),o=ReactEditor.toDOMRange(e,n).getBoundingClientRect();return doRectsIntersect(r,o)&&doRectsIntersect(o,r)},findCurrentLineRange=(e,t)=>{var n=Editor.range(e,Range.end(t)),r=Array.from(Editor.positions(e,{at:t})),o=0,a=r.length,i=Math.floor(a/2);if(areRangesSameLine(e,Editor.range(e,r[o]),n))return Editor.range(e,r[o],n);if(r.length<2)return Editor.range(e,r[r.length-1],n);for(;i!==r.length&&i!==o;)areRangesSameLine(e,Editor.range(e,r[i]),n)?a=i:o=i,i=Math.floor((o+a)/2);return Editor.range(e,r[a],n)};function ownKeys$9(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$9(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$9(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$9(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var withReact=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"x-slate-fragment",n=e,{apply:r,onChange:o,deleteBackward:a,addMark:i,removeMark:s}=n;return EDITOR_TO_KEY_TO_ELEMENT.set(n,new WeakMap),n.addMark=(e,t)=>{var r,o;null===(r=EDITOR_TO_SCHEDULE_FLUSH.get(n))||void 0===r||r(),!EDITOR_TO_PENDING_INSERTION_MARKS.get(n)&&null!==(o=EDITOR_TO_PENDING_DIFFS.get(n))&&void 0!==o&&o.length&&EDITOR_TO_PENDING_INSERTION_MARKS.set(n,null),EDITOR_TO_USER_MARKS.delete(n),i(e,t)},n.removeMark=e=>{var t;!EDITOR_TO_PENDING_INSERTION_MARKS.get(n)&&null!==(t=EDITOR_TO_PENDING_DIFFS.get(n))&&void 0!==t&&t.length&&EDITOR_TO_PENDING_INSERTION_MARKS.set(n,null),EDITOR_TO_USER_MARKS.delete(n),s(e)},n.deleteBackward=e=>{if("line"!==e)return a(e);if(n.selection&&Range.isCollapsed(n.selection)){var t=Editor.above(n,{match:e=>Element$2.isElement(e)&&Editor.isBlock(n,e),at:n.selection});if(t){var[,r]=t,o=Editor.range(n,r,n.selection.anchor),i=findCurrentLineRange(n,o);Range.isCollapsed(i)||Transforms.delete(n,{at:i})}}},n.apply=t=>{var o=[],a=[],i=EDITOR_TO_PENDING_DIFFS.get(n);if(null!=i&&i.length){var s=i.map((e=>transformTextDiff(e,t))).filter(Boolean);EDITOR_TO_PENDING_DIFFS.set(n,s)}var l=EDITOR_TO_PENDING_SELECTION.get(n);l&&EDITOR_TO_PENDING_SELECTION.set(n,transformPendingRange(n,l,t));var c=EDITOR_TO_PENDING_ACTION.get(n);if(null!=c&&c.at){var u=Point.isPoint(null==c?void 0:c.at)?transformPendingPoint(n,c.at,t):transformPendingRange(n,c.at,t);EDITOR_TO_PENDING_ACTION.set(n,u?_objectSpread$9(_objectSpread$9({},c),{},{at:u}):null)}switch(t.type){case"insert_text":case"remove_text":case"set_node":case"split_node":o.push(...getMatches(n,t.path));break;case"set_selection":var d;null===(d=EDITOR_TO_USER_SELECTION.get(n))||void 0===d||d.unref(),EDITOR_TO_USER_SELECTION.delete(n);break;case"insert_node":case"remove_node":o.push(...getMatches(n,Path.parent(t.path)));break;case"merge_node":var f=Path.previous(t.path);o.push(...getMatches(n,f));break;case"move_node":var p,m=Path.common(Path.parent(t.path),Path.parent(t.newPath));o.push(...getMatches(n,m)),Path.isBefore(t.path,t.newPath)?(o.push(...getMatches(n,Path.parent(t.path))),p=t.newPath):(o.push(...getMatches(n,Path.parent(t.newPath))),p=t.path);var h=Node$1.get(e,Path.parent(p)),_=ReactEditor.findKey(n,h),g=Editor.pathRef(n,Path.parent(p));a.push([g,_])}switch(r(t),t.type){case"insert_node":case"remove_node":case"merge_node":case"move_node":case"split_node":IS_NODE_MAP_DIRTY.set(n,!0)}for(var[v,E]of o){var[y]=Editor.node(n,v);NODE_TO_KEY.set(y,E)}for(var[b,C]of a){if(b.current){var[R]=Editor.node(n,b.current);NODE_TO_KEY.set(R,C)}b.unref()}},n.setFragmentData=e=>{var{selection:r}=n;if(r){var[o,a]=Range.edges(r),i=Editor.void(n,{at:o.path}),s=Editor.void(n,{at:a.path});if(!Range.isCollapsed(r)||i){var l=ReactEditor.toDOMRange(n,r),c=l.cloneContents(),u=c.childNodes[0];if(c.childNodes.forEach((e=>{e.textContent&&""!==e.textContent.trim()&&(u=e)})),s){var[d]=s,f=l.cloneRange(),p=ReactEditor.toDOMNode(n,d);f.setEndAfter(p),c=f.cloneContents()}if(i&&(u=c.querySelector("[data-slate-spacer]")),Array.from(c.querySelectorAll("[data-slate-zero-width]")).forEach((e=>{var t="n"===e.getAttribute("data-slate-zero-width");e.textContent=t?"\n":""})),isDOMText(u)){var m=u.ownerDocument.createElement("span");m.style.whiteSpace="pre",m.appendChild(u),c.appendChild(m),u=m}var h=n.getFragment(),_=JSON.stringify(h),g=window.btoa(encodeURIComponent(_));u.setAttribute("data-slate-fragment",g),e.setData("application/".concat(t),g);var v=c.ownerDocument.createElement("div");return v.appendChild(c),v.setAttribute("hidden","true"),c.ownerDocument.body.appendChild(v),e.setData("text/html",v.innerHTML),e.setData("text/plain",getPlainText(v)),c.ownerDocument.body.removeChild(v),e}}},n.insertData=e=>{n.insertFragmentData(e)||n.insertTextData(e)},n.insertFragmentData=e=>{var r=e.getData("application/".concat(t))||getSlateFragmentAttribute(e);if(r){var o=decodeURIComponent(window.atob(r)),a=JSON.parse(o);return n.insertFragment(a),!0}return!1},n.insertTextData=e=>{var t=e.getData("text/plain");if(t){var r=t.split(/\r\n|\r|\n/),o=!1;for(var a of r)o&&Transforms.splitNodes(n,{always:!0}),n.insertText(a),o=!0;return!0}return!1},n.onChange=e=>{(REACT_MAJOR_VERSION<18?ReactDOM__default.default.unstable_batchedUpdates:e=>e())((()=>{var t=EDITOR_TO_ON_CHANGE.get(n);t&&t(e),o(e)}))},n},getMatches=(e,t)=>{var n=[];for(var[r,o]of Editor.levels(e,{at:t})){var a=ReactEditor.findKey(e,r);n.push([o,a])}return n};const defaultComponents={Anchor:"a"},ComponentsContext=React.createContext(void 0);function useComponents(e){const t=React.useContext(ComponentsContext);return React.useMemo((()=>({...defaultComponents,...t,...e})),[t,e])}function ComponentsProvider({children:e,components:t}){const n=React.useContext(ComponentsContext),r=React.useMemo((()=>({...defaultComponents,...n,...t})),[n,t]);return React__namespace.createElement(ComponentsContext.Provider,{value:r},e)}const LiveblocksUIConfigContext=React.createContext({});function useLiveblocksUIConfig(){return React.useContext(LiveblocksUIConfigContext)}function LiveblocksUIConfig({overrides:e,components:t,portalContainer:n,preventUnsavedComposerChanges:r=!0,children:o}){const a=React.useMemo((()=>({portalContainer:n,preventUnsavedComposerChanges:r})),[n,r]);return React__default.default.createElement(LiveblocksUIConfigContext.Provider,{value:a},React__default.default.createElement(OverridesProvider,{overrides:e},React__default.default.createElement(ComponentsProvider,{components:t},o)))}const formatters=[{type:"mark",mark:"bold",character:"*"},{type:"mark",mark:"italic",character:"_"},{type:"mark",mark:"strikethrough",character:"~"},{type:"mark",mark:"code",character:"`"}],markFormattingCharacters=formatters.filter((e=>"mark"===e.type)).map((e=>e.character));function formatMark(e,t,n){if(t!==n.character)return!1;const r=getMatchRange(e,e.selection,[n.character]);if(!r||Range.isCollapsed(r))return!1;const o=getCharacterBefore(e,r);if(!o||o.text!==n.character)return!1;const a=getCharacterBefore(e,o.range);if(a&&!markFormattingCharacters.includes(a.text)&&!isEmptyString(a.text))return!1;const i=Editor.string(e,r);return i.trim()===i&&(Transforms.select(e,r),e.addMark(n.mark,!0),Transforms.collapse(e,{edge:"end"}),e.removeMark(n.mark),Transforms.delete(e,{at:o.range}),!0)}function withAutoFormatting(e){const{insertText:t}=e;return e.insertText=(n,r)=>{if(!isSelectionCollapsed(e.selection))return t(n,r);let o=!0;for(const t of formatters)"mark"===t.type&&formatMark(e,n,t)&&(o=!1);o&&t(n,r)},e}function isText(e){return!("type"in e)&&"text"in e&&"string"==typeof e.text}function isPlainText(e){return isText(e)&&1===Object.keys(e).length}function selectionContainsInlines(e,t){const{selection:n}=e;if(!n)return!1;const r=Array.from(Editor.nodes(e,{at:n,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),mode:"lowest"}));for(const[,o]of r){const r=Range.isRange(n)?Range.intersection(n,Editor.range(e,o)):n;if(!r)continue;const a=Array.from(Editor.nodes(e,{at:r,match:n=>Editor.isInline(e,n)&&t(n)}));if(a.length>0)return!0}return!1}function isUrl(e){try{return new URL(e),!0}catch(e){return!1}}function withCustomLinks(e){const{isInline:t,normalizeNode:n,insertData:r}=e;return e.isInline=e=>"custom-link"===e.type||t(e),e.normalizeNode=t=>{const[r,o]=t;if(isText(r)){if(isComposerBodyCustomLink(Node$1.parent(e,o))&&!isPlainText(r)){const t=Object.keys(r).filter((e=>"text"!==e));Transforms.unsetNodes(e,t,{at:o})}}n(t)},e.insertData=t=>{const{selection:n}=e,o=t.getData("text/plain");let a=!0;n&&!Range.isCollapsed(n)&&n.anchor.path[0]===n.focus.path[0]&&isUrl(o)&&(selectionContainsInlines(e,(e=>!isText(e)))||(Transforms.wrapNodes(e,{type:"custom-link",url:o,children:[]},{at:n,split:!0,match:isPlainText}),a=!1)),a&&r(t)},e}function isComposerBodyCustomLink(e){return Element$2.isElement(e)&&"custom-link"===e.type}function withAutoLinks(e){const{isInline:t,normalizeNode:n,deleteBackward:r}=e;return e.isInline=e=>"auto-link"===e.type||t(e),e.normalizeNode=t=>{const[r,o]=t;if(!isComposerBodyCustomLink(r)){if(isText(r)){const t=Node$1.parent(e,o);if(isComposerBodyCustomLink(t))return;if(isComposerBodyAutoLink(t)){const n=Path.parent(o);if(handleLinkEdit(e,[t,n]),!isPlainText(r)){const t=Object.keys(r).filter((e=>"text"!==e));Transforms.unsetNodes(e,t,{at:o})}}else handleLinkCreate(e,[r,o]),handleNeighbours(e,[r,o])}n(t)}},e.deleteBackward=t=>{r(t);const{selection:n}=e;if(!n)return;if(!Range.isCollapsed(n))return;const[o]=Editor.nodes(e,{at:n,match:isComposerBodyAutoLink,mode:"lowest"});o&&Transforms.unwrapNodes(e,{match:isComposerBodyAutoLink})},e}function isComposerBodyAutoLink(e){return Element$2.isElement(e)&&"auto-link"===e.type}const URL_REGEX=/((https?:\/\/(www\.)?)|(www\.))[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9().@:%_+~#?&//=]*)/,PUNCTUATION_OR_SPACE=/[.,;!?\s()]/,PERIOD_OR_QUESTION_MARK_FOLLOWED_BY_ALPHANUMERIC=/^[.?][a-zA-Z0-9]+/,PARENTHESES=/[()]/;function isSeparator(e){return PUNCTUATION_OR_SPACE.test(e)}function endsWithSeparator(e){const t=e[e.length-1];return void 0!==t&&isSeparator(t)}function startsWithSeparator(e){const t=e[0];return void 0!==t&&isSeparator(t)}function endsWithPeriodOrQuestionMark(e){return"."===e[e.length-1]||"?"===e[e.length-1]}function getUrlLogicalLength(e){if(!PARENTHESES.test(e))return e.length;let t=0,n=0;for(const r of e){if("("===r&&n++,")"===r&&(n--,n<0))break;t++}return t}function isPreviousNodeValid(e,t){const n=Editor.previous(e,{at:t});return!n||isText(n[0])&&(endsWithSeparator(n[0].text)||""===n[0].text)}function isNextNodeValid(e,t){const n=Editor.next(e,{at:t});return!n||isText(n[0])&&(startsWithSeparator(n[0].text)||""===n[0].text)}function isContentAroundValid(e,t,n,r){const[o,a]=t,i=o.text,s=i[n-1],l=n>0&&s?isSeparator(s):isPreviousNodeValid(e,a),c=i[r],u=r<i.length&&c?isSeparator(c):isNextNodeValid(e,a);return l&&u}const handleLinkEdit=(e,t)=>{const[n,r]=t,o=Node$1.children(e,r);for(const[t]of o)if(!isText(t))return void Transforms.unwrapNodes(e,{at:r});const a=Node$1.string(n),i=URL_REGEX.exec(a),s=i?.[0];if(!i||s!==a)return void Transforms.unwrapNodes(e,{at:r});if(endsWithPeriodOrQuestionMark(a)){Transforms.unwrapNodes(e,{at:r});const t=a.slice(0,a.length-1);return void Transforms.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:r,offset:0},focus:{path:r,offset:t.length}},split:!0})}const l=getUrlLogicalLength(a);if(l<a.length){Transforms.unwrapNodes(e,{at:r});const t=a.slice(0,l);Transforms.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:r,offset:0},focus:{path:r,offset:t.length}},split:!0})}else isPreviousNodeValid(e,r)&&isNextNodeValid(e,r)?n.url===a||Transforms.setNodes(e,{url:s},{at:r}):Transforms.unwrapNodes(e,{at:r})},handleLinkCreate=(e,t)=>{const[n,r]=t,o=URL_REGEX.exec(n.text),a=o?.[0];if(!o||void 0===a)return;const i=o.index,s=i+a.length;isContentAroundValid(e,t,i,s)&&Transforms.wrapNodes(e,{type:"auto-link",url:a,children:[]},{at:{anchor:{path:r,offset:i},focus:{path:r,offset:s}},split:!0})},handleNeighbours=(e,t)=>{const[n,r]=t,o=n.text,a=Editor.previous(e,{at:r});if(a&&isComposerBodyAutoLink(a[0])){if(PERIOD_OR_QUESTION_MARK_FOLLOWED_BY_ALPHANUMERIC.test(o))return Transforms.unwrapNodes(e,{at:a[1]}),void Transforms.mergeNodes(e,{at:r});if(!startsWithSeparator(o))return void Transforms.unwrapNodes(e,{at:a[1]})}const i=Editor.next(e,{at:r});i&&isComposerBodyAutoLink(i[0])&&!endsWithSeparator(o)&&Transforms.unwrapNodes(e,{at:i[1]})};function isEmpty(e,t){for(const n of t)if(isText(n)){if(!isEmptyString(n.text))return!1}else if("paragraph"===n.type){if(n.children.length>1||n.children[0]&&(!isText(n.children[0])||!isEmptyString(n.children[0].text)))return!1}else if(!Editor.isEmpty(e,n))return!1;return!0}function isMarkActive(e,t){const n=Editor.marks(e);return!!n&&!0===n[t]}function toggleMark(e,t){isMarkActive(e,t)?Editor.removeMark(e,t):Editor.addMark(e,t,!0)}function removeMarks(e){const t=Editor.marks(e);if(t)for(const n in t)Editor.removeMark(e,n)}function leaveMarkEdge(e,t){if(isSelectionCollapsed(e.selection)){if(Object.keys(Editor.marks(e)??{}).length>0){("start"===t?getCharacterBefore(e,e.selection):getCharacterAfter(e,e.selection))||removeMarks(e)}}}function withEmptyClearFormatting(e){const{onChange:t}=e;return e.onChange=n=>{isEmpty(e,e.children)&&removeMarks(e),t(n)},e}function withNormalize(e){const{normalizeNode:t}=e;return e.normalizeNode=n=>{const[r,o]=n;if(Element$2.isElement(r)&&"paragraph"===r.type)for(const[t,n]of Node$1.children(e,o))if(Element$2.isElement(t)&&!e.isInline(t))return void Transforms.unwrapNodes(e,{at:n});!Element$2.isElement(r)||"auto-link"!==r.type&&"custom-link"!==r.type||(0===r.children.length||1===r.children.length&&""===r.children[0]?.text)&&Transforms.removeNodes(e,{at:o}),t(n)},e}function _typeof$2(e){return _typeof$2="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$2(e)}function _toPrimitive$2(e,t){if("object"!==_typeof$2(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$2(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$2(e){var t=_toPrimitive$2(e,"string");return"symbol"===_typeof$2(t)?t:String(t)}function _defineProperty$2(e,t,n){return(t=_toPropertyKey$2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ANCHOR=new WeakMap,FOCUS=new WeakMap;class Token{}class AnchorToken extends Token{constructor(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),_defineProperty$2(this,"offset",void 0),_defineProperty$2(this,"path",void 0);var{offset:t,path:n}=e;this.offset=t,this.path=n}}class FocusToken extends Token{constructor(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),_defineProperty$2(this,"offset",void 0),_defineProperty$2(this,"path",void 0);var{offset:t,path:n}=e;this.offset=t,this.path=n}}var addAnchorToken=(e,t)=>{var n=e.text.length;ANCHOR.set(e,[n,t])},getAnchorOffset=e=>ANCHOR.get(e),addFocusToken=(e,t)=>{var n=e.text.length;FOCUS.set(e,[n,t])},getFocusOffset=e=>FOCUS.get(e);function ownKeys$1$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$1$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$2(Object(n),!0).forEach((function(t){_defineProperty$2(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var STRINGS=new WeakSet,resolveDescendants=e=>{var t=[],n=e=>{if(null!=e){var r=t[t.length-1];if("string"==typeof e){var o={text:e};STRINGS.add(o),e=o}if(Text$1.isText(e)){var a=e;Text$1.isText(r)&&STRINGS.has(r)&&STRINGS.has(a)&&Text$1.equals(r,a,{loose:!0})?r.text+=a.text:t.push(a)}else if(Element$2.isElement(e))t.push(e);else{if(!(e instanceof Token))throw new Error("Unexpected hyperscript child object: ".concat(e));var i=t[t.length-1];Text$1.isText(i)||(n(""),i=t[t.length-1]),e instanceof AnchorToken?addAnchorToken(i,e):e instanceof FocusToken&&addFocusToken(i,e)}}};for(var r of e.flat(1/0))n(r);return t};function createAnchor(e,t,n){return new AnchorToken(t)}function createCursor(e,t,n){return[new AnchorToken(t),new FocusToken(t)]}function createElement(e,t,n){return _objectSpread$1$2(_objectSpread$1$2({},t),{},{children:resolveDescendants(n)})}function createFocus(e,t,n){return new FocusToken(t)}function createFragment(e,t,n){return resolveDescendants(n)}function createSelection(e,t,n){var r=n.find((e=>e instanceof AnchorToken)),o=n.find((e=>e instanceof FocusToken));if(!r||null==r.offset||null==r.path)throw new Error("The <selection> hyperscript tag must have an <anchor> tag as a child with `path` and `offset` attributes defined.");if(!o||null==o.offset||null==o.path)throw new Error("The <selection> hyperscript tag must have a <focus> tag as a child with `path` and `offset` attributes defined.");return _objectSpread$1$2({anchor:{offset:r.offset,path:r.path},focus:{offset:o.offset,path:o.path}},t)}function createText(e,t,n){var r=resolveDescendants(n);if(r.length>1)throw new Error("The <text> hyperscript tag must only contain a single node's worth of children.");var[o]=r;if(null==o&&(o={text:""}),!Text$1.isText(o))throw new Error("\n The <text> hyperscript tag can only contain text content as children.");return STRINGS.delete(o),Object.assign(o,t),o}var createEditor=e=>(t,n,r)=>{var o,a=[];for(var i of r)Range.isRange(i)?o=i:a.push(i);var s=resolveDescendants(a),l={},c=e();for(var[u,d]of(Object.assign(c,n),c.children=s,Node$1.texts(c))){var f=getAnchorOffset(u),p=getFocusOffset(u);if(null!=f){var[m]=f;l.anchor={path:d,offset:m}}if(null!=p){var[h]=p;l.focus={path:d,offset:h}}}if(l.anchor&&!l.focus)throw new Error("Slate hyperscript ranges must have both `<anchor />` and `<focus />` defined if one is defined, but you only defined `<anchor />`. For collapsed selections, use `<cursor />` instead.");if(!l.anchor&&l.focus)throw new Error("Slate hyperscript ranges must have both `<anchor />` and `<focus />` defined if one is defined, but you only defined `<focus />`. For collapsed selections, use `<cursor />` instead.");return null!=o?c.selection=o:Range.isRange(l)&&(c.selection=l),c};function ownKeys$8(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$8(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$8(Object(n),!0).forEach((function(t){_defineProperty$2(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$8(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var DEFAULT_CREATORS={anchor:createAnchor,cursor:createCursor,editor:createEditor(createEditor$1),element:createElement,focus:createFocus,fragment:createFragment,selection:createSelection,text:createText},createHyperscript=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{elements:t={}}=e,n=normalizeElements(t),r=_objectSpread$8(_objectSpread$8(_objectSpread$8({},DEFAULT_CREATORS),n),e.creators);return createFactory(r)},createFactory=e=>function(t,n){for(var r=arguments.length,o=new Array(r>2?r-2:0),a=2;a<r;a++)o[a-2]=arguments[a];var i=e[t];if(!i)throw new Error("No hyperscript creator found for tag: <".concat(t,">"));return null==n&&(n={}),isPlainObject$1(n)||(o=[n].concat(o),n={}),i(t,n,o=o.filter((e=>Boolean(e))).flat())},normalizeElements=e=>{var t={},n=function(){var n=e[r];if("object"!=typeof n)throw new Error("Properties specified for a hyperscript shorthand should be an object, but for the custom element <".concat(r,"> tag you passed: ").concat(n));t[r]=(e,t,r)=>createElement("element",_objectSpread$8(_objectSpread$8({},n),t),r)};for(var r in e)n();return t},jsx=createHyperscript();function exists(e){return null!=e}function getFiles(e){if(!e.types.includes("Files"))return[];let t=Array.from(e.items).map((e=>{const t=e.webkitGetAsEntry();return t&&t.isFile?e.getAsFile():null})).filter(exists);return t.length||(t=Array.from(e.files).filter((e=>""!==e.type))),t}function areUrlsEqual(e,t){try{const n=new URL(e),r=new URL(t);return n.origin===r.origin&&n.pathname===r.pathname}catch{return!1}}const createParagraphElement=()=>({type:"paragraph"}),ELEMENT_TAGS={A:e=>{const t=e.getAttribute("href"),n=e.innerText;return{type:t&&areUrlsEqual(t,n)?"auto-link":"custom-link",url:t??""}},P:createParagraphElement,BLOCKQUOTE:createParagraphElement,H1:createParagraphElement,H2:createParagraphElement,H3:createParagraphElement,H4:createParagraphElement,H5:createParagraphElement,H6:createParagraphElement,LI:createParagraphElement},TEXT_TAGS={CODE:()=>({code:!0}),DEL:()=>({strikethrough:!0}),EM:()=>({italic:!0}),I:()=>({italic:!0}),S:()=>({strikethrough:!0}),STRONG:()=>({bold:!0}),B:()=>({bold:!0})};function flattenListItems(e){const t=[];return"LI"===e.nodeName&&t.push(e),e.childNodes.forEach((e=>{1===e.nodeType&&t.push(...flattenListItems(e))})),t}function jsxTextChildren(e,t){return e.map((e=>jsx("text",t,e)))}function deserialize(e){if(3===e.nodeType)return e.textContent;if(1!==e.nodeType)return null;if("BR"===e.nodeName)return jsx("element",createParagraphElement(),[]);let t=Array.from(e.childNodes).map(deserialize).flat();if("UL"===e.nodeName||"OL"===e.nodeName){t=flattenListItems(e).map((e=>deserialize(e))).flat()}if(0===t.length&&(t=[{text:""}]),"BODY"===e.nodeName)return t.length>0&&t.every((e=>"string"==typeof e))&&(t=[{type:"paragraph",children:[{text:t.join("")}]}]),jsx("fragment",{},t.filter((e=>"string"!=typeof e)));if(ELEMENT_TAGS[e.nodeName]){const n=ELEMENT_TAGS[e.nodeName](e);return jsx("element",n,t)}if(TEXT_TAGS[e.nodeName]){const n=TEXT_TAGS[e.nodeName](e);return t.some((e=>e&&"string"!=typeof e&&"type"in e))?jsx("fragment",{},t):jsxTextChildren(t,n)}if("SPAN"===e.nodeName){const n=e.style,r={};return"bold"!==n.fontWeight&&"700"!==n.fontWeight&&"800"!==n.fontWeight&&"900"!==n.fontWeight||(r.bold=!0),"italic"===n.fontStyle&&(r.italic=!0),"line-through"===n.textDecoration&&(r.strikethrough=!0),jsxTextChildren(t,r)}return t}function withPaste(e,{createAttachments:t,pasteFilesAsAttachments:n}){const{insertData:r}=e;return e.insertData=o=>{if(o.types.includes("Files")&&n){const e=getFiles(o);if(e.length>0)return void t(e)}if(o.types.includes("text/html")&&!o.types.includes("application/x-slate-fragment")){const t=o.getData("text/html");try{const{body:n}=(new DOMParser).parseFromString(t,"text/html");if(n.querySelector("br.Apple-interchange-newline")?.remove(),1===n.children.length&&"B"===n.children[0]?.nodeName){const e=n.children[0];for(;e.firstChild;)n.insertBefore(e.firstChild,e);n.removeChild(e)}const r=deserialize(n);if(null!==r&&Array.isArray(r))return void Transforms.insertFragment(e,r)}catch{}}r(o)},e}function getDOMRange(e,t){try{return ReactEditor.toDOMRange(e,t)}catch(n){return getDOMRange(e,{anchor:t.anchor,focus:t.anchor})}}const APPLE_REGEX=/Mac|iPod|iPhone|iPad/;function isApple(){return"undefined"!=typeof window&&APPLE_REGEX.test(window.navigator.platform)}const MODIFIERS={alt:()=>"altKey",ctrl:()=>"ctrlKey",meta:()=>"metaKey",mod:()=>isApple()?"metaKey":"ctrlKey",shift:()=>"shiftKey"};function isKey(e,t,n={}){if(e.key!==t)return!1;return Object.entries(n).filter((([,e])=>"boolean"==typeof e)).every((([t,n])=>{const r=MODIFIERS[t]();return e[r]===n}))}const useReactFlushSync=ReactDOM__default.default["flushSync".toString()];function flushSyncFallback(e){return e()}const flushSync=useReactFlushSync??flushSyncFallback,useLayoutEffect="undefined"!=typeof window?React.useLayoutEffect:React.useEffect,PersistContext=React.createContext(null);function usePersist(){return nn(React.useContext(PersistContext),"Persist is missing from the React tree.")}function getChild(e){const t=Array.isArray(e)?React.Children.only(e):e;return React.isValidElement(t)?t:void 0}function useAnimationPersist(e){const[t,n]=usePersist(),r=React.useRef(null),o=React.useRef(null);useLayoutEffect((()=>{const t=e.current;if(!t)return;const a=e=>{e.animationName===o.current&&n(),r.current=e.animationName};return t.addEventListener("animationcancel",a),t.addEventListener("animationend",a),()=>{t.removeEventListener("animationcancel",a),t.removeEventListener("animationend",a)}}),[e,n]),useLayoutEffect((()=>{const a=e.current;let i;if(a)return t||(i=requestAnimationFrame((()=>{const e=getComputedStyle(a);o.current=e.animationName,"none"!==e.animationName&&e.animationName!==r.current&&"none"!==e.display||n()}))),()=>{cancelAnimationFrame(i)}}),[t,e,n])}function Persist({children:e}){const[t,n]=React.useState(!0),r=React.useRef(null),o=getChild(e),a=React.useCallback((()=>{flushSync((()=>n(!1)))}),[]);return useLayoutEffect((()=>{o&&(n(!0),r.current=o)}),[o]),React__default.default.createElement(PersistContext.Provider,{value:[Boolean(o),a]},o??(t?r.current:null))}const Portal$4=React.forwardRef((({container:e=document?.body,asChild:t,...n},r)=>{const o=t?Slot:"div";return e?ReactDOM.createPortal(React__default.default.createElement(o,{"data-liveblocks-portal":"",...n,ref:r}),e):null}));function requestSubmit(e,t){if("function"==typeof e.requestSubmit)return e.requestSubmit(t);t?t.click():((t=document.createElement("input")).type="submit",t.hidden=!0,e.appendChild(t),t.click(),e.removeChild(t))}let isHydrated=!1,id$1=0;function getId(){return++id$1}const useReactId$1=React__default.default["useId".toString()];function useIncrementalId(){const[e,t]=React.useState(isHydrated?getId:null);return useLayoutEffect((()=>{null===e&&t(getId())}),[e]),React.useEffect((()=>{isHydrated||(isHydrated=!0)}),[]),String(e)??void 0}const useId$1=useReactId$1??useIncrementalId;function clamp(e,t,n){return Math.min(Math.max(e,t),n)}function wrap(e,t,n){const r=n-t;return r>0?((e-t)%r+r)%r+t:0}const defaultOptions$1={wrap:!0};function useIndex(e,t,n){const{wrap:r}=React.useMemo((()=>({...defaultOptions$1,...n})),[n]),o=React.useMemo((()=>r?wrap:clamp),[r]),[a,i]=React.useState(e);React.useEffect((()=>{i((e=>clamp(e,0,Math.max(t-1,0))))}),[t]);return[a,React.useCallback((()=>{i((e=>o(e-1,0,Math.max(t,0))))}),[t,o]),React.useCallback((()=>{i((e=>o(e+1,0,Math.max(t,0))))}),[t,o]),i]}function useInitial(e){const[t]=React.useState(e);return t}function applyRef(e,t){t&&("function"==typeof e?e(t):e&&"current"in e&&(e.current=t))}function mergeRefs(e,...t){for(const n of t)applyRef(n,e)}function useRefs(...e){return React.useCallback((t=>mergeRefs(t,...e)),[e])}const ComposerContext=React.createContext(null),ComposerEditorContext=React.createContext(null),ComposerAttachmentsContext=React.createContext(null),ComposerSuggestionsContext=React.createContext(null);function useComposerEditorContext(){return nn(React.useContext(ComposerEditorContext),"Composer.Form is missing from the React tree.")}function useComposerAttachmentsContextOrNull(){return React.useContext(ComposerAttachmentsContext)}function useComposerAttachmentsContext(){return nn(useComposerAttachmentsContextOrNull(),"Composer.Form is missing from the React tree.")}function useComposerSuggestionsContext(e="useComposerSuggestionsContext"){return nn(React.useContext(ComposerSuggestionsContext),`${e} can’t be used outside of Composer.Editor.`)}function useComposer(){return nn(React.useContext(ComposerContext),"Composer.Form is missing from the React tree.")}function useLatest(e){const t=React.useRef(e);return React.useEffect((()=>{t.current=e}),[e]),t}function composerBodyMentionToCommentBodyMention(e){return{type:"mention",id:e.id}}function composerBodyAutoLinkToCommentBodyLink(e){return{type:"link",url:e.url}}function composerBodyCustomLinkToCommentBodyLink(e){return{type:"link",url:e.url,text:e.children.map((e=>e.text)).join("")}}function commentBodyMentionToComposerBodyMention(e){return{type:"mention",id:e.id,children:[{text:""}]}}function commentBodyLinkToComposerBodyLink(e){return e.text?{type:"custom-link",url:e.url,children:[{text:e.text}]}:{type:"auto-link",url:e.url,children:[{text:e.url}]}}function composerBodyToCommentBody(e){return{version:1,content:e.map((e=>{if("paragraph"!==e.type)return null;const t=e.children.map((e=>isComposerBodyMention(e)?composerBodyMentionToCommentBodyMention(e):isComposerBodyAutoLink(e)?composerBodyAutoLinkToCommentBodyLink(e):isComposerBodyCustomLink(e)?composerBodyCustomLinkToCommentBodyLink(e):isText(e)?e:null)).filter(exists);return{...e,children:t}})).filter(exists)}}const emptyComposerBody=[];function commentBodyToComposerBody(e){return e&&e?.content?e.content.map((e=>{if("paragraph"!==e.type)return null;const t=e.children.map((e=>isCommentBodyMention(e)?commentBodyMentionToComposerBodyMention(e):isCommentBodyLink(e)?commentBodyLinkToComposerBodyLink(e):isCommentBodyText(e)?e:null)).filter(exists);return{...e,children:t}})).filter(exists):emptyComposerBody}function getPlacementFromPosition(e,t="ltr"){return`${e}-${"rtl"===t?"end":"start"}`}function getSideAndAlignFromPlacement$1(e){const[t,n="center"]=e.split("-");return[t,n]}function useComposerAttachmentsDropArea({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:r,disabled:o}){const{isDisabled:a}=useComposer(),i=a||o,{createAttachments:s}=useComposerAttachmentsContext(),[l,c]=React.useState(!1),u=useLatest(l);return[l,{onDragEnter:React.useCallback((t=>{if(e?.(t),u.current||i||t.isDefaultPrevented())return;t.dataTransfer.types.includes("Files")&&(t.preventDefault(),t.stopPropagation(),c(!0))}),[e,i]),onDragLeave:React.useCallback((e=>{t?.(e),!u.current||i||e.isDefaultPrevented()||(e.relatedTarget?e.relatedTarget===e.currentTarget||e.currentTarget.contains(e.relatedTarget):e.currentTarget!==e.target)||(e.preventDefault(),e.stopPropagation(),c(!1))}),[t,i]),onDragOver:React.useCallback((e=>{n?.(e),i||e.isDefaultPrevented()||(e.preventDefault(),e.stopPropagation())}),[n,i]),onDrop:React.useCallback((e=>{if(r?.(e),!u.current||i||e.isDefaultPrevented())return;e.preventDefault(),e.stopPropagation(),c(!1);const t=getFiles(e.dataTransfer);s(t)}),[r,i,s]),"data-drop":l?"":void 0,"data-disabled":i?"":void 0}]}class AttachmentTooLargeError extends Error{constructor(e,t="client"){super(e),this.name="AttachmentTooLargeError",this.origin=t}}function createComposerAttachmentsManager(e,t){const n=new Map,r=new Map,o=makeEventSource();let a=null;function i(){a=null,o.notify()}function s(t){const o=new AbortController;r.set(t.id,o),e.uploadAttachment(t,{signal:o.signal}).then((()=>{n.set(t.id,{...t,status:"uploaded"}),i()})).catch((e=>{e instanceof Error&&"AbortError"!==e.name&&"TimeoutError"!==e.name&&(n.set(t.id,{...t,status:"error",error:e instanceof HttpError&&413===e.status?new AttachmentTooLargeError("File is too large.","server"):e}),i())}))}return{addAttachments:function(e){if(0===e.length)return;const r=e.filter((e=>!n.has(e.id))),o=[];for(const e of r)if("localAttachment"===e.type){if(e.file.size>t.maxFileSize){n.set(e.id,{...e,status:"error",error:new AttachmentTooLargeError("File is too large.","client")});continue}n.set(e.id,{...e,status:"uploading"}),o.push(e)}else n.set(e.id,e);r.length>0&&i();for(const e of o)s(e)},removeAttachment:function(e){const t=r.get(e);t?.abort(),n.delete(e),r.delete(e),i()},getSnapshot:function(){return a||(a=Array.from(n.values())),a},subscribe:o.subscribe,clear:function(){r.forEach((e=>e.abort())),r.clear(),n.clear(),i()}}}function preventBeforeUnloadDefault(e){e.preventDefault()}function useComposerAttachmentsManager(e,t){const n=_useRoom(),r=useInitial(e),o=useInitial((()=>createComposerAttachmentsManager(n,t)));React.useEffect((()=>{o.addAttachments(r)}),[r,o]),React.useEffect((()=>()=>{o.clear()}),[o]);const a=shim.exports.useSyncExternalStore(o.subscribe,o.getSnapshot,o.getSnapshot),i=React.useMemo((()=>a.some((e=>"localAttachment"===e.type&&"uploading"===e.status))),[a]);return React.useEffect((()=>{if(i)return window.addEventListener("beforeunload",preventBeforeUnloadDefault),()=>{window.removeEventListener("beforeunload",preventBeforeUnloadDefault)}}),[i]),{attachments:a,isUploadingAttachments:i,addAttachments:o.addAttachments,removeAttachment:o.removeAttachment,clearAttachments:o.clear}}const MENTION_SUGGESTIONS_POSITION="top",COMPOSER_SUGGESTIONS_NAME="ComposerSuggestions",COMPOSER_SUGGESTIONS_LIST_NAME="ComposerSuggestionsList",COMPOSER_SUGGESTIONS_LIST_ITEM_NAME="ComposerSuggestionsListItem",emptyCommentBody={version:1,content:[{type:"paragraph",children:[{text:""}]}]};function createComposerEditor({createAttachments:e,pasteFilesAsAttachments:t}){return withNormalize(withMentions(withCustomLinks(withAutoLinks(withAutoFormatting(withEmptyClearFormatting(withPaste(withHistory(withReact(createEditor$1())),{createAttachments:e,pasteFilesAsAttachments:t})))))))}function ComposerEditorMentionWrapper({Mention:e,attributes:t,children:n,element:r}){const o=useSelected();return React__default.default.createElement("span",{...t},r.id?React__default.default.createElement(e,{userId:r.id,isSelected:o}):null,n)}function ComposerEditorLinkWrapper({Link:e,attributes:t,element:n,children:r}){const o=React.useMemo((()=>toAbsoluteUrl(n.url)??n.url),[n.url]);return React__default.default.createElement("span",{...t},React__default.default.createElement(e,{href:o},r))}function ComposerEditorMentionSuggestionsWrapper({id:e,itemId:t,userIds:n,selectedUserId:r,setSelectedUserId:o,mentionDraft:a,onItemSelect:i,position:s=MENTION_SUGGESTIONS_POSITION,dir:l,MentionSuggestions:c}){const u=useSlateStatic(),{isFocused:d}=useComposer(),[f,p]=React.useState(null),[m,h]=React.useState(),_=React.useCallback(p,[p]),{portalContainer:g}=useLiveblocksUIConfig(),v=React.useMemo((()=>{const e={padding:FLOATING_ELEMENT_COLLISION_PADDING};return{strategy:"fixed",placement:getPlacementFromPosition(s,l),middleware:[flip({...e,crossAxis:!1}),hide(e),shift({...e,limiter:limitShift()}),size$1({...e,apply({availableWidth:e,availableHeight:t,elements:n}){n.floating.style.setProperty("--lb-composer-suggestions-available-width",`${e}px`),n.floating.style.setProperty("--lb-composer-suggestions-available-height",`${t}px`)}})],whileElementsMounted:(...e)=>autoUpdate(...e,{animationFrame:!0})}}),[s,l]),{refs:{setReference:E,setFloating:y},strategy:b,isPositioned:C,placement:R,x:w,y:S}=useFloating(v);return useLayoutEffect((()=>{f&&h(window.getComputedStyle(f).zIndex)}),[f]),useLayoutEffect((()=>{if(!a)return;const e=getDOMRange(u,a.range);e&&E({getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects()})}),[E,u,a]),React__default.default.createElement(Persist,null,a?.range&&d&&n?React__default.default.createElement(ComposerSuggestionsContext.Provider,{value:{id:e,itemId:t,selectedValue:r,setSelectedValue:o,onItemSelect:i,placement:R,dir:l,ref:_}},React__default.default.createElement(Portal$4,{ref:y,container:g,style:{position:b,top:0,left:0,transform:C?`translate3d(${Math.round(w)}px, ${Math.round(S)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:m}},React__default.default.createElement(c,{userIds:n,selectedUserId:r}))):null)}function ComposerEditorElement({Mention:e,Link:t,...n}){const{attributes:r,children:o,element:a}=n;switch(a.type){case"mention":return React__default.default.createElement(ComposerEditorMentionWrapper,{Mention:e,...n});case"auto-link":case"custom-link":return React__default.default.createElement(ComposerEditorLinkWrapper,{Link:t,...n});case"paragraph":return React__default.default.createElement("p",{...r,style:{position:"relative"}},o);default:return null}}function ComposerEditorLeaf({attributes:e,children:t,leaf:n}){return n.bold&&(t=React__default.default.createElement("strong",null,t)),n.italic&&(t=React__default.default.createElement("em",null,t)),n.strikethrough&&(t=React__default.default.createElement("s",null,t)),n.code&&(t=React__default.default.createElement("code",null,t)),React__default.default.createElement("span",{...e},t)}function ComposerEditorPlaceholder({attributes:e,children:t}){const{opacity:n,...r}=e.style;return React__default.default.createElement("span",{...e,style:r,"data-placeholder":""},t)}const ComposerMention$1=React.forwardRef((({children:e,asChild:t,...n},r)=>{const o=t?Slot:"span",a=useSelected();return React__default.default.createElement(o,{"data-selected":a||void 0,...n,ref:r},e)})),ComposerLink$1=React.forwardRef((({children:e,asChild:t,...n},r)=>{const o=t?Slot:"a";return React__default.default.createElement(o,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:r},e)})),ComposerSuggestions=React.forwardRef((({children:e,style:t,asChild:n,...r},o)=>{const[a]=usePersist(),i=React.useRef(null),{ref:s,placement:l,dir:c}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_NAME),u=useRefs(o,s,i),[d,f]=React.useMemo((()=>getSideAndAlignFromPlacement$1(l)),[l]),p=n?Slot:"div";return useAnimationPersist(i),React__default.default.createElement(p,{dir:c,...r,"data-state":a?"open":"closed","data-side":d,"data-align":f,style:{display:"flex",flexDirection:"column",maxHeight:"var(--lb-composer-suggestions-available-height)",overflowY:"auto",...t},ref:u},e)})),ComposerSuggestionsList=React.forwardRef((({children:e,asChild:t,...n},r)=>{const{id:o}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_NAME),a=t?Slot:"ul";return React__default.default.createElement(a,{role:"listbox",id:o,"aria-label":"Suggestions list",...n,ref:r},e)})),ComposerSuggestionsListItem=React.forwardRef((({value:e,children:t,onPointerMove:n,onPointerDown:r,onClick:o,asChild:a,...i},s)=>{const l=React.useRef(null),c=useRefs(s,l),{selectedValue:u,setSelectedValue:d,itemId:f,onItemSelect:p}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_ITEM_NAME),m=a?Slot:"li",h=React.useMemo((()=>u===e),[u,e]),_=React.useMemo((()=>f(e)),[f,e]);React.useEffect((()=>{l?.current&&h&&l.current.scrollIntoView({block:"nearest"})}),[h]);const g=React.useCallback((t=>{n?.(t),t.isDefaultPrevented()||d(e)}),[n,d,e]),v=React.useCallback((e=>{r?.(e),e.preventDefault(),e.stopPropagation()}),[r]),E=React.useCallback((t=>{o?.(t);const n=t.isDefaultPrevented();t.preventDefault(),t.stopPropagation(),n||p(e)}),[o,p,e]);return React__default.default.createElement(m,{role:"option",id:_,"data-selected":h||void 0,"aria-selected":h||void 0,onPointerMove:g,onPointerDown:v,onClick:E,...i,ref:c},t)})),defaultEditorComponents={Link:({href:e,children:t})=>React__default.default.createElement(ComposerLink$1,{href:e},t),Mention:({userId:e})=>React__default.default.createElement(ComposerMention$1,null,MENTION_CHARACTER,e),MentionSuggestions:({userIds:e})=>e.length>0?React__default.default.createElement(ComposerSuggestions,null,React__default.default.createElement(ComposerSuggestionsList,null,e.map((e=>React__default.default.createElement(ComposerSuggestionsListItem,{key:e,value:e},e))))):null},ComposerEditor=React.forwardRef((({defaultValue:e,onKeyDown:t,onFocus:n,onBlur:r,disabled:o,autoFocus:a,components:i,dir:s,...l},c)=>{const{editor:u,validate:d,setFocused:f}=useComposerEditorContext(),{submit:p,focus:m,select:h,canSubmit:_,isDisabled:g,isFocused:v}=useComposer(),E=g||o,y=useInitial(e??emptyCommentBody),b=React.useMemo((()=>commentBodyToComposerBody(y)),[y]),{Link:C,Mention:R,MentionSuggestions:w}=React.useMemo((()=>({...defaultEditorComponents,...i})),[i]),[S,D]=React.useState(),T=useMentionSuggestions(S?.text),[O,A,I,x]=useIndex(0,T?.length??0),N=useId$1(),F=React.useMemo((()=>`liveblocks-suggestions-list-${N}`),[N]),P=React.useCallback((e=>e?`liveblocks-suggestions-list-item-${N}-${e}`:void 0),[N]),k=React.useCallback((e=>React__default.default.createElement(ComposerEditorElement,{Mention:R,Link:C,...e})),[C,R]),$=React.useCallback((e=>{d(e),D(getMentionDraftAtSelection(u))}),[u,d]),M=React.useCallback((e=>{S&&e&&(Transforms.select(u,S.range),insertMention(u,e),D(void 0),x(0))}),[u,S,x]),B=React.useCallback((e=>{if(t?.(e),!e.isDefaultPrevented())if(isKey(e,"ArrowLeft")&&leaveMarkEdge(u,"start"),isKey(e,"ArrowRight")&&leaveMarkEdge(u,"end"),S&&T?.length){if(isKey(e,"ArrowDown")&&(e.preventDefault(),I()),isKey(e,"ArrowUp")&&(e.preventDefault(),A()),isKey(e,"Enter")||isKey(e,"Tab")){e.preventDefault();const t=T?.[O];M(t)}isKey(e,"Escape")&&(e.preventDefault(),D(void 0),x(0))}else isKey(e,"Escape")&&(e.preventDefault(),ReactEditor.blur(u)),isKey(e,"Enter",{shift:!1})&&(e.preventDefault(),_&&p()),isKey(e,"Enter",{shift:!0})&&(e.preventDefault(),u.insertBreak()),isKey(e,"b",{mod:!0})&&(e.preventDefault(),toggleMark(u,"bold")),isKey(e,"i",{mod:!0})&&(e.preventDefault(),toggleMark(u,"italic")),isKey(e,"s",{mod:!0,shift:!0})&&(e.preventDefault(),toggleMark(u,"strikethrough")),isKey(e,"e",{mod:!0})&&(e.preventDefault(),toggleMark(u,"code"))}),[M,u,_,S,T,O,t,I,A,x,p]),L=React.useCallback((e=>{n?.(e),e.isDefaultPrevented()||f(!0)}),[n,f]),j=React.useCallback((e=>{r?.(e),e.isDefaultPrevented()||f(!1)}),[r,f]),U=React.useMemo((()=>T?.[O]),[O,T]),V=React.useCallback((e=>{const t=T?.indexOf(e);void 0!==t&&t>=0&&x(t)}),[x,T]),H=React.useMemo((()=>S?{role:"combobox","aria-autocomplete":"list","aria-expanded":!0,"aria-controls":F,"aria-activedescendant":P(U)}:{}),[S,F,P,U]);return React.useImperativeHandle(c,(()=>ReactEditor.toDOMNode(u,u)),[u]),React.useEffect((()=>{a&&m()}),[a,u,m]),React.useEffect((()=>{v&&null===u.selection&&h()}),[u,h,v]),React__default.default.createElement(Slate,{editor:u,initialValue:b,onChange:$},React__default.default.createElement(Editable,{dir:s,enterKeyHint:S?"enter":"send",autoCapitalize:"sentences","aria-label":"Composer editor","data-focused":v||void 0,"data-disabled":E||void 0,...H,...l,readOnly:E,disabled:E,onKeyDown:B,onFocus:L,onBlur:j,renderElement:k,renderLeaf:ComposerEditorLeaf,renderPlaceholder:ComposerEditorPlaceholder}),React__default.default.createElement(ComposerEditorMentionSuggestionsWrapper,{dir:s,mentionDraft:S,selectedUserId:U,setSelectedUserId:V,userIds:T,id:F,itemId:P,onItemSelect:M,MentionSuggestions:w}))})),MAX_ATTACHMENTS=10,MAX_ATTACHMENT_SIZE=1073741824,ComposerForm=React.forwardRef((({children:e,onSubmit:t,onComposerSubmit:n,defaultAttachments:r=[],pasteFilesAsAttachments:o,preventUnsavedChanges:a=!0,disabled:i,asChild:s,...l},c)=>{const u=s?Slot:"form",d=_useRoom(),[f,p]=React.useState(!0),[m,h]=React.useState(!1),[_,g]=React.useState(!1),v=MAX_ATTACHMENTS,E=MAX_ATTACHMENT_SIZE,{attachments:y,isUploadingAttachments:b,addAttachments:C,removeAttachment:R,clearAttachments:w}=useComposerAttachmentsManager(r,{maxFileSize:E}),S=y.length,D=S>=v,T=React.useMemo((()=>{const e=d.getSelf();return m||i||!(e?.canComment??!0)}),[m,i,d]),O=React.useMemo((()=>!f&&!b),[f,b]),A=React.useRef(null),I=useRefs(c,A),x=React.useRef(null),N=useSyncSource(),F=!!a&&(!f||b||y.length>0);React.useEffect((()=>{N?.setSyncStatus(F?"has-local-changes":"synchronized")}),[N,F]);const P=React.useCallback((e=>{if(!e.length)return;const t=Math.max(0,v-S);e.splice(t);const n=e.map((e=>d.prepareAttachment(e)));C(n)}),[C,v,S,d]),k=React.useRef(P);React.useEffect((()=>{k.current=P}),[P]);const $=React.useCallback((e=>{k.current(e)}),[]),M=useInitial((()=>createComposerEditor({createAttachments:$,pasteFilesAsAttachments:o}))),B=React.useCallback((e=>{p(isEmpty(M,e))}),[M]),L=React.useCallback((()=>{O&&requestAnimationFrame((()=>{A.current&&requestSubmit(A.current)}))}),[O]),j=React.useCallback((()=>{Transforms.delete(M,{at:{anchor:Editor.start(M,[]),focus:Editor.end(M,[])}})}),[M]),U=React.useCallback((()=>{Transforms.select(M,{anchor:Editor.end(M,[]),focus:Editor.end(M,[])})}),[M]),V=React.useCallback(((e=!0)=>{ReactEditor.isFocused(M)||(Transforms.select(M,e||!M.selection?Editor.end(M,[]):M.selection),ReactEditor.focus(M))}),[M]),H=React.useCallback((()=>{ReactEditor.blur(M)}),[M]),z=React.useCallback((()=>{i||(V(),insertMentionCharacter(M))}),[i,M,V]),K=React.useCallback((e=>{i||(V(!1),insertText(M,e))}),[i,M,V]),W=React.useCallback((()=>{i||x.current&&x.current.click()}),[i]),G=React.useCallback((e=>{i||e.target.files&&(P(Array.from(e.target.files)),e.target.value="")}),[P,i]),q=React.useCallback((()=>{j(),H(),w(),h(!1)}),[H,j,w]),Y=React.useCallback((e=>{if(i)return;if(isEmpty(M,M.children))return void e.preventDefault();if(t?.(e),!n||e.isDefaultPrevented())return void e.preventDefault();const r=composerBodyToCommentBody(M.children),o=y.filter((e=>"attachment"===e.type||"localAttachment"===e.type&&"uploaded"===e.status)).map((e=>({id:e.id,type:"attachment",mimeType:e.mimeType,size:e.size,name:e.name}))),a=n({body:r,attachments:o},e);e.preventDefault(),a?(h(!0),a.then(q)):q()}),[i,M,y,n,t,q]),J=React.useCallback((e=>{e.stopPropagation()}),[]);return React__default.default.createElement(ComposerEditorContext.Provider,{value:{editor:M,validate:B,setFocused:g}},React__default.default.createElement(ComposerAttachmentsContext.Provider,{value:{createAttachments:P,isUploadingAttachments:b,hasMaxAttachments:D,maxAttachments:v,maxAttachmentSize:E}},React__default.default.createElement(ComposerContext.Provider,{value:{isDisabled:T,isFocused:_,isEmpty:f,canSubmit:O,submit:L,clear:j,select:U,focus:V,blur:H,createMention:z,insertText:K,attachments:y,attachFiles:W,removeAttachment:R}},React__default.default.createElement(u,{...l,onSubmit:Y,ref:I},React__default.default.createElement("input",{type:"file",multiple:!0,ref:x,onChange:G,onClick:J,tabIndex:-1,style:{display:"none"}}),React__default.default.createElement(Slottable,null,e)))))})),ComposerSubmit=React.forwardRef((({children:e,disabled:t,asChild:n,...r},o)=>{const a=n?Slot:"button",{canSubmit:i,isDisabled:s}=useComposer(),l=s||t||!i;return React__default.default.createElement(a,{type:"submit",...r,ref:o,disabled:l},e)})),ComposerAttachFiles=React.forwardRef((({children:e,onClick:t,disabled:n,asChild:r,...o},a)=>{const i=r?Slot:"button",{hasMaxAttachments:s}=useComposerAttachmentsContext(),{isDisabled:l,attachFiles:c}=useComposer(),u=l||s||n,d=React.useCallback((e=>{t?.(e),e.isDefaultPrevented()||c()}),[c,t]);return React__default.default.createElement(i,{type:"button",...o,onClick:d,ref:a,disabled:u},e)}));function capitalize$1(e){return e.charAt(0).toUpperCase()+e.slice(1)}function memoize(e){const t=new Map;return(...n)=>{const r=JSON.stringify(n.map((e=>stringify(e))));if(t.has(r))return t.get(r);const o=e(...n);return t.set(r,o),o}}React.forwardRef((({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:r,disabled:o,asChild:a,...i},s)=>{const l=a?Slot:"div",{isDisabled:c}=useComposer(),u=c||o,[,d]=useComposerAttachmentsDropArea({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:r,disabled:u});return React__default.default.createElement(l,{...d,"data-disabled":u?"":void 0,...i,ref:s})}));const dateTimeFormat=memoize(((...e)=>new Intl.DateTimeFormat(...e))),relativeTimeFormat=memoize(((...e)=>new Intl.RelativeTimeFormat(...e))),listFormat=memoize(((...e)=>new Intl.ListFormat(...e))),numberFormat=memoize(((...e)=>new Intl.NumberFormat(...e)));function useInterval(e,t){const n=React.useRef(e);React.useEffect((()=>{n.current=e}),[e]),React.useEffect((()=>{if(!t&&0!==t)return;const e=setInterval((()=>{!1===n.current()&&clearInterval(e)}),t);return()=>clearInterval(e)}),[t])}function useRerender(){const[e,t]=React.useReducer((e=>e+1),0);return[t,e]}const DYNAMIC_DATE_THRESHOLD=2592e5,RENDER_INTERVAL=3e4,relativeUnits={seconds:60,minutes:60,hours:24,days:7,weeks:4.34524,months:12};function formatVerboseDate(e,t){return capitalize$1(dateTimeFormat(t,{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric"}).format(e))}function formatShortDate(e,t){return capitalize$1(dateTimeFormat(t,{month:"short",day:"numeric"}).format(e))}const localesWithBrokenNarrowRelativeFormatting=["br","fr","nb","nn","no","ro","sv"];function formatRelativeDate(e,t){let n;if(t)n=t;else{const e=relativeTimeFormat();n=e.resolvedOptions().locale}const r=localesWithBrokenNarrowRelativeFormatting.some((e=>n===e||n.startsWith(`${e}-`))),o=relativeTimeFormat(n,{style:r?"short":"narrow",numeric:"auto"});let a=(e.getTime()-Date.now())/1e3;if(a>-relativeUnits.seconds&&a<relativeUnits.seconds)return o.format(0,"seconds");for(const[e,t]of Object.entries(relativeUnits)){if(Math.abs(a)<t)return o.format(Math.round(a),e);a/=t}return capitalize$1(o.format(Math.round(a),"years"))}function formatDynamicDate(e,t){return e.getTime()>Date.now()-DYNAMIC_DATE_THRESHOLD?formatRelativeDate(e,t):formatShortDate(e,t)}const Timestamp=React.forwardRef((({date:e,locale:t,children:n=formatDynamicDate,title:r=formatVerboseDate,dateTime:o,interval:a=RENDER_INTERVAL,asChild:i,...s},l)=>{const c=i?Slot:"time",[u,d]=useRerender(),f=React.useMemo((()=>new Date(e)),[e]),p=React.useMemo((()=>f.toISOString()),[f]),m=React.useMemo((()=>"function"==typeof r?r(f,t):r),[r,f,d]),h=React.useMemo((()=>"function"==typeof n?n(f,t):n),[n,f,d]);return useInterval(u,a),React__default.default.createElement(c,{...s,ref:l,dateTime:o??p,title:m},h)}));function useCurrentUserIdFromRoom(){return _useSelf((e=>"string"==typeof e.id?e.id:null))}function useCurrentUserIdFromClient_withClient(e){const t=e[kInternal].currentUserIdStore;return shim.exports.useSyncExternalStore(t.subscribe,t.get,t.get)}function useCurrentUserId(){const e=React.useContext(ClientContext);return null!==React.useContext(RoomContext)?useCurrentUserIdFromRoom():null!==e?useCurrentUserIdFromClient_withClient(e):void raise("LiveblocksProvider or RoomProvider are missing from the React tree.")}function download(e,t){const n=document.createElement("a");n.href=e,n.download=t,n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)}let intersectionObserver;const intersectionCallbacks=new WeakMap;function observe(e,t){intersectionObserver||(intersectionObserver=new IntersectionObserver((e=>{for(const t of e){const e=intersectionCallbacks.get(t.target);e?.(t)}}))),intersectionCallbacks.set(e,t),intersectionObserver.observe(e)}function unobserve(e){intersectionCallbacks.delete(e),intersectionObserver?.unobserve(e)}function useVisibleCallback(e,t,n){const r=n?.enabled??!0,o=useLatest(t);React.useEffect((()=>{const t=e.current;if(t)return r?observe(t,(e=>{e.isIntersecting&&o.current()})):unobserve(t),()=>{unobserve(t)}}),[r])}function subscribe$1(e){return window.addEventListener("blur",e),window.addEventListener("focus",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("focus",e)}}function getSnapshot(){return document.hasFocus()}function getServerSnapshot(){return!0}function useWindowFocus(){return shim.exports.useSyncExternalStore(subscribe$1,getSnapshot,getServerSnapshot)}function AttachmentIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"m14.077 11.737-3.723 3.62c-1.55 1.507-4.128 1.507-5.678 0-1.543-1.5-1.543-4.02 0-5.52l5.731-5.573c1.034-1.006 2.754-1.007 3.789-.003 1.03 1 1.032 2.682.003 3.684l-5.744 5.572a1.377 1.377 0 0 1-1.893 0 1.283 1.283 0 0 1-.392-.92c0-.345.14-.676.392-.92L10.348 8"}))}function EmojiIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"M10 17a7 7 0 1 0 0-14 7 7 0 0 0 0 14Z"}),React__default.default.createElement("path",{d:"M7.5 11.5S8.25 13 10 13s2.5-1.5 2.5-1.5M8 8h.007"}),React__default.default.createElement("path",{d:"M12 8h.007"}),React__default.default.createElement("circle",{cx:8,cy:8,r:.25}),React__default.default.createElement("circle",{cx:12,cy:8,r:.25}))}function MentionIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"M10 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"}),React__default.default.createElement("path",{d:"M13 7v3.7c0 1.105.855 2.1 1.9 2.1a2.12 2.12 0 0 0 2.1-2.1V10a7 7 0 1 0-2.8 5.6"}))}function SendIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"m5 16 12-6L5 4l2 6-2 6ZM7 10h10"}))}function useControllableState(e,t,n){const[r,o]=React.useState(n),a=void 0!==e,i=React.useRef(a);React.useEffect((()=>{i.current=a}),[a]);return[a?e:r,React.useCallback((e=>(a||o(e),t?.(e))),[a,t])]}function SpinnerIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"M3 10a7 7 0 0 1 7-7",className:"lb-icon-spinner"}))}function WarningIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"m3.794 13.526 5.326-9.89a1 1 0 0 1 1.76 0l5.326 9.89a1 1 0 0 1-.88 1.474H4.674a1 1 0 0 1-.88-1.474ZM10 7.5v2m0 2.5h.007"}),React__default.default.createElement("circle",{cx:10,cy:12,r:.25}))}const PUBLISH=0,SUBSCRIBE=1,RESET=2,VALUE=4;function compose(e,t){return n=>e(t(n))}function thrush(e,t){return t(e)}function curry2to1(e,t){return n=>e(t,n)}function curry1to0(e,t){return()=>e(t)}function tap(e,t){return t(e),e}function tup(...e){return e}function call(e){e()}function always(e){return()=>e}function joinProc(...e){return()=>{e.map(call)}}function isDefined(e){return void 0!==e}function noop$1(){}function subscribe(e,t){return e(SUBSCRIBE,t)}function publish(e,t){e(PUBLISH,t)}function reset(e){e(RESET)}function getValue(e){return e(VALUE)}function connect(e,t){return subscribe(e,curry2to1(t,PUBLISH))}function handleNext(e,t){const n=e(SUBSCRIBE,(e=>{n(),t(e)}));return n}function stream(){const e=[];return(t,n)=>{switch(t){case RESET:return void e.splice(0,e.length);case SUBSCRIBE:return e.push(n),()=>{const t=e.indexOf(n);t>-1&&e.splice(t,1)};case PUBLISH:return void e.slice().forEach((e=>{e(n)}));default:throw new Error(`unrecognized action ${t}`)}}}function statefulStream(e){let t=e;const n=stream();return(e,r)=>{switch(e){case SUBSCRIBE:r(t);break;case PUBLISH:t=r;break;case VALUE:return t}return n(e,r)}}function eventHandler(e){let t,n;const r=()=>t&&t();return function(o,a){switch(o){case SUBSCRIBE:if(a){if(n===a)return;return r(),n=a,t=subscribe(e,a),t}return r(),noop$1;case RESET:return r(),void(n=null);default:throw new Error(`unrecognized action ${o}`)}}}function streamFromEmitter(e){return tap(stream(),(t=>connect(e,t)))}function statefulStreamFromEmitter(e,t){return tap(statefulStream(t),(t=>connect(e,t)))}function combineOperators(...e){return t=>e.reduceRight(thrush,t)}function pipe(e,...t){const n=combineOperators(...t);return(t,r)=>{switch(t){case SUBSCRIBE:return subscribe(e,n(r));case RESET:return void reset(e)}}}function defaultComparator(e,t){return e===t}function distinctUntilChanged(e=defaultComparator){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function filter(e){return t=>n=>{e(n)&&t(n)}}function map(e){return t=>compose(t,e)}function mapTo(e){return t=>()=>t(e)}function scan(e,t){return n=>r=>n(t=e(t,r))}function skip(e){return t=>n=>{e>0?e--:t(n)}}function throttleTime(e){let t,n=null;return r=>o=>{n=o,t||(t=setTimeout((()=>{t=void 0,r(n)}),e))}}function debounceTime(e){let t,n;return r=>o=>{t=o,n&&clearTimeout(n),n=setTimeout((()=>{r(t)}),e)}}function withLatestFrom(...e){const t=new Array(e.length);let n=0,r=null;const o=Math.pow(2,e.length)-1;return e.forEach(((e,a)=>{const i=Math.pow(2,a);subscribe(e,(e=>{const s=n;n|=i,t[a]=e,s!==o&&n===o&&r&&(r(),r=null)}))})),e=>a=>{const i=()=>e([a].concat(t));n===o?i():r=i}}function merge(...e){return function(t,n){switch(t){case SUBSCRIBE:return joinProc(...e.map((e=>subscribe(e,n))));case RESET:return;default:throw new Error(`unrecognized action ${t}`)}}}function duc(e,t=defaultComparator){return pipe(e,distinctUntilChanged(t))}function combineLatest(...e){const t=stream(),n=new Array(e.length);let r=0;const o=Math.pow(2,e.length)-1;return e.forEach(((e,a)=>{const i=Math.pow(2,a);subscribe(e,(e=>{n[a]=e,r|=i,r===o&&publish(t,n)}))})),function(e,a){switch(e){case SUBSCRIBE:return r===o&&a(n),subscribe(t,a);case RESET:return reset(t);default:throw new Error(`unrecognized action ${e}`)}}}function system(e,t=[],{singleton:n}={singleton:!0}){return{id:id(),constructor:e,dependencies:t,singleton:n}}const id=()=>Symbol();function init(e){const t=new Map,n=({id:e,constructor:r,dependencies:o,singleton:a})=>{if(a&&t.has(e))return t.get(e);const i=r(o.map((e=>n(e))));return a&&t.set(e,i),i};return n(e)}function omit(e,t){const n={},r={};let o=0;const a=e.length;for(;o<a;)r[e[o]]=1,o+=1;for(const e in t)r.hasOwnProperty(e)||(n[e]=t[e]);return n}const useIsomorphicLayoutEffect$1="undefined"!=typeof document?React__default.default.useLayoutEffect:React__default.default.useEffect;function systemToComponent(e,t,n){const r=Object.keys(t.required||{}),o=Object.keys(t.optional||{}),a=Object.keys(t.methods||{}),i=Object.keys(t.events||{}),s=React__default.default.createContext({});function l(e,n){e.propsReady&&publish(e.propsReady,!1);for(const o of r){publish(e[t.required[o]],n[o])}for(const r of o)if(r in n){publish(e[t.optional[r]],n[r])}e.propsReady&&publish(e.propsReady,!0)}function c(e){return i.reduce(((n,r)=>(n[r]=eventHandler(e[t.events[r]]),n)),{})}const u=React__default.default.forwardRef(((u,d)=>{const{children:f,...p}=u,[m]=React__default.default.useState((()=>tap(init(e),(e=>l(e,p))))),[h]=React__default.default.useState(curry1to0(c,m));useIsomorphicLayoutEffect$1((()=>{for(const e of i)e in p&&subscribe(h[e],p[e]);return()=>{Object.values(h).map(reset)}}),[p,h,m]),useIsomorphicLayoutEffect$1((()=>{l(m,p)})),React__default.default.useImperativeHandle(d,always(function(e){return a.reduce(((n,r)=>(n[r]=n=>{publish(e[t.methods[r]],n)},n)),{})}(m)));const _=n;return jsxRuntime.exports.jsx(s.Provider,{value:m,children:n?jsxRuntime.exports.jsx(_,{...omit([...r,...o,...i],p),children:f}):f})})),d=React__default.default.version.startsWith("18")?e=>{const t=React__default.default.useContext(s)[e],n=React__default.default.useCallback((e=>subscribe(t,e)),[t]);return React__default.default.useSyncExternalStore(n,(()=>getValue(t)),(()=>getValue(t)))}:e=>{const t=React__default.default.useContext(s)[e],[n,r]=React__default.default.useState(curry1to0(getValue,t));return useIsomorphicLayoutEffect$1((()=>subscribe(t,(e=>{e!==n&&r(always(e))}))),[t,n]),n};return{Component:u,usePublisher:e=>React__default.default.useCallback(curry2to1(publish,React__default.default.useContext(s)[e]),[e]),useEmitterValue:d,useEmitter:(e,t)=>{const n=React__default.default.useContext(s)[e];useIsomorphicLayoutEffect$1((()=>subscribe(n,t)),[t,n])}}}const useIsomorphicLayoutEffect$2="undefined"!=typeof document?React__default.default.useLayoutEffect:React__default.default.useEffect;var LogLevel=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(LogLevel||{});const CONSOLE_METHOD_MAP={0:"debug",1:"log",2:"warn",3:"error"},getGlobalThis=()=>"undefined"==typeof globalThis?window:globalThis,loggerSystem=system((()=>{const e=statefulStream(3);return{log:statefulStream(((t,n,r=1)=>{var o;r>=(null!=(o=getGlobalThis().VIRTUOSO_LOG_LEVEL)?o:getValue(e))&&console[CONSOLE_METHOD_MAP[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)})),logLevel:e}}),[],{singleton:!0});function useSizeWithElRef(e,t,n){const r=React__default.default.useRef(null);let o=e=>{};if("undefined"!=typeof ResizeObserver){const a=React__default.default.useMemo((()=>new ResizeObserver((t=>{const r=()=>{const n=t[0].target;null!==n.offsetParent&&e(n)};n?r():requestAnimationFrame(r)}))),[e]);o=e=>{e&&t?(a.observe(e),r.current=e):(r.current&&a.unobserve(r.current),r.current=null)}}return{ref:r,callbackRef:o}}function useSize$1(e,t,n){return useSizeWithElRef(e,t,n).callbackRef}function useChangedListContentsSizes(e,t,n,r,o,a,i,s,l){return useSizeWithElRef(React__default.default.useCallback((n=>{const l=getChangedChildSizes(n.children,t,s?"offsetWidth":"offsetHeight",o);let c=n.parentElement;for(;!c.dataset.virtuosoScroller;)c=c.parentElement;const u="window"===c.lastElementChild.dataset.viewportType,d=i?s?i.scrollLeft:i.scrollTop:u?s?window.pageXOffset||document.documentElement.scrollLeft:window.pageYOffset||document.documentElement.scrollTop:s?c.scrollLeft:c.scrollTop,f=i?s?i.scrollWidth:i.scrollHeight:u?s?document.documentElement.scrollWidth:document.documentElement.scrollHeight:s?c.scrollWidth:c.scrollHeight,p=i?s?i.offsetWidth:i.offsetHeight:u?s?window.innerWidth:window.innerHeight:s?c.offsetWidth:c.offsetHeight;r({scrollTop:Math.max(d,0),scrollHeight:f,viewportHeight:p}),null==a||a(s?resolveGapValue$1("column-gap",getComputedStyle(n).columnGap,o):resolveGapValue$1("row-gap",getComputedStyle(n).rowGap,o)),null!==l&&e(l)}),[e,t,o,a,i,r]),n,l)}function getChangedChildSizes(e,t,n,r){const o=e.length;if(0===o)return null;const a=[];for(let i=0;i<o;i++){const o=e.item(i);if(!o||void 0===o.dataset.index)continue;const s=parseInt(o.dataset.index),l=parseFloat(o.dataset.knownSize),c=t(o,n);if(0===c&&r("Zero-sized element, this should not happen",{child:o},LogLevel.ERROR),c===l)continue;const u=a[a.length-1];0===a.length||u.size!==c||u.endIndex!==s-1?a.push({startIndex:s,endIndex:s,size:c}):a[a.length-1].endIndex++}return a}function resolveGapValue$1(e,t,n){return"normal"===t||(null==t?void 0:t.endsWith("px"))||n(`${e} was not resolved to pixel value correctly`,t,LogLevel.WARN),"normal"===t?0:parseInt(null!=t?t:"0",10)}function correctItemSize(e,t){return Math.round(e.getBoundingClientRect()[t])}function approximatelyEqual(e,t){return Math.abs(e-t)<1.01}function useScrollTop(e,t,n,r=noop$1,o,a){const i=React__default.default.useRef(null),s=React__default.default.useRef(null),l=React__default.default.useRef(null),c=React__default.default.useCallback((n=>{const r=n.target,o=r===window||r===document,i=a?o?window.pageXOffset||document.documentElement.scrollLeft:r.scrollLeft:o?window.pageYOffset||document.documentElement.scrollTop:r.scrollTop,c=a?o?document.documentElement.scrollWidth:r.scrollWidth:o?document.documentElement.scrollHeight:r.scrollHeight,u=a?o?window.innerWidth:r.offsetWidth:o?window.innerHeight:r.offsetHeight,d=()=>{e({scrollTop:Math.max(i,0),scrollHeight:c,viewportHeight:u})};n.suppressFlushSync?d():ReactDOM__default.default.flushSync(d),null!==s.current&&(i===s.current||i<=0||i===c-u)&&(s.current=null,t(!0),l.current&&(clearTimeout(l.current),l.current=null))}),[e,t]);return React__default.default.useEffect((()=>{const e=o||i.current;return r(o||i.current),c({target:e,suppressFlushSync:!0}),e.addEventListener("scroll",c,{passive:!0}),()=>{r(null),e.removeEventListener("scroll",c)}}),[i,c,n,r,o]),{scrollerRef:i,scrollByCallback:function(e){a&&(e={left:e.top,behavior:e.behavior}),i.current.scrollBy(e)},scrollToCallback:function(n){const r=i.current;if(!r||(a?"offsetWidth"in r&&0===r.offsetWidth:"offsetHeight"in r&&0===r.offsetHeight))return;const o="smooth"===n.behavior;let c,u,d;r===window?(u=Math.max(correctItemSize(document.documentElement,a?"width":"height"),a?document.documentElement.scrollWidth:document.documentElement.scrollHeight),c=a?window.innerWidth:window.innerHeight,d=a?document.documentElement.scrollLeft:document.documentElement.scrollTop):(u=r[a?"scrollWidth":"scrollHeight"],c=correctItemSize(r,a?"width":"height"),d=r[a?"scrollLeft":"scrollTop"]);const f=u-c;if(n.top=Math.ceil(Math.max(Math.min(f,n.top),0)),approximatelyEqual(c,u)||n.top===d)return e({scrollTop:d,scrollHeight:u,viewportHeight:c}),void(o&&t(!0));o?(s.current=n.top,l.current&&clearTimeout(l.current),l.current=setTimeout((()=>{l.current=null,s.current=null,t(!0)}),1e3)):s.current=null,a&&(n={left:n.top,behavior:n.behavior}),r.scrollTo(n)}}}const domIOSystem=system((()=>{const e=stream(),t=stream(),n=statefulStream(0),r=stream(),o=statefulStream(0),a=stream(),i=stream(),s=statefulStream(0),l=statefulStream(0),c=statefulStream(0),u=statefulStream(0),d=stream(),f=stream(),p=statefulStream(!1),m=statefulStream(!1),h=statefulStream(!1);return connect(pipe(e,map((({scrollTop:e})=>e))),t),connect(pipe(e,map((({scrollHeight:e})=>e))),i),connect(t,o),{scrollContainerState:e,scrollTop:t,viewportHeight:a,headerHeight:s,fixedHeaderHeight:l,fixedFooterHeight:c,footerHeight:u,scrollHeight:i,smoothScrollTargetReached:r,horizontalDirection:m,skipAnimationFrameInResizeObserver:h,scrollTo:d,scrollBy:f,statefulScrollTop:o,deviation:n,scrollingInProgress:p}}),[],{singleton:!0}),NIL_NODE={lvl:0};function newAANode(e,t,n,r=NIL_NODE,o=NIL_NODE){return{k:e,v:t,lvl:n,l:r,r:o}}function empty(e){return e===NIL_NODE}function newTree(){return NIL_NODE}function remove(e,t){if(empty(e))return NIL_NODE;const{k:n,l:r,r:o}=e;if(t===n){if(empty(r))return o;if(empty(o))return r;{const[t,n]=last(r);return adjust(clone(e,{k:t,v:n,l:deleteLast(r)}))}}return adjust(clone(e,t<n?{l:remove(r,t)}:{r:remove(o,t)}))}function find(e,t){if(!empty(e))return t===e.k?e.v:t<e.k?find(e.l,t):find(e.r,t)}function findMaxKeyValue(e,t,n="k"){if(empty(e))return[-1/0,void 0];if(Number(e[n])===t)return[e.k,e.v];if(Number(e[n])<t){const r=findMaxKeyValue(e.r,t,n);return r[0]===-1/0?[e.k,e.v]:r}return findMaxKeyValue(e.l,t,n)}function insert(e,t,n){return empty(e)?newAANode(t,n,1):t===e.k?clone(e,{k:t,v:n}):t<e.k?rebalance(clone(e,{l:insert(e.l,t,n)})):rebalance(clone(e,{r:insert(e.r,t,n)}))}function walkWithin(e,t,n){if(empty(e))return[];const{k:r,v:o,l:a,r:i}=e;let s=[];return r>t&&(s=s.concat(walkWithin(a,t,n))),r>=t&&r<=n&&s.push({k:r,v:o}),r<=n&&(s=s.concat(walkWithin(i,t,n))),s}function walk(e){return empty(e)?[]:[...walk(e.l),{k:e.k,v:e.v},...walk(e.r)]}function last(e){return empty(e.r)?[e.k,e.v]:last(e.r)}function deleteLast(e){return empty(e.r)?e.l:adjust(clone(e,{r:deleteLast(e.r)}))}function clone(e,t){return newAANode(void 0!==t.k?t.k:e.k,void 0!==t.v?t.v:e.v,void 0!==t.lvl?t.lvl:e.lvl,void 0!==t.l?t.l:e.l,void 0!==t.r?t.r:e.r)}function isSingle(e){return empty(e)||e.lvl>e.r.lvl}function rebalance(e){return split(skew(e))}function adjust(e){const{l:t,r:n,lvl:r}=e;if(n.lvl>=r-1&&t.lvl>=r-1)return e;if(r>n.lvl+1){if(isSingle(t))return skew(clone(e,{lvl:r-1}));if(empty(t)||empty(t.r))throw new Error("Unexpected empty nodes");return clone(t.r,{l:clone(t,{r:t.r.l}),r:clone(e,{l:t.r.r,lvl:r-1}),lvl:r})}if(isSingle(e))return split(clone(e,{lvl:r-1}));if(empty(n)||empty(n.l))throw new Error("Unexpected empty nodes");{const t=n.l,o=isSingle(t)?n.lvl-1:n.lvl;return clone(t,{l:clone(e,{r:t.l,lvl:r-1}),r:split(clone(n,{l:t.r,lvl:o})),lvl:t.lvl+1})}}function rangesWithin(e,t,n){if(empty(e))return[];return toRanges(walkWithin(e,findMaxKeyValue(e,t)[0],n))}function arrayToRanges(e,t){const n=e.length;if(0===n)return[];let{index:r,value:o}=t(e[0]);const a=[];for(let i=1;i<n;i++){const{index:n,value:s}=t(e[i]);a.push({start:r,end:n-1,value:o}),r=n,o=s}return a.push({start:r,end:1/0,value:o}),a}function toRanges(e){return arrayToRanges(e,(({k:e,v:t})=>({index:e,value:t})))}function split(e){const{r:t,lvl:n}=e;return empty(t)||empty(t.r)||t.lvl!==n||t.r.lvl!==n?e:clone(t,{l:clone(e,{r:t.l}),lvl:n+1})}function skew(e){const{l:t}=e;return empty(t)||t.lvl!==e.lvl?e:clone(t,{r:clone(e,{l:t.r})})}function findIndexOfClosestSmallerOrEqual(e,t,n,r=0){let o=e.length-1;for(;r<=o;){const a=Math.floor((r+o)/2),i=n(e[a],t);if(0===i)return a;if(-1===i){if(o-r<2)return a-1;o=a-1}else{if(o===r)return a;r=a+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function findClosestSmallerOrEqual(e,t,n){return e[findIndexOfClosestSmallerOrEqual(e,t,n)]}function findRange(e,t,n,r){const o=findIndexOfClosestSmallerOrEqual(e,t,r),a=findIndexOfClosestSmallerOrEqual(e,n,r,o);return e.slice(o,a+1)}const recalcSystem=system((()=>({recalcInProgress:statefulStream(!1)})),[],{singleton:!0});function rangeIncludes(e){const{size:t,startIndex:n,endIndex:r}=e;return e=>e.start===n&&(e.end===r||e.end===1/0)&&e.value===t}function affectedGroupCount(e,t){let n=0,r=0;for(;n<e;)n+=t[r+1]-t[r]-1,r++;return r-(n===e?0:1)}function insertRanges(e,t){let n=empty(e)?0:1/0;for(const r of t){const{size:t,startIndex:o,endIndex:a}=r;if(n=Math.min(n,o),empty(e)){e=insert(e,0,t);continue}const i=rangesWithin(e,o-1,a+1);if(i.some(rangeIncludes(r)))continue;let s=!1,l=!1;for(const{start:n,end:r,value:o}of i)s?(a>=n||t===o)&&(e=remove(e,n)):(l=o!==t,s=!0),r>a&&a>=n&&o!==t&&(e=insert(e,a+1,o));l&&(e=insert(e,o,t))}return[e,n]}function initialSizeState(){return{offsetTree:[],sizeTree:newTree(),groupOffsetTree:newTree(),lastIndex:0,lastOffset:0,lastSize:0,groupIndices:[]}}function indexComparator({index:e},t){return t===e?0:t<e?-1:1}function offsetComparator({offset:e},t){return t===e?0:t<e?-1:1}function offsetPointParser(e){return{index:e.index,value:e}}function rangesWithinOffsets(e,t,n,r=0){return r>0&&(t=Math.max(t,findClosestSmallerOrEqual(e,r,indexComparator).offset)),arrayToRanges(findRange(e,t,n,offsetComparator),offsetPointParser)}function createOffsetTree(e,t,n,r){let o=e,a=0,i=0,s=0,l=0;if(0!==t){l=findIndexOfClosestSmallerOrEqual(o,t-1,indexComparator);s=o[l].offset;const e=findMaxKeyValue(n,t-1);a=e[0],i=e[1],o.length&&o[l].size===findMaxKeyValue(n,t)[1]&&(l-=1),o=o.slice(0,l+1)}else o=[];for(const{start:e,value:l}of rangesWithin(n,t,1/0)){const t=e-a,n=t*i+s+t*r;o.push({offset:n,size:l,index:e}),a=e,s=n,i=l}return{offsetTree:o,lastIndex:a,lastOffset:s,lastSize:i}}function sizeStateReducer(e,[t,n,r,o]){t.length>0&&r("received item sizes",t,LogLevel.DEBUG);const a=e.sizeTree;let i=a,s=0;if(n.length>0&&empty(a)&&2===t.length){const e=t[0].size,r=t[1].size;i=n.reduce(((t,n)=>insert(insert(t,n,e),n+1,r)),i)}else[i,s]=insertRanges(i,t);if(i===a)return e;const{offsetTree:l,lastIndex:c,lastSize:u,lastOffset:d}=createOffsetTree(e.offsetTree,s,i,o);return{sizeTree:i,offsetTree:l,lastIndex:c,lastOffset:d,lastSize:u,groupOffsetTree:n.reduce(((e,t)=>insert(e,t,offsetOf(t,l,o))),newTree()),groupIndices:n}}function offsetOf(e,t,n){if(0===t.length)return 0;const{offset:r,index:o,size:a}=findClosestSmallerOrEqual(t,e,indexComparator),i=e-o,s=a*i+(i-1)*n+r;return s>0?s+n:s}function isGroupLocation(e){return void 0!==e.groupIndex}function originalIndexFromLocation(e,t,n){if(isGroupLocation(e))return t.groupIndices[e.groupIndex]+1;{let r=originalIndexFromItemIndex("LAST"===e.index?n:e.index,t);return r=Math.max(0,r,Math.min(n,r)),r}}function originalIndexFromItemIndex(e,t){if(!hasGroups(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function hasGroups(e){return!empty(e.groupOffsetTree)}function sizeTreeToRanges(e){return walk(e).map((({k:e,v:t},n,r)=>{const o=r[n+1];return{startIndex:e,endIndex:o?o.k-1:1/0,size:t}}))}const SIZE_MAP={offsetHeight:"height",offsetWidth:"width"},sizeSystem=system((([{log:e},{recalcInProgress:t}])=>{const n=stream(),r=stream(),o=statefulStreamFromEmitter(r,0),a=stream(),i=stream(),s=statefulStream(0),l=statefulStream([]),c=statefulStream(void 0),u=statefulStream(void 0),d=statefulStream(((e,t)=>correctItemSize(e,SIZE_MAP[t]))),f=statefulStream(void 0),p=statefulStream(0),m=initialSizeState(),h=statefulStreamFromEmitter(pipe(n,withLatestFrom(l,e,p),scan(sizeStateReducer,m),distinctUntilChanged()),m),_=statefulStreamFromEmitter(pipe(l,distinctUntilChanged(),scan(((e,t)=>({prev:e.current,current:t})),{prev:[],current:[]}),map((({prev:e})=>e))),[]);connect(pipe(l,filter((e=>e.length>0)),withLatestFrom(h,p),map((([e,t,n])=>{const r=e.reduce(((e,r,o)=>insert(e,r,offsetOf(r,t.offsetTree,n)||o)),newTree());return{...t,groupIndices:e,groupOffsetTree:r}}))),h),connect(pipe(r,withLatestFrom(h),filter((([e,{lastIndex:t}])=>e<t)),map((([e,{lastIndex:t,lastSize:n}])=>[{startIndex:e,endIndex:t,size:n}]))),n),connect(c,u);const g=statefulStreamFromEmitter(pipe(c,map((e=>void 0===e))),!0);connect(pipe(u,filter((e=>void 0!==e&&empty(getValue(h).sizeTree))),map((e=>[{startIndex:0,endIndex:0,size:e}]))),n);const v=streamFromEmitter(pipe(n,withLatestFrom(h),scan((({sizes:e},[t,n])=>({changed:n!==e,sizes:n})),{changed:!1,sizes:m}),map((e=>e.changed))));subscribe(pipe(s,scan(((e,t)=>({diff:e.prev-t,prev:t})),{diff:0,prev:0}),map((e=>e.diff))),(e=>{const{groupIndices:n}=getValue(h);if(e>0)publish(t,!0),publish(a,e+affectedGroupCount(e,n));else if(e<0){const t=getValue(_);t.length>0&&(e-=affectedGroupCount(-e,t)),publish(i,e)}})),subscribe(pipe(s,withLatestFrom(e)),(([e,t])=>{e<0&&t("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},LogLevel.ERROR)}));const E=streamFromEmitter(a);connect(pipe(a,withLatestFrom(h),map((([e,t])=>{const n=t.groupIndices.length>0,r=[],o=t.lastSize;if(n){const n=find(t.sizeTree,0);let a=0,i=0;for(;a<e;){const e=t.groupIndices[i],s=t.groupIndices.length===i+1?1/0:t.groupIndices[i+1]-e-1;r.push({startIndex:e,endIndex:e,size:n}),r.push({startIndex:e+1,endIndex:e+1+s-1,size:o}),i++,a+=s+1}const s=walk(t.sizeTree);return a!==e&&s.shift(),s.reduce(((t,{k:n,v:r})=>{let o=t.ranges;return 0!==t.prevSize&&(o=[...t.ranges,{startIndex:t.prevIndex,endIndex:n+e-1,size:t.prevSize}]),{ranges:o,prevIndex:n+e,prevSize:r}}),{ranges:r,prevIndex:e,prevSize:0}).ranges}return walk(t.sizeTree).reduce(((t,{k:n,v:r})=>({ranges:[...t.ranges,{startIndex:t.prevIndex,endIndex:n+e-1,size:t.prevSize}],prevIndex:n+e,prevSize:r})),{ranges:[],prevIndex:0,prevSize:o}).ranges}))),n);const y=streamFromEmitter(pipe(i,withLatestFrom(h,p),map((([e,{offsetTree:t},n])=>offsetOf(-e,t,n)))));return connect(pipe(i,withLatestFrom(h,p),map((([e,t,n])=>{if(t.groupIndices.length>0){if(empty(t.sizeTree))return t;let r=newTree();const o=getValue(_);let a=0,i=0,s=0;for(;a<-e;){s=o[i];const e=o[i+1]-s-1;i++,a+=e+1}r=walk(t.sizeTree).reduce(((t,{k:n,v:r})=>insert(t,Math.max(0,n+e),r)),r);if(a!==-e){r=insert(r,0,find(t.sizeTree,s));r=insert(r,1,findMaxKeyValue(t.sizeTree,1-e)[1])}return{...t,sizeTree:r,...createOffsetTree(t.offsetTree,0,r,n)}}{const r=walk(t.sizeTree).reduce(((t,{k:n,v:r})=>insert(t,Math.max(0,n+e),r)),newTree());return{...t,sizeTree:r,...createOffsetTree(t.offsetTree,0,r,n)}}}))),h),{data:f,totalCount:r,sizeRanges:n,groupIndices:l,defaultItemSize:u,fixedItemSize:c,unshiftWith:a,shiftWith:i,shiftWithOffset:y,beforeUnshiftWith:E,firstItemIndex:s,gap:p,sizes:h,listRefresh:v,statefulTotalCount:o,trackItemSizes:g,itemSize:d}}),tup(loggerSystem,recalcSystem),{singleton:!0}),SUPPORTS_SCROLL_TO_OPTIONS="undefined"!=typeof document&&"scrollBehavior"in document.documentElement.style;function normalizeIndexLocation(e){const t="number"==typeof e?{index:e}:e;return t.align||(t.align="start"),t.behavior&&SUPPORTS_SCROLL_TO_OPTIONS||(t.behavior="auto"),t.offset||(t.offset=0),t}const scrollToIndexSystem=system((([{sizes:e,totalCount:t,listRefresh:n,gap:r},{scrollingInProgress:o,viewportHeight:a,scrollTo:i,smoothScrollTargetReached:s,headerHeight:l,footerHeight:c,fixedHeaderHeight:u,fixedFooterHeight:d},{log:f}])=>{const p=stream(),m=stream(),h=statefulStream(0);let _=null,g=null,v=null;function E(){_&&(_(),_=null),v&&(v(),v=null),g&&(clearTimeout(g),g=null),publish(o,!1)}return connect(pipe(p,withLatestFrom(e,a,t,h,l,c,f),withLatestFrom(r,u,d),map((([[e,t,r,a,i,l,c,u],d,f,h])=>{const y=normalizeIndexLocation(e),{align:b,behavior:C,offset:R}=y,w=a-1,S=originalIndexFromLocation(y,t,w);let D=offsetOf(S,t.offsetTree,d)+l;"end"===b?(D+=f+findMaxKeyValue(t.sizeTree,S)[1]-r+h,S===w&&(D+=c)):"center"===b?D+=(f+findMaxKeyValue(t.sizeTree,S)[1]-r+h)/2:D-=i,R&&(D+=R);const T=t=>{E(),t?(u("retrying to scroll to",{location:e},LogLevel.DEBUG),publish(p,e)):(publish(m,!0),u("list did not change, scroll successful",{},LogLevel.DEBUG))};if(E(),"smooth"===C){let e=!1;v=subscribe(n,(t=>{e=e||t})),_=handleNext(s,(()=>{T(e)}))}else _=handleNext(pipe(n,watchChangesFor(150)),T);return g=setTimeout((()=>{E()}),1200),publish(o,!0),u("scrolling from index to",{index:S,top:D,behavior:C},LogLevel.DEBUG),{top:D,behavior:C}}))),i),{scrollToIndex:p,scrollTargetReached:m,topListHeight:h}}),tup(sizeSystem,domIOSystem,loggerSystem),{singleton:!0});function watchChangesFor(e){return t=>{const n=setTimeout((()=>{t(!1)}),e);return e=>{e&&(t(!0),clearTimeout(n))}}}const UP="up",DOWN="down",NONE$1="none",INITIAL_BOTTOM_STATE={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollTop:0,viewportHeight:0,scrollHeight:0}},DEFAULT_AT_TOP_THRESHOLD=0,stateFlagsSystem=system((([{scrollContainerState:e,scrollTop:t,viewportHeight:n,headerHeight:r,footerHeight:o,scrollBy:a}])=>{const i=statefulStream(!1),s=statefulStream(!0),l=stream(),c=stream(),u=statefulStream(4),d=statefulStream(DEFAULT_AT_TOP_THRESHOLD),f=statefulStreamFromEmitter(pipe(merge(pipe(duc(t),skip(1),mapTo(!0)),pipe(duc(t),skip(1),mapTo(!1),debounceTime(100))),distinctUntilChanged()),!1),p=statefulStreamFromEmitter(pipe(merge(pipe(a,mapTo(!0)),pipe(a,mapTo(!1),debounceTime(200))),distinctUntilChanged()),!1);connect(pipe(combineLatest(duc(t),duc(d)),map((([e,t])=>e<=t)),distinctUntilChanged()),s),connect(pipe(s,throttleTime(50)),c);const m=streamFromEmitter(pipe(combineLatest(e,duc(n),duc(r),duc(o),duc(u)),scan(((e,[{scrollTop:t,scrollHeight:n},r,o,a,i])=>{const s={viewportHeight:r,scrollTop:t,scrollHeight:n};if(t+r-n>-i){let n,r;return t>e.state.scrollTop?(n="SCROLLED_DOWN",r=e.state.scrollTop-t):(n="SIZE_DECREASED",r=e.state.scrollTop-t||e.scrollTopDelta),{atBottom:!0,state:s,atBottomBecause:n,scrollTopDelta:r}}let l;return l=s.scrollHeight>e.state.scrollHeight?"SIZE_INCREASED":r<e.state.viewportHeight?"VIEWPORT_HEIGHT_DECREASING":t<e.state.scrollTop?"SCROLLING_UPWARDS":"NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:l,state:s}}),INITIAL_BOTTOM_STATE),distinctUntilChanged(((e,t)=>e&&e.atBottom===t.atBottom)))),h=statefulStreamFromEmitter(pipe(e,scan(((e,{scrollTop:t,scrollHeight:n,viewportHeight:r})=>{if(approximatelyEqual(e.scrollHeight,n))return{scrollTop:t,scrollHeight:n,jump:0,changed:!1};{const o=n-(t+r)<1;return e.scrollTop!==t&&o?{scrollHeight:n,scrollTop:t,jump:e.scrollTop-t,changed:!0}:{scrollHeight:n,scrollTop:t,jump:0,changed:!0}}}),{scrollHeight:0,jump:0,scrollTop:0,changed:!1}),filter((e=>e.changed)),map((e=>e.jump))),0);connect(pipe(m,map((e=>e.atBottom))),i),connect(pipe(i,throttleTime(50)),l);const _=statefulStream(DOWN);connect(pipe(e,map((({scrollTop:e})=>e)),distinctUntilChanged(),scan(((e,t)=>getValue(p)?{direction:e.direction,prevScrollTop:t}:{direction:t<e.prevScrollTop?UP:DOWN,prevScrollTop:t}),{direction:DOWN,prevScrollTop:0}),map((e=>e.direction))),_),connect(pipe(e,throttleTime(50),mapTo(NONE$1)),_);const g=statefulStream(0);return connect(pipe(f,filter((e=>!e)),mapTo(0)),g),connect(pipe(t,throttleTime(100),withLatestFrom(f),filter((([e,t])=>!!t)),scan((([e,t],[n])=>[t,n]),[0,0]),map((([e,t])=>t-e))),g),{isScrolling:f,isAtTop:s,isAtBottom:i,atBottomState:m,atTopStateChange:c,atBottomStateChange:l,scrollDirection:_,atBottomThreshold:u,atTopThreshold:d,scrollVelocity:g,lastJumpDueToItemResize:h}}),tup(domIOSystem)),propsReadySystem=system((([{log:e}])=>{const t=statefulStream(!1),n=streamFromEmitter(pipe(t,filter((e=>e)),distinctUntilChanged()));return subscribe(t,(t=>{t&&getValue(e)("props updated",{},LogLevel.DEBUG)})),{propsReady:t,didMount:n}}),tup(loggerSystem),{singleton:!0});function skipFrames(e,t){0==e?t():requestAnimationFrame((()=>skipFrames(e-1,t)))}function getInitialTopMostItemIndexNumber(e,t){const n=t-1;return"number"==typeof e?e:"LAST"===e.index?n:e.index}const initialTopMostItemIndexSystem=system((([{sizes:e,listRefresh:t,defaultItemSize:n},{scrollTop:r},{scrollToIndex:o,scrollTargetReached:a},{didMount:i}])=>{const s=statefulStream(!0),l=statefulStream(0),c=statefulStream(!0);return connect(pipe(i,withLatestFrom(l),filter((([e,t])=>!!t)),mapTo(!1)),s),connect(pipe(i,withLatestFrom(l),filter((([e,t])=>!!t)),mapTo(!1)),c),subscribe(pipe(combineLatest(t,i),withLatestFrom(s,e,n,c),filter((([[,e],t,{sizeTree:n},r,o])=>e&&(!empty(n)||isDefined(r))&&!t&&!o)),withLatestFrom(l)),(([,e])=>{handleNext(a,(()=>{publish(c,!0)})),skipFrames(4,(()=>{handleNext(r,(()=>{publish(s,!0)})),publish(o,e)}))})),{scrolledToInitialItem:s,initialTopMostItemIndex:l,initialItemFinalLocationReached:c}}),tup(sizeSystem,domIOSystem,scrollToIndexSystem,propsReadySystem),{singleton:!0});function normalizeFollowOutput(e){return!!e&&("smooth"===e?"smooth":"auto")}const behaviorFromFollowOutput=(e,t)=>"function"==typeof e?normalizeFollowOutput(e(t)):t&&normalizeFollowOutput(e),followOutputSystem=system((([{totalCount:e,listRefresh:t},{isAtBottom:n,atBottomState:r},{scrollToIndex:o},{scrolledToInitialItem:a},{propsReady:i,didMount:s},{log:l},{scrollingInProgress:c}])=>{const u=statefulStream(!1),d=stream();let f=null;function p(e){publish(o,{index:"LAST",align:"end",behavior:e})}function m(e){const t=handleNext(r,(t=>{!e||t.atBottom||"SIZE_INCREASED"!==t.notAtBottomBecause||f||(getValue(l)("scrolling to bottom due to increased size",{},LogLevel.DEBUG),p("auto"))}));setTimeout(t,100)}return subscribe(pipe(combineLatest(pipe(duc(e),skip(1)),s),withLatestFrom(duc(u),n,a,c),map((([[e,t],n,r,o,a])=>{let i=t&&o,s="auto";return i&&(s=behaviorFromFollowOutput(n,r||a),i=i&&!!s),{totalCount:e,shouldFollow:i,followOutputBehavior:s}})),filter((({shouldFollow:e})=>e))),(({totalCount:e,followOutputBehavior:n})=>{f&&(f(),f=null),f=handleNext(t,(()=>{getValue(l)("following output to ",{totalCount:e},LogLevel.DEBUG),p(n),f=null}))})),subscribe(pipe(combineLatest(duc(u),e,i),filter((([e,,t])=>e&&t)),scan((({value:e},[,t])=>({refreshed:e===t,value:t})),{refreshed:!1,value:0}),filter((({refreshed:e})=>e)),withLatestFrom(u,e)),(([,e])=>{getValue(a)&&m(!1!==e)})),subscribe(d,(()=>{m(!1!==getValue(u))})),subscribe(combineLatest(duc(u),r),(([e,t])=>{e&&!t.atBottom&&"VIEWPORT_HEIGHT_DECREASING"===t.notAtBottomBecause&&p("auto")})),{followOutput:u,autoscrollToBottom:d}}),tup(sizeSystem,stateFlagsSystem,scrollToIndexSystem,initialTopMostItemIndexSystem,propsReadySystem,loggerSystem,domIOSystem));function groupCountsToIndicesAndCount(e){return e.reduce(((e,t)=>(e.groupIndices.push(e.totalCount),e.totalCount+=t+1,e)),{totalCount:0,groupIndices:[]})}const groupedListSystem=system((([{totalCount:e,groupIndices:t,sizes:n},{scrollTop:r,headerHeight:o}])=>{const a=stream(),i=stream(),s=streamFromEmitter(pipe(a,map(groupCountsToIndicesAndCount)));return connect(pipe(s,map((e=>e.totalCount))),e),connect(pipe(s,map((e=>e.groupIndices))),t),connect(pipe(combineLatest(r,n,o),filter((([e,t])=>hasGroups(t))),map((([e,t,n])=>findMaxKeyValue(t.groupOffsetTree,Math.max(e-n,0),"v")[0])),distinctUntilChanged(),map((e=>[e]))),i),{groupCounts:a,topItemsIndexes:i}}),tup(sizeSystem,domIOSystem));function tupleComparator(e,t){return!(!e||e[0]!==t[0]||e[1]!==t[1])}function rangeComparator(e,t){return!(!e||e.startIndex!==t.startIndex||e.endIndex!==t.endIndex)}const TOP="top",BOTTOM="bottom",NONE="none";function getOverscan(e,t,n){return"number"==typeof e?n===UP&&t===TOP||n===DOWN&&t===BOTTOM?e:0:n===UP?t===TOP?e.main:e.reverse:t===BOTTOM?e.main:e.reverse}function getViewportIncrease(e,t){return"number"==typeof e?e:e[t]||0}const sizeRangeSystem=system((([{scrollTop:e,viewportHeight:t,deviation:n,headerHeight:r,fixedHeaderHeight:o}])=>{const a=stream(),i=statefulStream(0),s=statefulStream(0),l=statefulStream(0),c=statefulStreamFromEmitter(pipe(combineLatest(duc(e),duc(t),duc(r),duc(a,tupleComparator),duc(l),duc(i),duc(o),duc(n),duc(s)),map((([e,t,n,[r,o],a,i,s,l,c])=>{const u=e-l,d=i+s,f=Math.max(n-u,0);let p=NONE;const m=getViewportIncrease(c,TOP),h=getViewportIncrease(c,BOTTOM);return r-=l,o+=n+s,(r+=n+s)>e+d-m&&(p=UP),(o-=l)<e-f+t+h&&(p=DOWN),p!==NONE?[Math.max(u-n-getOverscan(a,TOP,p)-m,0),u-f-s+t+getOverscan(a,BOTTOM,p)+h]:null})),filter((e=>null!=e)),distinctUntilChanged(tupleComparator)),[0,0]);return{listBoundary:a,overscan:l,topListHeight:i,increaseViewportBy:s,visibleRange:c}}),tup(domIOSystem),{singleton:!0});function probeItemSet(e,t,n){if(hasGroups(t)){const r=originalIndexFromItemIndex(e,t);return[{index:findMaxKeyValue(t.groupOffsetTree,r)[0],size:0,offset:0},{index:r,size:0,offset:0,data:n&&n[0]}]}return[{index:e,size:0,offset:0,data:n&&n[0]}]}const EMPTY_LIST_STATE={items:[],topItems:[],offsetTop:0,offsetBottom:0,top:0,bottom:0,topListHeight:0,totalCount:0,firstItemIndex:0};function transposeItems(e,t,n){if(0===e.length)return[];if(!hasGroups(t))return e.map((e=>({...e,index:e.index+n,originalIndex:e.index})));const r=e[0].index,o=e[e.length-1].index,a=[],i=rangesWithin(t.groupOffsetTree,r,o);let s,l=0;for(const r of e){let e;(!s||s.end<r.index)&&(s=i.shift(),l=t.groupIndices.indexOf(s.start)),e=r.index===s.start?{type:"group",index:l}:{index:r.index-(l+1)+n,groupIndex:l},a.push({...e,size:r.size,offset:r.offset,originalIndex:r.index,data:r.data})}return a}function buildListState(e,t,n,r,o,a){const{lastSize:i,lastOffset:s,lastIndex:l}=o;let c=0,u=0;if(e.length>0){c=e[0].offset;const t=e[e.length-1];u=t.offset+t.size}const d=n-l,f=c,p=s+d*i+(d-1)*r-u;return{items:transposeItems(e,o,a),topItems:transposeItems(t,o,a),topListHeight:t.reduce(((e,t)=>t.size+e),0),offsetTop:c,offsetBottom:p,top:f,bottom:u,totalCount:n,firstItemIndex:a}}function buildListStateFromItemCount(e,t,n,r,o,a){let i=0;if(n.groupIndices.length>0)for(const t of n.groupIndices){if(t-i>=e)break;i++}const s=e+i,l=getInitialTopMostItemIndexNumber(t,s),c=Array.from({length:s}).map(((e,t)=>({index:t+l,size:0,offset:0,data:a[t+l]})));return buildListState(c,[],s,o,n,r)}const listStateSystem=system((([{sizes:e,totalCount:t,data:n,firstItemIndex:r,gap:o},a,{visibleRange:i,listBoundary:s,topListHeight:l},{scrolledToInitialItem:c,initialTopMostItemIndex:u},{topListHeight:d},f,{didMount:p},{recalcInProgress:m}])=>{const h=statefulStream([]),_=statefulStream(0),g=stream();connect(a.topItemsIndexes,h);const v=statefulStreamFromEmitter(pipe(combineLatest(p,m,duc(i,tupleComparator),duc(t),duc(e),duc(u),c,duc(h),duc(r),duc(o),n),filter((([e,t,,n,,,,,,,r])=>{const o=r&&r.length!==n;return e&&!t&&!o})),map((([,,[e,t],n,r,o,a,i,s,l,c])=>{const u=r,{sizeTree:d,offsetTree:f}=u,p=getValue(_);if(0===n)return{...EMPTY_LIST_STATE,totalCount:n};if(0===e&&0===t)return 0===p?{...EMPTY_LIST_STATE,totalCount:n}:buildListStateFromItemCount(p,o,r,s,l,c||[]);if(empty(d)){if(p>0)return null;return buildListState(probeItemSet(getInitialTopMostItemIndexNumber(o,n),u,c),[],n,l,u,s)}const m=[];if(i.length>0){const e=i[0],t=i[i.length-1];let n=0;for(const r of rangesWithin(d,e,t)){const o=r.value,a=Math.max(r.start,e),i=Math.min(r.end,t);for(let e=a;e<=i;e++)m.push({index:e,size:o,offset:n,data:c&&c[e]}),n+=o}}if(!a)return buildListState([],m,n,l,u,s);const h=i.length>0?i[i.length-1]+1:0,g=rangesWithinOffsets(f,e,t,h);if(0===g.length)return null;const v=n-1,E=tap([],(n=>{for(const r of g){const o=r.value;let a=o.offset,i=r.start;const s=o.size;if(o.offset<e){i+=Math.floor((e-o.offset+l)/(s+l));const t=i-r.start;a+=t*s+t*l}i<h&&(a+=(h-i)*s,i=h);const u=Math.min(r.end,v);for(let e=i;e<=u&&!(a>=t);e++)n.push({index:e,size:s,offset:a,data:c&&c[e]}),a+=s+l}}));return buildListState(E,m,n,l,u,s)})),filter((e=>null!==e)),distinctUntilChanged()),EMPTY_LIST_STATE);connect(pipe(n,filter(isDefined),map((e=>null==e?void 0:e.length))),t),connect(pipe(v,map((e=>e.topListHeight))),d),connect(d,l),connect(pipe(v,map((e=>[e.top,e.bottom]))),s),connect(pipe(v,map((e=>e.items))),g);const E=streamFromEmitter(pipe(v,filter((({items:e})=>e.length>0)),withLatestFrom(t,n),filter((([{items:e},t])=>e[e.length-1].originalIndex===t-1)),map((([,e,t])=>[e-1,t])),distinctUntilChanged(tupleComparator),map((([e])=>e))));return{listState:v,topItemsIndexes:h,endReached:E,startReached:streamFromEmitter(pipe(v,throttleTime(200),filter((({items:e,topItems:t})=>e.length>0&&e[0].originalIndex===t.length)),map((({items:e})=>e[0].index)),distinctUntilChanged())),rangeChanged:streamFromEmitter(pipe(v,filter((({items:e})=>e.length>0)),map((({items:e})=>{let t=0,n=e.length-1;for(;"group"===e[t].type&&t<n;)t++;for(;"group"===e[n].type&&n>t;)n--;return{startIndex:e[t].index,endIndex:e[n].index}})),distinctUntilChanged(rangeComparator))),itemsRendered:g,initialItemCount:_,...f}}),tup(sizeSystem,groupedListSystem,sizeRangeSystem,initialTopMostItemIndexSystem,scrollToIndexSystem,stateFlagsSystem,propsReadySystem,recalcSystem),{singleton:!0}),initialItemCountSystem=system((([{sizes:e,firstItemIndex:t,data:n,gap:r},{initialTopMostItemIndex:o},{initialItemCount:a,listState:i},{didMount:s}])=>(connect(pipe(s,withLatestFrom(a),filter((([,e])=>0!==e)),withLatestFrom(o,e,t,r,n),map((([[,e],t,n,r,o,a=[]])=>buildListStateFromItemCount(e,t,n,r,o,a)))),i),{})),tup(sizeSystem,initialTopMostItemIndexSystem,listStateSystem,propsReadySystem),{singleton:!0}),scrollSeekSystem=system((([{scrollVelocity:e}])=>{const t=statefulStream(!1),n=stream(),r=statefulStream(!1);return connect(pipe(e,withLatestFrom(r,t,n),filter((([e,t])=>!!t)),map((([e,t,n,r])=>{const{exit:o,enter:a}=t;if(n){if(o(e,r))return!1}else if(a(e,r))return!0;return n})),distinctUntilChanged()),t),subscribe(pipe(combineLatest(t,e,n),withLatestFrom(r)),(([[e,t,n],r])=>e&&r&&r.change&&r.change(t,n))),{isSeeking:t,scrollSeekConfiguration:r,scrollVelocity:e,scrollSeekRangeChanged:n}}),tup(stateFlagsSystem),{singleton:!0}),topItemCountSystem=system((([{topItemsIndexes:e}])=>{const t=statefulStream(0);return connect(pipe(t,filter((e=>e>=0)),map((e=>Array.from({length:e}).map(((e,t)=>t))))),e),{topItemCount:t}}),tup(listStateSystem)),totalListHeightSystem=system((([{footerHeight:e,headerHeight:t,fixedHeaderHeight:n,fixedFooterHeight:r},{listState:o}])=>{const a=stream(),i=statefulStreamFromEmitter(pipe(combineLatest(e,r,t,n,o),map((([e,t,n,r,o])=>e+t+n+r+o.offsetBottom+o.bottom))),0);return connect(duc(i),a),{totalListHeight:i,totalListHeightChanged:a}}),tup(domIOSystem,listStateSystem),{singleton:!0});function simpleMemoize(e){let t,n=!1;return()=>(n||(n=!0,t=e()),t)}const isMobileSafari=simpleMemoize((()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent))),upwardScrollFixSystem=system((([{scrollBy:e,scrollTop:t,deviation:n,scrollingInProgress:r},{isScrolling:o,isAtBottom:a,scrollDirection:i,lastJumpDueToItemResize:s},{listState:l},{beforeUnshiftWith:c,shiftWithOffset:u,sizes:d,gap:f},{log:p},{recalcInProgress:m}])=>{const h=streamFromEmitter(pipe(l,withLatestFrom(s),scan((([,e,t,n],[{items:r,totalCount:o,bottom:a,offsetBottom:i},s])=>{const l=a+i;let c=0;if(t===o&&e.length>0&&r.length>0){0===r[0].originalIndex&&0===e[0].originalIndex||(c=l-n,0!==c&&(c+=s))}return[c,r,o,l]}),[0,[],0,0]),filter((([e])=>0!==e)),withLatestFrom(t,i,r,a,p,m),filter((([,e,t,n,,,r])=>!r&&!n&&0!==e&&t===UP)),map((([[e],,,,,t])=>(t("Upward scrolling compensation",{amount:e},LogLevel.DEBUG),e)))));function _(t){t>0?(publish(e,{top:-t,behavior:"auto"}),publish(n,0)):(publish(n,0),publish(e,{top:-t,behavior:"auto"}))}return subscribe(pipe(h,withLatestFrom(n,o)),(([e,t,r])=>{r&&isMobileSafari()?publish(n,t-e):_(-e)})),subscribe(pipe(combineLatest(statefulStreamFromEmitter(o,!1),n,m),filter((([e,t,n])=>!e&&!n&&0!==t)),map((([e,t])=>t)),throttleTime(1)),_),connect(pipe(u,map((e=>({top:-e})))),e),subscribe(pipe(c,withLatestFrom(d,f),map((([e,{lastSize:t,groupIndices:n,sizeTree:r},o])=>{function a(e){return e*(t+o)}if(0===n.length)return a(e);{let t=0;const o=find(r,0);let i=0,s=0;for(;i<e;){i++,t+=o;let r=n.length===s+1?1/0:n[s+1]-n[s]-1;i+r>e&&(t-=o,r=e-i+1),i+=r,t+=a(r),s++}return t}}))),(t=>{publish(n,t),requestAnimationFrame((()=>{publish(e,{top:t}),requestAnimationFrame((()=>{publish(n,0),publish(m,!1)}))}))})),{deviation:n}}),tup(domIOSystem,stateFlagsSystem,listStateSystem,sizeSystem,loggerSystem,recalcSystem)),initialScrollTopSystem=system((([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=statefulStream(0);return subscribe(pipe(e,withLatestFrom(r),filter((([,e])=>0!==e)),map((([,e])=>({top:e})))),(e=>{handleNext(pipe(n,skip(1),filter((e=>e.items.length>1))),(()=>{requestAnimationFrame((()=>{publish(t,e)}))}))})),{initialScrollTop:r}}),tup(propsReadySystem,domIOSystem,listStateSystem),{singleton:!0}),alignToBottomSystem=system((([{viewportHeight:e},{totalListHeight:t}])=>{const n=statefulStream(!1);return{alignToBottom:n,paddingTopAddition:statefulStreamFromEmitter(pipe(combineLatest(n,e,t),filter((([e])=>e)),map((([,e,t])=>Math.max(0,e-t))),throttleTime(0),distinctUntilChanged()),0)}}),tup(domIOSystem,totalListHeightSystem),{singleton:!0}),windowScrollerSystem=system((([{scrollTo:e,scrollContainerState:t}])=>{const n=stream(),r=stream(),o=stream(),a=statefulStream(!1),i=statefulStream(void 0);return connect(pipe(combineLatest(n,r),map((([{viewportHeight:e,scrollTop:t,scrollHeight:n},{offsetTop:r}])=>({scrollTop:Math.max(0,t-r),scrollHeight:n,viewportHeight:e})))),t),connect(pipe(e,withLatestFrom(r),map((([e,{offsetTop:t}])=>({...e,top:e.top+t})))),o),{useWindowScroll:a,customScrollParent:i,windowScrollContainerState:n,windowViewportRect:r,windowScrollTo:o}}),tup(domIOSystem)),defaultCalculateViewLocation=({itemTop:e,itemBottom:t,viewportTop:n,viewportBottom:r,locationParams:{behavior:o,align:a,...i}})=>e<n?{...i,behavior:o,align:null!=a?a:"start"}:t>r?{...i,behavior:o,align:null!=a?a:"end"}:null,scrollIntoViewSystem=system((([{sizes:e,totalCount:t,gap:n},{scrollTop:r,viewportHeight:o,headerHeight:a,fixedHeaderHeight:i,fixedFooterHeight:s,scrollingInProgress:l},{scrollToIndex:c}])=>{const u=stream();return connect(pipe(u,withLatestFrom(e,o,t,a,i,s,r),withLatestFrom(n),map((([[e,t,n,r,o,a,i,s],c])=>{const{done:u,behavior:d,align:f,calculateViewLocation:p=defaultCalculateViewLocation,...m}=e,h=originalIndexFromLocation(e,t,r-1),_=offsetOf(h,t.offsetTree,c)+o+a,g=p({itemTop:_,itemBottom:_+findMaxKeyValue(t.sizeTree,h)[1],viewportTop:s+a,viewportBottom:s+n-i,locationParams:{behavior:d,align:f,...m}});return g?u&&handleNext(pipe(l,filter((e=>!1===e)),skip(getValue(l)?1:2)),u):u&&u(),g})),filter((e=>null!==e))),c),{scrollIntoView:u}}),tup(sizeSystem,domIOSystem,scrollToIndexSystem,listStateSystem,loggerSystem),{singleton:!0}),stateLoadSystem=system((([{sizes:e,sizeRanges:t},{scrollTop:n,headerHeight:r},{initialTopMostItemIndex:o},{didMount:a},{useWindowScroll:i,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=stream(),u=statefulStream(void 0),d=statefulStream(null),f=statefulStream(null);return connect(s,d),connect(l,f),subscribe(pipe(c,withLatestFrom(e,n,i,d,f,r)),(([e,t,n,r,o,a,i])=>{const s=sizeTreeToRanges(t.sizeTree);r&&null!==o&&null!==a&&(n=o.scrollTop-a.offsetTop),e({ranges:s,scrollTop:n-=i})})),connect(pipe(u,filter(isDefined),map(locationFromSnapshot)),o),connect(pipe(a,withLatestFrom(u),filter((([,e])=>void 0!==e)),distinctUntilChanged(),map((([,e])=>e.ranges))),t),{getState:c,restoreStateFrom:u}}),tup(sizeSystem,domIOSystem,initialTopMostItemIndexSystem,propsReadySystem,windowScrollerSystem));function locationFromSnapshot(e){return{offset:e.scrollTop,index:0,align:"start"}}const featureGroup1System=system((([e,t,n,r,o,a,i,s,l,c])=>({...e,...t,...n,...r,...o,...a,...i,...s,...l,...c})),tup(sizeRangeSystem,initialItemCountSystem,propsReadySystem,scrollSeekSystem,totalListHeightSystem,initialScrollTopSystem,alignToBottomSystem,windowScrollerSystem,scrollIntoViewSystem,loggerSystem)),listSystem=system((([{totalCount:e,sizeRanges:t,fixedItemSize:n,defaultItemSize:r,trackItemSizes:o,itemSize:a,data:i,firstItemIndex:s,groupIndices:l,statefulTotalCount:c,gap:u,sizes:d},{initialTopMostItemIndex:f,scrolledToInitialItem:p,initialItemFinalLocationReached:m},h,_,g,{listState:v,topItemsIndexes:E,...y},{scrollToIndex:b},C,{topItemCount:R},{groupCounts:w},S])=>(connect(y.rangeChanged,S.scrollSeekRangeChanged),connect(pipe(S.windowViewportRect,map((e=>e.visibleHeight))),h.viewportHeight),{totalCount:e,data:i,firstItemIndex:s,sizeRanges:t,initialTopMostItemIndex:f,scrolledToInitialItem:p,initialItemFinalLocationReached:m,topItemsIndexes:E,topItemCount:R,groupCounts:w,fixedItemHeight:n,defaultItemHeight:r,gap:u,...g,statefulTotalCount:c,listState:v,scrollToIndex:b,trackItemSizes:o,itemSize:a,groupIndices:l,...y,...S,...h,sizes:d,..._})),tup(sizeSystem,initialTopMostItemIndexSystem,domIOSystem,stateLoadSystem,followOutputSystem,listStateSystem,scrollToIndexSystem,upwardScrollFixSystem,topItemCountSystem,groupedListSystem,featureGroup1System)),WEBKIT_STICKY="-webkit-sticky",STICKY="sticky",positionStickyCssValue=simpleMemoize((()=>{if("undefined"==typeof document)return STICKY;const e=document.createElement("div");return e.style.position=WEBKIT_STICKY,e.style.position===WEBKIT_STICKY?WEBKIT_STICKY:STICKY}));function useWindowViewportRectRef(e,t,n){const r=React__default.default.useRef(null),o=React__default.default.useCallback((n=>{if(null===n||!n.offsetParent)return;const o=n.getBoundingClientRect(),a=o.width;let i,s;if(t){const e=t.getBoundingClientRect(),n=o.top-e.top;i=e.height-Math.max(0,n),s=n+t.scrollTop}else i=window.innerHeight-Math.max(0,o.top),s=o.top+window.pageYOffset;r.current={offsetTop:s,visibleHeight:i,visibleWidth:a},e(r.current)}),[e,t]),{callbackRef:a,ref:i}=useSizeWithElRef(o,!0,n),s=React__default.default.useCallback((()=>{o(i.current)}),[o,i]);return React__default.default.useEffect((()=>{if(t){t.addEventListener("scroll",s);const e=new ResizeObserver((()=>{requestAnimationFrame(s)}));return e.observe(t),()=>{t.removeEventListener("scroll",s),e.unobserve(t)}}return window.addEventListener("scroll",s),window.addEventListener("resize",s),()=>{window.removeEventListener("scroll",s),window.removeEventListener("resize",s)}}),[s,t]),a}const VirtuosoMockContext=React__default.default.createContext(void 0),VirtuosoGridMockContext=React__default.default.createContext(void 0);function identity(e){return e}const listComponentPropsSystem=system((()=>{const e=statefulStream((e=>`Item ${e}`)),t=statefulStream(null),n=statefulStream((e=>`Group ${e}`)),r=statefulStream({}),o=statefulStream(identity),a=statefulStream("div"),i=statefulStream(noop$1),s=(e,t=null)=>statefulStreamFromEmitter(pipe(r,map((t=>t[e])),distinctUntilChanged()),t);return{context:t,itemContent:e,groupContent:n,components:r,computeItemKey:o,HeaderFooterTag:a,scrollerRef:i,FooterComponent:s("Footer"),HeaderComponent:s("Header"),TopItemListComponent:s("TopItemList"),ListComponent:s("List","div"),ItemComponent:s("Item","div"),GroupComponent:s("Group","div"),ScrollerComponent:s("Scroller","div"),EmptyPlaceholder:s("EmptyPlaceholder"),ScrollSeekPlaceholder:s("ScrollSeekPlaceholder")}})),combinedSystem$2=system((([e,t])=>({...e,...t})),tup(listSystem,listComponentPropsSystem)),DefaultScrollSeekPlaceholder$1=({height:e})=>jsxRuntime.exports.jsx("div",{style:{height:e}}),GROUP_STYLE={position:positionStickyCssValue(),zIndex:1,overflowAnchor:"none"},ITEM_STYLE$1={overflowAnchor:"none"},HORIZONTAL_ITEM_STYLE={...ITEM_STYLE$1,display:"inline-block",height:"100%"},Items$1=React__default.default.memo((function({showTopList:e=!1}){const t=useEmitterValue$2("listState"),n=usePublisher$2("sizeRanges"),r=useEmitterValue$2("useWindowScroll"),o=useEmitterValue$2("customScrollParent"),a=usePublisher$2("windowScrollContainerState"),i=usePublisher$2("scrollContainerState"),s=o||r?a:i,l=useEmitterValue$2("itemContent"),c=useEmitterValue$2("context"),u=useEmitterValue$2("groupContent"),d=useEmitterValue$2("trackItemSizes"),f=useEmitterValue$2("itemSize"),p=useEmitterValue$2("log"),m=usePublisher$2("gap"),h=useEmitterValue$2("horizontalDirection"),{callbackRef:_}=useChangedListContentsSizes(n,f,d,e?noop$1:s,p,m,o,h,useEmitterValue$2("skipAnimationFrameInResizeObserver")),[g,v]=React__default.default.useState(0);useEmitter$2("deviation",(e=>{g!==e&&v(e)}));const E=useEmitterValue$2("EmptyPlaceholder"),y=useEmitterValue$2("ScrollSeekPlaceholder")||DefaultScrollSeekPlaceholder$1,b=useEmitterValue$2("ListComponent"),C=useEmitterValue$2("ItemComponent"),R=useEmitterValue$2("GroupComponent"),w=useEmitterValue$2("computeItemKey"),S=useEmitterValue$2("isSeeking"),D=useEmitterValue$2("groupIndices").length>0,T=useEmitterValue$2("alignToBottom"),O=useEmitterValue$2("initialItemFinalLocationReached"),A=e?{}:{boxSizing:"border-box",...h?{whiteSpace:"nowrap",display:"inline-block",height:"100%",paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,marginLeft:0!==g?g:T?"auto":0}:{marginTop:0!==g?g:T?"auto":0,paddingTop:t.offsetTop,paddingBottom:t.offsetBottom},...O?{}:{visibility:"hidden"}};return!e&&0===t.totalCount&&E?jsxRuntime.exports.jsx(E,{...contextPropIfNotDomElement(E,c)}):jsxRuntime.exports.jsx(b,{...contextPropIfNotDomElement(b,c),ref:_,style:A,"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",children:(e?t.topItems:t.items).map((e=>{const n=e.originalIndex,r=w(n+t.firstItemIndex,e.data,c);return S?React.createElement(y,{...contextPropIfNotDomElement(y,c),key:r,index:e.index,height:e.size,type:e.type||"item",..."group"===e.type?{}:{groupIndex:e.groupIndex}}):"group"===e.type?React.createElement(R,{...contextPropIfNotDomElement(R,c),key:r,"data-index":n,"data-known-size":e.size,"data-item-index":e.index,style:GROUP_STYLE},u(e.index,c)):React.createElement(C,{...contextPropIfNotDomElement(C,c),...itemPropIfNotDomElement(C,e.data),key:r,"data-index":n,"data-known-size":e.size,"data-item-index":e.index,"data-item-group-index":e.groupIndex,style:h?HORIZONTAL_ITEM_STYLE:ITEM_STYLE$1},D?l(e.index,e.groupIndex,e.data,c):l(e.index,e.data,c))}))})})),scrollerStyle={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},horizontalScrollerStyle={outline:"none",overflowX:"auto",position:"relative"},viewportStyle=e=>({width:"100%",height:"100%",position:"absolute",top:0,...e?{display:"flex",flexDirection:"column"}:{}}),topItemListStyle={width:"100%",position:positionStickyCssValue(),top:0,zIndex:1};function contextPropIfNotDomElement(e,t){if("string"!=typeof e)return{context:t}}function itemPropIfNotDomElement(e,t){return{item:"string"==typeof e?void 0:t}}const Header$1=React__default.default.memo((function(){const e=useEmitterValue$2("HeaderComponent"),t=usePublisher$2("headerHeight"),n=useEmitterValue$2("HeaderFooterTag"),r=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,useEmitterValue$2("skipAnimationFrameInResizeObserver")),o=useEmitterValue$2("context");return e?jsxRuntime.exports.jsx(n,{ref:r,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,o)})}):null})),Footer$1=React__default.default.memo((function(){const e=useEmitterValue$2("FooterComponent"),t=usePublisher$2("footerHeight"),n=useEmitterValue$2("HeaderFooterTag"),r=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,useEmitterValue$2("skipAnimationFrameInResizeObserver")),o=useEmitterValue$2("context");return e?jsxRuntime.exports.jsx(n,{ref:r,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,o)})}):null}));function buildScroller({usePublisher:e,useEmitter:t,useEmitterValue:n}){return React__default.default.memo((function({style:r,children:o,...a}){const i=e("scrollContainerState"),s=n("ScrollerComponent"),l=e("smoothScrollTargetReached"),c=n("scrollerRef"),u=n("context"),d=n("horizontalDirection")||!1,{scrollerRef:f,scrollByCallback:p,scrollToCallback:m}=useScrollTop(i,l,s,c,void 0,d);t("scrollTo",m),t("scrollBy",p);const h=d?horizontalScrollerStyle:scrollerStyle;return jsxRuntime.exports.jsx(s,{ref:f,style:{...h,...r},"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,tabIndex:0,...a,...contextPropIfNotDomElement(s,u),children:o})}))}function buildWindowScroller({usePublisher:e,useEmitter:t,useEmitterValue:n}){return React__default.default.memo((function({style:r,children:o,...a}){const i=e("windowScrollContainerState"),s=n("ScrollerComponent"),l=e("smoothScrollTargetReached"),c=n("totalListHeight"),u=n("deviation"),d=n("customScrollParent"),f=n("context"),{scrollerRef:p,scrollByCallback:m,scrollToCallback:h}=useScrollTop(i,l,s,noop$1,d);return useIsomorphicLayoutEffect$2((()=>(p.current=d||window,()=>{p.current=null})),[p,d]),t("windowScrollTo",h),t("scrollBy",m),jsxRuntime.exports.jsx(s,{style:{position:"relative",...r,...0!==c?{height:c+u}:{}},"data-virtuoso-scroller":!0,...a,...contextPropIfNotDomElement(s,f),children:o})}))}const Viewport$2=({children:e})=>{const t=React__default.default.useContext(VirtuosoMockContext),n=usePublisher$2("viewportHeight"),r=usePublisher$2("fixedItemHeight"),o=useEmitterValue$2("alignToBottom"),a=useEmitterValue$2("horizontalDirection"),i=useSize$1(React__default.default.useMemo((()=>compose(n,(e=>correctItemSize(e,a?"width":"height")))),[n,a]),!0,useEmitterValue$2("skipAnimationFrameInResizeObserver"));return React__default.default.useEffect((()=>{t&&(n(t.viewportHeight),r(t.itemHeight))}),[t,n,r]),jsxRuntime.exports.jsx("div",{style:viewportStyle(o),ref:i,"data-viewport-type":"element",children:e})},WindowViewport$2=({children:e})=>{const t=React__default.default.useContext(VirtuosoMockContext),n=usePublisher$2("windowViewportRect"),r=usePublisher$2("fixedItemHeight"),o=useEmitterValue$2("customScrollParent"),a=useWindowViewportRectRef(n,o,useEmitterValue$2("skipAnimationFrameInResizeObserver")),i=useEmitterValue$2("alignToBottom");return React__default.default.useEffect((()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))}),[t,n,r]),jsxRuntime.exports.jsx("div",{ref:a,style:viewportStyle(i),"data-viewport-type":"window",children:e})},TopItemListContainer=({children:e})=>{const t=useEmitterValue$2("TopItemListComponent")||"div",n=useEmitterValue$2("headerHeight"),r={...topItemListStyle,marginTop:`${n}px`},o=useEmitterValue$2("context");return jsxRuntime.exports.jsx(t,{style:r,...contextPropIfNotDomElement(t,o),children:e})},ListRoot=React__default.default.memo((function(e){const t=useEmitterValue$2("useWindowScroll"),n=useEmitterValue$2("topItemsIndexes").length>0,r=useEmitterValue$2("customScrollParent"),o=r||t?WindowScroller$2:Scroller$2,a=r||t?WindowViewport$2:Viewport$2;return jsxRuntime.exports.jsxs(o,{...e,children:[n&&jsxRuntime.exports.jsx(TopItemListContainer,{children:jsxRuntime.exports.jsx(Items$1,{showTopList:!0})}),jsxRuntime.exports.jsxs(a,{children:[jsxRuntime.exports.jsx(Header$1,{}),jsxRuntime.exports.jsx(Items$1,{}),jsxRuntime.exports.jsx(Footer$1,{})]})]})})),{Component:List$1,usePublisher:usePublisher$2,useEmitterValue:useEmitterValue$2,useEmitter:useEmitter$2}=systemToComponent(combinedSystem$2,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},ListRoot),Scroller$2=buildScroller({usePublisher:usePublisher$2,useEmitterValue:useEmitterValue$2,useEmitter:useEmitter$2}),WindowScroller$2=buildWindowScroller({usePublisher:usePublisher$2,useEmitterValue:useEmitterValue$2,useEmitter:useEmitter$2}),GroupedVirtuoso=List$1,INITIAL_GRID_STATE={items:[],offsetBottom:0,offsetTop:0,top:0,bottom:0,itemHeight:0,itemWidth:0},PROBE_GRID_STATE={items:[{index:0}],offsetBottom:0,offsetTop:0,top:0,bottom:0,itemHeight:0,itemWidth:0},{round:round,ceil:ceil,floor:floor,min:min,max:max}=Math;function buildProbeGridState(e){return{...PROBE_GRID_STATE,items:e}}function buildItems(e,t,n){return Array.from({length:t-e+1}).map(((t,r)=>{const o=null===n?null:n[r+e];return{index:r+e,data:o}}))}function gapComparator(e,t){return e&&e.column===t.column&&e.row===t.row}function dimensionComparator(e,t){return e&&e.width===t.width&&e.height===t.height}const gridSystem=system((([{overscan:e,visibleRange:t,listBoundary:n,increaseViewportBy:r},{scrollTop:o,viewportHeight:a,scrollBy:i,scrollTo:s,smoothScrollTargetReached:l,scrollContainerState:c,footerHeight:u,headerHeight:d},f,p,{propsReady:m,didMount:h},{windowViewportRect:_,useWindowScroll:g,customScrollParent:v,windowScrollContainerState:E,windowScrollTo:y},b])=>{const C=statefulStream(0),R=statefulStream(0),w=statefulStream(INITIAL_GRID_STATE),S=statefulStream({height:0,width:0}),D=statefulStream({height:0,width:0}),T=stream(),O=stream(),A=statefulStream(0),I=statefulStream(null),x=statefulStream({row:0,column:0}),N=stream(),F=stream(),P=statefulStream(!1),k=statefulStream(0),$=statefulStream(!0),M=statefulStream(!1),B=statefulStream(!1);subscribe(pipe(h,withLatestFrom(k),filter((([e,t])=>!!t))),(()=>{publish($,!1)})),subscribe(pipe(combineLatest(h,$,D,S,k,M),filter((([e,t,n,r,,o])=>e&&!t&&0!==n.height&&0!==r.height&&!o))),(([,,,,e])=>{publish(M,!0),skipFrames(1,(()=>{publish(T,e)})),handleNext(pipe(o),(()=>{publish(n,[0,0]),publish($,!0)}))})),connect(pipe(F,filter((e=>null!=e&&e.scrollTop>0)),mapTo(0)),R),subscribe(pipe(h,withLatestFrom(F),filter((([,e])=>null!=e))),(([,e])=>{e&&(publish(S,e.viewport),publish(D,null==e?void 0:e.item),publish(x,e.gap),e.scrollTop>0&&(publish(P,!0),handleNext(pipe(o,skip(1)),(e=>{publish(P,!1)})),publish(s,{top:e.scrollTop})))})),connect(pipe(S,map((({height:e})=>e))),a),connect(pipe(combineLatest(duc(S,dimensionComparator),duc(D,dimensionComparator),duc(x,((e,t)=>e&&e.column===t.column&&e.row===t.row)),duc(o)),map((([e,t,n,r])=>({viewport:e,item:t,gap:n,scrollTop:r})))),N),connect(pipe(combineLatest(duc(C),t,duc(x,gapComparator),duc(D,dimensionComparator),duc(S,dimensionComparator),duc(I),duc(R),duc(P),duc($),duc(k)),filter((([,,,,,,,e])=>!e)),map((([e,[t,n],r,o,a,i,s,,l,c])=>{const{row:u,column:d}=r,{height:f,width:p}=o,{width:m}=a;if(0===s&&(0===e||0===m))return INITIAL_GRID_STATE;if(0===p){const t=getInitialTopMostItemIndexNumber(c,e);return buildProbeGridState(buildItems(t,t+Math.max(s-1,0),i))}const h=itemsPerRow(m,p,d);let _,g;l?0===t&&0===n&&s>0?(_=0,g=s-1):(_=h*floor((t+u)/(f+u)),g=h*ceil((n+u)/(f+u))-1,g=min(e-1,max(g,h-1)),_=min(g,max(0,_))):(_=0,g=-1);const v=buildItems(_,g,i),{top:E,bottom:y}=gridLayout(a,r,o,v),b=ceil(e/h);return{items:v,offsetTop:E,offsetBottom:b*f+(b-1)*u-y,top:E,bottom:y,itemHeight:f,itemWidth:p}}))),w),connect(pipe(I,filter((e=>null!==e)),map((e=>e.length))),C),connect(pipe(combineLatest(S,D,w,x),filter((([e,t,{items:n}])=>n.length>0&&0!==t.height&&0!==e.height)),map((([e,t,{items:n},r])=>{const{top:o,bottom:a}=gridLayout(e,r,t,n);return[o,a]})),distinctUntilChanged(tupleComparator)),n);const L=statefulStream(!1);connect(pipe(o,withLatestFrom(L),map((([e,t])=>t||0!==e))),L);const j=streamFromEmitter(pipe(combineLatest(w,C),filter((([{items:e}])=>e.length>0)),withLatestFrom(L),filter((([[e,t],n])=>{const r=e.items[e.items.length-1].index===t-1;if(n)return r;return e.bottom>0&&e.itemHeight>0&&0===e.offsetBottom&&e.items.length===t&&r})),map((([[,e]])=>e-1)),distinctUntilChanged())),U=streamFromEmitter(pipe(duc(w),filter((({items:e})=>e.length>0&&0===e[0].index)),mapTo(0),distinctUntilChanged())),V=streamFromEmitter(pipe(duc(w),withLatestFrom(P),filter((([{items:e},t])=>e.length>0&&!t)),map((([{items:e}])=>({startIndex:e[0].index,endIndex:e[e.length-1].index}))),distinctUntilChanged(rangeComparator),throttleTime(0)));connect(V,p.scrollSeekRangeChanged),connect(pipe(T,withLatestFrom(S,D,C,x),map((([e,t,n,r,o])=>{const a=normalizeIndexLocation(e),{align:i,behavior:s,offset:l}=a;let c=a.index;"LAST"===c&&(c=r-1),c=max(0,c,min(r-1,c));let u=itemTop(t,o,n,c);return"end"===i?u=round(u-t.height+n.height):"center"===i&&(u=round(u-t.height/2+n.height/2)),l&&(u+=l),{top:u,behavior:s}}))),s);const H=statefulStreamFromEmitter(pipe(w,map((e=>e.offsetBottom+e.bottom))),0);return connect(pipe(_,map((e=>({width:e.visibleWidth,height:e.visibleHeight})))),S),{data:I,totalCount:C,viewportDimensions:S,itemDimensions:D,scrollTop:o,scrollHeight:O,overscan:e,increaseViewportBy:r,scrollBy:i,scrollTo:s,scrollToIndex:T,smoothScrollTargetReached:l,windowViewportRect:_,windowScrollTo:y,useWindowScroll:g,customScrollParent:v,windowScrollContainerState:E,deviation:A,scrollContainerState:c,footerHeight:u,headerHeight:d,initialItemCount:R,gap:x,restoreStateFrom:F,...p,initialTopMostItemIndex:k,horizontalDirection:B,gridState:w,totalListHeight:H,...f,startReached:U,endReached:j,rangeChanged:V,stateChanged:N,propsReady:m,stateRestoreInProgress:P,...b}}),tup(sizeRangeSystem,domIOSystem,stateFlagsSystem,scrollSeekSystem,propsReadySystem,windowScrollerSystem,loggerSystem));function gridLayout(e,t,n,r){const{height:o}=n;if(void 0===o||0===r.length)return{top:0,bottom:0};return{top:itemTop(e,t,n,r[0].index),bottom:itemTop(e,t,n,r[r.length-1].index)+o}}function itemTop(e,t,n,r){const o=itemsPerRow(e.width,n.width,t.column),a=floor(r/o),i=a*n.height+max(0,a-1)*t.row;return i>0?i+t.row:i}function itemsPerRow(e,t,n){return max(1,floor((e+n)/(floor(t)+n)))}const gridComponentPropsSystem=system((()=>{const e=statefulStream((e=>`Item ${e}`)),t=statefulStream({}),n=statefulStream(null),r=statefulStream("virtuoso-grid-item"),o=statefulStream("virtuoso-grid-list"),a=statefulStream(identity),i=statefulStream("div"),s=statefulStream(noop$1),l=(e,n=null)=>statefulStreamFromEmitter(pipe(t,map((t=>t[e])),distinctUntilChanged()),n),c=statefulStream(!1),u=statefulStream(!1);return connect(duc(u),c),{readyStateChanged:c,reportReadyState:u,context:n,itemContent:e,components:t,computeItemKey:a,itemClassName:r,listClassName:o,headerFooterTag:i,scrollerRef:s,FooterComponent:l("Footer"),HeaderComponent:l("Header"),ListComponent:l("List","div"),ItemComponent:l("Item","div"),ScrollerComponent:l("Scroller","div"),ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}})),combinedSystem$1=system((([e,t])=>({...e,...t})),tup(gridSystem,gridComponentPropsSystem)),GridItems=React__default.default.memo((function(){const e=useEmitterValue$1("gridState"),t=useEmitterValue$1("listClassName"),n=useEmitterValue$1("itemClassName"),r=useEmitterValue$1("itemContent"),o=useEmitterValue$1("computeItemKey"),a=useEmitterValue$1("isSeeking"),i=usePublisher$1("scrollHeight"),s=useEmitterValue$1("ItemComponent"),l=useEmitterValue$1("ListComponent"),c=useEmitterValue$1("ScrollSeekPlaceholder"),u=useEmitterValue$1("context"),d=usePublisher$1("itemDimensions"),f=usePublisher$1("gap"),p=useEmitterValue$1("log"),m=useEmitterValue$1("stateRestoreInProgress"),h=usePublisher$1("reportReadyState"),_=useSize$1(React__default.default.useMemo((()=>e=>{const t=e.parentElement.parentElement.scrollHeight;i(t);const n=e.firstChild;if(n){const{width:e,height:t}=n.getBoundingClientRect();d({width:e,height:t})}f({row:resolveGapValue("row-gap",getComputedStyle(e).rowGap,p),column:resolveGapValue("column-gap",getComputedStyle(e).columnGap,p)})}),[i,d,f,p]),!0,!1);return useIsomorphicLayoutEffect$2((()=>{e.itemHeight>0&&e.itemWidth>0&&h(!0)}),[e]),m?null:jsxRuntime.exports.jsx(l,{ref:_,className:t,...contextPropIfNotDomElement(l,u),style:{paddingTop:e.offsetTop,paddingBottom:e.offsetBottom},"data-testid":"virtuoso-item-list",children:e.items.map((t=>{const i=o(t.index,t.data,u);return a?jsxRuntime.exports.jsx(c,{...contextPropIfNotDomElement(c,u),index:t.index,height:e.itemHeight,width:e.itemWidth},i):React.createElement(s,{...contextPropIfNotDomElement(s,u),className:n,"data-index":t.index,key:i},r(t.index,t.data,u))}))})})),Header=React__default.default.memo((function(){const e=useEmitterValue$1("HeaderComponent"),t=usePublisher$1("headerHeight"),n=useEmitterValue$1("headerFooterTag"),r=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,!1),o=useEmitterValue$1("context");return e?jsxRuntime.exports.jsx(n,{ref:r,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,o)})}):null})),Footer=React__default.default.memo((function(){const e=useEmitterValue$1("FooterComponent"),t=usePublisher$1("footerHeight"),n=useEmitterValue$1("headerFooterTag"),r=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,!1),o=useEmitterValue$1("context");return e?jsxRuntime.exports.jsx(n,{ref:r,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,o)})}):null})),Viewport$1=({children:e})=>{const t=React__default.default.useContext(VirtuosoGridMockContext),n=usePublisher$1("itemDimensions"),r=usePublisher$1("viewportDimensions"),o=useSize$1(React__default.default.useMemo((()=>e=>{r(e.getBoundingClientRect())}),[r]),!0,!1);return React__default.default.useEffect((()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))}),[t,r,n]),jsxRuntime.exports.jsx("div",{style:viewportStyle(!1),ref:o,children:e})},WindowViewport$1=({children:e})=>{const t=React__default.default.useContext(VirtuosoGridMockContext),n=usePublisher$1("windowViewportRect"),r=usePublisher$1("itemDimensions"),o=useEmitterValue$1("customScrollParent"),a=useWindowViewportRectRef(n,o,!1);return React__default.default.useEffect((()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))}),[t,n,r]),jsxRuntime.exports.jsx("div",{ref:a,style:viewportStyle(!1),children:e})},GridRoot=React__default.default.memo((function({...e}){const t=useEmitterValue$1("useWindowScroll"),n=useEmitterValue$1("customScrollParent"),r=n||t?WindowScroller$1:Scroller$1,o=n||t?WindowViewport$1:Viewport$1;return jsxRuntime.exports.jsx(r,{...e,children:jsxRuntime.exports.jsxs(o,{children:[jsxRuntime.exports.jsx(Header,{}),jsxRuntime.exports.jsx(GridItems,{}),jsxRuntime.exports.jsx(Footer,{})]})})})),{Component:Grid,usePublisher:usePublisher$1,useEmitterValue:useEmitterValue$1,useEmitter:useEmitter$1}=systemToComponent(combinedSystem$1,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},GridRoot),Scroller$1=buildScroller({usePublisher:usePublisher$1,useEmitterValue:useEmitterValue$1,useEmitter:useEmitter$1}),WindowScroller$1=buildWindowScroller({usePublisher:usePublisher$1,useEmitterValue:useEmitterValue$1,useEmitter:useEmitter$1});function resolveGapValue(e,t,n){return"normal"===t||(null==t?void 0:t.endsWith("px"))||n(`${e} was not resolved to pixel value correctly`,t,LogLevel.WARN),"normal"===t?0:parseInt(null!=t?t:"0",10)}const IDLE_CALLBACK_FALLBACK_TIMEOUT=100;function requestIdleCallbackFallback(e,t){return setTimeout(e,Math.min(t?.timeout??1/0,IDLE_CALLBACK_FALLBACK_TIMEOUT))}const requestIdleCallback=("undefined"!=typeof window?window.requestIdleCallback:null)??requestIdleCallbackFallback,cancelIdleCallback=("undefined"!=typeof window?window.cancelIdleCallback:null)??clearTimeout,useReactTransition=React__default.default["useTransition".toString()];function useTransitionFallback(){return[!1,React.useCallback((e=>e()),[])]}const useTransition=useReactTransition??useTransitionFallback,visuallyHidden={position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"},EmojiPickerContext=React.createContext(null);function useEmojiPicker(){return nn(React.useContext(EmojiPickerContext),"EmojiPicker.Root is missing from the React tree.")}const EMOJIBASE_VERSION="15.3.0",EMOJIBASE_CDN_URL=`${Builder&&Builder.settings&&Builder.settings.unpkgUrl?Builder.settings.unpkgUrl:"https://unpkg.com"}/emojibase-data@${EMOJIBASE_VERSION}`,EMOJIBASE_EMOJIS_URL=e=>`${EMOJIBASE_CDN_URL}/${e}/data.json`,EMOJIBASE_MESSAGES_URL=e=>`${EMOJIBASE_CDN_URL}/${e}/messages.json`,EMOJIBASE_LOCALES=["bn","da","de","en","en-gb","es","es-mx","et","fi","fr","hi","hu","it","ja","ko","lt","ms","nb","nl","pl","pt","ru","sv","th","uk","zh","zh-hant"],EMOJIBASE_DEFAULT_LOCALE="en",CACHE_EMOJI_DATA_KEY=e=>`lb-emoji-data-${e}`,CACHE_EMOJI_METADATA_KEY=e=>`lb-emoji-metadata-${e}`,CACHE_EMOJI_SESSION_METADATA_KEY="lb-emoji-metadata",EMOJI_DETECTION_CANVAS_WIDTH=20,EMOJI_DETECTION_CANVAS_HEIGHT=25,EMOJI_DETECTION_COUNTRY_FLAG="🇫🇷";function generateRangeIndices(e,t){const n=[];for(let r=e;r<=t;r++)n.push(r);return n}function getStorageItem(e,t){const n=e.getItem(t);return n?JSON.parse(n):null}function setStorageItem(e,t,n){e.setItem(t,JSON.stringify(n))}async function fetchEtag(e){try{return(await fetch(e,{method:"HEAD"})).headers.get("etag")}catch(e){return null}}function getEmojibaseSupportedLocale(e){return EMOJIBASE_LOCALES.includes(e)?e:EMOJIBASE_DEFAULT_LOCALE}async function fetchEmojibaseData(e){const[{emojis:t,emojisEtag:n},{messages:r,messagesEtag:o}]=await Promise.all([fetch(EMOJIBASE_EMOJIS_URL(e)).then((async e=>({emojis:await e.json(),emojisEtag:e.headers.get("etag")}))),fetch(EMOJIBASE_MESSAGES_URL(e)).then((async e=>({messages:await e.json(),messagesEtag:e.headers.get("etag")})))]);return{emojis:t,messages:r,emojisEtag:n,messagesEtag:o}}async function fetchEmojibaseEtags(e){const[t,n]=await Promise.all([fetchEtag(EMOJIBASE_EMOJIS_URL(e)),fetchEtag(EMOJIBASE_MESSAGES_URL(e))]);return{emojisEtag:t,messagesEtag:n}}async function fetchEmojiData(e){const{emojis:t,emojisEtag:n,messages:r,messagesEtag:o}=await fetchEmojibaseData(e),a=r.subgroups.find((e=>"subdivision-flag"===e.key)),i=r.groups.filter((e=>"component"!==e.key)),s=t.filter((e=>"group"in e)),l=i.map((e=>({key:e.order,name:capitalize$1(e.message)}))),c=r.skinTones.map((e=>({key:e.key,name:capitalize$1(e.message)}))),u={emojis:s.map((e=>{const t={emoji:e.emoji,category:e.group,version:e.version,name:capitalize$1(e.label),tags:e.tags};return a&&e.subgroup===a.order&&(t.countryFlag=!0),t})),categories:l,skinTones:c};return setStorageItem(localStorage,CACHE_EMOJI_DATA_KEY(e),u),setStorageItem(localStorage,CACHE_EMOJI_METADATA_KEY(e),{emojisEtag:n,messagesEtag:o}),u}function detectEmojiSupport(e,t){e.clearRect(0,0,2*EMOJI_DETECTION_CANVAS_WIDTH,EMOJI_DETECTION_CANVAS_HEIGHT),e.fillStyle="#f00",e.fillText(t,0,22),e.fillStyle="#00f",e.fillText(t,EMOJI_DETECTION_CANVAS_WIDTH,22);const n=e.getImageData(0,0,EMOJI_DETECTION_CANVAS_WIDTH,EMOJI_DETECTION_CANVAS_HEIGHT).data,r=n.length;let o=0;for(;o<r&&!n[o+3];o+=4);if(o>=r)return!1;const a=EMOJI_DETECTION_CANVAS_WIDTH+o/4%EMOJI_DETECTION_CANVAS_WIDTH,i=Math.floor(o/4/EMOJI_DETECTION_CANVAS_WIDTH),s=e.getImageData(a,i,1,1).data;return n[o]===s[0]&&n[o+2]===s[2]&&!(e.measureText(t).width>=EMOJI_DETECTION_CANVAS_WIDTH)}function getEmojiFontFamily(){try{const e=document.createElement("span");e.style.display="none",e.dataset.emoji="",document.body.appendChild(e);const t=window.getComputedStyle(e).fontFamily;return document.body.removeChild(e),t}catch{return EMOJI_FONT_FAMILY}}function getEmojiSessionMetadata(e){const t=new Map;for(const n of e)t.has(n.version)||t.set(n.version,n.emoji);const n=[...t.keys()].sort(((e,t)=>t-e)),r=n[0]??0,o=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});if(!o)return{emojiVersion:r,countryFlags:!0};o.font=`${Math.floor(EMOJI_DETECTION_CANVAS_HEIGHT/2)}px ${getEmojiFontFamily()}`,o.textBaseline="top",o.canvas.width=2*EMOJI_DETECTION_CANVAS_WIDTH,o.canvas.height=EMOJI_DETECTION_CANVAS_HEIGHT;const a=detectEmojiSupport(o,EMOJI_DETECTION_COUNTRY_FLAG);for(const e of n){if(detectEmojiSupport(o,t.get(e)))return{emojiVersion:e,countryFlags:a}}return{emojiVersion:r,countryFlags:a}}async function getEmojiData(e){const t=getEmojibaseSupportedLocale(e),n=getStorageItem(sessionStorage,CACHE_EMOJI_SESSION_METADATA_KEY),r=getStorageItem(localStorage,CACHE_EMOJI_DATA_KEY(t));let o;if(r)if(n)o=r;else{const{emojisEtag:e,messagesEtag:n}=await fetchEmojibaseEtags(t),a=getStorageItem(localStorage,CACHE_EMOJI_METADATA_KEY(t));o=a&&e===a.emojisEtag&&n===a.messagesEtag?r:await fetchEmojiData(t)}else o=await fetchEmojiData(t);const a=n??getEmojiSessionMetadata(o.emojis);setStorageItem(sessionStorage,CACHE_EMOJI_SESSION_METADATA_KEY,a);return{emojis:o.emojis.filter((e=>{const t=e.version<=a.emojiVersion;return e.countryFlag?t&&a.countryFlags:t})),categories:o.categories,skinTones:o.skinTones}}function filterEmojis(e,t){if(!t)return e;const n=t.toLowerCase().trim();return e.filter((e=>e.name.toLowerCase().includes(n)||e.tags?.some((e=>e.toLowerCase().includes(n)))))}function generateEmojiPickerData(e,t,n){let r=0;const o=[],a=e.map(((e,t)=>({...e,index:t}))),i=[],s=[],l=[],c=t.map((e=>({...e,emojis:a.filter((t=>t.category===e.key))}))).filter((e=>e.emojis.length>0));for(const e of c){const t=chunk(e.emojis,n),a=r+t.length;o.push(...t),l.push(e.name),i.push(t.length),s.push(generateRangeIndices(r,a-1)),r=a}return{count:e.length,rows:o,categories:l,categoriesRowCounts:i,categoriesRowIndices:s}}const DEFAULT_COLUMNS=10,DEFAULT_LOCALE="en",LOADING_MINIMUM_TIMEOUT=100;function EmojiPickerRoot({columns:e=DEFAULT_COLUMNS,locale:t=DEFAULT_LOCALE,onEmojiSelect:n,children:r}){const o=React.useRef(),a=React.useRef(""),[,i]=useTransition(),[s,l]=React.useState(),[c,u]=React.useState(),[d,f]=React.useState(0),[p,m]=React.useState(0),[h,_]=React.useState("none"),g=React.useCallback((()=>{if(n){const e=s?.rows[p]?.[d];e&&n(e.emoji)}}),[s?.rows,n,d,p]),v=React.useCallback((()=>{f(0),m(0)}),[]),E=React.useCallback(((e,t)=>{_("pointer"),f(e),m(t)}),[]),y=React.useCallback(((e,t)=>{if(s)if(t.preventDefault(),"none"!==h)switch(_("keyboard"),e){case"left":if(0===d){const e=p-1,t=s.rows[e];t&&(m(e),f(t.length-1))}else f(d-1);break;case"right":{const e=s.rows[p];if(!e)return;if(d===e.length-1){const e=p+1;s.rows[e]&&(m(e),f(0))}else f(d+1);break}case"up":{const e=s.rows[p-1];e&&(m(p-1),e[d]||f(e.length-1));break}case"down":{const e=s.rows[p+1];e&&(m(p+1),e[d]||f(e.length-1));break}}else _("keyboard")}),[s,h,d,p]),b=React.useCallback((()=>{o.current&&i((()=>{l((()=>{if(!o.current)return;return generateEmojiPickerData(filterEmojis(o.current.emojis,a.current),o.current.categories,e)})),v()}))}),[e,v]),C=React.useCallback((e=>{a.current=e,b()}),[b]),R=React.useCallback((async e=>{try{o.current=await getEmojiData(e),b()}catch(e){u(e)}}),[b]);return React.useEffect((()=>{let e;const n=setTimeout((()=>{e=requestIdleCallback((()=>{R(t)}))}),LOADING_MINIMUM_TIMEOUT);return()=>{clearTimeout(n),cancelIdleCallback(e)}}),[t]),React.useEffect((()=>{"none"===h&&v()}),[h]),React__default.default.createElement(EmojiPickerContext.Provider,{value:{data:s,error:c,isLoading:!s&&!c,columns:e,onSearch:C,onEmojiSelect:n,selectCurrentEmoji:g,selectedRowIndex:p,selectedColumnIndex:d,moveSelection:y,setPointerSelection:E,interaction:h,setInteraction:_}},r)}const EmojiPickerSearch=React.forwardRef((({asChild:e,value:t,defaultValue:n,onChange:r,...o},a)=>{const i=e?Slot:"input",{onSearch:s,selectCurrentEmoji:l,moveSelection:c,interaction:u,setInteraction:d}=useEmojiPicker(),f=React.useCallback((e=>{if(r?.(e),e.isDefaultPrevented())return;const t=e.target.value;d(t?"keyboard":"none"),s(t)}),[r,s,d]),p=React.useCallback((e=>{e.isDefaultPrevented()||(isKey(e,"ArrowLeft")?c("left",e):isKey(e,"ArrowRight")?c("right",e):isKey(e,"ArrowUp")?c("up",e):isKey(e,"ArrowDown")?c("down",e):isKey(e,"Enter")&&"none"!==u&&(e.preventDefault(),l()))}),[u,c,l]);return React.useEffect((()=>{s(t?String(t):n?String(n):"")}),[]),React__default.default.createElement(i,{type:"search",value:t,defaultValue:n,onChange:f,onKeyDown:p,...o,ref:a})})),defaultContentComponents={CategoryHeader:({category:e,...t})=>React__default.default.createElement("div",{...t},e),Row:({children:e,attributes:t,...n})=>React__default.default.createElement("div",{...n},e),Emoji:({emoji:e,...t})=>React__default.default.createElement("button",{...t},React__default.default.createElement(Emoji$1,{emoji:e})),Loading:e=>React__default.default.createElement("div",{...e}),Empty:e=>React__default.default.createElement("div",{...e}),Grid:e=>React__default.default.createElement("div",{...e}),Error:({error:e,...t})=>React__default.default.createElement("div",{...t})},placeholderRowAttributes={rowIndex:-1,categoryRowIndex:-1,categoryRowsCount:0},VirtuosoScroller=React.forwardRef((({children:e,...t},n)=>React__default.default.createElement("div",{...t,tabIndex:-1,"data-testid":void 0,ref:n},e))),VirtuosoTopList=React.forwardRef((({children:e,...t},n)=>React__default.default.createElement("div",{...t,"data-testid":void 0,ref:n},e))),EmojiPickerContent=React.forwardRef((({components:e,asChild:t,...n},r)=>{const o=t?Slot:"div",a=React.useRef(null),i=React.useRef(null),s=React.useRef(0),l=React.useRef(0),c=React.useRef(0),{data:u,error:d,isLoading:f,columns:p,onEmojiSelect:m,selectedColumnIndex:h,selectedRowIndex:_,setPointerSelection:g,interaction:v,setInteraction:E}=useEmojiPicker(),y=React.useMemo((()=>u?.rows[_]?.[h]),[u?.rows,h,_]),{Loading:b,Empty:C,Error:R,CategoryHeader:w,Grid:S,Row:D,Emoji:T}=React.useMemo((()=>({...defaultContentComponents,...e})),[e]),O=React.useMemo((()=>React.forwardRef((({children:e,...t},n)=>React__default.default.createElement("div",{role:"grid","aria-colcount":p,...t,"data-testid":void 0,ref:n},e)))),[p]),A=React.useMemo((()=>Array(p).fill("🌫️")),[p]),I=React.useCallback((e=>{e.preventDefault()}),[]),x=React.useCallback((()=>{"pointer"===v&&E("none")}),[v,E]);useLayoutEffect((()=>{if(!i.current)return;const e=i.current.childNodes[0],t=i.current.childNodes[1];if(e instanceof HTMLElement){const t=window.getComputedStyle(e);s.current=parseFloat(t.scrollMarginTop),l.current=parseFloat(t.scrollMarginBottom)}t instanceof HTMLElement&&(c.current=t.offsetHeight)}),[]);const N=React.useCallback((({itemTop:e,itemBottom:t,viewportTop:n,viewportBottom:r,locationParams:{behavior:o,align:a,...i}})=>e-(c.current+s.current)<n?{...i,behavior:o,align:a??"start"}:t>r?{...i,behavior:o,align:a??"end",offset:l.current}:null),[]);return React.useEffect((()=>{"keyboard"===v&&a.current?.scrollIntoView({index:_,behavior:"auto",calculateViewLocation:N})}),[v,_,N]),React__default.default.createElement(o,{...n,ref:r},React__default.default.createElement("div",{style:{visibility:"hidden",height:0},ref:i},React__default.default.createElement(D,{attributes:placeholderRowAttributes},A.map(((e,t)=>React__default.default.createElement(T,{emoji:e,key:t})))),React__default.default.createElement(w,{category:"Category"})),f?React__default.default.createElement(b,null):d?React__default.default.createElement(R,{error:d}):0===u.count?React__default.default.createElement(C,null):React__default.default.createElement(S,null,React__default.default.createElement(GroupedVirtuoso,{ref:a,components:{Scroller:VirtuosoScroller,List:O,TopItemList:VirtuosoTopList},groupCounts:u.categoriesRowCounts,groupContent:e=>{const t=u.categories[e];return t?React__default.default.createElement(w,{category:t}):null},itemContent:(e,t)=>{const n=u.rows[e],r=u.categoriesRowIndices[t]?.indexOf(e),o=u.categoriesRowCounts[t];return void 0===n||void 0===r||void 0===o?null:React__default.default.createElement(D,{attributes:{rowIndex:e,categoryRowIndex:r,categoryRowsCount:o}},n.map(((t,n)=>{const r="none"!==v&&h===n&&_===e;return React__default.default.createElement(T,{key:t.emoji,role:"gridcell","aria-colindex":n,"aria-selected":r||void 0,"data-selected":r||void 0,onMouseDown:I,tabIndex:-1,onPointerEnter:()=>{g(n,e)},onPointerLeave:x,onClick:e=>{m?.(t.emoji),e.stopPropagation()},emoji:t.emoji})})))}})),y&&"none"!==v&&React__default.default.createElement("div",{"aria-live":"polite",style:visuallyHidden},y.name))})),BASE=1e3,UNITS=["B","KB","MB","GB"];function formatFileSize(e,t){if(0===e)return`0 ${UNITS[1]}`;let n;n=0===e?1:Math.max(1,Math.min(Math.floor(Math.log(Math.abs(e))/Math.log(BASE)),UNITS.length-1));let r=e/BASE**n,o=1;1===n&&(r>=10&&(o=0),r<.1&&r>0&&(o=2),r<.01&&(r=.01));const a=UNITS[n];return`${numberFormat(t,{minimumFractionDigits:0,maximumFractionDigits:o}).format(r)} ${a}`}function createContextScope$3(e,t=[]){let n=[];const r=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const r=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return r.scopeName=e,[function(t,r){const o=React__namespace.createContext(r),a=n.length;n=[...n,r];const i=t=>{const{scope:n,children:r,...i}=t,s=n?.[e]?.[a]||o,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:r})};return i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e]?.[a]||o,l=React__namespace.useContext(s);if(l)return l;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$3(r,...t)]}function composeContextScopes$3(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}function useEscapeKeydown(e,t=globalThis?.document){const n=useCallbackRef$1(e);React__namespace.useEffect((()=>{const e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})}),[n,t])}var DISMISSABLE_LAYER_NAME="DismissableLayer",CONTEXT_UPDATE="dismissableLayer.update",POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",FOCUS_OUTSIDE="dismissableLayer.focusOutside",originalBodyPointerEvents,DismissableLayerContext=React__namespace.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),DismissableLayer=React__namespace.forwardRef(((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:i,onDismiss:s,...l}=e,c=React__namespace.useContext(DismissableLayerContext),[u,d]=React__namespace.useState(null),f=u?.ownerDocument??globalThis?.document,[,p]=React__namespace.useState({}),m=useComposedRefs(t,(e=>d(e))),h=Array.from(c.layers),[_]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),g=h.indexOf(_),v=u?h.indexOf(u):-1,E=c.layersWithOutsidePointerEventsDisabled.size>0,y=v>=g,b=usePointerDownOutside((e=>{const t=e.target,n=[...c.branches].some((e=>e.contains(t)));y&&!n&&(o?.(e),i?.(e),e.defaultPrevented||s?.())}),f),C=useFocusOutside((e=>{const t=e.target;[...c.branches].some((e=>e.contains(t)))||(a?.(e),i?.(e),e.defaultPrevented||s?.())}),f);return useEscapeKeydown((e=>{v===c.layers.size-1&&(r?.(e),!e.defaultPrevented&&s&&(e.preventDefault(),s()))}),f),React__namespace.useEffect((()=>{if(u)return n&&(0===c.layersWithOutsidePointerEventsDisabled.size&&(originalBodyPointerEvents=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(u)),c.layers.add(u),dispatchUpdate(),()=>{n&&1===c.layersWithOutsidePointerEventsDisabled.size&&(f.body.style.pointerEvents=originalBodyPointerEvents)}}),[u,f,n,c]),React__namespace.useEffect((()=>()=>{u&&(c.layers.delete(u),c.layersWithOutsidePointerEventsDisabled.delete(u),dispatchUpdate())}),[u,c]),React__namespace.useEffect((()=>{const e=()=>p({});return document.addEventListener(CONTEXT_UPDATE,e),()=>document.removeEventListener(CONTEXT_UPDATE,e)}),[]),jsxRuntime.exports.jsx(Primitive.div,{...l,ref:m,style:{pointerEvents:E?y?"auto":"none":void 0,...e.style},onFocusCapture:composeEventHandlers(e.onFocusCapture,C.onFocusCapture),onBlurCapture:composeEventHandlers(e.onBlurCapture,C.onBlurCapture),onPointerDownCapture:composeEventHandlers(e.onPointerDownCapture,b.onPointerDownCapture)})}));DismissableLayer.displayName=DISMISSABLE_LAYER_NAME;var BRANCH_NAME="DismissableLayerBranch",DismissableLayerBranch=React__namespace.forwardRef(((e,t)=>{const n=React__namespace.useContext(DismissableLayerContext),r=React__namespace.useRef(null),o=useComposedRefs(t,r);return React__namespace.useEffect((()=>{const e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}}),[n.branches]),jsxRuntime.exports.jsx(Primitive.div,{...e,ref:o})}));function usePointerDownOutside(e,t=globalThis?.document){const n=useCallbackRef$1(e),r=React__namespace.useRef(!1),o=React__namespace.useRef((()=>{}));return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!r.current){let r=function(){handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE,n,a,{discrete:!0})};const a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",o.current),o.current=r,t.addEventListener("click",o.current,{once:!0})):r()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout((()=>{t.addEventListener("pointerdown",e)}),0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",o.current)}}),[t,n]),{onPointerDownCapture:()=>r.current=!0}}function useFocusOutside(e,t=globalThis?.document){const n=useCallbackRef$1(e),r=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!r.current){handleAndDispatchCustomEvent(FOCUS_OUTSIDE,n,{originalEvent:e},{discrete:!1})}};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)}),[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function dispatchUpdate(){const e=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(e)}function handleAndDispatchCustomEvent(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?dispatchDiscreteCustomEvent(o,a):o.dispatchEvent(a)}DismissableLayerBranch.displayName=BRANCH_NAME;var useLayoutEffect2=Boolean(globalThis?.document)?React__namespace.useLayoutEffect:()=>{},useReactId=React__namespace["useId".toString()]||(()=>{}),count$1=0;function useId(e){const[t,n]=React__namespace.useState(useReactId());return useLayoutEffect2((()=>{e||n((e=>e??String(count$1++)))}),[e]),e||(t?`radix-${t}`:"")}var NAME$1="Arrow",Arrow$1=React__namespace.forwardRef(((e,t)=>{const{children:n,width:r=10,height:o=5,...a}=e;return jsxRuntime.exports.jsx(Primitive.svg,{...a,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:jsxRuntime.exports.jsx("polygon",{points:"0,0 30,0 15,10"})})}));Arrow$1.displayName=NAME$1;var Root$2=Arrow$1;function createContextScope$2(e,t=[]){let n=[];const r=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const r=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return r.scopeName=e,[function(t,r){const o=React__namespace.createContext(r),a=n.length;function i(t){const{scope:n,children:r,...i}=t,s=n?.[e][a]||o,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:r})}return n=[...n,r],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||o,l=React__namespace.useContext(s);if(l)return l;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$2(r,...t)]}function composeContextScopes$2(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}function useSize(e){const[t,n]=React__namespace.useState(void 0);return useLayoutEffect2((()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const t=new ResizeObserver((t=>{if(!Array.isArray(t))return;if(!t.length)return;const r=t[0];let o,a;if("borderBoxSize"in r){const e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;o=t.inlineSize,a=t.blockSize}else o=e.offsetWidth,a=e.offsetHeight;n({width:o,height:a})}));return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)}),[e]),t}var POPPER_NAME="Popper",[createPopperContext,createPopperScope]=createContextScope$2(POPPER_NAME),[PopperProvider,usePopperContext]=createPopperContext(POPPER_NAME),Popper=e=>{const{__scopePopper:t,children:n}=e,[r,o]=React__namespace.useState(null);return jsxRuntime.exports.jsx(PopperProvider,{scope:t,anchor:r,onAnchorChange:o,children:n})};Popper.displayName=POPPER_NAME;var ANCHOR_NAME$2="PopperAnchor",PopperAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,a=usePopperContext(ANCHOR_NAME$2,n),i=React__namespace.useRef(null),s=useComposedRefs(t,i);return React__namespace.useEffect((()=>{a.onAnchorChange(r?.current||i.current)})),r?null:jsxRuntime.exports.jsx(Primitive.div,{...o,ref:s})}));PopperAnchor.displayName=ANCHOR_NAME$2;var CONTENT_NAME$4="PopperContent",[PopperContentProvider,useContentContext]=createPopperContext(CONTENT_NAME$4),PopperContent=React__namespace.forwardRef(((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:a="center",alignOffset:i=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:c=[],collisionPadding:u=0,sticky:d="partial",hideWhenDetached:f=!1,updatePositionStrategy:p="optimized",onPlaced:m,...h}=e,_=usePopperContext(CONTENT_NAME$4,n),[g,v]=React__namespace.useState(null),E=useComposedRefs(t,(e=>v(e))),[y,b]=React__namespace.useState(null),C=useSize(y),R=C?.width??0,w=C?.height??0,S=r+("center"!==a?"-"+a:""),D="number"==typeof u?u:{top:0,right:0,bottom:0,left:0,...u},T=Array.isArray(c)?c:[c],O=T.length>0,A={padding:D,boundary:T.filter(isNotNull),altBoundary:O},{refs:I,floatingStyles:x,placement:N,isPositioned:F,middlewareData:P}=useFloating({strategy:"fixed",placement:S,whileElementsMounted:(...e)=>autoUpdate(...e,{animationFrame:"always"===p}),elements:{reference:_.anchor},middleware:[offset({mainAxis:o+w,alignmentAxis:i}),l&&shift({mainAxis:!0,crossAxis:!1,limiter:"partial"===d?limitShift():void 0,...A}),l&&flip({...A}),size$1({...A,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{const{width:o,height:a}=t.reference,i=e.floating.style;i.setProperty("--radix-popper-available-width",`${n}px`),i.setProperty("--radix-popper-available-height",`${r}px`),i.setProperty("--radix-popper-anchor-width",`${o}px`),i.setProperty("--radix-popper-anchor-height",`${a}px`)}}),y&&arrow({element:y,padding:s}),transformOrigin({arrowWidth:R,arrowHeight:w}),f&&hide({strategy:"referenceHidden",...A})]}),[k,$]=getSideAndAlignFromPlacement(N),M=useCallbackRef$1(m);useLayoutEffect2((()=>{F&&M?.()}),[F,M]);const B=P.arrow?.x,L=P.arrow?.y,j=0!==P.arrow?.centerOffset,[U,V]=React__namespace.useState();return useLayoutEffect2((()=>{g&&V(window.getComputedStyle(g).zIndex)}),[g]),jsxRuntime.exports.jsx("div",{ref:I.setFloating,"data-radix-popper-content-wrapper":"",style:{...x,transform:F?x.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:U,"--radix-popper-transform-origin":[P.transformOrigin?.x,P.transformOrigin?.y].join(" "),...P.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:jsxRuntime.exports.jsx(PopperContentProvider,{scope:n,placedSide:k,onArrowChange:b,arrowX:B,arrowY:L,shouldHideArrow:j,children:jsxRuntime.exports.jsx(Primitive.div,{"data-side":k,"data-align":$,...h,ref:E,style:{...h.style,animation:F?void 0:"none"}})})})}));PopperContent.displayName=CONTENT_NAME$4;var ARROW_NAME$4="PopperArrow",OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"right"},PopperArrow=React__namespace.forwardRef((function(e,t){const{__scopePopper:n,...r}=e,o=useContentContext(ARROW_NAME$4,n),a=OPPOSITE_SIDE[o.placedSide];return jsxRuntime.exports.jsx("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:jsxRuntime.exports.jsx(Root$2,{...r,ref:t,style:{...r.style,display:"block"}})})}));function isNotNull(e){return null!==e}PopperArrow.displayName=ARROW_NAME$4;var transformOrigin=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:o}=t,a=0!==o.arrow?.centerOffset,i=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[l,c]=getSideAndAlignFromPlacement(n),u={start:"0%",center:"50%",end:"100%"}[c],d=(o.arrow?.x??0)+i/2,f=(o.arrow?.y??0)+s/2;let p="",m="";return"bottom"===l?(p=a?u:`${d}px`,m=-s+"px"):"top"===l?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):"right"===l?(p=-s+"px",m=a?u:`${f}px`):"left"===l&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function getSideAndAlignFromPlacement(e){const[t,n="center"]=e.split("-");return[t,n]}var Root2$2=Popper,Anchor=PopperAnchor,Content=PopperContent,Arrow=PopperArrow,PORTAL_NAME$4="Portal",Portal$3=React__namespace.forwardRef(((e,t)=>{const{container:n,...r}=e,[o,a]=React__namespace.useState(!1);useLayoutEffect2((()=>a(!0)),[]);const i=n||o&&globalThis?.document?.body;return i?ReactDOM__default.default.createPortal(jsxRuntime.exports.jsx(Primitive.div,{...r,ref:t}),i):null}));function useStateMachine(e,t){return React__namespace.useReducer(((e,n)=>t[e][n]??e),e)}Portal$3.displayName=PORTAL_NAME$4;var Presence=e=>{const{present:t,children:n}=e,r=usePresence(t),o="function"==typeof n?n({present:r.isPresent}):React__namespace.Children.only(n),a=useComposedRefs(r.ref,getElementRef(o));return"function"==typeof n||r.isPresent?React__namespace.cloneElement(o,{ref:a}):null};function usePresence(e){const[t,n]=React__namespace.useState(),r=React__namespace.useRef({}),o=React__namespace.useRef(e),a=React__namespace.useRef("none"),i=e?"mounted":"unmounted",[s,l]=useStateMachine(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return React__namespace.useEffect((()=>{const e=getAnimationName(r.current);a.current="mounted"===s?e:"none"}),[s]),useLayoutEffect2((()=>{const t=r.current,n=o.current;if(n!==e){const r=a.current,i=getAnimationName(t);if(e)l("MOUNT");else if("none"===i||"none"===t?.display)l("UNMOUNT");else{l(n&&r!==i?"ANIMATION_OUT":"UNMOUNT")}o.current=e}}),[e,l]),useLayoutEffect2((()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,i=a=>{const i=getAnimationName(r.current).includes(a.animationName);if(a.target===t&&i&&(l("ANIMATION_END"),!o.current)){const r=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=r)}))}},s=e=>{e.target===t&&(a.current=getAnimationName(r.current))};return t.addEventListener("animationstart",s),t.addEventListener("animationcancel",i),t.addEventListener("animationend",i),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",s),t.removeEventListener("animationcancel",i),t.removeEventListener("animationend",i)}}l("ANIMATION_END")}),[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:React__namespace.useCallback((e=>{e&&(r.current=getComputedStyle(e)),n(e)}),[])}}function getAnimationName(e){return e?.animationName||"none"}function getElementRef(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}Presence.displayName="Presence";var NAME="VisuallyHidden",VisuallyHidden=React__namespace.forwardRef(((e,t)=>jsxRuntime.exports.jsx(Primitive.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}})));VisuallyHidden.displayName=NAME;var Root$1=VisuallyHidden,[createTooltipContext,createTooltipScope]=createContextScope$3("Tooltip",[createPopperScope]),usePopperScope$2=createPopperScope(),PROVIDER_NAME="TooltipProvider",DEFAULT_DELAY_DURATION=700,TOOLTIP_OPEN="tooltip.open",[TooltipProviderContextProvider,useTooltipProviderContext]=createTooltipContext(PROVIDER_NAME),TooltipProvider=e=>{const{__scopeTooltip:t,delayDuration:n=DEFAULT_DELAY_DURATION,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:a}=e,[i,s]=React__namespace.useState(!0),l=React__namespace.useRef(!1),c=React__namespace.useRef(0);return React__namespace.useEffect((()=>{const e=c.current;return()=>window.clearTimeout(e)}),[]),jsxRuntime.exports.jsx(TooltipProviderContextProvider,{scope:t,isOpenDelayed:i,delayDuration:n,onOpen:React__namespace.useCallback((()=>{window.clearTimeout(c.current),s(!1)}),[]),onClose:React__namespace.useCallback((()=>{window.clearTimeout(c.current),c.current=window.setTimeout((()=>s(!0)),r)}),[r]),isPointerInTransitRef:l,onPointerInTransitChange:React__namespace.useCallback((e=>{l.current=e}),[]),disableHoverableContent:o,children:a})};TooltipProvider.displayName=PROVIDER_NAME;var TOOLTIP_NAME="Tooltip",[TooltipContextProvider,useTooltipContext]=createTooltipContext(TOOLTIP_NAME),Tooltip$1=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o=!1,onOpenChange:a,disableHoverableContent:i,delayDuration:s}=e,l=useTooltipProviderContext(TOOLTIP_NAME,e.__scopeTooltip),c=usePopperScope$2(t),[u,d]=React__namespace.useState(null),f=useId(),p=React__namespace.useRef(0),m=i??l.disableHoverableContent,h=s??l.delayDuration,_=React__namespace.useRef(!1),[g=!1,v]=useControllableState$1({prop:r,defaultProp:o,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))):l.onClose(),a?.(e)}}),E=React__namespace.useMemo((()=>g?_.current?"delayed-open":"instant-open":"closed"),[g]),y=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=0,_.current=!1,v(!0)}),[v]),b=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=0,v(!1)}),[v]),C=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=window.setTimeout((()=>{_.current=!0,v(!0),p.current=0}),h)}),[h,v]);return React__namespace.useEffect((()=>()=>{p.current&&(window.clearTimeout(p.current),p.current=0)}),[]),jsxRuntime.exports.jsx(Root2$2,{...c,children:jsxRuntime.exports.jsx(TooltipContextProvider,{scope:t,contentId:f,open:g,stateAttribute:E,trigger:u,onTriggerChange:d,onTriggerEnter:React__namespace.useCallback((()=>{l.isOpenDelayed?C():y()}),[l.isOpenDelayed,C,y]),onTriggerLeave:React__namespace.useCallback((()=>{m?b():(window.clearTimeout(p.current),p.current=0)}),[b,m]),onOpen:y,onClose:b,disableHoverableContent:m,children:n})})};Tooltip$1.displayName=TOOLTIP_NAME;var TRIGGER_NAME$2="TooltipTrigger",TooltipTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,...r}=e,o=useTooltipContext(TRIGGER_NAME$2,n),a=useTooltipProviderContext(TRIGGER_NAME$2,n),i=usePopperScope$2(n),s=useComposedRefs(t,React__namespace.useRef(null),o.onTriggerChange),l=React__namespace.useRef(!1),c=React__namespace.useRef(!1),u=React__namespace.useCallback((()=>l.current=!1),[]);return React__namespace.useEffect((()=>()=>document.removeEventListener("pointerup",u)),[u]),jsxRuntime.exports.jsx(Anchor,{asChild:!0,...i,children:jsxRuntime.exports.jsx(Primitive.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:s,onPointerMove:composeEventHandlers(e.onPointerMove,(e=>{"touch"!==e.pointerType&&(c.current||a.isPointerInTransitRef.current||(o.onTriggerEnter(),c.current=!0))})),onPointerLeave:composeEventHandlers(e.onPointerLeave,(()=>{o.onTriggerLeave(),c.current=!1})),onPointerDown:composeEventHandlers(e.onPointerDown,(()=>{l.current=!0,document.addEventListener("pointerup",u,{once:!0})})),onFocus:composeEventHandlers(e.onFocus,(()=>{l.current||o.onOpen()})),onBlur:composeEventHandlers(e.onBlur,o.onClose),onClick:composeEventHandlers(e.onClick,o.onClose)})})}));TooltipTrigger.displayName=TRIGGER_NAME$2;var PORTAL_NAME$3="TooltipPortal",[PortalProvider$2,usePortalContext$2]=createTooltipContext(PORTAL_NAME$3,{forceMount:void 0}),TooltipPortal=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,a=useTooltipContext(PORTAL_NAME$3,t);return jsxRuntime.exports.jsx(PortalProvider$2,{scope:t,forceMount:n,children:jsxRuntime.exports.jsx(Presence,{present:n||a.open,children:jsxRuntime.exports.jsx(Portal$3,{asChild:!0,container:o,children:r})})})};TooltipPortal.displayName=PORTAL_NAME$3;var CONTENT_NAME$3="TooltipContent",TooltipContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext$2(CONTENT_NAME$3,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...a}=e,i=useTooltipContext(CONTENT_NAME$3,e.__scopeTooltip);return jsxRuntime.exports.jsx(Presence,{present:r||i.open,children:i.disableHoverableContent?jsxRuntime.exports.jsx(TooltipContentImpl,{side:o,...a,ref:t}):jsxRuntime.exports.jsx(TooltipContentHoverable,{side:o,...a,ref:t})})})),TooltipContentHoverable=React__namespace.forwardRef(((e,t)=>{const n=useTooltipContext(CONTENT_NAME$3,e.__scopeTooltip),r=useTooltipProviderContext(CONTENT_NAME$3,e.__scopeTooltip),o=React__namespace.useRef(null),a=useComposedRefs(t,o),[i,s]=React__namespace.useState(null),{trigger:l,onClose:c}=n,u=o.current,{onPointerInTransitChange:d}=r,f=React__namespace.useCallback((()=>{s(null),d(!1)}),[d]),p=React__namespace.useCallback(((e,t)=>{const n=e.currentTarget,r={x:e.clientX,y:e.clientY},o=getHull([...getPaddedExitPoints(r,getExitSideFromRect(r,n.getBoundingClientRect())),...getPointsFromRect(t.getBoundingClientRect())]);s(o),d(!0)}),[d]);return React__namespace.useEffect((()=>()=>f()),[f]),React__namespace.useEffect((()=>{if(l&&u){const e=e=>p(e,u),t=e=>p(e,l);return l.addEventListener("pointerleave",e),u.addEventListener("pointerleave",t),()=>{l.removeEventListener("pointerleave",e),u.removeEventListener("pointerleave",t)}}}),[l,u,p,f]),React__namespace.useEffect((()=>{if(i){const e=e=>{const t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||u?.contains(t),o=!isPointInPolygon$1(n,i);r?f():o&&(f(),c())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}}),[l,u,i,c,f]),jsxRuntime.exports.jsx(TooltipContentImpl,{...e,ref:a})})),[VisuallyHiddenContentContextProvider,useVisuallyHiddenContentContext]=createTooltipContext(TOOLTIP_NAME,{isInside:!1}),TooltipContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:a,onPointerDownOutside:i,...s}=e,l=useTooltipContext(CONTENT_NAME$3,n),c=usePopperScope$2(n),{onClose:u}=l;return React__namespace.useEffect((()=>(document.addEventListener(TOOLTIP_OPEN,u),()=>document.removeEventListener(TOOLTIP_OPEN,u))),[u]),React__namespace.useEffect((()=>{if(l.trigger){const e=e=>{const t=e.target;t?.contains(l.trigger)&&u()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}}),[l.trigger,u]),jsxRuntime.exports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:i,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:jsxRuntime.exports.jsxs(Content,{"data-state":l.stateAttribute,...c,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[jsxRuntime.exports.jsx(Slottable,{children:r}),jsxRuntime.exports.jsx(VisuallyHiddenContentContextProvider,{scope:n,isInside:!0,children:jsxRuntime.exports.jsx(Root$1,{id:l.contentId,role:"tooltip",children:o||r})})]})})}));TooltipContent.displayName=CONTENT_NAME$3;var ARROW_NAME$3="TooltipArrow",TooltipArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,...r}=e,o=usePopperScope$2(n);return useVisuallyHiddenContentContext(ARROW_NAME$3,n).isInside?null:jsxRuntime.exports.jsx(Arrow,{...o,...r,ref:t})}));function getExitSideFromRect(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,o,a)){case a:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function getPaddedExitPoints(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}function getPointsFromRect(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}function isPointInPolygon$1(e,t){const{x:n,y:r}=e;let o=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){const i=t[e].x,s=t[e].y,l=t[a].x,c=t[a].y;s>r!=c>r&&n<(l-i)*(r-s)/(c-s)+i&&(o=!o)}return o}function getHull(e){const t=e.slice();return t.sort(((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0)),getHullPresorted(t)}function getHullPresorted(e){if(e.length<=1)return e.slice();const t=[];for(let n=0;n<e.length;n++){const r=e[n];for(;t.length>=2;){const e=t[t.length-1],n=t[t.length-2];if(!((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x)))break;t.pop()}t.push(r)}t.pop();const n=[];for(let t=e.length-1;t>=0;t--){const r=e[t];for(;n.length>=2;){const e=n[n.length-1],t=n[n.length-2];if(!((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x)))break;n.pop()}n.push(r)}return n.pop(),1===t.length&&1===n.length&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}TooltipArrow.displayName=ARROW_NAME$3;var Root3$1=Tooltip$1,Trigger$1=TooltipTrigger,Portal$2=TooltipPortal,Content2$3=TooltipContent;const KEYS={alt:()=>({title:"Alt",key:"⌥"}),mod:()=>isApple()?{title:"Command",key:"⌘"}:{title:"Ctrl",key:"⌃"},shift:()=>({title:"Shift",key:"⇧"}),enter:()=>({title:"Enter",key:"⏎"})},Tooltip=React.forwardRef((({children:e,content:t,multiline:n,className:r,...o},a)=>{const{portalContainer:i}=useLiveblocksUIConfig();return React__default.default.createElement(Root3$1,{disableHoverableContent:!0},React__default.default.createElement(Trigger$1,{asChild:!0,ref:a},e),React__default.default.createElement(Portal$2,{container:i},React__default.default.createElement(Content2$3,{className:classNames("lb-root lb-portal lb-tooltip",n&&"lb-tooltip:multiline",r),side:"top",align:"center",sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,...o},t)))})),ShortcutTooltip=React.forwardRef((({children:e,content:t,shortcut:n,...r},o)=>React__default.default.createElement(Tooltip,{content:React__default.default.createElement(React__default.default.Fragment,null,t,n&&React__default.default.createElement("kbd",{className:"lb-tooltip-shortcut"},n)),...r,ref:o},e)));function ShortcutTooltipKey({name:e,...t}){const{title:n,key:r}=React.useMemo((()=>KEYS[e]?.()),[e]);return React__default.default.createElement("abbr",{title:n,...t},r)}const MAX_DISPLAYED_MEDIA_SIZE=62914560,fileExtensionRegex=/^(.+?)(\.[^.]+)?$/;function splitFileName(e){const t=e.match(fileExtensionRegex);return{base:t?.[1]??e,extension:t?.[2]}}function getAttachmentIconGlyph(e){return"application/zip"===e||"application/gzip"===e||"application/vnd.rar"===e||"application/x-rar-compressed"===e||"application/x-7z-compressed"===e||"application/x-zip-compressed"===e||"application/x-tar"===e||"application/x-bzip"===e||"application/x-bzip2"===e?React__default.default.createElement("path",{d:"M13 15h2v1h-1.5a.5.5 0 0 0 0 1H15v1h-1.5a.5.5 0 0 0 0 1H15v1h-1.5a.5.5 0 0 0 0 1h1a.5.5 0 0 0 .5-.5V20h1.5a.5.5 0 0 0 0-1H15v-1h1.5a.5.5 0 0 0 0-1H15v-1h1.5a.5.5 0 0 0 .5-.5V15a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2Z"}):e.startsWith("text/")||e.startsWith("font/")||e.startsWith("application/")?React__default.default.createElement("path",{d:"M10 16a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 0 1h-8a.5.5 0 0 1-.5-.5Z"}):e.startsWith("image/")?React__default.default.createElement("path",{d:"M12 16h6a1 1 0 0 1 1 1v3l-1.293-1.293a1 1 0 0 0-1.414 0L14.09 20.91l-.464-.386a1 1 0 0 0-1.265-.013l-1.231.985A.995.995 0 0 1 11 21v-4a1 1 0 0 1 1-1Zm-2 1a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2v-4Zm3 2a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"}):e.startsWith("video/")?React__default.default.createElement("path",{d:"M12 15.71a1 1 0 0 1 1.49-.872l4.96 2.79a1 1 0 0 1 0 1.744l-4.96 2.79A1 1 0 0 1 12 21.29v-5.58Z"}):e.startsWith("audio/")?React__default.default.createElement("path",{d:"M15 15a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 1 0v-7a.5.5 0 0 0-.5-.5Zm-2.5 2.5a.5.5 0 0 1 1 0v3a.5.5 0 0 1-1 0v-3Zm-2 1a.5.5 0 0 1 1 0v1a.5.5 0 0 1-1 0v-1Zm6-1a.5.5 0 0 1 1 0v3a.5.5 0 0 1-1 0v-3ZM19 16a.5.5 0 0 0-.5.5v5a.5.5 0 0 0 1 0v-5a.5.5 0 0 0-.5-.5Z"}):null}const AttachmentFileIcon=React.memo((({mimeType:e})=>{const t=React.useMemo((()=>getAttachmentIconGlyph(e)),[e]);return React__default.default.createElement("svg",{className:"lb-attachment-icon",width:30,height:30,viewBox:"0 0 30 30",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",xmlns:"http://www.w3.org/2000/svg"},React__default.default.createElement("path",{d:"M6 5a2 2 0 0 1 2-2h5.843a4 4 0 0 1 2.829 1.172l6.156 6.156A4 4 0 0 1 24 13.157V25a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V5Z",className:"lb-attachment-icon-shadow"}),React__default.default.createElement("path",{d:"M6 5a2 2 0 0 1 2-2h5.843a4 4 0 0 1 2.829 1.172l6.156 6.156A4 4 0 0 1 24 13.157V25a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V5Z",className:"lb-attachment-icon-background"}),React__default.default.createElement("path",{d:"M14.382 3.037a4 4 0 0 1 2.29 1.135l6.156 6.157a4 4 0 0 1 1.136 2.289A2 2 0 0 0 22 11h-4a2 2 0 0 1-2-2V5a2 2 0 0 0-1.618-1.963Z",className:"lb-attachment-icon-fold"}),t&&React__default.default.createElement("g",{className:"lb-attachment-icon-glyph"},t))}));function AttachmentImagePreview({attachment:e}){const{url:t}=useAttachmentUrl(e.id),[n,r]=React.useState(!1),o=React.useCallback((()=>{r(!0)}),[]);return React__default.default.createElement(React__default.default.Fragment,null,n?null:React__default.default.createElement(SpinnerIcon,null),t?React__default.default.createElement("div",{className:"lb-attachment-preview-media","data-hidden":n?void 0:""},React__default.default.createElement("img",{src:t,loading:"lazy",onLoad:o})):null)}function AttachmentVideoPreview({attachment:e}){const{url:t}=useAttachmentUrl(e.id),[n,r]=React.useState(!1),o=React.useCallback((()=>{r(!0)}),[]);return React__default.default.createElement(React__default.default.Fragment,null,n?null:React__default.default.createElement(SpinnerIcon,null),t?React__default.default.createElement("div",{className:"lb-attachment-preview-media","data-hidden":n?void 0:""},React__default.default.createElement("video",{src:t,onLoadedData:o})):null)}function AttachmentPreview({attachment:e,allowMediaPreview:t=!0}){const n=_useIsInsideRoom(),r="attachment"===e.type||"uploaded"===e.status;if(t&&r&&n&&e.size<=MAX_DISPLAYED_MEDIA_SIZE){if(e.mimeType.startsWith("image/"))return React__default.default.createElement(AttachmentImagePreview,{attachment:e});if(e.mimeType.startsWith("video/"))return React__default.default.createElement(AttachmentVideoPreview,{attachment:e})}return React__default.default.createElement(AttachmentFileIcon,{mimeType:e.mimeType})}function AttachmentName({attachment:e}){const{base:t,extension:n}=React.useMemo((()=>splitFileName(e.name)),[e.name]);return React__default.default.createElement("span",{className:"lb-attachment-name",title:e.name},React__default.default.createElement("span",{className:"lb-attachment-name-base"},t),n&&React__default.default.createElement("span",{className:"lb-attachment-name-extension"},n))}function useClickOnKeyDown(e){return React.useCallback((t=>{if(e?.(t),!t.isDefaultPrevented()&&("Enter"===t.key||" "===t.key)){t.preventDefault();const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});t.target.dispatchEvent(e)}}),[e])}function useAttachmentContent(e,t){const n=useOverrides(t),r=useComposerAttachmentsContextOrNull(),o=Boolean(r),a=r?.maxAttachmentSize,i="localAttachment"===e.type?e.status:void 0,s="uploading"===i,l="error"===i;let c;c="localAttachment"===e.type&&"error"===e.status?e.error instanceof AttachmentTooLargeError?"server"===e.error.origin?n.ATTACHMENT_TOO_LARGE():n.ATTACHMENT_TOO_LARGE(a?formatFileSize(a,n.locale):void 0):n.ATTACHMENT_ERROR(e.error):formatFileSize(e.size,n.locale);return{isUploading:s,isError:l,description:c,deleteLabel:o?n.COMPOSER_REMOVE_ATTACHMENT:n.COMMENT_DELETE_ATTACHMENT}}function MediaAttachment({attachment:e,overrides:t,onClick:n,onDeleteClick:r,preventFocusOnDelete:o,allowMediaPreview:a=!0,className:i,onKeyDown:s,...l}){const{isUploading:c,isError:u,description:d,deleteLabel:f}=useAttachmentContent(e,t),p=React.useCallback((e=>{o&&e.preventDefault()}),[o]),m=useClickOnKeyDown(s);return React__default.default.createElement("div",{className:classNames("lb-attachment lb-media-attachment",i),"data-error":u?"":void 0,...l,role:n?"button":void 0,onClick:n,tabIndex:n?0:-1,onKeyDown:n?m:void 0},React__default.default.createElement("div",{className:"lb-attachment-preview"},c?React__default.default.createElement(SpinnerIcon,null):u?React__default.default.createElement(WarningIcon,null):React__default.default.createElement(AttachmentPreview,{attachment:e,allowMediaPreview:a})),React__default.default.createElement("div",{className:"lb-attachment-details"},React__default.default.createElement(AttachmentName,{attachment:e}),React__default.default.createElement("span",{className:"lb-attachment-description",title:d},d)),r&&React__default.default.createElement(Tooltip,{content:f},React__default.default.createElement("button",{type:"button",className:"lb-attachment-delete",onClick:r,onPointerDown:p,"aria-label":f},React__default.default.createElement(CrossIcon,null))))}function FileAttachment({attachment:e,overrides:t,onClick:n,onDeleteClick:r,preventFocusOnDelete:o,allowMediaPreview:a=!0,className:i,onKeyDown:s,...l}){const{isUploading:c,isError:u,description:d,deleteLabel:f}=useAttachmentContent(e,t),p=React.useCallback((e=>{o&&e.preventDefault()}),[o]),m=useClickOnKeyDown(s);return React__default.default.createElement("div",{className:classNames("lb-attachment lb-file-attachment",i),"data-error":u?"":void 0,...l,role:n?"button":void 0,onClick:n,tabIndex:n?0:-1,onKeyDown:n?m:void 0},React__default.default.createElement("div",{className:"lb-attachment-preview"},c?React__default.default.createElement(SpinnerIcon,null):u?React__default.default.createElement(WarningIcon,null):React__default.default.createElement(AttachmentPreview,{attachment:e,allowMediaPreview:a})),React__default.default.createElement("div",{className:"lb-attachment-details"},React__default.default.createElement(AttachmentName,{attachment:e}),React__default.default.createElement("span",{className:"lb-attachment-description",title:d},d)),r&&React__default.default.createElement(Tooltip,{content:f},React__default.default.createElement("button",{type:"button",className:"lb-attachment-delete",onClick:r,onPointerDown:p,"aria-label":f},React__default.default.createElement(CrossIcon,null))))}function separateMediaAttachments(e){const t=[],n=[];for(const r of e)(r.mimeType.startsWith("image/")||r.mimeType.startsWith("video/"))&&r.size<=MAX_DISPLAYED_MEDIA_SIZE?t.push(r):n.push(r);return{mediaAttachments:t,fileAttachments:n}}function Attribution({className:e,...t}){return React__default.default.createElement("a",{href:"https://liveblocks.io",target:"_blank",rel:"noopener noreferrer",className:classNames("lb-composer-attribution",e),...t},React__default.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 72","aria-label":"Made with Liveblocks"},React__default.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M86 10h-8v50h8V10Zm16 14h-8v36h8V24Zm0-15h-8v9h8V9Zm13 15h-9l12 36h10l13-36h-9l-9 28-8-28Zm44-1c-11 0-18 8-18 19s7 19 18 19c8 0 15-4 17-13h-8c-1 4-5 6-9 6-6 0-9-3-9-10h27c0-10-6-21-18-21Zm0 7c5 0 9 3 9 8h-18c0-5 4-8 9-8Zm42-7c-4 0-8 2-11 6V10h-8v50h8v-5c3 4 7 6 11 6 11 0 16-9 16-19s-5-19-16-19Zm-2 32c-7 0-9-7-9-13s2-13 9-13 9 7 9 13-2 13-9 13Zm32-45h-8v50h8V10Zm24 51c11 0 18-8 18-19s-8-19-18-19c-11 0-19 8-19 19s7 19 19 19Zm0-6c-8 0-10-7-10-13s2-13 10-13c7 0 9 7 9 13s-2 13-9 13Zm39 6c8 0 15-4 17-12l-8-1c-2 4-4 6-9 6-7 0-9-6-9-12s2-12 9-12c5 0 8 3 8 7l9-1c-2-8-9-13-17-13-11 0-18 9-18 19 0 11 7 19 18 19Zm30-14 4-4 10 17h10l-15-23 15-13h-11l-13 13V10h-9v50h9V47Zm39 14c8 0 16-3 16-12 0-8-8-10-15-11-2-1-7-1-7-5 0-3 3-4 6-4 4 0 7 3 7 7l8-1c-1-9-8-12-15-12s-15 3-15 11 9 10 15 11c3 1 8 2 8 5 0 4-4 5-7 5-5 0-8-3-9-7l-8 1c1 8 9 12 16 12ZM41 27H0l12 12v17l29-29ZM20 60h40L48 48V32L20 60Z",fill:"currentColor"})))}function getInitials(e){return e.trim().split(" ").reduce(((e,t,n,r)=>(0!==n&&n!==r.length-1||(e+=t.charAt(0).toLocaleUpperCase()),e)),"")}function Avatar({userId:e,className:t,...n}){const{user:r,isLoading:o}=_useUser(e),a=React.useMemo((()=>r?.name),[r]),i=React.useMemo((()=>r?.avatar),[r]),s=React.useMemo((()=>a?getInitials(a):void 0),[a]),l=React.useMemo((()=>o||r?void 0:getInitials(e)),[o,r,e]);return React__default.default.createElement("div",{className:classNames("lb-avatar",t),"data-loading":o?"":void 0,...n},i&&React__default.default.createElement("img",{className:"lb-avatar-image",src:i,alt:a}),s?React__default.default.createElement("span",{className:"lb-avatar-fallback","aria-hidden":!0},s):l?React__default.default.createElement("span",{className:"lb-avatar-fallback","aria-label":e,title:e},l):null)}const Button=React.forwardRef((({variant:e="default",size:t="default",disableable:n=!0,className:r,...o},a)=>React__default.default.createElement("button",{type:"button",className:classNames("lb-button",!n&&"lb-button:non-disableable",r),"data-variant":e,"data-size":t,...o,ref:a})));var count=0;function useFocusGuards(){React__namespace.useEffect((()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??createFocusGuard()),document.body.insertAdjacentElement("beforeend",e[1]??createFocusGuard()),count++,()=>{1===count&&document.querySelectorAll("[data-radix-focus-guard]").forEach((e=>e.remove())),count--}}),[])}function createFocusGuard(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var AUTOFOCUS_ON_MOUNT="focusScope.autoFocusOnMount",AUTOFOCUS_ON_UNMOUNT="focusScope.autoFocusOnUnmount",EVENT_OPTIONS$1={bubbles:!1,cancelable:!0},FOCUS_SCOPE_NAME="FocusScope",FocusScope=React__namespace.forwardRef(((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[s,l]=React__namespace.useState(null),c=useCallbackRef$1(o),u=useCallbackRef$1(a),d=React__namespace.useRef(null),f=useComposedRefs(t,(e=>l(e))),p=React__namespace.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;React__namespace.useEffect((()=>{if(r){let e=function(e){if(p.paused||!s)return;const t=e.target;s.contains(t)?d.current=t:focus(d.current,{select:!0})},t=function(e){if(p.paused||!s)return;const t=e.relatedTarget;null!==t&&(s.contains(t)||focus(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&focus(s)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}}),[r,s,p.paused]),React__namespace.useEffect((()=>{if(s){focusScopesStack.add(p);const e=document.activeElement;if(!s.contains(e)){const t=new CustomEvent(AUTOFOCUS_ON_MOUNT,EVENT_OPTIONS$1);s.addEventListener(AUTOFOCUS_ON_MOUNT,c),s.dispatchEvent(t),t.defaultPrevented||(focusFirst$2(removeLinks(getTabbableCandidates(s)),{select:!0}),document.activeElement===e&&focus(s))}return()=>{s.removeEventListener(AUTOFOCUS_ON_MOUNT,c),setTimeout((()=>{const t=new CustomEvent(AUTOFOCUS_ON_UNMOUNT,EVENT_OPTIONS$1);s.addEventListener(AUTOFOCUS_ON_UNMOUNT,u),s.dispatchEvent(t),t.defaultPrevented||focus(e??document.body,{select:!0}),s.removeEventListener(AUTOFOCUS_ON_UNMOUNT,u),focusScopesStack.remove(p)}),0)}}}),[s,c,u,p]);const m=React__namespace.useCallback((e=>{if(!n&&!r)return;if(p.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){const t=e.currentTarget,[r,a]=getTabbableEdges(t);r&&a?e.shiftKey||o!==a?e.shiftKey&&o===r&&(e.preventDefault(),n&&focus(a,{select:!0})):(e.preventDefault(),n&&focus(r,{select:!0})):o===t&&e.preventDefault()}}),[n,r,p.paused]);return jsxRuntime.exports.jsx(Primitive.div,{tabIndex:-1,...i,ref:f,onKeyDown:m})}));function focusFirst$2(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(focus(r,{select:t}),document.activeElement!==n)return}function getTabbableEdges(e){const t=getTabbableCandidates(e);return[findVisible(t,e),findVisible(t.reverse(),e)]}function getTabbableCandidates(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function findVisible(e,t){for(const n of e)if(!isHidden(n,{upTo:t}))return n}function isHidden(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function isSelectableInput(e){return e instanceof HTMLInputElement&&"select"in e}function focus(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&isSelectableInput(e)&&t&&e.select()}}FocusScope.displayName=FOCUS_SCOPE_NAME;var focusScopesStack=createFocusScopesStack();function createFocusScopesStack(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=arrayRemove(e,t),e.unshift(t)},remove(t){e=arrayRemove(e,t),e[0]?.resume()}}}function arrayRemove(e,t){const n=[...e],r=n.indexOf(t);return-1!==r&&n.splice(r,1),n}function removeLinks(e){return e.filter((e=>"A"!==e.tagName))}var getDefaultParent=function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={},lockCount=0,unwrapHost=function(e){return e&&(e.host||unwrapHost(e.parentNode))},correctTargets=function(e,t){return t.map((function(t){if(e.contains(t))return t;var n=unwrapHost(t);return n&&e.contains(n)?n:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)})).filter((function(e){return Boolean(e)}))},applyAttributeToOthers=function(e,t,n,r){var o=correctTargets(t,Array.isArray(e)?e:[e]);markerMap[n]||(markerMap[n]=new WeakMap);var a=markerMap[n],i=[],s=new Set,l=new Set(o),c=function(e){e&&!s.has(e)&&(s.add(e),c(e.parentNode))};o.forEach(c);var u=function(e){e&&!l.has(e)&&Array.prototype.forEach.call(e.children,(function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),o=null!==t&&"false"!==t,l=(counterMap.get(e)||0)+1,c=(a.get(e)||0)+1;counterMap.set(e,l),a.set(e,c),i.push(e),1===l&&o&&uncontrolledNodes.set(e,!0),1===c&&e.setAttribute(n,"true"),o||e.setAttribute(r,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}}))};return u(t),s.clear(),lockCount++,function(){i.forEach((function(e){var t=counterMap.get(e)-1,o=a.get(e)-1;counterMap.set(e,t),a.set(e,o),t||(uncontrolledNodes.has(e)||e.removeAttribute(r),uncontrolledNodes.delete(e)),o||e.removeAttribute(n)})),--lockCount||(counterMap=new WeakMap,counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={})}},hideOthers=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||getDefaultParent(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),applyAttributeToOthers(r,o,n,"aria-hidden")):function(){return null}},__assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign.apply(this,arguments)};function __rest(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function __awaiter(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}l((r=r.apply(e,t||[])).next())}))}function __generator(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}function __read(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}function __spreadArray(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var zeroRightClassName="right-scroll-bar-position",fullWidthClassName="width-before-scroll-bar",noScrollbarsClassName="with-scroll-bars-hidden",removedBarSizeVariable="--removed-body-scroll-bar-size";function assignRef(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}function useCallbackRef(e,t){var n=React.useState((function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}}))[0];return n.callback=t,n.facade}var useIsomorphicLayoutEffect="undefined"!=typeof window?React__namespace.useLayoutEffect:React__namespace.useEffect,currentValues=new WeakMap;function useMergeRefs(e,t){var n=useCallbackRef(t||null,(function(t){return e.forEach((function(e){return assignRef(e,t)}))}));return useIsomorphicLayoutEffect((function(){var t=currentValues.get(n);if(t){var r=new Set(t),o=new Set(e),a=n.current;r.forEach((function(e){o.has(e)||assignRef(e,null)})),o.forEach((function(e){r.has(e)||assignRef(e,a)}))}currentValues.set(n,e)}),[e]),n}function ItoI(e){return e}function innerCreateMedium(e,t){void 0===t&&(t=ItoI);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var o=t(e,r);return n.push(o),function(){n=n.filter((function(e){return e!==o}))}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var o=n;n=[],o.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),n={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),n}}}};return o}function createSidecarMedium(e){void 0===e&&(e={});var t=innerCreateMedium(null);return t.options=__assign({async:!0,ssr:!1},e),t}Object.prototype.toString.call("undefined"!=typeof process?process:0);var SideCar$1=function(e){var t=e.sideCar,n=__rest(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return React__namespace.createElement(r,__assign({},n))};function exportSidecar(e,t){return e.useMedium(t),SideCar$1}SideCar$1.isSideCarExport=!0;var effectCar=createSidecarMedium(),nothing=function(){},RemoveScroll=React__namespace.forwardRef((function(e,t){var n=React__namespace.useRef(null),r=React__namespace.useState({onScrollCapture:nothing,onWheelCapture:nothing,onTouchMoveCapture:nothing}),o=r[0],a=r[1],i=e.forwardProps,s=e.children,l=e.className,c=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noIsolation,m=e.inert,h=e.allowPinchZoom,_=e.as,g=void 0===_?"div":_,v=e.gapMode,E=__rest(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),y=f,b=useMergeRefs([n,t]),C=__assign(__assign({},E),o);return React__namespace.createElement(React__namespace.Fragment,null,u&&React__namespace.createElement(y,{sideCar:effectCar,removeScrollBar:c,shards:d,noIsolation:p,inert:m,setCallbacks:a,allowPinchZoom:!!h,lockRef:n,gapMode:v}),i?React__namespace.cloneElement(React__namespace.Children.only(s),__assign(__assign({},C),{ref:b})):React__namespace.createElement(g,__assign({},C,{className:l,ref:b}),s))}));RemoveScroll.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},RemoveScroll.classNames={fullWidth:fullWidthClassName,zeroRight:zeroRightClassName};var getNonce=function(){if("undefined"!=typeof __webpack_nonce__)return __webpack_nonce__};function makeStyleTag(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=getNonce();return t&&e.setAttribute("nonce",t),e}function injectStyles(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function insertStyleTag(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}var stylesheetSingleton=function(){var e=0,t=null;return{add:function(n){0==e&&(t=makeStyleTag())&&(injectStyles(t,n),insertStyleTag(t)),e++},remove:function(){! --e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},styleHookSingleton=function(){var e=stylesheetSingleton();return function(t,n){React__namespace.useEffect((function(){return e.add(t),function(){e.remove()}}),[t&&n])}},styleSingleton=function(){var e=styleHookSingleton();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},zeroGap={left:0,top:0,right:0,gap:0},parse=function(e){return parseInt(e||"",10)||0},getOffset=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[parse(n),parse(r),parse(o)]},getGapWidth=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return zeroGap;var t=getOffset(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat(noScrollbarsClassName," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(s,"px ").concat(r,";\n }\n body[").concat(lockAttribute,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(s,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(zeroRightClassName," {\n right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat(fullWidthClassName," {\n margin-right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat(zeroRightClassName," .").concat(zeroRightClassName," {\n right: 0 ").concat(r,";\n }\n \n .").concat(fullWidthClassName," .").concat(fullWidthClassName," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(lockAttribute,"] {\n ").concat(removedBarSizeVariable,": ").concat(s,"px;\n }\n")},getCurrentUseCounter=function(){var e=parseInt(document.body.getAttribute(lockAttribute)||"0",10);return isFinite(e)?e:0},useLockAttribute=function(){React__namespace.useEffect((function(){return document.body.setAttribute(lockAttribute,(getCurrentUseCounter()+1).toString()),function(){var e=getCurrentUseCounter()-1;e<=0?document.body.removeAttribute(lockAttribute):document.body.setAttribute(lockAttribute,e.toString())}}),[])},RemoveScrollBar=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;useLockAttribute();var a=React__namespace.useMemo((function(){return getGapWidth(o)}),[o]);return React__namespace.createElement(Style,{styles:getStyles(a,!t,o,n?"":"!important")})},passiveSupported=!1;if("undefined"!=typeof window)try{var options=Object.defineProperty({},"passive",{get:function(){return passiveSupported=!0,!0}});window.addEventListener("test",options,options),window.removeEventListener("test",options,options)}catch(e){passiveSupported=!1}var nonPassive=!!passiveSupported&&{passive:!1},alwaysContainsScroll=function(e){return"TEXTAREA"===e.tagName},elementCanBeScrolled=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!alwaysContainsScroll(e)&&"visible"===n[t])},elementCouldBeVScrolled=function(e){return elementCanBeScrolled(e,"overflowY")},elementCouldBeHScrolled=function(e){return elementCanBeScrolled(e,"overflowX")},locationCouldBeScrolled=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),elementCouldBeScrolled(e,r)){var o=getScrollVariables(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},getVScrollVariables=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},getHScrollVariables=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},elementCouldBeScrolled=function(e,t){return"v"===e?elementCouldBeVScrolled(t):elementCouldBeHScrolled(t)},getScrollVariables=function(e,t){return"v"===e?getVScrollVariables(t):getHScrollVariables(t)},getDirectionFactor=function(e,t){return"h"===e&&"rtl"===t?-1:1},handleScroll=function(e,t,n,r,o){var a=getDirectionFactor(e,window.getComputedStyle(t).direction),i=a*r,s=n.target,l=t.contains(s),c=!1,u=i>0,d=0,f=0;do{var p=getScrollVariables(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&elementCouldBeScrolled(e,s)&&(d+=h,f+=m),s=s instanceof ShadowRoot?s.host:s.parentNode}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(u&&(o&&Math.abs(d)<1||!o&&i>d)||!u&&(o&&Math.abs(f)<1||!o&&-i>f))&&(c=!0),c},getTouchXY=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},getDeltaXY=function(e){return[e.deltaX,e.deltaY]},extractRef=function(e){return e&&"current"in e?e.current:e},deltaCompare=function(e,t){return e[0]===t[0]&&e[1]===t[1]},generateStyle=function(e){return"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")},idCounter=0,lockStack=[];function RemoveScrollSideCar(e){var t=React__namespace.useRef([]),n=React__namespace.useRef([0,0]),r=React__namespace.useRef(),o=React__namespace.useState(idCounter++)[0],a=React__namespace.useState(styleSingleton)[0],i=React__namespace.useRef(e);React__namespace.useEffect((function(){i.current=e}),[e]),React__namespace.useEffect((function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=__spreadArray([e.lockRef.current],(e.shards||[]).map(extractRef),!0).filter(Boolean);return t.forEach((function(e){return e.classList.add("allow-interactivity-".concat(o))})),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach((function(e){return e.classList.remove("allow-interactivity-".concat(o))}))}}}),[e.inert,e.lockRef.current,e.shards]);var s=React__namespace.useCallback((function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var o,a=getTouchXY(e),s=n.current,l="deltaX"in e?e.deltaX:s[0]-a[0],c="deltaY"in e?e.deltaY:s[1]-a[1],u=e.target,d=Math.abs(l)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===d&&"range"===u.type)return!1;var f=locationCouldBeScrolled(d,u);if(!f)return!0;if(f?o=d:(o="v"===d?"h":"v",f=locationCouldBeScrolled(d,u)),!f)return!1;if(!r.current&&"changedTouches"in e&&(l||c)&&(r.current=o),!o)return!0;var p=r.current||o;return handleScroll(p,t,e,"h"===p?l:c,!0)}),[]),l=React__namespace.useCallback((function(e){var n=e;if(lockStack.length&&lockStack[lockStack.length-1]===a){var r="deltaY"in n?getDeltaXY(n):getTouchXY(n),o=t.current.filter((function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&deltaCompare(e.delta,r)}))[0];if(o&&o.should)n.cancelable&&n.preventDefault();else if(!o){var l=(i.current.shards||[]).map(extractRef).filter(Boolean).filter((function(e){return e.contains(n.target)}));(l.length>0?s(n,l[0]):!i.current.noIsolation)&&n.cancelable&&n.preventDefault()}}}),[]),c=React__namespace.useCallback((function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:getOutermostShadowParent(r)};t.current.push(a),setTimeout((function(){t.current=t.current.filter((function(e){return e!==a}))}),1)}),[]),u=React__namespace.useCallback((function(e){n.current=getTouchXY(e),r.current=void 0}),[]),d=React__namespace.useCallback((function(t){c(t.type,getDeltaXY(t),t.target,s(t,e.lockRef.current))}),[]),f=React__namespace.useCallback((function(t){c(t.type,getTouchXY(t),t.target,s(t,e.lockRef.current))}),[]);React__namespace.useEffect((function(){return lockStack.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",l,nonPassive),document.addEventListener("touchmove",l,nonPassive),document.addEventListener("touchstart",u,nonPassive),function(){lockStack=lockStack.filter((function(e){return e!==a})),document.removeEventListener("wheel",l,nonPassive),document.removeEventListener("touchmove",l,nonPassive),document.removeEventListener("touchstart",u,nonPassive)}}),[]);var p=e.removeScrollBar,m=e.inert;return React__namespace.createElement(React__namespace.Fragment,null,m?React__namespace.createElement(a,{styles:generateStyle(o)}):null,p?React__namespace.createElement(RemoveScrollBar,{gapMode:e.gapMode}):null)}function getOutermostShadowParent(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var SideCar=exportSidecar(effectCar,RemoveScrollSideCar),ReactRemoveScroll=React__namespace.forwardRef((function(e,t){return React__namespace.createElement(RemoveScroll,__assign({},e,{ref:t,sideCar:SideCar}))}));ReactRemoveScroll.classNames=RemoveScroll.classNames;var POPOVER_NAME="Popover",[createPopoverContext,createPopoverScope]=createContextScope$3(POPOVER_NAME,[createPopperScope]),usePopperScope$1=createPopperScope(),[PopoverProvider,usePopoverContext]=createPopoverContext(POPOVER_NAME),Popover=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:i=!1}=e,s=usePopperScope$1(t),l=React__namespace.useRef(null),[c,u]=React__namespace.useState(!1),[d=!1,f]=useControllableState$1({prop:r,defaultProp:o,onChange:a});return jsxRuntime.exports.jsx(Root2$2,{...s,children:jsxRuntime.exports.jsx(PopoverProvider,{scope:t,contentId:useId(),triggerRef:l,open:d,onOpenChange:f,onOpenToggle:React__namespace.useCallback((()=>f((e=>!e))),[f]),hasCustomAnchor:c,onCustomAnchorAdd:React__namespace.useCallback((()=>u(!0)),[]),onCustomAnchorRemove:React__namespace.useCallback((()=>u(!1)),[]),modal:i,children:n})})};Popover.displayName=POPOVER_NAME;var ANCHOR_NAME$1="PopoverAnchor",PopoverAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...r}=e,o=usePopoverContext(ANCHOR_NAME$1,n),a=usePopperScope$1(n),{onCustomAnchorAdd:i,onCustomAnchorRemove:s}=o;return React__namespace.useEffect((()=>(i(),()=>s())),[i,s]),jsxRuntime.exports.jsx(Anchor,{...a,...r,ref:t})}));PopoverAnchor.displayName=ANCHOR_NAME$1;var TRIGGER_NAME$1="PopoverTrigger",PopoverTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...r}=e,o=usePopoverContext(TRIGGER_NAME$1,n),a=usePopperScope$1(n),i=useComposedRefs(t,o.triggerRef),s=jsxRuntime.exports.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":getState(o.open),...r,ref:i,onClick:composeEventHandlers(e.onClick,o.onOpenToggle)});return o.hasCustomAnchor?s:jsxRuntime.exports.jsx(Anchor,{asChild:!0,...a,children:s})}));PopoverTrigger.displayName=TRIGGER_NAME$1;var PORTAL_NAME$2="PopoverPortal",[PortalProvider$1,usePortalContext$1]=createPopoverContext(PORTAL_NAME$2,{forceMount:void 0}),PopoverPortal=e=>{const{__scopePopover:t,forceMount:n,children:r,container:o}=e,a=usePopoverContext(PORTAL_NAME$2,t);return jsxRuntime.exports.jsx(PortalProvider$1,{scope:t,forceMount:n,children:jsxRuntime.exports.jsx(Presence,{present:n||a.open,children:jsxRuntime.exports.jsx(Portal$3,{asChild:!0,container:o,children:r})})})};PopoverPortal.displayName=PORTAL_NAME$2;var CONTENT_NAME$2="PopoverContent",PopoverContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext$1(CONTENT_NAME$2,e.__scopePopover),{forceMount:r=n.forceMount,...o}=e,a=usePopoverContext(CONTENT_NAME$2,e.__scopePopover);return jsxRuntime.exports.jsx(Presence,{present:r||a.open,children:a.modal?jsxRuntime.exports.jsx(PopoverContentModal,{...o,ref:t}):jsxRuntime.exports.jsx(PopoverContentNonModal,{...o,ref:t})})}));PopoverContent.displayName=CONTENT_NAME$2;var PopoverContentModal=React__namespace.forwardRef(((e,t)=>{const n=usePopoverContext(CONTENT_NAME$2,e.__scopePopover),r=React__namespace.useRef(null),o=useComposedRefs(t,r),a=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=r.current;if(e)return hideOthers(e)}),[]),jsxRuntime.exports.jsx(ReactRemoveScroll,{as:Slot,allowPinchZoom:!0,children:jsxRuntime.exports.jsx(PopoverContentImpl,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,(e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()})),onPointerDownOutside:composeEventHandlers(e.onPointerDownOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;a.current=r}),{checkForDefaultPrevented:!1}),onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1})})})})),PopoverContentNonModal=React__namespace.forwardRef(((e,t)=>{const n=usePopoverContext(CONTENT_NAME$2,e.__scopePopover),r=React__namespace.useRef(!1),o=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(PopoverContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));const a=t.target,i=n.triggerRef.current?.contains(a);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})})),PopoverContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:i,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:u,...d}=e,f=usePopoverContext(CONTENT_NAME$2,n),p=usePopperScope$1(n);return useFocusGuards(),jsxRuntime.exports.jsx(FocusScope,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:jsxRuntime.exports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>f.onOpenChange(!1),children:jsxRuntime.exports.jsx(Content,{"data-state":getState(f.open),role:"dialog",id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})})),CLOSE_NAME="PopoverClose",PopoverClose=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...r}=e,o=usePopoverContext(CLOSE_NAME,n);return jsxRuntime.exports.jsx(Primitive.button,{type:"button",...r,ref:t,onClick:composeEventHandlers(e.onClick,(()=>o.onOpenChange(!1)))})}));PopoverClose.displayName=CLOSE_NAME;var ARROW_NAME$2="PopoverArrow",PopoverArrow=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...r}=e,o=usePopperScope$1(n);return jsxRuntime.exports.jsx(Arrow,{...o,...r,ref:t})}));function getState(e){return e?"open":"closed"}PopoverArrow.displayName=ARROW_NAME$2;var Root2$1=Popover,Trigger=PopoverTrigger,Portal$1=PopoverPortal,Content2$2=PopoverContent;function SearchIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"M9 15A6 6 0 1 0 9 3a6 6 0 0 0 0 12Zm7.5 1.5-3.25-3.25"}))}function EmojiPickerLoading({className:e,...t}){return React__default.default.createElement("div",{className:classNames("lb-loading lb-emoji-picker-loading",e),...t},React__default.default.createElement(SpinnerIcon,null))}function EmojiPickerEmpty({className:e,...t}){const n=useOverrides();return React__default.default.createElement("div",{className:classNames("lb-empty lb-emoji-picker-empty",e),...t},n.EMOJI_PICKER_EMPTY)}function EmojiPickerError({error:e,className:t,...n}){const r=useOverrides();return React__default.default.createElement("div",{className:classNames("lb-error lb-emoji-picker-error",t),...n},r.EMOJI_PICKER_ERROR(e))}function EmojiPickerCategoryHeader({category:e,className:t,...n}){return React__default.default.createElement("div",{className:classNames("lb-emoji-picker-category-header",t),...n},React__default.default.createElement("span",{className:"lb-emoji-picker-category-header-title"},e))}function EmojiPickerGrid({children:e,className:t,...n}){return React__default.default.createElement("div",{className:classNames("lb-emoji-picker-grid",t),...n},e)}function EmojiPickerRow({attributes:e,children:t,className:n,...r}){const o=React.useMemo((()=>0===e.categoryRowIndex),[e.categoryRowIndex]),a=React.useMemo((()=>e.categoryRowIndex===e.categoryRowsCount-1),[e.categoryRowIndex,e.categoryRowsCount]);return React__default.default.createElement("div",{className:classNames("lb-emoji-picker-row",n),"data-first":o?"":void 0,"data-last":a?"":void 0,...r},t)}function EmojiPickerEmoji({emoji:e,className:t,...n}){return React__default.default.createElement("button",{className:classNames("lb-emoji-picker-emoji",t),...n},React__default.default.createElement(Emoji,{emoji:e}))}const EmojiPicker=React.forwardRef((({onEmojiSelect:e,onOpenChange:t,children:n,className:r,...o},a)=>{const[i,s]=React.useState(!1),{portalContainer:l}=useLiveblocksUIConfig(),c=useOverrides(),u=React.useCallback((e=>{s(e),t?.(e)}),[t]),d=React.useCallback((t=>{s(!1),e?.(t)}),[e]);return React__default.default.createElement(Root2$1,{open:i,onOpenChange:u},n,React__default.default.createElement(Portal$1,{container:l},React__default.default.createElement(Content2$2,{side:"top",align:"center",sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,className:classNames("lb-root lb-portal lb-elevation lb-emoji-picker",r),...o,ref:a},React__default.default.createElement(EmojiPickerRoot,{onEmojiSelect:d,locale:c.locale},React__default.default.createElement("div",{className:"lb-emoji-picker-header"},React__default.default.createElement("div",{className:"lb-emoji-picker-search-container"},React__default.default.createElement(EmojiPickerSearch,{className:"lb-emoji-picker-search",placeholder:c.EMOJI_PICKER_SEARCH_PLACEHOLDER,autoFocus:!0}),React__default.default.createElement(SearchIcon,{className:"lb-emoji-picker-search-icon"}))),React__default.default.createElement(EmojiPickerContent,{className:"lb-emoji-picker-content",components:{Loading:EmojiPickerLoading,Empty:EmojiPickerEmpty,Error:EmojiPickerError,CategoryHeader:EmojiPickerCategoryHeader,Grid:EmojiPickerGrid,Row:EmojiPickerRow,Emoji:EmojiPickerEmoji}})))))}));function User({userId:e,replaceSelf:t,className:n,...r}){const o=useCurrentUserId(),{user:a,isLoading:i}=_useUser(e),s=useOverrides(),l=React.useMemo((()=>t&&o===e?s.USER_SELF:a?.name??s.USER_UNKNOWN),[t,o,e,s.USER_SELF,s.USER_UNKNOWN,a?.name]);return React__default.default.createElement("span",{className:classNames("lb-name lb-user",n),"data-loading":i?"":void 0,...r},i?null:l)}function ComposerInsertMentionEditorAction({label:e,tooltipLabel:t,className:n,onClick:r,...o}){const{createMention:a}=useComposer(),i=React.useCallback((e=>{e.preventDefault()}),[]),s=React.useCallback((e=>{r?.(e),e.isDefaultPrevented()||(e.stopPropagation(),a())}),[a,r]);return React__default.default.createElement(Tooltip,{content:t??e},React__default.default.createElement(Button,{className:classNames("lb-composer-editor-action",n),onMouseDown:i,onClick:s,"aria-label":e,...o},React__default.default.createElement(MentionIcon,{className:"lb-button-icon"})))}function ComposerInsertEmojiEditorAction({label:e,tooltipLabel:t,onPickerOpenChange:n,className:r,...o}){const{insertText:a}=useComposer(),i=React.useCallback((e=>{e.preventDefault()}),[]),s=React.useCallback((e=>{e.stopPropagation()}),[]);return React__default.default.createElement(EmojiPicker,{onEmojiSelect:a,onOpenChange:n},React__default.default.createElement(Tooltip,{content:t??e},React__default.default.createElement(PopoverTrigger,{asChild:!0},React__default.default.createElement(Button,{className:classNames("lb-composer-editor-action",r),onMouseDown:i,onClick:s,"aria-label":e,...o},React__default.default.createElement(EmojiIcon,{className:"lb-button-icon"})))))}function ComposerAttachFilesEditorAction({label:e,tooltipLabel:t,className:n,...r}){const o=React.useCallback((e=>{e.preventDefault()}),[]),a=React.useCallback((e=>{e.stopPropagation()}),[]);return React__default.default.createElement(Tooltip,{content:t??e},React__default.default.createElement(ComposerAttachFiles,{asChild:!0},React__default.default.createElement(Button,{className:classNames("lb-composer-editor-action",n),onMouseDown:o,onClick:a,"aria-label":e,...r},React__default.default.createElement(AttachmentIcon,{className:"lb-button-icon"}))))}function ComposerMention({userId:e}){return React__default.default.createElement(ComposerMention$1,{className:"lb-composer-mention"},MENTION_CHARACTER,React__default.default.createElement(User,{userId:e}))}function ComposerMentionSuggestions({userIds:e}){return e.length>0?React__default.default.createElement(ComposerSuggestions,{className:"lb-root lb-portal lb-elevation lb-composer-suggestions lb-composer-mention-suggestions"},React__default.default.createElement(ComposerSuggestionsList,{className:"lb-composer-suggestions-list lb-composer-mention-suggestions-list"},e.map((e=>React__default.default.createElement(ComposerSuggestionsListItem,{key:e,className:"lb-composer-suggestions-list-item lb-composer-mention-suggestion",value:e},React__default.default.createElement(Avatar,{userId:e,className:"lb-composer-mention-suggestion-avatar"}),React__default.default.createElement(User,{userId:e,className:"lb-composer-mention-suggestion-user"})))))):null}function ComposerLink({href:e,children:t}){return React__default.default.createElement(ComposerLink$1,{href:e,className:"lb-composer-link"},t)}function ComposerFileAttachment({attachment:e,className:t,overrides:n,...r}){const{removeAttachment:o}=useComposer(),a=React.useCallback((()=>{o(e.id)}),[e.id,o]);return React__default.default.createElement(FileAttachment,{className:classNames("lb-composer-attachment",t),...r,attachment:e,onDeleteClick:a,preventFocusOnDelete:!0,overrides:n})}function ComposerAttachments({overrides:e,className:t,...n}){const{attachments:r}=useComposer();return 0===r.length?null:React__default.default.createElement("div",{className:classNames("lb-composer-attachments",t),...n},React__default.default.createElement("div",{className:"lb-attachments"},r.map((t=>React__default.default.createElement(ComposerFileAttachment,{key:t.id,attachment:t,overrides:e})))))}const editorComponents={Mention:ComposerMention,MentionSuggestions:ComposerMentionSuggestions,Link:ComposerLink};function ComposerEditorContainer({showAttachments:e=!0,showAttribution:t,defaultValue:n,isCollapsed:r,overrides:o,actions:a,autoFocus:i,disabled:s,hasResolveMentionSuggestions:l,onEmojiPickerOpenChange:c,onEmptyChange:u,onEditorClick:d}){const{isEmpty:f}=useComposer(),{hasMaxAttachments:p}=useComposerAttachmentsContext(),m=useOverrides(o),[h,_]=useComposerAttachmentsDropArea({disabled:s||p});useLayoutEffect((()=>{u(f)}),[f,u]);const g=React.useCallback((e=>{e.preventDefault()}),[]),v=React.useCallback((e=>{e.stopPropagation()}),[]);return React__default.default.createElement("div",{className:"lb-composer-editor-container",..._},React__default.default.createElement(ComposerEditor,{className:"lb-composer-editor",onClick:d,placeholder:m.COMPOSER_PLACEHOLDER,defaultValue:n,autoFocus:i,components:editorComponents,disabled:s,dir:m.dir}),e&&React__default.default.createElement(ComposerAttachments,{overrides:o}),(!r||h)&&React__default.default.createElement("div",{className:"lb-composer-footer"},React__default.default.createElement("div",{className:"lb-composer-editor-actions"},l&&React__default.default.createElement(ComposerInsertMentionEditorAction,{label:m.COMPOSER_INSERT_MENTION,disabled:s}),React__default.default.createElement(ComposerInsertEmojiEditorAction,{label:m.COMPOSER_INSERT_EMOJI,onPickerOpenChange:c,disabled:s}),e&&React__default.default.createElement(ComposerAttachFilesEditorAction,{label:m.COMPOSER_ATTACH_FILES,disabled:s})),t&&React__default.default.createElement(Attribution,null),React__default.default.createElement("div",{className:"lb-composer-actions"},a??React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ShortcutTooltip,{content:m.COMPOSER_SEND,shortcut:React__default.default.createElement(ShortcutTooltipKey,{name:"enter"})},React__default.default.createElement(ComposerSubmit,{asChild:!0},React__default.default.createElement(Button,{onMouseDown:g,onClick:v,className:"lb-composer-action",variant:"primary","aria-label":m.COMPOSER_SEND},React__default.default.createElement(SendIcon,null))))))),e&&h&&React__default.default.createElement("div",{className:"lb-composer-attachments-drop-area"},React__default.default.createElement("div",{className:"lb-composer-attachments-drop-area-label"},React__default.default.createElement(AttachmentIcon,null),m.COMPOSER_ATTACH_FILES)))}const Composer=React.forwardRef((({threadId:e,commentId:t,metadata:n,defaultValue:r,defaultAttachments:o,onComposerSubmit:a,collapsed:i,defaultCollapsed:s,onCollapsedChange:l,overrides:c,actions:u,onBlur:d,className:f,onFocus:p,autoFocus:m,disabled:h,showAttachments:_=!0,showAttribution:g,...v},E)=>{const y=useClient(),b=_useCreateThread(),C=useCreateComment(),R=useEditComment(),{preventUnsavedComposerChanges:w}=useLiveblocksUIConfig(),S=void 0!==y[kInternal].resolveMentionSuggestions,D=React.useRef(!0),T=React.useRef(!1),O=useOverrides(c),[A,I]=useControllableState((void 0!==i||void 0!==s)&&i,l,s),x=React.useCallback((e=>{D.current=e}),[]),N=React.useCallback((e=>{T.current=e}),[]),F=React.useCallback((e=>{p?.(e),e.isDefaultPrevented()||D.current&&I?.(!1)}),[I,p]),P=React.useCallback((e=>{if(d?.(e),e.isDefaultPrevented())return;!e.currentTarget.contains(e.relatedTarget??document.activeElement)&&D.current&&!T.current&&I?.(!0)}),[d,I]),k=React.useCallback((e=>{e.stopPropagation(),D.current&&I?.(!1)}),[I]),$=React.useCallback(((r,o)=>{a?.(r,o),o.isDefaultPrevented()||(t&&e?R({commentId:t,threadId:e,body:r.body,attachments:r.attachments}):e?C({threadId:e,body:r.body,attachments:r.attachments}):b({body:r.body,metadata:n??{},attachments:r.attachments}))}),[t,C,b,R,n,a,e]);return React__default.default.createElement(TooltipProvider,null,React__default.default.createElement(ComposerForm,{onComposerSubmit:$,className:classNames("lb-root lb-composer lb-composer-form",f),dir:O.dir,...v,ref:E,"data-collapsed":A?"":void 0,onFocus:F,onBlur:P,disabled:h,defaultAttachments:o,pasteFilesAsAttachments:_,preventUnsavedChanges:w},React__default.default.createElement(ComposerEditorContainer,{defaultValue:r,actions:u,overrides:c,isCollapsed:A,showAttachments:_,showAttribution:g,hasResolveMentionSuggestions:S,onEmptyChange:x,onEmojiPickerOpenChange:N,onEditorClick:k,autoFocus:m,disabled:h})))}));function createContextScope$1(e,t=[]){let n=[];const r=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const r=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return r.scopeName=e,[function(t,r){const o=React__namespace.createContext(r),a=n.length;function i(t){const{scope:n,children:r,...i}=t,s=n?.[e][a]||o,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:r})}return n=[...n,r],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||o,l=React__namespace.useContext(s);if(l)return l;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$1(r,...t)]}function composeContextScopes$1(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}function createCollection(e){const t=e+"CollectionProvider",[n,r]=createContextScope$1(t),[o,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{const{scope:t,children:n}=e,r=React__default.default.useRef(null),a=React__default.default.useRef(new Map).current;return jsxRuntime.exports.jsx(o,{scope:t,itemMap:a,collectionRef:r,children:n})};i.displayName=t;const s=e+"CollectionSlot",l=React__default.default.forwardRef(((e,t)=>{const{scope:n,children:r}=e,o=useComposedRefs(t,a(s,n).collectionRef);return jsxRuntime.exports.jsx(Slot,{ref:o,children:r})}));l.displayName=s;const c=e+"CollectionItemSlot",u="data-radix-collection-item",d=React__default.default.forwardRef(((e,t)=>{const{scope:n,children:r,...o}=e,i=React__default.default.useRef(null),s=useComposedRefs(t,i),l=a(c,n);return React__default.default.useEffect((()=>(l.itemMap.set(i,{ref:i,...o}),()=>{l.itemMap.delete(i)}))),jsxRuntime.exports.jsx(Slot,{[u]:"",ref:s,children:r})}));return d.displayName=c,[{Provider:i,Slot:l,ItemSlot:d},function(t){const n=a(e+"CollectionConsumer",t);return React__default.default.useCallback((()=>{const e=n.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${u}]`));return Array.from(n.itemMap.values()).sort(((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current)))}),[n.collectionRef,n.itemMap])},r]}var DirectionContext=React__namespace.createContext(void 0);function useDirection(e){const t=React__namespace.useContext(DirectionContext);return e||t||"ltr"}function createContextScope(e,t=[]){let n=[];const r=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const r=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return r.scopeName=e,[function(t,r){const o=React__namespace.createContext(r),a=n.length;function i(t){const{scope:n,children:r,...i}=t,s=n?.[e][a]||o,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:r})}return n=[...n,r],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||o,l=React__namespace.useContext(s);if(l)return l;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes(r,...t)]}function composeContextScopes(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}var ENTRY_FOCUS="rovingFocusGroup.onEntryFocus",EVENT_OPTIONS={bubbles:!1,cancelable:!0},GROUP_NAME$2="RovingFocusGroup",[Collection$1,useCollection$1,createCollectionScope$1]=createCollection(GROUP_NAME$2),[createRovingFocusGroupContext,createRovingFocusGroupScope]=createContextScope(GROUP_NAME$2,[createCollectionScope$1]),[RovingFocusProvider,useRovingFocusContext]=createRovingFocusGroupContext(GROUP_NAME$2),RovingFocusGroup=React__namespace.forwardRef(((e,t)=>jsxRuntime.exports.jsx(Collection$1.Provider,{scope:e.__scopeRovingFocusGroup,children:jsxRuntime.exports.jsx(Collection$1.Slot,{scope:e.__scopeRovingFocusGroup,children:jsxRuntime.exports.jsx(RovingFocusGroupImpl,{...e,ref:t})})})));RovingFocusGroup.displayName=GROUP_NAME$2;var RovingFocusGroupImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:a,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:c,preventScrollOnEntryFocus:u=!1,...d}=e,f=React__namespace.useRef(null),p=useComposedRefs(t,f),m=useDirection(a),[h=null,_]=useControllableState$1({prop:i,defaultProp:s,onChange:l}),[g,v]=React__namespace.useState(!1),E=useCallbackRef$1(c),y=useCollection$1(n),b=React__namespace.useRef(!1),[C,R]=React__namespace.useState(0);return React__namespace.useEffect((()=>{const e=f.current;if(e)return e.addEventListener(ENTRY_FOCUS,E),()=>e.removeEventListener(ENTRY_FOCUS,E)}),[E]),jsxRuntime.exports.jsx(RovingFocusProvider,{scope:n,orientation:r,dir:m,loop:o,currentTabStopId:h,onItemFocus:React__namespace.useCallback((e=>_(e)),[_]),onItemShiftTab:React__namespace.useCallback((()=>v(!0)),[]),onFocusableItemAdd:React__namespace.useCallback((()=>R((e=>e+1))),[]),onFocusableItemRemove:React__namespace.useCallback((()=>R((e=>e-1))),[]),children:jsxRuntime.exports.jsx(Primitive.div,{tabIndex:g||0===C?-1:0,"data-orientation":r,...d,ref:p,style:{outline:"none",...e.style},onMouseDown:composeEventHandlers(e.onMouseDown,(()=>{b.current=!0})),onFocus:composeEventHandlers(e.onFocus,(e=>{const t=!b.current;if(e.target===e.currentTarget&&t&&!g){const t=new CustomEvent(ENTRY_FOCUS,EVENT_OPTIONS);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=y().filter((e=>e.focusable));focusFirst$1([e.find((e=>e.active)),e.find((e=>e.id===h)),...e].filter(Boolean).map((e=>e.ref.current)),u)}}b.current=!1})),onBlur:composeEventHandlers(e.onBlur,(()=>v(!1)))})})})),ITEM_NAME$2="RovingFocusGroupItem",RovingFocusGroupItem=React__namespace.forwardRef(((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:a,...i}=e,s=useId(),l=a||s,c=useRovingFocusContext(ITEM_NAME$2,n),u=c.currentTabStopId===l,d=useCollection$1(n),{onFocusableItemAdd:f,onFocusableItemRemove:p}=c;return React__namespace.useEffect((()=>{if(r)return f(),()=>p()}),[r,f,p]),jsxRuntime.exports.jsx(Collection$1.ItemSlot,{scope:n,id:l,focusable:r,active:o,children:jsxRuntime.exports.jsx(Primitive.span,{tabIndex:u?0:-1,"data-orientation":c.orientation,...i,ref:t,onMouseDown:composeEventHandlers(e.onMouseDown,(e=>{r?c.onItemFocus(l):e.preventDefault()})),onFocus:composeEventHandlers(e.onFocus,(()=>c.onItemFocus(l))),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void c.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=getFocusIntent(e,c.orientation,c.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=d().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===t)n.reverse();else if("prev"===t||"next"===t){"prev"===t&&n.reverse();const r=n.indexOf(e.currentTarget);n=c.loop?wrapArray$1(n,r+1):n.slice(r+1)}setTimeout((()=>focusFirst$1(n)))}}))})})}));RovingFocusGroupItem.displayName=ITEM_NAME$2;var MAP_KEY_TO_FOCUS_INTENT={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function getDirectionAwareKey(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}function getFocusIntent(e,t,n){const r=getDirectionAwareKey(e.key,n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(r)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(r)))return MAP_KEY_TO_FOCUS_INTENT[r]}function focusFirst$1(e,t=!1){const n=document.activeElement;for(const r of e){if(r===n)return;if(r.focus({preventScroll:t}),document.activeElement!==n)return}}function wrapArray$1(e,t){return e.map(((n,r)=>e[(t+r)%e.length]))}var Root=RovingFocusGroup,Item=RovingFocusGroupItem,SELECTION_KEYS=["Enter"," "],FIRST_KEYS=["ArrowDown","PageUp","Home"],LAST_KEYS=["ArrowUp","PageDown","End"],FIRST_LAST_KEYS=[...FIRST_KEYS,...LAST_KEYS],SUB_OPEN_KEYS={ltr:[...SELECTION_KEYS,"ArrowRight"],rtl:[...SELECTION_KEYS,"ArrowLeft"]},SUB_CLOSE_KEYS={ltr:["ArrowLeft"],rtl:["ArrowRight"]},MENU_NAME="Menu",[Collection,useCollection,createCollectionScope]=createCollection(MENU_NAME),[createMenuContext,createMenuScope]=createContextScope$3(MENU_NAME,[createCollectionScope,createPopperScope,createRovingFocusGroupScope]),usePopperScope=createPopperScope(),useRovingFocusGroupScope=createRovingFocusGroupScope(),[MenuProvider,useMenuContext]=createMenuContext(MENU_NAME),[MenuRootProvider,useMenuRootContext]=createMenuContext(MENU_NAME),Menu=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:o,onOpenChange:a,modal:i=!0}=e,s=usePopperScope(t),[l,c]=React__namespace.useState(null),u=React__namespace.useRef(!1),d=useCallbackRef$1(a),f=useDirection(o);return React__namespace.useEffect((()=>{const e=()=>{u.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>u.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}}),[]),jsxRuntime.exports.jsx(Root2$2,{...s,children:jsxRuntime.exports.jsx(MenuProvider,{scope:t,open:n,onOpenChange:d,content:l,onContentChange:c,children:jsxRuntime.exports.jsx(MenuRootProvider,{scope:t,onClose:React__namespace.useCallback((()=>d(!1)),[d]),isUsingKeyboardRef:u,dir:f,modal:i,children:r})})})};Menu.displayName=MENU_NAME;var ANCHOR_NAME="MenuAnchor",MenuAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...r}=e,o=usePopperScope(n);return jsxRuntime.exports.jsx(Anchor,{...o,...r,ref:t})}));MenuAnchor.displayName=ANCHOR_NAME;var PORTAL_NAME$1="MenuPortal",[PortalProvider,usePortalContext]=createMenuContext(PORTAL_NAME$1,{forceMount:void 0}),MenuPortal=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:o}=e,a=useMenuContext(PORTAL_NAME$1,t);return jsxRuntime.exports.jsx(PortalProvider,{scope:t,forceMount:n,children:jsxRuntime.exports.jsx(Presence,{present:n||a.open,children:jsxRuntime.exports.jsx(Portal$3,{asChild:!0,container:o,children:r})})})};MenuPortal.displayName=PORTAL_NAME$1;var CONTENT_NAME$1="MenuContent",[MenuContentProvider,useMenuContentContext]=createMenuContext(CONTENT_NAME$1),MenuContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext(CONTENT_NAME$1,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,a=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),i=useMenuRootContext(CONTENT_NAME$1,e.__scopeMenu);return jsxRuntime.exports.jsx(Collection.Provider,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(Presence,{present:r||a.open,children:jsxRuntime.exports.jsx(Collection.Slot,{scope:e.__scopeMenu,children:i.modal?jsxRuntime.exports.jsx(MenuRootContentModal,{...o,ref:t}):jsxRuntime.exports.jsx(MenuRootContentNonModal,{...o,ref:t})})})})})),MenuRootContentModal=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),r=React__namespace.useRef(null),o=useComposedRefs(t,r);return React__namespace.useEffect((()=>{const e=r.current;if(e)return hideOthers(e)}),[]),jsxRuntime.exports.jsx(MenuContentImpl,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})})),MenuRootContentNonModal=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(CONTENT_NAME$1,e.__scopeMenu);return jsxRuntime.exports.jsx(MenuContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})})),MenuContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:m,...h}=e,_=useMenuContext(CONTENT_NAME$1,n),g=useMenuRootContext(CONTENT_NAME$1,n),v=usePopperScope(n),E=useRovingFocusGroupScope(n),y=useCollection(n),[b,C]=React__namespace.useState(null),R=React__namespace.useRef(null),w=useComposedRefs(t,R,_.onContentChange),S=React__namespace.useRef(0),D=React__namespace.useRef(""),T=React__namespace.useRef(0),O=React__namespace.useRef(null),A=React__namespace.useRef("right"),I=React__namespace.useRef(0),x=m?ReactRemoveScroll:React__namespace.Fragment,N=m?{as:Slot,allowPinchZoom:!0}:void 0;React__namespace.useEffect((()=>()=>window.clearTimeout(S.current)),[]),useFocusGuards();const F=React__namespace.useCallback((e=>A.current===O.current?.side&&isPointerInGraceArea(e,O.current?.area)),[]);return jsxRuntime.exports.jsx(MenuContentProvider,{scope:n,searchRef:D,onItemEnter:React__namespace.useCallback((e=>{F(e)&&e.preventDefault()}),[F]),onItemLeave:React__namespace.useCallback((e=>{F(e)||(R.current?.focus(),C(null))}),[F]),onTriggerLeave:React__namespace.useCallback((e=>{F(e)&&e.preventDefault()}),[F]),pointerGraceTimerRef:T,onPointerGraceIntentChange:React__namespace.useCallback((e=>{O.current=e}),[]),children:jsxRuntime.exports.jsx(x,{...N,children:jsxRuntime.exports.jsx(FocusScope,{asChild:!0,trapped:o,onMountAutoFocus:composeEventHandlers(a,(e=>{e.preventDefault(),R.current?.focus({preventScroll:!0})})),onUnmountAutoFocus:i,children:jsxRuntime.exports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,children:jsxRuntime.exports.jsx(Root,{asChild:!0,...E,dir:g.dir,orientation:"vertical",loop:r,currentTabStopId:b,onCurrentTabStopIdChange:C,onEntryFocus:composeEventHandlers(l,(e=>{g.isUsingKeyboardRef.current||e.preventDefault()})),preventScrollOnEntryFocus:!0,children:jsxRuntime.exports.jsx(Content,{role:"menu","aria-orientation":"vertical","data-state":getOpenState(_.open),"data-radix-menu-content":"",dir:g.dir,...v,...h,ref:w,style:{outline:"none",...h.style},onKeyDown:composeEventHandlers(h.onKeyDown,(e=>{const t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&r&&(e=>{const t=D.current+e,n=y().filter((e=>!e.disabled)),r=document.activeElement,o=n.find((e=>e.ref.current===r))?.textValue,a=getNextMatch(n.map((e=>e.textValue)),t,o),i=n.find((e=>e.textValue===a))?.ref.current;!function e(t){D.current=t,window.clearTimeout(S.current),""!==t&&(S.current=window.setTimeout((()=>e("")),1e3))}(t),i&&setTimeout((()=>i.focus()))})(e.key));const o=R.current;if(e.target!==o)return;if(!FIRST_LAST_KEYS.includes(e.key))return;e.preventDefault();const a=y().filter((e=>!e.disabled)).map((e=>e.ref.current));LAST_KEYS.includes(e.key)&&a.reverse(),focusFirst(a)})),onBlur:composeEventHandlers(e.onBlur,(e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(S.current),D.current="")})),onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((e=>{const t=e.target,n=I.current!==e.clientX;if(e.currentTarget.contains(t)&&n){const t=e.clientX>I.current?"right":"left";A.current=t,I.current=e.clientX}})))})})})})})})}));MenuContent.displayName=CONTENT_NAME$1;var GROUP_NAME$1="MenuGroup",MenuGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...r}=e;return jsxRuntime.exports.jsx(Primitive.div,{role:"group",...r,ref:t})}));MenuGroup.displayName=GROUP_NAME$1;var LABEL_NAME$1="MenuLabel",MenuLabel=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...r}=e;return jsxRuntime.exports.jsx(Primitive.div,{...r,ref:t})}));MenuLabel.displayName=LABEL_NAME$1;var ITEM_NAME$1="MenuItem",ITEM_SELECT="menu.itemSelect",MenuItem=React__namespace.forwardRef(((e,t)=>{const{disabled:n=!1,onSelect:r,...o}=e,a=React__namespace.useRef(null),i=useMenuRootContext(ITEM_NAME$1,e.__scopeMenu),s=useMenuContentContext(ITEM_NAME$1,e.__scopeMenu),l=useComposedRefs(t,a),c=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(MenuItemImpl,{...o,ref:l,disabled:n,onClick:composeEventHandlers(e.onClick,(()=>{const e=a.current;if(!n&&e){const t=new CustomEvent(ITEM_SELECT,{bubbles:!0,cancelable:!0});e.addEventListener(ITEM_SELECT,(e=>r?.(e)),{once:!0}),dispatchDiscreteCustomEvent(e,t),t.defaultPrevented?c.current=!1:i.onClose()}})),onPointerDown:t=>{e.onPointerDown?.(t),c.current=!0},onPointerUp:composeEventHandlers(e.onPointerUp,(e=>{c.current||e.currentTarget?.click()})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{const t=""!==s.searchRef.current;n||t&&" "===e.key||SELECTION_KEYS.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())}))})}));MenuItem.displayName=ITEM_NAME$1;var MenuItemImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:o,...a}=e,i=useMenuContentContext(ITEM_NAME$1,n),s=useRovingFocusGroupScope(n),l=React__namespace.useRef(null),c=useComposedRefs(t,l),[u,d]=React__namespace.useState(!1),[f,p]=React__namespace.useState("");return React__namespace.useEffect((()=>{const e=l.current;e&&p((e.textContent??"").trim())}),[a.children]),jsxRuntime.exports.jsx(Collection.ItemSlot,{scope:n,disabled:r,textValue:o??f,children:jsxRuntime.exports.jsx(Item,{asChild:!0,...s,focusable:!r,children:jsxRuntime.exports.jsx(Primitive.div,{role:"menuitem","data-highlighted":u?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...a,ref:c,onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((e=>{if(r)i.onItemLeave(e);else if(i.onItemEnter(e),!e.defaultPrevented){e.currentTarget.focus({preventScroll:!0})}}))),onPointerLeave:composeEventHandlers(e.onPointerLeave,whenMouse((e=>i.onItemLeave(e)))),onFocus:composeEventHandlers(e.onFocus,(()=>d(!0))),onBlur:composeEventHandlers(e.onBlur,(()=>d(!1)))})})})})),CHECKBOX_ITEM_NAME$1="MenuCheckboxItem",MenuCheckboxItem=React__namespace.forwardRef(((e,t)=>{const{checked:n=!1,onCheckedChange:r,...o}=e;return jsxRuntime.exports.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:n,children:jsxRuntime.exports.jsx(MenuItem,{role:"menuitemcheckbox","aria-checked":isIndeterminate(n)?"mixed":n,...o,ref:t,"data-state":getCheckedState(n),onSelect:composeEventHandlers(o.onSelect,(()=>r?.(!!isIndeterminate(n)||!n)),{checkForDefaultPrevented:!1})})})}));MenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME$1;var RADIO_GROUP_NAME$1="MenuRadioGroup",[RadioGroupProvider,useRadioGroupContext]=createMenuContext(RADIO_GROUP_NAME$1,{value:void 0,onValueChange:()=>{}}),MenuRadioGroup=React__namespace.forwardRef(((e,t)=>{const{value:n,onValueChange:r,...o}=e,a=useCallbackRef$1(r);return jsxRuntime.exports.jsx(RadioGroupProvider,{scope:e.__scopeMenu,value:n,onValueChange:a,children:jsxRuntime.exports.jsx(MenuGroup,{...o,ref:t})})}));MenuRadioGroup.displayName=RADIO_GROUP_NAME$1;var RADIO_ITEM_NAME$1="MenuRadioItem",MenuRadioItem=React__namespace.forwardRef(((e,t)=>{const{value:n,...r}=e,o=useRadioGroupContext(RADIO_ITEM_NAME$1,e.__scopeMenu),a=n===o.value;return jsxRuntime.exports.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:a,children:jsxRuntime.exports.jsx(MenuItem,{role:"menuitemradio","aria-checked":a,...r,ref:t,"data-state":getCheckedState(a),onSelect:composeEventHandlers(r.onSelect,(()=>o.onValueChange?.(n)),{checkForDefaultPrevented:!1})})})}));MenuRadioItem.displayName=RADIO_ITEM_NAME$1;var ITEM_INDICATOR_NAME="MenuItemIndicator",[ItemIndicatorProvider,useItemIndicatorContext]=createMenuContext(ITEM_INDICATOR_NAME,{checked:!1}),MenuItemIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,forceMount:r,...o}=e,a=useItemIndicatorContext(ITEM_INDICATOR_NAME,n);return jsxRuntime.exports.jsx(Presence,{present:r||isIndeterminate(a.checked)||!0===a.checked,children:jsxRuntime.exports.jsx(Primitive.span,{...o,ref:t,"data-state":getCheckedState(a.checked)})})}));MenuItemIndicator.displayName=ITEM_INDICATOR_NAME;var SEPARATOR_NAME$1="MenuSeparator",MenuSeparator=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...r}=e;return jsxRuntime.exports.jsx(Primitive.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})}));MenuSeparator.displayName=SEPARATOR_NAME$1;var ARROW_NAME$1="MenuArrow",MenuArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...r}=e,o=usePopperScope(n);return jsxRuntime.exports.jsx(Arrow,{...o,...r,ref:t})}));MenuArrow.displayName=ARROW_NAME$1;var SUB_NAME="MenuSub",[MenuSubProvider,useMenuSubContext]=createMenuContext(SUB_NAME),SUB_TRIGGER_NAME$1="MenuSubTrigger",MenuSubTrigger=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),r=useMenuRootContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),o=useMenuSubContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),a=useMenuContentContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),i=React__namespace.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:l}=a,c={__scopeMenu:e.__scopeMenu},u=React__namespace.useCallback((()=>{i.current&&window.clearTimeout(i.current),i.current=null}),[]);return React__namespace.useEffect((()=>u),[u]),React__namespace.useEffect((()=>{const e=s.current;return()=>{window.clearTimeout(e),l(null)}}),[s,l]),jsxRuntime.exports.jsx(MenuAnchor,{asChild:!0,...c,children:jsxRuntime.exports.jsx(MenuItemImpl,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":o.contentId,"data-state":getOpenState(n.open),...e,ref:composeRefs(t,o.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((t=>{a.onItemEnter(t),t.defaultPrevented||e.disabled||n.open||i.current||(a.onPointerGraceIntentChange(null),i.current=window.setTimeout((()=>{n.onOpenChange(!0),u()}),100))}))),onPointerLeave:composeEventHandlers(e.onPointerLeave,whenMouse((e=>{u();const t=n.content?.getBoundingClientRect();if(t){const r=n.content?.dataset.side,o="right"===r,i=o?-5:5,l=t[o?"left":"right"],c=t[o?"right":"left"];a.onPointerGraceIntentChange({area:[{x:e.clientX+i,y:e.clientY},{x:l,y:t.top},{x:c,y:t.top},{x:c,y:t.bottom},{x:l,y:t.bottom}],side:r}),window.clearTimeout(s.current),s.current=window.setTimeout((()=>a.onPointerGraceIntentChange(null)),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}}))),onKeyDown:composeEventHandlers(e.onKeyDown,(t=>{const o=""!==a.searchRef.current;e.disabled||o&&" "===t.key||SUB_OPEN_KEYS[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())}))})})}));MenuSubTrigger.displayName=SUB_TRIGGER_NAME$1;var SUB_CONTENT_NAME$1="MenuSubContent",MenuSubContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext(CONTENT_NAME$1,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,a=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),i=useMenuRootContext(CONTENT_NAME$1,e.__scopeMenu),s=useMenuSubContext(SUB_CONTENT_NAME$1,e.__scopeMenu),l=React__namespace.useRef(null),c=useComposedRefs(t,l);return jsxRuntime.exports.jsx(Collection.Provider,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(Presence,{present:r||a.open,children:jsxRuntime.exports.jsx(Collection.Slot,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(MenuContentImpl,{id:s.contentId,"aria-labelledby":s.triggerId,...o,ref:c,align:"start",side:"rtl"===i.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{i.isUsingKeyboardRef.current&&l.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>{e.target!==s.trigger&&a.onOpenChange(!1)})),onEscapeKeyDown:composeEventHandlers(e.onEscapeKeyDown,(e=>{i.onClose(),e.preventDefault()})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{const t=e.currentTarget.contains(e.target),n=SUB_CLOSE_KEYS[i.dir].includes(e.key);t&&n&&(a.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())}))})})})})}));function getOpenState(e){return e?"open":"closed"}function isIndeterminate(e){return"indeterminate"===e}function getCheckedState(e){return isIndeterminate(e)?"indeterminate":e?"checked":"unchecked"}function focusFirst(e){const t=document.activeElement;for(const n of e){if(n===t)return;if(n.focus(),document.activeElement!==t)return}}function wrapArray(e,t){return e.map(((n,r)=>e[(t+r)%e.length]))}function getNextMatch(e,t,n){const r=t.length>1&&Array.from(t).every((e=>e===t[0]))?t[0]:t,o=n?e.indexOf(n):-1;let a=wrapArray(e,Math.max(o,0));1===r.length&&(a=a.filter((e=>e!==n)));const i=a.find((e=>e.toLowerCase().startsWith(r.toLowerCase())));return i!==n?i:void 0}function isPointInPolygon(e,t){const{x:n,y:r}=e;let o=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){const i=t[e].x,s=t[e].y,l=t[a].x,c=t[a].y;s>r!=c>r&&n<(l-i)*(r-s)/(c-s)+i&&(o=!o)}return o}function isPointerInGraceArea(e,t){if(!t)return!1;return isPointInPolygon({x:e.clientX,y:e.clientY},t)}function whenMouse(e){return t=>"mouse"===t.pointerType?e(t):void 0}MenuSubContent.displayName=SUB_CONTENT_NAME$1;var Root3=Menu,Anchor2=MenuAnchor,Portal=MenuPortal,Content2$1=MenuContent,Group=MenuGroup,Label=MenuLabel,Item2=MenuItem,CheckboxItem=MenuCheckboxItem,RadioGroup=MenuRadioGroup,RadioItem=MenuRadioItem,ItemIndicator=MenuItemIndicator,Separator=MenuSeparator,Arrow2=MenuArrow,SubTrigger=MenuSubTrigger,SubContent=MenuSubContent,DROPDOWN_MENU_NAME="DropdownMenu",[createDropdownMenuContext,createDropdownMenuScope]=createContextScope$3(DROPDOWN_MENU_NAME,[createMenuScope]),useMenuScope=createMenuScope(),[DropdownMenuProvider,useDropdownMenuContext]=createDropdownMenuContext(DROPDOWN_MENU_NAME),DropdownMenu=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:o,defaultOpen:a,onOpenChange:i,modal:s=!0}=e,l=useMenuScope(t),c=React__namespace.useRef(null),[u=!1,d]=useControllableState$1({prop:o,defaultProp:a,onChange:i});return jsxRuntime.exports.jsx(DropdownMenuProvider,{scope:t,triggerId:useId(),triggerRef:c,contentId:useId(),open:u,onOpenChange:d,onOpenToggle:React__namespace.useCallback((()=>d((e=>!e))),[d]),modal:s,children:jsxRuntime.exports.jsx(Root3,{...l,open:u,onOpenChange:d,dir:r,modal:s,children:n})})};DropdownMenu.displayName=DROPDOWN_MENU_NAME;var TRIGGER_NAME="DropdownMenuTrigger",DropdownMenuTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...o}=e,a=useDropdownMenuContext(TRIGGER_NAME,n),i=useMenuScope(n);return jsxRuntime.exports.jsx(Anchor2,{asChild:!0,...i,children:jsxRuntime.exports.jsx(Primitive.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...o,ref:composeRefs(t,a.triggerRef),onPointerDown:composeEventHandlers(e.onPointerDown,(e=>{r||0!==e.button||!1!==e.ctrlKey||(a.onOpenToggle(),a.open||e.preventDefault())})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{r||(["Enter"," "].includes(e.key)&&a.onOpenToggle(),"ArrowDown"===e.key&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())}))})})}));DropdownMenuTrigger.displayName=TRIGGER_NAME;var PORTAL_NAME="DropdownMenuPortal",DropdownMenuPortal=e=>{const{__scopeDropdownMenu:t,...n}=e,r=useMenuScope(t);return jsxRuntime.exports.jsx(Portal,{...r,...n})};DropdownMenuPortal.displayName=PORTAL_NAME;var CONTENT_NAME="DropdownMenuContent",DropdownMenuContent=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useDropdownMenuContext(CONTENT_NAME,n),a=useMenuScope(n),i=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(Content2$1,{id:o.contentId,"aria-labelledby":o.triggerId,...a,...r,ref:t,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,(e=>{i.current||o.triggerRef.current?.focus(),i.current=!1,e.preventDefault()})),onInteractOutside:composeEventHandlers(e.onInteractOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;o.modal&&!r||(i.current=!0)})),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})}));DropdownMenuContent.displayName=CONTENT_NAME;var GROUP_NAME="DropdownMenuGroup",DropdownMenuGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(Group,{...o,...r,ref:t})}));DropdownMenuGroup.displayName=GROUP_NAME;var LABEL_NAME="DropdownMenuLabel",DropdownMenuLabel=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(Label,{...o,...r,ref:t})}));DropdownMenuLabel.displayName=LABEL_NAME;var ITEM_NAME="DropdownMenuItem",DropdownMenuItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(Item2,{...o,...r,ref:t})}));DropdownMenuItem.displayName=ITEM_NAME;var CHECKBOX_ITEM_NAME="DropdownMenuCheckboxItem",DropdownMenuCheckboxItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(CheckboxItem,{...o,...r,ref:t})}));DropdownMenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME;var RADIO_GROUP_NAME="DropdownMenuRadioGroup",DropdownMenuRadioGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(RadioGroup,{...o,...r,ref:t})}));DropdownMenuRadioGroup.displayName=RADIO_GROUP_NAME;var RADIO_ITEM_NAME="DropdownMenuRadioItem",DropdownMenuRadioItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(RadioItem,{...o,...r,ref:t})}));DropdownMenuRadioItem.displayName=RADIO_ITEM_NAME;var INDICATOR_NAME="DropdownMenuItemIndicator",DropdownMenuItemIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(ItemIndicator,{...o,...r,ref:t})}));DropdownMenuItemIndicator.displayName=INDICATOR_NAME;var SEPARATOR_NAME="DropdownMenuSeparator",DropdownMenuSeparator=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(Separator,{...o,...r,ref:t})}));DropdownMenuSeparator.displayName=SEPARATOR_NAME;var ARROW_NAME="DropdownMenuArrow",DropdownMenuArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(Arrow2,{...o,...r,ref:t})}));DropdownMenuArrow.displayName=ARROW_NAME;var SUB_TRIGGER_NAME="DropdownMenuSubTrigger",DropdownMenuSubTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(SubTrigger,{...o,...r,ref:t})}));DropdownMenuSubTrigger.displayName=SUB_TRIGGER_NAME;var SUB_CONTENT_NAME="DropdownMenuSubContent",DropdownMenuSubContent=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(SubContent,{...o,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})}));DropdownMenuSubContent.displayName=SUB_CONTENT_NAME;var Root2=DropdownMenu,Portal2=DropdownMenuPortal,Content2=DropdownMenuContent;function Dropdown({children:e,content:t,defaultOpen:n,open:r,onOpenChange:o,className:a,...i}){const s=useOverrides(),{portalContainer:l}=useLiveblocksUIConfig();return React__default.default.createElement(Root2,{defaultOpen:n,open:r,onOpenChange:o,dir:s.dir},e,React__default.default.createElement(Portal2,{container:l},React__default.default.createElement(Content2,{className:classNames("lb-root lb-portal lb-elevation lb-dropdown",a),sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,...i},t)))}const DropdownItem=React.forwardRef((({children:e,className:t,...n},r)=>React__default.default.createElement(DropdownMenuItem,{className:classNames("lb-dropdown-item",t),...n,ref:r},e))),List=React.forwardRef((({values:e,formatRemaining:t,truncate:n,locale:r,className:o,asChild:a,...i},s)=>{const l=a?Slot:"span",c=useOverrides(),u=t??c.LIST_REMAINING,d=React.useMemo((()=>{const t=n&&n<e.length-1?[...e.slice(0,n),u(e.length-n)]:[...e],o=Array(t.length).fill(".");return listFormat(r).formatToParts(o).map((e=>"element"===e.type?t.shift():e.value))}),[u,r,n,e]);return React__default.default.createElement(l,{className:classNames("lb-list",o),...i,ref:s},d)})),REACTIONS_TRUNCATE=5;function CommentMention({userId:e,className:t,...n}){const r=useCurrentUserId();return React__default.default.createElement(CommentMention$1,{className:classNames("lb-comment-mention",t),"data-self":e===r?"":void 0,...n},MENTION_CHARACTER,React__default.default.createElement(User,{userId:e}))}function CommentLink({href:e,children:t,className:n,...r}){return React__default.default.createElement(CommentLink$1,{className:classNames("lb-comment-link",n),href:e,...r},t)}function CommentNonInteractiveLink({href:e,children:t,className:n,...r}){return React__default.default.createElement("span",{className:classNames("lb-comment-link",n),...r},t)}const CommentReactionButton=React.forwardRef((({reaction:e,overrides:t,className:n,...r},o)=>{const a=useOverrides(t);return React__default.default.createElement(Button,{className:classNames("lb-comment-reaction",n),variant:"outline","aria-label":a.COMMENT_REACTION_DESCRIPTION(e.emoji,e.users.length),...r,ref:o},React__default.default.createElement(Emoji,{className:"lb-comment-reaction-emoji",emoji:e.emoji}),React__default.default.createElement("span",{className:"lb-comment-reaction-count"},e.users.length))})),CommentReaction=React.forwardRef((({comment:e,reaction:t,overrides:n,disabled:r,...o},a)=>{const i=_useAddReaction(),s=useRemoveReaction(),l=useCurrentUserId(),c=React.useMemo((()=>t.users.some((e=>e.id===l))),[l,t]),u=useOverrides(n),d=React.useMemo((()=>React__default.default.createElement("span",null,u.COMMENT_REACTION_LIST(React__default.default.createElement(List,{values:t.users.map((e=>React__default.default.createElement(User,{key:e.id,userId:e.id,replaceSelf:!0}))),formatRemaining:u.LIST_REMAINING_USERS,truncate:REACTIONS_TRUNCATE,locale:u.locale}),t.emoji,t.users.length))),[u,t]),f=React.useCallback((e=>{e.stopPropagation()}),[]),p=React.useCallback((n=>{n?i({threadId:e.threadId,commentId:e.id,emoji:t.emoji}):s({threadId:e.threadId,commentId:e.id,emoji:t.emoji})}),[i,e.threadId,e.id,t.emoji,s]);return React__default.default.createElement(Tooltip,{content:d,multiline:!0,className:"lb-comment-reaction-tooltip"},React__default.default.createElement(Root$3,{asChild:!0,pressed:c,onPressedChange:p,onClick:f,disabled:r,ref:a},React__default.default.createElement(CommentReactionButton,{"data-self":c?"":void 0,reaction:t,overrides:n,...o})))})),CommentNonInteractiveReaction=React.forwardRef((({reaction:e,overrides:t,...n},r)=>{const o=useCurrentUserId(),a=React.useMemo((()=>e.users.some((e=>e.id===o))),[o,e]);return React__default.default.createElement(CommentReactionButton,{disableable:!1,"data-self":a?"":void 0,reaction:e,overrides:t,...n,ref:r})}));function openAttachment({attachment:e,url:t}){"application/pdf"===e.mimeType||e.mimeType.startsWith("image/")||e.mimeType.startsWith("video/")||e.mimeType.startsWith("audio/")?window.open(t,"_blank"):download(t,e.name)}function CommentMediaAttachment({attachment:e,onAttachmentClick:t,className:n,overrides:r,...o}){const{url:a}=useAttachmentUrl(e.id),i=React.useCallback((n=>{if(!a)return;const r={attachment:e,url:a};t?.(r,n),n.isDefaultPrevented()||openAttachment(r)}),[e,t,a]);return React__default.default.createElement(MediaAttachment,{className:classNames("lb-comment-attachment",n),...o,attachment:e,overrides:r,onClick:a?i:void 0})}function CommentFileAttachment({attachment:e,onAttachmentClick:t,className:n,overrides:r,...o}){const{url:a}=useAttachmentUrl(e.id),i=React.useCallback((n=>{if(!a)return;const r={attachment:e,url:a};t?.(r,n),n.isDefaultPrevented()||openAttachment(r)}),[e,t,a]);return React__default.default.createElement(FileAttachment,{className:classNames("lb-comment-attachment",n),...o,attachment:e,overrides:r,onClick:a?i:void 0})}function CommentNonInteractiveFileAttachment({className:e,...t}){return React__default.default.createElement(FileAttachment,{className:classNames("lb-comment-attachment",e),allowMediaPreview:!1,...t})}function AutoMarkReadThreadIdHandler({threadId:e,commentRef:t}){const n=useMarkThreadAsRead();return useVisibleCallback(t,(()=>{n(e)}),{enabled:useWindowFocus()}),null}const Comment=React.forwardRef((({comment:e,indentContent:t=!0,showDeleted:n,showActions:r="hover",showReactions:o=!0,showAttachments:a=!0,onAuthorClick:i,onMentionClick:s,onAttachmentClick:l,onCommentEdit:c,onCommentDelete:u,overrides:d,className:f,additionalActions:p,additionalActionsClassName:m,autoMarkReadThreadId:h,..._},g)=>{const v=Boolean(React.useContext(RoomContext)),E=React.useRef(null),y=useRefs(g,E),b=useCurrentUserId(),C=useDeleteComment(),R=useEditComment(),w=_useAddReaction(),S=useRemoveReaction(),D=useOverrides(d),[T,O]=React.useState(!1),[A,I]=React.useState(!1),[x,N]=React.useState(!1),[F,P]=React.useState(!1),{mediaAttachments:k,fileAttachments:$}=React.useMemo((()=>separateMediaAttachments(e.attachments)),[e.attachments]),M=React.useCallback((e=>{e.stopPropagation()}),[]),B=React.useCallback((()=>{O(!0)}),[]),L=React.useCallback((e=>{e.stopPropagation(),O(!1)}),[]),j=React.useCallback((({body:t,attachments:n},r)=>{c?.(e),r.preventDefault(),O(!1),R({commentId:e.id,threadId:e.threadId,body:t,attachments:n})}),[e,R,c]),U=React.useCallback((()=>{u?.(e),C({commentId:e.id,threadId:e.threadId})}),[e,C,u]),V=React.useCallback((t=>{i?.(e.userId,t)}),[e.userId,i]),H=React.useCallback((t=>{const n=e.reactions.findIndex((e=>e.emoji===t));n>=0&&b&&e.reactions[n]?.users.some((e=>e.id===b))?S({threadId:e.threadId,commentId:e.id,emoji:t}):w({threadId:e.threadId,commentId:e.id,emoji:t})}),[w,e.id,e.reactions,e.threadId,S,b]);return React.useEffect((()=>{if(!("undefined"!=typeof window))return;window.location.hash.slice(1)===e.id&&I(!0)}),[]),n||e.body?React__default.default.createElement(TooltipProvider,null,v&&h&&React__default.default.createElement(AutoMarkReadThreadIdHandler,{commentRef:E,threadId:h}),React__default.default.createElement("div",{id:e.id,className:classNames("lb-root lb-comment",t&&"lb-comment:indent-content","hover"===r&&"lb-comment:show-actions-hover",(x||F)&&"lb-comment:action-open",f),"data-deleted":e.body?void 0:"","data-editing":T?"":void 0,"data-target":A?"":void 0,dir:D.dir,..._,ref:y},React__default.default.createElement("div",{className:"lb-comment-header"},React__default.default.createElement("div",{className:"lb-comment-details"},React__default.default.createElement(Avatar,{className:"lb-comment-avatar",userId:e.userId,onClick:V}),React__default.default.createElement("span",{className:"lb-comment-details-labels"},React__default.default.createElement(User,{className:"lb-comment-author",userId:e.userId,onClick:V}),React__default.default.createElement("span",{className:"lb-comment-date"},React__default.default.createElement(Timestamp,{locale:D.locale,date:e.createdAt,className:"lb-date lb-comment-date-created"}),e.editedAt&&e.body&&React__default.default.createElement(React__default.default.Fragment,null," ",React__default.default.createElement("span",{className:"lb-comment-date-edited"},D.COMMENT_EDITED))))),r&&!T&&React__default.default.createElement("div",{className:classNames("lb-comment-actions",m)},p??null,o&&React__default.default.createElement(EmojiPicker,{onEmojiSelect:H,onOpenChange:P},React__default.default.createElement(Tooltip,{content:D.COMMENT_ADD_REACTION},React__default.default.createElement(PopoverTrigger,{asChild:!0},React__default.default.createElement(Button,{className:"lb-comment-action",onClick:M,"aria-label":D.COMMENT_ADD_REACTION},React__default.default.createElement(EmojiAddIcon,{className:"lb-button-icon"}))))),e.userId===b&&React__default.default.createElement(Dropdown,{open:x,onOpenChange:N,align:"end",content:React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(DropdownItem,{onSelect:B,onClick:M},React__default.default.createElement(EditIcon,{className:"lb-dropdown-item-icon"}),D.COMMENT_EDIT),React__default.default.createElement(DropdownItem,{onSelect:U,onClick:M},React__default.default.createElement(DeleteIcon,{className:"lb-dropdown-item-icon"}),D.COMMENT_DELETE))},React__default.default.createElement(Tooltip,{content:D.COMMENT_MORE},React__default.default.createElement(DropdownMenuTrigger,{asChild:!0},React__default.default.createElement(Button,{className:"lb-comment-action",disabled:!e.body,onClick:M,"aria-label":D.COMMENT_MORE},React__default.default.createElement(EllipsisIcon,{className:"lb-button-icon"}))))))),React__default.default.createElement("div",{className:"lb-comment-content"},T?React__default.default.createElement(Composer,{className:"lb-comment-composer",onComposerSubmit:j,defaultValue:e.body,defaultAttachments:e.attachments,autoFocus:!0,showAttribution:!1,showAttachments:a,actions:React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(Tooltip,{content:D.COMMENT_EDIT_COMPOSER_CANCEL,"aria-label":D.COMMENT_EDIT_COMPOSER_CANCEL},React__default.default.createElement(Button,{className:"lb-composer-action",onClick:L},React__default.default.createElement(CrossIcon,{className:"lb-button-icon"}))),React__default.default.createElement(ShortcutTooltip,{content:D.COMMENT_EDIT_COMPOSER_SAVE,shortcut:React__default.default.createElement(ShortcutTooltipKey,{name:"enter"})},React__default.default.createElement(ComposerSubmit,{asChild:!0},React__default.default.createElement(Button,{variant:"primary",className:"lb-composer-action",onClick:M,"aria-label":D.COMMENT_EDIT_COMPOSER_SAVE},React__default.default.createElement(CheckIcon,{className:"lb-button-icon"}))))),overrides:{COMPOSER_PLACEHOLDER:D.COMMENT_EDIT_COMPOSER_PLACEHOLDER}}):e.body?React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(CommentBody,{className:"lb-comment-body",body:e.body,components:{Mention:({userId:e})=>React__default.default.createElement(CommentMention,{userId:e,onClick:t=>s?.(e,t)}),Link:CommentLink}}),a&&(k.length>0||$.length>0)?React__default.default.createElement("div",{className:"lb-comment-attachments"},k.length>0?React__default.default.createElement("div",{className:"lb-attachments"},k.map((e=>React__default.default.createElement(CommentMediaAttachment,{key:e.id,attachment:e,overrides:d,onAttachmentClick:l})))):null,$.length>0?React__default.default.createElement("div",{className:"lb-attachments"},$.map((e=>React__default.default.createElement(CommentFileAttachment,{key:e.id,attachment:e,overrides:d,onAttachmentClick:l})))):null):null,o&&e.reactions.length>0&&React__default.default.createElement("div",{className:"lb-comment-reactions"},e.reactions.map((t=>React__default.default.createElement(CommentReaction,{key:t.emoji,comment:e,reaction:t,overrides:d}))),React__default.default.createElement(EmojiPicker,{onEmojiSelect:H},React__default.default.createElement(Tooltip,{content:D.COMMENT_ADD_REACTION},React__default.default.createElement(PopoverTrigger,{asChild:!0},React__default.default.createElement(Button,{className:"lb-comment-reaction lb-comment-reaction-add",variant:"outline",onClick:M,"aria-label":D.COMMENT_ADD_REACTION},React__default.default.createElement(EmojiAddIcon,{className:"lb-button-icon"}))))))):React__default.default.createElement("div",{className:"lb-comment-body"},React__default.default.createElement("p",{className:"lb-comment-deleted"},D.COMMENT_DELETED))))):null})),PLACEHOLDER_BASE_URL="https://localhost:9999",ABSOLUTE_URL_REGEX=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/;function generateURL(e,t,n){const r=ABSOLUTE_URL_REGEX.test(e),o=new URL(e,r?void 0:PLACEHOLDER_BASE_URL);if(void 0!==t)for(const[e,n]of Object.entries(t))n&&o.searchParams.set(e,String(n));return o.hash||void 0===n||(o.hash=`#${n}`),r?o.href:o.href.replace(PLACEHOLDER_BASE_URL,"")}const INBOX_NOTIFICATION_THREAD_MAX_COMMENTS=3;function InboxNotificationComment({comment:e,showHeader:t=!0,showAttachments:n=!0,showReactions:r=!0,overrides:o,className:a,...i}){const s=useOverrides(o);return React__default.default.createElement("div",{className:classNames("lb-root lb-inbox-notification-comment lb-comment",a),...i},t&&React__default.default.createElement("div",{className:"lb-comment-header"},React__default.default.createElement(User,{className:"lb-comment-author",userId:e.userId})),React__default.default.createElement("div",{className:"lb-comment-content"},e.body?React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(CommentBody,{className:"lb-comment-body",body:e.body,components:{Mention:CommentMention,Link:CommentNonInteractiveLink}}),r&&e.reactions.length>0&&React__default.default.createElement("div",{className:"lb-comment-reactions"},e.reactions.map((e=>React__default.default.createElement(CommentNonInteractiveReaction,{key:e.emoji,reaction:e,overrides:o,disabled:!0})))),n&&e.attachments.length>0?React__default.default.createElement("div",{className:"lb-comment-attachments"},React__default.default.createElement("div",{className:"lb-attachments"},e.attachments.map((e=>React__default.default.createElement(CommentNonInteractiveFileAttachment,{key:e.id,attachment:e,overrides:o}))))):null):React__default.default.createElement("div",{className:"lb-comment-body"},React__default.default.createElement("p",{className:"lb-comment-deleted"},s.COMMENT_DELETED))))}function findLastCommentWithMentionedId(e,t){if(e.length)for(let n=e.length-1;n>=0;n--){const r=e[n];if(r.userId!==t&&r.body){if(getMentionedIdsFromCommentBody(r.body).includes(t))return r}}}function getUserIdsFromComments(e){return Array.from(new Set(e.map((e=>e.userId))))}function generateInboxNotificationThreadContents(e,t,n){const r=t.comments.filter((t=>!!t.body&&(e.readAt?t.createdAt>e.readAt&&t.createdAt<=e.notifiedAt:t.createdAt<=e.notifiedAt)));if(0===r.length){const n=t.comments.filter((e=>e.body)).slice(-INBOX_NOTIFICATION_THREAD_MAX_COMMENTS);return{type:"comments",unread:!1,comments:n,userIds:getUserIdsFromComments(n),date:e.notifiedAt}}const o=findLastCommentWithMentionedId(r,n);if(o)return{type:"mention",unread:!0,comments:[o],userIds:[o.userId],date:o.createdAt};return{type:"comments",unread:!0,comments:r.slice(-INBOX_NOTIFICATION_THREAD_MAX_COMMENTS),userIds:getUserIdsFromComments(r),date:e.notifiedAt}}function Room({roomId:e,className:t,...n}){const{info:r,isLoading:o}=useRoomInfo(e),a=React.useMemo((()=>r?.name??e),[r?.name,e]);return React__default.default.createElement("span",{className:classNames("lb-name lb-room",t),"data-loading":o?"":void 0,...n},o?null:a)}const InboxNotificationLayout=React.forwardRef((({inboxNotification:e,children:t,aside:n,title:r,date:o,unread:a,markAsReadOnClick:i,onClick:s,href:l,showActions:c,overrides:u,components:d,className:f,asChild:p,...m},h)=>{const _=useOverrides(u),{Anchor:g}=useComponents(d),v=p?Slot:g,[E,y]=React.useState(!1),b=useMarkInboxNotificationAsRead(),C=useDeleteInboxNotification(),R=React.useCallback((t=>{s?.(t);const n=i??Boolean(l);a&&n&&b(e.id)}),[l,e.id,i,b,s,a]),w=React.useCallback((e=>{e.stopPropagation()}),[]),S=React.useCallback((e=>{e.preventDefault(),e.stopPropagation()}),[]),D=React.useCallback((e=>{e.preventDefault(),e.stopPropagation(),y((e=>!e))}),[]),T=React.useCallback((()=>{b(e.id)}),[e.id,b]),O=React.useCallback((()=>{C(e.id)}),[e.id,C]);return React__default.default.createElement(TooltipProvider,null,React__default.default.createElement(v,{className:classNames("lb-root lb-inbox-notification","hover"===c&&"lb-inbox-notification:show-actions-hover",E&&"lb-inbox-notification:action-open",f),dir:_.dir,"data-unread":a?"":void 0,"data-kind":e.kind,onClick:R,href:l,...m,ref:h},n&&React__default.default.createElement("div",{className:"lb-inbox-notification-aside"},n),React__default.default.createElement("div",{className:"lb-inbox-notification-content"},React__default.default.createElement("div",{className:"lb-inbox-notification-header"},React__default.default.createElement("span",{className:"lb-inbox-notification-title"},r),React__default.default.createElement("div",{className:"lb-inbox-notification-details"},React__default.default.createElement("span",{className:"lb-inbox-notification-details-labels"},React__default.default.createElement(Timestamp,{locale:_.locale,date:o,className:"lb-date lb-inbox-notification-date"}),a&&React__default.default.createElement("span",{className:"lb-inbox-notification-unread-indicator",role:"presentation"}))),c&&React__default.default.createElement("div",{className:"lb-inbox-notification-actions"},React__default.default.createElement(Dropdown,{open:E,onOpenChange:y,align:"end",content:React__default.default.createElement(React__default.default.Fragment,null,a?React__default.default.createElement(DropdownItem,{onSelect:T,onClick:w},React__default.default.createElement(CheckIcon,{className:"lb-dropdown-item-icon"}),_.INBOX_NOTIFICATION_MARK_AS_READ):null,React__default.default.createElement(DropdownItem,{onSelect:O,onClick:w},React__default.default.createElement(DeleteIcon,{className:"lb-dropdown-item-icon"}),_.INBOX_NOTIFICATION_DELETE))},React__default.default.createElement(Tooltip,{content:_.INBOX_NOTIFICATION_MORE},React__default.default.createElement(DropdownMenuTrigger,{asChild:!0},React__default.default.createElement(Button,{className:"lb-inbox-notification-action",onClick:D,onPointerDown:S,onPointerUp:S,"aria-label":_.INBOX_NOTIFICATION_MORE},React__default.default.createElement(EllipsisIcon,{className:"lb-button-icon"}))))))),React__default.default.createElement("div",{className:"lb-inbox-notification-body"},t))))}));function InboxNotificationIcon({className:e,...t}){return React__default.default.createElement("div",{className:classNames("lb-inbox-notification-icon",e),...t})}function InboxNotificationAvatar({className:e,...t}){return React__default.default.createElement(Avatar,{className:classNames("lb-inbox-notification-avatar",e),...t})}const InboxNotificationThread=React.forwardRef((({inboxNotification:e,href:t,showRoomName:n=!0,showReactions:r=!0,showAttachments:o=!0,showActions:a="hover",overrides:i,...s},l)=>{const c=useOverrides(i),u=_useInboxNotificationThread(e.id),d=useCurrentUserId(),{info:f}=useRoomInfo(e.roomId),p=React.useMemo((()=>{const t=generateInboxNotificationThreadContents(e,u,d??"");if(0===t.comments.length||0===t.userIds.length)return null;switch(t.type){case"comments":{const e=[...t.userIds].reverse(),a=e[0],s=React__default.default.createElement(InboxNotificationAvatar,{userId:a}),l=c.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST(React__default.default.createElement(List,{values:e.map((e=>React__default.default.createElement(User,{key:e,userId:e,replaceSelf:!0}))),formatRemaining:c.LIST_REMAINING_USERS,truncate:INBOX_NOTIFICATION_THREAD_MAX_COMMENTS-1,locale:c.locale}),n?React__default.default.createElement(Room,{roomId:u.roomId}):void 0,e.length),d=React__default.default.createElement("div",{className:"lb-inbox-notification-comments"},t.comments.map((e=>React__default.default.createElement(InboxNotificationComment,{key:e.id,comment:e,showHeader:t.comments.length>1,showAttachments:o,showReactions:r,overrides:i}))));return{unread:t.unread,date:t.date,aside:s,title:l,content:d,threadId:u.id,commentId:t.comments[t.comments.length-1].id}}case"mention":{const e=t.userIds[0],a=t.comments[0],s=React__default.default.createElement(InboxNotificationAvatar,{userId:e}),l=c.INBOX_NOTIFICATION_THREAD_MENTION(React__default.default.createElement(User,{key:e,userId:e}),n?React__default.default.createElement(Room,{roomId:u.roomId}):void 0),d=React__default.default.createElement("div",{className:"lb-inbox-notification-comments"},React__default.default.createElement(InboxNotificationComment,{key:a.id,comment:a,showHeader:!1,showAttachments:o,showReactions:r,overrides:i}));return{unread:t.unread,date:t.date,aside:s,title:l,content:d,threadId:u.id,commentId:a.id}}default:return assertNever(t,"Unexpected thread inbox notification type")}}),[c,d,e,i,n,o,r,u]),m=React.useMemo((()=>{const e=t??f?.url;return e?generateURL(e,void 0,p?.commentId):void 0}),[p?.commentId,t,f?.url]);if(!p)return null;const{aside:h,title:_,content:g,date:v,unread:E}=p;return React__default.default.createElement(InboxNotificationLayout,{inboxNotification:e,aside:h,title:_,date:v,unread:E,overrides:i,href:m,showActions:a,markAsReadOnClick:!1,...s,ref:l},g)})),InboxNotificationTextMention=React.forwardRef((({inboxNotification:e,showActions:t="hover",showRoomName:n=!0,overrides:r,...o},a)=>{const i=useOverrides(r),s=React.useMemo((()=>!e.readAt||e.notifiedAt>e.readAt),[e.notifiedAt,e.readAt]);return React__default.default.createElement(InboxNotificationLayout,{inboxNotification:e,aside:React__default.default.createElement(InboxNotificationAvatar,{userId:e.createdBy}),title:i.INBOX_NOTIFICATION_TEXT_MENTION(React__default.default.createElement(User,{key:e.createdBy,userId:e.createdBy}),n?React__default.default.createElement(Room,{roomId:e.roomId}):void 0),date:e.notifiedAt,unread:s,overrides:r,showActions:t,...o,ref:a})})),InboxNotificationCustom=React.forwardRef((({inboxNotification:e,showActions:t="hover",title:n,aside:r,children:o,overrides:a,...i},s)=>{const l=React.useMemo((()=>!e.readAt||e.notifiedAt>e.readAt),[e.notifiedAt,e.readAt]);return React__default.default.createElement(InboxNotificationLayout,{inboxNotification:e,aside:r,title:n,date:e.notifiedAt,unread:l,overrides:a,showActions:t,...i,ref:s},o)}));React.forwardRef((({inboxNotification:e,...t},n)=>React__default.default.createElement(InboxNotificationCustom,{inboxNotification:e,...t,title:React__default.default.createElement(React__default.default.Fragment,null,"Custom notification kind ",React__default.default.createElement("code",null,e.kind)," is not handled"),aside:React__default.default.createElement(InboxNotificationIcon,null,React__default.default.createElement(WarningIcon,null)),ref:n,"data-missing":""},"Notifications of this kind won’t be displayed in production. Use the"," ",React__default.default.createElement("code",null,"kinds")," prop to define how they should be rendered.")));const InboxNotification=Object.assign(React.forwardRef((({inboxNotification:e,kinds:t,...n},r)=>{switch(e.kind){case"thread":{const o=t?.thread??InboxNotificationThread;return React__default.default.createElement(o,{inboxNotification:e,...n,ref:r})}case"textMention":{const o=t?.textMention??InboxNotificationTextMention;return React__default.default.createElement(o,{inboxNotification:e,...n,ref:r})}default:{const o=t?.[e.kind];return o?React__default.default.createElement(o,{inboxNotification:e,...n,ref:r}):null}}})),{Thread:InboxNotificationThread,TextMention:InboxNotificationTextMention,Custom:InboxNotificationCustom,Icon:InboxNotificationIcon,Avatar:InboxNotificationAvatar});function ReachEndMarker({enabled:e,onReachEnd:t}){const n=React.useRef(null);return useVisibleCallback(n,t,{enabled:e}),React__default.default.createElement("div",{ref:n,style:{height:0}})}const InboxNotificationList=React.forwardRef((({onReachEnd:e,children:t,className:n,...r},o)=>React__default.default.createElement("ol",{className:classNames("lb-root lb-inbox-notification-list",n),...r,ref:o},React.Children.map(t,((e,t)=>React__default.default.createElement("li",{key:t,className:"lb-inbox-notification-list-item"},e))),e&&React__default.default.createElement(ReachEndMarker,{onReachEnd:e,enabled:React.Children.count(t)>0}))));function ArrowDownIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"M10 4v12m6-6-6 6-6-6"}))}function ResolveIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("circle",{cx:10,cy:10,r:7}),React__default.default.createElement("path",{d:"m13 8-4 4-2-2"}))}function ResolvedIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("circle",{cx:10,cy:10,r:7,fill:"currentColor"}),React__default.default.createElement("path",{d:"m13 8-4 4-2-2",stroke:"var(--lb-icon-background)"}))}function findLastIndex(e,t){let n=e.length-1;for(;n>=0;){const r=e[n];if(r&&t(r))return n;n--}return-1}const Thread=React.forwardRef((({thread:e,indentCommentContent:t=!0,showActions:n="hover",showDeletedComments:r,showResolveAction:o=!0,showReactions:a=!0,showComposer:i="collapsed",showAttachments:s=!0,onResolvedChange:l,onCommentEdit:c,onCommentDelete:u,onThreadDelete:d,onAuthorClick:f,onMentionClick:p,onAttachmentClick:m,onComposerSubmit:h,overrides:_,className:g,...v},E)=>{const y=useMarkThreadAsResolved(),b=useMarkThreadAsUnresolved(),C=useOverrides(_),R=React.useMemo((()=>r?0:e.comments.findIndex((e=>e.body))),[r,e.comments]),w=React.useMemo((()=>r?e.comments.length-1:findLastIndex(e.comments,(e=>e.body))),[r,e.comments]),{status:S,unreadSince:D}=useThreadSubscription(e.id),T=React.useMemo((()=>{if("subscribed"!==S)return;if(null===D)return R;const t=e.comments.findIndex((e=>(!!r||e.body)&&e.createdAt>D));return t>=0&&t<e.comments.length?t:void 0}),[R,r,S,e.comments,D]),[O,A]=React.useState(),I=void 0===O?T:O;React.useEffect((()=>{T&&A((e=>Math.min(e??1/0,T)))}),[T]);const x=React.useCallback((e=>{e.stopPropagation()}),[]),N=React.useCallback((t=>{l?.(t),t?y(e.id):b(e.id)}),[y,b,l,e.id]),F=React.useCallback((t=>{u?.(t);e.comments.filter((e=>e.body)).length<=1&&d?.(e)}),[u,d,e]);return React__default.default.createElement(TooltipProvider,null,React__default.default.createElement("div",{className:classNames("lb-root lb-thread","hover"===n&&"lb-thread:show-actions-hover",g),"data-resolved":e.resolved?"":void 0,"data-unread":void 0!==T?"":void 0,dir:C.dir,...v,ref:E},React__default.default.createElement("div",{className:"lb-thread-comments"},e.comments.map(((i,l)=>{const u=l===R,d=void 0!==T&&l>=T,h=React__default.default.createElement(Comment,{key:i.id,className:"lb-thread-comment","data-unread":d?"":void 0,comment:i,indentContent:t,showDeleted:r,showActions:n,showReactions:a,showAttachments:s,onCommentEdit:c,onCommentDelete:F,onAuthorClick:f,onMentionClick:p,onAttachmentClick:m,autoMarkReadThreadId:l===w&&d?e.id:void 0,additionalActionsClassName:u?"lb-thread-actions":void 0,additionalActions:u&&o?React__default.default.createElement(Tooltip,{content:e.resolved?C.THREAD_UNRESOLVE:C.THREAD_RESOLVE},React__default.default.createElement(Root$3,{pressed:e.resolved,onPressedChange:N,asChild:!0},React__default.default.createElement(Button,{className:"lb-comment-action",onClick:x,"aria-label":e.resolved?C.THREAD_UNRESOLVE:C.THREAD_RESOLVE},e.resolved?React__default.default.createElement(ResolvedIcon,{className:"lb-button-icon"}):React__default.default.createElement(ResolveIcon,{className:"lb-button-icon"})))):null});return l===I&&I!==R&&I<=w?React__default.default.createElement(React.Fragment,{key:i.id},React__default.default.createElement("div",{className:"lb-thread-new-indicator","aria-label":C.THREAD_NEW_INDICATOR_DESCRIPTION},React__default.default.createElement("span",{className:"lb-thread-new-indicator-label"},React__default.default.createElement(ArrowDownIcon,{className:"lb-thread-new-indicator-label-icon"}),C.THREAD_NEW_INDICATOR)),h):h}))),i&&React__default.default.createElement(Composer,{className:"lb-thread-composer",threadId:e.id,defaultCollapsed:"collapsed"===i||void 0,showAttachments:s,onComposerSubmit:h,overrides:{COMPOSER_PLACEHOLDER:C.THREAD_COMPOSER_PLACEHOLDER,COMPOSER_SEND:C.THREAD_COMPOSER_SEND}})))}));detectDupes(PKG_NAME$1,PKG_VERSION$1,PKG_FORMAT$1);const ErrorBoundaryContext=React.createContext(null),initialState={didCatch:!1,error:null};class ErrorBoundary extends React.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=initialState}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(null!==e){for(var t,n,r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];null===(t=(n=this.props).onReset)||void 0===t||t.call(n,{args:o,reason:"imperative-api"}),this.setState(initialState)}}componentDidCatch(e,t){var n,r;null===(n=(r=this.props).onError)||void 0===n||n.call(r,e,t)}componentDidUpdate(e,t){const{didCatch:n}=this.state,{resetKeys:r}=this.props;var o,a;n&&null!==t.error&&hasArrayChanged(e.resetKeys,r)&&(null===(o=(a=this.props).onReset)||void 0===o||o.call(a,{next:r,prev:e.resetKeys,reason:"keys"}),this.setState(initialState))}render(){const{children:e,fallbackRender:t,FallbackComponent:n,fallback:r}=this.props,{didCatch:o,error:a}=this.state;let i=e;if(o){const e={error:a,resetErrorBoundary:this.resetErrorBoundary};if("function"==typeof t)i=t(e);else if(n)i=React.createElement(n,e);else{if(void 0===r)throw a;i=r}}return React.createElement(ErrorBoundaryContext.Provider,{value:{didCatch:o,error:a,resetErrorBoundary:this.resetErrorBoundary}},i)}}function hasArrayChanged(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.length!==t.length||e.some(((e,n)=>!Object.is(e,t[n])))}function Loading(){return React__default.default.createElement("svg",{className:"animate-spin h-5 w-5 mr-3 ...",viewBox:"0 0 24 24"})}var Threads=function(e){var t=_useThreadsSuspense().threads;return React__default.default.createElement(React__default.default.Fragment,null,t.map((function(e){return React__default.default.createElement(Thread,{key:e.id,thread:e,className:"thread"})})),React__default.default.createElement(Composer,{className:"composer"}))},AmisComments=function(e){var t=e.className,n=void 0===t?"m-2 flex flex-col gap-y-2":t,r=e.roomId;return React__default.default.createElement(_RoomProvider,{id:r},React__default.default.createElement(ErrorBoundary,{fallback:React__default.default.createElement("div",{className:"error"},"There was an error while getting threads.")},React__default.default.createElement(React.Suspense,{fallback:React__default.default.createElement(Loading,null)},React__default.default.createElement("main",{className:n},React__default.default.createElement(Threads,null)))))};function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}function clsx(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}var frontend_inbox_empty$1="There aren’t any notifications yet.",frontend_comment_inbox$1="Comment Inbox",frontend_mark_all_read$1="Mark all as read",frontend_delete_all$1="Delete all",frontend_fallback_error$1="There was an error while getting notifications.",frontend_fetch_mention_suggestions_error$1="Problem resolving mention suggestions",frontend_fetch_rooms_info_error$1="Problem resolving rooms info",frontend_fetch_users_error$1="Problem resolving users",en_us$1={frontend_inbox_empty:frontend_inbox_empty$1,frontend_comment_inbox:frontend_comment_inbox$1,frontend_mark_all_read:frontend_mark_all_read$1,frontend_delete_all:frontend_delete_all$1,frontend_fallback_error:frontend_fallback_error$1,frontend_fetch_mention_suggestions_error:frontend_fetch_mention_suggestions_error$1,frontend_fetch_rooms_info_error:frontend_fetch_rooms_info_error$1,frontend_fetch_users_error:frontend_fetch_users_error$1},frontend_inbox_empty="没有通知。",frontend_comment_inbox="评论收件箱",frontend_mark_all_read="全部标记为已读",frontend_delete_all="全部删除",frontend_fallback_error="收到通知时出现错误。",frontend_fetch_mention_suggestions_error="请求提及建议时出现错误。",frontend_fetch_rooms_info_error="请求Rooms信息时出现错误。",frontend_fetch_users_error="请求用户清单时出现错误。",COMPOSER_PLACEHOLDER="写评论...",THREAD_COMPOSER_PLACEHOLDER="回复...",THREAD_COMPOSER_SEND="回复",THREAD_RESOLVE="标记为已解决",THREAD_UNRESOLVE="重新开启讨论",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented="评论",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in="于",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread="于评论栏",INBOX_NOTIFICATION_DELETE="删除通知",INBOX_NOTIFICATION_MORE="更多",COMMENT_EDIT="编辑讨论",COMMENT_EDIT_COMPOSER_PLACEHOLDER="编辑讨论...",COMMENT_DELETE="删除讨论",COMMENT_EDIT_COMPOSER_CANCEL="取消",COMMENT_EDIT_COMPOSER_SAVE="保存",COMMENT_MORE="更多",COMPOSER_INSERT_MENTION="提及某个人",COMPOSER_INSERT_EMOJI="添加表情",COMPOSER_ATTACH_FILES="上传附件",COMMENT_ADD_REACTION="添加表情",COMPOSER_SEND="发送",zh_cn$1={frontend_inbox_empty:frontend_inbox_empty,frontend_comment_inbox:frontend_comment_inbox,frontend_mark_all_read:frontend_mark_all_read,frontend_delete_all:frontend_delete_all,frontend_fallback_error:frontend_fallback_error,frontend_fetch_mention_suggestions_error:frontend_fetch_mention_suggestions_error,frontend_fetch_rooms_info_error:frontend_fetch_rooms_info_error,frontend_fetch_users_error:frontend_fetch_users_error,COMPOSER_PLACEHOLDER:COMPOSER_PLACEHOLDER,THREAD_COMPOSER_PLACEHOLDER:THREAD_COMPOSER_PLACEHOLDER,THREAD_COMPOSER_SEND:THREAD_COMPOSER_SEND,THREAD_RESOLVE:THREAD_RESOLVE,THREAD_UNRESOLVE:THREAD_UNRESOLVE,INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented:INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented,INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in:INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in,INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread:INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread,INBOX_NOTIFICATION_DELETE:INBOX_NOTIFICATION_DELETE,INBOX_NOTIFICATION_MORE:INBOX_NOTIFICATION_MORE,COMMENT_EDIT:COMMENT_EDIT,COMMENT_EDIT_COMPOSER_PLACEHOLDER:COMMENT_EDIT_COMPOSER_PLACEHOLDER,COMMENT_DELETE:COMMENT_DELETE,COMMENT_EDIT_COMPOSER_CANCEL:COMMENT_EDIT_COMPOSER_CANCEL,COMMENT_EDIT_COMPOSER_SAVE:COMMENT_EDIT_COMPOSER_SAVE,COMMENT_MORE:COMMENT_MORE,COMPOSER_INSERT_MENTION:COMPOSER_INSERT_MENTION,COMPOSER_INSERT_EMOJI:COMPOSER_INSERT_EMOJI,COMPOSER_ATTACH_FILES:COMPOSER_ATTACH_FILES,COMMENT_ADD_REACTION:COMMENT_ADD_REACTION,COMPOSER_SEND:COMPOSER_SEND};function _typeof$1(e){return _typeof$1="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$1(e)}function _classCallCheck$1(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _toPrimitive$1(e,t){if("object"!==_typeof$1(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$1(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$1(e){var t=_toPrimitive$1(e,"string");return"symbol"===_typeof$1(t)?t:String(t)}function _defineProperties$1(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$1(r.key),r)}}function _createClass$1(e,t,n){return t&&_defineProperties$1(e.prototype,t),n&&_defineProperties$1(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _possibleConstructorReturn(e,t){if(t&&("object"===_typeof$1(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _defineProperty$1(e,t,n){return(t=_toPropertyKey$1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _arrayWithHoles$1(e){if(Array.isArray(e))return e}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayLikeToArray$1(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _unsupportedIterableToArray$1(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$1(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$1(e,t):void 0}}function _nonIterableRest$1(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _toArray(e){return _arrayWithHoles$1(e)||_iterableToArray(e)||_unsupportedIterableToArray$1(e)||_nonIterableRest$1()}function ownKeys$6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$6(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var consoleLogger={type:"logger",log:function(e){this.output("log",e)},warn:function(e){this.output("warn",e)},error:function(e){this.output("error",e)},output:function(e,t){console&&console[e]&&console[e].apply(console,t)}},Logger=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck$1(this,e),this.init(t,n)}return _createClass$1(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||consoleLogger,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,n,r){return r&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(n).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,_objectSpread$6(_objectSpread$6({},{prefix:"".concat(this.prefix,":").concat(t,":")}),this.options))}},{key:"clone",value:function(t){return(t=t||this.options).prefix=t.prefix||this.prefix,new e(this.logger,t)}}]),e}(),baseLogger=new Logger,EventEmitter=function(){function e(){_classCallCheck$1(this,e),this.observers={}}return _createClass$1(e,[{key:"on",value:function(e,t){var n=this;return e.split(" ").forEach((function(e){n.observers[e]=n.observers[e]||[],n.observers[e].push(t)})),this}},{key:"off",value:function(e,t){this.observers[e]&&(t?this.observers[e]=this.observers[e].filter((function(e){return e!==t})):delete this.observers[e])}},{key:"emit",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this.observers[e]&&[].concat(this.observers[e]).forEach((function(e){e.apply(void 0,n)}));this.observers["*"]&&[].concat(this.observers["*"]).forEach((function(t){t.apply(t,[e].concat(n))}))}}]),e}();function defer(){var e,t,n=new Promise((function(n,r){e=n,t=r}));return n.resolve=e,n.reject=t,n}function makeString(e){return null==e?"":""+e}function copy(e,t,n){e.forEach((function(e){t[e]&&(n[e]=t[e])}))}function getLastOfPath(e,t,n){function r(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function o(){return!e||"string"==typeof e}for(var a="string"!=typeof t?[].concat(t):t.split(".");a.length>1;){if(o())return{};var i=r(a.shift());!e[i]&&n&&(e[i]=new n),e=Object.prototype.hasOwnProperty.call(e,i)?e[i]:{}}return o()?{}:{obj:e,k:r(a.shift())}}function setPath(e,t,n){var r=getLastOfPath(e,t,Object);r.obj[r.k]=n}function pushPath(e,t,n,r){var o=getLastOfPath(e,t,Object),a=o.obj,i=o.k;a[i]=a[i]||[],r&&(a[i]=a[i].concat(n)),r||a[i].push(n)}function getPath(e,t){var n=getLastOfPath(e,t),r=n.obj,o=n.k;if(r)return r[o]}function getPathWithDefaults(e,t,n){var r=getPath(e,n);return void 0!==r?r:getPath(t,n)}function deepExtend(e,t,n){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"==typeof e[r]||e[r]instanceof String||"string"==typeof t[r]||t[r]instanceof String?n&&(e[r]=t[r]):deepExtend(e[r],t[r],n):e[r]=t[r]);return e}function regexEscape(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var _entityMap={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function escape(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return _entityMap[e]})):e}var isIE10="undefined"!=typeof window&&window.navigator&&void 0===window.navigator.userAgentData&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,chars=[" ",",","?","!",";"];function looksLikeObjectPath(e,t,n){t=t||"",n=n||"";var r=chars.filter((function(e){return t.indexOf(e)<0&&n.indexOf(e)<0}));if(0===r.length)return!0;var o=new RegExp("(".concat(r.map((function(e){return"?"===e?"\\?":e})).join("|"),")")),a=!o.test(e);if(!a){var i=e.indexOf(n);i>0&&!o.test(e.substring(0,i))&&(a=!0)}return a}function deepFind(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var r=t.split(n),o=e,a=0;a<r.length;++a){if(!o)return;if("string"==typeof o[r[a]]&&a+1<r.length)return;if(void 0===o[r[a]]){for(var i=2,s=r.slice(a,a+i).join(n),l=o[s];void 0===l&&r.length>a+i;)i++,l=o[s=r.slice(a,a+i).join(n)];if(void 0===l)return;if(null===l)return null;if(t.endsWith(s)){if("string"==typeof l)return l;if(s&&"string"==typeof l[s])return l[s]}var c=r.slice(a+i).join(n);return c?deepFind(l,c,n):void 0}o=o[r[a]]}return o}}function ownKeys$5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$5(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$3(e){var t=_isNativeReflectConstruct$3();return function(){var n,r=_getPrototypeOf(e);if(t){var o=_getPrototypeOf(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$3(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var ResourceStore=function(e){_inherits(n,e);var t=_createSuper$3(n);function n(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return _classCallCheck$1(this,n),r=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(r)),r.data=e||{},r.options=o,void 0===r.options.keySeparator&&(r.options.keySeparator="."),void 0===r.options.ignoreJSONStructure&&(r.options.ignoreJSONStructure=!0),r}return _createClass$1(n,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,a=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure,i=[e,t];n&&"string"!=typeof n&&(i=i.concat(n)),n&&"string"==typeof n&&(i=i.concat(o?n.split(o):n)),e.indexOf(".")>-1&&(i=e.split("."));var s=getPath(this.data,i);return s||!a||"string"!=typeof n?s:deepFind(this.data&&this.data[e]&&this.data[e][t],n,o)}},{key:"addResource",value:function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,i=[e,t];n&&(i=i.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(r=t,t=(i=e.split("."))[1]),this.addNamespaces(t),setPath(this.data,i,r),o.silent||this.emit("added",e,t,n,r)}},{key:"addResources",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in n)"string"!=typeof n[o]&&"[object Array]"!==Object.prototype.toString.apply(n[o])||this.addResource(e,t,o,n[o],{silent:!0});r.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},i=[e,t];e.indexOf(".")>-1&&(r=n,n=t,t=(i=e.split("."))[1]),this.addNamespaces(t);var s=getPath(this.data,i)||{};r?deepExtend(s,n,o):s=_objectSpread$5(_objectSpread$5({},s),n),setPath(this.data,i,s),a.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?_objectSpread$5(_objectSpread$5({},{}),this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"hasLanguageSomeTranslations",value:function(e){var t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find((function(e){return t[e]&&Object.keys(t[e]).length>0}))}},{key:"toJSON",value:function(){return this.data}}]),n}(EventEmitter),postProcessor={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,r,o){var a=this;return e.forEach((function(e){a.processors[e]&&(t=a.processors[e].process(t,n,r,o))})),t}};function ownKeys$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$2(e){var t=_isNativeReflectConstruct$2();return function(){var n,r=_getPrototypeOf(e);if(t){var o=_getPrototypeOf(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$2(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var checkedLoadedFor={},Translator=function(e){_inherits(n,e);var t=_createSuper$2(n);function n(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _classCallCheck$1(this,n),r=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(r)),copy(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,_assertThisInitialized(r)),r.options=o,void 0===r.options.keySeparator&&(r.options.keySeparator="."),r.logger=baseLogger.create("translator"),r}return _createClass$1(n,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,o=t.ns||this.options.defaultNS||[],a=n&&e.indexOf(n)>-1,i=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||looksLikeObjectPath(e,n,r));if(a&&!i){var s=e.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:e,namespaces:o};var l=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(l[0])>-1)&&(o=l.shift()),e=l.join(r)}return"string"==typeof o&&(o=[o]),{key:e,namespaces:o}}},{key:"translate",value:function(e,t,r){var o=this;if("object"!==_typeof$1(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),"object"===_typeof$1(t)&&(t=_objectSpread$4({},t)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var a=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,i=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,s=this.extractFromKey(e[e.length-1],t),l=s.key,c=s.namespaces,u=c[c.length-1],d=t.lng||this.language,f=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&"cimode"===d.toLowerCase()){if(f){var p=t.nsSeparator||this.options.nsSeparator;return a?{res:"".concat(u).concat(p).concat(l),usedKey:l,exactUsedKey:l,usedLng:d,usedNS:u}:"".concat(u).concat(p).concat(l)}return a?{res:l,usedKey:l,exactUsedKey:l,usedLng:d,usedNS:u}:l}var m=this.resolve(e,t),h=m&&m.res,_=m&&m.usedKey||l,g=m&&m.exactUsedKey||l,v=Object.prototype.toString.apply(h),E=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject;if(y&&h&&("string"!=typeof h&&"boolean"!=typeof h&&"number"!=typeof h)&&["[object Number]","[object Function]","[object RegExp]"].indexOf(v)<0&&("string"!=typeof E||"[object Array]"!==v)){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var b=this.options.returnedObjectHandler?this.options.returnedObjectHandler(_,h,_objectSpread$4(_objectSpread$4({},t),{},{ns:c})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");return a?(m.res=b,m):b}if(i){var C="[object Array]"===v,R=C?[]:{},w=C?g:_;for(var S in h)if(Object.prototype.hasOwnProperty.call(h,S)){var D="".concat(w).concat(i).concat(S);R[S]=this.translate(D,_objectSpread$4(_objectSpread$4({},t),{joinArrays:!1,ns:c})),R[S]===D&&(R[S]=h[S])}h=R}}else if(y&&"string"==typeof E&&"[object Array]"===v)(h=h.join(E))&&(h=this.extendTranslation(h,e,t,r));else{var T=!1,O=!1,A=void 0!==t.count&&"string"!=typeof t.count,I=n.hasDefaultValue(t),x=A?this.pluralResolver.getSuffix(d,t.count,t):"",N=t["defaultValue".concat(x)]||t.defaultValue;!this.isValidLookup(h)&&I&&(T=!0,h=N),this.isValidLookup(h)||(O=!0,h=l);var F=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&O?void 0:h,P=I&&N!==h&&this.options.updateMissing;if(O||T||P){if(this.logger.log(P?"updateKey":"missingKey",d,u,l,P?N:h),i){var k=this.resolve(l,_objectSpread$4(_objectSpread$4({},t),{},{keySeparator:!1}));k&&k.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var $=[],M=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&M&&M[0])for(var B=0;B<M.length;B++)$.push(M[B]);else"all"===this.options.saveMissingTo?$=this.languageUtils.toResolveHierarchy(t.lng||this.language):$.push(t.lng||this.language);var L=function(e,n,r){var a=I&&r!==h?r:F;o.options.missingKeyHandler?o.options.missingKeyHandler(e,u,n,a,P,t):o.backendConnector&&o.backendConnector.saveMissing&&o.backendConnector.saveMissing(e,u,n,a,P,t),o.emit("missingKey",e,u,n,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&A?$.forEach((function(e){o.pluralResolver.getSuffixes(e,t).forEach((function(n){L([e],l+n,t["defaultValue".concat(n)]||N)}))})):L($,l,N))}h=this.extendTranslation(h,e,t,m,r),O&&h===l&&this.options.appendNamespaceToMissingKey&&(h="".concat(u,":").concat(l)),(O||T)&&this.options.parseMissingKeyHandler&&(h="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?"".concat(u,":").concat(l):l,T?h:void 0):this.options.parseMissingKeyHandler(h))}return a?(m.res=h,m):h}},{key:"extendTranslation",value:function(e,t,n,r,o){var a=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),n),r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init(_objectSpread$4(_objectSpread$4({},n),{interpolation:_objectSpread$4(_objectSpread$4({},this.options.interpolation),n.interpolation)}));var i,s="string"==typeof e&&(n&&n.interpolation&&void 0!==n.interpolation.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);if(s){var l=e.match(this.interpolator.nestingRegexp);i=l&&l.length}var c=n.replace&&"string"!=typeof n.replace?n.replace:n;if(this.options.interpolation.defaultVariables&&(c=_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),c)),e=this.interpolator.interpolate(e,c,n.lng||this.language,n),s){var u=e.match(this.interpolator.nestingRegexp);i<(u&&u.length)&&(n.nest=!1)}!n.lng&&"v1"!==this.options.compatibilityAPI&&r&&r.res&&(n.lng=r.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,(function(){for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];return o&&o[0]===r[0]&&!n.context?(a.logger.warn("It seems you are nesting recursively key: ".concat(r[0]," in key: ").concat(t[0])),null):a.translate.apply(a,r.concat([t]))}),n)),n.interpolation&&this.interpolator.reset()}var d=n.postProcess||this.options.postProcess,f="string"==typeof d?[d]:d;return null!=e&&f&&f.length&&!1!==n.applyPostProcessor&&(e=postProcessor.handle(f,e,t,this.options&&this.options.postProcessPassResolved?_objectSpread$4({i18nResolved:r},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,r,o,a,i=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((function(e){if(!i.isValidLookup(t)){var l=i.extractFromKey(e,s),c=l.key;n=c;var u=l.namespaces;i.options.fallbackNS&&(u=u.concat(i.options.fallbackNS));var d=void 0!==s.count&&"string"!=typeof s.count,f=d&&!s.ordinal&&0===s.count&&i.pluralResolver.shouldUseIntlApi(),p=void 0!==s.context&&("string"==typeof s.context||"number"==typeof s.context)&&""!==s.context,m=s.lngs?s.lngs:i.languageUtils.toResolveHierarchy(s.lng||i.language,s.fallbackLng);u.forEach((function(e){i.isValidLookup(t)||(a=e,!checkedLoadedFor["".concat(m[0],"-").concat(e)]&&i.utils&&i.utils.hasLoadedNamespace&&!i.utils.hasLoadedNamespace(a)&&(checkedLoadedFor["".concat(m[0],"-").concat(e)]=!0,i.logger.warn('key "'.concat(n,'" for languages "').concat(m.join(", "),'" won\'t get resolved as namespace "').concat(a,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),m.forEach((function(n){if(!i.isValidLookup(t)){o=n;var a,l=[c];if(i.i18nFormat&&i.i18nFormat.addLookupKeys)i.i18nFormat.addLookupKeys(l,c,n,e,s);else{var u;d&&(u=i.pluralResolver.getSuffix(n,s.count,s));var m="".concat(i.options.pluralSeparator,"zero");if(d&&(l.push(c+u),f&&l.push(c+m)),p){var h="".concat(c).concat(i.options.contextSeparator).concat(s.context);l.push(h),d&&(l.push(h+u),f&&l.push(h+m))}}for(;a=l.pop();)i.isValidLookup(t)||(r=a,t=i.getResource(n,e,a,s))}})))}))}})),{res:t,usedKey:n,exactUsedKey:r,usedLng:o,usedNS:a}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,12)&&void 0!==e[n])return!0;return!1}}]),n}(EventEmitter);function capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)}var LanguageUtil=function(){function e(t){_classCallCheck$1(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=baseLogger.create("languageUtils")}return _createClass$1(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=capitalize(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=capitalize(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=capitalize(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach((function(e){if(!t){var r=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(r)||(t=r)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var r=n.getLanguagePartFromCode(e);if(n.isSupportedCode(r))return t=r;t=n.options.supportedLngs.find((function(e){return e===r?e:e.indexOf("-")<0&&r.indexOf("-")<0?void 0:0===e.indexOf(r)?e:void 0}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,r=this.getFallbackCodes(t||this.options.fallbackLng||[],e),o=[],a=function(e){e&&(n.isSupportedCode(e)?o.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&a(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&a(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&a(this.getLanguagePartFromCode(e))):"string"==typeof e&&a(this.formatLanguageCode(e)),r.forEach((function(e){o.indexOf(e)<0&&a(n.formatLanguageCode(e))})),o}}]),e}(),sets=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],_rulesPluralsTypes={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}},deprecatedJsonVersions=["v1","v2","v3"],suffixesOrder={zero:0,one:1,two:2,few:3,many:4,other:5};function createRules(){var e={};return sets.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:_rulesPluralsTypes[t.fc]}}))})),e}var PluralResolver=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck$1(this,e),this.languageUtils=t,this.options=n,this.logger=baseLogger.create("pluralResolver"),this.options.compatibilityJSON&&"v4"!==this.options.compatibilityJSON||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=createRules()}return _createClass$1(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:t.ordinal?"ordinal":"cardinal"})}catch(e){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,n).map((function(e){return"".concat(t).concat(e)}))}},{key:"getSuffixes",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getRule(e,n);return r?this.shouldUseIntlApi()?r.resolvedOptions().pluralCategories.sort((function(e,t){return suffixesOrder[e]-suffixesOrder[t]})).map((function(e){return"".concat(t.options.prepend).concat(e)})):r.numbers.map((function(r){return t.getSuffix(e,r,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getRule(e,n);return r?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(r.select(t)):this.getSuffixRetroCompatible(r,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var n=this,r=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),o=e.numbers[r];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===o?o="plural":1===o&&(o=""));var a=function(){return n.options.prepend&&o.toString()?n.options.prepend+o.toString():o.toString()};return"v1"===this.options.compatibilityJSON?1===o?"":"number"==typeof o?"_plural_".concat(o.toString()):a():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?a():this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString()}},{key:"shouldUseIntlApi",value:function(){return!deprecatedJsonVersions.includes(this.options.compatibilityJSON)}}]),e}();function ownKeys$3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function deepFindWithDefaults(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=getPathWithDefaults(e,t,n);return!a&&o&&"string"==typeof n&&void 0===(a=deepFind(e,n,r))&&(a=deepFind(t,n,r)),a}var Interpolator=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck$1(this,e),this.logger=baseLogger.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return _createClass$1(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:escape,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?regexEscape(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?regexEscape(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?regexEscape(t.nestingPrefix):t.nestingPrefixEscaped||regexEscape("$t("),this.nestingSuffix=t.nestingSuffix?regexEscape(t.nestingSuffix):t.nestingSuffixEscaped||regexEscape(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,r){var o,a,i,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var u=function(e){if(e.indexOf(s.formatSeparator)<0){var o=deepFindWithDefaults(t,l,e,s.options.keySeparator,s.options.ignoreJSONStructure);return s.alwaysFormat?s.format(o,void 0,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},r),t),{},{interpolationkey:e})):o}var a=e.split(s.formatSeparator),i=a.shift().trim(),c=a.join(s.formatSeparator).trim();return s.format(deepFindWithDefaults(t,l,i,s.options.keySeparator,s.options.ignoreJSONStructure),c,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},r),t),{},{interpolationkey:i}))};this.resetRegExp();var d=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,f=r&&r.interpolation&&void 0!==r.interpolation.skipOnVariables?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return c(e)}},{regex:this.regexp,safeValue:function(e){return s.escapeValue?c(s.escape(e)):c(e)}}].forEach((function(t){for(i=0;o=t.regex.exec(e);){var n=o[1].trim();if(void 0===(a=u(n)))if("function"==typeof d){var l=d(e,o,r);a="string"==typeof l?l:""}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a="";else{if(f){a=o[0];continue}s.logger.warn("missed to pass in variable ".concat(n," for interpolating ").concat(e)),a=""}else"string"==typeof a||s.useRawValueToEscape||(a=makeString(a));var c=t.safeValue(a);if(e=e.replace(o[0],c),f?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=o[0].length):t.regex.lastIndex=0,++i>=s.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,r,o,a=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};function s(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var r=e.split(new RegExp("".concat(n,"[ ]*{"))),a="{".concat(r[1]);e=r[0];var i=(a=this.interpolate(a,o)).match(/'/g),s=a.match(/"/g);(i&&i.length%2==0&&!s||s.length%2!=0)&&(a=a.replace(/'/g,'"'));try{o=JSON.parse(a),t&&(o=_objectSpread$3(_objectSpread$3({},t),o))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(n).concat(a)}return delete o.defaultValue,e}for(;n=this.nestingRegexp.exec(e);){var l=[];(o=(o=_objectSpread$3({},i)).replace&&"string"!=typeof o.replace?o.replace:o).applyPostProcessor=!1,delete o.defaultValue;var c=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var u=n[1].split(this.formatSeparator).map((function(e){return e.trim()}));n[1]=u.shift(),l=u,c=!0}if((r=t(s.call(this,n[1].trim(),o),o))&&n[0]===e&&"string"!=typeof r)return r;"string"!=typeof r&&(r=makeString(r)),r||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),r=""),c&&(r=l.reduce((function(e,t){return a.format(e,t,i.lng,_objectSpread$3(_objectSpread$3({},i),{},{interpolationkey:n[1].trim()}))}),r.trim())),e=e.replace(n[0],r),this.regexp.lastIndex=0}return e}}]),e}();function ownKeys$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function parseFormatStr(e){var t=e.toLowerCase().trim(),n={};if(e.indexOf("(")>-1){var r=e.split("(");t=r[0].toLowerCase().trim();var o=r[1].substring(0,r[1].length-1);if("currency"===t&&o.indexOf(":")<0)n.currency||(n.currency=o.trim());else if("relativetime"===t&&o.indexOf(":")<0)n.range||(n.range=o.trim());else{o.split(";").forEach((function(e){if(e){var t=_toArray(e.split(":")),r=t[0],o=t.slice(1).join(":").trim().replace(/^'+|'+$/g,"");n[r.trim()]||(n[r.trim()]=o),"false"===o&&(n[r.trim()]=!1),"true"===o&&(n[r.trim()]=!0),isNaN(o)||(n[r.trim()]=parseInt(o,10))}}))}}return{formatName:t,formatOptions:n}}function createCachedFormatter(e){var t={};return function(n,r,o){var a=r+JSON.stringify(o),i=t[a];return i||(i=e(r,o),t[a]=i),i(n)}}var Formatter=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck$1(this,e),this.logger=baseLogger.create("formatter"),this.options=t,this.formats={number:createCachedFormatter((function(e,t){var n=new Intl.NumberFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}})),currency:createCachedFormatter((function(e,t){var n=new Intl.NumberFormat(e,_objectSpread$2(_objectSpread$2({},t),{},{style:"currency"}));return function(e){return n.format(e)}})),datetime:createCachedFormatter((function(e,t){var n=new Intl.DateTimeFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}})),relativetime:createCachedFormatter((function(e,t){var n=new Intl.RelativeTimeFormat(e,_objectSpread$2({},t));return function(e){return n.format(e,t.range||"day")}})),list:createCachedFormatter((function(e,t){var n=new Intl.ListFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}}))},this.init(t)}return _createClass$1(e,[{key:"init",value:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||","}},{key:"add",value:function(e,t){this.formats[e.toLowerCase().trim()]=t}},{key:"addCached",value:function(e,t){this.formats[e.toLowerCase().trim()]=createCachedFormatter(t)}},{key:"format",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=t.split(this.formatSeparator).reduce((function(e,t){var a=parseFormatStr(t),i=a.formatName,s=a.formatOptions;if(r.formats[i]){var l=e;try{var c=o&&o.formatParams&&o.formatParams[o.interpolationkey]||{},u=c.locale||c.lng||o.locale||o.lng||n;l=r.formats[i](e,u,_objectSpread$2(_objectSpread$2(_objectSpread$2({},s),o),c))}catch(e){r.logger.warn(e)}return l}return r.logger.warn("there was no format function for ".concat(i)),e}),e);return a}}]),e}();function ownKeys$1$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$1$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$1(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$1(e){var t=_isNativeReflectConstruct$1();return function(){var n,r=_getPrototypeOf(e);if(t){var o=_getPrototypeOf(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$1(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function removePending(e,t){void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)}var Connector=function(e){_inherits(n,e);var t=_createSuper$1(n);function n(e,r,o){var a,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return _classCallCheck$1(this,n),a=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(a)),a.backend=e,a.store=r,a.services=o,a.languageUtils=o.languageUtils,a.options=i,a.logger=baseLogger.create("backendConnector"),a.waitingReads=[],a.maxParallelReads=i.maxParallelReads||10,a.readingCalls=0,a.maxRetries=i.maxRetries>=0?i.maxRetries:5,a.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(o,i.backend,i),a}return _createClass$1(n,[{key:"queueLoad",value:function(e,t,n,r){var o=this,a={},i={},s={},l={};return e.forEach((function(e){var r=!0;t.forEach((function(t){var s="".concat(e,"|").concat(t);!n.reload&&o.store.hasResourceBundle(e,t)?o.state[s]=2:o.state[s]<0||(1===o.state[s]?void 0===i[s]&&(i[s]=!0):(o.state[s]=1,r=!1,void 0===i[s]&&(i[s]=!0),void 0===a[s]&&(a[s]=!0),void 0===l[t]&&(l[t]=!0)))})),r||(s[e]=!0)})),(Object.keys(a).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(a),pending:Object.keys(i),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,n){var r=e.split("|"),o=r[0],a=r[1];t&&this.emit("failedLoading",o,a,t),n&&this.store.addResourceBundle(o,a,n),this.state[e]=t?-1:2;var i={};this.queue.forEach((function(n){pushPath(n.loaded,[o],a),removePending(n,e),t&&n.errors.push(t),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach((function(e){i[e]||(i[e]={});var t=n.loaded[e];t.length&&t.forEach((function(t){void 0===i[e][t]&&(i[e][t]=!0)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",i),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads)this.waitingReads.push({lng:e,ns:t,fcName:n,tried:o,wait:a,callback:i});else{this.readingCalls++;var s=function(s,l){if(r.readingCalls--,r.waitingReads.length>0){var c=r.waitingReads.shift();r.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}s&&l&&o<r.maxRetries?setTimeout((function(){r.read.call(r,e,t,n,o+1,2*a,i)}),a):i(s,l)},l=this.backend[n].bind(this.backend);if(2!==l.length)return l(e,t,s);try{var c=l(e,t);c&&"function"==typeof c.then?c.then((function(e){return s(null,e)})).catch(s):s(null,c)}catch(e){s(e)}}}},{key:"prepareLoading",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var a=this.queueLoad(e,t,r,o);if(!a.toLoad.length)return a.pending.length||o(),null;a.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=e.split("|"),o=r[0],a=r[1];this.read(o,a,"read",void 0,void 0,(function(r,i){r&&t.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(o," failed"),r),!r&&i&&t.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(o),i),t.loaded(e,r,i)}))}},{key:"saveMissing",value:function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:function(){};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t))this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");else if(null!=n&&""!==n){if(this.backend&&this.backend.create){var s=_objectSpread$1$1(_objectSpread$1$1({},a),{},{isUpdate:o}),l=this.backend.create.bind(this.backend);if(l.length<6)try{var c;(c=5===l.length?l(e,t,n,r,s):l(e,t,n,r))&&"function"==typeof c.then?c.then((function(e){return i(null,e)})).catch(i):i(null,c)}catch(e){i(e)}else l(e,t,n,r,i,s)}e&&e[0]&&this.store.addResource(e[0],t,n,r)}}}]),n}(EventEmitter);function get(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===_typeof$1(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===_typeof$1(e[2])||"object"===_typeof$1(e[3])){var n=e[3]||e[2];Object.keys(n).forEach((function(e){t[e]=n[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,n,r){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function transformOptions(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function ownKeys$7(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$7(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$7(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$7(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,r=_getPrototypeOf(e);if(t){var o=_getPrototypeOf(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function noop(){}function bindMemberFunctions(e){Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(t){"function"==typeof e[t]&&(e[t]=e[t].bind(e))}))}var I18n=function(e){_inherits(n,e);var t=_createSuper(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;if(_classCallCheck$1(this,n),e=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(e)),e.options=transformOptions(r),e.services={},e.logger=baseLogger,e.modules={external:[]},bindMemberFunctions(_assertThisInitialized(e)),o&&!e.isInitialized&&!r.isClone){if(!e.options.initImmediate)return e.init(r,o),_possibleConstructorReturn(e,_assertThisInitialized(e));setTimeout((function(){e.init(r,o)}),0)}return e}return _createClass$1(n,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;"function"==typeof t&&(n=t,t={}),!t.defaultNS&&!1!==t.defaultNS&&t.ns&&("string"==typeof t.ns?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));var r=get();function o(e){return e?"function"==typeof e?new e:e:null}if(this.options=_objectSpread$7(_objectSpread$7(_objectSpread$7({},r),this.options),transformOptions(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=_objectSpread$7(_objectSpread$7({},r.interpolation),this.options.interpolation)),void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator),!this.options.isClone){var a;this.modules.logger?baseLogger.init(o(this.modules.logger),this.options):baseLogger.init(null,this.options),this.modules.formatter?a=this.modules.formatter:"undefined"!=typeof Intl&&(a=Formatter);var i=new LanguageUtil(this.options);this.store=new ResourceStore(this.options.resources,this.options);var s=this.services;s.logger=baseLogger,s.resourceStore=this.store,s.languageUtils=i,s.pluralResolver=new PluralResolver(i,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!a||this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format||(s.formatter=o(a),s.formatter.init(s,this.options),this.options.interpolation.format=s.formatter.format.bind(s.formatter)),s.interpolator=new Interpolator(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new Connector(o(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",(function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];e.emit.apply(e,[t].concat(r))})),this.modules.languageDetector&&(s.languageDetector=o(this.modules.languageDetector),s.languageDetector.init&&s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=o(this.modules.i18nFormat),s.i18nFormat.init&&s.i18nFormat.init(this)),this.translator=new Translator(this.services,this.options),this.translator.on("*",(function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];e.emit.apply(e,[t].concat(r))})),this.modules.external.forEach((function(t){t.init&&t.init(e)}))}if(this.format=this.options.interpolation.format,n||(n=noop),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){var l=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);l.length>0&&"dev"!==l[0]&&(this.options.lng=l[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}}));["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}}));var c=defer(),u=function(){var t=function(t,r){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),c.resolve(r),n(t,r)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),c}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,r="string"==typeof e?e:this.language;if("function"==typeof e&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&"cimode"===r.toLowerCase())return n();var o=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){o.indexOf(e)<0&&o.push(e)}))};if(r)a(r);else this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((function(e){return a(e)}));this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(o,this.options.ns,(function(e){e||t.resolvedLanguage||!t.language||t.setResolvedLanguage(t.language),n(e)}))}else n(null)}},{key:"reloadResources",value:function(e,t,n){var r=defer();return e||(e=this.languages),t||(t=this.options.ns),n||(n=noop),this.services.backendConnector.reload(e,t,(function(e){r.resolve(),n(e)})),r}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&postProcessor.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"setResolvedLanguage",value:function(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(var t=0;t<this.languages.length;t++){var n=this.languages[t];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var r=defer();this.emit("languageChanging",e);var o=function(e){n.language=e,n.languages=n.services.languageUtils.toResolveHierarchy(e),n.resolvedLanguage=void 0,n.setResolvedLanguage(e)},a=function(a){e||a||!n.services.languageDetector||(a=[]);var i="string"==typeof a?a:n.services.languageUtils.getBestMatchFromCodes(a);i&&(n.language||o(i),n.translator.language||n.translator.changeLanguage(i),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage&&n.services.languageDetector.cacheUserLanguage(i)),n.loadResources(i,(function(e){!function(e,a){a?(o(a),n.translator.changeLanguage(a),n.isLanguageChangingTo=void 0,n.emit("languageChanged",a),n.logger.log("languageChanged",a)):n.isLanguageChangingTo=void 0,r.resolve((function(){return n.t.apply(n,arguments)})),t&&t(e,(function(){return n.t.apply(n,arguments)}))}(e,i)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e):a(this.services.languageDetector.detect()),r}},{key:"getFixedT",value:function(e,t,n){var r=this,o=function e(t,o){var a;if("object"!==_typeof$1(o)){for(var i=arguments.length,s=new Array(i>2?i-2:0),l=2;l<i;l++)s[l-2]=arguments[l];a=r.options.overloadTranslationOptionHandler([t,o].concat(s))}else a=_objectSpread$7({},o);a.lng=a.lng||e.lng,a.lngs=a.lngs||e.lngs,a.ns=a.ns||e.ns,a.keyPrefix=a.keyPrefix||n||e.keyPrefix;var c,u=r.options.keySeparator||".";return c=a.keyPrefix&&Array.isArray(t)?t.map((function(e){return"".concat(a.keyPrefix).concat(u).concat(e)})):a.keyPrefix?"".concat(a.keyPrefix).concat(u).concat(t):t,r.t(c,a)};return"string"==typeof e?o.lng=e:o.lngs=e,o.ns=t,o.keyPrefix=n,o}},{key:"t",value:function(){var e;return this.translator&&(e=this.translator).translate.apply(e,arguments)}},{key:"exists",value:function(){var e;return this.translator&&(e=this.translator).exists.apply(e,arguments)}},{key:"setDefaultNamespace",value:function(e){this.options.defaultNS=e}},{key:"hasLoadedNamespace",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var r=n.lng||this.resolvedLanguage||this.languages[0],o=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===r.toLowerCase())return!0;var i=function(e,n){var r=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===r||2===r};if(n.precheck){var s=n.precheck(this,i);if(void 0!==s)return s}return!!this.hasResourceBundle(r,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!i(r,e)||o&&!i(a,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,r=defer();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){r.resolve(),t&&t(e)})),r):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=defer();"string"==typeof e&&(e=[e]);var r=this.options.preload||[],o=e.filter((function(e){return r.indexOf(e)<0}));return o.length?(this.options.preload=r.concat(o),this.loadResources((function(e){n.resolve(),t&&t(e)})),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";var t=this.services&&this.services.languageUtils||new LanguageUtil(get());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,o=_objectSpread$7(_objectSpread$7(_objectSpread$7({},this.options),t),{isClone:!0}),a=new n(o);void 0===t.debug&&void 0===t.prefix||(a.logger=a.logger.clone(t));return["store","services","language"].forEach((function(t){a[t]=e[t]})),a.services=_objectSpread$7({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new Translator(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];a.emit.apply(a,[e].concat(n))})),a.init(o,r),a.translator.options=a.options,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}},{key:"toJSON",value:function(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}]),n}(EventEmitter);_defineProperty$1(I18n,"createInstance",(function(){return new I18n(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}));var instance=I18n.createInstance();function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"===_typeof(t)?t:String(t)}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function warn(){if(console&&console.warn){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];"string"==typeof n[0]&&(n[0]="react-i18next:: ".concat(n[0])),(e=console).warn.apply(e,n)}}instance.createInstance=I18n.createInstance,instance.createInstance,instance.dir,instance.init,instance.loadResources,instance.reloadResources,instance.use,instance.changeLanguage,instance.getFixedT,instance.t,instance.exists,instance.setDefaultNamespace,instance.hasLoadedNamespace,instance.loadNamespaces,instance.loadLanguages;var alreadyWarned={};function warnOnce(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];"string"==typeof t[0]&&alreadyWarned[t[0]]||("string"==typeof t[0]&&(alreadyWarned[t[0]]=new Date),warn.apply(void 0,t))}var loadedClb=function(e,t){return function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}};function loadNamespaces(e,t,n){e.loadNamespaces(t,loadedClb(e,n))}function loadLanguages(e,t,n,r){"string"==typeof n&&(n=[n]),n.forEach((function(t){e.options.ns.indexOf(t)<0&&e.options.ns.push(t)})),e.loadLanguages(t,loadedClb(e,r))}function oldI18nextHasLoadedNamespace(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.languages[0],o=!!t.options&&t.options.fallbackLng,a=t.languages[t.languages.length-1];if("cimode"===r.toLowerCase())return!0;var i=function(e,n){var r=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===r||2===r};return!(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!i(t.isLanguageChangingTo,e))&&(!!t.hasResourceBundle(r,e)||(!(t.services.backendConnector.backend&&(!t.options.resources||t.options.partialBundledLanguages))||!(!i(r,e)||o&&!i(a,e))))}function hasLoadedNamespace(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.languages&&t.languages.length?void 0!==t.options.ignoreJSONStructure?t.hasLoadedNamespace(e,{lng:n.lng,precheck:function(t,r){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}):oldI18nextHasLoadedNamespace(e,t,n):(warnOnce("i18n.languages were undefined or empty",t.languages),!0)}var matchHtmlEntity=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,htmlEntities={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},unescapeHtmlEntity=function(e){return htmlEntities[e]},unescape=function(e){return e.replace(matchHtmlEntity,unescapeHtmlEntity)};function ownKeys$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var defaultOptions={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:unescape},i18nInstance;function setDefaults(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};defaultOptions=_objectSpread$1(_objectSpread$1({},defaultOptions),e)}function getDefaults(){return defaultOptions}function setI18n(e){i18nInstance=e}function getI18n(){return i18nInstance}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey(r.key),r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var initReactI18next={type:"3rdParty",init:function(e){setDefaults(e.options.react),setI18n(e)}},I18nContext=React.createContext(),ReportNamespaces=function(){function e(){_classCallCheck(this,e),this.usedNamespaces={}}return _createClass(e,[{key:"addUsedNamespaces",value:function(e){var t=this;e.forEach((function(e){t.usedNamespaces[e]||(t.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),e}();function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw o}}return s}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var usePrevious=function(e,t){var n=React.useRef();return React.useEffect((function(){n.current=t?n.current:e}),[e,t]),n.current};function useTranslation(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.i18n,r=React.useContext(I18nContext)||{},o=r.i18n,a=r.defaultNS,i=n||o||getI18n();if(i&&!i.reportNamespaces&&(i.reportNamespaces=new ReportNamespaces),!i){warnOnce("You will need to pass in an i18next instance by using initReactI18next");var s=function(e,t){return"string"==typeof t?t:t&&"object"===_typeof(t)&&"string"==typeof t.defaultValue?t.defaultValue:Array.isArray(e)?e[e.length-1]:e},l=[s,{},!1];return l.t=s,l.i18n={},l.ready=!1,l}i.options.react&&void 0!==i.options.react.wait&&warnOnce("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var c=_objectSpread(_objectSpread(_objectSpread({},getDefaults()),i.options.react),t),u=c.useSuspense,d=c.keyPrefix,f=e||a||i.options&&i.options.defaultNS;f="string"==typeof f?[f]:f||["translation"],i.reportNamespaces.addUsedNamespaces&&i.reportNamespaces.addUsedNamespaces(f);var p=(i.isInitialized||i.initializedStoreOnce)&&f.every((function(e){return hasLoadedNamespace(e,i,c)}));function m(){return i.getFixedT(t.lng||null,"fallback"===c.nsMode?f:f[0],d)}var h=_slicedToArray(React.useState(m),2),_=h[0],g=h[1],v=f.join();t.lng&&(v="".concat(t.lng).concat(v));var E=usePrevious(v),y=React.useRef(!0);React.useEffect((function(){var e=c.bindI18n,n=c.bindI18nStore;function r(){y.current&&g(m)}return y.current=!0,p||u||(t.lng?loadLanguages(i,t.lng,f,(function(){y.current&&g(m)})):loadNamespaces(i,f,(function(){y.current&&g(m)}))),p&&E&&E!==v&&y.current&&g(m),e&&i&&i.on(e,r),n&&i&&i.store.on(n,r),function(){y.current=!1,e&&i&&e.split(" ").forEach((function(e){return i.off(e,r)})),n&&i&&n.split(" ").forEach((function(e){return i.store.off(e,r)}))}}),[i,v]);var b=React.useRef(!0);React.useEffect((function(){y.current&&!b.current&&g(m),b.current=!1}),[i,d]);var C=[_,i,p];if(C.t=_,C.i18n=i,C.ready=p,p)return C;if(!p&&!u)return C;throw new Promise((function(e){t.lng?loadLanguages(i,t.lng,f,(function(){return e()})):loadNamespaces(i,f,(function(){return e()}))}))}var funcProto=Function.prototype,funcToString=funcProto.toString;funcToString.call(Object);const getBuilderContext=()=>"undefined"==typeof window?{}:Builder.settings.context?Builder.settings.context:Builder.settings;async function fetchAPI(e,t={credentials:"include"}){const n={"Content-Type":"application/json"},r=getAuthorization();r&&(n.Authorization=r),t.headers=Object.assign({},n,t.headers),t.credentials="include";const o=await fetch(`${getRootUrl()}${e}`,t);if(401===o.status)throw new Error(401);const a=await o.json();if(a.errors)throw console.error(a.errors),new Error("Failed to fetch API");return a}function getAuthorization(){try{const e=getBuilderContext();let t=e.tenantId,n=e.authToken;return t&&n?`Bearer ${t},${n}`:null}catch(e){console.error(e)}}function getUserId(){try{let e=getBuilderContext().userId;return e||null}catch(e){console.error(e)}}function getRootUrl(e){const t=getBuilderContext();if(t.rootUrl)return t.rootUrl;const n="undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"";return n||(e||"")}const Router={getTabDisplayAs(e,t){var n=new URLSearchParams(document.location.search);if(n.has("display"))return n.get("display");const r=`tab_${e}_display`,o=sessionStorage.getItem(r);let a="grid";return!0===t&&(a="split"),window.innerWidth<=768?"grid":o||a},setTabDisplayAs(e,t){const n=`tab_${e}_display`;sessionStorage.setItem(n,t)},getAppPath:({formFactor:e,appId:t})=>`/app/${t}`,getPagePath(){},getObjectListViewPath:({formFactor:e,appId:t,objectName:n,listViewName:r})=>`/app/${t}/${n}/grid/${r}`,getObjectDetailPath(e){const{formFactor:t,appId:n,objectName:r,recordId:o,listViewName:a,_templateType:i}=e;return"JavaScript"===i?`/app/${n}/${r}/view/${o}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${n}/${r}/view/${o}?side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({formFactor:e,appId:t,masterObjectName:n,masterRecordId:r,objectName:o,foreignKey:a})=>`/app/${t}/${n}/${r}/${o}/grid?related_field_name=${a}`};function getImageFieldUrl(e,t){if(window.Meteor){if(1!=window.Meteor.isCordova){const t=e.indexOf("//"),n=e.indexOf("/",t+2);return e.substring(n)}if(t||e.startsWith("http"))return`${e}?token=${window.btoa(JSON.stringify({authToken:Builder.settings.context.authToken}))}`}return e}function toGrayscale(e,t,n){return.2126*e+.7152*t+.0722*n}function isLight(e,t,n){return toGrayscale(e,t,n)>200}function getContrastColor(e){var t="#"===e.charAt(0)?e.substring(1,7):e;return isLight(parseInt(t.substr(0,2),16),parseInt(t.substr(2,2),16),parseInt(t.substr(4,2),16))?"#000000":"#ffffff"}function getLookupListView(e){if(!e)return null;let t,n;return _.each(e.list_views,((e,r)=>{"all"===r?(t=e,t.name||(t.name=r)):"lookup"===r&&(n=e,n.name||(n.name=r))})),n||t}function getComparableAmisVersion(){let e=window.amisRequire&&window.amisRequire("amis")||window.Amis,t=e&&e.version;if(t){let e=t.split(".");return parseFloat(e[0].toString()+"."+e[1].toString())}}function getBowserType(){const e=navigator.userAgent;return-1!==e.indexOf("Chrome")&&-1!==e.indexOf("Safari")&&-1===e.indexOf("Edg")?"Chrome":-1!==e.indexOf("Firefox")?"Firefox":-1!==e.indexOf("Safari")&&-1===e.indexOf("Chrome")&&-1===e.indexOf("Edge")?"Safari":-1!==e.indexOf("Edg")?"Edge":"Unknown browser"}function getNumberTpl(e){return`<span>\${_display.${e.name}}</span>`}function getTimeTpl(e){return`<span>\${_display.${e.name}}</span>`}function getDateTpl(e){return`<span>\${_display.${e.name}}</span>`}function getDateTimeTpl(e){return`<span>\${_display.${e.name}}</span>`}function getUiFieldTpl(e){return`<span>\${_display.${e.name}}</span>`}function getUiFileSizeTpl(e){return`<span>\${_display.${e.name}}</span>`}async function getRefObjectNameFieldName(e){return(await getUISchema(e.reference_to)).NAME_FIELD_KEY||"name"}function getSelectTpl(e){return`<span>\${_display.${e.name}}</span>`}function getSelectMap(e){let t={};return _$1.forEach(e,(e=>{const n=e.value+"",r=e.color+"";if(r&&"undefined"!=r){const o="#"===r.charAt(0)?r:"#"+r,a="background:"+o+";color:"+getContrastColor(o)+";line-height:1.5rem;font-size:14px";t[n]=`<span class="rounded-xl px-2 py-1" style='${a}'>${e.label}</span>`}else t[n]=e.label})),t}function getNameTplUrl(e,t){return Router.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`})}function getNameTpl(e,t){const n=getNameTplUrl(e,t);let r="";t&&t.isLookup&&(r="target='_blank'");let o=e.name;return"lookup"==e.type||"master_detail"==e.type?!e.reference_to&&(e.optionsFunction||e._optionsFunction||e.options)?e.isTableField||(o=`\${${e.name}__label}`):o=`\${_display.${e.name}.label}`:o=`\${_display.${e.name} || ${e.name}}`,t.isRelated&&window.innerWidth>=768?`<a href="${n}" ${r} onclick="return false;">\${${o} | raw}</a>`:`<a href="${n}" ${r}>\${${o} | raw}</a>`}function getRelatedFieldTpl(e,t){let n="";if(!e.reference_to&&(e.optionsFunction||e._optionsFunction||e.options))return e.isTableField?`\${${e.name}}`:`\${${e.name}__label}`;let r="";t&&t.isLookup&&(r="target='_blank'");const o=t.onlyDisplayLookLabel;let a=`data._display.${e.name}`;if(e.isTableField&&(a=`data.${e.name}`),_.isString(e.reference_to)||!e.reference_to)if(e.multiple){let e="<%=item.label%>";if(t.isRelated&&(r="target='_blank'"),!o){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${r}><%=item.label%></a>`}n=`\n <% if (${a} && ${a}.length) { %><% ${a}.forEach(function(item,index) { %> <% if(index>0 && index<${a}.length){ %> , <% } %> ${e} <% }); %><% } %>\n `}else{let a=`\${_display.${e.name}.label}`,i=`\${_display.${e.name}.objectName}`,s=`\${_display.${e.name}.value}`;if(e.isTableField&&(a=`\${${e.name}.label}`,i=`\${${e.name}.objectName}`,s=`\${${e.name}.value}`),!o){const e=Router.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:`${i}`,recordId:`${s}`});a=window.innerWidth>=768?`<a href="${e}" ${r} onclick="return false;">${a}</a>`:`<a href="${e}" ${r}>${a}</a>`}n=a}else{let e="<%=item.label%>";if(!o){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${r}><%=item.label%></a>`}n=`\n <% if (${a} && ${a}.length) { %><% ${a}.forEach(function(item) { %> ${e} <% }); %><% } %>\n `}return n}async function getLookupTpl(e,t){if(!e.reference_to)return getSelectTpl(e);const n=await getRefObjectNameFieldName(e);if(e.multiple){const r=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>",_templateType:"JavaScript"});return`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${r}"><%=item.${n}%></a> <% }); %><% } %>\n `}return`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${n}}</a>`}function getSwitchTpl(e){let t=`data._display.${e.name}`;return e.isTableField&&(t=`data.${e.name}`),`<% if (data.${e.name}) { %>\n <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=${t}%>">\n <span ><%= ${t} === "√" ? "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>" : ${t} %></span>\n </span>\n <% } %>`}function getPasswordTpl(e){return`<% if (data.${e.name}) { %>\n <span>******</span>\n <% } %>`}function getLocationTpl(e){return`\${${e.name} ? ${e.name}.address : ''}`}async function getFieldTpl(e,t){if((e.is_name||e.name===t.labelFieldName)&&!t.onlyDisplayLookLabel&&!0!==e.multiple)return getNameTpl(e,t);switch(e.type){case"password":return getPasswordTpl(e);case"boolean":case"toggle":return getSwitchTpl(e);case"select":return getSelectTpl(e);case"time":return getTimeTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return await getRelatedFieldTpl(e,t);case"location":return await getLocationTpl(e);case"number":case"currency":return await getNumberTpl(e);case"percent":case"formula":case"summary":return getUiFieldTpl(e);case"filesize":return getUiFileSizeTpl(e)}}async function getFieldsTemplate(e,t,n){let r=[];0!=n&&(n=!0);let o=["_id"];e.datasource&&"default"!==e.datasource&&"meteor"!==e.datasource||o.push("space");let a=[],i=[];i=_$1__namespace.isArray(t)?t:_$1__namespace.values(t);for(const e of i)e.name&&(e.expand?r.push(e):e.name.indexOf(".")<0?(!n||"lookup"!=e.type&&"master_detail"!=e.type?o.push(e.alias?`${e.alias}:${e.name}`:e.name):(o.push(`${e.name}`),a.push(`${e.name}`)),_$1.includes(["time","date","datetime","boolean","number","currency"],e.type)&&o.push(`${e.name}`),_$1.includes(["percent","time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary","object","grid"],e.type)&&a.push(`${e.name}`)):(objectFieldName=e.name.split(".")[0],o.push(objectFieldName),a.push(objectFieldName)));a=_$1__namespace.uniq(a),o=_$1__namespace.uniq(o);let s="";return r.length>0&&_$1__namespace.each(r,(function(e){s+=`${e.expandInfo.fieldName}__expand{${e.expandInfo.displayName}}`})),a.length>0?`${o.join(",")},${s},_display:_ui{${a.join(",")}}`:_$1.trimEnd(`${o.join(" ")},${s}`,",")}async function getFindQuery(e,t,n,r){let o=r.limit||10,a=`(top: ${o})`;t&&(a=`(filters:["_id", "=", "${t}"], top: ${o})`);let i="data";r&&(r.alias&&(i=r.alias),r.filters&&(a=`(filters:${r.filters})`),r.queryOptions&&(a=`(${r.queryOptions})`));var s="";e.enable_tree&&_$1__namespace.includes(_$1__namespace.keys(e.fields),"parent")&&_$1__namespace.includes(_$1__namespace.keys(e.fields),"children")&&(s=",parent,children");var l="";"cms_files"===e.name&&(l=",versions");const c=!1===r.count?"":`,count:${e.name}__count(filters:{__filters})`,u=`${await getFieldsTemplate(e,n,r.expand)}${s}${l}`;return{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",queryFields:u,query:`{${i}:${e.name}${a}{${u}}${c}}`}}function getApi$2(e){if(!e)return"${context.rootUrl}/graphql?reload=${additionalFilters|join}&listName=${listName}"}"undefined"!=typeof window&&(window.getImageFieldUrl=getImageFieldUrl);var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};const AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","color","email"];function getAmisStaticFieldType(e,t,n){return t?_$1__namespace.includes(["text","image","color"],e)?"text"===e&&n&&n.amis&&n.amis.tpl?"static":"image"===e&&n&&n.multiple?"static-images":`static-${e}`:"url"===e?"input-url":"static":_$1__namespace.includes(AmisFormInputs,e)?`input-${e}`:"location"===e?"location-picker":e}let pageCache={};async function getPage({type:e,pageId:t="",appId:n,objectName:r="",recordId:o="",formFactor:a="LARGE"}){const i=`/api/pageSchema/${e}?app=${n}&objectApiName=${r}&recordId=${o}&pageId=${t}&formFactor=${a}`;if(_$1.has(pageCache,i))return pageCache[i];const s=await fetchAPI(i);if(s&&s.schema)return s.schema=JSON.parse(s.schema),s.schema.data&&(delete s.schema.data.recordId,delete s.schema.data.objectName,delete s.schema.data.context,delete s.schema.data.global),pageCache[i]=s,JSON.parse(JSON.stringify(s));pageCache[i]=null}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType$1=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple});async function getLookupLinkOnClick(e,t){const n=await getPage({type:"record",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor}),r=n?Object.assign({},n.schema,{recordId:"file"==e.type?"${value}":`\${${e.name}}`,data:{...n.schema.data,_inDrawer:!0,recordLoaded:!1,objectName:t.objectName}}):{type:"steedos-record-detail",objectApiName:t.objectName,recordId:"file"==e.type?"${value}":`\${${e.name}}`,showBackButton:!1,showButtons:!0,data:{_inDrawer:!0,recordLoaded:!1}};return{click:{actions:[{actionType:"drawer",drawer:{type:"drawer",title:"&nbsp;",headerClassName:"hidden",size:"lg",width:window.drawerWidth||"70%",bodyClassName:"p-0 m-0 bg-gray-100",closeOnEsc:!0,closeOnOutside:!0,resizable:!0,actions:[],body:[r],className:"steedos-record-detail-drawer app-popover"},preventDefault:!0}]}}}const getAmisFileReadonlySchema=async(e,t={})=>{const n=e.type,{appId:r,formFactor:o}=t.amisData||{},a=getAmisFieldType$1(e,!0);let i='onclick="return false;"';return window.innerWidth<768&&(i=""),_.includes(["avatar","image"],n)?{type:a,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===n?window.Meteor?.isCordova?{type:"control",body:e.multiple?{type:"each",name:"_display."+e.name,items:{type:"tpl",tpl:"${name}",className:"antd-Button--link inline-block mr-2",onEvent:{click:{actions:[{script:"\n Steedos.cordovaDownload(encodeURI(event.data.url), event.data.name);\n ",actionType:"custom"}],weight:0}}}}:{type:"tpl",tpl:"${_display."+e.name+".name}",className:"antd-Button--link inline-block",onEvent:{click:{actions:[{script:`\n const data = event.data._display.${e.name};\n Steedos.cordovaDownload(encodeURI(data.url), data.name);\n `,actionType:"custom"}],weight:0}}}}:{type:"control",name:"",body:{type:"each",placeholder:"",className:e.multiple?"flex flex-col":"",source:`\${_display.${e.name}|asArray}`,items:{type:"static",labelClassName:"hidden",label:!1,className:"m-0",tpl:`<a href="/app/-/cfs_files_filerecord/view/\${value}" ${i}>\${name}</a>`,onEvent:window.innerWidth<768?null:await getLookupLinkOnClick(e,{appId:r,objectName:"cfs_files_filerecord",formFactor:o})}}}:void 0},getAmisFileEditSchema=e=>{const t=getFileTableName(e);let n={type:getAmisFieldType$1(e,!1),useChunk:!1,receiver:{method:"post",dataType:"form-data",url:`\${context.rootUrl}/api/v6/files/cfs.${t}.filerecord`,requestAdaptor:"\n const superData = (typeof context != 'undefined') ? context : api.body; \n const { _master, global } = superData;\n // const { recordId, objectName } = _master;\n const { spaceId, userId, user } = global;\n /*\n record_id: recordId,\n parent: recordId,\n object_name: objectName,\n owner_name: user.name,\n space: spaceId,\n owner: userId\n */\n // 参考platform 2.2版本,附件字段保存时cfs.files.filerecord、cfs.images.filerecord表中的metadata下只保存space、owner两个属性值。\n api.data.append('space', spaceId);\n api.data.append('owner', userId);\n\n return api;\n ",adaptor:`\n const superData = (typeof context != 'undefined') ? context : api.body; \n const { context:pageContext } = superData; \n var rootUrl = pageContext.rootUrl + "/api/v6/files/download/cfs.${t}.filerecord/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id + "/" + payload.original.name,\n }\n }\n return payload;\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(n.multiple=!0,n.joinValues=!1,n.extractValue=!0,"image"===e.type&&Steedos.isCordova()&&Steedos.isCordova()&&(n.accept="")),n},getAmisFileSchema=async(e,t,n)=>t?await getAmisFileReadonlySchema(e,n):getAmisFileEditSchema(e);var frontend_field_group_generalization$1="General",frontend_download$1="Download",frontend_form_save$1="Save",frontend_form_save_and_new$1="Save and New",frontend_form_cancel$1="Cancel",frontend_form_reset$1="Reset",frontend_form_new$1="New",frontend_form_edit$1="Edit",frontend_form_preview$1="Preview",frontend_form_select$1="Select",frontend_form_please_select$1="Please select",frontend_form_confirm$1="Confirm",frontend_form_delete$1="Delete",frontend_form_view$1="view",frontend_form_details$1="details",frontend_form_validation_failed_url$1="The URL format is incorrect",frontend_delete_confirm_text$1="Are you sure you want to delete this item?",frontend_delete_many_selected_required$1="Please select the item to be deleted",frontend_delete_many_confirm_text$1="Are you sure you want to delete?",frontend_display_type_is_table$1="Table",frontend_display_type_is_split$1="Split View",frontend_display_as$1="Displayed as",frontend_record_sum$1="items",frontend_button_reload_tooltip$1="Refresh",frontend_button_search_tooltip$1="Filter",frontend_fields_filter_button_search$1="Search",frontend_fields_filter_button_settings$1="Set search options",frontend_button_listview_control_tooltip$1="List View Controls",frontend_button_listview_control_label$1="LIST VIEW CONTROLS",frontend_listview_control_columns$1="Show List",frontend_listview_control_columns_mobile_group$1="Mobile side",frontend_listview_control_clone_label$1="Clone",frontend_listview_control_clone_title$1="Clone List View",frontend_listview_control_clone_defaultData_label_start$1="Copy of",frontend_listview_control_clone_defaultData_label_end$1="",frontend_listview_control_delete_label$1="Delete",frontend_listview_control_delete_confirm_text$1="If you delete this list view it will be permanently removed for all users with access. Are you sure you want to delete?",frontend_listview_control_delete_message_success$1="Deletion successful",frontend_listview_control_filters$1="Filter settings",frontend_listview_control_filters_fields_extend$1="Conditional component 1",frontend_listview_control_new_label$1="New",frontend_listview_control_new_title$1="New List View",frontend_listview_control_new_message_success$1="Success",frontend_listview_control_new_message_failed$1="Failure",frontend_listview_control_rename_label$1="Rename",frontend_listview_control_rename_title$1="Rename List View",frontend_listview_control_share$1="Sharing Settings",frontend_listview_control_sort$1="Default sorting rule",frontend_export_excel$1="Export Excel",frontend_export_excel_toast$1="Exporting, please wait",frontend_operation$1="Operation",frontend_import_data$1="Import data",frontend_import_data_object_name$1="Import object",frontend_import_data_queue_import$1="Data import",frontend_import_data_queue_import_description$1="Import description",frontend_import_data_queue_import_encoding$1="Character code",frontend_import_data_queue_import_template_url$1="Import template",frontend_import_data_file$1="Excel file",frontend_import_data_message_success$1="Importing has started...",frontend_import_data_message_failed$1="Import failed",frontend_record_detail_tab_detailed$1="Details",frontend_record_detail_tab_related$1="Related",frontend_all_apps$1="All apps",frontend_all_projects$1="All projects",frontend_open_app_launcher$1="Open App Launcher",frontend_application_launcher$1="Application launcher",frontend_menu$1="Menu",frontend_help$1="Help",frontend_setup$1="Setup",frontend_notifications$1="Notifications",frontend_notifications_allread$1="Mark all as read",frontend_notifications_allread_message$1="All marked as read",frontend_notifications_close_dialog$1="Close",frontend_profile$1="Profile",switch_space$1="Switch Space",frontend_about$1="About",frontend_log_out$1="Log out",frontend_listview_warning_start$1="The current ",frontend_listview_warning_end$1=" view does not exist!",frontend_record_detail_related_list_warning$1="Missing parent object, parent record, or related list object property!",frontend_record_detail_related_lists_warning$1="Missing parent object, or parent record property!",frontend_record_detail_related_lists_info$1="No related child tables found",frontend_calendar_listWeek$1="List",frontend_message_no_permission_to_edit$1="You don't have permission to edit this record!",frontend_message_modification_successful$1="Modification successful!",frontend_message_modification_failed$1="Modification failed!",frontend_objects_related_alert_start$1="No related table fields associated with the related list object",frontend_objects_related_alert_end$1="were found.",frontend_no_records_found$1="No records found.",frontend_records_no_allowedit$1="You do not have edit permission for this record",frontend_app_menu_save_order_group_nesting_error$1="Group nesting is not supported",en_us={frontend_field_group_generalization:frontend_field_group_generalization$1,frontend_download:frontend_download$1,frontend_form_save:frontend_form_save$1,frontend_form_save_and_new:frontend_form_save_and_new$1,frontend_form_cancel:frontend_form_cancel$1,frontend_form_reset:frontend_form_reset$1,frontend_form_new:frontend_form_new$1,frontend_form_edit:frontend_form_edit$1,frontend_form_preview:frontend_form_preview$1,frontend_form_select:frontend_form_select$1,frontend_form_please_select:frontend_form_please_select$1,frontend_form_confirm:frontend_form_confirm$1,frontend_form_delete:frontend_form_delete$1,frontend_form_view:frontend_form_view$1,frontend_form_details:frontend_form_details$1,frontend_form_validation_failed_url:frontend_form_validation_failed_url$1,frontend_delete_confirm_text:frontend_delete_confirm_text$1,frontend_delete_many_selected_required:frontend_delete_many_selected_required$1,frontend_delete_many_confirm_text:frontend_delete_many_confirm_text$1,frontend_display_type_is_table:frontend_display_type_is_table$1,frontend_display_type_is_split:frontend_display_type_is_split$1,frontend_display_as:frontend_display_as$1,frontend_record_sum:frontend_record_sum$1,frontend_button_reload_tooltip:frontend_button_reload_tooltip$1,frontend_button_search_tooltip:frontend_button_search_tooltip$1,frontend_fields_filter_button_search:frontend_fields_filter_button_search$1,frontend_fields_filter_button_settings:frontend_fields_filter_button_settings$1,frontend_button_listview_control_tooltip:frontend_button_listview_control_tooltip$1,frontend_button_listview_control_label:frontend_button_listview_control_label$1,frontend_listview_control_columns:frontend_listview_control_columns$1,frontend_listview_control_columns_mobile_group:frontend_listview_control_columns_mobile_group$1,frontend_listview_control_clone_label:frontend_listview_control_clone_label$1,frontend_listview_control_clone_title:frontend_listview_control_clone_title$1,frontend_listview_control_clone_defaultData_label_start:frontend_listview_control_clone_defaultData_label_start$1,frontend_listview_control_clone_defaultData_label_end:frontend_listview_control_clone_defaultData_label_end$1,frontend_listview_control_delete_label:frontend_listview_control_delete_label$1,frontend_listview_control_delete_confirm_text:frontend_listview_control_delete_confirm_text$1,frontend_listview_control_delete_message_success:frontend_listview_control_delete_message_success$1,frontend_listview_control_filters:frontend_listview_control_filters$1,frontend_listview_control_filters_fields_extend:frontend_listview_control_filters_fields_extend$1,frontend_listview_control_new_label:frontend_listview_control_new_label$1,frontend_listview_control_new_title:frontend_listview_control_new_title$1,frontend_listview_control_new_message_success:frontend_listview_control_new_message_success$1,frontend_listview_control_new_message_failed:frontend_listview_control_new_message_failed$1,frontend_listview_control_rename_label:frontend_listview_control_rename_label$1,frontend_listview_control_rename_title:frontend_listview_control_rename_title$1,frontend_listview_control_share:frontend_listview_control_share$1,frontend_listview_control_sort:frontend_listview_control_sort$1,frontend_export_excel:frontend_export_excel$1,frontend_export_excel_toast:frontend_export_excel_toast$1,frontend_operation:frontend_operation$1,frontend_import_data:frontend_import_data$1,frontend_import_data_object_name:frontend_import_data_object_name$1,frontend_import_data_queue_import:frontend_import_data_queue_import$1,frontend_import_data_queue_import_description:frontend_import_data_queue_import_description$1,frontend_import_data_queue_import_encoding:frontend_import_data_queue_import_encoding$1,frontend_import_data_queue_import_template_url:frontend_import_data_queue_import_template_url$1,frontend_import_data_file:frontend_import_data_file$1,frontend_import_data_message_success:frontend_import_data_message_success$1,frontend_import_data_message_failed:frontend_import_data_message_failed$1,frontend_record_detail_tab_detailed:frontend_record_detail_tab_detailed$1,frontend_record_detail_tab_related:frontend_record_detail_tab_related$1,frontend_all_apps:frontend_all_apps$1,frontend_all_projects:frontend_all_projects$1,frontend_open_app_launcher:frontend_open_app_launcher$1,frontend_application_launcher:frontend_application_launcher$1,frontend_menu:frontend_menu$1,frontend_help:frontend_help$1,frontend_setup:frontend_setup$1,frontend_notifications:frontend_notifications$1,frontend_notifications_allread:frontend_notifications_allread$1,frontend_notifications_allread_message:frontend_notifications_allread_message$1,frontend_notifications_close_dialog:frontend_notifications_close_dialog$1,frontend_profile:frontend_profile$1,switch_space:switch_space$1,frontend_about:frontend_about$1,frontend_log_out:frontend_log_out$1,frontend_listview_warning_start:frontend_listview_warning_start$1,frontend_listview_warning_end:frontend_listview_warning_end$1,frontend_record_detail_related_list_warning:frontend_record_detail_related_list_warning$1,frontend_record_detail_related_lists_warning:frontend_record_detail_related_lists_warning$1,frontend_record_detail_related_lists_info:frontend_record_detail_related_lists_info$1,frontend_calendar_listWeek:frontend_calendar_listWeek$1,frontend_message_no_permission_to_edit:frontend_message_no_permission_to_edit$1,frontend_message_modification_successful:frontend_message_modification_successful$1,frontend_message_modification_failed:frontend_message_modification_failed$1,frontend_objects_related_alert_start:frontend_objects_related_alert_start$1,frontend_objects_related_alert_end:frontend_objects_related_alert_end$1,frontend_no_records_found:frontend_no_records_found$1,frontend_records_no_allowedit:frontend_records_no_allowedit$1,frontend_app_menu_save_order_group_nesting_error:frontend_app_menu_save_order_group_nesting_error$1},frontend_field_group_generalization="通用",frontend_download="下载",frontend_form_save="保存",frontend_form_save_and_new="保存并新建",frontend_form_cancel="取消",frontend_form_reset="重置",frontend_form_new="新建",frontend_form_edit="编辑",frontend_form_preview="预览",frontend_form_select="选择",frontend_form_please_select="请选择",frontend_form_confirm="确认",frontend_form_delete="删除",frontend_form_view="查看",frontend_form_details="详情",frontend_form_validation_failed_url="URL 格式不正确",frontend_delete_confirm_text="确定要删除此项目?",frontend_delete_many_selected_required="请选择要删除的项",frontend_delete_many_confirm_text="确定要删除吗?",frontend_display_type_is_table="表格",frontend_display_type_is_split="分栏视图",frontend_display_as="显示为",frontend_record_sum="个项目",frontend_button_reload_tooltip="刷新",frontend_button_search_tooltip="筛选",frontend_fields_filter_button_search="搜索",frontend_fields_filter_button_settings="选择搜索项",frontend_button_listview_control_tooltip="列表视图控制",frontend_button_listview_control_label="列表视图控制",frontend_listview_control_columns="显示的列",frontend_listview_control_columns_mobile_group="手机端",frontend_listview_control_clone="复制",frontend_listview_control_clone_label="复制",frontend_listview_control_clone_title="复制 列表视图",frontend_listview_control_clone_defaultData_label_start="",frontend_listview_control_clone_defaultData_label_end="的副本",frontend_listview_control_delete_label="删除",frontend_listview_control_delete_confirm_text="如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?",frontend_listview_control_delete_message_success="删除成功",frontend_listview_control_filters="过滤设置",frontend_listview_control_filters_fields_extend="条件组件",frontend_listview_control_new_label="新建",frontend_listview_control_new_title="新建 列表视图",frontend_listview_control_new_message_success="成功",frontend_listview_control_new_message_failed="失败",frontend_listview_control_rename_label="重命名",frontend_listview_control_rename_title="重命名 列表视图",frontend_listview_control_share="共享设置",frontend_listview_control_sort="默认排序规则",frontend_export_excel="导出",frontend_export_excel_toast="正在导出,请稍后...",frontend_operation="操作",frontend_import_data="导入数据",frontend_import_data_object_name="导入对象",frontend_import_data_queue_import="数据导入",frontend_import_data_queue_import_description="导入描述",frontend_import_data_queue_import_encoding="字符代码",frontend_import_data_queue_import_template_url="导入模板",frontend_import_data_file="Excel文件",frontend_import_data_message_success="已开始导入...",frontend_import_data_message_failed="导入失败",frontend_record_detail_tab_detailed="详细",frontend_record_detail_tab_related="相关",frontend_all_apps="所有应用",frontend_all_projects="所有项目",frontend_open_app_launcher="打开应用程序启动器",frontend_application_launcher="应用程序启动器",frontend_menu="菜单",frontend_help="帮助",frontend_setup="设置",frontend_notifications="通知",frontend_notifications_allread="全部标记为已读",frontend_notifications_allread_message="已全部标记为已读",frontend_notifications_close_dialog="关闭",frontend_profile="个人资料",switch_space="切换工作区",frontend_about="关于",frontend_log_out="注销",frontend_listview_warning_start="当前",frontend_listview_warning_end="视图不存在!",frontend_record_detail_related_list_warning="缺少父级对象、父级记录或相关列表对象属性!",frontend_record_detail_related_lists_warning="缺少父级对象或父级记录属性!",frontend_record_detail_related_lists_info="没有相关子表",frontend_calendar_listWeek="列表",frontend_message_no_permission_to_edit="您没有编辑该记录的权限!",frontend_message_modification_successful="修改成功!",frontend_message_modification_failed="修改失败!",frontend_objects_related_alert_start="未找到与相关列表对象",frontend_objects_related_alert_end="关联的相关表字段",frontend_no_records_found="无法找到记录",frontend_records_no_allowedit="您对这条记录没有编辑权限",frontend_app_menu_save_order_group_nesting_error="不支持分组嵌套",zh_cn={frontend_field_group_generalization:frontend_field_group_generalization,frontend_download:frontend_download,frontend_form_save:frontend_form_save,frontend_form_save_and_new:frontend_form_save_and_new,frontend_form_cancel:frontend_form_cancel,frontend_form_reset:frontend_form_reset,frontend_form_new:frontend_form_new,frontend_form_edit:frontend_form_edit,frontend_form_preview:frontend_form_preview,frontend_form_select:frontend_form_select,frontend_form_please_select:frontend_form_please_select,frontend_form_confirm:frontend_form_confirm,frontend_form_delete:frontend_form_delete,frontend_form_view:frontend_form_view,frontend_form_details:frontend_form_details,frontend_form_validation_failed_url:frontend_form_validation_failed_url,frontend_delete_confirm_text:frontend_delete_confirm_text,frontend_delete_many_selected_required:frontend_delete_many_selected_required,frontend_delete_many_confirm_text:frontend_delete_many_confirm_text,frontend_display_type_is_table:frontend_display_type_is_table,frontend_display_type_is_split:frontend_display_type_is_split,frontend_display_as:frontend_display_as,frontend_record_sum:frontend_record_sum,frontend_button_reload_tooltip:frontend_button_reload_tooltip,frontend_button_search_tooltip:frontend_button_search_tooltip,frontend_fields_filter_button_search:frontend_fields_filter_button_search,frontend_fields_filter_button_settings:frontend_fields_filter_button_settings,frontend_button_listview_control_tooltip:frontend_button_listview_control_tooltip,frontend_button_listview_control_label:frontend_button_listview_control_label,frontend_listview_control_columns:frontend_listview_control_columns,frontend_listview_control_columns_mobile_group:frontend_listview_control_columns_mobile_group,frontend_listview_control_clone:frontend_listview_control_clone,frontend_listview_control_clone_label:frontend_listview_control_clone_label,frontend_listview_control_clone_title:frontend_listview_control_clone_title,frontend_listview_control_clone_defaultData_label_start:frontend_listview_control_clone_defaultData_label_start,frontend_listview_control_clone_defaultData_label_end:frontend_listview_control_clone_defaultData_label_end,frontend_listview_control_delete_label:frontend_listview_control_delete_label,frontend_listview_control_delete_confirm_text:frontend_listview_control_delete_confirm_text,frontend_listview_control_delete_message_success:frontend_listview_control_delete_message_success,frontend_listview_control_filters:frontend_listview_control_filters,frontend_listview_control_filters_fields_extend:frontend_listview_control_filters_fields_extend,frontend_listview_control_new_label:frontend_listview_control_new_label,frontend_listview_control_new_title:frontend_listview_control_new_title,frontend_listview_control_new_message_success:frontend_listview_control_new_message_success,frontend_listview_control_new_message_failed:frontend_listview_control_new_message_failed,frontend_listview_control_rename_label:frontend_listview_control_rename_label,frontend_listview_control_rename_title:frontend_listview_control_rename_title,frontend_listview_control_share:frontend_listview_control_share,frontend_listview_control_sort:frontend_listview_control_sort,frontend_export_excel:frontend_export_excel,frontend_export_excel_toast:frontend_export_excel_toast,frontend_operation:frontend_operation,frontend_import_data:frontend_import_data,frontend_import_data_object_name:frontend_import_data_object_name,frontend_import_data_queue_import:frontend_import_data_queue_import,frontend_import_data_queue_import_description:frontend_import_data_queue_import_description,frontend_import_data_queue_import_encoding:frontend_import_data_queue_import_encoding,frontend_import_data_queue_import_template_url:frontend_import_data_queue_import_template_url,frontend_import_data_file:frontend_import_data_file,frontend_import_data_message_success:frontend_import_data_message_success,frontend_import_data_message_failed:frontend_import_data_message_failed,frontend_record_detail_tab_detailed:frontend_record_detail_tab_detailed,frontend_record_detail_tab_related:frontend_record_detail_tab_related,frontend_all_apps:frontend_all_apps,frontend_all_projects:frontend_all_projects,frontend_open_app_launcher:frontend_open_app_launcher,frontend_application_launcher:frontend_application_launcher,frontend_menu:frontend_menu,frontend_help:frontend_help,frontend_setup:frontend_setup,frontend_notifications:frontend_notifications,frontend_notifications_allread:frontend_notifications_allread,frontend_notifications_allread_message:frontend_notifications_allread_message,frontend_notifications_close_dialog:frontend_notifications_close_dialog,frontend_profile:frontend_profile,switch_space:switch_space,frontend_about:frontend_about,frontend_log_out:frontend_log_out,frontend_listview_warning_start:frontend_listview_warning_start,frontend_listview_warning_end:frontend_listview_warning_end,frontend_record_detail_related_list_warning:frontend_record_detail_related_list_warning,frontend_record_detail_related_lists_warning:frontend_record_detail_related_lists_warning,frontend_record_detail_related_lists_info:frontend_record_detail_related_lists_info,frontend_calendar_listWeek:frontend_calendar_listWeek,frontend_message_no_permission_to_edit:frontend_message_no_permission_to_edit,frontend_message_modification_successful:frontend_message_modification_successful,frontend_message_modification_failed:frontend_message_modification_failed,frontend_objects_related_alert_start:frontend_objects_related_alert_start,frontend_objects_related_alert_end:frontend_objects_related_alert_end,frontend_no_records_found:frontend_no_records_found,frontend_records_no_allowedit:frontend_records_no_allowedit,frontend_app_menu_save_order_group_nesting_error:frontend_app_menu_save_order_group_nesting_error};const resources={"en-US":{translation:en_us},"zh-CN":{translation:zh_cn}};var locale="zh-CN";async function getQuickEditSchema(e,t,n){let r=e.fields[t.name],o=!1;window.amisRequire&&window.amisRequire("amis")?o=window.amisRequire("amis").version[0]>=3&&window.amisRequire("amis").version[2]>=2:window.Amis&&(o=window.Amis.version[0]>=3&&window.Amis.version[2]>=2);const a=n.objectName+"_"+r.name+"_quickEdit";var i={body:[],id:a,className:"steedos-table-quickEdit"};if("avatar"!=r.type&&"image"!=r.type&&"file"!=r.type&&o){const e={submit:{actions:[{actionType:"validate",componentId:a,outputVar:"form_validate_result"},{actionType:"custom",script:`\n let items = _.cloneDeep(event.data.items);\n let selectedItems = _.cloneDeep(event.data.selectedItems);\n if(event.data.isBatchEdit){\n selectedItems.forEach(function(selectedItem){\n selectedItem._display.${r.name} = event.data._display.${r.name};\n doAction({actionType: 'setValue', "args": {"value": selectedItem._display},componentId: "${n.objectName}" + "_display_" + selectedItem._index});\n doAction({actionType: 'setValue', "args": {"value": event.data.${r.name}},componentId: "${n.objectName+"_"+r.name+"_"}" + selectedItem._index});\n })\n }else{\n doAction({actionType: 'setValue', "args": {"value": event.data._display},componentId: "${n.objectName}" + "_display_" + event.data._index});\n doAction({actionType: 'setValue', "args": {"value": event.data.${r.name}},componentId: "${n.objectName+"_"+r.name+"_"}" + event.data._index});\n }\n `,expression:"${!form_validate_result.error}"},{actionType:"closeDialog",expression:"${!form_validate_result.error}"}]}};i.onEvent=e}if(r.disabled)i=!1;else{var s=Object.assign({},_$1__namespace.omit(n,"buttons"),{defaults:Object.assign({},n.defaults,{formSchema:i})}),l=await convertSFieldToAmisField(r,!1,s);if(l){i.body.push(l);var c="";i.body[0].onEvent={};const e=function(e){return{actions:[{actionType:"custom",script:`\n var _display = _.cloneDeep(event.data._display);\n ${e}\n doAction({actionType: 'setValue', "args": {"value": {_display}},componentId: "${a}"});\n `}]}};switch(r.type){case"lookup":case"master_detail":let t=i.body[0].labelField||"label",n=i.body[0].valueField||"value";c=r.multiple?`\n const preData = _.cloneDeep(event.data.__super.${r.name});\n if(preData && event.data.${r.name}.length < preData.length){\n let deletedIndex;\n preData.forEach(function(item,index){\n if(_.indexOf(event.data.${r.name}, item) == -1) _display["${r.name}"].splice(index, 1);\n })\n }else{\n _display["${r.name}"] = [];\n event.data.value.forEach(function(val,index){\n const item = _.find(event.data.selectedItems, { ${n}: val });\n _display["${r.name}"].push(\n {\n "label": item.${t},\n "value": item[event.data.uiSchema.idFieldName],\n "objectName": "${r.reference_to}"\n }\n )\n })\n }\n \n `:`\n if(event.data.value){\n _display["${r.name}"] = {\n "label": event.data.selectedItems.${t},\n "value": event.data.selectedItems[event.data.uiSchema.idFieldName],\n "objectName": "${r.reference_to}"\n }\n }else{\n _display["${r.name}"] = {}\n }\n `,i.body[0].onEvent.change=e(c);break;case"select":c=`\n _display["${r.name}"] = event.data.selectedItems.label;\n `,i.body[0].onEvent.change=e(c);break;case"percent":c=`\n if(event.data.value){\n _display["${r.name}"] = event.data.value.toFixed(${r.scale}) + '%';\n } else {\n _display["${r.name}"] = event.data.value;\n }\n \n `,i.body[0].onEvent.change=e(c);break;case"time":c=`\n _display["${r.name}"] = moment(event.data.value).utc().format('HH:mm');\n `,i.body[0].onEvent.change=e(c);break;case"date":c=`\n _display["${r.name}"] = moment(event.data.value).utc().format('YYYY-MM-DD');\n `,i.body[0].onEvent.change=e(c);break;case"datetime":c=`\n _display["${r.name}"] = moment(event.data.value).format('YYYY-MM-DD HH:mm');\n `,i.body[0].onEvent.change=e(c);break;case"boolean":c=`\n _display["${r.name}"] = event.data.value?"√":"";\n `,i.body[0].onEvent.change=e(c);break;case"number":case"currency":c=`\n _display["${r.name}"] = event.data.value && event.data.value.toFixed(${r.scale});\n `,i.body[0].onEvent.change=e(c);break;case"file":var u="";r.multiple?(c=`\n _display["${r.name}"].push({\n "name": event.data.result.name,\n "url": event.data.result.url,\n "value": event.data.result.value,\n "_id": event.data.result.value,\n "type": event.data.item.type,\n "size": event.data.item.size\n });\n `,u=`\n _.remove(_display["${r.name}"], function(file){return file.url == event.data.item.url});\n `):(c=` \n _display["${r.name}"] = {\n "name": event.data.result.name,\n "url": event.data.result.url,\n "value": event.data.result.value,\n "_id": event.data.result.value,\n "type": event.data.item.type,\n "size": event.data.item.size\n };\n `,u=`\n if(_display["${r.name}"].url == event.data.item.url){\n _display["${r.name}"] = {};\n }\n `),i.body[0].onEvent.success=e(c),i.body[0].onEvent.remove=e(u);break;case"avatar":case"image":i.body[0].receiver.adaptor=`\n const superData = (typeof context != 'undefined') ? context : api.body; \n const { context:pageContext } = superData; \n var rootUrl = pageContext.rootUrl + "/api/files/${r.type}s/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: rootUrl + payload._id,//为了实现图片crud的回显,需要将value从id改为url,当保存数据数据时,再在发送适配器内重新将id提取出来\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `}i.body[0].visibleOn="${quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}",i.body.push({type:"service",body:[{type:"tpl",tpl:instance.t("frontend_records_no_allowedit"),visibleOn:"${!quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}"},{type:"spinner",showOn:"${quickedit_record_permissions_loading}"}],onEvent:{init:{actions:[{actionType:"custom",script:`\n crudScoped = event.context.scoped.getComponentById('${n.crudId}');\n const selectedItems = crudScoped && crudScoped.control.getSelected();\n doAction({\n "componentId": "${a}",\n "actionType": "setValue",\n "args": {\n "value": {\n selectedItems\n }\n }\n });\n `},{actionType:"setValue",componentId:a,args:{value:{quickedit_record_permissions_loading:!0}}},{actionType:"ajax",args:{api:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},cache:3e4,messages:{failed:"失败了呢。。"}}},expression:"${!recordPermissions.modifyAllRecords}"},{actionType:"setValue",componentId:a,args:{value:{quickedit_record_permissions_loading:!1}}},{actionType:"setValue",componentId:a,args:{value:{quickedit_record_permissions:"${recordPermissions.modifyAllRecords ? {'allowEdit': true} : event.data}"}}}]}}}),"avatar"!=r.type&&"image"!=r.type&&"file"!=r.type&&o&&i.body.push({name:"isBatchEdit",type:"checkbox",option:[{type:"tpl",tpl:"更新${COUNT(selectedItems)}个选定记录"},{type:"spinner",showOn:"${batchPermissionLoading}",size:"sm",className:"mr-4"}],visibleOn:"${ARRAYSOME(selectedItems, item => item._id === _id) && COUNT(selectedItems)>1 && quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}",disabledOn:"${batchPermissionLoading}",onEvent:{change:{actions:[{actionType:"setValue",componentId:a,args:{value:{batchPermissionLoading:!0}},expression:"${event.data.value}"},{actionType:"ajax",args:{api:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{query:'{rows:${objectName}(filters:["_id","in",${selectedItems | pick:_id | split | json}]){_id,_permissions{allowEdit}}}'},adaptor:"\n const noPermission = [];\n payload.data.rows.forEach(function (row) {\n if(!row._permissions.allowEdit){\n noPermission.push(row._id);\n }\n })\n payload.data.noPermission = noPermission;\n return payload;\n "}},expression:"${event.data.value && !recordPermissions.modifyAllRecords}"},{actionType:"setValue",componentId:a,args:{value:{batchPermissionLoading:!1}},expression:"${event.data.value}"},{actionType:"dialog",dialog:{title:"记录权限",showCloseButton:!1,body:[{type:"tpl",tpl:"当前选中记录中,有${COUNT(noPermission)}条记录无编辑权限,是否需要批量编辑其他记录?"}],onEvent:{confirm:{actions:[{actionType:"custom",script:`\n const noPermission = event.data.noPermission;\n const crudComponent = event.context.scoped.getComponentById("${n.crudId}");\n let selectedItems = crudComponent && crudComponent.props.store.selectedItems.concat();\n noPermission.forEach(function (item) {\n crudComponent && crudComponent.unSelectItem(_.find(selectedItems,{_id:item}));\n _.remove(selectedItems, (selected) => selected._id === item);\n })\n doAction({\n "componentId": "${a}",\n "actionType": "setValue",\n "args": {\n "value": {\n selectedItems\n }\n }\n });\n `},{actionType:"setValue",componentId:a,args:{value:{isBatchEdit:!0}}}]},cancel:{actions:[{actionType:"setValue",componentId:a,args:{value:{isBatchEdit:!1}}}]}}},expression:"${COUNT(event.data.noPermission)>0}"}]}}})}else i=!1;"lookup"!=r.type||o||(i=!1),"file"==r.type&&r.multiple&&(i=!1),"location"==r.type&&(i=!1),"color"==r.type&&(i={type:"input-color"})}return i}function getFieldWidth(e){const t=null;return"string"==typeof e?isNaN(e)?e||t:Number(e)||t:"number"==typeof e?e:t}async function getColumnItemOnClick(e,t){let n=t.objectName;e.is_name||e.name===t.labelFieldName||(n=e.reference_to);const r=await getPage({type:"record",appId:t.appId,objectName:n,formFactor:t.formFactor}),o=r?Object.assign({},r.schema,{recordId:`\${${t.idFieldName}}`,data:{...r.schema.data,_inDrawer:!0,recordLoaded:!1,recordId:`\${${t.idFieldName}}`,_lookupObjectName:t.objectName}}):{type:"steedos-record-detail",objectApiName:"${objectName}",recordId:`\${${t.idFieldName}}`,showBackButton:!1,showButtons:!0,data:{_inDrawer:!0,recordLoaded:!1,_lookupObjectName:t.objectName}};return e.is_name||e.name===t.labelFieldName||(o.objectApiName=e.reference_to,o.recordId=`\${_display.${e.name}.value}`),{click:{actions:[{actionType:"drawer",drawer:{type:"drawer",title:"&nbsp;",headerClassName:"hidden",size:"lg",width:window.drawerWidth||"70%",bodyClassName:"p-0 m-0 bg-gray-100",closeOnEsc:!0,closeOnOutside:!0,resizable:!0,actions:[],body:[o],className:"steedos-record-detail-drawer app-popover",id:"u:fc5f055afa8c"},preventDefault:!0}]}}}async function getTableColumns(e,t,n){const r=[];n.isLookup||n.isInputTable||n.enable_tree||r.push({name:"_index",type:"text",width:32,placeholder:""});const o=n.permissions?.allowEdit&&!n.isLookup&&0!=n.enable_inline_edit;for(const a of t){if(a.hidden||a.extra)continue;const t=o?await getQuickEditSchema(e,a,n):o;let i=`steedos-table-${a.type}-field`;"Safari"===getBowserType()||1!=a.wrap?i+=" whitespace-nowrap ":i+=" break-words ","object"==typeof a.amis?.className?i={[i]:"true",...a.amis.className}:"string"==typeof a.amis?.className&&(i=`${i} ${a.amis.className} `);let s,l=_$1__namespace.clone(a.amis);delete l?.className;let c=!!(window&&window.nw&&window.nw.require);if((a.is_name||a.name===n.labelFieldName)&&"cms_files"===n.objectName&&c){const e=`\n var data = event.data;\n var file_name = data.versions ? data.name : "${a.label}";\n var file_id = data.versions && data.versions[0] && data.versions[0]._id;\n window.previewFile && window.previewFile({file_name, file_id});\n `;s=Object.assign({},{type:"button",label:`<%=data.versions ? data.name : "${a.label}"%>`,className:i,level:"link",onEvent:{click:{actions:[{args:{},actionType:"custom",script:e,expression:"!!(window && window.nw && window.nw.require)"}]}}},l)}else if("toggle"===a.type)s=Object.assign({},{type:"switch",name:a.name,label:a.label,width:getFieldWidth(a.width),toggled:a.toggled,static:!0,className:i},l,{name:a.name});else if("avatar"===a.type||"image"===a.type||"file"===a.type)s=Object.assign({},{type:"switch",name:a.name,label:a.label,width:getFieldWidth(a.width),toggled:a.toggled,static:!0,className:i,...await getAmisFileReadonlySchema(a)},l);else if("select"===a.type){const e=getSelectMap(a.options);s=Object.assign({},{type:"static-mapping",name:a.name,label:a.label,map:e,sortable:a.sortable,width:getFieldWidth(a.width),toggled:a.toggled,className:i,inputClassName:"inline",static:!0},l,{name:a.name})}else if("lookup"===a.type||"master_detail"===a.type)s=Object.assign({},{type:"static-wrapper",name:a.name,label:a.label,sortable:a.sortable,width:getFieldWidth(a.width),toggled:a.toggled,className:i,size:"none",inputClassName:"inline",body:{type:"steedos-field",static:!0,isLookupInTable:!0,config:{type:"lookup",reference_to:a.reference_to,name:a.name,is_name:a.is_name,label:null,multiple:a.multiple,amis:Object.assign({},l,{label:null})}}},l,{name:a.name});else{const e=await getFieldTpl(a,n);let t="static-text";if(e?t="static":"html"===a.type?t="static-markdown":"url"===a.type&&(t=a.show_as_qr?"static-qr-code":"input-url"),"textarea"===a.type&&(i+="min-w-56"),!a.hidden&&!a.extra){s=Object.assign({},{name:a.name,label:a.label,sortable:a.sortable,width:getFieldWidth(a.width),type:t,tpl:e,toggled:a.toggled,className:i,inputClassName:"inline",static:!0,options:"html"===a.type?{html:!0}:null},l,{name:a.name}),"color"===a.type&&(s.type="color",s.defaultColor=null);let r=!1;r=n.isRelated&&(a.is_name||a.name===n.labelFieldName),window.innerWidth>=768&&r&&(s.onEvent=await getColumnItemOnClick(a,n))}}s&&(t&&(s.quickEdit=t,s.quickEditEnabledOn="${is_system !== true}"),s.id=`${n.objectName}_${a.name}_\${_index}`,r.push(s))}if(!n.isLookup&&!n.isInputTable&&!_$1__namespace.some(r,{name:n.labelFieldName})){const e=Router.getObjectDetailPath({...n,formFactor:n.formFactor,appId:"${appId}",objectName:n.objectName||"${objectName}",recordId:`\${${n.idFieldName}}`});r[0].type="tpl",r[0].tpl=`<a href="${e}">\${${r[0].name}}</a>`}return r}function getMobileLines(e){let t=[],n=[],r=!1,o=!0,a="",i="flex items-center justify-between mb-1";return e.forEach((function(e){var s;r&&t.length<3&&(t.push({type:"wrapper",body:n,size:"none",className:i}),n=[]),o?(a="steedos-listview-item-left truncate",e.field.is_wide&&(a="steedos-listview-item-wide"),0===t.length&&(a+=" font-bold text-gray-800")):a="steedos-listview-item-right truncate ml-2 flex flex-shrink-0",s="object"==typeof e.field.amis?.className?{[a]:"true",...e.field.amis.className}:"string"==typeof e.field.amis?.className?`${a} ${e.field.amis.className} `:a,n.push({type:"tpl",tpl:e.tpl,className:s}),e.field.is_wide?(o=!0,r=!0):(o=!o,r=o)})),n.length&&t.length<3&&t.push({type:"wrapper",body:n,size:"none",className:i}),t}async function getMobileTableColumns(e,t){const n=[];let r={},o=[];for(const n of e){let e="";n.is_name||n.name===t.labelFieldName?(r=n,t=Object.assign({},t,{onlyDisplayLookLabel:!0}),e=await getFieldTpl(n,t)):"avatar"===n.type||"image"===n.type||"file"===n.type?e=`\${_display.${n.name}.name}`:("lookup"!==n.type&&"master_detail"!==n.type||(t=Object.assign({},t,{onlyDisplayLookLabel:!0})),e=await getFieldTpl(n,t)),e||(e=`\${${n.name}}`),n.hidden||n.extra||o.push({field:n,tpl:e})}const a=getNameTplUrl(r,t),i=getMobileLines(o);let s={name:r.name,label:"split"==t.displayAs?"":r.label,sortable:r.sortable,type:"button",level:"link",actionType:"link",link:a,innerClassName:{"steedos-listview-item block text-gray-500":"true","max-w-[360px]":"${display == 'split'}"},body:{type:"wrapper",body:i,size:"none",className:"p-1"}};return"cms_files"===t.objectName&&(s=window.Meteor?.isCordova?{...s,actionType:"",link:"",onEvent:{click:{actions:[{script:'\n let cms_url = \'\';\n let value = event.data.versions[0];\n if(value){\n if(value.url){\n cms_url = value.url;\n }else{\n cms_url = Steedos.absoluteUrl("/api/files/files/"+value+"?download=true");\n }\n }\n Steedos.cordovaDownload(encodeURI(cms_url), event.data.name);\n ',actionType:"custom"}],weight:0}}}:{...s,actionType:"",link:"",onEvent:{click:{actions:[{actionType:"link",args:{link:a}}],weight:0}}}),n.push(s),n}function getDefaultParams$1(e){return{perPage:e.top||e.perPage||config.listView.perPage}}function getButtonVisibleOn$1(e){let t=e.visible;if(e._visible&&(t=e._visible),_$1.isBoolean(t)&&(t=t.toString()),t){if(t.trim().startsWith("function")){t=t.replace("function","function __visible");return`(function _visible(){try{return (${t})(objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)}catch(e){console.error(e)}})()`}return t}if("amis_button"===e.type){const t=e.amis_schema;if(t&&t.body&&t.body.length>0){return t.body[0].visibleOn}}}async function getTableOperation(e){const t=e.buttons,n=[];if(_$1.each(t,(e=>{_$1.isBoolean(e.visible)&&(e.visible=e.visible.toString()),n.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOnAlias:getButtonVisibleOn$1(e),className:"antd-Button--default"})})),!(n.length<1))return{type:"operation",label:"&nbsp;",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation w-10 is-sticky is-sticky-right is-sticky-first-right",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:n,placement:"bottomRight",overlayClassName:"border rounded !min-w-[160px]",trigger:["click"],id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",requestAdaptor:"api.data={}; return api;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n payload = {\n record: {\n recordPermissions: payload\n }\n };\n return payload;\n "}}]}}async function getDefaultCrudCard(e,t){let n,r=t?.labelFieldName||"name",o=[];e.forEach((function(e){delete e.quickEdit,delete e.width,e.name===r?n=e:"_index"!==e.name&&o.push(e)}));let a={header:{title:n.tpl},body:o,toolbar:[]};if(!("SMALL"===t.formFactor||["split"].indexOf(t.displayAs)>-1)){let e=await getTableOperation(t);e&&(e.className+=" inline-block w-auto"),a.toolbar.push(e)}return a}async function getTableSchema$1(e,t,n){n||(n={});let{isLookup:r,hiddenColumnOperation:o}=n;const a=n.defaults,i=a&&a.listSchema||{};let s=[],l="SMALL"===n.formFactor||["split"].indexOf(n.displayAs)>-1;if(r&&(l=!1),i.mode&&"table"!==i.mode&&(l=!1),l)s=await getMobileTableColumns(t,n);else{if(s=await getTableColumns(e,t,n),"cards"===i.mode){let e=i.card;return e||(e=await getDefaultCrudCard(s,n)),{mode:"cards",perPageAvailable:[20,50,100,500],name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 border-solid border-b",className:"",draggable:!1,card:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!!r,labelTpl:`\${${n.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1,...getDefaultParams$1(n)}}if(!r&&!o){const e=await getTableOperation(n);s.push(e)}}const c={};return n.enable_tree&&(c.expandConfig={expand:"first"}),{mode:"table",perPageAvailable:[20,50,100,500],name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 border-solid border-b",className:"",draggable:!1,columns:s,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!!r,labelTpl:`\${${n.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1,...c,...getDefaultParams$1(n)}}function getScriptForAddUrlPrefixForImgFields(e,t){let n=[],r={};return e.forEach((e=>{_$1__namespace.includes(["image","avatar"],e.type)&&(n.push(e.name),r[e.name]={name:e.name,type:e.type,multiple:e.multiple})})),n.length?`\n // image字段值添加URL前缀\n let imgFieldsKeys = ${JSON.stringify(n)};\n let imgFields = ${JSON.stringify(r)};\n imgFieldsKeys.forEach((item)=>{\n let imgFieldValue = data[item];\n let imgFieldDisplayValue = data._display && data._display[item];\n if(imgFieldValue && imgFieldValue.length){\n let fieldProps = imgFields[item];\n if(fieldProps.multiple){\n if(imgFieldDisplayValue instanceof Array){\n data[item] = imgFieldDisplayValue.map((i)=>{ \n const url = window.getImageFieldUrl(i.url, ${t});\n return url;\n });\n }\n }else{\n const url = imgFieldDisplayValue && window.getImageFieldUrl(imgFieldDisplayValue.url, ${t});\n data[item] = url;\n }\n }\n })\n `:""}async function getListBody(e,t){const n=[];for(const r of e){const e=await getFieldTpl(r,t);let o="text";e&&(o="tpl"),r.hidden||r.extra||n.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:o,tpl:e,toggled:r.toggled})}return{type:"hbox",columns:n}}function getDefaultParams(e){return{perPage:e.top||e.perPage||20}}async function getListSchema$1(e,t){return{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...(await getListBody(e,t)).columns],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:instance.t("frontend_form_view"),type:"button",actionType:"link",link:Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]},...getDefaultParams(t)}}"undefined"!=typeof window&&("en-us"==window.Builder?.settings.locale?locale="en-US":"zh-cn"==window.Builder?.settings.locale&&(locale="zh-CN")),instance.use(initReactI18next).init({resources:resources,lng:locale,interpolation:{escapeValue:!1}}),"function"==typeof SuppressedError&&SuppressedError;const getSchema$5=async(e,t)=>{const n=`\n let formSchema = {\n "type": "steedos-object-form",\n "label": "对象表单",\n "objectApiName": "\${objectName}",\n "recordId": "",\n "mode": "edit",\n };\n\n if (payload && payload.schema) {\n formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;\n }\n\n const fields = ${JSON.stringify(e.fields)};\n const selectedRowResponseResult = api.body.selectedRowResponseResult;\n let defaultData = {}; \n\n if(!_.isEmpty(selectedRowResponseResult)){\n const fieldsKeys = _.keys(fields);\n // 如果新建记录时复制的数据中有omit或其他不相关字段数据时不应该一起保存到数据库,\n // 原规则见:https://github.com/steedos/steedos-frontend/issues/297\n _.forEach(selectedRowResponseResult, (val, key) => {\n if (fieldsKeys.indexOf(key) > -1 && fields[key].omit !== true && key != 'owner') {\n defaultData[key] = val;\n }\n })\n }\n\n const _master = api.body._master;\n if(_master && _master._isRelated){\n const relatedKey = _master.relatedKey;\n const masterObjectName = _master.objectName;\n const recordId = _master.recordId || _master.record._id;\n let relatedKeySaveValue = recordId;\n const relatedField = fields[relatedKey];\n if(relatedField && relatedField.reference_to_field && relatedField.reference_to_field !== '_id'){\n relatedKeySaveValue = _master.record[relatedField.reference_to_field];\n }\n let relatedKeyValue; \n if(relatedField && !_.isString(relatedField.reference_to)){\n relatedKeyValue = { o: masterObjectName, ids: [relatedKeySaveValue] };\n }else if (relatedField && relatedField.multiple) {\n relatedKeyValue = [relatedKeySaveValue];\n } else {\n relatedKeyValue = relatedKeySaveValue;\n }\n defaultData[relatedKey]=relatedKeyValue;\n }\n\n if(!_.isEmpty(defaultData)){\n if(payload.schema){\n // 表单微页面第一层要求是page\n formSchema.data.defaultData = defaultData;\n }else{\n formSchema.defaultData = defaultData;\n }\n }\n return {\n data: formSchema\n };\n `;return{type:"service",body:[{type:"button",level:"primary",label:instance.t("frontend_form_new"),id:"u:standard_new",onEvent:{click:{weight:0,actions:[{actionType:"custom",script:"\n const isLookup = event.data.isLookup;\n if(isLookup){\n // lookup弹出窗口的新建功能不需要支持复制新建\n return;\n }\n const uiSchema = event.data.uiSchema;\n const objectName = event.data.objectName;\n const crudId = event.data.crudId || \"listview_\" + objectName;\n const listViewRef = event.context.scoped.getComponentById(crudId);\n const selectedItems = listViewRef && listViewRef.props.store.toJSON().selectedItems || [];\n event.data.selectedIds = _.map(selectedItems, uiSchema.idFieldName || '_id');\n "},{actionType:"ajax",outputVar:"selectedRowResponseResult",args:{api:{url:"${context.rootUrl}/api/v1/${uiSchema.name}/${selectedIds|first}",method:"get"}},expression:"${selectedIds.length > 0}"},{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$",_master:"${_master}","_master._isRelated":"${_isRelated}","_master.relatedKey":"${relatedKey}",appId:"${appId}",objectName:"${objectName}",context:"${context}",global:"${global}",listViewId:"${listViewId}",displayAs:"${displayAs}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",listName:"${listName}",selectedRowResponseResult:"${selectedRowResponseResult}",_lookupObjectName:"${_lookupObjectName}"},title:instance.t("frontend_form_new")+" ${uiSchema.label | raw}",body:[{type:"service",id:"u:1678e148c4d2",messages:{},schemaApi:{data:{isLookup:"${isLookup}",_master:"${_master}",url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",selectedRowResponseResult:"${selectedRowResponseResult}"},url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",method:"get",messages:{},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"return { ...api, url: api.body.url }",adaptor:n}}],showCloseButton:!0,id:"u:e11347411d2d",closeOnEsc:!1,closeOnOutside:!1,size:"lg",actions:[{type:"button",actionType:"cancel",label:instance.t("frontend_form_cancel"),className:"form-btn-cancel"},{type:"button",label:instance.t("frontend_form_save_and_new"),actionType:"confirm",close:!1,id:"confirmAndNew",className:"form-btn-save_and_new"},{type:"button",actionType:"confirm",label:instance.t("frontend_form_save"),primary:!0,className:"form-btn-save"}]}}]}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"}};async function getObjectFieldsFilterFormSchema(e){e||(e={});return{type:"service",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"SMALL"===e.formFactor?"slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden":"slds-filters__body p-0 sm:grid sm:gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 p-1",style:{"max-height":"SMALL"===e.formFactor?"30vh":"unset"},schemaApi:{method:"post",data:{$self:"$$",query:""},url:"/api/amis/health_check?reload=${filterFormSearchableFields|join}",adaptor:`\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n "body": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn("run function getFieldSearchable failed.");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n var ctx = ${JSON.stringify(e)};\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}async function getObjectFieldsFilterBarSchema(e,t){t||(t={});const n=t.searchable_fields,r=!!t.auto_open_filter,o="btn_filter_form_search_"+(new Date).getTime(),a=await getObjectFieldsFilterFormSchema(t),i=t.keywordsSearchBoxName||"__keywords",s=`\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取,因为本地存储中的过滤条件自动填充到表单上时filterForm.getValues()拿不到。\n let filterFormValues = event.data;\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n // 同步__changedFilterFormValues中的值\n // crud && crud.setData({__changedFilterFormValues: {}});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === "crud";\n // });\n // const removedValues = {};\n // // 设置搜索项中移除搜索项后,filterFormValues未把其字段的空值保存为own property,即hasOwnProperty属性中\n // // 这会造成handleFilterSubmit时把移除掉的搜索项字段之前的值加到过滤条件中\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === "" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n // 点击搜索的时候自动收起搜索栏\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 500\n }\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n let showFieldsFilter = true;\n // const isMobile = window.innerWidth < 768;\n // if(event.data.__from_fields_filter_settings_confirm){\n // // 如果是从设置搜索项点击确认按钮触发的搜索事件不应该自动关闭搜索栏\n // showFieldsFilter = true;\n // }\n // else if(isMobile){\n // // 如果是手机端,点击搜索后自动关闭搜索栏\n // showFieldsFilter = false;\n // }\n // else if(event.data.displayAs === "split") {\n // // PC上分栏模式下的列表,始终按手机上效果处理,即自动关闭搜索栏\n // showFieldsFilter = false;\n // }\n // else if(window.innerHeight >= 1200){\n // // 高分辨率屏幕(2k+),列表高度比较高,没必要自动关闭搜索栏\n // showFieldsFilter = true;\n // }\n filterService.setData({showFieldsFilter});\n // resizeWindow();//已迁移到搜索栏表单提交事件中执行,因为表单项change后也会触发表单提交了\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});\n `,l=`\n // console.log("===onCancelScript=form==");\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n var filterFormValues = filterForm.getValues();\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // 刷新浏览器后,filterFormValues值是空的,只能从本地存储中取出并重置为空值\n const listName = event.data.listName;\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n }\n }\n else{\n const keywordsSearchBoxName = "${i}";\n //lookup字段保留快速搜索条件\n removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];\n }\n filterForm.setValues(removedValues);//会把表单提交到toolbar的快速搜索区域,造成在快速搜索框中触发搜索时再次把搜索表单中的字段值清除掉的bug,已单独在快速搜索框那边添加搜索事件代码处理过了\n // 以下方法都无法实现清除表单值\n // filterForm.setValues({}, true)\n // filterForm.reset();\n // filterForm.handleAction({},{\n // "actionType": "setValue",\n // "args": {\n // "value": removedValues\n // }\n // });\n // 下面触发clear动作可以清除表单值,且不会把表单提交到toolbar的快速搜索区域,但是会把金额等范围字段清空成非范围字段\n // filterForm.handleAction({},{\n // "actionType": "clear"\n // });\n\n // 清除__changedFilterFormValues中的值\n // crud && crud.setData({__changedFilterFormValues: {}});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = {};\n crud.setData(crudData);\n }\n filterForm.handleFormSubmit(event);\n // crud.handleFilterSubmit(removedValues);\n\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");\n filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 100\n }\n });\n \n // 移除搜索按钮上的红点\n // let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n `,c=t.filter_form_data,u=`\n const searchableFields = ${JSON.stringify(n)};\n const autoOpenFilter = ${r};\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listName = data.listName;\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields";\n if(isLookup){\n searchableFieldsStoreKey += "/lookup/" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + "/" + (data.context && data.context.userId);\n let defaultSearchableFields = localStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(",");\n }\n if(_.isEmpty(defaultSearchableFields) && searchableFields){\n if(searchableFields.length){\n defaultSearchableFields = _.map(searchableFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.filterable;\n }), "sort_no"),\n "name"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n if(isLookup){\n let filterFormValues = ${_.isObject(c)?JSON.stringify(c):'"'+c+'"'} || {};\n const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;\n if (isAmisFormula){\n filterFormValues = AmisCore.evaluate(filterFormValues, data) || {};\n }\n if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){\n let fields = data.uiSchema && data.uiSchema.fields;\n filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);\n setData({ ...filterFormValues });\n }\n // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器\n setData({ showFieldsFilter: autoOpenFilter });\n }\n else{\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n const omitedEmptyFormValue = _.omitBy(filterFormValues, function(n){\n return _.isNil(n) \n || (_.isObject(n) && _.isEmpty(n)) \n || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))\n || (_.isString(n) && n.length === 0);\n });\n // 有过滤条件时只显示搜索按钮上的红点,不自动展开搜索栏\n if(!_.isEmpty(omitedEmptyFormValue)){\n let scopeRef = SteedosUI.getRef(data.$scopeId);\n let crudService = scopeRef && scopeRef.parent.getComponentById("service_listview_" + data.objectName)\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n // setData({ showFieldsFilter: true });//自动展开搜索栏\n }\n }\n }\n }\n `,d=`\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const value = data.fields;\n const scope = event.context.scoped;\n // 这里的filterForm不是name为"listview-filter-form"的内部form,而是crud自带的filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields";\n if(isLookup){\n searchableFieldsStoreKey += "/lookup/" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + "/" + (data.context && data.context.userId);\n localStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === "string"){\n preSearchableFields = preSearchableFields.split(",");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // 递归children找到listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // 这里第二层form才是真正要提交到crud过滤条件的form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, "form", "listview-filter-form");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 100\n }\n });\n // ===END===\n `;return{type:"service",name:"service_listview_filter_form",data:{},dataProvider:{inited:u},body:{type:"wrapper",body:{type:"wrapper",body:[a,{type:"wrapper",body:{type:"wrapper",body:[{type:"button",level:"primary",id:o,label:instance.t("frontend_fields_filter_button_search"),icon:"fa fa-search",onEvent:{click:{actions:[{actionType:"custom",script:s}]}}},{type:"button",label:instance.t("frontend_form_reset"),name:"btn_filter_form_cancel",onEvent:{click:{actions:[{actionType:"custom",script:l}]}}},{type:"button",label:instance.t("frontend_fields_filter_button_settings"),onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",size:"md",title:instance.t("frontend_fields_filter_button_settings"),body:[{type:"form",title:"",body:[{label:"",type:"transfer",name:"fields",id:"u:92c0b3cccca0",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{$self:"$$"},requestAdaptor:"",adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const options = ((payload.data && payload.data.options) || []).filter(function(item){\n let field = fields[item.value];\n // TODO: 暂时禁用location类型字段的列表搜索\n return !!field && window.isFieldTypeSearchable(field.type) && field.type !== 'location'\n });\n payload.data = {\n \"options\": options\n };\n return payload;\n "},options:[],required:!0,placeholder:"-",className:"col-span-2 m-0",checkAll:!1,searchable:!0,sortable:!0,joinValues:!1,extractValue:!0,multiple:!0}],id:"u:e5ac506d5683",mode:"normal",persistData:!1,promptPageLeave:!0,name:"form",debug:!1,actions:[],panelClassName:"m-0",bodyClassName:"p-4",className:"steedos-amis-form"}],actions:[{type:"button",label:instance.t("frontend_form_cancel"),onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:4e447b5ca72a"},{type:"button",label:instance.t("frontend_form_confirm"),onEvent:{click:{actions:[{actionType:"custom",script:d},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},level:"link"}],size:"xs",className:"space-x-2"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters px-0"},size:"xs",className:"p-0",visibleOn:"this.showFieldsFilter"},className:"bg-white"}}const getNewListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_new_label"),className:"steedos-listview-new-button",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_new_title"),data:{all:"${uiSchema.list_views.all}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",targetObjectName:"${objectName}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",layout:"normal",defaultData:{"&":"${list_view}",name:"",label:"",filters:"",shared:!1,object_name:"${targetObjectName}",_id:"",shared_to:null,shared_to_organizations:null,locked:!1,owner:null,company_id:null,company_ids:null,is_system:!1},fieldsExtend:fieldsExtend$5(),fields:fields$1(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"},{actionType:"custom",script:"window.location.reload();"}]}},messages:{success:instance.t("frontend_listview_control_new_message_success"),failed:instance.t("frontend_listview_control_new_message_failed")}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields$1(){return["label","name","object_name","filter_scope","show_count","columns","sort","filters","mobile_columns","searchable_fields","is_system","shared","shared_to","shared_to_organizations"]}function fieldsExtend$5(){return{group:"",label:{group:"",is_wide:!0},name:{group:"",amis:{hidden:!0,required:!1}},object_name:{group:"",amis:{hidden:!0}},filter_scope:{group:"",amis:{hidden:!0,required:!1}},columns:{group:"",amis:{hidden:!0,required:!1}},mobile_columns:{group:"",amis:{hidden:!0,required:!1}},searchable_fields:{group:"",amis:{hidden:!0,required:!1}},filter_fields:{group:"",amis:{hidden:!0,required:!1}},scrolling_mode:{group:"",amis:{hidden:!0,required:!1}},sort:{group:"",amis:{hidden:!0,required:!1}},show_count:{group:"",amis:{hidden:!0,required:!1}},type:{group:"",amis:{hidden:!0,required:!1}},shared:{group:"",amis:{visibleOn:"${false}"}},shared_to:{group:"",amis:{type:"radios",inline:!1}},shared_to_organizations:{group:""},filters:{group:"",amis:{hidden:!0}}}}async function getObjectListHeaderFieldsFilterBar(e,t,n){return await getObjectFieldsFilterBarSchema(e,n)}const getCopyListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_clone_label"),onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_clone_title"),data:{listName:"${listName}",targetObjectName:"${objectName}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",layout:"normal",defaultData:{"&":"${list_view}",name:"",label:instance.t("frontend_listview_control_clone_defaultData_label_start")+" ${list_view.label} "+instance.t("frontend_listview_control_clone_defaultData_label_end"),shared:!1,object_name:"${targetObjectName}",_id:"",shared_to:null,shared_to_organizations:null,locked:!1,owner:null,company_id:null,company_ids:null,is_system:!1},fieldsExtend:fieldsExtend$4(),fields:fields(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"},{actionType:"custom",script:"window.location.reload();"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields(){return["label","name","object_name","filter_scope","show_count","columns.$.field","columns.$.width","sort.$.field_name","sort.$.order","filters","mobile_columns.$.field","searchable_fields.$.field","is_system","shared","shared_to","shared_to_organizations"]}function fieldsExtend$4(){return{label:{group:"",is_wide:!0},name:{is_wide:!0,amis:{hidden:!0}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0}},columns:{amis:{hidden:!0}},filter_fields:{amis:{hidden:!0}},scrolling_mode:{amis:{hidden:!0}},sort:{amis:{hidden:!0}},show_count:{amis:{hidden:!0}},type:{amis:{hidden:!0}},shared:{group:"",amis:{visibleOn:"${false}"}},shared_to:{group:"",amis:{type:"radios",inline:!1}},shared_to_organizations:{group:""},filters:{group:"",amis:{hidden:!0}}}}const getRenameListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_rename_label"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_rename_title"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",layout:"normal",mode:"edit",fields:["label"],fieldsExtend:'{\n "label":{\n "is_wide": true\n }\n}',onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${name}",blank:!1},actionType:"url"},{actionType:"custom",script:"window.location.reload();"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}}),getSetListviewShareButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_share"),disabledOn:"!(global.user.is_space_admin && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_share"),data:{recordId:"${uiSchema.list_views[listName]._id}",appId:"${appId}",global:"${global}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",layout:"normal",fields:["shared_to","shared_to_organizations"],fieldsExtend:fieldsExtend$3()}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"md"},actionType:"dialog"}]}}});function fieldsExtend$3(){return{shared_to:{group:"",amis:{type:"radios",inline:!1}},shared_to_organizations:{group:""}}}const getSetListviewFiltersButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_filters"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_filters"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["filters"],initApiAdaptor:initApiAdaptor$2(),apiRequestAdaptor:apiRequestAdaptor$2(),fieldsExtend:fieldsExtend$2(),onEvent:{submitSucc:{weight:0,actions:[{actionType:"custom",script:"window.location.reload(); //doAction({'actionType': 'rebuild', 'componentId': `service_listview_${event.data.targetObjectName}`})"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function initApiAdaptor$2(){return"\n const recordId_tmp = api.body.recordId;\n let data_tmp;\n if (recordId_tmp) {\n data_tmp = payload.data;\n // 数据格式转换\n if (data_tmp) {\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n try {\n data_tmp.filters = JSON.parse(data_tmp.filters);\n } catch (e) { }\n }\n \n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n data_tmp._filters_type_controller = 'function';\n } else {\n data_tmp._filters_type_controller = 'conditions'\n }\n \n if (data_tmp._filters_type_controller === 'conditions') {\n data_tmp._filters_conditions = window.amisConvert.filtersToConditions(data_tmp.filters || []);\n data_tmp.filters = data_tmp._filters_conditions;\n } else {\n data_tmp._filters_function = data_tmp.filters;\n }\n }\n }\n for (key in data_tmp) {\n if (data_tmp[key] === null) {\n delete data_tmp[key];\n }\n }\n payload.data = Object.assign(payload.data, data_tmp);\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$2(){return"\n const recordId = api.body.recordId;\n if (formData._filters_type_controller === 'conditions' && formData._filters_conditions) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n } else {\n formData.filters = formData._filters_function || null;\n }\n \n delete formData._filters_type_controller;\n delete formData._filters_conditions;\n delete formData._filters_function;\n \n query = 'mutation{record: ' + objectName + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n };\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}function fieldsExtend$2(){return{filters:{label:"",group:"",visible_on:"true",amis:{type:"condition-builder",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${targetObjectName}",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}const getSetListviewColumnsButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_columns"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{args:{},dialog:{type:"dialog",title:instance.t("frontend_listview_control_columns"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",layout:"normal",fieldsExtend:fieldsExtend$1(),initApiAdaptor:initApiAdaptor$1(),apiRequestAdaptor:apiRequestAdaptor$1(),fields:["columns","mobile_columns"],onEvent:{submitSucc:{weight:0,actions:[{actionType:"custom",script:"window.location.reload(); //doAction({'actionType': 'rebuild', 'componentId': `service_listview_${event.data.targetObjectName}`})"}]}}}],searchable:!0,showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}});function fieldsExtend$1(){return{columns:{amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}},mobile_columns:{amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor$1(){return"\n const recordId_tmp = api.body.recordId;\n let columns_tmp = {}, mobile_columns_tmp = {};\n if (recordId_tmp) {\n columns_tmp = payload.data.columns;\n mobile_columns_tmp = payload.data.mobile_columns;\n if (columns_tmp) {\n columns_tmp = lodash.map(columns_tmp, 'field');\n }\n if (mobile_columns_tmp) {\n mobile_columns_tmp = lodash.map(mobile_columns_tmp, 'field');\n }\n }\n payload.data.columns = columns_tmp;\n payload.data.mobile_columns = mobile_columns_tmp;\n \n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$1(){return"\n const formData_tmp = api.body.$;\n const objectName_tmp = api.body.objectName;\n const recordId_tmp = api.body.recordId;\n \n if (typeof formData_tmp.columns == 'string') {\n formData_tmp.columns = formData_tmp.columns && formData_tmp.columns.split(',');\n }\n if (typeof formData_tmp.mobile_columns == 'string') {\n formData_tmp.mobile_columns = formData_tmp.mobile_columns && formData_tmp.mobile_columns.split(',');\n }\n \n // 数据格式转换\n formData_tmp.columns = lodash.map(formData_tmp.columns, (item) => {\n return { field: item };\n });\n formData.mobile_columns = lodash.map(formData.mobile_columns, (item) => {\n return { field: item };\n });\n \n let query_tmp = 'mutation{record: ' + objectName_tmp + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query_tmp = 'mutation{record: ' + objectName_tmp + '__update(id: \"' + recordId_tmp +'\", doc: {__saveData}){_id}}';\n };\n delete formData_tmp._id;\n let __saveData_tmp = JSON.stringify(JSON.stringify(formData_tmp));\n api.data = { query: query_tmp.replace('{__saveData}', __saveData_tmp) };\n \n return api;\n "}const getSetListviewSortButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_sort"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_sort"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",className:"",id:"u:061f158b4c5a",mode:"edit",fields:["sort","sort.$.field_name","sort.$.order"],onEvent:{submitSucc:{weight:0,actions:[{actionType:"custom",script:"window.location.reload(); //doAction({'actionType': 'rebuild', 'componentId': `service_listview_${event.data.targetObjectName}`})"}]}},fieldsExtend:fieldsExtend(),initApiAdaptor:initApiAdaptor(),apiRequestAdaptor:apiRequestAdaptor()}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,id:"u:d3f6947b6acf",size:"lg"},actionType:"dialog"}]}}});function fieldsExtend(){return{sort:{label:"",group:"",amis:{type:"tabs-transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/sortFields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor(){return"\n let sort;\n if (recordId) {\n sort = payload.data.sort;\n //数据格式转换\n if (sort instanceof Array) {\n sort = lodash.map(sort, (item) => {\n return item.field_name + ':' + (item.order || 'asc')\n });\n }\n }\n payload.data.sort = sort;\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor(){return"\n const recordId = api.body.recordId;\n //数据格式转换\n if (typeof formData.sort == 'string') {\n formData.sort = formData.sort && formData.sort.split(',');\n }\n formData.sort = lodash.map(formData.sort, (item) => {\n const arr = item.split(':');\n return { field_name: arr[0], order: arr[1] };\n });\n if (recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n }\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}const getDeleteListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_delete_label"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",confirmText:instance.t("frontend_listview_control_delete_confirm_text"),onEvent:{click:{actions:[{actionType:"ajax",args:{api:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{"&":"$$",uiSchema:"${uiSchema}",recordId:"${uiSchema.list_views[listName]._id}"},messages:{success:instance.t("frontend_listview_control_delete_message_success")},requestAdaptor:requestAdaptor(),adaptor:adaptor()}}},{actionType:"url",args:{url:"${context.rootUrl}/app/${appId}/${objectName}/grid/all",blank:!1},expression:"data.delete == 1"},{actionType:"custom",script:"window.location.reload();"}]}}});function requestAdaptor(){return"\n const { recordId } = api.body;\n var deleteArray = [];\n if (recordId) { deleteArray.push(`delete:object_listviews__delete(id: \"${recordId}\")`); }\n api.data = { query: `mutation{${deleteArray.join(',')}}` };\n return api;\n "}function adaptor(){return"\n if (payload.errors) {\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n "}const getSettingListviewToolbarButtonSchema=()=>({type:"dropdown-button",trigger:"click",icon:"fa fa-cog",btnClassName:"antd-Button--iconOnly bg-white !p-2 rounded text-gray-500",align:"right",visibleOn:"${!isLookup && !!isObjectListview}",buttons:[{label:instance.t("frontend_button_listview_control_label"),children:[getNewListviewButtonSchema(),getCopyListviewButtonSchema(),getRenameListviewButtonSchema(),getSetListviewShareButtonSchema(),getSetListviewFiltersButtonSchema(),getSetListviewColumnsButtonSchema(),getSetListviewSortButtonSchema(),getDeleteListviewButtonSchema()]}]}),getDisplayAsButton=function(e,t){let n=Router.getTabDisplayAs(e,t),r=[{type:"button",label:instance.t("frontend_display_type_is_table"),onClick:"const key = 'tab_"+e+'_display\';sessionStorage.setItem(key, \'grid\');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get("side_object") && urlSearch.get("side_listview_id")){url=`/app/${props.data.appId}/${urlSearch.get("side_object")}/grid/${urlSearch.get("side_listview_id")}`;}; props.env.jumpTo(url + \'?display=grid\');',rightIcon:"split"!=n?"fa fa-check":null,rightIconClassName:"m-l-sm"},{type:"button",label:instance.t("frontend_display_type_is_split"),onClick:"const key = 'tab_"+e+"_display';sessionStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",rightIcon:"split"===n?"fa fa-check":null,rightIconClassName:"m-l-sm"}];return"split"===n?instance.t("frontend_display_type_is_split"):instance.t("frontend_display_type_is_table"),{type:"dropdown-button",icon:"fa fa-table-columns",btnClassName:"antd-Button--iconOnly bg-white !p-2 rounded text-gray-500",align:"right",visibleOn:"${window:innerWidth > 768 && !!!isLookup && !!isObjectListview}",buttons:[{label:instance.t("frontend_display_as"),children:r}]}},onFieldsFilterToggleScript='\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === "form";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n});\nlet toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;\nfilterService.setData({showFieldsFilter: toShowFieldsFilter});\n//触发amis crud 高度重算\ndoAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed." + event.data.objectName\n },\n "data": {\n "timeOut": 1000\n }\n});\n// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\nlet crudService = scope.getComponentById("service_listview_" + event.data.objectName);\ncrudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});\n// if(filterService.props.data.showFieldsFilter){\n// if(isMobile){\n// // 手机上只能通过取消按钮来关闭搜索栏\n// return;\n// }\n// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", { \n// direction: "down", \n// name: "btn_filter_form_cancel" \n// });\n// buttonCancel.props.dispatchEvent(\'click\', {}).then(function(){\n// resizeWindow();\n// });\n// }\n// else{\n// if(isMobile){\n// // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\n// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n// crudService && crudService.setData({showFieldsFilter: true});\n// }\n// }\n';function getObjectHeaderQuickSearchBox(e,t,n,{isLookup:r=!1,keywordsSearchBoxName:o="__keywords"}={}){const a=[];_.each(e.fields,(function(t){isFieldQuickSearchable(t,e.NAME_FIELD_KEY)&&a.push(t.label)}));const i=location.pathname+"/crud";let s=sessionStorage.getItem(i),l="";s&&!r&&(s=JSON.parse(s),l=s&&s.__keywords||"");const c=`\n const scope = event.context.scoped;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n let __changedSearchBoxValues = {};\n __changedSearchBoxValues["${o}"] = event.data["${o}"];\n // crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});\n // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中\n // crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});\n if(crud){\n let crudData = crud.getData();\n crudData.__changedSearchBoxValues = __changedSearchBoxValues;\n crud.setData(crudData);\n }\n `,u=`\n ${c}\n\n // 下面的脚本只为解决点击搜索表单取消按钮,再重新在其中输入过滤条件但是不点击搜索按钮或回车按键触发搜索,此时在快速搜索框输入过滤条件按回车按键会把搜索表单中的过滤条件清空的问题\n // const scope = event.context.scoped;\n // 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null\n // 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");\n if(!filterForm){\n return;\n }\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n setTimeout(function(){\n filterForm && filterForm.setValues(event.data[__changedFilterFormValuesKey]);\n }, 500);\n `;return{type:"tooltip-wrapper",id:"steedos_crud_toolbar_quick_search",align:"right",title:"",content:"可搜索字段:"+a.join(","),placement:"bottom",tooltipTheme:"dark",trigger:"click",className:"SMALL"!==n?"mr-1":"",visible:!!a.length,body:[{type:"search-box",name:o,placeholder:"快捷搜索",value:l,mini:!0,clearable:!0,clearAndSubmit:!0,searchImediately:!1,onEvent:{search:{actions:[{actionType:"custom",script:u}]},change:{actions:[{actionType:"custom",script:c}]}}}]}}function getObjectHeaderToolbar(e,t,n,{showDisplayAs:r=!1,hiddenCount:o=!1,headerToolbarItems:a,filterVisible:i=!0,isLookup:s=!1,keywordsSearchBoxName:l}={}){let c,u;window.innerWidth,o||(c={type:"tpl",align:"left",className:"text-gray-500 mr-2",tpl:"${count} "+instance.t("frontend_record_sum")});let d;u={type:"button",align:"right",tooltipPlacement:"top",className:"bg-white p-2 rounded text-gray-500 list-view-btn-reload",label:"",icon:"fa fa-sync",onEvent:{click:{actions:[{actionType:"custom",script:'\n // 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现在非第一页的情况下,快速搜索输入框中过滤条件变更时再点刷新可以自动跳转翻页到第一页\n const scope = event.context.scoped;\n const sb = SteedosUI.getClosestAmisComponentByType(scope, "search-box");\n if (sb) {\n const sbValue = sb.state.value;\n sb.handleSearch(sbValue);\n }else{\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleChangePage(1);\n }\n \n '}]}}},i&&(d={label:instance.t("frontend_button_search_tooltip"),icon:"fa fa-filter",type:"button",badge:{offset:[-5,1],size:8,animation:!0,visibleOn:"${isFieldsFilterEmpty == false && isLookup != true}"},align:"right",className:"bg-white p-2 rounded text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}},id:"steedos_crud_toolbar_filter"});let f=getDisplayAsButton(e?.name,e?.enable_split),p=getObjectHeaderQuickSearchBox(e,t,n,{isLookup:s,keywordsSearchBoxName:l}),m=[];return"SMALL"===n?(m.push(p),d&&m.push(d),m.push(f),[...a||[],...m]):(m.push(p),m.push(u),m.push(f),e?.permissions?.allowCreateListViews&&m.push(getSettingListviewToolbarButtonSchema()),d&&m.push(d),c&&m.push(c),[...a||[],"bulkActions",...m])}function getObjectFooterToolbar(e,t,n){if("SMALL"===t)return"split"===n.displayAs?[{type:"switch-per-page",visibleOn:"${count >= 20}"},{type:"pagination",maxButtons:5,showPageInput:!1}]:[{type:"pagination",maxButtons:5,showPageInput:!0,layout:"total,pager,go"}];if(n&&n.isRelated)return[{type:"pagination",maxButtons:10,showPageInput:!1}];{const t=e.paging&&!1===e.paging.enabled,r=n.isLookup,o=[{type:"pagination",maxButtons:10,showPageInput:!1}];return t&&r?o:[{type:"switch-per-page",visibleOn:"${count >= 20}"},...o]}}async function getObjectFilter(e,t,n){return{title:"",submitText:"",className:"",debug:!1,mode:"normal",wrapWithPanel:!1,body:[await getObjectListHeaderFieldsFilterBar(e,null,n)],onEvent:{submitSucc:{actions:[{actionType:"custom",script:`\n let isLookup = event.data.isLookup;\n if(isLookup){\n return;\n }\n // 列表搜索栏字段值变更后立刻触发提交表单执行crud搜索,所以这里需要额外重算crud高度及筛选按钮红色星号图标显示隐藏\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 1000\n }\n });\n const scope = event.context.scoped;\n // let filterFormValues = event.data;\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");\n // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。\n let filterFormValues = filterFormService.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中\n // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n crudService && crudService.setData({isFieldsFilterEmpty});\n `}]},change:{actions:[{actionType:"custom",script:'\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n // let filterFormValues = event.data;\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");\n // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。\n let filterFormValues = filterFormService.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;\n // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n // crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});\n // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中\n // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n '}]}}}}let UI_SCHEMA_CACHE={},UISchemaFunction;"undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE);const setUISchemaCache=(e,t)=>{UI_SCHEMA_CACHE[e]=t},getUISchemaCache=e=>_$1.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>_$1.has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){let n=[];return n="SMALL"===t?_$1.isEmpty(e.mobile_columns)?_$1.slice(e.columns,0,4):e.mobile_columns:e.columns,n}function getListViewSort(e){let t="";return e&&e.sort&&e.sort.length&&_$1.each(e.sort,(function(e,n){if(_$1.isArray(e)){let r=e[0]+" "+(e[1]||"");r=n>0?","+r:r,t+=r}else{let r=e.field_name+" "+e.order;r=n>0?","+r:r,t+=r}})),t}function getListViewFilter(e){if(e)try{const t=getUserId();let n=e.filters;if("mine"===e.filter_scope)if(_$1__default.default.isEmpty(n))n=[["owner","=",t]];else{if(_$1__default.default.isString(n)&&_$1__default.default.startsWith(_$1__default.default.trim(n),"function")&&(n=new Function(`return ${n}`),n=n()),!_$1__default.default.isArray(n))throw console.debug("listView filters is not array",e),new Error("filters is not array");n.push(["owner","=",t])}return n}catch(e){console.error(e)}}function formatUISchemaCache(objectName,uiSchema){setUISchemaCache(objectName,uiSchema),_$1.each(uiSchema.fields,(field=>{try{"lookup"===field.type&&field._reference_to&&_$1__default.default.isString(field._reference_to)&&(field.reference_to=eval(`(${field._reference_to})`)())}catch(e){field.reference_to=void 0,console.error(e)}})),_$1.each(uiSchema.list_views,((e,t)=>{e.name=t,_$1.has(e,"columns")||(e.columns=uiSchema.list_views.all.columns)}))}async function getUISchema(e,t,n=!0){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let r=null;try{if(UISchemaFunction);else{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;r=await fetchAPI(t,{method:"get"})}if(!r&&n)return await new Promise((e=>setTimeout(e,3e3))),getUISchema(e,t,!1);if(!r&&0==n)return;formatUISchemaCache(e,r)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}function wait(e){const t=(new Date).getTime();let n=t;for(;n-t<e;)n=(new Date).getTime()}function getUISchemaSync$1(e,t,n=!0){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let r=null;try{const o=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(r=Steedos.authRequest(o,{type:"GET",async:!1}),!r&&n)return wait(2e3),getUISchemaSync$1(e,t,!1);if(!r&&0==n)return;formatUISchemaCache(e,r)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}async function getListSchema(e,t,n,r={}){const o=await getUISchema(t);if(!o)return{};const a=_$1.find(o.list_views,((e,t)=>(n||(n=t),t===n||e._id===n)));if(!a)return{uiSchema:o};if(a.enable_amis_schema&&a.amis_schema){return{uiSchema:o,isCustomAmisSchema:!0,amisSchema:_$1.isString(a.amis_schema)?JSON.parse(a.amis_schema):a.amis_schema}}let i=getListViewColumns(a,r.formFactor),s=getListViewSort(a),l=getListViewFilter(a),c=a&&a._filters;if("calendar"===a.type){return{uiSchema:o,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:c,sort:s,...a.options}}}const u=r.defaults||{};u.headerSchema=null;try{const e=location.pathname+"/crud";let t=sessionStorage.getItem(e);if(t){t=JSON.parse(t);let e={};t.orderBy&&(e.orderBy=t.orderBy),t.orderDir&&(e.orderDir=t.orderDir),t.perPage&&(e.perPage=t.perPage),u.listSchema=_$1.defaultsDeep({},e,u.listSchema||{})}}catch(e){console.error("本地存储中crud参数解析异常:",e)}window.innerWidth>768&&(u.listSchema=_$1.defaultsDeep({},u.listSchema||{},{autoFillHeight:!0})),r.defaults=u,"recent"==n&&(c='\n function(filters, data) {\n var result = Steedos.authRequest(\'/graphql\', {\n type: \'POST\',\n async: false,\n data: JSON.stringify({\n query: \'{object_recent_viewed(filters: [["record.o","=","\' + data.objectName + \'"],["space","=","\' + data.context.tenantId + \'"],["owner","=","\' + data.context.userId + \'"]],sort:"modified desc",top:50){ _id,record} }\'\n }),\n });\n var _ids = []\n result.data.object_recent_viewed.forEach(function (item) {\n _ids = _ids.concat(item.record.ids)\n })\n return ["_id", "=", _ids];\n }\n ');return{uiSchema:o,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:i,extraColumns:a.extra_columns,filters:l,filtersFunction:c,sort:s,ctx:r,requestAdaptor:r.requestAdaptor||a.requestAdaptor,adaptor:r.adaptor||a.adaptor,headerToolbarItems:r.headerToolbarItems,filterVisible:r.filterVisible,rowClassNameExpr:r.rowClassNameExpr,crud:r.crud||a.crud,crudDataFilter:r.crudDataFilter||a.crudDataFilter,onCrudDataFilter:r.onCrudDataFilter}}}async function getSource(e,t){const n=t.objectName;let r=[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],o=r.filter((function(e){return"children"!==e.name})),a=!e.multiple&&e.auto_fill_mapping;a&&a.length&&a.forEach((function(e){"children"!==e.from&&r.push({name:e.from}),o.push({name:e.from})}));const i=await getFindQuery({name:n},null,r,{expand:!1,alias:"options",filters:"{__filters}"});i.query=i.query.replace(/,count\:.+/,"}");const s=await getFindQuery({name:n},null,o,{expand:!1,alias:"defaultValueOptions",filters:"{__options_filters}"});s.query=s.query.replace(/,count\:.+/,"}"),i.query=i.query.replace(/}$/,","+s.query.replace(/{(.+)}/,"$1}"));let l=`${e.name}`;e._prefix&&(l=`${e._prefix}${e.name}`),t.fieldNamePrefix&&(l=`${t.fieldNamePrefix}${l}`),i.$value=`$${l}`,i.$="$$";const c=`\n var filters = [['parent', '=', null]];\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${t.valueField}", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [["${t.valueField}", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;return{method:"post",url:getApi$2(),requestAdaptor:c,adaptor:'\n const data = payload.data;\n data.options = data.options.map(function (optionItem) {\n optionItem.defer = !!(optionItem.children && optionItem.children.length);\n delete optionItem.children;\n return optionItem;\n });\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(data.options, defaultValueOptions, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data = data;\n return payload;\n ',data:i,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi(e,t){const n=t.objectName;let r=[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],o=!e.multiple&&e.auto_fill_mapping;o&&o.length&&o.forEach((function(e){"children"!==e.from&&r.push({name:e.from})}));const a=await getFindQuery({name:"{__object_name}"},null,r,{expand:!1,alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let i=e.filters;"string"==typeof i&&(i=new Function(`return ${i}`),i=i()),"function"==typeof i&&(i=i(e)),a.query=a.query.replace(/,count\:.+/,"}");const s=`\n var dep = api.query.dep;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = "";\n if (dep) {\n objectName = "${n}";\n filters = [['parent', '=', dep]];\n sort = "${t.sort}";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;return{method:"post",url:getApi$2()+"&dep=${value}",requestAdaptor:s,adaptor:"\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n ",data:a,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort(e){let t=getLookupListView(e),n="";return t&&(n=getListViewSort(t)),n}async function lookupToAmisTreeSelect(e,t,n){if(!e)return{};n||(n={});const r={type:getAmisStaticFieldType("tree-select",t)};if(t)r.tpl=await getLookupTpl(e,n);else{const t=await getUISchema(n.objectName);n.sort=getRefListViewSort(t),Object.assign(r,{multiple:e.multiple,searchable:e.searchable,extractValue:!0,hideNodePathLabel:!0,clearable:!0,source:await getSource(e,n),deferApi:await getDeferApi(e,n)}),e.multiple&&Object.assign(r,{joinValues:!1}),"boolean"!=typeof r.searchable&&(r.searchable=!0);const o=e.onEvent;o&&(r.onEvent=o)}return r}"undefined"!=typeof window&&(window.getUISchema=getUISchema,window.getUISchemaSync=getUISchemaSync$1,window.getListSchema=getListSchema);const getReferenceToFieldSchema=(e,t)=>{let n=e.reference_to;if(!n)return;if(!t)return null;let r=null,o=e.reference_to_field;return o||(o=t.idFieldName||"_id"),r="_id"===o?{name:"_id",label:"ID",type:"text",toggled:!1}:t.fields[o]||{name:o},{objectName:n,valueField:r,labelField:t.fields[t.NAME_FIELD_KEY||"name"],NAME_FIELD_KEY:t.NAME_FIELD_KEY||"name"}},getReferenceTo=async e=>{"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user");const t=await getUISchema(e.reference_to);return getReferenceToFieldSchema(e,t)};function getReferenceToSync(e){"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user");const t=getUISchemaSync(e.reference_to);return getReferenceToFieldSchema(e,t)}function getLookupSapceUserTreeSchema(e){const t={type:"input-tree",className:"steedos-select-user-tree",inputClassName:"p-0",source:{method:"post",url:"${context.rootUrl}/graphql",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:'\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (currentRecord, records, childrenIds) => {\n if (currentRecord.children && typeof currentRecord.children[0] === "object") {\n // 考虑api配置了cache缓存的话,不会请求接口但是会重新进这个接收适配器脚本且payload.data.options返回的会是上一次计算结果,这里直接返回计算过的children\n return currentRecord.children;\n }\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(item, records, item.children)\n }else{\n item.children = [];\n }\n })\n return children;\n }\n \n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++) {\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++) {\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n \n _.each(records, (record) => {\n if (record.noParent == 1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(record, records, record.children) }));\n }\n });\n console.log(treeRecords)\n \n payload.data.options = treeRecords;\n return payload;\n ',data:{query:'{options:organizations(filters:["hidden", "!=", true],sort:"sort_no desc"){value:_id label:name,parent,children}}'},messages:{},cache:3e5},onEvent:{change:{actions:[{actionType:"custom",script:'\n console.log("lookup-tree-event.data:",event.data);\n console.log("lookup-tree-event.data.value.label:",event.data.value.label);\n console.log("lookup-tree-event.data.value.value:",event.data.value.value);\n const scope = event.context.scoped;\n var treeFilterFormValues={\n "__searchable__organizations_parents":event.data.value.value\n }\n // var listView = scope.parent.getComponents().find(function(n){\n // return n.props.type === "crud";\n // });\n // listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n let __lookupField = event.data.__lookupField;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n var filterForm = scope.getComponents().find(function(n){\n return n.props.type === "form";\n });\n let filterFormValues = filterForm.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n Object.assign(changedFilterFormValues, treeFilterFormValues);\n // 同步__changedFilterFormValues中的值\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(__lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n filterForm.setData(treeFilterFormValues);\n filterForm.handleFormSubmit(event);\n '},{actionType:"custom",script:" if(window.innerWidth < 768){ document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open'); }"}]}},label:"",mode:"normal",name:"organizations",multiple:!1,joinValues:!1,clearValueOnHidden:!1,fieldName:"organizations",hideRoot:!0,initiallyOpen:!1,extractValue:!0,onlyChildren:!0,treeContainerClassName:"no-border",showIcon:!1,enableNodePath:!1,autoCheckChildren:!1,searchable:!0,searchConfig:{sticky:!0,placeholder:"查找部门"},unfoldedLevel:2,originPosition:"left-top"},n=[];return e?(n.push({type:"action",body:[{type:"action",body:[t],className:"h-full w-[240px]"}],className:"absolute inset-0 steedos-select-user-sidebar",onEvent:{click:{actions:[{actionType:"custom",script:"document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open')"}]}},id:"steedos_crud_toolbar_select_user_tree"}),n.push({type:"button",label:"组织",icon:"fa fa-sitemap",className:"bg-white p-2 rounded border-gray-300 text-gray-500",align:"left",onEvent:{click:{actions:[{actionType:"custom",script:"document.querySelector('.steedos-select-user-sidebar').classList.toggle('steedos-select-user-sidebar-open')"}]}},id:"steedos_crud_toolbar_organization_button"})):n.push(t),n}async function lookupToAmisPicker(e,t,n){let r=await getReferenceTo(e);if(!r)return;const o=await getUISchema(r.objectName);n.idFieldName=o.idFieldName,n.objectName=o.name;const a=!1!==e.show_left_filter;let i=[];const s=[];let l=[];const c=window.innerWidth<768;let u=getLookupListView(o),d=u&&u.name;u&&u.columns?(_$1__namespace.each(u.columns,(function(e){_$1__namespace.isString(e)&&o.fields[e]?l.push(o.fields[e]):_$1__namespace.isObject(e)&&o.fields[e.field]&&l.push(Object.assign({},o.fields[e.field],{width:e.width,wrap:e.wrap,amis:e.amis}))})),_$1__namespace.each(u.extra_columns||[],(function(e){_$1__namespace.isString(e)?l.push({extra:!0,name:e}):_$1__namespace.isObject(e)&&l.push({extra:!0,name:e.field})}))):(_$1__namespace.each(o.fields,((e,t)=>{"_id"==t||e.hidden||(_$1__namespace.has(e,"name")||(e.name=t),l.push(e))})),l=_$1__namespace.sortBy(l,"sort_no").slice(0,5)),_$1__namespace.each(l,(function(e){_$1__namespace.find(i,(function(t){return t.name===e.name}))||i.push(e)}));let f=e.auto_fill_mapping;f&&f.length&&f.forEach((function(e){_$1__namespace.find(i,(function(t){return t.name===e.from}))||i.push(o.fields[e.from])})),_$1__namespace.each(o.fields,(function(e){isFieldQuickSearchable(e,o.NAME_FIELD_KEY)&&s.push(e.name)}));const p={[r.labelField.name]:r.labelField,[r.valueField.name]:r.valueField};_$1__namespace.each(i,(e=>{e.hidden||(p[e.name]=e)}));let m=getListViewFilter(u),h=u&&u._filters,_="";u&&(_=getListViewSort(u));const g=await getApi(o,null,p,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});if(g.url&&!n.inFilterForm){const t=[],n=[];_$1__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(g.url=`${g.url}?${t.join("&")}`,g.sendOn=`${n.join(" && ")}`)}g.trackExpression=`\${${e.name}}`,g.data.$term="$term",g.data.$self="$$";let v=`__keywords_lookup__${e.name.replace(/\./g,"_")}__to__${o.name}`;const E=e.filter_form_data;g.requestAdaptor=`\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n let __lookupField = api.data.$self.__lookupField;\n if(__lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n let __changedFilterFormValues = api.data.$self[__changedFilterFormValuesKey] || {};\n let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};\n // 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:\n // 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索\n // 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。\n // 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。\n if(api.data.$self.op !== 'loadOptions'){\n Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);\n }\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n ${m&&!n.inFilterForm?`var filters = ${JSON.stringify(m)};`:"var filters = [];"}\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${_}";\n var allowSearchFields = ${JSON.stringify(s)};\n let fieldValue;\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [["${r.valueField.name}", "=", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [["${r.valueField.name}", "=", fieldValue]];\n }\n }\n\n let filterFormValues = {};\n if (selfData.op !== 'loadOptions'){\n filterFormValues = ${_$1__namespace.isObject(E)?JSON.stringify(E):'"'+E+'"'} || {};\n const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;\n if (isAmisFormula){\n filterFormValues = AmisCore.evaluate(filterFormValues, context) || {};\n }\n if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){\n let fields = api.data.$self.uiSchema && api.data.$self.uiSchema.fields;\n filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, selfData)) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(${"space_users"===r?.objectName} && ${"user"===e.reference_to_field}){\n if(filters.length > 0){\n filters = [ ["user_accepted", "=", true], "and", filters ]\n }else{\n filters = [["user_accepted", "=", true]];\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, "contains", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, "=", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.${v}, allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n filters.push(keywordsFilters);\n }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n var currentAmis = (window.amisRequire && window.amisRequire('amis')) || Amis;\n //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析\n function traverseNestedArray(arr) {\n for (let i = 0; i < arr.length; i++) {\n if (Array.isArray(arr[i])) {\n // 如果当前元素是数组,则递归调用自身继续遍历\n traverseNestedArray(arr[i]);\n } else {\n // 如果当前元素不是数组,则处理该元素\n // 下面正则用于匹配amis公式\${}\n if(/\\$\\{([^}]*)\\}/.test(arr[i])) {\n try{\n arr[i] = currentAmis.evaluate(arr[i], api.context);\n }catch(ex){\n console.error("运行lookup过滤公式时出现错误:",ex);\n }\n }\n }\n }\n }\n if(fieldFilters && fieldFilters.length){\n traverseNestedArray(fieldFilters);\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ${n.inFilterForm};\n\n const listviewFiltersFunction = ${h};\n\n if(listviewFiltersFunction && !inFilterForm){\n const _filters0 = listviewFiltersFunction(filters, api.data.$self.__super);\n if(_filters0 && _filters0.length){\n filters.push(_filters0);\n }\n }\n \n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ${o.enable_tree};\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `,g.adaptor=`\n const enable_tree = ${o.enable_tree};\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op不为空,表示处于字段初始编辑状态,不是点击后出现弹窗状态。\n // 这里不可以用_.pick函数让payload只返回labelField和valueField,因为字段上配置的amis autoFill功能可能依赖了其他字段\n /*\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, ["${r.labelField.name}", "${r.valueField.name}"]);\n })\n payload.data.rows = rows;\n */\n if(enable_tree){\n const rows = _.map(payload.data.rows, (item)=>{\n if (!item.children) {\n return { ...item, children: [] };\n } else {\n return item;\n }\n })\n payload.data.rows = rows;\n }\n return payload;\n }\n if(!payload.data.rows){\n payload.data.rows = [];\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }else{\n item.children = [];\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n const result = payload.data.rows;\n if(result && result.length){\n const updatedResult = _.map(result, (element) => {\n const data = { ...element };\n // image字段值添加URL前缀\n ${getScriptForAddUrlPrefixForImgFields(_$1__namespace.values(o.fields))}\n return data;\n });\n payload.data.rows = updatedResult;\n }\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n let __lookupField = api.data.$self.__lookupField;\n if(__lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n let __changedFilterFormValues = api.context[__changedFilterFormValuesKey] || {};\n let __changedSearchBoxValues = api.context.__changedSearchBoxValues || {};\n // 列表搜索和快速搜索,有时在某些操作情况下还是会造成crud接口请求使用的过滤条件是上次的,这里强制把正确的过滤条件返回到crud,详细规则见:https://github.com/steedos/steedos-platform/issues/7112\n payload.data[__changedFilterFormValuesKey] = __changedFilterFormValues;\n payload.data.__changedSearchBoxValues = __changedSearchBoxValues;\n return payload;\n `,(e.optionsFunction||e._optionsFunction)&&(g.adaptor=`\n payload.data.rows = eval(${e.optionsFunction||e._optionsFunction})(api.data.$self);\n return payload;\n `);let y=500;o.paging&&!1===o.paging.enabled&&(y=1e3);let b=null;{let t=o.NAME_FIELD_KEY||"name";"organizations"===o.name&&(t="name"),b=await getTableSchema$1(o,i,{labelFieldName:t,top:y,isLookup:!0,enable_tree:o.enable_tree,...n}),b.affixHeader=!1,b.headerToolbar=getObjectHeaderToolbar(o,l,n.formFactor,{isLookup:!0,keywordsSearchBoxName:v}),"space_users"===r.objectName&&"user"===e.reference_to_field&&a&&(b.headerToolbar.push(getLookupSapceUserTreeSchema(c)),b.className=b.className||" steedos-select-user");const s=o.permissions.allowCreate,u=!_$1__namespace.isBoolean(e.create)||e.create;let f=!_$1__namespace.isEmpty(e.filters)||!!e.filtersFunction||!!e._filtersFunction;if(s&&u&&!f){const e=await getSchema$5(o,{appId:n.appId,objectName:o.name,formFactor:n.formFactor});e.align="right",b.headerToolbar.splice(b.headerToolbar.length-1,0,e)}b.footerToolbar=o.enable_tree?[]:getObjectFooterToolbar(o,n.formFactor,{isLookup:!0}),!1!==n.filterVisible&&(b.filter=await getObjectFilter(o,p,{...n,isLookup:!0,keywordsSearchBoxName:v,searchable_fields:e.searchable_fields,auto_open_filter:e.auto_open_filter,show_left_filter:e.show_left_filter,filter_form_data:e.filter_form_data})),b.data=Object.assign({},b.data,{"&":"$$",objectName:o.name,uiSchema:o,listName:d,isLookup:!0,__lookupField:{name:e.name,reference_to:o.name,reference_to_field:e.reference_to_field,filters:e.filters,filtersFunction:e.filtersFunction,_filtersFunction:e._filtersFunction,inFilterForm:n.inFilterForm,listviewFilter:m,listviewFiltersFunction:h}}),b.onEvent||(b.onEvent={}),b.onEvent[`@data.changed.${o.name}`]={actions:[{actionType:"reload"},{actionType:"custom",script:`\n // lookup字段弹出列表,点击新建按钮,新建记录成功后,触发@data.changed.xxx,\n // 此时context.props.data值是lookup字段所在表单数据,经测试多层lookup弹出列表新建记录成功后context.props.data始终取的是最近一层的lookup字段所在表单数据,符合预期\n const masterRecord = context.props.data;//event.data._master && event.data._master.record;\n const fieldConfig = ${JSON.stringify(e)};\n let reference_to = fieldConfig.reference_to;\n let saveValue;\n const newRecord = {\n _id: event.data.result.data.recordId,\n ...event.data.__super.__super\n }\n const saveField = fieldConfig.reference_to_field || '_id';\n const saveFieldValue = newRecord[saveField];\n if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){\n \n const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};\n const baseSaveValue = {\n o: reference_to,\n ids: [saveFieldValue]\n };\n if(fieldValue && fieldValue.o){\n if(fieldValue.o === reference_to){\n saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;\n }else{\n saveValue = baseSaveValue;\n }\n }else{\n saveValue = baseSaveValue;\n }\n\n }else{\n if(fieldConfig.multiple){\n // const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];\n // 连续新建多个记录时,因为masterRecord获取的主记录不是实时的,所以只会勾选最后一个新建的记录\n // 而下面context.context.component指向的是lookup picker组件,可以直接取到用户实时勾选的记录。\n const fieldValue = context.context.component.props.store.toJSON().selectedItems\n saveValue = fieldValue.concat(saveFieldValue);\n }else{\n saveValue = saveFieldValue;\n }\n }\n \n const ctx = ${JSON.stringify(n)};\n const componentId = ctx.defaults && ctx.defaults.formSchema && ctx.defaults.formSchema.id;\n doAction({\n actionType: 'setValue',\n componentId: componentId, \n args: {\n value: { [fieldConfig.name]: saveValue }\n }\n });\n `}]}}e.pickerSchema&&(b=Object.assign({},b,e.pickerSchema)),"space_users"===r.objectName&&"user"===e.reference_to_field&&c&&(b.headerToolbar=b.headerToolbar&&b.headerToolbar.filter((function(e){return["steedos_crud_toolbar_quick_search","steedos_crud_toolbar_filter","steedos_crud_toolbar_select_user_tree","steedos_crud_toolbar_organization_button"].indexOf(e.id)>-1})),b.footerToolbar=["pagination"]),e.inlineHelpText&&(b.toolbarClassName="hasHelpText",b.headerToolbar=[{type:"tpl",tpl:e.inlineHelpText,className:"text-secondary"},...b.headerToolbar]),b.className=(b.className||"")+" steedos-lookup-crud";const C={type:getAmisStaticFieldType("picker",t),className:n.className||"",modalTitle:instance.t("frontend_form_please_select")+" "+o.label,labelField:r.labelField.name,valueField:r.valueField.name,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || ((this.relatedKey ==='${e.name}') && (${e.multiple} != true)) )`,modalMode:"dialog",source:g,size:"lg",pickerSchema:b,joinValues:!1,extractValue:!0};return e.multiple&&(C.multiple=!0,C.extractValue=!0),t&&(C.tpl=await getLookupTpl(e,n)),C}async function lookupToAmisSelect(e,t,n){let r=await getReferenceTo(e);const o=window.innerWidth<=768,a=r&&r.valueField?.name||"_id";let i,s;const l=r&&await getUISchema(r.objectName);if(r){let t=[Object.assign({},r.labelField,{alias:"label"}),Object.assign({},r.valueField,{alias:"value"})],n=e.auto_fill_mapping;n&&n.length&&n.forEach((function(e){t.push(l.fields[e.from])})),s=await getFindQuery({name:r.objectName},null,t,{expand:!1,alias:"defaultValueOptions",filters:"{__options_filters}",count:!1}),i=await getApi({name:r.objectName},null,t,{expand:!1,alias:"options",queryOptions:'filters: {__filters}, top: {__top}, sort: "{__sort}"'}),i.adaptor='\n const data = payload.data;\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(defaultValueOptions, data.options, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data.options = data.options;\n return payload;\n '}else i={method:"post",data:{$:"$$",query:""},url:"/api/amis/health_check?reload=${additionalFilters|join}&listName=${listName}"};let c=getLookupListView(l),u=getListViewFilter(c),d=c&&c._filters,f="";if(c&&(f=getListViewSort(c)),i.url&&!n.inFilterForm){const t=[],n=[];_$1__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(i.url=`${i.url}&${t.join("&")}`,i.sendOn=`${n.join(" && ")}`)}i.data.$term="$term",i.data.$value=n.isRefToMutiple?`$${e.name}.ids`:`$${e.name}`,_$1__namespace.each(e.depend_on,(function(e){i.data[e]=`$${e}`})),i.data.$="$$",i.data.rfield="${object_name}",i.requestAdaptor=`\n ${u&&!n.inFilterForm?`var filters = ${JSON.stringify(u)};`:"var filters = [];"}\n var top = 200;\n if(api.data.$term){\n filters = [["${r?.NAME_FIELD_KEY||"name"}", "contains", api.data.$term]];\n }\n // else if(api.data.$value){\n // filters = [["_id", "=", api.data.$value]];\n // }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n var currentAmis = (window.amisRequire && window.amisRequire('amis')) || Amis;\n //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析\n function traverseNestedArray(arr) {\n for (let i = 0; i < arr.length; i++) {\n if (Array.isArray(arr[i])) {\n // 如果当前元素是数组,则递归调用自身继续遍历\n traverseNestedArray(arr[i]);\n } else {\n // 如果当前元素不是数组,则处理该元素\n // 下面正则用于匹配amis公式\${}\n if(/\\$\\{([^}]*)\\}/.test(arr[i])) {\n try{\n arr[i] = currentAmis.evaluate(arr[i], api.context);\n }catch(ex){\n console.error("运行lookup过滤公式时出现错误:",ex);\n }\n }\n }\n }\n }\n if(fieldFilters && fieldFilters.length){\n traverseNestedArray(fieldFilters);\n filters.push(fieldFilters);\n }\n\n if(${"space_users"===r?.objectName} && ${"user"===e.reference_to_field}){\n if(filters.length > 0){\n filters = [ ["user_accepted", "=", true], "and", filters ]\n }else{\n filters = [["user_accepted", "=", true]];\n }\n }\n\n const inFilterForm = ${n.inFilterForm};\n\n const listviewFiltersFunction = ${d};\n\n if(listviewFiltersFunction && !inFilterForm){\n const _filters0 = listviewFiltersFunction(filters, api.data.$);\n if(_filters0 && _filters0.length){\n filters.push(_filters0);\n }\n }\n \n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = "${f}";\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', top).replace('{__sort}', sort.trim());\n\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${a}", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n const defaultValueOptionsQueryData = ${JSON.stringify(s)};\n const defaultValueOptionsQuery = defaultValueOptionsQueryData && defaultValueOptionsQueryData.query && defaultValueOptionsQueryData.query.replace(/^{/,"").replace(/}$/,"");\n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [["${a}", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n if(defaultValueOptionsQuery){\n api.data.query = "{"+api.data.query.replace(/^{/,"").replace(/}$/,"")+","+defaultValueOptionsQuery+"}";\n } \n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,r&&r.labelField.name,r&&r.valueField.name,e.optionsFunction||e._optionsFunction?i.adaptor=`\n var options = eval(${e.optionsFunction||e._optionsFunction})(api.data.$);\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `:e.options&&(i.adaptor=`\n var options = ${JSON.stringify(e.options)}\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `);const p={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,clearable:!0,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || ((this.relatedKey ==='${e.name}') && (${e.multiple} != true)) )`,autoComplete:i,searchable:!0};getComparableAmisVersion()>=3.6&&(p.source=i,delete p.autoComplete);return o&&e.multiple||(p.menuTpl="${icon ? `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>` : label}"),e.multiple&&(p.multiple=!0,p.extractValue=!0),t&&(p.tpl=await getLookupTpl(e,n)),p}async function getApi(e,t,n,r){const o=await getFindQuery(e,t,n,r);return{method:"post",url:getApi$2(),data:o,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getAutoFill(e,t){let n=e.auto_fill_mapping;if(n&&n.length){let r={};return e.multiple?n.forEach((function(e){_$1__namespace.includes(["lookup","master_detail","select"],t.fields[e.from].type)?r[e.to]=`\${items | pick:${e.from}}`:r[e.to]=`\${items | pick:${e.from} | join}`})):n.forEach((function(e){r[e.to]=`\${${e.from}}`})),r}}async function lookupToAmis(e,t,n){if(n||(n={}),t)return e.reference_to&&!e.isTableField?{type:"steedos-field",config:e,static:!0}:{type:getAmisStaticFieldType("picker",t),tpl:getRelatedFieldTpl(e,n)};if(e.reference_to&&!_$1__namespace.isString(e.reference_to)&&!t)return{type:"steedos-field-lookup",field:e,readonly:t,ctx:n};let r=await getReferenceTo(e);if(!r)return await lookupToAmisSelect(e,t,n);if("space_users"===r.objectName&&"user"===e.reference_to_field&&(n=Object.assign({},n,{onlyDisplayLookLabel:!0})).idsDependOn)return await lookupToAmisIdsPicker(e,t,n);const o=await getUISchema(r.objectName);let a,i=_$1__namespace.isBoolean(e.enable_enhanced_lookup)?e.enable_enhanced_lookup:o.enable_enhanced_lookup;getComparableAmisVersion()>=3.6&&!i&&o.enable_tree&&e.multiple&&(i=!0),1==i&&e.amis&&e.amis.type&&"picker"!==e.amis.type&&(i=!1),a=1==i?await lookupToAmisPicker(e,t,n):o.enable_tree?await lookupToAmisTreeSelect(e,t,Object.assign({},n,{labelField:r.labelField?.name||"name",valueField:r.valueField?.name||"_id",objectName:r.objectName})):await lookupToAmisSelect(e,t,n);let s=o.pages&&o.pages.lookup;if(s&&s.is_enable){let e=s.amis_schema;"string"==typeof e&&(e=JSON.parse(e)),a=_$1__namespace.defaultsDeep({},e,a)}const l=await getAutoFill(e,o);return l&&(a.autoFill=l),a}async function lookupToAmisIdsPicker(e,t,n){return getIdsPickerSchema(e,t,n)}async function getIdsPickerSchema(e,t,n){n||(n={});let r=await getReferenceTo(e);if(!r)return;const o=await getUISchema(r.objectName),{idsDependOn:a}=n,i={[r.labelField.name]:r.labelField,[r.valueField.name]:r.valueField},s=[r.labelField],l=await getApi(o,null,i,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});l.data.$term="$term",l.data.$self="$$",a&&l.url&&!n.inFilterForm&&(l.sendOn=`\${${a} && ${a}.length}`,l.url=`${l.url}&depend_on_${a}=\${${a}|join}`);let c=getLookupListView(o),u="";c&&(u=getListViewSort(c)),l.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 1000;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${u}";\n if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n filters = [["${r.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${r.valueField.name}", "=", selfData.value]];\n }\n }\n\n var ids;\n var idsDependOn = "${a}";\n if(idsDependOn){\n ids = api.data.$self[idsDependOn];\n }\n if(ids && ids.length){\n filters.push(["${r.valueField.name}", "=", ids]);\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `;let d=null;"SMALL"===n.formFactor?d=await getListSchema$1(s,{top:1e3,...n,actions:!1}):(d=await getTableSchema$1(o,s,{labelFieldName:o.NAME_FIELD_KEY,top:1e3,isLookup:!0,...n}),d.affixHeader=!1);const f={type:getAmisStaticFieldType("picker",t),labelField:r.labelField.name,valueField:r.valueField.name,modalMode:"dialog",source:l,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || ((this.relatedKey ==='${e.name}') && (${e.multiple} != true)) )`,size:"lg",pickerSchema:d,joinValues:!1,extractValue:!0};return e.multiple&&(f.multiple=!0,f.extractValue=!0),n.value&&(f.value=n.value),null!=n.selectFirst&&(f.selectFirst=n.selectFirst),t&&(f.tpl=await getLookupTpl(e,n)),f}"undefined"!=typeof window&&(window.getReferenceTo=getReferenceTo,window.getReferenceToSync=getReferenceToSync);const getMarkdownFieldSchema=(e,t,n)=>t?{type:"control",label:e.label,body:{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}}:{type:"control",label:e.label,body:[{type:"tabs",tabsMode:"strong",className:"steedos-markdown",tabs:[{title:instance.t("frontend_form_edit"),tab:[{type:"editor",name:e.name,labelClassName:"none",language:"markdown",options:e.amis?e.amis.editorOptions:null}]},{title:instance.t("frontend_form_preview"),tab:[{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}]}]}]},getHtmlFieldSchema=(e,t,n)=>t?{type:"input-rich-text",receiver:"${context.rootUrl}/s3/images",name:e.name,options:{plugins:["autoresize"],statusbar:!1,readonly:!0,toolbar:!1,menubar:!1}}:{type:"input-rich-text",receiver:"${context.rootUrl}/s3/images",options:{statusbar:!1,menubar:!1},name:e.name},QUICK_SEARCHABLE_FIELD_TYPES=["text","textarea","autonumber","url","email"],OMIT_FIELDS=["created","created_by","modified","modified_by"];function getObjectFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),r=_$1__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`)&&_$1__namespace.split(t.name,".").length<3;return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=r,n}function getGridFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),r=_$1__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=r,n}function getTabledFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),r=_$1__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=r,n}function getSelectFieldOptions(e){const t=e.data_type||"text",n=[];return _$1__namespace.each(e.options,(e=>{switch(t){case"number":n.push({label:e.label,value:Number(e.value),icon:e.icon});break;case"text":n.push({label:e.label,value:String(e.value),icon:e.icon});break;case"boolean":n.push({label:e.label,value:"false"!==e.value,icon:e.icon})}})),n}async function convertSFieldToAmisField(e,t,n){const r=window.innerWidth<=768;if(_$1__namespace.includes(OMIT_FIELDS,e.name)&&1!=n.showSystemFields)return;const o={name:n.fieldNamePrefix?`${n.fieldNamePrefix}${e.name}`:e.name,label:e.label,labelRemark:e.inlineHelpText,description:e.description,required:_$1__namespace.has(n,"required")?n.required:e.required};let a={};switch(e.type){case"text":a.type=getAmisStaticFieldType("text",t,e);break;case"textarea":a.type=getAmisStaticFieldType("textarea",t),a.tpl=`<%=(data.${e.name} || "").split("\\n").join('<br>')%>`;break;case"html":a=getHtmlFieldSchema(e,t);break;case"markdown":a=getMarkdownFieldSchema(e,t);break;case"select":if(t){const t=getSelectMap(e.options);a={type:"static-mapping",name:e.name,label:e.label,options:e.options,map:t}}else{a={type:getAmisStaticFieldType("select",t),joinValues:!1,options:getSelectFieldOptions(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value"};const n="${icon ? `"+"<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>"+"` : label}";r&&e.multiple||(a.menuTpl=n),e.multiple&&(a.multiple=!0,a.extractValue=!0)}break;case"color":a={type:getAmisStaticFieldType("color",t),name:e.name,label:e.label},t?a.defaultColor=null:a.pipeIn=(e,t)=>e&&e.indexOf("#")<0?"#"+e:e;break;case"boolean":a={type:getAmisStaticFieldType("checkbox",t),tpl:t?getSwitchTpl(e):null};break;case"input-date-range":a={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null,joinValues:!1,shortcuts:["thismonth","2monthsago","3monthslater","prevquarter","thisquarter","thisyear","lastYear"]};break;case"date":a={type:getAmisStaticFieldType("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null};break;case"input-datetime-range":a={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0,joinValues:!1,shortcuts:["thismonth","2monthsago","3monthslater","prevquarter","thisquarter","thisyear","lastYear"]};break;case"datetime":a={type:getAmisStaticFieldType("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:00.000Z",tpl:t?getDateTimeTpl(e):null,utc:!0};break;case"input-time-range":a={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null,joinValues:!1};break;case"time":a={type:getAmisStaticFieldType("time",t),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null};break;case"currency":case"number":a=t?{type:"static-tpl",tpl:getNumberTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":a=Object.assign({},e,o);break;case"input-range":a={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":a=t?{type:"static-progress",name:"progress",pipeIn:(t,n)=>{if(t){return Number((100*t).toFixed(e.scale))}return t}}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale,suffix:"%",pipeIn:(t,n)=>{if(t){return Number((100*t).toFixed(e.scale))}return t},pipeOut:(t,n,r)=>{if(t){return Number((t/100).toFixed(e.scale+2))}return t}};break;case"password":a={type:getAmisStaticFieldType("password",t),tpl:t?getPasswordTpl(e):null};break;case"lookup":case"master_detail":a=await lookupToAmis(e,t,n);break;case"autonumber":t?a={type:"static-text"}:e.autonumber_enable_modify&&(a={type:"input-group",body:[{type:"input-text",name:e.name},{type:"button",label:"自动获取",actionType:"ajax",api:{url:`\${context.rootUrl}/api/autonumber/generator/\${objectName}/${e.name}`,method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:`\n var tempValue = payload.data && payload.data.autonumber;\n delete payload.data.autonumber;\n payload.data["${e.name}"] = tempValue;\n return payload;\n `},messages:{success:"获取成功"}}]});break;case"url":if(a={type:getAmisStaticFieldType("url",t,e),static:!!t},!t){let t=e.amis?.validations;void 0===t&&Object.assign(a,{validations:{matchRegexp:"^((http:\\/\\/|https:\\/\\/|ftp:\\/\\/|sftp:\\/\\/)+([^\\s\\/\\.]+(\\.[^\\s\\/\\.]+)+))*(\\/[^\\s\\.\\/]+)*$"},validationErrors:{matchRegexp:instance.t("frontend_form_validation_failed_url")}})}t&&e.show_as_qr&&(a={type:"control",label:e.label,body:{type:"qr-code",codeSize:128,name:e.name}});break;case"email":a={type:getAmisStaticFieldType("email",t)};break;case"location":let i="LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7",s="baidu";if(window.Meteor){const e=Meteor.settings?.public?.amis?.map_ak;e&&(i=e);const t=Meteor.settings?.public?.amis?.map_vendor;t&&(s=t)}const l=e.coordinatesType||"bd09";a={type:getAmisStaticFieldType("location",t),tpl:t?getLocationTpl(e):null,ak:i,vendor:s,clearable:!0,coordinatesType:l,label:e.label,pipeOut:(e,t,n)=>{if(e){const t=e.lng,n=e.lat;let r=[t,n];if(window.coordtransform)if("bd09"===l.toLowerCase()){const e=window.coordtransform.bd09togcj02(t,n);r=window.coordtransform.gcj02towgs84(e[0],e[1])}else"gcj02"===l.toLowerCase()&&(r=window.coordtransform.gcj02towgs84(t,n));return e.wgs84={type:"Point",coordinates:r},e}}};break;case"avatar":case"image":case"file":a=await getAmisFileSchema(e,t,n);break;case"formula":case"summary":t&&(a={type:"static-tpl",tpl:getUiFieldTpl(e)});break;case"code":a={type:"editor",disabled:!!t,language:e.language,editorDidMount:new Function("editor","monaco",e.editorDidMount)};break;case"toggle":a={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":if(e.subFields){a={type:"input-table",showIndex:!0,columnsTogglable:!1,strictMode:!1,affixHeader:!1,needConfirm:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]};for(const r of e.subFields){const o=r.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,""),i=await convertSFieldToAmisField(Object.assign({},r,{name:o,isTableField:!0}),t,n);if(i){delete i.name,delete i.label;const e={name:o,label:r.label,quickEdit:!t&&i};["lookup","boolean","toggle"].indexOf(r.type)>-1&&(e.type=i.type,e.tpl=i.tpl),a.columns.push(Object.assign({},e,r.amis,{name:o}))}}}break;case"table":if(e.subFields){a={type:"steedos-input-table",editable:!t,addable:!t,removable:!t,fields:[],amis:{columnsTogglable:!1}};for(const t of e.subFields)if(!t.name.endsWith(".$")){const n=t.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,"");a.fields.push(Object.assign({},t,{name:n}))}}break;case"object":if(e.subFields){a={type:"combo",items:[]};for(let r of e.subFields){let o=r.name.replace(`${e.name}.$.`,"").replace(`${e.name}.`,"");"grid"===r.type?r=await getGridFieldSubFields(r,n.__formFields):"table"===r.type?r=await getTabledFieldSubFields(r,n.__formFields):t&&(o=`${e.name}.${o}`);const i=await convertSFieldToAmisField(Object.assign({},r,{name:o}),t,n);i&&(delete i.name,delete i.label,i.className=i.className.replace("border-b",""),a.items.push(Object.assign({},i,{label:r.label},r.amis,{name:o})))}}}if(!_$1__namespace.isEmpty(a)){const r=a.className;e.is_wide||"group"===a.type?a.className=r?"col-span-2 m-0 "+r:"col-span-2 m-0":a.className=r?"m-0 "+r:"m-0",t&&"edit"!==n.mode&&(a.className=`${a.className} border-b`),t&&(a.quickEdit=!1,a.static=!0);let i,s=" steedos-"+a.type+(t?"-readonly":"-edit");return a.className=a.className+s,e.visible_on&&!n.inFilterForm&&(e.visible_on.startsWith("{{")?a.visibleOn=`${e.visible_on.substring(2,e.visible_on.length-2).replace(/formData./g,"data.")}`:a.visibleOn=`${e.visible_on.replace(/formData./g,"data.")}`),n.amisData&&n.amisData._master&&n.amisData._master.relatedKey===e.name&&(a.className=`${a.className||""} hidden`),_$1__namespace.isString(o.required)&&o.required.startsWith("{{")&&(o.requiredOn=`${o.required.substring(2,o.required.length-2).replace(/formData./g,"data.")}`,delete o.required),"group"===a.type?(a.body[0]=Object.assign({},o,a.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),a):(i="steedos-field"==a.type?Object.assign({},o,a,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},{name:o.name}):Object.assign({},o,a,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:o.name}),t&&"file"==e.type&&(i.name=""),i)}}async function getFieldSearchable(e,t,n){n||(n={});let r=e;"grid"===r.type?r=await getGridFieldSubFields(e,t):"object"===e.type&&(r=await getObjectFieldSubFields(e,t));let o="__searchable__";if(r.name.indexOf(".")<0){let e=_$1.cloneDeep(r);_$1.includes(["textarea","html","code","autonumber"],r.type)&&(e.type="text"),_$1.includes(["formula","summary"],r.type)&&(e.type=r.data_type,e.precision=r.precision,e.scale=r.scale),"number"!==e.type&&"currency"!==e.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number",clearValueOnEmpty:!0},e.is_wide=!0,o=`${o}between__`),"date"===e.type&&(e.type="input-date-range",e.is_wide=!0,o=`${o}between__`),"datetime"===e.type&&(e.type="input-datetime-range",e.is_wide=!0,o=`${o}between__`),"time"===e.type&&(e.type="input-time-range",e.is_wide=!0,o=`${o}between__`),"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0,e.required=!1,e.hidden=!1,e.omit=!1,e.amis&&(delete e.amis.static,delete e.amis.staticOn,delete e.amis.disabled,delete e.amis.disabledOn,delete e.amis.required,delete e.amis.requiredOn,delete e.amis.visible,delete e.amis.visibleOn,delete e.amis.hidden,delete e.amis.hiddenOn,delete e.amis.autoFill,(e.type.indexOf("-range")>-1||"input-array"===e.type)&&delete e.amis.type);const t=await convertSFieldToAmisField(e,!1,Object.assign({},n,{fieldNamePrefix:o,required:!1,showSystemFields:!0,inFilterForm:!0}));if(t)return t}}function isFieldTypeSearchable(e){return!_$1__namespace.includes(["grid","table","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],e)}function isFieldQuickSearchable(e,t){let n=e.searchable;return!1!==n&&e.name===t&&(n=!0),!!(n&&QUICK_SEARCHABLE_FIELD_TYPES.indexOf(e.type)>-1)}function Inbox(e){var t=e.className,n=e.onClick,r=__rest(e,["className","onClick"]),o=useInboxNotificationsSuspense().inboxNotifications;return 0===o.length?React__default.default.createElement("div",{className:clsx(t,"empty")},instance.t("liveblocks:frontend_inbox_empty")):React__default.default.createElement("div",__assign({className:t},r),React__default.default.createElement(InboxNotificationList,{className:"inbox-list"},o.map((function(e){return React__default.default.createElement(InboxNotification,{key:e.id,inboxNotification:e,onClick:n})}))))}function InboxPopoverUnreadCount(){var e=useUnreadInboxNotificationsCountSuspense().count;return e?React__default.default.createElement("div",{className:"inbox-unread-count"},e):null}function AmisInboxPopover(e){var t=e.className,n=__rest(e,["className"]),r=__read(React.useState(!1),2),o=r[0],a=r[1],i=useMarkAllInboxNotificationsAsRead(),s=useDeleteAllInboxNotifications();return React__default.default.createElement(Root2$1,{open:o,onOpenChange:a},React__default.default.createElement(Trigger,{className:clsx(t,"inbox-button square")},React__default.default.createElement(ErrorBoundary,{fallback:null},React__default.default.createElement(ClientSideSuspense,{fallback:null},React__default.default.createElement(InboxPopoverUnreadCount,null))),React__default.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",width:"20",height:"20"},React__default.default.createElement("path",{"fill-rule":"evenodd",d:"M12 2.25c-2.429 0-4.817.178-7.152.521C2.87 3.061 1.5 4.795 1.5 6.741v6.018c0 1.946 1.37 3.68 3.348 3.97.877.129 1.761.234 2.652.316V21a.75.75 0 0 0 1.28.53l4.184-4.183a.39.39 0 0 1 .266-.112c2.006-.05 3.982-.22 5.922-.506 1.978-.29 3.348-2.023 3.348-3.97V6.741c0-1.947-1.37-3.68-3.348-3.97A49.145 49.145 0 0 0 12 2.25ZM8.25 8.625a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25Zm2.625 1.125a1.125 1.125 0 1 1 2.25 0 1.125 1.125 0 0 1-2.25 0Zm4.875-1.125a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25Z","clip-rule":"evenodd"}))),React__default.default.createElement(Portal$1,null,React__default.default.createElement(Content2$2,__assign({className:"inbox",collisionPadding:16,sideOffset:8},n),React__default.default.createElement("div",{className:"inbox-header"},React__default.default.createElement("span",{className:"inbox-title"},instance.t("liveblocks:frontend_comment_inbox")),React__default.default.createElement("div",{className:"inbox-buttons"},React__default.default.createElement("button",{className:"inbox-button",onClick:i},instance.t("liveblocks:frontend_mark_all_read")),React__default.default.createElement("button",{className:"inbox-button destructive",onClick:s},instance.t("liveblocks:frontend_delete_all")))),React__default.default.createElement(ErrorBoundary,{fallback:React__default.default.createElement("div",{className:"error"},instance.t("liveblocks:frontend_fallback_error"))},React__default.default.createElement(ClientSideSuspense,{fallback:React__default.default.createElement(Loading,null)},React__default.default.createElement(Inbox,{onClick:function(e){console.log("clicked"),a(!1)}}))))))}"undefined"!=typeof window&&(window.getFieldSearchable=getFieldSearchable),"undefined"!=typeof window&&(window.isFieldTypeSearchable=isFieldTypeSearchable),instance.addResources("en-US","liveblocks",en_us$1),instance.addResources("zh-CN","liveblocks",zh_cn$1);var AmisRoomsProvider=function(e){var t,n=e.data,r=e.baseUrl,o=e.children,a=e.body,i=e.render,s=__read(React.useState(null),2),l=s[0],c=s[1],u=r||(null===(t=n.context)||void 0===t?void 0:t.rootUrl)||"".concat(window.location.protocol,"//").concat(window.location.host);console.log("liveblocks baseUrl:",u);var d=useTranslation(),f=d.i18n;d.t;var p=f.language,m=instance.getResourceBundle(p,"liveblocks")||{},h=__assign({locale:p},m),_=h.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented||"commented",g=h.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in||"in",v=h.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread||"in a thread";return h.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST=function(e,t){return React__default.default.createElement(React__default.default.Fragment,null,e," ",_,t?React__default.default.createElement(React__default.default.Fragment,null," ",g," ",t):React__default.default.createElement(React__default.default.Fragment,null," ",v))},React__default.default.createElement(LiveblocksUIConfig,{overrides:h},React__default.default.createElement(LiveblocksProvider,{baseUrl:u,authEndpoint:function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,n,r,o,a,i;return __generator(this,(function(s){switch(s.label){case 0:return t="".concat(u,"/v2/c/auth"),n={"Content-Type":"application/json"},r=localStorage.getItem("steedos:authToken"),(o=localStorage.getItem("steedos:spaceId"))&&r&&(n.Authorization="Bearer ".concat(o,",").concat(r)),a=JSON.stringify({room:e}),[4,fetch(t,{method:"POST",headers:n,body:a,credentials:"include"})];case 1:return[4,s.sent().json()];case 2:return i=s.sent(),c(i.token),[2,i]}}))}))},resolveRoomsInfo:function(e){var t=e.roomIds;return __awaiter(void 0,void 0,void 0,(function(){var e,n;return __generator(this,(function(r){switch(r.label){case 0:return e=new URLSearchParams(t.map((function(e){return["roomIds",e]}))),[4,fetch("".concat(u,"/v2/c/rooms?").concat(e),{headers:{Authorization:"Bearer ".concat(l)}})];case 1:if(!(n=r.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_rooms_info_error"));return[4,n.json()];case 2:return[2,r.sent()]}}))}))},resolveUsers:function(e){var t=e.userIds;return __awaiter(void 0,void 0,void 0,(function(){var e,n;return __generator(this,(function(r){switch(r.label){case 0:return e=new URLSearchParams(t.map((function(e){return["userIds",e]}))),[4,fetch("".concat(u,"/v2/c/users?").concat(e),{headers:{Authorization:"Bearer ".concat(l)}})];case 1:if(!(n=r.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_users_error"));return[4,n.json()];case 2:return[2,r.sent()]}}))}))},resolveMentionSuggestions:function(e){var t=e.text,n=void 0===t?"":t;return __awaiter(void 0,void 0,void 0,(function(){var e;return __generator(this,(function(t){switch(t.label){case 0:return[4,fetch("".concat(u,"/v2/c/users/search?keyword=").concat(encodeURIComponent(n)),{headers:{Authorization:"Bearer ".concat(l)}})];case 1:if(!(e=t.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_mention_suggestions_error"));return[4,e.json()];case 2:return[2,t.sent()]}}))}))}},a&&i("body",a,{}),o))};exports.AmisComments=AmisComments,exports.AmisInboxPopover=AmisInboxPopover,exports.AmisRoomsProvider=AmisRoomsProvider,exports.Threads=Threads,Object.defineProperty(exports,"__esModule",{value:!0})}));
7
+ */function isObject$4(e){return"[object Object]"===Object.prototype.toString.call(e)}function isPlainObject$1(e){var t,n;return!1!==isObject$4(e)&&(void 0===(t=e.constructor)||!1!==isObject$4(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf"))}var NOTHING=Symbol.for("immer-nothing"),DRAFTABLE=Symbol.for("immer-draftable"),DRAFT_STATE=Symbol.for("immer-state");function die(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var getPrototypeOf=Object.getPrototypeOf;function isDraft(e){return!!e&&!!e[DRAFT_STATE]}function isDraftable(e){return!!e&&(isPlainObject(e)||Array.isArray(e)||!!e[DRAFTABLE]||!!e.constructor?.[DRAFTABLE]||isMap(e)||isSet(e))}var objectCtorString=Object.prototype.constructor.toString();function isPlainObject(e){if(!e||"object"!=typeof e)return!1;const t=getPrototypeOf(e);if(null===t)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return n===Object||"function"==typeof n&&Function.toString.call(n)===objectCtorString}function each(e,t){0===getArchtype(e)?Reflect.ownKeys(e).forEach((n=>{t(n,e[n],e)})):e.forEach(((n,r)=>t(r,n,e)))}function getArchtype(e){const t=e[DRAFT_STATE];return t?t.type_:Array.isArray(e)?1:isMap(e)?2:isSet(e)?3:0}function has(e,t){return 2===getArchtype(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function set(e,t,n){const r=getArchtype(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n}function is(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function isMap(e){return e instanceof Map}function isSet(e){return e instanceof Set}function latest(e){return e.copy_||e.base_}function shallowCopy(e,t){if(isMap(e))return new Map(e);if(isSet(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=isPlainObject(e);if(!0===t||"class_only"===t&&!n){const t=Object.getOwnPropertyDescriptors(e);delete t[DRAFT_STATE];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){const o=n[r],a=t[o];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[o]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[o]})}return Object.create(getPrototypeOf(e),t)}{const t=getPrototypeOf(e);if(null!==t&&n)return{...e};const r=Object.create(t);return Object.assign(r,e)}}function freeze$1(e,t=!1){return isFrozen(e)||isDraft(e)||!isDraftable(e)||(getArchtype(e)>1&&(e.set=e.add=e.clear=e.delete=dontMutateFrozenCollections),Object.freeze(e),t&&Object.entries(e).forEach((([e,t])=>freeze$1(t,!0)))),e}function dontMutateFrozenCollections(){die(2)}function isFrozen(e){return Object.isFrozen(e)}var plugins={},currentScope;function getPlugin(e){const t=plugins[e];return t||die(0,e),t}function getCurrentScope(){return currentScope}function createScope(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function usePatchesInScope(e,t){t&&(getPlugin("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function revokeScope(e){leaveScope(e),e.drafts_.forEach(revokeDraft),e.drafts_=null}function leaveScope(e){e===currentScope&&(currentScope=e.parent_)}function enterScope(e){return currentScope=createScope(currentScope,e)}function revokeDraft(e){const t=e[DRAFT_STATE];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function processResult(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return void 0!==e&&e!==n?(n[DRAFT_STATE].modified_&&(revokeScope(t),die(4)),isDraftable(e)&&(e=finalize(t,e),t.parent_||maybeFreeze(t,e)),t.patches_&&getPlugin("Patches").generateReplacementPatches_(n[DRAFT_STATE].base_,e,t.patches_,t.inversePatches_)):e=finalize(t,n,[]),revokeScope(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==NOTHING?e:void 0}function finalize(e,t,n){if(isFrozen(t))return t;const r=t[DRAFT_STATE];if(!r)return each(t,((o,a)=>finalizeProperty(e,r,t,o,a,n))),t;if(r.scope_!==e)return t;if(!r.modified_)return maybeFreeze(e,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const t=r.copy_;let o=t,a=!1;3===r.type_&&(o=new Set(t),t.clear(),a=!0),each(o,((o,i)=>finalizeProperty(e,r,t,o,i,n,a))),maybeFreeze(e,t,!1),n&&e.patches_&&getPlugin("Patches").generatePatches_(r,n,e.patches_,e.inversePatches_)}return r.copy_}function finalizeProperty(e,t,n,r,o,a,i){if(isDraft(o)){const i=finalize(e,o,a&&t&&3!==t.type_&&!has(t.assigned_,r)?a.concat(r):void 0);if(set(n,r,i),!isDraft(i))return;e.canAutoFreeze_=!1}else i&&n.add(o);if(isDraftable(o)&&!isFrozen(o)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;finalize(e,o),t&&t.scope_.parent_||"symbol"==typeof r||!Object.prototype.propertyIsEnumerable.call(n,r)||maybeFreeze(e,o)}}function maybeFreeze(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&freeze$1(t,n)}function createProxyProxy(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:getCurrentScope(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let o=r,a=objectTraps;n&&(o=[r],a=arrayTraps);const{revoke:i,proxy:s}=Proxy.revocable(o,a);return r.draft_=s,r.revoke_=i,s}var objectTraps={get(e,t){if(t===DRAFT_STATE)return e;const n=latest(e);if(!has(n,t))return readPropFromProto(e,n,t);const r=n[t];return e.finalized_||!isDraftable(r)?r:r===peek(e.base_,t)?(prepareCopy(e),e.copy_[t]=createProxy(r,e)):r},has:(e,t)=>t in latest(e),ownKeys:e=>Reflect.ownKeys(latest(e)),set(e,t,n){const r=getDescriptorFromProto(latest(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const r=peek(latest(e),t),o=r?.[DRAFT_STATE];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(is(n,r)&&(void 0!==n||has(e.base_,t)))return!0;prepareCopy(e),markChanged(e)}return e.copy_[t]===n&&(void 0!==n||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty:(e,t)=>(void 0!==peek(e.base_,t)||t in e.base_?(e.assigned_[t]=!1,prepareCopy(e),markChanged(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const n=latest(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:r.enumerable,value:n[t]}:r},defineProperty(){die(11)},getPrototypeOf:e=>getPrototypeOf(e.base_),setPrototypeOf(){die(12)}},arrayTraps={};function peek(e,t){const n=e[DRAFT_STATE];return(n?latest(n):e)[t]}function readPropFromProto(e,t,n){const r=getDescriptorFromProto(t,n);return r?"value"in r?r.value:r.get?.call(e.draft_):void 0}function getDescriptorFromProto(e,t){if(!(t in e))return;let n=getPrototypeOf(e);for(;n;){const e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=getPrototypeOf(n)}}function markChanged(e){e.modified_||(e.modified_=!0,e.parent_&&markChanged(e.parent_))}function prepareCopy(e){e.copy_||(e.copy_=shallowCopy(e.base_,e.scope_.immer_.useStrictShallowCopy_))}each(objectTraps,((e,t)=>{arrayTraps[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),arrayTraps.deleteProperty=function(e,t){return arrayTraps.set.call(this,e,t,void 0)},arrayTraps.set=function(e,t,n){return objectTraps.set.call(this,e[0],t,n,e[0])};var Immer2=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(e,t,n)=>{if("function"==typeof e&&"function"!=typeof t){const n=t;t=e;const r=this;return function(e=n,...o){return r.produce(e,(e=>t.call(this,e,...o)))}}let r;if("function"!=typeof t&&die(6),void 0!==n&&"function"!=typeof n&&die(7),isDraftable(e)){const o=enterScope(this),a=createProxy(e,void 0);let i=!0;try{r=t(a),i=!1}finally{i?revokeScope(o):leaveScope(o)}return usePatchesInScope(o,n),processResult(r,o)}if(!e||"object"!=typeof e){if(r=t(e),void 0===r&&(r=e),r===NOTHING&&(r=void 0),this.autoFreeze_&&freeze$1(r,!0),n){const t=[],o=[];getPlugin("Patches").generateReplacementPatches_(e,r,t,o),n(t,o)}return r}die(1,e)},this.produceWithPatches=(e,t)=>{if("function"==typeof e)return(t,...n)=>this.produceWithPatches(t,(t=>e(t,...n)));let n,r;return[this.produce(e,t,((e,t)=>{n=e,r=t})),n,r]},"boolean"==typeof e?.autoFreeze&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof e?.useStrictShallowCopy&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){isDraftable(e)||die(8),isDraft(e)&&(e=current(e));const t=enterScope(this),n=createProxy(e,void 0);return n[DRAFT_STATE].isManual_=!0,leaveScope(t),n}finishDraft(e,t){const n=e&&e[DRAFT_STATE];n&&n.isManual_||die(9);const{scope_:r}=n;return usePatchesInScope(r,t),processResult(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));const r=getPlugin("Patches").applyPatches_;return isDraft(e)?r(e,t):this.produce(e,(e=>r(e,t)))}};function createProxy(e,t){const n=isMap(e)?getPlugin("MapSet").proxyMap_(e,t):isSet(e)?getPlugin("MapSet").proxySet_(e,t):createProxyProxy(e,t);return(t?t.scope_:getCurrentScope()).drafts_.push(n),n}function current(e){return isDraft(e)||die(10,e),currentImpl(e)}function currentImpl(e){if(!isDraftable(e)||isFrozen(e))return e;const t=e[DRAFT_STATE];let n;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=shallowCopy(e,t.scope_.immer_.useStrictShallowCopy_)}else n=shallowCopy(e,!0);return each(n,((e,t)=>{set(n,e,currentImpl(t))})),t&&(t.finalized_=!1),n}var immer=new Immer2,produce=immer.produce;immer.produceWithPatches.bind(immer),immer.setAutoFreeze.bind(immer),immer.setUseStrictShallowCopy.bind(immer),immer.applyPatches.bind(immer);var createDraft=immer.createDraft.bind(immer),finishDraft=immer.finishDraft.bind(immer),PathRef={transform(e,t){var{current:n,affinity:r}=e;if(null!=n){var o=Path.transform(n,t,{affinity:r});e.current=o,null==o&&e.unref()}}},PointRef={transform(e,t){var{current:n,affinity:r}=e;if(null!=n){var o=Point.transform(n,t,{affinity:r});e.current=o,null==o&&e.unref()}}},RangeRef={transform(e,t){var{current:n,affinity:r}=e;if(null!=n){var o=Range.transform(n,t,{affinity:r});e.current=o,null==o&&e.unref()}}},DIRTY_PATHS=new WeakMap,DIRTY_PATH_KEYS=new WeakMap,FLUSHING=new WeakMap,NORMALIZING=new WeakMap,PATH_REFS=new WeakMap,POINT_REFS=new WeakMap,RANGE_REFS=new WeakMap,Path={ancestors(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,r=Path.levels(e,t);return r=n?r.slice(1):r.slice(0,-1)},common(e,t){for(var n=[],r=0;r<e.length&&r<t.length;r++){var o=e[r];if(o!==t[r])break;n.push(o)}return n},compare(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return 0},endsAfter(e,t){var n=e.length-1,r=e.slice(0,n),o=t.slice(0,n),a=e[n],i=t[n];return Path.equals(r,o)&&a>i},endsAt(e,t){var n=e.length,r=e.slice(0,n),o=t.slice(0,n);return Path.equals(r,o)},endsBefore(e,t){var n=e.length-1,r=e.slice(0,n),o=t.slice(0,n),a=e[n],i=t[n];return Path.equals(r,o)&&a<i},equals:(e,t)=>e.length===t.length&&e.every(((e,n)=>e===t[n])),hasPrevious:e=>e[e.length-1]>0,isAfter:(e,t)=>1===Path.compare(e,t),isAncestor:(e,t)=>e.length<t.length&&0===Path.compare(e,t),isBefore:(e,t)=>-1===Path.compare(e,t),isChild:(e,t)=>e.length===t.length+1&&0===Path.compare(e,t),isCommon:(e,t)=>e.length<=t.length&&0===Path.compare(e,t),isDescendant:(e,t)=>e.length>t.length&&0===Path.compare(e,t),isParent:(e,t)=>e.length+1===t.length&&0===Path.compare(e,t),isPath:e=>Array.isArray(e)&&(0===e.length||"number"==typeof e[0]),isSibling(e,t){if(e.length!==t.length)return!1;var n=e.slice(0,-1),r=t.slice(0,-1);return e[e.length-1]!==t[t.length-1]&&Path.equals(n,r)},levels(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,r=[],o=0;o<=e.length;o++)r.push(e.slice(0,o));return n&&r.reverse(),r},next(e){if(0===e.length)throw new Error("Cannot get the next path of a root path [".concat(e,"], because it has no next index."));var t=e[e.length-1];return e.slice(0,-1).concat(t+1)},operationCanTransformPath(e){switch(e.type){case"insert_node":case"remove_node":case"merge_node":case"split_node":case"move_node":return!0;default:return!1}},parent(e){if(0===e.length)throw new Error("Cannot get the parent path of the root path [".concat(e,"]."));return e.slice(0,-1)},previous(e){if(0===e.length)throw new Error("Cannot get the previous path of a root path [".concat(e,"], because it has no previous index."));var t=e[e.length-1];if(t<=0)throw new Error("Cannot get the previous path of a first child path [".concat(e,"] because it would result in a negative index."));return e.slice(0,-1).concat(t-1)},relative(e,t){if(!Path.isAncestor(t,e)&&!Path.equals(e,t))throw new Error("Cannot get the relative path of [".concat(e,"] inside ancestor [").concat(t,"], because it is not above or equal to the path."));return e.slice(t.length)},transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e)return null;var r=[...e],{affinity:o="forward"}=n;if(0===e.length)return r;switch(t.type){case"insert_node":var{path:a}=t;(Path.equals(a,r)||Path.endsBefore(a,r)||Path.isAncestor(a,r))&&(r[a.length-1]+=1);break;case"remove_node":var{path:i}=t;if(Path.equals(i,r)||Path.isAncestor(i,r))return null;Path.endsBefore(i,r)&&(r[i.length-1]-=1);break;case"merge_node":var{path:s,position:l}=t;Path.equals(s,r)||Path.endsBefore(s,r)?r[s.length-1]-=1:Path.isAncestor(s,r)&&(r[s.length-1]-=1,r[s.length]+=l);break;case"split_node":var{path:c,position:u}=t;if(Path.equals(c,r)){if("forward"===o)r[r.length-1]+=1;else if("backward"!==o)return null}else Path.endsBefore(c,r)?r[c.length-1]+=1:Path.isAncestor(c,r)&&e[c.length]>=u&&(r[c.length-1]+=1,r[c.length]-=u);break;case"move_node":var{path:d,newPath:f}=t;if(Path.equals(d,f))return r;if(Path.isAncestor(d,r)||Path.equals(d,r)){var p=f.slice();return Path.endsBefore(d,f)&&d.length<f.length&&(p[d.length-1]-=1),p.concat(r.slice(d.length))}Path.isSibling(d,f)&&(Path.isAncestor(f,r)||Path.equals(f,r))?Path.endsBefore(d,r)?r[d.length-1]-=1:r[d.length-1]+=1:Path.endsBefore(f,r)||Path.equals(f,r)||Path.isAncestor(f,r)?(Path.endsBefore(d,r)&&(r[d.length-1]-=1),r[f.length-1]+=1):Path.endsBefore(d,r)&&(Path.equals(f,r)&&(r[f.length-1]+=1),r[d.length-1]-=1)}return r}};function _typeof$4(e){return _typeof$4="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$4(e)}function _toPrimitive$4(e,t){if("object"!==_typeof$4(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$4(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$4(e){var t=_toPrimitive$4(e,"string");return"symbol"===_typeof$4(t)?t:String(t)}function _defineProperty$4(e,t,n){return(t=_toPropertyKey$4(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys$e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$e(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$e(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var applyToDraft=(e,t,n)=>{switch(n.type){case"insert_node":var{path:r,node:o}=n,a=Node$1.parent(e,r),i=r[r.length-1];if(i>a.children.length)throw new Error('Cannot apply an "insert_node" operation at path ['.concat(r,"] because the destination is past the end of the node."));if(a.children.splice(i,0,o),t)for(var[s,l]of Range.points(t))t[l]=Point.transform(s,n);break;case"insert_text":var{path:c,offset:u,text:d}=n;if(0===d.length)break;var f=Node$1.leaf(e,c),p=f.text.slice(0,u),m=f.text.slice(u);if(f.text=p+d+m,t)for(var[h,_]of Range.points(t))t[_]=Point.transform(h,n);break;case"merge_node":var{path:g}=n,v=Node$1.get(e,g),E=Path.previous(g),y=Node$1.get(e,E),b=Node$1.parent(e,g),C=g[g.length-1];if(Text$1.isText(v)&&Text$1.isText(y))y.text+=v.text;else{if(Text$1.isText(v)||Text$1.isText(y))throw new Error('Cannot apply a "merge_node" operation at path ['.concat(g,"] to nodes of different interfaces: ").concat(Scrubber.stringify(v)," ").concat(Scrubber.stringify(y)));y.children.push(...v.children)}if(b.children.splice(C,1),t)for(var[R,w]of Range.points(t))t[w]=Point.transform(R,n);break;case"move_node":var{path:S,newPath:D}=n;if(Path.isAncestor(S,D))throw new Error("Cannot move a path [".concat(S,"] to new path [").concat(D,"] because the destination is inside itself."));var T=Node$1.get(e,S),O=Node$1.parent(e,S),A=S[S.length-1];O.children.splice(A,1);var I=Path.transform(S,n),x=Node$1.get(e,Path.parent(I)),N=I[I.length-1];if(x.children.splice(N,0,T),t)for(var[F,P]of Range.points(t))t[P]=Point.transform(F,n);break;case"remove_node":var{path:k}=n,$=k[k.length-1];if(Node$1.parent(e,k).children.splice($,1),t)for(var[M,B]of Range.points(t)){var L=Point.transform(M,n);if(null!=t&&null!=L)t[B]=L;else{var j=void 0,U=void 0;for(var[V,H]of Node$1.texts(e)){if(-1!==Path.compare(H,k)){U=[V,H];break}j=[V,H]}var z=!1;j&&U&&(z=Path.equals(U[1],k)?!Path.hasPrevious(U[1]):Path.common(j[1],k).length<Path.common(U[1],k).length),j&&!z?(M.path=j[1],M.offset=j[0].text.length):U?(M.path=U[1],M.offset=0):t=null}}break;case"remove_text":var{path:K,offset:W,text:G}=n;if(0===G.length)break;var q=Node$1.leaf(e,K),Y=q.text.slice(0,W),J=q.text.slice(W+G.length);if(q.text=Y+J,t)for(var[X,Z]of Range.points(t))t[Z]=Point.transform(X,n);break;case"set_node":var{path:Q,properties:ee,newProperties:te}=n;if(0===Q.length)throw new Error("Cannot set properties on the root node!");var ne=Node$1.get(e,Q);for(var re in te){if("children"===re||"text"===re)throw new Error('Cannot set the "'.concat(re,'" property of nodes!'));var oe=te[re];null==oe?delete ne[re]:ne[re]=oe}for(var ae in ee)te.hasOwnProperty(ae)||delete ne[ae];break;case"set_selection":var{newProperties:ie}=n;if(null==ie)t=ie;else{if(null==t){if(!Range.isRange(ie))throw new Error('Cannot apply an incomplete "set_selection" operation properties '.concat(Scrubber.stringify(ie)," when there is no current selection."));t=_objectSpread$e({},ie)}for(var se in ie){var le=ie[se];if(null==le){if("anchor"===se||"focus"===se)throw new Error('Cannot remove the "'.concat(se,'" selection property'));delete t[se]}else t[se]=le}}break;case"split_node":var{path:ce,position:ue,properties:de}=n;if(0===ce.length)throw new Error('Cannot apply a "split_node" operation at path ['.concat(ce,"] because the root node cannot be split."));var fe,pe=Node$1.get(e,ce),me=Node$1.parent(e,ce),he=ce[ce.length-1];if(Text$1.isText(pe)){var _e=pe.text.slice(0,ue),ge=pe.text.slice(ue);pe.text=_e,fe=_objectSpread$e(_objectSpread$e({},de),{},{text:ge})}else{var ve=pe.children.slice(0,ue),Ee=pe.children.slice(ue);pe.children=ve,fe=_objectSpread$e(_objectSpread$e({},de),{},{children:Ee})}if(me.children.splice(he+1,0,fe),t)for(var[ye,be]of Range.points(t))t[be]=Point.transform(ye,n)}return t},GeneralTransforms={transform(e,t){e.children=createDraft(e.children);var n=e.selection&&createDraft(e.selection);try{n=applyToDraft(e,n,t)}finally{e.children=finishDraft(e.children),e.selection=n?isDraft(n)?finishDraft(n):n:null}}},NodeTransforms={insertNodes(e,t,n){e.insertNodes(t,n)},liftNodes(e,t){e.liftNodes(t)},mergeNodes(e,t){e.mergeNodes(t)},moveNodes(e,t){e.moveNodes(t)},removeNodes(e,t){e.removeNodes(t)},setNodes(e,t,n){e.setNodes(t,n)},splitNodes(e,t){e.splitNodes(t)},unsetNodes(e,t,n){e.unsetNodes(t,n)},unwrapNodes(e,t){e.unwrapNodes(t)},wrapNodes(e,t,n){e.wrapNodes(t,n)}},SelectionTransforms={collapse(e,t){e.collapse(t)},deselect(e){e.deselect()},move(e,t){e.move(t)},select(e,t){e.select(t)},setPoint(e,t,n){e.setPoint(t,n)},setSelection(e,t){e.setSelection(t)}},isDeepEqual=(e,t)=>{for(var n in e){var r=e[n],o=t[n];if(isPlainObject$1(r)&&isPlainObject$1(o)){if(!isDeepEqual(r,o))return!1}else if(Array.isArray(r)&&Array.isArray(o)){if(r.length!==o.length)return!1;for(var a=0;a<r.length;a++)if(r[a]!==o[a])return!1}else if(r!==o)return!1}for(var i in t)if(void 0===e[i]&&void 0!==t[i])return!1;return!0};function _objectWithoutPropertiesLoose$1(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function _objectWithoutProperties$1(e,t){if(null==e)return{};var n,r,o=_objectWithoutPropertiesLoose$1(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var _excluded$4=["anchor","focus"];function ownKeys$d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$d(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Range={edges(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,{anchor:r,focus:o}=e;return Range.isBackward(e)===n?[r,o]:[o,r]},end(e){var[,t]=Range.edges(e);return t},equals:(e,t)=>Point.equals(e.anchor,t.anchor)&&Point.equals(e.focus,t.focus),surrounds(e,t){var n=Range.intersection(e,t);return!!n&&Range.equals(n,t)},includes(e,t){if(Range.isRange(t)){if(Range.includes(e,t.anchor)||Range.includes(e,t.focus))return!0;var[n,r]=Range.edges(e),[o,a]=Range.edges(t);return Point.isBefore(n,o)&&Point.isAfter(r,a)}var[i,s]=Range.edges(e),l=!1,c=!1;return Point.isPoint(t)?(l=Point.compare(t,i)>=0,c=Point.compare(t,s)<=0):(l=Path.compare(t,i.path)>=0,c=Path.compare(t,s.path)<=0),l&&c},intersection(e,t){var n=_objectWithoutProperties$1(e,_excluded$4),[r,o]=Range.edges(e),[a,i]=Range.edges(t),s=Point.isBefore(r,a)?a:r,l=Point.isBefore(o,i)?o:i;return Point.isBefore(l,s)?null:_objectSpread$d({anchor:s,focus:l},n)},isBackward(e){var{anchor:t,focus:n}=e;return Point.isAfter(t,n)},isCollapsed(e){var{anchor:t,focus:n}=e;return Point.equals(t,n)},isExpanded:e=>!Range.isCollapsed(e),isForward:e=>!Range.isBackward(e),isRange:e=>isPlainObject$1(e)&&Point.isPoint(e.anchor)&&Point.isPoint(e.focus),*points(e){yield[e.anchor,"anchor"],yield[e.focus,"focus"]},start(e){var[t]=Range.edges(e);return t},transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return produce(e,(e=>{if(null===e)return null;var r,o,{affinity:a="inward"}=n;if("inward"===a){var i=Range.isCollapsed(e);Range.isForward(e)?(r="forward",o=i?r:"backward"):(r="backward",o=i?r:"forward")}else"outward"===a?Range.isForward(e)?(r="backward",o="forward"):(r="forward",o="backward"):(r=a,o=a);var s=Point.transform(e.anchor,t,{affinity:r}),l=Point.transform(e.focus,t,{affinity:o});if(!s||!l)return null;e.anchor=s,e.focus=l}))}},isElement$2=e=>isPlainObject$1(e)&&Node$1.isNodeList(e.children)&&!Editor.isEditor(e),Element$2={isAncestor:e=>isPlainObject$1(e)&&Node$1.isNodeList(e.children),isElement:isElement$2,isElementList:e=>Array.isArray(e)&&e.every((e=>Element$2.isElement(e))),isElementProps:e=>void 0!==e.children,isElementType:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"type";return isElement$2(e)&&e[n]===t},matches(e,t){for(var n in t)if("children"!==n&&e[n]!==t[n])return!1;return!0}},_excluded$3$1=["children"],_excluded2$3=["text"],IS_NODE_LIST_CACHE=new WeakMap,Node$1={ancestor(e,t){var n=Node$1.get(e,t);if(Text$1.isText(n))throw new Error("Cannot get the ancestor node at path [".concat(t,"] because it refers to a text node instead: ").concat(Scrubber.stringify(n)));return n},ancestors(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var r of Path.ancestors(t,n)){var o=[Node$1.ancestor(e,r),r];yield o}}()},child(e,t){if(Text$1.isText(e))throw new Error("Cannot get the child of a text node: ".concat(Scrubber.stringify(e)));var n=e.children[t];if(null==n)throw new Error("Cannot get child at index `".concat(t,"` in node: ").concat(Scrubber.stringify(e)));return n},children(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var{reverse:r=!1}=n,o=Node$1.ancestor(e,t),{children:a}=o,i=r?a.length-1:0;r?i>=0:i<a.length;){var s=Node$1.child(o,i),l=t.concat(i);yield[s,l],i=r?i-1:i+1}}()},common(e,t,n){var r=Path.common(t,n);return[Node$1.get(e,r),r]},descendant(e,t){var n=Node$1.get(e,t);if(Editor.isEditor(n))throw new Error("Cannot get the descendant node at path [".concat(t,"] because it refers to the root editor node instead: ").concat(Scrubber.stringify(n)));return n},descendants(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,r]of Node$1.nodes(e,t))0!==r.length&&(yield[n,r])}()},elements(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,r]of Node$1.nodes(e,t))Element$2.isElement(n)&&(yield[n,r])}()},extractProps:e=>Element$2.isAncestor(e)?_objectWithoutProperties$1(e,_excluded$3$1):_objectWithoutProperties$1(e,_excluded2$3),first(e,t){for(var n=t.slice(),r=Node$1.get(e,n);r&&!Text$1.isText(r)&&0!==r.children.length;)r=r.children[0],n.push(0);return[r,n]},fragment(e,t){if(Text$1.isText(e))throw new Error("Cannot get a fragment starting from a root text node: ".concat(Scrubber.stringify(e)));var n=produce({children:e.children},(e=>{var[n,r]=Range.edges(t),o=Node$1.nodes(e,{reverse:!0,pass:e=>{var[,n]=e;return!Range.includes(t,n)}});for(var[,a]of o){if(!Range.includes(t,a)){var i=Node$1.parent(e,a),s=a[a.length-1];i.children.splice(s,1)}if(Path.equals(a,r.path)){var l=Node$1.leaf(e,a);l.text=l.text.slice(0,r.offset)}if(Path.equals(a,n.path)){var c=Node$1.leaf(e,a);c.text=c.text.slice(n.offset)}}Editor.isEditor(e)&&(e.selection=null)}));return n.children},get(e,t){var n=Node$1.getIf(e,t);if(void 0===n)throw new Error("Cannot find a descendant at path [".concat(t,"] in node: ").concat(Scrubber.stringify(e)));return n},getIf(e,t){for(var n=e,r=0;r<t.length;r++){var o=t[r];if(Text$1.isText(n)||!n.children[o])return;n=n.children[o]}return n},has(e,t){for(var n=e,r=0;r<t.length;r++){var o=t[r];if(Text$1.isText(n)||!n.children[o])return!1;n=n.children[o]}return!0},isNode:e=>Text$1.isText(e)||Element$2.isElement(e)||Editor.isEditor(e),isNodeList(e){if(!Array.isArray(e))return!1;var t=IS_NODE_LIST_CACHE.get(e);if(void 0!==t)return t;var n=e.every((e=>Node$1.isNode(e)));return IS_NODE_LIST_CACHE.set(e,n),n},last(e,t){for(var n=t.slice(),r=Node$1.get(e,n);r&&!Text$1.isText(r)&&0!==r.children.length;){var o=r.children.length-1;r=r.children[o],n.push(o)}return[r,n]},leaf(e,t){var n=Node$1.get(e,t);if(!Text$1.isText(n))throw new Error("Cannot get the leaf node at path [".concat(t,"] because it refers to a non-leaf node: ").concat(Scrubber.stringify(n)));return n},levels(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var r of Path.levels(t,n)){var o=Node$1.get(e,r);yield[o,r]}}()},matches:(e,t)=>Element$2.isElement(e)&&Element$2.isElementProps(t)&&Element$2.matches(e,t)||Text$1.isText(e)&&Text$1.isTextProps(t)&&Text$1.matches(e,t),nodes(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var{pass:n,reverse:r=!1}=t,{from:o=[],to:a}=t,i=new Set,s=[],l=e;!a||!(r?Path.isBefore(s,a):Path.isAfter(s,a));)if(i.has(l)||(yield[l,s]),i.has(l)||Text$1.isText(l)||0===l.children.length||null!=n&&!1!==n([l,s])){if(0===s.length)break;if(!r){var c=Path.next(s);if(Node$1.has(e,c)){s=c,l=Node$1.get(e,s);continue}}if(r&&0!==s[s.length-1])s=Path.previous(s),l=Node$1.get(e,s);else s=Path.parent(s),l=Node$1.get(e,s),i.add(l)}else{i.add(l);var u=r?l.children.length-1:0;Path.isAncestor(s,o)&&(u=o[s.length]),s=s.concat(u),l=Node$1.get(e,s)}}()},parent(e,t){var n=Path.parent(t),r=Node$1.get(e,n);if(Text$1.isText(r))throw new Error("Cannot get the parent of path [".concat(t,"] because it does not exist in the root."));return r},string:e=>Text$1.isText(e)?e.text:e.children.map(Node$1.string).join(""),texts(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,r]of Node$1.nodes(e,t))Text$1.isText(n)&&(yield[n,r])}()}};function ownKeys$c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$c(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Operation={isNodeOperation:e=>Operation.isOperation(e)&&e.type.endsWith("_node"),isOperation(e){if(!isPlainObject$1(e))return!1;switch(e.type){case"insert_node":case"remove_node":return Path.isPath(e.path)&&Node$1.isNode(e.node);case"insert_text":case"remove_text":return"number"==typeof e.offset&&"string"==typeof e.text&&Path.isPath(e.path);case"merge_node":return"number"==typeof e.position&&Path.isPath(e.path)&&isPlainObject$1(e.properties);case"move_node":return Path.isPath(e.path)&&Path.isPath(e.newPath);case"set_node":return Path.isPath(e.path)&&isPlainObject$1(e.properties)&&isPlainObject$1(e.newProperties);case"set_selection":return null===e.properties&&Range.isRange(e.newProperties)||null===e.newProperties&&Range.isRange(e.properties)||isPlainObject$1(e.properties)&&isPlainObject$1(e.newProperties);case"split_node":return Path.isPath(e.path)&&"number"==typeof e.position&&isPlainObject$1(e.properties);default:return!1}},isOperationList:e=>Array.isArray(e)&&e.every((e=>Operation.isOperation(e))),isSelectionOperation:e=>Operation.isOperation(e)&&e.type.endsWith("_selection"),isTextOperation:e=>Operation.isOperation(e)&&e.type.endsWith("_text"),inverse(e){switch(e.type){case"insert_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"remove_node"});case"insert_text":return _objectSpread$c(_objectSpread$c({},e),{},{type:"remove_text"});case"merge_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"split_node",path:Path.previous(e.path)});case"move_node":var{newPath:t,path:n}=e;if(Path.equals(t,n))return e;if(Path.isSibling(n,t))return _objectSpread$c(_objectSpread$c({},e),{},{path:t,newPath:n});var r=Path.transform(n,e),o=Path.transform(Path.next(n),e);return _objectSpread$c(_objectSpread$c({},e),{},{path:r,newPath:o});case"remove_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"insert_node"});case"remove_text":return _objectSpread$c(_objectSpread$c({},e),{},{type:"insert_text"});case"set_node":var{properties:a,newProperties:i}=e;return _objectSpread$c(_objectSpread$c({},e),{},{properties:i,newProperties:a});case"set_selection":var{properties:s,newProperties:l}=e;return _objectSpread$c(_objectSpread$c({},e),{},null==s?{properties:l,newProperties:null}:null==l?{properties:null,newProperties:s}:{properties:l,newProperties:s});case"split_node":return _objectSpread$c(_objectSpread$c({},e),{},{type:"merge_node",path:Path.next(e.path)})}}},IS_EDITOR_CACHE=new WeakMap,isEditor=e=>{var t=IS_EDITOR_CACHE.get(e);if(void 0!==t)return t;if(!isPlainObject$1(e))return!1;var n="function"==typeof e.addMark&&"function"==typeof e.apply&&"function"==typeof e.deleteFragment&&"function"==typeof e.insertBreak&&"function"==typeof e.insertSoftBreak&&"function"==typeof e.insertFragment&&"function"==typeof e.insertNode&&"function"==typeof e.insertText&&"function"==typeof e.isElementReadOnly&&"function"==typeof e.isInline&&"function"==typeof e.isSelectable&&"function"==typeof e.isVoid&&"function"==typeof e.normalizeNode&&"function"==typeof e.onChange&&"function"==typeof e.removeMark&&"function"==typeof e.getDirtyPaths&&(null===e.marks||isPlainObject$1(e.marks))&&(null===e.selection||Range.isRange(e.selection))&&Node$1.isNodeList(e.children)&&Operation.isOperationList(e.operations);return IS_EDITOR_CACHE.set(e,n),n},Editor={above:(e,t)=>e.above(t),addMark(e,t,n){e.addMark(t,n)},after:(e,t,n)=>e.after(t,n),before:(e,t,n)=>e.before(t,n),deleteBackward(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{unit:n="character"}=t;e.deleteBackward(n)},deleteForward(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{unit:n="character"}=t;e.deleteForward(n)},deleteFragment(e,t){e.deleteFragment(t)},edges:(e,t)=>e.edges(t),elementReadOnly(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.elementReadOnly(t)},end:(e,t)=>e.end(t),first:(e,t)=>e.first(t),fragment:(e,t)=>e.fragment(t),hasBlocks:(e,t)=>e.hasBlocks(t),hasInlines:(e,t)=>e.hasInlines(t),hasPath:(e,t)=>e.hasPath(t),hasTexts:(e,t)=>e.hasTexts(t),insertBreak(e){e.insertBreak()},insertFragment(e,t,n){e.insertFragment(t,n)},insertNode(e,t){e.insertNode(t)},insertSoftBreak(e){e.insertSoftBreak()},insertText(e,t){e.insertText(t)},isBlock:(e,t)=>e.isBlock(t),isEdge:(e,t,n)=>e.isEdge(t,n),isEditor:e=>isEditor(e),isElementReadOnly:(e,t)=>e.isElementReadOnly(t),isEmpty:(e,t)=>e.isEmpty(t),isEnd:(e,t,n)=>e.isEnd(t,n),isInline:(e,t)=>e.isInline(t),isNormalizing:e=>e.isNormalizing(),isSelectable:(e,t)=>e.isSelectable(t),isStart:(e,t,n)=>e.isStart(t,n),isVoid:(e,t)=>e.isVoid(t),last:(e,t)=>e.last(t),leaf:(e,t,n)=>e.leaf(t,n),levels:(e,t)=>e.levels(t),marks:e=>e.getMarks(),next:(e,t)=>e.next(t),node:(e,t,n)=>e.node(t,n),nodes:(e,t)=>e.nodes(t),normalize(e,t){e.normalize(t)},parent:(e,t,n)=>e.parent(t,n),path:(e,t,n)=>e.path(t,n),pathRef:(e,t,n)=>e.pathRef(t,n),pathRefs:e=>e.pathRefs(),point:(e,t,n)=>e.point(t,n),pointRef:(e,t,n)=>e.pointRef(t,n),pointRefs:e=>e.pointRefs(),positions:(e,t)=>e.positions(t),previous:(e,t)=>e.previous(t),range:(e,t,n)=>e.range(t,n),rangeRef:(e,t,n)=>e.rangeRef(t,n),rangeRefs:e=>e.rangeRefs(),removeMark(e,t){e.removeMark(t)},setNormalizing(e,t){e.setNormalizing(t)},start:(e,t)=>e.start(t),string:(e,t,n)=>e.string(t,n),unhangRange:(e,t,n)=>e.unhangRange(t,n),void:(e,t)=>e.void(t),withoutNormalizing(e,t){e.withoutNormalizing(t)},shouldMergeNodesRemovePrevNode:(e,t,n)=>e.shouldMergeNodesRemovePrevNode(t,n)},Span={isSpan:e=>Array.isArray(e)&&2===e.length&&e.every(Path.isPath)};function ownKeys$b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$b(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Point={compare(e,t){var n=Path.compare(e.path,t.path);return 0===n?e.offset<t.offset?-1:e.offset>t.offset?1:0:n},isAfter:(e,t)=>1===Point.compare(e,t),isBefore:(e,t)=>-1===Point.compare(e,t),equals:(e,t)=>e.offset===t.offset&&Path.equals(e.path,t.path),isPoint:e=>isPlainObject$1(e)&&"number"==typeof e.offset&&Path.isPath(e.path),transform(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return produce(e,(e=>{if(null===e)return null;var{affinity:r="forward"}=n,{path:o,offset:a}=e;switch(t.type){case"insert_node":case"move_node":e.path=Path.transform(o,t,n);break;case"insert_text":Path.equals(t.path,o)&&(t.offset<a||t.offset===a&&"forward"===r)&&(e.offset+=t.text.length);break;case"merge_node":Path.equals(t.path,o)&&(e.offset+=t.position),e.path=Path.transform(o,t,n);break;case"remove_text":Path.equals(t.path,o)&&t.offset<=a&&(e.offset-=Math.min(a-t.offset,t.text.length));break;case"remove_node":if(Path.equals(t.path,o)||Path.isAncestor(t.path,o))return null;e.path=Path.transform(o,t,n);break;case"split_node":if(Path.equals(t.path,o)){if(t.position===a&&null==r)return null;(t.position<a||t.position===a&&"forward"===r)&&(e.offset-=t.position,e.path=Path.transform(o,t,_objectSpread$b(_objectSpread$b({},n),{},{affinity:"forward"})))}else e.path=Path.transform(o,t,n)}}))}},_scrubber=void 0,Scrubber={setScrubber(e){_scrubber=e},stringify:e=>JSON.stringify(e,_scrubber)},_excluded$2$1=["text"],_excluded2$2=["anchor","focus"];function ownKeys$a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$a(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Text$1={equals(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{loose:r=!1}=n;function o(e){return _objectWithoutProperties$1(e,_excluded$2$1)}return isDeepEqual(r?o(e):e,r?o(t):t)},isText:e=>isPlainObject$1(e)&&"string"==typeof e.text,isTextList:e=>Array.isArray(e)&&e.every((e=>Text$1.isText(e))),isTextProps:e=>void 0!==e.text,matches(e,t){for(var n in t)if("text"!==n&&(!e.hasOwnProperty(n)||e[n]!==t[n]))return!1;return!0},decorations(e,t){var n=[_objectSpread$a({},e)];for(var r of t){var o=_objectWithoutProperties$1(r,_excluded2$2),[a,i]=Range.edges(r),s=[],l=0,c=a.offset,u=i.offset;for(var d of n){var{length:f}=d.text,p=l;if(l+=f,c<=p&&l<=u)Object.assign(d,o),s.push(d);else if(c!==u&&(c===l||u===p)||c>l||u<p||u===p&&0!==p)s.push(d);else{var m=d,h=void 0,_=void 0;if(u<l){var g=u-p;_=_objectSpread$a(_objectSpread$a({},m),{},{text:m.text.slice(g)}),m=_objectSpread$a(_objectSpread$a({},m),{},{text:m.text.slice(0,g)})}if(c>p){var v=c-p;h=_objectSpread$a(_objectSpread$a({},m),{},{text:m.text.slice(0,v)}),m=_objectSpread$a(_objectSpread$a({},m),{},{text:m.text.slice(v)})}Object.assign(m,o),h&&s.push(h),s.push(m),_&&s.push(_)}}n=s}return n}},getDefaultInsertLocation=e=>e.selection?e.selection:e.children.length>0?Editor.end(e,[]):[0],matchPath=(e,t)=>{var[n]=Editor.node(e,t);return e=>e===n},getCharacterDistance=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!t,r=t?codepointsIteratorRTL(e):e,o=CodepointType.None,a=CodepointType.None,i=0,s=null;for(var l of r){var c=l.codePointAt(0);if(!c)break;var u=getCodepointType(l,c);if([o,a]=n?[a,u]:[u,o],intersects(o,CodepointType.ZWJ)&&intersects(a,CodepointType.ExtPict)&&!endsWithEmojiZWJ(n?e.substring(0,i):e.substring(0,e.length-i)))break;if(intersects(o,CodepointType.RI)&&intersects(a,CodepointType.RI)&&!(s=null!==s?!s:!!n||endsWithOddNumberOfRIs(e.substring(0,e.length-i))))break;if(o!==CodepointType.None&&a!==CodepointType.None&&isBoundaryPair(o,a))break;i+=l.length}return i||1},SPACE=/\s/,PUNCTUATION=/[\u002B\u0021-\u0023\u0025-\u002A\u002C-\u002F\u003A\u003B\u003F\u0040\u005B-\u005D\u005F\u007B\u007D\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E3B\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/,CHAMELEON=/['\u2018\u2019]/,getWordDistance=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=0,r=!1;e.length>0;){var o=getCharacterDistance(e,t),[a,i]=splitByCharacterDistance(e,o,t);if(isWordCharacter(a,i,t))r=!0,n+=o;else{if(r)break;n+=o}e=i}return n},splitByCharacterDistance=(e,t,n)=>{if(n){var r=e.length-t;return[e.slice(r,e.length),e.slice(0,r)]}return[e.slice(0,t),e.slice(t)]},isWordCharacter=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(SPACE.test(t))return!1;if(CHAMELEON.test(t)){var o=getCharacterDistance(n,r),[a,i]=splitByCharacterDistance(n,o,r);if(e(a,i,r))return!0}return!PUNCTUATION.test(t)},codepointsIteratorRTL=function*(e){for(var t=e.length-1,n=0;n<e.length;n++){var r=e.charAt(t-n);if(isLowSurrogate(r.charCodeAt(0))){var o=e.charAt(t-n-1);if(isHighSurrogate(o.charCodeAt(0))){yield o+r,n++;continue}}yield r}},isHighSurrogate=e=>e>=55296&&e<=56319,isLowSurrogate=e=>e>=56320&&e<=57343,CodepointType;!function(e){e[e.None=0]="None",e[e.Extend=1]="Extend",e[e.ZWJ=2]="ZWJ",e[e.RI=4]="RI",e[e.Prepend=8]="Prepend",e[e.SpacingMark=16]="SpacingMark",e[e.L=32]="L",e[e.V=64]="V",e[e.T=128]="T",e[e.LV=256]="LV",e[e.LVT=512]="LVT",e[e.ExtPict=1024]="ExtPict",e[e.Any=2048]="Any"}(CodepointType||(CodepointType={}));var reExtend=/^(?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE\u09C1-\u09C4\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3E\u0B3F\u0B41-\u0B44\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BCD\u0BD7\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC2\u0CC6\u0CCC\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D3E\u0D41-\u0D44\u0D4D\u0D57\u0D62\u0D63\u0D81\u0DCA\u0DCF\u0DD2-\u0DD4\u0DD6\u0DDF\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDE41\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF3E\uDF40\uDF57\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB0\uDCB3-\uDCB8\uDCBA\uDCBD\uDCBF\uDCC0\uDCC2\uDCC3\uDDAF\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD30\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4\uDF00\uDF01\uDF36-\uDF3A\uDF40\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65\uDD67-\uDD69\uDD6E-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF])$/,rePrepend=/^(?:[\u0600-\u0605\u06DD\u070F\u0890\u0891\u08E2\u0D4E]|\uD804[\uDCBD\uDCCD\uDDC2\uDDC3]|\uD806[\uDD3F\uDD41\uDE3A\uDE84-\uDE89]|\uD807\uDD46)$/,reSpacingMark=/^(?:[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0D02\u0D03\u0D3F\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D82\u0D83\u0DD0\u0DD1\u0DD8-\u0DDE\u0DF2\u0DF3\u0E33\u0EB3\u0F3E\u0F3F\u0F7F\u1031\u103B\u103C\u1056\u1057\u1084\u1715\u1734\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A6D-\u1A72\u1B04\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC]|\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDDCE\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB1\uDCB2\uDCB9\uDCBB\uDCBC\uDCBE\uDCC1\uDDB0\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDD31-\uDD35\uDD37\uDD38\uDD3D\uDD40\uDD42\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87\uDFF0\uDFF1]|\uD834[\uDD66\uDD6D])$/,reL=/^[\u1100-\u115F\uA960-\uA97C]$/,reV=/^[\u1160-\u11A7\uD7B0-\uD7C6]$/,reT=/^[\u11A8-\u11FF\uD7CB-\uD7FB]$/,reLV=/^[\uAC00\uAC1C\uAC38\uAC54\uAC70\uAC8C\uACA8\uACC4\uACE0\uACFC\uAD18\uAD34\uAD50\uAD6C\uAD88\uADA4\uADC0\uADDC\uADF8\uAE14\uAE30\uAE4C\uAE68\uAE84\uAEA0\uAEBC\uAED8\uAEF4\uAF10\uAF2C\uAF48\uAF64\uAF80\uAF9C\uAFB8\uAFD4\uAFF0\uB00C\uB028\uB044\uB060\uB07C\uB098\uB0B4\uB0D0\uB0EC\uB108\uB124\uB140\uB15C\uB178\uB194\uB1B0\uB1CC\uB1E8\uB204\uB220\uB23C\uB258\uB274\uB290\uB2AC\uB2C8\uB2E4\uB300\uB31C\uB338\uB354\uB370\uB38C\uB3A8\uB3C4\uB3E0\uB3FC\uB418\uB434\uB450\uB46C\uB488\uB4A4\uB4C0\uB4DC\uB4F8\uB514\uB530\uB54C\uB568\uB584\uB5A0\uB5BC\uB5D8\uB5F4\uB610\uB62C\uB648\uB664\uB680\uB69C\uB6B8\uB6D4\uB6F0\uB70C\uB728\uB744\uB760\uB77C\uB798\uB7B4\uB7D0\uB7EC\uB808\uB824\uB840\uB85C\uB878\uB894\uB8B0\uB8CC\uB8E8\uB904\uB920\uB93C\uB958\uB974\uB990\uB9AC\uB9C8\uB9E4\uBA00\uBA1C\uBA38\uBA54\uBA70\uBA8C\uBAA8\uBAC4\uBAE0\uBAFC\uBB18\uBB34\uBB50\uBB6C\uBB88\uBBA4\uBBC0\uBBDC\uBBF8\uBC14\uBC30\uBC4C\uBC68\uBC84\uBCA0\uBCBC\uBCD8\uBCF4\uBD10\uBD2C\uBD48\uBD64\uBD80\uBD9C\uBDB8\uBDD4\uBDF0\uBE0C\uBE28\uBE44\uBE60\uBE7C\uBE98\uBEB4\uBED0\uBEEC\uBF08\uBF24\uBF40\uBF5C\uBF78\uBF94\uBFB0\uBFCC\uBFE8\uC004\uC020\uC03C\uC058\uC074\uC090\uC0AC\uC0C8\uC0E4\uC100\uC11C\uC138\uC154\uC170\uC18C\uC1A8\uC1C4\uC1E0\uC1FC\uC218\uC234\uC250\uC26C\uC288\uC2A4\uC2C0\uC2DC\uC2F8\uC314\uC330\uC34C\uC368\uC384\uC3A0\uC3BC\uC3D8\uC3F4\uC410\uC42C\uC448\uC464\uC480\uC49C\uC4B8\uC4D4\uC4F0\uC50C\uC528\uC544\uC560\uC57C\uC598\uC5B4\uC5D0\uC5EC\uC608\uC624\uC640\uC65C\uC678\uC694\uC6B0\uC6CC\uC6E8\uC704\uC720\uC73C\uC758\uC774\uC790\uC7AC\uC7C8\uC7E4\uC800\uC81C\uC838\uC854\uC870\uC88C\uC8A8\uC8C4\uC8E0\uC8FC\uC918\uC934\uC950\uC96C\uC988\uC9A4\uC9C0\uC9DC\uC9F8\uCA14\uCA30\uCA4C\uCA68\uCA84\uCAA0\uCABC\uCAD8\uCAF4\uCB10\uCB2C\uCB48\uCB64\uCB80\uCB9C\uCBB8\uCBD4\uCBF0\uCC0C\uCC28\uCC44\uCC60\uCC7C\uCC98\uCCB4\uCCD0\uCCEC\uCD08\uCD24\uCD40\uCD5C\uCD78\uCD94\uCDB0\uCDCC\uCDE8\uCE04\uCE20\uCE3C\uCE58\uCE74\uCE90\uCEAC\uCEC8\uCEE4\uCF00\uCF1C\uCF38\uCF54\uCF70\uCF8C\uCFA8\uCFC4\uCFE0\uCFFC\uD018\uD034\uD050\uD06C\uD088\uD0A4\uD0C0\uD0DC\uD0F8\uD114\uD130\uD14C\uD168\uD184\uD1A0\uD1BC\uD1D8\uD1F4\uD210\uD22C\uD248\uD264\uD280\uD29C\uD2B8\uD2D4\uD2F0\uD30C\uD328\uD344\uD360\uD37C\uD398\uD3B4\uD3D0\uD3EC\uD408\uD424\uD440\uD45C\uD478\uD494\uD4B0\uD4CC\uD4E8\uD504\uD520\uD53C\uD558\uD574\uD590\uD5AC\uD5C8\uD5E4\uD600\uD61C\uD638\uD654\uD670\uD68C\uD6A8\uD6C4\uD6E0\uD6FC\uD718\uD734\uD750\uD76C\uD788]$/,reLVT=/^[\uAC01-\uAC1B\uAC1D-\uAC37\uAC39-\uAC53\uAC55-\uAC6F\uAC71-\uAC8B\uAC8D-\uACA7\uACA9-\uACC3\uACC5-\uACDF\uACE1-\uACFB\uACFD-\uAD17\uAD19-\uAD33\uAD35-\uAD4F\uAD51-\uAD6B\uAD6D-\uAD87\uAD89-\uADA3\uADA5-\uADBF\uADC1-\uADDB\uADDD-\uADF7\uADF9-\uAE13\uAE15-\uAE2F\uAE31-\uAE4B\uAE4D-\uAE67\uAE69-\uAE83\uAE85-\uAE9F\uAEA1-\uAEBB\uAEBD-\uAED7\uAED9-\uAEF3\uAEF5-\uAF0F\uAF11-\uAF2B\uAF2D-\uAF47\uAF49-\uAF63\uAF65-\uAF7F\uAF81-\uAF9B\uAF9D-\uAFB7\uAFB9-\uAFD3\uAFD5-\uAFEF\uAFF1-\uB00B\uB00D-\uB027\uB029-\uB043\uB045-\uB05F\uB061-\uB07B\uB07D-\uB097\uB099-\uB0B3\uB0B5-\uB0CF\uB0D1-\uB0EB\uB0ED-\uB107\uB109-\uB123\uB125-\uB13F\uB141-\uB15B\uB15D-\uB177\uB179-\uB193\uB195-\uB1AF\uB1B1-\uB1CB\uB1CD-\uB1E7\uB1E9-\uB203\uB205-\uB21F\uB221-\uB23B\uB23D-\uB257\uB259-\uB273\uB275-\uB28F\uB291-\uB2AB\uB2AD-\uB2C7\uB2C9-\uB2E3\uB2E5-\uB2FF\uB301-\uB31B\uB31D-\uB337\uB339-\uB353\uB355-\uB36F\uB371-\uB38B\uB38D-\uB3A7\uB3A9-\uB3C3\uB3C5-\uB3DF\uB3E1-\uB3FB\uB3FD-\uB417\uB419-\uB433\uB435-\uB44F\uB451-\uB46B\uB46D-\uB487\uB489-\uB4A3\uB4A5-\uB4BF\uB4C1-\uB4DB\uB4DD-\uB4F7\uB4F9-\uB513\uB515-\uB52F\uB531-\uB54B\uB54D-\uB567\uB569-\uB583\uB585-\uB59F\uB5A1-\uB5BB\uB5BD-\uB5D7\uB5D9-\uB5F3\uB5F5-\uB60F\uB611-\uB62B\uB62D-\uB647\uB649-\uB663\uB665-\uB67F\uB681-\uB69B\uB69D-\uB6B7\uB6B9-\uB6D3\uB6D5-\uB6EF\uB6F1-\uB70B\uB70D-\uB727\uB729-\uB743\uB745-\uB75F\uB761-\uB77B\uB77D-\uB797\uB799-\uB7B3\uB7B5-\uB7CF\uB7D1-\uB7EB\uB7ED-\uB807\uB809-\uB823\uB825-\uB83F\uB841-\uB85B\uB85D-\uB877\uB879-\uB893\uB895-\uB8AF\uB8B1-\uB8CB\uB8CD-\uB8E7\uB8E9-\uB903\uB905-\uB91F\uB921-\uB93B\uB93D-\uB957\uB959-\uB973\uB975-\uB98F\uB991-\uB9AB\uB9AD-\uB9C7\uB9C9-\uB9E3\uB9E5-\uB9FF\uBA01-\uBA1B\uBA1D-\uBA37\uBA39-\uBA53\uBA55-\uBA6F\uBA71-\uBA8B\uBA8D-\uBAA7\uBAA9-\uBAC3\uBAC5-\uBADF\uBAE1-\uBAFB\uBAFD-\uBB17\uBB19-\uBB33\uBB35-\uBB4F\uBB51-\uBB6B\uBB6D-\uBB87\uBB89-\uBBA3\uBBA5-\uBBBF\uBBC1-\uBBDB\uBBDD-\uBBF7\uBBF9-\uBC13\uBC15-\uBC2F\uBC31-\uBC4B\uBC4D-\uBC67\uBC69-\uBC83\uBC85-\uBC9F\uBCA1-\uBCBB\uBCBD-\uBCD7\uBCD9-\uBCF3\uBCF5-\uBD0F\uBD11-\uBD2B\uBD2D-\uBD47\uBD49-\uBD63\uBD65-\uBD7F\uBD81-\uBD9B\uBD9D-\uBDB7\uBDB9-\uBDD3\uBDD5-\uBDEF\uBDF1-\uBE0B\uBE0D-\uBE27\uBE29-\uBE43\uBE45-\uBE5F\uBE61-\uBE7B\uBE7D-\uBE97\uBE99-\uBEB3\uBEB5-\uBECF\uBED1-\uBEEB\uBEED-\uBF07\uBF09-\uBF23\uBF25-\uBF3F\uBF41-\uBF5B\uBF5D-\uBF77\uBF79-\uBF93\uBF95-\uBFAF\uBFB1-\uBFCB\uBFCD-\uBFE7\uBFE9-\uC003\uC005-\uC01F\uC021-\uC03B\uC03D-\uC057\uC059-\uC073\uC075-\uC08F\uC091-\uC0AB\uC0AD-\uC0C7\uC0C9-\uC0E3\uC0E5-\uC0FF\uC101-\uC11B\uC11D-\uC137\uC139-\uC153\uC155-\uC16F\uC171-\uC18B\uC18D-\uC1A7\uC1A9-\uC1C3\uC1C5-\uC1DF\uC1E1-\uC1FB\uC1FD-\uC217\uC219-\uC233\uC235-\uC24F\uC251-\uC26B\uC26D-\uC287\uC289-\uC2A3\uC2A5-\uC2BF\uC2C1-\uC2DB\uC2DD-\uC2F7\uC2F9-\uC313\uC315-\uC32F\uC331-\uC34B\uC34D-\uC367\uC369-\uC383\uC385-\uC39F\uC3A1-\uC3BB\uC3BD-\uC3D7\uC3D9-\uC3F3\uC3F5-\uC40F\uC411-\uC42B\uC42D-\uC447\uC449-\uC463\uC465-\uC47F\uC481-\uC49B\uC49D-\uC4B7\uC4B9-\uC4D3\uC4D5-\uC4EF\uC4F1-\uC50B\uC50D-\uC527\uC529-\uC543\uC545-\uC55F\uC561-\uC57B\uC57D-\uC597\uC599-\uC5B3\uC5B5-\uC5CF\uC5D1-\uC5EB\uC5ED-\uC607\uC609-\uC623\uC625-\uC63F\uC641-\uC65B\uC65D-\uC677\uC679-\uC693\uC695-\uC6AF\uC6B1-\uC6CB\uC6CD-\uC6E7\uC6E9-\uC703\uC705-\uC71F\uC721-\uC73B\uC73D-\uC757\uC759-\uC773\uC775-\uC78F\uC791-\uC7AB\uC7AD-\uC7C7\uC7C9-\uC7E3\uC7E5-\uC7FF\uC801-\uC81B\uC81D-\uC837\uC839-\uC853\uC855-\uC86F\uC871-\uC88B\uC88D-\uC8A7\uC8A9-\uC8C3\uC8C5-\uC8DF\uC8E1-\uC8FB\uC8FD-\uC917\uC919-\uC933\uC935-\uC94F\uC951-\uC96B\uC96D-\uC987\uC989-\uC9A3\uC9A5-\uC9BF\uC9C1-\uC9DB\uC9DD-\uC9F7\uC9F9-\uCA13\uCA15-\uCA2F\uCA31-\uCA4B\uCA4D-\uCA67\uCA69-\uCA83\uCA85-\uCA9F\uCAA1-\uCABB\uCABD-\uCAD7\uCAD9-\uCAF3\uCAF5-\uCB0F\uCB11-\uCB2B\uCB2D-\uCB47\uCB49-\uCB63\uCB65-\uCB7F\uCB81-\uCB9B\uCB9D-\uCBB7\uCBB9-\uCBD3\uCBD5-\uCBEF\uCBF1-\uCC0B\uCC0D-\uCC27\uCC29-\uCC43\uCC45-\uCC5F\uCC61-\uCC7B\uCC7D-\uCC97\uCC99-\uCCB3\uCCB5-\uCCCF\uCCD1-\uCCEB\uCCED-\uCD07\uCD09-\uCD23\uCD25-\uCD3F\uCD41-\uCD5B\uCD5D-\uCD77\uCD79-\uCD93\uCD95-\uCDAF\uCDB1-\uCDCB\uCDCD-\uCDE7\uCDE9-\uCE03\uCE05-\uCE1F\uCE21-\uCE3B\uCE3D-\uCE57\uCE59-\uCE73\uCE75-\uCE8F\uCE91-\uCEAB\uCEAD-\uCEC7\uCEC9-\uCEE3\uCEE5-\uCEFF\uCF01-\uCF1B\uCF1D-\uCF37\uCF39-\uCF53\uCF55-\uCF6F\uCF71-\uCF8B\uCF8D-\uCFA7\uCFA9-\uCFC3\uCFC5-\uCFDF\uCFE1-\uCFFB\uCFFD-\uD017\uD019-\uD033\uD035-\uD04F\uD051-\uD06B\uD06D-\uD087\uD089-\uD0A3\uD0A5-\uD0BF\uD0C1-\uD0DB\uD0DD-\uD0F7\uD0F9-\uD113\uD115-\uD12F\uD131-\uD14B\uD14D-\uD167\uD169-\uD183\uD185-\uD19F\uD1A1-\uD1BB\uD1BD-\uD1D7\uD1D9-\uD1F3\uD1F5-\uD20F\uD211-\uD22B\uD22D-\uD247\uD249-\uD263\uD265-\uD27F\uD281-\uD29B\uD29D-\uD2B7\uD2B9-\uD2D3\uD2D5-\uD2EF\uD2F1-\uD30B\uD30D-\uD327\uD329-\uD343\uD345-\uD35F\uD361-\uD37B\uD37D-\uD397\uD399-\uD3B3\uD3B5-\uD3CF\uD3D1-\uD3EB\uD3ED-\uD407\uD409-\uD423\uD425-\uD43F\uD441-\uD45B\uD45D-\uD477\uD479-\uD493\uD495-\uD4AF\uD4B1-\uD4CB\uD4CD-\uD4E7\uD4E9-\uD503\uD505-\uD51F\uD521-\uD53B\uD53D-\uD557\uD559-\uD573\uD575-\uD58F\uD591-\uD5AB\uD5AD-\uD5C7\uD5C9-\uD5E3\uD5E5-\uD5FF\uD601-\uD61B\uD61D-\uD637\uD639-\uD653\uD655-\uD66F\uD671-\uD68B\uD68D-\uD6A7\uD6A9-\uD6C3\uD6C5-\uD6DF\uD6E1-\uD6FB\uD6FD-\uD717\uD719-\uD733\uD735-\uD74F\uD751-\uD76B\uD76D-\uD787\uD789-\uD7A3]$/,reExtPict=/^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFA]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])$/,getCodepointType=(e,t)=>{var n=CodepointType.Any;return-1!==e.search(reExtend)&&(n|=CodepointType.Extend),8205===t&&(n|=CodepointType.ZWJ),t>=127462&&t<=127487&&(n|=CodepointType.RI),-1!==e.search(rePrepend)&&(n|=CodepointType.Prepend),-1!==e.search(reSpacingMark)&&(n|=CodepointType.SpacingMark),-1!==e.search(reL)&&(n|=CodepointType.L),-1!==e.search(reV)&&(n|=CodepointType.V),-1!==e.search(reT)&&(n|=CodepointType.T),-1!==e.search(reLV)&&(n|=CodepointType.LV),-1!==e.search(reLVT)&&(n|=CodepointType.LVT),-1!==e.search(reExtPict)&&(n|=CodepointType.ExtPict),n};function intersects(e,t){return!!(e&t)}var NonBoundaryPairs=[[CodepointType.L,CodepointType.L|CodepointType.V|CodepointType.LV|CodepointType.LVT],[CodepointType.LV|CodepointType.V,CodepointType.V|CodepointType.T],[CodepointType.LVT|CodepointType.T,CodepointType.T],[CodepointType.Any,CodepointType.Extend|CodepointType.ZWJ],[CodepointType.Any,CodepointType.SpacingMark],[CodepointType.Prepend,CodepointType.Any],[CodepointType.ZWJ,CodepointType.ExtPict],[CodepointType.RI,CodepointType.RI]];function isBoundaryPair(e,t){return-1===NonBoundaryPairs.findIndex((n=>intersects(e,n[0])&&intersects(t,n[1])))}var endingEmojiZWJ=/(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFA]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])(?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE\u09C1-\u09C4\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3E\u0B3F\u0B41-\u0B44\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BCD\u0BD7\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC2\u0CC6\u0CCC\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D3E\u0D41-\u0D44\u0D4D\u0D57\u0D62\u0D63\u0D81\u0DCA\u0DCF\u0DD2-\u0DD4\u0DD6\u0DDF\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDE41\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF3E\uDF40\uDF57\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB0\uDCB3-\uDCB8\uDCBA\uDCBD\uDCBF\uDCC0\uDCC2\uDCC3\uDDAF\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD30\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4\uDF00\uDF01\uDF36-\uDF3A\uDF40\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65\uDD67-\uDD69\uDD6E-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF])*\u200D$/,endsWithEmojiZWJ=e=>-1!==e.search(endingEmojiZWJ),endingRIs=/(?:\uD83C[\uDDE6-\uDDFF])+$/g,endsWithOddNumberOfRIs=e=>{var t=e.match(endingRIs);return null!==t&&t[0].length/2%2==1},TextTransforms={delete(e,t){e.delete(t)},insertFragment(e,t,n){e.insertFragment(t,n)},insertText(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{voids:r=!1}=n,{at:o=getDefaultInsertLocation(e)}=n;if(Path.isPath(o)&&(o=Editor.range(e,o)),Range.isRange(o))if(Range.isCollapsed(o))o=o.anchor;else{var a=Range.end(o);if(!r&&Editor.void(e,{at:a}))return;var i=Range.start(o),s=Editor.pointRef(e,i),l=Editor.pointRef(e,a);Transforms.delete(e,{at:o,voids:r});var c=s.unref(),u=l.unref();o=c||u,Transforms.setSelection(e,{anchor:o,focus:o})}if(!(!r&&Editor.void(e,{at:o})||Editor.elementReadOnly(e,{at:o}))){var{path:d,offset:f}=o;t.length>0&&e.apply({type:"insert_text",path:d,offset:f,text:t})}}))}};function ownKeys$9$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$9$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$9$1(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$9$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Transforms=_objectSpread$9$1(_objectSpread$9$1(_objectSpread$9$1(_objectSpread$9$1({},GeneralTransforms),NodeTransforms),SelectionTransforms),TextTransforms),BATCHING_DIRTY_PATHS=new WeakMap,isBatchingDirtyPaths=e=>BATCHING_DIRTY_PATHS.get(e)||!1,batchDirtyPaths=(e,t,n)=>{var r=BATCHING_DIRTY_PATHS.get(e)||!1;BATCHING_DIRTY_PATHS.set(e,!0);try{t(),n()}finally{BATCHING_DIRTY_PATHS.set(e,r)}};function updateDirtyPaths(e,t,n){var r,o,a=DIRTY_PATHS.get(e)||[],i=DIRTY_PATH_KEYS.get(e)||new Set,s=e=>{if(e){var t=e.join(",");o.has(t)||(o.add(t),r.push(e))}};if(n)for(var l of(r=[],o=new Set,a)){s(n(l))}else r=a,o=i;for(var c of t)s(c);DIRTY_PATHS.set(e,r),DIRTY_PATH_KEYS.set(e,o)}var apply=(e,t)=>{for(var n of Editor.pathRefs(e))PathRef.transform(n,t);for(var r of Editor.pointRefs(e))PointRef.transform(r,t);for(var o of Editor.rangeRefs(e))RangeRef.transform(o,t);if(!isBatchingDirtyPaths(e)){var a=Path.operationCanTransformPath(t)?e=>Path.transform(e,t):void 0;updateDirtyPaths(e,e.getDirtyPaths(t),a)}Transforms.transform(e,t),e.operations.push(t),Editor.normalize(e,{operation:t}),"set_selection"===t.type&&(e.marks=null),FLUSHING.get(e)||(FLUSHING.set(e,!0),Promise.resolve().then((()=>{FLUSHING.set(e,!1),e.onChange({operation:t}),e.operations=[]})))},getDirtyPaths=(e,t)=>{switch(t.type){case"insert_text":case"remove_text":case"set_node":var{path:n}=t;return Path.levels(n);case"insert_node":var{node:r,path:o}=t,a=Path.levels(o),i=Text$1.isText(r)?[]:Array.from(Node$1.nodes(r),(e=>{var[,t]=e;return o.concat(t)}));return[...a,...i];case"merge_node":var{path:s}=t;return[...Path.ancestors(s),Path.previous(s)];case"move_node":var{path:l,newPath:c}=t;if(Path.equals(l,c))return[];var u=[],d=[];for(var f of Path.ancestors(l)){var p=Path.transform(f,t);u.push(p)}for(var m of Path.ancestors(c)){var h=Path.transform(m,t);d.push(h)}var _=d[d.length-1],g=c[c.length-1],v=_.concat(g);return[...u,...d,v];case"remove_node":var{path:E}=t;return[...Path.ancestors(E)];case"split_node":var{path:y}=t;return[...Path.levels(y),Path.next(y)];default:return[]}},getFragment=e=>{var{selection:t}=e;return t?Node$1.fragment(e,t):[]},normalizeNode=(e,t)=>{var[n,r]=t;if(!Text$1.isText(n))if(Element$2.isElement(n)&&0===n.children.length){Transforms.insertNodes(e,{text:""},{at:r.concat(0),voids:!0})}else for(var o=!Editor.isEditor(n)&&(Element$2.isElement(n)&&(e.isInline(n)||0===n.children.length||Text$1.isText(n.children[0])||e.isInline(n.children[0]))),a=0,i=0;i<n.children.length;i++,a++){var s=Node$1.get(e,r);if(!Text$1.isText(s)){var l=s.children[a],c=s.children[a-1],u=i===n.children.length-1;if((Text$1.isText(l)||Element$2.isElement(l)&&e.isInline(l))!==o)Transforms.removeNodes(e,{at:r.concat(a),voids:!0}),a--;else if(Element$2.isElement(l)){if(e.isInline(l))if(null!=c&&Text$1.isText(c)){if(u){Transforms.insertNodes(e,{text:""},{at:r.concat(a+1),voids:!0}),a++}}else{Transforms.insertNodes(e,{text:""},{at:r.concat(a),voids:!0}),a++}}else{if(!Text$1.isText(l)&&!("children"in l))l.children=[];null!=c&&Text$1.isText(c)&&(Text$1.equals(l,c,{loose:!0})?(Transforms.mergeNodes(e,{at:r.concat(a),voids:!0}),a--):""===c.text?(Transforms.removeNodes(e,{at:r.concat(a-1),voids:!0}),a--):""===l.text&&(Transforms.removeNodes(e,{at:r.concat(a),voids:!0}),a--))}}}},shouldNormalize=(e,t)=>{var{iteration:n,initialDirtyPathsLength:r}=t,o=42*r;if(n>o)throw new Error("Could not completely normalize the editor after ".concat(o," iterations! This is usually due to incorrect normalization logic that leaves a node in an invalid state."));return!0},above=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{voids:n=!1,mode:r="lowest",at:o=e.selection,match:a}=t;if(o){var i=Editor.path(e,o),s="lowest"===r;for(var[l,c]of Editor.levels(e,{at:i,voids:n,match:a,reverse:s}))if(!Text$1.isText(l))if(Range.isRange(o)){if(Path.isAncestor(c,o.anchor.path)&&Path.isAncestor(c,o.focus.path))return[l,c]}else if(!Path.equals(i,c))return[l,c]}};function ownKeys$8$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$8$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$8$1(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$8$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var addMark=(e,t,n)=>{var{selection:r}=e;if(r){var o=(t,n)=>{if(!Text$1.isText(t))return!1;var[r,o]=Editor.parent(e,n);return!e.isVoid(r)||e.markableVoid(r)},a=Range.isExpanded(r),i=!1;if(!a){var[s,l]=Editor.node(e,r);if(s&&o(s,l)){var[c]=Editor.parent(e,l);i=c&&e.markableVoid(c)}}if(a||i)Transforms.setNodes(e,{[t]:n},{match:o,split:!0,voids:!0});else{var u=_objectSpread$8$1(_objectSpread$8$1({},Editor.marks(e)||{}),{},{[t]:n});e.marks=u,FLUSHING.get(e)||e.onChange()}}};function ownKeys$7$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$7$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$7$1(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$7$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var after=function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o={anchor:Editor.point(e,t,{edge:"end"}),focus:Editor.end(e,[])},{distance:a=1}=r,i=0;for(var s of Editor.positions(e,_objectSpread$7$1(_objectSpread$7$1({},r),{},{at:o}))){if(i>a)break;0!==i&&(n=s),i++}return n};function ownKeys$6$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$6$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6$2(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var before=function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o={anchor:Editor.start(e,[]),focus:Editor.point(e,t,{edge:"start"})},{distance:a=1}=r,i=0;for(var s of Editor.positions(e,_objectSpread$6$2(_objectSpread$6$2({},r),{},{at:o,reverse:!0}))){if(i>a)break;0!==i&&(n=s),i++}return n},deleteBackward=(e,t)=>{var{selection:n}=e;n&&Range.isCollapsed(n)&&Transforms.delete(e,{unit:t,reverse:!0})},deleteForward=(e,t)=>{var{selection:n}=e;n&&Range.isCollapsed(n)&&Transforms.delete(e,{unit:t})},deleteFragment=function(e){var{direction:t="forward"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{selection:n}=e;n&&Range.isExpanded(n)&&Transforms.delete(e,{reverse:"backward"===t})},edges=(e,t)=>[Editor.start(e,t),Editor.end(e,t)];function ownKeys$5$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$5$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5$2(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var elementReadOnly=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Editor.above(e,_objectSpread$5$2(_objectSpread$5$2({},t),{},{match:t=>Element$2.isElement(t)&&Editor.isElementReadOnly(e,t)}))},end=(e,t)=>Editor.point(e,t,{edge:"end"}),first=(e,t)=>{var n=Editor.path(e,t,{edge:"start"});return Editor.node(e,n)},fragment=(e,t)=>{var n=Editor.range(e,t);return Node$1.fragment(e,n)};function ownKeys$4$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$4$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4$2(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var getVoid=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Editor.above(e,_objectSpread$4$2(_objectSpread$4$2({},t),{},{match:t=>Element$2.isElement(t)&&Editor.isVoid(e,t)}))},hasBlocks=(e,t)=>t.children.some((t=>Element$2.isElement(t)&&Editor.isBlock(e,t))),hasInlines=(e,t)=>t.children.some((t=>Text$1.isText(t)||Editor.isInline(e,t))),hasPath=(e,t)=>Node$1.has(e,t),hasTexts=(e,t)=>t.children.every((e=>Text$1.isText(e))),insertBreak=e=>{Transforms.splitNodes(e,{always:!0})},insertNode=(e,t,n)=>{Transforms.insertNodes(e,t,n)},insertSoftBreak=e=>{Transforms.splitNodes(e,{always:!0})};function ownKeys$3$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$3$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3$2(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var insertText=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{selection:r,marks:o}=e;if(r){if(o){var a=_objectSpread$3$2({text:t},o);Transforms.insertNodes(e,a,{at:n.at,voids:n.voids})}else Transforms.insertText(e,t,n);e.marks=null}},isBlock=(e,t)=>!e.isInline(t),isEdge=(e,t,n)=>Editor.isStart(e,t,n)||Editor.isEnd(e,t,n),isEmpty$1=(e,t)=>{var{children:n}=t,[r]=n;return 0===n.length||1===n.length&&Text$1.isText(r)&&""===r.text&&!e.isVoid(t)},isEnd=(e,t,n)=>{var r=Editor.end(e,n);return Point.equals(t,r)},isNormalizing=e=>{var t=NORMALIZING.get(e);return void 0===t||t},isStart=(e,t,n)=>{if(0!==t.offset)return!1;var r=Editor.start(e,n);return Point.equals(t,r)},last$1=(e,t)=>{var n=Editor.path(e,t,{edge:"end"});return Editor.node(e,n)},leaf=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Editor.path(e,t,n);return[Node$1.leaf(e,r),r]};function levels(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,reverse:r=!1,voids:o=!1}=t,{match:a}=t;if(null==a&&(a=()=>!0),n){var i=[],s=Editor.path(e,n);for(var[l,c]of Node$1.levels(e,s))if(a(l,c)&&(i.push([l,c]),!o&&Element$2.isElement(l)&&Editor.isVoid(e,l)))break;r&&i.reverse(),yield*i}}()}var _excluded$1$1=["text"],_excluded2$1$1=["text"],marks=function(e){var{marks:t,selection:n}=e;if(!n)return null;var{anchor:r,focus:o}=n;if(t)return t;if(Range.isExpanded(n)){if(Range.isBackward(n)&&([o,r]=[r,o]),Editor.isEnd(e,r,r.path)){var a=Editor.after(e,r);a&&(r=a)}var[i]=Editor.nodes(e,{match:Text$1.isText,at:{anchor:r,focus:o}});if(i){var[s]=i;return _objectWithoutProperties$1(s,_excluded$1$1)}return{}}var{path:l}=r,[c]=Editor.leaf(e,l);if(0===r.offset){var u=Editor.previous(e,{at:l,match:Text$1.isText}),d=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isVoid(e,t)&&e.markableVoid(t)});if(!d){var f=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t)});if(u&&f){var[p,m]=u,[,h]=f;Path.isAncestor(h,m)&&(c=p)}}}return _objectWithoutProperties$1(c,_excluded2$1$1)},next=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{mode:n="lowest",voids:r=!1}=t,{match:o,at:a=e.selection}=t;if(a){var i=Editor.after(e,a,{voids:r});if(i){var[,s]=Editor.last(e,[]),l=[i.path,s];if(Path.isPath(a)&&0===a.length)throw new Error("Cannot get the next node from the root node!");if(null==o)if(Path.isPath(a)){var[c]=Editor.parent(e,a);o=e=>c.children.includes(e)}else o=()=>!0;var[u]=Editor.nodes(e,{at:l,match:o,mode:n,voids:r});return u}}},node=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Editor.path(e,t,n),o=Node$1.get(e,r);return[o,r]};function nodes(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,mode:r="all",universal:o=!1,reverse:a=!1,voids:i=!1,ignoreNonSelectable:s=!1}=t,{match:l}=t;if(l||(l=()=>!0),n){var c,u;if(Span.isSpan(n))c=n[0],u=n[1];else{var d=Editor.path(e,n,{edge:"start"}),f=Editor.path(e,n,{edge:"end"});c=a?f:d,u=a?d:f}var p,m=Node$1.nodes(e,{reverse:a,from:c,to:u,pass:t=>{var[n]=t;return!!Element$2.isElement(n)&&(!(i||!Editor.isVoid(e,n)&&!Editor.isElementReadOnly(e,n))||!(!s||Editor.isSelectable(e,n)))}}),h=[];for(var[_,g]of m)if(!s||!Element$2.isElement(_)||Editor.isSelectable(e,_)){var v=p&&0===Path.compare(g,p[1]);if("highest"!==r||!v)if(l(_,g))if("lowest"===r&&v)p=[_,g];else{var E="lowest"===r?p:[_,g];E&&(o?h.push(E):yield E),p=[_,g]}else if(o&&!v&&Text$1.isText(_))return}"lowest"===r&&p&&(o?h.push(p):yield p),o&&(yield*h)}}()}var normalize=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{force:n=!1,operation:r}=t,o=e=>DIRTY_PATHS.get(e)||[],a=e=>{var t=o(e).pop(),n=t.join(",");return(e=>DIRTY_PATH_KEYS.get(e)||new Set)(e).delete(n),t};if(Editor.isNormalizing(e)){if(n){var i=Array.from(Node$1.nodes(e),(e=>{var[,t]=e;return t})),s=new Set(i.map((e=>e.join(","))));DIRTY_PATHS.set(e,i),DIRTY_PATH_KEYS.set(e,s)}0!==o(e).length&&Editor.withoutNormalizing(e,(()=>{for(var t of o(e))if(Node$1.has(e,t)){var n=Editor.node(e,t),[i,s]=n;Element$2.isElement(i)&&0===i.children.length&&e.normalizeNode(n,{operation:r})}for(var l=o(e),c=l.length,u=0;0!==l.length;){if(!e.shouldNormalize({dirtyPaths:l,iteration:u,initialDirtyPathsLength:c,operation:r}))return;var d=a(e);if(Node$1.has(e,d)){var f=Editor.node(e,d);e.normalizeNode(f,{operation:r})}u++,l=o(e)}}))}},parent=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Editor.path(e,t,n),o=Path.parent(r);return Editor.node(e,o)},pathRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:r="forward"}=n,o={current:t,affinity:r,unref(){var{current:t}=o;return Editor.pathRefs(e).delete(o),o.current=null,t}};return Editor.pathRefs(e).add(o),o},pathRefs=e=>{var t=PATH_REFS.get(e);return t||(t=new Set,PATH_REFS.set(e,t)),t},path=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{depth:r,edge:o}=n;if(Path.isPath(t))if("start"===o){var[,a]=Node$1.first(e,t);t=a}else if("end"===o){var[,i]=Node$1.last(e,t);t=i}return Range.isRange(t)&&(t="start"===o?Range.start(t):"end"===o?Range.end(t):Path.common(t.anchor.path,t.focus.path)),Point.isPoint(t)&&(t=t.path),null!=r&&(t=t.slice(0,r)),t},pointRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:r="forward"}=n,o={current:t,affinity:r,unref(){var{current:t}=o;return Editor.pointRefs(e).delete(o),o.current=null,t}};return Editor.pointRefs(e).add(o),o},pointRefs=e=>{var t=POINT_REFS.get(e);return t||(t=new Set,POINT_REFS.set(e,t)),t},point=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{edge:r="start"}=n;if(Path.isPath(t)){var o;if("end"===r){var[,a]=Node$1.last(e,t);o=a}else{var[,i]=Node$1.first(e,t);o=i}var s=Node$1.get(e,o);if(!Text$1.isText(s))throw new Error("Cannot get the ".concat(r," point in the node at path [").concat(t,"] because it has no ").concat(r," text node."));return{path:o,offset:"end"===r?s.text.length:0}}if(Range.isRange(t)){var[l,c]=Range.edges(t);return"start"===r?l:c}return t};function positions(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,unit:r="offset",reverse:o=!1,voids:a=!1,ignoreNonSelectable:i=!1}=t;if(n){var s=Editor.range(e,n),[l,c]=Range.edges(s),u=o?c:l,d=!1,f="",p=0,m=0,h=0;for(var[_,g]of Editor.nodes(e,{at:n,reverse:o,voids:a,ignoreNonSelectable:i})){if(Element$2.isElement(_)){if(!a&&(e.isVoid(_)||e.isElementReadOnly(_))){yield Editor.start(e,g);continue}if(e.isInline(_))continue;if(Editor.hasInlines(e,_)){var v=Path.isAncestor(g,c.path)?c:Editor.end(e,g),E=Path.isAncestor(g,l.path)?l:Editor.start(e,g);f=Editor.string(e,{anchor:E,focus:v},{voids:a}),d=!0}}if(Text$1.isText(_)){var y=Path.equals(g,u.path);for(y?(m=o?u.offset:_.text.length-u.offset,h=u.offset):(m=_.text.length,h=o?m:0),(y||d||"offset"===r)&&(yield{path:g,offset:h},d=!1);;){if(0===p){if(""===f)break;p=b(f,r,o),f=splitByCharacterDistance(f,p,o)[1]}if(h=o?h-p:h+p,(m-=p)<0){p=-m;break}p=0,yield{path:g,offset:h}}}}}function b(e,t,n){return"character"===t?getCharacterDistance(e,n):"word"===t?getWordDistance(e,n):"line"===t||"block"===t?e.length:1}}()}var previous=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{mode:n="lowest",voids:r=!1}=t,{match:o,at:a=e.selection}=t;if(a){var i=Editor.before(e,a,{voids:r});if(i){var[,s]=Editor.first(e,[]),l=[i.path,s];if(Path.isPath(a)&&0===a.length)throw new Error("Cannot get the previous node from the root node!");if(null==o)if(Path.isPath(a)){var[c]=Editor.parent(e,a);o=e=>c.children.includes(e)}else o=()=>!0;var[u]=Editor.nodes(e,{reverse:!0,at:l,match:o,mode:n,voids:r});return u}}},rangeRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:r="forward"}=n,o={current:t,affinity:r,unref(){var{current:t}=o;return Editor.rangeRefs(e).delete(o),o.current=null,t}};return Editor.rangeRefs(e).add(o),o},rangeRefs=e=>{var t=RANGE_REFS.get(e);return t||(t=new Set,RANGE_REFS.set(e,t)),t},range=(e,t,n)=>Range.isRange(t)&&!n?t:{anchor:Editor.start(e,t),focus:Editor.end(e,n||t)};function ownKeys$2$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$2$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2$2(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var removeMark=(e,t)=>{var{selection:n}=e;if(n){var r=(t,n)=>{if(!Text$1.isText(t))return!1;var[r,o]=Editor.parent(e,n);return!e.isVoid(r)||e.markableVoid(r)},o=Range.isExpanded(n),a=!1;if(!o){var[i,s]=Editor.node(e,n);if(i&&r(i,s)){var[l]=Editor.parent(e,s);a=l&&e.markableVoid(l)}}if(o||a)Transforms.unsetNodes(e,t,{match:r,split:!0,voids:!0});else{var c=_objectSpread$2$2({},Editor.marks(e)||{});delete c[t],e.marks=c,FLUSHING.get(e)||e.onChange()}}},setNormalizing=(e,t)=>{NORMALIZING.set(e,t)},start=(e,t)=>Editor.point(e,t,{edge:"start"}),string=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{voids:r=!1}=n,o=Editor.range(e,t),[a,i]=Range.edges(o),s="";for(var[l,c]of Editor.nodes(e,{at:o,match:Text$1.isText,voids:r})){var u=l.text;Path.equals(c,i.path)&&(u=u.slice(0,i.offset)),Path.equals(c,a.path)&&(u=u.slice(a.offset)),s+=u}return s},unhangRange=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{voids:r=!1}=n,[o,a]=Range.edges(t);if(0!==o.offset||0!==a.offset||Range.isCollapsed(t)||Path.hasPrevious(a.path))return t;var i=Editor.above(e,{at:a,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),voids:r}),s=i?i[1]:[],l={anchor:Editor.start(e,o),focus:a},c=!0;for(var[u,d]of Editor.nodes(e,{at:l,match:Text$1.isText,reverse:!0,voids:r}))if(c)c=!1;else if(""!==u.text||Path.isBefore(d,s)){a={path:d,offset:u.text.length};break}return{anchor:o,focus:a}},withoutNormalizing=(e,t)=>{var n=Editor.isNormalizing(e);Editor.setNormalizing(e,!1);try{t()}finally{Editor.setNormalizing(e,n)}Editor.normalize(e)},shouldMergeNodesRemovePrevNode=(e,t,n)=>{var[r,o]=t;return Element$2.isElement(r)&&Editor.isEmpty(e,r)||Text$1.isText(r)&&""===r.text&&0!==o[o.length-1]},deleteText=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var n,r,{reverse:o=!1,unit:a="character",distance:i=1,voids:s=!1}=t,{at:l=e.selection,hanging:c=!1}=t;if(l){var u=!1;if(Range.isRange(l)&&Range.isCollapsed(l)&&(u=!0,l=l.anchor),Point.isPoint(l)){var d=Editor.void(e,{at:l,mode:"highest"});if(!s&&d){var[,f]=d;l=f}else{var p={unit:a,distance:i};l={anchor:l,focus:o?Editor.before(e,l,p)||Editor.start(e,[]):Editor.after(e,l,p)||Editor.end(e,[])},c=!0}}if(Path.isPath(l))Transforms.removeNodes(e,{at:l,voids:s});else if(!Range.isCollapsed(l)){if(!c){var[,m]=Range.edges(l),h=Editor.end(e,[]);Point.equals(m,h)||(l=Editor.unhangRange(e,l,{voids:s}))}var[_,g]=Range.edges(l),v=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:_,voids:s}),E=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:g,voids:s}),y=v&&E&&!Path.equals(v[1],E[1]),b=Path.equals(_.path,g.path),C=s?null:null!==(n=Editor.void(e,{at:_,mode:"highest"}))&&void 0!==n?n:Editor.elementReadOnly(e,{at:_,mode:"highest"}),R=s?null:null!==(r=Editor.void(e,{at:g,mode:"highest"}))&&void 0!==r?r:Editor.elementReadOnly(e,{at:g,mode:"highest"});if(C){var w=Editor.before(e,_);w&&v&&Path.isAncestor(v[1],w.path)&&(_=w)}if(R){var S=Editor.after(e,g);S&&E&&Path.isAncestor(E[1],S.path)&&(g=S)}var D,T=[];for(var O of Editor.nodes(e,{at:l,voids:s})){var[A,I]=O;D&&0===Path.compare(I,D)||(!s&&Element$2.isElement(A)&&(Editor.isVoid(e,A)||Editor.isElementReadOnly(e,A))||!Path.isCommon(I,_.path)&&!Path.isCommon(I,g.path))&&(T.push(O),D=I)}var x=Array.from(T,(t=>{var[,n]=t;return Editor.pathRef(e,n)})),N=Editor.pointRef(e,_),F=Editor.pointRef(e,g),P="";if(!b&&!C){var k=N.current,[$]=Editor.leaf(e,k),{path:M}=k,{offset:B}=_,L=$.text.slice(B);L.length>0&&(e.apply({type:"remove_text",path:M,offset:B,text:L}),P=L)}if(x.reverse().map((e=>e.unref())).filter((e=>null!==e)).forEach((t=>Transforms.removeNodes(e,{at:t,voids:s}))),!R){var j=F.current,[U]=Editor.leaf(e,j),{path:V}=j,H=b?_.offset:0,z=U.text.slice(H,g.offset);z.length>0&&(e.apply({type:"remove_text",path:V,offset:H,text:z}),P=z)}!b&&y&&F.current&&N.current&&Transforms.mergeNodes(e,{at:F.current,hanging:!0,voids:s}),u&&o&&"character"===a&&P.length>1&&P.match(/[\u0E00-\u0E7F]+/)&&Transforms.insertText(e,P.slice(0,P.length-i));var K=N.unref(),W=F.unref(),G=o?K||W:W||K;null==t.at&&G&&Transforms.select(e,G)}}}))},insertFragment=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{hanging:r=!1,voids:o=!1}=n,{at:a=getDefaultInsertLocation(e),batchDirty:i=!0}=n;if(t.length){if(Range.isRange(a))if(r||(a=Editor.unhangRange(e,a,{voids:o})),Range.isCollapsed(a))a=a.anchor;else{var[,s]=Range.edges(a);if(!o&&Editor.void(e,{at:s}))return;var l=Editor.pointRef(e,s);Transforms.delete(e,{at:a}),a=l.unref()}else Path.isPath(a)&&(a=Editor.start(e,a));if(o||!Editor.void(e,{at:a})){var c=Editor.above(e,{at:a,match:t=>Element$2.isElement(t)&&Editor.isInline(e,t),mode:"highest",voids:o});if(c){var[,u]=c;if(Editor.isEnd(e,a,u))a=Editor.after(e,u);else if(Editor.isStart(e,a,u)){a=Editor.before(e,u)}}var d=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:a,voids:o}),[,f]=d,p=Editor.isStart(e,a,f),m=Editor.isEnd(e,a,f),h=p&&m,_=!p||p&&m,g=!m,[,v]=Node$1.first({children:t},[]),[,E]=Node$1.last({children:t},[]),y=[],b=t=>{var[n,r]=t;return!(0===r.length)&&(!!h||!(_&&Path.isAncestor(r,v)&&Element$2.isElement(n)&&!e.isVoid(n)&&!e.isInline(n))&&!(g&&Path.isAncestor(r,E)&&Element$2.isElement(n)&&!e.isVoid(n)&&!e.isInline(n)))};for(var C of Node$1.nodes({children:t},{pass:b}))b(C)&&y.push(C);var R=[],w=[],S=[],D=!0,T=!1;for(var[O]of y)Element$2.isElement(O)&&!e.isInline(O)?(D=!1,T=!0,w.push(O)):D?R.push(O):S.push(O);var[A]=Editor.nodes(e,{at:a,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:o}),[,I]=A,x=Editor.isStart(e,a,I),N=Editor.isEnd(e,a,I),F=Editor.pathRef(e,m&&!S.length?Path.next(f):f),P=Editor.pathRef(e,N?Path.next(I):I);Transforms.splitNodes(e,{at:a,match:t=>T?Element$2.isElement(t)&&Editor.isBlock(e,t):Text$1.isText(t)||Editor.isInline(e,t),mode:T?"lowest":"highest",always:T&&(!p||R.length>0)&&(!m||S.length>0),voids:o});var k,$=Editor.pathRef(e,!x||x&&N?Path.next(I):I);if(Transforms.insertNodes(e,R,{at:$.current,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:o,batchDirty:i}),h&&!R.length&&w.length&&!S.length&&Transforms.delete(e,{at:f,voids:o}),Transforms.insertNodes(e,w,{at:F.current,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),mode:"lowest",voids:o,batchDirty:i}),Transforms.insertNodes(e,S,{at:P.current,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:o,batchDirty:i}),!n.at)if(S.length>0&&P.current?k=Path.previous(P.current):w.length>0&&F.current?k=Path.previous(F.current):$.current&&(k=Path.previous($.current)),k){var M=Editor.end(e,k);Transforms.select(e,M)}$.unref(),F.unref(),P.unref()}}}))},collapse=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{edge:n="anchor"}=t,{selection:r}=e;if(r)if("anchor"===n)Transforms.select(e,r.anchor);else if("focus"===n)Transforms.select(e,r.focus);else if("start"===n){var[o]=Range.edges(r);Transforms.select(e,o)}else if("end"===n){var[,a]=Range.edges(r);Transforms.select(e,a)}},deselect=e=>{var{selection:t}=e;t&&e.apply({type:"set_selection",properties:t,newProperties:null})},move=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{selection:n}=e,{distance:r=1,unit:o="character",reverse:a=!1}=t,{edge:i=null}=t;if(n){"start"===i&&(i=Range.isBackward(n)?"focus":"anchor"),"end"===i&&(i=Range.isBackward(n)?"anchor":"focus");var{anchor:s,focus:l}=n,c={distance:r,unit:o,ignoreNonSelectable:!0},u={};if(null==i||"anchor"===i){var d=a?Editor.before(e,s,c):Editor.after(e,s,c);d&&(u.anchor=d)}if(null==i||"focus"===i){var f=a?Editor.before(e,l,c):Editor.after(e,l,c);f&&(u.focus=f)}Transforms.setSelection(e,u)}},select=(e,t)=>{var{selection:n}=e;if(t=Editor.range(e,t),n)Transforms.setSelection(e,t);else{if(!Range.isRange(t))throw new Error("When setting the selection and the current selection is `null` you must provide at least an `anchor` and `focus`, but you passed: ".concat(Scrubber.stringify(t)));e.apply({type:"set_selection",properties:n,newProperties:t})}};function ownKeys$1$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$1$4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$4(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$4(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var setPoint=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{selection:r}=e,{edge:o="both"}=n;if(r){"start"===o&&(o=Range.isBackward(r)?"focus":"anchor"),"end"===o&&(o=Range.isBackward(r)?"anchor":"focus");var{anchor:a,focus:i}=r,s="anchor"===o?a:i;Transforms.setSelection(e,{["anchor"===o?"anchor":"focus"]:_objectSpread$1$4(_objectSpread$1$4({},s),t)})}},setSelection=(e,t)=>{var{selection:n}=e,r={},o={};if(n){for(var a in t)("anchor"===a&&null!=t.anchor&&!Point.equals(t.anchor,n.anchor)||"focus"===a&&null!=t.focus&&!Point.equals(t.focus,n.focus)||"anchor"!==a&&"focus"!==a&&t[a]!==n[a])&&(r[a]=n[a],o[a]=t[a]);Object.keys(r).length>0&&e.apply({type:"set_selection",properties:r,newProperties:o})}},insertNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{hanging:r=!1,voids:o=!1,mode:a="lowest",batchDirty:i=!0}=n,{at:s,match:l,select:c}=n;if(Node$1.isNode(t)&&(t=[t]),0!==t.length){var[u]=t;if(s||(s=getDefaultInsertLocation(e),!1!==c&&(c=!0)),null==c&&(c=!1),Range.isRange(s))if(r||(s=Editor.unhangRange(e,s,{voids:o})),Range.isCollapsed(s))s=s.anchor;else{var[,d]=Range.edges(s),f=Editor.pointRef(e,d);Transforms.delete(e,{at:s}),s=f.unref()}if(Point.isPoint(s)){null==l&&(l=Text$1.isText(u)?e=>Text$1.isText(e):e.isInline(u)?t=>Text$1.isText(t)||Editor.isInline(e,t):t=>Element$2.isElement(t)&&Editor.isBlock(e,t));var[p]=Editor.nodes(e,{at:s.path,match:l,mode:a,voids:o});if(!p)return;var[,m]=p,h=Editor.pathRef(e,m),_=Editor.isEnd(e,s,m);Transforms.splitNodes(e,{at:s,match:l,mode:a,voids:o});var g=h.unref();s=_?Path.next(g):g}var v=Path.parent(s),E=s[s.length-1];if(o||!Editor.void(e,{at:v})){if(i){var y=[],b=Path.levels(v);batchDirtyPaths(e,(()=>{var n=function(){var t=v.concat(E);E++;var n={type:"insert_node",path:t,node:r};e.apply(n),s=Path.next(s),y.push(n),Text$1.isText?b.push(...Array.from(Node$1.nodes(r),(e=>{var[,n]=e;return t.concat(n)}))):b.push(t)};for(var r of t)n()}),(()=>{updateDirtyPaths(e,b,(e=>{var t=e;for(var n of y)if(Path.operationCanTransformPath(n)&&!(t=Path.transform(t,n)))return null;return t}))}))}else for(var C of t){var R=v.concat(E);E++,e.apply({type:"insert_node",path:R,node:C}),s=Path.next(s)}if(s=Path.previous(s),c){var w=Editor.end(e,s);w&&Transforms.select(e,w)}}}}))},liftNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{at:n=e.selection,mode:r="lowest",voids:o=!1}=t,{match:a}=t;if(null==a&&(a=Path.isPath(n)?matchPath(e,n):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),n){var i=Editor.nodes(e,{at:n,match:a,mode:r,voids:o}),s=Array.from(i,(t=>{var[,n]=t;return Editor.pathRef(e,n)}));for(var l of s){var c=l.unref();if(c.length<2)throw new Error("Cannot lift node at a path [".concat(c,"] because it has a depth of less than `2`."));var u=Editor.node(e,Path.parent(c)),[d,f]=u,p=c[c.length-1],{length:m}=d.children;if(1===m){var h=Path.next(f);Transforms.moveNodes(e,{at:c,to:h,voids:o}),Transforms.removeNodes(e,{at:f,voids:o})}else if(0===p)Transforms.moveNodes(e,{at:c,to:f,voids:o});else if(p===m-1){var _=Path.next(f);Transforms.moveNodes(e,{at:c,to:_,voids:o})}else{var g=Path.next(c),v=Path.next(f);Transforms.splitNodes(e,{at:g,voids:o}),Transforms.moveNodes(e,{at:c,to:v,voids:o})}}}}))},_excluded$5=["text"],_excluded2$4=["children"],hasSingleChildNest=(e,t)=>{if(Element$2.isElement(t)){var n=t;return!!Editor.isVoid(e,t)||1===n.children.length&&hasSingleChildNest(e,n.children[0])}return!Editor.isEditor(t)},mergeNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{match:n,at:r=e.selection}=t,{hanging:o=!1,voids:a=!1,mode:i="lowest"}=t;if(r){if(null==n)if(Path.isPath(r)){var[s]=Editor.parent(e,r);n=e=>s.children.includes(e)}else n=t=>Element$2.isElement(t)&&Editor.isBlock(e,t);if(!o&&Range.isRange(r)&&(r=Editor.unhangRange(e,r,{voids:a})),Range.isRange(r))if(Range.isCollapsed(r))r=r.anchor;else{var[,l]=Range.edges(r),c=Editor.pointRef(e,l);Transforms.delete(e,{at:r}),r=c.unref(),null==t.at&&Transforms.select(e,r)}var[u]=Editor.nodes(e,{at:r,match:n,voids:a,mode:i}),d=Editor.previous(e,{at:r,match:n,voids:a,mode:i});if(u&&d){var[f,p]=u,[m,h]=d;if(0!==p.length&&0!==h.length){var _,g,v=Path.next(h),E=Path.common(p,h),y=Path.isSibling(p,h),b=Array.from(Editor.levels(e,{at:p}),(e=>{var[t]=e;return t})).slice(E.length).slice(0,-1),C=Editor.above(e,{at:p,mode:"highest",match:t=>b.includes(t)&&hasSingleChildNest(e,t)}),R=C&&Editor.pathRef(e,C[1]);if(Text$1.isText(f)&&Text$1.isText(m)){var w=_objectWithoutProperties$1(f,_excluded$5);g=m.text.length,_=w}else{if(!Element$2.isElement(f)||!Element$2.isElement(m))throw new Error("Cannot merge the node at path [".concat(p,"] with the previous sibling because it is not the same kind: ").concat(Scrubber.stringify(f)," ").concat(Scrubber.stringify(m)));w=_objectWithoutProperties$1(f,_excluded2$4);g=m.children.length,_=w}y||Transforms.moveNodes(e,{at:p,to:v,voids:a}),R&&Transforms.removeNodes(e,{at:R.current,voids:a}),Editor.shouldMergeNodesRemovePrevNode(e,d,u)?Transforms.removeNodes(e,{at:h,voids:a}):e.apply({type:"merge_node",path:v,position:g,properties:_}),R&&R.unref()}}}}))},moveNodes=(e,t)=>{Editor.withoutNormalizing(e,(()=>{var{to:n,at:r=e.selection,mode:o="lowest",voids:a=!1}=t,{match:i}=t;if(r){null==i&&(i=Path.isPath(r)?matchPath(e,r):t=>Element$2.isElement(t)&&Editor.isBlock(e,t));var s=Editor.pathRef(e,n),l=Editor.nodes(e,{at:r,match:i,mode:o,voids:a}),c=Array.from(l,(t=>{var[,n]=t;return Editor.pathRef(e,n)}));for(var u of c){var d=u.unref(),f=s.current;0!==d.length&&e.apply({type:"move_node",path:d,newPath:f}),s.current&&Path.isSibling(f,d)&&Path.isAfter(f,d)&&(s.current=Path.next(s.current))}s.unref()}}))},removeNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{hanging:n=!1,voids:r=!1,mode:o="lowest"}=t,{at:a=e.selection,match:i}=t;if(a){null==i&&(i=Path.isPath(a)?matchPath(e,a):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),!n&&Range.isRange(a)&&(a=Editor.unhangRange(e,a,{voids:r}));var s=Editor.nodes(e,{at:a,match:i,mode:o,voids:r}),l=Array.from(s,(t=>{var[,n]=t;return Editor.pathRef(e,n)}));for(var c of l){var u=c.unref();if(u){var[d]=Editor.node(e,u);e.apply({type:"remove_node",path:u,node:d})}}}}))},setNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{match:r,at:o=e.selection,compare:a,merge:i}=n,{hanging:s=!1,mode:l="lowest",split:c=!1,voids:u=!1}=n;if(o){if(null==r&&(r=Path.isPath(o)?matchPath(e,o):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),!s&&Range.isRange(o)&&(o=Editor.unhangRange(e,o,{voids:u})),c&&Range.isRange(o)){if(Range.isCollapsed(o)&&Editor.leaf(e,o.anchor)[0].text.length>0)return;var d=Editor.rangeRef(e,o,{affinity:"inward"}),[f,p]=Range.edges(o),m="lowest"===l?"lowest":"highest",h=Editor.isEnd(e,p,p.path);Transforms.splitNodes(e,{at:p,match:r,mode:m,voids:u,always:!h});var _=Editor.isStart(e,f,f.path);Transforms.splitNodes(e,{at:f,match:r,mode:m,voids:u,always:!_}),o=d.unref(),null==n.at&&Transforms.select(e,o)}for(var[g,v]of(a||(a=(e,t)=>e!==t),Editor.nodes(e,{at:o,match:r,mode:l,voids:u}))){var E={},y={};if(0!==v.length){var b=!1;for(var C in t)"children"!==C&&"text"!==C&&a(t[C],g[C])&&(b=!0,g.hasOwnProperty(C)&&(E[C]=g[C]),i?null!=t[C]&&(y[C]=i(g[C],t[C])):null!=t[C]&&(y[C]=t[C]));b&&e.apply({type:"set_node",path:v,properties:E,newProperties:y})}}}}))},deleteRange=(e,t)=>{if(Range.isCollapsed(t))return t.anchor;var[,n]=Range.edges(t),r=Editor.pointRef(e,n);return Transforms.delete(e,{at:t}),r.unref()},splitNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{mode:n="lowest",voids:r=!1}=t,{match:o,at:a=e.selection,height:i=0,always:s=!1}=t;if(null==o&&(o=t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),Range.isRange(a)&&(a=deleteRange(e,a)),Path.isPath(a)){var l=a,c=Editor.point(e,l),[u]=Editor.parent(e,l);o=e=>e===u,i=c.path.length-l.length+1,a=c,s=!0}if(a){var d,f=Editor.pointRef(e,a,{affinity:"backward"});try{var[p]=Editor.nodes(e,{at:a,match:o,mode:n,voids:r});if(!p)return;var m=Editor.void(e,{at:a,mode:"highest"});if(!r&&m){var[h,_]=m;if(Element$2.isElement(h)&&e.isInline(h)){var g=Editor.after(e,_);if(!g){var v=Path.next(_);Transforms.insertNodes(e,{text:""},{at:v,voids:r}),g=Editor.point(e,v)}a=g,s=!0}i=a.path.length-_.length+1,s=!0}d=Editor.pointRef(e,a);var E=a.path.length-i,[,y]=p,b=a.path.slice(0,E),C=0===i?a.offset:a.path[E]+0;for(var[R,w]of Editor.levels(e,{at:b,reverse:!0,voids:r})){var S=!1;if(w.length<y.length||0===w.length||!r&&Element$2.isElement(R)&&Editor.isVoid(e,R))break;var D=f.current,T=Editor.isEnd(e,D,w);if(s||!f||!Editor.isEdge(e,D,w)){S=!0;var O=Node$1.extractProps(R);e.apply({type:"split_node",path:w,position:C,properties:O})}C=w[w.length-1]+(S||T?1:0)}if(null==t.at){var A=d.current||Editor.end(e,[]);Transforms.select(e,A)}}finally{var I;f.unref(),null===(I=d)||void 0===I||I.unref()}}}))},unsetNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Array.isArray(t)||(t=[t]);var r={};for(var o of t)r[o]=null;Transforms.setNodes(e,r,n)},unwrapNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{mode:n="lowest",split:r=!1,voids:o=!1}=t,{at:a=e.selection,match:i}=t;if(a){null==i&&(i=Path.isPath(a)?matchPath(e,a):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),Path.isPath(a)&&(a=Editor.range(e,a));var s=Range.isRange(a)?Editor.rangeRef(e,a):null,l=Editor.nodes(e,{at:a,match:i,mode:n,voids:o}),c=Array.from(l,(t=>{var[,n]=t;return Editor.pathRef(e,n)})).reverse(),u=function(){var t=d.unref(),[n]=Editor.node(e,t),a=Editor.range(e,t);r&&s&&(a=Range.intersection(s.current,a)),Transforms.liftNodes(e,{at:a,match:e=>Element$2.isAncestor(n)&&n.children.includes(e),voids:o})};for(var d of c)u();s&&s.unref()}}))};function ownKeys$f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$f(Object(n),!0).forEach((function(t){_defineProperty$4(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var wrapNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{mode:r="lowest",split:o=!1,voids:a=!1}=n,{match:i,at:s=e.selection}=n;if(s){if(null==i&&(i=Path.isPath(s)?matchPath(e,s):e.isInline(t)?t=>Element$2.isElement(t)&&Editor.isInline(e,t)||Text$1.isText(t):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),o&&Range.isRange(s)){var[l,c]=Range.edges(s),u=Editor.rangeRef(e,s,{affinity:"inward"});Transforms.splitNodes(e,{at:c,match:i,voids:a}),Transforms.splitNodes(e,{at:l,match:i,voids:a}),s=u.unref(),null==n.at&&Transforms.select(e,s)}var d=Array.from(Editor.nodes(e,{at:s,match:e.isInline(t)?t=>Element$2.isElement(t)&&Editor.isBlock(e,t):e=>Editor.isEditor(e),mode:"lowest",voids:a})),f=function(){var n=Range.isRange(s)?Range.intersection(s,Editor.range(e,p)):s;if(!n)return 0;var o=Array.from(Editor.nodes(e,{at:n,match:i,mode:r,voids:a}));if(o.length>0){var[l]=o,c=o[o.length-1],[,u]=l,[,d]=c;if(0===u.length&&0===d.length)return 0;var f=Path.equals(u,d)?Path.parent(u):Path.common(u,d),m=Editor.range(e,u,d),h=Editor.node(e,f),[_]=h,g=f.length+1,v=Path.next(d.slice(0,g)),E=_objectSpread$f(_objectSpread$f({},t),{},{children:[]});Transforms.insertNodes(e,E,{at:v,voids:a}),Transforms.moveNodes(e,{at:m,match:e=>Element$2.isAncestor(_)&&_.children.includes(e),to:v.concat(0),voids:a})}};for(var[,p]of d)f()}}))},createEditor$1=()=>{var e={children:[],operations:[],selection:null,marks:null,isElementReadOnly:()=>!1,isInline:()=>!1,isSelectable:()=>!0,isVoid:()=>!1,markableVoid:()=>!1,onChange:()=>{},apply:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return apply(e,...n)},addMark:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return addMark(e,...n)},deleteBackward:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return deleteBackward(e,...n)},deleteForward:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return deleteForward(e,...n)},deleteFragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return deleteFragment(e,...n)},getFragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return getFragment(e,...n)},insertBreak:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertBreak(e,...n)},insertSoftBreak:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertSoftBreak(e,...n)},insertFragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertFragment(e,...n)},insertNode:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertNode(e,...n)},insertText:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertText(e,...n)},normalizeNode:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return normalizeNode(e,...n)},removeMark:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return removeMark(e,...n)},getDirtyPaths:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return getDirtyPaths(e,...n)},shouldNormalize:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return shouldNormalize(e,...n)},above:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return above(e,...n)},after:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return after(e,...n)},before:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return before(e,...n)},collapse:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return collapse(e,...n)},delete:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return deleteText(e,...n)},deselect:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return deselect(e,...n)},edges:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return edges(e,...n)},elementReadOnly:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return elementReadOnly(e,...n)},end:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return end(e,...n)},first:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return first(e,...n)},fragment:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return fragment(e,...n)},getMarks:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return marks(e,...n)},hasBlocks:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return hasBlocks(e,...n)},hasInlines:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return hasInlines(e,...n)},hasPath:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return hasPath(e,...n)},hasTexts:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return hasTexts(e,...n)},insertNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return insertNodes(e,...n)},isBlock:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isBlock(e,...n)},isEdge:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isEdge(e,...n)},isEmpty:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isEmpty$1(e,...n)},isEnd:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isEnd(e,...n)},isNormalizing:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isNormalizing(e,...n)},isStart:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return isStart(e,...n)},last:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return last$1(e,...n)},leaf:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return leaf(e,...n)},levels:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return levels(e,...n)},liftNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return liftNodes(e,...n)},mergeNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return mergeNodes(e,...n)},move:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return move(e,...n)},moveNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return moveNodes(e,...n)},next:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return next(e,...n)},node:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return node(e,...n)},nodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return nodes(e,...n)},normalize:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return normalize(e,...n)},parent:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return parent(e,...n)},path:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return path(e,...n)},pathRef:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return pathRef(e,...n)},pathRefs:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return pathRefs(e,...n)},point:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return point(e,...n)},pointRef:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return pointRef(e,...n)},pointRefs:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return pointRefs(e,...n)},positions:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return positions(e,...n)},previous:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return previous(e,...n)},range:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return range(e,...n)},rangeRef:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return rangeRef(e,...n)},rangeRefs:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return rangeRefs(e,...n)},removeNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return removeNodes(e,...n)},select:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return select(e,...n)},setNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return setNodes(e,...n)},setNormalizing:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return setNormalizing(e,...n)},setPoint:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return setPoint(e,...n)},setSelection:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return setSelection(e,...n)},splitNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return splitNodes(e,...n)},start:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return start(e,...n)},string:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return string(e,...n)},unhangRange:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return unhangRange(e,...n)},unsetNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return unsetNodes(e,...n)},unwrapNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return unwrapNodes(e,...n)},void:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return getVoid(e,...n)},withoutNormalizing:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return withoutNormalizing(e,...n)},wrapNodes:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return wrapNodes(e,...n)},shouldMergeNodesRemovePrevNode:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return shouldMergeNodesRemovePrevNode(e,...n)}};return e};function getCharacterBefore(e,t,n={}){const{filterVoids:r}=n,o=Editor.before(e,t,{unit:"character",voids:r});if(o){const n=Editor.range(e,o,Range.isRange(t)?Range.start(t):t),r=Editor.string(e,n);return{range:n,text:r,void:0===r.length}}}function getCharacterAfter(e,t,n={}){const{filterVoids:r}=n,o=Editor.after(e,t,{unit:"character",voids:r});if(o){const n=Editor.range(e,o,Range.isRange(t)?Range.end(t):t),r=Editor.string(e,n);return{range:n,text:r,void:0===r.length}}}const defaultOptions$2={direction:"before"};function getMatchRange(e,t,n=[" "],r=defaultOptions$2){const{include:o,direction:a}={...defaultOptions$2,...r};let[i,s]=Range.edges(t),l=i;function c(t){const r="after"===t?Editor.after(e,l,{unit:"character"}):Editor.before(e,l,{unit:"character"}),o=r&&Editor.string(e,"after"===t?{anchor:l,focus:r}:{anchor:r,focus:l}),a=o&&o["after"===t?0:o.length-1];return!(!r||!a||n.includes(a))&&(l=r,0!==l.offset)}if("before"!==a){for(l=s;c("after"););s=l}if("after"!==a){for(l=i;c("before"););i=l}return o?{anchor:Editor.before(e,i,{unit:"offset"})??i,focus:Editor.after(e,s,{unit:"offset"})??s}:{anchor:i,focus:s}}function isEmptyString(e){return!e.trim()}function isSelectionCollapsed(e){return null!==e&&Range.isCollapsed(e)}const MENTION_CHARACTER="@";function getMentionDraftAtSelection(e){const{selection:t}=e;if(!isSelectionCollapsed(t))return;const n=getMatchRange(e,t);if(!n)return;const r=Editor.string(e,n);return r.startsWith(MENTION_CHARACTER)?{range:n,text:r.substring(1)}:void 0}function isComposerBodyMention(e){return Element$2.isElement(e)&&"mention"===e.type}function insertMention(e,t){const n={type:"mention",id:t,children:[{text:""}]};Transforms.insertNodes(e,n),Transforms.move(e);const r=e.selection?getCharacterAfter(e,e.selection):void 0;!r||r.void?Transforms.insertText(e," "):isEmptyString(r.text)&&Transforms.move(e)}function insertMentionCharacter(e){if(!e.selection)return;const t=getCharacterBefore(e,e.selection,{filterVoids:!0}),n=getCharacterAfter(e,e.selection,{filterVoids:!0}),r=t&&!isEmptyString(t.text),o=n&&!isEmptyString(n.text);if(isSelectionCollapsed(e.selection)){const t=(r?" ":"")+MENTION_CHARACTER+(o?" ":"");e.insertText(t),o&&Transforms.move(e,{distance:1,unit:"character",reverse:!0})}else{const t=(r?" ":"")+MENTION_CHARACTER;e.insertText(t,{at:Range.start(e.selection)}),o&&e.insertText(" ",{at:Range.end(e.selection)}),Transforms.collapse(e,{edge:"end"})}}function withMentions(e){const{isInline:t,isVoid:n,markableVoid:r,deleteBackward:o}=e;return e.isInline=e=>isComposerBodyMention(e)||t(e),e.isVoid=e=>isComposerBodyMention(e)||n(e),e.markableVoid=e=>isComposerBodyMention(e)||r(e),e.deleteBackward=t=>{const{selection:n}=e;if(isSelectionCollapsed(n)){const[r]=Editor.nodes(e,{at:"character"===t?Editor.before(e,n,{unit:"character"}):n,match:isComposerBodyMention});o(t),r&&Transforms.insertText(e,MENTION_CHARACTER)}else o(t)},e}function isCommentBodyText(e){return!("type"in e)&&"text"in e&&"string"==typeof e.text}function isCommentBodyMention(e){return"type"in e&&"mention"===e.type}function isCommentBodyLink(e){return"type"in e&&"link"===e.type}function toAbsoluteUrl(e){return e.startsWith("http://")||e.startsWith("https://")?e:e.startsWith("www.")?"https://"+e:void 0}const CommentMention$1=React.forwardRef((({children:e,asChild:t,...n},r)=>{const o=t?Slot:"span";return React__default.default.createElement(o,{...n,ref:r},e)})),CommentLink$1=React.forwardRef((({children:e,asChild:t,...n},r)=>{const o=t?Slot:"a";return React__default.default.createElement(o,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:r},e)})),defaultBodyComponents={Mention:({userId:e})=>React__default.default.createElement(CommentMention$1,null,MENTION_CHARACTER,e),Link:({href:e,children:t})=>React__default.default.createElement(CommentLink$1,{href:e},t)},CommentBody=React.forwardRef((({body:e,components:t,style:n,asChild:r,...o},a)=>{const i=r?Slot:"div",{Mention:s,Link:l}=React.useMemo((()=>({...defaultBodyComponents,...t})),[t]);return e&&e?.content?React__default.default.createElement(i,{...o,style:{whiteSpace:"break-spaces",...n},ref:a},e.content.map(((e,t)=>"paragraph"===e.type?React__default.default.createElement("p",{key:t,style:{minHeight:"1lh"}},e.children.map(((e,t)=>{if(isCommentBodyMention(e))return e.id?React__default.default.createElement(s,{userId:e.id,key:t}):null;if(isCommentBodyLink(e)){const n=toAbsoluteUrl(e.url)??e.url;return React__default.default.createElement(l,{href:n,key:t},e.text??e.url)}let n=e.text;return e.bold&&(n=React__default.default.createElement("strong",{key:t},n)),e.italic&&(n=React__default.default.createElement("em",{key:t},n)),e.strikethrough&&(n=React__default.default.createElement("s",{key:t},n)),e.code&&(n=React__default.default.createElement("code",{key:t},n)),React__default.default.createElement("span",{key:t},n)}))):null))):null})),sides=["top","right","bottom","left"],alignments=["start","end"],placements=sides.reduce(((e,t)=>e.concat(t,t+"-"+alignments[0],t+"-"+alignments[1])),[]),min$1=Math.min,max$1=Math.max,round$1=Math.round,floor$1=Math.floor,createCoords=e=>({x:e,y:e}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp$1(e,t,n){return max$1(e,min$1(t,n))}function evaluate(e,t){return"function"==typeof e?e(t):e}function getSide(e){return e.split("-")[0]}function getAlignment(e){return e.split("-")[1]}function getOppositeAxis(e){return"x"===e?"y":"x"}function getAxisLength(e){return"y"===e?"height":"width"}function getSideAxis(e){return["top","bottom"].includes(getSide(e))?"y":"x"}function getAlignmentAxis(e){return getOppositeAxis(getSideAxis(e))}function getAlignmentSides(e,t,n){void 0===n&&(n=!1);const r=getAlignment(e),o=getAlignmentAxis(e),a=getAxisLength(o);let i="x"===o?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[a]>t.floating[a]&&(i=getOppositePlacement(i)),[i,getOppositePlacement(i)]}function getExpandedPlacements(e){const t=getOppositePlacement(e);return[getOppositeAlignmentPlacement(e),t,getOppositeAlignmentPlacement(t)]}function getOppositeAlignmentPlacement(e){return e.replace(/start|end/g,(e=>oppositeAlignmentMap[e]))}function getSideList(e,t,n){const r=["left","right"],o=["right","left"],a=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return n?t?o:r:t?r:o;case"left":case"right":return t?a:i;default:return[]}}function getOppositeAxisPlacements(e,t,n,r){const o=getAlignment(e);let a=getSideList(getSide(e),"start"===n,r);return o&&(a=a.map((e=>e+"-"+o)),t&&(a=a.concat(a.map(getOppositeAlignmentPlacement)))),a}function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,(e=>oppositeSideMap[e]))}function expandPaddingObject(e){return{top:0,right:0,bottom:0,left:0,...e}}function getPaddingObject(e){return"number"!=typeof e?expandPaddingObject(e):{top:e,right:e,bottom:e,left:e}}function rectToClientRect(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function computeCoordsFromPlacement(e,t,n){let{reference:r,floating:o}=e;const a=getSideAxis(t),i=getAlignmentAxis(t),s=getAxisLength(i),l=getSide(t),c="y"===a,u=r.x+r.width/2-o.width/2,d=r.y+r.height/2-o.height/2,f=r[s]/2-o[s]/2;let p;switch(l){case"top":p={x:u,y:r.y-o.height};break;case"bottom":p={x:u,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:d};break;case"left":p={x:r.x-o.width,y:d};break;default:p={x:r.x,y:r.y}}switch(getAlignment(t)){case"start":p[i]-=f*(n&&c?-1:1);break;case"end":p[i]+=f*(n&&c?-1:1)}return p}const computePosition$1=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:a=[],platform:i}=n,s=a.filter(Boolean),l=await(null==i.isRTL?void 0:i.isRTL(t));let c=await i.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:d}=computeCoordsFromPlacement(c,r,l),f=r,p={},m=0;for(let n=0;n<s.length;n++){const{name:a,fn:h}=s[n],{x:_,y:g,data:v,reset:E}=await h({x:u,y:d,initialPlacement:r,placement:f,strategy:o,middlewareData:p,rects:c,platform:i,elements:{reference:e,floating:t}});u=null!=_?_:u,d=null!=g?g:d,p={...p,[a]:{...p[a],...v}},E&&m<=50&&(m++,"object"==typeof E&&(E.placement&&(f=E.placement),E.rects&&(c=!0===E.rects?await i.getElementRects({reference:e,floating:t,strategy:o}):E.rects),({x:u,y:d}=computeCoordsFromPlacement(c,f,l))),n=-1)}return{x:u,y:d,placement:f,strategy:o,middlewareData:p}};async function detectOverflow(e,t){var n;void 0===t&&(t={});const{x:r,y:o,platform:a,rects:i,elements:s,strategy:l}=e,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:f=!1,padding:p=0}=evaluate(t,e),m=getPaddingObject(p),h=s[f?"floating"===d?"reference":"floating":d],_=rectToClientRect(await a.getClippingRect({element:null==(n=await(null==a.isElement?void 0:a.isElement(h)))||n?h:h.contextElement||await(null==a.getDocumentElement?void 0:a.getDocumentElement(s.floating)),boundary:c,rootBoundary:u,strategy:l})),g="floating"===d?{x:r,y:o,width:i.floating.width,height:i.floating.height}:i.reference,v=await(null==a.getOffsetParent?void 0:a.getOffsetParent(s.floating)),E=await(null==a.isElement?void 0:a.isElement(v))&&await(null==a.getScale?void 0:a.getScale(v))||{x:1,y:1},y=rectToClientRect(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:g,offsetParent:v,strategy:l}):g);return{top:(_.top-y.top+m.top)/E.y,bottom:(y.bottom-_.bottom+m.bottom)/E.y,left:(_.left-y.left+m.left)/E.x,right:(y.right-_.right+m.right)/E.x}}const arrow$3=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:a,platform:i,elements:s,middlewareData:l}=t,{element:c,padding:u=0}=evaluate(e,t)||{};if(null==c)return{};const d=getPaddingObject(u),f={x:n,y:r},p=getAlignmentAxis(o),m=getAxisLength(p),h=await i.getDimensions(c),_="y"===p,g=_?"top":"left",v=_?"bottom":"right",E=_?"clientHeight":"clientWidth",y=a.reference[m]+a.reference[p]-f[p]-a.floating[m],b=f[p]-a.reference[p],C=await(null==i.getOffsetParent?void 0:i.getOffsetParent(c));let R=C?C[E]:0;R&&await(null==i.isElement?void 0:i.isElement(C))||(R=s.floating[E]||a.floating[m]);const w=y/2-b/2,S=R/2-h[m]/2-1,D=min$1(d[g],S),T=min$1(d[v],S),O=D,A=R-h[m]-T,I=R/2-h[m]/2+w,x=clamp$1(O,I,A),N=!l.arrow&&null!=getAlignment(o)&&I!==x&&a.reference[m]/2-(I<O?D:T)-h[m]/2<0,F=N?I<O?I-O:I-A:0;return{[p]:f[p]+F,data:{[p]:x,centerOffset:I-x-F,...N&&{alignmentOffset:F}},reset:N}}});function getPlacementList(e,t,n){return(e?[...n.filter((t=>getAlignment(t)===e)),...n.filter((t=>getAlignment(t)!==e))]:n.filter((e=>getSide(e)===e))).filter((n=>!e||(getAlignment(n)===e||!!t&&getOppositeAlignmentPlacement(n)!==n)))}const autoPlacement=function(e){return void 0===e&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,r,o;const{rects:a,middlewareData:i,placement:s,platform:l,elements:c}=t,{crossAxis:u=!1,alignment:d,allowedPlacements:f=placements,autoAlignment:p=!0,...m}=evaluate(e,t),h=void 0!==d||f===placements?getPlacementList(d||null,p,f):f,_=await detectOverflow(t,m),g=(null==(n=i.autoPlacement)?void 0:n.index)||0,v=h[g];if(null==v)return{};const E=getAlignmentSides(v,a,await(null==l.isRTL?void 0:l.isRTL(c.floating)));if(s!==v)return{reset:{placement:h[0]}};const y=[_[getSide(v)],_[E[0]],_[E[1]]],b=[...(null==(r=i.autoPlacement)?void 0:r.overflows)||[],{placement:v,overflows:y}],C=h[g+1];if(C)return{data:{index:g+1,overflows:b},reset:{placement:C}};const R=b.map((e=>{const t=getAlignment(e.placement);return[e.placement,t&&u?e.overflows.slice(0,2).reduce(((e,t)=>e+t),0):e.overflows[0],e.overflows]})).sort(((e,t)=>e[1]-t[1])),w=(null==(o=R.filter((e=>e[2].slice(0,getAlignment(e[0])?2:3).every((e=>e<=0))))[0])?void 0:o[0])||R[0][0];return w!==s?{data:{index:g+1,overflows:b},reset:{placement:w}}:{}}}},flip$2=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:a,rects:i,initialPlacement:s,platform:l,elements:c}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:m="none",flipAlignment:h=!0,..._}=evaluate(e,t);if(null!=(n=a.arrow)&&n.alignmentOffset)return{};const g=getSide(o),v=getSideAxis(s),E=getSide(s)===s,y=await(null==l.isRTL?void 0:l.isRTL(c.floating)),b=f||(E||!h?[getOppositePlacement(s)]:getExpandedPlacements(s)),C="none"!==m;!f&&C&&b.push(...getOppositeAxisPlacements(s,h,m,y));const R=[s,...b],w=await detectOverflow(t,_),S=[];let D=(null==(r=a.flip)?void 0:r.overflows)||[];if(u&&S.push(w[g]),d){const e=getAlignmentSides(o,i,y);S.push(w[e[0]],w[e[1]])}if(D=[...D,{placement:o,overflows:S}],!S.every((e=>e<=0))){var T,O;const e=((null==(T=a.flip)?void 0:T.index)||0)+1,t=R[e];if(t)return{data:{index:e,overflows:D},reset:{placement:t}};let n=null==(O=D.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:O.placement;if(!n)switch(p){case"bestFit":{var A;const e=null==(A=D.filter((e=>{if(C){const t=getSideAxis(e.placement);return t===v||"y"===t}return!0})).map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:A[0];e&&(n=e);break}case"initialPlacement":n=s}if(o!==n)return{reset:{placement:n}}}return{}}}};function getSideOffsets(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function isAnySideFullyClipped(e){return sides.some((t=>e[t]>=0))}const hide$2=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=evaluate(e,t);switch(r){case"referenceHidden":{const e=getSideOffsets(await detectOverflow(t,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:isAnySideFullyClipped(e)}}}case"escaped":{const e=getSideOffsets(await detectOverflow(t,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:isAnySideFullyClipped(e)}}}default:return{}}}}};function getBoundingRect(e){const t=min$1(...e.map((e=>e.left))),n=min$1(...e.map((e=>e.top)));return{x:t,y:n,width:max$1(...e.map((e=>e.right)))-t,height:max$1(...e.map((e=>e.bottom)))-n}}function getRectsByLine(e){const t=e.slice().sort(((e,t)=>e.y-t.y)),n=[];let r=null;for(let e=0;e<t.length;e++){const o=t[e];!r||o.y-r.y>r.height/2?n.push([o]):n[n.length-1].push(o),r=o}return n.map((e=>rectToClientRect(getBoundingRect(e))))}const inline=function(e){return void 0===e&&(e={}),{name:"inline",options:e,async fn(t){const{placement:n,elements:r,rects:o,platform:a,strategy:i}=t,{padding:s=2,x:l,y:c}=evaluate(e,t),u=Array.from(await(null==a.getClientRects?void 0:a.getClientRects(r.reference))||[]),d=getRectsByLine(u),f=rectToClientRect(getBoundingRect(u)),p=getPaddingObject(s);const m=await a.getElementRects({reference:{getBoundingClientRect:function(){if(2===d.length&&d[0].left>d[1].right&&null!=l&&null!=c)return d.find((e=>l>e.left-p.left&&l<e.right+p.right&&c>e.top-p.top&&c<e.bottom+p.bottom))||f;if(d.length>=2){if("y"===getSideAxis(n)){const e=d[0],t=d[d.length-1],r="top"===getSide(n),o=e.top,a=t.bottom,i=r?e.left:t.left,s=r?e.right:t.right;return{top:o,bottom:a,left:i,right:s,width:s-i,height:a-o,x:i,y:o}}const e="left"===getSide(n),t=max$1(...d.map((e=>e.right))),r=min$1(...d.map((e=>e.left))),o=d.filter((n=>e?n.left===r:n.right===t)),a=o[0].top,i=o[o.length-1].bottom;return{top:a,bottom:i,left:r,right:t,width:t-r,height:i-a,x:r,y:a}}return f}},floating:r.floating,strategy:i});return o.reference.x!==m.reference.x||o.reference.y!==m.reference.y||o.reference.width!==m.reference.width||o.reference.height!==m.reference.height?{reset:{rects:m}}:{}}}};async function convertValueToCoords(e,t){const{placement:n,platform:r,elements:o}=e,a=await(null==r.isRTL?void 0:r.isRTL(o.floating)),i=getSide(n),s=getAlignment(n),l="y"===getSideAxis(n),c=["left","top"].includes(i)?-1:1,u=a&&l?-1:1,d=evaluate(t,e);let{mainAxis:f,crossAxis:p,alignmentAxis:m}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&"number"==typeof m&&(p="end"===s?-1*m:m),l?{x:p*u,y:f*c}:{x:f*c,y:p*u}}const offset$2=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:a,placement:i,middlewareData:s}=t,l=await convertValueToCoords(t,e);return i===(null==(n=s.offset)?void 0:n.placement)&&null!=(r=s.arrow)&&r.alignmentOffset?{}:{x:o+l.x,y:a+l.y,data:{...l,placement:i}}}}},shift$2=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:a=!0,crossAxis:i=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=evaluate(e,t),c={x:n,y:r},u=await detectOverflow(t,l),d=getSideAxis(getSide(o)),f=getOppositeAxis(d);let p=c[f],m=c[d];if(a){const e="y"===f?"bottom":"right";p=clamp$1(p+u["y"===f?"top":"left"],p,p-u[e])}if(i){const e="y"===d?"bottom":"right";m=clamp$1(m+u["y"===d?"top":"left"],m,m-u[e])}const h=s.fn({...t,[f]:p,[d]:m});return{...h,data:{x:h.x-n,y:h.y-r,enabled:{[f]:a,[d]:i}}}}}},limitShift$2=function(e){return void 0===e&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:a,middlewareData:i}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=evaluate(e,t),u={x:n,y:r},d=getSideAxis(o),f=getOppositeAxis(d);let p=u[f],m=u[d];const h=evaluate(s,t),_="number"==typeof h?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(l){const e="y"===f?"height":"width",t=a.reference[f]-a.floating[e]+_.mainAxis,n=a.reference[f]+a.reference[e]-_.mainAxis;p<t?p=t:p>n&&(p=n)}if(c){var g,v;const e="y"===f?"width":"height",t=["top","left"].includes(getSide(o)),n=a.reference[d]-a.floating[e]+(t&&(null==(g=i.offset)?void 0:g[d])||0)+(t?0:_.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:(null==(v=i.offset)?void 0:v[d])||0)-(t?_.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},size$3=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:a,platform:i,elements:s}=t,{apply:l=()=>{},...c}=evaluate(e,t),u=await detectOverflow(t,c),d=getSide(o),f=getAlignment(o),p="y"===getSideAxis(o),{width:m,height:h}=a.floating;let _,g;"top"===d||"bottom"===d?(_=d,g=f===(await(null==i.isRTL?void 0:i.isRTL(s.floating))?"start":"end")?"left":"right"):(g=d,_="end"===f?"top":"bottom");const v=h-u.top-u.bottom,E=m-u.left-u.right,y=min$1(h-u[_],v),b=min$1(m-u[g],E),C=!t.middlewareData.shift;let R=y,w=b;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(w=E),null!=(r=t.middlewareData.shift)&&r.enabled.y&&(R=v),C&&!f){const e=max$1(u.left,0),t=max$1(u.right,0),n=max$1(u.top,0),r=max$1(u.bottom,0);p?w=m-2*(0!==e||0!==t?e+t:max$1(u.left,u.right)):R=h-2*(0!==n||0!==r?n+r:max$1(u.top,u.bottom))}await l({...t,availableWidth:w,availableHeight:R});const S=await i.getDimensions(s.floating);return m!==S.width||h!==S.height?{reset:{rects:!0}}:{}}}};function hasWindow(){return"undefined"!=typeof window}function getNodeName(e){return isNode(e)?(e.nodeName||"").toLowerCase():"#document"}function getWindow(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function getDocumentElement(e){var t;return null==(t=(isNode(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function isNode(e){return!!hasWindow()&&(e instanceof Node||e instanceof getWindow(e).Node)}function isElement$1(e){return!!hasWindow()&&(e instanceof Element||e instanceof getWindow(e).Element)}function isHTMLElement(e){return!!hasWindow()&&(e instanceof HTMLElement||e instanceof getWindow(e).HTMLElement)}function isShadowRoot(e){return!(!hasWindow()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof getWindow(e).ShadowRoot)}function isOverflowElement(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=getComputedStyle$1(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function isTableElement(e){return["table","td","th"].includes(getNodeName(e))}function isTopLayer(e){return[":popover-open",":modal"].some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function isContainingBlock(e){const t=isWebKit(),n=isElement$1(e)?getComputedStyle$1(e):e;return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some((e=>(n.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(n.contain||"").includes(e)))}function getContainingBlock(e){let t=getParentNode(e);for(;isHTMLElement(t)&&!isLastTraversableNode(t);){if(isContainingBlock(t))return t;if(isTopLayer(t))return null;t=getParentNode(t)}return null}function isWebKit(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function isLastTraversableNode(e){return["html","body","#document"].includes(getNodeName(e))}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function getNodeScroll(e){return isElement$1(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function getParentNode(e){if("html"===getNodeName(e))return e;const t=e.assignedSlot||e.parentNode||isShadowRoot(e)&&e.host||getDocumentElement(e);return isShadowRoot(t)?t.host:t}function getNearestOverflowAncestor(e){const t=getParentNode(e);return isLastTraversableNode(t)?e.ownerDocument?e.ownerDocument.body:e.body:isHTMLElement(t)&&isOverflowElement(t)?t:getNearestOverflowAncestor(t)}function getOverflowAncestors(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);const o=getNearestOverflowAncestor(e),a=o===(null==(r=e.ownerDocument)?void 0:r.body),i=getWindow(o);if(a){const e=getFrameElement(i);return t.concat(i,i.visualViewport||[],isOverflowElement(o)?o:[],e&&n?getOverflowAncestors(e):[])}return t.concat(o,getOverflowAncestors(o,[],n))}function getFrameElement(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function getCssDimensions(e){const t=getComputedStyle$1(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=isHTMLElement(e),a=o?e.offsetWidth:n,i=o?e.offsetHeight:r,s=round$1(n)!==a||round$1(r)!==i;return s&&(n=a,r=i),{width:n,height:r,$:s}}function unwrapElement(e){return isElement$1(e)?e:e.contextElement}function getScale(e){const t=unwrapElement(e);if(!isHTMLElement(t))return createCoords(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:a}=getCssDimensions(t);let i=(a?round$1(n.width):n.width)/r,s=(a?round$1(n.height):n.height)/o;return i&&Number.isFinite(i)||(i=1),s&&Number.isFinite(s)||(s=1),{x:i,y:s}}const noOffsets=createCoords(0);function getVisualOffsets(e){const t=getWindow(e);return isWebKit()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:noOffsets}function shouldAddVisualOffsets(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==getWindow(e))&&t}function getBoundingClientRect(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=!1);const o=e.getBoundingClientRect(),a=unwrapElement(e);let i=createCoords(1);t&&(r?isElement$1(r)&&(i=getScale(r)):i=getScale(e));const s=shouldAddVisualOffsets(a,n,r)?getVisualOffsets(a):createCoords(0);let l=(o.left+s.x)/i.x,c=(o.top+s.y)/i.y,u=o.width/i.x,d=o.height/i.y;if(a){const e=getWindow(a),t=r&&isElement$1(r)?getWindow(r):r;let n=e,o=getFrameElement(n);for(;o&&r&&t!==n;){const e=getScale(o),t=o.getBoundingClientRect(),r=getComputedStyle$1(o),a=t.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,i=t.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;l*=e.x,c*=e.y,u*=e.x,d*=e.y,l+=a,c+=i,n=getWindow(o),o=getFrameElement(n)}}return rectToClientRect({width:u,height:d,x:l,y:c})}function getWindowScrollBarX(e,t){const n=getNodeScroll(e).scrollLeft;return t?t.left+n:getBoundingClientRect(getDocumentElement(e)).left+n}function getHTMLOffset(e,t,n){void 0===n&&(n=!1);const r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-(n?0:getWindowScrollBarX(e,r)),y:r.top+t.scrollTop}}function convertOffsetParentRelativeRectToViewportRelativeRect(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const a="fixed"===o,i=getDocumentElement(r),s=!!t&&isTopLayer(t.floating);if(r===i||s&&a)return n;let l={scrollLeft:0,scrollTop:0},c=createCoords(1);const u=createCoords(0),d=isHTMLElement(r);if((d||!d&&!a)&&(("body"!==getNodeName(r)||isOverflowElement(i))&&(l=getNodeScroll(r)),isHTMLElement(r))){const e=getBoundingClientRect(r);c=getScale(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}const f=!i||d||a?createCoords(0):getHTMLOffset(i,l,!0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+u.x+f.x,y:n.y*c.y-l.scrollTop*c.y+u.y+f.y}}function getClientRects(e){return Array.from(e.getClientRects())}function getDocumentRect(e){const t=getDocumentElement(e),n=getNodeScroll(e),r=e.ownerDocument.body,o=max$1(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=max$1(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+getWindowScrollBarX(e);const s=-n.scrollTop;return"rtl"===getComputedStyle$1(r).direction&&(i+=max$1(t.clientWidth,r.clientWidth)-o),{width:o,height:a,x:i,y:s}}function getViewportRect(e,t){const n=getWindow(e),r=getDocumentElement(e),o=n.visualViewport;let a=r.clientWidth,i=r.clientHeight,s=0,l=0;if(o){a=o.width,i=o.height;const e=isWebKit();(!e||e&&"fixed"===t)&&(s=o.offsetLeft,l=o.offsetTop)}return{width:a,height:i,x:s,y:l}}function getInnerBoundingClientRect(e,t){const n=getBoundingClientRect(e,!0,"fixed"===t),r=n.top+e.clientTop,o=n.left+e.clientLeft,a=isHTMLElement(e)?getScale(e):createCoords(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:o*a.x,y:r*a.y}}function getClientRectFromClippingAncestor(e,t,n){let r;if("viewport"===t)r=getViewportRect(e,n);else if("document"===t)r=getDocumentRect(getDocumentElement(e));else if(isElement$1(t))r=getInnerBoundingClientRect(t,n);else{const n=getVisualOffsets(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return rectToClientRect(r)}function hasFixedPositionAncestor(e,t){const n=getParentNode(e);return!(n===t||!isElement$1(n)||isLastTraversableNode(n))&&("fixed"===getComputedStyle$1(n).position||hasFixedPositionAncestor(n,t))}function getClippingElementAncestors(e,t){const n=t.get(e);if(n)return n;let r=getOverflowAncestors(e,[],!1).filter((e=>isElement$1(e)&&"body"!==getNodeName(e))),o=null;const a="fixed"===getComputedStyle$1(e).position;let i=a?getParentNode(e):e;for(;isElement$1(i)&&!isLastTraversableNode(i);){const t=getComputedStyle$1(i),n=isContainingBlock(i);n||"fixed"!==t.position||(o=null);(a?!n&&!o:!n&&"static"===t.position&&!!o&&["absolute","fixed"].includes(o.position)||isOverflowElement(i)&&!n&&hasFixedPositionAncestor(e,i))?r=r.filter((e=>e!==i)):o=t,i=getParentNode(i)}return t.set(e,r),r}function getClippingRect(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const a=[..."clippingAncestors"===n?isTopLayer(t)?[]:getClippingElementAncestors(t,this._c):[].concat(n),r],i=a[0],s=a.reduce(((e,n)=>{const r=getClientRectFromClippingAncestor(t,n,o);return e.top=max$1(r.top,e.top),e.right=min$1(r.right,e.right),e.bottom=min$1(r.bottom,e.bottom),e.left=max$1(r.left,e.left),e}),getClientRectFromClippingAncestor(t,i,o));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function getDimensions(e){const{width:t,height:n}=getCssDimensions(e);return{width:t,height:n}}function getRectRelativeToOffsetParent(e,t,n){const r=isHTMLElement(t),o=getDocumentElement(t),a="fixed"===n,i=getBoundingClientRect(e,!0,a,t);let s={scrollLeft:0,scrollTop:0};const l=createCoords(0);if(r||!r&&!a)if(("body"!==getNodeName(t)||isOverflowElement(o))&&(s=getNodeScroll(t)),r){const e=getBoundingClientRect(t,!0,a,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else o&&(l.x=getWindowScrollBarX(o));const c=!o||r||a?createCoords(0):getHTMLOffset(o,s);return{x:i.left+s.scrollLeft-l.x-c.x,y:i.top+s.scrollTop-l.y-c.y,width:i.width,height:i.height}}function isStaticPositioned(e){return"static"===getComputedStyle$1(e).position}function getTrueOffsetParent(e,t){if(!isHTMLElement(e)||"fixed"===getComputedStyle$1(e).position)return null;if(t)return t(e);let n=e.offsetParent;return getDocumentElement(e)===n&&(n=n.ownerDocument.body),n}function getOffsetParent(e,t){const n=getWindow(e);if(isTopLayer(e))return n;if(!isHTMLElement(e)){let t=getParentNode(e);for(;t&&!isLastTraversableNode(t);){if(isElement$1(t)&&!isStaticPositioned(t))return t;t=getParentNode(t)}return n}let r=getTrueOffsetParent(e,t);for(;r&&isTableElement(r)&&isStaticPositioned(r);)r=getTrueOffsetParent(r,t);return r&&isLastTraversableNode(r)&&isStaticPositioned(r)&&!isContainingBlock(r)?n:r||getContainingBlock(e)||n}const getElementRects=async function(e){const t=this.getOffsetParent||getOffsetParent,n=this.getDimensions,r=await n(e.floating);return{reference:getRectRelativeToOffsetParent(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function isRTL(e){return"rtl"===getComputedStyle$1(e).direction}const platform={convertOffsetParentRelativeRectToViewportRelativeRect:convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement:getDocumentElement,getClippingRect:getClippingRect,getOffsetParent:getOffsetParent,getElementRects:getElementRects,getClientRects:getClientRects,getDimensions:getDimensions,getScale:getScale,isElement:isElement$1,isRTL:isRTL};function observeMove(e,t){let n,r=null;const o=getDocumentElement(e);function a(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return function i(s,l){void 0===s&&(s=!1),void 0===l&&(l=1),a();const{left:c,top:u,width:d,height:f}=e.getBoundingClientRect();if(s||t(),!d||!f)return;const p={rootMargin:-floor$1(u)+"px "+-floor$1(o.clientWidth-(c+d))+"px "+-floor$1(o.clientHeight-(u+f))+"px "+-floor$1(c)+"px",threshold:max$1(0,min$1(1,l))||1};let m=!0;function h(e){const t=e[0].intersectionRatio;if(t!==l){if(!m)return i();t?i(!1,t):n=setTimeout((()=>{i(!1,1e-7)}),1e3)}m=!1}try{r=new IntersectionObserver(h,{...p,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(h,p)}r.observe(e)}(!0),a}function autoUpdate(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:o=!0,ancestorResize:a=!0,elementResize:i="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:l=!1}=r,c=unwrapElement(e),u=o||a?[...c?getOverflowAncestors(c):[],...getOverflowAncestors(t)]:[];u.forEach((e=>{o&&e.addEventListener("scroll",n,{passive:!0}),a&&e.addEventListener("resize",n)}));const d=c&&s?observeMove(c,n):null;let f,p=-1,m=null;i&&(m=new ResizeObserver((e=>{let[r]=e;r&&r.target===c&&m&&(m.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame((()=>{var e;null==(e=m)||e.observe(t)}))),n()})),c&&!l&&m.observe(c),m.observe(t));let h=l?getBoundingClientRect(e):null;return l&&function t(){const r=getBoundingClientRect(e);!h||r.x===h.x&&r.y===h.y&&r.width===h.width&&r.height===h.height||n();h=r,f=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach((e=>{o&&e.removeEventListener("scroll",n),a&&e.removeEventListener("resize",n)})),null==d||d(),null==(e=m)||e.disconnect(),m=null,l&&cancelAnimationFrame(f)}}const offset$1=offset$2,shift$1=shift$2,flip$1=flip$2,size$2=size$3,hide$1=hide$2,arrow$2=arrow$3,limitShift$1=limitShift$2,computePosition=(e,t,n)=>{const r=new Map,o={platform:platform,...n},a={...o.platform,_c:r};return computePosition$1(e,t,{...o,platform:a})};var index="undefined"!=typeof document?React.useLayoutEffect:React.useEffect;function deepEqual(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;0!=r--;)if(!deepEqual(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;0!=r--;){const n=o[r];if(("_owner"!==n||!e.$$typeof)&&!deepEqual(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function getDPR(e){if("undefined"==typeof window)return 1;return(e.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(e,t){const n=getDPR(e);return Math.round(t*n)/n}function useLatestRef(e){const t=React__namespace.useRef(e);return index((()=>{t.current=e})),t}function useFloating(e){void 0===e&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:a,floating:i}={},transform:s=!0,whileElementsMounted:l,open:c}=e,[u,d]=React__namespace.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=React__namespace.useState(r);deepEqual(f,r)||p(r);const[m,h]=React__namespace.useState(null),[_,g]=React__namespace.useState(null),v=React__namespace.useCallback((e=>{e!==C.current&&(C.current=e,h(e))}),[]),E=React__namespace.useCallback((e=>{e!==R.current&&(R.current=e,g(e))}),[]),y=a||m,b=i||_,C=React__namespace.useRef(null),R=React__namespace.useRef(null),w=React__namespace.useRef(u),S=null!=l,D=useLatestRef(l),T=useLatestRef(o),O=useLatestRef(c),A=React__namespace.useCallback((()=>{if(!C.current||!R.current)return;const e={placement:t,strategy:n,middleware:f};T.current&&(e.platform=T.current),computePosition(C.current,R.current,e).then((e=>{const t={...e,isPositioned:!1!==O.current};I.current&&!deepEqual(w.current,t)&&(w.current=t,ReactDOM__namespace.flushSync((()=>{d(t)})))}))}),[f,t,n,T,O]);index((()=>{!1===c&&w.current.isPositioned&&(w.current.isPositioned=!1,d((e=>({...e,isPositioned:!1}))))}),[c]);const I=React__namespace.useRef(!1);index((()=>(I.current=!0,()=>{I.current=!1})),[]),index((()=>{if(y&&(C.current=y),b&&(R.current=b),y&&b){if(D.current)return D.current(y,b,A);A()}}),[y,b,A,D,S]);const x=React__namespace.useMemo((()=>({reference:C,floating:R,setReference:v,setFloating:E})),[v,E]),N=React__namespace.useMemo((()=>({reference:y,floating:b})),[y,b]),F=React__namespace.useMemo((()=>{const e={position:n,left:0,top:0};if(!N.floating)return e;const t=roundByDPR(N.floating,u.x),r=roundByDPR(N.floating,u.y);return s?{...e,transform:"translate("+t+"px, "+r+"px)",...getDPR(N.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}}),[n,s,N.floating,u.x,u.y]);return React__namespace.useMemo((()=>({...u,update:A,refs:x,elements:N,floatingStyles:F})),[u,A,x,N,F])}const arrow$1=e=>({name:"arrow",options:e,fn(t){const{element:n,padding:r}="function"==typeof e?e(t):e;return n&&(o=n,{}.hasOwnProperty.call(o,"current"))?null!=n.current?arrow$2({element:n.current,padding:r}).fn(t):{}:n?arrow$2({element:n,padding:r}).fn(t):{};var o}}),offset=(e,t)=>({...offset$1(e),options:[e,t]}),shift=(e,t)=>({...shift$1(e),options:[e,t]}),limitShift=(e,t)=>({...limitShift$1(e),options:[e,t]}),flip=(e,t)=>({...flip$1(e),options:[e,t]}),size$1=(e,t)=>({...size$2(e),options:[e,t]}),hide=(e,t)=>({...hide$1(e),options:[e,t]}),arrow=(e,t)=>({...arrow$1(e),options:[e,t]});var MENTION_SUGGESTIONS_DEBOUNCE=500;function useMentionSuggestions(e){const t=useClient(),n=_useRoom(),[r,o]=React__default.default.useState(),a=React__default.default.useRef();return React__default.default.useEffect((()=>{const r=t[kInternal].mentionSuggestionsCache,i=t[kInternal].resolveMentionSuggestions;if(void 0===e||!i)return;const s={text:e,roomId:n.id},l=stringify(s);let c,u=!1;const d=async()=>{try{a.current=performance.now();const e=await i(s);u||(o(e),r.set(l,e))}catch(e){console.error(e?.message)}};return r.has(l)?o(r.get(l)):!a.current||Math.abs(performance.now()-a.current)>MENTION_SUGGESTIONS_DEBOUNCE?d():c=window.setTimeout((()=>{d()}),MENTION_SUGGESTIONS_DEBOUNCE),()=>{u=!0,window.clearTimeout(c)}}),[t,n.id,e]),r}function useSyncSource(){const e=useClient()[kInternal].createSyncSource,[t,n]=React__default.default.useState();return React__default.default.useEffect((()=>{const t=e();return n(t),()=>t.destroy()}),[e]),t}var History={isHistory:e=>isPlainObject$1(e)&&Array.isArray(e.redos)&&Array.isArray(e.undos)&&(0===e.redos.length||Operation.isOperationList(e.redos[0].operations))&&(0===e.undos.length||Operation.isOperationList(e.undos[0].operations))},SAVING=new WeakMap,MERGING=new WeakMap,SPLITTING_ONCE=new WeakMap,HistoryEditor={isHistoryEditor:e=>History.isHistory(e.history)&&Editor.isEditor(e),isMerging:e=>MERGING.get(e),isSplittingOnce:e=>SPLITTING_ONCE.get(e),setSplittingOnce(e,t){SPLITTING_ONCE.set(e,t)},isSaving:e=>SAVING.get(e),redo(e){e.redo()},undo(e){e.undo()},withMerging(e,t){var n=HistoryEditor.isMerging(e);MERGING.set(e,!0),t(),MERGING.set(e,n)},withNewBatch(e,t){var n=HistoryEditor.isMerging(e);MERGING.set(e,!0),SPLITTING_ONCE.set(e,!0),t(),MERGING.set(e,n),SPLITTING_ONCE.delete(e)},withoutMerging(e,t){var n=HistoryEditor.isMerging(e);MERGING.set(e,!1),t(),MERGING.set(e,n)},withoutSaving(e,t){var n=HistoryEditor.isSaving(e);SAVING.set(e,!1),t(),SAVING.set(e,n)}},withHistory=e=>{var t=e,{apply:n}=t;return t.history={undos:[],redos:[]},t.redo=()=>{var{history:e}=t,{redos:n}=e;if(n.length>0){var r=n[n.length-1];r.selectionBefore&&Transforms.setSelection(t,r.selectionBefore),HistoryEditor.withoutSaving(t,(()=>{Editor.withoutNormalizing(t,(()=>{for(var e of r.operations)t.apply(e)}))})),e.redos.pop(),t.writeHistory("undos",r)}},t.undo=()=>{var{history:e}=t,{undos:n}=e;if(n.length>0){var r=n[n.length-1];HistoryEditor.withoutSaving(t,(()=>{Editor.withoutNormalizing(t,(()=>{var e=r.operations.map(Operation.inverse).reverse();for(var n of e)t.apply(n);r.selectionBefore&&Transforms.setSelection(t,r.selectionBefore)}))})),t.writeHistory("redos",r),e.undos.pop()}},t.apply=e=>{var{operations:r,history:o}=t,{undos:a}=o,i=a[a.length-1],s=i&&i.operations[i.operations.length-1],l=HistoryEditor.isSaving(t),c=HistoryEditor.isMerging(t);if(null==l&&(l=shouldSave(e)),l){if(null==c&&(c=null!=i&&(0!==r.length||shouldMerge(e,s))),HistoryEditor.isSplittingOnce(t)&&(c=!1,HistoryEditor.setSplittingOnce(t,void 0)),i&&c)i.operations.push(e);else{var u={operations:[e],selectionBefore:t.selection};t.writeHistory("undos",u)}for(;a.length>100;)a.shift();o.redos=[]}n(e)},t.writeHistory=(e,n)=>{t.history[e].push(n)},t},shouldMerge=(e,t)=>!(!t||"insert_text"!==e.type||"insert_text"!==t.type||e.offset!==t.offset+t.text.length||!Path.equals(e.path,t.path))||!(!t||"remove_text"!==e.type||"remove_text"!==t.type||e.offset+e.text.length!==t.offset||!Path.equals(e.path,t.path)),shouldSave=(e,t)=>"set_selection"!==e.type,direction_1=direction,RTL="֑-߿יִ-﷽ﹰ-ﻼ",LTR="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ࠀ-῿‎Ⰰ-﬜︀-﹯﻽-￿",rtl=new RegExp("^[^"+LTR+"]*["+RTL+"]"),ltr=new RegExp("^[^"+RTL+"]*["+LTR+"]");function direction(e){return e=String(e||""),rtl.test(e)?"rtl":ltr.test(e)?"ltr":"neutral"}function isObject$3(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var isObject_1=isObject$3,freeGlobal$1="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,_freeGlobal=freeGlobal$1,freeGlobal=_freeGlobal,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root$2=freeGlobal||freeSelf||Function("return this")(),_root=root$2,root$1=_root,now$1=function(){return root$1.Date.now()},now_1=now$1,reWhitespace=/\s/;function trimmedEndIndex$1(e){for(var t=e.length;t--&&reWhitespace.test(e.charAt(t)););return t}var _trimmedEndIndex=trimmedEndIndex$1,trimmedEndIndex=_trimmedEndIndex,reTrimStart=/^\s+/;function baseTrim$1(e){return e?e.slice(0,trimmedEndIndex(e)+1).replace(reTrimStart,""):e}var _baseTrim=baseTrim$1,root=_root,Symbol$3=root.Symbol,_Symbol=Symbol$3,Symbol$2=_Symbol,objectProto$1=Object.prototype,hasOwnProperty=objectProto$1.hasOwnProperty,nativeObjectToString$1=objectProto$1.toString,symToStringTag$1=Symbol$2?Symbol$2.toStringTag:void 0;function getRawTag$1(e){var t=hasOwnProperty.call(e,symToStringTag$1),n=e[symToStringTag$1];try{e[symToStringTag$1]=void 0;var r=!0}catch(e){}var o=nativeObjectToString$1.call(e);return r&&(t?e[symToStringTag$1]=n:delete e[symToStringTag$1]),o}var _getRawTag=getRawTag$1,objectProto=Object.prototype,nativeObjectToString=objectProto.toString;function objectToString$1(e){return nativeObjectToString.call(e)}var _objectToString=objectToString$1,Symbol$1=_Symbol,getRawTag=_getRawTag,objectToString=_objectToString,nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol$1?Symbol$1.toStringTag:void 0;function baseGetTag$1(e){return null==e?void 0===e?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(e)?getRawTag(e):objectToString(e)}var _baseGetTag=baseGetTag$1;function isObjectLike$1(e){return null!=e&&"object"==typeof e}var isObjectLike_1=isObjectLike$1,baseGetTag=_baseGetTag,isObjectLike=isObjectLike_1,symbolTag="[object Symbol]";function isSymbol$1(e){return"symbol"==typeof e||isObjectLike(e)&&baseGetTag(e)==symbolTag}var isSymbol_1=isSymbol$1,baseTrim=_baseTrim,isObject$2=isObject_1,isSymbol=isSymbol_1,NAN=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;function toNumber$1(e){if("number"==typeof e)return e;if(isSymbol(e))return NAN;if(isObject$2(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=isObject$2(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=baseTrim(e);var n=reIsBinary.test(e);return n||reIsOctal.test(e)?freeParseInt(e.slice(2),n?2:8):reIsBadHex.test(e)?NAN:+e}var toNumber_1=toNumber$1,isObject$1=isObject_1,now=now_1,toNumber=toNumber_1,FUNC_ERROR_TEXT$1="Expected a function",nativeMax=Math.max,nativeMin=Math.min;function debounce$1(e,t,n){var r,o,a,i,s,l,c=0,u=!1,d=!1,f=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT$1);function p(t){var n=r,a=o;return r=o=void 0,c=t,i=e.apply(a,n)}function m(e){var n=e-l;return void 0===l||n>=t||n<0||d&&e-c>=a}function h(){var e=now();if(m(e))return _(e);s=setTimeout(h,function(e){var n=t-(e-l);return d?nativeMin(n,a-(e-c)):n}(e))}function _(e){return s=void 0,f&&r?p(e):(r=o=void 0,i)}function g(){var e=now(),n=m(e);if(r=arguments,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(h,t),u?p(e):i}(l);if(d)return clearTimeout(s),s=setTimeout(h,t),p(l)}return void 0===s&&(s=setTimeout(h,t)),i}return t=toNumber(t)||0,isObject$1(n)&&(u=!!n.leading,a=(d="maxWait"in n)?nativeMax(toNumber(n.maxWait)||0,t):a,f="trailing"in n?!!n.trailing:f),g.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=o=s=void 0},g.flush=function(){return void 0===s?i:_(now())},g}var debounce_1=debounce$1,debounce=debounce_1,isObject=isObject_1,FUNC_ERROR_TEXT="Expected a function";function throttle(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT);return isObject(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),debounce(e,t,{leading:r,maxWait:t,trailing:o})}var throttle_1=throttle;const t=e=>"object"==typeof e&&null!=e&&1===e.nodeType,e$1=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,n$1=(e,t)=>{if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){const n=getComputedStyle(e,null);return e$1(n.overflowY,t)||e$1(n.overflowX,t)||(e=>{const t=(e=>{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e);return!!t&&(t.clientHeight<e.scrollHeight||t.clientWidth<e.scrollWidth)})(e)}return!1},o$1=(e,t,n,r,o,a,i,s)=>a<e&&i>t||a>e&&i<t?0:a<=e&&s<=n||i>=t&&s>=n?a-e-r:i>t&&s<n||a<e&&s>n?i-t+o:0,l=e=>{const t=e.parentElement;return null==t?e.getRootNode().host||null:t},r$1=(e,n)=>{var r,o,a,i;if("undefined"==typeof document)return[];const{scrollMode:s,block:c,inline:u,boundary:d,skipOverflowHiddenElements:f}=n,p="function"==typeof d?d:e=>e!==d;if(!t(e))throw new TypeError("Invalid target");const m=document.scrollingElement||document.documentElement,h=[];let _=e;for(;t(_)&&p(_);){if(_=l(_),_===m){h.push(_);break}null!=_&&_===document.body&&n$1(_)&&!n$1(document.documentElement)||null!=_&&n$1(_,f)&&h.push(_)}const g=null!=(o=null==(r=window.visualViewport)?void 0:r.width)?o:innerWidth,v=null!=(i=null==(a=window.visualViewport)?void 0:a.height)?i:innerHeight,{scrollX:E,scrollY:y}=window,{height:b,width:C,top:R,right:w,bottom:S,left:D}=e.getBoundingClientRect(),{top:T,right:O,bottom:A,left:I}=(e=>{const t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);let x="start"===c||"nearest"===c?R-T:"end"===c?S+A:R+b/2-T+A,N="center"===u?D+C/2-I+O:"end"===u?w+O:D-I;const F=[];for(let e=0;e<h.length;e++){const t=h[e],{height:n,width:r,top:o,right:a,bottom:i,left:l}=t.getBoundingClientRect();if("if-needed"===s&&R>=0&&D>=0&&S<=v&&w<=g&&(t===m&&!n$1(t)||R>=o&&S<=i&&D>=l&&w<=a))return F;const d=getComputedStyle(t),f=parseInt(d.borderLeftWidth,10),p=parseInt(d.borderTopWidth,10),_=parseInt(d.borderRightWidth,10),T=parseInt(d.borderBottomWidth,10);let O=0,A=0;const I="offsetWidth"in t?t.offsetWidth-t.clientWidth-f-_:0,P="offsetHeight"in t?t.offsetHeight-t.clientHeight-p-T:0,k="offsetWidth"in t?0===t.offsetWidth?0:r/t.offsetWidth:0,$="offsetHeight"in t?0===t.offsetHeight?0:n/t.offsetHeight:0;if(m===t)O="start"===c?x:"end"===c?x-v:"nearest"===c?o$1(y,y+v,v,p,T,y+x,y+x+b,b):x-v/2,A="start"===u?N:"center"===u?N-g/2:"end"===u?N-g:o$1(E,E+g,g,f,_,E+N,E+N+C,C),O=Math.max(0,O+y),A=Math.max(0,A+E);else{O="start"===c?x-o-p:"end"===c?x-i+T+P:"nearest"===c?o$1(o,i,n,p,T+P,x,x+b,b):x-(o+n/2)+P/2,A="start"===u?N-l-f:"center"===u?N-(l+r/2)+I/2:"end"===u?N-a+_+I:o$1(l,a,r,f,_+I,N,N+C,C);const{scrollLeft:e,scrollTop:s}=t;O=0===$?0:Math.max(0,Math.min(s+O/$,t.scrollHeight-n/$+P)),A=0===k?0:Math.max(0,Math.min(e+A/k,t.scrollWidth-r/k+I)),x+=s-O,N+=e-A}F.push({el:t,top:O,left:A})}return F},o=e=>!1===e?{block:"end",inline:"nearest"}:(e=>e===Object(e)&&0!==Object.keys(e).length)(e)?e:{block:"start",inline:"nearest"};function e(e,t){if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;const n=(e=>{const t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);if((e=>"object"==typeof e&&"function"==typeof e.behavior)(t))return t.behavior(r$1(e,t));const r="boolean"==typeof t||null==t?void 0:t.behavior;for(const{el:a,top:i,left:s}of r$1(e,o(t))){const e=i-n.top+n.bottom,t=s-n.left+n.right;a.scroll({top:e,left:t,behavior:r})}}var resizeObservers=[],hasActiveObservations=function(){return resizeObservers.some((function(e){return e.activeTargets.length>0}))},hasSkippedObservations=function(){return resizeObservers.some((function(e){return e.skippedTargets.length>0}))},msg="ResizeObserver loop completed with undelivered notifications.",deliverResizeLoopError=function(){var e;"function"==typeof ErrorEvent?e=new ErrorEvent("error",{message:msg}):((e=document.createEvent("Event")).initEvent("error",!1,!1),e.message=msg),window.dispatchEvent(e)},ResizeObserverBoxOptions;!function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"}(ResizeObserverBoxOptions||(ResizeObserverBoxOptions={}));var freeze=function(e){return Object.freeze(e)},ResizeObserverSize=function(e,t){this.inlineSize=e,this.blockSize=t,freeze(this)},DOMRectReadOnly=function(){function e(e,t,n,r){return this.x=e,this.y=t,this.width=n,this.height=r,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,freeze(this)}return e.prototype.toJSON=function(){var e=this;return{x:e.x,y:e.y,top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),isSVG=function(e){return e instanceof SVGElement&&"getBBox"in e},isHidden$1=function(e){if(isSVG(e)){var t=e.getBBox(),n=t.width,r=t.height;return!n&&!r}var o=e,a=o.offsetWidth,i=o.offsetHeight;return!(a||i||e.getClientRects().length)},isElement=function(e){var t;if(e instanceof Element)return!0;var n=null===(t=null==e?void 0:e.ownerDocument)||void 0===t?void 0:t.defaultView;return!!(n&&e instanceof n.Element)},isReplacedElement=function(e){switch(e.tagName){case"INPUT":if("image"!==e.type)break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},global$1="undefined"!=typeof window?window:{},cache=new WeakMap,scrollRegexp=/auto|scroll/,verticalRegexp=/^tb|vertical/,IE=/msie|trident/i.test(global$1.navigator&&global$1.navigator.userAgent),parseDimension=function(e){return parseFloat(e||"0")},size=function(e,t,n){return void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=!1),new ResizeObserverSize((n?t:e)||0,(n?e:t)||0)},zeroBoxes=freeze({devicePixelContentBoxSize:size(),borderBoxSize:size(),contentBoxSize:size(),contentRect:new DOMRectReadOnly(0,0,0,0)}),calculateBoxSizes=function(e,t){if(void 0===t&&(t=!1),cache.has(e)&&!t)return cache.get(e);if(isHidden$1(e))return cache.set(e,zeroBoxes),zeroBoxes;var n=getComputedStyle(e),r=isSVG(e)&&e.ownerSVGElement&&e.getBBox(),o=!IE&&"border-box"===n.boxSizing,a=verticalRegexp.test(n.writingMode||""),i=!r&&scrollRegexp.test(n.overflowY||""),s=!r&&scrollRegexp.test(n.overflowX||""),l=r?0:parseDimension(n.paddingTop),c=r?0:parseDimension(n.paddingRight),u=r?0:parseDimension(n.paddingBottom),d=r?0:parseDimension(n.paddingLeft),f=r?0:parseDimension(n.borderTopWidth),p=r?0:parseDimension(n.borderRightWidth),m=r?0:parseDimension(n.borderBottomWidth),h=d+c,_=l+u,g=(r?0:parseDimension(n.borderLeftWidth))+p,v=f+m,E=s?e.offsetHeight-v-e.clientHeight:0,y=i?e.offsetWidth-g-e.clientWidth:0,b=o?h+g:0,C=o?_+v:0,R=r?r.width:parseDimension(n.width)-b-y,w=r?r.height:parseDimension(n.height)-C-E,S=R+h+y+g,D=w+_+E+v,T=freeze({devicePixelContentBoxSize:size(Math.round(R*devicePixelRatio),Math.round(w*devicePixelRatio),a),borderBoxSize:size(S,D,a),contentBoxSize:size(R,w,a),contentRect:new DOMRectReadOnly(d,l,R,w)});return cache.set(e,T),T},calculateBoxSize=function(e,t,n){var r=calculateBoxSizes(e,n),o=r.borderBoxSize,a=r.contentBoxSize,i=r.devicePixelContentBoxSize;switch(t){case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:return i;case ResizeObserverBoxOptions.BORDER_BOX:return o;default:return a}},ResizeObserverEntry=function(e){var t=calculateBoxSizes(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=freeze([t.borderBoxSize]),this.contentBoxSize=freeze([t.contentBoxSize]),this.devicePixelContentBoxSize=freeze([t.devicePixelContentBoxSize])},calculateDepthForNode=function(e){if(isHidden$1(e))return 1/0;for(var t=0,n=e.parentNode;n;)t+=1,n=n.parentNode;return t},broadcastActiveObservations=function(){var e=1/0,t=[];resizeObservers.forEach((function(n){if(0!==n.activeTargets.length){var r=[];n.activeTargets.forEach((function(t){var n=new ResizeObserverEntry(t.target),o=calculateDepthForNode(t.target);r.push(n),t.lastReportedSize=calculateBoxSize(t.target,t.observedBox),o<e&&(e=o)})),t.push((function(){n.callback.call(n.observer,r,n.observer)})),n.activeTargets.splice(0,n.activeTargets.length)}}));for(var n=0,r=t;n<r.length;n++){(0,r[n])()}return e},gatherActiveObservationsAtDepth=function(e){resizeObservers.forEach((function(t){t.activeTargets.splice(0,t.activeTargets.length),t.skippedTargets.splice(0,t.skippedTargets.length),t.observationTargets.forEach((function(n){n.isActive()&&(calculateDepthForNode(n.target)>e?t.activeTargets.push(n):t.skippedTargets.push(n))}))}))},process$1=function(){var e=0;for(gatherActiveObservationsAtDepth(e);hasActiveObservations();)e=broadcastActiveObservations(),gatherActiveObservationsAtDepth(e);return hasSkippedObservations()&&deliverResizeLoopError(),e>0},trigger,callbacks=[],notify=function(){return callbacks.splice(0).forEach((function(e){return e()}))},queueMicroTask=function(e){if(!trigger){var t=0,n=document.createTextNode("");new MutationObserver((function(){return notify()})).observe(n,{characterData:!0}),trigger=function(){n.textContent="".concat(t?t--:t++)}}callbacks.push(e),trigger()},queueResizeObserver=function(e){queueMicroTask((function(){requestAnimationFrame(e)}))},watching=0,isWatching=function(){return!!watching},CATCH_PERIOD=250,observerConfig={attributes:!0,characterData:!0,childList:!0,subtree:!0},events=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],time=function(e){return void 0===e&&(e=0),Date.now()+e},scheduled=!1,Scheduler=function(){function e(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return e.prototype.run=function(e){var t=this;if(void 0===e&&(e=CATCH_PERIOD),!scheduled){scheduled=!0;var n=time(e);queueResizeObserver((function(){var r=!1;try{r=process$1()}finally{if(scheduled=!1,e=n-time(),!isWatching())return;r?t.run(1e3):e>0?t.run(e):t.start()}}))}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,observerConfig)};document.body?t():global$1.addEventListener("DOMContentLoaded",t)},e.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),events.forEach((function(t){return global$1.addEventListener(t,e.listener,!0)})))},e.prototype.stop=function(){var e=this;this.stopped||(this.observer&&this.observer.disconnect(),events.forEach((function(t){return global$1.removeEventListener(t,e.listener,!0)})),this.stopped=!0)},e}(),scheduler=new Scheduler,updateCount=function(e){!watching&&e>0&&scheduler.start(),!(watching+=e)&&scheduler.stop()},skipNotifyOnElement=function(e){return!isSVG(e)&&!isReplacedElement(e)&&"inline"===getComputedStyle(e).display},ResizeObservation=function(){function e(e,t){this.target=e,this.observedBox=t||ResizeObserverBoxOptions.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var e=calculateBoxSize(this.target,this.observedBox,!0);return skipNotifyOnElement(this.target)&&(this.lastReportedSize=e),this.lastReportedSize.inlineSize!==e.inlineSize||this.lastReportedSize.blockSize!==e.blockSize},e}(),ResizeObserverDetail=function(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t},observerMap=new WeakMap,getObservationIndex=function(e,t){for(var n=0;n<e.length;n+=1)if(e[n].target===t)return n;return-1},ResizeObserverController=function(){function e(){}return e.connect=function(e,t){var n=new ResizeObserverDetail(e,t);observerMap.set(e,n)},e.observe=function(e,t,n){var r=observerMap.get(e),o=0===r.observationTargets.length;getObservationIndex(r.observationTargets,t)<0&&(o&&resizeObservers.push(r),r.observationTargets.push(new ResizeObservation(t,n&&n.box)),updateCount(1),scheduler.schedule())},e.unobserve=function(e,t){var n=observerMap.get(e),r=getObservationIndex(n.observationTargets,t),o=1===n.observationTargets.length;r>=0&&(o&&resizeObservers.splice(resizeObservers.indexOf(n),1),n.observationTargets.splice(r,1),updateCount(-1))},e.disconnect=function(e){var t=this,n=observerMap.get(e);n.observationTargets.slice().forEach((function(n){return t.unobserve(e,n.target)})),n.activeTargets.splice(0,n.activeTargets.length)},e}(),ResizeObserver$1=function(){function e(e){if(0===arguments.length)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if("function"!=typeof e)throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");ResizeObserverController.connect(this,e)}return e.prototype.observe=function(e,t){if(0===arguments.length)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!isElement(e))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");ResizeObserverController.observe(this,e,t)},e.prototype.unobserve=function(e){if(0===arguments.length)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!isElement(e))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");ResizeObserverController.unobserve(this,e)},e.prototype.disconnect=function(){ResizeObserverController.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}(),lib={};Object.defineProperty(lib,"__esModule",{value:!0});for(var IS_MAC="undefined"!=typeof window&&/Mac|iPod|iPhone|iPad/.test(window.navigator.platform),MODIFIERS$1={alt:"altKey",control:"ctrlKey",meta:"metaKey",shift:"shiftKey"},ALIASES={add:"+",break:"pause",cmd:"meta",command:"meta",ctl:"control",ctrl:"control",del:"delete",down:"arrowdown",esc:"escape",ins:"insert",left:"arrowleft",mod:IS_MAC?"meta":"control",opt:"alt",option:"alt",return:"enter",right:"arrowright",space:" ",spacebar:" ",up:"arrowup",win:"meta",windows:"meta"},CODES={backspace:8,tab:9,enter:13,shift:16,control:17,alt:18,pause:19,capslock:20,escape:27," ":32,pageup:33,pagedown:34,end:35,home:36,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,insert:45,delete:46,meta:91,numlock:144,scrolllock:145,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},f=1;f<20;f++)CODES["f"+f]=111+f;function isHotkey(e,t,n){t&&!("byKey"in t)&&(n=t,t=null),Array.isArray(e)||(e=[e]);var r=e.map((function(e){return parseHotkey(e,t)})),o=function(e){return r.some((function(t){return compareHotkey(t,e)}))};return null==n?o:o(n)}function isCodeHotkey(e,t){return isHotkey(e,t)}function isKeyHotkey(e,t){return isHotkey(e,{byKey:!0},t)}function parseHotkey(e,t){var n=t&&t.byKey,r={},o=(e=e.replace("++","+add")).split("+"),a=o.length;for(var i in MODIFIERS$1)r[MODIFIERS$1[i]]=!1;var s=!0,l=!1,c=void 0;try{for(var u,d=o[Symbol.iterator]();!(s=(u=d.next()).done);s=!0){var f=u.value,p=f.endsWith("?")&&f.length>1;p&&(f=f.slice(0,-1));var m=toKeyName(f),h=MODIFIERS$1[m];if(f.length>1&&!h&&!ALIASES[f]&&!CODES[m])throw new TypeError('Unknown modifier: "'+f+'"');1!==a&&h||(n?r.key=m:r.which=toKeyCode(f)),h&&(r[h]=!p||null)}}catch(e){l=!0,c=e}finally{try{!s&&d.return&&d.return()}finally{if(l)throw c}}return r}function compareHotkey(e,t){for(var n in e){var r=e[n],o=void 0;if(null!=r&&((null!=(o="key"===n&&null!=t.key?t.key.toLowerCase():"which"===n?91===r&&93===t.which?91:t.which:t[n])||!1!==r)&&o!==r))return!1}return!0}function toKeyCode(e){return e=toKeyName(e),CODES[e]||e.toUpperCase().charCodeAt(0)}function toKeyName(e){return e=e.toLowerCase(),e=ALIASES[e]||e}lib.default=isHotkey;var isHotkey_1=lib.isHotkey=isHotkey;function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function _objectWithoutProperties(e,t){if(null==e)return{};var n,r,o=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function _typeof$3(e){return _typeof$3="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$3(e)}function _toPrimitive$3(e,t){if("object"!==_typeof$3(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$3(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$3(e){var t=_toPrimitive$3(e,"string");return"symbol"===_typeof$3(t)?t:String(t)}function _defineProperty$3(e,t,n){return(t=_toPropertyKey$3(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}lib.isCodeHotkey=isCodeHotkey,lib.isKeyHotkey=isKeyHotkey,lib.parseHotkey=parseHotkey,lib.compareHotkey=compareHotkey,lib.toKeyCode=toKeyCode,lib.toKeyName=toKeyName;var EditorContext=React.createContext(null),useSlateStatic=()=>{var e=React.useContext(EditorContext);if(!e)throw new Error("The `useSlateStatic` hook must be used inside the <Slate> component's context.");return e},_navigator$userAgent$,_navigator$userAgent$2,REACT_MAJOR_VERSION=parseInt(React__default.default.version.split(".")[0],10),IS_IOS=!1,IS_ANDROID="undefined"!=typeof navigator&&/Android/.test(navigator.userAgent),IS_FIREFOX="undefined"!=typeof navigator&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),IS_WEBKIT="undefined"!=typeof navigator&&/AppleWebKit(?!.*Chrome)/i.test(navigator.userAgent),IS_EDGE_LEGACY="undefined"!=typeof navigator&&/Edge?\/(?:[0-6][0-9]|[0-7][0-8])(?:\.)/i.test(navigator.userAgent),IS_CHROME="undefined"!=typeof navigator&&/Chrome/i.test(navigator.userAgent),IS_CHROME_LEGACY="undefined"!=typeof navigator&&/Chrome?\/(?:[0-7][0-5]|[0-6][0-9])(?:\.)/i.test(navigator.userAgent),IS_ANDROID_CHROME_LEGACY=IS_ANDROID&&"undefined"!=typeof navigator&&/Chrome?\/(?:[0-5]?\d)(?:\.)/i.test(navigator.userAgent),IS_FIREFOX_LEGACY="undefined"!=typeof navigator&&/^(?!.*Seamonkey)(?=.*Firefox\/(?:[0-7][0-9]|[0-8][0-6])(?:\.)).*/i.test(navigator.userAgent),IS_UC_MOBILE="undefined"!=typeof navigator&&/.*UCBrowser/.test(navigator.userAgent),IS_WECHATBROWSER="undefined"!=typeof navigator&&/.*Wechat/.test(navigator.userAgent)&&!/.*MacWechat/.test(navigator.userAgent),CAN_USE_DOM=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement);"undefined"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&null!==(_navigator$userAgent$=navigator.userAgent.match(/Version\/(\d+)/))&&void 0!==_navigator$userAgent$&&_navigator$userAgent$[1]&&parseInt(null===(_navigator$userAgent$2=navigator.userAgent.match(/Version\/(\d+)/))||void 0===_navigator$userAgent$2?void 0:_navigator$userAgent$2[1],10);var HAS_BEFORE_INPUT_SUPPORT=(!IS_CHROME_LEGACY||!IS_ANDROID_CHROME_LEGACY)&&!IS_EDGE_LEGACY&&"undefined"!=typeof globalThis&&globalThis.InputEvent&&"function"==typeof globalThis.InputEvent.prototype.getTargetRanges,IS_NODE_MAP_DIRTY=new WeakMap,NODE_TO_INDEX=new WeakMap,NODE_TO_PARENT=new WeakMap,EDITOR_TO_WINDOW=new WeakMap,EDITOR_TO_ELEMENT=new WeakMap,EDITOR_TO_PLACEHOLDER_ELEMENT=new WeakMap,ELEMENT_TO_NODE=new WeakMap,NODE_TO_ELEMENT=new WeakMap,NODE_TO_KEY=new WeakMap,EDITOR_TO_KEY_TO_ELEMENT=new WeakMap,IS_READ_ONLY=new WeakMap,IS_FOCUSED=new WeakMap,IS_COMPOSING=new WeakMap,EDITOR_TO_USER_SELECTION=new WeakMap,EDITOR_TO_ON_CHANGE=new WeakMap,EDITOR_TO_SCHEDULE_FLUSH=new WeakMap,EDITOR_TO_PENDING_INSERTION_MARKS=new WeakMap,EDITOR_TO_USER_MARKS=new WeakMap,EDITOR_TO_PENDING_DIFFS=new WeakMap,EDITOR_TO_PENDING_ACTION=new WeakMap,EDITOR_TO_PENDING_SELECTION=new WeakMap,EDITOR_TO_FORCE_RENDER=new WeakMap,PLACEHOLDER_SYMBOL=Symbol("placeholder"),MARK_PLACEHOLDER_SYMBOL=Symbol("mark-placeholder"),DOMNode=globalThis.Node,DOMText=globalThis.Text,getDefaultView=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView||null,isDOMComment=e=>isDOMNode(e)&&8===e.nodeType,isDOMElement=e=>isDOMNode(e)&&1===e.nodeType,isDOMNode=e=>{var t=getDefaultView(e);return!!t&&e instanceof t.Node},isDOMSelection=e=>{var t=e&&e.anchorNode&&getDefaultView(e.anchorNode);return!!t&&e instanceof t.Selection},isDOMText=e=>isDOMNode(e)&&3===e.nodeType,isPlainTextOnlyPaste=e=>e.clipboardData&&""!==e.clipboardData.getData("text/plain")&&1===e.clipboardData.types.length,normalizeDOMPoint=e=>{var[t,n]=e;if(isDOMElement(t)&&t.childNodes.length){var r=n===t.childNodes.length,o=r?n-1:n;for([t,o]=getEditableChildAndIndex(t,o,r?"backward":"forward"),r=o<n;isDOMElement(t)&&t.childNodes.length;){var a=r?t.childNodes.length-1:0;t=getEditableChild(t,a,r?"backward":"forward")}n=r&&null!=t.textContent?t.textContent.length:0}return[t,n]},hasShadowRoot=e=>{for(var t=e&&e.parentNode;t;){if("[object ShadowRoot]"===t.toString())return!0;t=t.parentNode}return!1},getEditableChildAndIndex=(e,t,n)=>{for(var{childNodes:r}=e,o=r[t],a=t,i=!1,s=!1;(isDOMComment(o)||isDOMElement(o)&&0===o.childNodes.length||isDOMElement(o)&&"false"===o.getAttribute("contenteditable"))&&(!i||!s);)a>=r.length?(i=!0,a=t-1,n="backward"):a<0?(s=!0,a=t+1,n="forward"):(o=r[a],t=a,a+="forward"===n?1:-1);return[o,t]},getEditableChild=(e,t,n)=>{var[r]=getEditableChildAndIndex(e,t,n);return r},getPlainText=e=>{var t="";if(isDOMText(e)&&e.nodeValue)return e.nodeValue;if(isDOMElement(e)){for(var n of Array.from(e.childNodes))t+=getPlainText(n);var r=getComputedStyle(e).getPropertyValue("display");"block"!==r&&"list"!==r&&"BR"!==e.tagName||(t+="\n")}return t},catchSlateFragment=/data-slate-fragment="(.+?)"/m,getSlateFragmentAttribute=e=>{var t=e.getData("text/html"),[,n]=t.match(catchSlateFragment)||[];return n},getSelection=e=>null!=e.getSelection?e.getSelection():document.getSelection(),isTrackedMutation=(e,t,n)=>{var{target:r}=t;if(isDOMElement(r)&&r.matches('[contentEditable="false"]'))return!1;var{document:o}=ReactEditor.getWindow(e);if(o.contains(r))return ReactEditor.hasDOMNode(e,r,{editable:!0});var a=n.find((e=>{var{addedNodes:t,removedNodes:n}=e;for(var o of t)if(o===r||o.contains(r))return!0;for(var a of n)if(a===r||a.contains(r))return!0}));return!(!a||a===t)&&isTrackedMutation(e,a,n)},getActiveElement=()=>{for(var e=document.activeElement;null!==(t=e)&&void 0!==t&&t.shadowRoot&&null!==(n=e.shadowRoot)&&void 0!==n&&n.activeElement;){var t,n,r;e=null===(r=e)||void 0===r||null===(r=r.shadowRoot)||void 0===r?void 0:r.activeElement}return e},isBefore=(e,t)=>Boolean(e.compareDocumentPosition(t)&DOMNode.DOCUMENT_POSITION_PRECEDING),isAfter=(e,t)=>Boolean(e.compareDocumentPosition(t)&DOMNode.DOCUMENT_POSITION_FOLLOWING),n=0;class Key{constructor(){_defineProperty$3(this,"id",void 0),this.id="".concat(n++)}}var ReactEditor={androidPendingDiffs:e=>EDITOR_TO_PENDING_DIFFS.get(e),androidScheduleFlush:e=>{var t;null===(t=EDITOR_TO_SCHEDULE_FLUSH.get(e))||void 0===t||t()},blur:e=>{var t=ReactEditor.toDOMNode(e,e),n=ReactEditor.findDocumentOrShadowRoot(e);IS_FOCUSED.set(e,!1),n.activeElement===t&&t.blur()},deselect:e=>{var{selection:t}=e,n=ReactEditor.findDocumentOrShadowRoot(e),r=getSelection(n);r&&r.rangeCount>0&&r.removeAllRanges(),t&&Transforms.deselect(e)},findDocumentOrShadowRoot:e=>{var t=ReactEditor.toDOMNode(e,e),n=t.getRootNode();return n instanceof Document||n instanceof ShadowRoot?n:t.ownerDocument},findEventRange:(e,t)=>{"nativeEvent"in t&&(t=t.nativeEvent);var{clientX:n,clientY:r,target:o}=t;if(null==n||null==r)throw new Error("Cannot resolve a Slate range from a DOM event: ".concat(t));var a,i=ReactEditor.toSlateNode(e,t.target),s=ReactEditor.findPath(e,i);if(Element$2.isElement(i)&&Editor.isVoid(e,i)){var l=o.getBoundingClientRect(),c=e.isInline(i)?n-l.left<l.left+l.width-n:r-l.top<l.top+l.height-r,u=Editor.point(e,s,{edge:c?"start":"end"}),d=c?Editor.before(e,u):Editor.after(e,u);if(d)return Editor.range(e,d)}var{document:f}=ReactEditor.getWindow(e);if(f.caretRangeFromPoint)a=f.caretRangeFromPoint(n,r);else{var p=f.caretPositionFromPoint(n,r);p&&((a=f.createRange()).setStart(p.offsetNode,p.offset),a.setEnd(p.offsetNode,p.offset))}if(!a)throw new Error("Cannot resolve a Slate range from a DOM event: ".concat(t));return ReactEditor.toSlateRange(e,a,{exactMatch:!1,suppressThrow:!1})},findKey:(e,t)=>{var n=NODE_TO_KEY.get(t);return n||(n=new Key,NODE_TO_KEY.set(t,n)),n},findPath:(e,t)=>{for(var n=[],r=t;;){var o=NODE_TO_PARENT.get(r);if(null==o){if(Editor.isEditor(r))return n;break}var a=NODE_TO_INDEX.get(r);if(null==a)break;n.unshift(a),r=o}throw new Error("Unable to find the path for Slate node: ".concat(Scrubber.stringify(t)))},focus:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{retries:5};if(!IS_FOCUSED.get(e)){if(t.retries<=0)throw new Error("Could not set focus, editor seems stuck with pending operations");if(e.operations.length>0)setTimeout((()=>{ReactEditor.focus(e,{retries:t.retries-1})}),10);else{var n=ReactEditor.toDOMNode(e,e),r=ReactEditor.findDocumentOrShadowRoot(e);if(r.activeElement!==n){if(e.selection&&r instanceof Document){var o=getSelection(r),a=ReactEditor.toDOMRange(e,e.selection);null==o||o.removeAllRanges(),null==o||o.addRange(a)}e.selection||Transforms.select(e,Editor.start(e,[])),IS_FOCUSED.set(e,!0),n.focus({preventScroll:!0})}}}},getWindow:e=>{var t=EDITOR_TO_WINDOW.get(e);if(!t)throw new Error("Unable to find a host window element for this editor");return t},hasDOMNode:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{editable:o=!1}=r,a=ReactEditor.toDOMNode(e,e);try{n=isDOMElement(t)?t:t.parentElement}catch(e){if(e instanceof Error&&!e.message.includes('Permission denied to access property "nodeType"'))throw e}return!!n&&!(n.closest("[data-slate-editor]")!==a||o&&!n.isContentEditable&&("boolean"!=typeof n.isContentEditable||n.closest('[contenteditable="false"]')!==a)&&!n.getAttribute("data-slate-zero-width"))},hasEditableTarget:(e,t)=>isDOMNode(t)&&ReactEditor.hasDOMNode(e,t,{editable:!0}),hasRange:(e,t)=>{var{anchor:n,focus:r}=t;return Editor.hasPath(e,n.path)&&Editor.hasPath(e,r.path)},hasSelectableTarget:(e,t)=>ReactEditor.hasEditableTarget(e,t)||ReactEditor.isTargetInsideNonReadonlyVoid(e,t),hasTarget:(e,t)=>isDOMNode(t)&&ReactEditor.hasDOMNode(e,t),insertData:(e,t)=>{e.insertData(t)},insertFragmentData:(e,t)=>e.insertFragmentData(t),insertTextData:(e,t)=>e.insertTextData(t),isComposing:e=>!!IS_COMPOSING.get(e),isFocused:e=>!!IS_FOCUSED.get(e),isReadOnly:e=>!!IS_READ_ONLY.get(e),isTargetInsideNonReadonlyVoid:(e,t)=>{if(IS_READ_ONLY.get(e))return!1;var n=ReactEditor.hasTarget(e,t)&&ReactEditor.toSlateNode(e,t);return Element$2.isElement(n)&&Editor.isVoid(e,n)},setFragmentData:(e,t,n)=>e.setFragmentData(t,n),toDOMNode:(e,t)=>{var n=EDITOR_TO_KEY_TO_ELEMENT.get(e),r=Editor.isEditor(t)?EDITOR_TO_ELEMENT.get(e):null==n?void 0:n.get(ReactEditor.findKey(e,t));if(!r)throw new Error("Cannot resolve a DOM node from Slate node: ".concat(Scrubber.stringify(t)));return r},toDOMPoint:(e,t)=>{var n,[r]=Editor.node(e,t.path),o=ReactEditor.toDOMNode(e,r);Editor.void(e,{at:t})&&(t={path:t.path,offset:0});for(var a=Array.from(o.querySelectorAll("[data-slate-string], [data-slate-zero-width]")),i=0,s=0;s<a.length;s++){var l=a[s],c=l.childNodes[0];if(null!=c&&null!=c.textContent){var{length:u}=c.textContent,d=l.getAttribute("data-slate-length"),f=i+(null==d?u:parseInt(d,10)),p=a[s+1];if(t.offset===f&&null!=p&&p.hasAttribute("data-slate-mark-placeholder")){var m,h=p.childNodes[0];n=[h instanceof DOMText?h:p,null!==(m=p.textContent)&&void 0!==m&&m.startsWith("\ufeff")?1:0];break}if(t.offset<=f){n=[c,Math.min(u,Math.max(0,t.offset-i))];break}i=f}}if(!n)throw new Error("Cannot resolve a DOM point from Slate point: ".concat(Scrubber.stringify(t)));return n},toDOMRange:(e,t)=>{var{anchor:n,focus:r}=t,o=Range.isBackward(t),a=ReactEditor.toDOMPoint(e,n),i=Range.isCollapsed(t)?a:ReactEditor.toDOMPoint(e,r),s=ReactEditor.getWindow(e).document.createRange(),[l,c]=o?i:a,[u,d]=o?a:i,f=!!(isDOMElement(l)?l:l.parentElement).getAttribute("data-slate-zero-width"),p=!!(isDOMElement(u)?u:u.parentElement).getAttribute("data-slate-zero-width");return s.setStart(l,f?1:c),s.setEnd(u,p?1:d),s},toSlateNode:(e,t)=>{var n=isDOMElement(t)?t:t.parentElement;n&&!n.hasAttribute("data-slate-node")&&(n=n.closest("[data-slate-node]"));var r=n?ELEMENT_TO_NODE.get(n):null;if(!r)throw new Error("Cannot resolve a Slate node from DOM node: ".concat(n));return r},toSlatePoint:(e,t,n)=>{var{exactMatch:r,suppressThrow:o,searchDirection:a="backward"}=n,[i,s]=r?t:normalizeDOMPoint(t),l=i.parentNode,c=null,u=0;if(l){var d,f,p=ReactEditor.toDOMNode(e,e),m=l.closest('[data-slate-void="true"]'),h=m&&p.contains(m)?m:null,_=l.closest('[contenteditable="false"]'),g=_&&p.contains(_)?_:null,v=l.closest("[data-slate-leaf]"),E=null;if(v){if(c=v.closest('[data-slate-node="text"]')){var y=ReactEditor.getWindow(e).document.createRange();y.setStart(c,0),y.setEnd(i,s);var b=y.cloneContents();[...Array.prototype.slice.call(b.querySelectorAll("[data-slate-zero-width]")),...Array.prototype.slice.call(b.querySelectorAll("[contenteditable=false]"))].forEach((e=>{IS_ANDROID&&!r&&e.hasAttribute("data-slate-zero-width")&&e.textContent.length>0&&"\ufeff"!==e.textContext?e.textContent.startsWith("\ufeff")&&(e.textContent=e.textContent.slice(1)):e.parentNode.removeChild(e)})),u=b.textContent.length,E=c}}else if(h){for(var C=h.querySelectorAll("[data-slate-leaf]"),R=0;R<C.length;R++){var w=C[R];if(ReactEditor.hasDOMNode(e,w)){v=w;break}}v?(c=v.closest('[data-slate-node="text"]'),u=(E=v).textContent.length,E.querySelectorAll("[data-slate-zero-width]").forEach((e=>{u-=e.textContent.length}))):u=1}else if(g){var S,D,T=e=>e?e.querySelectorAll("[data-slate-leaf]:not(:scope [data-slate-editor] [data-slate-leaf])"):[],O=g.closest('[data-slate-node="element"]');if("forward"===a)v=null!==(S=[...T(O),...T(null==O?void 0:O.nextElementSibling)].find((e=>isAfter(g,e))))&&void 0!==S?S:null;else v=null!==(D=[...T(null==O?void 0:O.previousElementSibling),...T(O)].findLast((e=>isBefore(g,e))))&&void 0!==D?D:null;v&&(c=v.closest('[data-slate-node="text"]'),E=v,"forward"===a?u=0:(u=E.textContent.length,E.querySelectorAll("[data-slate-zero-width]").forEach((e=>{u-=e.textContent.length}))))}E&&u===E.textContent.length&&IS_ANDROID&&"z"===E.getAttribute("data-slate-zero-width")&&null!==(d=E.textContent)&&void 0!==d&&d.startsWith("\ufeff")&&(l.hasAttribute("data-slate-zero-width")||IS_FIREFOX&&null!==(f=E.textContent)&&void 0!==f&&f.endsWith("\n\n"))&&u--}if(IS_ANDROID&&!c&&!r){var A=l.hasAttribute("data-slate-node")?l:l.closest("[data-slate-node]");if(A&&ReactEditor.hasDOMNode(e,A,{editable:!0})){var I=ReactEditor.toSlateNode(e,A),{path:x,offset:N}=Editor.start(e,ReactEditor.findPath(e,I));return A.querySelector("[data-slate-leaf]")||(N=s),{path:x,offset:N}}}if(!c){if(o)return null;throw new Error("Cannot resolve a Slate point from DOM point: ".concat(t))}var F=ReactEditor.toSlateNode(e,c);return{path:ReactEditor.findPath(e,F),offset:u}},toSlateRange:(e,t,n)=>{var r,o,a,i,s,l,{exactMatch:c,suppressThrow:u}=n;if(isDOMSelection(t)?t.anchorNode:t.startContainer)if(isDOMSelection(t)){if(IS_FIREFOX&&t.rangeCount>1){i=t.focusNode;var d=t.getRangeAt(0),f=t.getRangeAt(t.rangeCount-1);if(i instanceof HTMLTableRowElement&&d.startContainer instanceof HTMLTableRowElement&&f.startContainer instanceof HTMLTableRowElement){function p(e){return e.childElementCount>0?p(e.children[0]):e}var m=d.startContainer,h=f.startContainer,_=p(m.children[d.startOffset]),g=p(h.children[f.startOffset]);s=0,o=g.childNodes.length>0?g.childNodes[0]:g,i=_.childNodes.length>0?_.childNodes[0]:_,a=g instanceof HTMLElement?g.innerHTML.length:0}else d.startContainer===i?(o=f.endContainer,a=f.endOffset,s=d.startOffset):(o=d.startContainer,a=d.endOffset,s=f.startOffset)}else o=t.anchorNode,a=t.anchorOffset,i=t.focusNode,s=t.focusOffset;l=IS_CHROME&&hasShadowRoot(o)||IS_FIREFOX?t.anchorNode===t.focusNode&&t.anchorOffset===t.focusOffset:t.isCollapsed}else o=t.startContainer,a=t.startOffset,i=t.endContainer,s=t.endOffset,l=t.collapsed;if(null==o||null==i||null==a||null==s)throw new Error("Cannot resolve a Slate range from DOM range: ".concat(t));IS_FIREFOX&&null!==(r=i.textContent)&&void 0!==r&&r.endsWith("\n\n")&&s===i.textContent.length&&s--;var v=ReactEditor.toSlatePoint(e,[o,a],{exactMatch:c,suppressThrow:u});if(!v)return null;var E=isBefore(o,i)||o===i&&s<a,y=l?v:ReactEditor.toSlatePoint(e,[i,s],{exactMatch:c,suppressThrow:u,searchDirection:E?"forward":"backward"});if(!y)return null;var b={anchor:v,focus:y};return Range.isExpanded(b)&&Range.isForward(b)&&isDOMElement(i)&&Editor.void(e,{at:b.focus,mode:"highest"})&&(b=Editor.unhangRange(e,b,{voids:!0})),b}};function verifyDiffState(e,t){var{path:n,diff:r}=t;if(!Editor.hasPath(e,n))return!1;var o=Node$1.get(e,n);if(!Text$1.isText(o))return!1;if(r.start!==o.text.length||0===r.text.length)return o.text.slice(r.start,r.start+r.text.length)===r.text;var a=Path.next(n);if(!Editor.hasPath(e,a))return!1;var i=Node$1.get(e,a);return Text$1.isText(i)&&i.text.startsWith(r.text)}function applyStringDiff(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce(((e,t)=>e.slice(0,t.start)+t.text+e.slice(t.end)),e)}function longestCommonPrefixLength(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)if(e.charAt(r)!==t.charAt(r))return r;return n}function longestCommonSuffixLength(e,t,n){for(var r=Math.min(e.length,t.length,n),o=0;o<r;o++)if(e.charAt(e.length-o-1)!==t.charAt(t.length-o-1))return o;return r}function normalizeStringDiff(e,t){var{start:n,end:r,text:o}=t,a=e.slice(n,r),i=longestCommonPrefixLength(a,o),s=longestCommonSuffixLength(a,o,Math.min(a.length-i,o.length-i)),l={start:n+i,end:r-s,text:o.slice(i,o.length-s)};return l.start===l.end&&0===l.text.length?null:l}function mergeStringDiffs(e,t,n){var r=Math.min(t.start,n.start),o=Math.max(0,Math.min(t.start+t.text.length,n.end)-n.start),a=applyStringDiff(e,t,n),i=Math.max(n.start+n.text.length,t.start+t.text.length+(t.start+t.text.length>n.start?n.text.length:0)-o),s=a.slice(r,i);return normalizeStringDiff(e,{start:r,end:Math.max(t.end,n.end-t.text.length+(t.end-t.start)),text:s})}function targetRange(e){var{path:t,diff:n}=e;return{anchor:{path:t,offset:n.start},focus:{path:t,offset:n.end}}}function normalizePoint(e,t){var{path:n,offset:r}=t;if(!Editor.hasPath(e,n))return null;var o=Node$1.get(e,n);if(!Text$1.isText(o))return null;var a=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:n});if(!a)return null;for(;r>o.text.length;){var i=Editor.next(e,{at:n,match:Text$1.isText});if(!i||!Path.isDescendant(i[1],a[1]))return null;r-=o.text.length,o=i[0],n=i[1]}return{path:n,offset:r}}function normalizeRange(e,t){var n=normalizePoint(e,t.anchor);if(!n)return null;if(Range.isCollapsed(t))return{anchor:n,focus:n};var r=normalizePoint(e,t.focus);return r?{anchor:n,focus:r}:null}function transformPendingPoint(e,t,n){var r=EDITOR_TO_PENDING_DIFFS.get(e),o=null==r?void 0:r.find((e=>{var{path:n}=e;return Path.equals(n,t.path)}));if(!o||t.offset<=o.diff.start)return Point.transform(t,n,{affinity:"backward"});var{diff:a}=o;if(t.offset<=a.start+a.text.length){var i={path:t.path,offset:a.start},s=Point.transform(i,n,{affinity:"backward"});return s?{path:s.path,offset:s.offset+t.offset-a.start}:null}var l={path:t.path,offset:t.offset-a.text.length+a.end-a.start},c=Point.transform(l,n,{affinity:"backward"});return c?"split_node"===n.type&&Path.equals(n.path,t.path)&&l.offset<n.position&&a.start<n.position?c:{path:c.path,offset:c.offset+a.text.length-a.end+a.start}:null}function transformPendingRange(e,t,n){var r=transformPendingPoint(e,t.anchor,n);if(!r)return null;if(Range.isCollapsed(t))return{anchor:r,focus:r};var o=transformPendingPoint(e,t.focus,n);return o?{anchor:r,focus:o}:null}function transformTextDiff(e,t){var{path:n,diff:r,id:o}=e;switch(t.type){case"insert_text":return!Path.equals(t.path,n)||t.offset>=r.end?e:t.offset<=r.start?{diff:{start:t.text.length+r.start,end:t.text.length+r.end,text:r.text},id:o,path:n}:{diff:{start:r.start,end:r.end+t.text.length,text:r.text},id:o,path:n};case"remove_text":return!Path.equals(t.path,n)||t.offset>=r.end?e:t.offset+t.text.length<=r.start?{diff:{start:r.start-t.text.length,end:r.end-t.text.length,text:r.text},id:o,path:n}:{diff:{start:r.start,end:r.end-t.text.length,text:r.text},id:o,path:n};case"split_node":return!Path.equals(t.path,n)||t.position>=r.end?{diff:r,id:o,path:Path.transform(n,t,{affinity:"backward"})}:t.position>r.start?{diff:{start:r.start,end:Math.min(t.position,r.end),text:r.text},id:o,path:n}:{diff:{start:r.start-t.position,end:r.end-t.position,text:r.text},id:o,path:Path.transform(n,t,{affinity:"forward"})};case"merge_node":return Path.equals(t.path,n)?{diff:{start:r.start+t.position,end:r.end+t.position,text:r.text},id:o,path:Path.transform(n,t)}:{diff:r,id:o,path:Path.transform(n,t)}}var a=Path.transform(n,t);return a?{diff:r,path:a,id:o}:null}function ownKeys$6$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$6$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6$1(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var RESOLVE_DELAY=25,FLUSH_DELAY=200,debug=function(){},isDataTransfer=e=>"DataTransfer"===(null==e?void 0:e.constructor.name);function createAndroidInputManager(e){var{editor:t,scheduleOnDOMSelectionChange:n,onDOMSelectionChange:r}=e,o=!1,a=null,i=null,s=null,l=0,c=!1,u=()=>{var e=EDITOR_TO_PENDING_SELECTION.get(t);if(EDITOR_TO_PENDING_SELECTION.delete(t),e){var{selection:n}=t,r=normalizeRange(t,e);!r||n&&Range.equals(r,n)||Transforms.select(t,r)}},d=()=>{if(i&&(clearTimeout(i),i=null),s&&(clearTimeout(s),s=null),_()||h()){o||(o=!0,setTimeout((()=>o=!1))),h()&&(o="action");var e=t.selection&&Editor.rangeRef(t,t.selection,{affinity:"forward"});EDITOR_TO_USER_MARKS.set(t,t.marks),debug("flush",EDITOR_TO_PENDING_ACTION.get(t),EDITOR_TO_PENDING_DIFFS.get(t));for(var a,l=_();a=null===(d=EDITOR_TO_PENDING_DIFFS.get(t))||void 0===d?void 0:d[0];){var d,f,p=EDITOR_TO_PENDING_INSERTION_MARKS.get(t);void 0!==p&&(EDITOR_TO_PENDING_INSERTION_MARKS.delete(t),t.marks=p),p&&!1===c&&(c=null);var m=targetRange(a);t.selection&&Range.equals(t.selection,m)||Transforms.select(t,m),a.diff.text?Editor.insertText(t,a.diff.text):Editor.deleteFragment(t),EDITOR_TO_PENDING_DIFFS.set(t,null===(f=EDITOR_TO_PENDING_DIFFS.get(t))||void 0===f?void 0:f.filter((e=>{var{id:t}=e;return t!==a.id}))),verifyDiffState(t,a)||(l=!1,EDITOR_TO_PENDING_ACTION.delete(t),EDITOR_TO_USER_MARKS.delete(t),o="action",EDITOR_TO_PENDING_SELECTION.delete(t),n.cancel(),r.cancel(),null==e||e.unref())}var g=null==e?void 0:e.unref();if(!g||EDITOR_TO_PENDING_SELECTION.get(t)||t.selection&&Range.equals(g,t.selection)||Transforms.select(t,g),h())(()=>{var e=EDITOR_TO_PENDING_ACTION.get(t);if(EDITOR_TO_PENDING_ACTION.delete(t),e){if(e.at){var n=Point.isPoint(e.at)?normalizePoint(t,e.at):normalizeRange(t,e.at);if(!n)return;var r=Editor.range(t,n);t.selection&&Range.equals(t.selection,r)||Transforms.select(t,n)}e.run()}})();else{l&&n(),n.flush(),r.flush(),u();var v=EDITOR_TO_USER_MARKS.get(t);EDITOR_TO_USER_MARKS.delete(t),void 0!==v&&(t.marks=v,t.onChange())}}else u()},f=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=EDITOR_TO_PLACEHOLDER_ELEMENT.get(t);n&&(_()||e?n.style.display="none":n.style.removeProperty("display"))},p=(e,n)=>{var r,o=null!==(r=EDITOR_TO_PENDING_DIFFS.get(t))&&void 0!==r?r:[];EDITOR_TO_PENDING_DIFFS.set(t,o);var a=Node$1.leaf(t,e),i=o.findIndex((t=>Path.equals(t.path,e)));if(i<0)return normalizeStringDiff(a.text,n)&&o.push({path:e,diff:n,id:l++}),void f();var s=mergeStringDiffs(a.text,o[i].diff,n);if(!s)return o.splice(i,1),void f();o[i]=_objectSpread$6$1(_objectSpread$6$1({},o[i]),{},{diff:s})},m=function(e){var{at:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};c=!1,EDITOR_TO_PENDING_SELECTION.delete(t),n.cancel(),r.cancel(),h()&&d(),EDITOR_TO_PENDING_ACTION.set(t,{at:o,run:e}),s=setTimeout(d)},h=()=>!!EDITOR_TO_PENDING_ACTION.get(t),_=()=>{var e;return!(null===(e=EDITOR_TO_PENDING_DIFFS.get(t))||void 0===e||!e.length)},g=e=>{EDITOR_TO_PENDING_SELECTION.set(t,e),i&&(clearTimeout(i),i=null);var{selection:n}=t;if(e){var r=!n||!Path.equals(n.anchor.path,e.anchor.path),o=!n||!Path.equals(n.anchor.path.slice(0,-1),e.anchor.path.slice(0,-1));(r&&c||o)&&(c=!1),(r||_())&&(i=setTimeout(d,FLUSH_DELAY))}},v=()=>{h()||(s=setTimeout(d))};return{flush:d,scheduleFlush:v,hasPendingDiffs:_,hasPendingAction:h,hasPendingChanges:()=>h()||_(),isFlushing:()=>o,handleUserSelect:g,handleCompositionEnd:e=>{a&&clearTimeout(a),a=setTimeout((()=>{IS_COMPOSING.set(t,!1),d()}),RESOLVE_DELAY)},handleCompositionStart:e=>{IS_COMPOSING.set(t,!0),a&&(clearTimeout(a),a=null)},handleDOMBeforeInput:e=>{var n;if(i&&(clearTimeout(i),i=null),!IS_NODE_MAP_DIRTY.get(t)){var{inputType:r}=e,o=null,a=e.dataTransfer||e.data||void 0;!1!==c&&"insertText"!==r&&"insertCompositionText"!==r&&(c=!1);var[s]=e.getTargetRanges();s&&(o=ReactEditor.toSlateRange(t,s,{exactMatch:!1,suppressThrow:!0}));var l=ReactEditor.getWindow(t).getSelection();if(!o&&l&&(s=l,o=ReactEditor.toSlateRange(t,l,{exactMatch:!1,suppressThrow:!0})),o=null!==(n=o)&&void 0!==n?n:t.selection){var u=!0;if(r.startsWith("delete")){if(Range.isExpanded(o)){var[d,f]=Range.edges(o);if(Node$1.leaf(t,d.path).text.length===d.offset&&0===f.offset){var h=Editor.next(t,{at:d.path,match:Text$1.isText});h&&Path.equals(h[1],f.path)&&(o={anchor:f,focus:f})}}var _=r.endsWith("Backward")?"backward":"forward",[E,y]=Range.edges(o),[b,C]=Editor.leaf(t,E.path),R={text:"",start:E.offset,end:y.offset},w=EDITOR_TO_PENDING_DIFFS.get(t),S=null==w?void 0:w.find((e=>Path.equals(e.path,C))),D=S?[S.diff,R]:[R];if(0===applyStringDiff(b.text,...D).length&&(u=!1),Range.isExpanded(o)){if(u&&Path.equals(o.anchor.path,o.focus.path)){var T={path:o.anchor.path,offset:E.offset},O=Editor.range(t,T,T);return g(O),p(o.anchor.path,{text:"",end:y.offset,start:E.offset})}return m((()=>Editor.deleteFragment(t,{direction:_})),{at:o})}}switch(r){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":return m((()=>Editor.deleteFragment(t)),{at:o});case"deleteContent":case"deleteContentForward":var{anchor:A}=o;if(u&&Range.isCollapsed(o)){var I=Node$1.leaf(t,A.path);if(A.offset<I.text.length)return p(A.path,{text:"",start:A.offset,end:A.offset+1})}return m((()=>Editor.deleteForward(t)),{at:o});case"deleteContentBackward":var x,{anchor:N}=o,F=isDOMSelection(s)?s.isCollapsed:!(null===(x=s)||void 0===x||!x.collapsed);return u&&F&&Range.isCollapsed(o)&&N.offset>0?p(N.path,{text:"",start:N.offset-1,end:N.offset}):m((()=>Editor.deleteBackward(t)),{at:o});case"deleteEntireSoftLine":return m((()=>{Editor.deleteBackward(t,{unit:"line"}),Editor.deleteForward(t,{unit:"line"})}),{at:o});case"deleteHardLineBackward":return m((()=>Editor.deleteBackward(t,{unit:"block"})),{at:o});case"deleteSoftLineBackward":return m((()=>Editor.deleteBackward(t,{unit:"line"})),{at:o});case"deleteHardLineForward":return m((()=>Editor.deleteForward(t,{unit:"block"})),{at:o});case"deleteSoftLineForward":return m((()=>Editor.deleteForward(t,{unit:"line"})),{at:o});case"deleteWordBackward":return m((()=>Editor.deleteBackward(t,{unit:"word"})),{at:o});case"deleteWordForward":return m((()=>Editor.deleteForward(t,{unit:"word"})),{at:o});case"insertLineBreak":return m((()=>Editor.insertSoftBreak(t)),{at:o});case"insertParagraph":return m((()=>Editor.insertBreak(t)),{at:o});case"insertCompositionText":case"deleteCompositionText":case"insertFromComposition":case"insertFromDrop":case"insertFromPaste":case"insertFromYank":case"insertReplacementText":case"insertText":if(isDataTransfer(a))return m((()=>ReactEditor.insertData(t,a)),{at:o});var P=null!=a?a:"";if(EDITOR_TO_PENDING_INSERTION_MARKS.get(t)&&(P=P.replace("\ufeff","")),"insertText"===r&&/.*\n.*\n$/.test(P)&&(P=P.slice(0,-1)),P.includes("\n"))return m((()=>{var e=P.split("\n");e.forEach(((n,r)=>{n&&Editor.insertText(t,n),r!==e.length-1&&Editor.insertSoftBreak(t)}))}),{at:o});if(Path.equals(o.anchor.path,o.focus.path)){var[k,$]=Range.edges(o),M={start:k.offset,end:$.offset,text:P};if(P&&c&&"insertCompositionText"===r){var B=c.start+c.text.search(/\S|$/);M.start+M.text.search(/\S|$/)===B+1&&M.end===c.start+c.text.length?(M.start-=1,c=null,v()):c=!1}else c="insertText"===r&&(null===c?M:!(!c||!Range.isCollapsed(o)||c.end+c.text.length!==k.offset)&&_objectSpread$6$1(_objectSpread$6$1({},c),{},{text:c.text+P}));if(u)return void p(k.path,M)}return m((()=>Editor.insertText(t,P)),{at:o})}}}},handleKeyDown:e=>{_()||(f(!0),setTimeout(f))},handleDomMutations:e=>{var n;_()||h()||e.some((n=>isTrackedMutation(t,n,e)))&&(null===(n=EDITOR_TO_FORCE_RENDER.get(t))||void 0===n||n())},handleInput:()=>{!h()&&_()||d()}}}function useIsMounted(){var e=React.useRef(!1);return React.useEffect((()=>(e.current=!0,()=>{e.current=!1})),[]),e.current}var useIsomorphicLayoutEffect$3=CAN_USE_DOM?React.useLayoutEffect:React.useEffect;function useMutationObserver(e,t,n){var[r]=React.useState((()=>new MutationObserver(t)));useIsomorphicLayoutEffect$3((()=>{r.takeRecords()})),React.useEffect((()=>{if(!e.current)throw new Error("Failed to attach MutationObserver, `node` is undefined");return r.observe(e.current,n),()=>r.disconnect()}),[r,e,n])}var _excluded$3=["node"];function ownKeys$5$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$5$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5$1(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var MUTATION_OBSERVER_CONFIG$1={subtree:!0,childList:!0,characterData:!0},useAndroidInputManager=IS_ANDROID?e=>{var{node:t}=e,n=_objectWithoutProperties(e,_excluded$3);if(!IS_ANDROID)return null;var r=useSlateStatic(),o=useIsMounted(),[a]=React.useState((()=>createAndroidInputManager(_objectSpread$5$1({editor:r},n))));return useMutationObserver(t,a.handleDomMutations,MUTATION_OBSERVER_CONFIG$1),EDITOR_TO_SCHEDULE_FLUSH.set(r,a.scheduleFlush),o&&a.flush(),a}:()=>null,_excluded$2=["anchor","focus"],_excluded2$1=["anchor","focus"],shallowCompare=(e,t)=>Object.keys(e).length===Object.keys(t).length&&Object.keys(e).every((n=>t.hasOwnProperty(n)&&e[n]===t[n])),isDecorationFlagsEqual=(e,t)=>{var n=_objectWithoutProperties(e,_excluded$2),r=_objectWithoutProperties(t,_excluded2$1);return e[PLACEHOLDER_SYMBOL]===t[PLACEHOLDER_SYMBOL]&&shallowCompare(n,r)},isElementDecorationsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var r=e[n],o=t[n];if(!Range.equals(r,o)||!isDecorationFlagsEqual(r,o))return!1}return!0},isTextDecorationsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var r=e[n],o=t[n];if(r.anchor.offset!==o.anchor.offset||r.focus.offset!==o.focus.offset||!isDecorationFlagsEqual(r,o))return!1}return!0};function ownKeys$4$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$4$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4$1(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var String$1=e=>{var{isLast:t,leaf:n,parent:r,text:o}=e,a=useSlateStatic(),i=ReactEditor.findPath(a,o),s=Path.parent(i),l=Boolean(n[MARK_PLACEHOLDER_SYMBOL]);return a.isVoid(r)?React__default.default.createElement(ZeroWidthString,{length:Node$1.string(r).length}):""!==n.text||r.children[r.children.length-1]!==o||a.isInline(r)||""!==Editor.string(a,s)?""===n.text?React__default.default.createElement(ZeroWidthString,{isMarkPlaceholder:l}):t&&"\n"===n.text.slice(-1)?React__default.default.createElement(TextString,{isTrailing:!0,text:n.text}):React__default.default.createElement(TextString,{text:n.text}):React__default.default.createElement(ZeroWidthString,{isLineBreak:!0,isMarkPlaceholder:l})},TextString=e=>{var{text:t,isTrailing:n=!1}=e,r=React.useRef(null),o=()=>"".concat(null!=t?t:"").concat(n?"\n":""),[a]=React.useState(o);return useIsomorphicLayoutEffect$3((()=>{var e=o();r.current&&r.current.textContent!==e&&(r.current.textContent=e)})),React__default.default.createElement(MemoizedText$1,{ref:r},a)},MemoizedText$1=React.memo(React.forwardRef(((e,t)=>React__default.default.createElement("span",{"data-slate-string":!0,ref:t},e.children)))),ZeroWidthString=e=>{var{length:t=0,isLineBreak:n=!1,isMarkPlaceholder:r=!1}=e,o={"data-slate-zero-width":n?"n":"z","data-slate-length":t};return r&&(o["data-slate-mark-placeholder"]=!0),React__default.default.createElement("span",_objectSpread$4$1({},o),(IS_ANDROID||IS_IOS)&&n?null:"\ufeff",n?React__default.default.createElement("br",null):null)};function ownKeys$3$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$3$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3$1(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var PLACEHOLDER_DELAY=IS_ANDROID?300:0;function disconnectPlaceholderResizeObserver(e,t){e.current&&(e.current.disconnect(),t&&(e.current=null))}function clearTimeoutRef(e){e.current&&(clearTimeout(e.current),e.current=null)}var Leaf=e=>{var{leaf:t,isLast:n,text:r,parent:o,renderPlaceholder:a,renderLeaf:i=e=>React__default.default.createElement(DefaultLeaf,_objectSpread$3$1({},e))}=e,s=useSlateStatic(),l=React.useRef(null),c=React.useRef(null),[u,d]=React.useState(!1),f=React.useRef(null),p=React.useCallback((e=>{if(disconnectPlaceholderResizeObserver(l,null==e),null==e){var n;EDITOR_TO_PLACEHOLDER_ELEMENT.delete(s),null===(n=t.onPlaceholderResize)||void 0===n||n.call(t,null)}else{if(EDITOR_TO_PLACEHOLDER_ELEMENT.set(s,e),!l.current){var r=window.ResizeObserver||ResizeObserver$1;l.current=new r((()=>{var n;null===(n=t.onPlaceholderResize)||void 0===n||n.call(t,e)}))}l.current.observe(e),c.current=e}}),[c,t,s]),m=React__default.default.createElement(String$1,{isLast:n,leaf:t,parent:o,text:r}),h=Boolean(t[PLACEHOLDER_SYMBOL]);if(React.useEffect((()=>(h?f.current||(f.current=setTimeout((()=>{d(!0),f.current=null}),PLACEHOLDER_DELAY)):(clearTimeoutRef(f),d(!1)),()=>clearTimeoutRef(f))),[h,d]),h&&u){var _={children:t.placeholder,attributes:{"data-slate-placeholder":!0,style:{position:"absolute",top:0,pointerEvents:"none",width:"100%",maxWidth:"100%",display:"block",opacity:"0.333",userSelect:"none",textDecoration:"none",WebkitUserModify:IS_WEBKIT?"inherit":void 0},contentEditable:!1,ref:p}};m=React__default.default.createElement(React__default.default.Fragment,null,a(_),m)}return i({attributes:{"data-slate-leaf":!0},children:m,leaf:t,text:r})},MemoizedLeaf=React__default.default.memo(Leaf,((e,t)=>t.parent===e.parent&&t.isLast===e.isLast&&t.renderLeaf===e.renderLeaf&&t.renderPlaceholder===e.renderPlaceholder&&t.text===e.text&&Text$1.equals(t.leaf,e.leaf)&&t.leaf[PLACEHOLDER_SYMBOL]===e.leaf[PLACEHOLDER_SYMBOL])),DefaultLeaf=e=>{var{attributes:t,children:n}=e;return React__default.default.createElement("span",_objectSpread$3$1({},t),n)},Text=e=>{for(var{decorations:t,isLast:n,parent:r,renderPlaceholder:o,renderLeaf:a,text:i}=e,s=useSlateStatic(),l=React.useRef(null),c=Text$1.decorations(i,t),u=ReactEditor.findKey(s,i),d=[],f=0;f<c.length;f++){var p=c[f];d.push(React__default.default.createElement(MemoizedLeaf,{isLast:n&&f===c.length-1,key:"".concat(u.id,"-").concat(f),renderPlaceholder:o,leaf:p,text:i,parent:r,renderLeaf:a}))}var m=React.useCallback((e=>{var t=EDITOR_TO_KEY_TO_ELEMENT.get(s);e?(null==t||t.set(u,e),NODE_TO_ELEMENT.set(i,e),ELEMENT_TO_NODE.set(e,i)):(null==t||t.delete(u),NODE_TO_ELEMENT.delete(i),l.current&&ELEMENT_TO_NODE.delete(l.current)),l.current=e}),[l,s,u,i]);return React__default.default.createElement("span",{"data-slate-node":"text",ref:m},d)},MemoizedText=React__default.default.memo(Text,((e,t)=>t.parent===e.parent&&t.isLast===e.isLast&&t.renderLeaf===e.renderLeaf&&t.renderPlaceholder===e.renderPlaceholder&&t.text===e.text&&isTextDecorationsEqual(t.decorations,e.decorations)));function ownKeys$2$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$2$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2$1(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Element$1=e=>{var{decorations:t,element:n,renderElement:r=e=>React__default.default.createElement(DefaultElement,_objectSpread$2$1({},e)),renderPlaceholder:o,renderLeaf:a,selection:i}=e,s=useSlateStatic(),l=useReadOnly(),c=s.isInline(n),u=ReactEditor.findKey(s,n),d=React.useCallback((e=>{var t=EDITOR_TO_KEY_TO_ELEMENT.get(s);e?(null==t||t.set(u,e),NODE_TO_ELEMENT.set(n,e),ELEMENT_TO_NODE.set(e,n)):(null==t||t.delete(u),NODE_TO_ELEMENT.delete(n))}),[s,u,n]),f=useChildren({decorations:t,node:n,renderElement:r,renderPlaceholder:o,renderLeaf:a,selection:i}),p={"data-slate-node":"element",ref:d};if(c&&(p["data-slate-inline"]=!0),!c&&Editor.hasInlines(s,n)){var m=Node$1.string(n),h=direction_1(m);"rtl"===h&&(p.dir=h)}if(Editor.isVoid(s,n)){p["data-slate-void"]=!0,!l&&c&&(p.contentEditable=!1);var _=c?"span":"div",[[g]]=Node$1.texts(n);f=React__default.default.createElement(_,{"data-slate-spacer":!0,style:{height:"0",color:"transparent",outline:"none",position:"absolute"}},React__default.default.createElement(MemoizedText,{renderPlaceholder:o,decorations:[],isLast:!1,parent:n,text:g})),NODE_TO_INDEX.set(g,0),NODE_TO_PARENT.set(g,n)}return r({attributes:p,children:f,element:n})},MemoizedElement=React__default.default.memo(Element$1,((e,t)=>e.element===t.element&&e.renderElement===t.renderElement&&e.renderLeaf===t.renderLeaf&&e.renderPlaceholder===t.renderPlaceholder&&isElementDecorationsEqual(e.decorations,t.decorations)&&(e.selection===t.selection||!!e.selection&&!!t.selection&&Range.equals(e.selection,t.selection)))),DefaultElement=e=>{var{attributes:t,children:n,element:r}=e,o=useSlateStatic().isInline(r)?"span":"div";return React__default.default.createElement(o,_objectSpread$2$1(_objectSpread$2$1({},t),{},{style:{position:"relative"}}),n)},DecorateContext=React.createContext((()=>[])),useDecorate=()=>React.useContext(DecorateContext),SelectedContext=React.createContext(!1),useSelected=()=>React.useContext(SelectedContext),useChildren=e=>{var{decorations:t,node:n,renderElement:r,renderPlaceholder:o,renderLeaf:a,selection:i}=e,s=useDecorate(),l=useSlateStatic();IS_NODE_MAP_DIRTY.set(l,!1);for(var c=ReactEditor.findPath(l,n),u=[],d=Element$2.isElement(n)&&!l.isInline(n)&&Editor.hasInlines(l,n),f=0;f<n.children.length;f++){var p=c.concat(f),m=n.children[f],h=ReactEditor.findKey(l,m),_=Editor.range(l,p),g=i&&Range.intersection(_,i),v=s([m,p]);for(var E of t){var y=Range.intersection(E,_);y&&v.push(y)}Element$2.isElement(m)?u.push(React__default.default.createElement(SelectedContext.Provider,{key:"provider-".concat(h.id),value:!!g},React__default.default.createElement(MemoizedElement,{decorations:v,element:m,key:h.id,renderElement:r,renderPlaceholder:o,renderLeaf:a,selection:g}))):u.push(React__default.default.createElement(MemoizedText,{decorations:v,key:h.id,isLast:d&&f===n.children.length-1,parent:n,renderPlaceholder:o,renderLeaf:a,text:m})),NODE_TO_INDEX.set(m,f),NODE_TO_PARENT.set(m,n)}return u},ReadOnlyContext=React.createContext(!1),useReadOnly=()=>React.useContext(ReadOnlyContext),SlateContext=React.createContext(null),useSlate=()=>{var e=React.useContext(SlateContext);if(!e)throw new Error("The `useSlate` hook must be used inside the <Slate> component's context.");var{editor:t}=e;return t};function useTrackUserInput(){var e=useSlateStatic(),t=React.useRef(!1),n=React.useRef(0),r=React.useCallback((()=>{if(!t.current){t.current=!0;var r=ReactEditor.getWindow(e);r.cancelAnimationFrame(n.current),n.current=r.requestAnimationFrame((()=>{t.current=!1}))}}),[e]);return React.useEffect((()=>()=>cancelAnimationFrame(n.current)),[]),{receivedUserInput:t,onUserInput:r}}var TRIPLE_CLICK=3,HOTKEYS={bold:"mod+b",compose:["down","left","right","up","backspace","enter"],moveBackward:"left",moveForward:"right",moveWordBackward:"ctrl+left",moveWordForward:"ctrl+right",deleteBackward:"shift?+backspace",deleteForward:"shift?+delete",extendBackward:"shift+left",extendForward:"shift+right",italic:"mod+i",insertSoftBreak:"shift+enter",splitBlock:"enter",undo:"mod+z"},APPLE_HOTKEYS={moveLineBackward:"opt+up",moveLineForward:"opt+down",moveWordBackward:"opt+left",moveWordForward:"opt+right",deleteBackward:["ctrl+backspace","ctrl+h"],deleteForward:["ctrl+delete","ctrl+d"],deleteLineBackward:"cmd+shift?+backspace",deleteLineForward:["cmd+shift?+delete","ctrl+k"],deleteWordBackward:"opt+shift?+backspace",deleteWordForward:"opt+shift?+delete",extendLineBackward:"opt+shift+up",extendLineForward:"opt+shift+down",redo:"cmd+shift+z",transposeCharacter:"ctrl+t"},WINDOWS_HOTKEYS={deleteWordBackward:"ctrl+shift?+backspace",deleteWordForward:"ctrl+shift?+delete",redo:["ctrl+y","ctrl+shift+z"]},create=e=>{var t=HOTKEYS[e],n=APPLE_HOTKEYS[e],r=WINDOWS_HOTKEYS[e],o=t&&isHotkey_1(t);n&&isHotkey_1(n);var a=r&&isHotkey_1(r);return e=>!(!o||!o(e))||!(!a||!a(e))},Hotkeys={isBold:create("bold"),isCompose:create("compose"),isMoveBackward:create("moveBackward"),isMoveForward:create("moveForward"),isDeleteBackward:create("deleteBackward"),isDeleteForward:create("deleteForward"),isDeleteLineBackward:create("deleteLineBackward"),isDeleteLineForward:create("deleteLineForward"),isDeleteWordBackward:create("deleteWordBackward"),isDeleteWordForward:create("deleteWordForward"),isExtendBackward:create("extendBackward"),isExtendForward:create("extendForward"),isExtendLineBackward:create("extendLineBackward"),isExtendLineForward:create("extendLineForward"),isItalic:create("italic"),isMoveLineBackward:create("moveLineBackward"),isMoveLineForward:create("moveLineForward"),isMoveWordBackward:create("moveWordBackward"),isMoveWordForward:create("moveWordForward"),isRedo:create("redo"),isSoftBreak:create("insertSoftBreak"),isSplitBlock:create("splitBlock"),isTransposeCharacter:create("transposeCharacter"),isUndo:create("undo")},createRestoreDomManager=(e,t)=>{var n=[],r=()=>{n=[]};return{registerMutations:r=>{if(t.current){var o=r.filter((t=>isTrackedMutation(e,t,r)));n.push(...o)}},restoreDOM:function(){n.length>0&&(n.reverse().forEach((e=>{"characterData"!==e.type&&(e.removedNodes.forEach((t=>{e.target.insertBefore(t,e.nextSibling)})),e.addedNodes.forEach((t=>{e.target.removeChild(t)})))})),r())},clear:r}},MUTATION_OBSERVER_CONFIG={subtree:!0,childList:!0,characterData:!0,characterDataOldValue:!0};class RestoreDOMComponent extends React.Component{constructor(){super(...arguments),_defineProperty$3(this,"context",null),_defineProperty$3(this,"manager",null),_defineProperty$3(this,"mutationObserver",null)}observe(){var e,{node:t}=this.props;if(!t.current)throw new Error("Failed to attach MutationObserver, `node` is undefined");null===(e=this.mutationObserver)||void 0===e||e.observe(t.current,MUTATION_OBSERVER_CONFIG)}componentDidMount(){var{receivedUserInput:e}=this.props,t=this.context;this.manager=createRestoreDomManager(t,e),this.mutationObserver=new MutationObserver(this.manager.registerMutations),this.observe()}getSnapshotBeforeUpdate(){var e,t,n,r,o=null===(e=this.mutationObserver)||void 0===e?void 0:e.takeRecords();null!=o&&o.length&&(null===(r=this.manager)||void 0===r||r.registerMutations(o));return null===(t=this.mutationObserver)||void 0===t||t.disconnect(),null===(n=this.manager)||void 0===n||n.restoreDOM(),null}componentDidUpdate(){var e;null===(e=this.manager)||void 0===e||e.clear(),this.observe()}componentWillUnmount(){var e;null===(e=this.mutationObserver)||void 0===e||e.disconnect()}render(){return this.props.children}}_defineProperty$3(RestoreDOMComponent,"contextType",EditorContext);var RestoreDOM=IS_ANDROID?RestoreDOMComponent:e=>{var{children:t}=e;return React__default.default.createElement(React__default.default.Fragment,null,t)},ComposingContext=React.createContext(!1),_excluded$1=["autoFocus","decorate","onDOMBeforeInput","placeholder","readOnly","renderElement","renderLeaf","renderPlaceholder","scrollSelectionIntoView","style","as","disableDefaultStyles"],_excluded2=["text"];function ownKeys$1$3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$1$3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$3(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$3(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Children=e=>React__default.default.createElement(React__default.default.Fragment,null,useChildren(e)),Editable=React.forwardRef(((e,t)=>{var n=React.useCallback((e=>React__default.default.createElement(DefaultPlaceholder,_objectSpread$1$3({},e))),[]),{autoFocus:r,decorate:o=defaultDecorate,onDOMBeforeInput:a,placeholder:i,readOnly:s=!1,renderElement:l,renderLeaf:c,renderPlaceholder:u=n,scrollSelectionIntoView:d=defaultScrollSelectionIntoView,style:f={},as:p="div",disableDefaultStyles:m=!1}=e,h=_objectWithoutProperties(e,_excluded$1),_=useSlate(),[g,v]=React.useState(!1),E=React.useRef(null),y=React.useRef([]),[b,C]=React.useState(),R=React.useRef(!1),{onUserInput:w,receivedUserInput:S}=useTrackUserInput(),[,D]=React.useReducer((e=>e+1),0);EDITOR_TO_FORCE_RENDER.set(_,D),IS_READ_ONLY.set(_,s);var T=React.useMemo((()=>({isDraggingInternally:!1,isUpdatingSelection:!1,latestElement:null,hasMarkPlaceholder:!1})),[]);React.useEffect((()=>{E.current&&r&&E.current.focus()}),[r]);var O=React.useRef(),A=React.useMemo((()=>throttle_1((()=>{if(IS_NODE_MAP_DIRTY.get(_))A();else{var e=ReactEditor.toDOMNode(_,_).getRootNode();if(!R.current&&IS_WEBKIT&&e instanceof ShadowRoot)return R.current=!0,getActiveElement()?document.execCommand("indent"):Transforms.deselect(_),void(R.current=!1);var t=O.current;if((IS_ANDROID||!ReactEditor.isComposing(_))&&(!T.isUpdatingSelection||null!=t&&t.isFlushing())&&!T.isDraggingInternally){var n=ReactEditor.findDocumentOrShadowRoot(_),{activeElement:r}=n,o=ReactEditor.toDOMNode(_,_),a=getSelection(n);if(r===o?(T.latestElement=r,IS_FOCUSED.set(_,!0)):IS_FOCUSED.delete(_),!a)return Transforms.deselect(_);var{anchorNode:i,focusNode:l}=a,c=ReactEditor.hasEditableTarget(_,i)||ReactEditor.isTargetInsideNonReadonlyVoid(_,i),u=ReactEditor.hasTarget(_,l);if(c&&u){var d=ReactEditor.toSlateRange(_,a,{exactMatch:!1,suppressThrow:!0});d&&(ReactEditor.isComposing(_)||null!=t&&t.hasPendingChanges()||null!=t&&t.isFlushing()?null==t||t.handleUserSelect(d):Transforms.select(_,d))}!s||c&&u||Transforms.deselect(_)}}}),100)),[_,s,T]),I=React.useMemo((()=>debounce_1(A,0)),[A]);O.current=useAndroidInputManager({node:E,onDOMSelectionChange:A,scheduleOnDOMSelectionChange:I}),useIsomorphicLayoutEffect$3((()=>{var e,t,n;E.current&&(n=getDefaultView(E.current))?(EDITOR_TO_WINDOW.set(_,n),EDITOR_TO_ELEMENT.set(_,E.current),NODE_TO_ELEMENT.set(_,E.current),ELEMENT_TO_NODE.set(E.current,_)):NODE_TO_ELEMENT.delete(_);var{selection:r}=_,o=ReactEditor.findDocumentOrShadowRoot(_),a=getSelection(o);if(a&&ReactEditor.isFocused(_)&&(null===(e=O.current)||void 0===e||!e.hasPendingAction())){var i=e=>{var t="None"!==a.type;if(r||t){var n,o=a.focusNode;if(IS_FIREFOX&&a.rangeCount>1){var i=a.getRangeAt(0),s=a.getRangeAt(a.rangeCount-1);n=i.startContainer===o?s.endContainer:i.startContainer}else n=a.anchorNode;var l=EDITOR_TO_ELEMENT.get(_),c=!1;if(l.contains(n)&&l.contains(o)&&(c=!0),t&&c&&r&&!e){var u=ReactEditor.toSlateRange(_,a,{exactMatch:!0,suppressThrow:!0});if(u&&Range.equals(u,r)){var f;if(!T.hasMarkPlaceholder)return;if(null!==(f=n)&&void 0!==f&&null!==(f=f.parentElement)&&void 0!==f&&f.hasAttribute("data-slate-mark-placeholder"))return}}if(!r||ReactEditor.hasRange(_,r)){T.isUpdatingSelection=!0;var p=r&&ReactEditor.toDOMRange(_,r);return p?(ReactEditor.isComposing(_)&&!IS_ANDROID?a.collapseToEnd():Range.isBackward(r)?a.setBaseAndExtent(p.endContainer,p.endOffset,p.startContainer,p.startOffset):a.setBaseAndExtent(p.startContainer,p.startOffset,p.endContainer,p.endOffset),d(_,p)):a.removeAllRanges(),p}_.selection=ReactEditor.toSlateRange(_,a,{exactMatch:!1,suppressThrow:!0})}};a.rangeCount<=1&&i();var s="action"===(null===(t=O.current)||void 0===t?void 0:t.isFlushing());if(IS_ANDROID&&s){var l=null,c=requestAnimationFrame((()=>{if(s){var e=e=>{try{ReactEditor.toDOMNode(_,_).focus(),i(e)}catch(e){}};e(),l=setTimeout((()=>{e(!0),T.isUpdatingSelection=!1}))}}));return()=>{cancelAnimationFrame(c),l&&clearTimeout(l)}}setTimeout((()=>{T.isUpdatingSelection=!1}))}}));var x=React.useCallback((e=>{var t=ReactEditor.toDOMNode(_,_).getRootNode();if(null!=R&&R.current&&IS_WEBKIT&&t instanceof ShadowRoot){var n=e.getTargetRanges()[0],r=new window.Range;r.setStart(n.startContainer,n.startOffset),r.setEnd(n.endContainer,n.endOffset);var o=ReactEditor.toSlateRange(_,r,{exactMatch:!1,suppressThrow:!1});return Transforms.select(_,o),e.preventDefault(),void e.stopImmediatePropagation()}if(w(),!s&&ReactEditor.hasEditableTarget(_,e.target)&&!isDOMEventHandled(e,a)){var i;if(O.current)return O.current.handleDOMBeforeInput(e);I.flush(),A.flush();var{selection:l}=_,{inputType:c}=e,u=e.dataTransfer||e.data||void 0,d="insertCompositionText"===c||"deleteCompositionText"===c;if(d&&ReactEditor.isComposing(_))return;var f=!1;if("insertText"===c&&l&&Range.isCollapsed(l)&&e.data&&1===e.data.length&&/[a-z ]/i.test(e.data)&&0!==l.anchor.offset&&(f=!0,_.marks&&(f=!1),!IS_NODE_MAP_DIRTY.get(_))){var p,m,{anchor:h}=l,[g,E]=ReactEditor.toDOMPoint(_,h),b=null===(p=g.parentElement)||void 0===p?void 0:p.closest("a"),C=ReactEditor.getWindow(_);if(f&&b&&ReactEditor.hasDOMNode(_,b)){var S,D=null==C?void 0:C.document.createTreeWalker(b,NodeFilter.SHOW_TEXT).lastChild();D===g&&(null===(S=D.textContent)||void 0===S?void 0:S.length)===E&&(f=!1)}if(f&&g.parentElement&&"pre"===(null==C||null===(m=C.getComputedStyle(g.parentElement))||void 0===m?void 0:m.whiteSpace)){var T=Editor.above(_,{at:h.path,match:e=>Element$2.isElement(e)&&Editor.isBlock(_,e)});T&&Node$1.string(T[0]).includes("\t")&&(f=!1)}}if((!c.startsWith("delete")||c.startsWith("deleteBy"))&&!IS_NODE_MAP_DIRTY.get(_)){var[x]=e.getTargetRanges();if(x){var N=ReactEditor.toSlateRange(_,x,{exactMatch:!1,suppressThrow:!1});if(!l||!Range.equals(l,N)){f=!1;var F=!d&&_.selection&&Editor.rangeRef(_,_.selection);Transforms.select(_,N),F&&EDITOR_TO_USER_SELECTION.set(_,F)}}}if(d)return;if(f||e.preventDefault(),l&&Range.isExpanded(l)&&c.startsWith("delete")){var P=c.endsWith("Backward")?"backward":"forward";return void Editor.deleteFragment(_,{direction:P})}switch(c){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":Editor.deleteFragment(_);break;case"deleteContent":case"deleteContentForward":Editor.deleteForward(_);break;case"deleteContentBackward":Editor.deleteBackward(_);break;case"deleteEntireSoftLine":Editor.deleteBackward(_,{unit:"line"}),Editor.deleteForward(_,{unit:"line"});break;case"deleteHardLineBackward":Editor.deleteBackward(_,{unit:"block"});break;case"deleteSoftLineBackward":Editor.deleteBackward(_,{unit:"line"});break;case"deleteHardLineForward":Editor.deleteForward(_,{unit:"block"});break;case"deleteSoftLineForward":Editor.deleteForward(_,{unit:"line"});break;case"deleteWordBackward":Editor.deleteBackward(_,{unit:"word"});break;case"deleteWordForward":Editor.deleteForward(_,{unit:"word"});break;case"insertLineBreak":Editor.insertSoftBreak(_);break;case"insertParagraph":Editor.insertBreak(_);break;case"insertFromComposition":case"insertFromDrop":case"insertFromPaste":case"insertFromYank":case"insertReplacementText":case"insertText":"insertFromComposition"===c&&ReactEditor.isComposing(_)&&(v(!1),IS_COMPOSING.set(_,!1)),"DataTransfer"===(null==u?void 0:u.constructor.name)?ReactEditor.insertData(_,u):"string"==typeof u&&(f?y.current.push((()=>Editor.insertText(_,u))):Editor.insertText(_,u))}var k=null===(i=EDITOR_TO_USER_SELECTION.get(_))||void 0===i?void 0:i.unref();EDITOR_TO_USER_SELECTION.delete(_),!k||_.selection&&Range.equals(_.selection,k)||Transforms.select(_,k)}}),[_,A,w,a,s,I]),N=React.useCallback((e=>{null==e?(A.cancel(),I.cancel(),EDITOR_TO_ELEMENT.delete(_),NODE_TO_ELEMENT.delete(_),E.current&&HAS_BEFORE_INPUT_SUPPORT&&E.current.removeEventListener("beforeinput",x)):HAS_BEFORE_INPUT_SUPPORT&&e.addEventListener("beforeinput",x),E.current=e,"function"==typeof t?t(e):t&&(t.current=e)}),[A,I,_,x,t]);useIsomorphicLayoutEffect$3((()=>{var e=ReactEditor.getWindow(_);e.document.addEventListener("selectionchange",I);var t=()=>{T.isDraggingInternally=!1};return e.document.addEventListener("dragend",t),e.document.addEventListener("drop",t),()=>{e.document.removeEventListener("selectionchange",I),e.document.removeEventListener("dragend",t),e.document.removeEventListener("drop",t)}}),[I,T]);var F=o([_,[]]),P=i&&1===_.children.length&&1===Array.from(Node$1.texts(_)).length&&""===Node$1.string(_)&&!g,k=React.useCallback((e=>{var t;e&&P?C(null===(t=e.getBoundingClientRect())||void 0===t?void 0:t.height):C(void 0)}),[P]);if(P){var $=Editor.start(_,[]);F.push({[PLACEHOLDER_SYMBOL]:!0,placeholder:i,onPlaceholderResize:k,anchor:$,focus:$})}var{marks:M}=_;if(T.hasMarkPlaceholder=!1,_.selection&&Range.isCollapsed(_.selection)&&M){var{anchor:B}=_.selection,L=Node$1.leaf(_,B.path),j=_objectWithoutProperties(L,_excluded2);if(!Text$1.equals(L,M,{loose:!0})){T.hasMarkPlaceholder=!0;var U=Object.fromEntries(Object.keys(j).map((e=>[e,null])));F.push(_objectSpread$1$3(_objectSpread$1$3(_objectSpread$1$3({[MARK_PLACEHOLDER_SYMBOL]:!0},U),M),{},{anchor:B,focus:B}))}}return React.useEffect((()=>{setTimeout((()=>{var{selection:e}=_;if(e){var{anchor:t}=e,n=Node$1.leaf(_,t.path);if(M&&!Text$1.equals(n,M,{loose:!0}))return void EDITOR_TO_PENDING_INSERTION_MARKS.set(_,M)}EDITOR_TO_PENDING_INSERTION_MARKS.delete(_)}))})),React__default.default.createElement(ReadOnlyContext.Provider,{value:s},React__default.default.createElement(ComposingContext.Provider,{value:g},React__default.default.createElement(DecorateContext.Provider,{value:o},React__default.default.createElement(RestoreDOM,{node:E,receivedUserInput:S},React__default.default.createElement(p,_objectSpread$1$3(_objectSpread$1$3({role:s?void 0:"textbox","aria-multiline":!s||void 0},h),{},{spellCheck:!(!HAS_BEFORE_INPUT_SUPPORT&&CAN_USE_DOM)&&h.spellCheck,autoCorrect:HAS_BEFORE_INPUT_SUPPORT||!CAN_USE_DOM?h.autoCorrect:"false",autoCapitalize:HAS_BEFORE_INPUT_SUPPORT||!CAN_USE_DOM?h.autoCapitalize:"false","data-slate-editor":!0,"data-slate-node":"value",contentEditable:!s,zindex:-1,suppressContentEditableWarning:!0,ref:N,style:_objectSpread$1$3(_objectSpread$1$3({},m?{}:_objectSpread$1$3({position:"relative",whiteSpace:"pre-wrap",wordWrap:"break-word"},b?{minHeight:b}:{})),f),onBeforeInput:React.useCallback((e=>{if(!HAS_BEFORE_INPUT_SUPPORT&&!s&&!isEventHandled(e,h.onBeforeInput)&&ReactEditor.hasSelectableTarget(_,e.target)&&(e.preventDefault(),!ReactEditor.isComposing(_))){var t=e.data;Editor.insertText(_,t)}}),[h.onBeforeInput,_,s]),onInput:React.useCallback((e=>{if(!isEventHandled(e,h.onInput))if(O.current)O.current.handleInput();else{for(var t of y.current)t();if(y.current=[],!ReactEditor.isFocused(_)){var n=e.nativeEvent,r=_;if("historyUndo"===n.inputType&&"function"==typeof r.undo)return void r.undo();if("historyRedo"===n.inputType&&"function"==typeof r.redo)return void r.redo()}}}),[h.onInput,_]),onBlur:React.useCallback((e=>{if(!s&&!T.isUpdatingSelection&&ReactEditor.hasSelectableTarget(_,e.target)&&!isEventHandled(e,h.onBlur)){var t=ReactEditor.findDocumentOrShadowRoot(_);if(T.latestElement!==t.activeElement){var{relatedTarget:n}=e;if(!(n===ReactEditor.toDOMNode(_,_)||isDOMElement(n)&&n.hasAttribute("data-slate-spacer"))){if(null!=n&&isDOMNode(n)&&ReactEditor.hasDOMNode(_,n)){var r=ReactEditor.toSlateNode(_,n);if(Element$2.isElement(r)&&!_.isVoid(r))return}if(IS_WEBKIT){var o=getSelection(t);null==o||o.removeAllRanges()}IS_FOCUSED.delete(_)}}}}),[s,T.isUpdatingSelection,T.latestElement,_,h.onBlur]),onClick:React.useCallback((e=>{if(ReactEditor.hasTarget(_,e.target)&&!isEventHandled(e,h.onClick)&&isDOMNode(e.target)){var t=ReactEditor.toSlateNode(_,e.target),n=ReactEditor.findPath(_,t);if(!Editor.hasPath(_,n)||Node$1.get(_,n)!==t)return;if(e.detail===TRIPLE_CLICK&&n.length>=1){var r=n;if(!Element$2.isElement(t)||!Editor.isBlock(_,t)){var o,a=Editor.above(_,{match:e=>Element$2.isElement(e)&&Editor.isBlock(_,e),at:n});r=null!==(o=null==a?void 0:a[1])&&void 0!==o?o:n.slice(0,1)}var i=Editor.range(_,r);return void Transforms.select(_,i)}if(s)return;var l=Editor.start(_,n),c=Editor.end(_,n),u=Editor.void(_,{at:l}),d=Editor.void(_,{at:c});if(u&&d&&Path.equals(u[1],d[1])){var f=Editor.range(_,l);Transforms.select(_,f)}}}),[_,h.onClick,s]),onCompositionEnd:React.useCallback((e=>{if(ReactEditor.hasSelectableTarget(_,e.target)){var t;if(ReactEditor.isComposing(_)&&Promise.resolve().then((()=>{v(!1),IS_COMPOSING.set(_,!1)})),null===(t=O.current)||void 0===t||t.handleCompositionEnd(e),isEventHandled(e,h.onCompositionEnd)||IS_ANDROID)return;if(!IS_WEBKIT&&!IS_FIREFOX_LEGACY&&!IS_IOS&&!IS_WECHATBROWSER&&!IS_UC_MOBILE&&e.data){var n=EDITOR_TO_PENDING_INSERTION_MARKS.get(_);EDITOR_TO_PENDING_INSERTION_MARKS.delete(_),void 0!==n&&(EDITOR_TO_USER_MARKS.set(_,_.marks),_.marks=n),Editor.insertText(_,e.data);var r=EDITOR_TO_USER_MARKS.get(_);EDITOR_TO_USER_MARKS.delete(_),void 0!==r&&(_.marks=r)}}}),[h.onCompositionEnd,_]),onCompositionUpdate:React.useCallback((e=>{ReactEditor.hasSelectableTarget(_,e.target)&&!isEventHandled(e,h.onCompositionUpdate)&&(ReactEditor.isComposing(_)||(v(!0),IS_COMPOSING.set(_,!0)))}),[h.onCompositionUpdate,_]),onCompositionStart:React.useCallback((e=>{if(ReactEditor.hasSelectableTarget(_,e.target)){var t;if(null===(t=O.current)||void 0===t||t.handleCompositionStart(e),isEventHandled(e,h.onCompositionStart)||IS_ANDROID)return;v(!0);var{selection:n}=_;if(n&&Range.isExpanded(n))return void Editor.deleteFragment(_)}}),[h.onCompositionStart,_]),onCopy:React.useCallback((e=>{!ReactEditor.hasSelectableTarget(_,e.target)||isEventHandled(e,h.onCopy)||isDOMEventTargetInput(e)||(e.preventDefault(),ReactEditor.setFragmentData(_,e.clipboardData,"copy"))}),[h.onCopy,_]),onCut:React.useCallback((e=>{if(!s&&ReactEditor.hasSelectableTarget(_,e.target)&&!isEventHandled(e,h.onCut)&&!isDOMEventTargetInput(e)){e.preventDefault(),ReactEditor.setFragmentData(_,e.clipboardData,"cut");var{selection:t}=_;if(t)if(Range.isExpanded(t))Editor.deleteFragment(_);else{var n=Node$1.parent(_,t.anchor.path);Editor.isVoid(_,n)&&Transforms.delete(_)}}}),[s,_,h.onCut]),onDragOver:React.useCallback((e=>{if(ReactEditor.hasTarget(_,e.target)&&!isEventHandled(e,h.onDragOver)){var t=ReactEditor.toSlateNode(_,e.target);Element$2.isElement(t)&&Editor.isVoid(_,t)&&e.preventDefault()}}),[h.onDragOver,_]),onDragStart:React.useCallback((e=>{if(!s&&ReactEditor.hasTarget(_,e.target)&&!isEventHandled(e,h.onDragStart)){var t=ReactEditor.toSlateNode(_,e.target),n=ReactEditor.findPath(_,t);if(Element$2.isElement(t)&&Editor.isVoid(_,t)||Editor.void(_,{at:n,voids:!0})){var r=Editor.range(_,n);Transforms.select(_,r)}T.isDraggingInternally=!0,ReactEditor.setFragmentData(_,e.dataTransfer,"drag")}}),[s,_,h.onDragStart,T]),onDrop:React.useCallback((e=>{if(!s&&ReactEditor.hasTarget(_,e.target)&&!isEventHandled(e,h.onDrop)){e.preventDefault();var t=_.selection,n=ReactEditor.findEventRange(_,e),r=e.dataTransfer;Transforms.select(_,n),T.isDraggingInternally&&(!t||Range.equals(t,n)||Editor.void(_,{at:n,voids:!0})||Transforms.delete(_,{at:t})),ReactEditor.insertData(_,r),ReactEditor.isFocused(_)||ReactEditor.focus(_)}}),[s,_,h.onDrop,T]),onDragEnd:React.useCallback((e=>{!s&&T.isDraggingInternally&&h.onDragEnd&&ReactEditor.hasTarget(_,e.target)&&h.onDragEnd(e)}),[s,T,h,_]),onFocus:React.useCallback((e=>{if(!s&&!T.isUpdatingSelection&&ReactEditor.hasEditableTarget(_,e.target)&&!isEventHandled(e,h.onFocus)){var t=ReactEditor.toDOMNode(_,_),n=ReactEditor.findDocumentOrShadowRoot(_);if(T.latestElement=n.activeElement,IS_FIREFOX&&e.target!==t)return void t.focus();IS_FOCUSED.set(_,!0)}}),[s,T,_,h.onFocus]),onKeyDown:React.useCallback((e=>{if(!s&&ReactEditor.hasEditableTarget(_,e.target)){var t;null===(t=O.current)||void 0===t||t.handleKeyDown(e);var{nativeEvent:n}=e;if(ReactEditor.isComposing(_)&&!1===n.isComposing&&(IS_COMPOSING.set(_,!1),v(!1)),isEventHandled(e,h.onKeyDown)||ReactEditor.isComposing(_))return;var{selection:r}=_,o=_.children[null!==r?r.focus.path[0]:0],a="rtl"===direction_1(Node$1.string(o));if(Hotkeys.isRedo(n)){e.preventDefault();var i=_;return void("function"==typeof i.redo&&i.redo())}if(Hotkeys.isUndo(n)){e.preventDefault();var l=_;return void("function"==typeof l.undo&&l.undo())}if(Hotkeys.isMoveLineBackward(n))return e.preventDefault(),void Transforms.move(_,{unit:"line",reverse:!0});if(Hotkeys.isMoveLineForward(n))return e.preventDefault(),void Transforms.move(_,{unit:"line"});if(Hotkeys.isExtendLineBackward(n))return e.preventDefault(),void Transforms.move(_,{unit:"line",edge:"focus",reverse:!0});if(Hotkeys.isExtendLineForward(n))return e.preventDefault(),void Transforms.move(_,{unit:"line",edge:"focus"});if(Hotkeys.isMoveBackward(n))return e.preventDefault(),void(r&&Range.isCollapsed(r)?Transforms.move(_,{reverse:!a}):Transforms.collapse(_,{edge:a?"end":"start"}));if(Hotkeys.isMoveForward(n))return e.preventDefault(),void(r&&Range.isCollapsed(r)?Transforms.move(_,{reverse:a}):Transforms.collapse(_,{edge:a?"start":"end"}));if(Hotkeys.isMoveWordBackward(n))return e.preventDefault(),r&&Range.isExpanded(r)&&Transforms.collapse(_,{edge:"focus"}),void Transforms.move(_,{unit:"word",reverse:!a});if(Hotkeys.isMoveWordForward(n))return e.preventDefault(),r&&Range.isExpanded(r)&&Transforms.collapse(_,{edge:"focus"}),void Transforms.move(_,{unit:"word",reverse:a});if(HAS_BEFORE_INPUT_SUPPORT){if((IS_CHROME||IS_WEBKIT)&&r&&(Hotkeys.isDeleteBackward(n)||Hotkeys.isDeleteForward(n))&&Range.isCollapsed(r)){var c=Node$1.parent(_,r.anchor.path);if(Element$2.isElement(c)&&Editor.isVoid(_,c)&&(Editor.isInline(_,c)||Editor.isBlock(_,c)))return e.preventDefault(),void Editor.deleteBackward(_,{unit:"block"})}}else{if(Hotkeys.isBold(n)||Hotkeys.isItalic(n)||Hotkeys.isTransposeCharacter(n))return void e.preventDefault();if(Hotkeys.isSoftBreak(n))return e.preventDefault(),void Editor.insertSoftBreak(_);if(Hotkeys.isSplitBlock(n))return e.preventDefault(),void Editor.insertBreak(_);if(Hotkeys.isDeleteBackward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"backward"}):Editor.deleteBackward(_));if(Hotkeys.isDeleteForward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"forward"}):Editor.deleteForward(_));if(Hotkeys.isDeleteLineBackward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"backward"}):Editor.deleteBackward(_,{unit:"line"}));if(Hotkeys.isDeleteLineForward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"forward"}):Editor.deleteForward(_,{unit:"line"}));if(Hotkeys.isDeleteWordBackward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"backward"}):Editor.deleteBackward(_,{unit:"word"}));if(Hotkeys.isDeleteWordForward(n))return e.preventDefault(),void(r&&Range.isExpanded(r)?Editor.deleteFragment(_,{direction:"forward"}):Editor.deleteForward(_,{unit:"word"}))}}}),[s,_,h.onKeyDown]),onPaste:React.useCallback((e=>{s||!ReactEditor.hasEditableTarget(_,e.target)||isEventHandled(e,h.onPaste)||(!HAS_BEFORE_INPUT_SUPPORT||isPlainTextOnlyPaste(e.nativeEvent)||IS_WEBKIT)&&(e.preventDefault(),ReactEditor.insertData(_,e.clipboardData))}),[s,_,h.onPaste])}),React__default.default.createElement(Children,{decorations:F,node:_,renderElement:l,renderPlaceholder:u,renderLeaf:c,selection:_.selection}))))))})),DefaultPlaceholder=e=>{var{attributes:t,children:n}=e;return React__default.default.createElement("span",_objectSpread$1$3({},t),n,IS_ANDROID&&React__default.default.createElement("br",null))},defaultDecorate=()=>[],defaultScrollSelectionIntoView=(t,n)=>{if(n.getBoundingClientRect&&(!t.selection||t.selection&&Range.isCollapsed(t.selection))){var r=n.startContainer.parentElement;r.getBoundingClientRect=n.getBoundingClientRect.bind(n),e(r,{scrollMode:"if-needed"}),delete r.getBoundingClientRect}},isEventHandled=(e,t)=>{if(!t)return!1;var n=t(e);return null!=n?n:e.isDefaultPrevented()||e.isPropagationStopped()},isDOMEventTargetInput=e=>isDOMNode(e.target)&&(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement),isDOMEventHandled=(e,t)=>{if(!t)return!1;var n=t(e);return null!=n?n:e.defaultPrevented},FocusedContext=React.createContext(!1),SlateSelectorContext=React.createContext({});function useSelectorContext(e){var t=React.useRef([]).current,n=React.useRef({editor:e}).current,r=React.useCallback((e=>{n.editor=e,t.forEach((t=>t(e)))}),[t,n]);return{selectorContext:React.useMemo((()=>({getSlate:()=>n.editor,addEventListener:e=>(t.push(e),()=>{t.splice(t.indexOf(e),1)})})),[t,n]),onChange:r}}var _excluded=["editor","children","onChange","onSelectionChange","onValueChange","initialValue"],Slate=e=>{var{editor:t,children:n,onChange:r,onSelectionChange:o,onValueChange:a,initialValue:i}=e,s=_objectWithoutProperties(e,_excluded),[l,c]=React__default.default.useState((()=>{if(!Node$1.isNodeList(i))throw new Error("[Slate] initialValue is invalid! Expected a list of elements but got: ".concat(Scrubber.stringify(i)));if(!Editor.isEditor(t))throw new Error("[Slate] editor is invalid! You passed: ".concat(Scrubber.stringify(t)));return t.children=i,Object.assign(t,s),{v:0,editor:t}})),{selectorContext:u,onChange:d}=useSelectorContext(t),f=React.useCallback((e=>{var n;if(r&&r(t.children),"set_selection"===(null==e||null===(n=e.operation)||void 0===n?void 0:n.type))null==o||o(t.selection);else null==a||a(t.children);c((e=>({v:e.v+1,editor:t}))),d(t)}),[t,d,r,o,a]);React.useEffect((()=>(EDITOR_TO_ON_CHANGE.set(t,f),()=>{EDITOR_TO_ON_CHANGE.set(t,(()=>{}))})),[t,f]);var[p,m]=React.useState(ReactEditor.isFocused(t));return React.useEffect((()=>{m(ReactEditor.isFocused(t))}),[t]),useIsomorphicLayoutEffect$3((()=>{var e=()=>m(ReactEditor.isFocused(t));return REACT_MAJOR_VERSION>=17?(document.addEventListener("focusin",e),document.addEventListener("focusout",e),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",e)}):(document.addEventListener("focus",e,!0),document.addEventListener("blur",e,!0),()=>{document.removeEventListener("focus",e,!0),document.removeEventListener("blur",e,!0)})}),[]),React__default.default.createElement(SlateSelectorContext.Provider,{value:u},React__default.default.createElement(SlateContext.Provider,{value:l},React__default.default.createElement(EditorContext.Provider,{value:l.editor},React__default.default.createElement(FocusedContext.Provider,{value:p},n))))},doRectsIntersect=(e,t)=>{var n=(t.top+t.bottom)/2;return e.top<=n&&e.bottom>=n},areRangesSameLine=(e,t,n)=>{var r=ReactEditor.toDOMRange(e,t).getBoundingClientRect(),o=ReactEditor.toDOMRange(e,n).getBoundingClientRect();return doRectsIntersect(r,o)&&doRectsIntersect(o,r)},findCurrentLineRange=(e,t)=>{var n=Editor.range(e,Range.end(t)),r=Array.from(Editor.positions(e,{at:t})),o=0,a=r.length,i=Math.floor(a/2);if(areRangesSameLine(e,Editor.range(e,r[o]),n))return Editor.range(e,r[o],n);if(r.length<2)return Editor.range(e,r[r.length-1],n);for(;i!==r.length&&i!==o;)areRangesSameLine(e,Editor.range(e,r[i]),n)?a=i:o=i,i=Math.floor((o+a)/2);return Editor.range(e,r[a],n)};function ownKeys$9(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$9(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$9(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$9(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var withReact=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"x-slate-fragment",n=e,{apply:r,onChange:o,deleteBackward:a,addMark:i,removeMark:s}=n;return EDITOR_TO_KEY_TO_ELEMENT.set(n,new WeakMap),n.addMark=(e,t)=>{var r,o;null===(r=EDITOR_TO_SCHEDULE_FLUSH.get(n))||void 0===r||r(),!EDITOR_TO_PENDING_INSERTION_MARKS.get(n)&&null!==(o=EDITOR_TO_PENDING_DIFFS.get(n))&&void 0!==o&&o.length&&EDITOR_TO_PENDING_INSERTION_MARKS.set(n,null),EDITOR_TO_USER_MARKS.delete(n),i(e,t)},n.removeMark=e=>{var t;!EDITOR_TO_PENDING_INSERTION_MARKS.get(n)&&null!==(t=EDITOR_TO_PENDING_DIFFS.get(n))&&void 0!==t&&t.length&&EDITOR_TO_PENDING_INSERTION_MARKS.set(n,null),EDITOR_TO_USER_MARKS.delete(n),s(e)},n.deleteBackward=e=>{if("line"!==e)return a(e);if(n.selection&&Range.isCollapsed(n.selection)){var t=Editor.above(n,{match:e=>Element$2.isElement(e)&&Editor.isBlock(n,e),at:n.selection});if(t){var[,r]=t,o=Editor.range(n,r,n.selection.anchor),i=findCurrentLineRange(n,o);Range.isCollapsed(i)||Transforms.delete(n,{at:i})}}},n.apply=t=>{var o=[],a=[],i=EDITOR_TO_PENDING_DIFFS.get(n);if(null!=i&&i.length){var s=i.map((e=>transformTextDiff(e,t))).filter(Boolean);EDITOR_TO_PENDING_DIFFS.set(n,s)}var l=EDITOR_TO_PENDING_SELECTION.get(n);l&&EDITOR_TO_PENDING_SELECTION.set(n,transformPendingRange(n,l,t));var c=EDITOR_TO_PENDING_ACTION.get(n);if(null!=c&&c.at){var u=Point.isPoint(null==c?void 0:c.at)?transformPendingPoint(n,c.at,t):transformPendingRange(n,c.at,t);EDITOR_TO_PENDING_ACTION.set(n,u?_objectSpread$9(_objectSpread$9({},c),{},{at:u}):null)}switch(t.type){case"insert_text":case"remove_text":case"set_node":case"split_node":o.push(...getMatches(n,t.path));break;case"set_selection":var d;null===(d=EDITOR_TO_USER_SELECTION.get(n))||void 0===d||d.unref(),EDITOR_TO_USER_SELECTION.delete(n);break;case"insert_node":case"remove_node":o.push(...getMatches(n,Path.parent(t.path)));break;case"merge_node":var f=Path.previous(t.path);o.push(...getMatches(n,f));break;case"move_node":var p,m=Path.common(Path.parent(t.path),Path.parent(t.newPath));o.push(...getMatches(n,m)),Path.isBefore(t.path,t.newPath)?(o.push(...getMatches(n,Path.parent(t.path))),p=t.newPath):(o.push(...getMatches(n,Path.parent(t.newPath))),p=t.path);var h=Node$1.get(e,Path.parent(p)),_=ReactEditor.findKey(n,h),g=Editor.pathRef(n,Path.parent(p));a.push([g,_])}switch(r(t),t.type){case"insert_node":case"remove_node":case"merge_node":case"move_node":case"split_node":IS_NODE_MAP_DIRTY.set(n,!0)}for(var[v,E]of o){var[y]=Editor.node(n,v);NODE_TO_KEY.set(y,E)}for(var[b,C]of a){if(b.current){var[R]=Editor.node(n,b.current);NODE_TO_KEY.set(R,C)}b.unref()}},n.setFragmentData=e=>{var{selection:r}=n;if(r){var[o,a]=Range.edges(r),i=Editor.void(n,{at:o.path}),s=Editor.void(n,{at:a.path});if(!Range.isCollapsed(r)||i){var l=ReactEditor.toDOMRange(n,r),c=l.cloneContents(),u=c.childNodes[0];if(c.childNodes.forEach((e=>{e.textContent&&""!==e.textContent.trim()&&(u=e)})),s){var[d]=s,f=l.cloneRange(),p=ReactEditor.toDOMNode(n,d);f.setEndAfter(p),c=f.cloneContents()}if(i&&(u=c.querySelector("[data-slate-spacer]")),Array.from(c.querySelectorAll("[data-slate-zero-width]")).forEach((e=>{var t="n"===e.getAttribute("data-slate-zero-width");e.textContent=t?"\n":""})),isDOMText(u)){var m=u.ownerDocument.createElement("span");m.style.whiteSpace="pre",m.appendChild(u),c.appendChild(m),u=m}var h=n.getFragment(),_=JSON.stringify(h),g=window.btoa(encodeURIComponent(_));u.setAttribute("data-slate-fragment",g),e.setData("application/".concat(t),g);var v=c.ownerDocument.createElement("div");return v.appendChild(c),v.setAttribute("hidden","true"),c.ownerDocument.body.appendChild(v),e.setData("text/html",v.innerHTML),e.setData("text/plain",getPlainText(v)),c.ownerDocument.body.removeChild(v),e}}},n.insertData=e=>{n.insertFragmentData(e)||n.insertTextData(e)},n.insertFragmentData=e=>{var r=e.getData("application/".concat(t))||getSlateFragmentAttribute(e);if(r){var o=decodeURIComponent(window.atob(r)),a=JSON.parse(o);return n.insertFragment(a),!0}return!1},n.insertTextData=e=>{var t=e.getData("text/plain");if(t){var r=t.split(/\r\n|\r|\n/),o=!1;for(var a of r)o&&Transforms.splitNodes(n,{always:!0}),n.insertText(a),o=!0;return!0}return!1},n.onChange=e=>{(REACT_MAJOR_VERSION<18?ReactDOM__default.default.unstable_batchedUpdates:e=>e())((()=>{var t=EDITOR_TO_ON_CHANGE.get(n);t&&t(e),o(e)}))},n},getMatches=(e,t)=>{var n=[];for(var[r,o]of Editor.levels(e,{at:t})){var a=ReactEditor.findKey(e,r);n.push([o,a])}return n};const defaultComponents={Anchor:"a"},ComponentsContext=React.createContext(void 0);function useComponents(e){const t=React.useContext(ComponentsContext);return React.useMemo((()=>({...defaultComponents,...t,...e})),[t,e])}function ComponentsProvider({children:e,components:t}){const n=React.useContext(ComponentsContext),r=React.useMemo((()=>({...defaultComponents,...n,...t})),[n,t]);return React__namespace.createElement(ComponentsContext.Provider,{value:r},e)}const LiveblocksUIConfigContext=React.createContext({});function useLiveblocksUIConfig(){return React.useContext(LiveblocksUIConfigContext)}function LiveblocksUIConfig({overrides:e,components:t,portalContainer:n,preventUnsavedComposerChanges:r=!0,children:o}){const a=React.useMemo((()=>({portalContainer:n,preventUnsavedComposerChanges:r})),[n,r]);return React__default.default.createElement(LiveblocksUIConfigContext.Provider,{value:a},React__default.default.createElement(OverridesProvider,{overrides:e},React__default.default.createElement(ComponentsProvider,{components:t},o)))}const formatters=[{type:"mark",mark:"bold",character:"*"},{type:"mark",mark:"italic",character:"_"},{type:"mark",mark:"strikethrough",character:"~"},{type:"mark",mark:"code",character:"`"}],markFormattingCharacters=formatters.filter((e=>"mark"===e.type)).map((e=>e.character));function formatMark(e,t,n){if(t!==n.character)return!1;const r=getMatchRange(e,e.selection,[n.character]);if(!r||Range.isCollapsed(r))return!1;const o=getCharacterBefore(e,r);if(!o||o.text!==n.character)return!1;const a=getCharacterBefore(e,o.range);if(a&&!markFormattingCharacters.includes(a.text)&&!isEmptyString(a.text))return!1;const i=Editor.string(e,r);return i.trim()===i&&(Transforms.select(e,r),e.addMark(n.mark,!0),Transforms.collapse(e,{edge:"end"}),e.removeMark(n.mark),Transforms.delete(e,{at:o.range}),!0)}function withAutoFormatting(e){const{insertText:t}=e;return e.insertText=(n,r)=>{if(!isSelectionCollapsed(e.selection))return t(n,r);let o=!0;for(const t of formatters)"mark"===t.type&&formatMark(e,n,t)&&(o=!1);o&&t(n,r)},e}function isText(e){return!("type"in e)&&"text"in e&&"string"==typeof e.text}function isPlainText(e){return isText(e)&&1===Object.keys(e).length}function selectionContainsInlines(e,t){const{selection:n}=e;if(!n)return!1;const r=Array.from(Editor.nodes(e,{at:n,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),mode:"lowest"}));for(const[,o]of r){const r=Range.isRange(n)?Range.intersection(n,Editor.range(e,o)):n;if(!r)continue;const a=Array.from(Editor.nodes(e,{at:r,match:n=>Editor.isInline(e,n)&&t(n)}));if(a.length>0)return!0}return!1}function isUrl(e){try{return new URL(e),!0}catch(e){return!1}}function withCustomLinks(e){const{isInline:t,normalizeNode:n,insertData:r}=e;return e.isInline=e=>"custom-link"===e.type||t(e),e.normalizeNode=t=>{const[r,o]=t;if(isText(r)){if(isComposerBodyCustomLink(Node$1.parent(e,o))&&!isPlainText(r)){const t=Object.keys(r).filter((e=>"text"!==e));Transforms.unsetNodes(e,t,{at:o})}}n(t)},e.insertData=t=>{const{selection:n}=e,o=t.getData("text/plain");let a=!0;n&&!Range.isCollapsed(n)&&n.anchor.path[0]===n.focus.path[0]&&isUrl(o)&&(selectionContainsInlines(e,(e=>!isText(e)))||(Transforms.wrapNodes(e,{type:"custom-link",url:o,children:[]},{at:n,split:!0,match:isPlainText}),a=!1)),a&&r(t)},e}function isComposerBodyCustomLink(e){return Element$2.isElement(e)&&"custom-link"===e.type}function withAutoLinks(e){const{isInline:t,normalizeNode:n,deleteBackward:r}=e;return e.isInline=e=>"auto-link"===e.type||t(e),e.normalizeNode=t=>{const[r,o]=t;if(!isComposerBodyCustomLink(r)){if(isText(r)){const t=Node$1.parent(e,o);if(isComposerBodyCustomLink(t))return;if(isComposerBodyAutoLink(t)){const n=Path.parent(o);if(handleLinkEdit(e,[t,n]),!isPlainText(r)){const t=Object.keys(r).filter((e=>"text"!==e));Transforms.unsetNodes(e,t,{at:o})}}else handleLinkCreate(e,[r,o]),handleNeighbours(e,[r,o])}n(t)}},e.deleteBackward=t=>{r(t);const{selection:n}=e;if(!n)return;if(!Range.isCollapsed(n))return;const[o]=Editor.nodes(e,{at:n,match:isComposerBodyAutoLink,mode:"lowest"});o&&Transforms.unwrapNodes(e,{match:isComposerBodyAutoLink})},e}function isComposerBodyAutoLink(e){return Element$2.isElement(e)&&"auto-link"===e.type}const URL_REGEX=/((https?:\/\/(www\.)?)|(www\.))[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9().@:%_+~#?&//=]*)/,PUNCTUATION_OR_SPACE=/[.,;!?\s()]/,PERIOD_OR_QUESTION_MARK_FOLLOWED_BY_ALPHANUMERIC=/^[.?][a-zA-Z0-9]+/,PARENTHESES=/[()]/;function isSeparator(e){return PUNCTUATION_OR_SPACE.test(e)}function endsWithSeparator(e){const t=e[e.length-1];return void 0!==t&&isSeparator(t)}function startsWithSeparator(e){const t=e[0];return void 0!==t&&isSeparator(t)}function endsWithPeriodOrQuestionMark(e){return"."===e[e.length-1]||"?"===e[e.length-1]}function getUrlLogicalLength(e){if(!PARENTHESES.test(e))return e.length;let t=0,n=0;for(const r of e){if("("===r&&n++,")"===r&&(n--,n<0))break;t++}return t}function isPreviousNodeValid(e,t){const n=Editor.previous(e,{at:t});return!n||isText(n[0])&&(endsWithSeparator(n[0].text)||""===n[0].text)}function isNextNodeValid(e,t){const n=Editor.next(e,{at:t});return!n||isText(n[0])&&(startsWithSeparator(n[0].text)||""===n[0].text)}function isContentAroundValid(e,t,n,r){const[o,a]=t,i=o.text,s=i[n-1],l=n>0&&s?isSeparator(s):isPreviousNodeValid(e,a),c=i[r],u=r<i.length&&c?isSeparator(c):isNextNodeValid(e,a);return l&&u}const handleLinkEdit=(e,t)=>{const[n,r]=t,o=Node$1.children(e,r);for(const[t]of o)if(!isText(t))return void Transforms.unwrapNodes(e,{at:r});const a=Node$1.string(n),i=URL_REGEX.exec(a),s=i?.[0];if(!i||s!==a)return void Transforms.unwrapNodes(e,{at:r});if(endsWithPeriodOrQuestionMark(a)){Transforms.unwrapNodes(e,{at:r});const t=a.slice(0,a.length-1);return void Transforms.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:r,offset:0},focus:{path:r,offset:t.length}},split:!0})}const l=getUrlLogicalLength(a);if(l<a.length){Transforms.unwrapNodes(e,{at:r});const t=a.slice(0,l);Transforms.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:r,offset:0},focus:{path:r,offset:t.length}},split:!0})}else isPreviousNodeValid(e,r)&&isNextNodeValid(e,r)?n.url===a||Transforms.setNodes(e,{url:s},{at:r}):Transforms.unwrapNodes(e,{at:r})},handleLinkCreate=(e,t)=>{const[n,r]=t,o=URL_REGEX.exec(n.text),a=o?.[0];if(!o||void 0===a)return;const i=o.index,s=i+a.length;isContentAroundValid(e,t,i,s)&&Transforms.wrapNodes(e,{type:"auto-link",url:a,children:[]},{at:{anchor:{path:r,offset:i},focus:{path:r,offset:s}},split:!0})},handleNeighbours=(e,t)=>{const[n,r]=t,o=n.text,a=Editor.previous(e,{at:r});if(a&&isComposerBodyAutoLink(a[0])){if(PERIOD_OR_QUESTION_MARK_FOLLOWED_BY_ALPHANUMERIC.test(o))return Transforms.unwrapNodes(e,{at:a[1]}),void Transforms.mergeNodes(e,{at:r});if(!startsWithSeparator(o))return void Transforms.unwrapNodes(e,{at:a[1]})}const i=Editor.next(e,{at:r});i&&isComposerBodyAutoLink(i[0])&&!endsWithSeparator(o)&&Transforms.unwrapNodes(e,{at:i[1]})};function isEmpty(e,t){for(const n of t)if(isText(n)){if(!isEmptyString(n.text))return!1}else if("paragraph"===n.type){if(n.children.length>1||n.children[0]&&(!isText(n.children[0])||!isEmptyString(n.children[0].text)))return!1}else if(!Editor.isEmpty(e,n))return!1;return!0}function isMarkActive(e,t){const n=Editor.marks(e);return!!n&&!0===n[t]}function toggleMark(e,t){isMarkActive(e,t)?Editor.removeMark(e,t):Editor.addMark(e,t,!0)}function removeMarks(e){const t=Editor.marks(e);if(t)for(const n in t)Editor.removeMark(e,n)}function leaveMarkEdge(e,t){if(isSelectionCollapsed(e.selection)){if(Object.keys(Editor.marks(e)??{}).length>0){("start"===t?getCharacterBefore(e,e.selection):getCharacterAfter(e,e.selection))||removeMarks(e)}}}function withEmptyClearFormatting(e){const{onChange:t}=e;return e.onChange=n=>{isEmpty(e,e.children)&&removeMarks(e),t(n)},e}function withNormalize(e){const{normalizeNode:t}=e;return e.normalizeNode=n=>{const[r,o]=n;if(Element$2.isElement(r)&&"paragraph"===r.type)for(const[t,n]of Node$1.children(e,o))if(Element$2.isElement(t)&&!e.isInline(t))return void Transforms.unwrapNodes(e,{at:n});!Element$2.isElement(r)||"auto-link"!==r.type&&"custom-link"!==r.type||(0===r.children.length||1===r.children.length&&""===r.children[0]?.text)&&Transforms.removeNodes(e,{at:o}),t(n)},e}function _typeof$2(e){return _typeof$2="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$2(e)}function _toPrimitive$2(e,t){if("object"!==_typeof$2(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$2(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$2(e){var t=_toPrimitive$2(e,"string");return"symbol"===_typeof$2(t)?t:String(t)}function _defineProperty$2(e,t,n){return(t=_toPropertyKey$2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ANCHOR=new WeakMap,FOCUS=new WeakMap;class Token{}class AnchorToken extends Token{constructor(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),_defineProperty$2(this,"offset",void 0),_defineProperty$2(this,"path",void 0);var{offset:t,path:n}=e;this.offset=t,this.path=n}}class FocusToken extends Token{constructor(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),_defineProperty$2(this,"offset",void 0),_defineProperty$2(this,"path",void 0);var{offset:t,path:n}=e;this.offset=t,this.path=n}}var addAnchorToken=(e,t)=>{var n=e.text.length;ANCHOR.set(e,[n,t])},getAnchorOffset=e=>ANCHOR.get(e),addFocusToken=(e,t)=>{var n=e.text.length;FOCUS.set(e,[n,t])},getFocusOffset=e=>FOCUS.get(e);function ownKeys$1$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$1$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$2(Object(n),!0).forEach((function(t){_defineProperty$2(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var STRINGS=new WeakSet,resolveDescendants=e=>{var t=[],n=e=>{if(null!=e){var r=t[t.length-1];if("string"==typeof e){var o={text:e};STRINGS.add(o),e=o}if(Text$1.isText(e)){var a=e;Text$1.isText(r)&&STRINGS.has(r)&&STRINGS.has(a)&&Text$1.equals(r,a,{loose:!0})?r.text+=a.text:t.push(a)}else if(Element$2.isElement(e))t.push(e);else{if(!(e instanceof Token))throw new Error("Unexpected hyperscript child object: ".concat(e));var i=t[t.length-1];Text$1.isText(i)||(n(""),i=t[t.length-1]),e instanceof AnchorToken?addAnchorToken(i,e):e instanceof FocusToken&&addFocusToken(i,e)}}};for(var r of e.flat(1/0))n(r);return t};function createAnchor(e,t,n){return new AnchorToken(t)}function createCursor(e,t,n){return[new AnchorToken(t),new FocusToken(t)]}function createElement(e,t,n){return _objectSpread$1$2(_objectSpread$1$2({},t),{},{children:resolveDescendants(n)})}function createFocus(e,t,n){return new FocusToken(t)}function createFragment(e,t,n){return resolveDescendants(n)}function createSelection(e,t,n){var r=n.find((e=>e instanceof AnchorToken)),o=n.find((e=>e instanceof FocusToken));if(!r||null==r.offset||null==r.path)throw new Error("The <selection> hyperscript tag must have an <anchor> tag as a child with `path` and `offset` attributes defined.");if(!o||null==o.offset||null==o.path)throw new Error("The <selection> hyperscript tag must have a <focus> tag as a child with `path` and `offset` attributes defined.");return _objectSpread$1$2({anchor:{offset:r.offset,path:r.path},focus:{offset:o.offset,path:o.path}},t)}function createText(e,t,n){var r=resolveDescendants(n);if(r.length>1)throw new Error("The <text> hyperscript tag must only contain a single node's worth of children.");var[o]=r;if(null==o&&(o={text:""}),!Text$1.isText(o))throw new Error("\n The <text> hyperscript tag can only contain text content as children.");return STRINGS.delete(o),Object.assign(o,t),o}var createEditor=e=>(t,n,r)=>{var o,a=[];for(var i of r)Range.isRange(i)?o=i:a.push(i);var s=resolveDescendants(a),l={},c=e();for(var[u,d]of(Object.assign(c,n),c.children=s,Node$1.texts(c))){var f=getAnchorOffset(u),p=getFocusOffset(u);if(null!=f){var[m]=f;l.anchor={path:d,offset:m}}if(null!=p){var[h]=p;l.focus={path:d,offset:h}}}if(l.anchor&&!l.focus)throw new Error("Slate hyperscript ranges must have both `<anchor />` and `<focus />` defined if one is defined, but you only defined `<anchor />`. For collapsed selections, use `<cursor />` instead.");if(!l.anchor&&l.focus)throw new Error("Slate hyperscript ranges must have both `<anchor />` and `<focus />` defined if one is defined, but you only defined `<focus />`. For collapsed selections, use `<cursor />` instead.");return null!=o?c.selection=o:Range.isRange(l)&&(c.selection=l),c};function ownKeys$8(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$8(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$8(Object(n),!0).forEach((function(t){_defineProperty$2(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$8(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var DEFAULT_CREATORS={anchor:createAnchor,cursor:createCursor,editor:createEditor(createEditor$1),element:createElement,focus:createFocus,fragment:createFragment,selection:createSelection,text:createText},createHyperscript=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{elements:t={}}=e,n=normalizeElements(t),r=_objectSpread$8(_objectSpread$8(_objectSpread$8({},DEFAULT_CREATORS),n),e.creators);return createFactory(r)},createFactory=e=>function(t,n){for(var r=arguments.length,o=new Array(r>2?r-2:0),a=2;a<r;a++)o[a-2]=arguments[a];var i=e[t];if(!i)throw new Error("No hyperscript creator found for tag: <".concat(t,">"));return null==n&&(n={}),isPlainObject$1(n)||(o=[n].concat(o),n={}),i(t,n,o=o.filter((e=>Boolean(e))).flat())},normalizeElements=e=>{var t={},n=function(){var n=e[r];if("object"!=typeof n)throw new Error("Properties specified for a hyperscript shorthand should be an object, but for the custom element <".concat(r,"> tag you passed: ").concat(n));t[r]=(e,t,r)=>createElement("element",_objectSpread$8(_objectSpread$8({},n),t),r)};for(var r in e)n();return t},jsx=createHyperscript();function exists(e){return null!=e}function getFiles(e){if(!e.types.includes("Files"))return[];let t=Array.from(e.items).map((e=>{const t=e.webkitGetAsEntry();return t&&t.isFile?e.getAsFile():null})).filter(exists);return t.length||(t=Array.from(e.files).filter((e=>""!==e.type))),t}function areUrlsEqual(e,t){try{const n=new URL(e),r=new URL(t);return n.origin===r.origin&&n.pathname===r.pathname}catch{return!1}}const createParagraphElement=()=>({type:"paragraph"}),ELEMENT_TAGS={A:e=>{const t=e.getAttribute("href"),n=e.innerText;return{type:t&&areUrlsEqual(t,n)?"auto-link":"custom-link",url:t??""}},P:createParagraphElement,BLOCKQUOTE:createParagraphElement,H1:createParagraphElement,H2:createParagraphElement,H3:createParagraphElement,H4:createParagraphElement,H5:createParagraphElement,H6:createParagraphElement,LI:createParagraphElement},TEXT_TAGS={CODE:()=>({code:!0}),DEL:()=>({strikethrough:!0}),EM:()=>({italic:!0}),I:()=>({italic:!0}),S:()=>({strikethrough:!0}),STRONG:()=>({bold:!0}),B:()=>({bold:!0})};function flattenListItems(e){const t=[];return"LI"===e.nodeName&&t.push(e),e.childNodes.forEach((e=>{1===e.nodeType&&t.push(...flattenListItems(e))})),t}function jsxTextChildren(e,t){return e.map((e=>jsx("text",t,e)))}function deserialize(e){if(3===e.nodeType)return e.textContent;if(1!==e.nodeType)return null;if("BR"===e.nodeName)return jsx("element",createParagraphElement(),[]);let t=Array.from(e.childNodes).map(deserialize).flat();if("UL"===e.nodeName||"OL"===e.nodeName){t=flattenListItems(e).map((e=>deserialize(e))).flat()}if(0===t.length&&(t=[{text:""}]),"BODY"===e.nodeName)return t.length>0&&t.every((e=>"string"==typeof e))&&(t=[{type:"paragraph",children:[{text:t.join("")}]}]),jsx("fragment",{},t.filter((e=>"string"!=typeof e)));if(ELEMENT_TAGS[e.nodeName]){const n=ELEMENT_TAGS[e.nodeName](e);return jsx("element",n,t)}if(TEXT_TAGS[e.nodeName]){const n=TEXT_TAGS[e.nodeName](e);return t.some((e=>e&&"string"!=typeof e&&"type"in e))?jsx("fragment",{},t):jsxTextChildren(t,n)}if("SPAN"===e.nodeName){const n=e.style,r={};return"bold"!==n.fontWeight&&"700"!==n.fontWeight&&"800"!==n.fontWeight&&"900"!==n.fontWeight||(r.bold=!0),"italic"===n.fontStyle&&(r.italic=!0),"line-through"===n.textDecoration&&(r.strikethrough=!0),jsxTextChildren(t,r)}return t}function withPaste(e,{createAttachments:t,pasteFilesAsAttachments:n}){const{insertData:r}=e;return e.insertData=o=>{if(o.types.includes("Files")&&n){const e=getFiles(o);if(e.length>0)return void t(e)}if(o.types.includes("text/html")&&!o.types.includes("application/x-slate-fragment")){const t=o.getData("text/html");try{const{body:n}=(new DOMParser).parseFromString(t,"text/html");if(n.querySelector("br.Apple-interchange-newline")?.remove(),1===n.children.length&&"B"===n.children[0]?.nodeName){const e=n.children[0];for(;e.firstChild;)n.insertBefore(e.firstChild,e);n.removeChild(e)}const r=deserialize(n);if(null!==r&&Array.isArray(r))return void Transforms.insertFragment(e,r)}catch{}}r(o)},e}function getDOMRange(e,t){try{return ReactEditor.toDOMRange(e,t)}catch(n){return getDOMRange(e,{anchor:t.anchor,focus:t.anchor})}}const APPLE_REGEX=/Mac|iPod|iPhone|iPad/;function isApple(){return"undefined"!=typeof window&&APPLE_REGEX.test(window.navigator.platform)}const MODIFIERS={alt:()=>"altKey",ctrl:()=>"ctrlKey",meta:()=>"metaKey",mod:()=>isApple()?"metaKey":"ctrlKey",shift:()=>"shiftKey"};function isKey(e,t,n={}){if(e.key!==t)return!1;return Object.entries(n).filter((([,e])=>"boolean"==typeof e)).every((([t,n])=>{const r=MODIFIERS[t]();return e[r]===n}))}const useReactFlushSync=ReactDOM__default.default["flushSync".toString()];function flushSyncFallback(e){return e()}const flushSync=useReactFlushSync??flushSyncFallback,useLayoutEffect="undefined"!=typeof window?React.useLayoutEffect:React.useEffect,PersistContext=React.createContext(null);function usePersist(){return nn(React.useContext(PersistContext),"Persist is missing from the React tree.")}function getChild(e){const t=Array.isArray(e)?React.Children.only(e):e;return React.isValidElement(t)?t:void 0}function useAnimationPersist(e){const[t,n]=usePersist(),r=React.useRef(null),o=React.useRef(null);useLayoutEffect((()=>{const t=e.current;if(!t)return;const a=e=>{e.animationName===o.current&&n(),r.current=e.animationName};return t.addEventListener("animationcancel",a),t.addEventListener("animationend",a),()=>{t.removeEventListener("animationcancel",a),t.removeEventListener("animationend",a)}}),[e,n]),useLayoutEffect((()=>{const a=e.current;let i;if(a)return t||(i=requestAnimationFrame((()=>{const e=getComputedStyle(a);o.current=e.animationName,"none"!==e.animationName&&e.animationName!==r.current&&"none"!==e.display||n()}))),()=>{cancelAnimationFrame(i)}}),[t,e,n])}function Persist({children:e}){const[t,n]=React.useState(!0),r=React.useRef(null),o=getChild(e),a=React.useCallback((()=>{flushSync((()=>n(!1)))}),[]);return useLayoutEffect((()=>{o&&(n(!0),r.current=o)}),[o]),React__default.default.createElement(PersistContext.Provider,{value:[Boolean(o),a]},o??(t?r.current:null))}const Portal$4=React.forwardRef((({container:e=document?.body,asChild:t,...n},r)=>{const o=t?Slot:"div";return e?ReactDOM.createPortal(React__default.default.createElement(o,{"data-liveblocks-portal":"",...n,ref:r}),e):null}));function requestSubmit(e,t){if("function"==typeof e.requestSubmit)return e.requestSubmit(t);t?t.click():((t=document.createElement("input")).type="submit",t.hidden=!0,e.appendChild(t),t.click(),e.removeChild(t))}let isHydrated=!1,id$1=0;function getId(){return++id$1}const useReactId$1=React__default.default["useId".toString()];function useIncrementalId(){const[e,t]=React.useState(isHydrated?getId:null);return useLayoutEffect((()=>{null===e&&t(getId())}),[e]),React.useEffect((()=>{isHydrated||(isHydrated=!0)}),[]),String(e)??void 0}const useId$1=useReactId$1??useIncrementalId;function clamp(e,t,n){return Math.min(Math.max(e,t),n)}function wrap(e,t,n){const r=n-t;return r>0?((e-t)%r+r)%r+t:0}const defaultOptions$1={wrap:!0};function useIndex(e,t,n){const{wrap:r}=React.useMemo((()=>({...defaultOptions$1,...n})),[n]),o=React.useMemo((()=>r?wrap:clamp),[r]),[a,i]=React.useState(e);React.useEffect((()=>{i((e=>clamp(e,0,Math.max(t-1,0))))}),[t]);return[a,React.useCallback((()=>{i((e=>o(e-1,0,Math.max(t,0))))}),[t,o]),React.useCallback((()=>{i((e=>o(e+1,0,Math.max(t,0))))}),[t,o]),i]}function useInitial(e){const[t]=React.useState(e);return t}function applyRef(e,t){t&&("function"==typeof e?e(t):e&&"current"in e&&(e.current=t))}function mergeRefs(e,...t){for(const n of t)applyRef(n,e)}function useRefs(...e){return React.useCallback((t=>mergeRefs(t,...e)),[e])}const ComposerContext=React.createContext(null),ComposerEditorContext=React.createContext(null),ComposerAttachmentsContext=React.createContext(null),ComposerSuggestionsContext=React.createContext(null);function useComposerEditorContext(){return nn(React.useContext(ComposerEditorContext),"Composer.Form is missing from the React tree.")}function useComposerAttachmentsContextOrNull(){return React.useContext(ComposerAttachmentsContext)}function useComposerAttachmentsContext(){return nn(useComposerAttachmentsContextOrNull(),"Composer.Form is missing from the React tree.")}function useComposerSuggestionsContext(e="useComposerSuggestionsContext"){return nn(React.useContext(ComposerSuggestionsContext),`${e} can’t be used outside of Composer.Editor.`)}function useComposer(){return nn(React.useContext(ComposerContext),"Composer.Form is missing from the React tree.")}function useLatest(e){const t=React.useRef(e);return React.useEffect((()=>{t.current=e}),[e]),t}function composerBodyMentionToCommentBodyMention(e){return{type:"mention",id:e.id}}function composerBodyAutoLinkToCommentBodyLink(e){return{type:"link",url:e.url}}function composerBodyCustomLinkToCommentBodyLink(e){return{type:"link",url:e.url,text:e.children.map((e=>e.text)).join("")}}function commentBodyMentionToComposerBodyMention(e){return{type:"mention",id:e.id,children:[{text:""}]}}function commentBodyLinkToComposerBodyLink(e){return e.text?{type:"custom-link",url:e.url,children:[{text:e.text}]}:{type:"auto-link",url:e.url,children:[{text:e.url}]}}function composerBodyToCommentBody(e){return{version:1,content:e.map((e=>{if("paragraph"!==e.type)return null;const t=e.children.map((e=>isComposerBodyMention(e)?composerBodyMentionToCommentBodyMention(e):isComposerBodyAutoLink(e)?composerBodyAutoLinkToCommentBodyLink(e):isComposerBodyCustomLink(e)?composerBodyCustomLinkToCommentBodyLink(e):isText(e)?e:null)).filter(exists);return{...e,children:t}})).filter(exists)}}const emptyComposerBody=[];function commentBodyToComposerBody(e){return e&&e?.content?e.content.map((e=>{if("paragraph"!==e.type)return null;const t=e.children.map((e=>isCommentBodyMention(e)?commentBodyMentionToComposerBodyMention(e):isCommentBodyLink(e)?commentBodyLinkToComposerBodyLink(e):isCommentBodyText(e)?e:null)).filter(exists);return{...e,children:t}})).filter(exists):emptyComposerBody}function getPlacementFromPosition(e,t="ltr"){return`${e}-${"rtl"===t?"end":"start"}`}function getSideAndAlignFromPlacement$1(e){const[t,n="center"]=e.split("-");return[t,n]}function useComposerAttachmentsDropArea({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:r,disabled:o}){const{isDisabled:a}=useComposer(),i=a||o,{createAttachments:s}=useComposerAttachmentsContext(),[l,c]=React.useState(!1),u=useLatest(l);return[l,{onDragEnter:React.useCallback((t=>{if(e?.(t),u.current||i||t.isDefaultPrevented())return;t.dataTransfer.types.includes("Files")&&(t.preventDefault(),t.stopPropagation(),c(!0))}),[e,i]),onDragLeave:React.useCallback((e=>{t?.(e),!u.current||i||e.isDefaultPrevented()||(e.relatedTarget?e.relatedTarget===e.currentTarget||e.currentTarget.contains(e.relatedTarget):e.currentTarget!==e.target)||(e.preventDefault(),e.stopPropagation(),c(!1))}),[t,i]),onDragOver:React.useCallback((e=>{n?.(e),i||e.isDefaultPrevented()||(e.preventDefault(),e.stopPropagation())}),[n,i]),onDrop:React.useCallback((e=>{if(r?.(e),!u.current||i||e.isDefaultPrevented())return;e.preventDefault(),e.stopPropagation(),c(!1);const t=getFiles(e.dataTransfer);s(t)}),[r,i,s]),"data-drop":l?"":void 0,"data-disabled":i?"":void 0}]}class AttachmentTooLargeError extends Error{constructor(e,t="client"){super(e),this.name="AttachmentTooLargeError",this.origin=t}}function createComposerAttachmentsManager(e,t){const n=new Map,r=new Map,o=makeEventSource();let a=null;function i(){a=null,o.notify()}function s(t){const o=new AbortController;r.set(t.id,o),e.uploadAttachment(t,{signal:o.signal}).then((()=>{n.set(t.id,{...t,status:"uploaded"}),i()})).catch((e=>{e instanceof Error&&"AbortError"!==e.name&&"TimeoutError"!==e.name&&(n.set(t.id,{...t,status:"error",error:e instanceof HttpError&&413===e.status?new AttachmentTooLargeError("File is too large.","server"):e}),i())}))}return{addAttachments:function(e){if(0===e.length)return;const r=e.filter((e=>!n.has(e.id))),o=[];for(const e of r)if("localAttachment"===e.type){if(e.file.size>t.maxFileSize){n.set(e.id,{...e,status:"error",error:new AttachmentTooLargeError("File is too large.","client")});continue}n.set(e.id,{...e,status:"uploading"}),o.push(e)}else n.set(e.id,e);r.length>0&&i();for(const e of o)s(e)},removeAttachment:function(e){const t=r.get(e);t?.abort(),n.delete(e),r.delete(e),i()},getSnapshot:function(){return a||(a=Array.from(n.values())),a},subscribe:o.subscribe,clear:function(){r.forEach((e=>e.abort())),r.clear(),n.clear(),i()}}}function preventBeforeUnloadDefault(e){e.preventDefault()}function useComposerAttachmentsManager(e,t){const n=_useRoom(),r=useInitial(e),o=useInitial((()=>createComposerAttachmentsManager(n,t)));React.useEffect((()=>{o.addAttachments(r)}),[r,o]),React.useEffect((()=>()=>{o.clear()}),[o]);const a=shim.exports.useSyncExternalStore(o.subscribe,o.getSnapshot,o.getSnapshot),i=React.useMemo((()=>a.some((e=>"localAttachment"===e.type&&"uploading"===e.status))),[a]);return React.useEffect((()=>{if(i)return window.addEventListener("beforeunload",preventBeforeUnloadDefault),()=>{window.removeEventListener("beforeunload",preventBeforeUnloadDefault)}}),[i]),{attachments:a,isUploadingAttachments:i,addAttachments:o.addAttachments,removeAttachment:o.removeAttachment,clearAttachments:o.clear}}const MENTION_SUGGESTIONS_POSITION="top",COMPOSER_SUGGESTIONS_NAME="ComposerSuggestions",COMPOSER_SUGGESTIONS_LIST_NAME="ComposerSuggestionsList",COMPOSER_SUGGESTIONS_LIST_ITEM_NAME="ComposerSuggestionsListItem",emptyCommentBody={version:1,content:[{type:"paragraph",children:[{text:""}]}]};function createComposerEditor({createAttachments:e,pasteFilesAsAttachments:t}){return withNormalize(withMentions(withCustomLinks(withAutoLinks(withAutoFormatting(withEmptyClearFormatting(withPaste(withHistory(withReact(createEditor$1())),{createAttachments:e,pasteFilesAsAttachments:t})))))))}function ComposerEditorMentionWrapper({Mention:e,attributes:t,children:n,element:r}){const o=useSelected();return React__default.default.createElement("span",{...t},r.id?React__default.default.createElement(e,{userId:r.id,isSelected:o}):null,n)}function ComposerEditorLinkWrapper({Link:e,attributes:t,element:n,children:r}){const o=React.useMemo((()=>toAbsoluteUrl(n.url)??n.url),[n.url]);return React__default.default.createElement("span",{...t},React__default.default.createElement(e,{href:o},r))}function ComposerEditorMentionSuggestionsWrapper({id:e,itemId:t,userIds:n,selectedUserId:r,setSelectedUserId:o,mentionDraft:a,onItemSelect:i,position:s=MENTION_SUGGESTIONS_POSITION,dir:l,MentionSuggestions:c}){const u=useSlateStatic(),{isFocused:d}=useComposer(),[f,p]=React.useState(null),[m,h]=React.useState(),_=React.useCallback(p,[p]),{portalContainer:g}=useLiveblocksUIConfig(),v=React.useMemo((()=>{const e={padding:FLOATING_ELEMENT_COLLISION_PADDING};return{strategy:"fixed",placement:getPlacementFromPosition(s,l),middleware:[flip({...e,crossAxis:!1}),hide(e),shift({...e,limiter:limitShift()}),size$1({...e,apply({availableWidth:e,availableHeight:t,elements:n}){n.floating.style.setProperty("--lb-composer-suggestions-available-width",`${e}px`),n.floating.style.setProperty("--lb-composer-suggestions-available-height",`${t}px`)}})],whileElementsMounted:(...e)=>autoUpdate(...e,{animationFrame:!0})}}),[s,l]),{refs:{setReference:E,setFloating:y},strategy:b,isPositioned:C,placement:R,x:w,y:S}=useFloating(v);return useLayoutEffect((()=>{f&&h(window.getComputedStyle(f).zIndex)}),[f]),useLayoutEffect((()=>{if(!a)return;const e=getDOMRange(u,a.range);e&&E({getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects()})}),[E,u,a]),React__default.default.createElement(Persist,null,a?.range&&d&&n?React__default.default.createElement(ComposerSuggestionsContext.Provider,{value:{id:e,itemId:t,selectedValue:r,setSelectedValue:o,onItemSelect:i,placement:R,dir:l,ref:_}},React__default.default.createElement(Portal$4,{ref:y,container:g,style:{position:b,top:0,left:0,transform:C?`translate3d(${Math.round(w)}px, ${Math.round(S)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:m}},React__default.default.createElement(c,{userIds:n,selectedUserId:r}))):null)}function ComposerEditorElement({Mention:e,Link:t,...n}){const{attributes:r,children:o,element:a}=n;switch(a.type){case"mention":return React__default.default.createElement(ComposerEditorMentionWrapper,{Mention:e,...n});case"auto-link":case"custom-link":return React__default.default.createElement(ComposerEditorLinkWrapper,{Link:t,...n});case"paragraph":return React__default.default.createElement("p",{...r,style:{position:"relative"}},o);default:return null}}function ComposerEditorLeaf({attributes:e,children:t,leaf:n}){return n.bold&&(t=React__default.default.createElement("strong",null,t)),n.italic&&(t=React__default.default.createElement("em",null,t)),n.strikethrough&&(t=React__default.default.createElement("s",null,t)),n.code&&(t=React__default.default.createElement("code",null,t)),React__default.default.createElement("span",{...e},t)}function ComposerEditorPlaceholder({attributes:e,children:t}){const{opacity:n,...r}=e.style;return React__default.default.createElement("span",{...e,style:r,"data-placeholder":""},t)}const ComposerMention$1=React.forwardRef((({children:e,asChild:t,...n},r)=>{const o=t?Slot:"span",a=useSelected();return React__default.default.createElement(o,{"data-selected":a||void 0,...n,ref:r},e)})),ComposerLink$1=React.forwardRef((({children:e,asChild:t,...n},r)=>{const o=t?Slot:"a";return React__default.default.createElement(o,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:r},e)})),ComposerSuggestions=React.forwardRef((({children:e,style:t,asChild:n,...r},o)=>{const[a]=usePersist(),i=React.useRef(null),{ref:s,placement:l,dir:c}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_NAME),u=useRefs(o,s,i),[d,f]=React.useMemo((()=>getSideAndAlignFromPlacement$1(l)),[l]),p=n?Slot:"div";return useAnimationPersist(i),React__default.default.createElement(p,{dir:c,...r,"data-state":a?"open":"closed","data-side":d,"data-align":f,style:{display:"flex",flexDirection:"column",maxHeight:"var(--lb-composer-suggestions-available-height)",overflowY:"auto",...t},ref:u},e)})),ComposerSuggestionsList=React.forwardRef((({children:e,asChild:t,...n},r)=>{const{id:o}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_NAME),a=t?Slot:"ul";return React__default.default.createElement(a,{role:"listbox",id:o,"aria-label":"Suggestions list",...n,ref:r},e)})),ComposerSuggestionsListItem=React.forwardRef((({value:e,children:t,onPointerMove:n,onPointerDown:r,onClick:o,asChild:a,...i},s)=>{const l=React.useRef(null),c=useRefs(s,l),{selectedValue:u,setSelectedValue:d,itemId:f,onItemSelect:p}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_ITEM_NAME),m=a?Slot:"li",h=React.useMemo((()=>u===e),[u,e]),_=React.useMemo((()=>f(e)),[f,e]);React.useEffect((()=>{l?.current&&h&&l.current.scrollIntoView({block:"nearest"})}),[h]);const g=React.useCallback((t=>{n?.(t),t.isDefaultPrevented()||d(e)}),[n,d,e]),v=React.useCallback((e=>{r?.(e),e.preventDefault(),e.stopPropagation()}),[r]),E=React.useCallback((t=>{o?.(t);const n=t.isDefaultPrevented();t.preventDefault(),t.stopPropagation(),n||p(e)}),[o,p,e]);return React__default.default.createElement(m,{role:"option",id:_,"data-selected":h||void 0,"aria-selected":h||void 0,onPointerMove:g,onPointerDown:v,onClick:E,...i,ref:c},t)})),defaultEditorComponents={Link:({href:e,children:t})=>React__default.default.createElement(ComposerLink$1,{href:e},t),Mention:({userId:e})=>React__default.default.createElement(ComposerMention$1,null,MENTION_CHARACTER,e),MentionSuggestions:({userIds:e})=>e.length>0?React__default.default.createElement(ComposerSuggestions,null,React__default.default.createElement(ComposerSuggestionsList,null,e.map((e=>React__default.default.createElement(ComposerSuggestionsListItem,{key:e,value:e},e))))):null},ComposerEditor=React.forwardRef((({defaultValue:e,onKeyDown:t,onFocus:n,onBlur:r,disabled:o,autoFocus:a,components:i,dir:s,...l},c)=>{const{editor:u,validate:d,setFocused:f}=useComposerEditorContext(),{submit:p,focus:m,select:h,canSubmit:_,isDisabled:g,isFocused:v}=useComposer(),E=g||o,y=useInitial(e??emptyCommentBody),b=React.useMemo((()=>commentBodyToComposerBody(y)),[y]),{Link:C,Mention:R,MentionSuggestions:w}=React.useMemo((()=>({...defaultEditorComponents,...i})),[i]),[S,D]=React.useState(),T=useMentionSuggestions(S?.text),[O,A,I,x]=useIndex(0,T?.length??0),N=useId$1(),F=React.useMemo((()=>`liveblocks-suggestions-list-${N}`),[N]),P=React.useCallback((e=>e?`liveblocks-suggestions-list-item-${N}-${e}`:void 0),[N]),k=React.useCallback((e=>React__default.default.createElement(ComposerEditorElement,{Mention:R,Link:C,...e})),[C,R]),$=React.useCallback((e=>{d(e),D(getMentionDraftAtSelection(u))}),[u,d]),M=React.useCallback((e=>{S&&e&&(Transforms.select(u,S.range),insertMention(u,e),D(void 0),x(0))}),[u,S,x]),B=React.useCallback((e=>{if(t?.(e),!e.isDefaultPrevented())if(isKey(e,"ArrowLeft")&&leaveMarkEdge(u,"start"),isKey(e,"ArrowRight")&&leaveMarkEdge(u,"end"),S&&T?.length){if(isKey(e,"ArrowDown")&&(e.preventDefault(),I()),isKey(e,"ArrowUp")&&(e.preventDefault(),A()),isKey(e,"Enter")||isKey(e,"Tab")){e.preventDefault();const t=T?.[O];M(t)}isKey(e,"Escape")&&(e.preventDefault(),D(void 0),x(0))}else isKey(e,"Escape")&&(e.preventDefault(),ReactEditor.blur(u)),isKey(e,"Enter",{shift:!1})&&(e.preventDefault(),_&&p()),isKey(e,"Enter",{shift:!0})&&(e.preventDefault(),u.insertBreak()),isKey(e,"b",{mod:!0})&&(e.preventDefault(),toggleMark(u,"bold")),isKey(e,"i",{mod:!0})&&(e.preventDefault(),toggleMark(u,"italic")),isKey(e,"s",{mod:!0,shift:!0})&&(e.preventDefault(),toggleMark(u,"strikethrough")),isKey(e,"e",{mod:!0})&&(e.preventDefault(),toggleMark(u,"code"))}),[M,u,_,S,T,O,t,I,A,x,p]),L=React.useCallback((e=>{n?.(e),e.isDefaultPrevented()||f(!0)}),[n,f]),j=React.useCallback((e=>{r?.(e),e.isDefaultPrevented()||f(!1)}),[r,f]),U=React.useMemo((()=>T?.[O]),[O,T]),V=React.useCallback((e=>{const t=T?.indexOf(e);void 0!==t&&t>=0&&x(t)}),[x,T]),H=React.useMemo((()=>S?{role:"combobox","aria-autocomplete":"list","aria-expanded":!0,"aria-controls":F,"aria-activedescendant":P(U)}:{}),[S,F,P,U]);return React.useImperativeHandle(c,(()=>ReactEditor.toDOMNode(u,u)),[u]),React.useEffect((()=>{a&&m()}),[a,u,m]),React.useEffect((()=>{v&&null===u.selection&&h()}),[u,h,v]),React__default.default.createElement(Slate,{editor:u,initialValue:b,onChange:$},React__default.default.createElement(Editable,{dir:s,enterKeyHint:S?"enter":"send",autoCapitalize:"sentences","aria-label":"Composer editor","data-focused":v||void 0,"data-disabled":E||void 0,...H,...l,readOnly:E,disabled:E,onKeyDown:B,onFocus:L,onBlur:j,renderElement:k,renderLeaf:ComposerEditorLeaf,renderPlaceholder:ComposerEditorPlaceholder}),React__default.default.createElement(ComposerEditorMentionSuggestionsWrapper,{dir:s,mentionDraft:S,selectedUserId:U,setSelectedUserId:V,userIds:T,id:F,itemId:P,onItemSelect:M,MentionSuggestions:w}))})),MAX_ATTACHMENTS=10,MAX_ATTACHMENT_SIZE=1073741824,ComposerForm=React.forwardRef((({children:e,onSubmit:t,onComposerSubmit:n,defaultAttachments:r=[],pasteFilesAsAttachments:o,preventUnsavedChanges:a=!0,disabled:i,asChild:s,...l},c)=>{const u=s?Slot:"form",d=_useRoom(),[f,p]=React.useState(!0),[m,h]=React.useState(!1),[_,g]=React.useState(!1),v=MAX_ATTACHMENTS,E=MAX_ATTACHMENT_SIZE,{attachments:y,isUploadingAttachments:b,addAttachments:C,removeAttachment:R,clearAttachments:w}=useComposerAttachmentsManager(r,{maxFileSize:E}),S=y.length,D=S>=v,T=React.useMemo((()=>{const e=d.getSelf();return m||i||!(e?.canComment??!0)}),[m,i,d]),O=React.useMemo((()=>!f&&!b),[f,b]),A=React.useRef(null),I=useRefs(c,A),x=React.useRef(null),N=useSyncSource(),F=!!a&&(!f||b||y.length>0);React.useEffect((()=>{N?.setSyncStatus(F?"has-local-changes":"synchronized")}),[N,F]);const P=React.useCallback((e=>{if(!e.length)return;const t=Math.max(0,v-S);e.splice(t);const n=e.map((e=>d.prepareAttachment(e)));C(n)}),[C,v,S,d]),k=React.useRef(P);React.useEffect((()=>{k.current=P}),[P]);const $=React.useCallback((e=>{k.current(e)}),[]),M=useInitial((()=>createComposerEditor({createAttachments:$,pasteFilesAsAttachments:o}))),B=React.useCallback((e=>{p(isEmpty(M,e))}),[M]),L=React.useCallback((()=>{O&&requestAnimationFrame((()=>{A.current&&requestSubmit(A.current)}))}),[O]),j=React.useCallback((()=>{Transforms.delete(M,{at:{anchor:Editor.start(M,[]),focus:Editor.end(M,[])}})}),[M]),U=React.useCallback((()=>{Transforms.select(M,{anchor:Editor.end(M,[]),focus:Editor.end(M,[])})}),[M]),V=React.useCallback(((e=!0)=>{ReactEditor.isFocused(M)||(Transforms.select(M,e||!M.selection?Editor.end(M,[]):M.selection),ReactEditor.focus(M))}),[M]),H=React.useCallback((()=>{ReactEditor.blur(M)}),[M]),z=React.useCallback((()=>{i||(V(),insertMentionCharacter(M))}),[i,M,V]),K=React.useCallback((e=>{i||(V(!1),insertText(M,e))}),[i,M,V]),W=React.useCallback((()=>{i||x.current&&x.current.click()}),[i]),G=React.useCallback((e=>{i||e.target.files&&(P(Array.from(e.target.files)),e.target.value="")}),[P,i]),q=React.useCallback((()=>{j(),H(),w(),h(!1)}),[H,j,w]),Y=React.useCallback((e=>{if(i)return;if(isEmpty(M,M.children))return void e.preventDefault();if(t?.(e),!n||e.isDefaultPrevented())return void e.preventDefault();const r=composerBodyToCommentBody(M.children),o=y.filter((e=>"attachment"===e.type||"localAttachment"===e.type&&"uploaded"===e.status)).map((e=>({id:e.id,type:"attachment",mimeType:e.mimeType,size:e.size,name:e.name}))),a=n({body:r,attachments:o},e);e.preventDefault(),a?(h(!0),a.then(q)):q()}),[i,M,y,n,t,q]),J=React.useCallback((e=>{e.stopPropagation()}),[]);return React__default.default.createElement(ComposerEditorContext.Provider,{value:{editor:M,validate:B,setFocused:g}},React__default.default.createElement(ComposerAttachmentsContext.Provider,{value:{createAttachments:P,isUploadingAttachments:b,hasMaxAttachments:D,maxAttachments:v,maxAttachmentSize:E}},React__default.default.createElement(ComposerContext.Provider,{value:{isDisabled:T,isFocused:_,isEmpty:f,canSubmit:O,submit:L,clear:j,select:U,focus:V,blur:H,createMention:z,insertText:K,attachments:y,attachFiles:W,removeAttachment:R}},React__default.default.createElement(u,{...l,onSubmit:Y,ref:I},React__default.default.createElement("input",{type:"file",multiple:!0,ref:x,onChange:G,onClick:J,tabIndex:-1,style:{display:"none"}}),React__default.default.createElement(Slottable,null,e)))))})),ComposerSubmit=React.forwardRef((({children:e,disabled:t,asChild:n,...r},o)=>{const a=n?Slot:"button",{canSubmit:i,isDisabled:s}=useComposer(),l=s||t||!i;return React__default.default.createElement(a,{type:"submit",...r,ref:o,disabled:l},e)})),ComposerAttachFiles=React.forwardRef((({children:e,onClick:t,disabled:n,asChild:r,...o},a)=>{const i=r?Slot:"button",{hasMaxAttachments:s}=useComposerAttachmentsContext(),{isDisabled:l,attachFiles:c}=useComposer(),u=l||s||n,d=React.useCallback((e=>{t?.(e),e.isDefaultPrevented()||c()}),[c,t]);return React__default.default.createElement(i,{type:"button",...o,onClick:d,ref:a,disabled:u},e)}));function capitalize$1(e){return e.charAt(0).toUpperCase()+e.slice(1)}function memoize(e){const t=new Map;return(...n)=>{const r=JSON.stringify(n.map((e=>stringify(e))));if(t.has(r))return t.get(r);const o=e(...n);return t.set(r,o),o}}React.forwardRef((({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:r,disabled:o,asChild:a,...i},s)=>{const l=a?Slot:"div",{isDisabled:c}=useComposer(),u=c||o,[,d]=useComposerAttachmentsDropArea({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:r,disabled:u});return React__default.default.createElement(l,{...d,"data-disabled":u?"":void 0,...i,ref:s})}));const dateTimeFormat=memoize(((...e)=>new Intl.DateTimeFormat(...e))),relativeTimeFormat=memoize(((...e)=>new Intl.RelativeTimeFormat(...e))),listFormat=memoize(((...e)=>new Intl.ListFormat(...e))),numberFormat=memoize(((...e)=>new Intl.NumberFormat(...e)));function useInterval(e,t){const n=React.useRef(e);React.useEffect((()=>{n.current=e}),[e]),React.useEffect((()=>{if(!t&&0!==t)return;const e=setInterval((()=>{!1===n.current()&&clearInterval(e)}),t);return()=>clearInterval(e)}),[t])}function useRerender(){const[e,t]=React.useReducer((e=>e+1),0);return[t,e]}const DYNAMIC_DATE_THRESHOLD=2592e5,RENDER_INTERVAL=3e4,relativeUnits={seconds:60,minutes:60,hours:24,days:7,weeks:4.34524,months:12};function formatVerboseDate(e,t){return capitalize$1(dateTimeFormat(t,{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric"}).format(e))}function formatShortDate(e,t){return capitalize$1(dateTimeFormat(t,{month:"short",day:"numeric"}).format(e))}const localesWithBrokenNarrowRelativeFormatting=["br","fr","nb","nn","no","ro","sv"];function formatRelativeDate(e,t){let n;if(t)n=t;else{const e=relativeTimeFormat();n=e.resolvedOptions().locale}const r=localesWithBrokenNarrowRelativeFormatting.some((e=>n===e||n.startsWith(`${e}-`))),o=relativeTimeFormat(n,{style:r?"short":"narrow",numeric:"auto"});let a=(e.getTime()-Date.now())/1e3;if(a>-relativeUnits.seconds&&a<relativeUnits.seconds)return o.format(0,"seconds");for(const[e,t]of Object.entries(relativeUnits)){if(Math.abs(a)<t)return o.format(Math.round(a),e);a/=t}return capitalize$1(o.format(Math.round(a),"years"))}function formatDynamicDate(e,t){return e.getTime()>Date.now()-DYNAMIC_DATE_THRESHOLD?formatRelativeDate(e,t):formatShortDate(e,t)}const Timestamp=React.forwardRef((({date:e,locale:t,children:n=formatDynamicDate,title:r=formatVerboseDate,dateTime:o,interval:a=RENDER_INTERVAL,asChild:i,...s},l)=>{const c=i?Slot:"time",[u,d]=useRerender(),f=React.useMemo((()=>new Date(e)),[e]),p=React.useMemo((()=>f.toISOString()),[f]),m=React.useMemo((()=>"function"==typeof r?r(f,t):r),[r,f,d]),h=React.useMemo((()=>"function"==typeof n?n(f,t):n),[n,f,d]);return useInterval(u,a),React__default.default.createElement(c,{...s,ref:l,dateTime:o??p,title:m},h)}));function useCurrentUserIdFromRoom(){return _useSelf((e=>"string"==typeof e.id?e.id:null))}function useCurrentUserIdFromClient_withClient(e){const t=e[kInternal].currentUserIdStore;return shim.exports.useSyncExternalStore(t.subscribe,t.get,t.get)}function useCurrentUserId(){const e=React.useContext(ClientContext);return null!==React.useContext(RoomContext)?useCurrentUserIdFromRoom():null!==e?useCurrentUserIdFromClient_withClient(e):void raise("LiveblocksProvider or RoomProvider are missing from the React tree.")}function download(e,t){const n=document.createElement("a");n.href=e,n.download=t,n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)}let intersectionObserver;const intersectionCallbacks=new WeakMap;function observe(e,t){intersectionObserver||(intersectionObserver=new IntersectionObserver((e=>{for(const t of e){const e=intersectionCallbacks.get(t.target);e?.(t)}}))),intersectionCallbacks.set(e,t),intersectionObserver.observe(e)}function unobserve(e){intersectionCallbacks.delete(e),intersectionObserver?.unobserve(e)}function useVisibleCallback(e,t,n){const r=n?.enabled??!0,o=useLatest(t);React.useEffect((()=>{const t=e.current;if(t)return r?observe(t,(e=>{e.isIntersecting&&o.current()})):unobserve(t),()=>{unobserve(t)}}),[r])}function subscribe$1(e){return window.addEventListener("blur",e),window.addEventListener("focus",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("focus",e)}}function getSnapshot(){return document.hasFocus()}function getServerSnapshot(){return!0}function useWindowFocus(){return shim.exports.useSyncExternalStore(subscribe$1,getSnapshot,getServerSnapshot)}function AttachmentIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"m14.077 11.737-3.723 3.62c-1.55 1.507-4.128 1.507-5.678 0-1.543-1.5-1.543-4.02 0-5.52l5.731-5.573c1.034-1.006 2.754-1.007 3.789-.003 1.03 1 1.032 2.682.003 3.684l-5.744 5.572a1.377 1.377 0 0 1-1.893 0 1.283 1.283 0 0 1-.392-.92c0-.345.14-.676.392-.92L10.348 8"}))}function EmojiIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"M10 17a7 7 0 1 0 0-14 7 7 0 0 0 0 14Z"}),React__default.default.createElement("path",{d:"M7.5 11.5S8.25 13 10 13s2.5-1.5 2.5-1.5M8 8h.007"}),React__default.default.createElement("path",{d:"M12 8h.007"}),React__default.default.createElement("circle",{cx:8,cy:8,r:.25}),React__default.default.createElement("circle",{cx:12,cy:8,r:.25}))}function MentionIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"M10 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"}),React__default.default.createElement("path",{d:"M13 7v3.7c0 1.105.855 2.1 1.9 2.1a2.12 2.12 0 0 0 2.1-2.1V10a7 7 0 1 0-2.8 5.6"}))}function SendIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"m5 16 12-6L5 4l2 6-2 6ZM7 10h10"}))}function useControllableState(e,t,n){const[r,o]=React.useState(n),a=void 0!==e,i=React.useRef(a);React.useEffect((()=>{i.current=a}),[a]);return[a?e:r,React.useCallback((e=>(a||o(e),t?.(e))),[a,t])]}function SpinnerIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"M3 10a7 7 0 0 1 7-7",className:"lb-icon-spinner"}))}function WarningIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"m3.794 13.526 5.326-9.89a1 1 0 0 1 1.76 0l5.326 9.89a1 1 0 0 1-.88 1.474H4.674a1 1 0 0 1-.88-1.474ZM10 7.5v2m0 2.5h.007"}),React__default.default.createElement("circle",{cx:10,cy:12,r:.25}))}const PUBLISH=0,SUBSCRIBE=1,RESET=2,VALUE=4;function compose(e,t){return n=>e(t(n))}function thrush(e,t){return t(e)}function curry2to1(e,t){return n=>e(t,n)}function curry1to0(e,t){return()=>e(t)}function tap(e,t){return t(e),e}function tup(...e){return e}function call(e){e()}function always(e){return()=>e}function joinProc(...e){return()=>{e.map(call)}}function isDefined(e){return void 0!==e}function noop$1(){}function subscribe(e,t){return e(SUBSCRIBE,t)}function publish(e,t){e(PUBLISH,t)}function reset(e){e(RESET)}function getValue(e){return e(VALUE)}function connect(e,t){return subscribe(e,curry2to1(t,PUBLISH))}function handleNext(e,t){const n=e(SUBSCRIBE,(e=>{n(),t(e)}));return n}function stream(){const e=[];return(t,n)=>{switch(t){case RESET:return void e.splice(0,e.length);case SUBSCRIBE:return e.push(n),()=>{const t=e.indexOf(n);t>-1&&e.splice(t,1)};case PUBLISH:return void e.slice().forEach((e=>{e(n)}));default:throw new Error(`unrecognized action ${t}`)}}}function statefulStream(e){let t=e;const n=stream();return(e,r)=>{switch(e){case SUBSCRIBE:r(t);break;case PUBLISH:t=r;break;case VALUE:return t}return n(e,r)}}function eventHandler(e){let t,n;const r=()=>t&&t();return function(o,a){switch(o){case SUBSCRIBE:if(a){if(n===a)return;return r(),n=a,t=subscribe(e,a),t}return r(),noop$1;case RESET:return r(),void(n=null);default:throw new Error(`unrecognized action ${o}`)}}}function streamFromEmitter(e){return tap(stream(),(t=>connect(e,t)))}function statefulStreamFromEmitter(e,t){return tap(statefulStream(t),(t=>connect(e,t)))}function combineOperators(...e){return t=>e.reduceRight(thrush,t)}function pipe(e,...t){const n=combineOperators(...t);return(t,r)=>{switch(t){case SUBSCRIBE:return subscribe(e,n(r));case RESET:return void reset(e)}}}function defaultComparator(e,t){return e===t}function distinctUntilChanged(e=defaultComparator){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function filter(e){return t=>n=>{e(n)&&t(n)}}function map(e){return t=>compose(t,e)}function mapTo(e){return t=>()=>t(e)}function scan(e,t){return n=>r=>n(t=e(t,r))}function skip(e){return t=>n=>{e>0?e--:t(n)}}function throttleTime(e){let t,n=null;return r=>o=>{n=o,t||(t=setTimeout((()=>{t=void 0,r(n)}),e))}}function debounceTime(e){let t,n;return r=>o=>{t=o,n&&clearTimeout(n),n=setTimeout((()=>{r(t)}),e)}}function withLatestFrom(...e){const t=new Array(e.length);let n=0,r=null;const o=Math.pow(2,e.length)-1;return e.forEach(((e,a)=>{const i=Math.pow(2,a);subscribe(e,(e=>{const s=n;n|=i,t[a]=e,s!==o&&n===o&&r&&(r(),r=null)}))})),e=>a=>{const i=()=>e([a].concat(t));n===o?i():r=i}}function merge(...e){return function(t,n){switch(t){case SUBSCRIBE:return joinProc(...e.map((e=>subscribe(e,n))));case RESET:return;default:throw new Error(`unrecognized action ${t}`)}}}function duc(e,t=defaultComparator){return pipe(e,distinctUntilChanged(t))}function combineLatest(...e){const t=stream(),n=new Array(e.length);let r=0;const o=Math.pow(2,e.length)-1;return e.forEach(((e,a)=>{const i=Math.pow(2,a);subscribe(e,(e=>{n[a]=e,r|=i,r===o&&publish(t,n)}))})),function(e,a){switch(e){case SUBSCRIBE:return r===o&&a(n),subscribe(t,a);case RESET:return reset(t);default:throw new Error(`unrecognized action ${e}`)}}}function system(e,t=[],{singleton:n}={singleton:!0}){return{id:id(),constructor:e,dependencies:t,singleton:n}}const id=()=>Symbol();function init(e){const t=new Map,n=({id:e,constructor:r,dependencies:o,singleton:a})=>{if(a&&t.has(e))return t.get(e);const i=r(o.map((e=>n(e))));return a&&t.set(e,i),i};return n(e)}function omit(e,t){const n={},r={};let o=0;const a=e.length;for(;o<a;)r[e[o]]=1,o+=1;for(const e in t)r.hasOwnProperty(e)||(n[e]=t[e]);return n}const useIsomorphicLayoutEffect$1="undefined"!=typeof document?React__default.default.useLayoutEffect:React__default.default.useEffect;function systemToComponent(e,t,n){const r=Object.keys(t.required||{}),o=Object.keys(t.optional||{}),a=Object.keys(t.methods||{}),i=Object.keys(t.events||{}),s=React__default.default.createContext({});function l(e,n){e.propsReady&&publish(e.propsReady,!1);for(const o of r){publish(e[t.required[o]],n[o])}for(const r of o)if(r in n){publish(e[t.optional[r]],n[r])}e.propsReady&&publish(e.propsReady,!0)}function c(e){return i.reduce(((n,r)=>(n[r]=eventHandler(e[t.events[r]]),n)),{})}const u=React__default.default.forwardRef(((u,d)=>{const{children:f,...p}=u,[m]=React__default.default.useState((()=>tap(init(e),(e=>l(e,p))))),[h]=React__default.default.useState(curry1to0(c,m));useIsomorphicLayoutEffect$1((()=>{for(const e of i)e in p&&subscribe(h[e],p[e]);return()=>{Object.values(h).map(reset)}}),[p,h,m]),useIsomorphicLayoutEffect$1((()=>{l(m,p)})),React__default.default.useImperativeHandle(d,always(function(e){return a.reduce(((n,r)=>(n[r]=n=>{publish(e[t.methods[r]],n)},n)),{})}(m)));const _=n;return jsxRuntime.exports.jsx(s.Provider,{value:m,children:n?jsxRuntime.exports.jsx(_,{...omit([...r,...o,...i],p),children:f}):f})})),d=React__default.default.version.startsWith("18")?e=>{const t=React__default.default.useContext(s)[e],n=React__default.default.useCallback((e=>subscribe(t,e)),[t]);return React__default.default.useSyncExternalStore(n,(()=>getValue(t)),(()=>getValue(t)))}:e=>{const t=React__default.default.useContext(s)[e],[n,r]=React__default.default.useState(curry1to0(getValue,t));return useIsomorphicLayoutEffect$1((()=>subscribe(t,(e=>{e!==n&&r(always(e))}))),[t,n]),n};return{Component:u,usePublisher:e=>React__default.default.useCallback(curry2to1(publish,React__default.default.useContext(s)[e]),[e]),useEmitterValue:d,useEmitter:(e,t)=>{const n=React__default.default.useContext(s)[e];useIsomorphicLayoutEffect$1((()=>subscribe(n,t)),[t,n])}}}const useIsomorphicLayoutEffect$2="undefined"!=typeof document?React__default.default.useLayoutEffect:React__default.default.useEffect;var LogLevel=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(LogLevel||{});const CONSOLE_METHOD_MAP={0:"debug",1:"log",2:"warn",3:"error"},getGlobalThis=()=>"undefined"==typeof globalThis?window:globalThis,loggerSystem=system((()=>{const e=statefulStream(3);return{log:statefulStream(((t,n,r=1)=>{var o;r>=(null!=(o=getGlobalThis().VIRTUOSO_LOG_LEVEL)?o:getValue(e))&&console[CONSOLE_METHOD_MAP[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)})),logLevel:e}}),[],{singleton:!0});function useSizeWithElRef(e,t,n){const r=React__default.default.useRef(null);let o=e=>{};if("undefined"!=typeof ResizeObserver){const a=React__default.default.useMemo((()=>new ResizeObserver((t=>{const r=()=>{const n=t[0].target;null!==n.offsetParent&&e(n)};n?r():requestAnimationFrame(r)}))),[e]);o=e=>{e&&t?(a.observe(e),r.current=e):(r.current&&a.unobserve(r.current),r.current=null)}}return{ref:r,callbackRef:o}}function useSize$1(e,t,n){return useSizeWithElRef(e,t,n).callbackRef}function useChangedListContentsSizes(e,t,n,r,o,a,i,s,l){return useSizeWithElRef(React__default.default.useCallback((n=>{const l=getChangedChildSizes(n.children,t,s?"offsetWidth":"offsetHeight",o);let c=n.parentElement;for(;!c.dataset.virtuosoScroller;)c=c.parentElement;const u="window"===c.lastElementChild.dataset.viewportType,d=i?s?i.scrollLeft:i.scrollTop:u?s?window.pageXOffset||document.documentElement.scrollLeft:window.pageYOffset||document.documentElement.scrollTop:s?c.scrollLeft:c.scrollTop,f=i?s?i.scrollWidth:i.scrollHeight:u?s?document.documentElement.scrollWidth:document.documentElement.scrollHeight:s?c.scrollWidth:c.scrollHeight,p=i?s?i.offsetWidth:i.offsetHeight:u?s?window.innerWidth:window.innerHeight:s?c.offsetWidth:c.offsetHeight;r({scrollTop:Math.max(d,0),scrollHeight:f,viewportHeight:p}),null==a||a(s?resolveGapValue$1("column-gap",getComputedStyle(n).columnGap,o):resolveGapValue$1("row-gap",getComputedStyle(n).rowGap,o)),null!==l&&e(l)}),[e,t,o,a,i,r]),n,l)}function getChangedChildSizes(e,t,n,r){const o=e.length;if(0===o)return null;const a=[];for(let i=0;i<o;i++){const o=e.item(i);if(!o||void 0===o.dataset.index)continue;const s=parseInt(o.dataset.index),l=parseFloat(o.dataset.knownSize),c=t(o,n);if(0===c&&r("Zero-sized element, this should not happen",{child:o},LogLevel.ERROR),c===l)continue;const u=a[a.length-1];0===a.length||u.size!==c||u.endIndex!==s-1?a.push({startIndex:s,endIndex:s,size:c}):a[a.length-1].endIndex++}return a}function resolveGapValue$1(e,t,n){return"normal"===t||(null==t?void 0:t.endsWith("px"))||n(`${e} was not resolved to pixel value correctly`,t,LogLevel.WARN),"normal"===t?0:parseInt(null!=t?t:"0",10)}function correctItemSize(e,t){return Math.round(e.getBoundingClientRect()[t])}function approximatelyEqual(e,t){return Math.abs(e-t)<1.01}function useScrollTop(e,t,n,r=noop$1,o,a){const i=React__default.default.useRef(null),s=React__default.default.useRef(null),l=React__default.default.useRef(null),c=React__default.default.useCallback((n=>{const r=n.target,o=r===window||r===document,i=a?o?window.pageXOffset||document.documentElement.scrollLeft:r.scrollLeft:o?window.pageYOffset||document.documentElement.scrollTop:r.scrollTop,c=a?o?document.documentElement.scrollWidth:r.scrollWidth:o?document.documentElement.scrollHeight:r.scrollHeight,u=a?o?window.innerWidth:r.offsetWidth:o?window.innerHeight:r.offsetHeight,d=()=>{e({scrollTop:Math.max(i,0),scrollHeight:c,viewportHeight:u})};n.suppressFlushSync?d():ReactDOM__default.default.flushSync(d),null!==s.current&&(i===s.current||i<=0||i===c-u)&&(s.current=null,t(!0),l.current&&(clearTimeout(l.current),l.current=null))}),[e,t]);return React__default.default.useEffect((()=>{const e=o||i.current;return r(o||i.current),c({target:e,suppressFlushSync:!0}),e.addEventListener("scroll",c,{passive:!0}),()=>{r(null),e.removeEventListener("scroll",c)}}),[i,c,n,r,o]),{scrollerRef:i,scrollByCallback:function(e){a&&(e={left:e.top,behavior:e.behavior}),i.current.scrollBy(e)},scrollToCallback:function(n){const r=i.current;if(!r||(a?"offsetWidth"in r&&0===r.offsetWidth:"offsetHeight"in r&&0===r.offsetHeight))return;const o="smooth"===n.behavior;let c,u,d;r===window?(u=Math.max(correctItemSize(document.documentElement,a?"width":"height"),a?document.documentElement.scrollWidth:document.documentElement.scrollHeight),c=a?window.innerWidth:window.innerHeight,d=a?document.documentElement.scrollLeft:document.documentElement.scrollTop):(u=r[a?"scrollWidth":"scrollHeight"],c=correctItemSize(r,a?"width":"height"),d=r[a?"scrollLeft":"scrollTop"]);const f=u-c;if(n.top=Math.ceil(Math.max(Math.min(f,n.top),0)),approximatelyEqual(c,u)||n.top===d)return e({scrollTop:d,scrollHeight:u,viewportHeight:c}),void(o&&t(!0));o?(s.current=n.top,l.current&&clearTimeout(l.current),l.current=setTimeout((()=>{l.current=null,s.current=null,t(!0)}),1e3)):s.current=null,a&&(n={left:n.top,behavior:n.behavior}),r.scrollTo(n)}}}const domIOSystem=system((()=>{const e=stream(),t=stream(),n=statefulStream(0),r=stream(),o=statefulStream(0),a=stream(),i=stream(),s=statefulStream(0),l=statefulStream(0),c=statefulStream(0),u=statefulStream(0),d=stream(),f=stream(),p=statefulStream(!1),m=statefulStream(!1),h=statefulStream(!1);return connect(pipe(e,map((({scrollTop:e})=>e))),t),connect(pipe(e,map((({scrollHeight:e})=>e))),i),connect(t,o),{scrollContainerState:e,scrollTop:t,viewportHeight:a,headerHeight:s,fixedHeaderHeight:l,fixedFooterHeight:c,footerHeight:u,scrollHeight:i,smoothScrollTargetReached:r,horizontalDirection:m,skipAnimationFrameInResizeObserver:h,scrollTo:d,scrollBy:f,statefulScrollTop:o,deviation:n,scrollingInProgress:p}}),[],{singleton:!0}),NIL_NODE={lvl:0};function newAANode(e,t,n,r=NIL_NODE,o=NIL_NODE){return{k:e,v:t,lvl:n,l:r,r:o}}function empty(e){return e===NIL_NODE}function newTree(){return NIL_NODE}function remove(e,t){if(empty(e))return NIL_NODE;const{k:n,l:r,r:o}=e;if(t===n){if(empty(r))return o;if(empty(o))return r;{const[t,n]=last(r);return adjust(clone(e,{k:t,v:n,l:deleteLast(r)}))}}return adjust(clone(e,t<n?{l:remove(r,t)}:{r:remove(o,t)}))}function find(e,t){if(!empty(e))return t===e.k?e.v:t<e.k?find(e.l,t):find(e.r,t)}function findMaxKeyValue(e,t,n="k"){if(empty(e))return[-1/0,void 0];if(Number(e[n])===t)return[e.k,e.v];if(Number(e[n])<t){const r=findMaxKeyValue(e.r,t,n);return r[0]===-1/0?[e.k,e.v]:r}return findMaxKeyValue(e.l,t,n)}function insert(e,t,n){return empty(e)?newAANode(t,n,1):t===e.k?clone(e,{k:t,v:n}):t<e.k?rebalance(clone(e,{l:insert(e.l,t,n)})):rebalance(clone(e,{r:insert(e.r,t,n)}))}function walkWithin(e,t,n){if(empty(e))return[];const{k:r,v:o,l:a,r:i}=e;let s=[];return r>t&&(s=s.concat(walkWithin(a,t,n))),r>=t&&r<=n&&s.push({k:r,v:o}),r<=n&&(s=s.concat(walkWithin(i,t,n))),s}function walk(e){return empty(e)?[]:[...walk(e.l),{k:e.k,v:e.v},...walk(e.r)]}function last(e){return empty(e.r)?[e.k,e.v]:last(e.r)}function deleteLast(e){return empty(e.r)?e.l:adjust(clone(e,{r:deleteLast(e.r)}))}function clone(e,t){return newAANode(void 0!==t.k?t.k:e.k,void 0!==t.v?t.v:e.v,void 0!==t.lvl?t.lvl:e.lvl,void 0!==t.l?t.l:e.l,void 0!==t.r?t.r:e.r)}function isSingle(e){return empty(e)||e.lvl>e.r.lvl}function rebalance(e){return split(skew(e))}function adjust(e){const{l:t,r:n,lvl:r}=e;if(n.lvl>=r-1&&t.lvl>=r-1)return e;if(r>n.lvl+1){if(isSingle(t))return skew(clone(e,{lvl:r-1}));if(empty(t)||empty(t.r))throw new Error("Unexpected empty nodes");return clone(t.r,{l:clone(t,{r:t.r.l}),r:clone(e,{l:t.r.r,lvl:r-1}),lvl:r})}if(isSingle(e))return split(clone(e,{lvl:r-1}));if(empty(n)||empty(n.l))throw new Error("Unexpected empty nodes");{const t=n.l,o=isSingle(t)?n.lvl-1:n.lvl;return clone(t,{l:clone(e,{r:t.l,lvl:r-1}),r:split(clone(n,{l:t.r,lvl:o})),lvl:t.lvl+1})}}function rangesWithin(e,t,n){if(empty(e))return[];return toRanges(walkWithin(e,findMaxKeyValue(e,t)[0],n))}function arrayToRanges(e,t){const n=e.length;if(0===n)return[];let{index:r,value:o}=t(e[0]);const a=[];for(let i=1;i<n;i++){const{index:n,value:s}=t(e[i]);a.push({start:r,end:n-1,value:o}),r=n,o=s}return a.push({start:r,end:1/0,value:o}),a}function toRanges(e){return arrayToRanges(e,(({k:e,v:t})=>({index:e,value:t})))}function split(e){const{r:t,lvl:n}=e;return empty(t)||empty(t.r)||t.lvl!==n||t.r.lvl!==n?e:clone(t,{l:clone(e,{r:t.l}),lvl:n+1})}function skew(e){const{l:t}=e;return empty(t)||t.lvl!==e.lvl?e:clone(t,{r:clone(e,{l:t.r})})}function findIndexOfClosestSmallerOrEqual(e,t,n,r=0){let o=e.length-1;for(;r<=o;){const a=Math.floor((r+o)/2),i=n(e[a],t);if(0===i)return a;if(-1===i){if(o-r<2)return a-1;o=a-1}else{if(o===r)return a;r=a+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function findClosestSmallerOrEqual(e,t,n){return e[findIndexOfClosestSmallerOrEqual(e,t,n)]}function findRange(e,t,n,r){const o=findIndexOfClosestSmallerOrEqual(e,t,r),a=findIndexOfClosestSmallerOrEqual(e,n,r,o);return e.slice(o,a+1)}const recalcSystem=system((()=>({recalcInProgress:statefulStream(!1)})),[],{singleton:!0});function rangeIncludes(e){const{size:t,startIndex:n,endIndex:r}=e;return e=>e.start===n&&(e.end===r||e.end===1/0)&&e.value===t}function affectedGroupCount(e,t){let n=0,r=0;for(;n<e;)n+=t[r+1]-t[r]-1,r++;return r-(n===e?0:1)}function insertRanges(e,t){let n=empty(e)?0:1/0;for(const r of t){const{size:t,startIndex:o,endIndex:a}=r;if(n=Math.min(n,o),empty(e)){e=insert(e,0,t);continue}const i=rangesWithin(e,o-1,a+1);if(i.some(rangeIncludes(r)))continue;let s=!1,l=!1;for(const{start:n,end:r,value:o}of i)s?(a>=n||t===o)&&(e=remove(e,n)):(l=o!==t,s=!0),r>a&&a>=n&&o!==t&&(e=insert(e,a+1,o));l&&(e=insert(e,o,t))}return[e,n]}function initialSizeState(){return{offsetTree:[],sizeTree:newTree(),groupOffsetTree:newTree(),lastIndex:0,lastOffset:0,lastSize:0,groupIndices:[]}}function indexComparator({index:e},t){return t===e?0:t<e?-1:1}function offsetComparator({offset:e},t){return t===e?0:t<e?-1:1}function offsetPointParser(e){return{index:e.index,value:e}}function rangesWithinOffsets(e,t,n,r=0){return r>0&&(t=Math.max(t,findClosestSmallerOrEqual(e,r,indexComparator).offset)),arrayToRanges(findRange(e,t,n,offsetComparator),offsetPointParser)}function createOffsetTree(e,t,n,r){let o=e,a=0,i=0,s=0,l=0;if(0!==t){l=findIndexOfClosestSmallerOrEqual(o,t-1,indexComparator);s=o[l].offset;const e=findMaxKeyValue(n,t-1);a=e[0],i=e[1],o.length&&o[l].size===findMaxKeyValue(n,t)[1]&&(l-=1),o=o.slice(0,l+1)}else o=[];for(const{start:e,value:l}of rangesWithin(n,t,1/0)){const t=e-a,n=t*i+s+t*r;o.push({offset:n,size:l,index:e}),a=e,s=n,i=l}return{offsetTree:o,lastIndex:a,lastOffset:s,lastSize:i}}function sizeStateReducer(e,[t,n,r,o]){t.length>0&&r("received item sizes",t,LogLevel.DEBUG);const a=e.sizeTree;let i=a,s=0;if(n.length>0&&empty(a)&&2===t.length){const e=t[0].size,r=t[1].size;i=n.reduce(((t,n)=>insert(insert(t,n,e),n+1,r)),i)}else[i,s]=insertRanges(i,t);if(i===a)return e;const{offsetTree:l,lastIndex:c,lastSize:u,lastOffset:d}=createOffsetTree(e.offsetTree,s,i,o);return{sizeTree:i,offsetTree:l,lastIndex:c,lastOffset:d,lastSize:u,groupOffsetTree:n.reduce(((e,t)=>insert(e,t,offsetOf(t,l,o))),newTree()),groupIndices:n}}function offsetOf(e,t,n){if(0===t.length)return 0;const{offset:r,index:o,size:a}=findClosestSmallerOrEqual(t,e,indexComparator),i=e-o,s=a*i+(i-1)*n+r;return s>0?s+n:s}function isGroupLocation(e){return void 0!==e.groupIndex}function originalIndexFromLocation(e,t,n){if(isGroupLocation(e))return t.groupIndices[e.groupIndex]+1;{let r=originalIndexFromItemIndex("LAST"===e.index?n:e.index,t);return r=Math.max(0,r,Math.min(n,r)),r}}function originalIndexFromItemIndex(e,t){if(!hasGroups(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function hasGroups(e){return!empty(e.groupOffsetTree)}function sizeTreeToRanges(e){return walk(e).map((({k:e,v:t},n,r)=>{const o=r[n+1];return{startIndex:e,endIndex:o?o.k-1:1/0,size:t}}))}const SIZE_MAP={offsetHeight:"height",offsetWidth:"width"},sizeSystem=system((([{log:e},{recalcInProgress:t}])=>{const n=stream(),r=stream(),o=statefulStreamFromEmitter(r,0),a=stream(),i=stream(),s=statefulStream(0),l=statefulStream([]),c=statefulStream(void 0),u=statefulStream(void 0),d=statefulStream(((e,t)=>correctItemSize(e,SIZE_MAP[t]))),f=statefulStream(void 0),p=statefulStream(0),m=initialSizeState(),h=statefulStreamFromEmitter(pipe(n,withLatestFrom(l,e,p),scan(sizeStateReducer,m),distinctUntilChanged()),m),_=statefulStreamFromEmitter(pipe(l,distinctUntilChanged(),scan(((e,t)=>({prev:e.current,current:t})),{prev:[],current:[]}),map((({prev:e})=>e))),[]);connect(pipe(l,filter((e=>e.length>0)),withLatestFrom(h,p),map((([e,t,n])=>{const r=e.reduce(((e,r,o)=>insert(e,r,offsetOf(r,t.offsetTree,n)||o)),newTree());return{...t,groupIndices:e,groupOffsetTree:r}}))),h),connect(pipe(r,withLatestFrom(h),filter((([e,{lastIndex:t}])=>e<t)),map((([e,{lastIndex:t,lastSize:n}])=>[{startIndex:e,endIndex:t,size:n}]))),n),connect(c,u);const g=statefulStreamFromEmitter(pipe(c,map((e=>void 0===e))),!0);connect(pipe(u,filter((e=>void 0!==e&&empty(getValue(h).sizeTree))),map((e=>[{startIndex:0,endIndex:0,size:e}]))),n);const v=streamFromEmitter(pipe(n,withLatestFrom(h),scan((({sizes:e},[t,n])=>({changed:n!==e,sizes:n})),{changed:!1,sizes:m}),map((e=>e.changed))));subscribe(pipe(s,scan(((e,t)=>({diff:e.prev-t,prev:t})),{diff:0,prev:0}),map((e=>e.diff))),(e=>{const{groupIndices:n}=getValue(h);if(e>0)publish(t,!0),publish(a,e+affectedGroupCount(e,n));else if(e<0){const t=getValue(_);t.length>0&&(e-=affectedGroupCount(-e,t)),publish(i,e)}})),subscribe(pipe(s,withLatestFrom(e)),(([e,t])=>{e<0&&t("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},LogLevel.ERROR)}));const E=streamFromEmitter(a);connect(pipe(a,withLatestFrom(h),map((([e,t])=>{const n=t.groupIndices.length>0,r=[],o=t.lastSize;if(n){const n=find(t.sizeTree,0);let a=0,i=0;for(;a<e;){const e=t.groupIndices[i],s=t.groupIndices.length===i+1?1/0:t.groupIndices[i+1]-e-1;r.push({startIndex:e,endIndex:e,size:n}),r.push({startIndex:e+1,endIndex:e+1+s-1,size:o}),i++,a+=s+1}const s=walk(t.sizeTree);return a!==e&&s.shift(),s.reduce(((t,{k:n,v:r})=>{let o=t.ranges;return 0!==t.prevSize&&(o=[...t.ranges,{startIndex:t.prevIndex,endIndex:n+e-1,size:t.prevSize}]),{ranges:o,prevIndex:n+e,prevSize:r}}),{ranges:r,prevIndex:e,prevSize:0}).ranges}return walk(t.sizeTree).reduce(((t,{k:n,v:r})=>({ranges:[...t.ranges,{startIndex:t.prevIndex,endIndex:n+e-1,size:t.prevSize}],prevIndex:n+e,prevSize:r})),{ranges:[],prevIndex:0,prevSize:o}).ranges}))),n);const y=streamFromEmitter(pipe(i,withLatestFrom(h,p),map((([e,{offsetTree:t},n])=>offsetOf(-e,t,n)))));return connect(pipe(i,withLatestFrom(h,p),map((([e,t,n])=>{if(t.groupIndices.length>0){if(empty(t.sizeTree))return t;let r=newTree();const o=getValue(_);let a=0,i=0,s=0;for(;a<-e;){s=o[i];const e=o[i+1]-s-1;i++,a+=e+1}r=walk(t.sizeTree).reduce(((t,{k:n,v:r})=>insert(t,Math.max(0,n+e),r)),r);if(a!==-e){r=insert(r,0,find(t.sizeTree,s));r=insert(r,1,findMaxKeyValue(t.sizeTree,1-e)[1])}return{...t,sizeTree:r,...createOffsetTree(t.offsetTree,0,r,n)}}{const r=walk(t.sizeTree).reduce(((t,{k:n,v:r})=>insert(t,Math.max(0,n+e),r)),newTree());return{...t,sizeTree:r,...createOffsetTree(t.offsetTree,0,r,n)}}}))),h),{data:f,totalCount:r,sizeRanges:n,groupIndices:l,defaultItemSize:u,fixedItemSize:c,unshiftWith:a,shiftWith:i,shiftWithOffset:y,beforeUnshiftWith:E,firstItemIndex:s,gap:p,sizes:h,listRefresh:v,statefulTotalCount:o,trackItemSizes:g,itemSize:d}}),tup(loggerSystem,recalcSystem),{singleton:!0}),SUPPORTS_SCROLL_TO_OPTIONS="undefined"!=typeof document&&"scrollBehavior"in document.documentElement.style;function normalizeIndexLocation(e){const t="number"==typeof e?{index:e}:e;return t.align||(t.align="start"),t.behavior&&SUPPORTS_SCROLL_TO_OPTIONS||(t.behavior="auto"),t.offset||(t.offset=0),t}const scrollToIndexSystem=system((([{sizes:e,totalCount:t,listRefresh:n,gap:r},{scrollingInProgress:o,viewportHeight:a,scrollTo:i,smoothScrollTargetReached:s,headerHeight:l,footerHeight:c,fixedHeaderHeight:u,fixedFooterHeight:d},{log:f}])=>{const p=stream(),m=stream(),h=statefulStream(0);let _=null,g=null,v=null;function E(){_&&(_(),_=null),v&&(v(),v=null),g&&(clearTimeout(g),g=null),publish(o,!1)}return connect(pipe(p,withLatestFrom(e,a,t,h,l,c,f),withLatestFrom(r,u,d),map((([[e,t,r,a,i,l,c,u],d,f,h])=>{const y=normalizeIndexLocation(e),{align:b,behavior:C,offset:R}=y,w=a-1,S=originalIndexFromLocation(y,t,w);let D=offsetOf(S,t.offsetTree,d)+l;"end"===b?(D+=f+findMaxKeyValue(t.sizeTree,S)[1]-r+h,S===w&&(D+=c)):"center"===b?D+=(f+findMaxKeyValue(t.sizeTree,S)[1]-r+h)/2:D-=i,R&&(D+=R);const T=t=>{E(),t?(u("retrying to scroll to",{location:e},LogLevel.DEBUG),publish(p,e)):(publish(m,!0),u("list did not change, scroll successful",{},LogLevel.DEBUG))};if(E(),"smooth"===C){let e=!1;v=subscribe(n,(t=>{e=e||t})),_=handleNext(s,(()=>{T(e)}))}else _=handleNext(pipe(n,watchChangesFor(150)),T);return g=setTimeout((()=>{E()}),1200),publish(o,!0),u("scrolling from index to",{index:S,top:D,behavior:C},LogLevel.DEBUG),{top:D,behavior:C}}))),i),{scrollToIndex:p,scrollTargetReached:m,topListHeight:h}}),tup(sizeSystem,domIOSystem,loggerSystem),{singleton:!0});function watchChangesFor(e){return t=>{const n=setTimeout((()=>{t(!1)}),e);return e=>{e&&(t(!0),clearTimeout(n))}}}const UP="up",DOWN="down",NONE$1="none",INITIAL_BOTTOM_STATE={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollTop:0,viewportHeight:0,scrollHeight:0}},DEFAULT_AT_TOP_THRESHOLD=0,stateFlagsSystem=system((([{scrollContainerState:e,scrollTop:t,viewportHeight:n,headerHeight:r,footerHeight:o,scrollBy:a}])=>{const i=statefulStream(!1),s=statefulStream(!0),l=stream(),c=stream(),u=statefulStream(4),d=statefulStream(DEFAULT_AT_TOP_THRESHOLD),f=statefulStreamFromEmitter(pipe(merge(pipe(duc(t),skip(1),mapTo(!0)),pipe(duc(t),skip(1),mapTo(!1),debounceTime(100))),distinctUntilChanged()),!1),p=statefulStreamFromEmitter(pipe(merge(pipe(a,mapTo(!0)),pipe(a,mapTo(!1),debounceTime(200))),distinctUntilChanged()),!1);connect(pipe(combineLatest(duc(t),duc(d)),map((([e,t])=>e<=t)),distinctUntilChanged()),s),connect(pipe(s,throttleTime(50)),c);const m=streamFromEmitter(pipe(combineLatest(e,duc(n),duc(r),duc(o),duc(u)),scan(((e,[{scrollTop:t,scrollHeight:n},r,o,a,i])=>{const s={viewportHeight:r,scrollTop:t,scrollHeight:n};if(t+r-n>-i){let n,r;return t>e.state.scrollTop?(n="SCROLLED_DOWN",r=e.state.scrollTop-t):(n="SIZE_DECREASED",r=e.state.scrollTop-t||e.scrollTopDelta),{atBottom:!0,state:s,atBottomBecause:n,scrollTopDelta:r}}let l;return l=s.scrollHeight>e.state.scrollHeight?"SIZE_INCREASED":r<e.state.viewportHeight?"VIEWPORT_HEIGHT_DECREASING":t<e.state.scrollTop?"SCROLLING_UPWARDS":"NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:l,state:s}}),INITIAL_BOTTOM_STATE),distinctUntilChanged(((e,t)=>e&&e.atBottom===t.atBottom)))),h=statefulStreamFromEmitter(pipe(e,scan(((e,{scrollTop:t,scrollHeight:n,viewportHeight:r})=>{if(approximatelyEqual(e.scrollHeight,n))return{scrollTop:t,scrollHeight:n,jump:0,changed:!1};{const o=n-(t+r)<1;return e.scrollTop!==t&&o?{scrollHeight:n,scrollTop:t,jump:e.scrollTop-t,changed:!0}:{scrollHeight:n,scrollTop:t,jump:0,changed:!0}}}),{scrollHeight:0,jump:0,scrollTop:0,changed:!1}),filter((e=>e.changed)),map((e=>e.jump))),0);connect(pipe(m,map((e=>e.atBottom))),i),connect(pipe(i,throttleTime(50)),l);const _=statefulStream(DOWN);connect(pipe(e,map((({scrollTop:e})=>e)),distinctUntilChanged(),scan(((e,t)=>getValue(p)?{direction:e.direction,prevScrollTop:t}:{direction:t<e.prevScrollTop?UP:DOWN,prevScrollTop:t}),{direction:DOWN,prevScrollTop:0}),map((e=>e.direction))),_),connect(pipe(e,throttleTime(50),mapTo(NONE$1)),_);const g=statefulStream(0);return connect(pipe(f,filter((e=>!e)),mapTo(0)),g),connect(pipe(t,throttleTime(100),withLatestFrom(f),filter((([e,t])=>!!t)),scan((([e,t],[n])=>[t,n]),[0,0]),map((([e,t])=>t-e))),g),{isScrolling:f,isAtTop:s,isAtBottom:i,atBottomState:m,atTopStateChange:c,atBottomStateChange:l,scrollDirection:_,atBottomThreshold:u,atTopThreshold:d,scrollVelocity:g,lastJumpDueToItemResize:h}}),tup(domIOSystem)),propsReadySystem=system((([{log:e}])=>{const t=statefulStream(!1),n=streamFromEmitter(pipe(t,filter((e=>e)),distinctUntilChanged()));return subscribe(t,(t=>{t&&getValue(e)("props updated",{},LogLevel.DEBUG)})),{propsReady:t,didMount:n}}),tup(loggerSystem),{singleton:!0});function skipFrames(e,t){0==e?t():requestAnimationFrame((()=>skipFrames(e-1,t)))}function getInitialTopMostItemIndexNumber(e,t){const n=t-1;return"number"==typeof e?e:"LAST"===e.index?n:e.index}const initialTopMostItemIndexSystem=system((([{sizes:e,listRefresh:t,defaultItemSize:n},{scrollTop:r},{scrollToIndex:o,scrollTargetReached:a},{didMount:i}])=>{const s=statefulStream(!0),l=statefulStream(0),c=statefulStream(!0);return connect(pipe(i,withLatestFrom(l),filter((([e,t])=>!!t)),mapTo(!1)),s),connect(pipe(i,withLatestFrom(l),filter((([e,t])=>!!t)),mapTo(!1)),c),subscribe(pipe(combineLatest(t,i),withLatestFrom(s,e,n,c),filter((([[,e],t,{sizeTree:n},r,o])=>e&&(!empty(n)||isDefined(r))&&!t&&!o)),withLatestFrom(l)),(([,e])=>{handleNext(a,(()=>{publish(c,!0)})),skipFrames(4,(()=>{handleNext(r,(()=>{publish(s,!0)})),publish(o,e)}))})),{scrolledToInitialItem:s,initialTopMostItemIndex:l,initialItemFinalLocationReached:c}}),tup(sizeSystem,domIOSystem,scrollToIndexSystem,propsReadySystem),{singleton:!0});function normalizeFollowOutput(e){return!!e&&("smooth"===e?"smooth":"auto")}const behaviorFromFollowOutput=(e,t)=>"function"==typeof e?normalizeFollowOutput(e(t)):t&&normalizeFollowOutput(e),followOutputSystem=system((([{totalCount:e,listRefresh:t},{isAtBottom:n,atBottomState:r},{scrollToIndex:o},{scrolledToInitialItem:a},{propsReady:i,didMount:s},{log:l},{scrollingInProgress:c}])=>{const u=statefulStream(!1),d=stream();let f=null;function p(e){publish(o,{index:"LAST",align:"end",behavior:e})}function m(e){const t=handleNext(r,(t=>{!e||t.atBottom||"SIZE_INCREASED"!==t.notAtBottomBecause||f||(getValue(l)("scrolling to bottom due to increased size",{},LogLevel.DEBUG),p("auto"))}));setTimeout(t,100)}return subscribe(pipe(combineLatest(pipe(duc(e),skip(1)),s),withLatestFrom(duc(u),n,a,c),map((([[e,t],n,r,o,a])=>{let i=t&&o,s="auto";return i&&(s=behaviorFromFollowOutput(n,r||a),i=i&&!!s),{totalCount:e,shouldFollow:i,followOutputBehavior:s}})),filter((({shouldFollow:e})=>e))),(({totalCount:e,followOutputBehavior:n})=>{f&&(f(),f=null),f=handleNext(t,(()=>{getValue(l)("following output to ",{totalCount:e},LogLevel.DEBUG),p(n),f=null}))})),subscribe(pipe(combineLatest(duc(u),e,i),filter((([e,,t])=>e&&t)),scan((({value:e},[,t])=>({refreshed:e===t,value:t})),{refreshed:!1,value:0}),filter((({refreshed:e})=>e)),withLatestFrom(u,e)),(([,e])=>{getValue(a)&&m(!1!==e)})),subscribe(d,(()=>{m(!1!==getValue(u))})),subscribe(combineLatest(duc(u),r),(([e,t])=>{e&&!t.atBottom&&"VIEWPORT_HEIGHT_DECREASING"===t.notAtBottomBecause&&p("auto")})),{followOutput:u,autoscrollToBottom:d}}),tup(sizeSystem,stateFlagsSystem,scrollToIndexSystem,initialTopMostItemIndexSystem,propsReadySystem,loggerSystem,domIOSystem));function groupCountsToIndicesAndCount(e){return e.reduce(((e,t)=>(e.groupIndices.push(e.totalCount),e.totalCount+=t+1,e)),{totalCount:0,groupIndices:[]})}const groupedListSystem=system((([{totalCount:e,groupIndices:t,sizes:n},{scrollTop:r,headerHeight:o}])=>{const a=stream(),i=stream(),s=streamFromEmitter(pipe(a,map(groupCountsToIndicesAndCount)));return connect(pipe(s,map((e=>e.totalCount))),e),connect(pipe(s,map((e=>e.groupIndices))),t),connect(pipe(combineLatest(r,n,o),filter((([e,t])=>hasGroups(t))),map((([e,t,n])=>findMaxKeyValue(t.groupOffsetTree,Math.max(e-n,0),"v")[0])),distinctUntilChanged(),map((e=>[e]))),i),{groupCounts:a,topItemsIndexes:i}}),tup(sizeSystem,domIOSystem));function tupleComparator(e,t){return!(!e||e[0]!==t[0]||e[1]!==t[1])}function rangeComparator(e,t){return!(!e||e.startIndex!==t.startIndex||e.endIndex!==t.endIndex)}const TOP="top",BOTTOM="bottom",NONE="none";function getOverscan(e,t,n){return"number"==typeof e?n===UP&&t===TOP||n===DOWN&&t===BOTTOM?e:0:n===UP?t===TOP?e.main:e.reverse:t===BOTTOM?e.main:e.reverse}function getViewportIncrease(e,t){return"number"==typeof e?e:e[t]||0}const sizeRangeSystem=system((([{scrollTop:e,viewportHeight:t,deviation:n,headerHeight:r,fixedHeaderHeight:o}])=>{const a=stream(),i=statefulStream(0),s=statefulStream(0),l=statefulStream(0),c=statefulStreamFromEmitter(pipe(combineLatest(duc(e),duc(t),duc(r),duc(a,tupleComparator),duc(l),duc(i),duc(o),duc(n),duc(s)),map((([e,t,n,[r,o],a,i,s,l,c])=>{const u=e-l,d=i+s,f=Math.max(n-u,0);let p=NONE;const m=getViewportIncrease(c,TOP),h=getViewportIncrease(c,BOTTOM);return r-=l,o+=n+s,(r+=n+s)>e+d-m&&(p=UP),(o-=l)<e-f+t+h&&(p=DOWN),p!==NONE?[Math.max(u-n-getOverscan(a,TOP,p)-m,0),u-f-s+t+getOverscan(a,BOTTOM,p)+h]:null})),filter((e=>null!=e)),distinctUntilChanged(tupleComparator)),[0,0]);return{listBoundary:a,overscan:l,topListHeight:i,increaseViewportBy:s,visibleRange:c}}),tup(domIOSystem),{singleton:!0});function probeItemSet(e,t,n){if(hasGroups(t)){const r=originalIndexFromItemIndex(e,t);return[{index:findMaxKeyValue(t.groupOffsetTree,r)[0],size:0,offset:0},{index:r,size:0,offset:0,data:n&&n[0]}]}return[{index:e,size:0,offset:0,data:n&&n[0]}]}const EMPTY_LIST_STATE={items:[],topItems:[],offsetTop:0,offsetBottom:0,top:0,bottom:0,topListHeight:0,totalCount:0,firstItemIndex:0};function transposeItems(e,t,n){if(0===e.length)return[];if(!hasGroups(t))return e.map((e=>({...e,index:e.index+n,originalIndex:e.index})));const r=e[0].index,o=e[e.length-1].index,a=[],i=rangesWithin(t.groupOffsetTree,r,o);let s,l=0;for(const r of e){let e;(!s||s.end<r.index)&&(s=i.shift(),l=t.groupIndices.indexOf(s.start)),e=r.index===s.start?{type:"group",index:l}:{index:r.index-(l+1)+n,groupIndex:l},a.push({...e,size:r.size,offset:r.offset,originalIndex:r.index,data:r.data})}return a}function buildListState(e,t,n,r,o,a){const{lastSize:i,lastOffset:s,lastIndex:l}=o;let c=0,u=0;if(e.length>0){c=e[0].offset;const t=e[e.length-1];u=t.offset+t.size}const d=n-l,f=c,p=s+d*i+(d-1)*r-u;return{items:transposeItems(e,o,a),topItems:transposeItems(t,o,a),topListHeight:t.reduce(((e,t)=>t.size+e),0),offsetTop:c,offsetBottom:p,top:f,bottom:u,totalCount:n,firstItemIndex:a}}function buildListStateFromItemCount(e,t,n,r,o,a){let i=0;if(n.groupIndices.length>0)for(const t of n.groupIndices){if(t-i>=e)break;i++}const s=e+i,l=getInitialTopMostItemIndexNumber(t,s),c=Array.from({length:s}).map(((e,t)=>({index:t+l,size:0,offset:0,data:a[t+l]})));return buildListState(c,[],s,o,n,r)}const listStateSystem=system((([{sizes:e,totalCount:t,data:n,firstItemIndex:r,gap:o},a,{visibleRange:i,listBoundary:s,topListHeight:l},{scrolledToInitialItem:c,initialTopMostItemIndex:u},{topListHeight:d},f,{didMount:p},{recalcInProgress:m}])=>{const h=statefulStream([]),_=statefulStream(0),g=stream();connect(a.topItemsIndexes,h);const v=statefulStreamFromEmitter(pipe(combineLatest(p,m,duc(i,tupleComparator),duc(t),duc(e),duc(u),c,duc(h),duc(r),duc(o),n),filter((([e,t,,n,,,,,,,r])=>{const o=r&&r.length!==n;return e&&!t&&!o})),map((([,,[e,t],n,r,o,a,i,s,l,c])=>{const u=r,{sizeTree:d,offsetTree:f}=u,p=getValue(_);if(0===n)return{...EMPTY_LIST_STATE,totalCount:n};if(0===e&&0===t)return 0===p?{...EMPTY_LIST_STATE,totalCount:n}:buildListStateFromItemCount(p,o,r,s,l,c||[]);if(empty(d)){if(p>0)return null;return buildListState(probeItemSet(getInitialTopMostItemIndexNumber(o,n),u,c),[],n,l,u,s)}const m=[];if(i.length>0){const e=i[0],t=i[i.length-1];let n=0;for(const r of rangesWithin(d,e,t)){const o=r.value,a=Math.max(r.start,e),i=Math.min(r.end,t);for(let e=a;e<=i;e++)m.push({index:e,size:o,offset:n,data:c&&c[e]}),n+=o}}if(!a)return buildListState([],m,n,l,u,s);const h=i.length>0?i[i.length-1]+1:0,g=rangesWithinOffsets(f,e,t,h);if(0===g.length)return null;const v=n-1,E=tap([],(n=>{for(const r of g){const o=r.value;let a=o.offset,i=r.start;const s=o.size;if(o.offset<e){i+=Math.floor((e-o.offset+l)/(s+l));const t=i-r.start;a+=t*s+t*l}i<h&&(a+=(h-i)*s,i=h);const u=Math.min(r.end,v);for(let e=i;e<=u&&!(a>=t);e++)n.push({index:e,size:s,offset:a,data:c&&c[e]}),a+=s+l}}));return buildListState(E,m,n,l,u,s)})),filter((e=>null!==e)),distinctUntilChanged()),EMPTY_LIST_STATE);connect(pipe(n,filter(isDefined),map((e=>null==e?void 0:e.length))),t),connect(pipe(v,map((e=>e.topListHeight))),d),connect(d,l),connect(pipe(v,map((e=>[e.top,e.bottom]))),s),connect(pipe(v,map((e=>e.items))),g);const E=streamFromEmitter(pipe(v,filter((({items:e})=>e.length>0)),withLatestFrom(t,n),filter((([{items:e},t])=>e[e.length-1].originalIndex===t-1)),map((([,e,t])=>[e-1,t])),distinctUntilChanged(tupleComparator),map((([e])=>e))));return{listState:v,topItemsIndexes:h,endReached:E,startReached:streamFromEmitter(pipe(v,throttleTime(200),filter((({items:e,topItems:t})=>e.length>0&&e[0].originalIndex===t.length)),map((({items:e})=>e[0].index)),distinctUntilChanged())),rangeChanged:streamFromEmitter(pipe(v,filter((({items:e})=>e.length>0)),map((({items:e})=>{let t=0,n=e.length-1;for(;"group"===e[t].type&&t<n;)t++;for(;"group"===e[n].type&&n>t;)n--;return{startIndex:e[t].index,endIndex:e[n].index}})),distinctUntilChanged(rangeComparator))),itemsRendered:g,initialItemCount:_,...f}}),tup(sizeSystem,groupedListSystem,sizeRangeSystem,initialTopMostItemIndexSystem,scrollToIndexSystem,stateFlagsSystem,propsReadySystem,recalcSystem),{singleton:!0}),initialItemCountSystem=system((([{sizes:e,firstItemIndex:t,data:n,gap:r},{initialTopMostItemIndex:o},{initialItemCount:a,listState:i},{didMount:s}])=>(connect(pipe(s,withLatestFrom(a),filter((([,e])=>0!==e)),withLatestFrom(o,e,t,r,n),map((([[,e],t,n,r,o,a=[]])=>buildListStateFromItemCount(e,t,n,r,o,a)))),i),{})),tup(sizeSystem,initialTopMostItemIndexSystem,listStateSystem,propsReadySystem),{singleton:!0}),scrollSeekSystem=system((([{scrollVelocity:e}])=>{const t=statefulStream(!1),n=stream(),r=statefulStream(!1);return connect(pipe(e,withLatestFrom(r,t,n),filter((([e,t])=>!!t)),map((([e,t,n,r])=>{const{exit:o,enter:a}=t;if(n){if(o(e,r))return!1}else if(a(e,r))return!0;return n})),distinctUntilChanged()),t),subscribe(pipe(combineLatest(t,e,n),withLatestFrom(r)),(([[e,t,n],r])=>e&&r&&r.change&&r.change(t,n))),{isSeeking:t,scrollSeekConfiguration:r,scrollVelocity:e,scrollSeekRangeChanged:n}}),tup(stateFlagsSystem),{singleton:!0}),topItemCountSystem=system((([{topItemsIndexes:e}])=>{const t=statefulStream(0);return connect(pipe(t,filter((e=>e>=0)),map((e=>Array.from({length:e}).map(((e,t)=>t))))),e),{topItemCount:t}}),tup(listStateSystem)),totalListHeightSystem=system((([{footerHeight:e,headerHeight:t,fixedHeaderHeight:n,fixedFooterHeight:r},{listState:o}])=>{const a=stream(),i=statefulStreamFromEmitter(pipe(combineLatest(e,r,t,n,o),map((([e,t,n,r,o])=>e+t+n+r+o.offsetBottom+o.bottom))),0);return connect(duc(i),a),{totalListHeight:i,totalListHeightChanged:a}}),tup(domIOSystem,listStateSystem),{singleton:!0});function simpleMemoize(e){let t,n=!1;return()=>(n||(n=!0,t=e()),t)}const isMobileSafari=simpleMemoize((()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent))),upwardScrollFixSystem=system((([{scrollBy:e,scrollTop:t,deviation:n,scrollingInProgress:r},{isScrolling:o,isAtBottom:a,scrollDirection:i,lastJumpDueToItemResize:s},{listState:l},{beforeUnshiftWith:c,shiftWithOffset:u,sizes:d,gap:f},{log:p},{recalcInProgress:m}])=>{const h=streamFromEmitter(pipe(l,withLatestFrom(s),scan((([,e,t,n],[{items:r,totalCount:o,bottom:a,offsetBottom:i},s])=>{const l=a+i;let c=0;if(t===o&&e.length>0&&r.length>0){0===r[0].originalIndex&&0===e[0].originalIndex||(c=l-n,0!==c&&(c+=s))}return[c,r,o,l]}),[0,[],0,0]),filter((([e])=>0!==e)),withLatestFrom(t,i,r,a,p,m),filter((([,e,t,n,,,r])=>!r&&!n&&0!==e&&t===UP)),map((([[e],,,,,t])=>(t("Upward scrolling compensation",{amount:e},LogLevel.DEBUG),e)))));function _(t){t>0?(publish(e,{top:-t,behavior:"auto"}),publish(n,0)):(publish(n,0),publish(e,{top:-t,behavior:"auto"}))}return subscribe(pipe(h,withLatestFrom(n,o)),(([e,t,r])=>{r&&isMobileSafari()?publish(n,t-e):_(-e)})),subscribe(pipe(combineLatest(statefulStreamFromEmitter(o,!1),n,m),filter((([e,t,n])=>!e&&!n&&0!==t)),map((([e,t])=>t)),throttleTime(1)),_),connect(pipe(u,map((e=>({top:-e})))),e),subscribe(pipe(c,withLatestFrom(d,f),map((([e,{lastSize:t,groupIndices:n,sizeTree:r},o])=>{function a(e){return e*(t+o)}if(0===n.length)return a(e);{let t=0;const o=find(r,0);let i=0,s=0;for(;i<e;){i++,t+=o;let r=n.length===s+1?1/0:n[s+1]-n[s]-1;i+r>e&&(t-=o,r=e-i+1),i+=r,t+=a(r),s++}return t}}))),(t=>{publish(n,t),requestAnimationFrame((()=>{publish(e,{top:t}),requestAnimationFrame((()=>{publish(n,0),publish(m,!1)}))}))})),{deviation:n}}),tup(domIOSystem,stateFlagsSystem,listStateSystem,sizeSystem,loggerSystem,recalcSystem)),initialScrollTopSystem=system((([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=statefulStream(0);return subscribe(pipe(e,withLatestFrom(r),filter((([,e])=>0!==e)),map((([,e])=>({top:e})))),(e=>{handleNext(pipe(n,skip(1),filter((e=>e.items.length>1))),(()=>{requestAnimationFrame((()=>{publish(t,e)}))}))})),{initialScrollTop:r}}),tup(propsReadySystem,domIOSystem,listStateSystem),{singleton:!0}),alignToBottomSystem=system((([{viewportHeight:e},{totalListHeight:t}])=>{const n=statefulStream(!1);return{alignToBottom:n,paddingTopAddition:statefulStreamFromEmitter(pipe(combineLatest(n,e,t),filter((([e])=>e)),map((([,e,t])=>Math.max(0,e-t))),throttleTime(0),distinctUntilChanged()),0)}}),tup(domIOSystem,totalListHeightSystem),{singleton:!0}),windowScrollerSystem=system((([{scrollTo:e,scrollContainerState:t}])=>{const n=stream(),r=stream(),o=stream(),a=statefulStream(!1),i=statefulStream(void 0);return connect(pipe(combineLatest(n,r),map((([{viewportHeight:e,scrollTop:t,scrollHeight:n},{offsetTop:r}])=>({scrollTop:Math.max(0,t-r),scrollHeight:n,viewportHeight:e})))),t),connect(pipe(e,withLatestFrom(r),map((([e,{offsetTop:t}])=>({...e,top:e.top+t})))),o),{useWindowScroll:a,customScrollParent:i,windowScrollContainerState:n,windowViewportRect:r,windowScrollTo:o}}),tup(domIOSystem)),defaultCalculateViewLocation=({itemTop:e,itemBottom:t,viewportTop:n,viewportBottom:r,locationParams:{behavior:o,align:a,...i}})=>e<n?{...i,behavior:o,align:null!=a?a:"start"}:t>r?{...i,behavior:o,align:null!=a?a:"end"}:null,scrollIntoViewSystem=system((([{sizes:e,totalCount:t,gap:n},{scrollTop:r,viewportHeight:o,headerHeight:a,fixedHeaderHeight:i,fixedFooterHeight:s,scrollingInProgress:l},{scrollToIndex:c}])=>{const u=stream();return connect(pipe(u,withLatestFrom(e,o,t,a,i,s,r),withLatestFrom(n),map((([[e,t,n,r,o,a,i,s],c])=>{const{done:u,behavior:d,align:f,calculateViewLocation:p=defaultCalculateViewLocation,...m}=e,h=originalIndexFromLocation(e,t,r-1),_=offsetOf(h,t.offsetTree,c)+o+a,g=p({itemTop:_,itemBottom:_+findMaxKeyValue(t.sizeTree,h)[1],viewportTop:s+a,viewportBottom:s+n-i,locationParams:{behavior:d,align:f,...m}});return g?u&&handleNext(pipe(l,filter((e=>!1===e)),skip(getValue(l)?1:2)),u):u&&u(),g})),filter((e=>null!==e))),c),{scrollIntoView:u}}),tup(sizeSystem,domIOSystem,scrollToIndexSystem,listStateSystem,loggerSystem),{singleton:!0}),stateLoadSystem=system((([{sizes:e,sizeRanges:t},{scrollTop:n,headerHeight:r},{initialTopMostItemIndex:o},{didMount:a},{useWindowScroll:i,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=stream(),u=statefulStream(void 0),d=statefulStream(null),f=statefulStream(null);return connect(s,d),connect(l,f),subscribe(pipe(c,withLatestFrom(e,n,i,d,f,r)),(([e,t,n,r,o,a,i])=>{const s=sizeTreeToRanges(t.sizeTree);r&&null!==o&&null!==a&&(n=o.scrollTop-a.offsetTop),e({ranges:s,scrollTop:n-=i})})),connect(pipe(u,filter(isDefined),map(locationFromSnapshot)),o),connect(pipe(a,withLatestFrom(u),filter((([,e])=>void 0!==e)),distinctUntilChanged(),map((([,e])=>e.ranges))),t),{getState:c,restoreStateFrom:u}}),tup(sizeSystem,domIOSystem,initialTopMostItemIndexSystem,propsReadySystem,windowScrollerSystem));function locationFromSnapshot(e){return{offset:e.scrollTop,index:0,align:"start"}}const featureGroup1System=system((([e,t,n,r,o,a,i,s,l,c])=>({...e,...t,...n,...r,...o,...a,...i,...s,...l,...c})),tup(sizeRangeSystem,initialItemCountSystem,propsReadySystem,scrollSeekSystem,totalListHeightSystem,initialScrollTopSystem,alignToBottomSystem,windowScrollerSystem,scrollIntoViewSystem,loggerSystem)),listSystem=system((([{totalCount:e,sizeRanges:t,fixedItemSize:n,defaultItemSize:r,trackItemSizes:o,itemSize:a,data:i,firstItemIndex:s,groupIndices:l,statefulTotalCount:c,gap:u,sizes:d},{initialTopMostItemIndex:f,scrolledToInitialItem:p,initialItemFinalLocationReached:m},h,_,g,{listState:v,topItemsIndexes:E,...y},{scrollToIndex:b},C,{topItemCount:R},{groupCounts:w},S])=>(connect(y.rangeChanged,S.scrollSeekRangeChanged),connect(pipe(S.windowViewportRect,map((e=>e.visibleHeight))),h.viewportHeight),{totalCount:e,data:i,firstItemIndex:s,sizeRanges:t,initialTopMostItemIndex:f,scrolledToInitialItem:p,initialItemFinalLocationReached:m,topItemsIndexes:E,topItemCount:R,groupCounts:w,fixedItemHeight:n,defaultItemHeight:r,gap:u,...g,statefulTotalCount:c,listState:v,scrollToIndex:b,trackItemSizes:o,itemSize:a,groupIndices:l,...y,...S,...h,sizes:d,..._})),tup(sizeSystem,initialTopMostItemIndexSystem,domIOSystem,stateLoadSystem,followOutputSystem,listStateSystem,scrollToIndexSystem,upwardScrollFixSystem,topItemCountSystem,groupedListSystem,featureGroup1System)),WEBKIT_STICKY="-webkit-sticky",STICKY="sticky",positionStickyCssValue=simpleMemoize((()=>{if("undefined"==typeof document)return STICKY;const e=document.createElement("div");return e.style.position=WEBKIT_STICKY,e.style.position===WEBKIT_STICKY?WEBKIT_STICKY:STICKY}));function useWindowViewportRectRef(e,t,n){const r=React__default.default.useRef(null),o=React__default.default.useCallback((n=>{if(null===n||!n.offsetParent)return;const o=n.getBoundingClientRect(),a=o.width;let i,s;if(t){const e=t.getBoundingClientRect(),n=o.top-e.top;i=e.height-Math.max(0,n),s=n+t.scrollTop}else i=window.innerHeight-Math.max(0,o.top),s=o.top+window.pageYOffset;r.current={offsetTop:s,visibleHeight:i,visibleWidth:a},e(r.current)}),[e,t]),{callbackRef:a,ref:i}=useSizeWithElRef(o,!0,n),s=React__default.default.useCallback((()=>{o(i.current)}),[o,i]);return React__default.default.useEffect((()=>{if(t){t.addEventListener("scroll",s);const e=new ResizeObserver((()=>{requestAnimationFrame(s)}));return e.observe(t),()=>{t.removeEventListener("scroll",s),e.unobserve(t)}}return window.addEventListener("scroll",s),window.addEventListener("resize",s),()=>{window.removeEventListener("scroll",s),window.removeEventListener("resize",s)}}),[s,t]),a}const VirtuosoMockContext=React__default.default.createContext(void 0),VirtuosoGridMockContext=React__default.default.createContext(void 0);function identity(e){return e}const listComponentPropsSystem=system((()=>{const e=statefulStream((e=>`Item ${e}`)),t=statefulStream(null),n=statefulStream((e=>`Group ${e}`)),r=statefulStream({}),o=statefulStream(identity),a=statefulStream("div"),i=statefulStream(noop$1),s=(e,t=null)=>statefulStreamFromEmitter(pipe(r,map((t=>t[e])),distinctUntilChanged()),t);return{context:t,itemContent:e,groupContent:n,components:r,computeItemKey:o,HeaderFooterTag:a,scrollerRef:i,FooterComponent:s("Footer"),HeaderComponent:s("Header"),TopItemListComponent:s("TopItemList"),ListComponent:s("List","div"),ItemComponent:s("Item","div"),GroupComponent:s("Group","div"),ScrollerComponent:s("Scroller","div"),EmptyPlaceholder:s("EmptyPlaceholder"),ScrollSeekPlaceholder:s("ScrollSeekPlaceholder")}})),combinedSystem$2=system((([e,t])=>({...e,...t})),tup(listSystem,listComponentPropsSystem)),DefaultScrollSeekPlaceholder$1=({height:e})=>jsxRuntime.exports.jsx("div",{style:{height:e}}),GROUP_STYLE={position:positionStickyCssValue(),zIndex:1,overflowAnchor:"none"},ITEM_STYLE$1={overflowAnchor:"none"},HORIZONTAL_ITEM_STYLE={...ITEM_STYLE$1,display:"inline-block",height:"100%"},Items$1=React__default.default.memo((function({showTopList:e=!1}){const t=useEmitterValue$2("listState"),n=usePublisher$2("sizeRanges"),r=useEmitterValue$2("useWindowScroll"),o=useEmitterValue$2("customScrollParent"),a=usePublisher$2("windowScrollContainerState"),i=usePublisher$2("scrollContainerState"),s=o||r?a:i,l=useEmitterValue$2("itemContent"),c=useEmitterValue$2("context"),u=useEmitterValue$2("groupContent"),d=useEmitterValue$2("trackItemSizes"),f=useEmitterValue$2("itemSize"),p=useEmitterValue$2("log"),m=usePublisher$2("gap"),h=useEmitterValue$2("horizontalDirection"),{callbackRef:_}=useChangedListContentsSizes(n,f,d,e?noop$1:s,p,m,o,h,useEmitterValue$2("skipAnimationFrameInResizeObserver")),[g,v]=React__default.default.useState(0);useEmitter$2("deviation",(e=>{g!==e&&v(e)}));const E=useEmitterValue$2("EmptyPlaceholder"),y=useEmitterValue$2("ScrollSeekPlaceholder")||DefaultScrollSeekPlaceholder$1,b=useEmitterValue$2("ListComponent"),C=useEmitterValue$2("ItemComponent"),R=useEmitterValue$2("GroupComponent"),w=useEmitterValue$2("computeItemKey"),S=useEmitterValue$2("isSeeking"),D=useEmitterValue$2("groupIndices").length>0,T=useEmitterValue$2("alignToBottom"),O=useEmitterValue$2("initialItemFinalLocationReached"),A=e?{}:{boxSizing:"border-box",...h?{whiteSpace:"nowrap",display:"inline-block",height:"100%",paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,marginLeft:0!==g?g:T?"auto":0}:{marginTop:0!==g?g:T?"auto":0,paddingTop:t.offsetTop,paddingBottom:t.offsetBottom},...O?{}:{visibility:"hidden"}};return!e&&0===t.totalCount&&E?jsxRuntime.exports.jsx(E,{...contextPropIfNotDomElement(E,c)}):jsxRuntime.exports.jsx(b,{...contextPropIfNotDomElement(b,c),ref:_,style:A,"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",children:(e?t.topItems:t.items).map((e=>{const n=e.originalIndex,r=w(n+t.firstItemIndex,e.data,c);return S?React.createElement(y,{...contextPropIfNotDomElement(y,c),key:r,index:e.index,height:e.size,type:e.type||"item",..."group"===e.type?{}:{groupIndex:e.groupIndex}}):"group"===e.type?React.createElement(R,{...contextPropIfNotDomElement(R,c),key:r,"data-index":n,"data-known-size":e.size,"data-item-index":e.index,style:GROUP_STYLE},u(e.index,c)):React.createElement(C,{...contextPropIfNotDomElement(C,c),...itemPropIfNotDomElement(C,e.data),key:r,"data-index":n,"data-known-size":e.size,"data-item-index":e.index,"data-item-group-index":e.groupIndex,style:h?HORIZONTAL_ITEM_STYLE:ITEM_STYLE$1},D?l(e.index,e.groupIndex,e.data,c):l(e.index,e.data,c))}))})})),scrollerStyle={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},horizontalScrollerStyle={outline:"none",overflowX:"auto",position:"relative"},viewportStyle=e=>({width:"100%",height:"100%",position:"absolute",top:0,...e?{display:"flex",flexDirection:"column"}:{}}),topItemListStyle={width:"100%",position:positionStickyCssValue(),top:0,zIndex:1};function contextPropIfNotDomElement(e,t){if("string"!=typeof e)return{context:t}}function itemPropIfNotDomElement(e,t){return{item:"string"==typeof e?void 0:t}}const Header$1=React__default.default.memo((function(){const e=useEmitterValue$2("HeaderComponent"),t=usePublisher$2("headerHeight"),n=useEmitterValue$2("HeaderFooterTag"),r=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,useEmitterValue$2("skipAnimationFrameInResizeObserver")),o=useEmitterValue$2("context");return e?jsxRuntime.exports.jsx(n,{ref:r,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,o)})}):null})),Footer$1=React__default.default.memo((function(){const e=useEmitterValue$2("FooterComponent"),t=usePublisher$2("footerHeight"),n=useEmitterValue$2("HeaderFooterTag"),r=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,useEmitterValue$2("skipAnimationFrameInResizeObserver")),o=useEmitterValue$2("context");return e?jsxRuntime.exports.jsx(n,{ref:r,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,o)})}):null}));function buildScroller({usePublisher:e,useEmitter:t,useEmitterValue:n}){return React__default.default.memo((function({style:r,children:o,...a}){const i=e("scrollContainerState"),s=n("ScrollerComponent"),l=e("smoothScrollTargetReached"),c=n("scrollerRef"),u=n("context"),d=n("horizontalDirection")||!1,{scrollerRef:f,scrollByCallback:p,scrollToCallback:m}=useScrollTop(i,l,s,c,void 0,d);t("scrollTo",m),t("scrollBy",p);const h=d?horizontalScrollerStyle:scrollerStyle;return jsxRuntime.exports.jsx(s,{ref:f,style:{...h,...r},"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,tabIndex:0,...a,...contextPropIfNotDomElement(s,u),children:o})}))}function buildWindowScroller({usePublisher:e,useEmitter:t,useEmitterValue:n}){return React__default.default.memo((function({style:r,children:o,...a}){const i=e("windowScrollContainerState"),s=n("ScrollerComponent"),l=e("smoothScrollTargetReached"),c=n("totalListHeight"),u=n("deviation"),d=n("customScrollParent"),f=n("context"),{scrollerRef:p,scrollByCallback:m,scrollToCallback:h}=useScrollTop(i,l,s,noop$1,d);return useIsomorphicLayoutEffect$2((()=>(p.current=d||window,()=>{p.current=null})),[p,d]),t("windowScrollTo",h),t("scrollBy",m),jsxRuntime.exports.jsx(s,{style:{position:"relative",...r,...0!==c?{height:c+u}:{}},"data-virtuoso-scroller":!0,...a,...contextPropIfNotDomElement(s,f),children:o})}))}const Viewport$2=({children:e})=>{const t=React__default.default.useContext(VirtuosoMockContext),n=usePublisher$2("viewportHeight"),r=usePublisher$2("fixedItemHeight"),o=useEmitterValue$2("alignToBottom"),a=useEmitterValue$2("horizontalDirection"),i=useSize$1(React__default.default.useMemo((()=>compose(n,(e=>correctItemSize(e,a?"width":"height")))),[n,a]),!0,useEmitterValue$2("skipAnimationFrameInResizeObserver"));return React__default.default.useEffect((()=>{t&&(n(t.viewportHeight),r(t.itemHeight))}),[t,n,r]),jsxRuntime.exports.jsx("div",{style:viewportStyle(o),ref:i,"data-viewport-type":"element",children:e})},WindowViewport$2=({children:e})=>{const t=React__default.default.useContext(VirtuosoMockContext),n=usePublisher$2("windowViewportRect"),r=usePublisher$2("fixedItemHeight"),o=useEmitterValue$2("customScrollParent"),a=useWindowViewportRectRef(n,o,useEmitterValue$2("skipAnimationFrameInResizeObserver")),i=useEmitterValue$2("alignToBottom");return React__default.default.useEffect((()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))}),[t,n,r]),jsxRuntime.exports.jsx("div",{ref:a,style:viewportStyle(i),"data-viewport-type":"window",children:e})},TopItemListContainer=({children:e})=>{const t=useEmitterValue$2("TopItemListComponent")||"div",n=useEmitterValue$2("headerHeight"),r={...topItemListStyle,marginTop:`${n}px`},o=useEmitterValue$2("context");return jsxRuntime.exports.jsx(t,{style:r,...contextPropIfNotDomElement(t,o),children:e})},ListRoot=React__default.default.memo((function(e){const t=useEmitterValue$2("useWindowScroll"),n=useEmitterValue$2("topItemsIndexes").length>0,r=useEmitterValue$2("customScrollParent"),o=r||t?WindowScroller$2:Scroller$2,a=r||t?WindowViewport$2:Viewport$2;return jsxRuntime.exports.jsxs(o,{...e,children:[n&&jsxRuntime.exports.jsx(TopItemListContainer,{children:jsxRuntime.exports.jsx(Items$1,{showTopList:!0})}),jsxRuntime.exports.jsxs(a,{children:[jsxRuntime.exports.jsx(Header$1,{}),jsxRuntime.exports.jsx(Items$1,{}),jsxRuntime.exports.jsx(Footer$1,{})]})]})})),{Component:List$1,usePublisher:usePublisher$2,useEmitterValue:useEmitterValue$2,useEmitter:useEmitter$2}=systemToComponent(combinedSystem$2,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},ListRoot),Scroller$2=buildScroller({usePublisher:usePublisher$2,useEmitterValue:useEmitterValue$2,useEmitter:useEmitter$2}),WindowScroller$2=buildWindowScroller({usePublisher:usePublisher$2,useEmitterValue:useEmitterValue$2,useEmitter:useEmitter$2}),GroupedVirtuoso=List$1,INITIAL_GRID_STATE={items:[],offsetBottom:0,offsetTop:0,top:0,bottom:0,itemHeight:0,itemWidth:0},PROBE_GRID_STATE={items:[{index:0}],offsetBottom:0,offsetTop:0,top:0,bottom:0,itemHeight:0,itemWidth:0},{round:round,ceil:ceil,floor:floor,min:min,max:max}=Math;function buildProbeGridState(e){return{...PROBE_GRID_STATE,items:e}}function buildItems(e,t,n){return Array.from({length:t-e+1}).map(((t,r)=>{const o=null===n?null:n[r+e];return{index:r+e,data:o}}))}function gapComparator(e,t){return e&&e.column===t.column&&e.row===t.row}function dimensionComparator(e,t){return e&&e.width===t.width&&e.height===t.height}const gridSystem=system((([{overscan:e,visibleRange:t,listBoundary:n,increaseViewportBy:r},{scrollTop:o,viewportHeight:a,scrollBy:i,scrollTo:s,smoothScrollTargetReached:l,scrollContainerState:c,footerHeight:u,headerHeight:d},f,p,{propsReady:m,didMount:h},{windowViewportRect:_,useWindowScroll:g,customScrollParent:v,windowScrollContainerState:E,windowScrollTo:y},b])=>{const C=statefulStream(0),R=statefulStream(0),w=statefulStream(INITIAL_GRID_STATE),S=statefulStream({height:0,width:0}),D=statefulStream({height:0,width:0}),T=stream(),O=stream(),A=statefulStream(0),I=statefulStream(null),x=statefulStream({row:0,column:0}),N=stream(),F=stream(),P=statefulStream(!1),k=statefulStream(0),$=statefulStream(!0),M=statefulStream(!1),B=statefulStream(!1);subscribe(pipe(h,withLatestFrom(k),filter((([e,t])=>!!t))),(()=>{publish($,!1)})),subscribe(pipe(combineLatest(h,$,D,S,k,M),filter((([e,t,n,r,,o])=>e&&!t&&0!==n.height&&0!==r.height&&!o))),(([,,,,e])=>{publish(M,!0),skipFrames(1,(()=>{publish(T,e)})),handleNext(pipe(o),(()=>{publish(n,[0,0]),publish($,!0)}))})),connect(pipe(F,filter((e=>null!=e&&e.scrollTop>0)),mapTo(0)),R),subscribe(pipe(h,withLatestFrom(F),filter((([,e])=>null!=e))),(([,e])=>{e&&(publish(S,e.viewport),publish(D,null==e?void 0:e.item),publish(x,e.gap),e.scrollTop>0&&(publish(P,!0),handleNext(pipe(o,skip(1)),(e=>{publish(P,!1)})),publish(s,{top:e.scrollTop})))})),connect(pipe(S,map((({height:e})=>e))),a),connect(pipe(combineLatest(duc(S,dimensionComparator),duc(D,dimensionComparator),duc(x,((e,t)=>e&&e.column===t.column&&e.row===t.row)),duc(o)),map((([e,t,n,r])=>({viewport:e,item:t,gap:n,scrollTop:r})))),N),connect(pipe(combineLatest(duc(C),t,duc(x,gapComparator),duc(D,dimensionComparator),duc(S,dimensionComparator),duc(I),duc(R),duc(P),duc($),duc(k)),filter((([,,,,,,,e])=>!e)),map((([e,[t,n],r,o,a,i,s,,l,c])=>{const{row:u,column:d}=r,{height:f,width:p}=o,{width:m}=a;if(0===s&&(0===e||0===m))return INITIAL_GRID_STATE;if(0===p){const t=getInitialTopMostItemIndexNumber(c,e);return buildProbeGridState(buildItems(t,t+Math.max(s-1,0),i))}const h=itemsPerRow(m,p,d);let _,g;l?0===t&&0===n&&s>0?(_=0,g=s-1):(_=h*floor((t+u)/(f+u)),g=h*ceil((n+u)/(f+u))-1,g=min(e-1,max(g,h-1)),_=min(g,max(0,_))):(_=0,g=-1);const v=buildItems(_,g,i),{top:E,bottom:y}=gridLayout(a,r,o,v),b=ceil(e/h);return{items:v,offsetTop:E,offsetBottom:b*f+(b-1)*u-y,top:E,bottom:y,itemHeight:f,itemWidth:p}}))),w),connect(pipe(I,filter((e=>null!==e)),map((e=>e.length))),C),connect(pipe(combineLatest(S,D,w,x),filter((([e,t,{items:n}])=>n.length>0&&0!==t.height&&0!==e.height)),map((([e,t,{items:n},r])=>{const{top:o,bottom:a}=gridLayout(e,r,t,n);return[o,a]})),distinctUntilChanged(tupleComparator)),n);const L=statefulStream(!1);connect(pipe(o,withLatestFrom(L),map((([e,t])=>t||0!==e))),L);const j=streamFromEmitter(pipe(combineLatest(w,C),filter((([{items:e}])=>e.length>0)),withLatestFrom(L),filter((([[e,t],n])=>{const r=e.items[e.items.length-1].index===t-1;if(n)return r;return e.bottom>0&&e.itemHeight>0&&0===e.offsetBottom&&e.items.length===t&&r})),map((([[,e]])=>e-1)),distinctUntilChanged())),U=streamFromEmitter(pipe(duc(w),filter((({items:e})=>e.length>0&&0===e[0].index)),mapTo(0),distinctUntilChanged())),V=streamFromEmitter(pipe(duc(w),withLatestFrom(P),filter((([{items:e},t])=>e.length>0&&!t)),map((([{items:e}])=>({startIndex:e[0].index,endIndex:e[e.length-1].index}))),distinctUntilChanged(rangeComparator),throttleTime(0)));connect(V,p.scrollSeekRangeChanged),connect(pipe(T,withLatestFrom(S,D,C,x),map((([e,t,n,r,o])=>{const a=normalizeIndexLocation(e),{align:i,behavior:s,offset:l}=a;let c=a.index;"LAST"===c&&(c=r-1),c=max(0,c,min(r-1,c));let u=itemTop(t,o,n,c);return"end"===i?u=round(u-t.height+n.height):"center"===i&&(u=round(u-t.height/2+n.height/2)),l&&(u+=l),{top:u,behavior:s}}))),s);const H=statefulStreamFromEmitter(pipe(w,map((e=>e.offsetBottom+e.bottom))),0);return connect(pipe(_,map((e=>({width:e.visibleWidth,height:e.visibleHeight})))),S),{data:I,totalCount:C,viewportDimensions:S,itemDimensions:D,scrollTop:o,scrollHeight:O,overscan:e,increaseViewportBy:r,scrollBy:i,scrollTo:s,scrollToIndex:T,smoothScrollTargetReached:l,windowViewportRect:_,windowScrollTo:y,useWindowScroll:g,customScrollParent:v,windowScrollContainerState:E,deviation:A,scrollContainerState:c,footerHeight:u,headerHeight:d,initialItemCount:R,gap:x,restoreStateFrom:F,...p,initialTopMostItemIndex:k,horizontalDirection:B,gridState:w,totalListHeight:H,...f,startReached:U,endReached:j,rangeChanged:V,stateChanged:N,propsReady:m,stateRestoreInProgress:P,...b}}),tup(sizeRangeSystem,domIOSystem,stateFlagsSystem,scrollSeekSystem,propsReadySystem,windowScrollerSystem,loggerSystem));function gridLayout(e,t,n,r){const{height:o}=n;if(void 0===o||0===r.length)return{top:0,bottom:0};return{top:itemTop(e,t,n,r[0].index),bottom:itemTop(e,t,n,r[r.length-1].index)+o}}function itemTop(e,t,n,r){const o=itemsPerRow(e.width,n.width,t.column),a=floor(r/o),i=a*n.height+max(0,a-1)*t.row;return i>0?i+t.row:i}function itemsPerRow(e,t,n){return max(1,floor((e+n)/(floor(t)+n)))}const gridComponentPropsSystem=system((()=>{const e=statefulStream((e=>`Item ${e}`)),t=statefulStream({}),n=statefulStream(null),r=statefulStream("virtuoso-grid-item"),o=statefulStream("virtuoso-grid-list"),a=statefulStream(identity),i=statefulStream("div"),s=statefulStream(noop$1),l=(e,n=null)=>statefulStreamFromEmitter(pipe(t,map((t=>t[e])),distinctUntilChanged()),n),c=statefulStream(!1),u=statefulStream(!1);return connect(duc(u),c),{readyStateChanged:c,reportReadyState:u,context:n,itemContent:e,components:t,computeItemKey:a,itemClassName:r,listClassName:o,headerFooterTag:i,scrollerRef:s,FooterComponent:l("Footer"),HeaderComponent:l("Header"),ListComponent:l("List","div"),ItemComponent:l("Item","div"),ScrollerComponent:l("Scroller","div"),ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}})),combinedSystem$1=system((([e,t])=>({...e,...t})),tup(gridSystem,gridComponentPropsSystem)),GridItems=React__default.default.memo((function(){const e=useEmitterValue$1("gridState"),t=useEmitterValue$1("listClassName"),n=useEmitterValue$1("itemClassName"),r=useEmitterValue$1("itemContent"),o=useEmitterValue$1("computeItemKey"),a=useEmitterValue$1("isSeeking"),i=usePublisher$1("scrollHeight"),s=useEmitterValue$1("ItemComponent"),l=useEmitterValue$1("ListComponent"),c=useEmitterValue$1("ScrollSeekPlaceholder"),u=useEmitterValue$1("context"),d=usePublisher$1("itemDimensions"),f=usePublisher$1("gap"),p=useEmitterValue$1("log"),m=useEmitterValue$1("stateRestoreInProgress"),h=usePublisher$1("reportReadyState"),_=useSize$1(React__default.default.useMemo((()=>e=>{const t=e.parentElement.parentElement.scrollHeight;i(t);const n=e.firstChild;if(n){const{width:e,height:t}=n.getBoundingClientRect();d({width:e,height:t})}f({row:resolveGapValue("row-gap",getComputedStyle(e).rowGap,p),column:resolveGapValue("column-gap",getComputedStyle(e).columnGap,p)})}),[i,d,f,p]),!0,!1);return useIsomorphicLayoutEffect$2((()=>{e.itemHeight>0&&e.itemWidth>0&&h(!0)}),[e]),m?null:jsxRuntime.exports.jsx(l,{ref:_,className:t,...contextPropIfNotDomElement(l,u),style:{paddingTop:e.offsetTop,paddingBottom:e.offsetBottom},"data-testid":"virtuoso-item-list",children:e.items.map((t=>{const i=o(t.index,t.data,u);return a?jsxRuntime.exports.jsx(c,{...contextPropIfNotDomElement(c,u),index:t.index,height:e.itemHeight,width:e.itemWidth},i):React.createElement(s,{...contextPropIfNotDomElement(s,u),className:n,"data-index":t.index,key:i},r(t.index,t.data,u))}))})})),Header=React__default.default.memo((function(){const e=useEmitterValue$1("HeaderComponent"),t=usePublisher$1("headerHeight"),n=useEmitterValue$1("headerFooterTag"),r=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,!1),o=useEmitterValue$1("context");return e?jsxRuntime.exports.jsx(n,{ref:r,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,o)})}):null})),Footer=React__default.default.memo((function(){const e=useEmitterValue$1("FooterComponent"),t=usePublisher$1("footerHeight"),n=useEmitterValue$1("headerFooterTag"),r=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,!1),o=useEmitterValue$1("context");return e?jsxRuntime.exports.jsx(n,{ref:r,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,o)})}):null})),Viewport$1=({children:e})=>{const t=React__default.default.useContext(VirtuosoGridMockContext),n=usePublisher$1("itemDimensions"),r=usePublisher$1("viewportDimensions"),o=useSize$1(React__default.default.useMemo((()=>e=>{r(e.getBoundingClientRect())}),[r]),!0,!1);return React__default.default.useEffect((()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))}),[t,r,n]),jsxRuntime.exports.jsx("div",{style:viewportStyle(!1),ref:o,children:e})},WindowViewport$1=({children:e})=>{const t=React__default.default.useContext(VirtuosoGridMockContext),n=usePublisher$1("windowViewportRect"),r=usePublisher$1("itemDimensions"),o=useEmitterValue$1("customScrollParent"),a=useWindowViewportRectRef(n,o,!1);return React__default.default.useEffect((()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))}),[t,n,r]),jsxRuntime.exports.jsx("div",{ref:a,style:viewportStyle(!1),children:e})},GridRoot=React__default.default.memo((function({...e}){const t=useEmitterValue$1("useWindowScroll"),n=useEmitterValue$1("customScrollParent"),r=n||t?WindowScroller$1:Scroller$1,o=n||t?WindowViewport$1:Viewport$1;return jsxRuntime.exports.jsx(r,{...e,children:jsxRuntime.exports.jsxs(o,{children:[jsxRuntime.exports.jsx(Header,{}),jsxRuntime.exports.jsx(GridItems,{}),jsxRuntime.exports.jsx(Footer,{})]})})})),{Component:Grid,usePublisher:usePublisher$1,useEmitterValue:useEmitterValue$1,useEmitter:useEmitter$1}=systemToComponent(combinedSystem$1,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},GridRoot),Scroller$1=buildScroller({usePublisher:usePublisher$1,useEmitterValue:useEmitterValue$1,useEmitter:useEmitter$1}),WindowScroller$1=buildWindowScroller({usePublisher:usePublisher$1,useEmitterValue:useEmitterValue$1,useEmitter:useEmitter$1});function resolveGapValue(e,t,n){return"normal"===t||(null==t?void 0:t.endsWith("px"))||n(`${e} was not resolved to pixel value correctly`,t,LogLevel.WARN),"normal"===t?0:parseInt(null!=t?t:"0",10)}const IDLE_CALLBACK_FALLBACK_TIMEOUT=100;function requestIdleCallbackFallback(e,t){return setTimeout(e,Math.min(t?.timeout??1/0,IDLE_CALLBACK_FALLBACK_TIMEOUT))}const requestIdleCallback=("undefined"!=typeof window?window.requestIdleCallback:null)??requestIdleCallbackFallback,cancelIdleCallback=("undefined"!=typeof window?window.cancelIdleCallback:null)??clearTimeout,useReactTransition=React__default.default["useTransition".toString()];function useTransitionFallback(){return[!1,React.useCallback((e=>e()),[])]}const useTransition=useReactTransition??useTransitionFallback,visuallyHidden={position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"},EmojiPickerContext=React.createContext(null);function useEmojiPicker(){return nn(React.useContext(EmojiPickerContext),"EmojiPicker.Root is missing from the React tree.")}const EMOJIBASE_VERSION="15.3.0",EMOJIBASE_CDN_URL=`${Builder&&Builder.settings&&Builder.settings.unpkgUrl?Builder.settings.unpkgUrl:"https://unpkg.com"}/emojibase-data@${EMOJIBASE_VERSION}`,EMOJIBASE_EMOJIS_URL=e=>`${EMOJIBASE_CDN_URL}/${e}/data.json`,EMOJIBASE_MESSAGES_URL=e=>`${EMOJIBASE_CDN_URL}/${e}/messages.json`,EMOJIBASE_LOCALES=["bn","da","de","en","en-gb","es","es-mx","et","fi","fr","hi","hu","it","ja","ko","lt","ms","nb","nl","pl","pt","ru","sv","th","uk","zh","zh-hant"],EMOJIBASE_DEFAULT_LOCALE="en",CACHE_EMOJI_DATA_KEY=e=>`lb-emoji-data-${e}`,CACHE_EMOJI_METADATA_KEY=e=>`lb-emoji-metadata-${e}`,CACHE_EMOJI_SESSION_METADATA_KEY="lb-emoji-metadata",EMOJI_DETECTION_CANVAS_WIDTH=20,EMOJI_DETECTION_CANVAS_HEIGHT=25,EMOJI_DETECTION_COUNTRY_FLAG="🇫🇷";function generateRangeIndices(e,t){const n=[];for(let r=e;r<=t;r++)n.push(r);return n}function getStorageItem(e,t){const n=e.getItem(t);return n?JSON.parse(n):null}function setStorageItem(e,t,n){e.setItem(t,JSON.stringify(n))}async function fetchEtag(e){try{return(await fetch(e,{method:"HEAD"})).headers.get("etag")}catch(e){return null}}function getEmojibaseSupportedLocale(e){return EMOJIBASE_LOCALES.includes(e)?e:EMOJIBASE_DEFAULT_LOCALE}async function fetchEmojibaseData(e){const[{emojis:t,emojisEtag:n},{messages:r,messagesEtag:o}]=await Promise.all([fetch(EMOJIBASE_EMOJIS_URL(e)).then((async e=>({emojis:await e.json(),emojisEtag:e.headers.get("etag")}))),fetch(EMOJIBASE_MESSAGES_URL(e)).then((async e=>({messages:await e.json(),messagesEtag:e.headers.get("etag")})))]);return{emojis:t,messages:r,emojisEtag:n,messagesEtag:o}}async function fetchEmojibaseEtags(e){const[t,n]=await Promise.all([fetchEtag(EMOJIBASE_EMOJIS_URL(e)),fetchEtag(EMOJIBASE_MESSAGES_URL(e))]);return{emojisEtag:t,messagesEtag:n}}async function fetchEmojiData(e){const{emojis:t,emojisEtag:n,messages:r,messagesEtag:o}=await fetchEmojibaseData(e),a=r.subgroups.find((e=>"subdivision-flag"===e.key)),i=r.groups.filter((e=>"component"!==e.key)),s=t.filter((e=>"group"in e)),l=i.map((e=>({key:e.order,name:capitalize$1(e.message)}))),c=r.skinTones.map((e=>({key:e.key,name:capitalize$1(e.message)}))),u={emojis:s.map((e=>{const t={emoji:e.emoji,category:e.group,version:e.version,name:capitalize$1(e.label),tags:e.tags};return a&&e.subgroup===a.order&&(t.countryFlag=!0),t})),categories:l,skinTones:c};return setStorageItem(localStorage,CACHE_EMOJI_DATA_KEY(e),u),setStorageItem(localStorage,CACHE_EMOJI_METADATA_KEY(e),{emojisEtag:n,messagesEtag:o}),u}function detectEmojiSupport(e,t){e.clearRect(0,0,2*EMOJI_DETECTION_CANVAS_WIDTH,EMOJI_DETECTION_CANVAS_HEIGHT),e.fillStyle="#f00",e.fillText(t,0,22),e.fillStyle="#00f",e.fillText(t,EMOJI_DETECTION_CANVAS_WIDTH,22);const n=e.getImageData(0,0,EMOJI_DETECTION_CANVAS_WIDTH,EMOJI_DETECTION_CANVAS_HEIGHT).data,r=n.length;let o=0;for(;o<r&&!n[o+3];o+=4);if(o>=r)return!1;const a=EMOJI_DETECTION_CANVAS_WIDTH+o/4%EMOJI_DETECTION_CANVAS_WIDTH,i=Math.floor(o/4/EMOJI_DETECTION_CANVAS_WIDTH),s=e.getImageData(a,i,1,1).data;return n[o]===s[0]&&n[o+2]===s[2]&&!(e.measureText(t).width>=EMOJI_DETECTION_CANVAS_WIDTH)}function getEmojiFontFamily(){try{const e=document.createElement("span");e.style.display="none",e.dataset.emoji="",document.body.appendChild(e);const t=window.getComputedStyle(e).fontFamily;return document.body.removeChild(e),t}catch{return EMOJI_FONT_FAMILY}}function getEmojiSessionMetadata(e){const t=new Map;for(const n of e)t.has(n.version)||t.set(n.version,n.emoji);const n=[...t.keys()].sort(((e,t)=>t-e)),r=n[0]??0,o=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});if(!o)return{emojiVersion:r,countryFlags:!0};o.font=`${Math.floor(EMOJI_DETECTION_CANVAS_HEIGHT/2)}px ${getEmojiFontFamily()}`,o.textBaseline="top",o.canvas.width=2*EMOJI_DETECTION_CANVAS_WIDTH,o.canvas.height=EMOJI_DETECTION_CANVAS_HEIGHT;const a=detectEmojiSupport(o,EMOJI_DETECTION_COUNTRY_FLAG);for(const e of n){if(detectEmojiSupport(o,t.get(e)))return{emojiVersion:e,countryFlags:a}}return{emojiVersion:r,countryFlags:a}}async function getEmojiData(e){const t=getEmojibaseSupportedLocale(e),n=getStorageItem(sessionStorage,CACHE_EMOJI_SESSION_METADATA_KEY),r=getStorageItem(localStorage,CACHE_EMOJI_DATA_KEY(t));let o;if(r)if(n)o=r;else{const{emojisEtag:e,messagesEtag:n}=await fetchEmojibaseEtags(t),a=getStorageItem(localStorage,CACHE_EMOJI_METADATA_KEY(t));o=a&&e===a.emojisEtag&&n===a.messagesEtag?r:await fetchEmojiData(t)}else o=await fetchEmojiData(t);const a=n??getEmojiSessionMetadata(o.emojis);setStorageItem(sessionStorage,CACHE_EMOJI_SESSION_METADATA_KEY,a);return{emojis:o.emojis.filter((e=>{const t=e.version<=a.emojiVersion;return e.countryFlag?t&&a.countryFlags:t})),categories:o.categories,skinTones:o.skinTones}}function filterEmojis(e,t){if(!t)return e;const n=t.toLowerCase().trim();return e.filter((e=>e.name.toLowerCase().includes(n)||e.tags?.some((e=>e.toLowerCase().includes(n)))))}function generateEmojiPickerData(e,t,n){let r=0;const o=[],a=e.map(((e,t)=>({...e,index:t}))),i=[],s=[],l=[],c=t.map((e=>({...e,emojis:a.filter((t=>t.category===e.key))}))).filter((e=>e.emojis.length>0));for(const e of c){const t=chunk(e.emojis,n),a=r+t.length;o.push(...t),l.push(e.name),i.push(t.length),s.push(generateRangeIndices(r,a-1)),r=a}return{count:e.length,rows:o,categories:l,categoriesRowCounts:i,categoriesRowIndices:s}}const DEFAULT_COLUMNS=10,DEFAULT_LOCALE="en",LOADING_MINIMUM_TIMEOUT=100;function EmojiPickerRoot({columns:e=DEFAULT_COLUMNS,locale:t=DEFAULT_LOCALE,onEmojiSelect:n,children:r}){const o=React.useRef(),a=React.useRef(""),[,i]=useTransition(),[s,l]=React.useState(),[c,u]=React.useState(),[d,f]=React.useState(0),[p,m]=React.useState(0),[h,_]=React.useState("none"),g=React.useCallback((()=>{if(n){const e=s?.rows[p]?.[d];e&&n(e.emoji)}}),[s?.rows,n,d,p]),v=React.useCallback((()=>{f(0),m(0)}),[]),E=React.useCallback(((e,t)=>{_("pointer"),f(e),m(t)}),[]),y=React.useCallback(((e,t)=>{if(s)if(t.preventDefault(),"none"!==h)switch(_("keyboard"),e){case"left":if(0===d){const e=p-1,t=s.rows[e];t&&(m(e),f(t.length-1))}else f(d-1);break;case"right":{const e=s.rows[p];if(!e)return;if(d===e.length-1){const e=p+1;s.rows[e]&&(m(e),f(0))}else f(d+1);break}case"up":{const e=s.rows[p-1];e&&(m(p-1),e[d]||f(e.length-1));break}case"down":{const e=s.rows[p+1];e&&(m(p+1),e[d]||f(e.length-1));break}}else _("keyboard")}),[s,h,d,p]),b=React.useCallback((()=>{o.current&&i((()=>{l((()=>{if(!o.current)return;return generateEmojiPickerData(filterEmojis(o.current.emojis,a.current),o.current.categories,e)})),v()}))}),[e,v]),C=React.useCallback((e=>{a.current=e,b()}),[b]),R=React.useCallback((async e=>{try{o.current=await getEmojiData(e),b()}catch(e){u(e)}}),[b]);return React.useEffect((()=>{let e;const n=setTimeout((()=>{e=requestIdleCallback((()=>{R(t)}))}),LOADING_MINIMUM_TIMEOUT);return()=>{clearTimeout(n),cancelIdleCallback(e)}}),[t]),React.useEffect((()=>{"none"===h&&v()}),[h]),React__default.default.createElement(EmojiPickerContext.Provider,{value:{data:s,error:c,isLoading:!s&&!c,columns:e,onSearch:C,onEmojiSelect:n,selectCurrentEmoji:g,selectedRowIndex:p,selectedColumnIndex:d,moveSelection:y,setPointerSelection:E,interaction:h,setInteraction:_}},r)}const EmojiPickerSearch=React.forwardRef((({asChild:e,value:t,defaultValue:n,onChange:r,...o},a)=>{const i=e?Slot:"input",{onSearch:s,selectCurrentEmoji:l,moveSelection:c,interaction:u,setInteraction:d}=useEmojiPicker(),f=React.useCallback((e=>{if(r?.(e),e.isDefaultPrevented())return;const t=e.target.value;d(t?"keyboard":"none"),s(t)}),[r,s,d]),p=React.useCallback((e=>{e.isDefaultPrevented()||(isKey(e,"ArrowLeft")?c("left",e):isKey(e,"ArrowRight")?c("right",e):isKey(e,"ArrowUp")?c("up",e):isKey(e,"ArrowDown")?c("down",e):isKey(e,"Enter")&&"none"!==u&&(e.preventDefault(),l()))}),[u,c,l]);return React.useEffect((()=>{s(t?String(t):n?String(n):"")}),[]),React__default.default.createElement(i,{type:"search",value:t,defaultValue:n,onChange:f,onKeyDown:p,...o,ref:a})})),defaultContentComponents={CategoryHeader:({category:e,...t})=>React__default.default.createElement("div",{...t},e),Row:({children:e,attributes:t,...n})=>React__default.default.createElement("div",{...n},e),Emoji:({emoji:e,...t})=>React__default.default.createElement("button",{...t},React__default.default.createElement(Emoji$1,{emoji:e})),Loading:e=>React__default.default.createElement("div",{...e}),Empty:e=>React__default.default.createElement("div",{...e}),Grid:e=>React__default.default.createElement("div",{...e}),Error:({error:e,...t})=>React__default.default.createElement("div",{...t})},placeholderRowAttributes={rowIndex:-1,categoryRowIndex:-1,categoryRowsCount:0},VirtuosoScroller=React.forwardRef((({children:e,...t},n)=>React__default.default.createElement("div",{...t,tabIndex:-1,"data-testid":void 0,ref:n},e))),VirtuosoTopList=React.forwardRef((({children:e,...t},n)=>React__default.default.createElement("div",{...t,"data-testid":void 0,ref:n},e))),EmojiPickerContent=React.forwardRef((({components:e,asChild:t,...n},r)=>{const o=t?Slot:"div",a=React.useRef(null),i=React.useRef(null),s=React.useRef(0),l=React.useRef(0),c=React.useRef(0),{data:u,error:d,isLoading:f,columns:p,onEmojiSelect:m,selectedColumnIndex:h,selectedRowIndex:_,setPointerSelection:g,interaction:v,setInteraction:E}=useEmojiPicker(),y=React.useMemo((()=>u?.rows[_]?.[h]),[u?.rows,h,_]),{Loading:b,Empty:C,Error:R,CategoryHeader:w,Grid:S,Row:D,Emoji:T}=React.useMemo((()=>({...defaultContentComponents,...e})),[e]),O=React.useMemo((()=>React.forwardRef((({children:e,...t},n)=>React__default.default.createElement("div",{role:"grid","aria-colcount":p,...t,"data-testid":void 0,ref:n},e)))),[p]),A=React.useMemo((()=>Array(p).fill("🌫️")),[p]),I=React.useCallback((e=>{e.preventDefault()}),[]),x=React.useCallback((()=>{"pointer"===v&&E("none")}),[v,E]);useLayoutEffect((()=>{if(!i.current)return;const e=i.current.childNodes[0],t=i.current.childNodes[1];if(e instanceof HTMLElement){const t=window.getComputedStyle(e);s.current=parseFloat(t.scrollMarginTop),l.current=parseFloat(t.scrollMarginBottom)}t instanceof HTMLElement&&(c.current=t.offsetHeight)}),[]);const N=React.useCallback((({itemTop:e,itemBottom:t,viewportTop:n,viewportBottom:r,locationParams:{behavior:o,align:a,...i}})=>e-(c.current+s.current)<n?{...i,behavior:o,align:a??"start"}:t>r?{...i,behavior:o,align:a??"end",offset:l.current}:null),[]);return React.useEffect((()=>{"keyboard"===v&&a.current?.scrollIntoView({index:_,behavior:"auto",calculateViewLocation:N})}),[v,_,N]),React__default.default.createElement(o,{...n,ref:r},React__default.default.createElement("div",{style:{visibility:"hidden",height:0},ref:i},React__default.default.createElement(D,{attributes:placeholderRowAttributes},A.map(((e,t)=>React__default.default.createElement(T,{emoji:e,key:t})))),React__default.default.createElement(w,{category:"Category"})),f?React__default.default.createElement(b,null):d?React__default.default.createElement(R,{error:d}):0===u.count?React__default.default.createElement(C,null):React__default.default.createElement(S,null,React__default.default.createElement(GroupedVirtuoso,{ref:a,components:{Scroller:VirtuosoScroller,List:O,TopItemList:VirtuosoTopList},groupCounts:u.categoriesRowCounts,groupContent:e=>{const t=u.categories[e];return t?React__default.default.createElement(w,{category:t}):null},itemContent:(e,t)=>{const n=u.rows[e],r=u.categoriesRowIndices[t]?.indexOf(e),o=u.categoriesRowCounts[t];return void 0===n||void 0===r||void 0===o?null:React__default.default.createElement(D,{attributes:{rowIndex:e,categoryRowIndex:r,categoryRowsCount:o}},n.map(((t,n)=>{const r="none"!==v&&h===n&&_===e;return React__default.default.createElement(T,{key:t.emoji,role:"gridcell","aria-colindex":n,"aria-selected":r||void 0,"data-selected":r||void 0,onMouseDown:I,tabIndex:-1,onPointerEnter:()=>{g(n,e)},onPointerLeave:x,onClick:e=>{m?.(t.emoji),e.stopPropagation()},emoji:t.emoji})})))}})),y&&"none"!==v&&React__default.default.createElement("div",{"aria-live":"polite",style:visuallyHidden},y.name))})),BASE=1e3,UNITS=["B","KB","MB","GB"];function formatFileSize(e,t){if(0===e)return`0 ${UNITS[1]}`;let n;n=0===e?1:Math.max(1,Math.min(Math.floor(Math.log(Math.abs(e))/Math.log(BASE)),UNITS.length-1));let r=e/BASE**n,o=1;1===n&&(r>=10&&(o=0),r<.1&&r>0&&(o=2),r<.01&&(r=.01));const a=UNITS[n];return`${numberFormat(t,{minimumFractionDigits:0,maximumFractionDigits:o}).format(r)} ${a}`}function createContextScope$3(e,t=[]){let n=[];const r=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const r=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return r.scopeName=e,[function(t,r){const o=React__namespace.createContext(r),a=n.length;n=[...n,r];const i=t=>{const{scope:n,children:r,...i}=t,s=n?.[e]?.[a]||o,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:r})};return i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e]?.[a]||o,l=React__namespace.useContext(s);if(l)return l;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$3(r,...t)]}function composeContextScopes$3(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}function useEscapeKeydown(e,t=globalThis?.document){const n=useCallbackRef$1(e);React__namespace.useEffect((()=>{const e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})}),[n,t])}var DISMISSABLE_LAYER_NAME="DismissableLayer",CONTEXT_UPDATE="dismissableLayer.update",POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",FOCUS_OUTSIDE="dismissableLayer.focusOutside",originalBodyPointerEvents,DismissableLayerContext=React__namespace.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),DismissableLayer=React__namespace.forwardRef(((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:i,onDismiss:s,...l}=e,c=React__namespace.useContext(DismissableLayerContext),[u,d]=React__namespace.useState(null),f=u?.ownerDocument??globalThis?.document,[,p]=React__namespace.useState({}),m=useComposedRefs(t,(e=>d(e))),h=Array.from(c.layers),[_]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),g=h.indexOf(_),v=u?h.indexOf(u):-1,E=c.layersWithOutsidePointerEventsDisabled.size>0,y=v>=g,b=usePointerDownOutside((e=>{const t=e.target,n=[...c.branches].some((e=>e.contains(t)));y&&!n&&(o?.(e),i?.(e),e.defaultPrevented||s?.())}),f),C=useFocusOutside((e=>{const t=e.target;[...c.branches].some((e=>e.contains(t)))||(a?.(e),i?.(e),e.defaultPrevented||s?.())}),f);return useEscapeKeydown((e=>{v===c.layers.size-1&&(r?.(e),!e.defaultPrevented&&s&&(e.preventDefault(),s()))}),f),React__namespace.useEffect((()=>{if(u)return n&&(0===c.layersWithOutsidePointerEventsDisabled.size&&(originalBodyPointerEvents=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(u)),c.layers.add(u),dispatchUpdate(),()=>{n&&1===c.layersWithOutsidePointerEventsDisabled.size&&(f.body.style.pointerEvents=originalBodyPointerEvents)}}),[u,f,n,c]),React__namespace.useEffect((()=>()=>{u&&(c.layers.delete(u),c.layersWithOutsidePointerEventsDisabled.delete(u),dispatchUpdate())}),[u,c]),React__namespace.useEffect((()=>{const e=()=>p({});return document.addEventListener(CONTEXT_UPDATE,e),()=>document.removeEventListener(CONTEXT_UPDATE,e)}),[]),jsxRuntime.exports.jsx(Primitive.div,{...l,ref:m,style:{pointerEvents:E?y?"auto":"none":void 0,...e.style},onFocusCapture:composeEventHandlers(e.onFocusCapture,C.onFocusCapture),onBlurCapture:composeEventHandlers(e.onBlurCapture,C.onBlurCapture),onPointerDownCapture:composeEventHandlers(e.onPointerDownCapture,b.onPointerDownCapture)})}));DismissableLayer.displayName=DISMISSABLE_LAYER_NAME;var BRANCH_NAME="DismissableLayerBranch",DismissableLayerBranch=React__namespace.forwardRef(((e,t)=>{const n=React__namespace.useContext(DismissableLayerContext),r=React__namespace.useRef(null),o=useComposedRefs(t,r);return React__namespace.useEffect((()=>{const e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}}),[n.branches]),jsxRuntime.exports.jsx(Primitive.div,{...e,ref:o})}));function usePointerDownOutside(e,t=globalThis?.document){const n=useCallbackRef$1(e),r=React__namespace.useRef(!1),o=React__namespace.useRef((()=>{}));return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!r.current){let r=function(){handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE,n,a,{discrete:!0})};const a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",o.current),o.current=r,t.addEventListener("click",o.current,{once:!0})):r()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout((()=>{t.addEventListener("pointerdown",e)}),0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",o.current)}}),[t,n]),{onPointerDownCapture:()=>r.current=!0}}function useFocusOutside(e,t=globalThis?.document){const n=useCallbackRef$1(e),r=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!r.current){handleAndDispatchCustomEvent(FOCUS_OUTSIDE,n,{originalEvent:e},{discrete:!1})}};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)}),[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function dispatchUpdate(){const e=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(e)}function handleAndDispatchCustomEvent(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?dispatchDiscreteCustomEvent(o,a):o.dispatchEvent(a)}DismissableLayerBranch.displayName=BRANCH_NAME;var useLayoutEffect2=Boolean(globalThis?.document)?React__namespace.useLayoutEffect:()=>{},useReactId=React__namespace["useId".toString()]||(()=>{}),count$1=0;function useId(e){const[t,n]=React__namespace.useState(useReactId());return useLayoutEffect2((()=>{e||n((e=>e??String(count$1++)))}),[e]),e||(t?`radix-${t}`:"")}var NAME$1="Arrow",Arrow$1=React__namespace.forwardRef(((e,t)=>{const{children:n,width:r=10,height:o=5,...a}=e;return jsxRuntime.exports.jsx(Primitive.svg,{...a,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:jsxRuntime.exports.jsx("polygon",{points:"0,0 30,0 15,10"})})}));Arrow$1.displayName=NAME$1;var Root$2=Arrow$1;function createContextScope$2(e,t=[]){let n=[];const r=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const r=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return r.scopeName=e,[function(t,r){const o=React__namespace.createContext(r),a=n.length;function i(t){const{scope:n,children:r,...i}=t,s=n?.[e][a]||o,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:r})}return n=[...n,r],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||o,l=React__namespace.useContext(s);if(l)return l;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$2(r,...t)]}function composeContextScopes$2(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}function useSize(e){const[t,n]=React__namespace.useState(void 0);return useLayoutEffect2((()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const t=new ResizeObserver((t=>{if(!Array.isArray(t))return;if(!t.length)return;const r=t[0];let o,a;if("borderBoxSize"in r){const e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;o=t.inlineSize,a=t.blockSize}else o=e.offsetWidth,a=e.offsetHeight;n({width:o,height:a})}));return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)}),[e]),t}var POPPER_NAME="Popper",[createPopperContext,createPopperScope]=createContextScope$2(POPPER_NAME),[PopperProvider,usePopperContext]=createPopperContext(POPPER_NAME),Popper=e=>{const{__scopePopper:t,children:n}=e,[r,o]=React__namespace.useState(null);return jsxRuntime.exports.jsx(PopperProvider,{scope:t,anchor:r,onAnchorChange:o,children:n})};Popper.displayName=POPPER_NAME;var ANCHOR_NAME$2="PopperAnchor",PopperAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,a=usePopperContext(ANCHOR_NAME$2,n),i=React__namespace.useRef(null),s=useComposedRefs(t,i);return React__namespace.useEffect((()=>{a.onAnchorChange(r?.current||i.current)})),r?null:jsxRuntime.exports.jsx(Primitive.div,{...o,ref:s})}));PopperAnchor.displayName=ANCHOR_NAME$2;var CONTENT_NAME$4="PopperContent",[PopperContentProvider,useContentContext]=createPopperContext(CONTENT_NAME$4),PopperContent=React__namespace.forwardRef(((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:a="center",alignOffset:i=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:c=[],collisionPadding:u=0,sticky:d="partial",hideWhenDetached:f=!1,updatePositionStrategy:p="optimized",onPlaced:m,...h}=e,_=usePopperContext(CONTENT_NAME$4,n),[g,v]=React__namespace.useState(null),E=useComposedRefs(t,(e=>v(e))),[y,b]=React__namespace.useState(null),C=useSize(y),R=C?.width??0,w=C?.height??0,S=r+("center"!==a?"-"+a:""),D="number"==typeof u?u:{top:0,right:0,bottom:0,left:0,...u},T=Array.isArray(c)?c:[c],O=T.length>0,A={padding:D,boundary:T.filter(isNotNull),altBoundary:O},{refs:I,floatingStyles:x,placement:N,isPositioned:F,middlewareData:P}=useFloating({strategy:"fixed",placement:S,whileElementsMounted:(...e)=>autoUpdate(...e,{animationFrame:"always"===p}),elements:{reference:_.anchor},middleware:[offset({mainAxis:o+w,alignmentAxis:i}),l&&shift({mainAxis:!0,crossAxis:!1,limiter:"partial"===d?limitShift():void 0,...A}),l&&flip({...A}),size$1({...A,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{const{width:o,height:a}=t.reference,i=e.floating.style;i.setProperty("--radix-popper-available-width",`${n}px`),i.setProperty("--radix-popper-available-height",`${r}px`),i.setProperty("--radix-popper-anchor-width",`${o}px`),i.setProperty("--radix-popper-anchor-height",`${a}px`)}}),y&&arrow({element:y,padding:s}),transformOrigin({arrowWidth:R,arrowHeight:w}),f&&hide({strategy:"referenceHidden",...A})]}),[k,$]=getSideAndAlignFromPlacement(N),M=useCallbackRef$1(m);useLayoutEffect2((()=>{F&&M?.()}),[F,M]);const B=P.arrow?.x,L=P.arrow?.y,j=0!==P.arrow?.centerOffset,[U,V]=React__namespace.useState();return useLayoutEffect2((()=>{g&&V(window.getComputedStyle(g).zIndex)}),[g]),jsxRuntime.exports.jsx("div",{ref:I.setFloating,"data-radix-popper-content-wrapper":"",style:{...x,transform:F?x.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:U,"--radix-popper-transform-origin":[P.transformOrigin?.x,P.transformOrigin?.y].join(" "),...P.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:jsxRuntime.exports.jsx(PopperContentProvider,{scope:n,placedSide:k,onArrowChange:b,arrowX:B,arrowY:L,shouldHideArrow:j,children:jsxRuntime.exports.jsx(Primitive.div,{"data-side":k,"data-align":$,...h,ref:E,style:{...h.style,animation:F?void 0:"none"}})})})}));PopperContent.displayName=CONTENT_NAME$4;var ARROW_NAME$4="PopperArrow",OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"right"},PopperArrow=React__namespace.forwardRef((function(e,t){const{__scopePopper:n,...r}=e,o=useContentContext(ARROW_NAME$4,n),a=OPPOSITE_SIDE[o.placedSide];return jsxRuntime.exports.jsx("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:jsxRuntime.exports.jsx(Root$2,{...r,ref:t,style:{...r.style,display:"block"}})})}));function isNotNull(e){return null!==e}PopperArrow.displayName=ARROW_NAME$4;var transformOrigin=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:o}=t,a=0!==o.arrow?.centerOffset,i=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[l,c]=getSideAndAlignFromPlacement(n),u={start:"0%",center:"50%",end:"100%"}[c],d=(o.arrow?.x??0)+i/2,f=(o.arrow?.y??0)+s/2;let p="",m="";return"bottom"===l?(p=a?u:`${d}px`,m=-s+"px"):"top"===l?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):"right"===l?(p=-s+"px",m=a?u:`${f}px`):"left"===l&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function getSideAndAlignFromPlacement(e){const[t,n="center"]=e.split("-");return[t,n]}var Root2$2=Popper,Anchor=PopperAnchor,Content=PopperContent,Arrow=PopperArrow,PORTAL_NAME$4="Portal",Portal$3=React__namespace.forwardRef(((e,t)=>{const{container:n,...r}=e,[o,a]=React__namespace.useState(!1);useLayoutEffect2((()=>a(!0)),[]);const i=n||o&&globalThis?.document?.body;return i?ReactDOM__default.default.createPortal(jsxRuntime.exports.jsx(Primitive.div,{...r,ref:t}),i):null}));function useStateMachine(e,t){return React__namespace.useReducer(((e,n)=>t[e][n]??e),e)}Portal$3.displayName=PORTAL_NAME$4;var Presence=e=>{const{present:t,children:n}=e,r=usePresence(t),o="function"==typeof n?n({present:r.isPresent}):React__namespace.Children.only(n),a=useComposedRefs(r.ref,getElementRef(o));return"function"==typeof n||r.isPresent?React__namespace.cloneElement(o,{ref:a}):null};function usePresence(e){const[t,n]=React__namespace.useState(),r=React__namespace.useRef({}),o=React__namespace.useRef(e),a=React__namespace.useRef("none"),i=e?"mounted":"unmounted",[s,l]=useStateMachine(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return React__namespace.useEffect((()=>{const e=getAnimationName(r.current);a.current="mounted"===s?e:"none"}),[s]),useLayoutEffect2((()=>{const t=r.current,n=o.current;if(n!==e){const r=a.current,i=getAnimationName(t);if(e)l("MOUNT");else if("none"===i||"none"===t?.display)l("UNMOUNT");else{l(n&&r!==i?"ANIMATION_OUT":"UNMOUNT")}o.current=e}}),[e,l]),useLayoutEffect2((()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,i=a=>{const i=getAnimationName(r.current).includes(a.animationName);if(a.target===t&&i&&(l("ANIMATION_END"),!o.current)){const r=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=r)}))}},s=e=>{e.target===t&&(a.current=getAnimationName(r.current))};return t.addEventListener("animationstart",s),t.addEventListener("animationcancel",i),t.addEventListener("animationend",i),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",s),t.removeEventListener("animationcancel",i),t.removeEventListener("animationend",i)}}l("ANIMATION_END")}),[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:React__namespace.useCallback((e=>{e&&(r.current=getComputedStyle(e)),n(e)}),[])}}function getAnimationName(e){return e?.animationName||"none"}function getElementRef(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}Presence.displayName="Presence";var NAME="VisuallyHidden",VisuallyHidden=React__namespace.forwardRef(((e,t)=>jsxRuntime.exports.jsx(Primitive.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}})));VisuallyHidden.displayName=NAME;var Root$1=VisuallyHidden,[createTooltipContext,createTooltipScope]=createContextScope$3("Tooltip",[createPopperScope]),usePopperScope$2=createPopperScope(),PROVIDER_NAME="TooltipProvider",DEFAULT_DELAY_DURATION=700,TOOLTIP_OPEN="tooltip.open",[TooltipProviderContextProvider,useTooltipProviderContext]=createTooltipContext(PROVIDER_NAME),TooltipProvider=e=>{const{__scopeTooltip:t,delayDuration:n=DEFAULT_DELAY_DURATION,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:a}=e,[i,s]=React__namespace.useState(!0),l=React__namespace.useRef(!1),c=React__namespace.useRef(0);return React__namespace.useEffect((()=>{const e=c.current;return()=>window.clearTimeout(e)}),[]),jsxRuntime.exports.jsx(TooltipProviderContextProvider,{scope:t,isOpenDelayed:i,delayDuration:n,onOpen:React__namespace.useCallback((()=>{window.clearTimeout(c.current),s(!1)}),[]),onClose:React__namespace.useCallback((()=>{window.clearTimeout(c.current),c.current=window.setTimeout((()=>s(!0)),r)}),[r]),isPointerInTransitRef:l,onPointerInTransitChange:React__namespace.useCallback((e=>{l.current=e}),[]),disableHoverableContent:o,children:a})};TooltipProvider.displayName=PROVIDER_NAME;var TOOLTIP_NAME="Tooltip",[TooltipContextProvider,useTooltipContext]=createTooltipContext(TOOLTIP_NAME),Tooltip$1=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o=!1,onOpenChange:a,disableHoverableContent:i,delayDuration:s}=e,l=useTooltipProviderContext(TOOLTIP_NAME,e.__scopeTooltip),c=usePopperScope$2(t),[u,d]=React__namespace.useState(null),f=useId(),p=React__namespace.useRef(0),m=i??l.disableHoverableContent,h=s??l.delayDuration,_=React__namespace.useRef(!1),[g=!1,v]=useControllableState$1({prop:r,defaultProp:o,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))):l.onClose(),a?.(e)}}),E=React__namespace.useMemo((()=>g?_.current?"delayed-open":"instant-open":"closed"),[g]),y=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=0,_.current=!1,v(!0)}),[v]),b=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=0,v(!1)}),[v]),C=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=window.setTimeout((()=>{_.current=!0,v(!0),p.current=0}),h)}),[h,v]);return React__namespace.useEffect((()=>()=>{p.current&&(window.clearTimeout(p.current),p.current=0)}),[]),jsxRuntime.exports.jsx(Root2$2,{...c,children:jsxRuntime.exports.jsx(TooltipContextProvider,{scope:t,contentId:f,open:g,stateAttribute:E,trigger:u,onTriggerChange:d,onTriggerEnter:React__namespace.useCallback((()=>{l.isOpenDelayed?C():y()}),[l.isOpenDelayed,C,y]),onTriggerLeave:React__namespace.useCallback((()=>{m?b():(window.clearTimeout(p.current),p.current=0)}),[b,m]),onOpen:y,onClose:b,disableHoverableContent:m,children:n})})};Tooltip$1.displayName=TOOLTIP_NAME;var TRIGGER_NAME$2="TooltipTrigger",TooltipTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,...r}=e,o=useTooltipContext(TRIGGER_NAME$2,n),a=useTooltipProviderContext(TRIGGER_NAME$2,n),i=usePopperScope$2(n),s=useComposedRefs(t,React__namespace.useRef(null),o.onTriggerChange),l=React__namespace.useRef(!1),c=React__namespace.useRef(!1),u=React__namespace.useCallback((()=>l.current=!1),[]);return React__namespace.useEffect((()=>()=>document.removeEventListener("pointerup",u)),[u]),jsxRuntime.exports.jsx(Anchor,{asChild:!0,...i,children:jsxRuntime.exports.jsx(Primitive.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:s,onPointerMove:composeEventHandlers(e.onPointerMove,(e=>{"touch"!==e.pointerType&&(c.current||a.isPointerInTransitRef.current||(o.onTriggerEnter(),c.current=!0))})),onPointerLeave:composeEventHandlers(e.onPointerLeave,(()=>{o.onTriggerLeave(),c.current=!1})),onPointerDown:composeEventHandlers(e.onPointerDown,(()=>{l.current=!0,document.addEventListener("pointerup",u,{once:!0})})),onFocus:composeEventHandlers(e.onFocus,(()=>{l.current||o.onOpen()})),onBlur:composeEventHandlers(e.onBlur,o.onClose),onClick:composeEventHandlers(e.onClick,o.onClose)})})}));TooltipTrigger.displayName=TRIGGER_NAME$2;var PORTAL_NAME$3="TooltipPortal",[PortalProvider$2,usePortalContext$2]=createTooltipContext(PORTAL_NAME$3,{forceMount:void 0}),TooltipPortal=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,a=useTooltipContext(PORTAL_NAME$3,t);return jsxRuntime.exports.jsx(PortalProvider$2,{scope:t,forceMount:n,children:jsxRuntime.exports.jsx(Presence,{present:n||a.open,children:jsxRuntime.exports.jsx(Portal$3,{asChild:!0,container:o,children:r})})})};TooltipPortal.displayName=PORTAL_NAME$3;var CONTENT_NAME$3="TooltipContent",TooltipContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext$2(CONTENT_NAME$3,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...a}=e,i=useTooltipContext(CONTENT_NAME$3,e.__scopeTooltip);return jsxRuntime.exports.jsx(Presence,{present:r||i.open,children:i.disableHoverableContent?jsxRuntime.exports.jsx(TooltipContentImpl,{side:o,...a,ref:t}):jsxRuntime.exports.jsx(TooltipContentHoverable,{side:o,...a,ref:t})})})),TooltipContentHoverable=React__namespace.forwardRef(((e,t)=>{const n=useTooltipContext(CONTENT_NAME$3,e.__scopeTooltip),r=useTooltipProviderContext(CONTENT_NAME$3,e.__scopeTooltip),o=React__namespace.useRef(null),a=useComposedRefs(t,o),[i,s]=React__namespace.useState(null),{trigger:l,onClose:c}=n,u=o.current,{onPointerInTransitChange:d}=r,f=React__namespace.useCallback((()=>{s(null),d(!1)}),[d]),p=React__namespace.useCallback(((e,t)=>{const n=e.currentTarget,r={x:e.clientX,y:e.clientY},o=getHull([...getPaddedExitPoints(r,getExitSideFromRect(r,n.getBoundingClientRect())),...getPointsFromRect(t.getBoundingClientRect())]);s(o),d(!0)}),[d]);return React__namespace.useEffect((()=>()=>f()),[f]),React__namespace.useEffect((()=>{if(l&&u){const e=e=>p(e,u),t=e=>p(e,l);return l.addEventListener("pointerleave",e),u.addEventListener("pointerleave",t),()=>{l.removeEventListener("pointerleave",e),u.removeEventListener("pointerleave",t)}}}),[l,u,p,f]),React__namespace.useEffect((()=>{if(i){const e=e=>{const t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||u?.contains(t),o=!isPointInPolygon$1(n,i);r?f():o&&(f(),c())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}}),[l,u,i,c,f]),jsxRuntime.exports.jsx(TooltipContentImpl,{...e,ref:a})})),[VisuallyHiddenContentContextProvider,useVisuallyHiddenContentContext]=createTooltipContext(TOOLTIP_NAME,{isInside:!1}),TooltipContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:a,onPointerDownOutside:i,...s}=e,l=useTooltipContext(CONTENT_NAME$3,n),c=usePopperScope$2(n),{onClose:u}=l;return React__namespace.useEffect((()=>(document.addEventListener(TOOLTIP_OPEN,u),()=>document.removeEventListener(TOOLTIP_OPEN,u))),[u]),React__namespace.useEffect((()=>{if(l.trigger){const e=e=>{const t=e.target;t?.contains(l.trigger)&&u()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}}),[l.trigger,u]),jsxRuntime.exports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:i,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:jsxRuntime.exports.jsxs(Content,{"data-state":l.stateAttribute,...c,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[jsxRuntime.exports.jsx(Slottable,{children:r}),jsxRuntime.exports.jsx(VisuallyHiddenContentContextProvider,{scope:n,isInside:!0,children:jsxRuntime.exports.jsx(Root$1,{id:l.contentId,role:"tooltip",children:o||r})})]})})}));TooltipContent.displayName=CONTENT_NAME$3;var ARROW_NAME$3="TooltipArrow",TooltipArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,...r}=e,o=usePopperScope$2(n);return useVisuallyHiddenContentContext(ARROW_NAME$3,n).isInside?null:jsxRuntime.exports.jsx(Arrow,{...o,...r,ref:t})}));function getExitSideFromRect(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,o,a)){case a:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function getPaddedExitPoints(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}function getPointsFromRect(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}function isPointInPolygon$1(e,t){const{x:n,y:r}=e;let o=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){const i=t[e].x,s=t[e].y,l=t[a].x,c=t[a].y;s>r!=c>r&&n<(l-i)*(r-s)/(c-s)+i&&(o=!o)}return o}function getHull(e){const t=e.slice();return t.sort(((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0)),getHullPresorted(t)}function getHullPresorted(e){if(e.length<=1)return e.slice();const t=[];for(let n=0;n<e.length;n++){const r=e[n];for(;t.length>=2;){const e=t[t.length-1],n=t[t.length-2];if(!((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x)))break;t.pop()}t.push(r)}t.pop();const n=[];for(let t=e.length-1;t>=0;t--){const r=e[t];for(;n.length>=2;){const e=n[n.length-1],t=n[n.length-2];if(!((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x)))break;n.pop()}n.push(r)}return n.pop(),1===t.length&&1===n.length&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}TooltipArrow.displayName=ARROW_NAME$3;var Root3$1=Tooltip$1,Trigger$1=TooltipTrigger,Portal$2=TooltipPortal,Content2$3=TooltipContent;const KEYS={alt:()=>({title:"Alt",key:"⌥"}),mod:()=>isApple()?{title:"Command",key:"⌘"}:{title:"Ctrl",key:"⌃"},shift:()=>({title:"Shift",key:"⇧"}),enter:()=>({title:"Enter",key:"⏎"})},Tooltip=React.forwardRef((({children:e,content:t,multiline:n,className:r,...o},a)=>{const{portalContainer:i}=useLiveblocksUIConfig();return React__default.default.createElement(Root3$1,{disableHoverableContent:!0},React__default.default.createElement(Trigger$1,{asChild:!0,ref:a},e),React__default.default.createElement(Portal$2,{container:i},React__default.default.createElement(Content2$3,{className:classNames("lb-root lb-portal lb-tooltip",n&&"lb-tooltip:multiline",r),side:"top",align:"center",sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,...o},t)))})),ShortcutTooltip=React.forwardRef((({children:e,content:t,shortcut:n,...r},o)=>React__default.default.createElement(Tooltip,{content:React__default.default.createElement(React__default.default.Fragment,null,t,n&&React__default.default.createElement("kbd",{className:"lb-tooltip-shortcut"},n)),...r,ref:o},e)));function ShortcutTooltipKey({name:e,...t}){const{title:n,key:r}=React.useMemo((()=>KEYS[e]?.()),[e]);return React__default.default.createElement("abbr",{title:n,...t},r)}const MAX_DISPLAYED_MEDIA_SIZE=62914560,fileExtensionRegex=/^(.+?)(\.[^.]+)?$/;function splitFileName(e){const t=e.match(fileExtensionRegex);return{base:t?.[1]??e,extension:t?.[2]}}function getAttachmentIconGlyph(e){return"application/zip"===e||"application/gzip"===e||"application/vnd.rar"===e||"application/x-rar-compressed"===e||"application/x-7z-compressed"===e||"application/x-zip-compressed"===e||"application/x-tar"===e||"application/x-bzip"===e||"application/x-bzip2"===e?React__default.default.createElement("path",{d:"M13 15h2v1h-1.5a.5.5 0 0 0 0 1H15v1h-1.5a.5.5 0 0 0 0 1H15v1h-1.5a.5.5 0 0 0 0 1h1a.5.5 0 0 0 .5-.5V20h1.5a.5.5 0 0 0 0-1H15v-1h1.5a.5.5 0 0 0 0-1H15v-1h1.5a.5.5 0 0 0 .5-.5V15a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2Z"}):e.startsWith("text/")||e.startsWith("font/")||e.startsWith("application/")?React__default.default.createElement("path",{d:"M10 16a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 0 1h-8a.5.5 0 0 1-.5-.5Z"}):e.startsWith("image/")?React__default.default.createElement("path",{d:"M12 16h6a1 1 0 0 1 1 1v3l-1.293-1.293a1 1 0 0 0-1.414 0L14.09 20.91l-.464-.386a1 1 0 0 0-1.265-.013l-1.231.985A.995.995 0 0 1 11 21v-4a1 1 0 0 1 1-1Zm-2 1a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2v-4Zm3 2a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"}):e.startsWith("video/")?React__default.default.createElement("path",{d:"M12 15.71a1 1 0 0 1 1.49-.872l4.96 2.79a1 1 0 0 1 0 1.744l-4.96 2.79A1 1 0 0 1 12 21.29v-5.58Z"}):e.startsWith("audio/")?React__default.default.createElement("path",{d:"M15 15a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 1 0v-7a.5.5 0 0 0-.5-.5Zm-2.5 2.5a.5.5 0 0 1 1 0v3a.5.5 0 0 1-1 0v-3Zm-2 1a.5.5 0 0 1 1 0v1a.5.5 0 0 1-1 0v-1Zm6-1a.5.5 0 0 1 1 0v3a.5.5 0 0 1-1 0v-3ZM19 16a.5.5 0 0 0-.5.5v5a.5.5 0 0 0 1 0v-5a.5.5 0 0 0-.5-.5Z"}):null}const AttachmentFileIcon=React.memo((({mimeType:e})=>{const t=React.useMemo((()=>getAttachmentIconGlyph(e)),[e]);return React__default.default.createElement("svg",{className:"lb-attachment-icon",width:30,height:30,viewBox:"0 0 30 30",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",xmlns:"http://www.w3.org/2000/svg"},React__default.default.createElement("path",{d:"M6 5a2 2 0 0 1 2-2h5.843a4 4 0 0 1 2.829 1.172l6.156 6.156A4 4 0 0 1 24 13.157V25a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V5Z",className:"lb-attachment-icon-shadow"}),React__default.default.createElement("path",{d:"M6 5a2 2 0 0 1 2-2h5.843a4 4 0 0 1 2.829 1.172l6.156 6.156A4 4 0 0 1 24 13.157V25a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V5Z",className:"lb-attachment-icon-background"}),React__default.default.createElement("path",{d:"M14.382 3.037a4 4 0 0 1 2.29 1.135l6.156 6.157a4 4 0 0 1 1.136 2.289A2 2 0 0 0 22 11h-4a2 2 0 0 1-2-2V5a2 2 0 0 0-1.618-1.963Z",className:"lb-attachment-icon-fold"}),t&&React__default.default.createElement("g",{className:"lb-attachment-icon-glyph"},t))}));function AttachmentImagePreview({attachment:e}){const{url:t}=useAttachmentUrl(e.id),[n,r]=React.useState(!1),o=React.useCallback((()=>{r(!0)}),[]);return React__default.default.createElement(React__default.default.Fragment,null,n?null:React__default.default.createElement(SpinnerIcon,null),t?React__default.default.createElement("div",{className:"lb-attachment-preview-media","data-hidden":n?void 0:""},React__default.default.createElement("img",{src:t,loading:"lazy",onLoad:o})):null)}function AttachmentVideoPreview({attachment:e}){const{url:t}=useAttachmentUrl(e.id),[n,r]=React.useState(!1),o=React.useCallback((()=>{r(!0)}),[]);return React__default.default.createElement(React__default.default.Fragment,null,n?null:React__default.default.createElement(SpinnerIcon,null),t?React__default.default.createElement("div",{className:"lb-attachment-preview-media","data-hidden":n?void 0:""},React__default.default.createElement("video",{src:t,onLoadedData:o})):null)}function AttachmentPreview({attachment:e,allowMediaPreview:t=!0}){const n=_useIsInsideRoom(),r="attachment"===e.type||"uploaded"===e.status;if(t&&r&&n&&e.size<=MAX_DISPLAYED_MEDIA_SIZE){if(e.mimeType.startsWith("image/"))return React__default.default.createElement(AttachmentImagePreview,{attachment:e});if(e.mimeType.startsWith("video/"))return React__default.default.createElement(AttachmentVideoPreview,{attachment:e})}return React__default.default.createElement(AttachmentFileIcon,{mimeType:e.mimeType})}function AttachmentName({attachment:e}){const{base:t,extension:n}=React.useMemo((()=>splitFileName(e.name)),[e.name]);return React__default.default.createElement("span",{className:"lb-attachment-name",title:e.name},React__default.default.createElement("span",{className:"lb-attachment-name-base"},t),n&&React__default.default.createElement("span",{className:"lb-attachment-name-extension"},n))}function useClickOnKeyDown(e){return React.useCallback((t=>{if(e?.(t),!t.isDefaultPrevented()&&("Enter"===t.key||" "===t.key)){t.preventDefault();const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});t.target.dispatchEvent(e)}}),[e])}function useAttachmentContent(e,t){const n=useOverrides(t),r=useComposerAttachmentsContextOrNull(),o=Boolean(r),a=r?.maxAttachmentSize,i="localAttachment"===e.type?e.status:void 0,s="uploading"===i,l="error"===i;let c;c="localAttachment"===e.type&&"error"===e.status?e.error instanceof AttachmentTooLargeError?"server"===e.error.origin?n.ATTACHMENT_TOO_LARGE():n.ATTACHMENT_TOO_LARGE(a?formatFileSize(a,n.locale):void 0):n.ATTACHMENT_ERROR(e.error):formatFileSize(e.size,n.locale);return{isUploading:s,isError:l,description:c,deleteLabel:o?n.COMPOSER_REMOVE_ATTACHMENT:n.COMMENT_DELETE_ATTACHMENT}}function MediaAttachment({attachment:e,overrides:t,onClick:n,onDeleteClick:r,preventFocusOnDelete:o,allowMediaPreview:a=!0,className:i,onKeyDown:s,...l}){const{isUploading:c,isError:u,description:d,deleteLabel:f}=useAttachmentContent(e,t),p=React.useCallback((e=>{o&&e.preventDefault()}),[o]),m=useClickOnKeyDown(s);return React__default.default.createElement("div",{className:classNames("lb-attachment lb-media-attachment",i),"data-error":u?"":void 0,...l,role:n?"button":void 0,onClick:n,tabIndex:n?0:-1,onKeyDown:n?m:void 0},React__default.default.createElement("div",{className:"lb-attachment-preview"},c?React__default.default.createElement(SpinnerIcon,null):u?React__default.default.createElement(WarningIcon,null):React__default.default.createElement(AttachmentPreview,{attachment:e,allowMediaPreview:a})),React__default.default.createElement("div",{className:"lb-attachment-details"},React__default.default.createElement(AttachmentName,{attachment:e}),React__default.default.createElement("span",{className:"lb-attachment-description",title:d},d)),r&&React__default.default.createElement(Tooltip,{content:f},React__default.default.createElement("button",{type:"button",className:"lb-attachment-delete",onClick:r,onPointerDown:p,"aria-label":f},React__default.default.createElement(CrossIcon,null))))}function FileAttachment({attachment:e,overrides:t,onClick:n,onDeleteClick:r,preventFocusOnDelete:o,allowMediaPreview:a=!0,className:i,onKeyDown:s,...l}){const{isUploading:c,isError:u,description:d,deleteLabel:f}=useAttachmentContent(e,t),p=React.useCallback((e=>{o&&e.preventDefault()}),[o]),m=useClickOnKeyDown(s);return React__default.default.createElement("div",{className:classNames("lb-attachment lb-file-attachment",i),"data-error":u?"":void 0,...l,role:n?"button":void 0,onClick:n,tabIndex:n?0:-1,onKeyDown:n?m:void 0},React__default.default.createElement("div",{className:"lb-attachment-preview"},c?React__default.default.createElement(SpinnerIcon,null):u?React__default.default.createElement(WarningIcon,null):React__default.default.createElement(AttachmentPreview,{attachment:e,allowMediaPreview:a})),React__default.default.createElement("div",{className:"lb-attachment-details"},React__default.default.createElement(AttachmentName,{attachment:e}),React__default.default.createElement("span",{className:"lb-attachment-description",title:d},d)),r&&React__default.default.createElement(Tooltip,{content:f},React__default.default.createElement("button",{type:"button",className:"lb-attachment-delete",onClick:r,onPointerDown:p,"aria-label":f},React__default.default.createElement(CrossIcon,null))))}function separateMediaAttachments(e){const t=[],n=[];for(const r of e)(r.mimeType.startsWith("image/")||r.mimeType.startsWith("video/"))&&r.size<=MAX_DISPLAYED_MEDIA_SIZE?t.push(r):n.push(r);return{mediaAttachments:t,fileAttachments:n}}function Attribution({className:e,...t}){return React__default.default.createElement("a",{href:"https://liveblocks.io",target:"_blank",rel:"noopener noreferrer",className:classNames("lb-composer-attribution",e),...t},React__default.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 72","aria-label":"Made with Liveblocks"},React__default.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M86 10h-8v50h8V10Zm16 14h-8v36h8V24Zm0-15h-8v9h8V9Zm13 15h-9l12 36h10l13-36h-9l-9 28-8-28Zm44-1c-11 0-18 8-18 19s7 19 18 19c8 0 15-4 17-13h-8c-1 4-5 6-9 6-6 0-9-3-9-10h27c0-10-6-21-18-21Zm0 7c5 0 9 3 9 8h-18c0-5 4-8 9-8Zm42-7c-4 0-8 2-11 6V10h-8v50h8v-5c3 4 7 6 11 6 11 0 16-9 16-19s-5-19-16-19Zm-2 32c-7 0-9-7-9-13s2-13 9-13 9 7 9 13-2 13-9 13Zm32-45h-8v50h8V10Zm24 51c11 0 18-8 18-19s-8-19-18-19c-11 0-19 8-19 19s7 19 19 19Zm0-6c-8 0-10-7-10-13s2-13 10-13c7 0 9 7 9 13s-2 13-9 13Zm39 6c8 0 15-4 17-12l-8-1c-2 4-4 6-9 6-7 0-9-6-9-12s2-12 9-12c5 0 8 3 8 7l9-1c-2-8-9-13-17-13-11 0-18 9-18 19 0 11 7 19 18 19Zm30-14 4-4 10 17h10l-15-23 15-13h-11l-13 13V10h-9v50h9V47Zm39 14c8 0 16-3 16-12 0-8-8-10-15-11-2-1-7-1-7-5 0-3 3-4 6-4 4 0 7 3 7 7l8-1c-1-9-8-12-15-12s-15 3-15 11 9 10 15 11c3 1 8 2 8 5 0 4-4 5-7 5-5 0-8-3-9-7l-8 1c1 8 9 12 16 12ZM41 27H0l12 12v17l29-29ZM20 60h40L48 48V32L20 60Z",fill:"currentColor"})))}function getInitials(e){return e.trim().split(" ").reduce(((e,t,n,r)=>(0!==n&&n!==r.length-1||(e+=t.charAt(0).toLocaleUpperCase()),e)),"")}function Avatar({userId:e,className:t,...n}){const{user:r,isLoading:o}=_useUser(e),a=React.useMemo((()=>r?.name),[r]),i=React.useMemo((()=>r?.avatar),[r]),s=React.useMemo((()=>a?getInitials(a):void 0),[a]),l=React.useMemo((()=>o||r?void 0:getInitials(e)),[o,r,e]);return React__default.default.createElement("div",{className:classNames("lb-avatar",t),"data-loading":o?"":void 0,...n},i&&React__default.default.createElement("img",{className:"lb-avatar-image",src:i,alt:a}),s?React__default.default.createElement("span",{className:"lb-avatar-fallback","aria-hidden":!0},s):l?React__default.default.createElement("span",{className:"lb-avatar-fallback","aria-label":e,title:e},l):null)}const Button=React.forwardRef((({variant:e="default",size:t="default",disableable:n=!0,className:r,...o},a)=>React__default.default.createElement("button",{type:"button",className:classNames("lb-button",!n&&"lb-button:non-disableable",r),"data-variant":e,"data-size":t,...o,ref:a})));var count=0;function useFocusGuards(){React__namespace.useEffect((()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??createFocusGuard()),document.body.insertAdjacentElement("beforeend",e[1]??createFocusGuard()),count++,()=>{1===count&&document.querySelectorAll("[data-radix-focus-guard]").forEach((e=>e.remove())),count--}}),[])}function createFocusGuard(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var AUTOFOCUS_ON_MOUNT="focusScope.autoFocusOnMount",AUTOFOCUS_ON_UNMOUNT="focusScope.autoFocusOnUnmount",EVENT_OPTIONS$1={bubbles:!1,cancelable:!0},FOCUS_SCOPE_NAME="FocusScope",FocusScope=React__namespace.forwardRef(((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[s,l]=React__namespace.useState(null),c=useCallbackRef$1(o),u=useCallbackRef$1(a),d=React__namespace.useRef(null),f=useComposedRefs(t,(e=>l(e))),p=React__namespace.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;React__namespace.useEffect((()=>{if(r){let e=function(e){if(p.paused||!s)return;const t=e.target;s.contains(t)?d.current=t:focus(d.current,{select:!0})},t=function(e){if(p.paused||!s)return;const t=e.relatedTarget;null!==t&&(s.contains(t)||focus(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&focus(s)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}}),[r,s,p.paused]),React__namespace.useEffect((()=>{if(s){focusScopesStack.add(p);const e=document.activeElement;if(!s.contains(e)){const t=new CustomEvent(AUTOFOCUS_ON_MOUNT,EVENT_OPTIONS$1);s.addEventListener(AUTOFOCUS_ON_MOUNT,c),s.dispatchEvent(t),t.defaultPrevented||(focusFirst$2(removeLinks(getTabbableCandidates(s)),{select:!0}),document.activeElement===e&&focus(s))}return()=>{s.removeEventListener(AUTOFOCUS_ON_MOUNT,c),setTimeout((()=>{const t=new CustomEvent(AUTOFOCUS_ON_UNMOUNT,EVENT_OPTIONS$1);s.addEventListener(AUTOFOCUS_ON_UNMOUNT,u),s.dispatchEvent(t),t.defaultPrevented||focus(e??document.body,{select:!0}),s.removeEventListener(AUTOFOCUS_ON_UNMOUNT,u),focusScopesStack.remove(p)}),0)}}}),[s,c,u,p]);const m=React__namespace.useCallback((e=>{if(!n&&!r)return;if(p.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){const t=e.currentTarget,[r,a]=getTabbableEdges(t);r&&a?e.shiftKey||o!==a?e.shiftKey&&o===r&&(e.preventDefault(),n&&focus(a,{select:!0})):(e.preventDefault(),n&&focus(r,{select:!0})):o===t&&e.preventDefault()}}),[n,r,p.paused]);return jsxRuntime.exports.jsx(Primitive.div,{tabIndex:-1,...i,ref:f,onKeyDown:m})}));function focusFirst$2(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(focus(r,{select:t}),document.activeElement!==n)return}function getTabbableEdges(e){const t=getTabbableCandidates(e);return[findVisible(t,e),findVisible(t.reverse(),e)]}function getTabbableCandidates(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function findVisible(e,t){for(const n of e)if(!isHidden(n,{upTo:t}))return n}function isHidden(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function isSelectableInput(e){return e instanceof HTMLInputElement&&"select"in e}function focus(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&isSelectableInput(e)&&t&&e.select()}}FocusScope.displayName=FOCUS_SCOPE_NAME;var focusScopesStack=createFocusScopesStack();function createFocusScopesStack(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=arrayRemove(e,t),e.unshift(t)},remove(t){e=arrayRemove(e,t),e[0]?.resume()}}}function arrayRemove(e,t){const n=[...e],r=n.indexOf(t);return-1!==r&&n.splice(r,1),n}function removeLinks(e){return e.filter((e=>"A"!==e.tagName))}var getDefaultParent=function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={},lockCount=0,unwrapHost=function(e){return e&&(e.host||unwrapHost(e.parentNode))},correctTargets=function(e,t){return t.map((function(t){if(e.contains(t))return t;var n=unwrapHost(t);return n&&e.contains(n)?n:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)})).filter((function(e){return Boolean(e)}))},applyAttributeToOthers=function(e,t,n,r){var o=correctTargets(t,Array.isArray(e)?e:[e]);markerMap[n]||(markerMap[n]=new WeakMap);var a=markerMap[n],i=[],s=new Set,l=new Set(o),c=function(e){e&&!s.has(e)&&(s.add(e),c(e.parentNode))};o.forEach(c);var u=function(e){e&&!l.has(e)&&Array.prototype.forEach.call(e.children,(function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),o=null!==t&&"false"!==t,l=(counterMap.get(e)||0)+1,c=(a.get(e)||0)+1;counterMap.set(e,l),a.set(e,c),i.push(e),1===l&&o&&uncontrolledNodes.set(e,!0),1===c&&e.setAttribute(n,"true"),o||e.setAttribute(r,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}}))};return u(t),s.clear(),lockCount++,function(){i.forEach((function(e){var t=counterMap.get(e)-1,o=a.get(e)-1;counterMap.set(e,t),a.set(e,o),t||(uncontrolledNodes.has(e)||e.removeAttribute(r),uncontrolledNodes.delete(e)),o||e.removeAttribute(n)})),--lockCount||(counterMap=new WeakMap,counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={})}},hideOthers=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||getDefaultParent(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),applyAttributeToOthers(r,o,n,"aria-hidden")):function(){return null}},__assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign.apply(this,arguments)};function __rest(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function __awaiter(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}l((r=r.apply(e,t||[])).next())}))}function __generator(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}function __read(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}function __spreadArray(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var zeroRightClassName="right-scroll-bar-position",fullWidthClassName="width-before-scroll-bar",noScrollbarsClassName="with-scroll-bars-hidden",removedBarSizeVariable="--removed-body-scroll-bar-size";function assignRef(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}function useCallbackRef(e,t){var n=React.useState((function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}}))[0];return n.callback=t,n.facade}var useIsomorphicLayoutEffect="undefined"!=typeof window?React__namespace.useLayoutEffect:React__namespace.useEffect,currentValues=new WeakMap;function useMergeRefs(e,t){var n=useCallbackRef(t||null,(function(t){return e.forEach((function(e){return assignRef(e,t)}))}));return useIsomorphicLayoutEffect((function(){var t=currentValues.get(n);if(t){var r=new Set(t),o=new Set(e),a=n.current;r.forEach((function(e){o.has(e)||assignRef(e,null)})),o.forEach((function(e){r.has(e)||assignRef(e,a)}))}currentValues.set(n,e)}),[e]),n}function ItoI(e){return e}function innerCreateMedium(e,t){void 0===t&&(t=ItoI);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var o=t(e,r);return n.push(o),function(){n=n.filter((function(e){return e!==o}))}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var o=n;n=[],o.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),n={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),n}}}};return o}function createSidecarMedium(e){void 0===e&&(e={});var t=innerCreateMedium(null);return t.options=__assign({async:!0,ssr:!1},e),t}Object.prototype.toString.call("undefined"!=typeof process?process:0);var SideCar$1=function(e){var t=e.sideCar,n=__rest(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return React__namespace.createElement(r,__assign({},n))};function exportSidecar(e,t){return e.useMedium(t),SideCar$1}SideCar$1.isSideCarExport=!0;var effectCar=createSidecarMedium(),nothing=function(){},RemoveScroll=React__namespace.forwardRef((function(e,t){var n=React__namespace.useRef(null),r=React__namespace.useState({onScrollCapture:nothing,onWheelCapture:nothing,onTouchMoveCapture:nothing}),o=r[0],a=r[1],i=e.forwardProps,s=e.children,l=e.className,c=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noIsolation,m=e.inert,h=e.allowPinchZoom,_=e.as,g=void 0===_?"div":_,v=e.gapMode,E=__rest(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),y=f,b=useMergeRefs([n,t]),C=__assign(__assign({},E),o);return React__namespace.createElement(React__namespace.Fragment,null,u&&React__namespace.createElement(y,{sideCar:effectCar,removeScrollBar:c,shards:d,noIsolation:p,inert:m,setCallbacks:a,allowPinchZoom:!!h,lockRef:n,gapMode:v}),i?React__namespace.cloneElement(React__namespace.Children.only(s),__assign(__assign({},C),{ref:b})):React__namespace.createElement(g,__assign({},C,{className:l,ref:b}),s))}));RemoveScroll.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},RemoveScroll.classNames={fullWidth:fullWidthClassName,zeroRight:zeroRightClassName};var getNonce=function(){if("undefined"!=typeof __webpack_nonce__)return __webpack_nonce__};function makeStyleTag(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=getNonce();return t&&e.setAttribute("nonce",t),e}function injectStyles(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function insertStyleTag(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}var stylesheetSingleton=function(){var e=0,t=null;return{add:function(n){0==e&&(t=makeStyleTag())&&(injectStyles(t,n),insertStyleTag(t)),e++},remove:function(){! --e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},styleHookSingleton=function(){var e=stylesheetSingleton();return function(t,n){React__namespace.useEffect((function(){return e.add(t),function(){e.remove()}}),[t&&n])}},styleSingleton=function(){var e=styleHookSingleton();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},zeroGap={left:0,top:0,right:0,gap:0},parse=function(e){return parseInt(e||"",10)||0},getOffset=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[parse(n),parse(r),parse(o)]},getGapWidth=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return zeroGap;var t=getOffset(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat(noScrollbarsClassName," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(s,"px ").concat(r,";\n }\n body[").concat(lockAttribute,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(s,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(zeroRightClassName," {\n right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat(fullWidthClassName," {\n margin-right: ").concat(s,"px ").concat(r,";\n }\n \n .").concat(zeroRightClassName," .").concat(zeroRightClassName," {\n right: 0 ").concat(r,";\n }\n \n .").concat(fullWidthClassName," .").concat(fullWidthClassName," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(lockAttribute,"] {\n ").concat(removedBarSizeVariable,": ").concat(s,"px;\n }\n")},getCurrentUseCounter=function(){var e=parseInt(document.body.getAttribute(lockAttribute)||"0",10);return isFinite(e)?e:0},useLockAttribute=function(){React__namespace.useEffect((function(){return document.body.setAttribute(lockAttribute,(getCurrentUseCounter()+1).toString()),function(){var e=getCurrentUseCounter()-1;e<=0?document.body.removeAttribute(lockAttribute):document.body.setAttribute(lockAttribute,e.toString())}}),[])},RemoveScrollBar=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;useLockAttribute();var a=React__namespace.useMemo((function(){return getGapWidth(o)}),[o]);return React__namespace.createElement(Style,{styles:getStyles(a,!t,o,n?"":"!important")})},passiveSupported=!1;if("undefined"!=typeof window)try{var options=Object.defineProperty({},"passive",{get:function(){return passiveSupported=!0,!0}});window.addEventListener("test",options,options),window.removeEventListener("test",options,options)}catch(e){passiveSupported=!1}var nonPassive=!!passiveSupported&&{passive:!1},alwaysContainsScroll=function(e){return"TEXTAREA"===e.tagName},elementCanBeScrolled=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!alwaysContainsScroll(e)&&"visible"===n[t])},elementCouldBeVScrolled=function(e){return elementCanBeScrolled(e,"overflowY")},elementCouldBeHScrolled=function(e){return elementCanBeScrolled(e,"overflowX")},locationCouldBeScrolled=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),elementCouldBeScrolled(e,r)){var o=getScrollVariables(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},getVScrollVariables=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},getHScrollVariables=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},elementCouldBeScrolled=function(e,t){return"v"===e?elementCouldBeVScrolled(t):elementCouldBeHScrolled(t)},getScrollVariables=function(e,t){return"v"===e?getVScrollVariables(t):getHScrollVariables(t)},getDirectionFactor=function(e,t){return"h"===e&&"rtl"===t?-1:1},handleScroll=function(e,t,n,r,o){var a=getDirectionFactor(e,window.getComputedStyle(t).direction),i=a*r,s=n.target,l=t.contains(s),c=!1,u=i>0,d=0,f=0;do{var p=getScrollVariables(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&elementCouldBeScrolled(e,s)&&(d+=h,f+=m),s=s instanceof ShadowRoot?s.host:s.parentNode}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(u&&(o&&Math.abs(d)<1||!o&&i>d)||!u&&(o&&Math.abs(f)<1||!o&&-i>f))&&(c=!0),c},getTouchXY=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},getDeltaXY=function(e){return[e.deltaX,e.deltaY]},extractRef=function(e){return e&&"current"in e?e.current:e},deltaCompare=function(e,t){return e[0]===t[0]&&e[1]===t[1]},generateStyle=function(e){return"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")},idCounter=0,lockStack=[];function RemoveScrollSideCar(e){var t=React__namespace.useRef([]),n=React__namespace.useRef([0,0]),r=React__namespace.useRef(),o=React__namespace.useState(idCounter++)[0],a=React__namespace.useState(styleSingleton)[0],i=React__namespace.useRef(e);React__namespace.useEffect((function(){i.current=e}),[e]),React__namespace.useEffect((function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=__spreadArray([e.lockRef.current],(e.shards||[]).map(extractRef),!0).filter(Boolean);return t.forEach((function(e){return e.classList.add("allow-interactivity-".concat(o))})),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach((function(e){return e.classList.remove("allow-interactivity-".concat(o))}))}}}),[e.inert,e.lockRef.current,e.shards]);var s=React__namespace.useCallback((function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var o,a=getTouchXY(e),s=n.current,l="deltaX"in e?e.deltaX:s[0]-a[0],c="deltaY"in e?e.deltaY:s[1]-a[1],u=e.target,d=Math.abs(l)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===d&&"range"===u.type)return!1;var f=locationCouldBeScrolled(d,u);if(!f)return!0;if(f?o=d:(o="v"===d?"h":"v",f=locationCouldBeScrolled(d,u)),!f)return!1;if(!r.current&&"changedTouches"in e&&(l||c)&&(r.current=o),!o)return!0;var p=r.current||o;return handleScroll(p,t,e,"h"===p?l:c,!0)}),[]),l=React__namespace.useCallback((function(e){var n=e;if(lockStack.length&&lockStack[lockStack.length-1]===a){var r="deltaY"in n?getDeltaXY(n):getTouchXY(n),o=t.current.filter((function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&deltaCompare(e.delta,r)}))[0];if(o&&o.should)n.cancelable&&n.preventDefault();else if(!o){var l=(i.current.shards||[]).map(extractRef).filter(Boolean).filter((function(e){return e.contains(n.target)}));(l.length>0?s(n,l[0]):!i.current.noIsolation)&&n.cancelable&&n.preventDefault()}}}),[]),c=React__namespace.useCallback((function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:getOutermostShadowParent(r)};t.current.push(a),setTimeout((function(){t.current=t.current.filter((function(e){return e!==a}))}),1)}),[]),u=React__namespace.useCallback((function(e){n.current=getTouchXY(e),r.current=void 0}),[]),d=React__namespace.useCallback((function(t){c(t.type,getDeltaXY(t),t.target,s(t,e.lockRef.current))}),[]),f=React__namespace.useCallback((function(t){c(t.type,getTouchXY(t),t.target,s(t,e.lockRef.current))}),[]);React__namespace.useEffect((function(){return lockStack.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",l,nonPassive),document.addEventListener("touchmove",l,nonPassive),document.addEventListener("touchstart",u,nonPassive),function(){lockStack=lockStack.filter((function(e){return e!==a})),document.removeEventListener("wheel",l,nonPassive),document.removeEventListener("touchmove",l,nonPassive),document.removeEventListener("touchstart",u,nonPassive)}}),[]);var p=e.removeScrollBar,m=e.inert;return React__namespace.createElement(React__namespace.Fragment,null,m?React__namespace.createElement(a,{styles:generateStyle(o)}):null,p?React__namespace.createElement(RemoveScrollBar,{gapMode:e.gapMode}):null)}function getOutermostShadowParent(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var SideCar=exportSidecar(effectCar,RemoveScrollSideCar),ReactRemoveScroll=React__namespace.forwardRef((function(e,t){return React__namespace.createElement(RemoveScroll,__assign({},e,{ref:t,sideCar:SideCar}))}));ReactRemoveScroll.classNames=RemoveScroll.classNames;var POPOVER_NAME="Popover",[createPopoverContext,createPopoverScope]=createContextScope$3(POPOVER_NAME,[createPopperScope]),usePopperScope$1=createPopperScope(),[PopoverProvider,usePopoverContext]=createPopoverContext(POPOVER_NAME),Popover=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:i=!1}=e,s=usePopperScope$1(t),l=React__namespace.useRef(null),[c,u]=React__namespace.useState(!1),[d=!1,f]=useControllableState$1({prop:r,defaultProp:o,onChange:a});return jsxRuntime.exports.jsx(Root2$2,{...s,children:jsxRuntime.exports.jsx(PopoverProvider,{scope:t,contentId:useId(),triggerRef:l,open:d,onOpenChange:f,onOpenToggle:React__namespace.useCallback((()=>f((e=>!e))),[f]),hasCustomAnchor:c,onCustomAnchorAdd:React__namespace.useCallback((()=>u(!0)),[]),onCustomAnchorRemove:React__namespace.useCallback((()=>u(!1)),[]),modal:i,children:n})})};Popover.displayName=POPOVER_NAME;var ANCHOR_NAME$1="PopoverAnchor",PopoverAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...r}=e,o=usePopoverContext(ANCHOR_NAME$1,n),a=usePopperScope$1(n),{onCustomAnchorAdd:i,onCustomAnchorRemove:s}=o;return React__namespace.useEffect((()=>(i(),()=>s())),[i,s]),jsxRuntime.exports.jsx(Anchor,{...a,...r,ref:t})}));PopoverAnchor.displayName=ANCHOR_NAME$1;var TRIGGER_NAME$1="PopoverTrigger",PopoverTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...r}=e,o=usePopoverContext(TRIGGER_NAME$1,n),a=usePopperScope$1(n),i=useComposedRefs(t,o.triggerRef),s=jsxRuntime.exports.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":getState(o.open),...r,ref:i,onClick:composeEventHandlers(e.onClick,o.onOpenToggle)});return o.hasCustomAnchor?s:jsxRuntime.exports.jsx(Anchor,{asChild:!0,...a,children:s})}));PopoverTrigger.displayName=TRIGGER_NAME$1;var PORTAL_NAME$2="PopoverPortal",[PortalProvider$1,usePortalContext$1]=createPopoverContext(PORTAL_NAME$2,{forceMount:void 0}),PopoverPortal=e=>{const{__scopePopover:t,forceMount:n,children:r,container:o}=e,a=usePopoverContext(PORTAL_NAME$2,t);return jsxRuntime.exports.jsx(PortalProvider$1,{scope:t,forceMount:n,children:jsxRuntime.exports.jsx(Presence,{present:n||a.open,children:jsxRuntime.exports.jsx(Portal$3,{asChild:!0,container:o,children:r})})})};PopoverPortal.displayName=PORTAL_NAME$2;var CONTENT_NAME$2="PopoverContent",PopoverContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext$1(CONTENT_NAME$2,e.__scopePopover),{forceMount:r=n.forceMount,...o}=e,a=usePopoverContext(CONTENT_NAME$2,e.__scopePopover);return jsxRuntime.exports.jsx(Presence,{present:r||a.open,children:a.modal?jsxRuntime.exports.jsx(PopoverContentModal,{...o,ref:t}):jsxRuntime.exports.jsx(PopoverContentNonModal,{...o,ref:t})})}));PopoverContent.displayName=CONTENT_NAME$2;var PopoverContentModal=React__namespace.forwardRef(((e,t)=>{const n=usePopoverContext(CONTENT_NAME$2,e.__scopePopover),r=React__namespace.useRef(null),o=useComposedRefs(t,r),a=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=r.current;if(e)return hideOthers(e)}),[]),jsxRuntime.exports.jsx(ReactRemoveScroll,{as:Slot,allowPinchZoom:!0,children:jsxRuntime.exports.jsx(PopoverContentImpl,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,(e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()})),onPointerDownOutside:composeEventHandlers(e.onPointerDownOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;a.current=r}),{checkForDefaultPrevented:!1}),onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1})})})})),PopoverContentNonModal=React__namespace.forwardRef(((e,t)=>{const n=usePopoverContext(CONTENT_NAME$2,e.__scopePopover),r=React__namespace.useRef(!1),o=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(PopoverContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));const a=t.target,i=n.triggerRef.current?.contains(a);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})})),PopoverContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:i,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:u,...d}=e,f=usePopoverContext(CONTENT_NAME$2,n),p=usePopperScope$1(n);return useFocusGuards(),jsxRuntime.exports.jsx(FocusScope,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:jsxRuntime.exports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>f.onOpenChange(!1),children:jsxRuntime.exports.jsx(Content,{"data-state":getState(f.open),role:"dialog",id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})})),CLOSE_NAME="PopoverClose",PopoverClose=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...r}=e,o=usePopoverContext(CLOSE_NAME,n);return jsxRuntime.exports.jsx(Primitive.button,{type:"button",...r,ref:t,onClick:composeEventHandlers(e.onClick,(()=>o.onOpenChange(!1)))})}));PopoverClose.displayName=CLOSE_NAME;var ARROW_NAME$2="PopoverArrow",PopoverArrow=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...r}=e,o=usePopperScope$1(n);return jsxRuntime.exports.jsx(Arrow,{...o,...r,ref:t})}));function getState(e){return e?"open":"closed"}PopoverArrow.displayName=ARROW_NAME$2;var Root2$1=Popover,Trigger=PopoverTrigger,Portal$1=PopoverPortal,Content2$2=PopoverContent;function SearchIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"M9 15A6 6 0 1 0 9 3a6 6 0 0 0 0 12Zm7.5 1.5-3.25-3.25"}))}function EmojiPickerLoading({className:e,...t}){return React__default.default.createElement("div",{className:classNames("lb-loading lb-emoji-picker-loading",e),...t},React__default.default.createElement(SpinnerIcon,null))}function EmojiPickerEmpty({className:e,...t}){const n=useOverrides();return React__default.default.createElement("div",{className:classNames("lb-empty lb-emoji-picker-empty",e),...t},n.EMOJI_PICKER_EMPTY)}function EmojiPickerError({error:e,className:t,...n}){const r=useOverrides();return React__default.default.createElement("div",{className:classNames("lb-error lb-emoji-picker-error",t),...n},r.EMOJI_PICKER_ERROR(e))}function EmojiPickerCategoryHeader({category:e,className:t,...n}){return React__default.default.createElement("div",{className:classNames("lb-emoji-picker-category-header",t),...n},React__default.default.createElement("span",{className:"lb-emoji-picker-category-header-title"},e))}function EmojiPickerGrid({children:e,className:t,...n}){return React__default.default.createElement("div",{className:classNames("lb-emoji-picker-grid",t),...n},e)}function EmojiPickerRow({attributes:e,children:t,className:n,...r}){const o=React.useMemo((()=>0===e.categoryRowIndex),[e.categoryRowIndex]),a=React.useMemo((()=>e.categoryRowIndex===e.categoryRowsCount-1),[e.categoryRowIndex,e.categoryRowsCount]);return React__default.default.createElement("div",{className:classNames("lb-emoji-picker-row",n),"data-first":o?"":void 0,"data-last":a?"":void 0,...r},t)}function EmojiPickerEmoji({emoji:e,className:t,...n}){return React__default.default.createElement("button",{className:classNames("lb-emoji-picker-emoji",t),...n},React__default.default.createElement(Emoji,{emoji:e}))}const EmojiPicker=React.forwardRef((({onEmojiSelect:e,onOpenChange:t,children:n,className:r,...o},a)=>{const[i,s]=React.useState(!1),{portalContainer:l}=useLiveblocksUIConfig(),c=useOverrides(),u=React.useCallback((e=>{s(e),t?.(e)}),[t]),d=React.useCallback((t=>{s(!1),e?.(t)}),[e]);return React__default.default.createElement(Root2$1,{open:i,onOpenChange:u},n,React__default.default.createElement(Portal$1,{container:l},React__default.default.createElement(Content2$2,{side:"top",align:"center",sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,className:classNames("lb-root lb-portal lb-elevation lb-emoji-picker",r),...o,ref:a},React__default.default.createElement(EmojiPickerRoot,{onEmojiSelect:d,locale:c.locale},React__default.default.createElement("div",{className:"lb-emoji-picker-header"},React__default.default.createElement("div",{className:"lb-emoji-picker-search-container"},React__default.default.createElement(EmojiPickerSearch,{className:"lb-emoji-picker-search",placeholder:c.EMOJI_PICKER_SEARCH_PLACEHOLDER,autoFocus:!0}),React__default.default.createElement(SearchIcon,{className:"lb-emoji-picker-search-icon"}))),React__default.default.createElement(EmojiPickerContent,{className:"lb-emoji-picker-content",components:{Loading:EmojiPickerLoading,Empty:EmojiPickerEmpty,Error:EmojiPickerError,CategoryHeader:EmojiPickerCategoryHeader,Grid:EmojiPickerGrid,Row:EmojiPickerRow,Emoji:EmojiPickerEmoji}})))))}));function User({userId:e,replaceSelf:t,className:n,...r}){const o=useCurrentUserId(),{user:a,isLoading:i}=_useUser(e),s=useOverrides(),l=React.useMemo((()=>t&&o===e?s.USER_SELF:a?.name??s.USER_UNKNOWN),[t,o,e,s.USER_SELF,s.USER_UNKNOWN,a?.name]);return React__default.default.createElement("span",{className:classNames("lb-name lb-user",n),"data-loading":i?"":void 0,...r},i?null:l)}function ComposerInsertMentionEditorAction({label:e,tooltipLabel:t,className:n,onClick:r,...o}){const{createMention:a}=useComposer(),i=React.useCallback((e=>{e.preventDefault()}),[]),s=React.useCallback((e=>{r?.(e),e.isDefaultPrevented()||(e.stopPropagation(),a())}),[a,r]);return React__default.default.createElement(Tooltip,{content:t??e},React__default.default.createElement(Button,{className:classNames("lb-composer-editor-action",n),onMouseDown:i,onClick:s,"aria-label":e,...o},React__default.default.createElement(MentionIcon,{className:"lb-button-icon"})))}function ComposerInsertEmojiEditorAction({label:e,tooltipLabel:t,onPickerOpenChange:n,className:r,...o}){const{insertText:a}=useComposer(),i=React.useCallback((e=>{e.preventDefault()}),[]),s=React.useCallback((e=>{e.stopPropagation()}),[]);return React__default.default.createElement(EmojiPicker,{onEmojiSelect:a,onOpenChange:n},React__default.default.createElement(Tooltip,{content:t??e},React__default.default.createElement(PopoverTrigger,{asChild:!0},React__default.default.createElement(Button,{className:classNames("lb-composer-editor-action",r),onMouseDown:i,onClick:s,"aria-label":e,...o},React__default.default.createElement(EmojiIcon,{className:"lb-button-icon"})))))}function ComposerAttachFilesEditorAction({label:e,tooltipLabel:t,className:n,...r}){const o=React.useCallback((e=>{e.preventDefault()}),[]),a=React.useCallback((e=>{e.stopPropagation()}),[]);return React__default.default.createElement(Tooltip,{content:t??e},React__default.default.createElement(ComposerAttachFiles,{asChild:!0},React__default.default.createElement(Button,{className:classNames("lb-composer-editor-action",n),onMouseDown:o,onClick:a,"aria-label":e,...r},React__default.default.createElement(AttachmentIcon,{className:"lb-button-icon"}))))}function ComposerMention({userId:e}){return React__default.default.createElement(ComposerMention$1,{className:"lb-composer-mention"},MENTION_CHARACTER,React__default.default.createElement(User,{userId:e}))}function ComposerMentionSuggestions({userIds:e}){return e.length>0?React__default.default.createElement(ComposerSuggestions,{className:"lb-root lb-portal lb-elevation lb-composer-suggestions lb-composer-mention-suggestions"},React__default.default.createElement(ComposerSuggestionsList,{className:"lb-composer-suggestions-list lb-composer-mention-suggestions-list"},e.map((e=>React__default.default.createElement(ComposerSuggestionsListItem,{key:e,className:"lb-composer-suggestions-list-item lb-composer-mention-suggestion",value:e},React__default.default.createElement(Avatar,{userId:e,className:"lb-composer-mention-suggestion-avatar"}),React__default.default.createElement(User,{userId:e,className:"lb-composer-mention-suggestion-user"})))))):null}function ComposerLink({href:e,children:t}){return React__default.default.createElement(ComposerLink$1,{href:e,className:"lb-composer-link"},t)}function ComposerFileAttachment({attachment:e,className:t,overrides:n,...r}){const{removeAttachment:o}=useComposer(),a=React.useCallback((()=>{o(e.id)}),[e.id,o]);return React__default.default.createElement(FileAttachment,{className:classNames("lb-composer-attachment",t),...r,attachment:e,onDeleteClick:a,preventFocusOnDelete:!0,overrides:n})}function ComposerAttachments({overrides:e,className:t,...n}){const{attachments:r}=useComposer();return 0===r.length?null:React__default.default.createElement("div",{className:classNames("lb-composer-attachments",t),...n},React__default.default.createElement("div",{className:"lb-attachments"},r.map((t=>React__default.default.createElement(ComposerFileAttachment,{key:t.id,attachment:t,overrides:e})))))}const editorComponents={Mention:ComposerMention,MentionSuggestions:ComposerMentionSuggestions,Link:ComposerLink};function ComposerEditorContainer({showAttachments:e=!0,showAttribution:t,defaultValue:n,isCollapsed:r,overrides:o,actions:a,autoFocus:i,disabled:s,hasResolveMentionSuggestions:l,onEmojiPickerOpenChange:c,onEmptyChange:u,onEditorClick:d}){const{isEmpty:f}=useComposer(),{hasMaxAttachments:p}=useComposerAttachmentsContext(),m=useOverrides(o),[h,_]=useComposerAttachmentsDropArea({disabled:s||p});useLayoutEffect((()=>{u(f)}),[f,u]);const g=React.useCallback((e=>{e.preventDefault()}),[]),v=React.useCallback((e=>{e.stopPropagation()}),[]);return React__default.default.createElement("div",{className:"lb-composer-editor-container",..._},React__default.default.createElement(ComposerEditor,{className:"lb-composer-editor",onClick:d,placeholder:m.COMPOSER_PLACEHOLDER,defaultValue:n,autoFocus:i,components:editorComponents,disabled:s,dir:m.dir}),e&&React__default.default.createElement(ComposerAttachments,{overrides:o}),(!r||h)&&React__default.default.createElement("div",{className:"lb-composer-footer"},React__default.default.createElement("div",{className:"lb-composer-editor-actions"},l&&React__default.default.createElement(ComposerInsertMentionEditorAction,{label:m.COMPOSER_INSERT_MENTION,disabled:s}),React__default.default.createElement(ComposerInsertEmojiEditorAction,{label:m.COMPOSER_INSERT_EMOJI,onPickerOpenChange:c,disabled:s}),e&&React__default.default.createElement(ComposerAttachFilesEditorAction,{label:m.COMPOSER_ATTACH_FILES,disabled:s})),t&&React__default.default.createElement(Attribution,null),React__default.default.createElement("div",{className:"lb-composer-actions"},a??React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ShortcutTooltip,{content:m.COMPOSER_SEND,shortcut:React__default.default.createElement(ShortcutTooltipKey,{name:"enter"})},React__default.default.createElement(ComposerSubmit,{asChild:!0},React__default.default.createElement(Button,{onMouseDown:g,onClick:v,className:"lb-composer-action",variant:"primary","aria-label":m.COMPOSER_SEND},React__default.default.createElement(SendIcon,null))))))),e&&h&&React__default.default.createElement("div",{className:"lb-composer-attachments-drop-area"},React__default.default.createElement("div",{className:"lb-composer-attachments-drop-area-label"},React__default.default.createElement(AttachmentIcon,null),m.COMPOSER_ATTACH_FILES)))}const Composer=React.forwardRef((({threadId:e,commentId:t,metadata:n,defaultValue:r,defaultAttachments:o,onComposerSubmit:a,collapsed:i,defaultCollapsed:s,onCollapsedChange:l,overrides:c,actions:u,onBlur:d,className:f,onFocus:p,autoFocus:m,disabled:h,showAttachments:_=!0,showAttribution:g,...v},E)=>{const y=useClient(),b=_useCreateThread(),C=useCreateComment(),R=useEditComment(),{preventUnsavedComposerChanges:w}=useLiveblocksUIConfig(),S=void 0!==y[kInternal].resolveMentionSuggestions,D=React.useRef(!0),T=React.useRef(!1),O=useOverrides(c),[A,I]=useControllableState((void 0!==i||void 0!==s)&&i,l,s),x=React.useCallback((e=>{D.current=e}),[]),N=React.useCallback((e=>{T.current=e}),[]),F=React.useCallback((e=>{p?.(e),e.isDefaultPrevented()||D.current&&I?.(!1)}),[I,p]),P=React.useCallback((e=>{if(d?.(e),e.isDefaultPrevented())return;!e.currentTarget.contains(e.relatedTarget??document.activeElement)&&D.current&&!T.current&&I?.(!0)}),[d,I]),k=React.useCallback((e=>{e.stopPropagation(),D.current&&I?.(!1)}),[I]),$=React.useCallback(((r,o)=>{a?.(r,o),o.isDefaultPrevented()||(t&&e?R({commentId:t,threadId:e,body:r.body,attachments:r.attachments}):e?C({threadId:e,body:r.body,attachments:r.attachments}):b({body:r.body,metadata:n??{},attachments:r.attachments}))}),[t,C,b,R,n,a,e]);return React__default.default.createElement(TooltipProvider,null,React__default.default.createElement(ComposerForm,{onComposerSubmit:$,className:classNames("lb-root lb-composer lb-composer-form",f),dir:O.dir,...v,ref:E,"data-collapsed":A?"":void 0,onFocus:F,onBlur:P,disabled:h,defaultAttachments:o,pasteFilesAsAttachments:_,preventUnsavedChanges:w},React__default.default.createElement(ComposerEditorContainer,{defaultValue:r,actions:u,overrides:c,isCollapsed:A,showAttachments:_,showAttribution:g,hasResolveMentionSuggestions:S,onEmptyChange:x,onEmojiPickerOpenChange:N,onEditorClick:k,autoFocus:m,disabled:h})))}));function createContextScope$1(e,t=[]){let n=[];const r=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const r=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return r.scopeName=e,[function(t,r){const o=React__namespace.createContext(r),a=n.length;function i(t){const{scope:n,children:r,...i}=t,s=n?.[e][a]||o,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:r})}return n=[...n,r],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||o,l=React__namespace.useContext(s);if(l)return l;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$1(r,...t)]}function composeContextScopes$1(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}function createCollection(e){const t=e+"CollectionProvider",[n,r]=createContextScope$1(t),[o,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{const{scope:t,children:n}=e,r=React__default.default.useRef(null),a=React__default.default.useRef(new Map).current;return jsxRuntime.exports.jsx(o,{scope:t,itemMap:a,collectionRef:r,children:n})};i.displayName=t;const s=e+"CollectionSlot",l=React__default.default.forwardRef(((e,t)=>{const{scope:n,children:r}=e,o=useComposedRefs(t,a(s,n).collectionRef);return jsxRuntime.exports.jsx(Slot,{ref:o,children:r})}));l.displayName=s;const c=e+"CollectionItemSlot",u="data-radix-collection-item",d=React__default.default.forwardRef(((e,t)=>{const{scope:n,children:r,...o}=e,i=React__default.default.useRef(null),s=useComposedRefs(t,i),l=a(c,n);return React__default.default.useEffect((()=>(l.itemMap.set(i,{ref:i,...o}),()=>{l.itemMap.delete(i)}))),jsxRuntime.exports.jsx(Slot,{[u]:"",ref:s,children:r})}));return d.displayName=c,[{Provider:i,Slot:l,ItemSlot:d},function(t){const n=a(e+"CollectionConsumer",t);return React__default.default.useCallback((()=>{const e=n.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${u}]`));return Array.from(n.itemMap.values()).sort(((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current)))}),[n.collectionRef,n.itemMap])},r]}var DirectionContext=React__namespace.createContext(void 0);function useDirection(e){const t=React__namespace.useContext(DirectionContext);return e||t||"ltr"}function createContextScope(e,t=[]){let n=[];const r=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const r=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return r.scopeName=e,[function(t,r){const o=React__namespace.createContext(r),a=n.length;function i(t){const{scope:n,children:r,...i}=t,s=n?.[e][a]||o,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:r})}return n=[...n,r],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||o,l=React__namespace.useContext(s);if(l)return l;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes(r,...t)]}function composeContextScopes(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}var ENTRY_FOCUS="rovingFocusGroup.onEntryFocus",EVENT_OPTIONS={bubbles:!1,cancelable:!0},GROUP_NAME$2="RovingFocusGroup",[Collection$1,useCollection$1,createCollectionScope$1]=createCollection(GROUP_NAME$2),[createRovingFocusGroupContext,createRovingFocusGroupScope]=createContextScope(GROUP_NAME$2,[createCollectionScope$1]),[RovingFocusProvider,useRovingFocusContext]=createRovingFocusGroupContext(GROUP_NAME$2),RovingFocusGroup=React__namespace.forwardRef(((e,t)=>jsxRuntime.exports.jsx(Collection$1.Provider,{scope:e.__scopeRovingFocusGroup,children:jsxRuntime.exports.jsx(Collection$1.Slot,{scope:e.__scopeRovingFocusGroup,children:jsxRuntime.exports.jsx(RovingFocusGroupImpl,{...e,ref:t})})})));RovingFocusGroup.displayName=GROUP_NAME$2;var RovingFocusGroupImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:a,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:c,preventScrollOnEntryFocus:u=!1,...d}=e,f=React__namespace.useRef(null),p=useComposedRefs(t,f),m=useDirection(a),[h=null,_]=useControllableState$1({prop:i,defaultProp:s,onChange:l}),[g,v]=React__namespace.useState(!1),E=useCallbackRef$1(c),y=useCollection$1(n),b=React__namespace.useRef(!1),[C,R]=React__namespace.useState(0);return React__namespace.useEffect((()=>{const e=f.current;if(e)return e.addEventListener(ENTRY_FOCUS,E),()=>e.removeEventListener(ENTRY_FOCUS,E)}),[E]),jsxRuntime.exports.jsx(RovingFocusProvider,{scope:n,orientation:r,dir:m,loop:o,currentTabStopId:h,onItemFocus:React__namespace.useCallback((e=>_(e)),[_]),onItemShiftTab:React__namespace.useCallback((()=>v(!0)),[]),onFocusableItemAdd:React__namespace.useCallback((()=>R((e=>e+1))),[]),onFocusableItemRemove:React__namespace.useCallback((()=>R((e=>e-1))),[]),children:jsxRuntime.exports.jsx(Primitive.div,{tabIndex:g||0===C?-1:0,"data-orientation":r,...d,ref:p,style:{outline:"none",...e.style},onMouseDown:composeEventHandlers(e.onMouseDown,(()=>{b.current=!0})),onFocus:composeEventHandlers(e.onFocus,(e=>{const t=!b.current;if(e.target===e.currentTarget&&t&&!g){const t=new CustomEvent(ENTRY_FOCUS,EVENT_OPTIONS);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=y().filter((e=>e.focusable));focusFirst$1([e.find((e=>e.active)),e.find((e=>e.id===h)),...e].filter(Boolean).map((e=>e.ref.current)),u)}}b.current=!1})),onBlur:composeEventHandlers(e.onBlur,(()=>v(!1)))})})})),ITEM_NAME$2="RovingFocusGroupItem",RovingFocusGroupItem=React__namespace.forwardRef(((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:a,...i}=e,s=useId(),l=a||s,c=useRovingFocusContext(ITEM_NAME$2,n),u=c.currentTabStopId===l,d=useCollection$1(n),{onFocusableItemAdd:f,onFocusableItemRemove:p}=c;return React__namespace.useEffect((()=>{if(r)return f(),()=>p()}),[r,f,p]),jsxRuntime.exports.jsx(Collection$1.ItemSlot,{scope:n,id:l,focusable:r,active:o,children:jsxRuntime.exports.jsx(Primitive.span,{tabIndex:u?0:-1,"data-orientation":c.orientation,...i,ref:t,onMouseDown:composeEventHandlers(e.onMouseDown,(e=>{r?c.onItemFocus(l):e.preventDefault()})),onFocus:composeEventHandlers(e.onFocus,(()=>c.onItemFocus(l))),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void c.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=getFocusIntent(e,c.orientation,c.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=d().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===t)n.reverse();else if("prev"===t||"next"===t){"prev"===t&&n.reverse();const r=n.indexOf(e.currentTarget);n=c.loop?wrapArray$1(n,r+1):n.slice(r+1)}setTimeout((()=>focusFirst$1(n)))}}))})})}));RovingFocusGroupItem.displayName=ITEM_NAME$2;var MAP_KEY_TO_FOCUS_INTENT={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function getDirectionAwareKey(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}function getFocusIntent(e,t,n){const r=getDirectionAwareKey(e.key,n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(r)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(r)))return MAP_KEY_TO_FOCUS_INTENT[r]}function focusFirst$1(e,t=!1){const n=document.activeElement;for(const r of e){if(r===n)return;if(r.focus({preventScroll:t}),document.activeElement!==n)return}}function wrapArray$1(e,t){return e.map(((n,r)=>e[(t+r)%e.length]))}var Root=RovingFocusGroup,Item=RovingFocusGroupItem,SELECTION_KEYS=["Enter"," "],FIRST_KEYS=["ArrowDown","PageUp","Home"],LAST_KEYS=["ArrowUp","PageDown","End"],FIRST_LAST_KEYS=[...FIRST_KEYS,...LAST_KEYS],SUB_OPEN_KEYS={ltr:[...SELECTION_KEYS,"ArrowRight"],rtl:[...SELECTION_KEYS,"ArrowLeft"]},SUB_CLOSE_KEYS={ltr:["ArrowLeft"],rtl:["ArrowRight"]},MENU_NAME="Menu",[Collection,useCollection,createCollectionScope]=createCollection(MENU_NAME),[createMenuContext,createMenuScope]=createContextScope$3(MENU_NAME,[createCollectionScope,createPopperScope,createRovingFocusGroupScope]),usePopperScope=createPopperScope(),useRovingFocusGroupScope=createRovingFocusGroupScope(),[MenuProvider,useMenuContext]=createMenuContext(MENU_NAME),[MenuRootProvider,useMenuRootContext]=createMenuContext(MENU_NAME),Menu=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:o,onOpenChange:a,modal:i=!0}=e,s=usePopperScope(t),[l,c]=React__namespace.useState(null),u=React__namespace.useRef(!1),d=useCallbackRef$1(a),f=useDirection(o);return React__namespace.useEffect((()=>{const e=()=>{u.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>u.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}}),[]),jsxRuntime.exports.jsx(Root2$2,{...s,children:jsxRuntime.exports.jsx(MenuProvider,{scope:t,open:n,onOpenChange:d,content:l,onContentChange:c,children:jsxRuntime.exports.jsx(MenuRootProvider,{scope:t,onClose:React__namespace.useCallback((()=>d(!1)),[d]),isUsingKeyboardRef:u,dir:f,modal:i,children:r})})})};Menu.displayName=MENU_NAME;var ANCHOR_NAME="MenuAnchor",MenuAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...r}=e,o=usePopperScope(n);return jsxRuntime.exports.jsx(Anchor,{...o,...r,ref:t})}));MenuAnchor.displayName=ANCHOR_NAME;var PORTAL_NAME$1="MenuPortal",[PortalProvider,usePortalContext]=createMenuContext(PORTAL_NAME$1,{forceMount:void 0}),MenuPortal=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:o}=e,a=useMenuContext(PORTAL_NAME$1,t);return jsxRuntime.exports.jsx(PortalProvider,{scope:t,forceMount:n,children:jsxRuntime.exports.jsx(Presence,{present:n||a.open,children:jsxRuntime.exports.jsx(Portal$3,{asChild:!0,container:o,children:r})})})};MenuPortal.displayName=PORTAL_NAME$1;var CONTENT_NAME$1="MenuContent",[MenuContentProvider,useMenuContentContext]=createMenuContext(CONTENT_NAME$1),MenuContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext(CONTENT_NAME$1,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,a=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),i=useMenuRootContext(CONTENT_NAME$1,e.__scopeMenu);return jsxRuntime.exports.jsx(Collection.Provider,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(Presence,{present:r||a.open,children:jsxRuntime.exports.jsx(Collection.Slot,{scope:e.__scopeMenu,children:i.modal?jsxRuntime.exports.jsx(MenuRootContentModal,{...o,ref:t}):jsxRuntime.exports.jsx(MenuRootContentNonModal,{...o,ref:t})})})})})),MenuRootContentModal=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),r=React__namespace.useRef(null),o=useComposedRefs(t,r);return React__namespace.useEffect((()=>{const e=r.current;if(e)return hideOthers(e)}),[]),jsxRuntime.exports.jsx(MenuContentImpl,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})})),MenuRootContentNonModal=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(CONTENT_NAME$1,e.__scopeMenu);return jsxRuntime.exports.jsx(MenuContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})})),MenuContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:m,...h}=e,_=useMenuContext(CONTENT_NAME$1,n),g=useMenuRootContext(CONTENT_NAME$1,n),v=usePopperScope(n),E=useRovingFocusGroupScope(n),y=useCollection(n),[b,C]=React__namespace.useState(null),R=React__namespace.useRef(null),w=useComposedRefs(t,R,_.onContentChange),S=React__namespace.useRef(0),D=React__namespace.useRef(""),T=React__namespace.useRef(0),O=React__namespace.useRef(null),A=React__namespace.useRef("right"),I=React__namespace.useRef(0),x=m?ReactRemoveScroll:React__namespace.Fragment,N=m?{as:Slot,allowPinchZoom:!0}:void 0;React__namespace.useEffect((()=>()=>window.clearTimeout(S.current)),[]),useFocusGuards();const F=React__namespace.useCallback((e=>A.current===O.current?.side&&isPointerInGraceArea(e,O.current?.area)),[]);return jsxRuntime.exports.jsx(MenuContentProvider,{scope:n,searchRef:D,onItemEnter:React__namespace.useCallback((e=>{F(e)&&e.preventDefault()}),[F]),onItemLeave:React__namespace.useCallback((e=>{F(e)||(R.current?.focus(),C(null))}),[F]),onTriggerLeave:React__namespace.useCallback((e=>{F(e)&&e.preventDefault()}),[F]),pointerGraceTimerRef:T,onPointerGraceIntentChange:React__namespace.useCallback((e=>{O.current=e}),[]),children:jsxRuntime.exports.jsx(x,{...N,children:jsxRuntime.exports.jsx(FocusScope,{asChild:!0,trapped:o,onMountAutoFocus:composeEventHandlers(a,(e=>{e.preventDefault(),R.current?.focus({preventScroll:!0})})),onUnmountAutoFocus:i,children:jsxRuntime.exports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,children:jsxRuntime.exports.jsx(Root,{asChild:!0,...E,dir:g.dir,orientation:"vertical",loop:r,currentTabStopId:b,onCurrentTabStopIdChange:C,onEntryFocus:composeEventHandlers(l,(e=>{g.isUsingKeyboardRef.current||e.preventDefault()})),preventScrollOnEntryFocus:!0,children:jsxRuntime.exports.jsx(Content,{role:"menu","aria-orientation":"vertical","data-state":getOpenState(_.open),"data-radix-menu-content":"",dir:g.dir,...v,...h,ref:w,style:{outline:"none",...h.style},onKeyDown:composeEventHandlers(h.onKeyDown,(e=>{const t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&r&&(e=>{const t=D.current+e,n=y().filter((e=>!e.disabled)),r=document.activeElement,o=n.find((e=>e.ref.current===r))?.textValue,a=getNextMatch(n.map((e=>e.textValue)),t,o),i=n.find((e=>e.textValue===a))?.ref.current;!function e(t){D.current=t,window.clearTimeout(S.current),""!==t&&(S.current=window.setTimeout((()=>e("")),1e3))}(t),i&&setTimeout((()=>i.focus()))})(e.key));const o=R.current;if(e.target!==o)return;if(!FIRST_LAST_KEYS.includes(e.key))return;e.preventDefault();const a=y().filter((e=>!e.disabled)).map((e=>e.ref.current));LAST_KEYS.includes(e.key)&&a.reverse(),focusFirst(a)})),onBlur:composeEventHandlers(e.onBlur,(e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(S.current),D.current="")})),onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((e=>{const t=e.target,n=I.current!==e.clientX;if(e.currentTarget.contains(t)&&n){const t=e.clientX>I.current?"right":"left";A.current=t,I.current=e.clientX}})))})})})})})})}));MenuContent.displayName=CONTENT_NAME$1;var GROUP_NAME$1="MenuGroup",MenuGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...r}=e;return jsxRuntime.exports.jsx(Primitive.div,{role:"group",...r,ref:t})}));MenuGroup.displayName=GROUP_NAME$1;var LABEL_NAME$1="MenuLabel",MenuLabel=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...r}=e;return jsxRuntime.exports.jsx(Primitive.div,{...r,ref:t})}));MenuLabel.displayName=LABEL_NAME$1;var ITEM_NAME$1="MenuItem",ITEM_SELECT="menu.itemSelect",MenuItem=React__namespace.forwardRef(((e,t)=>{const{disabled:n=!1,onSelect:r,...o}=e,a=React__namespace.useRef(null),i=useMenuRootContext(ITEM_NAME$1,e.__scopeMenu),s=useMenuContentContext(ITEM_NAME$1,e.__scopeMenu),l=useComposedRefs(t,a),c=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(MenuItemImpl,{...o,ref:l,disabled:n,onClick:composeEventHandlers(e.onClick,(()=>{const e=a.current;if(!n&&e){const t=new CustomEvent(ITEM_SELECT,{bubbles:!0,cancelable:!0});e.addEventListener(ITEM_SELECT,(e=>r?.(e)),{once:!0}),dispatchDiscreteCustomEvent(e,t),t.defaultPrevented?c.current=!1:i.onClose()}})),onPointerDown:t=>{e.onPointerDown?.(t),c.current=!0},onPointerUp:composeEventHandlers(e.onPointerUp,(e=>{c.current||e.currentTarget?.click()})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{const t=""!==s.searchRef.current;n||t&&" "===e.key||SELECTION_KEYS.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())}))})}));MenuItem.displayName=ITEM_NAME$1;var MenuItemImpl=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:o,...a}=e,i=useMenuContentContext(ITEM_NAME$1,n),s=useRovingFocusGroupScope(n),l=React__namespace.useRef(null),c=useComposedRefs(t,l),[u,d]=React__namespace.useState(!1),[f,p]=React__namespace.useState("");return React__namespace.useEffect((()=>{const e=l.current;e&&p((e.textContent??"").trim())}),[a.children]),jsxRuntime.exports.jsx(Collection.ItemSlot,{scope:n,disabled:r,textValue:o??f,children:jsxRuntime.exports.jsx(Item,{asChild:!0,...s,focusable:!r,children:jsxRuntime.exports.jsx(Primitive.div,{role:"menuitem","data-highlighted":u?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...a,ref:c,onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((e=>{if(r)i.onItemLeave(e);else if(i.onItemEnter(e),!e.defaultPrevented){e.currentTarget.focus({preventScroll:!0})}}))),onPointerLeave:composeEventHandlers(e.onPointerLeave,whenMouse((e=>i.onItemLeave(e)))),onFocus:composeEventHandlers(e.onFocus,(()=>d(!0))),onBlur:composeEventHandlers(e.onBlur,(()=>d(!1)))})})})})),CHECKBOX_ITEM_NAME$1="MenuCheckboxItem",MenuCheckboxItem=React__namespace.forwardRef(((e,t)=>{const{checked:n=!1,onCheckedChange:r,...o}=e;return jsxRuntime.exports.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:n,children:jsxRuntime.exports.jsx(MenuItem,{role:"menuitemcheckbox","aria-checked":isIndeterminate(n)?"mixed":n,...o,ref:t,"data-state":getCheckedState(n),onSelect:composeEventHandlers(o.onSelect,(()=>r?.(!!isIndeterminate(n)||!n)),{checkForDefaultPrevented:!1})})})}));MenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME$1;var RADIO_GROUP_NAME$1="MenuRadioGroup",[RadioGroupProvider,useRadioGroupContext]=createMenuContext(RADIO_GROUP_NAME$1,{value:void 0,onValueChange:()=>{}}),MenuRadioGroup=React__namespace.forwardRef(((e,t)=>{const{value:n,onValueChange:r,...o}=e,a=useCallbackRef$1(r);return jsxRuntime.exports.jsx(RadioGroupProvider,{scope:e.__scopeMenu,value:n,onValueChange:a,children:jsxRuntime.exports.jsx(MenuGroup,{...o,ref:t})})}));MenuRadioGroup.displayName=RADIO_GROUP_NAME$1;var RADIO_ITEM_NAME$1="MenuRadioItem",MenuRadioItem=React__namespace.forwardRef(((e,t)=>{const{value:n,...r}=e,o=useRadioGroupContext(RADIO_ITEM_NAME$1,e.__scopeMenu),a=n===o.value;return jsxRuntime.exports.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:a,children:jsxRuntime.exports.jsx(MenuItem,{role:"menuitemradio","aria-checked":a,...r,ref:t,"data-state":getCheckedState(a),onSelect:composeEventHandlers(r.onSelect,(()=>o.onValueChange?.(n)),{checkForDefaultPrevented:!1})})})}));MenuRadioItem.displayName=RADIO_ITEM_NAME$1;var ITEM_INDICATOR_NAME="MenuItemIndicator",[ItemIndicatorProvider,useItemIndicatorContext]=createMenuContext(ITEM_INDICATOR_NAME,{checked:!1}),MenuItemIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,forceMount:r,...o}=e,a=useItemIndicatorContext(ITEM_INDICATOR_NAME,n);return jsxRuntime.exports.jsx(Presence,{present:r||isIndeterminate(a.checked)||!0===a.checked,children:jsxRuntime.exports.jsx(Primitive.span,{...o,ref:t,"data-state":getCheckedState(a.checked)})})}));MenuItemIndicator.displayName=ITEM_INDICATOR_NAME;var SEPARATOR_NAME$1="MenuSeparator",MenuSeparator=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...r}=e;return jsxRuntime.exports.jsx(Primitive.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})}));MenuSeparator.displayName=SEPARATOR_NAME$1;var ARROW_NAME$1="MenuArrow",MenuArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...r}=e,o=usePopperScope(n);return jsxRuntime.exports.jsx(Arrow,{...o,...r,ref:t})}));MenuArrow.displayName=ARROW_NAME$1;var SUB_NAME="MenuSub",[MenuSubProvider,useMenuSubContext]=createMenuContext(SUB_NAME),SUB_TRIGGER_NAME$1="MenuSubTrigger",MenuSubTrigger=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),r=useMenuRootContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),o=useMenuSubContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),a=useMenuContentContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),i=React__namespace.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:l}=a,c={__scopeMenu:e.__scopeMenu},u=React__namespace.useCallback((()=>{i.current&&window.clearTimeout(i.current),i.current=null}),[]);return React__namespace.useEffect((()=>u),[u]),React__namespace.useEffect((()=>{const e=s.current;return()=>{window.clearTimeout(e),l(null)}}),[s,l]),jsxRuntime.exports.jsx(MenuAnchor,{asChild:!0,...c,children:jsxRuntime.exports.jsx(MenuItemImpl,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":o.contentId,"data-state":getOpenState(n.open),...e,ref:composeRefs(t,o.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((t=>{a.onItemEnter(t),t.defaultPrevented||e.disabled||n.open||i.current||(a.onPointerGraceIntentChange(null),i.current=window.setTimeout((()=>{n.onOpenChange(!0),u()}),100))}))),onPointerLeave:composeEventHandlers(e.onPointerLeave,whenMouse((e=>{u();const t=n.content?.getBoundingClientRect();if(t){const r=n.content?.dataset.side,o="right"===r,i=o?-5:5,l=t[o?"left":"right"],c=t[o?"right":"left"];a.onPointerGraceIntentChange({area:[{x:e.clientX+i,y:e.clientY},{x:l,y:t.top},{x:c,y:t.top},{x:c,y:t.bottom},{x:l,y:t.bottom}],side:r}),window.clearTimeout(s.current),s.current=window.setTimeout((()=>a.onPointerGraceIntentChange(null)),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}}))),onKeyDown:composeEventHandlers(e.onKeyDown,(t=>{const o=""!==a.searchRef.current;e.disabled||o&&" "===t.key||SUB_OPEN_KEYS[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())}))})})}));MenuSubTrigger.displayName=SUB_TRIGGER_NAME$1;var SUB_CONTENT_NAME$1="MenuSubContent",MenuSubContent=React__namespace.forwardRef(((e,t)=>{const n=usePortalContext(CONTENT_NAME$1,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,a=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),i=useMenuRootContext(CONTENT_NAME$1,e.__scopeMenu),s=useMenuSubContext(SUB_CONTENT_NAME$1,e.__scopeMenu),l=React__namespace.useRef(null),c=useComposedRefs(t,l);return jsxRuntime.exports.jsx(Collection.Provider,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(Presence,{present:r||a.open,children:jsxRuntime.exports.jsx(Collection.Slot,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(MenuContentImpl,{id:s.contentId,"aria-labelledby":s.triggerId,...o,ref:c,align:"start",side:"rtl"===i.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{i.isUsingKeyboardRef.current&&l.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>{e.target!==s.trigger&&a.onOpenChange(!1)})),onEscapeKeyDown:composeEventHandlers(e.onEscapeKeyDown,(e=>{i.onClose(),e.preventDefault()})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{const t=e.currentTarget.contains(e.target),n=SUB_CLOSE_KEYS[i.dir].includes(e.key);t&&n&&(a.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())}))})})})})}));function getOpenState(e){return e?"open":"closed"}function isIndeterminate(e){return"indeterminate"===e}function getCheckedState(e){return isIndeterminate(e)?"indeterminate":e?"checked":"unchecked"}function focusFirst(e){const t=document.activeElement;for(const n of e){if(n===t)return;if(n.focus(),document.activeElement!==t)return}}function wrapArray(e,t){return e.map(((n,r)=>e[(t+r)%e.length]))}function getNextMatch(e,t,n){const r=t.length>1&&Array.from(t).every((e=>e===t[0]))?t[0]:t,o=n?e.indexOf(n):-1;let a=wrapArray(e,Math.max(o,0));1===r.length&&(a=a.filter((e=>e!==n)));const i=a.find((e=>e.toLowerCase().startsWith(r.toLowerCase())));return i!==n?i:void 0}function isPointInPolygon(e,t){const{x:n,y:r}=e;let o=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){const i=t[e].x,s=t[e].y,l=t[a].x,c=t[a].y;s>r!=c>r&&n<(l-i)*(r-s)/(c-s)+i&&(o=!o)}return o}function isPointerInGraceArea(e,t){if(!t)return!1;return isPointInPolygon({x:e.clientX,y:e.clientY},t)}function whenMouse(e){return t=>"mouse"===t.pointerType?e(t):void 0}MenuSubContent.displayName=SUB_CONTENT_NAME$1;var Root3=Menu,Anchor2=MenuAnchor,Portal=MenuPortal,Content2$1=MenuContent,Group=MenuGroup,Label=MenuLabel,Item2=MenuItem,CheckboxItem=MenuCheckboxItem,RadioGroup=MenuRadioGroup,RadioItem=MenuRadioItem,ItemIndicator=MenuItemIndicator,Separator=MenuSeparator,Arrow2=MenuArrow,SubTrigger=MenuSubTrigger,SubContent=MenuSubContent,DROPDOWN_MENU_NAME="DropdownMenu",[createDropdownMenuContext,createDropdownMenuScope]=createContextScope$3(DROPDOWN_MENU_NAME,[createMenuScope]),useMenuScope=createMenuScope(),[DropdownMenuProvider,useDropdownMenuContext]=createDropdownMenuContext(DROPDOWN_MENU_NAME),DropdownMenu=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:o,defaultOpen:a,onOpenChange:i,modal:s=!0}=e,l=useMenuScope(t),c=React__namespace.useRef(null),[u=!1,d]=useControllableState$1({prop:o,defaultProp:a,onChange:i});return jsxRuntime.exports.jsx(DropdownMenuProvider,{scope:t,triggerId:useId(),triggerRef:c,contentId:useId(),open:u,onOpenChange:d,onOpenToggle:React__namespace.useCallback((()=>d((e=>!e))),[d]),modal:s,children:jsxRuntime.exports.jsx(Root3,{...l,open:u,onOpenChange:d,dir:r,modal:s,children:n})})};DropdownMenu.displayName=DROPDOWN_MENU_NAME;var TRIGGER_NAME="DropdownMenuTrigger",DropdownMenuTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...o}=e,a=useDropdownMenuContext(TRIGGER_NAME,n),i=useMenuScope(n);return jsxRuntime.exports.jsx(Anchor2,{asChild:!0,...i,children:jsxRuntime.exports.jsx(Primitive.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...o,ref:composeRefs(t,a.triggerRef),onPointerDown:composeEventHandlers(e.onPointerDown,(e=>{r||0!==e.button||!1!==e.ctrlKey||(a.onOpenToggle(),a.open||e.preventDefault())})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{r||(["Enter"," "].includes(e.key)&&a.onOpenToggle(),"ArrowDown"===e.key&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())}))})})}));DropdownMenuTrigger.displayName=TRIGGER_NAME;var PORTAL_NAME="DropdownMenuPortal",DropdownMenuPortal=e=>{const{__scopeDropdownMenu:t,...n}=e,r=useMenuScope(t);return jsxRuntime.exports.jsx(Portal,{...r,...n})};DropdownMenuPortal.displayName=PORTAL_NAME;var CONTENT_NAME="DropdownMenuContent",DropdownMenuContent=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useDropdownMenuContext(CONTENT_NAME,n),a=useMenuScope(n),i=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(Content2$1,{id:o.contentId,"aria-labelledby":o.triggerId,...a,...r,ref:t,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,(e=>{i.current||o.triggerRef.current?.focus(),i.current=!1,e.preventDefault()})),onInteractOutside:composeEventHandlers(e.onInteractOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;o.modal&&!r||(i.current=!0)})),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})}));DropdownMenuContent.displayName=CONTENT_NAME;var GROUP_NAME="DropdownMenuGroup",DropdownMenuGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(Group,{...o,...r,ref:t})}));DropdownMenuGroup.displayName=GROUP_NAME;var LABEL_NAME="DropdownMenuLabel",DropdownMenuLabel=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(Label,{...o,...r,ref:t})}));DropdownMenuLabel.displayName=LABEL_NAME;var ITEM_NAME="DropdownMenuItem",DropdownMenuItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(Item2,{...o,...r,ref:t})}));DropdownMenuItem.displayName=ITEM_NAME;var CHECKBOX_ITEM_NAME="DropdownMenuCheckboxItem",DropdownMenuCheckboxItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(CheckboxItem,{...o,...r,ref:t})}));DropdownMenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME;var RADIO_GROUP_NAME="DropdownMenuRadioGroup",DropdownMenuRadioGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(RadioGroup,{...o,...r,ref:t})}));DropdownMenuRadioGroup.displayName=RADIO_GROUP_NAME;var RADIO_ITEM_NAME="DropdownMenuRadioItem",DropdownMenuRadioItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(RadioItem,{...o,...r,ref:t})}));DropdownMenuRadioItem.displayName=RADIO_ITEM_NAME;var INDICATOR_NAME="DropdownMenuItemIndicator",DropdownMenuItemIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(ItemIndicator,{...o,...r,ref:t})}));DropdownMenuItemIndicator.displayName=INDICATOR_NAME;var SEPARATOR_NAME="DropdownMenuSeparator",DropdownMenuSeparator=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(Separator,{...o,...r,ref:t})}));DropdownMenuSeparator.displayName=SEPARATOR_NAME;var ARROW_NAME="DropdownMenuArrow",DropdownMenuArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(Arrow2,{...o,...r,ref:t})}));DropdownMenuArrow.displayName=ARROW_NAME;var SUB_TRIGGER_NAME="DropdownMenuSubTrigger",DropdownMenuSubTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(SubTrigger,{...o,...r,ref:t})}));DropdownMenuSubTrigger.displayName=SUB_TRIGGER_NAME;var SUB_CONTENT_NAME="DropdownMenuSubContent",DropdownMenuSubContent=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=useMenuScope(n);return jsxRuntime.exports.jsx(SubContent,{...o,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})}));DropdownMenuSubContent.displayName=SUB_CONTENT_NAME;var Root2=DropdownMenu,Portal2=DropdownMenuPortal,Content2=DropdownMenuContent;function Dropdown({children:e,content:t,defaultOpen:n,open:r,onOpenChange:o,className:a,...i}){const s=useOverrides(),{portalContainer:l}=useLiveblocksUIConfig();return React__default.default.createElement(Root2,{defaultOpen:n,open:r,onOpenChange:o,dir:s.dir},e,React__default.default.createElement(Portal2,{container:l},React__default.default.createElement(Content2,{className:classNames("lb-root lb-portal lb-elevation lb-dropdown",a),sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,...i},t)))}const DropdownItem=React.forwardRef((({children:e,className:t,...n},r)=>React__default.default.createElement(DropdownMenuItem,{className:classNames("lb-dropdown-item",t),...n,ref:r},e))),List=React.forwardRef((({values:e,formatRemaining:t,truncate:n,locale:r,className:o,asChild:a,...i},s)=>{const l=a?Slot:"span",c=useOverrides(),u=t??c.LIST_REMAINING,d=React.useMemo((()=>{const t=n&&n<e.length-1?[...e.slice(0,n),u(e.length-n)]:[...e],o=Array(t.length).fill(".");return listFormat(r).formatToParts(o).map((e=>"element"===e.type?t.shift():e.value))}),[u,r,n,e]);return React__default.default.createElement(l,{className:classNames("lb-list",o),...i,ref:s},d)})),REACTIONS_TRUNCATE=5;function CommentMention({userId:e,className:t,...n}){const r=useCurrentUserId();return React__default.default.createElement(CommentMention$1,{className:classNames("lb-comment-mention",t),"data-self":e===r?"":void 0,...n},MENTION_CHARACTER,React__default.default.createElement(User,{userId:e}))}function CommentLink({href:e,children:t,className:n,...r}){return React__default.default.createElement(CommentLink$1,{className:classNames("lb-comment-link",n),href:e,...r},t)}function CommentNonInteractiveLink({href:e,children:t,className:n,...r}){return React__default.default.createElement("span",{className:classNames("lb-comment-link",n),...r},t)}const CommentReactionButton=React.forwardRef((({reaction:e,overrides:t,className:n,...r},o)=>{const a=useOverrides(t);return React__default.default.createElement(Button,{className:classNames("lb-comment-reaction",n),variant:"outline","aria-label":a.COMMENT_REACTION_DESCRIPTION(e.emoji,e.users.length),...r,ref:o},React__default.default.createElement(Emoji,{className:"lb-comment-reaction-emoji",emoji:e.emoji}),React__default.default.createElement("span",{className:"lb-comment-reaction-count"},e.users.length))})),CommentReaction=React.forwardRef((({comment:e,reaction:t,overrides:n,disabled:r,...o},a)=>{const i=_useAddReaction(),s=useRemoveReaction(),l=useCurrentUserId(),c=React.useMemo((()=>t.users.some((e=>e.id===l))),[l,t]),u=useOverrides(n),d=React.useMemo((()=>React__default.default.createElement("span",null,u.COMMENT_REACTION_LIST(React__default.default.createElement(List,{values:t.users.map((e=>React__default.default.createElement(User,{key:e.id,userId:e.id,replaceSelf:!0}))),formatRemaining:u.LIST_REMAINING_USERS,truncate:REACTIONS_TRUNCATE,locale:u.locale}),t.emoji,t.users.length))),[u,t]),f=React.useCallback((e=>{e.stopPropagation()}),[]),p=React.useCallback((n=>{n?i({threadId:e.threadId,commentId:e.id,emoji:t.emoji}):s({threadId:e.threadId,commentId:e.id,emoji:t.emoji})}),[i,e.threadId,e.id,t.emoji,s]);return React__default.default.createElement(Tooltip,{content:d,multiline:!0,className:"lb-comment-reaction-tooltip"},React__default.default.createElement(Root$3,{asChild:!0,pressed:c,onPressedChange:p,onClick:f,disabled:r,ref:a},React__default.default.createElement(CommentReactionButton,{"data-self":c?"":void 0,reaction:t,overrides:n,...o})))})),CommentNonInteractiveReaction=React.forwardRef((({reaction:e,overrides:t,...n},r)=>{const o=useCurrentUserId(),a=React.useMemo((()=>e.users.some((e=>e.id===o))),[o,e]);return React__default.default.createElement(CommentReactionButton,{disableable:!1,"data-self":a?"":void 0,reaction:e,overrides:t,...n,ref:r})}));function openAttachment({attachment:e,url:t}){"application/pdf"===e.mimeType||e.mimeType.startsWith("image/")||e.mimeType.startsWith("video/")||e.mimeType.startsWith("audio/")?window.open(t,"_blank"):download(t,e.name)}function CommentMediaAttachment({attachment:e,onAttachmentClick:t,className:n,overrides:r,...o}){const{url:a}=useAttachmentUrl(e.id),i=React.useCallback((n=>{if(!a)return;const r={attachment:e,url:a};t?.(r,n),n.isDefaultPrevented()||openAttachment(r)}),[e,t,a]);return React__default.default.createElement(MediaAttachment,{className:classNames("lb-comment-attachment",n),...o,attachment:e,overrides:r,onClick:a?i:void 0})}function CommentFileAttachment({attachment:e,onAttachmentClick:t,className:n,overrides:r,...o}){const{url:a}=useAttachmentUrl(e.id),i=React.useCallback((n=>{if(!a)return;const r={attachment:e,url:a};t?.(r,n),n.isDefaultPrevented()||openAttachment(r)}),[e,t,a]);return React__default.default.createElement(FileAttachment,{className:classNames("lb-comment-attachment",n),...o,attachment:e,overrides:r,onClick:a?i:void 0})}function CommentNonInteractiveFileAttachment({className:e,...t}){return React__default.default.createElement(FileAttachment,{className:classNames("lb-comment-attachment",e),allowMediaPreview:!1,...t})}function AutoMarkReadThreadIdHandler({threadId:e,commentRef:t}){const n=useMarkThreadAsRead();return useVisibleCallback(t,(()=>{n(e)}),{enabled:useWindowFocus()}),null}const Comment=React.forwardRef((({comment:e,indentContent:t=!0,showDeleted:n,showActions:r="hover",showReactions:o=!0,showAttachments:a=!0,onAuthorClick:i,onMentionClick:s,onAttachmentClick:l,onCommentEdit:c,onCommentDelete:u,overrides:d,className:f,additionalActions:p,additionalActionsClassName:m,autoMarkReadThreadId:h,..._},g)=>{const v=Boolean(React.useContext(RoomContext)),E=React.useRef(null),y=useRefs(g,E),b=useCurrentUserId(),C=useDeleteComment(),R=useEditComment(),w=_useAddReaction(),S=useRemoveReaction(),D=useOverrides(d),[T,O]=React.useState(!1),[A,I]=React.useState(!1),[x,N]=React.useState(!1),[F,P]=React.useState(!1),{mediaAttachments:k,fileAttachments:$}=React.useMemo((()=>separateMediaAttachments(e.attachments)),[e.attachments]),M=React.useCallback((e=>{e.stopPropagation()}),[]),B=React.useCallback((()=>{O(!0)}),[]),L=React.useCallback((e=>{e.stopPropagation(),O(!1)}),[]),j=React.useCallback((({body:t,attachments:n},r)=>{c?.(e),r.preventDefault(),O(!1),R({commentId:e.id,threadId:e.threadId,body:t,attachments:n})}),[e,R,c]),U=React.useCallback((()=>{u?.(e),C({commentId:e.id,threadId:e.threadId})}),[e,C,u]),V=React.useCallback((t=>{i?.(e.userId,t)}),[e.userId,i]),H=React.useCallback((t=>{const n=e.reactions.findIndex((e=>e.emoji===t));n>=0&&b&&e.reactions[n]?.users.some((e=>e.id===b))?S({threadId:e.threadId,commentId:e.id,emoji:t}):w({threadId:e.threadId,commentId:e.id,emoji:t})}),[w,e.id,e.reactions,e.threadId,S,b]);return React.useEffect((()=>{if(!("undefined"!=typeof window))return;window.location.hash.slice(1)===e.id&&I(!0)}),[]),n||e.body?React__default.default.createElement(TooltipProvider,null,v&&h&&React__default.default.createElement(AutoMarkReadThreadIdHandler,{commentRef:E,threadId:h}),React__default.default.createElement("div",{id:e.id,className:classNames("lb-root lb-comment",t&&"lb-comment:indent-content","hover"===r&&"lb-comment:show-actions-hover",(x||F)&&"lb-comment:action-open",f),"data-deleted":e.body?void 0:"","data-editing":T?"":void 0,"data-target":A?"":void 0,dir:D.dir,..._,ref:y},React__default.default.createElement("div",{className:"lb-comment-header"},React__default.default.createElement("div",{className:"lb-comment-details"},React__default.default.createElement(Avatar,{className:"lb-comment-avatar",userId:e.userId,onClick:V}),React__default.default.createElement("span",{className:"lb-comment-details-labels"},React__default.default.createElement(User,{className:"lb-comment-author",userId:e.userId,onClick:V}),React__default.default.createElement("span",{className:"lb-comment-date"},React__default.default.createElement(Timestamp,{locale:D.locale,date:e.createdAt,className:"lb-date lb-comment-date-created"}),e.editedAt&&e.body&&React__default.default.createElement(React__default.default.Fragment,null," ",React__default.default.createElement("span",{className:"lb-comment-date-edited"},D.COMMENT_EDITED))))),r&&!T&&React__default.default.createElement("div",{className:classNames("lb-comment-actions",m)},p??null,o&&React__default.default.createElement(EmojiPicker,{onEmojiSelect:H,onOpenChange:P},React__default.default.createElement(Tooltip,{content:D.COMMENT_ADD_REACTION},React__default.default.createElement(PopoverTrigger,{asChild:!0},React__default.default.createElement(Button,{className:"lb-comment-action",onClick:M,"aria-label":D.COMMENT_ADD_REACTION},React__default.default.createElement(EmojiAddIcon,{className:"lb-button-icon"}))))),e.userId===b&&React__default.default.createElement(Dropdown,{open:x,onOpenChange:N,align:"end",content:React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(DropdownItem,{onSelect:B,onClick:M},React__default.default.createElement(EditIcon,{className:"lb-dropdown-item-icon"}),D.COMMENT_EDIT),React__default.default.createElement(DropdownItem,{onSelect:U,onClick:M},React__default.default.createElement(DeleteIcon,{className:"lb-dropdown-item-icon"}),D.COMMENT_DELETE))},React__default.default.createElement(Tooltip,{content:D.COMMENT_MORE},React__default.default.createElement(DropdownMenuTrigger,{asChild:!0},React__default.default.createElement(Button,{className:"lb-comment-action",disabled:!e.body,onClick:M,"aria-label":D.COMMENT_MORE},React__default.default.createElement(EllipsisIcon,{className:"lb-button-icon"}))))))),React__default.default.createElement("div",{className:"lb-comment-content"},T?React__default.default.createElement(Composer,{className:"lb-comment-composer",onComposerSubmit:j,defaultValue:e.body,defaultAttachments:e.attachments,autoFocus:!0,showAttribution:!1,showAttachments:a,actions:React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(Tooltip,{content:D.COMMENT_EDIT_COMPOSER_CANCEL,"aria-label":D.COMMENT_EDIT_COMPOSER_CANCEL},React__default.default.createElement(Button,{className:"lb-composer-action",onClick:L},React__default.default.createElement(CrossIcon,{className:"lb-button-icon"}))),React__default.default.createElement(ShortcutTooltip,{content:D.COMMENT_EDIT_COMPOSER_SAVE,shortcut:React__default.default.createElement(ShortcutTooltipKey,{name:"enter"})},React__default.default.createElement(ComposerSubmit,{asChild:!0},React__default.default.createElement(Button,{variant:"primary",className:"lb-composer-action",onClick:M,"aria-label":D.COMMENT_EDIT_COMPOSER_SAVE},React__default.default.createElement(CheckIcon,{className:"lb-button-icon"}))))),overrides:{COMPOSER_PLACEHOLDER:D.COMMENT_EDIT_COMPOSER_PLACEHOLDER}}):e.body?React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(CommentBody,{className:"lb-comment-body",body:e.body,components:{Mention:({userId:e})=>React__default.default.createElement(CommentMention,{userId:e,onClick:t=>s?.(e,t)}),Link:CommentLink}}),a&&(k.length>0||$.length>0)?React__default.default.createElement("div",{className:"lb-comment-attachments"},k.length>0?React__default.default.createElement("div",{className:"lb-attachments"},k.map((e=>React__default.default.createElement(CommentMediaAttachment,{key:e.id,attachment:e,overrides:d,onAttachmentClick:l})))):null,$.length>0?React__default.default.createElement("div",{className:"lb-attachments"},$.map((e=>React__default.default.createElement(CommentFileAttachment,{key:e.id,attachment:e,overrides:d,onAttachmentClick:l})))):null):null,o&&e.reactions.length>0&&React__default.default.createElement("div",{className:"lb-comment-reactions"},e.reactions.map((t=>React__default.default.createElement(CommentReaction,{key:t.emoji,comment:e,reaction:t,overrides:d}))),React__default.default.createElement(EmojiPicker,{onEmojiSelect:H},React__default.default.createElement(Tooltip,{content:D.COMMENT_ADD_REACTION},React__default.default.createElement(PopoverTrigger,{asChild:!0},React__default.default.createElement(Button,{className:"lb-comment-reaction lb-comment-reaction-add",variant:"outline",onClick:M,"aria-label":D.COMMENT_ADD_REACTION},React__default.default.createElement(EmojiAddIcon,{className:"lb-button-icon"}))))))):React__default.default.createElement("div",{className:"lb-comment-body"},React__default.default.createElement("p",{className:"lb-comment-deleted"},D.COMMENT_DELETED))))):null})),PLACEHOLDER_BASE_URL="https://localhost:9999",ABSOLUTE_URL_REGEX=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/;function generateURL(e,t,n){const r=ABSOLUTE_URL_REGEX.test(e),o=new URL(e,r?void 0:PLACEHOLDER_BASE_URL);if(void 0!==t)for(const[e,n]of Object.entries(t))n&&o.searchParams.set(e,String(n));return o.hash||void 0===n||(o.hash=`#${n}`),r?o.href:o.href.replace(PLACEHOLDER_BASE_URL,"")}const INBOX_NOTIFICATION_THREAD_MAX_COMMENTS=3;function InboxNotificationComment({comment:e,showHeader:t=!0,showAttachments:n=!0,showReactions:r=!0,overrides:o,className:a,...i}){const s=useOverrides(o);return React__default.default.createElement("div",{className:classNames("lb-root lb-inbox-notification-comment lb-comment",a),...i},t&&React__default.default.createElement("div",{className:"lb-comment-header"},React__default.default.createElement(User,{className:"lb-comment-author",userId:e.userId})),React__default.default.createElement("div",{className:"lb-comment-content"},e.body?React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(CommentBody,{className:"lb-comment-body",body:e.body,components:{Mention:CommentMention,Link:CommentNonInteractiveLink}}),r&&e.reactions.length>0&&React__default.default.createElement("div",{className:"lb-comment-reactions"},e.reactions.map((e=>React__default.default.createElement(CommentNonInteractiveReaction,{key:e.emoji,reaction:e,overrides:o,disabled:!0})))),n&&e.attachments.length>0?React__default.default.createElement("div",{className:"lb-comment-attachments"},React__default.default.createElement("div",{className:"lb-attachments"},e.attachments.map((e=>React__default.default.createElement(CommentNonInteractiveFileAttachment,{key:e.id,attachment:e,overrides:o}))))):null):React__default.default.createElement("div",{className:"lb-comment-body"},React__default.default.createElement("p",{className:"lb-comment-deleted"},s.COMMENT_DELETED))))}function findLastCommentWithMentionedId(e,t){if(e.length)for(let n=e.length-1;n>=0;n--){const r=e[n];if(r.userId!==t&&r.body){if(getMentionedIdsFromCommentBody(r.body).includes(t))return r}}}function getUserIdsFromComments(e){return Array.from(new Set(e.map((e=>e.userId))))}function generateInboxNotificationThreadContents(e,t,n){const r=t.comments.filter((t=>!!t.body&&(e.readAt?t.createdAt>e.readAt&&t.createdAt<=e.notifiedAt:t.createdAt<=e.notifiedAt)));if(0===r.length){const n=t.comments.filter((e=>e.body)).slice(-INBOX_NOTIFICATION_THREAD_MAX_COMMENTS);return{type:"comments",unread:!1,comments:n,userIds:getUserIdsFromComments(n),date:e.notifiedAt}}const o=findLastCommentWithMentionedId(r,n);if(o)return{type:"mention",unread:!0,comments:[o],userIds:[o.userId],date:o.createdAt};return{type:"comments",unread:!0,comments:r.slice(-INBOX_NOTIFICATION_THREAD_MAX_COMMENTS),userIds:getUserIdsFromComments(r),date:e.notifiedAt}}function Room({roomId:e,className:t,...n}){const{info:r,isLoading:o}=useRoomInfo(e),a=React.useMemo((()=>r?.name??e),[r?.name,e]);return React__default.default.createElement("span",{className:classNames("lb-name lb-room",t),"data-loading":o?"":void 0,...n},o?null:a)}const InboxNotificationLayout=React.forwardRef((({inboxNotification:e,children:t,aside:n,title:r,date:o,unread:a,markAsReadOnClick:i,onClick:s,href:l,showActions:c,overrides:u,components:d,className:f,asChild:p,...m},h)=>{const _=useOverrides(u),{Anchor:g}=useComponents(d),v=p?Slot:g,[E,y]=React.useState(!1),b=useMarkInboxNotificationAsRead(),C=useDeleteInboxNotification(),R=React.useCallback((t=>{s?.(t);const n=i??Boolean(l);a&&n&&b(e.id)}),[l,e.id,i,b,s,a]),w=React.useCallback((e=>{e.stopPropagation()}),[]),S=React.useCallback((e=>{e.preventDefault(),e.stopPropagation()}),[]),D=React.useCallback((e=>{e.preventDefault(),e.stopPropagation(),y((e=>!e))}),[]),T=React.useCallback((()=>{b(e.id)}),[e.id,b]),O=React.useCallback((()=>{C(e.id)}),[e.id,C]);return React__default.default.createElement(TooltipProvider,null,React__default.default.createElement(v,{className:classNames("lb-root lb-inbox-notification","hover"===c&&"lb-inbox-notification:show-actions-hover",E&&"lb-inbox-notification:action-open",f),dir:_.dir,"data-unread":a?"":void 0,"data-kind":e.kind,onClick:R,href:l,...m,ref:h},n&&React__default.default.createElement("div",{className:"lb-inbox-notification-aside"},n),React__default.default.createElement("div",{className:"lb-inbox-notification-content"},React__default.default.createElement("div",{className:"lb-inbox-notification-header"},React__default.default.createElement("span",{className:"lb-inbox-notification-title"},r),React__default.default.createElement("div",{className:"lb-inbox-notification-details"},React__default.default.createElement("span",{className:"lb-inbox-notification-details-labels"},React__default.default.createElement(Timestamp,{locale:_.locale,date:o,className:"lb-date lb-inbox-notification-date"}),a&&React__default.default.createElement("span",{className:"lb-inbox-notification-unread-indicator",role:"presentation"}))),c&&React__default.default.createElement("div",{className:"lb-inbox-notification-actions"},React__default.default.createElement(Dropdown,{open:E,onOpenChange:y,align:"end",content:React__default.default.createElement(React__default.default.Fragment,null,a?React__default.default.createElement(DropdownItem,{onSelect:T,onClick:w},React__default.default.createElement(CheckIcon,{className:"lb-dropdown-item-icon"}),_.INBOX_NOTIFICATION_MARK_AS_READ):null,React__default.default.createElement(DropdownItem,{onSelect:O,onClick:w},React__default.default.createElement(DeleteIcon,{className:"lb-dropdown-item-icon"}),_.INBOX_NOTIFICATION_DELETE))},React__default.default.createElement(Tooltip,{content:_.INBOX_NOTIFICATION_MORE},React__default.default.createElement(DropdownMenuTrigger,{asChild:!0},React__default.default.createElement(Button,{className:"lb-inbox-notification-action",onClick:D,onPointerDown:S,onPointerUp:S,"aria-label":_.INBOX_NOTIFICATION_MORE},React__default.default.createElement(EllipsisIcon,{className:"lb-button-icon"}))))))),React__default.default.createElement("div",{className:"lb-inbox-notification-body"},t))))}));function InboxNotificationIcon({className:e,...t}){return React__default.default.createElement("div",{className:classNames("lb-inbox-notification-icon",e),...t})}function InboxNotificationAvatar({className:e,...t}){return React__default.default.createElement(Avatar,{className:classNames("lb-inbox-notification-avatar",e),...t})}const InboxNotificationThread=React.forwardRef((({inboxNotification:e,href:t,showRoomName:n=!0,showReactions:r=!0,showAttachments:o=!0,showActions:a="hover",overrides:i,...s},l)=>{const c=useOverrides(i),u=_useInboxNotificationThread(e.id),d=useCurrentUserId(),{info:f}=useRoomInfo(e.roomId),p=React.useMemo((()=>{const t=generateInboxNotificationThreadContents(e,u,d??"");if(0===t.comments.length||0===t.userIds.length)return null;switch(t.type){case"comments":{const e=[...t.userIds].reverse(),a=e[0],s=React__default.default.createElement(InboxNotificationAvatar,{userId:a}),l=c.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST(React__default.default.createElement(List,{values:e.map((e=>React__default.default.createElement(User,{key:e,userId:e,replaceSelf:!0}))),formatRemaining:c.LIST_REMAINING_USERS,truncate:INBOX_NOTIFICATION_THREAD_MAX_COMMENTS-1,locale:c.locale}),n?React__default.default.createElement(Room,{roomId:u.roomId}):void 0,e.length),d=React__default.default.createElement("div",{className:"lb-inbox-notification-comments"},t.comments.map((e=>React__default.default.createElement(InboxNotificationComment,{key:e.id,comment:e,showHeader:t.comments.length>1,showAttachments:o,showReactions:r,overrides:i}))));return{unread:t.unread,date:t.date,aside:s,title:l,content:d,threadId:u.id,commentId:t.comments[t.comments.length-1].id}}case"mention":{const e=t.userIds[0],a=t.comments[0],s=React__default.default.createElement(InboxNotificationAvatar,{userId:e}),l=c.INBOX_NOTIFICATION_THREAD_MENTION(React__default.default.createElement(User,{key:e,userId:e}),n?React__default.default.createElement(Room,{roomId:u.roomId}):void 0),d=React__default.default.createElement("div",{className:"lb-inbox-notification-comments"},React__default.default.createElement(InboxNotificationComment,{key:a.id,comment:a,showHeader:!1,showAttachments:o,showReactions:r,overrides:i}));return{unread:t.unread,date:t.date,aside:s,title:l,content:d,threadId:u.id,commentId:a.id}}default:return assertNever(t,"Unexpected thread inbox notification type")}}),[c,d,e,i,n,o,r,u]),m=React.useMemo((()=>{const e=t??f?.url;return e?generateURL(e,void 0,p?.commentId):void 0}),[p?.commentId,t,f?.url]);if(!p)return null;const{aside:h,title:_,content:g,date:v,unread:E}=p;return React__default.default.createElement(InboxNotificationLayout,{inboxNotification:e,aside:h,title:_,date:v,unread:E,overrides:i,href:m,showActions:a,markAsReadOnClick:!1,...s,ref:l},g)})),InboxNotificationTextMention=React.forwardRef((({inboxNotification:e,showActions:t="hover",showRoomName:n=!0,overrides:r,...o},a)=>{const i=useOverrides(r),s=React.useMemo((()=>!e.readAt||e.notifiedAt>e.readAt),[e.notifiedAt,e.readAt]);return React__default.default.createElement(InboxNotificationLayout,{inboxNotification:e,aside:React__default.default.createElement(InboxNotificationAvatar,{userId:e.createdBy}),title:i.INBOX_NOTIFICATION_TEXT_MENTION(React__default.default.createElement(User,{key:e.createdBy,userId:e.createdBy}),n?React__default.default.createElement(Room,{roomId:e.roomId}):void 0),date:e.notifiedAt,unread:s,overrides:r,showActions:t,...o,ref:a})})),InboxNotificationCustom=React.forwardRef((({inboxNotification:e,showActions:t="hover",title:n,aside:r,children:o,overrides:a,...i},s)=>{const l=React.useMemo((()=>!e.readAt||e.notifiedAt>e.readAt),[e.notifiedAt,e.readAt]);return React__default.default.createElement(InboxNotificationLayout,{inboxNotification:e,aside:r,title:n,date:e.notifiedAt,unread:l,overrides:a,showActions:t,...i,ref:s},o)}));React.forwardRef((({inboxNotification:e,...t},n)=>React__default.default.createElement(InboxNotificationCustom,{inboxNotification:e,...t,title:React__default.default.createElement(React__default.default.Fragment,null,"Custom notification kind ",React__default.default.createElement("code",null,e.kind)," is not handled"),aside:React__default.default.createElement(InboxNotificationIcon,null,React__default.default.createElement(WarningIcon,null)),ref:n,"data-missing":""},"Notifications of this kind won’t be displayed in production. Use the"," ",React__default.default.createElement("code",null,"kinds")," prop to define how they should be rendered.")));const InboxNotification=Object.assign(React.forwardRef((({inboxNotification:e,kinds:t,...n},r)=>{switch(e.kind){case"thread":{const o=t?.thread??InboxNotificationThread;return React__default.default.createElement(o,{inboxNotification:e,...n,ref:r})}case"textMention":{const o=t?.textMention??InboxNotificationTextMention;return React__default.default.createElement(o,{inboxNotification:e,...n,ref:r})}default:{const o=t?.[e.kind];return o?React__default.default.createElement(o,{inboxNotification:e,...n,ref:r}):null}}})),{Thread:InboxNotificationThread,TextMention:InboxNotificationTextMention,Custom:InboxNotificationCustom,Icon:InboxNotificationIcon,Avatar:InboxNotificationAvatar});function ReachEndMarker({enabled:e,onReachEnd:t}){const n=React.useRef(null);return useVisibleCallback(n,t,{enabled:e}),React__default.default.createElement("div",{ref:n,style:{height:0}})}const InboxNotificationList=React.forwardRef((({onReachEnd:e,children:t,className:n,...r},o)=>React__default.default.createElement("ol",{className:classNames("lb-root lb-inbox-notification-list",n),...r,ref:o},React.Children.map(t,((e,t)=>React__default.default.createElement("li",{key:t,className:"lb-inbox-notification-list-item"},e))),e&&React__default.default.createElement(ReachEndMarker,{onReachEnd:e,enabled:React.Children.count(t)>0}))));function ArrowDownIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("path",{d:"M10 4v12m6-6-6 6-6-6"}))}function ResolveIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("circle",{cx:10,cy:10,r:7}),React__default.default.createElement("path",{d:"m13 8-4 4-2-2"}))}function ResolvedIcon(e){return React__default.default.createElement(Icon,{...e},React__default.default.createElement("circle",{cx:10,cy:10,r:7,fill:"currentColor"}),React__default.default.createElement("path",{d:"m13 8-4 4-2-2",stroke:"var(--lb-icon-background)"}))}function findLastIndex(e,t){let n=e.length-1;for(;n>=0;){const r=e[n];if(r&&t(r))return n;n--}return-1}const Thread=React.forwardRef((({thread:e,indentCommentContent:t=!0,showActions:n="hover",showDeletedComments:r,showResolveAction:o=!0,showReactions:a=!0,showComposer:i="collapsed",showAttachments:s=!0,onResolvedChange:l,onCommentEdit:c,onCommentDelete:u,onThreadDelete:d,onAuthorClick:f,onMentionClick:p,onAttachmentClick:m,onComposerSubmit:h,overrides:_,className:g,...v},E)=>{const y=useMarkThreadAsResolved(),b=useMarkThreadAsUnresolved(),C=useOverrides(_),R=React.useMemo((()=>r?0:e.comments.findIndex((e=>e.body))),[r,e.comments]),w=React.useMemo((()=>r?e.comments.length-1:findLastIndex(e.comments,(e=>e.body))),[r,e.comments]),{status:S,unreadSince:D}=useThreadSubscription(e.id),T=React.useMemo((()=>{if("subscribed"!==S)return;if(null===D)return R;const t=e.comments.findIndex((e=>(!!r||e.body)&&e.createdAt>D));return t>=0&&t<e.comments.length?t:void 0}),[R,r,S,e.comments,D]),[O,A]=React.useState(),I=void 0===O?T:O;React.useEffect((()=>{T&&A((e=>Math.min(e??1/0,T)))}),[T]);const x=React.useCallback((e=>{e.stopPropagation()}),[]),N=React.useCallback((t=>{l?.(t),t?y(e.id):b(e.id)}),[y,b,l,e.id]),F=React.useCallback((t=>{u?.(t);e.comments.filter((e=>e.body)).length<=1&&d?.(e)}),[u,d,e]);return React__default.default.createElement(TooltipProvider,null,React__default.default.createElement("div",{className:classNames("lb-root lb-thread","hover"===n&&"lb-thread:show-actions-hover",g),"data-resolved":e.resolved?"":void 0,"data-unread":void 0!==T?"":void 0,dir:C.dir,...v,ref:E},React__default.default.createElement("div",{className:"lb-thread-comments"},e.comments.map(((i,l)=>{const u=l===R,d=void 0!==T&&l>=T,h=React__default.default.createElement(Comment,{key:i.id,className:"lb-thread-comment","data-unread":d?"":void 0,comment:i,indentContent:t,showDeleted:r,showActions:n,showReactions:a,showAttachments:s,onCommentEdit:c,onCommentDelete:F,onAuthorClick:f,onMentionClick:p,onAttachmentClick:m,autoMarkReadThreadId:l===w&&d?e.id:void 0,additionalActionsClassName:u?"lb-thread-actions":void 0,additionalActions:u&&o?React__default.default.createElement(Tooltip,{content:e.resolved?C.THREAD_UNRESOLVE:C.THREAD_RESOLVE},React__default.default.createElement(Root$3,{pressed:e.resolved,onPressedChange:N,asChild:!0},React__default.default.createElement(Button,{className:"lb-comment-action",onClick:x,"aria-label":e.resolved?C.THREAD_UNRESOLVE:C.THREAD_RESOLVE},e.resolved?React__default.default.createElement(ResolvedIcon,{className:"lb-button-icon"}):React__default.default.createElement(ResolveIcon,{className:"lb-button-icon"})))):null});return l===I&&I!==R&&I<=w?React__default.default.createElement(React.Fragment,{key:i.id},React__default.default.createElement("div",{className:"lb-thread-new-indicator","aria-label":C.THREAD_NEW_INDICATOR_DESCRIPTION},React__default.default.createElement("span",{className:"lb-thread-new-indicator-label"},React__default.default.createElement(ArrowDownIcon,{className:"lb-thread-new-indicator-label-icon"}),C.THREAD_NEW_INDICATOR)),h):h}))),i&&React__default.default.createElement(Composer,{className:"lb-thread-composer",threadId:e.id,defaultCollapsed:"collapsed"===i||void 0,showAttachments:s,onComposerSubmit:h,overrides:{COMPOSER_PLACEHOLDER:C.THREAD_COMPOSER_PLACEHOLDER,COMPOSER_SEND:C.THREAD_COMPOSER_SEND}})))}));detectDupes(PKG_NAME$1,PKG_VERSION$1,PKG_FORMAT$1);const ErrorBoundaryContext=React.createContext(null),initialState={didCatch:!1,error:null};class ErrorBoundary extends React.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=initialState}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(null!==e){for(var t,n,r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];null===(t=(n=this.props).onReset)||void 0===t||t.call(n,{args:o,reason:"imperative-api"}),this.setState(initialState)}}componentDidCatch(e,t){var n,r;null===(n=(r=this.props).onError)||void 0===n||n.call(r,e,t)}componentDidUpdate(e,t){const{didCatch:n}=this.state,{resetKeys:r}=this.props;var o,a;n&&null!==t.error&&hasArrayChanged(e.resetKeys,r)&&(null===(o=(a=this.props).onReset)||void 0===o||o.call(a,{next:r,prev:e.resetKeys,reason:"keys"}),this.setState(initialState))}render(){const{children:e,fallbackRender:t,FallbackComponent:n,fallback:r}=this.props,{didCatch:o,error:a}=this.state;let i=e;if(o){const e={error:a,resetErrorBoundary:this.resetErrorBoundary};if("function"==typeof t)i=t(e);else if(n)i=React.createElement(n,e);else{if(void 0===r)throw a;i=r}}return React.createElement(ErrorBoundaryContext.Provider,{value:{didCatch:o,error:a,resetErrorBoundary:this.resetErrorBoundary}},i)}}function hasArrayChanged(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.length!==t.length||e.some(((e,n)=>!Object.is(e,t[n])))}function Loading(){return React__default.default.createElement("svg",{className:"animate-spin h-5 w-5 mr-3 ...",viewBox:"0 0 24 24"})}var Threads=function(e){var t=_useThreadsSuspense().threads;return React__default.default.createElement(React__default.default.Fragment,null,t.map((function(e){return React__default.default.createElement(Thread,{key:e.id,thread:e,className:"thread"})})),React__default.default.createElement(Composer,{className:"composer"}))},AmisComments=function(e){var t=e.className,n=void 0===t?"m-2 flex flex-col gap-y-2":t,r=e.roomId;return React__default.default.createElement(_RoomProvider,{id:r},React__default.default.createElement(ErrorBoundary,{fallback:React__default.default.createElement("div",{className:"error"},"There was an error while getting threads.")},React__default.default.createElement(React.Suspense,{fallback:React__default.default.createElement(Loading,null)},React__default.default.createElement("main",{className:n},React__default.default.createElement(Threads,null)))))};function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}function clsx(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}var frontend_inbox_empty$1="There aren’t any notifications yet.",frontend_comment_inbox$1="Comment Inbox",frontend_mark_all_read$1="Mark all as read",frontend_delete_all$1="Delete all",frontend_fallback_error$1="There was an error while getting notifications.",frontend_fetch_mention_suggestions_error$1="Problem resolving mention suggestions",frontend_fetch_rooms_info_error$1="Problem resolving rooms info",frontend_fetch_users_error$1="Problem resolving users",en_us$1={frontend_inbox_empty:frontend_inbox_empty$1,frontend_comment_inbox:frontend_comment_inbox$1,frontend_mark_all_read:frontend_mark_all_read$1,frontend_delete_all:frontend_delete_all$1,frontend_fallback_error:frontend_fallback_error$1,frontend_fetch_mention_suggestions_error:frontend_fetch_mention_suggestions_error$1,frontend_fetch_rooms_info_error:frontend_fetch_rooms_info_error$1,frontend_fetch_users_error:frontend_fetch_users_error$1},frontend_inbox_empty="没有通知。",frontend_comment_inbox="评论收件箱",frontend_mark_all_read="全部标记为已读",frontend_delete_all="全部删除",frontend_fallback_error="收到通知时出现错误。",frontend_fetch_mention_suggestions_error="请求提及建议时出现错误。",frontend_fetch_rooms_info_error="请求Rooms信息时出现错误。",frontend_fetch_users_error="请求用户清单时出现错误。",COMPOSER_PLACEHOLDER="写评论...",THREAD_COMPOSER_PLACEHOLDER="回复...",THREAD_COMPOSER_SEND="回复",THREAD_RESOLVE="标记为已解决",THREAD_UNRESOLVE="重新开启讨论",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented="评论",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in="于",INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread="于评论栏",INBOX_NOTIFICATION_DELETE="删除通知",INBOX_NOTIFICATION_MORE="更多",COMMENT_EDIT="编辑讨论",COMMENT_EDIT_COMPOSER_PLACEHOLDER="编辑讨论...",COMMENT_DELETE="删除讨论",COMMENT_EDIT_COMPOSER_CANCEL="取消",COMMENT_EDIT_COMPOSER_SAVE="保存",COMMENT_MORE="更多",COMPOSER_INSERT_MENTION="提及某个人",COMPOSER_INSERT_EMOJI="添加表情",COMPOSER_ATTACH_FILES="上传附件",COMMENT_ADD_REACTION="添加表情",COMPOSER_SEND="发送",zh_cn$1={frontend_inbox_empty:frontend_inbox_empty,frontend_comment_inbox:frontend_comment_inbox,frontend_mark_all_read:frontend_mark_all_read,frontend_delete_all:frontend_delete_all,frontend_fallback_error:frontend_fallback_error,frontend_fetch_mention_suggestions_error:frontend_fetch_mention_suggestions_error,frontend_fetch_rooms_info_error:frontend_fetch_rooms_info_error,frontend_fetch_users_error:frontend_fetch_users_error,COMPOSER_PLACEHOLDER:COMPOSER_PLACEHOLDER,THREAD_COMPOSER_PLACEHOLDER:THREAD_COMPOSER_PLACEHOLDER,THREAD_COMPOSER_SEND:THREAD_COMPOSER_SEND,THREAD_RESOLVE:THREAD_RESOLVE,THREAD_UNRESOLVE:THREAD_UNRESOLVE,INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented:INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented,INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in:INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in,INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread:INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread,INBOX_NOTIFICATION_DELETE:INBOX_NOTIFICATION_DELETE,INBOX_NOTIFICATION_MORE:INBOX_NOTIFICATION_MORE,COMMENT_EDIT:COMMENT_EDIT,COMMENT_EDIT_COMPOSER_PLACEHOLDER:COMMENT_EDIT_COMPOSER_PLACEHOLDER,COMMENT_DELETE:COMMENT_DELETE,COMMENT_EDIT_COMPOSER_CANCEL:COMMENT_EDIT_COMPOSER_CANCEL,COMMENT_EDIT_COMPOSER_SAVE:COMMENT_EDIT_COMPOSER_SAVE,COMMENT_MORE:COMMENT_MORE,COMPOSER_INSERT_MENTION:COMPOSER_INSERT_MENTION,COMPOSER_INSERT_EMOJI:COMPOSER_INSERT_EMOJI,COMPOSER_ATTACH_FILES:COMPOSER_ATTACH_FILES,COMMENT_ADD_REACTION:COMMENT_ADD_REACTION,COMPOSER_SEND:COMPOSER_SEND};function _typeof$1(e){return _typeof$1="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$1(e)}function _classCallCheck$1(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _toPrimitive$1(e,t){if("object"!==_typeof$1(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof$1(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$1(e){var t=_toPrimitive$1(e,"string");return"symbol"===_typeof$1(t)?t:String(t)}function _defineProperties$1(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$1(r.key),r)}}function _createClass$1(e,t,n){return t&&_defineProperties$1(e.prototype,t),n&&_defineProperties$1(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _possibleConstructorReturn(e,t){if(t&&("object"===_typeof$1(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _defineProperty$1(e,t,n){return(t=_toPropertyKey$1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _arrayWithHoles$1(e){if(Array.isArray(e))return e}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayLikeToArray$1(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _unsupportedIterableToArray$1(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$1(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$1(e,t):void 0}}function _nonIterableRest$1(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _toArray(e){return _arrayWithHoles$1(e)||_iterableToArray(e)||_unsupportedIterableToArray$1(e)||_nonIterableRest$1()}function ownKeys$6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$6(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$6(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$6(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var consoleLogger={type:"logger",log:function(e){this.output("log",e)},warn:function(e){this.output("warn",e)},error:function(e){this.output("error",e)},output:function(e,t){console&&console[e]&&console[e].apply(console,t)}},Logger=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck$1(this,e),this.init(t,n)}return _createClass$1(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||consoleLogger,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,n,r){return r&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(n).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,_objectSpread$6(_objectSpread$6({},{prefix:"".concat(this.prefix,":").concat(t,":")}),this.options))}},{key:"clone",value:function(t){return(t=t||this.options).prefix=t.prefix||this.prefix,new e(this.logger,t)}}]),e}(),baseLogger=new Logger,EventEmitter=function(){function e(){_classCallCheck$1(this,e),this.observers={}}return _createClass$1(e,[{key:"on",value:function(e,t){var n=this;return e.split(" ").forEach((function(e){n.observers[e]=n.observers[e]||[],n.observers[e].push(t)})),this}},{key:"off",value:function(e,t){this.observers[e]&&(t?this.observers[e]=this.observers[e].filter((function(e){return e!==t})):delete this.observers[e])}},{key:"emit",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this.observers[e]&&[].concat(this.observers[e]).forEach((function(e){e.apply(void 0,n)}));this.observers["*"]&&[].concat(this.observers["*"]).forEach((function(t){t.apply(t,[e].concat(n))}))}}]),e}();function defer(){var e,t,n=new Promise((function(n,r){e=n,t=r}));return n.resolve=e,n.reject=t,n}function makeString(e){return null==e?"":""+e}function copy(e,t,n){e.forEach((function(e){t[e]&&(n[e]=t[e])}))}function getLastOfPath(e,t,n){function r(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function o(){return!e||"string"==typeof e}for(var a="string"!=typeof t?[].concat(t):t.split(".");a.length>1;){if(o())return{};var i=r(a.shift());!e[i]&&n&&(e[i]=new n),e=Object.prototype.hasOwnProperty.call(e,i)?e[i]:{}}return o()?{}:{obj:e,k:r(a.shift())}}function setPath(e,t,n){var r=getLastOfPath(e,t,Object);r.obj[r.k]=n}function pushPath(e,t,n,r){var o=getLastOfPath(e,t,Object),a=o.obj,i=o.k;a[i]=a[i]||[],r&&(a[i]=a[i].concat(n)),r||a[i].push(n)}function getPath(e,t){var n=getLastOfPath(e,t),r=n.obj,o=n.k;if(r)return r[o]}function getPathWithDefaults(e,t,n){var r=getPath(e,n);return void 0!==r?r:getPath(t,n)}function deepExtend(e,t,n){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"==typeof e[r]||e[r]instanceof String||"string"==typeof t[r]||t[r]instanceof String?n&&(e[r]=t[r]):deepExtend(e[r],t[r],n):e[r]=t[r]);return e}function regexEscape(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var _entityMap={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function escape(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return _entityMap[e]})):e}var isIE10="undefined"!=typeof window&&window.navigator&&void 0===window.navigator.userAgentData&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,chars=[" ",",","?","!",";"];function looksLikeObjectPath(e,t,n){t=t||"",n=n||"";var r=chars.filter((function(e){return t.indexOf(e)<0&&n.indexOf(e)<0}));if(0===r.length)return!0;var o=new RegExp("(".concat(r.map((function(e){return"?"===e?"\\?":e})).join("|"),")")),a=!o.test(e);if(!a){var i=e.indexOf(n);i>0&&!o.test(e.substring(0,i))&&(a=!0)}return a}function deepFind(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var r=t.split(n),o=e,a=0;a<r.length;++a){if(!o)return;if("string"==typeof o[r[a]]&&a+1<r.length)return;if(void 0===o[r[a]]){for(var i=2,s=r.slice(a,a+i).join(n),l=o[s];void 0===l&&r.length>a+i;)i++,l=o[s=r.slice(a,a+i).join(n)];if(void 0===l)return;if(null===l)return null;if(t.endsWith(s)){if("string"==typeof l)return l;if(s&&"string"==typeof l[s])return l[s]}var c=r.slice(a+i).join(n);return c?deepFind(l,c,n):void 0}o=o[r[a]]}return o}}function ownKeys$5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$5(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$5(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$3(e){var t=_isNativeReflectConstruct$3();return function(){var n,r=_getPrototypeOf(e);if(t){var o=_getPrototypeOf(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$3(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var ResourceStore=function(e){_inherits(n,e);var t=_createSuper$3(n);function n(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return _classCallCheck$1(this,n),r=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(r)),r.data=e||{},r.options=o,void 0===r.options.keySeparator&&(r.options.keySeparator="."),void 0===r.options.ignoreJSONStructure&&(r.options.ignoreJSONStructure=!0),r}return _createClass$1(n,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,a=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure,i=[e,t];n&&"string"!=typeof n&&(i=i.concat(n)),n&&"string"==typeof n&&(i=i.concat(o?n.split(o):n)),e.indexOf(".")>-1&&(i=e.split("."));var s=getPath(this.data,i);return s||!a||"string"!=typeof n?s:deepFind(this.data&&this.data[e]&&this.data[e][t],n,o)}},{key:"addResource",value:function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,i=[e,t];n&&(i=i.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(r=t,t=(i=e.split("."))[1]),this.addNamespaces(t),setPath(this.data,i,r),o.silent||this.emit("added",e,t,n,r)}},{key:"addResources",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in n)"string"!=typeof n[o]&&"[object Array]"!==Object.prototype.toString.apply(n[o])||this.addResource(e,t,o,n[o],{silent:!0});r.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},i=[e,t];e.indexOf(".")>-1&&(r=n,n=t,t=(i=e.split("."))[1]),this.addNamespaces(t);var s=getPath(this.data,i)||{};r?deepExtend(s,n,o):s=_objectSpread$5(_objectSpread$5({},s),n),setPath(this.data,i,s),a.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?_objectSpread$5(_objectSpread$5({},{}),this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"hasLanguageSomeTranslations",value:function(e){var t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find((function(e){return t[e]&&Object.keys(t[e]).length>0}))}},{key:"toJSON",value:function(){return this.data}}]),n}(EventEmitter),postProcessor={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,r,o){var a=this;return e.forEach((function(e){a.processors[e]&&(t=a.processors[e].process(t,n,r,o))})),t}};function ownKeys$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$2(e){var t=_isNativeReflectConstruct$2();return function(){var n,r=_getPrototypeOf(e);if(t){var o=_getPrototypeOf(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$2(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var checkedLoadedFor={},Translator=function(e){_inherits(n,e);var t=_createSuper$2(n);function n(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _classCallCheck$1(this,n),r=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(r)),copy(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,_assertThisInitialized(r)),r.options=o,void 0===r.options.keySeparator&&(r.options.keySeparator="."),r.logger=baseLogger.create("translator"),r}return _createClass$1(n,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,o=t.ns||this.options.defaultNS||[],a=n&&e.indexOf(n)>-1,i=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||looksLikeObjectPath(e,n,r));if(a&&!i){var s=e.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:e,namespaces:o};var l=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(l[0])>-1)&&(o=l.shift()),e=l.join(r)}return"string"==typeof o&&(o=[o]),{key:e,namespaces:o}}},{key:"translate",value:function(e,t,r){var o=this;if("object"!==_typeof$1(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),"object"===_typeof$1(t)&&(t=_objectSpread$4({},t)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var a=void 0!==t.returnDetails?t.returnDetails:this.options.returnDetails,i=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,s=this.extractFromKey(e[e.length-1],t),l=s.key,c=s.namespaces,u=c[c.length-1],d=t.lng||this.language,f=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&"cimode"===d.toLowerCase()){if(f){var p=t.nsSeparator||this.options.nsSeparator;return a?{res:"".concat(u).concat(p).concat(l),usedKey:l,exactUsedKey:l,usedLng:d,usedNS:u}:"".concat(u).concat(p).concat(l)}return a?{res:l,usedKey:l,exactUsedKey:l,usedLng:d,usedNS:u}:l}var m=this.resolve(e,t),h=m&&m.res,_=m&&m.usedKey||l,g=m&&m.exactUsedKey||l,v=Object.prototype.toString.apply(h),E=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject;if(y&&h&&("string"!=typeof h&&"boolean"!=typeof h&&"number"!=typeof h)&&["[object Number]","[object Function]","[object RegExp]"].indexOf(v)<0&&("string"!=typeof E||"[object Array]"!==v)){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var b=this.options.returnedObjectHandler?this.options.returnedObjectHandler(_,h,_objectSpread$4(_objectSpread$4({},t),{},{ns:c})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");return a?(m.res=b,m):b}if(i){var C="[object Array]"===v,R=C?[]:{},w=C?g:_;for(var S in h)if(Object.prototype.hasOwnProperty.call(h,S)){var D="".concat(w).concat(i).concat(S);R[S]=this.translate(D,_objectSpread$4(_objectSpread$4({},t),{joinArrays:!1,ns:c})),R[S]===D&&(R[S]=h[S])}h=R}}else if(y&&"string"==typeof E&&"[object Array]"===v)(h=h.join(E))&&(h=this.extendTranslation(h,e,t,r));else{var T=!1,O=!1,A=void 0!==t.count&&"string"!=typeof t.count,I=n.hasDefaultValue(t),x=A?this.pluralResolver.getSuffix(d,t.count,t):"",N=t["defaultValue".concat(x)]||t.defaultValue;!this.isValidLookup(h)&&I&&(T=!0,h=N),this.isValidLookup(h)||(O=!0,h=l);var F=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&O?void 0:h,P=I&&N!==h&&this.options.updateMissing;if(O||T||P){if(this.logger.log(P?"updateKey":"missingKey",d,u,l,P?N:h),i){var k=this.resolve(l,_objectSpread$4(_objectSpread$4({},t),{},{keySeparator:!1}));k&&k.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var $=[],M=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&M&&M[0])for(var B=0;B<M.length;B++)$.push(M[B]);else"all"===this.options.saveMissingTo?$=this.languageUtils.toResolveHierarchy(t.lng||this.language):$.push(t.lng||this.language);var L=function(e,n,r){var a=I&&r!==h?r:F;o.options.missingKeyHandler?o.options.missingKeyHandler(e,u,n,a,P,t):o.backendConnector&&o.backendConnector.saveMissing&&o.backendConnector.saveMissing(e,u,n,a,P,t),o.emit("missingKey",e,u,n,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&A?$.forEach((function(e){o.pluralResolver.getSuffixes(e,t).forEach((function(n){L([e],l+n,t["defaultValue".concat(n)]||N)}))})):L($,l,N))}h=this.extendTranslation(h,e,t,m,r),O&&h===l&&this.options.appendNamespaceToMissingKey&&(h="".concat(u,":").concat(l)),(O||T)&&this.options.parseMissingKeyHandler&&(h="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?"".concat(u,":").concat(l):l,T?h:void 0):this.options.parseMissingKeyHandler(h))}return a?(m.res=h,m):h}},{key:"extendTranslation",value:function(e,t,n,r,o){var a=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),n),r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init(_objectSpread$4(_objectSpread$4({},n),{interpolation:_objectSpread$4(_objectSpread$4({},this.options.interpolation),n.interpolation)}));var i,s="string"==typeof e&&(n&&n.interpolation&&void 0!==n.interpolation.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);if(s){var l=e.match(this.interpolator.nestingRegexp);i=l&&l.length}var c=n.replace&&"string"!=typeof n.replace?n.replace:n;if(this.options.interpolation.defaultVariables&&(c=_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),c)),e=this.interpolator.interpolate(e,c,n.lng||this.language,n),s){var u=e.match(this.interpolator.nestingRegexp);i<(u&&u.length)&&(n.nest=!1)}!n.lng&&"v1"!==this.options.compatibilityAPI&&r&&r.res&&(n.lng=r.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,(function(){for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];return o&&o[0]===r[0]&&!n.context?(a.logger.warn("It seems you are nesting recursively key: ".concat(r[0]," in key: ").concat(t[0])),null):a.translate.apply(a,r.concat([t]))}),n)),n.interpolation&&this.interpolator.reset()}var d=n.postProcess||this.options.postProcess,f="string"==typeof d?[d]:d;return null!=e&&f&&f.length&&!1!==n.applyPostProcessor&&(e=postProcessor.handle(f,e,t,this.options&&this.options.postProcessPassResolved?_objectSpread$4({i18nResolved:r},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,r,o,a,i=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((function(e){if(!i.isValidLookup(t)){var l=i.extractFromKey(e,s),c=l.key;n=c;var u=l.namespaces;i.options.fallbackNS&&(u=u.concat(i.options.fallbackNS));var d=void 0!==s.count&&"string"!=typeof s.count,f=d&&!s.ordinal&&0===s.count&&i.pluralResolver.shouldUseIntlApi(),p=void 0!==s.context&&("string"==typeof s.context||"number"==typeof s.context)&&""!==s.context,m=s.lngs?s.lngs:i.languageUtils.toResolveHierarchy(s.lng||i.language,s.fallbackLng);u.forEach((function(e){i.isValidLookup(t)||(a=e,!checkedLoadedFor["".concat(m[0],"-").concat(e)]&&i.utils&&i.utils.hasLoadedNamespace&&!i.utils.hasLoadedNamespace(a)&&(checkedLoadedFor["".concat(m[0],"-").concat(e)]=!0,i.logger.warn('key "'.concat(n,'" for languages "').concat(m.join(", "),'" won\'t get resolved as namespace "').concat(a,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),m.forEach((function(n){if(!i.isValidLookup(t)){o=n;var a,l=[c];if(i.i18nFormat&&i.i18nFormat.addLookupKeys)i.i18nFormat.addLookupKeys(l,c,n,e,s);else{var u;d&&(u=i.pluralResolver.getSuffix(n,s.count,s));var m="".concat(i.options.pluralSeparator,"zero");if(d&&(l.push(c+u),f&&l.push(c+m)),p){var h="".concat(c).concat(i.options.contextSeparator).concat(s.context);l.push(h),d&&(l.push(h+u),f&&l.push(h+m))}}for(;a=l.pop();)i.isValidLookup(t)||(r=a,t=i.getResource(n,e,a,s))}})))}))}})),{res:t,usedKey:n,exactUsedKey:r,usedLng:o,usedNS:a}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,12)&&void 0!==e[n])return!0;return!1}}]),n}(EventEmitter);function capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)}var LanguageUtil=function(){function e(t){_classCallCheck$1(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=baseLogger.create("languageUtils")}return _createClass$1(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=capitalize(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=capitalize(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=capitalize(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach((function(e){if(!t){var r=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(r)||(t=r)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var r=n.getLanguagePartFromCode(e);if(n.isSupportedCode(r))return t=r;t=n.options.supportedLngs.find((function(e){return e===r?e:e.indexOf("-")<0&&r.indexOf("-")<0?void 0:0===e.indexOf(r)?e:void 0}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,r=this.getFallbackCodes(t||this.options.fallbackLng||[],e),o=[],a=function(e){e&&(n.isSupportedCode(e)?o.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&a(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&a(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&a(this.getLanguagePartFromCode(e))):"string"==typeof e&&a(this.formatLanguageCode(e)),r.forEach((function(e){o.indexOf(e)<0&&a(n.formatLanguageCode(e))})),o}}]),e}(),sets=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],_rulesPluralsTypes={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}},deprecatedJsonVersions=["v1","v2","v3"],suffixesOrder={zero:0,one:1,two:2,few:3,many:4,other:5};function createRules(){var e={};return sets.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:_rulesPluralsTypes[t.fc]}}))})),e}var PluralResolver=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck$1(this,e),this.languageUtils=t,this.options=n,this.logger=baseLogger.create("pluralResolver"),this.options.compatibilityJSON&&"v4"!==this.options.compatibilityJSON||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=createRules()}return _createClass$1(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:t.ordinal?"ordinal":"cardinal"})}catch(e){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,n).map((function(e){return"".concat(t).concat(e)}))}},{key:"getSuffixes",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getRule(e,n);return r?this.shouldUseIntlApi()?r.resolvedOptions().pluralCategories.sort((function(e,t){return suffixesOrder[e]-suffixesOrder[t]})).map((function(e){return"".concat(t.options.prepend).concat(e)})):r.numbers.map((function(r){return t.getSuffix(e,r,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getRule(e,n);return r?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(r.select(t)):this.getSuffixRetroCompatible(r,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var n=this,r=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),o=e.numbers[r];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===o?o="plural":1===o&&(o=""));var a=function(){return n.options.prepend&&o.toString()?n.options.prepend+o.toString():o.toString()};return"v1"===this.options.compatibilityJSON?1===o?"":"number"==typeof o?"_plural_".concat(o.toString()):a():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?a():this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString()}},{key:"shouldUseIntlApi",value:function(){return!deprecatedJsonVersions.includes(this.options.compatibilityJSON)}}]),e}();function ownKeys$3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function deepFindWithDefaults(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=getPathWithDefaults(e,t,n);return!a&&o&&"string"==typeof n&&void 0===(a=deepFind(e,n,r))&&(a=deepFind(t,n,r)),a}var Interpolator=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck$1(this,e),this.logger=baseLogger.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return _createClass$1(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:escape,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?regexEscape(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?regexEscape(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?regexEscape(t.nestingPrefix):t.nestingPrefixEscaped||regexEscape("$t("),this.nestingSuffix=t.nestingSuffix?regexEscape(t.nestingSuffix):t.nestingSuffixEscaped||regexEscape(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,r){var o,a,i,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var u=function(e){if(e.indexOf(s.formatSeparator)<0){var o=deepFindWithDefaults(t,l,e,s.options.keySeparator,s.options.ignoreJSONStructure);return s.alwaysFormat?s.format(o,void 0,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},r),t),{},{interpolationkey:e})):o}var a=e.split(s.formatSeparator),i=a.shift().trim(),c=a.join(s.formatSeparator).trim();return s.format(deepFindWithDefaults(t,l,i,s.options.keySeparator,s.options.ignoreJSONStructure),c,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},r),t),{},{interpolationkey:i}))};this.resetRegExp();var d=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,f=r&&r.interpolation&&void 0!==r.interpolation.skipOnVariables?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return c(e)}},{regex:this.regexp,safeValue:function(e){return s.escapeValue?c(s.escape(e)):c(e)}}].forEach((function(t){for(i=0;o=t.regex.exec(e);){var n=o[1].trim();if(void 0===(a=u(n)))if("function"==typeof d){var l=d(e,o,r);a="string"==typeof l?l:""}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a="";else{if(f){a=o[0];continue}s.logger.warn("missed to pass in variable ".concat(n," for interpolating ").concat(e)),a=""}else"string"==typeof a||s.useRawValueToEscape||(a=makeString(a));var c=t.safeValue(a);if(e=e.replace(o[0],c),f?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=o[0].length):t.regex.lastIndex=0,++i>=s.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,r,o,a=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};function s(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var r=e.split(new RegExp("".concat(n,"[ ]*{"))),a="{".concat(r[1]);e=r[0];var i=(a=this.interpolate(a,o)).match(/'/g),s=a.match(/"/g);(i&&i.length%2==0&&!s||s.length%2!=0)&&(a=a.replace(/'/g,'"'));try{o=JSON.parse(a),t&&(o=_objectSpread$3(_objectSpread$3({},t),o))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(n).concat(a)}return delete o.defaultValue,e}for(;n=this.nestingRegexp.exec(e);){var l=[];(o=(o=_objectSpread$3({},i)).replace&&"string"!=typeof o.replace?o.replace:o).applyPostProcessor=!1,delete o.defaultValue;var c=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var u=n[1].split(this.formatSeparator).map((function(e){return e.trim()}));n[1]=u.shift(),l=u,c=!0}if((r=t(s.call(this,n[1].trim(),o),o))&&n[0]===e&&"string"!=typeof r)return r;"string"!=typeof r&&(r=makeString(r)),r||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),r=""),c&&(r=l.reduce((function(e,t){return a.format(e,t,i.lng,_objectSpread$3(_objectSpread$3({},i),{},{interpolationkey:n[1].trim()}))}),r.trim())),e=e.replace(n[0],r),this.regexp.lastIndex=0}return e}}]),e}();function ownKeys$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function parseFormatStr(e){var t=e.toLowerCase().trim(),n={};if(e.indexOf("(")>-1){var r=e.split("(");t=r[0].toLowerCase().trim();var o=r[1].substring(0,r[1].length-1);if("currency"===t&&o.indexOf(":")<0)n.currency||(n.currency=o.trim());else if("relativetime"===t&&o.indexOf(":")<0)n.range||(n.range=o.trim());else{o.split(";").forEach((function(e){if(e){var t=_toArray(e.split(":")),r=t[0],o=t.slice(1).join(":").trim().replace(/^'+|'+$/g,"");n[r.trim()]||(n[r.trim()]=o),"false"===o&&(n[r.trim()]=!1),"true"===o&&(n[r.trim()]=!0),isNaN(o)||(n[r.trim()]=parseInt(o,10))}}))}}return{formatName:t,formatOptions:n}}function createCachedFormatter(e){var t={};return function(n,r,o){var a=r+JSON.stringify(o),i=t[a];return i||(i=e(r,o),t[a]=i),i(n)}}var Formatter=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck$1(this,e),this.logger=baseLogger.create("formatter"),this.options=t,this.formats={number:createCachedFormatter((function(e,t){var n=new Intl.NumberFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}})),currency:createCachedFormatter((function(e,t){var n=new Intl.NumberFormat(e,_objectSpread$2(_objectSpread$2({},t),{},{style:"currency"}));return function(e){return n.format(e)}})),datetime:createCachedFormatter((function(e,t){var n=new Intl.DateTimeFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}})),relativetime:createCachedFormatter((function(e,t){var n=new Intl.RelativeTimeFormat(e,_objectSpread$2({},t));return function(e){return n.format(e,t.range||"day")}})),list:createCachedFormatter((function(e,t){var n=new Intl.ListFormat(e,_objectSpread$2({},t));return function(e){return n.format(e)}}))},this.init(t)}return _createClass$1(e,[{key:"init",value:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||","}},{key:"add",value:function(e,t){this.formats[e.toLowerCase().trim()]=t}},{key:"addCached",value:function(e,t){this.formats[e.toLowerCase().trim()]=createCachedFormatter(t)}},{key:"format",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=t.split(this.formatSeparator).reduce((function(e,t){var a=parseFormatStr(t),i=a.formatName,s=a.formatOptions;if(r.formats[i]){var l=e;try{var c=o&&o.formatParams&&o.formatParams[o.interpolationkey]||{},u=c.locale||c.lng||o.locale||o.lng||n;l=r.formats[i](e,u,_objectSpread$2(_objectSpread$2(_objectSpread$2({},s),o),c))}catch(e){r.logger.warn(e)}return l}return r.logger.warn("there was no format function for ".concat(i)),e}),e);return a}}]),e}();function ownKeys$1$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$1$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1$1(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper$1(e){var t=_isNativeReflectConstruct$1();return function(){var n,r=_getPrototypeOf(e);if(t){var o=_getPrototypeOf(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct$1(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function removePending(e,t){void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)}var Connector=function(e){_inherits(n,e);var t=_createSuper$1(n);function n(e,r,o){var a,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return _classCallCheck$1(this,n),a=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(a)),a.backend=e,a.store=r,a.services=o,a.languageUtils=o.languageUtils,a.options=i,a.logger=baseLogger.create("backendConnector"),a.waitingReads=[],a.maxParallelReads=i.maxParallelReads||10,a.readingCalls=0,a.maxRetries=i.maxRetries>=0?i.maxRetries:5,a.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(o,i.backend,i),a}return _createClass$1(n,[{key:"queueLoad",value:function(e,t,n,r){var o=this,a={},i={},s={},l={};return e.forEach((function(e){var r=!0;t.forEach((function(t){var s="".concat(e,"|").concat(t);!n.reload&&o.store.hasResourceBundle(e,t)?o.state[s]=2:o.state[s]<0||(1===o.state[s]?void 0===i[s]&&(i[s]=!0):(o.state[s]=1,r=!1,void 0===i[s]&&(i[s]=!0),void 0===a[s]&&(a[s]=!0),void 0===l[t]&&(l[t]=!0)))})),r||(s[e]=!0)})),(Object.keys(a).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(a),pending:Object.keys(i),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,n){var r=e.split("|"),o=r[0],a=r[1];t&&this.emit("failedLoading",o,a,t),n&&this.store.addResourceBundle(o,a,n),this.state[e]=t?-1:2;var i={};this.queue.forEach((function(n){pushPath(n.loaded,[o],a),removePending(n,e),t&&n.errors.push(t),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach((function(e){i[e]||(i[e]={});var t=n.loaded[e];t.length&&t.forEach((function(t){void 0===i[e][t]&&(i[e][t]=!0)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",i),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,i=arguments.length>5?arguments[5]:void 0;if(!e.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads)this.waitingReads.push({lng:e,ns:t,fcName:n,tried:o,wait:a,callback:i});else{this.readingCalls++;var s=function(s,l){if(r.readingCalls--,r.waitingReads.length>0){var c=r.waitingReads.shift();r.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}s&&l&&o<r.maxRetries?setTimeout((function(){r.read.call(r,e,t,n,o+1,2*a,i)}),a):i(s,l)},l=this.backend[n].bind(this.backend);if(2!==l.length)return l(e,t,s);try{var c=l(e,t);c&&"function"==typeof c.then?c.then((function(e){return s(null,e)})).catch(s):s(null,c)}catch(e){s(e)}}}},{key:"prepareLoading",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var a=this.queueLoad(e,t,r,o);if(!a.toLoad.length)return a.pending.length||o(),null;a.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=e.split("|"),o=r[0],a=r[1];this.read(o,a,"read",void 0,void 0,(function(r,i){r&&t.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(o," failed"),r),!r&&i&&t.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(o),i),t.loaded(e,r,i)}))}},{key:"saveMissing",value:function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:function(){};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t))this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");else if(null!=n&&""!==n){if(this.backend&&this.backend.create){var s=_objectSpread$1$1(_objectSpread$1$1({},a),{},{isUpdate:o}),l=this.backend.create.bind(this.backend);if(l.length<6)try{var c;(c=5===l.length?l(e,t,n,r,s):l(e,t,n,r))&&"function"==typeof c.then?c.then((function(e){return i(null,e)})).catch(i):i(null,c)}catch(e){i(e)}else l(e,t,n,r,i,s)}e&&e[0]&&this.store.addResource(e[0],t,n,r)}}}]),n}(EventEmitter);function get(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===_typeof$1(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===_typeof$1(e[2])||"object"===_typeof$1(e[3])){var n=e[3]||e[2];Object.keys(n).forEach((function(e){t[e]=n[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,n,r){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function transformOptions(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function ownKeys$7(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$7(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$7(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$7(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,r=_getPrototypeOf(e);if(t){var o=_getPrototypeOf(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return _possibleConstructorReturn(this,n)}}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function noop(){}function bindMemberFunctions(e){Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(t){"function"==typeof e[t]&&(e[t]=e[t].bind(e))}))}var I18n=function(e){_inherits(n,e);var t=_createSuper(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;if(_classCallCheck$1(this,n),e=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(e)),e.options=transformOptions(r),e.services={},e.logger=baseLogger,e.modules={external:[]},bindMemberFunctions(_assertThisInitialized(e)),o&&!e.isInitialized&&!r.isClone){if(!e.options.initImmediate)return e.init(r,o),_possibleConstructorReturn(e,_assertThisInitialized(e));setTimeout((function(){e.init(r,o)}),0)}return e}return _createClass$1(n,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;"function"==typeof t&&(n=t,t={}),!t.defaultNS&&!1!==t.defaultNS&&t.ns&&("string"==typeof t.ns?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));var r=get();function o(e){return e?"function"==typeof e?new e:e:null}if(this.options=_objectSpread$7(_objectSpread$7(_objectSpread$7({},r),this.options),transformOptions(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=_objectSpread$7(_objectSpread$7({},r.interpolation),this.options.interpolation)),void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator),!this.options.isClone){var a;this.modules.logger?baseLogger.init(o(this.modules.logger),this.options):baseLogger.init(null,this.options),this.modules.formatter?a=this.modules.formatter:"undefined"!=typeof Intl&&(a=Formatter);var i=new LanguageUtil(this.options);this.store=new ResourceStore(this.options.resources,this.options);var s=this.services;s.logger=baseLogger,s.resourceStore=this.store,s.languageUtils=i,s.pluralResolver=new PluralResolver(i,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!a||this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format||(s.formatter=o(a),s.formatter.init(s,this.options),this.options.interpolation.format=s.formatter.format.bind(s.formatter)),s.interpolator=new Interpolator(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new Connector(o(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",(function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];e.emit.apply(e,[t].concat(r))})),this.modules.languageDetector&&(s.languageDetector=o(this.modules.languageDetector),s.languageDetector.init&&s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=o(this.modules.i18nFormat),s.i18nFormat.init&&s.i18nFormat.init(this)),this.translator=new Translator(this.services,this.options),this.translator.on("*",(function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];e.emit.apply(e,[t].concat(r))})),this.modules.external.forEach((function(t){t.init&&t.init(e)}))}if(this.format=this.options.interpolation.format,n||(n=noop),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){var l=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);l.length>0&&"dev"!==l[0]&&(this.options.lng=l[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}}));["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}}));var c=defer(),u=function(){var t=function(t,r){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),c.resolve(r),n(t,r)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),c}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,r="string"==typeof e?e:this.language;if("function"==typeof e&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&"cimode"===r.toLowerCase())return n();var o=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){o.indexOf(e)<0&&o.push(e)}))};if(r)a(r);else this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((function(e){return a(e)}));this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(o,this.options.ns,(function(e){e||t.resolvedLanguage||!t.language||t.setResolvedLanguage(t.language),n(e)}))}else n(null)}},{key:"reloadResources",value:function(e,t,n){var r=defer();return e||(e=this.languages),t||(t=this.options.ns),n||(n=noop),this.services.backendConnector.reload(e,t,(function(e){r.resolve(),n(e)})),r}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&postProcessor.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"setResolvedLanguage",value:function(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(var t=0;t<this.languages.length;t++){var n=this.languages[t];if(!(["cimode","dev"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var r=defer();this.emit("languageChanging",e);var o=function(e){n.language=e,n.languages=n.services.languageUtils.toResolveHierarchy(e),n.resolvedLanguage=void 0,n.setResolvedLanguage(e)},a=function(a){e||a||!n.services.languageDetector||(a=[]);var i="string"==typeof a?a:n.services.languageUtils.getBestMatchFromCodes(a);i&&(n.language||o(i),n.translator.language||n.translator.changeLanguage(i),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage&&n.services.languageDetector.cacheUserLanguage(i)),n.loadResources(i,(function(e){!function(e,a){a?(o(a),n.translator.changeLanguage(a),n.isLanguageChangingTo=void 0,n.emit("languageChanged",a),n.logger.log("languageChanged",a)):n.isLanguageChangingTo=void 0,r.resolve((function(){return n.t.apply(n,arguments)})),t&&t(e,(function(){return n.t.apply(n,arguments)}))}(e,i)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e):a(this.services.languageDetector.detect()),r}},{key:"getFixedT",value:function(e,t,n){var r=this,o=function e(t,o){var a;if("object"!==_typeof$1(o)){for(var i=arguments.length,s=new Array(i>2?i-2:0),l=2;l<i;l++)s[l-2]=arguments[l];a=r.options.overloadTranslationOptionHandler([t,o].concat(s))}else a=_objectSpread$7({},o);a.lng=a.lng||e.lng,a.lngs=a.lngs||e.lngs,a.ns=a.ns||e.ns,a.keyPrefix=a.keyPrefix||n||e.keyPrefix;var c,u=r.options.keySeparator||".";return c=a.keyPrefix&&Array.isArray(t)?t.map((function(e){return"".concat(a.keyPrefix).concat(u).concat(e)})):a.keyPrefix?"".concat(a.keyPrefix).concat(u).concat(t):t,r.t(c,a)};return"string"==typeof e?o.lng=e:o.lngs=e,o.ns=t,o.keyPrefix=n,o}},{key:"t",value:function(){var e;return this.translator&&(e=this.translator).translate.apply(e,arguments)}},{key:"exists",value:function(){var e;return this.translator&&(e=this.translator).exists.apply(e,arguments)}},{key:"setDefaultNamespace",value:function(e){this.options.defaultNS=e}},{key:"hasLoadedNamespace",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var r=n.lng||this.resolvedLanguage||this.languages[0],o=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===r.toLowerCase())return!0;var i=function(e,n){var r=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===r||2===r};if(n.precheck){var s=n.precheck(this,i);if(void 0!==s)return s}return!!this.hasResourceBundle(r,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!i(r,e)||o&&!i(a,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,r=defer();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){r.resolve(),t&&t(e)})),r):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=defer();"string"==typeof e&&(e=[e]);var r=this.options.preload||[],o=e.filter((function(e){return r.indexOf(e)<0}));return o.length?(this.options.preload=r.concat(o),this.loadResources((function(e){n.resolve(),t&&t(e)})),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";var t=this.services&&this.services.languageUtils||new LanguageUtil(get());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,o=_objectSpread$7(_objectSpread$7(_objectSpread$7({},this.options),t),{isClone:!0}),a=new n(o);void 0===t.debug&&void 0===t.prefix||(a.logger=a.logger.clone(t));return["store","services","language"].forEach((function(t){a[t]=e[t]})),a.services=_objectSpread$7({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new Translator(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];a.emit.apply(a,[e].concat(n))})),a.init(o,r),a.translator.options=a.options,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}},{key:"toJSON",value:function(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}]),n}(EventEmitter);_defineProperty$1(I18n,"createInstance",(function(){return new I18n(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}));var instance=I18n.createInstance();function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"===_typeof(t)?t:String(t)}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function warn(){if(console&&console.warn){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];"string"==typeof n[0]&&(n[0]="react-i18next:: ".concat(n[0])),(e=console).warn.apply(e,n)}}instance.createInstance=I18n.createInstance,instance.createInstance,instance.dir,instance.init,instance.loadResources,instance.reloadResources,instance.use,instance.changeLanguage,instance.getFixedT,instance.t,instance.exists,instance.setDefaultNamespace,instance.hasLoadedNamespace,instance.loadNamespaces,instance.loadLanguages;var alreadyWarned={};function warnOnce(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];"string"==typeof t[0]&&alreadyWarned[t[0]]||("string"==typeof t[0]&&(alreadyWarned[t[0]]=new Date),warn.apply(void 0,t))}var loadedClb=function(e,t){return function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}};function loadNamespaces(e,t,n){e.loadNamespaces(t,loadedClb(e,n))}function loadLanguages(e,t,n,r){"string"==typeof n&&(n=[n]),n.forEach((function(t){e.options.ns.indexOf(t)<0&&e.options.ns.push(t)})),e.loadLanguages(t,loadedClb(e,r))}function oldI18nextHasLoadedNamespace(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.languages[0],o=!!t.options&&t.options.fallbackLng,a=t.languages[t.languages.length-1];if("cimode"===r.toLowerCase())return!0;var i=function(e,n){var r=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===r||2===r};return!(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!i(t.isLanguageChangingTo,e))&&(!!t.hasResourceBundle(r,e)||(!(t.services.backendConnector.backend&&(!t.options.resources||t.options.partialBundledLanguages))||!(!i(r,e)||o&&!i(a,e))))}function hasLoadedNamespace(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.languages&&t.languages.length?void 0!==t.options.ignoreJSONStructure?t.hasLoadedNamespace(e,{lng:n.lng,precheck:function(t,r){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}):oldI18nextHasLoadedNamespace(e,t,n):(warnOnce("i18n.languages were undefined or empty",t.languages),!0)}var matchHtmlEntity=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,htmlEntities={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},unescapeHtmlEntity=function(e){return htmlEntities[e]},unescape=function(e){return e.replace(matchHtmlEntity,unescapeHtmlEntity)};function ownKeys$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var defaultOptions={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:unescape},i18nInstance;function setDefaults(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};defaultOptions=_objectSpread$1(_objectSpread$1({},defaultOptions),e)}function getDefaults(){return defaultOptions}function setI18n(e){i18nInstance=e}function getI18n(){return i18nInstance}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey(r.key),r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var initReactI18next={type:"3rdParty",init:function(e){setDefaults(e.options.react),setI18n(e)}},I18nContext=React.createContext(),ReportNamespaces=function(){function e(){_classCallCheck(this,e),this.usedNamespaces={}}return _createClass(e,[{key:"addUsedNamespaces",value:function(e){var t=this;e.forEach((function(e){t.usedNamespaces[e]||(t.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),e}();function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw o}}return s}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var usePrevious=function(e,t){var n=React.useRef();return React.useEffect((function(){n.current=t?n.current:e}),[e,t]),n.current};function useTranslation(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.i18n,r=React.useContext(I18nContext)||{},o=r.i18n,a=r.defaultNS,i=n||o||getI18n();if(i&&!i.reportNamespaces&&(i.reportNamespaces=new ReportNamespaces),!i){warnOnce("You will need to pass in an i18next instance by using initReactI18next");var s=function(e,t){return"string"==typeof t?t:t&&"object"===_typeof(t)&&"string"==typeof t.defaultValue?t.defaultValue:Array.isArray(e)?e[e.length-1]:e},l=[s,{},!1];return l.t=s,l.i18n={},l.ready=!1,l}i.options.react&&void 0!==i.options.react.wait&&warnOnce("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var c=_objectSpread(_objectSpread(_objectSpread({},getDefaults()),i.options.react),t),u=c.useSuspense,d=c.keyPrefix,f=e||a||i.options&&i.options.defaultNS;f="string"==typeof f?[f]:f||["translation"],i.reportNamespaces.addUsedNamespaces&&i.reportNamespaces.addUsedNamespaces(f);var p=(i.isInitialized||i.initializedStoreOnce)&&f.every((function(e){return hasLoadedNamespace(e,i,c)}));function m(){return i.getFixedT(t.lng||null,"fallback"===c.nsMode?f:f[0],d)}var h=_slicedToArray(React.useState(m),2),_=h[0],g=h[1],v=f.join();t.lng&&(v="".concat(t.lng).concat(v));var E=usePrevious(v),y=React.useRef(!0);React.useEffect((function(){var e=c.bindI18n,n=c.bindI18nStore;function r(){y.current&&g(m)}return y.current=!0,p||u||(t.lng?loadLanguages(i,t.lng,f,(function(){y.current&&g(m)})):loadNamespaces(i,f,(function(){y.current&&g(m)}))),p&&E&&E!==v&&y.current&&g(m),e&&i&&i.on(e,r),n&&i&&i.store.on(n,r),function(){y.current=!1,e&&i&&e.split(" ").forEach((function(e){return i.off(e,r)})),n&&i&&n.split(" ").forEach((function(e){return i.store.off(e,r)}))}}),[i,v]);var b=React.useRef(!0);React.useEffect((function(){y.current&&!b.current&&g(m),b.current=!1}),[i,d]);var C=[_,i,p];if(C.t=_,C.i18n=i,C.ready=p,p)return C;if(!p&&!u)return C;throw new Promise((function(e){t.lng?loadLanguages(i,t.lng,f,(function(){return e()})):loadNamespaces(i,f,(function(){return e()}))}))}var funcProto=Function.prototype,funcToString=funcProto.toString;funcToString.call(Object);const getBuilderContext=()=>"undefined"==typeof window?{}:Builder.settings.context?Builder.settings.context:Builder.settings;async function fetchAPI(e,t={credentials:"include"}){const n={"Content-Type":"application/json"},r=getAuthorization();r&&(n.Authorization=r),t.headers=Object.assign({},n,t.headers),t.credentials="include";const o=await fetch(`${getRootUrl()}${e}`,t);if(401===o.status)throw new Error(401);const a=await o.json();if(a.errors)throw console.error(a.errors),new Error("Failed to fetch API");return a}function getAuthorization(){try{const e=getBuilderContext();let t=e.tenantId,n=e.authToken;return t&&n?`Bearer ${t},${n}`:null}catch(e){console.error(e)}}function getUserId(){try{let e=getBuilderContext().userId;return e||null}catch(e){console.error(e)}}function getRootUrl(e){const t=getBuilderContext();if(t.rootUrl)return t.rootUrl;const n="undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"";return n||(e||"")}const Router={getTabDisplayAs(e,t){var n=new URLSearchParams(document.location.search);if(n.has("display"))return n.get("display");const r=`tab_${e}_display`,o=sessionStorage.getItem(r);let a="grid";return!0===t&&(a="split"),window.innerWidth<=768?"grid":o||a},setTabDisplayAs(e,t){const n=`tab_${e}_display`;sessionStorage.setItem(n,t)},getAppPath:({formFactor:e,appId:t})=>`/app/${t}`,getPagePath(){},getObjectListViewPath:({formFactor:e,appId:t,objectName:n,listViewName:r})=>`/app/${t}/${n}/grid/${r}`,getObjectDetailPath(e){const{formFactor:t,appId:n,objectName:r,recordId:o,listViewName:a,_templateType:i}=e;return"JavaScript"===i?`/app/${n}/${r}/view/${o}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${n}/${r}/view/${o}?side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({formFactor:e,appId:t,masterObjectName:n,masterRecordId:r,objectName:o,foreignKey:a})=>`/app/${t}/${n}/${r}/${o}/grid?related_field_name=${a}`};function getImageFieldUrl(e,t){if(window.Meteor){if(1!=window.Meteor.isCordova){const t=e.indexOf("//"),n=e.indexOf("/",t+2);return e.substring(n)}if(t||e.startsWith("http"))return`${e}?token=${window.btoa(JSON.stringify({authToken:Builder.settings.context.authToken}))}`}return e}function toGrayscale(e,t,n){return.2126*e+.7152*t+.0722*n}function isLight(e,t,n){return toGrayscale(e,t,n)>200}function getContrastColor(e){var t="#"===e.charAt(0)?e.substring(1,7):e;return isLight(parseInt(t.substr(0,2),16),parseInt(t.substr(2,2),16),parseInt(t.substr(4,2),16))?"#000000":"#ffffff"}function getLookupListView(e){if(!e)return null;let t,n;return _.each(e.list_views,((e,r)=>{"all"===r?(t=e,t.name||(t.name=r)):"lookup"===r&&(n=e,n.name||(n.name=r))})),n||t}function getComparableAmisVersion(){let e=window.amisRequire&&window.amisRequire("amis")||window.Amis,t=e&&e.version;if(t){let e=t.split(".");return parseFloat(e[0].toString()+"."+e[1].toString())}}function getBowserType(){const e=navigator.userAgent;return-1!==e.indexOf("Chrome")&&-1!==e.indexOf("Safari")&&-1===e.indexOf("Edg")?"Chrome":-1!==e.indexOf("Firefox")?"Firefox":-1!==e.indexOf("Safari")&&-1===e.indexOf("Chrome")&&-1===e.indexOf("Edge")?"Safari":-1!==e.indexOf("Edg")?"Edge":"Unknown browser"}function getNumberTpl(e){return`<span>\${_display.${e.name}}</span>`}function getTimeTpl(e){return`<span>\${_display.${e.name}}</span>`}function getDateTpl(e){return`<span>\${_display.${e.name}}</span>`}function getDateTimeTpl(e){return`<span>\${_display.${e.name}}</span>`}function getUiFieldTpl(e){return`<span>\${_display.${e.name}}</span>`}function getUiFileSizeTpl(e){return`<span>\${_display.${e.name}}</span>`}async function getRefObjectNameFieldName(e){return(await getUISchema(e.reference_to)).NAME_FIELD_KEY||"name"}function getSelectTpl(e){return`<span>\${_display.${e.name}}</span>`}function getSelectMap(e){let t={};return _$1.forEach(e,(e=>{const n=e.value+"",r=e.color+"";if(r&&"undefined"!=r){const o="#"===r.charAt(0)?r:"#"+r,a="background:"+o+";color:"+getContrastColor(o)+";line-height:1.5rem;font-size:14px";t[n]=`<span class="rounded-xl px-2 py-1" style='${a}'>${e.label}</span>`}else t[n]=e.label})),t}function getNameTplUrl(e,t){return Router.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`})}function getNameTpl(e,t){const n=getNameTplUrl(e,t);let r="";t&&t.isLookup&&(r="target='_blank'");let o=e.name;return"lookup"==e.type||"master_detail"==e.type?!e.reference_to&&(e.optionsFunction||e._optionsFunction||e.options)?e.isTableField||(o=`\${${e.name}__label}`):o=`\${_display.${e.name}.label}`:o=`\${_display.${e.name} || ${e.name}}`,t.isRelated&&window.innerWidth>=768?`<a href="${n}" ${r} onclick="return false;">\${${o} | raw}</a>`:`<a href="${n}" ${r}>\${${o} | raw}</a>`}function getRelatedFieldTpl(e,t){let n="";if(!e.reference_to&&(e.optionsFunction||e._optionsFunction||e.options))return e.isTableField?`\${${e.name}}`:`\${${e.name}__label}`;let r="";t&&t.isLookup&&(r="target='_blank'");const o=t.onlyDisplayLookLabel;let a=`data._display.${e.name}`;if(e.isTableField&&(a=`data.${e.name}`),_.isString(e.reference_to)||!e.reference_to)if(e.multiple){let e="<%=item.label%>";if(t.isRelated&&(r="target='_blank'"),!o){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${r}><%=item.label%></a>`}n=`\n <% if (${a} && ${a}.length) { %><% ${a}.forEach(function(item,index) { %> <% if(index>0 && index<${a}.length){ %> , <% } %> ${e} <% }); %><% } %>\n `}else{let a=`\${_display.${e.name}.label}`,i=`\${_display.${e.name}.objectName}`,s=`\${_display.${e.name}.value}`;if(e.isTableField&&(a=`\${${e.name}.label}`,i=`\${${e.name}.objectName}`,s=`\${${e.name}.value}`),!o){const e=Router.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:`${i}`,recordId:`${s}`});a=window.innerWidth>=768?`<a href="${e}" ${r} onclick="return false;">${a}</a>`:`<a href="${e}" ${r}>${a}</a>`}n=a}else{let e="<%=item.label%>";if(!o){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${r}><%=item.label%></a>`}n=`\n <% if (${a} && ${a}.length) { %><% ${a}.forEach(function(item) { %> ${e} <% }); %><% } %>\n `}return n}async function getLookupTpl(e,t){if(!e.reference_to)return getSelectTpl(e);const n=await getRefObjectNameFieldName(e);if(e.multiple){const r=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>",_templateType:"JavaScript"});return`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${r}"><%=item.${n}%></a> <% }); %><% } %>\n `}return`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${n}}</a>`}function getSwitchTpl(e){let t=`data._display.${e.name}`;return e.isTableField&&(t=`data.${e.name}`),`<% if (data.${e.name}) { %>\n <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=${t}%>">\n <span ><%= ${t} === "√" ? "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>" : ${t} %></span>\n </span>\n <% } %>`}function getPasswordTpl(e){return`<% if (data.${e.name}) { %>\n <span>******</span>\n <% } %>`}function getLocationTpl(e){return`\${${e.name} ? ${e.name}.address : ''}`}async function getFieldTpl(e,t){if((e.is_name||e.name===t.labelFieldName)&&!t.onlyDisplayLookLabel&&!0!==e.multiple)return getNameTpl(e,t);switch(e.type){case"password":return getPasswordTpl(e);case"boolean":case"toggle":return getSwitchTpl(e);case"select":return getSelectTpl(e);case"time":return getTimeTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return await getRelatedFieldTpl(e,t);case"location":return await getLocationTpl(e);case"number":case"currency":return await getNumberTpl(e);case"percent":case"formula":case"summary":return getUiFieldTpl(e);case"filesize":return getUiFileSizeTpl(e)}}async function getFieldsTemplate(e,t,n){let r=[];0!=n&&(n=!0);let o=["_id"];e.datasource&&"default"!==e.datasource&&"meteor"!==e.datasource||o.push("space");let a=[],i=[];i=_$1__namespace.isArray(t)?t:_$1__namespace.values(t);for(const e of i)e.name&&(e.expand?r.push(e):e.name.indexOf(".")<0?(!n||"lookup"!=e.type&&"master_detail"!=e.type?o.push(e.alias?`${e.alias}:${e.name}`:e.name):(o.push(`${e.name}`),a.push(`${e.name}`)),_$1.includes(["time","date","datetime","boolean","number","currency"],e.type)&&o.push(`${e.name}`),_$1.includes(["percent","time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary","object","grid"],e.type)&&a.push(`${e.name}`)):(objectFieldName=e.name.split(".")[0],o.push(objectFieldName),a.push(objectFieldName)));a=_$1__namespace.uniq(a),o=_$1__namespace.uniq(o);let s="";return r.length>0&&_$1__namespace.each(r,(function(e){s+=`${e.expandInfo.fieldName}__expand{${e.expandInfo.displayName}}`})),a.length>0?`${o.join(",")},${s},_display:_ui{${a.join(",")}}`:_$1.trimEnd(`${o.join(" ")},${s}`,",")}async function getFindQuery(e,t,n,r){let o=r.limit||10,a=`(top: ${o})`;t&&(a=`(filters:["_id", "=", "${t}"], top: ${o})`);let i="data";r&&(r.alias&&(i=r.alias),r.filters&&(a=`(filters:${r.filters})`),r.queryOptions&&(a=`(${r.queryOptions})`));var s="";e.enable_tree&&_$1__namespace.includes(_$1__namespace.keys(e.fields),"parent")&&_$1__namespace.includes(_$1__namespace.keys(e.fields),"children")&&(s=",parent,children");var l="";"cms_files"===e.name&&(l=",versions");const c=!1===r.count?"":`,count:${e.name}__count(filters:{__filters})`,u=`${await getFieldsTemplate(e,n,r.expand)}${s}${l}`;return{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",queryFields:u,query:`{${i}:${e.name}${a}{${u}}${c}}`}}function getApi$2(e){if(!e)return"${context.rootUrl}/graphql?reload=${additionalFilters|join}&listName=${listName}"}"undefined"!=typeof window&&(window.getImageFieldUrl=getImageFieldUrl);var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};const AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","color","email"];function getAmisStaticFieldType(e,t,n){return t?_$1__namespace.includes(["text","image","color"],e)?"text"===e&&n&&n.amis&&n.amis.tpl?"static":"image"===e&&n&&n.multiple?"static-images":`static-${e}`:"url"===e?"input-url":"static":_$1__namespace.includes(AmisFormInputs,e)?`input-${e}`:"location"===e?"location-picker":e}let pageCache={};async function getPage({type:e,pageId:t="",appId:n,objectName:r="",recordId:o="",formFactor:a="LARGE"}){const i=`/api/pageSchema/${e}?app=${n}&objectApiName=${r}&recordId=${o}&pageId=${t}&formFactor=${a}`;if(_$1.has(pageCache,i))return pageCache[i];const s=await fetchAPI(i);if(s&&s.schema)return s.schema=JSON.parse(s.schema),s.schema.data&&(delete s.schema.data.recordId,delete s.schema.data.objectName,delete s.schema.data.context,delete s.schema.data.global),pageCache[i]=s,JSON.parse(JSON.stringify(s));pageCache[i]=null}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType$1=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple});async function getLookupLinkOnClick(e,t){const n=await getPage({type:"record",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor}),r=n?Object.assign({},n.schema,{recordId:"file"==e.type?"${value}":`\${${e.name}}`,data:{...n.schema.data,_inDrawer:!0,recordLoaded:!1,objectName:t.objectName}}):{type:"steedos-record-detail",objectApiName:t.objectName,recordId:"file"==e.type?"${value}":`\${${e.name}}`,showBackButton:!1,showButtons:!0,data:{_inDrawer:!0,recordLoaded:!1}};return{click:{actions:[{actionType:"drawer",drawer:{type:"drawer",title:"&nbsp;",headerClassName:"hidden",size:"lg",width:window.drawerWidth||"70%",bodyClassName:"p-0 m-0 bg-gray-100",closeOnEsc:!0,closeOnOutside:!0,resizable:!0,actions:[],body:[r],className:"steedos-record-detail-drawer app-popover"},preventDefault:!0}]}}}const getAmisFileReadonlySchema=async(e,t={})=>{const n=e.type,{appId:r,formFactor:o}=t.amisData||{},a=getAmisFieldType$1(e,!0);let i='onclick="return false;"';return window.innerWidth<768&&(i=""),_.includes(["avatar","image"],n)?{type:a,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===n?window.Meteor?.isCordova?{type:"control",body:e.multiple?{type:"each",name:"_display."+e.name,items:{type:"tpl",tpl:"${name}",className:"antd-Button--link inline-block mr-2",onEvent:{click:{actions:[{script:"\n Steedos.cordovaDownload(encodeURI(event.data.url), event.data.name);\n ",actionType:"custom"}],weight:0}}}}:{type:"tpl",tpl:"${_display."+e.name+".name}",className:"antd-Button--link inline-block",onEvent:{click:{actions:[{script:`\n const data = event.data._display.${e.name};\n Steedos.cordovaDownload(encodeURI(data.url), data.name);\n `,actionType:"custom"}],weight:0}}}}:{type:"control",name:"",body:{type:"each",placeholder:"",className:e.multiple?"flex flex-col":"",source:`\${_display.${e.name}|asArray}`,items:{type:"static",labelClassName:"hidden",label:!1,className:"m-0",tpl:`<a href="/app/-/cfs_files_filerecord/view/\${value}" ${i}>\${name}</a>`,onEvent:window.innerWidth<768?null:await getLookupLinkOnClick(e,{appId:r,objectName:"cfs_files_filerecord",formFactor:o})}}}:void 0},getAmisFileEditSchema=e=>{const t=getFileTableName(e);let n={type:getAmisFieldType$1(e,!1),useChunk:!1,receiver:{method:"post",dataType:"form-data",url:`\${context.rootUrl}/api/v6/files/cfs.${t}.filerecord`,requestAdaptor:"\n const superData = (typeof context != 'undefined') ? context : api.body; \n const { _master, global } = superData;\n // const { recordId, objectName } = _master;\n const { spaceId, userId, user } = global;\n /*\n record_id: recordId,\n parent: recordId,\n object_name: objectName,\n owner_name: user.name,\n space: spaceId,\n owner: userId\n */\n // 参考platform 2.2版本,附件字段保存时cfs.files.filerecord、cfs.images.filerecord表中的metadata下只保存space、owner两个属性值。\n api.data.append('space', spaceId);\n api.data.append('owner', userId);\n\n return api;\n ",adaptor:`\n const superData = (typeof context != 'undefined') ? context : api.body; \n const { context:pageContext } = superData; \n var rootUrl = pageContext.rootUrl + "/api/v6/files/download/cfs.${t}.filerecord/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id + "/" + payload.original.name,\n }\n }\n return payload;\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(n.multiple=!0,n.joinValues=!1,n.extractValue=!0,"image"===e.type&&Steedos.isCordova()&&Steedos.isCordova()&&(n.accept="")),n},getAmisFileSchema=async(e,t,n)=>t?await getAmisFileReadonlySchema(e,n):getAmisFileEditSchema(e);var frontend_field_group_generalization$1="General",frontend_download$1="Download",frontend_form_save$1="Save",frontend_form_save_and_new$1="Save and New",frontend_form_cancel$1="Cancel",frontend_form_reset$1="Reset",frontend_form_new$1="New",frontend_form_edit$1="Edit",frontend_form_preview$1="Preview",frontend_form_select$1="Select",frontend_form_please_select$1="Please select",frontend_form_confirm$1="Confirm",frontend_form_delete$1="Delete",frontend_form_view$1="view",frontend_form_details$1="details",frontend_form_validation_failed_url$1="The URL format is incorrect",frontend_delete_confirm_text$1="Are you sure you want to delete this item?",frontend_delete_many_selected_required$1="Please select the item to be deleted",frontend_delete_many_confirm_text$1="Are you sure you want to delete?",frontend_display_type_is_table$1="Table",frontend_display_type_is_split$1="Split View",frontend_display_as$1="Displayed as",frontend_record_sum$1="items",frontend_button_reload_tooltip$1="Refresh",frontend_button_search_tooltip$1="Filter",frontend_fields_filter_button_search$1="Search",frontend_fields_filter_button_settings$1="Set search options",frontend_button_listview_control_tooltip$1="List View Controls",frontend_button_listview_control_label$1="LIST VIEW CONTROLS",frontend_listview_control_columns$1="Show List",frontend_listview_control_columns_mobile_group$1="Mobile side",frontend_listview_control_clone_label$1="Clone",frontend_listview_control_clone_title$1="Clone List View",frontend_listview_control_clone_defaultData_label_start$1="Copy of",frontend_listview_control_clone_defaultData_label_end$1="",frontend_listview_control_delete_label$1="Delete",frontend_listview_control_delete_confirm_text$1="If you delete this list view it will be permanently removed for all users with access. Are you sure you want to delete?",frontend_listview_control_delete_message_success$1="Deletion successful",frontend_listview_control_filters$1="Filter settings",frontend_listview_control_filters_fields_extend$1="Conditional component 1",frontend_listview_control_new_label$1="New",frontend_listview_control_new_title$1="New List View",frontend_listview_control_new_message_success$1="Success",frontend_listview_control_new_message_failed$1="Failure",frontend_listview_control_rename_label$1="Rename",frontend_listview_control_rename_title$1="Rename List View",frontend_listview_control_share$1="Sharing Settings",frontend_listview_control_sort$1="Default sorting rule",frontend_export_excel$1="Export Excel",frontend_export_excel_toast$1="Exporting, please wait",frontend_operation$1="Operation",frontend_import_data$1="Import data",frontend_import_data_object_name$1="Import object",frontend_import_data_queue_import$1="Data import",frontend_import_data_queue_import_description$1="Import description",frontend_import_data_queue_import_encoding$1="Character code",frontend_import_data_queue_import_template_url$1="Import template",frontend_import_data_file$1="Excel file",frontend_import_data_message_success$1="Importing has started...",frontend_import_data_message_failed$1="Import failed",frontend_record_detail_tab_detailed$1="Details",frontend_record_detail_tab_related$1="Related",frontend_all_apps$1="All apps",frontend_all_projects$1="All projects",frontend_open_app_launcher$1="Open App Launcher",frontend_application_launcher$1="Application launcher",frontend_menu$1="Menu",frontend_help$1="Help",frontend_setup$1="Setup",frontend_notifications$1="Notifications",frontend_notifications_allread$1="Mark all as read",frontend_notifications_allread_message$1="All marked as read",frontend_notifications_close_dialog$1="Close",frontend_profile$1="Profile",switch_space$1="Switch Space",frontend_about$1="About",frontend_log_out$1="Log out",frontend_listview_warning_start$1="The current ",frontend_listview_warning_end$1=" view does not exist!",frontend_record_detail_related_list_warning$1="Missing parent object, parent record, or related list object property!",frontend_record_detail_related_lists_warning$1="Missing parent object, or parent record property!",frontend_record_detail_related_lists_info$1="No related child tables found",frontend_calendar_listWeek$1="List",frontend_message_no_permission_to_edit$1="You don't have permission to edit this record!",frontend_message_modification_successful$1="Modification successful!",frontend_message_modification_failed$1="Modification failed!",frontend_objects_related_alert_start$1="No related table fields associated with the related list object",frontend_objects_related_alert_end$1="were found.",frontend_no_records_found$1="No records found.",frontend_records_no_allowedit$1="You do not have edit permission for this record",frontend_app_menu_save_order_group_nesting_error$1="Group nesting is not supported",en_us={frontend_field_group_generalization:frontend_field_group_generalization$1,frontend_download:frontend_download$1,frontend_form_save:frontend_form_save$1,frontend_form_save_and_new:frontend_form_save_and_new$1,frontend_form_cancel:frontend_form_cancel$1,frontend_form_reset:frontend_form_reset$1,frontend_form_new:frontend_form_new$1,frontend_form_edit:frontend_form_edit$1,frontend_form_preview:frontend_form_preview$1,frontend_form_select:frontend_form_select$1,frontend_form_please_select:frontend_form_please_select$1,frontend_form_confirm:frontend_form_confirm$1,frontend_form_delete:frontend_form_delete$1,frontend_form_view:frontend_form_view$1,frontend_form_details:frontend_form_details$1,frontend_form_validation_failed_url:frontend_form_validation_failed_url$1,frontend_delete_confirm_text:frontend_delete_confirm_text$1,frontend_delete_many_selected_required:frontend_delete_many_selected_required$1,frontend_delete_many_confirm_text:frontend_delete_many_confirm_text$1,frontend_display_type_is_table:frontend_display_type_is_table$1,frontend_display_type_is_split:frontend_display_type_is_split$1,frontend_display_as:frontend_display_as$1,frontend_record_sum:frontend_record_sum$1,frontend_button_reload_tooltip:frontend_button_reload_tooltip$1,frontend_button_search_tooltip:frontend_button_search_tooltip$1,frontend_fields_filter_button_search:frontend_fields_filter_button_search$1,frontend_fields_filter_button_settings:frontend_fields_filter_button_settings$1,frontend_button_listview_control_tooltip:frontend_button_listview_control_tooltip$1,frontend_button_listview_control_label:frontend_button_listview_control_label$1,frontend_listview_control_columns:frontend_listview_control_columns$1,frontend_listview_control_columns_mobile_group:frontend_listview_control_columns_mobile_group$1,frontend_listview_control_clone_label:frontend_listview_control_clone_label$1,frontend_listview_control_clone_title:frontend_listview_control_clone_title$1,frontend_listview_control_clone_defaultData_label_start:frontend_listview_control_clone_defaultData_label_start$1,frontend_listview_control_clone_defaultData_label_end:frontend_listview_control_clone_defaultData_label_end$1,frontend_listview_control_delete_label:frontend_listview_control_delete_label$1,frontend_listview_control_delete_confirm_text:frontend_listview_control_delete_confirm_text$1,frontend_listview_control_delete_message_success:frontend_listview_control_delete_message_success$1,frontend_listview_control_filters:frontend_listview_control_filters$1,frontend_listview_control_filters_fields_extend:frontend_listview_control_filters_fields_extend$1,frontend_listview_control_new_label:frontend_listview_control_new_label$1,frontend_listview_control_new_title:frontend_listview_control_new_title$1,frontend_listview_control_new_message_success:frontend_listview_control_new_message_success$1,frontend_listview_control_new_message_failed:frontend_listview_control_new_message_failed$1,frontend_listview_control_rename_label:frontend_listview_control_rename_label$1,frontend_listview_control_rename_title:frontend_listview_control_rename_title$1,frontend_listview_control_share:frontend_listview_control_share$1,frontend_listview_control_sort:frontend_listview_control_sort$1,frontend_export_excel:frontend_export_excel$1,frontend_export_excel_toast:frontend_export_excel_toast$1,frontend_operation:frontend_operation$1,frontend_import_data:frontend_import_data$1,frontend_import_data_object_name:frontend_import_data_object_name$1,frontend_import_data_queue_import:frontend_import_data_queue_import$1,frontend_import_data_queue_import_description:frontend_import_data_queue_import_description$1,frontend_import_data_queue_import_encoding:frontend_import_data_queue_import_encoding$1,frontend_import_data_queue_import_template_url:frontend_import_data_queue_import_template_url$1,frontend_import_data_file:frontend_import_data_file$1,frontend_import_data_message_success:frontend_import_data_message_success$1,frontend_import_data_message_failed:frontend_import_data_message_failed$1,frontend_record_detail_tab_detailed:frontend_record_detail_tab_detailed$1,frontend_record_detail_tab_related:frontend_record_detail_tab_related$1,frontend_all_apps:frontend_all_apps$1,frontend_all_projects:frontend_all_projects$1,frontend_open_app_launcher:frontend_open_app_launcher$1,frontend_application_launcher:frontend_application_launcher$1,frontend_menu:frontend_menu$1,frontend_help:frontend_help$1,frontend_setup:frontend_setup$1,frontend_notifications:frontend_notifications$1,frontend_notifications_allread:frontend_notifications_allread$1,frontend_notifications_allread_message:frontend_notifications_allread_message$1,frontend_notifications_close_dialog:frontend_notifications_close_dialog$1,frontend_profile:frontend_profile$1,switch_space:switch_space$1,frontend_about:frontend_about$1,frontend_log_out:frontend_log_out$1,frontend_listview_warning_start:frontend_listview_warning_start$1,frontend_listview_warning_end:frontend_listview_warning_end$1,frontend_record_detail_related_list_warning:frontend_record_detail_related_list_warning$1,frontend_record_detail_related_lists_warning:frontend_record_detail_related_lists_warning$1,frontend_record_detail_related_lists_info:frontend_record_detail_related_lists_info$1,frontend_calendar_listWeek:frontend_calendar_listWeek$1,frontend_message_no_permission_to_edit:frontend_message_no_permission_to_edit$1,frontend_message_modification_successful:frontend_message_modification_successful$1,frontend_message_modification_failed:frontend_message_modification_failed$1,frontend_objects_related_alert_start:frontend_objects_related_alert_start$1,frontend_objects_related_alert_end:frontend_objects_related_alert_end$1,frontend_no_records_found:frontend_no_records_found$1,frontend_records_no_allowedit:frontend_records_no_allowedit$1,frontend_app_menu_save_order_group_nesting_error:frontend_app_menu_save_order_group_nesting_error$1},frontend_field_group_generalization="通用",frontend_download="下载",frontend_form_save="保存",frontend_form_save_and_new="保存并新建",frontend_form_cancel="取消",frontend_form_reset="重置",frontend_form_new="新建",frontend_form_edit="编辑",frontend_form_preview="预览",frontend_form_select="选择",frontend_form_please_select="请选择",frontend_form_confirm="确认",frontend_form_delete="删除",frontend_form_view="查看",frontend_form_details="详情",frontend_form_validation_failed_url="URL 格式不正确",frontend_delete_confirm_text="确定要删除此项目?",frontend_delete_many_selected_required="请选择要删除的项",frontend_delete_many_confirm_text="确定要删除吗?",frontend_display_type_is_table="表格",frontend_display_type_is_split="分栏视图",frontend_display_as="显示为",frontend_record_sum="个项目",frontend_button_reload_tooltip="刷新",frontend_button_search_tooltip="筛选",frontend_fields_filter_button_search="搜索",frontend_fields_filter_button_settings="选择搜索项",frontend_button_listview_control_tooltip="列表视图控制",frontend_button_listview_control_label="列表视图控制",frontend_listview_control_columns="显示的列",frontend_listview_control_columns_mobile_group="手机端",frontend_listview_control_clone="复制",frontend_listview_control_clone_label="复制",frontend_listview_control_clone_title="复制 列表视图",frontend_listview_control_clone_defaultData_label_start="",frontend_listview_control_clone_defaultData_label_end="的副本",frontend_listview_control_delete_label="删除",frontend_listview_control_delete_confirm_text="如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?",frontend_listview_control_delete_message_success="删除成功",frontend_listview_control_filters="过滤设置",frontend_listview_control_filters_fields_extend="条件组件",frontend_listview_control_new_label="新建",frontend_listview_control_new_title="新建 列表视图",frontend_listview_control_new_message_success="成功",frontend_listview_control_new_message_failed="失败",frontend_listview_control_rename_label="重命名",frontend_listview_control_rename_title="重命名 列表视图",frontend_listview_control_share="共享设置",frontend_listview_control_sort="默认排序规则",frontend_export_excel="导出",frontend_export_excel_toast="正在导出,请稍后...",frontend_operation="操作",frontend_import_data="导入数据",frontend_import_data_object_name="导入对象",frontend_import_data_queue_import="数据导入",frontend_import_data_queue_import_description="导入描述",frontend_import_data_queue_import_encoding="字符代码",frontend_import_data_queue_import_template_url="导入模板",frontend_import_data_file="Excel文件",frontend_import_data_message_success="已开始导入...",frontend_import_data_message_failed="导入失败",frontend_record_detail_tab_detailed="详细",frontend_record_detail_tab_related="相关",frontend_all_apps="所有应用",frontend_all_projects="所有项目",frontend_open_app_launcher="打开应用程序启动器",frontend_application_launcher="应用程序启动器",frontend_menu="菜单",frontend_help="帮助",frontend_setup="设置",frontend_notifications="通知",frontend_notifications_allread="全部标记为已读",frontend_notifications_allread_message="已全部标记为已读",frontend_notifications_close_dialog="关闭",frontend_profile="个人资料",switch_space="切换工作区",frontend_about="关于",frontend_log_out="注销",frontend_listview_warning_start="当前",frontend_listview_warning_end="视图不存在!",frontend_record_detail_related_list_warning="缺少父级对象、父级记录或相关列表对象属性!",frontend_record_detail_related_lists_warning="缺少父级对象或父级记录属性!",frontend_record_detail_related_lists_info="没有相关子表",frontend_calendar_listWeek="列表",frontend_message_no_permission_to_edit="您没有编辑该记录的权限!",frontend_message_modification_successful="修改成功!",frontend_message_modification_failed="修改失败!",frontend_objects_related_alert_start="未找到与相关列表对象",frontend_objects_related_alert_end="关联的相关表字段",frontend_no_records_found="无法找到记录",frontend_records_no_allowedit="您对这条记录没有编辑权限",frontend_app_menu_save_order_group_nesting_error="不支持分组嵌套",zh_cn={frontend_field_group_generalization:frontend_field_group_generalization,frontend_download:frontend_download,frontend_form_save:frontend_form_save,frontend_form_save_and_new:frontend_form_save_and_new,frontend_form_cancel:frontend_form_cancel,frontend_form_reset:frontend_form_reset,frontend_form_new:frontend_form_new,frontend_form_edit:frontend_form_edit,frontend_form_preview:frontend_form_preview,frontend_form_select:frontend_form_select,frontend_form_please_select:frontend_form_please_select,frontend_form_confirm:frontend_form_confirm,frontend_form_delete:frontend_form_delete,frontend_form_view:frontend_form_view,frontend_form_details:frontend_form_details,frontend_form_validation_failed_url:frontend_form_validation_failed_url,frontend_delete_confirm_text:frontend_delete_confirm_text,frontend_delete_many_selected_required:frontend_delete_many_selected_required,frontend_delete_many_confirm_text:frontend_delete_many_confirm_text,frontend_display_type_is_table:frontend_display_type_is_table,frontend_display_type_is_split:frontend_display_type_is_split,frontend_display_as:frontend_display_as,frontend_record_sum:frontend_record_sum,frontend_button_reload_tooltip:frontend_button_reload_tooltip,frontend_button_search_tooltip:frontend_button_search_tooltip,frontend_fields_filter_button_search:frontend_fields_filter_button_search,frontend_fields_filter_button_settings:frontend_fields_filter_button_settings,frontend_button_listview_control_tooltip:frontend_button_listview_control_tooltip,frontend_button_listview_control_label:frontend_button_listview_control_label,frontend_listview_control_columns:frontend_listview_control_columns,frontend_listview_control_columns_mobile_group:frontend_listview_control_columns_mobile_group,frontend_listview_control_clone:frontend_listview_control_clone,frontend_listview_control_clone_label:frontend_listview_control_clone_label,frontend_listview_control_clone_title:frontend_listview_control_clone_title,frontend_listview_control_clone_defaultData_label_start:frontend_listview_control_clone_defaultData_label_start,frontend_listview_control_clone_defaultData_label_end:frontend_listview_control_clone_defaultData_label_end,frontend_listview_control_delete_label:frontend_listview_control_delete_label,frontend_listview_control_delete_confirm_text:frontend_listview_control_delete_confirm_text,frontend_listview_control_delete_message_success:frontend_listview_control_delete_message_success,frontend_listview_control_filters:frontend_listview_control_filters,frontend_listview_control_filters_fields_extend:frontend_listview_control_filters_fields_extend,frontend_listview_control_new_label:frontend_listview_control_new_label,frontend_listview_control_new_title:frontend_listview_control_new_title,frontend_listview_control_new_message_success:frontend_listview_control_new_message_success,frontend_listview_control_new_message_failed:frontend_listview_control_new_message_failed,frontend_listview_control_rename_label:frontend_listview_control_rename_label,frontend_listview_control_rename_title:frontend_listview_control_rename_title,frontend_listview_control_share:frontend_listview_control_share,frontend_listview_control_sort:frontend_listview_control_sort,frontend_export_excel:frontend_export_excel,frontend_export_excel_toast:frontend_export_excel_toast,frontend_operation:frontend_operation,frontend_import_data:frontend_import_data,frontend_import_data_object_name:frontend_import_data_object_name,frontend_import_data_queue_import:frontend_import_data_queue_import,frontend_import_data_queue_import_description:frontend_import_data_queue_import_description,frontend_import_data_queue_import_encoding:frontend_import_data_queue_import_encoding,frontend_import_data_queue_import_template_url:frontend_import_data_queue_import_template_url,frontend_import_data_file:frontend_import_data_file,frontend_import_data_message_success:frontend_import_data_message_success,frontend_import_data_message_failed:frontend_import_data_message_failed,frontend_record_detail_tab_detailed:frontend_record_detail_tab_detailed,frontend_record_detail_tab_related:frontend_record_detail_tab_related,frontend_all_apps:frontend_all_apps,frontend_all_projects:frontend_all_projects,frontend_open_app_launcher:frontend_open_app_launcher,frontend_application_launcher:frontend_application_launcher,frontend_menu:frontend_menu,frontend_help:frontend_help,frontend_setup:frontend_setup,frontend_notifications:frontend_notifications,frontend_notifications_allread:frontend_notifications_allread,frontend_notifications_allread_message:frontend_notifications_allread_message,frontend_notifications_close_dialog:frontend_notifications_close_dialog,frontend_profile:frontend_profile,switch_space:switch_space,frontend_about:frontend_about,frontend_log_out:frontend_log_out,frontend_listview_warning_start:frontend_listview_warning_start,frontend_listview_warning_end:frontend_listview_warning_end,frontend_record_detail_related_list_warning:frontend_record_detail_related_list_warning,frontend_record_detail_related_lists_warning:frontend_record_detail_related_lists_warning,frontend_record_detail_related_lists_info:frontend_record_detail_related_lists_info,frontend_calendar_listWeek:frontend_calendar_listWeek,frontend_message_no_permission_to_edit:frontend_message_no_permission_to_edit,frontend_message_modification_successful:frontend_message_modification_successful,frontend_message_modification_failed:frontend_message_modification_failed,frontend_objects_related_alert_start:frontend_objects_related_alert_start,frontend_objects_related_alert_end:frontend_objects_related_alert_end,frontend_no_records_found:frontend_no_records_found,frontend_records_no_allowedit:frontend_records_no_allowedit,frontend_app_menu_save_order_group_nesting_error:frontend_app_menu_save_order_group_nesting_error};const resources={en:{translation:en_us},"zh-CN":{translation:zh_cn}};var locale=window.navigator.language;async function getQuickEditSchema(e,t,n){let r=e.fields[t.name],o=!1;window.amisRequire&&window.amisRequire("amis")?o=window.amisRequire("amis").version[0]>=3&&window.amisRequire("amis").version[2]>=2:window.Amis&&(o=window.Amis.version[0]>=3&&window.Amis.version[2]>=2);const a=n.objectName+"_"+r.name+"_quickEdit";var i={body:[],id:a,className:"steedos-table-quickEdit"};if("avatar"!=r.type&&"image"!=r.type&&"file"!=r.type&&o){const e={submit:{actions:[{actionType:"validate",componentId:a,outputVar:"form_validate_result"},{actionType:"custom",script:`\n let items = _.cloneDeep(event.data.items);\n let selectedItems = _.cloneDeep(event.data.selectedItems);\n if(event.data.isBatchEdit){\n selectedItems.forEach(function(selectedItem){\n selectedItem._display.${r.name} = event.data._display.${r.name};\n doAction({actionType: 'setValue', "args": {"value": selectedItem._display},componentId: "${n.objectName}" + "_display_" + selectedItem._index});\n doAction({actionType: 'setValue', "args": {"value": event.data.${r.name}},componentId: "${n.objectName+"_"+r.name+"_"}" + selectedItem._index});\n })\n }else{\n doAction({actionType: 'setValue', "args": {"value": event.data._display},componentId: "${n.objectName}" + "_display_" + event.data._index});\n doAction({actionType: 'setValue', "args": {"value": event.data.${r.name}},componentId: "${n.objectName+"_"+r.name+"_"}" + event.data._index});\n }\n `,expression:"${!form_validate_result.error}"},{actionType:"closeDialog",expression:"${!form_validate_result.error}"}]}};i.onEvent=e}if(r.disabled)i=!1;else{var s=Object.assign({},_$1__namespace.omit(n,"buttons"),{defaults:Object.assign({},n.defaults,{formSchema:i})}),l=await convertSFieldToAmisField(r,!1,s);if(l){i.body.push(l);var c="";i.body[0].onEvent={};const e=function(e){return{actions:[{actionType:"custom",script:`\n var _display = _.cloneDeep(event.data._display);\n ${e}\n doAction({actionType: 'setValue', "args": {"value": {_display}},componentId: "${a}"});\n `}]}};switch(r.type){case"lookup":case"master_detail":let t=i.body[0].labelField||"label",n=i.body[0].valueField||"value";c=r.multiple?`\n const preData = _.cloneDeep(event.data.__super.${r.name});\n if(preData && event.data.${r.name}.length < preData.length){\n let deletedIndex;\n preData.forEach(function(item,index){\n if(_.indexOf(event.data.${r.name}, item) == -1) _display["${r.name}"].splice(index, 1);\n })\n }else{\n _display["${r.name}"] = [];\n event.data.value.forEach(function(val,index){\n const item = _.find(event.data.selectedItems, { ${n}: val });\n _display["${r.name}"].push(\n {\n "label": item.${t},\n "value": item[event.data.uiSchema.idFieldName],\n "objectName": "${r.reference_to}"\n }\n )\n })\n }\n \n `:`\n if(event.data.value){\n _display["${r.name}"] = {\n "label": event.data.selectedItems.${t},\n "value": event.data.selectedItems[event.data.uiSchema.idFieldName],\n "objectName": "${r.reference_to}"\n }\n }else{\n _display["${r.name}"] = {}\n }\n `,i.body[0].onEvent.change=e(c);break;case"select":c=`\n _display["${r.name}"] = event.data.selectedItems.label;\n `,i.body[0].onEvent.change=e(c);break;case"percent":c=`\n if(event.data.value){\n _display["${r.name}"] = event.data.value.toFixed(${r.scale}) + '%';\n } else {\n _display["${r.name}"] = event.data.value;\n }\n \n `,i.body[0].onEvent.change=e(c);break;case"time":c=`\n _display["${r.name}"] = moment(event.data.value).utc().format('HH:mm');\n `,i.body[0].onEvent.change=e(c);break;case"date":c=`\n _display["${r.name}"] = moment(event.data.value).utc().format('YYYY-MM-DD');\n `,i.body[0].onEvent.change=e(c);break;case"datetime":c=`\n _display["${r.name}"] = moment(event.data.value).format('YYYY-MM-DD HH:mm');\n `,i.body[0].onEvent.change=e(c);break;case"boolean":c=`\n _display["${r.name}"] = event.data.value?"√":"";\n `,i.body[0].onEvent.change=e(c);break;case"number":case"currency":c=`\n _display["${r.name}"] = event.data.value && event.data.value.toFixed(${r.scale});\n `,i.body[0].onEvent.change=e(c);break;case"file":var u="";r.multiple?(c=`\n _display["${r.name}"].push({\n "name": event.data.result.name,\n "url": event.data.result.url,\n "value": event.data.result.value,\n "_id": event.data.result.value,\n "type": event.data.item.type,\n "size": event.data.item.size\n });\n `,u=`\n _.remove(_display["${r.name}"], function(file){return file.url == event.data.item.url});\n `):(c=` \n _display["${r.name}"] = {\n "name": event.data.result.name,\n "url": event.data.result.url,\n "value": event.data.result.value,\n "_id": event.data.result.value,\n "type": event.data.item.type,\n "size": event.data.item.size\n };\n `,u=`\n if(_display["${r.name}"].url == event.data.item.url){\n _display["${r.name}"] = {};\n }\n `),i.body[0].onEvent.success=e(c),i.body[0].onEvent.remove=e(u);break;case"avatar":case"image":i.body[0].receiver.adaptor=`\n const superData = (typeof context != 'undefined') ? context : api.body; \n const { context:pageContext } = superData; \n var rootUrl = pageContext.rootUrl + "/api/files/${r.type}s/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: rootUrl + payload._id,//为了实现图片crud的回显,需要将value从id改为url,当保存数据数据时,再在发送适配器内重新将id提取出来\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `}i.body[0].visibleOn="${quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}",i.body.push({type:"service",body:[{type:"tpl",tpl:instance.t("frontend_records_no_allowedit"),visibleOn:"${!quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}"},{type:"spinner",showOn:"${quickedit_record_permissions_loading}"}],onEvent:{init:{actions:[{actionType:"custom",script:`\n crudScoped = event.context.scoped.getComponentById('${n.crudId}');\n const selectedItems = crudScoped && crudScoped.control.getSelected();\n doAction({\n "componentId": "${a}",\n "actionType": "setValue",\n "args": {\n "value": {\n selectedItems\n }\n }\n });\n `},{actionType:"setValue",componentId:a,args:{value:{quickedit_record_permissions_loading:!0}}},{actionType:"ajax",args:{api:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},cache:3e4,messages:{failed:"失败了呢。。"}}},expression:"${!recordPermissions.modifyAllRecords}"},{actionType:"setValue",componentId:a,args:{value:{quickedit_record_permissions_loading:!1}}},{actionType:"setValue",componentId:a,args:{value:{quickedit_record_permissions:"${recordPermissions.modifyAllRecords ? {'allowEdit': true} : event.data}"}}}]}}}),"avatar"!=r.type&&"image"!=r.type&&"file"!=r.type&&o&&i.body.push({name:"isBatchEdit",type:"checkbox",option:[{type:"tpl",tpl:"更新${COUNT(selectedItems)}个选定记录"},{type:"spinner",showOn:"${batchPermissionLoading}",size:"sm",className:"mr-4"}],visibleOn:"${ARRAYSOME(selectedItems, item => item._id === _id) && COUNT(selectedItems)>1 && quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}",disabledOn:"${batchPermissionLoading}",onEvent:{change:{actions:[{actionType:"setValue",componentId:a,args:{value:{batchPermissionLoading:!0}},expression:"${event.data.value}"},{actionType:"ajax",args:{api:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{query:'{rows:${objectName}(filters:["_id","in",${selectedItems | pick:_id | split | json}]){_id,_permissions{allowEdit}}}'},adaptor:"\n const noPermission = [];\n payload.data.rows.forEach(function (row) {\n if(!row._permissions.allowEdit){\n noPermission.push(row._id);\n }\n })\n payload.data.noPermission = noPermission;\n return payload;\n "}},expression:"${event.data.value && !recordPermissions.modifyAllRecords}"},{actionType:"setValue",componentId:a,args:{value:{batchPermissionLoading:!1}},expression:"${event.data.value}"},{actionType:"dialog",dialog:{title:"记录权限",showCloseButton:!1,body:[{type:"tpl",tpl:"当前选中记录中,有${COUNT(noPermission)}条记录无编辑权限,是否需要批量编辑其他记录?"}],onEvent:{confirm:{actions:[{actionType:"custom",script:`\n const noPermission = event.data.noPermission;\n const crudComponent = event.context.scoped.getComponentById("${n.crudId}");\n let selectedItems = crudComponent && crudComponent.props.store.selectedItems.concat();\n noPermission.forEach(function (item) {\n crudComponent && crudComponent.unSelectItem(_.find(selectedItems,{_id:item}));\n _.remove(selectedItems, (selected) => selected._id === item);\n })\n doAction({\n "componentId": "${a}",\n "actionType": "setValue",\n "args": {\n "value": {\n selectedItems\n }\n }\n });\n `},{actionType:"setValue",componentId:a,args:{value:{isBatchEdit:!0}}}]},cancel:{actions:[{actionType:"setValue",componentId:a,args:{value:{isBatchEdit:!1}}}]}}},expression:"${COUNT(event.data.noPermission)>0}"}]}}})}else i=!1;"lookup"!=r.type||o||(i=!1),"file"==r.type&&r.multiple&&(i=!1),"location"==r.type&&(i=!1),"color"==r.type&&(i={type:"input-color"})}return i}function getFieldWidth(e){const t=null;return"string"==typeof e?isNaN(e)?e||t:Number(e)||t:"number"==typeof e?e:t}async function getColumnItemOnClick(e,t){let n=t.objectName;e.is_name||e.name===t.labelFieldName||(n=e.reference_to);const r=await getPage({type:"record",appId:t.appId,objectName:n,formFactor:t.formFactor}),o=r?Object.assign({},r.schema,{recordId:`\${${t.idFieldName}}`,data:{...r.schema.data,_inDrawer:!0,recordLoaded:!1,recordId:`\${${t.idFieldName}}`,_lookupObjectName:t.objectName}}):{type:"steedos-record-detail",objectApiName:"${objectName}",recordId:`\${${t.idFieldName}}`,showBackButton:!1,showButtons:!0,data:{_inDrawer:!0,recordLoaded:!1,_lookupObjectName:t.objectName}};return e.is_name||e.name===t.labelFieldName||(o.objectApiName=e.reference_to,o.recordId=`\${_display.${e.name}.value}`),{click:{actions:[{actionType:"drawer",drawer:{type:"drawer",title:"&nbsp;",headerClassName:"hidden",size:"lg",width:window.drawerWidth||"70%",bodyClassName:"p-0 m-0 bg-gray-100",closeOnEsc:!0,closeOnOutside:!0,resizable:!0,actions:[],body:[o],className:"steedos-record-detail-drawer app-popover",id:"u:fc5f055afa8c"},preventDefault:!0}]}}}async function getTableColumns(e,t,n){const r=[];n.isLookup||n.isInputTable||n.enable_tree||r.push({name:"_index",type:"text",width:32,placeholder:""});const o=n.permissions?.allowEdit&&!n.isLookup&&0!=n.enable_inline_edit;for(const a of t){if(a.hidden||a.extra)continue;const t=o?await getQuickEditSchema(e,a,n):o;let i=`steedos-table-${a.type}-field`;"Safari"===getBowserType()||1!=a.wrap?i+=" whitespace-nowrap ":i+=" break-words ","object"==typeof a.amis?.className?i={[i]:"true",...a.amis.className}:"string"==typeof a.amis?.className&&(i=`${i} ${a.amis.className} `);let s,l=_$1__namespace.clone(a.amis);delete l?.className;let c=!!(window&&window.nw&&window.nw.require);if((a.is_name||a.name===n.labelFieldName)&&"cms_files"===n.objectName&&c){const e=`\n var data = event.data;\n var file_name = data.versions ? data.name : "${a.label}";\n var file_id = data.versions && data.versions[0] && data.versions[0]._id;\n window.previewFile && window.previewFile({file_name, file_id});\n `;s=Object.assign({},{type:"button",label:`<%=data.versions ? data.name : "${a.label}"%>`,className:i,level:"link",onEvent:{click:{actions:[{args:{},actionType:"custom",script:e,expression:"!!(window && window.nw && window.nw.require)"}]}}},l)}else if("toggle"===a.type)s=Object.assign({},{type:"switch",name:a.name,label:a.label,width:getFieldWidth(a.width),toggled:a.toggled,static:!0,className:i},l,{name:a.name});else if("avatar"===a.type||"image"===a.type||"file"===a.type)s=Object.assign({},{type:"switch",name:a.name,label:a.label,width:getFieldWidth(a.width),toggled:a.toggled,static:!0,className:i,...await getAmisFileReadonlySchema(a)},l);else if("select"===a.type){const e=getSelectMap(a.options);s=Object.assign({},{type:"static-mapping",name:a.name,label:a.label,map:e,sortable:a.sortable,width:getFieldWidth(a.width),toggled:a.toggled,className:i,inputClassName:"inline",static:!0},l,{name:a.name})}else if("lookup"===a.type||"master_detail"===a.type)s=Object.assign({},{type:"static-wrapper",name:a.name,label:a.label,sortable:a.sortable,width:getFieldWidth(a.width),toggled:a.toggled,className:i,size:"none",inputClassName:"inline",body:{type:"steedos-field",static:!0,isLookupInTable:!0,config:{type:"lookup",reference_to:a.reference_to,name:a.name,is_name:a.is_name,label:null,multiple:a.multiple,amis:Object.assign({},l,{label:null})}}},l,{name:a.name});else{const e=await getFieldTpl(a,n);let t="static-text";if(e?t="static":"html"===a.type?t="static-markdown":"url"===a.type&&(t=a.show_as_qr?"static-qr-code":"input-url"),"textarea"===a.type&&(i+="min-w-56"),!a.hidden&&!a.extra){s=Object.assign({},{name:a.name,label:a.label,sortable:a.sortable,width:getFieldWidth(a.width),type:t,tpl:e,toggled:a.toggled,className:i,inputClassName:"inline",static:!0,options:"html"===a.type?{html:!0}:null},l,{name:a.name}),"color"===a.type&&(s.type="color",s.defaultColor=null);let r=!1;r=n.isRelated&&(a.is_name||a.name===n.labelFieldName),window.innerWidth>=768&&r&&(s.onEvent=await getColumnItemOnClick(a,n))}}s&&(t&&(s.quickEdit=t,s.quickEditEnabledOn="${is_system !== true}"),s.id=`${n.objectName}_${a.name}_\${_index}`,r.push(s))}if(!n.isLookup&&!n.isInputTable&&!_$1__namespace.some(r,{name:n.labelFieldName})){const e=Router.getObjectDetailPath({...n,formFactor:n.formFactor,appId:"${appId}",objectName:n.objectName||"${objectName}",recordId:`\${${n.idFieldName}}`});r[0].type="tpl",r[0].tpl=`<a href="${e}">\${${r[0].name}}</a>`}return r}function getMobileLines(e){let t=[],n=[],r=!1,o=!0,a="",i="flex items-center justify-between mb-1";return e.forEach((function(e){var s;r&&t.length<3&&(t.push({type:"wrapper",body:n,size:"none",className:i}),n=[]),o?(a="steedos-listview-item-left truncate",e.field.is_wide&&(a="steedos-listview-item-wide"),0===t.length&&(a+=" font-bold text-gray-800")):a="steedos-listview-item-right truncate ml-2 flex flex-shrink-0",s="object"==typeof e.field.amis?.className?{[a]:"true",...e.field.amis.className}:"string"==typeof e.field.amis?.className?`${a} ${e.field.amis.className} `:a,n.push({type:"tpl",tpl:e.tpl,className:s}),e.field.is_wide?(o=!0,r=!0):(o=!o,r=o)})),n.length&&t.length<3&&t.push({type:"wrapper",body:n,size:"none",className:i}),t}async function getMobileTableColumns(e,t){const n=[];let r={},o=[];for(const n of e){let e="";n.is_name||n.name===t.labelFieldName?(r=n,t=Object.assign({},t,{onlyDisplayLookLabel:!0}),e=await getFieldTpl(n,t)):"avatar"===n.type||"image"===n.type||"file"===n.type?e=`\${_display.${n.name}.name}`:("lookup"!==n.type&&"master_detail"!==n.type||(t=Object.assign({},t,{onlyDisplayLookLabel:!0})),e=await getFieldTpl(n,t)),e||(e=`\${${n.name}}`),n.hidden||n.extra||o.push({field:n,tpl:e})}const a=getNameTplUrl(r,t),i=getMobileLines(o);let s={name:r.name,label:"split"==t.displayAs?"":r.label,sortable:r.sortable,type:"button",level:"link",actionType:"link",link:a,innerClassName:{"steedos-listview-item block text-gray-500":"true","max-w-[360px]":"${display == 'split'}"},body:{type:"wrapper",body:i,size:"none",className:"p-1"}};return"cms_files"===t.objectName&&(s=window.Meteor?.isCordova?{...s,actionType:"",link:"",onEvent:{click:{actions:[{script:'\n let cms_url = \'\';\n let value = event.data.versions[0];\n if(value){\n if(value.url){\n cms_url = value.url;\n }else{\n cms_url = Steedos.absoluteUrl("/api/files/files/"+value+"?download=true");\n }\n }\n Steedos.cordovaDownload(encodeURI(cms_url), event.data.name);\n ',actionType:"custom"}],weight:0}}}:{...s,actionType:"",link:"",onEvent:{click:{actions:[{actionType:"link",args:{link:a}}],weight:0}}}),n.push(s),n}function getDefaultParams$1(e){return{perPage:e.top||e.perPage||config.listView.perPage}}function getButtonVisibleOn$1(e){let t=e.visible;if(e._visible&&(t=e._visible),_$1.isBoolean(t)&&(t=t.toString()),t){if(t.trim().startsWith("function")){t=t.replace("function","function __visible");return`(function _visible(){try{return (${t})(objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)}catch(e){console.error(e)}})()`}return t}if("amis_button"===e.type){const t=e.amis_schema;if(t&&t.body&&t.body.length>0){return t.body[0].visibleOn}}}async function getTableOperation(e){const t=e.buttons,n=[];if(_$1.each(t,(e=>{_$1.isBoolean(e.visible)&&(e.visible=e.visible.toString()),n.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOnAlias:getButtonVisibleOn$1(e),className:"antd-Button--default"})})),!(n.length<1))return{type:"operation",label:"&nbsp;",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation w-10 is-sticky is-sticky-right is-sticky-first-right",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:n,placement:"bottomRight",overlayClassName:"border rounded !min-w-[160px]",trigger:["click"],id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",requestAdaptor:"api.data={}; return api;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n payload = {\n record: {\n recordPermissions: payload\n }\n };\n return payload;\n "}}]}}async function getDefaultCrudCard(e,t){let n,r=t?.labelFieldName||"name",o=[];e.forEach((function(e){delete e.quickEdit,delete e.width,e.name===r?n=e:"_index"!==e.name&&o.push(e)}));let a={header:{title:n.tpl},body:o,toolbar:[]};if(!("SMALL"===t.formFactor||["split"].indexOf(t.displayAs)>-1)){let e=await getTableOperation(t);e&&(e.className+=" inline-block w-auto"),a.toolbar.push(e)}return a}async function getTableSchema$1(e,t,n){n||(n={});let{isLookup:r,hiddenColumnOperation:o}=n;const a=n.defaults,i=a&&a.listSchema||{};let s=[],l="SMALL"===n.formFactor||["split"].indexOf(n.displayAs)>-1;if(r&&(l=!1),i.mode&&"table"!==i.mode&&(l=!1),l)s=await getMobileTableColumns(t,n);else{if(s=await getTableColumns(e,t,n),"cards"===i.mode){let e=i.card;return e||(e=await getDefaultCrudCard(s,n)),{mode:"cards",perPageAvailable:[20,50,100,500],name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 border-solid border-b",className:"",draggable:!1,card:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!!r,labelTpl:`\${${n.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1,...getDefaultParams$1(n)}}if(!r&&!o){const e=await getTableOperation(n);s.push(e)}}const c={};return n.enable_tree&&(c.expandConfig={expand:"first"}),{mode:"table",perPageAvailable:[20,50,100,500],name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 border-solid border-b",className:"",draggable:!1,columns:s,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!!r,labelTpl:`\${${n.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1,...c,...getDefaultParams$1(n)}}function getScriptForAddUrlPrefixForImgFields(e,t){let n=[],r={};return e.forEach((e=>{_$1__namespace.includes(["image","avatar"],e.type)&&(n.push(e.name),r[e.name]={name:e.name,type:e.type,multiple:e.multiple})})),n.length?`\n // image字段值添加URL前缀\n let imgFieldsKeys = ${JSON.stringify(n)};\n let imgFields = ${JSON.stringify(r)};\n imgFieldsKeys.forEach((item)=>{\n let imgFieldValue = data[item];\n let imgFieldDisplayValue = data._display && data._display[item];\n if(imgFieldValue && imgFieldValue.length){\n let fieldProps = imgFields[item];\n if(fieldProps.multiple){\n if(imgFieldDisplayValue instanceof Array){\n data[item] = imgFieldDisplayValue.map((i)=>{ \n const url = window.getImageFieldUrl(i.url, ${t});\n return url;\n });\n }\n }else{\n const url = imgFieldDisplayValue && window.getImageFieldUrl(imgFieldDisplayValue.url, ${t});\n data[item] = url;\n }\n }\n })\n `:""}async function getListBody(e,t){const n=[];for(const r of e){const e=await getFieldTpl(r,t);let o="text";e&&(o="tpl"),r.hidden||r.extra||n.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:o,tpl:e,toggled:r.toggled})}return{type:"hbox",columns:n}}function getDefaultParams(e){return{perPage:e.top||e.perPage||20}}async function getListSchema$1(e,t){return{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...(await getListBody(e,t)).columns],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:instance.t("frontend_form_view"),type:"button",actionType:"link",link:Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]},...getDefaultParams(t)}}instance.use(initReactI18next).init({resources:resources,lng:locale,interpolation:{escapeValue:!1}}),"function"==typeof SuppressedError&&SuppressedError;const getSchema$5=async(e,t)=>{const n=`\n let formSchema = {\n "type": "steedos-object-form",\n "label": "对象表单",\n "objectApiName": "\${objectName}",\n "recordId": "",\n "mode": "edit",\n };\n\n if (payload && payload.schema) {\n formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;\n }\n\n const fields = ${JSON.stringify(e.fields)};\n const selectedRowResponseResult = api.body.selectedRowResponseResult;\n let defaultData = {}; \n\n if(!_.isEmpty(selectedRowResponseResult)){\n const fieldsKeys = _.keys(fields);\n // 如果新建记录时复制的数据中有omit或其他不相关字段数据时不应该一起保存到数据库,\n // 原规则见:https://github.com/steedos/steedos-frontend/issues/297\n _.forEach(selectedRowResponseResult, (val, key) => {\n if (fieldsKeys.indexOf(key) > -1 && fields[key].omit !== true && key != 'owner') {\n defaultData[key] = val;\n }\n })\n }\n\n const _master = api.body._master;\n if(_master && _master._isRelated){\n const relatedKey = _master.relatedKey;\n const masterObjectName = _master.objectName;\n const recordId = _master.recordId || _master.record._id;\n let relatedKeySaveValue = recordId;\n const relatedField = fields[relatedKey];\n if(relatedField && relatedField.reference_to_field && relatedField.reference_to_field !== '_id'){\n relatedKeySaveValue = _master.record[relatedField.reference_to_field];\n }\n let relatedKeyValue; \n if(relatedField && !_.isString(relatedField.reference_to)){\n relatedKeyValue = { o: masterObjectName, ids: [relatedKeySaveValue] };\n }else if (relatedField && relatedField.multiple) {\n relatedKeyValue = [relatedKeySaveValue];\n } else {\n relatedKeyValue = relatedKeySaveValue;\n }\n defaultData[relatedKey]=relatedKeyValue;\n }\n\n if(!_.isEmpty(defaultData)){\n if(payload.schema){\n // 表单微页面第一层要求是page\n formSchema.data.defaultData = defaultData;\n }else{\n formSchema.defaultData = defaultData;\n }\n }\n return {\n data: formSchema\n };\n `;return{type:"service",body:[{type:"button",level:"primary",label:instance.t("frontend_form_new"),id:"u:standard_new",onEvent:{click:{weight:0,actions:[{actionType:"custom",script:"\n const isLookup = event.data.isLookup;\n if(isLookup){\n // lookup弹出窗口的新建功能不需要支持复制新建\n return;\n }\n const uiSchema = event.data.uiSchema;\n const objectName = event.data.objectName;\n const crudId = event.data.crudId || \"listview_\" + objectName;\n const listViewRef = event.context.scoped.getComponentById(crudId);\n const selectedItems = listViewRef && listViewRef.props.store.toJSON().selectedItems || [];\n event.data.selectedIds = _.map(selectedItems, uiSchema.idFieldName || '_id');\n "},{actionType:"ajax",outputVar:"selectedRowResponseResult",args:{api:{url:"${context.rootUrl}/api/v1/${uiSchema.name}/${selectedIds|first}",method:"get"}},expression:"${selectedIds.length > 0}"},{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$",_master:"${_master}","_master._isRelated":"${_isRelated}","_master.relatedKey":"${relatedKey}",appId:"${appId}",objectName:"${objectName}",context:"${context}",global:"${global}",listViewId:"${listViewId}",displayAs:"${displayAs}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",listName:"${listName}",selectedRowResponseResult:"${selectedRowResponseResult}",_lookupObjectName:"${_lookupObjectName}"},title:instance.t("frontend_form_new")+" ${uiSchema.label | raw}",body:[{type:"service",id:"u:1678e148c4d2",messages:{},schemaApi:{data:{isLookup:"${isLookup}",_master:"${_master}",url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",selectedRowResponseResult:"${selectedRowResponseResult}"},url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",method:"get",messages:{},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"return { ...api, url: api.body.url }",adaptor:n}}],showCloseButton:!0,id:"u:e11347411d2d",closeOnEsc:!1,closeOnOutside:!1,size:"lg",actions:[{type:"button",actionType:"cancel",label:instance.t("frontend_form_cancel"),className:"form-btn-cancel"},{type:"button",label:instance.t("frontend_form_save_and_new"),actionType:"confirm",close:!1,id:"confirmAndNew",className:"form-btn-save_and_new"},{type:"button",actionType:"confirm",label:instance.t("frontend_form_save"),primary:!0,className:"form-btn-save"}]}}]}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"}};async function getObjectFieldsFilterFormSchema(e){e||(e={});return{type:"service",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"SMALL"===e.formFactor?"slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden":"slds-filters__body p-0 sm:grid sm:gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 p-1",style:{"max-height":"SMALL"===e.formFactor?"30vh":"unset"},schemaApi:{method:"post",data:{$self:"$$",query:""},url:"/api/amis/health_check?reload=${filterFormSearchableFields|join}",adaptor:`\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n "body": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn("run function getFieldSearchable failed.");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n var ctx = ${JSON.stringify(e)};\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}async function getObjectFieldsFilterBarSchema(e,t){t||(t={});const n=t.searchable_fields,r=!!t.auto_open_filter,o="btn_filter_form_search_"+(new Date).getTime(),a=await getObjectFieldsFilterFormSchema(t),i=t.keywordsSearchBoxName||"__keywords",s=`\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取,因为本地存储中的过滤条件自动填充到表单上时filterForm.getValues()拿不到。\n let filterFormValues = event.data;\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n // 同步__changedFilterFormValues中的值\n // crud && crud.setData({__changedFilterFormValues: {}});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === "crud";\n // });\n // const removedValues = {};\n // // 设置搜索项中移除搜索项后,filterFormValues未把其字段的空值保存为own property,即hasOwnProperty属性中\n // // 这会造成handleFilterSubmit时把移除掉的搜索项字段之前的值加到过滤条件中\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === "" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n // 点击搜索的时候自动收起搜索栏\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 500\n }\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n let showFieldsFilter = true;\n // const isMobile = window.innerWidth < 768;\n // if(event.data.__from_fields_filter_settings_confirm){\n // // 如果是从设置搜索项点击确认按钮触发的搜索事件不应该自动关闭搜索栏\n // showFieldsFilter = true;\n // }\n // else if(isMobile){\n // // 如果是手机端,点击搜索后自动关闭搜索栏\n // showFieldsFilter = false;\n // }\n // else if(event.data.displayAs === "split") {\n // // PC上分栏模式下的列表,始终按手机上效果处理,即自动关闭搜索栏\n // showFieldsFilter = false;\n // }\n // else if(window.innerHeight >= 1200){\n // // 高分辨率屏幕(2k+),列表高度比较高,没必要自动关闭搜索栏\n // showFieldsFilter = true;\n // }\n filterService.setData({showFieldsFilter});\n // resizeWindow();//已迁移到搜索栏表单提交事件中执行,因为表单项change后也会触发表单提交了\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});\n `,l=`\n // console.log("===onCancelScript=form==");\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n var filterFormValues = filterForm.getValues();\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // 刷新浏览器后,filterFormValues值是空的,只能从本地存储中取出并重置为空值\n const listName = event.data.listName;\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n }\n }\n else{\n const keywordsSearchBoxName = "${i}";\n //lookup字段保留快速搜索条件\n removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];\n }\n filterForm.setValues(removedValues);//会把表单提交到toolbar的快速搜索区域,造成在快速搜索框中触发搜索时再次把搜索表单中的字段值清除掉的bug,已单独在快速搜索框那边添加搜索事件代码处理过了\n // 以下方法都无法实现清除表单值\n // filterForm.setValues({}, true)\n // filterForm.reset();\n // filterForm.handleAction({},{\n // "actionType": "setValue",\n // "args": {\n // "value": removedValues\n // }\n // });\n // 下面触发clear动作可以清除表单值,且不会把表单提交到toolbar的快速搜索区域,但是会把金额等范围字段清空成非范围字段\n // filterForm.handleAction({},{\n // "actionType": "clear"\n // });\n\n // 清除__changedFilterFormValues中的值\n // crud && crud.setData({__changedFilterFormValues: {}});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = {};\n crud.setData(crudData);\n }\n filterForm.handleFormSubmit(event);\n // crud.handleFilterSubmit(removedValues);\n\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");\n filterFormService.setData({showFieldsFilter: !!!filterFormService.props.data.showFieldsFilter});\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 100\n }\n });\n \n // 移除搜索按钮上的红点\n // let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n `,c=t.filter_form_data,u=`\n const searchableFields = ${JSON.stringify(n)};\n const autoOpenFilter = ${r};\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listName = data.listName;\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields";\n if(isLookup){\n searchableFieldsStoreKey += "/lookup/" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + "/" + (data.context && data.context.userId);\n let defaultSearchableFields = localStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(",");\n }\n if(_.isEmpty(defaultSearchableFields) && searchableFields){\n if(searchableFields.length){\n defaultSearchableFields = _.map(searchableFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.filterable;\n }), "sort_no"),\n "name"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n if(isLookup){\n let filterFormValues = ${_.isObject(c)?JSON.stringify(c):'"'+c+'"'} || {};\n const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;\n if (isAmisFormula){\n filterFormValues = AmisCore.evaluate(filterFormValues, data) || {};\n }\n if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){\n let fields = data.uiSchema && data.uiSchema.fields;\n filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);\n setData({ ...filterFormValues });\n }\n // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器\n setData({ showFieldsFilter: autoOpenFilter });\n }\n else{\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n const omitedEmptyFormValue = _.omitBy(filterFormValues, function(n){\n return _.isNil(n) \n || (_.isObject(n) && _.isEmpty(n)) \n || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))\n || (_.isString(n) && n.length === 0);\n });\n // 有过滤条件时只显示搜索按钮上的红点,不自动展开搜索栏\n if(!_.isEmpty(omitedEmptyFormValue)){\n let scopeRef = SteedosUI.getRef(data.$scopeId);\n let crudService = scopeRef && scopeRef.parent.getComponentById("service_listview_" + data.objectName)\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n // setData({ showFieldsFilter: true });//自动展开搜索栏\n }\n }\n }\n }\n `,d=`\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const value = data.fields;\n const scope = event.context.scoped;\n // 这里的filterForm不是name为"listview-filter-form"的内部form,而是crud自带的filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields";\n if(isLookup){\n searchableFieldsStoreKey += "/lookup/" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + "/" + (data.context && data.context.userId);\n localStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === "string"){\n preSearchableFields = preSearchableFields.split(",");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // 递归children找到listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // 这里第二层form才是真正要提交到crud过滤条件的form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, "form", "listview-filter-form");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + "/crud";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 100\n }\n });\n // ===END===\n `;return{type:"service",name:"service_listview_filter_form",data:{},dataProvider:{inited:u},body:{type:"wrapper",body:{type:"wrapper",body:[a,{type:"wrapper",body:{type:"wrapper",body:[{type:"button",level:"primary",id:o,label:instance.t("frontend_fields_filter_button_search"),icon:"fa fa-search",onEvent:{click:{actions:[{actionType:"custom",script:s}]}}},{type:"button",label:instance.t("frontend_form_reset"),name:"btn_filter_form_cancel",onEvent:{click:{actions:[{actionType:"custom",script:l}]}}},{type:"button",label:instance.t("frontend_fields_filter_button_settings"),onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",size:"md",title:instance.t("frontend_fields_filter_button_settings"),body:[{type:"form",title:"",body:[{label:"",type:"transfer",name:"fields",id:"u:92c0b3cccca0",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{$self:"$$"},requestAdaptor:"",adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const options = ((payload.data && payload.data.options) || []).filter(function(item){\n let field = fields[item.value];\n // TODO: 暂时禁用location类型字段的列表搜索\n return !!field && window.isFieldTypeSearchable(field.type) && field.type !== 'location'\n });\n payload.data = {\n \"options\": options\n };\n return payload;\n "},options:[],required:!0,placeholder:"-",className:"col-span-2 m-0",checkAll:!1,searchable:!0,sortable:!0,joinValues:!1,extractValue:!0,multiple:!0}],id:"u:e5ac506d5683",mode:"normal",persistData:!1,promptPageLeave:!0,name:"form",debug:!1,actions:[],panelClassName:"m-0",bodyClassName:"p-4",className:"steedos-amis-form"}],actions:[{type:"button",label:instance.t("frontend_form_cancel"),onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:4e447b5ca72a"},{type:"button",label:instance.t("frontend_form_confirm"),onEvent:{click:{actions:[{actionType:"custom",script:d},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},level:"link"}],size:"xs",className:"space-x-2"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters px-0"},size:"xs",className:"p-0",visibleOn:"this.showFieldsFilter"},className:"bg-white"}}const getNewListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_new_label"),className:"steedos-listview-new-button",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_new_title"),data:{all:"${uiSchema.list_views.all}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",targetObjectName:"${objectName}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",layout:"normal",defaultData:{"&":"${list_view}",name:"",label:"",filters:"",shared:!1,object_name:"${targetObjectName}",_id:"",shared_to:null,shared_to_organizations:null,locked:!1,owner:null,company_id:null,company_ids:null,is_system:!1},fieldsExtend:fieldsExtend$5(),fields:fields$1(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"},{actionType:"custom",script:"window.location.reload();"}]}},messages:{success:instance.t("frontend_listview_control_new_message_success"),failed:instance.t("frontend_listview_control_new_message_failed")}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields$1(){return["label","name","object_name","filter_scope","show_count","columns","sort","filters","mobile_columns","searchable_fields","is_system","shared","shared_to","shared_to_organizations"]}function fieldsExtend$5(){return{group:"",label:{group:"",is_wide:!0},name:{group:"",amis:{hidden:!0,required:!1}},object_name:{group:"",amis:{hidden:!0}},filter_scope:{group:"",amis:{hidden:!0,required:!1}},columns:{group:"",amis:{hidden:!0,required:!1}},mobile_columns:{group:"",amis:{hidden:!0,required:!1}},searchable_fields:{group:"",amis:{hidden:!0,required:!1}},filter_fields:{group:"",amis:{hidden:!0,required:!1}},scrolling_mode:{group:"",amis:{hidden:!0,required:!1}},sort:{group:"",amis:{hidden:!0,required:!1}},show_count:{group:"",amis:{hidden:!0,required:!1}},type:{group:"",amis:{hidden:!0,required:!1}},shared:{group:"",amis:{visibleOn:"${false}"}},shared_to:{group:"",amis:{type:"radios",inline:!1}},shared_to_organizations:{group:""},filters:{group:"",amis:{hidden:!0}}}}async function getObjectListHeaderFieldsFilterBar(e,t,n){return await getObjectFieldsFilterBarSchema(e,n)}const getCopyListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_clone_label"),onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_clone_title"),data:{listName:"${listName}",targetObjectName:"${objectName}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",layout:"normal",defaultData:{"&":"${list_view}",name:"",label:instance.t("frontend_listview_control_clone_defaultData_label_start")+" ${list_view.label} "+instance.t("frontend_listview_control_clone_defaultData_label_end"),shared:!1,object_name:"${targetObjectName}",_id:"",shared_to:null,shared_to_organizations:null,locked:!1,owner:null,company_id:null,company_ids:null,is_system:!1},fieldsExtend:fieldsExtend$4(),fields:fields(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"},{actionType:"custom",script:"window.location.reload();"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields(){return["label","name","object_name","filter_scope","show_count","columns.$.field","columns.$.width","sort.$.field_name","sort.$.order","filters","mobile_columns.$.field","searchable_fields.$.field","is_system","shared","shared_to","shared_to_organizations"]}function fieldsExtend$4(){return{label:{group:"",is_wide:!0},name:{is_wide:!0,amis:{hidden:!0}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0}},columns:{amis:{hidden:!0}},filter_fields:{amis:{hidden:!0}},scrolling_mode:{amis:{hidden:!0}},sort:{amis:{hidden:!0}},show_count:{amis:{hidden:!0}},type:{amis:{hidden:!0}},shared:{group:"",amis:{visibleOn:"${false}"}},shared_to:{group:"",amis:{type:"radios",inline:!1}},shared_to_organizations:{group:""},filters:{group:"",amis:{hidden:!0}}}}const getRenameListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_rename_label"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_rename_title"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",layout:"normal",mode:"edit",fields:["label"],fieldsExtend:'{\n "label":{\n "is_wide": true\n }\n}',onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${name}",blank:!1},actionType:"url"},{actionType:"custom",script:"window.location.reload();"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}}),getSetListviewShareButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_share"),disabledOn:"!(global.user.is_space_admin && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_share"),data:{recordId:"${uiSchema.list_views[listName]._id}",appId:"${appId}",global:"${global}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",layout:"normal",fields:["shared_to","shared_to_organizations"],fieldsExtend:fieldsExtend$3()}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"md"},actionType:"dialog"}]}}});function fieldsExtend$3(){return{shared_to:{group:"",amis:{type:"radios",inline:!1}},shared_to_organizations:{group:""}}}const getSetListviewFiltersButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_filters"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_filters"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["filters"],initApiAdaptor:initApiAdaptor$2(),apiRequestAdaptor:apiRequestAdaptor$2(),fieldsExtend:fieldsExtend$2(),onEvent:{submitSucc:{weight:0,actions:[{actionType:"custom",script:"window.location.reload(); //doAction({'actionType': 'rebuild', 'componentId': `service_listview_${event.data.targetObjectName}`})"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function initApiAdaptor$2(){return"\n const recordId_tmp = api.body.recordId;\n let data_tmp;\n if (recordId_tmp) {\n data_tmp = payload.data;\n // 数据格式转换\n if (data_tmp) {\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n try {\n data_tmp.filters = JSON.parse(data_tmp.filters);\n } catch (e) { }\n }\n \n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n data_tmp._filters_type_controller = 'function';\n } else {\n data_tmp._filters_type_controller = 'conditions'\n }\n \n if (data_tmp._filters_type_controller === 'conditions') {\n data_tmp._filters_conditions = window.amisConvert.filtersToConditions(data_tmp.filters || []);\n data_tmp.filters = data_tmp._filters_conditions;\n } else {\n data_tmp._filters_function = data_tmp.filters;\n }\n }\n }\n for (key in data_tmp) {\n if (data_tmp[key] === null) {\n delete data_tmp[key];\n }\n }\n payload.data = Object.assign(payload.data, data_tmp);\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$2(){return"\n const recordId = api.body.recordId;\n if (formData._filters_type_controller === 'conditions' && formData._filters_conditions) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n } else {\n formData.filters = formData._filters_function || null;\n }\n \n delete formData._filters_type_controller;\n delete formData._filters_conditions;\n delete formData._filters_function;\n \n query = 'mutation{record: ' + objectName + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n };\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}function fieldsExtend$2(){return{filters:{label:"",group:"",visible_on:"true",amis:{type:"condition-builder",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${targetObjectName}",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}const getSetListviewColumnsButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_columns"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{args:{},dialog:{type:"dialog",title:instance.t("frontend_listview_control_columns"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",layout:"normal",fieldsExtend:fieldsExtend$1(),initApiAdaptor:initApiAdaptor$1(),apiRequestAdaptor:apiRequestAdaptor$1(),fields:["columns","mobile_columns"],onEvent:{submitSucc:{weight:0,actions:[{actionType:"custom",script:"window.location.reload(); //doAction({'actionType': 'rebuild', 'componentId': `service_listview_${event.data.targetObjectName}`})"}]}}}],searchable:!0,showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}});function fieldsExtend$1(){return{columns:{amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}},mobile_columns:{amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor$1(){return"\n const recordId_tmp = api.body.recordId;\n let columns_tmp = {}, mobile_columns_tmp = {};\n if (recordId_tmp) {\n columns_tmp = payload.data.columns;\n mobile_columns_tmp = payload.data.mobile_columns;\n if (columns_tmp) {\n columns_tmp = lodash.map(columns_tmp, 'field');\n }\n if (mobile_columns_tmp) {\n mobile_columns_tmp = lodash.map(mobile_columns_tmp, 'field');\n }\n }\n payload.data.columns = columns_tmp;\n payload.data.mobile_columns = mobile_columns_tmp;\n \n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$1(){return"\n const formData_tmp = api.body.$;\n const objectName_tmp = api.body.objectName;\n const recordId_tmp = api.body.recordId;\n \n if (typeof formData_tmp.columns == 'string') {\n formData_tmp.columns = formData_tmp.columns && formData_tmp.columns.split(',');\n }\n if (typeof formData_tmp.mobile_columns == 'string') {\n formData_tmp.mobile_columns = formData_tmp.mobile_columns && formData_tmp.mobile_columns.split(',');\n }\n \n // 数据格式转换\n formData_tmp.columns = lodash.map(formData_tmp.columns, (item) => {\n return { field: item };\n });\n formData.mobile_columns = lodash.map(formData.mobile_columns, (item) => {\n return { field: item };\n });\n \n let query_tmp = 'mutation{record: ' + objectName_tmp + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query_tmp = 'mutation{record: ' + objectName_tmp + '__update(id: \"' + recordId_tmp +'\", doc: {__saveData}){_id}}';\n };\n delete formData_tmp._id;\n let __saveData_tmp = JSON.stringify(JSON.stringify(formData_tmp));\n api.data = { query: query_tmp.replace('{__saveData}', __saveData_tmp) };\n \n return api;\n "}const getSetListviewSortButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_sort"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:instance.t("frontend_listview_control_sort"),data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",className:"",id:"u:061f158b4c5a",mode:"edit",fields:["sort","sort.$.field_name","sort.$.order"],onEvent:{submitSucc:{weight:0,actions:[{actionType:"custom",script:"window.location.reload(); //doAction({'actionType': 'rebuild', 'componentId': `service_listview_${event.data.targetObjectName}`})"}]}},fieldsExtend:fieldsExtend(),initApiAdaptor:initApiAdaptor(),apiRequestAdaptor:apiRequestAdaptor()}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,id:"u:d3f6947b6acf",size:"lg"},actionType:"dialog"}]}}});function fieldsExtend(){return{sort:{label:"",group:"",amis:{type:"tabs-transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/sortFields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor(){return"\n let sort;\n if (recordId) {\n sort = payload.data.sort;\n //数据格式转换\n if (sort instanceof Array) {\n sort = lodash.map(sort, (item) => {\n return item.field_name + ':' + (item.order || 'asc')\n });\n }\n }\n payload.data.sort = sort;\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor(){return"\n const recordId = api.body.recordId;\n //数据格式转换\n if (typeof formData.sort == 'string') {\n formData.sort = formData.sort && formData.sort.split(',');\n }\n formData.sort = lodash.map(formData.sort, (item) => {\n const arr = item.split(':');\n return { field_name: arr[0], order: arr[1] };\n });\n if (recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n }\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}const getDeleteListviewButtonSchema=()=>({type:"button",label:instance.t("frontend_listview_control_delete_label"),disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",confirmText:instance.t("frontend_listview_control_delete_confirm_text"),onEvent:{click:{actions:[{actionType:"ajax",args:{api:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{"&":"$$",uiSchema:"${uiSchema}",recordId:"${uiSchema.list_views[listName]._id}"},messages:{success:instance.t("frontend_listview_control_delete_message_success")},requestAdaptor:requestAdaptor(),adaptor:adaptor()}}},{actionType:"url",args:{url:"${context.rootUrl}/app/${appId}/${objectName}/grid/all",blank:!1},expression:"data.delete == 1"},{actionType:"custom",script:"window.location.reload();"}]}}});function requestAdaptor(){return"\n const { recordId } = api.body;\n var deleteArray = [];\n if (recordId) { deleteArray.push(`delete:object_listviews__delete(id: \"${recordId}\")`); }\n api.data = { query: `mutation{${deleteArray.join(',')}}` };\n return api;\n "}function adaptor(){return"\n if (payload.errors) {\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n "}const getSettingListviewToolbarButtonSchema=()=>({type:"dropdown-button",trigger:"click",icon:"fa fa-cog",btnClassName:"antd-Button--iconOnly bg-white !p-2 rounded text-gray-500",align:"right",visibleOn:"${!isLookup && !!isObjectListview}",buttons:[{label:instance.t("frontend_button_listview_control_label"),children:[getNewListviewButtonSchema(),getCopyListviewButtonSchema(),getRenameListviewButtonSchema(),getSetListviewShareButtonSchema(),getSetListviewFiltersButtonSchema(),getSetListviewColumnsButtonSchema(),getSetListviewSortButtonSchema(),getDeleteListviewButtonSchema()]}]}),getDisplayAsButton=function(e,t){let n=Router.getTabDisplayAs(e,t),r=[{type:"button",label:instance.t("frontend_display_type_is_table"),onClick:"const key = 'tab_"+e+'_display\';sessionStorage.setItem(key, \'grid\');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get("side_object") && urlSearch.get("side_listview_id")){url=`/app/${props.data.appId}/${urlSearch.get("side_object")}/grid/${urlSearch.get("side_listview_id")}`;}; props.env.jumpTo(url + \'?display=grid\');',rightIcon:"split"!=n?"fa fa-check":null,rightIconClassName:"m-l-sm"},{type:"button",label:instance.t("frontend_display_type_is_split"),onClick:"const key = 'tab_"+e+"_display';sessionStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",rightIcon:"split"===n?"fa fa-check":null,rightIconClassName:"m-l-sm"}];return"split"===n?instance.t("frontend_display_type_is_split"):instance.t("frontend_display_type_is_table"),{type:"dropdown-button",icon:"fa fa-table-columns",btnClassName:"antd-Button--iconOnly bg-white !p-2 rounded text-gray-500",align:"right",visibleOn:"${window:innerWidth > 768 && !!!isLookup && !!isObjectListview}",buttons:[{label:instance.t("frontend_display_as"),children:r}]}},onFieldsFilterToggleScript='\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === "form";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n});\nlet toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;\nfilterService.setData({showFieldsFilter: toShowFieldsFilter});\n//触发amis crud 高度重算\ndoAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed." + event.data.objectName\n },\n "data": {\n "timeOut": 1000\n }\n});\n// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\nlet crudService = scope.getComponentById("service_listview_" + event.data.objectName);\ncrudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});\n// if(filterService.props.data.showFieldsFilter){\n// if(isMobile){\n// // 手机上只能通过取消按钮来关闭搜索栏\n// return;\n// }\n// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", { \n// direction: "down", \n// name: "btn_filter_form_cancel" \n// });\n// buttonCancel.props.dispatchEvent(\'click\', {}).then(function(){\n// resizeWindow();\n// });\n// }\n// else{\n// if(isMobile){\n// // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\n// let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n// crudService && crudService.setData({showFieldsFilter: true});\n// }\n// }\n';function getObjectHeaderQuickSearchBox(e,t,n,{isLookup:r=!1,keywordsSearchBoxName:o="__keywords"}={}){const a=[];_.each(e.fields,(function(t){isFieldQuickSearchable(t,e.NAME_FIELD_KEY)&&a.push(t.label)}));const i=location.pathname+"/crud";let s=sessionStorage.getItem(i),l="";s&&!r&&(s=JSON.parse(s),l=s&&s.__keywords||"");const c=`\n const scope = event.context.scoped;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n let __changedSearchBoxValues = {};\n __changedSearchBoxValues["${o}"] = event.data["${o}"];\n // crudService && crudService.setData({__changedSearchBoxValues: __changedSearchBoxValues});\n // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中\n // crud && crud.setData({__changedSearchBoxValues: __changedSearchBoxValues});\n if(crud){\n let crudData = crud.getData();\n crudData.__changedSearchBoxValues = __changedSearchBoxValues;\n crud.setData(crudData);\n }\n `,u=`\n ${c}\n\n // 下面的脚本只为解决点击搜索表单取消按钮,再重新在其中输入过滤条件但是不点击搜索按钮或回车按键触发搜索,此时在快速搜索框输入过滤条件按回车按键会把搜索表单中的过滤条件清空的问题\n // const scope = event.context.scoped;\n // 如果点击过顶部搜索栏表单的取消按钮,会把此处event.data.__super.__super.__super中的搜索表单项的所有字段设置为null\n // 点击取消按钮后继续在表单项中输入过滤条件且最后没有点击回车按键或点击表单项搜索按钮的话,在快速搜索中点击回车按钮提交搜索会所顶部搜索表单中的字段值清空\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");\n if(!filterForm){\n return;\n }\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n setTimeout(function(){\n filterForm && filterForm.setValues(event.data[__changedFilterFormValuesKey]);\n }, 500);\n `;return{type:"tooltip-wrapper",id:"steedos_crud_toolbar_quick_search",align:"right",title:"",content:"可搜索字段:"+a.join(","),placement:"bottom",tooltipTheme:"dark",trigger:"click",className:"SMALL"!==n?"mr-1":"",visible:!!a.length,body:[{type:"search-box",name:o,placeholder:"快捷搜索",value:l,mini:!0,clearable:!0,clearAndSubmit:!0,searchImediately:!1,onEvent:{search:{actions:[{actionType:"custom",script:u}]},change:{actions:[{actionType:"custom",script:c}]}}}]}}function getObjectHeaderToolbar(e,t,n,{showDisplayAs:r=!1,hiddenCount:o=!1,headerToolbarItems:a,filterVisible:i=!0,isLookup:s=!1,keywordsSearchBoxName:l}={}){let c,u;window.innerWidth,o||(c={type:"tpl",align:"left",className:"text-gray-500 mr-2",tpl:"${count} "+instance.t("frontend_record_sum")});let d;u={type:"button",align:"right",tooltipPlacement:"top",className:"bg-white p-2 rounded text-gray-500 list-view-btn-reload",label:"",icon:"fa fa-sync",onEvent:{click:{actions:[{actionType:"custom",script:'\n // 触发搜索,而不是reload,因为使用search-box可以在amissdk是3.6.3-patch.8+实现在非第一页的情况下,快速搜索输入框中过滤条件变更时再点刷新可以自动跳转翻页到第一页\n const scope = event.context.scoped;\n const sb = SteedosUI.getClosestAmisComponentByType(scope, "search-box");\n if (sb) {\n const sbValue = sb.state.value;\n sb.handleSearch(sbValue);\n }else{\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleChangePage(1);\n }\n \n '}]}}},i&&(d={label:instance.t("frontend_button_search_tooltip"),icon:"fa fa-filter",type:"button",badge:{offset:[-5,1],size:8,animation:!0,visibleOn:"${isFieldsFilterEmpty == false && isLookup != true}"},align:"right",className:"bg-white p-2 rounded text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}},id:"steedos_crud_toolbar_filter"});let f=getDisplayAsButton(e?.name,e?.enable_split),p=getObjectHeaderQuickSearchBox(e,t,n,{isLookup:s,keywordsSearchBoxName:l}),m=[];return"SMALL"===n?(m.push(p),d&&m.push(d),m.push(f),[...a||[],...m]):(m.push(p),m.push(u),m.push(f),e?.permissions?.allowCreateListViews&&m.push(getSettingListviewToolbarButtonSchema()),d&&m.push(d),c&&m.push(c),[...a||[],"bulkActions",...m])}function getObjectFooterToolbar(e,t,n){if("SMALL"===t)return"split"===n.displayAs?[{type:"switch-per-page",visibleOn:"${count >= 20}"},{type:"pagination",maxButtons:5,showPageInput:!1}]:[{type:"pagination",maxButtons:5,showPageInput:!0,layout:"total,pager,go"}];if(n&&n.isRelated)return[{type:"pagination",maxButtons:10,showPageInput:!1}];{const t=e.paging&&!1===e.paging.enabled,r=n.isLookup,o=[{type:"pagination",maxButtons:10,showPageInput:!1}];return t&&r?o:[{type:"switch-per-page",visibleOn:"${count >= 20}"},...o]}}async function getObjectFilter(e,t,n){return{title:"",submitText:"",className:"",debug:!1,mode:"normal",wrapWithPanel:!1,body:[await getObjectListHeaderFieldsFilterBar(e,null,n)],onEvent:{submitSucc:{actions:[{actionType:"custom",script:`\n let isLookup = event.data.isLookup;\n if(isLookup){\n return;\n }\n // 列表搜索栏字段值变更后立刻触发提交表单执行crud搜索,所以这里需要额外重算crud高度及筛选按钮红色星号图标显示隐藏\n //触发amis crud 高度重算\n doAction({\n "actionType": "broadcast",\n "args": {\n "eventName": "@height.changed.${e.name}"\n },\n "data": {\n "timeOut": 1000\n }\n });\n const scope = event.context.scoped;\n // let filterFormValues = event.data;\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");\n // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。\n let filterFormValues = filterFormService.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中\n // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n crudService && crudService.setData({isFieldsFilterEmpty});\n `}]},change:{actions:[{actionType:"custom",script:'\n let isLookup = event.data.isLookup;\n let __lookupField = event.data.__lookupField;\n const scope = event.context.scoped;\n // let filterFormValues = event.data;\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, "form");\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, "service");\n // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。\n let filterFormValues = filterFormService.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});;\n // let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service", {name: "service_object_table_crud"});\n // crudService && crudService.setData({__changedFilterFormValues: changedFilterFormValues});\n // 这里不用crudService而用crud是因为lookup字段弹出的列表中的crudService中的变量无法传入crud的发送适配器中\n // crud && crud.setData({__changedFilterFormValues: changedFilterFormValues});\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(isLookup && __lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n '}]}}}}let UI_SCHEMA_CACHE={},UISchemaFunction;"undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE);const setUISchemaCache=(e,t)=>{UI_SCHEMA_CACHE[e]=t},getUISchemaCache=e=>_$1.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>_$1.has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){let n=[];return n="SMALL"===t?_$1.isEmpty(e.mobile_columns)?_$1.slice(e.columns,0,4):e.mobile_columns:e.columns,n}function getListViewSort(e){let t="";return e&&e.sort&&e.sort.length&&_$1.each(e.sort,(function(e,n){if(_$1.isArray(e)){let r=e[0]+" "+(e[1]||"");r=n>0?","+r:r,t+=r}else{let r=e.field_name+" "+e.order;r=n>0?","+r:r,t+=r}})),t}function getListViewFilter(e){if(e)try{const t=getUserId();let n=e.filters;if("mine"===e.filter_scope)if(_$1__default.default.isEmpty(n))n=[["owner","=",t]];else{if(_$1__default.default.isString(n)&&_$1__default.default.startsWith(_$1__default.default.trim(n),"function")&&(n=new Function(`return ${n}`),n=n()),!_$1__default.default.isArray(n))throw console.debug("listView filters is not array",e),new Error("filters is not array");n.push(["owner","=",t])}return n}catch(e){console.error(e)}}function formatUISchemaCache(objectName,uiSchema){setUISchemaCache(objectName,uiSchema),_$1.each(uiSchema.fields,(field=>{try{"lookup"===field.type&&field._reference_to&&_$1__default.default.isString(field._reference_to)&&(field.reference_to=eval(`(${field._reference_to})`)())}catch(e){field.reference_to=void 0,console.error(e)}})),_$1.each(uiSchema.list_views,((e,t)=>{e.name=t,_$1.has(e,"columns")||(e.columns=uiSchema.list_views.all.columns)}))}async function getUISchema(e,t,n=!0){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let r=null;try{if(UISchemaFunction);else{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;r=await fetchAPI(t,{method:"get"})}if(!r&&n)return await new Promise((e=>setTimeout(e,3e3))),getUISchema(e,t,!1);if(!r&&0==n)return;formatUISchemaCache(e,r)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}function wait(e){const t=(new Date).getTime();let n=t;for(;n-t<e;)n=(new Date).getTime()}function getUISchemaSync$1(e,t,n=!0){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let r=null;try{const o=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(r=Steedos.authRequest(o,{type:"GET",async:!1}),!r&&n)return wait(2e3),getUISchemaSync$1(e,t,!1);if(!r&&0==n)return;formatUISchemaCache(e,r)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}async function getListSchema(e,t,n,r={}){const o=await getUISchema(t);if(!o)return{};const a=_$1.find(o.list_views,((e,t)=>(n||(n=t),t===n||e._id===n)));if(!a)return{uiSchema:o};if(a.enable_amis_schema&&a.amis_schema){return{uiSchema:o,isCustomAmisSchema:!0,amisSchema:_$1.isString(a.amis_schema)?JSON.parse(a.amis_schema):a.amis_schema}}let i=getListViewColumns(a,r.formFactor),s=getListViewSort(a),l=getListViewFilter(a),c=a&&a._filters;if("calendar"===a.type){return{uiSchema:o,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:c,sort:s,...a.options}}}const u=r.defaults||{};u.headerSchema=null;try{const e=location.pathname+"/crud";let t=sessionStorage.getItem(e);if(t){t=JSON.parse(t);let e={};t.orderBy&&(e.orderBy=t.orderBy),t.orderDir&&(e.orderDir=t.orderDir),t.perPage&&(e.perPage=t.perPage),u.listSchema=_$1.defaultsDeep({},e,u.listSchema||{})}}catch(e){console.error("本地存储中crud参数解析异常:",e)}window.innerWidth>768&&(u.listSchema=_$1.defaultsDeep({},u.listSchema||{},{autoFillHeight:!0})),r.defaults=u,"recent"==n&&(c='\n function(filters, data) {\n var result = Steedos.authRequest(\'/graphql\', {\n type: \'POST\',\n async: false,\n data: JSON.stringify({\n query: \'{object_recent_viewed(filters: [["record.o","=","\' + data.objectName + \'"],["space","=","\' + data.context.tenantId + \'"],["owner","=","\' + data.context.userId + \'"]],sort:"modified desc",top:50){ _id,record} }\'\n }),\n });\n var _ids = []\n result.data.object_recent_viewed.forEach(function (item) {\n _ids = _ids.concat(item.record.ids)\n })\n return ["_id", "=", _ids];\n }\n ');return{uiSchema:o,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:i,extraColumns:a.extra_columns,filters:l,filtersFunction:c,sort:s,ctx:r,requestAdaptor:r.requestAdaptor||a.requestAdaptor,adaptor:r.adaptor||a.adaptor,headerToolbarItems:r.headerToolbarItems,filterVisible:r.filterVisible,rowClassNameExpr:r.rowClassNameExpr,crud:r.crud||a.crud,crudDataFilter:r.crudDataFilter||a.crudDataFilter,onCrudDataFilter:r.onCrudDataFilter}}}async function getSource(e,t){const n=t.objectName;let r=[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],o=r.filter((function(e){return"children"!==e.name})),a=!e.multiple&&e.auto_fill_mapping;a&&a.length&&a.forEach((function(e){"children"!==e.from&&r.push({name:e.from}),o.push({name:e.from})}));const i=await getFindQuery({name:n},null,r,{expand:!1,alias:"options",filters:"{__filters}"});i.query=i.query.replace(/,count\:.+/,"}");const s=await getFindQuery({name:n},null,o,{expand:!1,alias:"defaultValueOptions",filters:"{__options_filters}"});s.query=s.query.replace(/,count\:.+/,"}"),i.query=i.query.replace(/}$/,","+s.query.replace(/{(.+)}/,"$1}"));let l=`${e.name}`;e._prefix&&(l=`${e._prefix}${e.name}`),t.fieldNamePrefix&&(l=`${t.fieldNamePrefix}${l}`),i.$value=`$${l}`,i.$="$$";const c=`\n var filters = [['parent', '=', null]];\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${t.valueField}", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [["${t.valueField}", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;return{method:"post",url:getApi$2(),requestAdaptor:c,adaptor:'\n const data = payload.data;\n data.options = data.options.map(function (optionItem) {\n optionItem.defer = !!(optionItem.children && optionItem.children.length);\n delete optionItem.children;\n return optionItem;\n });\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(data.options, defaultValueOptions, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data = data;\n return payload;\n ',data:i,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi(e,t){const n=t.objectName;let r=[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],o=!e.multiple&&e.auto_fill_mapping;o&&o.length&&o.forEach((function(e){"children"!==e.from&&r.push({name:e.from})}));const a=await getFindQuery({name:"{__object_name}"},null,r,{expand:!1,alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let i=e.filters;"string"==typeof i&&(i=new Function(`return ${i}`),i=i()),"function"==typeof i&&(i=i(e)),a.query=a.query.replace(/,count\:.+/,"}");const s=`\n var dep = api.query.dep;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = "";\n if (dep) {\n objectName = "${n}";\n filters = [['parent', '=', dep]];\n sort = "${t.sort}";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;return{method:"post",url:getApi$2()+"&dep=${value}",requestAdaptor:s,adaptor:"\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n ",data:a,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort(e){let t=getLookupListView(e),n="";return t&&(n=getListViewSort(t)),n}async function lookupToAmisTreeSelect(e,t,n){if(!e)return{};n||(n={});const r={type:getAmisStaticFieldType("tree-select",t)};if(t)r.tpl=await getLookupTpl(e,n);else{const t=await getUISchema(n.objectName);n.sort=getRefListViewSort(t),Object.assign(r,{multiple:e.multiple,searchable:e.searchable,extractValue:!0,hideNodePathLabel:!0,clearable:!0,source:await getSource(e,n),deferApi:await getDeferApi(e,n)}),e.multiple&&Object.assign(r,{joinValues:!1}),"boolean"!=typeof r.searchable&&(r.searchable=!0);const o=e.onEvent;o&&(r.onEvent=o)}return r}"undefined"!=typeof window&&(window.getUISchema=getUISchema,window.getUISchemaSync=getUISchemaSync$1,window.getListSchema=getListSchema);const getReferenceToFieldSchema=(e,t)=>{let n=e.reference_to;if(!n)return;if(!t)return null;let r=null,o=e.reference_to_field;return o||(o=t.idFieldName||"_id"),r="_id"===o?{name:"_id",label:"ID",type:"text",toggled:!1}:t.fields[o]||{name:o},{objectName:n,valueField:r,labelField:t.fields[t.NAME_FIELD_KEY||"name"],NAME_FIELD_KEY:t.NAME_FIELD_KEY||"name"}},getReferenceTo=async e=>{"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user");const t=await getUISchema(e.reference_to);return getReferenceToFieldSchema(e,t)};function getReferenceToSync(e){"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user");const t=getUISchemaSync(e.reference_to);return getReferenceToFieldSchema(e,t)}function getLookupSapceUserTreeSchema(e){const t={type:"input-tree",className:"steedos-select-user-tree",inputClassName:"p-0",source:{method:"post",url:"${context.rootUrl}/graphql",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:'\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (currentRecord, records, childrenIds) => {\n if (currentRecord.children && typeof currentRecord.children[0] === "object") {\n // 考虑api配置了cache缓存的话,不会请求接口但是会重新进这个接收适配器脚本且payload.data.options返回的会是上一次计算结果,这里直接返回计算过的children\n return currentRecord.children;\n }\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(item, records, item.children)\n }else{\n item.children = [];\n }\n })\n return children;\n }\n \n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++) {\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++) {\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n \n _.each(records, (record) => {\n if (record.noParent == 1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(record, records, record.children) }));\n }\n });\n console.log(treeRecords)\n \n payload.data.options = treeRecords;\n return payload;\n ',data:{query:'{options:organizations(filters:["hidden", "!=", true],sort:"sort_no desc"){value:_id label:name,parent,children}}'},messages:{},cache:3e5},onEvent:{change:{actions:[{actionType:"custom",script:'\n console.log("lookup-tree-event.data:",event.data);\n console.log("lookup-tree-event.data.value.label:",event.data.value.label);\n console.log("lookup-tree-event.data.value.value:",event.data.value.value);\n const scope = event.context.scoped;\n var treeFilterFormValues={\n "__searchable__organizations_parents":event.data.value.value\n }\n // var listView = scope.parent.getComponents().find(function(n){\n // return n.props.type === "crud";\n // });\n // listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n let __lookupField = event.data.__lookupField;\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n var filterForm = scope.getComponents().find(function(n){\n return n.props.type === "form";\n });\n let filterFormValues = filterForm.getData();\n filterFormValues = JSON.parse(JSON.stringify(filterFormValues)); //只取当层数据域中数据,去除__super层数据\n const changedFilterFormValues = _.pickBy(filterFormValues, function(n,k){return /^__searchable__/.test(k);});\n Object.assign(changedFilterFormValues, treeFilterFormValues);\n // 同步__changedFilterFormValues中的值\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n if(__lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n if(crud){\n let crudData = crud.getData();\n crudData[__changedFilterFormValuesKey] = changedFilterFormValues;\n crud.setData(crudData);\n }\n filterForm.setData(treeFilterFormValues);\n filterForm.handleFormSubmit(event);\n '},{actionType:"custom",script:" if(window.innerWidth < 768){ document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open'); }"}]}},label:"",mode:"normal",name:"organizations",multiple:!1,joinValues:!1,clearValueOnHidden:!1,fieldName:"organizations",hideRoot:!0,initiallyOpen:!1,extractValue:!0,onlyChildren:!0,treeContainerClassName:"no-border",showIcon:!1,enableNodePath:!1,autoCheckChildren:!1,searchable:!0,searchConfig:{sticky:!0,placeholder:"查找部门"},unfoldedLevel:2,originPosition:"left-top"},n=[];return e?(n.push({type:"action",body:[{type:"action",body:[t],className:"h-full w-[240px]"}],className:"absolute inset-0 steedos-select-user-sidebar",onEvent:{click:{actions:[{actionType:"custom",script:"document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open')"}]}},id:"steedos_crud_toolbar_select_user_tree"}),n.push({type:"button",label:"组织",icon:"fa fa-sitemap",className:"bg-white p-2 rounded border-gray-300 text-gray-500",align:"left",onEvent:{click:{actions:[{actionType:"custom",script:"document.querySelector('.steedos-select-user-sidebar').classList.toggle('steedos-select-user-sidebar-open')"}]}},id:"steedos_crud_toolbar_organization_button"})):n.push(t),n}async function lookupToAmisPicker(e,t,n){let r=await getReferenceTo(e);if(!r)return;const o=await getUISchema(r.objectName);n.idFieldName=o.idFieldName,n.objectName=o.name;const a=!1!==e.show_left_filter;let i=[];const s=[];let l=[];const c=window.innerWidth<768;let u=getLookupListView(o),d=u&&u.name;u&&u.columns?(_$1__namespace.each(u.columns,(function(e){_$1__namespace.isString(e)&&o.fields[e]?l.push(o.fields[e]):_$1__namespace.isObject(e)&&o.fields[e.field]&&l.push(Object.assign({},o.fields[e.field],{width:e.width,wrap:e.wrap,amis:e.amis}))})),_$1__namespace.each(u.extra_columns||[],(function(e){_$1__namespace.isString(e)?l.push({extra:!0,name:e}):_$1__namespace.isObject(e)&&l.push({extra:!0,name:e.field})}))):(_$1__namespace.each(o.fields,((e,t)=>{"_id"==t||e.hidden||(_$1__namespace.has(e,"name")||(e.name=t),l.push(e))})),l=_$1__namespace.sortBy(l,"sort_no").slice(0,5)),_$1__namespace.each(l,(function(e){_$1__namespace.find(i,(function(t){return t.name===e.name}))||i.push(e)}));let f=e.auto_fill_mapping;f&&f.length&&f.forEach((function(e){_$1__namespace.find(i,(function(t){return t.name===e.from}))||i.push(o.fields[e.from])})),_$1__namespace.each(o.fields,(function(e){isFieldQuickSearchable(e,o.NAME_FIELD_KEY)&&s.push(e.name)}));const p={[r.labelField.name]:r.labelField,[r.valueField.name]:r.valueField};_$1__namespace.each(i,(e=>{e.hidden||(p[e.name]=e)}));let m=getListViewFilter(u),h=u&&u._filters,_="";u&&(_=getListViewSort(u));const g=await getApi(o,null,p,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});if(g.url&&!n.inFilterForm){const t=[],n=[];_$1__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(g.url=`${g.url}?${t.join("&")}`,g.sendOn=`${n.join(" && ")}`)}g.trackExpression=`\${${e.name}}`,g.data.$term="$term",g.data.$self="$$";let v=`__keywords_lookup__${e.name.replace(/\./g,"_")}__to__${o.name}`;const E=e.filter_form_data;g.requestAdaptor=`\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n let __lookupField = api.data.$self.__lookupField;\n if(__lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n let __changedFilterFormValues = api.data.$self[__changedFilterFormValuesKey] || {};\n let __changedSearchBoxValues = api.data.$self.__changedSearchBoxValues || {};\n // 把表单搜索和快速搜索中的change事件中记录的过滤条件也拼到$self中,是为解决触发搜索请求时,两边输入的过滤条件都带上,即:\n // 有时在搜索表单中输入过滤条件事,忘记点击回车键或搜索按钮,而是进一步修改快速搜索框中的关键字点击其中回车键触发搜索\n // 这种情况下,触发的搜索请求中没有带上搜索表单中输入的过滤条件。\n // 反过来先在快速搜索框中输入过滤条件却不点击其中回车键触发搜索,而是到搜索表单中触发搜索请求也是一样的。\n if(api.data.$self.op !== 'loadOptions'){\n Object.assign(api.data.$self, __changedSearchBoxValues, __changedFilterFormValues);\n }\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n ${m&&!n.inFilterForm?`var filters = ${JSON.stringify(m)};`:"var filters = [];"}\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${_}";\n var allowSearchFields = ${JSON.stringify(s)};\n let fieldValue;\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [["${r.valueField.name}", "=", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [["${r.valueField.name}", "=", fieldValue]];\n }\n }\n\n let filterFormValues = {};\n if (selfData.op !== 'loadOptions'){\n filterFormValues = ${_$1__namespace.isObject(E)?JSON.stringify(E):'"'+E+'"'} || {};\n const isAmisFormula = typeof filterFormValues === "string" && filterFormValues.indexOf("\${") > -1;\n if (isAmisFormula){\n filterFormValues = AmisCore.evaluate(filterFormValues, context) || {};\n }\n if (_.isObject(filterFormValues) || !_.isEmpty(filterFormValues)){\n let fields = api.data.$self.uiSchema && api.data.$self.uiSchema.fields;\n filterFormValues = SteedosUI.getSearchFilterFormValues(filterFormValues, fields);\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(Object.assign({}, { ...filterFormValues }, selfData)) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(${"space_users"===r?.objectName} && ${"user"===e.reference_to_field}){\n if(filters.length > 0){\n filters = [ ["user_accepted", "=", true], "and", filters ]\n }else{\n filters = [["user_accepted", "=", true]];\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, "contains", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, "=", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.${v}, allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n filters.push(keywordsFilters);\n }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n var currentAmis = (window.amisRequire && window.amisRequire('amis')) || Amis;\n //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析\n function traverseNestedArray(arr) {\n for (let i = 0; i < arr.length; i++) {\n if (Array.isArray(arr[i])) {\n // 如果当前元素是数组,则递归调用自身继续遍历\n traverseNestedArray(arr[i]);\n } else {\n // 如果当前元素不是数组,则处理该元素\n // 下面正则用于匹配amis公式\${}\n if(/\\$\\{([^}]*)\\}/.test(arr[i])) {\n try{\n arr[i] = currentAmis.evaluate(arr[i], api.context);\n }catch(ex){\n console.error("运行lookup过滤公式时出现错误:",ex);\n }\n }\n }\n }\n }\n if(fieldFilters && fieldFilters.length){\n traverseNestedArray(fieldFilters);\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ${n.inFilterForm};\n\n const listviewFiltersFunction = ${h};\n\n if(listviewFiltersFunction && !inFilterForm){\n const _filters0 = listviewFiltersFunction(filters, api.data.$self.__super);\n if(_filters0 && _filters0.length){\n filters.push(_filters0);\n }\n }\n \n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ${o.enable_tree};\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `,g.adaptor=`\n const enable_tree = ${o.enable_tree};\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op不为空,表示处于字段初始编辑状态,不是点击后出现弹窗状态。\n // 这里不可以用_.pick函数让payload只返回labelField和valueField,因为字段上配置的amis autoFill功能可能依赖了其他字段\n /*\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, ["${r.labelField.name}", "${r.valueField.name}"]);\n })\n payload.data.rows = rows;\n */\n if(enable_tree){\n const rows = _.map(payload.data.rows, (item)=>{\n if (!item.children) {\n return { ...item, children: [] };\n } else {\n return item;\n }\n })\n payload.data.rows = rows;\n }\n return payload;\n }\n if(!payload.data.rows){\n payload.data.rows = [];\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }else{\n item.children = [];\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n const result = payload.data.rows;\n if(result && result.length){\n const updatedResult = _.map(result, (element) => {\n const data = { ...element };\n // image字段值添加URL前缀\n ${getScriptForAddUrlPrefixForImgFields(_$1__namespace.values(o.fields))}\n return data;\n });\n payload.data.rows = updatedResult;\n }\n let __changedFilterFormValuesKey = "__changedFilterFormValues";\n let __lookupField = api.data.$self.__lookupField;\n if(__lookupField){\n let lookupTag = "__lookup__" + __lookupField.name + "__" + __lookupField.reference_to;\n if(__lookupField.reference_to_field){\n lookupTag += "__" + __lookupField.reference_to_field;\n }\n __changedFilterFormValuesKey += lookupTag;\n }\n let __changedFilterFormValues = api.context[__changedFilterFormValuesKey] || {};\n let __changedSearchBoxValues = api.context.__changedSearchBoxValues || {};\n // 列表搜索和快速搜索,有时在某些操作情况下还是会造成crud接口请求使用的过滤条件是上次的,这里强制把正确的过滤条件返回到crud,详细规则见:https://github.com/steedos/steedos-platform/issues/7112\n payload.data[__changedFilterFormValuesKey] = __changedFilterFormValues;\n payload.data.__changedSearchBoxValues = __changedSearchBoxValues;\n return payload;\n `,(e.optionsFunction||e._optionsFunction)&&(g.adaptor=`\n payload.data.rows = eval(${e.optionsFunction||e._optionsFunction})(api.data.$self);\n return payload;\n `);let y=500;o.paging&&!1===o.paging.enabled&&(y=1e3);let b=null;{let t=o.NAME_FIELD_KEY||"name";"organizations"===o.name&&(t="name"),b=await getTableSchema$1(o,i,{labelFieldName:t,top:y,isLookup:!0,enable_tree:o.enable_tree,...n}),b.affixHeader=!1,b.headerToolbar=getObjectHeaderToolbar(o,l,n.formFactor,{isLookup:!0,keywordsSearchBoxName:v}),"space_users"===r.objectName&&"user"===e.reference_to_field&&a&&(b.headerToolbar.push(getLookupSapceUserTreeSchema(c)),b.className=b.className||" steedos-select-user");const s=o.permissions.allowCreate,u=!_$1__namespace.isBoolean(e.create)||e.create;let f=!_$1__namespace.isEmpty(e.filters)||!!e.filtersFunction||!!e._filtersFunction;if(s&&u&&!f){const e=await getSchema$5(o,{appId:n.appId,objectName:o.name,formFactor:n.formFactor});e.align="right",b.headerToolbar.splice(b.headerToolbar.length-1,0,e)}b.footerToolbar=o.enable_tree?[]:getObjectFooterToolbar(o,n.formFactor,{isLookup:!0}),!1!==n.filterVisible&&(b.filter=await getObjectFilter(o,p,{...n,isLookup:!0,keywordsSearchBoxName:v,searchable_fields:e.searchable_fields,auto_open_filter:e.auto_open_filter,show_left_filter:e.show_left_filter,filter_form_data:e.filter_form_data})),b.data=Object.assign({},b.data,{"&":"$$",objectName:o.name,uiSchema:o,listName:d,isLookup:!0,__lookupField:{name:e.name,reference_to:o.name,reference_to_field:e.reference_to_field,filters:e.filters,filtersFunction:e.filtersFunction,_filtersFunction:e._filtersFunction,inFilterForm:n.inFilterForm,listviewFilter:m,listviewFiltersFunction:h}}),b.onEvent||(b.onEvent={}),b.onEvent[`@data.changed.${o.name}`]={actions:[{actionType:"reload"},{actionType:"custom",script:`\n // lookup字段弹出列表,点击新建按钮,新建记录成功后,触发@data.changed.xxx,\n // 此时context.props.data值是lookup字段所在表单数据,经测试多层lookup弹出列表新建记录成功后context.props.data始终取的是最近一层的lookup字段所在表单数据,符合预期\n const masterRecord = context.props.data;//event.data._master && event.data._master.record;\n const fieldConfig = ${JSON.stringify(e)};\n let reference_to = fieldConfig.reference_to;\n let saveValue;\n const newRecord = {\n _id: event.data.result.data.recordId,\n ...event.data.__super.__super\n }\n const saveField = fieldConfig.reference_to_field || '_id';\n const saveFieldValue = newRecord[saveField];\n if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){\n \n const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};\n const baseSaveValue = {\n o: reference_to,\n ids: [saveFieldValue]\n };\n if(fieldValue && fieldValue.o){\n if(fieldValue.o === reference_to){\n saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;\n }else{\n saveValue = baseSaveValue;\n }\n }else{\n saveValue = baseSaveValue;\n }\n\n }else{\n if(fieldConfig.multiple){\n // const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];\n // 连续新建多个记录时,因为masterRecord获取的主记录不是实时的,所以只会勾选最后一个新建的记录\n // 而下面context.context.component指向的是lookup picker组件,可以直接取到用户实时勾选的记录。\n const fieldValue = context.context.component.props.store.toJSON().selectedItems\n saveValue = fieldValue.concat(saveFieldValue);\n }else{\n saveValue = saveFieldValue;\n }\n }\n \n const ctx = ${JSON.stringify(n)};\n const componentId = ctx.defaults && ctx.defaults.formSchema && ctx.defaults.formSchema.id;\n doAction({\n actionType: 'setValue',\n componentId: componentId, \n args: {\n value: { [fieldConfig.name]: saveValue }\n }\n });\n `}]}}e.pickerSchema&&(b=Object.assign({},b,e.pickerSchema)),"space_users"===r.objectName&&"user"===e.reference_to_field&&c&&(b.headerToolbar=b.headerToolbar&&b.headerToolbar.filter((function(e){return["steedos_crud_toolbar_quick_search","steedos_crud_toolbar_filter","steedos_crud_toolbar_select_user_tree","steedos_crud_toolbar_organization_button"].indexOf(e.id)>-1})),b.footerToolbar=["pagination"]),e.inlineHelpText&&(b.toolbarClassName="hasHelpText",b.headerToolbar=[{type:"tpl",tpl:e.inlineHelpText,className:"text-secondary"},...b.headerToolbar]),b.className=(b.className||"")+" steedos-lookup-crud";const C={type:getAmisStaticFieldType("picker",t),className:n.className||"",modalTitle:instance.t("frontend_form_please_select")+" "+o.label,labelField:r.labelField.name,valueField:r.valueField.name,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || ((this.relatedKey ==='${e.name}') && (${e.multiple} != true)) )`,modalMode:"dialog",source:g,size:"lg",pickerSchema:b,joinValues:!1,extractValue:!0};return e.multiple&&(C.multiple=!0,C.extractValue=!0),t&&(C.tpl=await getLookupTpl(e,n)),C}async function lookupToAmisSelect(e,t,n){let r=await getReferenceTo(e);const o=window.innerWidth<=768,a=r&&r.valueField?.name||"_id";let i,s;const l=r&&await getUISchema(r.objectName);if(r){let t=[Object.assign({},r.labelField,{alias:"label"}),Object.assign({},r.valueField,{alias:"value"})],n=e.auto_fill_mapping;n&&n.length&&n.forEach((function(e){t.push(l.fields[e.from])})),s=await getFindQuery({name:r.objectName},null,t,{expand:!1,alias:"defaultValueOptions",filters:"{__options_filters}",count:!1}),i=await getApi({name:r.objectName},null,t,{expand:!1,alias:"options",queryOptions:'filters: {__filters}, top: {__top}, sort: "{__sort}"'}),i.adaptor='\n const data = payload.data;\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(defaultValueOptions, data.options, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data.options = data.options;\n return payload;\n '}else i={method:"post",data:{$:"$$",query:""},url:"/api/amis/health_check?reload=${additionalFilters|join}&listName=${listName}"};let c=getLookupListView(l),u=getListViewFilter(c),d=c&&c._filters,f="";if(c&&(f=getListViewSort(c)),i.url&&!n.inFilterForm){const t=[],n=[];_$1__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(i.url=`${i.url}&${t.join("&")}`,i.sendOn=`${n.join(" && ")}`)}i.data.$term="$term",i.data.$value=n.isRefToMutiple?`$${e.name}.ids`:`$${e.name}`,_$1__namespace.each(e.depend_on,(function(e){i.data[e]=`$${e}`})),i.data.$="$$",i.data.rfield="${object_name}",i.requestAdaptor=`\n ${u&&!n.inFilterForm?`var filters = ${JSON.stringify(u)};`:"var filters = [];"}\n var top = 200;\n if(api.data.$term){\n filters = [["${r?.NAME_FIELD_KEY||"name"}", "contains", api.data.$term]];\n }\n // else if(api.data.$value){\n // filters = [["_id", "=", api.data.$value]];\n // }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n var currentAmis = (window.amisRequire && window.amisRequire('amis')) || Amis;\n //递归fieldFilters数组,检查每一个元素,判断若是公式,就仅把它解析\n function traverseNestedArray(arr) {\n for (let i = 0; i < arr.length; i++) {\n if (Array.isArray(arr[i])) {\n // 如果当前元素是数组,则递归调用自身继续遍历\n traverseNestedArray(arr[i]);\n } else {\n // 如果当前元素不是数组,则处理该元素\n // 下面正则用于匹配amis公式\${}\n if(/\\$\\{([^}]*)\\}/.test(arr[i])) {\n try{\n arr[i] = currentAmis.evaluate(arr[i], api.context);\n }catch(ex){\n console.error("运行lookup过滤公式时出现错误:",ex);\n }\n }\n }\n }\n }\n if(fieldFilters && fieldFilters.length){\n traverseNestedArray(fieldFilters);\n filters.push(fieldFilters);\n }\n\n if(${"space_users"===r?.objectName} && ${"user"===e.reference_to_field}){\n if(filters.length > 0){\n filters = [ ["user_accepted", "=", true], "and", filters ]\n }else{\n filters = [["user_accepted", "=", true]];\n }\n }\n\n const inFilterForm = ${n.inFilterForm};\n\n const listviewFiltersFunction = ${d};\n\n if(listviewFiltersFunction && !inFilterForm){\n const _filters0 = listviewFiltersFunction(filters, api.data.$);\n if(_filters0 && _filters0.length){\n filters.push(_filters0);\n }\n }\n \n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = "${f}";\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', top).replace('{__sort}', sort.trim());\n\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${a}", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n const defaultValueOptionsQueryData = ${JSON.stringify(s)};\n const defaultValueOptionsQuery = defaultValueOptionsQueryData && defaultValueOptionsQueryData.query && defaultValueOptionsQueryData.query.replace(/^{/,"").replace(/}$/,"");\n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [["${a}", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n if(defaultValueOptionsQuery){\n api.data.query = "{"+api.data.query.replace(/^{/,"").replace(/}$/,"")+","+defaultValueOptionsQuery+"}";\n } \n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,r&&r.labelField.name,r&&r.valueField.name,e.optionsFunction||e._optionsFunction?i.adaptor=`\n var options = eval(${e.optionsFunction||e._optionsFunction})(api.data.$);\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `:e.options&&(i.adaptor=`\n var options = ${JSON.stringify(e.options)}\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `);const p={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,clearable:!0,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || ((this.relatedKey ==='${e.name}') && (${e.multiple} != true)) )`,autoComplete:i,searchable:!0};getComparableAmisVersion()>=3.6&&(p.source=i,delete p.autoComplete);return o&&e.multiple||(p.menuTpl="${icon ? `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>` : label}"),e.multiple&&(p.multiple=!0,p.extractValue=!0),t&&(p.tpl=await getLookupTpl(e,n)),p}async function getApi(e,t,n,r){const o=await getFindQuery(e,t,n,r);return{method:"post",url:getApi$2(),data:o,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getAutoFill(e,t){let n=e.auto_fill_mapping;if(n&&n.length){let r={};return e.multiple?n.forEach((function(e){_$1__namespace.includes(["lookup","master_detail","select"],t.fields[e.from].type)?r[e.to]=`\${items | pick:${e.from}}`:r[e.to]=`\${items | pick:${e.from} | join}`})):n.forEach((function(e){r[e.to]=`\${${e.from}}`})),r}}async function lookupToAmis(e,t,n){if(n||(n={}),t)return e.reference_to&&!e.isTableField?{type:"steedos-field",config:e,static:!0}:{type:getAmisStaticFieldType("picker",t),tpl:getRelatedFieldTpl(e,n)};if(e.reference_to&&!_$1__namespace.isString(e.reference_to)&&!t)return{type:"steedos-field-lookup",field:e,readonly:t,ctx:n};let r=await getReferenceTo(e);if(!r)return await lookupToAmisSelect(e,t,n);if("space_users"===r.objectName&&"user"===e.reference_to_field&&(n=Object.assign({},n,{onlyDisplayLookLabel:!0})).idsDependOn)return await lookupToAmisIdsPicker(e,t,n);const o=await getUISchema(r.objectName);let a,i=_$1__namespace.isBoolean(e.enable_enhanced_lookup)?e.enable_enhanced_lookup:o.enable_enhanced_lookup;getComparableAmisVersion()>=3.6&&!i&&o.enable_tree&&e.multiple&&(i=!0),1==i&&e.amis&&e.amis.type&&"picker"!==e.amis.type&&(i=!1),a=1==i?await lookupToAmisPicker(e,t,n):o.enable_tree?await lookupToAmisTreeSelect(e,t,Object.assign({},n,{labelField:r.labelField?.name||"name",valueField:r.valueField?.name||"_id",objectName:r.objectName})):await lookupToAmisSelect(e,t,n);let s=o.pages&&o.pages.lookup;if(s&&s.is_enable){let e=s.amis_schema;"string"==typeof e&&(e=JSON.parse(e)),a=_$1__namespace.defaultsDeep({},e,a)}const l=await getAutoFill(e,o);return l&&(a.autoFill=l),a}async function lookupToAmisIdsPicker(e,t,n){return getIdsPickerSchema(e,t,n)}async function getIdsPickerSchema(e,t,n){n||(n={});let r=await getReferenceTo(e);if(!r)return;const o=await getUISchema(r.objectName),{idsDependOn:a}=n,i={[r.labelField.name]:r.labelField,[r.valueField.name]:r.valueField},s=[r.labelField],l=await getApi(o,null,i,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});l.data.$term="$term",l.data.$self="$$",a&&l.url&&!n.inFilterForm&&(l.sendOn=`\${${a} && ${a}.length}`,l.url=`${l.url}&depend_on_${a}=\${${a}|join}`);let c=getLookupListView(o),u="";c&&(u=getListViewSort(c)),l.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 1000;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${u}";\n if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n filters = [["${r.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${r.valueField.name}", "=", selfData.value]];\n }\n }\n\n var ids;\n var idsDependOn = "${a}";\n if(idsDependOn){\n ids = api.data.$self[idsDependOn];\n }\n if(ids && ids.length){\n filters.push(["${r.valueField.name}", "=", ids]);\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `;let d=null;"SMALL"===n.formFactor?d=await getListSchema$1(s,{top:1e3,...n,actions:!1}):(d=await getTableSchema$1(o,s,{labelFieldName:o.NAME_FIELD_KEY,top:1e3,isLookup:!0,...n}),d.affixHeader=!1);const f={type:getAmisStaticFieldType("picker",t),labelField:r.labelField.name,valueField:r.valueField.name,modalMode:"dialog",source:l,disabledOn:`${t} || ( (this._master && (this._master.relatedKey ==='${e.name}')) || ((this.relatedKey ==='${e.name}') && (${e.multiple} != true)) )`,size:"lg",pickerSchema:d,joinValues:!1,extractValue:!0};return e.multiple&&(f.multiple=!0,f.extractValue=!0),n.value&&(f.value=n.value),null!=n.selectFirst&&(f.selectFirst=n.selectFirst),t&&(f.tpl=await getLookupTpl(e,n)),f}"undefined"!=typeof window&&(window.getReferenceTo=getReferenceTo,window.getReferenceToSync=getReferenceToSync);const getMarkdownFieldSchema=(e,t,n)=>t?{type:"control",label:e.label,body:{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}}:{type:"control",label:e.label,body:[{type:"tabs",tabsMode:"strong",className:"steedos-markdown",tabs:[{title:instance.t("frontend_form_edit"),tab:[{type:"editor",name:e.name,labelClassName:"none",language:"markdown",options:e.amis?e.amis.editorOptions:null}]},{title:instance.t("frontend_form_preview"),tab:[{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}]}]}]},getHtmlFieldSchema=(e,t,n)=>t?{type:"input-rich-text",receiver:"${context.rootUrl}/s3/images",name:e.name,options:{plugins:["autoresize"],statusbar:!1,readonly:!0,toolbar:!1,menubar:!1}}:{type:"input-rich-text",receiver:"${context.rootUrl}/s3/images",options:{statusbar:!1,menubar:!1},name:e.name},QUICK_SEARCHABLE_FIELD_TYPES=["text","textarea","autonumber","url","email"],OMIT_FIELDS=["created","created_by","modified","modified_by"];function getObjectFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),r=_$1__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`)&&_$1__namespace.split(t.name,".").length<3;return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=r,n}function getGridFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),r=_$1__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=r,n}function getTabledFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),r=_$1__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=r,n}function getSelectFieldOptions(e){const t=e.data_type||"text",n=[];return _$1__namespace.each(e.options,(e=>{switch(t){case"number":n.push({label:e.label,value:Number(e.value),icon:e.icon});break;case"text":n.push({label:e.label,value:String(e.value),icon:e.icon});break;case"boolean":n.push({label:e.label,value:"false"!==e.value,icon:e.icon})}})),n}async function convertSFieldToAmisField(e,t,n){const r=window.innerWidth<=768;if(_$1__namespace.includes(OMIT_FIELDS,e.name)&&1!=n.showSystemFields)return;const o={name:n.fieldNamePrefix?`${n.fieldNamePrefix}${e.name}`:e.name,label:e.label,labelRemark:e.inlineHelpText,description:e.description,required:_$1__namespace.has(n,"required")?n.required:e.required};let a={};switch(e.type){case"text":a.type=getAmisStaticFieldType("text",t,e);break;case"textarea":a.type=getAmisStaticFieldType("textarea",t),a.tpl=`<%=(data.${e.name} || "").split("\\n").join('<br>')%>`;break;case"html":a=getHtmlFieldSchema(e,t);break;case"markdown":a=getMarkdownFieldSchema(e,t);break;case"select":if(t){const t=getSelectMap(e.options);a={type:"static-mapping",name:e.name,label:e.label,options:e.options,map:t}}else{a={type:getAmisStaticFieldType("select",t),joinValues:!1,options:getSelectFieldOptions(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value"};const n="${icon ? `"+"<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>"+"` : label}";r&&e.multiple||(a.menuTpl=n),e.multiple&&(a.multiple=!0,a.extractValue=!0)}break;case"color":a={type:getAmisStaticFieldType("color",t),name:e.name,label:e.label},t?a.defaultColor=null:a.pipeIn=(e,t)=>e&&e.indexOf("#")<0?"#"+e:e;break;case"boolean":a={type:getAmisStaticFieldType("checkbox",t),tpl:t?getSwitchTpl(e):null};break;case"input-date-range":a={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null,joinValues:!1,shortcuts:["thismonth","2monthsago","3monthslater","prevquarter","thisquarter","thisyear","lastYear"]};break;case"date":a={type:getAmisStaticFieldType("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null};break;case"input-datetime-range":a={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0,joinValues:!1,shortcuts:["thismonth","2monthsago","3monthslater","prevquarter","thisquarter","thisyear","lastYear"]};break;case"datetime":a={type:getAmisStaticFieldType("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:00.000Z",tpl:t?getDateTimeTpl(e):null,utc:!0};break;case"input-time-range":a={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null,joinValues:!1};break;case"time":a={type:getAmisStaticFieldType("time",t),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null};break;case"currency":case"number":a=t?{type:"static-tpl",tpl:getNumberTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":a=Object.assign({},e,o);break;case"input-range":a={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":a=t?{type:"static-progress",name:"progress",pipeIn:(t,n)=>{if(t){return Number((100*t).toFixed(e.scale))}return t}}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale,suffix:"%",pipeIn:(t,n)=>{if(t){return Number((100*t).toFixed(e.scale))}return t},pipeOut:(t,n,r)=>{if(t){return Number((t/100).toFixed(e.scale+2))}return t}};break;case"password":a={type:getAmisStaticFieldType("password",t),tpl:t?getPasswordTpl(e):null};break;case"lookup":case"master_detail":a=await lookupToAmis(e,t,n);break;case"autonumber":t?a={type:"static-text"}:e.autonumber_enable_modify&&(a={type:"input-group",body:[{type:"input-text",name:e.name},{type:"button",label:"自动获取",actionType:"ajax",api:{url:`\${context.rootUrl}/api/autonumber/generator/\${objectName}/${e.name}`,method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:`\n var tempValue = payload.data && payload.data.autonumber;\n delete payload.data.autonumber;\n payload.data["${e.name}"] = tempValue;\n return payload;\n `},messages:{success:"获取成功"}}]});break;case"url":if(a={type:getAmisStaticFieldType("url",t,e),static:!!t},!t){let t=e.amis?.validations;void 0===t&&Object.assign(a,{validations:{matchRegexp:"^((http:\\/\\/|https:\\/\\/|ftp:\\/\\/|sftp:\\/\\/)+([^\\s\\/\\.]+(\\.[^\\s\\/\\.]+)+))*(\\/[^\\s\\.\\/]+)*$"},validationErrors:{matchRegexp:instance.t("frontend_form_validation_failed_url")}})}t&&e.show_as_qr&&(a={type:"control",label:e.label,body:{type:"qr-code",codeSize:128,name:e.name}});break;case"email":a={type:getAmisStaticFieldType("email",t)};break;case"location":let i="LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7",s="baidu";if(window.Meteor){const e=Meteor.settings?.public?.amis?.map_ak;e&&(i=e);const t=Meteor.settings?.public?.amis?.map_vendor;t&&(s=t)}const l=e.coordinatesType||"bd09";a={type:getAmisStaticFieldType("location",t),tpl:t?getLocationTpl(e):null,ak:i,vendor:s,clearable:!0,coordinatesType:l,label:e.label,pipeOut:(e,t,n)=>{if(e){const t=e.lng,n=e.lat;let r=[t,n];if(window.coordtransform)if("bd09"===l.toLowerCase()){const e=window.coordtransform.bd09togcj02(t,n);r=window.coordtransform.gcj02towgs84(e[0],e[1])}else"gcj02"===l.toLowerCase()&&(r=window.coordtransform.gcj02towgs84(t,n));return e.wgs84={type:"Point",coordinates:r},e}}};break;case"avatar":case"image":case"file":a=await getAmisFileSchema(e,t,n);break;case"formula":case"summary":t&&(a={type:"static-tpl",tpl:getUiFieldTpl(e)});break;case"code":a={type:"editor",disabled:!!t,language:e.language,editorDidMount:new Function("editor","monaco",e.editorDidMount)};break;case"toggle":a={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":if(e.subFields){a={type:"input-table",showIndex:!0,columnsTogglable:!1,strictMode:!1,affixHeader:!1,needConfirm:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]};for(const r of e.subFields){const o=r.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,""),i=await convertSFieldToAmisField(Object.assign({},r,{name:o,isTableField:!0}),t,n);if(i){delete i.name,delete i.label;const e={name:o,label:r.label,quickEdit:!t&&i};["lookup","boolean","toggle"].indexOf(r.type)>-1&&(e.type=i.type,e.tpl=i.tpl),a.columns.push(Object.assign({},e,r.amis,{name:o}))}}}break;case"table":if(e.subFields){a={type:"steedos-input-table",editable:!t,addable:!t,removable:!t,fields:[],amis:{columnsTogglable:!1}};for(const t of e.subFields)if(!t.name.endsWith(".$")){const n=t.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,"");a.fields.push(Object.assign({},t,{name:n}))}}break;case"object":if(e.subFields){a={type:"combo",items:[]};for(let r of e.subFields){let o=r.name.replace(`${e.name}.$.`,"").replace(`${e.name}.`,"");"grid"===r.type?r=await getGridFieldSubFields(r,n.__formFields):"table"===r.type?r=await getTabledFieldSubFields(r,n.__formFields):t&&(o=`${e.name}.${o}`);const i=await convertSFieldToAmisField(Object.assign({},r,{name:o}),t,n);i&&(delete i.name,delete i.label,i.className=i.className.replace("border-b",""),a.items.push(Object.assign({},i,{label:r.label},r.amis,{name:o})))}}}if(!_$1__namespace.isEmpty(a)){const r=a.className;e.is_wide||"group"===a.type?a.className=r?"col-span-2 m-0 "+r:"col-span-2 m-0":a.className=r?"m-0 "+r:"m-0",t&&"edit"!==n.mode&&(a.className=`${a.className} border-b`),t&&(a.quickEdit=!1,a.static=!0);let i,s=" steedos-"+a.type+(t?"-readonly":"-edit");return a.className=a.className+s,e.visible_on&&!n.inFilterForm&&(e.visible_on.startsWith("{{")?a.visibleOn=`${e.visible_on.substring(2,e.visible_on.length-2).replace(/formData./g,"data.")}`:a.visibleOn=`${e.visible_on.replace(/formData./g,"data.")}`),n.amisData&&n.amisData._master&&n.amisData._master.relatedKey===e.name&&(a.className=`${a.className||""} hidden`),_$1__namespace.isString(o.required)&&o.required.startsWith("{{")&&(o.requiredOn=`${o.required.substring(2,o.required.length-2).replace(/formData./g,"data.")}`,delete o.required),"group"===a.type?(a.body[0]=Object.assign({},o,a.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),a):(i="steedos-field"==a.type?Object.assign({},o,a,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},{name:o.name}):Object.assign({},o,a,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:o.name}),t&&"file"==e.type&&(i.name=""),i)}}async function getFieldSearchable(e,t,n){n||(n={});let r=e;"grid"===r.type?r=await getGridFieldSubFields(e,t):"object"===e.type&&(r=await getObjectFieldSubFields(e,t));let o="__searchable__";if(r.name.indexOf(".")<0){let e=_$1.cloneDeep(r);_$1.includes(["textarea","html","code","autonumber"],r.type)&&(e.type="text"),_$1.includes(["formula","summary"],r.type)&&(e.type=r.data_type,e.precision=r.precision,e.scale=r.scale),"number"!==e.type&&"currency"!==e.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number",clearValueOnEmpty:!0},e.is_wide=!0,o=`${o}between__`),"date"===e.type&&(e.type="input-date-range",e.is_wide=!0,o=`${o}between__`),"datetime"===e.type&&(e.type="input-datetime-range",e.is_wide=!0,o=`${o}between__`),"time"===e.type&&(e.type="input-time-range",e.is_wide=!0,o=`${o}between__`),"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0,e.required=!1,e.hidden=!1,e.omit=!1,e.amis&&(delete e.amis.static,delete e.amis.staticOn,delete e.amis.disabled,delete e.amis.disabledOn,delete e.amis.required,delete e.amis.requiredOn,delete e.amis.visible,delete e.amis.visibleOn,delete e.amis.hidden,delete e.amis.hiddenOn,delete e.amis.autoFill,(e.type.indexOf("-range")>-1||"input-array"===e.type)&&delete e.amis.type);const t=await convertSFieldToAmisField(e,!1,Object.assign({},n,{fieldNamePrefix:o,required:!1,showSystemFields:!0,inFilterForm:!0}));if(t)return t}}function isFieldTypeSearchable(e){return!_$1__namespace.includes(["grid","table","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],e)}function isFieldQuickSearchable(e,t){let n=e.searchable;return!1!==n&&e.name===t&&(n=!0),!!(n&&QUICK_SEARCHABLE_FIELD_TYPES.indexOf(e.type)>-1)}function Inbox(e){var t=e.className,n=e.onClick,r=__rest(e,["className","onClick"]),o=useInboxNotificationsSuspense().inboxNotifications;return 0===o.length?React__default.default.createElement("div",{className:clsx(t,"empty")},instance.t("liveblocks:frontend_inbox_empty")):React__default.default.createElement("div",__assign({className:t},r),React__default.default.createElement(InboxNotificationList,{className:"inbox-list"},o.map((function(e){return React__default.default.createElement(InboxNotification,{key:e.id,inboxNotification:e,onClick:n})}))))}function InboxPopoverUnreadCount(){var e=useUnreadInboxNotificationsCountSuspense().count;return e?React__default.default.createElement("div",{className:"inbox-unread-count"},e):null}function AmisInboxPopover(e){var t=e.className,n=__rest(e,["className"]),r=__read(React.useState(!1),2),o=r[0],a=r[1],i=useMarkAllInboxNotificationsAsRead(),s=useDeleteAllInboxNotifications();return React__default.default.createElement(Root2$1,{open:o,onOpenChange:a},React__default.default.createElement(Trigger,{className:clsx(t,"inbox-button square")},React__default.default.createElement(ErrorBoundary,{fallback:null},React__default.default.createElement(ClientSideSuspense,{fallback:null},React__default.default.createElement(InboxPopoverUnreadCount,null))),React__default.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",width:"20",height:"20"},React__default.default.createElement("path",{"fill-rule":"evenodd",d:"M12 2.25c-2.429 0-4.817.178-7.152.521C2.87 3.061 1.5 4.795 1.5 6.741v6.018c0 1.946 1.37 3.68 3.348 3.97.877.129 1.761.234 2.652.316V21a.75.75 0 0 0 1.28.53l4.184-4.183a.39.39 0 0 1 .266-.112c2.006-.05 3.982-.22 5.922-.506 1.978-.29 3.348-2.023 3.348-3.97V6.741c0-1.947-1.37-3.68-3.348-3.97A49.145 49.145 0 0 0 12 2.25ZM8.25 8.625a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25Zm2.625 1.125a1.125 1.125 0 1 1 2.25 0 1.125 1.125 0 0 1-2.25 0Zm4.875-1.125a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25Z","clip-rule":"evenodd"}))),React__default.default.createElement(Portal$1,null,React__default.default.createElement(Content2$2,__assign({className:"inbox",collisionPadding:16,sideOffset:8},n),React__default.default.createElement("div",{className:"inbox-header"},React__default.default.createElement("span",{className:"inbox-title"},instance.t("liveblocks:frontend_comment_inbox")),React__default.default.createElement("div",{className:"inbox-buttons"},React__default.default.createElement("button",{className:"inbox-button",onClick:i},instance.t("liveblocks:frontend_mark_all_read")),React__default.default.createElement("button",{className:"inbox-button destructive",onClick:s},instance.t("liveblocks:frontend_delete_all")))),React__default.default.createElement(ErrorBoundary,{fallback:React__default.default.createElement("div",{className:"error"},instance.t("liveblocks:frontend_fallback_error"))},React__default.default.createElement(ClientSideSuspense,{fallback:React__default.default.createElement(Loading,null)},React__default.default.createElement(Inbox,{onClick:function(e){console.log("clicked"),a(!1)}}))))))}"undefined"!=typeof window&&(window.getFieldSearchable=getFieldSearchable),"undefined"!=typeof window&&(window.isFieldTypeSearchable=isFieldTypeSearchable),instance.addResources("en-US","liveblocks",en_us$1),instance.addResources("zh-CN","liveblocks",zh_cn$1);var AmisRoomsProvider=function(e){var t,n=e.data,r=e.baseUrl,o=e.children,a=e.body,i=e.render,s=__read(React.useState(null),2),l=s[0],c=s[1],u=r||(null===(t=n.context)||void 0===t?void 0:t.rootUrl)||"".concat(window.location.protocol,"//").concat(window.location.host);console.log("liveblocks baseUrl:",u);var d=useTranslation(),f=d.i18n;d.t;var p=f.language,m=instance.getResourceBundle(p,"liveblocks")||{},h=__assign({locale:p},m),_=h.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented||"commented",g=h.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in||"in",v=h.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread||"in a thread";return h.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST=function(e,t){return React__default.default.createElement(React__default.default.Fragment,null,e," ",_,t?React__default.default.createElement(React__default.default.Fragment,null," ",g," ",t):React__default.default.createElement(React__default.default.Fragment,null," ",v))},React__default.default.createElement(LiveblocksUIConfig,{overrides:h},React__default.default.createElement(LiveblocksProvider,{baseUrl:u,authEndpoint:function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,n,r,o,a,i;return __generator(this,(function(s){switch(s.label){case 0:return t="".concat(u,"/v2/c/auth"),n={"Content-Type":"application/json"},r=localStorage.getItem("steedos:authToken"),(o=localStorage.getItem("steedos:spaceId"))&&r&&(n.Authorization="Bearer ".concat(o,",").concat(r)),a=JSON.stringify({room:e}),[4,fetch(t,{method:"POST",headers:n,body:a,credentials:"include"})];case 1:return[4,s.sent().json()];case 2:return i=s.sent(),c(i.token),[2,i]}}))}))},resolveRoomsInfo:function(e){var t=e.roomIds;return __awaiter(void 0,void 0,void 0,(function(){var e,n;return __generator(this,(function(r){switch(r.label){case 0:return e=new URLSearchParams(t.map((function(e){return["roomIds",e]}))),[4,fetch("".concat(u,"/v2/c/rooms?").concat(e),{headers:{Authorization:"Bearer ".concat(l)}})];case 1:if(!(n=r.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_rooms_info_error"));return[4,n.json()];case 2:return[2,r.sent()]}}))}))},resolveUsers:function(e){var t=e.userIds;return __awaiter(void 0,void 0,void 0,(function(){var e,n;return __generator(this,(function(r){switch(r.label){case 0:return e=new URLSearchParams(t.map((function(e){return["userIds",e]}))),[4,fetch("".concat(u,"/v2/c/users?").concat(e),{headers:{Authorization:"Bearer ".concat(l)}})];case 1:if(!(n=r.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_users_error"));return[4,n.json()];case 2:return[2,r.sent()]}}))}))},resolveMentionSuggestions:function(e){var t=e.text,n=void 0===t?"":t;return __awaiter(void 0,void 0,void 0,(function(){var e;return __generator(this,(function(t){switch(t.label){case 0:return[4,fetch("".concat(u,"/v2/c/users/search?keyword=").concat(encodeURIComponent(n)),{headers:{Authorization:"Bearer ".concat(l)}})];case 1:if(!(e=t.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_mention_suggestions_error"));return[4,e.json()];case 2:return[2,t.sent()]}}))}))}},a&&i("body",a,{}),o))};exports.AmisComments=AmisComments,exports.AmisInboxPopover=AmisInboxPopover,exports.AmisRoomsProvider=AmisRoomsProvider,exports.Threads=Threads,Object.defineProperty(exports,"__esModule",{value:!0})}));