@paperbits/core
Version:
Paperbits core components.
28 lines (23 loc) • 1.01 kB
text/typescript
import * as ko from "knockout";
import { ILightbox } from "@paperbits/common/ui/ILightbox";
export class LightboxBindingHandler {
constructor(lightbox: ILightbox) {
ko.bindingHandlers["lightbox"] = {
init(element, valueAccessor) {
const configuration = valueAccessor();
let lightboxContentUrl = ko.unwrap(configuration.url);
let lightBoxContendFileName = ko.unwrap(configuration.fileName);
const setContentUrl = (url: string) => {
lightboxContentUrl = url;
};
const showLightbox = () => {
lightbox.show(lightboxContentUrl, lightBoxContendFileName);
};
if (ko.isObservable(configuration.url)) {
configuration.url.subscribe(setContentUrl);
}
ko.applyBindingsToNode(element, { click: showLightbox }, null);
}
};
}
}