@@ -75,7 +75,7 @@ return /******/ (function(modules) { // webpackBootstrap
75
75
/******/ }
76
76
/******/
77
77
/******/ var hotApplyOnUpdate = true ;
78
- /******/ var hotCurrentHash = "2afae19088204d749848 " ; // eslint-disable-line no-unused-vars
78
+ /******/ var hotCurrentHash = "39e444aa888e695705a3 " ; // eslint-disable-line no-unused-vars
79
79
/******/ var hotCurrentModuleData = { } ;
80
80
/******/ var hotCurrentParents = [ ] ; // eslint-disable-line no-unused-vars
81
81
/******/
@@ -3305,6 +3305,8 @@ return /******/ (function(modules) { // webpackBootstrap
3305
3305
3306
3306
var _resizeMod2 = _interopRequireDefault ( _resizeMod ) ;
3307
3307
3308
+ var _reduxUndo = __webpack_require__ ( 22 ) ;
3309
+
3308
3310
function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { default : obj } ; }
3309
3311
3310
3312
__webpack_require__ ( 117 ) ;
@@ -3323,15 +3325,33 @@ return /******/ (function(modules) { // webpackBootstrap
3323
3325
} ) . on ( 'panend' , function ( ev ) {
3324
3326
var x = ev . deltaX ;
3325
3327
var y = ev . deltaY ;
3326
- var translate = store . getState ( ) . present . resize . translate ;
3328
+ var translate = store . getState ( ) . resize . translate ;
3327
3329
3328
3330
_this . x = _this . y = 0 ;
3329
3331
store . dispatch ( { type : 'EDITOR_TRANSLATE' , data : { x : translate . x + x , y : translate . y + y } } ) ;
3330
3332
} ) ;
3333
+
3334
+ document . addEventListener ( 'keyup' , _this . onKeyUp ) ;
3331
3335
} ) ;
3332
3336
3337
+ this . onKeyUp = function ( e ) {
3338
+ if ( ! e . altKey ) {
3339
+ return ;
3340
+ }
3341
+ switch ( e . which ) {
3342
+ case 90 :
3343
+ {
3344
+ return store . dispatch ( _reduxUndo . ActionCreators . undo ( ) ) ;
3345
+ }
3346
+ case 88 :
3347
+ {
3348
+ return store . dispatch ( _reduxUndo . ActionCreators . redo ( ) ) ;
3349
+ }
3350
+ }
3351
+ } ;
3352
+
3333
3353
this . getStyle = function ( ) {
3334
- var state = store . getState ( ) . present . resize ;
3354
+ var state = store . getState ( ) . resize ;
3335
3355
var temp_top = state . temp_top ;
3336
3356
var temp_bottom = state . temp_bottom ;
3337
3357
var temp_right = state . temp_right ;
@@ -3429,22 +3449,13 @@ return /******/ (function(modules) { // webpackBootstrap
3429
3449
3430
3450
var _redux = __webpack_require__ ( 7 ) ;
3431
3451
3432
- var _reduxUndo = __webpack_require__ ( 22 ) ;
3433
-
3434
- var _reduxUndo2 = _interopRequireDefault ( _reduxUndo ) ;
3435
-
3436
3452
var _indexReducer = __webpack_require__ ( 23 ) ;
3437
3453
3438
3454
var _indexReducer2 = _interopRequireDefault ( _indexReducer ) ;
3439
3455
3440
3456
function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { default : obj } ; }
3441
3457
3442
- // redux-undo higher-order reducer
3443
- var store = ( 0 , _redux . createStore ) ( ( 0 , _reduxUndo2 . default ) ( _indexReducer2 . default , {
3444
- filter : function filterActions ( action , currState , history ) {
3445
- return action . isRecord ; // only add to history if isRecord set on action
3446
- }
3447
- } ) ) ;
3458
+ var store = ( 0 , _redux . createStore ) ( _indexReducer2 . default ) ;
3448
3459
// import reducer
3449
3460
exports . default = store ;
3450
3461
@@ -4796,6 +4807,10 @@ return /******/ (function(modules) { // webpackBootstrap
4796
4807
4797
4808
var _redux = __webpack_require__ ( 7 ) ;
4798
4809
4810
+ var _reduxUndo = __webpack_require__ ( 22 ) ;
4811
+
4812
+ var _reduxUndo2 = _interopRequireDefault ( _reduxUndo ) ;
4813
+
4799
4814
var _resizeReducer = __webpack_require__ ( 24 ) ;
4800
4815
4801
4816
var _resizeReducer2 = _interopRequireDefault ( _resizeReducer ) ;
@@ -4806,10 +4821,18 @@ return /******/ (function(modules) { // webpackBootstrap
4806
4821
4807
4822
function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { default : obj } ; }
4808
4823
4824
+ // Redux utility functions
4809
4825
var reducer = ( 0 , _redux . combineReducers ) ( {
4810
4826
resize : _resizeReducer2 . default ,
4811
- points : _pointsReducer2 . default
4812
- } ) ; // Redux utility functions
4827
+ points : ( 0 , _reduxUndo2 . default ) ( _pointsReducer2 . default , {
4828
+ limit : 10 ,
4829
+ filter : function filterActions ( action , currState , history ) {
4830
+ return action . isRecord ; // only add to history if isRecord set on action
4831
+ } ,
4832
+ debug : false
4833
+ } )
4834
+ } ) ;
4835
+ // redux-undo higher-order reducer
4813
4836
exports . default = reducer ;
4814
4837
4815
4838
/***/ } ,
@@ -4833,7 +4856,7 @@ return /******/ (function(modules) { // webpackBootstrap
4833
4856
function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { default : obj } ; }
4834
4857
4835
4858
var INITIAL_STATE = {
4836
- translate : { x : 150 , y : 0 } ,
4859
+ translate : { x : 150 , y : 150 } ,
4837
4860
top : 0 ,
4838
4861
temp_top : 0 ,
4839
4862
@@ -5501,7 +5524,7 @@ return /******/ (function(modules) { // webpackBootstrap
5501
5524
5502
5525
function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { default : obj } ; }
5503
5526
5504
- var INITIAL_STATE = [ ( 0 , _makePoint2 . default ) ( { x : 0 , y : 358 } ) , ( 0 , _makePoint2 . default ) ( { x : 100 , y : 0 } ) ] ;
5527
+ var INITIAL_STATE = [ ( 0 , _makePoint2 . default ) ( { x : 0 , y : 358 , isLockedX : true } ) , ( 0 , _makePoint2 . default ) ( { x : 50 , y : 179 } ) , ( 0 , _makePoint2 . default ) ( { x : 100 , y : 0 , isLockedX : true } ) ] ;
5505
5528
5506
5529
var pointsReducer = function pointsReducer ( ) {
5507
5530
var state = arguments . length <= 0 || arguments [ 0 ] === undefined ? INITIAL_STATE : arguments [ 0 ] ;
@@ -5518,6 +5541,22 @@ return /******/ (function(modules) { // webpackBootstrap
5518
5541
newState [ data . index ] = ( 0 , _extends3 . default ) ( { } , oldPoint , { tempX : data . x , tempY : data . y } ) ;
5519
5542
return newState ;
5520
5543
}
5544
+ case 'POINT_TRANSLATE_END' :
5545
+ {
5546
+ var _data = action . data ;
5547
+ var _index = _data . index ;
5548
+ var _oldPoint = state [ _index ] ;
5549
+ var _newState = [ ] . concat ( ( 0 , _toConsumableArray3 . default ) ( state ) ) ;
5550
+
5551
+ _newState [ _data . index ] = ( 0 , _extends3 . default ) ( { } , _oldPoint , {
5552
+ tempX : 0 , tempY : 0 ,
5553
+ x : _data . x , y : _data . y
5554
+ } ) ;
5555
+
5556
+ return _newState ;
5557
+ }
5558
+ // just to save the store before any update
5559
+ // case 'POINT_TRANSLATE_START': { return [ ...state ]; }
5521
5560
}
5522
5561
return state ;
5523
5562
} ;
@@ -6040,7 +6079,7 @@ return /******/ (function(modules) { // webpackBootstrap
6040
6079
} , makePositionPoint ( o ) , {
6041
6080
// add curve handles
6042
6081
handle1 : makePositionPoint ( o . handle1 ) ,
6043
- handle2 : ! o . isOneHandle ? makePositionPoint ( o . handle2 ) : undefined
6082
+ handle2 : makePositionPoint ( o . handle2 )
6044
6083
} ) ;
6045
6084
} ;
6046
6085
@@ -9434,9 +9473,11 @@ return /******/ (function(modules) { // webpackBootstrap
9434
9473
/* WEBPACK VAR INJECTION */ ( function ( riot ) {
9435
9474
__webpack_require__ ( 109 ) ;
9436
9475
9437
- riot . tag2 ( 'curve' , '<div class="{this.CLASSES[\'curve__svg-wrapper\']}" riot-style="{this.getSvgStyle() }"> <point each="{point, _index in points}"></point> <svg width="358" height="358" viewbox="0 0 100 100" class="{this.CLASSES[\'curve__svg\']}"> </ svg> </div>' , '' , 'class="{this.CLASSES[\'curve\']}" riot-style="{this.getStyle() }"' , function ( opts ) {
9476
+ riot . tag2 ( 'curve' , '<div class="{this.CLASSES[\'curve__svg-wrapper\']}" riot-style="{this.styles.transform }"> <point each="{point, _index in points}"></point> <svg height="358" viewbox="0 0 100 100" preserveaspectratio="none" class="{this.CLASSES[\'curve__svg\']}"> <path riot-d="{this.path}" stroke="#ffffff" stroke-width="2" vector-effect="non-scaling-stroke" fill="none"> </path> </ svg> </div>' , '' , 'class="{this.CLASSES[\'curve\']}" riot-style="{this.styles.background }"' , function ( opts ) {
9438
9477
'use strict' ;
9439
9478
9479
+ var _this = this ;
9480
+
9440
9481
var _store = __webpack_require__ ( 6 ) ;
9441
9482
9442
9483
var _store2 = _interopRequireDefault ( _store ) ;
@@ -9450,15 +9491,23 @@ return /******/ (function(modules) { // webpackBootstrap
9450
9491
this . CLASSES = __webpack_require__ ( 114 ) ;
9451
9492
__webpack_require__ ( 115 ) ;
9452
9493
9453
- var state = _store2 . default . getState ( ) . present ;
9454
- var points = state . points ;
9455
-
9456
- this . points = points ;
9457
-
9458
- _store2 . default . subscribe ( this . update . bind ( this ) ) ;
9494
+ var getPath = function getPath ( ) {
9495
+ var str = '' ;
9496
+ for ( var i = 0 ; i < _this . points . length ; i ++ ) {
9497
+ var point = _this . points [ i ] ,
9498
+ x = point . x + point . tempX ,
9499
+ y = point . y + point . tempY ;
9500
+ if ( i === 0 ) {
9501
+ str += 'M' + x + ', ' + y / 3.58 + ' ' ;
9502
+ } else {
9503
+ str += 'L' + x + ', ' + y / 3.58 + ' ' ;
9504
+ }
9505
+ }
9506
+ _this . path = str ;
9507
+ } ;
9459
9508
9460
- this . getSvgStyle = function ( ) {
9461
- var resize = state . resize ;
9509
+ this . getStyle = function ( ) {
9510
+ var resize = _this . state . resize ;
9462
9511
var temp_top = resize . temp_top ;
9463
9512
9464
9513
temp_top += resize . top ;
@@ -9468,25 +9517,37 @@ return /******/ (function(modules) { // webpackBootstrap
9468
9517
}
9469
9518
temp_top = ( 0 , _resizeMod2 . default ) ( temp_top , - 1 ) ;
9470
9519
9520
+ var background = 'background-position: 0 ' + ( - temp_top - 1 ) + 'px' ;
9471
9521
var transform = 'transform: translate(0px, ' + - temp_top + 'px)' ;
9472
9522
9473
- return '' + mojs . h . prefix . css + transform + '; ' + transform + ';' ;
9523
+ return {
9524
+ background : background ,
9525
+ transform : '' + mojs . h . prefix . css + transform + '; ' + transform + ';'
9526
+ } ;
9474
9527
} ;
9475
9528
9476
- this . getStyle = function ( ) {
9477
- var state = _store2 . default . getState ( ) . present ;
9478
- var temp_top = state . temp_top ;
9479
-
9480
- temp_top += state . top ;
9529
+ var getState = function getState ( ) {
9530
+ _this . state = _store2 . default . getState ( ) ;
9531
+ } ;
9481
9532
9482
- if ( 358 - temp_top < 358 ) {
9483
- temp_top = 0 ;
9484
- }
9485
- temp_top = ( 0 , _resizeMod2 . default ) ( temp_top , - 1 ) ;
9533
+ var getPoints = function getPoints ( ) {
9534
+ _this . points = _this . state . points . present ;
9535
+ } ;
9486
9536
9487
- var background = 'background-position: 0 ' + ( - temp_top - 1 ) + 'px' ;
9488
- return background + ';' ;
9537
+ var getStyles = function getStyles ( ) {
9538
+ _this . styles = _this . getStyle ( ) ;
9539
+ } ;
9540
+ var get = function get ( ) {
9541
+ getState ( ) ;
9542
+ getPoints ( ) ;
9543
+ getPath ( ) ;
9544
+ getStyles ( ) ;
9489
9545
} ;
9546
+
9547
+ get ( ) ;
9548
+ _store2 . default . subscribe ( function ( ) {
9549
+ get ( ) ; _this . update ( ) ;
9550
+ } ) ;
9490
9551
} ) ;
9491
9552
/* WEBPACK VAR INJECTION */ } . call ( exports , __webpack_require__ ( 2 ) ) )
9492
9553
@@ -9520,37 +9581,92 @@ return /******/ (function(modules) { // webpackBootstrap
9520
9581
this . CLASSES = __webpack_require__ ( 111 ) ;
9521
9582
__webpack_require__ ( 112 ) ;
9522
9583
9523
- // store.subscribe(this.update.bind(this));
9584
+ _store2 . default . subscribe ( this . update . bind ( this ) ) ;
9585
+ var clamp = mojs . h . clamp ;
9524
9586
9525
9587
this . getStyle = function ( ) {
9526
- var resize = _store2 . default . getState ( ) . present . resize ;
9527
- var x = ( _this . point . x + _this . point . tempX ) * resize . scalerX ;
9528
- var translate = 'transform: translate(' + x + 'px, ' + _this . point . y + 'px)' ;
9588
+ var _store$getState = _store2 . default . getState ( ) ;
9529
9589
9530
- // console.log(this.point.x + this.point.tempX, this.point.tempX);
9590
+ var resize = _store$getState . resize ;
9591
+ var x = clamp ( _this . point . x + _this . point . tempX , 0 , 100 ) ;
9592
+ var cleanX = x * resize . scalerX ;
9593
+
9594
+ var y = _this . point . y + _this . point . tempY ;
9595
+
9596
+ var translate = 'transform: translate(' + cleanX + 'px, ' + y + 'px)' ;
9531
9597
return '' + mojs . h . prefix . css + translate + '; ' + translate ;
9532
9598
} ;
9533
9599
9600
+ var getTempX = function getTempX ( e ) {
9601
+ var _store$getState2 = _store2 . default . getState ( ) ;
9602
+
9603
+ var resize = _store$getState2 . resize ;
9604
+
9605
+ // if point is not locked to x axes ->
9606
+ // calculate delta regarding scaler
9607
+
9608
+ if ( _this . point . isLockedX ) {
9609
+ return 0 ;
9610
+ } ;
9611
+
9612
+ var x = e . deltaX / resize . scalerX ;
9613
+ if ( _this . point . x + x < 0 ) {
9614
+ return 0 - _this . point . x ;
9615
+ } else if ( _this . point . x + x > 100 ) {
9616
+ return 100 - _this . point . x ;
9617
+ }
9618
+ return x ;
9619
+ } ;
9620
+
9621
+ var getY = function getY ( e ) {
9622
+ var _store$getState3 = _store2 . default . getState ( ) ;
9623
+
9624
+ var resize = _store$getState3 . resize ;
9625
+
9626
+ var y = _this . point . y + e . deltaY ;
9627
+ // clamp y to the size of curve
9628
+ return clamp ( y , resize . top , 358 + resize . bottom ) ;
9629
+ } ;
9630
+
9631
+ // get y delta reagarding curve bounds
9632
+ var getTempY = function getTempY ( e ) {
9633
+ var _store$getState4 = _store2 . default . getState ( ) ;
9634
+
9635
+ var resize = _store$getState4 . resize ;
9636
+ var y = _this . point . y + e . deltaY ;
9637
+
9638
+ if ( y < resize . top ) {
9639
+ return resize . top - _this . point . y ;
9640
+ }
9641
+ if ( y > 358 + resize . bottom ) {
9642
+ return 358 + resize . bottom - _this . point . y ;
9643
+ }
9644
+ return e . deltaY ;
9645
+ } ;
9646
+
9534
9647
this . on ( 'mount' , function ( ) {
9535
9648
var hammertime = ( 0 , _propagatingHammerjs2 . default ) ( new _hammerjs2 . default ( _this . root ) ) . on ( 'pan' , function ( e ) {
9536
9649
_store2 . default . dispatch ( {
9537
9650
type : 'POINT_TRANSLATE' ,
9651
+ data : { x : getTempX ( e ) , y : getTempY ( e ) , index : _this . _index }
9652
+ } ) ;
9653
+ e . stopPropagation ( ) ;
9654
+ } ) . on ( 'panend' , function ( e ) {
9655
+ // reset temporary deltas
9656
+ _store2 . default . dispatch ( { type : 'POINT_TRANSLATE' , data : { x : 0 , y : 0 , index : _this . _index } } ) ;
9657
+ // fire translate end and save it to the store
9658
+ _store2 . default . dispatch ( {
9659
+ type : 'POINT_TRANSLATE_END' ,
9538
9660
data : {
9539
- x : _this . point . x + e . deltaX ,
9540
- y : _this . point . y + e . deltaY ,
9661
+ x : _this . point . x + getTempX ( e ) ,
9662
+ y : getY ( e ) ,
9541
9663
index : _this . _index
9542
- }
9664
+ } ,
9665
+ isRecord : true
9543
9666
} ) ;
9667
+
9544
9668
e . stopPropagation ( ) ;
9545
9669
} ) ;
9546
- // .on('panend', (ev) => {
9547
- // const x = ev.deltaX,
9548
- // y = ev.deltaY,
9549
- // {translate} = store.getState().present.resize;
9550
-
9551
- // this.x = this.y = 0;
9552
- // store.dispatch({ type: 'EDITOR_TRANSLATE', data: { x: translate.x + x, y: translate.y + y } })
9553
- // });
9554
9670
} ) ;
9555
9671
} ) ;
9556
9672
/* WEBPACK VAR INJECTION */ } . call ( exports , __webpack_require__ ( 2 ) ) )
@@ -9638,9 +9754,9 @@ return /******/ (function(modules) { // webpackBootstrap
9638
9754
/***/ function ( module , exports ) {
9639
9755
9640
9756
module . exports = {
9641
- "curve" : "_curve_1rlvw_5 " ,
9642
- "curve__svg-wrapper" : "_curve__svg-wrapper_1rlvw_1 " ,
9643
- "curve__svg" : "_curve__svg_1rlvw_1 "
9757
+ "curve" : "_curve_n7tci_5 " ,
9758
+ "curve__svg-wrapper" : "_curve__svg-wrapper_n7tci_1 " ,
9759
+ "curve__svg" : "_curve__svg_n7tci_1 "
9644
9760
} ;
9645
9761
9646
9762
/***/ } ,
@@ -9678,7 +9794,7 @@ return /******/ (function(modules) { // webpackBootstrap
9678
9794
9679
9795
9680
9796
// module
9681
- exports . push ( [ module . id , "._curve_1rlvw_5 {position:absolute;left:0;top:10px;right:10px;bottom:10px;border-radius:2px;background:rgba(58,8,58,.75);border:1px solid #b3a0b2;box-shadow:inset 4px 4px 0 rgba(0,0,0,.5)}._curve__svg-wrapper_1rlvw_1 {position:absolute;left:-1px;top:-1px}._curve__svg_1rlvw_1 {display:block;overflow:visible}" , "" ] ) ;
9797
+ exports . push ( [ module . id , "._curve_n7tci_5 {position:absolute;left:0;top:10px;right:10px;bottom:10px;border-radius:2px;background:rgba(58,8,58,.75);border:1px solid #b3a0b2;box-shadow:inset 4px 4px 0 rgba(0,0,0,.5)}._curve__svg-wrapper_n7tci_1 {position:absolute;left:-1px;top:-1px;width:100%}._curve__svg_n7tci_1 {display:block;overflow:visible;width:100% }" , "" ] ) ;
9682
9798
9683
9799
// exports
9684
9800
0 commit comments