@w100n/documents 0.19.0 → 0.19.1

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/collab.js CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  pending,
16
16
  save,
17
17
  seed
18
- } from "./chunk-JSJEB2CO.js";
18
+ } from "./chunk-VG7UW2CQ.js";
19
19
  import "./chunk-GSIPTCQH.js";
20
20
  import "./chunk-BWU6FPPZ.js";
21
21
  import "./chunk-ZAVXCH7V.js";
@@ -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 { CalculationMode, IMarkSelectionService, SelectionControl, UniverSheetsCorePreset } from "@univerjs/preset-sheets-core";
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";
@@ -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-IR5YFFSF.js.map
140
+ //# sourceMappingURL=grid-7OGS3FPU.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: 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 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"]}