UNPKG

apim-developer-portal4

Version:

API management developer portal

39 lines (31 loc) 1.47 kB
import { ViewModelBinder } from "@paperbits/common/widgets"; import { DetailsOfApiViewModel } from "./detailsOfApiViewModel"; import { DetailsOfApiModel } from "../detailsOfApiModel"; import { Bag } from "@paperbits/common"; import { EventManager } from "@paperbits/common/events"; export class DetailsOfApiViewModelBinder implements ViewModelBinder<DetailsOfApiModel, DetailsOfApiViewModel> { constructor(private readonly eventManager: EventManager) { } public async modelToViewModel(model: DetailsOfApiModel, viewModel?: DetailsOfApiViewModel, bindingContext?: Bag<any>): Promise<DetailsOfApiViewModel> { if (!viewModel) { viewModel = new DetailsOfApiViewModel(); } viewModel.runtimeConfig(JSON.stringify({ changeLogPageUrl: model.changeLogPageHyperlink ? model.changeLogPageHyperlink.href : undefined })); viewModel["widgetBinding"] = { displayName: "API: details", model: model, editor: "details-of-api-editor", applyChanges: async (updatedModel: DetailsOfApiModel) => { await this.modelToViewModel(updatedModel, viewModel, bindingContext); this.eventManager.dispatchEvent("onContentUpdate"); } }; return viewModel; } public canHandleModel(model: DetailsOfApiModel): boolean { return model instanceof DetailsOfApiModel; } }