Edit in JSFiddle

requirejs.config({
  // Path mappings for the logical module names
  paths: {
    'knockout': '//cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min',
    'jquery': '//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min',
    "jqueryui": "//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui",
    "jqueryui-amd": "//cdn.rawgit.com/jquery/jquery-ui/1-11-stable/ui",

    "promise": "//cdn.rawgit.com/components/es6-promise/v1.0.0/promise.min",
    "hammerjs": "//cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.4/hammer.min",
    // oj 2.0.2: 9e2dfcb24d7511ed5e524fb38e573ad9bbafbd0d
    "ojdnd": "//cdn.rawgit.com/oracle/oraclejet/2.0.2/dist/js/libs/dnd-polyfill/dnd-polyfill-1.0.0.min",
    "ojs": "//cdn.rawgit.com/oracle/oraclejet/2.0.2/dist/js/libs/oj/min",
    "ojL10n": "//cdn.rawgit.com/oracle/oraclejet/2.0.2/dist/js/libs/oj/ojL10n",
    "ojtranslations": "//cdn.rawgit.com/oracle/oraclejet/2.0.2/dist/js/libs/oj/resources",
    "text": "//cdnjs.cloudflare.com/ajax/libs/require-text/2.0.12/text.min",
    "signals": "//cdnjs.cloudflare.com/ajax/libs/js-signals/1.0.0/js-signals.min"

  },
  // Shim configurations for modules that do not expose AMD
  shim: {
    'jqueryui-amd': {
      exports: "$",
      deps: ['jquery']
    },
    'jquery': {
      exports: ['jQuery', '$']
    }
  },
  config: {
    ojL10n: {
      merge: {
        //'ojtranslations/nls/ojtranslations': 'resources/nls/menu'
        // The following addes en-US to the r.js bundle
        //'ojtranslations/nls/ojtranslations': '../../oj/resources/nls/en-US/localeElements'
      }
    }
  }
});



require(['knockout',
  'jquery',
  'jqueryui-amd/draggable',
  'jqueryui-amd/droppable'
], function(ko, $) {
  'use strict';

  ko.bindingHandlers.jmDraggable = {
    init: function(element) {
      $(element)
        .draggable({
          revert: 'invalid',
          helper: "clone"
        });
    }
  };

  ko.bindingHandlers.jmDroppable = {
    init: function(element) {
      $(element)
        .droppable({
          drop: function(event, ui) {
            $(ui.draggable)
              .detach()
              .css({
                top: 0,
                left: 0
              })
              .appendTo($(this));
          }
        });
    }
  };

  var ViewModel = function() {
    var self = this;
    self.labels = [
      "default",
      "oj-panel-alt1",
      "oj-panel-alt2",
      "oj-panel-alt3",
      "oj-panel-alt4",
      "oj-panel-alt5"
    ];

  };

  ko.applyBindings(new ViewModel());

});
<div id="panelPage">
  <div class="oj-flex drag-items draggables oj-margin oj-padding"
       data-bind="jmDroppable, foreach: {data: labels, as: 'label'}">
    <div class="oj-panel oj-margin" data-bind="jmDraggable, css: label">
        <span data-bind="text: label"></span>
    </div>
    
  </div>
  
  <div class="drop-target oj-margin oj-padding"
       data-bind="jmDroppable">
    <span>Drop items here</span>
  </div>
  
</div>
@import url('//cdn.rawgit.com/oracle/oraclejet/2.0.2/dist/css/alta/oj-alta.css');

.draggables .oj-panel,
.drop-target .oj-panel {
  cursor: pointer;
}


.draggables,
.drop-target {
  background-color: #fefefe;
  border: 1px dashed #c0c0c0;
}