UNPKG

@paperbits/core

Version:
23 lines (18 loc) 759 B
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(); }) } };