@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
30 lines • 1.61 kB
JavaScript
import { __awaiter } from "tslib";
import { asyncScheduler } from "rxjs";
export var ActionMethods;
(function (ActionMethods) {
function paginationCallback() {
let subscription = undefined;
return (elementId, pfv, pfvMethod, pfvParams, additionalConfig) => {
if (subscription)
subscription.unsubscribe();
subscription = asyncScheduler.schedule(() => __awaiter(this, void 0, void 0, function* () {
var _a, _b;
const dom = pfv.getFv().getDomain();
const sel = pfv.getFv().getSelection("select");
(_a = additionalConfig === null || additionalConfig === void 0 ? void 0 : additionalConfig.beforeChangeCallback) === null || _a === void 0 ? void 0 : _a.call(additionalConfig, pfv);
yield pfvMethod(elementId, ...pfvParams, Object.assign({}, additionalConfig));
pfv.getFv().setDomain(dom);
pfv.getFv().setSelection({
elements: sel.map((s) => ({
begin: s.rcsbFvTrackDataElement.begin,
end: s.rcsbFvTrackDataElement.end
})),
mode: "select"
});
(_b = additionalConfig === null || additionalConfig === void 0 ? void 0 : additionalConfig.onChangeCallback) === null || _b === void 0 ? void 0 : _b.call(additionalConfig, pfv);
}), 333);
};
}
ActionMethods.paginationCallback = paginationCallback;
})(ActionMethods || (ActionMethods = {}));
//# sourceMappingURL=ActionMethods.js.map