@paperbits/core
Version:
Paperbits core components.
18 lines (16 loc) • 735 B
text/typescript
import * as ko from "knockout";
import { CollapseBehavior } from "@paperbits/common/behaviors/behavior.collapse";
ko.bindingHandlers["collapse"] = {
init: (triggerElement: HTMLElement, valueAccessor) => {
// timeout to let other bindings to bind id for collapsable container
setTimeout(() => {
const targetSelector = ko.unwrap(valueAccessor());
const behaviorHandle = CollapseBehavior.attach(triggerElement, targetSelector);
ko.utils.domNodeDisposal.addDisposeCallback(triggerElement, () => {
if (behaviorHandle && behaviorHandle.detach) {
behaviorHandle.detach();
}
});
}, 100);
}
};