/** * Copyright 2023-present DreamNum Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import type { Dependency } from '@univerjs/core'; import type { IUniverSheetsFindReplaceConfig } from './config/config'; import { DependentOn, IConfigService, Inject, Injector, merge, Plugin, UniverInstanceType } from '@univerjs/core'; import { UniverRenderEnginePlugin } from '@univerjs/engine-render'; import { UniverFindReplaceMobileUIPlugin } from '@univerjs/find-replace'; import { UniverSheetsPlugin } from '@univerjs/sheets'; import { UniverSheetsMobileUIPlugin } from '@univerjs/sheets-ui'; import pkg from '../package.json'; import { defaultPluginConfig, SHEETS_FIND_REPLACE_PLUGIN_CONFIG_KEY } from './config/config'; import { SheetsFindReplaceMobileController } from './controllers/mobile/sheet-find-replace-mobile.controller'; import { SheetsFindReplaceController } from './controllers/sheet-find-replace.controller'; @DependentOn( UniverRenderEnginePlugin, UniverSheetsPlugin, UniverFindReplaceMobileUIPlugin, UniverSheetsMobileUIPlugin ) export class UniverSheetsFindReplaceMobileUIPlugin extends Plugin { static override pluginName = 'SHEET_FIND_REPLACE_PLUGIN'; static override packageName = pkg.name; static override version = pkg.version; static override type = UniverInstanceType.UNIVER_SHEET; constructor( private readonly _config: Partial = defaultPluginConfig, @Inject(Injector) protected readonly _injector: Injector, @IConfigService private readonly _configService: IConfigService ) { super(); const { ...rest } = merge({}, defaultPluginConfig, this._config); this._configService.setConfig(SHEETS_FIND_REPLACE_PLUGIN_CONFIG_KEY, rest); } override onStarting(): void { ([ [SheetsFindReplaceController], [SheetsFindReplaceMobileController], ] as Dependency[]).forEach((dependency) => this._injector.add(dependency)); } override onRendered(): void { this._injector.get(SheetsFindReplaceMobileController); } override onSteady(): void { this._injector.get(SheetsFindReplaceController); } }