@univerjs/docs-ui 0.1.0-beta.5 → 0.1.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/lib/cjs/index.js +10 -2
- package/lib/es/index.js +1193 -644
- package/lib/index.css +1 -0
- package/lib/types/controllers/app-ui-controller.d.ts +2 -2
- package/lib/types/controllers/doc-editor-bridge.controller.d.ts +37 -0
- package/lib/types/controllers/doc-render.controller.d.ts +31 -0
- package/lib/types/controllers/doc-ui.controller.d.ts +6 -5
- package/lib/types/controllers/floating-object.controller.d.ts +35 -0
- package/lib/types/controllers/page-render.controller.d.ts +27 -0
- package/lib/types/controllers/zoom.controller.d.ts +37 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/locale/en-US.d.ts +3 -21
- package/lib/types/locale/zh-CN.d.ts +2 -2
- package/lib/types/services/clipboard/html-to-udm/utils.d.ts +0 -1
- package/lib/types/shortcuts/utils.d.ts +17 -0
- package/lib/types/views/doc-background/DocBackground.d.ts +20 -0
- package/lib/types/views/doc-canvas-view.d.ts +32 -0
- package/lib/umd/index.js +10 -2
- package/package.json +12 -12
package/lib/index.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.univer-docs-ui-canvas-background{position:relative;width:100%;height:100%;background:rgb(var(--grey-50));z-index:1;user-select:none;pointer-events:none}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { LocaleService, RxDisposable } from '@univerjs/core';
|
|
17
17
|
import { Injector } from '@wendellhu/redi';
|
|
18
|
-
import {
|
|
18
|
+
import { ILayoutService } from '@univerjs/ui';
|
|
19
19
|
import { ITextSelectionRenderManager } from '@univerjs/engine-render';
|
|
20
20
|
import type { IUniverDocsUIConfig } from '../basics';
|
|
21
21
|
import { DocContainerUIController } from './doc-container-ui-controller';
|
|
@@ -25,7 +25,7 @@ export declare class AppUIController extends RxDisposable {
|
|
|
25
25
|
private readonly _textSelectionRenderManager;
|
|
26
26
|
private readonly _layoutService?;
|
|
27
27
|
private _docContainerController;
|
|
28
|
-
constructor(_config: IUniverDocsUIConfig, _localeService: LocaleService, _injector: Injector, _textSelectionRenderManager: ITextSelectionRenderManager, _layoutService?:
|
|
28
|
+
constructor(_config: IUniverDocsUIConfig, _localeService: LocaleService, _injector: Injector, _textSelectionRenderManager: ITextSelectionRenderManager, _layoutService?: ILayoutService | undefined);
|
|
29
29
|
private _registerContainer;
|
|
30
30
|
/**
|
|
31
31
|
* Change language
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Disposable, ICommandService, IUniverInstanceService } from '@univerjs/core';
|
|
17
|
+
import { ITextSelectionRenderManager } from '@univerjs/engine-render';
|
|
18
|
+
import { DocSkeletonManagerService } from '@univerjs/docs';
|
|
19
|
+
import { IEditorService } from '@univerjs/ui';
|
|
20
|
+
export declare class DocEditorBridgeController extends Disposable {
|
|
21
|
+
private readonly _currentUniverService;
|
|
22
|
+
private readonly _docSkeletonManagerService;
|
|
23
|
+
private readonly _editorService;
|
|
24
|
+
private readonly _commandService;
|
|
25
|
+
private readonly _textSelectionRenderManager;
|
|
26
|
+
private _initialEditors;
|
|
27
|
+
constructor(_currentUniverService: IUniverInstanceService, _docSkeletonManagerService: DocSkeletonManagerService, _editorService: IEditorService, _commandService: ICommandService, _textSelectionRenderManager: ITextSelectionRenderManager);
|
|
28
|
+
private _initialize;
|
|
29
|
+
private _resize;
|
|
30
|
+
private _initialSetValue;
|
|
31
|
+
private _initialBlur;
|
|
32
|
+
private _initialFocus;
|
|
33
|
+
/**
|
|
34
|
+
* Listen to document edits to refresh the size of the normula editor.
|
|
35
|
+
*/
|
|
36
|
+
private _commandExecutedListener;
|
|
37
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { ICommandService, RxDisposable } from '@univerjs/core';
|
|
17
|
+
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
18
|
+
import { IEditorService } from '@univerjs/ui';
|
|
19
|
+
import { DocSkeletonManagerService } from '@univerjs/docs';
|
|
20
|
+
export declare class DocRenderController extends RxDisposable {
|
|
21
|
+
private readonly _docSkeletonManagerService;
|
|
22
|
+
private readonly _renderManagerService;
|
|
23
|
+
private readonly _commandService;
|
|
24
|
+
private readonly _editorService;
|
|
25
|
+
private _docRenderMap;
|
|
26
|
+
constructor(_docSkeletonManagerService: DocSkeletonManagerService, _renderManagerService: IRenderManagerService, _commandService: ICommandService, _editorService: IEditorService);
|
|
27
|
+
private _initialRenderRefresh;
|
|
28
|
+
private _create;
|
|
29
|
+
private _recalculateSizeBySkeleton;
|
|
30
|
+
private _commandExecutedListener;
|
|
31
|
+
}
|
|
@@ -13,19 +13,20 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Disposable,
|
|
16
|
+
import { Disposable, IUniverInstanceService } from '@univerjs/core';
|
|
17
17
|
import type { IDesktopUIController } from '@univerjs/ui';
|
|
18
|
-
import { ComponentManager,
|
|
18
|
+
import { ComponentManager, IEditorService, IMenuService } from '@univerjs/ui';
|
|
19
19
|
import { Injector } from '@wendellhu/redi';
|
|
20
20
|
export declare class DocUIController extends Disposable {
|
|
21
21
|
private readonly _injector;
|
|
22
22
|
private readonly _componentManager;
|
|
23
|
-
private readonly
|
|
24
|
-
private readonly _shortcutService;
|
|
23
|
+
private readonly _editorService;
|
|
25
24
|
private readonly _menuService;
|
|
26
25
|
private readonly _uiController;
|
|
27
|
-
|
|
26
|
+
private readonly _currentUniverService;
|
|
27
|
+
constructor(_injector: Injector, _componentManager: ComponentManager, _editorService: IEditorService, _menuService: IMenuService, _uiController: IDesktopUIController, _currentUniverService: IUniverInstanceService);
|
|
28
28
|
private _initCustomComponents;
|
|
29
29
|
private _initMenus;
|
|
30
30
|
private _init;
|
|
31
|
+
private _initDocBackground;
|
|
31
32
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Disposable, ICommandService, IFloatingObjectManagerService, IUniverInstanceService } from '@univerjs/core';
|
|
17
|
+
import { DocSkeletonManagerService } from '@univerjs/docs';
|
|
18
|
+
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
19
|
+
import { IEditorService } from '@univerjs/ui';
|
|
20
|
+
export declare class FloatingObjectController extends Disposable {
|
|
21
|
+
private readonly _docSkeletonManagerService;
|
|
22
|
+
private readonly _currentUniverService;
|
|
23
|
+
private readonly _renderManagerService;
|
|
24
|
+
private readonly _commandService;
|
|
25
|
+
private readonly _floatingObjectManagerService;
|
|
26
|
+
private readonly _editorService;
|
|
27
|
+
private _liquid;
|
|
28
|
+
private _pageMarginCache;
|
|
29
|
+
constructor(_docSkeletonManagerService: DocSkeletonManagerService, _currentUniverService: IUniverInstanceService, _renderManagerService: IRenderManagerService, _commandService: ICommandService, _floatingObjectManagerService: IFloatingObjectManagerService, _editorService: IEditorService);
|
|
30
|
+
private _initialize;
|
|
31
|
+
private _updateOnPluginChange;
|
|
32
|
+
private _initialRenderRefresh;
|
|
33
|
+
private _commandExecutedListener;
|
|
34
|
+
private _refreshFloatingObject;
|
|
35
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Disposable, IUniverInstanceService } from '@univerjs/core';
|
|
17
|
+
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
18
|
+
import { IEditorService } from '@univerjs/ui';
|
|
19
|
+
export declare class PageRenderController extends Disposable {
|
|
20
|
+
private readonly _renderManagerService;
|
|
21
|
+
private readonly _editorService;
|
|
22
|
+
private readonly _currentUniverService;
|
|
23
|
+
constructor(_renderManagerService: IRenderManagerService, _editorService: IEditorService, _currentUniverService: IUniverInstanceService);
|
|
24
|
+
private _initialize;
|
|
25
|
+
private _initialRenderRefresh;
|
|
26
|
+
private _commandExecutedListener;
|
|
27
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Disposable, ICommandService, IUniverInstanceService } from '@univerjs/core';
|
|
17
|
+
import { DocSkeletonManagerService, TextSelectionManagerService } from '@univerjs/docs';
|
|
18
|
+
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
19
|
+
import { IEditorService } from '@univerjs/ui';
|
|
20
|
+
export declare class ZoomController extends Disposable {
|
|
21
|
+
private readonly _docSkeletonManagerService;
|
|
22
|
+
private readonly _currentUniverService;
|
|
23
|
+
private readonly _commandService;
|
|
24
|
+
private readonly _renderManagerService;
|
|
25
|
+
private readonly _textSelectionManagerService;
|
|
26
|
+
private readonly _editorService;
|
|
27
|
+
private _initializedRender;
|
|
28
|
+
constructor(_docSkeletonManagerService: DocSkeletonManagerService, _currentUniverService: IUniverInstanceService, _commandService: ICommandService, _renderManagerService: IRenderManagerService, _textSelectionManagerService: TextSelectionManagerService, _editorService: IEditorService);
|
|
29
|
+
dispose(): void;
|
|
30
|
+
private _initialize;
|
|
31
|
+
private _initialRenderRefresh;
|
|
32
|
+
private _skeletonListener;
|
|
33
|
+
private _commandExecutedListener;
|
|
34
|
+
private _updateViewZoom;
|
|
35
|
+
private _calculatePagePosition;
|
|
36
|
+
private _getDocObject;
|
|
37
|
+
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -13,24 +13,6 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
redo: string;
|
|
20
|
-
font: string;
|
|
21
|
-
fontSize: string;
|
|
22
|
-
bold: string;
|
|
23
|
-
italic: string;
|
|
24
|
-
strikethrough: string;
|
|
25
|
-
subscript: string;
|
|
26
|
-
superscript: string;
|
|
27
|
-
textColor: {
|
|
28
|
-
main: string;
|
|
29
|
-
right: string;
|
|
30
|
-
};
|
|
31
|
-
resetColor: string;
|
|
32
|
-
order: string;
|
|
33
|
-
unorder: string;
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
export default _default;
|
|
16
|
+
import type zhCN from './zh-CN';
|
|
17
|
+
declare const locale: typeof zhCN;
|
|
18
|
+
export default locale;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
declare const
|
|
16
|
+
declare const locale: {
|
|
17
17
|
toolbar: {
|
|
18
18
|
undo: string;
|
|
19
19
|
redo: string;
|
|
@@ -34,4 +34,4 @@ declare const _default: {
|
|
|
34
34
|
unorder: string;
|
|
35
35
|
};
|
|
36
36
|
};
|
|
37
|
-
export default
|
|
37
|
+
export default locale;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import type { IContextService } from '@univerjs/core';
|
|
17
|
+
export declare function whenDocAndEditorFocused(contextService: IContextService): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import React from 'react';
|
|
17
|
+
/**
|
|
18
|
+
* Doc standalone background
|
|
19
|
+
*/
|
|
20
|
+
export declare const DocBackground: () => React.JSX.Element;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { IConfigService, IUniverInstanceService, RxDisposable } from '@univerjs/core';
|
|
17
|
+
import type { RenderManagerService } from '@univerjs/engine-render';
|
|
18
|
+
export declare class DocCanvasView extends RxDisposable {
|
|
19
|
+
private readonly _renderManagerService;
|
|
20
|
+
private readonly _configService;
|
|
21
|
+
private readonly _currentUniverService;
|
|
22
|
+
private _scene;
|
|
23
|
+
private _currentDocumentModel;
|
|
24
|
+
private readonly _fps$;
|
|
25
|
+
readonly fps$: import("rxjs").Observable<string>;
|
|
26
|
+
constructor(_renderManagerService: RenderManagerService, _configService: IConfigService, _currentUniverService: IUniverInstanceService);
|
|
27
|
+
private _initialize;
|
|
28
|
+
dispose(): void;
|
|
29
|
+
private _create;
|
|
30
|
+
private _addNewRender;
|
|
31
|
+
private _addComponent;
|
|
32
|
+
}
|
package/lib/umd/index.js
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
(function(p,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/ui"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@univerjs/design"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/ui","@univerjs/docs","@univerjs/engine-render","@univerjs/design","rxjs"],r):(p=typeof globalThis<"u"?globalThis:p||self,r(p.UniverDocsUi={},p.UniverCore,p["@wendellhu/redi"],p.UniverUi,p.UniverDocs,p.UniverEngineRender,p.UniverDesign,p.rxjs))})(this,function(p,r,f,l,d,V,ie,O){"use strict";var lt=Object.defineProperty;var ct=(p,r,f)=>r in p?lt(p,r,{enumerable:!0,configurable:!0,writable:!0,value:f}):p[r]=f;var g=(p,r,f)=>(ct(p,typeof r!="symbol"?r+"":r,f),f);var G;const K={undo:!0,redo:!0,font:!0,fontSize:!0,bold:!0,italic:!0,strikethrough:!0,underline:!0,textColor:!0,fillColor:!0,horizontalAlignMode:!0,verticalAlignMode:!0,textWrapMode:!0,textRotateMode:!0},W={outerLeft:!1,outerRight:!1,header:!0,footer:!0,innerLeft:!1,innerRight:!1,frozenHeaderLT:!1,frozenHeaderRT:!1,frozenHeaderLM:!1,frozenContent:!1,infoBar:!0,toolbar:!0},z={layout:{docContainerConfig:W,toolbarConfig:K}},Y="DocUI",re={id:d.MoveCursorOperation.id,binding:l.KeyCode.ARROW_UP,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),staticParameters:{direction:r.Direction.UP}},se={id:d.MoveCursorOperation.id,binding:l.KeyCode.ARROW_DOWN,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),staticParameters:{direction:r.Direction.DOWN}},ae={id:d.MoveCursorOperation.id,binding:l.KeyCode.ARROW_LEFT,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),staticParameters:{direction:r.Direction.LEFT}},le={id:d.MoveCursorOperation.id,binding:l.KeyCode.ARROW_RIGHT,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),staticParameters:{direction:r.Direction.RIGHT}},ce={id:d.MoveSelectionOperation.id,binding:l.KeyCode.ARROW_UP|l.MetaKeys.SHIFT,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),staticParameters:{direction:r.Direction.UP}},de={id:d.MoveSelectionOperation.id,binding:l.KeyCode.ARROW_DOWN|l.MetaKeys.SHIFT,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),staticParameters:{direction:r.Direction.DOWN}},ue={id:d.MoveSelectionOperation.id,binding:l.KeyCode.ARROW_LEFT|l.MetaKeys.SHIFT,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),staticParameters:{direction:r.Direction.LEFT}},pe={id:d.MoveSelectionOperation.id,binding:l.KeyCode.ARROW_RIGHT|l.MetaKeys.SHIFT,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),staticParameters:{direction:r.Direction.RIGHT}},me={id:d.SelectAllOperation.id,binding:l.KeyCode.A|l.MetaKeys.CTRL_COMMAND,preconditions:e=>e.getContextValue(r.FOCUSING_DOC)||e.getContextValue(r.EDITOR_ACTIVATED)};var fe=Object.defineProperty,he=Object.getOwnPropertyDescriptor,Ce=(e,t,n,o)=>{for(var i=o>1?void 0:o?he(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=(o?a(t,n,i):a(i))||i);return o&&i&&fe(t,n,i),i},k=(e,t)=>(n,o)=>t(n,o,e);let B=class{constructor(e,t,n){g(this,"_docContainer");g(this,"getComponent",e=>{if(this._docContainer=e,!e.getContentRef().current)throw new Error("container is not ready")});g(this,"changeLocale",e=>{this._localeService.setLocale(e)});this._config=e,this._localeService=t,this._injector=n}getUIConfig(){return{injector:this._injector,config:this._config,changeLocale:this.changeLocale,getComponent:this.getComponent}}getContentRef(){return this._docContainer.getContentRef()}UIDidMount(e){if(this._docContainer)return e(this._docContainer)}getDocContainer(){return this._docContainer}};B=Ce([k(1,f.Inject(r.LocaleService)),k(2,f.Inject(f.Injector))],B);var ge=Object.defineProperty,_e=Object.getOwnPropertyDescriptor,Se=(e,t,n,o)=>{for(var i=o>1?void 0:o?_e(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=(o?a(t,n,i):a(i))||i);return o&&i&&ge(t,n,i),i},U=(e,t)=>(n,o)=>t(n,o,e);let b=class extends r.RxDisposable{constructor(t,n,o,i,s){super();g(this,"_docContainerController");g(this,"changeLocale",t=>{this._localeService.setLocale(t)});this._localeService=n,this._injector=o,this._textSelectionRenderManager=i,this._layoutService=s,this._docContainerController=this._injector.createInstance(B,t),this._registerContainer()}_registerContainer(){this._layoutService&&this.disposeWithMe(this._layoutService.registerContainer(this._textSelectionRenderManager.__getEditorContainer()))}getDocContainerController(){return this._docContainerController}};b=Se([U(1,f.Inject(r.LocaleService)),U(2,f.Inject(f.Injector)),U(3,V.ITextSelectionRenderManager),U(4,f.Optional(l.LayoutService))],b);const x="UI_PLUGIN_DOCS",q=`${x}_COLOR_PICKER_COMPONENT`,Z=`${x}_FONT_FAMILY_COMPONENT`,X=`${x}_FONT_FAMILY_ITEM_COMPONENT`,J=`${x}_FONT_SIZE_COMPONENT`;function Oe(e){const t=e.get(r.ICommandService);return{id:d.SetInlineFormatBoldCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",positions:[l.MenuPosition.TOOLBAR_START],activated$:new O.Observable(n=>{const o=t.onCommandExecuted(i=>{var a;const s=i.id;if(s===d.SetTextSelectionsOperation.id||s===d.SetInlineFormatCommand.id){const c=v(e);if(c==null)return;const u=(a=c.ts)==null?void 0:a.bl;n.next(u===r.BooleanNumber.TRUE)}});return n.next(!1),o.dispose}),hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function ve(e){const t=e.get(r.ICommandService);return{id:d.SetInlineFormatItalicCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",positions:[l.MenuPosition.TOOLBAR_START],activated$:new O.Observable(n=>{const o=t.onCommandExecuted(i=>{var a;const s=i.id;if(s===d.SetTextSelectionsOperation.id||s===d.SetInlineFormatCommand.id){const c=v(e);if(c==null)return;const u=(a=c.ts)==null?void 0:a.it;n.next(u===r.BooleanNumber.TRUE)}});return n.next(!1),o.dispose}),hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function Te(e){const t=e.get(r.ICommandService);return{id:d.SetInlineFormatUnderlineCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",positions:[l.MenuPosition.TOOLBAR_START],activated$:new O.Observable(n=>{const o=t.onCommandExecuted(i=>{var a;const s=i.id;if(s===d.SetTextSelectionsOperation.id||s===d.SetInlineFormatCommand.id){const c=v(e);if(c==null)return;const u=(a=c.ts)==null?void 0:a.ul;n.next((u==null?void 0:u.s)===r.BooleanNumber.TRUE)}});return n.next(!1),o.dispose}),hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function Ie(e){const t=e.get(r.ICommandService);return{id:d.SetInlineFormatStrikethroughCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",positions:[l.MenuPosition.TOOLBAR_START],activated$:new O.Observable(n=>{const o=t.onCommandExecuted(i=>{var a;const s=i.id;if(s===d.SetTextSelectionsOperation.id||s===d.SetInlineFormatCommand.id){const c=v(e);if(c==null)return;const u=(a=c.ts)==null?void 0:a.st;n.next((u==null?void 0:u.s)===r.BooleanNumber.TRUE)}});return n.next(!1),o.dispose}),hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function be(e){const t=e.get(r.ICommandService);return{id:d.SetInlineFormatSubscriptCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"SubscriptSingle",tooltip:"toolbar.subscript",positions:[l.MenuPosition.TOOLBAR_START],activated$:new O.Observable(n=>{const o=t.onCommandExecuted(i=>{var a;const s=i.id;if(s===d.SetTextSelectionsOperation.id||s===d.SetInlineFormatCommand.id){const c=v(e);if(c==null)return;const u=(a=c.ts)==null?void 0:a.va;n.next(u===r.BaselineOffset.SUBSCRIPT)}});return n.next(!1),o.dispose}),hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function ye(e){const t=e.get(r.ICommandService);return{id:d.SetInlineFormatSuperscriptCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"SuperscriptSingle",tooltip:"toolbar.superscript",positions:[l.MenuPosition.TOOLBAR_START],activated$:new O.Observable(n=>{const o=t.onCommandExecuted(i=>{var a;const s=i.id;if(s===d.SetTextSelectionsOperation.id||s===d.SetInlineFormatCommand.id){const c=v(e);if(c==null)return;const u=(a=c.ts)==null?void 0:a.va;n.next(u===r.BaselineOffset.SUPERSCRIPT)}});return n.next(!1),o.dispose}),hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function Re(e){const t=e.get(r.ICommandService);return{id:d.SetInlineFormatFontFamilyCommand.id,tooltip:"toolbar.font",group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.SELECTOR,label:Z,positions:[l.MenuPosition.TOOLBAR_START],selections:l.FONT_FAMILY_LIST.map(n=>({label:{name:X,hoverable:!0},value:n.value})),value$:new O.Observable(n=>{const o=l.FONT_FAMILY_LIST[0].value,i=t.onCommandExecuted(s=>{var c;const a=s.id;if(a===d.SetTextSelectionsOperation.id||a===d.SetInlineFormatFontFamilyCommand.id){const u=v(e);if(u==null)return;const m=(c=u.ts)==null?void 0:c.ff;n.next(m!=null?m:o)}});return n.next(o),i.dispose}),hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function Me(e){const t=e.get(r.ICommandService);return{id:d.SetInlineFormatFontSizeCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:J,props:{min:1,max:400}},positions:[l.MenuPosition.TOOLBAR_START],selections:l.FONT_SIZE_LIST,value$:new O.Observable(n=>{const i=t.onCommandExecuted(s=>{var c;const a=s.id;if(a===d.SetTextSelectionsOperation.id||a===d.SetInlineFormatFontSizeCommand.id){const u=v(e);if(u==null)return;const m=(c=u.ts)==null?void 0:c.fs;n.next(m!=null?m:14)}});return n.next(14),i.dispose}),hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function De(e){const t=e.get(r.ICommandService),n=e.get(r.ThemeService);return{id:d.SetInlineFormatTextColorCommand.id,icon:"FontColor",tooltip:"toolbar.textColor.main",group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON_SELECTOR,positions:[l.MenuPosition.TOOLBAR_START],selections:[{label:{name:q,hoverable:!1}}],value$:new O.Observable(o=>{const i=n.getCurrentTheme().textColor,s=t.onCommandExecuted(a=>{if(a.id===d.SetInlineFormatTextColorCommand.id){const c=a.params.value;o.next(c!=null?c:i)}});return o.next(i),s.dispose}),hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function Pe(e){return{id:d.OrderListCommand.id,group:l.MenuGroup.TOOLBAR_LAYOUT,type:l.MenuItemType.BUTTON,icon:"OrderSingle",tooltip:"toolbar.order",positions:[l.MenuPosition.TOOLBAR_START],hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function Ue(e){return{id:d.BulletListCommand.id,group:l.MenuGroup.TOOLBAR_LAYOUT,type:l.MenuItemType.BUTTON,icon:"UnorderSingle",tooltip:"toolbar.unorder",positions:[l.MenuPosition.TOOLBAR_START],hidden$:l.getMenuHiddenObservable(e,r.UniverInstanceType.DOC)}}function v(e){var u;const t=e.get(r.IUniverInstanceService),n=e.get(d.TextSelectionManagerService),o=t.getCurrentUniverDocInstance(),i=n.getActiveRange();if(o==null||i==null)return;const s=(u=o.getBody())==null?void 0:u.textRuns;if(s==null)return;const{startOffset:a}=i;return s.find(({st:m,ed:C})=>a>=m&&a<C)}var xe=Object.defineProperty,Ne=Object.getOwnPropertyDescriptor,Ee=(e,t,n,o)=>{for(var i=o>1?void 0:o?Ne(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=(o?a(t,n,i):a(i))||i);return o&&i&&xe(t,n,i),i},I=(e,t)=>(n,o)=>t(n,o,e);let N=class extends r.Disposable{constructor(e,t,n,o,i,s){super(),this._injector=e,this._componentManager=t,this._commandService=n,this._shortcutService=o,this._menuService=i,this._uiController=s,this._init()}_initCustomComponents(){const e=this._componentManager;this.disposeWithMe(e.register(q,ie.ColorPicker)),this.disposeWithMe(e.register(Z,l.FontFamily)),this.disposeWithMe(e.register(X,l.FontFamilyItem)),this.disposeWithMe(e.register(J,l.FontSize))}_initMenus(){[Oe,ve,Te,Ie,be,ye,Me,Re,De,Pe,Ue].forEach(e=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(e)))})}_init(){this._initCustomComponents(),this._initMenus()}};N=Ee([r.OnLifecycle(r.LifecycleStages.Rendered,N),I(0,f.Inject(f.Injector)),I(1,f.Inject(l.ComponentManager)),I(2,r.ICommandService),I(3,l.IShortcutService),I(4,l.IMenuService),I(5,l.IUIController)],N);const Fe={toolbar:{undo:"Undo",redo:"Redo",font:"Font",fontSize:"Font size",bold:"Bold",italic:"Italic",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript",textColor:{main:"Text color",right:"Choose color"},resetColor:"Reset",order:"Ordered list",unorder:"Unordered list"}},Q={toolbar:{undo:"撤销",redo:"重做",font:"字体",fontSize:"字号",bold:"粗体",italic:"斜体",strikethrough:"删除线",subscript:"下标",superscript:"上标",underline:"下划线",textColor:{main:"文本颜色",right:"颜色选择"},resetColor:"重置颜色",order:"有序列表",unorder:"无序列表"}},Ae={id:d.BreakLineCommand.id,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),binding:l.KeyCode.ENTER},Le={id:d.DeleteLeftCommand.id,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),binding:l.KeyCode.BACKSPACE},Be={id:d.DeleteRightCommand.id,preconditions:e=>e.getContextValue(r.FOCUSING_DOC),binding:l.KeyCode.DELETE},$e=10,we=6;function je(){return r.Tools.generateRandomId(we)}function He(e){const t=e.match(/data-copy-id="([^\s]+)"/);return t&&t[1]?t[1]:null}class Ge{constructor(){g(this,"_cache",new r.LRUMap($e))}set(t,n){this._cache.set(t,n)}get(t){return this._cache.get(t)}clear(){this._cache.clear()}}const ee=new Ge;function $(e){const t=e.style,n={},o=e.tagName.toLowerCase();switch(o){case"b":case"em":case"strong":{n.bl=r.BooleanNumber.TRUE;break}case"s":{n.st={s:r.BooleanNumber.TRUE};break}case"u":{n.ul={s:r.BooleanNumber.TRUE};break}case"i":{n.it=r.BooleanNumber.TRUE;break}case"sub":case"sup":{n.va=o==="sup"?r.BaselineOffset.SUPERSCRIPT:r.BaselineOffset.SUBSCRIPT;break}}for(let i=0;i<t.length;i++){const s=t[i],a=t.getPropertyValue(s);switch(s){case"font-family":{n.ff=a;break}case"font-size":{const c=Number.parseInt(a);Number.isNaN(c)||a.endsWith("pt")&&(n.fs=c);break}case"font-style":{a==="italic"&&(n.it=r.BooleanNumber.TRUE);break}case"font-weight":{Number(a)>400&&(n.bl=r.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(a)?n.ul={s:r.BooleanNumber.TRUE}:/overline/.test(a)?n.ol={s:r.BooleanNumber.TRUE}:/line-through/.test(a)&&(n.st={s:r.BooleanNumber.TRUE});break}case"color":{const c=new r.ColorKit(a);c.isValid&&(n.cl={rgb:c.toRgbString()});break}case"background-color":{const c=new r.ColorKit(a);c.isValid&&(n.bg={rgb:c.toRgbString()});break}}}return n}function Ve(e){const t=new DOMParser,n=`<x-univer id="univer-root">${e}</x-univer>`;return t.parseFromString(n,"text/html").querySelector("#univer-root")}function te(e,t){const n=e.tagName.toLowerCase();return typeof t=="string"?n===t:Array.isArray(t)?t.some(o=>o===n):t(e)}const A=class A{constructor(){g(this,"_styleCache",new Map);g(this,"_styleRules",[]);g(this,"_afterProcessRules",[])}static use(t){if(this._pluginList.includes(t))throw new Error(`Univer paste plugin ${t.name} already added`);this._pluginList.push(t)}convert(t){const n=A._pluginList.find(s=>s.checkPasteType(t)),o=Ve(t),i={dataStream:"",textRuns:[]};return n&&(this._styleRules=[...n.stylesRules],this._afterProcessRules=[...n.afterProcessRules]),this._styleCache.clear(),this._process(null,o==null?void 0:o.childNodes,i),this._styleCache.clear(),this._styleRules=[],this._afterProcessRules=[],i}_process(t,n,o){var i;for(const s of n)if(s.nodeType===Node.TEXT_NODE){const a=(i=s.nodeValue)==null?void 0:i.replace(/[\r\n]/g,"");let c;t&&this._styleCache.has(t)&&(c=this._styleCache.get(t)),o.dataStream+=a,c&&Object.getOwnPropertyNames(c).length&&o.textRuns.push({st:o.dataStream.length-a.length,ed:o.dataStream.length,ts:c})}else if(s.nodeType===Node.ELEMENT_NODE){const a=t?this._styleCache.get(t):{},c=this._styleRules.find(({filter:S})=>te(s,S)),u=c?c.getStyle(s):$(s);this._styleCache.set(s,{...a,...u});const{childNodes:m}=s;this._process(s,m,o);const C=this._afterProcessRules.find(({filter:S})=>te(s,S));C&&C.handler(o,s)}}};g(A,"_pluginList",[]);let y=A;const Ke={name:"univer-doc-paste-plugin-lark",checkPasteType(e){return/lark-record-clipboard/i.test(e)},stylesRules:[{filter:["s"],getStyle(e){const t=$(e);return{st:{s:r.BooleanNumber.TRUE},...t}}}],afterProcessRules:[{filter(e){return e.tagName==="DIV"&&/ace-line/i.test(e.className)},handler(e){e.paragraphs==null&&(e.paragraphs=[]),e.paragraphs.push({startIndex:e.dataStream.length}),e.dataStream+="\r"}}]};function We(e){const t=e.style,n={};for(let o=0;o<t.length;o++){const i=t[o],s=t.getPropertyValue(i);switch(i){case"margin-top":{const a=Number.parseInt(s);n.spaceAbove=/pt/.test(s)?ne(a):a;break}case"margin-bottom":{const a=Number.parseInt(s);n.spaceBelow=/pt/.test(s)?ne(a):a;break}}}return Object.getOwnPropertyNames(n).length?n:null}function ne(e){return e/.75}const ze={name:"univer-doc-paste-plugin-word",checkPasteType(e){return/word|mso/i.test(e)},stylesRules:[{filter:["b"],getStyle(e){const t=$(e);return{bl:r.BooleanNumber.TRUE,...t}}}],afterProcessRules:[{filter(e){return e.tagName==="P"&&/mso/i.test(e.className)},handler(e,t){e.paragraphs==null&&(e.paragraphs=[]);const n={startIndex:e.dataStream.length},o=We(t);o&&(n.paragraphStyle=o),e.paragraphs.push(n),e.dataStream+="\r"}}]};function Ye(e,t){const{st:n,ed:o,ts:i={}}=t,{ff:s,fs:a,it:c,bl:u,ul:m,st:C,ol:S,bg:P,cl:L,va:T}=i;let h=e.slice(n,o);const _=[];return c===r.BooleanNumber.TRUE&&(h=`<i>${h}</i>`),T===r.BaselineOffset.SUPERSCRIPT?h=`<sup>${h}</sup>`:T===r.BaselineOffset.SUBSCRIPT&&(h=`<sub>${h}</sub>`),(m==null?void 0:m.s)===r.BooleanNumber.TRUE&&(h=`<u>${h}</u>`),(C==null?void 0:C.s)===r.BooleanNumber.TRUE&&(h=`<s>${h}</s>`),u===r.BooleanNumber.TRUE&&(h=`<strong>${h}</strong>`),s&&_.push(`font-family: ${s}`),L&&_.push(`color: ${L.rgb}`),a&&_.push(`font-size: ${a}px`),S&&_.push("text-decoration: overline"),P&&_.push(`background: ${P.rgb}`),_.length?`<span style="${_.join(";")}">${h}</span>`:h}function oe(e,t=!0){const{dataStream:n,textRuns:o=[],paragraphs:i=[]}=e;let s=0;const a=[],c=[];for(const u of o){const{st:m,ed:C}=u;if(m!==s&&a.push(n.slice(s,m)),a.push(Ye(n,u)),s=C,t)for(const S of i){const{startIndex:P,paragraphStyle:L={}}=S;if(P>=m&&P<=C){const{spaceAbove:T,spaceBelow:h}=L,_=[];T!=null&&(typeof T=="number"?_.push(`margin-top: ${T}px`):_.push(`margin-top: ${T.v}px`)),h!=null&&(typeof h=="number"?_.push(`margin-bottom: ${h}px`):_.push(`margin-bottom: ${h.v}px`)),c.push(`<p className="UniverNormal" ${_.length?`style="${_.join(";")}"`:""}>${a.join("")}</p>`),a.length=0}}}return s<n.length&&a.push(n.slice(s,n.length)),c.join("")+a.join("")}class ke{convert(t){if(t.length===0)throw new Error("The bodyList length at least to be 1");if(t.length===1)return oe(t[0]);let n="";for(const o of t)n+='<p className="UniverNormal">',n+=oe(o,!1),n+="</p>";return n}}var qe=Object.defineProperty,Ze=Object.getOwnPropertyDescriptor,Xe=(e,t,n,o)=>{for(var i=o>1?void 0:o?Ze(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=(o?a(t,n,i):a(i))||i);return o&&i&&qe(t,n,i),i},R=(e,t)=>(n,o)=>t(n,o,e);y.use(ze),y.use(Ke);function Je(e){const t=e.replace(/\n/g,"\r"),n=[];for(let o=0;o<t.length;o++)t[o]==="\r"&&n.push({startIndex:o});return{dataStream:t,paragraphs:n}}const M=f.createIdentifier("doc.clipboard-service");let w=class extends r.Disposable{constructor(t,n,o,i,s){super();g(this,"_clipboardHooks",[]);g(this,"_htmlToUDM",new y);g(this,"_umdToHtml",new ke);this._currentUniverService=t,this._logService=n,this._commandService=o,this._clipboardInterfaceService=i,this._textSelectionManagerService=s}async copy(){const t=this._getDocumentBodyInRanges();try{this._setClipboardData(t)}catch(n){return this._logService.error("[DocClipboardService] copy failed",n),!1}return!0}async cut(){return this._cut()}async paste(t){const n=await this._generateBodyFromClipboardItems(t);return this._paste(n)}async legacyPaste(t,n){const o=this._generateBodyFromHtmlAndText(t,n);return this._paste(o)}async _cut(){var s;const{segmentId:t,endOffset:n,style:o}=(s=this._textSelectionManagerService.getActiveRange())!=null?s:{},i=this._textSelectionManagerService.getSelections();if(t==null&&this._logService.error("[DocClipboardController] segmentId is not existed"),n==null||i==null)return!1;this.copy();try{let a=n;for(const u of i){const{startOffset:m,endOffset:C}=u;m==null||C==null||C<=n&&(a-=C-m)}const c=[{startOffset:a,endOffset:a,style:o}];return this._commandService.executeCommand(d.CutContentCommand.id,{segmentId:t,textRanges:c})}catch{return this._logService.error("[DocClipboardController] cut content failed"),!1}}async _paste(t){var a;const{segmentId:n,endOffset:o,style:i}=(a=this._textSelectionManagerService.getActiveRange())!=null?a:{},s=this._textSelectionManagerService.getSelections();if(n==null&&this._logService.error("[DocClipboardController] segmentId does not exist!"),o==null||s==null)return!1;try{let c=o;for(const m of s){const{startOffset:C,endOffset:S}=m;C==null||S==null||S<=o&&(c+=t.dataStream.length-(S-C))}const u=[{startOffset:c,endOffset:c,style:i}];return this._commandService.executeCommand(d.InnerPasteCommand.id,{body:t,segmentId:n,textRanges:u})}catch{return this._logService.error("[DocClipboardController]","clipboard is empty."),!1}}async _setClipboardData(t){const n=je(),o=t.length>1?t.map(s=>s.dataStream).join(`
|
|
2
|
-
|
|
1
|
+
(function(g,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/ui"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@wendellhu/redi/react-bindings"),require("@univerjs/design"),require("react"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/ui","@univerjs/docs","@univerjs/engine-render","@wendellhu/redi/react-bindings","@univerjs/design","react","rxjs"],a):(g=typeof globalThis<"u"?globalThis:g||self,a(g.UniverDocsUi={},g.UniverCore,g["@wendellhu/redi"],g.UniverUi,g.UniverDocs,g.UniverEngineRender,g["@wendellhu/redi/react-bindings"],g.UniverDesign,g.React,g.rxjs))})(this,function(g,a,v,l,u,O,De,Ee,Pe,y){"use strict";var hn=Object.defineProperty;var pn=(g,a,v)=>a in g?hn(g,a,{enumerable:!0,configurable:!0,writable:!0,value:v}):g[a]=v;var I=(g,a,v)=>(pn(g,typeof a!="symbol"?a+"":a,v),v);var ce;const le={undo:!0,redo:!0,font:!0,fontSize:!0,bold:!0,italic:!0,strikethrough:!0,underline:!0,textColor:!0,fillColor:!0,horizontalAlignMode:!0,verticalAlignMode:!0,textWrapMode:!0,textRotateMode:!0},de={outerLeft:!1,outerRight:!1,header:!0,footer:!0,innerLeft:!1,innerRight:!1,frozenHeaderLT:!1,frozenHeaderRT:!1,frozenHeaderLM:!1,frozenContent:!1,infoBar:!0,toolbar:!0},ue={layout:{docContainerConfig:de,toolbarConfig:le}},he="DocUI";function M(r){return r.getContextValue(a.FOCUSING_DOC)&&r.getContextValue(a.FOCUSING_UNIVER_EDITOR)}const Ue={id:u.MoveCursorOperation.id,binding:l.KeyCode.ARROW_UP,preconditions:M,staticParameters:{direction:a.Direction.UP}},xe={id:u.MoveCursorOperation.id,binding:l.KeyCode.ARROW_DOWN,preconditions:M,staticParameters:{direction:a.Direction.DOWN}},Le={id:u.MoveCursorOperation.id,binding:l.KeyCode.ARROW_LEFT,preconditions:M,staticParameters:{direction:a.Direction.LEFT}},Ne={id:u.MoveCursorOperation.id,binding:l.KeyCode.ARROW_RIGHT,preconditions:M,staticParameters:{direction:a.Direction.RIGHT}},Ae={id:u.MoveSelectionOperation.id,binding:l.KeyCode.ARROW_UP|l.MetaKeys.SHIFT,preconditions:M,staticParameters:{direction:a.Direction.UP}},Be={id:u.MoveSelectionOperation.id,binding:l.KeyCode.ARROW_DOWN|l.MetaKeys.SHIFT,preconditions:M,staticParameters:{direction:a.Direction.DOWN}},Fe={id:u.MoveSelectionOperation.id,binding:l.KeyCode.ARROW_LEFT|l.MetaKeys.SHIFT,preconditions:M,staticParameters:{direction:a.Direction.LEFT}},we={id:u.MoveSelectionOperation.id,binding:l.KeyCode.ARROW_RIGHT|l.MetaKeys.SHIFT,preconditions:M,staticParameters:{direction:a.Direction.RIGHT}},$e={id:u.SelectAllOperation.id,binding:l.KeyCode.A|l.MetaKeys.CTRL_COMMAND,preconditions:r=>r.getContextValue(a.FOCUSING_UNIVER_EDITOR)&&(r.getContextValue(a.FOCUSING_DOC)||r.getContextValue(a.EDITOR_ACTIVATED))};var je=Object.defineProperty,ze=Object.getOwnPropertyDescriptor,We=(r,t,e,n)=>{for(var i=n>1?void 0:n?ze(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&je(t,e,i),i},pe=(r,t)=>(e,n)=>t(e,n,r);let te=class{constructor(r,t,e){I(this,"_docContainer");I(this,"getComponent",r=>{if(this._docContainer=r,!r.getContentRef().current)throw new Error("container is not ready")});I(this,"changeLocale",r=>{this._localeService.setLocale(r)});this._config=r,this._localeService=t,this._injector=e}getUIConfig(){return{injector:this._injector,config:this._config,changeLocale:this.changeLocale,getComponent:this.getComponent}}getContentRef(){return this._docContainer.getContentRef()}UIDidMount(r){if(this._docContainer)return r(this._docContainer)}getDocContainer(){return this._docContainer}};te=We([pe(1,v.Inject(a.LocaleService)),pe(2,v.Inject(v.Injector))],te);var Ve=Object.defineProperty,He=Object.getOwnPropertyDescriptor,ke=(r,t,e,n)=>{for(var i=n>1?void 0:n?He(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&Ve(t,e,i),i},W=(r,t)=>(e,n)=>t(e,n,r);let L=class extends a.RxDisposable{constructor(t,e,n,i,o){super();I(this,"_docContainerController");I(this,"changeLocale",t=>{this._localeService.setLocale(t)});this._localeService=e,this._injector=n,this._textSelectionRenderManager=i,this._layoutService=o,this._docContainerController=this._injector.createInstance(te,t),this._registerContainer()}_registerContainer(){this._layoutService&&this.disposeWithMe(this._layoutService.registerContainerElement(this._textSelectionRenderManager.__getEditorContainer()))}getDocContainerController(){return this._docContainerController}};L=ke([W(1,v.Inject(a.LocaleService)),W(2,v.Inject(v.Injector)),W(3,O.ITextSelectionRenderManager),W(4,v.Optional(l.ILayoutService))],L);const V="UI_PLUGIN_DOCS",_e=`${V}_COLOR_PICKER_COMPONENT`,me=`${V}_FONT_FAMILY_COMPONENT`,ge=`${V}_FONT_FAMILY_ITEM_COMPONENT`,fe=`${V}_FONT_SIZE_COMPONENT`;var Se={exports:{}},H={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.min.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var Ke=Pe,Ye=Symbol.for("react.element"),Ge=Symbol.for("react.fragment"),qe=Object.prototype.hasOwnProperty,Xe=Ke.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ze={key:!0,ref:!0,__self:!0,__source:!0};function ve(r,t,e){var n,i={},o=null,s=null;e!==void 0&&(o=""+e),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(s=t.ref);for(n in t)qe.call(t,n)&&!Ze.hasOwnProperty(n)&&(i[n]=t[n]);if(r&&r.defaultProps)for(n in t=r.defaultProps,t)i[n]===void 0&&(i[n]=t[n]);return{$$typeof:Ye,type:r,key:o,ref:s,props:i,_owner:Xe.current}}H.Fragment=Ge,H.jsx=ve,H.jsxs=ve,Se.exports=H;var Je=Se.exports;const Qe={docsUiCanvasBackground:"univer-docs-ui-canvas-background"},et=()=>Je.jsx("div",{className:Qe.docsUiCanvasBackground});function tt(r){const t=r.get(a.ICommandService);return{id:u.SetInlineFormatBoldCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",positions:[l.MenuPosition.TOOLBAR_START],activated$:new y.Observable(e=>{const n=t.onCommandExecuted(i=>{var s;const o=i.id;if(o===u.SetTextSelectionsOperation.id||o===u.SetInlineFormatCommand.id){const c=E(r);if(c==null)return;const d=(s=c.ts)==null?void 0:s.bl;e.next(d===a.BooleanNumber.TRUE)}});return e.next(!1),n.dispose}),hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function nt(r){const t=r.get(a.ICommandService);return{id:u.SetInlineFormatItalicCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",positions:[l.MenuPosition.TOOLBAR_START],activated$:new y.Observable(e=>{const n=t.onCommandExecuted(i=>{var s;const o=i.id;if(o===u.SetTextSelectionsOperation.id||o===u.SetInlineFormatCommand.id){const c=E(r);if(c==null)return;const d=(s=c.ts)==null?void 0:s.it;e.next(d===a.BooleanNumber.TRUE)}});return e.next(!1),n.dispose}),hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function it(r){const t=r.get(a.ICommandService);return{id:u.SetInlineFormatUnderlineCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",positions:[l.MenuPosition.TOOLBAR_START],activated$:new y.Observable(e=>{const n=t.onCommandExecuted(i=>{var s;const o=i.id;if(o===u.SetTextSelectionsOperation.id||o===u.SetInlineFormatCommand.id){const c=E(r);if(c==null)return;const d=(s=c.ts)==null?void 0:s.ul;e.next((d==null?void 0:d.s)===a.BooleanNumber.TRUE)}});return e.next(!1),n.dispose}),hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function rt(r){const t=r.get(a.ICommandService);return{id:u.SetInlineFormatStrikethroughCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",positions:[l.MenuPosition.TOOLBAR_START],activated$:new y.Observable(e=>{const n=t.onCommandExecuted(i=>{var s;const o=i.id;if(o===u.SetTextSelectionsOperation.id||o===u.SetInlineFormatCommand.id){const c=E(r);if(c==null)return;const d=(s=c.ts)==null?void 0:s.st;e.next((d==null?void 0:d.s)===a.BooleanNumber.TRUE)}});return e.next(!1),n.dispose}),hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function ot(r){const t=r.get(a.ICommandService);return{id:u.SetInlineFormatSubscriptCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"SubscriptSingle",tooltip:"toolbar.subscript",positions:[l.MenuPosition.TOOLBAR_START],activated$:new y.Observable(e=>{const n=t.onCommandExecuted(i=>{var s;const o=i.id;if(o===u.SetTextSelectionsOperation.id||o===u.SetInlineFormatCommand.id){const c=E(r);if(c==null)return;const d=(s=c.ts)==null?void 0:s.va;e.next(d===a.BaselineOffset.SUBSCRIPT)}});return e.next(!1),n.dispose}),hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function st(r){const t=r.get(a.ICommandService);return{id:u.SetInlineFormatSuperscriptCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON,icon:"SuperscriptSingle",tooltip:"toolbar.superscript",positions:[l.MenuPosition.TOOLBAR_START],activated$:new y.Observable(e=>{const n=t.onCommandExecuted(i=>{var s;const o=i.id;if(o===u.SetTextSelectionsOperation.id||o===u.SetInlineFormatCommand.id){const c=E(r);if(c==null)return;const d=(s=c.ts)==null?void 0:s.va;e.next(d===a.BaselineOffset.SUPERSCRIPT)}});return e.next(!1),n.dispose}),hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function at(r){const t=r.get(a.ICommandService);return{id:u.SetInlineFormatFontFamilyCommand.id,tooltip:"toolbar.font",group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.SELECTOR,label:me,positions:[l.MenuPosition.TOOLBAR_START],selections:l.FONT_FAMILY_LIST.map(e=>({label:{name:ge,hoverable:!0},value:e.value})),value$:new y.Observable(e=>{const n=l.FONT_FAMILY_LIST[0].value,i=t.onCommandExecuted(o=>{var c;const s=o.id;if(s===u.SetTextSelectionsOperation.id||s===u.SetInlineFormatFontFamilyCommand.id){const d=E(r);if(d==null)return;const p=(c=d.ts)==null?void 0:c.ff;e.next(p!=null?p:n)}});return e.next(n),i.dispose}),hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function ct(r){const t=r.get(a.ICommandService);return{id:u.SetInlineFormatFontSizeCommand.id,group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:fe,props:{min:1,max:400}},positions:[l.MenuPosition.TOOLBAR_START],selections:l.FONT_SIZE_LIST,value$:new y.Observable(e=>{const i=t.onCommandExecuted(o=>{var c;const s=o.id;if(s===u.SetTextSelectionsOperation.id||s===u.SetInlineFormatFontSizeCommand.id){const d=E(r);if(d==null)return;const p=(c=d.ts)==null?void 0:c.fs;e.next(p!=null?p:14)}});return e.next(14),i.dispose}),hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function lt(r){const t=r.get(a.ICommandService),e=r.get(a.ThemeService);return{id:u.SetInlineFormatTextColorCommand.id,icon:"FontColor",tooltip:"toolbar.textColor.main",group:l.MenuGroup.TOOLBAR_FORMAT,type:l.MenuItemType.BUTTON_SELECTOR,positions:[l.MenuPosition.TOOLBAR_START],selections:[{label:{name:_e,hoverable:!1}}],value$:new y.Observable(n=>{const i=e.getCurrentTheme().textColor,o=t.onCommandExecuted(s=>{if(s.id===u.SetInlineFormatTextColorCommand.id){const c=s.params.value;n.next(c!=null?c:i)}});return n.next(i),o.dispose}),hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function dt(r){return{id:u.OrderListCommand.id,group:l.MenuGroup.TOOLBAR_LAYOUT,type:l.MenuItemType.BUTTON,icon:"OrderSingle",tooltip:"toolbar.order",positions:[l.MenuPosition.TOOLBAR_START],hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function ut(r){return{id:u.BulletListCommand.id,group:l.MenuGroup.TOOLBAR_LAYOUT,type:l.MenuItemType.BUTTON,icon:"UnorderSingle",tooltip:"toolbar.unorder",positions:[l.MenuPosition.TOOLBAR_START],hidden$:l.getMenuHiddenObservable(r,a.UniverInstanceType.DOC)}}function E(r){var d;const t=r.get(a.IUniverInstanceService),e=r.get(u.TextSelectionManagerService),n=t.getCurrentUniverDocInstance(),i=e.getActiveRange();if(n==null||i==null)return;const o=(d=n.getBody())==null?void 0:d.textRuns;if(o==null)return;const{startOffset:s}=i;return o.find(({st:p,ed:_})=>s>=p&&s<_)}var ht=Object.defineProperty,pt=Object.getOwnPropertyDescriptor,_t=(r,t,e,n)=>{for(var i=n>1?void 0:n?pt(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&ht(t,e,i),i},P=(r,t)=>(e,n)=>t(e,n,r);let k=class extends a.Disposable{constructor(r,t,e,n,i,o){super(),this._injector=r,this._componentManager=t,this._editorService=e,this._menuService=n,this._uiController=i,this._currentUniverService=o,this._init()}_initCustomComponents(){const r=this._componentManager;this.disposeWithMe(r.register(_e,Ee.ColorPicker)),this.disposeWithMe(r.register(me,l.FontFamily)),this.disposeWithMe(r.register(ge,l.FontFamilyItem)),this.disposeWithMe(r.register(fe,l.FontSize))}_initMenus(){[tt,nt,it,rt,ot,st,ct,at,lt,dt,ut].forEach(r=>{this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(r)))})}_init(){this._initCustomComponents(),this._initMenus(),this._initDocBackground()}_initDocBackground(){const r=this._currentUniverService.getAllUniverDocsInstance()[0].getUnitId();if(r==null)return;this._editorService.isEditor(r)||this.disposeWithMe(this._uiController.registerContentComponent(()=>De.connectInjector(et,this._injector)))}};k=_t([a.OnLifecycle(a.LifecycleStages.Rendered,k),P(0,v.Inject(v.Injector)),P(1,v.Inject(l.ComponentManager)),P(2,l.IEditorService),P(3,l.IMenuService),P(4,l.IUIController),P(5,a.IUniverInstanceService)],k);const mt={toolbar:{undo:"Undo",redo:"Redo",font:"Font",fontSize:"Font size",bold:"Bold",italic:"Italic",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript",underline:"Underline",textColor:{main:"Text color",right:"Choose color"},resetColor:"Reset",order:"Ordered list",unorder:"Unordered list"}},Ce={toolbar:{undo:"撤销",redo:"重做",font:"字体",fontSize:"字号",bold:"粗体",italic:"斜体",strikethrough:"删除线",subscript:"下标",superscript:"上标",underline:"下划线",textColor:{main:"文本颜色",right:"颜色选择"},resetColor:"重置颜色",order:"有序列表",unorder:"无序列表"}},gt={id:u.BreakLineCommand.id,preconditions:M,binding:l.KeyCode.ENTER},ft={id:u.DeleteLeftCommand.id,preconditions:M,binding:l.KeyCode.BACKSPACE},St={id:u.DeleteRightCommand.id,preconditions:M,binding:l.KeyCode.DELETE},vt=10,Ct=6;function It(){return a.Tools.generateRandomId(Ct)}function Ot(r){const t=r.match(/data-copy-id="([^\s]+)"/);return t&&t[1]?t[1]:null}class bt{constructor(){I(this,"_cache",new a.LRUMap(vt))}set(t,e){this._cache.set(t,e)}get(t){return this._cache.get(t)}clear(){this._cache.clear()}}const Ie=new bt;function ne(r){const t=r.style,e={},n=r.tagName.toLowerCase();switch(n){case"b":case"em":case"strong":{e.bl=a.BooleanNumber.TRUE;break}case"s":{e.st={s:a.BooleanNumber.TRUE};break}case"u":{e.ul={s:a.BooleanNumber.TRUE};break}case"i":{e.it=a.BooleanNumber.TRUE;break}case"sub":case"sup":{e.va=n==="sup"?a.BaselineOffset.SUPERSCRIPT:a.BaselineOffset.SUBSCRIPT;break}}for(let i=0;i<t.length;i++){const o=t[i],s=t.getPropertyValue(o);switch(o){case"font-family":{e.ff=s;break}case"font-size":{const c=Number.parseInt(s);Number.isNaN(c)||s.endsWith("pt")&&(e.fs=c);break}case"font-style":{s==="italic"&&(e.it=a.BooleanNumber.TRUE);break}case"font-weight":{Number(s)>400&&(e.bl=a.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(s)?e.ul={s:a.BooleanNumber.TRUE}:/overline/.test(s)?e.ol={s:a.BooleanNumber.TRUE}:/line-through/.test(s)&&(e.st={s:a.BooleanNumber.TRUE});break}case"color":{const c=new a.ColorKit(s);c.isValid&&(e.cl={rgb:c.toRgbString()});break}case"background-color":{const c=new a.ColorKit(s);c.isValid&&(e.bg={rgb:c.toRgbString()});break}}}return e}function Tt(r){const t=new DOMParser,e=`<x-univer id="univer-root">${r}</x-univer>`;return t.parseFromString(e,"text/html").querySelector("#univer-root")}function Oe(r,t){const e=r.tagName.toLowerCase();return typeof t=="string"?e===t:Array.isArray(t)?t.some(n=>n===e):t(r)}const ee=class ee{constructor(){I(this,"_styleCache",new Map);I(this,"_styleRules",[]);I(this,"_afterProcessRules",[])}static use(t){if(this._pluginList.includes(t))throw new Error(`Univer paste plugin ${t.name} already added`);this._pluginList.push(t)}convert(t){const e=ee._pluginList.find(o=>o.checkPasteType(t)),n=Tt(t),i={dataStream:"",textRuns:[]};return e&&(this._styleRules=[...e.stylesRules],this._afterProcessRules=[...e.afterProcessRules]),this._styleCache.clear(),this._process(null,n==null?void 0:n.childNodes,i),this._styleCache.clear(),this._styleRules=[],this._afterProcessRules=[],i}_process(t,e,n){var i;for(const o of e)if(o.nodeType===Node.TEXT_NODE){const s=(i=o.nodeValue)==null?void 0:i.replace(/[\r\n]/g,"");let c;t&&this._styleCache.has(t)&&(c=this._styleCache.get(t)),n.dataStream+=s,c&&Object.getOwnPropertyNames(c).length&&n.textRuns.push({st:n.dataStream.length-s.length,ed:n.dataStream.length,ts:c})}else if(o.nodeType===Node.ELEMENT_NODE){const s=t?this._styleCache.get(t):{},c=this._styleRules.find(({filter:f})=>Oe(o,f)),d=c?c.getStyle(o):ne(o);this._styleCache.set(o,{...s,...d});const{childNodes:p}=o;this._process(o,p,n);const _=this._afterProcessRules.find(({filter:f})=>Oe(o,f));_&&_.handler(n,o)}}};I(ee,"_pluginList",[]);let N=ee;const yt={name:"univer-doc-paste-plugin-lark",checkPasteType(r){return/lark-record-clipboard/i.test(r)},stylesRules:[{filter:["s"],getStyle(r){const t=ne(r);return{st:{s:a.BooleanNumber.TRUE},...t}}}],afterProcessRules:[{filter(r){return r.tagName==="DIV"&&/ace-line/i.test(r.className)},handler(r){r.paragraphs==null&&(r.paragraphs=[]),r.paragraphs.push({startIndex:r.dataStream.length}),r.dataStream+="\r"}}]};function Mt(r){const t=r.style,e={};for(let n=0;n<t.length;n++){const i=t[n],o=t.getPropertyValue(i);switch(i){case"margin-top":{const s=Number.parseInt(o);e.spaceAbove=/pt/.test(o)?O.ptToPixel(s):s;break}case"margin-bottom":{const s=Number.parseInt(o);e.spaceBelow=/pt/.test(o)?O.ptToPixel(s):s;break}}}return Object.getOwnPropertyNames(e).length?e:null}const Rt={name:"univer-doc-paste-plugin-word",checkPasteType(r){return/word|mso/i.test(r)},stylesRules:[{filter:["b"],getStyle(r){const t=ne(r);return{bl:a.BooleanNumber.TRUE,...t}}}],afterProcessRules:[{filter(r){return r.tagName==="P"&&/mso/i.test(r.className)},handler(r,t){r.paragraphs==null&&(r.paragraphs=[]);const e={startIndex:r.dataStream.length},n=Mt(t);n&&(e.paragraphStyle=n),r.paragraphs.push(e),r.dataStream+="\r"}}]};function Dt(r,t){const{st:e,ed:n,ts:i={}}=t,{ff:o,fs:s,it:c,bl:d,ul:p,st:_,ol:f,bg:C,cl:b,va:S}=i;let h=r.slice(e,n);const m=[];return c===a.BooleanNumber.TRUE&&(h=`<i>${h}</i>`),S===a.BaselineOffset.SUPERSCRIPT?h=`<sup>${h}</sup>`:S===a.BaselineOffset.SUBSCRIPT&&(h=`<sub>${h}</sub>`),(p==null?void 0:p.s)===a.BooleanNumber.TRUE&&(h=`<u>${h}</u>`),(_==null?void 0:_.s)===a.BooleanNumber.TRUE&&(h=`<s>${h}</s>`),d===a.BooleanNumber.TRUE&&(h=`<strong>${h}</strong>`),o&&m.push(`font-family: ${o}`),b&&m.push(`color: ${b.rgb}`),s&&m.push(`font-size: ${s}px`),f&&m.push("text-decoration: overline"),C&&m.push(`background: ${C.rgb}`),m.length?`<span style="${m.join(";")}">${h}</span>`:h}function be(r,t=!0){const{dataStream:e,textRuns:n=[],paragraphs:i=[]}=r;let o=0;const s=[],c=[];for(const d of n){const{st:p,ed:_}=d;if(p!==o&&s.push(e.slice(o,p)),s.push(Dt(e,d)),o=_,t)for(const f of i){const{startIndex:C,paragraphStyle:b={}}=f;if(C>=p&&C<=_){const{spaceAbove:S,spaceBelow:h}=b,m=[];S!=null&&(typeof S=="number"?m.push(`margin-top: ${S}px`):m.push(`margin-top: ${S.v}px`)),h!=null&&(typeof h=="number"?m.push(`margin-bottom: ${h}px`):m.push(`margin-bottom: ${h.v}px`)),c.push(`<p className="UniverNormal" ${m.length?`style="${m.join(";")}"`:""}>${s.join("")}</p>`),s.length=0}}}return o<e.length&&s.push(e.slice(o,e.length)),c.join("")+s.join("")}class Et{convert(t){if(t.length===0)throw new Error("The bodyList length at least to be 1");if(t.length===1)return be(t[0]);let e="";for(const n of t)e+='<p className="UniverNormal">',e+=be(n,!1),e+="</p>";return e}}var Pt=Object.defineProperty,Ut=Object.getOwnPropertyDescriptor,xt=(r,t,e,n)=>{for(var i=n>1?void 0:n?Ut(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&Pt(t,e,i),i},A=(r,t)=>(e,n)=>t(e,n,r);N.use(Rt),N.use(yt);function Lt(r){const t=r.replace(/\n/g,"\r"),e=[];for(let n=0;n<t.length;n++)t[n]==="\r"&&e.push({startIndex:n});return{dataStream:t,paragraphs:e}}const B=v.createIdentifier("doc.clipboard-service");let ie=class extends a.Disposable{constructor(t,e,n,i,o){super();I(this,"_clipboardHooks",[]);I(this,"_htmlToUDM",new N);I(this,"_umdToHtml",new Et);this._currentUniverService=t,this._logService=e,this._commandService=n,this._clipboardInterfaceService=i,this._textSelectionManagerService=o}async copy(){const t=this._getDocumentBodyInRanges();try{this._setClipboardData(t)}catch(e){return this._logService.error("[DocClipboardService] copy failed",e),!1}return!0}async cut(){return this._cut()}async paste(t){const e=await this._generateBodyFromClipboardItems(t);return this._paste(e)}async legacyPaste(t,e){const n=this._generateBodyFromHtmlAndText(t,e);return this._paste(n)}async _cut(){var o;const{segmentId:t,endOffset:e,style:n}=(o=this._textSelectionManagerService.getActiveRange())!=null?o:{},i=this._textSelectionManagerService.getSelections();if(t==null&&this._logService.error("[DocClipboardController] segmentId is not existed"),e==null||i==null)return!1;this.copy();try{let s=e;for(const d of i){const{startOffset:p,endOffset:_}=d;p==null||_==null||_<=e&&(s-=_-p)}const c=[{startOffset:s,endOffset:s,style:n}];return this._commandService.executeCommand(u.CutContentCommand.id,{segmentId:t,textRanges:c})}catch{return this._logService.error("[DocClipboardController] cut content failed"),!1}}async _paste(t){var s;const{segmentId:e,endOffset:n,style:i}=(s=this._textSelectionManagerService.getActiveRange())!=null?s:{},o=this._textSelectionManagerService.getSelections();if(e==null&&this._logService.error("[DocClipboardController] segmentId does not exist!"),n==null||o==null)return!1;try{let c=n;for(const p of o){const{startOffset:_,endOffset:f}=p;_==null||f==null||f<=n&&(c+=t.dataStream.length-(f-_))}const d=[{startOffset:c,endOffset:c,style:i}];return this._commandService.executeCommand(u.InnerPasteCommand.id,{body:t,segmentId:e,textRanges:d})}catch{return this._logService.error("[DocClipboardController]","clipboard is empty."),!1}}async _setClipboardData(t){const e=It(),n=t.length>1?t.map(o=>o.dataStream).join(`
|
|
10
|
+
`):t[0].dataStream;let i=this._umdToHtml.convert(t);return t.length===1&&(i=i.replace(/(<[a-z]+)/,(o,s)=>`${s} data-copy-id="${e}"`),Ie.set(e,t[0])),this._clipboardInterfaceService.write(n,i)}addClipboardHook(t){return this._clipboardHooks.push(t),a.toDisposable(()=>{const e=this._clipboardHooks.indexOf(t);e>-1&&this._clipboardHooks.splice(e,1)})}_getDocumentBodyInRanges(){const t=this._textSelectionManagerService.getSelections(),e=this._currentUniverService.getCurrentUniverDocInstance(),n=[];if(t==null)return n;for(const i of t){const{startOffset:o,endOffset:s,collapsed:c}=i;if(c||o==null||s==null)continue;const d=e.sliceBody(o,s);d!=null&&n.push(d)}return n}async _generateBodyFromClipboardItems(t){try{let e="",n="";for(const i of t)for(const o of i.types)o===l.PLAIN_TEXT_CLIPBOARD_MIME_TYPE?n=await i.getType(o).then(s=>s&&s.text()):o===l.HTML_CLIPBOARD_MIME_TYPE&&(e=await i.getType(o).then(s=>s&&s.text()));return this._generateBodyFromHtmlAndText(e,n)}catch(e){return Promise.reject(e)}}_generateBodyFromHtmlAndText(t,e){if(!t){if(e)return Lt(e);throw new Error("[DocClipboardService] html and text cannot be both empty!")}const n=Ot(t);if(n){const i=Ie.get(n);if(i)return i}return this._htmlToUDM.convert(t)}};ie=xt([A(0,a.IUniverInstanceService),A(1,a.ILogService),A(2,a.ICommandService),A(3,l.IClipboardInterfaceService),A(4,v.Inject(u.TextSelectionManagerService))],ie);function K(r){return r.getContextValue(a.FOCUSING_DOC)||r.getContextValue(a.EDITOR_ACTIVATED)}const re=999,Nt={id:l.CopyCommand.id,name:"doc.command.copy",type:a.CommandType.COMMAND,multi:!0,priority:re,preconditions:K,handler:async r=>r.get(B).copy()},At={id:l.CutCommand.id,name:"doc.command.cut",type:a.CommandType.COMMAND,multi:!0,priority:re,preconditions:K,handler:async r=>r.get(B).cut()},Bt={id:l.PasteCommand.id,name:"doc.command.paste",type:a.CommandType.COMMAND,multi:!0,priority:re,preconditions:K,handler:async r=>{const t=r.get(B),n=await r.get(l.IClipboardInterfaceService).read();return n.length===0?!1:t.paste(n)}};var Ft=Object.defineProperty,wt=Object.getOwnPropertyDescriptor,$t=(r,t,e,n)=>{for(var i=n>1?void 0:n?wt(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&Ft(t,e,i),i},F=(r,t)=>(e,n)=>t(e,n,r);let Y=class extends a.RxDisposable{constructor(r,t,e,n,i){super(),this._commandService=r,this._clipboardInterfaceService=t,this._docClipboardService=e,this._textSelectionRenderManager=n,this._contextService=i,this._init()}_init(){[Nt,At,Bt].forEach(r=>this.disposeWithMe(this._commandService.registerMultipleCommand(r))),[u.InnerPasteCommand,u.CutContentCommand].forEach(r=>this.disposeWithMe(this._commandService.registerCommand(r))),this._initLegacyPasteCommand()}_initLegacyPasteCommand(){var r;this._clipboardInterfaceService.supportClipboard||(r=this._textSelectionRenderManager)==null||r.onPaste$.pipe(y.takeUntil(this.dispose$)).subscribe(t=>{var o,s;if(!K(this._contextService))return;t.event.preventDefault();const e=t.event,n=(o=e.clipboardData)==null?void 0:o.getData("text/html"),i=(s=e.clipboardData)==null?void 0:s.getData("text/plain");this._docClipboardService.legacyPaste(n,i)})}};Y=$t([a.OnLifecycle(a.LifecycleStages.Steady,Y),F(0,a.ICommandService),F(1,l.IClipboardInterfaceService),F(2,B),F(3,O.ITextSelectionRenderManager),F(4,a.IContextService)],Y);var jt=Object.defineProperty,zt=Object.getOwnPropertyDescriptor,Wt=(r,t,e,n)=>{for(var i=n>1?void 0:n?zt(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&jt(t,e,i),i},w=(r,t)=>(e,n)=>t(e,n,r);let G=class extends a.Disposable{constructor(t,e,n,i,o){super();I(this,"_initialEditors",new Set);this._currentUniverService=t,this._docSkeletonManagerService=e,this._editorService=n,this._commandService=i,this._textSelectionRenderManager=o,this._initialize()}_initialize(){this._editorService.resize$.subscribe(t=>{this._resize(t)}),this._editorService.getAllEditor().forEach(t=>{const e=t.editorUnitId;this._initialEditors.has(e)||(this._initialEditors.add(e),this._resize(e))}),this._commandExecutedListener(),this._initialSetValue(),this._initialBlur(),this._initialFocus()}_resize(t){var $,j,z;if(t==null)return;const e=this._editorService.getEditor(t);if((e==null?void 0:e.cancelDefaultResizeListener)===!0)return;const n=($=this._docSkeletonManagerService.getSkeletonByUnitId(t))==null?void 0:$.skeleton,i=this._currentUniverService.getUniverDocInstance(t);if(e==null||e.render==null||n==null||i==null)return;const{marginTop:o=0,marginBottom:s=0,marginLeft:c=0,marginRight:d=0}=i.getSnapshot().documentStyle,{scene:p,mainComponent:_}=e.render;let{actualHeight:f,actualWidth:C}=n.getActualSize();f+=o+s,C+=c+d;const{width:b,height:S}=e.getBoundingClientRect(),h=p.getViewport(u.VIEWPORT_KEY.VIEW_MAIN);let m=h==null?void 0:h.getScrollBar();const T=Math.max(C,b),R=Math.max(f,S);p.transformByState({width:T,height:R}),_==null||_.resize(T,R),e.isSingle===!1?f>S?m==null?h&&new O.ScrollBar(h,{enableHorizontal:!1,barSize:8}):h==null||h.resetSizeAndScrollBar():(m=null,h==null||h.scrollTo({x:0,y:0}),(j=h==null?void 0:h.getScrollBar())==null||j.dispose()):C>b?m==null?h&&new O.ScrollBar(h,{barSize:8,enableVertical:!1}):h==null||h.resetSizeAndScrollBar():(m=null,h==null||h.scrollTo({x:0,y:0}),(z=h==null?void 0:h.getScrollBar())==null||z.dispose())}_initialSetValue(){this._editorService.setValue$.subscribe(t=>{this._commandService.executeCommand(u.CoverContentCommand.id,{unitId:t.editorUnitId,body:t.body,segmentId:null})})}_initialBlur(){this._editorService.blur$.subscribe(()=>{this._textSelectionRenderManager.removeAllTextRanges(),this._textSelectionRenderManager.blur()})}_initialFocus(){this._editorService.focus$.subscribe(t=>{this._textSelectionRenderManager.removeAllTextRanges(),this._textSelectionRenderManager.addTextRanges([t])})}_commandExecutedListener(){const t=[u.RichTextEditingMutation.id,l.SetEditorResizeOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(t.includes(e.id)){const n=e.params,{unitId:i}=n;if(this._editorService.isSheetEditor(i))return;this._resize(i)}}))}};G=Wt([a.OnLifecycle(a.LifecycleStages.Rendered,G),w(0,a.IUniverInstanceService),w(1,v.Inject(u.DocSkeletonManagerService)),w(2,l.IEditorService),w(3,a.ICommandService),w(4,O.ITextSelectionRenderManager)],G);var Vt=Object.defineProperty,Ht=Object.getOwnPropertyDescriptor,kt=(r,t,e,n)=>{for(var i=n>1?void 0:n?Ht(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&Vt(t,e,i),i},q=(r,t)=>(e,n)=>t(e,n,r);let X=class extends a.RxDisposable{constructor(t,e,n,i){super();I(this,"_docRenderMap",new Set);this._docSkeletonManagerService=t,this._renderManagerService=e,this._commandService=n,this._editorService=i,this._initialRenderRefresh(),this._commandExecutedListener()}_initialRenderRefresh(){this._docSkeletonManagerService.currentSkeletonBefore$.pipe(y.takeUntil(this.dispose$)).subscribe(t=>{this._create(t)})}_create(t){if(t==null)return;const{skeleton:e,unitId:n}=t;let i=this._renderManagerService.getRenderById(n);i==null&&(this._renderManagerService.create(n),i=this._renderManagerService.getRenderById(n));const{mainComponent:o}=i;o.changeSkeleton(e),this._recalculateSizeBySkeleton(i,e)}_recalculateSizeBySkeleton(t,e){var _;const{mainComponent:n,scene:i,unitId:o}=t,s=n,c=(_=e.getSkeletonData())==null?void 0:_.pages;if(c==null)return;let d=0,p=0;for(let f=0,C=c.length;f<C;f++){const b=c[f],{pageWidth:S,pageHeight:h}=b;s.pageLayoutType===O.PageLayoutType.VERTICAL?(p+=h,p+=s.pageMarginTop,f===C-1&&(p+=s.pageMarginTop),d=Math.max(d,S)):s.pageLayoutType===O.PageLayoutType.HORIZONTAL&&(d+=S,f!==C-1&&(d+=s.pageMarginLeft),p=Math.max(p,h))}s.resize(d,p),this._editorService.isEditor(o)||i.resize(d,p)}_commandExecutedListener(){const t=[u.RichTextEditingMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var n;if(t.includes(e.id)){const i=e.params,{unitId:o}=i,s=this._docSkeletonManagerService.getSkeletonByUnitId(o);if(s==null)return;const{skeleton:c}=s,d=this._renderManagerService.getRenderById(o);if(d==null)return;if(c.calculate(),this._editorService.isEditor(o)){(n=d.mainComponent)==null||n.makeDirty();return}this._recalculateSizeBySkeleton(d,c)}}))}};X=kt([a.OnLifecycle(a.LifecycleStages.Rendered,X),q(0,v.Inject(u.DocSkeletonManagerService)),q(1,O.IRenderManagerService),q(2,a.ICommandService),q(3,l.IEditorService)],X);var Kt=Object.defineProperty,Yt=Object.getOwnPropertyDescriptor,Gt=(r,t,e,n)=>{for(var i=n>1?void 0:n?Yt(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&Kt(t,e,i),i},oe=(r,t)=>(e,n)=>t(e,n,r);g.DocCanvasView=class extends a.RxDisposable{constructor(e,n,i){super();I(this,"_scene");I(this,"_currentDocumentModel");I(this,"_fps$",new y.BehaviorSubject(""));I(this,"fps$",this._fps$.asObservable());this._renderManagerService=e,this._configService=n,this._currentUniverService=i,this._initialize()}_initialize(){this._renderManagerService.createRender$.pipe(y.takeUntil(this.dispose$)).subscribe(e=>{this._create(e)}),this._currentUniverService.currentDoc$.pipe(y.takeUntil(this.dispose$)).subscribe(e=>{this._create(e==null?void 0:e.getUnitId())}),this._currentUniverService.getAllUniverDocsInstance().forEach(e=>{this._create(e.getUnitId())})}dispose(){this._fps$.complete()}_create(e){if(e==null)return;const n=this._currentUniverService.getUniverDocInstance(e);n!=null&&(this._currentDocumentModel=n,this._renderManagerService.has(e)||this._addNewRender())}_addNewRender(){const e=this._currentDocumentModel,n=e.getUnitId(),i=e.getContainer(),o=e.getParentRenderUnitId();if(i!=null&&o!=null)throw new Error("container or parentRenderUnitId can only exist one");i==null&&o!=null?this._renderManagerService.createRenderWithParent(n,o):this._renderManagerService.createRender(n);const s=this._renderManagerService.getRenderById(n);if(s==null)return;const{scene:c,engine:d}=s;c.openTransformer(),this._scene=c;const p=new O.Viewport(u.VIEWPORT_KEY.VIEW_MAIN,c,{left:0,top:0,bottom:0,right:0,isWheelPreventDefaultX:!0});c.attachControl(),c.on(O.EVENT_TYPE.wheel,(C,b)=>{const S=C;if(S.ctrlKey){const h=Math.abs(S.deltaX);let m=h<40?.2:h<80?.4:.2;m*=S.deltaY>0?-1:1,c.scaleX<1&&(m/=2),c.scaleX+m>4?c.scale(4,4):c.scaleX+m<.1?c.scale(.1,.1):S.preventDefault()}else p.onMouseWheel(S,b)}),this._configService.getConfig("hasScroll")!==!1&&new O.ScrollBar(p),c.addLayer(new O.Layer(c,[],u.DOCS_COMPONENT_MAIN_LAYER_INDEX),new O.Layer(c,[],u.DOCS_COMPONENT_HEADER_LAYER_INDEX)),this._addComponent(s),this._currentDocumentModel.getShouldRenderLoopImmediately()&&d.runRenderLoop(()=>{c.render(),this._fps$.next(Math.round(d.getFps()).toString())}),this._renderManagerService.setCurrent(n)}_addComponent(e){const n=this._scene,i=this._currentDocumentModel,o=new O.Documents(u.DOCS_VIEW_KEY.MAIN,void 0,{pageMarginLeft:i.documentStyle.marginLeft||0,pageMarginTop:i.documentStyle.marginTop||0});o.zIndex=u.DOCS_COMPONENT_DEFAULT_Z_INDEX,e.mainComponent=o,e.components.set(u.DOCS_VIEW_KEY.MAIN,o),n.addObjects([o],u.DOCS_COMPONENT_MAIN_LAYER_INDEX)}},g.DocCanvasView=Gt([a.OnLifecycle(a.LifecycleStages.Starting,g.DocCanvasView),oe(0,O.IRenderManagerService),oe(1,a.IConfigService),oe(2,a.IUniverInstanceService)],g.DocCanvasView);var qt=Object.defineProperty,Xt=Object.getOwnPropertyDescriptor,Zt=(r,t,e,n)=>{for(var i=n>1?void 0:n?Xt(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&qt(t,e,i),i},U=(r,t)=>(e,n)=>t(e,n,r);let Z=class extends a.Disposable{constructor(t,e,n,i,o,s){super();I(this,"_liquid",new O.Liquid);I(this,"_pageMarginCache",new Map);this._docSkeletonManagerService=t,this._currentUniverService=e,this._renderManagerService=n,this._commandService=i,this._floatingObjectManagerService=o,this._editorService=s,this._initialize(),this._commandExecutedListener()}_initialize(){this._initialRenderRefresh(),this._updateOnPluginChange()}_updateOnPluginChange(){this._floatingObjectManagerService.pluginUpdate$.subscribe(t=>{const e=this._docSkeletonManagerService.getCurrent();if(e==null)return;const{unitId:n,skeleton:i}=e,o=this._renderManagerService.getRenderById(n);if(o==null)return;const{mainComponent:s,components:c,scene:d}=o,p=s,{left:_,top:f}=p;t.forEach(C=>{const{unitId:b,subUnitId:S,floatingObjectId:h,floatingObject:m}=C,{left:T=0,top:R=0,width:$=0,height:j=0,angle:z,flipX:Te,flipY:ye,skewX:Me,skewY:Re}=m,D=this._pageMarginCache.get(h),dn=(D==null?void 0:D.marginLeft)||0,un=(D==null?void 0:D.marginTop)||0;i==null||i.getViewModel().getDataModel().updateDrawing(h,{left:T-_-dn,top:R-f-un,height:j,width:$})}),i==null||i.calculate(),s==null||s.makeDirty()})}_initialRenderRefresh(){this._docSkeletonManagerService.currentSkeleton$.subscribe(t=>{if(t==null)return;const{skeleton:e,unitId:n}=t,i=this._renderManagerService.getRenderById(n);if(i==null)return;const{mainComponent:o}=i;o.changeSkeleton(e),this._refreshFloatingObject(n,e,i)})}_commandExecutedListener(){const t=[u.RichTextEditingMutation.id,u.SetDocZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var n;if(t.includes(e.id)){const i=e.params,{unitId:o}=i,s=this._docSkeletonManagerService.getCurrent();if(s==null)return;const{unitId:c,skeleton:d}=s;if(o!==c)return;const p=this._renderManagerService.getRenderById(c);if(p==null)return;if(this._editorService.isEditor(c)){(n=p.mainComponent)==null||n.makeDirty();return}this._refreshFloatingObject(c,d,p)}}))}_refreshFloatingObject(t,e,n){const i=e==null?void 0:e.getSkeletonData(),{mainComponent:o,scene:s}=n,c=o;if(!i)return;const{left:d,top:p,pageLayoutType:_,pageMarginLeft:f,pageMarginTop:C}=c,{pages:b}=i,S=[];s.getAncestorScale(),this._liquid.reset(),this._pageMarginCache.clear();for(let h=0,m=b.length;h<m;h++){const T=b[h],{skeDrawings:R,marginLeft:$,marginTop:j}=T;this._liquid.translatePagePadding(T),R.forEach(z=>{const{aLeft:Te,aTop:ye,height:Me,width:Re,objectId:D}=z;S.push({unitId:t,subUnitId:a.DEFAULT_DOCUMENT_SUB_COMPONENT_ID,floatingObjectId:D,floatingObject:{left:Te+d+this._liquid.x,top:ye+p+this._liquid.y,width:Re,height:Me}}),this._pageMarginCache.set(D,{marginLeft:this._liquid.x,marginTop:this._liquid.y})}),this._liquid.translatePage(T,_,f,C)}this._floatingObjectManagerService.BatchAddOrUpdate(S)}};Z=Zt([a.OnLifecycle(a.LifecycleStages.Steady,Z),U(0,v.Inject(u.DocSkeletonManagerService)),U(1,a.IUniverInstanceService),U(2,O.IRenderManagerService),U(3,a.ICommandService),U(4,a.IFloatingObjectManagerService),U(5,l.IEditorService)],Z);var Jt=Object.defineProperty,Qt=Object.getOwnPropertyDescriptor,en=(r,t,e,n)=>{for(var i=n>1?void 0:n?Qt(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&Jt(t,e,i),i},se=(r,t)=>(e,n)=>t(e,n,r);const tn="rgba(198, 198, 198, 1)",nn="rgba(255, 255, 255, 1)";let J=class extends a.Disposable{constructor(r,t,e){super(),this._renderManagerService=r,this._editorService=t,this._currentUniverService=e,this._initialize(),this._commandExecutedListener()}_initialize(){this._initialRenderRefresh()}_initialRenderRefresh(){this._renderManagerService.currentRender$.subscribe(r=>{var o;if(r==null)return;const t=this._renderManagerService.getRenderById(r);if(this._editorService.isEditor(r)||this._currentUniverService.getUniverDocInstance(r)==null||t==null)return;const{mainComponent:e}=t,n=e,i=(o=n.getSkeleton())==null?void 0:o.getPageSize();this.disposeWithMe(a.toDisposable(n.onPageRenderObservable.add(s=>{var h,m,T,R;if(this._editorService.isEditor(r))return;const{page:c,pageLeft:d,pageTop:p,ctx:_}=s,{width:f,pageWidth:C,height:b,pageHeight:S}=c;_.save(),_.translate(d-.5,p-.5),O.Rect.drawWith(_,{width:(m=(h=i==null?void 0:i.width)!=null?h:C)!=null?m:f,height:(R=(T=i==null?void 0:i.height)!=null?T:S)!=null?R:b,strokeWidth:1,stroke:tn,fill:nn,zIndex:3}),_.restore()})))})}_commandExecutedListener(){}};J=en([a.OnLifecycle(a.LifecycleStages.Rendered,J),se(0,O.IRenderManagerService),se(1,l.IEditorService),se(2,a.IUniverInstanceService)],J);var rn=Object.defineProperty,on=Object.getOwnPropertyDescriptor,sn=(r,t,e,n)=>{for(var i=n>1?void 0:n?on(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&rn(t,e,i),i},x=(r,t)=>(e,n)=>t(e,n,r);let Q=class extends a.Disposable{constructor(t,e,n,i,o,s){super();I(this,"_initializedRender",new Set);this._docSkeletonManagerService=t,this._currentUniverService=e,this._commandService=n,this._renderManagerService=i,this._textSelectionManagerService=o,this._editorService=s,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._initialRenderRefresh()}_initialRenderRefresh(){this._docSkeletonManagerService.currentSkeleton$.subscribe(t=>{if(t==null)return;const{unitId:e}=t,n=this._renderManagerService.getRenderById(e);if(n==null||this._initializedRender.has(e)||this._editorService.isEditor(e))return;this._initializedRender.add(e);const{scene:i}=n;this.disposeWithMe(a.toDisposable(i.onMouseWheelObserver.add(o=>{if(!o.ctrlKey)return;const s=Math.abs(o.deltaX);let c=s<40?.2:s<80?.4:.2;c*=o.deltaY>0?-1:1,i.scaleX<1&&(c/=2);const d=this._currentUniverService.getCurrentUniverDocInstance(),p=d.zoomRatio;let _=+Number.parseFloat(`${p+c}`).toFixed(1);_=_>=4?4:_<=.1?.1:_,this._commandService.executeCommand(u.SetDocZoomRatioCommand.id,{zoomRatio:_,unitId:d.getUnitId()}),o.preventDefault()})))})}_skeletonListener(){this.disposeWithMe(a.toDisposable(this._docSkeletonManagerService.currentSkeleton$.subscribe(t=>{if(t==null)return;const n=this._currentUniverService.getCurrentUniverDocInstance().zoomRatio||1;this._updateViewZoom(n,!1)})))}_commandExecutedListener(){const t=[u.SetDocZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(t.includes(e.id)){const n=this._currentUniverService.getCurrentUniverDocInstance(),i=e.params,{unitId:o}=i;if(o!==n.getUnitId())return;const s=n.zoomRatio||1;this._updateViewZoom(s)}}))}_updateViewZoom(t,e=!0){var i;const n=this._getDocObject();n!=null&&(n.scene.scale(t,t),this._calculatePagePosition(n,t),e&&this._textSelectionManagerService.refreshSelection(),(i=n.scene.getTransformer())==null||i.hideControl())}_calculatePagePosition(t,e){const{document:n,scene:i}=t,o=i==null?void 0:i.getParent(),{width:s,height:c,pageMarginLeft:d,pageMarginTop:p}=n;if(o==null||s===Number.POSITIVE_INFINITY||c===Number.POSITIVE_INFINITY)return;const{width:_,height:f}=o;let C=0,b=0,S=0,h=0,m=Number.POSITIVE_INFINITY;_>(s+d*2)*e?(C=_/2-s*e/2,C/=e,S=(_-d*2)/e,m=0):(C=d,S=s+d*2,m=(S-_/e)/2),f>c?(b=f/2-c/2,h=(f-p*2)/e):(b=p,h=c+p*2),i.resize(S,h+200),n.translate(C,b);const T=i.getViewport(u.VIEWPORT_KEY.VIEW_MAIN);if(m!==Number.POSITIVE_INFINITY&&T!=null){const R=T.getBarScroll(m,0).x;T.scrollTo({x:R})}return this}_getDocObject(){return u.getDocObject(this._currentUniverService,this._renderManagerService)}};Q=sn([a.OnLifecycle(a.LifecycleStages.Rendered,Q),x(0,v.Inject(u.DocSkeletonManagerService)),x(1,a.IUniverInstanceService),x(2,a.ICommandService),x(3,O.IRenderManagerService),x(4,v.Inject(u.TextSelectionManagerService)),x(5,l.IEditorService)],Q);var an=Object.defineProperty,cn=Object.getOwnPropertyDescriptor,ln=(r,t,e,n)=>{for(var i=n>1?void 0:n?cn(t,e):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=(n?s(t,e,i):s(i))||i);return n&&i&&an(t,e,i),i},ae=(r,t)=>(e,n)=>t(e,n,r);g.UniverDocsUIPlugin=(ce=class extends a.Plugin{constructor(t,e,n,i){super(he),this._config=t,this._injector=e,this._localeService=n,this._logService=i,this._localeService.load({zhCN:Ce}),this._config=a.Tools.deepMerge({},ue,this._config),this._initDependencies(e),this._initializeCommands()}onRendered(){this._initModules(),this._markDocAsFocused()}onDestroy(){}_initializeCommands(){[Ue,xe,Ne,Le,Ae,Be,Fe,we,$e,ft,St,gt].forEach(t=>{this._injector.get(l.IShortcutService).registerShortcut(t)})}_initDependencies(t){[[k],[Y],[G],[X],[Z],[J],[Q],[L,{useFactory:()=>this._injector.createInstance(L,this._config)}],[B,{useClass:ie}],[g.DocCanvasView]].forEach(n=>{t.add(n)})}_markDocAsFocused(){const t=this._injector.get(a.IUniverInstanceService),e=this._injector.get(l.IEditorService);try{const n=t.getCurrentUniverDocInstance(),i=n.getUnitId();e.isEditor(i)||t.focusUniverInstance(n.getUnitId())}catch(n){this._logService.warn(n)}}_initModules(){this._injector.get(L)}},I(ce,"type",a.PluginType.Doc),ce),g.UniverDocsUIPlugin=ln([ae(1,v.Inject(v.Injector)),ae(2,v.Inject(a.LocaleService)),ae(3,a.ILogService)],g.UniverDocsUIPlugin),g.DOC_UI_PLUGIN_NAME=he,g.DefaultDocContainerConfig=de,g.DefaultDocUiConfig=ue,g.DefaultToolbarConfig=le,g.enUS=mt,g.zhCN=Ce,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/docs-ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Univer normal ui-plugin-docs",
|
|
6
6
|
"author": "DreamNum <developer@univer.ai>",
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
51
|
"@wendellhu/redi": "^0.13.0",
|
|
52
|
-
"@univerjs/core": "0.1.
|
|
53
|
-
"@univerjs/design": "0.1.
|
|
54
|
-
"@univerjs/docs": "0.1.
|
|
55
|
-
"@univerjs/engine-render": "0.1.
|
|
56
|
-
"@univerjs/ui": "0.1.
|
|
52
|
+
"@univerjs/core": "0.1.1",
|
|
53
|
+
"@univerjs/design": "0.1.1",
|
|
54
|
+
"@univerjs/docs": "0.1.1",
|
|
55
|
+
"@univerjs/engine-render": "0.1.1",
|
|
56
|
+
"@univerjs/ui": "0.1.1"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/react": "^18.2.57",
|
|
@@ -64,12 +64,12 @@
|
|
|
64
64
|
"typescript": "^5.3.3",
|
|
65
65
|
"vite": "^5.1.4",
|
|
66
66
|
"vitest": "^1.3.1",
|
|
67
|
-
"@univerjs/core": "0.1.
|
|
68
|
-
"@univerjs/design": "0.1.
|
|
69
|
-
"@univerjs/engine-render": "0.1.
|
|
70
|
-
"@univerjs/
|
|
71
|
-
"@univerjs/
|
|
72
|
-
"@univerjs/
|
|
67
|
+
"@univerjs/core": "0.1.1",
|
|
68
|
+
"@univerjs/design": "0.1.1",
|
|
69
|
+
"@univerjs/engine-render": "0.1.1",
|
|
70
|
+
"@univerjs/docs": "0.1.1",
|
|
71
|
+
"@univerjs/shared": "0.1.1",
|
|
72
|
+
"@univerjs/ui": "0.1.1"
|
|
73
73
|
},
|
|
74
74
|
"scripts": {
|
|
75
75
|
"test": "vitest run",
|