@harbour-enterprises/superdoc 0.26.0-next.1 → 0.26.0-next.2

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
1
  import { m as defineComponent, B as h, O as Transition, $ as process$1, I as watchEffect, d as computed, r as ref, j as onMounted, W as onUnmounted, c as createElementBlock, o as openBlock, a as createBaseVNode, f as createCommentVNode, v as createVNode, x as unref } from "./vue-ZWZLQtoU.es.js";
2
- import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-ClUzozbw.es.js";
2
+ import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-kTEBpqiG.es.js";
3
3
  function self(vars) {
4
4
  const {
5
5
  opacityDisabled,
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("./vue-DKMj1I9B.cjs");
4
- const superdoc = require("./index-CAVKoWDJ.cjs");
4
+ const superdoc = require("./index-W-nB4woH.cjs");
5
5
  function self(vars) {
6
6
  const {
7
7
  opacityDisabled,
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const superEditor_es = require("./super-editor.es-DZb1VLxX.cjs");
2
+ const superEditor_es = require("./super-editor.es-C74O3hXJ.cjs");
3
3
  const vue = require("./vue-DKMj1I9B.cjs");
4
4
  const blankDocx = require("./blank-docx-DfW3Eeh2.cjs");
5
5
  const eventemitter3 = require("./eventemitter3-DkXkH2rT.cjs");
@@ -17164,7 +17164,7 @@ const _sfc_main = {
17164
17164
  __name: "SuperDoc",
17165
17165
  emits: ["selection-update"],
17166
17166
  setup(__props, { emit: __emit }) {
17167
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-BdAhZa5N.cjs")));
17167
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-Bk6eeTRu.cjs")));
17168
17168
  const superdocStore = useSuperdocStore();
17169
17169
  const commentsStore = useCommentsStore();
17170
17170
  const {
@@ -17827,6 +17827,10 @@ const cleanName = (currentName) => {
17827
17827
  }
17828
17828
  return currentName;
17829
17829
  };
17830
+ const DEFAULT_USER = Object.freeze({
17831
+ name: "Default SuperDoc user",
17832
+ email: null
17833
+ });
17830
17834
  class SuperDoc extends eventemitter3.EventEmitter {
17831
17835
  /** @type {Array<string>} */
17832
17836
  static allowedTypes = [DOCX, PDF, HTML];
@@ -17905,6 +17909,18 @@ class SuperDoc extends eventemitter3.EventEmitter {
17905
17909
  ...this.config,
17906
17910
  ...config
17907
17911
  };
17912
+ const incomingUser = this.config.user;
17913
+ if (!incomingUser || typeof incomingUser !== "object") {
17914
+ this.config.user = { ...DEFAULT_USER };
17915
+ } else {
17916
+ this.config.user = {
17917
+ ...DEFAULT_USER,
17918
+ ...incomingUser
17919
+ };
17920
+ if (!this.config.user.name) {
17921
+ this.config.user.name = DEFAULT_USER.name;
17922
+ }
17923
+ }
17908
17924
  this.config.modules = this.config.modules || {};
17909
17925
  if (!Object.prototype.hasOwnProperty.call(this.config.modules, "comments")) {
17910
17926
  this.config.modules.comments = {};
@@ -1,4 +1,4 @@
1
- import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-BewiNPbf.es.js";
1
+ import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-DznCuGcp.es.js";
2
2
  import { a0 as effectScope, r as ref, _ as markRaw, $ as process$1, a1 as toRaw, d as computed, a2 as isRef, a3 as isReactive, C as toRef, i as inject, p as getCurrentInstance, l as watch, x as unref, a4 as hasInjectionContext, M as reactive, s as nextTick, a5 as getCurrentScope, a6 as onScopeDispose, a7 as toRefs, g as global$1, J as shallowRef, N as readonly, j as onMounted, k as onBeforeUnmount, h as onBeforeMount, S as onActivated, q as onDeactivated, z as createTextVNode, F as Fragment, Q as Comment, m as defineComponent, D as provide, H as withDirectives, B as h, U as Teleport, R as renderSlot, V as isVNode, I as watchEffect, O as Transition, a8 as TransitionGroup, E as mergeProps, P as vShow, G as cloneVNode, T as Text, c as createElementBlock, o as openBlock, t as toDisplayString, v as createVNode, y as withCtx, a as createBaseVNode, A as normalizeStyle, f as createCommentVNode, u as createBlock, w as withModifiers, n as normalizeClass, a9 as resolveDirective, e as renderList, b as createApp, X as resolveDynamicComponent, aa as defineAsyncComponent } from "./vue-ZWZLQtoU.es.js";
3
3
  import { B as BlankDOCX } from "./blank-docx-ABm6XYAA.es.js";
4
4
  import { E as EventEmitter } from "./eventemitter3-BWEnUdTY.es.js";
@@ -17147,7 +17147,7 @@ const _sfc_main = {
17147
17147
  __name: "SuperDoc",
17148
17148
  emits: ["selection-update"],
17149
17149
  setup(__props, { emit: __emit }) {
17150
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-BKHHNbny.es.js"));
17150
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-BUDqeNx7.es.js"));
17151
17151
  const superdocStore = useSuperdocStore();
17152
17152
  const commentsStore = useCommentsStore();
17153
17153
  const {
@@ -17810,6 +17810,10 @@ const cleanName = (currentName) => {
17810
17810
  }
17811
17811
  return currentName;
17812
17812
  };
17813
+ const DEFAULT_USER = Object.freeze({
17814
+ name: "Default SuperDoc user",
17815
+ email: null
17816
+ });
17813
17817
  class SuperDoc extends EventEmitter {
17814
17818
  /** @type {Array<string>} */
17815
17819
  static allowedTypes = [DOCX, PDF, HTML];
@@ -17888,6 +17892,18 @@ class SuperDoc extends EventEmitter {
17888
17892
  ...this.config,
17889
17893
  ...config
17890
17894
  };
17895
+ const incomingUser = this.config.user;
17896
+ if (!incomingUser || typeof incomingUser !== "object") {
17897
+ this.config.user = { ...DEFAULT_USER };
17898
+ } else {
17899
+ this.config.user = {
17900
+ ...DEFAULT_USER,
17901
+ ...incomingUser
17902
+ };
17903
+ if (!this.config.user.name) {
17904
+ this.config.user.name = DEFAULT_USER.name;
17905
+ }
17906
+ }
17891
17907
  this.config.modules = this.config.modules || {};
17892
17908
  if (!Object.prototype.hasOwnProperty.call(this.config.modules, "comments")) {
17893
17909
  this.config.modules.comments = {};
@@ -52714,6 +52714,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
52714
52714
  * @param {string} documentMode - The document mode ('editing', 'viewing', 'suggesting')
52715
52715
  */
52716
52716
  setDocumentMode(documentMode) {
52717
+ if (this.options.isHeaderOrFooter || this.options.isChildEditor) return;
52717
52718
  let cleanedMode = documentMode?.toLowerCase() || "editing";
52718
52719
  if (!this.extensionService || !this.state) return;
52719
52720
  const pm = this.view?.dom || this.options.element?.querySelector?.(".ProseMirror");
@@ -52729,7 +52730,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
52729
52730
  isEditMode: false,
52730
52731
  documentMode: cleanedMode
52731
52732
  });
52732
- if (!this.options.isHeaderOrFooter && pm) pm.classList.add("view-mode");
52733
+ if (pm) pm.classList.add("view-mode");
52733
52734
  } else if (cleanedMode === "suggesting") {
52734
52735
  __privateMethod$1(this, _Editor_instances, registerPluginByNameIfNotExists_fn).call(this, "TrackChangesBase");
52735
52736
  this.commands.disableTrackChangesShowOriginal();
@@ -67580,6 +67581,10 @@ const derivePermissionKey = ({ action, isOwn }) => {
67580
67581
  if (!mapping) return null;
67581
67582
  return isOwn ? mapping.own : mapping.other;
67582
67583
  };
67584
+ const normalizeEmail = (value) => {
67585
+ if (typeof value !== "string") return "";
67586
+ return value.trim().toLowerCase();
67587
+ };
67583
67588
  const resolveChanges = (editor) => {
67584
67589
  if (!editor) return { role: "editor", isInternal: false, currentUser: null, resolver: null };
67585
67590
  const role = editor.options?.role ?? "editor";
@@ -67592,10 +67597,10 @@ const isTrackedChangeActionAllowed = ({ editor, action, trackedChanges }) => {
67592
67597
  if (!trackedChanges?.length) return true;
67593
67598
  const { role, isInternal, currentUser, resolver } = resolveChanges(editor);
67594
67599
  if (typeof resolver !== "function") return true;
67595
- const currentEmail = currentUser?.email ?? null;
67600
+ const currentEmail = normalizeEmail(currentUser?.email);
67596
67601
  return trackedChanges.every((change) => {
67597
- const authorEmail = change.attrs?.authorEmail ?? null;
67598
- const isOwn = Boolean(currentEmail && authorEmail && currentEmail === authorEmail);
67602
+ const authorEmail = normalizeEmail(change.attrs?.authorEmail);
67603
+ const isOwn = !currentEmail || !authorEmail || currentEmail === authorEmail;
67599
67604
  const permission = derivePermissionKey({ action, isOwn });
67600
67605
  if (!permission) return true;
67601
67606
  const payload = {
@@ -52697,6 +52697,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
52697
52697
  * @param {string} documentMode - The document mode ('editing', 'viewing', 'suggesting')
52698
52698
  */
52699
52699
  setDocumentMode(documentMode) {
52700
+ if (this.options.isHeaderOrFooter || this.options.isChildEditor) return;
52700
52701
  let cleanedMode = documentMode?.toLowerCase() || "editing";
52701
52702
  if (!this.extensionService || !this.state) return;
52702
52703
  const pm = this.view?.dom || this.options.element?.querySelector?.(".ProseMirror");
@@ -52712,7 +52713,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
52712
52713
  isEditMode: false,
52713
52714
  documentMode: cleanedMode
52714
52715
  });
52715
- if (!this.options.isHeaderOrFooter && pm) pm.classList.add("view-mode");
52716
+ if (pm) pm.classList.add("view-mode");
52716
52717
  } else if (cleanedMode === "suggesting") {
52717
52718
  __privateMethod$1(this, _Editor_instances, registerPluginByNameIfNotExists_fn).call(this, "TrackChangesBase");
52718
52719
  this.commands.disableTrackChangesShowOriginal();
@@ -67563,6 +67564,10 @@ const derivePermissionKey = ({ action, isOwn }) => {
67563
67564
  if (!mapping) return null;
67564
67565
  return isOwn ? mapping.own : mapping.other;
67565
67566
  };
67567
+ const normalizeEmail = (value) => {
67568
+ if (typeof value !== "string") return "";
67569
+ return value.trim().toLowerCase();
67570
+ };
67566
67571
  const resolveChanges = (editor) => {
67567
67572
  if (!editor) return { role: "editor", isInternal: false, currentUser: null, resolver: null };
67568
67573
  const role = editor.options?.role ?? "editor";
@@ -67575,10 +67580,10 @@ const isTrackedChangeActionAllowed = ({ editor, action, trackedChanges }) => {
67575
67580
  if (!trackedChanges?.length) return true;
67576
67581
  const { role, isInternal, currentUser, resolver } = resolveChanges(editor);
67577
67582
  if (typeof resolver !== "function") return true;
67578
- const currentEmail = currentUser?.email ?? null;
67583
+ const currentEmail = normalizeEmail(currentUser?.email);
67579
67584
  return trackedChanges.every((change) => {
67580
- const authorEmail = change.attrs?.authorEmail ?? null;
67581
- const isOwn = Boolean(currentEmail && authorEmail && currentEmail === authorEmail);
67585
+ const authorEmail = normalizeEmail(change.attrs?.authorEmail);
67586
+ const isOwn = !currentEmail || !authorEmail || currentEmail === authorEmail;
67582
67587
  const permission = derivePermissionKey({ action, isOwn });
67583
67588
  if (!permission) return true;
67584
67589
  const payload = {
@@ -1 +1 @@
1
- {"version":3,"file":"SuperDoc.d.ts","sourceRoot":"","sources":["../../src/core/SuperDoc.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SuperDoc.d.ts","sourceRoot":"","sources":["../../src/core/SuperDoc.js"],"names":[],"mappings":"AAsBA,6CAA6C;AAC7C,mEAAmE;AACnE,qDAAqD;AACrD,mDAAmD;AACnD,iDAAiD;AACjD,6DAA6D;AAC7D,iDAAiD;AACjD,6DAA6D;AAE7D;;;;;;GAMG;AACH;IACE,4BAA4B;IAC5B,qBADW,KAAK,CAAC,MAAM,CAAC,CACgB;IA0ExC;;OAEG;IACH,oBAFW,MAAM,EAKhB;IA9ED,qBAAqB;IACrB,SADW,MAAM,CACT;IAER,qBAAqB;IACrB,OADW,IAAI,EAAE,CACX;IAEN,4CAA4C;IAC5C,MADW,OAAO,KAAK,EAAE,GAAG,GAAG,SAAS,CACnC;IAEL,4EAA4E;IAC5E,UADW,OAAO,sBAAsB,EAAE,kBAAkB,GAAG,SAAS,CAC/D;IAET,qBAAqB;IACrB,QADW,MAAM,CA0Df;IAmCA,4BAA6B;IAC7B,mBAAmB;IAMnB,gBAA+C;IAC/C,YAAgC;IAehC,UAA4B;IAE5B,YAAkB;IAElB,WAAuC;IAEvC,kBAAwB;IACxB,gBAAkB;IASlB,qBAAqB;IAErB,cAA6C;IAC7C,cAA4C;IAM9C;;;OAGG;IACH,+BAFa,MAAM,CAIlB;IAED;;;MAKC;IAED;;;OAGG;IACH,eAFa,WAAW,GAAG,IAAI,CAO9B;IAsFC,SAAc;IACd,WAAkB;IAKlB,mBAAkC;IAClC,mBAAkC;IAClC,2BAAkD;IAuClD,yBAA2B;IA4B7B;;;;OAIG;IACH,0BAFa,IAAI,CAKhB;IAED;;;;OAIG;IACH,iCAFa,IAAI,CAIhB;IAOC,qBAME;IAGJ;;;;;OAKG;IACH,kCAHG;QAAsB,KAAK,EAAnB,KAAK;QACU,MAAM,EAArB,MAAM;KAChB,QAKA;IAED;;;OAGG;IACH,6BAFa,IAAI,CAIhB;IAED;;;OAGG;IACH,kBAFa,IAAI,CAMhB;IAED;;;;OAIG;IACH,oCAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;;OAIG;IACH,8BAHW,MAAM,GACJ,IAAI,CAMhB;IAED;;;OAGG;IACH,0BAFa,IAAI,CAIhB;IAED;;;OAGG;IACH,iCAFW,OAAO,QAIjB;IAMD;;;;OAIG;IACH,wBAHW,MAAM,GACJ,IAAI,CAQhB;IAED;;;;OAIG;IACH,eAFa,IAAI,CAOhB;IAED;;;OAGG;IACH,oBAFa,IAAI,CAUhB;IAED;;;;;;;;;;;;OAYG;IACH,iFAPG;QAAuB,UAAU,EAAzB,MAAM;QACU,IAAI,GAApB,MAAM;QACW,UAAU,GAA3B,OAAO;QACc,OAAO,GAA5B,MAAO,IAAI;QACU,aAAa,GAAlC,MAAO,IAAI;KACnB,GAAU,OAAO,CA2BnB;IAIC,oBAAmF;IACnF,sBAAmB;IA2BrB;;;;;OAKG;IACH,yBAHW,OAAO,GACL,IAAI,CAQhB;IAFC,4BAA0E;IAI5E;;;OAGG;IACH,sBAFa,IAAI,CAQhB;IAED;;;;;OAKG;IACH,qCAHG;QAAuB,IAAI;QACJ,QAAQ,EAAvB,MAAM;KAChB,QAOA;IAED;;;;OAIG;IACH,sBAHW,YAAY,GACV,IAAI,CAehB;IAsDD;;;;OAIG;IACH,aAHW,MAAM,GAAG,MAAM,GACb,KAAQ,CAIpB;IAED;;;;OAIG;IACH,8BAFa,IAAI,CAIhB;IAED;;;OAGG;IACH,iBAFW,OAAO,QAUjB;IAED;;;OAGG;IACH,uBAFa,KAAK,CAAC,MAAM,CAAC,CAYzB;IAED;;;;OAIG;IACH,0CAFW,IAAI,QAOd;IAED;;;;OAIG;IACH,8IAHW,YAAY,GACV,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CA0ChC;IAED;;;;OAIG;IACH,yEAHW;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAkChC;IAWK,kCAAkC;IAsBxC;;;OAGG;IACH,QAFa,OAAO,CAAC,IAAI,EAAE,CAAC,CAY3B;IAED;;;OAGG;IACH,WAFa,IAAI,CAiChB;IAED;;;OAGG;IACH,SAFa,IAAI,CAahB;IAED;;;;OAIG;IACH,oCAHW,OAAO,GACL,IAAI,CAMhB;;CACF;;;;;;;;;6BA/7B4B,eAAe;0BASlB,0CAA0C;6BAJ5B,mCAAmC;8BAC7C,iEAAiE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.js"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, onUnmounted, computed, createElementBlock, openBlock, withModifiers, createElementVNode, withDirectives, unref, vModelText, createCommentVNode, nextTick } from "vue";
2
2
  import { T as TextSelection } from "./chunks/converter-khE-H7hH.js";
3
- import { _ as _export_sfc } from "./chunks/editor-CeTu_f0L.js";
3
+ import { _ as _export_sfc } from "./chunks/editor-wd9pvfTV.js";
4
4
  const DEFAULT_API_ENDPOINT = "https://sd-dev-express-gateway-i6xtm.ondigitalocean.app/insights";
5
5
  const SYSTEM_PROMPT = "You are an expert copywriter and you are immersed in a document editor. You are to provide document related text responses based on the user prompts. Only write what is asked for. Do not provide explanations. Try to keep placeholders as short as possible. Do not output your prompt. Your instructions are: ";
6
6
  async function baseInsightsFetch(payload, options = {}) {
@@ -9,7 +9,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
9
9
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
10
10
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
11
11
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
12
- var _Attribute_static, getGlobalAttributes_fn, getNodeAndMarksAttributes_fn, _Schema_static, createNodesSchema_fn, createMarksSchema_fn, _events, _ExtensionService_instances, setupExtensions_fn, attachEditorEvents_fn, _editor, _stateValidators, _xmlValidators, _requiredNodeTypes, _requiredMarkTypes, _SuperValidator_instances, initializeValidators_fn, collectValidatorRequirements_fn, analyzeDocument_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, registerPluginByNameIfNotExists_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, checkFonts_fn, determineUnsupportedFonts_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, initPagination_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ListItemNodeView_instances, init_fn3, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn;
12
+ var _Attribute_static, getGlobalAttributes_fn, getNodeAndMarksAttributes_fn, _Schema_static, createNodesSchema_fn, createMarksSchema_fn, _events, _ExtensionService_instances, setupExtensions_fn, attachEditorEvents_fn, _editor, _stateValidators, _xmlValidators, _requiredNodeTypes, _requiredMarkTypes, _SuperValidator_instances, initializeValidators_fn, collectValidatorRequirements_fn, analyzeDocument_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, registerPluginByNameIfNotExists_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, checkFonts_fn, determineUnsupportedFonts_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, initTrackChanges_fn, initPagination_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ListItemNodeView_instances, init_fn3, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn;
13
13
  import * as Y from "yjs";
14
14
  import { UndoManager, Item as Item$1, ContentType, Text as Text$1, XmlElement, encodeStateAsUpdate } from "yjs";
15
15
  import { P as PluginKey, a as Plugin, M as Mapping, N as NodeSelection, S as Selection, T as TextSelection, b as Slice, D as DOMSerializer, F as Fragment, c as DOMParser$1, d as Mark$1, e as dropPoint, A as AllSelection, p as process$1, B as Buffer2, f as callOrGet, g as getExtensionConfigField, h as getMarkType, i as getMarksFromSelection, j as getNodeType, k as getSchemaTypeNameByName, l as Schema$1, m as cleanSchemaItem, n as canSplit, o as defaultBlockAt$1, q as liftTarget, r as canJoin, s as joinPoint, t as replaceStep$1, R as ReplaceAroundStep$1, u as isTextSelection, v as getMarkRange, w as isMarkActive, x as isNodeActive, y as deleteProps, z as processContent, C as ReplaceStep, E as NodeRange, G as findWrapping, L as ListHelpers, H as findParentNode, I as isMacOS, J as isIOS, K as getSchemaTypeByName, O as inputRulesPlugin, Q as TrackDeleteMarkName, U as TrackInsertMarkName, V as v4, W as TrackFormatMarkName, X as comments_module_events, Y as findMark, Z as objectIncludes, _ as AddMarkStep, $ as RemoveMarkStep, a0 as twipsToLines, a1 as pixelsToTwips, a2 as helpers, a3 as posToDOMRect, a4 as CommandService, a5 as SuperConverter, a6 as createDocument, a7 as createDocFromMarkdown, a8 as createDocFromHTML, a9 as EditorState, aa as hasSomeParentWithClass, ab as isActive, ac as unflattenListsInHtml, ad as parseSizeUnit, ae as minMax, af as getLineHeightValueString, ag as updateDOMAttributes, ah as findChildren$5, ai as htmlHandler, aj as generateRandomSigned32BitIntStrId, ak as InputRule, al as kebabCase, am as findParentNodeClosestToPos, an as getListItemStyleDefinitions, ao as docxNumberigHelpers, ap as parseIndentElement, aq as combineIndents, ar as twipsToPixels, as as PIXELS_PER_INCH, at as SelectionRange, au as Transform, av as isInTable$1, aw as generateDocxRandomId, ax as insertNewRelationship, ay as inchesToPixels } from "./converter-khE-H7hH.js";
@@ -14424,6 +14424,7 @@ const _Editor = class _Editor extends EventEmitter {
14424
14424
  * @param {string} documentMode - The document mode ('editing', 'viewing', 'suggesting')
14425
14425
  */
14426
14426
  setDocumentMode(documentMode) {
14427
+ if (this.options.isHeaderOrFooter || this.options.isChildEditor) return;
14427
14428
  let cleanedMode = documentMode?.toLowerCase() || "editing";
14428
14429
  if (!this.extensionService || !this.state) return;
14429
14430
  const pm = this.view?.dom || this.options.element?.querySelector?.(".ProseMirror");
@@ -14439,7 +14440,7 @@ const _Editor = class _Editor extends EventEmitter {
14439
14440
  isEditMode: false,
14440
14441
  documentMode: cleanedMode
14441
14442
  });
14442
- if (!this.options.isHeaderOrFooter && pm) pm.classList.add("view-mode");
14443
+ if (pm) pm.classList.add("view-mode");
14443
14444
  } else if (cleanedMode === "suggesting") {
14444
14445
  __privateMethod(this, _Editor_instances, registerPluginByNameIfNotExists_fn).call(this, "TrackChangesBase");
14445
14446
  this.commands.disableTrackChangesShowOriginal();
@@ -15654,6 +15655,30 @@ initComments_fn = function() {
15654
15655
  dispatch(tr);
15655
15656
  }, 50);
15656
15657
  };
15658
+ /**
15659
+ * Initialize track changes based on document mode
15660
+ * @returns {void}
15661
+ */
15662
+ initTrackChanges_fn = function() {
15663
+ if (!this.extensionService || this.options.isHeaderOrFooter) {
15664
+ return;
15665
+ }
15666
+ switch (this.options.documentMode) {
15667
+ case "editing":
15668
+ __privateMethod(this, _Editor_instances, registerPluginByNameIfNotExists_fn).call(this, "TrackChangesBase");
15669
+ this.commands.disableTrackChangesShowOriginal();
15670
+ this.commands.disableTrackChanges();
15671
+ break;
15672
+ case "suggesting":
15673
+ __privateMethod(this, _Editor_instances, registerPluginByNameIfNotExists_fn).call(this, "TrackChangesBase");
15674
+ this.commands.disableTrackChangesShowOriginal();
15675
+ this.commands.enableTrackChanges();
15676
+ break;
15677
+ case "viewing":
15678
+ this.commands.toggleTrackChangesShowOriginal();
15679
+ break;
15680
+ }
15681
+ };
15657
15682
  initPagination_fn = async function() {
15658
15683
  if (this.options.isHeadless || !this.extensionService || this.options.isHeaderOrFooter) {
15659
15684
  return;
@@ -29416,6 +29441,10 @@ const derivePermissionKey = ({ action, isOwn }) => {
29416
29441
  if (!mapping) return null;
29417
29442
  return isOwn ? mapping.own : mapping.other;
29418
29443
  };
29444
+ const normalizeEmail = (value) => {
29445
+ if (typeof value !== "string") return "";
29446
+ return value.trim().toLowerCase();
29447
+ };
29419
29448
  const resolveChanges = (editor) => {
29420
29449
  if (!editor) return { role: "editor", isInternal: false, currentUser: null, resolver: null };
29421
29450
  const role = editor.options?.role ?? "editor";
@@ -29428,10 +29457,10 @@ const isTrackedChangeActionAllowed = ({ editor, action, trackedChanges }) => {
29428
29457
  if (!trackedChanges?.length) return true;
29429
29458
  const { role, isInternal, currentUser, resolver } = resolveChanges(editor);
29430
29459
  if (typeof resolver !== "function") return true;
29431
- const currentEmail = currentUser?.email ?? null;
29460
+ const currentEmail = normalizeEmail(currentUser?.email);
29432
29461
  return trackedChanges.every((change) => {
29433
- const authorEmail = change.attrs?.authorEmail ?? null;
29434
- const isOwn = Boolean(currentEmail && authorEmail && currentEmail === authorEmail);
29462
+ const authorEmail = normalizeEmail(change.attrs?.authorEmail);
29463
+ const isOwn = !currentEmail || !authorEmail || currentEmail === authorEmail;
29435
29464
  const permission = derivePermissionKey({ action, isOwn });
29436
29465
  if (!permission) return true;
29437
29466
  const payload = {
@@ -1,6 +1,6 @@
1
1
  import { computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, normalizeStyle, ref, withKeys, unref, withModifiers, createBlock, toDisplayString, withDirectives, vModelText, nextTick, getCurrentInstance, createVNode, readonly, watch, onMounted, onBeforeUnmount, reactive, onBeforeMount, inject, onActivated, onDeactivated, createTextVNode, Fragment, Comment, defineComponent, provide, h, Teleport, toRef, renderSlot, isVNode, shallowRef, watchEffect, mergeProps, Transition, vShow, cloneVNode, Text, renderList, withCtx } from "vue";
2
2
  import { p as process$1 } from "./converter-khE-H7hH.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-CeTu_f0L.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-wd9pvfTV.js";
4
4
  const sanitizeNumber = (value, defaultNumber) => {
5
5
  let sanitized = value.replace(/[^0-9.]/g, "");
6
6
  sanitized = parseFloat(sanitized);
@@ -1,4 +1,4 @@
1
- import { E } from "./chunks/editor-CeTu_f0L.js";
1
+ import { E } from "./chunks/editor-wd9pvfTV.js";
2
2
  import "./chunks/converter-khE-H7hH.js";
3
3
  import "./chunks/docx-zipper-KoUEtzIj.js";
4
4
  export {
@@ -11,10 +11,10 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
11
11
  var _SuperToolbar_instances, initToolbarGroups_fn, _interceptedCommands, makeToolbarItems_fn, initDefaultFonts_fn, updateHighlightColors_fn, deactivateAll_fn, updateToolbarHistory_fn, enrichTrackedChanges_fn, runCommandWithArgumentOnly_fn;
12
12
  import { aA as getDefaultExportFromCjs, V as v4, T as TextSelection$1, v as getMarkRange, aD as vClickOutside, H as findParentNode, aE as getActiveFormatting, av as isInTable, aF as readFromClipboard, aG as handleClipboardPaste, aH as getFileObject, aI as runPropertyTranslators, aJ as translator, aK as translator$1, aL as translator$2, aM as translator$3, aN as translator$4, aO as translator$5, aP as translator$6, aQ as translator$7, aR as translator$8, aS as translator$9, aT as translator$a, aU as translator$b, aV as translator$c, aW as translator$d, aX as translator$e, aY as commentRangeEndTranslator, aZ as commentRangeStartTranslator, a_ as translator$f, a$ as translator$g, b0 as translator$h, b1 as translator$i, b2 as translator$j, b3 as translator$k, b4 as translator$l, b5 as translator$m, b6 as translator$n, b7 as translator$o, b8 as translator$p, b9 as translator$q, ba as translator$r, bb as translator$s, bc as translator$t, bd as translator$u, be as translator$v, bf as translator$w, bg as translator$x, bh as translator$y, bi as translator$z, bj as translator$A, bk as translator$B, bl as translator$C, bm as translator$D, bn as translator$E, bo as translator$F, bp as translator$G, bq as translator$H, br as translator$I, bs as translator$J, bt as translator$K, bu as translator$L, bv as translator$M, bw as translator$N, bx as translator$O, by as translator$P, bz as translator$Q, bA as translator$R, bB as translator$S, bC as translator$T, bD as translator$U, bE as translator$V, bF as translator$W, bG as translator$X, bH as translator$Y, bI as translator$Z, bJ as translator$_, bK as translator$$, bL as translator$10, bM as translator$11, bN as translator$12, bO as translator$13, bP as translator$14, bQ as translator$15, bR as translator$16, bS as translator$17, bT as translator$18, bU as translator$19, bV as translator$1a, bW as translator$1b, bX as translator$1c, bY as translator$1d, bZ as translator$1e, b_ as translator$1f, b$ as translator$1g, c0 as translator$1h, P as PluginKey, a as Plugin } from "./chunks/converter-khE-H7hH.js";
13
13
  import { c1, a5, i, a2 } from "./chunks/converter-khE-H7hH.js";
14
- import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, d as checkAndProcessImage, r as replaceSelectionWithImagePlaceholder, e as uploadAndInsertImage, f as collectTrackedChanges, i as isTrackedChangeActionAllowed, y as yUndoPluginKey, h as undoDepth, j as redoDepth, k as collectTrackedChangesForContext, s as shouldBypassContextMenu, S as SlashMenuPluginKey, E as Editor, l as getStarterExtensions, P as Placeholder, m as getRichTextExtensions, D as DecorationSet, n as Decoration, M as Mark, o as Extension, A as Attribute, N as Node } from "./chunks/editor-CeTu_f0L.js";
15
- import { t, C, v, T, p, w, q } from "./chunks/editor-CeTu_f0L.js";
14
+ import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, d as checkAndProcessImage, r as replaceSelectionWithImagePlaceholder, e as uploadAndInsertImage, f as collectTrackedChanges, i as isTrackedChangeActionAllowed, y as yUndoPluginKey, h as undoDepth, j as redoDepth, k as collectTrackedChangesForContext, s as shouldBypassContextMenu, S as SlashMenuPluginKey, E as Editor, l as getStarterExtensions, P as Placeholder, m as getRichTextExtensions, D as DecorationSet, n as Decoration, M as Mark, o as Extension, A as Attribute, N as Node } from "./chunks/editor-wd9pvfTV.js";
15
+ import { t, C, v, T, p, w, q } from "./chunks/editor-wd9pvfTV.js";
16
16
  import { ref, onMounted, createElementBlock, openBlock, normalizeClass, unref, Fragment, renderList, createElementVNode, withModifiers, toDisplayString, createCommentVNode, normalizeStyle, computed, watch, withDirectives, withKeys, vModelText, createTextVNode, createVNode, h, createApp, markRaw, nextTick, onBeforeUnmount, reactive, onUnmounted, renderSlot, shallowRef, createBlock, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps } from "vue";
17
- import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, p as plusIconSvg, a as trashIconSvg, b as borderNoneIconSvg, c as arrowsToDotIconSvg, d as arrowsLeftRightIconSvg, w as wrenchIconSvg, m as magicWandIcon, e as checkIconSvg$1, x as xMarkIconSvg, l as linkIconSvg, f as tableIconSvg, g as scissorsIconSvg, h as copyIconSvg, i as pasteIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-D1RxvV5u.js";
17
+ import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, p as plusIconSvg, a as trashIconSvg, b as borderNoneIconSvg, c as arrowsToDotIconSvg, d as arrowsLeftRightIconSvg, w as wrenchIconSvg, m as magicWandIcon, e as checkIconSvg$1, x as xMarkIconSvg, l as linkIconSvg, f as tableIconSvg, g as scissorsIconSvg, h as copyIconSvg, i as pasteIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-CWJmT_bY.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
19
  import { D } from "./chunks/docx-zipper-KoUEtzIj.js";
20
20
  import { createZip } from "./file-zipper.es.js";
@@ -1,6 +1,6 @@
1
1
  import "vue";
2
- import { T } from "./chunks/toolbar-D1RxvV5u.js";
3
- import "./chunks/editor-CeTu_f0L.js";
2
+ import { T } from "./chunks/toolbar-CWJmT_bY.js";
3
+ import "./chunks/editor-wd9pvfTV.js";
4
4
  export {
5
5
  T as default
6
6
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./chunks/super-editor.es-DZb1VLxX.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-C74O3hXJ.cjs");
4
4
  require("./chunks/vue-DKMj1I9B.cjs");
5
5
  exports.AIWriter = superEditor_es.AIWriter;
6
6
  exports.AnnotatorHelpers = superEditor_es.AnnotatorHelpers;
@@ -1,4 +1,4 @@
1
- import { A, a, _, C, D, E, b, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-BewiNPbf.es.js";
1
+ import { A, a, _, C, D, E, b, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-DznCuGcp.es.js";
2
2
  import "./chunks/vue-ZWZLQtoU.es.js";
3
3
  export {
4
4
  A as AIWriter,
package/dist/superdoc.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./chunks/super-editor.es-DZb1VLxX.cjs");
4
- const superdoc = require("./chunks/index-CAVKoWDJ.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-C74O3hXJ.cjs");
4
+ const superdoc = require("./chunks/index-W-nB4woH.cjs");
5
5
  require("./chunks/vue-DKMj1I9B.cjs");
6
6
  const blankDocx = require("./chunks/blank-docx-DfW3Eeh2.cjs");
7
7
  exports.AnnotatorHelpers = superEditor_es.AnnotatorHelpers;
@@ -1,5 +1,5 @@
1
- import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-BewiNPbf.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-ClUzozbw.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-DznCuGcp.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-kTEBpqiG.es.js";
3
3
  import "./chunks/vue-ZWZLQtoU.es.js";
4
4
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
5
5
  export {
@@ -60412,6 +60412,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
60412
60412
  * @param {string} documentMode - The document mode ('editing', 'viewing', 'suggesting')
60413
60413
  */
60414
60414
  setDocumentMode(documentMode) {
60415
+ if (this.options.isHeaderOrFooter || this.options.isChildEditor) return;
60415
60416
  let cleanedMode = documentMode?.toLowerCase() || "editing";
60416
60417
  if (!this.extensionService || !this.state) return;
60417
60418
  const pm = this.view?.dom || this.options.element?.querySelector?.(".ProseMirror");
@@ -60427,7 +60428,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
60427
60428
  isEditMode: false,
60428
60429
  documentMode: cleanedMode
60429
60430
  });
60430
- if (!this.options.isHeaderOrFooter && pm) pm.classList.add("view-mode");
60431
+ if (pm) pm.classList.add("view-mode");
60431
60432
  } else if (cleanedMode === "suggesting") {
60432
60433
  __privateMethod$1(this, _Editor_instances, registerPluginByNameIfNotExists_fn).call(this, "TrackChangesBase");
60433
60434
  this.commands.disableTrackChangesShowOriginal();
@@ -75278,6 +75279,10 @@ Please report this to https://github.com/markedjs/marked.`, e) {
75278
75279
  if (!mapping) return null;
75279
75280
  return isOwn ? mapping.own : mapping.other;
75280
75281
  };
75282
+ const normalizeEmail = (value) => {
75283
+ if (typeof value !== "string") return "";
75284
+ return value.trim().toLowerCase();
75285
+ };
75281
75286
  const resolveChanges = (editor) => {
75282
75287
  if (!editor) return { role: "editor", isInternal: false, currentUser: null, resolver: null };
75283
75288
  const role = editor.options?.role ?? "editor";
@@ -75290,10 +75295,10 @@ Please report this to https://github.com/markedjs/marked.`, e) {
75290
75295
  if (!trackedChanges?.length) return true;
75291
75296
  const { role, isInternal, currentUser, resolver } = resolveChanges(editor);
75292
75297
  if (typeof resolver !== "function") return true;
75293
- const currentEmail = currentUser?.email ?? null;
75298
+ const currentEmail = normalizeEmail(currentUser?.email);
75294
75299
  return trackedChanges.every((change) => {
75295
- const authorEmail = change.attrs?.authorEmail ?? null;
75296
- const isOwn = Boolean(currentEmail && authorEmail && currentEmail === authorEmail);
75300
+ const authorEmail = normalizeEmail(change.attrs?.authorEmail);
75301
+ const isOwn = !currentEmail || !authorEmail || currentEmail === authorEmail;
75297
75302
  const permission = derivePermissionKey({ action, isOwn });
75298
75303
  if (!permission) return true;
75299
75304
  const payload = {
@@ -113985,6 +113990,10 @@ ${style2}
113985
113990
  }
113986
113991
  return currentName;
113987
113992
  };
113993
+ const DEFAULT_USER = Object.freeze({
113994
+ name: "Default SuperDoc user",
113995
+ email: null
113996
+ });
113988
113997
  class SuperDoc extends EventEmitter {
113989
113998
  /** @type {Array<string>} */
113990
113999
  static allowedTypes = [DOCX, PDF, HTML];
@@ -114063,6 +114072,18 @@ ${style2}
114063
114072
  ...this.config,
114064
114073
  ...config2
114065
114074
  };
114075
+ const incomingUser = this.config.user;
114076
+ if (!incomingUser || typeof incomingUser !== "object") {
114077
+ this.config.user = { ...DEFAULT_USER };
114078
+ } else {
114079
+ this.config.user = {
114080
+ ...DEFAULT_USER,
114081
+ ...incomingUser
114082
+ };
114083
+ if (!this.config.user.name) {
114084
+ this.config.user.name = DEFAULT_USER.name;
114085
+ }
114086
+ }
114066
114087
  this.config.modules = this.config.modules || {};
114067
114088
  if (!Object.prototype.hasOwnProperty.call(this.config.modules, "comments")) {
114068
114089
  this.config.modules.comments = {};