@steedos-widgets/liveblocks 6.10.1-beta.52 → 6.10.1-beta.53

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,o)=>t(o,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 o=getArchtype(e);2===o?e.set(t,n):3===o?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 o=0;o<n.length;o++){const r=n[o],a=t[r];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[r]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[r]})}return Object.create(getPrototypeOf(e),t)}{const t=getPrototypeOf(e);if(null!==t&&n)return{...e};const o=Object.create(t);return Object.assign(o,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 o=t[DRAFT_STATE];if(!o)return each(t,((r,a)=>finalizeProperty(e,o,t,r,a,n))),t;if(o.scope_!==e)return t;if(!o.modified_)return maybeFreeze(e,o.base_,!0),o.base_;if(!o.finalized_){o.finalized_=!0,o.scope_.unfinalizedDrafts_--;const t=o.copy_;let r=t,a=!1;3===o.type_&&(r=new Set(t),t.clear(),a=!0),each(r,((r,i)=>finalizeProperty(e,o,t,r,i,n,a))),maybeFreeze(e,t,!1),n&&e.patches_&&getPlugin("Patches").generatePatches_(o,n,e.patches_,e.inversePatches_)}return o.copy_}function finalizeProperty(e,t,n,o,r,a,i){if(isDraft(r)){const i=finalize(e,r,a&&t&&3!==t.type_&&!has(t.assigned_,o)?a.concat(o):void 0);if(set(n,o,i),!isDraft(i))return;e.canAutoFreeze_=!1}else i&&n.add(r);if(isDraftable(r)&&!isFrozen(r)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;finalize(e,r),t&&t.scope_.parent_||"symbol"==typeof o||!Object.prototype.propertyIsEnumerable.call(n,o)||maybeFreeze(e,r)}}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),o={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 r=o,a=objectTraps;n&&(r=[o],a=arrayTraps);const{revoke:i,proxy:s}=Proxy.revocable(r,a);return o.draft_=s,o.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 o=n[t];return e.finalized_||!isDraftable(o)?o:o===peek(e.base_,t)?(prepareCopy(e),e.copy_[t]=createProxy(o,e)):o},has:(e,t)=>t in latest(e),ownKeys:e=>Reflect.ownKeys(latest(e)),set(e,t,n){const o=getDescriptorFromProto(latest(e),t);if(o?.set)return o.set.call(e.draft_,n),!0;if(!e.modified_){const o=peek(latest(e),t),r=o?.[DRAFT_STATE];if(r&&r.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(is(n,o)&&(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),o=Reflect.getOwnPropertyDescriptor(n,t);return o?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:o.enumerable,value:n[t]}:o},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 o=getDescriptorFromProto(t,n);return o?"value"in o?o.value:o.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 o=this;return function(e=n,...r){return o.produce(e,(e=>t.call(this,e,...r)))}}let o;if("function"!=typeof t&&die(6),void 0!==n&&"function"!=typeof n&&die(7),isDraftable(e)){const r=enterScope(this),a=createProxy(e,void 0);let i=!0;try{o=t(a),i=!1}finally{i?revokeScope(r):leaveScope(r)}return usePatchesInScope(r,n),processResult(o,r)}if(!e||"object"!=typeof e){if(o=t(e),void 0===o&&(o=e),o===NOTHING&&(o=void 0),this.autoFreeze_&&freeze$1(o,!0),n){const t=[],r=[];getPlugin("Patches").generateReplacementPatches_(e,o,t,r),n(t,r)}return o}die(1,e)},this.produceWithPatches=(e,t)=>{if("function"==typeof e)return(t,...n)=>this.produceWithPatches(t,(t=>e(t,...n)));let n,o;return[this.produce(e,t,((e,t)=>{n=e,o=t})),n,o]},"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_:o}=n;return usePatchesInScope(o,t),processResult(void 0,o)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const o=t[n];if(0===o.path.length&&"replace"===o.op){e=o.value;break}}n>-1&&(t=t.slice(n+1));const o=getPlugin("Patches").applyPatches_;return isDraft(e)?o(e,t):this.produce(e,(e=>o(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:o}=e;if(null!=n){var r=Path.transform(n,t,{affinity:o});e.current=r,null==r&&e.unref()}}},PointRef={transform(e,t){var{current:n,affinity:o}=e;if(null!=n){var r=Point.transform(n,t,{affinity:o});e.current=r,null==r&&e.unref()}}},RangeRef={transform(e,t){var{current:n,affinity:o}=e;if(null!=n){var r=Range.transform(n,t,{affinity:o});e.current=r,null==r&&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,o=Path.levels(e,t);return o=n?o.slice(1):o.slice(0,-1)},common(e,t){for(var n=[],o=0;o<e.length&&o<t.length;o++){var r=e[o];if(r!==t[o])break;n.push(r)}return n},compare(e,t){for(var n=Math.min(e.length,t.length),o=0;o<n;o++){if(e[o]<t[o])return-1;if(e[o]>t[o])return 1}return 0},endsAfter(e,t){var n=e.length-1,o=e.slice(0,n),r=t.slice(0,n),a=e[n],i=t[n];return Path.equals(o,r)&&a>i},endsAt(e,t){var n=e.length,o=e.slice(0,n),r=t.slice(0,n);return Path.equals(o,r)},endsBefore(e,t){var n=e.length-1,o=e.slice(0,n),r=t.slice(0,n),a=e[n],i=t[n];return Path.equals(o,r)&&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),o=t.slice(0,-1);return e[e.length-1]!==t[t.length-1]&&Path.equals(n,o)},levels(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,o=[],r=0;r<=e.length;r++)o.push(e.slice(0,r));return n&&o.reverse(),o},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 o=[...e],{affinity:r="forward"}=n;if(0===e.length)return o;switch(t.type){case"insert_node":var{path:a}=t;(Path.equals(a,o)||Path.endsBefore(a,o)||Path.isAncestor(a,o))&&(o[a.length-1]+=1);break;case"remove_node":var{path:i}=t;if(Path.equals(i,o)||Path.isAncestor(i,o))return null;Path.endsBefore(i,o)&&(o[i.length-1]-=1);break;case"merge_node":var{path:s,position:l}=t;Path.equals(s,o)||Path.endsBefore(s,o)?o[s.length-1]-=1:Path.isAncestor(s,o)&&(o[s.length-1]-=1,o[s.length]+=l);break;case"split_node":var{path:c,position:u}=t;if(Path.equals(c,o)){if("forward"===r)o[o.length-1]+=1;else if("backward"!==r)return null}else Path.endsBefore(c,o)?o[c.length-1]+=1:Path.isAncestor(c,o)&&e[c.length]>=u&&(o[c.length-1]+=1,o[c.length]-=u);break;case"move_node":var{path:d,newPath:f}=t;if(Path.equals(d,f))return o;if(Path.isAncestor(d,o)||Path.equals(d,o)){var p=f.slice();return Path.endsBefore(d,f)&&d.length<f.length&&(p[d.length-1]-=1),p.concat(o.slice(d.length))}Path.isSibling(d,f)&&(Path.isAncestor(f,o)||Path.equals(f,o))?Path.endsBefore(d,o)?o[d.length-1]-=1:o[d.length-1]+=1:Path.endsBefore(f,o)||Path.equals(f,o)||Path.isAncestor(f,o)?(Path.endsBefore(d,o)&&(o[d.length-1]-=1),o[f.length-1]+=1):Path.endsBefore(d,o)&&(Path.equals(f,o)&&(o[f.length-1]+=1),o[d.length-1]-=1)}return o}};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 o=n.call(e,t||"default");if("object"!==_typeof$4(o))return o;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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,node:r}=n,a=Node$1.parent(e,o),i=o[o.length-1];if(i>a.children.length)throw new Error('Cannot apply an "insert_node" operation at path ['.concat(o,"] because the destination is past the end of the node."));if(a.children.splice(i,0,r),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[h]=Point.transform(_,n);break;case"merge_node":var{path:g}=n,v=Node$1.get(e,g),y=Path.previous(g),E=Node$1.get(e,y),b=Node$1.parent(e,g),w=g[g.length-1];if(Text$1.isText(v)&&Text$1.isText(E))E.text+=v.text;else{if(Text$1.isText(v)||Text$1.isText(E))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(E)));E.children.push(...v.children)}if(b.children.splice(w,1),t)for(var[C,R]of Range.points(t))t[R]=Point.transform(C,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 x=Path.transform(S,n),I=Node$1.get(e,Path.parent(x)),N=x[x.length-1];if(I.children.splice(N,0,T),t)for(var[k,$]of Range.points(t))t[$]=Point.transform(k,n);break;case"remove_node":var{path:F}=n,P=F[F.length-1];if(Node$1.parent(e,F).children.splice(P,1),t)for(var[M,L]of Range.points(t)){var B=Point.transform(M,n);if(null!=t&&null!=B)t[L]=B;else{var j=void 0,U=void 0;for(var[V,H]of Node$1.texts(e)){if(-1!==Path.compare(H,F)){U=[V,H];break}j=[V,H]}var z=!1;j&&U&&(z=Path.equals(U[1],F)?!Path.hasPrevious(U[1]):Path.common(j[1],F).length<Path.common(U[1],F).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:q}=n;if(0===q.length)break;var G=Node$1.leaf(e,K),Y=G.text.slice(0,W),J=G.text.slice(W+q.length);if(G.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 oe in te){if("children"===oe||"text"===oe)throw new Error('Cannot set the "'.concat(oe,'" property of nodes!'));var re=te[oe];null==re?delete ne[oe]:ne[oe]=re}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),_e=ce[ce.length-1];if(Text$1.isText(pe)){var he=pe.text.slice(0,ue),ge=pe.text.slice(ue);pe.text=he,fe=_objectSpread$e(_objectSpread$e({},de),{},{text:ge})}else{var ve=pe.children.slice(0,ue),ye=pe.children.slice(ue);pe.children=ve,fe=_objectSpread$e(_objectSpread$e({},de),{},{children:ye})}if(me.children.splice(_e+1,0,fe),t)for(var[Ee,be]of Range.points(t))t[be]=Point.transform(Ee,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 o=e[n],r=t[n];if(isPlainObject$1(o)&&isPlainObject$1(r)){if(!isDeepEqual(o,r))return!1}else if(Array.isArray(o)&&Array.isArray(r)){if(o.length!==r.length)return!1;for(var a=0;a<o.length;a++)if(o[a]!==r[a])return!1}else if(o!==r)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,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}function _objectWithoutProperties$1(e,t){if(null==e)return{};var n,o,r=_objectWithoutPropertiesLoose$1(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var _excluded$4=["anchor","focus"];function ownKeys$d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,focus:r}=e;return Range.isBackward(e)===n?[o,r]:[r,o]},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,o]=Range.edges(e),[r,a]=Range.edges(t);return Point.isBefore(n,r)&&Point.isAfter(o,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),[o,r]=Range.edges(e),[a,i]=Range.edges(t),s=Point.isBefore(o,a)?a:o,l=Point.isBefore(r,i)?r: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 o,r,{affinity:a="inward"}=n;if("inward"===a){var i=Range.isCollapsed(e);Range.isForward(e)?(o="forward",r=i?o:"backward"):(o="backward",r=i?o:"forward")}else"outward"===a?Range.isForward(e)?(o="backward",r="forward"):(o="forward",r="backward"):(o=a,r=a);var s=Point.transform(e.anchor,t,{affinity:o}),l=Point.transform(e.focus,t,{affinity:r});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 o of Path.ancestors(t,n)){var r=[Node$1.ancestor(e,o),o];yield r}}()},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:o=!1}=n,r=Node$1.ancestor(e,t),{children:a}=r,i=o?a.length-1:0;o?i>=0:i<a.length;){var s=Node$1.child(r,i),l=t.concat(i);yield[s,l],i=o?i-1:i+1}}()},common(e,t,n){var o=Path.common(t,n);return[Node$1.get(e,o),o]},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,o]of Node$1.nodes(e,t))0!==o.length&&(yield[n,o])}()},elements(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,o]of Node$1.nodes(e,t))Element$2.isElement(n)&&(yield[n,o])}()},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(),o=Node$1.get(e,n);o&&!Text$1.isText(o)&&0!==o.children.length;)o=o.children[0],n.push(0);return[o,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,o]=Range.edges(t),r=Node$1.nodes(e,{reverse:!0,pass:e=>{var[,n]=e;return!Range.includes(t,n)}});for(var[,a]of r){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,o.path)){var l=Node$1.leaf(e,a);l.text=l.text.slice(0,o.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,o=0;o<t.length;o++){var r=t[o];if(Text$1.isText(n)||!n.children[r])return;n=n.children[r]}return n},has(e,t){for(var n=e,o=0;o<t.length;o++){var r=t[o];if(Text$1.isText(n)||!n.children[r])return!1;n=n.children[r]}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(),o=Node$1.get(e,n);o&&!Text$1.isText(o)&&0!==o.children.length;){var r=o.children.length-1;o=o.children[r],n.push(r)}return[o,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 o of Path.levels(t,n)){var r=Node$1.get(e,o);yield[r,o]}}()},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:o=!1}=t,{from:r=[],to:a}=t,i=new Set,s=[],l=e;!a||!(o?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(!o){var c=Path.next(s);if(Node$1.has(e,c)){s=c,l=Node$1.get(e,s);continue}}if(o&&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=o?l.children.length-1:0;Path.isAncestor(s,r)&&(u=r[s.length]),s=s.concat(u),l=Node$1.get(e,s)}}()},parent(e,t){var n=Path.parent(t),o=Node$1.get(e,n);if(Text$1.isText(o))throw new Error("Cannot get the parent of path [".concat(t,"] because it does not exist in the root."));return o},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,o]of Node$1.nodes(e,t))Text$1.isText(n)&&(yield[n,o])}()}};function ownKeys$c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=Path.transform(n,e),r=Path.transform(Path.next(n),e);return _objectSpread$c(_objectSpread$c({},e),{},{path:o,newPath:r});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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o="forward"}=n,{path:r,offset:a}=e;switch(t.type){case"insert_node":case"move_node":e.path=Path.transform(r,t,n);break;case"insert_text":Path.equals(t.path,r)&&(t.offset<a||t.offset===a&&"forward"===o)&&(e.offset+=t.text.length);break;case"merge_node":Path.equals(t.path,r)&&(e.offset+=t.position),e.path=Path.transform(r,t,n);break;case"remove_text":Path.equals(t.path,r)&&t.offset<=a&&(e.offset-=Math.min(a-t.offset,t.text.length));break;case"remove_node":if(Path.equals(t.path,r)||Path.isAncestor(t.path,r))return null;e.path=Path.transform(r,t,n);break;case"split_node":if(Path.equals(t.path,r)){if(t.position===a&&null==o)return null;(t.position<a||t.position===a&&"forward"===o)&&(e.offset-=t.position,e.path=Path.transform(r,t,_objectSpread$b(_objectSpread$b({},n),{},{affinity:"forward"})))}else e.path=Path.transform(r,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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o=!1}=n;function r(e){return _objectWithoutProperties$1(e,_excluded$2$1)}return isDeepEqual(o?r(e):e,o?r(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 o of t){var r=_objectWithoutProperties$1(o,_excluded2$2),[a,i]=Range.edges(o),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,r),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,_=void 0,h=void 0;if(u<l){var g=u-p;h=_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;_=_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,r),_&&s.push(_),s.push(m),h&&s.push(h)}}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,o=t?codepointsIteratorRTL(e):e,r=CodepointType.None,a=CodepointType.None,i=0,s=null;for(var l of o){var c=l.codePointAt(0);if(!c)break;var u=getCodepointType(l,c);if([r,a]=n?[a,u]:[u,r],intersects(r,CodepointType.ZWJ)&&intersects(a,CodepointType.ExtPict)&&!endsWithEmojiZWJ(n?e.substring(0,i):e.substring(0,e.length-i)))break;if(intersects(r,CodepointType.RI)&&intersects(a,CodepointType.RI)&&!(s=null!==s?!s:!!n||endsWithOddNumberOfRIs(e.substring(0,e.length-i))))break;if(r!==CodepointType.None&&a!==CodepointType.None&&isBoundaryPair(r,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,o=!1;e.length>0;){var r=getCharacterDistance(e,t),[a,i]=splitByCharacterDistance(e,r,t);if(isWordCharacter(a,i,t))o=!0,n+=r;else{if(o)break;n+=r}e=i}return n},splitByCharacterDistance=(e,t,n)=>{if(n){var o=e.length-t;return[e.slice(o,e.length),e.slice(0,o)]}return[e.slice(0,t),e.slice(t)]},isWordCharacter=function e(t,n){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(SPACE.test(t))return!1;if(CHAMELEON.test(t)){var r=getCharacterDistance(n,o),[a,i]=splitByCharacterDistance(n,r,o);if(e(a,i,o))return!0}return!PUNCTUATION.test(t)},codepointsIteratorRTL=function*(e){for(var t=e.length-1,n=0;n<e.length;n++){var o=e.charAt(t-n);if(isLowSurrogate(o.charCodeAt(0))){var r=e.charAt(t-n-1);if(isHighSurrogate(r.charCodeAt(0))){yield r+o,n++;continue}}yield o}},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:o=!1}=n,{at:r=getDefaultInsertLocation(e)}=n;if(Path.isPath(r)&&(r=Editor.range(e,r)),Range.isRange(r))if(Range.isCollapsed(r))r=r.anchor;else{var a=Range.end(r);if(!o&&Editor.void(e,{at:a}))return;var i=Range.start(r),s=Editor.pointRef(e,i),l=Editor.pointRef(e,a);Transforms.delete(e,{at:r,voids:o});var c=s.unref(),u=l.unref();r=c||u,Transforms.setSelection(e,{anchor:r,focus:r})}if(!(!o&&Editor.void(e,{at:r})||Editor.elementReadOnly(e,{at:r}))){var{path:d,offset:f}=r;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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=BATCHING_DIRTY_PATHS.get(e)||!1;BATCHING_DIRTY_PATHS.set(e,!0);try{t(),n()}finally{BATCHING_DIRTY_PATHS.set(e,o)}};function updateDirtyPaths(e,t,n){var o,r,a=DIRTY_PATHS.get(e)||[],i=DIRTY_PATH_KEYS.get(e)||new Set,s=e=>{if(e){var t=e.join(",");r.has(t)||(r.add(t),o.push(e))}};if(n)for(var l of(o=[],r=new Set,a)){s(n(l))}else o=a,r=i;for(var c of t)s(c);DIRTY_PATHS.set(e,o),DIRTY_PATH_KEYS.set(e,r)}var apply=(e,t)=>{for(var n of Editor.pathRefs(e))PathRef.transform(n,t);for(var o of Editor.pointRefs(e))PointRef.transform(o,t);for(var r of Editor.rangeRefs(e))RangeRef.transform(r,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:o,path:r}=t,a=Path.levels(r),i=Text$1.isText(o)?[]:Array.from(Node$1.nodes(o),(e=>{var[,t]=e;return r.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 _=Path.transform(m,t);d.push(_)}var h=d[d.length-1],g=c[c.length-1],v=h.concat(g);return[...u,...d,v];case"remove_node":var{path:y}=t;return[...Path.ancestors(y)];case"split_node":var{path:E}=t;return[...Path.levels(E),Path.next(E)];default:return[]}},getFragment=e=>{var{selection:t}=e;return t?Node$1.fragment(e,t):[]},normalizeNode=(e,t)=>{var[n,o]=t;if(!Text$1.isText(n))if(Element$2.isElement(n)&&0===n.children.length){Transforms.insertNodes(e,{text:""},{at:o.concat(0),voids:!0})}else for(var r=!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,o);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))!==r)Transforms.removeNodes(e,{at:o.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:o.concat(a+1),voids:!0}),a++}}else{Transforms.insertNodes(e,{text:""},{at:o.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:o.concat(a),voids:!0}),a--):""===c.text?(Transforms.removeNodes(e,{at:o.concat(a-1),voids:!0}),a--):""===l.text&&(Transforms.removeNodes(e,{at:o.concat(a),voids:!0}),a--))}}}},shouldNormalize=(e,t)=>{var{iteration:n,initialDirtyPathsLength:o}=t,r=42*o;if(n>r)throw new Error("Could not completely normalize the editor after ".concat(r," 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:o="lowest",at:r=e.selection,match:a}=t;if(r){var i=Editor.path(e,r),s="lowest"===o;for(var[l,c]of Editor.levels(e,{at:i,voids:n,match:a,reverse:s}))if(!Text$1.isText(l))if(Range.isRange(r)){if(Path.isAncestor(c,r.anchor.path)&&Path.isAncestor(c,r.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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o}=e;if(o){var r=(t,n)=>{if(!Text$1.isText(t))return!1;var[o,r]=Editor.parent(e,n);return!e.isVoid(o)||e.markableVoid(o)},a=Range.isExpanded(o),i=!1;if(!a){var[s,l]=Editor.node(e,o);if(s&&r(s,l)){var[c]=Editor.parent(e,l);i=c&&e.markableVoid(c)}}if(a||i)Transforms.setNodes(e,{[t]:n},{match:r,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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={anchor:Editor.point(e,t,{edge:"end"}),focus:Editor.end(e,[])},{distance:a=1}=o,i=0;for(var s of Editor.positions(e,_objectSpread$7$1(_objectSpread$7$1({},o),{},{at:r}))){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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={anchor:Editor.start(e,[]),focus:Editor.point(e,t,{edge:"start"})},{distance:a=1}=o,i=0;for(var s of Editor.positions(e,_objectSpread$6$2(_objectSpread$6$2({},o),{},{at:r,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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,marks:r}=e;if(o){if(r){var a=_objectSpread$3$2({text:t},r);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,[o]=n;return 0===n.length||1===n.length&&Text$1.isText(o)&&""===o.text&&!e.isVoid(t)},isEnd=(e,t,n)=>{var o=Editor.end(e,n);return Point.equals(t,o)},isNormalizing=e=>{var t=NORMALIZING.get(e);return void 0===t||t},isStart=(e,t,n)=>{if(0!==t.offset)return!1;var o=Editor.start(e,n);return Point.equals(t,o)},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]:{},o=Editor.path(e,t,n);return[Node$1.leaf(e,o),o]};function levels(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,reverse:o=!1,voids:r=!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]),!r&&Element$2.isElement(l)&&Editor.isVoid(e,l)))break;o&&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:o,focus:r}=n;if(t)return t;if(Range.isExpanded(n)){if(Range.isBackward(n)&&([r,o]=[o,r]),Editor.isEnd(e,o,o.path)){var a=Editor.after(e,o);a&&(o=a)}var[i]=Editor.nodes(e,{match:Text$1.isText,at:{anchor:o,focus:r}});if(i){var[s]=i;return _objectWithoutProperties$1(s,_excluded$1$1)}return{}}var{path:l}=o,[c]=Editor.leaf(e,l);if(0===o.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,[,_]=f;Path.isAncestor(_,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:o=!1}=t,{match:r,at:a=e.selection}=t;if(a){var i=Editor.after(e,a,{voids:o});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==r)if(Path.isPath(a)){var[c]=Editor.parent(e,a);r=e=>c.children.includes(e)}else r=()=>!0;var[u]=Editor.nodes(e,{at:l,match:r,mode:n,voids:o});return u}}},node=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=Editor.path(e,t,n),r=Node$1.get(e,o);return[r,o]};function nodes(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,mode:o="all",universal:r=!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)))}}),_=[];for(var[h,g]of m)if(!s||!Element$2.isElement(h)||Editor.isSelectable(e,h)){var v=p&&0===Path.compare(g,p[1]);if("highest"!==o||!v)if(l(h,g))if("lowest"===o&&v)p=[h,g];else{var y="lowest"===o?p:[h,g];y&&(r?_.push(y):yield y),p=[h,g]}else if(r&&!v&&Text$1.isText(h))return}"lowest"===o&&p&&(r?_.push(p):yield p),r&&(yield*_)}}()}var normalize=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{force:n=!1,operation:o}=t,r=e=>DIRTY_PATHS.get(e)||[],a=e=>{var t=r(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!==r(e).length&&Editor.withoutNormalizing(e,(()=>{for(var t of r(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:o})}for(var l=r(e),c=l.length,u=0;0!==l.length;){if(!e.shouldNormalize({dirtyPaths:l,iteration:u,initialDirtyPathsLength:c,operation:o}))return;var d=a(e);if(Node$1.has(e,d)){var f=Editor.node(e,d);e.normalizeNode(f,{operation:o})}u++,l=r(e)}}))}},parent=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=Editor.path(e,t,n),r=Path.parent(o);return Editor.node(e,r)},pathRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:o="forward"}=n,r={current:t,affinity:o,unref(){var{current:t}=r;return Editor.pathRefs(e).delete(r),r.current=null,t}};return Editor.pathRefs(e).add(r),r},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:o,edge:r}=n;if(Path.isPath(t))if("start"===r){var[,a]=Node$1.first(e,t);t=a}else if("end"===r){var[,i]=Node$1.last(e,t);t=i}return Range.isRange(t)&&(t="start"===r?Range.start(t):"end"===r?Range.end(t):Path.common(t.anchor.path,t.focus.path)),Point.isPoint(t)&&(t=t.path),null!=o&&(t=t.slice(0,o)),t},pointRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:o="forward"}=n,r={current:t,affinity:o,unref(){var{current:t}=r;return Editor.pointRefs(e).delete(r),r.current=null,t}};return Editor.pointRefs(e).add(r),r},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:o="start"}=n;if(Path.isPath(t)){var r;if("end"===o){var[,a]=Node$1.last(e,t);r=a}else{var[,i]=Node$1.first(e,t);r=i}var s=Node$1.get(e,r);if(!Text$1.isText(s))throw new Error("Cannot get the ".concat(o," point in the node at path [").concat(t,"] because it has no ").concat(o," text node."));return{path:r,offset:"end"===o?s.text.length:0}}if(Range.isRange(t)){var[l,c]=Range.edges(t);return"start"===o?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:o="offset",reverse:r=!1,voids:a=!1,ignoreNonSelectable:i=!1}=t;if(n){var s=Editor.range(e,n),[l,c]=Range.edges(s),u=r?c:l,d=!1,f="",p=0,m=0,_=0;for(var[h,g]of Editor.nodes(e,{at:n,reverse:r,voids:a,ignoreNonSelectable:i})){if(Element$2.isElement(h)){if(!a&&(e.isVoid(h)||e.isElementReadOnly(h))){yield Editor.start(e,g);continue}if(e.isInline(h))continue;if(Editor.hasInlines(e,h)){var v=Path.isAncestor(g,c.path)?c:Editor.end(e,g),y=Path.isAncestor(g,l.path)?l:Editor.start(e,g);f=Editor.string(e,{anchor:y,focus:v},{voids:a}),d=!0}}if(Text$1.isText(h)){var E=Path.equals(g,u.path);for(E?(m=r?u.offset:h.text.length-u.offset,_=u.offset):(m=h.text.length,_=r?m:0),(E||d||"offset"===o)&&(yield{path:g,offset:_},d=!1);;){if(0===p){if(""===f)break;p=b(f,o,r),f=splitByCharacterDistance(f,p,r)[1]}if(_=r?_-p:_+p,(m-=p)<0){p=-m;break}p=0,yield{path:g,offset:_}}}}}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:o=!1}=t,{match:r,at:a=e.selection}=t;if(a){var i=Editor.before(e,a,{voids:o});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==r)if(Path.isPath(a)){var[c]=Editor.parent(e,a);r=e=>c.children.includes(e)}else r=()=>!0;var[u]=Editor.nodes(e,{reverse:!0,at:l,match:r,mode:n,voids:o});return u}}},rangeRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:o="forward"}=n,r={current:t,affinity:o,unref(){var{current:t}=r;return Editor.rangeRefs(e).delete(r),r.current=null,t}};return Editor.rangeRefs(e).add(r),r},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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=(t,n)=>{if(!Text$1.isText(t))return!1;var[o,r]=Editor.parent(e,n);return!e.isVoid(o)||e.markableVoid(o)},r=Range.isExpanded(n),a=!1;if(!r){var[i,s]=Editor.node(e,n);if(i&&o(i,s)){var[l]=Editor.parent(e,s);a=l&&e.markableVoid(l)}}if(r||a)Transforms.unsetNodes(e,t,{match:o,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:o=!1}=n,r=Editor.range(e,t),[a,i]=Range.edges(r),s="";for(var[l,c]of Editor.nodes(e,{at:r,match:Text$1.isText,voids:o})){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:o=!1}=n,[r,a]=Range.edges(t);if(0!==r.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:o}),s=i?i[1]:[],l={anchor:Editor.start(e,r),focus:a},c=!0;for(var[u,d]of Editor.nodes(e,{at:l,match:Text$1.isText,reverse:!0,voids:o}))if(c)c=!1;else if(""!==u.text||Path.isBefore(d,s)){a={path:d,offset:u.text.length};break}return{anchor:r,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[o,r]=t;return Element$2.isElement(o)&&Editor.isEmpty(e,o)||Text$1.isText(o)&&""===o.text&&0!==r[r.length-1]},deleteText=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var n,o,{reverse:r=!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:r?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),_=Editor.end(e,[]);Point.equals(m,_)||(l=Editor.unhangRange(e,l,{voids:s}))}var[h,g]=Range.edges(l),v=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:h,voids:s}),y=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:g,voids:s}),E=v&&y&&!Path.equals(v[1],y[1]),b=Path.equals(h.path,g.path),w=s?null:null!==(n=Editor.void(e,{at:h,mode:"highest"}))&&void 0!==n?n:Editor.elementReadOnly(e,{at:h,mode:"highest"}),C=s?null:null!==(o=Editor.void(e,{at:g,mode:"highest"}))&&void 0!==o?o:Editor.elementReadOnly(e,{at:g,mode:"highest"});if(w){var R=Editor.before(e,h);R&&v&&Path.isAncestor(v[1],R.path)&&(h=R)}if(C){var S=Editor.after(e,g);S&&y&&Path.isAncestor(y[1],S.path)&&(g=S)}var D,T=[];for(var O of Editor.nodes(e,{at:l,voids:s})){var[A,x]=O;D&&0===Path.compare(x,D)||(!s&&Element$2.isElement(A)&&(Editor.isVoid(e,A)||Editor.isElementReadOnly(e,A))||!Path.isCommon(x,h.path)&&!Path.isCommon(x,g.path))&&(T.push(O),D=x)}var I=Array.from(T,(t=>{var[,n]=t;return Editor.pathRef(e,n)})),N=Editor.pointRef(e,h),k=Editor.pointRef(e,g),$="";if(!b&&!w){var F=N.current,[P]=Editor.leaf(e,F),{path:M}=F,{offset:L}=h,B=P.text.slice(L);B.length>0&&(e.apply({type:"remove_text",path:M,offset:L,text:B}),$=B)}if(I.reverse().map((e=>e.unref())).filter((e=>null!==e)).forEach((t=>Transforms.removeNodes(e,{at:t,voids:s}))),!C){var j=k.current,[U]=Editor.leaf(e,j),{path:V}=j,H=b?h.offset:0,z=U.text.slice(H,g.offset);z.length>0&&(e.apply({type:"remove_text",path:V,offset:H,text:z}),$=z)}!b&&E&&k.current&&N.current&&Transforms.mergeNodes(e,{at:k.current,hanging:!0,voids:s}),u&&r&&"character"===a&&$.length>1&&$.match(/[\u0E00-\u0E7F]+/)&&Transforms.insertText(e,$.slice(0,$.length-i));var K=N.unref(),W=k.unref(),q=r?K||W:W||K;null==t.at&&q&&Transforms.select(e,q)}}}))},insertFragment=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{hanging:o=!1,voids:r=!1}=n,{at:a=getDefaultInsertLocation(e),batchDirty:i=!0}=n;if(t.length){if(Range.isRange(a))if(o||(a=Editor.unhangRange(e,a,{voids:r})),Range.isCollapsed(a))a=a.anchor;else{var[,s]=Range.edges(a);if(!r&&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(r||!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:r});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:r}),[,f]=d,p=Editor.isStart(e,a,f),m=Editor.isEnd(e,a,f),_=p&&m,h=!p||p&&m,g=!m,[,v]=Node$1.first({children:t},[]),[,y]=Node$1.last({children:t},[]),E=[],b=t=>{var[n,o]=t;return!(0===o.length)&&(!!_||!(h&&Path.isAncestor(o,v)&&Element$2.isElement(n)&&!e.isVoid(n)&&!e.isInline(n))&&!(g&&Path.isAncestor(o,y)&&Element$2.isElement(n)&&!e.isVoid(n)&&!e.isInline(n)))};for(var w of Node$1.nodes({children:t},{pass:b}))b(w)&&E.push(w);var C=[],R=[],S=[],D=!0,T=!1;for(var[O]of E)Element$2.isElement(O)&&!e.isInline(O)?(D=!1,T=!0,R.push(O)):D?C.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:r}),[,x]=A,I=Editor.isStart(e,a,x),N=Editor.isEnd(e,a,x),k=Editor.pathRef(e,m&&!S.length?Path.next(f):f),$=Editor.pathRef(e,N?Path.next(x):x);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||C.length>0)&&(!m||S.length>0),voids:r});var F,P=Editor.pathRef(e,!I||I&&N?Path.next(x):x);if(Transforms.insertNodes(e,C,{at:P.current,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:r,batchDirty:i}),_&&!C.length&&R.length&&!S.length&&Transforms.delete(e,{at:f,voids:r}),Transforms.insertNodes(e,R,{at:k.current,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),mode:"lowest",voids:r,batchDirty:i}),Transforms.insertNodes(e,S,{at:$.current,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:r,batchDirty:i}),!n.at)if(S.length>0&&$.current?F=Path.previous($.current):R.length>0&&k.current?F=Path.previous(k.current):P.current&&(F=Path.previous(P.current)),F){var M=Editor.end(e,F);Transforms.select(e,M)}P.unref(),k.unref(),$.unref()}}}))},collapse$1=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{edge:n="anchor"}=t,{selection:o}=e;if(o)if("anchor"===n)Transforms.select(e,o.anchor);else if("focus"===n)Transforms.select(e,o.focus);else if("start"===n){var[r]=Range.edges(o);Transforms.select(e,r)}else if("end"===n){var[,a]=Range.edges(o);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:o=1,unit:r="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:o,unit:r,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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o}=e,{edge:r="both"}=n;if(o){"start"===r&&(r=Range.isBackward(o)?"focus":"anchor"),"end"===r&&(r=Range.isBackward(o)?"anchor":"focus");var{anchor:a,focus:i}=o,s="anchor"===r?a:i;Transforms.setSelection(e,{["anchor"===r?"anchor":"focus"]:_objectSpread$1$4(_objectSpread$1$4({},s),t)})}},setSelection=(e,t)=>{var{selection:n}=e,o={},r={};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])&&(o[a]=n[a],r[a]=t[a]);Object.keys(o).length>0&&e.apply({type:"set_selection",properties:o,newProperties:r})}},insertNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{hanging:o=!1,voids:r=!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(o||(s=Editor.unhangRange(e,s,{voids:r})),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:r});if(!p)return;var[,m]=p,_=Editor.pathRef(e,m),h=Editor.isEnd(e,s,m);Transforms.splitNodes(e,{at:s,match:l,mode:a,voids:r});var g=_.unref();s=h?Path.next(g):g}var v=Path.parent(s),y=s[s.length-1];if(r||!Editor.void(e,{at:v})){if(i){var E=[],b=Path.levels(v);batchDirtyPaths(e,(()=>{var n=function(){var t=v.concat(y);y++;var n={type:"insert_node",path:t,node:o};e.apply(n),s=Path.next(s),E.push(n),Text$1.isText?b.push(...Array.from(Node$1.nodes(o),(e=>{var[,n]=e;return t.concat(n)}))):b.push(t)};for(var o of t)n()}),(()=>{updateDirtyPaths(e,b,(e=>{var t=e;for(var n of E)if(Path.operationCanTransformPath(n)&&!(t=Path.transform(t,n)))return null;return t}))}))}else for(var w of t){var C=v.concat(y);y++,e.apply({type:"insert_node",path:C,node:w}),s=Path.next(s)}if(s=Path.previous(s),c){var R=Editor.end(e,s);R&&Transforms.select(e,R)}}}}))},liftNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{at:n=e.selection,mode:o="lowest",voids:r=!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:o,voids:r}),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 _=Path.next(f);Transforms.moveNodes(e,{at:c,to:_,voids:r}),Transforms.removeNodes(e,{at:f,voids:r})}else if(0===p)Transforms.moveNodes(e,{at:c,to:f,voids:r});else if(p===m-1){var h=Path.next(f);Transforms.moveNodes(e,{at:c,to:h,voids:r})}else{var g=Path.next(c),v=Path.next(f);Transforms.splitNodes(e,{at:g,voids:r}),Transforms.moveNodes(e,{at:c,to:v,voids:r})}}}}))},_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:o=e.selection}=t,{hanging:r=!1,voids:a=!1,mode:i="lowest"}=t;if(o){if(null==n)if(Path.isPath(o)){var[s]=Editor.parent(e,o);n=e=>s.children.includes(e)}else n=t=>Element$2.isElement(t)&&Editor.isBlock(e,t);if(!r&&Range.isRange(o)&&(o=Editor.unhangRange(e,o,{voids:a})),Range.isRange(o))if(Range.isCollapsed(o))o=o.anchor;else{var[,l]=Range.edges(o),c=Editor.pointRef(e,l);Transforms.delete(e,{at:o}),o=c.unref(),null==t.at&&Transforms.select(e,o)}var[u]=Editor.nodes(e,{at:o,match:n,voids:a,mode:i}),d=Editor.previous(e,{at:o,match:n,voids:a,mode:i});if(u&&d){var[f,p]=u,[m,_]=d;if(0!==p.length&&0!==_.length){var h,g,v=Path.next(_),y=Path.common(p,_),E=Path.isSibling(p,_),b=Array.from(Editor.levels(e,{at:p}),(e=>{var[t]=e;return t})).slice(y.length).slice(0,-1),w=Editor.above(e,{at:p,mode:"highest",match:t=>b.includes(t)&&hasSingleChildNest(e,t)}),C=w&&Editor.pathRef(e,w[1]);if(Text$1.isText(f)&&Text$1.isText(m)){var R=_objectWithoutProperties$1(f,_excluded$5);g=m.text.length,h=R}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)));R=_objectWithoutProperties$1(f,_excluded2$4);g=m.children.length,h=R}E||Transforms.moveNodes(e,{at:p,to:v,voids:a}),C&&Transforms.removeNodes(e,{at:C.current,voids:a}),Editor.shouldMergeNodesRemovePrevNode(e,d,u)?Transforms.removeNodes(e,{at:_,voids:a}):e.apply({type:"merge_node",path:v,position:g,properties:h}),C&&C.unref()}}}}))},moveNodes=(e,t)=>{Editor.withoutNormalizing(e,(()=>{var{to:n,at:o=e.selection,mode:r="lowest",voids:a=!1}=t,{match:i}=t;if(o){null==i&&(i=Path.isPath(o)?matchPath(e,o):t=>Element$2.isElement(t)&&Editor.isBlock(e,t));var s=Editor.pathRef(e,n),l=Editor.nodes(e,{at:o,match:i,mode:r,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:o=!1,mode:r="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:o}));var s=Editor.nodes(e,{at:a,match:i,mode:r,voids:o}),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:o,at:r=e.selection,compare:a,merge:i}=n,{hanging:s=!1,mode:l="lowest",split:c=!1,voids:u=!1}=n;if(r){if(null==o&&(o=Path.isPath(r)?matchPath(e,r):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),!s&&Range.isRange(r)&&(r=Editor.unhangRange(e,r,{voids:u})),c&&Range.isRange(r)){if(Range.isCollapsed(r)&&Editor.leaf(e,r.anchor)[0].text.length>0)return;var d=Editor.rangeRef(e,r,{affinity:"inward"}),[f,p]=Range.edges(r),m="lowest"===l?"lowest":"highest",_=Editor.isEnd(e,p,p.path);Transforms.splitNodes(e,{at:p,match:o,mode:m,voids:u,always:!_});var h=Editor.isStart(e,f,f.path);Transforms.splitNodes(e,{at:f,match:o,mode:m,voids:u,always:!h}),r=d.unref(),null==n.at&&Transforms.select(e,r)}for(var[g,v]of(a||(a=(e,t)=>e!==t),Editor.nodes(e,{at:r,match:o,mode:l,voids:u}))){var y={},E={};if(0!==v.length){var b=!1;for(var w in t)"children"!==w&&"text"!==w&&a(t[w],g[w])&&(b=!0,g.hasOwnProperty(w)&&(y[w]=g[w]),i?null!=t[w]&&(E[w]=i(g[w],t[w])):null!=t[w]&&(E[w]=t[w]));b&&e.apply({type:"set_node",path:v,properties:y,newProperties:E})}}}}))},deleteRange=(e,t)=>{if(Range.isCollapsed(t))return t.anchor;var[,n]=Range.edges(t),o=Editor.pointRef(e,n);return Transforms.delete(e,{at:t}),o.unref()},splitNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{mode:n="lowest",voids:o=!1}=t,{match:r,at:a=e.selection,height:i=0,always:s=!1}=t;if(null==r&&(r=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);r=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:r,mode:n,voids:o});if(!p)return;var m=Editor.void(e,{at:a,mode:"highest"});if(!o&&m){var[_,h]=m;if(Element$2.isElement(_)&&e.isInline(_)){var g=Editor.after(e,h);if(!g){var v=Path.next(h);Transforms.insertNodes(e,{text:""},{at:v,voids:o}),g=Editor.point(e,v)}a=g,s=!0}i=a.path.length-h.length+1,s=!0}d=Editor.pointRef(e,a);var y=a.path.length-i,[,E]=p,b=a.path.slice(0,y),w=0===i?a.offset:a.path[y]+0;for(var[C,R]of Editor.levels(e,{at:b,reverse:!0,voids:o})){var S=!1;if(R.length<E.length||0===R.length||!o&&Element$2.isElement(C)&&Editor.isVoid(e,C))break;var D=f.current,T=Editor.isEnd(e,D,R);if(s||!f||!Editor.isEdge(e,D,R)){S=!0;var O=Node$1.extractProps(C);e.apply({type:"split_node",path:R,position:w,properties:O})}w=R[R.length-1]+(S||T?1:0)}if(null==t.at){var A=d.current||Editor.end(e,[]);Transforms.select(e,A)}}finally{var x;f.unref(),null===(x=d)||void 0===x||x.unref()}}}))},unsetNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Array.isArray(t)||(t=[t]);var o={};for(var r of t)o[r]=null;Transforms.setNodes(e,o,n)},unwrapNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{mode:n="lowest",split:o=!1,voids:r=!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:r}),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);o&&s&&(a=Range.intersection(s.current,a)),Transforms.liftNodes(e,{at:a,match:e=>Element$2.isAncestor(n)&&n.children.includes(e),voids:r})};for(var d of c)u();s&&s.unref()}}))};function ownKeys$f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o="lowest",split:r=!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)),r&&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 r=Array.from(Editor.nodes(e,{at:n,match:i,mode:o,voids:a}));if(r.length>0){var[l]=r,c=r[r.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),_=Editor.node(e,f),[h]=_,g=f.length+1,v=Path.next(d.slice(0,g)),y=_objectSpread$f(_objectSpread$f({},t),{},{children:[]});Transforms.insertNodes(e,y,{at:v,voids:a}),Transforms.moveNodes(e,{at:m,match:e=>Element$2.isAncestor(h)&&h.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),o=0;o<t;o++)n[o]=arguments[o];return apply(e,...n)},addMark:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return addMark(e,...n)},deleteBackward:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteBackward(e,...n)},deleteForward:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteForward(e,...n)},deleteFragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteFragment(e,...n)},getFragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return getFragment(e,...n)},insertBreak:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertBreak(e,...n)},insertSoftBreak:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertSoftBreak(e,...n)},insertFragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertFragment(e,...n)},insertNode:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertNode(e,...n)},insertText:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertText(e,...n)},normalizeNode:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return normalizeNode(e,...n)},removeMark:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return removeMark(e,...n)},getDirtyPaths:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return getDirtyPaths(e,...n)},shouldNormalize:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return shouldNormalize(e,...n)},above:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return above(e,...n)},after:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return after(e,...n)},before:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return before(e,...n)},collapse:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return collapse$1(e,...n)},delete:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteText(e,...n)},deselect:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deselect(e,...n)},edges:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return edges(e,...n)},elementReadOnly:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return elementReadOnly(e,...n)},end:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return end(e,...n)},first:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return first(e,...n)},fragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return fragment(e,...n)},getMarks:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return marks(e,...n)},hasBlocks:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasBlocks(e,...n)},hasInlines:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasInlines(e,...n)},hasPath:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasPath(e,...n)},hasTexts:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasTexts(e,...n)},insertNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertNodes(e,...n)},isBlock:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isBlock(e,...n)},isEdge:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isEdge(e,...n)},isEmpty:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isEmpty$1(e,...n)},isEnd:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isEnd(e,...n)},isNormalizing:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isNormalizing(e,...n)},isStart:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isStart(e,...n)},last:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return last$1(e,...n)},leaf:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return leaf(e,...n)},levels:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return levels(e,...n)},liftNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return liftNodes(e,...n)},mergeNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return mergeNodes(e,...n)},move:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return move(e,...n)},moveNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return moveNodes(e,...n)},next:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return next(e,...n)},node:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return node(e,...n)},nodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return nodes(e,...n)},normalize:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return normalize(e,...n)},parent:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return parent(e,...n)},path:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return path(e,...n)},pathRef:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pathRef(e,...n)},pathRefs:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pathRefs(e,...n)},point:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return point(e,...n)},pointRef:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pointRef(e,...n)},pointRefs:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pointRefs(e,...n)},positions:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return positions(e,...n)},previous:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return previous(e,...n)},range:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return range(e,...n)},rangeRef:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return rangeRef(e,...n)},rangeRefs:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return rangeRefs(e,...n)},removeNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return removeNodes(e,...n)},select:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return select(e,...n)},setNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setNodes(e,...n)},setNormalizing:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setNormalizing(e,...n)},setPoint:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setPoint(e,...n)},setSelection:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setSelection(e,...n)},splitNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return splitNodes(e,...n)},start:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return start(e,...n)},string:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return string(e,...n)},unhangRange:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return unhangRange(e,...n)},unsetNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return unsetNodes(e,...n)},unwrapNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return unwrapNodes(e,...n)},void:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return getVoid(e,...n)},withoutNormalizing:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return withoutNormalizing(e,...n)},wrapNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return wrapNodes(e,...n)},shouldMergeNodesRemovePrevNode:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return shouldMergeNodesRemovePrevNode(e,...n)}};return e};function getCharacterBefore(e,t,n={}){const{filterVoids:o}=n,r=Editor.before(e,t,{unit:"character",voids:o});if(r){const n=Editor.range(e,r,Range.isRange(t)?Range.start(t):t),o=Editor.string(e,n);return{range:n,text:o,void:0===o.length}}}function getCharacterAfter(e,t,n={}){const{filterVoids:o}=n,r=Editor.after(e,t,{unit:"character",voids:o});if(r){const n=Editor.range(e,r,Range.isRange(t)?Range.end(t):t),o=Editor.string(e,n);return{range:n,text:o,void:0===o.length}}}const defaultOptions$2={direction:"before"};function getMatchRange(e,t,n=[" "],o=defaultOptions$2){const{include:r,direction:a}={...defaultOptions$2,...o};let[i,s]=Range.edges(t),l=i;function c(t){const o="after"===t?Editor.after(e,l,{unit:"character"}):Editor.before(e,l,{unit:"character"}),r=o&&Editor.string(e,"after"===t?{anchor:l,focus:o}:{anchor:o,focus:l}),a=r&&r["after"===t?0:r.length-1];return!(!o||!a||n.includes(a))&&(l=o,0!==l.offset)}if("before"!==a){for(l=s;c("after"););s=l}if("after"!==a){for(l=i;c("before"););i=l}return r?{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 o=Editor.string(e,n);return o.startsWith(MENTION_CHARACTER)?{range:n,text:o.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 o=e.selection?getCharacterAfter(e,e.selection):void 0;!o||o.void?Transforms.insertText(e," "):isEmptyString(o.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}),o=t&&!isEmptyString(t.text),r=n&&!isEmptyString(n.text);if(isSelectionCollapsed(e.selection)){const t=(o?" ":"")+MENTION_CHARACTER+(r?" ":"");e.insertText(t),r&&Transforms.move(e,{distance:1,unit:"character",reverse:!0})}else{const t=(o?" ":"")+MENTION_CHARACTER;e.insertText(t,{at:Range.start(e.selection)}),r&&e.insertText(" ",{at:Range.end(e.selection)}),Transforms.collapse(e,{edge:"end"})}}function withMentions(e){const{isInline:t,isVoid:n,markableVoid:o,deleteBackward:r}=e;return e.isInline=e=>isComposerBodyMention(e)||t(e),e.isVoid=e=>isComposerBodyMention(e)||n(e),e.markableVoid=e=>isComposerBodyMention(e)||o(e),e.deleteBackward=t=>{const{selection:n}=e;if(isSelectionCollapsed(n)){const[o]=Editor.nodes(e,{at:"character"===t?Editor.before(e,n,{unit:"character"}):n,match:isComposerBodyMention});r(t),o&&Transforms.insertText(e,MENTION_CHARACTER)}else r(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},o)=>{const r=t?Slot:"span";return React__default.default.createElement(r,{...n,ref:o},e)})),CommentLink$1=React.forwardRef((({children:e,asChild:t,...n},o)=>{const r=t?Slot:"a";return React__default.default.createElement(r,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:o},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:o,...r},a)=>{const i=o?Slot:"div",{Mention:s,Link:l}=React.useMemo((()=>({...defaultBodyComponents,...t})),[t]);return e&&e?.content?React__default.default.createElement(i,{...r,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 o=getAlignment(e),r=getAlignmentAxis(e),a=getAxisLength(r);let i="x"===r?o===(n?"end":"start")?"right":"left":"start"===o?"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 o=["left","right"],r=["right","left"],a=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return n?t?r:o:t?o:r;case"left":case"right":return t?a:i;default:return[]}}function getOppositeAxisPlacements(e,t,n,o){const r=getAlignment(e);let a=getSideList(getSide(e),"start"===n,o);return r&&(a=a.map((e=>e+"-"+r)),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:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function computeCoordsFromPlacement(e,t,n){let{reference:o,floating:r}=e;const a=getSideAxis(t),i=getAlignmentAxis(t),s=getAxisLength(i),l=getSide(t),c="y"===a,u=o.x+o.width/2-r.width/2,d=o.y+o.height/2-r.height/2,f=o[s]/2-r[s]/2;let p;switch(l){case"top":p={x:u,y:o.y-r.height};break;case"bottom":p={x:u,y:o.y+o.height};break;case"right":p={x:o.x+o.width,y:d};break;case"left":p={x:o.x-r.width,y:d};break;default:p={x:o.x,y:o.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:o="bottom",strategy:r="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:r}),{x:u,y:d}=computeCoordsFromPlacement(c,o,l),f=o,p={},m=0;for(let n=0;n<s.length;n++){const{name:a,fn:_}=s[n],{x:h,y:g,data:v,reset:y}=await _({x:u,y:d,initialPlacement:o,placement:f,strategy:r,middlewareData:p,rects:c,platform:i,elements:{reference:e,floating:t}});u=null!=h?h:u,d=null!=g?g:d,p={...p,[a]:{...p[a],...v}},y&&m<=50&&(m++,"object"==typeof y&&(y.placement&&(f=y.placement),y.rects&&(c=!0===y.rects?await i.getElementRects({reference:e,floating:t,strategy:r}):y.rects),({x:u,y:d}=computeCoordsFromPlacement(c,f,l))),n=-1)}return{x:u,y:d,placement:f,strategy:r,middlewareData:p}};async function detectOverflow(e,t){var n;void 0===t&&(t={});const{x:o,y:r,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),_=s[f?"floating"===d?"reference":"floating":d],h=rectToClientRect(await a.getClippingRect({element:null==(n=await(null==a.isElement?void 0:a.isElement(_)))||n?_:_.contextElement||await(null==a.getDocumentElement?void 0:a.getDocumentElement(s.floating)),boundary:c,rootBoundary:u,strategy:l})),g="floating"===d?{x:o,y:r,width:i.floating.width,height:i.floating.height}:i.reference,v=await(null==a.getOffsetParent?void 0:a.getOffsetParent(s.floating)),y=await(null==a.isElement?void 0:a.isElement(v))&&await(null==a.getScale?void 0:a.getScale(v))||{x:1,y:1},E=rectToClientRect(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:g,offsetParent:v,strategy:l}):g);return{top:(h.top-E.top+m.top)/y.y,bottom:(E.bottom-h.bottom+m.bottom)/y.y,left:(h.left-E.left+m.left)/y.x,right:(E.right-h.right+m.right)/y.x}}const arrow$3=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,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:o},p=getAlignmentAxis(r),m=getAxisLength(p),_=await i.getDimensions(c),h="y"===p,g=h?"top":"left",v=h?"bottom":"right",y=h?"clientHeight":"clientWidth",E=a.reference[m]+a.reference[p]-f[p]-a.floating[m],b=f[p]-a.reference[p],w=await(null==i.getOffsetParent?void 0:i.getOffsetParent(c));let C=w?w[y]:0;C&&await(null==i.isElement?void 0:i.isElement(w))||(C=s.floating[y]||a.floating[m]);const R=E/2-b/2,S=C/2-_[m]/2-1,D=min$1(d[g],S),T=min$1(d[v],S),O=D,A=C-_[m]-T,x=C/2-_[m]/2+R,I=clamp$1(O,x,A),N=!l.arrow&&null!=getAlignment(r)&&x!==I&&a.reference[m]/2-(x<O?D:T)-_[m]/2<0,k=N?x<O?x-O:x-A:0;return{[p]:f[p]+k,data:{[p]:I,centerOffset:x-I-k,...N&&{alignmentOffset:k}},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,o,r;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),_=void 0!==d||f===placements?getPlacementList(d||null,p,f):f,h=await detectOverflow(t,m),g=(null==(n=i.autoPlacement)?void 0:n.index)||0,v=_[g];if(null==v)return{};const y=getAlignmentSides(v,a,await(null==l.isRTL?void 0:l.isRTL(c.floating)));if(s!==v)return{reset:{placement:_[0]}};const E=[h[getSide(v)],h[y[0]],h[y[1]]],b=[...(null==(o=i.autoPlacement)?void 0:o.overflows)||[],{placement:v,overflows:E}],w=_[g+1];if(w)return{data:{index:g+1,overflows:b},reset:{placement:w}};const C=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])),R=(null==(r=C.filter((e=>e[2].slice(0,getAlignment(e[0])?2:3).every((e=>e<=0))))[0])?void 0:r[0])||C[0][0];return R!==s?{data:{index:g+1,overflows:b},reset:{placement:R}}:{}}}},flip$2=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,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:_=!0,...h}=evaluate(e,t);if(null!=(n=a.arrow)&&n.alignmentOffset)return{};const g=getSide(r),v=getSideAxis(s),y=getSide(s)===s,E=await(null==l.isRTL?void 0:l.isRTL(c.floating)),b=f||(y||!_?[getOppositePlacement(s)]:getExpandedPlacements(s)),w="none"!==m;!f&&w&&b.push(...getOppositeAxisPlacements(s,_,m,E));const C=[s,...b],R=await detectOverflow(t,h),S=[];let D=(null==(o=a.flip)?void 0:o.overflows)||[];if(u&&S.push(R[g]),d){const e=getAlignmentSides(r,i,E);S.push(R[e[0]],R[e[1]])}if(D=[...D,{placement:r,overflows:S}],!S.every((e=>e<=0))){var T,O;const e=((null==(T=a.flip)?void 0:T.index)||0)+1,t=C[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(w){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(r!==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:o="referenceHidden",...r}=evaluate(e,t);switch(o){case"referenceHidden":{const e=getSideOffsets(await detectOverflow(t,{...r,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:isAnySideFullyClipped(e)}}}case"escaped":{const e=getSideOffsets(await detectOverflow(t,{...r,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 o=null;for(let e=0;e<t.length;e++){const r=t[e];!o||r.y-o.y>o.height/2?n.push([r]):n[n.length-1].push(r),o=r}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:o,rects:r,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(o.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],o="top"===getSide(n),r=e.top,a=t.bottom,i=o?e.left:t.left,s=o?e.right:t.right;return{top:r,bottom:a,left:i,right:s,width:s-i,height:a-r,x:i,y:r}}const e="left"===getSide(n),t=max$1(...d.map((e=>e.right))),o=min$1(...d.map((e=>e.left))),r=d.filter((n=>e?n.left===o:n.right===t)),a=r[0].top,i=r[r.length-1].bottom;return{top:a,bottom:i,left:o,right:t,width:t-o,height:i-a,x:o,y:a}}return f}},floating:o.floating,strategy:i});return r.reference.x!==m.reference.x||r.reference.y!==m.reference.y||r.reference.width!==m.reference.width||r.reference.height!==m.reference.height?{reset:{rects:m}}:{}}}};async function convertValueToCoords(e,t){const{placement:n,platform:o,elements:r}=e,a=await(null==o.isRTL?void 0:o.isRTL(r.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,o;const{x:r,y:a,placement:i,middlewareData:s}=t,l=await convertValueToCoords(t,e);return i===(null==(n=s.offset)?void 0:n.placement)&&null!=(o=s.arrow)&&o.alignmentOffset?{}:{x:r+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:o,placement:r}=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:o},u=await detectOverflow(t,l),d=getSideAxis(getSide(r)),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 _=s.fn({...t,[f]:p,[d]:m});return{..._,data:{x:_.x-n,y:_.y-o,enabled:{[f]:a,[d]:i}}}}}},limitShift$2=function(e){return void 0===e&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:r,rects:a,middlewareData:i}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=evaluate(e,t),u={x:n,y:o},d=getSideAxis(r),f=getOppositeAxis(d);let p=u[f],m=u[d];const _=evaluate(s,t),h="number"==typeof _?{mainAxis:_,crossAxis:0}:{mainAxis:0,crossAxis:0,..._};if(l){const e="y"===f?"height":"width",t=a.reference[f]-a.floating[e]+h.mainAxis,n=a.reference[f]+a.reference[e]-h.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(r)),n=a.reference[d]-a.floating[e]+(t&&(null==(g=i.offset)?void 0:g[d])||0)+(t?0:h.crossAxis),o=a.reference[d]+a.reference[e]+(t?0:(null==(v=i.offset)?void 0:v[d])||0)-(t?h.crossAxis:0);m<n?m=n:m>o&&(m=o)}return{[f]:p,[d]:m}}}},size$3=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,o;const{placement:r,rects:a,platform:i,elements:s}=t,{apply:l=()=>{},...c}=evaluate(e,t),u=await detectOverflow(t,c),d=getSide(r),f=getAlignment(r),p="y"===getSideAxis(r),{width:m,height:_}=a.floating;let h,g;"top"===d||"bottom"===d?(h=d,g=f===(await(null==i.isRTL?void 0:i.isRTL(s.floating))?"start":"end")?"left":"right"):(g=d,h="end"===f?"top":"bottom");const v=_-u.top-u.bottom,y=m-u.left-u.right,E=min$1(_-u[h],v),b=min$1(m-u[g],y),w=!t.middlewareData.shift;let C=E,R=b;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(R=y),null!=(o=t.middlewareData.shift)&&o.enabled.y&&(C=v),w&&!f){const e=max$1(u.left,0),t=max$1(u.right,0),n=max$1(u.top,0),o=max$1(u.bottom,0);p?R=m-2*(0!==e||0!==t?e+t:max$1(u.left,u.right)):C=_-2*(0!==n||0!==o?n+o:max$1(u.top,u.bottom))}await l({...t,availableWidth:R,availableHeight:C});const S=await i.getDimensions(s.floating);return m!==S.width||_!==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:o,display:r}=getComputedStyle$1(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!["inline","contents"].includes(r)}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 o;void 0===t&&(t=[]),void 0===n&&(n=!0);const r=getNearestOverflowAncestor(e),a=r===(null==(o=e.ownerDocument)?void 0:o.body),i=getWindow(r);if(a){const e=getFrameElement(i);return t.concat(i,i.visualViewport||[],isOverflowElement(r)?r:[],e&&n?getOverflowAncestors(e):[])}return t.concat(r,getOverflowAncestors(r,[],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,o=parseFloat(t.height)||0;const r=isHTMLElement(e),a=r?e.offsetWidth:n,i=r?e.offsetHeight:o,s=round$1(n)!==a||round$1(o)!==i;return s&&(n=a,o=i),{width:n,height:o,$: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:o,height:r,$:a}=getCssDimensions(t);let i=(a?round$1(n.width):n.width)/o,s=(a?round$1(n.height):n.height)/r;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,o){void 0===t&&(t=!1),void 0===n&&(n=!1);const r=e.getBoundingClientRect(),a=unwrapElement(e);let i=createCoords(1);t&&(o?isElement$1(o)&&(i=getScale(o)):i=getScale(e));const s=shouldAddVisualOffsets(a,n,o)?getVisualOffsets(a):createCoords(0);let l=(r.left+s.x)/i.x,c=(r.top+s.y)/i.y,u=r.width/i.x,d=r.height/i.y;if(a){const e=getWindow(a),t=o&&isElement$1(o)?getWindow(o):o;let n=e,r=getFrameElement(n);for(;r&&o&&t!==n;){const e=getScale(r),t=r.getBoundingClientRect(),o=getComputedStyle$1(r),a=t.left+(r.clientLeft+parseFloat(o.paddingLeft))*e.x,i=t.top+(r.clientTop+parseFloat(o.paddingTop))*e.y;l*=e.x,c*=e.y,u*=e.x,d*=e.y,l+=a,c+=i,n=getWindow(r),r=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 o=e.getBoundingClientRect();return{x:o.left+t.scrollLeft-(n?0:getWindowScrollBarX(e,o)),y:o.top+t.scrollTop}}function convertOffsetParentRelativeRectToViewportRelativeRect(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const a="fixed"===r,i=getDocumentElement(o),s=!!t&&isTopLayer(t.floating);if(o===i||s&&a)return n;let l={scrollLeft:0,scrollTop:0},c=createCoords(1);const u=createCoords(0),d=isHTMLElement(o);if((d||!d&&!a)&&(("body"!==getNodeName(o)||isOverflowElement(i))&&(l=getNodeScroll(o)),isHTMLElement(o))){const e=getBoundingClientRect(o);c=getScale(o),u.x=e.x+o.clientLeft,u.y=e.y+o.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),o=e.ownerDocument.body,r=max$1(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),a=max$1(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let i=-n.scrollLeft+getWindowScrollBarX(e);const s=-n.scrollTop;return"rtl"===getComputedStyle$1(o).direction&&(i+=max$1(t.clientWidth,o.clientWidth)-r),{width:r,height:a,x:i,y:s}}function getViewportRect(e,t){const n=getWindow(e),o=getDocumentElement(e),r=n.visualViewport;let a=o.clientWidth,i=o.clientHeight,s=0,l=0;if(r){a=r.width,i=r.height;const e=isWebKit();(!e||e&&"fixed"===t)&&(s=r.offsetLeft,l=r.offsetTop)}return{width:a,height:i,x:s,y:l}}function getInnerBoundingClientRect(e,t){const n=getBoundingClientRect(e,!0,"fixed"===t),o=n.top+e.clientTop,r=n.left+e.clientLeft,a=isHTMLElement(e)?getScale(e):createCoords(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:r*a.x,y:o*a.y}}function getClientRectFromClippingAncestor(e,t,n){let o;if("viewport"===t)o=getViewportRect(e,n);else if("document"===t)o=getDocumentRect(getDocumentElement(e));else if(isElement$1(t))o=getInnerBoundingClientRect(t,n);else{const n=getVisualOffsets(e);o={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return rectToClientRect(o)}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 o=getOverflowAncestors(e,[],!1).filter((e=>isElement$1(e)&&"body"!==getNodeName(e))),r=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||(r=null);(a?!n&&!r:!n&&"static"===t.position&&!!r&&["absolute","fixed"].includes(r.position)||isOverflowElement(i)&&!n&&hasFixedPositionAncestor(e,i))?o=o.filter((e=>e!==i)):r=t,i=getParentNode(i)}return t.set(e,o),o}function getClippingRect(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const a=[..."clippingAncestors"===n?isTopLayer(t)?[]:getClippingElementAncestors(t,this._c):[].concat(n),o],i=a[0],s=a.reduce(((e,n)=>{const o=getClientRectFromClippingAncestor(t,n,r);return e.top=max$1(o.top,e.top),e.right=min$1(o.right,e.right),e.bottom=min$1(o.bottom,e.bottom),e.left=max$1(o.left,e.left),e}),getClientRectFromClippingAncestor(t,i,r));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 o=isHTMLElement(t),r=getDocumentElement(t),a="fixed"===n,i=getBoundingClientRect(e,!0,a,t);let s={scrollLeft:0,scrollTop:0};const l=createCoords(0);if(o||!o&&!a)if(("body"!==getNodeName(t)||isOverflowElement(r))&&(s=getNodeScroll(t)),o){const e=getBoundingClientRect(t,!0,a,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else r&&(l.x=getWindowScrollBarX(r));const c=!r||o||a?createCoords(0):getHTMLOffset(r,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 o=getTrueOffsetParent(e,t);for(;o&&isTableElement(o)&&isStaticPositioned(o);)o=getTrueOffsetParent(o,t);return o&&isLastTraversableNode(o)&&isStaticPositioned(o)&&!isContainingBlock(o)?n:o||getContainingBlock(e)||n}const getElementRects=async function(e){const t=this.getOffsetParent||getOffsetParent,n=this.getDimensions,o=await n(e.floating);return{reference:getRectRelativeToOffsetParent(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.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,o=null;const r=getDocumentElement(e);function a(){var e;clearTimeout(n),null==(e=o)||e.disconnect(),o=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(r.clientWidth-(c+d))+"px "+-floor$1(r.clientHeight-(u+f))+"px "+-floor$1(c)+"px",threshold:max$1(0,min$1(1,l))||1};let m=!0;function _(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{o=new IntersectionObserver(_,{...p,root:r.ownerDocument})}catch(e){o=new IntersectionObserver(_,p)}o.observe(e)}(!0),a}function autoUpdate(e,t,n,o){void 0===o&&(o={});const{ancestorScroll:r=!0,ancestorResize:a=!0,elementResize:i="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:l=!1}=o,c=unwrapElement(e),u=r||a?[...c?getOverflowAncestors(c):[],...getOverflowAncestors(t)]:[];u.forEach((e=>{r&&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[o]=e;o&&o.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 _=l?getBoundingClientRect(e):null;return l&&function t(){const o=getBoundingClientRect(e);!_||o.x===_.x&&o.y===_.y&&o.width===_.width&&o.height===_.height||n();_=o,f=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach((e=>{r&&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 o=new Map,r={platform:platform,...n},a={...r.platform,_c:o};return computePosition$1(e,t,{...r,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,o,r;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;0!=o--;)if(!deepEqual(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(o=n;0!=o--;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=n;0!=o--;){const n=r[o];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:o=[],platform:r,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(o);deepEqual(f,o)||p(o);const[m,_]=React__namespace.useState(null),[h,g]=React__namespace.useState(null),v=React__namespace.useCallback((e=>{e!==w.current&&(w.current=e,_(e))}),[]),y=React__namespace.useCallback((e=>{e!==C.current&&(C.current=e,g(e))}),[]),E=a||m,b=i||h,w=React__namespace.useRef(null),C=React__namespace.useRef(null),R=React__namespace.useRef(u),S=null!=l,D=useLatestRef(l),T=useLatestRef(r),O=useLatestRef(c),A=React__namespace.useCallback((()=>{if(!w.current||!C.current)return;const e={placement:t,strategy:n,middleware:f};T.current&&(e.platform=T.current),computePosition(w.current,C.current,e).then((e=>{const t={...e,isPositioned:!1!==O.current};x.current&&!deepEqual(R.current,t)&&(R.current=t,ReactDOM__namespace.flushSync((()=>{d(t)})))}))}),[f,t,n,T,O]);index((()=>{!1===c&&R.current.isPositioned&&(R.current.isPositioned=!1,d((e=>({...e,isPositioned:!1}))))}),[c]);const x=React__namespace.useRef(!1);index((()=>(x.current=!0,()=>{x.current=!1})),[]),index((()=>{if(E&&(w.current=E),b&&(C.current=b),E&&b){if(D.current)return D.current(E,b,A);A()}}),[E,b,A,D,S]);const I=React__namespace.useMemo((()=>({reference:w,floating:C,setReference:v,setFloating:y})),[v,y]),N=React__namespace.useMemo((()=>({reference:E,floating:b})),[E,b]),k=React__namespace.useMemo((()=>{const e={position:n,left:0,top:0};if(!N.floating)return e;const t=roundByDPR(N.floating,u.x),o=roundByDPR(N.floating,u.y);return s?{...e,transform:"translate("+t+"px, "+o+"px)",...getDPR(N.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:o}}),[n,s,N.floating,u.x,u.y]);return React__namespace.useMemo((()=>({...u,update:A,refs:I,elements:N,floatingStyles:k})),[u,A,I,N,k])}const arrow$1=e=>({name:"arrow",options:e,fn(t){const{element:n,padding:o}="function"==typeof e?e(t):e;return n&&(r=n,{}.hasOwnProperty.call(r,"current"))?null!=n.current?arrow$2({element:n.current,padding:o}).fn(t):{}:n?arrow$2({element:n,padding:o}).fn(t):{};var r}}),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(),[o,r]=React__default.default.useState(),a=React__default.default.useRef();return React__default.default.useEffect((()=>{const o=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||(r(e),o.set(l,e))}catch(e){console.error(e?.message)}};return o.has(l)?r(o.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]),o}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 o=n[n.length-1];o.selectionBefore&&Transforms.setSelection(t,o.selectionBefore),HistoryEditor.withoutSaving(t,(()=>{Editor.withoutNormalizing(t,(()=>{for(var e of o.operations)t.apply(e)}))})),e.redos.pop(),t.writeHistory("undos",o)}},t.undo=()=>{var{history:e}=t,{undos:n}=e;if(n.length>0){var o=n[n.length-1];HistoryEditor.withoutSaving(t,(()=>{Editor.withoutNormalizing(t,(()=>{var e=o.operations.map(Operation.inverse).reverse();for(var n of e)t.apply(n);o.selectionBefore&&Transforms.setSelection(t,o.selectionBefore)}))})),t.writeHistory("redos",o),e.undos.pop()}},t.apply=e=>{var{operations:o,history:r}=t,{undos:a}=r,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!==o.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();r.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 o=!0}catch(e){}var r=nativeObjectToString$1.call(e);return o&&(t?e[symToStringTag$1]=n:delete e[symToStringTag$1]),r}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 o,r,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=o,a=r;return o=r=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 _(){var e=now();if(m(e))return h(e);s=setTimeout(_,function(e){var n=t-(e-l);return d?nativeMin(n,a-(e-c)):n}(e))}function h(e){return s=void 0,f&&o?p(e):(o=r=void 0,i)}function g(){var e=now(),n=m(e);if(o=arguments,r=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(_,t),u?p(e):i}(l);if(d)return clearTimeout(s),s=setTimeout(_,t),p(l)}return void 0===s&&(s=setTimeout(_,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,o=l=r=s=void 0},g.flush=function(){return void 0===s?i:h(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 o=!0,r=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT);return isObject(n)&&(o="leading"in n?!!n.leading:o,r="trailing"in n?!!n.trailing:r),debounce(e,t,{leading:o,maxWait:t,trailing:r})}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,o,r,a,i,s)=>a<e&&i>t||a>e&&i<t?0:a<=e&&s<=n||i>=t&&s>=n?a-e-o:i>t&&s<n||a<e&&s>n?i-t+r:0,l=e=>{const t=e.parentElement;return null==t?e.getRootNode().host||null:t},r$1=(e,n)=>{var o,r,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,_=[];let h=e;for(;t(h)&&p(h);){if(h=l(h),h===m){_.push(h);break}null!=h&&h===document.body&&n$1(h)&&!n$1(document.documentElement)||null!=h&&n$1(h,f)&&_.push(h)}const g=null!=(r=null==(o=window.visualViewport)?void 0:o.width)?r:innerWidth,v=null!=(i=null==(a=window.visualViewport)?void 0:a.height)?i:innerHeight,{scrollX:y,scrollY:E}=window,{height:b,width:w,top:C,right:R,bottom:S,left:D}=e.getBoundingClientRect(),{top:T,right:O,bottom:A,left:x}=(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 I="start"===c||"nearest"===c?C-T:"end"===c?S+A:C+b/2-T+A,N="center"===u?D+w/2-x+O:"end"===u?R+O:D-x;const k=[];for(let e=0;e<_.length;e++){const t=_[e],{height:n,width:o,top:r,right:a,bottom:i,left:l}=t.getBoundingClientRect();if("if-needed"===s&&C>=0&&D>=0&&S<=v&&R<=g&&(t===m&&!n$1(t)||C>=r&&S<=i&&D>=l&&R<=a))return k;const d=getComputedStyle(t),f=parseInt(d.borderLeftWidth,10),p=parseInt(d.borderTopWidth,10),h=parseInt(d.borderRightWidth,10),T=parseInt(d.borderBottomWidth,10);let O=0,A=0;const x="offsetWidth"in t?t.offsetWidth-t.clientWidth-f-h:0,$="offsetHeight"in t?t.offsetHeight-t.clientHeight-p-T:0,F="offsetWidth"in t?0===t.offsetWidth?0:o/t.offsetWidth:0,P="offsetHeight"in t?0===t.offsetHeight?0:n/t.offsetHeight:0;if(m===t)O="start"===c?I:"end"===c?I-v:"nearest"===c?o$1(E,E+v,v,p,T,E+I,E+I+b,b):I-v/2,A="start"===u?N:"center"===u?N-g/2:"end"===u?N-g:o$1(y,y+g,g,f,h,y+N,y+N+w,w),O=Math.max(0,O+E),A=Math.max(0,A+y);else{O="start"===c?I-r-p:"end"===c?I-i+T+$:"nearest"===c?o$1(r,i,n,p,T+$,I,I+b,b):I-(r+n/2)+$/2,A="start"===u?N-l-f:"center"===u?N-(l+o/2)+x/2:"end"===u?N-a+h+x:o$1(l,a,o,f,h+x,N,N+w,w);const{scrollLeft:e,scrollTop:s}=t;O=0===P?0:Math.max(0,Math.min(s+O/P,t.scrollHeight-n/P+$)),A=0===F?0:Math.max(0,Math.min(e+A/F,t.scrollWidth-o/F+x)),I+=s-O,N+=e-A}k.push({el:t,top:O,left:A})}return k},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,o){return this.x=e,this.y=t,this.width=n,this.height=o,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,o=t.height;return!n&&!o}var r=e,a=r.offsetWidth,i=r.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),o=isSVG(e)&&e.ownerSVGElement&&e.getBBox(),r=!IE&&"border-box"===n.boxSizing,a=verticalRegexp.test(n.writingMode||""),i=!o&&scrollRegexp.test(n.overflowY||""),s=!o&&scrollRegexp.test(n.overflowX||""),l=o?0:parseDimension(n.paddingTop),c=o?0:parseDimension(n.paddingRight),u=o?0:parseDimension(n.paddingBottom),d=o?0:parseDimension(n.paddingLeft),f=o?0:parseDimension(n.borderTopWidth),p=o?0:parseDimension(n.borderRightWidth),m=o?0:parseDimension(n.borderBottomWidth),_=d+c,h=l+u,g=(o?0:parseDimension(n.borderLeftWidth))+p,v=f+m,y=s?e.offsetHeight-v-e.clientHeight:0,E=i?e.offsetWidth-g-e.clientWidth:0,b=r?_+g:0,w=r?h+v:0,C=o?o.width:parseDimension(n.width)-b-E,R=o?o.height:parseDimension(n.height)-w-y,S=C+_+E+g,D=R+h+y+v,T=freeze({devicePixelContentBoxSize:size(Math.round(C*devicePixelRatio),Math.round(R*devicePixelRatio),a),borderBoxSize:size(S,D,a),contentBoxSize:size(C,R,a),contentRect:new DOMRectReadOnly(d,l,C,R)});return cache.set(e,T),T},calculateBoxSize=function(e,t,n){var o=calculateBoxSizes(e,n),r=o.borderBoxSize,a=o.contentBoxSize,i=o.devicePixelContentBoxSize;switch(t){case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:return i;case ResizeObserverBoxOptions.BORDER_BOX:return r;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 o=[];n.activeTargets.forEach((function(t){var n=new ResizeObserverEntry(t.target),r=calculateDepthForNode(t.target);o.push(n),t.lastReportedSize=calculateBoxSize(t.target,t.observedBox),r<e&&(e=r)})),t.push((function(){n.callback.call(n.observer,o,n.observer)})),n.activeTargets.splice(0,n.activeTargets.length)}}));for(var n=0,o=t;n<o.length;n++){(0,o[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 o=!1;try{o=process$1()}finally{if(scheduled=!1,e=n-time(),!isWatching())return;o?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 o=observerMap.get(e),r=0===o.observationTargets.length;getObservationIndex(o.observationTargets,t)<0&&(r&&resizeObservers.push(o),o.observationTargets.push(new ResizeObservation(t,n&&n.box)),updateCount(1),scheduler.schedule())},e.unobserve=function(e,t){var n=observerMap.get(e),o=getObservationIndex(n.observationTargets,t),r=1===n.observationTargets.length;o>=0&&(r&&resizeObservers.splice(resizeObservers.indexOf(n),1),n.observationTargets.splice(o,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 o=e.map((function(e){return parseHotkey(e,t)})),r=function(e){return o.some((function(t){return compareHotkey(t,e)}))};return null==n?r:r(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,o={},r=(e=e.replace("++","+add")).split("+"),a=r.length;for(var i in MODIFIERS$1)o[MODIFIERS$1[i]]=!1;var s=!0,l=!1,c=void 0;try{for(var u,d=r[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),_=MODIFIERS$1[m];if(f.length>1&&!_&&!ALIASES[f]&&!CODES[m])throw new TypeError('Unknown modifier: "'+f+'"');1!==a&&_||(n?o.key=m:o.which=toKeyCode(f)),_&&(o[_]=!p||null)}}catch(e){l=!0,c=e}finally{try{!s&&d.return&&d.return()}finally{if(l)throw c}}return o}function compareHotkey(e,t){for(var n in e){var o=e[n],r=void 0;if(null!=o&&((null!=(r="key"===n&&null!=t.key?t.key.toLowerCase():"which"===n?91===o&&93===t.which?91:t.which:t[n])||!1!==o)&&r!==o))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,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}function _objectWithoutProperties(e,t){if(null==e)return{};var n,o,r=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}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 o=n.call(e,t||"default");if("object"!==_typeof$3(o))return o;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 o=n===t.childNodes.length,r=o?n-1:n;for([t,r]=getEditableChildAndIndex(t,r,o?"backward":"forward"),o=r<n;isDOMElement(t)&&t.childNodes.length;){var a=o?t.childNodes.length-1:0;t=getEditableChild(t,a,o?"backward":"forward")}n=o&&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:o}=e,r=o[t],a=t,i=!1,s=!1;(isDOMComment(r)||isDOMElement(r)&&0===r.childNodes.length||isDOMElement(r)&&"false"===r.getAttribute("contenteditable"))&&(!i||!s);)a>=o.length?(i=!0,a=t-1,n="backward"):a<0?(s=!0,a=t+1,n="forward"):(r=o[a],t=a,a+="forward"===n?1:-1);return[r,t]},getEditableChild=(e,t,n)=>{var[o]=getEditableChildAndIndex(e,t,n);return o},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 o=getComputedStyle(e).getPropertyValue("display");"block"!==o&&"list"!==o&&"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:o}=t;if(isDOMElement(o)&&o.matches('[contentEditable="false"]'))return!1;var{document:r}=ReactEditor.getWindow(e);if(r.contains(o))return ReactEditor.hasDOMNode(e,o,{editable:!0});var a=n.find((e=>{var{addedNodes:t,removedNodes:n}=e;for(var r of t)if(r===o||r.contains(o))return!0;for(var a of n)if(a===o||a.contains(o))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,o;e=null===(o=e)||void 0===o||null===(o=o.shadowRoot)||void 0===o?void 0:o.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),o=getSelection(n);o&&o.rangeCount>0&&o.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:o,target:r}=t;if(null==n||null==o)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=r.getBoundingClientRect(),c=e.isInline(i)?n-l.left<l.left+l.width-n:o-l.top<l.top+l.height-o,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,o);else{var p=f.caretPositionFromPoint(n,o);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=[],o=t;;){var r=NODE_TO_PARENT.get(o);if(null==r){if(Editor.isEditor(o))return n;break}var a=NODE_TO_INDEX.get(o);if(null==a)break;n.unshift(a),o=r}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),o=ReactEditor.findDocumentOrShadowRoot(e);if(o.activeElement!==n){if(e.selection&&o instanceof Document){var r=getSelection(o),a=ReactEditor.toDOMRange(e,e.selection);null==r||r.removeAllRanges(),null==r||r.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,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{editable:r=!1}=o,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||r&&!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:o}=t;return Editor.hasPath(e,n.path)&&Editor.hasPath(e,o.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),o=Editor.isEditor(t)?EDITOR_TO_ELEMENT.get(e):null==n?void 0:n.get(ReactEditor.findKey(e,t));if(!o)throw new Error("Cannot resolve a DOM node from Slate node: ".concat(Scrubber.stringify(t)));return o},toDOMPoint:(e,t)=>{var n,[o]=Editor.node(e,t.path),r=ReactEditor.toDOMNode(e,o);Editor.void(e,{at:t})&&(t={path:t.path,offset:0});for(var a=Array.from(r.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,_=p.childNodes[0];n=[_ instanceof DOMText?_: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:o}=t,r=Range.isBackward(t),a=ReactEditor.toDOMPoint(e,n),i=Range.isCollapsed(t)?a:ReactEditor.toDOMPoint(e,o),s=ReactEditor.getWindow(e).document.createRange(),[l,c]=r?i:a,[u,d]=r?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 o=n?ELEMENT_TO_NODE.get(n):null;if(!o)throw new Error("Cannot resolve a Slate node from DOM node: ".concat(n));return o},toSlatePoint:(e,t,n)=>{var{exactMatch:o,suppressThrow:r,searchDirection:a="backward"}=n,[i,s]=o?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"]'),_=m&&p.contains(m)?m:null,h=l.closest('[contenteditable="false"]'),g=h&&p.contains(h)?h:null,v=l.closest("[data-slate-leaf]"),y=null;if(v){if(c=v.closest('[data-slate-node="text"]')){var E=ReactEditor.getWindow(e).document.createRange();E.setStart(c,0),E.setEnd(i,s);var b=E.cloneContents();[...Array.prototype.slice.call(b.querySelectorAll("[data-slate-zero-width]")),...Array.prototype.slice.call(b.querySelectorAll("[contenteditable=false]"))].forEach((e=>{IS_ANDROID&&!o&&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,y=c}}else if(_){for(var w=_.querySelectorAll("[data-slate-leaf]"),C=0;C<w.length;C++){var R=w[C];if(ReactEditor.hasDOMNode(e,R)){v=R;break}}v?(c=v.closest('[data-slate-node="text"]'),u=(y=v).textContent.length,y.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"]'),y=v,"forward"===a?u=0:(u=y.textContent.length,y.querySelectorAll("[data-slate-zero-width]").forEach((e=>{u-=e.textContent.length}))))}y&&u===y.textContent.length&&IS_ANDROID&&"z"===y.getAttribute("data-slate-zero-width")&&null!==(d=y.textContent)&&void 0!==d&&d.startsWith("\ufeff")&&(l.hasAttribute("data-slate-zero-width")||IS_FIREFOX&&null!==(f=y.textContent)&&void 0!==f&&f.endsWith("\n\n"))&&u--}if(IS_ANDROID&&!c&&!o){var A=l.hasAttribute("data-slate-node")?l:l.closest("[data-slate-node]");if(A&&ReactEditor.hasDOMNode(e,A,{editable:!0})){var x=ReactEditor.toSlateNode(e,A),{path:I,offset:N}=Editor.start(e,ReactEditor.findPath(e,x));return A.querySelector("[data-slate-leaf]")||(N=s),{path:I,offset:N}}}if(!c){if(r)return null;throw new Error("Cannot resolve a Slate point from DOM point: ".concat(t))}var k=ReactEditor.toSlateNode(e,c);return{path:ReactEditor.findPath(e,k),offset:u}},toSlateRange:(e,t,n)=>{var o,r,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,_=f.startContainer,h=p(m.children[d.startOffset]),g=p(_.children[f.startOffset]);s=0,r=g.childNodes.length>0?g.childNodes[0]:g,i=h.childNodes.length>0?h.childNodes[0]:h,a=g instanceof HTMLElement?g.innerHTML.length:0}else d.startContainer===i?(r=f.endContainer,a=f.endOffset,s=d.startOffset):(r=d.startContainer,a=d.endOffset,s=f.startOffset)}else r=t.anchorNode,a=t.anchorOffset,i=t.focusNode,s=t.focusOffset;l=IS_CHROME&&hasShadowRoot(r)||IS_FIREFOX?t.anchorNode===t.focusNode&&t.anchorOffset===t.focusOffset:t.isCollapsed}else r=t.startContainer,a=t.startOffset,i=t.endContainer,s=t.endOffset,l=t.collapsed;if(null==r||null==i||null==a||null==s)throw new Error("Cannot resolve a Slate range from DOM range: ".concat(t));IS_FIREFOX&&null!==(o=i.textContent)&&void 0!==o&&o.endsWith("\n\n")&&s===i.textContent.length&&s--;var v=ReactEditor.toSlatePoint(e,[r,a],{exactMatch:c,suppressThrow:u});if(!v)return null;var y=isBefore(r,i)||r===i&&s<a,E=l?v:ReactEditor.toSlatePoint(e,[i,s],{exactMatch:c,suppressThrow:u,searchDirection:y?"forward":"backward"});if(!E)return null;var b={anchor:v,focus:E};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:o}=t;if(!Editor.hasPath(e,n))return!1;var r=Node$1.get(e,n);if(!Text$1.isText(r))return!1;if(o.start!==r.text.length||0===o.text.length)return r.text.slice(o.start,o.start+o.text.length)===o.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(o.text)}function applyStringDiff(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];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),o=0;o<n;o++)if(e.charAt(o)!==t.charAt(o))return o;return n}function longestCommonSuffixLength(e,t,n){for(var o=Math.min(e.length,t.length,n),r=0;r<o;r++)if(e.charAt(e.length-r-1)!==t.charAt(t.length-r-1))return r;return o}function normalizeStringDiff(e,t){var{start:n,end:o,text:r}=t,a=e.slice(n,o),i=longestCommonPrefixLength(a,r),s=longestCommonSuffixLength(a,r,Math.min(a.length-i,r.length-i)),l={start:n+i,end:o-s,text:r.slice(i,r.length-s)};return l.start===l.end&&0===l.text.length?null:l}function mergeStringDiffs(e,t,n){var o=Math.min(t.start,n.start),r=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)-r),s=a.slice(o,i);return normalizeStringDiff(e,{start:o,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:o}=t;if(!Editor.hasPath(e,n))return null;var r=Node$1.get(e,n);if(!Text$1.isText(r))return null;var a=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:n});if(!a)return null;for(;o>r.text.length;){var i=Editor.next(e,{at:n,match:Text$1.isText});if(!i||!Path.isDescendant(i[1],a[1]))return null;o-=r.text.length,r=i[0],n=i[1]}return{path:n,offset:o}}function normalizeRange(e,t){var n=normalizePoint(e,t.anchor);if(!n)return null;if(Range.isCollapsed(t))return{anchor:n,focus:n};var o=normalizePoint(e,t.focus);return o?{anchor:n,focus:o}:null}function transformPendingPoint(e,t,n){var o=EDITOR_TO_PENDING_DIFFS.get(e),r=null==o?void 0:o.find((e=>{var{path:n}=e;return Path.equals(n,t.path)}));if(!r||t.offset<=r.diff.start)return Point.transform(t,n,{affinity:"backward"});var{diff:a}=r;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 o=transformPendingPoint(e,t.anchor,n);if(!o)return null;if(Range.isCollapsed(t))return{anchor:o,focus:o};var r=transformPendingPoint(e,t.focus,n);return r?{anchor:o,focus:r}:null}function transformTextDiff(e,t){var{path:n,diff:o,id:r}=e;switch(t.type){case"insert_text":return!Path.equals(t.path,n)||t.offset>=o.end?e:t.offset<=o.start?{diff:{start:t.text.length+o.start,end:t.text.length+o.end,text:o.text},id:r,path:n}:{diff:{start:o.start,end:o.end+t.text.length,text:o.text},id:r,path:n};case"remove_text":return!Path.equals(t.path,n)||t.offset>=o.end?e:t.offset+t.text.length<=o.start?{diff:{start:o.start-t.text.length,end:o.end-t.text.length,text:o.text},id:r,path:n}:{diff:{start:o.start,end:o.end-t.text.length,text:o.text},id:r,path:n};case"split_node":return!Path.equals(t.path,n)||t.position>=o.end?{diff:o,id:r,path:Path.transform(n,t,{affinity:"backward"})}:t.position>o.start?{diff:{start:o.start,end:Math.min(t.position,o.end),text:o.text},id:r,path:n}:{diff:{start:o.start-t.position,end:o.end-t.position,text:o.text},id:r,path:Path.transform(n,t,{affinity:"forward"})};case"merge_node":return Path.equals(t.path,n)?{diff:{start:o.start+t.position,end:o.end+t.position,text:o.text},id:r,path:Path.transform(n,t)}:{diff:o,id:r,path:Path.transform(n,t)}}var a=Path.transform(n,t);return a?{diff:o,path:a,id:r}:null}function ownKeys$6$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o}=e,r=!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,o=normalizeRange(t,e);!o||n&&Range.equals(o,n)||Transforms.select(t,o)}},d=()=>{if(i&&(clearTimeout(i),i=null),s&&(clearTimeout(s),s=null),h()||_()){r||(r=!0,setTimeout((()=>r=!1))),_()&&(r="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=h();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),r="action",EDITOR_TO_PENDING_SELECTION.delete(t),n.cancel(),o.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),_())(()=>{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 o=Editor.range(t,n);t.selection&&Range.equals(t.selection,o)||Transforms.select(t,n)}e.run()}})();else{l&&n(),n.flush(),o.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&&(h()||e?n.style.display="none":n.style.removeProperty("display"))},p=(e,n)=>{var o,r=null!==(o=EDITOR_TO_PENDING_DIFFS.get(t))&&void 0!==o?o:[];EDITOR_TO_PENDING_DIFFS.set(t,r);var a=Node$1.leaf(t,e),i=r.findIndex((t=>Path.equals(t.path,e)));if(i<0)return normalizeStringDiff(a.text,n)&&r.push({path:e,diff:n,id:l++}),void f();var s=mergeStringDiffs(a.text,r[i].diff,n);if(!s)return r.splice(i,1),void f();r[i]=_objectSpread$6$1(_objectSpread$6$1({},r[i]),{},{diff:s})},m=function(e){var{at:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};c=!1,EDITOR_TO_PENDING_SELECTION.delete(t),n.cancel(),o.cancel(),_()&&d(),EDITOR_TO_PENDING_ACTION.set(t,{at:r,run:e}),s=setTimeout(d)},_=()=>!!EDITOR_TO_PENDING_ACTION.get(t),h=()=>{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 o=!n||!Path.equals(n.anchor.path,e.anchor.path),r=!n||!Path.equals(n.anchor.path.slice(0,-1),e.anchor.path.slice(0,-1));(o&&c||r)&&(c=!1),(o||h())&&(i=setTimeout(d,FLUSH_DELAY))}},v=()=>{_()||(s=setTimeout(d))};return{flush:d,scheduleFlush:v,hasPendingDiffs:h,hasPendingAction:_,hasPendingChanges:()=>_()||h(),isFlushing:()=>r,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:o}=e,r=null,a=e.dataTransfer||e.data||void 0;!1!==c&&"insertText"!==o&&"insertCompositionText"!==o&&(c=!1);var[s]=e.getTargetRanges();s&&(r=ReactEditor.toSlateRange(t,s,{exactMatch:!1,suppressThrow:!0}));var l=ReactEditor.getWindow(t).getSelection();if(!r&&l&&(s=l,r=ReactEditor.toSlateRange(t,l,{exactMatch:!1,suppressThrow:!0})),r=null!==(n=r)&&void 0!==n?n:t.selection){var u=!0;if(o.startsWith("delete")){if(Range.isExpanded(r)){var[d,f]=Range.edges(r);if(Node$1.leaf(t,d.path).text.length===d.offset&&0===f.offset){var _=Editor.next(t,{at:d.path,match:Text$1.isText});_&&Path.equals(_[1],f.path)&&(r={anchor:f,focus:f})}}var h=o.endsWith("Backward")?"backward":"forward",[y,E]=Range.edges(r),[b,w]=Editor.leaf(t,y.path),C={text:"",start:y.offset,end:E.offset},R=EDITOR_TO_PENDING_DIFFS.get(t),S=null==R?void 0:R.find((e=>Path.equals(e.path,w))),D=S?[S.diff,C]:[C];if(0===applyStringDiff(b.text,...D).length&&(u=!1),Range.isExpanded(r)){if(u&&Path.equals(r.anchor.path,r.focus.path)){var T={path:r.anchor.path,offset:y.offset},O=Editor.range(t,T,T);return g(O),p(r.anchor.path,{text:"",end:E.offset,start:y.offset})}return m((()=>Editor.deleteFragment(t,{direction:h})),{at:r})}}switch(o){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":return m((()=>Editor.deleteFragment(t)),{at:r});case"deleteContent":case"deleteContentForward":var{anchor:A}=r;if(u&&Range.isCollapsed(r)){var x=Node$1.leaf(t,A.path);if(A.offset<x.text.length)return p(A.path,{text:"",start:A.offset,end:A.offset+1})}return m((()=>Editor.deleteForward(t)),{at:r});case"deleteContentBackward":var I,{anchor:N}=r,k=isDOMSelection(s)?s.isCollapsed:!(null===(I=s)||void 0===I||!I.collapsed);return u&&k&&Range.isCollapsed(r)&&N.offset>0?p(N.path,{text:"",start:N.offset-1,end:N.offset}):m((()=>Editor.deleteBackward(t)),{at:r});case"deleteEntireSoftLine":return m((()=>{Editor.deleteBackward(t,{unit:"line"}),Editor.deleteForward(t,{unit:"line"})}),{at:r});case"deleteHardLineBackward":return m((()=>Editor.deleteBackward(t,{unit:"block"})),{at:r});case"deleteSoftLineBackward":return m((()=>Editor.deleteBackward(t,{unit:"line"})),{at:r});case"deleteHardLineForward":return m((()=>Editor.deleteForward(t,{unit:"block"})),{at:r});case"deleteSoftLineForward":return m((()=>Editor.deleteForward(t,{unit:"line"})),{at:r});case"deleteWordBackward":return m((()=>Editor.deleteBackward(t,{unit:"word"})),{at:r});case"deleteWordForward":return m((()=>Editor.deleteForward(t,{unit:"word"})),{at:r});case"insertLineBreak":return m((()=>Editor.insertSoftBreak(t)),{at:r});case"insertParagraph":return m((()=>Editor.insertBreak(t)),{at:r});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:r});var $=null!=a?a:"";if(EDITOR_TO_PENDING_INSERTION_MARKS.get(t)&&($=$.replace("\ufeff","")),"insertText"===o&&/.*\n.*\n$/.test($)&&($=$.slice(0,-1)),$.includes("\n"))return m((()=>{var e=$.split("\n");e.forEach(((n,o)=>{n&&Editor.insertText(t,n),o!==e.length-1&&Editor.insertSoftBreak(t)}))}),{at:r});if(Path.equals(r.anchor.path,r.focus.path)){var[F,P]=Range.edges(r),M={start:F.offset,end:P.offset,text:$};if($&&c&&"insertCompositionText"===o){var L=c.start+c.text.search(/\S|$/);M.start+M.text.search(/\S|$/)===L+1&&M.end===c.start+c.text.length?(M.start-=1,c=null,v()):c=!1}else c="insertText"===o&&(null===c?M:!(!c||!Range.isCollapsed(r)||c.end+c.text.length!==F.offset)&&_objectSpread$6$1(_objectSpread$6$1({},c),{},{text:c.text+$}));if(u)return void p(F.path,M)}return m((()=>Editor.insertText(t,$)),{at:r})}}}},handleKeyDown:e=>{h()||(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[o]=React.useState((()=>new MutationObserver(t)));useIsomorphicLayoutEffect$3((()=>{o.takeRecords()})),React.useEffect((()=>{if(!e.current)throw new Error("Failed to attach MutationObserver, `node` is undefined");return o.observe(e.current,n),()=>o.disconnect()}),[o,e,n])}var _excluded$3=["node"];function ownKeys$5$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=useSlateStatic(),r=useIsMounted(),[a]=React.useState((()=>createAndroidInputManager(_objectSpread$5$1({editor:o},n))));return useMutationObserver(t,a.handleDomMutations,MUTATION_OBSERVER_CONFIG$1),EDITOR_TO_SCHEDULE_FLUSH.set(o,a.scheduleFlush),r&&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),o=_objectWithoutProperties(t,_excluded2$1);return e[PLACEHOLDER_SYMBOL]===t[PLACEHOLDER_SYMBOL]&&shallowCompare(n,o)},isElementDecorationsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var o=e[n],r=t[n];if(!Range.equals(o,r)||!isDecorationFlagsEqual(o,r))return!1}return!0},isTextDecorationsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var o=e[n],r=t[n];if(o.anchor.offset!==r.anchor.offset||o.focus.offset!==r.focus.offset||!isDecorationFlagsEqual(o,r))return!1}return!0};function ownKeys$4$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,text:r}=e,a=useSlateStatic(),i=ReactEditor.findPath(a,r),s=Path.parent(i),l=Boolean(n[MARK_PLACEHOLDER_SYMBOL]);return a.isVoid(o)?React__default.default.createElement(ZeroWidthString,{length:Node$1.string(o).length}):""!==n.text||o.children[o.children.length-1]!==r||a.isInline(o)||""!==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,o=React.useRef(null),r=()=>"".concat(null!=t?t:"").concat(n?"\n":""),[a]=React.useState(r);return useIsomorphicLayoutEffect$3((()=>{var e=r();o.current&&o.current.textContent!==e&&(o.current.textContent=e)})),React__default.default.createElement(MemoizedText$1,{ref:o},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:o=!1}=e,r={"data-slate-zero-width":n?"n":"z","data-slate-length":t};return o&&(r["data-slate-mark-placeholder"]=!0),React__default.default.createElement("span",_objectSpread$4$1({},r),(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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,parent:r,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 o=window.ResizeObserver||ResizeObserver$1;l.current=new o((()=>{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:r,text:o}),_=Boolean(t[PLACEHOLDER_SYMBOL]);if(React.useEffect((()=>(_?f.current||(f.current=setTimeout((()=>{d(!0),f.current=null}),PLACEHOLDER_DELAY)):(clearTimeoutRef(f),d(!1)),()=>clearTimeoutRef(f))),[_,d]),_&&u){var h={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(h),m)}return i({attributes:{"data-slate-leaf":!0},children:m,leaf:t,text:o})},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:o,renderPlaceholder:r,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:r,leaf:p,text:i,parent:o,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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o=e=>React__default.default.createElement(DefaultElement,_objectSpread$2$1({},e)),renderPlaceholder:r,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:o,renderPlaceholder:r,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),_=direction_1(m);"rtl"===_&&(p.dir=_)}if(Editor.isVoid(s,n)){p["data-slate-void"]=!0,!l&&c&&(p.contentEditable=!1);var h=c?"span":"div",[[g]]=Node$1.texts(n);f=React__default.default.createElement(h,{"data-slate-spacer":!0,style:{height:"0",color:"transparent",outline:"none",position:"absolute"}},React__default.default.createElement(MemoizedText,{renderPlaceholder:r,decorations:[],isLast:!1,parent:n,text:g})),NODE_TO_INDEX.set(g,0),NODE_TO_PARENT.set(g,n)}return o({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:o}=e,r=useSlateStatic().isInline(o)?"span":"div";return React__default.default.createElement(r,_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:o,renderPlaceholder:r,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],_=ReactEditor.findKey(l,m),h=Editor.range(l,p),g=i&&Range.intersection(h,i),v=s([m,p]);for(var y of t){var E=Range.intersection(y,h);E&&v.push(E)}Element$2.isElement(m)?u.push(React__default.default.createElement(SelectedContext.Provider,{key:"provider-".concat(_.id),value:!!g},React__default.default.createElement(MemoizedElement,{decorations:v,element:m,key:_.id,renderElement:o,renderPlaceholder:r,renderLeaf:a,selection:g}))):u.push(React__default.default.createElement(MemoizedText,{decorations:v,key:_.id,isLast:d&&f===n.children.length-1,parent:n,renderPlaceholder:r,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),o=React.useCallback((()=>{if(!t.current){t.current=!0;var o=ReactEditor.getWindow(e);o.cancelAnimationFrame(n.current),n.current=o.requestAnimationFrame((()=>{t.current=!1}))}}),[e]);return React.useEffect((()=>()=>cancelAnimationFrame(n.current)),[]),{receivedUserInput:t,onUserInput:o}}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],o=WINDOWS_HOTKEYS[e],r=t&&isHotkey_1(t);n&&isHotkey_1(n);var a=o&&isHotkey_1(o);return e=>!(!r||!r(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=[],o=()=>{n=[]};return{registerMutations:o=>{if(t.current){var r=o.filter((t=>isTrackedMutation(e,t,o)));n.push(...r)}},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)})))})),o())},clear:o}},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,o,r=null===(e=this.mutationObserver)||void 0===e?void 0:e.takeRecords();null!=r&&r.length&&(null===(o=this.manager)||void 0===o||o.registerMutations(r));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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,decorate:r=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,_=_objectWithoutProperties(e,_excluded$1),h=useSlate(),[g,v]=React.useState(!1),y=React.useRef(null),E=React.useRef([]),[b,w]=React.useState(),C=React.useRef(!1),{onUserInput:R,receivedUserInput:S}=useTrackUserInput(),[,D]=React.useReducer((e=>e+1),0);EDITOR_TO_FORCE_RENDER.set(h,D),IS_READ_ONLY.set(h,s);var T=React.useMemo((()=>({isDraggingInternally:!1,isUpdatingSelection:!1,latestElement:null,hasMarkPlaceholder:!1})),[]);React.useEffect((()=>{y.current&&o&&y.current.focus()}),[o]);var O=React.useRef(),A=React.useMemo((()=>throttle_1((()=>{if(IS_NODE_MAP_DIRTY.get(h))A();else{var e=ReactEditor.toDOMNode(h,h).getRootNode();if(!C.current&&IS_WEBKIT&&e instanceof ShadowRoot)return C.current=!0,getActiveElement()?document.execCommand("indent"):Transforms.deselect(h),void(C.current=!1);var t=O.current;if((IS_ANDROID||!ReactEditor.isComposing(h))&&(!T.isUpdatingSelection||null!=t&&t.isFlushing())&&!T.isDraggingInternally){var n=ReactEditor.findDocumentOrShadowRoot(h),{activeElement:o}=n,r=ReactEditor.toDOMNode(h,h),a=getSelection(n);if(o===r?(T.latestElement=o,IS_FOCUSED.set(h,!0)):IS_FOCUSED.delete(h),!a)return Transforms.deselect(h);var{anchorNode:i,focusNode:l}=a,c=ReactEditor.hasEditableTarget(h,i)||ReactEditor.isTargetInsideNonReadonlyVoid(h,i),u=ReactEditor.hasTarget(h,l);if(c&&u){var d=ReactEditor.toSlateRange(h,a,{exactMatch:!1,suppressThrow:!0});d&&(ReactEditor.isComposing(h)||null!=t&&t.hasPendingChanges()||null!=t&&t.isFlushing()?null==t||t.handleUserSelect(d):Transforms.select(h,d))}!s||c&&u||Transforms.deselect(h)}}}),100)),[h,s,T]),x=React.useMemo((()=>debounce_1(A,0)),[A]);O.current=useAndroidInputManager({node:y,onDOMSelectionChange:A,scheduleOnDOMSelectionChange:x}),useIsomorphicLayoutEffect$3((()=>{var e,t,n;y.current&&(n=getDefaultView(y.current))?(EDITOR_TO_WINDOW.set(h,n),EDITOR_TO_ELEMENT.set(h,y.current),NODE_TO_ELEMENT.set(h,y.current),ELEMENT_TO_NODE.set(y.current,h)):NODE_TO_ELEMENT.delete(h);var{selection:o}=h,r=ReactEditor.findDocumentOrShadowRoot(h),a=getSelection(r);if(a&&ReactEditor.isFocused(h)&&(null===(e=O.current)||void 0===e||!e.hasPendingAction())){var i=e=>{var t="None"!==a.type;if(o||t){var n,r=a.focusNode;if(IS_FIREFOX&&a.rangeCount>1){var i=a.getRangeAt(0),s=a.getRangeAt(a.rangeCount-1);n=i.startContainer===r?s.endContainer:i.startContainer}else n=a.anchorNode;var l=EDITOR_TO_ELEMENT.get(h),c=!1;if(l.contains(n)&&l.contains(r)&&(c=!0),t&&c&&o&&!e){var u=ReactEditor.toSlateRange(h,a,{exactMatch:!0,suppressThrow:!0});if(u&&Range.equals(u,o)){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(!o||ReactEditor.hasRange(h,o)){T.isUpdatingSelection=!0;var p=o&&ReactEditor.toDOMRange(h,o);return p?(ReactEditor.isComposing(h)&&!IS_ANDROID?a.collapseToEnd():Range.isBackward(o)?a.setBaseAndExtent(p.endContainer,p.endOffset,p.startContainer,p.startOffset):a.setBaseAndExtent(p.startContainer,p.startOffset,p.endContainer,p.endOffset),d(h,p)):a.removeAllRanges(),p}h.selection=ReactEditor.toSlateRange(h,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(h,h).focus(),i(e)}catch(e){}};e(),l=setTimeout((()=>{e(!0),T.isUpdatingSelection=!1}))}}));return()=>{cancelAnimationFrame(c),l&&clearTimeout(l)}}setTimeout((()=>{T.isUpdatingSelection=!1}))}}));var I=React.useCallback((e=>{var t=ReactEditor.toDOMNode(h,h).getRootNode();if(null!=C&&C.current&&IS_WEBKIT&&t instanceof ShadowRoot){var n=e.getTargetRanges()[0],o=new window.Range;o.setStart(n.startContainer,n.startOffset),o.setEnd(n.endContainer,n.endOffset);var r=ReactEditor.toSlateRange(h,o,{exactMatch:!1,suppressThrow:!1});return Transforms.select(h,r),e.preventDefault(),void e.stopImmediatePropagation()}if(R(),!s&&ReactEditor.hasEditableTarget(h,e.target)&&!isDOMEventHandled(e,a)){var i;if(O.current)return O.current.handleDOMBeforeInput(e);x.flush(),A.flush();var{selection:l}=h,{inputType:c}=e,u=e.dataTransfer||e.data||void 0,d="insertCompositionText"===c||"deleteCompositionText"===c;if(d&&ReactEditor.isComposing(h))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,h.marks&&(f=!1),!IS_NODE_MAP_DIRTY.get(h))){var p,m,{anchor:_}=l,[g,y]=ReactEditor.toDOMPoint(h,_),b=null===(p=g.parentElement)||void 0===p?void 0:p.closest("a"),w=ReactEditor.getWindow(h);if(f&&b&&ReactEditor.hasDOMNode(h,b)){var S,D=null==w?void 0:w.document.createTreeWalker(b,NodeFilter.SHOW_TEXT).lastChild();D===g&&(null===(S=D.textContent)||void 0===S?void 0:S.length)===y&&(f=!1)}if(f&&g.parentElement&&"pre"===(null==w||null===(m=w.getComputedStyle(g.parentElement))||void 0===m?void 0:m.whiteSpace)){var T=Editor.above(h,{at:_.path,match:e=>Element$2.isElement(e)&&Editor.isBlock(h,e)});T&&Node$1.string(T[0]).includes("\t")&&(f=!1)}}if((!c.startsWith("delete")||c.startsWith("deleteBy"))&&!IS_NODE_MAP_DIRTY.get(h)){var[I]=e.getTargetRanges();if(I){var N=ReactEditor.toSlateRange(h,I,{exactMatch:!1,suppressThrow:!1});if(!l||!Range.equals(l,N)){f=!1;var k=!d&&h.selection&&Editor.rangeRef(h,h.selection);Transforms.select(h,N),k&&EDITOR_TO_USER_SELECTION.set(h,k)}}}if(d)return;if(f||e.preventDefault(),l&&Range.isExpanded(l)&&c.startsWith("delete")){var $=c.endsWith("Backward")?"backward":"forward";return void Editor.deleteFragment(h,{direction:$})}switch(c){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":Editor.deleteFragment(h);break;case"deleteContent":case"deleteContentForward":Editor.deleteForward(h);break;case"deleteContentBackward":Editor.deleteBackward(h);break;case"deleteEntireSoftLine":Editor.deleteBackward(h,{unit:"line"}),Editor.deleteForward(h,{unit:"line"});break;case"deleteHardLineBackward":Editor.deleteBackward(h,{unit:"block"});break;case"deleteSoftLineBackward":Editor.deleteBackward(h,{unit:"line"});break;case"deleteHardLineForward":Editor.deleteForward(h,{unit:"block"});break;case"deleteSoftLineForward":Editor.deleteForward(h,{unit:"line"});break;case"deleteWordBackward":Editor.deleteBackward(h,{unit:"word"});break;case"deleteWordForward":Editor.deleteForward(h,{unit:"word"});break;case"insertLineBreak":Editor.insertSoftBreak(h);break;case"insertParagraph":Editor.insertBreak(h);break;case"insertFromComposition":case"insertFromDrop":case"insertFromPaste":case"insertFromYank":case"insertReplacementText":case"insertText":"insertFromComposition"===c&&ReactEditor.isComposing(h)&&(v(!1),IS_COMPOSING.set(h,!1)),"DataTransfer"===(null==u?void 0:u.constructor.name)?ReactEditor.insertData(h,u):"string"==typeof u&&(f?E.current.push((()=>Editor.insertText(h,u))):Editor.insertText(h,u))}var F=null===(i=EDITOR_TO_USER_SELECTION.get(h))||void 0===i?void 0:i.unref();EDITOR_TO_USER_SELECTION.delete(h),!F||h.selection&&Range.equals(h.selection,F)||Transforms.select(h,F)}}),[h,A,R,a,s,x]),N=React.useCallback((e=>{null==e?(A.cancel(),x.cancel(),EDITOR_TO_ELEMENT.delete(h),NODE_TO_ELEMENT.delete(h),y.current&&HAS_BEFORE_INPUT_SUPPORT&&y.current.removeEventListener("beforeinput",I)):HAS_BEFORE_INPUT_SUPPORT&&e.addEventListener("beforeinput",I),y.current=e,"function"==typeof t?t(e):t&&(t.current=e)}),[A,x,h,I,t]);useIsomorphicLayoutEffect$3((()=>{var e=ReactEditor.getWindow(h);e.document.addEventListener("selectionchange",x);var t=()=>{T.isDraggingInternally=!1};return e.document.addEventListener("dragend",t),e.document.addEventListener("drop",t),()=>{e.document.removeEventListener("selectionchange",x),e.document.removeEventListener("dragend",t),e.document.removeEventListener("drop",t)}}),[x,T]);var k=r([h,[]]),$=i&&1===h.children.length&&1===Array.from(Node$1.texts(h)).length&&""===Node$1.string(h)&&!g,F=React.useCallback((e=>{var t;e&&$?w(null===(t=e.getBoundingClientRect())||void 0===t?void 0:t.height):w(void 0)}),[$]);if($){var P=Editor.start(h,[]);k.push({[PLACEHOLDER_SYMBOL]:!0,placeholder:i,onPlaceholderResize:F,anchor:P,focus:P})}var{marks:M}=h;if(T.hasMarkPlaceholder=!1,h.selection&&Range.isCollapsed(h.selection)&&M){var{anchor:L}=h.selection,B=Node$1.leaf(h,L.path),j=_objectWithoutProperties(B,_excluded2);if(!Text$1.equals(B,M,{loose:!0})){T.hasMarkPlaceholder=!0;var U=Object.fromEntries(Object.keys(j).map((e=>[e,null])));k.push(_objectSpread$1$3(_objectSpread$1$3(_objectSpread$1$3({[MARK_PLACEHOLDER_SYMBOL]:!0},U),M),{},{anchor:L,focus:L}))}}return React.useEffect((()=>{setTimeout((()=>{var{selection:e}=h;if(e){var{anchor:t}=e,n=Node$1.leaf(h,t.path);if(M&&!Text$1.equals(n,M,{loose:!0}))return void EDITOR_TO_PENDING_INSERTION_MARKS.set(h,M)}EDITOR_TO_PENDING_INSERTION_MARKS.delete(h)}))})),React__default.default.createElement(ReadOnlyContext.Provider,{value:s},React__default.default.createElement(ComposingContext.Provider,{value:g},React__default.default.createElement(DecorateContext.Provider,{value:r},React__default.default.createElement(RestoreDOM,{node:y,receivedUserInput:S},React__default.default.createElement(p,_objectSpread$1$3(_objectSpread$1$3({role:s?void 0:"textbox","aria-multiline":!s||void 0},_),{},{spellCheck:!(!HAS_BEFORE_INPUT_SUPPORT&&CAN_USE_DOM)&&_.spellCheck,autoCorrect:HAS_BEFORE_INPUT_SUPPORT||!CAN_USE_DOM?_.autoCorrect:"false",autoCapitalize:HAS_BEFORE_INPUT_SUPPORT||!CAN_USE_DOM?_.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,_.onBeforeInput)&&ReactEditor.hasSelectableTarget(h,e.target)&&(e.preventDefault(),!ReactEditor.isComposing(h))){var t=e.data;Editor.insertText(h,t)}}),[_.onBeforeInput,h,s]),onInput:React.useCallback((e=>{if(!isEventHandled(e,_.onInput))if(O.current)O.current.handleInput();else{for(var t of E.current)t();if(E.current=[],!ReactEditor.isFocused(h)){var n=e.nativeEvent,o=h;if("historyUndo"===n.inputType&&"function"==typeof o.undo)return void o.undo();if("historyRedo"===n.inputType&&"function"==typeof o.redo)return void o.redo()}}}),[_.onInput,h]),onBlur:React.useCallback((e=>{if(!s&&!T.isUpdatingSelection&&ReactEditor.hasSelectableTarget(h,e.target)&&!isEventHandled(e,_.onBlur)){var t=ReactEditor.findDocumentOrShadowRoot(h);if(T.latestElement!==t.activeElement){var{relatedTarget:n}=e;if(!(n===ReactEditor.toDOMNode(h,h)||isDOMElement(n)&&n.hasAttribute("data-slate-spacer"))){if(null!=n&&isDOMNode(n)&&ReactEditor.hasDOMNode(h,n)){var o=ReactEditor.toSlateNode(h,n);if(Element$2.isElement(o)&&!h.isVoid(o))return}if(IS_WEBKIT){var r=getSelection(t);null==r||r.removeAllRanges()}IS_FOCUSED.delete(h)}}}}),[s,T.isUpdatingSelection,T.latestElement,h,_.onBlur]),onClick:React.useCallback((e=>{if(ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,_.onClick)&&isDOMNode(e.target)){var t=ReactEditor.toSlateNode(h,e.target),n=ReactEditor.findPath(h,t);if(!Editor.hasPath(h,n)||Node$1.get(h,n)!==t)return;if(e.detail===TRIPLE_CLICK&&n.length>=1){var o=n;if(!Element$2.isElement(t)||!Editor.isBlock(h,t)){var r,a=Editor.above(h,{match:e=>Element$2.isElement(e)&&Editor.isBlock(h,e),at:n});o=null!==(r=null==a?void 0:a[1])&&void 0!==r?r:n.slice(0,1)}var i=Editor.range(h,o);return void Transforms.select(h,i)}if(s)return;var l=Editor.start(h,n),c=Editor.end(h,n),u=Editor.void(h,{at:l}),d=Editor.void(h,{at:c});if(u&&d&&Path.equals(u[1],d[1])){var f=Editor.range(h,l);Transforms.select(h,f)}}}),[h,_.onClick,s]),onCompositionEnd:React.useCallback((e=>{if(ReactEditor.hasSelectableTarget(h,e.target)){var t;if(ReactEditor.isComposing(h)&&Promise.resolve().then((()=>{v(!1),IS_COMPOSING.set(h,!1)})),null===(t=O.current)||void 0===t||t.handleCompositionEnd(e),isEventHandled(e,_.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(h);EDITOR_TO_PENDING_INSERTION_MARKS.delete(h),void 0!==n&&(EDITOR_TO_USER_MARKS.set(h,h.marks),h.marks=n),Editor.insertText(h,e.data);var o=EDITOR_TO_USER_MARKS.get(h);EDITOR_TO_USER_MARKS.delete(h),void 0!==o&&(h.marks=o)}}}),[_.onCompositionEnd,h]),onCompositionUpdate:React.useCallback((e=>{ReactEditor.hasSelectableTarget(h,e.target)&&!isEventHandled(e,_.onCompositionUpdate)&&(ReactEditor.isComposing(h)||(v(!0),IS_COMPOSING.set(h,!0)))}),[_.onCompositionUpdate,h]),onCompositionStart:React.useCallback((e=>{if(ReactEditor.hasSelectableTarget(h,e.target)){var t;if(null===(t=O.current)||void 0===t||t.handleCompositionStart(e),isEventHandled(e,_.onCompositionStart)||IS_ANDROID)return;v(!0);var{selection:n}=h;if(n&&Range.isExpanded(n))return void Editor.deleteFragment(h)}}),[_.onCompositionStart,h]),onCopy:React.useCallback((e=>{!ReactEditor.hasSelectableTarget(h,e.target)||isEventHandled(e,_.onCopy)||isDOMEventTargetInput(e)||(e.preventDefault(),ReactEditor.setFragmentData(h,e.clipboardData,"copy"))}),[_.onCopy,h]),onCut:React.useCallback((e=>{if(!s&&ReactEditor.hasSelectableTarget(h,e.target)&&!isEventHandled(e,_.onCut)&&!isDOMEventTargetInput(e)){e.preventDefault(),ReactEditor.setFragmentData(h,e.clipboardData,"cut");var{selection:t}=h;if(t)if(Range.isExpanded(t))Editor.deleteFragment(h);else{var n=Node$1.parent(h,t.anchor.path);Editor.isVoid(h,n)&&Transforms.delete(h)}}}),[s,h,_.onCut]),onDragOver:React.useCallback((e=>{if(ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,_.onDragOver)){var t=ReactEditor.toSlateNode(h,e.target);Element$2.isElement(t)&&Editor.isVoid(h,t)&&e.preventDefault()}}),[_.onDragOver,h]),onDragStart:React.useCallback((e=>{if(!s&&ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,_.onDragStart)){var t=ReactEditor.toSlateNode(h,e.target),n=ReactEditor.findPath(h,t);if(Element$2.isElement(t)&&Editor.isVoid(h,t)||Editor.void(h,{at:n,voids:!0})){var o=Editor.range(h,n);Transforms.select(h,o)}T.isDraggingInternally=!0,ReactEditor.setFragmentData(h,e.dataTransfer,"drag")}}),[s,h,_.onDragStart,T]),onDrop:React.useCallback((e=>{if(!s&&ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,_.onDrop)){e.preventDefault();var t=h.selection,n=ReactEditor.findEventRange(h,e),o=e.dataTransfer;Transforms.select(h,n),T.isDraggingInternally&&(!t||Range.equals(t,n)||Editor.void(h,{at:n,voids:!0})||Transforms.delete(h,{at:t})),ReactEditor.insertData(h,o),ReactEditor.isFocused(h)||ReactEditor.focus(h)}}),[s,h,_.onDrop,T]),onDragEnd:React.useCallback((e=>{!s&&T.isDraggingInternally&&_.onDragEnd&&ReactEditor.hasTarget(h,e.target)&&_.onDragEnd(e)}),[s,T,_,h]),onFocus:React.useCallback((e=>{if(!s&&!T.isUpdatingSelection&&ReactEditor.hasEditableTarget(h,e.target)&&!isEventHandled(e,_.onFocus)){var t=ReactEditor.toDOMNode(h,h),n=ReactEditor.findDocumentOrShadowRoot(h);if(T.latestElement=n.activeElement,IS_FIREFOX&&e.target!==t)return void t.focus();IS_FOCUSED.set(h,!0)}}),[s,T,h,_.onFocus]),onKeyDown:React.useCallback((e=>{if(!s&&ReactEditor.hasEditableTarget(h,e.target)){var t;null===(t=O.current)||void 0===t||t.handleKeyDown(e);var{nativeEvent:n}=e;if(ReactEditor.isComposing(h)&&!1===n.isComposing&&(IS_COMPOSING.set(h,!1),v(!1)),isEventHandled(e,_.onKeyDown)||ReactEditor.isComposing(h))return;var{selection:o}=h,r=h.children[null!==o?o.focus.path[0]:0],a="rtl"===direction_1(Node$1.string(r));if(Hotkeys.isRedo(n)){e.preventDefault();var i=h;return void("function"==typeof i.redo&&i.redo())}if(Hotkeys.isUndo(n)){e.preventDefault();var l=h;return void("function"==typeof l.undo&&l.undo())}if(Hotkeys.isMoveLineBackward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line",reverse:!0});if(Hotkeys.isMoveLineForward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line"});if(Hotkeys.isExtendLineBackward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line",edge:"focus",reverse:!0});if(Hotkeys.isExtendLineForward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line",edge:"focus"});if(Hotkeys.isMoveBackward(n))return e.preventDefault(),void(o&&Range.isCollapsed(o)?Transforms.move(h,{reverse:!a}):Transforms.collapse(h,{edge:a?"end":"start"}));if(Hotkeys.isMoveForward(n))return e.preventDefault(),void(o&&Range.isCollapsed(o)?Transforms.move(h,{reverse:a}):Transforms.collapse(h,{edge:a?"start":"end"}));if(Hotkeys.isMoveWordBackward(n))return e.preventDefault(),o&&Range.isExpanded(o)&&Transforms.collapse(h,{edge:"focus"}),void Transforms.move(h,{unit:"word",reverse:!a});if(Hotkeys.isMoveWordForward(n))return e.preventDefault(),o&&Range.isExpanded(o)&&Transforms.collapse(h,{edge:"focus"}),void Transforms.move(h,{unit:"word",reverse:a});if(HAS_BEFORE_INPUT_SUPPORT){if((IS_CHROME||IS_WEBKIT)&&o&&(Hotkeys.isDeleteBackward(n)||Hotkeys.isDeleteForward(n))&&Range.isCollapsed(o)){var c=Node$1.parent(h,o.anchor.path);if(Element$2.isElement(c)&&Editor.isVoid(h,c)&&(Editor.isInline(h,c)||Editor.isBlock(h,c)))return e.preventDefault(),void Editor.deleteBackward(h,{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(h);if(Hotkeys.isSplitBlock(n))return e.preventDefault(),void Editor.insertBreak(h);if(Hotkeys.isDeleteBackward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"backward"}):Editor.deleteBackward(h));if(Hotkeys.isDeleteForward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"forward"}):Editor.deleteForward(h));if(Hotkeys.isDeleteLineBackward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"backward"}):Editor.deleteBackward(h,{unit:"line"}));if(Hotkeys.isDeleteLineForward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"forward"}):Editor.deleteForward(h,{unit:"line"}));if(Hotkeys.isDeleteWordBackward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"backward"}):Editor.deleteBackward(h,{unit:"word"}));if(Hotkeys.isDeleteWordForward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"forward"}):Editor.deleteForward(h,{unit:"word"}))}}}),[s,h,_.onKeyDown]),onPaste:React.useCallback((e=>{s||!ReactEditor.hasEditableTarget(h,e.target)||isEventHandled(e,_.onPaste)||(!HAS_BEFORE_INPUT_SUPPORT||isPlainTextOnlyPaste(e.nativeEvent)||IS_WEBKIT)&&(e.preventDefault(),ReactEditor.insertData(h,e.clipboardData))}),[s,h,_.onPaste])}),React__default.default.createElement(Children,{decorations:k,node:h,renderElement:l,renderPlaceholder:u,renderLeaf:c,selection:h.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 o=n.startContainer.parentElement;o.getBoundingClientRect=n.getBoundingClientRect.bind(n),e(o,{scrollMode:"if-needed"}),delete o.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,o=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:o}}var _excluded=["editor","children","onChange","onSelectionChange","onValueChange","initialValue"],Slate=e=>{var{editor:t,children:n,onChange:o,onSelectionChange:r,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(o&&o(t.children),"set_selection"===(null==e||null===(n=e.operation)||void 0===n?void 0:n.type))null==r||r(t.selection);else null==a||a(t.children);c((e=>({v:e.v+1,editor:t}))),d(t)}),[t,d,o,r,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 o=ReactEditor.toDOMRange(e,t).getBoundingClientRect(),r=ReactEditor.toDOMRange(e,n).getBoundingClientRect();return doRectsIntersect(o,r)&&doRectsIntersect(r,o)},findCurrentLineRange=(e,t)=>{var n=Editor.range(e,Range.end(t)),o=Array.from(Editor.positions(e,{at:t})),r=0,a=o.length,i=Math.floor(a/2);if(areRangesSameLine(e,Editor.range(e,o[r]),n))return Editor.range(e,o[r],n);if(o.length<2)return Editor.range(e,o[o.length-1],n);for(;i!==o.length&&i!==r;)areRangesSameLine(e,Editor.range(e,o[i]),n)?a=i:r=i,i=Math.floor((r+a)/2);return Editor.range(e,o[a],n)};function ownKeys$9(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,onChange:r,deleteBackward:a,addMark:i,removeMark:s}=n;return EDITOR_TO_KEY_TO_ELEMENT.set(n,new WeakMap),n.addMark=(e,t)=>{var o,r;null===(o=EDITOR_TO_SCHEDULE_FLUSH.get(n))||void 0===o||o(),!EDITOR_TO_PENDING_INSERTION_MARKS.get(n)&&null!==(r=EDITOR_TO_PENDING_DIFFS.get(n))&&void 0!==r&&r.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[,o]=t,r=Editor.range(n,o,n.selection.anchor),i=findCurrentLineRange(n,r);Range.isCollapsed(i)||Transforms.delete(n,{at:i})}}},n.apply=t=>{var r=[],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":r.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":r.push(...getMatches(n,Path.parent(t.path)));break;case"merge_node":var f=Path.previous(t.path);r.push(...getMatches(n,f));break;case"move_node":var p,m=Path.common(Path.parent(t.path),Path.parent(t.newPath));r.push(...getMatches(n,m)),Path.isBefore(t.path,t.newPath)?(r.push(...getMatches(n,Path.parent(t.path))),p=t.newPath):(r.push(...getMatches(n,Path.parent(t.newPath))),p=t.path);var _=Node$1.get(e,Path.parent(p)),h=ReactEditor.findKey(n,_),g=Editor.pathRef(n,Path.parent(p));a.push([g,h])}switch(o(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,y]of r){var[E]=Editor.node(n,v);NODE_TO_KEY.set(E,y)}for(var[b,w]of a){if(b.current){var[C]=Editor.node(n,b.current);NODE_TO_KEY.set(C,w)}b.unref()}},n.setFragmentData=e=>{var{selection:o}=n;if(o){var[r,a]=Range.edges(o),i=Editor.void(n,{at:r.path}),s=Editor.void(n,{at:a.path});if(!Range.isCollapsed(o)||i){var l=ReactEditor.toDOMRange(n,o),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 _=n.getFragment(),h=JSON.stringify(_),g=window.btoa(encodeURIComponent(h));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 o=e.getData("application/".concat(t))||getSlateFragmentAttribute(e);if(o){var r=decodeURIComponent(window.atob(o)),a=JSON.parse(r);return n.insertFragment(a),!0}return!1},n.insertTextData=e=>{var t=e.getData("text/plain");if(t){var o=t.split(/\r\n|\r|\n/),r=!1;for(var a of o)r&&Transforms.splitNodes(n,{always:!0}),n.insertText(a),r=!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),r(e)}))},n},getMatches=(e,t)=>{var n=[];for(var[o,r]of Editor.levels(e,{at:t})){var a=ReactEditor.findKey(e,o);n.push([r,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),o=React.useMemo((()=>({...defaultComponents,...n,...t})),[n,t]);return React__namespace.createElement(ComponentsContext.Provider,{value:o},e)}const LiveblocksUIConfigContext=React.createContext({});function useLiveblocksUIConfig(){return React.useContext(LiveblocksUIConfigContext)}function LiveblocksUIConfig({overrides:e,components:t,portalContainer:n,preventUnsavedComposerChanges:o=!0,children:r}){const a=React.useMemo((()=>({portalContainer:n,preventUnsavedComposerChanges:o})),[n,o]);return React__default.default.createElement(LiveblocksUIConfigContext.Provider,{value:a},React__default.default.createElement(OverridesProvider,{overrides:e},React__default.default.createElement(ComponentsProvider,{components:t},r)))}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 o=getMatchRange(e,e.selection,[n.character]);if(!o||Range.isCollapsed(o))return!1;const r=getCharacterBefore(e,o);if(!r||r.text!==n.character)return!1;const a=getCharacterBefore(e,r.range);if(a&&!markFormattingCharacters.includes(a.text)&&!isEmptyString(a.text))return!1;const i=Editor.string(e,o);return i.trim()===i&&(Transforms.select(e,o),e.addMark(n.mark,!0),Transforms.collapse(e,{edge:"end"}),e.removeMark(n.mark),Transforms.delete(e,{at:r.range}),!0)}function withAutoFormatting(e){const{insertText:t}=e;return e.insertText=(n,o)=>{if(!isSelectionCollapsed(e.selection))return t(n,o);let r=!0;for(const t of formatters)"mark"===t.type&&formatMark(e,n,t)&&(r=!1);r&&t(n,o)},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 o=Array.from(Editor.nodes(e,{at:n,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),mode:"lowest"}));for(const[,r]of o){const o=Range.isRange(n)?Range.intersection(n,Editor.range(e,r)):n;if(!o)continue;const a=Array.from(Editor.nodes(e,{at:o,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:o}=e;return e.isInline=e=>"custom-link"===e.type||t(e),e.normalizeNode=t=>{const[o,r]=t;if(isText(o)){if(isComposerBodyCustomLink(Node$1.parent(e,r))&&!isPlainText(o)){const t=Object.keys(o).filter((e=>"text"!==e));Transforms.unsetNodes(e,t,{at:r})}}n(t)},e.insertData=t=>{const{selection:n}=e,r=t.getData("text/plain");let a=!0;n&&!Range.isCollapsed(n)&&n.anchor.path[0]===n.focus.path[0]&&isUrl(r)&&(selectionContainsInlines(e,(e=>!isText(e)))||(Transforms.wrapNodes(e,{type:"custom-link",url:r,children:[]},{at:n,split:!0,match:isPlainText}),a=!1)),a&&o(t)},e}function isComposerBodyCustomLink(e){return Element$2.isElement(e)&&"custom-link"===e.type}function withAutoLinks(e){const{isInline:t,normalizeNode:n,deleteBackward:o}=e;return e.isInline=e=>"auto-link"===e.type||t(e),e.normalizeNode=t=>{const[o,r]=t;if(!isComposerBodyCustomLink(o)){if(isText(o)){const t=Node$1.parent(e,r);if(isComposerBodyCustomLink(t))return;if(isComposerBodyAutoLink(t)){const n=Path.parent(r);if(handleLinkEdit(e,[t,n]),!isPlainText(o)){const t=Object.keys(o).filter((e=>"text"!==e));Transforms.unsetNodes(e,t,{at:r})}}else handleLinkCreate(e,[o,r]),handleNeighbours(e,[o,r])}n(t)}},e.deleteBackward=t=>{o(t);const{selection:n}=e;if(!n)return;if(!Range.isCollapsed(n))return;const[r]=Editor.nodes(e,{at:n,match:isComposerBodyAutoLink,mode:"lowest"});r&&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 o of e){if("("===o&&n++,")"===o&&(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,o){const[r,a]=t,i=r.text,s=i[n-1],l=n>0&&s?isSeparator(s):isPreviousNodeValid(e,a),c=i[o],u=o<i.length&&c?isSeparator(c):isNextNodeValid(e,a);return l&&u}const handleLinkEdit=(e,t)=>{const[n,o]=t,r=Node$1.children(e,o);for(const[t]of r)if(!isText(t))return void Transforms.unwrapNodes(e,{at:o});const a=Node$1.string(n),i=URL_REGEX.exec(a),s=i?.[0];if(!i||s!==a)return void Transforms.unwrapNodes(e,{at:o});if(endsWithPeriodOrQuestionMark(a)){Transforms.unwrapNodes(e,{at:o});const t=a.slice(0,a.length-1);return void Transforms.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:o,offset:0},focus:{path:o,offset:t.length}},split:!0})}const l=getUrlLogicalLength(a);if(l<a.length){Transforms.unwrapNodes(e,{at:o});const t=a.slice(0,l);Transforms.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:o,offset:0},focus:{path:o,offset:t.length}},split:!0})}else isPreviousNodeValid(e,o)&&isNextNodeValid(e,o)?n.url===a||Transforms.setNodes(e,{url:s},{at:o}):Transforms.unwrapNodes(e,{at:o})},handleLinkCreate=(e,t)=>{const[n,o]=t,r=URL_REGEX.exec(n.text),a=r?.[0];if(!r||void 0===a)return;const i=r.index,s=i+a.length;isContentAroundValid(e,t,i,s)&&Transforms.wrapNodes(e,{type:"auto-link",url:a,children:[]},{at:{anchor:{path:o,offset:i},focus:{path:o,offset:s}},split:!0})},handleNeighbours=(e,t)=>{const[n,o]=t,r=n.text,a=Editor.previous(e,{at:o});if(a&&isComposerBodyAutoLink(a[0])){if(PERIOD_OR_QUESTION_MARK_FOLLOWED_BY_ALPHANUMERIC.test(r))return Transforms.unwrapNodes(e,{at:a[1]}),void Transforms.mergeNodes(e,{at:o});if(!startsWithSeparator(r))return void Transforms.unwrapNodes(e,{at:a[1]})}const i=Editor.next(e,{at:o});i&&isComposerBodyAutoLink(i[0])&&!endsWithSeparator(r)&&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[o,r]=n;if(Element$2.isElement(o)&&"paragraph"===o.type)for(const[t,n]of Node$1.children(e,r))if(Element$2.isElement(t)&&!e.isInline(t))return void Transforms.unwrapNodes(e,{at:n});!Element$2.isElement(o)||"auto-link"!==o.type&&"custom-link"!==o.type||(0===o.children.length||1===o.children.length&&""===o.children[0]?.text)&&Transforms.removeNodes(e,{at:r}),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 o=n.call(e,t||"default");if("object"!==_typeof$2(o))return o;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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=t[t.length-1];if("string"==typeof e){var r={text:e};STRINGS.add(r),e=r}if(Text$1.isText(e)){var a=e;Text$1.isText(o)&&STRINGS.has(o)&&STRINGS.has(a)&&Text$1.equals(o,a,{loose:!0})?o.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 o of e.flat(1/0))n(o);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 o=n.find((e=>e instanceof AnchorToken)),r=n.find((e=>e instanceof FocusToken));if(!o||null==o.offset||null==o.path)throw new Error("The <selection> hyperscript tag must have an <anchor> tag as a child with `path` and `offset` attributes defined.");if(!r||null==r.offset||null==r.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:o.offset,path:o.path},focus:{offset:r.offset,path:r.path}},t)}function createText(e,t,n){var o=resolveDescendants(n);if(o.length>1)throw new Error("The <text> hyperscript tag must only contain a single node's worth of children.");var[r]=o;if(null==r&&(r={text:""}),!Text$1.isText(r))throw new Error("\n The <text> hyperscript tag can only contain text content as children.");return STRINGS.delete(r),Object.assign(r,t),r}var createEditor=e=>(t,n,o)=>{var r,a=[];for(var i of o)Range.isRange(i)?r=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[_]=p;l.focus={path:d,offset:_}}}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!=r?c.selection=r:Range.isRange(l)&&(c.selection=l),c};function ownKeys$8(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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),o=_objectSpread$8(_objectSpread$8(_objectSpread$8({},DEFAULT_CREATORS),n),e.creators);return createFactory(o)},createFactory=e=>function(t,n){for(var o=arguments.length,r=new Array(o>2?o-2:0),a=2;a<o;a++)r[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)||(r=[n].concat(r),n={}),i(t,n,r=r.filter((e=>Boolean(e))).flat())},normalizeElements=e=>{var t={},n=function(){var n=e[o];if("object"!=typeof n)throw new Error("Properties specified for a hyperscript shorthand should be an object, but for the custom element <".concat(o,"> tag you passed: ").concat(n));t[o]=(e,t,o)=>createElement("element",_objectSpread$8(_objectSpread$8({},n),t),o)};for(var o 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),o=new URL(t);return n.origin===o.origin&&n.pathname===o.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,o={};return"bold"!==n.fontWeight&&"700"!==n.fontWeight&&"800"!==n.fontWeight&&"900"!==n.fontWeight||(o.bold=!0),"italic"===n.fontStyle&&(o.italic=!0),"line-through"===n.textDecoration&&(o.strikethrough=!0),jsxTextChildren(t,o)}return t}function withPaste(e,{createAttachments:t,pasteFilesAsAttachments:n}){const{insertData:o}=e;return e.insertData=r=>{if(r.types.includes("Files")&&n){const e=getFiles(r);if(e.length>0)return void t(e)}if(r.types.includes("text/html")&&!r.types.includes("application/x-slate-fragment")){const t=r.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 o=deserialize(n);if(null!==o&&Array.isArray(o))return void Transforms.insertFragment(e,o)}catch{}}o(r)},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 o=MODIFIERS[t]();return e[o]===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(),o=React.useRef(null),r=React.useRef(null);useLayoutEffect((()=>{const t=e.current;if(!t)return;const a=e=>{e.animationName===r.current&&n(),o.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);r.current=e.animationName,"none"!==e.animationName&&e.animationName!==o.current&&"none"!==e.display||n()}))),()=>{cancelAnimationFrame(i)}}),[t,e,n])}function Persist({children:e}){const[t,n]=React.useState(!0),o=React.useRef(null),r=getChild(e),a=React.useCallback((()=>{flushSync((()=>n(!1)))}),[]);return useLayoutEffect((()=>{r&&(n(!0),o.current=r)}),[r]),React__default.default.createElement(PersistContext.Provider,{value:[Boolean(r),a]},r??(t?o.current:null))}const Portal$4=React.forwardRef((({container:e=document?.body,asChild:t,...n},o)=>{const r=t?Slot:"div";return e?ReactDOM.createPortal(React__default.default.createElement(r,{"data-liveblocks-portal":"",...n,ref:o}),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 o=n-t;return o>0?((e-t)%o+o)%o+t:0}const defaultOptions$1={wrap:!0};function useIndex(e,t,n){const{wrap:o}=React.useMemo((()=>({...defaultOptions$1,...n})),[n]),r=React.useMemo((()=>o?wrap:clamp),[o]),[a,i]=React.useState(e);React.useEffect((()=>{i((e=>clamp(e,0,Math.max(t-1,0))))}),[t]);return[a,React.useCallback((()=>{i((e=>r(e-1,0,Math.max(t,0))))}),[t,r]),React.useCallback((()=>{i((e=>r(e+1,0,Math.max(t,0))))}),[t,r]),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:o,disabled:r}){const{isDisabled:a}=useComposer(),i=a||r,{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(o?.(e),!u.current||i||e.isDefaultPrevented())return;e.preventDefault(),e.stopPropagation(),c(!1);const t=getFiles(e.dataTransfer);s(t)}),[o,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,o=new Map,r=makeEventSource();let a=null;function i(){a=null,r.notify()}function s(t){const r=new AbortController;o.set(t.id,r),e.uploadAttachment(t,{signal:r.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 o=e.filter((e=>!n.has(e.id))),r=[];for(const e of o)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"}),r.push(e)}else n.set(e.id,e);o.length>0&&i();for(const e of r)s(e)},removeAttachment:function(e){const t=o.get(e);t?.abort(),n.delete(e),o.delete(e),i()},getSnapshot:function(){return a||(a=Array.from(n.values())),a},subscribe:r.subscribe,clear:function(){o.forEach((e=>e.abort())),o.clear(),n.clear(),i()}}}function preventBeforeUnloadDefault(e){e.preventDefault()}function useComposerAttachmentsManager(e,t){const n=_useRoom(),o=useInitial(e),r=useInitial((()=>createComposerAttachmentsManager(n,t)));React.useEffect((()=>{r.addAttachments(o)}),[o,r]),React.useEffect((()=>()=>{r.clear()}),[r]);const a=shim.exports.useSyncExternalStore(r.subscribe,r.getSnapshot,r.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:r.addAttachments,removeAttachment:r.removeAttachment,clearAttachments:r.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:o}){const r=useSelected();return React__default.default.createElement("span",{...t},o.id?React__default.default.createElement(e,{userId:o.id,isSelected:r}):null,n)}function ComposerEditorLinkWrapper({Link:e,attributes:t,element:n,children:o}){const r=React.useMemo((()=>toAbsoluteUrl(n.url)??n.url),[n.url]);return React__default.default.createElement("span",{...t},React__default.default.createElement(e,{href:r},o))}function ComposerEditorMentionSuggestionsWrapper({id:e,itemId:t,userIds:n,selectedUserId:o,setSelectedUserId:r,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,_]=React.useState(),h=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:y,setFloating:E},strategy:b,isPositioned:w,placement:C,x:R,y:S}=useFloating(v);return useLayoutEffect((()=>{f&&_(window.getComputedStyle(f).zIndex)}),[f]),useLayoutEffect((()=>{if(!a)return;const e=getDOMRange(u,a.range);e&&y({getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects()})}),[y,u,a]),React__default.default.createElement(Persist,null,a?.range&&d&&n?React__default.default.createElement(ComposerSuggestionsContext.Provider,{value:{id:e,itemId:t,selectedValue:o,setSelectedValue:r,onItemSelect:i,placement:C,dir:l,ref:h}},React__default.default.createElement(Portal$4,{ref:E,container:g,style:{position:b,top:0,left:0,transform:w?`translate3d(${Math.round(R)}px, ${Math.round(S)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:m}},React__default.default.createElement(c,{userIds:n,selectedUserId:o}))):null)}function ComposerEditorElement({Mention:e,Link:t,...n}){const{attributes:o,children:r,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",{...o,style:{position:"relative"}},r);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,...o}=e.style;return React__default.default.createElement("span",{...e,style:o,"data-placeholder":""},t)}const ComposerMention$1=React.forwardRef((({children:e,asChild:t,...n},o)=>{const r=t?Slot:"span",a=useSelected();return React__default.default.createElement(r,{"data-selected":a||void 0,...n,ref:o},e)})),ComposerLink$1=React.forwardRef((({children:e,asChild:t,...n},o)=>{const r=t?Slot:"a";return React__default.default.createElement(r,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:o},e)})),ComposerSuggestions=React.forwardRef((({children:e,style:t,asChild:n,...o},r)=>{const[a]=usePersist(),i=React.useRef(null),{ref:s,placement:l,dir:c}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_NAME),u=useRefs(r,s,i),[d,f]=React.useMemo((()=>getSideAndAlignFromPlacement$1(l)),[l]),p=n?Slot:"div";return useAnimationPersist(i),React__default.default.createElement(p,{dir:c,...o,"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},o)=>{const{id:r}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_NAME),a=t?Slot:"ul";return React__default.default.createElement(a,{role:"listbox",id:r,"aria-label":"Suggestions list",...n,ref:o},e)})),ComposerSuggestionsListItem=React.forwardRef((({value:e,children:t,onPointerMove:n,onPointerDown:o,onClick:r,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",_=React.useMemo((()=>u===e),[u,e]),h=React.useMemo((()=>f(e)),[f,e]);React.useEffect((()=>{l?.current&&_&&l.current.scrollIntoView({block:"nearest"})}),[_]);const g=React.useCallback((t=>{n?.(t),t.isDefaultPrevented()||d(e)}),[n,d,e]),v=React.useCallback((e=>{o?.(e),e.preventDefault(),e.stopPropagation()}),[o]),y=React.useCallback((t=>{r?.(t);const n=t.isDefaultPrevented();t.preventDefault(),t.stopPropagation(),n||p(e)}),[r,p,e]);return React__default.default.createElement(m,{role:"option",id:h,"data-selected":_||void 0,"aria-selected":_||void 0,onPointerMove:g,onPointerDown:v,onClick:y,...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:o,disabled:r,autoFocus:a,components:i,dir:s,...l},c)=>{const{editor:u,validate:d,setFocused:f}=useComposerEditorContext(),{submit:p,focus:m,select:_,canSubmit:h,isDisabled:g,isFocused:v}=useComposer(),y=g||r,E=useInitial(e??emptyCommentBody),b=React.useMemo((()=>commentBodyToComposerBody(E)),[E]),{Link:w,Mention:C,MentionSuggestions:R}=React.useMemo((()=>({...defaultEditorComponents,...i})),[i]),[S,D]=React.useState(),T=useMentionSuggestions(S?.text),[O,A,x,I]=useIndex(0,T?.length??0),N=useId$1(),k=React.useMemo((()=>`liveblocks-suggestions-list-${N}`),[N]),$=React.useCallback((e=>e?`liveblocks-suggestions-list-item-${N}-${e}`:void 0),[N]),F=React.useCallback((e=>React__default.default.createElement(ComposerEditorElement,{Mention:C,Link:w,...e})),[w,C]),P=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),I(0))}),[u,S,I]),L=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(),x()),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),I(0))}else isKey(e,"Escape")&&(e.preventDefault(),ReactEditor.blur(u)),isKey(e,"Enter",{shift:!1})&&(e.preventDefault(),h&&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,h,S,T,O,t,x,A,I,p]),B=React.useCallback((e=>{n?.(e),e.isDefaultPrevented()||f(!0)}),[n,f]),j=React.useCallback((e=>{o?.(e),e.isDefaultPrevented()||f(!1)}),[o,f]),U=React.useMemo((()=>T?.[O]),[O,T]),V=React.useCallback((e=>{const t=T?.indexOf(e);void 0!==t&&t>=0&&I(t)}),[I,T]),H=React.useMemo((()=>S?{role:"combobox","aria-autocomplete":"list","aria-expanded":!0,"aria-controls":k,"aria-activedescendant":$(U)}:{}),[S,k,$,U]);return React.useImperativeHandle(c,(()=>ReactEditor.toDOMNode(u,u)),[u]),React.useEffect((()=>{a&&m()}),[a,u,m]),React.useEffect((()=>{v&&null===u.selection&&_()}),[u,_,v]),React__default.default.createElement(Slate,{editor:u,initialValue:b,onChange:P},React__default.default.createElement(Editable,{dir:s,enterKeyHint:S?"enter":"send",autoCapitalize:"sentences","aria-label":"Composer editor","data-focused":v||void 0,"data-disabled":y||void 0,...H,...l,readOnly:y,disabled:y,onKeyDown:L,onFocus:B,onBlur:j,renderElement:F,renderLeaf:ComposerEditorLeaf,renderPlaceholder:ComposerEditorPlaceholder}),React__default.default.createElement(ComposerEditorMentionSuggestionsWrapper,{dir:s,mentionDraft:S,selectedUserId:U,setSelectedUserId:V,userIds:T,id:k,itemId:$,onItemSelect:M,MentionSuggestions:R}))})),MAX_ATTACHMENTS=10,MAX_ATTACHMENT_SIZE=1073741824,ComposerForm=React.forwardRef((({children:e,onSubmit:t,onComposerSubmit:n,defaultAttachments:o=[],pasteFilesAsAttachments:r,preventUnsavedChanges:a=!0,disabled:i,asChild:s,...l},c)=>{const u=s?Slot:"form",d=_useRoom(),[f,p]=React.useState(!0),[m,_]=React.useState(!1),[h,g]=React.useState(!1),v=MAX_ATTACHMENTS,y=MAX_ATTACHMENT_SIZE,{attachments:E,isUploadingAttachments:b,addAttachments:w,removeAttachment:C,clearAttachments:R}=useComposerAttachmentsManager(o,{maxFileSize:y}),S=E.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),x=useRefs(c,A),I=React.useRef(null),N=useSyncSource(),k=!!a&&(!f||b||E.length>0);React.useEffect((()=>{N?.setSyncStatus(k?"has-local-changes":"synchronized")}),[N,k]);const $=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)));w(n)}),[w,v,S,d]),F=React.useRef($);React.useEffect((()=>{F.current=$}),[$]);const P=React.useCallback((e=>{F.current(e)}),[]),M=useInitial((()=>createComposerEditor({createAttachments:P,pasteFilesAsAttachments:r}))),L=React.useCallback((e=>{p(isEmpty(M,e))}),[M]),B=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||I.current&&I.current.click()}),[i]),q=React.useCallback((e=>{i||e.target.files&&($(Array.from(e.target.files)),e.target.value="")}),[$,i]),G=React.useCallback((()=>{j(),H(),R(),_(!1)}),[H,j,R]),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 o=composerBodyToCommentBody(M.children),r=E.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:o,attachments:r},e);e.preventDefault(),a?(_(!0),a.then(G)):G()}),[i,M,E,n,t,G]),J=React.useCallback((e=>{e.stopPropagation()}),[]);return React__default.default.createElement(ComposerEditorContext.Provider,{value:{editor:M,validate:L,setFocused:g}},React__default.default.createElement(ComposerAttachmentsContext.Provider,{value:{createAttachments:$,isUploadingAttachments:b,hasMaxAttachments:D,maxAttachments:v,maxAttachmentSize:y}},React__default.default.createElement(ComposerContext.Provider,{value:{isDisabled:T,isFocused:h,isEmpty:f,canSubmit:O,submit:B,clear:j,select:U,focus:V,blur:H,createMention:z,insertText:K,attachments:E,attachFiles:W,removeAttachment:C}},React__default.default.createElement(u,{...l,onSubmit:Y,ref:x},React__default.default.createElement("input",{type:"file",multiple:!0,ref:I,onChange:q,onClick:J,tabIndex:-1,style:{display:"none"}}),React__default.default.createElement(Slottable,null,e)))))})),ComposerSubmit=React.forwardRef((({children:e,disabled:t,asChild:n,...o},r)=>{const a=n?Slot:"button",{canSubmit:i,isDisabled:s}=useComposer(),l=s||t||!i;return React__default.default.createElement(a,{type:"submit",...o,ref:r,disabled:l},e)})),ComposerAttachFiles=React.forwardRef((({children:e,onClick:t,disabled:n,asChild:o,...r},a)=>{const i=o?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",...r,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 o=JSON.stringify(n.map((e=>stringify(e))));if(t.has(o))return t.get(o);const r=e(...n);return t.set(o,r),r}}React.forwardRef((({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:o,disabled:r,asChild:a,...i},s)=>{const l=a?Slot:"div",{isDisabled:c}=useComposer(),u=c||r,[,d]=useComposerAttachmentsDropArea({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:o,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 o=localesWithBrokenNarrowRelativeFormatting.some((e=>n===e||n.startsWith(`${e}-`))),r=relativeTimeFormat(n,{style:o?"short":"narrow",numeric:"auto"});let a=(e.getTime()-Date.now())/1e3;if(a>-relativeUnits.seconds&&a<relativeUnits.seconds)return r.format(0,"seconds");for(const[e,t]of Object.entries(relativeUnits)){if(Math.abs(a)<t)return r.format(Math.round(a),e);a/=t}return capitalize$1(r.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:o=formatVerboseDate,dateTime:r,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 o?o(f,t):o),[o,f,d]),_=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:r??p,title:m},_)}));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 o=n?.enabled??!0,r=useLatest(t);React.useEffect((()=>{const t=e.current;if(t)return o?observe(t,(e=>{e.isIntersecting&&r.current()})):unobserve(t),()=>{unobserve(t)}}),[o])}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[o,r]=React.useState(n),a=void 0!==e,i=React.useRef(a);React.useEffect((()=>{i.current=a}),[a]);return[a?e:o,React.useCallback((e=>(a||r(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$2(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,o)=>{switch(e){case SUBSCRIBE:o(t);break;case PUBLISH:t=o;break;case VALUE:return t}return n(e,o)}}function eventHandler(e){let t,n;const o=()=>t&&t();return function(r,a){switch(r){case SUBSCRIBE:if(a){if(n===a)return;return o(),n=a,t=subscribe(e,a),t}return o(),noop$1;case RESET:return o(),void(n=null);default:throw new Error(`unrecognized action ${r}`)}}}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,o)=>{switch(t){case SUBSCRIBE:return subscribe(e,n(o));case RESET:return void reset$2(e)}}}function defaultComparator(e,t){return e===t}function distinctUntilChanged(e=defaultComparator){let t;return n=>o=>{e(t,o)||(t=o,n(o))}}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=>o=>n(t=e(t,o))}function skip(e){return t=>n=>{e>0?e--:t(n)}}function throttleTime(e){let t,n=null;return o=>r=>{n=r,t||(t=setTimeout((()=>{t=void 0,o(n)}),e))}}function debounceTime(e){let t,n;return o=>r=>{t=r,n&&clearTimeout(n),n=setTimeout((()=>{o(t)}),e)}}function withLatestFrom(...e){const t=new Array(e.length);let n=0,o=null;const r=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!==r&&n===r&&o&&(o(),o=null)}))})),e=>a=>{const i=()=>e([a].concat(t));n===r?i():o=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 o=0;const r=Math.pow(2,e.length)-1;return e.forEach(((e,a)=>{const i=Math.pow(2,a);subscribe(e,(e=>{n[a]=e,o|=i,o===r&&publish(t,n)}))})),function(e,a){switch(e){case SUBSCRIBE:return o===r&&a(n),subscribe(t,a);case RESET:return reset$2(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:o,dependencies:r,singleton:a})=>{if(a&&t.has(e))return t.get(e);const i=o(r.map((e=>n(e))));return a&&t.set(e,i),i};return n(e)}function omit(e,t){const n={},o={};let r=0;const a=e.length;for(;r<a;)o[e[r]]=1,r+=1;for(const e in t)o.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 o=Object.keys(t.required||{}),r=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 r of o){publish(e[t.required[r]],n[r])}for(const o of r)if(o in n){publish(e[t.optional[o]],n[o])}e.propsReady&&publish(e.propsReady,!0)}function c(e){return i.reduce(((n,o)=>(n[o]=eventHandler(e[t.events[o]]),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))))),[_]=React__default.default.useState(curry1to0(c,m));useIsomorphicLayoutEffect$1((()=>{for(const e of i)e in p&&subscribe(_[e],p[e]);return()=>{Object.values(_).map(reset$2)}}),[p,_,m]),useIsomorphicLayoutEffect$1((()=>{l(m,p)})),React__default.default.useImperativeHandle(d,always(function(e){return a.reduce(((n,o)=>(n[o]=n=>{publish(e[t.methods[o]],n)},n)),{})}(m)));const h=n;return jsxRuntime.exports.jsx(s.Provider,{value:m,children:n?jsxRuntime.exports.jsx(h,{...omit([...o,...r,...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,o]=React__default.default.useState(curry1to0(getValue,t));return useIsomorphicLayoutEffect$1((()=>subscribe(t,(e=>{e!==n&&o(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,o=1)=>{var r;o>=(null!=(r=getGlobalThis().VIRTUOSO_LOG_LEVEL)?r:getValue(e))&&console[CONSOLE_METHOD_MAP[o]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)})),logLevel:e}}),[],{singleton:!0});function useSizeWithElRef(e,t,n){const o=React__default.default.useRef(null);let r=e=>{};if("undefined"!=typeof ResizeObserver){const a=React__default.default.useMemo((()=>new ResizeObserver((t=>{const o=()=>{const n=t[0].target;null!==n.offsetParent&&e(n)};n?o():requestAnimationFrame(o)}))),[e]);r=e=>{e&&t?(a.observe(e),o.current=e):(o.current&&a.unobserve(o.current),o.current=null)}}return{ref:o,callbackRef:r}}function useSize$1(e,t,n){return useSizeWithElRef(e,t,n).callbackRef}function useChangedListContentsSizes(e,t,n,o,r,a,i,s,l){return useSizeWithElRef(React__default.default.useCallback((n=>{const l=getChangedChildSizes(n.children,t,s?"offsetWidth":"offsetHeight",r);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;o({scrollTop:Math.max(d,0),scrollHeight:f,viewportHeight:p}),null==a||a(s?resolveGapValue$1("column-gap",getComputedStyle(n).columnGap,r):resolveGapValue$1("row-gap",getComputedStyle(n).rowGap,r)),null!==l&&e(l)}),[e,t,r,a,i,o]),n,l)}function getChangedChildSizes(e,t,n,o){const r=e.length;if(0===r)return null;const a=[];for(let i=0;i<r;i++){const r=e.item(i);if(!r||void 0===r.dataset.index)continue;const s=parseInt(r.dataset.index),l=parseFloat(r.dataset.knownSize),c=t(r,n);if(0===c&&o("Zero-sized element, this should not happen",{child:r},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,o=noop$1,r,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 o=n.target,r=o===window||o===document,i=a?r?window.pageXOffset||document.documentElement.scrollLeft:o.scrollLeft:r?window.pageYOffset||document.documentElement.scrollTop:o.scrollTop,c=a?r?document.documentElement.scrollWidth:o.scrollWidth:r?document.documentElement.scrollHeight:o.scrollHeight,u=a?r?window.innerWidth:o.offsetWidth:r?window.innerHeight:o.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=r||i.current;return o(r||i.current),c({target:e,suppressFlushSync:!0}),e.addEventListener("scroll",c,{passive:!0}),()=>{o(null),e.removeEventListener("scroll",c)}}),[i,c,n,o,r]),{scrollerRef:i,scrollByCallback:function(e){a&&(e={left:e.top,behavior:e.behavior}),i.current.scrollBy(e)},scrollToCallback:function(n){const o=i.current;if(!o||(a?"offsetWidth"in o&&0===o.offsetWidth:"offsetHeight"in o&&0===o.offsetHeight))return;const r="smooth"===n.behavior;let c,u,d;o===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=o[a?"scrollWidth":"scrollHeight"],c=correctItemSize(o,a?"width":"height"),d=o[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(r&&t(!0));r?(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}),o.scrollTo(n)}}}const domIOSystem=system((()=>{const e=stream(),t=stream(),n=statefulStream(0),o=stream(),r=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),_=statefulStream(!1);return connect(pipe(e,map((({scrollTop:e})=>e))),t),connect(pipe(e,map((({scrollHeight:e})=>e))),i),connect(t,r),{scrollContainerState:e,scrollTop:t,viewportHeight:a,headerHeight:s,fixedHeaderHeight:l,fixedFooterHeight:c,footerHeight:u,scrollHeight:i,smoothScrollTargetReached:o,horizontalDirection:m,skipAnimationFrameInResizeObserver:_,scrollTo:d,scrollBy:f,statefulScrollTop:r,deviation:n,scrollingInProgress:p}}),[],{singleton:!0}),NIL_NODE={lvl:0};function newAANode(e,t,n,o=NIL_NODE,r=NIL_NODE){return{k:e,v:t,lvl:n,l:o,r:r}}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:o,r:r}=e;if(t===n){if(empty(o))return r;if(empty(r))return o;{const[t,n]=last(o);return adjust(clone(e,{k:t,v:n,l:deleteLast(o)}))}}return adjust(clone(e,t<n?{l:remove(o,t)}:{r:remove(r,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 o=findMaxKeyValue(e.r,t,n);return o[0]===-1/0?[e.k,e.v]:o}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:o,v:r,l:a,r:i}=e;let s=[];return o>t&&(s=s.concat(walkWithin(a,t,n))),o>=t&&o<=n&&s.push({k:o,v:r}),o<=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:o}=e;if(n.lvl>=o-1&&t.lvl>=o-1)return e;if(o>n.lvl+1){if(isSingle(t))return skew(clone(e,{lvl:o-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:o-1}),lvl:o})}if(isSingle(e))return split(clone(e,{lvl:o-1}));if(empty(n)||empty(n.l))throw new Error("Unexpected empty nodes");{const t=n.l,r=isSingle(t)?n.lvl-1:n.lvl;return clone(t,{l:clone(e,{r:t.l,lvl:o-1}),r:split(clone(n,{l:t.r,lvl:r})),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:o,value:r}=t(e[0]);const a=[];for(let i=1;i<n;i++){const{index:n,value:s}=t(e[i]);a.push({start:o,end:n-1,value:r}),o=n,r=s}return a.push({start:o,end:1/0,value:r}),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,o=0){let r=e.length-1;for(;o<=r;){const a=Math.floor((o+r)/2),i=n(e[a],t);if(0===i)return a;if(-1===i){if(r-o<2)return a-1;r=a-1}else{if(r===o)return a;o=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,o){const r=findIndexOfClosestSmallerOrEqual(e,t,o),a=findIndexOfClosestSmallerOrEqual(e,n,o,r);return e.slice(r,a+1)}const recalcSystem=system((()=>({recalcInProgress:statefulStream(!1)})),[],{singleton:!0});function rangeIncludes(e){const{size:t,startIndex:n,endIndex:o}=e;return e=>e.start===n&&(e.end===o||e.end===1/0)&&e.value===t}function affectedGroupCount(e,t){let n=0,o=0;for(;n<e;)n+=t[o+1]-t[o]-1,o++;return o-(n===e?0:1)}function insertRanges(e,t){let n=empty(e)?0:1/0;for(const o of t){const{size:t,startIndex:r,endIndex:a}=o;if(n=Math.min(n,r),empty(e)){e=insert(e,0,t);continue}const i=rangesWithin(e,r-1,a+1);if(i.some(rangeIncludes(o)))continue;let s=!1,l=!1;for(const{start:n,end:o,value:r}of i)s?(a>=n||t===r)&&(e=remove(e,n)):(l=r!==t,s=!0),o>a&&a>=n&&r!==t&&(e=insert(e,a+1,r));l&&(e=insert(e,r,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,o=0){return o>0&&(t=Math.max(t,findClosestSmallerOrEqual(e,o,indexComparator).offset)),arrayToRanges(findRange(e,t,n,offsetComparator),offsetPointParser)}function createOffsetTree(e,t,n,o){let r=e,a=0,i=0,s=0,l=0;if(0!==t){l=findIndexOfClosestSmallerOrEqual(r,t-1,indexComparator);s=r[l].offset;const e=findMaxKeyValue(n,t-1);a=e[0],i=e[1],r.length&&r[l].size===findMaxKeyValue(n,t)[1]&&(l-=1),r=r.slice(0,l+1)}else r=[];for(const{start:e,value:l}of rangesWithin(n,t,1/0)){const t=e-a,n=t*i+s+t*o;r.push({offset:n,size:l,index:e}),a=e,s=n,i=l}return{offsetTree:r,lastIndex:a,lastOffset:s,lastSize:i}}function sizeStateReducer(e,[t,n,o,r]){t.length>0&&o("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,o=t[1].size;i=n.reduce(((t,n)=>insert(insert(t,n,e),n+1,o)),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,r);return{sizeTree:i,offsetTree:l,lastIndex:c,lastOffset:d,lastSize:u,groupOffsetTree:n.reduce(((e,t)=>insert(e,t,offsetOf(t,l,r))),newTree()),groupIndices:n}}function offsetOf(e,t,n){if(0===t.length)return 0;const{offset:o,index:r,size:a}=findClosestSmallerOrEqual(t,e,indexComparator),i=e-r,s=a*i+(i-1)*n+o;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 o=originalIndexFromItemIndex("LAST"===e.index?n:e.index,t);return o=Math.max(0,o,Math.min(n,o)),o}}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,o)=>{const r=o[n+1];return{startIndex:e,endIndex:r?r.k-1:1/0,size:t}}))}const SIZE_MAP={offsetHeight:"height",offsetWidth:"width"},sizeSystem=system((([{log:e},{recalcInProgress:t}])=>{const n=stream(),o=stream(),r=statefulStreamFromEmitter(o,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(),_=statefulStreamFromEmitter(pipe(n,withLatestFrom(l,e,p),scan(sizeStateReducer,m),distinctUntilChanged()),m),h=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(_,p),map((([e,t,n])=>{const o=e.reduce(((e,o,r)=>insert(e,o,offsetOf(o,t.offsetTree,n)||r)),newTree());return{...t,groupIndices:e,groupOffsetTree:o}}))),_),connect(pipe(o,withLatestFrom(_),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(_).sizeTree))),map((e=>[{startIndex:0,endIndex:0,size:e}]))),n);const v=streamFromEmitter(pipe(n,withLatestFrom(_),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(_);if(e>0)publish(t,!0),publish(a,e+affectedGroupCount(e,n));else if(e<0){const t=getValue(h);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 y=streamFromEmitter(a);connect(pipe(a,withLatestFrom(_),map((([e,t])=>{const n=t.groupIndices.length>0,o=[],r=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;o.push({startIndex:e,endIndex:e,size:n}),o.push({startIndex:e+1,endIndex:e+1+s-1,size:r}),i++,a+=s+1}const s=walk(t.sizeTree);return a!==e&&s.shift(),s.reduce(((t,{k:n,v:o})=>{let r=t.ranges;return 0!==t.prevSize&&(r=[...t.ranges,{startIndex:t.prevIndex,endIndex:n+e-1,size:t.prevSize}]),{ranges:r,prevIndex:n+e,prevSize:o}}),{ranges:o,prevIndex:e,prevSize:0}).ranges}return walk(t.sizeTree).reduce(((t,{k:n,v:o})=>({ranges:[...t.ranges,{startIndex:t.prevIndex,endIndex:n+e-1,size:t.prevSize}],prevIndex:n+e,prevSize:o})),{ranges:[],prevIndex:0,prevSize:r}).ranges}))),n);const E=streamFromEmitter(pipe(i,withLatestFrom(_,p),map((([e,{offsetTree:t},n])=>offsetOf(-e,t,n)))));return connect(pipe(i,withLatestFrom(_,p),map((([e,t,n])=>{if(t.groupIndices.length>0){if(empty(t.sizeTree))return t;let o=newTree();const r=getValue(h);let a=0,i=0,s=0;for(;a<-e;){s=r[i];const e=r[i+1]-s-1;i++,a+=e+1}o=walk(t.sizeTree).reduce(((t,{k:n,v:o})=>insert(t,Math.max(0,n+e),o)),o);if(a!==-e){o=insert(o,0,find(t.sizeTree,s));o=insert(o,1,findMaxKeyValue(t.sizeTree,1-e)[1])}return{...t,sizeTree:o,...createOffsetTree(t.offsetTree,0,o,n)}}{const o=walk(t.sizeTree).reduce(((t,{k:n,v:o})=>insert(t,Math.max(0,n+e),o)),newTree());return{...t,sizeTree:o,...createOffsetTree(t.offsetTree,0,o,n)}}}))),_),{data:f,totalCount:o,sizeRanges:n,groupIndices:l,defaultItemSize:u,fixedItemSize:c,unshiftWith:a,shiftWith:i,shiftWithOffset:E,beforeUnshiftWith:y,firstItemIndex:s,gap:p,sizes:_,listRefresh:v,statefulTotalCount:r,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:o},{scrollingInProgress:r,viewportHeight:a,scrollTo:i,smoothScrollTargetReached:s,headerHeight:l,footerHeight:c,fixedHeaderHeight:u,fixedFooterHeight:d},{log:f}])=>{const p=stream(),m=stream(),_=statefulStream(0);let h=null,g=null,v=null;function y(){h&&(h(),h=null),v&&(v(),v=null),g&&(clearTimeout(g),g=null),publish(r,!1)}return connect(pipe(p,withLatestFrom(e,a,t,_,l,c,f),withLatestFrom(o,u,d),map((([[e,t,o,a,i,l,c,u],d,f,_])=>{const E=normalizeIndexLocation(e),{align:b,behavior:w,offset:C}=E,R=a-1,S=originalIndexFromLocation(E,t,R);let D=offsetOf(S,t.offsetTree,d)+l;"end"===b?(D+=f+findMaxKeyValue(t.sizeTree,S)[1]-o+_,S===R&&(D+=c)):"center"===b?D+=(f+findMaxKeyValue(t.sizeTree,S)[1]-o+_)/2:D-=i,C&&(D+=C);const T=t=>{y(),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(y(),"smooth"===w){let e=!1;v=subscribe(n,(t=>{e=e||t})),h=handleNext(s,(()=>{T(e)}))}else h=handleNext(pipe(n,watchChangesFor(150)),T);return g=setTimeout((()=>{y()}),1200),publish(r,!0),u("scrolling from index to",{index:S,top:D,behavior:w},LogLevel.DEBUG),{top:D,behavior:w}}))),i),{scrollToIndex:p,scrollTargetReached:m,topListHeight:_}}),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:o,footerHeight:r,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(o),duc(r),duc(u)),scan(((e,[{scrollTop:t,scrollHeight:n},o,r,a,i])=>{const s={viewportHeight:o,scrollTop:t,scrollHeight:n};if(t+o-n>-i){let n,o;return t>e.state.scrollTop?(n="SCROLLED_DOWN",o=e.state.scrollTop-t):(n="SIZE_DECREASED",o=e.state.scrollTop-t||e.scrollTopDelta),{atBottom:!0,state:s,atBottomBecause:n,scrollTopDelta:o}}let l;return l=s.scrollHeight>e.state.scrollHeight?"SIZE_INCREASED":o<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)))),_=statefulStreamFromEmitter(pipe(e,scan(((e,{scrollTop:t,scrollHeight:n,viewportHeight:o})=>{if(approximatelyEqual(e.scrollHeight,n))return{scrollTop:t,scrollHeight:n,jump:0,changed:!1};{const r=n-(t+o)<1;return e.scrollTop!==t&&r?{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 h=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))),h),connect(pipe(e,throttleTime(50),mapTo(NONE$1)),h);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:h,atBottomThreshold:u,atTopThreshold:d,scrollVelocity:g,lastJumpDueToItemResize:_}}),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:o},{scrollToIndex:r,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},o,r])=>e&&(!empty(n)||isDefined(o))&&!t&&!r)),withLatestFrom(l)),(([,e])=>{handleNext(a,(()=>{publish(c,!0)})),skipFrames(4,(()=>{handleNext(o,(()=>{publish(s,!0)})),publish(r,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:o},{scrollToIndex:r},{scrolledToInitialItem:a},{propsReady:i,didMount:s},{log:l},{scrollingInProgress:c}])=>{const u=statefulStream(!1),d=stream();let f=null;function p(e){publish(r,{index:"LAST",align:"end",behavior:e})}function m(e){const t=handleNext(o,(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,o,r,a])=>{let i=t&&r,s="auto";return i&&(s=behaviorFromFollowOutput(n,o||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),o),(([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:o,headerHeight:r}])=>{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(o,n,r),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:o,fixedHeaderHeight:r}])=>{const a=stream(),i=statefulStream(0),s=statefulStream(0),l=statefulStream(0),c=statefulStreamFromEmitter(pipe(combineLatest(duc(e),duc(t),duc(o),duc(a,tupleComparator),duc(l),duc(i),duc(r),duc(n),duc(s)),map((([e,t,n,[o,r],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),_=getViewportIncrease(c,BOTTOM);return o-=l,r+=n+s,(o+=n+s)>e+d-m&&(p=UP),(r-=l)<e-f+t+_&&(p=DOWN),p!==NONE?[Math.max(u-n-getOverscan(a,TOP,p)-m,0),u-f-s+t+getOverscan(a,BOTTOM,p)+_]: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 o=originalIndexFromItemIndex(e,t);return[{index:findMaxKeyValue(t.groupOffsetTree,o)[0],size:0,offset:0},{index:o,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 o=e[0].index,r=e[e.length-1].index,a=[],i=rangesWithin(t.groupOffsetTree,o,r);let s,l=0;for(const o of e){let e;(!s||s.end<o.index)&&(s=i.shift(),l=t.groupIndices.indexOf(s.start)),e=o.index===s.start?{type:"group",index:l}:{index:o.index-(l+1)+n,groupIndex:l},a.push({...e,size:o.size,offset:o.offset,originalIndex:o.index,data:o.data})}return a}function buildListState(e,t,n,o,r,a){const{lastSize:i,lastOffset:s,lastIndex:l}=r;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)*o-u;return{items:transposeItems(e,r,a),topItems:transposeItems(t,r,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,o,r,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,r,n,o)}const listStateSystem=system((([{sizes:e,totalCount:t,data:n,firstItemIndex:o,gap:r},a,{visibleRange:i,listBoundary:s,topListHeight:l},{scrolledToInitialItem:c,initialTopMostItemIndex:u},{topListHeight:d},f,{didMount:p},{recalcInProgress:m}])=>{const _=statefulStream([]),h=statefulStream(0),g=stream();connect(a.topItemsIndexes,_);const v=statefulStreamFromEmitter(pipe(combineLatest(p,m,duc(i,tupleComparator),duc(t),duc(e),duc(u),c,duc(_),duc(o),duc(r),n),filter((([e,t,,n,,,,,,,o])=>{const r=o&&o.length!==n;return e&&!t&&!r})),map((([,,[e,t],n,o,r,a,i,s,l,c])=>{const u=o,{sizeTree:d,offsetTree:f}=u,p=getValue(h);if(0===n)return{...EMPTY_LIST_STATE,totalCount:n};if(0===e&&0===t)return 0===p?{...EMPTY_LIST_STATE,totalCount:n}:buildListStateFromItemCount(p,r,o,s,l,c||[]);if(empty(d)){if(p>0)return null;return buildListState(probeItemSet(getInitialTopMostItemIndexNumber(r,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 o of rangesWithin(d,e,t)){const r=o.value,a=Math.max(o.start,e),i=Math.min(o.end,t);for(let e=a;e<=i;e++)m.push({index:e,size:r,offset:n,data:c&&c[e]}),n+=r}}if(!a)return buildListState([],m,n,l,u,s);const _=i.length>0?i[i.length-1]+1:0,g=rangesWithinOffsets(f,e,t,_);if(0===g.length)return null;const v=n-1,y=tap([],(n=>{for(const o of g){const r=o.value;let a=r.offset,i=o.start;const s=r.size;if(r.offset<e){i+=Math.floor((e-r.offset+l)/(s+l));const t=i-o.start;a+=t*s+t*l}i<_&&(a+=(_-i)*s,i=_);const u=Math.min(o.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(y,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 y=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:_,endReached:y,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:h,...f}}),tup(sizeSystem,groupedListSystem,sizeRangeSystem,initialTopMostItemIndexSystem,scrollToIndexSystem,stateFlagsSystem,propsReadySystem,recalcSystem),{singleton:!0}),initialItemCountSystem=system((([{sizes:e,firstItemIndex:t,data:n,gap:o},{initialTopMostItemIndex:r},{initialItemCount:a,listState:i},{didMount:s}])=>(connect(pipe(s,withLatestFrom(a),filter((([,e])=>0!==e)),withLatestFrom(r,e,t,o,n),map((([[,e],t,n,o,r,a=[]])=>buildListStateFromItemCount(e,t,n,o,r,a)))),i),{})),tup(sizeSystem,initialTopMostItemIndexSystem,listStateSystem,propsReadySystem),{singleton:!0}),scrollSeekSystem=system((([{scrollVelocity:e}])=>{const t=statefulStream(!1),n=stream(),o=statefulStream(!1);return connect(pipe(e,withLatestFrom(o,t,n),filter((([e,t])=>!!t)),map((([e,t,n,o])=>{const{exit:r,enter:a}=t;if(n){if(r(e,o))return!1}else if(a(e,o))return!0;return n})),distinctUntilChanged()),t),subscribe(pipe(combineLatest(t,e,n),withLatestFrom(o)),(([[e,t,n],o])=>e&&o&&o.change&&o.change(t,n))),{isSeeking:t,scrollSeekConfiguration:o,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:o},{listState:r}])=>{const a=stream(),i=statefulStreamFromEmitter(pipe(combineLatest(e,o,t,n,r),map((([e,t,n,o,r])=>e+t+n+o+r.offsetBottom+r.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:o},{isScrolling:r,isAtBottom:a,scrollDirection:i,lastJumpDueToItemResize:s},{listState:l},{beforeUnshiftWith:c,shiftWithOffset:u,sizes:d,gap:f},{log:p},{recalcInProgress:m}])=>{const _=streamFromEmitter(pipe(l,withLatestFrom(s),scan((([,e,t,n],[{items:o,totalCount:r,bottom:a,offsetBottom:i},s])=>{const l=a+i;let c=0;if(t===r&&e.length>0&&o.length>0){0===o[0].originalIndex&&0===e[0].originalIndex||(c=l-n,0!==c&&(c+=s))}return[c,o,r,l]}),[0,[],0,0]),filter((([e])=>0!==e)),withLatestFrom(t,i,o,a,p,m),filter((([,e,t,n,,,o])=>!o&&!n&&0!==e&&t===UP)),map((([[e],,,,,t])=>(t("Upward scrolling compensation",{amount:e},LogLevel.DEBUG),e)))));function h(t){t>0?(publish(e,{top:-t,behavior:"auto"}),publish(n,0)):(publish(n,0),publish(e,{top:-t,behavior:"auto"}))}return subscribe(pipe(_,withLatestFrom(n,r)),(([e,t,o])=>{o&&isMobileSafari()?publish(n,t-e):h(-e)})),subscribe(pipe(combineLatest(statefulStreamFromEmitter(r,!1),n,m),filter((([e,t,n])=>!e&&!n&&0!==t)),map((([e,t])=>t)),throttleTime(1)),h),connect(pipe(u,map((e=>({top:-e})))),e),subscribe(pipe(c,withLatestFrom(d,f),map((([e,{lastSize:t,groupIndices:n,sizeTree:o},r])=>{function a(e){return e*(t+r)}if(0===n.length)return a(e);{let t=0;const r=find(o,0);let i=0,s=0;for(;i<e;){i++,t+=r;let o=n.length===s+1?1/0:n[s+1]-n[s]-1;i+o>e&&(t-=r,o=e-i+1),i+=o,t+=a(o),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 o=statefulStream(0);return subscribe(pipe(e,withLatestFrom(o),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:o}}),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(),o=stream(),r=stream(),a=statefulStream(!1),i=statefulStream(void 0);return connect(pipe(combineLatest(n,o),map((([{viewportHeight:e,scrollTop:t,scrollHeight:n},{offsetTop:o}])=>({scrollTop:Math.max(0,t-o),scrollHeight:n,viewportHeight:e})))),t),connect(pipe(e,withLatestFrom(o),map((([e,{offsetTop:t}])=>({...e,top:e.top+t})))),r),{useWindowScroll:a,customScrollParent:i,windowScrollContainerState:n,windowViewportRect:o,windowScrollTo:r}}),tup(domIOSystem)),defaultCalculateViewLocation=({itemTop:e,itemBottom:t,viewportTop:n,viewportBottom:o,locationParams:{behavior:r,align:a,...i}})=>e<n?{...i,behavior:r,align:null!=a?a:"start"}:t>o?{...i,behavior:r,align:null!=a?a:"end"}:null,scrollIntoViewSystem=system((([{sizes:e,totalCount:t,gap:n},{scrollTop:o,viewportHeight:r,headerHeight:a,fixedHeaderHeight:i,fixedFooterHeight:s,scrollingInProgress:l},{scrollToIndex:c}])=>{const u=stream();return connect(pipe(u,withLatestFrom(e,r,t,a,i,s,o),withLatestFrom(n),map((([[e,t,n,o,r,a,i,s],c])=>{const{done:u,behavior:d,align:f,calculateViewLocation:p=defaultCalculateViewLocation,...m}=e,_=originalIndexFromLocation(e,t,o-1),h=offsetOf(_,t.offsetTree,c)+r+a,g=p({itemTop:h,itemBottom:h+findMaxKeyValue(t.sizeTree,_)[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:o},{initialTopMostItemIndex:r},{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,o)),(([e,t,n,o,r,a,i])=>{const s=sizeTreeToRanges(t.sizeTree);o&&null!==r&&null!==a&&(n=r.scrollTop-a.offsetTop),e({ranges:s,scrollTop:n-=i})})),connect(pipe(u,filter(isDefined),map(locationFromSnapshot)),r),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,o,r,a,i,s,l,c])=>({...e,...t,...n,...o,...r,...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:o,trackItemSizes:r,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:y,...E},{scrollToIndex:b},w,{topItemCount:C},{groupCounts:R},S])=>(connect(E.rangeChanged,S.scrollSeekRangeChanged),connect(pipe(S.windowViewportRect,map((e=>e.visibleHeight))),_.viewportHeight),{totalCount:e,data:i,firstItemIndex:s,sizeRanges:t,initialTopMostItemIndex:f,scrolledToInitialItem:p,initialItemFinalLocationReached:m,topItemsIndexes:y,topItemCount:C,groupCounts:R,fixedItemHeight:n,defaultItemHeight:o,gap:u,...g,statefulTotalCount:c,listState:v,scrollToIndex:b,trackItemSizes:r,itemSize:a,groupIndices:l,...E,...S,..._,sizes:d,...h})),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 o=React__default.default.useRef(null),r=React__default.default.useCallback((n=>{if(null===n||!n.offsetParent)return;const r=n.getBoundingClientRect(),a=r.width;let i,s;if(t){const e=t.getBoundingClientRect(),n=r.top-e.top;i=e.height-Math.max(0,n),s=n+t.scrollTop}else i=window.innerHeight-Math.max(0,r.top),s=r.top+window.pageYOffset;o.current={offsetTop:s,visibleHeight:i,visibleWidth:a},e(o.current)}),[e,t]),{callbackRef:a,ref:i}=useSizeWithElRef(r,!0,n),s=React__default.default.useCallback((()=>{r(i.current)}),[r,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}`)),o=statefulStream({}),r=statefulStream(identity),a=statefulStream("div"),i=statefulStream(noop$1),s=(e,t=null)=>statefulStreamFromEmitter(pipe(o,map((t=>t[e])),distinctUntilChanged()),t);return{context:t,itemContent:e,groupContent:n,components:o,computeItemKey:r,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"),o=useEmitterValue$2("useWindowScroll"),r=useEmitterValue$2("customScrollParent"),a=usePublisher$2("windowScrollContainerState"),i=usePublisher$2("scrollContainerState"),s=r||o?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"),_=useEmitterValue$2("horizontalDirection"),{callbackRef:h}=useChangedListContentsSizes(n,f,d,e?noop$1:s,p,m,r,_,useEmitterValue$2("skipAnimationFrameInResizeObserver")),[g,v]=React__default.default.useState(0);useEmitter$2("deviation",(e=>{g!==e&&v(e)}));const y=useEmitterValue$2("EmptyPlaceholder"),E=useEmitterValue$2("ScrollSeekPlaceholder")||DefaultScrollSeekPlaceholder$1,b=useEmitterValue$2("ListComponent"),w=useEmitterValue$2("ItemComponent"),C=useEmitterValue$2("GroupComponent"),R=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",..._?{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&&y?jsxRuntime.exports.jsx(y,{...contextPropIfNotDomElement(y,c)}):jsxRuntime.exports.jsx(b,{...contextPropIfNotDomElement(b,c),ref:h,style:A,"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",children:(e?t.topItems:t.items).map((e=>{const n=e.originalIndex,o=R(n+t.firstItemIndex,e.data,c);return S?React.createElement(E,{...contextPropIfNotDomElement(E,c),key:o,index:e.index,height:e.size,type:e.type||"item",..."group"===e.type?{}:{groupIndex:e.groupIndex}}):"group"===e.type?React.createElement(C,{...contextPropIfNotDomElement(C,c),key:o,"data-index":n,"data-known-size":e.size,"data-item-index":e.index,style:GROUP_STYLE},u(e.index,c)):React.createElement(w,{...contextPropIfNotDomElement(w,c),...itemPropIfNotDomElement(w,e.data),key:o,"data-index":n,"data-known-size":e.size,"data-item-index":e.index,"data-item-group-index":e.groupIndex,style:_?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"),o=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,useEmitterValue$2("skipAnimationFrameInResizeObserver")),r=useEmitterValue$2("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,r)})}):null})),Footer$1=React__default.default.memo((function(){const e=useEmitterValue$2("FooterComponent"),t=usePublisher$2("footerHeight"),n=useEmitterValue$2("HeaderFooterTag"),o=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,useEmitterValue$2("skipAnimationFrameInResizeObserver")),r=useEmitterValue$2("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,r)})}):null}));function buildScroller({usePublisher:e,useEmitter:t,useEmitterValue:n}){return React__default.default.memo((function({style:o,children:r,...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 _=d?horizontalScrollerStyle:scrollerStyle;return jsxRuntime.exports.jsx(s,{ref:f,style:{..._,...o},"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,tabIndex:0,...a,...contextPropIfNotDomElement(s,u),children:r})}))}function buildWindowScroller({usePublisher:e,useEmitter:t,useEmitterValue:n}){return React__default.default.memo((function({style:o,children:r,...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:_}=useScrollTop(i,l,s,noop$1,d);return useIsomorphicLayoutEffect$2((()=>(p.current=d||window,()=>{p.current=null})),[p,d]),t("windowScrollTo",_),t("scrollBy",m),jsxRuntime.exports.jsx(s,{style:{position:"relative",...o,...0!==c?{height:c+u}:{}},"data-virtuoso-scroller":!0,...a,...contextPropIfNotDomElement(s,f),children:r})}))}const Viewport$2=({children:e})=>{const t=React__default.default.useContext(VirtuosoMockContext),n=usePublisher$2("viewportHeight"),o=usePublisher$2("fixedItemHeight"),r=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),o(t.itemHeight))}),[t,n,o]),jsxRuntime.exports.jsx("div",{style:viewportStyle(r),ref:i,"data-viewport-type":"element",children:e})},WindowViewport$2=({children:e})=>{const t=React__default.default.useContext(VirtuosoMockContext),n=usePublisher$2("windowViewportRect"),o=usePublisher$2("fixedItemHeight"),r=useEmitterValue$2("customScrollParent"),a=useWindowViewportRectRef(n,r,useEmitterValue$2("skipAnimationFrameInResizeObserver")),i=useEmitterValue$2("alignToBottom");return React__default.default.useEffect((()=>{t&&(o(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))}),[t,n,o]),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"),o={...topItemListStyle,marginTop:`${n}px`},r=useEmitterValue$2("context");return jsxRuntime.exports.jsx(t,{style:o,...contextPropIfNotDomElement(t,r),children:e})},ListRoot=React__default.default.memo((function(e){const t=useEmitterValue$2("useWindowScroll"),n=useEmitterValue$2("topItemsIndexes").length>0,o=useEmitterValue$2("customScrollParent"),r=o||t?WindowScroller$2:Scroller$2,a=o||t?WindowViewport$2:Viewport$2;return jsxRuntime.exports.jsxs(r,{...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,o)=>{const r=null===n?null:n[o+e];return{index:o+e,data:r}}))}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:o},{scrollTop:r,viewportHeight:a,scrollBy:i,scrollTo:s,smoothScrollTargetReached:l,scrollContainerState:c,footerHeight:u,headerHeight:d},f,p,{propsReady:m,didMount:_},{windowViewportRect:h,useWindowScroll:g,customScrollParent:v,windowScrollContainerState:y,windowScrollTo:E},b])=>{const w=statefulStream(0),C=statefulStream(0),R=statefulStream(INITIAL_GRID_STATE),S=statefulStream({height:0,width:0}),D=statefulStream({height:0,width:0}),T=stream(),O=stream(),A=statefulStream(0),x=statefulStream(null),I=statefulStream({row:0,column:0}),N=stream(),k=stream(),$=statefulStream(!1),F=statefulStream(0),P=statefulStream(!0),M=statefulStream(!1),L=statefulStream(!1);subscribe(pipe(_,withLatestFrom(F),filter((([e,t])=>!!t))),(()=>{publish(P,!1)})),subscribe(pipe(combineLatest(_,P,D,S,F,M),filter((([e,t,n,o,,r])=>e&&!t&&0!==n.height&&0!==o.height&&!r))),(([,,,,e])=>{publish(M,!0),skipFrames(1,(()=>{publish(T,e)})),handleNext(pipe(r),(()=>{publish(n,[0,0]),publish(P,!0)}))})),connect(pipe(k,filter((e=>null!=e&&e.scrollTop>0)),mapTo(0)),C),subscribe(pipe(_,withLatestFrom(k),filter((([,e])=>null!=e))),(([,e])=>{e&&(publish(S,e.viewport),publish(D,null==e?void 0:e.item),publish(I,e.gap),e.scrollTop>0&&(publish($,!0),handleNext(pipe(r,skip(1)),(e=>{publish($,!1)})),publish(s,{top:e.scrollTop})))})),connect(pipe(S,map((({height:e})=>e))),a),connect(pipe(combineLatest(duc(S,dimensionComparator),duc(D,dimensionComparator),duc(I,((e,t)=>e&&e.column===t.column&&e.row===t.row)),duc(r)),map((([e,t,n,o])=>({viewport:e,item:t,gap:n,scrollTop:o})))),N),connect(pipe(combineLatest(duc(w),t,duc(I,gapComparator),duc(D,dimensionComparator),duc(S,dimensionComparator),duc(x),duc(C),duc($),duc(P),duc(F)),filter((([,,,,,,,e])=>!e)),map((([e,[t,n],o,r,a,i,s,,l,c])=>{const{row:u,column:d}=o,{height:f,width:p}=r,{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 _=itemsPerRow(m,p,d);let h,g;l?0===t&&0===n&&s>0?(h=0,g=s-1):(h=_*floor((t+u)/(f+u)),g=_*ceil((n+u)/(f+u))-1,g=min(e-1,max(g,_-1)),h=min(g,max(0,h))):(h=0,g=-1);const v=buildItems(h,g,i),{top:y,bottom:E}=gridLayout(a,o,r,v),b=ceil(e/_);return{items:v,offsetTop:y,offsetBottom:b*f+(b-1)*u-E,top:y,bottom:E,itemHeight:f,itemWidth:p}}))),R),connect(pipe(x,filter((e=>null!==e)),map((e=>e.length))),w),connect(pipe(combineLatest(S,D,R,I),filter((([e,t,{items:n}])=>n.length>0&&0!==t.height&&0!==e.height)),map((([e,t,{items:n},o])=>{const{top:r,bottom:a}=gridLayout(e,o,t,n);return[r,a]})),distinctUntilChanged(tupleComparator)),n);const B=statefulStream(!1);connect(pipe(r,withLatestFrom(B),map((([e,t])=>t||0!==e))),B);const j=streamFromEmitter(pipe(combineLatest(R,w),filter((([{items:e}])=>e.length>0)),withLatestFrom(B),filter((([[e,t],n])=>{const o=e.items[e.items.length-1].index===t-1;if(n)return o;return e.bottom>0&&e.itemHeight>0&&0===e.offsetBottom&&e.items.length===t&&o})),map((([[,e]])=>e-1)),distinctUntilChanged())),U=streamFromEmitter(pipe(duc(R),filter((({items:e})=>e.length>0&&0===e[0].index)),mapTo(0),distinctUntilChanged())),V=streamFromEmitter(pipe(duc(R),withLatestFrom($),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,w,I),map((([e,t,n,o,r])=>{const a=normalizeIndexLocation(e),{align:i,behavior:s,offset:l}=a;let c=a.index;"LAST"===c&&(c=o-1),c=max(0,c,min(o-1,c));let u=itemTop(t,r,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(R,map((e=>e.offsetBottom+e.bottom))),0);return connect(pipe(h,map((e=>({width:e.visibleWidth,height:e.visibleHeight})))),S),{data:x,totalCount:w,viewportDimensions:S,itemDimensions:D,scrollTop:r,scrollHeight:O,overscan:e,increaseViewportBy:o,scrollBy:i,scrollTo:s,scrollToIndex:T,smoothScrollTargetReached:l,windowViewportRect:h,windowScrollTo:E,useWindowScroll:g,customScrollParent:v,windowScrollContainerState:y,deviation:A,scrollContainerState:c,footerHeight:u,headerHeight:d,initialItemCount:C,gap:I,restoreStateFrom:k,...p,initialTopMostItemIndex:F,horizontalDirection:L,gridState:R,totalListHeight:H,...f,startReached:U,endReached:j,rangeChanged:V,stateChanged:N,propsReady:m,stateRestoreInProgress:$,...b}}),tup(sizeRangeSystem,domIOSystem,stateFlagsSystem,scrollSeekSystem,propsReadySystem,windowScrollerSystem,loggerSystem));function gridLayout(e,t,n,o){const{height:r}=n;if(void 0===r||0===o.length)return{top:0,bottom:0};return{top:itemTop(e,t,n,o[0].index),bottom:itemTop(e,t,n,o[o.length-1].index)+r}}function itemTop(e,t,n,o){const r=itemsPerRow(e.width,n.width,t.column),a=floor(o/r),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),o=statefulStream("virtuoso-grid-item"),r=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:o,listClassName:r,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"),o=useEmitterValue$1("itemContent"),r=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"),_=usePublisher$1("reportReadyState"),h=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&&_(!0)}),[e]),m?null:jsxRuntime.exports.jsx(l,{ref:h,className:t,...contextPropIfNotDomElement(l,u),style:{paddingTop:e.offsetTop,paddingBottom:e.offsetBottom},"data-testid":"virtuoso-item-list",children:e.items.map((t=>{const i=r(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},o(t.index,t.data,u))}))})})),Header=React__default.default.memo((function(){const e=useEmitterValue$1("HeaderComponent"),t=usePublisher$1("headerHeight"),n=useEmitterValue$1("headerFooterTag"),o=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,!1),r=useEmitterValue$1("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,r)})}):null})),Footer=React__default.default.memo((function(){const e=useEmitterValue$1("FooterComponent"),t=usePublisher$1("footerHeight"),n=useEmitterValue$1("headerFooterTag"),o=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,!1),r=useEmitterValue$1("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,r)})}):null})),Viewport$1=({children:e})=>{const t=React__default.default.useContext(VirtuosoGridMockContext),n=usePublisher$1("itemDimensions"),o=usePublisher$1("viewportDimensions"),r=useSize$1(React__default.default.useMemo((()=>e=>{o(e.getBoundingClientRect())}),[o]),!0,!1);return React__default.default.useEffect((()=>{t&&(o({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))}),[t,o,n]),jsxRuntime.exports.jsx("div",{style:viewportStyle(!1),ref:r,children:e})},WindowViewport$1=({children:e})=>{const t=React__default.default.useContext(VirtuosoGridMockContext),n=usePublisher$1("windowViewportRect"),o=usePublisher$1("itemDimensions"),r=useEmitterValue$1("customScrollParent"),a=useWindowViewportRectRef(n,r,!1);return React__default.default.useEffect((()=>{t&&(o({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))}),[t,n,o]),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"),o=n||t?WindowScroller$1:Scroller$1,r=n||t?WindowViewport$1:Viewport$1;return jsxRuntime.exports.jsx(o,{...e,children:jsxRuntime.exports.jsxs(r,{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 o=e;o<=t;o++)n.push(o);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:o,messagesEtag:r}]=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:o,emojisEtag:n,messagesEtag:r}}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:o,messagesEtag:r}=await fetchEmojibaseData(e),a=o.subgroups.find((e=>"subdivision-flag"===e.key)),i=o.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=o.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:r}),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,o=n.length;let r=0;for(;r<o&&!n[r+3];r+=4);if(r>=o)return!1;const a=EMOJI_DETECTION_CANVAS_WIDTH+r/4%EMOJI_DETECTION_CANVAS_WIDTH,i=Math.floor(r/4/EMOJI_DETECTION_CANVAS_WIDTH),s=e.getImageData(a,i,1,1).data;return n[r]===s[0]&&n[r+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)),o=n[0]??0,r=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});if(!r)return{emojiVersion:o,countryFlags:!0};r.font=`${Math.floor(EMOJI_DETECTION_CANVAS_HEIGHT/2)}px ${getEmojiFontFamily()}`,r.textBaseline="top",r.canvas.width=2*EMOJI_DETECTION_CANVAS_WIDTH,r.canvas.height=EMOJI_DETECTION_CANVAS_HEIGHT;const a=detectEmojiSupport(r,EMOJI_DETECTION_COUNTRY_FLAG);for(const e of n){if(detectEmojiSupport(r,t.get(e)))return{emojiVersion:e,countryFlags:a}}return{emojiVersion:o,countryFlags:a}}async function getEmojiData(e){const t=getEmojibaseSupportedLocale(e),n=getStorageItem(sessionStorage,CACHE_EMOJI_SESSION_METADATA_KEY),o=getStorageItem(localStorage,CACHE_EMOJI_DATA_KEY(t));let r;if(o)if(n)r=o;else{const{emojisEtag:e,messagesEtag:n}=await fetchEmojibaseEtags(t),a=getStorageItem(localStorage,CACHE_EMOJI_METADATA_KEY(t));r=a&&e===a.emojisEtag&&n===a.messagesEtag?o:await fetchEmojiData(t)}else r=await fetchEmojiData(t);const a=n??getEmojiSessionMetadata(r.emojis);setStorageItem(sessionStorage,CACHE_EMOJI_SESSION_METADATA_KEY,a);return{emojis:r.emojis.filter((e=>{const t=e.version<=a.emojiVersion;return e.countryFlag?t&&a.countryFlags:t})),categories:r.categories,skinTones:r.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 o=0;const r=[],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=o+t.length;r.push(...t),l.push(e.name),i.push(t.length),s.push(generateRangeIndices(o,a-1)),o=a}return{count:e.length,rows:r,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:o}){const r=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)}),[]),y=React.useCallback(((e,t)=>{h("pointer"),f(e),m(t)}),[]),E=React.useCallback(((e,t)=>{if(s)if(t.preventDefault(),"none"!==_)switch(h("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 h("keyboard")}),[s,_,d,p]),b=React.useCallback((()=>{r.current&&i((()=>{l((()=>{if(!r.current)return;return generateEmojiPickerData(filterEmojis(r.current.emojis,a.current),r.current.categories,e)})),v()}))}),[e,v]),w=React.useCallback((e=>{a.current=e,b()}),[b]),C=React.useCallback((async e=>{try{r.current=await getEmojiData(e),b()}catch(e){u(e)}}),[b]);return React.useEffect((()=>{let e;const n=setTimeout((()=>{e=requestIdleCallback((()=>{C(t)}))}),LOADING_MINIMUM_TIMEOUT);return()=>{clearTimeout(n),cancelIdleCallback(e)}}),[t]),React.useEffect((()=>{"none"===_&&v()}),[_]),React__default.default.createElement(EmojiPickerContext.Provider,{value:{data:s,error:c,isLoading:!s&&!c,columns:e,onSearch:w,onEmojiSelect:n,selectCurrentEmoji:g,selectedRowIndex:p,selectedColumnIndex:d,moveSelection:E,setPointerSelection:y,interaction:_,setInteraction:h}},o)}const EmojiPickerSearch=React.forwardRef((({asChild:e,value:t,defaultValue:n,onChange:o,...r},a)=>{const i=e?Slot:"input",{onSearch:s,selectCurrentEmoji:l,moveSelection:c,interaction:u,setInteraction:d}=useEmojiPicker(),f=React.useCallback((e=>{if(o?.(e),e.isDefaultPrevented())return;const t=e.target.value;d(t?"keyboard":"none"),s(t)}),[o,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,...r,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},o)=>{const r=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:_,selectedRowIndex:h,setPointerSelection:g,interaction:v,setInteraction:y}=useEmojiPicker(),E=React.useMemo((()=>u?.rows[h]?.[_]),[u?.rows,_,h]),{Loading:b,Empty:w,Error:C,CategoryHeader:R,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]),x=React.useCallback((e=>{e.preventDefault()}),[]),I=React.useCallback((()=>{"pointer"===v&&y("none")}),[v,y]);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:o,locationParams:{behavior:r,align:a,...i}})=>e-(c.current+s.current)<n?{...i,behavior:r,align:a??"start"}:t>o?{...i,behavior:r,align:a??"end",offset:l.current}:null),[]);return React.useEffect((()=>{"keyboard"===v&&a.current?.scrollIntoView({index:h,behavior:"auto",calculateViewLocation:N})}),[v,h,N]),React__default.default.createElement(r,{...n,ref:o},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(R,{category:"Category"})),f?React__default.default.createElement(b,null):d?React__default.default.createElement(C,{error:d}):0===u.count?React__default.default.createElement(w,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(R,{category:t}):null},itemContent:(e,t)=>{const n=u.rows[e],o=u.categoriesRowIndices[t]?.indexOf(e),r=u.categoriesRowCounts[t];return void 0===n||void 0===o||void 0===r?null:React__default.default.createElement(D,{attributes:{rowIndex:e,categoryRowIndex:o,categoryRowsCount:r}},n.map(((t,n)=>{const o="none"!==v&&_===n&&h===e;return React__default.default.createElement(T,{key:t.emoji,role:"gridcell","aria-colindex":n,"aria-selected":o||void 0,"data-selected":o||void 0,onMouseDown:x,tabIndex:-1,onPointerEnter:()=>{g(n,e)},onPointerLeave:I,onClick:e=>{m?.(t.emoji),e.stopPropagation()},emoji:t.emoji})})))}})),E&&"none"!==v&&React__default.default.createElement("div",{"aria-live":"polite",style:visuallyHidden},E.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 o=e/BASE**n,r=1;1===n&&(o>=10&&(r=0),o<.1&&o>0&&(r=2),o<.01&&(o=.01));const a=UNITS[n];return`${numberFormat(t,{minimumFractionDigits:0,maximumFractionDigits:r}).format(o)} ${a}`}function createContextScope$3(e,t=[]){let n=[];const o=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const o=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:o}})),[n,o])}};return o.scopeName=e,[function(t,o){const r=React__namespace.createContext(o),a=n.length;n=[...n,o];const i=t=>{const{scope:n,children:o,...i}=t,s=n?.[e]?.[a]||r,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:o})};return i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e]?.[a]||r,l=React__namespace.useContext(s);if(l)return l;if(void 0!==o)return o;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$3(o,...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 o=n.reduce(((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:o})),[o])}};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:o,onPointerDownOutside:r,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))),_=Array.from(c.layers),[h]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),g=_.indexOf(h),v=u?_.indexOf(u):-1,y=c.layersWithOutsidePointerEventsDisabled.size>0,E=v>=g,b=usePointerDownOutside((e=>{const t=e.target,n=[...c.branches].some((e=>e.contains(t)));E&&!n&&(r?.(e),i?.(e),e.defaultPrevented||s?.())}),f),w=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&&(o?.(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:y?E?"auto":"none":void 0,...e.style},onFocusCapture:composeEventHandlers(e.onFocusCapture,w.onFocusCapture),onBlurCapture:composeEventHandlers(e.onBlurCapture,w.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),o=React__namespace.useRef(null),r=useComposedRefs(t,o);return React__namespace.useEffect((()=>{const e=o.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}}),[n.branches]),jsxRuntime.exports.jsx(Primitive.div,{...e,ref:r})}));function usePointerDownOutside(e,t=globalThis?.document){const n=useCallbackRef$1(e),o=React__namespace.useRef(!1),r=React__namespace.useRef((()=>{}));return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!o.current){let o=function(){handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE,n,a,{discrete:!0})};const a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",r.current),r.current=o,t.addEventListener("click",r.current,{once:!0})):o()}else t.removeEventListener("click",r.current);o.current=!1},a=window.setTimeout((()=>{t.addEventListener("pointerdown",e)}),0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",r.current)}}),[t,n]),{onPointerDownCapture:()=>o.current=!0}}function useFocusOutside(e,t=globalThis?.document){const n=useCallbackRef$1(e),o=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!o.current){handleAndDispatchCustomEvent(FOCUS_OUTSIDE,n,{originalEvent:e},{discrete:!1})}};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)}),[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function dispatchUpdate(){const e=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(e)}function handleAndDispatchCustomEvent(e,t,n,{discrete:o}){const r=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?dispatchDiscreteCustomEvent(r,a):r.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:o=10,height:r=5,...a}=e;return jsxRuntime.exports.jsx(Primitive.svg,{...a,ref:t,width:o,height:r,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 o=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const o=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:o}})),[n,o])}};return o.scopeName=e,[function(t,o){const r=React__namespace.createContext(o),a=n.length;function i(t){const{scope:n,children:o,...i}=t,s=n?.[e][a]||r,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:o})}return n=[...n,o],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||r,l=React__namespace.useContext(s);if(l)return l;if(void 0!==o)return o;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$2(o,...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 o=n.reduce(((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:o})),[o])}};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 o=t[0];let r,a;if("borderBoxSize"in o){const e=o.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,a=t.blockSize}else r=e.offsetWidth,a=e.offsetHeight;n({width:r,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,[o,r]=React__namespace.useState(null);return jsxRuntime.exports.jsx(PopperProvider,{scope:t,anchor:o,onAnchorChange:r,children:n})};Popper.displayName=POPPER_NAME;var ANCHOR_NAME$2="PopperAnchor",PopperAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,a=usePopperContext(ANCHOR_NAME$2,n),i=React__namespace.useRef(null),s=useComposedRefs(t,i);return React__namespace.useEffect((()=>{a.onAnchorChange(o?.current||i.current)})),o?null:jsxRuntime.exports.jsx(Primitive.div,{...r,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:o="bottom",sideOffset:r=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,..._}=e,h=usePopperContext(CONTENT_NAME$4,n),[g,v]=React__namespace.useState(null),y=useComposedRefs(t,(e=>v(e))),[E,b]=React__namespace.useState(null),w=useSize(E),C=w?.width??0,R=w?.height??0,S=o+("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:x,floatingStyles:I,placement:N,isPositioned:k,middlewareData:$}=useFloating({strategy:"fixed",placement:S,whileElementsMounted:(...e)=>autoUpdate(...e,{animationFrame:"always"===p}),elements:{reference:h.anchor},middleware:[offset({mainAxis:r+R,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:o})=>{const{width:r,height:a}=t.reference,i=e.floating.style;i.setProperty("--radix-popper-available-width",`${n}px`),i.setProperty("--radix-popper-available-height",`${o}px`),i.setProperty("--radix-popper-anchor-width",`${r}px`),i.setProperty("--radix-popper-anchor-height",`${a}px`)}}),E&&arrow({element:E,padding:s}),transformOrigin({arrowWidth:C,arrowHeight:R}),f&&hide({strategy:"referenceHidden",...A})]}),[F,P]=getSideAndAlignFromPlacement(N),M=useCallbackRef$1(m);useLayoutEffect2((()=>{k&&M?.()}),[k,M]);const L=$.arrow?.x,B=$.arrow?.y,j=0!==$.arrow?.centerOffset,[U,V]=React__namespace.useState();return useLayoutEffect2((()=>{g&&V(window.getComputedStyle(g).zIndex)}),[g]),jsxRuntime.exports.jsx("div",{ref:x.setFloating,"data-radix-popper-content-wrapper":"",style:{...I,transform:k?I.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:U,"--radix-popper-transform-origin":[$.transformOrigin?.x,$.transformOrigin?.y].join(" "),...$.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:jsxRuntime.exports.jsx(PopperContentProvider,{scope:n,placedSide:F,onArrowChange:b,arrowX:L,arrowY:B,shouldHideArrow:j,children:jsxRuntime.exports.jsx(Primitive.div,{"data-side":F,"data-align":P,..._,ref:y,style:{..._.style,animation:k?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,...o}=e,r=useContentContext(ARROW_NAME$4,n),a=OPPOSITE_SIDE[r.placedSide];return jsxRuntime.exports.jsx("span",{ref:r.onArrowChange,style:{position:"absolute",left:r.arrowX,top:r.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[r.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[r.placedSide],visibility:r.shouldHideArrow?"hidden":void 0},children:jsxRuntime.exports.jsx(Root$2,{...o,ref:t,style:{...o.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:o,middlewareData:r}=t,a=0!==r.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=(r.arrow?.x??0)+i/2,f=(r.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=`${o.floating.height+s}px`):"right"===l?(p=-s+"px",m=a?u:`${f}px`):"left"===l&&(p=`${o.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$1=PopperContent,Arrow=PopperArrow,PORTAL_NAME$4="Portal",Portal$3=React__namespace.forwardRef(((e,t)=>{const{container:n,...o}=e,[r,a]=React__namespace.useState(!1);useLayoutEffect2((()=>a(!0)),[]);const i=n||r&&globalThis?.document?.body;return i?ReactDOM__default.default.createPortal(jsxRuntime.exports.jsx(Primitive.div,{...o,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,o=usePresence(t),r="function"==typeof n?n({present:o.isPresent}):React__namespace.Children.only(n),a=useComposedRefs(o.ref,getElementRef(r));return"function"==typeof n||o.isPresent?React__namespace.cloneElement(r,{ref:a}):null};function usePresence(e){const[t,n]=React__namespace.useState(),o=React__namespace.useRef({}),r=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(o.current);a.current="mounted"===s?e:"none"}),[s]),useLayoutEffect2((()=>{const t=o.current,n=r.current;if(n!==e){const o=a.current,i=getAnimationName(t);if(e)l("MOUNT");else if("none"===i||"none"===t?.display)l("UNMOUNT");else{l(n&&o!==i?"ANIMATION_OUT":"UNMOUNT")}r.current=e}}),[e,l]),useLayoutEffect2((()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,i=a=>{const i=getAnimationName(o.current).includes(a.animationName);if(a.target===t&&i&&(l("ANIMATION_END"),!r.current)){const o=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=o)}))}},s=e=>{e.target===t&&(a.current=getAnimationName(o.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&&(o.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:o=300,disableHoverableContent:r=!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)),o)}),[o]),isPointerInTransitRef:l,onPointerInTransitChange:React__namespace.useCallback((e=>{l.current=e}),[]),disableHoverableContent:r,children:a})};TooltipProvider.displayName=PROVIDER_NAME;var TOOLTIP_NAME="Tooltip",[TooltipContextProvider,useTooltipContext]=createTooltipContext(TOOLTIP_NAME),Tooltip$1=e=>{const{__scopeTooltip:t,children:n,open:o,defaultOpen:r=!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,_=s??l.delayDuration,h=React__namespace.useRef(!1),[g=!1,v]=useControllableState$1({prop:o,defaultProp:r,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))):l.onClose(),a?.(e)}}),y=React__namespace.useMemo((()=>g?h.current?"delayed-open":"instant-open":"closed"),[g]),E=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=0,h.current=!1,v(!0)}),[v]),b=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=0,v(!1)}),[v]),w=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=window.setTimeout((()=>{h.current=!0,v(!0),p.current=0}),_)}),[_,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:y,trigger:u,onTriggerChange:d,onTriggerEnter:React__namespace.useCallback((()=>{l.isOpenDelayed?w():E()}),[l.isOpenDelayed,w,E]),onTriggerLeave:React__namespace.useCallback((()=>{m?b():(window.clearTimeout(p.current),p.current=0)}),[b,m]),onOpen:E,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,...o}=e,r=useTooltipContext(TRIGGER_NAME$2,n),a=useTooltipProviderContext(TRIGGER_NAME$2,n),i=usePopperScope$2(n),s=useComposedRefs(t,React__namespace.useRef(null),r.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":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...o,ref:s,onPointerMove:composeEventHandlers(e.onPointerMove,(e=>{"touch"!==e.pointerType&&(c.current||a.isPointerInTransitRef.current||(r.onTriggerEnter(),c.current=!0))})),onPointerLeave:composeEventHandlers(e.onPointerLeave,(()=>{r.onTriggerLeave(),c.current=!1})),onPointerDown:composeEventHandlers(e.onPointerDown,(()=>{l.current=!0,document.addEventListener("pointerup",u,{once:!0})})),onFocus:composeEventHandlers(e.onFocus,(()=>{l.current||r.onOpen()})),onBlur:composeEventHandlers(e.onBlur,r.onClose),onClick:composeEventHandlers(e.onClick,r.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:o,container:r}=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:r,children:o})})})};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:o=n.forceMount,side:r="top",...a}=e,i=useTooltipContext(CONTENT_NAME$3,e.__scopeTooltip);return jsxRuntime.exports.jsx(Presence,{present:o||i.open,children:i.disableHoverableContent?jsxRuntime.exports.jsx(TooltipContentImpl,{side:r,...a,ref:t}):jsxRuntime.exports.jsx(TooltipContentHoverable,{side:r,...a,ref:t})})})),TooltipContentHoverable=React__namespace.forwardRef(((e,t)=>{const n=useTooltipContext(CONTENT_NAME$3,e.__scopeTooltip),o=useTooltipProviderContext(CONTENT_NAME$3,e.__scopeTooltip),r=React__namespace.useRef(null),a=useComposedRefs(t,r),[i,s]=React__namespace.useState(null),{trigger:l,onClose:c}=n,u=r.current,{onPointerInTransitChange:d}=o,f=React__namespace.useCallback((()=>{s(null),d(!1)}),[d]),p=React__namespace.useCallback(((e,t)=>{const n=e.currentTarget,o={x:e.clientX,y:e.clientY},r=getHull([...getPaddedExitPoints(o,getExitSideFromRect(o,n.getBoundingClientRect())),...getPointsFromRect(t.getBoundingClientRect())]);s(r),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},o=l?.contains(t)||u?.contains(t),r=!isPointInPolygon$1(n,i);o?f():r&&(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:o,"aria-label":r,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$1,{"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:o}),jsxRuntime.exports.jsx(VisuallyHiddenContentContextProvider,{scope:n,isInside:!0,children:jsxRuntime.exports.jsx(Root$1,{id:l.contentId,role:"tooltip",children:r||o})})]})})}));TooltipContent.displayName=CONTENT_NAME$3;var ARROW_NAME$3="TooltipArrow",TooltipArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,...o}=e,r=usePopperScope$2(n);return useVisuallyHiddenContentContext(ARROW_NAME$3,n).isInside?null:jsxRuntime.exports.jsx(Arrow,{...r,...o,ref:t})}));function getExitSideFromRect(e,t){const n=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),r=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,o,r,a)){case a:return"left";case r:return"right";case n:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function getPaddedExitPoints(e,t,n=5){const o=[];switch(t){case"top":o.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":o.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":o.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":o.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return o}function getPointsFromRect(e){const{top:t,right:n,bottom:o,left:r}=e;return[{x:r,y:t},{x:n,y:t},{x:n,y:o},{x:r,y:o}]}function isPointInPolygon$1(e,t){const{x:n,y:o}=e;let r=!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>o!=c>o&&n<(l-i)*(o-s)/(c-s)+i&&(r=!r)}return r}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 o=e[n];for(;t.length>=2;){const e=t[t.length-1],n=t[t.length-2];if(!((e.x-n.x)*(o.y-n.y)>=(e.y-n.y)*(o.x-n.x)))break;t.pop()}t.push(o)}t.pop();const n=[];for(let t=e.length-1;t>=0;t--){const o=e[t];for(;n.length>=2;){const e=n[n.length-1],t=n[n.length-2];if(!((e.x-t.x)*(o.y-t.y)>=(e.y-t.y)*(o.x-t.x)))break;n.pop()}n.push(o)}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:o,...r},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",o),side:"top",align:"center",sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,...r},t)))})),ShortcutTooltip=React.forwardRef((({children:e,content:t,shortcut:n,...o},r)=>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)),...o,ref:r},e)));function ShortcutTooltipKey({name:e,...t}){const{title:n,key:o}=React.useMemo((()=>KEYS[e]?.()),[e]);return React__default.default.createElement("abbr",{title:n,...t},o)}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,o]=React.useState(!1),r=React.useCallback((()=>{o(!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:r})):null)}function AttachmentVideoPreview({attachment:e}){const{url:t}=useAttachmentUrl(e.id),[n,o]=React.useState(!1),r=React.useCallback((()=>{o(!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:r})):null)}function AttachmentPreview({attachment:e,allowMediaPreview:t=!0}){const n=_useIsInsideRoom(),o="attachment"===e.type||"uploaded"===e.status;if(t&&o&&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),o=useComposerAttachmentsContextOrNull(),r=Boolean(o),a=o?.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:r?n.COMPOSER_REMOVE_ATTACHMENT:n.COMMENT_DELETE_ATTACHMENT}}function MediaAttachment({attachment:e,overrides:t,onClick:n,onDeleteClick:o,preventFocusOnDelete:r,allowMediaPreview:a=!0,className:i,onKeyDown:s,...l}){const{isUploading:c,isError:u,description:d,deleteLabel:f}=useAttachmentContent(e,t),p=React.useCallback((e=>{r&&e.preventDefault()}),[r]),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)),o&&React__default.default.createElement(Tooltip,{content:f},React__default.default.createElement("button",{type:"button",className:"lb-attachment-delete",onClick:o,onPointerDown:p,"aria-label":f},React__default.default.createElement(CrossIcon,null))))}function FileAttachment({attachment:e,overrides:t,onClick:n,onDeleteClick:o,preventFocusOnDelete:r,allowMediaPreview:a=!0,className:i,onKeyDown:s,...l}){const{isUploading:c,isError:u,description:d,deleteLabel:f}=useAttachmentContent(e,t),p=React.useCallback((e=>{r&&e.preventDefault()}),[r]),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)),o&&React__default.default.createElement(Tooltip,{content:f},React__default.default.createElement("button",{type:"button",className:"lb-attachment-delete",onClick:o,onPointerDown:p,"aria-label":f},React__default.default.createElement(CrossIcon,null))))}function separateMediaAttachments(e){const t=[],n=[];for(const o of e)(o.mimeType.startsWith("image/")||o.mimeType.startsWith("video/"))&&o.size<=MAX_DISPLAYED_MEDIA_SIZE?t.push(o):n.push(o);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,o)=>(0!==n&&n!==o.length-1||(e+=t.charAt(0).toLocaleUpperCase()),e)),"")}function Avatar({userId:e,className:t,...n}){const{user:o,isLoading:r}=_useUser(e),a=React.useMemo((()=>o?.name),[o]),i=React.useMemo((()=>o?.avatar),[o]),s=React.useMemo((()=>a?getInitials(a):void 0),[a]),l=React.useMemo((()=>r||o?void 0:getInitials(e)),[r,o,e]);return React__default.default.createElement("div",{className:classNames("lb-avatar",t),"data-loading":r?"":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:o,...r},a)=>React__default.default.createElement("button",{type:"button",className:classNames("lb-button",!n&&"lb-button:non-disableable",o),"data-variant":e,"data-size":t,...r,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:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:a,...i}=e,[s,l]=React__namespace.useState(null),c=useCallbackRef$1(r),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(o){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 o=new MutationObserver(n);return s&&o.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),o.disconnect()}}}),[o,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&&!o)return;if(p.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,r=document.activeElement;if(t&&r){const t=e.currentTarget,[o,a]=getTabbableEdges(t);o&&a?e.shiftKey||r!==a?e.shiftKey&&r===o&&(e.preventDefault(),n&&focus(a,{select:!0})):(e.preventDefault(),n&&focus(o,{select:!0})):r===t&&e.preventDefault()}}),[n,o,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 o of e)if(focus(o,{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],o=n.indexOf(t);return-1!==o&&n.splice(o,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,o){var r=correctTargets(t,Array.isArray(e)?e:[e]);markerMap[n]||(markerMap[n]=new WeakMap);var a=markerMap[n],i=[],s=new Set,l=new Set(r),c=function(e){e&&!s.has(e)&&(s.add(e),c(e.parentNode))};r.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(o),r=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&&r&&uncontrolledNodes.set(e,!0),1===c&&e.setAttribute(n,"true"),r||e.setAttribute(o,"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,r=a.get(e)-1;counterMap.set(e,t),a.set(e,r),t||(uncontrolledNodes.has(e)||e.removeAttribute(o),uncontrolledNodes.delete(e)),r||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 o=Array.from(Array.isArray(e)?e:[e]),r=t||getDefaultParent(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live]"))),applyAttributeToOthers(o,r,n,"aria-hidden")):function(){return null}},__assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},__assign.apply(this,arguments)};function __rest(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}function __awaiter(e,t,n,o){return new(n||(n=Promise))((function(r,a){function i(e){try{l(o.next(e))}catch(e){a(e)}}function s(e){try{l(o.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}l((o=o.apply(e,t||[])).next())}))}function __generator(e,t){var n,o,r,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[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,o&&(r=2&s[0]?o.return:s[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,s[1])).done)return r;switch(o=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,o=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){a.label=s[1];break}if(6===s[0]&&a.label<r[1]){a.label=r[1],r=s;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(s);break}r[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],o=0}finally{n=r=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 o,r,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(o=a.next()).done;)i.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return i}function __spreadArray(e,t,n){if(n||2===arguments.length)for(var o,r=0,a=t.length;r<a;r++)!o&&r in t||(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||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 o=new Set(t),r=new Set(e),a=n.current;o.forEach((function(e){r.has(e)||assignRef(e,null)})),r.forEach((function(e){o.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=[],o=!1,r={read:function(){if(o)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 r=t(e,o);return n.push(r),function(){n=n.filter((function(e){return e!==r}))}},assignSyncMedium:function(e){for(o=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){o=!0;var t=[];if(n.length){var r=n;n=[],r.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 r}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 o=t.read();if(!o)throw new Error("Sidecar medium not found");return React__namespace.createElement(o,__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),o=React__namespace.useState({onScrollCapture:nothing,onWheelCapture:nothing,onTouchMoveCapture:nothing}),r=o[0],a=o[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,_=e.allowPinchZoom,h=e.as,g=void 0===h?"div":h,v=e.gapMode,y=__rest(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),E=f,b=useMergeRefs([n,t]),w=__assign(__assign({},y),r);return React__namespace.createElement(React__namespace.Fragment,null,u&&React__namespace.createElement(E,{sideCar:effectCar,removeScrollBar:c,shards:d,noIsolation:p,inert:m,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:v}),i?React__namespace.cloneElement(React__namespace.Children.only(s),__assign(__assign({},w),{ref:b})):React__namespace.createElement(g,__assign({},w,{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,o=t.dynamic;return e(n,o),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"],o=t["padding"===e?"paddingTop":"marginTop"],r=t["padding"===e?"paddingRight":"marginRight"];return[parse(n),parse(o),parse(r)]},getGapWidth=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return zeroGap;var t=getOffset(e),n=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-n+t[2]-t[0])}},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(e,t,n,o){var r=e.left,a=e.top,i=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat(noScrollbarsClassName," {\n overflow: hidden ").concat(o,";\n padding-right: ").concat(s,"px ").concat(o,";\n }\n body[").concat(lockAttribute,"] {\n overflow: hidden ").concat(o,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(o,";"),"margin"===n&&"\n padding-left: ".concat(r,"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(o,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),"\n }\n \n .").concat(zeroRightClassName," {\n right: ").concat(s,"px ").concat(o,";\n }\n \n .").concat(fullWidthClassName," {\n margin-right: ").concat(s,"px ").concat(o,";\n }\n \n .").concat(zeroRightClassName," .").concat(zeroRightClassName," {\n right: 0 ").concat(o,";\n }\n \n .").concat(fullWidthClassName," .").concat(fullWidthClassName," {\n margin-right: 0 ").concat(o,";\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,o=e.gapMode,r=void 0===o?"margin":o;useLockAttribute();var a=React__namespace.useMemo((function(){return getGapWidth(r)}),[r]);return React__namespace.createElement(Style,{styles:getStyles(a,!t,r,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,o=t;do{if("undefined"!=typeof ShadowRoot&&o instanceof ShadowRoot&&(o=o.host),elementCouldBeScrolled(e,o)){var r=getScrollVariables(e,o);if(r[1]>r[2])return!0}o=o.parentNode}while(o&&o!==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,o,r){var a=getDirectionFactor(e,window.getComputedStyle(t).direction),i=a*o,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],_=p[1]-p[2]-a*m;(m||_)&&elementCouldBeScrolled(e,s)&&(d+=_,f+=m),s=s instanceof ShadowRoot?s.host:s.parentNode}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(u&&(r&&Math.abs(d)<1||!r&&i>d)||!u&&(r&&Math.abs(f)<1||!r&&-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]),o=React__namespace.useRef(),r=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(r));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(r))})),function(){document.body.classList.remove("block-interactivity-".concat(r)),t.forEach((function(e){return e.classList.remove("allow-interactivity-".concat(r))}))}}}),[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 r,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?r=d:(r="v"===d?"h":"v",f=locationCouldBeScrolled(d,u)),!f)return!1;if(!o.current&&"changedTouches"in e&&(l||c)&&(o.current=r),!r)return!0;var p=o.current||r;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 o="deltaY"in n?getDeltaXY(n):getTouchXY(n),r=t.current.filter((function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&deltaCompare(e.delta,o)}))[0];if(r&&r.should)n.cancelable&&n.preventDefault();else if(!r){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,o,r){var a={name:e,delta:n,target:o,should:r,shadowParent:getOutermostShadowParent(o)};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),o.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(r)}):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:o,defaultOpen:r,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:o,defaultProp:r,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,...o}=e,r=usePopoverContext(ANCHOR_NAME$1,n),a=usePopperScope$1(n),{onCustomAnchorAdd:i,onCustomAnchorRemove:s}=r;return React__namespace.useEffect((()=>(i(),()=>s())),[i,s]),jsxRuntime.exports.jsx(Anchor,{...a,...o,ref:t})}));PopoverAnchor.displayName=ANCHOR_NAME$1;var TRIGGER_NAME$1="PopoverTrigger",PopoverTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...o}=e,r=usePopoverContext(TRIGGER_NAME$1,n),a=usePopperScope$1(n),i=useComposedRefs(t,r.triggerRef),s=jsxRuntime.exports.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":getState(r.open),...o,ref:i,onClick:composeEventHandlers(e.onClick,r.onOpenToggle)});return r.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:o,container:r}=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:r,children:o})})})};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:o=n.forceMount,...r}=e,a=usePopoverContext(CONTENT_NAME$2,e.__scopePopover);return jsxRuntime.exports.jsx(Presence,{present:o||a.open,children:a.modal?jsxRuntime.exports.jsx(PopoverContentModal,{...r,ref:t}):jsxRuntime.exports.jsx(PopoverContentNonModal,{...r,ref:t})})}));PopoverContent.displayName=CONTENT_NAME$2;var PopoverContentModal=React__namespace.forwardRef(((e,t)=>{const n=usePopoverContext(CONTENT_NAME$2,e.__scopePopover),o=React__namespace.useRef(null),r=useComposedRefs(t,o),a=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=o.current;if(e)return hideOthers(e)}),[]),jsxRuntime.exports.jsx(ReactRemoveScroll,{as:Slot,allowPinchZoom:!0,children:jsxRuntime.exports.jsx(PopoverContentImpl,{...e,ref:r,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,o=2===t.button||n;a.current=o}),{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),o=React__namespace.useRef(!1),r=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(PopoverContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||n.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(r.current=!0));const a=t.target,i=n.triggerRef.current?.contains(a);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&r.current&&t.preventDefault()}})})),PopoverContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,trapFocus:o,onOpenAutoFocus:r,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:o,onMountAutoFocus:r,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$1,{"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,...o}=e,r=usePopoverContext(CLOSE_NAME,n);return jsxRuntime.exports.jsx(Primitive.button,{type:"button",...o,ref:t,onClick:composeEventHandlers(e.onClick,(()=>r.onOpenChange(!1)))})}));PopoverClose.displayName=CLOSE_NAME;var ARROW_NAME$2="PopoverArrow",PopoverArrow=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...o}=e,r=usePopperScope$1(n);return jsxRuntime.exports.jsx(Arrow,{...r,...o,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 o=useOverrides();return React__default.default.createElement("div",{className:classNames("lb-error lb-emoji-picker-error",t),...n},o.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,...o}){const r=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":r?"":void 0,"data-last":a?"":void 0,...o},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:o,...r},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",o),...r,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,...o}){const r=useCurrentUserId(),{user:a,isLoading:i}=_useUser(e),s=useOverrides(),l=React.useMemo((()=>t&&r===e?s.USER_SELF:a?.name??s.USER_UNKNOWN),[t,r,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,...o},i?null:l)}function ComposerInsertMentionEditorAction({label:e,tooltipLabel:t,className:n,onClick:o,...r}){const{createMention:a}=useComposer(),i=React.useCallback((e=>{e.preventDefault()}),[]),s=React.useCallback((e=>{o?.(e),e.isDefaultPrevented()||(e.stopPropagation(),a())}),[a,o]);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,...r},React__default.default.createElement(MentionIcon,{className:"lb-button-icon"})))}function ComposerInsertEmojiEditorAction({label:e,tooltipLabel:t,onPickerOpenChange:n,className:o,...r}){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",o),onMouseDown:i,onClick:s,"aria-label":e,...r},React__default.default.createElement(EmojiIcon,{className:"lb-button-icon"})))))}function ComposerAttachFilesEditorAction({label:e,tooltipLabel:t,className:n,...o}){const r=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:r,onClick:a,"aria-label":e,...o},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,...o}){const{removeAttachment:r}=useComposer(),a=React.useCallback((()=>{r(e.id)}),[e.id,r]);return React__default.default.createElement(FileAttachment,{className:classNames("lb-composer-attachment",t),...o,attachment:e,onDeleteClick:a,preventFocusOnDelete:!0,overrides:n})}function ComposerAttachments({overrides:e,className:t,...n}){const{attachments:o}=useComposer();return 0===o.length?null:React__default.default.createElement("div",{className:classNames("lb-composer-attachments",t),...n},React__default.default.createElement("div",{className:"lb-attachments"},o.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:o,overrides:r,actions:a,autoFocus:i,disabled:s,hasResolveMentionSuggestions:l,onEmojiPickerOpenChange:c,onEmptyChange:u,onEditorClick:d}){const{isEmpty:f}=useComposer(),{hasMaxAttachments:p}=useComposerAttachmentsContext(),m=useOverrides(r),[_,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",...h},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:r}),(!o||_)&&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&&_&&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:o,defaultAttachments:r,onComposerSubmit:a,collapsed:i,defaultCollapsed:s,onCollapsedChange:l,overrides:c,actions:u,onBlur:d,className:f,onFocus:p,autoFocus:m,disabled:_,showAttachments:h=!0,showAttribution:g,...v},y)=>{const E=useClient(),b=_useCreateThread(),w=useCreateComment(),C=useEditComment(),{preventUnsavedComposerChanges:R}=useLiveblocksUIConfig(),S=void 0!==E[kInternal].resolveMentionSuggestions,D=React.useRef(!0),T=React.useRef(!1),O=useOverrides(c),[A,x]=useControllableState((void 0!==i||void 0!==s)&&i,l,s),I=React.useCallback((e=>{D.current=e}),[]),N=React.useCallback((e=>{T.current=e}),[]),k=React.useCallback((e=>{p?.(e),e.isDefaultPrevented()||D.current&&x?.(!1)}),[x,p]),$=React.useCallback((e=>{if(d?.(e),e.isDefaultPrevented())return;!e.currentTarget.contains(e.relatedTarget??document.activeElement)&&D.current&&!T.current&&x?.(!0)}),[d,x]),F=React.useCallback((e=>{e.stopPropagation(),D.current&&x?.(!1)}),[x]),P=React.useCallback(((o,r)=>{a?.(o,r),r.isDefaultPrevented()||(t&&e?C({commentId:t,threadId:e,body:o.body,attachments:o.attachments}):e?w({threadId:e,body:o.body,attachments:o.attachments}):b({body:o.body,metadata:n??{},attachments:o.attachments}))}),[t,w,b,C,n,a,e]);return React__default.default.createElement(TooltipProvider,null,React__default.default.createElement(ComposerForm,{onComposerSubmit:P,className:classNames("lb-root lb-composer lb-composer-form",f),dir:O.dir,...v,ref:y,"data-collapsed":A?"":void 0,onFocus:k,onBlur:$,disabled:_,defaultAttachments:r,pasteFilesAsAttachments:h,preventUnsavedChanges:R},React__default.default.createElement(ComposerEditorContainer,{defaultValue:o,actions:u,overrides:c,isCollapsed:A,showAttachments:h,showAttribution:g,hasResolveMentionSuggestions:S,onEmptyChange:I,onEmojiPickerOpenChange:N,onEditorClick:F,autoFocus:m,disabled:_})))}));function createContextScope$1(e,t=[]){let n=[];const o=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const o=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:o}})),[n,o])}};return o.scopeName=e,[function(t,o){const r=React__namespace.createContext(o),a=n.length;function i(t){const{scope:n,children:o,...i}=t,s=n?.[e][a]||r,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:o})}return n=[...n,o],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||r,l=React__namespace.useContext(s);if(l)return l;if(void 0!==o)return o;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$1(o,...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 o=n.reduce(((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:o})),[o])}};return n.scopeName=t.scopeName,n}function createCollection(e){const t=e+"CollectionProvider",[n,o]=createContextScope$1(t),[r,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{const{scope:t,children:n}=e,o=React__default.default.useRef(null),a=React__default.default.useRef(new Map).current;return jsxRuntime.exports.jsx(r,{scope:t,itemMap:a,collectionRef:o,children:n})};i.displayName=t;const s=e+"CollectionSlot",l=React__default.default.forwardRef(((e,t)=>{const{scope:n,children:o}=e,r=useComposedRefs(t,a(s,n).collectionRef);return jsxRuntime.exports.jsx(Slot,{ref:r,children:o})}));l.displayName=s;const c=e+"CollectionItemSlot",u="data-radix-collection-item",d=React__default.default.forwardRef(((e,t)=>{const{scope:n,children:o,...r}=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,...r}),()=>{l.itemMap.delete(i)}))),jsxRuntime.exports.jsx(Slot,{[u]:"",ref:s,children:o})}));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])},o]}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 o=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const o=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:o}})),[n,o])}};return o.scopeName=e,[function(t,o){const r=React__namespace.createContext(o),a=n.length;function i(t){const{scope:n,children:o,...i}=t,s=n?.[e][a]||r,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:o})}return n=[...n,o],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||r,l=React__namespace.useContext(s);if(l)return l;if(void 0!==o)return o;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes(o,...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 o=n.reduce(((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:o})),[o])}};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:o,loop:r=!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),[_=null,h]=useControllableState$1({prop:i,defaultProp:s,onChange:l}),[g,v]=React__namespace.useState(!1),y=useCallbackRef$1(c),E=useCollection$1(n),b=React__namespace.useRef(!1),[w,C]=React__namespace.useState(0);return React__namespace.useEffect((()=>{const e=f.current;if(e)return e.addEventListener(ENTRY_FOCUS,y),()=>e.removeEventListener(ENTRY_FOCUS,y)}),[y]),jsxRuntime.exports.jsx(RovingFocusProvider,{scope:n,orientation:o,dir:m,loop:r,currentTabStopId:_,onItemFocus:React__namespace.useCallback((e=>h(e)),[h]),onItemShiftTab:React__namespace.useCallback((()=>v(!0)),[]),onFocusableItemAdd:React__namespace.useCallback((()=>C((e=>e+1))),[]),onFocusableItemRemove:React__namespace.useCallback((()=>C((e=>e-1))),[]),children:jsxRuntime.exports.jsx(Primitive.div,{tabIndex:g||0===w?-1:0,"data-orientation":o,...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=E().filter((e=>e.focusable));focusFirst$1([e.find((e=>e.active)),e.find((e=>e.id===_)),...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:o=!0,active:r=!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(o)return f(),()=>p()}),[o,f,p]),jsxRuntime.exports.jsx(Collection$1.ItemSlot,{scope:n,id:l,focusable:o,active:r,children:jsxRuntime.exports.jsx(Primitive.span,{tabIndex:u?0:-1,"data-orientation":c.orientation,...i,ref:t,onMouseDown:composeEventHandlers(e.onMouseDown,(e=>{o?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 o=n.indexOf(e.currentTarget);n=c.loop?wrapArray$1(n,o+1):n.slice(o+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 o=getDirectionAwareKey(e.key,n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return MAP_KEY_TO_FOCUS_INTENT[o]}function focusFirst$1(e,t=!1){const n=document.activeElement;for(const o of e){if(o===n)return;if(o.focus({preventScroll:t}),document.activeElement!==n)return}}function wrapArray$1(e,t){return e.map(((n,o)=>e[(t+o)%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:o,dir:r,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(r);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:o})})})};Menu.displayName=MENU_NAME;var ANCHOR_NAME="MenuAnchor",MenuAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e,r=usePopperScope(n);return jsxRuntime.exports.jsx(Anchor,{...r,...o,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:o,container:r}=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:r,children:o})})})};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:o=n.forceMount,...r}=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:o||a.open,children:jsxRuntime.exports.jsx(Collection.Slot,{scope:e.__scopeMenu,children:i.modal?jsxRuntime.exports.jsx(MenuRootContentModal,{...r,ref:t}):jsxRuntime.exports.jsx(MenuRootContentNonModal,{...r,ref:t})})})})})),MenuRootContentModal=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),o=React__namespace.useRef(null),r=useComposedRefs(t,o);return React__namespace.useEffect((()=>{const e=o.current;if(e)return hideOthers(e)}),[]),jsxRuntime.exports.jsx(MenuContentImpl,{...e,ref:r,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:o=!1,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:m,..._}=e,h=useMenuContext(CONTENT_NAME$1,n),g=useMenuRootContext(CONTENT_NAME$1,n),v=usePopperScope(n),y=useRovingFocusGroupScope(n),E=useCollection(n),[b,w]=React__namespace.useState(null),C=React__namespace.useRef(null),R=useComposedRefs(t,C,h.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"),x=React__namespace.useRef(0),I=m?ReactRemoveScroll:React__namespace.Fragment,N=m?{as:Slot,allowPinchZoom:!0}:void 0;React__namespace.useEffect((()=>()=>window.clearTimeout(S.current)),[]),useFocusGuards();const k=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=>{k(e)&&e.preventDefault()}),[k]),onItemLeave:React__namespace.useCallback((e=>{k(e)||(C.current?.focus(),w(null))}),[k]),onTriggerLeave:React__namespace.useCallback((e=>{k(e)&&e.preventDefault()}),[k]),pointerGraceTimerRef:T,onPointerGraceIntentChange:React__namespace.useCallback((e=>{O.current=e}),[]),children:jsxRuntime.exports.jsx(I,{...N,children:jsxRuntime.exports.jsx(FocusScope,{asChild:!0,trapped:r,onMountAutoFocus:composeEventHandlers(a,(e=>{e.preventDefault(),C.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,...y,dir:g.dir,orientation:"vertical",loop:o,currentTabStopId:b,onCurrentTabStopIdChange:w,onEntryFocus:composeEventHandlers(l,(e=>{g.isUsingKeyboardRef.current||e.preventDefault()})),preventScrollOnEntryFocus:!0,children:jsxRuntime.exports.jsx(Content$1,{role:"menu","aria-orientation":"vertical","data-state":getOpenState(h.open),"data-radix-menu-content":"",dir:g.dir,...v,..._,ref:R,style:{outline:"none",..._.style},onKeyDown:composeEventHandlers(_.onKeyDown,(e=>{const t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,o=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&o&&(e=>{const t=D.current+e,n=E().filter((e=>!e.disabled)),o=document.activeElement,r=n.find((e=>e.ref.current===o))?.textValue,a=getNextMatch(n.map((e=>e.textValue)),t,r),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 r=C.current;if(e.target!==r)return;if(!FIRST_LAST_KEYS.includes(e.key))return;e.preventDefault();const a=E().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=x.current!==e.clientX;if(e.currentTarget.contains(t)&&n){const t=e.clientX>x.current?"right":"left";A.current=t,x.current=e.clientX}})))})})})})})})}));MenuContent.displayName=CONTENT_NAME$1;var GROUP_NAME$1="MenuGroup",MenuGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e;return jsxRuntime.exports.jsx(Primitive.div,{role:"group",...o,ref:t})}));MenuGroup.displayName=GROUP_NAME$1;var LABEL_NAME$1="MenuLabel",MenuLabel=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e;return jsxRuntime.exports.jsx(Primitive.div,{...o,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:o,...r}=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,{...r,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=>o?.(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:o=!1,textValue:r,...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:o,textValue:r??f,children:jsxRuntime.exports.jsx(Item,{asChild:!0,...s,focusable:!o,children:jsxRuntime.exports.jsx(Primitive.div,{role:"menuitem","data-highlighted":u?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...a,ref:c,onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((e=>{if(o)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:o,...r}=e;return jsxRuntime.exports.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:n,children:jsxRuntime.exports.jsx(MenuItem,{role:"menuitemcheckbox","aria-checked":isIndeterminate(n)?"mixed":n,...r,ref:t,"data-state":getCheckedState(n),onSelect:composeEventHandlers(r.onSelect,(()=>o?.(!!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:o,...r}=e,a=useCallbackRef$1(o);return jsxRuntime.exports.jsx(RadioGroupProvider,{scope:e.__scopeMenu,value:n,onValueChange:a,children:jsxRuntime.exports.jsx(MenuGroup,{...r,ref:t})})}));MenuRadioGroup.displayName=RADIO_GROUP_NAME$1;var RADIO_ITEM_NAME$1="MenuRadioItem",MenuRadioItem=React__namespace.forwardRef(((e,t)=>{const{value:n,...o}=e,r=useRadioGroupContext(RADIO_ITEM_NAME$1,e.__scopeMenu),a=n===r.value;return jsxRuntime.exports.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:a,children:jsxRuntime.exports.jsx(MenuItem,{role:"menuitemradio","aria-checked":a,...o,ref:t,"data-state":getCheckedState(a),onSelect:composeEventHandlers(o.onSelect,(()=>r.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:o,...r}=e,a=useItemIndicatorContext(ITEM_INDICATOR_NAME,n);return jsxRuntime.exports.jsx(Presence,{present:o||isIndeterminate(a.checked)||!0===a.checked,children:jsxRuntime.exports.jsx(Primitive.span,{...r,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,...o}=e;return jsxRuntime.exports.jsx(Primitive.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})}));MenuSeparator.displayName=SEPARATOR_NAME$1;var ARROW_NAME$1="MenuArrow",MenuArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e,r=usePopperScope(n);return jsxRuntime.exports.jsx(Arrow,{...r,...o,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),o=useMenuRootContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),r=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:r.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":r.contentId,"data-state":getOpenState(n.open),...e,ref:composeRefs(t,r.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 o=n.content?.dataset.side,r="right"===o,i=r?-5:5,l=t[r?"left":"right"],c=t[r?"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:o}),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 r=""!==a.searchRef.current;e.disabled||r&&" "===t.key||SUB_OPEN_KEYS[o.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:o=n.forceMount,...r}=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:o||a.open,children:jsxRuntime.exports.jsx(Collection.Slot,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(MenuContentImpl,{id:s.contentId,"aria-labelledby":s.triggerId,...r,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,o)=>e[(t+o)%e.length]))}function getNextMatch(e,t,n){const o=t.length>1&&Array.from(t).every((e=>e===t[0]))?t[0]:t,r=n?e.indexOf(n):-1;let a=wrapArray(e,Math.max(r,0));1===o.length&&(a=a.filter((e=>e!==n)));const i=a.find((e=>e.toLowerCase().startsWith(o.toLowerCase())));return i!==n?i:void 0}function isPointInPolygon(e,t){const{x:n,y:o}=e;let r=!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>o!=c>o&&n<(l-i)*(o-s)/(c-s)+i&&(r=!r)}return r}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:o,open:r,defaultOpen:a,onOpenChange:i,modal:s=!0}=e,l=useMenuScope(t),c=React__namespace.useRef(null),[u=!1,d]=useControllableState$1({prop:r,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:o,modal:s,children:n})})};DropdownMenu.displayName=DROPDOWN_MENU_NAME;var TRIGGER_NAME="DropdownMenuTrigger",DropdownMenuTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,disabled:o=!1,...r}=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":o?"":void 0,disabled:o,...r,ref:composeRefs(t,a.triggerRef),onPointerDown:composeEventHandlers(e.onPointerDown,(e=>{o||0!==e.button||!1!==e.ctrlKey||(a.onOpenToggle(),a.open||e.preventDefault())})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{o||(["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,o=useMenuScope(t);return jsxRuntime.exports.jsx(Portal,{...o,...n})};DropdownMenuPortal.displayName=PORTAL_NAME;var CONTENT_NAME="DropdownMenuContent",DropdownMenuContent=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useDropdownMenuContext(CONTENT_NAME,n),a=useMenuScope(n),i=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(Content2$1,{id:r.contentId,"aria-labelledby":r.triggerId,...a,...o,ref:t,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,(e=>{i.current||r.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,o=2===t.button||n;r.modal&&!o||(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,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Group,{...r,...o,ref:t})}));DropdownMenuGroup.displayName=GROUP_NAME;var LABEL_NAME="DropdownMenuLabel",DropdownMenuLabel=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Label,{...r,...o,ref:t})}));DropdownMenuLabel.displayName=LABEL_NAME;var ITEM_NAME="DropdownMenuItem",DropdownMenuItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Item2,{...r,...o,ref:t})}));DropdownMenuItem.displayName=ITEM_NAME;var CHECKBOX_ITEM_NAME="DropdownMenuCheckboxItem",DropdownMenuCheckboxItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(CheckboxItem,{...r,...o,ref:t})}));DropdownMenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME;var RADIO_GROUP_NAME="DropdownMenuRadioGroup",DropdownMenuRadioGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(RadioGroup,{...r,...o,ref:t})}));DropdownMenuRadioGroup.displayName=RADIO_GROUP_NAME;var RADIO_ITEM_NAME="DropdownMenuRadioItem",DropdownMenuRadioItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(RadioItem,{...r,...o,ref:t})}));DropdownMenuRadioItem.displayName=RADIO_ITEM_NAME;var INDICATOR_NAME="DropdownMenuItemIndicator",DropdownMenuItemIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(ItemIndicator,{...r,...o,ref:t})}));DropdownMenuItemIndicator.displayName=INDICATOR_NAME;var SEPARATOR_NAME="DropdownMenuSeparator",DropdownMenuSeparator=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Separator,{...r,...o,ref:t})}));DropdownMenuSeparator.displayName=SEPARATOR_NAME;var ARROW_NAME="DropdownMenuArrow",DropdownMenuArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Arrow2,{...r,...o,ref:t})}));DropdownMenuArrow.displayName=ARROW_NAME;var SUB_TRIGGER_NAME="DropdownMenuSubTrigger",DropdownMenuSubTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(SubTrigger,{...r,...o,ref:t})}));DropdownMenuSubTrigger.displayName=SUB_TRIGGER_NAME;var SUB_CONTENT_NAME="DropdownMenuSubContent",DropdownMenuSubContent=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(SubContent,{...r,...o,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:o,onOpenChange:r,className:a,...i}){const s=useOverrides(),{portalContainer:l}=useLiveblocksUIConfig();return React__default.default.createElement(Root2,{defaultOpen:n,open:o,onOpenChange:r,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},o)=>React__default.default.createElement(DropdownMenuItem,{className:classNames("lb-dropdown-item",t),...n,ref:o},e))),List=React.forwardRef((({values:e,formatRemaining:t,truncate:n,locale:o,className:r,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],r=Array(t.length).fill(".");return listFormat(o).formatToParts(r).map((e=>"element"===e.type?t.shift():e.value))}),[u,o,n,e]);return React__default.default.createElement(l,{className:classNames("lb-list",r),...i,ref:s},d)})),REACTIONS_TRUNCATE=5;function CommentMention({userId:e,className:t,...n}){const o=useCurrentUserId();return React__default.default.createElement(CommentMention$1,{className:classNames("lb-comment-mention",t),"data-self":e===o?"":void 0,...n},MENTION_CHARACTER,React__default.default.createElement(User,{userId:e}))}function CommentLink({href:e,children:t,className:n,...o}){return React__default.default.createElement(CommentLink$1,{className:classNames("lb-comment-link",n),href:e,...o},t)}function CommentNonInteractiveLink({href:e,children:t,className:n,...o}){return React__default.default.createElement("span",{className:classNames("lb-comment-link",n),...o},t)}const CommentReactionButton=React.forwardRef((({reaction:e,overrides:t,className:n,...o},r)=>{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),...o,ref:r},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:o,...r},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:o,ref:a},React__default.default.createElement(CommentReactionButton,{"data-self":c?"":void 0,reaction:t,overrides:n,...r})))})),CommentNonInteractiveReaction=React.forwardRef((({reaction:e,overrides:t,...n},o)=>{const r=useCurrentUserId(),a=React.useMemo((()=>e.users.some((e=>e.id===r))),[r,e]);return React__default.default.createElement(CommentReactionButton,{disableable:!1,"data-self":a?"":void 0,reaction:e,overrides:t,...n,ref:o})}));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:o,...r}){const{url:a}=useAttachmentUrl(e.id),i=React.useCallback((n=>{if(!a)return;const o={attachment:e,url:a};t?.(o,n),n.isDefaultPrevented()||openAttachment(o)}),[e,t,a]);return React__default.default.createElement(MediaAttachment,{className:classNames("lb-comment-attachment",n),...r,attachment:e,overrides:o,onClick:a?i:void 0})}function CommentFileAttachment({attachment:e,onAttachmentClick:t,className:n,overrides:o,...r}){const{url:a}=useAttachmentUrl(e.id),i=React.useCallback((n=>{if(!a)return;const o={attachment:e,url:a};t?.(o,n),n.isDefaultPrevented()||openAttachment(o)}),[e,t,a]);return React__default.default.createElement(FileAttachment,{className:classNames("lb-comment-attachment",n),...r,attachment:e,overrides:o,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:o="hover",showReactions:r=!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)),y=React.useRef(null),E=useRefs(g,y),b=useCurrentUserId(),w=useDeleteComment(),C=useEditComment(),R=_useAddReaction(),S=useRemoveReaction(),D=useOverrides(d),[T,O]=React.useState(!1),[A,x]=React.useState(!1),[I,N]=React.useState(!1),[k,$]=React.useState(!1),{mediaAttachments:F,fileAttachments:P}=React.useMemo((()=>separateMediaAttachments(e.attachments)),[e.attachments]),M=React.useCallback((e=>{e.stopPropagation()}),[]),L=React.useCallback((()=>{O(!0)}),[]),B=React.useCallback((e=>{e.stopPropagation(),O(!1)}),[]),j=React.useCallback((({body:t,attachments:n},o)=>{c?.(e),o.preventDefault(),O(!1),C({commentId:e.id,threadId:e.threadId,body:t,attachments:n})}),[e,C,c]),U=React.useCallback((()=>{u?.(e),w({commentId:e.id,threadId:e.threadId})}),[e,w,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}):R({threadId:e.threadId,commentId:e.id,emoji:t})}),[R,e.id,e.reactions,e.threadId,S,b]);return React.useEffect((()=>{if(!("undefined"!=typeof window))return;window.location.hash.slice(1)===e.id&&x(!0)}),[]),n||e.body?React__default.default.createElement(TooltipProvider,null,v&&_&&React__default.default.createElement(AutoMarkReadThreadIdHandler,{commentRef:y,threadId:_}),React__default.default.createElement("div",{id:e.id,className:classNames("lb-root lb-comment",t&&"lb-comment:indent-content","hover"===o&&"lb-comment:show-actions-hover",(I||k)&&"lb-comment:action-open",f),"data-deleted":e.body?void 0:"","data-editing":T?"":void 0,"data-target":A?"":void 0,dir:D.dir,...h,ref:E},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))))),o&&!T&&React__default.default.createElement("div",{className:classNames("lb-comment-actions",m)},p??null,r&&React__default.default.createElement(EmojiPicker,{onEmojiSelect:H,onOpenChange:$},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:I,onOpenChange:N,align:"end",content:React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(DropdownItem,{onSelect:L,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:B},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&&(F.length>0||P.length>0)?React__default.default.createElement("div",{className:"lb-comment-attachments"},F.length>0?React__default.default.createElement("div",{className:"lb-attachments"},F.map((e=>React__default.default.createElement(CommentMediaAttachment,{key:e.id,attachment:e,overrides:d,onAttachmentClick:l})))):null,P.length>0?React__default.default.createElement("div",{className:"lb-attachments"},P.map((e=>React__default.default.createElement(CommentFileAttachment,{key:e.id,attachment:e,overrides:d,onAttachmentClick:l})))):null):null,r&&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 o=ABSOLUTE_URL_REGEX.test(e),r=new URL(e,o?void 0:PLACEHOLDER_BASE_URL);if(void 0!==t)for(const[e,n]of Object.entries(t))n&&r.searchParams.set(e,String(n));return r.hash||void 0===n||(r.hash=`#${n}`),o?r.href:r.href.replace(PLACEHOLDER_BASE_URL,"")}const INBOX_NOTIFICATION_THREAD_MAX_COMMENTS=3;function InboxNotificationComment({comment:e,showHeader:t=!0,showAttachments:n=!0,showReactions:o=!0,overrides:r,className:a,...i}){const s=useOverrides(r);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}}),o&&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:r,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:r}))))):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 o=e[n];if(o.userId!==t&&o.body){if(getMentionedIdsFromCommentBody(o.body).includes(t))return o}}}function getUserIdsFromComments(e){return Array.from(new Set(e.map((e=>e.userId))))}function generateInboxNotificationThreadContents(e,t,n){const o=t.comments.filter((t=>!!t.body&&(e.readAt?t.createdAt>e.readAt&&t.createdAt<=e.notifiedAt:t.createdAt<=e.notifiedAt)));if(0===o.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 r=findLastCommentWithMentionedId(o,n);if(r)return{type:"mention",unread:!0,comments:[r],userIds:[r.userId],date:r.createdAt};return{type:"comments",unread:!0,comments:o.slice(-INBOX_NOTIFICATION_THREAD_MAX_COMMENTS),userIds:getUserIdsFromComments(o),date:e.notifiedAt}}function Room({roomId:e,className:t,...n}){const{info:o,isLoading:r}=useRoomInfo(e),a=React.useMemo((()=>o?.name??e),[o?.name,e]);return React__default.default.createElement("span",{className:classNames("lb-name lb-room",t),"data-loading":r?"":void 0,...n},r?null:a)}const InboxNotificationLayout=React.forwardRef((({inboxNotification:e,children:t,aside:n,title:o,date:r,unread:a,markAsReadOnClick:i,onClick:s,href:l,showActions:c,overrides:u,components:d,className:f,asChild:p,...m},_)=>{const h=useOverrides(u),{Anchor:g}=useComponents(d),v=p?Slot:g,[y,E]=React.useState(!1),b=useMarkInboxNotificationAsRead(),w=useDeleteInboxNotification(),C=React.useCallback((t=>{s?.(t);const n=i??Boolean(l);a&&n&&b(e.id)}),[l,e.id,i,b,s,a]),R=React.useCallback((e=>{e.stopPropagation()}),[]),S=React.useCallback((e=>{e.preventDefault(),e.stopPropagation()}),[]),D=React.useCallback((e=>{e.preventDefault(),e.stopPropagation(),E((e=>!e))}),[]),T=React.useCallback((()=>{b(e.id)}),[e.id,b]),O=React.useCallback((()=>{w(e.id)}),[e.id,w]);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",y&&"lb-inbox-notification:action-open",f),dir:h.dir,"data-unread":a?"":void 0,"data-kind":e.kind,onClick:C,href:l,...m,ref:_},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"},o),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:h.locale,date:r,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:y,onOpenChange:E,align:"end",content:React__default.default.createElement(React__default.default.Fragment,null,a?React__default.default.createElement(DropdownItem,{onSelect:T,onClick:R},React__default.default.createElement(CheckIcon,{className:"lb-dropdown-item-icon"}),h.INBOX_NOTIFICATION_MARK_AS_READ):null,React__default.default.createElement(DropdownItem,{onSelect:O,onClick:R},React__default.default.createElement(DeleteIcon,{className:"lb-dropdown-item-icon"}),h.INBOX_NOTIFICATION_DELETE))},React__default.default.createElement(Tooltip,{content:h.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":h.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:o=!0,showAttachments:r=!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:r,showReactions:o,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:r,showReactions:o,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,r,o,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:_,title:h,content:g,date:v,unread:y}=p;return React__default.default.createElement(InboxNotificationLayout,{inboxNotification:e,aside:_,title:h,date:v,unread:y,overrides:i,href:m,showActions:a,markAsReadOnClick:!1,...s,ref:l},g)})),InboxNotificationTextMention=React.forwardRef((({inboxNotification:e,showActions:t="hover",showRoomName:n=!0,overrides:o,...r},a)=>{const i=useOverrides(o),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:o,showActions:t,...r,ref:a})})),InboxNotificationCustom=React.forwardRef((({inboxNotification:e,showActions:t="hover",title:n,aside:o,children:r,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:o,title:n,date:e.notifiedAt,unread:l,overrides:a,showActions:t,...i,ref:s},r)}));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},o)=>{switch(e.kind){case"thread":{const r=t?.thread??InboxNotificationThread;return React__default.default.createElement(r,{inboxNotification:e,...n,ref:o})}case"textMention":{const r=t?.textMention??InboxNotificationTextMention;return React__default.default.createElement(r,{inboxNotification:e,...n,ref:o})}default:{const r=t?.[e.kind];return r?React__default.default.createElement(r,{inboxNotification:e,...n,ref:o}):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,...o},r)=>React__default.default.createElement("ol",{className:classNames("lb-root lb-inbox-notification-list",n),...o,ref:r},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 o=e[n];if(o&&t(o))return n;n--}return-1}const Thread=React.forwardRef((({thread:e,indentCommentContent:t=!0,showActions:n="hover",showDeletedComments:o,showResolveAction:r=!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:_,overrides:h,className:g,...v},y)=>{const E=useMarkThreadAsResolved(),b=useMarkThreadAsUnresolved(),w=useOverrides(h),C=React.useMemo((()=>o?0:e.comments.findIndex((e=>e.body))),[o,e.comments]),R=React.useMemo((()=>o?e.comments.length-1:findLastIndex(e.comments,(e=>e.body))),[o,e.comments]),{status:S,unreadSince:D}=useThreadSubscription(e.id),T=React.useMemo((()=>{if("subscribed"!==S)return;if(null===D)return C;const t=e.comments.findIndex((e=>(!!o||e.body)&&e.createdAt>D));return t>=0&&t<e.comments.length?t:void 0}),[C,o,S,e.comments,D]),[O,A]=React.useState(),x=void 0===O?T:O;React.useEffect((()=>{T&&A((e=>Math.min(e??1/0,T)))}),[T]);const I=React.useCallback((e=>{e.stopPropagation()}),[]),N=React.useCallback((t=>{l?.(t),t?E(e.id):b(e.id)}),[E,b,l,e.id]),k=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:w.dir,...v,ref:y},React__default.default.createElement("div",{className:"lb-thread-comments"},e.comments.map(((i,l)=>{const u=l===C,d=void 0!==T&&l>=T,_=React__default.default.createElement(Comment,{key:i.id,className:"lb-thread-comment","data-unread":d?"":void 0,comment:i,indentContent:t,showDeleted:o,showActions:n,showReactions:a,showAttachments:s,onCommentEdit:c,onCommentDelete:k,onAuthorClick:f,onMentionClick:p,onAttachmentClick:m,autoMarkReadThreadId:l===R&&d?e.id:void 0,additionalActionsClassName:u?"lb-thread-actions":void 0,additionalActions:u&&r?React__default.default.createElement(Tooltip,{content:e.resolved?w.THREAD_UNRESOLVE:w.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:I,"aria-label":e.resolved?w.THREAD_UNRESOLVE:w.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===x&&x!==C&&x<=R?React__default.default.createElement(React.Fragment,{key:i.id},React__default.default.createElement("div",{className:"lb-thread-new-indicator","aria-label":w.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"}),w.THREAD_NEW_INDICATOR)),_):_}))),i&&React__default.default.createElement(Composer,{className:"lb-thread-composer",threadId:e.id,defaultCollapsed:"collapsed"===i||void 0,showAttachments:s,onComposerSubmit:_,overrides:{COMPOSER_PLACEHOLDER:w.THREAD_COMPOSER_PLACEHOLDER,COMPOSER_SEND:w.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,o=arguments.length,r=new Array(o),a=0;a<o;a++)r[a]=arguments[a];null===(t=(n=this.props).onReset)||void 0===t||t.call(n,{args:r,reason:"imperative-api"}),this.setState(initialState)}}componentDidCatch(e,t){var n,o;null===(n=(o=this.props).onError)||void 0===n||n.call(o,e,t)}componentDidUpdate(e,t){const{didCatch:n}=this.state,{resetKeys:o}=this.props;var r,a;n&&null!==t.error&&hasArrayChanged(e.resetKeys,o)&&(null===(r=(a=this.props).onReset)||void 0===r||r.call(a,{next:o,prev:e.resetKeys,reason:"keys"}),this.setState(initialState))}render(){const{children:e,fallbackRender:t,FallbackComponent:n,fallback:o}=this.props,{didCatch:r,error:a}=this.state;let i=e;if(r){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===o)throw a;i=o}}return React.createElement(ErrorBoundaryContext.Provider,{value:{didCatch:r,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,o=e.roomId;return React__default.default.createElement(_RoomProvider,{id:o},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$2={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$2={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 o=n.call(e,t||"default");if("object"!==_typeof$1(o))return o;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 o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey$1(o.key),o)}}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,o=new Array(t);n<t;n++)o[n]=e[n];return o}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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o){return o&&!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),o=1;o<t;o++)n[o-1]=arguments[o];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,o){e=n,t=o}));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 o(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function r(){return!e||"string"==typeof e}for(var a="string"!=typeof t?[].concat(t):t.split(".");a.length>1;){if(r())return{};var i=o(a.shift());!e[i]&&n&&(e[i]=new n),e=Object.prototype.hasOwnProperty.call(e,i)?e[i]:{}}return r()?{}:{obj:e,k:o(a.shift())}}function setPath(e,t,n){var o=getLastOfPath(e,t,Object);o.obj[o.k]=n}function pushPath(e,t,n,o){var r=getLastOfPath(e,t,Object),a=r.obj,i=r.k;a[i]=a[i]||[],o&&(a[i]=a[i].concat(n)),o||a[i].push(n)}function getPath(e,t){var n=getLastOfPath(e,t),o=n.obj,r=n.k;if(o)return o[r]}function getPathWithDefaults(e,t,n){var o=getPath(e,n);return void 0!==o?o:getPath(t,n)}function deepExtend(e,t,n){for(var o in t)"__proto__"!==o&&"constructor"!==o&&(o in e?"string"==typeof e[o]||e[o]instanceof String||"string"==typeof t[o]||t[o]instanceof String?n&&(e[o]=t[o]):deepExtend(e[o],t[o],n):e[o]=t[o]);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 o=chars.filter((function(e){return t.indexOf(e)<0&&n.indexOf(e)<0}));if(0===o.length)return!0;var r=new RegExp("(".concat(o.map((function(e){return"?"===e?"\\?":e})).join("|"),")")),a=!r.test(e);if(!a){var i=e.indexOf(n);i>0&&!r.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 o=t.split(n),r=e,a=0;a<o.length;++a){if(!r)return;if("string"==typeof r[o[a]]&&a+1<o.length)return;if(void 0===r[o[a]]){for(var i=2,s=o.slice(a,a+i).join(n),l=r[s];void 0===l&&o.length>a+i;)i++,l=r[s=o.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=o.slice(a+i).join(n);return c?deepFind(l,c,n):void 0}r=r[o[a]]}return r}}function ownKeys$5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.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 o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return _classCallCheck$1(this,n),o=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(o)),o.data=e||{},o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),void 0===o.options.ignoreJSONStructure&&(o.options.ignoreJSONStructure=!0),o}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 o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,a=void 0!==o.ignoreJSONStructure?o.ignoreJSONStructure:this.options.ignoreJSONStructure,i=[e,t];n&&"string"!=typeof n&&(i=i.concat(n)),n&&"string"==typeof n&&(i=i.concat(r?n.split(r):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,r)}},{key:"addResource",value:function(e,t,n,o){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,i=[e,t];n&&(i=i.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(o=t,t=(i=e.split("."))[1]),this.addNamespaces(t),setPath(this.data,i,o),r.silent||this.emit("added",e,t,n,o)}},{key:"addResources",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var r in n)"string"!=typeof n[r]&&"[object Array]"!==Object.prototype.toString.apply(n[r])||this.addResource(e,t,r,n[r],{silent:!0});o.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,o,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},i=[e,t];e.indexOf(".")>-1&&(o=n,n=t,t=(i=e.split("."))[1]),this.addNamespaces(t);var s=getPath(this.data,i)||{};o?deepExtend(s,n,r):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,o,r){var a=this;return e.forEach((function(e){a.processors[e]&&(t=a.processors[e].process(t,n,o,r))})),t}};function ownKeys$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.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 o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _classCallCheck$1(this,n),o=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(o)),copy(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,_assertThisInitialized(o)),o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o.logger=baseLogger.create("translator"),o}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 o=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,r=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,o));if(a&&!i){var s=e.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:e,namespaces:r};var l=e.split(n);(n!==o||n===o&&this.options.ns.indexOf(l[0])>-1)&&(r=l.shift()),e=l.join(o)}return"string"==typeof r&&(r=[r]),{key:e,namespaces:r}}},{key:"translate",value:function(e,t,o){var r=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),_=m&&m.res,h=m&&m.usedKey||l,g=m&&m.exactUsedKey||l,v=Object.prototype.toString.apply(_),y=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,E=!this.i18nFormat||this.i18nFormat.handleAsObject;if(E&&_&&("string"!=typeof _&&"boolean"!=typeof _&&"number"!=typeof _)&&["[object Number]","[object Function]","[object RegExp]"].indexOf(v)<0&&("string"!=typeof y||"[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 w="[object Array]"===v,C=w?[]:{},R=w?g:h;for(var S in _)if(Object.prototype.hasOwnProperty.call(_,S)){var D="".concat(R).concat(i).concat(S);C[S]=this.translate(D,_objectSpread$4(_objectSpread$4({},t),{joinArrays:!1,ns:c})),C[S]===D&&(C[S]=_[S])}_=C}}else if(E&&"string"==typeof y&&"[object Array]"===v)(_=_.join(y))&&(_=this.extendTranslation(_,e,t,o));else{var T=!1,O=!1,A=void 0!==t.count&&"string"!=typeof t.count,x=n.hasDefaultValue(t),I=A?this.pluralResolver.getSuffix(d,t.count,t):"",N=t["defaultValue".concat(I)]||t.defaultValue;!this.isValidLookup(_)&&x&&(T=!0,_=N),this.isValidLookup(_)||(O=!0,_=l);var k=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&O?void 0:_,$=x&&N!==_&&this.options.updateMissing;if(O||T||$){if(this.logger.log($?"updateKey":"missingKey",d,u,l,$?N:_),i){var F=this.resolve(l,_objectSpread$4(_objectSpread$4({},t),{},{keySeparator:!1}));F&&F.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 P=[],M=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&M&&M[0])for(var L=0;L<M.length;L++)P.push(M[L]);else"all"===this.options.saveMissingTo?P=this.languageUtils.toResolveHierarchy(t.lng||this.language):P.push(t.lng||this.language);var B=function(e,n,o){var a=x&&o!==_?o:k;r.options.missingKeyHandler?r.options.missingKeyHandler(e,u,n,a,$,t):r.backendConnector&&r.backendConnector.saveMissing&&r.backendConnector.saveMissing(e,u,n,a,$,t),r.emit("missingKey",e,u,n,_)};this.options.saveMissing&&(this.options.saveMissingPlurals&&A?P.forEach((function(e){r.pluralResolver.getSuffixes(e,t).forEach((function(n){B([e],l+n,t["defaultValue".concat(n)]||N)}))})):B(P,l,N))}_=this.extendTranslation(_,e,t,m,o),O&&_===l&&this.options.appendNamespaceToMissingKey&&(_="".concat(u,":").concat(l)),(O||T)&&this.options.parseMissingKeyHandler&&(_="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?"".concat(u,":").concat(l):l,T?_:void 0):this.options.parseMissingKeyHandler(_))}return a?(m.res=_,m):_}},{key:"extendTranslation",value:function(e,t,n,o,r){var a=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),n),o.usedLng,o.usedNS,o.usedKey,{resolved:o});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&&o&&o.res&&(n.lng=o.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,(function(){for(var e=arguments.length,o=new Array(e),i=0;i<e;i++)o[i]=arguments[i];return r&&r[0]===o[0]&&!n.context?(a.logger.warn("It seems you are nesting recursively key: ".concat(o[0]," in key: ").concat(t[0])),null):a.translate.apply(a,o.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:o},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,o,r,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)){r=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 _="".concat(c).concat(i.options.contextSeparator).concat(s.context);l.push(_),d&&(l.push(_+u),f&&l.push(_+m))}}for(;a=l.pop();)i.isValidLookup(t)||(o=a,t=i.getResource(n,e,a,s))}})))}))}})),{res:t,usedKey:n,exactUsedKey:o,usedLng:r,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 o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,o):this.resourceStore.getResource(e,t,n,o)}}],[{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 o=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(o)||(t=o)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var o=n.getLanguagePartFromCode(e);if(n.isSupportedCode(o))return t=o;t=n.options.supportedLngs.find((function(e){return e===o?e:e.indexOf("-")<0&&o.indexOf("-")<0?void 0:0===e.indexOf(o)?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,o=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],a=function(e){e&&(n.isSupportedCode(e)?r.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)),o.forEach((function(e){r.indexOf(e)<0&&a(n.formatLanguageCode(e))})),r}}]),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]:{},o=this.getRule(e,n);return o?this.shouldUseIntlApi()?o.resolvedOptions().pluralCategories.sort((function(e,t){return suffixesOrder[e]-suffixesOrder[t]})).map((function(e){return"".concat(t.options.prepend).concat(e)})):o.numbers.map((function(o){return t.getSuffix(e,o,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=this.getRule(e,n);return o?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(o.select(t)):this.getSuffixRetroCompatible(o,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var n=this,o=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),r=e.numbers[o];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var a=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):a():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?a():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=getPathWithDefaults(e,t,n);return!a&&r&&"string"==typeof n&&void 0===(a=deepFind(e,n,o))&&(a=deepFind(t,n,o)),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,o){var r,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 r=deepFindWithDefaults(t,l,e,s.options.keySeparator,s.options.ignoreJSONStructure);return s.alwaysFormat?s.format(r,void 0,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},o),t),{},{interpolationkey:e})):r}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({},o),t),{},{interpolationkey:i}))};this.resetRegExp();var d=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,f=o&&o.interpolation&&void 0!==o.interpolation.skipOnVariables?o.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;r=t.regex.exec(e);){var n=r[1].trim();if(void 0===(a=u(n)))if("function"==typeof d){var l=d(e,r,o);a="string"==typeof l?l:""}else if(o&&Object.prototype.hasOwnProperty.call(o,n))a="";else{if(f){a=r[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(r[0],c),f?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=r[0].length):t.regex.lastIndex=0,++i>=s.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,o,r,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 o=e.split(new RegExp("".concat(n,"[ ]*{"))),a="{".concat(o[1]);e=o[0];var i=(a=this.interpolate(a,r)).match(/'/g),s=a.match(/"/g);(i&&i.length%2==0&&!s||s.length%2!=0)&&(a=a.replace(/'/g,'"'));try{r=JSON.parse(a),t&&(r=_objectSpread$3(_objectSpread$3({},t),r))}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 r.defaultValue,e}for(;n=this.nestingRegexp.exec(e);){var l=[];(r=(r=_objectSpread$3({},i)).replace&&"string"!=typeof r.replace?r.replace:r).applyPostProcessor=!1,delete r.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((o=t(s.call(this,n[1].trim(),r),r))&&n[0]===e&&"string"!=typeof o)return o;"string"!=typeof o&&(o=makeString(o)),o||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),o=""),c&&(o=l.reduce((function(e,t){return a.format(e,t,i.lng,_objectSpread$3(_objectSpread$3({},i),{},{interpolationkey:n[1].trim()}))}),o.trim())),e=e.replace(n[0],o),this.regexp.lastIndex=0}return e}}]),e}();function ownKeys$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=e.split("(");t=o[0].toLowerCase().trim();var r=o[1].substring(0,o[1].length-1);if("currency"===t&&r.indexOf(":")<0)n.currency||(n.currency=r.trim());else if("relativetime"===t&&r.indexOf(":")<0)n.range||(n.range=r.trim());else{r.split(";").forEach((function(e){if(e){var t=_toArray(e.split(":")),o=t[0],r=t.slice(1).join(":").trim().replace(/^'+|'+$/g,"");n[o.trim()]||(n[o.trim()]=r),"false"===r&&(n[o.trim()]=!1),"true"===r&&(n[o.trim()]=!0),isNaN(r)||(n[o.trim()]=parseInt(r,10))}}))}}return{formatName:t,formatOptions:n}}function createCachedFormatter(e){var t={};return function(n,o,r){var a=o+JSON.stringify(r),i=t[a];return i||(i=e(o,r),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 o=this,r=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(o.formats[i]){var l=e;try{var c=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},u=c.locale||c.lng||r.locale||r.lng||n;l=o.formats[i](e,u,_objectSpread$2(_objectSpread$2(_objectSpread$2({},s),r),c))}catch(e){o.logger.warn(e)}return l}return o.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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.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,o,r){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=o,a.services=r,a.languageUtils=r.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(r,i.backend,i),a}return _createClass$1(n,[{key:"queueLoad",value:function(e,t,n,o){var r=this,a={},i={},s={},l={};return e.forEach((function(e){var o=!0;t.forEach((function(t){var s="".concat(e,"|").concat(t);!n.reload&&r.store.hasResourceBundle(e,t)?r.state[s]=2:r.state[s]<0||(1===r.state[s]?void 0===i[s]&&(i[s]=!0):(r.state[s]=1,o=!1,void 0===i[s]&&(i[s]=!0),void 0===a[s]&&(a[s]=!0),void 0===l[t]&&(l[t]=!0)))})),o||(s[e]=!0)})),(Object.keys(a).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(a),pending:Object.keys(i),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,n){var o=e.split("|"),r=o[0],a=o[1];t&&this.emit("failedLoading",r,a,t),n&&this.store.addResourceBundle(r,a,n),this.state[e]=t?-1:2;var i={};this.queue.forEach((function(n){pushPath(n.loaded,[r],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 o=this,r=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:r,wait:a,callback:i});else{this.readingCalls++;var s=function(s,l){if(o.readingCalls--,o.waitingReads.length>0){var c=o.waitingReads.shift();o.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}s&&l&&r<o.maxRetries?setTimeout((function(){o.read.call(o,e,t,n,r+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,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=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."),r&&r();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var a=this.queueLoad(e,t,o,r);if(!a.toLoad.length)return a.pending.length||r(),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]:"",o=e.split("|"),r=o[0],a=o[1];this.read(r,a,"read",void 0,void 0,(function(o,i){o&&t.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(r," failed"),o),!o&&i&&t.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(r),i),t.loaded(e,o,i)}))}},{key:"saveMissing",value:function(e,t,n,o,r){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:r}),l=this.backend.create.bind(this.backend);if(l.length<6)try{var c;(c=5===l.length?l(e,t,n,o,s):l(e,t,n,o))&&"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,o,i,s)}e&&e[0]&&this.store.addResource(e[0],t,n,o)}}}]),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,o){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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.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,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(_classCallCheck$1(this,n),e=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(e)),e.options=transformOptions(o),e.services={},e.logger=baseLogger,e.modules={external:[]},bindMemberFunctions(_assertThisInitialized(e)),r&&!e.isInitialized&&!o.isClone){if(!e.options.initImmediate)return e.init(o,r),_possibleConstructorReturn(e,_assertThisInitialized(e));setTimeout((function(){e.init(o,r)}),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 o=get();function r(e){return e?"function"==typeof e?new e:e:null}if(this.options=_objectSpread$7(_objectSpread$7(_objectSpread$7({},o),this.options),transformOptions(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=_objectSpread$7(_objectSpread$7({},o.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(r(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!==o.interpolation.format||(s.formatter=r(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(r(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",(function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];e.emit.apply(e,[t].concat(o))})),this.modules.languageDetector&&(s.languageDetector=r(this.modules.languageDetector),s.languageDetector.init&&s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=r(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,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];e.emit.apply(e,[t].concat(o))})),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,o){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(o),n(t,o)};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,o="string"==typeof e?e:this.language;if("function"==typeof e&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return n();var r=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){r.indexOf(e)<0&&r.push(e)}))};if(o)a(o);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(r,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 o=defer();return e||(e=this.languages),t||(t=this.options.ns),n||(n=noop),this.services.backendConnector.reload(e,t,(function(e){o.resolve(),n(e)})),o}},{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 o=defer();this.emit("languageChanging",e);var r=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||r(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?(r(a),n.translator.changeLanguage(a),n.isLanguageChangingTo=void 0,n.emit("languageChanged",a),n.logger.log("languageChanged",a)):n.isLanguageChangingTo=void 0,o.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()),o}},{key:"getFixedT",value:function(e,t,n){var o=this,r=function e(t,r){var a;if("object"!==_typeof$1(r)){for(var i=arguments.length,s=new Array(i>2?i-2:0),l=2;l<i;l++)s[l-2]=arguments[l];a=o.options.overloadTranslationOptionHandler([t,r].concat(s))}else a=_objectSpread$7({},r);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=o.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,o.t(c,a)};return"string"==typeof e?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}},{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 o=n.lng||this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===o.toLowerCase())return!0;var i=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===o||2===o};if(n.precheck){var s=n.precheck(this,i);if(void 0!==s)return s}return!!this.hasResourceBundle(o,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!i(o,e)||r&&!i(a,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,o=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){o.resolve(),t&&t(e)})),o):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=defer();"string"==typeof e&&(e=[e]);var o=this.options.preload||[],r=e.filter((function(e){return o.indexOf(e)<0}));return r.length?(this.options.preload=o.concat(r),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]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,r=_objectSpread$7(_objectSpread$7(_objectSpread$7({},this.options),t),{isClone:!0}),a=new n(r);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),o=1;o<t;o++)n[o-1]=arguments[o];a.emit.apply(a,[e].concat(n))})),a.init(r,o),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 o=n.call(e,t||"default");if("object"!==_typeof(o))return o;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),o=0;o<t;o++)n[o]=arguments[o];"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,o){"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,o))}function oldI18nextHasLoadedNamespace(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=t.languages[0],r=!!t.options&&t.options.fallbackLng,a=t.languages[t.languages.length-1];if("cimode"===o.toLowerCase())return!0;var i=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===o||2===o};return!(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!i(t.isLanguageChangingTo,e))&&(!!t.hasResourceBundle(o,e)||(!(t.services.backendConnector.backend&&(!t.options.resources||t.options.partialBundledLanguages))||!(!i(o,e)||r&&!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,o){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!o(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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}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 o,r,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=(o=a.call(n)).done)&&(s.push(o.value),s.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw r}}return s}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=React.useContext(I18nContext)||{},r=o.i18n,a=o.defaultNS,i=n||r||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 _=_slicedToArray(React.useState(m),2),h=_[0],g=_[1],v=f.join();t.lng&&(v="".concat(t.lng).concat(v));var y=usePrevious(v),E=React.useRef(!0);React.useEffect((function(){var e=c.bindI18n,n=c.bindI18nStore;function o(){E.current&&g(m)}return E.current=!0,p||u||(t.lng?loadLanguages(i,t.lng,f,(function(){E.current&&g(m)})):loadNamespaces(i,f,(function(){E.current&&g(m)}))),p&&y&&y!==v&&E.current&&g(m),e&&i&&i.on(e,o),n&&i&&i.store.on(n,o),function(){E.current=!1,e&&i&&e.split(" ").forEach((function(e){return i.off(e,o)})),n&&i&&n.split(" ").forEach((function(e){return i.store.off(e,o)}))}}),[i,v]);var b=React.useRef(!0);React.useEffect((function(){E.current&&!b.current&&g(m),b.current=!1}),[i,d]);var w=[h,i,p];if(w.t=h,w.i18n=i,w.ready=p,p)return w;if(!p&&!u)return w;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"},o=getAuthorization();o&&(n.Authorization=o),t.headers=Object.assign({},n,t.headers),t.credentials="include";const r=await fetch(`${getRootUrl()}${e}`,t);if(401===r.status)throw new Error(401);const a=await r.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 o=`tab_${e}_display`,r=sessionStorage.getItem(o);let a="grid";return!0===t&&(a="split"),window.innerWidth<=768?"grid":r||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:o})=>`/app/${t}/${n}/grid/${o}`,getObjectDetailPath(e){const{formFactor:t,appId:n,objectName:o,recordId:r,listViewName:a,_templateType:i}=e;return"JavaScript"===i?`/app/${n}/${o}/view/${r}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${n}/${o}/view/${r}?side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({formFactor:e,appId:t,masterObjectName:n,masterRecordId:o,objectName:r,foreignKey:a})=>`/app/${t}/${n}/${o}/${r}/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,o)=>{"all"===o?(t=e,t.name||(t.name=o)):"lookup"===o&&(n=e,n.name||(n.name=o))})),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+"",o=e.color+"";if(o&&"undefined"!=o){const r="#"===o.charAt(0)?o:"#"+o,a="background:"+r+";color:"+getContrastColor(r)+";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 o="";t&&t.isLookup&&(o="target='_blank'");let r=e.name;return"lookup"==e.type||"master_detail"==e.type?!e.reference_to&&(e.optionsFunction||e._optionsFunction||e.options)?e.isTableField||(r=`\${${e.name}__label}`):r=`\${_display.${e.name}.label}`:r=`\${_display.${e.name} || ${e.name}}`,t.isRelated&&window.innerWidth>=768?`<a href="${n}" ${o} onclick="return false;">\${${r} | raw}</a>`:`<a href="${n}" ${o}>\${${r} | 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 o="";t&&t.isLookup&&(o="target='_blank'");const r=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&&(o="target='_blank'"),!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${o}><%=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}`),!r){const e=Router.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:`${i}`,recordId:`${s}`});a=window.innerWidth>=768?`<a href="${e}" ${o} onclick="return false;">${a}</a>`:`<a href="${e}" ${o}>${a}</a>`}n=a}else{let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${o}><%=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 o=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="${o}"><%=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 o=[];0!=n&&(n=!0);let r=["_id"];e.datasource&&"default"!==e.datasource&&"meteor"!==e.datasource||r.push("space");let a=[],i=[];i=_$1__namespace.isArray(t)?t:_$1__namespace.values(t);for(const e of i)e.name&&(e.expand?o.push(e):e.name.indexOf(".")<0?(!n||"lookup"!=e.type&&"master_detail"!=e.type?r.push(e.alias?`${e.alias}:${e.name}`:e.name):(r.push(`${e.name}`),a.push(`${e.name}`)),_$1.includes(["time","date","datetime","boolean","number","currency"],e.type)&&r.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],r.push(objectFieldName),a.push(objectFieldName)));a=_$1__namespace.uniq(a),r=_$1__namespace.uniq(r);let s="";return o.length>0&&_$1__namespace.each(o,(function(e){s+=`${e.expandInfo.fieldName}__expand{${e.expandInfo.displayName}}`})),a.length>0?`${r.join(",")},${s},_display:_ui{${a.join(",")}}`:_$1.trimEnd(`${r.join(" ")},${s}`,",")}async function getFindQuery(e,t,n,o){let r=o.limit||10,a=`(top: ${r})`;t&&(a=`(filters:["_id", "=", "${t}"], top: ${r})`);let i="data";o&&(o.alias&&(i=o.alias),o.filters&&(a=`(filters:${o.filters})`),o.queryOptions&&(a=`(${o.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===o.count?"":`,count:${e.name}__count(filters:{__filters})`,u=`${await getFieldsTemplate(e,n,o.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:o="",recordId:r="",formFactor:a="LARGE"}){const i=`/api/pageSchema/${e}?app=${n}&objectApiName=${o}&recordId=${r}&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}),o=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:[o],className:"steedos-record-detail-drawer app-popover"},preventDefault:!0}]}}}const getAmisFileReadonlySchema=async(e,t={})=>{const n=e.type,{appId:o,formFactor:r}=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:o,objectName:"cfs_files_filerecord",formFactor:r})}}}: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",frontend_menu_new_object$1="New Object",frontend_menu_view_object$1="View Object",frontend_menu_new_micro_page$1="New Micro Page",frontend_menu_edit_micro_page$1="Edit Micro Page",frontend_menu_new_url$1="New URL link",frontend_menu_edit_url$1="Edit URL link",frontend_menu_add_existing_tabs$1="Add existing Tabs",frontend_menu_edit_tab$1="Edit Tab",frontend_menu_delete_tab$1="Delete Tab",frontend_menu_new_group$1="New Group",frontend_menu_edit_group$1="Edit Group",frontend_menu_delete_group$1="Delete Group",frontend_menu_move_group$1="Move Group",frontend_menu_dialog_move_group$1="Move to another Group",frontend_menu_edit_app$1="Edit App",frontend_menu_dialog_name_placeholder$1="Unique identifier",frontend_menu_tabs_group_name_label$1="Name",frontend_menu_tabs_group_name_placeholder$1="Group Name",frontend_menu_tabs_group_default_open_label$1="Whether to expand by default",frontend_button_delete_confirm_text$1="Are you sure you want to delete it?",frontend_app_launcher_button_new_app$1="+ New App",frontend_app_launcher_dialog_new_app_title$1="New App",frontend_app_launcher_dialog_new_app_code_label$1="App ID",frontend_app_launcher_dialog_new_app_name_label$1="Label",frontend_app_launcher_dialog_new_app_icon_label$1="Icon",frontend_crud_toolbar_quick_search_placeholder$1="Quick Search",frontend_crud_toolbar_quick_search_tooltip_prefix$1="Searchable fields:",frontend_lookup_left_tree_search_organizations$1="Search for organizations",frontend_workflow_instances_applicant_name_prefix$1="Applicant name:",frontend_workflow_instance_submit_date_prefix$1="Submission date:",frontend_workflow_approval_judge_returned$1="Returned",frontend_workflow_approval_judge_terminated$1="Cancelled",frontend_workflow_approval_judge_pending$1="In Progress",frontend_workflow_approval_judge_approved$1="Approved",frontend_workflow_approval_judge_rejected$1="Rejected",frontend_workflow_approval_judge_finished$1="Completed",frontend_workflow_approval_judge_reassigned$1="Reassigned",frontend_workflow_approval_judge_inhand$1="In Progress",frontend_workflow_approval_judge_relocated$1="Relocate",frontend_workflow_approval_judge_readed$1="Read",frontend_workflow_approval_suggestion_readed$1="Read",frontend_workflow_approval_suggestion_completed$1="Done",frontend_workflow_approval_suggestion_agree$1="Agree",frontend_workflow_approval_suggestion_other$1="Select opinions",frontend_workflow_suggestion_placeholder$1="Please fill in your comments.",frontend_workflow_instance_button_sign$1="Sign",frontend_workflow_approval_history$1="Approval History",frontend_workflow_approval_history_read$1="Read",frontend_workflow_approval_history_unprocessed$1="Unprocessed",frontend_workflow_attachment$1="Attachment",frontend_workflow_attachment_upload$1="Upload",frontend_workflow_related_file$1="Related File",frontend_workflow_judge_option_approved$1="Approved",frontend_workflow_judge_option_rejected$1="Rejected",frontend_workflow_judge_option_readed$1="Readed",frontend_workflow_next_step$1="Next Step",frontend_workflow_next_users$1="To",frontend_workflow_submit_validate_error_title$1="Submission failed",frontend_workflow_submit_validate_error_msg$1="Please fill in the required fields",frontend_workflow_related_records_link_title$1="Related Records",en_us$1={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_menu_new_object:frontend_menu_new_object$1,frontend_menu_view_object:frontend_menu_view_object$1,frontend_menu_new_micro_page:frontend_menu_new_micro_page$1,frontend_menu_edit_micro_page:frontend_menu_edit_micro_page$1,frontend_menu_new_url:frontend_menu_new_url$1,frontend_menu_edit_url:frontend_menu_edit_url$1,frontend_menu_add_existing_tabs:frontend_menu_add_existing_tabs$1,frontend_menu_edit_tab:frontend_menu_edit_tab$1,frontend_menu_delete_tab:frontend_menu_delete_tab$1,frontend_menu_new_group:frontend_menu_new_group$1,frontend_menu_edit_group:frontend_menu_edit_group$1,frontend_menu_delete_group:frontend_menu_delete_group$1,frontend_menu_move_group:frontend_menu_move_group$1,frontend_menu_dialog_move_group:frontend_menu_dialog_move_group$1,frontend_menu_edit_app:frontend_menu_edit_app$1,frontend_menu_dialog_name_placeholder:frontend_menu_dialog_name_placeholder$1,frontend_menu_tabs_group_name_label:frontend_menu_tabs_group_name_label$1,frontend_menu_tabs_group_name_placeholder:frontend_menu_tabs_group_name_placeholder$1,frontend_menu_tabs_group_default_open_label:frontend_menu_tabs_group_default_open_label$1,frontend_button_delete_confirm_text:frontend_button_delete_confirm_text$1,frontend_app_launcher_button_new_app:frontend_app_launcher_button_new_app$1,frontend_app_launcher_dialog_new_app_title:frontend_app_launcher_dialog_new_app_title$1,frontend_app_launcher_dialog_new_app_code_label:frontend_app_launcher_dialog_new_app_code_label$1,frontend_app_launcher_dialog_new_app_name_label:frontend_app_launcher_dialog_new_app_name_label$1,frontend_app_launcher_dialog_new_app_icon_label:frontend_app_launcher_dialog_new_app_icon_label$1,frontend_crud_toolbar_quick_search_placeholder:frontend_crud_toolbar_quick_search_placeholder$1,frontend_crud_toolbar_quick_search_tooltip_prefix:frontend_crud_toolbar_quick_search_tooltip_prefix$1,frontend_lookup_left_tree_search_organizations:frontend_lookup_left_tree_search_organizations$1,frontend_workflow_instances_applicant_name_prefix:frontend_workflow_instances_applicant_name_prefix$1,frontend_workflow_instance_submit_date_prefix:frontend_workflow_instance_submit_date_prefix$1,frontend_workflow_approval_judge_returned:frontend_workflow_approval_judge_returned$1,frontend_workflow_approval_judge_terminated:frontend_workflow_approval_judge_terminated$1,frontend_workflow_approval_judge_pending:frontend_workflow_approval_judge_pending$1,frontend_workflow_approval_judge_approved:frontend_workflow_approval_judge_approved$1,frontend_workflow_approval_judge_rejected:frontend_workflow_approval_judge_rejected$1,frontend_workflow_approval_judge_finished:frontend_workflow_approval_judge_finished$1,frontend_workflow_approval_judge_reassigned:frontend_workflow_approval_judge_reassigned$1,frontend_workflow_approval_judge_inhand:frontend_workflow_approval_judge_inhand$1,frontend_workflow_approval_judge_relocated:frontend_workflow_approval_judge_relocated$1,frontend_workflow_approval_judge_readed:frontend_workflow_approval_judge_readed$1,frontend_workflow_approval_suggestion_readed:frontend_workflow_approval_suggestion_readed$1,frontend_workflow_approval_suggestion_completed:frontend_workflow_approval_suggestion_completed$1,frontend_workflow_approval_suggestion_agree:frontend_workflow_approval_suggestion_agree$1,frontend_workflow_approval_suggestion_other:frontend_workflow_approval_suggestion_other$1,frontend_workflow_suggestion_placeholder:frontend_workflow_suggestion_placeholder$1,frontend_workflow_instance_button_sign:frontend_workflow_instance_button_sign$1,frontend_workflow_approval_history:frontend_workflow_approval_history$1,frontend_workflow_approval_history_read:frontend_workflow_approval_history_read$1,frontend_workflow_approval_history_unprocessed:frontend_workflow_approval_history_unprocessed$1,frontend_workflow_attachment:frontend_workflow_attachment$1,frontend_workflow_attachment_upload:frontend_workflow_attachment_upload$1,frontend_workflow_related_file:frontend_workflow_related_file$1,frontend_workflow_judge_option_approved:frontend_workflow_judge_option_approved$1,frontend_workflow_judge_option_rejected:frontend_workflow_judge_option_rejected$1,frontend_workflow_judge_option_readed:frontend_workflow_judge_option_readed$1,frontend_workflow_next_step:frontend_workflow_next_step$1,frontend_workflow_next_users:frontend_workflow_next_users$1,frontend_workflow_submit_validate_error_title:frontend_workflow_submit_validate_error_title$1,frontend_workflow_submit_validate_error_msg:frontend_workflow_submit_validate_error_msg$1,frontend_workflow_related_records_link_title:frontend_workflow_related_records_link_title$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="不支持分组嵌套",frontend_menu_new_object="新建对象",frontend_menu_view_object="查看对象",frontend_menu_new_micro_page="新建微页面",frontend_menu_edit_micro_page="编辑微页面",frontend_menu_new_url="新建外部链接",frontend_menu_edit_url="编辑外部链接",frontend_menu_add_existing_tabs="添加现有选项卡",frontend_menu_edit_tab="编辑选项卡",frontend_menu_delete_tab="删除选项卡",frontend_menu_new_group="新建分组",frontend_menu_edit_group="编辑分组",frontend_menu_delete_group="删除分组",frontend_menu_move_group="移动分组",frontend_menu_dialog_move_group="移动到指定分组",frontend_menu_edit_app="编辑应用",frontend_menu_dialog_name_placeholder="唯一标识",frontend_menu_tabs_group_name_label="名称",frontend_menu_tabs_group_name_placeholder="分组名称",frontend_menu_tabs_group_default_open_label="是否默认展开",frontend_button_delete_confirm_text="确定要删除吗?",frontend_app_launcher_button_new_app="+ 新建应用",frontend_app_launcher_dialog_new_app_title="新建应用",frontend_app_launcher_dialog_new_app_code_label="应用唯一标识",frontend_app_launcher_dialog_new_app_name_label="显示名称",frontend_app_launcher_dialog_new_app_icon_label="图标",frontend_crud_toolbar_quick_search_placeholder="快捷搜索",frontend_crud_toolbar_quick_search_tooltip_prefix="可搜索字段:",frontend_lookup_left_tree_search_organizations="查找部门",frontend_workflow_instances_applicant_name_prefix="提交人:",frontend_workflow_instance_submit_date_prefix="提交日期:",frontend_workflow_approval_judge_returned="已退回",frontend_workflow_approval_judge_terminated="被取回",frontend_workflow_approval_judge_pending="审核中",frontend_workflow_approval_judge_approved="已核准",frontend_workflow_approval_judge_rejected="已驳回",frontend_workflow_approval_judge_finished="已完成",frontend_workflow_approval_judge_reassigned="转签核",frontend_workflow_approval_judge_inhand="处理中",frontend_workflow_approval_judge_relocated="重定位",frontend_workflow_approval_judge_readed="已阅",frontend_workflow_approval_suggestion_readed="已阅",frontend_workflow_approval_suggestion_completed="已办",frontend_workflow_approval_suggestion_agree="同意",frontend_workflow_approval_suggestion_other="其他常用意见",frontend_workflow_suggestion_placeholder="请填写意见",frontend_workflow_instance_button_sign="签批",frontend_workflow_approval_history="签批历程",frontend_workflow_approval_history_read="已读",frontend_workflow_approval_history_unprocessed="未处理",frontend_workflow_attachment="附件",frontend_workflow_attachment_upload="上传",frontend_workflow_related_file="相关文件",frontend_workflow_judge_option_approved="核准",frontend_workflow_judge_option_rejected="驳回",frontend_workflow_judge_option_readed="已阅",frontend_workflow_next_step="下一步",frontend_workflow_next_users="处理人",frontend_workflow_submit_validate_error_title="提交失败",frontend_workflow_submit_validate_error_msg="请填写必填字段",frontend_workflow_related_records_link_title="相关台账信息",zh_cn$1={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,frontend_menu_new_object:frontend_menu_new_object,frontend_menu_view_object:frontend_menu_view_object,frontend_menu_new_micro_page:frontend_menu_new_micro_page,frontend_menu_edit_micro_page:frontend_menu_edit_micro_page,frontend_menu_new_url:frontend_menu_new_url,frontend_menu_edit_url:frontend_menu_edit_url,frontend_menu_add_existing_tabs:frontend_menu_add_existing_tabs,frontend_menu_edit_tab:frontend_menu_edit_tab,frontend_menu_delete_tab:frontend_menu_delete_tab,frontend_menu_new_group:frontend_menu_new_group,frontend_menu_edit_group:frontend_menu_edit_group,frontend_menu_delete_group:frontend_menu_delete_group,frontend_menu_move_group:frontend_menu_move_group,frontend_menu_dialog_move_group:frontend_menu_dialog_move_group,frontend_menu_edit_app:frontend_menu_edit_app,frontend_menu_dialog_name_placeholder:frontend_menu_dialog_name_placeholder,frontend_menu_tabs_group_name_label:frontend_menu_tabs_group_name_label,frontend_menu_tabs_group_name_placeholder:frontend_menu_tabs_group_name_placeholder,frontend_menu_tabs_group_default_open_label:frontend_menu_tabs_group_default_open_label,frontend_button_delete_confirm_text:frontend_button_delete_confirm_text,frontend_app_launcher_button_new_app:frontend_app_launcher_button_new_app,frontend_app_launcher_dialog_new_app_title:frontend_app_launcher_dialog_new_app_title,frontend_app_launcher_dialog_new_app_code_label:frontend_app_launcher_dialog_new_app_code_label,frontend_app_launcher_dialog_new_app_name_label:frontend_app_launcher_dialog_new_app_name_label,frontend_app_launcher_dialog_new_app_icon_label:frontend_app_launcher_dialog_new_app_icon_label,frontend_crud_toolbar_quick_search_placeholder:frontend_crud_toolbar_quick_search_placeholder,frontend_crud_toolbar_quick_search_tooltip_prefix:frontend_crud_toolbar_quick_search_tooltip_prefix,frontend_lookup_left_tree_search_organizations:frontend_lookup_left_tree_search_organizations,frontend_workflow_instances_applicant_name_prefix:frontend_workflow_instances_applicant_name_prefix,frontend_workflow_instance_submit_date_prefix:frontend_workflow_instance_submit_date_prefix,frontend_workflow_approval_judge_returned:frontend_workflow_approval_judge_returned,frontend_workflow_approval_judge_terminated:frontend_workflow_approval_judge_terminated,frontend_workflow_approval_judge_pending:frontend_workflow_approval_judge_pending,frontend_workflow_approval_judge_approved:frontend_workflow_approval_judge_approved,frontend_workflow_approval_judge_rejected:frontend_workflow_approval_judge_rejected,frontend_workflow_approval_judge_finished:frontend_workflow_approval_judge_finished,frontend_workflow_approval_judge_reassigned:frontend_workflow_approval_judge_reassigned,frontend_workflow_approval_judge_inhand:frontend_workflow_approval_judge_inhand,frontend_workflow_approval_judge_relocated:frontend_workflow_approval_judge_relocated,frontend_workflow_approval_judge_readed:frontend_workflow_approval_judge_readed,frontend_workflow_approval_suggestion_readed:frontend_workflow_approval_suggestion_readed,frontend_workflow_approval_suggestion_completed:frontend_workflow_approval_suggestion_completed,frontend_workflow_approval_suggestion_agree:frontend_workflow_approval_suggestion_agree,frontend_workflow_approval_suggestion_other:frontend_workflow_approval_suggestion_other,frontend_workflow_suggestion_placeholder:frontend_workflow_suggestion_placeholder,frontend_workflow_instance_button_sign:frontend_workflow_instance_button_sign,frontend_workflow_approval_history:frontend_workflow_approval_history,frontend_workflow_approval_history_read:frontend_workflow_approval_history_read,frontend_workflow_approval_history_unprocessed:frontend_workflow_approval_history_unprocessed,frontend_workflow_attachment:frontend_workflow_attachment,frontend_workflow_attachment_upload:frontend_workflow_attachment_upload,frontend_workflow_related_file:frontend_workflow_related_file,frontend_workflow_judge_option_approved:frontend_workflow_judge_option_approved,frontend_workflow_judge_option_rejected:frontend_workflow_judge_option_rejected,frontend_workflow_judge_option_readed:frontend_workflow_judge_option_readed,frontend_workflow_next_step:frontend_workflow_next_step,frontend_workflow_next_users:frontend_workflow_next_users,frontend_workflow_submit_validate_error_title:frontend_workflow_submit_validate_error_title,frontend_workflow_submit_validate_error_msg:frontend_workflow_submit_validate_error_msg,frontend_workflow_related_records_link_title:frontend_workflow_related_records_link_title};const resources={en:{translation:en_us$1},"zh-CN":{translation:zh_cn$1}},getUserLanguage$1=()=>{var e=Builder.settings.context?.user?.language||window.navigator.language;return("en"===e||e.startsWith("en-"))&&(e="en"),e};var locale$1="zh-CN";async function getQuickEditSchema(e,t,n){let o=e.fields[t.name],r=!1;window.amisRequire&&window.amisRequire("amis")?r=window.amisRequire("amis").version[0]>=3&&window.amisRequire("amis").version[2]>=2:window.Amis&&(r=window.Amis.version[0]>=3&&window.Amis.version[2]>=2);const a=n.objectName+"_"+o.name+"_quickEdit";var i={body:[],id:a,className:"steedos-table-quickEdit"};if("avatar"!=o.type&&"image"!=o.type&&"file"!=o.type&&r){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.${o.name} = event.data._display.${o.name};\n doAction({actionType: 'setValue', "args": {"value": selectedItem._display},componentId: "${n.objectName}" + "_display_" + selectedItem._index});\n doAction({actionType: 'setValue', "args": {"value": event.data.${o.name}},componentId: "${n.objectName+"_"+o.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.${o.name}},componentId: "${n.objectName+"_"+o.name+"_"}" + event.data._index});\n }\n `,expression:"${!form_validate_result.error}"},{actionType:"closeDialog",expression:"${!form_validate_result.error}"}]}};i.onEvent=e}if(o.disabled)i=!1;else{var s=Object.assign({},_$1__namespace.omit(n,"buttons"),{defaults:Object.assign({},n.defaults,{formSchema:i})}),l=await convertSFieldToAmisField(o,!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(o.type){case"lookup":case"master_detail":let t=i.body[0].labelField||"label",n=i.body[0].valueField||"value";c=o.multiple?`\n const preData = _.cloneDeep(event.data.__super.${o.name});\n if(preData && event.data.${o.name}.length < preData.length){\n let deletedIndex;\n preData.forEach(function(item,index){\n if(_.indexOf(event.data.${o.name}, item) == -1) _display["${o.name}"].splice(index, 1);\n })\n }else{\n _display["${o.name}"] = [];\n event.data.value.forEach(function(val,index){\n const item = _.find(event.data.selectedItems, { ${n}: val });\n _display["${o.name}"].push(\n {\n "label": item.${t},\n "value": item[event.data.uiSchema.idFieldName],\n "objectName": "${o.reference_to}"\n }\n )\n })\n }\n \n `:`\n if(event.data.value){\n _display["${o.name}"] = {\n "label": event.data.selectedItems.${t},\n "value": event.data.selectedItems[event.data.uiSchema.idFieldName],\n "objectName": "${o.reference_to}"\n }\n }else{\n _display["${o.name}"] = {}\n }\n `,i.body[0].onEvent.change=e(c);break;case"select":c=`\n _display["${o.name}"] = event.data.selectedItems.label;\n `,i.body[0].onEvent.change=e(c);break;case"percent":c=`\n if(event.data.value){\n _display["${o.name}"] = event.data.value.toFixed(${o.scale}) + '%';\n } else {\n _display["${o.name}"] = event.data.value;\n }\n \n `,i.body[0].onEvent.change=e(c);break;case"time":c=`\n _display["${o.name}"] = moment(event.data.value).utc().format('HH:mm');\n `,i.body[0].onEvent.change=e(c);break;case"date":c=`\n _display["${o.name}"] = moment(event.data.value).utc().format('YYYY-MM-DD');\n `,i.body[0].onEvent.change=e(c);break;case"datetime":c=`\n _display["${o.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["${o.name}"] = event.data.value?"√":"";\n `,i.body[0].onEvent.change=e(c);break;case"number":case"currency":c=`\n _display["${o.name}"] = event.data.value && event.data.value.toFixed(${o.scale});\n `,i.body[0].onEvent.change=e(c);break;case"file":var u="";o.multiple?(c=`\n _display["${o.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["${o.name}"], function(file){return file.url == event.data.item.url});\n `):(c=` \n _display["${o.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["${o.name}"].url == event.data.item.url){\n _display["${o.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/${o.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"!=o.type&&"image"!=o.type&&"file"!=o.type&&r&&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"!=o.type||r||(i=!1),"file"==o.type&&o.multiple&&(i=!1),"location"==o.type&&(i=!1),"color"==o.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 o=await getPage({type:"record",appId:t.appId,objectName:n,formFactor:t.formFactor}),r=o?Object.assign({},o.schema,{recordId:`\${${t.idFieldName}}`,data:{...o.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||(r.objectApiName=e.reference_to,r.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:[r],className:"steedos-record-detail-drawer app-popover",id:"u:fc5f055afa8c"},preventDefault:!0}]}}}async function getTableColumns(e,t,n){const o=[];n.isLookup||n.isInputTable||n.enable_tree||o.push({name:"_index",type:"text",width:32,placeholder:""});const r=n.permissions?.allowEdit&&!n.isLookup&&0!=n.enable_inline_edit;for(const a of t){if(a.hidden||a.extra)continue;const t=r?await getQuickEditSchema(e,a,n):r;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 o=!1;o=n.isRelated&&(a.is_name||a.name===n.labelFieldName),window.innerWidth>=768&&o&&(s.onEvent=await getColumnItemOnClick(a,n))}}s&&(t&&(s.quickEdit=t,s.quickEditEnabledOn="${is_system !== true}"),s.id=`${n.objectName}_${a.name}_\${_index}`,o.push(s))}if(!n.isLookup&&!n.isInputTable&&!_$1__namespace.some(o,{name:n.labelFieldName})){const e=Router.getObjectDetailPath({...n,formFactor:n.formFactor,appId:"${appId}",objectName:n.objectName||"${objectName}",recordId:`\${${n.idFieldName}}`});o[0].type="tpl",o[0].tpl=`<a href="${e}">\${${o[0].name}}</a>`}return o}function getMobileLines(e){let t=[],n=[],o=!1,r=!0,a="",i="flex items-center justify-between mb-1";return e.forEach((function(e){var s;o&&t.length<3&&(t.push({type:"wrapper",body:n,size:"none",className:i}),n=[]),r?(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?(r=!0,o=!0):(r=!r,o=r)})),n.length&&t.length<3&&t.push({type:"wrapper",body:n,size:"none",className:i}),t}async function getMobileTableColumns(e,t){const n=[];let o={},r=[];for(const n of e){let e="";n.is_name||n.name===t.labelFieldName?(o=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||r.push({field:n,tpl:e})}const a=getNameTplUrl(o,t),i=getMobileLines(r);let s={name:o.name,label:"split"==t.displayAs?"":o.label,sortable:o.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,o=t?.labelFieldName||"name",r=[];e.forEach((function(e){delete e.quickEdit,delete e.width,e.name===o?n=e:"_index"!==e.name&&r.push(e)}));let a={header:{title:n.tpl},body:r,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:o,hiddenColumnOperation:r}=n;const a=n.defaults,i=a&&a.listSchema||{};let s=[],l="SMALL"===n.formFactor||["split"].indexOf(n.displayAs)>-1;if(o&&(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:!!o,labelTpl:`\${${n.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1,...getDefaultParams$1(n)}}if(!o&&!r){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:!!o,labelTpl:`\${${n.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1,...c,...getDefaultParams$1(n)}}function getScriptForAddUrlPrefixForImgFields(e,t){let n=[],o={};return e.forEach((e=>{_$1__namespace.includes(["image","avatar"],e.type)&&(n.push(e.name),o[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(o)};\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 o of e){const e=await getFieldTpl(o,t);let r="text";e&&(r="tpl"),o.hidden||o.extra||n.push({name:o.name,label:o.label,sortable:o.sortable,width:o.width,type:r,tpl:e,toggled:o.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&&(window.steedosI18next=instance,locale$1=getUserLanguage$1()),instance.use(initReactI18next).init({resources:resources,lng:locale$1,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,o=!!t.auto_open_filter,r="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 = ${o};\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:r,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),o=[{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:o}]}},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:o=!1,keywordsSearchBoxName:r="__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&&!o&&(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["${r}"] = event.data["${r}"];\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:instance.t("frontend_crud_toolbar_quick_search_tooltip_prefix")+a.join(","),placement:"bottom",tooltipTheme:"dark",trigger:"click",className:"SMALL"!==n?"mr-1":"",visible:!!a.length,body:[{type:"search-box",name:r,placeholder:instance.t("frontend_crud_toolbar_quick_search_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:o=!1,hiddenCount:r=!1,headerToolbarItems:a,filterVisible:i=!0,isLookup:s=!1,keywordsSearchBoxName:l}={}){let c,u;window.innerWidth,r||(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,o=n.isLookup,r=[{type:"pagination",maxButtons:10,showPageInput:!1}];return t&&o?r:[{type:"switch-per-page",visibleOn:"${count >= 20}"},...r]}}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 o=e[0]+" "+(e[1]||"");o=n>0?","+o:o,t+=o}else{let o=e.field_name+" "+e.order;o=n>0?","+o:o,t+=o}})),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 o=null;try{if(UISchemaFunction);else{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;o=await fetchAPI(t,{method:"get"})}if(!o&&n)return await new Promise((e=>setTimeout(e,3e3))),getUISchema(e,t,!1);if(!o&&0==n)return;formatUISchemaCache(e,o)}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 o=null;try{const r=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(o=Steedos.authRequest(r,{type:"GET",async:!1}),!o&&n)return wait(2e3),getUISchemaSync$1(e,t,!1);if(!o&&0==n)return;formatUISchemaCache(e,o)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}async function getListSchema(e,t,n,o={}){const r=await getUISchema(t);if(!r)return{};const a=_$1.find(r.list_views,((e,t)=>(n||(n=t),t===n||e._id===n)));if(!a)return{uiSchema:r};if(a.enable_amis_schema&&a.amis_schema){return{uiSchema:r,isCustomAmisSchema:!0,amisSchema:_$1.isString(a.amis_schema)?JSON.parse(a.amis_schema):a.amis_schema}}let i=getListViewColumns(a,o.formFactor),s=getListViewSort(a),l=getListViewFilter(a),c=a&&a._filters;if("calendar"===a.type){return{uiSchema:r,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:c,sort:s,...a.options}}}const u=o.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})),o.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:r,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:i,extraColumns:a.extra_columns,filters:l,filtersFunction:c,sort:s,ctx:o,requestAdaptor:o.requestAdaptor||a.requestAdaptor,adaptor:o.adaptor||a.adaptor,headerToolbarItems:o.headerToolbarItems,filterVisible:o.filterVisible,rowClassNameExpr:o.rowClassNameExpr,crud:o.crud||a.crud,crudDataFilter:o.crudDataFilter||a.crudDataFilter,onCrudDataFilter:o.onCrudDataFilter}}}async function getSource(e,t){const n=t.objectName;let o=[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],r=o.filter((function(e){return"children"!==e.name})),a=!e.multiple&&e.auto_fill_mapping;a&&a.length&&a.forEach((function(e){"children"!==e.from&&o.push({name:e.from}),r.push({name:e.from})}));const i=await getFindQuery({name:n},null,o,{expand:!1,alias:"options",filters:"{__filters}"});i.query=i.query.replace(/,count\:.+/,"}");const s=await getFindQuery({name:n},null,r,{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 o=[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],r=!e.multiple&&e.auto_fill_mapping;r&&r.length&&r.forEach((function(e){"children"!==e.from&&o.push({name:e.from})}));const a=await getFindQuery({name:"{__object_name}"},null,o,{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 o={type:getAmisStaticFieldType("tree-select",t)};if(t)o.tpl=await getLookupTpl(e,n);else{const t=await getUISchema(n.objectName);n.sort=getRefListViewSort(t),Object.assign(o,{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(o,{joinValues:!1}),"boolean"!=typeof o.searchable&&(o.searchable=!0);const r=e.onEvent;r&&(o.onEvent=r)}return o}"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 o=null,r=e.reference_to_field;return r||(r=t.idFieldName||"_id"),o="_id"===r?{name:"_id",label:"ID",type:"text",toggled:!1}:t.fields[r]||{name:r},{objectName:n,valueField:o,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:instance.t("frontend_lookup_left_tree_search_organizations")},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 o=await getReferenceTo(e);if(!o)return;const r=await getUISchema(o.objectName);n.idFieldName=r.idFieldName,n.objectName=r.name;const a=!1!==e.show_left_filter;let i=[];const s=[];let l=[];const c=window.innerWidth<768;let u=getLookupListView(r),d=u&&u.name;u&&u.columns?(_$1__namespace.each(u.columns,(function(e){_$1__namespace.isString(e)&&r.fields[e]?l.push(r.fields[e]):_$1__namespace.isObject(e)&&r.fields[e.field]&&l.push(Object.assign({},r.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(r.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(r.fields[e.from])})),_$1__namespace.each(r.fields,(function(e){isFieldQuickSearchable(e,r.NAME_FIELD_KEY)&&s.push(e.name)}));const p={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField};_$1__namespace.each(i,(e=>{e.hidden||(p[e.name]=e)}));let m=getListViewFilter(u),_=u&&u._filters,h="";u&&(h=getListViewSort(u));const g=await getApi(r,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__${r.name}`;const y=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 : "${h}";\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 = [["${o.valueField.name}", "=", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [["${o.valueField.name}", "=", fieldValue]];\n }\n }\n\n let filterFormValues = {};\n if (selfData.op !== 'loadOptions'){\n filterFormValues = ${_$1__namespace.isObject(y)?JSON.stringify(y):'"'+y+'"'} || {};\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"===o?.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 = ${_};\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 = ${r.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 = ${r.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, ["${o.labelField.name}", "${o.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(r.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 E=500;r.paging&&!1===r.paging.enabled&&(E=1e3);let b=null;{let t=r.NAME_FIELD_KEY||"name";"organizations"===r.name&&(t="name"),b=await getTableSchema$1(r,i,{labelFieldName:t,top:E,isLookup:!0,enable_tree:r.enable_tree,...n}),b.affixHeader=!1,b.headerToolbar=getObjectHeaderToolbar(r,l,n.formFactor,{isLookup:!0,keywordsSearchBoxName:v}),"space_users"===o.objectName&&"user"===e.reference_to_field&&a&&(b.headerToolbar.push(getLookupSapceUserTreeSchema(c)),b.className=b.className||" steedos-select-user");const s=r.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(r,{appId:n.appId,objectName:r.name,formFactor:n.formFactor});e.align="right",b.headerToolbar.splice(b.headerToolbar.length-1,0,e)}b.footerToolbar=r.enable_tree?[]:getObjectFooterToolbar(r,n.formFactor,{isLookup:!0}),!1!==n.filterVisible&&(b.filter=await getObjectFilter(r,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:r.name,uiSchema:r,listName:d,isLookup:!0,__lookupField:{name:e.name,reference_to:r.name,reference_to_field:e.reference_to_field,filters:e.filters,filtersFunction:e.filtersFunction,_filtersFunction:e._filtersFunction,inFilterForm:n.inFilterForm,listviewFilter:m,listviewFiltersFunction:_}}),b.onEvent||(b.onEvent={}),b.onEvent[`@data.changed.${r.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"===o.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 w={type:getAmisStaticFieldType("picker",t),className:n.className||"",modalTitle:instance.t("frontend_form_please_select")+" "+r.label,labelField:o.labelField.name,valueField:o.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&&(w.multiple=!0,w.extractValue=!0),t&&(w.tpl=await getLookupTpl(e,n)),w}async function lookupToAmisSelect(e,t,n){let o=await getReferenceTo(e);const r=window.innerWidth<=768,a=o&&o.valueField?.name||"_id";let i,s;const l=o&&await getUISchema(o.objectName);if(o){let t=[Object.assign({},o.labelField,{alias:"label"}),Object.assign({},o.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:o.objectName},null,t,{expand:!1,alias:"defaultValueOptions",filters:"{__options_filters}",count:!1}),i=await getApi({name:o.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 = [["${o?.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"===o?.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 `,o&&o.labelField.name,o&&o.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 r&&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,o){const r=await getFindQuery(e,t,n,o);return{method:"post",url:getApi$2(),data:r,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getAutoFill(e,t){let n=e.auto_fill_mapping;if(n&&n.length){let o={};return e.multiple?n.forEach((function(e){_$1__namespace.includes(["lookup","master_detail","select"],t.fields[e.from].type)?o[e.to]=`\${items | pick:${e.from}}`:o[e.to]=`\${items | pick:${e.from} | join}`})):n.forEach((function(e){o[e.to]=`\${${e.from}}`})),o}}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 o=await getReferenceTo(e);if(!o)return await lookupToAmisSelect(e,t,n);if("space_users"===o.objectName&&"user"===e.reference_to_field&&(n=Object.assign({},n,{onlyDisplayLookLabel:!0})).idsDependOn)return await lookupToAmisIdsPicker(e,t,n);const r=await getUISchema(o.objectName);let a,i=_$1__namespace.isBoolean(e.enable_enhanced_lookup)?e.enable_enhanced_lookup:r.enable_enhanced_lookup;getComparableAmisVersion()>=3.6&&!i&&r.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):r.enable_tree?await lookupToAmisTreeSelect(e,t,Object.assign({},n,{labelField:o.labelField?.name||"name",valueField:o.valueField?.name||"_id",objectName:o.objectName})):await lookupToAmisSelect(e,t,n);let s=r.pages&&r.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,r);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 o=await getReferenceTo(e);if(!o)return;const r=await getUISchema(o.objectName),{idsDependOn:a}=n,i={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField},s=[o.labelField],l=await getApi(r,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(r),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 = [["${o.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${o.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(["${o.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(r,s,{labelFieldName:r.NAME_FIELD_KEY,top:1e3,isLookup:!0,...n}),d.affixHeader=!1);const f={type:getAmisStaticFieldType("picker",t),labelField:o.labelField.name,valueField:o.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),o=_$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=o,n}function getGridFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=_$1__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=o,n}function getTabledFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=_$1__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=o,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 o=window.innerWidth<=768;if(_$1__namespace.includes(OMIT_FIELDS,e.name)&&1!=n.showSystemFields)return;const r={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}";o&&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,r);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,o)=>{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 o=[t,n];if(window.coordtransform)if("bd09"===l.toLowerCase()){const e=window.coordtransform.bd09togcj02(t,n);o=window.coordtransform.gcj02towgs84(e[0],e[1])}else"gcj02"===l.toLowerCase()&&(o=window.coordtransform.gcj02towgs84(t,n));return e.wgs84={type:"Point",coordinates:o},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 o of e.subFields){const r=o.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,""),i=await convertSFieldToAmisField(Object.assign({},o,{name:r,isTableField:!0}),t,n);if(i){delete i.name,delete i.label;const e={name:r,label:o.label,quickEdit:!t&&i};["lookup","boolean","toggle"].indexOf(o.type)>-1&&(e.type=i.type,e.tpl=i.tpl),a.columns.push(Object.assign({},e,o.amis,{name:r}))}}}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 o of e.subFields){let r=o.name.replace(`${e.name}.$.`,"").replace(`${e.name}.`,"");"grid"===o.type?o=await getGridFieldSubFields(o,n.__formFields):"table"===o.type?o=await getTabledFieldSubFields(o,n.__formFields):t&&(r=`${e.name}.${r}`);const i=await convertSFieldToAmisField(Object.assign({},o,{name:r}),t,n);i&&(delete i.name,delete i.label,i.className=i.className.replace("border-b",""),a.items.push(Object.assign({},i,{label:o.label},o.amis,{name:r})))}}}if(!_$1__namespace.isEmpty(a)){const o=a.className;e.is_wide||"group"===a.type?a.className=o?"col-span-2 m-0 "+o:"col-span-2 m-0":a.className=o?"m-0 "+o:"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(r.required)&&r.required.startsWith("{{")&&(r.requiredOn=`${r.required.substring(2,r.required.length-2).replace(/formData./g,"data.")}`,delete r.required),"group"===a.type?(a.body[0]=Object.assign({},r,a.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),a):(i="steedos-field"==a.type?Object.assign({},r,a,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},{name:r.name}):Object.assign({},r,a,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:r.name}),t&&"file"==e.type&&(i.name=""),i)}}async function getFieldSearchable(e,t,n){n||(n={});let o=e;"grid"===o.type?o=await getGridFieldSubFields(e,t):"object"===e.type&&(o=await getObjectFieldSubFields(e,t));let r="__searchable__";if(o.name.indexOf(".")<0){let e=_$1.cloneDeep(o);_$1.includes(["textarea","html","code","autonumber"],o.type)&&(e.type="text"),_$1.includes(["formula","summary"],o.type)&&(e.type=o.data_type,e.precision=o.precision,e.scale=o.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,r=`${r}between__`),"date"===e.type&&(e.type="input-date-range",e.is_wide=!0,r=`${r}between__`),"datetime"===e.type&&(e.type="input-datetime-range",e.is_wide=!0,r=`${r}between__`),"time"===e.type&&(e.type="input-time-range",e.is_wide=!0,r=`${r}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:r,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)}"undefined"!=typeof window&&(window.getFieldSearchable=getFieldSearchable),"undefined"!=typeof window&&(window.isFieldTypeSearchable=isFieldTypeSearchable);var asc$1="Asc",cancel$1="Cancel",clear$1="Clear",add$1="New",confirm$1="Confirm",deleteConfirm$1="Are your sure to delete?",deleteFailed$1="Delete failed",desc$1="Desc",fetchFailed$1="Fetch api failed",link$1="Link",loading$1="Loading",networkError$1="Network error or missing CORS configuration",noResult$1="No Result",reset$1="Reset",saveFailed$1="Save failed",saveSuccess$1="Saved successfully",search$1="Search",searchHistory$1="Search History",searchResult$1="Search result",sort$1="Sort",stop$1="Stop",validateFailed$1="Validate failed",reload$1="Reload",rotate$1="Rotate",TimeNow$1="Now",en_us={"Action.countDown":"Wait for ${timeLeft}s","Alert.info":"System Info","App.home":"Home","App.navigation":"Navigation",asc:asc$1,"Calendar.datepicker":"Date Picker","Calendar.yearmonth":"YYYY MM","Calendar.year":"YYYY","Calendar.begin":"begin","Calendar.end":"end","Calendar.beginAndEnd":"b/e","Calendar.toast":"Out of date range","Calendar.startPick":"Select start time","Calendar.endPick":"Select end time",cancel:cancel$1,"Card.dragTip":"Drag top button to sort","Card.toggleDrag":"Toggle drag to sort","City.street":"Enter street info",clear:clear$1,"ColorPicker.placeholder":"Select color","SubForm.add":"New",add:add$1,"Combo.dragDropSort":"Drag to sort","Combo.invalidData":"invalid data, please remove","Combo.maxLength":"Maximum item ia {{MaxLength}}}. Please delete some","Combo.minLength":"A least {{minLength}} item. Please add more","Combo.type":"Type",confirm:confirm$1,"Copyable.tip":"Copy","CRUD.exportCSV":"Export CSV","CRUD.exportExcel":"Export Excel","CRUD.fetchFailed":"Fetch failed","CRUD.filter":"Filter","CRUD.selected":"selected {{total}} items","CRUD.invalidArray":"data.items must be an array","CRUD.invalidData":"data is empty","CRUD.loadMore":"Load more","CRUD.perPage":"Per page","CRUD.stat":"{{page}} of {{lastPage}} total: {{total}}.","CRUD.paginationGoText":"Go to","CRUD.paginationPageText":"page","PaginationWrapper.placeholder":"please config body","Pagination.select":"{{count}} items/page","Pagination.goto":"goto","Pagination.go":"GO","Pagination.totalPage":"total {{lastPage}} pages","Pagination.totalCount":"total {{total}} items","Date.titleYear":"select year","Date.titleMonth":"select month and year","Date.titleDate":"select month, year and day","Date.titleTime":"select time","Date.daysago":"{{days}} day(s) ago","Date.dayslater":"{{days}} day(s) later","Date.endOfMonth":"last day of the month","Date.endOfLastMonth":"last day of last month","Date.endOfWeek":"Saturday","Date.hoursago":"{{hours}} hour(s) ago","Date.hourslater":"{{hours}} hour(s) later","Date.invalid":"Invalid date","Date.monday":"Monday","Date.monthsago":"{{months}} month(s) ago","Date.monthslater":"{{months}} month(s) later","Date.now":"Now","Date.placeholder":"Select Date","Date.quartersago":"{{quarters}} quarter(s) ago","Date.quarterslater":"{{quarters}} quarter(s) later","Date.startOfLastMonth":"First day of the last month","Date.startOfLastQuarter":"First day of the last quarter","Date.startOfMonth":"First day of the month","Date.startOfQuarter":"First day of the quarter","Date.today":"Today","Date.tomorrow":"Tomorrow","Date.weeksago":"{{weeks}} week(s) ago","Date.weekslater":"{{weeks}} week(s) later","Date.yesterday":"Yesterday","dateformat.year":"YYYY","DateRange.daysago":"Last {{days}} day(s)","DateRange.dayslater":"Within {{days}} day(s)","DateRange.weeksago":"Last {{weeks}} week(s)","DateRange.weekslater":"Within {{weeks}} week(s)","DateRange.monthsago":"Last {{months}} month(s)","DateRange.monthslater":"Within {{months}} month(s)","DateRange.quartersago":"Last {{quarters}} quarter(s)","DateRange.quarterslater":"Within {{quarters}} quarter(s)","DateRange.yearsago":"Last {{years}} year(s)","DateRange.yearslater":"Within {{years}} year(s)","DateRange.hoursago":"Last {{hours}} hour(s)","DateRange.hourslater":"Within {{hours}} hour(s)","DateRange.1dayago":"1 day ago","DateRange.1daysago":"1 day ago","DateRange.7daysago":"7 days ago","DateRange.30daysago":"30 days ago","DateRange.90daysago":"90 days ago","DateRange.lastMonth":"Last month","DateRange.lastWeek":"Last week","DateRange.lastQuarter":"Last quarter","DateRange.placeholder":"Select a Date range","YearRange.placeholder":"Select a Year range","DateRange.thisWeek":"This Week","DateRange.thisMonth":"This month","DateRange.thisQuarter":"This quarter","DateRange.thisYear":"This year","DateRange.lastYear":"Last year","DateRange.valueConcat":" to ","DateTime.placeholder":"Select Datetime",delete:"Delete",deleteConfirm:deleteConfirm$1,deleteFailed:deleteFailed$1,desc:desc$1,"Dialog.close":"Close","Dialog.title":"Title","Embed.invalidRoot":"Invalid root selector","Embed.downloading":"Start downloading","Excel.placeholder":"Drag 'n' drop excel here, or click to select","Excel.parsed":"{{filename}} Parsed",fetchFailed:fetchFailed$1,"File.continueAdd":"Continue add","File.downloadTpl":"Download template","File.dragDrop":"Drag 'n' drop some files here or","File.clickUpload":"click here to upload","File.helpText":"Help documentation","File.errorRetry":"File upload failed, please try again","File.failed":"Failed files.","File.invalidType":"{{files}} does not match type `{{accept}}`","File.maxLength":"The maximum limit is {{maxLength}}","File.maxSize":"{{filename}} you selected exceeds the maximum limit of {{maxsize}} (in bytes)","File.pause":"Pause uplaod","File.repick":"Repick","File.result":"Successfully uploaded {{uploaded}} files, failed to upload {{failed}} files","File.retry":"Retry","File.sizeLimit":"The maximum file size is {{maxSize}}","File.start":"Start upload","File.upload":"Upload","Image.upload":"Upload image","File.uploadFailed":"return data of udpload api is empty","File.uploading":"Uploading","FormItem.autoFillLoadFailed":"return data of autoUpdate api is error","FormItem.autoFillSuggest":"Reference data entry","Form.loadOptionsFailed":"Failed to load options because: {{reason}}","Form.submit":"Submit","Form.title":"Form","Form.unique":"Current value is not unique","Form.validateFailed":"Form input validation failed","Form.nestedError":"Form cannot appear as a descendant of form","Image.configError":"Can only set one of crop or multiple","Image.crop":"Crop image","Image.dragDrop":"Drag 'n' drop some photos here","Image.height":"height: {{height}}px","Image.limitMax":"Minimum image size is {{info}}","Image.limitMin":"Maximum image size is {{info}}","Image.limitRatio":"Please upload image with the size ratio of {{ration}}","Image.pasteTip":"You can paste image from the clipboard","Image.placeholder":"Click to select image or drag into this area","Image.size":"size: ({{width}}px x {{height}}px)","Image.sizeNotEqual":"The image you selected does not meet the size requirements {{info}}","Image.width":"width: {{width}}px","Image.zoomIn":"Zoom In","Log.mustHaveSource":"Must have source in config","Log.showLineNumber":"Display line number","Log.notShowLineNumber":"Hide line number","Log.expand":"Expand Operation","Log.collapse":"Collapse Operation",link:link$1,loading:loading$1,"LocationPicker.placeholder":"Pick location","Month.placeholder":"Select a month","Nav.sourceError":"Fetch link error",networkError:networkError$1,noResult:noResult$1,"NumberInput.placeholder":"Please enter a number","Options.addPlaceholder":"Please enter a name","Options.deleteAPI":"Must have deleteAPI","Options.editLabel":"Edit {{label}}","Options.label":"option","Options.createFailed":"create failed, please check","placeholder.empty":"<Empty>","placeholder.enter":"Enter","placeholder.noData":"No data","placeholder.noOption":"No option","placeholder.selectData":"Select data","Quarter.placeholder":"Select a quarter","Repeat.pre":"Per",reset:reset$1,saveFailed:saveFailed$1,saveSuccess:saveSuccess$1,search:search$1,searchHistory:searchHistory$1,searchResult:searchResult$1,"Checkboxes.selectAll":"Select/Deselect All","Select.checkAll":"Check all","Select.clear":"Clear","Select.upload":"Re upload","Select.clearAll":"Clear all","Select.createLabel":"New option","Select.placeholder":"Select","Select.searchPromptText":"Input to search",sort:sort$1,stop:stop$1,"SubForm.button":"Config","SubForm.editDetail":"Edit Detail","System.error":"System error","System.notify":"System notify","System.copy":"Content copied","System.requestError":"Request error: ","System.requestErrorStatus":"Request error, status code: ","Table.addRow":"Add row","Table.copyRow":"Copy row","Table.columnsVisibility":"Click to control columns visibility","Table.deleteRow":"Delete current row","Table.discard":"Discard","Table.dragTip":"Drag the button on the left to sort","Table.editing":"You should finished editing","Table.editRow":"Edit current row","Table.modified":"There are {{modified}} records have been modified, you can:","Table.moved":"There are {{moved}} records changed the order, you can:","Table.operation":"Operation","Table.playload":"Must have playload","Table.startSort":"Click to start sorting","Table.valueField":"Must have valueField","Table.index":"Index","Table.toggleColumn":"Display columns","Table.searchFields":"Set query fields","Tag.placeholder":"No tag yet","Tag.tip":"Recently used tag","Text.add":"New {{label}}","Time.placeholder":"Select Time","Transfer.configError":"Config error","Transfer.refreshIcon":"Click to refresh","Transfer.searchKeyword":"Enter keywords","Transfer.available":"Available","Transfer.selectd":"Selected","Transfer.selectFromLeft":"Select from the left","Tree.addChild":"Add child","Tree.addRoot":"Add root node","Tree.editNode":"Edit this node","Tree.removeNode":"Remove this node","Tree.root":"Root","validate.equals":"value must be $1","validate.equalsField":"value must be $1","validate.gt":"Please enter a value greater than $1","validate.isAlpha":"Please enter letters","validate.isAlphanumeric":"Please enter letters or numbers","validate.isEmail":"Email format is incorrect","validate.isFloat":"Please enter a floating point value","validate.isId":"invalid ID Card number","validate.isInt":"Please enter an integer number","validate.isJson":"invalid JSON format.","validate.isLength":"Please make sure the length of contents is $1","validate.isNumeric":"Please enter a number","validate.isPhoneNumber":"invalid phone number","validate.isRequired":"This is required","validate.isTelNumber":"invalid telephone number","validate.isUrl":"Incorrect URL format","validate.isUrlPath":"You can only enter letters, numbers, `-` and`_` .","validate.isWords":"Please enter word","validate.isZipcode":"invalid postal address","validate.lt":"Please enter a value less than $1","validate.matchRegexp":"The format is not correct. Please enter the content with the rule `${1| raw}`.","validate.maximum":"The input value exceeds the maximum value of $1","validate.maxLength":"Please control the content length, do not enter more than $1 letters","validate.minimum":"The input value is lower than the minimum value of $1","validate.minLength":"Please enter more, at least $1 characters.","validate.notEmptyString":"Please do not enter all blank characters",validateFailed:validateFailed$1,"Wizard.configError":"Config error","Wizard.finish":"Finish","Wizard.next":"Next","Wizard.prev":"Prev","Wizard.saveAndNext":"Save & Next","year-to-year":"{{from}} - {{to}}","Year.placeholder":"Select a Year",reload:reload$1,rotate:rotate$1,"Editor.fullscreen":"full screen","Editor.exitFullscreen":"exit fullscreen mode","Condition.not":"not","Condition.and":"and","Condition.or":"or","Condition.add_cond":"add condition","Condition.add_cond_group":"add condition group","Condition.delete_cond_group":"delete condition group","Condition.equal":"equal","Condition.not_equal":"not equal","Condition.less":"less","Condition.less_or_equal":"less or equal","Condition.greater":"greater","Condition.greater_or_equal":"greater or equal","Condition.between":"between","Condition.not_between":"not between","Condition.is_empty":"empty","Condition.is_not_empty":"not empty","Condition.like":"contains","Condition.not_like":"not contains","Condition.starts_with":"starts with","Condition.ends_with":"ends with","Condition.select_equals":"equals","Condition.select_not_equals":"not equal","Condition.select_any_in":"contains","Condition.select_not_any_in":"not contains","Condition.placeholder":"Please enter text","Condition.cond_placeholder":"select condition","Condition.field_placeholder":"select field","Condition.blank":"blank","Condition.expression":"expression","Condition.formula_placeholder":"Please enter a formula","Condition.fun_error":"Function is undefined","InputTable.uniqueError":"Column `{{label}}` unique validate failed","Timeline.collapseText":"Unfold","Timeline.expandText":"Fold","FormulaEditor.btnLabel":"Formula Edit","FormulaEditor.title":"Formula Editor","FormulaEditor.variable":"Variable","FormulaEditor.function":"Function","FormulaEditor.invalidData":"invalid data, position or reason is {{err}}","pullRefresh.pullingText":"Pull down to refresh...","pullRefresh.loosingText":"Release to refresh...","pullRefresh.loadingText":"Loading...","pullRefresh.successText":"Loading success","Picker.placeholder":"Click icon on the right","UserSelect.edit":"edit","UserSelect.save":"preservation","UserSelect.resultSort":"Select result sort","UserSelect.selected":"Selected","UserSelect.clear":"empty","SchemaType.string":"String","SchemaType.number":"Number","SchemaType.integer":"integer","SchemaType.object":"Object","SchemaType.array":"Array","SchemaType.boolean":"Boolean","SchemaType.any":"Any","SchemaType.null":"Null","JSONSchema.title":"Title","JSONSchema.default":"Default","JSONSchema.description":"Description","JSONSchema.key":"Key","JSONSchema.array_items":"Items",TimeNow:TimeNow$1},asc="正序",Schedule="日程",Time="时间",Content="内容",cancel="取消",clear="清空",add="新增",confirm="确认",deleteConfirm="确认要删除?",deleteFailed="删除失败",desc="降序",fetchFailed="初始化失败",link="链接",loading="加载中",networkError="网络错误,可能是未配置跨域 CORS",noResult="未找到任何结果",reset="重置",saveFailed="保存失败",saveSuccess="保存成功",search="搜索",searchHistory="搜索历史",searchResult="搜索结果",stop="停止",sort="排序",validateFailed="表单验证失败",reload="刷新",rotate="旋转",collapse="展开",expand="折叠",Required="必填",TimeNow="此刻",zh_cn={"Action.countDown":"请等待 ${timeLeft} 秒","Alert.info":"系统消息","App.home":"首页","App.navigation":"导航",asc:asc,"Calendar.datepicker":"日期选择","Calendar.yearmonth":"YYYY年MM月","Calendar.year":"YYYY年","Calendar.begin":"开始","Calendar.end":"结束","Calendar.beginAndEnd":"始/终","Calendar.toast":"超出日期范围","Calendar.startPick":"开始时间","Calendar.endPick":"结束时间",Schedule:Schedule,Time:Time,Content:Content,cancel:cancel,"Card.dragTip":"请拖动顶部的按钮进行排序","Card.toggleDrag":"对卡片进行排序操作","City.street":"请输入街道信息",clear:clear,"ColorPicker.placeholder":"请选择颜色","SubForm.add":"新增一项",add:add,"Combo.dragDropSort":"拖拽排序","Combo.invalidData":"数值格式不正确","Combo.maxLength":"组合表单超出{{maxLength}}个,请删除","Combo.minLength":"组合表单数量不足{{minLength}}个,请添加更多","Combo.type":"类型",confirm:confirm,"Copyable.tip":"点击复制","CRUD.exportCSV":"导出 CSV","CRUD.exportExcel":"导出 Excel","CRUD.fetchFailed":"获取失败","CRUD.filter":"筛选","CRUD.selected":"已选{{total}}条:","CRUD.invalidArray":"data.items 必须是数组","CRUD.invalidData":"返回数据格式不正确,data 没有数据","CRUD.loadMore":"加载更多","CRUD.perPage":"每页显示","CRUD.stat":"{{page}}/{{lastPage}} 总共:{{total}} 项","CRUD.paginationGoText":"前往","CRUD.paginationPageText":"页","PaginationWrapper.placeholder":"请配置内容","Pagination.select":"{{count}} 条/页","Pagination.goto":"跳转至","Pagination.go":"跳转","Pagination.totalPage":"共 {{lastPage}} 页","Pagination.totalCount":"共 {{total}} 条","Date.titleYear":"选择年","Date.titleMonth":"选择年月","Date.titleDate":"选择年月日","Date.titleTime":"选择时间","Date.daysago":"{{days}}天前","Date.dayslater":"{{days}}天后","Date.endOfMonth":"本月最后一天","Date.endOfWeek":"周日","Date.endOfLastMonth":"上月最后一天","Date.hoursago":"{{hours}}小时前","Date.hourslater":"{{hours}}小时后","Date.invalid":"日期无效","Date.monday":"本周一","Date.monthsago":"{{months}}月前","Date.monthslater":"{{months}}月后","Date.now":"现在","Date.placeholder":"请选择日期","Date.quartersago":"{{quarters}}季度前","Date.quarterslater":"{{quarters}}季度后","Date.startOfLastMonth":"上个月第一天","Date.startOfLastQuarter":"上个季度第一天","Date.startOfMonth":"本月第一天","Date.startOfQuarter":"本季度第一天","Date.today":"今天","Date.tomorrow":"明天","Date.weeksago":"{{weeks}}周前","Date.weekslater":"{{weeks}}周后","Date.yesterday":"昨天","dateformat.year":"YYYY年","DateRange.daysago":"最近{{days}}天","DateRange.dayslater":"{{days}}天以内","DateRange.weeksago":"最近{{weeks}}周","DateRange.weekslater":"{{weeks}}周以内","DateRange.monthsago":"最近{{months}}月","DateRange.monthslater":"{{months}}月以内","DateRange.quartersago":"最近{{quarters}}季度","DateRange.quarterslater":"{{quarters}}季度以内","DateRange.yearsago":"最近{{years}}年","DateRange.yearslater":"{{years}}年以内","DateRange.hoursago":"最近{{hours}}小时","DateRange.hourslater":"{{hours}}小时以内","DateRange.1daysago":"最近1天","DateRange.1dayago":"最近1天","DateRange.7daysago":"最近7天","DateRange.30daysago":"最近30天","DateRange.90daysago":"最近90天","DateRange.lastWeek":"上周","DateRange.lastMonth":"上个月","DateRange.lastQuarter":"上个季度","DateRange.placeholder":"请选择日期范围","DateRange.thisWeek":"这个周","DateRange.thisMonth":"这个月","DateRange.thisQuarter":"这个季度","DateRange.valueConcat":" 至 ","DateTime.placeholder":"请选择日期以及时间","MonthRange.placeholder":"请选择月份范围","QuarterRange.placeholder":"请选择季度范围","YearRange.placeholder":"请选择年份范围","DateRange.thisYear":"今年","DateRange.lastYear":"去年",delete:"删除",deleteConfirm:deleteConfirm,deleteFailed:deleteFailed,desc:desc,"Dialog.close":"关闭","Dialog.title":"弹框","Embed.invalidRoot":"选择器不对,页面上没有此元素","Embed.downloading":"文件即将开始下载","Excel.placeholder":"拖拽 Excel 到这,或点击上传","Excel.parsed":"已解析 {{filename}}",fetchFailed:fetchFailed,"File.continueAdd":"继续添加","File.downloadTpl":"下载模板","File.dragDrop":"将文件拖到此处,或","File.clickUpload":"点击上传","File.helpText":"帮助文档","File.errorRetry":"文件上传失败请重试","File.failed":"失败文件","File.invalidType":"{{files}} 不符合类型的 {{accept}} 的设定,请仔细检查","File.maxLength":"最多上传 {{maxLength}} 个文件","File.maxSize":"{{filename}} 大小为 {{actualSize}} 超出了最大为 {{maxSize}} (字节)的限制","File.pause":"暂停上传","File.repick":"重新选择","File.result":"已成功上传 {{uploaded}} 个文件,{{failed}} 个文件上传失败,","File.retry":"重试上传","File.sizeLimit":"文件大小不超过 {{maxSize}}","File.start":"开始上传","File.upload":"文件上传","Image.upload":"图片上传","File.uploadFailed":"接口返回错误,请仔细检查","File.uploading":"上传中...","FormItem.autoFillLoadFailed":"接口返回错误,请仔细检查","FormItem.autoFillSuggest":"参照录入数据","Form.loadOptionsFailed":"加载选项失败,原因:{{reason}}","Form.submit":"提交","Form.title":"表单","Form.unique":"当前值不唯一","Form.validateFailed":"依赖的部分字段没有通过验证","Form.nestedError":"表单不要直接嵌套在表单下面","Image.configError":"图片多选配置和裁剪配置只能设置一个","Image.crop":"裁剪图片","Image.dragDrop":"将图片拖拽到此处","Image.height":"高度 {{height}}px","Image.limitRatio":"请上传尺寸比率为 {{ratio}} 的图片","Image.pasteTip":"可以粘贴剪切板中的图片","Image.placeholder":"点击选择图片或拖拽图片到这里","Image.size":"尺寸({{width}} x {{height}})","Image.sizeMax":"请上传不要大于{{info}}的图片","Image.sizeMin":"请上传不要小于{{info}}的图片","Image.sizeNotEqual":"请上传{{info}}的图片","Image.width":"宽度 {{width}}px","Image.zoomIn":"查看大图","Image.limitMax":"上传图片大于{{info}},请检查图片尺寸","Image.limitMin":"上传图片小于{{info}},请检查图片尺寸","Log.mustHaveSource":"需要配置 Source","Log.showLineNumber":"显示行数","Log.notShowLineNumber":"不现实行数","Log.expand":"展开工具栏","Log.collapse":"收起工具栏",link:link,loading:loading,"LocationPicker.placeholder":"请选择位置","Month.placeholder":"请选择月份","Nav.sourceError":"获取链接错误",networkError:networkError,noResult:noResult,"NumberInput.placeholder":"请输入数字","Options.addPlaceholder":"请输入名称","Options.deleteAPI":"必须设置 deleteAPI","Options.editLabel":"编辑{{label}}","Options.label":"选项","Options.createFailed":"新增失败,请仔细检查","placeholder.empty":"<空>","placeholder.enter":"请输入","placeholder.noData":"暂无数据","placeholder.noOption":"暂无选项","placeholder.selectData":"请先选择数据","Quarter.placeholder":"请选择季度","Repeat.pre":"每",reset:reset,saveFailed:saveFailed,saveSuccess:saveSuccess,search:search,searchHistory:searchHistory,searchResult:searchResult,stop:stop,"Checkboxes.selectAll":"全选/不选","Select.checkAll":"全选","Select.clear":"移除","Select.upload":"重新上传","Select.clearAll":"移除所有","Select.createLabel":"新增选项","Select.placeholder":"请选择","Select.searchPromptText":"搜索",sort:sort,"SubForm.button":"设置","SubForm.editDetail":"编辑详情","System.error":"系统错误","System.notify":"系统消息","System.copy":"内容已复制到粘贴板","System.requestError":"接口报错:","System.requestErrorStatus":"接口出错,状态码是:","Table.addRow":"新增一行","Table.copyRow":"复制一行","Table.columnsVisibility":"点击选择显示列","Table.deleteRow":"删除当前行","Table.discard":"放弃","Table.dragTip":"请拖动左边的按钮进行排序","Table.editing":"请先处理表格编辑项","Table.editRow":"编辑当前行","Table.modified":"当前有 {{modified}} 条记录修改但没有提交,你可以:","Table.moved":"当前有 {{moved}} 条记录修改了顺序但没有提交,你可以:","Table.operation":"操作","Table.playload":"action 上请配置 payload, 否则不清楚要删除哪个","Table.startSort":"点击开始排序","Table.valueField":"请配置 valueField","Table.index":"序号","Table.toggleColumn":"显示列","Table.searchFields":"设置查询字段","Tag.placeholder":"请输入/选择标签","Tag.tip":"最近使用的标签","Text.add":"新增:{{label}}","Time.placeholder":"请选择时间","Transfer.configError":"配置错误,选项无法与左侧选项对应","Transfer.refreshIcon":"点击刷新重新加载","Transfer.searchKeyword":"请输入关键字","Transfer.available":"可选项","Transfer.selectd":"已选项","Transfer.selectFromLeft":"请选择左侧数据","Tree.addChild":"添加子节点","Tree.addRoot":"添加一级节点","Tree.editNode":"编辑该节点","Tree.removeNode":"移除该节点","Tree.root":"顶级","validate.equals":"输入的数据与 $1 不一致","validate.equalsField":"输入的数据与 $1 值不一致","validate.gt":"请输入大于 $1 的值","validate.isAlpha":"请输入字母","validate.isAlphanumeric":"请输入字母或者数字","validate.isEmail":"Email 格式不正确","validate.isFloat":"请输入浮点型数值","validate.isId":"请输入合法的身份证号","validate.isInt":"请输入整型数字","validate.isJson":"JSON 格式不正确","validate.isLength":"请输入长度为 $1 的内容","validate.isNumeric":"请输入数字","validate.isPhoneNumber":"请输入合法的手机号码","validate.isRequired":"这是必填项","validate.isTelNumber":"请输入合法的电话号码","validate.isUrl":"URL 格式不正确","validate.isUrlPath":"只能输入字母、数字、`-` 和 `_`.","validate.isWords":"请输入单词","validate.isZipcode":"请输入合法的邮编地址","validate.lt":"请输入小于 $1 的值","validate.matchRegexp":"格式不正确, 请输入符合规则为 `${1|raw}` 的内容。","validate.maximum":"当前输入值超出最大值 $1","validate.maxLength":"请控制内容长度, 不要输入 $1 个以上字符","validate.minimum":"当前输入值低于最小值 $1","validate.minLength":"请输入更多的内容,至少输入 $1 个字符。","validate.notEmptyString":"请不要全输入空白字符",validateFailed:validateFailed,"Wizard.configError":"配置错误","Wizard.finish":"完成","Wizard.next":"下一步","Wizard.prev":"上一步","Wizard.saveAndNext":"保存并下一步","year-to-year":"{{from}} 年 - {{to}} 年","Year.placeholder":"请选择年",reload:reload,rotate:rotate,"Editor.fullscreen":"全屏","Editor.exitFullscreen":"退出全屏","Condition.not":"非","Condition.and":"并","Condition.or":"或","Condition.add_cond":"添加条件","Condition.add_cond_group":"添加条件组","Condition.delete_cond_group":"删除组","Condition.equal":"等于","Condition.not_equal":"不等于","Condition.less":"小于","Condition.less_or_equal":"小于或等于","Condition.greater":"大于","Condition.greater_or_equal":"大于或等于","Condition.between":"属于范围","Condition.not_between":"不属于范围","Condition.is_empty":"为空","Condition.is_not_empty":"不为空","Condition.like":"模糊匹配","Condition.not_like":"不匹配","Condition.starts_with":"匹配开头","Condition.ends_with":"匹配结尾","Condition.select_equals":"等于","Condition.select_not_equals":"不等于","Condition.select_any_in":"包含","Condition.select_not_any_in":"不包含","Condition.placeholder":"请输入文本","Condition.cond_placeholder":"请选择操作","Condition.field_placeholder":"请选择字段","Condition.blank":"空","Condition.expression":"表达式","Condition.formula_placeholder":"请输入公式","Condition.fun_error":"方法未定义","InputTable.uniqueError":"列`{{label}}`没有通过唯一验证","Timeline.collapseText":"展开","Timeline.expandText":"折叠",collapse:collapse,expand:expand,"FormulaEditor.btnLabel":"公式编辑","FormulaEditor.title":"公式编辑器","FormulaEditor.variable":"变量","FormulaEditor.function":"函数","FormulaEditor.invalidData":"公式值校验错误,错误的位置/原因是 {{err}}","pullRefresh.pullingText":"下拉即可刷新...","pullRefresh.loosingText":"释放即可刷新...","pullRefresh.loadingText":"加载中...","pullRefresh.successText":"加载成功","Picker.placeholder":"请点击右侧的图标","UserSelect.edit":"编辑","UserSelect.save":"保存","UserSelect.resultSort":"选择结果排序","UserSelect.selected":"已选","UserSelect.clear":"清空","SchemaType.string":"文本","SchemaType.number":"数字","SchemaType.integer":"整数","SchemaType.object":"对象","SchemaType.array":"数组","SchemaType.boolean":"布尔","SchemaType.null":"Null","SchemaType.any":"任意","JSONSchema.title":"名称","JSONSchema.default":"默认值","JSONSchema.key":"字段名","JSONSchema.description":"描述","JSONSchema.add_prop":"添加属性","JSONSchema.array_items":"成员类型",Required:Required,TimeNow:TimeNow};const resourcesMap={"en-US":en_us,"zh-CN":zh_cn},getUserLanguage=()=>{var e=Builder.settings.context?.user?.language||window.navigator.language;return"en"===e&&(e="en-US"),e};var locale="zh-CN";function getAmisLocaleResource(){var e=resourcesMap[locale];return e||resourcesMap["zh-CN"]}if("undefined"!=typeof window&&(locale=getUserLanguage()),"undefined"!=typeof window){var currentAmis=window.amisRequire&&window.amisRequire("amis")||Amis;currentAmis&&currentAmis.registerLocale(locale,getAmisLocaleResource())}function Inbox(e){var t=e.className,n=e.onClick,o=__rest(e,["className","onClick"]),r=useInboxNotificationsSuspense().inboxNotifications;return 0===r.length?React__default.default.createElement("div",{className:clsx(t,"empty")},instance.t("liveblocks:frontend_inbox_empty")):React__default.default.createElement("div",__assign({className:t},o),React__default.default.createElement(InboxNotificationList,{className:"inbox-list"},r.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"]),o=__read(React.useState(!1),2),r=o[0],a=o[1],i=useMarkAllInboxNotificationsAsRead(),s=useDeleteAllInboxNotifications();return React__default.default.createElement(Root2$1,{open:r,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)}}))))))}instance.addResources("en","liveblocks",en_us$2),instance.addResources("zh-CN","liveblocks",zh_cn$2);var AmisRoomsProvider=function(e){var t,n=e.data,o=e.baseUrl,r=e.children,a=e.body,i=e.render,s=__read(React.useState(null),2),l=s[0],c=s[1],u=o||(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")||{},_=__assign({locale:p},m),h=_.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented||"commented",g=_.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in||"in",v=_.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread||"in a thread";return _.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST=function(e,t){return React__default.default.createElement(React__default.default.Fragment,null,e," ",h,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:_},React__default.default.createElement(LiveblocksProvider,{baseUrl:u,authEndpoint:function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,n,o,r,a,i;return __generator(this,(function(s){switch(s.label){case 0:return t="".concat(u,"/v2/c/auth"),n={"Content-Type":"application/json"},o=localStorage.getItem("steedos:authToken"),(r=localStorage.getItem("steedos:spaceId"))&&o&&(n.Authorization="Bearer ".concat(r,",").concat(o)),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(o){switch(o.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=o.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_rooms_info_error"));return[4,n.json()];case 2:return[2,o.sent()]}}))}))},resolveUsers:function(e){var t=e.userIds;return __awaiter(void 0,void 0,void 0,(function(){var e,n;return __generator(this,(function(o){switch(o.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=o.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_users_error"));return[4,n.json()];case 2:return[2,o.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,{}),r))};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,o)=>t(o,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 o=getArchtype(e);2===o?e.set(t,n):3===o?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 o=0;o<n.length;o++){const r=n[o],a=t[r];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[r]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[r]})}return Object.create(getPrototypeOf(e),t)}{const t=getPrototypeOf(e);if(null!==t&&n)return{...e};const o=Object.create(t);return Object.assign(o,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 o=t[DRAFT_STATE];if(!o)return each(t,((r,a)=>finalizeProperty(e,o,t,r,a,n))),t;if(o.scope_!==e)return t;if(!o.modified_)return maybeFreeze(e,o.base_,!0),o.base_;if(!o.finalized_){o.finalized_=!0,o.scope_.unfinalizedDrafts_--;const t=o.copy_;let r=t,a=!1;3===o.type_&&(r=new Set(t),t.clear(),a=!0),each(r,((r,i)=>finalizeProperty(e,o,t,r,i,n,a))),maybeFreeze(e,t,!1),n&&e.patches_&&getPlugin("Patches").generatePatches_(o,n,e.patches_,e.inversePatches_)}return o.copy_}function finalizeProperty(e,t,n,o,r,a,i){if(isDraft(r)){const i=finalize(e,r,a&&t&&3!==t.type_&&!has(t.assigned_,o)?a.concat(o):void 0);if(set(n,o,i),!isDraft(i))return;e.canAutoFreeze_=!1}else i&&n.add(r);if(isDraftable(r)&&!isFrozen(r)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;finalize(e,r),t&&t.scope_.parent_||"symbol"==typeof o||!Object.prototype.propertyIsEnumerable.call(n,o)||maybeFreeze(e,r)}}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),o={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 r=o,a=objectTraps;n&&(r=[o],a=arrayTraps);const{revoke:i,proxy:s}=Proxy.revocable(r,a);return o.draft_=s,o.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 o=n[t];return e.finalized_||!isDraftable(o)?o:o===peek(e.base_,t)?(prepareCopy(e),e.copy_[t]=createProxy(o,e)):o},has:(e,t)=>t in latest(e),ownKeys:e=>Reflect.ownKeys(latest(e)),set(e,t,n){const o=getDescriptorFromProto(latest(e),t);if(o?.set)return o.set.call(e.draft_,n),!0;if(!e.modified_){const o=peek(latest(e),t),r=o?.[DRAFT_STATE];if(r&&r.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(is(n,o)&&(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),o=Reflect.getOwnPropertyDescriptor(n,t);return o?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:o.enumerable,value:n[t]}:o},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 o=getDescriptorFromProto(t,n);return o?"value"in o?o.value:o.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 o=this;return function(e=n,...r){return o.produce(e,(e=>t.call(this,e,...r)))}}let o;if("function"!=typeof t&&die(6),void 0!==n&&"function"!=typeof n&&die(7),isDraftable(e)){const r=enterScope(this),a=createProxy(e,void 0);let i=!0;try{o=t(a),i=!1}finally{i?revokeScope(r):leaveScope(r)}return usePatchesInScope(r,n),processResult(o,r)}if(!e||"object"!=typeof e){if(o=t(e),void 0===o&&(o=e),o===NOTHING&&(o=void 0),this.autoFreeze_&&freeze$1(o,!0),n){const t=[],r=[];getPlugin("Patches").generateReplacementPatches_(e,o,t,r),n(t,r)}return o}die(1,e)},this.produceWithPatches=(e,t)=>{if("function"==typeof e)return(t,...n)=>this.produceWithPatches(t,(t=>e(t,...n)));let n,o;return[this.produce(e,t,((e,t)=>{n=e,o=t})),n,o]},"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_:o}=n;return usePatchesInScope(o,t),processResult(void 0,o)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const o=t[n];if(0===o.path.length&&"replace"===o.op){e=o.value;break}}n>-1&&(t=t.slice(n+1));const o=getPlugin("Patches").applyPatches_;return isDraft(e)?o(e,t):this.produce(e,(e=>o(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:o}=e;if(null!=n){var r=Path.transform(n,t,{affinity:o});e.current=r,null==r&&e.unref()}}},PointRef={transform(e,t){var{current:n,affinity:o}=e;if(null!=n){var r=Point.transform(n,t,{affinity:o});e.current=r,null==r&&e.unref()}}},RangeRef={transform(e,t){var{current:n,affinity:o}=e;if(null!=n){var r=Range.transform(n,t,{affinity:o});e.current=r,null==r&&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,o=Path.levels(e,t);return o=n?o.slice(1):o.slice(0,-1)},common(e,t){for(var n=[],o=0;o<e.length&&o<t.length;o++){var r=e[o];if(r!==t[o])break;n.push(r)}return n},compare(e,t){for(var n=Math.min(e.length,t.length),o=0;o<n;o++){if(e[o]<t[o])return-1;if(e[o]>t[o])return 1}return 0},endsAfter(e,t){var n=e.length-1,o=e.slice(0,n),r=t.slice(0,n),a=e[n],i=t[n];return Path.equals(o,r)&&a>i},endsAt(e,t){var n=e.length,o=e.slice(0,n),r=t.slice(0,n);return Path.equals(o,r)},endsBefore(e,t){var n=e.length-1,o=e.slice(0,n),r=t.slice(0,n),a=e[n],i=t[n];return Path.equals(o,r)&&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),o=t.slice(0,-1);return e[e.length-1]!==t[t.length-1]&&Path.equals(n,o)},levels(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:n=!1}=t,o=[],r=0;r<=e.length;r++)o.push(e.slice(0,r));return n&&o.reverse(),o},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 o=[...e],{affinity:r="forward"}=n;if(0===e.length)return o;switch(t.type){case"insert_node":var{path:a}=t;(Path.equals(a,o)||Path.endsBefore(a,o)||Path.isAncestor(a,o))&&(o[a.length-1]+=1);break;case"remove_node":var{path:i}=t;if(Path.equals(i,o)||Path.isAncestor(i,o))return null;Path.endsBefore(i,o)&&(o[i.length-1]-=1);break;case"merge_node":var{path:s,position:l}=t;Path.equals(s,o)||Path.endsBefore(s,o)?o[s.length-1]-=1:Path.isAncestor(s,o)&&(o[s.length-1]-=1,o[s.length]+=l);break;case"split_node":var{path:c,position:u}=t;if(Path.equals(c,o)){if("forward"===r)o[o.length-1]+=1;else if("backward"!==r)return null}else Path.endsBefore(c,o)?o[c.length-1]+=1:Path.isAncestor(c,o)&&e[c.length]>=u&&(o[c.length-1]+=1,o[c.length]-=u);break;case"move_node":var{path:d,newPath:f}=t;if(Path.equals(d,f))return o;if(Path.isAncestor(d,o)||Path.equals(d,o)){var p=f.slice();return Path.endsBefore(d,f)&&d.length<f.length&&(p[d.length-1]-=1),p.concat(o.slice(d.length))}Path.isSibling(d,f)&&(Path.isAncestor(f,o)||Path.equals(f,o))?Path.endsBefore(d,o)?o[d.length-1]-=1:o[d.length-1]+=1:Path.endsBefore(f,o)||Path.equals(f,o)||Path.isAncestor(f,o)?(Path.endsBefore(d,o)&&(o[d.length-1]-=1),o[f.length-1]+=1):Path.endsBefore(d,o)&&(Path.equals(f,o)&&(o[f.length-1]+=1),o[d.length-1]-=1)}return o}};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 o=n.call(e,t||"default");if("object"!==_typeof$4(o))return o;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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,node:r}=n,a=Node$1.parent(e,o),i=o[o.length-1];if(i>a.children.length)throw new Error('Cannot apply an "insert_node" operation at path ['.concat(o,"] because the destination is past the end of the node."));if(a.children.splice(i,0,r),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[h]=Point.transform(_,n);break;case"merge_node":var{path:g}=n,v=Node$1.get(e,g),y=Path.previous(g),E=Node$1.get(e,y),b=Node$1.parent(e,g),w=g[g.length-1];if(Text$1.isText(v)&&Text$1.isText(E))E.text+=v.text;else{if(Text$1.isText(v)||Text$1.isText(E))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(E)));E.children.push(...v.children)}if(b.children.splice(w,1),t)for(var[C,R]of Range.points(t))t[R]=Point.transform(C,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 x=Path.transform(S,n),I=Node$1.get(e,Path.parent(x)),N=x[x.length-1];if(I.children.splice(N,0,T),t)for(var[k,$]of Range.points(t))t[$]=Point.transform(k,n);break;case"remove_node":var{path:F}=n,P=F[F.length-1];if(Node$1.parent(e,F).children.splice(P,1),t)for(var[M,L]of Range.points(t)){var B=Point.transform(M,n);if(null!=t&&null!=B)t[L]=B;else{var j=void 0,U=void 0;for(var[V,H]of Node$1.texts(e)){if(-1!==Path.compare(H,F)){U=[V,H];break}j=[V,H]}var z=!1;j&&U&&(z=Path.equals(U[1],F)?!Path.hasPrevious(U[1]):Path.common(j[1],F).length<Path.common(U[1],F).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:q}=n;if(0===q.length)break;var G=Node$1.leaf(e,K),Y=G.text.slice(0,W),J=G.text.slice(W+q.length);if(G.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 oe in te){if("children"===oe||"text"===oe)throw new Error('Cannot set the "'.concat(oe,'" property of nodes!'));var re=te[oe];null==re?delete ne[oe]:ne[oe]=re}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),_e=ce[ce.length-1];if(Text$1.isText(pe)){var he=pe.text.slice(0,ue),ge=pe.text.slice(ue);pe.text=he,fe=_objectSpread$e(_objectSpread$e({},de),{},{text:ge})}else{var ve=pe.children.slice(0,ue),ye=pe.children.slice(ue);pe.children=ve,fe=_objectSpread$e(_objectSpread$e({},de),{},{children:ye})}if(me.children.splice(_e+1,0,fe),t)for(var[Ee,be]of Range.points(t))t[be]=Point.transform(Ee,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 o=e[n],r=t[n];if(isPlainObject$1(o)&&isPlainObject$1(r)){if(!isDeepEqual(o,r))return!1}else if(Array.isArray(o)&&Array.isArray(r)){if(o.length!==r.length)return!1;for(var a=0;a<o.length;a++)if(o[a]!==r[a])return!1}else if(o!==r)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,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}function _objectWithoutProperties$1(e,t){if(null==e)return{};var n,o,r=_objectWithoutPropertiesLoose$1(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var _excluded$4=["anchor","focus"];function ownKeys$d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,focus:r}=e;return Range.isBackward(e)===n?[o,r]:[r,o]},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,o]=Range.edges(e),[r,a]=Range.edges(t);return Point.isBefore(n,r)&&Point.isAfter(o,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),[o,r]=Range.edges(e),[a,i]=Range.edges(t),s=Point.isBefore(o,a)?a:o,l=Point.isBefore(r,i)?r: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 o,r,{affinity:a="inward"}=n;if("inward"===a){var i=Range.isCollapsed(e);Range.isForward(e)?(o="forward",r=i?o:"backward"):(o="backward",r=i?o:"forward")}else"outward"===a?Range.isForward(e)?(o="backward",r="forward"):(o="forward",r="backward"):(o=a,r=a);var s=Point.transform(e.anchor,t,{affinity:o}),l=Point.transform(e.focus,t,{affinity:r});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 o of Path.ancestors(t,n)){var r=[Node$1.ancestor(e,o),o];yield r}}()},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:o=!1}=n,r=Node$1.ancestor(e,t),{children:a}=r,i=o?a.length-1:0;o?i>=0:i<a.length;){var s=Node$1.child(r,i),l=t.concat(i);yield[s,l],i=o?i-1:i+1}}()},common(e,t,n){var o=Path.common(t,n);return[Node$1.get(e,o),o]},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,o]of Node$1.nodes(e,t))0!==o.length&&(yield[n,o])}()},elements(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[n,o]of Node$1.nodes(e,t))Element$2.isElement(n)&&(yield[n,o])}()},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(),o=Node$1.get(e,n);o&&!Text$1.isText(o)&&0!==o.children.length;)o=o.children[0],n.push(0);return[o,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,o]=Range.edges(t),r=Node$1.nodes(e,{reverse:!0,pass:e=>{var[,n]=e;return!Range.includes(t,n)}});for(var[,a]of r){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,o.path)){var l=Node$1.leaf(e,a);l.text=l.text.slice(0,o.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,o=0;o<t.length;o++){var r=t[o];if(Text$1.isText(n)||!n.children[r])return;n=n.children[r]}return n},has(e,t){for(var n=e,o=0;o<t.length;o++){var r=t[o];if(Text$1.isText(n)||!n.children[r])return!1;n=n.children[r]}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(),o=Node$1.get(e,n);o&&!Text$1.isText(o)&&0!==o.children.length;){var r=o.children.length-1;o=o.children[r],n.push(r)}return[o,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 o of Path.levels(t,n)){var r=Node$1.get(e,o);yield[r,o]}}()},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:o=!1}=t,{from:r=[],to:a}=t,i=new Set,s=[],l=e;!a||!(o?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(!o){var c=Path.next(s);if(Node$1.has(e,c)){s=c,l=Node$1.get(e,s);continue}}if(o&&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=o?l.children.length-1:0;Path.isAncestor(s,r)&&(u=r[s.length]),s=s.concat(u),l=Node$1.get(e,s)}}()},parent(e,t){var n=Path.parent(t),o=Node$1.get(e,n);if(Text$1.isText(o))throw new Error("Cannot get the parent of path [".concat(t,"] because it does not exist in the root."));return o},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,o]of Node$1.nodes(e,t))Text$1.isText(n)&&(yield[n,o])}()}};function ownKeys$c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=Path.transform(n,e),r=Path.transform(Path.next(n),e);return _objectSpread$c(_objectSpread$c({},e),{},{path:o,newPath:r});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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o="forward"}=n,{path:r,offset:a}=e;switch(t.type){case"insert_node":case"move_node":e.path=Path.transform(r,t,n);break;case"insert_text":Path.equals(t.path,r)&&(t.offset<a||t.offset===a&&"forward"===o)&&(e.offset+=t.text.length);break;case"merge_node":Path.equals(t.path,r)&&(e.offset+=t.position),e.path=Path.transform(r,t,n);break;case"remove_text":Path.equals(t.path,r)&&t.offset<=a&&(e.offset-=Math.min(a-t.offset,t.text.length));break;case"remove_node":if(Path.equals(t.path,r)||Path.isAncestor(t.path,r))return null;e.path=Path.transform(r,t,n);break;case"split_node":if(Path.equals(t.path,r)){if(t.position===a&&null==o)return null;(t.position<a||t.position===a&&"forward"===o)&&(e.offset-=t.position,e.path=Path.transform(r,t,_objectSpread$b(_objectSpread$b({},n),{},{affinity:"forward"})))}else e.path=Path.transform(r,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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o=!1}=n;function r(e){return _objectWithoutProperties$1(e,_excluded$2$1)}return isDeepEqual(o?r(e):e,o?r(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 o of t){var r=_objectWithoutProperties$1(o,_excluded2$2),[a,i]=Range.edges(o),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,r),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,_=void 0,h=void 0;if(u<l){var g=u-p;h=_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;_=_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,r),_&&s.push(_),s.push(m),h&&s.push(h)}}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,o=t?codepointsIteratorRTL(e):e,r=CodepointType.None,a=CodepointType.None,i=0,s=null;for(var l of o){var c=l.codePointAt(0);if(!c)break;var u=getCodepointType(l,c);if([r,a]=n?[a,u]:[u,r],intersects(r,CodepointType.ZWJ)&&intersects(a,CodepointType.ExtPict)&&!endsWithEmojiZWJ(n?e.substring(0,i):e.substring(0,e.length-i)))break;if(intersects(r,CodepointType.RI)&&intersects(a,CodepointType.RI)&&!(s=null!==s?!s:!!n||endsWithOddNumberOfRIs(e.substring(0,e.length-i))))break;if(r!==CodepointType.None&&a!==CodepointType.None&&isBoundaryPair(r,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,o=!1;e.length>0;){var r=getCharacterDistance(e,t),[a,i]=splitByCharacterDistance(e,r,t);if(isWordCharacter(a,i,t))o=!0,n+=r;else{if(o)break;n+=r}e=i}return n},splitByCharacterDistance=(e,t,n)=>{if(n){var o=e.length-t;return[e.slice(o,e.length),e.slice(0,o)]}return[e.slice(0,t),e.slice(t)]},isWordCharacter=function e(t,n){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(SPACE.test(t))return!1;if(CHAMELEON.test(t)){var r=getCharacterDistance(n,o),[a,i]=splitByCharacterDistance(n,r,o);if(e(a,i,o))return!0}return!PUNCTUATION.test(t)},codepointsIteratorRTL=function*(e){for(var t=e.length-1,n=0;n<e.length;n++){var o=e.charAt(t-n);if(isLowSurrogate(o.charCodeAt(0))){var r=e.charAt(t-n-1);if(isHighSurrogate(r.charCodeAt(0))){yield r+o,n++;continue}}yield o}},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:o=!1}=n,{at:r=getDefaultInsertLocation(e)}=n;if(Path.isPath(r)&&(r=Editor.range(e,r)),Range.isRange(r))if(Range.isCollapsed(r))r=r.anchor;else{var a=Range.end(r);if(!o&&Editor.void(e,{at:a}))return;var i=Range.start(r),s=Editor.pointRef(e,i),l=Editor.pointRef(e,a);Transforms.delete(e,{at:r,voids:o});var c=s.unref(),u=l.unref();r=c||u,Transforms.setSelection(e,{anchor:r,focus:r})}if(!(!o&&Editor.void(e,{at:r})||Editor.elementReadOnly(e,{at:r}))){var{path:d,offset:f}=r;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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=BATCHING_DIRTY_PATHS.get(e)||!1;BATCHING_DIRTY_PATHS.set(e,!0);try{t(),n()}finally{BATCHING_DIRTY_PATHS.set(e,o)}};function updateDirtyPaths(e,t,n){var o,r,a=DIRTY_PATHS.get(e)||[],i=DIRTY_PATH_KEYS.get(e)||new Set,s=e=>{if(e){var t=e.join(",");r.has(t)||(r.add(t),o.push(e))}};if(n)for(var l of(o=[],r=new Set,a)){s(n(l))}else o=a,r=i;for(var c of t)s(c);DIRTY_PATHS.set(e,o),DIRTY_PATH_KEYS.set(e,r)}var apply=(e,t)=>{for(var n of Editor.pathRefs(e))PathRef.transform(n,t);for(var o of Editor.pointRefs(e))PointRef.transform(o,t);for(var r of Editor.rangeRefs(e))RangeRef.transform(r,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:o,path:r}=t,a=Path.levels(r),i=Text$1.isText(o)?[]:Array.from(Node$1.nodes(o),(e=>{var[,t]=e;return r.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 _=Path.transform(m,t);d.push(_)}var h=d[d.length-1],g=c[c.length-1],v=h.concat(g);return[...u,...d,v];case"remove_node":var{path:y}=t;return[...Path.ancestors(y)];case"split_node":var{path:E}=t;return[...Path.levels(E),Path.next(E)];default:return[]}},getFragment=e=>{var{selection:t}=e;return t?Node$1.fragment(e,t):[]},normalizeNode=(e,t)=>{var[n,o]=t;if(!Text$1.isText(n))if(Element$2.isElement(n)&&0===n.children.length){Transforms.insertNodes(e,{text:""},{at:o.concat(0),voids:!0})}else for(var r=!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,o);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))!==r)Transforms.removeNodes(e,{at:o.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:o.concat(a+1),voids:!0}),a++}}else{Transforms.insertNodes(e,{text:""},{at:o.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:o.concat(a),voids:!0}),a--):""===c.text?(Transforms.removeNodes(e,{at:o.concat(a-1),voids:!0}),a--):""===l.text&&(Transforms.removeNodes(e,{at:o.concat(a),voids:!0}),a--))}}}},shouldNormalize=(e,t)=>{var{iteration:n,initialDirtyPathsLength:o}=t,r=42*o;if(n>r)throw new Error("Could not completely normalize the editor after ".concat(r," 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:o="lowest",at:r=e.selection,match:a}=t;if(r){var i=Editor.path(e,r),s="lowest"===o;for(var[l,c]of Editor.levels(e,{at:i,voids:n,match:a,reverse:s}))if(!Text$1.isText(l))if(Range.isRange(r)){if(Path.isAncestor(c,r.anchor.path)&&Path.isAncestor(c,r.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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o}=e;if(o){var r=(t,n)=>{if(!Text$1.isText(t))return!1;var[o,r]=Editor.parent(e,n);return!e.isVoid(o)||e.markableVoid(o)},a=Range.isExpanded(o),i=!1;if(!a){var[s,l]=Editor.node(e,o);if(s&&r(s,l)){var[c]=Editor.parent(e,l);i=c&&e.markableVoid(c)}}if(a||i)Transforms.setNodes(e,{[t]:n},{match:r,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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={anchor:Editor.point(e,t,{edge:"end"}),focus:Editor.end(e,[])},{distance:a=1}=o,i=0;for(var s of Editor.positions(e,_objectSpread$7$1(_objectSpread$7$1({},o),{},{at:r}))){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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={anchor:Editor.start(e,[]),focus:Editor.point(e,t,{edge:"start"})},{distance:a=1}=o,i=0;for(var s of Editor.positions(e,_objectSpread$6$2(_objectSpread$6$2({},o),{},{at:r,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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,marks:r}=e;if(o){if(r){var a=_objectSpread$3$2({text:t},r);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,[o]=n;return 0===n.length||1===n.length&&Text$1.isText(o)&&""===o.text&&!e.isVoid(t)},isEnd=(e,t,n)=>{var o=Editor.end(e,n);return Point.equals(t,o)},isNormalizing=e=>{var t=NORMALIZING.get(e);return void 0===t||t},isStart=(e,t,n)=>{if(0!==t.offset)return!1;var o=Editor.start(e,n);return Point.equals(t,o)},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]:{},o=Editor.path(e,t,n);return[Node$1.leaf(e,o),o]};function levels(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,reverse:o=!1,voids:r=!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]),!r&&Element$2.isElement(l)&&Editor.isVoid(e,l)))break;o&&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:o,focus:r}=n;if(t)return t;if(Range.isExpanded(n)){if(Range.isBackward(n)&&([r,o]=[o,r]),Editor.isEnd(e,o,o.path)){var a=Editor.after(e,o);a&&(o=a)}var[i]=Editor.nodes(e,{match:Text$1.isText,at:{anchor:o,focus:r}});if(i){var[s]=i;return _objectWithoutProperties$1(s,_excluded$1$1)}return{}}var{path:l}=o,[c]=Editor.leaf(e,l);if(0===o.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,[,_]=f;Path.isAncestor(_,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:o=!1}=t,{match:r,at:a=e.selection}=t;if(a){var i=Editor.after(e,a,{voids:o});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==r)if(Path.isPath(a)){var[c]=Editor.parent(e,a);r=e=>c.children.includes(e)}else r=()=>!0;var[u]=Editor.nodes(e,{at:l,match:r,mode:n,voids:o});return u}}},node=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=Editor.path(e,t,n),r=Node$1.get(e,o);return[r,o]};function nodes(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:n=e.selection,mode:o="all",universal:r=!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)))}}),_=[];for(var[h,g]of m)if(!s||!Element$2.isElement(h)||Editor.isSelectable(e,h)){var v=p&&0===Path.compare(g,p[1]);if("highest"!==o||!v)if(l(h,g))if("lowest"===o&&v)p=[h,g];else{var y="lowest"===o?p:[h,g];y&&(r?_.push(y):yield y),p=[h,g]}else if(r&&!v&&Text$1.isText(h))return}"lowest"===o&&p&&(r?_.push(p):yield p),r&&(yield*_)}}()}var normalize=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{force:n=!1,operation:o}=t,r=e=>DIRTY_PATHS.get(e)||[],a=e=>{var t=r(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!==r(e).length&&Editor.withoutNormalizing(e,(()=>{for(var t of r(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:o})}for(var l=r(e),c=l.length,u=0;0!==l.length;){if(!e.shouldNormalize({dirtyPaths:l,iteration:u,initialDirtyPathsLength:c,operation:o}))return;var d=a(e);if(Node$1.has(e,d)){var f=Editor.node(e,d);e.normalizeNode(f,{operation:o})}u++,l=r(e)}}))}},parent=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=Editor.path(e,t,n),r=Path.parent(o);return Editor.node(e,r)},pathRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:o="forward"}=n,r={current:t,affinity:o,unref(){var{current:t}=r;return Editor.pathRefs(e).delete(r),r.current=null,t}};return Editor.pathRefs(e).add(r),r},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:o,edge:r}=n;if(Path.isPath(t))if("start"===r){var[,a]=Node$1.first(e,t);t=a}else if("end"===r){var[,i]=Node$1.last(e,t);t=i}return Range.isRange(t)&&(t="start"===r?Range.start(t):"end"===r?Range.end(t):Path.common(t.anchor.path,t.focus.path)),Point.isPoint(t)&&(t=t.path),null!=o&&(t=t.slice(0,o)),t},pointRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:o="forward"}=n,r={current:t,affinity:o,unref(){var{current:t}=r;return Editor.pointRefs(e).delete(r),r.current=null,t}};return Editor.pointRefs(e).add(r),r},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:o="start"}=n;if(Path.isPath(t)){var r;if("end"===o){var[,a]=Node$1.last(e,t);r=a}else{var[,i]=Node$1.first(e,t);r=i}var s=Node$1.get(e,r);if(!Text$1.isText(s))throw new Error("Cannot get the ".concat(o," point in the node at path [").concat(t,"] because it has no ").concat(o," text node."));return{path:r,offset:"end"===o?s.text.length:0}}if(Range.isRange(t)){var[l,c]=Range.edges(t);return"start"===o?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:o="offset",reverse:r=!1,voids:a=!1,ignoreNonSelectable:i=!1}=t;if(n){var s=Editor.range(e,n),[l,c]=Range.edges(s),u=r?c:l,d=!1,f="",p=0,m=0,_=0;for(var[h,g]of Editor.nodes(e,{at:n,reverse:r,voids:a,ignoreNonSelectable:i})){if(Element$2.isElement(h)){if(!a&&(e.isVoid(h)||e.isElementReadOnly(h))){yield Editor.start(e,g);continue}if(e.isInline(h))continue;if(Editor.hasInlines(e,h)){var v=Path.isAncestor(g,c.path)?c:Editor.end(e,g),y=Path.isAncestor(g,l.path)?l:Editor.start(e,g);f=Editor.string(e,{anchor:y,focus:v},{voids:a}),d=!0}}if(Text$1.isText(h)){var E=Path.equals(g,u.path);for(E?(m=r?u.offset:h.text.length-u.offset,_=u.offset):(m=h.text.length,_=r?m:0),(E||d||"offset"===o)&&(yield{path:g,offset:_},d=!1);;){if(0===p){if(""===f)break;p=b(f,o,r),f=splitByCharacterDistance(f,p,r)[1]}if(_=r?_-p:_+p,(m-=p)<0){p=-m;break}p=0,yield{path:g,offset:_}}}}}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:o=!1}=t,{match:r,at:a=e.selection}=t;if(a){var i=Editor.before(e,a,{voids:o});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==r)if(Path.isPath(a)){var[c]=Editor.parent(e,a);r=e=>c.children.includes(e)}else r=()=>!0;var[u]=Editor.nodes(e,{reverse:!0,at:l,match:r,mode:n,voids:o});return u}}},rangeRef=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:o="forward"}=n,r={current:t,affinity:o,unref(){var{current:t}=r;return Editor.rangeRefs(e).delete(r),r.current=null,t}};return Editor.rangeRefs(e).add(r),r},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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=(t,n)=>{if(!Text$1.isText(t))return!1;var[o,r]=Editor.parent(e,n);return!e.isVoid(o)||e.markableVoid(o)},r=Range.isExpanded(n),a=!1;if(!r){var[i,s]=Editor.node(e,n);if(i&&o(i,s)){var[l]=Editor.parent(e,s);a=l&&e.markableVoid(l)}}if(r||a)Transforms.unsetNodes(e,t,{match:o,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:o=!1}=n,r=Editor.range(e,t),[a,i]=Range.edges(r),s="";for(var[l,c]of Editor.nodes(e,{at:r,match:Text$1.isText,voids:o})){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:o=!1}=n,[r,a]=Range.edges(t);if(0!==r.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:o}),s=i?i[1]:[],l={anchor:Editor.start(e,r),focus:a},c=!0;for(var[u,d]of Editor.nodes(e,{at:l,match:Text$1.isText,reverse:!0,voids:o}))if(c)c=!1;else if(""!==u.text||Path.isBefore(d,s)){a={path:d,offset:u.text.length};break}return{anchor:r,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[o,r]=t;return Element$2.isElement(o)&&Editor.isEmpty(e,o)||Text$1.isText(o)&&""===o.text&&0!==r[r.length-1]},deleteText=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var n,o,{reverse:r=!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:r?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),_=Editor.end(e,[]);Point.equals(m,_)||(l=Editor.unhangRange(e,l,{voids:s}))}var[h,g]=Range.edges(l),v=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:h,voids:s}),y=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:g,voids:s}),E=v&&y&&!Path.equals(v[1],y[1]),b=Path.equals(h.path,g.path),w=s?null:null!==(n=Editor.void(e,{at:h,mode:"highest"}))&&void 0!==n?n:Editor.elementReadOnly(e,{at:h,mode:"highest"}),C=s?null:null!==(o=Editor.void(e,{at:g,mode:"highest"}))&&void 0!==o?o:Editor.elementReadOnly(e,{at:g,mode:"highest"});if(w){var R=Editor.before(e,h);R&&v&&Path.isAncestor(v[1],R.path)&&(h=R)}if(C){var S=Editor.after(e,g);S&&y&&Path.isAncestor(y[1],S.path)&&(g=S)}var D,T=[];for(var O of Editor.nodes(e,{at:l,voids:s})){var[A,x]=O;D&&0===Path.compare(x,D)||(!s&&Element$2.isElement(A)&&(Editor.isVoid(e,A)||Editor.isElementReadOnly(e,A))||!Path.isCommon(x,h.path)&&!Path.isCommon(x,g.path))&&(T.push(O),D=x)}var I=Array.from(T,(t=>{var[,n]=t;return Editor.pathRef(e,n)})),N=Editor.pointRef(e,h),k=Editor.pointRef(e,g),$="";if(!b&&!w){var F=N.current,[P]=Editor.leaf(e,F),{path:M}=F,{offset:L}=h,B=P.text.slice(L);B.length>0&&(e.apply({type:"remove_text",path:M,offset:L,text:B}),$=B)}if(I.reverse().map((e=>e.unref())).filter((e=>null!==e)).forEach((t=>Transforms.removeNodes(e,{at:t,voids:s}))),!C){var j=k.current,[U]=Editor.leaf(e,j),{path:V}=j,H=b?h.offset:0,z=U.text.slice(H,g.offset);z.length>0&&(e.apply({type:"remove_text",path:V,offset:H,text:z}),$=z)}!b&&E&&k.current&&N.current&&Transforms.mergeNodes(e,{at:k.current,hanging:!0,voids:s}),u&&r&&"character"===a&&$.length>1&&$.match(/[\u0E00-\u0E7F]+/)&&Transforms.insertText(e,$.slice(0,$.length-i));var K=N.unref(),W=k.unref(),q=r?K||W:W||K;null==t.at&&q&&Transforms.select(e,q)}}}))},insertFragment=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{hanging:o=!1,voids:r=!1}=n,{at:a=getDefaultInsertLocation(e),batchDirty:i=!0}=n;if(t.length){if(Range.isRange(a))if(o||(a=Editor.unhangRange(e,a,{voids:r})),Range.isCollapsed(a))a=a.anchor;else{var[,s]=Range.edges(a);if(!r&&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(r||!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:r});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:r}),[,f]=d,p=Editor.isStart(e,a,f),m=Editor.isEnd(e,a,f),_=p&&m,h=!p||p&&m,g=!m,[,v]=Node$1.first({children:t},[]),[,y]=Node$1.last({children:t},[]),E=[],b=t=>{var[n,o]=t;return!(0===o.length)&&(!!_||!(h&&Path.isAncestor(o,v)&&Element$2.isElement(n)&&!e.isVoid(n)&&!e.isInline(n))&&!(g&&Path.isAncestor(o,y)&&Element$2.isElement(n)&&!e.isVoid(n)&&!e.isInline(n)))};for(var w of Node$1.nodes({children:t},{pass:b}))b(w)&&E.push(w);var C=[],R=[],S=[],D=!0,T=!1;for(var[O]of E)Element$2.isElement(O)&&!e.isInline(O)?(D=!1,T=!0,R.push(O)):D?C.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:r}),[,x]=A,I=Editor.isStart(e,a,x),N=Editor.isEnd(e,a,x),k=Editor.pathRef(e,m&&!S.length?Path.next(f):f),$=Editor.pathRef(e,N?Path.next(x):x);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||C.length>0)&&(!m||S.length>0),voids:r});var F,P=Editor.pathRef(e,!I||I&&N?Path.next(x):x);if(Transforms.insertNodes(e,C,{at:P.current,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:r,batchDirty:i}),_&&!C.length&&R.length&&!S.length&&Transforms.delete(e,{at:f,voids:r}),Transforms.insertNodes(e,R,{at:k.current,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),mode:"lowest",voids:r,batchDirty:i}),Transforms.insertNodes(e,S,{at:$.current,match:t=>Text$1.isText(t)||Editor.isInline(e,t),mode:"highest",voids:r,batchDirty:i}),!n.at)if(S.length>0&&$.current?F=Path.previous($.current):R.length>0&&k.current?F=Path.previous(k.current):P.current&&(F=Path.previous(P.current)),F){var M=Editor.end(e,F);Transforms.select(e,M)}P.unref(),k.unref(),$.unref()}}}))},collapse$1=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{edge:n="anchor"}=t,{selection:o}=e;if(o)if("anchor"===n)Transforms.select(e,o.anchor);else if("focus"===n)Transforms.select(e,o.focus);else if("start"===n){var[r]=Range.edges(o);Transforms.select(e,r)}else if("end"===n){var[,a]=Range.edges(o);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:o=1,unit:r="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:o,unit:r,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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o}=e,{edge:r="both"}=n;if(o){"start"===r&&(r=Range.isBackward(o)?"focus":"anchor"),"end"===r&&(r=Range.isBackward(o)?"anchor":"focus");var{anchor:a,focus:i}=o,s="anchor"===r?a:i;Transforms.setSelection(e,{["anchor"===r?"anchor":"focus"]:_objectSpread$1$4(_objectSpread$1$4({},s),t)})}},setSelection=(e,t)=>{var{selection:n}=e,o={},r={};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])&&(o[a]=n[a],r[a]=t[a]);Object.keys(o).length>0&&e.apply({type:"set_selection",properties:o,newProperties:r})}},insertNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Editor.withoutNormalizing(e,(()=>{var{hanging:o=!1,voids:r=!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(o||(s=Editor.unhangRange(e,s,{voids:r})),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:r});if(!p)return;var[,m]=p,_=Editor.pathRef(e,m),h=Editor.isEnd(e,s,m);Transforms.splitNodes(e,{at:s,match:l,mode:a,voids:r});var g=_.unref();s=h?Path.next(g):g}var v=Path.parent(s),y=s[s.length-1];if(r||!Editor.void(e,{at:v})){if(i){var E=[],b=Path.levels(v);batchDirtyPaths(e,(()=>{var n=function(){var t=v.concat(y);y++;var n={type:"insert_node",path:t,node:o};e.apply(n),s=Path.next(s),E.push(n),Text$1.isText?b.push(...Array.from(Node$1.nodes(o),(e=>{var[,n]=e;return t.concat(n)}))):b.push(t)};for(var o of t)n()}),(()=>{updateDirtyPaths(e,b,(e=>{var t=e;for(var n of E)if(Path.operationCanTransformPath(n)&&!(t=Path.transform(t,n)))return null;return t}))}))}else for(var w of t){var C=v.concat(y);y++,e.apply({type:"insert_node",path:C,node:w}),s=Path.next(s)}if(s=Path.previous(s),c){var R=Editor.end(e,s);R&&Transforms.select(e,R)}}}}))},liftNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{at:n=e.selection,mode:o="lowest",voids:r=!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:o,voids:r}),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 _=Path.next(f);Transforms.moveNodes(e,{at:c,to:_,voids:r}),Transforms.removeNodes(e,{at:f,voids:r})}else if(0===p)Transforms.moveNodes(e,{at:c,to:f,voids:r});else if(p===m-1){var h=Path.next(f);Transforms.moveNodes(e,{at:c,to:h,voids:r})}else{var g=Path.next(c),v=Path.next(f);Transforms.splitNodes(e,{at:g,voids:r}),Transforms.moveNodes(e,{at:c,to:v,voids:r})}}}}))},_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:o=e.selection}=t,{hanging:r=!1,voids:a=!1,mode:i="lowest"}=t;if(o){if(null==n)if(Path.isPath(o)){var[s]=Editor.parent(e,o);n=e=>s.children.includes(e)}else n=t=>Element$2.isElement(t)&&Editor.isBlock(e,t);if(!r&&Range.isRange(o)&&(o=Editor.unhangRange(e,o,{voids:a})),Range.isRange(o))if(Range.isCollapsed(o))o=o.anchor;else{var[,l]=Range.edges(o),c=Editor.pointRef(e,l);Transforms.delete(e,{at:o}),o=c.unref(),null==t.at&&Transforms.select(e,o)}var[u]=Editor.nodes(e,{at:o,match:n,voids:a,mode:i}),d=Editor.previous(e,{at:o,match:n,voids:a,mode:i});if(u&&d){var[f,p]=u,[m,_]=d;if(0!==p.length&&0!==_.length){var h,g,v=Path.next(_),y=Path.common(p,_),E=Path.isSibling(p,_),b=Array.from(Editor.levels(e,{at:p}),(e=>{var[t]=e;return t})).slice(y.length).slice(0,-1),w=Editor.above(e,{at:p,mode:"highest",match:t=>b.includes(t)&&hasSingleChildNest(e,t)}),C=w&&Editor.pathRef(e,w[1]);if(Text$1.isText(f)&&Text$1.isText(m)){var R=_objectWithoutProperties$1(f,_excluded$5);g=m.text.length,h=R}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)));R=_objectWithoutProperties$1(f,_excluded2$4);g=m.children.length,h=R}E||Transforms.moveNodes(e,{at:p,to:v,voids:a}),C&&Transforms.removeNodes(e,{at:C.current,voids:a}),Editor.shouldMergeNodesRemovePrevNode(e,d,u)?Transforms.removeNodes(e,{at:_,voids:a}):e.apply({type:"merge_node",path:v,position:g,properties:h}),C&&C.unref()}}}}))},moveNodes=(e,t)=>{Editor.withoutNormalizing(e,(()=>{var{to:n,at:o=e.selection,mode:r="lowest",voids:a=!1}=t,{match:i}=t;if(o){null==i&&(i=Path.isPath(o)?matchPath(e,o):t=>Element$2.isElement(t)&&Editor.isBlock(e,t));var s=Editor.pathRef(e,n),l=Editor.nodes(e,{at:o,match:i,mode:r,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:o=!1,mode:r="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:o}));var s=Editor.nodes(e,{at:a,match:i,mode:r,voids:o}),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:o,at:r=e.selection,compare:a,merge:i}=n,{hanging:s=!1,mode:l="lowest",split:c=!1,voids:u=!1}=n;if(r){if(null==o&&(o=Path.isPath(r)?matchPath(e,r):t=>Element$2.isElement(t)&&Editor.isBlock(e,t)),!s&&Range.isRange(r)&&(r=Editor.unhangRange(e,r,{voids:u})),c&&Range.isRange(r)){if(Range.isCollapsed(r)&&Editor.leaf(e,r.anchor)[0].text.length>0)return;var d=Editor.rangeRef(e,r,{affinity:"inward"}),[f,p]=Range.edges(r),m="lowest"===l?"lowest":"highest",_=Editor.isEnd(e,p,p.path);Transforms.splitNodes(e,{at:p,match:o,mode:m,voids:u,always:!_});var h=Editor.isStart(e,f,f.path);Transforms.splitNodes(e,{at:f,match:o,mode:m,voids:u,always:!h}),r=d.unref(),null==n.at&&Transforms.select(e,r)}for(var[g,v]of(a||(a=(e,t)=>e!==t),Editor.nodes(e,{at:r,match:o,mode:l,voids:u}))){var y={},E={};if(0!==v.length){var b=!1;for(var w in t)"children"!==w&&"text"!==w&&a(t[w],g[w])&&(b=!0,g.hasOwnProperty(w)&&(y[w]=g[w]),i?null!=t[w]&&(E[w]=i(g[w],t[w])):null!=t[w]&&(E[w]=t[w]));b&&e.apply({type:"set_node",path:v,properties:y,newProperties:E})}}}}))},deleteRange=(e,t)=>{if(Range.isCollapsed(t))return t.anchor;var[,n]=Range.edges(t),o=Editor.pointRef(e,n);return Transforms.delete(e,{at:t}),o.unref()},splitNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{mode:n="lowest",voids:o=!1}=t,{match:r,at:a=e.selection,height:i=0,always:s=!1}=t;if(null==r&&(r=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);r=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:r,mode:n,voids:o});if(!p)return;var m=Editor.void(e,{at:a,mode:"highest"});if(!o&&m){var[_,h]=m;if(Element$2.isElement(_)&&e.isInline(_)){var g=Editor.after(e,h);if(!g){var v=Path.next(h);Transforms.insertNodes(e,{text:""},{at:v,voids:o}),g=Editor.point(e,v)}a=g,s=!0}i=a.path.length-h.length+1,s=!0}d=Editor.pointRef(e,a);var y=a.path.length-i,[,E]=p,b=a.path.slice(0,y),w=0===i?a.offset:a.path[y]+0;for(var[C,R]of Editor.levels(e,{at:b,reverse:!0,voids:o})){var S=!1;if(R.length<E.length||0===R.length||!o&&Element$2.isElement(C)&&Editor.isVoid(e,C))break;var D=f.current,T=Editor.isEnd(e,D,R);if(s||!f||!Editor.isEdge(e,D,R)){S=!0;var O=Node$1.extractProps(C);e.apply({type:"split_node",path:R,position:w,properties:O})}w=R[R.length-1]+(S||T?1:0)}if(null==t.at){var A=d.current||Editor.end(e,[]);Transforms.select(e,A)}}finally{var x;f.unref(),null===(x=d)||void 0===x||x.unref()}}}))},unsetNodes=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Array.isArray(t)||(t=[t]);var o={};for(var r of t)o[r]=null;Transforms.setNodes(e,o,n)},unwrapNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Editor.withoutNormalizing(e,(()=>{var{mode:n="lowest",split:o=!1,voids:r=!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:r}),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);o&&s&&(a=Range.intersection(s.current,a)),Transforms.liftNodes(e,{at:a,match:e=>Element$2.isAncestor(n)&&n.children.includes(e),voids:r})};for(var d of c)u();s&&s.unref()}}))};function ownKeys$f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o="lowest",split:r=!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)),r&&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 r=Array.from(Editor.nodes(e,{at:n,match:i,mode:o,voids:a}));if(r.length>0){var[l]=r,c=r[r.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),_=Editor.node(e,f),[h]=_,g=f.length+1,v=Path.next(d.slice(0,g)),y=_objectSpread$f(_objectSpread$f({},t),{},{children:[]});Transforms.insertNodes(e,y,{at:v,voids:a}),Transforms.moveNodes(e,{at:m,match:e=>Element$2.isAncestor(h)&&h.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),o=0;o<t;o++)n[o]=arguments[o];return apply(e,...n)},addMark:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return addMark(e,...n)},deleteBackward:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteBackward(e,...n)},deleteForward:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteForward(e,...n)},deleteFragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteFragment(e,...n)},getFragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return getFragment(e,...n)},insertBreak:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertBreak(e,...n)},insertSoftBreak:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertSoftBreak(e,...n)},insertFragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertFragment(e,...n)},insertNode:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertNode(e,...n)},insertText:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertText(e,...n)},normalizeNode:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return normalizeNode(e,...n)},removeMark:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return removeMark(e,...n)},getDirtyPaths:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return getDirtyPaths(e,...n)},shouldNormalize:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return shouldNormalize(e,...n)},above:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return above(e,...n)},after:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return after(e,...n)},before:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return before(e,...n)},collapse:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return collapse$1(e,...n)},delete:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deleteText(e,...n)},deselect:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return deselect(e,...n)},edges:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return edges(e,...n)},elementReadOnly:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return elementReadOnly(e,...n)},end:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return end(e,...n)},first:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return first(e,...n)},fragment:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return fragment(e,...n)},getMarks:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return marks(e,...n)},hasBlocks:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasBlocks(e,...n)},hasInlines:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasInlines(e,...n)},hasPath:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasPath(e,...n)},hasTexts:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return hasTexts(e,...n)},insertNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return insertNodes(e,...n)},isBlock:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isBlock(e,...n)},isEdge:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isEdge(e,...n)},isEmpty:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isEmpty$1(e,...n)},isEnd:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isEnd(e,...n)},isNormalizing:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isNormalizing(e,...n)},isStart:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return isStart(e,...n)},last:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return last$1(e,...n)},leaf:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return leaf(e,...n)},levels:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return levels(e,...n)},liftNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return liftNodes(e,...n)},mergeNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return mergeNodes(e,...n)},move:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return move(e,...n)},moveNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return moveNodes(e,...n)},next:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return next(e,...n)},node:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return node(e,...n)},nodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return nodes(e,...n)},normalize:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return normalize(e,...n)},parent:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return parent(e,...n)},path:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return path(e,...n)},pathRef:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pathRef(e,...n)},pathRefs:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pathRefs(e,...n)},point:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return point(e,...n)},pointRef:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pointRef(e,...n)},pointRefs:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return pointRefs(e,...n)},positions:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return positions(e,...n)},previous:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return previous(e,...n)},range:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return range(e,...n)},rangeRef:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return rangeRef(e,...n)},rangeRefs:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return rangeRefs(e,...n)},removeNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return removeNodes(e,...n)},select:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return select(e,...n)},setNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setNodes(e,...n)},setNormalizing:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setNormalizing(e,...n)},setPoint:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setPoint(e,...n)},setSelection:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return setSelection(e,...n)},splitNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return splitNodes(e,...n)},start:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return start(e,...n)},string:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return string(e,...n)},unhangRange:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return unhangRange(e,...n)},unsetNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return unsetNodes(e,...n)},unwrapNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return unwrapNodes(e,...n)},void:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return getVoid(e,...n)},withoutNormalizing:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return withoutNormalizing(e,...n)},wrapNodes:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return wrapNodes(e,...n)},shouldMergeNodesRemovePrevNode:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return shouldMergeNodesRemovePrevNode(e,...n)}};return e};function getCharacterBefore(e,t,n={}){const{filterVoids:o}=n,r=Editor.before(e,t,{unit:"character",voids:o});if(r){const n=Editor.range(e,r,Range.isRange(t)?Range.start(t):t),o=Editor.string(e,n);return{range:n,text:o,void:0===o.length}}}function getCharacterAfter(e,t,n={}){const{filterVoids:o}=n,r=Editor.after(e,t,{unit:"character",voids:o});if(r){const n=Editor.range(e,r,Range.isRange(t)?Range.end(t):t),o=Editor.string(e,n);return{range:n,text:o,void:0===o.length}}}const defaultOptions$2={direction:"before"};function getMatchRange(e,t,n=[" "],o=defaultOptions$2){const{include:r,direction:a}={...defaultOptions$2,...o};let[i,s]=Range.edges(t),l=i;function c(t){const o="after"===t?Editor.after(e,l,{unit:"character"}):Editor.before(e,l,{unit:"character"}),r=o&&Editor.string(e,"after"===t?{anchor:l,focus:o}:{anchor:o,focus:l}),a=r&&r["after"===t?0:r.length-1];return!(!o||!a||n.includes(a))&&(l=o,0!==l.offset)}if("before"!==a){for(l=s;c("after"););s=l}if("after"!==a){for(l=i;c("before"););i=l}return r?{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 o=Editor.string(e,n);return o.startsWith(MENTION_CHARACTER)?{range:n,text:o.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 o=e.selection?getCharacterAfter(e,e.selection):void 0;!o||o.void?Transforms.insertText(e," "):isEmptyString(o.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}),o=t&&!isEmptyString(t.text),r=n&&!isEmptyString(n.text);if(isSelectionCollapsed(e.selection)){const t=(o?" ":"")+MENTION_CHARACTER+(r?" ":"");e.insertText(t),r&&Transforms.move(e,{distance:1,unit:"character",reverse:!0})}else{const t=(o?" ":"")+MENTION_CHARACTER;e.insertText(t,{at:Range.start(e.selection)}),r&&e.insertText(" ",{at:Range.end(e.selection)}),Transforms.collapse(e,{edge:"end"})}}function withMentions(e){const{isInline:t,isVoid:n,markableVoid:o,deleteBackward:r}=e;return e.isInline=e=>isComposerBodyMention(e)||t(e),e.isVoid=e=>isComposerBodyMention(e)||n(e),e.markableVoid=e=>isComposerBodyMention(e)||o(e),e.deleteBackward=t=>{const{selection:n}=e;if(isSelectionCollapsed(n)){const[o]=Editor.nodes(e,{at:"character"===t?Editor.before(e,n,{unit:"character"}):n,match:isComposerBodyMention});r(t),o&&Transforms.insertText(e,MENTION_CHARACTER)}else r(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},o)=>{const r=t?Slot:"span";return React__default.default.createElement(r,{...n,ref:o},e)})),CommentLink$1=React.forwardRef((({children:e,asChild:t,...n},o)=>{const r=t?Slot:"a";return React__default.default.createElement(r,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:o},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:o,...r},a)=>{const i=o?Slot:"div",{Mention:s,Link:l}=React.useMemo((()=>({...defaultBodyComponents,...t})),[t]);return e&&e?.content?React__default.default.createElement(i,{...r,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 o=getAlignment(e),r=getAlignmentAxis(e),a=getAxisLength(r);let i="x"===r?o===(n?"end":"start")?"right":"left":"start"===o?"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 o=["left","right"],r=["right","left"],a=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return n?t?r:o:t?o:r;case"left":case"right":return t?a:i;default:return[]}}function getOppositeAxisPlacements(e,t,n,o){const r=getAlignment(e);let a=getSideList(getSide(e),"start"===n,o);return r&&(a=a.map((e=>e+"-"+r)),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:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function computeCoordsFromPlacement(e,t,n){let{reference:o,floating:r}=e;const a=getSideAxis(t),i=getAlignmentAxis(t),s=getAxisLength(i),l=getSide(t),c="y"===a,u=o.x+o.width/2-r.width/2,d=o.y+o.height/2-r.height/2,f=o[s]/2-r[s]/2;let p;switch(l){case"top":p={x:u,y:o.y-r.height};break;case"bottom":p={x:u,y:o.y+o.height};break;case"right":p={x:o.x+o.width,y:d};break;case"left":p={x:o.x-r.width,y:d};break;default:p={x:o.x,y:o.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:o="bottom",strategy:r="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:r}),{x:u,y:d}=computeCoordsFromPlacement(c,o,l),f=o,p={},m=0;for(let n=0;n<s.length;n++){const{name:a,fn:_}=s[n],{x:h,y:g,data:v,reset:y}=await _({x:u,y:d,initialPlacement:o,placement:f,strategy:r,middlewareData:p,rects:c,platform:i,elements:{reference:e,floating:t}});u=null!=h?h:u,d=null!=g?g:d,p={...p,[a]:{...p[a],...v}},y&&m<=50&&(m++,"object"==typeof y&&(y.placement&&(f=y.placement),y.rects&&(c=!0===y.rects?await i.getElementRects({reference:e,floating:t,strategy:r}):y.rects),({x:u,y:d}=computeCoordsFromPlacement(c,f,l))),n=-1)}return{x:u,y:d,placement:f,strategy:r,middlewareData:p}};async function detectOverflow(e,t){var n;void 0===t&&(t={});const{x:o,y:r,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),_=s[f?"floating"===d?"reference":"floating":d],h=rectToClientRect(await a.getClippingRect({element:null==(n=await(null==a.isElement?void 0:a.isElement(_)))||n?_:_.contextElement||await(null==a.getDocumentElement?void 0:a.getDocumentElement(s.floating)),boundary:c,rootBoundary:u,strategy:l})),g="floating"===d?{x:o,y:r,width:i.floating.width,height:i.floating.height}:i.reference,v=await(null==a.getOffsetParent?void 0:a.getOffsetParent(s.floating)),y=await(null==a.isElement?void 0:a.isElement(v))&&await(null==a.getScale?void 0:a.getScale(v))||{x:1,y:1},E=rectToClientRect(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:g,offsetParent:v,strategy:l}):g);return{top:(h.top-E.top+m.top)/y.y,bottom:(E.bottom-h.bottom+m.bottom)/y.y,left:(h.left-E.left+m.left)/y.x,right:(E.right-h.right+m.right)/y.x}}const arrow$3=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,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:o},p=getAlignmentAxis(r),m=getAxisLength(p),_=await i.getDimensions(c),h="y"===p,g=h?"top":"left",v=h?"bottom":"right",y=h?"clientHeight":"clientWidth",E=a.reference[m]+a.reference[p]-f[p]-a.floating[m],b=f[p]-a.reference[p],w=await(null==i.getOffsetParent?void 0:i.getOffsetParent(c));let C=w?w[y]:0;C&&await(null==i.isElement?void 0:i.isElement(w))||(C=s.floating[y]||a.floating[m]);const R=E/2-b/2,S=C/2-_[m]/2-1,D=min$1(d[g],S),T=min$1(d[v],S),O=D,A=C-_[m]-T,x=C/2-_[m]/2+R,I=clamp$1(O,x,A),N=!l.arrow&&null!=getAlignment(r)&&x!==I&&a.reference[m]/2-(x<O?D:T)-_[m]/2<0,k=N?x<O?x-O:x-A:0;return{[p]:f[p]+k,data:{[p]:I,centerOffset:x-I-k,...N&&{alignmentOffset:k}},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,o,r;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),_=void 0!==d||f===placements?getPlacementList(d||null,p,f):f,h=await detectOverflow(t,m),g=(null==(n=i.autoPlacement)?void 0:n.index)||0,v=_[g];if(null==v)return{};const y=getAlignmentSides(v,a,await(null==l.isRTL?void 0:l.isRTL(c.floating)));if(s!==v)return{reset:{placement:_[0]}};const E=[h[getSide(v)],h[y[0]],h[y[1]]],b=[...(null==(o=i.autoPlacement)?void 0:o.overflows)||[],{placement:v,overflows:E}],w=_[g+1];if(w)return{data:{index:g+1,overflows:b},reset:{placement:w}};const C=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])),R=(null==(r=C.filter((e=>e[2].slice(0,getAlignment(e[0])?2:3).every((e=>e<=0))))[0])?void 0:r[0])||C[0][0];return R!==s?{data:{index:g+1,overflows:b},reset:{placement:R}}:{}}}},flip$2=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,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:_=!0,...h}=evaluate(e,t);if(null!=(n=a.arrow)&&n.alignmentOffset)return{};const g=getSide(r),v=getSideAxis(s),y=getSide(s)===s,E=await(null==l.isRTL?void 0:l.isRTL(c.floating)),b=f||(y||!_?[getOppositePlacement(s)]:getExpandedPlacements(s)),w="none"!==m;!f&&w&&b.push(...getOppositeAxisPlacements(s,_,m,E));const C=[s,...b],R=await detectOverflow(t,h),S=[];let D=(null==(o=a.flip)?void 0:o.overflows)||[];if(u&&S.push(R[g]),d){const e=getAlignmentSides(r,i,E);S.push(R[e[0]],R[e[1]])}if(D=[...D,{placement:r,overflows:S}],!S.every((e=>e<=0))){var T,O;const e=((null==(T=a.flip)?void 0:T.index)||0)+1,t=C[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(w){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(r!==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:o="referenceHidden",...r}=evaluate(e,t);switch(o){case"referenceHidden":{const e=getSideOffsets(await detectOverflow(t,{...r,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:isAnySideFullyClipped(e)}}}case"escaped":{const e=getSideOffsets(await detectOverflow(t,{...r,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 o=null;for(let e=0;e<t.length;e++){const r=t[e];!o||r.y-o.y>o.height/2?n.push([r]):n[n.length-1].push(r),o=r}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:o,rects:r,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(o.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],o="top"===getSide(n),r=e.top,a=t.bottom,i=o?e.left:t.left,s=o?e.right:t.right;return{top:r,bottom:a,left:i,right:s,width:s-i,height:a-r,x:i,y:r}}const e="left"===getSide(n),t=max$1(...d.map((e=>e.right))),o=min$1(...d.map((e=>e.left))),r=d.filter((n=>e?n.left===o:n.right===t)),a=r[0].top,i=r[r.length-1].bottom;return{top:a,bottom:i,left:o,right:t,width:t-o,height:i-a,x:o,y:a}}return f}},floating:o.floating,strategy:i});return r.reference.x!==m.reference.x||r.reference.y!==m.reference.y||r.reference.width!==m.reference.width||r.reference.height!==m.reference.height?{reset:{rects:m}}:{}}}};async function convertValueToCoords(e,t){const{placement:n,platform:o,elements:r}=e,a=await(null==o.isRTL?void 0:o.isRTL(r.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,o;const{x:r,y:a,placement:i,middlewareData:s}=t,l=await convertValueToCoords(t,e);return i===(null==(n=s.offset)?void 0:n.placement)&&null!=(o=s.arrow)&&o.alignmentOffset?{}:{x:r+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:o,placement:r}=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:o},u=await detectOverflow(t,l),d=getSideAxis(getSide(r)),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 _=s.fn({...t,[f]:p,[d]:m});return{..._,data:{x:_.x-n,y:_.y-o,enabled:{[f]:a,[d]:i}}}}}},limitShift$2=function(e){return void 0===e&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:r,rects:a,middlewareData:i}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=evaluate(e,t),u={x:n,y:o},d=getSideAxis(r),f=getOppositeAxis(d);let p=u[f],m=u[d];const _=evaluate(s,t),h="number"==typeof _?{mainAxis:_,crossAxis:0}:{mainAxis:0,crossAxis:0,..._};if(l){const e="y"===f?"height":"width",t=a.reference[f]-a.floating[e]+h.mainAxis,n=a.reference[f]+a.reference[e]-h.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(r)),n=a.reference[d]-a.floating[e]+(t&&(null==(g=i.offset)?void 0:g[d])||0)+(t?0:h.crossAxis),o=a.reference[d]+a.reference[e]+(t?0:(null==(v=i.offset)?void 0:v[d])||0)-(t?h.crossAxis:0);m<n?m=n:m>o&&(m=o)}return{[f]:p,[d]:m}}}},size$3=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,o;const{placement:r,rects:a,platform:i,elements:s}=t,{apply:l=()=>{},...c}=evaluate(e,t),u=await detectOverflow(t,c),d=getSide(r),f=getAlignment(r),p="y"===getSideAxis(r),{width:m,height:_}=a.floating;let h,g;"top"===d||"bottom"===d?(h=d,g=f===(await(null==i.isRTL?void 0:i.isRTL(s.floating))?"start":"end")?"left":"right"):(g=d,h="end"===f?"top":"bottom");const v=_-u.top-u.bottom,y=m-u.left-u.right,E=min$1(_-u[h],v),b=min$1(m-u[g],y),w=!t.middlewareData.shift;let C=E,R=b;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(R=y),null!=(o=t.middlewareData.shift)&&o.enabled.y&&(C=v),w&&!f){const e=max$1(u.left,0),t=max$1(u.right,0),n=max$1(u.top,0),o=max$1(u.bottom,0);p?R=m-2*(0!==e||0!==t?e+t:max$1(u.left,u.right)):C=_-2*(0!==n||0!==o?n+o:max$1(u.top,u.bottom))}await l({...t,availableWidth:R,availableHeight:C});const S=await i.getDimensions(s.floating);return m!==S.width||_!==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:o,display:r}=getComputedStyle$1(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!["inline","contents"].includes(r)}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 o;void 0===t&&(t=[]),void 0===n&&(n=!0);const r=getNearestOverflowAncestor(e),a=r===(null==(o=e.ownerDocument)?void 0:o.body),i=getWindow(r);if(a){const e=getFrameElement(i);return t.concat(i,i.visualViewport||[],isOverflowElement(r)?r:[],e&&n?getOverflowAncestors(e):[])}return t.concat(r,getOverflowAncestors(r,[],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,o=parseFloat(t.height)||0;const r=isHTMLElement(e),a=r?e.offsetWidth:n,i=r?e.offsetHeight:o,s=round$1(n)!==a||round$1(o)!==i;return s&&(n=a,o=i),{width:n,height:o,$: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:o,height:r,$:a}=getCssDimensions(t);let i=(a?round$1(n.width):n.width)/o,s=(a?round$1(n.height):n.height)/r;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,o){void 0===t&&(t=!1),void 0===n&&(n=!1);const r=e.getBoundingClientRect(),a=unwrapElement(e);let i=createCoords(1);t&&(o?isElement$1(o)&&(i=getScale(o)):i=getScale(e));const s=shouldAddVisualOffsets(a,n,o)?getVisualOffsets(a):createCoords(0);let l=(r.left+s.x)/i.x,c=(r.top+s.y)/i.y,u=r.width/i.x,d=r.height/i.y;if(a){const e=getWindow(a),t=o&&isElement$1(o)?getWindow(o):o;let n=e,r=getFrameElement(n);for(;r&&o&&t!==n;){const e=getScale(r),t=r.getBoundingClientRect(),o=getComputedStyle$1(r),a=t.left+(r.clientLeft+parseFloat(o.paddingLeft))*e.x,i=t.top+(r.clientTop+parseFloat(o.paddingTop))*e.y;l*=e.x,c*=e.y,u*=e.x,d*=e.y,l+=a,c+=i,n=getWindow(r),r=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 o=e.getBoundingClientRect();return{x:o.left+t.scrollLeft-(n?0:getWindowScrollBarX(e,o)),y:o.top+t.scrollTop}}function convertOffsetParentRelativeRectToViewportRelativeRect(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const a="fixed"===r,i=getDocumentElement(o),s=!!t&&isTopLayer(t.floating);if(o===i||s&&a)return n;let l={scrollLeft:0,scrollTop:0},c=createCoords(1);const u=createCoords(0),d=isHTMLElement(o);if((d||!d&&!a)&&(("body"!==getNodeName(o)||isOverflowElement(i))&&(l=getNodeScroll(o)),isHTMLElement(o))){const e=getBoundingClientRect(o);c=getScale(o),u.x=e.x+o.clientLeft,u.y=e.y+o.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),o=e.ownerDocument.body,r=max$1(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),a=max$1(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let i=-n.scrollLeft+getWindowScrollBarX(e);const s=-n.scrollTop;return"rtl"===getComputedStyle$1(o).direction&&(i+=max$1(t.clientWidth,o.clientWidth)-r),{width:r,height:a,x:i,y:s}}function getViewportRect(e,t){const n=getWindow(e),o=getDocumentElement(e),r=n.visualViewport;let a=o.clientWidth,i=o.clientHeight,s=0,l=0;if(r){a=r.width,i=r.height;const e=isWebKit();(!e||e&&"fixed"===t)&&(s=r.offsetLeft,l=r.offsetTop)}return{width:a,height:i,x:s,y:l}}function getInnerBoundingClientRect(e,t){const n=getBoundingClientRect(e,!0,"fixed"===t),o=n.top+e.clientTop,r=n.left+e.clientLeft,a=isHTMLElement(e)?getScale(e):createCoords(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:r*a.x,y:o*a.y}}function getClientRectFromClippingAncestor(e,t,n){let o;if("viewport"===t)o=getViewportRect(e,n);else if("document"===t)o=getDocumentRect(getDocumentElement(e));else if(isElement$1(t))o=getInnerBoundingClientRect(t,n);else{const n=getVisualOffsets(e);o={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return rectToClientRect(o)}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 o=getOverflowAncestors(e,[],!1).filter((e=>isElement$1(e)&&"body"!==getNodeName(e))),r=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||(r=null);(a?!n&&!r:!n&&"static"===t.position&&!!r&&["absolute","fixed"].includes(r.position)||isOverflowElement(i)&&!n&&hasFixedPositionAncestor(e,i))?o=o.filter((e=>e!==i)):r=t,i=getParentNode(i)}return t.set(e,o),o}function getClippingRect(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const a=[..."clippingAncestors"===n?isTopLayer(t)?[]:getClippingElementAncestors(t,this._c):[].concat(n),o],i=a[0],s=a.reduce(((e,n)=>{const o=getClientRectFromClippingAncestor(t,n,r);return e.top=max$1(o.top,e.top),e.right=min$1(o.right,e.right),e.bottom=min$1(o.bottom,e.bottom),e.left=max$1(o.left,e.left),e}),getClientRectFromClippingAncestor(t,i,r));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 o=isHTMLElement(t),r=getDocumentElement(t),a="fixed"===n,i=getBoundingClientRect(e,!0,a,t);let s={scrollLeft:0,scrollTop:0};const l=createCoords(0);if(o||!o&&!a)if(("body"!==getNodeName(t)||isOverflowElement(r))&&(s=getNodeScroll(t)),o){const e=getBoundingClientRect(t,!0,a,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else r&&(l.x=getWindowScrollBarX(r));const c=!r||o||a?createCoords(0):getHTMLOffset(r,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 o=getTrueOffsetParent(e,t);for(;o&&isTableElement(o)&&isStaticPositioned(o);)o=getTrueOffsetParent(o,t);return o&&isLastTraversableNode(o)&&isStaticPositioned(o)&&!isContainingBlock(o)?n:o||getContainingBlock(e)||n}const getElementRects=async function(e){const t=this.getOffsetParent||getOffsetParent,n=this.getDimensions,o=await n(e.floating);return{reference:getRectRelativeToOffsetParent(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.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,o=null;const r=getDocumentElement(e);function a(){var e;clearTimeout(n),null==(e=o)||e.disconnect(),o=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(r.clientWidth-(c+d))+"px "+-floor$1(r.clientHeight-(u+f))+"px "+-floor$1(c)+"px",threshold:max$1(0,min$1(1,l))||1};let m=!0;function _(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{o=new IntersectionObserver(_,{...p,root:r.ownerDocument})}catch(e){o=new IntersectionObserver(_,p)}o.observe(e)}(!0),a}function autoUpdate(e,t,n,o){void 0===o&&(o={});const{ancestorScroll:r=!0,ancestorResize:a=!0,elementResize:i="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:l=!1}=o,c=unwrapElement(e),u=r||a?[...c?getOverflowAncestors(c):[],...getOverflowAncestors(t)]:[];u.forEach((e=>{r&&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[o]=e;o&&o.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 _=l?getBoundingClientRect(e):null;return l&&function t(){const o=getBoundingClientRect(e);!_||o.x===_.x&&o.y===_.y&&o.width===_.width&&o.height===_.height||n();_=o,f=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach((e=>{r&&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 o=new Map,r={platform:platform,...n},a={...r.platform,_c:o};return computePosition$1(e,t,{...r,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,o,r;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;0!=o--;)if(!deepEqual(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(o=n;0!=o--;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=n;0!=o--;){const n=r[o];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:o=[],platform:r,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(o);deepEqual(f,o)||p(o);const[m,_]=React__namespace.useState(null),[h,g]=React__namespace.useState(null),v=React__namespace.useCallback((e=>{e!==w.current&&(w.current=e,_(e))}),[]),y=React__namespace.useCallback((e=>{e!==C.current&&(C.current=e,g(e))}),[]),E=a||m,b=i||h,w=React__namespace.useRef(null),C=React__namespace.useRef(null),R=React__namespace.useRef(u),S=null!=l,D=useLatestRef(l),T=useLatestRef(r),O=useLatestRef(c),A=React__namespace.useCallback((()=>{if(!w.current||!C.current)return;const e={placement:t,strategy:n,middleware:f};T.current&&(e.platform=T.current),computePosition(w.current,C.current,e).then((e=>{const t={...e,isPositioned:!1!==O.current};x.current&&!deepEqual(R.current,t)&&(R.current=t,ReactDOM__namespace.flushSync((()=>{d(t)})))}))}),[f,t,n,T,O]);index((()=>{!1===c&&R.current.isPositioned&&(R.current.isPositioned=!1,d((e=>({...e,isPositioned:!1}))))}),[c]);const x=React__namespace.useRef(!1);index((()=>(x.current=!0,()=>{x.current=!1})),[]),index((()=>{if(E&&(w.current=E),b&&(C.current=b),E&&b){if(D.current)return D.current(E,b,A);A()}}),[E,b,A,D,S]);const I=React__namespace.useMemo((()=>({reference:w,floating:C,setReference:v,setFloating:y})),[v,y]),N=React__namespace.useMemo((()=>({reference:E,floating:b})),[E,b]),k=React__namespace.useMemo((()=>{const e={position:n,left:0,top:0};if(!N.floating)return e;const t=roundByDPR(N.floating,u.x),o=roundByDPR(N.floating,u.y);return s?{...e,transform:"translate("+t+"px, "+o+"px)",...getDPR(N.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:o}}),[n,s,N.floating,u.x,u.y]);return React__namespace.useMemo((()=>({...u,update:A,refs:I,elements:N,floatingStyles:k})),[u,A,I,N,k])}const arrow$1=e=>({name:"arrow",options:e,fn(t){const{element:n,padding:o}="function"==typeof e?e(t):e;return n&&(r=n,{}.hasOwnProperty.call(r,"current"))?null!=n.current?arrow$2({element:n.current,padding:o}).fn(t):{}:n?arrow$2({element:n,padding:o}).fn(t):{};var r}}),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(),[o,r]=React__default.default.useState(),a=React__default.default.useRef();return React__default.default.useEffect((()=>{const o=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||(r(e),o.set(l,e))}catch(e){console.error(e?.message)}};return o.has(l)?r(o.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]),o}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 o=n[n.length-1];o.selectionBefore&&Transforms.setSelection(t,o.selectionBefore),HistoryEditor.withoutSaving(t,(()=>{Editor.withoutNormalizing(t,(()=>{for(var e of o.operations)t.apply(e)}))})),e.redos.pop(),t.writeHistory("undos",o)}},t.undo=()=>{var{history:e}=t,{undos:n}=e;if(n.length>0){var o=n[n.length-1];HistoryEditor.withoutSaving(t,(()=>{Editor.withoutNormalizing(t,(()=>{var e=o.operations.map(Operation.inverse).reverse();for(var n of e)t.apply(n);o.selectionBefore&&Transforms.setSelection(t,o.selectionBefore)}))})),t.writeHistory("redos",o),e.undos.pop()}},t.apply=e=>{var{operations:o,history:r}=t,{undos:a}=r,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!==o.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();r.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 o=!0}catch(e){}var r=nativeObjectToString$1.call(e);return o&&(t?e[symToStringTag$1]=n:delete e[symToStringTag$1]),r}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 o,r,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=o,a=r;return o=r=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 _(){var e=now();if(m(e))return h(e);s=setTimeout(_,function(e){var n=t-(e-l);return d?nativeMin(n,a-(e-c)):n}(e))}function h(e){return s=void 0,f&&o?p(e):(o=r=void 0,i)}function g(){var e=now(),n=m(e);if(o=arguments,r=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(_,t),u?p(e):i}(l);if(d)return clearTimeout(s),s=setTimeout(_,t),p(l)}return void 0===s&&(s=setTimeout(_,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,o=l=r=s=void 0},g.flush=function(){return void 0===s?i:h(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 o=!0,r=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT);return isObject(n)&&(o="leading"in n?!!n.leading:o,r="trailing"in n?!!n.trailing:r),debounce(e,t,{leading:o,maxWait:t,trailing:r})}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,o,r,a,i,s)=>a<e&&i>t||a>e&&i<t?0:a<=e&&s<=n||i>=t&&s>=n?a-e-o:i>t&&s<n||a<e&&s>n?i-t+r:0,l=e=>{const t=e.parentElement;return null==t?e.getRootNode().host||null:t},r$1=(e,n)=>{var o,r,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,_=[];let h=e;for(;t(h)&&p(h);){if(h=l(h),h===m){_.push(h);break}null!=h&&h===document.body&&n$1(h)&&!n$1(document.documentElement)||null!=h&&n$1(h,f)&&_.push(h)}const g=null!=(r=null==(o=window.visualViewport)?void 0:o.width)?r:innerWidth,v=null!=(i=null==(a=window.visualViewport)?void 0:a.height)?i:innerHeight,{scrollX:y,scrollY:E}=window,{height:b,width:w,top:C,right:R,bottom:S,left:D}=e.getBoundingClientRect(),{top:T,right:O,bottom:A,left:x}=(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 I="start"===c||"nearest"===c?C-T:"end"===c?S+A:C+b/2-T+A,N="center"===u?D+w/2-x+O:"end"===u?R+O:D-x;const k=[];for(let e=0;e<_.length;e++){const t=_[e],{height:n,width:o,top:r,right:a,bottom:i,left:l}=t.getBoundingClientRect();if("if-needed"===s&&C>=0&&D>=0&&S<=v&&R<=g&&(t===m&&!n$1(t)||C>=r&&S<=i&&D>=l&&R<=a))return k;const d=getComputedStyle(t),f=parseInt(d.borderLeftWidth,10),p=parseInt(d.borderTopWidth,10),h=parseInt(d.borderRightWidth,10),T=parseInt(d.borderBottomWidth,10);let O=0,A=0;const x="offsetWidth"in t?t.offsetWidth-t.clientWidth-f-h:0,$="offsetHeight"in t?t.offsetHeight-t.clientHeight-p-T:0,F="offsetWidth"in t?0===t.offsetWidth?0:o/t.offsetWidth:0,P="offsetHeight"in t?0===t.offsetHeight?0:n/t.offsetHeight:0;if(m===t)O="start"===c?I:"end"===c?I-v:"nearest"===c?o$1(E,E+v,v,p,T,E+I,E+I+b,b):I-v/2,A="start"===u?N:"center"===u?N-g/2:"end"===u?N-g:o$1(y,y+g,g,f,h,y+N,y+N+w,w),O=Math.max(0,O+E),A=Math.max(0,A+y);else{O="start"===c?I-r-p:"end"===c?I-i+T+$:"nearest"===c?o$1(r,i,n,p,T+$,I,I+b,b):I-(r+n/2)+$/2,A="start"===u?N-l-f:"center"===u?N-(l+o/2)+x/2:"end"===u?N-a+h+x:o$1(l,a,o,f,h+x,N,N+w,w);const{scrollLeft:e,scrollTop:s}=t;O=0===P?0:Math.max(0,Math.min(s+O/P,t.scrollHeight-n/P+$)),A=0===F?0:Math.max(0,Math.min(e+A/F,t.scrollWidth-o/F+x)),I+=s-O,N+=e-A}k.push({el:t,top:O,left:A})}return k},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,o){return this.x=e,this.y=t,this.width=n,this.height=o,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,o=t.height;return!n&&!o}var r=e,a=r.offsetWidth,i=r.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),o=isSVG(e)&&e.ownerSVGElement&&e.getBBox(),r=!IE&&"border-box"===n.boxSizing,a=verticalRegexp.test(n.writingMode||""),i=!o&&scrollRegexp.test(n.overflowY||""),s=!o&&scrollRegexp.test(n.overflowX||""),l=o?0:parseDimension(n.paddingTop),c=o?0:parseDimension(n.paddingRight),u=o?0:parseDimension(n.paddingBottom),d=o?0:parseDimension(n.paddingLeft),f=o?0:parseDimension(n.borderTopWidth),p=o?0:parseDimension(n.borderRightWidth),m=o?0:parseDimension(n.borderBottomWidth),_=d+c,h=l+u,g=(o?0:parseDimension(n.borderLeftWidth))+p,v=f+m,y=s?e.offsetHeight-v-e.clientHeight:0,E=i?e.offsetWidth-g-e.clientWidth:0,b=r?_+g:0,w=r?h+v:0,C=o?o.width:parseDimension(n.width)-b-E,R=o?o.height:parseDimension(n.height)-w-y,S=C+_+E+g,D=R+h+y+v,T=freeze({devicePixelContentBoxSize:size(Math.round(C*devicePixelRatio),Math.round(R*devicePixelRatio),a),borderBoxSize:size(S,D,a),contentBoxSize:size(C,R,a),contentRect:new DOMRectReadOnly(d,l,C,R)});return cache.set(e,T),T},calculateBoxSize=function(e,t,n){var o=calculateBoxSizes(e,n),r=o.borderBoxSize,a=o.contentBoxSize,i=o.devicePixelContentBoxSize;switch(t){case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:return i;case ResizeObserverBoxOptions.BORDER_BOX:return r;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 o=[];n.activeTargets.forEach((function(t){var n=new ResizeObserverEntry(t.target),r=calculateDepthForNode(t.target);o.push(n),t.lastReportedSize=calculateBoxSize(t.target,t.observedBox),r<e&&(e=r)})),t.push((function(){n.callback.call(n.observer,o,n.observer)})),n.activeTargets.splice(0,n.activeTargets.length)}}));for(var n=0,o=t;n<o.length;n++){(0,o[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 o=!1;try{o=process$1()}finally{if(scheduled=!1,e=n-time(),!isWatching())return;o?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 o=observerMap.get(e),r=0===o.observationTargets.length;getObservationIndex(o.observationTargets,t)<0&&(r&&resizeObservers.push(o),o.observationTargets.push(new ResizeObservation(t,n&&n.box)),updateCount(1),scheduler.schedule())},e.unobserve=function(e,t){var n=observerMap.get(e),o=getObservationIndex(n.observationTargets,t),r=1===n.observationTargets.length;o>=0&&(r&&resizeObservers.splice(resizeObservers.indexOf(n),1),n.observationTargets.splice(o,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 o=e.map((function(e){return parseHotkey(e,t)})),r=function(e){return o.some((function(t){return compareHotkey(t,e)}))};return null==n?r:r(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,o={},r=(e=e.replace("++","+add")).split("+"),a=r.length;for(var i in MODIFIERS$1)o[MODIFIERS$1[i]]=!1;var s=!0,l=!1,c=void 0;try{for(var u,d=r[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),_=MODIFIERS$1[m];if(f.length>1&&!_&&!ALIASES[f]&&!CODES[m])throw new TypeError('Unknown modifier: "'+f+'"');1!==a&&_||(n?o.key=m:o.which=toKeyCode(f)),_&&(o[_]=!p||null)}}catch(e){l=!0,c=e}finally{try{!s&&d.return&&d.return()}finally{if(l)throw c}}return o}function compareHotkey(e,t){for(var n in e){var o=e[n],r=void 0;if(null!=o&&((null!=(r="key"===n&&null!=t.key?t.key.toLowerCase():"which"===n?91===o&&93===t.which?91:t.which:t[n])||!1!==o)&&r!==o))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,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}function _objectWithoutProperties(e,t){if(null==e)return{};var n,o,r=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}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 o=n.call(e,t||"default");if("object"!==_typeof$3(o))return o;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 o=n===t.childNodes.length,r=o?n-1:n;for([t,r]=getEditableChildAndIndex(t,r,o?"backward":"forward"),o=r<n;isDOMElement(t)&&t.childNodes.length;){var a=o?t.childNodes.length-1:0;t=getEditableChild(t,a,o?"backward":"forward")}n=o&&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:o}=e,r=o[t],a=t,i=!1,s=!1;(isDOMComment(r)||isDOMElement(r)&&0===r.childNodes.length||isDOMElement(r)&&"false"===r.getAttribute("contenteditable"))&&(!i||!s);)a>=o.length?(i=!0,a=t-1,n="backward"):a<0?(s=!0,a=t+1,n="forward"):(r=o[a],t=a,a+="forward"===n?1:-1);return[r,t]},getEditableChild=(e,t,n)=>{var[o]=getEditableChildAndIndex(e,t,n);return o},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 o=getComputedStyle(e).getPropertyValue("display");"block"!==o&&"list"!==o&&"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:o}=t;if(isDOMElement(o)&&o.matches('[contentEditable="false"]'))return!1;var{document:r}=ReactEditor.getWindow(e);if(r.contains(o))return ReactEditor.hasDOMNode(e,o,{editable:!0});var a=n.find((e=>{var{addedNodes:t,removedNodes:n}=e;for(var r of t)if(r===o||r.contains(o))return!0;for(var a of n)if(a===o||a.contains(o))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,o;e=null===(o=e)||void 0===o||null===(o=o.shadowRoot)||void 0===o?void 0:o.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),o=getSelection(n);o&&o.rangeCount>0&&o.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:o,target:r}=t;if(null==n||null==o)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=r.getBoundingClientRect(),c=e.isInline(i)?n-l.left<l.left+l.width-n:o-l.top<l.top+l.height-o,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,o);else{var p=f.caretPositionFromPoint(n,o);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=[],o=t;;){var r=NODE_TO_PARENT.get(o);if(null==r){if(Editor.isEditor(o))return n;break}var a=NODE_TO_INDEX.get(o);if(null==a)break;n.unshift(a),o=r}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),o=ReactEditor.findDocumentOrShadowRoot(e);if(o.activeElement!==n){if(e.selection&&o instanceof Document){var r=getSelection(o),a=ReactEditor.toDOMRange(e,e.selection);null==r||r.removeAllRanges(),null==r||r.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,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{editable:r=!1}=o,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||r&&!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:o}=t;return Editor.hasPath(e,n.path)&&Editor.hasPath(e,o.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),o=Editor.isEditor(t)?EDITOR_TO_ELEMENT.get(e):null==n?void 0:n.get(ReactEditor.findKey(e,t));if(!o)throw new Error("Cannot resolve a DOM node from Slate node: ".concat(Scrubber.stringify(t)));return o},toDOMPoint:(e,t)=>{var n,[o]=Editor.node(e,t.path),r=ReactEditor.toDOMNode(e,o);Editor.void(e,{at:t})&&(t={path:t.path,offset:0});for(var a=Array.from(r.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,_=p.childNodes[0];n=[_ instanceof DOMText?_: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:o}=t,r=Range.isBackward(t),a=ReactEditor.toDOMPoint(e,n),i=Range.isCollapsed(t)?a:ReactEditor.toDOMPoint(e,o),s=ReactEditor.getWindow(e).document.createRange(),[l,c]=r?i:a,[u,d]=r?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 o=n?ELEMENT_TO_NODE.get(n):null;if(!o)throw new Error("Cannot resolve a Slate node from DOM node: ".concat(n));return o},toSlatePoint:(e,t,n)=>{var{exactMatch:o,suppressThrow:r,searchDirection:a="backward"}=n,[i,s]=o?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"]'),_=m&&p.contains(m)?m:null,h=l.closest('[contenteditable="false"]'),g=h&&p.contains(h)?h:null,v=l.closest("[data-slate-leaf]"),y=null;if(v){if(c=v.closest('[data-slate-node="text"]')){var E=ReactEditor.getWindow(e).document.createRange();E.setStart(c,0),E.setEnd(i,s);var b=E.cloneContents();[...Array.prototype.slice.call(b.querySelectorAll("[data-slate-zero-width]")),...Array.prototype.slice.call(b.querySelectorAll("[contenteditable=false]"))].forEach((e=>{IS_ANDROID&&!o&&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,y=c}}else if(_){for(var w=_.querySelectorAll("[data-slate-leaf]"),C=0;C<w.length;C++){var R=w[C];if(ReactEditor.hasDOMNode(e,R)){v=R;break}}v?(c=v.closest('[data-slate-node="text"]'),u=(y=v).textContent.length,y.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"]'),y=v,"forward"===a?u=0:(u=y.textContent.length,y.querySelectorAll("[data-slate-zero-width]").forEach((e=>{u-=e.textContent.length}))))}y&&u===y.textContent.length&&IS_ANDROID&&"z"===y.getAttribute("data-slate-zero-width")&&null!==(d=y.textContent)&&void 0!==d&&d.startsWith("\ufeff")&&(l.hasAttribute("data-slate-zero-width")||IS_FIREFOX&&null!==(f=y.textContent)&&void 0!==f&&f.endsWith("\n\n"))&&u--}if(IS_ANDROID&&!c&&!o){var A=l.hasAttribute("data-slate-node")?l:l.closest("[data-slate-node]");if(A&&ReactEditor.hasDOMNode(e,A,{editable:!0})){var x=ReactEditor.toSlateNode(e,A),{path:I,offset:N}=Editor.start(e,ReactEditor.findPath(e,x));return A.querySelector("[data-slate-leaf]")||(N=s),{path:I,offset:N}}}if(!c){if(r)return null;throw new Error("Cannot resolve a Slate point from DOM point: ".concat(t))}var k=ReactEditor.toSlateNode(e,c);return{path:ReactEditor.findPath(e,k),offset:u}},toSlateRange:(e,t,n)=>{var o,r,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,_=f.startContainer,h=p(m.children[d.startOffset]),g=p(_.children[f.startOffset]);s=0,r=g.childNodes.length>0?g.childNodes[0]:g,i=h.childNodes.length>0?h.childNodes[0]:h,a=g instanceof HTMLElement?g.innerHTML.length:0}else d.startContainer===i?(r=f.endContainer,a=f.endOffset,s=d.startOffset):(r=d.startContainer,a=d.endOffset,s=f.startOffset)}else r=t.anchorNode,a=t.anchorOffset,i=t.focusNode,s=t.focusOffset;l=IS_CHROME&&hasShadowRoot(r)||IS_FIREFOX?t.anchorNode===t.focusNode&&t.anchorOffset===t.focusOffset:t.isCollapsed}else r=t.startContainer,a=t.startOffset,i=t.endContainer,s=t.endOffset,l=t.collapsed;if(null==r||null==i||null==a||null==s)throw new Error("Cannot resolve a Slate range from DOM range: ".concat(t));IS_FIREFOX&&null!==(o=i.textContent)&&void 0!==o&&o.endsWith("\n\n")&&s===i.textContent.length&&s--;var v=ReactEditor.toSlatePoint(e,[r,a],{exactMatch:c,suppressThrow:u});if(!v)return null;var y=isBefore(r,i)||r===i&&s<a,E=l?v:ReactEditor.toSlatePoint(e,[i,s],{exactMatch:c,suppressThrow:u,searchDirection:y?"forward":"backward"});if(!E)return null;var b={anchor:v,focus:E};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:o}=t;if(!Editor.hasPath(e,n))return!1;var r=Node$1.get(e,n);if(!Text$1.isText(r))return!1;if(o.start!==r.text.length||0===o.text.length)return r.text.slice(o.start,o.start+o.text.length)===o.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(o.text)}function applyStringDiff(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];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),o=0;o<n;o++)if(e.charAt(o)!==t.charAt(o))return o;return n}function longestCommonSuffixLength(e,t,n){for(var o=Math.min(e.length,t.length,n),r=0;r<o;r++)if(e.charAt(e.length-r-1)!==t.charAt(t.length-r-1))return r;return o}function normalizeStringDiff(e,t){var{start:n,end:o,text:r}=t,a=e.slice(n,o),i=longestCommonPrefixLength(a,r),s=longestCommonSuffixLength(a,r,Math.min(a.length-i,r.length-i)),l={start:n+i,end:o-s,text:r.slice(i,r.length-s)};return l.start===l.end&&0===l.text.length?null:l}function mergeStringDiffs(e,t,n){var o=Math.min(t.start,n.start),r=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)-r),s=a.slice(o,i);return normalizeStringDiff(e,{start:o,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:o}=t;if(!Editor.hasPath(e,n))return null;var r=Node$1.get(e,n);if(!Text$1.isText(r))return null;var a=Editor.above(e,{match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),at:n});if(!a)return null;for(;o>r.text.length;){var i=Editor.next(e,{at:n,match:Text$1.isText});if(!i||!Path.isDescendant(i[1],a[1]))return null;o-=r.text.length,r=i[0],n=i[1]}return{path:n,offset:o}}function normalizeRange(e,t){var n=normalizePoint(e,t.anchor);if(!n)return null;if(Range.isCollapsed(t))return{anchor:n,focus:n};var o=normalizePoint(e,t.focus);return o?{anchor:n,focus:o}:null}function transformPendingPoint(e,t,n){var o=EDITOR_TO_PENDING_DIFFS.get(e),r=null==o?void 0:o.find((e=>{var{path:n}=e;return Path.equals(n,t.path)}));if(!r||t.offset<=r.diff.start)return Point.transform(t,n,{affinity:"backward"});var{diff:a}=r;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 o=transformPendingPoint(e,t.anchor,n);if(!o)return null;if(Range.isCollapsed(t))return{anchor:o,focus:o};var r=transformPendingPoint(e,t.focus,n);return r?{anchor:o,focus:r}:null}function transformTextDiff(e,t){var{path:n,diff:o,id:r}=e;switch(t.type){case"insert_text":return!Path.equals(t.path,n)||t.offset>=o.end?e:t.offset<=o.start?{diff:{start:t.text.length+o.start,end:t.text.length+o.end,text:o.text},id:r,path:n}:{diff:{start:o.start,end:o.end+t.text.length,text:o.text},id:r,path:n};case"remove_text":return!Path.equals(t.path,n)||t.offset>=o.end?e:t.offset+t.text.length<=o.start?{diff:{start:o.start-t.text.length,end:o.end-t.text.length,text:o.text},id:r,path:n}:{diff:{start:o.start,end:o.end-t.text.length,text:o.text},id:r,path:n};case"split_node":return!Path.equals(t.path,n)||t.position>=o.end?{diff:o,id:r,path:Path.transform(n,t,{affinity:"backward"})}:t.position>o.start?{diff:{start:o.start,end:Math.min(t.position,o.end),text:o.text},id:r,path:n}:{diff:{start:o.start-t.position,end:o.end-t.position,text:o.text},id:r,path:Path.transform(n,t,{affinity:"forward"})};case"merge_node":return Path.equals(t.path,n)?{diff:{start:o.start+t.position,end:o.end+t.position,text:o.text},id:r,path:Path.transform(n,t)}:{diff:o,id:r,path:Path.transform(n,t)}}var a=Path.transform(n,t);return a?{diff:o,path:a,id:r}:null}function ownKeys$6$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o}=e,r=!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,o=normalizeRange(t,e);!o||n&&Range.equals(o,n)||Transforms.select(t,o)}},d=()=>{if(i&&(clearTimeout(i),i=null),s&&(clearTimeout(s),s=null),h()||_()){r||(r=!0,setTimeout((()=>r=!1))),_()&&(r="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=h();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),r="action",EDITOR_TO_PENDING_SELECTION.delete(t),n.cancel(),o.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),_())(()=>{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 o=Editor.range(t,n);t.selection&&Range.equals(t.selection,o)||Transforms.select(t,n)}e.run()}})();else{l&&n(),n.flush(),o.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&&(h()||e?n.style.display="none":n.style.removeProperty("display"))},p=(e,n)=>{var o,r=null!==(o=EDITOR_TO_PENDING_DIFFS.get(t))&&void 0!==o?o:[];EDITOR_TO_PENDING_DIFFS.set(t,r);var a=Node$1.leaf(t,e),i=r.findIndex((t=>Path.equals(t.path,e)));if(i<0)return normalizeStringDiff(a.text,n)&&r.push({path:e,diff:n,id:l++}),void f();var s=mergeStringDiffs(a.text,r[i].diff,n);if(!s)return r.splice(i,1),void f();r[i]=_objectSpread$6$1(_objectSpread$6$1({},r[i]),{},{diff:s})},m=function(e){var{at:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};c=!1,EDITOR_TO_PENDING_SELECTION.delete(t),n.cancel(),o.cancel(),_()&&d(),EDITOR_TO_PENDING_ACTION.set(t,{at:r,run:e}),s=setTimeout(d)},_=()=>!!EDITOR_TO_PENDING_ACTION.get(t),h=()=>{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 o=!n||!Path.equals(n.anchor.path,e.anchor.path),r=!n||!Path.equals(n.anchor.path.slice(0,-1),e.anchor.path.slice(0,-1));(o&&c||r)&&(c=!1),(o||h())&&(i=setTimeout(d,FLUSH_DELAY))}},v=()=>{_()||(s=setTimeout(d))};return{flush:d,scheduleFlush:v,hasPendingDiffs:h,hasPendingAction:_,hasPendingChanges:()=>_()||h(),isFlushing:()=>r,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:o}=e,r=null,a=e.dataTransfer||e.data||void 0;!1!==c&&"insertText"!==o&&"insertCompositionText"!==o&&(c=!1);var[s]=e.getTargetRanges();s&&(r=ReactEditor.toSlateRange(t,s,{exactMatch:!1,suppressThrow:!0}));var l=ReactEditor.getWindow(t).getSelection();if(!r&&l&&(s=l,r=ReactEditor.toSlateRange(t,l,{exactMatch:!1,suppressThrow:!0})),r=null!==(n=r)&&void 0!==n?n:t.selection){var u=!0;if(o.startsWith("delete")){if(Range.isExpanded(r)){var[d,f]=Range.edges(r);if(Node$1.leaf(t,d.path).text.length===d.offset&&0===f.offset){var _=Editor.next(t,{at:d.path,match:Text$1.isText});_&&Path.equals(_[1],f.path)&&(r={anchor:f,focus:f})}}var h=o.endsWith("Backward")?"backward":"forward",[y,E]=Range.edges(r),[b,w]=Editor.leaf(t,y.path),C={text:"",start:y.offset,end:E.offset},R=EDITOR_TO_PENDING_DIFFS.get(t),S=null==R?void 0:R.find((e=>Path.equals(e.path,w))),D=S?[S.diff,C]:[C];if(0===applyStringDiff(b.text,...D).length&&(u=!1),Range.isExpanded(r)){if(u&&Path.equals(r.anchor.path,r.focus.path)){var T={path:r.anchor.path,offset:y.offset},O=Editor.range(t,T,T);return g(O),p(r.anchor.path,{text:"",end:E.offset,start:y.offset})}return m((()=>Editor.deleteFragment(t,{direction:h})),{at:r})}}switch(o){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":return m((()=>Editor.deleteFragment(t)),{at:r});case"deleteContent":case"deleteContentForward":var{anchor:A}=r;if(u&&Range.isCollapsed(r)){var x=Node$1.leaf(t,A.path);if(A.offset<x.text.length)return p(A.path,{text:"",start:A.offset,end:A.offset+1})}return m((()=>Editor.deleteForward(t)),{at:r});case"deleteContentBackward":var I,{anchor:N}=r,k=isDOMSelection(s)?s.isCollapsed:!(null===(I=s)||void 0===I||!I.collapsed);return u&&k&&Range.isCollapsed(r)&&N.offset>0?p(N.path,{text:"",start:N.offset-1,end:N.offset}):m((()=>Editor.deleteBackward(t)),{at:r});case"deleteEntireSoftLine":return m((()=>{Editor.deleteBackward(t,{unit:"line"}),Editor.deleteForward(t,{unit:"line"})}),{at:r});case"deleteHardLineBackward":return m((()=>Editor.deleteBackward(t,{unit:"block"})),{at:r});case"deleteSoftLineBackward":return m((()=>Editor.deleteBackward(t,{unit:"line"})),{at:r});case"deleteHardLineForward":return m((()=>Editor.deleteForward(t,{unit:"block"})),{at:r});case"deleteSoftLineForward":return m((()=>Editor.deleteForward(t,{unit:"line"})),{at:r});case"deleteWordBackward":return m((()=>Editor.deleteBackward(t,{unit:"word"})),{at:r});case"deleteWordForward":return m((()=>Editor.deleteForward(t,{unit:"word"})),{at:r});case"insertLineBreak":return m((()=>Editor.insertSoftBreak(t)),{at:r});case"insertParagraph":return m((()=>Editor.insertBreak(t)),{at:r});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:r});var $=null!=a?a:"";if(EDITOR_TO_PENDING_INSERTION_MARKS.get(t)&&($=$.replace("\ufeff","")),"insertText"===o&&/.*\n.*\n$/.test($)&&($=$.slice(0,-1)),$.includes("\n"))return m((()=>{var e=$.split("\n");e.forEach(((n,o)=>{n&&Editor.insertText(t,n),o!==e.length-1&&Editor.insertSoftBreak(t)}))}),{at:r});if(Path.equals(r.anchor.path,r.focus.path)){var[F,P]=Range.edges(r),M={start:F.offset,end:P.offset,text:$};if($&&c&&"insertCompositionText"===o){var L=c.start+c.text.search(/\S|$/);M.start+M.text.search(/\S|$/)===L+1&&M.end===c.start+c.text.length?(M.start-=1,c=null,v()):c=!1}else c="insertText"===o&&(null===c?M:!(!c||!Range.isCollapsed(r)||c.end+c.text.length!==F.offset)&&_objectSpread$6$1(_objectSpread$6$1({},c),{},{text:c.text+$}));if(u)return void p(F.path,M)}return m((()=>Editor.insertText(t,$)),{at:r})}}}},handleKeyDown:e=>{h()||(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[o]=React.useState((()=>new MutationObserver(t)));useIsomorphicLayoutEffect$3((()=>{o.takeRecords()})),React.useEffect((()=>{if(!e.current)throw new Error("Failed to attach MutationObserver, `node` is undefined");return o.observe(e.current,n),()=>o.disconnect()}),[o,e,n])}var _excluded$3=["node"];function ownKeys$5$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=useSlateStatic(),r=useIsMounted(),[a]=React.useState((()=>createAndroidInputManager(_objectSpread$5$1({editor:o},n))));return useMutationObserver(t,a.handleDomMutations,MUTATION_OBSERVER_CONFIG$1),EDITOR_TO_SCHEDULE_FLUSH.set(o,a.scheduleFlush),r&&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),o=_objectWithoutProperties(t,_excluded2$1);return e[PLACEHOLDER_SYMBOL]===t[PLACEHOLDER_SYMBOL]&&shallowCompare(n,o)},isElementDecorationsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var o=e[n],r=t[n];if(!Range.equals(o,r)||!isDecorationFlagsEqual(o,r))return!1}return!0},isTextDecorationsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++){var o=e[n],r=t[n];if(o.anchor.offset!==r.anchor.offset||o.focus.offset!==r.focus.offset||!isDecorationFlagsEqual(o,r))return!1}return!0};function ownKeys$4$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,text:r}=e,a=useSlateStatic(),i=ReactEditor.findPath(a,r),s=Path.parent(i),l=Boolean(n[MARK_PLACEHOLDER_SYMBOL]);return a.isVoid(o)?React__default.default.createElement(ZeroWidthString,{length:Node$1.string(o).length}):""!==n.text||o.children[o.children.length-1]!==r||a.isInline(o)||""!==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,o=React.useRef(null),r=()=>"".concat(null!=t?t:"").concat(n?"\n":""),[a]=React.useState(r);return useIsomorphicLayoutEffect$3((()=>{var e=r();o.current&&o.current.textContent!==e&&(o.current.textContent=e)})),React__default.default.createElement(MemoizedText$1,{ref:o},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:o=!1}=e,r={"data-slate-zero-width":n?"n":"z","data-slate-length":t};return o&&(r["data-slate-mark-placeholder"]=!0),React__default.default.createElement("span",_objectSpread$4$1({},r),(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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,parent:r,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 o=window.ResizeObserver||ResizeObserver$1;l.current=new o((()=>{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:r,text:o}),_=Boolean(t[PLACEHOLDER_SYMBOL]);if(React.useEffect((()=>(_?f.current||(f.current=setTimeout((()=>{d(!0),f.current=null}),PLACEHOLDER_DELAY)):(clearTimeoutRef(f),d(!1)),()=>clearTimeoutRef(f))),[_,d]),_&&u){var h={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(h),m)}return i({attributes:{"data-slate-leaf":!0},children:m,leaf:t,text:o})},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:o,renderPlaceholder:r,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:r,leaf:p,text:i,parent:o,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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o=e=>React__default.default.createElement(DefaultElement,_objectSpread$2$1({},e)),renderPlaceholder:r,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:o,renderPlaceholder:r,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),_=direction_1(m);"rtl"===_&&(p.dir=_)}if(Editor.isVoid(s,n)){p["data-slate-void"]=!0,!l&&c&&(p.contentEditable=!1);var h=c?"span":"div",[[g]]=Node$1.texts(n);f=React__default.default.createElement(h,{"data-slate-spacer":!0,style:{height:"0",color:"transparent",outline:"none",position:"absolute"}},React__default.default.createElement(MemoizedText,{renderPlaceholder:r,decorations:[],isLast:!1,parent:n,text:g})),NODE_TO_INDEX.set(g,0),NODE_TO_PARENT.set(g,n)}return o({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:o}=e,r=useSlateStatic().isInline(o)?"span":"div";return React__default.default.createElement(r,_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:o,renderPlaceholder:r,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],_=ReactEditor.findKey(l,m),h=Editor.range(l,p),g=i&&Range.intersection(h,i),v=s([m,p]);for(var y of t){var E=Range.intersection(y,h);E&&v.push(E)}Element$2.isElement(m)?u.push(React__default.default.createElement(SelectedContext.Provider,{key:"provider-".concat(_.id),value:!!g},React__default.default.createElement(MemoizedElement,{decorations:v,element:m,key:_.id,renderElement:o,renderPlaceholder:r,renderLeaf:a,selection:g}))):u.push(React__default.default.createElement(MemoizedText,{decorations:v,key:_.id,isLast:d&&f===n.children.length-1,parent:n,renderPlaceholder:r,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),o=React.useCallback((()=>{if(!t.current){t.current=!0;var o=ReactEditor.getWindow(e);o.cancelAnimationFrame(n.current),n.current=o.requestAnimationFrame((()=>{t.current=!1}))}}),[e]);return React.useEffect((()=>()=>cancelAnimationFrame(n.current)),[]),{receivedUserInput:t,onUserInput:o}}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],o=WINDOWS_HOTKEYS[e],r=t&&isHotkey_1(t);n&&isHotkey_1(n);var a=o&&isHotkey_1(o);return e=>!(!r||!r(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=[],o=()=>{n=[]};return{registerMutations:o=>{if(t.current){var r=o.filter((t=>isTrackedMutation(e,t,o)));n.push(...r)}},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)})))})),o())},clear:o}},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,o,r=null===(e=this.mutationObserver)||void 0===e?void 0:e.takeRecords();null!=r&&r.length&&(null===(o=this.manager)||void 0===o||o.registerMutations(r));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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,decorate:r=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,_=_objectWithoutProperties(e,_excluded$1),h=useSlate(),[g,v]=React.useState(!1),y=React.useRef(null),E=React.useRef([]),[b,w]=React.useState(),C=React.useRef(!1),{onUserInput:R,receivedUserInput:S}=useTrackUserInput(),[,D]=React.useReducer((e=>e+1),0);EDITOR_TO_FORCE_RENDER.set(h,D),IS_READ_ONLY.set(h,s);var T=React.useMemo((()=>({isDraggingInternally:!1,isUpdatingSelection:!1,latestElement:null,hasMarkPlaceholder:!1})),[]);React.useEffect((()=>{y.current&&o&&y.current.focus()}),[o]);var O=React.useRef(),A=React.useMemo((()=>throttle_1((()=>{if(IS_NODE_MAP_DIRTY.get(h))A();else{var e=ReactEditor.toDOMNode(h,h).getRootNode();if(!C.current&&IS_WEBKIT&&e instanceof ShadowRoot)return C.current=!0,getActiveElement()?document.execCommand("indent"):Transforms.deselect(h),void(C.current=!1);var t=O.current;if((IS_ANDROID||!ReactEditor.isComposing(h))&&(!T.isUpdatingSelection||null!=t&&t.isFlushing())&&!T.isDraggingInternally){var n=ReactEditor.findDocumentOrShadowRoot(h),{activeElement:o}=n,r=ReactEditor.toDOMNode(h,h),a=getSelection(n);if(o===r?(T.latestElement=o,IS_FOCUSED.set(h,!0)):IS_FOCUSED.delete(h),!a)return Transforms.deselect(h);var{anchorNode:i,focusNode:l}=a,c=ReactEditor.hasEditableTarget(h,i)||ReactEditor.isTargetInsideNonReadonlyVoid(h,i),u=ReactEditor.hasTarget(h,l);if(c&&u){var d=ReactEditor.toSlateRange(h,a,{exactMatch:!1,suppressThrow:!0});d&&(ReactEditor.isComposing(h)||null!=t&&t.hasPendingChanges()||null!=t&&t.isFlushing()?null==t||t.handleUserSelect(d):Transforms.select(h,d))}!s||c&&u||Transforms.deselect(h)}}}),100)),[h,s,T]),x=React.useMemo((()=>debounce_1(A,0)),[A]);O.current=useAndroidInputManager({node:y,onDOMSelectionChange:A,scheduleOnDOMSelectionChange:x}),useIsomorphicLayoutEffect$3((()=>{var e,t,n;y.current&&(n=getDefaultView(y.current))?(EDITOR_TO_WINDOW.set(h,n),EDITOR_TO_ELEMENT.set(h,y.current),NODE_TO_ELEMENT.set(h,y.current),ELEMENT_TO_NODE.set(y.current,h)):NODE_TO_ELEMENT.delete(h);var{selection:o}=h,r=ReactEditor.findDocumentOrShadowRoot(h),a=getSelection(r);if(a&&ReactEditor.isFocused(h)&&(null===(e=O.current)||void 0===e||!e.hasPendingAction())){var i=e=>{var t="None"!==a.type;if(o||t){var n,r=a.focusNode;if(IS_FIREFOX&&a.rangeCount>1){var i=a.getRangeAt(0),s=a.getRangeAt(a.rangeCount-1);n=i.startContainer===r?s.endContainer:i.startContainer}else n=a.anchorNode;var l=EDITOR_TO_ELEMENT.get(h),c=!1;if(l.contains(n)&&l.contains(r)&&(c=!0),t&&c&&o&&!e){var u=ReactEditor.toSlateRange(h,a,{exactMatch:!0,suppressThrow:!0});if(u&&Range.equals(u,o)){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(!o||ReactEditor.hasRange(h,o)){T.isUpdatingSelection=!0;var p=o&&ReactEditor.toDOMRange(h,o);return p?(ReactEditor.isComposing(h)&&!IS_ANDROID?a.collapseToEnd():Range.isBackward(o)?a.setBaseAndExtent(p.endContainer,p.endOffset,p.startContainer,p.startOffset):a.setBaseAndExtent(p.startContainer,p.startOffset,p.endContainer,p.endOffset),d(h,p)):a.removeAllRanges(),p}h.selection=ReactEditor.toSlateRange(h,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(h,h).focus(),i(e)}catch(e){}};e(),l=setTimeout((()=>{e(!0),T.isUpdatingSelection=!1}))}}));return()=>{cancelAnimationFrame(c),l&&clearTimeout(l)}}setTimeout((()=>{T.isUpdatingSelection=!1}))}}));var I=React.useCallback((e=>{var t=ReactEditor.toDOMNode(h,h).getRootNode();if(null!=C&&C.current&&IS_WEBKIT&&t instanceof ShadowRoot){var n=e.getTargetRanges()[0],o=new window.Range;o.setStart(n.startContainer,n.startOffset),o.setEnd(n.endContainer,n.endOffset);var r=ReactEditor.toSlateRange(h,o,{exactMatch:!1,suppressThrow:!1});return Transforms.select(h,r),e.preventDefault(),void e.stopImmediatePropagation()}if(R(),!s&&ReactEditor.hasEditableTarget(h,e.target)&&!isDOMEventHandled(e,a)){var i;if(O.current)return O.current.handleDOMBeforeInput(e);x.flush(),A.flush();var{selection:l}=h,{inputType:c}=e,u=e.dataTransfer||e.data||void 0,d="insertCompositionText"===c||"deleteCompositionText"===c;if(d&&ReactEditor.isComposing(h))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,h.marks&&(f=!1),!IS_NODE_MAP_DIRTY.get(h))){var p,m,{anchor:_}=l,[g,y]=ReactEditor.toDOMPoint(h,_),b=null===(p=g.parentElement)||void 0===p?void 0:p.closest("a"),w=ReactEditor.getWindow(h);if(f&&b&&ReactEditor.hasDOMNode(h,b)){var S,D=null==w?void 0:w.document.createTreeWalker(b,NodeFilter.SHOW_TEXT).lastChild();D===g&&(null===(S=D.textContent)||void 0===S?void 0:S.length)===y&&(f=!1)}if(f&&g.parentElement&&"pre"===(null==w||null===(m=w.getComputedStyle(g.parentElement))||void 0===m?void 0:m.whiteSpace)){var T=Editor.above(h,{at:_.path,match:e=>Element$2.isElement(e)&&Editor.isBlock(h,e)});T&&Node$1.string(T[0]).includes("\t")&&(f=!1)}}if((!c.startsWith("delete")||c.startsWith("deleteBy"))&&!IS_NODE_MAP_DIRTY.get(h)){var[I]=e.getTargetRanges();if(I){var N=ReactEditor.toSlateRange(h,I,{exactMatch:!1,suppressThrow:!1});if(!l||!Range.equals(l,N)){f=!1;var k=!d&&h.selection&&Editor.rangeRef(h,h.selection);Transforms.select(h,N),k&&EDITOR_TO_USER_SELECTION.set(h,k)}}}if(d)return;if(f||e.preventDefault(),l&&Range.isExpanded(l)&&c.startsWith("delete")){var $=c.endsWith("Backward")?"backward":"forward";return void Editor.deleteFragment(h,{direction:$})}switch(c){case"deleteByComposition":case"deleteByCut":case"deleteByDrag":Editor.deleteFragment(h);break;case"deleteContent":case"deleteContentForward":Editor.deleteForward(h);break;case"deleteContentBackward":Editor.deleteBackward(h);break;case"deleteEntireSoftLine":Editor.deleteBackward(h,{unit:"line"}),Editor.deleteForward(h,{unit:"line"});break;case"deleteHardLineBackward":Editor.deleteBackward(h,{unit:"block"});break;case"deleteSoftLineBackward":Editor.deleteBackward(h,{unit:"line"});break;case"deleteHardLineForward":Editor.deleteForward(h,{unit:"block"});break;case"deleteSoftLineForward":Editor.deleteForward(h,{unit:"line"});break;case"deleteWordBackward":Editor.deleteBackward(h,{unit:"word"});break;case"deleteWordForward":Editor.deleteForward(h,{unit:"word"});break;case"insertLineBreak":Editor.insertSoftBreak(h);break;case"insertParagraph":Editor.insertBreak(h);break;case"insertFromComposition":case"insertFromDrop":case"insertFromPaste":case"insertFromYank":case"insertReplacementText":case"insertText":"insertFromComposition"===c&&ReactEditor.isComposing(h)&&(v(!1),IS_COMPOSING.set(h,!1)),"DataTransfer"===(null==u?void 0:u.constructor.name)?ReactEditor.insertData(h,u):"string"==typeof u&&(f?E.current.push((()=>Editor.insertText(h,u))):Editor.insertText(h,u))}var F=null===(i=EDITOR_TO_USER_SELECTION.get(h))||void 0===i?void 0:i.unref();EDITOR_TO_USER_SELECTION.delete(h),!F||h.selection&&Range.equals(h.selection,F)||Transforms.select(h,F)}}),[h,A,R,a,s,x]),N=React.useCallback((e=>{null==e?(A.cancel(),x.cancel(),EDITOR_TO_ELEMENT.delete(h),NODE_TO_ELEMENT.delete(h),y.current&&HAS_BEFORE_INPUT_SUPPORT&&y.current.removeEventListener("beforeinput",I)):HAS_BEFORE_INPUT_SUPPORT&&e.addEventListener("beforeinput",I),y.current=e,"function"==typeof t?t(e):t&&(t.current=e)}),[A,x,h,I,t]);useIsomorphicLayoutEffect$3((()=>{var e=ReactEditor.getWindow(h);e.document.addEventListener("selectionchange",x);var t=()=>{T.isDraggingInternally=!1};return e.document.addEventListener("dragend",t),e.document.addEventListener("drop",t),()=>{e.document.removeEventListener("selectionchange",x),e.document.removeEventListener("dragend",t),e.document.removeEventListener("drop",t)}}),[x,T]);var k=r([h,[]]),$=i&&1===h.children.length&&1===Array.from(Node$1.texts(h)).length&&""===Node$1.string(h)&&!g,F=React.useCallback((e=>{var t;e&&$?w(null===(t=e.getBoundingClientRect())||void 0===t?void 0:t.height):w(void 0)}),[$]);if($){var P=Editor.start(h,[]);k.push({[PLACEHOLDER_SYMBOL]:!0,placeholder:i,onPlaceholderResize:F,anchor:P,focus:P})}var{marks:M}=h;if(T.hasMarkPlaceholder=!1,h.selection&&Range.isCollapsed(h.selection)&&M){var{anchor:L}=h.selection,B=Node$1.leaf(h,L.path),j=_objectWithoutProperties(B,_excluded2);if(!Text$1.equals(B,M,{loose:!0})){T.hasMarkPlaceholder=!0;var U=Object.fromEntries(Object.keys(j).map((e=>[e,null])));k.push(_objectSpread$1$3(_objectSpread$1$3(_objectSpread$1$3({[MARK_PLACEHOLDER_SYMBOL]:!0},U),M),{},{anchor:L,focus:L}))}}return React.useEffect((()=>{setTimeout((()=>{var{selection:e}=h;if(e){var{anchor:t}=e,n=Node$1.leaf(h,t.path);if(M&&!Text$1.equals(n,M,{loose:!0}))return void EDITOR_TO_PENDING_INSERTION_MARKS.set(h,M)}EDITOR_TO_PENDING_INSERTION_MARKS.delete(h)}))})),React__default.default.createElement(ReadOnlyContext.Provider,{value:s},React__default.default.createElement(ComposingContext.Provider,{value:g},React__default.default.createElement(DecorateContext.Provider,{value:r},React__default.default.createElement(RestoreDOM,{node:y,receivedUserInput:S},React__default.default.createElement(p,_objectSpread$1$3(_objectSpread$1$3({role:s?void 0:"textbox","aria-multiline":!s||void 0},_),{},{spellCheck:!(!HAS_BEFORE_INPUT_SUPPORT&&CAN_USE_DOM)&&_.spellCheck,autoCorrect:HAS_BEFORE_INPUT_SUPPORT||!CAN_USE_DOM?_.autoCorrect:"false",autoCapitalize:HAS_BEFORE_INPUT_SUPPORT||!CAN_USE_DOM?_.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,_.onBeforeInput)&&ReactEditor.hasSelectableTarget(h,e.target)&&(e.preventDefault(),!ReactEditor.isComposing(h))){var t=e.data;Editor.insertText(h,t)}}),[_.onBeforeInput,h,s]),onInput:React.useCallback((e=>{if(!isEventHandled(e,_.onInput))if(O.current)O.current.handleInput();else{for(var t of E.current)t();if(E.current=[],!ReactEditor.isFocused(h)){var n=e.nativeEvent,o=h;if("historyUndo"===n.inputType&&"function"==typeof o.undo)return void o.undo();if("historyRedo"===n.inputType&&"function"==typeof o.redo)return void o.redo()}}}),[_.onInput,h]),onBlur:React.useCallback((e=>{if(!s&&!T.isUpdatingSelection&&ReactEditor.hasSelectableTarget(h,e.target)&&!isEventHandled(e,_.onBlur)){var t=ReactEditor.findDocumentOrShadowRoot(h);if(T.latestElement!==t.activeElement){var{relatedTarget:n}=e;if(!(n===ReactEditor.toDOMNode(h,h)||isDOMElement(n)&&n.hasAttribute("data-slate-spacer"))){if(null!=n&&isDOMNode(n)&&ReactEditor.hasDOMNode(h,n)){var o=ReactEditor.toSlateNode(h,n);if(Element$2.isElement(o)&&!h.isVoid(o))return}if(IS_WEBKIT){var r=getSelection(t);null==r||r.removeAllRanges()}IS_FOCUSED.delete(h)}}}}),[s,T.isUpdatingSelection,T.latestElement,h,_.onBlur]),onClick:React.useCallback((e=>{if(ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,_.onClick)&&isDOMNode(e.target)){var t=ReactEditor.toSlateNode(h,e.target),n=ReactEditor.findPath(h,t);if(!Editor.hasPath(h,n)||Node$1.get(h,n)!==t)return;if(e.detail===TRIPLE_CLICK&&n.length>=1){var o=n;if(!Element$2.isElement(t)||!Editor.isBlock(h,t)){var r,a=Editor.above(h,{match:e=>Element$2.isElement(e)&&Editor.isBlock(h,e),at:n});o=null!==(r=null==a?void 0:a[1])&&void 0!==r?r:n.slice(0,1)}var i=Editor.range(h,o);return void Transforms.select(h,i)}if(s)return;var l=Editor.start(h,n),c=Editor.end(h,n),u=Editor.void(h,{at:l}),d=Editor.void(h,{at:c});if(u&&d&&Path.equals(u[1],d[1])){var f=Editor.range(h,l);Transforms.select(h,f)}}}),[h,_.onClick,s]),onCompositionEnd:React.useCallback((e=>{if(ReactEditor.hasSelectableTarget(h,e.target)){var t;if(ReactEditor.isComposing(h)&&Promise.resolve().then((()=>{v(!1),IS_COMPOSING.set(h,!1)})),null===(t=O.current)||void 0===t||t.handleCompositionEnd(e),isEventHandled(e,_.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(h);EDITOR_TO_PENDING_INSERTION_MARKS.delete(h),void 0!==n&&(EDITOR_TO_USER_MARKS.set(h,h.marks),h.marks=n),Editor.insertText(h,e.data);var o=EDITOR_TO_USER_MARKS.get(h);EDITOR_TO_USER_MARKS.delete(h),void 0!==o&&(h.marks=o)}}}),[_.onCompositionEnd,h]),onCompositionUpdate:React.useCallback((e=>{ReactEditor.hasSelectableTarget(h,e.target)&&!isEventHandled(e,_.onCompositionUpdate)&&(ReactEditor.isComposing(h)||(v(!0),IS_COMPOSING.set(h,!0)))}),[_.onCompositionUpdate,h]),onCompositionStart:React.useCallback((e=>{if(ReactEditor.hasSelectableTarget(h,e.target)){var t;if(null===(t=O.current)||void 0===t||t.handleCompositionStart(e),isEventHandled(e,_.onCompositionStart)||IS_ANDROID)return;v(!0);var{selection:n}=h;if(n&&Range.isExpanded(n))return void Editor.deleteFragment(h)}}),[_.onCompositionStart,h]),onCopy:React.useCallback((e=>{!ReactEditor.hasSelectableTarget(h,e.target)||isEventHandled(e,_.onCopy)||isDOMEventTargetInput(e)||(e.preventDefault(),ReactEditor.setFragmentData(h,e.clipboardData,"copy"))}),[_.onCopy,h]),onCut:React.useCallback((e=>{if(!s&&ReactEditor.hasSelectableTarget(h,e.target)&&!isEventHandled(e,_.onCut)&&!isDOMEventTargetInput(e)){e.preventDefault(),ReactEditor.setFragmentData(h,e.clipboardData,"cut");var{selection:t}=h;if(t)if(Range.isExpanded(t))Editor.deleteFragment(h);else{var n=Node$1.parent(h,t.anchor.path);Editor.isVoid(h,n)&&Transforms.delete(h)}}}),[s,h,_.onCut]),onDragOver:React.useCallback((e=>{if(ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,_.onDragOver)){var t=ReactEditor.toSlateNode(h,e.target);Element$2.isElement(t)&&Editor.isVoid(h,t)&&e.preventDefault()}}),[_.onDragOver,h]),onDragStart:React.useCallback((e=>{if(!s&&ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,_.onDragStart)){var t=ReactEditor.toSlateNode(h,e.target),n=ReactEditor.findPath(h,t);if(Element$2.isElement(t)&&Editor.isVoid(h,t)||Editor.void(h,{at:n,voids:!0})){var o=Editor.range(h,n);Transforms.select(h,o)}T.isDraggingInternally=!0,ReactEditor.setFragmentData(h,e.dataTransfer,"drag")}}),[s,h,_.onDragStart,T]),onDrop:React.useCallback((e=>{if(!s&&ReactEditor.hasTarget(h,e.target)&&!isEventHandled(e,_.onDrop)){e.preventDefault();var t=h.selection,n=ReactEditor.findEventRange(h,e),o=e.dataTransfer;Transforms.select(h,n),T.isDraggingInternally&&(!t||Range.equals(t,n)||Editor.void(h,{at:n,voids:!0})||Transforms.delete(h,{at:t})),ReactEditor.insertData(h,o),ReactEditor.isFocused(h)||ReactEditor.focus(h)}}),[s,h,_.onDrop,T]),onDragEnd:React.useCallback((e=>{!s&&T.isDraggingInternally&&_.onDragEnd&&ReactEditor.hasTarget(h,e.target)&&_.onDragEnd(e)}),[s,T,_,h]),onFocus:React.useCallback((e=>{if(!s&&!T.isUpdatingSelection&&ReactEditor.hasEditableTarget(h,e.target)&&!isEventHandled(e,_.onFocus)){var t=ReactEditor.toDOMNode(h,h),n=ReactEditor.findDocumentOrShadowRoot(h);if(T.latestElement=n.activeElement,IS_FIREFOX&&e.target!==t)return void t.focus();IS_FOCUSED.set(h,!0)}}),[s,T,h,_.onFocus]),onKeyDown:React.useCallback((e=>{if(!s&&ReactEditor.hasEditableTarget(h,e.target)){var t;null===(t=O.current)||void 0===t||t.handleKeyDown(e);var{nativeEvent:n}=e;if(ReactEditor.isComposing(h)&&!1===n.isComposing&&(IS_COMPOSING.set(h,!1),v(!1)),isEventHandled(e,_.onKeyDown)||ReactEditor.isComposing(h))return;var{selection:o}=h,r=h.children[null!==o?o.focus.path[0]:0],a="rtl"===direction_1(Node$1.string(r));if(Hotkeys.isRedo(n)){e.preventDefault();var i=h;return void("function"==typeof i.redo&&i.redo())}if(Hotkeys.isUndo(n)){e.preventDefault();var l=h;return void("function"==typeof l.undo&&l.undo())}if(Hotkeys.isMoveLineBackward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line",reverse:!0});if(Hotkeys.isMoveLineForward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line"});if(Hotkeys.isExtendLineBackward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line",edge:"focus",reverse:!0});if(Hotkeys.isExtendLineForward(n))return e.preventDefault(),void Transforms.move(h,{unit:"line",edge:"focus"});if(Hotkeys.isMoveBackward(n))return e.preventDefault(),void(o&&Range.isCollapsed(o)?Transforms.move(h,{reverse:!a}):Transforms.collapse(h,{edge:a?"end":"start"}));if(Hotkeys.isMoveForward(n))return e.preventDefault(),void(o&&Range.isCollapsed(o)?Transforms.move(h,{reverse:a}):Transforms.collapse(h,{edge:a?"start":"end"}));if(Hotkeys.isMoveWordBackward(n))return e.preventDefault(),o&&Range.isExpanded(o)&&Transforms.collapse(h,{edge:"focus"}),void Transforms.move(h,{unit:"word",reverse:!a});if(Hotkeys.isMoveWordForward(n))return e.preventDefault(),o&&Range.isExpanded(o)&&Transforms.collapse(h,{edge:"focus"}),void Transforms.move(h,{unit:"word",reverse:a});if(HAS_BEFORE_INPUT_SUPPORT){if((IS_CHROME||IS_WEBKIT)&&o&&(Hotkeys.isDeleteBackward(n)||Hotkeys.isDeleteForward(n))&&Range.isCollapsed(o)){var c=Node$1.parent(h,o.anchor.path);if(Element$2.isElement(c)&&Editor.isVoid(h,c)&&(Editor.isInline(h,c)||Editor.isBlock(h,c)))return e.preventDefault(),void Editor.deleteBackward(h,{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(h);if(Hotkeys.isSplitBlock(n))return e.preventDefault(),void Editor.insertBreak(h);if(Hotkeys.isDeleteBackward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"backward"}):Editor.deleteBackward(h));if(Hotkeys.isDeleteForward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"forward"}):Editor.deleteForward(h));if(Hotkeys.isDeleteLineBackward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"backward"}):Editor.deleteBackward(h,{unit:"line"}));if(Hotkeys.isDeleteLineForward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"forward"}):Editor.deleteForward(h,{unit:"line"}));if(Hotkeys.isDeleteWordBackward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"backward"}):Editor.deleteBackward(h,{unit:"word"}));if(Hotkeys.isDeleteWordForward(n))return e.preventDefault(),void(o&&Range.isExpanded(o)?Editor.deleteFragment(h,{direction:"forward"}):Editor.deleteForward(h,{unit:"word"}))}}}),[s,h,_.onKeyDown]),onPaste:React.useCallback((e=>{s||!ReactEditor.hasEditableTarget(h,e.target)||isEventHandled(e,_.onPaste)||(!HAS_BEFORE_INPUT_SUPPORT||isPlainTextOnlyPaste(e.nativeEvent)||IS_WEBKIT)&&(e.preventDefault(),ReactEditor.insertData(h,e.clipboardData))}),[s,h,_.onPaste])}),React__default.default.createElement(Children,{decorations:k,node:h,renderElement:l,renderPlaceholder:u,renderLeaf:c,selection:h.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 o=n.startContainer.parentElement;o.getBoundingClientRect=n.getBoundingClientRect.bind(n),e(o,{scrollMode:"if-needed"}),delete o.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,o=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:o}}var _excluded=["editor","children","onChange","onSelectionChange","onValueChange","initialValue"],Slate=e=>{var{editor:t,children:n,onChange:o,onSelectionChange:r,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(o&&o(t.children),"set_selection"===(null==e||null===(n=e.operation)||void 0===n?void 0:n.type))null==r||r(t.selection);else null==a||a(t.children);c((e=>({v:e.v+1,editor:t}))),d(t)}),[t,d,o,r,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 o=ReactEditor.toDOMRange(e,t).getBoundingClientRect(),r=ReactEditor.toDOMRange(e,n).getBoundingClientRect();return doRectsIntersect(o,r)&&doRectsIntersect(r,o)},findCurrentLineRange=(e,t)=>{var n=Editor.range(e,Range.end(t)),o=Array.from(Editor.positions(e,{at:t})),r=0,a=o.length,i=Math.floor(a/2);if(areRangesSameLine(e,Editor.range(e,o[r]),n))return Editor.range(e,o[r],n);if(o.length<2)return Editor.range(e,o[o.length-1],n);for(;i!==o.length&&i!==r;)areRangesSameLine(e,Editor.range(e,o[i]),n)?a=i:r=i,i=Math.floor((r+a)/2);return Editor.range(e,o[a],n)};function ownKeys$9(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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:o,onChange:r,deleteBackward:a,addMark:i,removeMark:s}=n;return EDITOR_TO_KEY_TO_ELEMENT.set(n,new WeakMap),n.addMark=(e,t)=>{var o,r;null===(o=EDITOR_TO_SCHEDULE_FLUSH.get(n))||void 0===o||o(),!EDITOR_TO_PENDING_INSERTION_MARKS.get(n)&&null!==(r=EDITOR_TO_PENDING_DIFFS.get(n))&&void 0!==r&&r.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[,o]=t,r=Editor.range(n,o,n.selection.anchor),i=findCurrentLineRange(n,r);Range.isCollapsed(i)||Transforms.delete(n,{at:i})}}},n.apply=t=>{var r=[],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":r.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":r.push(...getMatches(n,Path.parent(t.path)));break;case"merge_node":var f=Path.previous(t.path);r.push(...getMatches(n,f));break;case"move_node":var p,m=Path.common(Path.parent(t.path),Path.parent(t.newPath));r.push(...getMatches(n,m)),Path.isBefore(t.path,t.newPath)?(r.push(...getMatches(n,Path.parent(t.path))),p=t.newPath):(r.push(...getMatches(n,Path.parent(t.newPath))),p=t.path);var _=Node$1.get(e,Path.parent(p)),h=ReactEditor.findKey(n,_),g=Editor.pathRef(n,Path.parent(p));a.push([g,h])}switch(o(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,y]of r){var[E]=Editor.node(n,v);NODE_TO_KEY.set(E,y)}for(var[b,w]of a){if(b.current){var[C]=Editor.node(n,b.current);NODE_TO_KEY.set(C,w)}b.unref()}},n.setFragmentData=e=>{var{selection:o}=n;if(o){var[r,a]=Range.edges(o),i=Editor.void(n,{at:r.path}),s=Editor.void(n,{at:a.path});if(!Range.isCollapsed(o)||i){var l=ReactEditor.toDOMRange(n,o),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 _=n.getFragment(),h=JSON.stringify(_),g=window.btoa(encodeURIComponent(h));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 o=e.getData("application/".concat(t))||getSlateFragmentAttribute(e);if(o){var r=decodeURIComponent(window.atob(o)),a=JSON.parse(r);return n.insertFragment(a),!0}return!1},n.insertTextData=e=>{var t=e.getData("text/plain");if(t){var o=t.split(/\r\n|\r|\n/),r=!1;for(var a of o)r&&Transforms.splitNodes(n,{always:!0}),n.insertText(a),r=!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),r(e)}))},n},getMatches=(e,t)=>{var n=[];for(var[o,r]of Editor.levels(e,{at:t})){var a=ReactEditor.findKey(e,o);n.push([r,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),o=React.useMemo((()=>({...defaultComponents,...n,...t})),[n,t]);return React__namespace.createElement(ComponentsContext.Provider,{value:o},e)}const LiveblocksUIConfigContext=React.createContext({});function useLiveblocksUIConfig(){return React.useContext(LiveblocksUIConfigContext)}function LiveblocksUIConfig({overrides:e,components:t,portalContainer:n,preventUnsavedComposerChanges:o=!0,children:r}){const a=React.useMemo((()=>({portalContainer:n,preventUnsavedComposerChanges:o})),[n,o]);return React__default.default.createElement(LiveblocksUIConfigContext.Provider,{value:a},React__default.default.createElement(OverridesProvider,{overrides:e},React__default.default.createElement(ComponentsProvider,{components:t},r)))}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 o=getMatchRange(e,e.selection,[n.character]);if(!o||Range.isCollapsed(o))return!1;const r=getCharacterBefore(e,o);if(!r||r.text!==n.character)return!1;const a=getCharacterBefore(e,r.range);if(a&&!markFormattingCharacters.includes(a.text)&&!isEmptyString(a.text))return!1;const i=Editor.string(e,o);return i.trim()===i&&(Transforms.select(e,o),e.addMark(n.mark,!0),Transforms.collapse(e,{edge:"end"}),e.removeMark(n.mark),Transforms.delete(e,{at:r.range}),!0)}function withAutoFormatting(e){const{insertText:t}=e;return e.insertText=(n,o)=>{if(!isSelectionCollapsed(e.selection))return t(n,o);let r=!0;for(const t of formatters)"mark"===t.type&&formatMark(e,n,t)&&(r=!1);r&&t(n,o)},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 o=Array.from(Editor.nodes(e,{at:n,match:t=>Element$2.isElement(t)&&Editor.isBlock(e,t),mode:"lowest"}));for(const[,r]of o){const o=Range.isRange(n)?Range.intersection(n,Editor.range(e,r)):n;if(!o)continue;const a=Array.from(Editor.nodes(e,{at:o,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:o}=e;return e.isInline=e=>"custom-link"===e.type||t(e),e.normalizeNode=t=>{const[o,r]=t;if(isText(o)){if(isComposerBodyCustomLink(Node$1.parent(e,r))&&!isPlainText(o)){const t=Object.keys(o).filter((e=>"text"!==e));Transforms.unsetNodes(e,t,{at:r})}}n(t)},e.insertData=t=>{const{selection:n}=e,r=t.getData("text/plain");let a=!0;n&&!Range.isCollapsed(n)&&n.anchor.path[0]===n.focus.path[0]&&isUrl(r)&&(selectionContainsInlines(e,(e=>!isText(e)))||(Transforms.wrapNodes(e,{type:"custom-link",url:r,children:[]},{at:n,split:!0,match:isPlainText}),a=!1)),a&&o(t)},e}function isComposerBodyCustomLink(e){return Element$2.isElement(e)&&"custom-link"===e.type}function withAutoLinks(e){const{isInline:t,normalizeNode:n,deleteBackward:o}=e;return e.isInline=e=>"auto-link"===e.type||t(e),e.normalizeNode=t=>{const[o,r]=t;if(!isComposerBodyCustomLink(o)){if(isText(o)){const t=Node$1.parent(e,r);if(isComposerBodyCustomLink(t))return;if(isComposerBodyAutoLink(t)){const n=Path.parent(r);if(handleLinkEdit(e,[t,n]),!isPlainText(o)){const t=Object.keys(o).filter((e=>"text"!==e));Transforms.unsetNodes(e,t,{at:r})}}else handleLinkCreate(e,[o,r]),handleNeighbours(e,[o,r])}n(t)}},e.deleteBackward=t=>{o(t);const{selection:n}=e;if(!n)return;if(!Range.isCollapsed(n))return;const[r]=Editor.nodes(e,{at:n,match:isComposerBodyAutoLink,mode:"lowest"});r&&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 o of e){if("("===o&&n++,")"===o&&(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,o){const[r,a]=t,i=r.text,s=i[n-1],l=n>0&&s?isSeparator(s):isPreviousNodeValid(e,a),c=i[o],u=o<i.length&&c?isSeparator(c):isNextNodeValid(e,a);return l&&u}const handleLinkEdit=(e,t)=>{const[n,o]=t,r=Node$1.children(e,o);for(const[t]of r)if(!isText(t))return void Transforms.unwrapNodes(e,{at:o});const a=Node$1.string(n),i=URL_REGEX.exec(a),s=i?.[0];if(!i||s!==a)return void Transforms.unwrapNodes(e,{at:o});if(endsWithPeriodOrQuestionMark(a)){Transforms.unwrapNodes(e,{at:o});const t=a.slice(0,a.length-1);return void Transforms.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:o,offset:0},focus:{path:o,offset:t.length}},split:!0})}const l=getUrlLogicalLength(a);if(l<a.length){Transforms.unwrapNodes(e,{at:o});const t=a.slice(0,l);Transforms.wrapNodes(e,{type:"auto-link",url:t,children:[]},{at:{anchor:{path:o,offset:0},focus:{path:o,offset:t.length}},split:!0})}else isPreviousNodeValid(e,o)&&isNextNodeValid(e,o)?n.url===a||Transforms.setNodes(e,{url:s},{at:o}):Transforms.unwrapNodes(e,{at:o})},handleLinkCreate=(e,t)=>{const[n,o]=t,r=URL_REGEX.exec(n.text),a=r?.[0];if(!r||void 0===a)return;const i=r.index,s=i+a.length;isContentAroundValid(e,t,i,s)&&Transforms.wrapNodes(e,{type:"auto-link",url:a,children:[]},{at:{anchor:{path:o,offset:i},focus:{path:o,offset:s}},split:!0})},handleNeighbours=(e,t)=>{const[n,o]=t,r=n.text,a=Editor.previous(e,{at:o});if(a&&isComposerBodyAutoLink(a[0])){if(PERIOD_OR_QUESTION_MARK_FOLLOWED_BY_ALPHANUMERIC.test(r))return Transforms.unwrapNodes(e,{at:a[1]}),void Transforms.mergeNodes(e,{at:o});if(!startsWithSeparator(r))return void Transforms.unwrapNodes(e,{at:a[1]})}const i=Editor.next(e,{at:o});i&&isComposerBodyAutoLink(i[0])&&!endsWithSeparator(r)&&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[o,r]=n;if(Element$2.isElement(o)&&"paragraph"===o.type)for(const[t,n]of Node$1.children(e,r))if(Element$2.isElement(t)&&!e.isInline(t))return void Transforms.unwrapNodes(e,{at:n});!Element$2.isElement(o)||"auto-link"!==o.type&&"custom-link"!==o.type||(0===o.children.length||1===o.children.length&&""===o.children[0]?.text)&&Transforms.removeNodes(e,{at:r}),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 o=n.call(e,t||"default");if("object"!==_typeof$2(o))return o;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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=t[t.length-1];if("string"==typeof e){var r={text:e};STRINGS.add(r),e=r}if(Text$1.isText(e)){var a=e;Text$1.isText(o)&&STRINGS.has(o)&&STRINGS.has(a)&&Text$1.equals(o,a,{loose:!0})?o.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 o of e.flat(1/0))n(o);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 o=n.find((e=>e instanceof AnchorToken)),r=n.find((e=>e instanceof FocusToken));if(!o||null==o.offset||null==o.path)throw new Error("The <selection> hyperscript tag must have an <anchor> tag as a child with `path` and `offset` attributes defined.");if(!r||null==r.offset||null==r.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:o.offset,path:o.path},focus:{offset:r.offset,path:r.path}},t)}function createText(e,t,n){var o=resolveDescendants(n);if(o.length>1)throw new Error("The <text> hyperscript tag must only contain a single node's worth of children.");var[r]=o;if(null==r&&(r={text:""}),!Text$1.isText(r))throw new Error("\n The <text> hyperscript tag can only contain text content as children.");return STRINGS.delete(r),Object.assign(r,t),r}var createEditor=e=>(t,n,o)=>{var r,a=[];for(var i of o)Range.isRange(i)?r=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[_]=p;l.focus={path:d,offset:_}}}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!=r?c.selection=r:Range.isRange(l)&&(c.selection=l),c};function ownKeys$8(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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),o=_objectSpread$8(_objectSpread$8(_objectSpread$8({},DEFAULT_CREATORS),n),e.creators);return createFactory(o)},createFactory=e=>function(t,n){for(var o=arguments.length,r=new Array(o>2?o-2:0),a=2;a<o;a++)r[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)||(r=[n].concat(r),n={}),i(t,n,r=r.filter((e=>Boolean(e))).flat())},normalizeElements=e=>{var t={},n=function(){var n=e[o];if("object"!=typeof n)throw new Error("Properties specified for a hyperscript shorthand should be an object, but for the custom element <".concat(o,"> tag you passed: ").concat(n));t[o]=(e,t,o)=>createElement("element",_objectSpread$8(_objectSpread$8({},n),t),o)};for(var o 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),o=new URL(t);return n.origin===o.origin&&n.pathname===o.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,o={};return"bold"!==n.fontWeight&&"700"!==n.fontWeight&&"800"!==n.fontWeight&&"900"!==n.fontWeight||(o.bold=!0),"italic"===n.fontStyle&&(o.italic=!0),"line-through"===n.textDecoration&&(o.strikethrough=!0),jsxTextChildren(t,o)}return t}function withPaste(e,{createAttachments:t,pasteFilesAsAttachments:n}){const{insertData:o}=e;return e.insertData=r=>{if(r.types.includes("Files")&&n){const e=getFiles(r);if(e.length>0)return void t(e)}if(r.types.includes("text/html")&&!r.types.includes("application/x-slate-fragment")){const t=r.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 o=deserialize(n);if(null!==o&&Array.isArray(o))return void Transforms.insertFragment(e,o)}catch{}}o(r)},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 o=MODIFIERS[t]();return e[o]===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(),o=React.useRef(null),r=React.useRef(null);useLayoutEffect((()=>{const t=e.current;if(!t)return;const a=e=>{e.animationName===r.current&&n(),o.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);r.current=e.animationName,"none"!==e.animationName&&e.animationName!==o.current&&"none"!==e.display||n()}))),()=>{cancelAnimationFrame(i)}}),[t,e,n])}function Persist({children:e}){const[t,n]=React.useState(!0),o=React.useRef(null),r=getChild(e),a=React.useCallback((()=>{flushSync((()=>n(!1)))}),[]);return useLayoutEffect((()=>{r&&(n(!0),o.current=r)}),[r]),React__default.default.createElement(PersistContext.Provider,{value:[Boolean(r),a]},r??(t?o.current:null))}const Portal$4=React.forwardRef((({container:e=document?.body,asChild:t,...n},o)=>{const r=t?Slot:"div";return e?ReactDOM.createPortal(React__default.default.createElement(r,{"data-liveblocks-portal":"",...n,ref:o}),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 o=n-t;return o>0?((e-t)%o+o)%o+t:0}const defaultOptions$1={wrap:!0};function useIndex(e,t,n){const{wrap:o}=React.useMemo((()=>({...defaultOptions$1,...n})),[n]),r=React.useMemo((()=>o?wrap:clamp),[o]),[a,i]=React.useState(e);React.useEffect((()=>{i((e=>clamp(e,0,Math.max(t-1,0))))}),[t]);return[a,React.useCallback((()=>{i((e=>r(e-1,0,Math.max(t,0))))}),[t,r]),React.useCallback((()=>{i((e=>r(e+1,0,Math.max(t,0))))}),[t,r]),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:o,disabled:r}){const{isDisabled:a}=useComposer(),i=a||r,{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(o?.(e),!u.current||i||e.isDefaultPrevented())return;e.preventDefault(),e.stopPropagation(),c(!1);const t=getFiles(e.dataTransfer);s(t)}),[o,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,o=new Map,r=makeEventSource();let a=null;function i(){a=null,r.notify()}function s(t){const r=new AbortController;o.set(t.id,r),e.uploadAttachment(t,{signal:r.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 o=e.filter((e=>!n.has(e.id))),r=[];for(const e of o)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"}),r.push(e)}else n.set(e.id,e);o.length>0&&i();for(const e of r)s(e)},removeAttachment:function(e){const t=o.get(e);t?.abort(),n.delete(e),o.delete(e),i()},getSnapshot:function(){return a||(a=Array.from(n.values())),a},subscribe:r.subscribe,clear:function(){o.forEach((e=>e.abort())),o.clear(),n.clear(),i()}}}function preventBeforeUnloadDefault(e){e.preventDefault()}function useComposerAttachmentsManager(e,t){const n=_useRoom(),o=useInitial(e),r=useInitial((()=>createComposerAttachmentsManager(n,t)));React.useEffect((()=>{r.addAttachments(o)}),[o,r]),React.useEffect((()=>()=>{r.clear()}),[r]);const a=shim.exports.useSyncExternalStore(r.subscribe,r.getSnapshot,r.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:r.addAttachments,removeAttachment:r.removeAttachment,clearAttachments:r.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:o}){const r=useSelected();return React__default.default.createElement("span",{...t},o.id?React__default.default.createElement(e,{userId:o.id,isSelected:r}):null,n)}function ComposerEditorLinkWrapper({Link:e,attributes:t,element:n,children:o}){const r=React.useMemo((()=>toAbsoluteUrl(n.url)??n.url),[n.url]);return React__default.default.createElement("span",{...t},React__default.default.createElement(e,{href:r},o))}function ComposerEditorMentionSuggestionsWrapper({id:e,itemId:t,userIds:n,selectedUserId:o,setSelectedUserId:r,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,_]=React.useState(),h=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:y,setFloating:E},strategy:b,isPositioned:w,placement:C,x:R,y:S}=useFloating(v);return useLayoutEffect((()=>{f&&_(window.getComputedStyle(f).zIndex)}),[f]),useLayoutEffect((()=>{if(!a)return;const e=getDOMRange(u,a.range);e&&y({getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects()})}),[y,u,a]),React__default.default.createElement(Persist,null,a?.range&&d&&n?React__default.default.createElement(ComposerSuggestionsContext.Provider,{value:{id:e,itemId:t,selectedValue:o,setSelectedValue:r,onItemSelect:i,placement:C,dir:l,ref:h}},React__default.default.createElement(Portal$4,{ref:E,container:g,style:{position:b,top:0,left:0,transform:w?`translate3d(${Math.round(R)}px, ${Math.round(S)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:m}},React__default.default.createElement(c,{userIds:n,selectedUserId:o}))):null)}function ComposerEditorElement({Mention:e,Link:t,...n}){const{attributes:o,children:r,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",{...o,style:{position:"relative"}},r);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,...o}=e.style;return React__default.default.createElement("span",{...e,style:o,"data-placeholder":""},t)}const ComposerMention$1=React.forwardRef((({children:e,asChild:t,...n},o)=>{const r=t?Slot:"span",a=useSelected();return React__default.default.createElement(r,{"data-selected":a||void 0,...n,ref:o},e)})),ComposerLink$1=React.forwardRef((({children:e,asChild:t,...n},o)=>{const r=t?Slot:"a";return React__default.default.createElement(r,{target:"_blank",rel:"noopener noreferrer nofollow",...n,ref:o},e)})),ComposerSuggestions=React.forwardRef((({children:e,style:t,asChild:n,...o},r)=>{const[a]=usePersist(),i=React.useRef(null),{ref:s,placement:l,dir:c}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_NAME),u=useRefs(r,s,i),[d,f]=React.useMemo((()=>getSideAndAlignFromPlacement$1(l)),[l]),p=n?Slot:"div";return useAnimationPersist(i),React__default.default.createElement(p,{dir:c,...o,"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},o)=>{const{id:r}=useComposerSuggestionsContext(COMPOSER_SUGGESTIONS_LIST_NAME),a=t?Slot:"ul";return React__default.default.createElement(a,{role:"listbox",id:r,"aria-label":"Suggestions list",...n,ref:o},e)})),ComposerSuggestionsListItem=React.forwardRef((({value:e,children:t,onPointerMove:n,onPointerDown:o,onClick:r,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",_=React.useMemo((()=>u===e),[u,e]),h=React.useMemo((()=>f(e)),[f,e]);React.useEffect((()=>{l?.current&&_&&l.current.scrollIntoView({block:"nearest"})}),[_]);const g=React.useCallback((t=>{n?.(t),t.isDefaultPrevented()||d(e)}),[n,d,e]),v=React.useCallback((e=>{o?.(e),e.preventDefault(),e.stopPropagation()}),[o]),y=React.useCallback((t=>{r?.(t);const n=t.isDefaultPrevented();t.preventDefault(),t.stopPropagation(),n||p(e)}),[r,p,e]);return React__default.default.createElement(m,{role:"option",id:h,"data-selected":_||void 0,"aria-selected":_||void 0,onPointerMove:g,onPointerDown:v,onClick:y,...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:o,disabled:r,autoFocus:a,components:i,dir:s,...l},c)=>{const{editor:u,validate:d,setFocused:f}=useComposerEditorContext(),{submit:p,focus:m,select:_,canSubmit:h,isDisabled:g,isFocused:v}=useComposer(),y=g||r,E=useInitial(e??emptyCommentBody),b=React.useMemo((()=>commentBodyToComposerBody(E)),[E]),{Link:w,Mention:C,MentionSuggestions:R}=React.useMemo((()=>({...defaultEditorComponents,...i})),[i]),[S,D]=React.useState(),T=useMentionSuggestions(S?.text),[O,A,x,I]=useIndex(0,T?.length??0),N=useId$1(),k=React.useMemo((()=>`liveblocks-suggestions-list-${N}`),[N]),$=React.useCallback((e=>e?`liveblocks-suggestions-list-item-${N}-${e}`:void 0),[N]),F=React.useCallback((e=>React__default.default.createElement(ComposerEditorElement,{Mention:C,Link:w,...e})),[w,C]),P=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),I(0))}),[u,S,I]),L=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(),x()),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),I(0))}else isKey(e,"Escape")&&(e.preventDefault(),ReactEditor.blur(u)),isKey(e,"Enter",{shift:!1})&&(e.preventDefault(),h&&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,h,S,T,O,t,x,A,I,p]),B=React.useCallback((e=>{n?.(e),e.isDefaultPrevented()||f(!0)}),[n,f]),j=React.useCallback((e=>{o?.(e),e.isDefaultPrevented()||f(!1)}),[o,f]),U=React.useMemo((()=>T?.[O]),[O,T]),V=React.useCallback((e=>{const t=T?.indexOf(e);void 0!==t&&t>=0&&I(t)}),[I,T]),H=React.useMemo((()=>S?{role:"combobox","aria-autocomplete":"list","aria-expanded":!0,"aria-controls":k,"aria-activedescendant":$(U)}:{}),[S,k,$,U]);return React.useImperativeHandle(c,(()=>ReactEditor.toDOMNode(u,u)),[u]),React.useEffect((()=>{a&&m()}),[a,u,m]),React.useEffect((()=>{v&&null===u.selection&&_()}),[u,_,v]),React__default.default.createElement(Slate,{editor:u,initialValue:b,onChange:P},React__default.default.createElement(Editable,{dir:s,enterKeyHint:S?"enter":"send",autoCapitalize:"sentences","aria-label":"Composer editor","data-focused":v||void 0,"data-disabled":y||void 0,...H,...l,readOnly:y,disabled:y,onKeyDown:L,onFocus:B,onBlur:j,renderElement:F,renderLeaf:ComposerEditorLeaf,renderPlaceholder:ComposerEditorPlaceholder}),React__default.default.createElement(ComposerEditorMentionSuggestionsWrapper,{dir:s,mentionDraft:S,selectedUserId:U,setSelectedUserId:V,userIds:T,id:k,itemId:$,onItemSelect:M,MentionSuggestions:R}))})),MAX_ATTACHMENTS=10,MAX_ATTACHMENT_SIZE=1073741824,ComposerForm=React.forwardRef((({children:e,onSubmit:t,onComposerSubmit:n,defaultAttachments:o=[],pasteFilesAsAttachments:r,preventUnsavedChanges:a=!0,disabled:i,asChild:s,...l},c)=>{const u=s?Slot:"form",d=_useRoom(),[f,p]=React.useState(!0),[m,_]=React.useState(!1),[h,g]=React.useState(!1),v=MAX_ATTACHMENTS,y=MAX_ATTACHMENT_SIZE,{attachments:E,isUploadingAttachments:b,addAttachments:w,removeAttachment:C,clearAttachments:R}=useComposerAttachmentsManager(o,{maxFileSize:y}),S=E.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),x=useRefs(c,A),I=React.useRef(null),N=useSyncSource(),k=!!a&&(!f||b||E.length>0);React.useEffect((()=>{N?.setSyncStatus(k?"has-local-changes":"synchronized")}),[N,k]);const $=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)));w(n)}),[w,v,S,d]),F=React.useRef($);React.useEffect((()=>{F.current=$}),[$]);const P=React.useCallback((e=>{F.current(e)}),[]),M=useInitial((()=>createComposerEditor({createAttachments:P,pasteFilesAsAttachments:r}))),L=React.useCallback((e=>{p(isEmpty(M,e))}),[M]),B=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||I.current&&I.current.click()}),[i]),q=React.useCallback((e=>{i||e.target.files&&($(Array.from(e.target.files)),e.target.value="")}),[$,i]),G=React.useCallback((()=>{j(),H(),R(),_(!1)}),[H,j,R]),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 o=composerBodyToCommentBody(M.children),r=E.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:o,attachments:r},e);e.preventDefault(),a?(_(!0),a.then(G)):G()}),[i,M,E,n,t,G]),J=React.useCallback((e=>{e.stopPropagation()}),[]);return React__default.default.createElement(ComposerEditorContext.Provider,{value:{editor:M,validate:L,setFocused:g}},React__default.default.createElement(ComposerAttachmentsContext.Provider,{value:{createAttachments:$,isUploadingAttachments:b,hasMaxAttachments:D,maxAttachments:v,maxAttachmentSize:y}},React__default.default.createElement(ComposerContext.Provider,{value:{isDisabled:T,isFocused:h,isEmpty:f,canSubmit:O,submit:B,clear:j,select:U,focus:V,blur:H,createMention:z,insertText:K,attachments:E,attachFiles:W,removeAttachment:C}},React__default.default.createElement(u,{...l,onSubmit:Y,ref:x},React__default.default.createElement("input",{type:"file",multiple:!0,ref:I,onChange:q,onClick:J,tabIndex:-1,style:{display:"none"}}),React__default.default.createElement(Slottable,null,e)))))})),ComposerSubmit=React.forwardRef((({children:e,disabled:t,asChild:n,...o},r)=>{const a=n?Slot:"button",{canSubmit:i,isDisabled:s}=useComposer(),l=s||t||!i;return React__default.default.createElement(a,{type:"submit",...o,ref:r,disabled:l},e)})),ComposerAttachFiles=React.forwardRef((({children:e,onClick:t,disabled:n,asChild:o,...r},a)=>{const i=o?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",...r,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 o=JSON.stringify(n.map((e=>stringify(e))));if(t.has(o))return t.get(o);const r=e(...n);return t.set(o,r),r}}React.forwardRef((({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:o,disabled:r,asChild:a,...i},s)=>{const l=a?Slot:"div",{isDisabled:c}=useComposer(),u=c||r,[,d]=useComposerAttachmentsDropArea({onDragEnter:e,onDragLeave:t,onDragOver:n,onDrop:o,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 o=localesWithBrokenNarrowRelativeFormatting.some((e=>n===e||n.startsWith(`${e}-`))),r=relativeTimeFormat(n,{style:o?"short":"narrow",numeric:"auto"});let a=(e.getTime()-Date.now())/1e3;if(a>-relativeUnits.seconds&&a<relativeUnits.seconds)return r.format(0,"seconds");for(const[e,t]of Object.entries(relativeUnits)){if(Math.abs(a)<t)return r.format(Math.round(a),e);a/=t}return capitalize$1(r.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:o=formatVerboseDate,dateTime:r,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 o?o(f,t):o),[o,f,d]),_=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:r??p,title:m},_)}));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 o=n?.enabled??!0,r=useLatest(t);React.useEffect((()=>{const t=e.current;if(t)return o?observe(t,(e=>{e.isIntersecting&&r.current()})):unobserve(t),()=>{unobserve(t)}}),[o])}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[o,r]=React.useState(n),a=void 0!==e,i=React.useRef(a);React.useEffect((()=>{i.current=a}),[a]);return[a?e:o,React.useCallback((e=>(a||r(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$2(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,o)=>{switch(e){case SUBSCRIBE:o(t);break;case PUBLISH:t=o;break;case VALUE:return t}return n(e,o)}}function eventHandler(e){let t,n;const o=()=>t&&t();return function(r,a){switch(r){case SUBSCRIBE:if(a){if(n===a)return;return o(),n=a,t=subscribe(e,a),t}return o(),noop$1;case RESET:return o(),void(n=null);default:throw new Error(`unrecognized action ${r}`)}}}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,o)=>{switch(t){case SUBSCRIBE:return subscribe(e,n(o));case RESET:return void reset$2(e)}}}function defaultComparator(e,t){return e===t}function distinctUntilChanged(e=defaultComparator){let t;return n=>o=>{e(t,o)||(t=o,n(o))}}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=>o=>n(t=e(t,o))}function skip(e){return t=>n=>{e>0?e--:t(n)}}function throttleTime(e){let t,n=null;return o=>r=>{n=r,t||(t=setTimeout((()=>{t=void 0,o(n)}),e))}}function debounceTime(e){let t,n;return o=>r=>{t=r,n&&clearTimeout(n),n=setTimeout((()=>{o(t)}),e)}}function withLatestFrom(...e){const t=new Array(e.length);let n=0,o=null;const r=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!==r&&n===r&&o&&(o(),o=null)}))})),e=>a=>{const i=()=>e([a].concat(t));n===r?i():o=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 o=0;const r=Math.pow(2,e.length)-1;return e.forEach(((e,a)=>{const i=Math.pow(2,a);subscribe(e,(e=>{n[a]=e,o|=i,o===r&&publish(t,n)}))})),function(e,a){switch(e){case SUBSCRIBE:return o===r&&a(n),subscribe(t,a);case RESET:return reset$2(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:o,dependencies:r,singleton:a})=>{if(a&&t.has(e))return t.get(e);const i=o(r.map((e=>n(e))));return a&&t.set(e,i),i};return n(e)}function omit(e,t){const n={},o={};let r=0;const a=e.length;for(;r<a;)o[e[r]]=1,r+=1;for(const e in t)o.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 o=Object.keys(t.required||{}),r=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 r of o){publish(e[t.required[r]],n[r])}for(const o of r)if(o in n){publish(e[t.optional[o]],n[o])}e.propsReady&&publish(e.propsReady,!0)}function c(e){return i.reduce(((n,o)=>(n[o]=eventHandler(e[t.events[o]]),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))))),[_]=React__default.default.useState(curry1to0(c,m));useIsomorphicLayoutEffect$1((()=>{for(const e of i)e in p&&subscribe(_[e],p[e]);return()=>{Object.values(_).map(reset$2)}}),[p,_,m]),useIsomorphicLayoutEffect$1((()=>{l(m,p)})),React__default.default.useImperativeHandle(d,always(function(e){return a.reduce(((n,o)=>(n[o]=n=>{publish(e[t.methods[o]],n)},n)),{})}(m)));const h=n;return jsxRuntime.exports.jsx(s.Provider,{value:m,children:n?jsxRuntime.exports.jsx(h,{...omit([...o,...r,...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,o]=React__default.default.useState(curry1to0(getValue,t));return useIsomorphicLayoutEffect$1((()=>subscribe(t,(e=>{e!==n&&o(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,o=1)=>{var r;o>=(null!=(r=getGlobalThis().VIRTUOSO_LOG_LEVEL)?r:getValue(e))&&console[CONSOLE_METHOD_MAP[o]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)})),logLevel:e}}),[],{singleton:!0});function useSizeWithElRef(e,t,n){const o=React__default.default.useRef(null);let r=e=>{};if("undefined"!=typeof ResizeObserver){const a=React__default.default.useMemo((()=>new ResizeObserver((t=>{const o=()=>{const n=t[0].target;null!==n.offsetParent&&e(n)};n?o():requestAnimationFrame(o)}))),[e]);r=e=>{e&&t?(a.observe(e),o.current=e):(o.current&&a.unobserve(o.current),o.current=null)}}return{ref:o,callbackRef:r}}function useSize$1(e,t,n){return useSizeWithElRef(e,t,n).callbackRef}function useChangedListContentsSizes(e,t,n,o,r,a,i,s,l){return useSizeWithElRef(React__default.default.useCallback((n=>{const l=getChangedChildSizes(n.children,t,s?"offsetWidth":"offsetHeight",r);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;o({scrollTop:Math.max(d,0),scrollHeight:f,viewportHeight:p}),null==a||a(s?resolveGapValue$1("column-gap",getComputedStyle(n).columnGap,r):resolveGapValue$1("row-gap",getComputedStyle(n).rowGap,r)),null!==l&&e(l)}),[e,t,r,a,i,o]),n,l)}function getChangedChildSizes(e,t,n,o){const r=e.length;if(0===r)return null;const a=[];for(let i=0;i<r;i++){const r=e.item(i);if(!r||void 0===r.dataset.index)continue;const s=parseInt(r.dataset.index),l=parseFloat(r.dataset.knownSize),c=t(r,n);if(0===c&&o("Zero-sized element, this should not happen",{child:r},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,o=noop$1,r,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 o=n.target,r=o===window||o===document,i=a?r?window.pageXOffset||document.documentElement.scrollLeft:o.scrollLeft:r?window.pageYOffset||document.documentElement.scrollTop:o.scrollTop,c=a?r?document.documentElement.scrollWidth:o.scrollWidth:r?document.documentElement.scrollHeight:o.scrollHeight,u=a?r?window.innerWidth:o.offsetWidth:r?window.innerHeight:o.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=r||i.current;return o(r||i.current),c({target:e,suppressFlushSync:!0}),e.addEventListener("scroll",c,{passive:!0}),()=>{o(null),e.removeEventListener("scroll",c)}}),[i,c,n,o,r]),{scrollerRef:i,scrollByCallback:function(e){a&&(e={left:e.top,behavior:e.behavior}),i.current.scrollBy(e)},scrollToCallback:function(n){const o=i.current;if(!o||(a?"offsetWidth"in o&&0===o.offsetWidth:"offsetHeight"in o&&0===o.offsetHeight))return;const r="smooth"===n.behavior;let c,u,d;o===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=o[a?"scrollWidth":"scrollHeight"],c=correctItemSize(o,a?"width":"height"),d=o[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(r&&t(!0));r?(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}),o.scrollTo(n)}}}const domIOSystem=system((()=>{const e=stream(),t=stream(),n=statefulStream(0),o=stream(),r=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),_=statefulStream(!1);return connect(pipe(e,map((({scrollTop:e})=>e))),t),connect(pipe(e,map((({scrollHeight:e})=>e))),i),connect(t,r),{scrollContainerState:e,scrollTop:t,viewportHeight:a,headerHeight:s,fixedHeaderHeight:l,fixedFooterHeight:c,footerHeight:u,scrollHeight:i,smoothScrollTargetReached:o,horizontalDirection:m,skipAnimationFrameInResizeObserver:_,scrollTo:d,scrollBy:f,statefulScrollTop:r,deviation:n,scrollingInProgress:p}}),[],{singleton:!0}),NIL_NODE={lvl:0};function newAANode(e,t,n,o=NIL_NODE,r=NIL_NODE){return{k:e,v:t,lvl:n,l:o,r:r}}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:o,r:r}=e;if(t===n){if(empty(o))return r;if(empty(r))return o;{const[t,n]=last(o);return adjust(clone(e,{k:t,v:n,l:deleteLast(o)}))}}return adjust(clone(e,t<n?{l:remove(o,t)}:{r:remove(r,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 o=findMaxKeyValue(e.r,t,n);return o[0]===-1/0?[e.k,e.v]:o}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:o,v:r,l:a,r:i}=e;let s=[];return o>t&&(s=s.concat(walkWithin(a,t,n))),o>=t&&o<=n&&s.push({k:o,v:r}),o<=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:o}=e;if(n.lvl>=o-1&&t.lvl>=o-1)return e;if(o>n.lvl+1){if(isSingle(t))return skew(clone(e,{lvl:o-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:o-1}),lvl:o})}if(isSingle(e))return split(clone(e,{lvl:o-1}));if(empty(n)||empty(n.l))throw new Error("Unexpected empty nodes");{const t=n.l,r=isSingle(t)?n.lvl-1:n.lvl;return clone(t,{l:clone(e,{r:t.l,lvl:o-1}),r:split(clone(n,{l:t.r,lvl:r})),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:o,value:r}=t(e[0]);const a=[];for(let i=1;i<n;i++){const{index:n,value:s}=t(e[i]);a.push({start:o,end:n-1,value:r}),o=n,r=s}return a.push({start:o,end:1/0,value:r}),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,o=0){let r=e.length-1;for(;o<=r;){const a=Math.floor((o+r)/2),i=n(e[a],t);if(0===i)return a;if(-1===i){if(r-o<2)return a-1;r=a-1}else{if(r===o)return a;o=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,o){const r=findIndexOfClosestSmallerOrEqual(e,t,o),a=findIndexOfClosestSmallerOrEqual(e,n,o,r);return e.slice(r,a+1)}const recalcSystem=system((()=>({recalcInProgress:statefulStream(!1)})),[],{singleton:!0});function rangeIncludes(e){const{size:t,startIndex:n,endIndex:o}=e;return e=>e.start===n&&(e.end===o||e.end===1/0)&&e.value===t}function affectedGroupCount(e,t){let n=0,o=0;for(;n<e;)n+=t[o+1]-t[o]-1,o++;return o-(n===e?0:1)}function insertRanges(e,t){let n=empty(e)?0:1/0;for(const o of t){const{size:t,startIndex:r,endIndex:a}=o;if(n=Math.min(n,r),empty(e)){e=insert(e,0,t);continue}const i=rangesWithin(e,r-1,a+1);if(i.some(rangeIncludes(o)))continue;let s=!1,l=!1;for(const{start:n,end:o,value:r}of i)s?(a>=n||t===r)&&(e=remove(e,n)):(l=r!==t,s=!0),o>a&&a>=n&&r!==t&&(e=insert(e,a+1,r));l&&(e=insert(e,r,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,o=0){return o>0&&(t=Math.max(t,findClosestSmallerOrEqual(e,o,indexComparator).offset)),arrayToRanges(findRange(e,t,n,offsetComparator),offsetPointParser)}function createOffsetTree(e,t,n,o){let r=e,a=0,i=0,s=0,l=0;if(0!==t){l=findIndexOfClosestSmallerOrEqual(r,t-1,indexComparator);s=r[l].offset;const e=findMaxKeyValue(n,t-1);a=e[0],i=e[1],r.length&&r[l].size===findMaxKeyValue(n,t)[1]&&(l-=1),r=r.slice(0,l+1)}else r=[];for(const{start:e,value:l}of rangesWithin(n,t,1/0)){const t=e-a,n=t*i+s+t*o;r.push({offset:n,size:l,index:e}),a=e,s=n,i=l}return{offsetTree:r,lastIndex:a,lastOffset:s,lastSize:i}}function sizeStateReducer(e,[t,n,o,r]){t.length>0&&o("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,o=t[1].size;i=n.reduce(((t,n)=>insert(insert(t,n,e),n+1,o)),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,r);return{sizeTree:i,offsetTree:l,lastIndex:c,lastOffset:d,lastSize:u,groupOffsetTree:n.reduce(((e,t)=>insert(e,t,offsetOf(t,l,r))),newTree()),groupIndices:n}}function offsetOf(e,t,n){if(0===t.length)return 0;const{offset:o,index:r,size:a}=findClosestSmallerOrEqual(t,e,indexComparator),i=e-r,s=a*i+(i-1)*n+o;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 o=originalIndexFromItemIndex("LAST"===e.index?n:e.index,t);return o=Math.max(0,o,Math.min(n,o)),o}}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,o)=>{const r=o[n+1];return{startIndex:e,endIndex:r?r.k-1:1/0,size:t}}))}const SIZE_MAP={offsetHeight:"height",offsetWidth:"width"},sizeSystem=system((([{log:e},{recalcInProgress:t}])=>{const n=stream(),o=stream(),r=statefulStreamFromEmitter(o,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(),_=statefulStreamFromEmitter(pipe(n,withLatestFrom(l,e,p),scan(sizeStateReducer,m),distinctUntilChanged()),m),h=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(_,p),map((([e,t,n])=>{const o=e.reduce(((e,o,r)=>insert(e,o,offsetOf(o,t.offsetTree,n)||r)),newTree());return{...t,groupIndices:e,groupOffsetTree:o}}))),_),connect(pipe(o,withLatestFrom(_),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(_).sizeTree))),map((e=>[{startIndex:0,endIndex:0,size:e}]))),n);const v=streamFromEmitter(pipe(n,withLatestFrom(_),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(_);if(e>0)publish(t,!0),publish(a,e+affectedGroupCount(e,n));else if(e<0){const t=getValue(h);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 y=streamFromEmitter(a);connect(pipe(a,withLatestFrom(_),map((([e,t])=>{const n=t.groupIndices.length>0,o=[],r=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;o.push({startIndex:e,endIndex:e,size:n}),o.push({startIndex:e+1,endIndex:e+1+s-1,size:r}),i++,a+=s+1}const s=walk(t.sizeTree);return a!==e&&s.shift(),s.reduce(((t,{k:n,v:o})=>{let r=t.ranges;return 0!==t.prevSize&&(r=[...t.ranges,{startIndex:t.prevIndex,endIndex:n+e-1,size:t.prevSize}]),{ranges:r,prevIndex:n+e,prevSize:o}}),{ranges:o,prevIndex:e,prevSize:0}).ranges}return walk(t.sizeTree).reduce(((t,{k:n,v:o})=>({ranges:[...t.ranges,{startIndex:t.prevIndex,endIndex:n+e-1,size:t.prevSize}],prevIndex:n+e,prevSize:o})),{ranges:[],prevIndex:0,prevSize:r}).ranges}))),n);const E=streamFromEmitter(pipe(i,withLatestFrom(_,p),map((([e,{offsetTree:t},n])=>offsetOf(-e,t,n)))));return connect(pipe(i,withLatestFrom(_,p),map((([e,t,n])=>{if(t.groupIndices.length>0){if(empty(t.sizeTree))return t;let o=newTree();const r=getValue(h);let a=0,i=0,s=0;for(;a<-e;){s=r[i];const e=r[i+1]-s-1;i++,a+=e+1}o=walk(t.sizeTree).reduce(((t,{k:n,v:o})=>insert(t,Math.max(0,n+e),o)),o);if(a!==-e){o=insert(o,0,find(t.sizeTree,s));o=insert(o,1,findMaxKeyValue(t.sizeTree,1-e)[1])}return{...t,sizeTree:o,...createOffsetTree(t.offsetTree,0,o,n)}}{const o=walk(t.sizeTree).reduce(((t,{k:n,v:o})=>insert(t,Math.max(0,n+e),o)),newTree());return{...t,sizeTree:o,...createOffsetTree(t.offsetTree,0,o,n)}}}))),_),{data:f,totalCount:o,sizeRanges:n,groupIndices:l,defaultItemSize:u,fixedItemSize:c,unshiftWith:a,shiftWith:i,shiftWithOffset:E,beforeUnshiftWith:y,firstItemIndex:s,gap:p,sizes:_,listRefresh:v,statefulTotalCount:r,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:o},{scrollingInProgress:r,viewportHeight:a,scrollTo:i,smoothScrollTargetReached:s,headerHeight:l,footerHeight:c,fixedHeaderHeight:u,fixedFooterHeight:d},{log:f}])=>{const p=stream(),m=stream(),_=statefulStream(0);let h=null,g=null,v=null;function y(){h&&(h(),h=null),v&&(v(),v=null),g&&(clearTimeout(g),g=null),publish(r,!1)}return connect(pipe(p,withLatestFrom(e,a,t,_,l,c,f),withLatestFrom(o,u,d),map((([[e,t,o,a,i,l,c,u],d,f,_])=>{const E=normalizeIndexLocation(e),{align:b,behavior:w,offset:C}=E,R=a-1,S=originalIndexFromLocation(E,t,R);let D=offsetOf(S,t.offsetTree,d)+l;"end"===b?(D+=f+findMaxKeyValue(t.sizeTree,S)[1]-o+_,S===R&&(D+=c)):"center"===b?D+=(f+findMaxKeyValue(t.sizeTree,S)[1]-o+_)/2:D-=i,C&&(D+=C);const T=t=>{y(),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(y(),"smooth"===w){let e=!1;v=subscribe(n,(t=>{e=e||t})),h=handleNext(s,(()=>{T(e)}))}else h=handleNext(pipe(n,watchChangesFor(150)),T);return g=setTimeout((()=>{y()}),1200),publish(r,!0),u("scrolling from index to",{index:S,top:D,behavior:w},LogLevel.DEBUG),{top:D,behavior:w}}))),i),{scrollToIndex:p,scrollTargetReached:m,topListHeight:_}}),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:o,footerHeight:r,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(o),duc(r),duc(u)),scan(((e,[{scrollTop:t,scrollHeight:n},o,r,a,i])=>{const s={viewportHeight:o,scrollTop:t,scrollHeight:n};if(t+o-n>-i){let n,o;return t>e.state.scrollTop?(n="SCROLLED_DOWN",o=e.state.scrollTop-t):(n="SIZE_DECREASED",o=e.state.scrollTop-t||e.scrollTopDelta),{atBottom:!0,state:s,atBottomBecause:n,scrollTopDelta:o}}let l;return l=s.scrollHeight>e.state.scrollHeight?"SIZE_INCREASED":o<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)))),_=statefulStreamFromEmitter(pipe(e,scan(((e,{scrollTop:t,scrollHeight:n,viewportHeight:o})=>{if(approximatelyEqual(e.scrollHeight,n))return{scrollTop:t,scrollHeight:n,jump:0,changed:!1};{const r=n-(t+o)<1;return e.scrollTop!==t&&r?{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 h=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))),h),connect(pipe(e,throttleTime(50),mapTo(NONE$1)),h);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:h,atBottomThreshold:u,atTopThreshold:d,scrollVelocity:g,lastJumpDueToItemResize:_}}),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:o},{scrollToIndex:r,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},o,r])=>e&&(!empty(n)||isDefined(o))&&!t&&!r)),withLatestFrom(l)),(([,e])=>{handleNext(a,(()=>{publish(c,!0)})),skipFrames(4,(()=>{handleNext(o,(()=>{publish(s,!0)})),publish(r,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:o},{scrollToIndex:r},{scrolledToInitialItem:a},{propsReady:i,didMount:s},{log:l},{scrollingInProgress:c}])=>{const u=statefulStream(!1),d=stream();let f=null;function p(e){publish(r,{index:"LAST",align:"end",behavior:e})}function m(e){const t=handleNext(o,(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,o,r,a])=>{let i=t&&r,s="auto";return i&&(s=behaviorFromFollowOutput(n,o||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),o),(([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:o,headerHeight:r}])=>{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(o,n,r),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:o,fixedHeaderHeight:r}])=>{const a=stream(),i=statefulStream(0),s=statefulStream(0),l=statefulStream(0),c=statefulStreamFromEmitter(pipe(combineLatest(duc(e),duc(t),duc(o),duc(a,tupleComparator),duc(l),duc(i),duc(r),duc(n),duc(s)),map((([e,t,n,[o,r],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),_=getViewportIncrease(c,BOTTOM);return o-=l,r+=n+s,(o+=n+s)>e+d-m&&(p=UP),(r-=l)<e-f+t+_&&(p=DOWN),p!==NONE?[Math.max(u-n-getOverscan(a,TOP,p)-m,0),u-f-s+t+getOverscan(a,BOTTOM,p)+_]: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 o=originalIndexFromItemIndex(e,t);return[{index:findMaxKeyValue(t.groupOffsetTree,o)[0],size:0,offset:0},{index:o,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 o=e[0].index,r=e[e.length-1].index,a=[],i=rangesWithin(t.groupOffsetTree,o,r);let s,l=0;for(const o of e){let e;(!s||s.end<o.index)&&(s=i.shift(),l=t.groupIndices.indexOf(s.start)),e=o.index===s.start?{type:"group",index:l}:{index:o.index-(l+1)+n,groupIndex:l},a.push({...e,size:o.size,offset:o.offset,originalIndex:o.index,data:o.data})}return a}function buildListState(e,t,n,o,r,a){const{lastSize:i,lastOffset:s,lastIndex:l}=r;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)*o-u;return{items:transposeItems(e,r,a),topItems:transposeItems(t,r,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,o,r,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,r,n,o)}const listStateSystem=system((([{sizes:e,totalCount:t,data:n,firstItemIndex:o,gap:r},a,{visibleRange:i,listBoundary:s,topListHeight:l},{scrolledToInitialItem:c,initialTopMostItemIndex:u},{topListHeight:d},f,{didMount:p},{recalcInProgress:m}])=>{const _=statefulStream([]),h=statefulStream(0),g=stream();connect(a.topItemsIndexes,_);const v=statefulStreamFromEmitter(pipe(combineLatest(p,m,duc(i,tupleComparator),duc(t),duc(e),duc(u),c,duc(_),duc(o),duc(r),n),filter((([e,t,,n,,,,,,,o])=>{const r=o&&o.length!==n;return e&&!t&&!r})),map((([,,[e,t],n,o,r,a,i,s,l,c])=>{const u=o,{sizeTree:d,offsetTree:f}=u,p=getValue(h);if(0===n)return{...EMPTY_LIST_STATE,totalCount:n};if(0===e&&0===t)return 0===p?{...EMPTY_LIST_STATE,totalCount:n}:buildListStateFromItemCount(p,r,o,s,l,c||[]);if(empty(d)){if(p>0)return null;return buildListState(probeItemSet(getInitialTopMostItemIndexNumber(r,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 o of rangesWithin(d,e,t)){const r=o.value,a=Math.max(o.start,e),i=Math.min(o.end,t);for(let e=a;e<=i;e++)m.push({index:e,size:r,offset:n,data:c&&c[e]}),n+=r}}if(!a)return buildListState([],m,n,l,u,s);const _=i.length>0?i[i.length-1]+1:0,g=rangesWithinOffsets(f,e,t,_);if(0===g.length)return null;const v=n-1,y=tap([],(n=>{for(const o of g){const r=o.value;let a=r.offset,i=o.start;const s=r.size;if(r.offset<e){i+=Math.floor((e-r.offset+l)/(s+l));const t=i-o.start;a+=t*s+t*l}i<_&&(a+=(_-i)*s,i=_);const u=Math.min(o.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(y,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 y=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:_,endReached:y,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:h,...f}}),tup(sizeSystem,groupedListSystem,sizeRangeSystem,initialTopMostItemIndexSystem,scrollToIndexSystem,stateFlagsSystem,propsReadySystem,recalcSystem),{singleton:!0}),initialItemCountSystem=system((([{sizes:e,firstItemIndex:t,data:n,gap:o},{initialTopMostItemIndex:r},{initialItemCount:a,listState:i},{didMount:s}])=>(connect(pipe(s,withLatestFrom(a),filter((([,e])=>0!==e)),withLatestFrom(r,e,t,o,n),map((([[,e],t,n,o,r,a=[]])=>buildListStateFromItemCount(e,t,n,o,r,a)))),i),{})),tup(sizeSystem,initialTopMostItemIndexSystem,listStateSystem,propsReadySystem),{singleton:!0}),scrollSeekSystem=system((([{scrollVelocity:e}])=>{const t=statefulStream(!1),n=stream(),o=statefulStream(!1);return connect(pipe(e,withLatestFrom(o,t,n),filter((([e,t])=>!!t)),map((([e,t,n,o])=>{const{exit:r,enter:a}=t;if(n){if(r(e,o))return!1}else if(a(e,o))return!0;return n})),distinctUntilChanged()),t),subscribe(pipe(combineLatest(t,e,n),withLatestFrom(o)),(([[e,t,n],o])=>e&&o&&o.change&&o.change(t,n))),{isSeeking:t,scrollSeekConfiguration:o,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:o},{listState:r}])=>{const a=stream(),i=statefulStreamFromEmitter(pipe(combineLatest(e,o,t,n,r),map((([e,t,n,o,r])=>e+t+n+o+r.offsetBottom+r.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:o},{isScrolling:r,isAtBottom:a,scrollDirection:i,lastJumpDueToItemResize:s},{listState:l},{beforeUnshiftWith:c,shiftWithOffset:u,sizes:d,gap:f},{log:p},{recalcInProgress:m}])=>{const _=streamFromEmitter(pipe(l,withLatestFrom(s),scan((([,e,t,n],[{items:o,totalCount:r,bottom:a,offsetBottom:i},s])=>{const l=a+i;let c=0;if(t===r&&e.length>0&&o.length>0){0===o[0].originalIndex&&0===e[0].originalIndex||(c=l-n,0!==c&&(c+=s))}return[c,o,r,l]}),[0,[],0,0]),filter((([e])=>0!==e)),withLatestFrom(t,i,o,a,p,m),filter((([,e,t,n,,,o])=>!o&&!n&&0!==e&&t===UP)),map((([[e],,,,,t])=>(t("Upward scrolling compensation",{amount:e},LogLevel.DEBUG),e)))));function h(t){t>0?(publish(e,{top:-t,behavior:"auto"}),publish(n,0)):(publish(n,0),publish(e,{top:-t,behavior:"auto"}))}return subscribe(pipe(_,withLatestFrom(n,r)),(([e,t,o])=>{o&&isMobileSafari()?publish(n,t-e):h(-e)})),subscribe(pipe(combineLatest(statefulStreamFromEmitter(r,!1),n,m),filter((([e,t,n])=>!e&&!n&&0!==t)),map((([e,t])=>t)),throttleTime(1)),h),connect(pipe(u,map((e=>({top:-e})))),e),subscribe(pipe(c,withLatestFrom(d,f),map((([e,{lastSize:t,groupIndices:n,sizeTree:o},r])=>{function a(e){return e*(t+r)}if(0===n.length)return a(e);{let t=0;const r=find(o,0);let i=0,s=0;for(;i<e;){i++,t+=r;let o=n.length===s+1?1/0:n[s+1]-n[s]-1;i+o>e&&(t-=r,o=e-i+1),i+=o,t+=a(o),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 o=statefulStream(0);return subscribe(pipe(e,withLatestFrom(o),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:o}}),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(),o=stream(),r=stream(),a=statefulStream(!1),i=statefulStream(void 0);return connect(pipe(combineLatest(n,o),map((([{viewportHeight:e,scrollTop:t,scrollHeight:n},{offsetTop:o}])=>({scrollTop:Math.max(0,t-o),scrollHeight:n,viewportHeight:e})))),t),connect(pipe(e,withLatestFrom(o),map((([e,{offsetTop:t}])=>({...e,top:e.top+t})))),r),{useWindowScroll:a,customScrollParent:i,windowScrollContainerState:n,windowViewportRect:o,windowScrollTo:r}}),tup(domIOSystem)),defaultCalculateViewLocation=({itemTop:e,itemBottom:t,viewportTop:n,viewportBottom:o,locationParams:{behavior:r,align:a,...i}})=>e<n?{...i,behavior:r,align:null!=a?a:"start"}:t>o?{...i,behavior:r,align:null!=a?a:"end"}:null,scrollIntoViewSystem=system((([{sizes:e,totalCount:t,gap:n},{scrollTop:o,viewportHeight:r,headerHeight:a,fixedHeaderHeight:i,fixedFooterHeight:s,scrollingInProgress:l},{scrollToIndex:c}])=>{const u=stream();return connect(pipe(u,withLatestFrom(e,r,t,a,i,s,o),withLatestFrom(n),map((([[e,t,n,o,r,a,i,s],c])=>{const{done:u,behavior:d,align:f,calculateViewLocation:p=defaultCalculateViewLocation,...m}=e,_=originalIndexFromLocation(e,t,o-1),h=offsetOf(_,t.offsetTree,c)+r+a,g=p({itemTop:h,itemBottom:h+findMaxKeyValue(t.sizeTree,_)[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:o},{initialTopMostItemIndex:r},{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,o)),(([e,t,n,o,r,a,i])=>{const s=sizeTreeToRanges(t.sizeTree);o&&null!==r&&null!==a&&(n=r.scrollTop-a.offsetTop),e({ranges:s,scrollTop:n-=i})})),connect(pipe(u,filter(isDefined),map(locationFromSnapshot)),r),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,o,r,a,i,s,l,c])=>({...e,...t,...n,...o,...r,...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:o,trackItemSizes:r,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:y,...E},{scrollToIndex:b},w,{topItemCount:C},{groupCounts:R},S])=>(connect(E.rangeChanged,S.scrollSeekRangeChanged),connect(pipe(S.windowViewportRect,map((e=>e.visibleHeight))),_.viewportHeight),{totalCount:e,data:i,firstItemIndex:s,sizeRanges:t,initialTopMostItemIndex:f,scrolledToInitialItem:p,initialItemFinalLocationReached:m,topItemsIndexes:y,topItemCount:C,groupCounts:R,fixedItemHeight:n,defaultItemHeight:o,gap:u,...g,statefulTotalCount:c,listState:v,scrollToIndex:b,trackItemSizes:r,itemSize:a,groupIndices:l,...E,...S,..._,sizes:d,...h})),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 o=React__default.default.useRef(null),r=React__default.default.useCallback((n=>{if(null===n||!n.offsetParent)return;const r=n.getBoundingClientRect(),a=r.width;let i,s;if(t){const e=t.getBoundingClientRect(),n=r.top-e.top;i=e.height-Math.max(0,n),s=n+t.scrollTop}else i=window.innerHeight-Math.max(0,r.top),s=r.top+window.pageYOffset;o.current={offsetTop:s,visibleHeight:i,visibleWidth:a},e(o.current)}),[e,t]),{callbackRef:a,ref:i}=useSizeWithElRef(r,!0,n),s=React__default.default.useCallback((()=>{r(i.current)}),[r,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}`)),o=statefulStream({}),r=statefulStream(identity),a=statefulStream("div"),i=statefulStream(noop$1),s=(e,t=null)=>statefulStreamFromEmitter(pipe(o,map((t=>t[e])),distinctUntilChanged()),t);return{context:t,itemContent:e,groupContent:n,components:o,computeItemKey:r,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"),o=useEmitterValue$2("useWindowScroll"),r=useEmitterValue$2("customScrollParent"),a=usePublisher$2("windowScrollContainerState"),i=usePublisher$2("scrollContainerState"),s=r||o?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"),_=useEmitterValue$2("horizontalDirection"),{callbackRef:h}=useChangedListContentsSizes(n,f,d,e?noop$1:s,p,m,r,_,useEmitterValue$2("skipAnimationFrameInResizeObserver")),[g,v]=React__default.default.useState(0);useEmitter$2("deviation",(e=>{g!==e&&v(e)}));const y=useEmitterValue$2("EmptyPlaceholder"),E=useEmitterValue$2("ScrollSeekPlaceholder")||DefaultScrollSeekPlaceholder$1,b=useEmitterValue$2("ListComponent"),w=useEmitterValue$2("ItemComponent"),C=useEmitterValue$2("GroupComponent"),R=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",..._?{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&&y?jsxRuntime.exports.jsx(y,{...contextPropIfNotDomElement(y,c)}):jsxRuntime.exports.jsx(b,{...contextPropIfNotDomElement(b,c),ref:h,style:A,"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",children:(e?t.topItems:t.items).map((e=>{const n=e.originalIndex,o=R(n+t.firstItemIndex,e.data,c);return S?React.createElement(E,{...contextPropIfNotDomElement(E,c),key:o,index:e.index,height:e.size,type:e.type||"item",..."group"===e.type?{}:{groupIndex:e.groupIndex}}):"group"===e.type?React.createElement(C,{...contextPropIfNotDomElement(C,c),key:o,"data-index":n,"data-known-size":e.size,"data-item-index":e.index,style:GROUP_STYLE},u(e.index,c)):React.createElement(w,{...contextPropIfNotDomElement(w,c),...itemPropIfNotDomElement(w,e.data),key:o,"data-index":n,"data-known-size":e.size,"data-item-index":e.index,"data-item-group-index":e.groupIndex,style:_?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"),o=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,useEmitterValue$2("skipAnimationFrameInResizeObserver")),r=useEmitterValue$2("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,r)})}):null})),Footer$1=React__default.default.memo((function(){const e=useEmitterValue$2("FooterComponent"),t=usePublisher$2("footerHeight"),n=useEmitterValue$2("HeaderFooterTag"),o=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,useEmitterValue$2("skipAnimationFrameInResizeObserver")),r=useEmitterValue$2("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,r)})}):null}));function buildScroller({usePublisher:e,useEmitter:t,useEmitterValue:n}){return React__default.default.memo((function({style:o,children:r,...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 _=d?horizontalScrollerStyle:scrollerStyle;return jsxRuntime.exports.jsx(s,{ref:f,style:{..._,...o},"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,tabIndex:0,...a,...contextPropIfNotDomElement(s,u),children:r})}))}function buildWindowScroller({usePublisher:e,useEmitter:t,useEmitterValue:n}){return React__default.default.memo((function({style:o,children:r,...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:_}=useScrollTop(i,l,s,noop$1,d);return useIsomorphicLayoutEffect$2((()=>(p.current=d||window,()=>{p.current=null})),[p,d]),t("windowScrollTo",_),t("scrollBy",m),jsxRuntime.exports.jsx(s,{style:{position:"relative",...o,...0!==c?{height:c+u}:{}},"data-virtuoso-scroller":!0,...a,...contextPropIfNotDomElement(s,f),children:r})}))}const Viewport$2=({children:e})=>{const t=React__default.default.useContext(VirtuosoMockContext),n=usePublisher$2("viewportHeight"),o=usePublisher$2("fixedItemHeight"),r=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),o(t.itemHeight))}),[t,n,o]),jsxRuntime.exports.jsx("div",{style:viewportStyle(r),ref:i,"data-viewport-type":"element",children:e})},WindowViewport$2=({children:e})=>{const t=React__default.default.useContext(VirtuosoMockContext),n=usePublisher$2("windowViewportRect"),o=usePublisher$2("fixedItemHeight"),r=useEmitterValue$2("customScrollParent"),a=useWindowViewportRectRef(n,r,useEmitterValue$2("skipAnimationFrameInResizeObserver")),i=useEmitterValue$2("alignToBottom");return React__default.default.useEffect((()=>{t&&(o(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))}),[t,n,o]),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"),o={...topItemListStyle,marginTop:`${n}px`},r=useEmitterValue$2("context");return jsxRuntime.exports.jsx(t,{style:o,...contextPropIfNotDomElement(t,r),children:e})},ListRoot=React__default.default.memo((function(e){const t=useEmitterValue$2("useWindowScroll"),n=useEmitterValue$2("topItemsIndexes").length>0,o=useEmitterValue$2("customScrollParent"),r=o||t?WindowScroller$2:Scroller$2,a=o||t?WindowViewport$2:Viewport$2;return jsxRuntime.exports.jsxs(r,{...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,o)=>{const r=null===n?null:n[o+e];return{index:o+e,data:r}}))}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:o},{scrollTop:r,viewportHeight:a,scrollBy:i,scrollTo:s,smoothScrollTargetReached:l,scrollContainerState:c,footerHeight:u,headerHeight:d},f,p,{propsReady:m,didMount:_},{windowViewportRect:h,useWindowScroll:g,customScrollParent:v,windowScrollContainerState:y,windowScrollTo:E},b])=>{const w=statefulStream(0),C=statefulStream(0),R=statefulStream(INITIAL_GRID_STATE),S=statefulStream({height:0,width:0}),D=statefulStream({height:0,width:0}),T=stream(),O=stream(),A=statefulStream(0),x=statefulStream(null),I=statefulStream({row:0,column:0}),N=stream(),k=stream(),$=statefulStream(!1),F=statefulStream(0),P=statefulStream(!0),M=statefulStream(!1),L=statefulStream(!1);subscribe(pipe(_,withLatestFrom(F),filter((([e,t])=>!!t))),(()=>{publish(P,!1)})),subscribe(pipe(combineLatest(_,P,D,S,F,M),filter((([e,t,n,o,,r])=>e&&!t&&0!==n.height&&0!==o.height&&!r))),(([,,,,e])=>{publish(M,!0),skipFrames(1,(()=>{publish(T,e)})),handleNext(pipe(r),(()=>{publish(n,[0,0]),publish(P,!0)}))})),connect(pipe(k,filter((e=>null!=e&&e.scrollTop>0)),mapTo(0)),C),subscribe(pipe(_,withLatestFrom(k),filter((([,e])=>null!=e))),(([,e])=>{e&&(publish(S,e.viewport),publish(D,null==e?void 0:e.item),publish(I,e.gap),e.scrollTop>0&&(publish($,!0),handleNext(pipe(r,skip(1)),(e=>{publish($,!1)})),publish(s,{top:e.scrollTop})))})),connect(pipe(S,map((({height:e})=>e))),a),connect(pipe(combineLatest(duc(S,dimensionComparator),duc(D,dimensionComparator),duc(I,((e,t)=>e&&e.column===t.column&&e.row===t.row)),duc(r)),map((([e,t,n,o])=>({viewport:e,item:t,gap:n,scrollTop:o})))),N),connect(pipe(combineLatest(duc(w),t,duc(I,gapComparator),duc(D,dimensionComparator),duc(S,dimensionComparator),duc(x),duc(C),duc($),duc(P),duc(F)),filter((([,,,,,,,e])=>!e)),map((([e,[t,n],o,r,a,i,s,,l,c])=>{const{row:u,column:d}=o,{height:f,width:p}=r,{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 _=itemsPerRow(m,p,d);let h,g;l?0===t&&0===n&&s>0?(h=0,g=s-1):(h=_*floor((t+u)/(f+u)),g=_*ceil((n+u)/(f+u))-1,g=min(e-1,max(g,_-1)),h=min(g,max(0,h))):(h=0,g=-1);const v=buildItems(h,g,i),{top:y,bottom:E}=gridLayout(a,o,r,v),b=ceil(e/_);return{items:v,offsetTop:y,offsetBottom:b*f+(b-1)*u-E,top:y,bottom:E,itemHeight:f,itemWidth:p}}))),R),connect(pipe(x,filter((e=>null!==e)),map((e=>e.length))),w),connect(pipe(combineLatest(S,D,R,I),filter((([e,t,{items:n}])=>n.length>0&&0!==t.height&&0!==e.height)),map((([e,t,{items:n},o])=>{const{top:r,bottom:a}=gridLayout(e,o,t,n);return[r,a]})),distinctUntilChanged(tupleComparator)),n);const B=statefulStream(!1);connect(pipe(r,withLatestFrom(B),map((([e,t])=>t||0!==e))),B);const j=streamFromEmitter(pipe(combineLatest(R,w),filter((([{items:e}])=>e.length>0)),withLatestFrom(B),filter((([[e,t],n])=>{const o=e.items[e.items.length-1].index===t-1;if(n)return o;return e.bottom>0&&e.itemHeight>0&&0===e.offsetBottom&&e.items.length===t&&o})),map((([[,e]])=>e-1)),distinctUntilChanged())),U=streamFromEmitter(pipe(duc(R),filter((({items:e})=>e.length>0&&0===e[0].index)),mapTo(0),distinctUntilChanged())),V=streamFromEmitter(pipe(duc(R),withLatestFrom($),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,w,I),map((([e,t,n,o,r])=>{const a=normalizeIndexLocation(e),{align:i,behavior:s,offset:l}=a;let c=a.index;"LAST"===c&&(c=o-1),c=max(0,c,min(o-1,c));let u=itemTop(t,r,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(R,map((e=>e.offsetBottom+e.bottom))),0);return connect(pipe(h,map((e=>({width:e.visibleWidth,height:e.visibleHeight})))),S),{data:x,totalCount:w,viewportDimensions:S,itemDimensions:D,scrollTop:r,scrollHeight:O,overscan:e,increaseViewportBy:o,scrollBy:i,scrollTo:s,scrollToIndex:T,smoothScrollTargetReached:l,windowViewportRect:h,windowScrollTo:E,useWindowScroll:g,customScrollParent:v,windowScrollContainerState:y,deviation:A,scrollContainerState:c,footerHeight:u,headerHeight:d,initialItemCount:C,gap:I,restoreStateFrom:k,...p,initialTopMostItemIndex:F,horizontalDirection:L,gridState:R,totalListHeight:H,...f,startReached:U,endReached:j,rangeChanged:V,stateChanged:N,propsReady:m,stateRestoreInProgress:$,...b}}),tup(sizeRangeSystem,domIOSystem,stateFlagsSystem,scrollSeekSystem,propsReadySystem,windowScrollerSystem,loggerSystem));function gridLayout(e,t,n,o){const{height:r}=n;if(void 0===r||0===o.length)return{top:0,bottom:0};return{top:itemTop(e,t,n,o[0].index),bottom:itemTop(e,t,n,o[o.length-1].index)+r}}function itemTop(e,t,n,o){const r=itemsPerRow(e.width,n.width,t.column),a=floor(o/r),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),o=statefulStream("virtuoso-grid-item"),r=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:o,listClassName:r,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"),o=useEmitterValue$1("itemContent"),r=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"),_=usePublisher$1("reportReadyState"),h=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&&_(!0)}),[e]),m?null:jsxRuntime.exports.jsx(l,{ref:h,className:t,...contextPropIfNotDomElement(l,u),style:{paddingTop:e.offsetTop,paddingBottom:e.offsetBottom},"data-testid":"virtuoso-item-list",children:e.items.map((t=>{const i=r(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},o(t.index,t.data,u))}))})})),Header=React__default.default.memo((function(){const e=useEmitterValue$1("HeaderComponent"),t=usePublisher$1("headerHeight"),n=useEmitterValue$1("headerFooterTag"),o=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,!1),r=useEmitterValue$1("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,r)})}):null})),Footer=React__default.default.memo((function(){const e=useEmitterValue$1("FooterComponent"),t=usePublisher$1("footerHeight"),n=useEmitterValue$1("headerFooterTag"),o=useSize$1(React__default.default.useMemo((()=>e=>t(correctItemSize(e,"height"))),[t]),!0,!1),r=useEmitterValue$1("context");return e?jsxRuntime.exports.jsx(n,{ref:o,children:jsxRuntime.exports.jsx(e,{...contextPropIfNotDomElement(e,r)})}):null})),Viewport$1=({children:e})=>{const t=React__default.default.useContext(VirtuosoGridMockContext),n=usePublisher$1("itemDimensions"),o=usePublisher$1("viewportDimensions"),r=useSize$1(React__default.default.useMemo((()=>e=>{o(e.getBoundingClientRect())}),[o]),!0,!1);return React__default.default.useEffect((()=>{t&&(o({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))}),[t,o,n]),jsxRuntime.exports.jsx("div",{style:viewportStyle(!1),ref:r,children:e})},WindowViewport$1=({children:e})=>{const t=React__default.default.useContext(VirtuosoGridMockContext),n=usePublisher$1("windowViewportRect"),o=usePublisher$1("itemDimensions"),r=useEmitterValue$1("customScrollParent"),a=useWindowViewportRectRef(n,r,!1);return React__default.default.useEffect((()=>{t&&(o({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))}),[t,n,o]),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"),o=n||t?WindowScroller$1:Scroller$1,r=n||t?WindowViewport$1:Viewport$1;return jsxRuntime.exports.jsx(o,{...e,children:jsxRuntime.exports.jsxs(r,{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 o=e;o<=t;o++)n.push(o);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:o,messagesEtag:r}]=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:o,emojisEtag:n,messagesEtag:r}}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:o,messagesEtag:r}=await fetchEmojibaseData(e),a=o.subgroups.find((e=>"subdivision-flag"===e.key)),i=o.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=o.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:r}),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,o=n.length;let r=0;for(;r<o&&!n[r+3];r+=4);if(r>=o)return!1;const a=EMOJI_DETECTION_CANVAS_WIDTH+r/4%EMOJI_DETECTION_CANVAS_WIDTH,i=Math.floor(r/4/EMOJI_DETECTION_CANVAS_WIDTH),s=e.getImageData(a,i,1,1).data;return n[r]===s[0]&&n[r+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)),o=n[0]??0,r=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});if(!r)return{emojiVersion:o,countryFlags:!0};r.font=`${Math.floor(EMOJI_DETECTION_CANVAS_HEIGHT/2)}px ${getEmojiFontFamily()}`,r.textBaseline="top",r.canvas.width=2*EMOJI_DETECTION_CANVAS_WIDTH,r.canvas.height=EMOJI_DETECTION_CANVAS_HEIGHT;const a=detectEmojiSupport(r,EMOJI_DETECTION_COUNTRY_FLAG);for(const e of n){if(detectEmojiSupport(r,t.get(e)))return{emojiVersion:e,countryFlags:a}}return{emojiVersion:o,countryFlags:a}}async function getEmojiData(e){const t=getEmojibaseSupportedLocale(e),n=getStorageItem(sessionStorage,CACHE_EMOJI_SESSION_METADATA_KEY),o=getStorageItem(localStorage,CACHE_EMOJI_DATA_KEY(t));let r;if(o)if(n)r=o;else{const{emojisEtag:e,messagesEtag:n}=await fetchEmojibaseEtags(t),a=getStorageItem(localStorage,CACHE_EMOJI_METADATA_KEY(t));r=a&&e===a.emojisEtag&&n===a.messagesEtag?o:await fetchEmojiData(t)}else r=await fetchEmojiData(t);const a=n??getEmojiSessionMetadata(r.emojis);setStorageItem(sessionStorage,CACHE_EMOJI_SESSION_METADATA_KEY,a);return{emojis:r.emojis.filter((e=>{const t=e.version<=a.emojiVersion;return e.countryFlag?t&&a.countryFlags:t})),categories:r.categories,skinTones:r.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 o=0;const r=[],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=o+t.length;r.push(...t),l.push(e.name),i.push(t.length),s.push(generateRangeIndices(o,a-1)),o=a}return{count:e.length,rows:r,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:o}){const r=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)}),[]),y=React.useCallback(((e,t)=>{h("pointer"),f(e),m(t)}),[]),E=React.useCallback(((e,t)=>{if(s)if(t.preventDefault(),"none"!==_)switch(h("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 h("keyboard")}),[s,_,d,p]),b=React.useCallback((()=>{r.current&&i((()=>{l((()=>{if(!r.current)return;return generateEmojiPickerData(filterEmojis(r.current.emojis,a.current),r.current.categories,e)})),v()}))}),[e,v]),w=React.useCallback((e=>{a.current=e,b()}),[b]),C=React.useCallback((async e=>{try{r.current=await getEmojiData(e),b()}catch(e){u(e)}}),[b]);return React.useEffect((()=>{let e;const n=setTimeout((()=>{e=requestIdleCallback((()=>{C(t)}))}),LOADING_MINIMUM_TIMEOUT);return()=>{clearTimeout(n),cancelIdleCallback(e)}}),[t]),React.useEffect((()=>{"none"===_&&v()}),[_]),React__default.default.createElement(EmojiPickerContext.Provider,{value:{data:s,error:c,isLoading:!s&&!c,columns:e,onSearch:w,onEmojiSelect:n,selectCurrentEmoji:g,selectedRowIndex:p,selectedColumnIndex:d,moveSelection:E,setPointerSelection:y,interaction:_,setInteraction:h}},o)}const EmojiPickerSearch=React.forwardRef((({asChild:e,value:t,defaultValue:n,onChange:o,...r},a)=>{const i=e?Slot:"input",{onSearch:s,selectCurrentEmoji:l,moveSelection:c,interaction:u,setInteraction:d}=useEmojiPicker(),f=React.useCallback((e=>{if(o?.(e),e.isDefaultPrevented())return;const t=e.target.value;d(t?"keyboard":"none"),s(t)}),[o,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,...r,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},o)=>{const r=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:_,selectedRowIndex:h,setPointerSelection:g,interaction:v,setInteraction:y}=useEmojiPicker(),E=React.useMemo((()=>u?.rows[h]?.[_]),[u?.rows,_,h]),{Loading:b,Empty:w,Error:C,CategoryHeader:R,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]),x=React.useCallback((e=>{e.preventDefault()}),[]),I=React.useCallback((()=>{"pointer"===v&&y("none")}),[v,y]);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:o,locationParams:{behavior:r,align:a,...i}})=>e-(c.current+s.current)<n?{...i,behavior:r,align:a??"start"}:t>o?{...i,behavior:r,align:a??"end",offset:l.current}:null),[]);return React.useEffect((()=>{"keyboard"===v&&a.current?.scrollIntoView({index:h,behavior:"auto",calculateViewLocation:N})}),[v,h,N]),React__default.default.createElement(r,{...n,ref:o},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(R,{category:"Category"})),f?React__default.default.createElement(b,null):d?React__default.default.createElement(C,{error:d}):0===u.count?React__default.default.createElement(w,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(R,{category:t}):null},itemContent:(e,t)=>{const n=u.rows[e],o=u.categoriesRowIndices[t]?.indexOf(e),r=u.categoriesRowCounts[t];return void 0===n||void 0===o||void 0===r?null:React__default.default.createElement(D,{attributes:{rowIndex:e,categoryRowIndex:o,categoryRowsCount:r}},n.map(((t,n)=>{const o="none"!==v&&_===n&&h===e;return React__default.default.createElement(T,{key:t.emoji,role:"gridcell","aria-colindex":n,"aria-selected":o||void 0,"data-selected":o||void 0,onMouseDown:x,tabIndex:-1,onPointerEnter:()=>{g(n,e)},onPointerLeave:I,onClick:e=>{m?.(t.emoji),e.stopPropagation()},emoji:t.emoji})})))}})),E&&"none"!==v&&React__default.default.createElement("div",{"aria-live":"polite",style:visuallyHidden},E.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 o=e/BASE**n,r=1;1===n&&(o>=10&&(r=0),o<.1&&o>0&&(r=2),o<.01&&(o=.01));const a=UNITS[n];return`${numberFormat(t,{minimumFractionDigits:0,maximumFractionDigits:r}).format(o)} ${a}`}function createContextScope$3(e,t=[]){let n=[];const o=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const o=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:o}})),[n,o])}};return o.scopeName=e,[function(t,o){const r=React__namespace.createContext(o),a=n.length;n=[...n,o];const i=t=>{const{scope:n,children:o,...i}=t,s=n?.[e]?.[a]||r,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:o})};return i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e]?.[a]||r,l=React__namespace.useContext(s);if(l)return l;if(void 0!==o)return o;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$3(o,...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 o=n.reduce(((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:o})),[o])}};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:o,onPointerDownOutside:r,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))),_=Array.from(c.layers),[h]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),g=_.indexOf(h),v=u?_.indexOf(u):-1,y=c.layersWithOutsidePointerEventsDisabled.size>0,E=v>=g,b=usePointerDownOutside((e=>{const t=e.target,n=[...c.branches].some((e=>e.contains(t)));E&&!n&&(r?.(e),i?.(e),e.defaultPrevented||s?.())}),f),w=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&&(o?.(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:y?E?"auto":"none":void 0,...e.style},onFocusCapture:composeEventHandlers(e.onFocusCapture,w.onFocusCapture),onBlurCapture:composeEventHandlers(e.onBlurCapture,w.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),o=React__namespace.useRef(null),r=useComposedRefs(t,o);return React__namespace.useEffect((()=>{const e=o.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}}),[n.branches]),jsxRuntime.exports.jsx(Primitive.div,{...e,ref:r})}));function usePointerDownOutside(e,t=globalThis?.document){const n=useCallbackRef$1(e),o=React__namespace.useRef(!1),r=React__namespace.useRef((()=>{}));return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!o.current){let o=function(){handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE,n,a,{discrete:!0})};const a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",r.current),r.current=o,t.addEventListener("click",r.current,{once:!0})):o()}else t.removeEventListener("click",r.current);o.current=!1},a=window.setTimeout((()=>{t.addEventListener("pointerdown",e)}),0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",r.current)}}),[t,n]),{onPointerDownCapture:()=>o.current=!0}}function useFocusOutside(e,t=globalThis?.document){const n=useCallbackRef$1(e),o=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!o.current){handleAndDispatchCustomEvent(FOCUS_OUTSIDE,n,{originalEvent:e},{discrete:!1})}};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)}),[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function dispatchUpdate(){const e=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(e)}function handleAndDispatchCustomEvent(e,t,n,{discrete:o}){const r=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?dispatchDiscreteCustomEvent(r,a):r.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:o=10,height:r=5,...a}=e;return jsxRuntime.exports.jsx(Primitive.svg,{...a,ref:t,width:o,height:r,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 o=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const o=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:o}})),[n,o])}};return o.scopeName=e,[function(t,o){const r=React__namespace.createContext(o),a=n.length;function i(t){const{scope:n,children:o,...i}=t,s=n?.[e][a]||r,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:o})}return n=[...n,o],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||r,l=React__namespace.useContext(s);if(l)return l;if(void 0!==o)return o;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$2(o,...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 o=n.reduce(((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:o})),[o])}};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 o=t[0];let r,a;if("borderBoxSize"in o){const e=o.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,a=t.blockSize}else r=e.offsetWidth,a=e.offsetHeight;n({width:r,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,[o,r]=React__namespace.useState(null);return jsxRuntime.exports.jsx(PopperProvider,{scope:t,anchor:o,onAnchorChange:r,children:n})};Popper.displayName=POPPER_NAME;var ANCHOR_NAME$2="PopperAnchor",PopperAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,a=usePopperContext(ANCHOR_NAME$2,n),i=React__namespace.useRef(null),s=useComposedRefs(t,i);return React__namespace.useEffect((()=>{a.onAnchorChange(o?.current||i.current)})),o?null:jsxRuntime.exports.jsx(Primitive.div,{...r,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:o="bottom",sideOffset:r=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,..._}=e,h=usePopperContext(CONTENT_NAME$4,n),[g,v]=React__namespace.useState(null),y=useComposedRefs(t,(e=>v(e))),[E,b]=React__namespace.useState(null),w=useSize(E),C=w?.width??0,R=w?.height??0,S=o+("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:x,floatingStyles:I,placement:N,isPositioned:k,middlewareData:$}=useFloating({strategy:"fixed",placement:S,whileElementsMounted:(...e)=>autoUpdate(...e,{animationFrame:"always"===p}),elements:{reference:h.anchor},middleware:[offset({mainAxis:r+R,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:o})=>{const{width:r,height:a}=t.reference,i=e.floating.style;i.setProperty("--radix-popper-available-width",`${n}px`),i.setProperty("--radix-popper-available-height",`${o}px`),i.setProperty("--radix-popper-anchor-width",`${r}px`),i.setProperty("--radix-popper-anchor-height",`${a}px`)}}),E&&arrow({element:E,padding:s}),transformOrigin({arrowWidth:C,arrowHeight:R}),f&&hide({strategy:"referenceHidden",...A})]}),[F,P]=getSideAndAlignFromPlacement(N),M=useCallbackRef$1(m);useLayoutEffect2((()=>{k&&M?.()}),[k,M]);const L=$.arrow?.x,B=$.arrow?.y,j=0!==$.arrow?.centerOffset,[U,V]=React__namespace.useState();return useLayoutEffect2((()=>{g&&V(window.getComputedStyle(g).zIndex)}),[g]),jsxRuntime.exports.jsx("div",{ref:x.setFloating,"data-radix-popper-content-wrapper":"",style:{...I,transform:k?I.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:U,"--radix-popper-transform-origin":[$.transformOrigin?.x,$.transformOrigin?.y].join(" "),...$.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:jsxRuntime.exports.jsx(PopperContentProvider,{scope:n,placedSide:F,onArrowChange:b,arrowX:L,arrowY:B,shouldHideArrow:j,children:jsxRuntime.exports.jsx(Primitive.div,{"data-side":F,"data-align":P,..._,ref:y,style:{..._.style,animation:k?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,...o}=e,r=useContentContext(ARROW_NAME$4,n),a=OPPOSITE_SIDE[r.placedSide];return jsxRuntime.exports.jsx("span",{ref:r.onArrowChange,style:{position:"absolute",left:r.arrowX,top:r.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[r.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[r.placedSide],visibility:r.shouldHideArrow?"hidden":void 0},children:jsxRuntime.exports.jsx(Root$2,{...o,ref:t,style:{...o.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:o,middlewareData:r}=t,a=0!==r.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=(r.arrow?.x??0)+i/2,f=(r.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=`${o.floating.height+s}px`):"right"===l?(p=-s+"px",m=a?u:`${f}px`):"left"===l&&(p=`${o.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$1=PopperContent,Arrow=PopperArrow,PORTAL_NAME$4="Portal",Portal$3=React__namespace.forwardRef(((e,t)=>{const{container:n,...o}=e,[r,a]=React__namespace.useState(!1);useLayoutEffect2((()=>a(!0)),[]);const i=n||r&&globalThis?.document?.body;return i?ReactDOM__default.default.createPortal(jsxRuntime.exports.jsx(Primitive.div,{...o,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,o=usePresence(t),r="function"==typeof n?n({present:o.isPresent}):React__namespace.Children.only(n),a=useComposedRefs(o.ref,getElementRef(r));return"function"==typeof n||o.isPresent?React__namespace.cloneElement(r,{ref:a}):null};function usePresence(e){const[t,n]=React__namespace.useState(),o=React__namespace.useRef({}),r=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(o.current);a.current="mounted"===s?e:"none"}),[s]),useLayoutEffect2((()=>{const t=o.current,n=r.current;if(n!==e){const o=a.current,i=getAnimationName(t);if(e)l("MOUNT");else if("none"===i||"none"===t?.display)l("UNMOUNT");else{l(n&&o!==i?"ANIMATION_OUT":"UNMOUNT")}r.current=e}}),[e,l]),useLayoutEffect2((()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,i=a=>{const i=getAnimationName(o.current).includes(a.animationName);if(a.target===t&&i&&(l("ANIMATION_END"),!r.current)){const o=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=o)}))}},s=e=>{e.target===t&&(a.current=getAnimationName(o.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&&(o.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:o=300,disableHoverableContent:r=!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)),o)}),[o]),isPointerInTransitRef:l,onPointerInTransitChange:React__namespace.useCallback((e=>{l.current=e}),[]),disableHoverableContent:r,children:a})};TooltipProvider.displayName=PROVIDER_NAME;var TOOLTIP_NAME="Tooltip",[TooltipContextProvider,useTooltipContext]=createTooltipContext(TOOLTIP_NAME),Tooltip$1=e=>{const{__scopeTooltip:t,children:n,open:o,defaultOpen:r=!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,_=s??l.delayDuration,h=React__namespace.useRef(!1),[g=!1,v]=useControllableState$1({prop:o,defaultProp:r,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))):l.onClose(),a?.(e)}}),y=React__namespace.useMemo((()=>g?h.current?"delayed-open":"instant-open":"closed"),[g]),E=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=0,h.current=!1,v(!0)}),[v]),b=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=0,v(!1)}),[v]),w=React__namespace.useCallback((()=>{window.clearTimeout(p.current),p.current=window.setTimeout((()=>{h.current=!0,v(!0),p.current=0}),_)}),[_,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:y,trigger:u,onTriggerChange:d,onTriggerEnter:React__namespace.useCallback((()=>{l.isOpenDelayed?w():E()}),[l.isOpenDelayed,w,E]),onTriggerLeave:React__namespace.useCallback((()=>{m?b():(window.clearTimeout(p.current),p.current=0)}),[b,m]),onOpen:E,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,...o}=e,r=useTooltipContext(TRIGGER_NAME$2,n),a=useTooltipProviderContext(TRIGGER_NAME$2,n),i=usePopperScope$2(n),s=useComposedRefs(t,React__namespace.useRef(null),r.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":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...o,ref:s,onPointerMove:composeEventHandlers(e.onPointerMove,(e=>{"touch"!==e.pointerType&&(c.current||a.isPointerInTransitRef.current||(r.onTriggerEnter(),c.current=!0))})),onPointerLeave:composeEventHandlers(e.onPointerLeave,(()=>{r.onTriggerLeave(),c.current=!1})),onPointerDown:composeEventHandlers(e.onPointerDown,(()=>{l.current=!0,document.addEventListener("pointerup",u,{once:!0})})),onFocus:composeEventHandlers(e.onFocus,(()=>{l.current||r.onOpen()})),onBlur:composeEventHandlers(e.onBlur,r.onClose),onClick:composeEventHandlers(e.onClick,r.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:o,container:r}=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:r,children:o})})})};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:o=n.forceMount,side:r="top",...a}=e,i=useTooltipContext(CONTENT_NAME$3,e.__scopeTooltip);return jsxRuntime.exports.jsx(Presence,{present:o||i.open,children:i.disableHoverableContent?jsxRuntime.exports.jsx(TooltipContentImpl,{side:r,...a,ref:t}):jsxRuntime.exports.jsx(TooltipContentHoverable,{side:r,...a,ref:t})})})),TooltipContentHoverable=React__namespace.forwardRef(((e,t)=>{const n=useTooltipContext(CONTENT_NAME$3,e.__scopeTooltip),o=useTooltipProviderContext(CONTENT_NAME$3,e.__scopeTooltip),r=React__namespace.useRef(null),a=useComposedRefs(t,r),[i,s]=React__namespace.useState(null),{trigger:l,onClose:c}=n,u=r.current,{onPointerInTransitChange:d}=o,f=React__namespace.useCallback((()=>{s(null),d(!1)}),[d]),p=React__namespace.useCallback(((e,t)=>{const n=e.currentTarget,o={x:e.clientX,y:e.clientY},r=getHull([...getPaddedExitPoints(o,getExitSideFromRect(o,n.getBoundingClientRect())),...getPointsFromRect(t.getBoundingClientRect())]);s(r),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},o=l?.contains(t)||u?.contains(t),r=!isPointInPolygon$1(n,i);o?f():r&&(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:o,"aria-label":r,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$1,{"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:o}),jsxRuntime.exports.jsx(VisuallyHiddenContentContextProvider,{scope:n,isInside:!0,children:jsxRuntime.exports.jsx(Root$1,{id:l.contentId,role:"tooltip",children:r||o})})]})})}));TooltipContent.displayName=CONTENT_NAME$3;var ARROW_NAME$3="TooltipArrow",TooltipArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeTooltip:n,...o}=e,r=usePopperScope$2(n);return useVisuallyHiddenContentContext(ARROW_NAME$3,n).isInside?null:jsxRuntime.exports.jsx(Arrow,{...r,...o,ref:t})}));function getExitSideFromRect(e,t){const n=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),r=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,o,r,a)){case a:return"left";case r:return"right";case n:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function getPaddedExitPoints(e,t,n=5){const o=[];switch(t){case"top":o.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":o.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":o.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":o.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return o}function getPointsFromRect(e){const{top:t,right:n,bottom:o,left:r}=e;return[{x:r,y:t},{x:n,y:t},{x:n,y:o},{x:r,y:o}]}function isPointInPolygon$1(e,t){const{x:n,y:o}=e;let r=!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>o!=c>o&&n<(l-i)*(o-s)/(c-s)+i&&(r=!r)}return r}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 o=e[n];for(;t.length>=2;){const e=t[t.length-1],n=t[t.length-2];if(!((e.x-n.x)*(o.y-n.y)>=(e.y-n.y)*(o.x-n.x)))break;t.pop()}t.push(o)}t.pop();const n=[];for(let t=e.length-1;t>=0;t--){const o=e[t];for(;n.length>=2;){const e=n[n.length-1],t=n[n.length-2];if(!((e.x-t.x)*(o.y-t.y)>=(e.y-t.y)*(o.x-t.x)))break;n.pop()}n.push(o)}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:o,...r},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",o),side:"top",align:"center",sideOffset:FLOATING_ELEMENT_SIDE_OFFSET,collisionPadding:FLOATING_ELEMENT_COLLISION_PADDING,...r},t)))})),ShortcutTooltip=React.forwardRef((({children:e,content:t,shortcut:n,...o},r)=>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)),...o,ref:r},e)));function ShortcutTooltipKey({name:e,...t}){const{title:n,key:o}=React.useMemo((()=>KEYS[e]?.()),[e]);return React__default.default.createElement("abbr",{title:n,...t},o)}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,o]=React.useState(!1),r=React.useCallback((()=>{o(!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:r})):null)}function AttachmentVideoPreview({attachment:e}){const{url:t}=useAttachmentUrl(e.id),[n,o]=React.useState(!1),r=React.useCallback((()=>{o(!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:r})):null)}function AttachmentPreview({attachment:e,allowMediaPreview:t=!0}){const n=_useIsInsideRoom(),o="attachment"===e.type||"uploaded"===e.status;if(t&&o&&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),o=useComposerAttachmentsContextOrNull(),r=Boolean(o),a=o?.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:r?n.COMPOSER_REMOVE_ATTACHMENT:n.COMMENT_DELETE_ATTACHMENT}}function MediaAttachment({attachment:e,overrides:t,onClick:n,onDeleteClick:o,preventFocusOnDelete:r,allowMediaPreview:a=!0,className:i,onKeyDown:s,...l}){const{isUploading:c,isError:u,description:d,deleteLabel:f}=useAttachmentContent(e,t),p=React.useCallback((e=>{r&&e.preventDefault()}),[r]),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)),o&&React__default.default.createElement(Tooltip,{content:f},React__default.default.createElement("button",{type:"button",className:"lb-attachment-delete",onClick:o,onPointerDown:p,"aria-label":f},React__default.default.createElement(CrossIcon,null))))}function FileAttachment({attachment:e,overrides:t,onClick:n,onDeleteClick:o,preventFocusOnDelete:r,allowMediaPreview:a=!0,className:i,onKeyDown:s,...l}){const{isUploading:c,isError:u,description:d,deleteLabel:f}=useAttachmentContent(e,t),p=React.useCallback((e=>{r&&e.preventDefault()}),[r]),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)),o&&React__default.default.createElement(Tooltip,{content:f},React__default.default.createElement("button",{type:"button",className:"lb-attachment-delete",onClick:o,onPointerDown:p,"aria-label":f},React__default.default.createElement(CrossIcon,null))))}function separateMediaAttachments(e){const t=[],n=[];for(const o of e)(o.mimeType.startsWith("image/")||o.mimeType.startsWith("video/"))&&o.size<=MAX_DISPLAYED_MEDIA_SIZE?t.push(o):n.push(o);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,o)=>(0!==n&&n!==o.length-1||(e+=t.charAt(0).toLocaleUpperCase()),e)),"")}function Avatar({userId:e,className:t,...n}){const{user:o,isLoading:r}=_useUser(e),a=React.useMemo((()=>o?.name),[o]),i=React.useMemo((()=>o?.avatar),[o]),s=React.useMemo((()=>a?getInitials(a):void 0),[a]),l=React.useMemo((()=>r||o?void 0:getInitials(e)),[r,o,e]);return React__default.default.createElement("div",{className:classNames("lb-avatar",t),"data-loading":r?"":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:o,...r},a)=>React__default.default.createElement("button",{type:"button",className:classNames("lb-button",!n&&"lb-button:non-disableable",o),"data-variant":e,"data-size":t,...r,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:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:a,...i}=e,[s,l]=React__namespace.useState(null),c=useCallbackRef$1(r),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(o){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 o=new MutationObserver(n);return s&&o.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),o.disconnect()}}}),[o,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&&!o)return;if(p.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,r=document.activeElement;if(t&&r){const t=e.currentTarget,[o,a]=getTabbableEdges(t);o&&a?e.shiftKey||r!==a?e.shiftKey&&r===o&&(e.preventDefault(),n&&focus(a,{select:!0})):(e.preventDefault(),n&&focus(o,{select:!0})):r===t&&e.preventDefault()}}),[n,o,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 o of e)if(focus(o,{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],o=n.indexOf(t);return-1!==o&&n.splice(o,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,o){var r=correctTargets(t,Array.isArray(e)?e:[e]);markerMap[n]||(markerMap[n]=new WeakMap);var a=markerMap[n],i=[],s=new Set,l=new Set(r),c=function(e){e&&!s.has(e)&&(s.add(e),c(e.parentNode))};r.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(o),r=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&&r&&uncontrolledNodes.set(e,!0),1===c&&e.setAttribute(n,"true"),r||e.setAttribute(o,"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,r=a.get(e)-1;counterMap.set(e,t),a.set(e,r),t||(uncontrolledNodes.has(e)||e.removeAttribute(o),uncontrolledNodes.delete(e)),r||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 o=Array.from(Array.isArray(e)?e:[e]),r=t||getDefaultParent(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live]"))),applyAttributeToOthers(o,r,n,"aria-hidden")):function(){return null}},__assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},__assign.apply(this,arguments)};function __rest(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}function __awaiter(e,t,n,o){return new(n||(n=Promise))((function(r,a){function i(e){try{l(o.next(e))}catch(e){a(e)}}function s(e){try{l(o.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}l((o=o.apply(e,t||[])).next())}))}function __generator(e,t){var n,o,r,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[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,o&&(r=2&s[0]?o.return:s[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,s[1])).done)return r;switch(o=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,o=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){a.label=s[1];break}if(6===s[0]&&a.label<r[1]){a.label=r[1],r=s;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(s);break}r[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],o=0}finally{n=r=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 o,r,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(o=a.next()).done;)i.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return i}function __spreadArray(e,t,n){if(n||2===arguments.length)for(var o,r=0,a=t.length;r<a;r++)!o&&r in t||(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||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 o=new Set(t),r=new Set(e),a=n.current;o.forEach((function(e){r.has(e)||assignRef(e,null)})),r.forEach((function(e){o.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=[],o=!1,r={read:function(){if(o)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 r=t(e,o);return n.push(r),function(){n=n.filter((function(e){return e!==r}))}},assignSyncMedium:function(e){for(o=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){o=!0;var t=[];if(n.length){var r=n;n=[],r.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 r}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 o=t.read();if(!o)throw new Error("Sidecar medium not found");return React__namespace.createElement(o,__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),o=React__namespace.useState({onScrollCapture:nothing,onWheelCapture:nothing,onTouchMoveCapture:nothing}),r=o[0],a=o[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,_=e.allowPinchZoom,h=e.as,g=void 0===h?"div":h,v=e.gapMode,y=__rest(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),E=f,b=useMergeRefs([n,t]),w=__assign(__assign({},y),r);return React__namespace.createElement(React__namespace.Fragment,null,u&&React__namespace.createElement(E,{sideCar:effectCar,removeScrollBar:c,shards:d,noIsolation:p,inert:m,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:v}),i?React__namespace.cloneElement(React__namespace.Children.only(s),__assign(__assign({},w),{ref:b})):React__namespace.createElement(g,__assign({},w,{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,o=t.dynamic;return e(n,o),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"],o=t["padding"===e?"paddingTop":"marginTop"],r=t["padding"===e?"paddingRight":"marginRight"];return[parse(n),parse(o),parse(r)]},getGapWidth=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return zeroGap;var t=getOffset(e),n=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-n+t[2]-t[0])}},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(e,t,n,o){var r=e.left,a=e.top,i=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat(noScrollbarsClassName," {\n overflow: hidden ").concat(o,";\n padding-right: ").concat(s,"px ").concat(o,";\n }\n body[").concat(lockAttribute,"] {\n overflow: hidden ").concat(o,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(o,";"),"margin"===n&&"\n padding-left: ".concat(r,"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(o,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),"\n }\n \n .").concat(zeroRightClassName," {\n right: ").concat(s,"px ").concat(o,";\n }\n \n .").concat(fullWidthClassName," {\n margin-right: ").concat(s,"px ").concat(o,";\n }\n \n .").concat(zeroRightClassName," .").concat(zeroRightClassName," {\n right: 0 ").concat(o,";\n }\n \n .").concat(fullWidthClassName," .").concat(fullWidthClassName," {\n margin-right: 0 ").concat(o,";\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,o=e.gapMode,r=void 0===o?"margin":o;useLockAttribute();var a=React__namespace.useMemo((function(){return getGapWidth(r)}),[r]);return React__namespace.createElement(Style,{styles:getStyles(a,!t,r,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,o=t;do{if("undefined"!=typeof ShadowRoot&&o instanceof ShadowRoot&&(o=o.host),elementCouldBeScrolled(e,o)){var r=getScrollVariables(e,o);if(r[1]>r[2])return!0}o=o.parentNode}while(o&&o!==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,o,r){var a=getDirectionFactor(e,window.getComputedStyle(t).direction),i=a*o,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],_=p[1]-p[2]-a*m;(m||_)&&elementCouldBeScrolled(e,s)&&(d+=_,f+=m),s=s instanceof ShadowRoot?s.host:s.parentNode}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(u&&(r&&Math.abs(d)<1||!r&&i>d)||!u&&(r&&Math.abs(f)<1||!r&&-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]),o=React__namespace.useRef(),r=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(r));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(r))})),function(){document.body.classList.remove("block-interactivity-".concat(r)),t.forEach((function(e){return e.classList.remove("allow-interactivity-".concat(r))}))}}}),[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 r,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?r=d:(r="v"===d?"h":"v",f=locationCouldBeScrolled(d,u)),!f)return!1;if(!o.current&&"changedTouches"in e&&(l||c)&&(o.current=r),!r)return!0;var p=o.current||r;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 o="deltaY"in n?getDeltaXY(n):getTouchXY(n),r=t.current.filter((function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&deltaCompare(e.delta,o)}))[0];if(r&&r.should)n.cancelable&&n.preventDefault();else if(!r){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,o,r){var a={name:e,delta:n,target:o,should:r,shadowParent:getOutermostShadowParent(o)};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),o.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(r)}):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:o,defaultOpen:r,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:o,defaultProp:r,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,...o}=e,r=usePopoverContext(ANCHOR_NAME$1,n),a=usePopperScope$1(n),{onCustomAnchorAdd:i,onCustomAnchorRemove:s}=r;return React__namespace.useEffect((()=>(i(),()=>s())),[i,s]),jsxRuntime.exports.jsx(Anchor,{...a,...o,ref:t})}));PopoverAnchor.displayName=ANCHOR_NAME$1;var TRIGGER_NAME$1="PopoverTrigger",PopoverTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...o}=e,r=usePopoverContext(TRIGGER_NAME$1,n),a=usePopperScope$1(n),i=useComposedRefs(t,r.triggerRef),s=jsxRuntime.exports.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":getState(r.open),...o,ref:i,onClick:composeEventHandlers(e.onClick,r.onOpenToggle)});return r.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:o,container:r}=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:r,children:o})})})};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:o=n.forceMount,...r}=e,a=usePopoverContext(CONTENT_NAME$2,e.__scopePopover);return jsxRuntime.exports.jsx(Presence,{present:o||a.open,children:a.modal?jsxRuntime.exports.jsx(PopoverContentModal,{...r,ref:t}):jsxRuntime.exports.jsx(PopoverContentNonModal,{...r,ref:t})})}));PopoverContent.displayName=CONTENT_NAME$2;var PopoverContentModal=React__namespace.forwardRef(((e,t)=>{const n=usePopoverContext(CONTENT_NAME$2,e.__scopePopover),o=React__namespace.useRef(null),r=useComposedRefs(t,o),a=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=o.current;if(e)return hideOthers(e)}),[]),jsxRuntime.exports.jsx(ReactRemoveScroll,{as:Slot,allowPinchZoom:!0,children:jsxRuntime.exports.jsx(PopoverContentImpl,{...e,ref:r,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,o=2===t.button||n;a.current=o}),{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),o=React__namespace.useRef(!1),r=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(PopoverContentImpl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||n.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(r.current=!0));const a=t.target,i=n.triggerRef.current?.contains(a);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&r.current&&t.preventDefault()}})})),PopoverContentImpl=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,trapFocus:o,onOpenAutoFocus:r,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:o,onMountAutoFocus:r,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$1,{"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,...o}=e,r=usePopoverContext(CLOSE_NAME,n);return jsxRuntime.exports.jsx(Primitive.button,{type:"button",...o,ref:t,onClick:composeEventHandlers(e.onClick,(()=>r.onOpenChange(!1)))})}));PopoverClose.displayName=CLOSE_NAME;var ARROW_NAME$2="PopoverArrow",PopoverArrow=React__namespace.forwardRef(((e,t)=>{const{__scopePopover:n,...o}=e,r=usePopperScope$1(n);return jsxRuntime.exports.jsx(Arrow,{...r,...o,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 o=useOverrides();return React__default.default.createElement("div",{className:classNames("lb-error lb-emoji-picker-error",t),...n},o.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,...o}){const r=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":r?"":void 0,"data-last":a?"":void 0,...o},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:o,...r},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",o),...r,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,...o}){const r=useCurrentUserId(),{user:a,isLoading:i}=_useUser(e),s=useOverrides(),l=React.useMemo((()=>t&&r===e?s.USER_SELF:a?.name??s.USER_UNKNOWN),[t,r,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,...o},i?null:l)}function ComposerInsertMentionEditorAction({label:e,tooltipLabel:t,className:n,onClick:o,...r}){const{createMention:a}=useComposer(),i=React.useCallback((e=>{e.preventDefault()}),[]),s=React.useCallback((e=>{o?.(e),e.isDefaultPrevented()||(e.stopPropagation(),a())}),[a,o]);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,...r},React__default.default.createElement(MentionIcon,{className:"lb-button-icon"})))}function ComposerInsertEmojiEditorAction({label:e,tooltipLabel:t,onPickerOpenChange:n,className:o,...r}){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",o),onMouseDown:i,onClick:s,"aria-label":e,...r},React__default.default.createElement(EmojiIcon,{className:"lb-button-icon"})))))}function ComposerAttachFilesEditorAction({label:e,tooltipLabel:t,className:n,...o}){const r=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:r,onClick:a,"aria-label":e,...o},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,...o}){const{removeAttachment:r}=useComposer(),a=React.useCallback((()=>{r(e.id)}),[e.id,r]);return React__default.default.createElement(FileAttachment,{className:classNames("lb-composer-attachment",t),...o,attachment:e,onDeleteClick:a,preventFocusOnDelete:!0,overrides:n})}function ComposerAttachments({overrides:e,className:t,...n}){const{attachments:o}=useComposer();return 0===o.length?null:React__default.default.createElement("div",{className:classNames("lb-composer-attachments",t),...n},React__default.default.createElement("div",{className:"lb-attachments"},o.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:o,overrides:r,actions:a,autoFocus:i,disabled:s,hasResolveMentionSuggestions:l,onEmojiPickerOpenChange:c,onEmptyChange:u,onEditorClick:d}){const{isEmpty:f}=useComposer(),{hasMaxAttachments:p}=useComposerAttachmentsContext(),m=useOverrides(r),[_,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",...h},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:r}),(!o||_)&&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&&_&&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:o,defaultAttachments:r,onComposerSubmit:a,collapsed:i,defaultCollapsed:s,onCollapsedChange:l,overrides:c,actions:u,onBlur:d,className:f,onFocus:p,autoFocus:m,disabled:_,showAttachments:h=!0,showAttribution:g,...v},y)=>{const E=useClient(),b=_useCreateThread(),w=useCreateComment(),C=useEditComment(),{preventUnsavedComposerChanges:R}=useLiveblocksUIConfig(),S=void 0!==E[kInternal].resolveMentionSuggestions,D=React.useRef(!0),T=React.useRef(!1),O=useOverrides(c),[A,x]=useControllableState((void 0!==i||void 0!==s)&&i,l,s),I=React.useCallback((e=>{D.current=e}),[]),N=React.useCallback((e=>{T.current=e}),[]),k=React.useCallback((e=>{p?.(e),e.isDefaultPrevented()||D.current&&x?.(!1)}),[x,p]),$=React.useCallback((e=>{if(d?.(e),e.isDefaultPrevented())return;!e.currentTarget.contains(e.relatedTarget??document.activeElement)&&D.current&&!T.current&&x?.(!0)}),[d,x]),F=React.useCallback((e=>{e.stopPropagation(),D.current&&x?.(!1)}),[x]),P=React.useCallback(((o,r)=>{a?.(o,r),r.isDefaultPrevented()||(t&&e?C({commentId:t,threadId:e,body:o.body,attachments:o.attachments}):e?w({threadId:e,body:o.body,attachments:o.attachments}):b({body:o.body,metadata:n??{},attachments:o.attachments}))}),[t,w,b,C,n,a,e]);return React__default.default.createElement(TooltipProvider,null,React__default.default.createElement(ComposerForm,{onComposerSubmit:P,className:classNames("lb-root lb-composer lb-composer-form",f),dir:O.dir,...v,ref:y,"data-collapsed":A?"":void 0,onFocus:k,onBlur:$,disabled:_,defaultAttachments:r,pasteFilesAsAttachments:h,preventUnsavedChanges:R},React__default.default.createElement(ComposerEditorContainer,{defaultValue:o,actions:u,overrides:c,isCollapsed:A,showAttachments:h,showAttribution:g,hasResolveMentionSuggestions:S,onEmptyChange:I,onEmojiPickerOpenChange:N,onEditorClick:F,autoFocus:m,disabled:_})))}));function createContextScope$1(e,t=[]){let n=[];const o=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const o=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:o}})),[n,o])}};return o.scopeName=e,[function(t,o){const r=React__namespace.createContext(o),a=n.length;function i(t){const{scope:n,children:o,...i}=t,s=n?.[e][a]||r,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:o})}return n=[...n,o],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||r,l=React__namespace.useContext(s);if(l)return l;if(void 0!==o)return o;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes$1(o,...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 o=n.reduce(((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:o})),[o])}};return n.scopeName=t.scopeName,n}function createCollection(e){const t=e+"CollectionProvider",[n,o]=createContextScope$1(t),[r,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{const{scope:t,children:n}=e,o=React__default.default.useRef(null),a=React__default.default.useRef(new Map).current;return jsxRuntime.exports.jsx(r,{scope:t,itemMap:a,collectionRef:o,children:n})};i.displayName=t;const s=e+"CollectionSlot",l=React__default.default.forwardRef(((e,t)=>{const{scope:n,children:o}=e,r=useComposedRefs(t,a(s,n).collectionRef);return jsxRuntime.exports.jsx(Slot,{ref:r,children:o})}));l.displayName=s;const c=e+"CollectionItemSlot",u="data-radix-collection-item",d=React__default.default.forwardRef(((e,t)=>{const{scope:n,children:o,...r}=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,...r}),()=>{l.itemMap.delete(i)}))),jsxRuntime.exports.jsx(Slot,{[u]:"",ref:s,children:o})}));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])},o]}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 o=()=>{const t=n.map((e=>React__namespace.createContext(e)));return function(n){const o=n?.[e]||t;return React__namespace.useMemo((()=>({[`__scope${e}`]:{...n,[e]:o}})),[n,o])}};return o.scopeName=e,[function(t,o){const r=React__namespace.createContext(o),a=n.length;function i(t){const{scope:n,children:o,...i}=t,s=n?.[e][a]||r,l=React__namespace.useMemo((()=>i),Object.values(i));return jsxRuntime.exports.jsx(s.Provider,{value:l,children:o})}return n=[...n,o],i.displayName=t+"Provider",[i,function(n,i){const s=i?.[e][a]||r,l=React__namespace.useContext(s);if(l)return l;if(void 0!==o)return o;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},composeContextScopes(o,...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 o=n.reduce(((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]})),{});return React__namespace.useMemo((()=>({[`__scope${t.scopeName}`]:o})),[o])}};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:o,loop:r=!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),[_=null,h]=useControllableState$1({prop:i,defaultProp:s,onChange:l}),[g,v]=React__namespace.useState(!1),y=useCallbackRef$1(c),E=useCollection$1(n),b=React__namespace.useRef(!1),[w,C]=React__namespace.useState(0);return React__namespace.useEffect((()=>{const e=f.current;if(e)return e.addEventListener(ENTRY_FOCUS,y),()=>e.removeEventListener(ENTRY_FOCUS,y)}),[y]),jsxRuntime.exports.jsx(RovingFocusProvider,{scope:n,orientation:o,dir:m,loop:r,currentTabStopId:_,onItemFocus:React__namespace.useCallback((e=>h(e)),[h]),onItemShiftTab:React__namespace.useCallback((()=>v(!0)),[]),onFocusableItemAdd:React__namespace.useCallback((()=>C((e=>e+1))),[]),onFocusableItemRemove:React__namespace.useCallback((()=>C((e=>e-1))),[]),children:jsxRuntime.exports.jsx(Primitive.div,{tabIndex:g||0===w?-1:0,"data-orientation":o,...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=E().filter((e=>e.focusable));focusFirst$1([e.find((e=>e.active)),e.find((e=>e.id===_)),...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:o=!0,active:r=!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(o)return f(),()=>p()}),[o,f,p]),jsxRuntime.exports.jsx(Collection$1.ItemSlot,{scope:n,id:l,focusable:o,active:r,children:jsxRuntime.exports.jsx(Primitive.span,{tabIndex:u?0:-1,"data-orientation":c.orientation,...i,ref:t,onMouseDown:composeEventHandlers(e.onMouseDown,(e=>{o?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 o=n.indexOf(e.currentTarget);n=c.loop?wrapArray$1(n,o+1):n.slice(o+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 o=getDirectionAwareKey(e.key,n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return MAP_KEY_TO_FOCUS_INTENT[o]}function focusFirst$1(e,t=!1){const n=document.activeElement;for(const o of e){if(o===n)return;if(o.focus({preventScroll:t}),document.activeElement!==n)return}}function wrapArray$1(e,t){return e.map(((n,o)=>e[(t+o)%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:o,dir:r,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(r);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:o})})})};Menu.displayName=MENU_NAME;var ANCHOR_NAME="MenuAnchor",MenuAnchor=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e,r=usePopperScope(n);return jsxRuntime.exports.jsx(Anchor,{...r,...o,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:o,container:r}=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:r,children:o})})})};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:o=n.forceMount,...r}=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:o||a.open,children:jsxRuntime.exports.jsx(Collection.Slot,{scope:e.__scopeMenu,children:i.modal?jsxRuntime.exports.jsx(MenuRootContentModal,{...r,ref:t}):jsxRuntime.exports.jsx(MenuRootContentNonModal,{...r,ref:t})})})})})),MenuRootContentModal=React__namespace.forwardRef(((e,t)=>{const n=useMenuContext(CONTENT_NAME$1,e.__scopeMenu),o=React__namespace.useRef(null),r=useComposedRefs(t,o);return React__namespace.useEffect((()=>{const e=o.current;if(e)return hideOthers(e)}),[]),jsxRuntime.exports.jsx(MenuContentImpl,{...e,ref:r,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:o=!1,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:m,..._}=e,h=useMenuContext(CONTENT_NAME$1,n),g=useMenuRootContext(CONTENT_NAME$1,n),v=usePopperScope(n),y=useRovingFocusGroupScope(n),E=useCollection(n),[b,w]=React__namespace.useState(null),C=React__namespace.useRef(null),R=useComposedRefs(t,C,h.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"),x=React__namespace.useRef(0),I=m?ReactRemoveScroll:React__namespace.Fragment,N=m?{as:Slot,allowPinchZoom:!0}:void 0;React__namespace.useEffect((()=>()=>window.clearTimeout(S.current)),[]),useFocusGuards();const k=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=>{k(e)&&e.preventDefault()}),[k]),onItemLeave:React__namespace.useCallback((e=>{k(e)||(C.current?.focus(),w(null))}),[k]),onTriggerLeave:React__namespace.useCallback((e=>{k(e)&&e.preventDefault()}),[k]),pointerGraceTimerRef:T,onPointerGraceIntentChange:React__namespace.useCallback((e=>{O.current=e}),[]),children:jsxRuntime.exports.jsx(I,{...N,children:jsxRuntime.exports.jsx(FocusScope,{asChild:!0,trapped:r,onMountAutoFocus:composeEventHandlers(a,(e=>{e.preventDefault(),C.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,...y,dir:g.dir,orientation:"vertical",loop:o,currentTabStopId:b,onCurrentTabStopIdChange:w,onEntryFocus:composeEventHandlers(l,(e=>{g.isUsingKeyboardRef.current||e.preventDefault()})),preventScrollOnEntryFocus:!0,children:jsxRuntime.exports.jsx(Content$1,{role:"menu","aria-orientation":"vertical","data-state":getOpenState(h.open),"data-radix-menu-content":"",dir:g.dir,...v,..._,ref:R,style:{outline:"none",..._.style},onKeyDown:composeEventHandlers(_.onKeyDown,(e=>{const t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,o=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&o&&(e=>{const t=D.current+e,n=E().filter((e=>!e.disabled)),o=document.activeElement,r=n.find((e=>e.ref.current===o))?.textValue,a=getNextMatch(n.map((e=>e.textValue)),t,r),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 r=C.current;if(e.target!==r)return;if(!FIRST_LAST_KEYS.includes(e.key))return;e.preventDefault();const a=E().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=x.current!==e.clientX;if(e.currentTarget.contains(t)&&n){const t=e.clientX>x.current?"right":"left";A.current=t,x.current=e.clientX}})))})})})})})})}));MenuContent.displayName=CONTENT_NAME$1;var GROUP_NAME$1="MenuGroup",MenuGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e;return jsxRuntime.exports.jsx(Primitive.div,{role:"group",...o,ref:t})}));MenuGroup.displayName=GROUP_NAME$1;var LABEL_NAME$1="MenuLabel",MenuLabel=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e;return jsxRuntime.exports.jsx(Primitive.div,{...o,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:o,...r}=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,{...r,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=>o?.(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:o=!1,textValue:r,...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:o,textValue:r??f,children:jsxRuntime.exports.jsx(Item,{asChild:!0,...s,focusable:!o,children:jsxRuntime.exports.jsx(Primitive.div,{role:"menuitem","data-highlighted":u?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...a,ref:c,onPointerMove:composeEventHandlers(e.onPointerMove,whenMouse((e=>{if(o)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:o,...r}=e;return jsxRuntime.exports.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:n,children:jsxRuntime.exports.jsx(MenuItem,{role:"menuitemcheckbox","aria-checked":isIndeterminate(n)?"mixed":n,...r,ref:t,"data-state":getCheckedState(n),onSelect:composeEventHandlers(r.onSelect,(()=>o?.(!!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:o,...r}=e,a=useCallbackRef$1(o);return jsxRuntime.exports.jsx(RadioGroupProvider,{scope:e.__scopeMenu,value:n,onValueChange:a,children:jsxRuntime.exports.jsx(MenuGroup,{...r,ref:t})})}));MenuRadioGroup.displayName=RADIO_GROUP_NAME$1;var RADIO_ITEM_NAME$1="MenuRadioItem",MenuRadioItem=React__namespace.forwardRef(((e,t)=>{const{value:n,...o}=e,r=useRadioGroupContext(RADIO_ITEM_NAME$1,e.__scopeMenu),a=n===r.value;return jsxRuntime.exports.jsx(ItemIndicatorProvider,{scope:e.__scopeMenu,checked:a,children:jsxRuntime.exports.jsx(MenuItem,{role:"menuitemradio","aria-checked":a,...o,ref:t,"data-state":getCheckedState(a),onSelect:composeEventHandlers(o.onSelect,(()=>r.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:o,...r}=e,a=useItemIndicatorContext(ITEM_INDICATOR_NAME,n);return jsxRuntime.exports.jsx(Presence,{present:o||isIndeterminate(a.checked)||!0===a.checked,children:jsxRuntime.exports.jsx(Primitive.span,{...r,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,...o}=e;return jsxRuntime.exports.jsx(Primitive.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})}));MenuSeparator.displayName=SEPARATOR_NAME$1;var ARROW_NAME$1="MenuArrow",MenuArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:n,...o}=e,r=usePopperScope(n);return jsxRuntime.exports.jsx(Arrow,{...r,...o,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),o=useMenuRootContext(SUB_TRIGGER_NAME$1,e.__scopeMenu),r=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:r.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":r.contentId,"data-state":getOpenState(n.open),...e,ref:composeRefs(t,r.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 o=n.content?.dataset.side,r="right"===o,i=r?-5:5,l=t[r?"left":"right"],c=t[r?"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:o}),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 r=""!==a.searchRef.current;e.disabled||r&&" "===t.key||SUB_OPEN_KEYS[o.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:o=n.forceMount,...r}=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:o||a.open,children:jsxRuntime.exports.jsx(Collection.Slot,{scope:e.__scopeMenu,children:jsxRuntime.exports.jsx(MenuContentImpl,{id:s.contentId,"aria-labelledby":s.triggerId,...r,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,o)=>e[(t+o)%e.length]))}function getNextMatch(e,t,n){const o=t.length>1&&Array.from(t).every((e=>e===t[0]))?t[0]:t,r=n?e.indexOf(n):-1;let a=wrapArray(e,Math.max(r,0));1===o.length&&(a=a.filter((e=>e!==n)));const i=a.find((e=>e.toLowerCase().startsWith(o.toLowerCase())));return i!==n?i:void 0}function isPointInPolygon(e,t){const{x:n,y:o}=e;let r=!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>o!=c>o&&n<(l-i)*(o-s)/(c-s)+i&&(r=!r)}return r}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:o,open:r,defaultOpen:a,onOpenChange:i,modal:s=!0}=e,l=useMenuScope(t),c=React__namespace.useRef(null),[u=!1,d]=useControllableState$1({prop:r,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:o,modal:s,children:n})})};DropdownMenu.displayName=DROPDOWN_MENU_NAME;var TRIGGER_NAME="DropdownMenuTrigger",DropdownMenuTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,disabled:o=!1,...r}=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":o?"":void 0,disabled:o,...r,ref:composeRefs(t,a.triggerRef),onPointerDown:composeEventHandlers(e.onPointerDown,(e=>{o||0!==e.button||!1!==e.ctrlKey||(a.onOpenToggle(),a.open||e.preventDefault())})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{o||(["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,o=useMenuScope(t);return jsxRuntime.exports.jsx(Portal,{...o,...n})};DropdownMenuPortal.displayName=PORTAL_NAME;var CONTENT_NAME="DropdownMenuContent",DropdownMenuContent=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useDropdownMenuContext(CONTENT_NAME,n),a=useMenuScope(n),i=React__namespace.useRef(!1);return jsxRuntime.exports.jsx(Content2$1,{id:r.contentId,"aria-labelledby":r.triggerId,...a,...o,ref:t,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,(e=>{i.current||r.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,o=2===t.button||n;r.modal&&!o||(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,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Group,{...r,...o,ref:t})}));DropdownMenuGroup.displayName=GROUP_NAME;var LABEL_NAME="DropdownMenuLabel",DropdownMenuLabel=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Label,{...r,...o,ref:t})}));DropdownMenuLabel.displayName=LABEL_NAME;var ITEM_NAME="DropdownMenuItem",DropdownMenuItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Item2,{...r,...o,ref:t})}));DropdownMenuItem.displayName=ITEM_NAME;var CHECKBOX_ITEM_NAME="DropdownMenuCheckboxItem",DropdownMenuCheckboxItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(CheckboxItem,{...r,...o,ref:t})}));DropdownMenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME;var RADIO_GROUP_NAME="DropdownMenuRadioGroup",DropdownMenuRadioGroup=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(RadioGroup,{...r,...o,ref:t})}));DropdownMenuRadioGroup.displayName=RADIO_GROUP_NAME;var RADIO_ITEM_NAME="DropdownMenuRadioItem",DropdownMenuRadioItem=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(RadioItem,{...r,...o,ref:t})}));DropdownMenuRadioItem.displayName=RADIO_ITEM_NAME;var INDICATOR_NAME="DropdownMenuItemIndicator",DropdownMenuItemIndicator=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(ItemIndicator,{...r,...o,ref:t})}));DropdownMenuItemIndicator.displayName=INDICATOR_NAME;var SEPARATOR_NAME="DropdownMenuSeparator",DropdownMenuSeparator=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Separator,{...r,...o,ref:t})}));DropdownMenuSeparator.displayName=SEPARATOR_NAME;var ARROW_NAME="DropdownMenuArrow",DropdownMenuArrow=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(Arrow2,{...r,...o,ref:t})}));DropdownMenuArrow.displayName=ARROW_NAME;var SUB_TRIGGER_NAME="DropdownMenuSubTrigger",DropdownMenuSubTrigger=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(SubTrigger,{...r,...o,ref:t})}));DropdownMenuSubTrigger.displayName=SUB_TRIGGER_NAME;var SUB_CONTENT_NAME="DropdownMenuSubContent",DropdownMenuSubContent=React__namespace.forwardRef(((e,t)=>{const{__scopeDropdownMenu:n,...o}=e,r=useMenuScope(n);return jsxRuntime.exports.jsx(SubContent,{...r,...o,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:o,onOpenChange:r,className:a,...i}){const s=useOverrides(),{portalContainer:l}=useLiveblocksUIConfig();return React__default.default.createElement(Root2,{defaultOpen:n,open:o,onOpenChange:r,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},o)=>React__default.default.createElement(DropdownMenuItem,{className:classNames("lb-dropdown-item",t),...n,ref:o},e))),List=React.forwardRef((({values:e,formatRemaining:t,truncate:n,locale:o,className:r,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],r=Array(t.length).fill(".");return listFormat(o).formatToParts(r).map((e=>"element"===e.type?t.shift():e.value))}),[u,o,n,e]);return React__default.default.createElement(l,{className:classNames("lb-list",r),...i,ref:s},d)})),REACTIONS_TRUNCATE=5;function CommentMention({userId:e,className:t,...n}){const o=useCurrentUserId();return React__default.default.createElement(CommentMention$1,{className:classNames("lb-comment-mention",t),"data-self":e===o?"":void 0,...n},MENTION_CHARACTER,React__default.default.createElement(User,{userId:e}))}function CommentLink({href:e,children:t,className:n,...o}){return React__default.default.createElement(CommentLink$1,{className:classNames("lb-comment-link",n),href:e,...o},t)}function CommentNonInteractiveLink({href:e,children:t,className:n,...o}){return React__default.default.createElement("span",{className:classNames("lb-comment-link",n),...o},t)}const CommentReactionButton=React.forwardRef((({reaction:e,overrides:t,className:n,...o},r)=>{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),...o,ref:r},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:o,...r},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:o,ref:a},React__default.default.createElement(CommentReactionButton,{"data-self":c?"":void 0,reaction:t,overrides:n,...r})))})),CommentNonInteractiveReaction=React.forwardRef((({reaction:e,overrides:t,...n},o)=>{const r=useCurrentUserId(),a=React.useMemo((()=>e.users.some((e=>e.id===r))),[r,e]);return React__default.default.createElement(CommentReactionButton,{disableable:!1,"data-self":a?"":void 0,reaction:e,overrides:t,...n,ref:o})}));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:o,...r}){const{url:a}=useAttachmentUrl(e.id),i=React.useCallback((n=>{if(!a)return;const o={attachment:e,url:a};t?.(o,n),n.isDefaultPrevented()||openAttachment(o)}),[e,t,a]);return React__default.default.createElement(MediaAttachment,{className:classNames("lb-comment-attachment",n),...r,attachment:e,overrides:o,onClick:a?i:void 0})}function CommentFileAttachment({attachment:e,onAttachmentClick:t,className:n,overrides:o,...r}){const{url:a}=useAttachmentUrl(e.id),i=React.useCallback((n=>{if(!a)return;const o={attachment:e,url:a};t?.(o,n),n.isDefaultPrevented()||openAttachment(o)}),[e,t,a]);return React__default.default.createElement(FileAttachment,{className:classNames("lb-comment-attachment",n),...r,attachment:e,overrides:o,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:o="hover",showReactions:r=!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)),y=React.useRef(null),E=useRefs(g,y),b=useCurrentUserId(),w=useDeleteComment(),C=useEditComment(),R=_useAddReaction(),S=useRemoveReaction(),D=useOverrides(d),[T,O]=React.useState(!1),[A,x]=React.useState(!1),[I,N]=React.useState(!1),[k,$]=React.useState(!1),{mediaAttachments:F,fileAttachments:P}=React.useMemo((()=>separateMediaAttachments(e.attachments)),[e.attachments]),M=React.useCallback((e=>{e.stopPropagation()}),[]),L=React.useCallback((()=>{O(!0)}),[]),B=React.useCallback((e=>{e.stopPropagation(),O(!1)}),[]),j=React.useCallback((({body:t,attachments:n},o)=>{c?.(e),o.preventDefault(),O(!1),C({commentId:e.id,threadId:e.threadId,body:t,attachments:n})}),[e,C,c]),U=React.useCallback((()=>{u?.(e),w({commentId:e.id,threadId:e.threadId})}),[e,w,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}):R({threadId:e.threadId,commentId:e.id,emoji:t})}),[R,e.id,e.reactions,e.threadId,S,b]);return React.useEffect((()=>{if(!("undefined"!=typeof window))return;window.location.hash.slice(1)===e.id&&x(!0)}),[]),n||e.body?React__default.default.createElement(TooltipProvider,null,v&&_&&React__default.default.createElement(AutoMarkReadThreadIdHandler,{commentRef:y,threadId:_}),React__default.default.createElement("div",{id:e.id,className:classNames("lb-root lb-comment",t&&"lb-comment:indent-content","hover"===o&&"lb-comment:show-actions-hover",(I||k)&&"lb-comment:action-open",f),"data-deleted":e.body?void 0:"","data-editing":T?"":void 0,"data-target":A?"":void 0,dir:D.dir,...h,ref:E},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))))),o&&!T&&React__default.default.createElement("div",{className:classNames("lb-comment-actions",m)},p??null,r&&React__default.default.createElement(EmojiPicker,{onEmojiSelect:H,onOpenChange:$},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:I,onOpenChange:N,align:"end",content:React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(DropdownItem,{onSelect:L,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:B},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&&(F.length>0||P.length>0)?React__default.default.createElement("div",{className:"lb-comment-attachments"},F.length>0?React__default.default.createElement("div",{className:"lb-attachments"},F.map((e=>React__default.default.createElement(CommentMediaAttachment,{key:e.id,attachment:e,overrides:d,onAttachmentClick:l})))):null,P.length>0?React__default.default.createElement("div",{className:"lb-attachments"},P.map((e=>React__default.default.createElement(CommentFileAttachment,{key:e.id,attachment:e,overrides:d,onAttachmentClick:l})))):null):null,r&&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 o=ABSOLUTE_URL_REGEX.test(e),r=new URL(e,o?void 0:PLACEHOLDER_BASE_URL);if(void 0!==t)for(const[e,n]of Object.entries(t))n&&r.searchParams.set(e,String(n));return r.hash||void 0===n||(r.hash=`#${n}`),o?r.href:r.href.replace(PLACEHOLDER_BASE_URL,"")}const INBOX_NOTIFICATION_THREAD_MAX_COMMENTS=3;function InboxNotificationComment({comment:e,showHeader:t=!0,showAttachments:n=!0,showReactions:o=!0,overrides:r,className:a,...i}){const s=useOverrides(r);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}}),o&&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:r,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:r}))))):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 o=e[n];if(o.userId!==t&&o.body){if(getMentionedIdsFromCommentBody(o.body).includes(t))return o}}}function getUserIdsFromComments(e){return Array.from(new Set(e.map((e=>e.userId))))}function generateInboxNotificationThreadContents(e,t,n){const o=t.comments.filter((t=>!!t.body&&(e.readAt?t.createdAt>e.readAt&&t.createdAt<=e.notifiedAt:t.createdAt<=e.notifiedAt)));if(0===o.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 r=findLastCommentWithMentionedId(o,n);if(r)return{type:"mention",unread:!0,comments:[r],userIds:[r.userId],date:r.createdAt};return{type:"comments",unread:!0,comments:o.slice(-INBOX_NOTIFICATION_THREAD_MAX_COMMENTS),userIds:getUserIdsFromComments(o),date:e.notifiedAt}}function Room({roomId:e,className:t,...n}){const{info:o,isLoading:r}=useRoomInfo(e),a=React.useMemo((()=>o?.name??e),[o?.name,e]);return React__default.default.createElement("span",{className:classNames("lb-name lb-room",t),"data-loading":r?"":void 0,...n},r?null:a)}const InboxNotificationLayout=React.forwardRef((({inboxNotification:e,children:t,aside:n,title:o,date:r,unread:a,markAsReadOnClick:i,onClick:s,href:l,showActions:c,overrides:u,components:d,className:f,asChild:p,...m},_)=>{const h=useOverrides(u),{Anchor:g}=useComponents(d),v=p?Slot:g,[y,E]=React.useState(!1),b=useMarkInboxNotificationAsRead(),w=useDeleteInboxNotification(),C=React.useCallback((t=>{s?.(t);const n=i??Boolean(l);a&&n&&b(e.id)}),[l,e.id,i,b,s,a]),R=React.useCallback((e=>{e.stopPropagation()}),[]),S=React.useCallback((e=>{e.preventDefault(),e.stopPropagation()}),[]),D=React.useCallback((e=>{e.preventDefault(),e.stopPropagation(),E((e=>!e))}),[]),T=React.useCallback((()=>{b(e.id)}),[e.id,b]),O=React.useCallback((()=>{w(e.id)}),[e.id,w]);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",y&&"lb-inbox-notification:action-open",f),dir:h.dir,"data-unread":a?"":void 0,"data-kind":e.kind,onClick:C,href:l,...m,ref:_},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"},o),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:h.locale,date:r,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:y,onOpenChange:E,align:"end",content:React__default.default.createElement(React__default.default.Fragment,null,a?React__default.default.createElement(DropdownItem,{onSelect:T,onClick:R},React__default.default.createElement(CheckIcon,{className:"lb-dropdown-item-icon"}),h.INBOX_NOTIFICATION_MARK_AS_READ):null,React__default.default.createElement(DropdownItem,{onSelect:O,onClick:R},React__default.default.createElement(DeleteIcon,{className:"lb-dropdown-item-icon"}),h.INBOX_NOTIFICATION_DELETE))},React__default.default.createElement(Tooltip,{content:h.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":h.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:o=!0,showAttachments:r=!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:r,showReactions:o,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:r,showReactions:o,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,r,o,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:_,title:h,content:g,date:v,unread:y}=p;return React__default.default.createElement(InboxNotificationLayout,{inboxNotification:e,aside:_,title:h,date:v,unread:y,overrides:i,href:m,showActions:a,markAsReadOnClick:!1,...s,ref:l},g)})),InboxNotificationTextMention=React.forwardRef((({inboxNotification:e,showActions:t="hover",showRoomName:n=!0,overrides:o,...r},a)=>{const i=useOverrides(o),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:o,showActions:t,...r,ref:a})})),InboxNotificationCustom=React.forwardRef((({inboxNotification:e,showActions:t="hover",title:n,aside:o,children:r,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:o,title:n,date:e.notifiedAt,unread:l,overrides:a,showActions:t,...i,ref:s},r)}));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},o)=>{switch(e.kind){case"thread":{const r=t?.thread??InboxNotificationThread;return React__default.default.createElement(r,{inboxNotification:e,...n,ref:o})}case"textMention":{const r=t?.textMention??InboxNotificationTextMention;return React__default.default.createElement(r,{inboxNotification:e,...n,ref:o})}default:{const r=t?.[e.kind];return r?React__default.default.createElement(r,{inboxNotification:e,...n,ref:o}):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,...o},r)=>React__default.default.createElement("ol",{className:classNames("lb-root lb-inbox-notification-list",n),...o,ref:r},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 o=e[n];if(o&&t(o))return n;n--}return-1}const Thread=React.forwardRef((({thread:e,indentCommentContent:t=!0,showActions:n="hover",showDeletedComments:o,showResolveAction:r=!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:_,overrides:h,className:g,...v},y)=>{const E=useMarkThreadAsResolved(),b=useMarkThreadAsUnresolved(),w=useOverrides(h),C=React.useMemo((()=>o?0:e.comments.findIndex((e=>e.body))),[o,e.comments]),R=React.useMemo((()=>o?e.comments.length-1:findLastIndex(e.comments,(e=>e.body))),[o,e.comments]),{status:S,unreadSince:D}=useThreadSubscription(e.id),T=React.useMemo((()=>{if("subscribed"!==S)return;if(null===D)return C;const t=e.comments.findIndex((e=>(!!o||e.body)&&e.createdAt>D));return t>=0&&t<e.comments.length?t:void 0}),[C,o,S,e.comments,D]),[O,A]=React.useState(),x=void 0===O?T:O;React.useEffect((()=>{T&&A((e=>Math.min(e??1/0,T)))}),[T]);const I=React.useCallback((e=>{e.stopPropagation()}),[]),N=React.useCallback((t=>{l?.(t),t?E(e.id):b(e.id)}),[E,b,l,e.id]),k=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:w.dir,...v,ref:y},React__default.default.createElement("div",{className:"lb-thread-comments"},e.comments.map(((i,l)=>{const u=l===C,d=void 0!==T&&l>=T,_=React__default.default.createElement(Comment,{key:i.id,className:"lb-thread-comment","data-unread":d?"":void 0,comment:i,indentContent:t,showDeleted:o,showActions:n,showReactions:a,showAttachments:s,onCommentEdit:c,onCommentDelete:k,onAuthorClick:f,onMentionClick:p,onAttachmentClick:m,autoMarkReadThreadId:l===R&&d?e.id:void 0,additionalActionsClassName:u?"lb-thread-actions":void 0,additionalActions:u&&r?React__default.default.createElement(Tooltip,{content:e.resolved?w.THREAD_UNRESOLVE:w.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:I,"aria-label":e.resolved?w.THREAD_UNRESOLVE:w.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===x&&x!==C&&x<=R?React__default.default.createElement(React.Fragment,{key:i.id},React__default.default.createElement("div",{className:"lb-thread-new-indicator","aria-label":w.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"}),w.THREAD_NEW_INDICATOR)),_):_}))),i&&React__default.default.createElement(Composer,{className:"lb-thread-composer",threadId:e.id,defaultCollapsed:"collapsed"===i||void 0,showAttachments:s,onComposerSubmit:_,overrides:{COMPOSER_PLACEHOLDER:w.THREAD_COMPOSER_PLACEHOLDER,COMPOSER_SEND:w.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,o=arguments.length,r=new Array(o),a=0;a<o;a++)r[a]=arguments[a];null===(t=(n=this.props).onReset)||void 0===t||t.call(n,{args:r,reason:"imperative-api"}),this.setState(initialState)}}componentDidCatch(e,t){var n,o;null===(n=(o=this.props).onError)||void 0===n||n.call(o,e,t)}componentDidUpdate(e,t){const{didCatch:n}=this.state,{resetKeys:o}=this.props;var r,a;n&&null!==t.error&&hasArrayChanged(e.resetKeys,o)&&(null===(r=(a=this.props).onReset)||void 0===r||r.call(a,{next:o,prev:e.resetKeys,reason:"keys"}),this.setState(initialState))}render(){const{children:e,fallbackRender:t,FallbackComponent:n,fallback:o}=this.props,{didCatch:r,error:a}=this.state;let i=e;if(r){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===o)throw a;i=o}}return React.createElement(ErrorBoundaryContext.Provider,{value:{didCatch:r,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,o=e.roomId;return React__default.default.createElement(_RoomProvider,{id:o},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$2={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$2={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 o=n.call(e,t||"default");if("object"!==_typeof$1(o))return o;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 o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey$1(o.key),o)}}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,o=new Array(t);n<t;n++)o[n]=e[n];return o}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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o){return o&&!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),o=1;o<t;o++)n[o-1]=arguments[o];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,o){e=n,t=o}));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 o(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function r(){return!e||"string"==typeof e}for(var a="string"!=typeof t?[].concat(t):t.split(".");a.length>1;){if(r())return{};var i=o(a.shift());!e[i]&&n&&(e[i]=new n),e=Object.prototype.hasOwnProperty.call(e,i)?e[i]:{}}return r()?{}:{obj:e,k:o(a.shift())}}function setPath(e,t,n){var o=getLastOfPath(e,t,Object);o.obj[o.k]=n}function pushPath(e,t,n,o){var r=getLastOfPath(e,t,Object),a=r.obj,i=r.k;a[i]=a[i]||[],o&&(a[i]=a[i].concat(n)),o||a[i].push(n)}function getPath(e,t){var n=getLastOfPath(e,t),o=n.obj,r=n.k;if(o)return o[r]}function getPathWithDefaults(e,t,n){var o=getPath(e,n);return void 0!==o?o:getPath(t,n)}function deepExtend(e,t,n){for(var o in t)"__proto__"!==o&&"constructor"!==o&&(o in e?"string"==typeof e[o]||e[o]instanceof String||"string"==typeof t[o]||t[o]instanceof String?n&&(e[o]=t[o]):deepExtend(e[o],t[o],n):e[o]=t[o]);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 o=chars.filter((function(e){return t.indexOf(e)<0&&n.indexOf(e)<0}));if(0===o.length)return!0;var r=new RegExp("(".concat(o.map((function(e){return"?"===e?"\\?":e})).join("|"),")")),a=!r.test(e);if(!a){var i=e.indexOf(n);i>0&&!r.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 o=t.split(n),r=e,a=0;a<o.length;++a){if(!r)return;if("string"==typeof r[o[a]]&&a+1<o.length)return;if(void 0===r[o[a]]){for(var i=2,s=o.slice(a,a+i).join(n),l=r[s];void 0===l&&o.length>a+i;)i++,l=r[s=o.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=o.slice(a+i).join(n);return c?deepFind(l,c,n):void 0}r=r[o[a]]}return r}}function ownKeys$5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.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 o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return _classCallCheck$1(this,n),o=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(o)),o.data=e||{},o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),void 0===o.options.ignoreJSONStructure&&(o.options.ignoreJSONStructure=!0),o}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 o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,a=void 0!==o.ignoreJSONStructure?o.ignoreJSONStructure:this.options.ignoreJSONStructure,i=[e,t];n&&"string"!=typeof n&&(i=i.concat(n)),n&&"string"==typeof n&&(i=i.concat(r?n.split(r):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,r)}},{key:"addResource",value:function(e,t,n,o){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,i=[e,t];n&&(i=i.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(o=t,t=(i=e.split("."))[1]),this.addNamespaces(t),setPath(this.data,i,o),r.silent||this.emit("added",e,t,n,o)}},{key:"addResources",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var r in n)"string"!=typeof n[r]&&"[object Array]"!==Object.prototype.toString.apply(n[r])||this.addResource(e,t,r,n[r],{silent:!0});o.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,o,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},i=[e,t];e.indexOf(".")>-1&&(o=n,n=t,t=(i=e.split("."))[1]),this.addNamespaces(t);var s=getPath(this.data,i)||{};o?deepExtend(s,n,r):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,o,r){var a=this;return e.forEach((function(e){a.processors[e]&&(t=a.processors[e].process(t,n,o,r))})),t}};function ownKeys$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.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 o,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _classCallCheck$1(this,n),o=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(o)),copy(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,_assertThisInitialized(o)),o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o.logger=baseLogger.create("translator"),o}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 o=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,r=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,o));if(a&&!i){var s=e.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:e,namespaces:r};var l=e.split(n);(n!==o||n===o&&this.options.ns.indexOf(l[0])>-1)&&(r=l.shift()),e=l.join(o)}return"string"==typeof r&&(r=[r]),{key:e,namespaces:r}}},{key:"translate",value:function(e,t,o){var r=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),_=m&&m.res,h=m&&m.usedKey||l,g=m&&m.exactUsedKey||l,v=Object.prototype.toString.apply(_),y=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,E=!this.i18nFormat||this.i18nFormat.handleAsObject;if(E&&_&&("string"!=typeof _&&"boolean"!=typeof _&&"number"!=typeof _)&&["[object Number]","[object Function]","[object RegExp]"].indexOf(v)<0&&("string"!=typeof y||"[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 w="[object Array]"===v,C=w?[]:{},R=w?g:h;for(var S in _)if(Object.prototype.hasOwnProperty.call(_,S)){var D="".concat(R).concat(i).concat(S);C[S]=this.translate(D,_objectSpread$4(_objectSpread$4({},t),{joinArrays:!1,ns:c})),C[S]===D&&(C[S]=_[S])}_=C}}else if(E&&"string"==typeof y&&"[object Array]"===v)(_=_.join(y))&&(_=this.extendTranslation(_,e,t,o));else{var T=!1,O=!1,A=void 0!==t.count&&"string"!=typeof t.count,x=n.hasDefaultValue(t),I=A?this.pluralResolver.getSuffix(d,t.count,t):"",N=t["defaultValue".concat(I)]||t.defaultValue;!this.isValidLookup(_)&&x&&(T=!0,_=N),this.isValidLookup(_)||(O=!0,_=l);var k=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&O?void 0:_,$=x&&N!==_&&this.options.updateMissing;if(O||T||$){if(this.logger.log($?"updateKey":"missingKey",d,u,l,$?N:_),i){var F=this.resolve(l,_objectSpread$4(_objectSpread$4({},t),{},{keySeparator:!1}));F&&F.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 P=[],M=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&M&&M[0])for(var L=0;L<M.length;L++)P.push(M[L]);else"all"===this.options.saveMissingTo?P=this.languageUtils.toResolveHierarchy(t.lng||this.language):P.push(t.lng||this.language);var B=function(e,n,o){var a=x&&o!==_?o:k;r.options.missingKeyHandler?r.options.missingKeyHandler(e,u,n,a,$,t):r.backendConnector&&r.backendConnector.saveMissing&&r.backendConnector.saveMissing(e,u,n,a,$,t),r.emit("missingKey",e,u,n,_)};this.options.saveMissing&&(this.options.saveMissingPlurals&&A?P.forEach((function(e){r.pluralResolver.getSuffixes(e,t).forEach((function(n){B([e],l+n,t["defaultValue".concat(n)]||N)}))})):B(P,l,N))}_=this.extendTranslation(_,e,t,m,o),O&&_===l&&this.options.appendNamespaceToMissingKey&&(_="".concat(u,":").concat(l)),(O||T)&&this.options.parseMissingKeyHandler&&(_="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?"".concat(u,":").concat(l):l,T?_:void 0):this.options.parseMissingKeyHandler(_))}return a?(m.res=_,m):_}},{key:"extendTranslation",value:function(e,t,n,o,r){var a=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,_objectSpread$4(_objectSpread$4({},this.options.interpolation.defaultVariables),n),o.usedLng,o.usedNS,o.usedKey,{resolved:o});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&&o&&o.res&&(n.lng=o.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,(function(){for(var e=arguments.length,o=new Array(e),i=0;i<e;i++)o[i]=arguments[i];return r&&r[0]===o[0]&&!n.context?(a.logger.warn("It seems you are nesting recursively key: ".concat(o[0]," in key: ").concat(t[0])),null):a.translate.apply(a,o.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:o},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,o,r,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)){r=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 _="".concat(c).concat(i.options.contextSeparator).concat(s.context);l.push(_),d&&(l.push(_+u),f&&l.push(_+m))}}for(;a=l.pop();)i.isValidLookup(t)||(o=a,t=i.getResource(n,e,a,s))}})))}))}})),{res:t,usedKey:n,exactUsedKey:o,usedLng:r,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 o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,o):this.resourceStore.getResource(e,t,n,o)}}],[{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 o=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(o)||(t=o)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var o=n.getLanguagePartFromCode(e);if(n.isSupportedCode(o))return t=o;t=n.options.supportedLngs.find((function(e){return e===o?e:e.indexOf("-")<0&&o.indexOf("-")<0?void 0:0===e.indexOf(o)?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,o=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],a=function(e){e&&(n.isSupportedCode(e)?r.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)),o.forEach((function(e){r.indexOf(e)<0&&a(n.formatLanguageCode(e))})),r}}]),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]:{},o=this.getRule(e,n);return o?this.shouldUseIntlApi()?o.resolvedOptions().pluralCategories.sort((function(e,t){return suffixesOrder[e]-suffixesOrder[t]})).map((function(e){return"".concat(t.options.prepend).concat(e)})):o.numbers.map((function(o){return t.getSuffix(e,o,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=this.getRule(e,n);return o?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(o.select(t)):this.getSuffixRetroCompatible(o,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var n=this,o=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),r=e.numbers[o];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var a=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):a():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?a():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=getPathWithDefaults(e,t,n);return!a&&r&&"string"==typeof n&&void 0===(a=deepFind(e,n,o))&&(a=deepFind(t,n,o)),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,o){var r,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 r=deepFindWithDefaults(t,l,e,s.options.keySeparator,s.options.ignoreJSONStructure);return s.alwaysFormat?s.format(r,void 0,n,_objectSpread$3(_objectSpread$3(_objectSpread$3({},o),t),{},{interpolationkey:e})):r}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({},o),t),{},{interpolationkey:i}))};this.resetRegExp();var d=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,f=o&&o.interpolation&&void 0!==o.interpolation.skipOnVariables?o.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;r=t.regex.exec(e);){var n=r[1].trim();if(void 0===(a=u(n)))if("function"==typeof d){var l=d(e,r,o);a="string"==typeof l?l:""}else if(o&&Object.prototype.hasOwnProperty.call(o,n))a="";else{if(f){a=r[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(r[0],c),f?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=r[0].length):t.regex.lastIndex=0,++i>=s.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,o,r,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 o=e.split(new RegExp("".concat(n,"[ ]*{"))),a="{".concat(o[1]);e=o[0];var i=(a=this.interpolate(a,r)).match(/'/g),s=a.match(/"/g);(i&&i.length%2==0&&!s||s.length%2!=0)&&(a=a.replace(/'/g,'"'));try{r=JSON.parse(a),t&&(r=_objectSpread$3(_objectSpread$3({},t),r))}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 r.defaultValue,e}for(;n=this.nestingRegexp.exec(e);){var l=[];(r=(r=_objectSpread$3({},i)).replace&&"string"!=typeof r.replace?r.replace:r).applyPostProcessor=!1,delete r.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((o=t(s.call(this,n[1].trim(),r),r))&&n[0]===e&&"string"!=typeof o)return o;"string"!=typeof o&&(o=makeString(o)),o||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),o=""),c&&(o=l.reduce((function(e,t){return a.format(e,t,i.lng,_objectSpread$3(_objectSpread$3({},i),{},{interpolationkey:n[1].trim()}))}),o.trim())),e=e.replace(n[0],o),this.regexp.lastIndex=0}return e}}]),e}();function ownKeys$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=e.split("(");t=o[0].toLowerCase().trim();var r=o[1].substring(0,o[1].length-1);if("currency"===t&&r.indexOf(":")<0)n.currency||(n.currency=r.trim());else if("relativetime"===t&&r.indexOf(":")<0)n.range||(n.range=r.trim());else{r.split(";").forEach((function(e){if(e){var t=_toArray(e.split(":")),o=t[0],r=t.slice(1).join(":").trim().replace(/^'+|'+$/g,"");n[o.trim()]||(n[o.trim()]=r),"false"===r&&(n[o.trim()]=!1),"true"===r&&(n[o.trim()]=!0),isNaN(r)||(n[o.trim()]=parseInt(r,10))}}))}}return{formatName:t,formatOptions:n}}function createCachedFormatter(e){var t={};return function(n,o,r){var a=o+JSON.stringify(r),i=t[a];return i||(i=e(o,r),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 o=this,r=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(o.formats[i]){var l=e;try{var c=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},u=c.locale||c.lng||r.locale||r.lng||n;l=o.formats[i](e,u,_objectSpread$2(_objectSpread$2(_objectSpread$2({},s),r),c))}catch(e){o.logger.warn(e)}return l}return o.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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.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,o,r){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=o,a.services=r,a.languageUtils=r.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(r,i.backend,i),a}return _createClass$1(n,[{key:"queueLoad",value:function(e,t,n,o){var r=this,a={},i={},s={},l={};return e.forEach((function(e){var o=!0;t.forEach((function(t){var s="".concat(e,"|").concat(t);!n.reload&&r.store.hasResourceBundle(e,t)?r.state[s]=2:r.state[s]<0||(1===r.state[s]?void 0===i[s]&&(i[s]=!0):(r.state[s]=1,o=!1,void 0===i[s]&&(i[s]=!0),void 0===a[s]&&(a[s]=!0),void 0===l[t]&&(l[t]=!0)))})),o||(s[e]=!0)})),(Object.keys(a).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(a),pending:Object.keys(i),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}},{key:"loaded",value:function(e,t,n){var o=e.split("|"),r=o[0],a=o[1];t&&this.emit("failedLoading",r,a,t),n&&this.store.addResourceBundle(r,a,n),this.state[e]=t?-1:2;var i={};this.queue.forEach((function(n){pushPath(n.loaded,[r],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 o=this,r=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:r,wait:a,callback:i});else{this.readingCalls++;var s=function(s,l){if(o.readingCalls--,o.waitingReads.length>0){var c=o.waitingReads.shift();o.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}s&&l&&r<o.maxRetries?setTimeout((function(){o.read.call(o,e,t,n,r+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,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=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."),r&&r();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var a=this.queueLoad(e,t,o,r);if(!a.toLoad.length)return a.pending.length||r(),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]:"",o=e.split("|"),r=o[0],a=o[1];this.read(r,a,"read",void 0,void 0,(function(o,i){o&&t.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(r," failed"),o),!o&&i&&t.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(r),i),t.loaded(e,o,i)}))}},{key:"saveMissing",value:function(e,t,n,o,r){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:r}),l=this.backend.create.bind(this.backend);if(l.length<6)try{var c;(c=5===l.length?l(e,t,n,o,s):l(e,t,n,o))&&"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,o,i,s)}e&&e[0]&&this.store.addResource(e[0],t,n,o)}}}]),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,o){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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=_getPrototypeOf(e);if(t){var r=_getPrototypeOf(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.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,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(_classCallCheck$1(this,n),e=t.call(this),isIE10&&EventEmitter.call(_assertThisInitialized(e)),e.options=transformOptions(o),e.services={},e.logger=baseLogger,e.modules={external:[]},bindMemberFunctions(_assertThisInitialized(e)),r&&!e.isInitialized&&!o.isClone){if(!e.options.initImmediate)return e.init(o,r),_possibleConstructorReturn(e,_assertThisInitialized(e));setTimeout((function(){e.init(o,r)}),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 o=get();function r(e){return e?"function"==typeof e?new e:e:null}if(this.options=_objectSpread$7(_objectSpread$7(_objectSpread$7({},o),this.options),transformOptions(t)),"v1"!==this.options.compatibilityAPI&&(this.options.interpolation=_objectSpread$7(_objectSpread$7({},o.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(r(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!==o.interpolation.format||(s.formatter=r(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(r(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",(function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];e.emit.apply(e,[t].concat(o))})),this.modules.languageDetector&&(s.languageDetector=r(this.modules.languageDetector),s.languageDetector.init&&s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=r(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,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];e.emit.apply(e,[t].concat(o))})),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,o){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(o),n(t,o)};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,o="string"==typeof e?e:this.language;if("function"==typeof e&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return n();var r=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){r.indexOf(e)<0&&r.push(e)}))};if(o)a(o);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(r,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 o=defer();return e||(e=this.languages),t||(t=this.options.ns),n||(n=noop),this.services.backendConnector.reload(e,t,(function(e){o.resolve(),n(e)})),o}},{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 o=defer();this.emit("languageChanging",e);var r=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||r(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?(r(a),n.translator.changeLanguage(a),n.isLanguageChangingTo=void 0,n.emit("languageChanged",a),n.logger.log("languageChanged",a)):n.isLanguageChangingTo=void 0,o.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()),o}},{key:"getFixedT",value:function(e,t,n){var o=this,r=function e(t,r){var a;if("object"!==_typeof$1(r)){for(var i=arguments.length,s=new Array(i>2?i-2:0),l=2;l<i;l++)s[l-2]=arguments[l];a=o.options.overloadTranslationOptionHandler([t,r].concat(s))}else a=_objectSpread$7({},r);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=o.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,o.t(c,a)};return"string"==typeof e?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}},{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 o=n.lng||this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===o.toLowerCase())return!0;var i=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===o||2===o};if(n.precheck){var s=n.precheck(this,i);if(void 0!==s)return s}return!!this.hasResourceBundle(o,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!i(o,e)||r&&!i(a,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,o=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){o.resolve(),t&&t(e)})),o):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=defer();"string"==typeof e&&(e=[e]);var o=this.options.preload||[],r=e.filter((function(e){return o.indexOf(e)<0}));return r.length?(this.options.preload=o.concat(r),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]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,r=_objectSpread$7(_objectSpread$7(_objectSpread$7({},this.options),t),{isClone:!0}),a=new n(r);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),o=1;o<t;o++)n[o-1]=arguments[o];a.emit.apply(a,[e].concat(n))})),a.init(r,o),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 o=n.call(e,t||"default");if("object"!==_typeof(o))return o;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),o=0;o<t;o++)n[o]=arguments[o];"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,o){"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,o))}function oldI18nextHasLoadedNamespace(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=t.languages[0],r=!!t.options&&t.options.fallbackLng,a=t.languages[t.languages.length-1];if("cimode"===o.toLowerCase())return!0;var i=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===o||2===o};return!(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!i(t.isLanguageChangingTo,e))&&(!!t.hasResourceBundle(o,e)||(!(t.services.backendConnector.backend&&(!t.options.resources||t.options.partialBundledLanguages))||!(!i(o,e)||r&&!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,o){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!o(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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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 o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}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 o,r,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=(o=a.call(n)).done)&&(s.push(o.value),s.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw r}}return s}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}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,o=React.useContext(I18nContext)||{},r=o.i18n,a=o.defaultNS,i=n||r||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 _=_slicedToArray(React.useState(m),2),h=_[0],g=_[1],v=f.join();t.lng&&(v="".concat(t.lng).concat(v));var y=usePrevious(v),E=React.useRef(!0);React.useEffect((function(){var e=c.bindI18n,n=c.bindI18nStore;function o(){E.current&&g(m)}return E.current=!0,p||u||(t.lng?loadLanguages(i,t.lng,f,(function(){E.current&&g(m)})):loadNamespaces(i,f,(function(){E.current&&g(m)}))),p&&y&&y!==v&&E.current&&g(m),e&&i&&i.on(e,o),n&&i&&i.store.on(n,o),function(){E.current=!1,e&&i&&e.split(" ").forEach((function(e){return i.off(e,o)})),n&&i&&n.split(" ").forEach((function(e){return i.store.off(e,o)}))}}),[i,v]);var b=React.useRef(!0);React.useEffect((function(){E.current&&!b.current&&g(m),b.current=!1}),[i,d]);var w=[h,i,p];if(w.t=h,w.i18n=i,w.ready=p,p)return w;if(!p&&!u)return w;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"},o=getAuthorization();o&&(n.Authorization=o),t.headers=Object.assign({},n,t.headers),t.credentials="include";const r=await fetch(`${getRootUrl()}${e}`,t);if(401===r.status)throw new Error(401);const a=await r.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 o=`tab_${e}_display`,r=sessionStorage.getItem(o);let a="grid";return!0===t&&(a="split"),window.innerWidth<=768?"grid":r||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:o})=>`/app/${t}/${n}/grid/${o}`,getObjectDetailPath(e){const{formFactor:t,appId:n,objectName:o,recordId:r,listViewName:a,_templateType:i}=e;return"JavaScript"===i?`/app/${n}/${o}/view/${r}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${n}/${o}/view/${r}?side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({formFactor:e,appId:t,masterObjectName:n,masterRecordId:o,objectName:r,foreignKey:a})=>`/app/${t}/${n}/${o}/${r}/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,o)=>{"all"===o?(t=e,t.name||(t.name=o)):"lookup"===o&&(n=e,n.name||(n.name=o))})),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+"",o=e.color+"";if(o&&"undefined"!=o){const r="#"===o.charAt(0)?o:"#"+o,a="background:"+r+";color:"+getContrastColor(r)+";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 o="";t&&t.isLookup&&(o="target='_blank'");let r=e.name;return"lookup"==e.type||"master_detail"==e.type?!e.reference_to&&(e.optionsFunction||e._optionsFunction||e.options)?e.isTableField||(r=`\${${e.name}__label}`):r=`\${_display.${e.name}.label}`:r=`\${_display.${e.name} || ${e.name}}`,t.isRelated&&window.innerWidth>=768?`<a href="${n}" ${o} onclick="return false;">\${${r} | raw}</a>`:`<a href="${n}" ${o}>\${${r} | 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 o="";t&&t.isLookup&&(o="target='_blank'");const r=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&&(o="target='_blank'"),!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${o}><%=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}`),!r){const e=Router.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:`${i}`,recordId:`${s}`});a=window.innerWidth>=768?`<a href="${e}" ${o} onclick="return false;">${a}</a>`:`<a href="${e}" ${o}>${a}</a>`}n=a}else{let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}" ${o}><%=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 o=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="${o}"><%=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 o=[];0!=n&&(n=!0);let r=["_id"];e.datasource&&"default"!==e.datasource&&"meteor"!==e.datasource||r.push("space");let a=[],i=[];i=_$1__namespace.isArray(t)?t:_$1__namespace.values(t);for(const e of i)e.name&&(e.expand?o.push(e):e.name.indexOf(".")<0?(!n||"lookup"!=e.type&&"master_detail"!=e.type?r.push(e.alias?`${e.alias}:${e.name}`:e.name):(r.push(`${e.name}`),a.push(`${e.name}`)),_$1.includes(["time","date","datetime","boolean","number","currency"],e.type)&&r.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],r.push(objectFieldName),a.push(objectFieldName)));a=_$1__namespace.uniq(a),r=_$1__namespace.uniq(r);let s="";return o.length>0&&_$1__namespace.each(o,(function(e){s+=`${e.expandInfo.fieldName}__expand{${e.expandInfo.displayName}}`})),a.length>0?`${r.join(",")},${s},_display:_ui{${a.join(",")}}`:_$1.trimEnd(`${r.join(" ")},${s}`,",")}async function getFindQuery(e,t,n,o){let r=o.limit||10,a=`(top: ${r})`;t&&(a=`(filters:["_id", "=", "${t}"], top: ${r})`);let i="data";o&&(o.alias&&(i=o.alias),o.filters&&(a=`(filters:${o.filters})`),o.queryOptions&&(a=`(${o.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===o.count?"":`,count:${e.name}__count(filters:{__filters})`,u=`${await getFieldsTemplate(e,n,o.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:o="",recordId:r="",formFactor:a="LARGE"}){const i=`/api/pageSchema/${e}?app=${n}&objectApiName=${o}&recordId=${r}&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}),o=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:[o],className:"steedos-record-detail-drawer app-popover"},preventDefault:!0}]}}}const getAmisFileReadonlySchema=async(e,t={})=>{const n=e.type,{appId:o,formFactor:r}=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:o,objectName:"cfs_files_filerecord",formFactor:r})}}}: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",frontend_menu_new_object$1="New Object",frontend_menu_view_object$1="View Object",frontend_menu_new_micro_page$1="New Micro Page",frontend_menu_edit_micro_page$1="Edit Micro Page",frontend_menu_new_url$1="New URL link",frontend_menu_edit_url$1="Edit URL link",frontend_menu_add_existing_tabs$1="Add existing Tabs",frontend_menu_edit_tab$1="Edit Tab",frontend_menu_delete_tab$1="Delete Tab",frontend_menu_new_group$1="New Group",frontend_menu_edit_group$1="Edit Group",frontend_menu_delete_group$1="Delete Group",frontend_menu_move_group$1="Move Group",frontend_menu_dialog_move_group$1="Move to another Group",frontend_menu_edit_app$1="Edit App",frontend_menu_dialog_name_placeholder$1="Unique identifier",frontend_menu_tabs_group_name_label$1="Name",frontend_menu_tabs_group_name_placeholder$1="Group Name",frontend_menu_tabs_group_default_open_label$1="Whether to expand by default",frontend_button_delete_confirm_text$1="Are you sure you want to delete it?",frontend_app_launcher_button_new_app$1="+ New App",frontend_app_launcher_dialog_new_app_title$1="New App",frontend_app_launcher_dialog_new_app_code_label$1="App ID",frontend_app_launcher_dialog_new_app_name_label$1="Label",frontend_app_launcher_dialog_new_app_icon_label$1="Icon",frontend_crud_toolbar_quick_search_placeholder$1="Quick Search",frontend_crud_toolbar_quick_search_tooltip_prefix$1="Searchable fields:",frontend_lookup_left_tree_search_organizations$1="Search for organizations",frontend_workflow_instances_applicant_name_prefix$1="Applicant name:",frontend_workflow_instance_submit_date_prefix$1="Submission date:",frontend_workflow_approval_judge_returned$1="Returned",frontend_workflow_approval_judge_terminated$1="Cancelled",frontend_workflow_approval_judge_pending$1="In Progress",frontend_workflow_approval_judge_approved$1="Approved",frontend_workflow_approval_judge_rejected$1="Rejected",frontend_workflow_approval_judge_finished$1="Completed",frontend_workflow_approval_judge_reassigned$1="Reassigned",frontend_workflow_approval_judge_inhand$1="In Progress",frontend_workflow_approval_judge_relocated$1="Relocate",frontend_workflow_approval_judge_readed$1="Read",frontend_workflow_approval_suggestion_readed$1="Read",frontend_workflow_approval_suggestion_completed$1="Done",frontend_workflow_approval_suggestion_agree$1="Agree",frontend_workflow_approval_suggestion_other$1="Select opinions",frontend_workflow_suggestion_placeholder$1="Please fill in your comments.",frontend_workflow_instance_button_sign$1="Sign",frontend_workflow_approval_history$1="Approval History",frontend_workflow_approval_history_read$1="Read",frontend_workflow_approval_history_unprocessed$1="Unprocessed",frontend_workflow_attachment$1="Attachment",frontend_workflow_attachment_upload$1="Upload",frontend_workflow_attachment_upload_success$1="Uploaded successfully",frontend_workflow_related_file$1="Related File",frontend_workflow_judge_option_approved$1="Approved",frontend_workflow_judge_option_rejected$1="Rejected",frontend_workflow_judge_option_readed$1="Readed",frontend_workflow_next_step$1="Next Step",frontend_workflow_next_users$1="To",frontend_workflow_submit_validate_error_title$1="Submission failed",frontend_workflow_submit_validate_error_msg$1="Please fill in the required fields",frontend_workflow_related_records_link_title$1="Related Records",en_us$1={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_menu_new_object:frontend_menu_new_object$1,frontend_menu_view_object:frontend_menu_view_object$1,frontend_menu_new_micro_page:frontend_menu_new_micro_page$1,frontend_menu_edit_micro_page:frontend_menu_edit_micro_page$1,frontend_menu_new_url:frontend_menu_new_url$1,frontend_menu_edit_url:frontend_menu_edit_url$1,frontend_menu_add_existing_tabs:frontend_menu_add_existing_tabs$1,frontend_menu_edit_tab:frontend_menu_edit_tab$1,frontend_menu_delete_tab:frontend_menu_delete_tab$1,frontend_menu_new_group:frontend_menu_new_group$1,frontend_menu_edit_group:frontend_menu_edit_group$1,frontend_menu_delete_group:frontend_menu_delete_group$1,frontend_menu_move_group:frontend_menu_move_group$1,frontend_menu_dialog_move_group:frontend_menu_dialog_move_group$1,frontend_menu_edit_app:frontend_menu_edit_app$1,frontend_menu_dialog_name_placeholder:frontend_menu_dialog_name_placeholder$1,frontend_menu_tabs_group_name_label:frontend_menu_tabs_group_name_label$1,frontend_menu_tabs_group_name_placeholder:frontend_menu_tabs_group_name_placeholder$1,frontend_menu_tabs_group_default_open_label:frontend_menu_tabs_group_default_open_label$1,frontend_button_delete_confirm_text:frontend_button_delete_confirm_text$1,frontend_app_launcher_button_new_app:frontend_app_launcher_button_new_app$1,frontend_app_launcher_dialog_new_app_title:frontend_app_launcher_dialog_new_app_title$1,frontend_app_launcher_dialog_new_app_code_label:frontend_app_launcher_dialog_new_app_code_label$1,frontend_app_launcher_dialog_new_app_name_label:frontend_app_launcher_dialog_new_app_name_label$1,frontend_app_launcher_dialog_new_app_icon_label:frontend_app_launcher_dialog_new_app_icon_label$1,frontend_crud_toolbar_quick_search_placeholder:frontend_crud_toolbar_quick_search_placeholder$1,frontend_crud_toolbar_quick_search_tooltip_prefix:frontend_crud_toolbar_quick_search_tooltip_prefix$1,frontend_lookup_left_tree_search_organizations:frontend_lookup_left_tree_search_organizations$1,frontend_workflow_instances_applicant_name_prefix:frontend_workflow_instances_applicant_name_prefix$1,frontend_workflow_instance_submit_date_prefix:frontend_workflow_instance_submit_date_prefix$1,frontend_workflow_approval_judge_returned:frontend_workflow_approval_judge_returned$1,frontend_workflow_approval_judge_terminated:frontend_workflow_approval_judge_terminated$1,frontend_workflow_approval_judge_pending:frontend_workflow_approval_judge_pending$1,frontend_workflow_approval_judge_approved:frontend_workflow_approval_judge_approved$1,frontend_workflow_approval_judge_rejected:frontend_workflow_approval_judge_rejected$1,frontend_workflow_approval_judge_finished:frontend_workflow_approval_judge_finished$1,frontend_workflow_approval_judge_reassigned:frontend_workflow_approval_judge_reassigned$1,frontend_workflow_approval_judge_inhand:frontend_workflow_approval_judge_inhand$1,frontend_workflow_approval_judge_relocated:frontend_workflow_approval_judge_relocated$1,frontend_workflow_approval_judge_readed:frontend_workflow_approval_judge_readed$1,frontend_workflow_approval_suggestion_readed:frontend_workflow_approval_suggestion_readed$1,frontend_workflow_approval_suggestion_completed:frontend_workflow_approval_suggestion_completed$1,frontend_workflow_approval_suggestion_agree:frontend_workflow_approval_suggestion_agree$1,frontend_workflow_approval_suggestion_other:frontend_workflow_approval_suggestion_other$1,frontend_workflow_suggestion_placeholder:frontend_workflow_suggestion_placeholder$1,frontend_workflow_instance_button_sign:frontend_workflow_instance_button_sign$1,frontend_workflow_approval_history:frontend_workflow_approval_history$1,frontend_workflow_approval_history_read:frontend_workflow_approval_history_read$1,frontend_workflow_approval_history_unprocessed:frontend_workflow_approval_history_unprocessed$1,frontend_workflow_attachment:frontend_workflow_attachment$1,frontend_workflow_attachment_upload:frontend_workflow_attachment_upload$1,frontend_workflow_attachment_upload_success:frontend_workflow_attachment_upload_success$1,frontend_workflow_related_file:frontend_workflow_related_file$1,frontend_workflow_judge_option_approved:frontend_workflow_judge_option_approved$1,frontend_workflow_judge_option_rejected:frontend_workflow_judge_option_rejected$1,frontend_workflow_judge_option_readed:frontend_workflow_judge_option_readed$1,frontend_workflow_next_step:frontend_workflow_next_step$1,frontend_workflow_next_users:frontend_workflow_next_users$1,frontend_workflow_submit_validate_error_title:frontend_workflow_submit_validate_error_title$1,frontend_workflow_submit_validate_error_msg:frontend_workflow_submit_validate_error_msg$1,frontend_workflow_related_records_link_title:frontend_workflow_related_records_link_title$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="不支持分组嵌套",frontend_menu_new_object="新建对象",frontend_menu_view_object="查看对象",frontend_menu_new_micro_page="新建微页面",frontend_menu_edit_micro_page="编辑微页面",frontend_menu_new_url="新建外部链接",frontend_menu_edit_url="编辑外部链接",frontend_menu_add_existing_tabs="添加现有选项卡",frontend_menu_edit_tab="编辑选项卡",frontend_menu_delete_tab="删除选项卡",frontend_menu_new_group="新建分组",frontend_menu_edit_group="编辑分组",frontend_menu_delete_group="删除分组",frontend_menu_move_group="移动分组",frontend_menu_dialog_move_group="移动到指定分组",frontend_menu_edit_app="编辑应用",frontend_menu_dialog_name_placeholder="唯一标识",frontend_menu_tabs_group_name_label="名称",frontend_menu_tabs_group_name_placeholder="分组名称",frontend_menu_tabs_group_default_open_label="是否默认展开",frontend_button_delete_confirm_text="确定要删除吗?",frontend_app_launcher_button_new_app="+ 新建应用",frontend_app_launcher_dialog_new_app_title="新建应用",frontend_app_launcher_dialog_new_app_code_label="应用唯一标识",frontend_app_launcher_dialog_new_app_name_label="显示名称",frontend_app_launcher_dialog_new_app_icon_label="图标",frontend_crud_toolbar_quick_search_placeholder="快捷搜索",frontend_crud_toolbar_quick_search_tooltip_prefix="可搜索字段:",frontend_lookup_left_tree_search_organizations="查找部门",frontend_workflow_instances_applicant_name_prefix="提交人:",frontend_workflow_instance_submit_date_prefix="提交日期:",frontend_workflow_approval_judge_returned="已退回",frontend_workflow_approval_judge_terminated="被取回",frontend_workflow_approval_judge_pending="审核中",frontend_workflow_approval_judge_approved="已核准",frontend_workflow_approval_judge_rejected="已驳回",frontend_workflow_approval_judge_finished="已完成",frontend_workflow_approval_judge_reassigned="转签核",frontend_workflow_approval_judge_inhand="处理中",frontend_workflow_approval_judge_relocated="重定位",frontend_workflow_approval_judge_readed="已阅",frontend_workflow_approval_suggestion_readed="已阅",frontend_workflow_approval_suggestion_completed="已办",frontend_workflow_approval_suggestion_agree="同意",frontend_workflow_approval_suggestion_other="其他常用意见",frontend_workflow_suggestion_placeholder="请填写意见",frontend_workflow_instance_button_sign="签批",frontend_workflow_approval_history="签批历程",frontend_workflow_approval_history_read="已读",frontend_workflow_approval_history_unprocessed="未处理",frontend_workflow_attachment="附件",frontend_workflow_attachment_upload="上传",frontend_workflow_attachment_upload_success="上传成功",frontend_workflow_related_file="相关文件",frontend_workflow_judge_option_approved="核准",frontend_workflow_judge_option_rejected="驳回",frontend_workflow_judge_option_readed="已阅",frontend_workflow_next_step="下一步",frontend_workflow_next_users="处理人",frontend_workflow_submit_validate_error_title="提交失败",frontend_workflow_submit_validate_error_msg="请填写必填字段",frontend_workflow_related_records_link_title="相关台账信息",zh_cn$1={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,frontend_menu_new_object:frontend_menu_new_object,frontend_menu_view_object:frontend_menu_view_object,frontend_menu_new_micro_page:frontend_menu_new_micro_page,frontend_menu_edit_micro_page:frontend_menu_edit_micro_page,frontend_menu_new_url:frontend_menu_new_url,frontend_menu_edit_url:frontend_menu_edit_url,frontend_menu_add_existing_tabs:frontend_menu_add_existing_tabs,frontend_menu_edit_tab:frontend_menu_edit_tab,frontend_menu_delete_tab:frontend_menu_delete_tab,frontend_menu_new_group:frontend_menu_new_group,frontend_menu_edit_group:frontend_menu_edit_group,frontend_menu_delete_group:frontend_menu_delete_group,frontend_menu_move_group:frontend_menu_move_group,frontend_menu_dialog_move_group:frontend_menu_dialog_move_group,frontend_menu_edit_app:frontend_menu_edit_app,frontend_menu_dialog_name_placeholder:frontend_menu_dialog_name_placeholder,frontend_menu_tabs_group_name_label:frontend_menu_tabs_group_name_label,frontend_menu_tabs_group_name_placeholder:frontend_menu_tabs_group_name_placeholder,frontend_menu_tabs_group_default_open_label:frontend_menu_tabs_group_default_open_label,frontend_button_delete_confirm_text:frontend_button_delete_confirm_text,frontend_app_launcher_button_new_app:frontend_app_launcher_button_new_app,frontend_app_launcher_dialog_new_app_title:frontend_app_launcher_dialog_new_app_title,frontend_app_launcher_dialog_new_app_code_label:frontend_app_launcher_dialog_new_app_code_label,frontend_app_launcher_dialog_new_app_name_label:frontend_app_launcher_dialog_new_app_name_label,frontend_app_launcher_dialog_new_app_icon_label:frontend_app_launcher_dialog_new_app_icon_label,frontend_crud_toolbar_quick_search_placeholder:frontend_crud_toolbar_quick_search_placeholder,frontend_crud_toolbar_quick_search_tooltip_prefix:frontend_crud_toolbar_quick_search_tooltip_prefix,frontend_lookup_left_tree_search_organizations:frontend_lookup_left_tree_search_organizations,frontend_workflow_instances_applicant_name_prefix:frontend_workflow_instances_applicant_name_prefix,frontend_workflow_instance_submit_date_prefix:frontend_workflow_instance_submit_date_prefix,frontend_workflow_approval_judge_returned:frontend_workflow_approval_judge_returned,frontend_workflow_approval_judge_terminated:frontend_workflow_approval_judge_terminated,frontend_workflow_approval_judge_pending:frontend_workflow_approval_judge_pending,frontend_workflow_approval_judge_approved:frontend_workflow_approval_judge_approved,frontend_workflow_approval_judge_rejected:frontend_workflow_approval_judge_rejected,frontend_workflow_approval_judge_finished:frontend_workflow_approval_judge_finished,frontend_workflow_approval_judge_reassigned:frontend_workflow_approval_judge_reassigned,frontend_workflow_approval_judge_inhand:frontend_workflow_approval_judge_inhand,frontend_workflow_approval_judge_relocated:frontend_workflow_approval_judge_relocated,frontend_workflow_approval_judge_readed:frontend_workflow_approval_judge_readed,frontend_workflow_approval_suggestion_readed:frontend_workflow_approval_suggestion_readed,frontend_workflow_approval_suggestion_completed:frontend_workflow_approval_suggestion_completed,frontend_workflow_approval_suggestion_agree:frontend_workflow_approval_suggestion_agree,frontend_workflow_approval_suggestion_other:frontend_workflow_approval_suggestion_other,frontend_workflow_suggestion_placeholder:frontend_workflow_suggestion_placeholder,frontend_workflow_instance_button_sign:frontend_workflow_instance_button_sign,frontend_workflow_approval_history:frontend_workflow_approval_history,frontend_workflow_approval_history_read:frontend_workflow_approval_history_read,frontend_workflow_approval_history_unprocessed:frontend_workflow_approval_history_unprocessed,frontend_workflow_attachment:frontend_workflow_attachment,frontend_workflow_attachment_upload:frontend_workflow_attachment_upload,frontend_workflow_attachment_upload_success:frontend_workflow_attachment_upload_success,frontend_workflow_related_file:frontend_workflow_related_file,frontend_workflow_judge_option_approved:frontend_workflow_judge_option_approved,frontend_workflow_judge_option_rejected:frontend_workflow_judge_option_rejected,frontend_workflow_judge_option_readed:frontend_workflow_judge_option_readed,frontend_workflow_next_step:frontend_workflow_next_step,frontend_workflow_next_users:frontend_workflow_next_users,frontend_workflow_submit_validate_error_title:frontend_workflow_submit_validate_error_title,frontend_workflow_submit_validate_error_msg:frontend_workflow_submit_validate_error_msg,frontend_workflow_related_records_link_title:frontend_workflow_related_records_link_title};const resources={en:{translation:en_us$1},"zh-CN":{translation:zh_cn$1}},getUserLanguage$1=()=>{var e=Builder.settings.context?.user?.language||Builder.settings.locale||window.navigator.language;return("en"===e||e.startsWith("en-"))&&(e="en"),e};var locale$1="zh-CN";async function getQuickEditSchema(e,t,n){let o=e.fields[t.name],r=!1;window.amisRequire&&window.amisRequire("amis")?r=window.amisRequire("amis").version[0]>=3&&window.amisRequire("amis").version[2]>=2:window.Amis&&(r=window.Amis.version[0]>=3&&window.Amis.version[2]>=2);const a=n.objectName+"_"+o.name+"_quickEdit";var i={body:[],id:a,className:"steedos-table-quickEdit"};if("avatar"!=o.type&&"image"!=o.type&&"file"!=o.type&&r){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.${o.name} = event.data._display.${o.name};\n doAction({actionType: 'setValue', "args": {"value": selectedItem._display},componentId: "${n.objectName}" + "_display_" + selectedItem._index});\n doAction({actionType: 'setValue', "args": {"value": event.data.${o.name}},componentId: "${n.objectName+"_"+o.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.${o.name}},componentId: "${n.objectName+"_"+o.name+"_"}" + event.data._index});\n }\n `,expression:"${!form_validate_result.error}"},{actionType:"closeDialog",expression:"${!form_validate_result.error}"}]}};i.onEvent=e}if(o.disabled)i=!1;else{var s=Object.assign({},_$1__namespace.omit(n,"buttons"),{defaults:Object.assign({},n.defaults,{formSchema:i})}),l=await convertSFieldToAmisField(o,!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(o.type){case"lookup":case"master_detail":let t=i.body[0].labelField||"label",n=i.body[0].valueField||"value";c=o.multiple?`\n const preData = _.cloneDeep(event.data.__super.${o.name});\n if(preData && event.data.${o.name}.length < preData.length){\n let deletedIndex;\n preData.forEach(function(item,index){\n if(_.indexOf(event.data.${o.name}, item) == -1) _display["${o.name}"].splice(index, 1);\n })\n }else{\n _display["${o.name}"] = [];\n event.data.value.forEach(function(val,index){\n const item = _.find(event.data.selectedItems, { ${n}: val });\n _display["${o.name}"].push(\n {\n "label": item.${t},\n "value": item[event.data.uiSchema.idFieldName],\n "objectName": "${o.reference_to}"\n }\n )\n })\n }\n \n `:`\n if(event.data.value){\n _display["${o.name}"] = {\n "label": event.data.selectedItems.${t},\n "value": event.data.selectedItems[event.data.uiSchema.idFieldName],\n "objectName": "${o.reference_to}"\n }\n }else{\n _display["${o.name}"] = {}\n }\n `,i.body[0].onEvent.change=e(c);break;case"select":c=`\n _display["${o.name}"] = event.data.selectedItems.label;\n `,i.body[0].onEvent.change=e(c);break;case"percent":c=`\n if(event.data.value){\n _display["${o.name}"] = event.data.value.toFixed(${o.scale}) + '%';\n } else {\n _display["${o.name}"] = event.data.value;\n }\n \n `,i.body[0].onEvent.change=e(c);break;case"time":c=`\n _display["${o.name}"] = moment(event.data.value).utc().format('HH:mm');\n `,i.body[0].onEvent.change=e(c);break;case"date":c=`\n _display["${o.name}"] = moment(event.data.value).utc().format('YYYY-MM-DD');\n `,i.body[0].onEvent.change=e(c);break;case"datetime":c=`\n _display["${o.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["${o.name}"] = event.data.value?"√":"";\n `,i.body[0].onEvent.change=e(c);break;case"number":case"currency":c=`\n _display["${o.name}"] = event.data.value && event.data.value.toFixed(${o.scale});\n `,i.body[0].onEvent.change=e(c);break;case"file":var u="";o.multiple?(c=`\n _display["${o.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["${o.name}"], function(file){return file.url == event.data.item.url});\n `):(c=` \n _display["${o.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["${o.name}"].url == event.data.item.url){\n _display["${o.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/${o.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"!=o.type&&"image"!=o.type&&"file"!=o.type&&r&&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"!=o.type||r||(i=!1),"file"==o.type&&o.multiple&&(i=!1),"location"==o.type&&(i=!1),"color"==o.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 o=await getPage({type:"record",appId:t.appId,objectName:n,formFactor:t.formFactor}),r=o?Object.assign({},o.schema,{recordId:`\${${t.idFieldName}}`,data:{...o.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||(r.objectApiName=e.reference_to,r.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:[r],className:"steedos-record-detail-drawer app-popover",id:"u:fc5f055afa8c"},preventDefault:!0}]}}}async function getTableColumns(e,t,n){const o=[];n.isLookup||n.isInputTable||n.enable_tree||o.push({name:"_index",type:"text",width:32,placeholder:""});const r=n.permissions?.allowEdit&&!n.isLookup&&0!=n.enable_inline_edit;for(const a of t){if(a.hidden||a.extra)continue;const t=r?await getQuickEditSchema(e,a,n):r;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 o=!1;o=n.isRelated&&(a.is_name||a.name===n.labelFieldName),window.innerWidth>=768&&o&&(s.onEvent=await getColumnItemOnClick(a,n))}}s&&(t&&(s.quickEdit=t,s.quickEditEnabledOn="${is_system !== true}"),s.id=`${n.objectName}_${a.name}_\${_index}`,o.push(s))}if(!n.isLookup&&!n.isInputTable&&!_$1__namespace.some(o,{name:n.labelFieldName})){const e=Router.getObjectDetailPath({...n,formFactor:n.formFactor,appId:"${appId}",objectName:n.objectName||"${objectName}",recordId:`\${${n.idFieldName}}`});o[0].type="tpl",o[0].tpl=`<a href="${e}">\${${o[0].name}}</a>`}return o}function getMobileLines(e){let t=[],n=[],o=!1,r=!0,a="",i="flex items-center justify-between mb-1";return e.forEach((function(e){var s;o&&t.length<3&&(t.push({type:"wrapper",body:n,size:"none",className:i}),n=[]),r?(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?(r=!0,o=!0):(r=!r,o=r)})),n.length&&t.length<3&&t.push({type:"wrapper",body:n,size:"none",className:i}),t}async function getMobileTableColumns(e,t){const n=[];let o={},r=[];for(const n of e){let e="";n.is_name||n.name===t.labelFieldName?(o=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||r.push({field:n,tpl:e})}const a=getNameTplUrl(o,t),i=getMobileLines(r);let s={name:o.name,label:"split"==t.displayAs?"":o.label,sortable:o.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,o=t?.labelFieldName||"name",r=[];e.forEach((function(e){delete e.quickEdit,delete e.width,e.name===o?n=e:"_index"!==e.name&&r.push(e)}));let a={header:{title:n.tpl},body:r,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:o,hiddenColumnOperation:r}=n;const a=n.defaults,i=a&&a.listSchema||{};let s=[],l="SMALL"===n.formFactor||["split"].indexOf(n.displayAs)>-1;if(o&&(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:!!o,labelTpl:`\${${n.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1,...getDefaultParams$1(n)}}if(!o&&!r){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:!!o,labelTpl:`\${${n.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1,...c,...getDefaultParams$1(n)}}function getScriptForAddUrlPrefixForImgFields(e,t){let n=[],o={};return e.forEach((e=>{_$1__namespace.includes(["image","avatar"],e.type)&&(n.push(e.name),o[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(o)};\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 o of e){const e=await getFieldTpl(o,t);let r="text";e&&(r="tpl"),o.hidden||o.extra||n.push({name:o.name,label:o.label,sortable:o.sortable,width:o.width,type:r,tpl:e,toggled:o.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&&(window.steedosI18next=instance,locale$1=getUserLanguage$1()),instance.use(initReactI18next).init({resources:resources,lng:locale$1,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,o=!!t.auto_open_filter,r="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 = ${o};\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:r,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),o=[{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:o}]}},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:o=!1,keywordsSearchBoxName:r="__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&&!o&&(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["${r}"] = event.data["${r}"];\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:instance.t("frontend_crud_toolbar_quick_search_tooltip_prefix")+a.join(","),placement:"bottom",tooltipTheme:"dark",trigger:"click",className:"SMALL"!==n?"mr-1":"",visible:!!a.length,body:[{type:"search-box",name:r,placeholder:instance.t("frontend_crud_toolbar_quick_search_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:o=!1,hiddenCount:r=!1,headerToolbarItems:a,filterVisible:i=!0,isLookup:s=!1,keywordsSearchBoxName:l}={}){let c,u;window.innerWidth,r||(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,o=n.isLookup,r=[{type:"pagination",maxButtons:10,showPageInput:!1}];return t&&o?r:[{type:"switch-per-page",visibleOn:"${count >= 20}"},...r]}}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 o=e[0]+" "+(e[1]||"");o=n>0?","+o:o,t+=o}else{let o=e.field_name+" "+e.order;o=n>0?","+o:o,t+=o}})),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 o=null;try{if(UISchemaFunction);else{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;o=await fetchAPI(t,{method:"get"})}if(!o&&n)return await new Promise((e=>setTimeout(e,3e3))),getUISchema(e,t,!1);if(!o&&0==n)return;formatUISchemaCache(e,o)}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 o=null;try{const r=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(o=Steedos.authRequest(r,{type:"GET",async:!1}),!o&&n)return wait(2e3),getUISchemaSync$1(e,t,!1);if(!o&&0==n)return;formatUISchemaCache(e,o)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}async function getListSchema(e,t,n,o={}){const r=await getUISchema(t);if(!r)return{};const a=_$1.find(r.list_views,((e,t)=>(n||(n=t),t===n||e._id===n)));if(!a)return{uiSchema:r};if(a.enable_amis_schema&&a.amis_schema){return{uiSchema:r,isCustomAmisSchema:!0,amisSchema:_$1.isString(a.amis_schema)?JSON.parse(a.amis_schema):a.amis_schema}}let i=getListViewColumns(a,o.formFactor),s=getListViewSort(a),l=getListViewFilter(a),c=a&&a._filters;if("calendar"===a.type){return{uiSchema:r,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:c,sort:s,...a.options}}}const u=o.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})),o.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:r,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:i,extraColumns:a.extra_columns,filters:l,filtersFunction:c,sort:s,ctx:o,requestAdaptor:o.requestAdaptor||a.requestAdaptor,adaptor:o.adaptor||a.adaptor,headerToolbarItems:o.headerToolbarItems,filterVisible:o.filterVisible,rowClassNameExpr:o.rowClassNameExpr,crud:o.crud||a.crud,crudDataFilter:o.crudDataFilter||a.crudDataFilter,onCrudDataFilter:o.onCrudDataFilter}}}async function getSource(e,t){const n=t.objectName;let o=[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],r=o.filter((function(e){return"children"!==e.name})),a=!e.multiple&&e.auto_fill_mapping;a&&a.length&&a.forEach((function(e){"children"!==e.from&&o.push({name:e.from}),r.push({name:e.from})}));const i=await getFindQuery({name:n},null,o,{expand:!1,alias:"options",filters:"{__filters}"});i.query=i.query.replace(/,count\:.+/,"}");const s=await getFindQuery({name:n},null,r,{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 o=[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],r=!e.multiple&&e.auto_fill_mapping;r&&r.length&&r.forEach((function(e){"children"!==e.from&&o.push({name:e.from})}));const a=await getFindQuery({name:"{__object_name}"},null,o,{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 o={type:getAmisStaticFieldType("tree-select",t)};if(t)o.tpl=await getLookupTpl(e,n);else{const t=await getUISchema(n.objectName);n.sort=getRefListViewSort(t),Object.assign(o,{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(o,{joinValues:!1}),"boolean"!=typeof o.searchable&&(o.searchable=!0);const r=e.onEvent;r&&(o.onEvent=r)}return o}"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 o=null,r=e.reference_to_field;return r||(r=t.idFieldName||"_id"),o="_id"===r?{name:"_id",label:"ID",type:"text",toggled:!1}:t.fields[r]||{name:r},{objectName:n,valueField:o,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:instance.t("frontend_lookup_left_tree_search_organizations")},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 o=await getReferenceTo(e);if(!o)return;const r=await getUISchema(o.objectName);n.idFieldName=r.idFieldName,n.objectName=r.name;const a=!1!==e.show_left_filter;let i=[];const s=[];let l=[];const c=window.innerWidth<768;let u=getLookupListView(r),d=u&&u.name;u&&u.columns?(_$1__namespace.each(u.columns,(function(e){_$1__namespace.isString(e)&&r.fields[e]?l.push(r.fields[e]):_$1__namespace.isObject(e)&&r.fields[e.field]&&l.push(Object.assign({},r.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(r.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(r.fields[e.from])})),_$1__namespace.each(r.fields,(function(e){isFieldQuickSearchable(e,r.NAME_FIELD_KEY)&&s.push(e.name)}));const p={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField};_$1__namespace.each(i,(e=>{e.hidden||(p[e.name]=e)}));let m=getListViewFilter(u),_=u&&u._filters,h="";u&&(h=getListViewSort(u));const g=await getApi(r,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__${r.name}`;const y=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 : "${h}";\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 = [["${o.valueField.name}", "=", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [["${o.valueField.name}", "=", fieldValue]];\n }\n }\n\n let filterFormValues = {};\n if (selfData.op !== 'loadOptions'){\n filterFormValues = ${_$1__namespace.isObject(y)?JSON.stringify(y):'"'+y+'"'} || {};\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"===o?.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 = ${_};\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 = ${r.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 = ${r.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, ["${o.labelField.name}", "${o.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(r.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 E=500;r.paging&&!1===r.paging.enabled&&(E=1e3);let b=null;{let t=r.NAME_FIELD_KEY||"name";"organizations"===r.name&&(t="name"),b=await getTableSchema$1(r,i,{labelFieldName:t,top:E,isLookup:!0,enable_tree:r.enable_tree,...n}),b.affixHeader=!1,b.headerToolbar=getObjectHeaderToolbar(r,l,n.formFactor,{isLookup:!0,keywordsSearchBoxName:v}),"space_users"===o.objectName&&"user"===e.reference_to_field&&a&&(b.headerToolbar.push(getLookupSapceUserTreeSchema(c)),b.className=b.className||" steedos-select-user");const s=r.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(r,{appId:n.appId,objectName:r.name,formFactor:n.formFactor});e.align="right",b.headerToolbar.splice(b.headerToolbar.length-1,0,e)}b.footerToolbar=r.enable_tree?[]:getObjectFooterToolbar(r,n.formFactor,{isLookup:!0}),!1!==n.filterVisible&&(b.filter=await getObjectFilter(r,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:r.name,uiSchema:r,listName:d,isLookup:!0,__lookupField:{name:e.name,reference_to:r.name,reference_to_field:e.reference_to_field,filters:e.filters,filtersFunction:e.filtersFunction,_filtersFunction:e._filtersFunction,inFilterForm:n.inFilterForm,listviewFilter:m,listviewFiltersFunction:_}}),b.onEvent||(b.onEvent={}),b.onEvent[`@data.changed.${r.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"===o.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 w={type:getAmisStaticFieldType("picker",t),className:n.className||"",modalTitle:instance.t("frontend_form_please_select")+" "+r.label,labelField:o.labelField.name,valueField:o.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&&(w.multiple=!0,w.extractValue=!0),t&&(w.tpl=await getLookupTpl(e,n)),w}async function lookupToAmisSelect(e,t,n){let o=await getReferenceTo(e);const r=window.innerWidth<=768,a=o&&o.valueField?.name||"_id";let i,s;const l=o&&await getUISchema(o.objectName);if(o){let t=[Object.assign({},o.labelField,{alias:"label"}),Object.assign({},o.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:o.objectName},null,t,{expand:!1,alias:"defaultValueOptions",filters:"{__options_filters}",count:!1}),i=await getApi({name:o.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 = [["${o?.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"===o?.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 `,o&&o.labelField.name,o&&o.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 r&&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,o){const r=await getFindQuery(e,t,n,o);return{method:"post",url:getApi$2(),data:r,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getAutoFill(e,t){let n=e.auto_fill_mapping;if(n&&n.length){let o={};return e.multiple?n.forEach((function(e){_$1__namespace.includes(["lookup","master_detail","select"],t.fields[e.from].type)?o[e.to]=`\${items | pick:${e.from}}`:o[e.to]=`\${items | pick:${e.from} | join}`})):n.forEach((function(e){o[e.to]=`\${${e.from}}`})),o}}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 o=await getReferenceTo(e);if(!o)return await lookupToAmisSelect(e,t,n);if("space_users"===o.objectName&&"user"===e.reference_to_field&&(n=Object.assign({},n,{onlyDisplayLookLabel:!0})).idsDependOn)return await lookupToAmisIdsPicker(e,t,n);const r=await getUISchema(o.objectName);let a,i=_$1__namespace.isBoolean(e.enable_enhanced_lookup)?e.enable_enhanced_lookup:r.enable_enhanced_lookup;getComparableAmisVersion()>=3.6&&!i&&r.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):r.enable_tree?await lookupToAmisTreeSelect(e,t,Object.assign({},n,{labelField:o.labelField?.name||"name",valueField:o.valueField?.name||"_id",objectName:o.objectName})):await lookupToAmisSelect(e,t,n);let s=r.pages&&r.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,r);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 o=await getReferenceTo(e);if(!o)return;const r=await getUISchema(o.objectName),{idsDependOn:a}=n,i={[o.labelField.name]:o.labelField,[o.valueField.name]:o.valueField},s=[o.labelField],l=await getApi(r,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(r),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 = [["${o.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${o.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(["${o.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(r,s,{labelFieldName:r.NAME_FIELD_KEY,top:1e3,isLookup:!0,...n}),d.affixHeader=!1);const f={type:getAmisStaticFieldType("picker",t),labelField:o.labelField.name,valueField:o.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),o=_$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=o,n}function getGridFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=_$1__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=o,n}function getTabledFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),o=_$1__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=o,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 o=window.innerWidth<=768;if(_$1__namespace.includes(OMIT_FIELDS,e.name)&&1!=n.showSystemFields)return;const r={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}";o&&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,r);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,o)=>{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 o=[t,n];if(window.coordtransform)if("bd09"===l.toLowerCase()){const e=window.coordtransform.bd09togcj02(t,n);o=window.coordtransform.gcj02towgs84(e[0],e[1])}else"gcj02"===l.toLowerCase()&&(o=window.coordtransform.gcj02towgs84(t,n));return e.wgs84={type:"Point",coordinates:o},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 o of e.subFields){const r=o.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,""),i=await convertSFieldToAmisField(Object.assign({},o,{name:r,isTableField:!0}),t,n);if(i){delete i.name,delete i.label;const e={name:r,label:o.label,quickEdit:!t&&i};["lookup","boolean","toggle"].indexOf(o.type)>-1&&(e.type=i.type,e.tpl=i.tpl),a.columns.push(Object.assign({},e,o.amis,{name:r}))}}}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 o of e.subFields){let r=o.name.replace(`${e.name}.$.`,"").replace(`${e.name}.`,"");"grid"===o.type?o=await getGridFieldSubFields(o,n.__formFields):"table"===o.type?o=await getTabledFieldSubFields(o,n.__formFields):t&&(r=`${e.name}.${r}`);const i=await convertSFieldToAmisField(Object.assign({},o,{name:r}),t,n);i&&(delete i.name,delete i.label,i.className=i.className.replace("border-b",""),a.items.push(Object.assign({},i,{label:o.label},o.amis,{name:r})))}}}if(!_$1__namespace.isEmpty(a)){const o=a.className;e.is_wide||"group"===a.type?a.className=o?"col-span-2 m-0 "+o:"col-span-2 m-0":a.className=o?"m-0 "+o:"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(r.required)&&r.required.startsWith("{{")&&(r.requiredOn=`${r.required.substring(2,r.required.length-2).replace(/formData./g,"data.")}`,delete r.required),"group"===a.type?(a.body[0]=Object.assign({},r,a.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),a):(i="steedos-field"==a.type?Object.assign({},r,a,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},{name:r.name}):Object.assign({},r,a,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:r.name}),t&&"file"==e.type&&(i.name=""),i)}}async function getFieldSearchable(e,t,n){n||(n={});let o=e;"grid"===o.type?o=await getGridFieldSubFields(e,t):"object"===e.type&&(o=await getObjectFieldSubFields(e,t));let r="__searchable__";if(o.name.indexOf(".")<0){let e=_$1.cloneDeep(o);_$1.includes(["textarea","html","code","autonumber"],o.type)&&(e.type="text"),_$1.includes(["formula","summary"],o.type)&&(e.type=o.data_type,e.precision=o.precision,e.scale=o.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,r=`${r}between__`),"date"===e.type&&(e.type="input-date-range",e.is_wide=!0,r=`${r}between__`),"datetime"===e.type&&(e.type="input-datetime-range",e.is_wide=!0,r=`${r}between__`),"time"===e.type&&(e.type="input-time-range",e.is_wide=!0,r=`${r}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:r,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)}"undefined"!=typeof window&&(window.getFieldSearchable=getFieldSearchable),"undefined"!=typeof window&&(window.isFieldTypeSearchable=isFieldTypeSearchable);var asc$1="Asc",cancel$1="Cancel",clear$1="Clear",add$1="New",confirm$1="Confirm",deleteConfirm$1="Are your sure to delete?",deleteFailed$1="Delete failed",desc$1="Desc",fetchFailed$1="Fetch api failed",link$1="Link",loading$1="Loading",networkError$1="Network error or missing CORS configuration",noResult$1="No Result",reset$1="Reset",saveFailed$1="Save failed",saveSuccess$1="Saved successfully",search$1="Search",searchHistory$1="Search History",searchResult$1="Search result",sort$1="Sort",stop$1="Stop",validateFailed$1="Validate failed",reload$1="Reload",rotate$1="Rotate",TimeNow$1="Now",en_us={"Action.countDown":"Wait for ${timeLeft}s","Alert.info":"System Info","App.home":"Home","App.navigation":"Navigation",asc:asc$1,"Calendar.datepicker":"Date Picker","Calendar.yearmonth":"YYYY MM","Calendar.year":"YYYY","Calendar.begin":"begin","Calendar.end":"end","Calendar.beginAndEnd":"b/e","Calendar.toast":"Out of date range","Calendar.startPick":"Select start time","Calendar.endPick":"Select end time",cancel:cancel$1,"Card.dragTip":"Drag top button to sort","Card.toggleDrag":"Toggle drag to sort","City.street":"Enter street info",clear:clear$1,"ColorPicker.placeholder":"Select color","SubForm.add":"New",add:add$1,"Combo.dragDropSort":"Drag to sort","Combo.invalidData":"invalid data, please remove","Combo.maxLength":"Maximum item ia {{MaxLength}}}. Please delete some","Combo.minLength":"A least {{minLength}} item. Please add more","Combo.type":"Type",confirm:confirm$1,"Copyable.tip":"Copy","CRUD.exportCSV":"Export CSV","CRUD.exportExcel":"Export Excel","CRUD.fetchFailed":"Fetch failed","CRUD.filter":"Filter","CRUD.selected":"selected {{total}} items","CRUD.invalidArray":"data.items must be an array","CRUD.invalidData":"data is empty","CRUD.loadMore":"Load more","CRUD.perPage":"Per page","CRUD.stat":"{{page}} of {{lastPage}} total: {{total}}.","CRUD.paginationGoText":"Go to","CRUD.paginationPageText":"page","PaginationWrapper.placeholder":"please config body","Pagination.select":"{{count}} items/page","Pagination.goto":"goto","Pagination.go":"GO","Pagination.totalPage":"total {{lastPage}} pages","Pagination.totalCount":"total {{total}} items","Date.titleYear":"select year","Date.titleMonth":"select month and year","Date.titleDate":"select month, year and day","Date.titleTime":"select time","Date.daysago":"{{days}} day(s) ago","Date.dayslater":"{{days}} day(s) later","Date.endOfMonth":"last day of the month","Date.endOfLastMonth":"last day of last month","Date.endOfWeek":"Saturday","Date.hoursago":"{{hours}} hour(s) ago","Date.hourslater":"{{hours}} hour(s) later","Date.invalid":"Invalid date","Date.monday":"Monday","Date.monthsago":"{{months}} month(s) ago","Date.monthslater":"{{months}} month(s) later","Date.now":"Now","Date.placeholder":"Select Date","Date.quartersago":"{{quarters}} quarter(s) ago","Date.quarterslater":"{{quarters}} quarter(s) later","Date.startOfLastMonth":"First day of the last month","Date.startOfLastQuarter":"First day of the last quarter","Date.startOfMonth":"First day of the month","Date.startOfQuarter":"First day of the quarter","Date.today":"Today","Date.tomorrow":"Tomorrow","Date.weeksago":"{{weeks}} week(s) ago","Date.weekslater":"{{weeks}} week(s) later","Date.yesterday":"Yesterday","dateformat.year":"YYYY","DateRange.daysago":"Last {{days}} day(s)","DateRange.dayslater":"Within {{days}} day(s)","DateRange.weeksago":"Last {{weeks}} week(s)","DateRange.weekslater":"Within {{weeks}} week(s)","DateRange.monthsago":"Last {{months}} month(s)","DateRange.monthslater":"Within {{months}} month(s)","DateRange.quartersago":"Last {{quarters}} quarter(s)","DateRange.quarterslater":"Within {{quarters}} quarter(s)","DateRange.yearsago":"Last {{years}} year(s)","DateRange.yearslater":"Within {{years}} year(s)","DateRange.hoursago":"Last {{hours}} hour(s)","DateRange.hourslater":"Within {{hours}} hour(s)","DateRange.1dayago":"1 day ago","DateRange.1daysago":"1 day ago","DateRange.7daysago":"7 days ago","DateRange.30daysago":"30 days ago","DateRange.90daysago":"90 days ago","DateRange.lastMonth":"Last month","DateRange.lastWeek":"Last week","DateRange.lastQuarter":"Last quarter","DateRange.placeholder":"Select a Date range","YearRange.placeholder":"Select a Year range","DateRange.thisWeek":"This Week","DateRange.thisMonth":"This month","DateRange.thisQuarter":"This quarter","DateRange.thisYear":"This year","DateRange.lastYear":"Last year","DateRange.valueConcat":" to ","DateTime.placeholder":"Select Datetime",delete:"Delete",deleteConfirm:deleteConfirm$1,deleteFailed:deleteFailed$1,desc:desc$1,"Dialog.close":"Close","Dialog.title":"Title","Embed.invalidRoot":"Invalid root selector","Embed.downloading":"Start downloading","Excel.placeholder":"Drag 'n' drop excel here, or click to select","Excel.parsed":"{{filename}} Parsed",fetchFailed:fetchFailed$1,"File.continueAdd":"Continue add","File.downloadTpl":"Download template","File.dragDrop":"Drag 'n' drop some files here or","File.clickUpload":"click here to upload","File.helpText":"Help documentation","File.errorRetry":"File upload failed, please try again","File.failed":"Failed files.","File.invalidType":"{{files}} does not match type `{{accept}}`","File.maxLength":"The maximum limit is {{maxLength}}","File.maxSize":"{{filename}} you selected exceeds the maximum limit of {{maxsize}} (in bytes)","File.pause":"Pause uplaod","File.repick":"Repick","File.result":"Successfully uploaded {{uploaded}} files, failed to upload {{failed}} files","File.retry":"Retry","File.sizeLimit":"The maximum file size is {{maxSize}}","File.start":"Start upload","File.upload":"Upload","Image.upload":"Upload image","File.uploadFailed":"return data of udpload api is empty","File.uploading":"Uploading","FormItem.autoFillLoadFailed":"return data of autoUpdate api is error","FormItem.autoFillSuggest":"Reference data entry","Form.loadOptionsFailed":"Failed to load options because: {{reason}}","Form.submit":"Submit","Form.title":"Form","Form.unique":"Current value is not unique","Form.validateFailed":"Form input validation failed","Form.nestedError":"Form cannot appear as a descendant of form","Image.configError":"Can only set one of crop or multiple","Image.crop":"Crop image","Image.dragDrop":"Drag 'n' drop some photos here","Image.height":"height: {{height}}px","Image.limitMax":"Minimum image size is {{info}}","Image.limitMin":"Maximum image size is {{info}}","Image.limitRatio":"Please upload image with the size ratio of {{ration}}","Image.pasteTip":"You can paste image from the clipboard","Image.placeholder":"Click to select image or drag into this area","Image.size":"size: ({{width}}px x {{height}}px)","Image.sizeNotEqual":"The image you selected does not meet the size requirements {{info}}","Image.width":"width: {{width}}px","Image.zoomIn":"Zoom In","Log.mustHaveSource":"Must have source in config","Log.showLineNumber":"Display line number","Log.notShowLineNumber":"Hide line number","Log.expand":"Expand Operation","Log.collapse":"Collapse Operation",link:link$1,loading:loading$1,"LocationPicker.placeholder":"Pick location","Month.placeholder":"Select a month","Nav.sourceError":"Fetch link error",networkError:networkError$1,noResult:noResult$1,"NumberInput.placeholder":"Please enter a number","Options.addPlaceholder":"Please enter a name","Options.deleteAPI":"Must have deleteAPI","Options.editLabel":"Edit {{label}}","Options.label":"option","Options.createFailed":"create failed, please check","placeholder.empty":"<Empty>","placeholder.enter":"Enter","placeholder.noData":"No data","placeholder.noOption":"No option","placeholder.selectData":"Select data","Quarter.placeholder":"Select a quarter","Repeat.pre":"Per",reset:reset$1,saveFailed:saveFailed$1,saveSuccess:saveSuccess$1,search:search$1,searchHistory:searchHistory$1,searchResult:searchResult$1,"Checkboxes.selectAll":"Select/Deselect All","Select.checkAll":"Check all","Select.clear":"Clear","Select.upload":"Re upload","Select.clearAll":"Clear all","Select.createLabel":"New option","Select.placeholder":"Select","Select.searchPromptText":"Input to search",sort:sort$1,stop:stop$1,"SubForm.button":"Config","SubForm.editDetail":"Edit Detail","System.error":"System error","System.notify":"System notify","System.copy":"Content copied","System.requestError":"Request error: ","System.requestErrorStatus":"Request error, status code: ","Table.addRow":"Add row","Table.copyRow":"Copy row","Table.columnsVisibility":"Click to control columns visibility","Table.deleteRow":"Delete current row","Table.discard":"Discard","Table.dragTip":"Drag the button on the left to sort","Table.editing":"You should finished editing","Table.editRow":"Edit current row","Table.modified":"There are {{modified}} records have been modified, you can:","Table.moved":"There are {{moved}} records changed the order, you can:","Table.operation":"Operation","Table.playload":"Must have playload","Table.startSort":"Click to start sorting","Table.valueField":"Must have valueField","Table.index":"Index","Table.toggleColumn":"Display columns","Table.searchFields":"Set query fields","Tag.placeholder":"No tag yet","Tag.tip":"Recently used tag","Text.add":"New {{label}}","Time.placeholder":"Select Time","Transfer.configError":"Config error","Transfer.refreshIcon":"Click to refresh","Transfer.searchKeyword":"Enter keywords","Transfer.available":"Available","Transfer.selectd":"Selected","Transfer.selectFromLeft":"Select from the left","Tree.addChild":"Add child","Tree.addRoot":"Add root node","Tree.editNode":"Edit this node","Tree.removeNode":"Remove this node","Tree.root":"Root","validate.equals":"value must be $1","validate.equalsField":"value must be $1","validate.gt":"Please enter a value greater than $1","validate.isAlpha":"Please enter letters","validate.isAlphanumeric":"Please enter letters or numbers","validate.isEmail":"Email format is incorrect","validate.isFloat":"Please enter a floating point value","validate.isId":"invalid ID Card number","validate.isInt":"Please enter an integer number","validate.isJson":"invalid JSON format.","validate.isLength":"Please make sure the length of contents is $1","validate.isNumeric":"Please enter a number","validate.isPhoneNumber":"invalid phone number","validate.isRequired":"This is required","validate.isTelNumber":"invalid telephone number","validate.isUrl":"Incorrect URL format","validate.isUrlPath":"You can only enter letters, numbers, `-` and`_` .","validate.isWords":"Please enter word","validate.isZipcode":"invalid postal address","validate.lt":"Please enter a value less than $1","validate.matchRegexp":"The format is not correct. Please enter the content with the rule `${1| raw}`.","validate.maximum":"The input value exceeds the maximum value of $1","validate.maxLength":"Please control the content length, do not enter more than $1 letters","validate.minimum":"The input value is lower than the minimum value of $1","validate.minLength":"Please enter more, at least $1 characters.","validate.notEmptyString":"Please do not enter all blank characters",validateFailed:validateFailed$1,"Wizard.configError":"Config error","Wizard.finish":"Finish","Wizard.next":"Next","Wizard.prev":"Prev","Wizard.saveAndNext":"Save & Next","year-to-year":"{{from}} - {{to}}","Year.placeholder":"Select a Year",reload:reload$1,rotate:rotate$1,"Editor.fullscreen":"full screen","Editor.exitFullscreen":"exit fullscreen mode","Condition.not":"not","Condition.and":"and","Condition.or":"or","Condition.add_cond":"add condition","Condition.add_cond_group":"add condition group","Condition.delete_cond_group":"delete condition group","Condition.equal":"equal","Condition.not_equal":"not equal","Condition.less":"less","Condition.less_or_equal":"less or equal","Condition.greater":"greater","Condition.greater_or_equal":"greater or equal","Condition.between":"between","Condition.not_between":"not between","Condition.is_empty":"empty","Condition.is_not_empty":"not empty","Condition.like":"contains","Condition.not_like":"not contains","Condition.starts_with":"starts with","Condition.ends_with":"ends with","Condition.select_equals":"equals","Condition.select_not_equals":"not equal","Condition.select_any_in":"contains","Condition.select_not_any_in":"not contains","Condition.placeholder":"Please enter text","Condition.cond_placeholder":"select condition","Condition.field_placeholder":"select field","Condition.blank":"blank","Condition.expression":"expression","Condition.formula_placeholder":"Please enter a formula","Condition.fun_error":"Function is undefined","InputTable.uniqueError":"Column `{{label}}` unique validate failed","Timeline.collapseText":"Unfold","Timeline.expandText":"Fold","FormulaEditor.btnLabel":"Formula Edit","FormulaEditor.title":"Formula Editor","FormulaEditor.variable":"Variable","FormulaEditor.function":"Function","FormulaEditor.invalidData":"invalid data, position or reason is {{err}}","pullRefresh.pullingText":"Pull down to refresh...","pullRefresh.loosingText":"Release to refresh...","pullRefresh.loadingText":"Loading...","pullRefresh.successText":"Loading success","Picker.placeholder":"Click icon on the right","UserSelect.edit":"edit","UserSelect.save":"preservation","UserSelect.resultSort":"Select result sort","UserSelect.selected":"Selected","UserSelect.clear":"empty","SchemaType.string":"String","SchemaType.number":"Number","SchemaType.integer":"integer","SchemaType.object":"Object","SchemaType.array":"Array","SchemaType.boolean":"Boolean","SchemaType.any":"Any","SchemaType.null":"Null","JSONSchema.title":"Title","JSONSchema.default":"Default","JSONSchema.description":"Description","JSONSchema.key":"Key","JSONSchema.array_items":"Items",TimeNow:TimeNow$1},asc="正序",Schedule="日程",Time="时间",Content="内容",cancel="取消",clear="清空",add="新增",confirm="确认",deleteConfirm="确认要删除?",deleteFailed="删除失败",desc="降序",fetchFailed="初始化失败",link="链接",loading="加载中",networkError="网络错误,可能是未配置跨域 CORS",noResult="未找到任何结果",reset="重置",saveFailed="保存失败",saveSuccess="保存成功",search="搜索",searchHistory="搜索历史",searchResult="搜索结果",stop="停止",sort="排序",validateFailed="表单验证失败",reload="刷新",rotate="旋转",collapse="展开",expand="折叠",Required="必填",TimeNow="此刻",zh_cn={"Action.countDown":"请等待 ${timeLeft} 秒","Alert.info":"系统消息","App.home":"首页","App.navigation":"导航",asc:asc,"Calendar.datepicker":"日期选择","Calendar.yearmonth":"YYYY年MM月","Calendar.year":"YYYY年","Calendar.begin":"开始","Calendar.end":"结束","Calendar.beginAndEnd":"始/终","Calendar.toast":"超出日期范围","Calendar.startPick":"开始时间","Calendar.endPick":"结束时间",Schedule:Schedule,Time:Time,Content:Content,cancel:cancel,"Card.dragTip":"请拖动顶部的按钮进行排序","Card.toggleDrag":"对卡片进行排序操作","City.street":"请输入街道信息",clear:clear,"ColorPicker.placeholder":"请选择颜色","SubForm.add":"新增一项",add:add,"Combo.dragDropSort":"拖拽排序","Combo.invalidData":"数值格式不正确","Combo.maxLength":"组合表单超出{{maxLength}}个,请删除","Combo.minLength":"组合表单数量不足{{minLength}}个,请添加更多","Combo.type":"类型",confirm:confirm,"Copyable.tip":"点击复制","CRUD.exportCSV":"导出 CSV","CRUD.exportExcel":"导出 Excel","CRUD.fetchFailed":"获取失败","CRUD.filter":"筛选","CRUD.selected":"已选{{total}}条:","CRUD.invalidArray":"data.items 必须是数组","CRUD.invalidData":"返回数据格式不正确,data 没有数据","CRUD.loadMore":"加载更多","CRUD.perPage":"每页显示","CRUD.stat":"{{page}}/{{lastPage}} 总共:{{total}} 项","CRUD.paginationGoText":"前往","CRUD.paginationPageText":"页","PaginationWrapper.placeholder":"请配置内容","Pagination.select":"{{count}} 条/页","Pagination.goto":"跳转至","Pagination.go":"跳转","Pagination.totalPage":"共 {{lastPage}} 页","Pagination.totalCount":"共 {{total}} 条","Date.titleYear":"选择年","Date.titleMonth":"选择年月","Date.titleDate":"选择年月日","Date.titleTime":"选择时间","Date.daysago":"{{days}}天前","Date.dayslater":"{{days}}天后","Date.endOfMonth":"本月最后一天","Date.endOfWeek":"周日","Date.endOfLastMonth":"上月最后一天","Date.hoursago":"{{hours}}小时前","Date.hourslater":"{{hours}}小时后","Date.invalid":"日期无效","Date.monday":"本周一","Date.monthsago":"{{months}}月前","Date.monthslater":"{{months}}月后","Date.now":"现在","Date.placeholder":"请选择日期","Date.quartersago":"{{quarters}}季度前","Date.quarterslater":"{{quarters}}季度后","Date.startOfLastMonth":"上个月第一天","Date.startOfLastQuarter":"上个季度第一天","Date.startOfMonth":"本月第一天","Date.startOfQuarter":"本季度第一天","Date.today":"今天","Date.tomorrow":"明天","Date.weeksago":"{{weeks}}周前","Date.weekslater":"{{weeks}}周后","Date.yesterday":"昨天","dateformat.year":"YYYY年","DateRange.daysago":"最近{{days}}天","DateRange.dayslater":"{{days}}天以内","DateRange.weeksago":"最近{{weeks}}周","DateRange.weekslater":"{{weeks}}周以内","DateRange.monthsago":"最近{{months}}月","DateRange.monthslater":"{{months}}月以内","DateRange.quartersago":"最近{{quarters}}季度","DateRange.quarterslater":"{{quarters}}季度以内","DateRange.yearsago":"最近{{years}}年","DateRange.yearslater":"{{years}}年以内","DateRange.hoursago":"最近{{hours}}小时","DateRange.hourslater":"{{hours}}小时以内","DateRange.1daysago":"最近1天","DateRange.1dayago":"最近1天","DateRange.7daysago":"最近7天","DateRange.30daysago":"最近30天","DateRange.90daysago":"最近90天","DateRange.lastWeek":"上周","DateRange.lastMonth":"上个月","DateRange.lastQuarter":"上个季度","DateRange.placeholder":"请选择日期范围","DateRange.thisWeek":"这个周","DateRange.thisMonth":"这个月","DateRange.thisQuarter":"这个季度","DateRange.valueConcat":" 至 ","DateTime.placeholder":"请选择日期以及时间","MonthRange.placeholder":"请选择月份范围","QuarterRange.placeholder":"请选择季度范围","YearRange.placeholder":"请选择年份范围","DateRange.thisYear":"今年","DateRange.lastYear":"去年",delete:"删除",deleteConfirm:deleteConfirm,deleteFailed:deleteFailed,desc:desc,"Dialog.close":"关闭","Dialog.title":"弹框","Embed.invalidRoot":"选择器不对,页面上没有此元素","Embed.downloading":"文件即将开始下载","Excel.placeholder":"拖拽 Excel 到这,或点击上传","Excel.parsed":"已解析 {{filename}}",fetchFailed:fetchFailed,"File.continueAdd":"继续添加","File.downloadTpl":"下载模板","File.dragDrop":"将文件拖到此处,或","File.clickUpload":"点击上传","File.helpText":"帮助文档","File.errorRetry":"文件上传失败请重试","File.failed":"失败文件","File.invalidType":"{{files}} 不符合类型的 {{accept}} 的设定,请仔细检查","File.maxLength":"最多上传 {{maxLength}} 个文件","File.maxSize":"{{filename}} 大小为 {{actualSize}} 超出了最大为 {{maxSize}} (字节)的限制","File.pause":"暂停上传","File.repick":"重新选择","File.result":"已成功上传 {{uploaded}} 个文件,{{failed}} 个文件上传失败,","File.retry":"重试上传","File.sizeLimit":"文件大小不超过 {{maxSize}}","File.start":"开始上传","File.upload":"文件上传","Image.upload":"图片上传","File.uploadFailed":"接口返回错误,请仔细检查","File.uploading":"上传中...","FormItem.autoFillLoadFailed":"接口返回错误,请仔细检查","FormItem.autoFillSuggest":"参照录入数据","Form.loadOptionsFailed":"加载选项失败,原因:{{reason}}","Form.submit":"提交","Form.title":"表单","Form.unique":"当前值不唯一","Form.validateFailed":"依赖的部分字段没有通过验证","Form.nestedError":"表单不要直接嵌套在表单下面","Image.configError":"图片多选配置和裁剪配置只能设置一个","Image.crop":"裁剪图片","Image.dragDrop":"将图片拖拽到此处","Image.height":"高度 {{height}}px","Image.limitRatio":"请上传尺寸比率为 {{ratio}} 的图片","Image.pasteTip":"可以粘贴剪切板中的图片","Image.placeholder":"点击选择图片或拖拽图片到这里","Image.size":"尺寸({{width}} x {{height}})","Image.sizeMax":"请上传不要大于{{info}}的图片","Image.sizeMin":"请上传不要小于{{info}}的图片","Image.sizeNotEqual":"请上传{{info}}的图片","Image.width":"宽度 {{width}}px","Image.zoomIn":"查看大图","Image.limitMax":"上传图片大于{{info}},请检查图片尺寸","Image.limitMin":"上传图片小于{{info}},请检查图片尺寸","Log.mustHaveSource":"需要配置 Source","Log.showLineNumber":"显示行数","Log.notShowLineNumber":"不现实行数","Log.expand":"展开工具栏","Log.collapse":"收起工具栏",link:link,loading:loading,"LocationPicker.placeholder":"请选择位置","Month.placeholder":"请选择月份","Nav.sourceError":"获取链接错误",networkError:networkError,noResult:noResult,"NumberInput.placeholder":"请输入数字","Options.addPlaceholder":"请输入名称","Options.deleteAPI":"必须设置 deleteAPI","Options.editLabel":"编辑{{label}}","Options.label":"选项","Options.createFailed":"新增失败,请仔细检查","placeholder.empty":"<空>","placeholder.enter":"请输入","placeholder.noData":"暂无数据","placeholder.noOption":"暂无选项","placeholder.selectData":"请先选择数据","Quarter.placeholder":"请选择季度","Repeat.pre":"每",reset:reset,saveFailed:saveFailed,saveSuccess:saveSuccess,search:search,searchHistory:searchHistory,searchResult:searchResult,stop:stop,"Checkboxes.selectAll":"全选/不选","Select.checkAll":"全选","Select.clear":"移除","Select.upload":"重新上传","Select.clearAll":"移除所有","Select.createLabel":"新增选项","Select.placeholder":"请选择","Select.searchPromptText":"搜索",sort:sort,"SubForm.button":"设置","SubForm.editDetail":"编辑详情","System.error":"系统错误","System.notify":"系统消息","System.copy":"内容已复制到粘贴板","System.requestError":"接口报错:","System.requestErrorStatus":"接口出错,状态码是:","Table.addRow":"新增一行","Table.copyRow":"复制一行","Table.columnsVisibility":"点击选择显示列","Table.deleteRow":"删除当前行","Table.discard":"放弃","Table.dragTip":"请拖动左边的按钮进行排序","Table.editing":"请先处理表格编辑项","Table.editRow":"编辑当前行","Table.modified":"当前有 {{modified}} 条记录修改但没有提交,你可以:","Table.moved":"当前有 {{moved}} 条记录修改了顺序但没有提交,你可以:","Table.operation":"操作","Table.playload":"action 上请配置 payload, 否则不清楚要删除哪个","Table.startSort":"点击开始排序","Table.valueField":"请配置 valueField","Table.index":"序号","Table.toggleColumn":"显示列","Table.searchFields":"设置查询字段","Tag.placeholder":"请输入/选择标签","Tag.tip":"最近使用的标签","Text.add":"新增:{{label}}","Time.placeholder":"请选择时间","Transfer.configError":"配置错误,选项无法与左侧选项对应","Transfer.refreshIcon":"点击刷新重新加载","Transfer.searchKeyword":"请输入关键字","Transfer.available":"可选项","Transfer.selectd":"已选项","Transfer.selectFromLeft":"请选择左侧数据","Tree.addChild":"添加子节点","Tree.addRoot":"添加一级节点","Tree.editNode":"编辑该节点","Tree.removeNode":"移除该节点","Tree.root":"顶级","validate.equals":"输入的数据与 $1 不一致","validate.equalsField":"输入的数据与 $1 值不一致","validate.gt":"请输入大于 $1 的值","validate.isAlpha":"请输入字母","validate.isAlphanumeric":"请输入字母或者数字","validate.isEmail":"Email 格式不正确","validate.isFloat":"请输入浮点型数值","validate.isId":"请输入合法的身份证号","validate.isInt":"请输入整型数字","validate.isJson":"JSON 格式不正确","validate.isLength":"请输入长度为 $1 的内容","validate.isNumeric":"请输入数字","validate.isPhoneNumber":"请输入合法的手机号码","validate.isRequired":"这是必填项","validate.isTelNumber":"请输入合法的电话号码","validate.isUrl":"URL 格式不正确","validate.isUrlPath":"只能输入字母、数字、`-` 和 `_`.","validate.isWords":"请输入单词","validate.isZipcode":"请输入合法的邮编地址","validate.lt":"请输入小于 $1 的值","validate.matchRegexp":"格式不正确, 请输入符合规则为 `${1|raw}` 的内容。","validate.maximum":"当前输入值超出最大值 $1","validate.maxLength":"请控制内容长度, 不要输入 $1 个以上字符","validate.minimum":"当前输入值低于最小值 $1","validate.minLength":"请输入更多的内容,至少输入 $1 个字符。","validate.notEmptyString":"请不要全输入空白字符",validateFailed:validateFailed,"Wizard.configError":"配置错误","Wizard.finish":"完成","Wizard.next":"下一步","Wizard.prev":"上一步","Wizard.saveAndNext":"保存并下一步","year-to-year":"{{from}} 年 - {{to}} 年","Year.placeholder":"请选择年",reload:reload,rotate:rotate,"Editor.fullscreen":"全屏","Editor.exitFullscreen":"退出全屏","Condition.not":"非","Condition.and":"并","Condition.or":"或","Condition.add_cond":"添加条件","Condition.add_cond_group":"添加条件组","Condition.delete_cond_group":"删除组","Condition.equal":"等于","Condition.not_equal":"不等于","Condition.less":"小于","Condition.less_or_equal":"小于或等于","Condition.greater":"大于","Condition.greater_or_equal":"大于或等于","Condition.between":"属于范围","Condition.not_between":"不属于范围","Condition.is_empty":"为空","Condition.is_not_empty":"不为空","Condition.like":"模糊匹配","Condition.not_like":"不匹配","Condition.starts_with":"匹配开头","Condition.ends_with":"匹配结尾","Condition.select_equals":"等于","Condition.select_not_equals":"不等于","Condition.select_any_in":"包含","Condition.select_not_any_in":"不包含","Condition.placeholder":"请输入文本","Condition.cond_placeholder":"请选择操作","Condition.field_placeholder":"请选择字段","Condition.blank":"空","Condition.expression":"表达式","Condition.formula_placeholder":"请输入公式","Condition.fun_error":"方法未定义","InputTable.uniqueError":"列`{{label}}`没有通过唯一验证","Timeline.collapseText":"展开","Timeline.expandText":"折叠",collapse:collapse,expand:expand,"FormulaEditor.btnLabel":"公式编辑","FormulaEditor.title":"公式编辑器","FormulaEditor.variable":"变量","FormulaEditor.function":"函数","FormulaEditor.invalidData":"公式值校验错误,错误的位置/原因是 {{err}}","pullRefresh.pullingText":"下拉即可刷新...","pullRefresh.loosingText":"释放即可刷新...","pullRefresh.loadingText":"加载中...","pullRefresh.successText":"加载成功","Picker.placeholder":"请点击右侧的图标","UserSelect.edit":"编辑","UserSelect.save":"保存","UserSelect.resultSort":"选择结果排序","UserSelect.selected":"已选","UserSelect.clear":"清空","SchemaType.string":"文本","SchemaType.number":"数字","SchemaType.integer":"整数","SchemaType.object":"对象","SchemaType.array":"数组","SchemaType.boolean":"布尔","SchemaType.null":"Null","SchemaType.any":"任意","JSONSchema.title":"名称","JSONSchema.default":"默认值","JSONSchema.key":"字段名","JSONSchema.description":"描述","JSONSchema.add_prop":"添加属性","JSONSchema.array_items":"成员类型",Required:Required,TimeNow:TimeNow};const resourcesMap={"en-US":en_us,"zh-CN":zh_cn},getUserLanguage=()=>{var e=Builder.settings.context?.user?.language||window.navigator.language;return"en"===e&&(e="en-US"),e};var locale="zh-CN";function getAmisLocaleResource(){var e=resourcesMap[locale];return e||resourcesMap["zh-CN"]}if("undefined"!=typeof window&&(locale=getUserLanguage()),"undefined"!=typeof window){var currentAmis=window.amisRequire&&window.amisRequire("amis")||Amis;currentAmis&&currentAmis.registerLocale(locale,getAmisLocaleResource())}function Inbox(e){var t=e.className,n=e.onClick,o=__rest(e,["className","onClick"]),r=useInboxNotificationsSuspense().inboxNotifications;return 0===r.length?React__default.default.createElement("div",{className:clsx(t,"empty")},instance.t("liveblocks:frontend_inbox_empty")):React__default.default.createElement("div",__assign({className:t},o),React__default.default.createElement(InboxNotificationList,{className:"inbox-list"},r.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"]),o=__read(React.useState(!1),2),r=o[0],a=o[1],i=useMarkAllInboxNotificationsAsRead(),s=useDeleteAllInboxNotifications();return React__default.default.createElement(Root2$1,{open:r,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)}}))))))}instance.addResources("en","liveblocks",en_us$2),instance.addResources("zh-CN","liveblocks",zh_cn$2);var AmisRoomsProvider=function(e){var t,n=e.data,o=e.baseUrl,r=e.children,a=e.body,i=e.render,s=__read(React.useState(null),2),l=s[0],c=s[1],u=o||(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")||{},_=__assign({locale:p},m),h=_.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__commented||"commented",g=_.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in||"in",v=_.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST__in_a_thread||"in a thread";return _.INBOX_NOTIFICATION_THREAD_COMMENTS_LIST=function(e,t){return React__default.default.createElement(React__default.default.Fragment,null,e," ",h,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:_},React__default.default.createElement(LiveblocksProvider,{baseUrl:u,authEndpoint:function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,n,o,r,a,i;return __generator(this,(function(s){switch(s.label){case 0:return t="".concat(u,"/v2/c/auth"),n={"Content-Type":"application/json"},o=localStorage.getItem("steedos:authToken"),(r=localStorage.getItem("steedos:spaceId"))&&o&&(n.Authorization="Bearer ".concat(r,",").concat(o)),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(o){switch(o.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=o.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_rooms_info_error"));return[4,n.json()];case 2:return[2,o.sent()]}}))}))},resolveUsers:function(e){var t=e.userIds;return __awaiter(void 0,void 0,void 0,(function(){var e,n;return __generator(this,(function(o){switch(o.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=o.sent()).ok)throw new Error(instance.t("liveblocks:frontend_fetch_users_error"));return[4,n.json()];case 2:return[2,o.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,{}),r))};exports.AmisComments=AmisComments,exports.AmisInboxPopover=AmisInboxPopover,exports.AmisRoomsProvider=AmisRoomsProvider,exports.Threads=Threads,Object.defineProperty(exports,"__esModule",{value:!0})}));