wuhu-torn-helper/src/ts/class/IconHelper.ts
2023-06-26 18:13:47 +08:00

63 lines
2.6 KiB
TypeScript

import Logger, { LoggerKey } from "./Logger";
import ClassName from "../container/ClassName";
import { Injectable } from "../container/Injectable";
import CommonUtils, { CommonUtilsKey } from "./utils/CommonUtils";
import LocalConfigWrapper, { LocalConfigWrapperKey } from "./LocalConfigWrapper";
import NNB from "./handler/NNB";
import ItemPriceWatcherHandler from "./handler/ItemPriceWatcherHandler";
import { createApp } from "vue";
import FloatMenu from "../../vue/FloatMenu.vue";
import PopupWrapper, { PopupWrapperKey } from "./utils/PopupWrapper";
import InfoUtils from "./utils/InfoUtils";
import TravelItem, { TravelItemKey } from "./action/TravelItem";
import QuickGymTrain, { QuickGymTrainKey } from "./action/QuickGymTrain";
import QuickFlyBtnHandler, { QuickFlyBtnHandlerKey } from "./handler/QuickFlyBtnHandler";
import ItemHelper, { ItemHelperKey } from "./utils/ItemHelper";
import MathUtils, { MathUtilsKey } from "./utils/MathUtils";
@ClassName("IconHelper")
@Injectable()
export default class IconHelper {
private readonly _element: HTMLElement;
constructor(
private readonly logger: Logger,
private readonly commonUtils: CommonUtils,
private readonly localConfigWrapper: LocalConfigWrapper,
private readonly nnb: NNB,
private readonly itemPriceWatcherHandler: ItemPriceWatcherHandler,
private readonly popupWrapper: PopupWrapper,
private readonly infoUtils: InfoUtils,
private readonly travelItem: TravelItem,
private readonly quickGymTrain: QuickGymTrain,
private readonly quickFlyBtnHandler: QuickFlyBtnHandler,
private readonly itemHelper: ItemHelper,
private readonly mathUtils: MathUtils,
) {
this._element = document.createElement('div');
}
get element() {
return this._element;
}
init() {
this._element.id = 'WHMenu2023';
document.body.append(this._element);
let app = createApp(FloatMenu);
app.config.errorHandler = (err) => this.logger.error('[VUE错误]', err);
app.config.warnHandler = (err) => this.logger.warn('[VUE警告]', err);
app.provide(LoggerKey, this.logger);
app.provide(CommonUtilsKey, this.commonUtils);
app.provide(MathUtilsKey, this.mathUtils);
app.provide(TravelItemKey, this.travelItem);
app.provide(PopupWrapperKey, this.popupWrapper);
app.provide(LocalConfigWrapperKey, this.localConfigWrapper);
app.provide(QuickGymTrainKey, this.quickGymTrain);
app.provide(QuickFlyBtnHandlerKey, this.quickFlyBtnHandler);
app.provide(ItemHelperKey, this.itemHelper);
app.mount(this._element);
}
}