965 lines
52 KiB
JavaScript
965 lines
52 KiB
JavaScript
//////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// This is a generated file. You can view the original //
|
|
// source in your browser if your browser supports source maps. //
|
|
// Source maps are supported by all recent versions of Chrome, Safari, //
|
|
// and Firefox, and by Internet Explorer 11. //
|
|
// //
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
(function () {
|
|
|
|
/* Imports */
|
|
var Meteor = Package.meteor.Meteor;
|
|
var global = Package.meteor.global;
|
|
var meteorEnv = Package.meteor.meteorEnv;
|
|
var Template = Package['templating-runtime'].Template;
|
|
var Tracker = Package.tracker.Tracker;
|
|
var Deps = Package.tracker.Deps;
|
|
var ReactiveVar = Package['reactive-var'].ReactiveVar;
|
|
var _ = Package.underscore._;
|
|
var $ = Package.jquery.$;
|
|
var jQuery = Package.jquery.jQuery;
|
|
var meteorInstall = Package.modules.meteorInstall;
|
|
var meteorBabelHelpers = Package['babel-runtime'].meteorBabelHelpers;
|
|
var Promise = Package.promise.Promise;
|
|
var Symbol = Package['ecmascript-runtime-client'].Symbol;
|
|
var Map = Package['ecmascript-runtime-client'].Map;
|
|
var Set = Package['ecmascript-runtime-client'].Set;
|
|
var Blaze = Package.blaze.Blaze;
|
|
var UI = Package.blaze.UI;
|
|
var Handlebars = Package.blaze.Handlebars;
|
|
var Spacebars = Package.spacebars.Spacebars;
|
|
var HTML = Package.htmljs.HTML;
|
|
|
|
var require = meteorInstall({"node_modules":{"meteor":{"ohif:select-tree":{"client":{"index.js":function(require,exports,module){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/ohif_select-tree/client/index.js //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
module.watch(require("./mixin"));
|
|
module.watch(require("./components"));
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
},"mixin.js":function(require,exports,module){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/ohif_select-tree/client/mixin.js //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
var OHIF;
|
|
module.watch(require("meteor/ohif:core"), {
|
|
OHIF: function (v) {
|
|
OHIF = v;
|
|
}
|
|
}, 0);
|
|
var Template;
|
|
module.watch(require("meteor/templating"), {
|
|
Template: function (v) {
|
|
Template = v;
|
|
}
|
|
}, 1);
|
|
var ReactiveVar;
|
|
module.watch(require("meteor/reactive-var"), {
|
|
ReactiveVar: function (v) {
|
|
ReactiveVar = v;
|
|
}
|
|
}, 2);
|
|
|
|
var _;
|
|
|
|
module.watch(require("meteor/underscore"), {
|
|
_: function (v) {
|
|
_ = v;
|
|
}
|
|
}, 3);
|
|
|
|
/*
|
|
* input: controls a tree selection component
|
|
*/
|
|
OHIF.mixins.selectTree = new OHIF.Mixin({
|
|
dependencies: 'group',
|
|
composition: {
|
|
onCreated: function () {
|
|
var instance = Template.instance();
|
|
var component = instance.component;
|
|
var rootComponent = instance.data.root || component;
|
|
var rootInstance = rootComponent.templateInstance; // Store the component's current value
|
|
|
|
instance.currentValue = null; // Create the component's value storage property
|
|
|
|
instance.data.currentNode = new ReactiveVar(null); // Share the component in data property
|
|
|
|
instance.data.component = component; // Override the default value method
|
|
|
|
component.value = function (value) {
|
|
var isGet = _.isUndefined(value); // Return the current value
|
|
|
|
|
|
if (isGet) {
|
|
return component.parseData(rootInstance.currentValue);
|
|
} // Change the current value
|
|
|
|
|
|
rootInstance.currentValue = value; // Trigger the change event
|
|
|
|
component.$element.trigger('change');
|
|
}; // Method to manipulate nodes
|
|
|
|
|
|
component.node = function (node) {
|
|
var isGet = _.isUndefined(node); // Return the current node
|
|
|
|
|
|
if (isGet) {
|
|
var _currentNode = instance.data.currentNode.get();
|
|
|
|
return _currentNode ? _currentNode.value : null;
|
|
} // get the items array
|
|
|
|
|
|
var items = component.templateInstance.data.items; // Get the node for the selected value
|
|
|
|
var currentNode = _.findWhere(items, {
|
|
value: node
|
|
}); // Change the current node
|
|
|
|
|
|
instance.data.currentNode.set(currentNode);
|
|
}; // Return plain data for all the leaves inside current node
|
|
|
|
|
|
component.getLeaves = function () {
|
|
var recursiveSeek = function (items) {
|
|
var result = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
|
|
_.each(items, function (item) {
|
|
if (item.items) {
|
|
recursiveSeek(item.items, result);
|
|
} else {
|
|
result.push(item);
|
|
}
|
|
});
|
|
|
|
return result;
|
|
};
|
|
|
|
return recursiveSeek(instance.data.items);
|
|
};
|
|
},
|
|
onRendered: function () {
|
|
var instance = Template.instance();
|
|
var component = instance.component; // Define the main element
|
|
|
|
component.$element = instance.$('.select-tree:first').first();
|
|
}
|
|
}
|
|
});
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
},"components":{"index.js":function(require,exports,module){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/ohif_select-tree/client/components/index.js //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
module.watch(require("./selectTree/selectTree.html"));
|
|
module.watch(require("./selectTree/selectTree.styl"));
|
|
module.watch(require("./selectTree/selectTree.js"));
|
|
module.watch(require("./selectTreeCommon/selectTreeCommon.html"));
|
|
module.watch(require("./selectTreeCommon/selectTreeCommon.js"));
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
},"selectTree":{"selectTree.html":function(require,exports,module){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// node_modules/meteor/ohif_select-tree/client/components/selectTree/selectTree.html //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
module.watch(require("./template.selectTree.js"), {
|
|
"*": module.makeNsSetter(true)
|
|
});
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
},"template.selectTree.js":function(){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/ohif_select-tree/client/components/selectTree/template.selectTree.js //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
|
|
Template.__checkName("selectTree");
|
|
Template["selectTree"] = new Template("Template.selectTree", (function() {
|
|
var view = this;
|
|
return Blaze._TemplateWith(function() {
|
|
return Spacebars.dataMustache(view.lookup("extend"), view.lookup("."), Spacebars.kw({
|
|
class: Spacebars.dataMustache(view.lookup("concat"), "select-tree ", Spacebars.dataMustache(view.lookup("valueIf"), Spacebars.dot(view.lookup("."), "root"), "", "select-tree-root "), Spacebars.dot(view.lookup("."), "class")),
|
|
mixins: Spacebars.dataMustache(view.lookup("concat"), "selectTree ", Spacebars.dot(view.lookup("."), "mixins"))
|
|
}));
|
|
}, function() {
|
|
return Spacebars.include(view.lookupTemplate("group"), function() {
|
|
return [ "\n ", Blaze._InOuterTemplateScope(view, function() {
|
|
return Spacebars.include(function() {
|
|
return Spacebars.call(view.templateContentBlock);
|
|
});
|
|
}), "\n ", HTML.DIV({
|
|
class: "tree-content"
|
|
}, "\n ", Blaze.Let({
|
|
currentNode: function() {
|
|
return Spacebars.call(Spacebars.dot(view.lookup("."), "currentNode", "get"));
|
|
}
|
|
}, function() {
|
|
return [ "\n ", Blaze.If(function() {
|
|
return Spacebars.dataMustache(view.lookup("and"), Spacebars.dataMustache(view.lookup("not"), Spacebars.dot(view.lookup("."), "root")), Spacebars.dataMustache(view.lookup("ne"), Spacebars.dot(view.lookup("."), "search"), false));
|
|
}, function() {
|
|
return [ "\n ", Blaze._TemplateWith(function() {
|
|
return {
|
|
label: Spacebars.call(Spacebars.dot(view.lookup("."), "label")),
|
|
labelClass: Spacebars.call("tree-search"),
|
|
placeholder: Spacebars.call(Spacebars.dataMustache(view.lookup("choose"), Spacebars.dot(view.lookup("."), "searchPlaceholder"), "Search"))
|
|
};
|
|
}, function() {
|
|
return Spacebars.include(view.lookupTemplate("inputText"), function() {
|
|
return [ "\n ", HTML.I({
|
|
class: "fa fa-search"
|
|
}), "\n " ];
|
|
});
|
|
}), "\n " ];
|
|
}), "\n ", HTML.DIV({
|
|
class: function() {
|
|
return [ "tree-options ", Blaze.If(function() {
|
|
return Spacebars.call(view.lookup("currentNode"));
|
|
}, function() {
|
|
return "collapsed";
|
|
}) ];
|
|
}
|
|
}, "\n ", Blaze.If(function() {
|
|
return Spacebars.call(Spacebars.dot(view.lookup("."), "root"));
|
|
}, function() {
|
|
return [ "\n ", Blaze._TemplateWith(function() {
|
|
return {
|
|
component: Spacebars.call(Spacebars.dot(view.lookup("."), "component"))
|
|
};
|
|
}, function() {
|
|
return Spacebars.include(view.lookupTemplate("selectTreeBreadcrumb"));
|
|
}), "\n " ];
|
|
}), "\n ", HTML.DIV({
|
|
class: "tree-inputs clearfix"
|
|
}, "\n ", Blaze.Each(function() {
|
|
return {
|
|
_sequence: Spacebars.call(view.lookup("treeItems")),
|
|
_variable: "item"
|
|
};
|
|
}, function() {
|
|
return [ "\n ", Blaze._TemplateWith(function() {
|
|
return {
|
|
id: Spacebars.call(Spacebars.dataMustache(view.lookup("concat"), Spacebars.dot(view.lookup("."), "storageKey"), "_", Spacebars.dataMustache(view.lookup("encodeId"), Spacebars.dot(view.lookup("item"), "value")))),
|
|
class: Spacebars.call(Spacebars.dot(view.lookup("."), "radioClass")),
|
|
name: Spacebars.call(Spacebars.dot(view.lookup("."), "key")),
|
|
itemData: Spacebars.call(view.lookup("item")),
|
|
value: Spacebars.call(Spacebars.dot(view.lookup("item"), "value")),
|
|
label: Spacebars.call(Spacebars.dot(view.lookup("item"), "label")),
|
|
labelClass: Spacebars.call(Spacebars.dataMustache(view.lookup("valueIf"), Spacebars.dataMustache(view.lookup("isArray"), Spacebars.dot(view.lookup("item"), "items")), "tree-node", "tree-leaf")),
|
|
checked: Spacebars.call(Spacebars.dataMustache(view.lookup("eq"), Spacebars.dot(view.lookup("item"), "value"), Spacebars.dataMustache(view.lookup("reactive"), Spacebars.dot(view.lookup("."), "value"))))
|
|
};
|
|
}, function() {
|
|
return Spacebars.include(view.lookupTemplate("inputRadio"));
|
|
}), "\n " ];
|
|
}), "\n "), "\n ", Blaze.If(function() {
|
|
return Spacebars.dataMustache(view.lookup("and"), view.lookup("currentNode"), Spacebars.dataMustache(view.lookup("isArray"), Spacebars.dot(view.lookup("currentNode"), "items")));
|
|
}, function() {
|
|
return [ "\n ", Blaze._TemplateWith(function() {
|
|
return Spacebars.dataMustache(view.lookup("clone"), view.lookup("."), Spacebars.kw({
|
|
items: Spacebars.dot(view.lookup("currentNode"), "items"),
|
|
root: Spacebars.dataMustache(view.lookup("choose"), Spacebars.dot(view.lookup("."), "root"), Spacebars.dot(view.lookup("."), "component")),
|
|
class: "select-tree-node"
|
|
}));
|
|
}, function() {
|
|
return Spacebars.include(view.lookupTemplate("selectTree"));
|
|
}), "\n " ];
|
|
}), "\n "), "\n " ];
|
|
}), "\n "), "\n ", Blaze.If(function() {
|
|
return Spacebars.dataMustache(view.lookup("and"), Spacebars.dataMustache(view.lookup("not"), Spacebars.dot(view.lookup("."), "root")), Spacebars.dataMustache(view.lookup("or"), Spacebars.dot(view.lookup("."), "storageKey"), Spacebars.dot(view.lookup("."), "commonItems")));
|
|
}, function() {
|
|
return [ "\n ", Blaze._TemplateWith(function() {
|
|
return Spacebars.dataMustache(view.lookup("clone"), view.lookup("."), Spacebars.kw({
|
|
component: Spacebars.dot(view.lookup("."), "component"),
|
|
treeInstance: view.lookup("instance")
|
|
}));
|
|
}, function() {
|
|
return Spacebars.include(view.lookupTemplate("selectTreeCommon"));
|
|
}), "\n " ];
|
|
}), "\n " ];
|
|
});
|
|
});
|
|
}));
|
|
|
|
Template.__checkName("selectTreeBreadcrumb");
|
|
Template["selectTreeBreadcrumb"] = new Template("Template.selectTreeBreadcrumb", (function() {
|
|
var view = this;
|
|
return HTML.DIV({
|
|
class: "tree-breadcrumb clearfix"
|
|
}, "\n ", Blaze._TemplateWith(function() {
|
|
return {
|
|
component: Spacebars.call(Spacebars.dot(view.lookup("."), "component", "parent")),
|
|
index: Spacebars.call(1)
|
|
};
|
|
}, function() {
|
|
return Spacebars.include(view.lookupTemplate("selectTreeBreadcrumbParent"));
|
|
}), "\n ", Blaze.Let({
|
|
currentNode: function() {
|
|
return Spacebars.call(Spacebars.dot(view.lookup("."), "component", "parent", "templateInstance", "data", "currentNode", "get"));
|
|
}
|
|
}, function() {
|
|
return [ "\n ", HTML.SPAN({
|
|
class: "tree-current-node"
|
|
}, Blaze.View("lookup:currentNode.label", function() {
|
|
return Spacebars.mustache(Spacebars.dot(view.lookup("currentNode"), "label"));
|
|
})), "\n " ];
|
|
}), "\n ");
|
|
}));
|
|
|
|
Template.__checkName("selectTreeBreadcrumbParent");
|
|
Template["selectTreeBreadcrumbParent"] = new Template("Template.selectTreeBreadcrumbParent", (function() {
|
|
var view = this;
|
|
return Blaze.Let({
|
|
parent: function() {
|
|
return Spacebars.call(Spacebars.dot(view.lookup("."), "component", "parent"));
|
|
}
|
|
}, function() {
|
|
return [ "\n ", Blaze.Let({
|
|
parentNode: function() {
|
|
return Spacebars.call(Spacebars.dataMustache(view.lookup("reactive"), Spacebars.dot(view.lookup("parent"), "templateInstance", "data", "currentNode")));
|
|
}
|
|
}, function() {
|
|
return [ "\n ", Blaze.If(function() {
|
|
return Spacebars.call(view.lookup("parentNode"));
|
|
}, function() {
|
|
return [ "\n ", Blaze._TemplateWith(function() {
|
|
return {
|
|
component: Spacebars.call(view.lookup("parent")),
|
|
index: Spacebars.call(Spacebars.dataMustache(view.lookup("sum"), Spacebars.dot(view.lookup("."), "index"), 1))
|
|
};
|
|
}, function() {
|
|
return Spacebars.include(view.lookupTemplate("selectTreeBreadcrumbParent"));
|
|
}), "\n " ];
|
|
}), "\n ", HTML.SPAN({
|
|
class: "path-link"
|
|
}, "\n ", HTML.A({
|
|
href: "#",
|
|
class: "tree-back",
|
|
"data-index": function() {
|
|
return Spacebars.mustache(Spacebars.dot(view.lookup("."), "index"));
|
|
}
|
|
}, "\n ", Blaze.If(function() {
|
|
return Spacebars.call(view.lookup("parentNode"));
|
|
}, function() {
|
|
return [ "\n ", HTML.SPAN(Blaze.View("lookup:parentNode.label", function() {
|
|
return Spacebars.mustache(Spacebars.dot(view.lookup("parentNode"), "label"));
|
|
})), "\n " ];
|
|
}, function() {
|
|
return [ "\n ", HTML.I({
|
|
class: "fa fa-fast-backward"
|
|
}), "\n " ];
|
|
}), "\n "), "\n ", Blaze.If(function() {
|
|
return Spacebars.call(view.lookup("parentNode"));
|
|
}, function() {
|
|
return HTML.SPAN("/");
|
|
}), "\n "), "\n " ];
|
|
}), "\n " ];
|
|
});
|
|
}));
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
},"selectTree.js":function(require,exports,module){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/ohif_select-tree/client/components/selectTree/selectTree.js //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
var OHIF;
|
|
module.watch(require("meteor/ohif:core"), {
|
|
OHIF: function (v) {
|
|
OHIF = v;
|
|
}
|
|
}, 0);
|
|
var Meteor;
|
|
module.watch(require("meteor/meteor"), {
|
|
Meteor: function (v) {
|
|
Meteor = v;
|
|
}
|
|
}, 1);
|
|
var Template;
|
|
module.watch(require("meteor/templating"), {
|
|
Template: function (v) {
|
|
Template = v;
|
|
}
|
|
}, 2);
|
|
var Tracker;
|
|
module.watch(require("meteor/tracker"), {
|
|
Tracker: function (v) {
|
|
Tracker = v;
|
|
}
|
|
}, 3);
|
|
var ReactiveVar;
|
|
module.watch(require("meteor/reactive-var"), {
|
|
ReactiveVar: function (v) {
|
|
ReactiveVar = v;
|
|
}
|
|
}, 4);
|
|
|
|
var _;
|
|
|
|
module.watch(require("meteor/underscore"), {
|
|
_: function (v) {
|
|
_ = v;
|
|
}
|
|
}, 5);
|
|
var $;
|
|
module.watch(require("meteor/jquery"), {
|
|
$: function (v) {
|
|
$ = v;
|
|
}
|
|
}, 6);
|
|
var transition;
|
|
module.watch(require("meteor/ohif:core/client/lib/third-party/transition-to-from-auto"), {
|
|
"default": function (v) {
|
|
transition = v;
|
|
}
|
|
}, 7);
|
|
Template.selectTree.onCreated(function () {
|
|
var instance = Template.instance(); // Return the common items
|
|
|
|
instance.getCommonItems = function () {
|
|
var instance = Template.instance(); // Return the common items if given
|
|
|
|
if (instance.data.commonItems) {
|
|
return instance.data.commonItems;
|
|
} // Get all the tree leaves
|
|
|
|
|
|
var leaves = instance.data.component.getLeaves(); // Generate an object with encoded keys from the tree leaves
|
|
|
|
var leavesObject = {};
|
|
|
|
_.each(leaves, function (leaf) {
|
|
leavesObject[OHIF.string.encodeId(leaf.value)] = leaf;
|
|
}); // Get the current items ranking
|
|
|
|
|
|
var ranking = OHIF.user.getData(instance.data.storageKey); // Sort the items based on how many times each one was used
|
|
|
|
var sorted = [];
|
|
|
|
_.each(ranking, function (count, key) {
|
|
return sorted.push([key, count]);
|
|
});
|
|
|
|
sorted.sort(function (a, b) {
|
|
return b[1] - a[1];
|
|
}); // Create the result and push every item respecting the ranking order
|
|
|
|
var result = [];
|
|
|
|
_.each(sorted, function (item) {
|
|
var current = leavesObject[item[0]];
|
|
|
|
if (current) {
|
|
result.push(current);
|
|
}
|
|
}); // Return the resulting array
|
|
|
|
|
|
return result;
|
|
}; // Create a reactive variable to control the search
|
|
|
|
|
|
instance.searchTerm = new ReactiveVar('');
|
|
});
|
|
Template.selectTree.onRendered(function () {
|
|
var instance = Template.instance();
|
|
var component = instance.$('.select-tree:first').data('component');
|
|
var rootComponent = instance.data.root || component;
|
|
var rootInstance = rootComponent.templateInstance;
|
|
var $treeRoot = rootInstance.$('.select-tree-root:first').first();
|
|
instance.component = component; // Force to hardware acceleration to move element if browser supports translate property
|
|
|
|
instance.useTransform = OHIF.ui.styleProperty.check('transform', 'translate(1px, 1px)'); // Set the margin property and width
|
|
|
|
var isthreeColumns = instance.data.threeColumns;
|
|
|
|
if (!rootInstance.marginProperty) {
|
|
rootInstance.marginProperty = isthreeColumns ? 'margin-left' : 'margin-right';
|
|
rootInstance.marginWidth = isthreeColumns ? $treeRoot.width() / 2 : $treeRoot.width();
|
|
} // Define a function to set the margin and toggle common section
|
|
|
|
|
|
instance.setMargin = function (isHidden) {
|
|
var marginWidth = isHidden ? '' : rootInstance.marginWidth;
|
|
$treeRoot.children('.tree-content').css(rootInstance.marginProperty, marginWidth);
|
|
}; // Set the margin to display the common section
|
|
|
|
|
|
if (!$treeRoot.hasClass('started')) {
|
|
instance.setMargin(false);
|
|
} // Make the component respect the window boundaries
|
|
|
|
|
|
if (rootComponent === component) {
|
|
$treeRoot.bounded();
|
|
} // Check if the component will be rendered on a specific position
|
|
|
|
|
|
var position = instance.data.position;
|
|
|
|
if (component === rootComponent && position) {
|
|
// Get the dimensions and move it with the given position as its center
|
|
var width = $treeRoot.outerWidth();
|
|
|
|
var _height = $treeRoot.outerHeight();
|
|
|
|
position.left -= Math.round(width / 2);
|
|
position.top -= Math.round(_height / 2); // Change the component's position and trigger the bounded event
|
|
|
|
$treeRoot.css(_.extend({}, position, {
|
|
position: 'fixed'
|
|
})).trigger('spatialChanged');
|
|
}
|
|
|
|
Meteor.defer(function () {
|
|
// Start the component transitions
|
|
$treeRoot.addClass('started'); // Focus the search box
|
|
|
|
$treeRoot.find('.tree-search input').focus();
|
|
}); // Update the component's viewport height
|
|
|
|
instance.updateHeight = _.throttle(function (searchTerm) {
|
|
var height; // Check if there's a search term
|
|
|
|
if (searchTerm) {
|
|
// Set the viewport height as same as listed options height
|
|
height = rootInstance.$('.tree-inputs').height();
|
|
} else {
|
|
// Set the viewport height as same as selected node's options height
|
|
height = rootInstance.$('.tree-options:last').data('height');
|
|
} // Update the viewport's height
|
|
|
|
|
|
rootInstance.$('.tree-options:first').first().height(height);
|
|
}, 100, {
|
|
trailing: false
|
|
}); // Update the opened node
|
|
|
|
instance.updateOpen = function () {
|
|
rootInstance.$('.select-tree').removeClass('open');
|
|
rootInstance.$('.select-tree:last').addClass('open');
|
|
}; // Put the component in selected state
|
|
|
|
|
|
instance.setSelected = function (flag) {
|
|
if (flag) {
|
|
$treeRoot.addClass('selected');
|
|
} else {
|
|
$treeRoot.removeClass('selected');
|
|
}
|
|
}; // Store the element's initial height
|
|
|
|
|
|
var $treeOptions = instance.$('.tree-options:first').first();
|
|
var height = $treeOptions.height();
|
|
$treeOptions.data('height', height);
|
|
$treeOptions.off('transitionend').on('transitionend', function (event) {
|
|
if (event.target !== event.currentTarget) return;
|
|
$treeRoot.trigger('spatialChanged');
|
|
});
|
|
instance.autorun(function () {
|
|
// Run this computation everytime the current node is changed
|
|
instance.data.currentNode.dep.depend(); // Run this computation everytime the search term is changed
|
|
|
|
var searchTerm = instance.searchTerm.get(); // Clean the current node selection if the user started the search
|
|
|
|
if (searchTerm) {
|
|
rootInstance.data.currentNode.set(null);
|
|
} // Update the viewport height
|
|
|
|
|
|
Tracker.afterFlush(function () {
|
|
instance.updateHeight(searchTerm);
|
|
instance.updateOpen();
|
|
});
|
|
});
|
|
var selector = '.select-tree:first>.tree-content>.tree-options>.tree-breadcrumb .path-link';
|
|
instance.$(selector).css('width', 0).each(function (index, element) {
|
|
transition({
|
|
element: element,
|
|
prop: 'width',
|
|
style: 'width 0.3s ease',
|
|
val: 'auto'
|
|
});
|
|
});
|
|
});
|
|
Template.selectTree.events({
|
|
'input .tree-search input': function (event, instance) {
|
|
var $target = $(event.currentTarget); // Get the tree root
|
|
|
|
var $treeRoot = $target.closest('.select-tree-root'); // Get the search term
|
|
|
|
var searchTerm = $target.val(); // Change the search term to update the tree items
|
|
|
|
instance.searchTerm.set(searchTerm); // Change the component state
|
|
|
|
var method = searchTerm ? 'addClass' : 'removeClass';
|
|
$treeRoot[method]('navigated');
|
|
instance.setMargin(!!searchTerm);
|
|
},
|
|
'keydown .tree-search input': function (event, instance) {
|
|
// Get the search term
|
|
var searchTerm = $(event.currentTarget).val().trim();
|
|
var $labels = instance.$('.tree-inputs:first>label'); // Select the label if ENTER was pressed and there is only one result
|
|
|
|
if (searchTerm.length && $labels.length === 1 && event.which === 13) {
|
|
$labels.find('input').click();
|
|
}
|
|
},
|
|
'change .select-tree:first>.tree-content>.tree-options>.tree-inputs>label>input': function (event, instance) {
|
|
var component = instance.component;
|
|
var $target = $(event.currentTarget);
|
|
var $treeRoot = $target.closest('.select-tree-root');
|
|
var $label = $target.closest('label');
|
|
var eventComponent = $target.data('component');
|
|
var rootComponent = instance.data.root || component;
|
|
var rootInstance = rootComponent.templateInstance;
|
|
var offsetTop = $target.closest('.wrapperLabel').offset().top; // Change the component's node
|
|
|
|
component.node(eventComponent.value()); // Unset the active leaf
|
|
|
|
rootInstance.$('label').removeClass('active').css('width', ''); // Unset the selected state
|
|
|
|
instance.setSelected(false); // Detect the first interaction with the component and do the animation
|
|
|
|
instance.setMargin(true);
|
|
$treeRoot.addClass('navigated'); // Check if the clicked element is a node or a leaf
|
|
|
|
var isLeaf = $label.hasClass('tree-leaf');
|
|
|
|
if (isLeaf) {
|
|
// Change the active item
|
|
$label.css('width', $label.outerWidth()).addClass('active'); // Ckeck if there's a storageKey defined
|
|
|
|
var storageKey = instance.data.storageKey;
|
|
|
|
if (storageKey) {
|
|
// Get the current stored data
|
|
var storedData = _.extend({}, OHIF.user.getData(storageKey)); // Increment or create a counter for the clicked leaf
|
|
|
|
|
|
var itemKey = OHIF.string.encodeId($target.val());
|
|
|
|
if (storedData[itemKey]) {
|
|
storedData[itemKey]++;
|
|
} else {
|
|
storedData[itemKey] = 1;
|
|
} // Update the stored data with the new count
|
|
|
|
|
|
OHIF.user.setData(storageKey, storedData);
|
|
} // Set the selected leaf value in the root component
|
|
|
|
|
|
var itemData = $target.data('component').templateInstance.data.itemData;
|
|
rootComponent.value(itemData); // Mark the component as selected
|
|
|
|
instance.setSelected(true);
|
|
} else {
|
|
// Get the position of the clicked element
|
|
var position = $label.position();
|
|
|
|
var getPosition = function ($element) {
|
|
if (instance.useTransform) {
|
|
var matrixToArray = function (str) {
|
|
return str.match(/(-?[0-9\.]+)/g);
|
|
};
|
|
|
|
var transformMatrix = matrixToArray($element.css('transform')) || [];
|
|
return {
|
|
x: parseFloat(transformMatrix[4]) || 0,
|
|
y: parseFloat(transformMatrix[5]) || 0
|
|
};
|
|
} else {
|
|
return {
|
|
x: parseFloat($element.css('left')),
|
|
y: parseFloat($element.css('top'))
|
|
};
|
|
}
|
|
};
|
|
|
|
var setPosition = function ($element, position) {
|
|
if (instance.useTransform) {
|
|
var translation = "translate(" + position.x + "px, " + position.y + "px)";
|
|
OHIF.ui.styleProperty.set($element[0], 'transform', translation);
|
|
} else {
|
|
$element.css('left', position.x + "px");
|
|
$element.css('top', position.y + "px");
|
|
}
|
|
};
|
|
|
|
Meteor.defer(function () {
|
|
var $treeNode = $label.parent().siblings('.select-tree'); // Do the transition from the clicked position to top
|
|
|
|
$treeNode.css(position);
|
|
setTimeout(function () {
|
|
return $treeNode.css('top', 0);
|
|
});
|
|
var optionsTop = $target.closest('.tree-options').position().top;
|
|
var treeOffsetTop = $treeRoot.offset().top;
|
|
var treeRootPosition = getPosition($treeRoot);
|
|
treeRootPosition.y += offsetTop - treeOffsetTop - optionsTop;
|
|
setPosition($treeRoot, treeRootPosition);
|
|
});
|
|
}
|
|
},
|
|
'click .select-tree:first>.tree-content>.tree-options>.tree-breadcrumb .tree-back': function (event, instance) {
|
|
var $target = $(event.currentTarget);
|
|
var rootComponent = instance.data.root || instance.component;
|
|
var rootInstance = rootComponent.templateInstance; // Prevent the default element action
|
|
|
|
event.preventDefault(); // Reset the checked inputs to unchecked state
|
|
|
|
rootInstance.$('input').removeAttr('checked'); // Unset the selected state
|
|
|
|
instance.setSelected(false);
|
|
instance.setMargin(false);
|
|
$target.closest('.select-tree-root').removeClass('navigated'); // Get the index of the breadcrumb's clicked option
|
|
|
|
var index = parseInt($target.attr('data-index')); // Set the current instance
|
|
|
|
var currentInstance = instance.component.parent.templateInstance; // Iterate over all parents until gets into the clicked node
|
|
|
|
for (var i = 1; i <= index; i++) {
|
|
// Unset the selected node
|
|
currentInstance.data.currentNode.set(null); // Check if it's not the root node
|
|
|
|
if (i < index) {
|
|
// Change the current instance
|
|
currentInstance = currentInstance.component.parent.templateInstance;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
Template.selectTree.helpers({
|
|
treeItems: function () {
|
|
var instance = Template.instance(); // Run this computation everytime the search term is changed
|
|
|
|
var searchTerm = instance.searchTerm.get(); // Get all the items
|
|
|
|
var items = instance.data.items; // Check if the search term was informed
|
|
|
|
if (searchTerm) {
|
|
// Search the items by the give search term
|
|
items = OHIF.string.search(items, searchTerm, 'label'); // Filter only the tree leaves
|
|
|
|
items = _.filter(items, function (item) {
|
|
return !item.items;
|
|
});
|
|
} else if (instance.data.hideCommon) {
|
|
// Get the values of common items
|
|
var commonValues = _.pluck(instance.getCommonItems(), 'value'); // Filter only the items that are not common
|
|
|
|
|
|
items = _.filter(items, function (item) {
|
|
return !_.contains(commonValues, item.value);
|
|
});
|
|
} // Return the items sorted for tree columns
|
|
|
|
|
|
if (instance.data.threeColumns) {
|
|
var begin = items.splice(0, Math.ceil(items.length / 2));
|
|
var sortedItems = [];
|
|
|
|
_.each(begin, function (item, index) {
|
|
sortedItems.push(item);
|
|
|
|
if (items[index]) {
|
|
sortedItems.push(items[index]);
|
|
}
|
|
});
|
|
|
|
items = sortedItems;
|
|
} // Return the tree items
|
|
|
|
|
|
return items;
|
|
}
|
|
});
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
},"selectTree.styl":function(require,exports,module){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// node_modules/meteor/ohif_select-tree/client/components/selectTree/selectTree.styl //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
module.watch(require("./selectTree.styl.css"), {
|
|
"*": module.makeNsSetter(true)
|
|
});
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
},"selectTree.styl.css":function(require,exports,module){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/ohif_select-tree/client/components/selectTree/selectTree.styl.css //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
module.exports = require("meteor/modules").addStyles(
|
|
".theme-icon-crickets,\n.theme-icon-tide,\n.theme-icon-tigerlily,\n.theme-icon-quartz,\n.theme-icon-overcast,\n.theme-icon-mint,\n.theme-icon-honeycomb {\n display: inline-block;\n background: url(\"/packages/ohif_design/assets/theme-icons.png\") no-repeat;\n overflow: hidden;\n text-indent: -9999px;\n text-align: left;\n}\n.theme-icon-crickets {\n background-position: 0px 0px;\n width: 64px;\n height: 56px;\n}\n.theme-icon-tide {\n background-position: 0px -56px;\n width: 64px;\n height: 54px;\n}\n.theme-icon-tigerlily {\n background-position: 0px -110px;\n width: 62px;\n height: 61px;\n}\n.theme-icon-quartz {\n background-position: 0px -171px;\n width: 59px;\n height: 64px;\n}\n.theme-icon-overcast {\n background-position: 0px -235px;\n width: 58px;\n height: 37px;\n}\n.theme-icon-mint {\n background-position: 0px -272px;\n width: 57px;\n height: 61px;\n}\n.theme-icon-honeycomb {\n background-position: 0px -333px;\n width: 50px;\n height: 58px;\n}\n.select-tree-root .tree-content {\n background-color: #fff;\n position: relative;\n -webkit-transition: transform 0.3s ease , background-color 0.3s ease , border-color 0.3s ease , border-radius 0.3s ease , margin-right 0.3s ease;\n -moz-transition: transform 0.3s ease , background-color 0.3s ease , border-color 0.3s ease , border-radius 0.3s ease , margin-right 0.3s ease;\n -ms-transition: transform 0.3s ease , background-color 0.3s ease , border-color 0.3s ease , border-radius 0.3s ease , margin-right 0.3s ease;\n -o-transition: transform 0.3s ease , background-color 0.3s ease , border-color 0.3s ease , border-radius 0.3s ease , margin-right 0.3s ease;\n transition: transform 0.3s ease , background-color 0.3s ease , border-color 0.3s ease , border-radius 0.3s ease , margin-right 0.3s ease;\n}\n.select-tree-root .tree-content .tree-search,\n.select-tree-root .tree-content a.tree-back,\n.select-tree-root .tree-content .tree-breadcrumb span,\n.select-tree-root .tree-content .tree-node,\n.select-tree-root .tree-content .tree-leaf {\n -webkit-transition: all 0.3s ease;\n -moz-transition: all 0.3s ease;\n -ms-transition: all 0.3s ease;\n -o-transition: all 0.3s ease;\n transition: all 0.3s ease;\n}\n.select-tree-root.selected label.tree-leaf.active {\n -webkit-box-shadow: 0 0 0 10px #fff;\n -moz-box-shadow: 0 0 0 10px #fff;\n -ms-box-shadow: 0 0 0 10px #fff;\n -o-box-shadow: 0 0 0 10px #fff;\n box-shadow: 0 0 0 10px #fff;\n}\n.select-tree-root.selected .tree-content {\n background-color: transparent;\n}\n.select-tree-root.selected>.tree-content {\n border-color: transparent;\n -webkit-border-radius: 0;\n -moz-border-radius: 0;\n -ms-border-radius: 0;\n -o-border-radius: 0;\n border-radius: 0;\n}\n.select-tree-root.selected>.tree-content .tree-search {\n background-color: transparent;\n border-color: transparent;\n color: transparent;\n}\n.select-tree-root.selected>.tree-content .tree-search input,\n.select-tree-root.selected>.tree-content .tree-search i {\n opacity: 0;\n}\n.select-tree-root.selected:not(.open)>.tree-content>.tree-inputs,\n.select-tree-root.selected .select-tree:not(.open)>.tree-content>.tree-inputs,\n.select-tree-root.selected:not(.open)>.tree-content>.tree-breadcrumb,\n.select-tree-root.selected .select-tree:not(.open)>.tree-content>.tree-breadcrumb {\n display: none;\n}\n.select-tree-root.selected>.tree-content>.tree-options>.tree-inputs>label:not(.active),\n.select-tree-root.selected .select-tree>.tree-content>.tree-options>.tree-inputs>label:not(.active),\n.select-tree-root.selected>.tree-content>.tree-options>.tree-breadcrumb a,\n.select-tree-root.selected .select-tree>.tree-content>.tree-options>.tree-breadcrumb a,\n.select-tree-root.selected>.tree-content>.tree-options>.tree-breadcrumb span,\n.select-tree-root.selected .select-tree>.tree-content>.tree-options>.tree-breadcrumb span {\n color: transparent;\n}\n.select-tree-root.selected>.tree-content>.tree-options>.tree-inputs>label.tree-node:not(.active),\n.select-tree-root.selected .select-tree>.tree-content>.tree-options>.tree-inputs>label.tree-node:not(.active) {\n border-color: transparent;\n}\n.select-tree-root.selected.common-clicked .tree-leaf.active {\n background-color: transparent;\n -webkit-box-shadow: none;\n -moz-box-shadow: none;\n -ms-box-shadow: none;\n -o-box-shadow: none;\n box-shadow: none;\n color: transparent;\n}\n.select-tree-root {\n display: inline-block;\n position: relative;\n z-index: 0;\n}\n.select-tree-root>.tree-content {\n border: 1px solid #c4c4c4;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n -ms-border-radius: 5px;\n -o-border-radius: 5px;\n border-radius: 5px;\n overflow: hidden;\n}\n.select-tree-root>.tree-content>.tree-options {\n -webkit-transform: scale(1);\n -moz-transform: scale(1);\n -ms-transform: scale(1);\n -o-transform: scale(1);\n transform: scale(1);\n -webkit-transition: height 0.3s ease;\n -moz-transition: height 0.3s ease;\n -ms-transition: height 0.3s ease;\n -o-transition: height 0.3s ease;\n transition: height 0.3s ease;\n}\n.select-tree-root .tree-search {\n background-color: #c0c0c0;\n border-bottom: 1px solid #c4c4c4;\n color: #303030;\n display: flex;\n margin: 0;\n padding: 5px;\n position: relative;\n text-align: center;\n}\n.select-tree-root .tree-search span {\n font-weight: bold;\n line-height: 24px;\n}\n.select-tree-root .tree-search input {\n border-color: #9b9b9b;\n font-weight: normal;\n padding-left: 34px;\n -webkit-transition: opacity 0.3s ease;\n -moz-transition: opacity 0.3s ease;\n -ms-transition: opacity 0.3s ease;\n -o-transition: opacity 0.3s ease;\n transition: opacity 0.3s ease;\n}\n.select-tree-root .tree-search input ~ i {\n color: #a3a3a3;\n font-size: 18px;\n left: 16px;\n position: absolute;\n top: 37px;\n -webkit-transition: opacity 0.3s ease;\n -moz-transition: opacity 0.3s ease;\n -ms-transition: opacity 0.3s ease;\n -o-transition: opacity 0.3s ease;\n transition: opacity 0.3s ease;\n}\n.select-tree-root .tree-breadcrumb {\n line-height: 32px;\n padding: 5px 12px;\n}\n.select-tree-root .tree-breadcrumb .path-link,\n.select-tree-root .tree-breadcrumb .tree-current-node {\n display: inline-block;\n font-weight: normal;\n float: left;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.select-tree-root .tree-breadcrumb .path-link i,\n.select-tree-root .tree-breadcrumb .tree-current-node i {\n margin-right: 5px;\n}\n.select-tree-root .select-tree-node {\n left: 0;\n overflow: hidden;\n position: fixed;\n width: 100%;\n z-index: 2;\n}\n.select-tree-root .select-tree-node,\n.select-tree-root .select-tree-node .tree-content,\n.select-tree-root .select-tree-node .tree-inputs {\n height: 100%;\n}\n.select-tree-root .tree-options {\n overflow: hidden;\n position: relative;\n z-index: 2;\n}\n.select-tree-root .tree-options .tree-node,\n.select-tree-root .tree-options .tree-leaf {\n cursor: pointer;\n display: block;\n font-weight: normal;\n margin-bottom: 0;\n padding: 0 12px;\n position: relative;\n z-index: 1;\n}\n.select-tree-root .tree-options .tree-node>input,\n.select-tree-root .tree-options .tree-leaf>input {\n display: none;\n}\n.select-tree-root .tree-options .tree-node {\n height: 41px;\n border-bottom: 1px solid #c4c4c4;\n border-top: 1px solid #c4c4c4;\n line-height: 41px;\n margin-top: -1px;\n}\n.select-tree-root .tree-options .tree-node:last-child {\n border-bottom: 0;\n}\n.select-tree-root .tree-options .tree-leaf {\n -webkit-box-shadow: 0 0 0 200px transparent;\n -moz-box-shadow: 0 0 0 200px transparent;\n -ms-box-shadow: 0 0 0 200px transparent;\n -o-box-shadow: 0 0 0 200px transparent;\n box-shadow: 0 0 0 200px transparent;\n line-height: 26px;\n}\n.select-tree-root .tree-options .tree-leaf.active {\n -webkit-box-shadow: 0 0 0 200px #fff;\n -moz-box-shadow: 0 0 0 200px #fff;\n -ms-box-shadow: 0 0 0 200px #fff;\n -o-box-shadow: 0 0 0 200px #fff;\n box-shadow: 0 0 0 200px #fff;\n -webkit-transition: box-shadow 0.3s ease;\n -moz-transition: box-shadow 0.3s ease;\n -ms-transition: box-shadow 0.3s ease;\n -o-transition: box-shadow 0.3s ease;\n transition: box-shadow 0.3s ease;\n z-index: 0;\n}\n.select-tree-root .tree-options .tree-leaf.active:last-child:after {\n display: block;\n content: '';\n height: 10px;\n}\n.select-tree-root .tree-options.collapsed {\n z-index: 1;\n}\n.select-tree-root .select-tree-common {\n height: 100%;\n padding-left: 6px;\n position: absolute;\n right: 0;\n top: 0;\n width: 50%;\n}\n.select-tree-root .select-tree-common .content {\n background-color: #303030;\n border: 1px solid #9b9b9b;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n -ms-border-radius: 5px;\n -o-border-radius: 5px;\n border-radius: 5px;\n color: #fff;\n opacity: 0.9;\n padding: 0 15px 12px;\n position: absolute;\n top: 50%;\n -webkit-transform: translateY(-50%);\n -moz-transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n -o-transform: translateY(-50%);\n transform: translateY(-50%);\n width: calc(100% - 6px);\n}\n.select-tree-root .select-tree-common .content h5.title {\n color: #9b9b9b;\n font-weight: normal;\n line-height: 20px;\n margin: 12px 0 16px;\n}\n.select-tree-root .select-tree-common .content div.labels {\n position: relative;\n}\n.select-tree-root .select-tree-common .content label {\n cursor: pointer;\n display: block;\n font-weight: 300;\n line-height: 26px;\n margin: 0;\n padding-left: 3px;\n -webkit-transition: padding 0.3s ease;\n -moz-transition: padding 0.3s ease;\n -ms-transition: padding 0.3s ease;\n -o-transition: padding 0.3s ease;\n transition: padding 0.3s ease;\n}\n.select-tree-root .select-tree-common .content label:hover {\n padding-left: 0;\n}\n.select-tree-root>.tree-content {\n -webkit-transform: scale(0);\n -moz-transform: scale(0);\n -ms-transform: scale(0);\n -o-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: 100% 50%;\n -moz-transform-origin: 100% 50%;\n -ms-transform-origin: 100% 50%;\n -o-transform-origin: 100% 50%;\n transform-origin: 100% 50%;\n}\n.select-tree-root .select-tree-common {\n z-index: -1;\n}\n.select-tree-root .select-tree-common .content {\n margin-left: calc(-100% - 6px);\n -webkit-transform: scale(0);\n -moz-transform: scale(0);\n -ms-transform: scale(0);\n -o-transform: scale(0);\n transform: scale(0);\n -webkit-transition: margin-left 0.3s ease 0.3s , transform 0s linear 0.3s;\n -moz-transition: margin-left 0.3s ease 0.3s , transform 0s linear 0.3s;\n -ms-transition: margin-left 0.3s ease 0.3s , transform 0s linear 0.3s;\n -o-transition: margin-left 0.3s ease 0.3s , transform 0s linear 0.3s;\n transition: margin-left 0.3s ease 0.3s , transform 0s linear 0.3s;\n}\n.select-tree-root.started>.tree-content {\n -webkit-transform: scale(1);\n -moz-transform: scale(1);\n -ms-transform: scale(1);\n -o-transform: scale(1);\n transform: scale(1);\n}\n.select-tree-root.started .select-tree-common .content {\n margin-left: 0;\n -webkit-transform: scale(1) translateY(-50%);\n -moz-transform: scale(1) translateY(-50%);\n -ms-transform: scale(1) translateY(-50%);\n -o-transform: scale(1) translateY(-50%);\n transform: scale(1) translateY(-50%);\n}\n.select-tree-root.navigated .select-tree-common .content,\n.select-tree-root.selected .select-tree-common .content {\n opacity: 0;\n -webkit-transform: translateX(-100%) scale(0);\n -moz-transform: translateX(-100%) scale(0);\n -ms-transform: translateX(-100%) scale(0);\n -o-transform: translateX(-100%) scale(0);\n transform: translateX(-100%) scale(0);\n -webkit-transition: transform 0.3s ease , opacity 0.3s ease;\n -moz-transition: transform 0.3s ease , opacity 0.3s ease;\n -ms-transition: transform 0.3s ease , opacity 0.3s ease;\n -o-transition: transform 0.3s ease , opacity 0.3s ease;\n transition: transform 0.3s ease , opacity 0.3s ease;\n}\n@-moz-keyframes selectTreeCommonOverflow {\n from {\n overflow: hidden;\n }\n to {\n overflow: visible;\n }\n}\n@-webkit-keyframes selectTreeCommonOverflow {\n from {\n overflow: hidden;\n }\n to {\n overflow: visible;\n }\n}\n@-o-keyframes selectTreeCommonOverflow {\n from {\n overflow: hidden;\n }\n to {\n overflow: visible;\n }\n}\n@keyframes selectTreeCommonOverflow {\n from {\n overflow: hidden;\n }\n to {\n overflow: visible;\n }\n}\n"
|
|
);
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
}},"selectTreeCommon":{"selectTreeCommon.html":function(require,exports,module){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// node_modules/meteor/ohif_select-tree/client/components/selectTreeCommon/selectTreeCommon.html //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
module.watch(require("./template.selectTreeCommon.js"), {
|
|
"*": module.makeNsSetter(true)
|
|
});
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
},"template.selectTreeCommon.js":function(){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/ohif_select-tree/client/components/selectTreeCommon/template.selectTreeCommon.js //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
|
|
Template.__checkName("selectTreeCommon");
|
|
Template["selectTreeCommon"] = new Template("Template.selectTreeCommon", (function() {
|
|
var view = this;
|
|
return HTML.DIV({
|
|
class: "select-tree-common"
|
|
}, "\n ", HTML.DIV({
|
|
class: "content"
|
|
}, "\n ", HTML.Raw('<h5 class="title">Common</h5>'), "\n ", HTML.DIV({
|
|
class: "labels"
|
|
}, "\n ", Blaze.Each(function() {
|
|
return {
|
|
_sequence: Spacebars.call(view.lookup("items")),
|
|
_variable: "item"
|
|
};
|
|
}, function() {
|
|
return [ "\n ", HTML.LABEL({
|
|
for: function() {
|
|
return [ Spacebars.mustache(Spacebars.dot(view.lookup("."), "storageKey")), "_", Spacebars.mustache(view.lookup("encodeId"), Spacebars.dot(view.lookup("item"), "value")) ];
|
|
}
|
|
}, Blaze.View("lookup:item.label", function() {
|
|
return Spacebars.mustache(Spacebars.dot(view.lookup("item"), "label"));
|
|
})), "\n " ];
|
|
}), "\n "), "\n "), "\n ");
|
|
}));
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
},"selectTreeCommon.js":function(require,exports,module){
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/ohif_select-tree/client/components/selectTreeCommon/selectTreeCommon.js //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
var Meteor;
|
|
module.watch(require("meteor/meteor"), {
|
|
Meteor: function (v) {
|
|
Meteor = v;
|
|
}
|
|
}, 0);
|
|
var Template;
|
|
module.watch(require("meteor/templating"), {
|
|
Template: function (v) {
|
|
Template = v;
|
|
}
|
|
}, 1);
|
|
var Tracker;
|
|
module.watch(require("meteor/tracker"), {
|
|
Tracker: function (v) {
|
|
Tracker = v;
|
|
}
|
|
}, 2);
|
|
Template.selectTreeCommon.events({
|
|
'click .select-tree-common label': function (event, instance) {
|
|
event.preventDefault(); // Get the clicked label
|
|
|
|
var $target = $(event.currentTarget); // Store the offset position for further use
|
|
|
|
$target.data('offset', $target.offset()); // Build the input selector based on the label target
|
|
|
|
var inputSelector = '#' + $target.attr('for'); // Get the tree instance
|
|
|
|
var treeInstance = instance.data.treeInstance; // Check if the input is not rendered
|
|
|
|
if (!$(inputSelector).length) {
|
|
// Change the search terms with the clicked label string
|
|
treeInstance.$('.tree-search input').val($target.text()).trigger('input'); // Wait for options rerendering
|
|
|
|
Tracker.afterFlush(function () {
|
|
var $treeRoot = treeInstance.$('.select-tree-root:first').first();
|
|
$treeRoot.addClass('common-clicked'); // Wait for components initialization
|
|
|
|
Meteor.defer(function () {
|
|
return $(inputSelector).click();
|
|
});
|
|
});
|
|
}
|
|
}
|
|
});
|
|
Template.selectTreeCommon.helpers({
|
|
// Get the common items
|
|
items: function () {
|
|
return Template.instance().data.treeInstance.getCommonItems();
|
|
}
|
|
});
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
}}}}}}}},{
|
|
"extensions": [
|
|
".js",
|
|
".json",
|
|
".html",
|
|
".styl"
|
|
]
|
|
});
|
|
require("/node_modules/meteor/ohif:select-tree/client/index.js");
|
|
|
|
/* Exports */
|
|
Package._define("ohif:select-tree");
|
|
|
|
})();
|