Code coverage report for dnd-core/modules/stores/DragOperationStore.js

Statements: 96.67% (58 / 60)      Branches: 68.75% (11 / 16)      Functions: 100% (17 / 17)      Lines: 100% (52 / 52)      Ignored: none     

All files » dnd-core/modules/stores/ » DragOperationStore.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122    1   1   50   1   1   1 1 50   50   50 50   50 50 50 50 50   50                   1   1 45 45 45   45                 1 44   44     1 7 7   7 4           1 29   29           1 24                 1 285     1 369     1 35     1 74     1 17     1 38     1 69     1     1  
"use strict";
 
var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
 
var _inherits = function (subClass, superClass) { Iif (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); Eif (superClass) subClass.__proto__ = superClass; };
 
var _classCallCheck = function (instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } };
 
var Store = require("flummox").Store;
 
var without = _interopRequire(require("lodash/array/without"));
 
var DragOperationStore = (function (_Store) {
  function DragOperationStore(flux) {
    _classCallCheck(this, DragOperationStore);
 
    _Store.call(this);
 
    var dragDropActionIds = flux.dragDropActionIds;
    var registryActionIds = flux.registryActionIds;
 
    this.register(dragDropActionIds.beginDrag, this.handleBeginDrag);
    this.register(dragDropActionIds.hover, this.handleHover);
    this.register(dragDropActionIds.endDrag, this.handleEndDrag);
    this.register(dragDropActionIds.drop, this.handleDrop);
    this.register(registryActionIds.removeTarget, this.handleRemoveTarget);
 
    this.state = {
      itemType: null,
      item: null,
      sourceHandle: null,
      targetHandles: [],
      dropResult: null,
      didDrop: false
    };
  }
 
  _inherits(DragOperationStore, _Store);
 
  DragOperationStore.prototype.handleBeginDrag = function handleBeginDrag(_ref) {
    var itemType = _ref.itemType;
    var item = _ref.item;
    var sourceHandle = _ref.sourceHandle;
 
    this.setState({
      itemType: itemType,
      item: item,
      sourceHandle: sourceHandle,
      dropResult: false,
      didDrop: false
    });
  };
 
  DragOperationStore.prototype.handleHover = function handleHover(_ref) {
    var targetHandles = _ref.targetHandles;
 
    this.setState({ targetHandles: targetHandles });
  };
 
  DragOperationStore.prototype.handleRemoveTarget = function handleRemoveTarget(_ref) {
    var targetHandle = _ref.targetHandle;
    var targetHandles = this.state.targetHandles;
 
    if (targetHandles.indexOf(targetHandle) > -1) {
      this.setState({
        targetHandles: without(targetHandles, targetHandle)
      });
    }
  };
 
  DragOperationStore.prototype.handleDrop = function handleDrop(_ref) {
    var dropResult = _ref.dropResult;
 
    this.setState({
      dropResult: dropResult,
      didDrop: true
    });
  };
 
  DragOperationStore.prototype.handleEndDrag = function handleEndDrag() {
    this.setState({
      itemType: null,
      item: null,
      sourceHandle: null,
      dropResult: null,
      didDrop: false
    });
  };
 
  DragOperationStore.prototype.isDragging = function isDragging() {
    return Boolean(this.getItemType());
  };
 
  DragOperationStore.prototype.getItemType = function getItemType() {
    return this.state.itemType;
  };
 
  DragOperationStore.prototype.getSourceHandle = function getSourceHandle() {
    return this.state.sourceHandle;
  };
 
  DragOperationStore.prototype.getTargetHandles = function getTargetHandles() {
    return this.state.targetHandles.slice(0);
  };
 
  DragOperationStore.prototype.getItem = function getItem() {
    return this.state.item;
  };
 
  DragOperationStore.prototype.getDropResult = function getDropResult() {
    return this.state.dropResult;
  };
 
  DragOperationStore.prototype.didDrop = function didDrop() {
    return this.state.didDrop;
  };
 
  return DragOperationStore;
})(Store);
 
module.exports = DragOperationStore;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9kYW4vRG9jdW1lbnRzL1Byb2plY3RzL2RuZC1jb3JlL21vZHVsZXMvc3RvcmVzL0RyYWdPcGVyYXRpb25TdG9yZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztJQUFTLEtBQUssV0FBUSxTQUFTLEVBQXRCLEtBQUs7O0lBQ1AsT0FBTywyQkFBTSxzQkFBc0I7O0lBRXJCLGtCQUFrQjtBQUMxQixXQURRLGtCQUFrQixDQUN6QixJQUFJLEVBQUU7MEJBREMsa0JBQWtCOztBQUVuQyxxQkFBTyxDQUFDOztRQUVBLGlCQUFpQixHQUF3QixJQUFJLENBQTdDLGlCQUFpQjtRQUFFLGlCQUFpQixHQUFLLElBQUksQ0FBMUIsaUJBQWlCOztBQUM1QyxRQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDakUsUUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3pELFFBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUM3RCxRQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdkQsUUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7O0FBRXZFLFFBQUksQ0FBQyxLQUFLLEdBQUc7QUFDWCxjQUFRLEVBQUUsSUFBSTtBQUNkLFVBQUksRUFBRSxJQUFJO0FBQ1Ysa0JBQVksRUFBRSxJQUFJO0FBQ2xCLG1CQUFhLEVBQUUsRUFBRTtBQUNqQixnQkFBVSxFQUFFLElBQUk7QUFDaEIsYUFBTyxFQUFFLEtBQUs7S0FDZixDQUFDO0dBQ0g7O1lBbkJrQixrQkFBa0I7O0FBQWxCLG9CQUFrQixXQXFCckMsZUFBZSxHQUFBLCtCQUFtQztRQUFoQyxRQUFRLFFBQVIsUUFBUTtRQUFFLElBQUksUUFBSixJQUFJO1FBQUUsWUFBWSxRQUFaLFlBQVk7O0FBQzVDLFFBQUksQ0FBQyxRQUFRLENBQUM7QUFDWixjQUFRLEVBQVIsUUFBUTtBQUNSLFVBQUksRUFBSixJQUFJO0FBQ0osa0JBQVksRUFBWixZQUFZO0FBQ1osZ0JBQVUsRUFBRSxLQUFLO0FBQ2pCLGFBQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQyxDQUFDO0dBQ0o7O0FBN0JrQixvQkFBa0IsV0ErQnJDLFdBQVcsR0FBQSwyQkFBb0I7UUFBakIsYUFBYSxRQUFiLGFBQWE7O0FBQ3pCLFFBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxhQUFhLEVBQWIsYUFBYSxFQUFFLENBQUMsQ0FBQztHQUNsQzs7QUFqQ2tCLG9CQUFrQixXQW1DckMsa0JBQWtCLEdBQUEsa0NBQW1CO1FBQWhCLFlBQVksUUFBWixZQUFZO1FBQ3ZCLGFBQWEsR0FBSyxJQUFJLENBQUMsS0FBSyxDQUE1QixhQUFhOztBQUNyQixRQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDNUMsVUFBSSxDQUFDLFFBQVEsQ0FBQztBQUNaLHFCQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUM7T0FDcEQsQ0FBQyxDQUFDO0tBQ0o7R0FDRjs7QUExQ2tCLG9CQUFrQixXQTRDckMsVUFBVSxHQUFBLDBCQUFpQjtRQUFkLFVBQVUsUUFBVixVQUFVOztBQUNyQixRQUFJLENBQUMsUUFBUSxDQUFDO0FBQ1osZ0JBQVUsRUFBVixVQUFVO0FBQ1YsYUFBTyxFQUFFLElBQUk7S0FDZCxDQUFDLENBQUM7R0FDSjs7QUFqRGtCLG9CQUFrQixXQW1EckMsYUFBYSxHQUFBLHlCQUFHO0FBQ2QsUUFBSSxDQUFDLFFBQVEsQ0FBQztBQUNaLGNBQVEsRUFBRSxJQUFJO0FBQ2QsVUFBSSxFQUFFLElBQUk7QUFDVixrQkFBWSxFQUFFLElBQUk7QUFDbEIsZ0JBQVUsRUFBRSxJQUFJO0FBQ2hCLGFBQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQyxDQUFDO0dBQ0o7O0FBM0RrQixvQkFBa0IsV0E2RHJDLFVBQVUsR0FBQSxzQkFBRztBQUNYLFdBQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0dBQ3BDOztBQS9Ea0Isb0JBQWtCLFdBaUVyQyxXQUFXLEdBQUEsdUJBQUc7QUFDWixXQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0dBQzVCOztBQW5Fa0Isb0JBQWtCLFdBcUVyQyxlQUFlLEdBQUEsMkJBQUc7QUFDaEIsV0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztHQUNoQzs7QUF2RWtCLG9CQUFrQixXQXlFckMsZ0JBQWdCLEdBQUEsNEJBQUc7QUFDakIsV0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7R0FDMUM7O0FBM0VrQixvQkFBa0IsV0E2RXJDLE9BQU8sR0FBQSxtQkFBRztBQUNSLFdBQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7R0FDeEI7O0FBL0VrQixvQkFBa0IsV0FpRnJDLGFBQWEsR0FBQSx5QkFBRztBQUNkLFdBQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7R0FDOUI7O0FBbkZrQixvQkFBa0IsV0FxRnJDLE9BQU8sR0FBQSxtQkFBRztBQUNSLFdBQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7R0FDM0I7O1NBdkZrQixrQkFBa0I7R0FBUyxLQUFLOztpQkFBaEMsa0JBQWtCIiwiZmlsZSI6Ii9Vc2Vycy9kYW4vRG9jdW1lbnRzL1Byb2plY3RzL2RuZC1jb3JlL21vZHVsZXMvc3RvcmVzL0RyYWdPcGVyYXRpb25TdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JlIH0gZnJvbSAnZmx1bW1veCc7XG5pbXBvcnQgd2l0aG91dCBmcm9tICdsb2Rhc2gvYXJyYXkvd2l0aG91dCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyYWdPcGVyYXRpb25TdG9yZSBleHRlbmRzIFN0b3JlIHtcbiAgY29uc3RydWN0b3IoZmx1eCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBjb25zdCB7IGRyYWdEcm9wQWN0aW9uSWRzLCByZWdpc3RyeUFjdGlvbklkcyB9ID0gZmx1eDtcbiAgICB0aGlzLnJlZ2lzdGVyKGRyYWdEcm9wQWN0aW9uSWRzLmJlZ2luRHJhZywgdGhpcy5oYW5kbGVCZWdpbkRyYWcpO1xuICAgIHRoaXMucmVnaXN0ZXIoZHJhZ0Ryb3BBY3Rpb25JZHMuaG92ZXIsIHRoaXMuaGFuZGxlSG92ZXIpO1xuICAgIHRoaXMucmVnaXN0ZXIoZHJhZ0Ryb3BBY3Rpb25JZHMuZW5kRHJhZywgdGhpcy5oYW5kbGVFbmREcmFnKTtcbiAgICB0aGlzLnJlZ2lzdGVyKGRyYWdEcm9wQWN0aW9uSWRzLmRyb3AsIHRoaXMuaGFuZGxlRHJvcCk7XG4gICAgdGhpcy5yZWdpc3RlcihyZWdpc3RyeUFjdGlvbklkcy5yZW1vdmVUYXJnZXQsIHRoaXMuaGFuZGxlUmVtb3ZlVGFyZ2V0KTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBpdGVtVHlwZTogbnVsbCxcbiAgICAgIGl0ZW06IG51bGwsXG4gICAgICBzb3VyY2VIYW5kbGU6IG51bGwsXG4gICAgICB0YXJnZXRIYW5kbGVzOiBbXSxcbiAgICAgIGRyb3BSZXN1bHQ6IG51bGwsXG4gICAgICBkaWREcm9wOiBmYWxzZVxuICAgIH07XG4gIH1cblxuICBoYW5kbGVCZWdpbkRyYWcoeyBpdGVtVHlwZSwgaXRlbSwgc291cmNlSGFuZGxlIH0pIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGl0ZW1UeXBlLFxuICAgICAgaXRlbSxcbiAgICAgIHNvdXJjZUhhbmRsZSxcbiAgICAgIGRyb3BSZXN1bHQ6IGZhbHNlLFxuICAgICAgZGlkRHJvcDogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZUhvdmVyKHsgdGFyZ2V0SGFuZGxlcyB9KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHRhcmdldEhhbmRsZXMgfSk7XG4gIH1cblxuICBoYW5kbGVSZW1vdmVUYXJnZXQoeyB0YXJnZXRIYW5kbGUgfSkge1xuICAgIGNvbnN0IHsgdGFyZ2V0SGFuZGxlcyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBpZiAodGFyZ2V0SGFuZGxlcy5pbmRleE9mKHRhcmdldEhhbmRsZSkgPiAtMSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHRhcmdldEhhbmRsZXM6IHdpdGhvdXQodGFyZ2V0SGFuZGxlcywgdGFyZ2V0SGFuZGxlKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlRHJvcCh7IGRyb3BSZXN1bHQgfSkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZHJvcFJlc3VsdCxcbiAgICAgIGRpZERyb3A6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZUVuZERyYWcoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBpdGVtVHlwZTogbnVsbCxcbiAgICAgIGl0ZW06IG51bGwsXG4gICAgICBzb3VyY2VIYW5kbGU6IG51bGwsXG4gICAgICBkcm9wUmVzdWx0OiBudWxsLFxuICAgICAgZGlkRHJvcDogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIGlzRHJhZ2dpbmcoKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5nZXRJdGVtVHlwZSgpKTtcbiAgfVxuXG4gIGdldEl0ZW1UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLml0ZW1UeXBlO1xuICB9XG5cbiAgZ2V0U291cmNlSGFuZGxlKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnNvdXJjZUhhbmRsZTtcbiAgfVxuXG4gIGdldFRhcmdldEhhbmRsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUudGFyZ2V0SGFuZGxlcy5zbGljZSgwKTtcbiAgfVxuXG4gIGdldEl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuaXRlbTtcbiAgfVxuXG4gIGdldERyb3BSZXN1bHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZHJvcFJlc3VsdDtcbiAgfVxuXG4gIGRpZERyb3AoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZGlkRHJvcDtcbiAgfVxufVxuIl19