apim-developer-portal4
Version:
API management developer portal
40 lines (33 loc) • 1.22 kB
text/typescript
import * as ko from "knockout";
import template from "./productApisEditor.html";
import { Component, OnMounted, Param, Event } from "@paperbits/common/ko/decorators";
import { ProductApisModel } from "../productApisModel";
import { HyperlinkModel } from "@paperbits/common/permalinks";
export class ProductApisEditor {
public readonly hyperlink: ko.Observable<HyperlinkModel>;
public readonly hyperlinkTitle: ko.Computed<string>;
constructor() {
this.hyperlink = ko.observable();
this.hyperlinkTitle = ko.computed<string>(() => this.hyperlink() ? this.hyperlink().title : "Add a link...");
}
public model: ProductApisModel;
public onChange: (model: ProductApisModel) => void;
public async initialize(): Promise<void> {
this.hyperlink(this.model.detailsPageHyperlink);
}
private applyChanges(): void {
this.model.detailsPageHyperlink = this.hyperlink();
this.onChange(this.model);
}
public onHyperlinkChange(hyperlink: HyperlinkModel): void {
this.hyperlink(hyperlink);
this.applyChanges();
}
}