刘光辉
11 小时以前 0dfe84494048ce27ba8449831782128412d3eb13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
import { ICommandService, IImageIoService, Injector, IUniverInstanceService, LifecycleService, Univer } from '@univerjs/core';
import { FUniver } from '@univerjs/core/facade';
 
import { JnpfFacadeSheetsCell } from '../facade/f-sheet-cell';
import { JnpfFacadeSheetsCellImage } from '../facade/f-sheet-cell-image';
import { JnpfFacadeSheetsFloatDom } from '../facade/f-sheet-float-dom';
import { JnpfFacadeSheetsPrint } from '../facade/f-sheet-print';
import { JnpfFacadeSheetsRange } from '../facade/f-sheet-range';
import { JnpfSheetsCellImageService } from '../services/sheet-cell-image.service';
import { JnpfSheetsCellService } from '../services/sheet-cell.service';
import { JnpfSheetsFloatDomService } from '../services/sheet-float-dom.service';
import { JnpfSheetsFloatEchartService } from '../services/sheet-float-echart.service';
import { JnpfSheetsFloatImageService } from '../services/sheet-float-image.service';
import { JnpfSheetImageIoImplService } from '../services/sheet-image-io-impl.service';
import { JnpfSheetsPrintService } from '../services/sheet-print.service';
import { JnpfSheetsRangeService } from '../services/sheet-range.service';
import { JnpfFacadeSheetsFloatEchart } from './f-sheet-float-echart';
import { JnpfFacadeSheetsFloatImage } from './f-sheet-float-image';
 
import '@univerjs/sheets/facade';
import '@univerjs/ui/facade';
import '@univerjs/docs-ui/facade';
import '@univerjs/sheets-ui/facade';
import '@univerjs/sheets-filter/facade';
import '@univerjs/engine-formula/facade';
import '@univerjs/sheets-formula/facade';
import '@univerjs/sheets-data-validation/facade';
import '@univerjs/sheets-hyper-link/facade';
import '@univerjs/sheets-hyper-link-ui/facade';
import '@univerjs/watermark/facade';
import '@univerjs/sheets-thread-comment/facade';
import '@univerjs/sheets-crosshair-highlight/facade';
 
export class JnpfFUniver extends FUniver {
  constructor(injector: Injector, commandService: ICommandService, instanceService: IUniverInstanceService) {
    const lifecycleService = injector.get<LifecycleService>(LifecycleService);
    if (!lifecycleService) {
      throw new Error('LifecycleService 未正确注入');
    }
 
    super(injector, commandService, instanceService, lifecycleService);
  }
 
  static newAPI(wrapped: Injector | Univer): JnpfFUniver {
    const injector = wrapped instanceof Univer ? wrapped.__getInjector() : wrapped;
    const commandService = injector.get<ICommandService>(ICommandService);
    const instanceService = injector.get<IUniverInstanceService>(IUniverInstanceService);
 
    if (!commandService || !instanceService) {
      throw new Error('注入ICommandService或IUniverInstanceService发生错误');
    }
 
    return new JnpfFUniver(injector, commandService, instanceService);
  }
 
  getInjector() {
    return this._injector;
  }
 
  getSheetsCell(): JnpfFacadeSheetsCell | null {
    const jnpfSheetsCellService = this._injector.get(JnpfSheetsCellService);
 
    if (!jnpfSheetsCellService) {
      return null;
    }
 
    return this._injector.createInstance(JnpfFacadeSheetsCell, jnpfSheetsCellService);
  }
 
  getSheetsCellImage(): JnpfFacadeSheetsCellImage | null {
    const jnpfSheetsCellImageService = this._injector.get(JnpfSheetsCellImageService);
 
    if (!jnpfSheetsCellImageService) {
      return null;
    }
 
    return this._injector.createInstance(JnpfFacadeSheetsCellImage, jnpfSheetsCellImageService);
  }
 
  getSheetsFloatDom(): JnpfFacadeSheetsFloatDom | null {
    const jnpfSheetsFloatDomService = this._injector.get(JnpfSheetsFloatDomService);
 
    if (!jnpfSheetsFloatDomService) {
      return null;
    }
 
    return this._injector.createInstance(JnpfFacadeSheetsFloatDom, jnpfSheetsFloatDomService);
  }
 
  getSheetsFloatEchart(): JnpfFacadeSheetsFloatEchart | null {
    const jnpfSheetsFloatEchartService = this._injector.get(JnpfSheetsFloatEchartService);
 
    if (!jnpfSheetsFloatEchartService) {
      return null;
    }
 
    return this._injector.createInstance(JnpfFacadeSheetsFloatEchart, jnpfSheetsFloatEchartService);
  }
 
  getSheetsFloatImage(): JnpfFacadeSheetsFloatImage | null {
    const jnpfSheetsFloatImageService = this._injector.get(JnpfSheetsFloatImageService);
    const jnpfSheetImageIoImplService = this._injector.get(IImageIoService);
    if (!jnpfSheetImageIoImplService) {
      return null;
    }
    if (!jnpfSheetsFloatImageService) {
      return null;
    }
 
    return this._injector.createInstance(JnpfFacadeSheetsFloatImage, jnpfSheetsFloatImageService, jnpfSheetImageIoImplService as JnpfSheetImageIoImplService);
  }
 
  getSheetsPrint(): JnpfFacadeSheetsPrint | null {
    const jnpfSheetsPrintService = this._injector.get(JnpfSheetsPrintService);
 
    if (!jnpfSheetsPrintService) {
      return null;
    }
 
    return this._injector.createInstance(JnpfFacadeSheetsPrint, jnpfSheetsPrintService);
  }
 
  getSheetsRange(): JnpfFacadeSheetsRange | null {
    const jnpfSheetsRangeService = this._injector.get(JnpfSheetsRangeService);
 
    if (!jnpfSheetsRangeService) {
      return null;
    }
 
    return this._injector.createInstance(JnpfFacadeSheetsRange, jnpfSheetsRangeService);
  }
}