JSFiddle - React, Tailwind, and code Playground

by pkzew

HTML

<script src="http://code.highcharts.com/stock/highstock.js"></script>
<div id="container" style="width: 800px; height: 400px; margin: 0 auto"></div>
<table id="myTable" style="background-color:#828282" cellspacing="1" cellpadding="2">
    <thead>
        <tr style="background-color: #cdcdcd">
            <td style="padding: 0px 10px 0px 10px" rowspan="2">Kategorie</Td>
            <td style="padding: 0px 10px 0px 10px"  rowspan="2">Bar ID</Td>
            <td style="padding: 0px 10px 0px 10px" colspan="2">orginal</Td>
            <td style="padding: 0px 10px 0px 10px" colspan="2">verschoben</Td>
        </tr>
        <tr style="background-color: #cdcdcd">
            <td style="padding: 0px 10px 0px 10px">start time</Td>
            <td style="padding: 0px 10px 0px 10px">end time</Td>
            <td style="padding: 0px 10px 0px 10px">start time</Td>
            <td style="padding: 0px 10px 0px 10px">end time</Td>
        </tr>
    </thead>
</table>



<div id="drag"></div>
<div id="drop"></div>

JavaScript

(function (Highcharts) {

    'use strict';

    var addEvent = Highcharts.addEvent,
        each = Highcharts.each,
        a=1,
        drag_action,
        point,
        pick = Highcharts.pick;

    /**
     * Filter by dragMin and dragMax
     */
    function filterRange(newY, series, XOrY) {
        var options = series.options,
            dragMin = pick(options['dragMin' + XOrY], undefined),
            dragMax = pick(options['dragMax' + XOrY], undefined);

        if (newY < dragMin) {
            newY = dragMin;
        } else if (newY > dragMax) {
            newY = dragMax;
        }
        return newY;
    }


    Highcharts.Chart.prototype.callbacks.push(function (chart) {

        var container = chart.container,
            dragPoint,
            dragX,
            dragY,
            dragPlotX,
            dragPlotY,
            range_width;

        /**
         * Get the new values based on the drag event
         */
        function getNewPos(e) {
           

           // newX = filterRange(newX, series, 'X');
           // newX2 = filterRange(newX2, series, 'X');
           // newY = filterRange(newY, series, 'Y');
           // newX2 =  dragPoint.category + deltaX;
              
          if(drag_action=='links'){
        	  var originalEvent = e.originalEvent || e,
                  pageX 	    = originalEvent.changedTouches ? originalEvent.changedTouches[0].pageX : e.pageX,
                  pageY 	    = originalEvent.changedTouches ? originalEvent.changedTouches[0].pageY : e.pageY,
                  draggableX    = dragPoint.series.options.draggableX,
                  draggableY    = dragPoint.series.options.draggableY,
                  deltaX        = dragX - pageX,
                  deltaY        = dragY - pageY,
                  series        = dragPoint.series,
                  newPlotX      = dragPlotX - deltaX,
                  newPlotY      = dragPlotY - deltaY,  
                  range_width   =  dragPoint.x2-dragPoint.x,
...