@stll/folio-core 0.66.0 → 0.66.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.
- package/dist/ai-edits/apply.d.ts +13 -1
- package/dist/ai-edits/apply.js +533 -136
- package/dist/ai-edits/batch-claims.d.ts +26 -0
- package/dist/ai-edits/batch-claims.js +30 -5
- package/dist/ai-edits/headless.d.ts +6 -0
- package/dist/ai-edits/headless.js +25 -3
- package/dist/ai-edits/newListNumbering.d.ts +4 -1
- package/dist/ai-edits/newListNumbering.js +4 -2
- package/dist/ai-edits/types.d.ts +1 -1
- package/dist/document-operations.d.ts +13 -1
- package/dist/document-operations.js +11 -4
- package/dist/docx/listNumberingInstances.d.ts +6 -4
- package/dist/docx/listNumberingInstances.js +12 -11
- package/dist/docx/numberingIds.d.ts +10 -0
- package/dist/docx/numberingIds.js +5 -1
- package/dist/docx/paragraphParser.js +16 -3
- package/dist/docx/paragraphProperties.js +2 -1
- package/dist/docx/serializer/paragraphSerializer.js +86 -66
- package/dist/fonts/bundledFonts.d.ts +54 -0
- package/dist/fonts/bundledFonts.js +45 -0
- package/dist/fonts/fontsourceFaces.d.ts +9 -14
- package/dist/fonts/fontsourceFaces.js +10 -22
- package/dist/i18n/messages/ar.gen.js +1 -0
- package/dist/i18n/messages/catalogs.gen.d.ts +17 -0
- package/dist/i18n/messages/catalogs.gen.js +17 -0
- package/dist/i18n/messages/cs.gen.js +1 -0
- package/dist/i18n/messages/de.gen.js +1 -0
- package/dist/i18n/messages/en.gen.js +1 -0
- package/dist/i18n/messages/es.gen.js +1 -0
- package/dist/i18n/messages/et.gen.js +1 -0
- package/dist/i18n/messages/fr.gen.js +1 -0
- package/dist/i18n/messages/he.gen.js +1 -0
- package/dist/i18n/messages/hi.gen.js +1 -0
- package/dist/i18n/messages/hu.gen.js +1 -0
- package/dist/i18n/messages/lt.gen.js +1 -0
- package/dist/i18n/messages/lv.gen.js +1 -0
- package/dist/i18n/messages/messages.gen.d.ts +1 -0
- package/dist/i18n/messages/pl.gen.js +1 -0
- package/dist/i18n/messages/pt-BR.gen.js +1 -0
- package/dist/i18n/messages/sk.gen.js +1 -0
- package/dist/i18n/messages/tr.gen.js +1 -0
- package/dist/i18n/messages/zh-CN.gen.js +1 -0
- package/dist/internal/wholeStoryRevisionResolution.d.ts +1 -1
- package/dist/internal/wholeStoryRevisionResolution.js +24 -9
- package/dist/layout-bridge/convert/runMarkFormatting.js +1 -0
- package/dist/markdown/renderRuns.js +68 -12
- package/dist/prosemirror/commands/comments.js +2 -0
- package/dist/prosemirror/commands/resolveParagraphProperties.js +15 -2
- package/dist/prosemirror/conversion/fromProseDoc.js +55 -18
- package/dist/prosemirror/conversion/hyphenTextCarriers.d.ts +23 -1
- package/dist/prosemirror/conversion/hyphenTextCarriers.js +46 -1
- package/dist/prosemirror/conversion/toProseDoc.js +15 -9
- package/dist/prosemirror/extensions/StarterKit.js +1 -1
- package/dist/prosemirror/extensions/features/pasteCleanup.js +6 -0
- package/dist/prosemirror/extensions/features/pastedHtmlLists.js +2 -1
- package/dist/prosemirror/extensions/markRegistry.d.ts +3 -1
- package/dist/prosemirror/extensions/markRegistry.js +3 -0
- package/dist/prosemirror/extensions/marks/HyphenElementExtension.d.ts +6 -0
- package/dist/prosemirror/extensions/marks/HyphenElementExtension.js +54 -0
- package/dist/prosemirror/fieldRepresentation.js +2 -1
- package/dist/prosemirror/hyphenElementAttrs.d.ts +10 -0
- package/dist/prosemirror/hyphenElementAttrs.js +32 -0
- package/dist/prosemirror/keptRangeBoundaries.d.ts +2 -0
- package/dist/prosemirror/keptRangeBoundaries.js +1 -1
- package/dist/prosemirror/listNumbering.js +3 -2
- package/dist/prosemirror/paragraphIndentation.js +2 -1
- package/dist/prosemirror/paragraphPropertyCarry.d.ts +1 -14
- package/dist/prosemirror/paragraphPropertyCarry.js +4 -28
- package/dist/prosemirror/plugins/suggestionMode.js +19 -6
- package/dist/prosemirror/replacedAnnotations.d.ts +1 -0
- package/dist/prosemirror/replacedAnnotations.js +1 -0
- package/dist/prosemirror/sectionCarrier.d.ts +8 -0
- package/dist/prosemirror/sectionCarrier.js +29 -1
- package/dist/prosemirror/styles/paragraphStyleCascade.d.ts +10 -0
- package/dist/prosemirror/styles/paragraphStyleCascade.js +12 -2
- package/dist/prosemirror/tableRunIn.d.ts +24 -9
- package/dist/prosemirror/tableRunIn.js +107 -21
- package/dist/prosemirror/textInput.js +3 -1
- package/dist/prosemirror/validation.js +6 -0
- package/dist/utils/createDocument.js +11 -8
- package/dist/utils/fontLoader.d.ts +1 -1
- package/dist/utils/fontLoader.js +3 -11
- package/dist/utils/formatToStyle.js +2 -2
- package/dist/utils/units.d.ts +5 -0
- package/dist/utils/units.js +6 -1
- package/package.json +6 -4
|
@@ -336,6 +336,7 @@ const CATALOGS = {
|
|
|
336
336
|
"editSaveFailedTitle": "Could not save DOCX",
|
|
337
337
|
"editSessionTakenOver": "Another tab, window, or device opened this document for editing, so this session was released. Unsaved local changes are preserved — reopen the doc to continue.",
|
|
338
338
|
"editor": {
|
|
339
|
+
"accessibleName": "Document editor",
|
|
339
340
|
"editing": "Editing",
|
|
340
341
|
"editingDescription": "Edit the document directly",
|
|
341
342
|
"outlineDepthAll": "All levels",
|
|
@@ -994,6 +995,7 @@ const CATALOGS = {
|
|
|
994
995
|
"editSaveFailedTitle": "DOCX-Datei konnte nicht gespeichert werden",
|
|
995
996
|
"editSessionTakenOver": "Diese Bearbeitungssitzung wurde an anderer Stelle übernommen.",
|
|
996
997
|
"editor": {
|
|
998
|
+
"accessibleName": "Dokumenteditor",
|
|
997
999
|
"editing": "Bearbeiten",
|
|
998
1000
|
"editingDescription": "Dokument direkt bearbeiten",
|
|
999
1001
|
"outlineDepthAll": "Alle Ebenen",
|
|
@@ -1652,6 +1654,7 @@ const CATALOGS = {
|
|
|
1652
1654
|
"editSaveFailedTitle": "Impossible d’enregistrer le DOCX",
|
|
1653
1655
|
"editSessionTakenOver": "Cette session de modification a été reprise ailleurs.",
|
|
1654
1656
|
"editor": {
|
|
1657
|
+
"accessibleName": "Éditeur de documents",
|
|
1655
1658
|
"editing": "Modification",
|
|
1656
1659
|
"editingDescription": "Modifier directement le document",
|
|
1657
1660
|
"outlineDepthAll": "Tous les niveaux",
|
|
@@ -2310,6 +2313,7 @@ const CATALOGS = {
|
|
|
2310
2313
|
"editSaveFailedTitle": "No se pudo guardar el DOCX",
|
|
2311
2314
|
"editSessionTakenOver": "Esta sesión de edición se tomó en otro lugar.",
|
|
2312
2315
|
"editor": {
|
|
2316
|
+
"accessibleName": "Editor de documentos",
|
|
2313
2317
|
"editing": "Edición",
|
|
2314
2318
|
"editingDescription": "Editar el documento directamente",
|
|
2315
2319
|
"outlineDepthAll": "Todos los niveles",
|
|
@@ -2968,6 +2972,7 @@ const CATALOGS = {
|
|
|
2968
2972
|
"editSaveFailedTitle": "DOCX se nepodařilo uložit",
|
|
2969
2973
|
"editSessionTakenOver": "Tento dokument byl otevřen k úpravám v jiné kartě, okně nebo zařízení, takže byla tato relace ukončena. Neuložené místní změny zůstávají zachovány — otevřete dokument znovu a pokračujte.",
|
|
2970
2974
|
"editor": {
|
|
2975
|
+
"accessibleName": "Editor dokumentů",
|
|
2971
2976
|
"editing": "Úpravy",
|
|
2972
2977
|
"editingDescription": "Upravovat dokument přímo",
|
|
2973
2978
|
"outlineDepthAll": "Vše",
|
|
@@ -3626,6 +3631,7 @@ const CATALOGS = {
|
|
|
3626
3631
|
"editSaveFailedTitle": "تعذّر حفظ ملف DOCX",
|
|
3627
3632
|
"editSessionTakenOver": "فتح علامة تبويب أو نافذة أو جهاز آخر هذا المستند للتعديل، لذا تم تحرير هذه الجلسة. تم الحفاظ على التغييرات المحلية غير المحفوظة؛ أعد فتح المستند للمتابعة.",
|
|
3628
3633
|
"editor": {
|
|
3634
|
+
"accessibleName": "محرر المستندات",
|
|
3629
3635
|
"editing": "تحرير",
|
|
3630
3636
|
"editingDescription": "تحرير المستند مباشرةً",
|
|
3631
3637
|
"outlineDepthAll": "كل المستويات",
|
|
@@ -4284,6 +4290,7 @@ const CATALOGS = {
|
|
|
4284
4290
|
"editSaveFailedTitle": "DOCX-i ei saanud salvestada",
|
|
4285
4291
|
"editSessionTakenOver": "See muutmisseanss võeti mujal üle.",
|
|
4286
4292
|
"editor": {
|
|
4293
|
+
"accessibleName": "Dokumendiredaktor",
|
|
4287
4294
|
"editing": "Redigeerimine",
|
|
4288
4295
|
"editingDescription": "Redigeerige dokumenti otse",
|
|
4289
4296
|
"outlineDepthAll": "Kõik tasemed",
|
|
@@ -4942,6 +4949,7 @@ const CATALOGS = {
|
|
|
4942
4949
|
"editSaveFailedTitle": "לא ניתן לשמור את ה-DOCX",
|
|
4943
4950
|
"editSessionTakenOver": "כרטיסייה, חלון או מכשיר אחר פתחו מסמך זה לעריכה, ולכן הפעלה זו שוחררה. שינויים מקומיים שלא נשמרו נשמרו — פתח מחדש את המסמך כדי להמשיך.",
|
|
4944
4951
|
"editor": {
|
|
4952
|
+
"accessibleName": "עורך מסמכים",
|
|
4945
4953
|
"editing": "עריכה",
|
|
4946
4954
|
"editingDescription": "ערוך את המסמך ישירות",
|
|
4947
4955
|
"outlineDepthAll": "כל הרמות",
|
|
@@ -5600,6 +5608,7 @@ const CATALOGS = {
|
|
|
5600
5608
|
"editSaveFailedTitle": "DOCX सहेजा नहीं जा सका",
|
|
5601
5609
|
"editSessionTakenOver": "किसी अन्य टैब, विंडो या डिवाइस ने इस दस्तावेज़ को संपादन के लिए खोला, इसलिए यह सत्र बंद कर दिया गया। सहेजे नहीं गए स्थानीय परिवर्तन सुरक्षित हैं — जारी रखने के लिए दस्तावेज़ फिर से खोलें।",
|
|
5602
5610
|
"editor": {
|
|
5611
|
+
"accessibleName": "दस्तावेज़ संपादक",
|
|
5603
5612
|
"editing": "संपादन",
|
|
5604
5613
|
"editingDescription": "दस्तावेज़ को सीधे संपादित करें",
|
|
5605
5614
|
"outlineDepthAll": "सभी स्तर",
|
|
@@ -6258,6 +6267,7 @@ const CATALOGS = {
|
|
|
6258
6267
|
"editSaveFailedTitle": "A DOCX nem menthető",
|
|
6259
6268
|
"editSessionTakenOver": "Ezt a szerkesztési munkamenetet máshol vették át.",
|
|
6260
6269
|
"editor": {
|
|
6270
|
+
"accessibleName": "Dokumentumszerkesztő",
|
|
6261
6271
|
"editing": "Szerkesztés",
|
|
6262
6272
|
"editingDescription": "A dokumentum közvetlen szerkesztése",
|
|
6263
6273
|
"outlineDepthAll": "Minden szint",
|
|
@@ -6916,6 +6926,7 @@ const CATALOGS = {
|
|
|
6916
6926
|
"editSaveFailedTitle": "Nepavyko išsaugoti DOCX",
|
|
6917
6927
|
"editSessionTakenOver": "Ši redagavimo sesija buvo perimta kitur.",
|
|
6918
6928
|
"editor": {
|
|
6929
|
+
"accessibleName": "Dokumentų redaktorius",
|
|
6919
6930
|
"editing": "Redagavimas",
|
|
6920
6931
|
"editingDescription": "Redaguokite dokumentą tiesiogiai",
|
|
6921
6932
|
"outlineDepthAll": "Visi lygiai",
|
|
@@ -7574,6 +7585,7 @@ const CATALOGS = {
|
|
|
7574
7585
|
"editSaveFailedTitle": "Neizdevās saglabāt DOCX",
|
|
7575
7586
|
"editSessionTakenOver": "Šo rediģēšanas sesiju pārņēma citur.",
|
|
7576
7587
|
"editor": {
|
|
7588
|
+
"accessibleName": "Dokumentu redaktors",
|
|
7577
7589
|
"editing": "Rediģēšana",
|
|
7578
7590
|
"editingDescription": "Rediģējiet dokumentu tieši",
|
|
7579
7591
|
"outlineDepthAll": "Visi līmeņi",
|
|
@@ -8232,6 +8244,7 @@ const CATALOGS = {
|
|
|
8232
8244
|
"editSaveFailedTitle": "Nie udało się zapisać pliku DOCX",
|
|
8233
8245
|
"editSessionTakenOver": "Ta sesja edycji została przejęta gdzie indziej.",
|
|
8234
8246
|
"editor": {
|
|
8247
|
+
"accessibleName": "Edytor dokumentów",
|
|
8235
8248
|
"editing": "Edytowanie",
|
|
8236
8249
|
"editingDescription": "Edytuj dokument bezpośrednio",
|
|
8237
8250
|
"outlineDepthAll": "Wszystkie poziomy",
|
|
@@ -8890,6 +8903,7 @@ const CATALOGS = {
|
|
|
8890
8903
|
"editSaveFailedTitle": "Não foi possível salvar DOCX",
|
|
8891
8904
|
"editSessionTakenOver": "Esta sessão de edição foi assumida em outro lugar.",
|
|
8892
8905
|
"editor": {
|
|
8906
|
+
"accessibleName": "Editor de documentos",
|
|
8893
8907
|
"editing": "Editando",
|
|
8894
8908
|
"editingDescription": "Edite o documento diretamente",
|
|
8895
8909
|
"outlineDepthAll": "Todos os níveis",
|
|
@@ -9548,6 +9562,7 @@ const CATALOGS = {
|
|
|
9548
9562
|
"editSaveFailedTitle": "DOCX sa nepodarilo uložiť",
|
|
9549
9563
|
"editSessionTakenOver": "Túto reláciu úprav prevzalo iné okno.",
|
|
9550
9564
|
"editor": {
|
|
9565
|
+
"accessibleName": "Editor dokumentov",
|
|
9551
9566
|
"editing": "Úpravy",
|
|
9552
9567
|
"editingDescription": "Upravujte dokument priamo",
|
|
9553
9568
|
"outlineDepthAll": "Všetky úrovne",
|
|
@@ -10206,6 +10221,7 @@ const CATALOGS = {
|
|
|
10206
10221
|
"editSaveFailedTitle": "DOCX kaydedilemedi",
|
|
10207
10222
|
"editSessionTakenOver": "Başka bir sekme, pencere veya cihaz bu belgeyi düzenlemek için açtığından bu oturum sonlandırıldı. Kaydedilmemiş yerel değişiklikler korunur; devam etmek için belgeyi yeniden açın.",
|
|
10208
10223
|
"editor": {
|
|
10224
|
+
"accessibleName": "Belge düzenleyici",
|
|
10209
10225
|
"editing": "Düzenleme",
|
|
10210
10226
|
"editingDescription": "Belgeyi doğrudan düzenleyin",
|
|
10211
10227
|
"outlineDepthAll": "Tüm düzeyler",
|
|
@@ -10864,6 +10880,7 @@ const CATALOGS = {
|
|
|
10864
10880
|
"editSaveFailedTitle": "无法保存 DOCX",
|
|
10865
10881
|
"editSessionTakenOver": "另一个标签页、窗口或设备已打开此文档进行编辑,因此本会话已释放。未保存的本地更改会保留,请重新打开文档以继续。",
|
|
10866
10882
|
"editor": {
|
|
10883
|
+
"accessibleName": "文档编辑器",
|
|
10867
10884
|
"editing": "编辑",
|
|
10868
10885
|
"editingDescription": "直接编辑文档",
|
|
10869
10886
|
"outlineDepthAll": "所有级别",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "DOCX se nepodařilo uložit",
|
|
336
336
|
"editSessionTakenOver": "Tento dokument byl otevřen k úpravám v jiné kartě, okně nebo zařízení, takže byla tato relace ukončena. Neuložené místní změny zůstávají zachovány — otevřete dokument znovu a pokračujte.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Editor dokumentů",
|
|
338
339
|
"editing": "Úpravy",
|
|
339
340
|
"editingDescription": "Upravovat dokument přímo",
|
|
340
341
|
"outlineDepthAll": "Vše",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "DOCX-Datei konnte nicht gespeichert werden",
|
|
336
336
|
"editSessionTakenOver": "Diese Bearbeitungssitzung wurde an anderer Stelle übernommen.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Dokumenteditor",
|
|
338
339
|
"editing": "Bearbeiten",
|
|
339
340
|
"editingDescription": "Dokument direkt bearbeiten",
|
|
340
341
|
"outlineDepthAll": "Alle Ebenen",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "Could not save DOCX",
|
|
336
336
|
"editSessionTakenOver": "Another tab, window, or device opened this document for editing, so this session was released. Unsaved local changes are preserved — reopen the doc to continue.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Document editor",
|
|
338
339
|
"editing": "Editing",
|
|
339
340
|
"editingDescription": "Edit the document directly",
|
|
340
341
|
"outlineDepthAll": "All levels",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "No se pudo guardar el DOCX",
|
|
336
336
|
"editSessionTakenOver": "Esta sesión de edición se tomó en otro lugar.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Editor de documentos",
|
|
338
339
|
"editing": "Edición",
|
|
339
340
|
"editingDescription": "Editar el documento directamente",
|
|
340
341
|
"outlineDepthAll": "Todos los niveles",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "DOCX-i ei saanud salvestada",
|
|
336
336
|
"editSessionTakenOver": "See muutmisseanss võeti mujal üle.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Dokumendiredaktor",
|
|
338
339
|
"editing": "Redigeerimine",
|
|
339
340
|
"editingDescription": "Redigeerige dokumenti otse",
|
|
340
341
|
"outlineDepthAll": "Kõik tasemed",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "Impossible d’enregistrer le DOCX",
|
|
336
336
|
"editSessionTakenOver": "Cette session de modification a été reprise ailleurs.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Éditeur de documents",
|
|
338
339
|
"editing": "Modification",
|
|
339
340
|
"editingDescription": "Modifier directement le document",
|
|
340
341
|
"outlineDepthAll": "Tous les niveaux",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "לא ניתן לשמור את ה-DOCX",
|
|
336
336
|
"editSessionTakenOver": "כרטיסייה, חלון או מכשיר אחר פתחו מסמך זה לעריכה, ולכן הפעלה זו שוחררה. שינויים מקומיים שלא נשמרו נשמרו — פתח מחדש את המסמך כדי להמשיך.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "עורך מסמכים",
|
|
338
339
|
"editing": "עריכה",
|
|
339
340
|
"editingDescription": "ערוך את המסמך ישירות",
|
|
340
341
|
"outlineDepthAll": "כל הרמות",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "DOCX सहेजा नहीं जा सका",
|
|
336
336
|
"editSessionTakenOver": "किसी अन्य टैब, विंडो या डिवाइस ने इस दस्तावेज़ को संपादन के लिए खोला, इसलिए यह सत्र बंद कर दिया गया। सहेजे नहीं गए स्थानीय परिवर्तन सुरक्षित हैं — जारी रखने के लिए दस्तावेज़ फिर से खोलें।",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "दस्तावेज़ संपादक",
|
|
338
339
|
"editing": "संपादन",
|
|
339
340
|
"editingDescription": "दस्तावेज़ को सीधे संपादित करें",
|
|
340
341
|
"outlineDepthAll": "सभी स्तर",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "A DOCX nem menthető",
|
|
336
336
|
"editSessionTakenOver": "Ezt a szerkesztési munkamenetet máshol vették át.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Dokumentumszerkesztő",
|
|
338
339
|
"editing": "Szerkesztés",
|
|
339
340
|
"editingDescription": "A dokumentum közvetlen szerkesztése",
|
|
340
341
|
"outlineDepthAll": "Minden szint",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "Nepavyko išsaugoti DOCX",
|
|
336
336
|
"editSessionTakenOver": "Ši redagavimo sesija buvo perimta kitur.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Dokumentų redaktorius",
|
|
338
339
|
"editing": "Redagavimas",
|
|
339
340
|
"editingDescription": "Redaguokite dokumentą tiesiogiai",
|
|
340
341
|
"outlineDepthAll": "Visi lygiai",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "Neizdevās saglabāt DOCX",
|
|
336
336
|
"editSessionTakenOver": "Šo rediģēšanas sesiju pārņēma citur.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Dokumentu redaktors",
|
|
338
339
|
"editing": "Rediģēšana",
|
|
339
340
|
"editingDescription": "Rediģējiet dokumentu tieši",
|
|
340
341
|
"outlineDepthAll": "Visi līmeņi",
|
|
@@ -335,6 +335,7 @@ type Messages = {
|
|
|
335
335
|
"editSaveFailedTitle": "Could not save DOCX";
|
|
336
336
|
"editSessionTakenOver": "Another tab, window, or device opened this document for editing, so this session was released. Unsaved local changes are preserved — reopen the doc to continue.";
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Document editor";
|
|
338
339
|
"editing": "Editing";
|
|
339
340
|
"editingDescription": "Edit the document directly";
|
|
340
341
|
"outlineDepthAll": "All levels";
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "Nie udało się zapisać pliku DOCX",
|
|
336
336
|
"editSessionTakenOver": "Ta sesja edycji została przejęta gdzie indziej.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Edytor dokumentów",
|
|
338
339
|
"editing": "Edytowanie",
|
|
339
340
|
"editingDescription": "Edytuj dokument bezpośrednio",
|
|
340
341
|
"outlineDepthAll": "Wszystkie poziomy",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "Não foi possível salvar DOCX",
|
|
336
336
|
"editSessionTakenOver": "Esta sessão de edição foi assumida em outro lugar.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Editor de documentos",
|
|
338
339
|
"editing": "Editando",
|
|
339
340
|
"editingDescription": "Edite o documento diretamente",
|
|
340
341
|
"outlineDepthAll": "Todos os níveis",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "DOCX sa nepodarilo uložiť",
|
|
336
336
|
"editSessionTakenOver": "Túto reláciu úprav prevzalo iné okno.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Editor dokumentov",
|
|
338
339
|
"editing": "Úpravy",
|
|
339
340
|
"editingDescription": "Upravujte dokument priamo",
|
|
340
341
|
"outlineDepthAll": "Všetky úrovne",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "DOCX kaydedilemedi",
|
|
336
336
|
"editSessionTakenOver": "Başka bir sekme, pencere veya cihaz bu belgeyi düzenlemek için açtığından bu oturum sonlandırıldı. Kaydedilmemiş yerel değişiklikler korunur; devam etmek için belgeyi yeniden açın.",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "Belge düzenleyici",
|
|
338
339
|
"editing": "Düzenleme",
|
|
339
340
|
"editingDescription": "Belgeyi doğrudan düzenleyin",
|
|
340
341
|
"outlineDepthAll": "Tüm düzeyler",
|
|
@@ -335,6 +335,7 @@ const messages = { "folio": {
|
|
|
335
335
|
"editSaveFailedTitle": "无法保存 DOCX",
|
|
336
336
|
"editSessionTakenOver": "另一个标签页、窗口或设备已打开此文档进行编辑,因此本会话已释放。未保存的本地更改会保留,请重新打开文档以继续。",
|
|
337
337
|
"editor": {
|
|
338
|
+
"accessibleName": "文档编辑器",
|
|
338
339
|
"editing": "编辑",
|
|
339
340
|
"editingDescription": "直接编辑文档",
|
|
340
341
|
"outlineDepthAll": "所有级别",
|
|
@@ -11,7 +11,7 @@ type ResolveWholeStoryOptions = {
|
|
|
11
11
|
styleResolver: RunStyleResolver | null;
|
|
12
12
|
numbering: NumberingMap | null;
|
|
13
13
|
};
|
|
14
|
-
export declare const resolveWholeStory: ({ doc, mode, styleResolver, numbering }: ResolveWholeStoryOptions) => {
|
|
14
|
+
export declare const resolveWholeStory: ({ doc: storyDoc, mode, styleResolver, numbering }: ResolveWholeStoryOptions) => {
|
|
15
15
|
resolved: Node;
|
|
16
16
|
mapping: Mapping;
|
|
17
17
|
positionMap: StepMap;
|
|
@@ -13,7 +13,8 @@ import { createResolvedCommentPointCollector } from "../prosemirror/replacedAnno
|
|
|
13
13
|
import { expandRunFormattingCarrier } from "../prosemirror/runFormattingInlineCarriers.js";
|
|
14
14
|
import { readAuthoredRunFormatting, reconcileRunFormattingMarks } from "../prosemirror/runFormattingReconciliation.js";
|
|
15
15
|
import { paragraphRunStyleContext } from "../prosemirror/runStyleFormatting.js";
|
|
16
|
-
import {
|
|
16
|
+
import { sectionRecordCopyPositions } from "../prosemirror/sectionCarrier.js";
|
|
17
|
+
import { paragraphBeforeRemovedBlock, runParagraphsIntoTables, runsIntoFollowingTable } from "../prosemirror/tableRunIn.js";
|
|
17
18
|
import { paragraphContentOf } from "../prosemirror/zeroWidthAnchors.js";
|
|
18
19
|
import { recordNodeResolution } from "./revisionResolutionEdits.js";
|
|
19
20
|
import { resolveInlineRevisions } from "./revisionResolutionInline.js";
|
|
@@ -36,12 +37,13 @@ const resolveProperties = ({ doc, mode, styleResolver, numbering, steps, changed
|
|
|
36
37
|
const walk = ({ node, position, eligibleComments = true, previous }) => {
|
|
37
38
|
const childComments = eligibleComments && collector.visit(node, position, previous);
|
|
38
39
|
if (node.isText) return node;
|
|
39
|
-
if (!runsIntoTable && !node.isTextblock) {
|
|
40
|
-
|
|
40
|
+
if (!runsIntoTable && !node.isTextblock) for (let index = 0; index + 1 < node.childCount; index++) {
|
|
41
|
+
const options = {
|
|
41
42
|
parent: node,
|
|
42
43
|
index,
|
|
43
44
|
mode
|
|
44
|
-
}
|
|
45
|
+
};
|
|
46
|
+
if (runsIntoFollowingTable(options) || paragraphBeforeRemovedBlock(options)) {
|
|
45
47
|
runsIntoTable = true;
|
|
46
48
|
break;
|
|
47
49
|
}
|
|
@@ -400,7 +402,7 @@ const resolveStructure = ({ node, position, context }) => {
|
|
|
400
402
|
markWasAdded,
|
|
401
403
|
containerStillEndsWithParagraph: true,
|
|
402
404
|
followingTableCanReceiveRunIn: false,
|
|
403
|
-
removedSectionProperties: markWasAdded &&
|
|
405
|
+
removedSectionProperties: markWasAdded && ownsSection(paragraph),
|
|
404
406
|
precedingSectionOwner: precedingSectionOwner(preceding, properties),
|
|
405
407
|
followingHasSectionProperties: ownsSection(chain.node)
|
|
406
408
|
});
|
|
@@ -612,17 +614,26 @@ const resolveStructure = ({ node, position, context }) => {
|
|
|
612
614
|
});
|
|
613
615
|
return final;
|
|
614
616
|
};
|
|
615
|
-
const resolveWholeStory = ({ doc, mode, styleResolver, numbering }) => {
|
|
617
|
+
const resolveWholeStory = ({ doc: storyDoc, mode, styleResolver, numbering }) => {
|
|
618
|
+
const withoutCopies = new Transform(storyDoc);
|
|
619
|
+
for (const position of sectionRecordCopyPositions(storyDoc)) withoutCopies.setNodeAttribute(position, "_sectionProperties", null);
|
|
620
|
+
const doc = withoutCopies.doc;
|
|
616
621
|
const { runsIntoTable, ...direct } = resolveStoryRevisions({
|
|
617
622
|
doc,
|
|
618
623
|
mode,
|
|
619
624
|
styleResolver,
|
|
620
625
|
numbering
|
|
621
626
|
});
|
|
622
|
-
if (!runsIntoTable) return
|
|
627
|
+
if (!runsIntoTable) return {
|
|
628
|
+
...direct,
|
|
629
|
+
steps: [...withoutCopies.steps, ...direct.steps]
|
|
630
|
+
};
|
|
623
631
|
const runIn = new Transform(doc);
|
|
624
632
|
const { targets, maps, transfers } = runParagraphsIntoTables(runIn, mode, styleResolver);
|
|
625
|
-
if (!runIn.docChanged) return
|
|
633
|
+
if (!runIn.docChanged) return {
|
|
634
|
+
...direct,
|
|
635
|
+
steps: [...withoutCopies.steps, ...direct.steps]
|
|
636
|
+
};
|
|
626
637
|
const { runsIntoTable: _rerun, ...result } = resolveStoryRevisions({
|
|
627
638
|
doc: runIn.doc,
|
|
628
639
|
mode,
|
|
@@ -642,7 +653,11 @@ const resolveWholeStory = ({ doc, mode, styleResolver, numbering }) => {
|
|
|
642
653
|
const positionMap = composeRevisionResolutionMaps(runInMap, result.positionMap);
|
|
643
654
|
return {
|
|
644
655
|
...result,
|
|
645
|
-
steps: [
|
|
656
|
+
steps: [
|
|
657
|
+
...withoutCopies.steps,
|
|
658
|
+
...runIn.steps,
|
|
659
|
+
...result.steps
|
|
660
|
+
],
|
|
646
661
|
positionMap,
|
|
647
662
|
mapping: new Mapping([positionMap]),
|
|
648
663
|
transfers: [...transfers, ...result.transfers]
|
|
@@ -148,17 +148,38 @@ function wrapFlanking(inner, mark, { before, after }) {
|
|
|
148
148
|
}
|
|
149
149
|
return units.slice(0, start).join("") + applyMarks(units.slice(start, end).join(""), start < end ? [mark] : []) + units.slice(end).join("");
|
|
150
150
|
}
|
|
151
|
-
/**
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
151
|
+
/**
|
|
152
|
+
* Whether paragraph content puts nothing on the line in this render. Left out
|
|
153
|
+
* of the content before runs group, so the runs on either side of it meet as
|
|
154
|
+
* they do on the line: emphasis closed and reopened around nothing reads as
|
|
155
|
+
* literal asterisks. Exhaustive, so new content decides here.
|
|
156
|
+
*/
|
|
157
|
+
const writesNothing = (ctx, item) => {
|
|
158
|
+
switch (item.type) {
|
|
159
|
+
case "bookmarkStart":
|
|
160
|
+
case "bookmarkEnd":
|
|
161
|
+
case "moveFromRangeStart":
|
|
162
|
+
case "moveFromRangeEnd":
|
|
163
|
+
case "moveToRangeStart":
|
|
164
|
+
case "moveToRangeEnd":
|
|
165
|
+
case "preservedInline": return true;
|
|
166
|
+
case "commentRangeStart":
|
|
167
|
+
case "commentRangeEnd":
|
|
168
|
+
case "commentReference": return ctx.opts.comments === "strip";
|
|
169
|
+
case "mathEquation": return !item.plainText;
|
|
170
|
+
case "inlineSdt":
|
|
171
|
+
case "inlineWrapper": return item.content.every((child) => writesNothing(ctx, child));
|
|
172
|
+
case "run":
|
|
173
|
+
case "hyperlink":
|
|
174
|
+
case "simpleField":
|
|
175
|
+
case "complexField":
|
|
176
|
+
case "insertion":
|
|
177
|
+
case "deletion":
|
|
178
|
+
case "moveFrom":
|
|
179
|
+
case "moveTo": return false;
|
|
180
|
+
default: return item;
|
|
181
|
+
}
|
|
182
|
+
};
|
|
162
183
|
/** The first character `piece` puts on the line, inside the marks `outer` already opened. */
|
|
163
184
|
const pieceStart = (piece, outer, order) => {
|
|
164
185
|
const first = piece.text.match(INLINE_UNIT)?.[0];
|
|
@@ -449,6 +470,40 @@ const cleanRevisionContent = (content) => content.flatMap((item) => {
|
|
|
449
470
|
default: return [item];
|
|
450
471
|
}
|
|
451
472
|
});
|
|
473
|
+
const COMMENT_MARKER_TYPES = /* @__PURE__ */ new Set([
|
|
474
|
+
"commentRangeStart",
|
|
475
|
+
"commentRangeEnd",
|
|
476
|
+
"commentReference"
|
|
477
|
+
]);
|
|
478
|
+
/**
|
|
479
|
+
* A comment marker bounds its comment wherever it stands; a save may write it
|
|
480
|
+
* inside the revision wrapper of the text it starts at, or beside it. Revision
|
|
481
|
+
* wrappers are split around their comment markers, so either reads the same.
|
|
482
|
+
*/
|
|
483
|
+
const commentMarkersOutsideRevisions = (content) => content.flatMap((item) => {
|
|
484
|
+
switch (item.type) {
|
|
485
|
+
case "insertion":
|
|
486
|
+
case "deletion":
|
|
487
|
+
case "moveFrom":
|
|
488
|
+
case "moveTo": break;
|
|
489
|
+
default: return [item];
|
|
490
|
+
}
|
|
491
|
+
const parts = [];
|
|
492
|
+
let held = [];
|
|
493
|
+
const flush = () => {
|
|
494
|
+
if (held.length > 0) parts.push({
|
|
495
|
+
...item,
|
|
496
|
+
content: held
|
|
497
|
+
});
|
|
498
|
+
held = [];
|
|
499
|
+
};
|
|
500
|
+
for (const child of commentMarkersOutsideRevisions(item.content)) if (COMMENT_MARKER_TYPES.has(child.type)) {
|
|
501
|
+
flush();
|
|
502
|
+
parts.push(child);
|
|
503
|
+
} else held.push(child);
|
|
504
|
+
flush();
|
|
505
|
+
return parts;
|
|
506
|
+
});
|
|
452
507
|
/**
|
|
453
508
|
* Render the full inline content of a paragraph, tracking comment-range
|
|
454
509
|
* boundaries to apply the configured wrapper.
|
|
@@ -459,7 +514,8 @@ function renderParagraphInline(ctx, pkg, content, paraId, edges = {
|
|
|
459
514
|
}) {
|
|
460
515
|
let out = "";
|
|
461
516
|
const openComments = [];
|
|
462
|
-
const
|
|
517
|
+
const hoistedContent = commentMarkersOutsideRevisions(content);
|
|
518
|
+
const items = (ctx.opts.trackedChanges === "clean" ? cleanRevisionContent(hoistedContent) : hoistedContent).filter((item) => !writesNothing(ctx, item));
|
|
463
519
|
const around = (index) => {
|
|
464
520
|
const next = items[index + 1];
|
|
465
521
|
return {
|
|
@@ -29,6 +29,7 @@ import { getFolioNodeRevisionCarriers, nodePropertyRevisionSites } from "../revi
|
|
|
29
29
|
import { RUN_FORMATTING_MARK_NAMES } from "../runFormattingMarkNames.js";
|
|
30
30
|
import { reconstructRejectedRunFormattingMarks, restoreHistoricalRunFormatting } from "../runPropertyChangeResolution.js";
|
|
31
31
|
import { paragraphRunStyleContextAt } from "../runStyleFormatting.js";
|
|
32
|
+
import { sectionRecordCopyPositions } from "../sectionCarrier.js";
|
|
32
33
|
import { getTableCellMergeChange } from "../tableCellMergeRevision.js";
|
|
33
34
|
import { isTableCellRetainedInReviewView } from "../tableCellRevisionVisibility.js";
|
|
34
35
|
import { markRowEmptiedInBatch, reconcileTableGridAfterColumnRemoval, removeRowsWithoutCellsAfterBatch, removeTableRow } from "../tableGridMutation.js";
|
|
@@ -391,6 +392,7 @@ function resolveChange(from, to, mode, revisionIds) {
|
|
|
391
392
|
if (node.type.spec["tableRole"] === "table" && runInCellPending(node)) pendingTables.push(position);
|
|
392
393
|
return !node.isTextblock;
|
|
393
394
|
});
|
|
395
|
+
if (pPrMarkOps.some(({ action }) => action !== "clear")) for (const position of sectionRecordCopyPositions(tr.doc)) tr.setNodeAttribute(position, "_sectionProperties", null);
|
|
394
396
|
const joinSeams = [];
|
|
395
397
|
for (const op of pPrMarkOps) {
|
|
396
398
|
const mappedPos = tr.mapping.map(op.paragraphPos);
|
|
@@ -3,7 +3,8 @@ import { expectParagraphAttrs } from "../attrs/index.js";
|
|
|
3
3
|
import { rejectedListRenderingPatch } from "../listRendering.js";
|
|
4
4
|
import { effectiveParagraphNumbering, paragraphNumberingAttr, paragraphNumberingSourcesFromBoundary } from "../numberingAttr.js";
|
|
5
5
|
import { paragraphIndentationFromFormatting } from "../paragraphIndentation.js";
|
|
6
|
-
import {
|
|
6
|
+
import { resolveParagraphInheritedRunFormatting } from "../runStyleFormatting.js";
|
|
7
|
+
import { inheritableParagraphMarkFormatting, resolveParagraphDefaultTextFormatting } from "../styles/paragraphStyleCascade.js";
|
|
7
8
|
import { listIndentationProvenancePatch } from "../styles/resolvedStyleAttrs.js";
|
|
8
9
|
import { paragraphRejectAttrPatch, paragraphRejectOriginalFormatting, removeParagraphPropertyChanges, sectionRejectProperties } from "./propertyChangeScope.js";
|
|
9
10
|
// src/prosemirror/commands/resolveParagraphProperties.ts
|
|
@@ -70,7 +71,19 @@ const resolveParagraphChangeAttrs = ({ node, boundaryCovered, mode, revisionSet,
|
|
|
70
71
|
});
|
|
71
72
|
Object.assign(nextAttrs, indentation);
|
|
72
73
|
nextAttrs["_originalFormatting"] = restoredFormatting;
|
|
73
|
-
if (styleResolver)
|
|
74
|
+
if (styleResolver) {
|
|
75
|
+
const styleId = rejection.previousFormatting?.styleId;
|
|
76
|
+
nextAttrs["defaultTextFormatting"] = (node.content.size === 0 ? resolveParagraphDefaultTextFormatting(styleId, restoredFormatting ?? void 0, styleResolver) : resolveParagraphInheritedRunFormatting({
|
|
77
|
+
styleId,
|
|
78
|
+
tableRunFormatting: expectParagraphAttrs(node)._tableRunFormatting,
|
|
79
|
+
styleResolver,
|
|
80
|
+
paragraphMarkFormatting: inheritableParagraphMarkFormatting({
|
|
81
|
+
runProperties: restoredFormatting?.runProperties,
|
|
82
|
+
styleId,
|
|
83
|
+
styleResolver
|
|
84
|
+
})
|
|
85
|
+
}).inheritedFormatting) ?? null;
|
|
86
|
+
}
|
|
74
87
|
}
|
|
75
88
|
}
|
|
76
89
|
}
|