summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE/client/bower_components/jqTree/lib/drag_and_drop_handler.js
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/jqTree/lib/drag_and_drop_handler.js')
-rw-r--r--ecomp-portal-FE/client/bower_components/jqTree/lib/drag_and_drop_handler.js489
1 files changed, 0 insertions, 489 deletions
diff --git a/ecomp-portal-FE/client/bower_components/jqTree/lib/drag_and_drop_handler.js b/ecomp-portal-FE/client/bower_components/jqTree/lib/drag_and_drop_handler.js
deleted file mode 100644
index 4fb0b307..00000000
--- a/ecomp-portal-FE/client/bower_components/jqTree/lib/drag_and_drop_handler.js
+++ /dev/null
@@ -1,489 +0,0 @@
-var $, DragAndDropHandler, DragElement, HitAreasGenerator, Position, VisibleNodeIterator, node_module, util,
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- hasProp = {}.hasOwnProperty;
-
-node_module = require('./node');
-
-util = require('./util');
-
-Position = node_module.Position;
-
-$ = jQuery;
-
-DragAndDropHandler = (function() {
- function DragAndDropHandler(tree_widget) {
- this.tree_widget = tree_widget;
- this.hovered_area = null;
- this.$ghost = null;
- this.hit_areas = [];
- this.is_dragging = false;
- this.current_item = null;
- }
-
- DragAndDropHandler.prototype.mouseCapture = function(position_info) {
- var $element, node_element;
- $element = $(position_info.target);
- if (!this.mustCaptureElement($element)) {
- return null;
- }
- if (this.tree_widget.options.onIsMoveHandle && !this.tree_widget.options.onIsMoveHandle($element)) {
- return null;
- }
- node_element = this.tree_widget._getNodeElement($element);
- if (node_element && this.tree_widget.options.onCanMove) {
- if (!this.tree_widget.options.onCanMove(node_element.node)) {
- node_element = null;
- }
- }
- this.current_item = node_element;
- return this.current_item !== null;
- };
-
- DragAndDropHandler.prototype.mouseStart = function(position_info) {
- var node, node_name, offset;
- this.refresh();
- offset = $(position_info.target).offset();
- node = this.current_item.node;
- if (this.tree_widget.options.autoEscape) {
- node_name = util.html_escape(node.name);
- } else {
- node_name = node.name;
- }
- this.drag_element = new DragElement(node_name, position_info.page_x - offset.left, position_info.page_y - offset.top, this.tree_widget.element);
- this.is_dragging = true;
- this.current_item.$element.addClass('jqtree-moving');
- return true;
- };
-
- DragAndDropHandler.prototype.mouseDrag = function(position_info) {
- var area, can_move_to;
- this.drag_element.move(position_info.page_x, position_info.page_y);
- area = this.findHoveredArea(position_info.page_x, position_info.page_y);
- can_move_to = this.canMoveToArea(area);
- if (can_move_to && area) {
- if (!area.node.isFolder()) {
- this.stopOpenFolderTimer();
- }
- if (this.hovered_area !== area) {
- this.hovered_area = area;
- if (this.mustOpenFolderTimer(area)) {
- this.startOpenFolderTimer(area.node);
- } else {
- this.stopOpenFolderTimer();
- }
- this.updateDropHint();
- }
- } else {
- this.removeHover();
- this.removeDropHint();
- this.stopOpenFolderTimer();
- }
- if (!area) {
- if (this.tree_widget.options.onDragMove != null) {
- this.tree_widget.options.onDragMove(this.current_item.node, position_info.original_event);
- }
- }
- return true;
- };
-
- DragAndDropHandler.prototype.mustCaptureElement = function($element) {
- return !$element.is('input,select,textarea');
- };
-
- DragAndDropHandler.prototype.canMoveToArea = function(area) {
- var position_name;
- if (!area) {
- return false;
- } else if (this.tree_widget.options.onCanMoveTo) {
- position_name = Position.getName(area.position);
- return this.tree_widget.options.onCanMoveTo(this.current_item.node, area.node, position_name);
- } else {
- return true;
- }
- };
-
- DragAndDropHandler.prototype.mouseStop = function(position_info) {
- var current_item;
- this.moveItem(position_info);
- this.clear();
- this.removeHover();
- this.removeDropHint();
- this.removeHitAreas();
- current_item = this.current_item;
- if (this.current_item) {
- this.current_item.$element.removeClass('jqtree-moving');
- this.current_item = null;
- }
- this.is_dragging = false;
- if (!this.hovered_area && current_item) {
- if (this.tree_widget.options.onDragStop != null) {
- this.tree_widget.options.onDragStop(current_item.node, position_info.original_event);
- }
- }
- return false;
- };
-
- DragAndDropHandler.prototype.refresh = function() {
- this.removeHitAreas();
- if (this.current_item) {
- this.generateHitAreas();
- this.current_item = this.tree_widget._getNodeElementForNode(this.current_item.node);
- if (this.is_dragging) {
- return this.current_item.$element.addClass('jqtree-moving');
- }
- }
- };
-
- DragAndDropHandler.prototype.removeHitAreas = function() {
- return this.hit_areas = [];
- };
-
- DragAndDropHandler.prototype.clear = function() {
- this.drag_element.remove();
- return this.drag_element = null;
- };
-
- DragAndDropHandler.prototype.removeDropHint = function() {
- if (this.previous_ghost) {
- return this.previous_ghost.remove();
- }
- };
-
- DragAndDropHandler.prototype.removeHover = function() {
- return this.hovered_area = null;
- };
-
- DragAndDropHandler.prototype.generateHitAreas = function() {
- var hit_areas_generator;
- hit_areas_generator = new HitAreasGenerator(this.tree_widget.tree, this.current_item.node, this.getTreeDimensions().bottom);
- return this.hit_areas = hit_areas_generator.generate();
- };
-
- DragAndDropHandler.prototype.findHoveredArea = function(x, y) {
- var area, dimensions, high, low, mid;
- dimensions = this.getTreeDimensions();
- if (x < dimensions.left || y < dimensions.top || x > dimensions.right || y > dimensions.bottom) {
- return null;
- }
- low = 0;
- high = this.hit_areas.length;
- while (low < high) {
- mid = (low + high) >> 1;
- area = this.hit_areas[mid];
- if (y < area.top) {
- high = mid;
- } else if (y > area.bottom) {
- low = mid + 1;
- } else {
- return area;
- }
- }
- return null;
- };
-
- DragAndDropHandler.prototype.mustOpenFolderTimer = function(area) {
- var node;
- node = area.node;
- return node.isFolder() && !node.is_open && area.position === Position.INSIDE;
- };
-
- DragAndDropHandler.prototype.updateDropHint = function() {
- var node_element;
- if (!this.hovered_area) {
- return;
- }
- this.removeDropHint();
- node_element = this.tree_widget._getNodeElementForNode(this.hovered_area.node);
- return this.previous_ghost = node_element.addDropHint(this.hovered_area.position);
- };
-
- DragAndDropHandler.prototype.startOpenFolderTimer = function(folder) {
- var openFolder;
- openFolder = (function(_this) {
- return function() {
- return _this.tree_widget._openNode(folder, _this.tree_widget.options.slide, function() {
- _this.refresh();
- return _this.updateDropHint();
- });
- };
- })(this);
- this.stopOpenFolderTimer();
- return this.open_folder_timer = setTimeout(openFolder, this.tree_widget.options.openFolderDelay);
- };
-
- DragAndDropHandler.prototype.stopOpenFolderTimer = function() {
- if (this.open_folder_timer) {
- clearTimeout(this.open_folder_timer);
- return this.open_folder_timer = null;
- }
- };
-
- DragAndDropHandler.prototype.moveItem = function(position_info) {
- var doMove, event, moved_node, position, previous_parent, target_node;
- if (this.hovered_area && this.hovered_area.position !== Position.NONE && this.canMoveToArea(this.hovered_area)) {
- moved_node = this.current_item.node;
- target_node = this.hovered_area.node;
- position = this.hovered_area.position;
- previous_parent = moved_node.parent;
- if (position === Position.INSIDE) {
- this.hovered_area.node.is_open = true;
- }
- doMove = (function(_this) {
- return function() {
- _this.tree_widget.tree.moveNode(moved_node, target_node, position);
- _this.tree_widget.element.empty();
- return _this.tree_widget._refreshElements();
- };
- })(this);
- event = this.tree_widget._triggerEvent('tree.move', {
- move_info: {
- moved_node: moved_node,
- target_node: target_node,
- position: Position.getName(position),
- previous_parent: previous_parent,
- do_move: doMove,
- original_event: position_info.original_event
- }
- });
- if (!event.isDefaultPrevented()) {
- return doMove();
- }
- }
- };
-
- DragAndDropHandler.prototype.getTreeDimensions = function() {
- var offset;
- offset = this.tree_widget.element.offset();
- return {
- left: offset.left,
- top: offset.top,
- right: offset.left + this.tree_widget.element.width(),
- bottom: offset.top + this.tree_widget.element.height() + 16
- };
- };
-
- return DragAndDropHandler;
-
-})();
-
-VisibleNodeIterator = (function() {
- function VisibleNodeIterator(tree) {
- this.tree = tree;
- }
-
- VisibleNodeIterator.prototype.iterate = function() {
- var _iterateNode, is_first_node;
- is_first_node = true;
- _iterateNode = (function(_this) {
- return function(node, next_node) {
- var $element, child, children_length, i, j, len, must_iterate_inside, ref;
- must_iterate_inside = (node.is_open || !node.element) && node.hasChildren();
- if (node.element) {
- $element = $(node.element);
- if (!$element.is(':visible')) {
- return;
- }
- if (is_first_node) {
- _this.handleFirstNode(node, $element);
- is_first_node = false;
- }
- if (!node.hasChildren()) {
- _this.handleNode(node, next_node, $element);
- } else if (node.is_open) {
- if (!_this.handleOpenFolder(node, $element)) {
- must_iterate_inside = false;
- }
- } else {
- _this.handleClosedFolder(node, next_node, $element);
- }
- }
- if (must_iterate_inside) {
- children_length = node.children.length;
- ref = node.children;
- for (i = j = 0, len = ref.length; j < len; i = ++j) {
- child = ref[i];
- if (i === (children_length - 1)) {
- _iterateNode(node.children[i], null);
- } else {
- _iterateNode(node.children[i], node.children[i + 1]);
- }
- }
- if (node.is_open) {
- return _this.handleAfterOpenFolder(node, next_node, $element);
- }
- }
- };
- })(this);
- return _iterateNode(this.tree, null);
- };
-
- VisibleNodeIterator.prototype.handleNode = function(node, next_node, $element) {};
-
- VisibleNodeIterator.prototype.handleOpenFolder = function(node, $element) {};
-
- VisibleNodeIterator.prototype.handleClosedFolder = function(node, next_node, $element) {};
-
- VisibleNodeIterator.prototype.handleAfterOpenFolder = function(node, next_node, $element) {};
-
- VisibleNodeIterator.prototype.handleFirstNode = function(node, $element) {};
-
- return VisibleNodeIterator;
-
-})();
-
-HitAreasGenerator = (function(superClass) {
- extend(HitAreasGenerator, superClass);
-
- function HitAreasGenerator(tree, current_node, tree_bottom) {
- HitAreasGenerator.__super__.constructor.call(this, tree);
- this.current_node = current_node;
- this.tree_bottom = tree_bottom;
- }
-
- HitAreasGenerator.prototype.generate = function() {
- this.positions = [];
- this.last_top = 0;
- this.iterate();
- return this.generateHitAreas(this.positions);
- };
-
- HitAreasGenerator.prototype.getTop = function($element) {
- return $element.offset().top;
- };
-
- HitAreasGenerator.prototype.addPosition = function(node, position, top) {
- var area;
- area = {
- top: top,
- node: node,
- position: position
- };
- this.positions.push(area);
- return this.last_top = top;
- };
-
- HitAreasGenerator.prototype.handleNode = function(node, next_node, $element) {
- var top;
- top = this.getTop($element);
- if (node === this.current_node) {
- this.addPosition(node, Position.NONE, top);
- } else {
- this.addPosition(node, Position.INSIDE, top);
- }
- if (next_node === this.current_node || node === this.current_node) {
- return this.addPosition(node, Position.NONE, top);
- } else {
- return this.addPosition(node, Position.AFTER, top);
- }
- };
-
- HitAreasGenerator.prototype.handleOpenFolder = function(node, $element) {
- if (node === this.current_node) {
- return false;
- }
- if (node.children[0] !== this.current_node) {
- this.addPosition(node, Position.INSIDE, this.getTop($element));
- }
- return true;
- };
-
- HitAreasGenerator.prototype.handleClosedFolder = function(node, next_node, $element) {
- var top;
- top = this.getTop($element);
- if (node === this.current_node) {
- return this.addPosition(node, Position.NONE, top);
- } else {
- this.addPosition(node, Position.INSIDE, top);
- if (next_node !== this.current_node) {
- return this.addPosition(node, Position.AFTER, top);
- }
- }
- };
-
- HitAreasGenerator.prototype.handleFirstNode = function(node, $element) {
- if (node !== this.current_node) {
- return this.addPosition(node, Position.BEFORE, this.getTop($(node.element)));
- }
- };
-
- HitAreasGenerator.prototype.handleAfterOpenFolder = function(node, next_node, $element) {
- if (node === this.current_node.node || next_node === this.current_node.node) {
- return this.addPosition(node, Position.NONE, this.last_top);
- } else {
- return this.addPosition(node, Position.AFTER, this.last_top);
- }
- };
-
- HitAreasGenerator.prototype.generateHitAreas = function(positions) {
- var group, hit_areas, j, len, position, previous_top;
- previous_top = -1;
- group = [];
- hit_areas = [];
- for (j = 0, len = positions.length; j < len; j++) {
- position = positions[j];
- if (position.top !== previous_top && group.length) {
- if (group.length) {
- this.generateHitAreasForGroup(hit_areas, group, previous_top, position.top);
- }
- previous_top = position.top;
- group = [];
- }
- group.push(position);
- }
- this.generateHitAreasForGroup(hit_areas, group, previous_top, this.tree_bottom);
- return hit_areas;
- };
-
- HitAreasGenerator.prototype.generateHitAreasForGroup = function(hit_areas, positions_in_group, top, bottom) {
- var area_height, area_top, i, position, position_count;
- position_count = Math.min(positions_in_group.length, 4);
- area_height = Math.round((bottom - top) / position_count);
- area_top = top;
- i = 0;
- while (i < position_count) {
- position = positions_in_group[i];
- hit_areas.push({
- top: area_top,
- bottom: area_top + area_height,
- node: position.node,
- position: position.position
- });
- area_top += area_height;
- i += 1;
- }
- return null;
- };
-
- return HitAreasGenerator;
-
-})(VisibleNodeIterator);
-
-DragElement = (function() {
- function DragElement(node_name, offset_x, offset_y, $tree) {
- this.offset_x = offset_x;
- this.offset_y = offset_y;
- this.$element = $("<span class=\"jqtree-title jqtree-dragging\">" + node_name + "</span>");
- this.$element.css("position", "absolute");
- $tree.append(this.$element);
- }
-
- DragElement.prototype.move = function(page_x, page_y) {
- return this.$element.offset({
- left: page_x - this.offset_x,
- top: page_y - this.offset_y
- });
- };
-
- DragElement.prototype.remove = function() {
- return this.$element.remove();
- };
-
- return DragElement;
-
-})();
-
-module.exports = {
- DragAndDropHandler: DragAndDropHandler,
- DragElement: DragElement,
- HitAreasGenerator: HitAreasGenerator
-};