@paperbits/core
Version:
Paperbits core components.
20 lines (16 loc) • 710 B
text/typescript
import * as ko from "knockout";
import { ViewManager } from "@paperbits/common/ui";
import { StickToBehavior, StickToConfig } from "@paperbits/common/behaviors/behavior.stickTo";
export class StickToBindingHandler {
constructor(viewManager: ViewManager) {
ko.bindingHandlers["stickTo"] = {
init(element: HTMLElement, valueAccessor: () => StickToConfig): void {
const config = valueAccessor();
const handle = StickToBehavior.attach(element, config, viewManager);
ko.utils.domNodeDisposal.addDisposeCallback(element, () => {
handle.detach();
});
}
};
}
}