ohif-viewer/Packages/ohif-core/client/lib/blaze.js
2017-03-21 10:16:46 -03:00

66 lines
2.0 KiB
JavaScript

import { OHIF } from 'meteor/ohif:core';
OHIF.blaze = {};
// Clone a template and return the clone
OHIF.blaze.cloneTemplate = (template, newName) => {
if (!template){
return;
}
const name = newName || template.viewName;
const clone = new Template(name, template.renderFunction);
clone.inheritsEventsFrom(template);
clone.inheritsHelpersFrom(template);
clone.inheritsHooksFrom(template);
return clone;
};
// Navigate upwards the component and get the parent with the given view name
OHIF.blaze.getParentView = (view, parentViewName) => {
let currentView = view;
while (currentView) {
if (currentView.name === parentViewName) {
break;
}
currentView = currentView.originalParentView || currentView.parentView;
}
return currentView;
};
// Search for the parent component of the given view
OHIF.blaze.getParentComponent = (view, property='_component') => {
let currentView = view;
while (currentView) {
currentView = currentView.originalParentView || currentView.parentView;
if (currentView && currentView[property]) {
return currentView[property];
}
}
};
// Search for the parent template of the given view
OHIF.blaze.getParentTemplateView = view => {
let currentView = view;
while (currentView) {
currentView = currentView.originalParentView || currentView.parentView;
if (!currentView || !currentView.name) return;
if (currentView.name.indexOf('Template.') > -1) {
return currentView;
}
}
};
// Get the view that contains the desired section's content and return it
OHIF.blaze.getSectionContent = (view, sectionName) => {
let currentView = view;
while (!currentView._sectionMap || !currentView._sectionMap.get(sectionName)) {
currentView = OHIF.blaze.getParentTemplateView(currentView);
if (!currentView) return;
}
return currentView._sectionMap.get(sectionName);
};