@a3s-lab/office 0.11.0 → 0.13.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/README.md +121 -6
- package/dist/0~1403.js +20 -12
- package/dist/0~2805.js +241 -241
- package/dist/0~4980.js +1 -1
- package/dist/0~5050.js +1 -20
- package/dist/0~5093.js +547 -547
- package/dist/0~7048.js +31 -29
- package/dist/0~document-editor.js +694 -90
- package/dist/0~pdf-viewer.js +41 -10
- package/dist/0~presentation-editor.js +8 -6
- package/dist/0~spreadsheet-editor.js +4272 -2753
- package/dist/0~work-document-import-worker-client.js +237 -0
- package/dist/0~work-docx-export.js +1 -1
- package/dist/0~work-docx-import.js +3 -3
- package/dist/0~work-docx-large-document-import.js +559 -0
- package/dist/0~work-office-diagnostics.js +51 -35
- package/dist/0~work-pptx-import.js +2 -2
- package/dist/4104.js +4127 -3037
- package/dist/432.js +51 -7
- package/dist/4476.js +280 -69
- package/dist/5184.js +24 -2
- package/dist/{8928.js → 6282.js} +2338 -93
- package/dist/8715.js +1201 -1156
- package/dist/9356.js +128 -8
- package/dist/core.d.ts +1 -0
- package/dist/core.js +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/features/work/editors/document-editor-support.d.ts +1 -9
- package/dist/internal/features/work/editors/document-external-content.d.ts +1 -1
- package/dist/internal/features/work/editors/presentation-slide-canvas.d.ts +3 -1
- package/dist/internal/features/work/editors/presentation-slide-thumbnail.d.ts +3 -2
- package/dist/internal/features/work/editors/presentation-thumbnail-rail.d.ts +2 -1
- package/dist/internal/features/work/editors/presentation-workspace.d.ts +2 -1
- package/dist/internal/features/work/editors/spreadsheet-border-ribbon.d.ts +5 -0
- package/dist/internal/features/work/editors/spreadsheet-calculation-projection.d.ts +10 -0
- package/dist/internal/features/work/editors/spreadsheet-cell-border-command.d.ts +3 -0
- package/dist/internal/features/work/editors/spreadsheet-cell-border.d.ts +14 -0
- package/dist/internal/features/work/editors/spreadsheet-cell-fill-command.d.ts +3 -0
- package/dist/internal/features/work/editors/spreadsheet-cell-fill.d.ts +12 -0
- package/dist/internal/features/work/editors/spreadsheet-cell-range.d.ts +14 -0
- package/dist/internal/features/work/editors/spreadsheet-command-catalog.d.ts +159 -0
- package/dist/internal/features/work/editors/spreadsheet-command-controller.d.ts +8 -4
- package/dist/internal/features/work/editors/spreadsheet-editor-support.d.ts +8 -1
- package/dist/internal/features/work/editors/spreadsheet-home-format-ribbon.d.ts +10 -0
- package/dist/internal/features/work/editors/spreadsheet-in-place-workbook-sync.d.ts +10 -0
- package/dist/internal/features/work/editors/spreadsheet-operation-projection.d.ts +14 -0
- package/dist/internal/features/work/editors/spreadsheet-structure-selection.d.ts +7 -0
- package/dist/internal/features/work/editors/use-document-pagination.d.ts +5 -0
- package/dist/internal/features/work/editors/use-presentation-design-commands.d.ts +2 -1
- package/dist/internal/features/work/editors/use-spreadsheet-collaboration.d.ts +2 -1
- package/dist/internal/features/work/editors/use-spreadsheet-workbook-sync.d.ts +2 -1
- package/dist/internal/features/work/spreadsheet-history-value.d.ts +1 -0
- package/dist/internal/features/work/spreadsheet-sparse.d.ts +10 -0
- package/dist/internal/features/work/work-document-chunk-geometry.d.ts +28 -0
- package/dist/internal/features/work/work-document-chunk-node.d.ts +23 -0
- package/dist/internal/features/work/work-document-extensions.d.ts +1 -0
- package/dist/internal/features/work/work-document-file-io.d.ts +2 -1
- package/dist/internal/features/work/work-document-html-fingerprint.d.ts +15 -0
- package/dist/internal/features/work/work-document-import-worker-client.d.ts +13 -0
- package/dist/internal/features/work/work-document-import-worker-protocol.d.ts +36 -0
- package/dist/internal/features/work/work-document-import.worker.d.ts +1 -0
- package/dist/internal/features/work/work-document-incremental-layout.d.ts +1 -1
- package/dist/internal/features/work/work-document-integrity-index.d.ts +14 -0
- package/dist/internal/features/work/work-document-lazy-block.d.ts +3 -0
- package/dist/internal/features/work/work-document-lazy-html.d.ts +21 -0
- package/dist/internal/features/work/work-document-lazy-model.d.ts +29 -0
- package/dist/internal/features/work/work-document-lazy-pagination-measurement.d.ts +3 -0
- package/dist/internal/features/work/work-document-lazy-preview.d.ts +21 -0
- package/dist/internal/features/work/work-document-lazy-update.d.ts +14 -0
- package/dist/internal/features/work/work-document-model.d.ts +18 -2
- package/dist/internal/features/work/work-document-page-surface-registry.d.ts +16 -0
- package/dist/internal/features/work/work-document-pagination-dom.d.ts +1 -0
- package/dist/internal/features/work/work-document-pagination-types.d.ts +1 -0
- package/dist/internal/features/work/work-document-pagination.d.ts +1 -1
- package/dist/internal/features/work/work-document-text-statistics.d.ts +25 -0
- package/dist/internal/features/work/work-document-windowing.d.ts +23 -0
- package/dist/internal/features/work/work-docx-import.d.ts +2 -1
- package/dist/internal/features/work/work-docx-large-document-import.d.ts +35 -0
- package/dist/internal/features/work/work-docx-large-document-parser.d.ts +29 -0
- package/dist/internal/features/work/work-file-data.d.ts +7 -1
- package/dist/internal/features/work/work-file-import.d.ts +33 -0
- package/dist/internal/features/work/work-file-io.d.ts +5 -4
- package/dist/internal/features/work/work-file-kind.d.ts +5 -0
- package/dist/internal/features/work/work-markdown-file-io.d.ts +2 -1
- package/dist/internal/features/work/work-office-diagnostics.d.ts +12 -2
- package/dist/internal/features/work/work-ooxml-package.d.ts +8 -0
- package/dist/internal/features/work/work-pptx-import.d.ts +1 -1
- package/dist/internal/features/work/work-presentation-file-io.d.ts +2 -1
- package/dist/internal/features/work/work-presentation-layouts.d.ts +7 -1
- package/dist/internal/features/work/work-repository.d.ts +1 -0
- package/dist/internal/features/work/work-spreadsheet-compatibility-summary.d.ts +10 -0
- package/dist/internal/features/work/work-spreadsheet-file-export.d.ts +2 -0
- package/dist/internal/features/work/work-spreadsheet-file-import.d.ts +3 -0
- package/dist/internal/features/work/work-spreadsheet-import-diagnostics.d.ts +2 -0
- package/dist/internal/features/work/work-spreadsheet-import-worker-client.d.ts +6 -0
- package/dist/internal/features/work/work-spreadsheet-import-worker-protocol.d.ts +32 -0
- package/dist/internal/features/work/work-spreadsheet-import.worker.d.ts +1 -0
- package/dist/internal/features/work/work-spreadsheet-matrix-profile.d.ts +64 -0
- package/dist/internal/features/work/work-spreadsheet-package-scan-worker-client.d.ts +6 -0
- package/dist/internal/features/work/work-spreadsheet-package-scan-worker-protocol.d.ts +49 -0
- package/dist/internal/features/work/work-spreadsheet-package-scan.worker.d.ts +1 -0
- package/dist/internal/features/work/work-spreadsheet-protection.d.ts +2 -0
- package/dist/internal/features/work/work-types.d.ts +22 -0
- package/dist/internal/features/work/work-xlsx-formula-diagnostics.d.ts +3 -1
- package/dist/internal/features/work/work-xlsx-formulas.d.ts +2 -1
- package/dist/internal/features/work/work-xlsx-interop.d.ts +8 -17
- package/dist/internal/features/work/work-xlsx-pivot-diagnostics.d.ts +2 -1
- package/dist/internal/features/work/work-xlsx-plain-fast-path.d.ts +54 -0
- package/dist/internal/features/work/work-xlsx-style-gate.d.ts +1 -0
- package/dist/internal/features/work/work-xlsx-worksheet-scan.d.ts +12 -0
- package/dist/internal/features/work/work-xlsx-worksheet.d.ts +12 -0
- package/dist/office-kernel.wasm +0 -0
- package/dist/office-kernel.worker.js +31 -29
- package/dist/react.d.ts +7 -1
- package/dist/styles.css +440 -3
- package/dist/work-document-import.worker.js +558 -0
- package/dist/work-spreadsheet-import.worker.js +24745 -0
- package/dist/work-spreadsheet-import.worker.js.LICENSE.txt +3 -0
- package/dist/work-spreadsheet-package-scan.worker.js +4157 -0
- package/dist/work-spreadsheet-package-scan.worker.js.LICENSE.txt +11 -0
- package/docs/latest/en/browser-editor-architecture.md +351 -15
- package/package.json +26 -4
|
@@ -13051,8 +13051,8 @@
|
|
|
13051
13051
|
};
|
|
13052
13052
|
})();
|
|
13053
13053
|
(()=>{
|
|
13054
|
-
const MAX_LAYOUT_BLOCKS =
|
|
13055
|
-
const MAX_LAYOUT_PAGE_STYLES =
|
|
13054
|
+
const MAX_LAYOUT_BLOCKS = 200000;
|
|
13055
|
+
const MAX_LAYOUT_PAGE_STYLES = 10000;
|
|
13056
13056
|
const MAX_LAYOUT_EXTENT = 1000000;
|
|
13057
13057
|
const MAX_LAYOUT_PAGE_INDEX = 1000000;
|
|
13058
13058
|
function layoutOfficeDocumentInJavaScript(request) {
|
|
@@ -13072,10 +13072,10 @@
|
|
|
13072
13072
|
ensurePageMetrics(pages, page);
|
|
13073
13073
|
if (void 0 !== block.flowCount) {
|
|
13074
13074
|
const end = index + block.flowCount;
|
|
13075
|
-
layoutFlow(request.blocks
|
|
13075
|
+
layoutFlow(request.blocks, index, end, pages, page, request.page, pageStyles, end < request.blocks.length);
|
|
13076
13076
|
index = end;
|
|
13077
13077
|
} else {
|
|
13078
|
-
layoutSingleBlock(block, request.blocks
|
|
13078
|
+
layoutSingleBlock(block, request.blocks, index + 1, pages, page, request.page, pageStyles, index + 1 < request.blocks.length);
|
|
13079
13079
|
index += 1;
|
|
13080
13080
|
}
|
|
13081
13081
|
}
|
|
@@ -13119,7 +13119,7 @@
|
|
|
13119
13119
|
}
|
|
13120
13120
|
validateFlowSequences(request.blocks);
|
|
13121
13121
|
}
|
|
13122
|
-
function layoutSingleBlock(block,
|
|
13122
|
+
function layoutSingleBlock(block, blocks, nextIndex, pages, page, defaultPage, pageStyles, hasMoreBlocks) {
|
|
13123
13123
|
const availableHeight = pageBodyHeight(page);
|
|
13124
13124
|
let current = pages.at(-1);
|
|
13125
13125
|
let currentHasContent = current.placements.length > 0;
|
|
@@ -13129,7 +13129,7 @@
|
|
|
13129
13129
|
currentHasContent = false;
|
|
13130
13130
|
}
|
|
13131
13131
|
const remaining = Math.max(0, availableHeight - current.usedHeight);
|
|
13132
|
-
const nextHeight = nextBlockPreviewHeight(
|
|
13132
|
+
const nextHeight = nextBlockPreviewHeight(blocks, nextIndex, page, defaultPage, pageStyles);
|
|
13133
13133
|
const groupedHeight = block.height + (block.keepWithNext ? nextHeight : 0);
|
|
13134
13134
|
const shouldAdvance = currentHasContent && (block.height > remaining || (block.keepTogether || block.keepWithNext) && groupedHeight <= availableHeight && groupedHeight > remaining);
|
|
13135
13135
|
if (shouldAdvance) {
|
|
@@ -13139,13 +13139,13 @@
|
|
|
13139
13139
|
placeFragment(block, current, availableHeight);
|
|
13140
13140
|
if (block.breakAfter && hasMoreBlocks) pages.push(emptyPage(nextPageIndex(pages), page));
|
|
13141
13141
|
}
|
|
13142
|
-
function layoutFlow(blocks,
|
|
13142
|
+
function layoutFlow(blocks, start, end, pages, page, defaultPage, pageStyles, hasMoreBlocks) {
|
|
13143
13143
|
const availableHeight = pageBodyHeight(page);
|
|
13144
|
-
const first = blocks[
|
|
13145
|
-
const last = blocks
|
|
13144
|
+
const first = blocks[start];
|
|
13145
|
+
const last = blocks[end - 1];
|
|
13146
13146
|
if (first.breakBefore && pages.at(-1)?.placements.length) pages.push(emptyPage(nextPageIndex(pages), page));
|
|
13147
|
-
const totalHeight = fragmentHeight(blocks,
|
|
13148
|
-
const nextHeight = last.keepWithNext ? nextBlockPreviewHeight(
|
|
13147
|
+
const totalHeight = fragmentHeight(blocks, start, end);
|
|
13148
|
+
const nextHeight = last.keepWithNext ? nextBlockPreviewHeight(blocks, end, page, defaultPage, pageStyles) : 0;
|
|
13149
13149
|
let current = pages.at(-1);
|
|
13150
13150
|
const repeatHeaderCount = first.repeatHeaderCount ?? 0;
|
|
13151
13151
|
const repeatHeaderHeight = first.repeatHeaderHeight ?? 0;
|
|
@@ -13154,8 +13154,8 @@
|
|
|
13154
13154
|
current = emptyPage(nextPageIndex(pages), page);
|
|
13155
13155
|
pages.push(current);
|
|
13156
13156
|
}
|
|
13157
|
-
if (repeatHeaderCount > 0 && repeatHeaderCount <
|
|
13158
|
-
const leadingHeight = fragmentHeight(blocks,
|
|
13157
|
+
if (repeatHeaderCount > 0 && repeatHeaderCount < end - start) {
|
|
13158
|
+
const leadingHeight = fragmentHeight(blocks, start, start + repeatHeaderCount + 1);
|
|
13159
13159
|
const remainingHeight = Math.max(0, availableHeight - current.usedHeight);
|
|
13160
13160
|
if (current.placements.length > 0 && leadingHeight <= availableHeight && leadingHeight > remainingHeight) {
|
|
13161
13161
|
current = emptyPage(nextPageIndex(pages), page);
|
|
@@ -13163,22 +13163,23 @@
|
|
|
13163
13163
|
}
|
|
13164
13164
|
}
|
|
13165
13165
|
const minimum = Math.max(1, first.minimumFragmentsPerPage ?? 1);
|
|
13166
|
-
let cursor =
|
|
13167
|
-
|
|
13166
|
+
let cursor = start;
|
|
13167
|
+
let remainingFlowHeight = totalHeight;
|
|
13168
|
+
while(cursor < end){
|
|
13168
13169
|
current = pages.at(-1);
|
|
13169
|
-
if (cursor >= repeatHeaderCount && cursor >
|
|
13170
|
+
if (cursor - start >= repeatHeaderCount && cursor > start && repeatHeaderHeight > 0 && 0 === current.placements.length && 0 === current.usedHeight) current.usedHeight = repeatHeaderHeight;
|
|
13170
13171
|
const currentHasContent = current.placements.length > 0;
|
|
13171
13172
|
const remainingHeight = Math.max(0, availableHeight - current.usedHeight);
|
|
13172
|
-
const remainingFragments =
|
|
13173
|
-
const remainingFlowHeight = fragmentHeight(blocks, cursor, blocks.length);
|
|
13173
|
+
const remainingFragments = end - cursor;
|
|
13174
13174
|
if (nextHeight > 0 && currentHasContent && remainingFlowHeight <= remainingHeight && remainingFlowHeight + nextHeight > remainingHeight && remainingFlowHeight + nextHeight <= availableHeight) {
|
|
13175
13175
|
pages.push(emptyPage(nextPageIndex(pages), page));
|
|
13176
13176
|
continue;
|
|
13177
13177
|
}
|
|
13178
|
-
let fitting = fragmentsFitting(blocks, cursor,
|
|
13178
|
+
let fitting = fragmentsFitting(blocks, cursor, end, remainingHeight);
|
|
13179
13179
|
if (fitting === remainingFragments) {
|
|
13180
|
-
placeFragments(blocks, cursor,
|
|
13181
|
-
cursor =
|
|
13180
|
+
placeFragments(blocks, cursor, end, current, availableHeight);
|
|
13181
|
+
cursor = end;
|
|
13182
|
+
remainingFlowHeight = 0;
|
|
13182
13183
|
continue;
|
|
13183
13184
|
}
|
|
13184
13185
|
if (0 === fitting) {
|
|
@@ -13195,18 +13196,19 @@
|
|
|
13195
13196
|
continue;
|
|
13196
13197
|
}
|
|
13197
13198
|
fitting = Math.max(1, fitting);
|
|
13199
|
+
remainingFlowHeight -= fragmentHeight(blocks, cursor, cursor + fitting);
|
|
13198
13200
|
placeFragments(blocks, cursor, cursor + fitting, current, availableHeight);
|
|
13199
13201
|
cursor += fitting;
|
|
13200
|
-
if (cursor <
|
|
13202
|
+
if (cursor < end) pages.push(emptyPage(nextPageIndex(pages), page));
|
|
13201
13203
|
}
|
|
13202
13204
|
if (last.breakAfter && hasMoreBlocks) pages.push(emptyPage(nextPageIndex(pages), page));
|
|
13203
13205
|
}
|
|
13204
|
-
function nextBlockPreviewHeight(blocks, currentPage, defaultPage, pageStyles) {
|
|
13205
|
-
const first = blocks[
|
|
13206
|
+
function nextBlockPreviewHeight(blocks, start, currentPage, defaultPage, pageStyles) {
|
|
13207
|
+
const first = blocks[start];
|
|
13206
13208
|
if (!first || first.breakBefore) return 0;
|
|
13207
13209
|
if (!pageMetricsEqual(currentPage, pageMetricsForBlock(first, defaultPage, pageStyles))) return 0;
|
|
13208
13210
|
const count = Math.min(2, first.flowCount ?? 1);
|
|
13209
|
-
return fragmentHeight(blocks,
|
|
13211
|
+
return fragmentHeight(blocks, start, Math.min(blocks.length, start + count));
|
|
13210
13212
|
}
|
|
13211
13213
|
function fragmentsFitting(blocks, start, end, availableHeight) {
|
|
13212
13214
|
let used = 0;
|
|
@@ -13274,13 +13276,13 @@
|
|
|
13274
13276
|
const count = block.flowCount;
|
|
13275
13277
|
const repeatHeaderCount = block.repeatHeaderCount;
|
|
13276
13278
|
const repeatHeaderHeight = block.repeatHeaderHeight;
|
|
13277
|
-
|
|
13278
|
-
|
|
13279
|
-
|
|
13279
|
+
if (index + count > blocks.length) throw kernelError('office.kernel.flow_sequence_invalid', 'A layout flow must contain its declared number of fragments.');
|
|
13280
|
+
for(let flowIndex = 0; flowIndex < count; flowIndex += 1){
|
|
13281
|
+
const fragment = blocks[index + flowIndex];
|
|
13280
13282
|
if (fragment.flowId !== block.flowId || fragment.flowIndex !== flowIndex || fragment.flowCount !== count || fragment.minimumFragmentsPerPage !== block.minimumFragmentsPerPage || fragment.repeatHeaderCount !== repeatHeaderCount || fragment.repeatHeaderHeight !== repeatHeaderHeight || fragment.pageStyleId !== block.pageStyleId) throw kernelError('office.kernel.flow_sequence_invalid', 'Layout flow fragments must be consecutive and consistently indexed.');
|
|
13281
13283
|
if (flowIndex > 0 && fragment.breakBefore) throw kernelError('office.kernel.flow_break_invalid', 'Only the first flow fragment may request breakBefore.');
|
|
13282
13284
|
if (flowIndex + 1 < count && fragment.breakAfter) throw kernelError('office.kernel.flow_break_invalid', 'Only the last flow fragment may request breakAfter.');
|
|
13283
|
-
}
|
|
13285
|
+
}
|
|
13284
13286
|
index += count;
|
|
13285
13287
|
}
|
|
13286
13288
|
}
|
package/dist/react.d.ts
CHANGED
|
@@ -8,13 +8,19 @@ import type { SpreadsheetEditorProps as InternalSpreadsheetEditorProps } from '.
|
|
|
8
8
|
import type { WorkOfficeFileAction } from './internal/features/work/editors/work-office-chrome';
|
|
9
9
|
import { type OfficeSurfaceProps, type OfficeTheme } from './office-surface';
|
|
10
10
|
export type OfficeEditorKind = 'document' | 'markdown' | 'spreadsheet' | 'presentation' | 'pdf';
|
|
11
|
+
export interface OfficeEditorPreloadOptions {
|
|
12
|
+
/** Overrides the packaged PDFium asset when preloading the PDF runtime. */
|
|
13
|
+
pdfWasmUrl?: string;
|
|
14
|
+
/** Also fetches PDFium WebAssembly. Disabled unless explicitly enabled. */
|
|
15
|
+
preloadRuntimeAssets?: boolean;
|
|
16
|
+
}
|
|
11
17
|
/**
|
|
12
18
|
* Starts loading one editor without mounting it.
|
|
13
19
|
*
|
|
14
20
|
* Call this from an intent signal such as hover or keyboard focus to keep the
|
|
15
21
|
* initial application bundle small without adding latency to editor opening.
|
|
16
22
|
*/
|
|
17
|
-
export declare function preloadOfficeEditor(kind: OfficeEditorKind): Promise<void>;
|
|
23
|
+
export declare function preloadOfficeEditor(kind: OfficeEditorKind, options?: OfficeEditorPreloadOptions): Promise<void>;
|
|
18
24
|
export declare const defaultPdfiumWasmUrl: string;
|
|
19
25
|
export declare const defaultOfficeKernelWasmUrl: string;
|
|
20
26
|
export declare const defaultDocumentLayoutFontUrl: string;
|
package/dist/styles.css
CHANGED
|
@@ -6912,15 +6912,181 @@ button.work-office-collaboration-participant:hover .work-office-collaboration-lo
|
|
|
6912
6912
|
|
|
6913
6913
|
.work-editor-loading.ds-state-view {
|
|
6914
6914
|
background: var(--a3s-bg);
|
|
6915
|
-
flex: 1;
|
|
6915
|
+
flex: 1 1 0;
|
|
6916
|
+
justify-content: center;
|
|
6917
|
+
align-self: stretch;
|
|
6918
|
+
align-items: center;
|
|
6916
6919
|
width: 100%;
|
|
6917
6920
|
min-width: 0;
|
|
6918
|
-
|
|
6921
|
+
max-width: none;
|
|
6922
|
+
height: 100%;
|
|
6923
|
+
min-height: 100%;
|
|
6919
6924
|
margin: 0;
|
|
6925
|
+
padding: clamp(24px, 5vw, 56px);
|
|
6926
|
+
position: relative;
|
|
6927
|
+
overflow: hidden;
|
|
6928
|
+
}
|
|
6929
|
+
|
|
6930
|
+
.work-editor-loading.ds-state-view .ds-state-view-icon {
|
|
6931
|
+
background: none;
|
|
6932
|
+
border-radius: 22px;
|
|
6933
|
+
width: 72px;
|
|
6934
|
+
height: 72px;
|
|
6935
|
+
margin-bottom: 16px;
|
|
6936
|
+
}
|
|
6937
|
+
|
|
6938
|
+
.work-editor-loading-visual {
|
|
6939
|
+
isolation: isolate;
|
|
6940
|
+
place-items: center;
|
|
6941
|
+
width: 64px;
|
|
6942
|
+
height: 64px;
|
|
6943
|
+
display: grid;
|
|
6944
|
+
position: relative;
|
|
6945
|
+
}
|
|
6946
|
+
|
|
6947
|
+
.work-editor-loading-focus {
|
|
6948
|
+
z-index: -1;
|
|
6949
|
+
background: color-mix(in srgb, var(--a3s-blue) 10%, var(--a3s-panel));
|
|
6950
|
+
opacity: .44;
|
|
6951
|
+
border-radius: 18px;
|
|
6952
|
+
animation: 1.8s ease-in-out infinite work-editor-loading-focus;
|
|
6953
|
+
position: absolute;
|
|
6954
|
+
inset: 5px;
|
|
6955
|
+
}
|
|
6956
|
+
|
|
6957
|
+
.work-editor-loading-page {
|
|
6958
|
+
border: 1px solid color-mix(in srgb, var(--a3s-blue) 24%, var(--a3s-line));
|
|
6959
|
+
background: var(--a3s-panel);
|
|
6960
|
+
width: 32px;
|
|
6961
|
+
height: 42px;
|
|
6962
|
+
box-shadow: 0 10px 24px -16px color-mix(in srgb, var(--a3s-blue) 70%, black);
|
|
6963
|
+
border-radius: 7px;
|
|
6964
|
+
flex-direction: column;
|
|
6965
|
+
gap: 5px;
|
|
6966
|
+
padding: 11px 7px 8px;
|
|
6967
|
+
animation: 1.8s cubic-bezier(.16, 1, .3, 1) infinite work-editor-loading-page;
|
|
6968
|
+
display: flex;
|
|
6969
|
+
position: relative;
|
|
6970
|
+
}
|
|
6971
|
+
|
|
6972
|
+
.work-editor-loading-page:after {
|
|
6973
|
+
border-top: 1px solid color-mix(in srgb, var(--a3s-blue) 48%, transparent);
|
|
6974
|
+
border-right: 1px solid color-mix(in srgb, var(--a3s-blue) 48%, transparent);
|
|
6975
|
+
content: "";
|
|
6976
|
+
border-radius: 0 2px 0 0;
|
|
6977
|
+
width: 5px;
|
|
6978
|
+
height: 5px;
|
|
6979
|
+
position: absolute;
|
|
6980
|
+
top: 5px;
|
|
6981
|
+
right: 5px;
|
|
6982
|
+
}
|
|
6983
|
+
|
|
6984
|
+
.work-editor-loading-line {
|
|
6985
|
+
background: color-mix(in srgb, var(--a3s-ink) 36%, transparent);
|
|
6986
|
+
transform-origin: 0;
|
|
6987
|
+
border-radius: 2px;
|
|
6988
|
+
flex: 0 0 2px;
|
|
6989
|
+
width: 100%;
|
|
6990
|
+
height: 2px;
|
|
6991
|
+
animation: 1.8s cubic-bezier(.16, 1, .3, 1) infinite work-editor-loading-line;
|
|
6992
|
+
display: block;
|
|
6993
|
+
}
|
|
6994
|
+
|
|
6995
|
+
.work-editor-loading-line--accent {
|
|
6996
|
+
background: var(--a3s-blue);
|
|
6997
|
+
width: 68%;
|
|
6998
|
+
animation-delay: -120ms;
|
|
6999
|
+
}
|
|
7000
|
+
|
|
7001
|
+
.work-editor-loading-line--short {
|
|
7002
|
+
width: 76%;
|
|
7003
|
+
animation-delay: .12s;
|
|
6920
7004
|
}
|
|
6921
7005
|
|
|
6922
7006
|
.work-editor-loading.ds-state-view h2 {
|
|
7007
|
+
letter-spacing: -.01em;
|
|
7008
|
+
text-wrap: balance;
|
|
7009
|
+
max-width: min(360px, 100%);
|
|
6923
7010
|
font-size: 13px;
|
|
7011
|
+
font-weight: 650;
|
|
7012
|
+
}
|
|
7013
|
+
|
|
7014
|
+
@keyframes work-editor-loading-focus {
|
|
7015
|
+
0%, 100% {
|
|
7016
|
+
opacity: .34;
|
|
7017
|
+
transform: scale(.88);
|
|
7018
|
+
}
|
|
7019
|
+
|
|
7020
|
+
48% {
|
|
7021
|
+
opacity: .72;
|
|
7022
|
+
transform: scale(1);
|
|
7023
|
+
}
|
|
7024
|
+
}
|
|
7025
|
+
|
|
7026
|
+
@keyframes work-editor-loading-page {
|
|
7027
|
+
0%, 100% {
|
|
7028
|
+
box-shadow: 0 8px 20px -16px color-mix(in srgb, var(--a3s-blue) 56%, black);
|
|
7029
|
+
transform: translateY(1px);
|
|
7030
|
+
}
|
|
7031
|
+
|
|
7032
|
+
48% {
|
|
7033
|
+
box-shadow: 0 14px 28px -14px color-mix(in srgb, var(--a3s-blue) 72%, black);
|
|
7034
|
+
transform: translateY(-1px);
|
|
7035
|
+
}
|
|
7036
|
+
}
|
|
7037
|
+
|
|
7038
|
+
@keyframes work-editor-loading-line {
|
|
7039
|
+
0%, 12% {
|
|
7040
|
+
opacity: .38;
|
|
7041
|
+
transform: scaleX(.28);
|
|
7042
|
+
}
|
|
7043
|
+
|
|
7044
|
+
44%, 72% {
|
|
7045
|
+
opacity: 1;
|
|
7046
|
+
transform: scaleX(1);
|
|
7047
|
+
}
|
|
7048
|
+
|
|
7049
|
+
100% {
|
|
7050
|
+
opacity: .62;
|
|
7051
|
+
transform: scaleX(.78);
|
|
7052
|
+
}
|
|
7053
|
+
}
|
|
7054
|
+
|
|
7055
|
+
@media (prefers-reduced-motion: reduce) {
|
|
7056
|
+
.work-editor-loading-focus, .work-editor-loading-page, .work-editor-loading-line {
|
|
7057
|
+
animation: none;
|
|
7058
|
+
}
|
|
7059
|
+
|
|
7060
|
+
.work-editor-loading-focus {
|
|
7061
|
+
opacity: .56;
|
|
7062
|
+
transform: none;
|
|
7063
|
+
}
|
|
7064
|
+
|
|
7065
|
+
.work-editor-loading-line {
|
|
7066
|
+
opacity: 1;
|
|
7067
|
+
transform: none;
|
|
7068
|
+
}
|
|
7069
|
+
}
|
|
7070
|
+
|
|
7071
|
+
@media (forced-colors: active) {
|
|
7072
|
+
.work-editor-loading-focus {
|
|
7073
|
+
background: canvas;
|
|
7074
|
+
outline: 1px solid highlight;
|
|
7075
|
+
}
|
|
7076
|
+
|
|
7077
|
+
.work-editor-loading-page {
|
|
7078
|
+
box-shadow: none;
|
|
7079
|
+
background: canvas;
|
|
7080
|
+
border-color: canvastext;
|
|
7081
|
+
}
|
|
7082
|
+
|
|
7083
|
+
.work-editor-loading-line {
|
|
7084
|
+
background: canvastext;
|
|
7085
|
+
}
|
|
7086
|
+
|
|
7087
|
+
.work-editor-loading-line--accent {
|
|
7088
|
+
background: highlight;
|
|
7089
|
+
}
|
|
6924
7090
|
}
|
|
6925
7091
|
|
|
6926
7092
|
.work-version-history {
|
|
@@ -10727,6 +10893,10 @@ button.work-office-collaboration-participant:hover .work-office-collaboration-lo
|
|
|
10727
10893
|
table-layout: auto;
|
|
10728
10894
|
}
|
|
10729
10895
|
|
|
10896
|
+
.work-document-page .tiptap table[data-office-table-layout="autofit"][data-office-table-width-type="auto"] col, .work-document-page .tiptap table[data-office-table-layout="contents"] col {
|
|
10897
|
+
width: auto !important;
|
|
10898
|
+
}
|
|
10899
|
+
|
|
10730
10900
|
.work-document-page .tiptap table[data-office-table-layout="fixed"] {
|
|
10731
10901
|
table-layout: fixed;
|
|
10732
10902
|
}
|
|
@@ -11129,13 +11299,29 @@ button.work-office-collaboration-participant:hover .work-office-collaboration-lo
|
|
|
11129
11299
|
}
|
|
11130
11300
|
|
|
11131
11301
|
.work-document-page .tiptap > .work-document-section {
|
|
11132
|
-
column-count: var(--work-document-column-count, 1);
|
|
11133
11302
|
column-gap: var(--work-document-column-gap, 12mm);
|
|
11134
11303
|
column-rule: var(--work-document-column-rule, none);
|
|
11135
11304
|
min-height: 120px;
|
|
11136
11305
|
position: relative;
|
|
11137
11306
|
}
|
|
11138
11307
|
|
|
11308
|
+
.work-document-page .tiptap > .work-document-section:not([data-section-column-count="1"]) {
|
|
11309
|
+
column-count: var(--work-document-column-count);
|
|
11310
|
+
}
|
|
11311
|
+
|
|
11312
|
+
.work-document-page .tiptap .work-document-chunk {
|
|
11313
|
+
width: 100%;
|
|
11314
|
+
display: flow-root;
|
|
11315
|
+
}
|
|
11316
|
+
|
|
11317
|
+
.work-document-page .tiptap .work-document-chunk.placeholder {
|
|
11318
|
+
box-sizing: border-box;
|
|
11319
|
+
pointer-events: none;
|
|
11320
|
+
-webkit-user-select: none;
|
|
11321
|
+
user-select: none;
|
|
11322
|
+
overflow: hidden;
|
|
11323
|
+
}
|
|
11324
|
+
|
|
11139
11325
|
.work-document-page .tiptap > .work-document-section:first-child {
|
|
11140
11326
|
min-height: 760px;
|
|
11141
11327
|
}
|
|
@@ -11249,6 +11435,10 @@ button.work-office-collaboration-participant:hover .work-office-collaboration-lo
|
|
|
11249
11435
|
table-layout: auto;
|
|
11250
11436
|
}
|
|
11251
11437
|
|
|
11438
|
+
.work-document-preview-page table[data-office-table-layout="autofit"][data-office-table-width-type="auto"] col, .work-document-print-body table[data-office-table-layout="autofit"][data-office-table-width-type="auto"] col, .work-document-preview-page table[data-office-table-layout="contents"] col, .work-document-print-body table[data-office-table-layout="contents"] col {
|
|
11439
|
+
width: auto !important;
|
|
11440
|
+
}
|
|
11441
|
+
|
|
11252
11442
|
.work-document-preview-page table[data-office-table-layout="fixed"], .work-document-print-body table[data-office-table-layout="fixed"] {
|
|
11253
11443
|
table-layout: fixed;
|
|
11254
11444
|
width: auto;
|
|
@@ -14820,6 +15010,253 @@ button.work-office-collaboration-participant:hover .work-office-collaboration-lo
|
|
|
14820
15010
|
color: currentColor;
|
|
14821
15011
|
}
|
|
14822
15012
|
|
|
15013
|
+
.work-spreadsheet-border-split-root {
|
|
15014
|
+
border-radius: 6px;
|
|
15015
|
+
flex: none;
|
|
15016
|
+
align-items: stretch;
|
|
15017
|
+
height: 29px;
|
|
15018
|
+
display: inline-flex;
|
|
15019
|
+
}
|
|
15020
|
+
|
|
15021
|
+
.work-office-ribbon .work-office-toolbar .work-spreadsheet-border-primary, .work-office-ribbon .work-office-toolbar .work-spreadsheet-border-disclosure {
|
|
15022
|
+
border-radius: 0;
|
|
15023
|
+
height: 29px;
|
|
15024
|
+
padding: 0;
|
|
15025
|
+
}
|
|
15026
|
+
|
|
15027
|
+
.work-office-ribbon .work-office-toolbar .work-spreadsheet-border-primary {
|
|
15028
|
+
border-radius: 6px 0 0 6px;
|
|
15029
|
+
width: 29px;
|
|
15030
|
+
min-width: 29px;
|
|
15031
|
+
}
|
|
15032
|
+
|
|
15033
|
+
.work-office-ribbon .work-office-toolbar .work-spreadsheet-border-disclosure {
|
|
15034
|
+
border-left: 1px solid color-mix(in srgb, var(--a3s-line) 72%, transparent);
|
|
15035
|
+
border-radius: 0 6px 6px 0;
|
|
15036
|
+
width: 16px;
|
|
15037
|
+
min-width: 16px;
|
|
15038
|
+
}
|
|
15039
|
+
|
|
15040
|
+
.work-spreadsheet-border-disclosure svg {
|
|
15041
|
+
transition: transform .12s;
|
|
15042
|
+
}
|
|
15043
|
+
|
|
15044
|
+
.work-spreadsheet-border-disclosure[aria-expanded="true"] svg {
|
|
15045
|
+
transform: rotate(180deg);
|
|
15046
|
+
}
|
|
15047
|
+
|
|
15048
|
+
.work-spreadsheet-border-primary:focus-visible, .work-spreadsheet-border-disclosure:focus-visible {
|
|
15049
|
+
box-shadow: inset 0 0 0 1px var(--work-spreadsheet-accent);
|
|
15050
|
+
outline: 0;
|
|
15051
|
+
}
|
|
15052
|
+
|
|
15053
|
+
.work-spreadsheet-border-panel {
|
|
15054
|
+
--work-office-menu-accent: var(--work-office-control-accent, #159469);
|
|
15055
|
+
width: min(292px, 100vw - 32px);
|
|
15056
|
+
padding: 8px;
|
|
15057
|
+
}
|
|
15058
|
+
|
|
15059
|
+
.work-spreadsheet-border-section-label {
|
|
15060
|
+
color: var(--a3s-faint);
|
|
15061
|
+
padding: 2px 6px 7px;
|
|
15062
|
+
font-size: 10px;
|
|
15063
|
+
font-weight: 650;
|
|
15064
|
+
}
|
|
15065
|
+
|
|
15066
|
+
.work-spreadsheet-border-targets {
|
|
15067
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
15068
|
+
gap: 2px;
|
|
15069
|
+
display: grid;
|
|
15070
|
+
}
|
|
15071
|
+
|
|
15072
|
+
.work-spreadsheet-border-targets > button {
|
|
15073
|
+
min-width: 0;
|
|
15074
|
+
min-height: 32px;
|
|
15075
|
+
color: var(--a3s-muted);
|
|
15076
|
+
font: inherit;
|
|
15077
|
+
text-align: left;
|
|
15078
|
+
cursor: pointer;
|
|
15079
|
+
background: none;
|
|
15080
|
+
border: 0;
|
|
15081
|
+
border-radius: 6px;
|
|
15082
|
+
grid-template-columns: 22px minmax(0, 1fr);
|
|
15083
|
+
align-items: center;
|
|
15084
|
+
gap: 7px;
|
|
15085
|
+
padding: 4px 7px;
|
|
15086
|
+
display: grid;
|
|
15087
|
+
}
|
|
15088
|
+
|
|
15089
|
+
.work-spreadsheet-border-targets > button:hover:not(:disabled), .work-spreadsheet-border-targets > button:focus-visible, .work-spreadsheet-border-targets > button[aria-checked="true"] {
|
|
15090
|
+
background: color-mix(in srgb,
|
|
15091
|
+
var(--work-office-menu-accent) 10%,
|
|
15092
|
+
var(--a3s-panel));
|
|
15093
|
+
color: var(--a3s-ink);
|
|
15094
|
+
outline: 0;
|
|
15095
|
+
}
|
|
15096
|
+
|
|
15097
|
+
.work-spreadsheet-border-targets > button:focus-visible {
|
|
15098
|
+
box-shadow: inset 0 0 0 1px var(--work-office-menu-accent);
|
|
15099
|
+
}
|
|
15100
|
+
|
|
15101
|
+
.work-spreadsheet-border-targets > button:disabled {
|
|
15102
|
+
cursor: not-allowed;
|
|
15103
|
+
opacity: .4;
|
|
15104
|
+
}
|
|
15105
|
+
|
|
15106
|
+
.work-spreadsheet-border-targets > button > span:last-child {
|
|
15107
|
+
text-overflow: ellipsis;
|
|
15108
|
+
white-space: nowrap;
|
|
15109
|
+
font-size: 11px;
|
|
15110
|
+
overflow: hidden;
|
|
15111
|
+
}
|
|
15112
|
+
|
|
15113
|
+
.work-spreadsheet-border-glyph {
|
|
15114
|
+
border: 1px solid color-mix(in srgb, currentcolor 34%, transparent);
|
|
15115
|
+
width: 17px;
|
|
15116
|
+
height: 17px;
|
|
15117
|
+
color: var(--work-office-menu-accent, var(--work-spreadsheet-accent));
|
|
15118
|
+
flex: 0 0 17px;
|
|
15119
|
+
display: block;
|
|
15120
|
+
position: relative;
|
|
15121
|
+
}
|
|
15122
|
+
|
|
15123
|
+
.work-spreadsheet-border-glyph:before, .work-spreadsheet-border-glyph:after {
|
|
15124
|
+
content: "";
|
|
15125
|
+
position: absolute;
|
|
15126
|
+
}
|
|
15127
|
+
|
|
15128
|
+
.work-spreadsheet-border-glyph[data-border-target="top"] {
|
|
15129
|
+
border-top: 2px solid;
|
|
15130
|
+
}
|
|
15131
|
+
|
|
15132
|
+
.work-spreadsheet-border-glyph[data-border-target="bottom"] {
|
|
15133
|
+
border-bottom: 2px solid;
|
|
15134
|
+
}
|
|
15135
|
+
|
|
15136
|
+
.work-spreadsheet-border-glyph[data-border-target="left"] {
|
|
15137
|
+
border-left: 2px solid;
|
|
15138
|
+
}
|
|
15139
|
+
|
|
15140
|
+
.work-spreadsheet-border-glyph[data-border-target="right"] {
|
|
15141
|
+
border-right: 2px solid;
|
|
15142
|
+
}
|
|
15143
|
+
|
|
15144
|
+
.work-spreadsheet-border-glyph[data-border-target="outside"], .work-spreadsheet-border-glyph[data-border-target="all"] {
|
|
15145
|
+
border: 2px solid;
|
|
15146
|
+
}
|
|
15147
|
+
|
|
15148
|
+
.work-spreadsheet-border-glyph[data-border-target="inside"]:before, .work-spreadsheet-border-glyph[data-border-target="all"]:before, .work-spreadsheet-border-glyph[data-border-target="vertical"]:before {
|
|
15149
|
+
border-left: 1px solid;
|
|
15150
|
+
top: 1px;
|
|
15151
|
+
bottom: 1px;
|
|
15152
|
+
left: 7px;
|
|
15153
|
+
}
|
|
15154
|
+
|
|
15155
|
+
.work-spreadsheet-border-glyph[data-border-target="inside"]:after, .work-spreadsheet-border-glyph[data-border-target="all"]:after, .work-spreadsheet-border-glyph[data-border-target="horizontal"]:after {
|
|
15156
|
+
border-top: 1px solid;
|
|
15157
|
+
top: 7px;
|
|
15158
|
+
left: 1px;
|
|
15159
|
+
right: 1px;
|
|
15160
|
+
}
|
|
15161
|
+
|
|
15162
|
+
.work-spreadsheet-border-glyph[data-border-target="none"] {
|
|
15163
|
+
border-style: dashed;
|
|
15164
|
+
}
|
|
15165
|
+
|
|
15166
|
+
.work-spreadsheet-border-glyph[data-border-target="none"]:before, .work-spreadsheet-border-glyph[data-border-target="diagonal"]:before {
|
|
15167
|
+
border-top: 1px solid;
|
|
15168
|
+
top: 7px;
|
|
15169
|
+
left: -1px;
|
|
15170
|
+
right: -1px;
|
|
15171
|
+
transform: rotate(-45deg);
|
|
15172
|
+
}
|
|
15173
|
+
|
|
15174
|
+
.work-spreadsheet-border-glyph[data-border-target="none"]:after {
|
|
15175
|
+
border-top: 1px solid;
|
|
15176
|
+
top: 7px;
|
|
15177
|
+
left: -1px;
|
|
15178
|
+
right: -1px;
|
|
15179
|
+
transform: rotate(45deg);
|
|
15180
|
+
}
|
|
15181
|
+
|
|
15182
|
+
.work-spreadsheet-border-settings {
|
|
15183
|
+
border-top: 1px solid var(--a3s-line);
|
|
15184
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
15185
|
+
gap: 8px;
|
|
15186
|
+
margin-top: 8px;
|
|
15187
|
+
padding: 9px 6px 2px;
|
|
15188
|
+
display: grid;
|
|
15189
|
+
}
|
|
15190
|
+
|
|
15191
|
+
.work-spreadsheet-border-settings > label {
|
|
15192
|
+
min-width: 0;
|
|
15193
|
+
color: var(--a3s-faint);
|
|
15194
|
+
gap: 5px;
|
|
15195
|
+
font-size: 10px;
|
|
15196
|
+
display: grid;
|
|
15197
|
+
}
|
|
15198
|
+
|
|
15199
|
+
.work-spreadsheet-border-settings select, .work-spreadsheet-border-color-control {
|
|
15200
|
+
border: 1px solid var(--a3s-line);
|
|
15201
|
+
background: var(--a3s-panel);
|
|
15202
|
+
width: 100%;
|
|
15203
|
+
min-width: 0;
|
|
15204
|
+
height: 30px;
|
|
15205
|
+
color: var(--a3s-ink);
|
|
15206
|
+
font: inherit;
|
|
15207
|
+
border-radius: 6px;
|
|
15208
|
+
}
|
|
15209
|
+
|
|
15210
|
+
.work-spreadsheet-border-settings select {
|
|
15211
|
+
padding-inline: 7px;
|
|
15212
|
+
}
|
|
15213
|
+
|
|
15214
|
+
.work-spreadsheet-border-color-control {
|
|
15215
|
+
grid-template-columns: 18px minmax(0, 1fr);
|
|
15216
|
+
align-items: center;
|
|
15217
|
+
gap: 5px;
|
|
15218
|
+
padding: 0 6px;
|
|
15219
|
+
display: grid;
|
|
15220
|
+
position: relative;
|
|
15221
|
+
}
|
|
15222
|
+
|
|
15223
|
+
.work-spreadsheet-border-color-control input {
|
|
15224
|
+
cursor: pointer;
|
|
15225
|
+
opacity: 0;
|
|
15226
|
+
width: 100%;
|
|
15227
|
+
height: 100%;
|
|
15228
|
+
position: absolute;
|
|
15229
|
+
inset: 0;
|
|
15230
|
+
}
|
|
15231
|
+
|
|
15232
|
+
.work-spreadsheet-border-color-swatch {
|
|
15233
|
+
border: 1px solid var(--a3s-line-strong);
|
|
15234
|
+
border-radius: 4px;
|
|
15235
|
+
width: 16px;
|
|
15236
|
+
height: 16px;
|
|
15237
|
+
}
|
|
15238
|
+
|
|
15239
|
+
.work-spreadsheet-border-color-control output {
|
|
15240
|
+
color: var(--a3s-muted);
|
|
15241
|
+
text-overflow: ellipsis;
|
|
15242
|
+
font-size: 9px;
|
|
15243
|
+
overflow: hidden;
|
|
15244
|
+
}
|
|
15245
|
+
|
|
15246
|
+
@media (width <= 480px) {
|
|
15247
|
+
.work-spreadsheet-border-panel {
|
|
15248
|
+
width: min(276px, 100vw - 24px);
|
|
15249
|
+
}
|
|
15250
|
+
|
|
15251
|
+
.work-spreadsheet-border-targets > button {
|
|
15252
|
+
min-height: 44px;
|
|
15253
|
+
}
|
|
15254
|
+
|
|
15255
|
+
.work-spreadsheet-border-settings {
|
|
15256
|
+
grid-template-columns: 1fr;
|
|
15257
|
+
}
|
|
15258
|
+
}
|
|
15259
|
+
|
|
14823
15260
|
.work-spreadsheet-sheet-list {
|
|
14824
15261
|
min-width: 220px;
|
|
14825
15262
|
}
|