@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
33 lines (32 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActionMethods = void 0;
const tslib_1 = require("tslib");
const rxjs_1 = require("rxjs");
var ActionMethods;
(function (ActionMethods) {
function paginationCallback() {
let subscription = undefined;
return (elementId, pfv, pfvMethod, pfvParams, additionalConfig) => {
if (subscription)
subscription.unsubscribe();
subscription = rxjs_1.asyncScheduler.schedule(() => tslib_1.__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 || (exports.ActionMethods = ActionMethods = {}));