////////////////////////////////////////////////////////////////////////// // // // 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('
Common
'), "\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"); })();