@w100n/documents 0.16.1 → 0.16.3
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/{SheetView-FVLKQR7J.js → SheetView-KXFUAILH.js} +7 -5
- package/dist/SheetView-KXFUAILH.js.map +1 -0
- package/dist/{TextEditor-BF6HCNHL.js → TextEditor-RNHXPYJX.js} +19 -15
- package/dist/TextEditor-RNHXPYJX.js.map +1 -0
- package/dist/{chunk-GN3ZOD36.js → chunk-E2FVJNDT.js} +3 -3
- package/dist/{chunk-GN3ZOD36.js.map → chunk-E2FVJNDT.js.map} +1 -1
- package/dist/{chunk-LZYITB56.js → chunk-VNXZVOPN.js} +37 -1
- package/dist/chunk-VNXZVOPN.js.map +1 -0
- package/dist/{chunk-NPVH2YDI.js → chunk-XFLYD3JS.js} +2 -2
- package/dist/collab.cjs +37 -1
- package/dist/collab.cjs.map +1 -1
- package/dist/collab.d.cts +1 -1
- package/dist/collab.d.ts +1 -1
- package/dist/collab.js +2 -2
- package/dist/{grid-Q4XBPQFY.js → grid-IR5YFFSF.js} +33 -6
- package/dist/grid-IR5YFFSF.js.map +1 -0
- package/dist/index.cjs +313 -32
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +90 -6
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +232 -18
- package/dist/index.js.map +1 -1
- package/dist/kinds.d.cts +1 -1
- package/dist/kinds.d.ts +1 -1
- package/dist/memory.cjs +6 -0
- package/dist/memory.cjs.map +1 -1
- package/dist/memory.d.cts +1 -1
- package/dist/memory.d.ts +1 -1
- package/dist/memory.js +6 -0
- package/dist/memory.js.map +1 -1
- package/dist/{types-DNcaU6SK.d.cts → types-BUO0OzOl.d.cts} +5 -0
- package/dist/{types-DNcaU6SK.d.ts → types-BUO0OzOl.d.ts} +5 -0
- package/package.json +1 -1
- package/dist/SheetView-FVLKQR7J.js.map +0 -1
- package/dist/TextEditor-BF6HCNHL.js.map +0 -1
- package/dist/chunk-LZYITB56.js.map +0 -1
- package/dist/grid-Q4XBPQFY.js.map +0 -1
- /package/dist/{chunk-NPVH2YDI.js.map → chunk-XFLYD3JS.js.map} +0 -0
package/dist/collab.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { JSONContent } from '@tiptap/core';
|
|
2
2
|
import * as Y from 'yjs';
|
|
3
3
|
import { I as Img } from './write-BCI8yool.cjs';
|
|
4
|
-
import { L as Language } from './types-
|
|
4
|
+
import { L as Language } from './types-BUO0OzOl.cjs';
|
|
5
5
|
|
|
6
6
|
declare function applyCells(doc: Y.Doc, list: {
|
|
7
7
|
sheet: string;
|
package/dist/collab.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { JSONContent } from '@tiptap/core';
|
|
2
2
|
import * as Y from 'yjs';
|
|
3
3
|
import { I as Img } from './write-BCI8yool.js';
|
|
4
|
-
import { L as Language } from './types-
|
|
4
|
+
import { L as Language } from './types-BUO0OzOl.js';
|
|
5
5
|
|
|
6
6
|
declare function applyCells(doc: Y.Doc, list: {
|
|
7
7
|
sheet: string;
|
package/dist/collab.js
CHANGED
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
pending,
|
|
12
12
|
save,
|
|
13
13
|
seed
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-E2FVJNDT.js";
|
|
15
15
|
import "./chunk-EQLBYW42.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-VNXZVOPN.js";
|
|
17
17
|
import "./chunk-ZAVXCH7V.js";
|
|
18
18
|
import "./chunk-ISOOUYLI.js";
|
|
19
19
|
export {
|
|
@@ -11,7 +11,7 @@ import "@univerjs/preset-sheets-find-replace/lib/index.css";
|
|
|
11
11
|
import "@univerjs/preset-sheets-data-validation/lib/index.css";
|
|
12
12
|
import "@univerjs/preset-sheets-note/lib/index.css";
|
|
13
13
|
import { createUniver, LocaleType, mergeLocales, purpleTheme } from "@univerjs/presets";
|
|
14
|
-
import { CalculationMode, IMarkSelectionService, UniverSheetsCorePreset } from "@univerjs/preset-sheets-core";
|
|
14
|
+
import { CalculationMode, IMarkSelectionService, SelectionControl, UniverSheetsCorePreset } from "@univerjs/preset-sheets-core";
|
|
15
15
|
import { UniverSheetsDataValidationPreset } from "@univerjs/preset-sheets-data-validation";
|
|
16
16
|
import { UniverSheetsFilterPreset } from "@univerjs/preset-sheets-filter";
|
|
17
17
|
import { UniverSheetsFindReplacePreset } from "@univerjs/preset-sheets-find-replace";
|
|
@@ -29,6 +29,32 @@ import noteEn from "@univerjs/preset-sheets-note/locales/en-US";
|
|
|
29
29
|
import notePl from "@univerjs/preset-sheets-note/locales/pl-PL";
|
|
30
30
|
import sortEn from "@univerjs/preset-sheets-sort/locales/en-US";
|
|
31
31
|
import sortPl from "@univerjs/preset-sheets-sort/locales/pl-PL";
|
|
32
|
+
|
|
33
|
+
// src/sheets/calm.ts
|
|
34
|
+
import { ICommandService, ThemeService } from "@univerjs/core";
|
|
35
|
+
var pale = (color) => /^#[0-9a-f]{6}$/i.test(color) ? `${color}24` : color.replace(/^rgb\(([^)]+)\)$/i, "rgba($1, 0.14)");
|
|
36
|
+
var calm = (selection) => {
|
|
37
|
+
const style = selection.style;
|
|
38
|
+
if (!style?.widgets || !Object.values(style.widgets).some(Boolean)) return selection;
|
|
39
|
+
return { ...selection, style: { ...style, widgets: {}, strokeWidth: 3, fill: style.stroke ? pale(style.stroke) : style.fill } };
|
|
40
|
+
};
|
|
41
|
+
function bolder(injector) {
|
|
42
|
+
const theme = injector.get(ThemeService);
|
|
43
|
+
const tone = (color) => theme.isValidThemeColor(color) ? theme.getColorFromTheme(color) : color;
|
|
44
|
+
const refs = new Set(Array.from({ length: 12 }, (_, i) => tone(theme.getColorFromTheme(`loop-color.${i + 1}`))));
|
|
45
|
+
return injector.get(ICommandService).beforeCommandExecuted(({ id, params }) => {
|
|
46
|
+
if (id !== "doc.command.replace-text-runs") return;
|
|
47
|
+
params?.body?.textRuns?.forEach((run) => {
|
|
48
|
+
if (run.ts?.cl?.rgb && refs.has(run.ts.cl.rgb)) run.ts.bl = 1;
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// src/sheets/grid.ts
|
|
54
|
+
var draw = SelectionControl.prototype.updateRangeBySelectionWithCoord;
|
|
55
|
+
SelectionControl.prototype.updateRangeBySelectionWithCoord = function(selection, ...rest) {
|
|
56
|
+
draw.call(this, calm(selection), ...rest);
|
|
57
|
+
};
|
|
32
58
|
function grid(container, language, edit) {
|
|
33
59
|
return createUniver({
|
|
34
60
|
locale: language === "pl" ? LocaleType.PL_PL : LocaleType.EN_US,
|
|
@@ -36,7 +62,7 @@ function grid(container, language, edit) {
|
|
|
36
62
|
[LocaleType.EN_US]: mergeLocales(coreEn, checkEn, filterEn, findEn, noteEn, sortEn),
|
|
37
63
|
[LocaleType.PL_PL]: mergeLocales(corePl, checkPl, filterPl, findPl, notePl, sortPl)
|
|
38
64
|
},
|
|
39
|
-
theme: purpleTheme,
|
|
65
|
+
theme: { ...purpleTheme, "loop-color": { 1: "blue.500", 2: "red.500", 3: "green.600", 4: "orange.500", 5: "purple.500", 6: "jiqing.600", 7: "pink.500", 8: "yellow.700", 9: "indigo.600", 10: "red.700", 11: "green.800", 12: "blue.800" } },
|
|
40
66
|
darkMode: false,
|
|
41
67
|
presets: [
|
|
42
68
|
UniverSheetsCorePreset({
|
|
@@ -60,7 +86,7 @@ function marks({ univer, univerAPI: api }) {
|
|
|
60
86
|
const service = univer.__getInjector().get(IMarkSelectionService);
|
|
61
87
|
let list = [];
|
|
62
88
|
let ids = [];
|
|
63
|
-
const
|
|
89
|
+
const draw2 = () => {
|
|
64
90
|
ids.forEach((id) => service.removeShape(id));
|
|
65
91
|
const sid = api.getActiveWorkbook()?.getActiveSheet().getSheetId();
|
|
66
92
|
ids = list.filter((m) => m.sheet === sid).flatMap((m) => {
|
|
@@ -69,11 +95,11 @@ function marks({ univer, univerAPI: api }) {
|
|
|
69
95
|
return id ? [id] : [];
|
|
70
96
|
});
|
|
71
97
|
};
|
|
72
|
-
const turn = api.addEvent(api.Event.ActiveSheetChanged,
|
|
98
|
+
const turn = api.addEvent(api.Event.ActiveSheetChanged, draw2);
|
|
73
99
|
return {
|
|
74
100
|
show: (next) => {
|
|
75
101
|
list = next;
|
|
76
|
-
|
|
102
|
+
draw2();
|
|
77
103
|
},
|
|
78
104
|
dispose: () => {
|
|
79
105
|
turn.dispose();
|
|
@@ -82,7 +108,8 @@ function marks({ univer, univerAPI: api }) {
|
|
|
82
108
|
};
|
|
83
109
|
}
|
|
84
110
|
export {
|
|
111
|
+
bolder,
|
|
85
112
|
grid,
|
|
86
113
|
marks
|
|
87
114
|
};
|
|
88
|
-
//# sourceMappingURL=grid-
|
|
115
|
+
//# sourceMappingURL=grid-IR5YFFSF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sheets/grid.ts","../src/sheets/calm.ts"],"sourcesContent":["import '@univerjs/preset-sheets-core/lib/index.css';\nimport '@univerjs/preset-sheets-sort/lib/index.css';\nimport '@univerjs/preset-sheets-filter/lib/index.css';\nimport '@univerjs/preset-sheets-find-replace/lib/index.css';\nimport '@univerjs/preset-sheets-data-validation/lib/index.css';\nimport '@univerjs/preset-sheets-note/lib/index.css';\nimport { createUniver, LocaleType, mergeLocales, purpleTheme } from '@univerjs/presets';\nimport { CalculationMode, IMarkSelectionService, SelectionControl, UniverSheetsCorePreset } from '@univerjs/preset-sheets-core';\nimport { UniverSheetsDataValidationPreset } from '@univerjs/preset-sheets-data-validation';\nimport { UniverSheetsFilterPreset } from '@univerjs/preset-sheets-filter';\nimport { UniverSheetsFindReplacePreset } from '@univerjs/preset-sheets-find-replace';\nimport { UniverSheetsNotePreset } from '@univerjs/preset-sheets-note';\nimport { UniverSheetsSortPreset } from '@univerjs/preset-sheets-sort';\nimport coreEn from '@univerjs/preset-sheets-core/locales/en-US';\nimport corePl from '@univerjs/preset-sheets-core/locales/pl-PL';\nimport checkEn from '@univerjs/preset-sheets-data-validation/locales/en-US';\nimport checkPl from '@univerjs/preset-sheets-data-validation/locales/pl-PL';\nimport filterEn from '@univerjs/preset-sheets-filter/locales/en-US';\nimport filterPl from '@univerjs/preset-sheets-filter/locales/pl-PL';\nimport findEn from '@univerjs/preset-sheets-find-replace/locales/en-US';\nimport findPl from '@univerjs/preset-sheets-find-replace/locales/pl-PL';\nimport noteEn from '@univerjs/preset-sheets-note/locales/en-US';\nimport notePl from '@univerjs/preset-sheets-note/locales/pl-PL';\nimport sortEn from '@univerjs/preset-sheets-sort/locales/en-US';\nimport sortPl from '@univerjs/preset-sheets-sort/locales/pl-PL';\nimport type { Language } from '../types';\nimport { bolder, calm } from './calm';\nimport { box } from './refs';\n\nexport type Mark = { sheet: string; range: string; color: string };\n\nconst draw = SelectionControl.prototype.updateRangeBySelectionWithCoord;\n// Univer draws eight resize handles on every formula reference and offers no option to turn them off.\nSelectionControl.prototype.updateRangeBySelectionWithCoord = function (selection, ...rest) { draw.call(this, calm(selection), ...rest); };\n\nexport function grid(container: HTMLElement, language: Language, edit: boolean) {\n return createUniver({\n locale: language === 'pl' ? LocaleType.PL_PL : LocaleType.EN_US,\n locales: {\n [LocaleType.EN_US]: mergeLocales(coreEn, checkEn, filterEn, findEn, noteEn, sortEn),\n [LocaleType.PL_PL]: mergeLocales(corePl, checkPl, filterPl, findPl, notePl, sortPl),\n },\n theme: { ...purpleTheme, 'loop-color': { 1: 'blue.500', 2: 'red.500', 3: 'green.600', 4: 'orange.500', 5: 'purple.500', 6: 'jiqing.600', 7: 'pink.500', 8: 'yellow.700', 9: 'indigo.600', 10: 'red.700', 11: 'green.800', 12: 'blue.800' } },\n darkMode: false,\n presets: [\n UniverSheetsCorePreset({\n container, toolbar: false, formulaBar: true, contextMenu: true, disableAutoFocus: true,\n footer: { sheetBar: true, statisticBar: true, menus: edit, zoomSlider: true, addSheetButtonConfig: { show: edit } },\n formula: { initialFormulaComputing: CalculationMode.WHEN_EMPTY },\n }),\n UniverSheetsSortPreset(),\n UniverSheetsFilterPreset(),\n UniverSheetsFindReplacePreset(),\n UniverSheetsDataValidationPreset(),\n UniverSheetsNotePreset(),\n ],\n });\n}\n\nexport { bolder };\n\nexport function marks({ univer, univerAPI: api }: ReturnType<typeof grid>) {\n const service = univer.__getInjector().get(IMarkSelectionService);\n let list: Mark[] = [];\n let ids: string[] = [];\n const draw = () => {\n ids.forEach(id => service.removeShape(id));\n const sid = api.getActiveWorkbook()?.getActiveSheet().getSheetId();\n ids = list.filter(m => m.sheet === sid).flatMap(m => {\n const b = box(m.range);\n const id = b && service.addShape({ range: b, primary: null, style: { stroke: m.color, fill: `${m.color}1f`, strokeWidth: 2, widgets: {} } }, [], 1000);\n return id ? [id] : [];\n });\n };\n const turn = api.addEvent(api.Event.ActiveSheetChanged, draw);\n return {\n show: (next: Mark[]) => { list = next; draw(); },\n dispose: () => { turn.dispose(); ids.forEach(id => service.removeShape(id)); },\n };\n}\n","import { ICommandService, ThemeService, type Injector } from '@univerjs/core';\n\ntype Style = { widgets?: object; strokeWidth?: number; stroke?: string; fill?: string };\ntype Run = { ts?: { cl?: { rgb?: string | null } | null; bl?: number } };\n\nconst pale = (color: string) => /^#[0-9a-f]{6}$/i.test(color) ? `${color}24` : color.replace(/^rgb\\(([^)]+)\\)$/i, 'rgba($1, 0.14)');\n\nexport const calm = <T extends { style?: Style | null | void }>(selection: T): T => {\n const style = selection.style;\n if (!style?.widgets || !Object.values(style.widgets).some(Boolean)) return selection;\n return { ...selection, style: { ...style, widgets: {}, strokeWidth: 3, fill: style.stroke ? pale(style.stroke) : style.fill } };\n};\n\nexport function bolder(injector: Injector) {\n const theme = injector.get(ThemeService);\n const tone = (color: string) => theme.isValidThemeColor(color) ? theme.getColorFromTheme(color) : color;\n const refs = new Set(Array.from({ length: 12 }, (_, i) => tone(theme.getColorFromTheme(`loop-color.${i + 1}`))));\n return injector.get(ICommandService).beforeCommandExecuted(({ id, params }) => {\n if (id !== 'doc.command.replace-text-runs') return;\n (params as { body?: { textRuns?: Run[] } } | undefined)?.body?.textRuns?.forEach(run => {\n if (run.ts?.cl?.rgb && refs.has(run.ts.cl.rgb)) run.ts.bl = 1;\n });\n });\n}\n"],"mappings":"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","names":["draw"]}
|