administrate 1.0.0.beta2 → 1.0.0.beta3

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.
@@ -8203,7 +8203,7 @@
8203
8203
  window.$ = import_jquery.default;
8204
8204
 
8205
8205
  // node_modules/trix/dist/trix.esm.min.js
8206
- var t = "2.1.1";
8206
+ var t = "2.1.4";
8207
8207
  var e = "[data-trix-attachment]";
8208
8208
  var i = { preview: { presentation: "gallery", caption: { name: true, size: true } }, file: { caption: { size: true } } };
8209
8209
  var n = { default: { tagName: "div", parse: false }, quote: { tagName: "blockquote", nestable: true }, heading1: { tagName: "h1", terminal: true, breakOnReturn: true, group: false }, code: { tagName: "pre", terminal: true, htmlAttributes: ["language"], text: { plaintext: true } }, bulletList: { tagName: "ul", parse: false }, bullet: { tagName: "li", listAttribute: "bulletList", group: false, nestable: true, test(t2) {
@@ -8990,8 +8990,78 @@
8990
8990
  return this.getChildViews()[0].createContainerElement(t2);
8991
8991
  }
8992
8992
  };
8993
- var { css: ne } = V;
8994
- var re = class extends ee {
8993
+ var ne = "style href src width height language class".split(" ");
8994
+ var re = "javascript:".split(" ");
8995
+ var oe = "script iframe form noscript".split(" ");
8996
+ var se = class extends H {
8997
+ static setHTML(t2, e2) {
8998
+ const i2 = new this(e2).sanitize(), n2 = i2.getHTML ? i2.getHTML() : i2.outerHTML;
8999
+ t2.innerHTML = n2;
9000
+ }
9001
+ static sanitize(t2, e2) {
9002
+ const i2 = new this(t2, e2);
9003
+ return i2.sanitize(), i2;
9004
+ }
9005
+ constructor(t2) {
9006
+ let { allowedAttributes: e2, forbiddenProtocols: i2, forbiddenElements: n2 } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
9007
+ super(...arguments), this.allowedAttributes = e2 || ne, this.forbiddenProtocols = i2 || re, this.forbiddenElements = n2 || oe, this.body = ae(t2);
9008
+ }
9009
+ sanitize() {
9010
+ return this.sanitizeElements(), this.normalizeListElementNesting();
9011
+ }
9012
+ getHTML() {
9013
+ return this.body.innerHTML;
9014
+ }
9015
+ getBody() {
9016
+ return this.body;
9017
+ }
9018
+ sanitizeElements() {
9019
+ const t2 = R(this.body), e2 = [];
9020
+ for (; t2.nextNode(); ) {
9021
+ const i2 = t2.currentNode;
9022
+ switch (i2.nodeType) {
9023
+ case Node.ELEMENT_NODE:
9024
+ this.elementIsRemovable(i2) ? e2.push(i2) : this.sanitizeElement(i2);
9025
+ break;
9026
+ case Node.COMMENT_NODE:
9027
+ e2.push(i2);
9028
+ }
9029
+ }
9030
+ return e2.forEach((t3) => k(t3)), this.body;
9031
+ }
9032
+ sanitizeElement(t2) {
9033
+ return t2.hasAttribute("href") && this.forbiddenProtocols.includes(t2.protocol) && t2.removeAttribute("href"), Array.from(t2.attributes).forEach((e2) => {
9034
+ let { name: i2 } = e2;
9035
+ this.allowedAttributes.includes(i2) || 0 === i2.indexOf("data-trix") || t2.removeAttribute(i2);
9036
+ }), t2;
9037
+ }
9038
+ normalizeListElementNesting() {
9039
+ return Array.from(this.body.querySelectorAll("ul,ol")).forEach((t2) => {
9040
+ const e2 = t2.previousElementSibling;
9041
+ e2 && "li" === E(e2) && e2.appendChild(t2);
9042
+ }), this.body;
9043
+ }
9044
+ elementIsRemovable(t2) {
9045
+ if ((null == t2 ? void 0 : t2.nodeType) === Node.ELEMENT_NODE)
9046
+ return this.elementIsForbidden(t2) || this.elementIsntSerializable(t2);
9047
+ }
9048
+ elementIsForbidden(t2) {
9049
+ return this.forbiddenElements.includes(E(t2));
9050
+ }
9051
+ elementIsntSerializable(t2) {
9052
+ return "false" === t2.getAttribute("data-trix-serialize") && !I(t2);
9053
+ }
9054
+ };
9055
+ var ae = function() {
9056
+ let t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
9057
+ t2 = t2.replace(/<\/html[^>]*>[^]*$/i, "</html>");
9058
+ const e2 = document.implementation.createHTMLDocument("");
9059
+ return e2.documentElement.innerHTML = t2, Array.from(e2.head.querySelectorAll("style")).forEach((t3) => {
9060
+ e2.body.appendChild(t3);
9061
+ }), e2.body;
9062
+ };
9063
+ var { css: le } = V;
9064
+ var ce = class extends ee {
8995
9065
  constructor() {
8996
9066
  super(...arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;
8997
9067
  }
@@ -9001,39 +9071,39 @@
9001
9071
  createNodes() {
9002
9072
  let t2;
9003
9073
  const e2 = t2 = S({ tagName: "figure", className: this.getClassName(), data: this.getData(), editable: false }), i2 = this.getHref();
9004
- return i2 && (t2 = S({ tagName: "a", editable: false, attributes: { href: i2, tabindex: -1 } }), e2.appendChild(t2)), this.attachment.hasContent() ? t2.innerHTML = this.attachment.getContent() : this.createContentNodes().forEach((e3) => {
9074
+ return i2 && (t2 = S({ tagName: "a", editable: false, attributes: { href: i2, tabindex: -1 } }), e2.appendChild(t2)), this.attachment.hasContent() ? se.setHTML(t2, this.attachment.getContent()) : this.createContentNodes().forEach((e3) => {
9005
9075
  t2.appendChild(e3);
9006
- }), t2.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = S({ tagName: "progress", attributes: { class: ne.attachmentProgress, value: this.attachment.getUploadProgress(), max: 100 }, data: { trixMutable: true, trixStoreKey: ["progressElement", this.attachment.id].join("/") } }), e2.appendChild(this.progressElement)), [oe("left"), e2, oe("right")];
9076
+ }), t2.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = S({ tagName: "progress", attributes: { class: le.attachmentProgress, value: this.attachment.getUploadProgress(), max: 100 }, data: { trixMutable: true, trixStoreKey: ["progressElement", this.attachment.id].join("/") } }), e2.appendChild(this.progressElement)), [ue("left"), e2, ue("right")];
9007
9077
  }
9008
9078
  createCaptionElement() {
9009
- const t2 = S({ tagName: "figcaption", className: ne.attachmentCaption }), e2 = this.attachmentPiece.getCaption();
9079
+ const t2 = S({ tagName: "figcaption", className: le.attachmentCaption }), e2 = this.attachmentPiece.getCaption();
9010
9080
  if (e2)
9011
- t2.classList.add("".concat(ne.attachmentCaption, "--edited")), t2.textContent = e2;
9081
+ t2.classList.add("".concat(le.attachmentCaption, "--edited")), t2.textContent = e2;
9012
9082
  else {
9013
9083
  let e3, i2;
9014
9084
  const n2 = this.getCaptionConfig();
9015
9085
  if (n2.name && (e3 = this.attachment.getFilename()), n2.size && (i2 = this.attachment.getFormattedFilesize()), e3) {
9016
- const i3 = S({ tagName: "span", className: ne.attachmentName, textContent: e3 });
9086
+ const i3 = S({ tagName: "span", className: le.attachmentName, textContent: e3 });
9017
9087
  t2.appendChild(i3);
9018
9088
  }
9019
9089
  if (i2) {
9020
9090
  e3 && t2.appendChild(document.createTextNode(" "));
9021
- const n3 = S({ tagName: "span", className: ne.attachmentSize, textContent: i2 });
9091
+ const n3 = S({ tagName: "span", className: le.attachmentSize, textContent: i2 });
9022
9092
  t2.appendChild(n3);
9023
9093
  }
9024
9094
  }
9025
9095
  return t2;
9026
9096
  }
9027
9097
  getClassName() {
9028
- const t2 = [ne.attachment, "".concat(ne.attachment, "--").concat(this.attachment.getType())], e2 = this.attachment.getExtension();
9029
- return e2 && t2.push("".concat(ne.attachment, "--").concat(e2)), t2.join(" ");
9098
+ const t2 = [le.attachment, "".concat(le.attachment, "--").concat(this.attachment.getType())], e2 = this.attachment.getExtension();
9099
+ return e2 && t2.push("".concat(le.attachment, "--").concat(e2)), t2.join(" ");
9030
9100
  }
9031
9101
  getData() {
9032
9102
  const t2 = { trixAttachment: JSON.stringify(this.attachment), trixContentType: this.attachment.getContentType(), trixId: this.attachment.id }, { attributes: e2 } = this.attachmentPiece;
9033
9103
  return e2.isEmpty() || (t2.trixAttributes = JSON.stringify(e2)), this.attachment.isPending() && (t2.trixSerialize = false), t2;
9034
9104
  }
9035
9105
  getHref() {
9036
- if (!se(this.attachment.getContent(), "a"))
9106
+ if (!he(this.attachment.getContent(), "a"))
9037
9107
  return this.attachment.getHref();
9038
9108
  }
9039
9109
  getCaptionConfig() {
@@ -9050,12 +9120,12 @@
9050
9120
  e2 && (e2.value = t2);
9051
9121
  }
9052
9122
  };
9053
- var oe = (t2) => S({ tagName: "span", textContent: h, data: { trixCursorTarget: t2, trixSerialize: false } });
9054
- var se = function(t2, e2) {
9123
+ var ue = (t2) => S({ tagName: "span", textContent: h, data: { trixCursorTarget: t2, trixSerialize: false } });
9124
+ var he = function(t2, e2) {
9055
9125
  const i2 = S("div");
9056
- return i2.innerHTML = t2 || "", i2.querySelector(e2);
9126
+ return se.setHTML(i2, t2 || ""), i2.querySelector(e2);
9057
9127
  };
9058
- var ae = class extends re {
9128
+ var de = class extends ce {
9059
9129
  constructor() {
9060
9130
  super(...arguments), this.attachment.previewDelegate = this;
9061
9131
  }
@@ -9089,7 +9159,7 @@
9089
9159
  return this.refresh(this.image), this.refresh();
9090
9160
  }
9091
9161
  };
9092
- var le = class extends ee {
9162
+ var ge = class extends ee {
9093
9163
  constructor() {
9094
9164
  super(...arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), this.textConfig = this.options.textConfig, this.context = this.options.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();
9095
9165
  }
@@ -9111,7 +9181,7 @@
9111
9181
  return t2;
9112
9182
  }
9113
9183
  createAttachmentNodes() {
9114
- const t2 = this.attachment.isPreviewable() ? ae : re;
9184
+ const t2 = this.attachment.isPreviewable() ? de : ce;
9115
9185
  return this.createChildView(t2, this.piece.attachment, { piece: this.piece }).getNodes();
9116
9186
  }
9117
9187
  createStringNodes() {
@@ -9169,7 +9239,7 @@
9169
9239
  return this.context.isLast && (t2 = t2.replace(/\ $/, d)), t2 = t2.replace(/(\S)\ {3}(\S)/g, "$1 ".concat(d, " $2")).replace(/\ {2}/g, "".concat(d, " ")).replace(/\ {2}/g, " ".concat(d)), (this.context.isFirst || this.context.followsWhitespace) && (t2 = t2.replace(/^\ /, d)), t2;
9170
9240
  }
9171
9241
  };
9172
- var ce = class extends ee {
9242
+ var me = class extends ee {
9173
9243
  constructor() {
9174
9244
  super(...arguments), this.text = this.object, this.textConfig = this.options.textConfig;
9175
9245
  }
@@ -9177,8 +9247,8 @@
9177
9247
  const t2 = [], e2 = Xt.groupObjects(this.getPieces()), i2 = e2.length - 1;
9178
9248
  for (let r2 = 0; r2 < e2.length; r2++) {
9179
9249
  const o2 = e2[r2], s2 = {};
9180
- 0 === r2 && (s2.isFirst = true), r2 === i2 && (s2.isLast = true), ue(n2) && (s2.followsWhitespace = true);
9181
- const a2 = this.findOrCreateCachedChildView(le, o2, { textConfig: this.textConfig, context: s2 });
9250
+ 0 === r2 && (s2.isFirst = true), r2 === i2 && (s2.isLast = true), pe(n2) && (s2.followsWhitespace = true);
9251
+ const a2 = this.findOrCreateCachedChildView(ge, o2, { textConfig: this.textConfig, context: s2 });
9182
9252
  t2.push(...Array.from(a2.getNodes() || []));
9183
9253
  var n2 = o2;
9184
9254
  }
@@ -9188,9 +9258,9 @@
9188
9258
  return Array.from(this.text.getPieces()).filter((t2) => !t2.hasAttribute("blockBreak"));
9189
9259
  }
9190
9260
  };
9191
- var ue = (t2) => /\s$/.test(null == t2 ? void 0 : t2.toString());
9192
- var { css: he } = V;
9193
- var de = class extends ee {
9261
+ var pe = (t2) => /\s$/.test(null == t2 ? void 0 : t2.toString());
9262
+ var { css: fe } = V;
9263
+ var be = class extends ee {
9194
9264
  constructor() {
9195
9265
  super(...arguments), this.block = this.object, this.attributes = this.block.getAttributes();
9196
9266
  }
@@ -9200,7 +9270,7 @@
9200
9270
  t2.push(S("br"));
9201
9271
  else {
9202
9272
  var e2;
9203
- const i2 = null === (e2 = gt(this.block.getLastAttribute())) || void 0 === e2 ? void 0 : e2.text, n2 = this.findOrCreateCachedChildView(ce, this.block.text, { textConfig: i2 });
9273
+ const i2 = null === (e2 = gt(this.block.getLastAttribute())) || void 0 === e2 ? void 0 : e2.text, n2 = this.findOrCreateCachedChildView(me, this.block.text, { textConfig: i2 });
9204
9274
  t2.push(...Array.from(n2.getNodes() || [])), this.shouldAddExtraNewlineElement() && t2.push(S("br"));
9205
9275
  }
9206
9276
  if (this.attributes.length)
@@ -9219,7 +9289,7 @@
9219
9289
  const n2 = this.attributes[t2], { tagName: r2, htmlAttributes: o2 = [] } = gt(n2);
9220
9290
  if (0 === t2 && this.block.isRTL() && Object.assign(e2, { dir: "rtl" }), "attachmentGallery" === n2) {
9221
9291
  const t3 = this.block.getBlockBreakPosition();
9222
- i2 = "".concat(he.attachmentGallery, " ").concat(he.attachmentGallery, "--").concat(t3);
9292
+ i2 = "".concat(fe.attachmentGallery, " ").concat(fe.attachmentGallery, "--").concat(t3);
9223
9293
  }
9224
9294
  return Object.entries(this.block.htmlAttributes).forEach((t3) => {
9225
9295
  let [i3, n3] = t3;
@@ -9230,7 +9300,7 @@
9230
9300
  return /\n\n$/.test(this.block.toString());
9231
9301
  }
9232
9302
  };
9233
- var ge = class extends ee {
9303
+ var ve = class extends ee {
9234
9304
  static render(t2) {
9235
9305
  const e2 = S("div"), i2 = new this(t2, { element: e2 });
9236
9306
  return i2.render(), i2.sync(), e2;
@@ -9245,13 +9315,13 @@
9245
9315
  if (this.childViews = [], this.shadowElement = S("div"), !this.document.isEmpty()) {
9246
9316
  const t2 = Xt.groupObjects(this.document.getBlocks(), { asTree: true });
9247
9317
  Array.from(t2).forEach((t3) => {
9248
- const e2 = this.findOrCreateCachedChildView(de, t3);
9318
+ const e2 = this.findOrCreateCachedChildView(be, t3);
9249
9319
  Array.from(e2.getNodes()).map((t4) => this.shadowElement.appendChild(t4));
9250
9320
  });
9251
9321
  }
9252
9322
  }
9253
9323
  isSynced() {
9254
- return pe(this.shadowElement, this.element);
9324
+ return xe(this.shadowElement, this.element);
9255
9325
  }
9256
9326
  sync() {
9257
9327
  const t2 = this.createDocumentFragmentForSync();
@@ -9260,26 +9330,26 @@
9260
9330
  return this.element.appendChild(t2), this.didSync();
9261
9331
  }
9262
9332
  didSync() {
9263
- return this.elementStore.reset(me(this.element)), Rt(() => this.garbageCollectCachedViews());
9333
+ return this.elementStore.reset(Ae(this.element)), Rt(() => this.garbageCollectCachedViews());
9264
9334
  }
9265
9335
  createDocumentFragmentForSync() {
9266
9336
  const t2 = document.createDocumentFragment();
9267
9337
  return Array.from(this.shadowElement.childNodes).forEach((e2) => {
9268
9338
  t2.appendChild(e2.cloneNode(true));
9269
- }), Array.from(me(t2)).forEach((t3) => {
9339
+ }), Array.from(Ae(t2)).forEach((t3) => {
9270
9340
  const e2 = this.elementStore.remove(t3);
9271
9341
  e2 && t3.parentNode.replaceChild(e2, t3);
9272
9342
  }), t2;
9273
9343
  }
9274
9344
  };
9275
- var me = (t2) => t2.querySelectorAll("[data-trix-store-key]");
9276
- var pe = (t2, e2) => fe(t2.innerHTML) === fe(e2.innerHTML);
9277
- var fe = (t2) => t2.replace(/&nbsp;/g, " ");
9278
- function be(t2) {
9345
+ var Ae = (t2) => t2.querySelectorAll("[data-trix-store-key]");
9346
+ var xe = (t2, e2) => ye(t2.innerHTML) === ye(e2.innerHTML);
9347
+ var ye = (t2) => t2.replace(/&nbsp;/g, " ");
9348
+ function Ce(t2) {
9279
9349
  var e2, i2;
9280
9350
  function n2(e3, i3) {
9281
9351
  try {
9282
- var o2 = t2[e3](i3), s2 = o2.value, a2 = s2 instanceof ve;
9352
+ var o2 = t2[e3](i3), s2 = o2.value, a2 = s2 instanceof ke;
9283
9353
  Promise.resolve(a2 ? s2.v : s2).then(function(i4) {
9284
9354
  if (a2) {
9285
9355
  var l2 = "return" === e3 ? "return" : "next";
@@ -9315,13 +9385,13 @@
9315
9385
  });
9316
9386
  }, "function" != typeof t2.return && (this.return = void 0);
9317
9387
  }
9318
- function ve(t2, e2) {
9388
+ function ke(t2, e2) {
9319
9389
  this.v = t2, this.k = e2;
9320
9390
  }
9321
- function Ae(t2, e2, i2) {
9322
- return (e2 = xe(e2)) in t2 ? Object.defineProperty(t2, e2, { value: i2, enumerable: true, configurable: true, writable: true }) : t2[e2] = i2, t2;
9391
+ function Re(t2, e2, i2) {
9392
+ return (e2 = Ee(e2)) in t2 ? Object.defineProperty(t2, e2, { value: i2, enumerable: true, configurable: true, writable: true }) : t2[e2] = i2, t2;
9323
9393
  }
9324
- function xe(t2) {
9394
+ function Ee(t2) {
9325
9395
  var e2 = function(t3, e3) {
9326
9396
  if ("object" != typeof t3 || null === t3)
9327
9397
  return t3;
@@ -9336,16 +9406,16 @@
9336
9406
  }(t2, "string");
9337
9407
  return "symbol" == typeof e2 ? e2 : String(e2);
9338
9408
  }
9339
- be.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function() {
9409
+ Ce.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function() {
9340
9410
  return this;
9341
- }, be.prototype.next = function(t2) {
9411
+ }, Ce.prototype.next = function(t2) {
9342
9412
  return this._invoke("next", t2);
9343
- }, be.prototype.throw = function(t2) {
9413
+ }, Ce.prototype.throw = function(t2) {
9344
9414
  return this._invoke("throw", t2);
9345
- }, be.prototype.return = function(t2) {
9415
+ }, Ce.prototype.return = function(t2) {
9346
9416
  return this._invoke("return", t2);
9347
9417
  };
9348
- var ye = class extends nt {
9418
+ var Se = class extends nt {
9349
9419
  static registerType(t2, e2) {
9350
9420
  e2.type = t2, this.types[t2] = e2;
9351
9421
  }
@@ -9419,8 +9489,8 @@
9419
9489
  return false;
9420
9490
  }
9421
9491
  };
9422
- Ae(ye, "types", {});
9423
- var Ce = class extends te {
9492
+ Re(Se, "types", {});
9493
+ var Le = class extends te {
9424
9494
  constructor(t2) {
9425
9495
  super(...arguments), this.url = t2;
9426
9496
  }
@@ -9429,7 +9499,7 @@
9429
9499
  e2.onload = () => (e2.width = this.width = e2.naturalWidth, e2.height = this.height = e2.naturalHeight, t2(true, e2)), e2.onerror = () => t2(false), e2.src = this.url;
9430
9500
  }
9431
9501
  };
9432
- var ke = class _ke extends nt {
9502
+ var De = class _De extends nt {
9433
9503
  static attachmentForFile(t2) {
9434
9504
  const e2 = new this(this.attributesForFile(t2));
9435
9505
  return e2.setFile(t2), e2;
@@ -9468,7 +9538,7 @@
9468
9538
  return null != this.file && !(this.getURL() || this.getHref());
9469
9539
  }
9470
9540
  isPreviewable() {
9471
- return this.attributes.has("previewable") ? this.attributes.get("previewable") : _ke.previewablePattern.test(this.getContentType());
9541
+ return this.attributes.has("previewable") ? this.attributes.get("previewable") : _De.previewablePattern.test(this.getContentType());
9472
9542
  }
9473
9543
  getType() {
9474
9544
  return this.hasContent() ? "content" : this.isPreviewable() ? "preview" : "file";
@@ -9553,17 +9623,17 @@
9553
9623
  preload(t2, e2) {
9554
9624
  if (t2 && t2 !== this.getPreviewURL()) {
9555
9625
  this.preloadingURL = t2;
9556
- return new Ce(t2).then((i2) => {
9626
+ return new Le(t2).then((i2) => {
9557
9627
  let { width: n2, height: r2 } = i2;
9558
9628
  return this.getWidth() && this.getHeight() || this.setAttributes({ width: n2, height: r2 }), this.preloadingURL = null, this.setPreviewURL(t2), null == e2 ? void 0 : e2();
9559
9629
  }).catch(() => (this.preloadingURL = null, null == e2 ? void 0 : e2()));
9560
9630
  }
9561
9631
  }
9562
9632
  };
9563
- Ae(ke, "previewablePattern", /^image(\/(gif|png|webp|jpe?g)|$)/);
9564
- var Re = class _Re extends ye {
9633
+ Re(De, "previewablePattern", /^image(\/(gif|png|webp|jpe?g)|$)/);
9634
+ var we = class _we extends Se {
9565
9635
  static fromJSON(t2) {
9566
- return new this(ke.fromJSON(t2.attachment), t2.attributes);
9636
+ return new this(De.fromJSON(t2.attachment), t2.attributes);
9567
9637
  }
9568
9638
  constructor(t2) {
9569
9639
  super(...arguments), this.attachment = t2, this.length = 1, this.ensureAttachmentExclusivelyHasAttribute("href"), this.attachment.hasContent() || this.removeProhibitedAttributes();
@@ -9572,7 +9642,7 @@
9572
9642
  this.hasAttribute(t2) && (this.attachment.hasAttribute(t2) || this.attachment.setAttributes(this.attributes.slice([t2])), this.attributes = this.attributes.remove(t2));
9573
9643
  }
9574
9644
  removeProhibitedAttributes() {
9575
- const t2 = this.attributes.slice(_Re.permittedAttributes);
9645
+ const t2 = this.attributes.slice(_we.permittedAttributes);
9576
9646
  t2.isEqualTo(this.attributes) || (this.attributes = t2);
9577
9647
  }
9578
9648
  getValue() {
@@ -9602,8 +9672,8 @@
9602
9672
  return JSON.stringify(this.toString());
9603
9673
  }
9604
9674
  };
9605
- Ae(Re, "permittedAttributes", ["caption", "presentation"]), ye.registerType("attachment", Re);
9606
- var Ee = class extends ye {
9675
+ Re(we, "permittedAttributes", ["caption", "presentation"]), Se.registerType("attachment", we);
9676
+ var Te = class extends Se {
9607
9677
  static fromJSON(t2) {
9608
9678
  return new this(t2.string, t2.attributes);
9609
9679
  }
@@ -9638,8 +9708,8 @@
9638
9708
  return t2.length > 15 && (t2 = t2.slice(0, 14) + "\u2026"), JSON.stringify(t2.toString());
9639
9709
  }
9640
9710
  };
9641
- ye.registerType("string", Ee);
9642
- var Se = class extends nt {
9711
+ Se.registerType("string", Te);
9712
+ var Be = class extends nt {
9643
9713
  static box(t2) {
9644
9714
  return t2 instanceof this ? t2 : new this(t2);
9645
9715
  }
@@ -9697,8 +9767,8 @@
9697
9767
  return new this.constructor(o2);
9698
9768
  }
9699
9769
  splitObjectsAtRange(t2) {
9700
- let e2, [i2, n2, r2] = this.splitObjectAtPosition(De(t2));
9701
- return [i2, e2] = new this.constructor(i2).splitObjectAtPosition(we(t2) + r2), [i2, n2, e2 - 1];
9770
+ let e2, [i2, n2, r2] = this.splitObjectAtPosition(Pe(t2));
9771
+ return [i2, e2] = new this.constructor(i2).splitObjectAtPosition(Ie(t2) + r2), [i2, n2, e2 - 1];
9702
9772
  }
9703
9773
  getObjectAtPosition(t2) {
9704
9774
  const { index: e2 } = this.findIndexAndOffsetAtPosition(t2);
@@ -9766,13 +9836,13 @@
9766
9836
  return this.toArray();
9767
9837
  }
9768
9838
  isEqualTo(t2) {
9769
- return super.isEqualTo(...arguments) || Le(this.objects, null == t2 ? void 0 : t2.objects);
9839
+ return super.isEqualTo(...arguments) || Fe(this.objects, null == t2 ? void 0 : t2.objects);
9770
9840
  }
9771
9841
  contentsForInspection() {
9772
9842
  return { objects: "[".concat(this.objects.map((t2) => t2.inspect()).join(", "), "]") };
9773
9843
  }
9774
9844
  };
9775
- var Le = function(t2) {
9845
+ var Fe = function(t2) {
9776
9846
  let e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
9777
9847
  if (t2.length !== e2.length)
9778
9848
  return false;
@@ -9783,23 +9853,23 @@
9783
9853
  }
9784
9854
  return i2;
9785
9855
  };
9786
- var De = (t2) => t2[0];
9787
- var we = (t2) => t2[1];
9788
- var Te = class extends nt {
9856
+ var Pe = (t2) => t2[0];
9857
+ var Ie = (t2) => t2[1];
9858
+ var Ne = class extends nt {
9789
9859
  static textForAttachmentWithAttributes(t2, e2) {
9790
- return new this([new Re(t2, e2)]);
9860
+ return new this([new we(t2, e2)]);
9791
9861
  }
9792
9862
  static textForStringWithAttributes(t2, e2) {
9793
- return new this([new Ee(t2, e2)]);
9863
+ return new this([new Te(t2, e2)]);
9794
9864
  }
9795
9865
  static fromJSON(t2) {
9796
- return new this(Array.from(t2).map((t3) => ye.fromJSON(t3)));
9866
+ return new this(Array.from(t2).map((t3) => Se.fromJSON(t3)));
9797
9867
  }
9798
9868
  constructor() {
9799
9869
  let t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
9800
9870
  super(...arguments);
9801
9871
  const e2 = t2.filter((t3) => !t3.isEmpty());
9802
- this.pieceList = new Se(e2);
9872
+ this.pieceList = new Be(e2);
9803
9873
  }
9804
9874
  copy() {
9805
9875
  return this.copyWithPieceList(this.pieceList);
@@ -9952,12 +10022,12 @@
9952
10022
  return "rtl" === this.getDirection();
9953
10023
  }
9954
10024
  };
9955
- var Be = class _Be extends nt {
10025
+ var Oe = class _Oe extends nt {
9956
10026
  static fromJSON(t2) {
9957
- return new this(Te.fromJSON(t2.text), t2.attributes, t2.htmlAttributes);
10027
+ return new this(Ne.fromJSON(t2.text), t2.attributes, t2.htmlAttributes);
9958
10028
  }
9959
10029
  constructor(t2, e2, i2) {
9960
- super(...arguments), this.text = Fe(t2 || new Te()), this.attributes = e2 || [], this.htmlAttributes = i2 || {};
10030
+ super(...arguments), this.text = Me(t2 || new Ne()), this.attributes = e2 || [], this.htmlAttributes = i2 || {};
9961
10031
  }
9962
10032
  isEmpty() {
9963
10033
  return this.text.isBlockBreak();
@@ -9966,13 +10036,13 @@
9966
10036
  return !!super.isEqualTo(t2) || this.text.isEqualTo(null == t2 ? void 0 : t2.text) && rt(this.attributes, null == t2 ? void 0 : t2.attributes) && St(this.htmlAttributes, null == t2 ? void 0 : t2.htmlAttributes);
9967
10037
  }
9968
10038
  copyWithText(t2) {
9969
- return new _Be(t2, this.attributes, this.htmlAttributes);
10039
+ return new _Oe(t2, this.attributes, this.htmlAttributes);
9970
10040
  }
9971
10041
  copyWithoutText() {
9972
10042
  return this.copyWithText(null);
9973
10043
  }
9974
10044
  copyWithAttributes(t2) {
9975
- return new _Be(this.text, t2, this.htmlAttributes);
10045
+ return new _Oe(this.text, t2, this.htmlAttributes);
9976
10046
  }
9977
10047
  copyWithoutAttributes() {
9978
10048
  return this.copyWithAttributes(null);
@@ -9982,22 +10052,22 @@
9982
10052
  return e2 ? this.copyWithText(e2) : this.copyWithText(this.text.copyUsingObjectMap(t2));
9983
10053
  }
9984
10054
  addAttribute(t2) {
9985
- const e2 = this.attributes.concat(je(t2));
10055
+ const e2 = this.attributes.concat(He(t2));
9986
10056
  return this.copyWithAttributes(e2);
9987
10057
  }
9988
10058
  addHTMLAttribute(t2, e2) {
9989
10059
  const i2 = Object.assign({}, this.htmlAttributes, { [t2]: e2 });
9990
- return new _Be(this.text, this.attributes, i2);
10060
+ return new _Oe(this.text, this.attributes, i2);
9991
10061
  }
9992
10062
  removeAttribute(t2) {
9993
- const { listAttribute: e2 } = gt(t2), i2 = Ue(Ue(this.attributes, t2), e2);
10063
+ const { listAttribute: e2 } = gt(t2), i2 = _e(_e(this.attributes, t2), e2);
9994
10064
  return this.copyWithAttributes(i2);
9995
10065
  }
9996
10066
  removeLastAttribute() {
9997
10067
  return this.removeAttribute(this.getLastAttribute());
9998
10068
  }
9999
10069
  getLastAttribute() {
10000
- return We(this.attributes);
10070
+ return ze(this.attributes);
10001
10071
  }
10002
10072
  getAttributes() {
10003
10073
  return this.attributes.slice(0);
@@ -10015,7 +10085,7 @@
10015
10085
  return this.getAttributeLevel() > 0;
10016
10086
  }
10017
10087
  getLastNestableAttribute() {
10018
- return We(this.getNestableAttributes());
10088
+ return ze(this.getNestableAttributes());
10019
10089
  }
10020
10090
  getNestableAttributes() {
10021
10091
  return this.attributes.filter((t2) => gt(t2).nestable);
@@ -10030,7 +10100,7 @@
10030
10100
  increaseNestingLevel() {
10031
10101
  const t2 = this.getLastNestableAttribute();
10032
10102
  if (t2) {
10033
- const e2 = this.attributes.lastIndexOf(t2), i2 = ot(this.attributes, e2 + 1, 0, ...je(t2));
10103
+ const e2 = this.attributes.lastIndexOf(t2), i2 = ot(this.attributes, e2 + 1, 0, ...He(t2));
10034
10104
  return this.copyWithAttributes(i2);
10035
10105
  }
10036
10106
  return this;
@@ -10085,7 +10155,7 @@
10085
10155
  return !this.hasAttributes() && !t2.hasAttributes() && this.getDirection() === t2.getDirection();
10086
10156
  }
10087
10157
  consolidateWith(t2) {
10088
- const e2 = Te.textForStringWithAttributes("\n"), i2 = this.getTextWithoutBlockBreak().appendText(e2);
10158
+ const e2 = Ne.textForStringWithAttributes("\n"), i2 = this.getTextWithoutBlockBreak().appendText(e2);
10089
10159
  return this.copyWithText(i2.appendText(t2.text));
10090
10160
  }
10091
10161
  splitAtOffset(t2) {
@@ -10096,7 +10166,7 @@
10096
10166
  return this.text.getLength() - 1;
10097
10167
  }
10098
10168
  getTextWithoutBlockBreak() {
10099
- return Oe(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();
10169
+ return qe(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();
10100
10170
  }
10101
10171
  canBeGrouped(t2) {
10102
10172
  return this.attributes[t2];
@@ -10115,47 +10185,47 @@
10115
10185
  })().includes(i2[e2 + 1])) && (this.getDirection() === t2.getDirection() || t2.isEmpty());
10116
10186
  }
10117
10187
  };
10118
- var Fe = function(t2) {
10119
- return t2 = Pe(t2), t2 = Ne(t2);
10188
+ var Me = function(t2) {
10189
+ return t2 = je(t2), t2 = Ue(t2);
10120
10190
  };
10121
- var Pe = function(t2) {
10191
+ var je = function(t2) {
10122
10192
  let e2 = false;
10123
10193
  const i2 = t2.getPieces();
10124
10194
  let n2 = i2.slice(0, i2.length - 1);
10125
10195
  const r2 = i2[i2.length - 1];
10126
- return r2 ? (n2 = n2.map((t3) => t3.isBlockBreak() ? (e2 = true, Me(t3)) : t3), e2 ? new Te([...n2, r2]) : t2) : t2;
10196
+ return r2 ? (n2 = n2.map((t3) => t3.isBlockBreak() ? (e2 = true, Ve(t3)) : t3), e2 ? new Ne([...n2, r2]) : t2) : t2;
10127
10197
  };
10128
- var Ie = Te.textForStringWithAttributes("\n", { blockBreak: true });
10129
- var Ne = function(t2) {
10130
- return Oe(t2) ? t2 : t2.appendText(Ie);
10198
+ var We = Ne.textForStringWithAttributes("\n", { blockBreak: true });
10199
+ var Ue = function(t2) {
10200
+ return qe(t2) ? t2 : t2.appendText(We);
10131
10201
  };
10132
- var Oe = function(t2) {
10202
+ var qe = function(t2) {
10133
10203
  const e2 = t2.getLength();
10134
10204
  if (0 === e2)
10135
10205
  return false;
10136
10206
  return t2.getTextAtRange([e2 - 1, e2]).isBlockBreak();
10137
10207
  };
10138
- var Me = (t2) => t2.copyWithoutAttribute("blockBreak");
10139
- var je = function(t2) {
10208
+ var Ve = (t2) => t2.copyWithoutAttribute("blockBreak");
10209
+ var He = function(t2) {
10140
10210
  const { listAttribute: e2 } = gt(t2);
10141
10211
  return e2 ? [e2, t2] : [t2];
10142
10212
  };
10143
- var We = (t2) => t2.slice(-1)[0];
10144
- var Ue = function(t2, e2) {
10213
+ var ze = (t2) => t2.slice(-1)[0];
10214
+ var _e = function(t2, e2) {
10145
10215
  const i2 = t2.lastIndexOf(e2);
10146
10216
  return -1 === i2 ? t2 : ot(t2, i2, 1);
10147
10217
  };
10148
- var qe = class extends nt {
10218
+ var Je = class extends nt {
10149
10219
  static fromJSON(t2) {
10150
- return new this(Array.from(t2).map((t3) => Be.fromJSON(t3)));
10220
+ return new this(Array.from(t2).map((t3) => Oe.fromJSON(t3)));
10151
10221
  }
10152
10222
  static fromString(t2, e2) {
10153
- const i2 = Te.textForStringWithAttributes(t2, e2);
10154
- return new this([new Be(i2)]);
10223
+ const i2 = Ne.textForStringWithAttributes(t2, e2);
10224
+ return new this([new Oe(i2)]);
10155
10225
  }
10156
10226
  constructor() {
10157
10227
  let t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
10158
- super(...arguments), 0 === t2.length && (t2 = [new Be()]), this.blockList = Se.box(t2);
10228
+ super(...arguments), 0 === t2.length && (t2 = [new Oe()]), this.blockList = Be.box(t2);
10159
10229
  }
10160
10230
  isEmpty() {
10161
10231
  const t2 = this.getBlockAtIndex(0);
@@ -10282,7 +10352,7 @@
10282
10352
  let e2;
10283
10353
  t2 = Lt(t2);
10284
10354
  const [i2] = t2, { offset: n2 } = this.locationFromPosition(i2), r2 = this.removeTextAtRange(t2);
10285
- return 0 === n2 && (e2 = [new Be()]), new this.constructor(r2.blockList.insertSplittableListAtPosition(new Se(e2), i2));
10355
+ return 0 === n2 && (e2 = [new Oe()]), new this.constructor(r2.blockList.insertSplittableListAtPosition(new Be(e2), i2));
10286
10356
  }
10287
10357
  applyBlockAttributeAtRange(t2, e2, i2) {
10288
10358
  const n2 = this.expandRangeToLineBreaksAndSplitBlocks(i2);
@@ -10424,7 +10494,7 @@
10424
10494
  const e3 = [], i2 = [];
10425
10495
  return this.eachBlockAtRange(t2, function(t3, n2) {
10426
10496
  if (n2[0] !== n2[1])
10427
- return e3.push(t3.text.getCommonAttributesAtRange(n2)), i2.push(Ve(t3));
10497
+ return e3.push(t3.text.getCommonAttributesAtRange(n2)), i2.push(Ke(t3));
10428
10498
  }), zt.fromCommonAttributesOfObjects(e3).merge(zt.fromCommonAttributesOfObjects(i2)).toObject();
10429
10499
  }
10430
10500
  }
@@ -10433,7 +10503,7 @@
10433
10503
  const { index: n2, offset: r2 } = this.locationFromPosition(t2), o2 = this.getBlockAtIndex(n2);
10434
10504
  if (!o2)
10435
10505
  return {};
10436
- const s2 = Ve(o2), a2 = o2.text.getAttributesAtPosition(r2), l2 = o2.text.getAttributesAtPosition(r2 - 1), c2 = Object.keys(W).filter((t3) => W[t3].inheritable);
10506
+ const s2 = Ke(o2), a2 = o2.text.getAttributesAtPosition(r2), l2 = o2.text.getAttributesAtPosition(r2 - 1), c2 = Object.keys(W).filter((t3) => W[t3].inheritable);
10437
10507
  for (e2 in l2)
10438
10508
  i2 = l2[e2], (i2 === a2[e2] || c2.includes(e2)) && (s2[e2] = i2);
10439
10509
  return s2;
@@ -10563,84 +10633,17 @@
10563
10633
  return JSON.stringify(this.blockList.toArray().map((t2) => JSON.parse(t2.text.toConsole())));
10564
10634
  }
10565
10635
  };
10566
- var Ve = function(t2) {
10636
+ var Ke = function(t2) {
10567
10637
  const e2 = {}, i2 = t2.getLastAttribute();
10568
10638
  return i2 && (e2[i2] = true), e2;
10569
10639
  };
10570
- var He = "style href src width height language class".split(" ");
10571
- var ze = "javascript:".split(" ");
10572
- var _e = "script iframe form noscript".split(" ");
10573
- var Je = class extends H {
10574
- static sanitize(t2, e2) {
10575
- const i2 = new this(t2, e2);
10576
- return i2.sanitize(), i2;
10577
- }
10578
- constructor(t2) {
10579
- let { allowedAttributes: e2, forbiddenProtocols: i2, forbiddenElements: n2 } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
10580
- super(...arguments), this.allowedAttributes = e2 || He, this.forbiddenProtocols = i2 || ze, this.forbiddenElements = n2 || _e, this.body = Ke(t2);
10581
- }
10582
- sanitize() {
10583
- return this.sanitizeElements(), this.normalizeListElementNesting();
10584
- }
10585
- getHTML() {
10586
- return this.body.innerHTML;
10587
- }
10588
- getBody() {
10589
- return this.body;
10590
- }
10591
- sanitizeElements() {
10592
- const t2 = R(this.body), e2 = [];
10593
- for (; t2.nextNode(); ) {
10594
- const i2 = t2.currentNode;
10595
- switch (i2.nodeType) {
10596
- case Node.ELEMENT_NODE:
10597
- this.elementIsRemovable(i2) ? e2.push(i2) : this.sanitizeElement(i2);
10598
- break;
10599
- case Node.COMMENT_NODE:
10600
- e2.push(i2);
10601
- }
10602
- }
10603
- return e2.forEach((t3) => k(t3)), this.body;
10604
- }
10605
- sanitizeElement(t2) {
10606
- return t2.hasAttribute("href") && this.forbiddenProtocols.includes(t2.protocol) && t2.removeAttribute("href"), Array.from(t2.attributes).forEach((e2) => {
10607
- let { name: i2 } = e2;
10608
- this.allowedAttributes.includes(i2) || 0 === i2.indexOf("data-trix") || t2.removeAttribute(i2);
10609
- }), t2;
10610
- }
10611
- normalizeListElementNesting() {
10612
- return Array.from(this.body.querySelectorAll("ul,ol")).forEach((t2) => {
10613
- const e2 = t2.previousElementSibling;
10614
- e2 && "li" === E(e2) && e2.appendChild(t2);
10615
- }), this.body;
10616
- }
10617
- elementIsRemovable(t2) {
10618
- if ((null == t2 ? void 0 : t2.nodeType) === Node.ELEMENT_NODE)
10619
- return this.elementIsForbidden(t2) || this.elementIsntSerializable(t2);
10620
- }
10621
- elementIsForbidden(t2) {
10622
- return this.forbiddenElements.includes(E(t2));
10623
- }
10624
- elementIsntSerializable(t2) {
10625
- return "false" === t2.getAttribute("data-trix-serialize") && !I(t2);
10626
- }
10627
- };
10628
- var Ke = function() {
10629
- let t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
10630
- t2 = t2.replace(/<\/html[^>]*>[^]*$/i, "</html>");
10631
- const e2 = document.implementation.createHTMLDocument("");
10632
- return e2.documentElement.innerHTML = t2, Array.from(e2.head.querySelectorAll("style")).forEach((t3) => {
10633
- e2.body.appendChild(t3);
10634
- }), e2.body;
10635
- };
10636
10640
  var Ge = function(t2) {
10637
10641
  let e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
10638
10642
  return { string: t2 = Wt(t2), attributes: e2, type: "string" };
10639
10643
  };
10640
10644
  var $e = (t2, e2) => {
10641
10645
  try {
10642
- const i2 = JSON.parse(t2.getAttribute("data-trix-".concat(e2)));
10643
- return "text/html" === i2.contentType && i2.content && (i2.content = Je.sanitize(i2.content).getHTML()), i2;
10646
+ return JSON.parse(t2.getAttribute("data-trix-".concat(e2)));
10644
10647
  } catch (t3) {
10645
10648
  return {};
10646
10649
  }
@@ -10655,16 +10658,14 @@
10655
10658
  super(...arguments), this.html = t2, this.referenceElement = e2, this.blocks = [], this.blockElements = [], this.processedElements = [];
10656
10659
  }
10657
10660
  getDocument() {
10658
- return qe.fromJSON(this.blocks);
10661
+ return Je.fromJSON(this.blocks);
10659
10662
  }
10660
10663
  parse() {
10661
10664
  try {
10662
- this.createHiddenContainer();
10663
- const t2 = Je.sanitize(this.html).getHTML();
10664
- this.containerElement.innerHTML = t2;
10665
- const e2 = R(this.containerElement, { usingFilter: ti });
10666
- for (; e2.nextNode(); )
10667
- this.processNode(e2.currentNode);
10665
+ this.createHiddenContainer(), se.setHTML(this.containerElement, this.html);
10666
+ const t2 = R(this.containerElement, { usingFilter: ti });
10667
+ for (; t2.nextNode(); )
10668
+ this.processNode(t2.currentNode);
10668
10669
  return this.translateBlockElementMarginsToNewlines();
10669
10670
  } finally {
10670
10671
  this.removeHiddenContainer();
@@ -10913,7 +10914,7 @@
10913
10914
  var ai = new RegExp("<!--block-->", "g");
10914
10915
  var li = { "application/json": function(t2) {
10915
10916
  let e2;
10916
- if (t2 instanceof qe)
10917
+ if (t2 instanceof Je)
10917
10918
  e2 = t2;
10918
10919
  else {
10919
10920
  if (!(t2 instanceof HTMLElement))
@@ -10923,8 +10924,8 @@
10923
10924
  return e2.toSerializableDocument().toJSONString();
10924
10925
  }, "text/html": function(t2) {
10925
10926
  let e2;
10926
- if (t2 instanceof qe)
10927
- e2 = ge.render(t2);
10927
+ if (t2 instanceof Je)
10928
+ e2 = ve.render(t2);
10928
10929
  else {
10929
10930
  if (!(t2 instanceof HTMLElement))
10930
10931
  throw new Error("unserializable object");
@@ -11013,7 +11014,7 @@
11013
11014
  };
11014
11015
  var gi = class extends H {
11015
11016
  constructor() {
11016
- super(...arguments), this.document = new qe(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;
11017
+ super(...arguments), this.document = new Je(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;
11017
11018
  }
11018
11019
  setDocument(t2) {
11019
11020
  var e2, i2;
@@ -11026,7 +11027,7 @@
11026
11027
  loadSnapshot(t2) {
11027
11028
  var e2, i2, n2, r2;
11028
11029
  let { document: o2, selectedRange: s2 } = t2;
11029
- return null === (e2 = this.delegate) || void 0 === e2 || null === (i2 = e2.compositionWillLoadSnapshot) || void 0 === i2 || i2.call(e2), this.setDocument(null != o2 ? o2 : new qe()), this.setSelection(null != s2 ? s2 : [0, 0]), null === (n2 = this.delegate) || void 0 === n2 || null === (r2 = n2.compositionDidLoadSnapshot) || void 0 === r2 ? void 0 : r2.call(n2);
11030
+ return null === (e2 = this.delegate) || void 0 === e2 || null === (i2 = e2.compositionWillLoadSnapshot) || void 0 === i2 || i2.call(e2), this.setDocument(null != o2 ? o2 : new Je()), this.setSelection(null != s2 ? s2 : [0, 0]), null === (n2 = this.delegate) || void 0 === n2 || null === (r2 = n2.compositionDidLoadSnapshot) || void 0 === r2 ? void 0 : r2.call(n2);
11030
11031
  }
11031
11032
  insertText(t2) {
11032
11033
  let { updatePosition: e2 } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : { updatePosition: true };
@@ -11036,19 +11037,19 @@
11036
11037
  return e2 && this.setSelection(r2), this.notifyDelegateOfInsertionAtRange([n2, r2]);
11037
11038
  }
11038
11039
  insertBlock() {
11039
- let t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Be();
11040
- const e2 = new qe([t2]);
11040
+ let t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Oe();
11041
+ const e2 = new Je([t2]);
11041
11042
  return this.insertDocument(e2);
11042
11043
  }
11043
11044
  insertDocument() {
11044
- let t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new qe();
11045
+ let t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Je();
11045
11046
  const e2 = this.getSelectedRange();
11046
11047
  this.setDocument(this.document.insertDocumentAtRange(t2, e2));
11047
11048
  const i2 = e2[0], n2 = i2 + t2.getLength();
11048
11049
  return this.setSelection(n2), this.notifyDelegateOfInsertionAtRange([i2, n2]);
11049
11050
  }
11050
11051
  insertString(t2, e2) {
11051
- const i2 = this.getCurrentTextAttributes(), n2 = Te.textForStringWithAttributes(t2, i2);
11052
+ const i2 = this.getCurrentTextAttributes(), n2 = Ne.textForStringWithAttributes(t2, i2);
11052
11053
  return this.insertText(n2, e2);
11053
11054
  }
11054
11055
  insertBlockBreak() {
@@ -11062,7 +11063,7 @@
11062
11063
  if (t2.shouldDecreaseListLevel())
11063
11064
  return this.decreaseListLevel(), this.setSelection(t2.startPosition);
11064
11065
  if (t2.shouldPrependListItem()) {
11065
- const e2 = new qe([t2.block.copyWithoutText()]);
11066
+ const e2 = new Je([t2.block.copyWithoutText()]);
11066
11067
  return this.insertDocument(e2);
11067
11068
  }
11068
11069
  return t2.shouldInsertBlockBreak() ? this.insertBlockBreak() : t2.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : t2.shouldBreakFormattedBlock() ? this.breakFormattedBlock(t2) : this.insertString("\n");
@@ -11085,7 +11086,7 @@
11085
11086
  return Array.from(t2).forEach((t3) => {
11086
11087
  var i2;
11087
11088
  if (null !== (i2 = this.delegate) && void 0 !== i2 && i2.compositionShouldAcceptFile(t3)) {
11088
- const i3 = ke.attachmentForFile(t3);
11089
+ const i3 = De.attachmentForFile(t3);
11089
11090
  e2.push(i3);
11090
11091
  }
11091
11092
  }), this.insertAttachments(e2);
@@ -11094,12 +11095,12 @@
11094
11095
  return this.insertAttachments([t2]);
11095
11096
  }
11096
11097
  insertAttachments(t2) {
11097
- let e2 = new Te();
11098
+ let e2 = new Ne();
11098
11099
  return Array.from(t2).forEach((t3) => {
11099
11100
  var n2;
11100
11101
  const r2 = t3.getType(), o2 = null === (n2 = i[r2]) || void 0 === n2 ? void 0 : n2.presentation, s2 = this.getCurrentTextAttributes();
11101
11102
  o2 && (s2.presentation = o2);
11102
- const a2 = Te.textForAttachmentWithAttributes(t3, s2);
11103
+ const a2 = Ne.textForAttachmentWithAttributes(t3, s2);
11103
11104
  e2 = e2.appendText(a2);
11104
11105
  }), this.insertText(e2);
11105
11106
  }
@@ -11193,7 +11194,7 @@
11193
11194
  if (n2 !== r2)
11194
11195
  return this.setDocument(this.document.addAttributeAtRange(t2, e2, i2));
11195
11196
  if ("href" === t2) {
11196
- const t3 = Te.textForStringWithAttributes(e2, { href: e2 });
11197
+ const t3 = Ne.textForStringWithAttributes(e2, { href: e2 });
11197
11198
  return this.insertText(t3);
11198
11199
  }
11199
11200
  }
@@ -11455,7 +11456,7 @@
11455
11456
  const { block: i2 } = t2;
11456
11457
  let n2 = t2.startPosition, r2 = [n2 - 1, n2];
11457
11458
  i2.getBlockBreakPosition() === t2.startLocation.offset ? (i2.breaksOnReturn() && "\n" === t2.nextCharacter ? n2 += 1 : e2 = e2.removeTextAtRange(r2), r2 = [n2, n2]) : "\n" === t2.nextCharacter ? "\n" === t2.previousCharacter ? r2 = [n2 - 1, n2 + 1] : (r2 = [n2, n2 + 1], n2 += 1) : t2.startLocation.offset - 1 != 0 && (n2 += 1);
11458
- const o2 = new qe([i2.removeLastAttribute().copyWithoutText()]);
11459
+ const o2 = new Je([i2.removeLastAttribute().copyWithoutText()]);
11459
11460
  return this.setDocument(e2.insertDocumentAtRange(o2, r2)), this.setSelection(n2);
11460
11461
  }
11461
11462
  getPreviousBlock() {
@@ -11577,7 +11578,7 @@
11577
11578
  }
11578
11579
  loadJSON(t2) {
11579
11580
  let { document: e2, selectedRange: i2 } = t2;
11580
- return e2 = qe.fromJSON(e2), this.loadSnapshot({ document: e2, selectedRange: i2 });
11581
+ return e2 = Je.fromJSON(e2), this.loadSnapshot({ document: e2, selectedRange: i2 });
11581
11582
  }
11582
11583
  loadSnapshot(t2) {
11583
11584
  return this.undoManager = new mi(this.composition), this.composition.loadSnapshot(t2);
@@ -11919,8 +11920,8 @@
11919
11920
  }
11920
11921
  };
11921
11922
  Li.proxyMethod("locationMapper.findLocationFromContainerAndOffset"), Li.proxyMethod("locationMapper.findContainerAndOffsetFromLocation"), Li.proxyMethod("locationMapper.findNodeAndOffsetFromLocation"), Li.proxyMethod("pointMapper.createDOMRangeFromPoint"), Li.proxyMethod("pointMapper.getClientRectsForDOMRange");
11922
- var Di = Object.freeze({ __proto__: null, Attachment: ke, AttachmentManager: hi, AttachmentPiece: Re, Block: Be, Composition: gi, Document: qe, Editor: xi, HTMLParser: Xe, HTMLSanitizer: Je, LineBreakInsertion: di, LocationMapper: yi, ManagedAttachment: ui, Piece: ye, PointMapper: Si, SelectionManager: Li, SplittableList: Se, StringPiece: Ee, Text: Te, UndoManager: mi });
11923
- var wi = Object.freeze({ __proto__: null, ObjectView: ee, AttachmentView: re, BlockView: de, DocumentView: ge, PieceView: le, PreviewableAttachmentView: ae, TextView: ce });
11923
+ var Di = Object.freeze({ __proto__: null, Attachment: De, AttachmentManager: hi, AttachmentPiece: we, Block: Oe, Composition: gi, Document: Je, Editor: xi, HTMLParser: Xe, HTMLSanitizer: se, LineBreakInsertion: di, LocationMapper: yi, ManagedAttachment: ui, Piece: Se, PointMapper: Si, SelectionManager: Li, SplittableList: Be, StringPiece: Te, Text: Ne, UndoManager: mi });
11924
+ var wi = Object.freeze({ __proto__: null, ObjectView: ee, AttachmentView: ce, BlockView: be, DocumentView: ve, PieceView: ge, PreviewableAttachmentView: de, TextView: me });
11924
11925
  var { lang: Ti, css: Bi, keyNames: Fi } = V;
11925
11926
  var Pi = function(t2) {
11926
11927
  return function() {
@@ -11931,12 +11932,12 @@
11931
11932
  var Ii = class extends H {
11932
11933
  constructor(t2, e2, i2) {
11933
11934
  let n2 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};
11934
- super(...arguments), Ae(this, "makeElementMutable", Pi(() => ({ do: () => {
11935
+ super(...arguments), Re(this, "makeElementMutable", Pi(() => ({ do: () => {
11935
11936
  this.element.dataset.trixMutable = true;
11936
- }, undo: () => delete this.element.dataset.trixMutable }))), Ae(this, "addToolbar", Pi(() => {
11937
+ }, undo: () => delete this.element.dataset.trixMutable }))), Re(this, "addToolbar", Pi(() => {
11937
11938
  const t3 = S({ tagName: "div", className: Bi.attachmentToolbar, data: { trixMutable: true }, childNodes: S({ tagName: "div", className: "trix-button-row", childNodes: S({ tagName: "span", className: "trix-button-group trix-button-group--actions", childNodes: S({ tagName: "button", className: "trix-button trix-button--remove", textContent: Ti.remove, attributes: { title: Ti.remove }, data: { trixAction: "remove" } }) }) }) });
11938
11939
  return this.attachment.isPreviewable() && t3.appendChild(S({ tagName: "div", className: Bi.attachmentMetadataContainer, childNodes: S({ tagName: "span", className: Bi.attachmentMetadata, childNodes: [S({ tagName: "span", className: Bi.attachmentName, textContent: this.attachment.getFilename(), attributes: { title: this.attachment.getFilename() } }), S({ tagName: "span", className: Bi.attachmentSize, textContent: this.attachment.getFormattedFilesize() })] }) })), f("click", { onElement: t3, withCallback: this.didClickToolbar }), f("click", { onElement: t3, matchingSelector: "[data-trix-action]", withCallback: this.didClickActionButton }), b("trix-attachment-before-toolbar", { onElement: this.element, attributes: { toolbar: t3, attachment: this.attachment } }), { do: () => this.element.appendChild(t3), undo: () => k(t3) };
11939
- })), Ae(this, "installCaptionEditor", Pi(() => {
11940
+ })), Re(this, "installCaptionEditor", Pi(() => {
11940
11941
  const t3 = S({ tagName: "textarea", className: Bi.attachmentCaptionEditor, attributes: { placeholder: Ti.captionPlaceholder }, data: { trixMutable: true } });
11941
11942
  t3.value = this.attachmentPiece.getCaption();
11942
11943
  const e3 = t3.cloneNode();
@@ -11999,7 +12000,7 @@
11999
12000
  };
12000
12001
  var Ni = class extends H {
12001
12002
  constructor(t2, i2) {
12002
- super(...arguments), this.didFocus = this.didFocus.bind(this), this.didBlur = this.didBlur.bind(this), this.didClickAttachment = this.didClickAttachment.bind(this), this.element = t2, this.composition = i2, this.documentView = new ge(this.composition.document, { element: this.element }), f("focus", { onElement: this.element, withCallback: this.didFocus }), f("blur", { onElement: this.element, withCallback: this.didBlur }), f("click", { onElement: this.element, matchingSelector: "a[contenteditable=false]", preventDefault: true }), f("mousedown", { onElement: this.element, matchingSelector: e, withCallback: this.didClickAttachment }), f("click", { onElement: this.element, matchingSelector: "a".concat(e), preventDefault: true });
12003
+ super(...arguments), this.didFocus = this.didFocus.bind(this), this.didBlur = this.didBlur.bind(this), this.didClickAttachment = this.didClickAttachment.bind(this), this.element = t2, this.composition = i2, this.documentView = new ve(this.composition.document, { element: this.element }), f("focus", { onElement: this.element, withCallback: this.didFocus }), f("blur", { onElement: this.element, withCallback: this.didBlur }), f("click", { onElement: this.element, matchingSelector: "a[contenteditable=false]", preventDefault: true }), f("mousedown", { onElement: this.element, matchingSelector: e, withCallback: this.didClickAttachment }), f("click", { onElement: this.element, matchingSelector: "a".concat(e), preventDefault: true });
12003
12004
  }
12004
12005
  didFocus(t2) {
12005
12006
  var e2;
@@ -12298,7 +12299,7 @@
12298
12299
  }
12299
12300
  };
12300
12301
  var Gi;
12301
- Ae(Ki, "events", {});
12302
+ Re(Ki, "events", {});
12302
12303
  var { browser: $i, keyNames: Xi } = V;
12303
12304
  var Yi = 0;
12304
12305
  var Qi = class extends Ki {
@@ -12377,7 +12378,7 @@
12377
12378
  }(t2))
12378
12379
  return;
12379
12380
  const i2 = null === (e2 = this.responder) || void 0 === e2 ? void 0 : e2.getSelectedDocument().toSerializableDocument();
12380
- return t2.setData("application/x-trix-document", JSON.stringify(i2)), t2.setData("text/html", ge.render(i2).innerHTML), t2.setData("text/plain", i2.toString().replace(/\n$/, "")), true;
12381
+ return t2.setData("application/x-trix-document", JSON.stringify(i2)), t2.setData("text/html", ve.render(i2).innerHTML), t2.setData("text/plain", i2.toString().replace(/\n$/, "")), true;
12381
12382
  }
12382
12383
  canAcceptDataTransfer(t2) {
12383
12384
  const e2 = {};
@@ -12393,7 +12394,7 @@
12393
12394
  });
12394
12395
  }
12395
12396
  };
12396
- Ae(Qi, "events", { keydown(t2) {
12397
+ Re(Qi, "events", { keydown(t2) {
12397
12398
  this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = true;
12398
12399
  const e2 = Xi[t2.keyCode];
12399
12400
  if (e2) {
@@ -12459,7 +12460,7 @@
12459
12460
  null === (s2 = this.delegate) || void 0 === s2 || s2.inputControllerWillMoveText(), null === (a2 = this.responder) || void 0 === a2 || a2.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender();
12460
12461
  } else if (r2) {
12461
12462
  var l2;
12462
- const t3 = qe.fromJSONString(r2);
12463
+ const t3 = Je.fromJSONString(r2);
12463
12464
  null === (l2 = this.responder) || void 0 === l2 || l2.insertDocument(t3), this.requestRender();
12464
12465
  }
12465
12466
  this.draggedRange = null, this.draggingPoint = null;
@@ -12508,7 +12509,7 @@
12508
12509
  this.inputSummary.didInput = true;
12509
12510
  }, input(t2) {
12510
12511
  return this.inputSummary.didInput = true, t2.stopPropagation();
12511
- } }), Ae(Qi, "keys", { backspace(t2) {
12512
+ } }), Re(Qi, "keys", { backspace(t2) {
12512
12513
  var e2;
12513
12514
  return null === (e2 = this.delegate) || void 0 === e2 || e2.inputControllerWillPerformTyping(), this.deleteInDirection("backward", t2);
12514
12515
  }, delete(t2) {
@@ -12675,7 +12676,7 @@
12675
12676
  const n2 = () => {
12676
12677
  var e3;
12677
12678
  return null === (e3 = this.responder) || void 0 === e3 ? void 0 : e3.deleteInDirection(t2);
12678
- }, r2 = this.getTargetDOMRange({ minLength: 2 });
12679
+ }, r2 = this.getTargetDOMRange({ minLength: this.composing ? 1 : 2 });
12679
12680
  return r2 ? this.withTargetDOMRange(r2, n2) : n2();
12680
12681
  }
12681
12682
  withTargetDOMRange(t2, e2) {
@@ -12703,10 +12704,10 @@
12703
12704
  return i2;
12704
12705
  }
12705
12706
  };
12706
- Ae(on, "events", { keydown(t2) {
12707
+ Re(on, "events", { keydown(t2) {
12707
12708
  if (kt(t2)) {
12708
12709
  var e2;
12709
- const i2 = un(t2);
12710
+ const i2 = hn(t2);
12710
12711
  null !== (e2 = this.delegate) && void 0 !== e2 && e2.inputControllerDidReceiveKeyboardCommand(i2) && t2.preventDefault();
12711
12712
  } else {
12712
12713
  let e3 = t2.key;
@@ -12719,7 +12720,7 @@
12719
12720
  var e2;
12720
12721
  let i2;
12721
12722
  const n2 = null === (e2 = t2.clipboardData) || void 0 === e2 ? void 0 : e2.getData("URL");
12722
- return ln(t2) ? (t2.preventDefault(), this.attachFiles(t2.clipboardData.files)) : cn(t2) ? (t2.preventDefault(), i2 = { type: "text/plain", string: t2.clipboardData.getData("text/plain") }, null === (r2 = this.delegate) || void 0 === r2 || r2.inputControllerWillPaste(i2), null === (o2 = this.responder) || void 0 === o2 || o2.insertString(i2.string), this.render(), null === (s2 = this.delegate) || void 0 === s2 ? void 0 : s2.inputControllerDidPaste(i2)) : n2 ? (t2.preventDefault(), i2 = { type: "text/html", html: this.createLinkHTML(n2) }, null === (a2 = this.delegate) || void 0 === a2 || a2.inputControllerWillPaste(i2), null === (l2 = this.responder) || void 0 === l2 || l2.insertHTML(i2.html), this.render(), null === (c2 = this.delegate) || void 0 === c2 ? void 0 : c2.inputControllerDidPaste(i2)) : void 0;
12723
+ return cn(t2) ? (t2.preventDefault(), this.attachFiles(t2.clipboardData.files)) : un(t2) ? (t2.preventDefault(), i2 = { type: "text/plain", string: t2.clipboardData.getData("text/plain") }, null === (r2 = this.delegate) || void 0 === r2 || r2.inputControllerWillPaste(i2), null === (o2 = this.responder) || void 0 === o2 || o2.insertString(i2.string), this.render(), null === (s2 = this.delegate) || void 0 === s2 ? void 0 : s2.inputControllerDidPaste(i2)) : n2 ? (t2.preventDefault(), i2 = { type: "text/html", html: this.createLinkHTML(n2) }, null === (a2 = this.delegate) || void 0 === a2 || a2.inputControllerWillPaste(i2), null === (l2 = this.responder) || void 0 === l2 || l2.insertHTML(i2.html), this.render(), null === (c2 = this.delegate) || void 0 === c2 ? void 0 : c2.inputControllerDidPaste(i2)) : void 0;
12723
12724
  var r2, o2, s2, a2, l2, c2;
12724
12725
  }, beforeinput(t2) {
12725
12726
  const e2 = this.constructor.inputTypes[t2.inputType];
@@ -12728,13 +12729,13 @@
12728
12729
  Pt.reset();
12729
12730
  }, dragstart(t2) {
12730
12731
  var e2, i2;
12731
- null !== (e2 = this.responder) && void 0 !== e2 && e2.selectionContainsAttachments() && (t2.dataTransfer.setData("application/x-trix-dragging", true), this.dragging = { range: null === (i2 = this.responder) || void 0 === i2 ? void 0 : i2.getSelectedRange(), point: hn(t2) });
12732
+ null !== (e2 = this.responder) && void 0 !== e2 && e2.selectionContainsAttachments() && (t2.dataTransfer.setData("application/x-trix-dragging", true), this.dragging = { range: null === (i2 = this.responder) || void 0 === i2 ? void 0 : i2.getSelectedRange(), point: dn(t2) });
12732
12733
  }, dragenter(t2) {
12733
12734
  an(t2) && t2.preventDefault();
12734
12735
  }, dragover(t2) {
12735
12736
  if (this.dragging) {
12736
12737
  t2.preventDefault();
12737
- const i2 = hn(t2);
12738
+ const i2 = dn(t2);
12738
12739
  var e2;
12739
12740
  if (!St(i2, this.dragging.point))
12740
12741
  return this.dragging.point = i2, null === (e2 = this.responder) || void 0 === e2 ? void 0 : e2.setLocationRangeFromPointRange(i2);
@@ -12747,7 +12748,7 @@
12747
12748
  if (an(t2)) {
12748
12749
  var n2;
12749
12750
  t2.preventDefault();
12750
- const e3 = hn(t2);
12751
+ const e3 = dn(t2);
12751
12752
  return null === (n2 = this.responder) || void 0 === n2 || n2.setLocationRangeFromPointRange(e3), this.attachFiles(t2.dataTransfer.files);
12752
12753
  }
12753
12754
  }, dragend() {
@@ -12755,7 +12756,7 @@
12755
12756
  this.dragging && (null === (t2 = this.responder) || void 0 === t2 || t2.setSelectedRange(this.dragging.range), this.dragging = null);
12756
12757
  }, compositionend(t2) {
12757
12758
  this.composing && (this.composing = false, a.recentAndroid || this.scheduleRender());
12758
- } }), Ae(on, "keys", { ArrowLeft() {
12759
+ } }), Re(on, "keys", { ArrowLeft() {
12759
12760
  var t2, e2;
12760
12761
  if (null !== (t2 = this.responder) && void 0 !== t2 && t2.shouldManageMovingCursorInDirection("backward"))
12761
12762
  return this.event.preventDefault(), null === (e2 = this.responder) || void 0 === e2 ? void 0 : e2.moveCursorInDirection("backward");
@@ -12775,7 +12776,7 @@
12775
12776
  var t2, e2;
12776
12777
  if (null !== (t2 = this.responder) && void 0 !== t2 && t2.canDecreaseNestingLevel())
12777
12778
  return this.event.preventDefault(), null === (e2 = this.responder) || void 0 === e2 || e2.decreaseNestingLevel(), this.render();
12778
- } }), Ae(on, "inputTypes", { deleteByComposition() {
12779
+ } }), Re(on, "inputTypes", { deleteByComposition() {
12779
12780
  return this.deleteInDirection("backward", { recordUndoEntry: false });
12780
12781
  }, deleteByCut() {
12781
12782
  return this.deleteInDirection("backward");
@@ -12876,46 +12877,45 @@
12876
12877
  return null === (e3 = this.responder) || void 0 === e3 ? void 0 : e3.moveTextFromRange(t2);
12877
12878
  });
12878
12879
  }, insertFromPaste() {
12879
- var t2;
12880
- const { dataTransfer: e2 } = this.event, i2 = { dataTransfer: e2 }, n2 = e2.getData("URL"), r2 = e2.getData("text/html");
12881
- if (n2) {
12882
- var o2;
12883
- let t3;
12884
- this.event.preventDefault(), i2.type = "text/html";
12885
- const r3 = e2.getData("public.url-name");
12886
- t3 = r3 ? qt(r3).trim() : n2, i2.html = this.createLinkHTML(n2, t3), null === (o2 = this.delegate) || void 0 === o2 || o2.inputControllerWillPaste(i2), this.withTargetDOMRange(function() {
12887
- var t4;
12888
- return null === (t4 = this.responder) || void 0 === t4 ? void 0 : t4.insertHTML(i2.html);
12880
+ const { dataTransfer: t2 } = this.event, e2 = { dataTransfer: t2 }, i2 = t2.getData("URL"), n2 = t2.getData("text/html");
12881
+ if (i2) {
12882
+ var r2;
12883
+ let n3;
12884
+ this.event.preventDefault(), e2.type = "text/html";
12885
+ const o3 = t2.getData("public.url-name");
12886
+ n3 = o3 ? qt(o3).trim() : i2, e2.html = this.createLinkHTML(i2, n3), null === (r2 = this.delegate) || void 0 === r2 || r2.inputControllerWillPaste(e2), this.withTargetDOMRange(function() {
12887
+ var t3;
12888
+ return null === (t3 = this.responder) || void 0 === t3 ? void 0 : t3.insertHTML(e2.html);
12889
12889
  }), this.afterRender = () => {
12890
- var t4;
12891
- return null === (t4 = this.delegate) || void 0 === t4 ? void 0 : t4.inputControllerDidPaste(i2);
12890
+ var t3;
12891
+ return null === (t3 = this.delegate) || void 0 === t3 ? void 0 : t3.inputControllerDidPaste(e2);
12892
12892
  };
12893
- } else if (Ct(e2)) {
12894
- var s2;
12895
- i2.type = "text/plain", i2.string = e2.getData("text/plain"), null === (s2 = this.delegate) || void 0 === s2 || s2.inputControllerWillPaste(i2), this.withTargetDOMRange(function() {
12893
+ } else if (Ct(t2)) {
12894
+ var o2;
12895
+ e2.type = "text/plain", e2.string = t2.getData("text/plain"), null === (o2 = this.delegate) || void 0 === o2 || o2.inputControllerWillPaste(e2), this.withTargetDOMRange(function() {
12896
12896
  var t3;
12897
- return null === (t3 = this.responder) || void 0 === t3 ? void 0 : t3.insertString(i2.string);
12897
+ return null === (t3 = this.responder) || void 0 === t3 ? void 0 : t3.insertString(e2.string);
12898
12898
  }), this.afterRender = () => {
12899
12899
  var t3;
12900
- return null === (t3 = this.delegate) || void 0 === t3 ? void 0 : t3.inputControllerDidPaste(i2);
12900
+ return null === (t3 = this.delegate) || void 0 === t3 ? void 0 : t3.inputControllerDidPaste(e2);
12901
12901
  };
12902
- } else if (r2) {
12903
- var a2;
12904
- this.event.preventDefault(), i2.type = "text/html", i2.html = r2, null === (a2 = this.delegate) || void 0 === a2 || a2.inputControllerWillPaste(i2), this.withTargetDOMRange(function() {
12902
+ } else if (ln(this.event)) {
12903
+ var s2;
12904
+ e2.type = "File", e2.file = t2.files[0], null === (s2 = this.delegate) || void 0 === s2 || s2.inputControllerWillPaste(e2), this.withTargetDOMRange(function() {
12905
12905
  var t3;
12906
- return null === (t3 = this.responder) || void 0 === t3 ? void 0 : t3.insertHTML(i2.html);
12906
+ return null === (t3 = this.responder) || void 0 === t3 ? void 0 : t3.insertFile(e2.file);
12907
12907
  }), this.afterRender = () => {
12908
12908
  var t3;
12909
- return null === (t3 = this.delegate) || void 0 === t3 ? void 0 : t3.inputControllerDidPaste(i2);
12909
+ return null === (t3 = this.delegate) || void 0 === t3 ? void 0 : t3.inputControllerDidPaste(e2);
12910
12910
  };
12911
- } else if (null !== (t2 = e2.files) && void 0 !== t2 && t2.length) {
12912
- var l2;
12913
- i2.type = "File", i2.file = e2.files[0], null === (l2 = this.delegate) || void 0 === l2 || l2.inputControllerWillPaste(i2), this.withTargetDOMRange(function() {
12911
+ } else if (n2) {
12912
+ var a2;
12913
+ this.event.preventDefault(), e2.type = "text/html", e2.html = n2, null === (a2 = this.delegate) || void 0 === a2 || a2.inputControllerWillPaste(e2), this.withTargetDOMRange(function() {
12914
12914
  var t3;
12915
- return null === (t3 = this.responder) || void 0 === t3 ? void 0 : t3.insertFile(i2.file);
12915
+ return null === (t3 = this.responder) || void 0 === t3 ? void 0 : t3.insertHTML(e2.html);
12916
12916
  }), this.afterRender = () => {
12917
12917
  var t3;
12918
- return null === (t3 = this.delegate) || void 0 === t3 ? void 0 : t3.inputControllerDidPaste(i2);
12918
+ return null === (t3 = this.delegate) || void 0 === t3 ? void 0 : t3.inputControllerDidPaste(e2);
12919
12919
  };
12920
12920
  }
12921
12921
  }, insertFromYank() {
@@ -12953,52 +12953,60 @@
12953
12953
  var e2;
12954
12954
  return Array.from((null === (e2 = t2.dataTransfer) || void 0 === e2 ? void 0 : e2.types) || []).includes("Files");
12955
12955
  };
12956
- var ln = function(t2) {
12957
- const e2 = t2.clipboardData;
12958
- if (e2)
12959
- return e2.types.includes("Files") && 1 === e2.types.length && e2.files.length >= 1;
12956
+ var ln = (t2) => {
12957
+ var e2;
12958
+ return (null === (e2 = t2.dataTransfer.files) || void 0 === e2 ? void 0 : e2[0]) && !cn(t2) && !((t3) => {
12959
+ let { dataTransfer: e3 } = t3;
12960
+ return e3.types.includes("Files") && e3.types.includes("text/html") && e3.getData("text/html").includes("urn:schemas-microsoft-com:office:office");
12961
+ })(t2);
12960
12962
  };
12961
12963
  var cn = function(t2) {
12964
+ const e2 = t2.clipboardData;
12965
+ if (e2) {
12966
+ return Array.from(e2.types).filter((t3) => t3.match(/file/i)).length === e2.types.length && e2.files.length >= 1;
12967
+ }
12968
+ };
12969
+ var un = function(t2) {
12962
12970
  const e2 = t2.clipboardData;
12963
12971
  if (e2)
12964
12972
  return e2.types.includes("text/plain") && 1 === e2.types.length;
12965
12973
  };
12966
- var un = function(t2) {
12974
+ var hn = function(t2) {
12967
12975
  const e2 = [];
12968
12976
  return t2.altKey && e2.push("alt"), t2.shiftKey && e2.push("shift"), e2.push(t2.key), e2;
12969
12977
  };
12970
- var hn = (t2) => ({ x: t2.clientX, y: t2.clientY });
12971
- var dn = "[data-trix-attribute]";
12972
- var gn = "[data-trix-action]";
12973
- var mn = "".concat(dn, ", ").concat(gn);
12974
- var pn = "[data-trix-dialog]";
12975
- var fn = "".concat(pn, "[data-trix-active]");
12976
- var bn = "".concat(pn, " [data-trix-method]");
12977
- var vn = "".concat(pn, " [data-trix-input]");
12978
- var An = (t2, e2) => (e2 || (e2 = yn(t2)), t2.querySelector("[data-trix-input][name='".concat(e2, "']")));
12979
- var xn = (t2) => t2.getAttribute("data-trix-action");
12980
- var yn = (t2) => t2.getAttribute("data-trix-attribute") || t2.getAttribute("data-trix-dialog-attribute");
12981
- var Cn = class extends H {
12978
+ var dn = (t2) => ({ x: t2.clientX, y: t2.clientY });
12979
+ var gn = "[data-trix-attribute]";
12980
+ var mn = "[data-trix-action]";
12981
+ var pn = "".concat(gn, ", ").concat(mn);
12982
+ var fn = "[data-trix-dialog]";
12983
+ var bn = "".concat(fn, "[data-trix-active]");
12984
+ var vn = "".concat(fn, " [data-trix-method]");
12985
+ var An = "".concat(fn, " [data-trix-input]");
12986
+ var xn = (t2, e2) => (e2 || (e2 = Cn(t2)), t2.querySelector("[data-trix-input][name='".concat(e2, "']")));
12987
+ var yn = (t2) => t2.getAttribute("data-trix-action");
12988
+ var Cn = (t2) => t2.getAttribute("data-trix-attribute") || t2.getAttribute("data-trix-dialog-attribute");
12989
+ var kn = class extends H {
12982
12990
  constructor(t2) {
12983
- super(t2), this.didClickActionButton = this.didClickActionButton.bind(this), this.didClickAttributeButton = this.didClickAttributeButton.bind(this), this.didClickDialogButton = this.didClickDialogButton.bind(this), this.didKeyDownDialogInput = this.didKeyDownDialogInput.bind(this), this.element = t2, this.attributes = {}, this.actions = {}, this.resetDialogInputs(), f("mousedown", { onElement: this.element, matchingSelector: gn, withCallback: this.didClickActionButton }), f("mousedown", { onElement: this.element, matchingSelector: dn, withCallback: this.didClickAttributeButton }), f("click", { onElement: this.element, matchingSelector: mn, preventDefault: true }), f("click", { onElement: this.element, matchingSelector: bn, withCallback: this.didClickDialogButton }), f("keydown", { onElement: this.element, matchingSelector: vn, withCallback: this.didKeyDownDialogInput });
12991
+ super(t2), this.didClickActionButton = this.didClickActionButton.bind(this), this.didClickAttributeButton = this.didClickAttributeButton.bind(this), this.didClickDialogButton = this.didClickDialogButton.bind(this), this.didKeyDownDialogInput = this.didKeyDownDialogInput.bind(this), this.element = t2, this.attributes = {}, this.actions = {}, this.resetDialogInputs(), f("mousedown", { onElement: this.element, matchingSelector: mn, withCallback: this.didClickActionButton }), f("mousedown", { onElement: this.element, matchingSelector: gn, withCallback: this.didClickAttributeButton }), f("click", { onElement: this.element, matchingSelector: pn, preventDefault: true }), f("click", { onElement: this.element, matchingSelector: vn, withCallback: this.didClickDialogButton }), f("keydown", { onElement: this.element, matchingSelector: An, withCallback: this.didKeyDownDialogInput });
12984
12992
  }
12985
12993
  didClickActionButton(t2, e2) {
12986
12994
  var i2;
12987
12995
  null === (i2 = this.delegate) || void 0 === i2 || i2.toolbarDidClickButton(), t2.preventDefault();
12988
- const n2 = xn(e2);
12996
+ const n2 = yn(e2);
12989
12997
  return this.getDialog(n2) ? this.toggleDialog(n2) : null === (r2 = this.delegate) || void 0 === r2 ? void 0 : r2.toolbarDidInvokeAction(n2, e2);
12990
12998
  var r2;
12991
12999
  }
12992
13000
  didClickAttributeButton(t2, e2) {
12993
13001
  var i2;
12994
13002
  null === (i2 = this.delegate) || void 0 === i2 || i2.toolbarDidClickButton(), t2.preventDefault();
12995
- const n2 = yn(e2);
13003
+ const n2 = Cn(e2);
12996
13004
  var r2;
12997
13005
  this.getDialog(n2) ? this.toggleDialog(n2) : null === (r2 = this.delegate) || void 0 === r2 || r2.toolbarDidToggleAttribute(n2);
12998
13006
  return this.refreshAttributeButtons();
12999
13007
  }
13000
13008
  didClickDialogButton(t2, e2) {
13001
- const i2 = A(e2, { matchingSelector: pn });
13009
+ const i2 = A(e2, { matchingSelector: fn });
13002
13010
  return this[e2.getAttribute("data-trix-method")].call(this, i2);
13003
13011
  }
13004
13012
  didKeyDownDialogInput(t2, e2) {
@@ -13019,7 +13027,7 @@
13019
13027
  });
13020
13028
  }
13021
13029
  eachActionButton(t2) {
13022
- return Array.from(this.element.querySelectorAll(gn)).map((e2) => t2(e2, xn(e2)));
13030
+ return Array.from(this.element.querySelectorAll(mn)).map((e2) => t2(e2, yn(e2)));
13023
13031
  }
13024
13032
  updateAttributes(t2) {
13025
13033
  return this.attributes = t2, this.refreshAttributeButtons();
@@ -13028,7 +13036,7 @@
13028
13036
  return this.eachAttributeButton((t2, e2) => (t2.disabled = false === this.attributes[e2], this.attributes[e2] || this.dialogIsVisible(e2) ? (t2.setAttribute("data-trix-active", ""), t2.classList.add("trix-active")) : (t2.removeAttribute("data-trix-active"), t2.classList.remove("trix-active"))));
13029
13037
  }
13030
13038
  eachAttributeButton(t2) {
13031
- return Array.from(this.element.querySelectorAll(dn)).map((e2) => t2(e2, yn(e2)));
13039
+ return Array.from(this.element.querySelectorAll(gn)).map((e2) => t2(e2, Cn(e2)));
13032
13040
  }
13033
13041
  applyKeyboardCommand(t2) {
13034
13042
  const e2 = JSON.stringify(t2.sort());
@@ -13054,31 +13062,31 @@
13054
13062
  n2.setAttribute("data-trix-active", ""), n2.classList.add("trix-active"), Array.from(n2.querySelectorAll("input[disabled]")).forEach((t3) => {
13055
13063
  t3.removeAttribute("disabled");
13056
13064
  });
13057
- const r2 = yn(n2);
13065
+ const r2 = Cn(n2);
13058
13066
  if (r2) {
13059
- const e3 = An(n2, t2);
13067
+ const e3 = xn(n2, t2);
13060
13068
  e3 && (e3.value = this.attributes[r2] || "", e3.select());
13061
13069
  }
13062
13070
  return null === (i2 = this.delegate) || void 0 === i2 ? void 0 : i2.toolbarDidShowDialog(t2);
13063
13071
  }
13064
13072
  setAttribute(t2) {
13065
- const e2 = yn(t2), i2 = An(t2, e2);
13073
+ const e2 = Cn(t2), i2 = xn(t2, e2);
13066
13074
  return i2.willValidate && !i2.checkValidity() ? (i2.setAttribute("data-trix-validate", ""), i2.classList.add("trix-validate"), i2.focus()) : (null === (n2 = this.delegate) || void 0 === n2 || n2.toolbarDidUpdateAttribute(e2, i2.value), this.hideDialog());
13067
13075
  var n2;
13068
13076
  }
13069
13077
  removeAttribute(t2) {
13070
13078
  var e2;
13071
- const i2 = yn(t2);
13079
+ const i2 = Cn(t2);
13072
13080
  return null === (e2 = this.delegate) || void 0 === e2 || e2.toolbarDidRemoveAttribute(i2), this.hideDialog();
13073
13081
  }
13074
13082
  hideDialog() {
13075
- const t2 = this.element.querySelector(fn);
13083
+ const t2 = this.element.querySelector(bn);
13076
13084
  var e2;
13077
13085
  if (t2)
13078
13086
  return t2.removeAttribute("data-trix-active"), t2.classList.remove("trix-active"), this.resetDialogInputs(), null === (e2 = this.delegate) || void 0 === e2 ? void 0 : e2.toolbarDidHideDialog(((t3) => t3.getAttribute("data-trix-dialog"))(t2));
13079
13087
  }
13080
13088
  resetDialogInputs() {
13081
- Array.from(this.element.querySelectorAll(vn)).forEach((t2) => {
13089
+ Array.from(this.element.querySelectorAll(An)).forEach((t2) => {
13082
13090
  t2.setAttribute("disabled", "disabled"), t2.removeAttribute("data-trix-validate"), t2.classList.remove("trix-validate");
13083
13091
  });
13084
13092
  }
@@ -13086,10 +13094,10 @@
13086
13094
  return this.element.querySelector("[data-trix-dialog=".concat(t2, "]"));
13087
13095
  }
13088
13096
  };
13089
- var kn = class extends Oi {
13097
+ var Rn = class extends Oi {
13090
13098
  constructor(t2) {
13091
13099
  let { editorElement: e2, document: i2, html: n2 } = t2;
13092
- super(...arguments), this.editorElement = e2, this.selectionManager = new Li(this.editorElement), this.selectionManager.delegate = this, this.composition = new gi(), this.composition.delegate = this, this.attachmentManager = new hi(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = 2 === M.getLevel() ? new on(this.editorElement) : new Qi(this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new Ni(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new Cn(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new xi(this.composition, this.selectionManager, this.editorElement), i2 ? this.editor.loadDocument(i2) : this.editor.loadHTML(n2);
13100
+ super(...arguments), this.editorElement = e2, this.selectionManager = new Li(this.editorElement), this.selectionManager.delegate = this, this.composition = new gi(), this.composition.delegate = this, this.attachmentManager = new hi(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = 2 === M.getLevel() ? new on(this.editorElement) : new Qi(this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new Ni(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new kn(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new xi(this.composition, this.selectionManager, this.editorElement), i2 ? this.editor.loadDocument(i2) : this.editor.loadHTML(n2);
13093
13101
  }
13094
13102
  registerSelectionManager() {
13095
13103
  return Pt.registerSelectionManager(this.selectionManager);
@@ -13366,7 +13374,7 @@
13366
13374
  return this.constructor.actions;
13367
13375
  }
13368
13376
  };
13369
- Ae(kn, "actions", { undo: { test() {
13377
+ Re(Rn, "actions", { undo: { test() {
13370
13378
  return this.editor.canUndo();
13371
13379
  }, perform() {
13372
13380
  return this.editor.undo();
@@ -13386,33 +13394,33 @@
13386
13394
  return this.editor.decreaseNestingLevel() && this.render();
13387
13395
  } }, attachFiles: { test: () => true, perform() {
13388
13396
  return M.pickFiles(this.editor.insertFiles);
13389
- } } }), kn.proxyMethod("getSelectionManager().setLocationRange"), kn.proxyMethod("getSelectionManager().getLocationRange");
13390
- var Rn = Object.freeze({ __proto__: null, AttachmentEditorController: Ii, CompositionController: Ni, Controller: Oi, EditorController: kn, InputController: Ki, Level0InputController: Qi, Level2InputController: on, ToolbarController: Cn });
13391
- var En = Object.freeze({ __proto__: null, MutationObserver: Ui, SelectionChangeObserver: Ft });
13392
- var Sn = Object.freeze({ __proto__: null, FileVerificationOperation: Vi, ImagePreloadOperation: Ce });
13397
+ } } }), Rn.proxyMethod("getSelectionManager().setLocationRange"), Rn.proxyMethod("getSelectionManager().getLocationRange");
13398
+ var En = Object.freeze({ __proto__: null, AttachmentEditorController: Ii, CompositionController: Ni, Controller: Oi, EditorController: Rn, InputController: Ki, Level0InputController: Qi, Level2InputController: on, ToolbarController: kn });
13399
+ var Sn = Object.freeze({ __proto__: null, MutationObserver: Ui, SelectionChangeObserver: Ft });
13400
+ var Ln = Object.freeze({ __proto__: null, FileVerificationOperation: Vi, ImagePreloadOperation: Le });
13393
13401
  bt("trix-toolbar", "%t {\n display: block;\n}\n\n%t {\n white-space: nowrap;\n}\n\n%t [data-trix-dialog] {\n display: none;\n}\n\n%t [data-trix-dialog][data-trix-active] {\n display: block;\n}\n\n%t [data-trix-dialog] [data-trix-validate]:invalid {\n background-color: #ffdddd;\n}");
13394
- var Ln = class extends HTMLElement {
13402
+ var Dn = class extends HTMLElement {
13395
13403
  connectedCallback() {
13396
13404
  "" === this.innerHTML && (this.innerHTML = U.getDefaultHTML());
13397
13405
  }
13398
13406
  };
13399
- var Dn = 0;
13400
- var wn = function(t2) {
13407
+ var wn = 0;
13408
+ var Tn = function(t2) {
13401
13409
  if (!t2.hasAttribute("contenteditable"))
13402
13410
  return t2.setAttribute("contenteditable", ""), function(t3) {
13403
13411
  let e2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
13404
13412
  return e2.times = 1, f(t3, e2);
13405
- }("focus", { onElement: t2, withCallback: () => Tn(t2) });
13406
- };
13407
- var Tn = function(t2) {
13408
- return Bn(t2), Fn(t2);
13413
+ }("focus", { onElement: t2, withCallback: () => Bn(t2) });
13409
13414
  };
13410
13415
  var Bn = function(t2) {
13416
+ return Fn(t2), Pn(t2);
13417
+ };
13418
+ var Fn = function(t2) {
13411
13419
  var e2, i2;
13412
13420
  if (null !== (e2 = (i2 = document).queryCommandSupported) && void 0 !== e2 && e2.call(i2, "enableObjectResizing"))
13413
13421
  return document.execCommand("enableObjectResizing", false, false), f("mscontrolselect", { onElement: t2, preventDefault: true });
13414
13422
  };
13415
- var Fn = function(t2) {
13423
+ var Pn = function(t2) {
13416
13424
  var e2, i2;
13417
13425
  if (null !== (e2 = (i2 = document).queryCommandSupported) && void 0 !== e2 && e2.call(i2, "DefaultParagraphSeparator")) {
13418
13426
  const { tagName: t3 } = n.default;
@@ -13420,11 +13428,11 @@
13420
13428
  return document.execCommand("DefaultParagraphSeparator", false, t3);
13421
13429
  }
13422
13430
  };
13423
- var Pn = a.forcesObjectResizing ? { display: "inline", width: "auto" } : { display: "inline-block", width: "1px" };
13424
- bt("trix-editor", "%t {\n display: block;\n}\n\n%t:empty:not(:focus)::before {\n content: attr(placeholder);\n color: graytext;\n cursor: text;\n pointer-events: none;\n white-space: pre-line;\n}\n\n%t a[contenteditable=false] {\n cursor: text;\n}\n\n%t img {\n max-width: 100%;\n height: auto;\n}\n\n%t ".concat(e, " figcaption textarea {\n resize: none;\n}\n\n%t ").concat(e, " figcaption textarea.trix-autoresize-clone {\n position: absolute;\n left: -9999px;\n max-height: 0px;\n}\n\n%t ").concat(e, " figcaption[data-trix-placeholder]:empty::before {\n content: attr(data-trix-placeholder);\n color: graytext;\n}\n\n%t [data-trix-cursor-target] {\n display: ").concat(Pn.display, " !important;\n width: ").concat(Pn.width, " !important;\n padding: 0 !important;\n margin: 0 !important;\n border: none !important;\n}\n\n%t [data-trix-cursor-target=left] {\n vertical-align: top !important;\n margin-left: -1px !important;\n}\n\n%t [data-trix-cursor-target=right] {\n vertical-align: bottom !important;\n margin-right: -1px !important;\n}"));
13425
- var In = class extends HTMLElement {
13431
+ var In = a.forcesObjectResizing ? { display: "inline", width: "auto" } : { display: "inline-block", width: "1px" };
13432
+ bt("trix-editor", "%t {\n display: block;\n}\n\n%t:empty:not(:focus)::before {\n content: attr(placeholder);\n color: graytext;\n cursor: text;\n pointer-events: none;\n white-space: pre-line;\n}\n\n%t a[contenteditable=false] {\n cursor: text;\n}\n\n%t img {\n max-width: 100%;\n height: auto;\n}\n\n%t ".concat(e, " figcaption textarea {\n resize: none;\n}\n\n%t ").concat(e, " figcaption textarea.trix-autoresize-clone {\n position: absolute;\n left: -9999px;\n max-height: 0px;\n}\n\n%t ").concat(e, " figcaption[data-trix-placeholder]:empty::before {\n content: attr(data-trix-placeholder);\n color: graytext;\n}\n\n%t [data-trix-cursor-target] {\n display: ").concat(In.display, " !important;\n width: ").concat(In.width, " !important;\n padding: 0 !important;\n margin: 0 !important;\n border: none !important;\n}\n\n%t [data-trix-cursor-target=left] {\n vertical-align: top !important;\n margin-left: -1px !important;\n}\n\n%t [data-trix-cursor-target=right] {\n vertical-align: bottom !important;\n margin-right: -1px !important;\n}"));
13433
+ var Nn = class extends HTMLElement {
13426
13434
  get trixId() {
13427
- return this.hasAttribute("trix-id") ? this.getAttribute("trix-id") : (this.setAttribute("trix-id", ++Dn), this.trixId);
13435
+ return this.hasAttribute("trix-id") ? this.getAttribute("trix-id") : (this.setAttribute("trix-id", ++wn), this.trixId);
13428
13436
  }
13429
13437
  get labels() {
13430
13438
  const t2 = [];
@@ -13482,7 +13490,7 @@
13482
13490
  this.inputElement && (this.inputElement.value = t2);
13483
13491
  }
13484
13492
  connectedCallback() {
13485
- this.hasAttribute("data-trix-internal") || (wn(this), function(t2) {
13493
+ this.hasAttribute("data-trix-internal") || (Tn(this), function(t2) {
13486
13494
  if (!t2.hasAttribute("role"))
13487
13495
  t2.setAttribute("role", "textbox");
13488
13496
  }(this), function(t2) {
@@ -13496,7 +13504,7 @@
13496
13504
  return i2 ? t2.setAttribute("aria-label", i2) : t2.removeAttribute("aria-label");
13497
13505
  };
13498
13506
  e2(), f("focus", { onElement: t2, withCallback: e2 });
13499
- }(this), this.editorController || (b("trix-before-initialize", { onElement: this }), this.editorController = new kn({ editorElement: this, html: this.defaultValue = this.value }), requestAnimationFrame(() => b("trix-initialize", { onElement: this }))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), function(t2) {
13507
+ }(this), this.editorController || (b("trix-before-initialize", { onElement: this }), this.editorController = new Rn({ editorElement: this, html: this.defaultValue = this.value }), requestAnimationFrame(() => b("trix-initialize", { onElement: this }))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), function(t2) {
13500
13508
  if (!document.querySelector(":focus") && t2.hasAttribute("autofocus") && document.querySelector("[autofocus]") === t2)
13501
13509
  t2.focus();
13502
13510
  }(this));
@@ -13533,9 +13541,9 @@
13533
13541
  this.value = this.defaultValue;
13534
13542
  }
13535
13543
  };
13536
- var Nn = { VERSION: t, config: V, core: ci, models: Di, views: wi, controllers: Rn, observers: En, operations: Sn, elements: Object.freeze({ __proto__: null, TrixEditorElement: In, TrixToolbarElement: Ln }), filters: Object.freeze({ __proto__: null, Filter: bi, attachmentGalleryFilter: vi }) };
13537
- Object.assign(Nn, Di), window.Trix = Nn, setTimeout(function() {
13538
- customElements.get("trix-toolbar") || customElements.define("trix-toolbar", Ln), customElements.get("trix-editor") || customElements.define("trix-editor", In);
13544
+ var On = { VERSION: t, config: V, core: ci, models: Di, views: wi, controllers: En, observers: Sn, operations: Ln, elements: Object.freeze({ __proto__: null, TrixEditorElement: Nn, TrixToolbarElement: Dn }), filters: Object.freeze({ __proto__: null, Filter: bi, attachmentGalleryFilter: vi }) };
13545
+ Object.assign(On, Di), window.Trix = On, setTimeout(function() {
13546
+ customElements.get("trix-toolbar") || customElements.define("trix-toolbar", Dn), customElements.get("trix-editor") || customElements.define("trix-editor", Nn);
13539
13547
  }, 0);
13540
13548
 
13541
13549
  // node_modules/@rails/actiontext/app/assets/javascripts/actiontext.esm.js
@@ -14364,25 +14372,47 @@
14364
14372
  }
14365
14373
  start() {
14366
14374
  this.directUpload.create(this.directUploadDidComplete.bind(this));
14375
+ this.dispatch("start");
14367
14376
  }
14368
14377
  directUploadWillStoreFileWithXHR(xhr) {
14369
14378
  xhr.upload.addEventListener("progress", (event) => {
14370
14379
  const progress = event.loaded / event.total * 100;
14371
14380
  this.attachment.setUploadProgress(progress);
14381
+ if (progress) {
14382
+ this.dispatch("progress", {
14383
+ progress
14384
+ });
14385
+ }
14372
14386
  });
14373
14387
  }
14374
14388
  directUploadDidComplete(error2, attributes) {
14375
14389
  if (error2) {
14376
- throw new Error(`Direct upload failed: ${error2}`);
14390
+ this.dispatchError(error2);
14391
+ } else {
14392
+ this.attachment.setAttributes({
14393
+ sgid: attributes.attachable_sgid,
14394
+ url: this.createBlobUrl(attributes.signed_id, attributes.filename)
14395
+ });
14396
+ this.dispatch("end");
14377
14397
  }
14378
- this.attachment.setAttributes({
14379
- sgid: attributes.attachable_sgid,
14380
- url: this.createBlobUrl(attributes.signed_id, attributes.filename)
14381
- });
14382
14398
  }
14383
14399
  createBlobUrl(signedId, filename) {
14384
14400
  return this.blobUrlTemplate.replace(":signed_id", signedId).replace(":filename", encodeURIComponent(filename));
14385
14401
  }
14402
+ dispatch(name, detail = {}) {
14403
+ detail.attachment = this.attachment;
14404
+ return dispatchEvent2(this.element, `direct-upload:${name}`, {
14405
+ detail
14406
+ });
14407
+ }
14408
+ dispatchError(error2) {
14409
+ const event = this.dispatch("error", {
14410
+ error: error2
14411
+ });
14412
+ if (!event.defaultPrevented) {
14413
+ alert(error2);
14414
+ }
14415
+ }
14386
14416
  get directUploadUrl() {
14387
14417
  return this.element.dataset.directUploadUrl;
14388
14418
  }