@paperbits/core
Version:
Paperbits core components.
23 lines (18 loc) • 759 B
text/typescript
import * as ko from "knockout";
import { ActivateBehavior } from "@paperbits/common/behaviors/behavior.activate";
ko.bindingHandlers["activate"] = {
init: (element: HTMLElement, valueAccessor: () => (data: unknown) => void, allBindings, viewModel) => {
const onActivate = valueAccessor();
if (!onActivate) {
console.warn(`Callback function for binding handler "activate" in undefined.`);
return null;
}
const handle = ActivateBehavior.attach(element, {
onActivate: onActivate.bind(viewModel),
data: ko.dataFor(element)
});
ko.utils.domNodeDisposal.addDisposeCallback(element, () => {
handle.detach();
})
}
};