@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 +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 +118 -33
- 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 -50
- 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 +6 -0
- package/stories/player.js +3 -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.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",
|
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"); } }
|
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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.
|
|
206
|
-
_react2.default.createElement(
|
|
207
|
-
|
|
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
|
-
|
|
226
|
-
_react2.default.createElement(
|
|
227
|
-
return _this4.
|
|
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(
|
|
238
|
-
return
|
|
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,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,72 +4,71 @@ 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
|
|
33
36
|
},
|
|
34
|
-
|
|
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:
|
|
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
|
-
}
|
|
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
|
-
|
|
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,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:
|
|
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;
|