@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 +2 -1
- package/player/CustomWave.js +6 -4
- package/player/Loop.js +8 -35
- package/player/Play.js +5 -3
- package/player/Range.js +154 -0
- package/player/Speed.js +57 -58
- package/player/index.js +114 -20
- package/player/styles/colors.js +8 -0
- package/player/styles/fallbackRangelineClassNames.js +72 -0
- package/player/styles/fallbackTimelineClassNames.js +17 -9
- package/player/styles/styles.js +49 -53
- package/player/styles/timeLineBottom.js +50 -0
- package/player/styles/timelineClassNames.js +15 -7
- package/player/styles/volumeClassNames.js +11 -8
- package/stories/index.js +8 -0
- package/stories/player.js +5 -1
- package/stories/playerRange.js +77 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lls/lls-audio",
|
|
3
|
-
"version": "0.0.
|
|
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",
|
package/player/CustomWave.js
CHANGED
|
@@ -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 = ['#
|
|
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:
|
|
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'
|
|
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
|
-
|
|
13
|
+
var _colors = require('./styles/colors');
|
|
16
14
|
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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('
|
|
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': '#
|
|
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
|
|
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': '#
|
|
56
|
+
'background-color': '#fff',
|
|
55
57
|
'transition': 'all 0.25s ease'
|
|
56
58
|
}
|
|
57
59
|
|
package/player/Range.js
ADDED
|
@@ -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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
textAlign: 'center',
|
|
32
|
-
boxSizing: 'border-box'
|
|
33
|
-
},
|
|
34
|
-
speed_menu_low: {
|
|
35
|
-
bottom: '150%'
|
|
31
|
+
current: {
|
|
32
|
+
color: _colors.BLUE
|
|
36
33
|
},
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
56
|
+
fontSize: 28,
|
|
57
|
+
padding: 15
|
|
58
|
+
|
|
42
59
|
}
|
|
43
60
|
});
|
|
44
61
|
|
|
45
|
-
var
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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: '
|
|
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: '
|
|
76
|
-
|
|
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: '
|
|
87
|
-
|
|
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
|
|
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
|
|
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.
|
|
198
|
-
_react2.default.createElement(
|
|
199
|
-
|
|
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
|
-
|
|
218
|
-
_react2.default.createElement(
|
|
219
|
-
return _this4.
|
|
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(
|
|
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,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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
27
|
+
background: 'transparent',
|
|
28
|
+
height: '100%',
|
|
29
|
+
top: 0
|
|
22
30
|
},
|
|
23
31
|
labelContainer: {
|
|
24
|
-
|
|
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: '
|
|
33
|
-
|
|
40
|
+
background: 'transparent',
|
|
41
|
+
borderLeft: '3px solid ' + _colors.GREY,
|
|
42
|
+
zIndex: 10,
|
|
43
|
+
width: 10,
|
|
34
44
|
borderRadius: 0,
|
|
35
|
-
height:
|
|
36
|
-
top: -51,
|
|
37
|
-
border: 'none',
|
|
45
|
+
height: 57,
|
|
38
46
|
margin: 0,
|
|
39
47
|
':active': { transform: 'scale(1.1)' }
|
|
40
48
|
}
|
package/player/styles/styles.js
CHANGED
|
@@ -4,74 +4,70 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _play_and_stop;
|
|
8
8
|
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
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
|
-
|
|
29
|
-
right: 0,
|
|
30
|
-
height: 75,
|
|
22
|
+
height: 120,
|
|
31
23
|
zIndex: 999999,
|
|
32
|
-
width: '
|
|
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:
|
|
43
|
+
play_and_stop: (_play_and_stop = {
|
|
35
44
|
height: '100%',
|
|
36
|
-
width:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
45
|
-
width: 'calc(100% - 438px)',
|
|
46
|
-
borderRight: '1px solid #e5e5e5',
|
|
52
|
+
width: 'calc(100% - 520px)',
|
|
47
53
|
height: 60,
|
|
48
|
-
|
|
49
|
-
position: 'relative'
|
|
54
|
+
margin: '0px 20px',
|
|
55
|
+
position: 'relative',
|
|
56
|
+
display: 'flex',
|
|
57
|
+
flexDirection: 'column'
|
|
50
58
|
},
|
|
51
|
-
repeat_menu:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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:
|
|
68
|
-
right:
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
|
|
50
|
+
trackContainer: {
|
|
51
|
+
background: 'transparent',
|
|
52
|
+
height: '100%',
|
|
53
|
+
top: 0
|
|
45
54
|
},
|
|
46
55
|
slider: {
|
|
47
|
-
background:
|
|
56
|
+
background: _colors.BLUE,
|
|
48
57
|
width: 2,
|
|
49
58
|
borderRadius: 0,
|
|
50
|
-
height:
|
|
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
|
-
|
|
24
|
-
|
|
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:
|
|
31
|
+
height: 6,
|
|
29
32
|
transition: 'none',
|
|
30
|
-
backgroundColor:
|
|
33
|
+
backgroundColor: _colors.BLUE
|
|
31
34
|
},
|
|
32
35
|
trackActiveContainer: {
|
|
33
|
-
height:
|
|
36
|
+
height: 6,
|
|
34
37
|
transition: 'none'
|
|
35
38
|
},
|
|
36
39
|
trackContainer: {
|
|
37
|
-
height:
|
|
40
|
+
height: 6
|
|
38
41
|
},
|
|
39
|
-
|
|
40
|
-
|
|
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:
|
|
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;
|