{
  "version": 3,
  "sources": ["../ui/app/components/directives/mn_drag_and_drop.js"],
  "sourcesContent": ["/*\nCopyright 2015-Present Couchbase, Inc.\n\nUse of this software is governed by the Business Source License included in\nthe file licenses/BSL-Couchbase.txt.  As of the Change Date specified in that\nfile, in accordance with the Business Source License, use of this software will\nbe governed by the Apache License, Version 2.0, included in the file\nlicenses/APL2.txt.\n*/\n\nimport angular from 'angular';\n\nexport default 'mnDragAndDrop';\n\nangular\n  .module('mnDragAndDrop', [])\n  .directive('mnDragAndDrop', mnDragAndDropDirective);\n\nfunction mnDragAndDropDirective($window, $document) {\n  var mnDragAndDrop = {\n    scope: {\n      onItemTaken: '&',\n      onItemDropped: '&',\n      onItemMoved: '&'\n    },\n    link: link\n  };\n\n  return mnDragAndDrop;\n\n  function link($scope, $element, $attrs) {\n    var draggedObject;\n    var startX;\n    var startY;\n    var initialMouseX;\n    var initialMouseY;\n    var baseCornerRight = $attrs.baseCornerRight;\n\n    $element.on('mousedown touchstart', onMouseDown);\n    $scope.$on(\"$destroy\", function () {\n      $element.off('mousedown touchstart', onMouseDown);\n    });\n\n    function onMouseDown(e) {\n      e = e || $window.event;\n\n      if (draggedObject) {\n        onMouseUp();\n        return;\n      }\n      var target = e.currentTarget;\n      draggedObject = $element;\n\n      if ($scope.onItemTaken) {\n        $scope.onItemTaken({$event: e});\n      }\n      startX = target.offsetLeft;\n      if (baseCornerRight) {\n        startX += target.clientWidth;\n      }\n      startY = target.offsetTop;\n      initialMouseX = e.clientX;\n      initialMouseY = e.clientY;\n\n      $element.addClass(\"dragged\");\n      $document.on('mousemove touchmove', onMouseMove);\n      $document.on('mouseup touchend', onMouseUp);\n      $document.find('body').addClass('disable-text-selection');\n      return false;\n    }\n\n    function onMouseMove(e) {\n      e = e || $window.event;\n      if ($scope.onItemMoved) {\n        $scope.onItemMoved(this);\n      }\n      var dx = e.clientX - initialMouseX;\n      var dy = e.clientY - initialMouseY;\n      var move = {\n        top: startY + dy + 'px',\n        bottom: 'auto'\n      };\n      if (baseCornerRight) {\n        move.right = -(startX + dx) + 'px';\n        move.left = \"auto\";\n      } else {\n        move.right = \"auto\";\n        move.left = startX + dx + 'px';\n      }\n      $element.css(move);\n      return false;\n    }\n    function onMouseUp() {\n      if ($scope.onItemDropped) {\n        $scope.onItemDropped(this);\n      }\n      draggedObject.removeClass(\"dragged\");\n      $document.off('mousemove touchmove', onMouseMove);\n      $document.off('mouseup touchend', onMouseUp);\n      $document.find('body').removeClass('disable-text-selection');\n      draggedObject = null;\n    }\n\n  }\n}\n"],
  "mappings": "mFAYA,GAAO,0BAAQ,gBAEf,UACG,OAAO,gBAAiB,IACxB,UAAU,gBAAiB,wBAE9B,gCAAgC,QAAS,UAAW,CAClD,GAAI,eAAgB,CAClB,MAAO,CACL,YAAa,IACb,cAAe,IACf,YAAa,KAEf,MAGF,MAAO,eAEP,cAAc,OAAQ,SAAU,OAAQ,CACtC,GAAI,eACA,OACA,OACA,cACA,cACA,gBAAkB,OAAO,gBAE7B,SAAS,GAAG,uBAAwB,aACpC,OAAO,IAAI,WAAY,UAAY,CACjC,SAAS,IAAI,uBAAwB,eAGvC,qBAAqB,EAAG,CAGtB,GAFA,EAAI,GAAK,QAAQ,MAEb,cAAe,CACjB,YACA,OAEF,GAAI,QAAS,EAAE,cACf,qBAAgB,SAEZ,OAAO,aACT,OAAO,YAAY,CAAC,OAAQ,IAE9B,OAAS,OAAO,WACZ,iBACF,SAAU,OAAO,aAEnB,OAAS,OAAO,UAChB,cAAgB,EAAE,QAClB,cAAgB,EAAE,QAElB,SAAS,SAAS,WAClB,UAAU,GAAG,sBAAuB,aACpC,UAAU,GAAG,mBAAoB,WACjC,UAAU,KAAK,QAAQ,SAAS,0BACzB,GAzBA,kCA4BT,qBAAqB,EAAG,CACtB,EAAI,GAAK,QAAQ,MACb,OAAO,aACT,OAAO,YAAY,MAErB,GAAI,IAAK,EAAE,QAAU,cACjB,GAAK,EAAE,QAAU,cACjB,KAAO,CACT,IAAK,OAAS,GAAK,KACnB,OAAQ,QAEV,MAAI,iBACF,MAAK,MAAQ,CAAE,QAAS,IAAM,KAC9B,KAAK,KAAO,QAEZ,MAAK,MAAQ,OACb,KAAK,KAAO,OAAS,GAAK,MAE5B,SAAS,IAAI,MACN,GAnBA,kCAqBT,oBAAqB,CACnB,AAAI,OAAO,eACT,OAAO,cAAc,MAEvB,cAAc,YAAY,WAC1B,UAAU,IAAI,sBAAuB,aACrC,UAAU,IAAI,mBAAoB,WAClC,UAAU,KAAK,QAAQ,YAAY,0BACnC,cAAgB,KART,+BA1EJ",
  "names": []
}