fable-editor 1.3.0 → 1.3.1

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.
@@ -1,5 +1,5 @@
1
- import ue, { forwardRef as Ve, useRef as z, useImperativeHandle as ze, useEffect as lt } from "react";
2
- var St = { exports: {} }, J = {};
1
+ import pe, { forwardRef as Xe, useRef as z, useImperativeHandle as Ye, useEffect as lt } from "react";
2
+ var Mt = { exports: {} }, J = {};
3
3
  /**
4
4
  * @license React
5
5
  * react-jsx-runtime.production.min.js
@@ -9,19 +9,19 @@ var St = { exports: {} }, J = {};
9
9
  * This source code is licensed under the MIT license found in the
10
10
  * LICENSE file in the root directory of this source tree.
11
11
  */
12
- var Kt;
13
- function Xe() {
14
- if (Kt) return J;
15
- Kt = 1;
16
- var u = ue, t = Symbol.for("react.element"), e = Symbol.for("react.fragment"), i = Object.prototype.hasOwnProperty, s = u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, n = { key: !0, ref: !0, __self: !0, __source: !0 };
17
- function r(l, o, a) {
18
- var d, p = {}, m = null, b = null;
19
- a !== void 0 && (m = "" + a), o.key !== void 0 && (m = "" + o.key), o.ref !== void 0 && (b = o.ref);
12
+ var Jt;
13
+ function Ge() {
14
+ if (Jt) return J;
15
+ Jt = 1;
16
+ var u = pe, t = Symbol.for("react.element"), e = Symbol.for("react.fragment"), i = Object.prototype.hasOwnProperty, s = u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, n = { key: !0, ref: !0, __self: !0, __source: !0 };
17
+ function l(r, o, a) {
18
+ var d, p = {}, m = null, v = null;
19
+ a !== void 0 && (m = "" + a), o.key !== void 0 && (m = "" + o.key), o.ref !== void 0 && (v = o.ref);
20
20
  for (d in o) i.call(o, d) && !n.hasOwnProperty(d) && (p[d] = o[d]);
21
- if (l && l.defaultProps) for (d in o = l.defaultProps, o) p[d] === void 0 && (p[d] = o[d]);
22
- return { $$typeof: t, type: l, key: m, ref: b, props: p, _owner: s.current };
21
+ if (r && r.defaultProps) for (d in o = r.defaultProps, o) p[d] === void 0 && (p[d] = o[d]);
22
+ return { $$typeof: t, type: r, key: m, ref: v, props: p, _owner: s.current };
23
23
  }
24
- return J.Fragment = e, J.jsx = r, J.jsxs = r, J;
24
+ return J.Fragment = e, J.jsx = l, J.jsxs = l, J;
25
25
  }
26
26
  var tt = {};
27
27
  /**
@@ -33,51 +33,51 @@ var tt = {};
33
33
  * This source code is licensed under the MIT license found in the
34
34
  * LICENSE file in the root directory of this source tree.
35
35
  */
36
- var Jt;
37
- function Ye() {
38
- return Jt || (Jt = 1, process.env.NODE_ENV !== "production" && function() {
39
- var u = ue, t = Symbol.for("react.element"), e = Symbol.for("react.portal"), i = Symbol.for("react.fragment"), s = Symbol.for("react.strict_mode"), n = Symbol.for("react.profiler"), r = Symbol.for("react.provider"), l = Symbol.for("react.context"), o = Symbol.for("react.forward_ref"), a = Symbol.for("react.suspense"), d = Symbol.for("react.suspense_list"), p = Symbol.for("react.memo"), m = Symbol.for("react.lazy"), b = Symbol.for("react.offscreen"), y = Symbol.iterator, g = "@@iterator";
40
- function x(c) {
36
+ var te;
37
+ function Ke() {
38
+ return te || (te = 1, process.env.NODE_ENV !== "production" && function() {
39
+ var u = pe, t = Symbol.for("react.element"), e = Symbol.for("react.portal"), i = Symbol.for("react.fragment"), s = Symbol.for("react.strict_mode"), n = Symbol.for("react.profiler"), l = Symbol.for("react.provider"), r = Symbol.for("react.context"), o = Symbol.for("react.forward_ref"), a = Symbol.for("react.suspense"), d = Symbol.for("react.suspense_list"), p = Symbol.for("react.memo"), m = Symbol.for("react.lazy"), v = Symbol.for("react.offscreen"), b = Symbol.iterator, f = "@@iterator";
40
+ function y(c) {
41
41
  if (c === null || typeof c != "object")
42
42
  return null;
43
- var f = y && c[y] || c[g];
44
- return typeof f == "function" ? f : null;
43
+ var g = b && c[b] || c[f];
44
+ return typeof g == "function" ? g : null;
45
45
  }
46
- var w = u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
46
+ var C = u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
47
47
  function E(c) {
48
48
  {
49
- for (var f = arguments.length, v = new Array(f > 1 ? f - 1 : 0), T = 1; T < f; T++)
50
- v[T - 1] = arguments[T];
51
- I("error", c, v);
49
+ for (var g = arguments.length, x = new Array(g > 1 ? g - 1 : 0), T = 1; T < g; T++)
50
+ x[T - 1] = arguments[T];
51
+ I("error", c, x);
52
52
  }
53
53
  }
54
- function I(c, f, v) {
54
+ function I(c, g, x) {
55
55
  {
56
- var T = w.ReactDebugCurrentFrame, k = T.getStackAddendum();
57
- k !== "" && (f += "%s", v = v.concat([k]));
58
- var H = v.map(function(M) {
56
+ var T = C.ReactDebugCurrentFrame, k = T.getStackAddendum();
57
+ k !== "" && (g += "%s", x = x.concat([k]));
58
+ var H = x.map(function(M) {
59
59
  return String(M);
60
60
  });
61
- H.unshift("Warning: " + f), Function.prototype.apply.call(console[c], console, H);
61
+ H.unshift("Warning: " + g), Function.prototype.apply.call(console[c], console, H);
62
62
  }
63
63
  }
64
- var A = !1, $ = !1, Z = !1, F = !1, et = !1, Lt;
65
- Lt = Symbol.for("react.module.reference");
66
- function ve(c) {
67
- return !!(typeof c == "string" || typeof c == "function" || c === i || c === n || et || c === s || c === a || c === d || F || c === b || A || $ || Z || typeof c == "object" && c !== null && (c.$$typeof === m || c.$$typeof === p || c.$$typeof === r || c.$$typeof === l || c.$$typeof === o || // This needs to include all possible module reference object
64
+ var A = !1, $ = !1, Z = !1, F = !1, et = !1, kt;
65
+ kt = Symbol.for("react.module.reference");
66
+ function ye(c) {
67
+ return !!(typeof c == "string" || typeof c == "function" || c === i || c === n || et || c === s || c === a || c === d || F || c === v || A || $ || Z || typeof c == "object" && c !== null && (c.$$typeof === m || c.$$typeof === p || c.$$typeof === l || c.$$typeof === r || c.$$typeof === o || // This needs to include all possible module reference object
68
68
  // types supported by any Flight configuration anywhere since
69
69
  // we don't know which Flight build this will end up being used
70
70
  // with.
71
- c.$$typeof === Lt || c.getModuleId !== void 0));
71
+ c.$$typeof === kt || c.getModuleId !== void 0));
72
72
  }
73
- function be(c, f, v) {
73
+ function xe(c, g, x) {
74
74
  var T = c.displayName;
75
75
  if (T)
76
76
  return T;
77
- var k = f.displayName || f.name || "";
78
- return k !== "" ? v + "(" + k + ")" : v;
77
+ var k = g.displayName || g.name || "";
78
+ return k !== "" ? x + "(" + k + ")" : x;
79
79
  }
80
- function kt(c) {
80
+ function At(c) {
81
81
  return c.displayName || "Context";
82
82
  }
83
83
  function W(c) {
@@ -103,14 +103,14 @@ function Ye() {
103
103
  }
104
104
  if (typeof c == "object")
105
105
  switch (c.$$typeof) {
106
- case l:
107
- var f = c;
108
- return kt(f) + ".Consumer";
109
106
  case r:
110
- var v = c;
111
- return kt(v._context) + ".Provider";
107
+ var g = c;
108
+ return At(g) + ".Consumer";
109
+ case l:
110
+ var x = c;
111
+ return At(x._context) + ".Provider";
112
112
  case o:
113
- return be(c, c.render, "ForwardRef");
113
+ return xe(c, c.render, "ForwardRef");
114
114
  case p:
115
115
  var T = c.displayName || null;
116
116
  return T !== null ? T : W(c.type) || "Memo";
@@ -125,14 +125,14 @@ function Ye() {
125
125
  }
126
126
  return null;
127
127
  }
128
- var U = Object.assign, Q = 0, At, Ht, It, qt, Rt, Pt, Bt;
128
+ var U = Object.assign, K = 0, Ht, It, qt, Rt, Pt, Bt, Dt;
129
129
  function Nt() {
130
130
  }
131
131
  Nt.__reactDisabledLog = !0;
132
- function ye() {
132
+ function Ce() {
133
133
  {
134
- if (Q === 0) {
135
- At = console.log, Ht = console.info, It = console.warn, qt = console.error, Rt = console.group, Pt = console.groupCollapsed, Bt = console.groupEnd;
134
+ if (K === 0) {
135
+ Ht = console.log, It = console.info, qt = console.warn, Rt = console.error, Pt = console.group, Bt = console.groupCollapsed, Dt = console.groupEnd;
136
136
  var c = {
137
137
  configurable: !0,
138
138
  enumerable: !0,
@@ -149,12 +149,12 @@ function Ye() {
149
149
  groupEnd: c
150
150
  });
151
151
  }
152
- Q++;
152
+ K++;
153
153
  }
154
154
  }
155
- function xe() {
155
+ function we() {
156
156
  {
157
- if (Q--, Q === 0) {
157
+ if (K--, K === 0) {
158
158
  var c = {
159
159
  configurable: !0,
160
160
  enumerable: !0,
@@ -162,66 +162,66 @@ function Ye() {
162
162
  };
163
163
  Object.defineProperties(console, {
164
164
  log: U({}, c, {
165
- value: At
165
+ value: Ht
166
166
  }),
167
167
  info: U({}, c, {
168
- value: Ht
168
+ value: It
169
169
  }),
170
170
  warn: U({}, c, {
171
- value: It
171
+ value: qt
172
172
  }),
173
173
  error: U({}, c, {
174
- value: qt
174
+ value: Rt
175
175
  }),
176
176
  group: U({}, c, {
177
- value: Rt
177
+ value: Pt
178
178
  }),
179
179
  groupCollapsed: U({}, c, {
180
- value: Pt
180
+ value: Bt
181
181
  }),
182
182
  groupEnd: U({}, c, {
183
- value: Bt
183
+ value: Dt
184
184
  })
185
185
  });
186
186
  }
187
- Q < 0 && E("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
187
+ K < 0 && E("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
188
188
  }
189
189
  }
190
- var pt = w.ReactCurrentDispatcher, mt;
191
- function it(c, f, v) {
190
+ var mt = C.ReactCurrentDispatcher, ft;
191
+ function it(c, g, x) {
192
192
  {
193
- if (mt === void 0)
193
+ if (ft === void 0)
194
194
  try {
195
195
  throw Error();
196
196
  } catch (k) {
197
197
  var T = k.stack.trim().match(/\n( *(at )?)/);
198
- mt = T && T[1] || "";
198
+ ft = T && T[1] || "";
199
199
  }
200
200
  return `
201
- ` + mt + c;
201
+ ` + ft + c;
202
202
  }
203
203
  }
204
- var ft = !1, st;
204
+ var gt = !1, st;
205
205
  {
206
- var Ce = typeof WeakMap == "function" ? WeakMap : Map;
207
- st = new Ce();
206
+ var Te = typeof WeakMap == "function" ? WeakMap : Map;
207
+ st = new Te();
208
208
  }
209
- function Dt(c, f) {
210
- if (!c || ft)
209
+ function Ot(c, g) {
210
+ if (!c || gt)
211
211
  return "";
212
212
  {
213
- var v = st.get(c);
214
- if (v !== void 0)
215
- return v;
213
+ var x = st.get(c);
214
+ if (x !== void 0)
215
+ return x;
216
216
  }
217
217
  var T;
218
- ft = !0;
218
+ gt = !0;
219
219
  var k = Error.prepareStackTrace;
220
220
  Error.prepareStackTrace = void 0;
221
221
  var H;
222
- H = pt.current, pt.current = null, ye();
222
+ H = mt.current, mt.current = null, Ce();
223
223
  try {
224
- if (f) {
224
+ if (g) {
225
225
  var M = function() {
226
226
  throw Error();
227
227
  };
@@ -232,37 +232,37 @@ function Ye() {
232
232
  }), typeof Reflect == "object" && Reflect.construct) {
233
233
  try {
234
234
  Reflect.construct(M, []);
235
- } catch (D) {
236
- T = D;
235
+ } catch (N) {
236
+ T = N;
237
237
  }
238
238
  Reflect.construct(c, [], M);
239
239
  } else {
240
240
  try {
241
241
  M.call();
242
- } catch (D) {
243
- T = D;
242
+ } catch (N) {
243
+ T = N;
244
244
  }
245
245
  c.call(M.prototype);
246
246
  }
247
247
  } else {
248
248
  try {
249
249
  throw Error();
250
- } catch (D) {
251
- T = D;
250
+ } catch (N) {
251
+ T = N;
252
252
  }
253
253
  c();
254
254
  }
255
- } catch (D) {
256
- if (D && T && typeof D.stack == "string") {
257
- for (var S = D.stack.split(`
258
- `), N = T.stack.split(`
259
- `), R = S.length - 1, P = N.length - 1; R >= 1 && P >= 0 && S[R] !== N[P]; )
255
+ } catch (N) {
256
+ if (N && T && typeof N.stack == "string") {
257
+ for (var S = N.stack.split(`
258
+ `), D = T.stack.split(`
259
+ `), R = S.length - 1, P = D.length - 1; R >= 1 && P >= 0 && S[R] !== D[P]; )
260
260
  P--;
261
261
  for (; R >= 1 && P >= 0; R--, P--)
262
- if (S[R] !== N[P]) {
262
+ if (S[R] !== D[P]) {
263
263
  if (R !== 1 || P !== 1)
264
264
  do
265
- if (R--, P--, P < 0 || S[R] !== N[P]) {
265
+ if (R--, P--, P < 0 || S[R] !== D[P]) {
266
266
  var _ = `
267
267
  ` + S[R].replace(" at new ", " at ");
268
268
  return c.displayName && _.includes("<anonymous>") && (_ = _.replace("<anonymous>", c.displayName)), typeof c == "function" && st.set(c, _), _;
@@ -272,23 +272,23 @@ function Ye() {
272
272
  }
273
273
  }
274
274
  } finally {
275
- ft = !1, pt.current = H, xe(), Error.prepareStackTrace = k;
275
+ gt = !1, mt.current = H, we(), Error.prepareStackTrace = k;
276
276
  }
277
277
  var G = c ? c.displayName || c.name : "", V = G ? it(G) : "";
278
278
  return typeof c == "function" && st.set(c, V), V;
279
279
  }
280
- function we(c, f, v) {
281
- return Dt(c, !1);
280
+ function Ee(c, g, x) {
281
+ return Ot(c, !1);
282
282
  }
283
- function Te(c) {
284
- var f = c.prototype;
285
- return !!(f && f.isReactComponent);
283
+ function Se(c) {
284
+ var g = c.prototype;
285
+ return !!(g && g.isReactComponent);
286
286
  }
287
- function nt(c, f, v) {
287
+ function nt(c, g, x) {
288
288
  if (c == null)
289
289
  return "";
290
290
  if (typeof c == "function")
291
- return Dt(c, Te(c));
291
+ return Ot(c, Se(c));
292
292
  if (typeof c == "string")
293
293
  return it(c);
294
294
  switch (c) {
@@ -300,125 +300,125 @@ function Ye() {
300
300
  if (typeof c == "object")
301
301
  switch (c.$$typeof) {
302
302
  case o:
303
- return we(c.render);
303
+ return Ee(c.render);
304
304
  case p:
305
- return nt(c.type, f, v);
305
+ return nt(c.type, g, x);
306
306
  case m: {
307
307
  var T = c, k = T._payload, H = T._init;
308
308
  try {
309
- return nt(H(k), f, v);
309
+ return nt(H(k), g, x);
310
310
  } catch {
311
311
  }
312
312
  }
313
313
  }
314
314
  return "";
315
315
  }
316
- var K = Object.prototype.hasOwnProperty, Ot = {}, Zt = w.ReactDebugCurrentFrame;
316
+ var Q = Object.prototype.hasOwnProperty, Zt = {}, Ft = C.ReactDebugCurrentFrame;
317
317
  function rt(c) {
318
318
  if (c) {
319
- var f = c._owner, v = nt(c.type, c._source, f ? f.type : null);
320
- Zt.setExtraStackFrame(v);
319
+ var g = c._owner, x = nt(c.type, c._source, g ? g.type : null);
320
+ Ft.setExtraStackFrame(x);
321
321
  } else
322
- Zt.setExtraStackFrame(null);
322
+ Ft.setExtraStackFrame(null);
323
323
  }
324
- function Ee(c, f, v, T, k) {
324
+ function Me(c, g, x, T, k) {
325
325
  {
326
- var H = Function.call.bind(K);
326
+ var H = Function.call.bind(Q);
327
327
  for (var M in c)
328
328
  if (H(c, M)) {
329
329
  var S = void 0;
330
330
  try {
331
331
  if (typeof c[M] != "function") {
332
- var N = Error((T || "React class") + ": " + v + " type `" + M + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof c[M] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
333
- throw N.name = "Invariant Violation", N;
332
+ var D = Error((T || "React class") + ": " + x + " type `" + M + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof c[M] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
333
+ throw D.name = "Invariant Violation", D;
334
334
  }
335
- S = c[M](f, M, T, v, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
335
+ S = c[M](g, M, T, x, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
336
336
  } catch (R) {
337
337
  S = R;
338
338
  }
339
- S && !(S instanceof Error) && (rt(k), E("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", T || "React class", v, M, typeof S), rt(null)), S instanceof Error && !(S.message in Ot) && (Ot[S.message] = !0, rt(k), E("Failed %s type: %s", v, S.message), rt(null));
339
+ S && !(S instanceof Error) && (rt(k), E("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", T || "React class", x, M, typeof S), rt(null)), S instanceof Error && !(S.message in Zt) && (Zt[S.message] = !0, rt(k), E("Failed %s type: %s", x, S.message), rt(null));
340
340
  }
341
341
  }
342
342
  }
343
- var Se = Array.isArray;
344
- function gt(c) {
345
- return Se(c);
343
+ var Le = Array.isArray;
344
+ function vt(c) {
345
+ return Le(c);
346
346
  }
347
- function Me(c) {
347
+ function ke(c) {
348
348
  {
349
- var f = typeof Symbol == "function" && Symbol.toStringTag, v = f && c[Symbol.toStringTag] || c.constructor.name || "Object";
350
- return v;
349
+ var g = typeof Symbol == "function" && Symbol.toStringTag, x = g && c[Symbol.toStringTag] || c.constructor.name || "Object";
350
+ return x;
351
351
  }
352
352
  }
353
- function Le(c) {
353
+ function Ae(c) {
354
354
  try {
355
- return Ft(c), !1;
355
+ return _t(c), !1;
356
356
  } catch {
357
357
  return !0;
358
358
  }
359
359
  }
360
- function Ft(c) {
360
+ function _t(c) {
361
361
  return "" + c;
362
362
  }
363
- function _t(c) {
364
- if (Le(c))
365
- return E("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Me(c)), Ft(c);
363
+ function $t(c) {
364
+ if (Ae(c))
365
+ return E("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", ke(c)), _t(c);
366
366
  }
367
- var $t = w.ReactCurrentOwner, ke = {
367
+ var jt = C.ReactCurrentOwner, He = {
368
368
  key: !0,
369
369
  ref: !0,
370
370
  __self: !0,
371
371
  __source: !0
372
- }, jt, Wt;
373
- function Ae(c) {
374
- if (K.call(c, "ref")) {
375
- var f = Object.getOwnPropertyDescriptor(c, "ref").get;
376
- if (f && f.isReactWarning)
372
+ }, Wt, Ut;
373
+ function Ie(c) {
374
+ if (Q.call(c, "ref")) {
375
+ var g = Object.getOwnPropertyDescriptor(c, "ref").get;
376
+ if (g && g.isReactWarning)
377
377
  return !1;
378
378
  }
379
379
  return c.ref !== void 0;
380
380
  }
381
- function He(c) {
382
- if (K.call(c, "key")) {
383
- var f = Object.getOwnPropertyDescriptor(c, "key").get;
384
- if (f && f.isReactWarning)
381
+ function qe(c) {
382
+ if (Q.call(c, "key")) {
383
+ var g = Object.getOwnPropertyDescriptor(c, "key").get;
384
+ if (g && g.isReactWarning)
385
385
  return !1;
386
386
  }
387
387
  return c.key !== void 0;
388
388
  }
389
- function Ie(c, f) {
390
- typeof c.ref == "string" && $t.current;
389
+ function Re(c, g) {
390
+ typeof c.ref == "string" && jt.current;
391
391
  }
392
- function qe(c, f) {
392
+ function Pe(c, g) {
393
393
  {
394
- var v = function() {
395
- jt || (jt = !0, E("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", f));
394
+ var x = function() {
395
+ Wt || (Wt = !0, E("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", g));
396
396
  };
397
- v.isReactWarning = !0, Object.defineProperty(c, "key", {
398
- get: v,
397
+ x.isReactWarning = !0, Object.defineProperty(c, "key", {
398
+ get: x,
399
399
  configurable: !0
400
400
  });
401
401
  }
402
402
  }
403
- function Re(c, f) {
403
+ function Be(c, g) {
404
404
  {
405
- var v = function() {
406
- Wt || (Wt = !0, E("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", f));
405
+ var x = function() {
406
+ Ut || (Ut = !0, E("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", g));
407
407
  };
408
- v.isReactWarning = !0, Object.defineProperty(c, "ref", {
409
- get: v,
408
+ x.isReactWarning = !0, Object.defineProperty(c, "ref", {
409
+ get: x,
410
410
  configurable: !0
411
411
  });
412
412
  }
413
413
  }
414
- var Pe = function(c, f, v, T, k, H, M) {
414
+ var De = function(c, g, x, T, k, H, M) {
415
415
  var S = {
416
416
  // This tag allows us to uniquely identify this as a React Element
417
417
  $$typeof: t,
418
418
  // Built-in properties that belong on the element
419
419
  type: c,
420
- key: f,
421
- ref: v,
420
+ key: g,
421
+ ref: x,
422
422
  props: M,
423
423
  // Record the component responsible for creating this element.
424
424
  _owner: H
@@ -440,41 +440,41 @@ function Ye() {
440
440
  value: k
441
441
  }), Object.freeze && (Object.freeze(S.props), Object.freeze(S)), S;
442
442
  };
443
- function Be(c, f, v, T, k) {
443
+ function Ne(c, g, x, T, k) {
444
444
  {
445
- var H, M = {}, S = null, N = null;
446
- v !== void 0 && (_t(v), S = "" + v), He(f) && (_t(f.key), S = "" + f.key), Ae(f) && (N = f.ref, Ie(f, k));
447
- for (H in f)
448
- K.call(f, H) && !ke.hasOwnProperty(H) && (M[H] = f[H]);
445
+ var H, M = {}, S = null, D = null;
446
+ x !== void 0 && ($t(x), S = "" + x), qe(g) && ($t(g.key), S = "" + g.key), Ie(g) && (D = g.ref, Re(g, k));
447
+ for (H in g)
448
+ Q.call(g, H) && !He.hasOwnProperty(H) && (M[H] = g[H]);
449
449
  if (c && c.defaultProps) {
450
450
  var R = c.defaultProps;
451
451
  for (H in R)
452
452
  M[H] === void 0 && (M[H] = R[H]);
453
453
  }
454
- if (S || N) {
454
+ if (S || D) {
455
455
  var P = typeof c == "function" ? c.displayName || c.name || "Unknown" : c;
456
- S && qe(M, P), N && Re(M, P);
456
+ S && Pe(M, P), D && Be(M, P);
457
457
  }
458
- return Pe(c, S, N, k, T, $t.current, M);
458
+ return De(c, S, D, k, T, jt.current, M);
459
459
  }
460
460
  }
461
- var vt = w.ReactCurrentOwner, Ut = w.ReactDebugCurrentFrame;
461
+ var bt = C.ReactCurrentOwner, Vt = C.ReactDebugCurrentFrame;
462
462
  function Y(c) {
463
463
  if (c) {
464
- var f = c._owner, v = nt(c.type, c._source, f ? f.type : null);
465
- Ut.setExtraStackFrame(v);
464
+ var g = c._owner, x = nt(c.type, c._source, g ? g.type : null);
465
+ Vt.setExtraStackFrame(x);
466
466
  } else
467
- Ut.setExtraStackFrame(null);
467
+ Vt.setExtraStackFrame(null);
468
468
  }
469
- var bt;
470
- bt = !1;
471
- function yt(c) {
469
+ var yt;
470
+ yt = !1;
471
+ function xt(c) {
472
472
  return typeof c == "object" && c !== null && c.$$typeof === t;
473
473
  }
474
- function Vt() {
474
+ function zt() {
475
475
  {
476
- if (vt.current) {
477
- var c = W(vt.current.type);
476
+ if (bt.current) {
477
+ var c = W(bt.current.type);
478
478
  if (c)
479
479
  return `
480
480
 
@@ -483,83 +483,83 @@ Check the render method of \`` + c + "`.";
483
483
  return "";
484
484
  }
485
485
  }
486
- function Ne(c) {
486
+ function Oe(c) {
487
487
  return "";
488
488
  }
489
- var zt = {};
490
- function De(c) {
489
+ var Xt = {};
490
+ function Ze(c) {
491
491
  {
492
- var f = Vt();
493
- if (!f) {
494
- var v = typeof c == "string" ? c : c.displayName || c.name;
495
- v && (f = `
492
+ var g = zt();
493
+ if (!g) {
494
+ var x = typeof c == "string" ? c : c.displayName || c.name;
495
+ x && (g = `
496
496
 
497
- Check the top-level render call using <` + v + ">.");
497
+ Check the top-level render call using <` + x + ">.");
498
498
  }
499
- return f;
499
+ return g;
500
500
  }
501
501
  }
502
- function Xt(c, f) {
502
+ function Yt(c, g) {
503
503
  {
504
504
  if (!c._store || c._store.validated || c.key != null)
505
505
  return;
506
506
  c._store.validated = !0;
507
- var v = De(f);
508
- if (zt[v])
507
+ var x = Ze(g);
508
+ if (Xt[x])
509
509
  return;
510
- zt[v] = !0;
510
+ Xt[x] = !0;
511
511
  var T = "";
512
- c && c._owner && c._owner !== vt.current && (T = " It was passed a child from " + W(c._owner.type) + "."), Y(c), E('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', v, T), Y(null);
512
+ c && c._owner && c._owner !== bt.current && (T = " It was passed a child from " + W(c._owner.type) + "."), Y(c), E('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', x, T), Y(null);
513
513
  }
514
514
  }
515
- function Yt(c, f) {
515
+ function Gt(c, g) {
516
516
  {
517
517
  if (typeof c != "object")
518
518
  return;
519
- if (gt(c))
520
- for (var v = 0; v < c.length; v++) {
521
- var T = c[v];
522
- yt(T) && Xt(T, f);
519
+ if (vt(c))
520
+ for (var x = 0; x < c.length; x++) {
521
+ var T = c[x];
522
+ xt(T) && Yt(T, g);
523
523
  }
524
- else if (yt(c))
524
+ else if (xt(c))
525
525
  c._store && (c._store.validated = !0);
526
526
  else if (c) {
527
- var k = x(c);
527
+ var k = y(c);
528
528
  if (typeof k == "function" && k !== c.entries)
529
529
  for (var H = k.call(c), M; !(M = H.next()).done; )
530
- yt(M.value) && Xt(M.value, f);
530
+ xt(M.value) && Yt(M.value, g);
531
531
  }
532
532
  }
533
533
  }
534
- function Oe(c) {
534
+ function Fe(c) {
535
535
  {
536
- var f = c.type;
537
- if (f == null || typeof f == "string")
536
+ var g = c.type;
537
+ if (g == null || typeof g == "string")
538
538
  return;
539
- var v;
540
- if (typeof f == "function")
541
- v = f.propTypes;
542
- else if (typeof f == "object" && (f.$$typeof === o || // Note: Memo only checks outer props here.
539
+ var x;
540
+ if (typeof g == "function")
541
+ x = g.propTypes;
542
+ else if (typeof g == "object" && (g.$$typeof === o || // Note: Memo only checks outer props here.
543
543
  // Inner props are checked in the reconciler.
544
- f.$$typeof === p))
545
- v = f.propTypes;
544
+ g.$$typeof === p))
545
+ x = g.propTypes;
546
546
  else
547
547
  return;
548
- if (v) {
549
- var T = W(f);
550
- Ee(v, c.props, "prop", T, c);
551
- } else if (f.PropTypes !== void 0 && !bt) {
552
- bt = !0;
553
- var k = W(f);
548
+ if (x) {
549
+ var T = W(g);
550
+ Me(x, c.props, "prop", T, c);
551
+ } else if (g.PropTypes !== void 0 && !yt) {
552
+ yt = !0;
553
+ var k = W(g);
554
554
  E("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", k || "Unknown");
555
555
  }
556
- typeof f.getDefaultProps == "function" && !f.getDefaultProps.isReactClassApproved && E("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
556
+ typeof g.getDefaultProps == "function" && !g.getDefaultProps.isReactClassApproved && E("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
557
557
  }
558
558
  }
559
- function Ze(c) {
559
+ function _e(c) {
560
560
  {
561
- for (var f = Object.keys(c.props), v = 0; v < f.length; v++) {
562
- var T = f[v];
561
+ for (var g = Object.keys(c.props), x = 0; x < g.length; x++) {
562
+ var T = g[x];
563
563
  if (T !== "children" && T !== "key") {
564
564
  Y(c), E("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", T), Y(null);
565
565
  break;
@@ -568,64 +568,64 @@ Check the top-level render call using <` + v + ">.");
568
568
  c.ref !== null && (Y(c), E("Invalid attribute `ref` supplied to `React.Fragment`."), Y(null));
569
569
  }
570
570
  }
571
- var Gt = {};
572
- function Qt(c, f, v, T, k, H) {
571
+ var Kt = {};
572
+ function Qt(c, g, x, T, k, H) {
573
573
  {
574
- var M = ve(c);
574
+ var M = ye(c);
575
575
  if (!M) {
576
576
  var S = "";
577
577
  (c === void 0 || typeof c == "object" && c !== null && Object.keys(c).length === 0) && (S += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
578
- var N = Ne();
579
- N ? S += N : S += Vt();
578
+ var D = Oe();
579
+ D ? S += D : S += zt();
580
580
  var R;
581
- c === null ? R = "null" : gt(c) ? R = "array" : c !== void 0 && c.$$typeof === t ? (R = "<" + (W(c.type) || "Unknown") + " />", S = " Did you accidentally export a JSX literal instead of a component?") : R = typeof c, E("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", R, S);
581
+ c === null ? R = "null" : vt(c) ? R = "array" : c !== void 0 && c.$$typeof === t ? (R = "<" + (W(c.type) || "Unknown") + " />", S = " Did you accidentally export a JSX literal instead of a component?") : R = typeof c, E("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", R, S);
582
582
  }
583
- var P = Be(c, f, v, k, H);
583
+ var P = Ne(c, g, x, k, H);
584
584
  if (P == null)
585
585
  return P;
586
586
  if (M) {
587
- var _ = f.children;
587
+ var _ = g.children;
588
588
  if (_ !== void 0)
589
589
  if (T)
590
- if (gt(_)) {
590
+ if (vt(_)) {
591
591
  for (var G = 0; G < _.length; G++)
592
- Yt(_[G], c);
592
+ Gt(_[G], c);
593
593
  Object.freeze && Object.freeze(_);
594
594
  } else
595
595
  E("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
596
596
  else
597
- Yt(_, c);
597
+ Gt(_, c);
598
598
  }
599
- if (K.call(f, "key")) {
600
- var V = W(c), D = Object.keys(f).filter(function(Ue) {
601
- return Ue !== "key";
602
- }), xt = D.length > 0 ? "{key: someKey, " + D.join(": ..., ") + ": ...}" : "{key: someKey}";
603
- if (!Gt[V + xt]) {
604
- var We = D.length > 0 ? "{" + D.join(": ..., ") + ": ...}" : "{}";
599
+ if (Q.call(g, "key")) {
600
+ var V = W(c), N = Object.keys(g).filter(function(ze) {
601
+ return ze !== "key";
602
+ }), Ct = N.length > 0 ? "{key: someKey, " + N.join(": ..., ") + ": ...}" : "{key: someKey}";
603
+ if (!Kt[V + Ct]) {
604
+ var Ve = N.length > 0 ? "{" + N.join(": ..., ") + ": ...}" : "{}";
605
605
  E(`A props object containing a "key" prop is being spread into JSX:
606
606
  let props = %s;
607
607
  <%s {...props} />
608
608
  React keys must be passed directly to JSX without using spread:
609
609
  let props = %s;
610
- <%s key={someKey} {...props} />`, xt, V, We, V), Gt[V + xt] = !0;
610
+ <%s key={someKey} {...props} />`, Ct, V, Ve, V), Kt[V + Ct] = !0;
611
611
  }
612
612
  }
613
- return c === i ? Ze(P) : Oe(P), P;
613
+ return c === i ? _e(P) : Fe(P), P;
614
614
  }
615
615
  }
616
- function Fe(c, f, v) {
617
- return Qt(c, f, v, !0);
616
+ function $e(c, g, x) {
617
+ return Qt(c, g, x, !0);
618
618
  }
619
- function _e(c, f, v) {
620
- return Qt(c, f, v, !1);
619
+ function je(c, g, x) {
620
+ return Qt(c, g, x, !1);
621
621
  }
622
- var $e = _e, je = Fe;
623
- tt.Fragment = i, tt.jsx = $e, tt.jsxs = je;
622
+ var We = je, Ue = $e;
623
+ tt.Fragment = i, tt.jsx = We, tt.jsxs = Ue;
624
624
  }()), tt;
625
625
  }
626
- process.env.NODE_ENV === "production" ? St.exports = Xe() : St.exports = Ye();
627
- var Ge = St.exports;
628
- const Qe = {
626
+ process.env.NODE_ENV === "production" ? Mt.exports = Ge() : Mt.exports = Ke();
627
+ var Qe = Mt.exports;
628
+ const Je = {
629
629
  en: {
630
630
  dir: "ltr",
631
631
  file: "File",
@@ -1011,10 +1011,10 @@ const Qe = {
1011
1011
  emcat_flags: "أعلام"
1012
1012
  }
1013
1013
  };
1014
- function Ct(u) {
1015
- return Qe[u];
1014
+ function wt(u) {
1015
+ return Je[u];
1016
1016
  }
1017
- const Ke = "undo redo | preview print | importword revhistory | fontfamily fontsize | fontsizeincrease fontsizedecrease | bold italic underline strikethrough | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent | link blockquote code changecase lineheight wordspacing letterspacing | removeformat | blocks | ltr rtl | quickimage quickvideo quicktable codesample template charmap emoji | fullscreen sourcecode", Je = "file edit view insert format tools table help", ti = [
1017
+ const ti = "undo redo | preview print | importword revhistory | fontfamily fontsize | fontsizeincrease fontsizedecrease | bold italic underline strikethrough | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent | link blockquote code changecase lineheight wordspacing letterspacing | removeformat | blocks | ltr rtl | quickimage quickvideo quicktable codesample template charmap emoji | fullscreen sourcecode", ei = "file edit view insert format tools table help", ii = [
1018
1018
  ["Andale Mono", "andale mono,times"],
1019
1019
  ["Arial", "arial,helvetica,sans-serif"],
1020
1020
  ["Arial Black", "arial black,avant garde"],
@@ -1034,7 +1034,7 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
1034
1034
  ["Verdana", "verdana,geneva"],
1035
1035
  ["Webdings", "webdings"],
1036
1036
  ["Wingdings", "wingdings,zapf dingbats"]
1037
- ], ei = ["8px", "9px", "10px", "11px", "12px", "14px", "16px", "18px", "20px", "24px", "28px", "32px", "36px", "48px", "72px", "96px"], ii = 1, si = 100, te = ["1", "1.15", "1.4", "1.5", "1.75", "2", "2.5", "3"], ee = ["1px", "2px", "4px", "6px", "8px", "12px"], ie = ["0.5px", "1px", "1.5px", "2px", "3px", "4px"], se = [
1037
+ ], si = ["8px", "9px", "10px", "11px", "12px", "14px", "16px", "18px", "20px", "24px", "28px", "32px", "36px", "48px", "72px", "96px"], ni = 1, ri = 100, ee = ["1", "1.15", "1.4", "1.5", "1.75", "2", "2.5", "3"], ie = ["1px", "2px", "4px", "6px", "8px", "12px"], se = ["0.5px", "1px", "1.5px", "2px", "3px", "4px"], ne = [
1038
1038
  ["plain", "Plain text"],
1039
1039
  ["html", "HTML/XML"],
1040
1040
  ["css", "CSS"],
@@ -1051,7 +1051,7 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
1051
1051
  ["rust", "Rust"],
1052
1052
  ["sql", "SQL"],
1053
1053
  ["bash", "Bash/Shell"]
1054
- ], ne = [
1054
+ ], re = [
1055
1055
  ["p", "para"],
1056
1056
  ["h1", "heading1"],
1057
1057
  ["h2", "heading2"],
@@ -1060,7 +1060,7 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
1060
1060
  ["h5", "heading5"],
1061
1061
  ["h6", "heading6"],
1062
1062
  ["pre", "pre"]
1063
- ], ni = ["#F76707", "#4263EB", "#CC5DE8"], ri = [
1063
+ ], li = ["#F76707", "#4263EB", "#CC5DE8"], oi = [
1064
1064
  "#FFFFFF",
1065
1065
  "#F4F4F4",
1066
1066
  "#E8EAED",
@@ -1086,7 +1086,7 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
1086
1086
  "#8E24AA",
1087
1087
  "#C2185B",
1088
1088
  "#6D4C41"
1089
- ], li = [
1089
+ ], ai = [
1090
1090
  {
1091
1091
  key: "chcat_currency",
1092
1092
  chars: [
@@ -1426,7 +1426,7 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
1426
1426
  "ة"
1427
1427
  ]
1428
1428
  }
1429
- ], oi = [
1429
+ ], ci = [
1430
1430
  {
1431
1431
  key: "emcat_smileys",
1432
1432
  chars: [
@@ -2151,111 +2151,111 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
2151
2151
  "🇲🇦"
2152
2152
  ]
2153
2153
  }
2154
- ], L = (u, t) => `<svg viewBox="${t || "0 0 24 24"}">${u}</svg>`, C = (u) => L(`<path class="f" d="${u}"/>`, "0 -960 960 960"), ot = (u, t = 7.5) => L(
2154
+ ], L = (u, t) => `<svg viewBox="${t || "0 0 24 24"}">${u}</svg>`, w = (u) => L(`<path class="f" d="${u}"/>`, "0 -960 960 960"), ot = (u, t = 7.5) => L(
2155
2155
  '<path d="M10 6h10M10 12h10M10 18h10"/>' + u.map(
2156
2156
  (e, i) => `<text x="2.5" y="${8.4 + i * 6}" font-size="${t}" stroke="none" fill="#222f3e" font-family="Arial">${e}</text>`
2157
2157
  ).join("")
2158
2158
  ), h = {
2159
- bold: C(
2159
+ bold: w(
2160
2160
  "M272-200v-560h221q65 0 120 40t55 111q0 51-23 78.5T602-491q25 11 55.5 41t30.5 90q0 89-65 124.5T501-200H272Zm121-112h104q48 0 58.5-24.5T566-372q0-11-10.5-35.5T494-432H393v120Zm0-228h93q33 0 48-17t15-38q0-24-17-39t-44-15h-95v109Z"
2161
2161
  ),
2162
- italic: C("M200-200v-100h160l120-360H320v-100h400v100H580L460-300h140v100H200Z"),
2163
- underline: C(
2162
+ italic: w("M200-200v-100h160l120-360H320v-100h400v100H580L460-300h140v100H200Z"),
2163
+ underline: w(
2164
2164
  "M200-120v-80h560v80H200Zm123-223q-56-63-56-167v-330h103v336q0 56 28 91t82 35q54 0 82-35t28-91v-336h103v330q0 104-56 167t-157 63q-101 0-157-63Z"
2165
2165
  ),
2166
- strikethrough: C(
2166
+ strikethrough: w(
2167
2167
  "M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 79t85.5 31q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-340q0 86-61.5 133T486-160ZM80-480v-80h800v80H80Zm402-326q66 0 115.5 32.5T674-674l-88 39q-9-29-33.5-52T484-710q-41 0-68 18.5T386-640h-96q2-69 54.5-117.5T482-806Z"
2168
2168
  ),
2169
- undo: C("M280-200v-80h284q63 0 109.5-40T720-420q0-60-46.5-100T564-560H312l104 104-56 56-200-200 200-200 56 56-104 104h252q97 0 166.5 63T800-420q0 94-69.5 157T564-200H280Z"),
2170
- redo: C("M396-200q-97 0-166.5-63T160-420q0-94 69.5-157T396-640h252L544-744l56-56 200 200-200 200-56-56 104-104H396q-63 0-109.5 40T240-420q0 60 46.5 100T396-280h284v80H396Z"),
2171
- ltr: C(
2169
+ undo: w("M280-200v-80h284q63 0 109.5-40T720-420q0-60-46.5-100T564-560H312l104 104-56 56-200-200 200-200 56 56-104 104h252q97 0 166.5 63T800-420q0 94-69.5 157T564-200H280Z"),
2170
+ redo: w("M396-200q-97 0-166.5-63T160-420q0-94 69.5-157T396-640h252L544-744l56-56 200 200-200 200-56-56 104-104H396q-63 0-109.5 40T240-420q0 60 46.5 100T396-280h284v80H396Z"),
2171
+ ltr: w(
2172
2172
  "M360-360v-200q-66 0-113-47t-47-113q0-66 47-113t113-47h320v80h-80v440h-80v-440h-80v440h-80Zm0-280v-160q-33 0-56.5 23.5T280-720q0 33 23.5 56.5T360-640Zm0-80ZM680-80l-56-56 64-64H120v-80h568l-64-64 56-56 160 160L680-80Z"
2173
2173
  ),
2174
- rtl: C(
2174
+ rtl: w(
2175
2175
  "M360-360v-200q-66 0-113-47t-47-113q0-66 47-113t113-47h320v80h-80v440h-80v-440h-80v440h-80Zm-88 160 64 64-56 56-160-160 160-160 56 56-64 64h568v80H272Zm88-440v-160q-33 0-56.5 23.5T280-720q0 33 23.5 56.5T360-640Zm0-80Z"
2176
2176
  ),
2177
- alignleft: C(
2177
+ alignleft: w(
2178
2178
  "M120-120v-80h720v80H120Zm0-160v-80h480v80H120Zm0-160v-80h720v80H120Zm0-160v-80h480v80H120Zm0-160v-80h720v80H120Z"
2179
2179
  ),
2180
- aligncenter: C(
2180
+ aligncenter: w(
2181
2181
  "M120-120v-80h720v80H120Zm160-160v-80h400v80H280ZM120-440v-80h720v80H120Zm160-160v-80h400v80H280ZM120-760v-80h720v80H120Z"
2182
2182
  ),
2183
- alignright: C(
2183
+ alignright: w(
2184
2184
  "M120-760v-80h720v80H120Zm240 160v-80h480v80H360ZM120-440v-80h720v80H120Zm240 160v-80h480v80H360ZM120-120v-80h720v80H120Z"
2185
2185
  ),
2186
- alignjustify: C(
2186
+ alignjustify: w(
2187
2187
  "M120-120v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Z"
2188
2188
  ),
2189
- fullscreen: C(
2189
+ fullscreen: w(
2190
2190
  "M120-120v-200h80v120h120v80H120Zm520 0v-80h120v-120h80v200H640ZM120-640v-200h200v80H200v120h-80Zm640 0v-120H640v-80h200v200h-80Z"
2191
2191
  ),
2192
- clearformatic: C(
2192
+ clearformatic: w(
2193
2193
  "m528-546-93-93-121-121h486v120H568l-40 94ZM792-56 460-388l-80 188H249l119-280L56-792l56-56 736 736-56 56Z"
2194
2194
  ),
2195
- numlist: C(
2195
+ numlist: w(
2196
2196
  "M120-80v-60h100v-30h-60v-60h60v-30H120v-60h120q17 0 28.5 11.5T280-280v40q0 17-11.5 28.5T240-200q17 0 28.5 11.5T280-160v40q0 17-11.5 28.5T240-80H120Zm0-280v-110q0-17 11.5-28.5T160-510h60v-30H120v-60h120q17 0 28.5 11.5T280-560v70q0 17-11.5 28.5T240-450h-60v30h100v60H120Zm60-280v-180h-60v-60h120v240h-60Zm180 440v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360Z"
2197
2197
  ),
2198
- bullist: C(
2198
+ bullist: w(
2199
2199
  "M360-200v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360ZM200-160q-33 0-56.5-23.5T120-240q0-33 23.5-56.5T200-320q33 0 56.5 23.5T280-240q0 33-23.5 56.5T200-160Zm0-240q-33 0-56.5-23.5T120-480q0-33 23.5-56.5T200-560q33 0 56.5 23.5T280-480q0 33-23.5 56.5T200-400Zm-56.5-263.5Q120-687 120-720t23.5-56.5Q167-800 200-800t56.5 23.5Q280-753 280-720t-23.5 56.5Q233-640 200-640t-56.5-23.5Z"
2200
2200
  ),
2201
2201
  chev: L('<path d="M2 3.5 6 7.5 10 3.5"/>', "0 0 12 11"),
2202
- backcolor: C(
2202
+ backcolor: w(
2203
2203
  "M440-80q-33 0-56.5-23.5T360-160v-160H240q-33 0-56.5-23.5T160-400v-280q0-66 47-113t113-47h480v440q0 33-23.5 56.5T720-320H600v160q0 33-23.5 56.5T520-80h-80ZM240-560h480v-200h-40v160h-80v-160h-40v80h-80v-80H320q-33 0-56.5 23.5T240-680v120Zm0 160h480v-80H240v80Zm0 0v-80 80Z"
2204
2204
  ),
2205
- outdent: C(
2205
+ outdent: w(
2206
2206
  "M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm160 440L120-480l160-160v320Z"
2207
2207
  ),
2208
- indent: C(
2208
+ indent: w(
2209
2209
  "M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm0 440v-320l160 160-160 160Z"
2210
2210
  ),
2211
2211
  more: L(
2212
2212
  '<circle class="f" cx="5" cy="12" r="1.7"/><circle class="f" cx="12" cy="12" r="1.7"/><circle class="f" cx="19" cy="12" r="1.7"/>'
2213
2213
  ),
2214
- image: C(
2214
+ image: w(
2215
2215
  "M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z"
2216
2216
  ),
2217
- uploadic: C(
2217
+ uploadic: w(
2218
2218
  "M440-200v-326L336-422l-56-58 200-200 200 200-56 58-104-104v326h-80ZM240-80q-33 0-56.5-23.5T160-160v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-80H240Z"
2219
2219
  ),
2220
- tableic: C(
2220
+ tableic: w(
2221
2221
  "M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm240-240H200v160h240v-160Zm80 0v160h240v-160H520Zm-80-80v-160H200v160h240Zm80 0h240v-160H520v160ZM200-680h560v-80H200v80Z"
2222
2222
  ),
2223
2223
  hric: L('<path d="M4 12h16"/>'),
2224
- charic: C(
2224
+ charic: w(
2225
2225
  "M120-120v-120h200q-84-45-132-125t-48-175q0-142 99-241t241-99q142 0 241 99t99 241q0 95-48 175T640-240h200v120H520v-204q78-14 129-75t51-141q0-92-64-156t-156-64q-92 0-156 64t-64 156q0 80 51 141t129 75v204H120Z"
2226
2226
  ),
2227
2227
  dateic: L(
2228
2228
  '<rect x="4" y="6" width="16" height="14" rx="1.5"/><path d="M4 10h16M8 4v4M16 4v4"/>'
2229
2229
  ),
2230
- pbic: C(
2230
+ pbic: w(
2231
2231
  "M240-80q-33 0-56.5-23.5T160-160v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-80H240Zm-80-440v-280q0-33 23.5-56.5T240-880h320l240 240v120h-80v-80H520v-200H240v280h-80Zm200 160v-80h240v80H360Zm320 0v-80h240v80H680Zm-640 0v-80h240v80H40Zm440-160Zm0 240Z"
2232
2232
  ),
2233
2233
  nbspic: L('<path d="M6 12v4h12v-4"/>'),
2234
- srcic: C(
2234
+ srcic: w(
2235
2235
  "M240-280 40-480l200-200 56 56-143 144 143 144-56 56Zm178 132-76-24 200-640 76 24-200 640Zm302-132-56-56 143-144-143-144 56-56 200 200-200 200Z"
2236
2236
  ),
2237
- prevw: C(
2237
+ prevw: w(
2238
2238
  "M607.5-372.5Q660-425 660-500t-52.5-127.5Q555-680 480-680t-127.5 52.5Q300-575 300-500t52.5 127.5Q405-320 480-320t127.5-52.5Zm-204-51Q372-455 372-500t31.5-76.5Q435-608 480-608t76.5 31.5Q588-545 588-500t-31.5 76.5Q525-392 480-392t-76.5-31.5ZM214-281.5Q94-363 40-500q54-137 174-218.5T480-800q146 0 266 81.5T920-500q-54 137-174 218.5T480-200q-146 0-266-81.5ZM480-500Zm207.5 160.5Q782-399 832-500q-50-101-144.5-160.5T480-720q-113 0-207.5 59.5T128-500q50 101 144.5 160.5T480-280q113 0 207.5-59.5Z"
2239
2239
  ),
2240
- printic: C(
2240
+ printic: w(
2241
2241
  "M640-640v-120H320v120h-80v-200h480v200h-80Zm-480 80h640-640Zm560 100q17 0 28.5-11.5T760-500q0-17-11.5-28.5T720-540q-17 0-28.5 11.5T680-500q0 17 11.5 28.5T720-460Zm-80 260v-160H320v160h320Zm80 80H240v-160H80v-240q0-51 35-85.5t85-34.5h560q51 0 85.5 34.5T880-520v240H720v160Zm80-240v-160q0-17-11.5-28.5T760-560H200q-17 0-28.5 11.5T160-520v160h80v-80h480v80h80Z"
2242
2242
  ),
2243
- cutic: C(
2243
+ cutic: w(
2244
2244
  "M760-120 480-400l-94 94q8 15 11 32t3 34q0 66-47 113T240-80q-66 0-113-47T80-240q0-66 47-113t113-47q17 0 34 3t32 11l94-94-94-94q-15 8-32 11t-34 3q-66 0-113-47T80-720q0-66 47-113t113-47q66 0 113 47t47 113q0 17-3 34t-11 32l494 494v40H760ZM600-520l-80-80 240-240h120v40L600-520ZM296.5-663.5Q320-687 320-720t-23.5-56.5Q273-800 240-800t-56.5 23.5Q160-753 160-720t23.5 56.5Q207-640 240-640t56.5-23.5ZM494-466q6-6 6-14t-6-14q-6-6-14-6t-14 6q-6 6-6 14t6 14q6 6 14 6t14-6ZM296.5-183.5Q320-207 320-240t-23.5-56.5Q273-320 240-320t-56.5 23.5Q160-273 160-240t23.5 56.5Q207-160 240-160t56.5-23.5Z"
2245
2245
  ),
2246
- copyic: C(
2246
+ copyic: w(
2247
2247
  "M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"
2248
2248
  ),
2249
- pasteic: C(
2249
+ pasteic: w(
2250
2250
  "M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h167q11-35 43-57.5t70-22.5q40 0 71.5 22.5T594-840h166q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560h-80v120H280v-120h-80v560Zm308.5-571.5Q520-783 520-800t-11.5-28.5Q497-840 480-840t-28.5 11.5Q440-817 440-800t11.5 28.5Q463-760 480-760t28.5-11.5Z"
2251
2251
  ),
2252
- selall: C(
2252
+ selall: w(
2253
2253
  "M280-280v-400h400v400H280Zm80-80h240v-240H360v240ZM200-200v80q-33 0-56.5-23.5T120-200h80Zm-80-80v-80h80v80h-80Zm0-160v-80h80v80h-80Zm0-160v-80h80v80h-80Zm80-160h-80q0-33 23.5-56.5T200-840v80Zm80 640v-80h80v80h-80Zm0-640v-80h80v80h-80Zm160 640v-80h80v80h-80Zm0-640v-80h80v80h-80Zm160 640v-80h80v80h-80Zm0-640v-80h80v80h-80Zm160 640v-80h80q0 33-23.5 56.5T760-120Zm0-160v-80h80v80h-80Zm0-160v-80h80v80h-80Zm0-160v-80h80v80h-80Zm0-160v-80q33 0 56.5 23.5T840-760h-80Z"
2254
2254
  ),
2255
- superscriptic: C(
2255
+ superscriptic: w(
2256
2256
  "M760-600v-80q0-17 11.5-28.5T800-720h80v-40H760v-40h120q17 0 28.5 11.5T920-760v40q0 17-11.5 28.5T880-680h-80v40h120v40H760ZM235-160l185-291-172-269h106l124 200h4l123-200h107L539-451l186 291H618L482-377h-4L342-160H235Z"
2257
2257
  ),
2258
- subscriptic: C(
2258
+ subscriptic: w(
2259
2259
  "M760-160v-80q0-17 11.5-28.5T800-280h80v-40H760v-40h120q17 0 28.5 11.5T920-320v40q0 17-11.5 28.5T880-240h-80v40h120v40H760Zm-525-80 185-291-172-269h106l124 200h4l123-200h107L539-531l186 291H618L482-457h-4L342-240H235Z"
2260
2260
  ),
2261
2261
  newic: L('<path d="M6 3h8l5 5v13H6z"/><path d="M14 3v5h5"/>'),
@@ -2263,61 +2263,61 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
2263
2263
  '<circle cx="12" cy="12" r="8.5"/><path d="M9.6 9.6a2.5 2.5 0 1 1 3.4 2.6c-.8.3-1 .9-1 1.8"/><circle class="f" cx="12" cy="16.6" r="1.1"/>'
2264
2264
  ),
2265
2265
  wcic: L('<path d="M4 6h16M4 10h16M4 14h9"/><path d="M15 17.5l2 2 3.6-4"/>'),
2266
- rowbefore: C(
2266
+ rowbefore: w(
2267
2267
  "M200-160h560v-240H200v240Zm640 80H120v-720h160v80h-80v240h560v-240h-80v-80h160v720ZM480-480Zm0 80v-80 80Zm0 0Zm-40-240v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z"
2268
2268
  ),
2269
- rowafter: C(
2269
+ rowafter: w(
2270
2270
  "M200-560h560v-240H200v240Zm-80 400v-720h720v720H680v-80h80v-240H200v240h80v80H120Zm360-320Zm0-80v80-80Zm0 0ZM440-80v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z"
2271
2271
  ),
2272
- rowdelete: C(
2272
+ rowdelete: w(
2273
2273
  "M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200ZM200-200h560v-560H200ZM200-400v-160h560v160H200ZM330-580l250 250 50-50-250-250ZM330-380l250-250 50 50-250 250Z"
2274
2274
  ),
2275
- colbefore: C(
2275
+ colbefore: w(
2276
2276
  "M800-200v-560H560v560h240Zm-640 80v-160h80v80h240v-560H240v80h-80v-160h720v720H160Zm320-360Zm80 0h-80 80Zm0 0ZM160-360v-80H80v-80h80v-80h80v80h80v80h-80v80h-80Z"
2277
2277
  ),
2278
- colafter: C(
2278
+ colafter: w(
2279
2279
  "M160-760v560h240v-560H160ZM80-120v-720h720v160h-80v-80H480v560h240v-80h80v160H80Zm400-360Zm-80 0h80-80Zm0 0Zm320 120v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z"
2280
2280
  ),
2281
- coldelete: C(
2281
+ coldelete: w(
2282
2282
  "M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200ZM200-200h560v-560H200ZM400-200v-560h160v560H400ZM330-580l250 250 50-50-250-250ZM330-380l250-250 50 50-250 250Z"
2283
2283
  ),
2284
- quote: C(
2284
+ quote: w(
2285
2285
  "m228-240 92-160q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 23-5.5 42.5T458-480L320-240h-92Zm360 0 92-160q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 23-5.5 42.5T818-480L680-240h-92ZM362.5-517.5Q380-535 380-560t-17.5-42.5Q345-620 320-620t-42.5 17.5Q260-585 260-560t17.5 42.5Q295-500 320-500t42.5-17.5Zm360 0Q740-535 740-560t-17.5-42.5Q705-620 680-620t-42.5 17.5Q620-585 620-560t17.5 42.5Q655-500 680-500t42.5-17.5ZM680-560Zm-360 0Z"
2286
2286
  ),
2287
- link: C(
2287
+ link: w(
2288
2288
  "M440-280H280q-83 0-141.5-58.5T80-480q0-83 58.5-141.5T280-680h160v80H280q-50 0-85 35t-35 85q0 50 35 85t85 35h160v80ZM320-440v-80h320v80H320Zm200 160v-80h160q50 0 85-35t35-85q0-50-35-85t-85-35H520v-80h160q83 0 141.5 58.5T880-480q0 83-58.5 141.5T680-280H520Z"
2289
2289
  ),
2290
- lineheight: C(
2290
+ lineheight: w(
2291
2291
  "M240-160 80-320l56-56 64 62v-332l-64 62-56-56 160-160 160 160-56 56-64-62v332l64-62 56 56-160 160Zm240-40v-80h400v80H480Zm0-240v-80h400v80H480Zm0-240v-80h400v80H480Z"
2292
2292
  ),
2293
- wordspacing: C(
2293
+ wordspacing: w(
2294
2294
  "M320-80 160-240l160-160 57 56-64 64h334l-63-64 56-56 160 160L640-80l-57-56 64-64H313l63 64-56 56ZM200-480v-400h80v400h-80Zm240 0v-400h80v400h-80Zm240 0v-400h80v400h-80Z"
2295
2295
  ),
2296
- caseic: C(
2296
+ caseic: w(
2297
2297
  "m131-252 165-440h79l165 440h-76l-39-112H247l-40 112h-76Zm139-176h131l-64-182h-4l-63 182Zm395 186q-51 0-81-27.5T554-342q0-44 34.5-72.5T677-443q23 0 45 4t38 11v-12q0-29-20.5-47T685-505q-23 0-42 9.5T610-468l-47-35q24-29 54.5-43t68.5-14q69 0 103 32.5t34 97.5v178h-63v-37h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T689-393q-32 0-50 14t-18 37q0 20 16 33t40 13Z"
2298
2298
  ),
2299
- uppercaseic: C(
2299
+ uppercaseic: w(
2300
2300
  "M660-240v-248l-64 64-56-56 160-160 160 160-56 56-64-64v248h-80Zm-540 0 165-440h79l165 440h-76l-39-113H236l-40 113h-76Zm139-177h131l-65-182h-4l-62 182Z"
2301
2301
  ),
2302
- lowercaseic: C(
2302
+ lowercaseic: w(
2303
2303
  "M300-240q-51 0-81-27.5T189-340q0-44 34.5-72.5T312-441q23 0 45 4t38 11v-12q0-29-20.5-47T320-503q-23 0-42 9.5T245-466l-47-35q24-29 54.5-43t68.5-14q69 0 103 32.5t34 97.5v178h-63v-37h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T324-391q-32 0-50 14t-18 37q0 20 16 33t40 13Zm388 54L540-400l56-56 64 64v-248h80v248l64-64 56 56-160 160Z"
2304
2304
  ),
2305
- capitalizeic: C(
2305
+ capitalizeic: w(
2306
2306
  "M344-250v-366H224v-64h308v64H412v366h-68Zm344 10q-44 0-69-25.5T594-336v-162h-54v-58h54v-87h66v87h74v58h-74v148q0 23 10.5 36t28.5 13q9 0 18.5-3.5T736-314v65q-10 5-22 7t-26 2Z"
2307
2307
  ),
2308
- fontsizeup: C(
2308
+ fontsizeup: w(
2309
2309
  "m40-200 210-560h100l210 560h-96l-51-143H187l-51 143H40Zm176-224h168l-82-232h-4l-82 232Zm504 104v-120H600v-80h120v-120h80v120h120v80H800v120h-80Z"
2310
2310
  ),
2311
- fontsizedown: C(
2311
+ fontsizedown: w(
2312
2312
  "m40-200 210-560h100l210 560h-96l-51-143H187l-51 143H40Zm176-224h168l-82-232h-4l-82 232Zm384-16v-80h320v80H600Z"
2313
2313
  ),
2314
- historyic: C(
2314
+ historyic: w(
2315
2315
  "M480-120q-138 0-240.5-91.5T122-440h82q14 104 92.5 172T480-200q117 0 198.5-81.5T760-480q0-117-81.5-198.5T480-760q-69 0-129 32t-101 88h110v80H120v-240h80v94q51-64 124.5-99T480-840q75 0 140.5 28.5t114 77q48.5 48.5 77 114T840-480q0 75-28.5 140.5t-77 114q-48.5 48.5-114 77T480-120Zm112-192L440-464v-216h80v184l128 128-56 56Z"
2316
2316
  ),
2317
2317
  wordic: L(
2318
2318
  '<path d="M6 3h8l5 5v13H6z"/><path d="M14 3v5h5"/><text x="8" y="17" font-size="8.5" stroke="none" fill="#222f3e" font-family="Arial" font-weight="bold">W</text>'
2319
2319
  ),
2320
- draftic: C(
2320
+ draftic: w(
2321
2321
  "M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z"
2322
2322
  ),
2323
2323
  trash: L(
@@ -2354,10 +2354,10 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
2354
2354
  palette: L(
2355
2355
  '<path d="M12 3a9 9 0 1 0 0 18h1.2a2 2 0 0 0 2-2 2 2 0 0 1 2-2H18a3 3 0 0 0 3-3c0-6.1-4.5-11-9-11z"/><circle class="f" cx="7.8" cy="10.2" r="1.3"/><circle class="f" cx="11.6" cy="7.3" r="1.3"/><circle class="f" cx="15.8" cy="9.6" r="1.3"/><circle class="f" cx="9" cy="14.8" r="1.3"/>'
2356
2356
  ),
2357
- ul_circle: C(
2357
+ ul_circle: w(
2358
2358
  "M280-600v-80h560v80H280Zm0 160v-80h560v80H280Zm0 160v-80h560v80H280ZM160-600q-17 0-28.5-11.5T120-640q0-17 11.5-28.5T160-680q17 0 28.5 11.5T200-640q0 17-11.5 28.5T160-600Zm0 160q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520q17 0 28.5 11.5T200-480q0 17-11.5 28.5T160-440Zm0 160q-17 0-28.5-11.5T120-320q0-17 11.5-28.5T160-360q17 0 28.5 11.5T200-320q0 17-11.5 28.5T160-280Z"
2359
2359
  ),
2360
- ul_square: C(
2360
+ ul_square: w(
2361
2361
  "M80-160v-160h160v160H80Zm240 0v-160h560v160H320ZM80-400v-160h160v160H80Zm240 0v-160h560v160H320ZM80-640v-160h160v160H80Zm240 0v-160h560v160H320Z"
2362
2362
  ),
2363
2363
  ol_alpha: ot(["a", "b", "c"]),
@@ -2380,7 +2380,7 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
2380
2380
  codesampleic: L(
2381
2381
  '<rect x="3.5" y="4" width="17" height="16" rx="2"/><path d="M3.5 8.5h17"/><path d="M9.5 12 7 14.25l2.5 2.25M14.5 12l2.5 2.25-2.5 2.25"/>'
2382
2382
  )
2383
- }, ai = /* @__PURE__ */ new Set([
2383
+ }, hi = /* @__PURE__ */ new Set([
2384
2384
  "p",
2385
2385
  "div",
2386
2386
  "span",
@@ -2422,7 +2422,7 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
2422
2422
  "figure",
2423
2423
  "figcaption",
2424
2424
  "mark"
2425
- ]), ci = /* @__PURE__ */ new Set([
2425
+ ]), di = /* @__PURE__ */ new Set([
2426
2426
  "text-align",
2427
2427
  "direction",
2428
2428
  "unicode-bidi",
@@ -2478,7 +2478,7 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
2478
2478
  "box-sizing",
2479
2479
  "list-style-type",
2480
2480
  "white-space"
2481
- ]), re = {
2481
+ ]), le = {
2482
2482
  "*": ["dir", "lang", "colspan", "rowspan"],
2483
2483
  a: ["href", "target", "rel", "title"],
2484
2484
  img: ["src", "alt", "width", "height", "title"],
@@ -2487,20 +2487,20 @@ const Ke = "undo redo | preview print | importword revhistory | fontfamily fonts
2487
2487
  th: ["width", "valign"],
2488
2488
  table: ["width", "cellpadding", "cellspacing"]
2489
2489
  };
2490
- function ut(u) {
2490
+ function pt(u) {
2491
2491
  const t = {}, e = u.getAttribute && u.getAttribute("style");
2492
2492
  return e && e.split(";").forEach((i) => {
2493
2493
  const s = i.indexOf(":");
2494
2494
  s < 1 || (t[i.slice(0, s).trim().toLowerCase()] = i.slice(s + 1).trim());
2495
2495
  }), t;
2496
2496
  }
2497
- function hi(u) {
2497
+ function ui(u) {
2498
2498
  return u.replace(/<!--\[if !supportLists\]-->([\s\S]*?)<!--\[endif\]-->/gi, "$1").replace(/<!--\[if !supportLists\]>([\s\S]*?)<!\[endif\]-->/gi, "$1").replace(/<!\[if !supportLists\]>([\s\S]*?)<!\[endif\]>/gi, "$1").replace(/<!--\[if [\s\S]*?<!\[endif\]-->/gi, "").replace(/<!--[\s\S]*?-->/g, "").replace(/<(script|style|xml|title)[\s\S]*?<\/\1>/gi, "").replace(/<\/?(meta|link)[^>]*>/gi, "").replace(/<\?xml[\s\S]*?\?>/gi, "").replace(/<\/?(o|v|w|m|st1):[^>]*>/gi, "");
2499
2499
  }
2500
- function di(u) {
2500
+ function pi(u) {
2501
2501
  return /^[0-9]+[\.\)،]/.test(u) ? { ordered: !0 } : /^[٠-٩۰-۹]+/.test(u) ? { ordered: !0, style: "arabic-indic" } : /^[ivxlc]{2,}[\.\)]/.test(u) ? { ordered: !0, style: "lower-roman" } : /^[IVXLC]{2,}[\.\)]/.test(u) ? { ordered: !0, style: "upper-roman" } : /^[a-z][\.\)]/.test(u) ? { ordered: !0, style: "lower-alpha" } : /^[A-Z][\.\)]/.test(u) ? { ordered: !0, style: "upper-alpha" } : /^[ء-ي][\.\)،-]/.test(u) ? { ordered: !0, style: "arabic-indic" } : { ordered: !1 };
2502
2502
  }
2503
- function ui(u) {
2503
+ function mi(u) {
2504
2504
  const t = (s) => {
2505
2505
  const n = (s.getAttribute("style") || "") + " " + (s.className || "");
2506
2506
  return /mso-list\s*:(?!\s*ignore)/i.test(n) || /MsoListParagraph/i.test(n);
@@ -2514,38 +2514,38 @@ function ui(u) {
2514
2514
  const n = s.previousElementSibling;
2515
2515
  i && n && i[i.length - 1] === n ? i.push(s) : (i = [s], e.push(i));
2516
2516
  }), e.forEach((s) => {
2517
- const n = [], r = s[0];
2518
- s.forEach((l) => {
2519
- var w, E, I;
2520
- const a = +(((w = (l.getAttribute("style") || "").match(/level(\d+)/i)) == null ? void 0 : w[1]) || 1), d = Array.from(l.querySelectorAll("span")).find(
2517
+ const n = [], l = s[0];
2518
+ s.forEach((r) => {
2519
+ var C, E, I;
2520
+ const a = +(((C = (r.getAttribute("style") || "").match(/level(\d+)/i)) == null ? void 0 : C[1]) || 1), d = Array.from(r.querySelectorAll("span")).find(
2521
2521
  (A) => /mso-list\s*:\s*ignore/i.test(A.getAttribute("style") || "")
2522
- ), p = d ? ((E = d.textContent) == null ? void 0 : E.trim()) || "" : (((I = l.textContent) == null ? void 0 : I.trim().match(/^\S{1,4}/)) || [""])[0], { ordered: m, style: b } = di(p);
2522
+ ), p = d ? ((E = d.textContent) == null ? void 0 : E.trim()) || "" : (((I = r.textContent) == null ? void 0 : I.trim().match(/^\S{1,4}/)) || [""])[0], { ordered: m, style: v } = pi(p);
2523
2523
  for (d && d.remove(); n.length && n[n.length - 1].level > a; ) n.pop();
2524
2524
  if (!n.length || n[n.length - 1].level < a) {
2525
2525
  const A = u.createElement(m ? "ol" : "ul");
2526
- if (m && b && (A.style.listStyleType = b), n.length) {
2526
+ if (m && v && (A.style.listStyleType = v), n.length) {
2527
2527
  const $ = n[n.length - 1].list;
2528
2528
  ($.lastElementChild || $).appendChild(A);
2529
2529
  } else
2530
- r.parentNode.insertBefore(A, r);
2530
+ l.parentNode.insertBefore(A, l);
2531
2531
  n.push({ list: A, level: a });
2532
2532
  }
2533
- const y = u.createElement("li"), g = ut(l), x = ["text-align", "direction", "unicode-bidi", "color", "font-size", "font-family", "background-color"].filter((A) => g[A]).map((A) => A + ":" + g[A]).join(";");
2534
- for (x && y.setAttribute("style", x), l.getAttribute("dir") && y.setAttribute("dir", l.getAttribute("dir")); l.firstChild; ) y.appendChild(l.firstChild);
2535
- n[n.length - 1].list.appendChild(y), l.remove();
2533
+ const b = u.createElement("li"), f = pt(r), y = ["text-align", "direction", "unicode-bidi", "color", "font-size", "font-family", "background-color"].filter((A) => f[A]).map((A) => A + ":" + f[A]).join(";");
2534
+ for (y && b.setAttribute("style", y), r.getAttribute("dir") && b.setAttribute("dir", r.getAttribute("dir")); r.firstChild; ) b.appendChild(r.firstChild);
2535
+ n[n.length - 1].list.appendChild(b), r.remove();
2536
2536
  });
2537
2537
  });
2538
2538
  }
2539
- function pi(u) {
2539
+ function fi(u) {
2540
2540
  u.querySelectorAll('b[id^="docs-internal-guid"]').forEach((t) => {
2541
2541
  for (; t.firstChild; ) t.parentNode.insertBefore(t.firstChild, t);
2542
2542
  t.remove();
2543
2543
  });
2544
2544
  }
2545
- function mi(u) {
2545
+ function gi(u) {
2546
2546
  u.querySelectorAll("table").forEach((t) => {
2547
2547
  const e = t;
2548
- ut(e)["border-collapse"] || (e.style.borderCollapse = "collapse");
2548
+ pt(e)["border-collapse"] || (e.style.borderCollapse = "collapse");
2549
2549
  }), u.querySelectorAll("[align]").forEach((t) => {
2550
2550
  const e = t, i = e.getAttribute("align").toLowerCase();
2551
2551
  e.tagName.toLowerCase() === "table" ? i === "center" ? (e.style.marginLeft = e.style.marginLeft || "auto", e.style.marginRight = e.style.marginRight || "auto") : i === "right" ? e.style.marginLeft = e.style.marginLeft || "auto" : i === "left" && (e.style.marginRight = e.style.marginRight || "auto") : ["left", "right", "center", "justify"].includes(i) && (e.style.textAlign = e.style.textAlign || i, Array.from(e.children).forEach((s) => {
@@ -2561,7 +2561,7 @@ function mi(u) {
2561
2561
  e.style.backgroundColor = e.style.backgroundColor || e.getAttribute("bgcolor"), e.removeAttribute("bgcolor");
2562
2562
  });
2563
2563
  }
2564
- function ht(u, t) {
2564
+ function dt(u, t) {
2565
2565
  Array.from(u.childNodes).forEach((e) => {
2566
2566
  if (e.nodeType === Node.COMMENT_NODE) {
2567
2567
  e.remove();
@@ -2569,7 +2569,7 @@ function ht(u, t) {
2569
2569
  }
2570
2570
  if (e.nodeType !== Node.ELEMENT_NODE) return;
2571
2571
  const i = e, s = i.tagName.toLowerCase();
2572
- if (!ai.has(s)) {
2572
+ if (!hi.has(s)) {
2573
2573
  if (s === "font") {
2574
2574
  const o = t.createElement("span");
2575
2575
  i.getAttribute("style") && o.setAttribute("style", i.getAttribute("style")), i.getAttribute("color") && (o.style.color = i.getAttribute("color")), i.getAttribute("face") && (o.style.fontFamily = i.getAttribute("face"));
@@ -2587,14 +2587,14 @@ function ht(u, t) {
2587
2587
  d[a] && (o.style.fontSize = d[a]);
2588
2588
  }
2589
2589
  for (; i.firstChild; ) o.appendChild(i.firstChild);
2590
- i.replaceWith(o), ht(o, t);
2590
+ i.replaceWith(o), dt(o, t);
2591
2591
  return;
2592
2592
  }
2593
- for (ht(i, t); i.firstChild; ) i.parentNode.insertBefore(i.firstChild, i);
2593
+ for (dt(i, t); i.firstChild; ) i.parentNode.insertBefore(i.firstChild, i);
2594
2594
  i.remove();
2595
2595
  return;
2596
2596
  }
2597
- const n = /* @__PURE__ */ new Set([...re["*"] || [], ...re[s] || []]);
2597
+ const n = /* @__PURE__ */ new Set([...le["*"] || [], ...le[s] || []]);
2598
2598
  if (Array.from(i.attributes).forEach((o) => {
2599
2599
  const a = o.name.toLowerCase();
2600
2600
  a !== "style" && !n.has(a) && i.removeAttribute(o.name);
@@ -2610,34 +2610,34 @@ function ht(u, t) {
2610
2610
  return;
2611
2611
  }
2612
2612
  }
2613
- const r = ut(i), l = [];
2614
- for (const [o, a] of Object.entries(r))
2615
- ci.has(o) && (/expression|javascript|url\s*\(\s*['"]?\s*file:/i.test(a) || o === "font-weight" && /^(400|normal)$/i.test(a) || o === "font-style" && /^normal$/i.test(a) || o === "text-decoration" && /^none$/i.test(a) || l.push(o + ":" + a));
2616
- if (l.length ? i.setAttribute("style", l.join(";")) : i.removeAttribute("style"), i.removeAttribute("class"), ht(i, t), s === "span" && !i.attributes.length) {
2613
+ const l = pt(i), r = [];
2614
+ for (const [o, a] of Object.entries(l))
2615
+ di.has(o) && (/expression|javascript|url\s*\(\s*['"]?\s*file:/i.test(a) || o === "font-weight" && /^(400|normal)$/i.test(a) || o === "font-style" && /^normal$/i.test(a) || o === "text-decoration" && /^none$/i.test(a) || r.push(o + ":" + a));
2616
+ if (r.length ? i.setAttribute("style", r.join(";")) : i.removeAttribute("style"), i.removeAttribute("class"), dt(i, t), s === "span" && !i.attributes.length) {
2617
2617
  for (; i.firstChild; ) i.parentNode.insertBefore(i.firstChild, i);
2618
2618
  i.remove();
2619
2619
  }
2620
2620
  });
2621
2621
  }
2622
- function fi(u) {
2622
+ function vi(u) {
2623
2623
  const t = [], e = /<style[^>]*>([\s\S]*?)<\/style>/gi;
2624
2624
  let i;
2625
2625
  for (; i = e.exec(u); ) {
2626
2626
  let s = i[1].replace(/<!--|-->/g, "").replace(/\/\*[\s\S]*?\*\//g, "");
2627
2627
  s = s.replace(/@media[^{]*\{(?:[^{}]*\{[^{}]*\})*[^{}]*\}/gi, ""), s = s.replace(/@[\w-]+[^{]*\{[^{}]*\}/g, "");
2628
2628
  let n;
2629
- const r = /([^{}]+)\{([^}]*)\}/g;
2630
- for (; n = r.exec(s); ) {
2631
- const l = n[2].split(";").map((o) => {
2629
+ const l = /([^{}]+)\{([^}]*)\}/g;
2630
+ for (; n = l.exec(s); ) {
2631
+ const r = n[2].split(";").map((o) => {
2632
2632
  const a = o.indexOf(":");
2633
2633
  return a < 1 ? null : [o.slice(0, a).trim().toLowerCase(), o.slice(a + 1).trim()];
2634
2634
  }).filter((o) => !!o && !!o[1]);
2635
- l.length && n[1].split(",").map((o) => o.trim()).filter((o) => o && !o.startsWith("@")).forEach((o) => t.push({ sel: o, decls: l }));
2635
+ r.length && n[1].split(",").map((o) => o.trim()).filter((o) => o && !o.startsWith("@")).forEach((o) => t.push({ sel: o, decls: r }));
2636
2636
  }
2637
2637
  }
2638
2638
  return t;
2639
2639
  }
2640
- function gi(u, t) {
2640
+ function bi(u, t) {
2641
2641
  if (!t.length) return;
2642
2642
  const e = /* @__PURE__ */ new Map();
2643
2643
  t.forEach(({ sel: i, decls: s }) => {
@@ -2647,45 +2647,45 @@ function gi(u, t) {
2647
2647
  } catch {
2648
2648
  return;
2649
2649
  }
2650
- n.forEach((r) => {
2651
- let l = e.get(r);
2652
- l || (l = {}, e.set(r, l)), s.forEach(([o, a]) => {
2653
- l[o] = a;
2650
+ n.forEach((l) => {
2651
+ let r = e.get(l);
2652
+ r || (r = {}, e.set(l, r)), s.forEach(([o, a]) => {
2653
+ r[o] = a;
2654
2654
  });
2655
2655
  });
2656
2656
  }), e.forEach((i, s) => {
2657
- const n = ut(s), r = s.hasAttribute("dir"), l = s.hasAttribute("align"), o = Object.entries(i).filter(([p]) => !(p in n || (p === "direction" || p === "unicode-bidi") && r || p === "text-align" && (l || r) || (p === "background" || p === "background-color") && s.hasAttribute("bgcolor")));
2657
+ const n = pt(s), l = s.hasAttribute("dir"), r = s.hasAttribute("align"), o = Object.entries(i).filter(([p]) => !(p in n || (p === "direction" || p === "unicode-bidi") && l || p === "text-align" && (r || l) || (p === "background" || p === "background-color") && s.hasAttribute("bgcolor")));
2658
2658
  if (!o.length) return;
2659
2659
  const a = o.map(([p, m]) => p + ":" + m).join(";"), d = s.getAttribute("style");
2660
2660
  s.setAttribute("style", d ? a + ";" + d : a);
2661
2661
  });
2662
2662
  }
2663
- function pe(u) {
2663
+ function me(u) {
2664
2664
  return u.replace(/[ﭐ-﷿ﹰ-ﻼ]+/g, (t) => t.normalize("NFKC"));
2665
2665
  }
2666
- function vi(u) {
2666
+ function yi(u) {
2667
2667
  const t = u.createTreeWalker(u.body, NodeFilter.SHOW_TEXT, null);
2668
2668
  let e;
2669
2669
  for (; e = t.nextNode(); )
2670
- /[ﭐ-﷿ﹰ-ﻼ]/.test(e.nodeValue || "") && (e.nodeValue = pe(e.nodeValue || ""));
2670
+ /[ﭐ-﷿ﹰ-ﻼ]/.test(e.nodeValue || "") && (e.nodeValue = me(e.nodeValue || ""));
2671
2671
  }
2672
- function bi(u, t = "ltr") {
2673
- const e = fi(u), i = new DOMParser().parseFromString(hi(u), "text/html");
2674
- gi(i, e), /class="?Mso|mso-|urn:schemas-microsoft-com/i.test(i.body.innerHTML) && ui(i), pi(i), mi(i), ht(i.body, i), vi(i);
2672
+ function xi(u, t = "ltr") {
2673
+ const e = vi(u), i = new DOMParser().parseFromString(ui(u), "text/html");
2674
+ bi(i, e), /class="?Mso|mso-|urn:schemas-microsoft-com/i.test(i.body.innerHTML) && mi(i), fi(i), gi(i), dt(i.body, i), yi(i);
2675
2675
  const s = (n) => {
2676
- var r;
2677
- return n && n.tagName === "P" && !((r = n.textContent) != null && r.trim()) && !n.querySelector("img,table");
2676
+ var l;
2677
+ return n && n.tagName === "P" && !((l = n.textContent) != null && l.trim()) && !n.querySelector("img,table");
2678
2678
  };
2679
2679
  for (; s(i.body.firstElementChild); ) i.body.firstElementChild.remove();
2680
2680
  for (; s(i.body.lastElementChild); ) i.body.lastElementChild.remove();
2681
2681
  return i.body.innerHTML.trim();
2682
2682
  }
2683
- function yi(u) {
2684
- const t = pe(u).replace(/\r/g, ""), e = (i) => i.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
2683
+ function Ci(u) {
2684
+ const t = me(u).replace(/\r/g, ""), e = (i) => i.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
2685
2685
  return /\n/.test(t) ? t.split(/\n{2,}/).map((i) => `<p dir="auto">${e(i).replace(/\n/g, "<br>") || "<br>"}</p>`).join("") : e(t);
2686
2686
  }
2687
- const xi = 10 * 1024 * 1024, me = /^(https?:|data:image\/|blob:)/i;
2688
- function le(u, t) {
2687
+ const wi = 10 * 1024 * 1024, fe = /^(https?:|data:image\/|blob:)/i;
2688
+ function oe(u, t) {
2689
2689
  const e = [], i = "{\\" + t;
2690
2690
  let s = 0;
2691
2691
  for (; (s = u.indexOf(i, s)) !== -1; ) {
@@ -2694,127 +2694,127 @@ function le(u, t) {
2694
2694
  s += i.length;
2695
2695
  continue;
2696
2696
  }
2697
- let r = 0, l = s;
2698
- for (; l < u.length; l++) {
2699
- const o = u[l];
2697
+ let l = 0, r = s;
2698
+ for (; r < u.length; r++) {
2699
+ const o = u[r];
2700
2700
  if (o === "\\") {
2701
- l++;
2701
+ r++;
2702
2702
  continue;
2703
2703
  }
2704
- if (o === "{") r++;
2705
- else if (o === "}" && (r--, !r))
2704
+ if (o === "{") l++;
2705
+ else if (o === "}" && (l--, !l))
2706
2706
  break;
2707
2707
  }
2708
- e.push({ start: s, end: l + 1, body: u.slice(s + i.length, l) }), s = l + 1;
2708
+ e.push({ start: s, end: r + 1, body: u.slice(s + i.length, r) }), s = r + 1;
2709
2709
  }
2710
2710
  return e;
2711
2711
  }
2712
- function Ci(u) {
2712
+ function Ti(u) {
2713
2713
  const t = new Uint8Array(u.length / 2);
2714
2714
  for (let e = 0; e < t.length; e++) t[e] = parseInt(u.substr(e * 2, 2), 16);
2715
2715
  return t;
2716
2716
  }
2717
- function wt(u) {
2717
+ function Tt(u) {
2718
2718
  let t = "";
2719
2719
  for (let e = 0; e < u.length; e++) t += String.fromCharCode(u[e]);
2720
2720
  return btoa(t);
2721
2721
  }
2722
- function oe(u, t) {
2722
+ function ae(u, t) {
2723
2723
  t: for (let e = 0; e + t.length <= u.length; e++) {
2724
2724
  for (let i = 0; i < t.length; i++) if (u[e + i] !== t[i]) continue t;
2725
2725
  return e;
2726
2726
  }
2727
2727
  return -1;
2728
2728
  }
2729
- const wi = [137, 80, 78, 71], Ti = [255, 216, 255];
2730
- function Ei(u) {
2729
+ const Ei = [137, 80, 78, 71], Si = [255, 216, 255];
2730
+ function Mi(u) {
2731
2731
  let t = null;
2732
2732
  if (/\\pngblip/.test(u) ? t = "image/png" : /\\jpegblip/.test(u) ? t = "image/jpeg" : (/\\wmetafile\d*/.test(u) || /\\emfblip/.test(u)) && (t = "metafile"), !t) return null;
2733
2733
  let e = u.replace(/\{[^{}]*\}/g, "").replace(/\\[a-z]+-?\d*\s?/gi, "").replace(/[^0-9a-fA-F]/g, "");
2734
2734
  if (e.length % 2 && (e = e.slice(0, -1)), !e) return null;
2735
- const i = Ci(e);
2735
+ const i = Ti(e);
2736
2736
  if (t === "metafile") {
2737
- const s = oe(i, wi);
2738
- if (s >= 0) return "data:image/png;base64," + wt(i.slice(s));
2739
- const n = oe(i, Ti);
2740
- return n >= 0 ? "data:image/jpeg;base64," + wt(i.slice(n)) : null;
2737
+ const s = ae(i, Ei);
2738
+ if (s >= 0) return "data:image/png;base64," + Tt(i.slice(s));
2739
+ const n = ae(i, Si);
2740
+ return n >= 0 ? "data:image/jpeg;base64," + Tt(i.slice(n)) : null;
2741
2741
  }
2742
- return "data:" + t + ";base64," + wt(i);
2742
+ return "data:" + t + ";base64," + Tt(i);
2743
2743
  }
2744
- function Si(u) {
2744
+ function Li(u) {
2745
2745
  if (!u || u.indexOf("\\pict") === -1) return [];
2746
2746
  let t = u;
2747
- le(u, "nonshppict").reverse().forEach((i) => {
2747
+ oe(u, "nonshppict").reverse().forEach((i) => {
2748
2748
  t = t.slice(0, i.start) + t.slice(i.end);
2749
2749
  });
2750
- let e = xi;
2751
- return le(t, "pict").map((i) => {
2750
+ let e = wi;
2751
+ return oe(t, "pict").map((i) => {
2752
2752
  if (e <= 0) return null;
2753
- const s = Ei(i.body);
2753
+ const s = Mi(i.body);
2754
2754
  return s && (e -= s.length * 0.75), s;
2755
2755
  });
2756
2756
  }
2757
- function fe(u, t) {
2757
+ function ge(u, t) {
2758
2758
  if (!u || !t.length) return { html: u, injected: [] };
2759
2759
  const e = [];
2760
2760
  let i = 0;
2761
2761
  return { html: u.replace(/<img\b[^>]*>/gi, (n) => {
2762
- const r = (n.match(/\ssrc\s*=\s*["']?([^"'\s>]+)/i) || [])[1] || "";
2763
- if (me.test(r)) return n;
2764
- const l = t[i++];
2765
- return l ? (e.push(l), /\ssrc\s*=\s*["']/i.test(n) ? n.replace(/(\ssrc\s*=\s*)(["'])[^"']*\2/i, '$1"' + l + '"') : n.replace(/(\ssrc\s*=\s*)[^\s>]+/i, '$1"' + l + '"')) : n;
2762
+ const l = (n.match(/\ssrc\s*=\s*["']?([^"'\s>]+)/i) || [])[1] || "";
2763
+ if (fe.test(l)) return n;
2764
+ const r = t[i++];
2765
+ return r ? (e.push(r), /\ssrc\s*=\s*["']/i.test(n) ? n.replace(/(\ssrc\s*=\s*)(["'])[^"']*\2/i, '$1"' + r + '"') : n.replace(/(\ssrc\s*=\s*)[^\s>]+/i, '$1"' + r + '"')) : n;
2766
2766
  }), injected: e };
2767
2767
  }
2768
- function Mi(u, t) {
2769
- return !u || !t ? { html: u, injected: [] } : fe(u, Si(t));
2768
+ function ki(u, t) {
2769
+ return !u || !t ? { html: u, injected: [] } : ge(u, Li(t));
2770
2770
  }
2771
- function Li(u) {
2771
+ function Ai(u) {
2772
2772
  const t = u.match(/<img\b[^>]*>/gi);
2773
2773
  return t ? t.filter((e) => {
2774
2774
  const i = (e.match(/\ssrc\s*=\s*["']?([^"'\s>]+)/i) || [])[1] || "";
2775
- return !me.test(i);
2775
+ return !fe.test(i);
2776
2776
  }).length : 0;
2777
2777
  }
2778
- function ki(u, t) {
2778
+ function Hi(u, t) {
2779
2779
  const e = u.match(/^data:([^;,]+);base64,(.*)$/);
2780
2780
  if (!e) return null;
2781
2781
  const i = (e[1].split("/")[1] || "png").replace(/[^a-z0-9]/gi, "") || "png";
2782
2782
  try {
2783
2783
  const s = atob(e[2]), n = new Uint8Array(s.length);
2784
- for (let r = 0; r < s.length; r++) n[r] = s.charCodeAt(r);
2784
+ for (let l = 0; l < s.length; l++) n[l] = s.charCodeAt(l);
2785
2785
  return new File([n], t + "." + (i === "jpeg" ? "jpg" : i), { type: e[1] });
2786
2786
  } catch {
2787
2787
  return null;
2788
2788
  }
2789
2789
  }
2790
- function Ai(u) {
2790
+ function Ii(u) {
2791
2791
  const t = new DataView(u), e = /* @__PURE__ */ new Map();
2792
2792
  let i = -1;
2793
- for (let l = u.byteLength - 22; l >= Math.max(0, u.byteLength - 22 - 65535); l--)
2794
- if (t.getUint32(l, !0) === 101010256) {
2795
- i = l;
2793
+ for (let r = u.byteLength - 22; r >= Math.max(0, u.byteLength - 22 - 65535); r--)
2794
+ if (t.getUint32(r, !0) === 101010256) {
2795
+ i = r;
2796
2796
  break;
2797
2797
  }
2798
2798
  if (i < 0) throw new Error("EOCD not found");
2799
2799
  const s = t.getUint16(i + 10, !0);
2800
2800
  let n = t.getUint32(i + 16, !0);
2801
- const r = new TextDecoder();
2802
- for (let l = 0; l < s && t.getUint32(n, !0) === 33639248; l++) {
2803
- const o = t.getUint16(n + 10, !0), a = t.getUint32(n + 20, !0), d = t.getUint16(n + 28, !0), p = t.getUint16(n + 30, !0), m = t.getUint16(n + 32, !0), b = t.getUint32(n + 42, !0), y = r.decode(new Uint8Array(u, n + 46, d));
2804
- e.set(y, { name: y, method: o, compSize: a, localOffset: b }), n += 46 + d + p + m;
2801
+ const l = new TextDecoder();
2802
+ for (let r = 0; r < s && t.getUint32(n, !0) === 33639248; r++) {
2803
+ const o = t.getUint16(n + 10, !0), a = t.getUint32(n + 20, !0), d = t.getUint16(n + 28, !0), p = t.getUint16(n + 30, !0), m = t.getUint16(n + 32, !0), v = t.getUint32(n + 42, !0), b = l.decode(new Uint8Array(u, n + 46, d));
2804
+ e.set(b, { name: b, method: o, compSize: a, localOffset: v }), n += 46 + d + p + m;
2805
2805
  }
2806
2806
  return e;
2807
2807
  }
2808
- async function ae(u, t) {
2808
+ async function ce(u, t) {
2809
2809
  const e = new DataView(u, t.localOffset);
2810
2810
  if (e.getUint32(0, !0) !== 67324752) throw new Error("Bad local header");
2811
- const i = e.getUint16(26, !0), s = e.getUint16(28, !0), n = t.localOffset + 30 + i + s, r = new Uint8Array(u.slice(n, n + t.compSize));
2812
- if (t.method === 0) return r;
2811
+ const i = e.getUint16(26, !0), s = e.getUint16(28, !0), n = t.localOffset + 30 + i + s, l = new Uint8Array(u.slice(n, n + t.compSize));
2812
+ if (t.method === 0) return l;
2813
2813
  if (t.method !== 8) throw new Error("Unsupported compression method " + t.method);
2814
- const l = new Blob([r]).stream().pipeThrough(new DecompressionStream("deflate-raw"));
2815
- return new Uint8Array(await new Response(l).arrayBuffer());
2814
+ const r = new Blob([l]).stream().pipeThrough(new DecompressionStream("deflate-raw"));
2815
+ return new Uint8Array(await new Response(r).arrayBuffer());
2816
2816
  }
2817
- const ce = (u) => u.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;"), dt = (u, t) => Array.from(u.children).filter((e) => e.localName === t), B = (u, ...t) => {
2817
+ const he = (u) => u.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;"), ut = (u, t) => Array.from(u.children).filter((e) => e.localName === t), B = (u, ...t) => {
2818
2818
  let e = u;
2819
2819
  for (const i of t) {
2820
2820
  if (!e) return null;
@@ -2831,7 +2831,7 @@ const ce = (u) => u.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "
2831
2831
  if (!e) return !1;
2832
2832
  const i = q(e);
2833
2833
  return i !== "false" && i !== "0";
2834
- }, he = {
2834
+ }, de = {
2835
2835
  yellow: "#FFFF00",
2836
2836
  green: "#00FF00",
2837
2837
  cyan: "#00FFFF",
@@ -2848,7 +2848,7 @@ const ce = (u) => u.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "
2848
2848
  lightGray: "#D3D3D3",
2849
2849
  black: "#000000",
2850
2850
  white: "#FFFFFF"
2851
- }, Hi = {
2851
+ }, qi = {
2852
2852
  png: "image/png",
2853
2853
  jpg: "image/jpeg",
2854
2854
  jpeg: "image/jpeg",
@@ -2856,13 +2856,13 @@ const ce = (u) => u.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "
2856
2856
  bmp: "image/bmp",
2857
2857
  webp: "image/webp"
2858
2858
  };
2859
- function Ii(u) {
2859
+ function Ri(u) {
2860
2860
  let t = "";
2861
2861
  for (let e = 0; e < u.length; e += 32768)
2862
2862
  t += String.fromCharCode(...u.subarray(e, e + 32768));
2863
2863
  return btoa(t);
2864
2864
  }
2865
- class qi {
2865
+ class Pi {
2866
2866
  constructor(t, e, i) {
2867
2867
  this.rels = t, this.images = e, this.numFmt = i;
2868
2868
  }
@@ -2873,12 +2873,12 @@ class qi {
2873
2873
  };
2874
2874
  for (const n of Array.from(t.children))
2875
2875
  if (n.localName === "p") {
2876
- const r = this.paraList(n);
2877
- if (r) {
2878
- const l = r.ilvl + 1;
2879
- for (; i.length > l; ) e += `</${i.pop()}>`;
2880
- for (i.length === l && i[l - 1] !== r.type && (e += `</${i.pop()}>`); i.length < l; )
2881
- e += `<${r.type}>`, i.push(r.type);
2876
+ const l = this.paraList(n);
2877
+ if (l) {
2878
+ const r = l.ilvl + 1;
2879
+ for (; i.length > r; ) e += `</${i.pop()}>`;
2880
+ for (i.length === r && i[r - 1] !== l.type && (e += `</${i.pop()}>`); i.length < r; )
2881
+ e += `<${l.type}>`, i.push(l.type);
2882
2882
  e += `<li>${this.runsOf(n) || "<br>"}</li>`;
2883
2883
  continue;
2884
2884
  }
@@ -2899,9 +2899,9 @@ class qi {
2899
2899
  let s = "p";
2900
2900
  const n = /^Heading([1-6])$/i.exec(i);
2901
2901
  n ? s = "h" + n[1] : /^Title$/i.test(i) && (s = "h1");
2902
- const r = [], l = q(B(t, "pPr", "jc"));
2903
- l === "center" ? r.push("text-align:center") : l === "right" || l === "end" ? r.push("text-align:right") : (l === "both" || l === "distribute") && r.push("text-align:justify"), e && B(e, "bidi") && r.push("direction:rtl");
2904
- const o = this.runsOf(t), a = r.length ? ` style="${r.join(";")}"` : "";
2902
+ const l = [], r = q(B(t, "pPr", "jc"));
2903
+ r === "center" ? l.push("text-align:center") : r === "right" || r === "end" ? l.push("text-align:right") : (r === "both" || r === "distribute") && l.push("text-align:justify"), e && B(e, "bidi") && l.push("direction:rtl");
2904
+ const o = this.runsOf(t), a = l.length ? ` style="${l.join(";")}"` : "";
2905
2905
  return `<${s}${a}>${o || "<br>"}</${s}>`;
2906
2906
  }
2907
2907
  runsOf(t) {
@@ -2912,8 +2912,8 @@ class qi {
2912
2912
  let s = this.rels.get(q(i, "id")) || "";
2913
2913
  const n = q(i, "anchor");
2914
2914
  !s && n && (s = "#" + n);
2915
- const r = this.runsOf(i);
2916
- e += s ? `<a href="${ce(s)}">${r}</a>` : r;
2915
+ const l = this.runsOf(i);
2916
+ e += s ? `<a href="${he(s)}">${l}</a>` : l;
2917
2917
  } else (i.localName === "smartTag" || i.localName === "ins") && (e += this.runsOf(i));
2918
2918
  return e;
2919
2919
  }
@@ -2921,14 +2921,14 @@ class qi {
2921
2921
  const e = B(t, "rPr");
2922
2922
  let i = "";
2923
2923
  for (const p of Array.from(t.children))
2924
- p.localName === "t" ? i += ce(p.textContent || "") : p.localName === "br" || p.localName === "cr" ? i += "<br>" : p.localName === "tab" ? i += "&emsp;" : (p.localName === "drawing" || p.localName === "pict" || p.localName === "object") && (i += this.convertImage(p));
2924
+ p.localName === "t" ? i += he(p.textContent || "") : p.localName === "br" || p.localName === "cr" ? i += "<br>" : p.localName === "tab" ? i += "&emsp;" : (p.localName === "drawing" || p.localName === "pict" || p.localName === "object") && (i += this.convertImage(p));
2925
2925
  if (!i) return "";
2926
2926
  const s = [], n = q(e ? B(e, "color") : null);
2927
2927
  n && n !== "auto" && s.push("color:#" + n);
2928
- const r = q(e ? B(e, "highlight") : null);
2929
- r && he[r] && s.push("background-color:" + he[r]);
2930
- const l = parseFloat(q(e ? B(e, "sz") : null));
2931
- l && s.push("font-size:" + Math.round(l / 2 * (4 / 3)) + "px");
2928
+ const l = q(e ? B(e, "highlight") : null);
2929
+ l && de[l] && s.push("background-color:" + de[l]);
2930
+ const r = parseFloat(q(e ? B(e, "sz") : null));
2931
+ r && s.push("font-size:" + Math.round(r / 2 * (4 / 3)) + "px");
2932
2932
  const o = e ? B(e, "rFonts") : null, a = q(o, "ascii") || q(o, "cs");
2933
2933
  a && s.push(`font-family:'${a}'`), s.length && (i = `<span style="${s.join(";")}">${i}</span>`), at(e, "b") && (i = `<strong>${i}</strong>`), at(e, "i") && (i = `<em>${i}</em>`), at(e, "u") && q(B(e, "u")) !== "none" && (i = `<u>${i}</u>`), at(e, "strike") && (i = `<s>${i}</s>`);
2934
2934
  const d = q(e ? B(e, "vertAlign") : null);
@@ -2936,135 +2936,209 @@ class qi {
2936
2936
  }
2937
2937
  convertImage(t) {
2938
2938
  let e = "", i = 0;
2939
- const s = (l) => {
2940
- if (l.localName === "blip" && (e = e || q(l, "embed") || q(l, "link")), l.localName === "imagedata" && (e = e || q(l, "id")), l.localName === "extent") {
2941
- const o = parseFloat(l.getAttribute("cx") || "0");
2939
+ const s = (r) => {
2940
+ if (r.localName === "blip" && (e = e || q(r, "embed") || q(r, "link")), r.localName === "imagedata" && (e = e || q(r, "id")), r.localName === "extent") {
2941
+ const o = parseFloat(r.getAttribute("cx") || "0");
2942
2942
  o && (i = Math.round(o / 9525));
2943
2943
  }
2944
- for (const o of Array.from(l.children)) s(o);
2944
+ for (const o of Array.from(r.children)) s(o);
2945
2945
  };
2946
2946
  if (s(t), !e) return "";
2947
2947
  const n = this.images.get(e);
2948
2948
  if (!n) return "";
2949
- const r = i ? ` width="${i}"` : "";
2950
- return `<img src="${n}" alt=""${r}>`;
2949
+ const l = i ? ` width="${i}"` : "";
2950
+ return `<img src="${n}" alt=""${l}>`;
2951
2951
  }
2952
2952
  convertTable(t) {
2953
2953
  let e = '<table style="border-collapse:collapse;width:100%"><tbody>';
2954
- for (const i of dt(t, "tr")) {
2954
+ for (const i of ut(t, "tr")) {
2955
2955
  e += "<tr>";
2956
- for (const s of dt(i, "tc")) {
2957
- const n = parseInt(q(B(s, "tcPr", "gridSpan")) || "1", 10) || 1, r = n > 1 ? ` colspan="${n}"` : "";
2958
- let l = "";
2956
+ for (const s of ut(i, "tc")) {
2957
+ const n = parseInt(q(B(s, "tcPr", "gridSpan")) || "1", 10) || 1, l = n > 1 ? ` colspan="${n}"` : "";
2958
+ let r = "";
2959
2959
  for (const o of Array.from(s.children))
2960
- o.localName === "p" ? l += this.convertPara(o) : o.localName === "tbl" && (l += this.convertTable(o));
2961
- e += `<td style="border:1px solid #b9c2cc"${r}>${l || "<br>"}</td>`;
2960
+ o.localName === "p" ? r += this.convertPara(o) : o.localName === "tbl" && (r += this.convertTable(o));
2961
+ e += `<td style="border:1px solid #b9c2cc"${l}>${r || "<br>"}</td>`;
2962
2962
  }
2963
2963
  e += "</tr>";
2964
2964
  }
2965
2965
  return e + "</tbody></table>";
2966
2966
  }
2967
2967
  }
2968
- async function Ri(u) {
2969
- const t = u instanceof ArrayBuffer ? u : await u.arrayBuffer(), e = Ai(t), i = new TextDecoder(), s = async (y) => {
2970
- const g = e.get(y);
2971
- return g ? new DOMParser().parseFromString(i.decode(await ae(t, g)), "application/xml") : null;
2972
- }, n = await s("word/document.xml"), r = n == null ? void 0 : n.getElementsByTagName("*");
2973
- let l = null;
2974
- if (r) {
2975
- for (const y of Array.from(r))
2976
- if (y.localName === "body") {
2977
- l = y;
2968
+ async function Bi(u) {
2969
+ const t = u instanceof ArrayBuffer ? u : await u.arrayBuffer(), e = Ii(t), i = new TextDecoder(), s = async (b) => {
2970
+ const f = e.get(b);
2971
+ return f ? new DOMParser().parseFromString(i.decode(await ce(t, f)), "application/xml") : null;
2972
+ }, n = await s("word/document.xml"), l = n == null ? void 0 : n.getElementsByTagName("*");
2973
+ let r = null;
2974
+ if (l) {
2975
+ for (const b of Array.from(l))
2976
+ if (b.localName === "body") {
2977
+ r = b;
2978
2978
  break;
2979
2979
  }
2980
2980
  }
2981
- if (!l) throw new Error("word/document.xml missing or invalid");
2981
+ if (!r) throw new Error("word/document.xml missing or invalid");
2982
2982
  const o = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), d = await s("word/_rels/document.xml.rels");
2983
2983
  if (d)
2984
- for (const y of Array.from(d.getElementsByTagName("*"))) {
2985
- if (y.localName !== "Relationship") continue;
2986
- const g = y.getAttribute("Id") || "", x = y.getAttribute("Target") || "", w = y.getAttribute("Type") || "";
2987
- /hyperlink/i.test(w) ? o.set(g, x) : /image/i.test(w) && a.set(g, x);
2984
+ for (const b of Array.from(d.getElementsByTagName("*"))) {
2985
+ if (b.localName !== "Relationship") continue;
2986
+ const f = b.getAttribute("Id") || "", y = b.getAttribute("Target") || "", C = b.getAttribute("Type") || "";
2987
+ /hyperlink/i.test(C) ? o.set(f, y) : /image/i.test(C) && a.set(f, y);
2988
2988
  }
2989
2989
  const p = /* @__PURE__ */ new Map();
2990
- for (const [y, g] of a) {
2991
- const x = g.startsWith("/") ? g.slice(1) : "word/" + g.replace(/^\.\//, ""), w = e.get(x);
2992
- if (!w) continue;
2993
- const E = (x.split(".").pop() || "").toLowerCase(), I = Hi[E];
2990
+ for (const [b, f] of a) {
2991
+ const y = f.startsWith("/") ? f.slice(1) : "word/" + f.replace(/^\.\//, ""), C = e.get(y);
2992
+ if (!C) continue;
2993
+ const E = (y.split(".").pop() || "").toLowerCase(), I = qi[E];
2994
2994
  if (I)
2995
2995
  try {
2996
- p.set(y, `data:${I};base64,${Ii(await ae(t, w))}`);
2996
+ p.set(b, `data:${I};base64,${Ri(await ce(t, C))}`);
2997
2997
  } catch {
2998
2998
  }
2999
2999
  }
3000
- const m = /* @__PURE__ */ new Map(), b = await s("word/numbering.xml");
3001
- if (b) {
3002
- const y = /* @__PURE__ */ new Map(), g = Array.from(b.getElementsByTagName("*"));
3003
- for (const x of g) {
3004
- if (x.localName !== "abstractNum") continue;
3005
- const w = q(x, "abstractNumId"), E = dt(x, "lvl").find((A) => q(A, "ilvl") === "0") || dt(x, "lvl")[0], I = E ? q(B(E, "numFmt")) : "";
3006
- y.set(w, I === "bullet" ? "ul" : "ol");
3000
+ const m = /* @__PURE__ */ new Map(), v = await s("word/numbering.xml");
3001
+ if (v) {
3002
+ const b = /* @__PURE__ */ new Map(), f = Array.from(v.getElementsByTagName("*"));
3003
+ for (const y of f) {
3004
+ if (y.localName !== "abstractNum") continue;
3005
+ const C = q(y, "abstractNumId"), E = ut(y, "lvl").find((A) => q(A, "ilvl") === "0") || ut(y, "lvl")[0], I = E ? q(B(E, "numFmt")) : "";
3006
+ b.set(C, I === "bullet" ? "ul" : "ol");
3007
3007
  }
3008
- for (const x of g) {
3009
- if (x.localName !== "num") continue;
3010
- const w = q(x, "numId"), E = q(B(x, "abstractNumId"));
3011
- m.set(w, y.get(E) || "ul");
3008
+ for (const y of f) {
3009
+ if (y.localName !== "num") continue;
3010
+ const C = q(y, "numId"), E = q(B(y, "abstractNumId"));
3011
+ m.set(C, b.get(E) || "ul");
3012
3012
  }
3013
3013
  }
3014
- return new qi(o, p, m).convertBody(l);
3014
+ return new Pi(o, p, m).convertBody(r);
3015
3015
  }
3016
- const Pi = ["nw", "ne", "sw", "se"], Tt = ["img-left", "img-right", "img-top", "img-center"], Et = {
3016
+ const Di = ["nw", "ne", "sw", "se"], Et = ["img-left", "img-right", "img-top", "img-center"], St = {
3017
3017
  "img-left": "tplimgleft",
3018
3018
  "img-right": "tplimgright",
3019
3019
  "img-top": "tplimgtop",
3020
3020
  "img-center": "tplimgcenter"
3021
- }, Bi = {
3021
+ }, Ni = {
3022
3022
  "img-left": h.tplleft,
3023
3023
  "img-right": h.tplright,
3024
3024
  "img-top": h.tpltop,
3025
3025
  "img-center": h.tplcenter
3026
- }, Ni = ".tox,.pop,.tblctx,.imgctx,.selctx,.dlg";
3027
- let O = null, X = null, Mt = 0, de = !1;
3026
+ }, Oi = ".tox,.pop,.tblctx,.imgctx,.selctx,.dlg";
3027
+ let O = null, X = null, Lt = 0, ue = !1;
3028
3028
  function ct() {
3029
- clearTimeout(Mt), X = null, O && O.classList.remove("show");
3029
+ clearTimeout(Lt), X = null, O && O.classList.remove("show");
3030
3030
  }
3031
- function Di(u) {
3031
+ function Zi(u) {
3032
3032
  const t = u.dataset.tip;
3033
3033
  if (!t) return;
3034
- X = u, clearTimeout(Mt);
3034
+ X = u, clearTimeout(Lt);
3035
3035
  const e = O && O.classList.contains("show") ? 60 : 350;
3036
- Mt = window.setTimeout(() => {
3036
+ Lt = window.setTimeout(() => {
3037
3037
  if (X !== u || !document.contains(u)) return;
3038
3038
  O || (O = document.createElement("div"), O.className = "etip", document.body.appendChild(O)), O.textContent = t, O.classList.add("show");
3039
3039
  const i = u.getBoundingClientRect(), s = O.offsetWidth, n = O.offsetHeight;
3040
- let r = i.left + i.width / 2 - s / 2;
3041
- r = Math.max(6, Math.min(r, innerWidth - s - 6));
3042
- let l = i.bottom + 7;
3043
- l + n > innerHeight - 6 && (l = i.top - n - 7), O.style.left = r + "px", O.style.top = l + "px";
3040
+ let l = i.left + i.width / 2 - s / 2;
3041
+ l = Math.max(6, Math.min(l, innerWidth - s - 6));
3042
+ let r = i.bottom + 7;
3043
+ r + n > innerHeight - 6 && (r = i.top - n - 7), O.style.left = l + "px", O.style.top = r + "px";
3044
3044
  }, e);
3045
3045
  }
3046
- function Oi() {
3047
- de || (de = !0, document.addEventListener("mouseover", (u) => {
3046
+ function Fi() {
3047
+ ue || (ue = !0, document.addEventListener("mouseover", (u) => {
3048
3048
  const t = u.target, e = t.closest ? t.closest("[title],[data-tip]") : null;
3049
- if (!e || !e.closest(Ni) || e.closest(".earea")) {
3049
+ if (!e || !e.closest(Oi) || e.closest(".earea")) {
3050
3050
  e !== X && ct();
3051
3051
  return;
3052
3052
  }
3053
3053
  const i = e.getAttribute("title");
3054
- i && (e.dataset.tip = i, e.removeAttribute("title"), e.getAttribute("aria-label") || e.setAttribute("aria-label", i)), e !== X && Di(e);
3054
+ i && (e.dataset.tip = i, e.removeAttribute("title"), e.getAttribute("aria-label") || e.setAttribute("aria-label", i)), e !== X && Zi(e);
3055
3055
  }), document.addEventListener("mouseout", (u) => {
3056
3056
  X && !X.contains(u.relatedTarget) && ct();
3057
3057
  }), document.addEventListener("mousedown", ct, !0), addEventListener("scroll", ct, !0));
3058
3058
  }
3059
- const Zi = /[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\u0780-\u07BF\u08A0-\u08FF\uFB1D-\uFB4F\uFB50-\uFDFF\uFE70-\uFEFF]/, Fi = new RegExp("\\p{L}", "u"), _i = "p,div,li,td,th,blockquote,h1,h2,h3,h4,h5,h6,pre,figcaption";
3060
- function $i(u) {
3059
+ const _i = /[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\u0780-\u07BF\u08A0-\u08FF\uFB1D-\uFB4F\uFB50-\uFDFF\uFE70-\uFEFF]/, $i = new RegExp("\\p{L}", "u"), ji = "p,div,li,td,th,blockquote,h1,h2,h3,h4,h5,h6,pre,figcaption";
3060
+ function Wi(u) {
3061
3061
  for (const t of u) {
3062
- if (Zi.test(t)) return "rtl";
3063
- if (Fi.test(t)) return "ltr";
3062
+ if (_i.test(t)) return "rtl";
3063
+ if ($i.test(t)) return "ltr";
3064
3064
  }
3065
3065
  return null;
3066
3066
  }
3067
- function ge(u) {
3067
+ const ht = ["top", "right", "bottom", "left"], Ui = /^(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset)$/i, Vi = /^(thin|medium|thick|[+-]?(\d+\.?\d*|\.\d+)(px|pt|em|rem|ex|ch|cm|mm|in|pc|q)?)$/i, zi = /^[+-]?0*(\.0*)?(px|pt|em|rem|ex|ch|cm|mm|in|pc|q)?$/i, Xi = /^border-(collapse|spacing|radius|image|block|inline|start|end)/i, Yi = /^border(?:-(top|right|bottom|left))?(?:-(width|style|color))?$/, Gi = /^(inherit|initial|unset|revert|revert-layer)$/i;
3068
+ function ve(u) {
3069
+ const t = [];
3070
+ let e = 0, i = "";
3071
+ for (const s of u)
3072
+ s === "(" ? e++ : s === ")" && e--, e === 0 && /\s/.test(s) ? (i && t.push(i), i = "") : i += s;
3073
+ return i && t.push(i), t;
3074
+ }
3075
+ function Ki(u) {
3076
+ const [t, e = t, i = t, s = e] = u;
3077
+ return [t, e, i, s];
3078
+ }
3079
+ function Qi(u) {
3080
+ const t = { width: "medium", style: "none", color: "" };
3081
+ return ve(u).forEach((e) => {
3082
+ Ui.test(e) ? t.style = e.toLowerCase() : Vi.test(e) ? t.width = e : t.color = e;
3083
+ }), t;
3084
+ }
3085
+ function Ji(u) {
3086
+ return !u || /^currentcolor$/i.test(u) ? "" : /^windowtext$/i.test(u) ? "#000000" : u;
3087
+ }
3088
+ function ts(u) {
3089
+ if (u.width === null && u.style === null && u.color === null) return "";
3090
+ const t = u.style ?? "solid";
3091
+ return t === "none" || t === "hidden" || u.width && zi.test(u.width) ? "none" : [u.width && u.width !== "medium" ? u.width : "", t, Ji(u.color || "")].filter(Boolean).join(" ");
3092
+ }
3093
+ function es(u) {
3094
+ u.querySelectorAll("table,td,th").forEach((t) => {
3095
+ const e = t.getAttribute("style") || "";
3096
+ if (!/border/i.test(e)) return;
3097
+ const i = {
3098
+ top: { width: null, style: null, color: null },
3099
+ right: { width: null, style: null, color: null },
3100
+ bottom: { width: null, style: null, color: null },
3101
+ left: { width: null, style: null, color: null }
3102
+ }, s = [];
3103
+ let n = !1, l = !1;
3104
+ if (e.split(";").forEach((a) => {
3105
+ const d = a.indexOf(":");
3106
+ if (d < 1) {
3107
+ a.trim() && s.push(a.trim());
3108
+ return;
3109
+ }
3110
+ const p = a.slice(0, d).trim().toLowerCase(), m = a.slice(d + 1).trim(), v = Yi.exec(p);
3111
+ if (!v || Xi.test(p)) {
3112
+ s.push(p + ":" + m);
3113
+ return;
3114
+ }
3115
+ if (Gi.test(m)) {
3116
+ l = !0;
3117
+ return;
3118
+ }
3119
+ n = !0;
3120
+ const b = v[1], f = v[2];
3121
+ if (f)
3122
+ if (b)
3123
+ i[b][f] = m;
3124
+ else {
3125
+ const y = Ki(ve(m));
3126
+ ht.forEach((C, E) => {
3127
+ i[C][f] = y[E];
3128
+ });
3129
+ }
3130
+ else {
3131
+ const y = Qi(m);
3132
+ (b ? [b] : ht.slice()).forEach((C) => {
3133
+ i[C] = { ...y };
3134
+ });
3135
+ }
3136
+ }), l || !n) return;
3137
+ const r = ht.map((a) => ts(i[a])), o = s.slice();
3138
+ r.every((a) => a && a === r[0]) ? o.push("border:" + r[0]) : ht.forEach((a, d) => r[d] && o.push(`border-${a}:` + r[d])), t.setAttribute("style", o.join(";"));
3139
+ });
3140
+ }
3141
+ function be(u) {
3068
3142
  let t = "";
3069
3143
  return u.childNodes.forEach((e) => {
3070
3144
  if (e.nodeType === Node.TEXT_NODE)
@@ -3072,12 +3146,12 @@ function ge(u) {
3072
3146
  else if (e.nodeType === Node.ELEMENT_NODE) {
3073
3147
  const i = e, s = (i.getAttribute("dir") || "").toLowerCase();
3074
3148
  if (s === "rtl" || s === "ltr") return;
3075
- t += ge(i);
3149
+ t += be(i);
3076
3150
  }
3077
3151
  }), t;
3078
3152
  }
3079
3153
  var j;
3080
- let ji = (j = class {
3154
+ let is = (j = class {
3081
3155
  constructor(t) {
3082
3156
  this.lang = "en", this.contentClass = "fable-content-" + j.instanceCounter++, this.contentStyleEl = null, this.savedRange = null, this.foreColor = "#000000", this.backColor = "#FACC15", this.openPop = null, this.subStack = [], this.popAnchor = null, this.dlgOvl = null, this.tblActive = null, this.tblCorner = null, this.tblColBars = [], this.tblCtx = null, this.tblCellMark = null, this.tblOpMark = null, this.tblOpMarkKind = null, this.imgActive = null, this.imgHandles = [], this.imgCtx = null, this.imgHideTimer = null, this.phActive = null, this.phCtx = null, this.phUploadTarget = null, this.vidActive = null, this.vidCtx = null, this.vidHideTimer = null, this.vphActive = null, this.vphCtx = null, this.vphUploadTarget = null, this.selCtx = null, this.tbrMore = null, this.tbrExpanded = !1, this.codeActive = null, this.codeCtx = null, this.tplActive = null, this.tplCtx = null, this.revisions = [], this.revTimer = null, this.draftTimer = null, this.draftStorageKey = "", this.listeners = [], this.isDestroyed = !1, this.options = {
3083
3157
  target: t.target,
@@ -3093,20 +3167,20 @@ let ji = (j = class {
3093
3167
  statusbar: t.statusbar ?? !0,
3094
3168
  readonly: t.readonly ?? !1,
3095
3169
  draftKey: t.draftKey ?? (typeof location < "u" ? location.pathname : "default"),
3096
- fontFamilyFormats: t.fontFamilyFormats ?? ti,
3170
+ fontFamilyFormats: t.fontFamilyFormats ?? ii,
3097
3171
  imageFileTypes: t.imageFileTypes ?? ["image/jpeg", "image/jpg", "image/png", "image/gif", "image/bmp", "image/webp"],
3098
3172
  videoFileTypes: t.videoFileTypes ?? ["video/mp4", "video/webm", "video/ogg"]
3099
3173
  }, this.imageUploadHandler = t.imageUploadHandler, this.onImageUploadError = t.onImageUploadError, this.videoUploadHandler = t.videoUploadHandler, this.onVideoUploadError = t.onVideoUploadError, this.contentStyle = t.contentStyle, this.applyTheme(t), this.lang = this.options.language, this.draftStorageKey = "tmclone-draft:" + this.options.draftKey, this.initDOM(), this.bindEvents(), this.initUI(), this.recordRevision(), this.stampExistingImages(), this.options.onReady(this);
3100
3174
  }
3101
3175
  t(t) {
3102
- const e = Ct(this.lang)[t];
3176
+ const e = wt(this.lang)[t];
3103
3177
  return typeof e == "string" ? e : e.join(",");
3104
3178
  }
3105
3179
  tArr(t) {
3106
- return Ct(this.lang)[t];
3180
+ return wt(this.lang)[t];
3107
3181
  }
3108
3182
  dir() {
3109
- return Ct(this.lang).dir;
3183
+ return wt(this.lang).dir;
3110
3184
  }
3111
3185
  /* ---------------------------------------------------------- DOM setup */
3112
3186
  initDOM() {
@@ -3119,7 +3193,7 @@ let ji = (j = class {
3119
3193
  </span>
3120
3194
  `, this.sbHelp = this.statusbar.querySelector(".mid"), this.sbWords = this.statusbar.querySelector(".words");
3121
3195
  const e = this.statusbar.querySelector(".grip");
3122
- this.bindGrip(e), this.shell.appendChild(this.menubar), this.shell.appendChild(this.toolbar), this.shell.appendChild(this.ed), this.shell.appendChild(this.statusbar), this.contentStyle && (this.contentStyleEl = document.createElement("style"), this.contentStyleEl.textContent = this.scopeContentStyle(this.contentStyle), this.shell.appendChild(this.contentStyleEl)), t.appendChild(this.shell), Oi(), this.options.statusbar || (this.statusbar.style.display = "none"), this.imgInput = document.createElement("input"), this.imgInput.type = "file", this.imgInput.accept = this.options.imageFileTypes.join(","), this.imgInput.style.display = "none", t.appendChild(this.imgInput), this.vidInput = document.createElement("input"), this.vidInput.type = "file", this.vidInput.accept = this.options.videoFileTypes.join(","), this.vidInput.style.display = "none", t.appendChild(this.vidInput), this.docInput = document.createElement("input"), this.docInput.type = "file", this.docInput.accept = ".docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document", this.docInput.style.display = "none", t.appendChild(this.docInput);
3196
+ this.bindGrip(e), this.shell.appendChild(this.menubar), this.shell.appendChild(this.toolbar), this.shell.appendChild(this.ed), this.shell.appendChild(this.statusbar), this.contentStyle && (this.contentStyleEl = document.createElement("style"), this.contentStyleEl.textContent = this.scopeContentStyle(this.contentStyle), this.shell.appendChild(this.contentStyleEl)), t.appendChild(this.shell), Fi(), this.options.statusbar || (this.statusbar.style.display = "none"), this.imgInput = document.createElement("input"), this.imgInput.type = "file", this.imgInput.accept = this.options.imageFileTypes.join(","), this.imgInput.style.display = "none", t.appendChild(this.imgInput), this.vidInput = document.createElement("input"), this.vidInput.type = "file", this.vidInput.accept = this.options.videoFileTypes.join(","), this.vidInput.style.display = "none", t.appendChild(this.vidInput), this.docInput = document.createElement("input"), this.docInput.type = "file", this.docInput.accept = ".docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document", this.docInput.style.display = "none", t.appendChild(this.docInput);
3123
3197
  }
3124
3198
  /** Theme options land as CSS variables on the document root rather than the editor
3125
3199
  * shell, because dialogs, popups and floating context toolbars are appended to
@@ -3139,12 +3213,12 @@ let ji = (j = class {
3139
3213
  let e = 0, i = 0;
3140
3214
  const s = (n) => {
3141
3215
  e = n.clientY, i = this.ed.offsetHeight, n.preventDefault();
3142
- const r = (o) => {
3216
+ const l = (o) => {
3143
3217
  this.ed.style.height = Math.max(120, i + o.clientY - e) + "px";
3144
- }, l = () => {
3145
- window.removeEventListener("mousemove", r), window.removeEventListener("mouseup", l);
3218
+ }, r = () => {
3219
+ window.removeEventListener("mousemove", l), window.removeEventListener("mouseup", r);
3146
3220
  };
3147
- window.addEventListener("mousemove", r), window.addEventListener("mouseup", l);
3221
+ window.addEventListener("mousemove", l), window.addEventListener("mouseup", r);
3148
3222
  };
3149
3223
  t.addEventListener("mousedown", s), this.listeners.push(() => t.removeEventListener("mousedown", s));
3150
3224
  }
@@ -3162,34 +3236,34 @@ let ji = (j = class {
3162
3236
  }), this.on(this.ed, "keydown", (t) => {
3163
3237
  t.altKey && t.key === "0" && (t.preventDefault(), this.helpDlg()), (t.key === "Delete" || t.key === "Backspace") && this.phActive && (t.preventDefault(), this.removeImgPlaceholder()), (t.key === "Delete" || t.key === "Backspace") && this.vphActive && (t.preventDefault(), this.removeVphPlaceholder()), t.key === "`" && !t.ctrlKey && !t.metaKey && !t.altKey && this.tryCodeTyping(t), t.key === "Enter" && !t.shiftKey && !t.ctrlKey && !t.metaKey && !t.altKey && this.tryExitBlockquote(t);
3164
3238
  }), this.on(this.ed, "paste", (t) => this.handlePaste(t)), this.on(this.ed, "drop", (t) => {
3165
- var n, r, l, o;
3239
+ var n, l, r, o;
3166
3240
  t.preventDefault();
3167
3241
  const e = t.target, i = (n = e.closest) == null ? void 0 : n.call(e, ".img-ph:not(.vid-ph)");
3168
3242
  if (i && this.ed.contains(i) && !this.options.readonly) {
3169
- const a = Array.from(((r = t.dataTransfer) == null ? void 0 : r.files) || []).find((d) => d.type.startsWith("image/"));
3243
+ const a = Array.from(((l = t.dataTransfer) == null ? void 0 : l.files) || []).find((d) => d.type.startsWith("image/"));
3170
3244
  a && this.readImageFileInto(a, i);
3171
3245
  return;
3172
3246
  }
3173
- const s = (l = e.closest) == null ? void 0 : l.call(e, ".vid-ph");
3247
+ const s = (r = e.closest) == null ? void 0 : r.call(e, ".vid-ph");
3174
3248
  if (s && this.ed.contains(s) && !this.options.readonly) {
3175
3249
  const a = Array.from(((o = t.dataTransfer) == null ? void 0 : o.files) || []).find((d) => d.type.startsWith("video/"));
3176
3250
  a && this.readVideoFileInto(a, s);
3177
3251
  }
3178
3252
  }), this.on(this.ed, "dragover", (t) => t.preventDefault()), this.on(this.ed, "mousedown", (t) => {
3179
- var d, p, m, b, y, g, x;
3253
+ var d, p, m, v, b, f, y;
3180
3254
  const e = t.target, i = (d = e.closest) == null ? void 0 : d.call(e, "table");
3181
3255
  i && this.ed.contains(i) ? this.selectTableForResize(i) : this.clearTableHandles();
3182
3256
  const s = (p = e.closest) == null ? void 0 : p.call(e, ".img-ph:not(.vid-ph)");
3183
3257
  s && this.ed.contains(s) && !this.options.readonly ? (t.preventDefault(), this.ed.focus(), this.selectImgPlaceholder(s)) : this.clearImgPlaceholderSel();
3184
3258
  const n = (m = e.closest) == null ? void 0 : m.call(e, ".vid-ph");
3185
3259
  n && this.ed.contains(n) && !this.options.readonly ? (t.preventDefault(), this.ed.focus(), this.selectVphPlaceholder(n)) : this.clearVphPlaceholderSel();
3186
- const r = (b = e.closest) == null ? void 0 : b.call(e, ".tpl");
3187
- r && this.ed.contains(r) && !this.options.readonly ? this.selectTemplate(r) : this.clearTplSel();
3188
- const l = (y = e.closest) == null ? void 0 : y.call(e, "pre.code-block");
3189
- l && this.ed.contains(l) && !this.options.readonly ? (t.preventDefault(), this.selectCodeEl(l)) : this.clearCodeSel();
3190
- const o = (g = e.closest) == null ? void 0 : g.call(e, "img");
3260
+ const l = (v = e.closest) == null ? void 0 : v.call(e, ".tpl");
3261
+ l && this.ed.contains(l) && !this.options.readonly ? this.selectTemplate(l) : this.clearTplSel();
3262
+ const r = (b = e.closest) == null ? void 0 : b.call(e, "pre.code-block");
3263
+ r && this.ed.contains(r) && !this.options.readonly ? (t.preventDefault(), this.selectCodeEl(r)) : this.clearCodeSel();
3264
+ const o = (f = e.closest) == null ? void 0 : f.call(e, "img");
3191
3265
  o && this.ed.contains(o) && !this.options.readonly ? (t.preventDefault(), this.selectImage(o)) : this.clearImageHandles();
3192
- const a = (x = e.closest) == null ? void 0 : x.call(e, "video, .video-embed");
3266
+ const a = (y = e.closest) == null ? void 0 : y.call(e, "video, .video-embed");
3193
3267
  a && this.ed.contains(a) && !this.options.readonly ? (t.preventDefault(), this.selectVideo(a)) : this.clearVidHandles();
3194
3268
  }), this.on(this.ed, "mouseover", (t) => {
3195
3269
  var i, s;
@@ -3197,11 +3271,11 @@ let ji = (j = class {
3197
3271
  const e = (s = (i = t.target).closest) == null ? void 0 : s.call(i, "img");
3198
3272
  e && this.ed.contains(e) && (this.cancelImgHide(), this.selectImage(e));
3199
3273
  }), this.on(this.ed, "mouseout", (t) => {
3200
- var s, n, r, l;
3274
+ var s, n, l, r;
3201
3275
  const e = (n = (s = t.target).closest) == null ? void 0 : n.call(s, "img");
3202
3276
  if (!e) return;
3203
3277
  const i = t.relatedTarget;
3204
- i && ((r = this.imgCtx) != null && r.contains(i) || this.imgHandles.some((o) => o.contains(i)) || ((l = i.closest) == null ? void 0 : l.call(i, "img")) === e) || this.scheduleImgHide();
3278
+ i && ((l = this.imgCtx) != null && l.contains(i) || this.imgHandles.some((o) => o.contains(i)) || ((r = i.closest) == null ? void 0 : r.call(i, "img")) === e) || this.scheduleImgHide();
3205
3279
  }), this.on(this.ed, "scroll", () => {
3206
3280
  this.positionTableHandles(), this.positionImageHandles(), this.positionImgPhCtx(), this.positionTplCtx(), this.positionVphCtx(), this.positionVidCtx(), this.positionCodeCtx();
3207
3281
  }), this.onWin(
@@ -3283,37 +3357,40 @@ let ji = (j = class {
3283
3357
  * content with no strongly-directional character anywhere falls back to the
3284
3358
  * editor's current direction. */
3285
3359
  getContentForEmail() {
3286
- const t = (l, o) => {
3287
- const a = (l.getAttribute("style") || "").trim();
3288
- l.setAttribute("style", a ? a.replace(/;?$/, "; ") + o : o);
3360
+ const t = (r, o) => {
3361
+ const a = (r.getAttribute("style") || "").trim();
3362
+ r.setAttribute("style", a ? a.replace(/;?$/, "; ") + o : o);
3289
3363
  }, e = document.createElement("div");
3290
3364
  e.innerHTML = this.ed.innerHTML;
3291
3365
  let i = null;
3292
- e.querySelectorAll("[dir]").forEach((l) => {
3293
- const o = (l.getAttribute("dir") || "").toLowerCase();
3366
+ e.querySelectorAll("[dir]").forEach((r) => {
3367
+ const o = (r.getAttribute("dir") || "").toLowerCase();
3294
3368
  if (o !== "rtl" && o !== "ltr") return;
3295
3369
  const a = o;
3296
- i || (i = a), /text-align\s*:/i.test(l.getAttribute("style") || "") || t(l, `text-align:${a === "rtl" ? "right" : "left"}`);
3297
- }), e.querySelectorAll(_i).forEach((l) => {
3298
- const o = (l.getAttribute("dir") || "").toLowerCase();
3370
+ i || (i = a), /text-align\s*:/i.test(r.getAttribute("style") || "") || t(r, `text-align:${a === "rtl" ? "right" : "left"}`);
3371
+ }), e.querySelectorAll(ji).forEach((r) => {
3372
+ const o = (r.getAttribute("dir") || "").toLowerCase();
3299
3373
  if (o === "rtl" || o === "ltr") return;
3300
- const a = $i(ge(l));
3374
+ const a = Wi(be(r));
3301
3375
  if (!a) return;
3302
- i || (i = a), l.setAttribute("dir", a);
3303
- const d = /text-align\s*:/i.test(l.getAttribute("style") || "");
3304
- t(l, d ? `direction:${a}` : `direction:${a};text-align:${a === "rtl" ? "right" : "left"}`);
3376
+ i || (i = a), r.setAttribute("dir", a);
3377
+ const d = /text-align\s*:/i.test(r.getAttribute("style") || "");
3378
+ t(r, d ? `direction:${a}` : `direction:${a};text-align:${a === "rtl" ? "right" : "left"}`);
3305
3379
  });
3306
3380
  const s = this.ed.querySelectorAll("img");
3307
- e.querySelectorAll("img").forEach((l, o) => {
3308
- if (l.closest(".tpl-media")) return;
3381
+ e.querySelectorAll("img").forEach((r, o) => {
3382
+ if (r.closest(".tpl-media")) return;
3309
3383
  const a = s[o], d = Math.round((a == null ? void 0 : a.getBoundingClientRect().width) || 0);
3310
- d > 0 && !l.getAttribute("width") && l.setAttribute("width", String(d));
3311
- const p = l.getAttribute("style") || "";
3312
- d > 0 && !/(^|;)\s*width\s*:/i.test(p) && t(l, `width:${d}px`), /max-width\s*:/i.test(l.getAttribute("style") || "") || t(l, "max-width:100%"), /(^|;)\s*height\s*:/i.test(l.getAttribute("style") || "") || t(l, "height:auto");
3384
+ d > 0 && !r.getAttribute("width") && r.setAttribute("width", String(d));
3385
+ const p = r.getAttribute("style") || "";
3386
+ d > 0 && !/(^|;)\s*width\s*:/i.test(p) && t(r, `width:${d}px`), /max-width\s*:/i.test(r.getAttribute("style") || "") || t(r, "max-width:100%"), /(^|;)\s*height\s*:/i.test(r.getAttribute("style") || "") || t(r, "height:auto");
3387
+ }), es(e), e.querySelectorAll("table").forEach((r) => {
3388
+ const o = r.getAttribute("style") || "";
3389
+ /border-collapse\s*:/i.test(o) || t(r, "border-collapse:collapse"), !/border-spacing\s*:/i.test(o) && !r.hasAttribute("cellspacing") && r.setAttribute("cellspacing", "0");
3313
3390
  });
3314
3391
  const n = i || this.ed.getAttribute("dir") || this.dir();
3315
- return e.querySelectorAll("table:not([dir])").forEach((l) => {
3316
- l.setAttribute("dir", n), /direction\s*:/i.test(l.getAttribute("style") || "") || t(l, `direction:${n}`);
3392
+ return e.querySelectorAll("table:not([dir])").forEach((r) => {
3393
+ r.setAttribute("dir", n), /direction\s*:/i.test(r.getAttribute("style") || "") || t(r, `direction:${n}`);
3317
3394
  }), `<div dir="${n}" style="direction:${n};text-align:${n === "rtl" ? "right" : "left"}">${e.innerHTML}</div>`;
3318
3395
  }
3319
3396
  setContent(t) {
@@ -3329,7 +3406,7 @@ let ji = (j = class {
3329
3406
  this.ed.focus();
3330
3407
  }
3331
3408
  async importWordFile(t) {
3332
- const e = await Ri(t);
3409
+ const e = await Bi(t);
3333
3410
  this.recordRevision(), this.setContent(e), this.recordRevision();
3334
3411
  }
3335
3412
  restoreDraft() {
@@ -3388,8 +3465,8 @@ let ji = (j = class {
3388
3465
  t.preventDefault();
3389
3466
  const n = document.createElement("p");
3390
3467
  n.appendChild(document.createElement("br")), s.after(n), i.remove(), s.firstElementChild || s.remove();
3391
- const r = document.createRange();
3392
- r.setStart(n, 0), r.collapse(!0), e.removeAllRanges(), e.addRange(r), this.saveSel(), this.onChange();
3468
+ const l = document.createRange();
3469
+ l.setStart(n, 0), l.collapse(!0), e.removeAllRanges(), e.addRange(l), this.saveSel(), this.onChange();
3393
3470
  }
3394
3471
  selectedBlocks() {
3395
3472
  const t = window.getSelection();
@@ -3439,8 +3516,8 @@ let ji = (j = class {
3439
3516
  s.className = "revprev";
3440
3517
  const n = document.createElement("button");
3441
3518
  n.type = "button", n.className = "revrestore", n.textContent = this.t("restore");
3442
- let r = this.revisions.length - 1;
3443
- const l = new Intl.DateTimeFormat(this.lang === "ar" ? "ar-AE" : "en-GB", {
3519
+ let l = this.revisions.length - 1;
3520
+ const r = new Intl.DateTimeFormat(this.lang === "ar" ? "ar-AE" : "en-GB", {
3444
3521
  year: "numeric",
3445
3522
  month: "short",
3446
3523
  day: "numeric",
@@ -3448,21 +3525,21 @@ let ji = (j = class {
3448
3525
  minute: "2-digit",
3449
3526
  second: "2-digit"
3450
3527
  }), o = {}, a = (d) => {
3451
- r = d, this.revisions.forEach((p, m) => {
3452
- var b;
3453
- return (b = o[m]) == null ? void 0 : b.classList.toggle("on", m === d);
3528
+ l = d, this.revisions.forEach((p, m) => {
3529
+ var v;
3530
+ return (v = o[m]) == null ? void 0 : v.classList.toggle("on", m === d);
3454
3531
  }), s.innerHTML = this.revisions[d].html, n.disabled = d === this.revisions.length - 1;
3455
3532
  };
3456
3533
  for (let d = this.revisions.length - 1; d >= 0; d--) {
3457
3534
  const p = this.revisions[d], m = document.createElement("button");
3458
3535
  m.type = "button";
3459
- const b = (new DOMParser().parseFromString(p.html, "text/html").body.textContent || "").trim(), y = b ? b.split(/\s+/).length : 0, g = d === this.revisions.length - 1;
3460
- m.innerHTML = `<span>${g ? this.t("currentver") : l.format(new Date(p.time))}</span><span class="wc">${y} ${this.t("words")}</span>`, m.addEventListener("click", () => a(d)), o[d] = m, i.appendChild(m);
3536
+ const v = (new DOMParser().parseFromString(p.html, "text/html").body.textContent || "").trim(), b = v ? v.split(/\s+/).length : 0, f = d === this.revisions.length - 1;
3537
+ m.innerHTML = `<span>${f ? this.t("currentver") : r.format(new Date(p.time))}</span><span class="wc">${b} ${this.t("words")}</span>`, m.addEventListener("click", () => a(d)), o[d] = m, i.appendChild(m);
3461
3538
  }
3462
3539
  i.append(n), n.addEventListener("click", () => {
3463
- const d = this.revisions[r];
3540
+ const d = this.revisions[l];
3464
3541
  d && (this.recordRevision(), this.setContent(d.html), this.recordRevision(), this.closeDlg());
3465
- }), e.append(i, s), t.appendChild(e), a(r);
3542
+ }), e.append(i, s), t.appendChild(e), a(l);
3466
3543
  });
3467
3544
  }
3468
3545
  /* ---------------------------------------------------------- popups / menus */
@@ -3499,10 +3576,10 @@ let ji = (j = class {
3499
3576
  n.className = "pop sub", n.dir = this.dir(), t.subBuild ? t.subBuild(n) : t.sub && this.menuItems(n, t.sub), n.addEventListener("mousedown", (a) => {
3500
3577
  a.target.tagName !== "INPUT" && a.preventDefault();
3501
3578
  }), document.body.appendChild(n);
3502
- let l = this.dir() === "rtl" ? i.left - n.offsetWidth + 2 : i.right - 2;
3503
- l = Math.max(8, Math.min(l + scrollX, scrollX + innerWidth - n.offsetWidth - 8));
3579
+ let r = this.dir() === "rtl" ? i.left - n.offsetWidth + 2 : i.right - 2;
3580
+ r = Math.max(8, Math.min(r + scrollX, scrollX + innerWidth - n.offsetWidth - 8));
3504
3581
  let o = i.top + scrollY - 6;
3505
- o = Math.max(8 + scrollY, Math.min(o, scrollY + innerHeight - n.offsetHeight - 8)), n.style.left = l + "px", n.style.top = o + "px", this.subStack.push(n);
3582
+ o = Math.max(8 + scrollY, Math.min(o, scrollY + innerHeight - n.offsetHeight - 8)), n.style.left = r + "px", n.style.top = o + "px", this.subStack.push(n);
3506
3583
  }
3507
3584
  popup(t, e, i) {
3508
3585
  if (this.openPop && this.popAnchor === t) {
@@ -3514,8 +3591,8 @@ let ji = (j = class {
3514
3591
  s.className = "pop" + (i ? " " + i : ""), s.dir = this.dir(), e(s), document.body.appendChild(s);
3515
3592
  const n = t.getBoundingClientRect();
3516
3593
  s.style.minWidth = Math.max(160, Math.round(n.width)) + "px";
3517
- let r = n.bottom + scrollY + 2;
3518
- r = Math.max(8 + scrollY, Math.min(r, scrollY + innerHeight - s.offsetHeight - 8)), s.style.top = r + "px";
3594
+ let l = n.bottom + scrollY + 2;
3595
+ l = Math.max(8 + scrollY, Math.min(l, scrollY + innerHeight - s.offsetHeight - 8)), s.style.top = l + "px";
3519
3596
  let o = this.dir() === "rtl" ? n.right - s.offsetWidth : n.left;
3520
3597
  o = Math.max(8, Math.min(o + scrollX, scrollX + innerWidth - s.offsetWidth - 8)), s.style.left = o + "px", s.addEventListener("mousedown", (a) => {
3521
3598
  a.target.tagName !== "INPUT" && a.preventDefault();
@@ -3531,18 +3608,18 @@ let ji = (j = class {
3531
3608
  n.className = "mi" + (i.on ? " on" : ""), n.innerHTML = `<span class="ic">${i.icon || ""}</span><span class="prev" ${i.previewStyle ? `style="${i.previewStyle}"` : ""}>${i.label}</span>${i.shortcut ? `<span class="sc">${i.shortcut}</span>` : ""}${s ? `<span class="subarrow">${h.chev}</span>` : ""}`, n.addEventListener("click", () => {
3532
3609
  i.action && (this.closePop(), i.action());
3533
3610
  }), n.addEventListener("mouseenter", () => {
3534
- var r;
3535
- s ? this.openSubFor(i, n) : this.closeSubFrom(this.subLevelOf(t)), (r = i.hover) == null || r.call(i, !0);
3611
+ var l;
3612
+ s ? this.openSubFor(i, n) : this.closeSubFrom(this.subLevelOf(t)), (l = i.hover) == null || l.call(i, !0);
3536
3613
  }), n.addEventListener("mouseleave", () => {
3537
- var r;
3538
- return (r = i.hover) == null ? void 0 : r.call(i, !1);
3614
+ var l;
3615
+ return (l = i.hover) == null ? void 0 : l.call(i, !1);
3539
3616
  }), t.appendChild(n);
3540
3617
  });
3541
3618
  }
3542
3619
  /* ---------------------------------------------------------- toolbar builders */
3543
3620
  tbtn(t, e, i, s) {
3544
3621
  const n = document.createElement("button");
3545
- return n.className = "tbtn", n.type = "button", n.title = e, n.innerHTML = t, s && (n.dataset.id = s), n.addEventListener("mousedown", (r) => r.preventDefault()), n.addEventListener("click", i), n;
3622
+ return n.className = "tbtn", n.type = "button", n.title = e, n.innerHTML = t, s && (n.dataset.id = s), n.addEventListener("mousedown", (l) => l.preventDefault()), n.addEventListener("click", i), n;
3546
3623
  }
3547
3624
  /** Font-size increase / decrease step button. */
3548
3625
  stepBtn(t) {
@@ -3558,10 +3635,10 @@ let ji = (j = class {
3558
3635
  colorChips() {
3559
3636
  const t = (s) => {
3560
3637
  const n = document.createElement("button");
3561
- return n.type = "button", n.className = "cchip", n.title = s, n.addEventListener("mousedown", (r) => {
3562
- r.preventDefault(), this.saveSel();
3638
+ return n.type = "button", n.className = "cchip", n.title = s, n.addEventListener("mousedown", (l) => {
3639
+ l.preventDefault(), this.saveSel();
3563
3640
  }), n;
3564
- }, e = ni.map((s) => {
3641
+ }, e = li.map((s) => {
3565
3642
  const n = t(this.t("forecolor"));
3566
3643
  return n.style.background = s, n.addEventListener("click", () => this.applyColor("fore", s)), n;
3567
3644
  }), i = t(this.t("forecolor"));
@@ -3575,17 +3652,17 @@ let ji = (j = class {
3575
3652
  }
3576
3653
  tsel(t, e, i, s) {
3577
3654
  const n = document.createElement("button");
3578
- return n.className = "tsel " + t, n.type = "button", n.dataset.id = e, n.innerHTML = `<span class="lbl empty">${i || ""}</span>${h.chev}`, n.addEventListener("mousedown", (r) => {
3579
- r.preventDefault(), this.saveSel();
3655
+ return n.className = "tsel " + t, n.type = "button", n.dataset.id = e, n.innerHTML = `<span class="lbl empty">${i || ""}</span>${h.chev}`, n.addEventListener("mousedown", (l) => {
3656
+ l.preventDefault(), this.saveSel();
3580
3657
  }), n.addEventListener("click", () => s(n)), n;
3581
3658
  }
3582
3659
  setListStyle(t, e) {
3583
- var n, r;
3660
+ var n, l;
3584
3661
  this.restoreSel();
3585
3662
  const i = window.getSelection();
3586
3663
  if (!i) return;
3587
3664
  let s = (n = this.closestBlock(i.anchorNode)) == null ? void 0 : n.closest(t);
3588
- s || (this.exec(t === "ol" ? "insertOrderedList" : "insertUnorderedList"), s = (r = this.closestBlock(i.anchorNode)) == null ? void 0 : r.closest(t)), s && (s.style.listStyleType = e), this.saveSel(), this.onChange();
3665
+ s || (this.exec(t === "ol" ? "insertOrderedList" : "insertUnorderedList"), s = (l = this.closestBlock(i.anchorNode)) == null ? void 0 : l.closest(t)), s && (s.style.listStyleType = e), this.saveSel(), this.onChange();
3589
3666
  }
3590
3667
  listMenu(t, e) {
3591
3668
  var a;
@@ -3597,7 +3674,7 @@ let ji = (j = class {
3597
3674
  ] : [
3598
3675
  ["circle", h.ul_circle],
3599
3676
  ["square", h.ul_square]
3600
- ], n = this.tArr(e === "ol" ? "liststyles_ol" : "liststyles_ul").slice(1), r = window.getSelection(), l = r ? (a = this.closestBlock(r.anchorNode)) == null ? void 0 : a.closest(e) : null, o = l ? l.style.listStyleType : "";
3677
+ ], n = this.tArr(e === "ol" ? "liststyles_ol" : "liststyles_ul").slice(1), l = window.getSelection(), r = l ? (a = this.closestBlock(l.anchorNode)) == null ? void 0 : a.closest(e) : null, o = r ? r.style.listStyleType : "";
3601
3678
  this.popup(t, (d) => {
3602
3679
  this.menuItems(d, [
3603
3680
  {
@@ -3608,11 +3685,11 @@ let ji = (j = class {
3608
3685
  }
3609
3686
  ]), d.insertAdjacentHTML("beforeend", '<div class="sep"></div>');
3610
3687
  const p = document.createElement("div");
3611
- p.className = "mi-grid", s.forEach(([m, b], y) => {
3612
- const g = document.createElement("button");
3613
- g.className = "mi" + (o === m ? " on" : ""), g.innerHTML = `<span class="ic">${b}</span><span class="prev">${n[y]}</span>`, g.addEventListener("click", () => {
3688
+ p.className = "mi-grid", s.forEach(([m, v], b) => {
3689
+ const f = document.createElement("button");
3690
+ f.className = "mi" + (o === m ? " on" : ""), f.innerHTML = `<span class="ic">${v}</span><span class="prev">${n[b]}</span>`, f.addEventListener("click", () => {
3614
3691
  this.closePop(), this.setListStyle(e, m);
3615
- }), p.appendChild(g);
3692
+ }), p.appendChild(f);
3616
3693
  }), d.appendChild(p);
3617
3694
  });
3618
3695
  }
@@ -3621,7 +3698,7 @@ let ji = (j = class {
3621
3698
  * table cell-background menu all show the identical popup. */
3622
3699
  buildPaletteInto(t, e, i) {
3623
3700
  const s = document.createElement("div");
3624
- s.className = "cpal", ri.forEach((p) => {
3701
+ s.className = "cpal", oi.forEach((p) => {
3625
3702
  const m = document.createElement("button");
3626
3703
  m.type = "button", m.style.background = p, m.title = p, m.addEventListener("click", () => {
3627
3704
  this.closePop(), i(p);
@@ -3629,8 +3706,8 @@ let ji = (j = class {
3629
3706
  }), t.appendChild(s), t.insertAdjacentHTML("beforeend", '<div class="sep"></div>');
3630
3707
  const n = document.createElement("div");
3631
3708
  n.className = "cfoot";
3632
- const r = /^#[0-9a-f]{6}$/i.test(e) ? e : "#000000", l = document.createElement("div");
3633
- l.className = "cswatch cur", l.title = this.t("currentcolor"), l.style.background = r, l.innerHTML = h.check;
3709
+ const l = /^#[0-9a-f]{6}$/i.test(e) ? e : "#000000", r = document.createElement("div");
3710
+ r.className = "cswatch cur", r.title = this.t("currentcolor"), r.style.background = l, r.innerHTML = h.check;
3634
3711
  const o = document.createElement("button");
3635
3712
  o.type = "button", o.className = "cswatch nocolor", o.title = this.t("removecolor"), o.addEventListener("click", () => {
3636
3713
  this.closePop(), i(null);
@@ -3638,9 +3715,9 @@ let ji = (j = class {
3638
3715
  const a = document.createElement("label");
3639
3716
  a.className = "cswatch cwheel", a.title = this.t("customcolor"), a.innerHTML = h.palette;
3640
3717
  const d = document.createElement("input");
3641
- d.type = "color", d.value = r, d.addEventListener("change", () => {
3718
+ d.type = "color", d.value = l, d.addEventListener("change", () => {
3642
3719
  this.closePop(), i(d.value);
3643
- }), a.appendChild(d), n.append(l, o, a), t.appendChild(n);
3720
+ }), a.appendChild(d), n.append(r, o, a), t.appendChild(n);
3644
3721
  }
3645
3722
  colorMenu(t, e) {
3646
3723
  this.popup(
@@ -3670,7 +3747,7 @@ let ji = (j = class {
3670
3747
  this.popup(t, (e) => this.menuItems(e, this.fontItems()));
3671
3748
  }
3672
3749
  sizeItems() {
3673
- return ei.map((t) => ({
3750
+ return si.map((t) => ({
3674
3751
  label: t,
3675
3752
  on: this.currentSize() === t,
3676
3753
  action: () => this.applyFontSize(t)
@@ -3686,19 +3763,19 @@ let ji = (j = class {
3686
3763
  const t = window.getSelection();
3687
3764
  if (!t) return;
3688
3765
  if (!t.rangeCount) {
3689
- const r = document.createRange();
3690
- r.selectNodeContents(this.ed), r.collapse(!0), t.addRange(r);
3766
+ const l = document.createRange();
3767
+ l.selectNodeContents(this.ed), l.collapse(!0), t.addRange(l);
3691
3768
  }
3692
3769
  if (!t.isCollapsed) return;
3693
3770
  const e = t.getRangeAt(0), i = e.startContainer;
3694
3771
  if (i.nodeType === 3) {
3695
- const r = i.data;
3696
- let l = e.startOffset, o = e.startOffset;
3697
- for (; l > 0 && /\S/.test(r[l - 1]); ) l--;
3698
- for (; o < r.length && /\S/.test(r[o]); ) o++;
3699
- if (o > l) {
3772
+ const l = i.data;
3773
+ let r = e.startOffset, o = e.startOffset;
3774
+ for (; r > 0 && /\S/.test(l[r - 1]); ) r--;
3775
+ for (; o < l.length && /\S/.test(l[o]); ) o++;
3776
+ if (o > r) {
3700
3777
  const a = document.createRange();
3701
- a.setStart(i, l), a.setEnd(i, o), t.removeAllRanges(), t.addRange(a), this.savedRange = a.cloneRange();
3778
+ a.setStart(i, r), a.setEnd(i, o), t.removeAllRanges(), t.addRange(a), this.savedRange = a.cloneRange();
3702
3779
  return;
3703
3780
  }
3704
3781
  }
@@ -3723,7 +3800,7 @@ let ji = (j = class {
3723
3800
  this.saveSel(), this.refreshState(), this.onChange();
3724
3801
  }
3725
3802
  stepFontSize(t) {
3726
- const e = parseInt(this.currentSize(), 10) || 14, i = Math.min(si, Math.max(ii, e + t));
3803
+ const e = parseInt(this.currentSize(), 10) || 14, i = Math.min(ri, Math.max(ni, e + t));
3727
3804
  i !== e && this.applyFontSize(i + "px");
3728
3805
  }
3729
3806
  /* ------------------------------------------------ case / spacing / link */
@@ -3732,14 +3809,14 @@ let ji = (j = class {
3732
3809
  const e = window.getSelection();
3733
3810
  if (!e || !e.rangeCount || e.isCollapsed) return;
3734
3811
  const i = e.getRangeAt(0), s = document.createTreeWalker(this.ed, NodeFilter.SHOW_TEXT), n = [];
3735
- let r;
3736
- for (; r = s.nextNode(); ) i.intersectsNode(r) && n.push(r);
3737
- n.forEach((l) => {
3738
- const o = l === i.startContainer ? i.startOffset : 0, a = l === i.endContainer ? i.endOffset : l.data.length;
3812
+ let l;
3813
+ for (; l = s.nextNode(); ) i.intersectsNode(l) && n.push(l);
3814
+ n.forEach((r) => {
3815
+ const o = r === i.startContainer ? i.startOffset : 0, a = r === i.endContainer ? i.endOffset : r.data.length;
3739
3816
  if (a <= o) return;
3740
- const d = l.data.slice(o, a);
3817
+ const d = r.data.slice(o, a);
3741
3818
  let p = d;
3742
- t === "lower" ? p = d.toLowerCase() : t === "upper" ? p = d.toUpperCase() : p = d.replace(/(^|\s)(\S)/g, (m, b, y) => b + y.toUpperCase()), l.replaceData(o, a - o, p);
3819
+ t === "lower" ? p = d.toLowerCase() : t === "upper" ? p = d.toUpperCase() : p = d.replace(/(^|\s)(\S)/g, (m, v, b) => v + b.toUpperCase()), r.replaceData(o, a - o, p);
3743
3820
  }), this.saveSel(), this.refreshState(), this.onChange();
3744
3821
  }
3745
3822
  caseItems() {
@@ -3775,13 +3852,13 @@ let ji = (j = class {
3775
3852
  ];
3776
3853
  }
3777
3854
  lineHeightMenu(t) {
3778
- this.popup(t, (e) => this.menuItems(e, this.blockStyleItems("lineHeight", te)));
3855
+ this.popup(t, (e) => this.menuItems(e, this.blockStyleItems("lineHeight", ee)));
3779
3856
  }
3780
3857
  wordSpacingMenu(t) {
3781
- this.popup(t, (e) => this.menuItems(e, this.blockStyleItems("wordSpacing", ee)));
3858
+ this.popup(t, (e) => this.menuItems(e, this.blockStyleItems("wordSpacing", ie)));
3782
3859
  }
3783
3860
  letterSpacingMenu(t) {
3784
- this.popup(t, (e) => this.menuItems(e, this.blockStyleItems("letterSpacing", ie)));
3861
+ this.popup(t, (e) => this.menuItems(e, this.blockStyleItems("letterSpacing", se)));
3785
3862
  }
3786
3863
  closestAnchor() {
3787
3864
  const t = window.getSelection();
@@ -3827,14 +3904,14 @@ let ji = (j = class {
3827
3904
  (s) => {
3828
3905
  const n = document.createElement("div");
3829
3906
  n.style.cssText = "display:flex;align-items:center;gap:10px;margin:10px 0;min-width:360px";
3830
- const r = document.createElement("span");
3831
- r.style.cssText = "width:60px;color:#556;flex:none", r.textContent = this.t("linkurl"), e = document.createElement("input"), e.type = "url", e.placeholder = "https://", e.style.cssText = "flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit", e.value = (t == null ? void 0 : t.getAttribute("href")) || "", n.append(r, e), s.appendChild(n), setTimeout(() => e.focus(), 0);
3907
+ const l = document.createElement("span");
3908
+ l.style.cssText = "width:60px;color:#556;flex:none", l.textContent = this.t("linkurl"), e = document.createElement("input"), e.type = "url", e.placeholder = "https://", e.style.cssText = "flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit", e.value = (t == null ? void 0 : t.getAttribute("href")) || "", n.append(l, e), s.appendChild(n), setTimeout(() => e.focus(), 0);
3832
3909
  },
3833
3910
  i
3834
3911
  );
3835
3912
  }
3836
3913
  blockItems() {
3837
- return ne.map(([t]) => ({
3914
+ return re.map(([t]) => ({
3838
3915
  label: this.blockLabel(t),
3839
3916
  previewStyle: t.startsWith("h") ? `font-weight:700;font-size:${22 - 2 * +t[1]}px` : t === "pre" ? "font-family:monospace" : "",
3840
3917
  on: this.currentBlock() === t,
@@ -3871,15 +3948,15 @@ let ji = (j = class {
3871
3948
  s.className = "tgrid";
3872
3949
  const n = document.createElement("div");
3873
3950
  n.className = "tgridlbl", n.textContent = "1 × 1";
3874
- const r = [];
3875
- for (let l = 0; l < 8; l++)
3951
+ const l = [];
3952
+ for (let r = 0; r < 8; r++)
3876
3953
  for (let o = 0; o < 10; o++) {
3877
3954
  const a = document.createElement("span");
3878
- a.dataset.r = String(l), a.dataset.c = String(o), a.addEventListener("mouseenter", () => {
3879
- r.forEach((d) => d.classList.toggle("hot", +d.dataset.r <= l && +d.dataset.c <= o)), n.textContent = o + 1 + " × " + (l + 1);
3955
+ a.dataset.r = String(r), a.dataset.c = String(o), a.addEventListener("mouseenter", () => {
3956
+ l.forEach((d) => d.classList.toggle("hot", +d.dataset.r <= r && +d.dataset.c <= o)), n.textContent = o + 1 + " × " + (r + 1);
3880
3957
  }), a.addEventListener("click", () => {
3881
- this.closePop(), this.insertTable(l + 1, o + 1), e == null || e();
3882
- }), r.push(a), s.appendChild(a);
3958
+ this.closePop(), this.insertTable(r + 1, o + 1), e == null || e();
3959
+ }), l.push(a), s.appendChild(a);
3883
3960
  }
3884
3961
  i.append(s, n), t.appendChild(i);
3885
3962
  }
@@ -3964,17 +4041,17 @@ let ji = (j = class {
3964
4041
  }
3965
4042
  buildToolbar() {
3966
4043
  this.toolbar.innerHTML = "";
3967
- const t = this.options.toolbar === !0 ? Ke : this.options.toolbar, e = this.buildToolbarRegistry();
4044
+ const t = this.options.toolbar === !0 ? ti : this.options.toolbar, e = this.buildToolbarRegistry();
3968
4045
  this.parseToolbarString(t).forEach((i) => {
3969
4046
  const s = [];
3970
4047
  i.forEach((n) => {
3971
- const r = e[n];
3972
- if (!r) {
4048
+ const l = e[n];
4049
+ if (!l) {
3973
4050
  console.warn(`FableEditor: unknown toolbar item "${n}"`);
3974
4051
  return;
3975
4052
  }
3976
- const l = r();
3977
- Array.isArray(l) ? s.push(...l) : s.push(l);
4053
+ const r = l();
4054
+ Array.isArray(r) ? s.push(...r) : s.push(r);
3978
4055
  }), s.length && this.toolbar.appendChild(this.group(...s));
3979
4056
  }), this.tbrMore = this.tbtn(h.more, this.t("more"), () => {
3980
4057
  this.tbrExpanded = !this.tbrExpanded, this.updateToolbarOverflow();
@@ -4074,9 +4151,9 @@ let ji = (j = class {
4074
4151
  { label: this.t("fontsize"), subBuild: (s) => this.menuItems(s, this.sizeItems()) },
4075
4152
  { label: this.t("blocks"), subBuild: (s) => this.menuItems(s, this.blockItems()) },
4076
4153
  { label: this.t("align"), subBuild: (s) => this.menuItems(s, this.alignItems()) },
4077
- { label: this.t("lineheight"), icon: h.lineheight, subBuild: (s) => this.menuItems(s, this.blockStyleItems("lineHeight", te)) },
4078
- { label: this.t("wordspacing"), icon: h.wordspacing, subBuild: (s) => this.menuItems(s, this.blockStyleItems("wordSpacing", ee)) },
4079
- { label: this.t("letterspacing"), icon: h.letterspacing, subBuild: (s) => this.menuItems(s, this.blockStyleItems("letterSpacing", ie)) },
4154
+ { label: this.t("lineheight"), icon: h.lineheight, subBuild: (s) => this.menuItems(s, this.blockStyleItems("lineHeight", ee)) },
4155
+ { label: this.t("wordspacing"), icon: h.wordspacing, subBuild: (s) => this.menuItems(s, this.blockStyleItems("wordSpacing", ie)) },
4156
+ { label: this.t("letterspacing"), icon: h.letterspacing, subBuild: (s) => this.menuItems(s, this.blockStyleItems("letterSpacing", se)) },
4080
4157
  "|",
4081
4158
  { label: this.t("forecolor"), icon: h.palette, subBuild: (s) => this.buildPaletteInto(s, this.foreColor, (n) => this.applyColor("fore", n)) },
4082
4159
  { label: this.t("backcolor"), icon: h.backcolor, subBuild: (s) => this.buildPaletteInto(s, this.backColor, (n) => this.applyColor("back", n)) },
@@ -4146,7 +4223,7 @@ let ji = (j = class {
4146
4223
  { label: this.t("deltable"), icon: h.trash, action: () => this.tableOp("deltable") }
4147
4224
  ],
4148
4225
  help: [this.mItem("helpttl", h.helpic, () => this.helpDlg(), "Alt+0")]
4149
- }, e = this.options.menubar === !0 ? Je : this.options.menubar, i = /* @__PURE__ */ new Set();
4226
+ }, e = this.options.menubar === !0 ? ei : this.options.menubar, i = /* @__PURE__ */ new Set();
4150
4227
  e.split(/\s+/).filter(Boolean).forEach((s) => {
4151
4228
  if (i.has(s)) return;
4152
4229
  if (i.add(s), !t[s]) {
@@ -4154,9 +4231,9 @@ let ji = (j = class {
4154
4231
  return;
4155
4232
  }
4156
4233
  const n = document.createElement("button");
4157
- n.type = "button", n.textContent = this.t(s), n.dataset.menuKey = s, n.addEventListener("mousedown", (r) => {
4158
- r.preventDefault(), this.saveSel();
4159
- }), n.addEventListener("click", () => this.popup(n, (r) => this.menuItems(r, t[s]))), this.menubar.appendChild(n);
4234
+ n.type = "button", n.textContent = this.t(s), n.dataset.menuKey = s, n.addEventListener("mousedown", (l) => {
4235
+ l.preventDefault(), this.saveSel();
4236
+ }), n.addEventListener("click", () => this.popup(n, (l) => this.menuItems(l, t[s]))), this.menubar.appendChild(n);
4160
4237
  });
4161
4238
  }
4162
4239
  /* ---------------------------------------------------------- table ops */
@@ -4167,23 +4244,23 @@ let ji = (j = class {
4167
4244
  if (!e) return;
4168
4245
  const i = ((o = this.closestBlock(e.anchorNode)) == null ? void 0 : o.closest("td,th")) || (e.anchorNode && e.anchorNode.nodeType === 1 ? (d = (a = e.anchorNode).closest) == null ? void 0 : d.call(a, "td,th") : null);
4169
4246
  if (!i) return;
4170
- const s = i.parentElement, n = i.closest("table"), r = Array.from(s.children).indexOf(i), l = () => {
4247
+ const s = i.parentElement, n = i.closest("table"), l = Array.from(s.children).indexOf(i), r = () => {
4171
4248
  const p = s.cloneNode(!1);
4172
4249
  return Array.from(s.children).forEach((m) => {
4173
- const b = document.createElement("td"), y = m.getAttribute("style");
4174
- y && b.setAttribute("style", y), b.style.removeProperty("background-color"), b.innerHTML = "<br>", p.appendChild(b);
4250
+ const v = document.createElement("td"), b = m.getAttribute("style");
4251
+ b && v.setAttribute("style", b), v.style.removeProperty("background-color"), v.innerHTML = "<br>", p.appendChild(v);
4175
4252
  }), p;
4176
4253
  };
4177
- if (t === "rowabove" && s.before(l()), t === "rowbelow" && s.after(l()), t === "delrow") {
4254
+ if (t === "rowabove" && s.before(r()), t === "rowbelow" && s.after(r()), t === "delrow") {
4178
4255
  const p = s.parentElement;
4179
4256
  s.remove(), p.querySelector("tr") || n.remove();
4180
4257
  }
4181
4258
  (t === "colbefore" || t === "colafter") && n.querySelectorAll("tr").forEach((p) => {
4182
- const m = p.children[Math.min(r, p.children.length - 1)], b = document.createElement("td"), y = m.getAttribute("style");
4183
- y && b.setAttribute("style", y), b.style.removeProperty("width"), b.style.removeProperty("background-color"), b.innerHTML = "<br>", t === "colbefore" ? m.before(b) : m.after(b);
4259
+ const m = p.children[Math.min(l, p.children.length - 1)], v = document.createElement("td"), b = m.getAttribute("style");
4260
+ b && v.setAttribute("style", b), v.style.removeProperty("width"), v.style.removeProperty("background-color"), v.innerHTML = "<br>", t === "colbefore" ? m.before(v) : m.after(v);
4184
4261
  }), t === "delcol" && (n.querySelectorAll("tr").forEach((p) => {
4185
4262
  var m;
4186
- return (m = p.children[r]) == null ? void 0 : m.remove();
4263
+ return (m = p.children[l]) == null ? void 0 : m.remove();
4187
4264
  }), n.querySelector("td,th") || n.remove()), t === "deltable" && n.remove(), this.onChange(), this.positionTableHandles();
4188
4265
  }
4189
4266
  /** Reorders the current row/column: 'rowup'/'rowdown' swap the caret's row with
@@ -4209,10 +4286,10 @@ let ji = (j = class {
4209
4286
  const a = o.children[n], d = o.children[n + 1];
4210
4287
  a && d && d.after(a);
4211
4288
  });
4212
- const r = document.createRange();
4213
- r.selectNodeContents(e), r.collapse(!0);
4214
- const l = window.getSelection();
4215
- l && (l.removeAllRanges(), l.addRange(r)), this.saveSel(), this.onChange(), this.positionTableHandles(), this.positionCellMarker();
4289
+ const l = document.createRange();
4290
+ l.selectNodeContents(e), l.collapse(!0);
4291
+ const r = window.getSelection();
4292
+ r && (r.removeAllRanges(), r.addRange(l)), this.saveSel(), this.onChange(), this.positionTableHandles(), this.positionCellMarker();
4216
4293
  }
4217
4294
  /** Align the whole table via auto margins — same semantics as the align
4218
4295
  * field in the table-properties dialog. */
@@ -4249,26 +4326,26 @@ let ji = (j = class {
4249
4326
  tablePropsDlg() {
4250
4327
  const t = this.tblActive;
4251
4328
  if (!t) return;
4252
- let e, i, s, n, r;
4253
- const l = "display:flex;align-items:center;gap:10px;margin:10px 0", o = "width:120px;color:#556;flex:none", a = "flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit", d = t.querySelector("td,th"), p = t.style.width || "", m = d && d.style.padding ? parseFloat(d.style.padding) : "", b = t.style.borderSpacing ? parseFloat(t.style.borderSpacing) : "", y = t.style.borderWidth ? parseFloat(t.style.borderWidth) : "", g = t.style.marginLeft, x = t.style.marginRight, w = g === "auto" && x === "auto" ? "center" : g === "auto" ? "right" : x === "auto" && g === "0" ? "left" : "";
4329
+ let e, i, s, n, l;
4330
+ const r = "display:flex;align-items:center;gap:10px;margin:10px 0", o = "width:120px;color:#556;flex:none", a = "flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit", d = t.querySelector("td,th"), p = t.style.width || "", m = d && d.style.padding ? parseFloat(d.style.padding) : "", v = t.style.borderSpacing ? parseFloat(t.style.borderSpacing) : "", b = t.style.borderWidth ? parseFloat(t.style.borderWidth) : "", f = t.style.marginLeft, y = t.style.marginRight, C = f === "auto" && y === "auto" ? "center" : f === "auto" ? "right" : y === "auto" && f === "0" ? "left" : "";
4254
4331
  this.dialog(
4255
4332
  this.t("tablepropsttl"),
4256
4333
  (E) => {
4257
4334
  const I = (A, $) => {
4258
4335
  const Z = document.createElement("div");
4259
- Z.style.cssText = l;
4336
+ Z.style.cssText = r;
4260
4337
  const F = document.createElement("span");
4261
4338
  F.style.cssText = o, F.textContent = this.t(A), Z.append(F, $), E.appendChild(Z);
4262
4339
  };
4263
- e = document.createElement("input"), e.type = "text", e.style.cssText = a, e.placeholder = "e.g. 600px or 100%", e.value = p, I("tblwidth", e), i = document.createElement("input"), i.type = "number", i.min = "0", i.style.cssText = a, i.value = String(m), I("tblcellpadding", i), s = document.createElement("input"), s.type = "number", s.min = "0", s.style.cssText = a, s.value = String(b), I("tblcellspacing", s), n = document.createElement("input"), n.type = "number", n.min = "0", n.style.cssText = a, n.value = String(y), I("tblborder", n), r = document.createElement("select"), r.style.cssText = a, [
4340
+ e = document.createElement("input"), e.type = "text", e.style.cssText = a, e.placeholder = "e.g. 600px or 100%", e.value = p, I("tblwidth", e), i = document.createElement("input"), i.type = "number", i.min = "0", i.style.cssText = a, i.value = String(m), I("tblcellpadding", i), s = document.createElement("input"), s.type = "number", s.min = "0", s.style.cssText = a, s.value = String(v), I("tblcellspacing", s), n = document.createElement("input"), n.type = "number", n.min = "0", n.style.cssText = a, n.value = String(b), I("tblborder", n), l = document.createElement("select"), l.style.cssText = a, [
4264
4341
  ["", "alignnone"],
4265
4342
  ["left", "alignleft"],
4266
4343
  ["center", "aligncenter"],
4267
4344
  ["right", "alignright"]
4268
4345
  ].forEach(([A, $]) => {
4269
4346
  const Z = document.createElement("option");
4270
- Z.value = A, Z.textContent = this.t($), A === w && (Z.selected = !0), r.appendChild(Z);
4271
- }), I("tblalign", r);
4347
+ Z.value = A, Z.textContent = this.t($), A === C && (Z.selected = !0), l.appendChild(Z);
4348
+ }), I("tblalign", l);
4272
4349
  },
4273
4350
  [
4274
4351
  { label: this.t("cancel"), action: () => this.closeDlg() },
@@ -4281,7 +4358,7 @@ let ji = (j = class {
4281
4358
  cellpadding: i.value.trim(),
4282
4359
  cellspacing: s.value.trim(),
4283
4360
  border: n.value.trim(),
4284
- align: r.value
4361
+ align: l.value
4285
4362
  }), this.closeDlg(), this.onChange(), this.positionTableHandles();
4286
4363
  }
4287
4364
  }
@@ -4320,8 +4397,8 @@ let ji = (j = class {
4320
4397
  formSelect(t, e) {
4321
4398
  const i = document.createElement("select");
4322
4399
  return i.style.cssText = "flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit;background:#fff", t.forEach(([s, n]) => {
4323
- const r = document.createElement("option");
4324
- r.value = s, r.textContent = n, s === e && (r.selected = !0), i.appendChild(r);
4400
+ const l = document.createElement("option");
4401
+ l.value = s, l.textContent = n, s === e && (l.selected = !0), i.appendChild(l);
4325
4402
  }), i;
4326
4403
  }
4327
4404
  formBg(t) {
@@ -4331,8 +4408,8 @@ let ji = (j = class {
4331
4408
  s.type = "color", s.value = i || "#ffffff", s.style.cssText = "width:36px;height:29px;border:1px solid #cfd6df;border-radius:4px;padding:1px;background:none;cursor:pointer";
4332
4409
  const n = document.createElement("label");
4333
4410
  n.style.cssText = "display:flex;align-items:center;gap:6px;cursor:pointer;color:#556";
4334
- const r = document.createElement("input");
4335
- return r.type = "checkbox", r.checked = !!i, n.append(r, document.createTextNode(this.t("fill"))), s.addEventListener("input", () => r.checked = !0), e.append(s, n), { wrap: e, color: s, fill: r };
4411
+ const l = document.createElement("input");
4412
+ return l.type = "checkbox", l.checked = !!i, n.append(l, document.createTextNode(this.t("fill"))), s.addEventListener("input", () => l.checked = !0), e.append(s, n), { wrap: e, color: s, fill: l };
4336
4413
  }
4337
4414
  setOrClear(t, e, i) {
4338
4415
  i ? t.style.setProperty(e, /^(width|height)$/.test(e) && /^\d+$/.test(i) ? i + "px" : i) : t.style.removeProperty(e);
@@ -4343,11 +4420,11 @@ let ji = (j = class {
4343
4420
  alert(this.t("nocell"));
4344
4421
  return;
4345
4422
  }
4346
- let e, i, s, n, r;
4423
+ let e, i, s, n, l;
4347
4424
  this.dialog(
4348
4425
  this.t("cellprops").replace("…", ""),
4349
- (l) => {
4350
- e = this.formInput(t.style.width, "e.g. 120px / 25%"), this.formRow(l, this.t("tblwidth"), e), i = this.formInput(t.style.height, "e.g. 40px"), this.formRow(l, this.t("tblheight"), i), s = this.formSelect(
4426
+ (r) => {
4427
+ e = this.formInput(t.style.width, "e.g. 120px / 25%"), this.formRow(r, this.t("tblwidth"), e), i = this.formInput(t.style.height, "e.g. 40px"), this.formRow(r, this.t("tblheight"), i), s = this.formSelect(
4351
4428
  [
4352
4429
  ["", this.t("alignnone")],
4353
4430
  ["left", this.t("alignleft")],
@@ -4355,7 +4432,7 @@ let ji = (j = class {
4355
4432
  ["right", this.t("alignright")]
4356
4433
  ],
4357
4434
  t.style.textAlign || ""
4358
- ), this.formRow(l, this.t("tblalign"), s), n = this.formSelect(
4435
+ ), this.formRow(r, this.t("tblalign"), s), n = this.formSelect(
4359
4436
  [
4360
4437
  ["", this.t("alignnone")],
4361
4438
  ["top", this.t("valigntop")],
@@ -4363,7 +4440,7 @@ let ji = (j = class {
4363
4440
  ["bottom", this.t("valignbottom")]
4364
4441
  ],
4365
4442
  t.style.verticalAlign || ""
4366
- ), this.formRow(l, this.t("valign"), n), r = this.formBg(t.style.backgroundColor || ""), this.formRow(l, this.t("backcolor"), r.wrap);
4443
+ ), this.formRow(r, this.t("valign"), n), l = this.formBg(t.style.backgroundColor || ""), this.formRow(r, this.t("backcolor"), l.wrap);
4367
4444
  },
4368
4445
  [
4369
4446
  { label: this.t("cancel"), action: () => this.closeDlg() },
@@ -4371,7 +4448,7 @@ let ji = (j = class {
4371
4448
  label: this.t("save"),
4372
4449
  primary: !0,
4373
4450
  action: () => {
4374
- this.setOrClear(t, "width", e.value.trim()), this.setOrClear(t, "height", i.value.trim()), this.setOrClear(t, "text-align", s.value), this.setOrClear(t, "vertical-align", n.value), this.setOrClear(t, "background-color", r.fill.checked ? r.color.value : ""), this.closeDlg(), this.onChange(), this.positionTableHandles();
4451
+ this.setOrClear(t, "width", e.value.trim()), this.setOrClear(t, "height", i.value.trim()), this.setOrClear(t, "text-align", s.value), this.setOrClear(t, "vertical-align", n.value), this.setOrClear(t, "background-color", l.fill.checked ? l.color.value : ""), this.closeDlg(), this.onChange(), this.positionTableHandles();
4375
4452
  }
4376
4453
  }
4377
4454
  ]
@@ -4409,11 +4486,11 @@ let ji = (j = class {
4409
4486
  return;
4410
4487
  }
4411
4488
  const e = t.parentElement, i = t.closest("table"), s = Array.from(e.children).indexOf(t), n = Array.from(i.rows).map((o) => o.cells[s]).filter(Boolean);
4412
- let r, l;
4489
+ let l, r;
4413
4490
  this.dialog(
4414
4491
  this.t("colprops").replace("…", ""),
4415
4492
  (o) => {
4416
- r = this.formInput(t.style.width, "e.g. 120px / 25%"), this.formRow(o, this.t("tblwidth"), r), l = this.formBg(t.style.backgroundColor || ""), this.formRow(o, this.t("backcolor"), l.wrap);
4493
+ l = this.formInput(t.style.width, "e.g. 120px / 25%"), this.formRow(o, this.t("tblwidth"), l), r = this.formBg(t.style.backgroundColor || ""), this.formRow(o, this.t("backcolor"), r.wrap);
4417
4494
  },
4418
4495
  [
4419
4496
  { label: this.t("cancel"), action: () => this.closeDlg() },
@@ -4422,7 +4499,7 @@ let ji = (j = class {
4422
4499
  primary: !0,
4423
4500
  action: () => {
4424
4501
  n.forEach((o) => {
4425
- this.setOrClear(o, "width", r.value.trim()), this.setOrClear(o, "background-color", l.fill.checked ? l.color.value : "");
4502
+ this.setOrClear(o, "width", l.value.trim()), this.setOrClear(o, "background-color", r.fill.checked ? r.color.value : "");
4426
4503
  }), this.closeDlg(), this.onChange(), this.positionTableHandles();
4427
4504
  }
4428
4505
  }
@@ -4438,8 +4515,8 @@ let ji = (j = class {
4438
4515
  const s = document.createElement("div");
4439
4516
  s.className = "dlg", s.dir = this.dir(), s.innerHTML = `<header><span>${t}</span><button type="button">×</button></header>
4440
4517
  <div class="body"></div><footer></footer>`, s.querySelector("header button").onclick = () => this.closeDlg(), e(s.querySelector(".body")), (i || [{ label: this.t("close"), primary: !0, action: () => this.closeDlg() }]).forEach((n) => {
4441
- const r = document.createElement("button");
4442
- r.type = "button", r.textContent = n.label, n.primary && (r.className = "pri"), r.onclick = n.action, s.querySelector("footer").appendChild(r);
4518
+ const l = document.createElement("button");
4519
+ l.type = "button", l.textContent = n.label, n.primary && (l.className = "pri"), l.onclick = n.action, s.querySelector("footer").appendChild(l);
4443
4520
  }), this.dlgOvl.appendChild(s), this.dlgOvl.addEventListener("mousedown", (n) => {
4444
4521
  n.target === this.dlgOvl && this.closeDlg();
4445
4522
  }), document.body.appendChild(this.dlgOvl);
@@ -4503,31 +4580,31 @@ let ji = (j = class {
4503
4580
  this.saveSel(), this.dialog(t, (s) => {
4504
4581
  const n = document.createElement("div");
4505
4582
  n.className = "chmap";
4506
- const r = document.createElement("div");
4507
- r.className = "chtabs";
4508
4583
  const l = document.createElement("div");
4509
- l.className = "chpanel";
4584
+ l.className = "chtabs";
4585
+ const r = document.createElement("div");
4586
+ r.className = "chpanel";
4510
4587
  const o = document.createElement("div");
4511
- o.className = "chgrid" + (i ? " emgrid" : ""), l.appendChild(o);
4588
+ o.className = "chgrid" + (i ? " emgrid" : ""), r.appendChild(o);
4512
4589
  const a = (d) => {
4513
- r.querySelectorAll("button").forEach((p, m) => p.classList.toggle("on", m === d)), o.innerHTML = "", e[d].chars.forEach((p) => {
4590
+ l.querySelectorAll("button").forEach((p, m) => p.classList.toggle("on", m === d)), o.innerHTML = "", e[d].chars.forEach((p) => {
4514
4591
  const m = document.createElement("button");
4515
4592
  m.type = "button", m.textContent = p, m.onclick = () => {
4516
4593
  this.closeDlg(), this.exec("insertText", p);
4517
4594
  }, o.appendChild(m);
4518
- }), l.scrollTop = 0;
4595
+ }), r.scrollTop = 0;
4519
4596
  };
4520
4597
  e.forEach((d, p) => {
4521
4598
  const m = document.createElement("button");
4522
- m.type = "button", m.textContent = this.t(d.key), m.addEventListener("click", () => a(p)), r.appendChild(m);
4523
- }), n.append(r, l), s.appendChild(n), a(0);
4599
+ m.type = "button", m.textContent = this.t(d.key), m.addEventListener("click", () => a(p)), l.appendChild(m);
4600
+ }), n.append(l, r), s.appendChild(n), a(0);
4524
4601
  });
4525
4602
  }
4526
4603
  charMap() {
4527
- this.glyphPickerDlg(this.t("charmap").replace("…", ""), li, !1);
4604
+ this.glyphPickerDlg(this.t("charmap").replace("…", ""), ai, !1);
4528
4605
  }
4529
4606
  emojiMap() {
4530
- this.glyphPickerDlg(this.t("emoji").replace("…", ""), oi, !0);
4607
+ this.glyphPickerDlg(this.t("emoji").replace("…", ""), ci, !0);
4531
4608
  }
4532
4609
  printDoc() {
4533
4610
  const t = window.open("", "_blank");
@@ -4589,17 +4666,17 @@ let ji = (j = class {
4589
4666
  const i = document.createElement("button");
4590
4667
  i.type = "button", i.className = "txtbtn", i.textContent = this.t("insertimg");
4591
4668
  const s = () => {
4592
- const n = e.value.trim(), r = this.phActive;
4593
- if (!r) return;
4669
+ const n = e.value.trim(), l = this.phActive;
4670
+ if (!l) return;
4594
4671
  if (!/^(https?:|data:image\/|blob:)/i.test(n)) {
4595
4672
  e.classList.add("err"), e.focus();
4596
4673
  return;
4597
4674
  }
4598
4675
  i.disabled = !0, e.disabled = !0;
4599
- const l = new Image();
4600
- l.onload = () => this.replacePlaceholderWithImage(r, n, ""), l.onerror = () => {
4676
+ const r = new Image();
4677
+ r.onload = () => this.replacePlaceholderWithImage(l, n, ""), r.onerror = () => {
4601
4678
  i.disabled = !1, e.disabled = !1, e.classList.add("err"), e.focus();
4602
- }, l.src = n;
4679
+ }, r.src = n;
4603
4680
  };
4604
4681
  i.addEventListener("click", s), e.addEventListener("input", () => e.classList.remove("err")), e.addEventListener("keydown", (n) => {
4605
4682
  n.key === "Enter" ? (n.preventDefault(), s()) : n.key === "Escape" && (n.stopPropagation(), this.renderPhCtxButtons());
@@ -4625,8 +4702,8 @@ let ji = (j = class {
4625
4702
  s && (s.textContent = this.t("uploading")), this.imageUploadHandler(t).then((n) => {
4626
4703
  this.ed.contains(e) && this.replacePlaceholderWithImage(e, n, i);
4627
4704
  }).catch((n) => {
4628
- var r;
4629
- this.ed.contains(e) && (e.classList.remove("uploading"), e.classList.add("upload-error"), s && (s.textContent = this.t("uploadfailed")), (r = this.onImageUploadError) == null || r.call(this, n, t));
4705
+ var l;
4706
+ this.ed.contains(e) && (e.classList.remove("uploading"), e.classList.add("upload-error"), s && (s.textContent = this.t("uploadfailed")), (l = this.onImageUploadError) == null || l.call(this, n, t));
4630
4707
  });
4631
4708
  }
4632
4709
  replacePlaceholderWithImage(t, e, i) {
@@ -4664,8 +4741,8 @@ let ji = (j = class {
4664
4741
  if (!this.ed.contains(t) || t.closest(".tpl-media") || t.getAttribute("width") || t.getAttribute("height") || t.style.width || t.style.height) return i(!1);
4665
4742
  const n = t.naturalWidth;
4666
4743
  if (!n) return i(!1);
4667
- const r = this.contentWidth(), l = Math.round(r > 0 ? Math.min(n, r) : n);
4668
- t.setAttribute("width", String(l)), t.style.width = l + "px", t.style.height = "auto", i(!0);
4744
+ const l = this.contentWidth(), r = Math.round(l > 0 ? Math.min(n, l) : n);
4745
+ t.setAttribute("width", String(r)), t.style.width = r + "px", t.style.height = "auto", i(!0);
4669
4746
  };
4670
4747
  t.complete && t.naturalWidth ? s() : (t.addEventListener("load", s, { once: !0 }), t.addEventListener("error", () => i(!1), { once: !0 }));
4671
4748
  }
@@ -4740,20 +4817,20 @@ let ji = (j = class {
4740
4817
  const i = document.createElement("button");
4741
4818
  i.type = "button", i.className = "txtbtn", i.textContent = this.t("insertvideo");
4742
4819
  const s = () => {
4743
- const n = e.value.trim(), r = this.vphActive;
4744
- if (!r) return;
4820
+ const n = e.value.trim(), l = this.vphActive;
4821
+ if (!l) return;
4745
4822
  if (!/^(https?:|data:video\/|blob:)/i.test(n)) {
4746
4823
  e.classList.add("err"), e.focus();
4747
4824
  return;
4748
4825
  }
4749
- const l = this.videoEmbedUrl(n);
4750
- if (l) {
4751
- this.replacePlaceholderWithEmbed(r, l);
4826
+ const r = this.videoEmbedUrl(n);
4827
+ if (r) {
4828
+ this.replacePlaceholderWithEmbed(l, r);
4752
4829
  return;
4753
4830
  }
4754
4831
  i.disabled = !0, e.disabled = !0;
4755
4832
  const o = document.createElement("video");
4756
- o.preload = "metadata", o.onloadedmetadata = () => this.replacePlaceholderWithVideo(r, n, ""), o.onerror = () => {
4833
+ o.preload = "metadata", o.onloadedmetadata = () => this.replacePlaceholderWithVideo(l, n, ""), o.onerror = () => {
4757
4834
  i.disabled = !1, e.disabled = !1, e.classList.add("err"), e.focus();
4758
4835
  }, o.src = n;
4759
4836
  };
@@ -4781,8 +4858,8 @@ let ji = (j = class {
4781
4858
  s && (s.textContent = this.t("uploading")), this.videoUploadHandler(t).then((n) => {
4782
4859
  this.ed.contains(e) && this.replacePlaceholderWithVideo(e, n, i);
4783
4860
  }).catch((n) => {
4784
- var r;
4785
- this.ed.contains(e) && (e.classList.remove("uploading"), e.classList.add("upload-error"), s && (s.textContent = this.t("uploadfailed")), (r = this.onVideoUploadError) == null || r.call(this, n, t));
4861
+ var l;
4862
+ this.ed.contains(e) && (e.classList.remove("uploading"), e.classList.add("upload-error"), s && (s.textContent = this.t("uploadfailed")), (l = this.onVideoUploadError) == null || l.call(this, n, t));
4786
4863
  });
4787
4864
  }
4788
4865
  replacePlaceholderWithVideo(t, e, i) {
@@ -4826,14 +4903,14 @@ let ji = (j = class {
4826
4903
  (d = this.vidCtx) == null || d.replaceWith(a), this.vidCtx = a, this.positionVidCtx();
4827
4904
  }, s = (a) => {
4828
4905
  this.setVideoAlign(t, a), i();
4829
- }, n = t.style.float === "left", r = t.style.float === "right", l = !n && !r && t.style.marginLeft === "auto" && t.style.marginRight === "auto", o = (a, d, p, m) => {
4830
- const b = this.ctxBtn(a, d, m);
4831
- return b.classList.toggle("on", p), b;
4906
+ }, n = t.style.float === "left", l = t.style.float === "right", r = !n && !l && t.style.marginLeft === "auto" && t.style.marginRight === "auto", o = (a, d, p, m) => {
4907
+ const v = this.ctxBtn(a, d, m);
4908
+ return v.classList.toggle("on", p), v;
4832
4909
  };
4833
4910
  return e.append(
4834
4911
  o(h.alignleft, this.t("alignleft"), n, () => s("left")),
4835
- o(h.aligncenter, this.t("aligncenter"), l, () => s("center")),
4836
- o(h.alignright, this.t("alignright"), r, () => s("right")),
4912
+ o(h.aligncenter, this.t("aligncenter"), r, () => s("center")),
4913
+ o(h.alignright, this.t("alignright"), l, () => s("right")),
4837
4914
  this.ctxSep(),
4838
4915
  o(h.trash, this.t("deletevideo"), !1, () => {
4839
4916
  t.remove(), this.clearVidHandles(), this.onChange();
@@ -4875,8 +4952,8 @@ let ji = (j = class {
4875
4952
  * (videoUploadHandler when configured, else inline base64). */
4876
4953
  videoDlg() {
4877
4954
  this.saveSel();
4878
- let t, e, i, s, n, r;
4879
- const l = (a, d) => {
4955
+ let t, e, i, s, n, l;
4956
+ const r = (a, d) => {
4880
4957
  const p = document.createElement("div");
4881
4958
  p.className = "dfield";
4882
4959
  const m = document.createElement("label");
@@ -4890,53 +4967,53 @@ let ji = (j = class {
4890
4967
  (a) => {
4891
4968
  const d = document.createElement("div");
4892
4969
  d.className = "dtabs";
4893
- const p = [], m = (g, x) => {
4894
- const w = document.createElement("button");
4895
- w.type = "button", w.textContent = this.t(g);
4970
+ const p = [], m = (f, y) => {
4971
+ const C = document.createElement("button");
4972
+ C.type = "button", C.textContent = this.t(f);
4896
4973
  const E = document.createElement("div");
4897
- E.className = "dtabpanel", x(E);
4974
+ E.className = "dtabpanel", y(E);
4898
4975
  const I = p.length;
4899
- p.push(E), w.addEventListener("click", () => b(I)), d.appendChild(w);
4900
- }, b = (g) => {
4901
- d.querySelectorAll("button").forEach((x, w) => x.classList.toggle("on", w === g)), p.forEach((x, w) => x.style.display = w === g ? "" : "none");
4976
+ p.push(E), C.addEventListener("click", () => v(I)), d.appendChild(C);
4977
+ }, v = (f) => {
4978
+ d.querySelectorAll("button").forEach((y, C) => y.classList.toggle("on", C === f)), p.forEach((y, C) => y.style.display = C === f ? "" : "none");
4902
4979
  };
4903
- m("vidgeneral", (g) => {
4980
+ m("vidgeneral", (f) => {
4904
4981
  t = o(), t.placeholder = this.t("videourlph");
4905
- const x = document.createElement("div");
4906
- x.className = "drow";
4907
- const w = document.createElement("button");
4908
- w.type = "button", w.className = "txtbtn", w.textContent = this.t("uploadvideo");
4982
+ const y = document.createElement("div");
4983
+ y.className = "drow";
4984
+ const C = document.createElement("button");
4985
+ C.type = "button", C.className = "txtbtn", C.textContent = this.t("uploadvideo");
4909
4986
  const E = document.createElement("input");
4910
- E.type = "file", E.accept = this.options.videoFileTypes.join(","), E.style.display = "none", w.addEventListener("click", () => {
4987
+ E.type = "file", E.accept = this.options.videoFileTypes.join(","), E.style.display = "none", C.addEventListener("click", () => {
4911
4988
  E.value = "", E.click();
4912
4989
  }), E.addEventListener("change", () => {
4913
4990
  var Z;
4914
4991
  const A = (Z = E.files) == null ? void 0 : Z[0];
4915
4992
  if (!A) return;
4916
- w.disabled = !0, w.textContent = this.t("uploading");
4993
+ C.disabled = !0, C.textContent = this.t("uploading");
4917
4994
  const $ = (F) => {
4918
- t.value = F, w.disabled = !1, w.textContent = this.t("uploadvideo");
4995
+ t.value = F, C.disabled = !1, C.textContent = this.t("uploadvideo");
4919
4996
  };
4920
4997
  if (this.videoUploadHandler)
4921
4998
  this.videoUploadHandler(A).then($).catch((F) => {
4922
4999
  var et;
4923
- w.disabled = !1, w.textContent = this.t("uploadfailed"), (et = this.onVideoUploadError) == null || et.call(this, F, A);
5000
+ C.disabled = !1, C.textContent = this.t("uploadfailed"), (et = this.onVideoUploadError) == null || et.call(this, F, A);
4924
5001
  });
4925
5002
  else {
4926
5003
  const F = new FileReader();
4927
5004
  F.onload = () => $(F.result), F.readAsDataURL(A);
4928
5005
  }
4929
- }), x.append(t, w, E), t.style.flex = "1", g.appendChild(l("vidsource", x));
5006
+ }), y.append(t, C, E), t.style.flex = "1", f.appendChild(r("vidsource", y));
4930
5007
  const I = document.createElement("div");
4931
- I.className = "drow", e = document.createElement("input"), e.type = "number", e.value = "560", i = document.createElement("input"), i.type = "number", i.value = "314", I.append(l("tblwidth", e), l("tblheight", i)), g.appendChild(I);
4932
- }), m("vidembed", (g) => {
4933
- const x = document.createElement("p");
4934
- x.textContent = this.t("vidembedhint"), x.style.cssText = "margin:0 0 8px;color:#556;font-size:13.5px", s = document.createElement("textarea"), s.style.cssText = "width:100%;box-sizing:border-box;height:160px", g.append(x, s);
4935
- }), m("vidadvanced", (g) => {
4936
- n = o(), r = o(), g.append(l("vidaltsource", n), l("vidposter", r));
5008
+ I.className = "drow", e = document.createElement("input"), e.type = "number", e.value = "560", i = document.createElement("input"), i.type = "number", i.value = "314", I.append(r("tblwidth", e), r("tblheight", i)), f.appendChild(I);
5009
+ }), m("vidembed", (f) => {
5010
+ const y = document.createElement("p");
5011
+ y.textContent = this.t("vidembedhint"), y.style.cssText = "margin:0 0 8px;color:#556;font-size:13.5px", s = document.createElement("textarea"), s.style.cssText = "width:100%;box-sizing:border-box;height:160px", f.append(y, s);
5012
+ }), m("vidadvanced", (f) => {
5013
+ n = o(), l = o(), f.append(r("vidaltsource", n), r("vidposter", l));
4937
5014
  });
4938
- const y = document.createElement("div");
4939
- y.className = "dtabbody", p.forEach((g) => y.appendChild(g)), a.append(d, y), b(0), setTimeout(() => t.focus(), 0);
5015
+ const b = document.createElement("div");
5016
+ b.className = "dtabbody", p.forEach((f) => b.appendChild(f)), a.append(d, b), v(0), setTimeout(() => t.focus(), 0);
4940
5017
  },
4941
5018
  [
4942
5019
  { label: this.t("cancel"), action: () => this.closeDlg() },
@@ -4950,15 +5027,15 @@ let ji = (j = class {
4950
5027
  document.execCommand("insertHTML", !1, `<span class="video-embed" contenteditable="false">${a}</span>`), this.onChange();
4951
5028
  return;
4952
5029
  }
4953
- const b = this.videoEmbedUrl(d);
4954
- if (b)
4955
- document.execCommand("insertHTML", !1, this.videoEmbedHTML(b, p, m));
5030
+ const v = this.videoEmbedUrl(d);
5031
+ if (v)
5032
+ document.execCommand("insertHTML", !1, this.videoEmbedHTML(v, p, m));
4956
5033
  else {
4957
- const y = n.value.trim(), g = r.value.trim();
5034
+ const b = n.value.trim(), f = l.value.trim();
4958
5035
  document.execCommand(
4959
5036
  "insertHTML",
4960
5037
  !1,
4961
- `<video controls width="${p}" height="${m}"${g ? ` poster="${this.escapeAttr(g)}"` : ""}><source src="${this.escapeAttr(d)}">${y ? `<source src="${this.escapeAttr(y)}">` : ""}</video>`
5038
+ `<video controls width="${p}" height="${m}"${f ? ` poster="${this.escapeAttr(f)}"` : ""}><source src="${this.escapeAttr(d)}">${b ? `<source src="${this.escapeAttr(b)}">` : ""}</video>`
4962
5039
  );
4963
5040
  }
4964
5041
  this.onChange();
@@ -5016,13 +5093,13 @@ let ji = (j = class {
5016
5093
  if (i.nodeType !== Node.TEXT_NODE || !this.ed.contains(i) || (d = i.parentElement) != null && d.closest("code, pre")) return;
5017
5094
  const n = (i.textContent || "").slice(0, e.anchorOffset).match(/(?:^|[^`])`([^`]+)$/);
5018
5095
  if (!n) return;
5019
- const r = n[1];
5020
- if (/^\s|\s$/.test(r)) return;
5096
+ const l = n[1];
5097
+ if (/^\s|\s$/.test(l)) return;
5021
5098
  t.preventDefault();
5022
- const l = document.createRange();
5023
- l.setStart(i, e.anchorOffset - r.length - 1), l.setEnd(i, e.anchorOffset), l.deleteContents();
5099
+ const r = document.createRange();
5100
+ r.setStart(i, e.anchorOffset - l.length - 1), r.setEnd(i, e.anchorOffset), r.deleteContents();
5024
5101
  const o = document.createElement("code");
5025
- o.textContent = r, l.insertNode(o);
5102
+ o.textContent = l, r.insertNode(o);
5026
5103
  const a = document.createRange();
5027
5104
  a.setStartAfter(o), a.collapse(!0), e.removeAllRanges(), e.addRange(a), this.saveSel(), this.onChange();
5028
5105
  }
@@ -5036,22 +5113,22 @@ let ji = (j = class {
5036
5113
  s.className = "dsel";
5037
5114
  const n = document.createElement("button");
5038
5115
  n.type = "button", n.className = "dsel-btn";
5039
- const r = document.createElement("span");
5040
- r.className = "lbl", r.textContent = ((o = t.find(([a]) => a === e)) == null ? void 0 : o[1]) || "", n.append(r), n.insertAdjacentHTML("beforeend", h.chev);
5041
- const l = document.createElement("div");
5042
- return l.className = "dsel-list", t.forEach(([a, d]) => {
5116
+ const l = document.createElement("span");
5117
+ l.className = "lbl", l.textContent = ((o = t.find(([a]) => a === e)) == null ? void 0 : o[1]) || "", n.append(l), n.insertAdjacentHTML("beforeend", h.chev);
5118
+ const r = document.createElement("div");
5119
+ return r.className = "dsel-list", t.forEach(([a, d]) => {
5043
5120
  const p = document.createElement("button");
5044
5121
  p.type = "button", p.textContent = d, p.classList.toggle("on", a === i), p.addEventListener("click", () => {
5045
- i = a, r.textContent = d, l.querySelectorAll("button").forEach((m) => m.classList.toggle("on", m === p)), s.classList.remove("open"), n.focus();
5046
- }), l.appendChild(p);
5122
+ i = a, l.textContent = d, r.querySelectorAll("button").forEach((m) => m.classList.toggle("on", m === p)), s.classList.remove("open"), n.focus();
5123
+ }), r.appendChild(p);
5047
5124
  }), n.addEventListener("click", () => {
5048
5125
  var a;
5049
- s.classList.toggle("open"), s.classList.contains("open") && ((a = l.querySelector(".on")) == null || a.scrollIntoView({ block: "nearest" }));
5126
+ s.classList.toggle("open"), s.classList.contains("open") && ((a = r.querySelector(".on")) == null || a.scrollIntoView({ block: "nearest" }));
5050
5127
  }), s.addEventListener("focusout", (a) => {
5051
5128
  s.contains(a.relatedTarget) || s.classList.remove("open");
5052
5129
  }), s.addEventListener("keydown", (a) => {
5053
5130
  a.key === "Escape" && s.classList.contains("open") && (a.stopPropagation(), s.classList.remove("open"), n.focus());
5054
- }), s.append(n, l), { el: s, value: () => i };
5131
+ }), s.append(n, r), { el: s, value: () => i };
5055
5132
  }
5056
5133
  /** Insert/edit-code-sample dialog: language dropdown + monospace textarea to
5057
5134
  * paste or type code into. Inserts a non-editable <pre class="code-block">
@@ -5062,11 +5139,11 @@ let ji = (j = class {
5062
5139
  this.dialog(
5063
5140
  this.t("codedlgttl"),
5064
5141
  (s) => {
5065
- var l;
5142
+ var r;
5066
5143
  const n = document.createElement("div");
5067
5144
  n.className = "dfield";
5068
- const r = document.createElement("label");
5069
- r.textContent = this.t("codelang"), e = this.dlgSelect(se, (t == null ? void 0 : t.dataset.lang) || "plain"), n.append(r, e.el), i = document.createElement("textarea"), i.className = "code-input", i.spellcheck = !1, i.value = ((l = t == null ? void 0 : t.querySelector("code")) == null ? void 0 : l.textContent) || "", i.placeholder = "const answer = 42;", s.append(n, i), setTimeout(() => i.focus(), 0);
5145
+ const l = document.createElement("label");
5146
+ l.textContent = this.t("codelang"), e = this.dlgSelect(ne, (t == null ? void 0 : t.dataset.lang) || "plain"), n.append(l, e.el), i = document.createElement("textarea"), i.className = "code-input", i.spellcheck = !1, i.value = ((r = t == null ? void 0 : t.querySelector("code")) == null ? void 0 : r.textContent) || "", i.placeholder = "const answer = 42;", s.append(n, i), setTimeout(() => i.focus(), 0);
5070
5147
  },
5071
5148
  [
5072
5149
  { label: this.t("cancel"), action: () => this.closeDlg() },
@@ -5074,11 +5151,11 @@ let ji = (j = class {
5074
5151
  label: this.t("save"),
5075
5152
  primary: !0,
5076
5153
  action: () => {
5077
- var l;
5078
- const s = i.value.replace(/\s+$/, ""), n = e.value(), r = ((l = se.find(([o]) => o === n)) == null ? void 0 : l[1]) || n;
5154
+ var r;
5155
+ const s = i.value.replace(/\s+$/, ""), n = e.value(), l = ((r = ne.find(([o]) => o === n)) == null ? void 0 : r[1]) || n;
5079
5156
  if (this.closeDlg(), !!s.trim()) {
5080
5157
  if (t) {
5081
- t.dataset.lang = n, t.setAttribute("data-lang-label", r);
5158
+ t.dataset.lang = n, t.setAttribute("data-lang-label", l);
5082
5159
  const o = t.querySelector("code") || t;
5083
5160
  o.textContent = s, this.clearCodeSel(), this.onChange();
5084
5161
  return;
@@ -5086,7 +5163,7 @@ let ji = (j = class {
5086
5163
  this.restoreSel(), document.execCommand(
5087
5164
  "insertHTML",
5088
5165
  !1,
5089
- `<pre class="code-block" contenteditable="false" data-lang="${n}" data-lang-label="${this.escapeAttr(r)}"><code>${this.escHtml(s)}</code></pre><p><br></p>`
5166
+ `<pre class="code-block" contenteditable="false" data-lang="${n}" data-lang-label="${this.escapeAttr(l)}"><code>${this.escHtml(s)}</code></pre><p><br></p>`
5090
5167
  ), this.onChange();
5091
5168
  }
5092
5169
  }
@@ -5143,14 +5220,14 @@ let ji = (j = class {
5143
5220
  /** Miniature div-based mockup of a layout, mirroring what the block looks
5144
5221
  like in the editor: grey box = image slot, bars = heading/paragraph. */
5145
5222
  tplPreviewHTML(t) {
5146
- const e = '<span class="pv-img"></span>', i = '<span class="pv-h"></span>', s = (o) => `<span class="pv-l" style="width:${o}%"></span>`, n = (o) => `<span class="pv-col">${o}</span>`, r = (o) => `<span class="pv-row">${o}</span>`, l = n(i + s(100) + s(88));
5147
- return t === "img-left" ? `<span class="pv">${r(e + l)}${s(100)}${s(72)}</span>` : t === "img-right" ? `<span class="pv">${r(l + e)}${s(100)}${s(72)}</span>` : t === "img-top" ? `<span class="pv pv-c">${e}${i}${s(100)}${s(72)}</span>` : `<span class="pv pv-c">${i}${s(100)}${s(72)}${e}</span>`;
5223
+ const e = '<span class="pv-img"></span>', i = '<span class="pv-h"></span>', s = (o) => `<span class="pv-l" style="width:${o}%"></span>`, n = (o) => `<span class="pv-col">${o}</span>`, l = (o) => `<span class="pv-row">${o}</span>`, r = n(i + s(100) + s(88));
5224
+ return t === "img-left" ? `<span class="pv">${l(e + r)}${s(100)}${s(72)}</span>` : t === "img-right" ? `<span class="pv">${l(r + e)}${s(100)}${s(72)}</span>` : t === "img-top" ? `<span class="pv pv-c">${e}${i}${s(100)}${s(72)}</span>` : `<span class="pv pv-c">${i}${s(100)}${s(72)}${e}</span>`;
5148
5225
  }
5149
5226
  buildTemplatePickInto(t, e) {
5150
5227
  const i = document.createElement("div");
5151
- i.className = "tplpick", Tt.forEach((s) => {
5228
+ i.className = "tplpick", Et.forEach((s) => {
5152
5229
  const n = document.createElement("button");
5153
- n.type = "button", n.className = "tpltile", n.title = this.t(Et[s]), n.innerHTML = this.tplPreviewHTML(s) + `<span class="tpllbl">${this.t(Et[s])}</span>`, n.addEventListener("click", () => {
5230
+ n.type = "button", n.className = "tpltile", n.title = this.t(St[s]), n.innerHTML = this.tplPreviewHTML(s) + `<span class="tpllbl">${this.t(St[s])}</span>`, n.addEventListener("click", () => {
5154
5231
  this.closePop(), this.insertTemplate(s), e == null || e();
5155
5232
  }), i.appendChild(n);
5156
5233
  }), t.appendChild(i);
@@ -5169,15 +5246,15 @@ let ji = (j = class {
5169
5246
  }
5170
5247
  renderTplCtxButtons() {
5171
5248
  const t = this.tplCtx, e = this.tplActive;
5172
- !t || !e || (t.innerHTML = "", Tt.forEach((i) => {
5173
- const s = this.ctxBtn(Bi[i], this.t(Et[i]), () => this.setTplLayout(i));
5249
+ !t || !e || (t.innerHTML = "", Et.forEach((i) => {
5250
+ const s = this.ctxBtn(Ni[i], this.t(St[i]), () => this.setTplLayout(i));
5174
5251
  s.classList.toggle("on", e.classList.contains("tpl-" + i)), t.appendChild(s);
5175
5252
  }), t.append(this.ctxSep(), this.ctxBtn(h.trash, this.t("deltemplate"), () => this.removeTemplate())), this.positionTplCtx());
5176
5253
  }
5177
5254
  setTplLayout(t) {
5178
5255
  const e = this.tplActive;
5179
5256
  if (!e) return;
5180
- Tt.forEach((n) => e.classList.remove("tpl-" + n)), e.classList.add("tpl-" + t);
5257
+ Et.forEach((n) => e.classList.remove("tpl-" + n)), e.classList.add("tpl-" + t);
5181
5258
  const i = e.querySelector(":scope > .tpl-media"), s = e.querySelector(":scope > .tpl-text");
5182
5259
  i && s && (t === "img-center" ? e.appendChild(i) : e.insertBefore(i, s)), this.renderTplCtxButtons(), this.positionImgPhCtx(), this.positionImageHandles(), this.onChange();
5183
5260
  }
@@ -5209,7 +5286,7 @@ let ji = (j = class {
5209
5286
  /* ---------------------------------------------------------- table resize */
5210
5287
  clearTableHandles() {
5211
5288
  var t, e, i, s, n;
5212
- (t = this.tblCorner) == null || t.remove(), this.tblCorner = null, this.tblColBars.forEach((r) => r.remove()), this.tblColBars = [], (e = this.tblCtx) == null || e.remove(), this.tblCtx = null, (i = this.tblCellMark) == null || i.remove(), this.tblCellMark = null, (s = this.tblOpMark) == null || s.remove(), this.tblOpMark = null, this.tblOpMarkKind = null, (n = this.tblActive) == null || n.classList.remove("tbl-selected"), this.tblActive = null;
5289
+ (t = this.tblCorner) == null || t.remove(), this.tblCorner = null, this.tblColBars.forEach((l) => l.remove()), this.tblColBars = [], (e = this.tblCtx) == null || e.remove(), this.tblCtx = null, (i = this.tblCellMark) == null || i.remove(), this.tblCellMark = null, (s = this.tblOpMark) == null || s.remove(), this.tblOpMark = null, this.tblOpMarkKind = null, (n = this.tblActive) == null || n.classList.remove("tbl-selected"), this.tblActive = null;
5213
5290
  }
5214
5291
  /** Blue outline around the cell that holds the caret, so it is clear
5215
5292
  which cell / row / column the table operations will target. */
@@ -5236,8 +5313,8 @@ let ji = (j = class {
5236
5313
  return;
5237
5314
  }
5238
5315
  this.tblOpMark || (this.tblOpMark = document.createElement("div"), this.tblOpMark.className = "tbl-opmark", document.body.appendChild(this.tblOpMark));
5239
- const i = this.tblActive.getBoundingClientRect(), s = e.getBoundingClientRect(), n = e.parentElement.getBoundingClientRect(), r = t === "row" ? n.left : s.left, l = t === "row" ? n.top : i.top, o = t === "row" ? n.width : s.width, a = t === "row" ? n.height : i.height;
5240
- this.tblOpMark.style.left = r + scrollX + "px", this.tblOpMark.style.top = l + scrollY + "px", this.tblOpMark.style.width = o + "px", this.tblOpMark.style.height = a + "px";
5316
+ const i = this.tblActive.getBoundingClientRect(), s = e.getBoundingClientRect(), n = e.parentElement.getBoundingClientRect(), l = t === "row" ? n.left : s.left, r = t === "row" ? n.top : i.top, o = t === "row" ? n.width : s.width, a = t === "row" ? n.height : i.height;
5317
+ this.tblOpMark.style.left = l + scrollX + "px", this.tblOpMark.style.top = r + scrollY + "px", this.tblOpMark.style.width = o + "px", this.tblOpMark.style.height = a + "px";
5241
5318
  }
5242
5319
  /** Lowest allowed top for floating context toolbars — keeps them from
5243
5320
  covering the editor menubar/toolbar when the target sits on the first line. */
@@ -5246,7 +5323,7 @@ let ji = (j = class {
5246
5323
  }
5247
5324
  ctxBtn(t, e, i, s) {
5248
5325
  const n = document.createElement("button");
5249
- return n.type = "button", n.title = e, n.innerHTML = t, s && (n.dataset.id = s), n.addEventListener("mousedown", (r) => r.preventDefault()), n.addEventListener("click", i), n;
5326
+ return n.type = "button", n.title = e, n.innerHTML = t, s && (n.dataset.id = s), n.addEventListener("mousedown", (l) => l.preventDefault()), n.addEventListener("click", i), n;
5250
5327
  }
5251
5328
  ctxSep() {
5252
5329
  const t = document.createElement("div");
@@ -5283,20 +5360,20 @@ let ji = (j = class {
5283
5360
  this.clearTableHandles();
5284
5361
  return;
5285
5362
  }
5286
- const t = this.ed.getAttribute("dir") === "rtl", e = this.tblActive.getBoundingClientRect(), i = e.top + scrollY, s = e.left + scrollX, n = e.right + scrollX, r = e.bottom + scrollY;
5287
- if (this.tblCorner && (this.tblCorner.style.top = r - 5 + "px", this.tblCorner.style.left = (t ? s - 5 : n - 5) + "px", this.tblCorner.style.cursor = t ? "nesw-resize" : "nwse-resize"), this.tblCtx) {
5363
+ const t = this.ed.getAttribute("dir") === "rtl", e = this.tblActive.getBoundingClientRect(), i = e.top + scrollY, s = e.left + scrollX, n = e.right + scrollX, l = e.bottom + scrollY;
5364
+ if (this.tblCorner && (this.tblCorner.style.top = l - 5 + "px", this.tblCorner.style.left = (t ? s - 5 : n - 5) + "px", this.tblCorner.style.cursor = t ? "nesw-resize" : "nwse-resize"), this.tblCtx) {
5288
5365
  const o = this.tblCtx.offsetWidth, a = this.tblCtx.offsetHeight;
5289
5366
  let d = s + (n - s) / 2 - o / 2;
5290
5367
  d = Math.max(8 + scrollX, Math.min(d, scrollX + innerWidth - o - 8));
5291
5368
  let p = i - a - 8;
5292
- p < this.ctxMinTop() && (p = r + 8), this.tblCtx.style.left = d + "px", this.tblCtx.style.top = p + "px";
5369
+ p < this.ctxMinTop() && (p = l + 8), this.tblCtx.style.left = d + "px", this.tblCtx.style.top = p + "px";
5293
5370
  }
5294
5371
  this.tblColBars.forEach((o) => o.remove()), this.tblColBars = [];
5295
- const l = this.tblActive.rows[0];
5296
- if (l)
5297
- for (let o = 0; o < l.cells.length - 1; o++) {
5298
- const a = l.cells[o].getBoundingClientRect(), d = (t ? a.left : a.right) + scrollX, p = document.createElement("div");
5299
- p.className = "tbl-colbar", p.style.top = i + "px", p.style.left = d + "px", p.style.height = r - i + "px", document.body.appendChild(p), p.addEventListener("mousedown", (m) => this.startColBarDrag(m, o)), this.tblColBars.push(p);
5372
+ const r = this.tblActive.rows[0];
5373
+ if (r)
5374
+ for (let o = 0; o < r.cells.length - 1; o++) {
5375
+ const a = r.cells[o].getBoundingClientRect(), d = (t ? a.left : a.right) + scrollX, p = document.createElement("div");
5376
+ p.className = "tbl-colbar", p.style.top = i + "px", p.style.left = d + "px", p.style.height = l - i + "px", document.body.appendChild(p), p.addEventListener("mousedown", (m) => this.startColBarDrag(m, o)), this.tblColBars.push(p);
5300
5377
  }
5301
5378
  this.positionCellMarker(), this.positionOpMark();
5302
5379
  }
@@ -5314,31 +5391,31 @@ let ji = (j = class {
5314
5391
  const e = this.tblActive;
5315
5392
  if (!e) return;
5316
5393
  const i = this.ed.getAttribute("dir") === "rtl", s = t.clientX, n = e.getBoundingClientRect().width;
5317
- e.style.tableLayout = e.style.tableLayout || "fixed", this.withNoTextSelect((r) => {
5318
- const l = (a) => {
5394
+ e.style.tableLayout = e.style.tableLayout || "fixed", this.withNoTextSelect((l) => {
5395
+ const r = (a) => {
5319
5396
  const d = i ? -(a.clientX - s) : a.clientX - s;
5320
5397
  e.style.width = Math.max(60, Math.round(n + d)) + "px", this.positionTableHandles();
5321
5398
  }, o = () => {
5322
- window.removeEventListener("mousemove", l), window.removeEventListener("mouseup", o), r(), this.onChange();
5399
+ window.removeEventListener("mousemove", r), window.removeEventListener("mouseup", o), l(), this.onChange();
5323
5400
  };
5324
- window.addEventListener("mousemove", l), window.addEventListener("mouseup", o);
5401
+ window.addEventListener("mousemove", r), window.addEventListener("mouseup", o);
5325
5402
  });
5326
5403
  }
5327
5404
  startColBarDrag(t, e) {
5328
5405
  t.preventDefault(), t.stopPropagation();
5329
5406
  const i = this.tblActive;
5330
5407
  if (!i) return;
5331
- const s = this.ed.getAttribute("dir") === "rtl", n = Array.from(i.rows), r = n.map((p) => p.cells[e]).filter(Boolean), l = n.map((p) => p.cells[e + 1]).filter(Boolean);
5332
- if (!r.length || !l.length) return;
5333
- const o = t.clientX, a = r[0].getBoundingClientRect().width, d = l[0].getBoundingClientRect().width;
5408
+ const s = this.ed.getAttribute("dir") === "rtl", n = Array.from(i.rows), l = n.map((p) => p.cells[e]).filter(Boolean), r = n.map((p) => p.cells[e + 1]).filter(Boolean);
5409
+ if (!l.length || !r.length) return;
5410
+ const o = t.clientX, a = l[0].getBoundingClientRect().width, d = r[0].getBoundingClientRect().width;
5334
5411
  i.style.tableLayout = "fixed", this.withNoTextSelect((p) => {
5335
- const m = (y) => {
5336
- const g = (s ? -1 : 1) * (y.clientX - o);
5337
- r.forEach((x) => x.style.width = Math.max(24, Math.round(a + g)) + "px"), l.forEach((x) => x.style.width = Math.max(24, Math.round(d - g)) + "px"), this.positionTableHandles();
5338
- }, b = () => {
5339
- window.removeEventListener("mousemove", m), window.removeEventListener("mouseup", b), p(), this.onChange();
5412
+ const m = (b) => {
5413
+ const f = (s ? -1 : 1) * (b.clientX - o);
5414
+ l.forEach((y) => y.style.width = Math.max(24, Math.round(a + f)) + "px"), r.forEach((y) => y.style.width = Math.max(24, Math.round(d - f)) + "px"), this.positionTableHandles();
5415
+ }, v = () => {
5416
+ window.removeEventListener("mousemove", m), window.removeEventListener("mouseup", v), p(), this.onChange();
5340
5417
  };
5341
- window.addEventListener("mousemove", m), window.addEventListener("mouseup", b);
5418
+ window.addEventListener("mousemove", m), window.addEventListener("mouseup", v);
5342
5419
  });
5343
5420
  }
5344
5421
  /* ---------------------------------------------------------- image toolbar / resize */
@@ -5353,7 +5430,7 @@ let ji = (j = class {
5353
5430
  this.cancelImgHide(), this.imgHandles.forEach((i) => i.remove()), this.imgHandles = [], (t = this.imgCtx) == null || t.remove(), this.imgCtx = null, (e = this.imgActive) == null || e.classList.remove("img-selected"), this.imgActive = null;
5354
5431
  }
5355
5432
  selectImage(t) {
5356
- this.imgActive !== t && (this.clearImageHandles(), this.imgActive = t, t.classList.add("img-selected"), this.imgHandles = Pi.map((e) => {
5433
+ this.imgActive !== t && (this.clearImageHandles(), this.imgActive = t, t.classList.add("img-selected"), this.imgHandles = Di.map((e) => {
5357
5434
  const i = document.createElement("div");
5358
5435
  return i.className = "img-handle img-handle-" + e, i.dataset.corner = e, i.addEventListener("mousedown", (s) => this.startImageResizeDrag(s, e)), i.addEventListener("mouseenter", () => this.cancelImgHide()), i.addEventListener("mouseleave", () => this.scheduleImgHide()), document.body.appendChild(i), i;
5359
5436
  }), this.imgCtx = this.buildImageCtxToolbar(t), this.positionImageHandles());
@@ -5367,14 +5444,14 @@ let ji = (j = class {
5367
5444
  (d = this.imgCtx) == null || d.replaceWith(a), this.imgCtx = a, this.positionImageHandles();
5368
5445
  }, s = (a) => {
5369
5446
  this.setImageAlign(t, a), i();
5370
- }, n = t.style.float === "left", r = t.style.float === "right", l = !n && !r && t.style.marginLeft === "auto" && t.style.marginRight === "auto", o = (a, d, p, m) => {
5371
- const b = this.ctxBtn(a, d, m);
5372
- return b.classList.toggle("on", p), b;
5447
+ }, n = t.style.float === "left", l = t.style.float === "right", r = !n && !l && t.style.marginLeft === "auto" && t.style.marginRight === "auto", o = (a, d, p, m) => {
5448
+ const v = this.ctxBtn(a, d, m);
5449
+ return v.classList.toggle("on", p), v;
5373
5450
  };
5374
5451
  return e.append(
5375
5452
  o(h.alignleft, this.t("alignleft"), n, () => s("left")),
5376
- o(h.aligncenter, this.t("aligncenter"), l, () => s("center")),
5377
- o(h.alignright, this.t("alignright"), r, () => s("right")),
5453
+ o(h.aligncenter, this.t("aligncenter"), r, () => s("center")),
5454
+ o(h.alignright, this.t("alignright"), l, () => s("right")),
5378
5455
  this.ctxSep(),
5379
5456
  o(h.rotateleft, this.t("rotateleft"), !1, () => {
5380
5457
  this.rotateImage(t, -90), i();
@@ -5416,19 +5493,19 @@ let ji = (j = class {
5416
5493
  this.clearImageHandles();
5417
5494
  return;
5418
5495
  }
5419
- const t = this.imgActive.getBoundingClientRect(), e = t.top + scrollY, i = t.left + scrollX, s = t.right + scrollX, n = t.bottom + scrollY, r = {
5496
+ const t = this.imgActive.getBoundingClientRect(), e = t.top + scrollY, i = t.left + scrollX, s = t.right + scrollX, n = t.bottom + scrollY, l = {
5420
5497
  nw: [i, e],
5421
5498
  ne: [s, e],
5422
5499
  sw: [i, n],
5423
5500
  se: [s, n]
5424
5501
  };
5425
- if (this.imgHandles.forEach((l) => {
5426
- const [o, a] = r[l.dataset.corner];
5427
- l.style.left = o - 5 + "px", l.style.top = a - 5 + "px";
5502
+ if (this.imgHandles.forEach((r) => {
5503
+ const [o, a] = l[r.dataset.corner];
5504
+ r.style.left = o - 5 + "px", r.style.top = a - 5 + "px";
5428
5505
  }), this.imgCtx) {
5429
- const l = this.imgCtx.offsetWidth, o = this.imgCtx.offsetHeight;
5430
- let a = i + (s - i) / 2 - l / 2;
5431
- a = Math.max(8 + scrollX, Math.min(a, scrollX + innerWidth - l - 8));
5506
+ const r = this.imgCtx.offsetWidth, o = this.imgCtx.offsetHeight;
5507
+ let a = i + (s - i) / 2 - r / 2;
5508
+ a = Math.max(8 + scrollX, Math.min(a, scrollX + innerWidth - r - 8));
5432
5509
  let d = e - o - 8;
5433
5510
  d < this.ctxMinTop() && (d = n + 8), this.imgCtx.style.left = a + "px", this.imgCtx.style.top = d + "px";
5434
5511
  }
@@ -5438,12 +5515,12 @@ let ji = (j = class {
5438
5515
  const i = this.imgActive;
5439
5516
  if (!i) return;
5440
5517
  this.cancelImgHide();
5441
- const s = t.clientX, n = i.getBoundingClientRect().width, r = e === "nw" || e === "sw" ? -1 : 1;
5442
- this.withNoTextSelect((l) => {
5518
+ const s = t.clientX, n = i.getBoundingClientRect().width, l = e === "nw" || e === "sw" ? -1 : 1;
5519
+ this.withNoTextSelect((r) => {
5443
5520
  const o = (d) => {
5444
- i.style.width = Math.max(24, Math.round(n + r * (d.clientX - s))) + "px", i.style.height = "auto", this.positionImageHandles();
5521
+ i.style.width = Math.max(24, Math.round(n + l * (d.clientX - s))) + "px", i.style.height = "auto", this.positionImageHandles();
5445
5522
  }, a = () => {
5446
- window.removeEventListener("mousemove", o), window.removeEventListener("mouseup", a), l();
5523
+ window.removeEventListener("mousemove", o), window.removeEventListener("mouseup", a), r();
5447
5524
  const d = parseInt(i.style.width, 10);
5448
5525
  d > 0 && !i.closest(".tpl-media") && (i.setAttribute("width", String(d)), i.removeAttribute("height")), this.onChange();
5449
5526
  };
@@ -5486,7 +5563,7 @@ let ji = (j = class {
5486
5563
  this.selCtx || (this.selCtx = this.buildSelToolbar()), this.positionSelToolbar(e);
5487
5564
  }
5488
5565
  buildSelToolbar() {
5489
- var l;
5566
+ var r;
5490
5567
  const t = document.createElement("div");
5491
5568
  t.className = "selctx", t.dir = this.dir();
5492
5569
  const e = this.ctxBtn(
@@ -5494,8 +5571,8 @@ let ji = (j = class {
5494
5571
  this.t("forecolor"),
5495
5572
  () => this.colorMenu(e, "fore")
5496
5573
  ), i = this.ctxBtn(h.backcolor, this.t("backcolor"), () => this.colorMenu(i, "back"));
5497
- (l = i.querySelector("svg")) == null || l.insertAdjacentHTML("afterend", '<span class="colorbar" data-cb="back"></span>');
5498
- const s = this.ctxBtn(h.caseic, this.t("changecase"), () => this.caseMenu(s)), n = this.ctxBtn(h.lineheight, this.t("lineheight"), () => this.lineHeightMenu(n)), r = this.ctxBtn(h.wordspacing, this.t("wordspacing"), () => this.wordSpacingMenu(r));
5574
+ (r = i.querySelector("svg")) == null || r.insertAdjacentHTML("afterend", '<span class="colorbar" data-cb="back"></span>');
5575
+ const s = this.ctxBtn(h.caseic, this.t("changecase"), () => this.caseMenu(s)), n = this.ctxBtn(h.lineheight, this.t("lineheight"), () => this.lineHeightMenu(n)), l = this.ctxBtn(h.wordspacing, this.t("wordspacing"), () => this.wordSpacingMenu(l));
5499
5576
  return t.append(
5500
5577
  this.ctxBtn(h.bold, this.t("bold"), () => this.exec("bold"), "bold"),
5501
5578
  this.ctxBtn(h.italic, this.t("italic"), () => this.exec("italic"), "italic"),
@@ -5510,16 +5587,16 @@ let ji = (j = class {
5510
5587
  this.ctxBtn(h.link, this.t("linkttl"), () => this.linkDlg()),
5511
5588
  s,
5512
5589
  n,
5513
- r
5590
+ l
5514
5591
  ), t.addEventListener("mousedown", (o) => o.preventDefault()), document.body.appendChild(t), this.syncColorSwatches(t), t;
5515
5592
  }
5516
5593
  positionSelToolbar(t) {
5517
5594
  if (!this.selCtx) return;
5518
- const e = t.getBoundingClientRect(), i = e.top + scrollY, s = e.left + scrollX, n = e.right + scrollX, r = e.bottom + scrollY, l = this.selCtx.offsetWidth, o = this.selCtx.offsetHeight;
5519
- let a = s + (n - s) / 2 - l / 2;
5520
- a = Math.max(8 + scrollX, Math.min(a, scrollX + innerWidth - l - 8));
5595
+ const e = t.getBoundingClientRect(), i = e.top + scrollY, s = e.left + scrollX, n = e.right + scrollX, l = e.bottom + scrollY, r = this.selCtx.offsetWidth, o = this.selCtx.offsetHeight;
5596
+ let a = s + (n - s) / 2 - r / 2;
5597
+ a = Math.max(8 + scrollX, Math.min(a, scrollX + innerWidth - r - 8));
5521
5598
  let d = i - o - 8;
5522
- d < this.ctxMinTop() && (d = r + 8), this.selCtx.style.left = a + "px", this.selCtx.style.top = d + "px";
5599
+ d < this.ctxMinTop() && (d = l + 8), this.selCtx.style.left = a + "px", this.selCtx.style.top = d + "px";
5523
5600
  }
5524
5601
  repositionSelToolbar() {
5525
5602
  if (!this.selCtx) return;
@@ -5566,23 +5643,23 @@ let ji = (j = class {
5566
5643
  "justifyFull",
5567
5644
  "insertOrderedList",
5568
5645
  "insertUnorderedList"
5569
- ].forEach((b) => {
5570
- const y = p.querySelector(`[data-id=${b}]`);
5571
- y && y.classList.toggle("on", e && document.queryCommandState(b));
5572
- }), ["h2", "h3", "blockquote"].forEach((b) => {
5573
- const y = p.querySelector(`[data-id=${b}]`);
5574
- y && y.classList.toggle("on", e && i === b);
5646
+ ].forEach((v) => {
5647
+ const b = p.querySelector(`[data-id=${v}]`);
5648
+ b && b.classList.toggle("on", e && document.queryCommandState(v));
5649
+ }), ["h2", "h3", "blockquote"].forEach((v) => {
5650
+ const b = p.querySelector(`[data-id=${v}]`);
5651
+ b && b.classList.toggle("on", e && i === v);
5575
5652
  });
5576
5653
  const m = p.querySelector("[data-id=code]");
5577
5654
  m && m.classList.toggle("on", e && !!this.closestInlineCode());
5578
5655
  });
5579
- const n = t ? this.closestBlock(t.anchorNode) : null, r = ((o = n == null ? void 0 : n.closest("[dir]")) == null ? void 0 : o.getAttribute("dir")) || this.ed.getAttribute("dir") || this.dir();
5580
- (a = this.toolbar.querySelector("[data-id=ltr]")) == null || a.classList.toggle("on", e && r === "ltr"), (d = this.toolbar.querySelector("[data-id=rtl]")) == null || d.classList.toggle("on", e && r === "rtl");
5581
- const l = (p, m, b) => {
5582
- const y = this.toolbar.querySelector(`[data-id=${p}] .lbl`);
5583
- y && (y.textContent = m || b || "", y.classList.toggle("empty", !m));
5656
+ const n = t ? this.closestBlock(t.anchorNode) : null, l = ((o = n == null ? void 0 : n.closest("[dir]")) == null ? void 0 : o.getAttribute("dir")) || this.ed.getAttribute("dir") || this.dir();
5657
+ (a = this.toolbar.querySelector("[data-id=ltr]")) == null || a.classList.toggle("on", e && l === "ltr"), (d = this.toolbar.querySelector("[data-id=rtl]")) == null || d.classList.toggle("on", e && l === "rtl");
5658
+ const r = (p, m, v) => {
5659
+ const b = this.toolbar.querySelector(`[data-id=${p}] .lbl`);
5660
+ b && (b.textContent = m || v || "", b.classList.toggle("empty", !m));
5584
5661
  };
5585
- l("fontsel", this.currentFont()), l("sizesel", this.currentSize().replace("px", "")), e && l("blocksel", ne.some((p) => p[0] === i) ? this.blockLabel(i) : this.t("para")), this.sbWords.textContent = this.countWords() + " " + this.t("words");
5662
+ r("fontsel", this.currentFont()), r("sizesel", this.currentSize().replace("px", "")), e && r("blocksel", re.some((p) => p[0] === i) ? this.blockLabel(i) : this.t("para")), this.sbWords.textContent = this.countWords() + " " + this.t("words");
5586
5663
  }
5587
5664
  countWords() {
5588
5665
  const t = (this.ed.textContent || "").trim();
@@ -5602,13 +5679,13 @@ let ji = (j = class {
5602
5679
  return;
5603
5680
  }
5604
5681
  if (!i) {
5605
- const n = e.getData("text/plain"), r = /^\S+$/.test(n.trim()) ? this.videoEmbedUrl(n.trim()) : null;
5606
- if (r) {
5607
- document.execCommand("insertHTML", !1, this.videoEmbedHTML(r)), this.onChange();
5682
+ const n = e.getData("text/plain"), l = /^\S+$/.test(n.trim()) ? this.videoEmbedUrl(n.trim()) : null;
5683
+ if (l) {
5684
+ document.execCommand("insertHTML", !1, this.videoEmbedHTML(l)), this.onChange();
5608
5685
  return;
5609
5686
  }
5610
5687
  }
5611
- i ? this.pasteRichHTML(i, e, s) : (document.execCommand("insertHTML", !1, yi(e.getData("text/plain"))), this.onChange());
5688
+ i ? this.pasteRichHTML(i, e, s) : (document.execCommand("insertHTML", !1, Ci(e.getData("text/plain"))), this.onChange());
5612
5689
  }
5613
5690
  /** Rich-HTML paste. Before the (untouched) paste engine runs, pictures Word left
5614
5691
  * behind as unreadable file:// refs are pulled out of the clipboard's RTF flavor
@@ -5620,19 +5697,19 @@ let ji = (j = class {
5620
5697
  let s = [];
5621
5698
  const n = e.getData("text/rtf");
5622
5699
  if (n) {
5623
- const r = Mi(t, n);
5624
- t = r.html, s = r.injected;
5700
+ const l = ki(t, n);
5701
+ t = l.html, s = l.injected;
5625
5702
  }
5626
- if (i && Li(t) === 1) {
5627
- const r = i.getAsFile();
5628
- if (r) {
5629
- const l = t;
5703
+ if (i && Ai(t) === 1) {
5704
+ const l = i.getAsFile();
5705
+ if (l) {
5706
+ const r = t;
5630
5707
  this.saveSel();
5631
5708
  const o = new FileReader();
5632
5709
  o.onload = () => {
5633
- const a = fe(l, [o.result]);
5710
+ const a = ge(r, [o.result]);
5634
5711
  this.finishRichPaste(a.html, s.concat(a.injected), !0);
5635
- }, o.onerror = () => this.finishRichPaste(l, s, !0), o.readAsDataURL(r);
5712
+ }, o.onerror = () => this.finishRichPaste(r, s, !0), o.readAsDataURL(l);
5636
5713
  return;
5637
5714
  }
5638
5715
  }
@@ -5646,126 +5723,126 @@ let ji = (j = class {
5646
5723
  this.insertPastedHTML(t, i);
5647
5724
  return;
5648
5725
  }
5649
- const s = this.imageUploadHandler, n = e.filter((r, l) => e.indexOf(r) === l);
5726
+ const s = this.imageUploadHandler, n = e.filter((l, r) => e.indexOf(l) === r);
5650
5727
  i || this.saveSel(), Promise.all(
5651
- n.map((r, l) => {
5652
- const o = ki(r, "pasted-image-" + (l + 1));
5728
+ n.map((l, r) => {
5729
+ const o = Hi(l, "pasted-image-" + (r + 1));
5653
5730
  return o ? s(o).catch((a) => {
5654
5731
  var d;
5655
- return (d = this.onImageUploadError) == null || d.call(this, a, o), r;
5656
- }) : Promise.resolve(r);
5732
+ return (d = this.onImageUploadError) == null || d.call(this, a, o), l;
5733
+ }) : Promise.resolve(l);
5657
5734
  })
5658
- ).then((r) => {
5659
- let l = t;
5735
+ ).then((l) => {
5736
+ let r = t;
5660
5737
  n.forEach((o, a) => {
5661
- r[a] !== o && (l = l.split(o).join(r[a]));
5662
- }), this.insertPastedHTML(l, !0);
5738
+ l[a] !== o && (r = r.split(o).join(l[a]));
5739
+ }), this.insertPastedHTML(r, !0);
5663
5740
  });
5664
5741
  }
5665
5742
  /** `deferred` means the insert is happening after an async hop, so the caret the
5666
5743
  * paste started from has to be put back first. */
5667
5744
  insertPastedHTML(t, e = !1) {
5668
- e && this.restoreSel(), document.execCommand("insertHTML", !1, bi(t, this.dir())), e && this.saveSel(), this.onChange();
5745
+ e && this.restoreSel(), document.execCommand("insertHTML", !1, xi(t, this.dir())), e && this.saveSel(), this.onChange();
5669
5746
  }
5670
5747
  /* ---------------------------------------------------------- init */
5671
5748
  initUI() {
5672
5749
  this.closePop(), this.closeDlg(), this.clearTableHandles(), this.clearImgPlaceholderSel(), this.clearVphPlaceholderSel(), this.clearVidHandles(), this.clearCodeSel(), this.shell.dir = this.dir(), this.ed.dir = this.dir(), this.options.menubar ? this.buildMenubar() : this.menubar.style.display = "none", this.options.toolbar ? this.buildToolbar() : this.toolbar.style.display = "none", this.sbHelp.textContent = this.t("statushelp"), this.refreshState();
5673
5750
  }
5674
5751
  }, j.instanceCounter = 0, j.TBR_COLLAPSE_MAX = 992, j);
5675
- const Wi = Ve(
5676
- ({ value: u, defaultValue: t, onChange: e, onReady: i, className: s, style: n, ...r }, l) => {
5677
- const o = z(null), a = z(null), d = z(!1), p = z(u ?? t), m = z(null), b = z(e), y = z(i);
5678
- return b.current = e, y.current = i, ze(l, () => ({
5752
+ const ss = Xe(
5753
+ ({ value: u, defaultValue: t, onChange: e, onReady: i, className: s, style: n, ...l }, r) => {
5754
+ const o = z(null), a = z(null), d = z(!1), p = z(u ?? t), m = z(null), v = z(e), b = z(i);
5755
+ return v.current = e, b.current = i, Ye(r, () => ({
5679
5756
  getContent: () => {
5680
- var g;
5681
- return ((g = a.current) == null ? void 0 : g.getContent()) ?? "";
5757
+ var f;
5758
+ return ((f = a.current) == null ? void 0 : f.getContent()) ?? "";
5682
5759
  },
5683
5760
  getContentForEmail: () => {
5684
- var g;
5685
- return ((g = a.current) == null ? void 0 : g.getContentForEmail()) ?? "";
5761
+ var f;
5762
+ return ((f = a.current) == null ? void 0 : f.getContentForEmail()) ?? "";
5686
5763
  },
5687
- setContent: (g) => {
5688
- var x;
5689
- return (x = a.current) == null ? void 0 : x.setContent(g);
5764
+ setContent: (f) => {
5765
+ var y;
5766
+ return (y = a.current) == null ? void 0 : y.setContent(f);
5690
5767
  },
5691
- insertContent: (g) => {
5692
- var x;
5693
- return (x = a.current) == null ? void 0 : x.insertContent(g);
5768
+ insertContent: (f) => {
5769
+ var y;
5770
+ return (y = a.current) == null ? void 0 : y.insertContent(f);
5694
5771
  },
5695
- setLanguage: (g) => {
5696
- var x;
5697
- return (x = a.current) == null ? void 0 : x.setLanguage(g);
5772
+ setLanguage: (f) => {
5773
+ var y;
5774
+ return (y = a.current) == null ? void 0 : y.setLanguage(f);
5698
5775
  },
5699
5776
  focus: () => {
5700
- var g;
5701
- return (g = a.current) == null ? void 0 : g.focus();
5777
+ var f;
5778
+ return (f = a.current) == null ? void 0 : f.focus();
5702
5779
  },
5703
5780
  destroy: () => {
5704
- var g;
5705
- return (g = a.current) == null ? void 0 : g.destroy();
5781
+ var f;
5782
+ return (f = a.current) == null ? void 0 : f.destroy();
5706
5783
  },
5707
- importWordFile: (g) => {
5708
- var x;
5709
- return ((x = a.current) == null ? void 0 : x.importWordFile(g)) ?? Promise.resolve();
5784
+ importWordFile: (f) => {
5785
+ var y;
5786
+ return ((y = a.current) == null ? void 0 : y.importWordFile(f)) ?? Promise.resolve();
5710
5787
  },
5711
5788
  restoreDraft: () => {
5712
- var g;
5713
- return ((g = a.current) == null ? void 0 : g.restoreDraft()) ?? !1;
5789
+ var f;
5790
+ return ((f = a.current) == null ? void 0 : f.restoreDraft()) ?? !1;
5714
5791
  },
5715
5792
  getRevisions: () => {
5716
- var g;
5717
- return ((g = a.current) == null ? void 0 : g.getRevisions()) ?? [];
5793
+ var f;
5794
+ return ((f = a.current) == null ? void 0 : f.getRevisions()) ?? [];
5718
5795
  }
5719
5796
  })), lt(() => {
5720
5797
  if (!o.current) return;
5721
- const g = new ji({
5798
+ const f = new is({
5722
5799
  target: o.current,
5723
5800
  initialContent: p.current,
5724
- onChange: (x) => {
5725
- var w;
5726
- d.current = !0, p.current = x, (w = b.current) == null || w.call(b, x);
5801
+ onChange: (y) => {
5802
+ var C;
5803
+ d.current = !0, p.current = y, (C = v.current) == null || C.call(v, y);
5727
5804
  },
5728
- onReady: (x) => {
5729
- var w;
5730
- return (w = y.current) == null ? void 0 : w.call(y, x);
5805
+ onReady: (y) => {
5806
+ var C;
5807
+ return (C = b.current) == null ? void 0 : C.call(b, y);
5731
5808
  },
5732
- ...r
5809
+ ...l
5733
5810
  });
5734
- return a.current = g, () => {
5735
- g.destroy(), a.current = null;
5811
+ return a.current = f, () => {
5812
+ f.destroy(), a.current = null;
5736
5813
  };
5737
5814
  }, []), lt(() => {
5738
- var g, x;
5815
+ var f, y;
5739
5816
  if (u !== void 0 && u !== p.current) {
5740
5817
  if (d.current) {
5741
5818
  d.current = !1;
5742
5819
  return;
5743
5820
  }
5744
- if ((g = o.current) != null && g.contains(document.activeElement)) {
5821
+ if ((f = o.current) != null && f.contains(document.activeElement)) {
5745
5822
  m.current = u;
5746
5823
  return;
5747
5824
  }
5748
- p.current = u, (x = a.current) == null || x.setContent(u);
5825
+ p.current = u, (y = a.current) == null || y.setContent(u);
5749
5826
  }
5750
5827
  }, [u]), lt(() => {
5751
- const g = o.current;
5752
- if (!g) return;
5753
- const x = (w) => {
5828
+ const f = o.current;
5829
+ if (!f) return;
5830
+ const y = (C) => {
5754
5831
  var A;
5755
5832
  if (m.current === null) return;
5756
- const E = w.relatedTarget;
5757
- if (E && g.contains(E)) return;
5833
+ const E = C.relatedTarget;
5834
+ if (E && f.contains(E)) return;
5758
5835
  const I = m.current;
5759
5836
  m.current = null, p.current = I, (A = a.current) == null || A.setContent(I);
5760
5837
  };
5761
- return g.addEventListener("focusout", x), () => g.removeEventListener("focusout", x);
5838
+ return f.addEventListener("focusout", y), () => f.removeEventListener("focusout", y);
5762
5839
  }, []), lt(() => {
5763
- var g;
5764
- r.language && ((g = a.current) == null || g.setLanguage(r.language));
5765
- }, [r.language]), /* @__PURE__ */ Ge.jsx("div", { ref: o, className: s, style: n });
5840
+ var f;
5841
+ l.language && ((f = a.current) == null || f.setLanguage(l.language));
5842
+ }, [l.language]), /* @__PURE__ */ Qe.jsx("div", { ref: o, className: s, style: n });
5766
5843
  }
5767
5844
  );
5768
- Wi.displayName = "FableEditor";
5845
+ ss.displayName = "FableEditor";
5769
5846
  export {
5770
- Wi as FableEditor
5847
+ ss as FableEditor
5771
5848
  };