Files
config-pacs-docker/nv/html/nv-nopdf/styles/packages/ohif_select-tree.js
2025-02-26 14:49:25 +07:00

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");
})();