@lls/lls-audio 0.0.21 → 0.0.23

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.21",
3
+ "version": "0.0.23",
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"); } }
@@ -128,7 +146,7 @@ var Player = function (_Component) {
128
146
  value: function setContainerWidth() {
129
147
  var container = this.refs.container;
130
148
 
131
- var containerWidth = container.offsetWidth - 60;
149
+ var containerWidth = container.offsetWidth;
132
150
  this.setState({ containerWidth: containerWidth });
133
151
  }
134
152
  }, {
@@ -159,11 +177,20 @@ var Player = function (_Component) {
159
177
  var _this4 = this;
160
178
 
161
179
  var _props = this.props,
180
+ _props$autoPlay = _props.autoPlay,
181
+ autoPlay = _props$autoPlay === undefined ? false : _props$autoPlay,
162
182
  src = _props.src,
163
- visible = _props.visible,
164
183
  className = _props.className,
165
184
  _props$onClose = _props.onClose,
166
- onClose = _props$onClose === undefined ? function () {} : _props$onClose;
185
+ onClose = _props$onClose === undefined ? function () {} : _props$onClose,
186
+ _props$ranges = _props.ranges,
187
+ ranges = _props$ranges === undefined ? [] : _props$ranges,
188
+ _props$displayRange = _props.displayRange,
189
+ displayRange = _props$displayRange === undefined ? false : _props$displayRange,
190
+ _props$onClickAddRang = _props.onClickAddRange,
191
+ onClickAddRange = _props$onClickAddRang === undefined ? false : _props$onClickAddRang,
192
+ _props$onClickDeleteR = _props.onClickDeleteRange,
193
+ onClickDeleteRange = _props$onClickDeleteR === undefined ? false : _props$onClickDeleteR;
167
194
  var _state = this.state,
168
195
  loading = _state.loading,
169
196
  duration = _state.duration,
@@ -179,9 +206,10 @@ var Player = function (_Component) {
179
206
  _currentRange$endTime = currentRange.endTime,
180
207
  endTime = _currentRange$endTime === undefined ? 0 : _currentRange$endTime;
181
208
 
209
+
182
210
  return _react2.default.createElement(
183
211
  'div',
184
- { className: 'Audio_player ' + (0, _noImportant.css)(styles.player) + ' ' + className + ' ' + (visible ? '' : (0, _noImportant.css)(styles.hidden)) },
212
+ { className: 'Audio_player ' + (0, _noImportant.css)(styles.player) + ' ' + className },
185
213
  _react2.default.createElement(
186
214
  'div',
187
215
  { className: (0, _noImportant.css)(styles.play_and_stop), onClick: function onClick() {
@@ -189,20 +217,14 @@ var Player = function (_Component) {
189
217
  } },
190
218
  _react2.default.createElement(_Play2.default, { pause: !play })
191
219
  ),
192
- _react2.default.createElement(_Audio2.default, { onChange: function onChange(state) {
220
+ _react2.default.createElement(_Audio2.default, { autoPlay: autoPlay, onChange: function onChange(state) {
193
221
  return _this4.setState(_extends({}, state));
194
222
  }, ref: 'audio', src: src }),
195
223
  _react2.default.createElement(
196
224
  'div',
197
- { className: (0, _noImportant.css)(styles.timeline), ref: 'container' },
198
- _react2.default.createElement(_CustomWave2.default, { currentTime: currentTime, width: containerWidth, height: 50, range: { startTime: startTime, endTime: endTime }, isLoading: loading, waveform: waveform }),
199
- _react2.default.createElement(_reactInputRange2.default, { classNames: _fallbackTimelineClassNames2.default, formatLabel: _utils.timeConvert, maxValue: duration || 1, minValue: 0, onChange: function onChange(c, _ref) {
200
- var min = _ref.min,
201
- max = _ref.max;
202
- return _this4.refs.audio.setRange({ startTime: min, endTime: max });
203
- }, value: { min: startTime, max: endTime } }),
204
- _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) {
205
- return _this4.refs.audio.setCurrentTime(v);
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);
206
228
  } })
207
229
  ),
208
230
  _react2.default.createElement(
@@ -214,10 +236,82 @@ var Player = function (_Component) {
214
236
  ),
215
237
  _react2.default.createElement(
216
238
  'div',
217
- { className: 'Speed_menu ' + (0, _noImportant.css)(styles.speed_menu) },
218
- _react2.default.createElement(_Speed2.default, { speed: speed, onSpeedChange: function onSpeedChange(speed) {
219
- return _this4.refs.audio.setSpeed(speed);
220
- } })
239
+ null,
240
+ displayRange ? _react2.default.createElement(_Range2.default, { setRange: function setRange(range) {
241
+ return _this4.setRange(range);
242
+ }, onClickAddRange: onClickAddRange, onClickDeleteRange: onClickDeleteRange, ranges: ranges, startTime: startTime, endTime: endTime }) : null
243
+ ),
244
+ _react2.default.createElement(
245
+ 'div',
246
+ { className: (0, _noImportant.css)(styles.time) },
247
+ (0, _utils.timeConvert)(currentTime)
248
+ ),
249
+ _react2.default.createElement(
250
+ 'div',
251
+ { className: (0, _noImportant.css)(styles.timeline), ref: 'container' },
252
+ _react2.default.createElement(
253
+ 'div',
254
+ null,
255
+ _react2.default.createElement(_CustomWave2.default, { currentTime: currentTime, width: containerWidth, height: 60, range: { startTime: startTime, endTime: endTime }, isLoading: loading, waveform: waveform }),
256
+ _react2.default.createElement(_reactInputRange2.default, {
257
+ classNames: _fallbackTimelineClassNames2.default,
258
+ formatLabel: _utils.timeConvert,
259
+ maxValue: Math.round(duration) || 1,
260
+ minValue: 0,
261
+ onChange: function onChange(c, _ref) {
262
+ var min = _ref.min,
263
+ max = _ref.max;
264
+ return _this4.refs.audio.setRange({ startTime: min, endTime: max });
265
+ },
266
+ value: { min: startTime, max: endTime }
267
+ }),
268
+ _react2.default.createElement(_reactInputRange2.default, {
269
+ classNames: _timelineClassNames2.default,
270
+ formatLabel: _utils.timeConvert,
271
+ maxValue: duration || 1,
272
+ minValue: 0,
273
+ value: this.state.currentTime, onChange: function onChange(c, v) {
274
+ return _this4.refs.audio.setCurrentTime(v);
275
+ }
276
+ })
277
+ ),
278
+ _react2.default.createElement(
279
+ 'div',
280
+ { className: (0, _noImportant.css)(styles.fallback) },
281
+ _react2.default.createElement(_reactInputRange2.default, {
282
+ classNames: _fallbackRangelineClassNames2.default,
283
+ formatLabel: _utils.timeConvert,
284
+ maxValue: Math.round(duration) || 1,
285
+ minValue: 0,
286
+ onChange: function onChange(c, _ref2) {
287
+ var min = _ref2.min,
288
+ max = _ref2.max;
289
+ return _this4.refs.audio.setRange({ startTime: min, endTime: max });
290
+ },
291
+ value: { min: startTime, max: endTime }
292
+ }),
293
+ _react2.default.createElement(_reactInputRange2.default, {
294
+ classNames: _timeLineBottom2.default,
295
+ formatLabel: _utils.timeConvert,
296
+ maxValue: duration || 1,
297
+ minValue: 0, value: this.state.currentTime,
298
+ onChange: function onChange(c, v) {
299
+ return _this4.refs.audio.setCurrentTime(v);
300
+ }
301
+ })
302
+ )
303
+ ),
304
+ _react2.default.createElement(
305
+ 'div',
306
+ { className: (0, _noImportant.css)(styles.time) },
307
+ (0, _utils.timeConvert)(duration - currentTime)
308
+ ),
309
+ _react2.default.createElement(
310
+ 'div',
311
+ { className: (0, _noImportant.css)(styles.iconAudio), onClick: function onClick() {
312
+ return _this4.refs.audio.setVolume(0);
313
+ } },
314
+ _react2.default.createElement(_llsIcons2.default, { style: { color: this.state.volume === 0 ? _colors.GREY : _colors.BLUE }, name: 'icon_audio_playervolume' })
221
315
  ),
222
316
  _react2.default.createElement(
223
317
  'div',
@@ -226,9 +320,9 @@ var Player = function (_Component) {
226
320
  return _this4.refs.audio.setVolume(v);
227
321
  } })
228
322
  ),
229
- _react2.default.createElement('div', { className: 'Close ' + (0, _noImportant.css)(styles.close), onClick: function onClick() {
323
+ _react2.default.createElement(_llsIcons2.default, { className: 'Close ' + (0, _noImportant.css)(styles.close), onClick: function onClick() {
230
324
  return onClose();
231
- } })
325
+ }, name: 'fermer' })
232
326
  );
233
327
  }
234
328
  }]);
@@ -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,74 +4,70 @@ 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
36
+ },
37
+ time: {
38
+ color: _colors.GREY,
39
+ fontSize: 12,
40
+ alignSelf: 'flex-end',
41
+ marginBottom: 7
33
42
  },
34
- play_and_stop: _extends({}, styleDisplayInlineBlock, {
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
- }
73
- },
74
- hidden: {
75
- display: 'none'
68
+ top: 10,
69
+ right: 10,
70
+ color: _colors.GREY,
71
+ fontSize: 16
76
72
  }
77
73
  };
@@ -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,10 @@ 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);
27
+ }).add('Autoplay', function () {
28
+ return _react2.default.createElement(_player2.default, { autoPlay: true });
21
29
  });
22
30
  //import PlayerCustom from './playerCustom'
23
31
 
package/stories/player.js CHANGED
@@ -41,6 +41,10 @@ var PlayerExample = function (_Component) {
41
41
  value: function render() {
42
42
  var _this2 = this;
43
43
 
44
+ var _props = this.props,
45
+ ranges = _props.ranges,
46
+ autoPlay = _props.autoPlay;
47
+
44
48
  return _react2.default.createElement(
45
49
  'div',
46
50
  null,
@@ -62,7 +66,7 @@ var PlayerExample = function (_Component) {
62
66
  'http://lls-media-public.s3.amazonaws.com/upload/LeLivreScolaire/p15vcjbl4lvpl9l7g8ov8ammh1.mp3'
63
67
  )
64
68
  ),
65
- _react2.default.createElement(_player2.default, { src: this.state.url, visible: false })
69
+ _react2.default.createElement(_player2.default, { autoPlay: autoPlay, src: this.state.url, ranges: ranges, visible: true })
66
70
  );
67
71
  }
68
72
  }]);
@@ -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;