UNPKG

dash-renderer

Version:

render dash components in react

39 lines (38 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _ramda = require("ramda"); var _dashComponentPlugins = require("@plotly/dash-component-plugins"); var _registry = _interopRequireDefault(require("../registry")); var _paths = require("./paths"); var _dependencies = require("./dependencies"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } var _default = (layout, paths, targets) => { if (!targets.length) { return true; } var promises = []; var events = paths.events; var rendered = new Promise(resolveRendered => { events.once('rendered', resolveRendered); }); targets.forEach(id => { var pathOfId = (0, _paths.getPath)(paths, id); if (!pathOfId) { return; } var target = (0, _ramda.path)(pathOfId, layout); if (!target) { return; } var component = _registry.default.resolve(target); var ready = (0, _dashComponentPlugins.isReady)(component); if (ready && typeof ready.then === 'function') { promises.push(Promise.race([ready, rendered.then(() => document.getElementById((0, _dependencies.stringifyId)(id)) && ready)])); } }); return promises.length ? Promise.all(promises) : true; }; exports.default = _default;