Files
nebula.js/apis/nucleus/src/object/get-object.js
Christoffer Åström a57abf1ead refactor: internal packages structure (#94)
* refactor: internal packages structure

* refactor: internal packages structure
2019-08-27 09:57:04 +02:00

44 lines
988 B
JavaScript

import vizualizationAPI from '../viz';
import ObjectAPI from './object-api';
export function observe(model, objectAPI) {
const onChanged = () =>
model.getLayout().then(layout => {
objectAPI.setLayout(layout);
});
model.on('changed', onChanged);
model.once('closed', () => {
model.removeListener('changed', onChanged);
objectAPI.close();
});
onChanged();
}
export default function initiate(getCfg, optional, context) {
return context.app.getObject(getCfg.id).then(model => {
const viz = vizualizationAPI({
model,
context,
});
const objectAPI = new ObjectAPI(model, context, viz);
observe(model, objectAPI);
const api = objectAPI.getPublicAPI();
if (optional.options) {
viz.api.options(optional.options);
}
if (optional.context) {
viz.api.context(optional.context);
}
if (optional.element) {
return viz.api.mount(optional.element).then(() => api);
}
return api;
});
}