@w100n/documents 0.19.0 → 0.20.0
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-43MPR64N.css → SheetView-GBGCZMYL.css} +22 -1
- package/dist/{SheetView-43MPR64N.css.map → SheetView-GBGCZMYL.css.map} +1 -1
- package/dist/{SheetView-PUSRW7W2.js → SheetView-Q6K3UGVP.js} +69 -24
- package/dist/SheetView-Q6K3UGVP.js.map +1 -0
- package/dist/{TextEditor-Z4KSBLBV.js → TextEditor-NDWZUYDA.js} +23 -7
- package/dist/TextEditor-NDWZUYDA.js.map +1 -0
- package/dist/{chunk-JSJEB2CO.js → chunk-2JGDV5HG.js} +30 -2
- package/dist/chunk-2JGDV5HG.js.map +1 -0
- package/dist/{chunk-ZQYSBWLK.js → chunk-KIKKIOW6.js} +48 -3
- package/dist/chunk-KIKKIOW6.js.map +1 -0
- package/dist/collab.cjs +33 -3
- package/dist/collab.cjs.map +1 -1
- package/dist/collab.d.cts +6 -1
- package/dist/collab.d.ts +6 -1
- package/dist/collab.js +7 -3
- package/dist/{grid-IR5YFFSF.js → grid-FUHH7UHO.js} +28 -3
- package/dist/grid-FUHH7UHO.js.map +1 -0
- package/dist/index.cjs +1168 -1013
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +168 -12
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +17 -2
- package/dist/index.d.ts +17 -2
- package/dist/index.js +45 -33
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/SheetView-PUSRW7W2.js.map +0 -1
- package/dist/TextEditor-Z4KSBLBV.js.map +0 -1
- package/dist/chunk-JSJEB2CO.js.map +0 -1
- package/dist/chunk-ZQYSBWLK.js.map +0 -1
- package/dist/grid-IR5YFFSF.js.map +0 -1
package/dist/collab.d.cts
CHANGED
|
@@ -19,6 +19,11 @@ type Clash = Spot & {
|
|
|
19
19
|
};
|
|
20
20
|
type Value = string | number | boolean | null;
|
|
21
21
|
declare function clashes(doc: Y.Doc, kind: 'xlsx' | 'csv', seen: ArrayBuffer, list: Spot[]): Clash[];
|
|
22
|
+
declare function addSheet(doc: Y.Doc, name: string, origin: unknown): boolean;
|
|
23
|
+
declare function where(doc: Y.Doc, sheet: string, refs: string[]): {
|
|
24
|
+
sheet: string;
|
|
25
|
+
range: string;
|
|
26
|
+
} | null;
|
|
22
27
|
declare function appendRows(doc: Y.Doc, sheet: string, lines: Value[][], origin: unknown): string | null;
|
|
23
28
|
declare function compute(doc: Y.Doc, origin: unknown): Promise<number>;
|
|
24
29
|
|
|
@@ -62,4 +67,4 @@ declare function applySteps(doc: Y.Doc, kind: Prose, steps: Step[], seen: JSONCo
|
|
|
62
67
|
};
|
|
63
68
|
declare function save(doc: Y.Doc, kind: Kind, base: ArrayBuffer, put: (bytes: ArrayBuffer, note: string) => Promise<string>, load?: (src: string) => Promise<Img>, note?: string): Promise<Saved | null>;
|
|
64
69
|
|
|
65
|
-
export { type Author, type Clash, type Kind, type Prose, Refusal, type Saved, type SectionClash, type Step, appendRows, applyCells, applySteps, applyText, clashes, compute, edits, filled, follow, ours, parse, pending, save, seed };
|
|
70
|
+
export { type Author, type Clash, type Kind, type Prose, Refusal, type Saved, type SectionClash, type Step, addSheet, appendRows, applyCells, applySteps, applyText, clashes, compute, edits, filled, follow, ours, parse, pending, save, seed, where };
|
package/dist/collab.d.ts
CHANGED
|
@@ -19,6 +19,11 @@ type Clash = Spot & {
|
|
|
19
19
|
};
|
|
20
20
|
type Value = string | number | boolean | null;
|
|
21
21
|
declare function clashes(doc: Y.Doc, kind: 'xlsx' | 'csv', seen: ArrayBuffer, list: Spot[]): Clash[];
|
|
22
|
+
declare function addSheet(doc: Y.Doc, name: string, origin: unknown): boolean;
|
|
23
|
+
declare function where(doc: Y.Doc, sheet: string, refs: string[]): {
|
|
24
|
+
sheet: string;
|
|
25
|
+
range: string;
|
|
26
|
+
} | null;
|
|
22
27
|
declare function appendRows(doc: Y.Doc, sheet: string, lines: Value[][], origin: unknown): string | null;
|
|
23
28
|
declare function compute(doc: Y.Doc, origin: unknown): Promise<number>;
|
|
24
29
|
|
|
@@ -62,4 +67,4 @@ declare function applySteps(doc: Y.Doc, kind: Prose, steps: Step[], seen: JSONCo
|
|
|
62
67
|
};
|
|
63
68
|
declare function save(doc: Y.Doc, kind: Kind, base: ArrayBuffer, put: (bytes: ArrayBuffer, note: string) => Promise<string>, load?: (src: string) => Promise<Img>, note?: string): Promise<Saved | null>;
|
|
64
69
|
|
|
65
|
-
export { type Author, type Clash, type Kind, type Prose, Refusal, type Saved, type SectionClash, type Step, appendRows, applyCells, applySteps, applyText, clashes, compute, edits, filled, follow, ours, parse, pending, save, seed };
|
|
70
|
+
export { type Author, type Clash, type Kind, type Prose, Refusal, type Saved, type SectionClash, type Step, addSheet, appendRows, applyCells, applySteps, applyText, clashes, compute, edits, filled, follow, ours, parse, pending, save, seed, where };
|
package/dist/collab.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import {
|
|
3
3
|
Refusal,
|
|
4
|
+
addSheet,
|
|
4
5
|
appendRows,
|
|
5
6
|
applyCells,
|
|
6
7
|
applySteps,
|
|
@@ -14,14 +15,16 @@ import {
|
|
|
14
15
|
parse,
|
|
15
16
|
pending,
|
|
16
17
|
save,
|
|
17
|
-
seed
|
|
18
|
-
|
|
18
|
+
seed,
|
|
19
|
+
where
|
|
20
|
+
} from "./chunk-2JGDV5HG.js";
|
|
19
21
|
import "./chunk-GSIPTCQH.js";
|
|
20
22
|
import "./chunk-BWU6FPPZ.js";
|
|
21
23
|
import "./chunk-ZAVXCH7V.js";
|
|
22
24
|
import "./chunk-ISOOUYLI.js";
|
|
23
25
|
export {
|
|
24
26
|
Refusal,
|
|
27
|
+
addSheet,
|
|
25
28
|
appendRows,
|
|
26
29
|
applyCells,
|
|
27
30
|
applySteps,
|
|
@@ -35,6 +38,7 @@ export {
|
|
|
35
38
|
parse,
|
|
36
39
|
pending,
|
|
37
40
|
save,
|
|
38
|
-
seed
|
|
41
|
+
seed,
|
|
42
|
+
where
|
|
39
43
|
};
|
|
40
44
|
//# sourceMappingURL=collab.js.map
|
|
@@ -11,7 +11,8 @@ 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 {
|
|
14
|
+
import { ICommandService as ICommandService2, IUniverInstanceService, WrapStrategy } from "@univerjs/core";
|
|
15
|
+
import { CalculationMode, IMarkSelectionService, IRenderManagerService, SelectionControl, SetWorksheetRowAutoHeightMutation, SetWorksheetRowIsAutoHeightMutation, SheetSkeletonManagerService, UniverSheetsCorePreset } from "@univerjs/preset-sheets-core";
|
|
15
16
|
import { UniverSheetsDataValidationPreset } from "@univerjs/preset-sheets-data-validation";
|
|
16
17
|
import { UniverSheetsFilterPreset } from "@univerjs/preset-sheets-filter";
|
|
17
18
|
import { UniverSheetsFindReplacePreset } from "@univerjs/preset-sheets-find-replace";
|
|
@@ -70,7 +71,7 @@ function grid(container, language, edit) {
|
|
|
70
71
|
toolbar: false,
|
|
71
72
|
formulaBar: true,
|
|
72
73
|
contextMenu: true,
|
|
73
|
-
disableAutoFocus:
|
|
74
|
+
disableAutoFocus: matchMedia("(pointer: coarse)").matches,
|
|
74
75
|
footer: { sheetBar: true, statisticBar: true, menus: edit, zoomSlider: true, addSheetButtonConfig: { show: edit } },
|
|
75
76
|
formula: { initialFormulaComputing: CalculationMode.WHEN_EMPTY }
|
|
76
77
|
}),
|
|
@@ -82,6 +83,29 @@ function grid(container, language, edit) {
|
|
|
82
83
|
]
|
|
83
84
|
});
|
|
84
85
|
}
|
|
86
|
+
function fit(injector, unitId) {
|
|
87
|
+
const book = injector.get(IUniverInstanceService).getUnit(unitId);
|
|
88
|
+
const skeletons = injector.get(IRenderManagerService).getRenderUnitById(unitId)?.with(SheetSkeletonManagerService);
|
|
89
|
+
if (!book || !skeletons) return;
|
|
90
|
+
const commands = injector.get(ICommandService2);
|
|
91
|
+
for (const sheet of book.getSheets()) {
|
|
92
|
+
const rows = /* @__PURE__ */ new Set();
|
|
93
|
+
sheet.getCellMatrix().forValue((r, _, cell) => {
|
|
94
|
+
if (book.getStyles().getStyleByCell(cell)?.tb === WrapStrategy.WRAP) rows.add(r);
|
|
95
|
+
});
|
|
96
|
+
if (!rows.size) continue;
|
|
97
|
+
const subUnitId = sheet.getSheetId(), last = sheet.getMaxColumns() - 1, all = [...rows];
|
|
98
|
+
const line = (r) => ({ startRow: r, endRow: r, startColumn: 0, endColumn: last });
|
|
99
|
+
const was = Object.fromEntries(all.map((r) => [r, sheet.getConfig().rowData[r]?.ia ?? null]));
|
|
100
|
+
const stored = Object.fromEntries(all.map((r) => [r, sheet.getRowHeight(r)]));
|
|
101
|
+
const auto = (list, info) => commands.syncExecuteCommand(SetWorksheetRowIsAutoHeightMutation.id, { unitId, subUnitId, ranges: list.map(line), autoHeightInfo: info }, { onlyLocal: true });
|
|
102
|
+
auto(all, 1);
|
|
103
|
+
const grow = (skeletons.ensureSkeleton(subUnitId)?.calculateAutoHeightInRange(all.map(line)) ?? []).filter((x) => (x.autoHeight ?? 0) > stored[x.row]);
|
|
104
|
+
const keep = all.filter((r) => !grow.some((x) => x.row === r));
|
|
105
|
+
if (keep.length) auto(keep, was);
|
|
106
|
+
if (grow.length) commands.syncExecuteCommand(SetWorksheetRowAutoHeightMutation.id, { unitId, subUnitId, rowsAutoHeightInfo: grow }, { onlyLocal: true });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
85
109
|
function marks({ univer, univerAPI: api }) {
|
|
86
110
|
const service = univer.__getInjector().get(IMarkSelectionService);
|
|
87
111
|
let list = [];
|
|
@@ -109,7 +133,8 @@ function marks({ univer, univerAPI: api }) {
|
|
|
109
133
|
}
|
|
110
134
|
export {
|
|
111
135
|
bolder,
|
|
136
|
+
fit,
|
|
112
137
|
grid,
|
|
113
138
|
marks
|
|
114
139
|
};
|
|
115
|
-
//# sourceMappingURL=grid-
|
|
140
|
+
//# sourceMappingURL=grid-FUHH7UHO.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 { ICommandService, IUniverInstanceService, WrapStrategy, type Injector, type Workbook } from '@univerjs/core';\nimport { CalculationMode, IMarkSelectionService, IRenderManagerService, SelectionControl, SetWorksheetRowAutoHeightMutation, SetWorksheetRowIsAutoHeightMutation, SheetSkeletonManagerService, 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: matchMedia('(pointer: coarse)').matches,\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 function fit(injector: Injector, unitId: string) {\n const book = injector.get(IUniverInstanceService).getUnit<Workbook>(unitId);\n const skeletons = injector.get(IRenderManagerService).getRenderUnitById(unitId)?.with(SheetSkeletonManagerService);\n if (!book || !skeletons) return;\n const commands = injector.get(ICommandService);\n for (const sheet of book.getSheets()) {\n const rows = new Set<number>();\n sheet.getCellMatrix().forValue((r, _, cell) => { if (book.getStyles().getStyleByCell(cell)?.tb === WrapStrategy.WRAP) rows.add(r); });\n if (!rows.size) continue;\n const subUnitId = sheet.getSheetId(), last = sheet.getMaxColumns() - 1, all = [...rows];\n const line = (r: number) => ({ startRow: r, endRow: r, startColumn: 0, endColumn: last });\n const was = Object.fromEntries(all.map(r => [r, sheet.getConfig().rowData[r]?.ia ?? null]));\n const stored = Object.fromEntries(all.map(r => [r, sheet.getRowHeight(r)]));\n const auto = (list: number[], info: number | Record<number, number | null>) => commands.syncExecuteCommand(SetWorksheetRowIsAutoHeightMutation.id, { unitId, subUnitId, ranges: list.map(line), autoHeightInfo: info }, { onlyLocal: true });\n auto(all, 1);\n const grow = (skeletons.ensureSkeleton(subUnitId)?.calculateAutoHeightInRange(all.map(line)) ?? []).filter(x => (x.autoHeight ?? 0) > stored[x.row]);\n const keep = all.filter(r => !grow.some(x => x.row === r));\n if (keep.length) auto(keep, was);\n if (grow.length) commands.syncExecuteCommand(SetWorksheetRowAutoHeightMutation.id, { unitId, subUnitId, rowsAutoHeightInfo: grow }, { onlyLocal: true });\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":["ICommandService","ICommandService","draw"]}
|