@lls/lls-audio 0.0.20 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lls/lls-audio",
3
- "version": "0.0.20",
3
+ "version": "0.0.22",
4
4
  "main": "index.js",
5
5
  "devDependencies": {
6
6
  "@kadira/storybook": "^2.21.0",
@@ -19,6 +19,7 @@
19
19
  "react-dom": "15.3.1"
20
20
  },
21
21
  "dependencies": {
22
+ "@lls/lls-icons": "1.0.37",
22
23
  "aphrodite": "^1.1.0",
23
24
  "is_js": "^0.9.0",
24
25
  "merge-audio-buffers": "^1.0.0",
@@ -8,6 +8,8 @@ var _react = require('react');
8
8
 
9
9
  var _react2 = _interopRequireDefault(_react);
10
10
 
11
+ var _colors = require('./styles/colors');
12
+
11
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
14
 
13
15
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -17,7 +19,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
17
19
  function _inherits(subClass, superClass) { if (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 } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
18
20
 
19
21
  var RESOLUTION = 2;
20
- var colorScheme = ['#888', '#e51400'];
22
+ var colorScheme = ['#d8d8d8', _colors.BLUE];
21
23
 
22
24
  var chunks = function chunks(arr, chunkSize) {
23
25
  return arr.map(function (e, i) {
@@ -124,6 +126,7 @@ var _initialiseProps = function _initialiseProps() {
124
126
  averages = _maxLevelChunks$reduc.averages;
125
127
 
126
128
  var ratio = maxWidth / maxLevelChunks.length;
129
+ var middle = maxHeight / 2;
127
130
 
128
131
  // Clear canvas and draw one bar for each level
129
132
  _this2.ctx.clearRect(0, 0, maxWidth, maxHeight);
@@ -131,10 +134,9 @@ var _initialiseProps = function _initialiseProps() {
131
134
  var x = i * ratio;
132
135
  var h = average * (maxHeight / highestAverage);
133
136
  var color = x >= startX && x <= endX ? colorScheme[1] : colorScheme[0];
134
-
135
137
  _this2.drawLevel({
136
138
  x: x,
137
- y: maxHeight - h,
139
+ y: middle - h / 2,
138
140
  w: 1,
139
141
  h: h,
140
142
  color: color
@@ -151,7 +153,7 @@ var _initialiseProps = function _initialiseProps() {
151
153
  return _react2.default.createElement('canvas', {
152
154
  ref: 'canvas',
153
155
  className: '' + _this2.props.className,
154
- style: { width: _this2.props.width, height: _this2.props.height, position: 'relative', top: 9 } });
156
+ style: { width: _this2.props.width, height: _this2.props.height, position: 'relative' } });
155
157
  };
156
158
  };
157
159
 
package/player/Loop.js CHANGED
@@ -4,49 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
 
7
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
-
9
7
  var _react = require('react');
10
8
 
11
9
  var _react2 = _interopRequireDefault(_react);
12
10
 
13
11
  var _noImportant = require('aphrodite/no-important');
14
12
 
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ var _colors = require('./styles/colors');
16
14
 
17
- var beforeAfter = function beforeAfter(color) {
18
- return {
19
- position: 'absolute',
20
- content: '""',
21
- width: 0,
22
- height: 0,
23
- border: '6px solid transparent',
24
- borderBottomColor: color
25
- };
26
- };
15
+ var _llsIcons = require('@lls/lls-icons');
16
+
17
+ var _llsIcons2 = _interopRequireDefault(_llsIcons);
18
+
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
20
 
28
21
  var makeStyle = function makeStyle(color) {
29
22
  return _noImportant.StyleSheet.create({
30
23
  loop: {
31
- display: 'inline-block',
32
- position: 'relative',
33
- verticalAlign: 'middle',
34
- width: 20,
35
- height: 20,
36
- border: '2px solid transparent',
37
- borderRadius: '50%',
38
- borderTopColor: color,
39
- borderBottomColor: color,
40
- ':after': _extends({}, beforeAfter(color), {
41
- top: 1,
42
- right: -7,
43
- transform: 'rotate(135deg)'
44
- }),
45
- ':before': _extends({}, beforeAfter(color), {
46
- top: 8,
47
- left: -7,
48
- transform: 'rotate(-45deg)'
49
- })
24
+ color: color
50
25
  }
51
26
  });
52
27
  };
@@ -54,9 +29,7 @@ var makeStyle = function makeStyle(color) {
54
29
  var Loop = function Loop(_ref) {
55
30
  var _ref$loop = _ref.loop,
56
31
  loop = _ref$loop === undefined ? false : _ref$loop;
57
- return _react2.default.createElement('span', {
58
- className: (0, _noImportant.css)(makeStyle(loop ? '#a20025' : '#e5e5e5').loop)
59
- });
32
+ return _react2.default.createElement(_llsIcons2.default, { name: 'btn_audio_player_repeat', className: (0, _noImportant.css)(makeStyle(loop ? _colors.BLUE : _colors.GREY).loop) });
60
33
  };
61
34
 
62
35
  exports.default = Loop;
package/player/Play.js CHANGED
@@ -10,6 +10,8 @@ var _react2 = _interopRequireDefault(_react);
10
10
 
11
11
  var _noImportant = require('aphrodite/no-important');
12
12
 
13
+ var _colors = require('./styles/colors');
14
+
13
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
16
 
15
17
  var styles = _noImportant.StyleSheet.create({
@@ -24,7 +26,7 @@ var styles = _noImportant.StyleSheet.create({
24
26
  left: {
25
27
  'height': '100%',
26
28
  'float': 'left',
27
- 'background-color': '#e51400',
29
+ 'background-color': '#fff',
28
30
  'width': '36%',
29
31
  'transition': 'all 0.25s ease',
30
32
  'overflow': 'hidden'
@@ -42,7 +44,7 @@ var styles = _noImportant.StyleSheet.create({
42
44
  'background-color': 'transparent',
43
45
  'width': 0,
44
46
  'height': 0,
45
- 'border-right': '16px solid #fff',
47
+ 'border-right': '16px solid ' + _colors.BLUE,
46
48
  'border-top': '8px solid transparent',
47
49
  'border-bottom': '8px solid transparent',
48
50
  'transition': 'transform 0.25s ease'
@@ -51,7 +53,7 @@ var styles = _noImportant.StyleSheet.create({
51
53
  'height': '100%',
52
54
  'float': 'right',
53
55
  'width': '36%',
54
- 'background-color': '#e51400',
56
+ 'background-color': '#fff',
55
57
  'transition': 'all 0.25s ease'
56
58
  }
57
59
 
@@ -0,0 +1,154 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _react = require('react');
8
+
9
+ var _react2 = _interopRequireDefault(_react);
10
+
11
+ var _noImportant = require('aphrodite/no-important');
12
+
13
+ var _colors = require('./styles/colors');
14
+
15
+ var _llsIcons = require('@lls/lls-icons');
16
+
17
+ var _llsIcons2 = _interopRequireDefault(_llsIcons);
18
+
19
+ var _utils = require('./utils');
20
+
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+
23
+ var styles = _noImportant.StyleSheet.create({
24
+ range: {
25
+ fontSize: 22,
26
+ padding: '6px 10px',
27
+ borderLeft: '2px solid #d8d8d8'
28
+ },
29
+ range_menu: {
30
+ ':hover .Range_menu_menu': {
31
+ display: 'flex'
32
+ }
33
+ },
34
+ current: {
35
+ color: _colors.BLUE,
36
+ padding: 10
37
+ },
38
+ menu: {
39
+ position: 'absolute',
40
+ display: 'none',
41
+ flexDirection: 'column-reverse',
42
+ width: 200,
43
+ bottom: 82,
44
+ left: 120,
45
+ boxShadow: '0 0 3px rgba(0, 0, 0, 0.5)',
46
+ backgroundColor: '#ffffff',
47
+ color: _colors.GREY,
48
+ ':after': {
49
+ position: 'absolute',
50
+ bottom: -10,
51
+ height: 10,
52
+ width: 10,
53
+ marginRight: -5,
54
+ right: '50%',
55
+ border: '5px solid transparent',
56
+ borderTopColor: _colors.GREY,
57
+ boxSizing: 'border-box',
58
+ content: '""'
59
+ }
60
+ },
61
+ create: {
62
+ color: '#00b3df',
63
+ fontSize: 12,
64
+ fontWeight: 700,
65
+ display: 'inline-block',
66
+ margin: 'auto'
67
+ },
68
+ button: {
69
+ textAlign: 'center',
70
+ padding: 10,
71
+ borderTop: '1px solid #d8d8d8',
72
+ cursor: 'pointer'
73
+ },
74
+ item: {
75
+ padding: 10,
76
+ borderTop: '1px solid #d8d8d8',
77
+ display: 'flex',
78
+ justifyContent: 'space-between',
79
+ alignItems: 'center'
80
+ },
81
+ time: {
82
+ color: '#707070',
83
+ fontSize: 12,
84
+ margin: 0,
85
+ cursor: 'pointer'
86
+ },
87
+ delete: {
88
+ fontSize: 10,
89
+ cursor: 'pointer'
90
+ }
91
+ });
92
+
93
+ var Range = function Range(_ref) {
94
+ var _ref$ranges = _ref.ranges,
95
+ ranges = _ref$ranges === undefined ? [] : _ref$ranges,
96
+ setRange = _ref.setRange,
97
+ _ref$startTime = _ref.startTime,
98
+ startTime = _ref$startTime === undefined ? 0 : _ref$startTime,
99
+ _ref$endTime = _ref.endTime,
100
+ endTime = _ref$endTime === undefined ? 0 : _ref$endTime,
101
+ onClickAddRange = _ref.onClickAddRange,
102
+ onClickDeleteRange = _ref.onClickDeleteRange;
103
+
104
+ var isCurrentSection = ranges.filter(function (range) {
105
+ return range.startTime === startTime && range.endTime === endTime;
106
+ }).length;
107
+ return _react2.default.createElement(
108
+ 'div',
109
+ { className: 'Range_menu ' + (0, _noImportant.css)(styles.range_menu) },
110
+ _react2.default.createElement(
111
+ 'div',
112
+ { className: 'Range_menu_menu ' + (0, _noImportant.css)(styles.menu) },
113
+ _react2.default.createElement(
114
+ 'div',
115
+ { onClick: function onClick() {
116
+ return onClickAddRange ? onClickAddRange({ startTime: startTime, endTime: endTime }) : false;
117
+ }, className: (0, _noImportant.css)(styles.button) },
118
+ _react2.default.createElement(
119
+ 'p',
120
+ { className: (0, _noImportant.css)(styles.create) },
121
+ 'Ajouter une section'
122
+ ),
123
+ _react2.default.createElement(
124
+ 'p',
125
+ { className: (0, _noImportant.css)(styles.time) },
126
+ (0, _utils.timeConvert)(startTime) + ' - ' + (0, _utils.timeConvert)(endTime)
127
+ )
128
+ ),
129
+ ranges.map(function (range) {
130
+ return _react2.default.createElement(
131
+ 'div',
132
+ { key: range.id, className: (0, _noImportant.css)(styles.item) },
133
+ _react2.default.createElement(
134
+ 'p',
135
+ { onClick: function onClick() {
136
+ return setRange({ startTime: range.startTime, endTime: range.endTime });
137
+ }, className: (0, _noImportant.css)(styles.time) },
138
+ (0, _utils.timeConvert)(range.startTime) + ' - ' + (0, _utils.timeConvert)(range.endTime)
139
+ ),
140
+ _react2.default.createElement(_llsIcons2.default, { className: (0, _noImportant.css)(styles.delete), onClick: function onClick() {
141
+ return onClickDeleteRange ? onClickDeleteRange(range.id) : false;
142
+ }, name: 'fermer' })
143
+ );
144
+ })
145
+ ),
146
+ _react2.default.createElement(
147
+ 'div',
148
+ { className: 'Range_menu_current ' + (0, _noImportant.css)(styles.current) },
149
+ _react2.default.createElement(_llsIcons2.default, { style: { color: isCurrentSection ? _colors.BLUE : _colors.GREY }, name: 'btn_audio_player_section', className: (0, _noImportant.css)(styles.range) })
150
+ )
151
+ );
152
+ };
153
+
154
+ exports.default = Range;
package/player/Speed.js CHANGED
@@ -4,93 +4,92 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
 
7
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
+
7
9
  var _react = require('react');
8
10
 
9
11
  var _react2 = _interopRequireDefault(_react);
10
12
 
11
13
  var _aphrodite = require('aphrodite');
12
14
 
15
+ var _colors = require('./styles/colors');
16
+
17
+ var _llsIcons = require('@lls/lls-icons');
18
+
19
+ var _llsIcons2 = _interopRequireDefault(_llsIcons);
20
+
13
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
22
 
23
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
24
+
15
25
  var styles = _aphrodite.StyleSheet.create({
16
- speed_menu_items: {
17
- height: '300%',
18
- position: 'relative',
19
- bottom: '75%',
20
- overflow: 'hidden',
21
- backgroundColor: '#FFF',
22
- border: '1px solid #E5E5E5',
23
- transition: 'all 0.5s cubic-bezier(0.18, 0.89, 0.32, 1.28)',
24
- ':hover': {
25
- bottom: '150%',
26
- overflow: 'visible'
26
+ speed_menu: {
27
+ ':hover .Speed_menu_menu': {
28
+ display: 'flex'
27
29
  }
28
30
  },
29
- speed_menu_item: {
30
- padding: '28px 0px 11px 0px',
31
- textAlign: 'center',
32
- boxSizing: 'border-box'
33
- },
34
- speed_menu_low: {
35
- bottom: '150%'
31
+ current: {
32
+ color: _colors.BLUE
36
33
  },
37
- speed_menu_fast: {
38
- bottom: '1%'
34
+ menu: {
35
+ cursor: 'pointer',
36
+ position: 'absolute',
37
+ display: 'none',
38
+ flexDirection: 'column',
39
+ top: -84,
40
+ boxShadow: '0 0 3px rgba(0, 0, 0, 0.5)',
41
+ backgroundColor: '#ffffff',
42
+ color: _colors.GREY,
43
+ ':after': {
44
+ position: 'absolute',
45
+ bottom: -10,
46
+ height: 10,
47
+ width: 10,
48
+ right: 24,
49
+ border: '5px solid transparent',
50
+ borderTopColor: _colors.GREY,
51
+ boxSizing: 'border-box',
52
+ content: '""'
53
+ }
39
54
  },
40
55
  icon: {
41
- display: 'inline-block'
56
+ fontSize: 28,
57
+ padding: 15
58
+
42
59
  }
43
60
  });
44
61
 
45
- var getMenuPosition = function getMenuPosition(speed) {
46
- switch (speed) {
47
- case 1.25:
48
- return 'speed_menu_fast';
49
- case 0.75:
50
- return 'speed_menu_low';
51
- default:
52
- return '';
53
- }
62
+ var getIcons = function getIcons(onSpeedChange) {
63
+ return {
64
+ 1: _react2.default.createElement(_llsIcons2.default, { key: '1', onClick: function onClick() {
65
+ return onSpeedChange(1);
66
+ }, className: (0, _aphrodite.css)(styles.icon), name: 'btn_audio_player_vitesse_normal' }),
67
+ 1.25: _react2.default.createElement(_llsIcons2.default, { key: '1.25', onClick: function onClick() {
68
+ return onSpeedChange(1.25);
69
+ }, className: (0, _aphrodite.css)(styles.icon), name: 'btn_audio_player_vitesse_speed' }),
70
+ 0.75: _react2.default.createElement(_llsIcons2.default, { key: '0.75', onClick: function onClick() {
71
+ return onSpeedChange(0.75);
72
+ }, className: (0, _aphrodite.css)(styles.icon), name: 'btn_audio_player_vitesse_lent' })
73
+ };
54
74
  };
55
75
 
56
76
  var Speed = function Speed(_ref) {
57
77
  var speed = _ref.speed,
58
78
  onSpeedChange = _ref.onSpeedChange;
79
+
80
+ var icons = getIcons(onSpeedChange);
59
81
  return _react2.default.createElement(
60
82
  'div',
61
- { className: 'Speed_menu_items ' + (0, _aphrodite.css)(styles.speed_menu_items) + ' ' + (0, _aphrodite.css)(styles[getMenuPosition(speed)]) },
62
- _react2.default.createElement(
63
- 'div',
64
- { className: 'Speed_menu_item ' + (0, _aphrodite.css)(styles.speed_menu_item), onClick: function onClick() {
65
- return onSpeedChange(1.25);
66
- } },
67
- _react2.default.createElement(
68
- 'span',
69
- { className: (0, _aphrodite.css)(styles.icon), style: { color: speed === 1.25 ? '#a20025' : '' } },
70
- '+1'
71
- )
72
- ),
83
+ { className: 'Speed_menu ' + (0, _aphrodite.css)(styles.speed_menu) },
73
84
  _react2.default.createElement(
74
85
  'div',
75
- { className: 'Speed_menu_item ' + (0, _aphrodite.css)(styles.speed_menu_item), onClick: function onClick() {
76
- return onSpeedChange(1);
77
- } },
78
- _react2.default.createElement(
79
- 'span',
80
- { className: (0, _aphrodite.css)(styles.icon), style: { color: speed === 1 ? '#a20025' : '' } },
81
- '0'
82
- )
86
+ { className: 'Speed_menu_menu ' + (0, _aphrodite.css)(styles.menu) },
87
+ Object.values(_extends({}, icons, _defineProperty({}, speed, null)))
83
88
  ),
84
89
  _react2.default.createElement(
85
90
  'div',
86
- { className: 'Speed_menu_item ' + (0, _aphrodite.css)(styles.speed_menu_item), onClick: function onClick() {
87
- return onSpeedChange(0.75);
88
- } },
89
- _react2.default.createElement(
90
- 'span',
91
- { className: (0, _aphrodite.css)(styles.icon), style: { color: speed === 0.75 ? '#a20025' : '' } },
92
- '-1'
93
- )
91
+ { className: 'Speed_menu_current ' + (0, _aphrodite.css)(styles.current) },
92
+ icons[speed]
94
93
  )
95
94
  );
96
95
  };
package/player/index.js CHANGED
@@ -26,6 +26,10 @@ var _reactInputRange2 = _interopRequireDefault(_reactInputRange);
26
26
 
27
27
  var _utils = require('./utils');
28
28
 
29
+ var _llsIcons = require('@lls/lls-icons');
30
+
31
+ var _llsIcons2 = _interopRequireDefault(_llsIcons);
32
+
29
33
  var _volumeClassNames = require('./styles/volumeClassNames');
30
34
 
31
35
  var _volumeClassNames2 = _interopRequireDefault(_volumeClassNames);
@@ -38,10 +42,20 @@ var _fallbackTimelineClassNames = require('./styles/fallbackTimelineClassNames')
38
42
 
39
43
  var _fallbackTimelineClassNames2 = _interopRequireDefault(_fallbackTimelineClassNames);
40
44
 
45
+ var _fallbackRangelineClassNames = require('./styles/fallbackRangelineClassNames');
46
+
47
+ var _fallbackRangelineClassNames2 = _interopRequireDefault(_fallbackRangelineClassNames);
48
+
49
+ var _timeLineBottom = require('./styles/timeLineBottom');
50
+
51
+ var _timeLineBottom2 = _interopRequireDefault(_timeLineBottom);
52
+
41
53
  var _styles = require('./styles/styles');
42
54
 
43
55
  var _styles2 = _interopRequireDefault(_styles);
44
56
 
57
+ var _colors = require('./styles/colors');
58
+
45
59
  var _Audio = require('./Audio');
46
60
 
47
61
  var _Audio2 = _interopRequireDefault(_Audio);
@@ -58,6 +72,10 @@ var _Loop = require('./Loop');
58
72
 
59
73
  var _Loop2 = _interopRequireDefault(_Loop);
60
74
 
75
+ var _Range = require('./Range');
76
+
77
+ var _Range2 = _interopRequireDefault(_Range);
78
+
61
79
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
62
80
 
63
81
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -84,19 +102,10 @@ var Player = function (_Component) {
84
102
  return _this.refs.audio.setRange(range);
85
103
  };
86
104
 
87
- _this.toggleVisible = function () {
88
- var visible = _this.state.visible;
89
-
90
- _this.setState({
91
- visible: !visible
92
- });
93
- };
94
-
95
105
  _this.state = {
96
106
  waveform: false,
97
107
  loading: true,
98
- containerWidth: 0,
99
- visible: true
108
+ containerWidth: 0
100
109
  };
101
110
  _this.setContainerWidth = (0, _utils.debounce)(_this.setContainerWidth.bind(_this), 500);
102
111
  _this.onKeyPress = _this.onKeyPress.bind(_this);
@@ -122,7 +131,7 @@ var Player = function (_Component) {
122
131
  }, {
123
132
  key: 'componentWillReceiveProps',
124
133
  value: function componentWillReceiveProps(newProps) {
125
- if (newProps.src !== this.props.src || newProps.visible !== this.props.visible) {
134
+ if (newProps.src !== this.props.src) {
126
135
  this.initialize(newProps);
127
136
  }
128
137
  }
@@ -137,7 +146,7 @@ var Player = function (_Component) {
137
146
  value: function setContainerWidth() {
138
147
  var container = this.refs.container;
139
148
 
140
- var containerWidth = container.offsetWidth - 60;
149
+ var containerWidth = container.offsetWidth;
141
150
  this.setState({ containerWidth: containerWidth });
142
151
  }
143
152
  }, {
@@ -158,8 +167,7 @@ var Player = function (_Component) {
158
167
  (0, _audio.getWaveform)(src).then(function (waveform) {
159
168
  _this3.setState({
160
169
  waveform: waveform,
161
- loading: false,
162
- visible: visible
170
+ loading: false
163
171
  });
164
172
  });
165
173
  }
@@ -170,7 +178,18 @@ var Player = function (_Component) {
170
178
 
171
179
  var _props = this.props,
172
180
  src = _props.src,
173
- className = _props.className;
181
+ visible = _props.visible,
182
+ className = _props.className,
183
+ _props$onClose = _props.onClose,
184
+ onClose = _props$onClose === undefined ? function () {} : _props$onClose,
185
+ _props$ranges = _props.ranges,
186
+ ranges = _props$ranges === undefined ? [] : _props$ranges,
187
+ _props$displayRange = _props.displayRange,
188
+ displayRange = _props$displayRange === undefined ? false : _props$displayRange,
189
+ _props$onClickAddRang = _props.onClickAddRange,
190
+ onClickAddRange = _props$onClickAddRang === undefined ? false : _props$onClickAddRang,
191
+ _props$onClickDeleteR = _props.onClickDeleteRange,
192
+ onClickDeleteRange = _props$onClickDeleteR === undefined ? false : _props$onClickDeleteR;
174
193
  var _state = this.state,
175
194
  loading = _state.loading,
176
195
  duration = _state.duration,
@@ -180,13 +199,13 @@ var Player = function (_Component) {
180
199
  containerWidth = _state.containerWidth,
181
200
  speed = _state.speed,
182
201
  _state$currentRange = _state.currentRange,
183
- currentRange = _state$currentRange === undefined ? {} : _state$currentRange,
184
- visible = _state.visible;
202
+ currentRange = _state$currentRange === undefined ? {} : _state$currentRange;
185
203
  var _currentRange$startTi = currentRange.startTime,
186
204
  startTime = _currentRange$startTi === undefined ? 0 : _currentRange$startTi,
187
205
  _currentRange$endTime = currentRange.endTime,
188
206
  endTime = _currentRange$endTime === undefined ? 0 : _currentRange$endTime;
189
207
 
208
+ console.log(endTime);
190
209
  return _react2.default.createElement(
191
210
  'div',
192
211
  { className: 'Audio_player ' + (0, _noImportant.css)(styles.player) + ' ' + className + ' ' + (visible ? '' : (0, _noImportant.css)(styles.hidden)) },
@@ -202,15 +221,9 @@ var Player = function (_Component) {
202
221
  }, ref: 'audio', src: src }),
203
222
  _react2.default.createElement(
204
223
  'div',
205
- { className: (0, _noImportant.css)(styles.timeline), ref: 'container' },
206
- _react2.default.createElement(_CustomWave2.default, { currentTime: currentTime, width: containerWidth, height: 50, range: { startTime: startTime, endTime: endTime }, isLoading: loading, waveform: waveform }),
207
- _react2.default.createElement(_reactInputRange2.default, { classNames: _fallbackTimelineClassNames2.default, formatLabel: _utils.timeConvert, maxValue: duration || 1, minValue: 0, onChange: function onChange(c, _ref) {
208
- var min = _ref.min,
209
- max = _ref.max;
210
- return _this4.refs.audio.setRange({ startTime: min, endTime: max });
211
- }, value: { min: startTime, max: endTime } }),
212
- _react2.default.createElement(_reactInputRange2.default, { classNames: _timelineClassNames2.default, formatLabel: _utils.timeConvert, maxValue: duration || 1, minValue: 0, value: this.state.currentTime, onChange: function onChange(c, v) {
213
- return _this4.refs.audio.setCurrentTime(v);
224
+ { className: 'Speed_menu ' + (0, _noImportant.css)(styles.speed_menu) },
225
+ _react2.default.createElement(_Speed2.default, { speed: speed, onSpeedChange: function onSpeedChange(speed) {
226
+ return _this4.refs.audio.setSpeed(speed);
214
227
  } })
215
228
  ),
216
229
  _react2.default.createElement(
@@ -222,10 +235,82 @@ var Player = function (_Component) {
222
235
  ),
223
236
  _react2.default.createElement(
224
237
  'div',
225
- { className: 'Speed_menu ' + (0, _noImportant.css)(styles.speed_menu) },
226
- _react2.default.createElement(_Speed2.default, { speed: speed, onSpeedChange: function onSpeedChange(speed) {
227
- return _this4.refs.audio.setSpeed(speed);
228
- } })
238
+ null,
239
+ displayRange ? _react2.default.createElement(_Range2.default, { setRange: function setRange(range) {
240
+ return _this4.setRange(range);
241
+ }, onClickAddRange: onClickAddRange, onClickDeleteRange: onClickDeleteRange, ranges: ranges, startTime: startTime, endTime: endTime }) : null
242
+ ),
243
+ _react2.default.createElement(
244
+ 'div',
245
+ { className: (0, _noImportant.css)(styles.time) },
246
+ (0, _utils.timeConvert)(currentTime)
247
+ ),
248
+ _react2.default.createElement(
249
+ 'div',
250
+ { className: (0, _noImportant.css)(styles.timeline), ref: 'container' },
251
+ _react2.default.createElement(
252
+ 'div',
253
+ null,
254
+ _react2.default.createElement(_CustomWave2.default, { currentTime: currentTime, width: containerWidth, height: 60, range: { startTime: startTime, endTime: endTime }, isLoading: loading, waveform: waveform }),
255
+ _react2.default.createElement(_reactInputRange2.default, {
256
+ classNames: _fallbackTimelineClassNames2.default,
257
+ formatLabel: _utils.timeConvert,
258
+ maxValue: Math.round(duration) || 1,
259
+ minValue: 0,
260
+ onChange: function onChange(c, _ref) {
261
+ var min = _ref.min,
262
+ max = _ref.max;
263
+ return _this4.refs.audio.setRange({ startTime: min, endTime: max });
264
+ },
265
+ value: { min: startTime, max: endTime }
266
+ }),
267
+ _react2.default.createElement(_reactInputRange2.default, {
268
+ classNames: _timelineClassNames2.default,
269
+ formatLabel: _utils.timeConvert,
270
+ maxValue: duration || 1,
271
+ minValue: 0,
272
+ value: this.state.currentTime, onChange: function onChange(c, v) {
273
+ return _this4.refs.audio.setCurrentTime(v);
274
+ }
275
+ })
276
+ ),
277
+ _react2.default.createElement(
278
+ 'div',
279
+ { className: (0, _noImportant.css)(styles.fallback) },
280
+ _react2.default.createElement(_reactInputRange2.default, {
281
+ classNames: _fallbackRangelineClassNames2.default,
282
+ formatLabel: _utils.timeConvert,
283
+ maxValue: Math.round(duration) || 1,
284
+ minValue: 0,
285
+ onChange: function onChange(c, _ref2) {
286
+ var min = _ref2.min,
287
+ max = _ref2.max;
288
+ return _this4.refs.audio.setRange({ startTime: min, endTime: max });
289
+ },
290
+ value: { min: startTime, max: endTime }
291
+ }),
292
+ _react2.default.createElement(_reactInputRange2.default, {
293
+ classNames: _timeLineBottom2.default,
294
+ formatLabel: _utils.timeConvert,
295
+ maxValue: duration || 1,
296
+ minValue: 0, value: this.state.currentTime,
297
+ onChange: function onChange(c, v) {
298
+ return _this4.refs.audio.setCurrentTime(v);
299
+ }
300
+ })
301
+ )
302
+ ),
303
+ _react2.default.createElement(
304
+ 'div',
305
+ { className: (0, _noImportant.css)(styles.time) },
306
+ (0, _utils.timeConvert)(duration - currentTime)
307
+ ),
308
+ _react2.default.createElement(
309
+ 'div',
310
+ { className: (0, _noImportant.css)(styles.iconAudio), onClick: function onClick() {
311
+ return _this4.refs.audio.setVolume(0);
312
+ } },
313
+ _react2.default.createElement(_llsIcons2.default, { style: { color: this.state.volume === 0 ? _colors.GREY : _colors.BLUE }, name: 'icon_audio_playervolume' })
229
314
  ),
230
315
  _react2.default.createElement(
231
316
  'div',
@@ -234,9 +319,9 @@ var Player = function (_Component) {
234
319
  return _this4.refs.audio.setVolume(v);
235
320
  } })
236
321
  ),
237
- _react2.default.createElement('div', { className: 'Close ' + (0, _noImportant.css)(styles.close), onClick: function onClick() {
238
- return _this4.toggleVisible();
239
- } })
322
+ _react2.default.createElement(_llsIcons2.default, { className: 'Close ' + (0, _noImportant.css)(styles.close), onClick: function onClick() {
323
+ return onClose();
324
+ }, name: 'fermer' })
240
325
  );
241
326
  }
242
327
  }]);
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var BLUE = exports.BLUE = '#00b3df';
7
+
8
+ var GREY = exports.GREY = '#999999';
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _noImportant = require('aphrodite/no-important');
8
+
9
+ var _timelineClassNames = require('./timelineClassNames');
10
+
11
+ var _timelineClassNames2 = _interopRequireDefault(_timelineClassNames);
12
+
13
+ var _utils = require('../utils');
14
+
15
+ var _colors = require('./colors');
16
+
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+
19
+ var styles = _noImportant.StyleSheet.create({
20
+ component: {
21
+ position: 'absolute',
22
+ width: '100%',
23
+ height: '100%'
24
+ },
25
+ trackContainer: {
26
+ height: '100%'
27
+ },
28
+ labelContainer: {
29
+ display: 'none'
30
+ },
31
+ range: {
32
+ position: 'absolute',
33
+ width: 'calc(100% - 60px)'
34
+ },
35
+
36
+ slider: {
37
+ background: 'transparent',
38
+ borderLeft: '3px solid ' + _colors.GREY,
39
+ zIndex: 10,
40
+ width: 10,
41
+ borderRadius: 0,
42
+ height: 12,
43
+ margin: 0,
44
+ ':active': { transform: 'scale(1.1)' },
45
+ ':after': {
46
+ position: 'absolute',
47
+ bottom: 1,
48
+ height: 10,
49
+ width: 10,
50
+ marginRight: -5,
51
+ right: '50%',
52
+ border: '5px solid transparent',
53
+ borderLeftColor: _colors.GREY,
54
+ boxSizing: 'border-box',
55
+ content: '""'
56
+ },
57
+ ':before': {
58
+ position: 'absolute',
59
+ bottom: 1,
60
+ height: 10,
61
+ width: 10,
62
+ marginRight: 8,
63
+ right: '50%',
64
+ border: '5px solid transparent',
65
+ borderRightColor: _colors.GREY,
66
+ boxSizing: 'border-box',
67
+ content: '""'
68
+ }
69
+ }
70
+ });
71
+
72
+ exports.default = (0, _utils.concatStyle)(_timelineClassNames2.default, styles);
@@ -12,16 +12,24 @@ var _timelineClassNames2 = _interopRequireDefault(_timelineClassNames);
12
12
 
13
13
  var _utils = require('../utils');
14
14
 
15
+ var _colors = require('./colors');
16
+
15
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
18
 
17
19
  var styles = _noImportant.StyleSheet.create({
20
+ component: {
21
+ position: 'absolute',
22
+ width: '100%',
23
+ height: '100%',
24
+ top: 0
25
+ },
18
26
  trackContainer: {
19
- backgroundColor: '#e51400',
20
- borderRadius: 0,
21
- height: 2
27
+ background: 'transparent',
28
+ height: '100%',
29
+ top: 0
22
30
  },
23
31
  labelContainer: {
24
- top: -44
32
+ display: 'none'
25
33
  },
26
34
  range: {
27
35
  marginTop: -2,
@@ -29,12 +37,12 @@ var styles = _noImportant.StyleSheet.create({
29
37
  width: 'calc(100% - 60px)'
30
38
  },
31
39
  slider: {
32
- background: '#888',
33
- width: 2,
40
+ background: 'transparent',
41
+ borderLeft: '3px solid ' + _colors.GREY,
42
+ zIndex: 10,
43
+ width: 10,
34
44
  borderRadius: 0,
35
- height: 53,
36
- top: -51,
37
- border: 'none',
45
+ height: 57,
38
46
  margin: 0,
39
47
  ':active': { transform: 'scale(1.1)' }
40
48
  }
@@ -4,72 +4,71 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
 
7
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
7
+ var _play_and_stop;
8
8
 
9
- var styleDisplayInlineBlock = {
10
- display: 'inline-block',
11
- verticalAlign: 'top'
12
- };
9
+ var _colors = require('./colors');
10
+
11
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
12
 
14
13
  exports.default = {
15
- volume: {
16
- display: 'inline-block',
17
- verticalAlign: 'top',
18
- width: 200,
19
- height: '300%',
20
- padding: '32px 30px 0px 30px',
21
- boxSizing: 'border-box'
22
- },
23
14
  player: {
24
15
  position: 'fixed',
25
- boxShadow: '0px 5px 10px 5px rgba(0, 0, 0, 0.2)',
16
+ display: 'flex',
17
+ alignItems: 'center',
18
+ justifyContent: 'center',
19
+ boxShadow: '0 0 7px rgba(0, 0, 0, 0.32)',
26
20
  backgroundColor: '#fff',
27
21
  bottom: 0,
28
- left: 0,
29
- right: 0,
30
- height: 75,
22
+ height: 120,
31
23
  zIndex: 999999,
32
- width: '100%'
24
+ width: '90%',
25
+ marginLeft: '50%',
26
+ transform: 'translate(-50%, 0)'
27
+ },
28
+ volume: {
29
+ width: 100,
30
+ cursor: 'pointer'
31
+ },
32
+ iconAudio: {
33
+ color: _colors.BLUE,
34
+ marginRight: 20,
35
+ fontSize: 21
33
36
  },
34
- play_and_stop: _extends({}, styleDisplayInlineBlock, {
37
+ time: {
38
+ color: _colors.GREY,
39
+ fontSize: 12,
40
+ alignSelf: 'flex-end',
41
+ marginBottom: 7
42
+ },
43
+ play_and_stop: (_play_and_stop = {
35
44
  height: '100%',
36
- width: 75,
37
- borderRight: '1px solid #e5e5e5',
38
- color: '#6d6d6d',
39
- paddingTop: 28,
40
- textAlign: 'center',
41
- boxSizing: 'border-box'
42
- }),
45
+ width: 40
46
+ }, _defineProperty(_play_and_stop, 'height', 40), _defineProperty(_play_and_stop, 'color', '#6d6d6d'), _defineProperty(_play_and_stop, 'textAlign', 'center'), _defineProperty(_play_and_stop, 'boxSizing', 'border-box'), _defineProperty(_play_and_stop, 'backgroundColor', _colors.BLUE), _defineProperty(_play_and_stop, 'borderRadius', '50%'), _defineProperty(_play_and_stop, 'display', 'flex'), _defineProperty(_play_and_stop, 'alignItems', 'center'), _defineProperty(_play_and_stop, 'justifyContent', 'center'), _defineProperty(_play_and_stop, 'marginRight', 10), _defineProperty(_play_and_stop, 'cursor', 'pointer'), _play_and_stop),
47
+ fallback: {
48
+ marginTop: 5,
49
+ position: 'relative'
50
+ },
43
51
  timeline: {
44
- display: 'inline-block',
45
- width: 'calc(100% - 438px)',
46
- borderRight: '1px solid #e5e5e5',
52
+ width: 'calc(100% - 520px)',
47
53
  height: 60,
48
- padding: '12px 30px 0px 30px',
49
- position: 'relative'
54
+ margin: '0px 20px',
55
+ position: 'relative',
56
+ display: 'flex',
57
+ flexDirection: 'column'
50
58
  },
51
- repeat_menu: _extends({}, styleDisplayInlineBlock, {
52
- padding: '25px 13px',
53
- borderRight: '1px solid #e5e5e5'
54
- }),
55
- speed_menu: _extends({}, styleDisplayInlineBlock, {
56
- height: '100%',
57
- width: 50,
58
- borderRight: '1px solid #e5e5e5',
59
- overflow: 'hidden',
60
- ':hover': {
61
- overflow: 'visible'
62
- }
63
- }),
59
+ repeat_menu: {
60
+ margin: 10,
61
+ fontSize: 22,
62
+ cursor: 'pointer'
63
+ },
64
+ speed_menu: {},
64
65
  close: {
65
66
  cursor: 'pointer',
66
67
  position: 'absolute',
67
- top: 1,
68
- right: 3,
69
- ':after': {
70
- content: "'✖'",
71
- color: '#e5e5e5'
72
- }
68
+ top: 10,
69
+ right: 10,
70
+ color: _colors.GREY,
71
+ fontSize: 16
73
72
  },
74
73
  hidden: {
75
74
  display: 'none'
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _noImportant = require('aphrodite/no-important');
8
+
9
+ var _sliderDefaultClassNames = require('./sliderDefaultClassNames');
10
+
11
+ var _sliderDefaultClassNames2 = _interopRequireDefault(_sliderDefaultClassNames);
12
+
13
+ var _utils = require('../utils');
14
+
15
+ var _colors = require('./colors');
16
+
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+
19
+ var styles = _noImportant.StyleSheet.create({
20
+ slider: {
21
+ marginTop: -9,
22
+ width: 12,
23
+ height: 12,
24
+ transition: 'none',
25
+ boxShadow: '0 0 3px rgba(0, 0, 0, 0.57)',
26
+ backgroundColor: '#ffffff',
27
+ borderColor: 'transparent',
28
+ ':active': { transform: 'scale(1.1)' }
29
+ },
30
+ trackActive: {
31
+ height: 6,
32
+ transition: 'none',
33
+ backgroundColor: _colors.BLUE
34
+ },
35
+ trackActiveContainer: {
36
+ height: 6,
37
+ transition: 'none'
38
+ },
39
+ trackContainer: {
40
+ height: 6
41
+ },
42
+ sliderContainer: {
43
+ transition: 'none'
44
+ },
45
+ labelContainer: {
46
+ display: 'none'
47
+ }
48
+ });
49
+
50
+ exports.default = (0, _utils.concatStyle)(_sliderDefaultClassNames2.default, styles);
@@ -13,6 +13,8 @@ var _noImportant = require('aphrodite/no-important');
13
13
 
14
14
  var _utils = require('../utils');
15
15
 
16
+ var _colors = require('./colors');
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
18
20
  var playerAnimation = {
@@ -21,9 +23,14 @@ var playerAnimation = {
21
23
  };
22
24
 
23
25
  var styles = exports.styles = _noImportant.StyleSheet.create({
26
+ component: {
27
+ position: 'absolute',
28
+ width: '100%',
29
+ height: '100%',
30
+ top: 0
31
+ },
24
32
  labelContainer: {
25
- top: -60,
26
- fontSize: 11
33
+ display: 'none'
27
34
  },
28
35
  labelMin: {
29
36
  display: 'none'
@@ -40,15 +47,16 @@ var styles = exports.styles = _noImportant.StyleSheet.create({
40
47
  animationName: playerAnimation,
41
48
  animationDuration: '1s'
42
49
  },
43
- label: {
44
- top: 13
50
+ trackContainer: {
51
+ background: 'transparent',
52
+ height: '100%',
53
+ top: 0
45
54
  },
46
55
  slider: {
47
- background: '#e51400',
56
+ background: _colors.BLUE,
48
57
  width: 2,
49
58
  borderRadius: 0,
50
- height: 53,
51
- top: -70,
59
+ height: 58,
52
60
  border: 'none',
53
61
  margin: 0,
54
62
  ':active': { transform: 'scale(1.1)' }
@@ -12,6 +12,8 @@ var _sliderDefaultClassNames2 = _interopRequireDefault(_sliderDefaultClassNames)
12
12
 
13
13
  var _utils = require('../utils');
14
14
 
15
+ var _colors = require('./colors');
16
+
15
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
18
 
17
19
  var styles = _noImportant.StyleSheet.create({
@@ -20,24 +22,25 @@ var styles = _noImportant.StyleSheet.create({
20
22
  width: 12,
21
23
  height: 12,
22
24
  transition: 'none',
23
- backgroundColor: '#a20025',
24
- borderColor: '#a20025',
25
+ boxShadow: '0 0 3px rgba(0, 0, 0, 0.57)',
26
+ backgroundColor: '#ffffff',
27
+ borderColor: 'transparent',
25
28
  ':active': { transform: 'scale(1.1)' }
26
29
  },
27
30
  trackActive: {
28
- height: 3,
31
+ height: 6,
29
32
  transition: 'none',
30
- backgroundColor: '#a20025'
33
+ backgroundColor: _colors.BLUE
31
34
  },
32
35
  trackActiveContainer: {
33
- height: 3,
36
+ height: 6,
34
37
  transition: 'none'
35
38
  },
36
39
  trackContainer: {
37
- height: 3
40
+ height: 6
38
41
  },
39
- sliderContainer: {
40
- transition: 'none'
42
+ labelContainer: {
43
+ display: 'none'
41
44
  }
42
45
  });
43
46
 
package/stories/index.js CHANGED
@@ -10,6 +10,10 @@ var _player = require('./player');
10
10
 
11
11
  var _player2 = _interopRequireDefault(_player);
12
12
 
13
+ var _playerRange = require('./playerRange');
14
+
15
+ var _playerRange2 = _interopRequireDefault(_playerRange);
16
+
13
17
  var _recorder = require('./recorder');
14
18
 
15
19
  var _recorder2 = _interopRequireDefault(_recorder);
@@ -18,6 +22,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
18
22
 
19
23
  (0, _storybook.storiesOf)('Player', module).add('Custom waveform', function () {
20
24
  return _react2.default.createElement(_player2.default, null);
25
+ }).add('Ranges', function () {
26
+ return _react2.default.createElement(_playerRange2.default, null);
21
27
  });
22
28
  //import PlayerCustom from './playerCustom'
23
29
 
package/stories/player.js CHANGED
@@ -41,6 +41,8 @@ var PlayerExample = function (_Component) {
41
41
  value: function render() {
42
42
  var _this2 = this;
43
43
 
44
+ var ranges = this.props.ranges;
45
+
44
46
  return _react2.default.createElement(
45
47
  'div',
46
48
  null,
@@ -62,7 +64,7 @@ var PlayerExample = function (_Component) {
62
64
  'http://lls-media-public.s3.amazonaws.com/upload/LeLivreScolaire/p15vcjbl4lvpl9l7g8ov8ammh1.mp3'
63
65
  )
64
66
  ),
65
- _react2.default.createElement(_player2.default, { src: this.state.url, visible: false })
67
+ _react2.default.createElement(_player2.default, { src: this.state.url, ranges: ranges, visible: true })
66
68
  );
67
69
  }
68
70
  }]);
@@ -0,0 +1,77 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
+
9
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
10
+
11
+ var _react = require('react');
12
+
13
+ var _react2 = _interopRequireDefault(_react);
14
+
15
+ var _player = require('../player');
16
+
17
+ var _player2 = _interopRequireDefault(_player);
18
+
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+
21
+ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
22
+
23
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
24
+
25
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
26
+
27
+ function _inherits(subClass, superClass) { if (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 } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
28
+
29
+ var PlayerExample = function (_Component) {
30
+ _inherits(PlayerExample, _Component);
31
+
32
+ function PlayerExample(props) {
33
+ _classCallCheck(this, PlayerExample);
34
+
35
+ var _this = _possibleConstructorReturn(this, (PlayerExample.__proto__ || Object.getPrototypeOf(PlayerExample)).call(this, props));
36
+
37
+ _this.state = {
38
+ url: 'http://lls-media-public.s3.amazonaws.com/upload/LeLivreScolaire/p15vcjbl4lvpl9l7g8ov8ammh1.mp3',
39
+ ranges: [{ id: 0, startTime: 0, endTime: 30 }, { id: 1, startTime: 20, endTime: 50 }]
40
+ };
41
+ return _this;
42
+ }
43
+
44
+ _createClass(PlayerExample, [{
45
+ key: 'render',
46
+ value: function render() {
47
+ var _this2 = this;
48
+
49
+ var _state = this.state,
50
+ ranges = _state.ranges,
51
+ url = _state.url;
52
+
53
+ return _react2.default.createElement(
54
+ 'div',
55
+ null,
56
+ _react2.default.createElement(_player2.default, {
57
+ src: url,
58
+ displayRange: true,
59
+ onClickAddRange: function onClickAddRange(r) {
60
+ return _this2.setState({ ranges: [].concat(_toConsumableArray(ranges), [_extends({ id: ranges.length }, r)]) });
61
+ },
62
+ onClickDeleteRange: function onClickDeleteRange(id) {
63
+ return _this2.setState({ ranges: ranges.filter(function (r) {
64
+ return r.id != id;
65
+ }) });
66
+ },
67
+ ranges: ranges,
68
+ visible: true
69
+ })
70
+ );
71
+ }
72
+ }]);
73
+
74
+ return PlayerExample;
75
+ }(_react.Component);
76
+
77
+ exports.default = PlayerExample;