index.js 75 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028
  1. var Nt = Object.defineProperty;
  2. var Rt = (a, e, n) => e in a ? Nt(a, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : a[e] = n;
  3. var F = (a, e, n) => Rt(a, typeof e != "symbol" ? e + "" : e, n);
  4. import { sortRules as xt, sortRulesByDesc as Bt, createIdentifier as Wt, CommandType as Gt, ImageSourceType as at, ImageUploadStatusType as Qe, Tools as Lt, Inject as qt, Injector as Kt, Plugin as Ft, merge as Vt, mergeOverrideWithDependencies as Ht, IConfigService as zt, ICommandService as Xt, IImageIoService as Jt } from "@univerjs/core";
  5. import { IImageIoService as En, ImageSourceType as Dn, ImageUploadStatusType as Pn } from "@univerjs/core";
  6. import { Subject as ve } from "rxjs";
  7. const mn = 500, On = 500, wn = 10, Yt = 5 * 1024 * 1024, Zt = ["image/png", "image/jpeg", "image/jpg", "image/gif", "image/bmp"];
  8. var Ye = {}, et = {}, tt = {}, mt;
  9. function Qt() {
  10. if (mt) return tt;
  11. mt = 1, Object.defineProperty(tt, "__esModule", { value: !0 });
  12. function a(t, r) {
  13. if (Array.isArray(r))
  14. return !1;
  15. for (let u in t)
  16. if (!n(t[u], r[u]))
  17. return !1;
  18. for (let u in r)
  19. if (t[u] === void 0)
  20. return !1;
  21. return !0;
  22. }
  23. function e(t, r) {
  24. if (!Array.isArray(r) || t.length !== r.length)
  25. return !1;
  26. for (let u = 0; u < t.length; u++)
  27. if (!n(t[u], r[u]))
  28. return !1;
  29. return !0;
  30. }
  31. function n(t, r) {
  32. return t === r ? !0 : t === null || r === null || typeof t != "object" || typeof r != "object" ? !1 : Array.isArray(t) ? e(t, r) : a(t, r);
  33. }
  34. return tt.default = n, tt;
  35. }
  36. var nt = {}, Ot;
  37. function en() {
  38. if (Ot) return nt;
  39. Ot = 1, Object.defineProperty(nt, "__esModule", { value: !0 });
  40. function a(e) {
  41. if (e === null)
  42. return null;
  43. if (Array.isArray(e))
  44. return e.map(a);
  45. if (typeof e == "object") {
  46. const n = {};
  47. for (let t in e)
  48. n[t] = a(e[t]);
  49. return n;
  50. } else
  51. return e;
  52. }
  53. return nt.default = a, nt;
  54. }
  55. var lt = {}, wt;
  56. function Mt() {
  57. return wt || (wt = 1, function(a) {
  58. Object.defineProperty(a, "__esModule", { value: !0 }), a.eachChildOf = a.advancer = a.readCursor = a.writeCursor = a.WriteCursor = a.ReadCursor = a.isValidPathItem = void 0;
  59. function e(_, s) {
  60. if (!_)
  61. throw new Error(s);
  62. }
  63. const n = (_) => _ != null && typeof _ == "object" && !Array.isArray(_), t = (_, s) => (
  64. // All the numbers, then all the letters. Just as the gods of ascii intended.
  65. typeof _ == typeof s ? _ > s : typeof _ == "string" && typeof s == "number"
  66. );
  67. function r(_, s) {
  68. for (let d in _) {
  69. const h = d;
  70. s.write(h, _[h]);
  71. }
  72. }
  73. a.isValidPathItem = (_) => typeof _ == "number" || typeof _ == "string" && _ !== "__proto__";
  74. class u {
  75. constructor(s = null) {
  76. this.parents = [], this.indexes = [], this.lcIdx = -1, this.idx = -1, this.container = s;
  77. }
  78. ascend() {
  79. e(this.parents.length === this.indexes.length / 2), this.idx === 0 ? this.parents.length ? (this.lcIdx = this.indexes.pop(), this.container = this.parents.pop(), this.idx = this.indexes.pop()) : (this.lcIdx = 0, this.idx = -1) : (e(this.idx > 0), this.idx--, n(this.container[this.idx]) && this.idx--);
  80. }
  81. getPath() {
  82. const s = [];
  83. let d = this.container, h = this.parents.length - 1, k = this.idx;
  84. for (; k >= 0; )
  85. s.unshift(d[k]), k === 0 ? (k = this.indexes[h * 2], d = this.parents[h--]) : k -= n(d[k - 1]) ? 2 : 1;
  86. return s;
  87. }
  88. }
  89. class o extends u {
  90. get() {
  91. return this.container ? this.container.slice(this.idx + 1) : null;
  92. }
  93. // Its only valid to call this after descending into a child.
  94. getKey() {
  95. return e(this.container != null, "Invalid call to getKey before cursor descended"), this.container[this.idx];
  96. }
  97. getComponent() {
  98. let s;
  99. return this.container && this.container.length > this.idx + 1 && n(s = this.container[this.idx + 1]) ? s : null;
  100. }
  101. descendFirst() {
  102. let s = this.idx + 1;
  103. if (!this.container || s >= this.container.length || n(this.container[s]) && s + 1 >= this.container.length)
  104. return !1;
  105. n(this.container[s]) && s++;
  106. const d = this.container[s];
  107. return Array.isArray(d) ? (this.indexes.push(this.idx), this.parents.push(this.container), this.indexes.push(s), this.idx = 0, this.container = d) : this.idx = s, !0;
  108. }
  109. nextSibling() {
  110. if (e(this.parents.length === this.indexes.length / 2), this.idx > 0 || this.parents.length === 0)
  111. return !1;
  112. const s = this.indexes[this.indexes.length - 1] + 1, d = this.parents[this.parents.length - 1];
  113. return s >= d.length ? !1 : (e(!isNaN(s)), this.indexes[this.indexes.length - 1] = s, this.container = d[s], !0);
  114. }
  115. _init(s, d, h, k) {
  116. this.container = s, this.idx = d, this.parents = h.slice(), this.indexes = k.slice();
  117. }
  118. clone() {
  119. const s = new o();
  120. return s._init(this.container, this.idx, this.parents, this.indexes), s;
  121. }
  122. *[Symbol.iterator]() {
  123. if (this.descendFirst()) {
  124. do
  125. yield this.getKey();
  126. while (this.nextSibling());
  127. this.ascend();
  128. }
  129. }
  130. // TODO(cleanup): Consider moving these functions out of cursor, since
  131. // they're really just helper methods.
  132. // It'd be really nice to do this using generators.
  133. traverse(s, d) {
  134. const h = this.getComponent();
  135. h && d(h, s);
  136. for (const k of this)
  137. s && s.descend(k), this.traverse(s, d), s && s.ascend();
  138. }
  139. eachPick(s, d) {
  140. this.traverse(s, (h, k) => {
  141. h.p != null && d(h.p, k);
  142. });
  143. }
  144. eachDrop(s, d) {
  145. this.traverse(s, (h, k) => {
  146. h.d != null && d(h.d, k);
  147. });
  148. }
  149. }
  150. a.ReadCursor = o;
  151. class l extends u {
  152. constructor(s = null) {
  153. super(s), this.pendingDescent = [], this._op = s;
  154. }
  155. flushDescent() {
  156. e(this.parents.length === this.indexes.length / 2), this.container === null && (this._op = this.container = []);
  157. for (let s = 0; s < this.pendingDescent.length; s++) {
  158. const d = this.pendingDescent[s];
  159. let h = this.idx + 1;
  160. if (h < this.container.length && n(this.container[h]) && h++, e(h === this.container.length || !n(this.container[h])), h === this.container.length)
  161. this.container.push(d), this.idx = h;
  162. else if (this.container[h] === d)
  163. this.idx = h;
  164. else {
  165. if (!Array.isArray(this.container[h])) {
  166. const k = this.container.splice(h, this.container.length - h);
  167. this.container.push(k), this.lcIdx > -1 && (this.lcIdx = h);
  168. }
  169. for (this.indexes.push(this.idx), this.parents.push(this.container), this.lcIdx !== -1 && (e(t(d, this.container[this.lcIdx][0])), h = this.lcIdx + 1, this.lcIdx = -1); h < this.container.length && t(d, this.container[h][0]); )
  170. h++;
  171. if (this.indexes.push(h), this.idx = 0, h < this.container.length && this.container[h][0] === d)
  172. this.container = this.container[h];
  173. else {
  174. const k = [d];
  175. this.container.splice(h, 0, k), this.container = k;
  176. }
  177. }
  178. }
  179. this.pendingDescent.length = 0;
  180. }
  181. reset() {
  182. this.lcIdx = -1;
  183. }
  184. // Creates and returns a component, creating one if need be. You should
  185. // probably write to it immediately - ops are not valid with empty
  186. // components.
  187. getComponent() {
  188. this.flushDescent();
  189. const s = this.idx + 1;
  190. if (s < this.container.length && n(this.container[s]))
  191. return this.container[s];
  192. {
  193. const d = {};
  194. return this.container.splice(s, 0, d), d;
  195. }
  196. }
  197. write(s, d) {
  198. const h = this.getComponent();
  199. e(h[s] == null || h[s] === d, "Internal consistency error: Overwritten component. File a bug"), h[s] = d;
  200. }
  201. get() {
  202. return this._op;
  203. }
  204. descend(s) {
  205. if (!a.isValidPathItem(s))
  206. throw Error("Invalid JSON key");
  207. this.pendingDescent.push(s);
  208. }
  209. descendPath(s) {
  210. return this.pendingDescent.push(...s), this;
  211. }
  212. ascend() {
  213. this.pendingDescent.length ? this.pendingDescent.pop() : super.ascend();
  214. }
  215. mergeTree(s, d = r) {
  216. if (s === null)
  217. return;
  218. if (e(Array.isArray(s)), s === this._op)
  219. throw Error("Cannot merge into my own tree");
  220. const h = this.lcIdx, k = this.parents.length;
  221. let Y = 0;
  222. for (let pe = 0; pe < s.length; pe++) {
  223. const Z = s[pe];
  224. typeof Z == "string" || typeof Z == "number" ? (Y++, this.descend(Z)) : Array.isArray(Z) ? this.mergeTree(Z, d) : typeof Z == "object" && d(Z, this);
  225. }
  226. for (; Y--; )
  227. this.ascend();
  228. this.lcIdx = this.parents.length === k ? h : -1;
  229. }
  230. at(s, d) {
  231. this.descendPath(s), d(this);
  232. for (let h = 0; h < s.length; h++)
  233. this.ascend();
  234. return this;
  235. }
  236. // This is used by helpers, so the strict ordering guarantees are
  237. // relaxed.
  238. writeAtPath(s, d, h) {
  239. return this.at(s, () => this.write(d, h)), this.reset(), this;
  240. }
  241. writeMove(s, d, h = 0) {
  242. return this.writeAtPath(s, "p", h).writeAtPath(d, "d", h);
  243. }
  244. getPath() {
  245. const s = super.getPath();
  246. return s.push(...this.pendingDescent), s;
  247. }
  248. }
  249. a.WriteCursor = l, a.writeCursor = () => new l(), a.readCursor = (_) => new o(_);
  250. function E(_, s, d) {
  251. let h, k;
  252. k = h = _ ? _.descendFirst() : !1;
  253. function Y(pe) {
  254. let Z;
  255. for (; k; ) {
  256. const Ce = Z = _.getKey();
  257. if (pe != null) {
  258. let Ge = !1;
  259. if (s && typeof Ce == "number" && (Z = s(Ce, _.getComponent()), Z < 0 && (Z = ~Z, Ge = !0)), t(Z, pe))
  260. return null;
  261. if (Z === pe && !Ge)
  262. return _;
  263. }
  264. d && typeof Z == "number" && d(Z, _.getComponent()), k = _.nextSibling();
  265. }
  266. return null;
  267. }
  268. return Y.end = () => {
  269. h && _.ascend();
  270. }, Y;
  271. }
  272. a.advancer = E;
  273. function x(_, s, d) {
  274. let h, k, Y, pe;
  275. for (h = k = _ && _.descendFirst(), Y = pe = s && s.descendFirst(); h || Y; ) {
  276. let Z = h ? _.getKey() : null, Ce = Y ? s.getKey() : null;
  277. Z !== null && Ce !== null && (t(Ce, Z) ? Ce = null : Z !== Ce && (Z = null)), d(Z == null ? Ce : Z, Z != null ? _ : null, Ce != null ? s : null), Z != null && h && (h = _.nextSibling()), Ce != null && Y && (Y = s.nextSibling());
  278. }
  279. k && _.ascend(), pe && s.ascend();
  280. }
  281. a.eachChildOf = x;
  282. }(lt)), lt;
  283. }
  284. var ut = {}, bt;
  285. function St() {
  286. return bt || (bt = 1, function(a) {
  287. Object.defineProperty(a, "__esModule", { value: !0 }), a.ConflictType = void 0, function(e) {
  288. e[e.RM_UNEXPECTED_CONTENT = 1] = "RM_UNEXPECTED_CONTENT", e[e.DROP_COLLISION = 2] = "DROP_COLLISION", e[e.BLACKHOLE = 3] = "BLACKHOLE";
  289. }(a.ConflictType || (a.ConflictType = {}));
  290. }(ut)), ut;
  291. }
  292. var Fe = {}, Ve = {}, vt;
  293. function pt() {
  294. return vt || (vt = 1, Object.defineProperty(Ve, "__esModule", { value: !0 }), Ve.uniToStrPos = Ve.strPosToUni = void 0, Ve.strPosToUni = (a, e = a.length) => {
  295. let n = 0, t = 0;
  296. for (; t < e; t++) {
  297. const r = a.charCodeAt(t);
  298. r >= 55296 && r <= 57343 && (n++, t++);
  299. }
  300. if (t !== e)
  301. throw Error("Invalid offset - splits unicode bytes");
  302. return t - n;
  303. }, Ve.uniToStrPos = (a, e) => {
  304. let n = 0;
  305. for (; e > 0; e--) {
  306. const t = a.charCodeAt(n);
  307. n += t >= 55296 && t <= 57343 ? 2 : 1;
  308. }
  309. return n;
  310. }), Ve;
  311. }
  312. var dt = {}, Ct;
  313. function ht() {
  314. return Ct || (Ct = 1, function(a) {
  315. Object.defineProperty(a, "__esModule", { value: !0 }), a.uniSlice = a.dlen = a.eachOp = void 0;
  316. const e = pt(), n = (f) => {
  317. if (!Array.isArray(f))
  318. throw Error("Op must be an array of components");
  319. let y = null;
  320. for (let v = 0; v < f.length; v++) {
  321. const L = f[v];
  322. switch (typeof L) {
  323. case "object":
  324. if (typeof L.d != "number" && typeof L.d != "string")
  325. throw Error("Delete must be number or string");
  326. if (a.dlen(L.d) <= 0)
  327. throw Error("Deletes must not be empty");
  328. break;
  329. case "string":
  330. if (!(L.length > 0))
  331. throw Error("Inserts cannot be empty");
  332. break;
  333. case "number":
  334. if (!(L > 0))
  335. throw Error("Skip components must be >0");
  336. if (typeof y == "number")
  337. throw Error("Adjacent skip components should be combined");
  338. break;
  339. }
  340. y = L;
  341. }
  342. if (typeof y == "number")
  343. throw Error("Op has a trailing skip");
  344. };
  345. function t(f, y) {
  346. let v = 0, L = 0;
  347. for (let z = 0; z < f.length; z++) {
  348. const q = f[z];
  349. switch (y(q, v, L), typeof q) {
  350. case "object":
  351. v += a.dlen(q.d);
  352. break;
  353. case "string":
  354. L += e.strPosToUni(q);
  355. break;
  356. case "number":
  357. v += q, L += q;
  358. break;
  359. }
  360. }
  361. }
  362. a.eachOp = t;
  363. function r(f, y) {
  364. const v = [], L = l(v);
  365. return t(f, (z, q, Ee) => {
  366. L(y(z, q, Ee));
  367. }), s(v);
  368. }
  369. const u = (f) => f, o = (f) => r(f, u);
  370. a.dlen = (f) => typeof f == "number" ? f : e.strPosToUni(f);
  371. const l = (f) => (y) => {
  372. if (!(!y || y.d === 0 || y.d === "")) if (f.length === 0)
  373. f.push(y);
  374. else if (typeof y == typeof f[f.length - 1])
  375. if (typeof y == "object") {
  376. const v = f[f.length - 1];
  377. v.d = typeof v.d == "string" && typeof y.d == "string" ? v.d + y.d : a.dlen(v.d) + a.dlen(y.d);
  378. } else
  379. f[f.length - 1] += y;
  380. else
  381. f.push(y);
  382. }, E = (f) => typeof f == "number" ? f : typeof f == "string" ? e.strPosToUni(f) : typeof f.d == "number" ? f.d : e.strPosToUni(f.d);
  383. a.uniSlice = (f, y, v) => {
  384. const L = e.uniToStrPos(f, y), z = v == null ? 1 / 0 : e.uniToStrPos(f, v);
  385. return f.slice(L, z);
  386. };
  387. const x = (f, y, v) => typeof f == "number" ? v == null ? f - y : Math.min(f, v) - y : a.uniSlice(f, y, v), _ = (f) => {
  388. let y = 0, v = 0;
  389. return { take: (q, Ee) => {
  390. if (y === f.length)
  391. return q === -1 ? null : q;
  392. const de = f[y];
  393. let ne;
  394. if (typeof de == "number")
  395. return q === -1 || de - v <= q ? (ne = de - v, ++y, v = 0, ne) : (v += q, q);
  396. if (typeof de == "string") {
  397. if (q === -1 || Ee === "i" || e.strPosToUni(de.slice(v)) <= q)
  398. return ne = de.slice(v), ++y, v = 0, ne;
  399. {
  400. const le = v + e.uniToStrPos(de.slice(v), q);
  401. return ne = de.slice(v, le), v = le, ne;
  402. }
  403. } else {
  404. if (q === -1 || Ee === "d" || a.dlen(de.d) - v <= q)
  405. return ne = { d: x(de.d, v) }, ++y, v = 0, ne;
  406. {
  407. let le = x(de.d, v, v + q);
  408. return v += q, { d: le };
  409. }
  410. }
  411. }, peek: () => f[y] };
  412. }, s = (f) => (f.length > 0 && typeof f[f.length - 1] == "number" && f.pop(), f);
  413. function d(f, y, v) {
  414. if (v !== "left" && v !== "right")
  415. throw Error("side (" + v + ") must be 'left' or 'right'");
  416. n(f), n(y);
  417. const L = [], z = l(L), { take: q, peek: Ee } = _(f);
  418. for (let ne = 0; ne < y.length; ne++) {
  419. const le = y[ne];
  420. let ge, De;
  421. switch (typeof le) {
  422. case "number":
  423. for (ge = le; ge > 0; )
  424. De = q(ge, "i"), z(De), typeof De != "string" && (ge -= E(De));
  425. break;
  426. case "string":
  427. v === "left" && typeof Ee() == "string" && z(q(-1)), z(e.strPosToUni(le));
  428. break;
  429. case "object":
  430. for (ge = a.dlen(le.d); ge > 0; )
  431. switch (De = q(ge, "i"), typeof De) {
  432. case "number":
  433. ge -= De;
  434. break;
  435. case "string":
  436. z(De);
  437. break;
  438. case "object":
  439. ge -= a.dlen(De.d);
  440. }
  441. break;
  442. }
  443. }
  444. let de;
  445. for (; de = q(-1); )
  446. z(de);
  447. return s(L);
  448. }
  449. function h(f, y) {
  450. n(f), n(y);
  451. const v = [], L = l(v), { take: z } = _(f);
  452. for (let Ee = 0; Ee < y.length; Ee++) {
  453. const de = y[Ee];
  454. let ne, le;
  455. switch (typeof de) {
  456. case "number":
  457. for (ne = de; ne > 0; )
  458. le = z(ne, "d"), L(le), typeof le != "object" && (ne -= E(le));
  459. break;
  460. case "string":
  461. L(de);
  462. break;
  463. case "object":
  464. ne = a.dlen(de.d);
  465. let ge = 0;
  466. for (; ge < ne; )
  467. switch (le = z(ne - ge, "d"), typeof le) {
  468. case "number":
  469. L({ d: x(de.d, ge, ge + le) }), ge += le;
  470. break;
  471. case "string":
  472. ge += e.strPosToUni(le);
  473. break;
  474. case "object":
  475. L(le);
  476. }
  477. break;
  478. }
  479. }
  480. let q;
  481. for (; q = z(-1); )
  482. L(q);
  483. return s(v);
  484. }
  485. const k = (f, y) => {
  486. let v = 0;
  487. for (let L = 0; L < y.length && f > v; L++) {
  488. const z = y[L];
  489. switch (typeof z) {
  490. case "number": {
  491. v += z;
  492. break;
  493. }
  494. case "string":
  495. const q = e.strPosToUni(z);
  496. v += q, f += q;
  497. break;
  498. case "object":
  499. f -= Math.min(a.dlen(z.d), f - v);
  500. break;
  501. }
  502. }
  503. return f;
  504. }, Y = (f, y) => typeof f == "number" ? k(f, y) : f.map((v) => k(v, y));
  505. function pe(f, y, v) {
  506. return r(f, (L, z) => typeof L == "object" && typeof L.d == "number" ? { d: v.slice(y, z, z + L.d) } : L);
  507. }
  508. function Z(f) {
  509. return r(f, (y) => {
  510. switch (typeof y) {
  511. case "object":
  512. if (typeof y.d == "number")
  513. throw Error("Cannot invert text op: Deleted characters missing from operation. makeInvertible must be called first.");
  514. return y.d;
  515. // delete -> insert
  516. case "string":
  517. return { d: y };
  518. // Insert -> delete
  519. case "number":
  520. return y;
  521. }
  522. });
  523. }
  524. function Ce(f) {
  525. return r(f, (y) => typeof y == "object" && typeof y.d == "string" ? { d: e.strPosToUni(y.d) } : y);
  526. }
  527. function Ge(f) {
  528. let y = !0;
  529. return t(f, (v) => {
  530. typeof v == "object" && typeof v.d == "number" && (y = !1);
  531. }), y;
  532. }
  533. function me(f) {
  534. return {
  535. name: "text-unicode",
  536. uri: "http://sharejs.org/types/text-unicode",
  537. trim: s,
  538. normalize: o,
  539. checkOp: n,
  540. /** Create a new text snapshot.
  541. *
  542. * @param {string} initial - initial snapshot data. Optional. Defaults to ''.
  543. * @returns {Snap} Initial document snapshot object
  544. */
  545. create(y = "") {
  546. if (typeof y != "string")
  547. throw Error("Initial data must be a string");
  548. return f.create(y);
  549. },
  550. /** Apply an operation to a document snapshot
  551. */
  552. apply(y, v) {
  553. n(v);
  554. const L = f.builder(y);
  555. for (let z = 0; z < v.length; z++) {
  556. const q = v[z];
  557. switch (typeof q) {
  558. case "number":
  559. L.skip(q);
  560. break;
  561. case "string":
  562. L.append(q);
  563. break;
  564. case "object":
  565. L.del(a.dlen(q.d));
  566. break;
  567. }
  568. }
  569. return L.build();
  570. },
  571. transform: d,
  572. compose: h,
  573. transformPosition: k,
  574. transformSelection: Y,
  575. isInvertible: Ge,
  576. makeInvertible(y, v) {
  577. return pe(y, v, f);
  578. },
  579. stripInvertible: Ce,
  580. invert: Z,
  581. invertWithDoc(y, v) {
  582. return Z(pe(y, v, f));
  583. },
  584. isNoop: (y) => y.length === 0
  585. };
  586. }
  587. a.default = me;
  588. }(dt)), dt;
  589. }
  590. var rt = {}, It;
  591. function tn() {
  592. if (It) return rt;
  593. It = 1, Object.defineProperty(rt, "__esModule", { value: !0 });
  594. const a = ht(), e = pt();
  595. function n(t, r) {
  596. return {
  597. // Returns the text content of the document
  598. get: t,
  599. // Returns the number of characters in the string
  600. getLength() {
  601. return t().length;
  602. },
  603. // Insert the specified text at the given position in the document
  604. insert(u, o, l) {
  605. const E = e.strPosToUni(t(), u);
  606. return r([E, o], l);
  607. },
  608. remove(u, o, l) {
  609. const E = e.strPosToUni(t(), u);
  610. return r([E, { d: o }], l);
  611. },
  612. // When you use this API, you should implement these two methods
  613. // in your editing context.
  614. //onInsert: function(pos, text) {},
  615. //onRemove: function(pos, removedLength) {},
  616. _onOp(u) {
  617. a.eachOp(u, (o, l, E) => {
  618. switch (typeof o) {
  619. case "string":
  620. this.onInsert && this.onInsert(E, o);
  621. break;
  622. case "object":
  623. const x = a.dlen(o.d);
  624. this.onRemove && this.onRemove(E, x);
  625. }
  626. });
  627. },
  628. onInsert: null,
  629. onRemove: null
  630. };
  631. }
  632. return rt.default = n, n.provides = { text: !0 }, rt;
  633. }
  634. var Et;
  635. function nn() {
  636. return Et || (Et = 1, function(a) {
  637. var e = Fe.__createBinding || (Object.create ? function(d, h, k, Y) {
  638. Y === void 0 && (Y = k), Object.defineProperty(d, Y, { enumerable: !0, get: function() {
  639. return h[k];
  640. } });
  641. } : function(d, h, k, Y) {
  642. Y === void 0 && (Y = k), d[Y] = h[k];
  643. }), n = Fe.__setModuleDefault || (Object.create ? function(d, h) {
  644. Object.defineProperty(d, "default", { enumerable: !0, value: h });
  645. } : function(d, h) {
  646. d.default = h;
  647. }), t = Fe.__importStar || function(d) {
  648. if (d && d.__esModule) return d;
  649. var h = {};
  650. if (d != null) for (var k in d) Object.hasOwnProperty.call(d, k) && e(h, d, k);
  651. return n(h, d), h;
  652. }, r = Fe.__importDefault || function(d) {
  653. return d && d.__esModule ? d : { default: d };
  654. };
  655. Object.defineProperty(a, "__esModule", { value: !0 }), a.type = a.remove = a.insert = void 0;
  656. const u = pt(), o = t(ht()), l = r(tn()), E = {
  657. create(d) {
  658. return d;
  659. },
  660. toString(d) {
  661. return d;
  662. },
  663. builder(d) {
  664. if (typeof d != "string")
  665. throw Error("Invalid document snapshot: " + d);
  666. const h = [];
  667. return {
  668. skip(k) {
  669. let Y = u.uniToStrPos(d, k);
  670. if (Y > d.length)
  671. throw Error("The op is too long for this document");
  672. h.push(d.slice(0, Y)), d = d.slice(Y);
  673. },
  674. append(k) {
  675. h.push(k);
  676. },
  677. del(k) {
  678. d = d.slice(u.uniToStrPos(d, k));
  679. },
  680. build() {
  681. return h.join("") + d;
  682. }
  683. };
  684. },
  685. slice: o.uniSlice
  686. }, x = o.default(E), _ = Object.assign(Object.assign({}, x), { api: l.default });
  687. a.type = _, a.insert = (d, h) => h.length === 0 ? [] : d === 0 ? [h] : [d, h], a.remove = (d, h) => o.dlen(h) === 0 ? [] : d === 0 ? [{ d: h }] : [d, { d: h }];
  688. var s = ht();
  689. Object.defineProperty(a, "makeType", { enumerable: !0, get: function() {
  690. return s.default;
  691. } });
  692. }(Fe)), Fe;
  693. }
  694. var Dt;
  695. function rn() {
  696. return Dt || (Dt = 1, function(a) {
  697. var e = et.__importDefault || function(i) {
  698. return i && i.__esModule ? i : {
  699. default: i
  700. };
  701. };
  702. Object.defineProperty(a, "__esModule", {
  703. value: !0
  704. }), a.editOp = a.replaceOp = a.insertOp = a.moveOp = a.removeOp = a.type = void 0;
  705. const n = e(Qt()), t = e(en()), r = Mt(), u = St();
  706. function o(i, c) {
  707. if (!i) throw new Error(c);
  708. }
  709. a.type = {
  710. name: "json1",
  711. uri: "http://sharejs.org/types/JSONv1",
  712. readCursor: r.readCursor,
  713. writeCursor: r.writeCursor,
  714. create: (i) => i,
  715. isNoop: (i) => i == null,
  716. setDebug(i) {
  717. },
  718. registerSubtype: Z,
  719. checkValidOp: z,
  720. normalize: q,
  721. apply: Ee,
  722. transformPosition: de,
  723. compose: ne,
  724. tryTransform: st,
  725. transform: jt,
  726. makeInvertible: De,
  727. invert: le,
  728. invertWithDoc: kt,
  729. RM_UNEXPECTED_CONTENT: u.ConflictType.RM_UNEXPECTED_CONTENT,
  730. DROP_COLLISION: u.ConflictType.DROP_COLLISION,
  731. BLACKHOLE: u.ConflictType.BLACKHOLE,
  732. transformNoConflict: (i, c, O) => yt(() => !0, i, c, O),
  733. typeAllowingConflictsPred: (i) => Object.assign(Object.assign({}, a.type), {
  734. transform: (c, O, D) => yt(i, c, O, D)
  735. })
  736. };
  737. const l = (i) => i ? i.getComponent() : null;
  738. function E(i) {
  739. return i && typeof i == "object" && !Array.isArray(i);
  740. }
  741. const x = (i) => Array.isArray(i) ? i.slice() : i !== null && typeof i == "object" ? Object.assign({}, i) : i, _ = (i) => i && (i.p != null || i.r !== void 0), s = (i) => i && (i.d != null || i.i !== void 0);
  742. function d(i, c) {
  743. return o(i != null), typeof c == "number" ? (o(Array.isArray(i), "Invalid key - child is not an array"), (i = i.slice()).splice(c, 1)) : (o(E(i), "Invalid key - child is not an object"), delete (i = Object.assign({}, i))[c]), i;
  744. }
  745. function h(i, c, O) {
  746. return typeof c == "number" ? (o(i != null, "Container is missing for key"), o(Array.isArray(i), "Cannot use numerical key for object container"), o(i.length >= c, "Cannot insert into out of bounds index"), i.splice(c, 0, O)) : (o(E(i), "Cannot insert into missing item"), o(i[c] === void 0, "Trying to overwrite value at key. Your op needs to remove it first"), i[c] = O), O;
  747. }
  748. a.removeOp = (i, c = !0) => r.writeCursor().writeAtPath(i, "r", c).get(), a.moveOp = (i, c) => r.writeCursor().writeMove(i, c).get(), a.insertOp = (i, c) => r.writeCursor().writeAtPath(i, "i", c).get(), a.replaceOp = (i, c, O) => r.writeCursor().at(i, (D) => {
  749. D.write("r", c), D.write("i", O);
  750. }).get(), a.editOp = (i, c, O, D = !1) => r.writeCursor().at(i, (w) => y(w, c, O, D)).get();
  751. const k = (i, c) => i != null && (typeof c == "number" ? Array.isArray(i) : typeof i == "object"), Y = (i, c) => k(i, c) ? i[c] : void 0, pe = {};
  752. function Z(i) {
  753. let c = i.type ? i.type : i;
  754. c.name && (pe[c.name] = c), c.uri && (pe[c.uri] = c);
  755. }
  756. const Ce = (i) => {
  757. const c = pe[i];
  758. if (c) return c;
  759. throw Error("Missing type: " + i);
  760. };
  761. Z(nn());
  762. const Ge = (i, c) => i + c;
  763. Z({
  764. name: "number",
  765. apply: Ge,
  766. compose: Ge,
  767. invert: (i) => -i,
  768. transform: (i) => i
  769. });
  770. const me = (i) => i == null ? null : i.et ? Ce(i.et) : i.es ? pe["text-unicode"] : i.ena != null ? pe.number : null, f = (i) => i.es ? i.es : i.ena != null ? i.ena : i.e, y = (i, c, O, D = !1) => {
  771. const [w, I] = typeof c == "string" ? [Ce(c), c] : [c, c.name];
  772. !D && w.isNoop && w.isNoop(O) || (I === "number" ? i.write("ena", O) : I === "text-unicode" ? i.write("es", O) : (i.write("et", I), i.write("e", O)));
  773. };
  774. function v(i) {
  775. o(typeof i == "number"), o(i >= 0), o(i === (0 | i));
  776. }
  777. function L(i) {
  778. typeof i == "number" ? v(i) : o(typeof i == "string");
  779. }
  780. function z(i) {
  781. if (i === null) return;
  782. const c = /* @__PURE__ */ new Set(), O = /* @__PURE__ */ new Set(), D = (I) => {
  783. let R = !0, $ = !1;
  784. for (let p in I) {
  785. const m = I[p];
  786. if (R = !1, o(p === "p" || p === "r" || p === "d" || p === "i" || p === "e" || p === "es" || p === "ena" || p === "et", "Invalid component item '" + p + "'"), p === "p") v(m), o(!c.has(m)), c.add(m), o(I.r === void 0);
  787. else if (p === "d") v(m), o(!O.has(m)), O.add(m), o(I.i === void 0);
  788. else if (p === "e" || p === "es" || p === "ena") {
  789. o(!$), $ = !0;
  790. const b = me(I);
  791. o(b, "Missing type in edit"), b.checkValidOp && b.checkValidOp(f(I));
  792. }
  793. }
  794. o(!R);
  795. }, w = (I, R, $) => {
  796. if (!Array.isArray(I)) throw Error("Op must be null or a list");
  797. if (I.length === 0) throw Error("Empty descent");
  798. R || L(I[0]);
  799. let p = 1, m = 0, b = 0;
  800. for (let C = 0; C < I.length; C++) {
  801. const N = I[C];
  802. if (o(N != null), Array.isArray(N)) {
  803. const B = w(N, !1);
  804. if (m) {
  805. const g = typeof b, S = typeof B;
  806. g === S ? o(b < B, "descent keys are not in order") : o(g === "number" && S === "string");
  807. }
  808. b = B, m++, p = 3;
  809. } else typeof N == "object" ? (o(p === 1, `Prev not scalar - instead ${p}`), D(N), p = 2) : (o(p !== 3), L(N), o(r.isValidPathItem(N), "Invalid path key"), p = 1);
  810. }
  811. return o(m !== 1, "Operation makes multiple descents. Remove some []"), o(p === 2 || p === 3), I[0];
  812. };
  813. w(i, !0), o(c.size === O.size, "Mismatched picks and drops in op");
  814. for (let I = 0; I < c.size; I++) o(c.has(I)), o(O.has(I));
  815. }
  816. function q(i) {
  817. let c = 0, O = [];
  818. const D = r.writeCursor();
  819. return D.mergeTree(i, (w, I) => {
  820. const R = me(w);
  821. if (R) {
  822. const p = f(w);
  823. y(I, R, R.normalize ? R.normalize(p) : p);
  824. }
  825. for (const p of ["r", "p", "i", "d"]) if (w[p] !== void 0) {
  826. const m = p === "p" || p === "d" ? ($ = w[p], O[$] == null && (O[$] = c++), O[$]) : w[p];
  827. I.write(p, m);
  828. }
  829. var $;
  830. }), D.get();
  831. }
  832. function Ee(i, c) {
  833. if (z(c), c === null) return i;
  834. const O = [];
  835. return function D(w, I) {
  836. let R = w, $ = 0, p = {
  837. root: w
  838. }, m = 0, b = p, C = "root";
  839. function N() {
  840. for (; m < $; m++) {
  841. let B = I[m];
  842. typeof B != "object" && (o(k(b, C)), b = b[C] = x(b[C]), C = B);
  843. }
  844. }
  845. for (; $ < I.length; $++) {
  846. const B = I[$];
  847. if (Array.isArray(B)) {
  848. const g = D(R, B);
  849. g !== R && g !== void 0 && (N(), R = b[C] = g);
  850. } else if (typeof B == "object") {
  851. B.d != null ? (N(), R = h(b, C, O[B.d])) : B.i !== void 0 && (N(), R = h(b, C, B.i));
  852. const g = me(B);
  853. if (g) N(), R = b[C] = g.apply(R, f(B));
  854. else if (B.e !== void 0) throw Error("Subtype " + B.et + " undefined");
  855. } else R = Y(R, B);
  856. }
  857. return p.root;
  858. }(i = function D(w, I) {
  859. const R = [];
  860. let $ = 0;
  861. for (; $ < I.length; $++) {
  862. const C = I[$];
  863. if (Array.isArray(C)) break;
  864. typeof C != "object" && (R.push(w), w = Y(w, C));
  865. }
  866. for (let C = I.length - 1; C >= $; C--) w = D(w, I[C]);
  867. for (--$; $ >= 0; $--) {
  868. const C = I[$];
  869. if (typeof C != "object") {
  870. const N = R.pop();
  871. w = w === Y(N, C) ? N : w === void 0 ? d(N, C) : (m = C, b = w, (p = x(p = N))[m] = b, p);
  872. } else _(C) && (o(w !== void 0, "Cannot pick up or remove undefined"), C.p != null && (O[C.p] = w), w = void 0);
  873. }
  874. var p, m, b;
  875. return w;
  876. }(i, c), c);
  877. }
  878. function de(i, c) {
  879. i = i.slice(), z(c);
  880. const O = r.readCursor(c);
  881. let D, w, I = !1;
  882. const R = [];
  883. for (let p = 0; ; p++) {
  884. const m = i[p], b = O.getComponent();
  885. if (b && (b.r !== void 0 ? I = !0 : b.p != null && (I = !1, D = b.p, w = p)), p >= i.length) break;
  886. let C = 0;
  887. const N = r.advancer(O, void 0, (g, S) => {
  888. _(S) && C++;
  889. });
  890. R.unshift(N);
  891. const B = N(m);
  892. if (typeof m == "number" && (i[p] -= C), !B) break;
  893. }
  894. if (R.forEach((p) => p.end()), I) return null;
  895. const $ = () => {
  896. let p = 0;
  897. if (D != null) {
  898. const m = O.getPath();
  899. p = m.length, i = m.concat(i.slice(w));
  900. }
  901. for (; p < i.length; p++) {
  902. const m = i[p], b = l(O), C = me(b);
  903. if (C) {
  904. const g = f(b);
  905. C.transformPosition && (i[p] = C.transformPosition(i[p], g));
  906. break;
  907. }
  908. let N = 0;
  909. const B = r.advancer(O, (g, S) => s(S) ? ~(g - N) : g - N, (g, S) => {
  910. s(S) && N++;
  911. })(m);
  912. if (typeof m == "number" && (i[p] += N), !B) break;
  913. }
  914. };
  915. return D != null ? O.eachDrop(null, (p) => {
  916. p === D && $();
  917. }) : $(), i;
  918. }
  919. function ne(i, c) {
  920. if (z(i), z(c), i == null) return c;
  921. if (c == null) return i;
  922. let O = 0;
  923. const D = r.readCursor(i), w = r.readCursor(c), I = r.writeCursor(), R = [], $ = [], p = [], m = [], b = [], C = [], N = /* @__PURE__ */ new Set();
  924. D.traverse(null, (g) => {
  925. g.p != null && (p[g.p] = D.clone());
  926. }), w.traverse(null, (g) => {
  927. g.d != null && (m[g.d] = w.clone());
  928. });
  929. const B = r.writeCursor();
  930. return function g(S, re, te, K, se, $e, we, ye) {
  931. o(re || te);
  932. const oe = l(re), Pe = l(te), Ae = !!Pe && Pe.r !== void 0, Le = !!oe && oe.i !== void 0, Te = oe ? oe.d : null, Ie = Pe ? Pe.p : null, Ne = ($e || Ae) && Ie == null;
  933. if (Ie != null) K = m[Ie], we = $[Ie] = new r.WriteCursor();
  934. else if (Pe && Pe.r !== void 0) K = null;
  935. else {
  936. const T = l(K);
  937. T && T.d != null && (K = null);
  938. }
  939. const Q = l(K);
  940. if (Te != null) if (S = p[Te], ye = R[Te] = new r.WriteCursor(), Ne) $e && !Ae && ye.write("r", !0);
  941. else {
  942. const T = b[Te] = O++;
  943. we.write("d", T);
  944. }
  945. else if (oe && oe.i !== void 0) S = null;
  946. else {
  947. const T = l(S);
  948. T && T.p != null && (S = null);
  949. }
  950. let A;
  951. Le ? (o(se === void 0), A = oe.i) : A = se;
  952. const W = (Ie == null ? !Le || $e || Ae : A === void 0) ? null : we.getComponent();
  953. if (Ie != null) {
  954. if (!(se !== void 0 || Le)) {
  955. const T = Te != null ? b[Te] : O++;
  956. C[Ie] = T, ye.write("p", T);
  957. }
  958. } else Ae && (Le || se !== void 0 || (Pe.r, ye.write("r", Pe.r)));
  959. const M = Ne ? null : me(oe), P = me(Q);
  960. if ((M || P) && (M && M.name, P && P.name), M && P) {
  961. o(M === P);
  962. const T = f(oe), G = f(Q), he = M.compose(T, G);
  963. y(we, M, he), N.add(Q);
  964. } else M ? y(we, M, f(oe)) : P && (y(we, P, f(Q)), N.add(Q));
  965. const U = typeof A == "object" && A != null;
  966. let J = !1, X = 0, ee = 0, fe = 0, ce = 0, ae = 0;
  967. const Oe = r.advancer(K, (T, G) => s(G) ? ce - T - 1 : T - ce, (T, G) => {
  968. s(G) && ce++;
  969. }), H = r.advancer(S, (T, G) => _(G) ? X - T - 1 : T - X, (T, G) => {
  970. _(G) && X++;
  971. });
  972. if (r.eachChildOf(re, te, (T, G, he) => {
  973. let be, Re, qe = T, Me = T, Je = T;
  974. if (typeof T == "number") {
  975. let _e = T + fe;
  976. Re = Oe(_e), Me = _e + ce;
  977. let ue = T + ee;
  978. be = H(ue), s(l(Re)) && (be = null), qe = ue + X, Je = T + ae, o(qe >= 0, "p1PickKey is negative"), o(Me >= 0, "p2DropKey is negative");
  979. const Se = s(l(G)), xe = _(l(he));
  980. (Se || xe && !Ne) && ae--, Se && ee--, xe && fe--;
  981. } else be = H(T), Re = Oe(T);
  982. ye.descend(qe), we.descend(Me);
  983. const ze = U && !s(l(G)) ? A[Je] : void 0, ke = g(be, G, he, Re, ze, Ne, we, ye);
  984. var je, j, ie;
  985. U && !Ne ? ze !== ke && (J || (A = Array.isArray(A) ? A.slice() : Object.assign({}, A), J = !0), je = A, ie = ke, typeof (j = Je) == "number" ? (o(Array.isArray(je)), o(j < je.length)) : (o(!Array.isArray(je)), o(je[j] !== void 0)), ie === void 0 ? typeof j == "number" ? je.splice(j, 1) : delete je[j] : je[j] = ie) : o(ke === void 0), we.ascend(), ye.ascend();
  986. }), H.end(), Oe.end(), W != null) W.i = A;
  987. else if (!$e && !Ae && Ie == null) return A;
  988. }(D, D.clone(), w, w.clone(), void 0, !1, I, B), I.reset(), I.mergeTree(B.get()), I.reset(), I.get(), R.map((g) => g.get()), $.map((g) => g.get()), D.traverse(I, (g, S) => {
  989. const re = g.p;
  990. if (re != null) {
  991. const te = b[re];
  992. te != null && S.write("p", te);
  993. const K = R[re];
  994. K && K.get(), K && S.mergeTree(K.get());
  995. } else g.r !== void 0 && S.write("r", g.r);
  996. }), I.reset(), I.get(), w.traverse(I, (g, S) => {
  997. const re = g.d;
  998. if (re != null) {
  999. const K = C[re];
  1000. K != null && S.write("d", K);
  1001. const se = $[re];
  1002. se && S.mergeTree(se.get());
  1003. } else g.i !== void 0 && S.write("i", g.i);
  1004. const te = me(g);
  1005. te && !N.has(g) && y(S, te, f(g));
  1006. }), I.get();
  1007. }
  1008. function le(i) {
  1009. if (i == null) return null;
  1010. const c = new r.ReadCursor(i), O = new r.WriteCursor();
  1011. let D;
  1012. const w = [], I = [];
  1013. return function R($, p, m) {
  1014. const b = $.getComponent();
  1015. let C, N = !1;
  1016. if (b) {
  1017. b.p != null && (p.write("d", b.p), w[b.p] = $.clone()), b.r !== void 0 && p.write("i", b.r), b.d != null && (p.write("p", b.d), m = void 0), b.i !== void 0 && (m = C = b.i);
  1018. const g = me(b);
  1019. g && (m === void 0 ? (D || (D = /* @__PURE__ */ new Set()), D.add(b)) : (f(b), m = g.apply(m, f(b)), N = !0));
  1020. }
  1021. let B = 0;
  1022. for (const g of $) {
  1023. p.descend(g);
  1024. const S = typeof g == "number" ? g - B : g, re = Y(m, S);
  1025. s($.getComponent()) && B++;
  1026. const te = R($, p, re);
  1027. if (m !== void 0 && te !== void 0) {
  1028. if (N || (N = !0, m = x(m)), !k(m, S)) throw Error("Cannot modify child - invalid operation");
  1029. m[S] = te;
  1030. }
  1031. p.ascend();
  1032. }
  1033. if (C === void 0) return N ? m : void 0;
  1034. p.write("r", m);
  1035. }(c, O, void 0), D && (O.reset(), function R($, p, m) {
  1036. const b = p.getComponent();
  1037. if (b) {
  1038. const g = b.d;
  1039. if (g != null && ($ = w[g], m = I[g] = r.writeCursor()), D.has(b)) {
  1040. const S = me(b);
  1041. if (!S.invert) throw Error(`Cannot invert subtype ${S.name}`);
  1042. y(m, S, S.invert(f(b)));
  1043. }
  1044. }
  1045. let C = 0, N = 0;
  1046. const B = r.advancer($, (g, S) => _(S) ? C - g - 1 : g - C, (g, S) => {
  1047. _(S) && C++;
  1048. });
  1049. for (const g of p) if (typeof g == "number") {
  1050. const S = g - N, re = B(S), te = S + C;
  1051. m.descend(te), R(re, p, m), s(p.getComponent()) && N++, m.ascend();
  1052. } else m.descend(g), R(B(g), p, m), m.ascend();
  1053. B.end();
  1054. }(c.clone(), c, O), I.length && (O.reset(), c.traverse(O, (R, $) => {
  1055. const p = R.p;
  1056. if (p != null) {
  1057. const m = I[p];
  1058. m && m.get(), m && $.mergeTree(m.get());
  1059. }
  1060. }))), O.get();
  1061. }
  1062. const ge = (i, c) => i.some((O) => typeof O == "object" && (Array.isArray(O) ? ge(O, c) : c(O)));
  1063. function De(i, c) {
  1064. if (i == null || !ge(i, (p) => {
  1065. var m;
  1066. return p.r !== void 0 || ((m = me(p)) === null || m === void 0 ? void 0 : m.makeInvertible) != null;
  1067. })) return i;
  1068. const O = new r.ReadCursor(i), D = new r.WriteCursor();
  1069. let w = !1;
  1070. const I = [], R = [], $ = (p, m, b) => {
  1071. const C = p.getComponent();
  1072. let N = !1;
  1073. if (C) {
  1074. C.d != null && m.write("d", C.d), C.i !== void 0 && m.write("i", C.i);
  1075. const g = C.p;
  1076. if (g != null && (I[g] = p.clone(), o(b !== void 0, "Operation picks up at an invalid key"), R[g] = b, m.write("p", C.p)), C.r !== void 0 && b === void 0) throw Error("Invalid doc / op in makeInvertible: removed item missing from doc");
  1077. const S = me(C);
  1078. S && (S.makeInvertible ? w = !0 : y(m, S, f(C), !0));
  1079. }
  1080. let B = 0;
  1081. for (const g of p) {
  1082. m.descend(g);
  1083. const S = typeof g == "number" ? g - B : g, re = Y(b, S), te = $(p, m, re);
  1084. re !== te && (N || (N = !0, b = x(b)), te === void 0 ? (b = d(b, S), typeof g == "number" && B++) : b[S] = te), m.ascend();
  1085. }
  1086. return C && (C.r !== void 0 ? (m.write("r", t.default(b)), b = void 0) : C.p != null && (b = void 0)), b;
  1087. };
  1088. return $(O, D, c), D.get(), w && (D.reset(), function p(m, b, C, N, B) {
  1089. const g = b.getComponent();
  1090. if (g) {
  1091. g.i !== void 0 ? (N = g.i, B = !0) : g.d != null && (N = R[g.d], m = I[g.d], B = !1, g.d);
  1092. let K = me(g);
  1093. if (K && K.makeInvertible) {
  1094. const se = f(g);
  1095. y(C, K, K.makeInvertible(se, N), !0);
  1096. }
  1097. }
  1098. let S = 0, re = 0;
  1099. const te = r.advancer(m, (K, se) => _(se) ? S - K - 1 : K - S, (K, se) => {
  1100. _(se) && S++;
  1101. });
  1102. for (const K of b) if (typeof K == "number") {
  1103. const se = K - re, $e = te(se), we = se + S, ye = Y(N, B ? se : we);
  1104. C.descend(K), p($e, b, C, ye, B), s(b.getComponent()) && re++, C.ascend();
  1105. } else {
  1106. const se = Y(N, K);
  1107. C.descend(K), p(te(K), b, C, se, B), C.ascend();
  1108. }
  1109. te.end();
  1110. }(O.clone(), O, D, c, !1)), D.get();
  1111. }
  1112. function kt(i, c) {
  1113. return le(De(i, c));
  1114. }
  1115. const it = (i) => {
  1116. if (i == null) return null;
  1117. const c = i.slice();
  1118. for (let O = 0; O < i.length; O++) {
  1119. const D = c[O];
  1120. Array.isArray(D) && (c[O] = it(D));
  1121. }
  1122. return c;
  1123. };
  1124. function st(i, c, O) {
  1125. o(O === "left" || O === "right", "Direction must be left or right");
  1126. const D = O === "left" ? 0 : 1;
  1127. if (c == null) return {
  1128. ok: !0,
  1129. result: i
  1130. };
  1131. z(i), z(c);
  1132. let w = null;
  1133. const I = [], R = [], $ = [], p = [], m = [], b = [], C = [], N = [], B = [], g = [], S = [], re = [], te = [], K = [], se = [];
  1134. let $e = 0;
  1135. const we = r.readCursor(i), ye = r.readCursor(c), oe = r.writeCursor();
  1136. if (function Q(A, W = null, M) {
  1137. const P = l(W);
  1138. P && (P.r !== void 0 ? M = W.clone() : P.p != null && (M = null, b[P.p] = A.clone()));
  1139. const U = A.getComponent();
  1140. let J;
  1141. U && (J = U.p) != null && (m[J] = W ? W.clone() : null, $[J] = A.clone(), M && (g[J] = !0, B[J] = M), P && P.p != null && (K[J] = P.p));
  1142. const X = r.advancer(W);
  1143. for (const ee of A) Q(A, X(ee), M);
  1144. X.end();
  1145. }(ye, we, null), function Q(A, W, M, P, U) {
  1146. const J = M.getComponent();
  1147. let X, ee = !1;
  1148. J && ((X = J.d) != null ? (p[X] = M.clone(), P != null && (se[P] == null && (se[P] = []), se[P].push(X)), g[X], A = m[X] || null, W = $[X] || null, g[X] ? (U && (S[X] = !0), U = B[X] || null) : !U || D !== 1 && K[X] != null || w == null && (w = {
  1149. type: u.ConflictType.RM_UNEXPECTED_CONTENT,
  1150. op1: a.removeOp(U.getPath()),
  1151. op2: a.moveOp(W.getPath(), M.getPath())
  1152. }), ee = !0) : J.i !== void 0 && (A = W = null, ee = !0, U && w == null && (w = {
  1153. type: u.ConflictType.RM_UNEXPECTED_CONTENT,
  1154. op1: a.removeOp(U.getPath()),
  1155. op2: a.insertOp(M.getPath(), J.i)
  1156. })));
  1157. const fe = l(A);
  1158. fe && (fe.r !== void 0 ? U = A.clone() : fe.p != null && (fe.p, P = fe.p, U = null));
  1159. const ce = me(J);
  1160. ce && U && w == null && (w = {
  1161. type: u.ConflictType.RM_UNEXPECTED_CONTENT,
  1162. op1: a.removeOp(U.getPath()),
  1163. op2: a.editOp(M.getPath(), ce, f(J), !0)
  1164. });
  1165. let ae = 0, Oe = 0;
  1166. const H = r.advancer(W, (G, he) => _(he) ? ae - G - 1 : G - ae, (G, he) => {
  1167. _(he) && ae++;
  1168. }), T = r.advancer(A);
  1169. for (const G of M) if (typeof G == "number") {
  1170. const he = G - Oe, be = H(he);
  1171. Oe += +Q(T(he + ae), be, M, P, U);
  1172. } else {
  1173. const he = H(G);
  1174. Q(T(G), he, M, P, U);
  1175. }
  1176. return H.end(), T.end(), ee;
  1177. }(we, ye, ye.clone(), null, null), p.map((Q) => Q && Q.get()), w) return {
  1178. ok: !1,
  1179. conflict: w
  1180. };
  1181. S.map((Q) => !!Q);
  1182. const Pe = [];
  1183. let Ae = null;
  1184. (function Q(A, W, M, P, U) {
  1185. let J = !1;
  1186. const X = l(W);
  1187. if (_(X)) {
  1188. const H = X.p;
  1189. H != null ? (M = p[H], P = re[H] = r.writeCursor(), J = !0, U = null) : (M = null, U = W.clone());
  1190. } else s(l(M)) && (M = null);
  1191. const ee = A.getComponent();
  1192. if (ee) {
  1193. const H = ee.p;
  1194. H != null ? (U && (N[H] = U), Pe[H] = U || D === 1 && J ? null : P.getComponent(), I[H] = A.clone(), M && (C[H] = M.clone())) : ee.r !== void 0 && (U || P.write("r", !0), (U || J) && (Ae == null && (Ae = /* @__PURE__ */ new Set()), Ae.add(ee)));
  1195. }
  1196. let fe = 0, ce = 0;
  1197. const ae = r.advancer(W, void 0, (H, T) => {
  1198. _(T) && fe++;
  1199. }), Oe = r.advancer(M, (H, T) => s(T) ? ~(H - ce) : H - ce, (H, T) => {
  1200. s(T) && ce++;
  1201. });
  1202. if (A) for (const H of A) if (typeof H == "string") {
  1203. const T = ae(H), G = Oe(H);
  1204. P.descend(H), Q(A, T, G, P, U), P.ascend();
  1205. } else {
  1206. const T = ae(H), G = H - fe, he = _(l(T)) ? null : Oe(G), be = G + ce;
  1207. o(be >= 0), P.descend(be), Q(A, T, he, P, U), P.ascend();
  1208. }
  1209. ae.end(), Oe.end();
  1210. })(we, ye, ye.clone(), oe, null), oe.reset();
  1211. let Le = [];
  1212. if (function Q(A, W, M, P, U, J) {
  1213. o(W);
  1214. const X = W.getComponent();
  1215. let ee = l(P), fe = !1;
  1216. const ce = (j, ie, _e) => j ? a.moveOp(j.getPath(), ie.getPath()) : a.insertOp(ie.getPath(), _e.i);
  1217. if (s(X)) {
  1218. const j = X.d;
  1219. j != null && (R[j] = W.clone());
  1220. const ie = j != null ? Pe[j] : null;
  1221. let _e = !1;
  1222. if (X.i !== void 0 || j != null && ie) {
  1223. let ue;
  1224. ee && (ee.i !== void 0 || (ue = ee.d) != null && !g[ue]) && (_e = ue != null ? j != null && j === K[ue] : n.default(ee.i, X.i), _e || ue != null && D !== 1 && K[ue] != null || w == null && (w = {
  1225. type: u.ConflictType.DROP_COLLISION,
  1226. op1: ce(j != null ? I[j] : null, W, X),
  1227. op2: ce(ue != null ? $[ue] : null, P, ee)
  1228. })), _e || (J ? w == null && (w = {
  1229. type: u.ConflictType.RM_UNEXPECTED_CONTENT,
  1230. op1: ce(j != null ? I[j] : null, W, X),
  1231. op2: a.removeOp(J.getPath())
  1232. }) : (j != null ? (Le[$e] = j, U.write("d", ie.p = $e++)) : U.write("i", t.default(X.i)), fe = !0));
  1233. } else if (j != null && !ie) {
  1234. const ue = N[j];
  1235. ue && (J = ue.clone());
  1236. }
  1237. j != null ? (A = I[j], M = b[j], P = C[j]) : X.i !== void 0 && (A = M = null, _e || (P = null));
  1238. } else _(l(A)) && (A = M = P = null);
  1239. const ae = l(A), Oe = l(M);
  1240. if (_(Oe)) {
  1241. const j = Oe.p;
  1242. Oe.r !== void 0 && (!ae || ae.r === void 0) || g[j] ? (P = null, J = M.clone()) : j != null && (P = p[j], D !== 1 && K[j] != null || ((U = te[j]) || (U = te[j] = r.writeCursor()), U.reset(), J = null));
  1243. } else !s(X) && s(ee) && (P = null);
  1244. ee = P != null ? P.getComponent() : null;
  1245. const H = me(X);
  1246. if (H) {
  1247. const j = f(X);
  1248. if (J) w == null && (w = {
  1249. type: u.ConflictType.RM_UNEXPECTED_CONTENT,
  1250. op1: a.editOp(W.getPath(), H, j, !0),
  1251. op2: a.removeOp(J.getPath())
  1252. });
  1253. else {
  1254. const ie = me(ee);
  1255. let _e;
  1256. if (ie) {
  1257. if (H !== ie) throw Error("Transforming incompatible types");
  1258. const ue = f(ee);
  1259. _e = H.transform(j, ue, O);
  1260. } else _e = t.default(j);
  1261. y(U, H, _e);
  1262. }
  1263. }
  1264. let T = 0, G = 0, he = 0, be = 0, Re = 0, qe = 0, Me = A != null && A.descendFirst(), Je = Me;
  1265. const ze = r.advancer(M, void 0, (j, ie) => {
  1266. _(ie) && he++;
  1267. });
  1268. let ke = P != null && P.descendFirst(), je = ke;
  1269. for (const j of W) if (typeof j == "number") {
  1270. let ie;
  1271. const _e = s(W.getComponent()), ue = j - G;
  1272. {
  1273. let Be;
  1274. for (; Me && typeof (Be = A.getKey()) == "number"; ) {
  1275. Be += T;
  1276. const Ue = A.getComponent(), Xe = _(Ue);
  1277. if (Be > ue || Be === ue && (!Xe || D === 0 && _e)) break;
  1278. if (Xe) {
  1279. T--;
  1280. const Ke = Ue.p;
  1281. K.includes(Ke), Ue.d, l(te[Ue.d]), _(l(te[Ue.d])), (Ue.r === void 0 || Ae && Ae.has(Ue)) && (Ke == null || !Pe[Ke] || D !== 1 && K.includes(Ke)) || Re--;
  1282. }
  1283. Me = A.nextSibling();
  1284. }
  1285. ie = Me && Be === ue ? A : null;
  1286. }
  1287. const Se = ue - T;
  1288. let xe = ze(Se);
  1289. const ot = Se - he;
  1290. let Ze = null;
  1291. {
  1292. let Be, Ue;
  1293. for (; ke && typeof (Be = P.getKey()) == "number"; ) {
  1294. Ue = Be - be;
  1295. const Xe = P.getComponent(), Ke = s(Xe);
  1296. if (Ue > ot) break;
  1297. if (Ue === ot) {
  1298. if (!Ke) {
  1299. Ze = P;
  1300. break;
  1301. }
  1302. {
  1303. if (D === 0 && _e) {
  1304. Ze = P;
  1305. break;
  1306. }
  1307. const We = xe && _(xe.getComponent());
  1308. if (D === 0 && We) break;
  1309. }
  1310. }
  1311. if (Ke) {
  1312. const We = Xe.d;
  1313. g[We], K[We], Xe.i === void 0 && (g[We] || K[We] != null && D !== 1) ? (g[We] || K[We] != null && D === 0) && (be++, qe--) : be++;
  1314. }
  1315. ke = P.nextSibling();
  1316. }
  1317. }
  1318. const _t = ot + be + Re + qe;
  1319. o(_t >= 0, "trying to descend to a negative index"), U.descend(_t), _e && (ie = xe = Ze = null, G++), Q(ie, W, xe, Ze, U, J) && qe++, U.ascend();
  1320. } else {
  1321. let ie;
  1322. for (; Me && (ie = A.getKey(), typeof ie != "string" || !(ie > j || ie === j)); ) Me = A.nextSibling();
  1323. const _e = Me && ie === j ? A : null, ue = ze(j);
  1324. let Se;
  1325. for (; ke && (Se = P.getKey(), typeof Se != "string" || !(Se > j || Se === j)); ) ke = P.nextSibling();
  1326. const xe = ke && Se === j ? P : null;
  1327. U.descend(j), Q(_e, W, ue, xe, U, J), U.ascend();
  1328. }
  1329. return ze.end(), Je && A.ascend(), je && P.ascend(), fe;
  1330. }(we, we.clone(), ye, ye.clone(), oe, null), w) return {
  1331. ok: !1,
  1332. conflict: w
  1333. };
  1334. oe.reset();
  1335. const Te = (Q, A, W) => Q.traverse(A, (M, P) => {
  1336. M.d != null && W(M.d, Q, P);
  1337. });
  1338. (g.length || re.length) && (Te(ye, oe, (Q, A, W) => {
  1339. g[Q] && !S[Q] && W.write("r", !0), re[Q] && W.mergeTree(re[Q].get());
  1340. }), oe.reset());
  1341. const Ie = [], Ne = [];
  1342. if ((te.length || g.length) && !w) {
  1343. const Q = r.readCursor(it(oe.get()));
  1344. if (Te(Q, null, (A, W) => {
  1345. Ie[A] = W.clone();
  1346. }), te.forEach((A) => {
  1347. A && Te(r.readCursor(A.get()), null, (W, M) => {
  1348. Ie[W] = M.clone();
  1349. });
  1350. }), function A(W, M, P, U, J, X) {
  1351. const ee = l(M);
  1352. if (ee && _(ee)) if (ee.p != null) {
  1353. const T = ee.p;
  1354. Ie[T].getPath(), P = Ie[T], U = Ne[T] = r.writeCursor();
  1355. } else ee.r !== void 0 && (P = null);
  1356. else s(l(P)) && (P = null);
  1357. const fe = W.getComponent();
  1358. if (fe) {
  1359. let T;
  1360. if ((T = fe.d) != null) {
  1361. const G = te[T];
  1362. G && (G.get(), U.mergeTree(G.get()), P = r.readCursor(G.get()));
  1363. }
  1364. }
  1365. let ce = 0, ae = 0;
  1366. const Oe = r.advancer(M, void 0, (T, G) => {
  1367. _(G) && ce--;
  1368. }), H = r.advancer(P, (T, G) => s(G) ? -(T - ae) - 1 : T - ae, (T, G) => {
  1369. s(G) && ae++;
  1370. });
  1371. for (const T of W) if (typeof T == "number") {
  1372. const G = Oe(T), he = T + ce, be = H(he), Re = he + ae;
  1373. U.descend(Re), A(W, G, be, U), U.ascend();
  1374. } else U.descend(T), A(W, Oe(T), H(T), U), U.ascend();
  1375. Oe.end(), H.end();
  1376. }(ye, Q, Q.clone(), oe), oe.reset(), w) return {
  1377. ok: !1,
  1378. conflict: w
  1379. };
  1380. if (oe.get(), Ne.length) {
  1381. const A = Ne.map((M) => M ? M.get() : null), W = r.readCursor(it(oe.get()));
  1382. if (Te(W, oe, (M, P, U) => {
  1383. const J = A[M];
  1384. J && (U.mergeTree(J), A[M] = null);
  1385. }), A.find((M) => M)) {
  1386. const M = r.writeCursor(), P = r.writeCursor();
  1387. let U = 0, J = 0;
  1388. A.forEach((X) => {
  1389. X != null && Te(r.readCursor(X), null, (ee) => {
  1390. const fe = Le[ee];
  1391. M.writeMove(I[fe].getPath(), R[fe].getPath(), U++);
  1392. const ce = se[fe];
  1393. ce && ce.forEach((ae) => {
  1394. g[ae] || D !== 1 && K[ae] != null || P.writeMove($[ae].getPath(), p[ae].getPath(), J++);
  1395. });
  1396. });
  1397. }), w = {
  1398. type: u.ConflictType.BLACKHOLE,
  1399. op1: M.get(),
  1400. op2: P.get()
  1401. };
  1402. }
  1403. }
  1404. }
  1405. return w ? {
  1406. ok: !1,
  1407. conflict: w
  1408. } : {
  1409. ok: !0,
  1410. result: oe.get()
  1411. };
  1412. }
  1413. const gt = (i) => {
  1414. const c = new Error("Transform detected write conflict");
  1415. throw c.conflict = i, c.type = c.name = "writeConflict", c;
  1416. };
  1417. function jt(i, c, O) {
  1418. const D = st(i, c, O);
  1419. if (D.ok) return D.result;
  1420. gt(D.conflict);
  1421. }
  1422. const He = (i) => {
  1423. const c = r.writeCursor();
  1424. return r.readCursor(i).traverse(c, (O, D) => {
  1425. (s(O) || me(O)) && D.write("r", !0);
  1426. }), c.get();
  1427. }, $t = (i, c) => {
  1428. const { type: O, op1: D, op2: w } = i;
  1429. switch (O) {
  1430. case u.ConflictType.DROP_COLLISION:
  1431. return c === "left" ? [null, He(w)] : [He(D), null];
  1432. case u.ConflictType.RM_UNEXPECTED_CONTENT:
  1433. let I = !1;
  1434. return r.readCursor(D).traverse(null, (R) => {
  1435. R.r !== void 0 && (I = !0);
  1436. }), I ? [null, He(w)] : [He(D), null];
  1437. case u.ConflictType.BLACKHOLE:
  1438. return [He(D), He(w)];
  1439. default:
  1440. throw Error("Unrecognised conflict: " + O);
  1441. }
  1442. };
  1443. function yt(i, c, O, D) {
  1444. let w = null;
  1445. for (; ; ) {
  1446. const I = st(c, O, D);
  1447. if (I.ok) return ne(w, I.result);
  1448. {
  1449. const { conflict: R } = I;
  1450. i(R) || gt(R);
  1451. const [$, p] = $t(R, D);
  1452. c = ne(q(c), $), O = ne(q(O), p), w = ne(w, p);
  1453. }
  1454. }
  1455. }
  1456. }(et)), et;
  1457. }
  1458. var Pt;
  1459. function sn() {
  1460. return Pt || (Pt = 1, function(a) {
  1461. var e = Ye.__createBinding || (Object.create ? function(u, o, l, E) {
  1462. E === void 0 && (E = l), Object.defineProperty(u, E, { enumerable: !0, get: function() {
  1463. return o[l];
  1464. } });
  1465. } : function(u, o, l, E) {
  1466. E === void 0 && (E = l), u[E] = o[l];
  1467. }), n = Ye.__exportStar || function(u, o) {
  1468. for (var l in u) l !== "default" && !o.hasOwnProperty(l) && e(o, u, l);
  1469. };
  1470. Object.defineProperty(a, "__esModule", { value: !0 }), n(rn(), a);
  1471. var t = Mt();
  1472. Object.defineProperty(a, "ReadCursor", { enumerable: !0, get: function() {
  1473. return t.ReadCursor;
  1474. } }), Object.defineProperty(a, "WriteCursor", { enumerable: !0, get: function() {
  1475. return t.WriteCursor;
  1476. } });
  1477. var r = St();
  1478. Object.defineProperty(a, "ConflictType", { enumerable: !0, get: function() {
  1479. return r.ConflictType;
  1480. } });
  1481. }(Ye)), Ye;
  1482. }
  1483. var V = sn();
  1484. class on {
  1485. constructor() {
  1486. F(this, "drawingManagerData", {});
  1487. F(this, "_oldDrawingManagerData", {});
  1488. F(this, "_focusDrawings", []);
  1489. F(this, "_remove$", new ve());
  1490. F(this, "remove$", this._remove$.asObservable());
  1491. F(this, "_add$", new ve());
  1492. F(this, "add$", this._add$.asObservable());
  1493. F(this, "_update$", new ve());
  1494. F(this, "update$", this._update$.asObservable());
  1495. F(this, "_order$", new ve());
  1496. F(this, "order$", this._order$.asObservable());
  1497. F(this, "_group$", new ve());
  1498. F(this, "group$", this._group$.asObservable());
  1499. F(this, "_ungroup$", new ve());
  1500. F(this, "ungroup$", this._ungroup$.asObservable());
  1501. F(this, "_refreshTransform$", new ve());
  1502. F(this, "refreshTransform$", this._refreshTransform$.asObservable());
  1503. F(this, "_visible$", new ve());
  1504. F(this, "visible$", this._visible$.asObservable());
  1505. // private readonly _externalUpdate$ = new Subject<T[]>();
  1506. // readonly externalUpdate$ = this._externalUpdate$.asObservable();
  1507. F(this, "_focus$", new ve());
  1508. F(this, "focus$", this._focus$.asObservable());
  1509. F(this, "_featurePluginUpdate$", new ve());
  1510. F(this, "featurePluginUpdate$", this._featurePluginUpdate$.asObservable());
  1511. F(this, "_featurePluginAdd$", new ve());
  1512. F(this, "featurePluginAdd$", this._featurePluginAdd$.asObservable());
  1513. F(this, "_featurePluginRemove$", new ve());
  1514. F(this, "featurePluginRemove$", this._featurePluginRemove$.asObservable());
  1515. F(this, "_featurePluginOrderUpdate$", new ve());
  1516. F(this, "featurePluginOrderUpdate$", this._featurePluginOrderUpdate$.asObservable());
  1517. F(this, "_featurePluginGroupUpdate$", new ve());
  1518. F(this, "featurePluginGroupUpdate$", this._featurePluginGroupUpdate$.asObservable());
  1519. F(this, "_featurePluginUngroupUpdate$", new ve());
  1520. F(this, "featurePluginUngroupUpdate$", this._featurePluginUngroupUpdate$.asObservable());
  1521. F(this, "_visible", !0);
  1522. F(this, "_editable", !0);
  1523. }
  1524. dispose() {
  1525. this._remove$.complete(), this._add$.complete(), this._update$.complete(), this._order$.complete(), this._focus$.complete(), this._featurePluginUpdate$.complete(), this._featurePluginAdd$.complete(), this._featurePluginRemove$.complete(), this._featurePluginOrderUpdate$.complete(), this.drawingManagerData = {}, this._oldDrawingManagerData = {};
  1526. }
  1527. visibleNotification(e) {
  1528. this._visible$.next(e);
  1529. }
  1530. refreshTransform(e) {
  1531. e.forEach((n) => {
  1532. const t = this._getCurrentBySearch(n);
  1533. t != null && (t.transform = n.transform, t.transforms = n.transforms, t.isMultiTransform = n.isMultiTransform);
  1534. }), this.refreshTransformNotification(e);
  1535. }
  1536. getDrawingDataForUnit(e) {
  1537. return this.drawingManagerData[e] || {};
  1538. }
  1539. removeDrawingDataForUnit(e) {
  1540. const n = this.drawingManagerData[e];
  1541. if (n == null)
  1542. return;
  1543. delete this.drawingManagerData[e];
  1544. const t = [];
  1545. Object.keys(n).forEach((r) => {
  1546. const u = n[r];
  1547. (u == null ? void 0 : u.data) != null && Object.keys(u.data).forEach((o) => {
  1548. t.push({ unitId: e, subUnitId: r, drawingId: o });
  1549. });
  1550. }), t.length > 0 && this.removeNotification(t);
  1551. }
  1552. registerDrawingData(e, n) {
  1553. this.drawingManagerData[e] = n;
  1554. }
  1555. initializeNotification(e) {
  1556. const n = [], t = this.drawingManagerData[e];
  1557. t != null && (Object.keys(t).forEach((r) => {
  1558. this._establishDrawingMap(e, r);
  1559. const u = t[r];
  1560. Object.keys(u.data).forEach((o) => {
  1561. const l = u.data[o];
  1562. l.unitId = e, l.subUnitId = r, n.push(l);
  1563. });
  1564. }), n.length > 0 && this.addNotification(n));
  1565. }
  1566. getDrawingData(e, n) {
  1567. return this._getDrawingData(e, n);
  1568. }
  1569. // Use in doc only.
  1570. setDrawingData(e, n, t) {
  1571. this.drawingManagerData[e][n].data = t;
  1572. }
  1573. getBatchAddOp(e) {
  1574. const n = [], t = [], r = [];
  1575. e.forEach((x) => {
  1576. const { op: _, invertOp: s } = this._addByParam(x);
  1577. n.push({ unitId: x.unitId, subUnitId: x.subUnitId, drawingId: x.drawingId }), t.push(_), r.push(s);
  1578. });
  1579. const u = t.reduce(V.type.compose, null), o = r.reduce(V.type.compose, null), { unitId: l, subUnitId: E } = e[0];
  1580. return { undo: o, redo: u, unitId: l, subUnitId: E, objects: n };
  1581. }
  1582. getBatchRemoveOp(e) {
  1583. const n = [], t = [];
  1584. e.forEach((E) => {
  1585. const { op: x, invertOp: _ } = this._removeByParam(E);
  1586. n.unshift(x), t.push(_);
  1587. });
  1588. const r = n.reduce(V.type.compose, null), u = t.reduce(V.type.compose, null), { unitId: o, subUnitId: l } = e[0];
  1589. return { undo: u, redo: r, unitId: o, subUnitId: l, objects: e };
  1590. }
  1591. getBatchUpdateOp(e) {
  1592. const n = [], t = [], r = [];
  1593. e.forEach((x) => {
  1594. const { op: _, invertOp: s } = this._updateByParam(x);
  1595. n.push({ unitId: x.unitId, subUnitId: x.subUnitId, drawingId: x.drawingId }), t.push(_), r.push(s);
  1596. });
  1597. const u = t.reduce(V.type.compose, null), o = r.reduce(V.type.compose, null), { unitId: l, subUnitId: E } = e[0];
  1598. return { undo: o, redo: u, unitId: l, subUnitId: E, objects: n };
  1599. }
  1600. removeNotification(e) {
  1601. this._remove$.next(e);
  1602. }
  1603. addNotification(e) {
  1604. this._add$.next(e);
  1605. }
  1606. updateNotification(e) {
  1607. this._update$.next(e);
  1608. }
  1609. orderNotification(e) {
  1610. this._order$.next(e);
  1611. }
  1612. groupUpdateNotification(e) {
  1613. this._group$.next(e);
  1614. }
  1615. ungroupUpdateNotification(e) {
  1616. this._ungroup$.next(e);
  1617. }
  1618. refreshTransformNotification(e) {
  1619. this._refreshTransform$.next(e);
  1620. }
  1621. getGroupDrawingOp(e) {
  1622. const n = [], { unitId: t, subUnitId: r } = e[0].parent;
  1623. e.forEach((l) => {
  1624. n.push(this._getGroupDrawingOp(l));
  1625. });
  1626. const u = n.reduce(V.type.compose, null);
  1627. return { undo: V.type.invertWithDoc(u, this.drawingManagerData), redo: u, unitId: t, subUnitId: r, objects: e };
  1628. }
  1629. getUngroupDrawingOp(e) {
  1630. const n = [], { unitId: t, subUnitId: r } = e[0].parent;
  1631. e.forEach((l) => {
  1632. n.push(this._getUngroupDrawingOp(l));
  1633. });
  1634. const u = n.reduce(V.type.compose, null);
  1635. return { undo: V.type.invertWithDoc(u, this.drawingManagerData), redo: u, unitId: t, subUnitId: r, objects: e };
  1636. }
  1637. getDrawingsByGroup(e) {
  1638. const { unitId: n, subUnitId: t, drawingId: r } = e;
  1639. if (this.getDrawingByParam({ unitId: n, subUnitId: t, drawingId: r }) == null)
  1640. return [];
  1641. const o = this._getDrawingData(n, t), l = [];
  1642. return Object.keys(o).forEach((E) => {
  1643. const x = o[E];
  1644. x.groupId === r && l.push(x);
  1645. }), l;
  1646. }
  1647. _getGroupDrawingOp(e) {
  1648. const { parent: n, children: t } = e, { unitId: r, subUnitId: u, drawingId: o } = n, l = [];
  1649. l.push(
  1650. V.insertOp([r, u, "data", o], n)
  1651. );
  1652. let E = Number.NEGATIVE_INFINITY;
  1653. return t.forEach((x) => {
  1654. const { unitId: _, subUnitId: s, drawingId: d } = x, h = this._hasDrawingOrder({ unitId: _, subUnitId: s, drawingId: d });
  1655. E = Math.max(E, h), l.push(
  1656. ...this._getUpdateParamCompareOp(x, this.getDrawingByParam({ unitId: _, subUnitId: s, drawingId: d }))
  1657. );
  1658. }), E === Number.NEGATIVE_INFINITY && (E = this._getDrawingOrder(r, u).length), l.push(
  1659. V.insertOp([r, u, "order", E], o)
  1660. ), l.reduce(V.type.compose, null);
  1661. }
  1662. _getUngroupDrawingOp(e) {
  1663. const { parent: n, children: t } = e, { unitId: r, subUnitId: u, drawingId: o } = n, l = [];
  1664. return t.forEach((E) => {
  1665. const { unitId: x, subUnitId: _, drawingId: s } = E;
  1666. l.push(
  1667. ...this._getUpdateParamCompareOp(E, this.getDrawingByParam({ unitId: x, subUnitId: _, drawingId: s }))
  1668. );
  1669. }), l.push(
  1670. V.removeOp([r, u, "data", o], !0)
  1671. ), l.push(
  1672. V.removeOp([r, u, "order", this._getDrawingOrder(r, u).indexOf(o)], !0)
  1673. ), l.reduce(V.type.compose, null);
  1674. }
  1675. applyJson1(e, n, t) {
  1676. this._establishDrawingMap(e, n), this._oldDrawingManagerData = { ...this.drawingManagerData }, this.drawingManagerData = V.type.apply(this.drawingManagerData, t);
  1677. }
  1678. // private _fillMissingFields(jsonOp: JSONOp) {
  1679. // if (jsonOp == null) {
  1680. // return;
  1681. // }
  1682. // let object: { [key: string]: {} } = this.drawingManagerData;
  1683. // for (let i = 0; i < jsonOp.length; i++) {
  1684. // const op = jsonOp[i];
  1685. // if (Array.isArray(op)) {
  1686. // const opKey = op[0] as string;
  1687. // if (!(opKey in object)) {
  1688. // object[opKey] = null as unknown as never;
  1689. // }
  1690. // } else if (typeof op === 'string') {
  1691. // object = object[op];
  1692. // if (object == null) {
  1693. // break;
  1694. // }
  1695. // }
  1696. // }
  1697. // }
  1698. featurePluginUpdateNotification(e) {
  1699. this._featurePluginUpdate$.next(e);
  1700. }
  1701. featurePluginOrderUpdateNotification(e) {
  1702. this._featurePluginOrderUpdate$.next(e);
  1703. }
  1704. featurePluginAddNotification(e) {
  1705. this._featurePluginAdd$.next(e);
  1706. }
  1707. featurePluginRemoveNotification(e) {
  1708. this._featurePluginRemove$.next(e);
  1709. }
  1710. featurePluginGroupUpdateNotification(e) {
  1711. this._featurePluginGroupUpdate$.next(e);
  1712. }
  1713. featurePluginUngroupUpdateNotification(e) {
  1714. this._featurePluginUngroupUpdate$.next(e);
  1715. }
  1716. getDrawingByParam(e) {
  1717. return this._getCurrentBySearch(e);
  1718. }
  1719. getOldDrawingByParam(e) {
  1720. return this._getOldBySearch(e);
  1721. }
  1722. getDrawingOKey(e) {
  1723. const [n, t, r] = e.split("#-#");
  1724. return this._getCurrentBySearch({ unitId: n, subUnitId: t, drawingId: r });
  1725. }
  1726. focusDrawing(e) {
  1727. if (e == null || e.length === 0) {
  1728. this._focusDrawings = [], this._focus$.next([]);
  1729. return;
  1730. }
  1731. const n = [];
  1732. e.forEach((t) => {
  1733. var E;
  1734. const { unitId: r, subUnitId: u, drawingId: o } = t, l = (E = this._getDrawingData(r, u)) == null ? void 0 : E[o];
  1735. l != null && n.push(l);
  1736. }), n.length > 0 && (this._focusDrawings = n, this._focus$.next(n));
  1737. }
  1738. getFocusDrawings() {
  1739. const e = [];
  1740. return this._focusDrawings.forEach((n) => {
  1741. var l;
  1742. const { unitId: t, subUnitId: r, drawingId: u } = n, o = (l = this._getDrawingData(t, r)) == null ? void 0 : l[u];
  1743. o != null && e.push(o);
  1744. }), e;
  1745. }
  1746. getDrawingOrder(e, n) {
  1747. return this._getDrawingOrder(e, n);
  1748. }
  1749. // Use in doc only.
  1750. setDrawingOrder(e, n, t) {
  1751. this.drawingManagerData[e][n].order = t;
  1752. }
  1753. orderUpdateNotification(e) {
  1754. this._order$.next(e);
  1755. }
  1756. getForwardDrawingsOp(e) {
  1757. const { unitId: n, subUnitId: t, drawingIds: r } = e, u = [], o = this.getDrawingOrder(n, t), l = [...r];
  1758. r.forEach((_) => {
  1759. const s = this._hasDrawingOrder({ unitId: n, subUnitId: t, drawingId: _ });
  1760. if (s === -1 || s === o.length - 1)
  1761. return;
  1762. const d = V.moveOp([n, t, "order", s], [n, t, "order", s + 1]);
  1763. u.push(d), l.includes(o[s + 1]) || l.push(o[s + 1]);
  1764. });
  1765. const E = u.reduce(V.type.compose, null);
  1766. return { undo: V.type.invertWithDoc(E, this.drawingManagerData), redo: E, unitId: n, subUnitId: t, objects: { ...e, drawingIds: l } };
  1767. }
  1768. getBackwardDrawingOp(e) {
  1769. const { unitId: n, subUnitId: t, drawingIds: r } = e, u = [], o = this.getDrawingOrder(n, t), l = [...r];
  1770. r.forEach((_) => {
  1771. const s = this._hasDrawingOrder({ unitId: n, subUnitId: t, drawingId: _ });
  1772. if (s === -1 || s === 0)
  1773. return;
  1774. const d = V.moveOp([n, t, "order", s], [n, t, "order", s - 1]);
  1775. u.push(d), l.includes(o[s - 1]) || l.push(o[s - 1]);
  1776. });
  1777. const E = u.reduce(V.type.compose, null);
  1778. return { undo: V.type.invertWithDoc(E, this.drawingManagerData), redo: E, unitId: n, subUnitId: t, objects: { ...e, drawingIds: l } };
  1779. }
  1780. getFrontDrawingsOp(e) {
  1781. const { unitId: n, subUnitId: t, drawingIds: r } = e, u = this._getOrderFromSearchParams(n, t, r), o = [...r], l = this.getDrawingOrder(n, t), E = [];
  1782. u.forEach((s) => {
  1783. const { drawingId: d } = s, h = this._getDrawingCount(n, t) - 1, k = V.moveOp([n, t, "order", this._getDrawingOrder(n, t).indexOf(d)], [n, t, "order", h]);
  1784. E.push(k), o.includes(l[h]) || o.push(l[h]);
  1785. });
  1786. const x = E.reduce(V.type.compose, null);
  1787. return { undo: V.type.invertWithDoc(x, this.drawingManagerData), redo: x, unitId: n, subUnitId: t, objects: { ...e, drawingIds: o } };
  1788. }
  1789. getBackDrawingsOp(e) {
  1790. const { unitId: n, subUnitId: t, drawingIds: r } = e, u = this._getOrderFromSearchParams(n, t, r, !0), o = [...r], l = this.getDrawingOrder(n, t), E = [];
  1791. u.forEach((s) => {
  1792. const { drawingId: d } = s, h = V.moveOp([n, t, "order", this._getDrawingOrder(n, t).indexOf(d)], [n, t, "order", 0]);
  1793. E.push(h), o.includes(l[0]) || o.push(l[0]);
  1794. });
  1795. const x = E.reduce(V.type.compose, null);
  1796. return { undo: V.type.invertWithDoc(x, this.drawingManagerData), redo: x, unitId: n, subUnitId: t, objects: { ...e, drawingIds: o } };
  1797. }
  1798. _getDrawingCount(e, n) {
  1799. return this.getDrawingOrder(e, n).length || 0;
  1800. }
  1801. _getOrderFromSearchParams(e, n, t, r = !1) {
  1802. return t.map((u) => {
  1803. const o = this._hasDrawingOrder({ unitId: e, subUnitId: n, drawingId: u });
  1804. return { drawingId: u, zIndex: o };
  1805. }).sort(r === !1 ? xt : Bt);
  1806. }
  1807. _hasDrawingOrder(e) {
  1808. if (e == null)
  1809. return -1;
  1810. const { unitId: n, subUnitId: t, drawingId: r } = e;
  1811. return this._establishDrawingMap(n, t), this._getDrawingOrder(n, t).indexOf(r);
  1812. }
  1813. _getCurrentBySearch(e) {
  1814. var u, o, l;
  1815. if (e == null)
  1816. return;
  1817. const { unitId: n, subUnitId: t, drawingId: r } = e;
  1818. return (l = (o = (u = this.drawingManagerData[n]) == null ? void 0 : u[t]) == null ? void 0 : o.data) == null ? void 0 : l[r];
  1819. }
  1820. _getOldBySearch(e) {
  1821. var u, o, l;
  1822. if (e == null)
  1823. return;
  1824. const { unitId: n, subUnitId: t, drawingId: r } = e;
  1825. return (l = (o = (u = this._oldDrawingManagerData[n]) == null ? void 0 : u[t]) == null ? void 0 : o.data) == null ? void 0 : l[r];
  1826. }
  1827. _establishDrawingMap(e, n, t) {
  1828. var r;
  1829. return this.drawingManagerData[e] || (this.drawingManagerData[e] = {}), this.drawingManagerData[e][n] || (this.drawingManagerData[e][n] = {
  1830. data: {},
  1831. order: []
  1832. }), t == null ? null : (r = this.drawingManagerData[e][n].data) == null ? void 0 : r[t];
  1833. }
  1834. _addByParam(e) {
  1835. const { unitId: n, subUnitId: t, drawingId: r } = e;
  1836. this._establishDrawingMap(n, t, r);
  1837. const u = V.insertOp([n, t, "data", r], e), o = V.insertOp([n, t, "order", this._getDrawingOrder(n, t).length], r), l = [u, o].reduce(V.type.compose, null), E = V.type.invertWithDoc(l, this.drawingManagerData);
  1838. return { op: l, invertOp: E };
  1839. }
  1840. _removeByParam(e) {
  1841. if (e == null)
  1842. return { op: [], invertOp: [] };
  1843. const { unitId: n, subUnitId: t, drawingId: r } = e;
  1844. if (this._establishDrawingMap(n, t, r) == null)
  1845. return { op: [], invertOp: [] };
  1846. const o = V.removeOp([n, t, "data", r], !0), l = V.removeOp([n, t, "order", this._getDrawingOrder(n, t).indexOf(r)], !0), E = [o, l].reduce(V.type.compose, null), x = V.type.invertWithDoc(E, this.drawingManagerData);
  1847. return { op: E, invertOp: x };
  1848. }
  1849. _updateByParam(e) {
  1850. const { unitId: n, subUnitId: t, drawingId: r } = e, u = this._establishDrawingMap(n, t, r);
  1851. if (u == null)
  1852. return { op: [], invertOp: [] };
  1853. const l = this._getUpdateParamCompareOp(e, u).reduce(V.type.compose, null), E = V.type.invertWithDoc(l, this.drawingManagerData);
  1854. return { op: l, invertOp: E };
  1855. }
  1856. // private _initializeDrawingData(updateParam: T, oldParam: T) {
  1857. // Object.keys(updateParam).forEach((key) => {
  1858. // if (!(key in oldParam)) {
  1859. // oldParam[key as keyof IDrawingParam] = null as unknown as never;
  1860. // }
  1861. // });
  1862. // }
  1863. _getUpdateParamCompareOp(e, n) {
  1864. const { unitId: t, subUnitId: r, drawingId: u } = e, o = [];
  1865. return Object.keys(e).forEach((l) => {
  1866. const E = e[l], x = n[l];
  1867. x !== E && o.push(
  1868. V.replaceOp([t, r, "data", u, l], x, E)
  1869. );
  1870. }), o;
  1871. }
  1872. _getDrawingData(e, n) {
  1873. var t, r;
  1874. return ((r = (t = this.drawingManagerData[e]) == null ? void 0 : t[n]) == null ? void 0 : r.data) || {};
  1875. }
  1876. _getDrawingOrder(e, n) {
  1877. var t, r;
  1878. return ((r = (t = this.drawingManagerData[e]) == null ? void 0 : t[n]) == null ? void 0 : r.order) || [];
  1879. }
  1880. getDrawingVisible() {
  1881. return this._visible;
  1882. }
  1883. getDrawingEditable() {
  1884. return this._editable;
  1885. }
  1886. setDrawingVisible(e) {
  1887. this._visible = e;
  1888. }
  1889. setDrawingEditable(e) {
  1890. this._editable = e;
  1891. }
  1892. }
  1893. class an extends on {
  1894. }
  1895. function bn({ unitId: a, subUnitId: e, drawingId: n }, t) {
  1896. return typeof t == "number" ? `${a}#-#${e}#-#${n}#-#${t}` : `${a}#-#${e}#-#${n}`;
  1897. }
  1898. const vn = async (a) => new Promise((e, n) => {
  1899. const t = new Image();
  1900. t.src = a, t.onload = () => {
  1901. e({
  1902. width: t.width,
  1903. height: t.height,
  1904. image: t
  1905. });
  1906. }, t.onerror = (r) => {
  1907. n(r);
  1908. };
  1909. }), Ut = Wt("univer.drawing-manager.service"), ln = {
  1910. id: "drawing.operation.set-drawing-selected",
  1911. type: Gt.OPERATION,
  1912. handler: (a, e) => {
  1913. const n = a.get(Ut);
  1914. return e == null ? !1 : (n.focusDrawing(e), !0);
  1915. }
  1916. }, un = "drawing.config", Tt = {};
  1917. class dn {
  1918. constructor() {
  1919. F(this, "_waitCount", 0);
  1920. F(this, "_change$", new ve());
  1921. F(this, "change$", this._change$);
  1922. F(this, "_imageSourceCache", /* @__PURE__ */ new Map());
  1923. }
  1924. setWaitCount(e) {
  1925. this._waitCount = e, this._change$.next(e);
  1926. }
  1927. getImageSourceCache(e, n) {
  1928. if (n === at.BASE64) {
  1929. const t = new Image();
  1930. return t.src = e, t;
  1931. }
  1932. return this._imageSourceCache.get(e);
  1933. }
  1934. addImageSourceCache(e, n, t) {
  1935. n === at.BASE64 || t == null || this._imageSourceCache.set(e, t);
  1936. }
  1937. async getImage(e) {
  1938. return Promise.resolve(e);
  1939. }
  1940. async saveImage(e) {
  1941. return new Promise((n, t) => {
  1942. if (!Zt.includes(e.type)) {
  1943. t(new Error(Qe.ERROR_IMAGE_TYPE)), this._decreaseWaiting();
  1944. return;
  1945. }
  1946. if (e.size > Yt) {
  1947. t(new Error(Qe.ERROR_EXCEED_SIZE)), this._decreaseWaiting();
  1948. return;
  1949. }
  1950. const r = new FileReader();
  1951. r.readAsDataURL(e), r.onload = (u) => {
  1952. var E;
  1953. const o = (E = u.target) == null ? void 0 : E.result;
  1954. if (o == null) {
  1955. t(new Error(Qe.ERROR_IMAGE)), this._decreaseWaiting();
  1956. return;
  1957. }
  1958. const l = Lt.generateRandomId(6);
  1959. n({
  1960. imageId: l,
  1961. imageSourceType: at.BASE64,
  1962. source: o,
  1963. base64Cache: o,
  1964. status: Qe.SUCCUSS
  1965. }), this._decreaseWaiting();
  1966. };
  1967. });
  1968. }
  1969. _decreaseWaiting() {
  1970. this._waitCount -= 1, this._change$.next(this._waitCount);
  1971. }
  1972. }
  1973. var cn = Object.defineProperty, fn = Object.getOwnPropertyDescriptor, hn = (a, e, n, t) => {
  1974. for (var r = t > 1 ? void 0 : t ? fn(e, n) : e, u = a.length - 1, o; u >= 0; u--)
  1975. (o = a[u]) && (r = (t ? o(e, n, r) : o(r)) || r);
  1976. return t && r && cn(e, n, r), r;
  1977. }, ct = (a, e) => (n, t) => e(n, t, a);
  1978. const pn = "UNIVER_DRAWING_PLUGIN";
  1979. var ft;
  1980. let At = (ft = class extends Ft {
  1981. constructor(a = Tt, e, n, t) {
  1982. super(), this._config = a, this._injector = e, this._configService = n, this._commandService = t;
  1983. const { ...r } = Vt(
  1984. {},
  1985. Tt,
  1986. this._config
  1987. );
  1988. this._configService.setConfig(un, r);
  1989. }
  1990. onStarting() {
  1991. this._initCommands(), this._initDependencies();
  1992. }
  1993. _initDependencies() {
  1994. var n;
  1995. Ht([
  1996. [Jt, { useClass: dn }],
  1997. [Ut, { useClass: an }]
  1998. ], (n = this._config) == null ? void 0 : n.override).forEach((t) => this._injector.add(t));
  1999. }
  2000. _initCommands() {
  2001. [
  2002. ln
  2003. ].forEach((a) => this.disposeWithMe(this._commandService.registerCommand(a)));
  2004. }
  2005. }, F(ft, "pluginName", pn), ft);
  2006. At = hn([
  2007. ct(1, qt(Kt)),
  2008. ct(2, zt),
  2009. ct(3, Xt)
  2010. ], At);
  2011. export {
  2012. Zt as DRAWING_IMAGE_ALLOW_IMAGE_LIST,
  2013. Yt as DRAWING_IMAGE_ALLOW_SIZE,
  2014. wn as DRAWING_IMAGE_COUNT_LIMIT,
  2015. On as DRAWING_IMAGE_HEIGHT_LIMIT,
  2016. mn as DRAWING_IMAGE_WIDTH_LIMIT,
  2017. an as DrawingManagerService,
  2018. Ut as IDrawingManagerService,
  2019. En as IImageIoService,
  2020. dn as ImageIoService,
  2021. Dn as ImageSourceType,
  2022. Pn as ImageUploadStatusType,
  2023. ln as SetDrawingSelectedOperation,
  2024. on as UnitDrawingService,
  2025. At as UniverDrawingPlugin,
  2026. bn as getDrawingShapeKeyByDrawingSearch,
  2027. vn as getImageSize
  2028. };